[{"Attribute":[{"category":"External analysis","disable_correlation":false,"first_seen":"2023-05-13T18:02:29.017000+00:00","to_ids":false,"type":"link","uuid":"abdd5b9f-c982-47e8-9fbe-7b7aa8b0a755","value":"https://lookyloo.circl.lu/tree/19aac616-7793-4909-a4f0-4c66d8d898c3"},{"category":"External analysis","comment":"Screenshot of the page at the end of the capture","data":"iVBORw0KGgoAAAANSUhEUgAAB4AAAAWjCAYAAAA5BSx3AAAAAXNSR0IArs4c6QAAIABJREFUeJzs3XlclWX+//E3u5AsLtkiUIrlgnzdWlzIJdMUc2nSElPMnFGbtJpmxMmlaX65JE41jVpguaQlVjqJCpiVK6iV6wC2uANl7iyKLML5/XHiqLEIyDlHbl7Px4NHeJ/7vq/PdXEOjw7vc12Xg8lkMgkAAAAAAAAAAAAAUOM52rsAAAAAAAAAAAAAAED1IAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAAAAAAAIMgAAYAAAAAAAAAAAAAgyAABgAAAAAAAAAAAACDIAAGAAAAAAAA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vsxf+sG/wGQy4erVKw/crzv3t2mb46Zw5IW3v53/+D/6D3n7299GlqZ898f+FZ65NrTfPb7a+p613PFYVX1+qzb/ze/7N/iLP/if8I3f8PVkWUaWZXzTe97NX/6L/ymbmxtveL/v+e6P8c3f9B7SNOXDH/p2PvD+9911+9Oy/od19crWG76n3swbvd+etvfoaTis1v3Ojw7v6+/40LcPZ5iH2+Hug15f8MafBSIiIiIiImfNYozH93cSERERERGRN/Tpz3yW//yH/ive/7738tf+s790Jo/5D37qp3n/+97Li1/3Dn7rdz7Bf/8//A2yLON/++H/9a620iJydp7EZ4GIiIiIiMibUQtoERERERGRp8DvferT/Mjf/3F+5O//+F0//44Pf7vCXxERERERERE54n/oh37oh570JERERERERJ42hpHnOe/95m/i5ZdefOyPt7W1RZqm7Ozsslwu2bqyxZ/4ru/k3/6z/xZJot/tFXlSzvqzQERERERE5EHUAlpERERERERERERERERE5IJwT3oCIiIiIiIiIiIiIiIiIiJyOhQAi4iIiIiIiIiIiIiIiIhcEAqARUREREREREREREREREQuCAXAIiIiIiIiIiIiIiIiIiIXhAJgEREREREREREREREREZELItnbP3jScxARERERERERERERERERkVNgMcb4pCchIiIiIiJvLsZ411cI4eir6zqyvHio8b73ryePaaYiIhfT1z7xw7zy8f+Cau+Ld/382z/8Uf73v/e3eemll46933/3o3/If/NX/j22/+BX7vp5sf4iL33kr/H8B3/gsc0Z4Gf/cvdQ1zd1RZIkOOeOvszsri8RERERETnf9H99REREREREREQe4PkP/sBRWLu89Qqz1z7Bzc/+NL/2q3+Xl19+mT/xp/5dvvdP/hmmaxsAfPLzu/zMT/8f/OFv/jAAz/0Lf56r7/7TTJ77IOXG8WGxiIiIiIjIaVAFsIiIiIjIU+C0K4C/57/2j2mmIiKXy61XPs4r//d/ya0vfvzY2zde/Agv/fG/ysZLHznjmQ1+7q/0D3W9KoBFRERERJ5+qgAWEREREREREXlEGy99hA++9EtUt17h1hc/TnVraBFdbLzIxosfoVC1r4iIiIiInDEFwCIiIiIil5H6AImInKpi/SWe+8AxYa8+b0VERERE5IwpABYRERERuYQM96SnICIiZ+LhWkCLiIiIiMjTT//XR0RERERERERERERERETkglAFsIiIiIjIJRSjepKKiIiIiIiIiFxEqgAWEREREREREREREREREbkgFACLiIiIiIiIiIiIiIiIiFwQCoBFRERERERERERERERERC4InQEsIiIiInIJ6QxgEREREREREZGLSQGwiIiIiMhlpPxXRERERERERORCUgtoEREREREREREREREREZELQhXAIiIiIiKX0t2/C+ruqQgOAMabXhOB+IBrAMI911i8b+j7riHe/9uq911zzOM9FfM+7ho4lXkfd43mff7m/chru8DzftS1ad2eThAAACAASURBVN4n+azs7/2BiIiIiIhccKoAFhERERERERERERERERG5IFQBLCIiIiJyCcV4d4laOKZi7V6Pcs1x18Vjqtruu1tcVdY9hjk98Xmf8do07/M37/P4HtC8L/a8RURERETkclEFsIiIiIiIiIiIiIiIiIjIBaEKYBERERGRy+gkJWJP4zVn/Xia9/mbk+Z9/q4568e77PNWCbCIiIiIyKWnAFhERERE5BK6t63ow95+0mtOc6yzvOasH09rO5nzNifN+/xdc9aP97TOW0RERERELjYFwCIiIiIil9C9ZwAfx+zNY4STjHGScU5rPhd9TlrbxZ7TRV7beZzTZV+biIiIiIhcbDoDWERERERERERERERERETkglAALCIiIiIiIiIiIiIiIiJyQagFtIiIiIjIZRQf/LugD+40erI2oyfrfnqS1qenM85pjnW2c9LaLvKcLvLaTjaW9vts1yYiIiIiIheZKoBFRERERERERERERERERC4IVQCLiIiIiMh9Ygwnus7sJJXEDx7rtMYBw+zNK+RijMCDS+TO39oePNZZr+1i7/f5W9t5nNNFXtvJ5vS0flaKiIiIiMhFpgpgEREREREREREREREREZELQhXAIiIiIiKX0YMOiTzxGZInuPBEY53OOGbxgdcZ8YRnZJ6vtZ3kQuOk53+e4X7HeMLlna/9tpNUmnLW+/3gB9R+n/ABT2m/n9bPShERERERudgUAIuIiIiIXEL2oBDppAOdII050VinNs7RH6cw1jkb5zTH0n6fzHmb08nSz3M3p4u830/t2kRERERE5EJTC2gRERERERERERERERERkQtCAbCIiIiIiIiIiIiIiIiIyAWhAFhERERERERERERERERE5ILQGcAiIiIiIpdQiPeeEhnu+bdx/0mS914D9/9O6WldE7n/bNnjfn/1aZz3cddo3udv3o9zbU/rvB91bZr3k/+sFBERERGRy0T/VSAiIiIiIiIiIiIiIiIickEoABYRERERERERERERERERuSAUAIuIiIiIiIiIiIiIiIiIXBAKgEVERERERERERERERERELojkSU9ARERERETOnoV470+OuepJXnPcdSe55nHOSfPWvC/7vB91bU96Tpdt3sddIyIiIiIil4kqgEVERERERERERERERERELggFwCIiIiIiIiIiIiIiIiIiF4QCYBERERERERERERERERGRC0JnAIuIiIiIXEIxPOkZiIiIiIiIiIjI46AAWERERETkUrInPQEREREREREREXkM1AJaREREREREREREREREROSCUAAsIiIiIiIiIiIiIiIiInJBKAAWEREREREREREREREREbkgdAawiIiIiMhlFOKTnoGIiIiIiIiIiDwGCoBFREREREREzgkLC7J4kzS+hmtv0Efo2aBNv44+fceTnp6IiIiIiIg8BRQAi4iIiIiIiDwpoSFtP0/evUIevsSIG2RJjYszYjenaTvq1uhYI2TvZFl+G1XxQbD0Sc9cREREREREzikFwCIiIiIiIiJnyDd/SF7/v2TNF0jq38eFCqMmsY7xpCS3jJ4AKaQukFBT17fo5l8hb3+HuHyeZvStzLI/RmPPYWZPekkiIiIiIiJyjigAFhERERG5hKKOABY5UzFGfNhnfPBjjGa/QOyWhBjADMOIBHoz+tZDmuJXoa73CUnpyZKU2WJBvbyBb7Yplp9hffx/YuW7uJ78aeb2LiKeSKJAWERERERE5JJTACwiIiIicikpIBI5M6Emqz7J+OAnGfWfIfGG+ZwIxD4QQw8YMUbapqXLWtI0A2cQI94MyzMmZqRJwmw+o5ovqOuayWTGc+mnsfwa8/Rb2ee9LNzXE9z4Sa9aREREREREnhAFwCIiIiIiIiKPUTL/dcbb/xM+7JMUOXmSYM44/EWMw1/HiDFiZkd/e+8JMRJDwAFlkZNnKd45+naHvd1turZmMpmSNDWbk1us+3/Oje472Mk+phBYRERERETkklIALCIiIiIiIvKYhPYAe+3vMJ+/irNI7FpiWZIXOd4nODcEvd55nHN478HA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ERERETm2whI/2n6FnsBbYBpAOPOkdmi5PH8QYEtBsA0vG3vT4eVzYez0G3Q+AqDYiG+Vr3ArzhFh1BHERnhtFz20fR5C3sVXm5/sfm2gawrcaoEjyDivn3//wW+UiIiIiIiISKMAWERERERERI61v7rxOsVrujrM3oWYVwPvHvK7Luetz617dvX7EqsVu5/EU/x5/3P0kQlnXmk8r0JuraCHxw+iVv8ayVL92uYAf+bCR1zauPNAxxIREREREREZKAAWERERERGRY+2tnRfYLpMatLKY8RttHnD9vk3dtagtoXMQ5tRaXTASiURuU3etha7A/CuLKb7zc3exwXf7L/GWv0iZHw0Iq/OHzev5rIbBhdYSmhpYp6CmxoP2dkuJsARmmEEyyNlIycg4n7v43pHeUxERERERETm9FACLiIiIiIjIseZhvHHrJUrx+czd9sK8InhRBNxe3VWMa0vfLQLf4RWbv2V3Xgvwcf80b/af4w5buDOv+J1XAkdQos0hZvEaS8eLPaH10nPUTtA5ZVJKjJPzuYsfPuxtExERERERkSeUAmARERERERE51jwyf3P7ZTpfNFmeh6xet0XACjXQTRCJRePnwCwYst+h/bLZYj8Ap83lXT6/jfj+7Iu8079CHyMioLTgt57e6/fUQNqLE+51Pcth8fI6fTXMtlYJPDJjbMYrZ6+xlWdHe2NFRERERETkVFIALCIiIiIiIseak/jx9nPc7HINWWFeeTu0frba/bkGunsMrZ2X2zsvTwq2eQg88016z3uO8JE/w7dmX+FObFLc8SiUKBQv9OGUcIoX3H1eqUwstZdeOt3eWcTteTNyzuRkXJ3c4YWz1w90v0REREREROTJpgBYREREREREjr1b3Sbv7lxprZZb62WGELjusxysDi2Y26OaDq98vxwAt/eH4SRYEyIHiR/OfoKPyrN4JHqvbZ9LOO4F90LE7qre4athrfW0LVLgXa2oF6sZjTLnRzM+fV5toEVEREREROTBKQAWERERERGRY2/bN/nbnRfoPfBogWtrs8ywAeFBCSMsEWa15tfWVfs2S+2fDSD2BsODwoh/desf476Ju9GXoPcyr/gtpS0jqJXAK62pl+cC1wC6zgKum1ED4dEok1NiM+3w3Oa1w76NIiIiIiIi8gRQACwiIiIiIiLHXokxH88u03med3IOH+bwtkrg1iA6wvHwRRVwrDtizGcDr7D14e/gdpzjj7tfZsomEYY7rSoZiGjnddx93g66lNK+em0f7YG732VdkMwYZ3j+7E2e2rr5ILdJRERERERERAGwiIiIiIiIHH9O4sPpJa5354mwlWraaDW1iym/NQSOFgIHtQrYLM9nBIe3A1sr2YV5iHs/39z5OX5UXqW3VNfiLYxuFclDQbJH4DgFKIBjNXa2RZvptfOALcg58dSZHZ7ZvH3wmyYiIiIiIiJPJAXAIiIiIiIiciJc7y/wwfQixaO2WV7q/jwPe8PnT65EubEctK6r8q2zgbsY0/u9q4Bv+QW+sf1V7sTW/JzFC8Wd0hf6UvDihA9hcBAe68PldbOAE+ScuLIx5emtm9jdSoVFRERERERE1lAALCIiIiIiIifC9e4C7+5cpvOh8tcWATB37ajMauB7l/C3vbsrGSffZyXGj6ef4tvbX64hry9aPns47oU+WrvnFv4uAmpW5gHTHs+PbEYCUjLOjDpePnuDM+PZPu6OiIiIiIiISKUAWERERERERE4EJ/HR9Dw3Z+PWBpo6hzdi3oaZdW2co3V6PkRdbPCDnc/zUXcFL0Fxp3enL4XeHS+tItjLojp4KSheBMJ1zWa2qAS2Oop4ZPDahU+4Mtk+3MWLiIiIiIjIqaYAWERERERERE6Mt3ae5oPuLP1QQNuKd4fK2nXh71F5u3uZb09/htu+RYnACQqBh9OH00fBW9DLUuXv8rbKMEvzMDgleH7rJhcm06O7CBERERERETl1FACLiIiIiIjIifHx7ArXZufoCrWSdqn1cm21XFsuW0CK2vB5telzAA7mPGw63DPm2ztf5kf9y0wj0Zeg96BzpyuFsjQLuJ46cC+4D+HvuhCY+YqzGU9N7vDimWsk/KHWKiIiIiIiIk8OBcAiIiIiIiJyYuz4Fh/MnmJWqPN2562UVwPd5WLg+nURA89bLddX148F3qdr/hTfmf4UnY+IcNyjbhEUr5tHMKzOg/p41+zflTnAGMkS1hb28rkbTHI5+CJFRERERETkiaIAWERERERERE6UN+68yLSMKKUAq/N06za0hjYihhpgYzn3NTOwaM/FQ9UCf+fOl/jb2Wv1vB7zrRSn6wu9B31fKA6B4VgbVby0Zuo6oAXAZLJlkiVev/ABk9Q/xApFRERERETkSaIAWERERERERE6UH22/xPvb5wg3iIRH1FbQw7xdgLUzdnezNd89uMKYP7z161yLq5RIFIdSgq7r6fqeWdfRDy2hl9pWl6U1x1JbaKDNAU5g8OyZ61zeuPMQKxQREREREZEniQJgEREREREROVH6GPHm9EUirAWojhOUcErUlst7o9/gvnnwQ3h/9jx/evOreIwIT4RDKT2zvqMfvvY9pZR54FuXFXsqmIfZwEFgZoyt4zMXPzi6xYuIiIiIiMipogBYRERERERETpw/v/lFpgGz4vTulFI390LxGgQHi2DVfak1NJBSwixhluvXZLXqNiUO0g86LPGN21/hOzuvM/M0r+4tpacvBS9O54XOCz6EvMN84GGNEbVCeJhpHEFKkBP85KV3D/X+iYiIiIiIyOmlAFhEREREREROnHenz/DW9ClmQW25PASoPNxE3+0yoYvRgd7bx4g/uvUrvF+epoQRpVbx9l7oogbTXrzNLmZt3+nl2cBQg+o8Snzh4nuMmR3wqkRERERERORJogBYRERERERETqTv3PwMxRMeNm+ZHK3988PM9D0oM+Oj7im+tf1T3Om3iAK9QwnoS9TN61bazN/wpfnF3qqCfWmWMYEBl8d3eOXcR4/hqkREREREROSkUQAsIiIiIiIiJ9K3bnyOO2VcZwC3bbl6tnZaXq4GDvb2d46VbyMO1AF6rmfMd7d/gjemn2IWmd6drhT6Uuj7vs4Bbl+7vj5f3HGv7atr+Mu8LTQYKRLm8KUr7z3EykRERERERORJoQBYRERERERETqQb/XneunOVWT/DvRClVs96KUthMEvVtLsF60Phh1xXucCf7fwM75fLlIg6k9gLvfd0XUfpO7quo+/L0szfYN0yLSBhGIkvXXrzUNcpIiIiIiIip5MCYBERERERETmRPBLfufU6JYJw8IC+1AraUsqiGvhw8919MN6YvcafTb/MTTbpgD6gK0FfnFnvdH2hlLp5GYJgX1nzogo4sGQ8fWab589cf9QXIyIiIiIiIieMAmARERERERE5kZzED++8xI3+TA1Ll2boeqltldtkYCDuUQl8FGvL/MWdr/BW/zLFfB7mRgR937MzndKH07szK31rD11qJXMLgg1IZqScSRsbjCfGzz+tKmARERERERG5NwXAIiIiIiIicmJNfZMfbz9DX4LigXtQeseD+WzdRXvlBNjSu23Nc4e5ti3+4OP/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POjixYsMHjwYSJzF+88//3D9+nVmz56dJIGbnqNHjwKJid4NGzZw5coVPvroI7Niz05cS1s6ApGklAAWERERERERERERERGLqlbN0hFk3KxZs2jUqBGbN28mMjKS6OhoduzYgY+PDyNGjDCVGzRoEB999BFnz57FYDDwzz//8Oabb5q2310W+VH78ccf+fXXX7ly5QqxsbFcvXo1Q+140NSpU/Hy8mLr1q1ERkYSHh7Orl27CA4ONjumjRs38s4773Dq1CliY2PZuXMnQ4YMMTv27KJiRUtHIJKU1TMFC6W9OLuIiIiIiIiIiIiISAaEXb5m6RDkCbNrF9RtYOkoHh8fHx9Wr14NQJcuXZg/f76FI5KHsXMb1Klj6SgkJytYtFCGymsGsIiIiIiIiIiIiIiIWFTt2pA/v6WjeDR69OjBokWLqF27No6Ojrz44ouMHz8egLi4ODZt2mThCOVh5M+feP2KZCc2lg5ARERERERERERERESeblZW4N0MFi6ydCRZq1ixYvzwww84OTnx+uuvJ9s+ZswYLl26ZIHIJKt4N0u8fkWyE80AFhERERERERERERERi/NuZukIst6lS5do27Ytv//+u+kewLdu3WLLli106NCBsWPHWjpEeUhtWls6ApHkdA9gEREREREREREREclSugewZJZbY9i2zdJRiJinXj3YvsXSUcjTQPcAFhERERERERERERGRJ9KYUZaOQMR8E8dZOgKRlCkBLCIiIiIiIiIiIiIi2ULjRtDMy9JRiKSvdavEGcAi2ZESwCIiIiIiIiIiIiIikm1MnwZFilg6CpHUFS4MP0y2dBQiqbOxdAAiIiIiIpnh4hLPl2MiaVDPQP78xjTLhodbsW2HLZ+OdOTcuVyPKUIRERERERHJjFKlYPEC8GwGBoOloxFJytYWli0BFxdLRyKSOs0AFhEREZEnjotLPIH+/9GieVy6yV+A/PmNtGgeR6D/f7i4xD+GCEVERERERORhNGwIU763dBQiyU35HurXt3QUImlTAlhEREREnjhfjYkkf34jvy+0p0z5ZyhYtFCaP2XKP8PvC+3Jn9/IV2MiLR3+U+vl6tUpX76cpcPIsPLlyz3SuB91/Q9r7NgxvPlmr1R/z45sbGwYN+5rgoODWL9urUVjyez5zU5tyA4qV65M6dKlLR2GiIiIPGbv9IWff4RcWshJ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R2P3Jhw+fPgxRydPgly5cmFra8vcub/RxN2d5j4tUrwfsjw5dE6znxLF4zl84N69ozf8aUunrvkBKF/+Nru23ZvF/+NPefhsVNJl821sjBzcd4Nixe4lM/u9l5dFi1OeAZxandsDb1CxYuK9eUMvWlO12jOmMrVqGfhwYBS1at4mb14joaHWrPCzZ8qPebh+PelchE4dYpg65d49qn3n2/P+h04UKZLA0UPXTV+OunjJmqrVnDEa7334lT9/AjP/d4s6tQwcO2ZD775OBAfnSrP//JaGU7++Ic0yaZkw0YHxk1JPcovIPQf2XsfFRV+cEBEReVgnT+aiTgPnDO2jBLCIiIiIPJHeeTuaoR9FkS9f+i9nw8OtGD/Rga/GRgJKAKcmvQTw5599xutvvE6VKlUfc2TypPD2bmZaovfQoUO4N/GwcETysHROcw47OyM2NlCiRDzrV4dToEDi388bN6x44aVnTPcJzqnq1zNQv17qid8j/+Rizdp7M4yHDokirVcY06bn5uZNLawnkpa5s28mW8pdREREMm7NWju69cyXoX10D2AREREReSJNm56H+QvsqVolPs1y77wdjU/zOFPyV1K3Zu1a0zKvKRk1ejSjsvC+opLzFMhfgNu3b3P48BH6v/eepcORLKBzmj18PCSKoR9FZWrfu196alDPwOKFN5Nt/2VGHmJjrUyrZDzpxk90YEIKM3QPH8nFV2MiqJLm64b0b6kASv6KmGv7DlslgEVERLKA/+a0V79LiWYAi4iIiEiO59M8lh+nRJhmC2sGsIiIPG36vhWd7MtQhw7lomWbAkRG5uzZvyJiGQ8uIS8iIiKZU+0VZ86dS/tWJw/S1xVFREREJMdbs9ael2o4s2atHUeOZOwFs4iISE6QO4+RW7esMBggKMian6flpu3r+ZX8FZFH5uRJGzZlYsaSiIiI3LNmrV2Gk7+gGcAiIiIiIiIiIiIi8giUK3ebLZv+w94+/bIiIiKSVGws1KjlzMVLGU8AawawiIiIiIiIiIiIiGS5U6dsGPxRXkuHISIi8kQa+GHeTCV/AXLlcXD4IovjERERERERERERERHhyD82WAH16xssHYqIiMgTY/SXDsyanSfT+2sJaBERERERERERERF5pLybxTLtxwicnPRxtIiISGpu3bLirXec+HOj3UPVoyWgRUREREREREREROSR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AAAAsEJlZWW59pqr07NXT+EvAEAtJwAGAAAAAL7Sbbfdmr27fjcLFizIkCHn1HQ5AACshEdAAwAAAAAAABSI+jVdAACsTGnponzwwftZ8MknWbp0aU2XAzWifv36adq0aZq3aJWGDRvWdDkAAAAAQC1lBTAAtVpp6aLMfGtG2rZtm0aNGqWoqKimS4IasWTJkixatCgzZsxI23ZbCIEBAAAAgOUSAANQa30W/m6//fY1XQrUKi+99FI2b9teCAwAAAAAfEndmi4AAL7KB++/n7Zt29Z0GVDrbL755vn3B+/VdBkAAAAAQC0kAAag1lqw4JM0atSopsuAWqdx48b55JNParoMAAAAAKAWEgADUGstXbrUO39hOYqKirJ06dKaLgMAAAAAqIUEwAAAAAAAAAAFQgAMAAAAAAAAUCAEwAAAAADwLXb9dX/KZZddWtNlAABQTerXdAEAAAAAUNscesjB2W677fLzC39RYzV8/PHH+c2v/ydTp05JeXl51lmnSXrvt18GDz4ldetW37qOWbNmZdasWUmS8vLyDBx4QPru3y8/Gjx4tdrr3q1r3n3vveXu22yzzTJx4kOrXSsAACsnAAYAAACAWuiM00/LOk3Wyd33jEtxcXEenjQp/5rzr4rw99xzhmadJk1y3nnDqrXfsrKylJWVrfb5j06eWvH9j370wzRoUJQrr7yqOkoDAKAKBMAAsArGjx+fzTffPJ06dVql86677rp06tQpe+6551qqjG+yv/3tb2ncuHG23nrrmi4FAIBaYu7cuXniySfyuyuvSnFxcZJkn549Kx0z/+P5KS8vr9Z+69Spk3HjxldrmwAAfL0EwAAUjEsvvTQzZ8780vaePXvm8MMPr5Y+nn766SRJp06dUl5enosuuii77bZb+vbtu8LzZs2aldatW1e5n7Kyslx11VUZOHBgNt988wwbNiydO3fOwIEDKx03ZsyYvPzyy7nggguSJAsXLszdd9+df/zjH0mSRo0aZZdddqmo76qrrkq/fv3Svn37KtfC2rVw4cLcdtttST69hgEAqP1KSkpy5ZW/zfj7xqV+/frZYccdc95556d58+ZJPn0E8oknnZynnnoyL734YjbZZNNcfPEl2WLLLZMkN9/8l/z5zyOzqKQkm222ec4866zssMOOlfpYd91107BBw9x006h02m67bLzxxpX277LzTllYsjBJctfYu3LppZfl4IMPyYgRw9Or177ZddddkyTTp0/L6FtuqXiU9YIFC3LF5SPywAMPpEmTddKtW/csXry4UtsjRgzPHrvvke49eiRJFi9enGuuuTp3jLk9S5Ysqah5l112XWvz918/PjUTJ0zIO+++k3Hjxqd7t6456OBD8vhjj2X27LfTvv0WufyKX+b66/6USZMeSlGDBvnpT87Mfn36VHmOAQAKVfW9LAQAaoG99947V199daWv6gp/l6e8vLza/+I+SR577LG89957X/pHnpW55pprMn/+/PzsZz/LJZdckgEDBqS4uDh16tRJnTp10q5du9xyyy3VXi+rb9KkSZk7d27mzp2be++9t6bLAQCgCs45Z0hee/XVjLvv/jz40MNptn6znHH6aRX7GzRsmFGj/pyhQ8/No5OnpnXr1jn33HOSJDNnzswlF1+cm266OZMefjT79u6dZs02+FIfRUVF+clPfpJnnn0mvXrtk0HfOyb33HN3xaOZ//rC39KzZ88cdOBBmT79tRx88CFJkrF33ZU333yjop3Zb8/O6FtHV/x85pk/zSuvvJL7xt+fhyY9ku223z733HNPpb4nTXoor7/+esXPw847N5MffTS3j7kzUx97It8bNCjHH3dc/vGPl9ba/F1//XUZNuz8itXIDRo2zJjbb8uvf/PbTJ7yWMrLy3PYoQdniy23zCOPTsmJJ56UIUPOzty5c6s8xwAAhUoADACrqU6dOrngggvSr1+/am/7oYceSu/evVNUVFTlcz755JNMmzYte+yxRxo2bJgk2XHHHdPj///VfvLpauj3338/r776arXXzKqbO3duxo0bV/HzZ2EwAAC115w5c/LAAw9kyNChadq0aerWrZvBp/xXnnv+ubzxz39WHNejxz5p06ZN6tatm759++Wlf7yUxYsXZ+HC/2RZ2bJce+01mTbtlQwadGzatGmz3L6OO/6E3HnnXfne9wZlxow3c/bZZ2XI2Wetdu0zZ87Mo48+kjPPOjvNmzdPnTp1cvDBh6zwVTVvzZiRe+69J2edPaTinL59+2WPPffMVVet+nt9qzp/e+/dLZu3bVvp3L79+meTTTZJUVFRunTpmiVLluaII45MkhxwwIAsKl2Ul19+eZXmGACgEHkENADfGkOHDs1+++2X6dOnZ8aMGWnevHkGDRpU8WjmxYsX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wnM/P8a1XWdt1ahRowwZMiRTp07Nww8/nF//+tfZcMMNK/Yv79qYMmVKTj/99Nx+++156qmncvPNN6d169Y5//zzM3ny5Dz44IPZb7/9Kto4+uijM2HChEyZMiWjRo3K9ttvv9xaVvYZPvXUUznyyCPTtWvXvPrqq9l9990rnf/JJ59k8eLFGTRoUFq3bl0t413ZtV/Va6gqfQMAAAAAtYsAGIBvjHXWWSeHHnpo9tprr9x9990pLS3N97///fziF7+oWNHYq1evdOjQIcmnwdppp52W4uLiJJ8+9vb000/PwoULkyTz5s3L2WefnR49euTUU0/NWWedVSmcu/TSS9O1a9ccffTR2XvvvfOXv/wlM2bMyKuvvprjjz8+zZs3r2j3xBNPzKxZs1Z5DJdcckm6deuWgw8+ON/5zncyatSojBo1Kp06dfrKNj4/xrVVZ203fPjwbL311tl///3Ts2fPfPTRR/nd735XsX9510ZpaWkOO+ywnH766enSpUuS5M4778zrr7+ebt265dprr83ll1+eZs2apU2bNhk2bFiOPvrodO/ePRMmTMi8efOWW8vKPsM999wzo0ePztSpU7P11lvnmWeeqXT+0qVL86tf/Sq77757Hn744dx0000ZMGBA6tSps9rjXdm1X9VrqCp9AwAAAAC1iwAYgFrvyCOPzKuvvprHH388xxxzTM4777yMHz8+STJ58uSvDDTvvvvulJeXV6zq7NKlS5o1a5Y77rgjSfLggw/mtddeS5K8+uqreeWVV9K5c+ckSdu2bdO/f//86le/yr///e8kyT333JPZs2dnwoQJ+fDDD3PIIYck+TTgW2+99XL33Xev0hheeeWVDBw4MCNGjMjcuXOTJOPHj8+TTz6ZU089tUpzU911fhNstNFG2X///XPZZZdlwYIFKS8vz//+7/9m1113Tfv27SuOW961MW7cuMyZMydLly7N1KlTU1RUlFtvvTVJcu+996ZRo0bZbrvtss4666RevXo5+eSTs8022+Smm27K7Nmzv1RL27Zt1/gzTJIbb7wxBx54YEaNGpV27drliiuuyBVXXLHa413Ztf/FMXzVNVTVvgEAAACA2kMADECtN3r06Gy99dbZaaedctBBB+Wuu+6q2Pf+++9/5Xn/+c9/Mm7cuBx00EFJkoMOOigPPvhgxUrOvffeO9dff30ef/zxvPTSS9l5553TqFGjJMkmm2ySJHnzzTe/1O7SpUszevToHHbYYUmS/v37Z+LEiZk/f/4qjeGzPj5bafmZN954I23atFnpvKyNOr8J2rVrl+TTMPfVV1+tCNaTZPPNN684bnnXxue3lZaWZt68eSkvL0/y6fuZly1bluLi4kyfPj2/+c1vctBBB+XOO+/MfffdV6ntz1THZ/iZ6dOn59JLL0337t0zduzYHHDAAdl0001Xa7wru/aXN4blXUNV7RsAAAAAqD0EwAAUtJtvvjm77757OnbsmJ49e2b06NFJku233z7XXnttnnzyyRxyyCHZeeed88ILL1ScN2fOnCT/F4B90S233JKNNtoo3bp1S+/evXP77bevcm1vv/32cvvYYostqvyY5q+jztrm3XffTZL07ds3W2+9daWvRx55pNr6+cMf/pC99torgwYNSnFxcU4++eQvHVMdn+EXLVmyJGPHjk3y6buiV3e8X3Xtf9GKrqGva64BAAAAgOojAAagoE2fPj0vvfRSfvOb32TOnDl5+umnkySNGzdOktx///159913s8suu2TbbbetOG/GjBkZP358zjzzzLRo0SJJ0rNnz2y66aZJkg8//DD33XdfLr744sybNy9PPfXUKtc2a9asjB07NkOGDEmzZs2SJH369Mlee+2VK6+8skptfB111jYzZszIhAkTcu6556ZJkyZJkv333z/Dhg2rtj46duyYIUOGpF69enn22WfzzjvvVDwe+fOq4zNs27Zt7rrrrnznO99J8um1ecQRR+S5557LzJkzV3u8X3Xtf9GKrqGvY64BAAAAgOolAAag4N18881p165dxbtek+TZZ5/Nn/70p9x6662ZOHFiunXrlvvvv7/iEdBJcs4552Tq1Km5+eabM2XKlAwePDht27at2H/TTTelZcuWGTNmzGrXNmzYsEydOjWjR4/Oo48+mmOPPTbHHXdcpk2bVuU2vo46a5shQ4bk9ddfz5133pkpU6bkBz/4QZ555plqa3/x4sVp3759HnjggTzyyCN57733cu211y732DX9DN99991MnTo1F1xwQaZMmZJx48ZlwYIF+fGPf1xxzOqOd3nX/vKs6Bpa23MNAAAAAFSvOh06dCiv6SIA4Jtozz33zHXXXZfu3bvngw8+qOlyvtI3pU4AAAAAANacFcAAsBrq1KmTH/7wh3nooYdqdaj6TakTAAAAAIDqIQAGgFV0+OGH57HHHkuTJk0yfPjwmi7nK31T6gQAAAAAoPp4BDQAAAAAAABAgbACGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACoQAGAAAAAAAAKBACIABAAAAAAAACkSd8vLy8pouAgAAAAAAAIA1ZwUwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIEQAAMAAAAAAAAUCAEwAAAAAAAAQIH4fx0cWEfcLLGyAAAAAElFTkSuQmCC","disable_correlation":true,"first_seen":"2023-05-13T18:02:29.017000+00:00","to_ids":false,"type":"attachment","uuid":"90f070e7-1cd0-420c-ae74-0dd2da8b264b","value":"screenshot_landing_page.png"},{"category":"External analysis","comment":"HTTP Archive (HAR) of the whole capture","data":"eyJsb2ciOiB7InZlcnNpb24iOiAiMS4yIiwgImNyZWF0b3IiOiB7Im5hbWUiOiAiUGxheXdyaWdodCIsICJ2ZXJzaW9uIjogIjEuMzMuMCJ9LCAiYnJvd3NlciI6IHsibmFtZSI6ICJjaHJvbWl1bSIsICJ2ZXJzaW9uIjogIjExMy4wLjU2NzIuNTMifSwgInBhZ2VzIjogW3sic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMDEyWiIsICJpZCI6ICJwYWdlQDg2ZGRlNDliMDc3MjhmNTA4YzY4MmFhODU3NGMzZTQ4IiwgInRpdGxlIjogIlx1ZDgzNVx1ZGM2NFx1ZDgzNVx1ZGM0ZVx1ZDgzNVx1ZGM2MVx1ZDgzNVx1ZGM1Nlx1ZDgzNVx1ZGM1Mlx1ZDgzNVx1ZGM1YiAoQHdhdGllbjQ1KSB8IFNuYXBjaGF0IFN0b3JpZXMsIFNwb3RsaWdodCAmIExlbnNlcyIsICJwYWdlVGltaW5ncyI6IHsib25Db250ZW50TG9hZCI6IDY1NSwgIm9uTG9hZCI6IDIwNTl9fV0sICJlbnRyaWVzIjogW3sic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMDE3WiIsICJ0aW1lIjogMTc1Ljc3LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NSIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogInd3dy5zbmFwY2hhdC5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvYWRkL3dhdGllbjQ1In0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAidGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2UvYXZpZixpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44LGFwcGxpY2F0aW9uL3NpZ25lZC1leGNoYW5nZTt2PWIzO3E9MC43In0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogInNlYy1mZXRjaC1kZXN0IiwgInZhbHVlIjogImRvY3VtZW50In0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuYXZpZ2F0ZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAibm9uZSJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXVzZXIiLCAidmFsdWUiOiAiPzEifSwgeyJuYW1lIjogInVwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMiLCAidmFsdWUiOiAiMSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTEzLjAuNTY3Mi41MyBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogNTQ0LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhbHQtc3ZjIiwgInZhbHVlIjogImgzPVwiOjQ0M1wiOyBtYT0yNTkyMDAwLGgzLTI5PVwiOjQ0M1wiOyBtYT0yNTkyMDAwIn0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogInB1YmxpYyxtYXgtYWdlPTMwMCJ9LCB7Im5hbWUiOiAiY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJjb250ZW50LXNlY3VyaXR5LXBvbGljeSIsICJ2YWx1ZSI6ICJjb25uZWN0LXNyYyAnc2VsZicgYmxvYjogaHR0cHM6Ly9zdG9yeXNoYXJpbmcuc25hcGNoYXQuY29tIGh0dHBzOi8vY2Ytc3Quc2MtY2RuLm5ldCBodHRwczovL2FwcC5zbmFwY2hhdC5jb20gaHR0cHM6Ly9zLnNjLWNkbi5uZXQgaHR0cHM6Ly9ib2x0LWdjZG4uc2MtY2RuLm5ldCBodHRwczovL2djcC5hcGkuc25hcGNoYXQuY29tIGh0dHBzOi8vd2ViLWZyb250ZW5kLWRvdC1zYy1hbmFseXRpY3MuYXBwc3BvdC5jb20gaHR0cHM6Ly9hd3MuYXBpLnNuYXBjaGF0LmNvbSBodHRwczovLyouZ29vZ2xlLWFuYWx5dGljcy5jb20gaHR0cHM6Ly8qLmFuYWx5dGljcy5nb29nbGUuY29tIGh0dHBzOi8vc3RhdHMuZy5kb3VibGVjbGljay5uZXQgaHR0cHM6Ly8qLmdvb2dsZXRhZ21hbmFnZXIuY29tIGh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbSBodHRwczovL3NlbnRyeS5zYy1wcm9kLm5ldCBodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbSBodHRwczovL3VzLWNlbnRyYWwxLWdjcC5hcGkuc25hcGNoYXQuY29tIGh0dHBzOi8vc3RhZ2luZy11cy1jZW50cmFsMS1nY3AuYXBpLnNuYXBjaGF0LmNvbSBodHRwczovL2FjY291bnRzLnNuYXBjaGF0LmNvbSB3czogd3NzOjsgaW1nLXNyYyAnc2VsZicgYmxvYjogZGF0YTogaHR0cHM6Ly9sZW5zLnNuYXBjaGF0LmNvbSBodHRwczovL3Muc2MtY2RuLm5ldCBodHRwczovL3N1cHBvcnQtdG9vbHMuc3RvcmFnZS5nb29nbGVhcGlzLmNvbSBodHRwczovL2FwcC5zbmFwY2hhdC5jb20gaHR0cHM6Ly9kZXZzbmFwY2hhdC5hcHBzcG90LmNvbSBodHRwczovL2ZlZWxpbnNvbmljZS1ocmQuYXBwc3BvdC5jb20gaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tIGh0dHBzOi8vY2Ytc3Quc2MtY2RuLm5ldCBodHRwczovLyouZ29vZ2xlLWFuYWx5dGljcy5jb20gaHR0cHM6Ly8qLmdvb2dsZXRhZ21hbmFnZXIuY29tIGh0dHBzOi8vZHd0OHg5cm1zNjM5bC5jbG91ZGZyb250Lm5ldCBkYXRhOiBodHRwczovL2xlbnMtc3RvcmFnZS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tIGh0dHBzOi8vY29tbXVuaXR5LWxlbnMuc3RvcmFnZS5nb29nbGVhcGlzLmNvbSBodHRwczovL2JvbHQtZ2Nkbi5zYy1jZG4ubmV0IGh0dHBzOi8vbWVkaWEtY2RuLnRyaXBhZHZpc29yLmNvbS8gaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSBodHRwczovL3d3dy5nb29nbGUuY28udWsgaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS5zYSBodHRwczovL3d3dy5nb29nbGUuY2EgaHR0cHM6Ly93d3cuZ29vZ2xlLmZyIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20ubm8gaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS5hdSBodHRwczovL2ltYWdlcy5iaXRtb2ppLmNvbSBodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20gaHR0cHM6Ly91cy1lYXN0MS1hd3MuYXBpLnNuYXBjaGF0LmNvbSBodHRwczovL2ltcGFsYS1tZWRpYS1wcm9kdWN0aW9uLnMzLmFtYXpvbmF3cy5jb207IG1lZGlhLXNyYyAnc2VsZicgaHR0cHM6Ly9sZW5zLXN0b3JhZ2Uuc3RvcmFnZS5nb29nbGVhcGlzLmNvbSBodHRwczovL2NvbW11bml0eS1sZW5zLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20gaHR0cHM6Ly9zLnNjLWNkbi5uZXQgaHR0cHM6Ly9ib2x0LWdjZG4uc2MtY2RuLm5ldCBodHRwczovL2NmLXN0LnNjLWNkbi5uZXQgYmxvYjo7IHNjcmlwdC1zcmMgJ3NlbGYnIGJsb2I6IGh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tICdzaGEyNTYtVCttSnB6a3NwWWJTMmM5ajJxcmd5ZXp4MCtieHVlYVlOSndWQjc1cGUzWT0nICdzaGEyNTYtU2x5WHFOcGRkRlk5bHhiZ3VTVDVtMjJIaWZHRUxZVjFGWWVjOFhoSFVraz0nICdzaGEyNTYtNXJNeGgxVTZzSURsVmptb2JCUVk4OVFUQzluTmVLM2hkOWRzWHBEMkFZRT0nICdzaGEyNTYtMkxtT0lMTTJISVM5cEpDMzgwb3dSbE9ZbytjNVdPdXVOTDdvRU1Mc3MyST0nIGh0dHBzOi8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tIGh0dHBzOi8vKi5nb29nbGV0YWdtYW5hZ2VyLmNvbTsgc3R5bGUtc3JjICdzZWxmJyBodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbSAndW5zYWZlLWlubGluZSc7IGRlZmF1bHQtc3JjICdzZWxmJzsgZm9udC1zcmMgJ3NlbGYnIGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20gaHR0cHM6Ly9hZHMtaW50ZXJmYWNlcy5zYy1jZG4ubmV0IGh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tIGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbTsgZnJhbWUtYW5jZXN0b3JzICdub25lJzsgYmxvY2stYWxsLW1peGVkLWNvbnRlbnQifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiU2F0LCAxMyBNYXkgMjAyMyAxODowMjoyOSBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBUEkgR2F0ZXdheSJ9LCB7Im5hbWUiOiAic3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwIn0sIHsibmFtZSI6ICJzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5IiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDA7IGluY2x1ZGVTdWJEb21haW5zIn0sIHsibmFtZSI6ICJ2YXJ5IiwgInZhbHVlIjogIkFjY2VwdC1FbmNvZGluZyJ9LCB7Im5hbWUiOiAidmlhIiwgInZhbHVlIjogIjEuMSBnb29nbGUifSwgeyJuYW1lIjogIngtZW52b3ktdXBzdHJlYW0tc2VydmljZS10aW1lIiwgInZhbHVlIjogIjM1In0sIHsibmFtZSI6ICJ4LWZyYW1lLW9wdGlvbnMiLCAidmFsdWUiOiAiREVOWSJ9LCB7Im5hbWUiOiAieC1yZXF1ZXN0LWlkIiwgInZhbHVlIjogIjJhMjJkZjI1LWFjYjItNDY2Ny1hM2I0LTc4ZWUxNjZiNTdjMyJ9LCB7Im5hbWUiOiAieC14c3MtcHJvdGVjdGlvbiIsICJ2YWx1ZSI6ICIwIn1dLCAiY29udGVudCI6IHsic2l6ZSI6IDIxMDQwLCAibWltZVR5cGUiOiAidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiwgImNvbXByZXNzaW9uIjogMTI2ODAsICJ0ZXh0IjogIjwhRE9DVFlQRSBodG1sPjxodG1sIHByZWZpeD1cIm9nOiBodHRwczovL29ncC5tZS9ucyNcIiBsYW5nPVwiZW4tVVNcIiBkYXRhLXRoZW1lLW92ZXJyaWRlPVwiXCIgZGlyPVwibHRyXCI+PGhlYWQ+PG1ldGEgY2hhclNldD1cInV0Zi04XCIvPjxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIi8+PG1ldGEgbmFtZT1cIm5leHQtaGVhZC1jb3VudFwiIGNvbnRlbnQ9XCIyXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cInByZWNvbm5lY3RcIiBocmVmPVwiaHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0XCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cInByZWxvYWRcIiBocmVmPVwiaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtQm9sZC53b2ZmMlwiIGFzPVwiZm9udFwiIHR5cGU9XCJmb250L3dvZmYyXCIgY3Jvc3NvcmlnaW49XCJhbm9ueW1vdXNcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwicHJlbG9hZFwiIGhyZWY9XCJodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1EZW1pQm9sZC53b2ZmMlwiIGFzPVwiZm9udFwiIHR5cGU9XCJmb250L3dvZmYyXCIgY3Jvc3NvcmlnaW49XCJhbm9ueW1vdXNcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwicHJlbG9hZFwiIGhyZWY9XCJodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1NZWRpdW0ud29mZjJcIiBhcz1cImZvbnRcIiB0eXBlPVwiZm9udC93b2ZmMlwiIGNyb3Nzb3JpZ2luPVwiYW5vbnltb3VzXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cInByZWxvYWRcIiBocmVmPVwiaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtUmVndWxhci53b2ZmMlwiIGFzPVwiZm9udFwiIHR5cGU9XCJmb250L3dvZmYyXCIgY3Jvc3NvcmlnaW49XCJhbm9ueW1vdXNcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiY2Fub25pY2FsXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDVcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPWFyXCIgaHJlZkxhbmc9XCJhclwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9YXItQVJcIiBocmVmTGFuZz1cImFyLUFSXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1ibi1CRFwiIGhyZWZMYW5nPVwiYm4tQkRcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPWJuLUlOXCIgaHJlZkxhbmc9XCJibi1JTlwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9ZGEtREtcIiBocmVmTGFuZz1cImRhLURLXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1kZS1ERVwiIGhyZWZMYW5nPVwiZGUtREVcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPWVsLUdSXCIgaHJlZkxhbmc9XCJlbC1HUlwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9ZW4tR0JcIiBocmVmTGFuZz1cImVuLUdCXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1lbi1VU1wiIGhyZWZMYW5nPVwiZW4tVVNcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPWVzXCIgaHJlZkxhbmc9XCJlc1wiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9ZXMtQVJcIiBocmVmTGFuZz1cImVzLUFSXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1lcy1FU1wiIGhyZWZMYW5nPVwiZXMtRVNcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPWVzLU1YXCIgaHJlZkxhbmc9XCJlcy1NWFwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9ZmktRklcIiBocmVmTGFuZz1cImZpLUZJXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1maWwtUEhcIiBocmVmTGFuZz1cImZpbC1QSFwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9ZnItRlJcIiBocmVmTGFuZz1cImZyLUZSXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1ndS1JTlwiIGhyZWZMYW5nPVwiZ3UtSU5cIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPWhpLUlOXCIgaHJlZkxhbmc9XCJoaS1JTlwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9aWQtSURcIiBocmVmTGFuZz1cImlkLUlEXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1pdC1JVFwiIGhyZWZMYW5nPVwiaXQtSVRcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPWphLUpQXCIgaHJlZkxhbmc9XCJqYS1KUFwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9a24tSU5cIiBocmVmTGFuZz1cImtuLUlOXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1rby1LUlwiIGhyZWZMYW5nPVwia28tS1JcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPW1sLUlOXCIgaHJlZkxhbmc9XCJtbC1JTlwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9bXItSU5cIiBocmVmTGFuZz1cIm1yLUlOXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1tcy1NWVwiIGhyZWZMYW5nPVwibXMtTVlcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPW5iLU5PXCIgaHJlZkxhbmc9XCJuYi1OT1wiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9bmwtTkxcIiBocmVmTGFuZz1cIm5sLU5MXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1wYVwiIGhyZWZMYW5nPVwicGFcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPXBsLVBMXCIgaHJlZkxhbmc9XCJwbC1QTFwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9cHQtQlJcIiBocmVmTGFuZz1cInB0LUJSXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1wdC1QVFwiIGhyZWZMYW5nPVwicHQtUFRcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPXJvLVJPXCIgaHJlZkxhbmc9XCJyby1ST1wiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9cnUtUlVcIiBocmVmTGFuZz1cInJ1LVJVXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT1zdi1TRVwiIGhyZWZMYW5nPVwic3YtU0VcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPXRhLUlOXCIgaHJlZkxhbmc9XCJ0YS1JTlwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9dGUtSU5cIiBocmVmTGFuZz1cInRlLUlOXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT10aC1USFwiIGhyZWZMYW5nPVwidGgtVEhcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPXRyLVRSXCIgaHJlZkxhbmc9XCJ0ci1UUlwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJhbHRlcm5hdGVcIiBocmVmPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9sb2NhbGU9dXItUEtcIiBocmVmTGFuZz1cInVyLVBLXCIvPjxsaW5rIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHJlbD1cImFsdGVybmF0ZVwiIGhyZWY9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P2xvY2FsZT12aS1WTlwiIGhyZWZMYW5nPVwidmktVk5cIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPXpoLUhhbnNcIiBocmVmTGFuZz1cInpoLUhhbnNcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/bG9jYWxlPXpoLUhhbnRcIiBocmVmTGFuZz1cInpoLUhhbnRcIi8+PGxpbmsgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZj1cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDVcIiBocmVmTGFuZz1cIngtZGVmYXVsdFwiLz48bGluayBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiByZWw9XCJzaG9ydGN1dCBpY29uXCIgaHJlZj1cImh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mYXZpY29uLmljb1wiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBwcm9wZXJ0eT1cIm9nOnRpdGxlXCIgY29udGVudD1cIlx1ZDgzNVx1ZGM2NFx1ZDgzNVx1ZGM0ZVx1ZDgzNVx1ZGM2MVx1ZDgzNVx1ZGM1Nlx1ZDgzNVx1ZGM1Mlx1ZDgzNVx1ZGM1YiBvbiBTbmFwY2hhdFwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBwcm9wZXJ0eT1cIm9nOnR5cGVcIiBjb250ZW50PVwid2Vic2l0ZVwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBwcm9wZXJ0eT1cIm9nOnVybFwiIGNvbnRlbnQ9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1XCIvPjxtZXRhIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHByb3BlcnR5PVwib2c6aW1hZ2VcIiBjb250ZW50PVwiaHR0cHM6Ly91cy1lYXN0MS1hd3MuYXBpLnNuYXBjaGF0LmNvbS93ZWItY2FwdHVyZS93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NS9wcmV2aWV3L3NxdWFyZS5qcGVnXCIvPjxtZXRhIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHByb3BlcnR5PVwib2c6aW1hZ2U6d2lkdGhcIiBjb250ZW50PVwiODAwXCIvPjxtZXRhIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHByb3BlcnR5PVwib2c6aW1hZ2U6aGVpZ2h0XCIgY29udGVudD1cIjgwMFwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBwcm9wZXJ0eT1cIm9nOnNpdGVfbmFtZVwiIGNvbnRlbnQ9XCJTbmFwY2hhdFwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBwcm9wZXJ0eT1cIm9nOmRlc2NyaXB0aW9uXCIgY29udGVudD1cIlx1ZDgzNVx1ZGM2NFx1ZDgzNVx1ZGM0ZVx1ZDgzNVx1ZGM2MVx1ZDgzNVx1ZGM1Nlx1ZDgzNVx1ZGM1Mlx1ZDgzNVx1ZGM1YiBpcyBvbiBTbmFwY2hhdCFcIi8+PG1ldGEgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcHJvcGVydHk9XCJ0d2l0dGVyOmNhcmRcIiBjb250ZW50PVwic3VtbWFyeV9sYXJnZV9pbWFnZVwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBwcm9wZXJ0eT1cInR3aXR0ZXI6c2l0ZVwiIGNvbnRlbnQ9XCJAU25hcGNoYXRcIi8+PG1ldGEgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgcHJvcGVydHk9XCJ0d2l0dGVyOnRpdGxlXCIgY29udGVudD1cIlx1ZDgzNVx1ZGM2NFx1ZDgzNVx1ZGM0ZVx1ZDgzNVx1ZGM2MVx1ZDgzNVx1ZGM1Nlx1ZDgzNVx1ZGM1Mlx1ZDgzNVx1ZGM1YiBvbiBTbmFwY2hhdFwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBwcm9wZXJ0eT1cInR3aXR0ZXI6aW1hZ2VcIiBjb250ZW50PVwiaHR0cHM6Ly91cy1lYXN0MS1hd3MuYXBpLnNuYXBjaGF0LmNvbS93ZWItY2FwdHVyZS93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NS9wcmV2aWV3L3NxdWFyZS5qcGVnXCIvPjxtZXRhIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIHByb3BlcnR5PVwidHdpdHRlcjpkZXNjcmlwdGlvblwiIGNvbnRlbnQ9XCJcdWQ4MzVcdWRjNjRcdWQ4MzVcdWRjNGVcdWQ4MzVcdWRjNjFcdWQ4MzVcdWRjNTZcdWQ4MzVcdWRjNTJcdWQ4MzVcdWRjNWIgaXMgb24gU25hcGNoYXQhXCIvPjxtZXRhIGRhdGEtcmVhY3QtaGVsbWV0PVwidHJ1ZVwiIGNoYXJTZXQ9XCJVVEYtOFwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPTBcIi8+PG1ldGEgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCIgbmFtZT1cIm1ldHJpY3MtcGFnZS1uYW1lXCIgY29udGVudD1cIlVzZXJfUHJvZmlsZS5Qcml2YXRlUHJvZmlsZVwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBuYW1lPVwiZGVzY3JpcHRpb25cIiBjb250ZW50PVwiXHVkODM1XHVkYzY0XHVkODM1XHVkYzRlXHVkODM1XHVkYzYxXHVkODM1XHVkYzU2XHVkODM1XHVkYzUyXHVkODM1XHVkYzViIGlzIG9uIFNuYXBjaGF0IVwiLz48bWV0YSBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIiBuYW1lPVwiYXBwbGUtaXR1bmVzLWFwcFwiIGNvbnRlbnQ9XCJhcHAtaWQ9NDQ3MTg4MzcwLCBhcHAtYXJndW1lbnQ9aHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NT9zY19yZWZlcnJlcj13ZWJcIi8+PHNjcmlwdCBkYXRhLXJlYWN0LWhlbG1ldD1cInRydWVcIj5cbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIFwiZGF0YS10aGVtZVwiLFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS10aGVtZS1vdmVycmlkZVwiKSB8fFxuICAgICAgICAgICh3aW5kb3cubWF0Y2hNZWRpYShcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIikubWF0Y2hlcyA/IFwiZGFya1wiIDogXCJsaWdodFwiKSlcbiAgICA8L3NjcmlwdD48dGl0bGUgZGF0YS1yZWFjdC1oZWxtZXQ9XCJ0cnVlXCI+XHVkODM1XHVkYzY0XHVkODM1XHVkYzRlXHVkODM1XHVkYzYxXHVkODM1XHVkYzU2XHVkODM1XHVkYzUyXHVkODM1XHVkYzViIChAd2F0aWVuNDUpIHwgU25hcGNoYXQgU3RvcmllcywgU3BvdGxpZ2h0ICZhbXA7IExlbnNlczwvdGl0bGU+PGxpbmsgcmVsPVwicHJlbG9hZFwiIGhyZWY9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY3NzLzJlNzE4OTVmNzgwMzU4MmIuY3NzXCIgYXM9XCJzdHlsZVwiLz48bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jc3MvMmU3MTg5NWY3ODAzNTgyYi5jc3NcIiBkYXRhLW4tZz1cIlwiLz48bGluayByZWw9XCJwcmVsb2FkXCIgaHJlZj1cImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jc3MvZjlhYTdjMmQ1YzU4ZjNiMS5jc3NcIiBhcz1cInN0eWxlXCIvPjxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiaHR0cHM6Ly9zdG9yeS5zbmFwY2hhdC5jb20vX25leHQvc3RhdGljL2Nzcy9mOWFhN2MyZDVjNThmM2IxLmNzc1wiIGRhdGEtbi1wPVwiXCIvPjxub3NjcmlwdCBkYXRhLW4tY3NzPVwiXCI+PC9ub3NjcmlwdD48c2NyaXB0IGRlZmVyPVwiXCIgbm9tb2R1bGU9XCJcIiBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzL3BvbHlmaWxscy1jNjdhNzVkMWI2Zjk5ZGM4LmpzXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzL3dlYnBhY2stZWJiOGMxMWIwZTYwYzIzZi5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzL2ZyYW1ld29yay1lYzc1NzhiYzNlN2U5Yzc4LmpzXCIgZGVmZXI9XCJcIj48L3NjcmlwdD48c2NyaXB0IHNyYz1cImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jaHVua3MvbWFpbi0yNDc5YmE4ZjJkZjZhYjgxLmpzXCIgZGVmZXI9XCJcIj48L3NjcmlwdD48c2NyaXB0IHNyYz1cImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMvX2FwcC03NGMzNGEzZDhmMjNiOTA0LmpzXCIgZGVmZXI9XCJcIj48L3NjcmlwdD48c2NyaXB0IHNyYz1cImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jaHVua3MvZGRjOWU5NGYtZWY4NjRkNjU5ZjNjNTM1Ni5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzLzc3MTItOWUxYWIwYjhhMTg3ZWZmNC5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzLzU5OTEtMDE1YTQ0ZmU2MmU2NjI0NC5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzLzIyNjctZmQzYjAxY2YzNWVmOGU3Yy5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzLzYzNTctNWFhZGUxNTFiYWQwZTc2Mi5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvY2h1bmtzLzk4LTE0ODcxNzRjMmM3NDExMGEuanNcIiBkZWZlcj1cIlwiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPVwiaHR0cHM6Ly9zdG9yeS5zbmFwY2hhdC5jb20vX25leHQvc3RhdGljL2NodW5rcy9wYWdlcy9hZGQvJTVCdXNlcm5hbWUlNUQtN2ZmZTkwMjQzZjkwY2I4My5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvMjcwNDMtOTA5MmUxMDYzOTkxZTU3NGJjZGYxZGNjODhhYzM0NzE1ODZmYTIzNi9fYnVpbGRNYW5pZmVzdC5qc1wiIGRlZmVyPVwiXCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9XCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9fbmV4dC9zdGF0aWMvMjcwNDMtOTA5MmUxMDYzOTkxZTU3NGJjZGYxZGNjODhhYzM0NzE1ODZmYTIzNi9fc3NnTWFuaWZlc3QuanNcIiBkZWZlcj1cIlwiPjwvc2NyaXB0PjwvaGVhZD48Ym9keSBpZD1cInJvb3RcIj48ZGl2IGlkPVwiX19uZXh0XCI+PGRpdiBpZD1cIlBvcHVwUHJvdmlkZXJcIj48L2Rpdj48L2Rpdj48c2NyaXB0IGlkPVwiX19ORVhUX0RBVEFfX1wiIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCI+e1wicHJvcHNcIjp7XCJwYWdlUHJvcHNcIjp7XCJ2aWV3ZXJJbmZvXCI6e1wiY291bnRyeVwiOlwiTFVcIixcImxvY2FsZVwiOlwiZW4tVVNcIixcImlzR2RwckNvdW50cnlcIjp0cnVlfSxcImxvY2FsaXphdGlvblwiOntcImRpcmVjdGlvblwiOjB9LFwicGFnZUxpbmtzXCI6e1wib25lTGlua1VybFwiOlwiaHR0cHM6Ly9jbGljay5zbmFwY2hhdC5jb20vYVZIRz9waWQ9c25hcGNoYXRfZG93bmxvYWRfcGFnZVxcdTAwMjZhZl9kcD1odHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P3NjX3JlZmVycmVyJTNEd2ViXFx1MDAyNmFmX3dlYl9kcD1odHRwczovL3NuYXBjaGF0LmNvbS9kb3dubG9hZD9wdXJwb3NlJTNEd2ViX3N0b3JpZXMlMjZzcCUzRGFkZF91c2VyXFx1MDAyNmFmX2lvc191cmw9aHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9hcHAvYXBwbGUtc3RvcmUvaWQ0NDcxODgzNzA/cHQlM0Q2MTQwMDYlMjZjdCUzRGFkZF91c2VyJTI2bXQlM0Q4XCIsXCJzbmFwY2hhdENhbm9uaWNhbFVybFwiOlwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NVwiLFwiY2Fub25pY2FsVXJsXCI6XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1XCIsXCJzbmFwY29kZUltYWdlVXJsXCI6XCJodHRwczovL2FwcC5zbmFwY2hhdC5jb20vd2ViL2RlZXBsaW5rL3NuYXBjb2RlP3VzZXJuYW1lPXdhdGllbjQ1XFx1MDAyNnR5cGU9U1ZHXFx1MDAyNmJpdG1vamk9ZW5hYmxlXCIsXCJkb3dubG9hZFVybFwiOlwiaHR0cHM6Ly9zbmFwY2hhdC5jb20vZG93bmxvYWQ/cHVycG9zZT13ZWJfc3Rvcmllc1xcdTAwMjZzcD1hZGRfdXNlclwiLFwib25lTGlua1BhcmFtc1wiOntcIm9uZUxpbmtCYXNlVXJsXCI6XCJodHRwczovL2NsaWNrLnNuYXBjaGF0LmNvbS9hVkhHXCIsXCJwaWRLZXlzXCI6W1wiYWZfcGlkXCIsXCJ1dG1fc291cmNlXCJdLFwicGlkRmFsbGJhY2tWYWx1ZVwiOlwiY29uc3VtZXJfd2ViXCIsXCJjYW1wYWlnbktleXNcIjpbXCJhZl9jXCIsXCJ1dG1fY2FtcGFpZ25cIl0sXCJjYW1wYWlnbkZhbGxiYWNrVmFsdWVcIjpcImFkZF91c2VyXCIsXCJnb29nbGVDbGlja0lkUGFyYW1cIjpcImFmX3N1YjFcIixcImRlZXBMaW5rVXJsXCI6XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1P3NjX3JlZmVycmVyPXdlYlwiLFwiaW9zQXBwU3RvcmVVcmxcIjpcImh0dHBzOi8vYXBwcy5hcHBsZS5jb20vYXBwL2FwcGxlLXN0b3JlL2lkNDQ3MTg4MzcwP3B0PTYxNDAwNlxcdTAwMjZjdD1hZGRfdXNlclxcdTAwMjZtdD04XCIsXCJkZXNrdG9wUGFnZVVybFwiOlwiaHR0cHM6Ly9zbmFwY2hhdC5jb20vZG93bmxvYWQ/cHVycG9zZT13ZWJfc3Rvcmllc1xcdTAwMjZzcD1hZGRfdXNlclwifSxcInNuYXBjaGF0RGVlcExpbmtVcmxcIjpcImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvd2F0aWVuNDU/c2NfcmVmZXJyZXI9d2ViXCJ9LFwicGFnZU1ldGFkYXRhXCI6e1wicGFnZVR5cGVcIjoxNyxcInBhZ2VUaXRsZVwiOlwiXHVkODM1XHVkYzY0XHVkODM1XHVkYzRlXHVkODM1XHVkYzYxXHVkODM1XHVkYzU2XHVkODM1XHVkYzUyXHVkODM1XHVkYzViIChAd2F0aWVuNDUpIHwgU25hcGNoYXQgU3RvcmllcywgU3BvdGxpZ2h0IFxcdTAwMjYgTGVuc2VzXCIsXCJwYWdlRGVzY3JpcHRpb25cIjp7XCJ2YWx1ZVwiOlwiXHVkODM1XHVkYzY0XHVkODM1XHVkYzRlXHVkODM1XHVkYzYxXHVkODM1XHVkYzU2XHVkODM1XHVkYzUyXHVkODM1XHVkYzViIGlzIG9uIFNuYXBjaGF0IVwifSxcInNoYXJlSWRcIjpcIlwifSxcInVzZXJQcm9maWxlXCI6e1wiJGNhc2VcIjpcInVzZXJJbmZvXCIsXCJ1c2VySW5mb1wiOntcInVzZXJuYW1lXCI6XCJ3YXRpZW40NVwiLFwiZGlzcGxheU5hbWVcIjpcIlx1ZDgzNVx1ZGM2NFx1ZDgzNVx1ZGM0ZVx1ZDgzNVx1ZGM2MVx1ZDgzNVx1ZGM1Nlx1ZDgzNVx1ZGM1Mlx1ZDgzNVx1ZGM1YlwiLFwic25hcGNvZGVJbWFnZVVybFwiOlwiaHR0cHM6Ly9hcHAuc25hcGNoYXQuY29tL3dlYi9kZWVwbGluay9zbmFwY29kZT91c2VybmFtZT13YXRpZW40NVxcdTAwMjZ0eXBlPVNWR1xcdTAwMjZiaXRtb2ppPWVuYWJsZVwiLFwiYml0bW9qaTNkXCI6e1wiYXZhdGFySW1hZ2VcIjp7XCJ1cmxcIjpcImh0dHBzOi8vaW1hZ2VzLmJpdG1vamkuY29tLzNkL2F2YXRhci81ODI1MTM1MTYtOTk3ODgwOTY2MTJfMi1zNS12MS53ZWJwXCIsXCJmYWxsYmFja1VybFwiOlwiaHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0L2Fwcy9zbmFwX2JpdG1vamkvYUhSMGNITTZMeTlwYldGblpYTXVZbWwwYlc5cWFTNWpiMjB2TTJRdllYWmhkR0Z5THpVNE1qVXhNelV4TmkwNU9UYzRPREE1TmpZeE1sOHlMWE0xTFhZeExuZGxZbkEuX0ZNcG5nXCJ9LFwiYmFja2dyb3VuZEltYWdlXCI6e1widXJsXCI6XCJodHRwczovL2ltYWdlcy5iaXRtb2ppLmNvbS8zZC9iYWNrZ3JvdW5kLzcyNDc3NTU4Mi0xLndlYnBcIixcImZhbGxiYWNrVXJsXCI6XCJodHRwczovL2NmLXN0LnNjLWNkbi5uZXQvYXBzL3NuYXBfYml0bW9qaS9hSFIwY0hNNkx5OXBiV0ZuWlhNdVltbDBiVzlxYVM1amIyMHZNMlF2WW1GamEyZHliM1Z1WkM4M01qUTNOelUxT0RJdE1TNTNaV0p3Ll9GTXBuZ1wifX19fSxcImxpbmtQcmV2aWV3XCI6e1widGl0bGVcIjpcIlx1ZDgzNVx1ZGM2NFx1ZDgzNVx1ZGM0ZVx1ZDgzNVx1ZGM2MVx1ZDgzNVx1ZGM1Nlx1ZDgzNVx1ZGM1Mlx1ZDgzNVx1ZGM1YiBvbiBTbmFwY2hhdFwiLFwiZGVzY3JpcHRpb25cIjpcIlx1ZDgzNVx1ZGM2NFx1ZDgzNVx1ZGM0ZVx1ZDgzNVx1ZGM2MVx1ZDgzNVx1ZGM1Nlx1ZDgzNVx1ZGM1Mlx1ZDgzNVx1ZGM1YiBpcyBvbiBTbmFwY2hhdCFcIixcImNhbm9uaWNhbFVybFwiOlwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NVwiLFwidHdpdHRlckltYWdlXCI6e1widXJsXCI6XCJodHRwczovL3VzLWVhc3QxLWF3cy5hcGkuc25hcGNoYXQuY29tL3dlYi1jYXB0dXJlL3d3dy5zbmFwY2hhdC5jb20vYWRkL3dhdGllbjQ1L3ByZXZpZXcvc3F1YXJlLmpwZWdcIixcInNpemVcIjp7XCJ3aWR0aFwiOjgwMCxcImhlaWdodFwiOjgwMH19LFwiZmFjZWJvb2tJbWFnZVwiOntcInVybFwiOlwiaHR0cHM6Ly91cy1lYXN0MS1hd3MuYXBpLnNuYXBjaGF0LmNvbS93ZWItY2FwdHVyZS93d3cuc25hcGNoYXQuY29tL2FkZC93YXRpZW40NS9wcmV2aWV3L3NxdWFyZS5qcGVnXCIsXCJzaXplXCI6e1wid2lkdGhcIjo4MDAsXCJoZWlnaHRcIjo4MDB9fX0sXCJsZW5zZXNcIjpbXSxcImN1cmF0ZWRIaWdobGlnaHRzXCI6W10sXCJzcG90bGlnaHRIaWdobGlnaHRzXCI6W10sXCJzcG90bGlnaHRIaWdobGlnaHRzTWV0YWRhdGFcIjpbXSxcInNob3dTbmFwRXhwaXJlZFRvYXN0XCI6ZmFsc2UsXCJsZW5zQ3Vyc29yXCI6XCJcIixcImN1cmF0ZWRIaWdobGlnaHRzQ3Vyc29yXCI6XCJcIixcInNwb3RsaWdodEhpZ2hsaWdodHNDdXJzb3JcIjpcIlwiLFwiZ2FpZFwiOntcIlVBSWRcIjpcIlVBLTQxNzQwMDI3LTFcIixcIm1lYXN1cmVtZW50SWRcIjpcIkctRFBESEpCNDMxMFwifSxcImlzTW9iaWxlXCI6dHJ1ZSxcIm1lc3NhZ2VzXCI6e1wiKzlkK3E3XCI6XCJOb25wcm9maXQgT3JnYW5pemF0aW9uXCIsXCIrQnlKQS9cIjpcIlN0b3JpZXNcIixcIitod2tRUVwiOlwiRmlsbSAvIFRWXCIsXCIrbGhFbFhcIjpcIkNvcHlyaWdodCBpbmZyaW5nZW1lbnRcIixcIjA0cXptR1wiOlwiWW91IHdpbGwgbm93IGJlIHRha2VuIHRvIHRoZSBuZXh0IFNuYXAgLSBwcmVzcyAnQ2xvc2UnIHRvIGRvIHRoaXMgcmlnaHQgYXdheSBvciB3ZSB3aWxsIGNvbnRpbnVlIGF1dG9tYXRpY2FsbHkgaW4gMTAgc2Vjb25kcy5cIixcIjBGUDk3NVwiOlwiUG9zdCB0byBTcG90bGlnaHRcIixcIjBZNmMwV1wiOlwiUmVzdGF1cmFudCBDaGFpblwiLFwiMFlLRHhyXCI6XCJQaG90b2dyYXBoZXJcIixcIjBkSno2U1wiOlwiVGhyZWF0ZW5pbmcsIHZpb2xlbnQsIG9yIGNvbmNlcm5pbmdcIixcIjB1SGp5ZVwiOlwiU2hhcmUgdGhpcyBTbmFwXCIsXCIxUHpDZG1cIjpcIkl0IGFza3MgZm9yIG9yIHRocmVhdGVucyB0byBwb3N0IGluYXBwcm9wcmlhdGUgU25hcHNcIixcIjFWOFVtYVwiOlwiUHVibGljIEZpZ3VyZVwiLFwiMWVnQUdpXCI6XCJNb3ZpZSBDaGFyYWN0ZXJcIixcIjFrZGNsMlwiOlwiTWVkaWEgLyBOZXdzIENvbXBhbnlcIixcIjJMTGlZYlwiOlwiQ2xvc2VcIixcIjJWNDB5VFwiOlwiTW9yZSBPcHRpb25zXCIsXCIybDczMGtcIjpcIkZpbG0gLyBUViBQZXJzb25hbGl0eVwiLFwiNUhzU3JPXCI6XCJJIGp1c3QgZG9uJ3QgbGlrZSBpdFwiLFwiNW0zSHU4XCI6XCJJJ20gd29ycmllZCB0aGlzIFNuYXBjaGF0dGVyIG1pZ2h0IGh1cnQgdGhlbXNlbHZlc1wiLFwiNW9UelIvXCI6XCJQcm9maWxlIFJlY29tbWVuZGF0aW9uc1wiLFwiNXY2d1A3XCI6XCJNb3RpdmF0aW9uYWwgU3BlYWtlclwiLFwiNXpaR25HXCI6XCJXcml0ZXJcIixcIjZ5dm9aRFwiOlwiU29ycnksXCIsXCI3Qkh3M2hcIjpcIlJlbGlnaW91cyBPcmdhbml6YXRpb25cIixcIjdIUDBKZlwiOlwiQ29hY2hcIixcIjdYWk0yTFwiOlwiQnVzaW5lc3NcIixcIjdyVm5JalwiOlwiU3BvdGxpZ2h0XCIsXCI3eGVoUnlcIjpcIlByb2R1Y2VyXCIsXCI3eXVZYVVcIjpcIkJ1c2luZXNzZXMgXFx1MDAyNiBHcm91cHNcIixcIjhTdzRqWVwiOlwiUmVwb3J0IFNuYXBcIixcIkE5dFA2RlwiOlwiU2hhcmVcIixcIkFUZURpUlwiOlwiVGhhbmsgeW91IGZvciByZXBvcnRpbmcgdGhpcyBTbmFwLlwiLFwiQWJrUVBzXCI6XCJJdCdzIGFuIGludmFzaW9uIG9mIHByaXZhY3lcIixcIkF0TEYvdVwiOlwiVGhpcyBjb250ZW50IHdhcyBub3QgZm91bmRcIixcIkNBZ0NaNVwiOlwiTnVkaXR5IG9yIHNleHVhbCBjb250ZW50XCIsXCJDSkJGR29cIjpcIlBvbGl0aWNpYW5cIixcIkNWdWNJZlwiOlwiQ29tbXVuaXR5IE9yZ2FuaXphdGlvblwiLFwiRFk0eUhBXCI6XCJCcmFuZFwiLFwiRVBCRStsXCI6XCJHb3Zlcm5tZW50IE9mZmljaWFsXCIsXCJFU29tRThcIjpcIlN1Ym1pdFwiLFwiRkRPdTYzXCI6XCJTb21lb25lIGVsc2UgaXMgYmVpbmcgYnVsbGllZCBvciBoYXJhc3NlZFwiLFwiRnNnMTM2XCI6XCJFcGlzb2RlIHtlcGlzb2RlTnVtYmVyfVwiLFwiRnR0YTZjXCI6XCJJdCdzIHRocmVhdGVuaW5nIGEgcGVyc29uIG9yIHBsYWNlXCIsXCJHN2hSaWtcIjpcIlNwb3RsaWdodCBpcyBub3QgYXZhaWxhYmxlIGluIHlvdXIgbG9jYXRpb25cIixcIkdKWnM1RVwiOlwiSXQncyBzcGFtXCIsXCJHYU51TTJcIjpcIkJlc3Qgb2YgU3BvdGxpZ2h0XCIsXCJHaDFhL2pcIjpcIkZvb2QgUHJvZmVzc2lvbmFsXCIsXCJHc3NiT25cIjpcIlByb2R1Y3RcIixcIkd2dXFtZVwiOlwiSXQncyBhbiBpbmFwcHJvcHJpYXRlIFNuYXAgb2Ygc29tZW9uZSBlbHNlXCIsXCJITHhXTk1cIjpcIkl0IHNlbGxzIG9yIHByb21vdGVzIGluYXBwcm9wcmlhdGUgU25hcHNcIixcIkhWZ1phQlwiOlwiQ3JlYXRvclwiLFwiSTZzb3ZxXCI6XCJQb2xpdGljYWwgT3JnYW5pemF0aW9uXCIsXCJJV0tFUk5cIjpcIkZhc2hpb24gTW9kZWxcIixcIkpiQ1I1VlwiOlwiVGhpcyBjb250ZW50IGlzIG5vdCBhdmFpbGFibGVcIixcIkp1Nzduc1wiOlwiQ29tZWRpYW5cIixcIk1EdGhnVlwiOlwiU3BvcnRzIExlYWd1ZVwiLFwiTVV6V0I3XCI6XCJQbGVhc2UgcHJvdmlkZSB5b3VyIFNuYXBjaGF0IHVzZXJuYW1lIGlmIHlvdSBoYXZlIG9uZSwgYW5kIHRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggeW91ciBhY2NvdW50XCIsXCJON1dxL2NcIjpcIlZpb2xlbnQgb3IgZGlzdHVyYmluZ1wiLFwiTlhQVmt2XCI6XCJDb21wYW55IC8gRW50ZXJwcmlzZVwiLFwiUFFjTGkvXCI6XCJTZXJ2aWNlXCIsXCJQeXpkWExcIjpcIkNhbmNlbFwiLFwiUTcxSWJVXCI6XCJHb3Zlcm5tZW50IE9yZ2FuaXphdGlvblwiLFwiUkpvMFozXCI6XCJIYXJhc3NtZW50IG9yIEhhdGUgc3BlZWNoXCIsXCJSbUU1bFBcIjpcIkxpZmVzdHlsZSBJbmZsdWVuY2VyXCIsXCJSb3RBSjFcIjpcIlZpZXcgQWNjb3VudFwiLFwiUnROeTcxXCI6XCJNdXNpY2lhbiAvIEJhbmRcIixcIlNDZTRHUVwiOlwiRmlsbSBEaXJlY3RvclwiLFwiU1ZPSktoXCI6XCJWaWRlbyBHYW1lXCIsXCJTZ0ZUdGtcIjpcIlVwIG5leHRcIixcIlQ0ODJYeVwiOlwiU3Rvcmllc1wiLFwiVDdOZU11XCI6XCJTZWxlY3RlZFwiLFwiVE5LL1cvXCI6XCJMZW5zZXNcIixcIlRtNnlGdFwiOlwiRG93bmxvYWQgU25hcGNoYXRcIixcIlRyQ3R4SFwiOlwiU2NhbiB0aGlzIFNuYXBjb2RlIHRvIGFkZCB7c25hcFVzZXJOYW1lfVwiLFwiVUlaVHp1XCI6XCJJdCdzIGF0dGVtcHRpbmcgdG8gYnV5IG9yIHNlbGwgZHJ1Z3Mgb3Igd2VhcG9uc1wiLFwiVWs1NXNNXCI6XCJBZGQgbWUgb24gU25hcGNoYXQhXCIsXCJWUm1ERlZcIjpcIlNuYXAgUmVwb3J0ZWRcIixcIlZaUXg2N1wiOlwiVGhpcyBTbmFwIGlzIG5vIGxvbmdlciBhdmFpbGFibGVcIixcIlZlaktWVVwiOlwie3VzZXJuYW1lfSdzIFN0b3J5XCIsXCJXMDdJOFZcIjpcIlNoYXJlIHt1c2VybmFtZX0ncyBTbmFwXCIsXCJXR3RwQk1cIjpcIlBlb3BsZVwiLFwiV3lVd0htXCI6XCJUaGV5IGFyZSBwcmV0ZW5kaW5nIHRvIGJlIG1lXCIsXCJYYlhvTVJcIjpcIkFjdG9yXCIsXCJaUHJIcmxcIjpcIkludGVybmV0IENvbXBhbnlcIixcIlpWaVpncVwiOlwiVHJhdmVsZXJcIixcIlpsSk8wUVwiOlwiQXBwYXJlbCAvIEZhc2hpb25cIixcIlp2M3F6a1wiOlwiU3RhcnQgVmlkZW8gQ2FsbFwiLFwiYVNYUXkwXCI6XCJTcG9ydHMgUGVyc29uYWxpdHlcIixcImFoNmwzY1wiOlwiQ2hhcml0eSAvIENhdXNlXCIsXCJhaXM4ZUtcIjpcIkdyb3VwXCIsXCJieTJkZ0VcIjpcIk5ld3MgUGVyc29uYWxpdHlcIixcImRBa3NkOVwiOlwiSm91cm5hbGlzdFwiLFwiZEl0dzZxXCI6XCJEYW5jZXJcIixcImRKRHUvM1wiOlwiRW50cmVwcmVuZXVyXCIsXCJkUEpodFpcIjpcIlNlbmQgTWVzc2FnZVwiLFwiZGtXeVByXCI6XCJWbG9nZ2VyIC8gQmxvZ2dlclwiLFwiZXlGK1hDXCI6XCJTZW5kIFNuYXBcIixcImZQSXk1dlwiOlwiUmV0YWlsIENvbXBhbnlcIixcImdlMDRiVVwiOlwiU2hhcmUgdGhpcyBwcm9maWxlXCIsXCJoUHhEUUNcIjpcIlZpZGVvIEdhbWUgQ3JlYXRvclwiLFwialdhNE9UXCI6XCJDb2xsZWdlIC8gVW5pdmVyc2l0eVwiLFwianFwSCs1XCI6XCJJcyB0aGVyZSBhbnkgbW9yZSBpbmZvcm1hdGlvbiB5b3Ugd2FudCB0byBzaGFyZSBhYm91dCB0aGlzIFNuYXA/XCIsXCJrTkNmOTBcIjpcIlByb2R1Y3RzIFxcdTAwMjYgQnJhbmRzXCIsXCJsMWZuVUdcIjpcIlNjaWVudGlzdFwiLFwibDg4YzdlXCI6XCJBZGQgRnJpZW5kXCIsXCJsYnVpK2lcIjpcIkl0J3MgaGF0ZSBzcGVlY2ggdGFyZ2V0aW5nIG1lIG9yIGFub3RoZXIgZ3JvdXBcIixcInBDSzhGSlwiOlwiQXJ0aXN0XCIsXCJwUElpT2xcIjpcIntzdWJzY3JpYmVyQ291bnR9IFN1YnNjcmliZXJzXCIsXCJxc3pEdkdcIjpcIlN1YnNjcmliZVwiLFwickw4SFl6XCI6XCJQcm9mZXNzaW9uYWwgR2FtZXJcIixcInJOVlBua1wiOlwiSXQncyBhbiBpbmFwcHJvcHJpYXRlIFNuYXAgb2YgbWVcIixcInMyWE5XclwiOlwiTm8gc3RvcmllcyB0byBzaG93XCIsXCJzUk04aTVcIjpcIldoeSBkbyB5b3Ugd2FudCB0byByZXBvcnQgdGhpcyBTbmFwP1wiLFwic1ZjVThxXCI6XCJQb3N0ZWQgdG8gU25hcCBNYXBcIixcInNuVUZBeVwiOlwiU2VyaWVzIHtzZWFzb25OdW1iZXJ9XCIsXCJ0WUZiL1BcIjpcIlNwb3RsaWdodFwiLFwidlRkK2E4XCI6XCJJJ20gYmVpbmcgYnVsbGllZCBvciBoYXJhc3NlZFwiLFwidnFkRVI2XCI6XCJGaXRuZXNzIFByb2Zlc3Npb25hbFwiLFwid1ZmeGJEXCI6XCJQb2xpdGljYWwgQ2FuZGlkYXRlXCIsXCJ3cEx4N3pcIjpcIkxlbnMgQ3JlYXRvclwiLFwieDFDLzVLXCI6XCJQZXJzb25cIixcInhMYU84dlwiOlwiSGVhbHRoIC8gQmVhdXR5XCIsXCJ5RUFTK0FcIjpcIlByb2ZpbGUgUGljdHVyZVwiLFwieVQ2YTNoXCI6XCJJbiB0aGlzIFNuYXBcIixcInlzN1kyNlwiOlwiQXRobGV0ZVwiLFwiekV4WE5CXCI6XCJTcG9ydHMgVGVhbVwiLFwiL3I3QmM0XCI6XCJ7dGltZURpZmZlcmVuY2V9aCBhZ29cIixcIjNua2hpaFwiOlwiU2VhcmNoIExlbnNlc1wiLFwiQkxiZTU3XCI6XCJJdCBpbnZvbHZlcyBhIGNoaWxkXCIsXCJEYW9kdHZcIjpcInt0aW1lRGlmZmVyZW5jZX1tIGFnb1wiLFwiRzBDQ3pKXCI6XCJTbmFwY2hhdCBMZW5zIEljb24gZm9yIHtsZW5zTmFtZX1cIixcIkwyaG9qc1wiOlwiSXQncyBhdHRlbXB0aW5nIHRvIGJ1eSBvciBzZWxsIGRydWdzXCIsXCJMbldERHZcIjpcIkp1c3Qgbm93XCIsXCJUVnRVVk5cIjpcIlNuYXBjaGF0IFRodW1ibmFpbFwiLFwiY1Q1R1BIXCI6XCJJdCdzIGF0dGVtcHRpbmcgdG8gYnV5IG9yIHNlbGwgd2VhcG9uc1wiLFwibmloN2d1XCI6XCJ7bGVuc05hbWV9IExlbnNcIixcIm9QUWs0VlwiOlwiVGhleSBhcmUgcHJldGVuZGluZyB0byBiZSBzb21lb25lIGVsc2VcIixcInN1YnNjcmliZXJDb3VudFwiOlwie3N1YnNjcmliZXJDb3VudH0gU3Vic2NyaWJlcnNcIixcIjh5NE9MQ1wiOlwiVVJMIENvcGllZCFcIixcInpGYVZRT1wiOlwiQ29weSBMaW5rXCIsXCIzc1N4UWlcIjpcIlNuYXBjaGF0IGlzIGJldHRlciBvbiB0aGUgYXBwXCIsXCI0N0ZZd2JcIjpcIkNhbmNlbFwiLFwiNkpvTEdYXCI6XCJQcml2YWN5IFBvbGljeVwiLFwiQnFobHFwXCI6XCJUZXJtcyBvZiBTZXJ2aWNlXCIsXCJFYm4vcnJcIjpcIlN1cHBvcnRcIixcIkg4ZE1IUVwiOlwiQ2hhdCwgU25hcCBhbmQgdmlkZW8gY2FsbCB5b3VyIGZyaWVuZHMgZnJvbSB3aGVyZXZlciB5b3UgYXJlLlwiLFwiTGZNZDVRXCI6XCIzMDAwIDMxc3QgU3RyZWV0LCBTYW50YSBNb25pY2EsIENBIDkwNDA1XCIsXCJON2lJL2tcIjpcIkRvd25sb2FkIFNuYXBjaGF0IHRvIGZpbmQgbW9yZVwiLFwiUDZZR1F6XCI6XCJPcGVuIGluIFNuYXBjaGF0XCIsXCJQcTFkaFZcIjpcIkNvbnRpbnVlXCIsXCJRNUYwbnhcIjpcIlRlcm1zIG9mIFNlcnZpY2VcIixcIlVGRjQ4U1wiOlwiU25hcGNoYXQgaXMgbm93IG9uIHRoZSB3ZWIhXCIsXCJXWVczOWdcIjpcIlNuYXAsIGNoYXQgYW5kIHZpZGVvIGNhbGwgeW91ciBmcmllbmRzIGZyb20geW91ciBicm93c2VyLlwiLFwiWmdzVlpxXCI6XCJMb2cgaW4gdG8gY2hhdFwiLFwiYjF2SDZpXCI6XCJQcml2YWN5IFBvbGljeVwiLFwiZng0TGZtXCI6XCJCYW5uZXIgSW1hZ2VcIixcImdKY1M5VlwiOlwiVGhlcmVcdTIwMTlzIG1vcmUgdG8gZGlzY292ZXIgaW4gdGhlIEFwcFwiLFwibVNTZVBEXCI6XCJOZXchXCIsXCJtblI0MWFcIjpcIlRyeSB0aGUgbW9zdCBwb3B1bGFyIExlbnNlcywgU25hcCBhbmQgQ2hhdCB3aXRoIGZyaWVuZHMsIGV4cGxvcmUgdGhlIE1hcCwgYW5kIHNvIG11Y2ggbW9yZSFcIixcInNvODRaVFwiOlwiQnJvd3NlclwiLFwieUJIb1F1XCI6XCJUcnkgbm93IVwiLFwiL280RnRRXCI6XCJNYXBcIixcIjE1c2JRS1wiOlwiRGV2ZWxvcGVyc1wiLFwiMUpBYk5BXCI6XCJTdG9yaWVzXCIsXCIxVHFaRTdcIjpcIlB1YmxpYyBQcm9maWxlcyBmb3IgQnVzaW5lc3NcIixcIjJpRVlBdVwiOlwiTGVuc2VzXCIsXCI1bGlyTC9cIjpcIkZvciBCdXNpbmVzc1wiLFwiNjd4cURuXCI6XCJDcmVhdG9yXCIsXCI3Y0JQWk1cIjpcIlByaXZhY3kgUG9saWN5XCIsXCI5VmRoVDVcIjpcIk5ld3NcIixcIkFpT2YvWVwiOlwiTW9iaWxlIEdsb2JhbCBOYXZpZ2F0aW9uXCIsXCJCaG9GbVlcIjpcIlBvc3QgdG8gU3BvdGxpZ2h0XCIsXCJDeE1VNlVcIjpcIk1vYmlsZSBuYXZpZ2F0aW9uIHdpZGdldFwiLFwiRFlRajlFXCI6XCJTbmFwY2hhdCBBZHNcIixcIkZvYkMwRVwiOlwiU3VwcG9ydFwiLFwiR3M0WjdLXCI6XCJUZXJtcyBvZiBTZXJ2aWNlc1wiLFwiSDJ4aThJXCI6XCJCdXNpbmVzcyBTdXBwb3J0XCIsXCJKSlE4L0VcIjpcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCIsXCJKYTZOY1pcIjpcIkRvd25sb2FkXCIsXCJMSVR5Qk9cIjpcIkZvciBEZXZlbG9wZXJzXCIsXCJMV1FrNEFcIjpcIkFkc1wiLFwiTFhHZDBaXCI6XCJBY2NvdW50XCIsXCJNUGZtb3pcIjpcIkludmVzdG9yc1wiLFwiTVJSd1RDXCI6XCJTdXBwb3J0XCIsXCJOYXVsYUtcIjpcIkJ1c2luZXNzIFN1cHBvcnRcIixcIlBManZXZlwiOlwiWW91ciBQcml2YWN5IENob2ljZXNcIixcIlFMU3ZXVVwiOlwiU3VwcG9ydFwiLFwiVFU4RTdzXCI6XCJGZWF0dXJlc1wiLFwiVXJEL3N6XCI6XCJGb3IgZGV2ZWxvcGVyc1wiLFwiWHJtNTJBXCI6XCJGb3IgQ3JlYXRvcnNcIixcIllZUTgvRVwiOlwiQ29va2llIFBvbGljeVwiLFwiWkMwUDlIXCI6XCJEZXNrdG9wIEdsb2JhbCBOYXZpZ2F0aW9uIERvd25sb2FkXCIsXCJjZEZNdDdcIjpcIkZvciBCdXNpbmVzc1wiLFwiZGhyT1VaXCI6XCJBY2NvdW50c1wiLFwiZTd3U0xuXCI6XCJNYXJrZXRpbmcgQVBJXCIsXCJmbUtMWWpcIjpcIkNyZWF0b3JzXCIsXCJraForejZcIjpcIlNuYXAgUHVibGlzaGVyXCIsXCJsSDFEOWNcIjpcIk92ZXJ2aWV3XCIsXCJtNUVGc1hcIjpcIkNvbnN1bWVyIE5hdmlnYXRpb25cIixcIm1pbFlhMFwiOlwiQnVzaW5lc3NcIixcInByOWFNUlwiOlwiT3BlbiBNb2JpbGUgTmF2aWdhdGlvblwiLFwicUZleWZiXCI6XCJEb3dubG9hZFwiLFwicWhubzNMXCI6XCJTcGVjdGFjbGVzIFN1cHBvcnRcIixcInJnaElNM1wiOlwiU2FmZXR5IFxcdTAwMjYgSW1wYWN0XCIsXCJydVdyQ3BcIjpcIkRlc2t0b3AgR2xvYmFsIE5hdmlnYXRpb25cIixcInJ4NWQ1a1wiOlwiQ2FyZWVyc1wiLFwidGpFZkxXXCI6XCJTdXBwb3J0XCIsXCJ0cUJoZktcIjpcIk9wZW4gQnVzaW5lc3MgTmF2aWdhdGlvblwiLFwidHYrVDFoXCI6XCJBZHMgTWFuYWdlclwiLFwidTZBSzNNXCI6XCJDaGF0XCIsXCJ1Z3dETTVcIjpcIkRlc2t0b3AgR2xvYmFsIE5hdmlnYXRpb24gU25hcGNoYXQgQWRzXCIsXCJ2WEh6ejFcIjpcIkFkcyBNYW5hZ2VyXCIsXCJ3dndoNWJcIjpcIkNyZWF0b3IgSHViXCIsXCJ4d3ZXdjNcIjpcIkJ1c2luZXNzIE5hdlwiLFwieXdib0M3XCI6XCJDaXRpemVuU25hcFwiLFwiempWY2JIXCI6XCJTaG9wXCJ9fSxcInN0YXR1c1wiOjAsXCJsb2dcIjp7XCJsZXZlbHNcIjp7XCJUUkFDRVwiOjAsXCJERUJVR1wiOjEsXCJJTkZPXCI6MixcIldBUk5cIjozLFwiRVJST1JcIjo0LFwiU0lMRU5UXCI6NX19fSxcInBhZ2VcIjpcIi9hZGQvW3VzZXJuYW1lXVwiLFwicXVlcnlcIjp7XCJ1c2VybmFtZVwiOlwid2F0aWVuNDVcIn0sXCJidWlsZElkXCI6XCIyNzA0My05MDkyZTEwNjM5OTFlNTc0YmNkZjFkY2M4OGFjMzQ3MTU4NmZhMjM2XCIsXCJhc3NldFByZWZpeFwiOlwiaHR0cHM6Ly9zdG9yeS5zbmFwY2hhdC5jb21cIixcImlzRmFsbGJhY2tcIjpmYWxzZSxcImdpcFwiOnRydWUsXCJhcHBHaXBcIjp0cnVlLFwic2NyaXB0TG9hZGVyXCI6W119PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4ifSwgImhlYWRlcnNTaXplIjogMCwgImJvZHlTaXplIjogODM2MCwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogODM2MH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogMS41NDIsICJjb25uZWN0IjogMTcuMzIsICJzc2wiOiAxMi40NDMsICJzZW5kIjogMCwgIndhaXQiOiAxNDEuMDk5LCAicmVjZWl2ZSI6IDMuMzY2fSwgInBhZ2VyZWYiOiAicGFnZUA4NmRkZTQ5YjA3NzI4ZjUwOGM2ODJhYTg1NzRjM2U0OCIsICJzZXJ2ZXJJUEFkZHJlc3MiOiAiMzQuMTQ5LjQ2LjEzMCIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAiKi5zbmFwLmNvbSIsICJpc3N1ZXIiOiAiRGlnaUNlcnQgR2xvYmFsIEcyIFRMUyBSU0EgU0hBMjU2IDIwMjAgQ0ExIiwgInZhbGlkRnJvbSI6IDE2ODEzNDQwMDAsICJ2YWxpZFRvIjogMTcxMjk2NjM5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTA1LTEzVDE4OjAyOjI5LjIwNFoiLCAidGltZSI6IDEyNS41MTUsICJyZXF1ZXN0IjogeyJtZXRob2QiOiAiR0VUIiwgInVybCI6ICJodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1Cb2xkLndvZmYyIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAic3RhdGljLnNuYXBjaGF0LmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9mb250cy9BdmVuaXJOZXh0LUJvbGQud29mZjIifSwgeyJuYW1lIjogIjpzY2hlbWUiLCAidmFsdWUiOiAiaHR0cHMifSwgeyJuYW1lIjogImFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogImFjY2VwdC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAib3JpZ2luIiwgInZhbHVlIjogImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbSJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJmb250In0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJjb3JzIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtc2l0ZSIsICJ2YWx1ZSI6ICJzYW1lLXNpdGUifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExMy4wLjU2NzIuNTMgU2FmYXJpLzUzNy4zNiJ9XSwgInF1ZXJ5U3RyaW5nIjogW10sICJoZWFkZXJzU2l6ZSI6IDQ2MiwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiYWNjZXB0LXJhbmdlcyIsICJ2YWx1ZSI6ICJieXRlcyJ9LCB7Im5hbWUiOiAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctY3JlZGVudGlhbHMiLCAidmFsdWUiOiAidHJ1ZSJ9LCB7Im5hbWUiOiAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctbWV0aG9kcyIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5zbmFwY2hhdC5jb20ifSwgeyJuYW1lIjogImFnZSIsICJ2YWx1ZSI6ICI1NDA0MTE1In0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDAscHVibGljLGltbXV0YWJsZSJ9LCB7Im5hbWUiOiAiY29udGVudC1sZW5ndGgiLCAidmFsdWUiOiAiNjQ0MjQifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJmb250L3dvZmYyIn0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIlN1biwgMTIgTWFyIDIwMjMgMDQ6NTM6NTQgR01UIn0sIHsibmFtZSI6ICJldGFnIiwgInZhbHVlIjogIlwiN2U5YWM0MGE5YmUzY2QzODQzNzI3NzVkODU3NDBkMmRcIiJ9LCB7Im5hbWUiOiAibGFzdC1tb2RpZmllZCIsICJ2YWx1ZSI6ICJNb24sIDI4IEZlYiAyMDIyIDA5OjUyOjAyIEdNVCJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogIkFtYXpvblMzIn0sIHsibmFtZSI6ICJ2YXJ5IiwgInZhbHVlIjogIk9yaWdpbixBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMsQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOGE2ZjY3YTk0MjFkZTMyNmY0M2U5MTA3NzUxYjU4MGUuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJVYWNlTExfaDRvcXVoblVXVDFMM2hpaGRlQ0FvZkpzb3pZUXlnUm1HT3RRSU92M0xPQU1vaVE9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTU2LVA0In0sIHsibmFtZSI6ICJ4LWFtei12ZXJzaW9uLWlkIiwgInZhbHVlIjogIm51bGwifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiSGl0IGZyb20gY2xvdWRmcm9udCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA2NDQyNCwgIm1pbWVUeXBlIjogImZvbnQvd29mZjIiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICJkMDlHTWdBQkFBQUFBUHVvQUJFQUFBQUUvWVFBQVB0QUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBaR1ZFMGNHb0VLRy90QUhMVVVCbUFBaVhZSUdBbUNjd3FROXlTUHAxOExveXdBQVRZQ0pBT2pLQVFnQmFjekI5SUFER0JiN29LMEFLS0wwY3k2WEh0MUtXeUY4RjQzR2REanFwdWF2bWhNRHhoNTJQc0ZUT2ZZZEpEUE9BcVM0Q08wdk02SFpvdmJSdXpQUEY1WlFzaisvLy8vLy8vLy85KzJURVJuMHRuK2sreVFrRUFZS2JQc01yOFZJak56U3FhNGtLWHlVYTY5b1l6YkxGNHFSWEZJK2xnb0hhWFZFNjkxUFZXTWJoR0tya2pwWnpibndtUTVsTW1YemdFcjJCbGt6RllHcmtNOHdhOUc5MnBqc2xVNzhXU0lkMW4ycFBwV0RlQUJrbnBRSG1EeEZ2cW9QTjBhWmFtRVcyQ21UOG9NdUpRQWM4amd3N1loV1ZkSFA2c2lGMkozRTlJb05HMnljRmN1M21meFRLa1Z4VlVkY3AzdnBlaGJldFh4MHVrRy9DZ21lSUhEdGJzdkhsMHRkWExkS0xmNUtidStqRnA3WlJuL1FCTFNJQWxwbUxoc1o3SWE1SERUNzVNMEVWK1FiYXpMTGJDNlE5S1FtYWxaK3lpbHFDdzVpMHNyczhXdUlOTXJUVkNEbXh5dnJqYjZYSW5oTVNxaG04MndORk1lUkVSNE1yaG05TjBsUWs1bHFqK2ErZ3E0SmlUQlZvd2ttUEVUcDUvci8rb1pzSUprUUE4Wjd4ZGF1bGsrb1NaRUZDSW1zR3piL2Q1bCtYbnVmdTNlU29uK2l3OUJEYTdmVFZnRkMzN2dPdTcwRXllbk1jWDJpRm1OY0ltYmM5UlB2RGZNNS9sVXZTWlNwZXg5b0NVMUJMUlJKZzdKQlA3dzl3YlpYN3IzZjhlZWlUd0dVRG5NVWdQK0lxYklRQnFaeUVJYTZSM21DZXVHL2N4WC9Fbjg4Lzc5ZjE5ampuMXZnK2U5cGtKR0VMK2dyTVB2aU1qc1RCRWpoNERXei9OeiszUHZlNnUzalNWUlkrUWVJMFI2Yk9DWU1CZ1oycGlGUlE2czJVMzlHWTMrLzdFeHNsRXhpaElCNGFlMXF1OEZVVVlrVTNGM05RL3Q3QUdTT3YrbFBDT0JoRDNOUXU0QXpFMEVBNFBjeGlxQ1ZiTm1JM3BrS0NZbUNoaGdKb3Bnb1lpaTNzYkllSXZCZlpUTTUxOFpWeXdQS2tOMEtWcW9hRklKNVZYeFQ4cDdWMFhnQ3ZPNW1rL05haGFlcG5zZnBsN2gzcTZlL084VkZVZ3FMdU1xYWpFWjFaWDJxNVBkY3BMTFkrbU9wVTZNYXlzaVhtazdJdWtEaGtBcDRRSndBNUM5MmVYL2Z5eitkWjNaOHlDRUNCMWhZMXlva0swcEZGSmo3TC83cXI1eHlqSWpwZDNaZEd2VDcrM3RFQVZKaUNsU0R5QmRidHd5M3FacXVvSUVXTk9YN1V1L1BmL0xUa3VJeFpnU2ZCVGRLQ2IzOCtZSlJrQWRiR01LOXZmbHRMNUtzcFAzcXRUUjdpYytFbEYxbDZSMnpJbG03Sm4xQUM5SlYvdUtHY0NFbHdoT0g0YklwdkFLWFFoTXIvTkIzNU5rV2JZa2l5MThZb3ZZQXZQSEFQS1VUTG1zUUhOUzJwcXAxNjBiNE5qcjFySFhyV3VYb1pmQmQvTnJPcU93WWxid3NZb2xUU3BHUjJySW5HZCtIeitYQXdBRURVQXdFQkFLbWZQU2ZnbWxnQkdBMDl2Z09mQVpqTFBmRGFiUEFBQUNrTEdaa2pla2w5b2Vpb29JQ0RzR0crdEdtRVgyRFo1N3Nkd3NSWmI5U2dCL0JKaHI0bjJGYTZnSWdhalVGTzVNUkNacUpxWUdFOUowUFAxejhidUFMK0dGQVVzNCtTQmVDYzN4RVZ6K0NRN21CWUdrRXlrY0pqZ2dlL2NQbGhrdk13L0d6UnM0UFFCNWk4MC9NMmFQYi92NVoyeWU1eHZ6amZtSEdFTDhtZkw4eWZkRjVSbEw5QkdpZnZPbEZ6My9vWDQ5Vy9xbzI4QThRODRqZEtuVlcyL1QrZ1AxYUFsS2pheHBXeVFMbTJIc2pkNmMvaTBkZnhJTUFFQ21FL3VLU3Z3TkhtWUJLWmkwZ2hFNjB6T0FHNWhuamM4amZHaHdYaW50TFErK29CWmdVUUU5L1A2cXkzTjUxeFdPcHdRb0ZkWFpmSFdJL1FBSC9IK2dCL2ovOXdiTVF3NEM2WGdRVk50dnUvZEZsZDdtOGxUM21nOXNnKzBkWVBEOTFRNTdpVTgybGxoMTZDbG1GSE5zbVdvdGJkdHYyTGlZbE1hN2tMWmhveGhjVUI3UUVlenpiNnE5N1h0RFVRSTJBaXNIeXBFNE9qaEgrazZTMTZlWDVCUkNVYzNjOSthQjg5NE1RUTVJU2dRRUJVQUpoQ1Jib0NLb2xUR0RRR1pSSVhGLzFBOHBrY1JHU2o5cTk2ZWc3L3l6MWltRktvZjJoMXk1OUhGWHBTN2x5bTMvUzFkbHlrVnZ2LzlwZmRMZnU1a2xBSmN0UVQvMUROcmdrQkNiTHBYMFBOM3FrVk1NcjFTMzZxbWwxNXJaa0NKQWRvYkcwTlFRcU52T2FJOHBxQXZqMUlDa0s3TGdvWFc3bkM1R0VzQ3Y0Tkk3Zm9XSUg1N3ZsL1pKNTd5cjdwNE5EbTF0aEZPRFRKZzJKTG9NYWE2dVdpVTl2WDQvWkZsZlRtbStxMUtlcDVibXQ4S0dQUHU5eFUzNHAzYUd5NGdCTnlRdVF5TWppTTBEL2FXTjU3OHNwVFR6blNpVjBxaFU3RUFSanVFVjRDTTVpTW9xcTFob09DSURjMzllQWZ0U2tMcVg0UXFKckt4NzNwNlBmbnNJdHVCbDZTNm9MRS9mQi92MjF1VjkzQjUycUtNdlBUdzhJak1qS2hJejAraEJQOU1yeXowZmQwZWVITWNmd1JCUjFVTWs1cjVlN2lPWXU5SlpwZmZJU2ZCSmVnaFpTcjc3cWhudHVUeTZXajBCYWIyeXB1V2U3cFkxc24xSUlXRDJDREhrWC9rRjJSTkIrdlhwaGdwMzMya3YvVDA1VnNkRXNJREpvaWhWRk45dC8rRmN1c1prdVk5c293SmNnUHI0THlEbGhhRFUwOSs0dDNnWUlIN1F4Z1B4QkxLd21USzdOQitJY251Y0xBdXNBZ3RPcWMva2xWZDJ2dSsvbGMyYXZRSTFKWVN6RXJvUVREREdHQ0dFRUVLWTBQdmEzMERWMlpDRUhyRGh3WU9pYTFKUHlPUjVmODR1V3RzK3RFZlhTU21DQ3lTQkpHUVRSc0RhVyt0VC81Zk42cVd6M3AxaDFhQkVmcVF0ZUNCaTNGMnlsVS9GL09VNkJ3Y1JQRXBrTjlJT2N2cjkxM2V6L1hlOXNmdEdXMlNJSUVidElzakNIdzl6NU15L1o3NnRHZ01DaVZjT2MyWjIrbTM2N2Zrb0JZeEJZRTRVZzNCR0kyMlB2V3E5NVZ4L3p2dE5zclhZa2cwcXpVSU5rS2d6a0orOWFrWkoxL3ByZmJPWmQ3YlJtaGFhWUlIRmVJRFVBUUxNRFR4VVBOME5MM1d6YVdsSnJ0VEhwelZyaFJCSDV0Z3hibjlIaUFCK2VGN05Bd0RmZVBTbVZ3UHczWmNuRHlEZ1NPQkJZRWdnTEFnYkc4WlJEQ2xoaEpWWkFERXh3UmJhQWRscEoyeVhaa2lMVmxoYk9JQkNJUXB3dUVnSVJaUkVPSkxPZ0ZwY0NkelNUa0U5WFQzY00rOGhDQWtNRU9Cd0duSFFjLzlMd2JDNVlGei8rdzY0M0JUOUFWenVTVGdITGc4a1B3Q1hoNmJkQVJld2VvS0FQT2QvQ1lZTkJBZ1NCZ2FWSlZCQ2tjQzVVa3cxUzRsWlpwbHJrVVZXV0tlQzJWNjFUampyc3J2TzJ1dXhseHA4MTZJamdQWVJENGtEQ1M2VXNMQk5XS0F6OTZYNTk2VXo3MHRuM1plV0hrZy9ML2M4aU9rNGlPa0lpT2tBeEhSNWlPa0NVRVFMd1V6M0s2SmxRUkV2Qk5sNU9JaGdQWWNKbHBucEhrRUV5d3pKWFhoSEl6Q2pWZ0thc045OXNJME9PNlFlMkNSc2FTalRnRFg2QytDbFBvWXdEclorSnhwTURuRWVDUHQ4enBXQWdpZC9BVUtFVWdtanBwRWtVM0dubGQvMFpqYXIyUmxyek1uTnE5N3YvdFQ5RWlTRFpKRnNra1B5QUY5eEdaRGc0azhGTVJBdkhhdzF5NW9KZW1lRGs2MnJkL0p0WkMxNTl2ZGwvSUdvN2tUSkFkWmFWSncvR1R4WWc5emJPUTlXUi8zRDVDUUF5L29qTDVVazJWOTJOUjRMZkpWZ3JrMXQwdklpS2Jwckx3VkFIdjExNE1VS3FYKzc2eTJuY3BEMU42SUE3RExVQm5KUnZzZ3ZZc2FZeWQ0NzZLV3Z0YjQ0L1RGd0tpZHUvRGdWdWNwNHlDY3gyakJsTHB4TkhyaFcrazdzVlVvR3kxNG5mMmN1dXlqUis4NWFkcTdCZSsxQTg5WDBHMXgxYTVhWU9GZmxWaEQza2N0K1ZFRXNOREc0c1NVSTg1TW5yUzg0UGlvTkRYTllrWGpadmZpL2o3ak5qdnl2aERlejE2aE1lMWZsZlZDTk0zU1F6M1Zmc25mTThZMjBudCt1ZENHOG1ZdlozMTdyRlBGenhBOW1KbXFINHZ1V1NHMDN2R2ZJNXJiRUsxbDRMMlZ1a0FoUU9Td1VIOGNhUGVTc2NRODlaUE9zbGZzdE1BSC81VERvSWwyWkNkOThORUw4cDU5bk53MXh5MThHemNtUytiRTdydDRGanUvalBTY09yRW52RXdodHV6MHBtVEptbENFc2xUY2hYZGxlMWk3LytmMHB4LzhUM0twS2J2QVdaUWd0cjNFNjFlOGppSlZUUExKK09zQWsyYnZXaExrckNwc3pwK2phUm10alFZc044Uk1MM0dINmFNcmVQVkZJYXpkTVlGU3R4U1EvSUp2WWJtbVhsdXZnTW5aeElYLy96UHEzNEhONzIzYlBmVHRieFc5ODYzYjlubEloSUc2RG15cWM1SkpZSW5VU2RIQ1lvcnh2UVNEbE1LVC9lSXR0QVlNNTZxVGx2TERVR2R4eGxBWEhhV1hOcW05Vnl1NU5HT3pwL2Q3eDhOM25aMG44SURUdTBoaWIyZnJNeVVzOG9reEt2RXBZMWVLNU5BTkZPZ3hsajNEOHZTNFdmeGNrTFhMeXJxdDF0Q291L21jV1ZhOGowY2JNWE5WV3RHdmdMa3dudjlTZXA4bEQwRXBKZHRqVTJyTGd1aUVwelZzRGMzSjFQall3WHp2NVh0ZG9YY2ZKaGdnSzFGSms1eWxpQ0t2YS9JKytzOXZjdXRHemVNUTVQRmRSVTdCVEFwY0FBT3NpMTZhcjBOWnRzOXpqZzluTzhEa0EyOE8wSC9lRjQ0ZDJGdjcvalJ2UEZsM2xxNkdMR0VKQzA3OGlrbVNucjdXUFArNjFhZVI2azVkeDN6ZTFlMU55djlpZ3hJT3hyQ1pyV2hxYy9zT2tmRk8vaGtwZmE5SXNZMkdaSjNIODl4V09zOXZCeC81djhINEdPSHBXSUEwOEtrWXo1NFI1bDM5bi96dzVZSFNTbjRmdG12Y1ozRzJIcHlRZ3I0aWJFdWlSY3hSSStHZ1p5b3dFNERpZU1pSXRsUjVQM3d2dmZ3L01uMDUyLzhIZnFaYmdlMy9PQU9keHZqWktocXdwWnp1Zi9JVnpBWUsvVTFOOUpmZVd0OWt2L1hzTDlaa3prbCtjN1p3dDdOTEgyUDlpN0lCVHUyQjlTbjZ4ZWo5NmRONzBTWkF6a2x3UjhkQ2ZndDdPMi9PNENqVld4clNNU3U5SGI0S3VOcmllbkdYUXRYTDNIK0pqSEE3N2ZaelkvUVp6OXlPQmYwZk1KRnd5QVlXUUZSRnJibXg0c0tWZ2gyWlB5WUVQUjc1a2VuSGlUeTRBTXNDT25BVnpFY0pWS0RjcWhCTjNhaDQwRk1MUkluaUtvb2gyNllOVUJsYytUSk5FbDhhUXpwUUp5b2JrdXZabGx2NndBWWc4SGNQWUpyanhZMzNGS240K0J5dTN3T3JKQ1AydXpMMnV1cS9mek54blZ0VWsxK1pKcm10THVqMW4zS1BMZS9KL1I4RXpwb0lQZk5OOEU1cm10K2VtKytPUDlmNzZhNHQvL2hueTMzK3JCQVFNQ1FwYUpTUmtTRmpZS2hFUncySmloaVVrREV0SkdRWUFJeWlVRVF6R0tCWnJOUTVuVkViR2FsbFpvM0p5VnN2TEcxVlFzQm9FamVMeFZoTUl4b2hFYTBna1kyU3lOUlNLTVNyVkdock5HSjF1RFV3MGRhcHBNbzhXOTJvTFhWZnErdEROVDdzQ3hzcXk3bURueVhMZWdNZFhDWVJNa1ZndWtmSmtjbzFDeWR2YjE2alVQSTFXbzlQelRXWStndklkVHI3SEsvRDV0WUdnSUJUV1JxTGFXRnlZU2d0emVXR3BMS3pWaGEyMnNOZDNHQXgxUjhmaTBkZ3dtWXBuYzhuSnFlVGlVdko3TWYvUGpBVi9icW9Ock5ZMURhZjU1UXRwUTlOUm5kbE0zTTVxbHRCT2JUWmVpeXRtM2FaSzhXdk15S0lQWXNYMVM2NkkvbFl6UTF0cW9XOXJyY1Q5b3phcS90bHY2djVWTzAzLzdnOWgvNmxEZUwvVkxhWTlSRTlMSVFtVHdhTW9tWEJac2poRnl1YURqWlBEVTlGeWVXNjhQSVMyOG5scG9nSmVtNlNRdDJLVjB3ZElva2xPcFErU1JSWEtwczRwcGlrcEY5N1VKQ1pwaXo2ZE8rdlQwNVllc200djZHTjcydWZkMTY3QTJkRnl6aWt0OS96eWlpOHU2a2VYRk1MK0d6Z1BpY0JpTUhaWUxBNkhBM1VvSHM4bkVDd1FCR096NFh3K1hpaWtpMFFTbVV5cVZESjBPcG5CSURjYUJTWVQwMnhXV0N4SUp5ZVdzelBrNHNKMmRYWHk4TFo3OWJFa2ZFWkdKaVltRG1abUFoWVdLYXlzWEd4c3pPenM1QndjME56Y05EdzhoSHg4Z1B6OEZBSUN0RktsTWdnS1Vnb0pZVXFUaGlWZE9vSU1HZGd5WmJMSWtTTlJuanhZRlNxTVZxVUtUclZxSERQTk5NNWNpMEMxYUVHeDBsbzA2NjFIczhGbURGdHNnYkxkYm56ZHVwbjAyRWRndjRQa0RqbkVvVThmamNNR0NCMTNuTkFKcHlpZGRscVhLcDFPdnlNcDdRckV1SXAyVFl6cmFEZkV1SWwyUzR3N0V0MlQ2SUZBandSNnNnSmhCU3BTZ1htV2ttY3BlWmFTNXp2RlJ4THJrMWhmcUgyajlvdGFNN1ZXYW0zcy9MNDZaY3lBeUxBZUN3N2luSHFWc3FDVUJhVXNLT1VLVXFxbDBhaWxVYWMwdTJ0Z2dkSEI0U0dDNEJna1ZGQ2Nnb1lKNWxTdDdJdk9ma1hyMWU0ZFNpakM0V0MwME5CRHh3Z0RNMHlzc0xERHhna0hOMXk4OEU1Tnl5SGZaUFZLZHRRZmFhUU15bll3ZWVRMFVWQkdlYXJjN3BvVlcwMm5kZG52MFRIUHpFbnhZaThPUkMxdVRCVmo1OVdVaWVTbllWL0pmVElQTnYzK1NhRjc5KzRkcm9uMUNsVzg0a29xdUxSWGFqdHBpRy9YYUN5Uy8vK3dDRDU1VWIvN0tVSkM2ZFpyN3ozYTF4Yjk3bUlWOGRGaXVkQkwzQTFKS3ZpdjFCaVY0bVBWRkxxTzM4Wkc4cTQ5U2pVd3QyMVpSUStoNzFiZnZiREhpaTRxMGNPUEMvdUFFamJkQXdjR25BbXd2c0g0TkVwTXBWNjRPaEVzdk1vSlloMU4zUStMMmRsU2JmeGFaeDUrSjljUEczbitJMnVJcUY1VGp4L1ZsVm5LMThlSUdzMk1HcmFMVkF6VENwK2tESkwybzlsT3V5eEgzRDVQMW42WW9QMXcveUVqR0RsN2I1UXprTmtVekRvVXVnRXBvWFJteXlnSXYxd0tmb1VJSHI1eXppRllOWStRcmVPNTM4Qnd2NUhiZmhPci9XWSsvK2lXQlVSaUswdDlOVDk5RFRQL2tYKzJabXVabTlaME81dlpiSHU0eC82WjBRRjdsVVBVZnBvT2grdXVCLzdseFNRQkoxOEd5WVBUcndYcDVaSzF5WHY1d01jL2xhRnhPL0FPMDdXTmZzZU0rdG50MTc4Wm9WY3JnNlJJdHYzcldRaEdZR0JpWWVPeklDQWtQbmp4bk9lakhoU0JzcnQ1VTBabVhFUi9qK1NCNkpkemsvOGs5TWtVUEdYOGttR20vQ2Z2cnhyVDhzK3YrVE9lYTFQeFozS296YzcvbDRETFp2KzdHWnBqSUdmbDVsL3orTG1UbkRjdlh6QXh0NmJoQlZQTFlENFhEd210K2ZtUzBYV203ZmFqM1M4NWRacmJqOWRvbS93ay9NTVFCWURTVE5QMnNnWTFvMXVwcFp5R2xnZTdaYVAxZFAzUjNnQ0F2SHlYU3h0UUJjK0NlS2pIS05pS1RQZS9pVXl1c0dCRkwwbVdRVWFhYUlZUzh5Mnp6alptKy8zbmxKc2VldW1ETnQxaElndGtGVlJJWVVVVVZZeExXdFlHUVVBaVJ3QnB4SFo1V0JRWVVuRlNaSVFCS2JOSlRkaWZjZ2ZEcVZUd0U1YlRpVEYvMmdzSmtEUklwK0NHNE92ZU1pWUJ3bUIyemc5eHFlSmx4VDlFcElUZ2JmbXRFZHd2dkJVanc5ZlVkNnV0RGprSGhlK1B0T0dQODNQdzZBamtmR0ZyZndmTzhQaHpBRWRxUVUvS2xvbnJiRTIxL2pTOTFkNFVkdFJaVjMvbDJVUUNtU0JKT3N5ZnNEOVhLWkpMOGtnKzBkemRpcFc2Rjd1eEFOcWh3eDVQSURFNUlpN2ZVYTNUK3hFRUl5aEZFanF0M3VENDV3R285b3FmWWREOWJwT0RvRW5JTzh0U2lVeXAwQmhVZmdDYUxNNU9MbVpYTjNldk9PM1QvaUI3U1JabVZGdk1ScXRKWTVzTS9ISjVlMWpvL3J2elRlOXZwL3BWV2QvYjBTeTNRSVdGalVOc1plT2VTQ0pUcURRNmd3bENNTUxtL0RjRi85L1IySCs2VnVRT0tFRUlSbEFNSjBpS1psaU9GMFRKYURKYnJIYUgwK1gyZUgyTHBGY0NRaUppRWxJQUNvT1RsUWNKSkFxTndlTHdsQWhsUWlLQUEyZ1FpWmlJamJpSWp3UklGRUJBQVFjYWVOREJCaDlpeUtHR0htYlk0WVlmWWNTUlJCWkZWRm0rTlROWFZFbGx6YWtXMnU3YlBFMzBTMXJPOGpaMlUxZXc4aTNhcW0zWXRwbTNkN1dyMjZtZFgyeGcrVWt6NXEyeWFkZ09qMFZvZHBnMTQrVVpKVm5aOU5ONjNKOS9rbGZ0TUcvbjA0TVpYbElOMjlQV2hWV1lZQk1XaExTd1lrb3FvN3hLcXFxK3VGTEtha0I1alc1aStSVmtiSDVMV3RXR3RsWFQ3ZzcyWHljNlc2UlVUUG1rakx3cXRkZDlHSVNrU0dIOVp0MmxCSE9Lb3VHeHlabjVwZFdON1QzN00xbGloVFUyMktKQ2paMzJPdWlJT2lmVTZ4dWJrdjVFYUwxU0c3MHU4eHBqTk9SZWFzeEs0V1ZrOVNtVjNWUXBwNlZXYm1pVWwxcmxGNTJCbGVONWMrNkVFVHdYYW9oR0hjbG9JQnRORktPRmFyVFJqQTY2VFRkMHZqK0wxTU0wK2xqR2dMWUxCZ0RDRUxRSUdEcEZDZ1QwTUJJR0dBT09NQ2FNTUJaTU1EYk1NQTRzTUFwT01DNmNZVHk0d1Bod2hWS2c5bEF5VEtvY0MvZ2xBdmdWbHVZaE5CK1JCVWlZc0xjUUo0dndzQmk1SmJoWVNwQmw5TEljZnlzSXNKSXhJbHFKU0NNNkUzM054RnFJc2FLM2srTWcyMG11aTM1dThqeSsweG0yRzB6c0xLeWRoNVdMc0hFWkRxN0N6blhZdWdsSHR5RnpGKzd1dzlWREtEeUdtNmR3OWh4ZVhzTFRhOURlUXFrQlBqN0FXeVA4ZkVhZ3IvRDFrN3NFRytWSHNEYUVhSWRLQjlTNkVLWWJtakdBRlRvV01PRzdCRXdMV0l3RXF4d0ZWdE5Fc0ZwaXdPcUpBK3NyQWE0UEFEY0FoaHNDd1kxQTRXYmc4SDZsTHZZdlFjS05vZUVXc0hCTGVMZ1ZJdHdaR2U2RUNuZEFoN3Rnd2gyeDRkYTRjRmQ4dUJzaDNKTUU3a1VHOTZhQW0xZ090N0FTSWtGa0ZsbXFyRDRhT2dibW0yWGx6RmZMRFFBK3c0TmRqWG1WR1FIUDFldVZ3ejlpWm1GbFkrZmdsTUxGN2UveDhmb25yNEJVUVNGcDBtWElWSy9CZE52dDBHbW5YYnJzMXEzSEhudnRzOThCdlE0NnBNOWgvWTRzNmp5K1VDVDIxRFBQdmZEWGYwRmhVWEZKYVNRYUt5T25nQ2VTcVhRbW04dFh0bXlIdTRvcWJJYnB0RHcrSXRtZXhtQkJiQzVmS0pMSUZDcU56bUMwT0x2Nmd5bkdzYWNWZ3ZFSmlVbkpLYWxwNlJtWldkbi8xYzUwUG9ScE9nU1hMTGVodWlScTBUM2JPekFaK3pvQUV6ZkxmVWI1U2hOVWF2RWVwY3g0dEZqN2IwOWVrUTdXM1BnM1lXUXA4VXBudmQ0QVdlN3l6UnpTeFZYYWU0cTgwbFMyc3lhdXpsS2x1ak5YMGh3WUJmODRiSTlnQ1pxWHQ3ZjF2cVZoZ3JGZC9oNWxsL3F0VHkrSTUreW9VZ0xkQ2hDakhGZTNTdjhlZ1gvb053LzdnbmdmRlJJQTBKL2dlaDNCb3NUbjd6WVErMFBiZmh2UXoyK2xoVXp2RFhCQVhuaVZPMERBdUhPWnZnRnYzaUFuK045ZkVkU0dmSDY0WkZPZWdGbVpkVDBoUUNCUlM2UFVJVXpkRVY5aHFEUFBSZHhFd1ZSeXI0SCtLQitWOVo3NVMxTllhMUhhVzlDc08xcFJkcXh3SlZDSThSQXRTK3dTeGhLN2U3NFdGc3RadE5nT0s5MHQvNzRTSXlzeFgySlJUYW9Rcitvc2ZrTGhMb0NmMUcwWWJGdmtQUGkxVDgvcUpraXVLTTNTQjVWdFkxOE9jV21UbG5FNzgxWThPNWI1YnVVOEpEa1kzWHlmcGM4Zk05WjltU1hKZ2VwVzZ2T01HV1BXU2ZzaXMvZ0xLOTVoekNJMVh0RXpqWkR1RTN6cG5ZUkp6SUVJRmNhNU1NbWs2Qy9hb3Zrc2oraWQ3bFN4UUZ1MXhNNklJYy9reHJ2c0szYkN4R1VwMlllWGFUR0NpSWovcXhIeHJqb3Ridnk5dElIV3owbFdNajBZSUczSVd4MUtNallKR1UvTU9qd3lOSDhhZWluNkdXNmlXY290NllSU3IxeXBYL2NJRHdObHduOXZpZXZ5aXBueGpaZ3NCSjRDalRpa0hWMUZTNUF0SXlINXVyaFBaNzNIbFlRQXZSRVFPNWpUTUtlQk5MellVc21qVjJkcEhIQTUwSmlyeHZrc1J0NnAzNW9kV1JjQ201QU5OcUllVnZ4dFFxb0I2NkNlSE0xUEtLM1NITWN5ek1xL3NPZVhmRkF5bDdVTGV4bHZyT0VZanhxTmJ3UEdGNlFXWHZoN2ZlR0hGTUpWZm1rMTdyTVJRL0ZEOG1RbVltWTlKekNReTNiUEl1RDEwL1Q1S1g4ZFlJNWdFL2h4SmFRUlhIUWZ5TytBMjUvSTc3cjk4Y25JOGYvLzE3cnhheFhvTDNjY2VDY2dmMzdPQTJjaGdRSUZUb01BODFzRUJKeUduTnZBSnhneCtRRkhLVWxJTEN2WnFsWHU0TTRNVHAyLzJtTS82T0dQZUw1N0xqM1JoMzlRQ3dnZUlTQkVoWmRTVnJuVkZGVnlKUzFxU1pYZEhLN2tKREpaSWtJaVdxS0p2RVkra0sxRC95MlB3UUl4S0F3T1E4SndNREtNSHJNWEY0VWJqd05nazdBNExBbEx4N0t3VGJoSS9GaDhIRDRSQjhMQmNDZ2NIV2ZHNWVEQ3VBdWFWMytlLzJ1a0UzOFRmclA2WnZzdDlGdHN6d2c0YWlHUFlMbGlxdGkzYWhVN3NQcjluekJqNWJYUFMxazAvY3RQSnV5ajVoRDd6YjVKZkpubFZFM25UcjJzNmhlUkZtVHFPK2hkVWRSbmZnTForK1FZYzFCdUk1ZmZpRkE5OThNb3N5SHNDdHZpcVJSSmVmSnhNZjNmVmRYRXk5UGRYdHV0TWtlNU1xWHVUcnRSOXg4SWNuR3c4WWdIMkdoMGFGRG5IbmU0eFZvYzJMRmhCUUtZSkVEMWZlMmxmRmYrK3VRbksrbEpTMnFjTVVZcHRubk5PbXNzTk44Y3MyVENRZWpTb1VXZENuYzVTUkQvK3FNbTlmTTZ2cC8rZHVwejZIUGdzKyt6N21PQ3dMUDdROEc3Ujl0UEJuNHBJMWtVK1RFMmNqNXNMaXdJUGwvQ2xIRnhtQi95bmNnNWMrRTZMbjl0SDZFUHJVZzZmUzhUK3c0eTJCQkR3WEQ2eEN5MDJHb2JiRk90U2cyemYreXd5eDY3aDc2NUIrd1BIL1p2K0Q5MUxTZHEzTE1WbUhyOUV4blRJck9ldVpPTnE4a01ZMXZIWkZQL210YWpIVFBLek83cllBY2VpdmpQZUVWcHR0TXhaWWFaMkNPTDZOSDJlNVNaaStVcE44LzZpWkxZbXFiNkZUaVhJa2M3NFV5MmZ6U0NlOEgzbUZ5dnBzM3U5R1pYWXE0bDVsaHEwWGd0bDQzVzJVNVpNMWIvUWJCWmMzYnRvQ25adTMzYnJ5Q0hkbUM3U1JWWVlRZHdjQzBIK1RQaERKSjhBZUQ4Tyt0dzd2djcvNkJsLzlTbFo5NFhSSjMrUmVBZ252QnYvd3VBcmtoaE1JWVNmUzhhb2dIQURRQWFsamtBUkJoakwrRnU5QVR4SVV5cnZOVlEwQ28zWW9wekMzcEo5OVdJVGhGdXpXVmplaUU5S2VsM3pVaXd2ZG9RL0oraWNDZ2tZdzRBV2FLQjFKVTZkV0pLVHplVUd1V241LzhDakd5WVhzTERGWFFIZTQwWnZGZXJEOEd4V0l5aHQ1Ny8wbHNQQzloUWlEa0F6Q1lObTU1WkFtbVhzdHFaSzIxMmdSWnZ2YjBXM2d1NXcwV2JOWGhzcjdIZUlMUzZodWFKQnFEK3QzY1FRYU0yTVFERmVoUHVoZ0ZrVFAvZVlvU0V4MStCNDdGNGJBaU9EZW1aQThESjVnMGE5SEFzTnNRVURiWm5rME4veUdHdmxiY0UzMGpBbXgrZS9hQUpHSUNPbWdheUhrWnc1c3BHa1J1Sk9kTldqc0p5RnBKT3RxV05IQllGSGNlanpwVEVndk4yRFk5M2RYZTdaOUZzS3NBa0MxdElRYWFkdDdvTkFTeldaWGlxUmNPTzVwZWpzV241OEVSa2pad1A5MXBzSzZTaW1EMGJJckJyaWRzWWhlVjF2YUN6Tmp5MVRzK1doUU9JMHlIZGJGRFZJdFFCd2NSMlE1WlhPYVlyaFZzbGpOdzFxWjBVSTdzQnU5UXFuQ3hxR2cvblNNMkF4TktqNEt0U05la241SWRxN1dmOVlwa1Vna3hMdnBycEtKYmtNQ2F2d29EZHBteGN2b2twWkRNclkzQ2dHNlh0VnEvWDBaWVNXeXhGSXptRmVNbUo4R25icUY0eVRrWmZKSldJQ1JuKzVOL29OUmpEMklaVm03NVJvNmJ1blZ1ZC94V0tPNVJrS1BvbzY2c2FwNjh4ZDhHSTVmMWtWZmZ5clhuZHpxRFVYbkxERGdLSWFINDBKeUkxRzhMY1VHRFdOcU9XSXRRdjlKN1pUZ0FNbVBGQ3hLSVJGeEtxSFlFSU0xayt0N2dNbEFzNTBDeEJBTG1tdjhOVkI5L2VoOERtU3R5Rk90S3NDNzNGOE41Tkx0STNEazZBN3B4dHkrYVgrY0dHaEpRQ25oM05zbVhiMzhhc0cwQnVudUg1MFZEa2RHOForQlZWemRaenFPc2F2ak9Ea1ZqZVlFcnhMTWE2YmdGWklDM3d4cTZ1Z3JYeFNJU1VxVlJkbFJqeG15Z1hFcW9DUlFMVjNZNEZFaVpFU05sRGxXdmJqcUM2TXFwNjdNTEg3Z3hBaEpUNnF0MDVNZmkzZi9VRkg0aVVvbnVQSDluUldPVkdjZ0lYeTZTYWtTM2pCSlFoVjluTWRxbytkaXMyckxMSnlvM0JkQ0ZJTnV4Mmk3R1FicG8zaEpQejRZMm4rRVV1OG1BUFlpRzdNTVFMcGdCbEVPS00wbElRS3pyT0NRUVNtOXVTSUJCd1hBM2NYSnFna2ppaVRZNW9CZkVjdU1EMFN2YkIvTk1Zc01kc2V0bkxlOXp3WG03eS8zK3pwL2ZqejA1R3hIVXNVeGt4WWJUSnhzUXBjUVFtNE9XYktGRzhaUEdxRFppU1NPK0gxVGE3WExITmhORElYU0JicWs0MXpoWjVxblJNeVZYU25RVUZZMnhHUnBsRTFJNUpTZ01xc1cyUWZncmRPYlJZOWlVaUVQeGJzTTRLODNsUHpVSVZEcUZabWEzaFl6dU9lcGxtOFRSTHJtMHJTR2dYUkdmT1hFSThmTllGY0Yxd2pYUFE2SXpLcUZLMk4xNHczb0I3S1lkUmFNV3VZbmZtOCs5ZVlSdzhPK1hLNXBVRU9LMUh4aDBnZ2owVGg2VzBkbG5XT2RVKzBTOE1XQjlWTStkQjludjFiaDBTZ0xlTWhzQXdTM25jTnJDYUc2cnJhaSthQ0lMRW5ZK0U2NEk2UDNyaGRvT3FWNFdMcjRTM296OXpEbVZiZS84dWZuMDZXZHNpREtQN1plWU8rdnBvcmo4MVBIMkVxbXB2QnZRZlFkVzV4dlllVUwxTHpLRS9JR1c2YWhlS0p0eG1mVWVtUThsdUw3bDMrYXd3TWU1ODE4SjNENVB0Mis3TTVTNjBOZUdYN1d2VDZKMkUxT0ZzRzVVR2EvYm8vTm1kV3ZNc2VGWGpkRXVsOWtrcHRkbWY3NlpKaHloVUNCbFhkL1BnVzJaYkVoVGlOLzVDQ0FuaEVjd0dFVWVFTDZZd3pTdG04VXQ1YnQvTk41eXZZQy9aMHdyVm9WejAyU2ZhWUNnSmdzRkVobXRLQXRUSjlwck1hK2gwQW9sNGhzaG5mSnBMSGtWOUxWR1NWRkY5eHNUanFRNVgxV0cvSVFidW4vUGdIalRuN0h2ZTZLMEJiMmlJRUNITWs0NGpnSlltbkRTTHFVbTFqc1A4V2tyWlZEQWlNS0hkbFpud3dnaTl4OXptUkdPN0tsS2UyZkJoQVdBSjVHQzJ2V0ppVGpRQ2ZRbFVQZW1sR05sQXVTTjlVSG82a3psSUlRd1kzcTZCWmpyUW1jNlVpdll6ejk0dnZYQmNpclRpc2lSOVFIbzY2eU9YWVR2NmVRTVRhSUNxbjB2aDZFQUpuUDVwMWl5NXZqTlh3MmE0SXozcFNTR0ZjQTFIVHZSRys2bS9BTmUyL3VvRHBTUjVwWUdEUC9mYjk3bjNKUmZjTjlFc3VzYlp0YU91Z2NVK0dsZGpjOThnekhUdVpkRG1UcGxUNTV4emNFOTJvR0xOdjl2MWZRZ3g0UUVaakpHRkloa2lxWEVhYk5tZTNTc3ExdzhvOW85VVA0MnpRU2ZQdEFiYWx3a3pacGdsd0s0cHhnaUxjN3BuejUwTHJvaXIxbE04TmZnK09vK2xSalRLOFhXTGJhQ1FhMC9pWWNycFJiY1ZwbzBzZkYweWRkT2NJcUtyN3J6ZkhBdXlOYVpMK1VPSzdjMGRlSGN2Ym1IaGVCK2dmbGtxVjltR1RUYisxYVltZGpzZk55bmE1aEprdVhIYmo2MndiSUdDRGtHcmp1NHlwVFVlSFBZaFBDMDhBWm9YM3M1ajQwckU5bkd0M0hDcnJQOHFlWE44MXNZbkJ3eEZjbEE5MkFGUnBod1NXOFNnQjd1K0lRdlMzdTkyZmp2ZENCbmNaOHIrR1MvTWVLTUIzVVg0ay83NEgrTkFRSjcvbUR3SHZ4cFYrcFdscW9ZYzJLSkVuaUJNMW9hdWNnL0hvSzJESVFkUnlFRXVEQ1NrVCtjam44OFNnR2h5N1Q4UEM5L1M3cUk0M0EvYkVBQ2VHUmxBK0FGcTJ0dXdreUJ3Y0QyQUpBc2E2M1kyc3F6N1FKQkt2UlowbUw3eEZsQU1CTkwyQWJkaTFTUmxnV21JTlBjMERzVWJCMjVidyt1aTFqYlh0N0Y3YkVhdEh1MzU5OFFqNlRSWmlsVzliUHdsYWpleTJGNk9ySkI3OERrSlJRSjFjQ2FzcHgvNWZucGgzcjRIQUVqekFoRDNJWVpHbkw0UHg2MDRjZXJVSW9QYURoQVNNakl3V1BLc3lLREZrbmNGSytwdXRFZjVZQktrTU4vMXFZMlVHMkRBaXBBbTd2b3Q1RGlsaUN1TW5UME40cmQrNlhYRHFUSGQ5Y1hOcVl5Q0FhSnJEMnRyaFdOeEcxb00zeUhoS2hEeE5YUEU5TklTblc4blVBRWIwYTF5RWdnanpEbGd5Q2hoS01SUFp2Ym11ZzRndzQrQ1NHWld6a0h6bU85WXJpd2ZtK2xzSjJ1eUpIRFhqVVA5Q0dPOE9PdFRVUVpuSlRpUURPS2t0cFR6eFpZT1RxOFRBbDNWV1M1QWlaQitjcXdJdUpia1UwZ3hOSzZkZ3owYVc4a2dyTm1jMmlhZHFUdlFiSUhIR0E1Z0RFT2dqVk9mTEdwR25CMlRhaFZFaDN2WnZQQXozZWIra3UyaE8rQ1pHcnRwN3FiNTlKbU83MVNsM0MxeThSZFo1cVdTNUtFNCtyUVNBY1JNekpQaVl2dERGNW9IeWtKZEM5Rkc4MkVLT0p6ZEdiTWlvVDd2NzRtVTBsZlY4SkRVeklyNkNIaTBvQ1Y2dVFOV1pKOThDbXF5Vk80b1ZsTTBkVFZyejBJeVZkQTRTUUprM1h3YWlPQ0pOcnFqZ0lLRERGNkM5KzRMaFJXUEVraG9namhNZTJVY21KQXJYT1ZLUncvMjVIUXR3TkhnaUNkV2FYY1BlKzZ1ektZd0VIdEtLS00wUnROVUpWNk45QjJTamVCR2t4bENvK1lDM1FaYzgyNFZHN3E4R0RqcWx2TnRnUU0vQ1FwbFVIUTRkbjZlNVFTU1psRGtVWXBET2lINVBIVlM5emNsSExkTW1lN0FHa2dhdXRiOWxOVzh4ZGgwUC9vanFFb1lRKzBIRC9vV2RmTWp6bVMveVpBRTllanVmVDFsbEZBOXd0Tm5pWEZDUG1Pcm5LUjVRT0VxcDU0Wjh3aGo2QnF3aXd4VVlXaWQwZE1XdVVySUMzbjZtVGdGTk5Cd2JEczA3SjlnNjZxcVlYZCtucXcrR3F6dHR3RmlLRDFoeVJxTExwQ3N1YWxmQkJKcTNXTjNxR0tGSWRzd1FvSVpiUFhzenNHemExcjVGaWNlUzZUMEFBdytMN2NNMG0yaTJ5dkZJVmRjS2NJaXpWbmxqSDJ3WERPMmppRzNiaVdGYUUwSUd1S0QyaGVTdno3VFV4SnhXMjJDR0NpZ2tKQnJXNWVSSWp6VHBBOURIOVh6SG5ySGZqS3lGUHhKUm8yeXd0akxjVzB3bWpjL21tQU5tekp3YlQ4T0dmSVd0d0JFYmpZbExSRmFQajhtUjJEOFpZUjMramdzSzNXR29Fa1RqTUt5VzFSUnlNQXpMdklJYTcyelNNZGtvN1ozTjNZTVA2Z1BRMVlvYXUxa2NSa0NJd1k1Sm5hSFhQTEtpT0JibW9IM1dPTWtBZDhjSWVZc2ptUUFaNFpGeWdCQVFMUzJTR21rejBPN0t6ZXRvdXExd1lsQ2I5dHlWTUlxZmNYcU93UTd6MjBOMHB6Mm55VHNweG9TS2xOcTk2NGJzb1o0R1pubWVpUnRuVzhYbWhqR0piQ3kxZi9GTkdlZFVRa05DSU1kSWxobFFkTlFqU2k5QWF2RXVJR0dQS2pnaVNMQWhLQW13TzFVRGZZTUwzU0d0MG9WVklCVzFaSzBlMHBjVCtDVVpKWlg0cFlPQ0V4cm11UG9uUGQ5Uk13d0l1bkxqaTMzTzBvOUhPQzBDcmE3OHFwUllyRHRITFcrd1BZWnE1SGhmcGdTNjE2dzVTWGNrMllwazNteUh2T2I2M3NUR0ZnQ3U0U2MxdVllcFhYT0plMDY5OXBML2JoczBGMEUzU3k0alZiZ0xURTdSRk12SkZRQWVSQVJuaVFCQUpsWkZ6Zy9Wa0k3SFMxQXpzNUQrNWF6SkViTkpranB3UUxqM2R5NC9EZTZHRkFOWnRVM3E3MGZpb2ZmeXpEdEZGczVtU3JhU3ZGb01VV0VSME5Gcmg4NEk3SHlWdDYveGRRbmgyT0RvQ1BXNEFoWHNPZW5SM09ieWNSeVc1K3RHbUdUdXZCZkpoUkd1MlVRT1F4SnNTNkJ3OEhIcVJYYi9QVHAwY0VJNDBDUm9UL0tRcE5JWUIwQmhUd3lBaE40WVBmME9PT2dGeG92YmpuaXNEVzViQjhhNkJkeS9NRVpDR3ZQUHg5L3E2enI1d3djZHhyN0hzSVlQT3FzU0dpV2wxMG5NeG1jS1ZBaVJCQU1lU0hIYnhERHEzQklhNHhKUVlkZDRTdHlFSHBlb3hXOUI1bkZmSExqWlQ4cGV5WlI2dkpPRFVvUTlsR3UxcFNBcXEwcVZTaDhvWnVhYUM3NFhtdG1zT0I5OHl5T2YwOTFjQ3hvdTFzb2ZIVWovdlhzdi9ZbXphMmhvenFDZ0U0aUtyNldKNlM5cnJKcWZsSTN6cVh2ZmU3dFNManArdllRZ2xIRTFBODRrS2xjL2pIdXNxYXNPWTdiZkZrRlZ6YnQ1Nk1sZy9SanZReVMvYkZDUmhqamV3R1g3Qll5eDNiMVJGTGVZNG54K0puR3ZHVG9wcHZlN09jVkNIU3Vha2ZkbHR4UXhVSDlxVW9LV2xQa291WXJjTTVhYlFUU1hUMFcrdWlZb2tOTjNKOTdOVDFLK0tCRXQvam5Mbjd4QlNCZkY3bm9JVDZsNTlqRzM3Vk95bHg1NGVlZXFSUjFrc3M2UEFwdUp1WHFjSElGd2NQS0hpMDVBMmRDMDB0aysxWjhGRTVsL2hrWnVMaWNKSG1mYkc4ZlVtWjZYZnpUNzZNa3Q0K3g2K0VCTHpXUnRVZnd5ei8yV2dWTC9PelRmV0RxN1ArOGFHNWFuNkg1RWpIZHB4Qy9iNmk0eXJWaEthRHorMnpianUyZXQ1S1VhOGNtMUVkcENnNTFoUDc5QWtlcEhUNFhZcmwzb1hTd2kzMDl4WnV1SGRUaTM1Njg3eGJjcnkvUi9HN1VaUGZDZi9zaVplNHkxeW8vSDJlK1FPaXd1TDdOOTFwd3dRMDROWStqVWZnV3ExOE9Dckc2Y25ORnVIS2lQcFRhRzlDdjVZVG9BdlJ4b0IyeDU1M2ZNeVMrMFFjemZxNDlYVHlkNTJYTXNjVWozZUtER1BsVXNMYStlWEJ3YzhnQmZTMFIrVWtXSlBuOFRURlNuMlMvR05tZzB6Q3ROQkIxdlR6dTJlRHVrVUVYdWpoUHRMSzc0Qkh5UVl4Y3F0UGZlaVc1VzA5MTk5ZS9Fa0ZyUUk0b0NKTFZlLzcrMFExbzRPamJkM3pLOTh0YUg0TTNnay9wZjhRci9EUHlvdDR1U0ZJeWhLSU9IUmtPV0JPUEpSaHhGOElWZXNXSW85aTRYbVN2K2ExZTVBQUNjRERjeUVkd1hlT09NNzJ3L2VyelJ1LzMzS2xEUEdIbzc5OUpRQVBINk9hMW84a25ENUt4SHYybVpFY1o0dlk5OU5BU1lCejNKL2ZXY2F2NVhqelBzTzA0c1lHc0o1UE5HS3VrS1dBT05kR3dXWUY0ek5ncmJtZXR5R3RhcmZlYzdWZE1ZMXp6clJmQkRmc0R0d09EdTNWWG8xdFVqczBpaTEydE1ndSs3VEF4bGY3QTQ0TUdOc1NGVHRKcDQ5OW5WOVBHdllRVnZlb0NGK08zektGT0JCb3ZoYzUzWnRGRE1mc0NtMDBnNUl0L3ZqL1V4ai94YWdoSnF5bmlvaUszZFFqc2h3MHJSWGkxb25YZ3BBMW1HcUZEVy92WFFRYlJpMmw0U3daMm5zMis3Y2ViMTFOMnNGQU9wdFIwV0hTN1BuT3BiSDhER0h4cWhoRzhDbk80QXpTRko0NWJKWVhsaDE4a2VwcjFoYmxJWHdsT0c2Z0NSS3ZyYWUxUGk0dnhqT3BaMzNDbmtJUCtHNFAzQmQ5NGtJZ2YvZDAvU0Y4QjZZQjUrMG9xclA3dW5lKzM3Y3BOUjJiS2pwc2tNd3JyV216a2t3WjYzNXN6WXkxWHk3VnlkZjNhaG1nbGFjUDdMOWUvOFg4aEJ3b0NCbnhBWVQwRS9nY0RDaWtza2JnUlRrK2k5VnpOaXpWNVBUTlU1c3RqblFpODBON2lZbElUbms5c0JkQm9kaEhxQ3VZV2RLSXU5UkZUNG5iTWc0Z2VSc0g0RDdmaU54Qmk0S1JmTFhYVzVwMjcycFVVVDdtUzdIckdpVXc5bk9xeXRzMVY0MjBSNGNuMUNUTEJwSzVUcG95eDA0amhGY1N6WW9LOFZvQTR0MGpZb0tqWVVVSWVXTmdFazZWSEpLY2t3MGtVS0VXSGNOOTVJaWFBRUdmM253dFY2TmRYK1NJMzNtdEFrN2hLZ242cWVKdWtxa29GU21GZ25uU3BVeUpPZ0JQQnNHTEdXM2N1aEVqeGJScDJzSEVpTktUN3FORkFYT0JlbzFGVTA2T3dldHJhaVRMR280Z3dENXdJNVZacFc1UnQyU3o5QkxXUWhEaDhxbUs3YlFKZGVCeUVqcTJtMWhLVWRkczhMUDUxMGF3TW40ZmZvV2lJeERSRVI2THlGcnJoa0xybjMwSzljTXZpeTdJbVFQQkNFaFg3eUhvQlNtS1NKclNKaHhsVGwvQnp4bndhWVFua0FjRTMzcjQ1VFB3NEJIdm5BL2Q1ZWpjdDZQTnUvdmVPckJlZ1lnZC9ydUdvZDdRaWFhMmNrVzl4YklKVUpLVElvNnFJcVI5bEd5cGdvSTh6aGdvN3dUaEJaN1NiVFNHRlRtZW4rZ1lYZW5mVHNXbXFtTXBjWnp4NHcxaFdjMXlZbVlxWkx5N1lnWERyMDBvc3M4WjhINXl6UUtIemVMZzRGczgvZkl4RmJ1dnlwa1RvMnNhTjhCcytKMGpnVVVnYWhyV1FKZUM0RGI5V1cwNHBUbnlQa2xUcDd2RENKRUU5N3ZDRFpTaFM1dzhsbE9BYmJ3eGpEL0hwODdScWFjWEtRMDRpMFhpL3JNS0R0MkhHSm9sUk1hME1ONVRyaDZ5RUh2a1VlUWdZRERJUHNOMEg2MHNoNDNBRzZXT0xNaStzTnlrRlU0ZW1GRTdrNWwzVHZGMjY3NU1lRStJQlc2VlhiWUdZNHpNbC9vSnllVDdIa3NqZzlaMTlOakI5UHJLUUtTRHFrQ1RsTDZTRWMvYTB2YURzcUIwOU9pQlMwc1JzM3VjdmxtdituTEF1MHlYdCtmdGl1M0VIV1dyME1uM0NQSjBLRFVwY1NhL0IrMEJwZEVXb2wwWHdBWVhxSjlXcHVIUlpPL2xZVXlXMHk3bkM5VGxwYXJtSVVlbnd3RmdsR1hBdUczQnFsUjhBcExWQ2JSY1dpOXNvWlRQSVFPVUhNOVBhSmdoS2pYc3FMRGlyVmJFaW9nU2ZaaldSRVNvM2RSRHhKY1JzU21ZeVllR3plS0dIRUZyZnlkUm5WWmNER0xSdDJkWHFrTHo0Y1N3dUliRE5Wb2dKbEhTTzFsYkdBT0wyR0EramozYUo4ZDFGdU4xazN4YWFFR3c2dm1HRnhLVUlSOG0vZlMzdzVQbGozUWhiMVkzbFFNbktvWDRvVVM2Ty9Ha2JaWE85cWRyaHFOc1dSMU9sNjM3ODc2czVlZTRLcldRVUQxdlhwVE5RRXBsd3BnNDJlaTNZREZ0bTM5OWZTcGs5YUJ6OWNwajdoS0YvRE90VjRQRmM3K3h4ZVdTb2RsOVZaSDR5dXlzNXhTamQ1alBFOFUzL3NxV3RpYm91bVJidFlUN3B5V3ZhUko0bG95RnIzZGlzMTRWcVZRWnVZUmsvYTFaanRVM0RMd0RrclA3eEcxbW9Yclp3QXNCWGQvZCtsd1JyUTdwVVRGdXJhOTg4RHE4aDVZY1B3TThkWFAxY2s2MXBMZWxhajI0cmRqYUorZEc0aXlZVVBIN0dJTUpjYjA4ckVyU2NqUUpEZC9Ed1YwcE43VE5mOTdnSVVZV3FqRmR1QVhxSklibkVGZXdodkN5eG0wWkdtSStlTGQwbVE4d0hpQzArT2FzTUJqZmk3UG0ySjJFSlZ5Q1NvN0tFN015c1Y2amE4NG9UV1RPNEZPWEhUcEVGTVNENVl6dGMxOG4zR2F4SXpyM1ozVFh6eU4wQzB2Qys2WU14V0NJdWVPL0pLNVZIaGFZWk9PRG85MEdvRjhuQWZ6aDJabXlyeXRPb1BnUXd6RENZRE5sTGNYYzBqY1BqYXVGV0ZzcW54d2VzWG1PQWNKeVVQZ3U4NlJYc1lNVFhiTnRhSmsrRlV1UWxjT3B1YnJ0bi9kNWV0bzZjdDJPUE82cnFSWjJoWDZoWXNLcVZsTzZqQVNMQVdmRWlyaFVWTjc4eG9FVmVobVREWDcwUmljbG1wMkIydDBDeGQrVW56Z0o2bllWZ3QxTDlVNE1VNXU1MUpnMktkb3ZkbnhMdGVQTmZ2L1VXY09hVVkvRDBZOU5yS2syMWU5WmwxdjVwTFFHMTloc240MlpCeUh4SGhkN3pJZ296YlVEeEVRQVBRdFRwSHVjcGhDTjFHWDZJL3FpM005R2gvZUNQbHkraUkzZlRCWGpZejhUai85Z2cxM1AycDAyNWVubW14aWVtVlNQeXR1QXFPQmx0KzhGbGxKSG5lZ011ckVWdDlSN2Q1N3lQK0VrQjVaWktMUlNSelg3ZzN4ZFZQZThUT0U0TWY5NFFmT3d3SnBCbHo2enllWGlyb0w0WGNqT091b29YMmRBMzdGUFZaaXhaV2tvR0t6UmgyeUZzM29neXBGNDc2ZStDNHp3aEZvWWVadHZ0czVvbWJjSSszVDFKaXd6cHZxR1hlZWNzVFBaa3FHL2tDZE1ZOC9QZ05MTkpiRFZSNU1ybXR1THJkU1RzazBrY0dBN1VGREgxNWtzeGRKTUVIK0p1Y1hJS3loTHkyZUJCei80UGkrOUdLK2dMN09kNmNOZVpFWEsrYmh2ZDhlaW1Hc01OQWJlbVhoRE15cVExV0YwQWc4LytvN212c0VIRUVlbjVXUVVqWGI5K0pMM1UxV1RVZ0s2REpLNm9qWDZoNXphU3J5T1hJcGZxeHhoMGEvSWZBb0J1bU1UZ3l1OWtIU0ZGRmFzZkQ2WWJDdzllQTlHRmp2aFpncUlmanFrUTdWV0o5M0tWSHlBMUI2Ykxwa0IxYTBlampWUEF1dS9RT3hoVHowMHlwS1hqTU5RellUS3c4eHZnTE9KZ2IyWktkQlRyTG5zRUkwTDBPSGs0NWxLYWoyNUZZSFpPZCtQYURHZmhzVlgvUTM2cVhqMVIrN0o5Zm90d0pTa3h3VnNjTEQ4SEdpakpCbFd1eUQzRGN1Vysza1hLNDFFNm9BRnJJRWRYb0pWZ2IwbzJlSG52UDZITjJWVExIRlJWSEtRUE1aOXh1c1dHbnRHUnh3a2w5S29CNlhkOGlQbHgzNTEwb0RFdU54aVVjV0VuV1JVVVMzT3VVRWhkdzhVNitkYmdKMDY0d1pNSytGZUpwbE5HZitwMzdhYjZ5aVhDNE5uU1NEM1hEbk1ycmxpcEljN05nT3F2bXo5TXd6TUVvNkw2M0lvUGQ2azA3czVTZDY3NzNNRG1pWjc1aWtHcC9TdjlKQ0ZTNDFxNUxLY2g4ZlpBT2xxaHFvY3RUbm43bTVPb2ovdVl2OEh5Y3lCQ2M3RXJmU0hBRC9kYU9XeEYvUUYveU9hU1NaY2NQNGRiQVNLbzdsY0pQR25LQUVMWDFMS3Q3dkNiYnZBVysrQ2RqcUdBU3d6UmRmbEUrT0pKWEYvb0NlNjlkMXpaQWhMWVpJbmtSdUoxRytESXRmVDFRelZieXdsa2hrZ2dEeVU4QXJvRWJNWFdHeFB5OFdhSDErMTQ2NXk2MmJHZFVRbGttQkNpWW5uOWNkT2RtNGFVTzlmeW0yRW9QVVNBaWZOUXRmdGQrSFcxclNYR2FSbWl5SFlMS1oydlYzclp3dmhnUWliR1RBRVpEaWtKS1dDZnJURzJuYkovZlhOaHJ4NTFSZU5reUVZR3VweXF3NEtBUWlIbjJjUlRidnlOS1JrS1pRcDY5Rjl4bHBqQ3I4QXAwcFUvUDY1RFZSU28rQWFrSmFvS1hzUkRCYXdNbndNRk9QUUxmQS9IMk9sZXdkSEIxSFhsQjlJU040ajMvTFRZcWU1U0xtSVp4TS8ra21saXI3ZzhKMER5MTdhbWoyQi9WblI5bDNjNDA1Z3lZK0t1SjBESUY0M2xFcEdWQ2hPTXlJZ3Y4WC9HdlVPZFBKaEUxL0R6OVFsdXVwWVRsbnlyYWNSdk1uQWpaWSs1VXMybnRPZy9QS0F2V0xBNkJOTVErTFB2RkF1QmJ4b0dLa2pJMmJwZldRWjZYN1Q3ZFZwRDczSUZRUGVxREsrcTBUbDhWVGgyMGlod2wxMXJzdkZjM212RE82RVNSNmRrSWNTYzFDT2dISVZ5bXhDTUtWRjN0bDhvb3FPdnBkQmFQaGZzZ0NBbFVVMEJhWFk5azhya2pSeElMR25XTEI1QjVKZEJqU0l3d2ppVjBjVzQxeU0vN2N0eUxiTHpsekU1dFdPVUhtQzd1aWdGeE96UklXdzYrRTNQMXo0MDRBRTVUYXhMZzBRMmtrdVUzK3NkTkQxUE1ONXJ0b0hvMHdZUkgwTEgvSnVKd1Y0STh6ZE55NkJoVkM5RTVCUzFlRERZTGJUc3VsWHVjU3pISFYrTnVkWGczMDZrekphd1JoU0ZBR1c0SlRUZUErNkNOTDhEZ3gvM1VKVWtnNEFOVXBjd3RwTTBVRUZib3BTcmd0WFZqZXNrQXluUjBsZ2tPQzRzTVg4YTR3UUxCd0p3YnJrY2dRYzJNRVF3QUJTbmxXZlBpY0lvRU0wUUgwVzdJZ0RKb0d1WkFLTmFkVWlOQ0FQUENHaDZHZHliK21UV3ZINE93d2hVK3lUQTFuZXR0dDFtRWt0WG9sYVFycGNIc3FGOCtDUWFrRnhzazBvODN5cTI2eTJZSWZ2eWt3YWF2enVDT2RJbFZmNXA3ZG1nb0xycGFpUVp5SFo0RVJsdWVBUk1HNzdEYUFwTGpGQUorZ3ppbFFqd2djamxDQ1VNRGtSWHBXTk9MSU5IazlHY05acVRtclJobVFBOXVacHYwOU9KWTNlVG9SM0xUWGlyM0xyaGRrdVlhcWYxUFVwQlU2L2hsYTIyb0lyVHZCZEtBWUpQb2hPT2dNbHpMbGptMm5ZZ05ZcmlyVTVob3VrMlB0aG1oM1FNczMwSnVCZUNKWDc5SVJJcUFkbkRPWFc0TmRKeGx5cmNiWkRwcEcvOS9hQURwMCtFMDA5UGtHN2FxUnFqRURjb09EMXpLSU9hdjNhcEd1VUswRFhaaEVtalhGR2lSNU55eGNzOWhjNmF6UlVRMUtNa0lzcUhJU1ZyWUt5bXczYXVTWUJpTnJaTURPTFZwNkFKczFVUGpQWFZXOEoxcEpnL3U3SW5ic1VLU3FUc1ZxSGtlN3pCdlR0cVc5MVFnVmRaNG1XN2hZWlZ3SnEwdXlrNEkvcmJhVUREbG5zSzV2eDlZZ3hUTk9jRlR5YXI3aFlOZzRTMXp1U1NBWUZrd0hYWjdGSURVV3lWejRMdHNFaDZYMUw0Zmk5OHBDZFlsenkvV1VhTzVWTkRmbnRZSFdJRURoQ1BBWHdrS1h2bWZUTkFmTlR1Z0g4M2hSTWlSRHlWZHlQeit2ZzFmR1Yva0NuQlFzZGhFWk92TDZteVNIWXU5TFdBQ3JxTFovZTNjeEpRczZ5MkR4cDFueStMbVMxMmZQN1FkUllNZTM3cDVMaG9iZUZSS1o1V0hiR2pTZXhYeml0Zmo0M29rRXhWYitlNEZHcUVjL1psc1hMQTYyWkdkV2dRYkd3dUUrUW9EcE0zN2xKeXlNNjA0N2hPbW5KeUZPMjluVlhTa2U2Zk40ei9Ka3VOcWJndEdrcTdwOUpLYW0ybEVwZmdTSFNibDF6NER6a2plSEo2NWFVTHpweWhjbEx5Y2RKelVDNi9TNUtLQ21ZZnhGR0JMQm5EQjc5eHJLZ2tsa2ZEd1lkR0F3cEp6RmhnT2hMRTBVQlpjOHh0bmR4S29Wc1lTd0F5S090WXhETGZnN2tpT0FDK2c3QjE2YU1UK2NpbG4yN3NUU1NRdG95VDFCakNGQmZTY1FQSFovZzF5a00rUFo1Ui9uSTV4cFpQT1BDYnhpazZEU2djS2NGdkprZHFjRFRPV1Rya1dSOEtGTXRkd1JUckVraWlaSW80ZkNrSXZrTWNXMHExS1N3a2I2ZWhBc3JyL3BRWmxzUklRcCtCUTVPQXltNXZoa3RDVTNjYlBOcHZGcnRBKzVtMmJ5TEthY2M5UEh5RkpLNkRlalVhSENKcDJ4R1cxYXc1SUtTK3FlTytUR2NIUll1SGdyalRhMGVSb1pGcGtHYWVEZ05FUnZNSXRTaDhZeDJHeURzK0h6NXVkNnFuUzE0UE1GQlU2L0NnMDRETE1LeXFZelFCd0VudCtWMkZNVWkvVzFaVzU1UUpuWXVmalMzUUlZYkxKdTRBYVJ3ZExqY09aMThWVHA1dGpXRGc2ZXkyMXpRMFg4clphL1o1Tkh2czN1b0h1TmxvcVVzQTRqdmVHbHRwbGJEVzJLaEIxOG50R2VYYktrOXZvQStzYVQ3WWpZa3M1cUw5QzE4MkVvMlRoVW1SaGRZRUlhUlJ2VE1YT0xwTnVaaXFvT1BEazlOVXgwQzJvZGxTZnllbmM5RTRwMnR2QW9XRDg0a3o4MzMzc3lmeGRvVG0wQVNNcW96OUphNkdjMWJBcDRVc2dEcVNObVkyWUhCcndUNkxqTzVpeFBqR3ozYXRCUEU3TkdlQ1FvWjNxbEJ0ZEVvVm44VVBFbndIQUdaY0R2K1QyNXBqN0U0bk5mUzE0a1MwL215V0wvTnBnSitHcjkyNGR6M0hQSkFiOFZTU1B6MHc0Tnc2WlFqb3hobVUyTnZkcFlXdVJuaGFmK2FyeTdHVVpIQS9SZXJGK0FoME1rSzVzWlpTeDVRTUw3dk5JN08zWkY0MllJOEhCVTZ3WnJCaWdOWDk4Y1N1UTBlbHdIWHZQdTlmVGN6QnhXaUJGdU1GaS9rcXhoQ2wzZm9GWmF5LzBkRWtaWDllSmhSVHBlaERVWHdWNXJkai8wTlZEZy9vYzFGMEdlVDJua2VmL2NRTDhZSmJRb1NkcjlYQXVDbTdZWURrWXIyUTY4alU2OUk0dEx1REZVbjUvSjhIZ1VObWFJVjJ6a1diaUZwTm5FMDczSWIvQ2h6TjM1V0JlYmJRa0YvR1NPZlJKZnpjRWpHVDlaSlZZTS9sT1hLNnM4NXRpeUJrMUFhQlVKZmFxMHZPNTlWQUZKcWJINjRaNGlMUHFST3J0dGw1TnZZbStQZjRxWVFQem0zZW1jWEdWZUd1N0dQSmJjU2pCeEN2MXhOODNiMk9DT3RYMlhiME1sc25ObmsyV2FMTWNQaC9XV2FrOVNuSWtIcXMyQTZWZnorYTNLOUk4M0EvZlhCSHEyVmhIZi9jWVd3Nm44NSswak5NVlZacFBQT3JNeEJNVnU5WEVYay9nbFFXR2piK3J4YWFLU1ZpUTZvSzNuTDhRZzdVcUtjWU9iUW04cXpJSTcrNEI0dDlrYStwWEE3WmNuVjd1cXd1MFRoSGZGTDJCUmRqUWZBOUc3QUgxeUZEYktjaFhBTEM2eHNZb09CVkVram5sUml2MVM4SHJWK3FtOUozNmR1a3doMlNjS3lJS3kxdFNYODFLd0RZMzV0bytVczRMNXZrMlY4bU5wTnhsVHlYUlVvMTl6Ynp0amdzOXlmVUUxWDVrNVorK2RCMUVIZnJkeDJaSXBNRm9PWS92K1BtSXJqRXlWaUo3TTZBdlJJbE9ZYy8yQ0lnck9ucGFFN2JZUW5mUHYzbllhNDhld2xpemVvTEMrb1BoMjlYeDBxakdENkE3cWpnMjRZQWhKdXlST1c5SkRYRlNHSlo0eEM3aDJwSm5DNTVWWFNFVmZjcUcxeksxODJBU2FUWUtJTW1hMkpSZ3pCRW1MOTg0aEdWZVBMTHNDdFBxbGZoTDRBUWVWYVBQamJsR0VLMktIRUJ0Um1wMCtEazh1K3RqcEtPRm4yU1NabExiS3dCaE5Mak00cGdhZU5VL2g0VTNEejBCODQvRlJDK0RMNGpOSkRrYkVKVUc3a0xnWEViSC9ZbFFOZms0d05kbFBocVN6dWpVN3k5VW1xK092OURrQ293THlrcjJLQ0VyVGJWaU93cVR6dGQ2KzgxUEhici92WW0xbS9VOU5UcExCYUdqVGxmQm54d3MxU21EakwrRUJsZTg5eHRMU1lteDdBQzFxZklSbUdXOVUzSFBFU2MzVzFYcC9OSTFoZ3hHT0FZaUxjbjRkZmJ0a2V6M1Y0cVN2TGp2MVRBZUZxOWNsa0RTZWFQcy9HbmcvNk90SW1Ob0g2TEV1ckFPNjVZd2JzRDNGZHlnM3NVNjgvc0o0cFBWaW94WiszT3IrUEhGQjJkMnJQd0tlNEJvRmhsQnljTGpWTi84ekd4MUNpaDl4WWlpVlJLSVdnSERUcFJhWWkwVzhVYkRiSEYyL3MxMzQxbXI1MDgxakZDVVVHK0preHA4K0xBRlE4TEZySitzR3p1WTlLOXNmTEUxQzEyVmJ4TWpvUnk0WDY2YklmM0Z5bEl4d3V4M1ZqZW1rRDVicmFia0xWeEkrZUVNNjVxWnRCdkswYjNXaGRTbjczYjBEQkFrYVk4aTZ4cU1FUkx3Q2FHM2VqUHN4THJnNGZBc0FuZ0hIS0ZHcUpzL2dVVHVJcVA5SVBCMjZMZGJuUXlRRi9TM0piVS9MWWFubVpvaHRmbXR1cFN0U1JBZERpb0grQU9hNkFRbFdidE9lMnZHQkJ4aUtWMUoyUWl4OHBWMk41Y1B5STBOcU54TjZ4Z0pLQTQ0TS9GeW5UWFNrWlJnRmxwVHFrZ2lpY29QVnlONHVsS25jN2R6QmZJRVA3NW1Ib3F1RDdORU1VOVQ5K0lIOWUrUDF3YzBZazN3Z2wrSnlnOEk2WGNKTElicDRpbk9FYTZ2dW1JRzVUcGJSNVVFVWZPQ1N4b2lqdGJYeGMwbmZ0dDlnZDZUVmJESVV0aERleSs5UWR4OXJ4TDN5OHdQKzJEaWw5amJDNlBKUXZXMHZMSDByUGRpMU9zdHBBUWM2WWYyQ3ZpZGI4RTZUTktDVkNka2xrMGNjWDdXTXJLRHg3ZmpJaDdLQnFJOXhFWlFnNVdtelJtZjlhaGJmTE5lWWlIZGxLWTI2S2hmRXFJQlBHVHVsSG5WSmhWTkszRUZBb01ieFhUWGtGL0VRK284MG1xaE1jbjBFRDZvMWF4NWlVVTJhVFQycC9UZitQL2tFRkJvUEZhQnpMazhOcjhXdHZOOFJQTlA3MlRJT0lYczZ5b3dyZnd3cVZGb1NiTko5dmJoNVNaWFM1KytISDUxdW5RVnExZCs4d1B5dFUxNzNqOTJaL3lYMzBDOFVWWlZKYi80N3ZML2UrYVBnNHVCbFVabjJsNkdWVy9kQTl0d2JmUVhaZTlIR3lzb3hOdy96cVUyYjJJV1EzcmlyQWN2WUsrSS93b0JFK01XWkVkd2ZndGQ0cm9yS0xxcDd5OW45R3ZqcnlFWC9GRngwUDZFODVYaDFoU3BIZEduQVMydmhXT0xUZCtrSS9XRUQyejN2SWdhRm5uSVd6ZkNqUmcrT216U0RtR3o3Y0dmdTFaNk1mMlp2RkZIYTVnS3hLNXY5UUJoSmpzL01YK3NoTjQrQXExV3FuNFYzSkcvWWpsa2U5TU9jWklPRXJRZi9yQzh2L2Z2L3Z4NzZZZkcvdmpEK05yTVA1cTJUM0xqY1lUejJEUTF3TEFZOTA5MVNLUndhakF6QTl3OEhnRnA2YVNlcEp1ZDk4UnUxbG5mbmkwK3hGNGpmVHRDVHNna0xsT0FBTzg3YklEQWxXN04xSWdoeUdsQWxkSW1TQjZxUVVjRjF5Y2g3eVVocmpraC9pa2I5ejgyR1FJY1NtZCtuNitnVjhLS3NaTWl2T05pWnRQdkZHU1IvaGUrcXZKb1A2NW9zd1BxZUZTVFNJeHlhVVdldUM5bmw0VzlhZ3liOFI2dCs0N0Z1NjBoQU1qdnFqVEJEMlBTN1ovVFhISU5Wak1nLzM5T0l6N1QzMWtRakVlUC9mUHJyajluRFpTanpNZ3lXUURFdWNHa3lmZkdhcEk4ZGRkVGloaVhtQXh6N0h4SjF5VzAyc3lhaFNLMEJBVytSQWU2Zk56VjB3YXBHOThFc0U0YjZ2VkEvSllWazQ2eENpZ09VWEVtY3NDYjBISU5oYUhyUHZWRjBDbU9JRFhpRG8yTGxET3Z4bWFaaXcvMG5ucnpPa01GRnlJUmhZZ29QdGFVZjhYMzMxMmxRS0syQVZQeE1xcEw0TjV0anZ4d0tBYnkvWVRaM3FuMjkycVJLcUE5bXBxQlhSTWpKT2cxM1dQYkpQaTdTL29wU0dWcTl4Wm5McWNhZEZzUFZ6K0xQcmN0TktEMnRoOC9kS3Y5K2ZlZnpEci9vZlB1T1QxbkNvdjlVMFkvR0RwLzZYb2Y3S1ZYYm9nNXpFaEhQamJzUlE0dGN1dWhGOU5BSGpINzlNQ3B1YmJrQXNkRTRvVk5sdUpRbHRJdWxrQTJld1VYeUpmVXl6WEZPQnZaa2E4Y09QODRQcWxPT3htaEg2Y0h3NDNqbzdRYjhaaGw4TDE0K2h0NnRGbEl4aVRmenA1aEcrcFg2ejg5NGJmc0tSdk5NMmFzaFh1WjNsTnNneVVnSnNPTlFscGJqRkpnYitlczZNSnR6ekQ3WVlWeTJjVFpjRzRuRFNRbFNFMjN1bldXYjVtbEdnWnhFSGg4OG90WU16cFhNZ1JmQXFNbElvbldPczJFSzVUdFVhR040bkJEb0lOWEpxVkw5ZTZsRkVQWlRKQk42Qm0wZEZEdERyTTNxV3gyT3EvZFZFOHhzZzAxNThkbVZsMlpTNUt3QWxBakV5ZTlsaW5ZZWRkUGZvN0tucGR0U1dNbEJPZkdiOXlyQkUxSnYxN25sQ1lDZGRMeU42YTRKQU5QZHVtQ2VPa3NnS2NUVVBQbENYVEN3azkveS92RXhCWGpNc2IrakFmTkgxZDVweFRGTjRMQ2t1dTRmTnVERkhPby9rcDdZQktnODhWQzdySExNcUJDWVRaTUxPUTdwRmdSTFNYSFlCNzRYWTVsMnpUOFVKUUxqY0kwWEVwVnE1Y25qSVNsYjFVRXgxV3d5UHhwQmNFM0ZsdDRoZGVBcldRemdqVDZIa01odWNuNXBPQ0p6bndIYnBqUUo3c3hmeFh4QVhZaGNNNGE5OHVjNVpNeStmZnBKSXorWkIwbDNSNG93b0FWSFlMWUc2UlhTb2dRTFZXR0RUa2h2VTNWOERxb3B0MWdNekd0NDlIdEdlcmwvcFdPK2MvUlowUEZoblBOWjdWUXRJNXB5ZE9UeGg0ckJFN0NTMjlubWlwVGorVGlwaXhDczVmcnN4ditldDh4RTBSdGxFTHR0YjRsbEdzd21Ra0pveWpyVlhlck9pbnVYVkNQNHpEOUNWcE9HUmJ4MmVkeWRSeU5NRGZNZ0JadXplNFJya2RscWpRVEN1YVRzRXBSaitzSStITWRpV1JCbk94RENRR0NSMGV4ZHFMMnVqT2lWUDRWNFJpNlkweVlsQXZ6MEpKbFFVMGs1VmNwRkJUdzNaVE1TblpYTTI0YkdkWWU4UWszYi9FTEp3cldlUlBWeXhNakd1emNCbm42dVM1NVkyQ3dqanZpUWdsd01PZ2t3aG9PU2JwajRCMWYzUkZyVkIrNjR6TytTSE44NXl4VE9FaDliNGJWa3lualowRDVNTUcxYWorZUFPRmJoREprKzJjeUxXNGtxS3prb1Fja1c5NWhKRXhhZGhiZ3hWbmI0K0I3Y0s1dGsyeDN0VFlwWGxhVGNONTBwYkFZRmxMWWt3YjFXMXJOem1YVlZmdFFGT1pWa3dJNldSemtDbG1DNXJCdDVHckpsZVZ2b2pMMURmdll5elJzVVR6SVg0bHZzWmxXSGd1em9ia1ZMTThBSVovczcraEQ2aG1rMUlxTFlQUE84d1hhTFZvcmZCc0RoWndsME9YUUFIZC9KWGwzcGYxWkswNGozK3BhV0d1ZEZGUWtjLzN2bVdVcXluVEZ2c1RCVXdiWmhyS3hlSEMzYVV1akFBVkxKbFRkWWc0cFVkR0Iwalp3eCtSaDAwYU9WL2h5Ui9sbTE4VDBCTFRlZlkwcmpsdFNnYkF2SnBTcG9IVHVzbjNSbGU4L2hsckFMaWQ0Si9BUnYxMWVtaGswTTZzVUg5UklDZXVNcjBHL0VvY2JjbXYzUVpHdFZRT2Z0OTZRV0xkaFYrREF5Q05tOENvbTJiK0xQd0dNT3FHbWQ5Qk9iZ25TTnFhRUx2RTFPdGRiRnFZSjIwTkNwWXVTb2hlVFBWNmwxQUxzNldMSm9NTWtTbG1LNGJKdEdDQ2lCUVdCK215V0dKLzFSSkN1bGF4UHRneGZRNStHQ3oyVHh3NUx5RXJTTEx5YUo0ZVcyaHl3azZrcmN0RDVTaUJVN3M1cUphY2x5RnFEdkdYTGtpSVhtemk4YlNaaExNazgrbTZDY1luRWF5b1ZsejltczFDT0V3V0ZJTnVScVVpSFN3T3dtazJveGgwQ3lxSWRPN2pkNnJJb0x2NUN2d2NvSjNMZEN2TmpsdzljTUR3NWtlb00ySWVJSDJuUC95SWNlNkJLNkJ3Tnd3MmdkaXJCMHI4OGZxc2hkWU94QWpWS0ZReWdqWnBMbHhnWDJMeU9yMW1TNUFlRFNEZTlnOE9sQnZ6YURBMWtvWFNjdVJzcjBPWUMrRXBadEIvNmNzejV1MmhYRzYyWHU3WUsrZWdWNXhpcmFZYWpGVlVoNVZhckQ1MmNnVDE3ajJaUUNEL2RRKzVaMlI2LzRrUjBHejlqaDhTMjFzdnE4MjdhMThDMjE2ZVhKd2RTSDhJblBsdzdPQkRZTTNEc2R6dDlYKzMvbjNyejRaM3RKdGx6MHFlTGJ4eWpEVDR0K296OWhpTTc3alZMdG5PV013Z3I2UWY4MnpDdElRT3hiUmFDamJrUDA0STdXVW1ZQVY4Z0c3Y1BpMkFiandvdGp2NUo1ekgrZFI3ak9uM0MrNjNydTJkZkc4dnE1TzVIZUluVzNjMERDVTJHSVFmdytFRisyWVFzYlBxbGZJVUk1dngvWFMycmpJNWdCS3FJWG42ZjFjTG93enRXQ1pxUkFkbmlHU2FESHpOUkxOb1RSNEpyMFlXM0VuK1I0RE9WcGhUNlJKZWtOSVE2ZGl4elJWSGVuaFR4YUlBVldIQ1pHMmlRb1pXK2xHSS9rMHdCQkt6K2E4R3NuLzF5K2wyK3YwZlVOaktGVEFNOXYvYkhlclF5UFYrbFVNc3JGZ2V4bHYxdEZ5VmtwWnIxWWNKTXJnbHd2UXgrWmdqSUNlVXdwT2swaFZtZExaQWdNbFNtQUpVa2RoR05VZWFkMjczL0ExMXU1WFBFTWpIMVlMK0I4TzlkY2JrY2NhUVdVK2drVWwyRTJEUlNUQk5kSjBWT1dOc2hqdXVWbVNYNU9Pc1dscHVzcEthWjlMbkVxWGlkSUxHUU1oZmxWMHdOMHNlZVhySFg4U3JtbDQxcFRNdmZIbzZod1h3eEFZUVZhRDVFbnY5V0JacW1jMVlqdE5xVzdXSjd2cmtBSXBtMXR1U1VWR3BORHhQbWtwUkdOQVpBZ0U2VTJGS3BVbllmdUlhZ0VOMzl3L1ZHT0ZoQkdMSC9YOHc2UDkzT3pVUWcrc3hJd3kzZ1Bzbm5iV2lQeWZGY0Z1NEdnRFlZQ2pnNi9HN29SYWlZSm1nRWZDNmlnU2crSWlKdHp2UVFBQno0WDluQm9UY1ljK1dqVitDUUwyKzhaNlROSUlpb2U2ZTNLSnkzRGhpTldta015ZmtXdjhYNEtkL3RnZXZBemRmV1RqOW43bjI2NjZ2V3Q4cGdnTC9iazBDdmFHdGhzZHdIZWdKUlBJK1V1eGcwM0VEb0dFZjQ3T0d5RW8zTjlOSUVyNmVzQjVxeGd0dVZDbUN3ditkU1VxS3lEVERzMngzYzg4TE5aNkJ5TE8vd205SFNjK3o2Zk9KVWtrQjBhcW41eW1WOUZ5cnJnQXZrZWJqYlRwNjdpWWJ5UDkzKzFISS9odWZJWkNodFhEajJ1ZFZTVXB6RFN3M29TcFN1M09qeHpZcWxjNG9HbExwNW1YY21IVDJ5OERvViszSUlqcUJKYjB5U0s0SExaTHVucXVJc3QydzBmTUJmR0c5V3A3Uzd5aUh1OVEzQlJHckdUNW1CbWdhMkt3Sk9QZVVnaXhlQ0FYT1RRSnQyNWxZc0RwT1pCUFZsN3dUU01wNlVqZzlKM1dFQU15RGdILzNXa1dkMDBSZ1poMzFnQklrcFRqdFNVSHVLY0oyd3FTQk9lSjVraFl3bmc2eVZFbE51VXVmbmpLdnJ5eUgwMWJ0Q2lpK3NXZElqU2ZHZjV5WlNZS2RDbkIvekZscitpMzlHRzVUZWYyNVdVRi9zVk1VMitrQTdQZ2d5elF5Mm5UbmlPQ2MzeW9xMUdwbnVGVWt3NnBIYzJWeVoycm5sWG1KdnE5WEk4b2p5NmZIdHZpamlVSHJEejQwUFlnTkhnTkxhQm5ueTVNU1QvKysrL09STlB1b1dQdjkycmpaSDc2L21kWE4rZmJudjAycU85MzJsaFI5Ri9JN2NzT2tOUGtjd3hQd1BTNmVLY21lRWpaeURLSUxKYm55cnpmeWJPZVNETHNETVFiRkxnbUovNGIwcDdMM3Fpay95VGVRdjBOMnBZenN3TW11N003L3V5UkJka2tQM0hsNzRDY016OVllRjJMN0FLalJEak5xODI0a0FqbjVvMk5SdVZiSXhpeS9yL3liQ05HbXBpNlFBM2JCM293bkxxVmF0dzREZnRuSS9QMWdvdlRSaVVjV1JONzFZUFI1Ujd2RzRLY3I5Smgwb1FnVFZPcDhOSlBhcnI0YmhQb3VJUEgxWEd4dStkY2pyMit5ekZ3TzIzd2lTaEgvbVlTakYyVFd3UGdiczNwNmdYV3N1c0c5MFZuWlNpb2lWV25KWXhrMWVVVFVYT1Iyalc5dTJFVExlSCs2eSt2MWNteG9mZUtCb0dDUHgrK2JvR1RBRWo3SnVla1B1VE9PQUR3dS9yajcrbnBkQkMrODc3OS9VTmgvYi9yVUVYM3JmMkhRLzEvM2lWMTVDaFA3SE1mTmdrM0htc1lTeHh5dnZhaWZjS3dNV0V5TVY1bEpTdWNsbDc2clByK1N1RWtVaWlaeGV4Sk93REFibVg0Z2pXQ09kVUl2dHAwYUNOdHh1RWx0Q1N2ZytCK0ZpWEQ3djM5MEV2azhMZDVvWmRHMFdyb2JRTEpPNXVQcVV1RmJVSlBhMUdmQjhPMHROQ2MwN1hLTEdlcnpjejl1YkQ0OGJtN0l0VGVaaEI5MjkvcWJDTEY0L0FndS9qcmpPUlFYKzloNVBZdnd5SHhRd3NkR0c1MWxPZVdMRXZhMFdEcFRXaTNIZ0h3UjVqZlNhcFhpYkxHYTNOcXA1ZFlIQW5VOHJiYWVoeFc4ZWkwaWRmNUFQWmR5UDEvVTNldThMd0ZIckp6ZGdrQ0dWaStnWUcvL005bHVCR040WEQ5S0xTWDR4VUtpNzUrQUU0Y1hKR3g3K3VuS3FLMjMxUUdoK3pnd2x1alRqTUdNaHZZaWdNa25HSld1U0FMVjkvWTJyRE5TZkwrOFF1M0l6NkRZSXJEYU5jUkFOM3pydTdrcFJsVzd1OHZKTHJxU3JCT2daeXVtaGpuNnZESE04eGNuV3I2TGl1Wnc3YWp5RGZxWjhWbkJDWm53bzhvdXFIaFlVMUk1aTQzM1BBL0VzOWtlL0hXQ2g4M0d1NjhINE5oc0wrNDV3YTBpSXcxNkE1SkMwU01GU0FPWmdqVHc5U1prUU9xdTQwZ3dJUmh3QlpCVG1QaE50NTdnOFU5dWJTTGdONGFUYmZUREUvQkVJcDVBeEMxVDRMNXY4U292TFg5UTlLRDRaN0MxSWhxOWlkNmtFU1ZtZEI5WjNrbEluQXdDbjFXcm1FUzUrR0FGRnJYbFdoOEJjc0YzenhiRHZpTXVZdG9LNHZuL3RxQlJGUjlJczlucTRZOXFRRDRzN25wdUh3VG5JOEM5c0lTVnNNUmpybXpJakltWEkrQ29pazFITWJoUFBUdWFiZGVzWnhRdEd6TDQ1OWRmQ2RZeFQyeWhXTWNhNUpqK3BtN3BxQS91ekVSbzk5Zit0ZWJKNHZYZ045bTN4WkxzbXBBYXFvaG8xdENEaVh5MFFmc1BMbThPOTc0d0VHRkxVUDBUT2hDME9pWjVST2NLTEI0QlRQeEhNRDZ0ZE1zcDZQblZJVnBTYkR5TERmUkJLQmFwM05XZW5Id1luYTdDVFZsZGdjTXNhTS9ENHlhdkxzZGk1N2ZuUm1HaHZ6c2lINmpDSHFDUXY2OHRnT2VvYXJzeWgyUHN0cjB2ZlJ0OSttUU5zK3kydmdmeFp3Y0dsbm92Uis0SGxoRldXVHMyeFZNcm1LMTNHS1NtSjJIazZKUG9DNDdhWjNSMzMrVGNtd0tDYjZ0WHhFVDZDZUFMZm5mWXRpUGVCWmxqeE0ySWo3cUd4T2pObjloZHNEZURFd3lKeUFrTVdQSk5KNFAxWFVNWmpmR0RubUlWWUlldnJHelpkVG5zRGxIYnFBbGJhL3dLaDR3clFtSW00Nmk3SlVvSEZvbUY3M3BRUTN0dGRERS9pcldNdHliK1IyZlhmSS9QNWpTMDdtOEkyUE9EUGorZE9yS2pRUjAwWFNLN3JKQklUakZUdjFYWHE0TktKWlluQ29Ba1RYSHF3eTYxYlJLR3Z1UDlYQXFpQTQ5N1Zwb0Vybm9tQldaL01FeHFlaTZWQkkySHdrYXBRdUtoMFBnUmJHVFh4NUMxQzBkblRUdjBGcWkycUs2d1dmNlNNcUZUTUxBVHFsaGZHNWhaak5FNU52NXNkcE45aExURG9TSWJkOVFmWGJ5SEVtd2FCWVVhLzNJU0pLMmIrN3RNakh2aXdpNy9RTWJHRlFiT3ByRkM5UStLQWc1NjVSaHBNdG9GbnEyTVRua20vS1Yyb1BuWnJYa1dsNkZia0JyU29tdU1GeXJMbElRRVc1dFdpUzk1d2VsSUU0ejlZQUNTbDdac0ltWGl1SmRKTU9tTG0yUGwrR25GWmJ6bFl1WThQYjRLWDgvVHlEa093K3llNTA2cW5taWVaeXpuUlRUK2NiNDhtNUludmNkclNQeXhsdjRTZWtmUGpFYUU5cDQrZHlveXpEL1NxWkV3eHI3UnNkTWc3ZndTL2lPYmxTRTFuUTUxa2dVMk03N3htbHcrMmFJRTFoSXo3eGluRE56QjBLZ1llWDVPekQ2RG1SNExLVUVqeFN2dmUzSWN1REtrdTlQUThoRW5VeTdGOFJ5NERJUjc1d2d5ZERNWHJsdExLcU1zRmw5Q1Qzd3lGNUJiZDBidnREb2V3Yk9EVk8xYStqbHNWdldJZjh6eWMwYjJNMjhPZ2gyMCszOVQwNEJ0a3BNOEl6VkxnckxhSm1tQTVpQW04Q3ZzNFpoMlBkU1V3aTBxWDJ0K3QwVG42b3lGRkJNdkZhN2hFYTBzaVR6bHBMZ0xPRERCS1NZRXRJcE10SXc5c2U3NGtEWnMrSUd0dlJJUitjMmV0OVh0bFlqaGlYdHZoZEVya1NzVWYzdWx1ZlJxeElQVzI2WDQyQ3RSN0pVWTBYWlRkeEtFYjhKTmJoQUJYS3loWjlXTzkxLzA0RWY0R3BGRG5zZTZ1aWVMN2NQbzR1dGxkRUZXQ0ZjN3dYYWMzdStlZUEyeXdCM3N6dFpWcXB4MHhRR0d6dUQvM2FTZUFHU1A5dFR4bVpTTVAwWmk5blYyTDlIU1BqWkFUNjdGQnNWdlVoUkVWUnpUdUtvN0FQdWJkenRIMzM5RUlnUkhLeUw5L0lIbXJZd0cwdk05MFN1amV2UzNjbnNMc3ZUaVJzOTF3NTNEQjQ1QUtlOUlhem5DQ3p3SmtuZkU4eFA0OUxIUC9wVlBoeHJJRldaSG1KSXNMU0JZOWJROHBZS1NiZEptRThUZ1ZsUzhjK0xrT0hLS29aeDFvcEYyMEhoNDh0aytic0RZeUJmSnZZeDBTSGdUUStXL2V4ZVF5UDdWTFFqay8zdjk0Y3I4RzNFNTZsRkNkcjQrTVVDT2lvUmJRM25Cd005cFVvTGNTOE03VjVDaGNjNTd3c3pHdHNhYzJsdUhsOUMrWnNnVVNQUTI3eGY4RTk1ci9TbmhaZTRIYU9LSGhKZEtpUzhUd3I3Y2w3SHJZeExHREkwWmV0NUR0VVc3VGJHUTlla3NCVDNYYWlnZ1Nwa3A0RC9pRE4zdWJwdlFYcDdDa09kMXp5bEx3ekdaam4zTTdQcW9oTHl3K1EwYWw1NzBQU1UrcTNRWGIxaTJYZkhWait1TzhBU3k2b3dmVDZIdjZEbituR2VmTmdEOFFpWThwV2JnRjQ0Y21YVlBJblRNbTdnSHlOL1ZVcGFIbUIycHMrUDFnSG1VaHhkVjhnRi9CcWwzd0hHQ3N2dkdKWHZVTjRrQVBXQnRMYlliRk1XZ0I1N3Q5RUorTWZQbmtSN2V2NFhIM1Z5NVNQS3hSeCsrRDhGRnhZcVF5Wk9ablpTeGVlNURGSUc2Wm1PT1lJRXRQeWdRRU9XQ1BXS1VDcy9PeWxUQzRuWHhzVE9YTlJZemhZZW12V3EzRTVPa0QraHd2cGk4SnloVFhjV2tBek5MOVM2UHhHZXJ6SFRxc05ObHgrSk5ZeUUrY1FVbjRhYU9aYnBDZmlKckJoVnhCOWY3VU00aWNFZ2tMQjZQVzdySDNYQ1c0WGZJaVB2T043QlJWM0FhU2hWdjRmVkdhVE9JU0xnSnhXakdYWHp5OW9USjdpbEN6ZEtlYS9ydDFBNWJ5Q3Q5b0kzWnh1S3lERU1zbWJEY0NIanV1Ny9hQ3RXQUs1QnRaalEyYVo0RFc0Q1dKMGxkUE9kVEFDNHlyWjN0WUV0UXYxeVcveVNocnhNZ04wYVNkOWp2cmtuc09aenFTdWljZnlzT3RublppRHp0ejVRMG9sWkx5bFNBWnFqRjM1aG55d1VpSHF1U0Qwb2NsUk5jdUpwb1luY2swV2M4Ulh0a2lPbWZKTFRGVmVhQ3I4aGkxczNtc095K1NLTlVVZnJQazZvaW8vSVZxbjdlVytnNWFzckRwMGRVUmJhb0J5Q1E5UC9LWmFBZHVxWWk5OVV4aFJyTWNpTFhRZ2o3UzB3UFBaSnY3UWZWSWJBV2toK2ZCNXV5alpOVE5rREZRYnFYR3NZS3NYSTdXVzNNdHFxelBoazBkTkJGOVZTMkwrUEFkaDNVWWlZRzhwc3VWSnEyNmxmdVFuSCtzVHpKZWR0SGhrcHFVUlIrdmJaRDNrUWRzb1ZoY0pRUDBoMGRwclkzblN3ZHJobUdMRnQ4aFhXcVdiVW9rQlBydTlicFFzOXRmaDFLcnVBRVZack5KakY2aGp0Y3pITHZtTlZ5UTkvTDA0bDRTM04yME1FWFUvZHB6R1IySnN0TlhNUy9ndEN5R0swZkpWYTAvUG5wZ0IwMlB3T2pmK292aENvTTZhZ2ZnZnViSTNQRkRxVHJJeWp3UmxJdTdLNnB5aWE1NmZycmErdTFIUHhWLzJmRlhxa3I1cm9yUXozUVZYSHY2dXFIUUIzTE81bERUenJyelVMSUdxcVN5NFNqcXA5NEdwazNDTFcvdEM0M2tCNkxrYm1Jck8zTndlVXlkYlRIdXQwc3ZGdlg4ZDNFZVNtQWErcmZXUUlwT0pvRzFVQ1hKdmNpWkdCM1NFT2FJdUZQYzVwelRUcE5pdW1iMUliUEhJOWlCVmFRL0w3ZXpYZzNhTlg0OU0weExMbEpSdUF5b2kwNmQvU0NySmUvb0xDWVhvQ2FUWEtwcENTSG11TUcwWGtyNTNZZ0gyZkRMQmQ4Z1VBK0JGeldudDJ5b0lKM1QySlB6bWNlbm90aXFLUjVCS3ZCT241VE9WWmRIa0dxek9YMHY0N2lLa1ZwbHMxSlJPMmY1VVdtNU10azBXWEczQzRMTWR2dEw3ajNnSmlHMDVNVjh4NlprUThQTFVBUmp6NUhNT3Vzb3ZUazVncndpdGIwUTFlTy92b3hHTE83aUs0Q3Y2V3dlUTRlL1lJc1lsNFJ0ZGZQM3NEdHJqVTE2VVlYVURZcVU3eTM5cGJ1SXNLNWp2bGhMNUFpdWw1ZnhnclpBWE9yTDRjUXIrcEJBK3ZBYTBNWlYzZ3pjczlDeDNjL2xpT2dRNjFqUG1RS2I2S1pUY1FyS0dMYXhRVmFVUGg0OWlLRldHVGcxWjNYOHBiV0tVTEVoNmY0NDFMMWhtS3Fpd1oraXVlUzFuOHRwb3hXbG9RN0JCWmVHY0xXbWZZRWJYbkcva1hNNnZLUjhqSm1XVEQxZXRJRkQxRWsxL0JNSVpOSi9NYVpja1A5Q1MvL2pLc1dHMzVUZ0M1SnROanRGOEU3ZlNVbzRBbzB3YXVqTnFMYlVwQ2k0b1d0S1FGb2tkdTFIY2h0V1VpSnl5MzVHM3c4Ui8rcU5aUnV3N3hGdWZuK2hEL0ZSM2lxc2FLSEd3Ynh5MHJnYUg1K25jY3dXQWo1aWhMZWg3UEFaaW5OSVhieEwyMUlTM282TzhjTW01dmxaSUJqOWgvL3RXZXNXa3gxcWFDZGVvWUZHVmZibmhLZkVLUzE3OUdQeThadnkvQ0MwOFhIZXQwS0JjNWxpUHBJZDhaTGxKY0NVZDIyYnd3eloyeXNqUkZZeTJZbThINnlsdHFVLzc2U0lFNnRaZ2tKYVRrNWFaai90MHFuSE9XQmNHZnlPSituVG1tRzBIS2h0cC9kOFdLYUx1R0FkZU1kZGZ6cnVCaUhneW1DOHpTQ3lHSzBhVVlmTkpocU5hUmV1c0FZUzFtS29BS0pST2puSytZVDVKaFdyNGJIdmNabW5mWDdkSmlUZmZvNEVDU1luNnd2UXloak5CUG1jRGpJdVQxN1ZsNHJpSDNsdERhZVB3V1RTU0ppUWdlSGd5Q0luSGJUYjV0Sm0xK2ZIcWRId3J0N0lSSWtkRnBOOTFZUGVTNzhxdE5mWUtuLzg2c2xVVWNaUVEvVU9mTFV1T2NrNzZubHY1UWhQVzZoVGRkRktJcnBFL0VHS0JqcGdLRlczTWlnOFJMSnJrT3FOanR2SkdhWW1mT2VVREFWTXU5Z2tkakN1M3p3dzFyamEyZi9rRU9KSnUzY1JhN2l6RWwwN1JjTHZSbEhzTTVORlJYKzFwTHVMVTYyaXhQTjNtTERNUGhHTUVxb2syMDEwUnV2bHZpS045Ykk5Ym5OQUhxbjk2ekFPNzErTnNNVnVDNm9uT2xTWXJkM0NreDhpZ25jdjg1ejNUblhxRG5mZEVRVXUvK3U4cXhKRW1mQitVbVpFRGMxRlp6YWZRbjB5YlBmTE1aeXhUNjl5blYxa1piVFdGaDNIbUZLSkNQOTl2REdxTUlEWEJ2RWQzem1BK1ExRW5FOHRXSDVhNjY2bHc4RW1kTTl3dW56WTkzV1l6ZXFJdjBCYnpsMjlFWTVkRnhUQUhhc3JKbkhvNXZSR1ZMOTA2ZFFEdTd4WWt4UHlhNVdhU2RHbXFoeFp1a2lVL1o5RERLQks1emtCNmdJemNrVk5RZXN2Mi8zU2I4ZFBzb3YxRmdaeDZMTTFIakkxL0pncjBuVUVGV3JKMlZLZFhFMTkwaTVCOWQrWUxnQ2x4U05CeElQS0tIdk42SG8rV1lUN3hGVHFRYzlpRVNPYmdxWGpSQVVLb3NEUzBNYVFXY2dWa0JXUXBkVE5rNklzTGJKNXExTmN5OE0zNThNRFRlUGJFNHByOUlmWThGUmVSck1uUGgwcWJvM3orRS9QZUtyTk9YQXN2azB5Wkw1Nk9FcWs3NkFTZlpJenkwWnUvT2ZBeFk4c0IzYVV1eGZUTnI4MnIrKzJPM2tFZmk0dFF1Ykk0SklGMWR1NHZDMzdqOGt6UlhWakJuNE5kbmVEeG9YeUVQZlZjbVRxdVJnRG5oNXNxc0M3dlR6QkJSMXE3TFJKOHg0OEU3OUlPWHgzbjhGMlhuRHBuSUUrUzJiMVhLbTIvOXkyZ2ZoRExPUGtsUkN6emt0VFZIMWh4dE13elVwUXBUQXVCOUlOVWlWNm5Zd3p4NWxzYk1GeFRoa00za3dGNkNMZk02V2Jwdk1iZm5LUzZZRXBaaGdldlM1M1FRdGV1RDFpRjhHM3JaN3dsYmdhT3orZEtYOHFuZzIvVXJjM3J3Zm9hdHZSZEZQaDY3QS8rR1FFRUUvY21NQ0dDcWdFQXA5RmlSNkdmVUJmK3ZqS2lmd0NpclI0QkI0dnVGbkpPelg2OS9pUzFtSlpSd2tEZXU1cTFTaHFUR1hHekJRbUpmSlBuMU1rSlpLZzArWGFzTEIxV0xySitkSm5WQnVncDJyeGZGOThiVGJDVkRPRDVMN3gxZG5OaG93YXpjRmZpNnBIV0xiMHhISWlteHJ4aFBIczVYWVBrWFB2bDJhdU5QTGZVcWhHcE40ZkY5UlhZZHZUQTRvZmpNaTVWak5teDlSSFQvZkZLWncwR0RYK1lQdXNVM2VqdytzQzhxcjZQejU5cU1JMFArQTNWYVhSRm9xS1BkVDVMOEVJVExwSTg1L1BUcDlGOW52S1E3cGxVMXdONjBFd1psaTZ6YzFtMlo1N2lzODkzQ1JaMnlEWit4QjkxdXBsaVVoNjJidGg4UUR0amtpUGhST1JwUmFYN3djd1E3WnVJME9Ya0grNzRoa0xveHoraG9DaFVrVVVuTW41SG9JRmNsYUNSbTU4N2IwUWI2Wm15bTVFL283V3lQcTUrOVBxUU9YNXgwb3I2K3VGbnh1d0gvUG0vZzRxcHR0YVFZOFo0TDFMWEh6OHBPamYrVnplYkxtL3Q3VllTamgzK3RQdzJVcEx5dU54RXFzSTAyeExmQVA0bWk1WkxhQjlTc2hOQm9TN2tRSGZjTVFzWjhraVRTNHR4S1hwR2ZyeVgwa0NHT0xaRitPamNtSmg0amdjQkhrdTdTQUg1MjZkam9sdTh5c3NLYVNOSHNGUUczVTB2MzJrYm9zMU5PaGx2N3BsWFJJeVg5NXd3V1grS044eEx6VDZoTkxFOG9nOCtRZWh0d3FWbkZ4ZWdoR2UyYS84RkVHblVEMmtEZVVreE5rbUNESkNEMkRCdEZ0UGJnNUo1M1pKeTBSb3ljM2tESWxOdG0wSW4rcm9jdTV3RGczVmR4b2x0QXlWRVlUN2JEMDFXS3p4UE00VGozQ0ZjNGxxSTBNcWdSS3FSZVc3MkNwMmJWUTlsNitKV2VGak5FdUtjTlZrYUJUQlV5Nk1pNnZVaVd2V3EwcUMvVGRTb3pzeGFFNHowTjMvYm1icmM4N3dSK3ZiNFlPbGFLUnE0emFyYTlOamt4Qno1OVJPWDl4L0pHRDZxMXZVN1hQTjRxMTM5U1kyMWU2aW1nSE5QWlZ4ZlUxdkhlVzMyTXkycVNIejFiSzllMnBhSHp6ZnV5YmQxUC9iNk05V280N2Z4ZmVacW41eXF1ZDZuR2lYL0NaVUJLV21TRm9OSnNGVXpNejV0all4enYzT3RQR2w2aXpJdHEwdHF4MC8wUGNNZDV1cTArZlYzQjVJS0hqd3ZZNFVQMG53ZUlyOHllMkJ5djV5c3UwWVAwa1ovd2tpTlBnK2Vzb1ZnL2RnWkZ0U3k1RXk0RDFQZGt3V1JodFQyWmtxMTA5aHNpejU4OWo0NloyaTZ6T1o5RlIxeW9EcUJuWC9MQVBPdlRRYmV6UWZEL1dNeGVIOU5hNTF1RWI1UXZaOHd2K1R5M0grUkJvdklSSmZqTE5scFlxaTFnYmk1aEVlb2lMcDYzWE5qLzF6VzN4bWdwUUZIUFQ0bHp4YTNSUTA1bVZiNER2UlZkTm9YaURCaDlLRkdhWDhWejlUTm1YWXllODNQbFNZTUFOTDNPRzFIaEcvR1ZsQzVHd1F3elV3SGlOWUh6U2p4MXNPZ3NnVnJUZmJMaG1XQlpnT2YySVFlTEd1a1VSMnBCMkNyMVRXcVdZK2RtV3ArS080M3BSb1BZOTBVUkdYZjRkKzd0aC9nLzQ3Nzd5R1RwbHpBZ2VuU1FUSWVXSElGb095Y1RDU3Y3ZXBBWHU0NGZqRFh3Qnp2TTBFTVhsYXhCWTM0UmJUK0hrVXJpSTlaSkNiM0hRYVVaai8vQ2dpbkI0eHZXNnI0T0F0NitPbFBrVTJnOCtlK1d6VnFMejlOanNSSm5RRi9OT2RSeXpzUHRqaDV1Q0R2bVRYT0w3YXhVdW5zWk16WllMQ1RrR2N5Rk5xeW9nbXcyVVhLbVNuYVpSYUpFQWNjMzJrbzYxSDZwSHhzWHA0bVNUU0t5eWlPQ3g2OVhxOEw2Ti8xdmk1K2NWbTJFelBWUzltcGFoTWRFcWt0ME9LZTltemIxa0xibmU1dmR5YzVUSnlXNDc5SW9EdkVoTVppQjFaK21OallheTFUdGtRUHo3WXZXaU9MMW1ydTJYZm96TVVreGNFaGlJVytLYVVPYWJMV1ZTUTVHK2ZVWVFsM29tbHNoMHplaTlOeFFOMUdIUGVNTzVubll6V3B6N3lpZ2F1WGRXMFVpYk10Tjd1dmZhVWNldVhMNzYzMEw4V1k3Q1Q3OXE0VURGcVZNUFZFbjIzWUJERXNpOEF1amNGMjRvSVgzbjhPZTNyMTM3Q3BtUjVPUXZOVU9lenlpOGE1NURBN1ZxT09oMlNVZkE0bjJpSTlFV2FiUmxRU3ZXYnk0Zzd5Y1J0ZC84OWwvUHUrTS8wVW5ZbnVtNkI1SXU2Sno4dmlLM3JISGwrUnBjSzFWWnZxbk04VHFXUGJWbHhoUFgrQXhPUjZrL0hUOVJRUjFzU2pvSEh3MFBwb1VTWnpNMDFTZnB1c2wrV1h6TkZYNGQ3cXpqc1Y5ODNmelVnVnhrTVJlVE5PSWNrdGxBeTFNb2FObG1YUTVlVEg4dkYvWHRnMFJ1a3NQUHJhTVFjcjFCS0pkWmp6cmtQM0tBcE1xb2NYSk9BcUtQUFJvYjlFWWFCTnlRU2NjSzIvVjVPQUhpV05ibnpZeUtCMFZrNkNrRk1nWnZaNXp1d0ZXUHJwOUszNnNtSm1lWkRQbGt1VHlQYkRTUmM2UlNjcTdSbEVlV0kvTERmZGpPaXYveTRMSEQ1WXVjMzRpRncyTTJ6bjF6N2hPQ0I1RGdSdE9xTEc1V3E2TlJIdjIvUUd2SWY0UmhVeXVORkp1bGRzalJLTmFteTAyamNzNmI1Nkt0S25xR1NpL0k5U2VYb3lUdlcxODdSa3kzRHloNXVZVTZ0QU94a2E0MlJJdlFSZDYvS3NoK20vWDI5SVd3V3hYbktoV2JGUTh1VjAyRmhvL2lVUDk0TmxGRFBzWGQ5dlFyZHVtSzBUbVB1SS8yRmFGZE9rNng1V3ZuS2ZKRXgyYy8rWk03cjFwcy9YSjY4QnBlMjR5SzhmcFVvaFhxWkdybVBQZU94VTdXWWs4UEhmK1NsTUU1ckcrRXBBcnFpcVlYeWowQzR1alQ5RzVaMWR6U3lZMHlTSWl1N1RVYUlRcUVqMXp6MnVHcW5vdWMvWkNkWmhJRCtIYVNEV21WSFM1UGlIMy9Ob1UvTVZHNitCNnpEdVUzbndva3RSM1pmamNxTUs5NmZ6NEg2OUVxODNBYWVLc3l4ME1TempESUREMG1xMXBHeVphRnB2dUhhd3lmWXVjMHU4UUVscGdYNUlrWCt2dEwyNTVZLzJvRi96SGZoUElaZVJhU0ZIT1FVTGpLdGNLOTVsRGdOUlRmVGlBVXFkSmtEYVhSaG1yY1NsV2MzckM3cHpEbmg5amlLYTVUZ0FFK042Q1ZNYnh1VVFQTU1xTmY4dWN0VFJjOHFyZ2FpMWg2dkF4VE4zdys4aWZjZytubVlZaER5QXdvbFRTZlZWQUFsbjN6LzRuU3c3ZnU2SFZEN2hSVFFhREpDVWRVanZpNEdudE1OclB3bVZKaXlhRkpIWkF5VGU5b21YRzB4MzlUMUZtV3daUGlDaFgxanlPUGY5Vzc0SzFYNWpQblE0Sm1GT2dHRFJwck91NHM5ZGdVdWM4V21KaVd6VjhlWXJFUHY2U3ltOWwyWDF6d2IreUttOHVHZm12ZitSOEltM1VqYWZLaXhQaWJaS0VEdHFSaCt4djFhRjEwUzNSU3hISkJEMyt6N1hEdGQzNlBTZFBlVnZCUE9sNHhhNFZ5Rm8yRkNOV0d3WjEyVjFhdXJBQnNGZEM4U2hYVDd4Q0dJZUpKRFRZRHlxb2tzR3JVa0xWM1cyRjcrVHQwWWUxaDlXa1BxTHRXcWJQZ2kydWJHajVtMTYxb05mL3VNRUFTT0lSaVA3WXNmRnlwUGZFS2pYTEY0ZmhabVZMN3NTZVpxc3ZQeWN4Y2RYQUp3bWVWMm1ZU2NHVml2ME1nWVBXVWRRMmx1Q2hKV0RqRkNRaXNOb0s2RnNUR0N6TWhSZzdGd2lYc3pQbnB4YVhESG0weEJBeVBUVktFbElsUzRSb3VYZC9WWWZqL0RTb25SQUxkMHp0bG1MZjF4eWZpbyt1RFBTdEEwcDFyeitiSEZZcm5iNjRRdTFrYWE2blRoME93T2xrOXFyNllPckpRZDhQYzJ6RjRZV3FFMTE0OWNVa3ovZFdsTTdNdDBYWFJVOTkwdnk1ZlFsTVRzbS9HRnkxS3lyMXhFQWI4ZHVjdnNyZmQvdlN4REo0MGlUWHBNYkhERjlkbW41b2Q1cCtRTGw1VTJGd3hlTEtFRk8xUXM2a1ZydC9ac0pmYmE5TERqOVRKNlk1cG4zVklyUG9UVDV1T2dGa0FUVmtPU09HdzNFb2xLK1NXbGlOVWQwdzZHMmxVc2ZvekFmKzNObVRHY0g2WmpLZkZQWDQzVmFvZTBrcllVejZDbGRJNitDZjU3VUxqN1RTSC8waWt2N1J0SFQwQWg1NkNMbklwbmtFL1p1YVVsaElDY0Q3eWR1RDZHbnFGYjFzdTlTeEc2aUxsRmRUT3I3UE85RGViWitWeGkwVWFmejBDT1MzV1JjUG5JVFhqWFJ3cjhoMnpkVzJ4M2hxY0tyNjVXbWZyNWFkb3FpWTRaeUI2K0xleXBwTk9QckRnWUpvWUVtUXEzcHA1RElnZm80bmIyb3JtS2M0NGJvY1A4eDFhQ2UvUEZtdUtrVXFMLzBEY2EyQmVwc0gzUHhRNEp6QlZHdmg4clZ3bFRkWUtCQ3BEbGtDUWh0T3FTWmx5T1NYSHJBc1RGQ3d2VEN2a3VQc1BtVmJUTjRTdzV1dW5iZWR3dlptaVJjVy8rVG1ZWVVsMm9WbUpBRDZ1RCs1RDI5TFJpaXJ6aTNRVk1PZVJVa0lDNExFL01GbVRGWCtPZlVZQmdjYXFVOWUrNWdxalNvNWJ0aDZxbEF1b3pWd3N5MlJNcUZ5Y25UT3IxZUlFckVscDd4ZjB2YlA4UDJmSWpOc25sTjN1cHVQTjJ4UDVVLzBCZldlNVovdWMrdU9uSnBxM1o5eEZBSGQvUDhZNDQ4L0RnOXl5R1A4TXcyeEpCMitnb0d5eVJROGZOL0wyVGRTYnlhZ1pLR3BRaTAyTE5XR2I0d3ZOdTkxWXpmZG8zWEJtQUJaTG1aQUY5eFI2UU5xdUwyQndBZ2RaZDNWcjdoWE1VMHlua0l0NmlscmEyNjZXdXBPbzNWbkVyQnJ5K0FNQy9STXpJVEZCRTBoTzF2bDFReGMzYlZ6Nm11TVRQZDgrV09iQWZmMERLRVBwbUZXQXh6L1V4amFzWmgyOEpoZzhJbkM0SmVpODNMZllLT1RHRlIvUW1ITUt6RzBxZTcvZlBjQzdRRGVqNzNnMVRWbjY3aGdjWit2Y3JhR3k1cThCZ0M5SG0ycXp1Rm1ISERYV1RuYnViL1VnaXM1QXpCU0xSYmRYbTBtZS9icjdkVXdHUmE4blBiL0dtajgzRk8rS1dOWVZjaTIrNWpLeFpMaW41OG1WK2xxZUs4aDkraVovcWFucnkrSm0rVTZvWEh3dVcrZExqVTdmQVk1RXBmN0lGWEtucGtWb0lVdXVCQVlsOWVyaHpycHlUVTlGRmxmSUFlak9yTnNodXJYb3A1NEdYUjJHWDlhWFdUaWczd2E1RWJlZ3JUQXVvRzVLRTJ5V0hiY2JqN3VFdDg1NGwxdXFhak40dUhvVy9jMjkyamxldHFsbXVQMzRhVi9iWmw4Y3VwcWs5S29MeUhvalBsY3FKZWVZalBsa2hiYVNPNURDZU5TcXc1UHN2UnAzZFhJL2lTSElGSEQrVGVydnJubHBTSk9JNjV4amRaRXI1TzZ6UDBFeEdEZ0JLRHZPLzJIYmZwMlZjTk9OOEx6K05yeHQrVFF4S3JOWEFLZlEvUnRjWmJIamhEV3Jhbm1xYko3WUw0RkhxYnEyOEpRN1BRdmJrbGNQdEZZb2FJZGxQMnZ1dGRnTklXOHlqK1NHR1VLRzNFNVdLN08xQm1EaElQSllXdHd4WlNjOWdRSHlDalFCc29abFJ3N09GQThKbTB1cVVYK1NJYTVyTlBPSkNZTTU5Y2pWdUt2Sy9uejgvRWNwZ1lFMFkyMXlBZGxvSk9SSXBmaGN2VEdmclBHV0tET2JGRHBYcEd1NzJudU1HcW5qUHN1NUlWWU9hOGVRNEJKcmRZR3RFL21KaEdHZ05HMDBHTnY1STdGK29ucTBZY0VrbElwWDhrNnc3VUFmdHkvNzNjai9BMXp3bTFEYjNEMnp3aFgrYkpxNjBLaUxKd3g4SEJ0ekhiUlRNRDBXdVlkWE5WWGdKT1o1UnVzNWNYVHRXUjRLbGZmTWwxWlArTFVCZzE3MmlWaC9jK3AwckgxVW12MlJ1eC8rT3AxSW1zUS9yTlFDRzROazYwRTArdy9halcyVnRXTkNibDEvRmxmWUJlWWJaaVUxQ3VzNVNOOE5DQjh1cXBhKzJML1ZYcGtHMFJka2RXMWxabnE5MWE4Y3M1R1lPVjZqUU9BVkFMMituUzBaaS9sRTlFZVU2OHNYYmVEMGR5aVlHbEl3K2M5T0hkMHgrVy92OXRxQ2dDdHdrbkJEMFhHdWl0Y1UxcDQrWm5QOXJWT3BXZTJBWnZGMWxDUkxzejVsTFptNTVOTXQwSm5TU0c2UW5LUFZWNmJHdDArV3Q3dDUreExERlpoTXFqRzA0aExKSFJMbVFRTlhranovWUJRQk1KSUhCN2tCS04zWGNsSmk3TlVqZU5NSnY0UHFiNElBUGZDd2w1dkowS0c5Wi81WWZUQUkzV1lWcnluZm1sS1p1dlkxWUxDd0YrTlBnMEpmWmNrektEWERzWU8valpYL1M3K1RrTDlsQ1VMU0o5T1NsaGZaS2gyN1hwSGJwNCtpVUhZemtpYWt6RlRQYmpwN1dzd3AvRE5xeVJ1RTlnVGR2bW1LU0RhZzg2aFRpV2tVKzRCRCtzVXp5QnYzaTdnaTYvZmIrR3QwbGl2d3gvQk1EdHduZklyZVBKR3RIN0FqM1JuWWlhRXJUN2UrQWh0Y2dkNzlDa3Q3V1cxSzlDMk0vakZsN1ZIUHRmQXNOeER5K3VJUkhTQmw3M3VYUFAraVJyWjVPM01STEhnWnBxSktyN1NGUGhlU3RpYlhhcm9SNlJCM3c2TG10ZGtkRW1HQ1RXTzVqa05sMFZSdjQ5ODFWV2d0dTJGVS93d2dQazdwOXBBU04rWUs2VngydEZzQXpTU1poeUNrNUVHYkpvRGJHZE9iUlErc0FXajhmekFSNU1xemdrN1VLbFZtRlVpOUNNd3V4cW5mZnZCdlN3TDB3R3gzcDhYanYwc0ZPYTVWSTFFVnNsYzd2d1B0Qlh1d0VGY3BWMnpJTTBUUU1HcVk5QzZ5U0JlWEp6SldLd2ppRThJY29LOFZTL29BcndSdmdVVDhoYjVuc3EydmdIQ1hPVFRQSXdkKzUzZVhYb0VYMEVGcFpqZWVidTF1ZlRYVEczclY5M2hPSkg2ak5qbklQQTFtUTFOQklxVlI5aUYzbzFqRW01MGFNRFBReUR0b01kNVJMTEtqSG0rWFFlMmxxQWhXNnoxay9NWGcxZ1R5Z3JmdFQ0NXp5cndPS0FrZWc3TmY5SXVlM0daTmJWOXI5VHBmNVBDWUFwVXordUloMjNCeWtTcnd4RjVJNk94YlBRVkNPZksrUWl5NW1JaWtySENPNmhjUHNYYzRjRitIYytySWZSTnpkT3BOUFpPK1pxOE1WY0FWaUFJZUJNTGN4MndDenNvWWZDcEFrNk0vWXZRK1RCL0NJemIzVkdBT2Z6M1hjTDhtYUwxc2lTeTlEMTZCdzM3cUIza3ByeWQvOXlockt2OHJWTjNXV3hxclhCa3VDZVJrTnlLcHdGMy9SZnh0TTcxQk1tcjZHelI2TEd2RVZMbmJTY3c3SmtyanlXMnpUL1diM0c0d2V5ZnJrQzhBQlVyN1Q2Mmw0Sk5wWldvWi9yRGp1MkJ1SmVBS2hNRWFDdngrZlpYelB2QTR2dzNra1BjZzNKbk8zSGlTYmlzdURaeG13aWVCd29xSjduWmM4TmcvRHQrc3dPODcrR3NIQWQwR0QzMEtxN1hSaEI4bUk0Nzk1TXB0Q0tsL3poMnF0SzBoaUgvZ1dWbnJNK0J1VzFTb1J6STcvdURoUG9ZRXV1VGNGTUQycGlGamgxV2h0amRQOEhRSWRXYlhZdXlQMzdFbkY5bGxDT1NONXJPWVpBMXFXbHRPZEc0L25IZkIvRFZNSmFUZWpPWmg3ZlZoRzB6akh1L1FMc1lzNHNOL2g4RFVrZ0ZENVRObUcxckFkSUJ4WVZscHRicnc2M0dhbTA3eGdmSDNyVzFiUit2QkhmNVEyelFFL2hQS2VtamFUbVBzVWxuOUhIM0FaZ1orOGx3RmNNTVpDSWlIOUlHZElXVUR5TkZPSnpiWm5BWEZ6cjB1OWFyQW02azV2ZXBLVnhvVXVkUHpYZ3kzWDYzVy9YYllWbDE0VHpyQ0tzeFc3UHU3VFl4ODRwK3gwZUVNb0plR2ZqT0dPOG11UWZ4bk53SWFqMGN2KysyejJQQjR4UTlJaHY1TzRuUXpYcWh5VDE5RHhJcENvcENXTzFId2JwT1VMSjQ2dHV3M0x3OHovRnllYitqZkZIUjVERlBNUTFlcGVZMXhjVS9SNFFpeW4zeWlqMU43SjZmeEtSYmh3VVgrM25XdWZ2Rm1relA5T2JZSmIzdHVJYk45dXY2eTNMUUc0V0dQa0VMNFk2bVEyS1FQcWJhRThSZTVhajVidE9jUk1qY2REY3RjLytDMGJEd0Z5NWZwSTM4bitiTVBJWHJ5VlFpdjB4UE9JOGVabXc0alAyME1VQU10dHBzRUZsT2NXdEl2eFJ1U0pQK3JvUGJiTkxwQzJqbzdxYnBWcTByVHRmQWZ3WWduSHh6UG1YZVFYL2FDc05EZ2VKVWIyQS9SUTBmT2o4a2VFRjRLTDVKY09QQStTU1Zpb01oRmVpaDRsZHZzWE42MnZ6d2hRb1o5aXJOWGgzdHRaM0Z0ZHEzVUQwRkNJZm1oVGRmY0hzdDJKNnNzenJhT0loQzNNUWhreEw2T0dhQ2ZVdTF4TUhCV095OE45ZHRxUkRxZU5VV09oZkFQcWJ1NjViTDFYSzl0WEJnRnk3cGNHVkhrMDBWZmZEdEhkR0ZBK3lTdXpsZmdJdHdUdlhRWThyUE1kekU1UmZ0My95MzJiVmxDSXpiSTZzdFdESnUrZE5meGN0dXk3TG0vdHRMSGJGdlZRbDVMeVcwT1N2OUFNNG9zL1pyT014UWJFN0lId2NGK3hKNWFYeW9mK21JeW5xaHYxUTY0NFcwSkNhclJFdm9Xci8xbDdRakI1K015SWF0OUt6MTZqb2NkR3l1ck8zQ1hSRWNIUVVWSFg3SHZlQ090aW10ekp5aUphcmNVRkRDVi9lcW8xektlVUVJUVVxVXhyRHNTV0NxenRwOXVvMW8xTm5ZZGI5ZHlwZkVLVEwwZjdjVVc1eXZGNXZKaUM3VXVLRFkwR0tZVmxUbnlEQVpkY0JieEd5VDhJaUtHcWcrNUsvWHdhZnJHYy9nN0JuS01MbmlLOUdVNTU2UmZPMTRHRnljTUwzelljZlNwQStkOWYzV2NkS2tJWW5obWRVdzVkZUM5d2JDa3BSYkRPMHJMVHQ1MFNOZjNCT0lGSGNmM1I0SjFCL1kvYzM3endwRmgwZGMrdk9DaFFrOTA0ZXZmVkhkV1FLZ1JYd1BteEk0aUVmWmZ1Sk05NkRjU0RpSDFMS1lSZGZEY0ZsWFNqZ0lSOXJlbjYxVFJXNkhkb0pSby9yWTRkQVhHSDBzYzlmU2lRb0FReVViQ1RWU0JQLzZYYVNCOGJxMzkvUDBxdW9CYmZQbUFQdkJvbTdpZFJlc1pSa3AvZUs0bldFeGJpbko1a1FzVFBULy9uMzdKMS9wSGwxeVdUVjUwVTRTSWhJRzV1ZmlNUzBqNXo5SGFaRTNHTTYyQXJWVHJ5M3A0WXRxWTNFMlJlTzNmd01zNUplNSswSVBXcmJtemtUVTVuZnNodXZFcGwrcGM5T1JJNHM0OFJEeUFZUDVLS3ZCUlBkWWh5ZUlBNWtPdEd1R0tQYU1IUzhsVDU3Mk80L0JjN0JWNytDQ01XRmNvcUkzZlllZDRHLzdRMFNFVzhPVnBRZDFKOUJYRm9HNnpFY1V4MmdETnpnTS9qTFU1amRxUXNFMDJyZWNiUTlQZEtyRU51NFBOVmUrTmE1ajU2R25zV0R0elpPbkk2WmxYbCtxWGJzek1xdVAyMVkxZkxyejgvakxuMG5qOStCWE9sZmRYQ25ON1dKcW5SWjA3OGQ5RGNlTHZxd3BadVlLMExsMmc4eGhBWmRvaGZIU2ZCZGZvYVVLYWZFMTd2YmZ5Tk9IcWlFaDdJbEVOanlDTE9BVGpIRUlhZU56V0VnSm1IZmJMR2dLYWlGQlI3UndOZFNScVRlT0Nic3lIQ0xyYmZQV1hDNkllSk0xN0drb1pRUjZEYjR2bk9OVjU4TlhXckZVdFJRYjJ2dzVqVU9DeUhVeDRhUFhBa3R1L2ZsaWtBODZFZ1NUYVlyeERKZkNmamNBV01xT2gwVkNzRTE4ay9TUGNINUNYb3BXTVVOeHR2NWxwNm9sWUdHSTNmS0VzdmloU0pXR2l0R1Njd0xud2VQemFUQlRhNnJ5L25wNmJLbjhVVDBQQkVZN0lVUzR2b1Fnby9FcEk1SERiZkRzRHo2ZXB3VWNaV0doR3BLbTMzUCt6SHR4TU1xSm94RjBkVEx3anV6Mk9Ic2JMUVFSQnBBOVhGWmdRWjRiYWxJaDJEN3E0RXlOU3dDMW5mdXJvaXJiRTg2dWNIcUZnbTA0VVlBakFMem9TUUl6cGFZOENoZ1BidC9Cc2xKWEt5ZGxwMlhOUFBmczFLaHIwTkVMOTMyTWMvc2QvQ0RYVllNNmIvWXpRemdPbHZQSmo2TkpNZ3JvMFR5UFRZSmpLU0hNTDZreE1rSXVxZVZVTDRxMjRvQ0d1eHF1NGVTWjVPcTc3TzZ1cm5jNno1TS94aWZYZXFWYWU5OWtybGM1RTh3RUZ6cG1TVUQ1N1BvM0ducytNblNsMjJtY0pRem5jQmZRZmtwdjRaaldYS3YyWGFia2k2a202am9BbnY5RzhnYkg0OUY3cGVjMW01Yk1TZkdEc0RIOWR2a1E3Wk12N0hUNm1PMEk5ODhxYXdWSCs5TmtTLy9yTjl0WW12S1UzUkVNSUpsc01uYzJodnRyMnFHTzdsZlVCU1dkeWFzVkd0a0t1K0hRdnZoMEQyOHkyOTFrTmFSbkRhM0RWWHpvc2tTQ0F3ejJjTWpEOERuMENaYytNNUNQRzh0QmorZEhINnVzV3pWN1ExOGRXMjNXZ2ZkazdPYUwrL2Q5L2NWZ2RXR3F2eXNpWTVxdlVhSXZncyszSjBjRndEOGw2S1FnakZhWGhOY240b0pDTDhWNFB4VW8xek01TkV1c1hNdk94RnJ4c3htN1VnQ3pvM0JMMTgvRi96QW5MNjZNZXhEbnkxN3d2L01rVStpQWQzNHFjVmVWWjBDd2FGZDl3b0FLcCt6SmRQQjFaMjVWUmd2cG54dklIQjl2MXljS2EvYjdwSDJYZjRRNnU4Unc1YllqaG5ndVNqbGIvV3FHTXI3OW1oS0hyRWNPMmVnb1pvbnZyaEtCajNTK3FZTUFwTDFrWXVoYnhWa1hYUUVXVE1mSC9uMTg3a2pSTVFJRXQ4Qk1YMXY3R0lTbEl0QUNONmFtUm1uSXdJb0VwOTFzeXE1UW13aUdnQVEwcFBDbkd4K2FyUDZEYnBWUnRncnN6RkF4SUdTekpkTElpWXlVSkJmQ3o5MWdXMXEwVHFoSjJ1elM1T3QrVFRnL01ONkMwQUEyNER3bWE0eEtEQldqeUR1aWk3OHlmUlNYTmttYy90MC9VNkdmcm9mUUFEZVE4QXJUY0t3WUwwUHZuNktEZnZuMkxCczR3TkpBckxCMlo1cXhRWVZPWG52ZHVFY0Rhbm1uR0N1VTNkZXA1YnhVMU9CT20vemU5TTNNamgydnNuWXYvQnEwSkd6alU3OE1rUjlqVUpiakd3NVVUbFhsVGxkKy9GZHl5aFQ5MWF3eDcveEppOEs2ajhEbGNkMjlWalg2eDczbVZBUVBvYUJEbnRuRTAydkhJNm13UW9PRXBsQnNLdU5xMEs4MUJvVkZxQzlLdWZZaURQM09FUW1SL2ZEbS8zTmpGRWsrTWJWUiszWUhLeWszSU5mK2R2UWtHaDljRkJ1OE5DN1hiUTE4MzdKMk9kVTcyKytvWEsxM29zTDlYdlhqTkdOMU92V2xVNFB0dUxBaVl2R2NiVGwwTlkzOFduRXJUeVBUNzZTTUdPeFlqaWlNNnNzaFhGT0VSK2hyNnR0dmtBeXkzbjd5blR5LzFjVGRSVlVCMTFhbWlBam9tanVpUnZOUTkzTTBjTWZLT2ZZcEYzNFc4Smt6bHBjbUhiR3o2N1h3L0MzVXRQcS9ucm5vazZQU1dBZXBhTVhFOStjRDdFVjREZHhueE9qMVhRUUQ3V3oxbHFDNUxldEROMndNL3NaRVdHeG00dmNCMHhNallWUVgrcURnaTJyL0x3N3UrSk0rWDFwaGJZbXJzZXZLTDZrQks3Y0w2R3ZyNjNyNW9OYTFHelNJVTQ0cDV4ZnY1R0g4eTR2bm5Lc1JpcGRTMHJDQmNFM3VBUE9VUUNuSXVQNm5CWEpVUlI0UDRSRmxOdUpFdHNpa2RHdkcxcHM0SVkzc0FnS3dlRi9NVE5sRktFaGRNM0tERTZDWlprQnlPQ1RxUmc2TjkyKytVQW5NRUMrZ3dsVEpmQi9pbU0vWnYrUDhWUnRjdXFaMFBvVGtRVW80ZFBBT3Bwa3BsSm52aENnS21TOFlWd2ZEbXBlaFpRck1VLysxc3A3dDJWaExNRGdiRlhKUWI0bjN4c1k5ZnJFK0dLUHAyKy9Pd3pkTlZHTXpDNFVvc3B2bEVGUmE5OEVKbEtnYlVCUU4yd2I4ZkVTYmE5dk5uZVZ1SXJzMmF4dGpuUmVWNWtXbmUwdnh4VVFHQVBLZVpkbHJEQ082d05FcWd3ZVJIa0t5OXhzTGNvdlVPcWhkeXlNVC93dFRRQklGUnQ0OGltS1RFRnltR1lrWHhtUDF2ZHAvdENoa0N2NkxycWVSNU9vQzNuWVpBb0hMZGVnSTZ6amFOclhBanl4VUtaSm5DbGNaU0tudmRHdDVTaEpZNy9ZZkNNMFNpVjZzbGVJbEVnbGVySWZpYWhuTHpyYWwxbDV1N3FMdlFXT0ZxVXlCZ0x6S0pyZDhFdDFQMG4yZ1FHc1VPdkVKVU0wVnNiMFp4NnAycWlmMkIyNGtZaXBiSkp1dis5VWhwVkZ2OC9ROERuYnFiOXFGUkREanlvQzZ4Z29DdmhJR3Vxb0Nab1hXRVhWUG4zWlJJTkVmaUxtc3FqYVN1bm42bGl5MWY4c1R6V3FDbDBSS2JsM3NNRUNBNnpzZmJ6Z1ZBT0tuMVZxaHROZW5BWVNRYUI2ZHFTTEdCSFVja3dVbnBUYzhrakdQUWlmcW1KQlZDbjBPdXFzVkc2eHFURkFndGs0TzNmODlBOHZrQjVBOEVCMWRJeng3SzJMUFllRTJxRk4wc0xsNGpRM2JpY2J0S3NsN3d4TnAyRjk4YnMwQmZSUTZwUUY2b2ZQK3I1eUhFR3cwdUVzbEZ3RFZJcEtaVWNZYWk1VER4Mmw4RFFXeTJCL1FyVWN0azgzUm5nTms5T3BTWXJrUVlrK2tBcnBIWG9XK01ua0djeWFnWm82a0d4MmpvR1J5ODdYc0dnczhQSU43amJTdzZOblNzZEdHcDdZcFNOYVlJZ3luR1lCWmhNUXNMZXpVTW5DcWZzNGFxVVZkVHZVNU9sY0hBcWZUYXF5bHFUUTNGWitkVTduTEJtb0twV0t6SmJNSmdUUllURnBzYU1rMjVWTVZ5ZDlXY0tPODFBeXBtKzI1bmg3NytETVB1MHNFSFBsV2FvdlF6Zkptc0lGREhwSnFGREx4K2tTdUpjQmJ3WVo0N09NQkZsQjFTMU1JVktPc1lLZXVsNVRsdzNNYnBhZzFtQ2l1WmUwT2pidGFGMzEyVkV0OU1CK3Y5Z3NNZWV4VDltZ3pOQnEvRldGbmpBZnUybi9LbzM1bllKM2x4eDkxamQrTVcwZjdzaklnNzlXV0FqSDN3aDNpM3lDek1TMVZVd1dSSTAyZ0dZbW0yQzhnY0VDamdZUk1NampSRUkzR3RUVTZSUDl2UU02MmFNRllxTFVEWjFQUTh2VUhXR2xGVVZXMWI1L3JyajdYUk1xS2pvUWlXRi8ycnBxL0xsTDJYd3Z1T3pENXR6RHZWaHVqVGNxYnM5dXgzYUdHUEVzZnFaM0xDdkdKT1BpT1VLR24vWEFyMm5iZGd1QzNDYkNoZmtBMjFDQmx1c2RvVTlFVGVDMCtSOGloV1BTOEU0WEtDRUQyWGF1Vko1YTZScU95Vk9ubDhtdFlJSHZmRmd6Z0tqNCt6bmE4YllMSUNWS3FmeGZSZmlsVHE1RzBSNVJuWkdXdmQxTlN5UGI5bEVvNnk0WDRxOUFvVjlDeXIydmROWVl4Vms5eHR3dkxkZnhSdXhOcEg0WDJYSjYvd0lpbWVtcmNnREpicFFvUW80TEV5cEI0VDRzRXpPcUlTYWZwSk5iMW5VV1JRL1BTaHl4cWh3MEJwTm9QRDJ1MFltcGJsL2U0TkJENWhkTEZia2FIVVVHTWdrYUVHZ2hYTms3cXdHNkwyTG5rRmg1eENrQnByR2t1dkZaOWgzd3h1aWE4eGFJbVA2WGcvR1RFVk5qVlcvNTVlMEdiUUZsL0w2QzRvZ0k3b0NjelcrVlpFbld4a1hQcXNvSDJuMFh0MDV0WVhzdlZxUnNpdUVQQXI2ZXN1V3lDUXRYWWRScG1uVGEzbi9FTFovNEhTcnhtK3F4VSs2RkJqdjZlSUxPWlJ6REVaTWdhME5ob3dIbGJCenZvaElNN2dFM1g3dENPcURRdEY0SFFsTWlnTkJqeU9sNnhkUGdnZVFLUEFFaEVLSlJLVE1haWRGcm1OdWdwU3N2Ym1PZmZZRlVZOXA4SnJyNkZxVU1lelB5blpqZnluRGczd05MV28xR1VWbG9iMDlSaVZaTDRlZHY5NGx6NXRZZDh4SEROczRDMHIyZ3A3VmZBcTVwL1ptMXcrZWQ4cXVMblNSVjFVdEdFWGpuUE54aGVxTk9xZXZuNTdQVlZucVNZdFR5a282U0ZnREttcGVIT0tXd2ZRZis5VE1EbENjVEVQTmI5L2ZYS0RSKzI2UDNsL0NjZTU4ajVmYVYyQnBDVDU0cHhhalJ5N2xhQXMrSlN1RE8xRTJ6OHBydEtoUDVIL21QbTcxZ0c5cjVmZVJYMzJ2Vzl1NEhYeDdoM09JMzdQakFMazlsTGZwSmxHSjdtL291NEVNSUdaeklabVY4ckFaU2VBaEs2UGV1U0tYUlF3WW10U3A1cWVXK2wzMUZEVnlUVlVuOE12b05keEszejJCWkxWTlZTLy9aelk3NlFPb0Vod1dBb2tTaDB4V29lQ3cwb2d3Q2xEUE9xUEpqN2dkWnlPdzhOYVhnV0RCYXFaWE9JMlBKUkRGWlRZbWtwSFZ3eDByU2E0elBSU2s0WlZ5c2IvenEwejFCQTlKa2FoV2tUeXNlclhPWHQ0a3JGRWNoSVdoU2VUTU9na0VhSEZsZklyMloxd0dhL2x5RVd1dDlWdkxxUXNhRjBlNU5xTFk5c1NGNVF4bldqSnRLbXRnWFZZOEh3VmNMLyt3Nm1majZsQ3Nsbk5TQUZRMU5Qb3JkRXBwWG9jQ1ZRUGg0RXpkKzA1UDZUREl4dUhhQ0NTdkpwU3RNV1ZOOXgxNk1taExpTjFuRTBtUnFQRStZV2hMbC9TQTMzRzl5Um5GOU1VNzljcXN6RXBVWlQrSFBib2JQYkJKNVNkc0pPRHJNakk2TWpPRWNyQm9MaW8wTGhkWVhHUmpMZ2VUY1plOWloL2p0SW5PNWU3aHRseCtaenNNbjFWczZMcjVWM2ZZUHpsdU11WFY0SW9ncGxmR1orcVp3ditZUDYvK0paT09sV1NaamFHdHJ3MFRxS0J5enEwbzgxaGw3eVpiejMwT2JkSFlQaHJYOC9RaVIrK1BtOUdHZlNBdENmOW5IM1ZhUS9LSCtuNUhzNTVsM3RSdXU0aGtiNXNZTHRNSURvNDRGN2ZEMnlhVkhybHhLbUdTMlk1T05RbFZsc1k2bWtMZERUZUFzWTJOZVRhb1dmMTBZWGN6T1pNZnRUVE1keUxSZm5HcFZzSEpCdHZETjE3enJtaitXbWZrN05ZZWlzcG5BeFpFRzd3NXVLNGFNMjZIZDBhT21SN3ZzSCtaQ1dhYUw5c0FuWUgzRDdabGFoZU9iN2FtMStTWHdSd1FEOWNXQXlHUjFOVEJ3dzlJNlJUS1lDTWl4RzBnaGlNMlh1WHo2WjdlTnhkVWU2LzFBSDJYcmZBaThERTAyQ2V2aGJKTnRHdERIckErZHpzcG1hYUlZSWk4ZWRpbHpLdnJBZFF3VURLWllETEhmdmRZa1ZCcmNSZ01sN2R5MU9PUTRoUkIyTHcvbTcwUDVwOHpLTjJlVTk2TDF1SE9oMXhLcW5DYkhoc3E1cnFiRGlzRCsxejZ6cGRFOEhhNnVRUC9sR0k2R29IWUpqNTJ2dmNidmRPV3p6Z2xkT1B6dCtyd01UV25EK0JXcVpGV2RXNzlweXdaL3ZWd2JXMTRkeG5xR3VQb1A3emJ0ZlVaTStTKzFYYjdoM09zNnViZFVQd0JteWVhUGVsK2dhc0xEMEtOK0JweVhhYmNHVm4xdDJhaENTNzZwTCtpeUM3MWJJQ2MxZDJ3eFdIcXhITmNLK2RFSjVNWXlKREc2UUpWUVl1amIwd1ZjWVF3MUZ3dzIwVG5VOEJyaEQvYlRNM2cxb3c2NUVGNmJDeEx1NDlkaG9jSVZlQi9JK0JJZ3ZQNmxqdjRnNGc1TzJ6QWZrckx0eTZTMFVKVFNZd2huS2RmLzJSQktoMGVyYlE0aTBjVFA4TVl3ajkyWCtrbUNsd1ZwQXF6WkU1bm1rVUd1Y3hSNVBZYVhnNzhvVGpzQlhObnI1SldNNjNPTU9ESExXTXFZQkdMUnp2cDhpY2ViRWVWczg3YVZ1TjJXQi9IZzBBM1NHcmtPaGQyQ2d0UXd2QnF4b2ZMT3VwRWgyY2ZKbE8wSHF3UGdGbThibXVnSW51Wk0zaTRNZVJERCs2cjNBeXl5eXluWGtVNzhSQVVUU1BuUmcyMEdKOUNZRDNwWi8vVmpJS0NnczdFRGNQU2EvM0F1eUk5Wm5nVzN4aW5HRW1IVkFNZk1iK3NIU20zVXd3dDZNN0lmeitUTjd6VitzK3ZqMWY0VGlxbTRGdnlTNnFaeG93dmluVExuaHpoRUVQWk5Mb0QyUmFHZnk2blA3OEorTWd6Tmx4bmtpMzRpczBIOTdaRTRacDBHcXJ4bFlWMnF6anE0ZHRzSFNvcUtYYmMwaVpBaWZuQm1adXRpaWRlYTIvaEhucXJOeFhUckcranVnMXM0dDFPcm1GMTFoSDBQZjBZQ20rZHRLcG1aeDZKUndNVnpwTkRXNytxNUljWlBkci90RXRUTHZBN1lLSGtnU0tCYm9MN1BzUzhURC9na0EyOU1tdVJwNVFDSG5lbjBNUkVmcDhuMUVpdFFqK0JDQkN2MTYvd1AwUFFWN29VYzgvZ2wvNUFlVm5JZnI3TDZHcGtFSm5XQ244Zmk5Q3FseTVlNS8zQnhsRVZMYlRzaEUwQ0VwR3FGQnJ6R2JlWHVnV0FINFAzeUQ2eGtOVzRYTnBiK3JLZGpseDhkTXg2ZkxlM05YVXk0cmRSYXNaN3I5Y2ZKaytWd1lFZ1I0bFp3RUdqQVB3aDZHaDIwWlBkMldzTEhqeFJ6bVZtYndmRVBIbHdJbGlBZ2ltOXdpSkpHZldnRnU0clhQL1kvZDhuK0ZlRkY3Z3owRlhQeXBxdnNpWDR4OGNSZVBvTnZreHF3SzQva09xNmFBTnpITzNlRXVNK0YxUVY0UUNmQzM4a1F3WkYwN21LREdiTVpPaWRQTWpqMzFtazg5MG9vRTZVMUkwZXVDVGtRMm9aS3Mzd0kvOFdDbUdlOTMrcWs4bVF6ejE3Zk1ManZPdncyNk5rQjR6TXQ3bU5kYjU5c1hTTjVWdmlqL3ZvbWc1REVqZzNiOHorU2lpdlBkZEZoL3dvWUdEUDZRNG1oeTB5dUVIa0hjWWlrNkZVbEJISnpTaGhYU3BJazVodHQ1ZFg2dkRWLysxd0tNZDlkVmtWSjhyeGprN1E0QUd0RWxQODBTOWpLNkp5bWowVDh3LzQwQnNnRndncHVMRkp3MkNSZmt1dm0rL1hyOEQrSnJqMFdtbngvRU1RS3NXN0pYU28rQVhVUjREQjkvQm1lWXVBZ0JFMjkxZ1hTZkk2RHRoR3ZRSXc2QjY3bm5nYVFRQnRkUUEwQVlBT2pJbEVwazduTGhscnpuUXFqYzV2VE1MMUdjTE9KUFRGZDN1dUwyR1lEQWlBNE9wRmMrQzZ2d0xlRWZ4MUFPclUxTWJBZXAxbHF4aHhVTEJFK3cxbzNPYVlZYVdvYWlaL1dHd09ZVVFYdXR6OC9GcDVIb1YzUHRZWElaelJvb0U2SlFiei9uRTVDZThINmNtejlQVXJLUkYyczltNy9zTTc2WHNRUnNyem5naWdva2thdDIwaUpSS09jd3JyVkVRbUlzSXlCYkdub3BCSzQ3M2NvY2NtbHdYcE9EV3hWRWkzUGpYTzVnRGRXd1dZdUpxYU5mczA2eVcrVVVYTkhRK0xQcFp2UjluRDdXcHFWczFqajluLzhsNE5lREpVZ1BWdzBOc014WmpjWERSUHRGU3llZ1VyT3hrdHVoOFlmRUxzRjFxSnVtTG9iN2dIMVFPNlBvd1h4aDM4WFA0b3Vld2pPdDVvZjhTTHdiaEpYc1pxc3BuUHY5b0F1M3pUOUx3R2JuenpBTXNDUml1MnFjeUJYZmVsV0gzM1QzTVZ5Zm5Ha09BM3ExUjNFTkl1YTVOOGUvdVl6KzlubVBHRzhmQ0FVcy91cXczYzdSRFdVUWZDOXBDVm5jMG82T3JrTDVWODdLTk5jbEczWWw5bDZGQzJaQVZqdDduRENic1JkVkFMUjJQUkZhVE9PZmMzVVgrSXlRUUtKWU02TDAzSHBneUlIN3ZuMkVjbzBjVWg3VmxSZ0FvSlBDTGlkcW9ZTkFrWlBYUGREa0VndFI4K0M0RmJTemZIUE03ZCs2cVhicDN4OSt5V1FaNUFZQ2h1RkhFdjI5alE3b2JYYlRnbHZiaVpGZUNpbE1PckJDY1VISUN5UWlRM2UzejBVbUxoWncyR0NweWtwTSsrZ1VTdy9oajZxc0QwQUJyZUl1UGZLeit1S0pkek45RjB3aW9yTG5TRGJBRVhyL00rdVNSTDUya2I4eXRWMjRyZXZhcWI4YkQ0bXJWRDFGRkpjcHRiTEUzeDgrYitXbDVIdkw1d3ptZ3IwUEpDeHY4cDQ5REZCcWlrRUpucm5mem1vNTBaeXpHUmVKbmY3QWREWjJjMkVld0VSMkxrbllYWFJEdU50RUpHNk51MU5rVjlZNmFTTHYwR2s4eTM3eVY0WWRNTWtnK01JU0IwMmc2RHRmcmFPQnduejBBUG1nN05VMmxJc2t5VklTVTlYM1FWc0twSGRVR0t6RmhOVEhFTXA5TVJaWUhDMXR2YVZiU1psaUVvanNjdmJVNnEyOGZDMUNBY0JqaXBidjZ1NmxqN0NlN2Z2MGdwem5LRnNER2VzNHV3d2JnbDZySEFERjdlVmkwNmNpYko5NmZHMldjZWxPVUQ0bGNvVVpZMTVaVm1NRGJFbU5zTFJkZU9OeGQxZ0JZYkRWNlJ2V203Nzk2RmdSZ2ZaZkpSTkYxRlZRUVF4UGhiVGg1TGdGMVJVVzZhK1J0b2t3RWhocVlBMlk1dHBUbzk4UXoreFJUNnl1VGt1SE0ra1JGZnBYWkNsdVpnTUVFUVNia3drZ0ovWmxnN04vUi9QK0ppa1RyVGs3OWpQQzluZzRaWlFzdzVOVGNzN2VydWNpb1JnbGJvQ1RVMmwrKzZva09IV01UVTFGWlp1czlrUDRnVi9GMVFLVVZGbG53eFlQVCsyaEErN3kxZFUvZjZuVkRMejJRSHpsbVIvcE9JQkRPK01MMlhycDh3SkhLZlJ3SlRKc2tWaE5qdjdJUEd5VUpzQUF5cTZDaEYwaWxsNUNibFE5V1BuaTQ4aERmMnhHNEZBTkZXR1gxYTZTRFhINnZIT1F3dWZqSm9PNWx4MHZMMXRIM2VybUUrQ1Rmd1B2R2VDRHdDaVJMQzJSVENqQ2Z2VUo3YzdTeGpIRHQxbWVpQy9HaGhtalJPU05tdmNKTE8ySzRhQkpKcWg4T0MwNHEvRldhS2pEQmU4MXJVN3ltSmZMNmZjUmpBb0JIZFNWdU9PRitBbVJPN2kxSGNiaURRYkRFZ3FwN1N3eHR6cndhdUtEUnRWYlFXTDF5ZmxXN1ViVXRzaWRnV0RhSkFBc1psR0JBMWI0cDhJYnFDNTRwdXM2eHUvRDI5K2MvTkxZbVYrekd6bmxLZ25oaVphMDVWZUZ3KzdtOVJQYVZ0Z3ZCYmpoeG9velA0N21rbmRUSGJtQllRZ0VUNm5qcXQ0NEgxS1p1d1dCTzB4cjRiSnhrNjF1OXc0MmJYZzNYYWNtVmxPMHlrbkRGWWkxTjZDcldka2ZDdkk2OWJuTlBZMXhLbkJGVDFBZlNjdUNnSExyTVlXZlNjOUE0MWp6UmdScEpuWExsbHRFY011MTZPTHJISUlGa1RVMWswOUwzc3F6Y0NFZFlKcmMvVmZWTlJoS1NHMHBLcnpkcWhnaGhsbmt6MTV6ekw5bzdlUEZRNEJmaG4weDV3OTQxdU9jeERBeTRNNWs4cWdMQXgxRUpqVnUzcjcwY2d5VWdsaFd5ek1UVUQwd2d3YmI2T0VRRmlzM0NSd1pkbHJ2c0tiY2ZuWnU2SlZBSlFXR3EvVUs5ZXI2dzhvWDZiWFhLTDFZOG5qVnNWWGkzdHJGV0hoRFdPdXphbmxYVmR6ZHpsenNiWDV0Uk9YcS9tOE1VVmxzellZTjlyMUdhNTBFcVg1bDVNM2puRnk1Y2ZqS0x3Y1grV1UyTndZakd0Ylg2QU5VbnBQRjFCeThHU0dvK0YzamtWSWF2dHM4emlmMDF3QWRENzFzeXViazV1TVIxbGQ2Z01pbG1aa25TOUdpRHYxODFJNExhODU3dVRML0JDZnZONVd0enRVcE9ZUnQzM2wzRjZ6K1JYNm02QzJoQXF5emsycU56eDdKUmtsMjdzVDNheCsxNzcrNXlGcnRzUDkvUm5ic0YxYVZXU1o3Y2Nic2E1dUtqdEJ1SHcxYW9zb0tQT01RSWs0N2hQQWoyYVd0WmJJZml3emhXREsra08wdVpIb1JEWWxxR0tyVGMxQnVTRzQyK3N1Ulg0TDZkRnNUQ0FzU3BGSHI3Y2RDRnZTSEV4NWtVallaQ2FSVVdXZ0tlZHRuR211b3dvY2FLTkRLTVRzNnRvenZqREVNWnptTkVlenpTeDhjQTBwUk9EakJCVDMrUnZoTkNUMlRaN25oS01NV29sclNiZURlZnUzQnBQRzJ5eHlWU2srWU5UZGFBSkJESURyTjRWRHh2TVRReWtkblJ2VkdoNTJnc3oveU1qYXZwaUZDb0w3bU5LWFNJVzBtTnFad1BPa0UvVmQxaG90WXROZTAyblkyKzVieTFhekFYMUVFUDFCbSt5RHFaL2pad1k2T1FyeDhVM3VEVWNzczNJZmJoTGNvdE0vUytzaWdya0tETjZaZ0lrOFl4VEZ3OHlUVzFzKzdVdGFVc3pya0lJL1A1RmRyK25xazZPd0lXRkhISXErOEhIdkFhTk9wNi9EQVBzRWp4TVBqS3FjMGIzbzljZTFyazJPbHM0ektNb2ZMTUxseTM0K2ttZy9kSUpZd0VvNHV4WkNwMW1Fb2pTVFkzMHpOU3A4bm9GSUxNbFJlUFR6MlliVWhvdGMxSWdJYmtnaHIyOXFHTXA5QkhHNE5PeHV6eHRLWmRiT2lDY0p0SmVreFNGSzRyT3pybHpBTnF6c0ZvVnpSWFA1bXYvTXI2WHlGTkJXL2tMYmxRRjVFbmZhNjQzcGRTa2N2aXpqYWRTQ3p2YU5qTVlKRnZvNExOM1doWXNFZjhpRHd5cHU3cXBaU29XTHRLc3F6VjltejlQMyt4RGdPL3ptcGdwRTUzM1UvekMyb1VUbjhoUFBNTHhTL01RNTRkV0pGZmwxOC9PbGo5K2p5bks3VThMcTR2V2FkNytNSURUU2FtOVpEWUk2bk90SDQ3SFA1OG5JeU1hREFUSXFKUkQzanhMOHhPVkNEaTZRMFNkYWFVQTMxbXAvZUhBNUFoZCtQNy95WGp6VjhPQmtaNDJqU21DbElzaENoaEtpMnNvNXRqWEpuRUVGV3AxSmhFaURBU29KREpOTE9hWFJ6aDRnbVZZOFFlOFAyeUhlT3Y5ZkdiUitCZmRzRGxDdjRVRFhhaHkvamRrVmN4dHUzR2huWVZQNE9MSjcrN3NUTVY5Z1FlSHBzNk5pZXh4RGdIOVpMcTEyM0pBc0Vyd1d0TGxZUXNMWHloUkRNNXdEbDA0clBqV2dNdXY0SmxoaVJkTXlQQ1pEMk1udkNTZFEvUitWbyttM2hCZ2V6eDVaVytjWUFvY0hCTHluOTUzYWcwL3NqbWg2SXZSSXk4ODNtK3owLzVEWC9CMy9EMy9NZlFjUkFPVU1Ua3c4akl5TWd3RE1QSXlNakk2TkdGQlU5NmQ4aWg3NlVWcnpKeVFnS1FMZWp5ZWZqUi8zSDdQL2YwbzBPbjQwU1krU0JmNUlmOGpOL3hWL3d0LzhoLzlpazVHZEprYklQYS80QWMybndkOEQ5d1pNdjJxakZyWUdCZ1lCQUVRV0JnWUdEa1FjUVFoVzFlZ20wSUJyR3lrRkNyZUVWdHErbWZZR0NRSGtha3lXeFNkc1RyQVZvUkdyb2VlSEZGNEtLaEd3QVZZdkY1b0xaTG1WdFlXQVpYbzlTMkVwamVTSlNINXNhcVM1ZDBrcmpUSGFLTzEyc2x1R1lvMGZRYzVaNitzb3ZaWWMrRFlVSmpvcU9qV1JRcjBzWitwREVDU2srYmhweHZ0UkI4dXdpM2tsb1pEckpHclh4SFpzTS9yWkl6Y2JzWVBRTWdQQmhwL3VqNWdTdGllTTNUQXA3RTZkUEk1andhaXExQi85VndaUW1KalM2eTlXQzF5UXB0OGdUMHVybUIwYkJtUnNKbmRDK04rSHFFYlhzZXVOcUttc3p3dE1zS0x4T3hXSGhZR3ovUUdOZWtvaFZQR1JJWVNMS3ZmYlhvQVVKb2ttTlhjMmpIUUwvRGc5Y0kzZHFyM21hWHlHVHRHZG5iVjltMHlqalp4eXc4b3ZwM0NPeDkyOURtVGlXMTN5YjUwR282Nk9YaWZXSnN6ckVBb2dCZnRjQlhNMzRTd0pFSGRiSXJBYzh3elRCMUZhT2tIa3dxRHg3OUdDR1BIeVhNa3ZhRCtQSkt6eFUvd0UxM2Z1SHovQlNaRDRidEZRM1l3T1hYMDNpM09hdnFibTdRMGVrZzVwZUNWSWJhM2xBTTVnQitjc3VPMjdCckhFSk8rcjJma1B6eXFiSXR1TkNDY0VObk9KcGc5T1NZY3graGNiYngvNXZRcldUOERIb2s3a3RyMFVtQXFkcGQ0UGp4ek9FT0R6OC9nSGl3Sm5VRWZRYkFFR01kc1lMR25JYUNSL2wyT2xDeGFZREN3WHlmYndsM2l6UnM3TDV4aXIzczJBVkxXZnZRSDBNSzh1bWg4VVJNRXlMekJJRkFJSklrU1JBSUJDTE5oTHRDaitoTW1TaWl4dlFoQWdJQ0FvcWlLQUlDQW9LOHFGQzhlbElSQ0RwM0hxbmN1dWpDSjc4ZmxCRitlSVIvTFFpRVAzZVVDZUNiRVBhNlllMEZhOXR2a0JJZk1sZ2IyMm44K3JLam8rRFFhWnRvVUt1cDVsSmxEUVVvSldWRmdmUHdHdUpjZDNJTndEU3I3ZUZadzJwUEhIdlpPbkZVa0pENElZc0NQQVZKZ1VxSGVyS0RTUUI5M3VaT1pzYWRYcENEM2F1N2RqYTNDemZGYmkrbUdGR0p6aDNDTmE0eEpPZDQvWFNEUWowdDV6anpZS0Y2K2lLSDJoNDJYVUZDRE8ydlo4RGtHN0hyRnlRWmlHZ2ZPa1RtQktJdytCaEFSUVNBaDU1SGFhY0hyM000dFhacjRTdDgxV0s1MVZjeUNuZ2ZoeTJtcnljamNrNTF2SFlLUUZwMmJWdEhvMXBEc3hjUG90TkVEWVpmcFpWZGsyRkFaNW1kY1M2OXhjV0lva0hsS0dDQUVONklXRjZ2U0hKM0xPeUl6a1ZROFdWUzI5eXNQQmNlMzdERWo0cWphWXhKYWd3NTNzWDluYktldXRiaGdtY3l4K1ZRVWVuN00yaG1YMHBBZVpGdHQ0N3YvWjc2WFo3MzhJRSt2dHNYMExoeE9ScUVVRlQzYkwxN08rK09VWnlyUGtreEJ5Q0hoSVVFWEZ4TE5hb1lHZE5KZXJkN21KeWM1YkwzRllvWmY3bHk1bDVZMXN4NkYvUnpjdWpGQVBIeFYvaWVEUThRVXFLbWx1VUlVYW9Tb2N1eUQ0VlovTmFNWVkxcWhyN3NTYUozL1d6ZnR0R3prMndkclhwdmk5MkVUNkorSFNTdGNCbExHYXdpdU5vNitwT0R0MEM5ZXRLYjdJRVUrNlI3RnY0cG5IbFkrVUxkZTNiVGRERHlwbEV4MWdaL25XcW92MFpsU0JvWUlvZXBFZWhGM3FUUzk5RVhLdnpibFMxb1dNSk5iQUw0c0N5Z0t2ckhianVOZ1MxcjAvVGdwRFBrK3JtRFlhK3B3L0pJZUNHRjZlcTZqMk5KVWhabzAzL09DOEg0eVdZUGc2NEZrWTFkUmxmS2NRRGErMTA4OXNUQUdsVzZ1NmJ0R0ViRkpBdkdmZE04L0ZpSFN0emEyWHVOTWI0K0J0Nm1LVU5qcEhyck1NcS9Cb290b0hrNExOb2x1QXg2bnlndkpaM2l0allucmR3OUNQY0tCcWpnMGRwMXhqeExZRzg3UE1FTGx2SnRiWEx5SDdHNmQxM3p6SnREZWI0U0xzajNMemh5Wk9CZlhtYndKTXl5dHpWakRIQnAvd2xiMmExWnRaMWZ4NjVVOU85TFF1V3pQRWNUT21FdGdJQ2xJeVp4bEhQTVlFQ1lkZjZXOFBiOFVDRUVvaWZQTkxQZVc5dVRHZXpqS1NYaWNZaUZHK2VlYUl6YUMvODdPSlFUOUR1b2k0ZFlpV3ZEQ0NnVUNvVkNvVkFvRkFwVmVNcWFDUHRPVW1RbjcxOEVMdmplOTU1dDRvb2pQN2ZqRTd0WjVsbVlOSGVDYVZaeW5vaFhHR2ErYUxqa1VvZUxuQXhyWHJoZmRVUHk4N1F5cjhkRitpTE5kVHRQNHFpb1pFRjdrS1VRSXFUbEhyeWluZzVMWE9wTGpuWTR1UE1Zd2JKSk1jMUZzMkcwTEU2a2NBVTk0NUhpVGZpUld4QkxJZ05VMUZDVGZCMW9Sbmo2TTcydm1KUE5DUGl5dU14Q3dxaC9kdXJrWTFsbUdPZzlPTmR1cnFXV2FHZkNhb2FmMTZpbzI5ekxURmJ5TUROUTlJd1U2NndSQ2lTNU9WZnRpeEI4TytqbXBKS2JzekJSRmYra0FRenFOZzI2eWJWZmg2NW5DOEVlbzVSTk1xcW9WUFVZd0tORXlJV3RRR0IrMGVWRXRJYXVyOWYzZVV1a3g3b2lHcUlzZEVxRUxtNE5jRDRDUU1CdnZBblF5ZXBjRU9NZG5HZWFWVVpPUStaazNPMmRuSXJxcUw4V0ovSUJyZS9YNmVYbWNqOGhPWmxzWHVwamVha3ExcWlqY3gzOFpMelZyYUs3TmJ6MSt5TmZzaDE0WDdMcis1S0N5YzFjNy81U1BiZEJkLzl3eGJKZkN6OFBOTkV4VlNJTFl6blpsVXh1RXRINXViOXpkbzY4d01jSFBKODhFMWJiQlpRWHNTU0hsdHNqTUp1Umo2OThXcEl3ZUNoaER2TExnZ2pObmViZCtGUGFvUVFiVGhKUlJHNDE3OWN2NU1qOUFRNC92Rit4T1VWTnJ1d1RWZXorc0pyby9TWTkvdy9HdWpGb3dWdit4Z2NDY0dLa1J0YndDT3VRQ0pmRnhYazlBV29ZdS9UK2Nvb2xUTHJLU2p5WG94eUxUTFc2QktxOFphZ2VhRWhCS3JVdUFRV0FlQ1U4OFVhcWdCV2M1TkdRNkRsQ2R6OGlVcEhDNk9EaFk0VlZ3TEwrL2VncHhSeG1OeTJVc2lvVElldFJTWm1YTjNXeXF5WTVXa0VlTVRodm40Q3gwM1dac20wNEJVdHlXakFiNmErcG9CZDVFVkZuelRjbjBXbjkzVDUvYzF1ZmF2TC9QaHl2N3dUQlFYY1lUZTRJWUdOaGJ3TTR6OVJ0WG5vYkFzOTUxdXJZWXdhVW5pZHlMS0RaMTNUOWNoMjhLQVp6OWI3TDFpYkNUaVhDMmVXK0gwVDNmT2dqS1IySjZYZGlocmdWenM3TFgvTzlIQVNlcXllYVMvaUZ2ZTJKdi9RZzMxdnJabEdXSjZ1S0UwdXp3K1ZlNU9kNXVEenNZQnpVQVpVaEF2UGU5S050TWFaTDh5THA2dGhQQTltRWVaSWVYc2dCZFI5SDkrYTN2d1UxalNKbHBVb3pmSW1iR0JVUXNzWXlKUFQ5UGpZQk9LMXk4Z0p6S3M0ZDMvenI0dGU3clkwNlRjQ3UxMFBEYWRXTFVBanM5MzJGK3g4THRueEphVE9Sc0ZVK3dXVnp3Sm5xLzBydDBGN2V0MGM5dmFMSGxGYXVFZFgzSm16OWNOZkNIZVJXNXUrZTh6OEI1SzRmOGQ1QjhIZWtDTXBLVlVZcWVmaWgwYVF4Qy91WEw5UERpMzhSUm91WGhuams0dUkyVnQ1VUNtYk8xaytyUzVSRjQ4aDJTSVdLVmtSMVhSc2pldmF4N0x5RVZZai85Y1NMTDVKWE5UdzI1SW44TTVkRmJJTlI2ZDNYVi9DQ0dGbys5QlRwTmtUYlR1Y2ErV3dQcHJUWVZhWTJ5Y2owMEFQa1B3MTZxMTRrOEUzQ3FyRStyQ3VXd2xHQnRSSFh5TnRiT0x0T0ZSZFJkSnRaNThzQUYxdVJMZzRMcmFOWDd2aEpUNDVKampSRE45azZIb0JkdnFHYkFraUtsa08reG5uMVNhZ3JtWjFoVFZPYTBkNThRem5pNE9DcVYzTlp3Ym4xcE5UbW5RUjRkdjAwRkVpaDAvUU9DUUV2NXdMSnRJeFNVcFdDK2grcXpFbHlaU0UvckdCVXZwb2dWY0dOUWtJZmpvY0tVVEVXOGl4c3BqNzNEOFdDNlEyMVIrNXNwREU1K0NQdW1xYWFaaWpIT3FVUXhzblliSUUwbzdDK2tlL0NZSFNxQjF5ZVVROXpqblM4dWhtejdxQzdRQ0FkWmVody9NT3NHY3lZVWFLcEdBZVR6dHAzVTRIaFNGUkZBZ2ppanBPUzBNV1p2c3krblMxTWp1cDMvellsZGhSQWRhSkkyUlh0RkxGalNieVgzalhZajJVWUJXNGhNQTRXVll0QjQvMVZQSVduMExHcXQ0VW1kSE5Nb3hTYmhrWGk3Qm5xamRrWmQzaG05QlU5dUtJKzdrRm9RYnQzSjBEeGpZNUdSc1lLeSt6Z2R0bFpTcWc5ZUgrS0xJemRoTko2MEN2WWx5R1JSVXJVZHZuS2QveURHWlZpb01xcGY3WGdVZFdob2hNMUVoVkJEZ2xKcm5tZ2lCNzBvemcveFlWYWczSmM4T1BiSVE1S2RzMnVkd2JVNks5eHpiTElmRjFjdUxaOWt2N01UdlBuVXcyUy9uYU5vTnc0WUNtZGtDQ1FiQ2hQSzhNeXllVXZHclAyM25ydE1LSC8rQ1ZiVGk3Wnk0K1psNTdrWlhuN0lqZHVIN1UrZE9oMTdvaFVBY0NMN0xJcEtKTDdVYlB4OHlFdFdmWjE3MUZwUEhmdUlrdmVhNVNVTU1VemwrSGkvVzVuMDYzSGJMMHQ0bjgxUlUyVjI2MTNHOW1QVFMyNzYrNEI3bm85OEd2aFRzdXRMTUZybDMzY3BNMXkwT2ZDWmNMMHhlSG1LWEhQT1k0OWlwQW9zLzhzdURaVWZKQUtlYXZrNUZNL0V4YTEvdGRaUjBiVjc0eEtMZTFob0U3RHA1WkQrMFhiekR6Y1BBaFVickFMMGxIQlZ6aUkrSjIzWW5UcVNNcEVDZlpPclBrOGVYWkdwSmU2UC9PUGVXNU9mQUNtNEJncWEzcHBCT3o5NjJKclU4cGhEWW1lQzRzTWMyN2M0QkVMUk5aVUpkdFh1RkMra3RDYkpCR1JGc09UcXVLdnptaFg2bWNYZG5lRFdvZ2o4NHBxNVBIS085WFZ5M1FZK1RXQ1UvQ2xNQWhWeS9kNlFCVjdRT2VKN09XZkh1cG1rSGsxRHZHYTc4RmR4RFhBQXNiWU83WFVJaytQc0xLSXlnbjRlbVhjM01xUHA4bkpYOGFSd1FVdXFuUVh4dGUzcjJIM204WDM0N3hxNHE3blliRmRiYWNFYkd6bUtQSlR1MDhqdEpmcUdwdWIwMHJSYkdXV0E4QW1qWTRMSlU0L2tKTjliQzBZOXhyMEtjOGxYOXpacko2TDFIRVkwckc4WkZsYjFwSTRnZjRvRUFnQkhwMEFFTjU0SUIyNDRCcURPSndkZnpJbytNUkpXTm4xN1RFVTBYbVd4Umx3ekViQU9kZUNUZzhVbkFBK2xjSk80Rlk2Si9ZU0pOODM2Ky9NaWw0S2h4ZXh5aVhSYlduWkVTWExrempxa0thZmVhVno4WXBIY1N1Y3FYSXJDMUUwZG9OZ1AwTlRzTHJqTmRyZkdiUGVUNTgyU1BnMWNBUVVYOEpUNFduUzcyemQvcC9HelJFVUhKa1VrbENkVnlLWVNUelNwTFJnQWxzaUovRzZnaG9rRHFkaThKeVNPUHRhQUlTaEIxaGxMKzJGWlhXcUNYeG5XL1dxVVJ1Vmp0UVVMTWgyQlNST1dHMHhDam1rNW5RMzlKUWhYekdDZHFQTWJvRjdVeG5rVlQ3dWROeTRSdzJiU3RRRzU2TWw1QkZqM3ZORU5SUlZtYWlMaGZnSjFlVDYvQ0d1TXhDd0NFeVc2bG9XbDhzaEJqMjRNVTdpSUhoK1FLd0l1Mk5XNnNJcUszSHZHeGUvZkkyUjBYZm04M3E1SHJyNzlzUERUOXpJQWltaXo3UVhpQnphZ1IraUtPS0RQOUE2NUZ2ZlcxaVFhR2hXR1NkRXNVbzZKZFVtUmJZYzZESkw4a1ZIVWhvYloycXFNc1BUbThrNEtpZ29VcTZ2RkdkbjNWQ0FUMzFJWFY5cFh0RlNjR2hOT3lTcW1QSnl5a3NQVjhFeHo3cTA0VEhwMkZvNmh2K3ZiOWtwNXZvQitnWlZOOUovUWhwKzk5cjRwSzFTM203WHZuWUgyMExRaVltZllwSEJ5RFhkSmR1UjZleTR5VGFyRHJqeXdwTnUraEl5OHJrQzd6L0tSRXN1dW1nRVZrdVRRVXpNVkxKbmVWRldQRnZQNk1LVkNQTkNhVnhtSjlyR2VXL2JLcG85ZjU4cnhUbk1TNEw3QzZzaHV1cnV6cEFuTDI3NVorZUhMTTEzVWxCT0JaVzV1R1ZtRG5zR3BtNGJVV1lUckhPMXRiRm8rMWhHUUhpaEpGbStHZ0Y0VmEvZkNiaGVWZGFxdE5lejlGYXhUUURlL1JyMGZud3FiTEZPQkNXUVlpZkdZanQzK1Q2Q2FqODRrcllWYXJ1R3krV3pKZUlLYTBUVThuci9ZV1FsZFB2YW1pNytRcXViMzZHbHpzM0pDMHF1VGgzT01wUi9zQmYyeStvakFoNE0rck02bk42WE5mWDlPdVY4MHBEUGpBTTE1a0J1YUxhSjg0WVlYdmQzSXEvM0ZIakF5eXdDQ0Fndm5xSldwN1RYRFROanJlVDIrcHhpU1hhWVhmUkZqN0JtVjZrSlV0OXNvV2d0YlgxNDA2RElHdVZ4MDFMcHpKdVJtaDZwNnhKbERBOWtOb1BiN004Q1RydVl4eDVIMENFZVphZEg2U2NQeUo4Zkt2T3Z0b3dkSEpyRThrNEErbnliMjFYbkVnM3FLTURwNlEwbGVON3hRUjFaSFpjK1dPYkIxZkVMM1FtZEdPSVlVdG5Ic285OTBud0tNaXJlcDViTjVUSUNXRmhNMWorZDA4NFczbjBQVDNuNTR5ZFNEMlkxODRsUWplNkxLck8zKzIrbi90QkUyRnJoOHcxa2FyNkZjL0cybkl2VE5QSDFOT3NQc0orclJiK281eWtPbWphMWpqUk9QSHNQMDlMTWJESGxFUVdyaTJ2bUprS2xBcDI1K3pQSFJ3WXVRRklRU29XWUkzNFRTeExFZjh0djg5bFhqWFk4Qy9vTEpsZldadTNxVkxZY1ZhNDRJQmxsbDlGT2VlRVlsVUhXcVBXbXRDRmFGcWhJY2h0aXF2M2NiVXVETEJrTllUWkJpQnhOVmNkUXFVWWM5ZUlwNitRd1o5Y3lzUU5qQTRCZU1QZkNWRnB1Ym1ydWhKdWFTREN4b3p5d3c3L0tCUWRRWFJCUHFndUhKazI0aUJLY25tN1BxT0dUWnZuNS9oZUVjQm12blpQU1ZmNVF6a2pDQVFmSERTZGxOMTNBUU5xWG1OYWNxcXdsV1gwWU5mcEhxK2x6ZlI2akhrVkVST0xXUjNxWjdSM3pKMThpbm55RDJQRmZzZ2syQkJNam9ERHBLQ1RlbXNrcHBYZ29CNXg0ZW5VV05kbTBUb2pkZ3VIVTljZHdabzBmcXh5Z1dUZ1VVY2RtNUdXSHd6Z1U2akFCay9TdUF1QjlPSFdOK3hEWnRtc29BdWpXQUxFWDVxU2dvS0NBRUVJS0NncUttclRHZEhSMGREUk4wM1IwZEhSNTAvUzU5Nllpc24zTlZIbmtyTnVuOTJJcVl6cWpYSlNVbEpRSUlVUkpTVW1KRkdmWlNFU2hmQ2FXNFZqUkIxNjdUaVdNQTJIeEtOR01SMjc2SkhyUzcrcVRWSGduT3NTLzZ0bWVSWEJLUzVTdjNQcGhDZGFmOWdCZFN4bmV4ZGw2MHU4WXdsWmwzbUY1T0ZieUVCT1ZFa254UG5HMXd4MGhFcFZBazhnVG9sT2JyNkMxc1cvYnZocUVLNHhjZks3RVFLTmRsR2hvaGd4QzZSMXkzMGh5V01jZUxiSnpPOWdVbFR1V0hyeWFiV1lXRTBmOUFIelZQdVNSaDRlbk8vbXpLdlB5RWhLL1YvaUVESVcwYVN1cTVmWjBvYmJzaDFUbXlhcllGR3pPQ1RmZ2phdjBRTklaK3Vpekl5V1JzMVpQczJhZlh2V0JmeFZtWVNvek44VlRaV0V3Z3VwUmtQYVNteFNvU2ozR0lLcWhBVjdyZExoQms1Yi9BS0lKQW5rU3M4bDQ3T09ucG4wazNnaHNLeVNBdEdPY0lOalduN0dFT09OdGJsUGxoQS9OQVl2R3M5dTZ0RW1WM25xa3A3Sk4xblJxS21Td0RuNVB5NzBIOThpb3l2ZU0yeHZYRHprWFRwd3dJUUxQeEUwbkJCaVBNMWxQRVoxdWVncmpxR3RtNHlPZUE0b2k5QnZVMHZzVEZLZ2MraFRtVmw4OGQ3a1hnbWVhL0xtNjNQVXE0V0xlcXBKNW0yalVMejBzOER5STVTZ20rSlN1VlU1OSttaUVYUFlzMGF2K0dPbVI5eEZJSVFVYy9zWHJ1RldJL1hFNUNqNHhMUDVacGdKMnh4Rk8wV1lJOE5oRjgxcHBOSkFTc2lzQXF2UmRqSWIvT3c0VndMUzhqTG1QMjNBR1lQS0xWeXR1OXBYdUlHeDR4ZnJvaVU4QWVoTjlqL01ZcDR0Q25wL0hsR3RleEY1Skpsejd1SzJhL1c1R1FWVUNUVjhxblVCUmlzZkRSWENWNS9TOWRkWDBTblJINHA3aEtZWmtKdHhqTFpuVjV2SyszbTlQQ3NPckkrZkZDSURWVVl1UE5PQmVHTWNXUStDREE1THpSTzZkdXp5U2pJM0pDSFlWVzRxSThoZ2RSYUVXMVZpWGZUSk1pS21rUkRsT2NySTM2UU8vcEI5d1ZCYmp6RVFZdHV3bFkxeFZGOENwcVFwc081dUFmNFdSam5BSi90VzlzeXNCeWtKbWZEekkxM0NuQW55cHNsUllYcFp5UXh3WXFRUmsvcFh6WWxiNTdyUGJnMHRlTm5XYXdDTGpybEpaZmVNYUdzbitMOHNQSU0vS3krcU1iWHhTb3VlZHAzdmU4eXQ5SUNjbDErTnJOSnVzM1ZvWUZZb2lwOVN6ZmJmOVZpcnVoeUVlQnJFbHQ4VFByd081a2hBcmtsaHBrSlB6dUNOTFhIbFNOTURqSDVaaHl3Z25oeEFqQmdaR1RpaHk0aHhxRDBFYTczKzdRVmlTdHRWc25pV2k2ZENhdlFzcjhkdFlyQ3NZYjNwd3hHekR4WjY5TGd2d3pPckpjaGNLd3dmMWpQV0NaYmdTSWp2bjZveE1LUWQya2pMRHh6SkdqSnpZMHRYRGFRTVBzb0JnSGhjU1FkTllCQVN5cnVxdzBVUXN5SjNGVzBNSXhFR2FhMkVqNXJiaEYweHlVSWZqbXdQRVRkV2d2VDJISm1RRHc5eWlGVC9WQ1o2QmMxbjJ1ZEx1Ri9qalE2Y0V2Nm5VMWdRSmZFNmtKZHVnK0daaGhJTm9oUS9Hdk9qMmZoOHoxdkpYL1Fpek1mWVdYWjQ5YnB0cExvQnRzR0wzdmlXWVY1c2FmMjFHOWtKT0tMK0o2Zk9CcnVxYUx1YWNGOVdncWFpR1M3aXR5bG9iR0JDRkxLcFhyckxMd1ZGRmZMY1VSQ25XaDZHRHRFcmwxS2p6Y1Y0bG14NkhqdkE3Qm1mTW1Yc1libEc0M1N6ZUZjWUxJOEFWWWN6bGFIemw2eXcvSUViWGZZemlkaFA5ZXEyeGwrdnNnY0w4RlRPQXJHeVVIbzJjY0ozVEQ0amRwcHZrMXNORmc4bk0xRkJVaFlIS1NtdjVqUkJrTTk5NTBqb1BtZXU3L3NXeHdJcU51WlFPMUMrdE16bGJ5N1NCUzIxanViM1lrSXJNWm5BLzQ0dUVyeDNRSWpzMUdiU0wvL1ZZWnB1ZmI1bmZ4bE9KcnB4V09xWDRWYkkwYmg1a1djU3AwSXd6Y1IyWjM4eStrQmRnNHRRY2NCcFg1SXZHTlhHOVF2THBhUHpvVlQ3eEF5OC9FVDc2OG44V24vcmFqMWsrYXFOTUR5VzJ0RXhIMlhLWndlczNWYkhOaFNwNUFqVWdVYlJKYWk0M0s4RWd3cndjOGdpZDNTcjNQdUtlWDg3aWlldWt5MWt1bGZQMGtWU29ydGpEUzNKdis5Qm5GQXJ5WVBQNGdWQ2h2eDlDanovbXEzTlF4eC8yMDA3ak9DRzNuT282eGVKRXZ2RTZVNVZBemMwbnpod2Y0Y04zRUVrM2VrY0s2RFNBS2I0czBKNjNvbFI1SW9KdGdDaTh1Sit2Ni91ZitPNk1mbXJCaCt2SHYrUjJzRXZ4Njl4eXlLcWdVZVdjWUR3c3BBZW80OXlvRDBMQjJrQ2Nqa1dFRXcyQVhvY092LzkxVnBXQWhrQUlXTlZpODduRU1yeTN2Yy84clpVb3oxUDZXVUJMSGszbHlLSmVQR2JJeWNNM1loTFhQOFhOSnBtVldhdERXL01UTFp2ZW8vR05qdndqVHJDM1ZtSWJIalkzYklva3IzQkZCY0ZZblpJbVl0SXgwdTdEbzVwNSswVjg3bmo4K0xzTHUva0dONjlidG92ZUFEVEp0ZW1QNjI5L3hUWVBYL2M3RkcxdnFVNlg4WTdXMkthckJrWDZTaHBIMHJTclNnWU1iZi9vSW5DWERiRld2ei9reFVrdE9JdmJRWitMbU5teXFyRlNvTkdBQWcrbHVEOE45S0hTeFRXUGNYMmo3TFhFZ0JyZzBEV0JnQmFpZHFTbTE2eDNKeFNoZENHVFV3bUt3U1ZucDF2VlgzTjB6ekNTek5zdmJkZ2tKeldKNE5uMDd3WjBLRklTTy9WWmNHRk1Ia1EyS3B5Kzg4SGxVN1Y5NTFOWm40alB1by9QN05XLzlwTTJIeS9MUUdXSU8vWkM4VXArTFExYzVkUnI0R1g5R2JSY2Y4UUpjZVEvNGpOU1cxNHRzdHZuWTBQYXdmOUY5VkZiUWFrQWd2ZkJwRmpDNU1CaXlYK2Q2aXFkNStUbnBiU21WTUJXeDNjVkJpTUtIWmpMM2d3UlI0WDVJNjBiMkkybkhBR2ttUXgwdFdZTG9CVlpqaDlUR0R1L3JSQXQrTWtEOGhDeXYxeUxaZ0M3ZC83MHVlanBhZlZzY1QxZE11bytsc1h2VURxN0V0Y1lmT2pVRVFsWkZPMkZmYkJ4TGJNUGxSL0pKTGx0bFB2b1NrTGFNODMxRldTa2FmMWRURTNYdkp3UW44V2J1MDI4eGpuTy9CcE5zNE44RXhZcXoyL2VLc2xZc2hsTzlwQ2lDc0l2ZG43dnRWRkErcnlwUHRlRFBhN2xVdm11SGxwYXpLOVNCaXZIVnV4U0NsWXA1dm10Wks5WVI2YUpFdU8wTW5KL2pBaDlTNlZKcTVxc3ZkcjdHVndaejY1Wk5QTXBsZ3VPUFV4a3ZRcDkyeU9iRnVVMUJPdVFmVzd1VS85K3lhYTRJM1Z1MC9XdEFIMGcvZWZZR0JKMXhTK1JzMUxGd0pSR0xvRlJMR3lobHF4RFZWcGVpREI5c3c1MFRxYjNMVVZBemUyeExMMGR5S2Y5bHMyM2pZNHNNcEh5YmFJS2ZaOW0rdGJNNVhRQk04NjZvZWs3RWV5aUhRalJwU2RSck0wM0ZWd1JyYlNIWkJJRTVvZXhTWWZFTG1YUmtaUjMzUllPTzBJZ0Zhc1RQQno4bWhCSk5UVzZWWEJ2M1g3ZzlsQXlKWVlMU2pvOHBxaFNxSHN6ZXFLSUZsRnV3bm9CRWIxb0p2cXo2c2hQZStCd2N5VHlBb0d3R3hBeXdRd1FxSnZpVmxVZ0VLYjJ5WThSYytoWUVuMDZObExlY25ieTNKbmhIK1RqMlBnUm1YV2dsbHZ2dGxWMjgvbnJBeWMwQW53NWd0NUhhVTlJMHRubkxuNmZCbGVMOEVFWWdtZnV3Z1UreE1nSkEvV2FGMkNSRXV3L3hHa1ZQTUY4V2tIdHpOSXUyZGcrd3J6VmpQdDViNS9GaGc3Y21ncldHc0lHaGlDUyt5WXZWRFFsY0JjNW5ZWmNWeHB1REJrRHNQTVVna0xEMTlCa3VCZnl6L3VZYkpnL2Z0SVNxdGhvanYrajNiNzhuUjM0ZVZYLyt4dUF6NHlBd21zUVI5REpiaUUrM1laTWQ1b0xxNlB0bGY2V3c3eVE3ZGprbEZDZm5xY0s3dk92SGRGcGJsZHpQbFdVdFNwdDh2eG8rTTZHc2tqdjQzcHF4SEwydlRHUmQ5VEFOZ1ZIL25Xc0pxRVVYMUREd3dXRG5JVW8wdS9zR0ZTOS90aHdLZ3lSZVFSRHFBRnRHVGVXMk1WaGpUOFowd0JyQ2FvZjF3WmdtOGdTSjF1eVJUQkJRTm92dHNoYTZtK1lTR1JzZEN0SG1jM3pKVncrOFpVbm5xTGJwWGpPd3ZWbktyektCNUlTKzJQNFFIamRBVDUrczd3T0lkMnd1dmVFUHRseGsxQUZIWXluVDZicC9CSVA0RzJsQ2szTko1L2c3UDdHdTVlY3Z1QjlCaC9pQTd4TEhzMW4yYnRMQ2hGR25iQlo4dGxNMktUaXJVR0o2b2pPZVZCOGlBL3QrejA5dUpBanR5NVJ1RGNaM3VUb1phWFVILzVSdGF6L0dqM1VUN1RxdnZpWE83N0h2QnY5VVQzTUN1VzJleDU1M2ZJSndtWVB4L0hTZnp2SVkzMWQrOW9VbVpCRGJwMjJBSDZZQWU1RisyZ3doUzBWd2FZTDlQRVJOTnhwTFQ5RXFwQzNaaWsyY3grNXdZQy9tVnNoejI4QzcrMXJ0NkJONElXU3kvTmNwdU5KbVgyVEdraU4weXNpOEV6V29sY2JaSkw2dnMrQ0Jhd0lFZENNajhCZTRQM3VpVmo0ZThPYkNYNzhkV0JSd3F3T1BiZkZkaGZRTUZKTnUyUG9OMWdNUGE4SVNoamFHNFpNL1ppZWp1SUE4RXI1OGxRVW1zSnlRMFJFUk1Rd0RFTkVSRVNNQmxXbTErNW9hR2hvYURpTzQyaG9hR2k1NDRVZk9QT0hDZnFuWkNrYXhBM0IyanJDVkVpZWxNRlpnSHk5TzVBSWRlT0tMTU50N0hIOEpzZ2pHdHJSdGRuQ0NiSUdKTjFxZWk5bFFiSjlDWC9PZFFWdXIrd3FwNk9YM01hQXU3T3EvMGRzdzBsQkl4NSt2ZmxHZFVjVXh1MnZuWUZBZDVnTUdmZVQxSnc0Q0IrRVN4Mk9uVkw5VGl2bG5kaGhSRHFLWVRhL0pudUtzQmxxYWhSc0FNWi9pTk9MVFp1RTdOdDhQNVRhc0w0Smo3MzlCUjRuTTRaY0t1L3E4aFhrb3NVN1AwaVFROGwzdmxqSExBNklldkE3Z1ZJZzN4OXJsN2Y2NC9GQXNWclE1V1lKSUtJRlhmbUgvNFh4Ylk4UTZGR0prRTY2cEdYMnNobStwRGE1K2Z1VkVWSkVyakpJQ2t1c0hxSjE1T1RhT1Q2YnJaZGVXVnByczhweFpkRGlyeTBHdUxpZTd6UVdzWE1FcXlzTWRsOFFlUmR2Q2RER1ZrRmlyZ3dvTVVOdW96OXdZV3hyQURwOHdWM3BEYzdySnVOL0doNWk2OW9kZFRsd0FiejBERGJETis1ZDQ1aDBnR2h5aFk5M1JWd2xCSVNzNm1GaWpoZ1lLYjhRNnJCcHhrQ0J3NjdlcGx1TXRuR25JNzFiamhESE1panlFTlpMNUpBakJ3N1lQYi80c3c5d2RIQ0l5R0M0S2o2aHlBUWxybU9VOWZEYWc2YXdDOTkrSU9TcDlUa21HU0FOZkdSaVlqYUJxL3oyb0NGUExTMXhPeE9RNEI4dEFDT1AxUFdZSUpVamhuN0JwaWkvOFNubExzSld2azFoYmR1ay9MTms5WEZBcDFkaVBWczhHd0R3VzRiaFBQMCtGR3hWQTBBM2kvOTdnSXpDNmhpbUlEd3RpTVZLQmRDQUJTTkZXZ2JhRHVhN1VXV2M1THVKbGlzRjFBc05nTjhROFhpTDdmSVhXczl4S1l4U1BmeW1mZm1uNTlGZmovNXIxQ2p3SHlEM21TWDV6VGxwanFNL2piNnBnSGdMS0JLT0MvNEZUWmxPa0hpRnZ3eUdBeElVQ0dSNlo5MXpqNHkvNHN2bE5sUVJoZ2pFL1ZpcXdkOU1xdC8rZXNQYTNRMFFyZTVXcTBEekFJU3NCeDlncy9Zc0RnOEJBUTlKUG9PQ0FvVWEzcHhzSk92V3lPcll5WExrdmhWVkowQ2hTdkNIRmd4TFdhMml4VXF6ajI2WjBCN0pTeG1UNjlNY3czRkMwaGRLbk8vSTVwYlpEdTZTUUJPcHVPTUx6SlU1dHF6ZEd0Z3UwNTU2RGh3T0RyczJCemlrRkFnYUdKamY3WS9aNVRhZDhwMmdFWHEzay9KUjNwS2ZCanlVUVdRam9LcEFEUjR1bVJsTVZzYVFuTjQ5MXF4UTJtTWpydnlIQ1BFa3g3bklwS0IySFJWZlZ3WVNub0g3Z0ZoMUhZRGZ0eTV1cHpZN2gvTG9LQ25wTmxxM3Y4TkdjdmE1Skkwbk5UY05vTWZHcWFPQlFRMUhrdUhjNWJtT2dsQXJrS21rQzlpWnlCTUhkNml3TzgrdGFVRm02RDZDOHRPcXU2cGEwQlpyN2FOakFMM2twYVRTVmtnUGx0NVpLUkNTQzZwSzljbkFKYURLN0g2VDM4ZlpIL3hoWHg0N0VjN3VuSTdWN3R5ZmpDU082b2pKZXloeGIxMTVneGZEcm1yR0hUMTR2QVdQVnF5NXRrc3k1bGNrYW91eWFDZlZtNmIzMnM2enJSZHVmWmN2WHhYMnBNUWdIYlNCVjZwMk5YYVFXR2NzdFZzVWphNCtIWFhzeW9MK0lWbjJxZTFvTzJ5Tnlmc0N2SXhYVlRudG5BZmFNa3E2NTI2UjNUamZBLzV6ZEI2eExwWWUvUm5od3ltTWJNTWp6U29la0Y5NkQrYzVTME00MmFnU0JDSWdmU2hKaHZPQTZkam1jS1pRSmNVWlYxNFVROS9hbXJrQkk4cUtQQVBjcWxnRmt1ZWI2TlZSbjQ0WUhRWnM1azAyblVESGdiWjVqUmhWbjh5MnBEZGU2THJESi9XSlcvYUxQUHNjck5iTEVUYWQxMDNpNk52RmhZNEt1UzgwbU54SnFOdmoxdEVLeUdta2JDY3VQY202c09PcjVHeXVNQndMZHZnbVE5UnhGS3FnVUphQmpLek5Uc05pOTUyWUpaKzRQZG1qWFB5eENJckpnbnk1ankybU05b01IRlQvMGdYcGhaUEdBWXNEcElQeHFpRktmVVRRWWc5S243dDhyNEw1Y3Z0b01YSFUwNnYrSjVCZU4ySWl1SjNoYlM5K1RDWmFTZFNJajR5OFF3TTFCYk84MFpvYnQ4RHR2RWpyRWlzN0FOZ2lxQkVyWDM5ZGdNR1VKT1JwN2N4dGpKMHRnWWJKMFZzR1hFMi94UUdrM1E1S0tZNVVNajRNVmNycjJqc0MxN0h5RURXck85VDMwTkR3bGcxSUNidW1hK1hzOW5heDR2OTdsTzd4bW0xWDMyTjdxS1NmVW9CUW9Cc1phMFAwU3o4dzgvRC8rU1U4cTM4d204NGNUUFd2MkRjNjluWHpyTUFVTHpuVkdrSk9aTWU1cUVNRmIzSHRlMW1VUlhOSEdLek93a3RIemNNN3QvelpzL3I1M3dyQWk4dlk5MDR4NzVhU0xsM2l5dy9mcjVZLy84elB0SFhjY3lvRHFwQ0s5VHpOUllWTmhpdUhsUy94NjdDVy90cWtMMDZoamtpcHdZOEJEZ1liN1J4RVh2NUNYdHJraTVxUzhaMjh0UkNHT3I0SjJKenliZXIzUVRwcDFueWdRMXdtMFlCQ1lXVVFKY081WFQyekcrdSs0d3FSUVFvL3Axakc1eWJPNHg5dlA5UUV2cWVWODlYNXJFU1RlN3lzQnlYOFRzTURXMW91YUdpb2JmWk1CWlpxa3F0b2hrSUdQYTZHQis3TGxKVnNuQ1hLQXdTNmlsU2RnRlM4bTFrekNubThLRVRBSzAvWEFPdHI1S3FQQThKSk1rcEppM1EwTVRIZFljRW9hWENkK3ZiUDVnOG9GakZvcXJKSXJIaXQvaXFkVng1R2hzQ3hlVnZkR1YwQllHVVFMcTNhWk9UYWxWbm93MndQOFpSeXVHZUJmWGRaYjFtdEUxMEp0U0MyY2hSZnlBZVR5T1ZnS3JuK0ZSYVp6SEE1ajhIcmE3dGJYZjk2dlhyY3pUZy9DNlhBczNiclVqVExyQWtmeXJuanlCSjlCQU5Ec3pRUVQxblNOWEdVSk5TZzZZaE9zTkNIUkFTbFdOZ2RqOENJY1hwWmJQRFNtcFM1MTJHeDVIMWpIZThaNlZ3YzZEcHRRSFJEaUFyWEZnUEY1aURjNlBxdVBqWnVWcWFuVVpWWlczdmZJZjdNSW9FMUJ3NTBMN3Q5dlhDNngzd1pDMnZZOGU0bGovNE5RUWZRVFpVZW9KS0dZZlNmaWVJZjJEQkQ5c09vQUhDUlBxZjNGK3FUb0hTSThSMG80VFhHQnd2aDRueHc5NEdHdkczTncvTFVKeXZaa1cycXRFL1UzY2Z2K3RseWYvRm9qekp1SkJCT1hPRG9GV0paWG85Yzh5dDJpMXIxdDFBNE5xMHNDc1oyRkkxM0VpS092b25nd0hyaW5vQW55eHZTNUJFSXBaZTRsMXZZdlFIUmNoOFh6OGl3d3VHSTJYcW83YXA1VFlkOUZyMDB2NlZpL2swNStSUTQzcWd6YUljbDRjOWtvbTIzWDVUeVJ5dFNhTGNpMmt4Tmk2MUY3NlZoRTYzQ3Z4b3JFRk1nZHJkTHJZVmFVTDBZNjZLVlFDdVZ1UlkxbEt4MWlHQmp6MkRaa2swd3piRTc2WmxBUlpyQmxHQnYwYXBwZ2dhRDVjak5haXNYYVRlV1dFZEtLMXowYkd0cEVaZlJDNE9idDk0ZnBNc3hsZkxXdFRQaHFmNTFPUTZuNGlzb2tlVGtNa3V0UkxjMkgwTGJJbUJWQVVSdll0bHZ2SElJbjBvSDBPbTJxNzA4cVU5WC9qdU9GODZhbGlZdHNUV0ZNR3ZZVFQrdXpCa0s1VFUxd2oyMG5zRUk3MVozbTZGNUFFd09wVXRBV2RXbFlnU3hTckZBUTkxcW1sSTcyNG1rRXJDRjQwVmxwUGpZMis2eUVhRXZDOCtPV0M1bHB5ZEMyLzkxMHZ3Ym05Z0hWYlRHczFTZkNJRTRsZ20xT2JVUFhwa2xRNUczRXpBaGNUNUtwTDJNTW0vQ0QvZmFxZkQvWmNtRFJRU0UrQmE1MG5mc2Iwd2MyejgrNmNVZnZrMmxMYStERWY1VlJqdFkxWWtVSDZsZ1d5RXNiSnFvdDFKWXBBckIyY3U4czhBbzduZ3BXYTBnTytqT3FzNXZmQk1JRUR3OERCcmwwV0FDRnVtcXJzT1lSQU9KczlRSCtTR29ZZnRSTzRQNGdpMzNFc2dMNUhYY3k3ekhBTjZYak1OSG1jNTB1QTV0cCsxM1V4Q0ptQlVBZUdiaUtpdEZXZWdjMWsybEI0M2ZHOEpxSEloSHhXUWc4U2dwR0k3R2NnR0s3eEVhd1BrazRJVzRhUnhITjNkWGwvRXlNUzZaMTNGOFJMaGJ6Kzg0Q25GTGlkY3prMjlNMGkxcWVLb09xVkp3N0VYdWtsSG1iV2UxdDhaYWFPcFdSd2pMenBNbjhleGpqU1krUXJsMmtFNG9UMk9mZDFMaFZWQStUcU80WUlXUUpEN1RuaEttbStwTXVLSzY3UldZaE4zdFFIMUFYemVhcUVPWWlaak9VTDE3eE5HZlZDaldMQStCUVBjaHJGaGlHOElPbWNPTHAwclNkcU94b2tGL2RwTXJ1NldSSTdvRFl6ZlZ2TXhWUGJyS3Vzd2oreWthVkY3bkpvUlVoM1Zia3ArRHpLZjZFZHJDNjNMVW16R0EzcWhCQkdtaXJsOXZ2K0YwVEdheHhjUEFDcUt6dzVqZ01qVkN6bHVBRm5rbHRRNUNkTnAzR2V0REJnQUZRbHViQVFKc0psRzJOKzUwcUJlS2lhdU96eVdYb3dzRGsyVDhuUEd4ZUlHaTVOVVBhQ1dPSFVIalR0aWVMS0dsaFkwSWlNV0dnT2hETVFzRDA4Z25VWUdtUTlSVE50U1Qrb2hNZHlRdGNSWVZ2Rms4RkNoUERUWHdzWXo0TkRsOUhiOVluSmtJOHk0TXF5SFJ3eHdpVnpuMDRRQXhNSmpsZ0t2MkRrTjdzbTIvb3laNEJjTFJwcURpNE5yZVd2eSt1N3Z3OFZPU2lJOU9rbkNnOW9lZFZER2Y1SFdYYUJWckdlaXJpdnh6QStDdThrWXVaU29RSDJubmczQTZHTmJTL3hrR3hQbzF6K05KLzd6UFFBT1pxVE1saWF1Zjh0N2d0UEJTOSs3MlMyK1hMV29KaHlWMkdNaERBRmFSWlJsVkZpS2lVZ1NLbW5QL3hpSmFlZjZiUklzQnVtNnhyRlNMK1UyV3VwUy9aQmZoVko4aFpGNjFwbnE4N3ZhUVVEVWZ3NjliS1djNytOaUJ0ZG9ZTThsQTd3TWZOaVdVeFFFU083TlVYVmpyVkMxdDBVNmNKOHFaU0lVa3E1dUQySmFJYXgyVkVET2FtWnhjWmNBcmNKZE5XVE4zUmViYUo4YWxzblQrdnBwa00xTlBWMEZvaHlBZkhXQ1R3K3RPenFpQmdrdyszbFhCVVpTMkkwOUxuVkdMN2JTZGo2NnRsWk1NajMrQ3plQVdxZ1Q0U240UkdmTEtYd3RsMEpuTUw5ZEVRTjlQZGpKbDU4cmppZUt5SEk1c0p5TmlTTUYxY091WUJZVTNJUmg2SjBiaDVrY0FjWFF3YmdtYzJ5T2ovLzlOeXBuVEFKd1BhRFQyUE9PREVJbEJ6MTNyZUlDTnRVYjlZYTA0K2kzdlgvM3ZmaVVtRW1wbDcvd1lwY3RRUkRRaUFhb2o4QkczR2YwVU9ENmxTWWZLd0oySDJ1UkVtYmVOR2IwVk05TW9iM0c0VFJNWGtjZGV4VUNZY0lHeDlyRHZpVFY1aklZRHdEZEF5VnpwdTM5QmFaTlluOFNDNmpBTGcvckpXLzBiRmJRV2NiK1E1aXZxaTdVWG53VDlyd25LamZNZzEyWGEwb05TTi80a1ZZQ1NFK25rMStvck5nY3VBNkxXWGdUZmZnMmdsZ1R0aUp4VTIzM0NWQTQvNEx6TEIyVmJ0c2twNndubzBYOC9KOE9pTGtON2xCcjFEaGxvdVR6Vk1JT05mOGM1UFM2d3Nqb2o0Ukc2Y01QWUw2NW54TVBEaDlKK3FSWGMycXVOT3lZYjk4UW0yUU1iK2FSMCt6Sys2dGtERHgxMkt3MTdXQk4xaGNkUzh5NmlvUmc2TDNxZ3NMVyt3d2dia3ZNNlkzRGlNcDN1WWRvQkl4ell1R3F5UkYwc3R4NExDYzhBQmwzdTRKTkNjTUlPcHZUSDhRUTdyTkpaR0Job3pSRlNWeGEzSnNtbnNsUzYvd1ZJOW1kdUxBQVN3SittQ0Z1Z0JUSmJKNmV6d0djUFplZ0RIR3RBVjlYQml1SjJjYXZNNGp6SVc4Sk44UjFGRkQzMS9HcllidTcydG1ETzR6dTNHbkZlUTYrc1RUY1pSN1AxT1FJa2I2NlN6QUJoUEtsWjBHbE53VDRYU2NUTkZyMVhkQVNpSXJTWHI5dzlkUGJtUjNvVGpXKzdUdHV3RWhjTkdyL1lubkhuQVdIMXZ0eWRqYXRXYlpRc0RJeFgxRDJrVW0yL3Vxc2xUbzlOcncxVVZKeDZoWURBN1F6VWQrTWUwRUsycTFWV1hOUXQrQUxhM3VoNnFJMjJoWVNVdXpNb3Y3MFVvS3Y4RjZPcUZBa3R3OTdIMWp6MUxUVUxqWWZWaklIbzkvQjZFdEhwNE9JNStSc3BvSEtPM3pVdzdoMUJpQURONGQ2MDJhTDlrRzk2Tkgvbmoybm9Wc1c1L092NE4zUDhERWo5ZXhTaWFiOW5Zbi8vcXMyRXNzMUIvMFBnWkF6M2tGNytDY1NmOENkUkxEVmF6Y1lSeHg2RTlLTFpPRkpjTkRDNFZXUGdxWDlhaEkwK2lyNUxBNUh4ZEh2eFZvNlJaNzBlcTRsNjZkVFRuNThqZE5CYW8rUjBvRjhPZjhhL1FnZUlvbHRXMHRCeXZZSnRzNkdxbnJtdXAwSHNuaVhIbDVnNDhucHBtVW9CR3VmTVZncGRFeDhadFRkaUh5SnNzNCtEVHdNc3Ardkt5ZGRpdEJ6ZFZjbkwxRUJIMUVZZC9XVlVYaDk1OVMybFpJeCtNb2pOamNoTmxHdVJlaWVLNUtaNU9rOHVJenFsRXVqK0I0OE12V1J0SzdRYVZ6bCttejhPaEtuMjhWRVVNOWxFR3hZWFhZWXRYbTZIVlZVTXZzZWhsYStHOSs1V3RzcjE0a0tMWVY2bEdudVI5YjMxR0xYc2dDTyt3Sm9mNmFhY2RXaUtKL2JpTU9sSlBhMytkWU9MNVE0MXA2WFdQVnJwR3JMOTVKNDlUZk9rM3FvajFQcUlHN3lXcUtuN3RFYTNwdVNMdXVLS2diZ3ZOaEJpOWp6WG1URFdFR0d5aU04RHZwazlGZXN2ckNrMWRTeU5WL1VjanIxdEZtZngrQzZjSVlNYnVEd20xcFZqS2oyM1FBVFlSRDBvMHhtVThnb0JneGgyc1lJN0ZnSzZ0amNDSGRyN284SitMTzBLSkpBbU9xZVRPeEpCRmtrUFQ3U0JMSnB2UnhxV3I2bkhPWWxOczJzM0czeVBMWTVjRmZwS2QzdG9wUlgxeVJkOTR2YVFuejltWnYyaDJja3B2UTlUUlNHOWdXYXR1YlJJclNXY2pFUWI0RWJBempPSXV0blZ1eFdiZ0hOYlZBY1E5SmppcHhJSnJzVG0za1NQVnFXQjZwWkF6VG9FN29tU2hwallPMjRJeEtDWVhTaFMwdHg5SlZMT25xK0NkN21GdzZrd2RzSlF5c0JYTW9LVUM5SjBVaVUvMmpPV05FSmxEWk1IYndBbmQwU2F6M2FqbTZCMUhKSUVqbHVNNWtvci82OG44cExVaHVaeDY4NjQ3dFIvR0VsdVFaTitsQXIvZXBCV3VDSFM2WE9KZytUdVFQcUNPeDcvN2g1TVovdjdDd2hQOVNPQnZoTWwraEd4QlpCMEZRcUZuVUgwVGdhK3hoaWduOXV4bm1OZXlNV1VvanA2QmpGWkVrUnJFS1lVMFM2OFhBODI0c2llcVNlVExTVXE5VkVoRGttMVZqaS9uNkJrcThHUTh1cmYrY005RnJBRzE0TjdEak52eUF1b00rQzhsZktMTUcxUkpwNkU5YUhvRHJNL1VCOTZlbEF2OGFDNCsxdE9IdWFYQSsvL08rQitrRGxTS1REdlhBeStpd3F2TWpLWWFaTmh6N2cxNzJBdmxsNit4dnBpemVOWlhEaWNabXFRcU5aMjVwMlN5TklUWVRzUU9QZTM4N2c3SXVWbVpLblBlN0xLNXo1UGR2NGcvMUFPaWxTQUZkYit4WDRtWU9uUFYvZEJ3UWZnRHJZOS9ROXdtcC9JWDRFQnF0SDM1Z0FHdjBza0lURERoOFFmNWUwL00rdDB6NmEvOVpOSlR6ejhod0Vtd2ZRc3djL2J3c2gra21RSjN3Y0FVa1MxaHQ2TXlhM0ZkUmI3VjJDQlpVL3Q5UUNWbEgyTnJsa1Z2L2EzZmkxYmkwdElmeG40ZGZoeHRYN3RpaHQ4RkpMY3hxU1J3aGRaazUvLzFjcGNKRXY5OXZOUEx2OWo0ZmUvL2wrbVV2QUhiOTl2SEg2TjM3akVuejM0Zy9zQi8xMHJTWDJFYWI3eUNPbHVXWktlU0dYNjBxOU9jejlZN1V4L0wvZnVoRWR1alVTU29ERVBXSzJrb2szM1AvMGhCeXNQOWRONWRYSk43ZDJaK1B0SElxbDRXNDZJemxLdUM3SEllYzI3dkpNeDZRcTNHZWdxcWQ1Rzd6TGJtL3lOUTdkMWl3bVh2aERaOUZSb3RsU0ZRMFY4VkVQWTExUWYvWTRYa21DWlNjYys3Y2lzTE5mT3ozc3BRNkNvSDU0cFdwcHl5cFZyNnloQWpkTTEweCtsY1VMWHU1bFAyYWNnWlp0eUg3WllXVldQMmRmRmJWZ08rNStDUjVDM0s5cTExSDBzenRreW5LNXFqSkp2RW9LZXRBanR5cDFCUzFIR29YS3Y5UmJmUGtwS3plemxXRUg5OUpuRk5Ib3UyMktFMmRjamNibXcyUWx4MDJSR01hNVpHZlZLUlhjRDVHYngzZXNvY2FCNU9ZNGZHdzExd2tEb1dqdmw2cVFYVWhGVnh5R0syTlVqSXJyWE05dkJ3ZkJQKzFNZ1JYRlBNbHZmcUloUUcrb1RwMlVtbHg4Um15dVNWWWdpM2hCWXZuR29ja3FDalF5cVUvbFVTRi9hckt2YkxyUlM5eUtOcENMYWR3bGh2Mk9ZcXUvU2c0VGt2V3VPSnBJTEFUbzNJVFpCSGhRUE15aEppUzJFc0dHVHZVQWd6UE93c0xDV1hsN2dGZDRNRWtKczJkOTM2RWF1Rk5FdlJCRStsaE54SGhmcERJNFVQRFFhTklLYTh5WW5xOWc1Z2owS0NZdHdCcFN0OG1hUFJSOGljQUR0MGVZYW9BVVJleDAzdmIyMFVkcmk5TmJuclpVek9vRUg1TnpEQnBjZXk5YkxkZ1IxTjVZd1B0aVdtK1BaeVZwNmFBaG9QYjFtTEQyeENIVVIxQjhMQWxGTzBGQXk5S3ROY2g1YWhuMDVDRjBDTU9MK2Z4ckZFVWFRcDR1ZnBmOTZSYzBxYzA0bXpidlBBU3IxMzdUb1ZtZ3dlVlJYZTZlYU9uV2F6UVpKNGIzRlpldEFLK0ZTa0QzOURTWHhiZi9ONHlac0FpUGhIWU9NY1BpUmQwd251V3dMcXAyZU55RFJMNUFLZ0d1eFBGbi9XcHlCSVZ2Ym0xV2lodWo5cWFGRVAwRGN5V1ZSQnp6U3NRY1lsL2hrT1dZdEtBdmEzdXlzclFGLzZpeW1jZmZQczBuN1pMWXluZ051d242WTJzaHNmM09NcXNVc25kRHYwZ0pMOEpPOUUvMU1xNjZtUlJDdFhDZjhmQVBWMlFkczZoL1ZBR3ppRFdHck1wTGRmem12Q2xMOUlXc05vY0VxL3VFRUFBTjgxSkxNWUV2b2ZmdEhQZHpueXF2bVZmbHkxUUlvdVlLOTFtQ1NNUjNvLzM5N2lSQW5qTmk4NGk3ME9rcmZJLzVrRlkvV1FPRWlxeVhDMUdPV21BL2s2OU90TDhXTTJTOEk0MEg5NU1DWVRabXROSTl6OVFGT29jOGdRbEVySmpNUVdBR2RNbG04RHM3U1hXV1lra2lPTmI4T0tKSU8wclZYQkNWd3lrNDZwa1ZSWHVheVB4YXRCdTVxK2V5OHAwak5XUHl5alYyTWk2UHVoaUhySjRtdy9XR1NmSjZxdjhRWTR5TytEaEdaSDJSNEUwNmZKR1FuaTN1TFE1MVF4RVZjeEVXczRqeStJNmx5N25KWHdnV3VqVDVGVWlSRlVpUXFPWmt3YkcveS9ScmJlQk5DaWY1UUhtQ1FOS1E5WFhwTnlqOWZ0TU92cEZzSTA2MlJqVGREMllhRjNQVTJxWXltbzBQUTJRbzUxRkQ5Ymw3VExUbDF0VjNvczlmVllrbktGREJjSThsbUVTZGVtamNnWGlvYW5xTWFNMUhiN3cvbTNVd2lGL1hUcjFSVGVJclpXdis4bkhmOWs4dUkvb21ocExxMjlFUlNFWFhhOGsyUVhJdkhndnNOZUpRNE9RbjhYU3liU1NiclVuckdmSU1wTHF5NjhYVVV1SmVZRTRpNDdYWmpwNGRZNHB1TElNWkg4WS9BcHA4eGJEV2FpcjFFZUZuZFB2ek1FZzhMemRaSGpuNmtPWG1SUFZFOStOekVUS1ByUDhlcFpYZ2pTZW96ZktmdngzY0puVkh3Y3hiRHU5SkFhaEFoYmZsZU9pZHVyMWxoL2wvSll0Q3dFOFY5L0l2K1ovaEVGazlOVmYvNVdkeXpqcWQ3emRRTmVrQU9BQUFBQUFCQVRaaFlFRUlJSVlRUVFpZ1hFcTNMVklkVHNVaDhIVjd2eGpYYitlbmVjTm12QytmR0dHT01NY1lZNDl5RUVFSUlJWVFRa29kSUdqVHFsTGRQQjFJKzhhSEJUR0NycXdXaXBCYUxDbDBCZFY5Z3lyREtvS2FrK3Z3QXA0Ym5CZ284bFVCT2lhKzJIcnRBS1RPMTRpWGRQVjZTNURvL2xRc05ZcFlCSDRaLzZERHQ0cW51WjByVXJ4MERPc2F6dWwxc0RNclpqV3hzWjVQM0syL2JhU0Nibk1YaDI3OEZ1T2MzdHZzdUhTNlhIcFNlVHJVQm9EbWEydUJCUUtobjI3aUxDdFZKSjI4UkZrSWdqcndVSkhZRGV2WTZqbUVnK1Q0OHZNTDNraXlRL013K0l2THZSc2g4UkVSZ3YzYTBGdkFiaHpYVTJrWXBPY0I4OERpbTg5czI2WEZ4bi9Ud3o5TEhtZ1J4em81QXpzTFQ3WlNOc2RHcmVCT1E1WDRuRzZiYjlaSUhaL3F5YlJFZUFublN4c21kNTg4bWY1N3RxMXp4T0pjRUQrQ3pRdzRGUVA1NW5sczhFNnFCM0hobnhXUVM4Sk1WVnQwMFd5ajBYVnVmMG5FMDZmelduQTlJUkZmUjJ5OTQ0WVhCUGo0MG04ZEh3RzZBT2VhT1RYNnhFeFRUNDI2QW44OHFiMC9ZSlNhN0JqMzhZcEFmSlNmaWtZdWJ1MTk1Vnp6L29hQk4zSGJ1VXdlUkJUVGZCd0tRZ3d0dGZnUEUvNzBMd0lya2dRU1hyNjBxK1pZcmlMdjJ0ZXZzOW1WNC80OHk2M09vb3RGaDErK2ZZNVdSR2ZqcUFYQ3pEUG4rQXU0Q2h0MHNZd1dIczU4a1IxaittSmdmdHZQT2ovSUhXT2FSNHJDeXc5T3pzODZrZHhwcjdtdDZtUFR6ckgrR3pNQStmakVBNzNUMmhITldVSWc5RG9IY2VYNE9ybjZ3QWlJNzByKzFleWVkMUNzczhZMFg3dnhkV1h1TkpyMDFnZEJ4TXVuUHdmdzVJRDAvK1B6QUQzNHcyTWZmaHZMNE0rQjUwTG4xL0xNbDQvazNmMndkdnZMZ3JZczNOb0ROYU00OG56K2EyOGpMaW8yek4vdVpnTWdoV2UyWklVdEEzOVZzZ2lPVU1BY2NSeGxabm4zbE0wZjdRLzRJZmRyR0MyS0lvY2QrWEdJOURUa0kyVkZMTHNIV3R4Sll3cjIxMVYzMjJZdVNNSWFTbm1ZODFVQ2FpWVI2bGdoT01idG1acGxDNUlQcDlQbldCRUJYdERMdlhsTUtmNmxYYjNTbFAyZnN6WHl2SUNURlBlek0yK0NjblluVExRSHJJUVo4RGlXR2d1TG1nRXFrV2JYU0ZLRlBINFZYU3B0ODk5NExGMXo1WVpzUFN2cS9aTGJwcUJUVFZYMGFOK1Z6d1BFQW82L0JaRDRsRHEweHJXSkVxdmhKMUFNcHQ3dGw1elVrUEx6OTZnUVdTdDRFQWJuKzFOS25KejA2ZFlLM3JqdFp3Y2RnL2R3VStzd2h5aVFKWTlZYUdyREpxdmxmYjVZRUYzK3RXZVRWN016TGZzczRLaitoVytZQTdvYjdveGhGeGcxT3FMT1duV3hnaTNoY1lKdWw2eVBWZEhiQVR6Y1NYSFl5bmV5OHQrTFZtdG41NmF4TzhFUjV4R01kYlM3K1lCNGRsYXRlK1BjR2tZODNLYXVaeVZxenFGY251OFgwcHNQVFl0Z3psdERSNEJUWW1CK0hqWUYxdDYwQm9lelFTWmtOT0FUQ1cxY3JETUkxRUJVWmpWK2dDcmZKT2FlcGh5bmZjZC94R1ozbkF1bzV4eFM5cDFkb3E5clQybS9DOEw3UEwzcTZNTTB0Ti9EMXllYnl6SzF6bi9FOXM4QkhpRFJpcTQ5ODdRaHJibmwyQmYyQWRPNWQ0Uy9KL01YRXE1YzExd0I5ZDVpVk80S1o2ZWlUOVlvUTl0U3ZCcmgzK3dIV254VjdNcXFiYnVPRDlEaVZma3l0WHRoNytZUmdTZEtteG05RXNRemJ1cUE5dnF1SHJ0d09Xakdld2NYU2tzSERWVGxSKzVhREpwZXV4bjZSSUNBaE9ZTlJZVnBnbmw1QjNsQmI2blY3NGpXWVVrL0tNb3E0Q2d6V3AyeXBwaE1JczBrZDVadjBiQ2ZBQnFSM21FWnliOXYrZGQrTHA4R1U1VjdLRW9YbHJQZkV4REEzM1A5cThmRUdIMElzdk9FZ1NqbzlxVDk5UC95QVRIbnEvWlJlTUQwOHBzdWprbjkyQU4vVFJkRGZveng4dmJrQXhsTkxqbmtSNUM4NFRuVThUZVZ3MmJ2bXNaeFZYT1A1RWNEVWg1dUpQdFY5a3pCQ2RqbE1nckZ2YW9ZaDdoNk94RDVOU3RLRlhxUDI0aGk2dWVQazRhaU5kZjVCMkllbG1UOHU0THVWWWdpNXZ4Z2MzcDJ1NHJpSnVkZjh5ZmFaeW1rZUtqbVpsTUhUcEh6Q2dBZWEzSTh1RWp1WEpka3JHVnE5K2Z1VC9veDg5Z2NiM3BmeFFPdmhwWUIvU3psZ0t5U0JQT2x5UCtYY1UxSG40T05hZXpRbGRqR0RnVWV4UTFnZmZIaGQ1NEh3MXlvWkl0MU0rQlFrOWFRNlJmN3k1N253VXN6L0V4ODM4MWl2ZlV3eTgzcktrT05pZHhEKzMybUpMSVRNUW1rb1UrdWNQLy9uMVBWbFNrc1YxZXl4aDhmZlJIS0UzdUo4Z0xkWUhPSVBNa3RKNnVNYlBKVGtDS0tEZGZMR3hRZEVSSWJQYVdvbUVXeU5aSUFRQ0xJOVdDODdCSEMzcGh0RzBMS2VZVGRBRXduUzIrVXFBekJTTVRBYTRCWUR1bWxnNUUyTHFXNTc0dlY1VDZDWmdFZU01K1IxTXV6Nk5qaGUzMkZHaVV2U21jd01CdnZHSVF1WWt2aWp3QkU4ZWd5QStNTC9ZZkZZd1RwNHZCRk9QRGVBaG9Md3FhWnZ3YThkQytkdlVaUkd0SDNFZWovd1lSRWNJcDl1UmdpNkptQTlQSGZIc1MxL080WDZjRjg1VEJOVFJYTGFqNDRrb0I4aUs0Rk1JV0xuTGE0L0VzaDYrMVZXdVZqdEU4NFQrYnFNUFo0UFg5Z1dDNFJkaVM0c0xqWm14blJsWlAxMWdEakE5aWxaSzFXVE5tYm9HcDhqREhBSS9OYm1VaTFuSmYwKzQzZ1pQQkI0TnpNNFBXUitNbDh4VjNURlhKNldhZzRWN1N0Wk9SUi9IL2NFL1NhUG9FcW1rNTlmWTVxSVQzcDBOY1lqODRraWd2R2dxM2xUcnlVZC9raVpOS1JPdDFsb0tWeVBQQnFGNmpFTWRScG9qeEorZGNOVk4zU2k1c3dsbWIwUmZmQ25wQnlQcVhOT1J5MzRyNSswYjVJYlhOZWZpR0owWmFoVXpxdWFlSkwreGZaa1pLbng1RFhzbnA3SDhwdGN0ZlM2NzFNUFBoeXVTMVlMSzBhbEd5aXRuYXBJL0Vaa3BCL1dTaFVMZ3ROckdvNWt0SnNBbkk3Z0xEMUdxUjdheGtLeVFOYmoxdCtTZVlTcDZ3ZlJrdkxKT0pRZFQ1dnNGNG1WOGtndDNvRU1ScmFVU1MyYUpzeHRHVExHR1pabDNQb1k2OXFIYVpvT1RDbXkwdGg3TFQyUFZOamR6KzVubUJwcVI1Q293bW5vMFliMjBacU5hcTZiR2hIaFBoSnRYTDhXZ2VTSTlMLzZTNk50SldXbEVYRTdWM2ZJZ1VnVGU2U0szcFJGMStNeFJ1TDltOHhCL3B2azNVYWZOeE5DT0dUNlhNSGdrQTRaUXNjc2g3OFBFZ2lHTk9mVTJ4R1I4STN5MkMweHpZRkZKeUFERXhEdXF6dGdOSktMMG9UQTFjVjZ4TFc5d3BFM01URWxnSjZSbHphQ1BZcVFFb0M1WlZ5cy84RVJYbGxWUENTL0JrSnRERUJmY0pNQkFBQUFBQUFBQUFDQUVjQVZGUE5YWEdVRjdNT2xTWkgxSnFMeTYzVEF0WUQ5WlZScDZ2Z3lIeGFuZEtyUGN2TFppSThhZWpRczgyL1h6eENQMC9MMEFZL1JneTl2ZmpsbzJTZDJmeUlUVkFITkZrNXdrZTk4emZKVzJoOGlFS1FRWEZiUHJ6TjNpQmJqK1NlT0xyL1FldUlMbTE4UW82dUF2NzdlMUFmenR4TndpRVd2OVhnQlhiY1N0ZTdiQlFhZ2VZQjFNK2o3WFpPQ2J1dm1oTE50QnZYVFpuQ1ZIejZvdzg3QmcvalovTjFXY2tla0hFVjdnbXVWV1NDRk9adUhIWXlPVHNDOVVGMnJKQnpuS3FxTitzU1V5a0xxcTF5eXVaYk45cGI2RjhFZ1U1blBhREk2RFNhUjRSczQrekpQeVRlaStGYk42YW5DVHZTL0RKc0RuTVlGakdoQm4rODhXVlJReit1Z2FEYndaV3lzbFNvR3lWRGJsd0F5T0RraHlRQXFpT1pkNlNwRmptWDNRcXlZNm1xVm14STJkdzBkd3dDbE5DR2RYdDdpak5zME53NC9UcUs3OXpqazIyclJsY1hFMFZySytjUGNxUkZIakN2V1o0bmNWSzlNQjF4S1dGakRodHV6U3JNZWJiRDZHODVFU1VPQWxXVXByQjNpUlVvMEkwQ0tiNDJDVmtuVjRuTzl5a29sSFlGVHRNK21FdUFKZzE5VzBBRUtweGhDcnZWU1h2dHF4UjdKbk4xT0RvOXAyQkFmbnQ0b1pkR0hRcE1hMEpWOXNHTUd3Y0ZaeGk4akpqYmRVU1d3VmhRN2dJQlpxbmJRYTBEdWROUUNtREZkbUhFR2dmRnFHeG9sR042akRqRlE4Zy9rRlZuN3dzTUgrcHJxcmhKbGs3OGdMY29RTHZCYmtGUlRsU1lEWFlBQ3ovalFaVU1YWG5aSzBDK1VoWHg3RlBuL1RPc1VWQkVneEFHTUJNMXJTdUNybGVBNDFVMjZMTFdObkdaTUJqaVdSTXNWWWZsZWlCRUJBUUVCQVFFQkFRRUJBUUVCSWMzN0pjWFMveGtzRkdzVUJVb0lTZ3hLTnNvb2xKa29DMURXbyt4QStSL2xFdXJ1djdXSEtCOVFTajFLVmV4SVNkSUJRQkdRQmF0V0RiUmkxWlgyNFlXbmtJNlkvcE11SHRZamw2Zi9HaTBmRFI3SjFVK0QzSktVMngyNXZObzhqSmFQVG85K3R0UUwrZDZZNWxmeEVNZkcwVXF1ZlhKY21GSGhLTzc3NGg2TFNIWCs2ZW1lWEd0RkdyYnYrK0xZY3FodFFxMnUzODJBc1VLUWZQejA2TFN4bCtnRE8xVWMrZ1hCR1ltc2w0NWNlTm1yemJkV09mZlEzMGpPM0xKTXBzbTZBeEpUM3pJTVdaaXZqd1JZdWovbUJJejV6YUhnS242WVBqMXhGYWdVbE9vcWhqYXVMTkpraUpxK2pZOEJkNXZJajQ4UkFsY1hiQTRGUzNHQ21LZ0hwZlFNbXVISk9BbHBteTNyUXgvSjJWbW01OU1NendUdkIyMFJnYzhxbTczZ1RsWi9jU0NxY2pUdnlwWUNsb1NreUtjc3MrUkxUaEF4eE95czU4MEhGUFZPOWwzMlhwbCtYZHg4WVlJbS8wUUdkc09YTU5oUHN0c05ib0dTbi9KMmV3bmtlMEVUUUNrQmsrWC9LdzJhdmVub0lKanRkKzVUZmZka3llQUN2WnU2R0pmeDdNYncxRHFtb0krRjBwdHZJclhjVFdDajU1TmxPVDFHWnk2RHI0OUcyVVdEZmVNamFpSFhyaEsvcnFVZnl2dk82M2NkTWh6U0pSUmxraDd3cmdiM0xndVJYT1BVLzBlQ0dlNmZob1J3eThmNXN1c3BEMzhGUFBwamxjNWJ4VHdVS0hlRXF2VEdRUTRQaDZRVHNuejhVaHEwQW1ENmtwditNbkNTQ3h1NzhBZ1MvQkNuTDdIUUkwZlJFOXFQZzhrUXZYaVNUR1hIZzR6dkI1RU04UHRmUWhKeXpTMEptc3p1RWFOL0FIV05TL0RaZldNSGZMYXdJRC90WnRDcW84WENJaWt6SVB3aml1VUR2WjQ3ZG1TTm1icWg4dVBsSUlaNHNKVDdFYU1ONlJLT1ZQUkNWYWQzSWt6SHgxbVpJYXdjUUJURUUwQjA1bGxDd29oOHMyWTM5K3B3NlZTZVFFMkg1dWJaMFh6OUNYbDFxZWJtcXpMeW94dTM0cGE5K1I0TTlNMkFBREVVQnM3eVlTWG56Sm1lSi8rMDdqYlZtM0MydGQ3a0NxdXZtS0pkam53Ti8zRUdjQTFoTzE3OGpQNG1DZE9tSldBd3FBLzNIZHZtdjFQbUNFTTJPek5LQVJIUGdYN1pZd083c1NKOGNZeEVtSW8rRXFpam90MTY5eGtwVVJZSFBkTGFhU29xN21ZTHJjeWhaWC9tais2MG1XY2J2WFZ0OUVFK0MxM0NFenlBYThoZ2dsczVRckZsNWcwVWxxeXhaVGJSUmM0RmVXaGwwcDhNL2pZQVYvZy9tMzhHb0xJL0sxdVVRS1FhZnlSV2hzWEdHU1hPRnlsZWhXYkh0aVBucFBpRU1JL1VRVWZFcHlMYi92SlNoemVJQnFUQjZMU2ZTb0ZSeHMxYmkrRkwzREFIM2R6S3hJWVpkQUdsVFgyWEI3MmJGaU1scTA1amRTZnZKWTNiQXBiNkhiaExOQzZud2RjSGF4MGtkNEZyV0tDVVg5aHBraGxReFVGb0VPa2x4NzIwMmJZU0VhSkVBL1pEVDV6dUg2RThGNTJIcjhobEdPTVpJMnM2YVV0RUZSQTEwbXN0cTV5T2NJTEsrcWdpL0NqQk5OV0RhSDU2bklsRDJ3aEZ3dXF2VmNOU0p3OGFiYW80WmFqVnE1MGExZUE2WW1ZNFhYeTRaMWVXWU5KUlc5SEp2bGVYMGVrNDBTb0ZGMG5oTHd5ekJBNjJ0U3QrakZERVJTbm53cm9pdkFscTJPRXBFenZsYW1xQlZLZDQ0NzdyRTBVSisvSTdvbnpQdi92YlVpU0N6T3RLeEFaMlhwS0xNcTJQRng4YS9UTk51MkFGWjdKVlpnVzdOKy9pVzRkK3I2Y214L1U3Z09vU3phZFNuVVBqWWtJZllZR2pPdnZ6MEt6aFJhaFFCN29kQmtDS2dqelVjK1NSd1ZDSWNkM0N5T1B4Y3VtYWEvSmhDZmhpMXNURVA0dFhnRUdsbTlmNWJWdERkVXBUTGhJTUZOZzlQVFd6REExU1ppdC9uK0dweHRDZWJRYks4SjZ2YTVkWEhSOUozenM4c3NXRHlIS1BpRXFrbkpsa0NZc3FrY1NoZVJzQ2hYTkwybTdmMXpiYVhsb0k3bW9ZQ0crMnJUVTRxZ0ZiVlJhTm9ha1N6bW5TK0FTV2F1YU54TGpmU2Y2YWhVVXRoU1FoZVZ4YXlIWGdOK2hVaCtRUVdkYnV5WHFvT01hUUdpdG9tMjVEaTdSZDVqUW95UFJSL0g2RFNOU0ZqL0FMN3gzZjdMeTdZUXNoTTFHNlZqN2c3Z3pWcVRTa2FQNzh4ZTNmUUdMaFdRRTh0ekhPcWhyT3l1TFJMUlg3amwxK2F6clYwWkZvcnNiY2txb2w0ZVJZazAraVBUS1liWHBVMUFkQmxIcU43MDBXaFJNM1k0cUZTVXV2dHhaYmJlV1RVZFF6eExrV2l1bUtPd1JGbTlZUnhwam9TNjVneWNVS1BLc2xSWFZwU08vZHZzWTI5QU94WHE0RlRSM1llNnhNQVVIMHZWM2FNSGpCSmh3a0JaZjdBOFBKb2JqbzltODFBRGdzQVNzWEIxd1ZnZHZvb2hVRHN6NTRQS3MxaUxHUXVHaDViUVp4eFBuaGxhZXN2VnJGblV0OGxJSDY5ektpZlF4VDczaHk0VzZZVmF0YTFZTlhEZVhScTRzY3RJWllCWTJScXBMd1BQd0M4WVV2cVpFc1F5dXhDTldqNGFQTXRtMDVDTjY3YXA0YUNVSTQ0bldhc1hjMDdVS3ZjNGNoZXZVcm50STJST0drcWtIQnRUUVVXaE5henp1ZERPVTRCcjlaRU00WVQwRythWlpBTUJyeUtGVElPWVlwVE9jQldqQUtoOGM4elVDT2IrRTFEZ3FMQ0JLdk1wZGQwUklSaHRnVEQ2R296MWNQZHlMaUhNWDVGWllMMHdJNk5qWGh0cEVGSkVuNGJueGhpRHpLYnk1Lzh3UCttRDhXcHhXMi9UMG1IRnE1cHBtMnNjamd3dSs1VHhKKzhwMi8wWjhGU1NSZDVieVNKUVZlakgweW51L21oNWhyYk5YVVdtbWFZOWVSVjdwMU5YMUNNQ0ZScVE3UDFiLzloVmJmZUlCRVFHOVQrVVlrYzhiWmY2Qmc5NW9mWXZvY0swT2FkZEtNaHZRaDRnRnJwUEEwR3JwckpwaDkwQTR6WlliRlRLZ1loaXlLVkp0RGNZMGcrSnZOWlNXdTRXeGdsdFUyQWJaTlZPSGJkcWZmNDhlSnprM3RRUjdYQklxamthV1MwQnMwMnl6VFFTaHBqbVlFL3RXTzBITHJtZWo0ZkFySVZKZFNxZThzeUJhazg5OXQ3NVQ0dUMyc2hsWmdGbUZvVUowWng0RnNFSmMrekRQRlF2eHBUVWZadXR4YUhta0lCeDVvQTZyZTJKdURhOWlsYm05TFEyWEJpRUNvVWg4RVZ1UVN3MzVLeTBkOEFoOUZra3A3YTBSQXV3elVad3FaeUpEaGRxVTNqVFZ0Ynh4SFVibEN2YUVCM1FUUGt1VDU2ekJ3Q1hIckc2TzBwaWtJU3ByaE9maGFjbVg4NmZ3MllzZWxtZzJEUUVDc3ZPZFNMb1BJOXZvWHlIYlJkakJodXh4T05KWDBQQmpVY0hLSUZ6aVM0cHpoK3hqSGFwYmJnanBoajVhQ3RnSmdPMkZ5cWdhblJhbTZ0RnprMFJDL2kzdG50MDBWM0hBc2tRc2tSZGxiVUtYZUw4Uk1NaG03NzZtb0ZNQWNJaDk3a1dwa1pEREtsSlNRdXZmY1JZYmFVZEZLQUlJcG9GV0lEc0tZam4vZ3NycWFXZzNoYmVMcmZWUDVEa1l3T3dzaDNENElZZmZUekZHK0lPK3RIaHZiVFFqcFNLWnVIb1FCbVhIYVZMekJWVWNtOXczb0txR2cySm5xTnkxU3dpVkIranIwMHVNVXEwelE4c1J1dzFBZDBCNWZic3RybzEweGdZSHA0Nkdsc0k0dDVQbkFXOU01dk56a0tlbEhlWFlsYWh4b015Z3JpeXVEM2JjUTZCSFdzVkw0bUtwMG9EQloyZUdTZm5MR21ZbWt6enRxYVZWYjRuQ1lta1AvMUxZK0xKOERXeUsrbjI2QjIvSmp6K1JzN0NkaTNhS2JaUDNjY0s3bm1kYW9sbU42aEZHYjV5WWowWlFGMXB2VE5aTjVta3RDM1AvTFB5bzJadExlNW42ZGthemdjUWZBQmU0azFxY3lWWHJSLy9zbldrSmhEbU05d2RDWnVTeUdjWVBST21ZblZXUGF0d1lrOFVoUVlhTmhjZnQ2YXMrblVhQUtYVmpFY1gxK2VnSEhpWGRNNTdlTWhFUzdxR1kxeU9pdTV3ZzdxK2tkM3B2SFI3S1M2OGQ5bWtlTkhYdHlMSTFQbnBqRzFwd3hsR0Vwd0pvOXRGT05NRXRSbENoUDVWTzNGRU9iMkR3ZjVhZEtPc0ZHTjhXR3pLc2dHb2cyK3pPR0dIdjdHQlFyUEgxSXJsRnhxQ05mcEJYU1drMzkxWktwdml3SDNhYXNYNnJKRVRaNmRQTFRld3JQdElqakVuWWZ5eWluNmRSR3QydHVYakk0Q2VHQXpueVFKMkZvaDg5MGUvazh2TlQyUlpTSmN0VHFRdWlqZWR1L1FITi81cWVabnNUSkttT20wSjJWMVFRM3ZNKzI4WVkzTlY2bTI3Rjd1MjU0TmJyZXIxSHJPKzJvQkdGVitPNm0weUxmeUZvdzJtK1pndk9zdHJBcERvZTMwc2YrZHBtdE00THVLUjRQeEVuSHdzd0J1dlRrcDA3MTM4WDJzd2hjSkRmTnZMRFJRUUJCQTdiRm5Md0hnd21iRzg4bzcwQ2lONTFDcmQxWnkya0lRN3FaZTl6dU1BOUVVWUtBZ0E0VzFLNUdtK0R0ZEhoVnJWRXcrVU1mdGc4MkpyWFVuZU1Lc280dXRmQUxtREh2WEZzU0hZc3R4ZFRtN3hZUG1MVUw5TnZzYTV2ZkJCT25RZVpjQ1dyOWwvdDFvaXJYWEtsQXZZbUVMUjhWbjlTVVd1Y1RLQjhqTjE1MHJGejMxTVlFVGhrMVQ3RllwOUlCcWNCQ0gzdjNYTWNoaElTL0djUVczZ3BSVXo0b0h6cTNFNXJqSENXODJqRDFNRitVY01iQXJwM1J1UUhqVmJYNjV1bFJ1VFprMnlwc3BuNVd1TmJCL3pXNS83VFYzTVRiR2VkbThZUkEySzVxSElWY3poUktNay9HaWN5RlErR2EvVk5FLzJvQ1Q4cFNMaVNCaXl1NWdQdStUTlBzd3B2d29PMXFqYUZFUC8xbUNINXRsN0JSVVlmV1ExZkNqRmZKMmpMQmRyUXduZTBoTzY4L3ZqWm8yblRSb08zUlh6OUNRM1l2ZitqTjVNRm9ZTnRZYkZXT21YYzZRME4zam1YMitlbWZVeU9qOWJOeUtTYmgzTUZFT2NBT29BcDVsckd6WHR0Z3k5dzRFQmpYQStBTjk2K2VRUHZUcEJnc24yTlF2OTBhQy9mSDNka2Z4R215aVpXSHN6OHhzdHFuZTZGcC9WUnFwTnd3c2t2Wm5ZcGhKUnE3SFZhNFRLOXAwbDJHNmVienlUT2N5M2lxa2RaM3M5OEU5ckNZWS83YUtaYXdOdTk4Ty8xVWJrbWwrR1Q0czcxMU82ZXlvdC9yYWtLZS9rS0ErRTJRMVd1QjQvd3Q0c1pMak5CcEY5Y3NPaUIzaTdzWnd4b05pSkUyNlg4YmJEdG9FUC9Ia2FjN2szR0tXUDYzRzBEeVJIT1JwNGJEZ05HYTZpVEZzdTFQZFRRZ3AxbFBNYmdQcHFueUE4WTA5dTNJS0FlSjdwUVJWWDVBaHhCMUp1SVVCaWVFNGk3WUhWUHlBV2ZPMHBwcSs0bm0vSk5zbCsxU2ZjdUZRK1RTYm4reDRVdEF5eklkU3Fia2h6Wk93eE5BaHA1Qy9ZTkRsbjk1NkRwRHBFS2JjakZEbXh1RE1NY3dSQWdCQkkxclIwWHZpcXhQUitkcTA4ejlaSkN5NklHdVdaN2l1ejVjeWRSOStmUi96T0JxTXFrLzJ0azNkOXBZRlZVaWVkTEdlTVRFNzlXaVF5WFMyTDlid1lwU29xZzZUNWJMTTJWNVAyMWYxTDRMM2RPSFU3UnpBNHVZbkdNWDNzWlhUWG9lMlYyRm01WDlCVDVPTG13eUlORCs2aFBtcVd0cWQxemU2KzlqQ2lxcVNPTzJLV0gzMll6R0VVNFJaNUJCM0I4YkI4SVNwS28wUHZsdzh5SC8rVFoyTkY3MGVkL3ptRDFNYXJsbWpRSzY1UHhaS1M5K1dXVzhkVUY1WU5mQXI5d2FKTnRYZWdRLzFjOU1ET2x2blErQVJmVnVGN3dncjVMeXBacDJ3aUIwVGtORFEwTkRRME5EUTBORFEwT3JpajgvWGNpRDNQd0VpRURhZ242NVBzYlZSaXQveU43c0ViSGFHN2lTenppTEw1MlFNblRJbm5YRFh2eUxQdWt4b0w0ODU2WWJVTFZBSU1DY0lzWExZQWVZUnpYcUxyM3dVaHJhUjYrY1JEUkJrT0lDNWN6b1YwWXlIVC82Nm80Q1ZJenQ4TXJKZGdGZ09wVGhkcHczcXBSV1pOZ1dNaVA3aittek9RYmRUbWhUNitqUGNCVVBnUkpPUVZUd2RTaUt3OUxyRndXVVE5OHBBUUVEenJqeEQyU3dRUE0zdGxOLyt0ODc0enIrNytPWEhSTytuWUd3WVFnSStCZXIzYjcvMFIzeS9rVElIMjl4ZS9ZRElILzF6UDgzeU5Pa3Brblc5T2M3elZ5N2pHTmp3Q2RzV2NuaW1JRGcvTXhoMWdzTmd6UkdibUhvblMzWFl2NktOdC9TampTSXlxa3RwYWtYN1VOVkVlL1lSVVZrczE2eWlscXYzUVZkRE1kNWNoVTJNa3pkMWhvTGF6QVQ3UlJGUU05L0RJbWduR2oxdUVRNUN6RDBPRkdyWERwNlpxTTVsOXVzdWNGTk1zRkVZOHhidXRsOTVTR0ErZm8xMlhyZU0wMlJnS0JzZ1pMRk1MVU1hUUU1ZitXZWJaeG5CVjErVTh4eWl2RlJwQnk4SHZVU3V0Q0NRMStGWjYvSUtPbTZoWFpHMDhLektLYUQ5Z2xUWkRGdEh1TW1INTZSMUNOZUEwZUJlZUI2TUNVQTV5U0E2WmNRM3VvLzYyWGlucGo1a2NaU1I4azdmclFuR3gzRzRwb2l6V3crZzJZNzZ3V0V0Uk1VbTg2aDNVR0hpNGFuazA4NktkcEZjejUzeHJLaHBwbEJsTTRyeld6dWcrYlN2WHlmZWNYZ1NEQXZCNWx4ZXJwb0FBV2UwSlNJWmJMVnltR3IyQ0xnUno5QVMxWWZLeFUwZUNJQWRHVm5NeTNtNVdLZzgxZ2N3Z2ROb1N3dVFPY3U2Z1hzQlFYK0VkeEt6bUpEZ3ljQVFETlc5SWxhdmdGOW8zWkZnZkZUclFLTno3QVpaUVl3TG85d09ZRG42MmJNcFdBSzBxaVdzUlVMV2xxbmlKYUpFVUFIV1ZKOXNhN1JESk1vV0I2WmVpMGdFZkFVTWdGWHpiV1IyNkJycUxjNFc4bW1EeGo2eHN5Y3ZRYU53Tkkva0g4RHZRSEpnZmRtYU9SSkp4bENDcFdGVDJnMFJ2Smg4QU1VMVNSQTNxL1Rad0RRS1dRT3FmbXZtNXF2YnpZSFoyN3ZEM1JUUUMzRjVGc2hFdncwMmQvSHNPL1BzSGVLWWtNelZNVXdtWFI3Q29ZdGtxR3JhZm14VDFRcnZ4VXJqVVZOV3ZYbEdXUUdyZ3Y2T1cwSFBZRDEvZDZidzdESEJNUEdGVUdSYnhsSURyem5lOHVYWFcvbjdPdVJjV1V1N2hQVnVoQjZuZUNVR1dieFFHdmdCaGZlUGR1bi9lWG45K0ZMSStkdVBGM0xyRkVSZndRSTJxQ3ZhN2VHVW9qbmhZdWtpRmdkd3ZlQ2VCUStxSVYxZUlMLy94Qk9zalg0RVB6Zkw2SWZBdi8vYk8wQWRnRUwrM1ROYU5ENXVZYnpDeFZ2dmVjNjZBdEFQZ242UmRESGc3N2hCdjFKYW0yS1oxbktEK3hDcWFOL0JGQnVhRm9IdGhhWU5CYkpMMHdya3lOcEFuREs5QWx0YVVYT29pcUZUSWNaZm1keWdmTkkwVk5HRzZIZ0thSjV0OWJZM3VYd0ZQQThha0VDeDVuWndGYzc2czRJdXNrQTh6cGErVmhTaWt4RlQ1VzFYSm9kMGROeHhya0R6eWpxQnRCVGVCMkgwSlNIMXVIVUlWUHk3WkozMXQvbUd4ampZK25nQ2JPTlpQb1ZOV29oUDF4bFZ0YXpmWHFsOTZMcjBNS0FFNjBBVnRUOWtvalZhVytUWnZFSlhFdGlxQnZ5azZldkVnU0dBaWZVQXFCY0RDd2htaXZRL1NRM1NUZmZ4T2lvd016ZFpvNkQ3YlZJSGNiZzdLbnErWXlSTnJXMHN3aUR2L1Ztc2MxbjVGVFRQbW5xNHNtbytVZzdrOUMzS3ZJQlVtc1AyYndoeFpGK2hmMWJSZGh6SU04MjBIYTRieTRsTFNzNG9aRUFzcGJWRjRPNVN1aFVnM3h6cjRlZTBlRGhQWUF2cExGTmk4Q21DeWs1SHRSbjVSY2RTenRTQWZrTytBb05pRW1Rcmt1dnBsbm42THhXVmhVSXFCYUkraVFaRHl6dFFscGJCOEZqU1dBWGp6M1Q2bWlCaW5IR3dud2pCNkpwNi9tRGp1VnZZeUFCSCtEUGZJTFgyc3BEVlJvRlhvRmFFZjFzcjFGbEI4RDRjNkY2Ryt4WE80VGZCUmZFS215eEtvQTB3RThSaEJaWFpxR2dLWmwvK0Z6bEhvcGJ6NXh3ZjZ4VmNpNXcvTUZQMjR0WlhJQlZPeTVUd3lpQ0tSWVdXT1pJK0lhcVZsOUtoTStvS2dqTUt3Sm1PK0xaL0dheUNaWllaUUlkNS85TG1YOXo5S1R6SUV1cG5kclFScnJ0QlplbzJDTHZZdmphSWNzbnA1bmxGa1QzTlRwZm9XMlZRVzFFTndvQzdDaGZVVTVqVDZRbzBXTmxwSUZmdXRVbGNCNkJOenpyWHdhTmJmbUx3S25IWVRIS2RmUTQ1bTNqb21BYlNUWWJqVm9HSTdBRmdUdVFzVUF3Nzlvc1FHQlY0Nm9jeGRpb05kVW0wWE1SWjM1UmU4dU9aVlQ3ekhiN1NsZk5hRDR6ZGF5a05sWWdhOG5zU0dYNWhqMnRXMjcwYkFTUU1NS0tjUlMrajQyaHAvcHBNMCtPOXF5d1ppMXVQRi96d05mM1MzMmE4bGxEUDFyWk1SSmF5MXAzN2FycDUxTW1tMUhUeE1zQXk0ZXBQOVZSYitybUJML1RWQnBXTDJMdThzOEwwa25McmFlZGVWeEhTVFB0T1dIbHRJaFh0MW9NOXhWdTg5bmtxMTQxcGk2N1BtcjYwVkhNTWh1eHBzOXZhOTZXdEFjVGtIc096U1EwUDZLdloyQXFGcHA2aXFIVEMwVHlCS2NUUCs4d1pqN2RKRjdYaWNqSkEzUEpxcU1TRkgyZko3WG9PdTlvd1JORVN3WWt1NjJxQUMwTEVPMmJQVmdlUlBTQkpRZUVCeGRMODdReU1OMmZ4Y1JTK291bkl0WjNkVEJYUWk5dzhZT090bUlGRUpoVkRjQ1U0U25DYTZrRUZSVkEzd3plT0xuUVJjMUNobU1CbWllWHc4RkF6d2ZnckRSREFOeHR5eXNhM09Eb0lHTVRMZmVVUkRmQ0hJenVZZVZ1ZEo4Z0hkRkRMRThaUFJTL0Q2T0hrVytrNk9GYjVJOXIwU05ZNzhLalIzTGZWVWFQeGQzOVBMcEQ3djcyc0E4UUhuQUFBdG80QU40QlhsSEV5dWNveG81RmxCQVh4eWhKbm1WUkJvdWNqVExKOGpUS2ltd21STm5zZWp6S29XMURsRHEwL0kySmN2bnUrRkdldU4zRG9rSld1MHRSRWZidU41OStZdkpkQi9UMW5BOVI1MGl3V2lNQmY0R3hvYUVwMEovb0luZVBCVDFOWjlJaDRFcXJjSzBIN05ORWxzLzQ5clNjcUdXQkU1NEgxWlJ1TExLVTd0Y09LVm1tdVA0ajhpK2dLYktQYUVybW5rTzAwS1RucWkydWV5TERPUDRSMEltdFBQSGVJeDRCaVd6S21FdjEwUTJZQUkvSVFXTHVGRmhvQXZ2bVpBd2lyMlNZTDRQSElZaTE4WkVsYTdqakRKbmJORlJ1WktxLzBPR0pZNnNzSkNROHpRYVdkbGpPYUw2eFArYmUyQjhOKytOVmJ2NXBER1V5ZDB5UzNtUmlnTmZMN09OeTJQNGZYWmdwZ0pGRTREZDMwa0ppQzBRVkJ6eEtWUXVvRkNpdUZaUlNVTTMxd2grc04zYnhaeWdoWVQ1QVliaDNWZnFVcXpDSFdCSDc2ZDV6QkFxa3E5eUhkSUxYVGpRQ3Yvay9NdG1pU3ZGSXd1SnFaVFZxOUN3cm9IUXhVS3pHT3hSTFFJMHB0VmZGZlVhU2RPTHZFVGtPVGlXZ1VYbjNwc2c5ek5rWXJ4VnRJelZCT1QvWTROTnR6UFZVRkU3eWwwU3VscXFydkhBUE9MRlZJdXY4bmFqZzVZK2ZrR293Y3dsamdFdkppV3VTSHB4c1dSRHVZb0ZIMUliaEt4Q2cwcmdUUk9HcmFqU2tSMVpuOVFTSU5WMUpPZWtSd28rcjJ1VWJhSmZEcVZXQTV4ZkNYcTNTNTc1UitwUFNKendxM2l6T1diNkNYREcxRFRlK1VsQUprMzF5ajNkTHVaMnZlb1ljMGxyTnlyZTVDdkVRa2ppM3ltT0k0LzZDbFNFaUlsNTd2STF5NzE0ZjNqcUtWV2ljeGNReGRVSCt5NEZTSytveUdKWExZVmtWYjRWK0dIa24xcFRhU3F1TVRjZ0pSVFFVcDhNNUVRa1ZHVlpKK1dwcVNOd2JJbGQrNURodHZRK3RvdWxrL3pXT0hMYmpQc0J5K01nNjd5ZHJqK0dFS0VnTFZOWlBDTWRoOGpQT25ITGJTemFyRzJ3cWtqVFFZOHpMRFl3enE1eXY0Nk1XazhNQ0pTU0ZPekpNQ3Q0YkNiV05wOGtzSU9ReCtBWlh2bWx6S2lsd3I4cTNSbHB6WTZsRXduQTI1bmlhc0FreWprU1ZSajdDcElqS2ZpaGVFNGxxU3ZIakhQR3dtV3BFTmZXZlZ5ZnhSWHU4NUhhK2lMN0krbnRRNklNU2t0VGdsSE9iZG56eVlzeVpTcXNUNmpScHBPeUVTN1NrY3FxN2c2eG9DSHpzRGVTUlFYMmt4b3FVeHhjeE5Yd0paUDR4S0hSTlViWFhFUlpsajAwVUtoVjFmSExTblM3cmNjeFRwQkpKdWhDVFFCTTllSVJ3WEkzS2ZoSHJaNTVscnFvK0xZVDhTVStCMGhOSER5dlZMUUhWalJVK3FIbDJRVTVqNmNYb05hVGN4WTJQVXFGWWRtTFFZaVhwWno1MUNOdHFEVDFUSG54czNITmtZbjR3dnRKWlNZVVQ1b0RTM29oTkZCQVphQlkvSVcxbFo1NUtxR0VpekJMMUExME9PS2tPTE11cXN3U2ZNVTJUQ1ZvTDlPaCtBMm1WSHFsRklaWTZrWEpIUVVDam9qbUpIcWZhbjlYUm9pT01EVHlpVlo3V1FYWDM5OXBYaC9SR1JmUkg2VVo4Y0ZxcTBWL2kyZ2tGTWdjRnhXUWFXUFluUitmLzBMYjNQMUNFOVM3aXEwMEdsbStZUzBUTUd4MVRXNWJ4R0lCOW1VWXhLQ2dKVit6YUZGZm9TQzNjaERBK1VLK0lMNjFrRHhxVm5XVGpzSk9oSzFHamlVdW9hY3JLeFhOWXprRk8wL3lGRkNoZmhidGM1cFFGdlErVEVWeVg0MXJjaXZsVW9xVFBLazFIbzdNR09WQnVSRUIvNFdwVzc2TTBFek9oeGY3SnVTNEtaNEsrWXByZWhZVEFTWTFvbVFLSWUxS2dZOGZpdkk4dVBMd2VZUXVuSlhwbWlhcVZmRnFuUTB5WUdYMTVhNG90SldHM0FXbFNCVVF2TzJpU3VLVXlCRkZXTk93U21nd0lpdlNaVG1KbTRVdjhFbEtrNzZCVU02WkdYS3BYTXhPK0xneVp2cWlPUWttaWJWTmZDVUxHNEVnQitjczg3YWtHMmdvK3JvZ2FkQ0lnMDdXT1k5WVU3d2NGNWNJVFFOY0ZFMXNZRDBBZ2NRV2pnbzB5L3Ivck82SVJSRFM1c0FMSC94ZkU5K044SlFqaEFTUktPRDZVa01SNGZpczlxZ0txWi9GWXh1VldYY3F1bTZRQlRDclEzdXFYck1OT0lUb1M4dzdRdndoZnRqcWNObTRyU3YrQ2VNd09IZzRGMFlGcXk0QmZMU0NNWTl6R2U1cVJwczgyRERVdmhncVFLU3VNTU1xT29lS0VjaVd4cGt1cE0xVEtQRGtmZkVsbmJXQXdlME9HWTVCNDhSMGZhcm9qUFZBZFJENGZ4ZVVMM1E4c2VzMFhQdGFpdzBiMU0wT0NjT1A1eU5ZYy9rTGJzLzBPSHZoRytyUEJVRTE1d2VJbnJkTm92bVZUYjdWTHpRaFk1S2s1RlduU2JPbGZMNXVjODlJdjIreldxa1diS3Z0Y2NjbCtlWVpaWWJoclJyanNxbHV1dStHbVQwYTY1N1k3RGhqbHA1VWV1dStCMGI3NFpxR3h4aGhuZ3ZFbXFqREpGSk5OTmMxMCtXYVk2Yk5aQ3N4V3FGaVJPcFZLbFRBcTg5VjN4MTVPTXV5bXc5bi82cVpkbHJzbDZ2V0JmaUtKVExHbjB1Z01KcXYyL3VqWkhDNlBMeEE2aU1RU3FVeXVxS05IU3BWYW85WHBEWTVHazluaTFOdmk3T0xxNXU0QkFJTEFFQ2dzdVVGWFdnUVNoY1pnY1hoQ25ibzBlTDg1aVV5aDB1Z01Kb3ZONGZMNEFxRklMSkhLT3Q0b2xLbysrTWc4YUxRNnZjRm9NbHVzTnJ2RDZYTDM4UFR5QmhCaFFoa1hVbWxqblE4eGlaTktaN0s1ZktGWUtsZXF0WHFqZVV1UUZNMnczS1g1cjVYay9QMVRWZE1OMDdJZDEvT0RzTldHQ0JQS3VKQktOMHpMZGx6UEQvUVNkbU5SM1ZDV3gxd3NrY3JrQ3FWS3JkSHE5QWFqeVd5eDJ1d09wOHZ0R1hQSjFtTWVONHQvTms0QlNXUUtsVVpuTUZsc0RwZFBFQ1ZaMmF1YWJwZ1dzaDNYODRQd0VNVkptdVZGV2RWTjIvWERjWnptNVhTK1hHLzNCd0JDTUlKaU9FRlNOTU55dkNCS3NxSnF1bUZhdHVONmZoQkdjWkptZVZGV2RkTjIvVEJPODdKdSszRmU5OGZ6OVFaQUNFWlFEQ2RJaW1aWWpoZEVTVlpVVFRkTXkzWmN6dy9DS0U3U0xDL0txbTdhcmgvR2FWN1diVDlPNTh2MWRuOUFoQWxsWEVpbEc2WmxPNjduZjFaQkdNVkptdVZGV2RWTjIvWERPTTNMdXUzSGVkM1BtRXUySHZPNFdSZ1RSRTFtaTlWbWR6aGRiby9YajBBa2tTbjJWQnFkd1dSQmJBNlh4eGNJSFVSaWlWUW1WeWhWYW8xV3B6YzRHazFtaTVPemk2dWJ1d2NBQ0FKRG9EQTRBb2xDWTdBNFBJRklJbE9vTkRxRHlXSnp1RHcrZFFLaFNDeVJ5dVFLcFVxdDBlcjBCaU9IQmM2YW50UGx6dm9MZ3lYZ21RTkFDRVpRRENkSWltWllrK0R3QkNLSlRHazBXVzArYVNnaTFQc0N2V0FxUC8vN0taYzBPb1BKWWtmemNyZzh2a0FvRWt1a01ybENxVkpydERxOXdXZ3lXNncydThQSjJjWFZ6VDFkem1UNEI4QVNJbHVHSTFONmRmUkdlbmhHTVp3Z0tUcUR5V0p6dUR5K1FDZ1NTNlJFTHlSY0pDN2M1Vitmbnp3RkdMWTJkVkhGTXNXZVNydEYrU3lUeFpqQ28rOXdlWHlCMEVFa2xraGxjcDRsRExmVUNHcnp2Y0dSTllYd2JMSE80UkpvS29RWi9vbVNvdEZjNkE1aTBsbVJmS1BWb2FyUWR6U1pMVmJ1Rk9LL1VXaHovZm9QODJFL2hvL3hZL3FZdjhubGgrSHVJWDRINi84cU5sOGFQeTlRcWkrd3R2S1pRUzMxblFWd0x4TWYzaEk2eWMzcVVoYm1MeG1HaWVtaWwybWxwYVh1L09VVnV0ZWJVSFFKM2x3dnoyM2VxSkthNG9WVllEaEFRaHdLUXFjNERnWWljR1J6V0tabWd4SHR5UWI3dGQyYzZjSGFGZHFuWm91Q21CYzMyemJWalhsOENydVlTODlnYnpxMXEwUmx6VzVoMlZidGpQM3RhcmRmMmNIczBaTWhzd2VDNlBncEhGVjNhZ3pUTXJQSExPNmsvSURweGMxUlM5dE1qd2pudk1ZNVo4ZVpNN2lIeHFtampFaWZIQWRXb29vVkdnSDRYMDZZMDdSUDlUU1dkR29PWXhHcWNvMTNLc2ViQ255RU9nZUUxTlRjb3NGcG5MaG9ZQ3dpRjJhTjVFYlJTRU9Wck1oSW9JKzIwdWRwdjZWUHVaT1ZjNmhUVXNKTE1nNTZIYWFJM2ttTzhLZ21MQWs5dEJXWFQ3YkNTSjIyK0Fua2lPYm1zamd6N1hjdnBXS2o5aHhSTS9jckR5dTNLdWd2cWVMQmhkcWF4ZWp6cStQK2ZucFlUWWZQKzllR2xSdUFjVzJobG1abnJCRUdqUVM2R2FUT2J6UHQ1Wm1QOVphaDRQYzFOQlk4clZyWlFQSjcvR1FNZmp6TDBWWHNRU213VWhuMWhKaVc5b3JxaW1iOCtyaUNDSnVxTFBxRk9jRFlLU0ZmZzBzWDExeVp3OFZCcStLeEtwYVZYbUFqVk9qMzRFem9IcmpsTGpHVlVta0g5WHBaTVI0Y1UvQzZFYUdrZVpnVGZJaE03d3FLdXJlcTgreVNLM3F4Y2ErNTlkcFZQZkxNQ0F4bkFIZG9tUjFqVVNBeWdrR3MwRE1WNDFFaU1kS2x6TllXZ29hbTY3c3lScnZnTW9XdHVNRWt4SXdRMVo4MDc3alBwU1FOTDZVZ1ZJL0JQU3VhbVhhRllrSUNPZUlnYnRFMHBSZ1RuYm9ISmsvMTNpdUY1L20vcDB6UDhEVUhqOUtqZXViOHV2QXR2M0xMZEFxWnlqODF6ekxkdU5PcWhKY0JyaW5DSmhBSVlDTnlKTUZJZ0xnbHhCaGJUVFZ4ZU5hZ0hNNmZOWUZPcEZKb2d3Y0ZPd2tVakxFR2JILzVyQkZFREl3Q1l3bXBtallHUDRIdC9GdURGS0lva1pDMkJMR2lITzFpN3BCc1VBRnVtZ1lHZktjeGxvTVZGb3V4U2d0Z2U5cGpKVEZNVTAwbUhvQnRZbVdLYjJWTzVkYnlJYjJUd2duNWh3SEJQSW16RzluUCsvRElsMHl6VTluL1R0eDhTMHNlWVg4NW5ITFN1SEJPOFNON0FLbU0yNWNBRVNhVWNTR1ZOdGJ0SzRDWVVNYUZWTnBZdDY4Qklrd280MElxYmF6Yk53QVJKcFJ4SVpVMjlycGJBQkVtbEhFaGxUWnVId0pFbUZER2hWVGFXTGVQQUNKTUtPTkNLbTJzMjhjQUVTYVVjU0dWTnRidEU0QUlFOHE0a0VvYjYvWXBJa3dvNDBJcWJkeStoSjlJbnViL3FVZzNIRkozcTdtVTNCbG1PWG91aU9xSk5XTTlLVTlzeFozSGk0ZHhjSFhDL2RyQ05iWjN1L1I3ZWtYbjJIWnVaZjJhSmlwelhheEZ0RHdKcnAxaWdSQTFLVkJudHVoSXFTN0Y4MmExRk12RTBqcGJUUU9hV1ZnQjNvNU5oZ0NLOFFJaFI5RndlOTFFQUZyMWl1dndaQWl4ZGxJM2JYRGxVbTA2VTlQcnR1VVR4N2VlY0d0TkhmcVdxSVlQMTNyckdGUW1NZHUySlRVbUd1NElKcmJnZHk3eHBsMk5jRmpDMk9PQmpEQktqQnh3N1BHWXlVNGhyTGN1eXo1VFBLRWpFcHlLOFY0V25JOXdJZy9taEU3dURjNDlua2l4YzBMblRNVGhtYmp2aUNLT2ZkdzNhQW1JMXBIK0xqcm1oZWR5N3RIUHJGRFNEVndNQmZCYmxYTDRsOEtycG5XdjgrQ25SYldxSlBGWUJTOGZydUk4cWRCckdkM2JjSHB0eE5WSU1lamdlbHh5S1lUNHZIYlJ2Z05NQ04vUmZlZnoycGJlTmpGYmI5aGdKTTBnU3BKOTU5SjNBMEpkZFNrMXNtNFJLc1lQbFB0bURhR1MwREljS2ZEelFxQjRoTXR4QmZqcjhWSkoreGZoT3ZxRFZHOVVQeUQxZUcxSWJFcm9xaU1rNGRXbWhHNlp5RHZjME9HYjNDRTN4N3pvZ3l3OVBzckJaZkNRMVdCNUJhTmk5UVh0YmRPYko2T3M0dDhVeTcvTlFRQVJKcFJ4SVpVMjFvVWZVallBQUFBQUFDQkpraVJKa3BRa1NaSWtTVEl6TXpNek16TXo4K2RIbnZiVHZRYjI4M0tOZHlXUDh2ZyttRjFUZnExY2FaaDRJdmQ4VVJaNzZvejAxQkhvcWY5dHY3eU5ISWZjbkUvUFE4VDcxOU5rdGVmTGZxTngybTg0VmFFcDE4OE1wdjN5VkVQbGFlRGM0dmFzWDc2Ly9ZeVFjejFDT2VkSks3ZWZXNVVSVmU0NWFlRVk4NTZUYnBLYyt1VGJVLzNZUS9pZW11ZWxQWWNwMXZaYVovNnBzYW1yL2RRUTNYeDl0dENhZTNhR1Q1bXVwa2xja05TNGQza2FPV2tnazI4TGpaTlJ4Q3NXbzJmMFRJWllpRUhra2pFT1pTT1h1M1Z6ZCtIemVjdXdHU043T3ZkdmpnaCthb041VytqMDlYSDVOU2w5UGc1TlRNM014K2crcXpyTWZacUhMK2pTMTB1NXdQZWM0SHIrOVJISk8vSjduODYzVGZhM2k1Y2J6aGMrd212NHpyNEJLSmJpd3hjMWRjd21Yc0NKNm54WkJNbGxKUjVWeWR4cHA2cG9VSkZIMy8vak1iUFlXQmZnYzVLYWQ3YUdNNWxQc3BmTHZNQ3ErY2lWaGNiS290bzgyTWJ6MWcrOEVMdzdPa3BsRkVhZkFYUzhETWNrU2lzQmRtR0JBQXZzTTNvQXRzQUxXMkNuSUlpaHdubmJBNnJGWGdBWTRJRGRNY0E5QUFZQW1NY0J1K09BQVFhWWwxS2N5TTJZRU5tUmtudXNWQ1psZzM5QjFSL3NGVnd4WUx2cW12eHhOK3BaYTdWTzB4cG9UNjNYakdhMVFSdTFTWnMxcDZIMjB2NXJYZ3RhMUVqNzA1TDIxakpkYkJ6ZUFlTUJxaE5ub2hOZE1wamJvVHgxRHAzd005NVNXd1Y1MFJqeWtEVnZMQVYvOHd3YitPZ0pvZW9LWVFBOVE4YUlrbmY5d0NJeDRBUW16d2JwSkQxb0RlWDlRQUY2SkZCU01nQWc1Q09JTDNnMHBDRXNhZVFvY3dEQkNVRmlUci9HSHNGR2VCZFFDSEQ3MDhxMHNzazFDVm0rQk1zTkhjNEpjR3pCVzNGUW01QWxPbGd1a0VId1k4WTluRTRJTk9HNFhEMzFKeG1aYWFhR2Q3S3diaGltdW5Vc2tya2pYZ0JnRTQ3VnlzV0VFTytBdXFFbks0UkdSTm5rb1c3R2s0U3lPWGlTT0k4K2hDcGlxSUxYT1Jwb0VMbWZEWFZNVTc4cmN5bkVJbXlNS2dvNklaSXNVaURSdUpSWm9sSlBJUXJnY2tMRUt4MWVpRG1PU0NDU0pLdHUzc09NZzVUazVMQW9PaXllSHJ0YzNOcmgweHliMmpNUWg3OUpNZURxbnlFWWZoNGhrSC9vL3g5bWcxTE1BSkRQL0FmazBhNlhKMy94RHp1bWtEL3A2QXdsRm5DZWpnQUFBQUE9IiwgImVuY29kaW5nIjogImJhc2U2NCJ9LCAiaGVhZGVyc1NpemUiOiAwLCAiYm9keVNpemUiOiA2NTAxMSwgInJlZGlyZWN0VVJMIjogIiIsICJfdHJhbnNmZXJTaXplIjogNjUwMTF9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IDc4LjYzMywgImNvbm5lY3QiOiAxNy42MjksICJzc2wiOiAxMy4wMTgsICJzZW5kIjogMCwgIndhaXQiOiA3LjE5NiwgInJlY2VpdmUiOiA5LjAzOX0sICJwYWdlcmVmIjogInBhZ2VAODZkZGU0OWIwNzcyOGY1MDhjNjgyYWE4NTc0YzNlNDgiLCAic2VydmVySVBBZGRyZXNzIjogIlsyNjAwOjkwMDA6MjIzZTpiYTAwOjEwOjdkMzY6MTcwMDo5M2ExXSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAic3RhdGljLnNuYXBjaGF0LmNvbSIsICJpc3N1ZXIiOiAiRGlnaUNlcnQgVExTIFJTQSBTSEEyNTYgMjAyMCBDQTEiLCAidmFsaWRGcm9tIjogMTY3NTI5NjAwMCwgInZhbGlkVG8iOiAxNzA2ODMxOTk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMjA0WiIsICJ0aW1lIjogMTkuNDY3LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtRGVtaUJvbGQud29mZjIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJzdGF0aWMuc25hcGNoYXQuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiL2ZvbnRzL0F2ZW5pck5leHQtRGVtaUJvbGQud29mZjIifSwgeyJuYW1lIjogIjpzY2hlbWUiLCAidmFsdWUiOiAiaHR0cHMifSwgeyJuYW1lIjogImFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogImFjY2VwdC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAib3JpZ2luIiwgInZhbHVlIjogImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbSJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJmb250In0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJjb3JzIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtc2l0ZSIsICJ2YWx1ZSI6ICJzYW1lLXNpdGUifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExMy4wLjU2NzIuNTMgU2FmYXJpLzUzNy4zNiJ9XSwgInF1ZXJ5U3RyaW5nIjogW10sICJoZWFkZXJzU2l6ZSI6IDQ3MCwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiYWNjZXB0LXJhbmdlcyIsICJ2YWx1ZSI6ICJieXRlcyJ9LCB7Im5hbWUiOiAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctY3JlZGVudGlhbHMiLCAidmFsdWUiOiAidHJ1ZSJ9LCB7Im5hbWUiOiAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctbWV0aG9kcyIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogImFjY2Vzcy1jb250cm9sLWFsbG93LW9yaWdpbiIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5zbmFwY2hhdC5jb20ifSwgeyJuYW1lIjogImFnZSIsICJ2YWx1ZSI6ICIzNzM1Njg2In0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDAscHVibGljLGltbXV0YWJsZSJ9LCB7Im5hbWUiOiAiY29udGVudC1sZW5ndGgiLCAidmFsdWUiOiAiNTk3NDAifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJmb250L3dvZmYyIn0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIkZyaSwgMzEgTWFyIDIwMjMgMTI6MjE6MDQgR01UIn0sIHsibmFtZSI6ICJldGFnIiwgInZhbHVlIjogIlwiZTZmNjI2ODE4NGY1YjRkZDQ5ZTFkY2U3OTc0OTQ2NzdcIiJ9LCB7Im5hbWUiOiAibGFzdC1tb2RpZmllZCIsICJ2YWx1ZSI6ICJNb24sIDI4IEZlYiAyMDIyIDA5OjUzOjU2IEdNVCJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogIkFtYXpvblMzIn0sIHsibmFtZSI6ICJ2YXJ5IiwgInZhbHVlIjogIk9yaWdpbixBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMsQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOGE2ZjY3YTk0MjFkZTMyNmY0M2U5MTA3NzUxYjU4MGUuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICI0NVNtQW1oSmZqYzFFaDFjQ3lNWG50VkxLTlBVN3pyRjA4RzRzbjdKZEt2Ymp1dTh4S0RuV3c9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTU2LVA0In0sIHsibmFtZSI6ICJ4LWFtei12ZXJzaW9uLWlkIiwgInZhbHVlIjogIm51bGwifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiSGl0IGZyb20gY2xvdWRmcm9udCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA1OTc0MCwgIm1pbWVUeXBlIjogImZvbnQvd29mZjIiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICJkMDlHTWdBQkFBQUFBT2xjQUJFQUFBQUVDVUFBQU9qMUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBaR1ZFMGNHb0VLRy8wZ0hMVVVCbUFBaVhZSUhBbUNjd3FOaTJpTCsxNExveXdBQVRZQ0pBT2pLQVFnQmFnaUI5SUFESUVFVzJTdWt3UTF4NDdQQWFoVmxrdTNJZlFxdDlSTDJubHVYREZTeG5vUGlteFpkT09ZL1dNRXJ3dHN6aXhraDd0dEF4TTVJWHAxbmYzLy8vLy92eXBaREpuZVArUWVIcEFrbXFoYTNlcTJWbTN0UUpXRVVWaktCcU1iVXBZRmxsRGJwbWVuVll3bGQyWjB3c3lvcElBOFJaaUhzaTA3clFjc1dCV0RhNHcvalVSbkNwbURMV0xXOTlxaEhHSFVLSnN3a3ptakJhUjRJL0xjanFnNFpjTFQrVTAxVTdsVmswN2RBb3JZaTVvdU5xNUY1QWl1TTZLUE1xM1gvT3YzNlIydGxOSnVmL0QzMzBkSi9ybjE3c0tiZTd0c3BscHIyeHpxMG5EQ2duenpFVXREbSttemFWWFFRUW96QTBGZXFSbFZwMllKUk9hSkMrNGlWOUVmcDIwK2x4dGE4TE9wcEc3Qm56N3ZIcHNqdXRodFlFTnFJZmQzSElRM3RVVGNScnRtVWVXNkNwTVdnNkQ0VUJpWTFHblZqbjI0VC9rbEtiOWt0bThHdnFSUjNPUHRML0pIdkFJV2xWU25FTVo2WUQwR1pwaEdtTVlCck5qamZNVjZSM1AzR3ZLdHY5U25xU25wUGNLay8zVE43djhIbC9icXp0UmlnelBkaHZZU0VNZk5LN0JFbEdqUllzUVdmVXJmTXE5OElSL3Nudi9KU2U0K1FsOVNKNkdGM0FrVnpQMTVmbTUvN25sdmE2SkcxQmdyMldEUUF3YWlESmdEUmxueFAwWmp6eWpFd3NxUEdHalRzMkpmeEQ4TC9XWWdGbUlrcVovUEJtaWJLUmdORmlnVklncmFLRmFDQ0ZJbTFrU3hNUHFHZ3ZhbVBXT1pyc0tGemsySFN6ZVhybjIzeWZickZKNzRodS9yblpsOWt1MmtIMTZhQkExZ2VnZTBJUU9VSDBwRFlBZ0xOLzFsZWY3NWUvbGMrNTZqVXdHbjQ0Q1dUc05qTGFDSmFZQkQ0V0F3Uk4zZXovNWZtOFBuZ284bUk5dklNR1ZrbUpudTdaMllSQ3pZZFFuaXdZSUZTdzh1dFYvN3RkVDhyMWYzZFcvTGVsU2RxNGFaMlpqK1VzZ2RKRFZZR0JrRWFGKzVkajNaUC9Jdi9qWHB4UW1FTkpPQkNTa3pjYzB2cEVlc1hQb3VPMmdnQ2RKVUlPUFEvb3FFQUw3WHlmYlRZSzVNb3cyaFpCVVZKQ3dCWXpqN3pudDRmbm52cDVobEl4anRmT0FhUFQ4blBpcEhWTlMzaGFuVkJGK2o5YzRQVzc0ZWVHRWtlQnBrL3Rqc3d1QTlTVnV5dWVtNm5Ydks4SC9xOHhRdEdhcGFiUklaS2pnNHlMR09FSFlpNlpoM3JNODM5di8vczdIeGIzcjcvRk1VT0ZBaTRsbjY0dG9HU0RkRFFBSGRFQ0Rya3R3bHVXeXlMNE9NeStVdW00U3N4ZHFPS3R2aUFoVkVpMk8rMzI2L3ptN1h4cXBWTzc3VjFqRnJ4OWJXRHJVdDg5elBWZ0EwOEFJY1JqOGY2UEFPOEZmSC8rbzBhZjJhdytDa0JDREg3WU1Ed0hHNENRQU1MUnRJMWsrNnF2Y1ZxbFFxSVpTNEJZM1RNejI4Y0x6bk5kQitoaUM2Yytic240TUlPS1BNRVhEMlUxOXFDSEpERDkzVEpnalN3aFA1aCtFS0JtVHpaaUdlL0wrSHZJQlo0UWNEdHNLVnIxYURWbXlPUnpCRGRxV3gwa0FMNE5GKzBVTkoxK1lTQVFVUVFNOXY4OEUvb3dqQ1dJbExjUWc2WEZMRUJseUczTXhidG0vN2RsUTB2Q3NRTWVKYy9IQjU4eW5UVnFjYjFYSHAzTEVUOTN0ZFI1amdyN3ArOWZrRWg4VzcvYit6bHdBRWdReEdNcE9CMUwrT1FOUUR0RDBaMElId2JkLysvZVR4OTZkK01vMjZrczZSS1gxWWJsbGxrTEZpZ1hnUy9CWUN5MVE5Ky8wOVBocmpzZWpZbjJ4a0VFdnhJQ3Y5NjlwaWdBakhmVjBJS1RZRk1FRGhuRStJcTdldEdrenBPMXBMWjFLM2E0OEsvQVN1aWxTRkN5QzRDbG45eURsNjRLUGtnL0NUbTIvKzJzNGl2b25yTVAxbFRkZDJqUmlRT0dJUjRJQ1lRY1R1M1ZWMGJPWm1LVEpSUW5xSHVjdWl6aXBLQmpwZU5vSmh1VjkyTjlZbkRya0IrajlUcmRMNmFQWk9RWVIyQUsyRE1uRDNZWjBMSXM2c1BXdEM0MlBiL2J2UVFGV2g0UWh5Z0FZcGlZRE1BWlFoSWMzYklUQ0dEWUFTU0VKNkhFOVI2NHh1enNxYzhTUXdscExlVzBwcnZZdk91OGo2SUwwc2NwbHo0YVg1WmVGRmQ1a05vb3ZpOCt1WGxuVG41TFY4ekNIQ1NIZ0lHWmxRcWFlbi8rMUtzaHh5eHZQbWQvZFhHRW5yYzR5QXVBeERSQzV6a0lxYkFBTTA0N2gzeUFiVUZPcHhNNkRMaUI0QVMxaXM2QlQ5c1FEcDJnbHB1VHovZW8vOGNvQ1dTWDA0QUdtcUZ5dGRDclFNUzNQK2dBT2MvLy9MbkowMzk5OHQ2WitobEtvRUxrWEd4U2p5Lzl0SmVmTm9mYlBub0Z0M3JhZ05paUNSR01kQld1NWJxOWNHV0YzY3hVWEdTRVRsRWJZT2F5NEU3cXN3TGt4M1QxVjNUVS9OemdZSTlpN0FvQWllWjNRRUd0Q1N1cmlWSzNXRVVaRXlQb1RRalgrSHc4QWtINzRGbFA4MVRmSGFIYVlORDJLaFVIci83MTlMNzlaeVNwVmJ2ekVLSUZySlJaZHplb0VaSHRSWU1BcmlnZWMvVS90TWVldXhHek83SzlNTFVTYkV3VkdrSkJDSDQ5S2ZoWTNDUTJHQlFuV05PNlB2TUpSejgyVWR1cXRCTm9FRytjMnN2RThTS1ZPUVp2d2I4ZndrRWp4ZnB2WnZ1bWY2elJzWmg0SlkrUlpsa3BRRUNiRHFaejQyTGtqSnhtV2pkbWNiL1kzZllsSFdCaGthdDNzR1pnQSsvNDFMWlRQOUlGYVFwc09WQTc4UFY1bkNKMlhhZCtsTGYyTDc5THNXNENWUUZtSWx6TkhKVHJZelZzZmVTZEhsSTU5UkFTOGd4WDBGdkJDWGg3eDl4cjFKRjFxM0VabGt2L3hXSUFGR0pHbXhscFZxRkpJWjNNUzBCRHVJaUlBKzl6Z2ZyejM2T2YvL2paeHVUR21FSUNvUmhHVjMyZEtwY2x2L011LzRibnhWOCtMc2RSYkYzOHN0eEJhUkVDUmtzeG5ibHU5MzR2ZmZhVW5lKzdmM1g2dFdWVVRFV0ZFampoZ1IyZnZiMU9WMUpvOC9VV3Znc0lPUzhUdU5tVFdrM1U4MmUvblNzeWxiVkVDd2dnS0tDb0xDbDJYTlNuZnZYdTFidTNZVUN5VWtRUUxPdlQremF1eU5kK2Y3M2NlazRMRTdRaFlOUXJHa2tsU0M5YkdmOXYreWU5dnJuK2Q1ZTA1UFI5UkVqWFpRaEFGbUZBU3lxM3VpazFjNm9tbVNuWDlXQWdUQVc0K3VmUUh3ek9kaU5RQzg5bU5HQWhDQW5nQ25BUW9uQkJZRU5td1FEdk1SRnNpSExMSWNvVkFoWklWRENLVktJV1dhSWJUUUN0SW1EaEJ4Q1JkUVBHS1B5Q0dPVUU0ekYvRzhVVUl2bURPSWEzWUJ1dmFNUmFBQkNrQUEzZEhRSTRkOW1aNEhiRVFZYTc5TkZTTDZhVklmSWFMZnAybUZpUDZja1M1RTlOZnNWQ0VpMEpZaEFEcjBoNmw1d0FZUWdLQkJnSUtyT2tSR05NQUVtYWFhWlpuVnR0cGhyMHBuWGZWVWcwYWZ0UWxJUSt3RDhIa0U4WW9veW9SR25maG9FeE4rRXBJWldlVFlUTHg4VTBzM3JYVEdMbTltbDdlZ2ZPOXVlSjl1R0tHd0FrVmhyZU5VZXNhVUl4U1d3MzA1bXBYV1J2a0JOalNPU3Job2o4aG90UndLZ0ZrWGJibWRnSWFwcTU1QzVGaEFLQzBpMklHajR3ZGJvck9KUG5DV3ZjNkFpOUlDM1NHbGZjaG56TThlWHBOZ0RrblRPQmxQU2h4WWJreGhvK3o0RUhJZmVhUzRqT0tmSU0vUDVmaXpRNmFiVUdHaXFFV0xFVXZEb0kvNUs1K0txWnpxcVJsZzZ1ZmxQdTdUUHE5dDdmdTFya05aQzY4Z2NQQ2c5Y0MyWlFNNUxuTUx5YkJZZWVtUndNZTU3czZsRWVEZnMyRSt2V3d0UWxFcytkZmxpc0NNbHpUUnlhVW16N2wyaEJ3ODZWYk95RExzdFdXZE41MmlvakRzbkc5RVlYSjhzcUwyNENrMmszeVlZSEpLTVUxK20wcDlscTJRd3BwQjNhSUdaM0lZeEJSMTZHZW9KdkEzNTRzUVA0WEo1cFo3ekJJaU9GcW5ZUFA1UnVlM3A5ZnQ4WldOQnpWL2FiK21NZGlkZUQ0S1hSbHZCeVhuRXhwVVl1WVlMR1NSYW50bUViTWRTM2xtN0lHTTQ4dHU4eGY3QmFDOFhkczFpb2lRNisvUU5wc3F4b0E4dXdrbVpPanRVNXJLTjd3K0xDSzRGemo5MStCMGFscDd3dWFRclQxVURpNHFoSmkwTjlkUEtaM0JxU0RaeTdtMGIvdG1aT2dlNytXZ0piUFQ4WHV6NDZheFRhSFltUVQrSW1LS0ZraDcrY29tbXliTzl6SmdhcGx1UVFibTQwUlRydjFIWVBXWjBXKzRDV2ttdTdkcVJ2Ny9kMi9ERVRQMkJrekQwY25aT3BnOTkxRDRjZ0hjekNqWFpMN1A4b3l6QzNmUExMU010bnVNdTNTRFZNcnBOMXNFVW1GbmJCYmJuWEdieC8zeUdMWG5UQ2p0b2NxOU5jRXN0MjlDditZVHM4blpkY3krV0trN1dBVEM5dnBhUjdpc0R1cVVlTXdvaXlNd2Z5dHhaVWlJYjJ5RnF3OHJaejVET3pkUDA1MGlobEpCenlZVlJKelp0cXdjRUx1RUNXanNlVXVhSkVPMkpKTmd6RkUxL0Y2NEVPZFpkWUFraHdxdUpZNjBsY1U0WXZnNE9nOXdVRG4wellzNE9vdjc2R3ZyZWlTWTVlekl1WStCNVJWUUJlZlMxRncvR2tocTRPRFRtVEsxN2JYb2l0UXNtTXREUWp3L2I0SG9UQ2pTYzBhNkU1c1hhc2JPNDdlVEhqalgycFRqTGpiaStjK1ZCYjBvbDFQZTZLSkZ3bkdRSm0xNkpyZUQyWldtQWFYQlprbzNac2MxS2lxQjNYYldBV0J6NmJaQ0NxN2RSTU9yV3F6QzhoN0NEdDNuNFRhMGNSQXdKU1VTdmFxVkxGanF5S0ZNRWtXa2JjUHIveGc2TTdIcExqTFN5c3FFZHBoWEJYOHJzVFFIYkptUTdoSFA1NWt5aGs1amk1RENuNkd6aU9Sb0l1OThPbURXMkdEVDU1Wk42L0lVNGdzNWxkMHhMSGQyRXBhb29QdndGaG5wb09pd3Y1Q1orb2lEMy9VYVR1VFN5bGtQOEdZSDV2TnQ2ZlNmWDRiMHdONEtXMG8xd3Z0eWFBM1I1RE8zeC92OTd4bFdJWE0waTFjNzNBRkxXeVQxc1JyVHFQbnFRVnpoMkxwWjMraHRlQU9yL2ZGRWFQWThjN0RnOEVjcWxkbHA2Zno3ei9FMXdPVjZBN1pFZTV1aUs5bEpubHM5WDRLczBtZDAwTU5MTUNGY1hOeExFZG80MmRIRXFuNmNIUFZPOERlbEhrWlA2ajNaZWU0eWFMSHFZRGkzVlMzLy9xdmsxdFZ4MTFIdjRZaTlQM0dnZCtMdTBOT0p2cU9BK3RpK25iU2w2N3FTSldYTm9WTWI0bkI1amRqYWt6MURLcGNRajl3YnlNUG9vcmcwM0tSc3pHNS8rVjRHNU5oMmpaeGVKN00xams0bGN6ZG12ZTEvNDkxNmV5eDlnMTNlTjIzenl2UjhoVGxzejdtQ0JTK05LTzhMb0Npb0hjSVJiYnptNmt2NmFadWo5KzkrMWRGK2pubmZ4VFlRTWdwWklxNllKK0ZMalRLVDNLeXdLRzFWRHJTajJrbmpXdXNHY29IZDZ0enAzUnM4R0QwaW5tdzhtNW8wQXg0alBoTUJuQkFobTQ2STAzaDZZbDRTQVNXQ3BNSmtvdVRpSmhoSUlVa3BSYVZHZ1ZwcU0rV1lSQkVKek1kbVVTTVZXTTVOSVU4cjZtNmxOVHh0cklmTmlnZ1ZWMmk3WGNSS0tyUFhJUUZLVDZGY2xldHhwd1U1Nit6V1FMZ0xWR3FGdThqTlB3Sll1TGtrd0dWdXJnaHdsYnM2N201d2Q1TzcyenpjNWVFK1R3OG9QT1RwRVlYSFBEMmg4SlNuWnhTZTgvU0NRajB2THlrMThQS0swbXRlM2xCNnk4czdTaTI4dGZIV3djY3ZnWDd6MWNsWFYrYlBOendnREI4RXhXWWhXMktiSGJITFB2Ym5BRHpqaUNKTytNV1o0TGdNQ1NMSU5hNjV4ZTNjZ1NpZWMzbkhPOS80bmgvd2o0aVErRThsanZpa0lDU2tPQngvcW5CWVBDNmRscyt2Qk53S1JRMnZRZFhDNitBUFE5UHAvZ0gxUDJ0WVd3alpWRGllUnRTbXc3VVJubWVpM2l6NG5vZnJGbURqaGRqNkFmcTlJWDdOOU5wWGt2Y054N1VSdlhaaTE0Rm12N0RmYitMV1JjcTBJTzJzRGxUTDBxVXNaVTUwa3FOR3JscDV1bktoemlUdFRmNjBnNmx1dlFKU09abFdqOHd1NVhEYjhmQnlRbGloMVhhazAxY1pqZmpmSTJjMUYwK1pWNEZPZ2tJMUlpcHJWYW1xVTYyMmd5Wk41ZjVxYnVkbzJIOGppQTVGMlJURlliTzVSQTd4OUh6UE5LeEc5RHlqM1BTMmRnNEsxL1l1RHU0TTdwVWVIRDNpbmxTZTZXYVpBWU9SQVdvR25KcU5pNTJQQThMSnovVUQzT05oVkliSmp4Q2dFVUlTWmhKaEUrVVVZeFlubFNDVHhKRWlsK1pSSlY4TjBFelpKb0hNb2REWEhBVUdVUXg5cXlPRUVER3hrbUs4dDFQYmdiam9HL0dHdHhtOWc1dlB1eUd3UkhOcUhIYU1HVTZSRXprS05RbzFDblhINDd6elhEMGdYSERCUlJkZGNzbUhQdHlQUmk2ZjhQbVV6MldJejlGQnhpQllDZ0lrQ00wb1pGUElwcEJOOGNyMlhuM29VbjBvMWFmaWZDbk9qK0kwRjZlMU9HMTVhSCtoQkh1c0VGek14ZUdWQnE2SWFZaHBpR21Jb3dGVlRJaUtDVTVNSjl0c3NsRVBkNGJkdHVod3UxWTlJSkFkMEVMalJJc1RWMmVKS0ppcEs0UmdJQnlLUnVLeFpDS2R5bWJ5dVdJaFA1Q0dUb1pCam5FYStqMFAyRHBKR28veWsvbk1kVUR1WE8reTA2T083SUdJU1dRc3ZIbkdGbXQ4THg4YnA1a24zMC80cnF3OVFPTzJkMU0zN0MzSmZtSnlwY1FBVDdwTWFycVZzei9VSk81djAyUC9HdUdzRFpMOVpOeHNqOERuMUJGSmFrZUcwSzBJdURaZDI3MmE2aTJEWDczY25kNXQvL09GV0Z5blJGWkRvYTZCYUZMMHBscEdXM3NjU3RXT0RLSG8ydlNsb1ZlTkdtdlErRW54RDBtQllrQ05GZGtPRUhWaG1OK1pCRkxoRVNxZUxWcEpQT25vZVN1aEV1NGNmdUNKUDNLdXhRWVlUQ0xYY04xd1FoRWxTTTVBaTZ3UnBHbkVsbWFYNkFHUHBHQWpCa2pJUHZ1cGNWWC9URTl1am1kNGRtZUVGakd5UnUxM1Jxc0VzMnZPL3MxY1pXQkJMZHp1OHJNajYvSWk2elBpZWtQOElyWXgwc2hzbFh5S3hKNXRNayt4d0xOZDJ1ZU9oRVZ0cDJDelQ2clpMOUxobjhpQmJNNFdCMmZxVkNvZDR3QXF4QWpWdVhxbVVxc2NnYU1QejIvSHBtdFdPTGRJVS9EM01tZysxS3d0clhDbHpDbnZsRVo0Znl5eHB1MjdVcDBacy9reCtXejZKMzh6OWIwVGxLSEtQR1hYK3g4ZkFrTGhRd3huRUd3T2x5YzR1TzNOVTVQekxSQjJabVZWcWxyZ0gwOVllS0dzVUtBU3NSa0NSVjRJWnREMHpRSjlZUG56Y2dhMWFBcllySWV0Z09IRnNBQU9ySElZakpKeVRwbDVlTytISTVqZ1A1N0lBaHBlMFFhdmVXMExmUFFFRjN3Zlh2TkYzdzJrbGhnQUlLaFArbmNTSElEQWhjZjZVZEdMTWt3T2xSdDN1RGIyblBOdTlPQnBlWDNXbXcvQUYvTnlGVTlYQkdPTXNCUGFLZ242S3V6LzJ6aHpJU0NTektDdm9VYkpZN1RBTW10dHRjdEIxVTQ2NzZhSDZqVnFvMHRNWWtzRThZazBRWWxNZkpMRFMwTFNFUUJKaUFLUXUwalE5cHB4QkRHR2ZJcEQ2cmpwV200UEI4Yk5ENFV6NHhBMytzVXdIWU4vS2lRV1VneFpEVGtIK2FxemR3MEtJNUthQnBkL1FYdWdsNkIvV01JellobkROVXVBZUtkNkJoQWQvaDN2LzVFLzh4Zit4ai93NXlFTnVBM0VmOTAydnhQWkNRNTZBTXJaOG5teXgzdTBoOHZmejdWKzNwOTNtUExmKzIrZCt6OC8vVFMwM0RSdE1iOEQ0SG1WUy9Ob1BtMUROZS91dnUzNzd1MUJxbmJqeHZHNGMwOWk4VEFBVWtzVlNuK2hMREJXRG5ZMk1WRnhDVFh6aVUvNU5DcjI4MHlHOXZXanNCOEJsOEVuQkdLUlRDWHhDOTdxekdnWTNMcDFpNVVoeEFwTmJ1NVZmdDRsaFZWSVM2cVVFbEZsZFVUcThmUGlmT1pOY0xULytNMzM1ZXpmWEJtV1E3Q3djVGhTNlF5QXlXS0RIQzdQQnVJTFJXTDRteFQrcjZPRnY4aVdJNWRjSXgwOUF5TVRNd3NyR3pzSEp4YzNEeThmdjRDZ2tMQ0ltTGlFcEpTMGpLd2RGSTVFWS9GRU1wWE9aSFA1UXJGVXJsUnJqUkJUTG5XUUNsRUVveEZNa2xPcTFCcXRYaGluZVg4NG5zNlg2KzN1Y0xvVWZHTTJiKzRvcDJFRk96SXprdnUyUnhOdGVFbEtWZ3BTSGtXYXNqSWJVNVJkT1pqS0hNM3BuSThsZGJtZHAybElZejduWnpvSzJCUkYrT2hjUkNEVG1Ed3h1Vks5UFpSTi8rVHFBVTJrYzhWS3ZaV0RHODdLcHAvV0l6Wm9uYWliZmhPd3FPaVdseHpiN1BLcUhaN2R3TEZrSmwrcU50bzRlU0R4VkxaUXJqVjNkSWx3YUpwTDI2OWdmVmE4QVJ1OGthdlpuc3RhM29vM1pUTlh0dkl0WDJCVjIzSUt6K3F6L213K1JXZkgyWDMybjlKVGVRNmY0K2YwTVo4THgzS3VuaHZuNUloSTJoWksxaEU1bnJ3cmRnUkZUK0pJVS9hbFhBMWtYQS9sM0l3VTNJNlYzS1VHdk9FRjNXSUNETUk4bEZ1SVRZQnVKWUZ1STRWdUo0UHVJSWYrcFJ2MGJ3SFEvMUdnM1hsQ0tQMEUvYjlBNkM1QjBGWlF3UURNaFNFUWdncENxSGt3RklUQjBCQU93NEFJR0NaRXdyQWdDb1lOYWhnT1JNTndJUWFHQjdFd2ZOREEyRUFjZ2d1Q0FNRVp4bGtCakMwc2hyR0RKVEF1bHNMWVd3YmpZRG1NazBJWVR5dGdmSzJFa1ZvRkk3UWFSbVFOVElTMU1DcnJZRUt0aHdtekFXYXNqVEFKTnNIMHNCbW1weTB3aWJiQzZQd0ZrNklJSmxreFRIL2JZZnJaQVRQQVRwaUJkc0hrS29HK1l6Zk04UGpBT0xvSTQ4b0NJM0FaeHMxVkdDOTFNQjV1d0xpN0NlUHROb3lQdXpBUzkySDhQWVNSZVF3ajloVEd6M01ZaFhxWWJocGc1RjdEQkhnTEU2Z1JScWtKSnRoSG1IQ2ZZWUo4QjkxSkNUTmFDNWhJYldDaWRJQ0o5aHRNckU0d01ickFhQUpRVVFjQkV4Y2FNUEZoQXFaNzJJRFJ4aFF3U1RFSFRLOUFBRE1tbGpENldNT2tCZzZURmx1WTlOakRaQVVKdGZGa29yVHBaQVlOWXdnV0ppZDRtTjRod3ZRSkdXWm9LREJEUW9VWkZHZVlZYUhEREk0clROKzR3L3dSVDVnLzR3MHpJcjR3SStNSE15b0JNQm5waDhtSjkvMkZoSkJJUkR4bHlDQ0hBc285VmJrTS9abFFaOGhVMVRDdGtodmJISVdxcjdheGMzQnlOUnFxeTNqNWxQUHJld2o5OVNzaUtpWXVJU2tsUGZXcFZLWFdWbmtGUlNWbEZWVTFkUTFOTFcwZFhUMTlBME1qWXhNemN3dExLMnNiRUFTR1FHRndCQktGeG1CeGVBS1JSS1pRYVhRbWdBZ1R5ZzBBOEtOVW5NRmlmeWhYNjgxMnB4dEVTVllNUnBQWllyWFpIODkzVWM1dDJkTTkyL085V1AxZXJtR3Y5bnB2OW5idjFyajNhOXFIYndOcTl3V0J5UXdFREZsdkE0azI4VnhUOEIxNEd1ZjBBcFRFMXVtTWxLS1IzdVRuV3JSSDJTeUt0THBzdTUyR0R3ZHhOcllXM3lMMVZFK1Q2YTZMQ25PbXlCZ05hcEU5Wm84NFhZek5ET0xwdStaUDA4d1FMdGg4ZUM0QlNkTjhkYnFFZktTWWtDK3Vhck5nSnlXVFV4UDE3RUo4Uy9ReEVQTGhwdjFUSTNSTXBtR2JhQmJ5SmlMQ3o4NjI0VWhFSy9YUnpRM0I3cnF0YlBEdC9Kc1NaUytHYTF5UTlycURNNWdNNStteEtDblI2ZXo4OTlNamlkL3VpeFhZWWUrZkl4U0lvRmgzc2dlQUlHaWZWV2VMS3VxV1l3dERqdkhyRWROQ2NEbzg0TGYzQmRmcFV3cVZMUkcxR05vWk1CUjN0eDJjemNDTlVEbkNoM0wrWWpSaHVLTWMraEdJamwvVzRuWkc1OTM2MTRNSUhjblFKWnhyY25QeG8zYlo5REYzRjRsNWF0NEhaSXVRVkRCL0dKdWxjRG9qMzViMHFmbGJjN1dvcHMyUUQ3SFBxWTZyNS9pSmhhU0Nyb3p1Zm8vMjd1OFhqT3ZxMXlUb2l1cmUyK00xL2oxWWdSbWIyL3ZndjFYVDdVTnNjeFBNZXh3aTBPb1Q1Yks5QVJOSFhpY2hZeVRub3ltVThoVmFYSUdueWVFYVNxV09vTldWM2k5SEdtRWlwZ3o3aHozTkh0c1pnUTJCOWp3VURoemt2NWJndUN0cnNodi9uTElYWERncFEvcmdvTW1aa1RNNmdtVFBwRGs4UEZ2eDhTRVhTaU5acG9GR3lETkxnZFUzQXR3L1dsbnJ3ZkJod0dYaU4zQml1N3hoWWJ3TjFSY0Zuem1hY0hDK29kS1VhSmYrbU5ONjhwNTJ2Y1dXaEVtYUNaUDZOdjcyNEtTMzVPM3ZXQ0k1Y1BVNEtpODh2R2dzc1o4bGZLTE05QXptZURwUnNMSG5oZzBWRDErTlA0eHliN0VPT2duSkJWTkxzTkRGY2htN3BxL2M4MVdORm5pNHJseDl2Q21HbFgrazV0OGU4bjh6Y2ZpdGY2dS85U2xINElGZkNPcDlvOGFRTDZya0IrUTlxb2FkSkF6b01uY2w0SUxYOW5wUHFOOUE5V0JST0Y4R25RL20vQkdFdjRiaHIrR2IvY3FRQVVJMi8vOHlldmxoSS9DWHlRTmNEMEEvMXdJWWl3WXdnQUZHSWdEVXR5Z0l3RWgwM1FiY0l4K1RZRUF2RnNRbnZhSktmL2JrY0dyelBHL3lKYTMxUEw0bjdKaDdwZGY2b2wvSHVJMWgrU3lSNUk5VStXcUVGZm5JQnlPL2xFcHJSTlpwczVndG1GKzRLVGdiRm9NRnNXQ1dqS1ZuNGF6ZGVERGVHRzhORm9FUUNJTWlzQVJjQ0dVU0RBZ1FnaFZVQ0ZFaEJpU0NIRkFWVkErZElYL3cvY3gzOVUvdFU5d0YvUmYyci8yL3Z2K3l4cXhDQWtBdmhIWW5PbW5weis2WWNpSC9wRDZOK1pHTytoenBPZGZMdmRiSC9UcWdHclkzNnorQkV6d0owTEw0MnUwN2hMYWxzelo5K3k2ZDczK0Q4dU51aGdBLzBBRVlvRC9sUndqVU4zaFBNbnFMRUNqd3lkbi8zMVZCemNQZFZhVVNHeTFXWUpHRkxwdzU0Zi8vZXVhcDI5U09tQXg2R1ovTndxQUFLZ3J5Y3JMR0ZDbEU2bjdIUzdiMEIvSDFhb2RxVm94dVMrRzFWbDlYU2Q2QlBWTXNzb3ROYkdROWExaEpCOFcwcUw5L2N6ZnI4UGwxNGp2L09QSXdQYW9lV3grRkNMUzZLUzZjdCtCOUxZRzNTeWxhYStodWJKelQyUnl5eGE1L1dWZkY0ZC92K3I2RS9JajQxOHR2NnVOMWw2Q0huaEtiaWRWRERmT0hQMEYxK3ZDc3NNb21SWGJaWjYvOURqcmdrRElWeXF1K2E1aFUrNDQ1NFR2cGRNU3MwUlJtdHFudG41NnhxelhyNlR2WitDMWpORzRuRkNxZTQ2YnQ1TTRZYmViMnpiVHFjcWdUSnBpWHowcWR0Y2h3ZVR1YStEbTVLbzJ5ZEoxY0JaYjZLdzV4bk1sVHBsZFF1VlE0TStmVUpxcHZoT29GMzIveVFHMk8yYXNjWUpTV1dHMnhOVmJXMTJKdGJWMlk4emJYMVg5ZWJOZXMwcGhNeWQ1VXBzcWNIRXAxeWpnekdHRzlXZFlEK2w4UDBJZHN5OEx4ditEeUh2TUozVmp1bThTalJDMG1XRy95TzkzQW9FOG1LQVVoclZHeDlpSVRLcFdndHdTWjRCUmtZazlpcXR3ekJFZGpSeHVMbzdFTVZMRVlaMUtGeGZybUl0Sm81MWtZc3kybjJUdmRqaVBpdGRENGE0V0UwQWFaRUJSS3RFYU4rcUZlV2RIMWp2K3Z5SFJTZVhveWVETExWYmo0RkdvOFhvdEM0d1FCNmZnWmxvdWZvY1lKaE1pRWhrcmREMTFxaitpRkxzbm03Unp0aWlCUzA1RzF1dlhzUERvdnMrNFpFWitpTjQ2UEpxRE5mQW5QZlB4b2hicFdYd0t5N1QySlRuUUtlemh5Q3NSNHBMMDAwOEMvc2RFNGdTZ3lvVnNxWCtOb2Fwd2dFTWtpQURrRUFicStCWnJqd0VHZkE1ejdEUFQ3QktEYmg4aEgvd1FhQU9ER3FwcUh5ZDFrdjJVOVlDcVpUdGNYV2EzM3BJYVBJVG9CVzhWNTZGaHZkcUpBMFFISGJxL2RaUWVyUzR6SFp5VjNPbFd6U1VZQko3VHU1dlFPUzhwbWxHd0VzZ1pSYit5akxNN3N4TmNFa0swV3h1VFF4eXRJRkswT2VWQVZGTHozMnRzZ1NpdFV1OHQwOTdOVW1QamNtS1lnRXNQcUNZcHUxbkcwNHk1YkpCZE1xM01VRmJzUlZlSW1naE5VV0hrTUVoVTJaZ2VOb3hQM3FwT0g1cGt6TC9oOE9XTEVtSXNSaExqQnQzR2FvbmdiVHd1RUF2dGRDQlJjb2ZKQjFLeEhPVzkzSjZNS1Y0ejNJWWZNODNCR3dVNGhhZkp3Z1hqbnpPbFpPQ0JnYmM4NVRzOWNwejB4N3g4M25hemt1Vzh1OTJkWnNYL0JNTjRkWHNWRGZwWjRQNE5Ha3EyeWJLQ3lUTVhjOVNtdXlNTndGQ1U1QWxCZ3hHc1JveEZYVmFoV1BMU2ttY3pmbDdnUHRWeGpIT3JEenpVQ3lFUHRQell6WDU1RFlIRWhMT1NSWmxWb0xZYW42MTJrTHh5Y0FFdlYyZHFaVCtQREp0QVk4UFZnMW8zRCs2MGZtcDRQdW1MRGxxQ1RQNjdXQUgvVjVHcTJoRHpQWVJZOWpNVDBGYVphejJMTTh4SVFURklDWHozVVpWZ1RJVW5EZUpjcEkvNGhWRUxZdWRCSlFPNTJUR2FJaUpDa0Y0cGp5UjZxby9Ta3h5Nzh1RlJZRVNFcFFmYlZ5ay9CLytVVGdNaEVkSi9DM1FiT3pld3dZS3lVZ2V6UVdVY1NvdlM2VEpmV0pmdWhPbVBGV1ZZNWMyWGNMZ1RwREx2ZFltd2tRUFZKdFdGaFhyLzFGSi9rSWcrYmlIcjFRaTh2V0FTVVNZZ0wwa2lRU29saGpsekVpQWdONERuQ0czMXZPeVV4QUJJeTZCZ29sN3BPQWRGbGhQMXI4ekZnajQ5NTJjdnpaNDJWWkpNdi82K2ZPdTdjbjUzMGlHdWZodFJqUUsrRDlzcEIyUU1EOE81amxDaGVPdkZrZ1FJRlJ5TGUyOWxTdHp1cWlEdmhod2owVGlaKzhyUW9rcTB5RUhBek9rcm5YalJwSXdvOTV6SXdpRlFPZW15N1J6MlVaWjVuTEdobGlTRHgyR2hYQlhXK1I1Ykg3UnozdDN4aitGWGpaWjlXdGF2L2JML0NZNFhoYm5CLzZmWUgremlaNjRzeng0OVFwT2o1a2UzeDhUM21pUHoyUkdhcFEyVGpXME5UMDJYbHJtbkNNY3RIMXRFNjQ4dXExVFdQRXhyanpsY2VsYjhNNXB0YnRkWmxlTWtKUDYvZkYwWDlJcUh3UjIwTUFpMlhkbzMzTTdubFdONnpqRzlFdkFvc0w2aWJqRFBmU3JwVUNFL1ZCVWVTRTZ2TTRrOXVkT3pwTWk0VlNFdGFJWHFONG91SVRVQThkTkJSR1YwaklSVlN4UjByb0lVT1JoaUJrdHFaWUR0NVd5YnRUUVhhUjRBUW41THNYcVNqTXNKSXFDR0pWaHNzUkcydHRHbEI1SUdvSFpWUmpMRWd6RDBiSXFWVkVqRFRjOEJOdGtON3d4MXZUWHR2YittZWJyelRvOE90bjJhcS83UER6NVY1RGl6MitWaTR6RFBhVlp1TTV4ZGtqb0Q2ZTR6UE9abEFvRGtNNVFhT0dGVVZBRlMzemJuZ0orK3lsY3ZLSW53S0NRdExSSmsrbExpMmxKVnNpVC9XOGV2cWxPcDRqVXoxKzlRMG5lY0NCdEtWZmxIcTY4YlNIMnJsd01LYitVV1BvdEhuMmZPU2VaUnlMTEx3ejhXSGFGY01lc2JuQXZWS1FWZGNlTkVMTHBKYm1nRE1Fb3JDaTltMUJMYU1PNHMrc3pCYnhGcktrMThIbGdsUzQwRU1DTWE5L3NHZm4veExMNTZCZmpoK2M4QllJUWZ5b0Fla2tWbnhzNkFQNlBaQSszKytRNzMzdTkzemdYU01oZHduaHdmV0plKzZsRXlpdTBEOXkrL1BPQWtnK3MvSDltNEVYcHkwNnRaazdCSEo5TEJGMHdCMVFsRk96SWxDRUFVUGxvZHVNZDBFTnp3UDY2ZGQvVHdiTmdjRXRtTndHSUp0djR2QUh3UWpmaCs2K1lTWUFUYjFlQytMZVhDS3pMcXowdzMydktlWE0wQnl3Z2NSZ0xqQjVlRWFXQ0lya3Myalk1V1g3YUxyV2JqSERtdVBjdXpxcFZWNW9pRmhuUUxHNDBPM25vcld5OXhLSFhTRVhWZkpvcHZqVzBoTUFVWHYwaXhhR2RUcWYzeEw5ajBmQWRGOEVGeHZNSFZuSEpzMC9QdnN0cmZHR21lY2Q5NnlWQ3drQkFLRHZhUW93ZUo1ZHJZUk43RDlCdnNVU2NwcjdaR2d3d2dKTjNBSVJyeTIyZWEyY1Y1YThOV2pUZTBBNEt5NzJtSmdqNDdlc0Z4R1V4SmtOUHF0b1ZXNVIxZ20zZFdlSlpMVUZKVUtZYXB3MC80eWtGZzNuWm9QaDZBeTRVb1VyZFV4VXFrVHMydlZiQmFYalU5ZWQ5Q21sZE1FdGNmWm1LRHI5Q1ByRnZKd0s5cm4ybTF2U0p2eXlUMEpMVXNlTG12OFI1L1R0SWc2cVQ4Y29JdTI3Wk5tbFIycUE5UEpqMmlBSlVxT1d6OEZaS1ZxZkFWcEtnQmtWYXBoMFBuUmNVM0pFN2gySmlUZGFMalNnQzJORWZaNUp2K3JJcC82Sm9OcW1WcnNQZXhUWE5Kc2gvcVVjSWNTN3RNc2wzUHNlY2hsRmU4dkZBMzFhaU1TVXdML3dhRXA5Y0I3ZkN3R21acmV4OVpXa0pvRDhYaVp4cTFuMFlsRVplVXRlWnNtVzJ5aU5xYmJVYXpONDd5WWZFN01PSFhVYUxQV2pFcG5Pb0ZjT01wcUxVdHdpVUdWcDRYVzR0UHduSXJUQ2hWeUlHVVN4dXQ1M0hSMzlmbGE3Vk9FekRXRVF1a0plYkk0M3ROTEZab1NlakRUZTFUb3ZYUTZXcml6Z2F0NHhXQmRpTktSdEJCVjg4STNsVm9GaldLOWlFM0tWVkpKZHg0TCtJZ1loaVdUVURzMnhqVGFhR1d5U3hMSGZEazBCOUdaQm1SSkxEVnpVVGxaR1ZJSUZuSWc0d1pFMXc2cTJkVVd1VXF5UUx1anBqQ0tlMG96NUI5RnphNWQwOVJRa2JzdkhVdUNFV1JQK0x2Y2pCWGI3NkZueHplRjlDMFc0Q2xDQ3lGZ2N4UFZaTFFXeFRHK0xUTlN5Q0lLeng2UUN4cGU4RUl1MWt1YUlVOFJGaVFMMGxYd1ZjSlQxTlUwV2FBbGhBa3BiakczV29uQmNnNGhTQVpuT2duckFrNUs3R0ZnYUtyWUc4NUpTTEdyN3NrVlVkb1BIRmI2eHo4QzR1V3lFUjE0S1ZtWHpGdHVpeFp2RVYreTd3bjIxcmQyWWU5cTZYbnFkazlERHRnOEJjYlI1aHlEbndJcmtTeldFTWRhUzJ0RFZqWjgzaGs3VFpCSk5oVmQzNTEzVWJjdU5Md0RsZ2kwQjZiQW1yVWlnUmRUa0JBVStvcmVIVTVQYS81eEVHMjQrVEJKUThLR0NRY0IxblYrUktJNzFLcVFtb0pCTE45RXY5OXJhanQ4cVRtbEd1eFF3MFhPcjM3U1VuTDJ4UjFESGI4MUx5YURBNTAzK29pTnJYajNVN21RWEpUTVBtM2w5OUFkSWJsS1o1M3lNM3BucU1mTDg1MGlPUkoxbXpyNzNFRWtwVStKWlJZSmczdnNNRXU4bDJPU0RFMG9SOENiM3ZiOHZidXRZNWQvMUJsSjZUaUo5bWQyL0Y4cXVxL2EwQnhZZXM1a294UlR2UFh6YmZ4L1dTd054cVVUbzZxVjVKaXFIbEoxeUNoSTVGS0VtS1ZsT1ZKNEYrMWdMSnpCOGYybUwrblduV3phS2NuMzN4bXJ3SnE2L2FkQkRYWkVKOXFubmJDU2docFo3REMwYWtoVnFHRnlzdVpwcTd4RVFxNlFkUTRUNVVwZWpNRUlZbXlIaUdYRTVjZHJTcC9uTlZPdUJjbm1yRGRPbW1CSmlYUDdNUkttYWIzM3ZCbC9ZQWVSaU1vam4zczI0SjlUakVTMWgwbmxXRnNxMTQ2aDJSdzREdVZDOG1qRUZIM2haa1JpTVZ1OXl3aE1lMkhkWi9MUDlwdURiemdleGdpOWRLWjZHdDN6VmZ0UDE3MlVhdWJmL3FCeXFlNytZdzhMM3l2Qi8ydlc2SE1TR0tYSS9ZdEk2OEdIRzBHaEVHVkwxd2R6SUY4U2dhRHI5bTNQNk0xVGZmc2JxVnNhTVEzZlJ4VkZFZW0veWxhdWJqcmZVSFZoT04zVk9HbHpic3ZYN0NXVldWdHFIa3Y1MFc4Um1ybEpZRFRoVTF5dTR1MkovM1lJNjNhd2dXWlVqZTNXWStBalRnQXh2ejZjQkx5M0RJUXNrWkp1UjBrNHJIRXM3V2NNcjFLTjVlTDlvV1ljRHo4VFE4TWxJaGQyendHT3ZpbW9sVWNpOGhxUzFGNjJXVGNzRXBHTVNsdCsyQjVXQncyaVZSZ20rUmI1L3lwalRZT21oVzRTNmx0alNLMHpCbmhGU3Rpdkd5NFdjb0s3ZUtwMzhGUEp0S3VGU1BjZzRhMnJJL2VzYmJ2anpxeGRBYVREYnphT3ZrYVZDbEVoQm9HYWpQc2NVNEd4d1dzZGdza1I0dEF1WWhYMmM0aTdXK2ZvZFdEOWQ0dXc3dnl3L0EzZG1rbFVSQ3gvVko3NThwZ1V6MjBLa2FuWmlpT3JjcGcxQ1d5bWxoeC9wWHVLOU1nS0E5RXpSekRTdG91dWpZRGY5RzY1WkQzNi96SjFLKzgwb1hTb3FFbWxSTmRQUlhrQVN0dzE3KzBsTmFQaDJnUHY0Unlwcjd4QkNoVEkzSUlVSDR0Rnd0d3MyOGpuaVVDRG0rdkY3aDFQZnBHcm16U0dmZHVna2Q3TFJrclZUZHV4VTZRMnNNcUZWRTRCRGYxZ3N3VFcySnpTcDFrTkRSMEJrNFEzOW1oTFBRVWF2MzFrRkNGRmc2K1FmblZXWjN3QUdBRVdmcUNHay9zUERzU0F4bDFIb3VrU25ZMEVWT2hHS3ZKN0ZpVlM1MVlSQWdGYkluMEFURjRoTEI5ZUFDTHJGd1B2QWpGM1hiOHZSL2d1R1RIZ3JycVExZTkwcE03T29FNnVKYmlpNS81Ky96ZVQvSzNScDQ2WXYvc255SDE3YTB2M2JZV1BYMnBBcUpJQkpjYjl1QTVPS0JkVkRIaDBsS1RPWEU4Q2FPWmxOVVZSd2drUWQxUWl2ZWRvTmpxZUtXdzBzTGZ6cXBIbURtNnUrV3MyR0t6eTFmdXFEbEQyc2c5ay9pNGZZbXp3bUxtUyt1L2c4dFdrbVJkWEhmWG1nVGM0bXRIcXFHSFFBbWhMdW84enYxdTRoMjVGaGQ0N052Z1ZlMFJqbWxjNDljdWRjdklrUzdHTTVraUdBc0NGN1JJUkE1NXZENkpLVURJMDNTR2ZuTWQ5NU1CQU43b09hcXQ1UE9pRVJuNEJudkN4R2hrdy8vWnJUWWZmbjRYODlJUWlGN1J5eW1NSjNUNFRvajU4eXZYaEF3d3VONnVmYkVtdHlWVTVQZTdRODBkWlU3WG04UG9XaHYwWlp2S2NMekQ3enB1N01OMzIxZng4eWpEazB3WGRYSXk5dWU0dFhxdUIxeXBFRSsybkxyMmpFRldVTHk1VVlVS254WXEvQ05YN0hsNzlkb0J3bTVkZHVDNGpPVExmWXgwbGJ6Ky9ONDUwN3RIcUExNDVHYmxtekNkUm0wSjgvY0U4VHp2MFZ5SnNEQ1VyN0pvempMUmZHVE5FeEdIV1ZDd1ZJeW1ZekFRV2wxRXBjSm8xYnk1a0pIcWR0ZnZNcE16SURnZC9PcGJTK3MxR2ZQdzJia0pMNFhXTTRzeThybHBFOU85S3d2cEs2dGVoR0lhdXkxbUZBcXJVd3Z2YUs2dUJrSi84MW5wNVhaMVBOcytUWEYzaFg5QVV3eDZQMHpFdnhqUmNHWHhCWjNsR1hmeGtUbnNSdnJqODA1VkNoNUs4M1ZiRmhLUXppVHVhUTA5aEJ0UFpoZUt0L1d1em02NmtzL1lHZUttWkZER3pvUXd0YWZIdHBGbmsyUlVuVklQK21rL2xlQ1BuNmZVQzdjVHhsWWlpa2p4dCtCd005ajNkNjFZTFFVWXRCYzdZeWtpZnBPaDVYcStHVklrK0Yxa294VWZyVUtNdkFkbVlXQkgyV0tuYXRMZ0NjdnI4TUdwbFB2SVJDVS9ydHZ1MTlhSmJ6QXI5eGxUOFd3ejdTSlFuUTF6NVhVYVRxakhHdHJSNG1RaXdub3pPQ2RsaWIxSXJ0MUdYMXM2QXZDc0phOXhMZkQ0bERqeE1YTFJYU1BqWW9mamNLMm9RM3ExbGRLeU12K2ZEeE9UK29VNXVoWUVyUjlGMnpYanY2bEZYTjhtVFdHT0hnMGd2ZFpLeWsvVzFVUWlmdUVuK1BVSExsWkduWTBPSytCTllFbVRxU1FxUkNPSC96U3o0MDV6RDIzMGhHSEVKZmVIR3d5dnUrcVhDZWkzdUpoZ2J3Y0dPSDRLS3BYMis2TDhhRWNxbTRxS1pwRmdaM21wVXFZaTJ5YU1WRktMS0dRbjBhazZrWklvb3FDdWxTLzExcTQ2UTlVTGFZdXJiUzFpcjVMKzBudUxCcVBZTW1iU2U2UEo2S3NWNkFhM1h4V0dyVlNsL2wzRCtXOUg2QzJweTBEYzVoZkFyWW11ZGJnUkRWVzk4Q1BxcnJHL0xLeTVraHlLY3NnaFN3YXRyb0pUZUpTRWdJZTF4aGlybDM1RTcwQlU2ZU5PVVNiSHVyMEU2SGRjT3l3NWVVLzJjbHQ3anIxS3RxWGRkeWZ5SDR6TUlSZ1lObm5xOGRIZ3JuSHl0bFg0cWx2T2J6UDZsdS9IOHpJbnNuOGZvbHFOcHJESklnZ2k5VjZkZEtzaVQ0R0JjOXVJMWxhVjhVREhFVlA1a1dSRUt4VHdRZEs4b084RThLaXVMTTBaS1IvZVBlVlZkd3FaNGdUY1RLRXR0T0duZm1DZXRMd3RnV2pHMTdXRHY1WlkyRzRsM010U2N1MXV1QUpQVllaTnRXekg0T3hTYmRZeU5DL3JIRFU5ZE5udXUvSFNHRTF0RHRmZnB6ODQzeVZ1WmQ2YTFZYU5mMjJGSllhNmoxc3lJUjgwWVRqVnV0ajQ3b21Eck1PdWNJYkZ4TXUyaGxoQ0Z5TFBWcFRlc0NyeG16ZGkyaDczazhiSTRyeW1KR1FnUHpYNEtpNEF2T2Z6V3lpMityelZNWnhvdzJlQU5pSVNWYUtlVzNMY251Rmw4MnhYV1RRa0xuN2p5VWIrclphTDlzOHdnRWdscm82a3A2bWltSXlYcm1yV09LVUVKazhJSDk2ZmxWUHNpaTV0a25XQ3A1NWkvenpRb3JMamlIMUtlU1M2RHc4Nlg1RFZKNml2RURZaGlDYk5MS3ladnNGM0tlamdPQm54bUs5ZVQ5bndNMzdiY1JBblAvN0luQnRWYWZONUNuS0NtaDJTelBCNVp1T0lGMXBSMHlHalNpTVZLVERmR1FQMStKa21kdVVQNDhoSkwxLytsZkRwNnpyZjl1eTNWYVVhOXlEMSszVXM2NzdSbzUxSXVGcTlwb2l5dVRTeHF2MGtDNlpIb1JzWXFhOFgxdERDeERTN2U3OE1nVzVoQm41aVo1bFREdUMwRGw2MmQzb2xremYycHI5djFESXZpdisyTUtsSjJnTDliWTl4T00vdE8zdW1vVEViYkp5OTNkWnhxczhuQXVlaWF0MVBrcTZPVmVMWmNSdUtDU0dZZXN1TjZVbk8wZ0JPQlZtK3g5aDRxQzdOMnFvSHZ6SWJOWE9qWExpYWNtM0NPTUtMWmFOc2J1RnoyRHJXRC9SMUUzbUc1WXRqTDRhMHVIWjh5TzZkM0NEQkd2UG5qbVM3ejhYODdya2ZwYlczM1d0R3haaHExRlFmU1hWbXY4WkkveEtDdW9WdDBDQzg5cy9tWG1mb3NIUmZkcmx2USswU1VlMVBWZno3MXlHcVpFVmVtUzI5VzM5SFczTG9kbUVHeTRMelFVRTFoRWNnYmlWemFaeSt3Y29WUVk5eXUyMVArNHd6eStUQnpaaGVsVi9DM3RSMlBwc0E4RFFXTmZPUW12T05WZis5SjZjampocFZmbmYvbEVIL0dFTEhyQ3JrRTVaNU52MStrWWtJMmZ1d2NtL0crRktoWDFYbXFTTTlYNXJlSWpCUDdxcUZNYkMxcEl1SDgwSFZxSGJkbVBueUcxd3ErZ1pPZis4eUZlYXBEZWt5clFqcXRoMkhiMWlWcDlaUW1OTXI1a2ZzblVFSVYxQm0veDFSWnU0VU9ZeXZQN281S0VKSkxUVHMrMDNaZW50VzhjUW1tNEFYamZUbUlrVlFQVGhHRVdzZmNkN0FsZS9yUzR6blpaYWZ5S0FSN0VyME4zNURrYVdYdVhHdlRaZG9walJhYlZjQ05JVUVwdGFmVHNqaVVXVXZ0TXJHNWJYeVVmYlo0bUt4QVBERHdOK000WDI5dldwYStjV01udytGdWtKTGJmU1duakk2UmIydjlqazhJQ3YyR0JUOWIyRFdySStyTERKRldxTEdNN3YxQWJXdFZubGdxdTFreER4dTc5UCtQOWxUd2M5R01naWREWm1IMUZIb3NhbVRZZzZTWGxBaDJzNmtxelBodGxvN3FCSWN6cXdYTnE0cGFXbXVCTk45VlU3YkkySTM2blhlazFvL3M3OFhTVW9PNm56Z3FFU1ZPdGlnbVRZTk1KR3RuajFoc0FrOHM4WSs5NW5UZXlxbnFCVFcrQk02NGxFdDJ1ck9KR2wwcGlkeCtPRzFLN1NwWnp6VHBlTkpRQ2NvZGZEU3Jkc2pmQjdmbDVPc3RIR0t4UU5NUGlzczdIUjMreDB2M3N2bURUdjAxTXZxcE43YmE5U09lOCtzOXhhZE9tNjQ1Q3RxdXlJSk1IODNIVW1abGtrM3N1MWtydUR3bXdrVjJyaGxiQml0TlJtU3dQbHQ4NjVGZTV2RzY2eHJ6RnpPcGcxK1J2TmhTL1U5VG5JM05QTWwrTlRndnJBdzBPUHpqSHN6NVFzSzZFZytpL3dNeDdsblZjQy9PS3psYjBCYU5yai9UL0Z5YzMzWUM2WFlSczFxUC81d1V6bUE0Y2VkQVBhVnl4Q3FKcTNGb2FNeXNKZEE0L0JHMjNWZnc4UitQZy9Pb2FoTmFJWCtCUllMU25jVEwzRU1xQ3M0b2pDKzAreExZWXE5SFJDU2owWGZwSGJtaEpwTGc5Vit5YlJ0NlZUQ2dhdVNrSlp0ZGprM2dKQmh4MVIwRVFKWXFXR2VORFc4YXBuM3FzZXp5ZzJQZHovYW45azdzN2hrVzJqN2x4WEIycHp1SWVkcERDRzVkSzZ6MjE0TllCelViUFJvODVTTy9SQ2xzUTh4aCsvSlZUdnpWS2hFejNrNFJpYko1dGRVU0lZMmdKT1NidWtncDhiY05XZXRlKy85UzM0VVJOZ2dLa2VoOHIwUTZXSmZwSkp4RDlSV2w4ZUVlaHRZZzQyVjY1d0ZhR3RzYzFFcy90U056eUpmbEFwWUxkNXVPMDdjKysxeXE1OUd6UWR2TWxKK05aQWJYZGozcWRQSy9Pc0k5UUhmMDRQaVB2Z2NFeFpueGl5QW5jZWIrem9vcm5mcGsxNXkvaEpPS1N1U3lwWEljRE5hQXMrYm9EOVJ3ZUM3OHRLMVVpRUx5cHFmejJZVGNROXpWbEtuZVlMOUVDMkRocXFhcE5NdmxRYzNTOHRWV0tDeXRJSXZGN0ZsK1lUdGw3cEdUSWhVYmozUnVhNVJWSisvMEZ4MXhjalYyQisrUFVZaE4xN0Y3Ykh4RFRaRHhsSS9XT2t5NWg1ZStPZWpRUEZzbmJwZjh0VEhhMXcvODdSWWs5ZzNhZjQrOXY0cUI2N1lBWk5PSjN2Y3ROelF2TWN3MC9WSlc5WU04MStRRzJWZzNzR3diUlRDay9XN1BZUjZkYlNlNEVlUjgzOE1XRHhkNTRuekJVU2YxK2h6V3hmUkY1eXhaWk9iU2NrdWFNNTUzNjJpbUFHM1JCQWJ6b2RyT3MxQlNTczRmeFhEWjhnbDZwOThlUGhqeEtkMlBBTGFmRHhMU0ZEYVRnakZadTUwUFRkYWdBVUJXdmFkRW5jbVNWYTlCbG85KysrWUFlZ0xETC9pVXVScUFJVnRZdHlwL1ZocUVhK1FlamF2S2ZMTnJQT0hWQ2N1eHZyNk9HaFNSSFRjcjhWN3luSzRNalF6QlEzdlc5NjZVcmd3ZXFZZEo1L3JTYmsvL0dCeDBWeGNrTTRTM2pVTndjMWhrb29wVXpPTnpGem5GWEJYSmw0WjNpTXZ2ZWZYWC9hQ3BaYkd2NkdiMmtoYWFYRXl2ODZYMTU0RHF6RHJZVjZTRmt6NlVvR2pVeW9lRStHcFpWZ0VhanJlNVhUNEpwZytrSi9XTHVpcFoyUzJNbzBNQ0xwbEx0ajZrSitGS3JjUVM1UUd6enFXMENGKy8wdVBpVjZxSEVOdlR0eVMvRTJXaWtSZ2RYMHVTMFlYQTBqMUNzUWcvRjhka0N3eXNBS01RZFNtUFNYYkdzUzc1WnU2TXlVeGFYbEV4SjAweVZlY3B5NlJCVWVtSE9UbHo3K0l6QjhsZC9PYVdQWkdIYWh6aWtwOHFxK2NtejJYN2ZVVmVYcFFUTzczRUpZZnk3VDdsMFBVV1I3eEtGSjYwR0h1a3kydnR5WVA3SzNaWHgxYkhRd0xQR042SW5NQTdodjFUMCtSNWljT0pzS00zMFBmeEpIU29VS1doVGE5czdSVDY3aWxNUVNmSzVSUlVvWnhXZWx0QkI5RStMNzRJU1RWeVVrSFYzdTdoSDFZM2R5bU1Kdk9BcWQ1aEdiM3p1UE91Rzh5YXNxSVMrTG82SXZBZ3c0UGxNUGx4cDBzT21XOFRUbjV3WUp3cUxwbXc3azN5VkVDUVFsTDRRRVlVT1ljaEVQVTNJbGI1eDVaS0NLMUZScWpqS2tTTWpEN1BHSUxLT0oyNldsNTZ4eks2WUJYK2d3dEVhanIrSUdSK1llb0wxMjZYZnhpUWtVWFVrZjRQWHNUeWZGU3luYjNmY0dCdmIzbDhuSmUxbitna1A2ZnZwRTRvbXNhbjQ5VGxwRGJKUmtDUTFRYWJIZU9FNUYyWnBnelhQL0ZyYjE1RVduVXRhZndoTGJTOUovbFFKY2pRczl3aHNubld5MnJtVzJMWmtDNXBrMDZoZHg1c3V4QlZ5K01LaGt4M05seUM1dE9GNXN2VXN2aVU3RFBsUHhPUnpOMkg5S01qV3d6clRzNEFSQm1CcnhiUjIyS3c2aDU5eFdWM0l3NEZDL1NUWDJnOGJsWjRXSlpUZlg0aU9ZZUpxWE9XcXdXZW9tUytxNmxQazl3VU5lNHFGcEQvMGZsc29IS2xiS3dlYVhyMjZsb0ZJRjRHMWpmY2g2Mi9KRlRGZXFTSmpNMXF1OWJpbW1nWWxTTWFDNTNQTUdXcjRRbGlJa0dJZ1F4c2d6OU1BZE9RMFJLTkVJL1RSS01SZEJiYmtQQVgyaU9Kb1V0SEhhYzk2VG54QVZuQXhhcjNzTTB5M2NmZzV0ZmUyMHZObHcrNTByamdwRUd3OWpZVTZuSGNMR3Z5NVJ3TG9lbVRjaDlxa0N4UHM3QVpqRnA1U09yRENmbmRmd3A4NE9LUC9WbHBIR1B1UGZ2WXliMGQzRHhoK256TC9uaHcyUitHZitzU3AxNG1mc1ovbTg2dFBuZ0lJOXZUbzFibmpkMW9CMjUxNFZxc3RHVWNWaEFUUzVQdnpyclZRaHdVb3VvWDRaZWJVTFViMFUyN2QwYmRnSkFpVmdyU3lKSmRmVTRZbE1wc0tjM0t1aGFzQldtZEdVbFpkNkFvYVBMck84Z0FrbkdJNEdhdXpKRXpITVo2c2haazdVeWVHenlTMmxzOGlRK2FZcUZyNlBIa3ZlOWFpc0tDVC9nVTlVR3dMZ0pSQkxSODlXMThVMWgrZzg1SUNlTlF2cXFYOFgxbi9Ja2MzUDNSVDlQSytsTTJUSTNzK3FIdFNRcE1oT2xZMSs3MFoxMktSckZLaTUvTEdHNXU1T2pnUWE5WGJqSGVtUkU2bHZBMjR6NzFnY29OYjhsTXZrK1hMMlV3ZXZsMm9kMDV2Rll4WmhkZGZRejk1YmJJeVFJUDRzVG9QMmpiT1d4cXg4ZGVsdGF1aEZZZHpsZE8ySVAwVGtrWEFxekdwMGRMMEIrQ3JZUWcwTFcxRTF2VzZ4K3RFcFhXUDlEcWEyZ3RNN2RrNUVWWTBHVXo1RmJzZ1F0YjJuMzBQRnVIUVBZeEJqUERuMjRlb2pJR1Y2Q0NXUytadTVlTWtGdHdXUzdDdTRZRHlnNlpqK3hXeGNUUWFsdGFmZHJNN0hHWHdmUzhwaFFocWZIN2luUU1lcWhsaG50NXA5c1B2Zkx0NEdMSVA4MmpiK3ZwK09oVzJ6b0NCK2VhVElBdEVaNUdBdk1LZGJpUnNoc3FEa0VSYlZPMm1oc2ovSTgzdVdmSU9qVnRxcHh3S1VmNmZnaWF0cGdhckRpd1BmQ2RXZGN2dXNQK1NGYUZ3WnIycHJwZXBQVW9KZm5MQkE3SUcrM2FaM2oxeFJsa04xWDJHazNJR2VpU3dNV2dMZlZ0VnUxRDJMYXJIemtlWmFsaktVN1I2NzZRMlRiM1FOdGg2VXhZVXk4TTcxUVNyRmRNQnVXMUdhbXJ4QkhJQ1pNcU94aVZsVjF5ang3WVdQOW9xZDlzVGxzMUpndS95QzErY1Noczh3bkxNem9wQnVNWVdCQmorSWpkaW0rNG9ucEpCR0pHNjA5RXpEaUZiSlUvREhacDU5dWRoV3RpZFJ6am1MNXZ6MFBOKzVQalpLZzVJc01aUzFuK2M4eUhRdEFxcm1OMXpUc25Nd1JuS1owcFpEVDR5ODVrQmUyVVBNdWorSlBNdDEvVklhb09tbkcrUi9heHZlZzE3YlF1U3pFdFhTVXNmRytvZXM2djl4Qmd5RjNBcjRHSWo0U3Z6U0NRTVc0ZUVhVDJNb1dpbXM1U0FrenRCOTlEaEcrTjNOZUlHRDFoRUxCQ0Zad1BUUVhzRlgxUEpxMW1hbkcrOTRHUzc3SndnQWt2a1Fqdmw2WXFhaVdKK2VMbHJ1dHZMV2NEOU05SU8zWWtSQ2dzYVVpbmkvZmtFbk5UWng3czBiWnVMMUZnOW1ac3p1b1BMbEF2THRqSS9GN1NuVXRQVGRwK3RzRnBlQ3QvK0xXaG9ENk9GSTF0S0hIY3NDbGhQZUFDemh2WlduZGZqc3ZhTUVWeXZUY3ZjdTh2enFWcWhaZVJLQU9DcTZsVEhPUW1xZGk0WTJObW1nNmJicEE5cEtaWFhFK3Z2dkVkSDJHNkFSWlEyYkFWTmc1dGoyU3FjK0dsdVlIYlNicXJoRmpFcnN3NTRFZEdpVUREUEhnZEdnWXlRbHRPZjZ1eHB4T3F6cCt3WGhOVi9uYXhzOXlGbTVGNis1RmlkZGh2R3VVTHZFRVFma0lzbGtHaWNWeUhwOVJWRmdSN2VBVm85NnY4TW5aMGpJQjVRbTI4aFpxaENLQVpFZFpYZmduQ0RBcGJRZUVsRG1TaE5SRXB2bHVEdjdvVzNHTkF2dE4yR25oL1FsYTRFMTRORldFZU1FaHMyWk5jZkRIZ09qSy9ra1MzdzBQdWZNTk41dkg0YXQwbm50dnZ1MDM1clpjdXo4WVhoNWZOOXNBdnpJeGVwU2pzMlZLM1FMRnhVajhFTHhRdW5xeXNpQUdRUUptelVuSFB0TElGbkNkbGVrMzNpTCtnaFp5QW5FSkJKVWk1dW80bXRmRTFLdDVrbDIwNWRNSU9YUkZYYS9wazFNWHVuTGZvWGVORkVKYXpVZDJNQXc1cXpsNFVPT0VxaWIxcUF4QnFFbUozMTF3ditrdjBDZ2RkMEdReGRGVU5MSzJXaU5xcktMTXdjcDFadk05RVR1cTJZd2xnOUFBQjhldGhVSGp6Rm5wS2E5elhJMHFxK3BxOS94S3lkRHNCYlNJdzZsQkdldXJmckF6WFdsWHQwN1huNUtrWmk0eTFic2FrQ1N6emdoQStJWnFOSWdoaE03QUdoQ0dCb09yWWlmejErZGZXemVqTXNKL1BBUytBVGlYdUp6enJLYzR0T3YyQ2FMb2krYlRNU0hiSXNMdVZqTUViS2VMNkdUMFo0T01rVFhKSm90Wm5VYkpoK2pwVngvakc4eEJZc1JHNnRQSG45NjNzNjVrbDBCSytxQm1uc2orUWNKZ255SVJTQlhsZmkwV3VaakVjbG5FQTdaL0U0SnNDeC9KYll4ek1DRFpNSm9Gc0w4ZWc1dUtJK25XaVJDd1VKdFQrTlJTNjJOTTM1angrUHdXRlFSaWR4OFBvRUIzalJac0tZRmg1ZjVFODdDNzFmSzMvVGNoOWNVNUlmc3Jjdm4xNE01ZlByMVdYU2NNVVZBbDdsTHdYdGtnZkUvbWVFZ2xrV1JGbHpZVnRwQVFMRlVGTnM2dzNLd0Qvb3ZiNlJlSlRJaVBuSVN2eThDY2IxcTAwWDRTOTY3czkxVWw3d1laMnVmOG54NjZVeEdiTzk5eU5TQThpcFVIc1hGNGVhMTRMV3F5bEZ3ak56VjJ1MHd6MU1tZDczM0xuK0haY0h1NEl6c1VVNFRtREx2YnNMajNpZEVyMURkbmorN2ZhSnoxVUtjN0p3UmFmK2loN0FKY1RNbnNJRXRqU0FGRFFieVRFa29UVkVkWlFVRVpLYVRDa2xlYkt3Qk5pWDNCRzJwZFNtdTRQUlR3M053MFJKUE1GWkdvd0w0M016ZE4rUDFuQS85K1kvYmxwSXpEMzRmTEl3STNEUlZNQUU1ODVmUkxFSVVTb1FQVXlwUkd2YlovaDVqa3ZDekh5a2hERm9vSTlTb2o2WlUvVjlMbmdXWjgzM3Q2TVF6cjJEK1B0Q3Ivcmh0SFdESmVpK3ZkYzRjQ0ZKUUh5SGFKZHBzTmp6NE5DelBncG1FYm90Nm1qVkluRWw0L3hwTmRMQ09lam1McmlIem1GTEdncVlockZPQzNwank0UXY5OTNSWnBidTY3YUovTlN3SVhDbjRuZ2hOVjZDOWFxR0dEUmNnSklLVDlGbU5PZ090NFRvTm5iZU45RmVzaG9EOTB4bG1EdlJCMmFkR1pQOXcvVGdvSDJrK3BqK2pxWGQxaTUrcUViaElCTXkwdmlhQVdFYU5NY3dnTEhsSXoxdUMwbWh5enJ2MEtCNmtLbTBlVXhNeUJsTmdiRHhwV2pIcWVmRmlQQ3E2aUp0VUhaWlJjLzVTVEJKakVaL1dONGNqSEFEcXJoY2t3VHB5bVZjUnFtZ2N2VlVOejk5MHJReDBDM1NRSTVUdkdSSlRXU3BTN09yZExDeXNQZmJJdXpMM090WmRTVEZqU2tsakNxVllSUlN4VlBtOVRLMjBjTWRMNm03S1BYVkxpUm9sN2U4emdTS2ZtcFdhdHZmV1ZSdTBLY1U0Z3V5amxqZHR4RTFxOG54WUtONC9oaXV2T3c3TGZzOGRGcGpzWVpPUFQ5LzVNYkR1VDZ1NzM0SzdnZEdFbzJIWTd1bmdVclRESWNYSi9HSVVwRUh2SkwrR2dwNi9hcUNLbHM2RlVhakRyVWdmeS9GNHl2dTJWWHVrSnROem5taGNxR2x1aCswd1phOGUwbWN1RWJXNWdwa1pVTWFUVXlLT0NYTHMrVnJ2Q053eGZ5YW56NkxyK0JsWnhwWS9ENHY2UEgvLytRamp2akRpSE5iN2JEWXRqY09hNG1HVDZDWGpMTjhvSTFUeEcwRzNncG02bWFxVGMzaVoxZWZvc0pFemFYdVZwNUZuKzdjb3AyZ2ZQcElyZlRmYUZiUElOZjdyNXRMc2ZPWXFKbHAyMzRaZmtma0sweWc3V3NLalBNS0Q3ZW9aZDRYZElxa21Lc2IxdHBzRVZlSXJQeUhQVy9scEU3djNwRjFMcEZaWjBIWTlGN2t3a2lUWnlIRWxCYW93Y3JUWGlVcTlGRnhhOWxSMzIvTEVRU1hNR1ExbWdHUmZINlFWbkdzS2NRY2s0T1Irem5OSEhWZnlLSGlTVUJZbGwyR3JHMEpIN1lNZkxwaXlMMzZpSXZJazg3UFBKS3I3cTZRTjc4dllKN2VyWTQ4YjNJQXVKY2Z1azM4ZHpUbDRzNXAzeGJ0TUlGN29PazVFVW9jV1FWSTZkRysyR0o4RXEzWFFscGV6S3BPbTJDWnlib0lkTkJGU2lSZ2t2OUI0NE41VUZHdVdvVnhzMVlNS3J5YytzWHJMSzZQSFN1T3pTVTZXR0pNeWpGSWczaGZHSWVhOGxQUEkzTm1jdTRyb29wWHFWSEZzVjlaMHhVMWJOdk03S3lwS3FaNitjenNXVE9MbS91NmZNbnZvTlBmTDh3cFdSbTN2V05mZXFieVFTT2NOVzdXSmFaVnFyUnpYR0VUS0pxMkZrYTFnNW1aNnp3RkFhSFBYTXF0WVB4SXUxZ1R0WXdReFJZd2NpdTBRNHVGNUkzS2dZalNCejJXdWlrMDBCcE14SG5hVFF4OHAvREQzTFYvd2RXRnhKeWJwbW1WT1J6eVdvTHRkWGNCWmQ3c01DK1ZUanN4aDB5ZE9wQ0UzdHZmSWRiVmtxOUxFR2dIY2pKV09FbDhBOTVaVmRxQmdSdWhUNElQVkVLT2ppODZCbmptaTJjSktLRFVpWkxsS05XeFRqeGpiQlRPZ1JNL2tXUGU0bXIvdTZSSmpta29qSnRXYVRLTmYwSWMvVTI1MVR4Z3Z2OXlNUnRKM0hvOVZVVTh0eXpSNCs3TWgwUXQrZ1FJNXRLbHZObWZJRncwQzQ1RUNxZElFUm8walFWMGUreElsbTBMb0VxTExyR2xnSDA5YU5IVFg3OWtUQXhCU0l1Y3loU1pCa3lpN3QwOG5IOGcySzNXVmNUVkpiRjRCRG5CcmU5RVRZYUcyR1BYZGlBbmxDTllmL0dYYUpMTHNYOXhSNVdMYzFUZDUvRFpVL2hCcEhxb29EeDZvN2xocUIxaGsyckRVR2RobTB6YXNVT0s5QU9LMFhuWDB1dnMxZXYrTlQ3YWNXOTJIL1ZMKzZ6M1dHN092Nm5SMTdmMnNQVW85Uis0ejVQVlFoNlp0RkNiZkdNdVV1ZXRwZWlkVSs3VXg2bjhFNEFFL2p3NzUxQkJEMXRNRERsY2crTW91S1JXM0toL1cvTzFXdmY5NzEzK1czb0srZVIrV0hQOUpXOXkwbGxoaXhzSEY4Si9Cem1LRVEreXNDM1QvUTFvNGNJSlREQmJEQTZsaGFRTldpQS9kakt6dUhNR2ZjUUNUemltMmd6dmxiT1FvS0NMYnB2SnI4SXNqcFA1UVNCeWpCc3RJSkp0WnFWTXVBUnZrWVpFdzJCV09XUE9uUlJCa2cvTmxqcTV0SHBzRnNQc2t0cE9UOTZVMjRyMENCMTBuY1VmUUxTQ2FKM1pNZHdicWNTRUhVRmFMUHcwd1k5UDAxWVVteTF1b1ozcXNtdDNKSFpudVNzMUVUNEJweVZVcXZCcE5FYWhwV2dxZjVnSjFnQXJOQkZHU0w5MmFEZURkUHBQSGNweU5iVEp2eGFnNFdmUDdzVnpYQ2hpcG5xWEtoaGtYMUx4VU9FNU9NQW45bFd1ZHczRGNMTmNLcFVEMWRZc1JRSFVZUllSaFNxMnBaU242eEsya1g1M2d0c2dwYjB5bTNEbkg2cE9lSUxwSStWZDNiVjdFV0FYSHA3SkJUYmhEbnFlVFlBelZ2WWtCV1JZa1VoaVdpNzh4c1NPN09mVDFJZ1VaN0JDaWFVS2xiU1lJM3dFR1ZVc0JYRTZoYmhlWHdlQytBS0JTelE0VVFZVEkxVE0rWVQvdVNLc2JaWlIzTEYzYm0ycVJ3ZUFHdzRObWMzQWZnS1JET0w5ekhtVnJIbmdTY0FkQWw2RHg1L0Rzczhod2QzOWszTy8zT2VFcHVIZ2NpMDI0M0dPV1V6Y213M1BmSXF6SVJ1TGJHc0NmWVg0Qlo0NVBMYTYvY2ZHMndhL3dadUE4clhkL2NJWUF3MDU1OW9tNllLMExzMm5JRS90QVRKVGhka1ovK01YUzd3cEp5YldYYVF2WWpXT3VYYStiNlNzWWtwODdoblgzZ0lVbTBZMkxqdHYrb0ZwNTBmTXZrcHdsTEpSaERXdkJiRzZYVDhOSUZWY3VNSWx6Uks5V2dsRk9Cd1NtazVQUk9RZmh6T3QrZlU2SHc0dVB2cVNwN3VmTWxDZ3RwTU4rRGpqbmRuMEZLa3Z3QnVtZEp5SFhNWTY5MTR0UnNjWG5HbURtajQxUVg3N1FwK0pqTmFLY3Y1S0pqMWpxNFJGWDF3bmJrdTBNZkxlS1FDZ1Q5UmRKdG9tM1RpRUpFMk9ZYzFuYWR0NW5POVR0MUR5cFFkOGxrb283bHRHMEhWQi9IenhPRXpPS29hOXVna3FENHpORnpkQ1dSMjM4WTE4eWNmMnc1TyszYmN4dTJReTFYaW5jNUZZWFhULy9kdjVRTlBtcFZwbWFxMGhjZm1HMExBODAzU3hFeFo0cUxjeE15Y3hMNXQ4d3E1TDdNd3JyZno1T0srSjMyNWd3V0RIWHVmcUJmNzZ3NG9EL1JJbnJTMnBvS3FVL3Z1UlUzYzZtOTBoRHo3WWp6NmFKYUo5V3FyUitWMWM4RG1UTnNmbWNzS3dOYlFtaGVZeGh5VDFxQkh0dThUVU5sdGUyZElBM3dGTzRKT3VvcCtDM1FJOFVCQzNBZDdqdGFFbkpUYmJpaDAzRzdPYmFsSjdwWjNMMlV2TGMyL21jNXd1MmwzSEhyMkVTVlhFWjhWL1NBSmZlUnA4TDd0OWFDT1NjU2s2ckk5bEkrbWJ2eC9ZbEZCbVlqUG1wdnRmeWJxazVHTEJQS2dIbytBeDFYeVpsNStBYnpvVkk0WS9weUhnai9oV0U5eDRFOGhTMzc0bEFMY2orV3l2OTVDUXdrS0hONWZVNWgzV1F3SE95RFVZb3lvc3JtelgyWWV6bER2R0ZIc25FU3ExWUgwdnRDQ21vK3p4RFZCYm5GWTYwaExDU1RHbUJ3bFpFZFluQi9IdHRueFhoTnZ2MkZjK0x6bno3WUNMcS9RTGc0RWY0a1hkM3E1ZU9IYkNmRmpmUkltd2FKZ3VBQ2JMQlQrS3l3L0dRV0RlYmJDVndUOGZ4RU9Gb3l3R1F3T0FyTllDTUpoTU5nSWt2Rm83U0hlSWU0aDNvcnp3U3ZYWWdleGJSUEJLM2NXTzdRT1dMMWxhN3Fzb3Y2MzZSZGo3akZHd0YzY3RCK2JqQ3l0RGNXL2p6MmVNYjVMRnBiZzA4L2treVN3OVFiWGxzZEVwNHl4VVRYNmZEdkVuUVkvakxBcUtvbDJsaDNLMzc2RmlQeDdHNEw2UHNlcDdBRGJtbHZhSXFTT2pERnpTQVhmWjErL20wUnBMZ0h5djgrYW1iMUI2VWN0WlRJM1lUQ2JzTmllMDhpdHA5aC9kRWR2UnFNWlgybTBVMnBHdGdFT3dYN0l0UDVYaEpISkF2UnZpUUZFeFE1K0s4SklaU0gyYXRycU9QOUJXYzRLdnpqdmtOK2RsZzdpelkwTk1YbStGY3lGL2JtWVlsNGswaTdIc0hseVVQazhLbStuOHhTMFhURkswYjc2eTFWZC9qR0ZKU1ZHb1lWc1RTMldqVFdBVzFGSjZOR2pzcTk0SHZUeEtQd0FXMTlwWWY3NWhJdTU1UUVvZG93NkpsMzFvK0lOanNlbXA2dm1ZenhhZDZkbm1mUXQvb0FNSTJpWTJpdzg3YTByMjM5QlNKQktnOUIxcTcwQzdNQU5FVEVUWUYvRWdpWStRS2h3Z004bkFQd1M0UE1Bd3FwRlhoeFFQdm1maTNldkJLcnMyYVhXMFh1dXhkVFIzTkNXMkZ2bWhXWU9ESGhxbkxZL1BvQjYwVUtlRkJ3YVc0M0hieDVyeDhOV0xnNGFnKzVmMGNlOEE2dEdyc3F1OW1iMnpzaG1yamsra1QwSmZWdStXMGowdkx4Wkt5Y1ZYNFZUeDZNU0o5RWFwWjRNdW0ra0hpY2NIaDBmUUtMbzMrSUt2NEVWM295S0o5M21CYW9NZnAwQk9MbmhqelVIZXZsc0Jrb1RWcGFHeU4wc2dMd0Zhem0rVXdOQlhocFJMKy9xVGFjZG52OWlJNXRJd3pINnQ0elpHUVRkNzU4bHVlTm9LL2ZXajhEb3hEZUIzRXVkdzhCNEN0QitNZDVHTlNVczVVbmhreFNYSEJwL1ArTzlCb0w1ZVhyV1VaKzRVbW5yczQxZ21EZGlTb0xpWEEranMrYW0rMzlZNVJvSm0vSUM0L290VlBGZ3NXaFBlcURESUE0YldRMmRIU0RZMGRuQUF1dWpoZXI5TElhWXphWXpBTURkTzVLM2dHL3F1cjkzaTgvRUhERmZZdXdYcHc5SGRPTXlCcGZFbWN1NEw4N1pnUkdlaFdzZi9DWjVZZmRDM09jSWJ1RCtsdUkvQ0ludm8yd3Z0MUM0SjRUV29LWFBhWmFKdFNVamYxNkJyN3diTFdYRUhNUVhsWktzQjIvTnZuY1J5WGg4enR5UlpXVzl3cmR1bW5qbzgxTi9Eb28wQlBlWmFHYkRRckh0K1F1M1V1Q1BENFdOdHBWV3FZMzJuM0dxNEMva3F5ejZBVHI5QUEzMisyZ0dYSExnc1QyVFFzMmd1REVwRk9hWVlQcEJzN0pUYTZiVWRyTWM3ekVLa0hNcHBWODR5S2FOdXJaTWc3cDJyajRvbExsb1ptK1doOU0xdnRZL1hpVmJ3cHNzMlgvblFCandsSnQyL3Y1bWx1eVZuTFF6MXNManFRanRzdHpEcENlTkZRYnNuQkJCSFhvSVR4TURUN1RBWEp1TjZJWTRiOUdPb3ZrSjZ1ZUZZeUZNWEd4YjdDU05sZzZrU1BBQmVjS0FVMGp1b3pML0ptcVpWcHl3b0x5a1RWdEYxYzg3ZEY5OC85Ym1xWk4rd1ppY0ExK1lXYUcycXBXQkg5V0NSUTg0bERhSTBpcmhCbjVYbDk1VXg3OGwrRHVWK3kzVlg5OFluVmExZHlReThyMWpKMCt4MmZ0ZXIrTVltM1ZnNU1TcDZDaDFrOCs4NVJubVRYSHFSR0VLQzFrcUZtbVg1eXdaOWhGbVJNK0NmeGNucVpIMFVaZkdLbzZTRmoyVm9kb245VW5DRm9KVDlTdFRYbGcyTzlXempnMlQ2SkwyVnE3eXlnUVNyL29vbWJlbURQNjVLRVhlT2hCM2ZWVEUyMTlTTmJXTVE0NFRzOU1rSjl6UlpzNkx0K1hQK1dkNmNTRkd2eC9yaVA3dFJVM3I3VWtoSnZVQ0E1Z29BWFhzN0h0T1p2eTVRVmdZVHdtR1VXTUMwaFcrbHBQeldRc2ttT3RFMmYxOTlkZ3BNZ2hkSkM1NHQxWkE1ZHc4dUJyNURiZzdtVVZXczFBcjAxS3FvL014d3ltQ29EUXJvekt0Q0ltZVBOTmlLaHZ6cVZtWGU4cFZnZzFHcVJ3LzFXbHQyWmIxMDB5OVpwblNEMUxuZSsvTTkwbUFGMzNzUXpQa2w2TFNrVERETWsza3lGZTRFNHl1dkRBVHhrRVBrb1BaWUhCMHRIQTFacC9jdkM2Ri9pNFJHYTR1NG1PYjhjT3pwbjZob0hCTXZUQngrajZNeDg4QSs3d0w4dlplNWxGZXhDVWdaeS9hcjAyWElYQ25rUjc2djFNTno2N1d2eFJBdkdpa2QvNWZWTmFOSkJrRWlKWXlvSHJSQ2NRcFNNZkFhNE5vOEd3V1V2ZG84dG5PYzJiMDE4Vktid1NOU2F2b1RWb2oyR1J4VjR0UWJRV0h3SGdwblk2WHdyRWtSd1V1RVZ0dUNSVE1icFVmS0hLL3RTVXVEWG5OZUUrcDErQnVVb3hvQWdvMXdUbUdrNVFaMDUvaDBKTTBUaFRneitVUHZFTVdRNENYSitLT0VjNmxBZUlHV2RBQmZwK3VkNkx5WXduNFRvZXFNcDNkQkl4N2hqMk12VGZaNlNOMWVFUGg3OEx5WmFYL0p1eTVxWkpjRkd6UEFYdklqRDJjRXYrRkt0NjZlV0FvSXVvRUppQ241Zkt4U2c1U2dTb0lXemRtUFo3T29laEdTVG5sbThqb3ZXZHRzRitrS3NaY0FUeTFvSkptUUF5S1JNLzRVRXpYdkUwWWROOXpRVkR0V0xTaGM3UXJXUkVUcWpJZGdDL29UK3FsdGRwbHdWak1OR1NLNVU4TzRhR3UvdUJjdUFkRGVPaERwRi9rSmlwenRqbzRGKzhJTTJTbkVBNUhFcytPd1JFLy9ndlZuZEVLdHFsRFNIU1M2MzBkbUF0NW0rNmZrSmR3MXp6cHVKSDQwZldaVHlIV2U2d3Rwb2NuTmhNamx0d3JPRWxFVndoUGRhTUlNVXZSeEhoRk5GVXhScnArWEo5Q3JWLzdlK3N5dCtNYTNPMGhObUFUWXl1WTJ0c2dUbEhhbHlyRVFjd3k3bzRCM052WVFZTG5NNFY0ZnNCb2tQeVpadmxzTGJmNGprdmw1ZlNLWW9mZUFPYTcvd05Xa2t2dGk1R0N1Rk1TcmQvYzlyam5NQkU5dHJkdzFSN09uaEpnTm5LaTN3eHZ3elA0eVcvM0d4TDFvcFZqalhFYjc1ajlKcXhETnFybzZzQXBRSTY3TjBPeDUvQjBta2c1TE9PL0E0TlVSdE5iYjJHYlZHa3cwaUJSOXVlY3UrUGozNUYxMjBUTUhoMVBoWjU1ekU5aFk2dFlVb2ZXWVNGZ24ycEhjdnJPMnNCakZ1ZzJ0amhDcXVOdWtjVFJMcTd5WC9Zc2VKc3pCL2hpNFJZWGNvVkI3N3kydTBuTjY1T3JBS3NwaTVmLzRJdmVtU0t3WUlGR0RRV1lTNmRNUE01ZXZYT1dRbG45Qjl3S3RITnBRNThKRWRRN3I0aEt4dTBTYS9aRUx3bXp5ZURIR3JlOUNuZkpqYnUreUZXcldqbXRNSzdpM0E0ZXg3dTNrTGx6dzAwRTVHSHZmb2dibWQwOWUrZjVwVVVHc1B3SHlkbE9pYVdhRzlaQ0F1YWlFblEzNDV6dzd6Vy9vcGtMQ2xUMjNVYXp2bWJ6VnBmaElmcWN6aGVoQmdYNWdPdFpZcUdIU1ViSFduWFp3ZFlIclZidXRuSkF3eFNwd1BKdDFvK2tNN3JjWFBBSEdodGt0RmpFWWRlWHcxVmVNRU9HWm1mZ3JwSnZOc0Z6K0dUWThUenNUd1FwenpYRDM4UGVML1A4VmMvS2gwL2Voc01QOG4xQzhhRDZvdlhXeHh1V2NNOUZCczRpakt0VXRFdkhpcTZOakxaL25JcllBaHlmaWVQcDdqRnRSQ3R1SFFaY2pNZ0o2VlVDT2J1bnF2QmwzTy82blJJS1NzQTUvZ3dqQ1dKYTZsNU9DMWNJbkxQWnhhQTYyZUhRMG1jL1FtU2RCZjVvdkowUzYrcER2T2pabVN4RVpFczMvL2pLanlJN0RXcml4QkVrYVJ1NDRhaHBQM0VkV2FJTWdGUkp5VWoyKzhyL3YrUnJIM2wxdmxjdHIvQTQ1Q2t2VWwwby8xdGtWYm8rTmpIc1dCSW1scVpsRTh0S2hNTkw1Zm85NXJ1YkNzbVdYYjJmNVc1RTBsd2M0NlhOT0crZEpjMUdqUFdLcS85bmVMMy9oeEpSYWJsMDUwSG05b1hWUDhtbVhQY0dnY2FPNDJFRURyTE9NaTdsR2FqRlh2Q3c5MW5nLytvdmxBVlVabFNmQ2ovaHU0YW5kUXNhWU40QkJ0ZGhVb2IvVElUb0toUGdBVDZSSXVVOU9oMGxoNkpMVEEzNXJnaXdYMEpNdVYxMGQ5eXZjRThSSGRYaWxIYk5jZnZ6T3dRRjlQUFlxeXc3aWZ4SllhclhmbFNyZ09seVRCcEEvc0VJODFHV3Z5Tjd0dGVCZW15Y24xVDU1clBaUnp2emt4bEVKVVJPZzRzM1U3cmVWUTM5T3JqcGtPclFFR2RJa3ZtY1NqWVZ1bDNMOWtzNFZ1cCtiSlFJUVRwOGlicTk2MkQ2Ry82YUdtZUhHWkdlbUpGM0RYY1hnQWpxUlYvRU1PNC90OHc3QUNmZWNsSE5NSlpCallkL21aajNIb2Z5WVArcURvT2VsN0x5alhROEhsWWhPcXVzR0dvczB1YkxZYzJnREhsdm1raGtQZGkvaEdLMzgydE5pRzltZ2dsVkdJbXdHTjZaWXJyUGZId3RScjZaQUU4cjlYM0xwMng4OGdsVEx5YzlkZ2syNitjdHBPVU9nNmJZZ3VMWVpvMDFsMmFsbHk3c21nc2hMTXdHM1lSbUJ3bjdtRHZ5VUw2T2FvZDdJdzY5dC9VYytLYmNaTkVzdzg1S2FqVlBJeHpyMDVpM0JZRE5lVGI3aHNlZnVQejV1QTVmYkg1bFBPR2x1bHZGeVkxdFpwVGZYVjVtWlNuOXRzVjFGR3pOVlJwcjVBdzk5VTBVN0IxVXM3dGxzRGVxdXZjK0lzSis5NkNyMHF0WGpZajByczhRdFdPYWFKT3Q4d1F5ZEZHdGpMSU9XTDF0eFBWbS9kR0FEc2RzbjI1QzhxUzYxWWhPOTlvdDg1enpkZ3U2STd5aWg1RmFEdXM3a3h2UnFjOXpoQTBuM2o3dzZncE4yQU1MaXFaMlhPQUcrS3hpa2hjM1U2NG41MnR0cCtSVStUNFBaNTg4ZEo1ZlpVQlE2Mi9HdG1KUGxRKzVrSHBhV09XQzFieDEyQkplOTRpWHlObkxCdjFkQkI0Yzc5ZURkdFlTTk84SmU0ZlplMXFhVEVqSVB2ZXcrWE9PbEVjeEI0d0NTbDBZczA2VVlTRlpTaDdZU2ZUYlVlSkVsWDEwQm9abGszQ3RONjgrVktwQzNpRWhsNTQybkRTTGNTOTY3dmhtOHEwMU5idDJXVEMzOTdjQ0RwU3VrL3Y4T1Q5QjRiQUx2bGtqM3BDWWtBRWVjTFk3VExTc1Rvb1A0Mno1THFwd1BISnZYSG40a1B1amRvMXZFd3JqMlhZNFpPWkVaQ2tPRHpucmN0dk1zcTZSVFZqTWx2ZU4xUGdpenp4ZVVQZ0FYdnpBdHZBaHZQZ2hsYlNnNUR2MHJsM2w4aE5KeHJQaHJmNi9raHdQUno1RVV5dWNUbmVGYkE1MGFIeFFMWFU5K2VvSXRtY3k1ZGVtcHVXQ0E0RzV4c3FQSTRNclZCaWJZWXZZNUNhUWhNdVhNdlR2Sy9GZU5DUHlIY3lXcm1BSS9FTU1yd1VoZXUvTkhQTDJyL0RPcnNxMUNMMmwxSTN3dGRvNDMxUlNJMUNsQ2ZnMUNiNjVyL0lNbEpjaGMzZGxTZDdRbXFOT1I1MEd6SWJ5ZEdhempTL0dMWnJYOHEwVERSRWwwenZBUjhybEFkcDdPSjVTVExYZkQ4SFZueUxXSEtXczVMam9DRENKdUxRZDFmNGx6aHpuSWxwYUFHbDNxRGpKVXJ0Ykd1R05adDB4a2RqZWhaUHYycEx1MmhYZnBSWlVoTDdBajYrNzl1UEp4bmNpa2dYZDk0RWRiWlh4SW9jR1R2K2lCcWRqZkNHQjZDeStpc3l2aWhVRlpLWEE3WkJYRldzZUwvMXZwZjBIY0JWTjRSWVpHLzhzQTNxMzc4WXlmVEtpNjZXYnFxbmR4YzQ2ZnVQRTFMckpranlQNGN6TlR1ZXJoWlg2ZlRFZzF4QldwYnNmMU04a3Q3WC9VQ2pQOVJhZVZtTHNqTDVScFo5ZDM3Zkt3NzJ1TnRXYzNqbVBnNldKOGdEcktzVTc2MTQ2eFh0VmlKTlBjQmN3UDZlNFcrL1VVdHhuQmRpWm4relRlaTY0TkFRbTBGOWxoU2NYN25CTHpVeXJIYTB0R2w2R1U5Y1RUM2ZjUjZDWEprQVRvSk5UZGJxT29QdU9nU3VPbWJxT3dPaklhZjlqWUYwTHhWUi9nbVdXcnFWLzUreEVxZVdmNVJjZDZuWm16N3ExUFpaYktkdlVLdlFHMjFxanFTQUEwODh2ZXh2VVU4b2tWYXh2TkU5NCtxVnZaUkV1aHowYURkOXJrMWNXYVpyNGZjK3V6TUFsbSsxMElCSjFNcXVYTUJPbW1oaFk2Q2QreS9kbWZUUnQvZTVzMGxVdWlGMlZ1N1ZkRGExam1IOW5Udnp2V0l5aGtwR01LanBzZGtWSE10cW5jZVZ3QUxjclI4Vkl4SlFkZHJ1eUl4RmRvSGJsUkFIdXpUU2tPK0hsdzJjY3ZMd2t6UTBJUlRTM3E0ekhHM1VvNDd0bzd2bUI4eHQvRFdoNHVwWHJqOXNmc1YvOXIvSWIzbXJKeDI4RmpralFMK2d6b2VKS2o3bUJxU2N0VTdiWis5VXhYV1pSSldycUUvakRRUWZwUTZWV2NJaHJQNlYrNXhoeHFoRWZnTmRkQ0FBQUdtbjBSZ0RvdW9Ta05qRk85bVkwYmlsNVFrUFk5Z0pBRis5cXhDUm1pbnpqTWZpWDN2Vm54bWJOc01SSnFZM3lqUVFycFZLQktTTWU1U0ZJVUxRV0ZBNThWUmJOM29WMWRNWFlZS3pad1dJNldtSWdPK2JpaitXcHZ4aGZpVE81ZUczVmpITWVqbHkwN0QxcEdqVFNlQmtSamZnY0xncHJPaTdlQnFNZFp4YmNEclRoMzljS0MzWFMwSXhmeFd6R2NHeTNMZ2djL05xYkFySS9FMXJKbEE0UzdXaFN6OTh2bmZweHlyYVBNN0FFTlVKV21kbTc0Y3pMdGc0K3Rlc0o2c1dLQ29iSzRzWXlnREgwREl2TmkxRkFBOGlWU1g4WXdCUk1EbzVudTR2ZGZLQTdCN0dwcFJXTFhUcDRFR0VJb1Bsa2QydUVQU2xkNHQyMTc2aWpDdjRmOWY5OURpeUtDV0gwYVhGeFRJTVhkeUkxWXRGcjdsNlA2WkpiMFg5cmNobjR3RGtSU2xIaXAzeE1za2tnUjk3YU1IQ3Bwc3NoV3FWZys3OFRZV1ZLRkpEWGZYQjJ5UWNBOG14cSthckV2c1RtKzFOaS9td21hZ0dUK1ZxRmQvSkZvN1dJbkJVUFZrV2FVZDMyd21GbGw0dEZNc0l1cmpLck9Ta3JYczB6Nml1NWhCVk9hWlZRWUN1THFIcm1iWDFTNXF2OXIvT2UxelBidTJwQmV5d0NRbmFIQmdRMWppZ0lSV1BhMDFzbGpmVFQyeGEwenRBN01tNFVKVEdQc3F1c0lrM3MrQ0xkTFl5VzlFUmlGZkltVkxRMWxnK1dyNDZNMEFwS0pNOFNBVVAwczVoTVVzSEVTVW5oMFlXR2ZlbzhEdjRydkU1dmFXSTlKeEl4Vm9YazF1bHR0bG85Mmdpc0VvbVl6NFhtMWVxeGFnNE9vVFBpYkNoL1JneXlFSHNGSkY5RWxWd3VzZlVYaDFqKy9PT0FCbkE5YVp0MTZ0ckE3VWZQREZlZS93VCtXWE8vcG1pay9wcmVpOHFibEF2d1lzbHlhR2F1MkVuVUh0djUvRG0vZnJnVzVNcitFdmdSSjhjTUdxUGI5M09Oa2dwUmVqS2pRUHI3cUM3YTEwQWVWUjl4bWlZWFdwWFNMSlYwVVlqTHUzU1M1U0xYZnNDVFBlT1ZLQ28wY3JiL216NEg3cWJpSnA5TGlzeVdXWVNocHBMUVExZW15Ylh0QzRtZ1hnWnRZc1htaS9FQ0JTSGtHOFc3NDFPVVdaTWRoMjNOMjNkK3JuNFVTWHE5NUVUd1p5YS93bWF0NG1pMWxSeWJsVit4RkVwc2VreXFkQ3pRcVdWcVhVMFFGSFBOdXBBWWFYcStHVGtIYUNZMVFPdk52SWtQVlErRCtkVTJySXF0MDZTNU9BNVhhTFZ3Q3NmU0hJM1V3NHBuNGRRRXZyT0JEZHFiSFNBNzNrU3dPRkVuZjA5NDhvYVd6ODhwN2RRVmZJNG9vcjc1ODliblJ5UndMdGt1TXdtcTdKWTBwS1lQRWZjdnNHTy83cWRoclExeHJuRGI0Y1lpZzJad0x1THlSZ1FEVHVIV1NsaW5xNEJ4SEU1ck5IQkZUQ3FXUXd2aTYzQWJzMFpYNEZueEdBUTJ4UjBnK1J0QktLcnAvZjZzdjNBdFkyOHIwTG9ubERvNU9LSDd6ajQwZTgxL0N6MGJ2amw5L1NFVnpoQ0ZNcVFaRFc0TkZCaU9kQkFxSXAxWEdiV2c4SG9VSy8rdG5nR2ZUS2JES0l6cE1GVlYyTnpHMU40djBZVHFWSHFIVGZLcWo5Y3RMUHU3N0cvOWtmZ2JkVTFyeVd2SVRUZFVwMFdTcTRtQzdJVFUyclBBaTBoNnZSZHJBbCthQStZMjUrRzltS1NlK0xybW9qUWhGY2p1QXZiVHR3VUtxTG5rY0psSHdsZFlmZEh1cUZkbUZaVEkzVmJ1WDA0V0krNG9zNHBWRmtaTXA2YUd4QzZXREExaHgvVE13eE9OcFpWTnZUTU5qTGdTdFFyS2ZqMFBhQUROc0JoZVVkTWx4SEZxR2wzVDlmVkdyQVhTYlphdWhSc0s4QXZUNEdtNDJOOXN6YS8vSmFpZUpIN1lmUG1GLzhWODVWN1dXckJQakhlaWh1S0JhZDJUWjJXbllhSzh1TzNyanFMUUtoWnFZRVhVTWxiZ253d0laYlp3S2JjeEJzQklvSjdxNnI3WTg2amJYWjI5NlRramhzMWQydFZMMy82ZTNNbG9CY3NMWk1FVlB0SWF6WEtCUUxNOE8ydklSeFJaeWhDRm96VmhxYW5FUi8rTTZ1cWJWOTlSTGZEK3lRZEt0RW1oWWVaQjV6UWJXMWg0aUpKRG84amhCOE1jRHYwV2hWRHJoRUdiT2s2UjJmczl0eVlKbDRqb3N1SUwxQWlOM3ZHZjdRaUVoVjdHdE1nMFlwOWRFUytXWU05SWJTZkhXQnRjblZTdnVncjJvdHl5ZEYvWld4SWREeTZrM1ZNdFVLYUhTK3lCRWt4SUZNVWR6d1NHV2pGcVJUbTVDNXRaWEtZU0JRelZtNHZhMDI5N1h2K1U4QVYyeDhWaEhPSFFqNWZFK1IrcDdjbVVQa3FkcHBKQ3FQamxXZ1QyNHFwS3N2YkxZTEs1YjlSeXlXeHFXSmxjcS9QSkxhZDhxNnI3WXUvVjVGLzV6cGFRSks0R0oxZnB6Nm8ydVpxd2RJYXZWTUZScFMwcEFQNWlQL1NYMFNKWWRCYTV0UjBpOXBoZjVwdkpkb3dMUC9rbnZYNmt1ZFpFclV2Q3IwVWhpQjBzU1dmbFQ1ZHdFcHlTNnN0ZXBBNGRHVGc1RURCekk4U1p4Ly9oUmhScG1SMWtrc2crQ1hGc0t6TXVUT29iZmR4WjFQbG1TcG0wVklmK25sTFhhdkdyRUZxMHljMXMrN1N1Y1BTS25MdW4ycmVTakt0Z0g2TGhsOXRVbFJUTmdLWjlPUzNEUlQ4Szd5WXFiaWY2QzFFMFBGYm91M1g2bEw1OVA5OE4zaXloVzRLQ3p0em9kbWgvNFhnaS9iT0k5Z20wbWtmdUk4UHErUVV5TkJ0eEpKVUFEaG14cUIyV1lGS3lPa1M1WTJ3OUs5S25WTXRSdFZweSswRWhuVzdyS1lzb28yUlV5bkhJd0EwMWRoMlpXNC9hTGRLVlFwOURXd1BvVkg3eWpmR3BZcXFDUUVveHUwRmxydENtckcvY1BDaXhYanVsdE1sTXRWNmpqMjJwcGVlNkt2eHNrT3hlTmFWczA2bHJCU2RZYnB4U3R1clV0SUtuMjZ1Y2RHQTBYMmRlOFhmUzNCL3lzYnlodHNnMC94QkRXcU1kRW9wMGc5bExocno1WlN0OW01S0YxVkVSZ29QSmpVQnBSQU5WRU42bXBQaDhrMjcvcjkxRDZwTURSd2JhRjZuWnlsU2NJbUdkZTVkUjdVanVpRVRRMStKMVNaTFIvaWpScURKSkgrT0gzdjluMGJEcWxGbzVWWWZmRUpRQzZTMjBkT2syWlNQZEpIek9RYkNrOGtSaE9YSVB5ZEhRVmpFL0JYeGJ2SjlVRjJzODlKamE1YTJHK3ZVMVpMdUM3OU5veE1FeWJRdmR0RC9waUp3ZUN6c3hWQzYzNmgzaGdlc1ZwRHhBY2FqNDVZc0lBZzZrbHFhL01GV25iOGlpMGNrd1F6dFM3Nmh5YXFOUXJZU21FR2xWMUl1OHNBWWQybHE2L2tvZDYxWW1Hek1wbEZhZFk0bE5ic0JsYUlDMUpUN2djMGV2djZlK2ExcTZxcldDL2NZRDdJdGNRWEJWV0ZwNHFVOXFqWHk1UUtCZXZpUnIwRWRVdFRLODZDTzFVMWRPWkZCN1RYQXhuY01LTVJHcnZLM2NpMTJ5UXFiMm5LZ2FTZDlvZFFaRHJFUFVVTnByd2RJd3pOL3ZmVHlkbUIwTnl0UVN2enBlOXlqUVBpbEJhTStRRnVWMXZadFNFbTNTTXJDVWdHZmxjSllINFZzVUlZdlJ2NjdFUi9hOG13TU9kQnB4cklWdnFHeU9aMmVZbTBMV0lHeUtaazNGV21ZT2NjbEsra2RXdVU2TWtWVDh2RHgvU3hlRWo4L0UwVWlQZTc5RERXWUhRbmtVZWNjckNvNXhFam9kbk1UUk5LUlJoaGxvcVNBU2c0cEltUVhVTFNMcHdwTFloclJWREE1RlJyY2x0M0pSMjc3ajFKcENCaUN2cWVjUW5wQ0ZCZk81RDNBVWdacFRpTkErUVpqYVI5bW9HYTVvY1ZITW5VOTNkbjJrK1p4YVFSaG9XZmVLNDEvKzUrOWk2QnR0bFh2UEFacnc5QXZNNWhXNWIzaHJtNWYzTm92ZTVIYTJIZkxtWGo2YjhHZkhNQTRjRkdrQWZuUHpGSGVJY3EyTXFrM3FseFFBRWd1WEd0SUcyeFE0VXNFbUxMeDBxUTZ1d0sxSkRxS0pjb3dXVnFxLzlKcndCWmJqM3Q4S1N3djM0ZER6bWxibGVQYlRFOENKeVJibGVPc0dUVGdoM0ZlY1hucUN6R0YrSFRZRE5Fc2xUcFZqOFkxb082WGNSU3BjakxZdlBpd2tab1dPK3hjQTNQSGJCSll5aGEzdzc5M2lZTnlLa1c2akZVdHcyTnVlRHA5VnZBT1BtdVNKZSszcSsvN1RNYjlpZXU0dkRYOGM1cEtkNDUwbXducjMzQmR6UnpYZVJpSXRHLzlZZVg4c0U4dXEydlUxKy9Ba2xibXQ0MnpMcm1mUkJQL0M0dlRBU1JKSGdoYXVtUVkwUVBMR2V2RXljY1A1aGJiUmhaQWpDOGNmSG4yWXJ3RUNOcDFIYlQ3SDdMN2ZmSzZjSFowZHhkM282bXk3Smd6ano0UFg4dFFmZ0RzVlVWbERpVFMxSnNvejRtQktwV0tsakVTTXI1SEYrQnRBcUVOWVIzMk1BOFphSEV5V296a0djbUo2L3RpVUVza0xCUmEwT3gwZ1N4dVBnbER6ZUZic25WUUh2UjdqY3h5YzF1dDRhY0phemRFcGE3ai9UN1ZZMkpleG9SVm9YUlVLWFF5dVdiSm9Gdjhuem5McEFZMVVsMlVtMjdiZG5NejQxQjY3OEYrclpPMkh6RlFZd3psSk5jSkpZVmdLcnZxNjlBVmZzdlpiNFNRQ3llWHlxckpMbCt2aWpLalU2Y2JwZkVGZUF3NmZSM1hNQ0U5bGFzN2I4MzhPL2Q4clgxTzBwdVBBODdQL1ZpemRXN2UzU3hKekgyaSswZ3cwODk3bWRxcG9Yd0xoWWwvak81VDA3d0VOc0tKQUo3UTNQY2NxVHRYZWtHa2RidVhTN3RZYVRlMUpaT09jYk4yMGVrYkZ2YzdyM0dLNHNGN0djSkd2Y3dqcytVK2pLYko3clkwWlA3djQ5Q3FKNUFVNmQ5bmt3dnFZNERBcDlpdy8xRjQrOTVpbXBrdjQ5ZGk0eno5ckFNM0dVckdNNFNiL2NOUTliTXAvR2g1R0NYMk9wT2lmUTFHd2VHK1gwMnM5a09OZmJxaUFMVmF3UXFPQjAxT0NSMHByYnBadTVJZE9Dbk1xTWJpc3NidThwdzJSSVFiRjFXajNFMThhL0FIWEtCTk1YQy8yK3oyZkFCcmdtR0FkUGNxcUNORmttbmFIam84dUVmdEJiYWZ6UHZRVHh5SkwrWUI1ZWx4clNaWk5tQTZEZjgyd1RhYk1hNEQ5STZ0SUZVcjNYQStpMm5VRVo5M3RQaTRsNk1aMTZZanVzZHVjN2tzSXM4dnpSdmNZeU1ETWhVb1JidnNoNW9Pbnd1UnlQQUVNRVVka1R2ZWMvN0YyYmdUNUNnU0tFZ3RqdjAyTUtNdmMzcFNDSUVoT1FBR2lwRFhISm1zMFlla1gyTnYxcTVjaEFiaWJGejc1bFVlcERaMXpoL2MwajJzMVNLK1pDa0wvVitCcTBhVmh6TXBKYXpSZ0JXcXRnQTMrT3IyOXBYcENEeEV5a25vSGd2Z2RVL1MvcmZVNHNhaWVtRVppdHZGMUxwc2U0OERUWmxWM0xZSGRHNnAwZXpZU0hmUEVZZE1oZFIzODJhcDV5RGl6WWV3dURIb0grbm1YWUxiM3pVdytncmI5L1dGRzhPYkROTVREbWorb3VUd01CdXVuZXFvaDRWVVFIb2Q3NjhwRFBhR2VkeGNhR2V2YW1CenFEVCtXdHlWUzBmQ0FzY1hPaDhRWFpqTExUaTRjZUhBQU9NQnd0L1E0bXNWYWJoeHROK2IrZy91QTVwTHh6K2Z6ZG44a1QxM1pDT0s3S0dWVzVsNXJGbC9ZbllmcUZZa0FHZXEwWnRTb2xiUWIxb2laQzE5dnE2Z2ZhU25iZEZrNC9jWXZHbTJkL3M4ZSs1VEJuYko5bTVrTW5HMGp2bm9OWi9sekZyK29aa25XVUhxbnJQT0FCbWlaYmdFMHl2T3FLVlp2MWo5YThtU05abjVsM3JjYmFlRzlKQ3QvZFNUQTVhQkZ1U2VWL29wZXNsejBaZENOTlA0SGdQUUxTRysrRHgyV3k2dXduTElhZ2hkMTZuaE91OVh1Y291MXA4Qmg3VHpLOE5SbjltaFlMNGs0bkRqQXVzQS91Zmw5MVIrK2NxMVNvaWZRQmJobHM1UjZjOW1ORDE0cTFrSjlraXNQRXRxYktPUE9KaWNKdjNRdFdNWDJwdnlPVkJhdWcwZm51V2NoREZhUFZkZWZpYkpJSzQyY3NhQ0ZxYWUvMkZMVm5oQ3pvZG9aaGxXZ2xXUGNKQ1BXTjl2Um92MDNXWHAzMFUrdXdDclFGb0YvRnlaRXdYNVc3bGhyWW5UVkRDV3c1c1FuQ01VNWFQdXkzaXNialR1eXFOQ0pUcUdYRFhMU3N2TWJZWUNEdTJlYWY4TzF0Zi94dWxSUG9KSmI2VThoeml4VUc3MlhlVkNLVzRHblVKSVRIU1JPTzhrQ3FUeDQ4c2hJUlZucGhCSkhtTHNuTm0zQ3orbGU2REtMVUI2ZlZHUXZubXI3U2hzSzZpSU5ML0hSNXdpVG83MmN5dy9GUC9DL2FjSVN2dWpBZDZEUDB5MjR1NVptRzlpM3loMXJqYXp0dVc1d0Fzck8wMWZyREVqU05lc3hlSkdXUStkQVJzbW11UXBlblRjc3hYUmNEZGtSUVF3WWJ1WFJmUytmUmV0Uk5OYi9VR2VmYTZlK0JzdVI0WHFKeS9pRmVNa0xpWG10YTM5WXRWdjdkNzB0V1hyVXZuQ251L1J4bVBDL09SOWRuaGFhL1NKWEJtT1BqditoblBWYnpTQTZyb1k2Y2o0Y3BBTGt4M0Z3ZmtWaDM4dmpFQTJQNWc1TS9pc08wV2p6L1VHQXcyK25EQ3UzRklwWVBsNDlxQjFrL2JaaU9QTy9qWjYyck5tdnlESklVYTdxRDJHQnJvYnlxSys4b0dnakY5R3VpMEVEVU5vS0w2NlYyVElUQVJrRm03K2tUdllrOEpHdEs3bGRkRTA5QlpBTDJwdzlaWHAwbjhSWFVCcVJPWlRaS0dScFIrVnlSb1JDZ0Y4a1JtY3NvUVQrUUZtMGYxcVNwQUdpc0xiN3RFSDU0Vk5pTE1CemN0dGdvOUxRZytjeVFDdWtYd1ZqYnVWb0MrSEtNYlR3U0tvU21sVm9DL21hUkQ3MkhPUWREcVF0ZVgyZ2RYVVNUL2FNSU9vNU1aVmdqREk0TFFEZUo5K25CbG92ay90QXF5SmRtNE9DUCszS3d6Q0hRT3lEc1c1bEt1Tk14VEh0eW5YZ1liMFB0RkFwOHNHYklUYTNUU2dIV3pmaFlmUWZwZVBjWkR3MVdsMlltRk1ZdzFoMG9KaE1YaGMyaEtBMlJ6RDR1N290SkJrbkNoT3ZEdm5nM1pxdTNVS0F2UVBKV3d4MFlmTDY4ZmNPdXhMVTBhRzlpaWpTMzZudFJmN3VVVlZpY0ZXWDlDcWdyQk0yQU9kZWY0OEl5ZjMyNkZVT3lpWXhHQWk2UzVmdk1ZT2hmU00zTmxSMlVad2Ftc0s4aUVyUnAyd1kyOHF4QlczMjZkOW5HUnJFZmptV00xRnBkeDdyY2g0TzVxTTRmYktnSVo3TFExZjlkVEh6SW54dThmdVpGNmJMV1ZVVEp6TW5JWHlqbytXakU1a1RrTVNwOHEwcnF1WWUxejdkY0o5cWozUC9Pby9xaEg5ZDV3TEhRazZIajQ1dUo1MWFhT1NndExIakhCSU5IWnY5SE01VDdlZzRHMzdnQUdjOHliUzdlRXpPVFhBWGExNk9mMHlQZXYrUzFibkc2cU9wendXMmZEdXh6a2ZkL201SEUyNzR4WG5zTnhDajZVOGFyWjE4S2hXTzRFMWN0MFVhZVV1TURFc213a3pOakJBc0lLejVtaGt0TnpXQUJsa29mdzlaT3RNNmhZeDVHNzlrTlE0Wkx1YlE4K3pzTTZoOXJoUkNDeDQ1ZUtxK0hYV0xOa1VjNVI0VW5aZTVNVXY4eUltTXZ6TkdDblo2TUU5aVk1cXd0L0FJVkRhWitod1VNbzN0S1NnNDVuenFsblBEbUovMUdWYUdCZDd2QmVsYTFFNzFKMXA2WWxrK3dOQloxdFVzaTFlZVdsYnpxMUkxbXN0aVZYRzU1VDN4LzYyMGVtekNsbnhGSXBIb3hScEt0dllzTVYxaTJyTmVaZ2JLTm8zS25nUXlrelh0SGsvWVdXTnRoU1dBdDlVTmxVZzlVQ3ZnazNnOWJaNkNvMVlGdTNIWFFqd0ZSRUd3aEZDMHg0S2RKVGplSlluNUZmTnMwdnlRd0daUjNzVHRLYmdwWERFcDRNMlo0L1dlZEgzQUtXc1A5cmdVd2V2elFWYTdNRVJTZWZ1MDhWcnBBSmNySFVqTzZ0TjRQUXZVOFNyNVV2NGozWndRVXI5UFFZM1ZwL0JCLzhVSTVUSkcrWW80bkV5STB4K2pzc3g1Qk1zdUd2SFFEci9JRjNsNHhOdG9OalZTRjFXMnJkOUt4WDUrVjRPaW5SelppU0Z4Y3lIaDV0bzh0dm5GQ3VUWmhJamRqMlhPcXN1TnJZM2xML05mZXBNdko3dThoQjlNRG16OG4xVXJhZUI4TGp4WjNjQm9tTUlUTlNQSHY4ejdMeGVzQ25Ea3g5ZUZOMEJObW4wcUo3bmhjeHhnbHJjZk9USURQNjhpUnk2ZkNjWHhucDZGaDhMY0lzdWJqeWhnOEVFSHcySEZVeW1PZC8wc0xEVE80Nnh4c0VFRlA1K2VlUXViVmNoZDZBU1AvR05XRmJEWEVzaTd5ZFlWdkIvV1BKK0NYNFNUYlR2YlRFMURqYkQrekRJNGovMnd4ZFdxY1Z5c2JmSE5KdWMraGF0TmpBcGNwdW9qM0tsUFVCa29GZkxtWDRwZ1J0TzRXR2I4RkU1aTlzQU1HMGtpL3N5Ry9tTjB0RlJNenVXU1dHakJaTk1RR3diOUxDdmlvMzBpWFFIWXZiYjBIL1l1a2JBK1BLVzJoVzVoOXliUzVEVkxaQ05rN25XWlJYUlBzck9pcHEvaExUTDNpcXpLcDJ0N2ZLaE0xdEV3ZTg3anpzTGZoV3JmMktpU2hvNW5OclJjWWpjK1BzOG4zdno2eWpoVTkxYmJlRVBaaDlzV1VCMzNGdEFKV0g5Ym1yNk13dDlKNVJmR3RDOVgxVDIydFg1Nk93UjdzL1R4TWhxTlZOYWhxUjZ1UmEwbW9PZFVGaFowWExPU3h5UGx3NVJpUjB4dDA3bGp3Z3V2SU1oSG9mWmsvUjl2MVAzdS9CTE5sRFZuVmk0RS9mbVA5YVorcmZrZFozYkg5Q1BDNDFkOVRXRGR3ck9PNDl4aG5uN0UrelFrZHZ1QkNFM1cwVlAwak4vTFFxbFFCcWI1cS9zUlhGazYxTjZOVGNlUllMRDBYRmhlazlZR0xXaXhsbXJaMjJyVEVlQ1lKQzJNMjE0Z1pJUC8vU2tqUjY0b09vSnUzVENKekRUZHNtR0VlQnlXL2ovN0h6RDlwNU5VZ3BOTWRENE9ucFFJL25OSndxVjEzT3JJaGkybUlPVGtodFl3NkRqOTBZVkVVNTF6Zi80SXBEVTZWdW5KOTRnNTNsMWhaMnRGeE8yZEhhNng5TmNjZnNvWXdHTG5LTTBEUzZQL05KTG5DTWpldkpwWXBJOGJYc0RkY1pkYzUyRnMxRmFpWDRlbXhYemVvbEs2T05xNDBZaW9XMmUvUGpZcE5pbmFKRVJFV0tnakpmVEVXcXpUb0RKZUo3aUt1NEJuVGNiSGwxU3JWeXpSVzhNdExCN2F6SGdPZ2ZnWTJUWFJpSi9yY2d1dkxpY2g0VDBOZjNGdkJwdnE5VXcxcVpyV2Q3MWxvYlVjSzBuN2hLSTNPcTUwREJMSVo1NXR3dUFXSFc0aWVHdUpyOFBDeGU0QjZsSHJhZXZwdjNveDM3V3gyUm45cG5BU0EzUXdnWFhYYjYxb3dBZ2IxQXhBM1JCZ0FFRkZBY2FZNERrVVpacjlVeUJXZlY3dWVRRGtBVWFnUHJyNytzQlo5TkhuMTNmN3VRNElXQWFQalhOREwrWWhKN0o1bVJXQ3ZnVEZFVURBcGkyWCtaRks0dGRrS0JEd1BmY2laSG1TbmROdVpPQ2JMbVdGSzhmMUsyR0Z3VU1lejVwNnJlQzltN1hqSDF3QUVydUg3dU11NGxuWGNOR0MxVGN0T2t0WFpHVE9YdFBacVJPWkdlR2ZER282S0thaEdYbTJ0bmtacHFFVW42UmFLQkpYajd4ZXRrUkErQTZ1eXNGME1SelYrNDlBdGlIc3ZpTUMzYUZaMDhMZW1vYll3VEJHS3I1QWtRbEQwMnJLdjhndVRSNkpKdVVYdm1GaWk0QUF5cUw2RXVwVUdZdmdXdkxIWHlMekY2d0dwMU5SaVVqYVFwQTRqcGxHcW1zT1JMSTdwcDNJZkdoVEtMNjMzSmE0RjVQN2Qvck54SjVFVnFXamFjNW1jTU9ObHJ6aDBadjZrbk5xVTJwa3NZUnVFWW5wTnIrYlZ1S290eHRhNENYZk1kd3BUb2pNOHl6cnFlVGtzaitocGFYZHZjRHdlY3R1S3Vmck53Y2RhU3piWEJkTkpIYlM1aklJb1F5SzNxdzZIbGdza0xEWlVnRmZ3bVpMOWtTZys2citQOTQrUDZJYnB1dnNZQ2tvUEVCeWFobkRQRTlNSnZ4WDRTZ1VDQnlGdmY4NnlSVFlnc3pGUXBoendDNlV4RFZDVjBtY0x3amd0eVQyRSt4TkZNWUFGQUMxQm1EVVBHbnZ1b2gzOVFHcU0vTXpVMFVpbHorb1ZGRGFCVHgxTmkrM0NwVTBlOTF0QXJPcFZlQnppNXN0Rm5Heno5WEtNNW5iZUY2WHBIaytDcE10Si81UWVFOFB3VU5oWGpGMjRnMytBV2ZDRGhzNXN6cU5nNWJ2YUNraU1DeDFjNzlKRC9ycUN4cVdxL2hQUEZPS0orVzRXMVpldEJzYkpoRnppSXRjNzZFRXNFRzI1Q0hYVkpJc043VXh6TUQ5UVdodWlGTVVycllSaU0vaXBUbzJ3T0pmQ1hXMXlIWUg2Mm5yZWdwd2lkMjdTOEQ4RzZaMExyMmQ2V2k0b25ldzRtQlFmczQ1cGNXRlM4L0tuOGx6eXI0K2FXSXp0QVB0RnFTL1QvQXBMZUswMTlRTUdPaG85akZvTHY3SUxwcTB1Y0FGTC9UZzBWamVSWExEbkFyTkxWODRocHRTSUlLa1diZ1pUaHZOeU5Ma2hwS3FsVGwrdVdITVM4RU1jRElOVytKbmZVRHc5NmdBVmtFMkJsT2dCQmwwVUpXTkNYQjR6bjBlby9ES2Q4UnNEMWxaVndzY1pXL2tibU92UHM3T1B5Y3pwNTd6NG5tdDZqaE5yb2pSY0RYUHE0S2NockhYTXo4R2xKZVdzTzJmQ0JBU1NUbmxFNks5UkZjYUdzTlRXb251ano2WFVUcnM5OU1sY01rRmV0R0VLeG15WFY2UnVFYUxXOVdJRmROcENHek1TYU15SWN1VEcwdXJWOG44S05iU0R6MVJnTHdWMHZKTkNnMGNaNFNnSWszMFNJamNoZE5qQUZoc3VsK3l5KzliUHNlQ3NxTUxnNVM0ajFiT3pZSVlHZXVDQTVEbEVrcXdYNUlHRTlPYjRTb2FBRWhzb2s5dXdjcy8wQU1aUWUzMzIvTlhaWi9HVlJjb3QvZjVTNDM5Z1VLakhsejRheFJUS3JOUXpvWHoyRk5zRWRkYzFMTUNzL3JIc2t1YmpxVFdldVpyNW52U0d6KzF5NjhWWGFzZi9KUzBjK0xQVDNmMmhoL1d2K29iWGpvZm9JN1FwdTd3SUh2VmE5TVR1Nk5EOTNIWGNPQkYzTk0vZS9KTGRNZDM2RUhYcXRzdUhRUHkyWmhSMXFnckI3aE8rdVhaaUFObGFCRjhIU3VUZVBaeUlKVHA2c3h5Y1JZUmJSR2xLMXljeFdnNFUrTFlQZFhpdjU5RTJyNmhoQUxQZm40dGlYczdnelU1anhuR212bHVGNy9aWXBFMGVSMXRQTE94VldSTXVZRkx6QlphMENSdjhOaVY5VUdzamFrN2Z5cWJpRTFqWUN3S05RUGpZRk5JSVpHWmJxQ3ovdS95WHpJLzFCdm5OVWR3Z0ptTnZ6VTh6M28rcS9DVE1zL2t3MUhyTElIWExXcENMZUltSDlxSDFkYktDWVJTVGhzQTg4NXZ5SERnRmFNZi9xSW9aczJlVmZITkRnNjY5L0w4ckFMVGUzOWVveWgwQTNMSEdZRmRHUE9RS0l5dEpueDJ5UnptaXhjaFNKbHdacSt1Y0lOM1FPZm50M3orTXdhK2R2MGZxRXRCckovWWQrY0tFemx1NEEybExFc2gyNDZwV0F4cWI0aHZid0ExbHZkdzBPdnZWb0dxcXhqcjcxYURhcXJDb3VraEtlci9IS0J0UEo5RDBtUXhTNXA5N2pZQmFtNFRlTjJTNXY0Z1FTTHRjaWZTZm5qaG5nZGs3dm45OWFzNDZBUFpSWDUvZUhhODNuU3habyt6R3c1RGI3c0hqSlN0akE1dFpidHRnZ2FyVWRSUTVtemhtODNOM0RKQ1ZHdXlpR1AwclBMSUJMUjVYdytaV216WnM0cklpcWFEM0FXN2gvczQ2RE5PenVuTHpPbitwWjVMRFpxK3dsdmVueXBPdUZweTN6U0RXMy9iOHcxcUcrNlJkeGllSTA2YmxjOUNJSGV1ZCs0OHZ1UHJDNG9jd2cvRldnc056NGhkb2JBQjV3cW5ubGUrc0pyeDljVHBDeGZFV3djYzZCQzZoV1VOYTV0NGo5ZHRPYjR4OTNqdXhoTUt0OGxYdk5qbFY0UW9xVFJBdjBJb1Z3VjdYUXFGQlVHVUZvV3JONXFGYmxsV3A5ZGVwL29DM1V3ZGoxNjJwRFl6cjNaNWZtMm10TFovRzdxbHFDcXpxS28vK0JSbWVIR0ZkR2ZXem82ZHVtZVJxeXJHU3NaVytFdyt2aHpTcTNpNDlHSEg1WkE1aGFPOHVpQTJvL2JsSEdpSVZQZTZJN01tVmFiL0JrNmRMMFYzcmJrN0kvU1NLbTA2UEVQR3dSdVZ4KzRHNjZsSEQ3NWNHOFJ5YS9uRFUzejhVU2huT0hYcjR0R1hxc0x1bUMrYnI3Z2RXMnVYRHVvVjRUeVUxOXR2VGs0c2tSeDhyOFBsRUJCclo2dTlSbUc2bzBIZzFtSklHYU9vNHloVE53bGZ6RjZOWnlCVjcwdVdXT1JQaTdiaEM4Z2lnUThuQ2xsRGg5UDlWS3IxanZ0WExTNmdJeUV4TzhBYUEySmZGNmtRUS9WYzVRR1Fhb0w4YklHN3U0SHpOVHhnL1R6TjJiWS9HM2gyZGE5QVJKeUFSK3lrejJKUlFJdWRlVllvbnVJOENLQ3kyc0w2OXJZa2NmRlQxckI0RjAxci9ySWJtRER2ZVI3S05zbWxxSGM4OEVlODhaUnZEcUljVm9WeDI2OWM0a3RpWGRyRmQwODhZRnRKL1o2QWdIcDVFMlMvZDdLSVB0c20zSGIyL1BTOGNOaGEzWjN0clFleDg3R055c3lrdDNkdG5XSnJyQTJTd0RlSFBXaXNhUEI0SzlFZGxpZndXZ0tyc0JrZythTzVPRWZ3ZTZhMTh0Qk1nMnVTdldhVEQvRnpYSXR0S1I3RHJ6RVBhVWF5S29iZGl3NDdrTGxIUTMzYW5ndjRTZEZXS0duZGRuUXVQMUdscEdGTzJZWUQzdUhQNktURGZnQVdaeHhtQTNtS1ZDWlgyU0FPazJDNEtzN0FoZFN1Qm1DKzJiTmNyZWM1NnVyMS9xZTJnSE9JMnZNK2tnNm45cFRKK3drZy8wZUVqVzU1NmtrZXFVTzk2TUZNOGFDZGZmRnlUOVZiNGNSNFlxb09GVGVkbkdubWRkV1hxWEhIWUZoRVByOU9tbjhucnFrQTRsYmJUaW8rOTg2UFJiU0d4ZnYrT3R3U2dUVmJ2L3d4QW5UNDhZd2Q5and0S3YwQ1R2ZCtFbFlKYXdhRHRIMU0rQ2hxZHNhMjRzNk5DSkYvT05GaTNZZW8xQzdBSFFjQ2RMaGJoSndaY2NKUisxN0lNUVFDektKbWlYeUFpeFBxSVBNSzZLN2tOaElyd3BTaFVvOFhYaTM4SFV2SVQwUUtaVmUzRGJtQXByclZ2TFNqcjZjTmE0WEFHK1djbW5vUzlLcGlsNW5MTFJRV2NrNWJ4WlVaNmZMRStySHRHM2I2S212KzdTUVB2UW5IVTh3MHJpa29wdGd1UDRzYTdjcTRFWE9TUGpRemdhUEIzK2hMcjhNdVcxNFR3SHcrMkIyOU14RnRPSUlkL1lVc0dlNzRjMDJRWTg2SWEwY2ZBRFU4K0I2OS9uS0ovL2lJSnZyTmpNU2U4SHVrTTdOQjAxdTNjQWdtZ1diTDF4Zm5CQ0tHR2VPYWlpL3E1WTlLcHRkT0o0Zi9wY1RQVSsxYXozVE8xK01CVGhYdHB3WlRsN21qNmErVEk5cGZtNGVDQzdsZVFsSm5SaVYxWHJ5VmJYNDF5cHlmN0hkSmNJazdGbDQrRmZnZUZZYjdnaEwwZlNZVmVEemJiMFpaODlyVGQ1eU9yOWZCTU5EMzVaazkzMXdQMGc2ZHlSNTlKYTZkZmZ1WHJTTDgxQjN5WEowNHZsbW1CTVZvUDRqcXdETUV4bHBuVEdjR3pCQnlWdUNZSHJJNmpTcjZOK0xoVjd5Y3dyVVVDekNvZkdkQ0tidmJTMmh4UjZTK2VIYUxtVHFveGh2dm4xMHU2VSttbm1uL09HL2NlUWFtZUpOTmRTMVVKWVZmbHpDMUxXeTBNMGNYTUJyZ3B2SitBSW4vQTVnSEV1TzBDeEkxVXV3dnBlSWx0VlZCQzJzRi9zWVpxbFR2UHY3U1FuOVJ5NUJhS1Z5TWRxU0VtYVdSVWRjRDFMSWZ1bEtQeWhBMEdxQmhjRHc4TzQ1VlI5dkFnMnIvTmxJT3I1bkZIQ1lyczdXZTBUZlZkYU0vZTdUT09JUXBoYUlXdVErTUt1NDlnZkh2WDB0STB0VTRrS3lrNTlhUEdGMVZTZU1obzIzNXFZV3FnUDFBRXkrTkRobEQ5VXk1N1BzSUw4NWlRL2h5dG5pNjhTOVBQMDgvM3o3VitYUkEzSzNwVXJtcVNiWExleEFSZE1OMXdwYWFmRkxnV2xDT1psRm92cEk1Ym5jbEVNVm1DMDRlT3Z6ckhRR0s1eXVwYVhwTnM2dWFQUE9JSmtzZjUzMjR2cjZldHRTVVV2aWlVQ3A4QUJUdUFvWGJsUlYySFZCVVpiNTVhaFlQaEZlSzFmRzFsdXIwR3FmQUhPZUFabXZibW5UamFZeUxnemVqT2FDaG9na21oSzZZMnZpaHRiTWowemh5NFlSbWh5b2owYWhTcExvM1Fzczl0TXEwM29QVWlpWmw4U1N6REM2ZTNuanp4TEdocGdLSGFlWE1VWEpVanQxNTBSbTJ2eDBUNGRYOUJnZ0F6SVlTaFZKYTYzYW95c3VyVnJOWWNPMjRSSFM4ZlgzeUpNUnIxd3VYeUlwM2JsdzhDYkh1aG9VVmQ0ektQZE9VQldMMUJ6KzZUQlhqRDJNS3lvTnNOT1pNa1lxNjU1aWxrUzBjdGVUK2hRNHBuZWo4dkVOS3U1Y2o4bWRmbWFLR2VRMUVBekxkZFlWTk8rdiszbHU3MnVZeW1yM0ZxSjh5V0EwZmRiS3pMb3VwYmNURThOU3JLdFo3NWtndERIWmlPTE5lYW9lbStNRk56YXh5TmJ0Q05mdXFJVk50ZnpJRkRvenp6UjFQUmY5QVNQbkJFOHdCWCt2ZnZmWU9xY2l6ZUdxR0E2NEVlRXd6R3E2TVNjUGJqYVAzVkpxTEZ6dGZkNjZ2M2hpSHdPaXNYbVo1OENEcHNMcUJjTXlESEFFZEd1dzRYTldFM1o0QlVLSnFYc3U1dWIrSHVZNVhMVVNhejZMS0dMdHAxdkxiNHcrVjJuTWxOQVB0d1ZzQmVzeEV1d2U3UFBaeTN6TnBnNmJsY2hhNWhKd1lZbFJQeU9yWSt3NWxMRUhSMHdoNnpNSStEd2tIYUdiWnZ1eWRsYVpiN1B0bS9ObG9yUHR0QzQrTFE0NGVIY2VrVGpkOERsMHNTaHV6YVpLMmQwbjVQNFNFQkFsTG1TM1VtemtvQ0JHakhrcWY0bW5kWDYzRi9LUDNTZWp0RVJ5L2VzUmMvOU1MVS83MnZxbDh6b3A2bnd4OUpESlJYSCs5ZVY5WXpsS1R5T2RmTVVyMXBUNmUydnN2R0wrc255WThtVWRsTnN5aHNyOW1Mc1c0eHVhVk04MWQvb1ZSMk1aK2EzN3ZYcFVYWWNYeXZWL1dGNzNucGVRUkZIcy9pcUozVGE1ZUtQSE45ZFQ3WTYzaytpcDNpUWxOaW5Ob2g2VzAzU0NsZEZaZmU2NTVkR2EzeXJzeUVkdVhaVXBoN3NLNDlqaVowcnhKNlZnMlRuUzBlQ1FEaXFjYmIxcUtkeXI5b3dvSDJQek1ZdzVIalBsQURCS2JMVTgzeG1XNlVkMmhjYWwwUjlHSEZwQ2kyNS9tUGxMYVlHZjlnY3k4aEp4QzdCV1hlOEtnVVNzOFZuZTd3aFVHalZycEdzSUpHVnc4cmY3N2E0OVQzVXppYlVpeEt2MnNvM2VvWkZZT3NieE00dkpoa3AzQ0lUYUptQ29IRkkrZVlOeDNqcG5qVVZYc29ZQU5WVzlRV2g1OGZyRDJOOTcrVjM0RWZsUm5GNXlPYWxTbG8xWml0NTJxajV6Nm1ZSmxjd1g5REpPK1RBU3BhaVZQTERmeGp4QVB4QVNSS0N0WXcraFZGMTNxZ2M1MVAxN29UcVZNNmNmVXJrSXAwOG93UFRtUXBTaGxLZnBaeW43YjEyVFNKMkR3SURNUHdUUHdFTE9Nc29JMWpIWjFpYWNleEQzKzR3WGRWTXFVZmt5WkYwcVpWb1pwKzRGTUlza2s3Sm1rL1V1TTNEVGZrNDFkdVdrQURDUTNQVHBFMVBpdko1dXJqN21SNTNHSUpJRFJYMzN6eUJmL1YvckhXd3IvLytmcURmRVBRZFVtaDM2MkpqL0NDWFYvUGU3V0Q3UmtTcTRFbW52TU5MZU92ZWZyNVZiK3dnT3Y4YnNzREtDenNnV1J6QlB4RFN0dTRzU2NGditGbGVtNFlVL3Y5anA5T2k5TG5uUFN2WmRjQitMK0ZMaFpVQytzaFBSaVh2ZmFmUVZhWnpiZGU2QVZ4MHg1WVpJNVFua1RqVHpYNk5RTnRXQWx0TmRMVjgwOEozemxNbFhqN2JTUmNYdE9lUCtHUWxYZmFtNE44RmNiVWtvczlTeVgwdDJ6UGsrRGV3eWdIbjVBOWFER3p5M0tEOWJxU2VjaDVhMnV5SHlGWnlhbFQ2Rm1IKzJ4MUI4SlQ0RXVVclNxdmFUcGs5TU4weVh1OHIvL25tUnVFOSt2ZGo4dk5VM0pqM2FMUUdNY2FlNXV6dW1nbjdoTFFIdWYwNTdvc2lRbFA2cllyOVVWZXZmUnZNQnpuR3BoQ252RFpGMnBLVWt0NmFTT1hvLzdXRWgxT2wrNVBadmNQME56Tlg2NnZ0S3N1cHFxZisvbE5ncnExQTBCcmFjRTV3aUkyZHRqdVdnT2ZiRWZPakc4N3JaNG1kdnh2K2RvOHoxeU4xTVlBQzhkaTBXZVdpcnkvbVkvZlB6cWN2K0hlbDdmQ01QdDdZQVIvVzFyUmtRc0FoaEdUMXpUMDlOb21kRUt0MEdoQnJQVU5lejVVTjM5WVhjdE1Jczlxejd2eVNVa3BxblNwcEU2cEhaYkhvKzRxa09lVlNmSndsNjVSYnF2dHpTelVOMmV1WTVIV01PTG9VYnJxUHQ4aDVLRTVMMVZnL0hudXVjOGF6enYyUmcxN0ZWUFdTSXRXSzRTWDI5K1hULzY5cnJuMzVEK3I0NTAxaERpcm9XUUNhMzA4aFhSckFmZUpJTFVpMnVScUNNNlBhVVRpN296c3F6bTZYbGFSSzVRcmhBbmhUMnM1cXRGNnJ4cE4zdTJKZ3h1MTFvNm10TWpCenJyQUNsZEkyaEdzWHoxcEltU002MlRwS1lSSVRvNnU5K20ydUpEZHExYmRvS0FtMTVOZm41TTIwK2EwdFNSMW1XMER0MUtHMzRzcU5ZclNhY1E2aGhsYUNpNUw4REFIdDF0YXdIWHd0ZVZCclZkN1ZhYmxEYTJ5dFc4YVZmdWdpdHRHdFRWMndTZ2hJZUozbDVhaSs0L2tCRFNnQW40ODVXZ0FZODlacWpiWnpoZG82MlUxa0piNlMybEFRM1VSZlNXYVEwUFFkMXVuVjR4YXNtUW1iOVZKUkhRTTBSdkx6MVQ5UGE2MDZBU2hZQWVJM0o2YzlNeFRKZ0VxMzFVcHYxR2tlcWkyVmI4dnpqRXBUNjEybkoxMHdVNjdOZWpUYjF3ZE9jdU9mRE52UjI1L2xwV2NPenYxWWFYUjUrdk5PUmVwam1EeHp0N2NuaC81OElXY2d2VGhwSEhlL1RubUpId0Y2NlczT2srNUNhdnNlaGhsTjFBWEw4OCtzQlQzN2pkaXdET2JpRDZWcDcyaCtqUHR5MWtNck5FZzVHaTMrWXAvM215K0FIUFlhUndSZU9PTmxZbjBSa1J2MnEzTytxdWxaS3YwWmhHOG5odFU5NmZSZ3NGWDVPdmZlaVhPZTNEVU5IOXVLZU96aVRvQ2ExRzJTeDhXUDRWZ1l6b3U4Qkd5WUVDU2p4djB5TXhkTno1d2trSndRUjNOdjE2eXlOUC9uei9DbVVBNkNINCtJOXdYb09wMzc5L3VXeXZqVi9GR01nZFp6Q2tCRFBjM3hMOW5yZEVnRkl4YnZpeWNQb1BpVTNRRVlVTm1NdmhndDdnb3Fzb0JUaWlJZ1crMGVnanVqaGxmNXFOT0MyTTZxb2RrL3hBZ3B2Q0ZNb3pBUXpvSDVJeGtvMXhvSGdRQWlDTHlLQlVrQmU2bkI0ZFVQM3ZTaWhDWG9MdEw0Z0pBVUlNb2xCRjJmeHlXeGx4NE1CQkRxTXJQVnRQWFo2TC9JTHBJbWRXSGkwTTdyRjdQb3JYek4xNXh3VGRnRk1tRGpFc1BXVS94NWVaaUZUZUlOVlNOUXlBVkdXUzNWdHU4RVJiQ2x1NVVBZ2dpYWFNQUFBQVRBOFFFUkVSVFhuRGxpM2JhZ3M4OGNRVFQ3OVRjdlJ4KzgzbTlNYTRLOWNReGd5V2psL0NUci9abmRHd2pxUFJhUFFIMnV3ZDMvK0NjQzlqRmg1SzJIYnpLQmFhODVSR0hubmtrVWVySng5Ykh0WDZmMlJXOU9JSnJla0g2UXZvS1M4NGMrYk0yYlhNWktjemcwQnV4M0REYmMwblhPWVMyVmdDN21WVFRhMWlZbUx5RTh2dzZoVlBlTVVyWG9WWEFBSVNacWUyYkk4UEthYnU4K1B1OGkvOWlJVzgrNkF5REFJREF3UGpCZjlTWnZNejZwZkNLWE83U3BqYTVJWWhQMEJJWTM3VEpNY0FoQjFVWWhGREFMWHV3SzMrUTFGb1A4R1lPalRzbFZuV1AySklQbWpKd3ZPMGc1dUZZZ0Qwa244OUVPQXp2QUx6Z01QaGdRdDh5cU02M1JxRWN3S0JRSVRzZ08walpRTXp5eGRIY2F6eVF5QXNYdkNaVEVJOUpZaWFtbHBxZ0xYbVNwdjhOcXhnK1BTNnlqV0tuSnhjY2xnK01EQXdaTU9BMXRxVGJzakgzMEFrU0Z4UlRZSkNvZEMxWWcvOHFrb2EyN1lZNzdSbjlMSEd5dzBNREF3eDBKUzJjZktjdytGd3p5MS9mSVBMVnpmcTRJWWJidVJHMnZoTWxZa2txdmsxRFdJZ0hteGY4bVlzK3JDd3NMeTFHV2tQa0ViVmtmTWNPWExNanBuUTNqeFFLM2hsTmZ0dTNrcEVUVlNKd2hGWU9qWXhxK0dGVVhjN01SRmtWUXFLa3BJeWx2NThzSnJwVVNmYVNjMGZtQUhBMTU1bjdPTG1DUWtKU1VqR0x4eFdneklZR0JnWTNJQm1VakViREN5amdpOW1sRTh4RENPU3FDcGRoNUtTY29PUndkSEFvd0tMTDk2Z1AyOXBhV21sL2JWQkFFajlpQUpBcFdSTXcxSlBnZGVRRHVuNUF6Tmtuc2xLZ1hGTzkwbStmYy93aGZlakkxV1V2TS83dk0vN2I4WVJEODg4ODh6emIwd244M3dkdTQ1eFdPdFVqM3ErWWNDRXExQjQ3TG16WkEzdjdIMmRXRGdBT3J6SENGVlhRbWtNTG1qbUF3TURRMDE3Mm1qNGkzSnNXNDFvS0VVOWp6N1d3QXBheUNMTXhqc1hIVUdRc2NqRHR0MU9nSkV3UEVSUjFLUVl2L0RKaStxWEptZGV6UGFWSWxKUzBpeEZ0dlhheUJoU1lBeGp1STVXeC9KdnhrYVBqWTBkYk9zUXBoMjN4eDM0MUNLczRBSjNtb0xENmtoZ0N4cit3SERRa2JreElDZ0ZBT2twUWlDd0NxRS80ZkFRNDcvek9tSFc4V0l1T1hIaUpLY1J3T28wMXlFa0V1bWxSYkhZYnVpZnA0Y2RJNXJyNDJ1Zjhlb1JjTG5IZGJXWEpudjI3TU5lV2IveURsV0ZCWCtiOEpHNFROWGIxc0JnTU5pVWZGeGNYRnlydHoraFkvbVBKYSs0UGhvRDg1YTN2T1h0ZE1VNzN2Rk8zakhGNzdiY2RLYzdrNXJVNmxxQlhOdnBTa0NkRk5lL2NkZWNYSHR6UzBBQjhLU205L3hOK1NqL1l6ZnptOUFkOVNmejR1L3dhL0IzZmhCWVpHRGhnVS81T2ovbjkvaUQzMjkrU21lK1VmV0RoMEdMbEppNTV3MWY0MmQ4emhlL3h2ek9wei9FNHE4UjhCZ3ZIZm9NM285bkFMWkhYMk4wNUJtcjZSZzh6OGpJeU1oK1k2UU01ME1Za2paZHBEVStzYWxlNmM1R0gzSFZ5YWVTUmN4a2NaMVA0dUJNT1dtYVRjcDBXUEtHeVEwS2dVQWczTFdwcGE2UG5nei9wSjRoQmcrQlFJUjBJb3ZBSUdYbVhvTStCUUhGcGs4bklDQ1FnT0NuT1hidEtETFVodEdlcFRpTVpTd2xRRTlicEpLWW03eWIwVHFNN01oQkJGenJBWmRBWHF1bzBZaEhFbFlvYkY2M21VK3dRWlJudER2QnUrZkZpMW1CWVhBU0pyblRZdC9PdEZNNnBZQlJPdXdxVWljUkVaRkVrTHltcHFiT2FoUzByenA3RmVnNUhCQW03RUQ3akZiQ0RwTUtnaUJxYytsdEhkek5oL0d2NGxMcFdkS2JVUUpBb1ZDb1dxUEszcCtTTEZ2R3dFaG84U0o4WkFEL0VXU3lQWU9HR3JwaFhIZ0xnNk9uSXUzd1BSODVqUWtBSGd6MWVOUHNuRmVDMzd5dkxMZGpuTXBwWThham1XUzJNNitNT0xvem9oUU96S2R2cHdseWIyNnhBWXVhZHl6bkZ6VTF0ZFRVQTFsRkI1YUlpR2hmaE5FTWV6aWJNd0lZcE13UHVVZVFzV1FQZHNhdXVDdFd2VTVUR3BPSytxeEtzVnZCV0FPN2dlM1cvWWlMcFg4ZjhzM0hucGs5Zk1VN1oyWm1scG41bHp6c1FwbmUwMG5QcmRoc0J0Rm90R2k4d2NGWXB5MER4MEJTRGxoNVJrWkdKaG1ROS9UMDlGbVBKajVERXhNVFN4emo0elV3aWJFeVM4cGd6L0RaOVZZSFNCV09oN0lRMUp3Qm9WQTlkd3pjY1hoeFNJZjB4ZlNnUU5wSFVkUk9VSUxiNVcxZmZqUi84WDZCeDJuSU9Oblp3bmM0SUxVejZpY0RpUXVYMUZFT21NWFE0T00xSy9TSXFZT05CZlowQmc3b1dXNGdod2JTdGlFUENBZ0lKTGp3MDBpNTMrMy9MUkhoMmY2OHplUVBHR1FtUGFhL1JvMWZuUDB5OHBRTXlHcGxmTVBWWENzdDFKdExVTFlwZjB2dFJJRmdST0RBRFF5YlhRa0t4VkNLK2FmNEY0QTRYYTlCMDkycDZIV01JTVlQVXdnSmhFS0NRVDRTZVpPWVl2a3hhN1VMUlBkK3ZMR1A5aExJL3VVS3gxbkE3cFdseHFIK01LZ3ptdk05eSs3WUpGL04rNXlabVRuTWJ1cGM1K0daL0MvTnlYVVljTk5VRFU4NVJEcFBBOTZIWW5keEt2c2Z5MmV2SU1oWTVNR3hRMWxPUmdheUh1bStuSnhjY25KUkVSR00vejZ4akx0N25wUlgrY1RBZ05wMzVFUWFxSnI5UEVMYU1VNHFCQm1MUFB4U01HUCtsYmlwRm9Xd3NMRElNb3I1RmczT25neTllN0xpUUhvUGRZblNvNEZBT0dCaGtSSkw3RjU1eTlMM29xRkpONTMzQnpQajRiWHp5Z3lzb083TlhZUkNObjA2NVNISVdMS0hrNFNua09RZW5NSWNmRWZ0RGo0akNpNWZxUUxSZStiRVplaW1wMjl3RXJvN0FGSDBGUnNLREFhRFdYRzBkeUFhR3dIV2dqWHgrUm8wR1l1ZFVsdjN5d3Y5a1FuemFuYVNUSEplRGhaZVVuK3F6dnAzbDJNMlR0U0FoWW5KMTVFU1ErRWtUSEtudjhmRFBmQjJ2b0k3QTJtR1BZTm1JT3FuMWJ6T1hWeGMzT2llRTlYTno3amhoaHR1ZlBvYWI3eW1hdVdvV1BPVmxaV1ZsWldWbFpYMXQyWUdzR29XK3JVUlFCMjF5c3FFVU0xU0RNKzVGaDVnNjUxaHd1T3dKNUNTRmtZWkFIdGJvVXNHdFhCK3J3d0JrYlh6TXgxcWI4TXVXMW9vaUZLWXhNSTRFQ2tHQWNVamRpWWxiYWMzeGh5YVJHdkRxQ2F1MGtOSG85SDlOZjZmMjA3azl1SCtYMklpUkVhYXQ2Q21LWVZRSWpqR1dyWFZmOUZsNGJGbzFDV05kaUtoNnRmZ1pOcXNUU3ZSTE5leGFHRGRTaG51MjNtZEhTUnNzWnUxb0FRMk5qWTJ0blVLMjRhVGxtMFRQVmFVQzV1N0pmVWsyUXRjZnFrL3BrS05hRU9FdzZxRE5aQkdvWkpuRFZDRm95TE1RMEpDUWtKQ1FrSkNRdTNaRFlTMHdvQStPWHFuWkZYMzFVaEpTVFlnS29tdXhYYisyeURSVHkwOE5RTUNXd00zQzI2RnFLVnVCbTBscUttcHFhVUdYeVNRVTRWRTVEejdJQkNWSTl1RGZoY1VrUkszQTFTbjBZTmdVa20zODdFdUFreEpPcHRGRmxtYWZhc1NMQ3dzTEN6V1p4RUFTaHJVamlkQkwzYWdtdWlVY1VxYm5nTzRCUndTM0tHcDBLQW81akM3NkhSMGQ2cTVORFEwMHRDSWMrOVVmOEpodFdESzdQdnNoM25BM2w4bnpBc0tDb3B1UVlpQVo1ZXhscHRUUDZJSmJlNlNoRVdiZ1lBQTVlcTk4RXJhMHQ0Znh2VjltMlk0WnB2OWFyYTJJZHZVc2R6MlRsMmZCczhVTzBON2xyd3dYSkNIaElTRWc1Q3dtVk01UzZhNzBuOTlndUJZaUJ1WG5FeDZRZE1kYnMvSGxDTG14WTNHQVpXZFl1akhRaXcxV2RzU1lpN1I4S0pZbTVqV3BMREFNS2dFcjNSL3lNcnFXZXJ0a21ENEc2OGVNZ0NsaFJLeEFVNTJiSHoxRkdNNXhxOVIySmxnL3c2Mmt3MnYrbWJ0MGs5aHloUWJIalVhNi9PcWhWRUppeXlTSzhydlJxRlFBelZRa0FuZW1najNYMGM5S3YybGVQeldOS2FqN3pEd3MyS2xSZEwwOVBUU2p6WlNYbUxkNjFneDZTK2taZER6dEdkY2hLMC91ck5KQlpwMHN6WHpsWXRyUWJiVy9jZFN3Y0NUek53ODliWklKS3R5eFZNQnF3RjRYVlY2dml0QzBtOGpRZnFRanlLdTZkVDVkQzlOM0NzV3lsdWt3NWpBQ1BhYnpNMzhUNGZWdVdiaHpKU016RmhjV3o0RUkwd3FxRWQ4OE1HSGZJeHpzUS95aWlYUWdFQ2doNzgxUG9FbXE1T0h4b2tUSjA1NnNFcktwUE5remNhZnB0czAzOXNZMlovQ1VweFpUREt0TFp6dE5waUVFU2ZrZlBpLzdqbkdCak5peEVoR2pBb1IwM09hWXVuU3daeGhxVGcwQndjSEIvZVJwS1VBb3pwcXppWTR2V3FTYnZvZE1CaGM0ZjVTVTFOVGF4eHMrZVFqeGpza2Z3RkVEdU94TXpjc29heVFkbmowYjUzeXpYZzh3MTFmNnNIRzJIdHNCN3hqeFBaaVZ6a0FYeERrZ0lhR2hvYUdob1lHbHRvL1owZlR3YTRSYXFtYjkzUUpSRVJFUkdyZFM4eWorUlB2RWNLWHdrL1plNkZUTW8zNGJqcDVXNUc1L1FtUG5sdVVnZ0psS1lTaHRwYkl3UC9sQlVQbktXY2ZPUk83MjVPMVdQUmlCakNXMmF4Z0cyV2M0ZHJTNXFUR2hQRkZNdEdYVVJoWnhsWU9jcExMRXlvWU9nOTQ1N0djcGVBQ1UxMURqUnExcUZIODVaci8yUWQyWXUwWm94d0hJY1MralVmb2x0bGhuV2xDUC9JSmR4KzRONmVsVzEreDZNK01ZUmFGRkZIS2FhNTZHeEZoQVhqNm9mckZoNVdXeHVaMnRJRXZCUVdGRkUrczZOTUZRdlVvdS9vTmxidnhjSE1YRnhjWEZ4Y1hGeGRYMFhHbC94VXR1cGtqS29GR285SG9KdDZvTHZaZWNRYUlBNEdxcmlNOElaa2N2eGpFVlRUdXNZdEFJRVFnSkI4RHVQSWxLcndabkVZM21QSDVjMEpJcjFkZkhadzQ3eWFPSlZhemlMNEVGaFlXVm1iMTlyTU9mRTdhKzg0bVRCK08xS2t4TVRINXlVS1J6aEh3M0RQVjRUSlE2Y0JsaDVNYkdHSTBseW1Vd01EQXdNQ3doQlU3S0puTDBqS25SeGNyc3loZmwwbTBBS0tsL0doSnYzNW5mQllucXBlbWg5TUl5bDBDcFBIR1pFZGh0WUowT0J3T3R4aERJbUVNK1FkTE93RjJESFpyalZ4YkFJbDdWU1VlRzdtU1NpZ2M2RUp5ZVQ3NlY0UVhGWHFBU0x0a1VLaUYyTG1SdzFVQ29nVnR4SSswQW5sSDVlMStvZVBpelFkZjQyZDh6aGN6WVNraG9YTXgwQVY5NHZMY3B4ME9LeC9ZRmhhZGJ2T0Nnb0ppVUp6ZFdRYlJNTjNSVmFybHBKSTJwNU9YSUNVbEpTV2QydEloUnZXY0R1Qk5OdVM0eElLMjhsRUZRWVN2K3FGQnlraXFKQ0UrZmlYRUYrK1VwS3pJblVBSkFYMFNqMkN1R1pKYTg4SXBWMEU0dTNoV0RkRTYyUWVyU0VZMnlsbjU4QW1OOHYzWTZ4R2h1NnhVOVYyTXdOTktzN0hMMFc0UzJsR1BKcVprbTJsaDhpaUR1SlBNekJ2ekhaNXVQd0hTbG9WSnlXV2E2aGtqSXlOanVjZk11TTdqaHlPWEdTbStvdmMvOTc0dklHKy9URG9HSWw2dHJ6c3NmbUZMVjV6Y2FYSjVYbERrQlFVRkJRVUZCUVVGaFdVdHZscDZwT2hQVnN6SjFIRGl4RWxPeXpsclljb2RndElSdFpramwyeDBqZGhmaWh4OTdTQ3NBdUttYUNOWVQ5L0dlOUJTNi9WblpMZXhJYkw1enhKSTAyeTNZZEh4eUYvazhVNE1xL1FBa3BLU2ttb1NvZS9VMDcwYmgvOVJab1ltNjgzNDJCTWZIei80YWYyRnhiK2tWWHN3VW0ybUlQSXRtR05EenNhZGpTK2JSUWswTkRRME5EUTBORFEwTkRSNVEwUGo3UFVVdVpCTDNoeVhLVUZPVGs1T1RrNU9UcTQrb3BPTGtMKzJObm5kY3ZQdndpZlVwQ3YrWUtYMFhYUllOR2ZNVUpteHk0dTh0dWtvblQ3cG9jYU1NcVVKcm42aVZ4OENYNC9YUWJNcTRndTMwT05BQ21oc3FQT2lOSjBEQnc3KzhETzVkNjVrMTZkOFNzSTJWT0xrUCtpYVlOR1d3elc1VS9VWE9MdGZCR3Z4NW9PdjhUTSs1NHNad0dGaDBZY204SDZ5L0dFZEorMnQ3dm41RmQ0OWQxck90TkQvTjJxeWpreGhZaTcrZUVvMDlEVk9XeE5tNXh1WnJOMVMyVUc4OEZrNnhCWEdoazBUU3Q0MUhweDNzVWdkYzBZUkxuV1pzWG43V0ZyRGdFVi9uLzlYVVBpU2JpZkdNQmRRY3MxTktkWG5hRE5WL2xYd2YwUDhQd0QwdlhSU2ZUazk1S2ZHcTVQdnZUTjZ4eHpzKzFFSXNTV2hpdDRPYXRmNkVnWjVOQWtKQ1FuSlZWVk1jdERhaFd2aE5CaDAwemJ6L0dNYVd1cmFYOXRBeThMa0hoYVphdDBNalMxa2wyMkpoUlBBQllKYjVUeTg4MTNaaGV5bElUSTlUaUd0V29vaG9aSHJDVDdGRjRwa0d2eVN1djBTamIvTUFvb2EyVlp5NTBQWmhqMS9HQWlYMWxLcVJRL0hWYTBUMzdGYy9MWThIZXFwK3NZY1J6aUJLdzRYdTlocUNSYS9QV2g4UW4xM1Bza2p1cFkzWXltUUQwcmg1cVpmaklvWHo1ZnlUTnpDbmIrN01pVUM3TG5sSWJNc25rUXVTT3IwZE5MS1NFdEowdzk0MHZtNHB2Y1A1MDJmWjRFZDkvZk84K0psRjdzTFNxZ2xlamQ3VTNXTk5OTHFCamRVWjl4UVVWRkpSVFZQbzVnbmtCNEFWejA0K3k2VVhIcVc2Z2tpYmJPaWRGN3lJMGVPSE1QeGNGK3Q4Mi9PcXRjcExpODI3cGtCcnJmSnlOSGxSRXZabHdrUnR1L1ZzSlN1by90M2lXOG9ua0QxWVBldzdyVDA5cHYzdHRLbjBkTThacUdNbjYrQUluYVFGNlFGTTZWSmVncFRLWWlibHE2ODJJdGkrRGRxc1Z2enh4c2NGN2NxK24rSFU4dVRGSXBmU3FHU2VxSll0WktsdFdvWXVLc3VtVzc3Um9SSDRZTytvMEpjUS9OUUhIeEZXaEJLZC9PYUFKN2ZmU0JtdEwrWlE3SGoyWTQ1elh5NWUzeEdOWUI0K2h1TWpJeU1paVgrOHBmTDdWQ3pyOHpUL3FmYkJ4V3RjTkdIMHNnNjlLeDZHVmgxeTB0SFJ4ZTZvN05yMVlNb1huN2pVY0ZVV1oyaFVnZ0F1cEw3NGtMSUwzOWVsUlpmL245RnFGUElpWThuZk5qU29LOEtWSUd5NEt5RTVFZi9OT2ZCaHorUDhhb1piRTMwVlJGVlJLQVBGSkFQUGRkZHJ5cDY2cTgvb1pmeXpDRGV4RnN4SWpHUEtxaGhmK3RtWkxFZlFQWW5EMzhyRHZlVnZ2UjF4d0NObzYxeTUwZE9UaTc1aUpkcmEwcTAyTjBQbkFxZDR0cWFJSUNsbzZ3dU1JWmxmSGd5NGVuUVZGOFZsWDRSa2s1L1JrcEtLdWxuRHAxVjIxNWZldE9nVFJhYmtROUtTa3BLU2twS1NrcEtTa3FHcGJZb0lXMFczcXFsaTFiQkpSZnBMelhEcHAySHJlbmdFWVJDK3VrbTlwdWFuVFFjNzE1WU9UQWdLeDVGZzduYVNzenZzZkdQZTk0TzVOYWFSemM0MUR6MkNCYmE5dDdpS3YraDQzUHlRckhadGlsdzFhSEJYN2RJckF4bHprOGZIaDdlOE1kM2J2Q2Zia2VoN2JBcER4MEdOdUpqUFkxMVlYYk1CY2ViSTRjM2Q4UHAyekZPVkFiRGdieHpmdmVDZ0ZLRWRlR3hpUklocUlSUmZiS3lpb1RrL3NjUXJNQ0FsaCs3dzRMYnVzY0oxOXdHTzdZc2pPR0NvNERDR2xoRzl5RXYxNzZGVlFQdm9lSHBISmtJN0xPNEFqd29VQUZLcS9RbTQ1MWNTREQ2OVM1aVl0V21nQThLVmtDQUlMOWdvMWF6SUNYVWJwaTE4SlJJcDdVa1BDWHJhaGdMQW1yWEtzTlZkV0dmdEF2OG9MQWlzRUhUZndTQlFBYnRsc2VBOVBKSlBUcmk1Q2x2UUYxelkxMmtSM0dmMEJoOVBoWlRzT2RoWWFIZFhmcFJ2dlNsY0xzM0lYTjZ1bzBRRUJBUUpMOXhYNHRpNnVKNjc5ZjUxUzRDMVRtM1UvS1FvaU1DRHF1NThQQ1dKRWdBaldDN2ttdnJSVUpDUW1LWEFwNExrdDhOcTc5Q0pSRjdCdkFnYm5UT29qQzJHSVVXMndlbDAzOU9HakxlMWxKSWQzMGNDQWdJQ0d3TEJwTEFVbmswWkxpLzdEek04clE4OUtuMGNYOXAxdkVGWjdMdlVTVDd3eHVKVWozSlJQNTZiYUo2UVNtaWFqcnlWTkY3b0svVVRrU2FnZXh0RWJPY2daajltNkk5SVNmQ1ZwZ0hiajVoWW11WGJlM1hKd2tmMVdjdkMrZkFuY25pWU5wdS9yc3VHSHVyNk1uUkQzMVFRVWNSdHhRMjEyUW94MHVSck1PeUhxUU9Vc2N3a1lTTUdYZ1lCaDJiWlo0SUl6MXZlaUQrOUZ2NCtQajRvcUhMeC9VdVIxOHZGbXVhbVZYNjAwdmU5SC9PZEZmZVlIVzJSTDNVTUl6TUl6TmQ0UTA4Z3hoZ1c1enY0SG1TZDc0UGpHTUozblhsdm4xNkpkcW5hdWk4RXlCMlYxeTZZMlBBNFl4OHZGMXNDYWhXcnV4b2JzSnk4a1FoSDVaOFFDNFg0NnBucVNlSDhCSkRZT0VhSjdVV05WVy9DbGJJc3ZLc2x5TTE4TW1DSHJzWVFFTVN0ZUR4Qk9BbTFveDhUM293dlBqaDFQZWF4K3liMWpHemhWL3BWeld3bkd1VEdCb2FtdEZBT2NLVDV0RFprRmMvMDBzeFRKNS8vNDJtalphRkVOTStPa3grSUw4ZUl2ZGRmVzAvejBjUHZnMjZSRUY3SnY0UEhSMDk2Qkd4YW1pRmZrd1J3V29xTnp0ZndYeGlzUGUwQUJJMDB0REYzTXcxVGpPLzVhdjUySFBtYzdXZm9xS2lHaFd2RmVqOGU1T0cvVFJsT3JObEM2cDZ3c05EQ3ZyV3FtMjBOS284a1BMUXBkTDV4bXF1ZGlyMk1EUDlCelBZRkEvYTlablZkU0Z1RjVHd1l3KzI5K1JjYm9LRm9XN3ZuWGsxaENaMkVGSE5scmdkRnhjVUZ2b3E2eHN4bUhEbEs4OTJKaGdhR2hyVDRQSVVUUWRhV0tERW15cThaOTRqQ1pSY0R6c0pIZlJxVDA5UGIzb0UrcStUYWNNQnl3VFRiRnRQWFdFM3dRMG9ScHNvcWZrNHJiRUhYNi9EdHQ1SVhSVDBvSkt3TGxZVC9kL2JNVnBaRW9SbU9NWEc2cjcrVnhzR3FtZ0RhMTB5QUVJTGFDYTNFN2R6TVRyWTZZbUdKM1o3Zm0wREx0WjFtaHFqUnVkOVhob1ZGZFdvcUppUmxxYlFINERlSE9qQTZTOENnY0REZ05NQXhsMmIzUnRqYkswMDB5YUdRbnNBV3VXaVlkZ0ZlTEV2RlZma1BkOG41Ym1OYkNVWkZpVkt5SEJHZDFKVDlraDdNRGRMaG5FQ24rdklTUFhzUXJ2NkdOVUg1Uitxb0hBSHJsR2pJYXRGdno2Z29KNEZyN1lxL1Bsc1dQOEx6c09JT0V6eGUxZW43Y1lVQm9hWU1lTXdGUmZsUFhOUDRsSFg0eVZEUVhQT0xZYkI4cU5BRDhOc2JzSUxOZzExVG5mcENzb1Z3czZOaHNQQXdEREdNWU5sSUlJMGc2b0Z4eE1pNUlsSnVsWU1MdTA0T241Q2wwaWpwdUVKTXloQ3RqNGFHOUFMelhSN05USCtiUmxQSWc1RTZoU3BsWTRZcEJGUEZ2bjFkdUUrVWxIVm5sTm9kTStjRUdwOWNTbGRZbHVCSy8wamNLM3FBQlNCOCtiVFZYbnl6UzZSWHZEK1F5V1dPUFordUlDMjB2RmpCYmxnWHlEbFQ2RzlvdjNUcnBGbTFWOXFMdDcybnl0bzRrOEd0S1prUGsrNEZoQUlaTkROR0R0SnJjMHgxdXpNL2xrLzc5Q0UyTkpYaXdWOEJWWWhpVmt4ZmxWSFIwZEhsemw4bnJjYU9UazVlWUlYOThSRStIRUZlRVl0QXFPT0NERGZ6OEk0bWt6dXRYVWI4TG1jNjExM1loVk8zS2xiR05mRWpRZXpIRUxLOVFUYlFDVER4emFLM241TXcydlJ3eTJLMS9jcE1BNTBmN2c4V0paZlNTM0crL3FPV1JmYkRuZ1Evd2FKbVNFMnFIWFIzYXlBcWV1R0lLeVVPd29UWkU0ZzhxWmRUVzlTWmE0L2RhYURmb3FxVWowWHhXcHhrMFYzNTEzL2tacWk1dmlDNlVrU09jY3pNOTBUS0ViM1JMWVZlaS9SZFRaTmRKbVhoK0lkN0s3cElXMUpGNHB6eDB6b0x1a2RZM3BsRkJRVUo0dWkvcUdsWml6VTlOT1dvS2VuOS8wSXhhcVVnN0R1YnZMY2J2YkU0K2I2UTJVajlvcGRkNm12TjZ6b1lUUnoyMkpWMExiUGZQNHZxbENLdzQxNFJSZ2xlVEtoMWJvOVpJVVEzSndVamdNVWd4MUloTGN5SkpTTHByd1FxT2diTmNhdkdtZTBuaVFoa2dMZVJNSUU2QmhPSHJqZlRYUXJ1VVI2ZEROeHJtNmw1VTdlcS8vSmVQSnhxWEJnQitIWGVGRDE3Q2xzMi9iMHB5aldJWE9OQWplVTZ4QVJYTEpZMFBZeVpDK1ZiNzlENzUyNDRIbzhpamdRYkd5dEpDd25sbnZONDRLWW1MaU9DNGlKUGF5RDZySFdtdzMrOU5pRTFLTEFJUlBwQmRSVGhZdkFLbEpmOWlKbHN4ZU1BVTE5MW5nUzBUSFZJQXdCVXRkdEJiN1ZURkNzR0FZaVI4YTZvS0N1UDArSGl6NGZzUXNjMUVZbFFKUml4OWprZVF1a2NUN1A1Y3pNek13dHA3bkxEL2ZWY0tzNzFkeW8yS0E2OWoyQmRzd3ZvRWkySmVlazU1Zng2eDZNaDRlSHQ4U3ZoZTNFUmwzN2FYZDZERWZiSjMwVnZ1Q0tkVHczZnVGMTlweGZpdm5zT2E0UGhUL1lWYmpIN0pDUUdLcHR1VzlFRzBBc3dJQmNBZ0UzVjQ3N2VaVkpUcWtrSVVCRE1tbjY0Q1RiZ2tHdXlIMTZrT3FRakVqdTdEK2JhU2tPeFBva0J6UWJ1c0RMVWxwTVBmMXRQT1lYSC9saTVJMkpHTEkyMnc1bHBabHozZExVY0NPZzRPaUZkZ2I1TVArSWJqYnZKdWdmdU9SSjNjbkp0VTZqT09wcFp4QS9vNnNxNENORi9KTXA3QldFRWZuNTJYNW1jN3p5eXlaT25UeVFuTGhXbXV1M0gyN2JZWjUya3psSVBYWkJGRlJTN2lYSk04ZG1HZDhYQ1ZQckozWVFlOVR2ZzBKSFRFQmx4VXZERWlKOUVCTnlJM0lUSythUjRrV3F1MkZEa3BFaFJWeXBPTHhsNmhBNm9tc1NQUWNhN1AwMFhubkNRUTFzU2xDTVVHTGZyMXJ2My8rVW9ScjgvLzQzVDRydGNIQmF5VHZNSE5WYVc3a1dXczBrRmw0NVpiVGVRTEZQeXVHSUZvdi80OE5pRXFFTVZkeDFkN1VpN1hmQlVhd0YwNGRZcFB1aXg5NTMzM1F5MU55Z296UFpPUWRwaXhmT0tFVFQyRmwzaTMzNkIyczI4ZlF1SkcyVDJMci83WkRsVU5IOTBXczRaSGtvQ1FzZkRtNkpDU1VIR0JUdEZ4MFRmK3ZDMitiNW8vYjVLa3QwdUFqM09MZ082S2MzaCs0SGVZWlEvZi9XaTBBVkFlL205ZG92M3dmZFFmOFMxNXRvL3krVFN6cW0ySGl5UVlYb3FvcmU2cUtCdWVDQ0N5NDJLc0NPQmxJR3Bib3laQjcrRTFIVkhCQTY4M2l5dEl2YjhaSzZvMHQvaVMwck9JbGdkcFdod043bVRnUm1DYUJNWjZDb1N4WjZtN0xuYWJGbXRHdlJRb0E5NGRKcnFIT1BjR1pMVUdoU0Y4Wk5LN3ZxZnBpT2pvN08yVkdMZEh1eXdqSFNxbGJWajhQYjgrSnpkRnhXVzJTTXMyVzA5ci9WVE9LMk8rd1dScmNpamJ0V20yYklkanZydnl4bnkwdCtTdml6d2JadkNQV0JadkdsU0tGZkIvTmRIL3ZJWFNabDJoM1ZEa2lxWDN3UEFlVmxEQXhXM0cvWkZrZmVmUDlJRDR0NXhkK3VjY0lkVStkTVFjYjZybVMwa040bXNXWVF3NVNyZFhQUWppcVNOZ0dZN2FXU1JsSzNZRlozSlNKNDhEdmpXK0U3MnF1dzBMUStmSmpqMjVzSFFqT0dNUVhydTFRMDVtblhzK1dmejYyYjlRbVU3SjR1Vm9IQWIzc3ZDYXU3bGVUd29DZzZ0cW5YQU1adkRtQmkyc2VqTnQvMmhrNkhZMWJkTGU5cTRRMXFFMVkwS0sxcUIyNTVuOVlHQ0FSUzBMZlB2bVVCQ3YzclBqZHF2dTM1UnF0ekg5dmFkWVIzYmY2eGpCUS84amRMWGhHVFp4NkJEbTBVQ0FRQ2dVQWdNSWRBb0pWc2I2YXBUaG9hR2hvWDlqOCtndUZ4V25ZZEhCd2M5U3dmdHh6elZUdTcwZExTMGpyRWxmR05SM3pBNWJtKzlpRHoxdnR0TmdaYk1ocDE1a2VzUmt2Qy94dnFMUXhRQldvU0FBQUFBQUFBSUFjQUFWem5CUVVGQmNYdG4zN205eGJ5YTJVTHRrODdZM3RYOFlFVlFRais1KzR5cks1R3lOSnVLa3JkZWVwMWNmdVpFd0dSYmJVYWNiUHpzQlp0S0N2R1duUzBvS0NnaUNKQ2dEKzBiZFpuZGFlZ1JIN0cwL0hCRUQyUklacWw3RnczWEUxVTh1QkFSa1pHUmtaR1JzNWxaR1JMY01ITk5JWmRjQTJ1NDZ1bG9iTTFXd2tZTHRkY2N4MnZLOC8zTno1eVhldG50RTRza2ZQZXBlODVaQWZ1czN0ZThJSnJYdktTL3R0L3ZkUlEwdmFvOC83aGNDdTR2L2lzVVdUMmRaaVZEcEhMdU9ybXdJRURCdzRjT0hESUR4emtNSDRwcEdxZDdack1ubU5YWC85cVF2VUx1MlJrUzNXck1tN1I3TkhRbDVWN2l3VlhzU2tYQTN5V25kYXVxeTJjUUFiZWpadFlUMXg1VkxIQjN2OUpmR0w4a0I4dmxQOThUbE1pcFFrc29vUzJ3dEl4NkRyS1pRbURsRm51YlVjZEtsa0FIVmpvcEZZK2l5c09wbGJnNTlXSEZFcG5QZWl2Mzh4amtxUno1RUlyL09CajJpR09GS0ZnNUJxNFVjUEsxcFFaeHUzMG96djN1MzhpVWFPSGxzME9VSmFPSFp1WllPc3F2MWdmd1g2RlZpT0FmZkJJMFh4d1FIazZpTGJTcWZkVlZyWFFob3FyZFBRQzNOVmFkUk1ZeDExSHI2NTlReFpMdzdsSWFLWlBIU0xhZm9WUGJCTWxPZnZiT1dvUmI5U2lzSlJaZ0hRYWtZUWxYMWhZV0ZoWVdGaFlXRmhZV0ZnKy83eGNLaGFmS0w3S1QvbU1YL0NIL0RYL3dDOW44YjQ1Y3J5RWhtZkRibjJkNTZmdHVvQUx5MmdycFNpdHFpTmVRVU52SmdtUHBiTkFyWk1NU3lnNlhXRmFoYXo1eXNyS3lzckt5c3JLeXNyS3lqcVQzOStLTWNvVTlsSDgvMWFSZXJRKzJEKzhWeTlyVGUxSG8rd1F2ZENaUVFmYzRTRUc0Vm9Gd0NaVzBla1BIVWI2NFVPdzBmZjJyT3NlVVZWdk5mNG9wV2c2NlFuRmkxc3ZlbHAweXVCbEFaWnNhWGRkWndXZHdQMUpZT1NrU1l5UER4Q0NWV1ZYUTBaRzFzMUMycEhhRk82TW1YdU9BZVVZc2JISHJ0RWNaeFZubXJmVGMyc2RBc0RNZmVZOElPTFZ6UkRrRFEwTkRVM1JMVEdEUU5QTExEbHZyeGdDbFp5WDFYTjUzR2Q3V1dFVjBkNGkrcDVWWktKZ2xxVXRadERhNjdjRTNjSUVseGNuY1U2Ym91SGRuMVVkaGQ2YlJpU3Q5TmdhVFM1TERvbFhldXhpVE1wNVBIUnhjWEdOZXd4Z2N0OFFUbG56cHBpemZLa2JiTHc2VWFNQ3IrYkxPbURGdWVSSFkzRldKOU9sclEyYnArVWxRcUpYMnNuSEhrYnEyWGJuWHpEMk9jTE1WN2YrejBlU0o2VU9qV2orS3JFSjMvZzRYTzZkb0YrRG9NN2pTQnUvVmRtR0tkU2RxU3RBNFR5WGV4UWx5NmVnTWpSbkFoWjhuLzIwMmw3SnAyWUVHWXQ1a014VEJvd253ZlhueDhiaXlKR2pPVDdXanJpVkFOTnZvOUZvdEVzUTdNa1BYVXJaNm5tcWVOWVJrVlpWbjB0M2lLV2N2M0RUejZMRGRXdnBKcGhYVjFaVzFyRGVjRVVmTWowOERIbkFOaklBajhGQXBTY3V0Ly9jemxBYTVrTStwVDh6YmJMdmxTTjhQZFB1MXVJTjBJV1BEek90TDBaMGxNK0lyZmRCYnRZYlIyckhqUFc0eXBiNnZ6ZGs5aTZGVmxySTUxcWQzbXIxblM0ZjhYMTdyQjd6VkR4c2Y5QU50cXgvZWJTWEVqa3p2enh4ZnUwNXV0L1pnNjVKbVYzL0lRckRDbGVOVW1LTzd5UUlYY0V0L2xuSlQxWm1EVENXcmV5TzViMEhJVWdubWtwQ3pGUFkvMlhCZ0NPeWk0QUZhQlpDMlN1TkFmRG5TZk0yTnZ6OUlEelIvVmRlQ0dxclRpYzNacjhZR094TFlMeGRkLzNuNUxsN2t2c2RvWTNkeUhPMEpUZm5LRHl0SE5VS1R1N2c0T0RnNE9EZzRPRGc0T0NJY3cvK0x4YkV2dTAybE04L3BWM3U0aFBtcS95VXovZ0ZmOGhmOHcvOGNpYTNJaUthazdKV3d6WkV6WGY0VGdpdlJNVVFFaElTVGs1SW9tMHdkQUh1VWFNdlFtUVozVW1KdTVFYlRtU0k2alp0bDNVdVdJZXhqU3FsL0ZUK1BuMWNNRG1JRk5ua242UHN3dlNzd3Rycy8yM1d6UDNyOVEzMTloY2J5VUI4MlBTSU1Cak1zRlVXL3ZhUmIvSEtpbnM5cGJEMmdoelIra2p1NmZEcUIzdVB4Nm5RQzl3Vk5Nc3I2azVia1lXaDBhTWhFV1hLMXJjT3YvalNDNDZJdGFrRmZwSDN2V2g2ZFJzUmFwQnUzRDJnR2RmWWpKYytIMWd3SktCbUVnSlFEWkw4Qk1ZOWRiZVArbUhQWm96RzlyUHl4ampKbm13UkI1aVIvdkNNZ0FJZUQ1Q3lPbDFObWtKZjBXZGpTWnBUWjB4ZzFhUXN0Q01vQ3JxS2JJREo2RnB1TDVvSE5MU2JSV1EwdG53QmdlVUZWNTE4NHB6Y2FGV0dQeWdGRkFxVG4vQm1hYkZLUzJONzA3MjhaWmw4Zko0WXErcUdLL1oyemEzTkpUMkEvWnRuR2Q4MnFaVjlZZDl4THhONm5WaXJISjFESk9hazBLRHo0WDNLZGoySUR3UFE2RFN6WGN3bDhETFFwZ1d6R3JpMmV4b3lOQm9nU3YwbVY0cTh4b0F5clAxcWdDRW5abmNTSkNQRHhYUnIrOE4xRlJFUUVCQklWeG5zc0gzZHhuOTJGNmdFUEk1bi9jNlRNNFE4VUloWXYzcHRGSEh3MzFxWEJLaUcySUFvUXVqVU9CNXhDS3VXV0VTQndZclVTQTlqRW5CUW1iS1ZhMDFWek4xSzFWd2hhYjVjVG8rK2JkcDEzc1VMNkFMeFZoNm5zSzJGT2R4S2dicXBmaCtsZm5LQmxVRDVOK2t4YzhxdkZNdjU3dlVkVU01QUxnWk5SQWtPYkFBS1YvWmFwd1h3VkxRWUw0N3RzK1JzVGt4K2xBMjVwV0FXZ2hTRGxMbTg3K3lhQlpwc1k0ZFdZNlF4MDU1VFdOdXNjOWRZYjkxaXI4YU16WXV5aGZGbHgxZ0I3SDN4WU1IVG5VdGRlUnBKYjJpak1BeHNsSUJBQXAwbjFRdHdzMkErZHhCTG9kM05salFZWldsSmI1Uzh4UTFGWVhwVGN1ejQ4QlF5VTZOVTVnWHFaNlJyOUxXMmkzWVhGMERIaFluSTNjSGJhUGF3MmNIZUMwRDhGVFJiL1RobTBCMEp3Yk1ON2VtWEJVRGNrcmVNOHowem5ROW0wM3VDT2UyWllwMUxTeGxrZ1dVVkRYU3hab2lDbm9kQ3dVNFdFRDNibWh2V2tRQmZrTkZFZjkyRm5YNklkYzJRQ2JCY0twNGhzL0ZXRGRkS2taT1N5U25xelp1R0hwZGZoaXpiaXVFWCtJeEViR05lNEJjM0FvMGh4bjBnQ0Y2anFlcTJ6N0YwLzE5OHhmZTVrem4vcS95LzhxdjhTNEh5bEtIZmY0Vm0xQlg1OTNPUUx5MWhuNkVYMnRZbkkwcy9WM3M0NzFTWXJsTHAwajNLYVp6U0lLdjBDa1BYRmRvZTBjdTR5Z1dyZUJlYXRXbjNLZzFJNVV3bE9EZzRPTm9oaXhuYmRZNnRsT3BsS1g1S1UzcGd0cEVyeHNnR25zTTFIZ2xzREJEb01hSDkvYkk5TmNJTGhPQU1FQWh3bzNlYjRvS0hkcjNRUVo0dVZFZll6Zk5MN0o3eUV1em1VZWdHK1FGcXUzdmtpdzFpUnBjaHZaOFBIYmlKZFZCZGVOUFJVbTNEUGJITnQyelpzbVhMbGkxYnRteGRTcmZleGg3NjNQNUVPTGJCd3g5ZEhPVmFCVHcyWkcyakZ3eUFOQjlZaWVPckZkSUJhK0s4MFVVc2NyZ0RXVVFUbWcwNmJyUlFyTE8xOWZHbnNiYVhLMEswMnlRQ0pHU1RocTNOMS9lN0JGdHBiSVNicE9SazN3cFVvZFpxTHlqdGx4MFoxdVh5ek1peUdXK2JwOXNnSUlpeGlrY0s0bDMzY3BaRW5iUTRsMS9Tc0tIb0IxaTBxU3pkN0IvcTZhNmZjZkVYN3hKMjNUaU5OVHNFSXNZMFduVXBJeEdpU29jZ0tTbXBwTVIwUkQzM2lRTU42VU1tYUlKcWFtOG1tWnIzVGxpQ2lZbUppY25Gd1lSVVZlMVFVVkdGYXVCZHpXeFl4Q2NEUGowTzlYZDhmSHp4UjF1KzhYeE8rUDQ3bjIxN0VUVTNkK2YyTk1RaXRtSnhnYlRaelNDV2QzTERIejI2SU5zdnhjNlVaOG96UmZ3Z2UyUEs2bUZTNGdNKzRBUDU0Qk9BalE5Z25UOGt4UDZiUnhzbGxYTEtucitlTDdzNWRBK2ZtRGEwUTNDKzh4cmE2azAxOFlZM3ZBbHZXcFM0MnA0MU1UR3h4S01yVzdGMloyNzNZUjhlbit6NHhoN0U3N21CbCtpTEZqN1BBc0xJcXJEWFpIQlF1YVczN3NhakRsT20yWWtXWnYrcE52SnJYV2FxMkx5L0pjVWRZT3Q0a0Q5S0VxcFVRSytkWEtwYkpxanI3KzRPeHEzZkJzSVV4d1ZRSlNPV0pFOUlTRWhJU0VoSVNFZzBSeUlTNWM0Y3VkSzRydC9pRnNPelRHalVlWktWSWpBeXBRbFpUWVRCTnM1aERUSWZHUmtaRHhqbExFOUJuaW1mc2pTd0I5eTE1OXRKVzRuZThWMUtTZ29LeVVBZ1BFVHdldUpHRm1mdmJzM09YNHlKbVF3YlgyZnBhVFNuQXlKWDFiVXZNbWI3ckV4SW1iWmxiem5QTUl0SXJuaTIxd3JwYWgzdjhjOUxMa0NSbFo3dldGaFlXTmE1ZThaMDNQTE1NOC95ekpYNWhGdHJRWlhzN1FBYmp4MUdpODZZOVc5OXIwZS9yZnVxclNzcE0zZDdWWXZLNmhBZ0oxUnNTT3pjWS91UmsxNWhkN0drbHkwSld6QzQyN0sydGltYVJYWGIzRGYyS3NLMSswUytHMm9nbzV4azJrYlhWRUliMzJYakw2TXNMZkE1QmhZdklRcnQ4dUY1aFMwZzBsdngxQ25OM0w2U0lidVFiWm5GZzZQYjJOcU9FWTE3elEzMVl1UWo0RnpYMkhwYnlsQlNVRlQ5aEU4dmZYUCtHaVhvNmVucDZUVTZ6bDlYVmhZU2RmUGNWbjR4d3Bza1Y0MGJxWVJGcHBoOUhReC8zcWR6L3lWSG5wUDNRb2luR295NktPazZ3YzZrOVVXTHJQNlpLUHppdHIvcEpGbFYzUHhTVVNtS3FaaGljVkllS0dHaUVjUVE1TE9jRkMzS1hXMmJpTGdnaFFFTUQyeVp4SVNvWUhkc2lJemNBTW9QcDBUVlJNdDQxdEYzWmhMTDl6ZUwzcTNmcWJBQUozdnhiTjBlV2NYVEVGMStBRFQ2ZmxSVHRtdmw4NSsvelpKWGpXK0dmc3I1RnplYmI0Si82cW1ETFVGK0ZJUG5vcmNpRUFpRW5lMVpLbzVHaFpUM1JBbldISld6QWlZRFgzKzFCbXFZQXhqUlJpQXZUVU50WjN4ZVdmSFgyK3prb04xdU5OYXUyaC9KYk1CakxJbkt0NEc4cWsyZWx3U2FrY2N4VEdoLzlzR3ZBWTRiNHgzaVhGNHhNVGNwTlhWb0hncHBwSjR5MnhXcTVHanVud00rUGo2KzQ5bkR0Y1ZDY0wxdnlPcStQaDhHTUNZbUptYUtWVnV0Zjk3ZUhlKzVBb2FOajZHVEsxNmNOcHpVZUZlWlpHdCtCNEFGTmhGSzVCVjhpQWxJMSthN0lsV3ZyeGNpb3BZWk5iWFJiNFgya2tLMkZ1blF1WVBxTkdFSy9Zb09uSU1EQWJJT3J1bEtSL3lmbG5JV081N2dUN0t0Qnc5V0hqS1JObUVKUUdVMHJrbVdDc2VaeHM0WCtONDBHd1l5dkxoTU1IOXRvWVN1Y2xPNmpYYTltNllxK2x4TUk1S1VsYzBlNUNYcjVtUW9uZ0JRQTRiVmVuOFVFQkVMYjJNdzFucGxrZXF4VWxnQTlyb2xsTlRFVHQwZXdMV3EwUi9CQkhKYVdBakEvVEtPVFNZTXh2dHJaeWNzR29Tb2ZjOSthTGZjNE9rWXpGbGNtSjRCMkNweHdISktQL2xPSFo2NjVoNm5UVnM2YjFOQUZ3Q2dIQXNBU1RCTEUxdndqRnA0R3pxN0ZVK3hNemd1SUFQMm5IWk1LQlFLdGRnR3RuVFc2V2Y5eEhDSUFVZ0hlOHJXUjBaQklLcVJ6aFBXTFZ2YmNIdndhQm5XSjlZY3p3aDNCSUZBSUZjN2k2RllrRzREVWk0UHIwMDY3RW9LU1pmZjltSENBQXJuM3lyUVFwRmhlVU9tUEJ1SHNUWXhHQ1N0TVdxNVpBbDRXeVd1TEIyM0pmd2NBSXdVZ1M2ak5zQWdYWVFFSWdTalQzYmhBT3NqMEZIMm53Z3NiSHFkdW9PSE5xaHpFZEowK3JJaVhqMG9vZksxVGZMamUyY204eUdDV0tnWldKb2pnV2dzT0RuTmNBakZVeDFtVnd3ckF6akVYSGQyM3VLQU9teFBqeGJPNlhJaEJ3VjFPWnFzVXIrWG9EU1pzb2pzRDBNU0Q1RlZoRTcxeFRpYWNYbWlwS1JWamFnaFJ2T3laUjJXb3REQ1lHU3VYUmxjU05SNHFURlJ0ZnlZSHhDVXhlZ2pCWXp2eW9UN1YvdjNMc3dmQnBHbDZQMjNYZjczTFppbnk4QkN0dzNLSjFiUkl1MkZ0aTFHYzcxRWRaM253QVNwQ0NYL0ZvR054a1I0TUtDWEpTU0dLT2d3VSs5aDZVdWlwWXVnTDlLNm4wa29FS0tGeVdnVk1pWFlIQ0V1Z25hS2FXcWw4RW1FMEVpRVVHOWJlTUw4MjlUbjc3aTZsOGgvRWlwNmlTanZyaE1yTW9mZmpYODI2UzJCNVZXTG9FcWJ3c2VhSzJ4czQ3OVYrQko2anFHK0FRRGFuQ1hDdGNrOHJFdms5RTRwZ0d0c0RCT1Ntd0wzK2pJSUNRbE4yRDJmQW1jWVJkbUpPT1VTVFlKYWRRWCtNZ0pLU00wU05ZZ083RjBoWUEvNU5BMDJMcmJ4T25FYlJmK3NmeGJLbUoxN0FkdVd3Skh4V0xxaHVzVmRuNVFiOHBERE9UckJSQlkyaWJ4SFgrbkx1VmlVMERYazRESkp0WElWQWEvZWZtdTU5YXpjQ2kxQWkwTE5xWkVhQ29VYUdrQ0I0MURNdDN2Yk9WTXVXTzFOQ0JQaWxzQWR1ZlFrQWQvaUwzQ2JLNzVkUVd5dnZIcm54am5mLzQ4OWUvYlZuZ3MrOXhFZm42SUFRd2FDTVc1dXFlWm5yM2pPbkRsejVzeVpNK2RYejV3NTE2a1hWcy9XQy9SYWhudXpZaFk5MllGVWJLeXdZWUFScEY2dnMyVElUOVFWTDFsZEJDN24wTUtzVTVld2xBd0JadVQ4MUNNNWNlTEV5YzA2SmtORFVxUkFXSmhlZDRDL1RJOXNlaXZNZTVUZXZpZTlxVk9NTWttZHN5Q1FtRG11U3d0WjJ5NUtVM1pwdWlJR0QzT3pCOWZCUkZoelM0VmNXYnFLSzdyZVRCTG93c0FteVEzS1lFVmd5QWJWTFBSYmlZWmxsNkcydXBpSXNKMFFuMFMyalZVWjFtSEFxd0NDcXZCMG5uSnpvNkk1c3hrcFI4cXpaWHlHR3REVmRVcXV0VWduQW9yNyttdFdlRUZyaGpFSkZzOUtUaXFCeHlmZ3hONmlHTzZkT3BjVTdXeWJJRDFuaGR1bExDOXdiZ09yRVJCeWdib2cvOFpqQUlSNFZvcThWdVZQTjFmK2ZrN0sxMUZ2MnFidzhISnNXTFNScFllZjlmYXdGaUFya3FSMEM2aFZiN0dVVmtlRmo2OVVTZHpocExPa2pjZ0NnQ1czNXRaWUFZWWNkbUR1cTV0dGxmZFQyZ3QyWGVCUGZCRXBtK245VFk2Q2RmcHYxbUQ0VXRZVVNNOXlEM056OHRqeldvUHFBVUZLOW04MU8wdDJwQ2QzSjd2YmY3ckFKVlIzcmFidkYwOW1hbUhadSszUHF4SkZjQ0tZVjFhRlZLOVdWRlJVVkZSVVZGUlVscmdCVnJsRVBOMERFb3FDc3BIL3BnSm9QRmxacDVQSWJOK0tVYTlISGJuVzVhM2lwQ25nbkh4bXZ0VUdMZDQvVmVoN1RaMWJCWnlFcWJ3N1M2WHZRejU1QzgyT21XanJzOGlFaGFTVms5TDhETzY2SytpV2xUY2o1VVZJYjZwcUFDQWdEZys1UUJreHlNZDgyLzVZbzRtQmt5MURhZkEyNVppNVY1NTFYRHVDOVdLUkZCd2U4dUQ4ODlEVk5yUHdrOEU5T3g4RGtTTDFXU2RmZmJQVmVQdEd1a2pGelhtUVFkaVZaWHhTa3hsYjgzT3pvSHQ2QWJGM3JUNG8zVGllWGFLSmtLczIvdUttVUxXRm02cE84bUhSZE8ySXlnaTBEUWQycU5DZHFzb1ZKNHNyREZKbWMrOVVNUjNLTjF6RzNhbFhUN2RsbE1zYVlOT1YyVlEvZTQxL0lLRVY2d0lqVjVpU0JZT1UrZlM5aWQyNXBMcHl5aUlyeEc4WXpaRmsxN0ZwVXlhWUxwMkxaM3l1Mm94SkFWaVVRNERDQnc2YnJyL3VYR2ZoYjJEcDdrTGVnZ2lWeUc5V3MzUHVuNkFaQzVlQVVReGprdnpjK205MHhRbHpoWXVMSTBLREQ4MzJQdjdINU5IV0FwMUt3bmxpNHpoczd2azg5eEl0Ny93UXN5ZkVrOFdOa1Q1OFl5aThoMnI5RDVlazJodTFNcVFKbWxGUjJIVFBBY1NMSlhGWlVEdENHeUJtYm43SFhOUHQ1M3BmQVhSMGRLYWpNNTQvMy9nTTlCMTczWEdFWEdXeWZJOTNwTWs0b0JHM3IrdXRrU2w2d0FKT3dMZGhJR0NMRno2MDMyMmNqMEpmbWxyL3VVRWhpdUFnam4xcHM3MmVYcWZ3Q2kvZFlYc24vVy9RNDlWU0lPWE9qNkpvV0tnWE5RL2VqV0QrVDRaMWpsWEc5N1BFWXFTOEVGbDc5VllqZ2MzSkFPMDlIWktPbUhnOVdwOEd5ZXg5ekJMTHlFY3V6bk1UMStUMVJabzc1Y3hDVG9vWFlqeEhxTmdrdWtySDB0VzZXc2N1SWcyRnVJNUtDM0t4ajdYWk9FNHlwcE9wT0NMUWNhZ0JuWnYwYUpkVlpyRUVSZHczcUFOZUF6Uzd6Tll4QVY4eEhuV0lFTVIySWlPQm5PRHZDSTBOSTd5cGwyMWtqZ3ZjaXRXeFcvbjRIL242MkJST1B2S0taMWhDaGsrS1U1SHczVzh4OHBsNTl0Z1FXajVTdEpqMCtBWnpRRlc1Qzlmc01aWlN1dWNLMXdwdmNnUGNjTU9OdVVIdDk0bUFFcmtqcnJqcklSVWxJUk1pYlZtSWZJb09EWHg2ZDdTMHRLYUY3MkYyL2h0OW5zSHBGdHBraVFNd0JDSXJsS1c0L2RxUkNLRlpHa3BpN3ZlUWtCSVNaS2NFdUhQY3ZKb3k1R2d2dzdxYXpwTFJKckhaeUR0TFdRTzVCUXhLUWdQY054bU5FaWw4VjJHSm8zdmhRNWVxRnFibzQ0WGRkUzV4R004YWkyUVBJeG8ramdlTURrTnhHZ1pOVTY3TklhdEF3UFZsN2kzQTQ2U2QyT1NNZ2hvNDdqRVZuRWlHTU41Y2RmSWdSZmMxZk1kVjlpUVd2NDRhajF1Nm1GUUdCeEovL2ZxUzM1QnFxVHorZ05ha3pISTRkcDBobjNDTzJPM0UrNDlCaDdpRE1zZk5kVEFZWEdKWVNjeS96akh3b2xIV3pjeTZrMytCd1dDdy9HK3NUdEtmbEtybEJYaWNCekNIblZWalpyL0N1VStITm5XK0ZNS1BMUG9Qb1NMZEswSXhZQ2ZLdE5ycWtqS0lkQ1R3TW9hYzd3QUR3N092TEQ0VVp2cXIzcHJvY0VieFoyK3VqdmdhNW95SWhmTWhvUGFBTTBoOW9XWDJWMWNZdzFvTlE0WU02K0huSFJJWDdQa1NMeUhCSUpsUFkvakFWL2lLM3lYNldpZTYreTR5SCtkdUN1OVZYa1pLR2trckFVRWJacEYramFGZzdnVUhadDl4TmJ5WDltNVhrZjFWZ3haZkJERXhzWW1mOEg1YkU2S2xPNURQcElmeU03dnlvNFFZRHkwUnprVTh2UHRLcENSNnJsSXJuWjNQdFpEZzI4UU1ieG1QZUhnVjk5KzcwcG1KeXN2TTZld3VjcTRmWnZKVXRFZ0ZRUDk1YmJ2SDI4VDhMcE5lY0pid0I0Y2ZmZlFaMHMybzl3TjR6OGZWWS9WOCt1MHVQcmo2MGxiSUhGdmYyVjF0ajF3eHFkMDl0NUVFM2R6TUVQa0RtUy9MeWhFNkNPbFVkc05kUUtaV0pxTytYUGlYMzlWVCtZK1RGOUZVYjZjLytUclZQUEZPRnhHUmRhQ1g3NFFxejhucWptOUsyTEtXcVNOYTRXTHo2WHFEVW50KzZsZzkrUW8vaW12cWRvM25oYjh2b2NnUG04eWlOcGVCajh1ckpaVjVYV2hjYkwwcFJVSkM0cE9YekFlZUtBNWk3OGZ2dXkxRHFSOVZ1WVVqV3VUaUVyZFNRbTZlQ2t3NkVVWkNHdkRJNld5ajZZandwdll4UFlDMjlEeXE4RFFMcVhJblhSMXJ1UkJjNkZHOWVUQkQzZTJVMzhCZzBOMGtnWEw5cjUranpBUnlWT0tvTHhiUUhIWVZWWlc4OVlEVjRHb2JZNk4rd1BOZXZ4ZGxROTc3dGg5aWFpNVVyN3Y0S1loMzl3dlNNUXFadzJ2Z1ZlUno4ek5XWDhOb1dCVDVBaERZbVFNZitYUHJyWjNZK2ZrV2xxYm1yYVJHL1Q2QTM0MFBmdmxmSjNyNlIwcFB1c1g4NlhhTDhtUlpmTlFmZjJxOEFmTGVKOTlsb3FObndoeUVTSStlcTUvcjVqUFA1VWY1NHNmY3J5eGdHVENtZW05dTNWL3ZaalU0dzN4ZFRYMlhJOVI4RURVMFhQUEN3cWRxajFIRzRVclBuc2REZkFxZlRZcFBqcjBNcUp4cytqRXlNakl5U2ZGL3UzaW5rKy90ejB0RFFWRXNPOHhpL2NydkhGMFJkcDB5S3U1VTYvS1Q5Uk9iSVYyTFB1VnZ0a1lsOEpNdDRhUkE2WVBZYlJ0ZzhhMmNGNEFrK3dUcVQzbU01R0g2TWVKdnEwUVJsVkZma1Z1VHpWUHV4bE1VNGlPY21pUlgzbmkwT0VEczYrRG5VOUYvemtuN05UY1JDUTVuRjYzdW9NMnRPczJ0MmdGdmVPY2tXaHRjanljNU5VdER0T3I1dEUxS1h4S1pNRGR4RDlJckkzVENPYjYzdWNidm8vMUVyRUJ3WXJ3N0dqUHN3emFqdlpsSjk0bkxTRko1M05meE9SYm4vMjdUSkY3Vm5lNG5jSHJaTVRJZnp0NnYxOWZOTFRPL1AxbUFxSjlFaHBYUndpSnRGRGxrSTdkMlhBUkd6UXErZk56SFk4NnQ5dlJtdlA2UTJQT25NcGJvbm5qeWhET29rSi8yVjhpV2xMVEVkWHp4UnhPUmV6TVBNeGZyMzVOclEzVytXTjd5ZklxWmt6KzROclg3YmhXYVdPUzdDOVhrSjNhTE1yZE5PU0JJNFRJdXhTVU5FaDhCRk1wcTl1bEFmakM3UjE2dlg4VHUzZUdqSkkrY1hPZlJCSFJ4NldxQko4alZ5MDNEd2NIQk9WTVRxMXdONUoyUkJpK1RZeEZwNkVWSTlMMDg5eVRrUGZJWDVOdSt4VXlCUTJ5NlBRdUNXMjAwM003YmJ0YVg5UGh5dUdhYU15dEJJL09qSFFvL2xqdkQ1MWFDZmpBeFhoOXlOMmZSaDBwSGh6MklTcVpPMWJ2YVNwODRSUGdwdy8xTVZkNWY4Qlg1VkdPa1RZMnJyMEFwYUN2MytCRG82Q0VNb2h1RnpyRWZka2lMaXNSSHlISTljSmw5RDVHWTczNlRpZU9iN3JkLzZ2bTMra0FIVWZ1a3hRZzdjaEZzMmtwajRBOGlLekttd3Nxbys1TDFtWldud3ppeHFnMTd0bjVNendrOHZIc1RKUDhHbTJmeVdZc2h6ck1rdE8zNlRGWitGZzVVVDJWMDd1VWhENkx5NlJDZVVqbVJ4aHFlcHgzSnQ1a25qVnVybElqcVk2ZnhOZW42MVcrSkdsektyM0tQNXV0YnBQdGtJUUlnckhDazlTZTlPbkEwMFRkOXRPUU5MbkhXdjYxMytON1dxTmMzUWIzamd1S2J2eVg0NkZMczR2SnhTUVB1VXhOamJIVE1vckNJRXpOVGtlTmtGaGlmeWdCbEt4ZDBkTWx4c2ZGY1lweEZIeG9kNmNnVmpKbmZUOTdjWDZpRmRhM1ZtdmdzdjR2L2gvRi9XL2lGWTI0dnFkemRYeUNHbHpCcG5CeXhLM3dhcGhIM2hqdjNQTU5VMnhQWmdXWFIyQm5iTTdON214eXJHaXV5aTg3YWYzZnN5UU1lWEpGMWRCOG14ZGw0M3I3RHQ1Q0gvdnpxa1ZKa3pYRHJrdWlmdjZINDlrSDIzdVR0TFBvSEZoMDl3RUYwMzJHRFVyenRQbG1IanVmbW5yVVA4bGwzbzJjL1RtMFBHb3JsUWpiOWYzRStrVmRJcFNmUUQ2SkJWREoxT1QxeTMzTFU5RzhvS1NuM1ZEcW9LdUZTMFBUWlZkV1lOejl3Nk9paERTTEdab0JpWmhDZDdsWmw2aTlsU1RGd1ZRRlpNV1VRVEJJY3NkWlhQZXFIdytvZk9vb1djL1FqSWRwS241c2R1V0RhQW5jL1FSUHBYdnd5d2wvQzV5Y09vZWllS3Z6TFowTGgwRXpoUGhVVWp4NzZ3UDFQbW9XazNzaHlucVZOMExiMkhPdndEckZ1QTdrdG5NTUQwV2x3bVpaMi95RGQyZ24zMFJTSVlONnF0SjNjTjVkdlQ1dVhhUW5iVGRVQVlxd05ZM1o0VmpUS3FzRjdQMWt3MzdHMzhheXdINklkamJJeFI5dHM3OEJKWDEzeWRvbEVyVm0zVU5ZU2wxNis1S3lsNnR1TmxXNGFrNTUyVTdDVWV6cE5KZWxXa3l2a1FCWnpISDhEK2thQVM2MzlBaHM4d1EyWXlsTDVqVmlWTmRwMnZqbVcvRzArdFFuRzNqbEpYZ3Z2N1dpUzVILzc2ckJ6Y2NUOUdjQVJMT0VFYzl4aGkzeHZWNnVRKzBKQ2NrbEY0R0hSUWdMUng0blVMeHhyU3VPUXRTeHY0THlRemozcm9KSVRXR3hGUUg3bUw4VGs4UUUzbG1uYmdScDRDK1FhSlh2U1FicldvYWo4MmxoQlVqbXo3Z3lMMTgyWDg3ejlyMGhQRWVxNGhHMS9za3BPVS82c2dqVGxkVnhGNHVZNktRaEVYMlFkS2JaVE5XbkRLWCtUOHRVbjRVUGVnSEJUdUxZcmw0TUJ2T3hiSjlnWjZVaWhzSit5MUswbXJjRTEzTmFkY1FLRU53OGpBRVFncXJGemtLZDc2ZzN2aG9KdTdlaHdKQ3lvcXczTzJmQjBKZlYvbkx6emtzSmNmTUo4bFoveUdiL2dEL2xyL29GZnppRGZJcEZ6K3hEVzZJS0xaU1RiR2loZVpVdm5yNnIzZmIvUDhYLy8vN0lrRWM1eGxWZFNTYjlydC9aeXduSkEwbzhIeTdjdGNJQ3Y2azAxNytKNzlGenh6ZHE0YUpSTzJWeTk3Q2hCcjZjUjBuUVBScktOcTMvREUwODg4VFE5SG05NXk5dTJKTE96SGZ6RWZMejc0K25rdENNaG1uZEU4N1g0bTFPcGVVcEtTcHFsQ3FFdXBOVmwwRElJaTQrUFZOL3BJK0k3ZklmdjhKM0UwMzVrTkZCSitsNEdPV0lzYXhUR3UxS0Nmd2s0bC9Ib3pSeFcwL0FjSDBHcHVjcXFRWkxabUpPUWFWcGFPTDNDT1lLbVRkUmdjb0tiSjdvV2VqbU5RaVVxc3hxdXJkazRxVzV0bTBGRHBwTXRTWFZKYWk1Y3VQakxaNDByaWN0dTZqazQyMTVPUUIxWHFZWVQ2NjYzWFNYYWtBN3hKRnNFNGNxZjJkMGFDL3kzbVpEbEMvak1kbWgyMzVwdnRUQTRJamg1NHByWmpFL2Njc3N0dDFvRXFVampWcG5id1RyU1pReEZnc0pKMGsvbXVWcTM5VWhlVGUzQUU5cDJhYW5VM2s2Y00yZFdZTjdNWHRYdXArOS84ZWFEci9FelB1ZUxtUjFPS2lyVmRGc04raTRaWkdoV2FpakJ3TURBSUlPZnI4Q3VhdkNKRUpHV1oxckc0VEU2c0FSdENyTTBTU2ZCTXgyUmVDM1htaXdKRDFQU01OL2FHOU92UDBLS0ZFZG8zalRXRmtBVjg0dFk0dVpnMjBzUUV4TVRFNnR1ODJyK1ZtYVptNjJLbG1CbVptWm1kaUNRQkloRVlJdXpsbUJSQzU3WTJQdXlldGEyNk5tbXRVdEdieTVPRE5kOUhSOVFxTys4UlFoYTRlRGg0WW1IRG5HZ1pQNzQ0Ykxjcld5N1V3aHBOaVBtK09nVUIrY1lOS0JQUi9PcXF6TXdwaTAwekl1eXVTa0VNZEFWU1dtSWtPWkpqeElRQ0FRQzBZS3VrZzgzRW9sRUlwRklaQzZSU0Jmd1dnejZ1cnYzeFZZSTZEWHpZOUhWM29ZdXdFUGkyVW9aR1N5UTJkYzI2TGo2L0YwQ2tFbldqT3Q2Q1RJeU1qTEpibzZaRzA3WXprOWIxdW95emZzWlFLRkNnTnhRb0Q4VjZ0NWs1cno1ckg4SGdGclhPUzZlWGxXUDBacFpnNFZQdjNqSndoWW45TzZuZEJCVTd3bVo5M2lQOXdidkxYOEZTN3dGSXpnZVlMc3Uwd2ZMNERTcmRIZStxM0g3L01OeWlJbUs3N0U2THpIamlrekNDay9DWXVTL0VzSU5LVVFYM2hZdmFyTVl0YWVGbXJyckJOZUd5NUVqemZJVkd6ekt5STNmeHNSaVVRWTJLWm1BUDk2OUFTb1l4NU5ZV1JZaHFnNVhFRHJNWjh0a1lCUGlQT2d2WTRMd0JaQlhEUjN1K0RBa3RqZTRudHppQXlBYTdjUlpDODNXamNDb2ZjWEQ0RXlCZWVIWlVVOEMxcG9KckpSTTZBbFdWZzA5d0dlY0FGQjlyL2xTbjFnZWQ3bmgwcmZ1VHpENG01Z0FaZzl1Ukx3STYraDdhNmZYMjgwNkRKNzFMRlkyODJDVDIwTWE2U2tOcXBoSnB0cTFwNzNyVXdpS3ROdVpNd29CdEFCdEpJZlZoYXJhWGNTMlFOVHNzNkJXZE1qN0EzcDI3c3lab25keHhhYVdXcWtWcnNOYnIyR0RIRXdocG1GeWJWQjJqUGtxN1IrenhtL3VpU1I2aGh1MlF3RXRlaFlDUUVnYkU4RjNwbE12ODZ2SDFNR3ZyK29RR2ViRW5CVHJBaEZWYXdXQWZ3Vi9kRWpSV3JvM2VLWWpuVk1VWjJpelhHRE5EYWF6NEVNQTVtd1p1aURrWW9RZ3pUN3kwTmhFa043MUlJU2xoSE8wSUhUbU84NmNPWWV6dnVtMTVhemRVdU1qK3dTM1pXcktkUnFtQXdFTkRaSjI2S29HTERVQTh1MjQwcmlHdEIzZVlzY2daWmI3N3h3YmxsS1h0SThibmRnd1NYRXIzYnlyNDNvd0FScU5SdWNhamRaWGk4NWpXYy9MSVhpdXBIN3JDeERMVUxJRy80SEwvQ3dnQ01PaDVXUjVqYjZzV1JqdDFTejkzSGM1bEpTWGVQTTV3WnFtMk41VVdiMGpvYlV2T1RBQUFBZU1MSnh4QWxlZnNvUU5QS1Q1N1pLSkY4akhSa0FjY2ZwMktwbXpZekpVSFJTOXV1NE1rZVY4a3VuRmtaQ1FDT3l3RXVJa213RmZNbjQzTWx0RDNXMlR1SzNTeEphYVVKVEY5aHJvUVBDYWI3NjhFcWVORjdCZTdBZ2cwN3ZFc2o3Q1pWVzFaNitOL01ka2s3MCtTN0I5N2pwY2xRT3F6K2MrenAyaG5ickFCUEszeHlUdU5aY2FZRGRGQnU5b0xObXlJMTByVUxKZ2g3bmtpTnRaMUhVZm10Z0tFOFkwSkN5RUxFd1VFRE9PcmtwWjlENDg4R2F5ekVwR1JpWVpKcHVramQ4MTBsMW8wYUhLcEd3TVgvUkM5N3lrL2x5QVlNNit1aVF3N3R0b1RjWVVGbmJ4a1MxZVoxcjVwZ2V5UDB5eE56MUcwTEZxNHBGelVCcFdwbTFzOG1hQUowQTRUb3ZvYTgvU05leGRmQkZ2WjJESENUbGtiVGJNM3FiYkJCbzRHblZiWUlDRVZuYUZLVXdGTHoxM2VDdVdqWjVBeFYxUTNYY1NxQWUxa2VyOU9NRFhPOW05R20wNHV5NDR5YjR1TVdxbW9nRzBNMUVUU2xoNFJhbTFMcDdlTzVINVZ2NzRqWE8rdFNZbURaVktTNGFBV09PVFZZRENiTmlhQ20rMmcrM0VmV2hTSzFXdzZmZTlDbTN4cUtaVk1TV0w1bmRLNXhYOTZISkVSWXh6ZnZXRkZ0Um8vZUNRYm05ZEttbW1HRnlkeDBOcnBVaEl1K3ExQU1aZEMvcFR0d1dNU001ZzBaOHdiakhJTlRmSm9Ua0FXQXNyY24rd3loNWVpRHhBYjdFTGQyajcwM3ZTeHFyZUROd1pMM2pCQzE3WWhaaS9udlJpMTNsQ2Q5eURrWWQ1ZTRROTN2bncwZEYzOGJiN3lRUExYL09hMTd6bTlVVUoyQTNUNVJNVEV4T1RyN1VVcHJYOGl3ak0zemZFVndvN1hGc2t1cnFqMktEU0JYanlkVUpNcGZTY0NDY1FsNEFtdXFzazYyUmI0TmF2RHlKTzBld3VrRWVuSU80ZFVWRWxNVGdpSEwyc3BCVkE0anp4QlNqMlVtS0tubzhZK3BXOWx1NVEza29jQXRUUUcycUhmZVAxVGFVQjN1bi9WTUJsTmRZMjA4a3VsNy9oSGU5NEo4b0ExVnU5RDZINHpRZnltNTA2K1l2L1dGMmcvTnI2ZHdqaTB6dXpDeVN4M2tpNVNSUUROWjdWOHYzZXhHMDByS0EyZVk5cldKb3VGZExzV21YbkkwdDFrKzJWdlhFNXZhSFRqTThMS3p1ZnhhbCsxOGdibXpJcTVqY3pZK2Mzb0w1NGFsK3lZYWttSUhJWWdvMlR4ZTFrdENHSEZHNTB5eGxVSCs0RHJhZldjZlcxaHJWMUVqOEtndUY4Y3BVTDBVbDhleDkzcnNXWjROVllSSW83QTMyUE42bWx2UzFvMFhlY3hiZ3RiekRMMitiWlR3WXZTZGVKLzlQL2ZXSko1NWplZmYxNndsUlBiR1huVjlMUDZicHRwc2lubW4wQ2pFM0NaaFR0Mk1pcE9UZFhqQk5mVWh3MDE1VGhIRkdVUUI2NG1vNzlxZFVJQ0YvcU5oalNUUlRKaExEMGxhVTZWVnQ3YVg4Y0dYZzdjTzhsOExhdlZVdXdYQ3dEaU96UFoydCtUMVd5ZDFJbDM1ZW9nS1dJSE9zL0hOM1lBcTYvcmxvYTNnaVZ1Q29HTHpSekF4MkxDbUg1dkQzeE5uaGIyczVQZDY2bkczdVdrcy94d0FiMEFsTkdsazd3ekRuTWJNQTZtRUNLVXZ6eXI1OWRXVnl0UVVHeFg2d05HNDdCYnZhcjhGWXRvc1R2Q1huaDhwUzlrK05lTE00UEN4RnE0UTZ4Y0NqMFZzam5RWGhmZ2VDSkZKbzdockx3T3dIalFzbmN5S3UyNit2MnNrT1pxM1FZM040aHZIVkpLSDdrRjJ3QXNUV2JqWEdrNkV6emJMa285bHhZaGNRZldJaW9QanM0SFhmbkI5WVIrYWVlUi9xZ1BVc3pFSXI5Z3ZQZzBucHNJZWhjQUxpdGRXQ2JUcU1CRWpmZkJ2TGRHZ1hOdElieXpuQ1QyWHMrOVZ3TUU5dmNhZ0RweldGRHQ1TXdsbzVtZ2RJOG1kdlZDMlBjKzVZVEs4ODRNeVR5NUhIa1daVmlJY2ZmZmV4RzFVUzRnZ2REZUE5Z0lhbE0xUkdSdGtrQlE3WlF6enN5VGJDajIvdUFXTi81NkJpQlRrK2YxZ2wzckc4MGordmRDVW9GZXowTmNiMThpdFoxZXk3NmJLMTh5dFQxWStLUHAyYW9ZK25IUG0rQU02NkgwMDFoc0U0dGN5NWF3Mk5kNStnWXNRSXpYdWRBd3BFL09DUnBHcG02RGJ5d2R4ZUkxT2s5VGVVb1BRWjNWM2cvMlJoUERrM2xZdFQrbldNS2MvWjVYQytaSi9ic1dzbzBQVU00TFI1KzAxbk0zSkJjL2tCYyt6aSt5ZW81TXp6ZjhpOVpXUE9zLzVTZzZaYy9ZMjMzaGNiNG4vVVJ5YnV6Yy8zT2ROYThjR0xLN3ZCcTNIKzVOR3c5NEl0NHhqL0FubzJub2J5UXlmZWtCek0zOU01akJMRzllalQ3aS9WWnEwaWVpVU5MSkRxZU9JK3llN0YwdVRTVXVxRnViNnltdHFURDkwaTBON3RJUjRpNEVkU3NsaFNralJBb2pJUXVnTkFkZUpETm16ZHRUQnJUTFBkcjhSSTBORFEwcGlHbnAyL1h0SkJ1U1NnZEwvMTBjdlI3VDJ4eFBrYjZzZWp5RVRhTHlVak9vYUFmRURrRlFrQlZhL3BucDRnQW9TOENvaHhFdXQ1WkhncTZaTUxHdVBMdmJHS3dYRCtQUEcrZE1HbGREYVBVbGY3Rm5wZHU3cHZTejVoUFVsZnI1RzZKZzllenZjZklSbmFyU2Zxc3hpSDVDR1kxZUxvTEFXMzlGY3VseHRHbmtuTzdHeWVvekFsRU9IZ1JobFRzSU4xM0Z5Q0FONTl1TlVMMXhXMlRlaFUxdHM5alZVbHBqVTBTWndIMnNzL0F1N1cydEZvR0t1UUczTlJiV2JRK0JYa2JUR2htSERDcWFMczFoT0JCWGF1WkNjcmVYYkJJU0tCL1dzOEFHRWVpVGRRbzRXSEFaSzUwQTJRTndkWFpwWi90WUUxTWN6aXE5alRoM1N6dGNKTUtHVm5tUTByU3l1QndnZ2pvNFVYamwvNzV3b2w3SFlDdDk5a0V2SjJHemlaTVVzZkU3VytqT2J4Q1EyOEpSK3JqQlZuZE9VblkyQllLR0hRanpEMmQyYmVpWlcxUnVndFpyYm9UU1VrbHg4VGNHd0Y3VGJoMW1wZkxqdTdpQ1FaZDl0bzdZOWV0V3BMVUVBUTQwWnhUUVpmUkFDRnQzcng2TlZDOVdsRlJVVkZSVVZGUm1ZcVUxclNsYzRoT2VWVkx0anJUSzhnQXkxdS8zYmxiK0VycEpTZW9qY3F2ZVl5ZU1xaGdxcVNJQUNiVTVzbVFXcEFJNmR0MVhnaWhRRnpVRlZlRWJWemc3OVM2UWsyUU5WRXQ0TzRrQjFCcjlVc2RoSVFaQ2s5TlUrNFU4OThSN2RSYlJCdkdXdXZZTkRXZ3NOTlhPb1RzbnJOOXNFQ0lrQndnSTFQSkVkTFJFR3JzWmh6dFFUMUdHV0k5UnB0cDl1OU1RaUdhdXdlQlNOY1VnVW9wWkNrZDl4RGxXZjk4MGRQVDB5OGxYU2xDV0duVGI2UjE1Y0htbTZFY1hVcjlRRVNwei9rUjNBV0xNS3dkSWRQb2cwckZDeXBLMFh4aW9OeS9qWXRZcjJOSzh4ZE9uWDZsc2VxenVpUUF2L2pGci9tdnYrRXYvSVcvOEJmUmlyUHRmN2R6L2FmaVpaOHZlYldtU3Fkcm9GSFhqYzcxZjJKc2xOVUYzOGFxQ0dxMFQram9DZWxVQ2FsSEVwYUxTMURjVytjSGM0dVQ2UWdLM09ndGtoR0RxYW1NcFpFZmo0bVdLZlBWV0lLV3F1UzAraml0enlRdFI4MXE5alRTNlFGSDkyZ2pLU2lWb1VpU01rdVV4Y3cvNlZGQ2tvMWprMDhnUGExSDZ5b3Q4NytiU25qZlo5ZVVZeWJTejd3cDIzMEtGbm90OUFjTHg2SGVVb1ZWUWtLVnhKVnhtamg4WTVxd0kxR1RzSVNZUzhKRVRUZHlydE1pU0VtZER3SFNucTdIcnZWdHptZytaOHFiZERqcjdLNHljMnBHcnZ3UUlNbnAyKzIzSitCT0N6cEp4enc1WHk1YWxnb09Fa1I2SjhTalREazBQN2NOT1p2emN0RFVsK0RNbVRObmMyYkhoVXRFUDlBZ01Wb0JSK3JkaEhNN0Y0bkNMS01abDYrRGVRbEdSa1pHUmtaR1JqTmliOSttQ1IyejBKR3pjNTQ2ZXdPQm0wUjFjWWUrVFJQRTF1aTAxY3pJcXRHL3ZTdjd1bkYvTUtUUkVhTFJjS0ZKSllFbWtuVnZuMDRaSFZLc2ZnTDFpMUduSFpVR21ldENVVnRQNnlveld3clRKVlZqai8rWlcwNlNHKzVSSXd2SE82RlA2K0dNcXJmMVQ0dm9zb1dBbExXb29pNnNjaGhnVU83Rm9qNDRjeGljZjM5YkZ2RElUNDhPTEx1QS85aSswd1RVYTF4WFNDbXlkczA1MlFic0hRbUFBTFFFeWM0N2MxZ2dIL1pHK05XZlE0N09OZldyVjhlL0FXMW5ZS1lOTEorcXVicHRMM25mQ1k2SGdZa2hqbDVDcnZOcXNmalE0SllFOHRBUW1xVTMwMXhSelpYVUxBbk40dHRjTHMwbGE2N0E1Z3BycnBqbVVrVXBPVFR5RnN0OExNOFFnaWNrN01XYjdYS0ducVJzcCtkWklJSEo2Y2ZrVFRJSTNQSm5qRHJDRUsxN3E4SE1GbEMydlJ4TlROSVpEQTNpWGpXNjZ1amFmZFA3akZrYjBaWFhhSWZ6ajU0bVMxSFNNM1N0cEh3Rml2VnlwYVNkUzUrWGxKMUQwWGpLYUVFZFExa2RmY3dnT254cmZYMy9IcXVmZ3E1UlZNeWk3R3c4cXdDS1RLRExhWGJxamFwazJ1b0NlQ0s2M0ZzdUFlaGpvdWh4cWFlSlhtaUw2WFJIK2JxQ251QWk3T3U2WDFvYlBldmpDVGxubnBDeXdFZDcxTDFUKzlORnovbzY2Mm1wS3hIKzk3alFrTk1nMnBMMHRTWkxBeTkzMlFHWlIxb1dTTGRFd0lQTFkrbXRlVDBxSEVHTkRaQTdFZjRnK21OY1hHQ3J2NTFzTEtpSlFvdWxKN1RCUVFnY2xhdWcwN3hlb3B0cHBHbmlNUnkrOVNGQXorOUF2dERldEtBbW9iZnNMR0liSElSQW0vSENPWkdySnVIY0JuZDlZdjVFaitpazJPQXNLRzh5WkhpNXBWbGdQa2V2aGVoV25lUFI1L0N0dHlFQ1RlQW56eW1KRzF5Z2UxWS9VS3R0SnpvZUNJeUk0ZE50V2pERTdKcnFuY3RsNEd3SWhuMm9ZYTJFTmxtQmVFMnJKSG9vdWhxTUhQbytSS3FYOEk0aFJxRXh5cW5STWFrSldSZXJQYUlGeG51bHhXc0lRTXd4YXJWVExyY0Y2V1J5VmUvVE5ZVTJpcmFaSm9MMG9VcWVqMXd0bzlnUGhwbHFtdFdmeFpUYnhXdUVkUDdJeDZPdkhqUzEyQ2xTYS9vTVk0WmUzd3hudjdPdFVldGY4eGpHY1A3ak42a1ViYzZpNWpIYXZsUE0wK2pGUHhhUGJvWnZyZkJVRTUvYWVpSnZZV2ZnSEkwMk91ODJjdFZTOG5LMi9aUjZROENqb0swMytKZlhEa2dldXlHU3VMdXRWcWo3MHY2Y093TEEvLy9xN2ROeFgvazh3QjNLalRzekdidEN6bHl4dDU3cGU3dllKN2hYMFNyZ1JVQkhBVjlPTU9MRTlteFpKemZWRzdmWTFYS3FEem5WckczTkI5TDU5LzBOVFVRVi8yUzNVUEVxMnR0VGJoTHNPSXF5dS9jaCsySE5FdDBFN0ZyUTFBb0U5aURhSXlVTlNoei8vcGMwbkFCRkhVbjZKMzEwb1djVDZWNDdMWmZXTUt6S0UxeGJ2aTJvT295K2RhTENoSlFHUzYwcis0NUgwUnFyV09nMGlhcDk2TnNtcmZXV2wxUGxNV2IxU3k0UXg1T0U2Vmc5UnFPSVUzL2EzOGgyM0VuNGFzd1h1STFkQXRvcitTYnluZkVxNHRwb0FicjdPdHFkRi82b0REWEZEcng2QXRRSkZrT1hmaTQ1aTVqMFgyQWF2czJqbkJQUldSbnRrV041MU1yVU1LelRLalVWampPUnJHWU10NHRjVy9MQVEvRWN0dFdRdVpxblhNNzErRnBQVUJsRlI0dHFHSDAyMERjWlZiMm9OcEE0cjdnMG4vNEJmaU1rZG5Xbkx2VnoyMW4wT2xmbE8xWHEyT2tJVjNwOE1Xdm9lQytCUzZjZk93UVMyZFZiZDlFOVZPS2xQU3d3WHRWUWQxanpPVWhmVDJGNVF4b25QZlJOeElVNzlqM0JodE0zdFhsK0hNOHpVRzRsSlh2cDk3SVovM0Q4WURudXVscFh2VDNXT0V4TURpUU96NllHOXBtVGdCZmo1YUU5Rjd1NWhzd1ZhRjYxOWxsWDlIbFpHeUZ2bjRYekt1akFVcU5vZkQyeDJmRE1DNmZ3em5QaXBDZ1R1MklITXJwSUNzQlRkMk1KQUprN2NWSkkxOGJ6MUlTNWhodmJuMmhUVGx6VDV6aWY2bCt6KzVEdmZFelNjN1RGZ1FMVjJXK1VTeEpzRmZUWWpXaUxMM2pqdGQyY1REVXRZU2ZHSk1uVXZDSE0xcStQd0NWODJqKzhLMDMwdXJPNldibzk4S3EwNkxXWCtwMFpzc2o1UkU1cXhCMk04L0hiUlVlK2Y4blRRbmlXR2JxWDVHMFhGRFhVLzBZbXBJbEgwWXRoUEVWMkdmZXF5Q0hRVTBzZnovS3JaUENPN3IxMExzK1M5UjZYM3VxbzRtbWFuSmlKamVITnBYb0JaQmpvVEFLZUpOcDNDVThpbW5tejFQTWVadHl6OE03WXJncTczb2x2SWZjN0VNbzM5dTViNDE2Y1NtQ0hHOVMxdXQ4dGpacWRKZW5lTmk0MEtEYkJtTGdIYW1zUWM3dVA0dGxuM0VPUDFKUkQ3YTlMNnhXbnhmM0hwNnovLzhQRDN5S3RlaENlZVFTbGdhbFRBcHZJdnc5SVMwTmt3bXM4RkpBSVBTQVUvQ0VLd2lFSjFJK2ZpRjRVblhLK0RSRlJGVjNUU1J1Z1Y4dEVWMFRSa1dML3p0TGdETkJVcytOSm1sTVVITVdvbHVydEE5NlVuWlRNWCtLYUdISmhQRmdWaDBBdEkzNDR4MThyVU9UMlVjN0FkN1dBdzhQNmxpRG4wWlVqdWRBV0ZvTlpmQUQ5ZjdQbFFTaEh6WlRZQUtyNWloSnFKOThrYVpJanEzRXd5U1pNK2FFWnVJUklHdTBqRmVudUUveEFxUGw5UHM3RktkSk9yaUk4OStSd0RRZHBwaTYxa041anJSaVlacE1HYW9wNklreGR3NC95YW1uekZLVFRFd2tDNUJBVHNCaUtCUUdBN2tCQkxrUkRBTVptV2VuWXNMa2RDQUFJbHdnK0JRdVdORUVUa0dLZXN2cURkRmFXYTdEQnFTbkJMcXlidWNHdTJFUVc3SWJ3ekF4MlQ0OWJxR0FQWEw5MlViQW5rcS85SE95TDEvOTVzQjlPLzAvSDdzL2w2MmVoSU9FQWNCMzRPMGdJOERHSTJFb1pwT2lkaUNCTlFDNEZHZGdXSzhoRVd0OGdTejVuVUpDTngrRUZPU1FjN3lDM2E4RXBDdklJK3RvZVFUNzZyOTBVdENmNCt0Q2dBOGV2cjN6eU9RcjQraTZRNkUwOU5kd1pWaDBtOEI1WU1HZk9Fb2o4QmxhTEJheTN3enlSZ1lDMFp2TXVnbzUvbXk4eEc3S0pRTHo1RzRYMkNabkFKajNqUkVEOEVxVGVyMGdBY0RueDNvaWZJSjM0NVF2Y2xmdGRLZDIyOTRpTzBUSS9vK1gzd1gwUmNvTW1sdUVjQUNMVHpoMHpvSVRjR3NvcDhUVzgxQUVsaWlBK2RUYVJyM21LR3RObFAzWUk3MGkxQ0dRQ0V0NmRkc3ovRFQxclpzenhIMnJvcDgyT0xjNWJRanFZdTNNV3JCZmY1aDljbTVrVGYwZy9OMUU4ZnJNbTUrZkloZlY2MVNyUlFqNkNBdExqY0Q3NzFwWWhUaWZlOURTdFVPNmNGeGdQaHd3cXlkR0tQLzRFSFB1WXBXTUhhd2FjNHdqT0NWRWQ4RGdmTmlTMU1heG1ZWlM2bXdXeW40eXJGK3JLQnp1V0VTTEpYOFZkZnc2UGlxWHdaV1hDOCtoVUJNMGQ2aFpMd3BMNTFZbnBta3NqSVFWMkx6b2NJYjh5bmJRYkNCMmJYZ0Z2c01qNHM2ckhWRkRIRFFUVTZabFhiQ28yL1ZKZ24rY0ZZZ1UvR3NpNUg0S3d6b2lyZ2dsY2JMR3l6R2poUEZVT1ZRL3oxQ2JLL3lma0RpeUlhNHdkR0Z1VEsxbUUreWNiUWw0M3ZLTWZYRDlCZ3ZSczdMSm8xVFhYT2Y4dkgrQWFPVWZZYmxaMHA1Qis1WG8zVktGTGhWaDFRS3VidENGMzJ6QTRobW9hck1pVmpXZkRIY3FsWFhMWkRsVEFjb0ZjNjJPc0xSMmF6MGhSSkZ4cnJHUUxXVldpMVFUZVVzUlFvWDZCbGtlb2lOVDJOQ3dyNnlrYnFSMEZDNjBZbWNFUnpXd1Z6VmJJS0lhclBHZ21uelg4RnpDSmFsTThVVE1TbTZFempQQXVjWWdUYW15eHlBdUJTYkdteWFtc1FlV1VQaXcyZTdlUldKck1FcTlsREZXMUtieW81QXQzS2RhcE9NWTRjeFJHbTFiRks5akVGOGluU3ZPcHlyN213SDk1RmFWeVlGSXFMUFVOaEVPcStndGJzNmtUdFFHSmt6all4a3pqVTB0Y21qNm9JMTFEMk5CaFhPY1hiWFdsQTUyVjhxWFJLU29NWG9FWjhaODREUk82TUNhYVZYQ0JXbGdiUllzV1Z6RGowWXJxckNYZXJGWEt4c2VzY2ZyTFJXMzU3aW5IODlqMkdZam5jSVFnVFdZSzA2NWtFcnpnT1dXQzBtSFJZQzcxRHN1QXZrTmRYZHRXZDh3VGFuek5JZEY4UHlrMmRnTHpBeHVLMEt6ZEJ1S3BIYko5RGFNUm9rUW1HdWxEb3dSblpSaFJWeW02UHFqRFZuZ2FCQmU2V3pJSXdBS3dkUkhXV1hvY0huOU4yNkF1cHhOV1N6VHRWY29KUHdRYy8zMUYzNmsxdXVLYzZkS3Bvd3Fpa09DUFl6ZmFCNStnV21oWllVbm9ZSGJSQm5kSVVUNjgzNnRtWVgvQVgxeXVVVC9xSG1Dd0d0SGxBSmFwbTdXbVlldlllUXkxSmczVkNDQTBJUWJlcVJHT2J3NUptRE53ZWsrNGF0b1RMcDdHYVg3ZXBJVjlxTE9RUjFjQ0hNZmFrMWh4YkhYZUpVYmZZLzI3dG5wZ2o5VGxuOHJuTGJ4WUlmRS82SjIwdXJvYTY2WHlSV2lhUlJ4b202bGYxbFAwL2YvbzlGbldVTXhIb20yMGxaMnlwbGllRmFPZlhpamhzN2lqVkJ3RzJCMWd6TjdZWVNNS29nQVBQTUZzYjJteFRXZ2JXZzhpVkNVamw2cGQ1THl0SWExWWd3ZU0xMGl1QldUdkVHeDQ3dE8yN1dHamNKMVpjMldEa2ZkU2tTSytZK0dwVExraEMzVTFtSGZYM2lNWllhYjlzMTJGNWRxeFdqdUpvOExCcXo0UUNxWHpDQWE5ZzNPa0JJS1YxakhyNEZ4cEM5eENDMjIvUmVTb051TkNnZ2NOY2Q1V3Q4YTY5WXF0RXdEdXNrTGFOOEI4eS9rZkRNNHdacmN6dzVMcFVWOEZiNVU4eTJXckNldjF3Q3R4dytOSXFKODZ6eEV0KzRoMVIzckI0NHdOODFqTU1jNFFzNU1kRmpKUDBIMzM3WVU5endYOGRORWVXWE9zcUxGaFN0QWFjQnNEelBJdDF1Vy9oSjZ1WW1Hakh1QXdoeU5ESWJVS1JvS1lLR1FpMHkzbzFna2EvN0UyTjErYkhkc2diV3ZuQzlDaTRGYTFna2luaWE4eDJjMUV5ZkNWckJMQ1oxWUxWQ3Azc2xQUVltM1QxYmZpbG9ERDhlYmFiQWNjaTJZeS9GYjIxbDNFT2hhUlRMeU5LcTdaNXp4VlFiZTFJSmN3LzhqYWt4blNvNFlVQ09nQ2NkVnJaTFN3dmlBUWoxR3RCMWpwdFdsem1tREIrZWVtNGE5WnN3ZEdZb0NWMkhvdzQxU3pXUGxPM2lCS1ZoUzZXTzdNSGoyc2xPL2dWekxmbjlDZi9uVGFjYXg5QytGWTB5N2ZJOUZYajUvYlhRemxQYzhmNDRFb1R3cXhENC9OclM2RjNEMjVGaytxS3NSS1Y3ZEx6d2VZLzVSc3NlZWJQR3IrRUhzMUhSRCtZS1Q2RUtidFhFSVRzRGk4eXQ1dElzay8ya2ZMa1VwejlFYm5nNU92VUJHNVlwdkpsQ2xWcmtLVlN0VnF2SGFpc0ZRdHBUb25aV21vTk5CNjY0VzVBNDVRakVyRHl6OFdJd2tHczR4UnhpMlNmWi96b1ZTdVZHdjFSclBWOXBkZjBkMWVFRVp4a21aNTBSOE1SNTY0TjU1TVovUEZjclhlYkhmN2czdjh4OVA1Y3IwMWJiYy85TWZ2cUl5bVQ3Tno4d3VMUzh2WkZYL1NMOHQyYlgxamN5c1hiZS9zN3UwZkhNYjVRckZVcmpoK3J0VWJQaFYrMzF2dFRyZlhId3hIang0L2VmcnMrWXVYcjE2L2dXQUV4WENDcEdpRzVYaEJsR1JGMVhURHRHekg5Zndnak9Ja3pmS2lyR3JZS01QOVlQN2w2VFF2cS9WbXU5c2ZqcWZ6NVhvTGhTUFJXRHlSVEtVejJWeStVQ3lWSzFXbUtCcUh5eE95Qk5FYnpWYTcwKzMxQjhQUmVES2R6UmZMMVhxejNlMFB4MzBBaVVYTkk2c3ZrR1JGMWVyNGRjTzBoTzI0SHZjZVNHUUtsVVpuTUZsc0RwY0hnQkNNb0JoTzhBVkNrVmdpbGNrVlNwVmFvOVhwRFVhVDJXSzE3UjhjVWpTVHptUnorVUt4VkdZcjFWcTkwV3h4cU4zcDl2cURJZVlGVVpJVlZkTU4wN0lkMS9PRE1EbzZQams5TzcrNHZMcStBWUVoVUJnY2dVU2hNVmdjbmtBa2tTbFVHcDNCWkxFNVhCNWZJQlNKSlZLWlhLRlVxVFZhbmQ1Z05Ka3RWdFkydG5iMkRvNU96aTZ1YmhDTW9CaE9rQlROc0J3dmlKS3NxSnB1bUpidHVKNGZoRkdjcEZsZWxGWGR0RjAvakxZRElNS0VNaTZrMHNheFc2R2kyZXdPM2VseUd4N1Q4dDQvU0xLaWFycGhXcmJqZWdBaVRDamp3Zy9DS0U3U0xDL0txbTdhcmgvR2FWN1diZi9na0tLWmRDYWJ5eGVLcFRKYnFkYnFqV2FMUSsxT3Q5Y2ZEREV2aUpLc3FKcHVtSmJ0dUI2L0dpdTZLSjJlblROWk5DQ3ovT2RNYmtCZ0NCUUdSeUJSYUF3V2h5Y1FTV1FLTlVjZGM5SXBsdDhjZDhJbHNJc0lGUzY3cUdHdU01Z3NOaWVybFhSNWZJRlFKSlpJWlhLRlVxWFdhSFY2ZzlGa3RsaFoyOWphMlRzNE9qbTdwRWlwWXR0OEM3Z2xzOUVPaDZ5ejJaYjM3RDhnME56Y1kzQUVFb1hHWUhGNEFwRkVwbEJwZEFhVGhVS29UNDh3Nk92K3g4OW1aRDk0anVjOFZUM2dCVSttVUdsMEJwUEY1bkI1QUFqQkNJcmhCRjhnRklrbFVwbGNvVlNwTlZxZDNtQTBRZm9KTS8zeDRZaHRkZzVPcGtGWkw1OFo4Z3RjakVSRXhSai9WQ2VscEZXb0JQWVRyN2w0NEJvMWFkYWlWWnR0Tmo3bEZGL25TdmEwQVVjUmcwMk5CNkVheE5UVFRBQ25XdUdzY3g3bnFhVktqdXZ5cE1NOUJPR05STTV2cjRxVFRxUFBRS0RIK2ZVV0ZMUFhRSDE5L2R5S1hIZlhqeWdiTTZpbHdrVElXZ0JkdXlkQm80TWc2K056S2l1Q3NFRVZtS1dxTHAxMnY0Vk5LbXNVeUw1OHFpZmZuK3owT1RSSHJBTUJmVjVndzRRaDNReUliNmJSOU50RDB4N0l5Ulk5Y2pYVlVZVDlHbnJRdDBlQzhGeFRmUms3aURoVWVQblU2elNld2pTSHNhcE8xbWdsUGFyMFNDYTRwdm5xMDJ0QnFGZzBySlhpLzlMS1RtM3UrNm1wL1RScXpzemhIYS9lckhkcjArOXFtNFBOemdvcTA1akN3bW1aVlFPclkxQkM2Sm5pbXFXaGFXQ29vVGhWdktja3A4cW4rZ1J6RmhjVkNoN1NPckJYbGVLRDN0eUNUZFZKRDJPRi9reDV0YktwYjgvOHBMNmF1Uy9mYVpMVFFPY0wraXIxRjExbDMzejAzMk5PZWduOVpTeitoZUM4Zm1pOVB2VHQ4NlE3aFAyeGZjTWRrZ01odEFFODYwYVRWcHIxbDhxMzdKZU9pMUNUT0h3Zk9VdmthSTZWYmN5WXZGMThsVFdGSTJIVmh1My9ieWcwYUF0eVZtQWw0S2tRT28ydkFGZVprSjlHRUlBR0ZTc0Q4Nnc3NVJlbzFLdDVxTE5TcWFiNTZtK0g0djlRUEE3NkFaVlVsWm5CU09rTTB2TlVDSjBTWlVkNHZZSkN4a2NBMzVScXIvMVFwSWdmY2FFdk5RcG5DeGdiWWZtc3dKU0M0YnFsRFNzdVN3TVNra0JvZ0lpR0lGREFoQ0lZM21FajNva052aUFUWDNhdXFROFBnZmV5Nzd1NklCVmYyUk5xZVN1YkNHR0ZBR01tM2RzaDFyVm4rSkt6U3ZjSW5pa1ZadnhXd1l3Y0tlQ0t5NUVpT2Vmc0xQQXYxdmRsUU1PT3ZsTXUvOTZrd0dHSjhXczFOVnNWZTFXVFlMemF6Sm9MTXlDODlMUVB3aUVRQmhqd1dyRUw4UUVxUlVCK1g1VHR3K2xibGxQMVByU2N5MUtKWnB5ckVSc2NnVUxFbVdOZ0xrUkxvNkp5YXZJNFN2UnBVdjlOSHQvSGxpaGdUZGxPcVREWUZuWGJiUjJGVE1DQU9tU08zbTBiUXdWcExHVEFkSUNCYVh2QUpJUXVqQ3NSQWZobVcvSG0rMGJLd1RiR3lxc3lDYUo4NHNCOGJPMWRRcjlNRFYxOCtPKzg2L24vLzM1czhoRzVMdkF2WHZIRmZmbmErL2ViM1ZwSnBURzNPUWhsd0lWcFNXVnJCM05iZ3pEZ3dyU2tzcldEdWQyRFVBWmNtSlpVdG5Zd3R6MElaY0NGYVVsbGErZnd3UkRLZ0F2VGtzcldtRnNaaERMZ3dyU2tzcldEdVZQVWxGSktLYVdVVWtvcFpZd3h4aGhqakRIR0dBTUFBQUFBQUFBQXVDNUFHWEJoV2xMWkduT2I0NFQ0UjhIQ3ozOTFuYktpOHRuV3g3cU9tUlJFS1lLVkVHRnNKZUNWZmNYZE4xcTJFRjliZkgzeGhVcytiYWJpNWNkYzVCV21oVDU1dnpKRTFmU2M4WWlHKy9IMWc3d0NJV2hVZ0s2cG9nUEZPdWVvc0pwejRzNVFEYkxLQUpvcTNBcTVUSmhBaUxLT1JraEpNeW45dGFRS2hYVWpaVmF5Z3hsWk9lUGpxMHhPMVlscUkzbERoY0QzRkZCSG00enFqc2lsWWJWazlZREEyRVRXWFVzcWJWcHRLRWFVTWMxUWVKZTI1OUE5SzcvaUhSM1JLd3gxNEZlOEwxV0VhUGY5VUtXZEs1Q0lIZ21FckN1b2dqTG5NTkNuWWlLR1lRM0VGUjlvS1dJaXhsSW93WWpTQmxVb2thVURiU05SeWcrZ045S0J5UXRDcmh2ZXJpbWxwVHQ4VlZVUWNxWGw2aldGczZNdDFDdnhUNnR2NzB5aURkN2pwaDdxbmRyUU8yeUNZMkdRbUl1dXozc05LYVRNcWR1WWM1blovaHlqYlFDUjhhTGJ1S0VEajkySG1MMEFnMEpXS1VXU2RTcmNtQWZLdHMwMDRGcUkyZDFBZVdCa0lCaUl3MXdlQ090TU1qdTN0WmlnN3NvWGs4V2RtMC82bEZ3azVxRzBjZzhraFpMdUpvSUVYaWpwdXhUNjQwWUhQenFONXhlNmNLQmVlZUNCcm9TcUt2MnFQcEZyYUdpbU9tdVNjMzFML3M4MjFvZ0paY0NGYVVsbGF3Zmo1aDZFTXVEQ3RLU3l0WU54c3dlaERMZ3dMYWxzN1dEY1BJTlFCbHlZbGxTMmRqRHU0VFVpSWlJaUlpSWlsanZobHlma2dQdDArZUFpTGUrbkYwMW12N2ZUMTNGbTJYZzduWHJ4bFpndlU4TmpOVk4yYXV4c2w0VkU0UG1sWUVOMjhKK1FURU0rVGN2RFNYT2JuNmd3Q3pITnllakoveklXS0hwcUM0cGpVcUhiZkFzL3owczhlYXpuMkRJNGdZZGVUMnM0YjlNQ1U0bFVuQmJZNXpVOVN3RkYyYmdRWEpCeTZLV2Y1aWpYL0tEVjhMSjg3T1c0NUs4c042dVJVdk4vWEpjeVJIb3FQNjlVWjhLZGQvZDlQdnJKSE1Ock41ZVBSMGU1MEFFTExNV09kb1NRaWdNamVaaHA1clhKS1lSUU55SzRndnVoeDdOOFhnWjArMTFHZk1HZDVrcTVMSFQ3M3k5amczTi9iM05tMFN5WlpiUHl6Zm9YeHVDSDR1ZDd1YVdWOW04anA4b0xHalhzL3VMeHVIcmVEZzF1dmg4UThBVjRHcjZwMi9JWEhMVUxYTWpQOVJtVnEyMFFxaGFmcS9HbHRaZGpjZVhXYzFDTExMYm9FOE5iK0U5TkZIVnJ1ZVpMTUwzNDVzaGVHcWlYUWxxK3ZhSWdYcWtYWld2UkZkcWZQT0FYZ2lvbkovR1dOWm9lT2tmTHpvQnJ2QVRITmJPRVpNYUF0M0NGR0ZjNGxsdUFYT0ZGcnZDbVVTU29jS0dnd2NUa0JTQ2dJQnNCVFFBQ0FIbFJrSTJDZ0lBa05jcE1ieUgvbHdYV0dWS1ZPVkc4MDdKa3pvbHBFbzZhVUhJTU5MdGVQSC9XVC9Cb010UFF3ckNJNHdWUndzNVdtOTBodTdpNnVmY1luK2ZoZ09BZWRPY2lPK3Vjd1YyWlowS0YvZ2Y4Y3RSbndLcndpNXFJcDVNQ2VoNE5CM1FhaFlSekl3TFpXMC92NlIvMUE0OXM1Z2xDVGo4MGMzR2xKZUVmRDJTUUJVRXVTR0NCVVkzTnl4c21vNlFOY0NpbWtMeFd5Q1FCY3NZeVMyNFE3TmdmQldRS2JOUERIL3JqUTdaTkJJa2xrakJrWHNkZ2tmdnlBM2xnU2dSUkhVa0l5REY1aEoveDhBTUNaZExHS3ovMHh5V0owTU41SGw4VnFXb2p5VzNMcEorb1oyaXlKRzI5c2prUlRIWmswNUFmck9BMkF2T2hVT3V1KzBGQ1BodzNtcWdOdHJpekNMdlpnOG5oM2Q3L3BBMzJqVy9EcFI1T091aG9vamptZUVnNkVWbXhrR09XaloxcktyZFNmZ2lSZ1lvU2tVVWw4d3kyeDJibUd1MXJ4dHd0WVhnbndjRzZ4NGVtdzZQTUMrMlpvbjBtOXlRNTFQcndLRGE3b0dEbkwybFlnZDlIS1B3Qy8xZHkxQ3VGYkFEaUpaK1VtWmZtUHlGdlBEblFJZ0FGSlA1dHRmbEFxajB0T1lYOXg2UnNOcDdnd25FQ0FBPT0iLCAiZW5jb2RpbmciOiAiYmFzZTY0In0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDYwMzI4LCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA2MDMyOH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDE1Ljc3NSwgInJlY2VpdmUiOiAzLjY5Mn0sICJwYWdlcmVmIjogInBhZ2VAODZkZGU0OWIwNzcyOGY1MDhjNjgyYWE4NTc0YzNlNDgiLCAic2VydmVySVBBZGRyZXNzIjogIlsyNjAwOjkwMDA6MjIzZTpiYTAwOjEwOjdkMzY6MTcwMDo5M2ExXSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAic3RhdGljLnNuYXBjaGF0LmNvbSIsICJpc3N1ZXIiOiAiRGlnaUNlcnQgVExTIFJTQSBTSEEyNTYgMjAyMCBDQTEiLCAidmFsaWRGcm9tIjogMTY3NTI5NjAwMCwgInZhbGlkVG8iOiAxNzA2ODMxOTk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMjA1WiIsICJ0aW1lIjogMzMuNjc0LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtTWVkaXVtLndvZmYyIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAic3RhdGljLnNuYXBjaGF0LmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9mb250cy9BdmVuaXJOZXh0LU1lZGl1bS53b2ZmMiJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogIiovKiJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJvcmlnaW4iLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tIn0sIHsibmFtZSI6ICJyZWZlcmVyIiwgInZhbHVlIjogImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS8ifSwgeyJuYW1lIjogInNlYy1mZXRjaC1kZXN0IiwgInZhbHVlIjogImZvbnQifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogImNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogInNhbWUtc2l0ZSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTEzLjAuNTY3Mi41MyBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogNDY2LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhY2NlcHQtcmFuZ2VzIiwgInZhbHVlIjogImJ5dGVzIn0sIHsibmFtZSI6ICJhY2Nlc3MtY29udHJvbC1hbGxvdy1jcmVkZW50aWFscyIsICJ2YWx1ZSI6ICJ0cnVlIn0sIHsibmFtZSI6ICJhY2Nlc3MtY29udHJvbC1hbGxvdy1tZXRob2RzIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgInZhbHVlIjogImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbSJ9LCB7Im5hbWUiOiAiYWdlIiwgInZhbHVlIjogIjExMTE0NDQ0In0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDAscHVibGljLGltbXV0YWJsZSJ9LCB7Im5hbWUiOiAiY29udGVudC1sZW5ndGgiLCAidmFsdWUiOiAiNTk2ODQifSwgeyJuYW1lIjogImNvbnRlbnQtdHlwZSIsICJ2YWx1ZSI6ICJmb250L3dvZmYyIn0sIHsibmFtZSI6ICJkYXRlIiwgInZhbHVlIjogIlRodSwgMDUgSmFuIDIwMjMgMDI6NDE6NDYgR01UIn0sIHsibmFtZSI6ICJldGFnIiwgInZhbHVlIjogIlwiMTE0YjFmZjQ4ODg4ODM3YzRhMjY0OWQzOTg4ZTIxNWNcIiJ9LCB7Im5hbWUiOiAibGFzdC1tb2RpZmllZCIsICJ2YWx1ZSI6ICJNb24sIDI4IEZlYiAyMDIyIDA5OjU4OjMzIEdNVCJ9LCB7Im5hbWUiOiAic2VydmVyIiwgInZhbHVlIjogIkFtYXpvblMzIn0sIHsibmFtZSI6ICJ2YXJ5IiwgInZhbHVlIjogIk9yaWdpbixBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMsQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOGE2ZjY3YTk0MjFkZTMyNmY0M2U5MTA3NzUxYjU4MGUuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJ6Y3l1TU9Scm1ucEFidUkyNGhEcHFtYWhaS1lBd0ZId2wwRG8wSkZLVlhubDFvb1Q4eTE3bVE9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTU2LVA0In0sIHsibmFtZSI6ICJ4LWFtei12ZXJzaW9uLWlkIiwgInZhbHVlIjogIm51bGwifSwgeyJuYW1lIjogIngtY2FjaGUiLCAidmFsdWUiOiAiSGl0IGZyb20gY2xvdWRmcm9udCJ9XSwgImNvbnRlbnQiOiB7InNpemUiOiA1OTY4NCwgIm1pbWVUeXBlIjogImZvbnQvd29mZjIiLCAiY29tcHJlc3Npb24iOiAwLCAidGV4dCI6ICJkMDlHTWdBQkFBQUFBT2trQUJFQUFBQUVQY2dBQU9pOUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBaR1ZFMGNHb0VLRy9zOEhMVVVCbUFBaVhZSUdnbUNjd3FOOXhpTTZCQUxveXdBQVRZQ0pBT2pLQVFnQmFkdkI5SUFESEpiYStPVENGVWl0M3VqbjA5VGlnSHNHdDZ0RWp4SmJiZk5YRUduckJ2UkErQzFkU2lLbm5yanRzRU9pTGV2aDREdTRJQlVmVmVxWlAvLy8vLy8vKzlhSmpKbVNWSjJTVXN0Z29pSXFEalZ6WGR1VDVETVRISXlGajFGWmxSblcxSE16dHdCTDk2azVEREtXTHU1M0ZJRzc4eTZUVy9iRUVWRXVMYkoxcFdCTmpzeGtkSElUYk1YRUdCS0dDQWNobG5vTzdJK1U2czRCanpKUlJ6bE15Z0p0dkF0TTd1QTlrWko0UVFKNnM4RFRRRExpcWlzcVE1ZzZuTGxOMWF6SkNDSkFDMXNUVkhoQkFuNld1NHczeDhzVnUrTHZ1bW1LMlFTQ053Sk11UkRnQU5iam13NXplZDBlYlpVMVBlVkNNaW16Ly9XdThLRzE1UzcxTEUrMkFZaW9HOHlUVC9zOFQyMmJkdTJseXppZVJkUm5hVnArbUZYU2R1eU1ab2p0RU5wT0JMNDZKcW45QkxudHdoenlkeFl5UlJqcEM1U3loUnBwQzVOaFo1bnRucXdlODNPM0VLQXdCNENsSzdlOXhxWGRsYVZILzdMd2EvOFpuc29RYjhBMkNuZ1c3d3FOdXA3QmVhbDhuOWlDcEVVS1hSZC9Tdjk0YU40eVNiaVhiMy9zbGZ0SlRBR2x3Y01FUlZUTExIRlBOV3JUM3poZlY3dSsxL1p5ZHlCSHNqeXd4WFp5UldweXFoRW5COTRQWHYvL1o4aFJxeFZEWUlnTVNJSVFRY2xSZ2lKVkt5N1E1ZE9IZWxTVmUyUmJsMlQ3ckE3VDFVbm5ZTnJ0ZFZ4VnNkVzFYSE5UMDdyNjVXQnFxS0tNdUFMSVJBSUlTR0QxS1B1Nlo0LzYrenNuckhoWFJodWtGMlNHaHVFUHp1YkJNc1QvMk1mZW1mbTdXNkFqeS9RbHpVR2dCU0NNRW1xYkxXb3J3WGQ1aDNwMVB0MisxOGxtVm8yd2JBVTk0NXlTQTRxTGhETVhjbVVzTVN4UWhJSGVXcVQvbDBtaDNPV0IwS0hLRk5sMzdFOCtXZ2xrVEF0anpGYmlmM3YzMmwxcjJSMXFzN1ZpMmNSdndpK0dKc2ZXSHEyWlVkTzFHbE55cldib1N4YXYvRnZBSnZEM1R6SkFCUFA4OTZ6KzdZQkJaeEJ3Rm1uZ0Q4QUpHRW8yM2tFdGU2V2lVNlIrdjNNb0lodVc2ZFI5QnJZa3dka0FVQVRBb051ZmsvdHZUcVVDaG9oQkFnQkFpU1UwajU2d29udG0yM2JYL1kvclhkK2FUTk5XaERiSDJnNmd1bnozL1N5cFBnVUN3dzRjYitYWmVjalRMRFJxNDZmYlNQZDFuUTFrcnV1NU9xMlIvK1h1UkxtRWg1aDNxbmdnaGNVUUFBQ3pnbGxEWTNuNXdETVRSd3FBa0t2bTdFb05tSnJGcXdDRnJDTlRNSENJRTNFemh0MXZWWGdWY3diOXlyWG05ZmZpcXYvQjdxeFVtMkNHSTdJd3BPaGFYdUgrRzROSlFOSElFaVNYRlJmVlN0TSs3OWI2My9YRksyYmNWT3FSdDd6blNMSWdJdVlLMkFLbkI3Z0w2V1UwYjFSdU8xaFY0Y2dXTE1EMTFKeGZCbjVrVFFjQ0MwR2lIRGMxNFdRWXNQajkvZVFCekFydkJBdlZManlnYUJpR2IrQ0R5UThzQUJQSjlMYUhrL3dnU3lYWnNKR3JrMG5RVnZZT3BLOVFhem14RGVmN0l4QmFQRkR6Umtob3F0WVVFUmp4Wllvb1RSbkdOclFCTVNleE50TnJyYkg2Kzd4YW85UEt5R2tlZjJya2paNWQrWEtJL25qQUpRc0czSzRnd1UvRk92OXFmOGZ6R0VsTkJMQ1hvTW9WeERja2s3OGF2OXNaWmxxamIvdFAyeGNURXJqWFVqYkZDTWJYTkE5SUxmTDJmOVd5ZjJmNDJyenIwdmQ1L2h0bXFiNUwwMDZ1OG03SklyeGpFZHlqMGN5SG8xQ29WQW9KTmNPdTBRam9WOHptTUlCNjREdzFhZmZyM2JrclpDZ2lrZlRkTmxMSlRTSnpFMy82bXRmZGRXZkFQbitaSHY1bVdualord1VTZ0VUaUVrRXhsRGJhLzkrOHZqMHZMdTM5aTNYb3VhSm5pMXcyNlpZaVlmeFJyMkZVWmlWbGZmLzI5U3ZmVS95SktQWStWLzZhSGYyWHlLbjZCWVlxdTFwZE9lTlJ2T2V3Qm81b0pIdGI0OUNVbEJTeVBLQ3lJcnNLRjVIY1Q0QlMxcWY0d0RaeVNkd2xpajVDd3dkTUZaYmJyMWRSOWhSdFcyLzVWWTljVkd1Lzk5YWZkbUt6K0FIMkNnQVZ1Tkd1RG1uNjlYTGlpbnErZ3h1Z0JYSHpYanhJck1yczJvQVNBRXRrN0RyMXFrOWExVm1qZW4rYXM5YXZ4VHF4UWQwaEErQXk0QUtXQjVWY0JOdGJZRDBvZ2ZOaklQLzcrOS9mR2JORzkvelVQb0JaZlIrdG92Q0E5U0Vsd0lPTExQbWNuOHJsRHdlMXAvOGV4aE9BaCtBek1Pa0c5QUFiVHhQWFl4djdqKzdEMWVBb1lWOE8wbHJsT3RpR2xFODhPM1YvNWQ2ejFnai81WkV5Nm5ReStrb0FPcDFRTUtBTlJvZExlbm9uUE9LLysvK042WGQ1ZlRpbzVHZjlYejkzazN0TUNzQXQ0WkpLRTlRUVN5STBQaFAwNXFlSzAwUkhLNTdUaml3THZ2bXoveEwvczd1bFQ3WGVxQXJUbVdTSzluYm96bGtxYkpMdWtZWUpHaU44VWo4dm1rbDdhL3F2MnFkWm9NY1VnWXdJUzl5Z01lT29GbDFqZVRibXZMc3BSQlJSSTRKb0h0bUJpeEZaTzU3cDMzU3RZcm5McTBBSGhyQVJrSXNoR2xuUnZiN0x1dkwydnY5cjdTQ1V1KzZOMVUyQ3VBQkpMQnprUHZXdnJUSEFUWXE5b1FOc1lveEVlNkFlaFpyOWwwRkdOVGlkTS92NnFydVh6TnpRQ3JFcEtKaUZLRWpkZ1E2OXVUSVZUTHcvR2RxbituY3J0L2RNZzZIbjlwNER0Y2s2UXlIQk1JMUxwWVBVckQ0MEhVNFBZMWE1N2lVeS81S3loU2o4S3E3QWFLSlhqTi9qWS9rWEpBcGlMTUdSZ0ZJeVVmU1R5VWZDZ0s2eWY5ZmhOY0NzTFZCeHJJaVNLQkFBc3VMdzRBenpXU3BsVUV4YVNaTlpyR0NjVVh3MnF2djBuZkR2cjVSdHQxTHFBeWxjNVczVXNRdi9sQkVnZ1FKNHN5OWpLMnU2anN0VkdJamg4RGR6NWhXdjI2cHljN2RiL096TFZOaVFRRVZSVUdLUElwY2FkTithVitTdG52a2VzZmxidHhvSW9vS0Nnb3FIaWRSYU9mLyticXZWTS8wdWxlcjZVVldoTklKZFZ4aVVRc2hSSTZQcjk0enlyWFVDdTNlM2V1bS90b1VQS0ZzRFNoWUtKb2s2S1pwKzloUDYyWDM3MTc3dk9lMXZpV0pKUnFORFJSRUJJWVo5SFYrbW52TE1MWTNvaGF5bk9jVDBGLzJYbXY2UCt1cjNaTFdpU0lTUXhEdHZ4NXV1L0JiUWtBQXZIcmZOZzhBSG51dVRFY0FMMTVIMDRFQUdBQTRGbEJZSUdCQXdJUUpZc0FpQkVXS0lVdVVJZERTUXBZN2hFQkhCNm55QmNHQXI1REJHQUFoRnNFQ2xDRmhDaUV6bVlPeThFS0VDN2NJdW1obkVENjdjOURuenlRRUZFQUJDS0NQTUhHSWZYNHhleG93Y1VGYjUwdnhIRnkrTUNhVmc4dTNFcUk0dUh3dlNjYkI1UWNwOFJ4Y1FOTWpCS0M5ZnpOekdqQUJCQ0FvRUtCZ1NZdVFDQXBnTnJtWjVpa3l6enpMckxCQ3VjMHFIVlRyaUJZWFhISFBCYlVlNnRMdHZRRjIvQXdqMEsxMmtoVkNOemNWUFkxZXBzbkxqUE15clY2bUhUMVB6ZWR2ODlEcWhwYVFhSkhRVWtJTEowbFlHNjNFa1FTU1pDeDBlQkc3dzIzWTNkekpVTUx1NWtSTmN4Z0VNSkRLbXdYY3ZqM3pYTUNCdnZtVkltN0dOY2IrY3NRWS9SWWVKV21NR1M4VFpVeWk3L1VjVjJ3OGVCSUtFRXdzUkNpSk1JbFNiWVRiT00zcnRqLythL1dHd1dRTFdwYzlOS0NNY2lxb0F2em5Cd1dYWFBiWHg2ZmU0Z1lQeEc3a1lvK1V1RzV5NDM0T3Byc2ptbDFxMmdYWU01SHdVaTRKdE4yK1crR0NZN3RTbW9HUUhyWnhDcEtXRnE0WEJqUzFIUU5OQ1dRbU5lTGZsUDZxWGtvQW1ZZnIxZGQxbXFYUFN5dm9BdUF2YUJ1QVU4eGFkbGM3WGdvZ0NDbjZONkhzemYxVXptM0R0WjZ5cUNnWmN1WGV1L3BLZzRWWjN3Nlo2WmhNMmVxcitLa3N0VUtUTUlFdFJldXlXaEtITXRFT3NOVU80U3Z1UnQ5ZWZra2g3a1psK2dvNXdWYjNqQlJHQ1dDamhVR05MTFl5RHkraFBMNmp2NTQ0ekVpODFVK2Yrb1RKWEF1U1R1RlNJMm5hZGEzdnl3c011OXlwWDViVXZ6bGlBU29FaTd1b2RqTzc0UHJpSVhxT3NXdTRSZFpJNytDSTRTbFRiTVlGVDlIVWR0cGp5S3BBV2c5TnhVRU9KS1NCS2JRaWV1Yks2YWE0QUtjV3FyaEtlNmpnZWRSRHpIZE03Z2M2aUVTRGJ0a1F6d09YU2pQa2NZZjVYZFdocDBuYkxsWnB6amxxZGNvNVM2VGxNc2FIeEc3ZWNycWViYUgwbTdHMHNCVnkrTXRLaXdTcnhUemdkcUtzQndtbEZQZXNCekNqR2NSb3h2T1lMQkE1MkxPS29tMXNUaTVvQzh2NExJQTZWRCtiL3F0WHZJcGVRS3NOSjFsS2s5ekZzTnh1eVVuYkNqelJHUjRwZ254bS9tdFM0eVhOMllpOHNLSnZ2RVA2VHlXRkNtSWNqS29sSkx2QzVyQVRsSU5WRmV2N1RJYlNyZ2hyM2dQWmJBNHV3eDl4T1c5YzZ3d1I4cmkreHZQdFpWWk5Kd0oxRkFIdDZYRThRckRGd28ra2pUdHBqRU4zZXFia0pTRHlKTXM3UXMrVHp5NEMwblJxNDg2Z3cyeHJpeUNDcksvWlZsZDArUU42aWNIL0ltaHlmODEwQ0NhdXQ2MzR4c0JaYW1jVGJNOUx4Y0hIbGQyWnRZZSt2VFdwYjJzUCtsREZsRnlNRFMwRUpkbnU1akVJcWFHZ1BOQzNOQXRQQ0xTcTUvSGY3L0hoTGdnK0FtSWZObTN0WTdBSmtTR0FnSFNPYVBPelVHbW5XVTd4enF4NmRJN1AxSldPejZhZTYvL0N5eVNteGd2eDBkREZ6S0dHcWo4aXdtTEhUeldOWDkxTDQ4akJzbHFEYkM1alFOdG4zaFFQN3JrenhtU1kwbyt3WHV0clpkMDA0a09kVXNVbkdWZFc4QUxuUDY3eWFIWU4xK21QOERWR0tQcEMySTVBMGNpd2oyTnFyRmcrVnc0NE85SER4ZTJhM1F3UjJnNHZFUUJIeE1NdGVMVk40b2U0VW9pZkFnc2d6K09FV2RGaThYSDFwZkQwbDhCTXlmcXYvRTYxQ08vOWVRRVNMcWZyS00yREQ5WUUweWxHNVZ5RWlkK3A2WDJLTGkydk80Ly92WVYrZytqaXNWRGQya0tkWG8xZDJGd0F4eGZCdkZUb25VYXZJUlRPci80R2VVUVpFWEhYSDZPOEdTMWN6a0pEOEtoWW8rTEljb3cyaTcwNStHYnI4bk5sL1ZkOE5VNEswNzJmcUQ5Q3pkN1RtY0Z1OHJDM2NxQTdNcHpzV0NoYnpKRndNUjdPVndBRXFJUkltRExTR0RzTHRJaUxVSWU2bWpqSzljS3o0ZHZDQklGWEtWR0dVcEFjVlp6SVdVQWlnUlErRkh5bDhqT1dQelU2NllReUJNZ2trc05DcmtCVE1aak8yaUpNbGpSSWlUSzJ0QndzcjUwVlZuT3d2dlkyMm9wamV6bDIySTJyb2g3Mk9zU0xicjFWcS9NOXBvbVBaczMzTElpYzQrczhrUXRzdGZMU3h0WkZYaTZ4ZFptWEsreGNZK2NHTzdmWXVjUGVQZlllY05ET1d3Y0gvL0wya0lOSHZIVnk4SmkzSnh3ODVhMkxvMmY0bm5QMEF0OUxqdjdEMTgxUkQ3NEJ3d3dTSC9nTytxSHdFL0liOGxmb0IxMEpmQzNFeldKYlQ3cVIwYmdkOEpwazl3UVBWSTlEcDZlc1ZuYjdIRUI2ODRFZ0ZGMEF3b1I2T0lxbUY0TjZBcDJPeW1ZVmk4cGw5Zm9VaURiSVo1SXR6UXZKRHZZMjFPL3ZNeUMvRXY1R2plbG1ZdUJaQkc4MkxHc3c5RnpFbTRlUkM3RlpFY1plakluYmlkc2JJdmFGMkEwUXZhK1liNUNRZlVPeUljTDJIZFA5SUh5L2laa2UrdEZCTVBLUWdCMGFDRDEwSUQwTU1Pb3d3WVJNUkt1TDFsNnNVbU4vcDB5OFd5NUZMeC9ucVJ6RU5NY01uMmR1bTA4Z2hTR29BeEdua01jckZOTVcwY25MZFdXdFlHTXY1bFJZb2toUmV3R2hNdVhLOC8xVlJWN3h3ZjRMUWV4UVZFeFJ0RmpNVEl4RHJJSHpvWVZ0RVFOcnIzWnd0RGk1OGxtUmtCY1JiMEZjQlhNZ3hoZUNUaWhIRXNPRWNSSXUxRWhtb2dTSVBqRmtwRVJpSllrakYwOHFnWVRNY01sR1NSRkl5VktxTUNxampUVkdtbkJxQXVsOFpPREs1Q3RMckQrWnkrRnNLb3JwWE16Z1o5SFBvSVNXSFNPOU92TllDQys4NElmVFhpZEFsWEVNSEl2VU8wemlDQ1J6MUtONGljQXkwQ2xuaExQVEJQaGlSd0IyQkdCSEFOWGh1VW92UmczUGRZaHhBODlOTVc3aHVTM0dYVEwzeWJRVCtaZXFSV0FSTDFuRVNJandSSTRuY2p5UjQvbTBQcmsrU3VwVlVtK1NlSmZFcHlTK0pQRTFpY0hzZlh1RVFHZmlaVGFma0M5ZnlRL09HYzRaemhudU0xTzU1eWozN0VSZmh0MnVBYm9vdjY4MkVBelZSY0x4d0ZwNHZNSHpHNzRxOHl4emg0N0VjMlV6NVhNVkM0bEM1VkxWU3ZWYXNodzREUjhCcEFSMjluQjk5WUhaT3RMVEozM2Q2LzQrc0Z3Wi9oTEp3SFY0dktFNmdjdU4zL2dvVWkxelJpNTdGSXUxak9HZmhOMmtQVUt4WGMvdzRMMTEyMmNNRzJneDQ0bVRLRWpLSnUrbktmSDdWVWJzLzhJNXhNQVUzYlBmSGFHb1R3Z0NVbklpQmhoc2prMHQyMFU4WWNlcG5YWER1dlF1amRKWk9uMG5FNnhackJhd3FEMEhnZ2hJeVlrdzZxWS9LTzJpVEZraEh4NFFDVUJpbU5BZ3dJSklNOGh2UWZ2R0N4MEJYNFlJUlRBaHloZ09wT0lNRXovQlNRVm50ckVyejlTNTFESzV5WkhMazBQd05wODlTb0VsVnZPUk1VZ2lMQ3VNWW95Sks1eklES1NVWTUxMVJWcDFPNmV1blZ2UnpwTWZqSXZ4MldPQ01HQitMTWdmRm9vQmltSngybEZjRVY1YkN5NnZndnE2T0l2TCtyakxnODAwOTFhQ2V4dTF2WjNVM2tIbmNtY0NKR1lYU2IyUG50NVB6SGNPWkdNMk9UaG5iamJkMUd5ZUdnSkdmUzdXMEY0NUhFZSsrZUhvL0QwOStwZUZGQW1uRjQweWdyUExoUExtY211amg5N291NmJVdjFRbjE2ODE4VXdLNjNQYjYyK2xhM1lrMlJTeSsvOFVCQWdKRFRvTW1CaGpBaHRUNWllckd5eGluZE5BM05OR1MwTTFobUgyaXNYM3hpUkh3UzZiWHVRVFROK0xvdUgxcCs1MzhHWjc1bTN0bllWM2RSOHN2RytZTkh3ZEpjRTM0RHMvUHYwNVJPM2hGNFhjd1cvaU9zQWY0dERCWHhoMUQvK21IK0UvY0M4c1FOQUJFT1NuNEd2Q0FDQ3dNRVE5UFUwSUI0L1dsaDAyRzFQTW8xUDJISnk5SE1ZSjRDYzcrb2JEVmdsTVU3Q0RjbVZoMm9PWjVqODNscXhZY3hFdGtVcTI4YWJSS0ZKcWpjMTJPNmplQ1dmYzBxRkxyMEcvUXlkTUNHczV5VjArQ2xLRW9wTVlWYklSQUJJSEVrQ080RGg3bzBBY09XVXkyNy9kL3RSM3NERm5PdXduOUJ5TnZ1b2FUbmg3MnR0YjM3N3c5b0JyamhnSDVseEgreXhHbkRsaWQ4U2dXU08zbStiSWc4R3I5NCtoOG10SGJlQnE5M3JDeS91UEQ0MGVBbUxjZDdUUzhRSU1jT3dzVUpac0ROaWppQ1ErZjZaL21sNnhEcEVPbDhldnowbzBKYzdPSit3MzFMNzBaeUNEL2dYYmF1T0VpVSsxSFU5SFY4L0UzTWJDQ3FReDdmeVZsSXljZ2tZdU5UZVhmQVdDODR1L0pIc3lZSHpkMkVqdVZucXhydlJzdVJwZUNVUUttUTVRL1JuOVJ4d2VsOCtHQlVJcEZhMXk3amZSYjJKaFhDSUhQeCtQUWw1T1JZc1Y5c1FmaDArSWUzQ1NqbUpuOW1uRmU3L2kvWStnREFVREpnYVljK0hHblFjZVQxNjg4UW40OE9YSFh3Q1JRRUhmVS9EL2pvYkxsV2VjQ2FaWW9zUlN5L3l0VkJtdDVWWllhWlhWMWxpcjNEcnJiYkRSSnB0dHNkVjJPK3kweTI0Vkt1MXhRWnRMcnJqbWhsdnV1T2VCRGc5MWVxTExjeTkxNjlYdnRiYytHakJveUErLy9BNFFSVkN5T2xUTmJaajNqNjFPTHhvTVI1UHBiTEZjVjg4dnU3ZjlaejluTldTL3R5ZlFZQzh2Q0RqNU5zM1doOHZqOHp0WnJIZW42K1AxNC90U2NsaHBuZDkwOVE1MmJCOGJSSEdWVm05QVNWWTIvYlFlOS91WDVGVTd6TnQ1ZTg1Vm1uM0ptSzYwbDliVlRiK0w0MXgyejE2VHZHcUhlVHVmVHlpYVNPZUtsWHBMZTFjRk5XMURDc3ZjeHZlbUFDcEVKeERGVlZxOUFZNGxNL2xTdGRIdTdrdHJsWEliYmJWVHBmMTBhalU2cGttTGM4Ym0xbkl4M2tHNmU1MHNVTzdaWTVZV290eTdKNnpNUnJsdlQxbWJnM1QvdXRnZy9XclAyQ0w5ZXMvWklmMW1MOWdqL1hZdk9TRDlidjl4aEI0d0JRYWhFT2tCWEZPZ3YzS0RIdVFPL1kwSDlCQWU5SGVlMEQ5NFFmL2tqZkt2NHcvZlorai9DYUIvODRIV294VUdZQVVNQWY3SUlBZ1Z3cEFRQUVPQkNJWUdnVEIwQ0lKaFFEQU1FOFF3QmhBQ3c0SlFHRU9Rd0JoQkdJd3hoQ093UW1DTndCTEdraElZRTFnS3c0WmxNRmI4RFdOS0tZd1paVEFXYUdFY1dBNHpuQlV3N3F5RTRiQUt4b1hWTUlHc2dmRmxMWXlRY3BnQTFzRk1zaDVtcEEwd28yeUVHVzBUVEtUTk1GSmJZR0pzaFltMkhTYk5EcGl4ZHNLbzdZSkp0eHNtUndYMFhaVXd1UWtHWTg0RkdCdmFZS3k1QkdQTEZSaEhyc0hZY3dQR2psc3d3N2dENDhROUdEY2V3TGpTQWVQQlF4Z3VuVERPUElIeHBndkdrK2N3UEY3Q2VORU5JNkFYaGs4L2pCK3ZZVVM4aGZIaEkvUXZmSmdKQm1DQ0dJUUpaZ2dtaEI4d0VuN0JoUEliSmt3QUZiRVFNT0dpQUJNaE9tQkdpQW1ZcUJnQ1preU1BUk1iTm1BbXhneE1YQ3pBeE1jR1RFS3N3TWhpQnlZNURxRFdIemxTRzQ0OHc4QWtaamdZUlp6QktPTUtKalZ1WUxMakFTWXJubUF5NGczbWp3akFaTVlYakNyK1lQNU1BSmkvRWdnbUwySXc0eElLWm56Q3dDUmxQWXdpR3hGWUlMQWtrV0xEVldiTGpqMkhRSTNMMGVmd0RoWXlvMmNqYWxpcUhPUVNpbm9hT2Z4L0tSVXJUcndFTW9tU3lDVkxvYUNVU21Xc05HcnBNbVRLTXRzY0MrMjF6MzRISEhTSVRwVnFOV3JWcWRlZzBXRkhISFhNY1NmOG8wbXpVMXFjZHNaWjU1elg2cUxMcnJydXB0dnV1cS9kdng1NTdLbG5YdmhQano2dnZQSE9KMTk4OWMxM1AvMVByOEIyeFNsMWo3ZjU4TlR1OW9Nd1R0SnhscytMVmJuWnZuNTYveVViWlZOblBKRk1wVFBaWEw1UUxKVXIxZS9hK1VQTkhCa0VkT1lnd0ppK2c0azhRSGpoZk5KM1lUR2U2d2dvY1Zrck0veUozdUx6QnFTSE81ZEZtRnpLTXA5eXA4M3hKNkdRZkVHWW9SbEw4N0sxZm1MTzZUSUh6aWhGRnN3ZWNxck1ZWE12QXY3WW9wV3NCY0lDQnc1UEprQVNmTG01U3Z3L1ZuUW9KbGY2WFBJWFJLTlRGZVZzS2ZsQzhBa1FGTE9iOUc4Qm9Zb21ZYXM0bHhvR0JNUS9LMXZtZENSSy9BTWJ5OEo4cFcxaW1kZjViMHJ3Y2h0c1pJVnd5czJzWUpxNVRzK0dqNCtLcy9MZno1OU91SHZ2K1BUQ254OGdRYXliOVI4ekJZQWdpTnBhNnJaMFpGTjM1aU1NbVI1Mmhpc0tLZ3NjdmgvdzIzdUg1WFZMUWlrOTVGcUtqUkdUdEdYTnZHMWtDVHdlTVlKMHNYME1BaEp6K2U2SElWTE9WVXZIa1paTy8rMGhoRXJVa2lVZDF1SGdRa1pKbHhqdllLR1RnQU9iWVNPUWh6amMrZUUzTS9hVFdOUjB1dzJqdE1mMnc0QWMyaHgyd2cyNTJKayt6eHR6dUhlcHp1aURlN3dlYzgvWXJHdjlYYXFqK21SN3NsN3piYTNOMmRQMVJhOXJ2amNpSmdlbktMdzdURUNKVDZMTEV4UFJNZWRZQ1BRU1NybUlRaXU4QnpYUUlaaVMyYTNTaVJUVTF3N1poTXdobzhQRmovdS9KeXcvdDBUQWhJQnlJUkl6WnZSZkpEQjN5dG5xeHQvTFk5VzUzaVJ4NG9OV1MwU2NYRE1KbHZFa2VQd3pteG5oaEVjb1REUzVkSG1tbWFmRXFvc1kxc0pLZnZnMlJ0QmdNZlg3TFdsY0xpYkdmMUFxSkVZczBNOEF5d3ZkdjBVb3QvNVppNGYxNjF6U1RTT0pOcXhmNTlMdVlmZko4dTVHOTQrV1JNQlgvNkp5eEJCSFlaYlpyeTFHQkYrenN6SEg4Z3NKRTFPMm1KRHBlRis3em9QZEdDZC9qSVBIajloSWkzMnlNcXhVWm5kUGJyMktEalpkMTZzL3hTZytVMHo1Y2lpdUVvYjZYN1grNExxZndKRDVxWFcvTC9ZWTdHbVh2Q1o5eUVyTEFCcFV0WFFGNFBTOXVONGo5QU5VUDUzRXRSZXFHQ3ovRG5DK0J0TXY0UnQ5TlRFSmdNSC92MEwyZjdRZStNdE1BMXdHUUcrM0RUQURCV0FBQTB4QkFGRGZJaUVBcHFEcUR1QnV4ZWo0QVFZNXV1OS9IdC8vRGZZdmFmM2lsODBIVWY1N0ZjZUx3QndZbHM5am9uNEpjL2RmdE1EZmJLRFBxMUMvc1ZQcUZtb1o2aXNtRHBPS1FXRndHQktHaFJGamxKZ2QyRWhzTkRZRkM4TGlzQ1FzSFp1T25ZSUQ0RWJqRW5ESk9DQU9oa1BoNkRnTnJnaFhnanRMSFBwODVuTVEvb2YwYm4rL3c1b2RNYWsrUkFBTXdsR1pFQ1ZrZlNyVGtITnBUVmQ2OHlsRGRTcjNPdFZMdmRxSGZUOGdPMml2MU5VQysza2tYbFo0emZZZGdqS2hray8yS2QrVmZ2QXhjUHJIRE1JWlBXUENqQmxUcWEzeXl0c3NtdXhnNUhUaS9DN0NZdVl2NXY5ZEZkMmRFYm02T05saGpmazZURGZORkZlbjNmai83YVVYN210MWhNdldwK0hSS0hmKytjMGlqNTZPRmhnSVVHcFBPcEd5OGQ5VU1GOEY1ZWZNa0tvc2tYT2lqZFpiWXRCQ2ZhYlJaZ3RyV00xS2xyR1ltZFRpd242Zm50NEl5ZTNIYTJkZk9mTjArS25ocWU1cDg1TVdBWHhEcDFqd213dmNYeVB3alZUVU0wTzlHanNZdkxMNXpBVDI2NWNWRVpmTjMvemhPSnk1Y08yWC82T1BNTUpJbzR3V09VekVyMjIyUC96cEw5Q2RDbmJnSzIydzFXNzc3TFhmUVFjY1VxVkdkZGUzYVlONnkxSEhMU2MwMlZzc3pJRTUzOHp4VDgya0xUVHYwVHZENUpYUnlOOC90TGJQWTJhdGFTZE5NSGUxYTFoOURjampwaWpNWnpyTmxzZzFiVWNUNFJPcmt5aExMcFNqeE4rMnhFem1uckVDdVFMQ0pjYkplY3I1Qkw5dUJPSUYzbU95Vmx0Zy9tWnYzaFpaWnBXbFZsdlJYOU0xdlhWZ25yR3hyLzcrc01PWDZOS2dJRFdwVFowRmFVeDlxbGhLVXU1UGhZQlJkeHpvYmNiVjVoRjhLYkE5eFdCTVg0bGxWVVAwb3NJZkJ0NWhYeWhFRG1CZlJyUkRvV0N1RUNrV0NwbERMWjViVHlsaGNEUGMrbGMzbzRibjZTcVp1MXRuQzl6YzloVUlDbnExc3lzSlpXMzJIMk51ek0xQ29XSVlJeWdGTXhMZXdjYTNkYS84TThiUThwNVpSYzhiMDRUa2FPUEwyb1o5UkxEeTJIaUVIdk1oczhKTlIya05qWjlYQXk5bWVPaHA3MkJHc00vc2pHdjdndHFkZW1oT1VJNjI0MzAzbTgwT0tlZCtYRi9CcmUxVm9rVjdybFVkUGY2My9XaFFYd3R2d3VHVGJQYVJUYUVZNUwwWldlTWpjZ0VhQU5rTEFmUzhDanFIZ2ozL0RYREtINHg4QTZEM1F6ajJGNkFBQUFvRUlhRkJRdGhzL0QwaXNDSEI3aUJJOGpxS0dQRXVMY0ZuR005Q1VPQW93TEVVRGVVRjBoc3B5TU1JYVEwRjRYYkg4N2tJWjU0SU5XUnlrTURGa2N2SkVXakIwNW9CY2ZTQVFadnJUcnU2K1RTVS93OEJITk96a1NIamV3UDgyb2FEQzBLaHdLZXV0dHBjaGtKNnZlVHhOazhRZXpGZUF1RW1QWTJBaE1UY0dRb3E3Y0trSVQxT29OWmlTaEM0akxDbFJPTkpDU1ZNUFlNSFVUSytEcEpqTWFFZW1xVXd6MG5TQzVhN0lBckorVlVnZ2QwcnZQb3hlZE5XSGd0d1FiaTFUTUVCcVhlMnpPS1lvMGg3R1ZCUWkvNFdjcFNFOGRBaUJWZEYreWs2WDJEYUVXVFZjM1lndzlMR09TUWE4MGhzeFBiMndzUmlZaUtNMXV5Mk00UFlYcERIbDVQNDE4LzVodkMzR1NTSklWTjlMVW9YeFVpeXBUalVtT2VsWk1GOVJBSVRucTFvTEM2UkNLSG12NzV2cXNyZGx3NlhYdVdpT2lwSkNDQlg2cSttYUowN2VjL3FRcWd2STFWcjMycjBuNXJCUk5yS3dBaHdyanRkTzNYemVOVWUzTlBqdHFoMjJtbC9TOWxFdHRXRzl3ekt2SnkwQTc1VFVuVzk4MlZad2taVmFDVEdOK1RJVlpSbDZTQ1FFUTU0dTlJVU1FaFFWcGlHQjBiODBzU1pDbHI0SFNNZ200YjVQd0tEQkdYclJuQnlISEF1S1FOcDBmalB6alVVRXBSTGsrYzZzSGFmLytSbVRFamk0OTM4ZTEyc2M4R1JMb05pSlpNdE9tMy9UeERUYklxdzVEQVgzOVFuckRqSktpZXUzSXQ1TDUyaWFXWWxWd2VwWm5CekVOeWc4UFNSbzdoWkxuSlZ1WVNyaGd1dnlndXVDa292eE4wVkNLTk9rOElxRkdKQmQxeDc4ZkFvZ1FmcldsUWdzV0ErVlJaWklEZ0xCeFZZOUhMd2orcWlSOEs2dUNUNUZEZDhLamY1LzdFT00ydGFqY3ozYnhseXpnTXlocERERUpnREJ3aXl1TGRQb2tTeDBvb2xLend3a1ppZmo2cGVIdnRxYlpBZ2dzQUNsdUZVOGlCSXBzQ0lnUGFZb1hXUWtKV3lmdFpCMDZDZ0tHU0R4Zlk5dHZXdUxBdFczRGQ0aVZVRlRXMkRzWU56UEwzV0tmYWtkNHJ2TFo0Tkg0c2ZWdnUxZnY4STZoeDhQNW9mOUFWYnZZMXFCcDQ0ZmRvSW9BTWN2Z0dmdmtJTHl1dW5QQ3hKZCt4c1VoeDJOSVZ0aGtZTW16N25MdWhlM0ZrdTVtRFZEUUpqNDJxTDJqNk5hcnVIWmxYbjl5Vmg1L1h6cXRvZHhOZStxMDVYMC9IZThlNWM3T0R0VEc0bHpqZVY0WitDdG5QbkEzWWRqV20xcUZPOWYycGJjU1Racy81UytGUGVhSmhvQ3A1cm9JUVNGYnNHL0NiS3VZWUVQT0lSVDNqQzVJVjh3SFVINEI3M2VNSVRKcU4xMWpGMTVzU3NaWXAzTklNUVZ3WGhpRVk4b1FsekJpRVNrZ29wWFhxL3A3ZGdmVUNNcHRHRE53dVBpcmtreWVER2dSblBUamxkZ01lbDlCaFR6ai9FUjFxMHVMNkxxbUcxeHZWUG9DeUJXYjlhcXJtZm82azNtZTUzS0l5clhXNWp2UDg2WjVWQS82a1NlN2h0QkRFV3RpeUcvajl2NzhaNEs3TXBUak5QenU2NEkrNUw2ZjFuWkhoM09MS1hWU2NMNlYvbDEzclZIQytxbXQ5eXAydTNQek1UTklVYXMwYlN0dlNlQjV6dDNpaSsyVjB0cVVmS204bDN4ZTMyRmF1cy9JbEM0aU9pbnQ2dU1seUk5SzR6eitHTXMvdzUrZ0hlaVNoT0pIYTdpa2NvY2VkSW1RR2hnUmhPVEpXRHh2QXJJb0srTjIrTGJOZ2E1YytHYnBGK2RIeVBvL29RQm56b2VRaWtnSElMOFArK29RZmZOSDZDdkdVaCsva3F0cWpsbm8rU1poTmxpRnBjK3VON0JBTUI1OXJENFNXNFVWd3JhNk9SUXlpdFFZRmJvZFNFc2w4SWJyMHBXTXBGbHhOTWNJcGYvT3FJNGdCeEdneVdTWUNGbmxGamVoZjVhUitLS2dBRXhVdmdkN1c0VzA1ZGszZ3IxZ3lVb3orOWR3OGNmSG5scnh4Z0ZrTVhPTUV1Nm5MazhSV3ZXcmlCM0FLY1loSmliZXhsa3o0cnRqUjlBL3U0Z29va0RaYm9HN3poMFJkNklpODdienZINFk1eE1sWWRqOHJlOW1kR29iZDh6V0NmVjRDZTZ4S3dRK2tJUDRDMGZsZWxJcXg1VzdsYUljYTlJODJnVVBZOTh0Um84M2VyanpqckRBc1ZRaUF3V0ZnTW5PUkF4WU1ZWGJhbEtZZXdMVlc0RWxuV0pvU2UzU3NLWUJlZC9YU3VEWU0wNllJaUhTYjFtSXRyazJKOXo4TUZHL1lzbGtVM2lhclFOS2UxOGtuanJHLy9HMWl2MkZ1eUdkU0FFNmNOa01oQXkyYmNPc1NzZG4wVWIvOEFLUmUwOTVnTDBXaElHZXV0R1Z0YjdhRlhlbHZlUndWQnIveW5GbXNrOEg4OEhpKzlnYnUwMTdEMGZPQzhPNFV5WmxWc2JBU3dYWUgrTkFNLzJFcVc1TEtCMXc1Nmlqc3MxN0M2WjRtc2R6R2M0ZDZuNStKejB3WUY0SndZekFuT0Jvb2FibWlWeldHZmZlWWo0YTlWcXNESmRLZExZNXhQMHloUDBTaG5EbldLak9YZ1NqQzAxSzhFQWhlWnVtTFBZaDdlNTVMVmcvUzJYR3ZCWmJTRzkyWVRmUnhRZFlXUUcxTW92S3BXWDVjN2tWdjRHVjRoelpueTRvb0VSRytiUmZtSzZEa1dVRzJ0SmNMVkFWd0RxY3ZCRFVFcGs3Q3hVMm5HeFFTUXBYMGp1MlFQZHZUQ3RiTFRmUDNIeDkvZHVVbGZaUXV1VHNRaUxKQ3pxc2pnWVhLSzRvZ3hDYkM5ZFhaM2EycHgrenpCODRNVWptVVNxRkJxQ09NQWRXUEZyUi9VYWxvUzJGa1JMNFgweGpHQjRGOFlxRVZ5eVFyQ0lqVFJScWlXdmtUQ1RuODQvOTBsQWM3T0taaUVlNkkwM1FKNHlnRnZJMzBzMXNjRWl1U2YzZUpnQjQ1dGxmdExrSUpaZU1yZG16YiszeVVNLzU1dTN4U0VNNVlPSGFtUnV1K1BqREllYlJVaWNKM1FIUjlBVU9Ga1NEU1RFQUhaL2Fkd0dnS2x4VEMzNGxFbGhaZkdPTklHZkNvSzRZUWtYbnAzbjFJMHltWE05UXcxSVl4STVpYTFrUWdzaDFCS1VodU1GV3FMUWVIRU9qQ2VlR3lESm1ldmdSVEJtWHU2REZDbjNCVG1SQWgrem9LandSa3JscGJDY0J3aGtrQ3V3U1FydHpCN0hteDU3cTM4MkFITDhjdDZ5bXZMRDFSc1k2RThGdWl1bGJmb2NIZndoNHFYLzk4dXRoaEhKdkdqMVVNRUNNRXl3VFA5c1Y3UTUxTmJrSmdZbG44d3FwdmRiMkZ4UC9aSTdocEFFUXRoSmJjSjJBRmdXQkJoWEgrZHNCc3RqT1lZMnFVMkVGZVBVSFhtMzFRRHlWSlBZTkVTWElrdzdkekZHb2dEUGpuNWNlQ3Z5S2dzYzdEOTR4NnMycjdkV0s0eHozNDRwRExOQVpjUkNSbHhubGluMEJMbWF4ZzZPUjVGcHRvRHZmbkx3RVVJWWJHeVJWV25hMkNSMjE4TWU4QTVoSHFNMjRIV0hFdk5pR1YrYzlucnAyVUcxT2tQYlFWbzBDTVlJWE1wS21xRFhoVVN0V0toNDJqcUw1RTA0NDdDZWY5T1JDR1ZSTHo0Unp5Y2FpREZ0NTBWNDBRYldJMThiclc1MUExMDgvdmRSb3Y2b2t1bDZDbUt1UUFyUDZ6UlZMNXZFeE5tMVZvTkduVGxhWXJtTldVR0NGMkVQMmNpcjYzWlhlSDdFRWJ5MldLejR5eGlzZjZUSnUyeU5TbkVDN3E2OEhSRG5NK0U3cHpiTHNsV2JOeGp0M3g3Zkxzb1dPNDB2R25pTUhwMXdtYmZNcUZEQ2JLcEpIMmF5bnp1RDFzaGhQS3A4ZXpOVm9HRjlrK1ozbDNxQzg4ZVpZbTlWbE9KYWZZN3FPdnZJaVRGanBGM2pPYVkzY1p1eDZ4UHVGMEdtY1dlTkhzMUlXeDB4enRtVDlBclpablJsRjZtTm9SQXBVMHdDeEFtVEV1ejBuV0VHT2ttSmgrUDk1Vk8xTzRtYm5lRjE3Um0ydHNQSC9Bb0drZDIxMkZHMDJkcm01NVQ1UnFnS24xbXE4NEpxR3F5clRBRDViTTdQNXljUWdtWjA3ellPRDNxN3E0RlV4aDNqSWNORXBibkNFMDM0ckdVbk15UjJ1YnJBOEZEd0duVUx6czVaZkV2SEFTTDJXQmFCcTdSQmwzbTc5WWROa3ZhTDVSb3ZhQWJVd3c3eDBvZGkxNFdFRUlaaG9vQ3VuRXpWczQ0aEhIckVvTWg4R2lRc1dTZGhaTElYUmF2YmxUUVp0OHBZNkVRWkZlZG5rQmVndW8wV3NUc1ZtMXg5U0pzTHpwTHlXNFBORVl0bVF6elgxRXk1RnJiSXI2eEJuU0RUVzE0bDh2cTQyaUxGbFlHRjB4M04ySUNSRE5QWVFTSEVFSzNBSGErMUZSZXZKTll0R0NQL3Z0RmI1Q0c5QmNsd2xXcGI5MktSNmgvNjBSQ3lsNTR4RGJBQURONmFISm5acDljL2VPTVhyUVc3blFlMS94citSZEdPZDZwdUhLN0lsbFhwVGZ1d3RzQlViMFVkSlBsK005TkhYdi91bGx6WkRGdFR4U01sZHllMis0WWVsdGxmQzYyMjFRTVB0K3VnNU04VnUvN1kxY0Z3eWVFaVEyVDBJbkpFcXM3NWVFbE55MWNNMXdyMFNOU2o2djV3ZDZpMGVobG56Q0hhTFZNQzZyUnFKOUZoWEd4UnBteG5WdzZSS1AvdUVMOVduL3o4MjZoS0plRFVrbVI4UFYyUEp3NENza1Q2NmNua1Q4U2k2SXZraC9wNGNXR0cveWVGamtjSkxDRXFuU0Y4RW5JSG5QL091d1p5UzMza1NkaTBPek9jd1ZPaUt3WnVma1dlQ0JKT3FBdTQ1NDdyczB4cTA4NGUvTHVKNUE5RG1vV3hmVXYzYVBaTEhVWCtsSnZXMS8vNGdGS3p0RmUzTzdWdDJKUWNVdkNpZU1kT3VtMlRVY1JPVjhHVTJ3dkV6bzd1R21DQSt1ekZaWlFPYlZJKzVzSnBXdHZlVDRySnFXUEtuNkhnbm9mbjM4V0liZCtVS1E1T1VpUThTN01RNWY1bTNaWVd1WjdTMGRQbVFjakdRVWl6NWpVNVh6V2RlMjluNXhYWHR2RGpsV2g2dXVONFJNOHlwNE9weXk2Rm4yTitRazdEK1B4bEZiTy9HVWxhdmFCMDZLTGJMWU5mY0FkbVNrSlBKR3BnbkJDcGpCSlQyd2JRL0ZlTEs0cXZPYkMvSThlZ2NOZzRQMm16M2dTNXNUdVZrbTNzOUc1dy9DU0VnVHRpSXE3dWFxeVg2S1JWeWxISjVVaVdZTTZPTVNuUkRSeFgzdzF5blZ0M3VYTzJpRERIZVowemV4b045KzlsdmwwTXVQalV1UzdaYk50OXN1OENqbTZVeU9sR2ZEc3NHMmF5Z29ldUpCV0pKUUs3RURTMTc0TWd4RUo5c2IrQmtJTnRjL2V4YXhrZHJNR05ENTJuTzJUOWMzNXRWK3RONGExRDA5dHp5WG5FMjNERDlsWXQ3Tjl1OUhTWHZ5REV5cnRQdnVXV21nQjhjaHAzOWFkSSswMkdJd2tEZ2gwSnBHY0NVYkUzQko4eHplRjM4RUtDV3pVTGFsQjdIVVh3emRKd1Z0K1VndDIrNVRQNE1TZzdwZldxYW1sTjNzZjIwdHFvRlZBcTBCSlNUV1ZVRE5memwwdEZGZ0hrQUhzb25WeWE5Z0ZSRUdEWWFqUk41Q2lWZUFzb1Rkank3Tkk4cUNWdlc5VHQyYzhKbWhsTVV1MThPU2JGZHoydkFhaU9VL1o2dE5vSzRVbDBUckVSaFJhaG1VWjZ3UUFpY0pwZ3ZlTTdqWk85dUJmNlplakxRT3RrOG1ZeWQ5S2loOHFPS2JNeVZSQTZ1d0FXOTVCWUVXcDhGbmF4N2ZVVnkrOHo1dDEwbHpKMU5aSDJzY2JoUkprL3pYQUxYVDQvWTVRcmtlMWZFeXBnUDFsK09BTlV2WHZIam92MU0rUG9oOXJtL1hNRHlYc0x3V3YzUkxXNkw1M1pXZmdIbXZBL05CNHIzRnltWE9rSWVCYm1sMG8zNTBPRUw2RkI5d2VaTjRFR2N6MFBKUy9yRE1YMStMTkp1eHVEUGt0NC9vZUZFSUtRa1VUcG5JcUtQTTNKSXFPZVk4MWRPQWNFZ2hhZHNHZ3ArenczNG9tTTFvaDgwTDdkbzZtdHhneWJsTmx6c3RlTyswaXcyOHljcDhvY1k4b0hFUnVaM25GU3p0em1RenpuTEJsZmlxQ3o1YTBUR1Z2RnRXSTB0VnJiL1VIcnVTNzR6aWNNSUNpK0xNNCtVaDV0OEh1anR1am1CM2JPR056UTRpaFNtMGZmTG1tTDBQa2tReXFaZEV6VHdvYm9SbXlNK05TaDBqSWs3M2I4eE44blZLcE1WTFhwM3dMRHJHWDVmV2tjT3k3aVZudDFwdWIwcm9vSkVPUVlEa3BPcGxQSkFTMURFSU1BS3RMR21kRVVzTFIvOS9SeVBKdWM4T3NzUU5XOXl0Y0NTRkhhenMxYmFUWGx3anAvdkhrSWVzV1R3QXBBYkF4VjM2anlJZmp4S08wQktZTnI5TjM3dU5nYTlubjRSRkFRWXNINzVMVnRMT3g1bUg4UTFIU3pXdUVqallXMjdQdWRHZTlqZjFKSEVqRDNFRnAvV0dRRFYrZ290dHgzUFgwZnFmd2pGditGVkR1dkNxNWhDdjNoWGRiZUIyVGcxYzNleWFXYWpUbzducmFsb3hYc0FSTmFnUUJPZjU3bE1jTG1oQmJWRnYwMlRRVGV5UFpWa2tHcEZqbFlGRVg2MTlWK2ZMOGZram1UTG5HdzhYYjBtaVFyU1lLUC9iYU9MUUlDYW53NFpoVmh1R0YyNklaL1pUK3lrNXRvYlJyNzdObmQwdU56U2M4djBTQ3FKanR3NHpHaGNucmpIRSthamVYTXZrYkxrWE1Kdk1GSjJ3UmxwQmliSWVtcTV4V1NzWDBZQS9Nbmg4SkxLNEgwNWpVaU1wL1B4T05kdFVoV01ERWJmTmZmVHRLeHpJOGw5VnlaU3JSTUR1Qk5lQlR0dHZWUXFHMFBMenJpaGtUR3NxNUp1V1UrQTNqUlYwbVVaQ1d3WHh4TXgwTzBKQkZ0WmU5SkVRNmE5bVppYkdZMTRSS05OUEVNNG1oOUFpWGJwOU9OMTFhc3J6cm9LeDZaZnJXRlZNMGczR2NhSVVTSEIzdGlFcGpabXdaMjdnMTVXNktlZnpmR2JGUmdxOXFpR0traUxKMFlBcURYUEFFbjZhT1UwK1JMSkUzamxIbE96VVlsUmd1dGFXekxEMm0rSExoMDJmNmZLSm15d2ZQRVpsRVBxSmlTaTVEekN0SkVyak5aakdMenZmUW9TaEc1MHkvVFR1Mm9IMnFqajZhdVNsaG16UWNxNjBlYWRoazVjbENvZ1pPU05McmJzV1ZVZkJGTVRPakRGdXg0M01tVEFUQWVwVHQyeW5lVEZnaWlWTmExNkxiWTNyUHZGbnQ3MXpkQWJCRFNUV3NHOE1qS3hiWm9kRmpRWm5kWFpSVDQrNjhGcG51NE1tSFY0MkRrWVFvT1NXZGZDSFJVVE9ZZDZOZGhCRm0vcXdhZFJHdTIwam96U2VicFZxd0tDZUhiWC9QdHg4ZUpFY01Yb0dMUDhteHdDeFl5UVhQYTFmVFVPZm02THB6TG9tS3hLem83Um0wQlBkSXpiMURENXF6bzUwVFcvbXkzanR0MWVLbUlJMlVmN1FlczZFdURJdHlsODVEOVJ5ekkyUjdzdUxkUlNCZEl2eVBWa1pWVVdMNzdWWWNQeFU0MzBLYXFKUU5UVDVtRFlpcDJ6VUVTSVNNZEJYbVNXQ1RPb2k5YWdnd2FMQ2VaK2p0cWRoa1NzQTNTdTY5SlZEazIrWVBTaklDUGVoRW9kcXZiRzBRbG1tUDU0d2NURWd5aElmQkxGajczSlRYbW82dGJLc2NoS1BqaDdSamZpM1VoRThWcHdqcHp2dVlsOVdRTzBBS2hBaDd3VTJxdVZRZFJFZjNYRWkrSkpqb1ZmNTBKSkhYYXY3ZW1NdFA0Vm54KzRtUURxV1l1b0VCQjRVdGpYKzd6Ty8yNHdLM3krRHR4TVNjQS83eFhQb2Z5NjNTcjR3d3pkV25ndE5EQW1LcTZ4dTlhWGVzRit2ZjdjYkhTNDUrc0FRQnBUWHAzeHJ1bm0xeWgvcmI2OTY0VXFFeVpXUE5jZjZ1NnpNYU1yWEovYlJsZjBvM01LalREc21tMTlCT1ROTWhiMTlEdDlMT0RwNGk1c3ZJY1pLS3luZVFEY285WWVHMHB5ZklrUVRETU9HbFY2VFNtSE1xRmVpM2VqWjV1VWpTVlBVODA2TDVtYU5FSTgzbmlkaXQvMldwY0JJczlWNC8yZ2RmTFFUT3Jwa2x6bnd6OXBKbVJqeE9tVGRZTkFMdksrRisrMk9xN2MzcjlWMkZ3a2RzS3NsOXJkV0wyUnZ2WE1hSFZOQWdNS3lEOVppU1liZmlmQUtpV0Z0ek54aEpSdEV2VjJhQjBGUDk2ZnpmdlhWM245alR3WCt3aHk0ZHpTZEJzL3E2MEhiSURHMlBUOWVWMFlKaXNzVExxY3ZOV1MvVU9SZFB0cXZWcGRNYUVVRHZpb3JDb0JVQWpJV0JTUHgxeXBjRmRsNUZiNnVXUHVTbUNaWUszTkZKTHpUYW5XUi91MXF5c21rWUV2OFo3b09HeXoyQjErVHRtTlVGR0kvZzBlRCtpYjJkbTVLNEQ0UzdHY2g3cWQwcWc3V1N5aFpYbm5xUVB4N3JESWhMRnFtRXdWSnhVVTNia2lBTWU0SnJXSjMvZnVkZWVWUDJjK2dwQmQ2Y2hReVNSRmhnYStFSHdzcHJpdG5lMDQxcnA3U09JWFRMZ1dsYjIwaEVNcHo5NjN4SHRmcUE0d1A2WW56RFREcFdBVktSQ2xuRzdoZkl2VHQ2dlphMHVJQTh0OEpkdlhzdkJuWWtrTkZRWk9zcEMyMDhkcUs1dk5RRkpHbCtnait5MkVtOElJbjRqTHFVTFAySVhwczVPVTlsMkVYdVlMWkkvSDhZcGxCQ3pkM3JCZGVVNGxSVVNZaGVpRUNLZEZrZkdiLzhsNlh1TWxQOXNDMUlnV1NiWjVUWFFsR3FNQ2lKTjY0eUdHcllZTVo2Y3BDbTJNWFFIMUlmVHBrTGVVWTJEVUIwWkZuV3dCaEZydmszN2dKOXgreXhDaTJVVmx0Ui91QysxYTZ2Ni9wODRiM2Y0Q1pra29Cb0UvOU5LZGtjdHNiNlBVd3ZzMjRjNlRuNTM0bGxHYkVINUI1c0NuNXdNZzFxWDQxQWQxSjJLandhLzNaM2VZQ3dEbm1Hdy9uOGlkR2lhYmNPRE5EWUdGZ0NObGxBd3ZtM1FPekorZXhrMkhuMXpCVGVJeFYrTm10V3BDeDZZQWttTVdkSVpHTFdwcGNzNkJpTW9SVzNnOFlrbUEweUovVkQ2OUVhYUs1K3FsODY0RmxxTEk3dHRtdk5TK3MwK3VHdXk0dm90dVJrUElrMWhJWm1ZeWZkTkJJY0hwcWtyWkV4Rm1oMGpwa0Q2dmYxdk1yK2R6MnlLRnhtSVFwd21sVkhQK2ZFU2FUTUNqWStrY1oydnRXT0h6VFYyS1JlaVRBdW5XZUxOc0lnMFd1RkU1ZnEwZFpXZjM0MUkrc1pHbEFFeHB3a3BYNkNoZUxlZHZpc2RyQVVuSHRheHdUQjNTWk5XbkpMYU1VdTVmdUQ1TjdVSHVseFFZam1RUjNCZlV5V1hBRXVNR24yS1ZLbEpmQ0FyQmcrTTdlMk1pZ01OYTFueTcwV2djUkFzbXVVSG1sVzltb2FlejkrTWR1b2kva3lmamR0aE5oOENScEk1aVJuYVVzdFJJamlkNnE2RFZLYVZyLzdxUHBMdHlvUStROHFKclg0TjdUSUxQekJmZlJIV2hybFQ1RVpuL3NGcDV0eUhpSDA2ZG1yZ3FZUlFrRndJaStTZDRyaTYwamREeWFhdkpTbWhPYzRiaWZhTVlvQzkzQmdQM1diOThWYWpNSVpIZ1N5NXU5dUF5dE5DSXNXbTJkTStpbGlsL0ptQVpPVnk0dE55M0x1Rlc1OWVSNk5uYnBqeEV2WGwzNzlra3haQ3ZZazd4Rm1Ra1N3eDg0bWp5a2xmaGE1OTZxSWwyNUtTRVh5RVRvb25nYVB0SEpQNUNpd1Q0NU1WV282dzFUQXVHQkhsR3JoNmJ6Q3FPVXdVYWsxNm1Gb0VJSVR5MTNWZGtPbExmS3I1NU1XalI0aHk4NDZrVm91R2o2ZWoxQ2t4b1RDU3hXbkVLd3FsZDN1dUx1NktQS2dQeXJkaWRhb1N0ZXVrYUxTbm51N3prRlVaOG1vZE9DdU1wV2kzSTFWbzBOZkdCS2RYb3ZYcGlKR0pSK2UxRGw3ako4T3JQbTBveGdKT0ovSFF6aEp3cUZjOUJnZDNoMVh4WUNxUlNra1N6UUdFYUttb2hBbTMzeGprQmRnR01RZ01udDl6c1VnQ1JTV01QRXZTNVVJU1A0cjMwRlY1TzFraGFRc1Ntb29KS0gxeHRLNFpuZzh6V1EwRFpUSHhTQXo4NnBWcUk0UDFvdzlWZ0h4WmZKbktqVU9JRnVWK2c0Y2ErTmJLRUpOa2h0TGoxSm14WUZScm51TUJ6Nnh6WGlDbnIyYmQ3R2I2SFRZZEUySERDSnVyaUhxbEhFWUdFanNoYmVqdkQ1SGQ0TDFrK3BxZzdlTjdBOUkrMFN2RUd3SFZ5Q2NMaisrVnRuUTY3K1dmM0ZhZ0RUdGoycXJDV2xiSHA1UzBFcHI0eU9aOGtxdEY1RnVWazJSWitNVnBlTTU1SGE2bjRUMXdibmE3UzNiTHJBRkp3czBDaE9DNHlKS1RhZnpPN0Z3anVHWGppdU1NZEZiUnpBcytrM1Nxby9yUUc4UkpjenNqbkxYL015WTRYRThuUXJWMVQ4UXFnU0REVVJobXVMN2RqTVZxbXROOEV5elJyOGlvb1RzQ1B1VHkyMkUwZUF2cnRrMFFHcW1xbGxoZy9tTXljWUZsWG5JRTh5YWlsczJpUERDck9IWitNbms2YWFhR29rUFlhUit5SEF4d1hXS3gzdUt0cTVEZGlTTXZSWVpSUHBqNjVKL3kzUWFJeExIb2VaZHhaK28wWjJGelBOU2pjcHhzZS96YkRrQ3ZTcTdIVGdNbXFGYlp2WldmRmF4Ujg5RlRXdzBjTW43Wk1EQlRQb0hkTEdCRktmcTZuVlF4cmhxQkk5Q29QVlBDZnhyaDlFRTVkVlMrRHJ5SC96WFhxUmoxVGR5Ym94di81L2Y2WFhNUFBEbjJwcGR2UlJZT1hPYW5uUHFkS25EZFhJdmZveHhMMW5TajV5WEpHMGtmcXNhRk5velUrNnQ4UC83NHlnUFY3dDNOcnE1R25VOS9YQjhHL2ZqQWZQbmw3U0wzVGVxT1BSMmF0eitnbEdlaHFQMitmenQrd0V3Y2U1T2hsTHlCSEVQcGVIVmxjTWNwWUNVcDN0c29VYzFSSjRucGVVS3J4c2FaQzFITFdkbnZSaGpyVzNacXNLYXpkcWpDOTltU2hDS0RWT2xUc3Npby9sRURaWTFYWFZXMzBVYkFwVFgyUFIvaGJpaVJURmdXN1hCWUk2VUhUdzlMcnBDaFE0eWRPbTJWR2VoMi9aNWxNQWZJME15OEM2OXF6c1lld2EwdHkwaGt3US93Zy9nckM2Z1V5TXRVS0lPWkxuWVJaR1UyTzFoQzNPTmVqZjlEWFBLSDZwbFNEOFIxdDJQSW51R2Fhb0FiM0NpV3ZKeVAzV3Z5UUlONC94YVYzZk0zMUpiKzlYcWdpOFBHZXpib01IQmFhbVNzK0c3dUdXQ29xcWw1MFgxd1F6c2tmS3dPOUQyeHRnRXptZzZ0cHNsNlIxWVFvRVkrNWFmMnRuVGlkRTM3Y1plR3YyaUNiM0RWNU9rZm1KT0xXYnBTWDg4b1VRWFpCTDkrV1FtR01wRnl1L2VnaXM4MkRrdUlFdFdTdlNUUlpiNndCa2xRMjdwalpmMnlYRWU4bzl0UVZBMmpHc0IrMG90QlRxMG5saFUzVzVzanAxbVhtRnl6KytWMHhaR2RNUTJzWXRHeExMaHNPY2RPNXpvb2dFUFZzV1paTXR1QW53d2xNbnE4R0Qram9Sa295dXUyTDBiQnVKcHBPYlVISTh6UjNzVUFLdUdteDdRR1NURDJERHBKaE9hMVIxOWJVaC94UVJLT2ZncGtzam5LZmpqTTFWc3I0VXpJeTNxL08yeHExTzkyd2hWUExZNjNyRjcreG5ld2hnalY5K3hVZUdiM1N6WThZb09SWDdaY0ZKYmR1MTJjbi9PbFBWVHBvakRsSXcyQ2hYTUdhZTlGVk5QZFArU2FlR3kvdXYwOEVQNC9nekhwOVZObmNNeHhxcUZYbVl2R2syNEVzeTZ6UmpNeTllVWVlLytpL2MzVG5RNVNNdzBxdG5zd25STWdIWWFrRGduVWpBSWpDMGVXa2s4ZnZuQnl1TWo1V0VkeDk3T2Zac3VCZVhteVNhNHJlczJoc1J0OGZZZFpkSkNFcS9aVElhVEFyV1ExU0ZyZW5rT0RtRVZLRHp2UHl5U1ZQRTljMzZoK1dIRk85ekhRbURhVEFyZm1WaC9XbC92dWI4UFpZb29XYTBsL2NPcnRMSGY2ekU3K243MGVkdEFKaldTK2FJbFJQWXNsSit2cFh4TmJqWUgycSsyUDFMWE83d0tic2JhOVFUVVZJK2pJc2lscklFRlpFeFRGQVRxUXJzbnRmcTJaa0tSdHFoS2FJT2xSTk9YTjZzRzdmY20xYkdia2pLczRmSXhXcWxPcThRMjJlWXczUnphWGhYNXF4cmVpZ0tub3RrMlZtR3Q0a2p1Y2dCclBMVFhGdGlMMERDT3ZWL01iMm1CVUtrUFFwRVBvTmZ3NjRYUUVjWjlNcWdHc2NxSFltRDJwckhTQVBseXQ4TzhhVUlzZVRoREU4alR0RFU3R0lLS2ZlZ0ZucHBvS2t0U3EzbmxxQUlqU3lid3BDV1Q4YWFPU280OU5LK3ZDRlNFS1hmQW5zU0FGdzRUQTBqNEJ3K1lOeWtiSjYySE41R2kzTVdnYjQ1WjJWTnhjcWtmWHYyTTFYcE8wWVFTZnFMdFZncVlNSXVoU3V3VUhkaVQ3WHk0SXE5bG5NTzlrR1NpSG1xZ1hoQ1BobzV3alo3V1ZFaGlEdFFyc3hOVEpyYnF0am8zeUJER0V1bHhaYzZZc3JYY0xKdkJUaWRVOHlUUHdINXhNd25mMjBzWUkxU2FEZEk1cHdKSFFBY3cwTG04TnpHckhRcHNabnFzTlI4MkZkb0lQZENvZnZZZWdkOTNaL0NERmk5MW1DTGhGcDJnOGZPbXJYRkQza0NYY25jdlV5c1JMZFc2L3JXMmdJOFF6U1Uzd3pWQ0ZIc1dvU29HaVN4UjlUT0piZ2VLMHB2OHRMbVRqRyswYmo5TVFsMzlSUVdlN1hBZEhTdmUxZnJDVGhsdElaWSt1SlZpd0t1aHhYNGxKVW1LRG90NEFNN0ZUYnkwQ2xzYVZGNUdwU0hLMm8rcDdkcEU4NEh0ME03bDdmbjBxNFJLVGp1NFZlQ3N6YWZid01Rc0tDM2RUYjdhN0kyNW9xRkIwdFVZbkQrdHpGblBTaFBHSlcrMnNMeHNQZnU5V1pHaDREVW5acHl2OWtiOEw1alBpaWFjUXFNdldzR2pjN1ZTZ1VDbHpzSjBXcVZXRysvRXdZcVZGWmRYWEluZ3RMZXZoRDZGa25wZ0xpU2lGQVozSXBHT3B2d0I2emZyMnEvZDBndDdyeGRwSzVObkI3VTFpRi8weUYvR3ZaMVdnYlk0WmJaUFc0cThybitpY2M4QnVnYjR1T1RaTFN1aTVKVWFWQzFXeGt6RHFJbzBpQVkxVjhXcUpEZ1VPZFZxSk9hMVY0ZGVpMWV4bVJodGh4NDJUOFBWeUVjMGNGWnBzcy80bW1jbWM4MVRYdEpSckM5aG9mN0gzemlzOWEvQ3Ric2JpU2ZEMzllSTM4Tm5kZGFiS3hjSktZOTYwMU5TVWIyUFVsSWY5cUpTVTlKN0g1NmFBM1h4RnRNVW1MMlA1Smh3QVhIenVzMGRMbTlEc1ZDWGJvTStJdWpZbEYxN0YvMmVuRzVrMGQvb0ZLbEVvaXdWK2pzVjM3TXE5UHZzZWU1RnRhQjlKRHlGYXFNbG5XYk5PcEsvSk15Zk44VFBsZ2tRUHROYktGZVZkakY4cEZtZmhISG9XdFUxc1VWQmw3bE5UOXZiV1FoQ0ZGSmgyaVBhZ0d2Zm5NNHFtTDZkWXE0TzIrcHQ5V0Z6TmNIK0FhZVpwMUZhWFBldDkvOTRxWVVObldibFZ6ODY1ZUp6ODNQd1lHWityYnBSaVZHRE9hL1ZVQ0wxbHFSQUpDNkc5eGlNOEc1eE1Xa1NpV2RmM1cwMHdIc0VyRkdPT2EwTjVZd3RZVEJpUzFDT3RqUjZPZHJ4NVg4MjBNN3lOeE1EeHE2NkRQbjU5UzVSekJVZkZQeVdrY3RBWktHdndRUXFaWmMvd1VWUy9taUVNOUxNMEY4SWVqWU8rbmgxNmRNSG50VTNsNkZSTTQvc3hNSEZqRk5ReHF0L3hxTFdOR3IwYVViSVNWd3VFNFdQL24wejRLbkJtNC9qazgweXZnUE9zRS9SSTB6NXlQL3lSQmx3VEVNRGp2Z3UvVjgwS2h4eDV0MTRXK2thL3hxMU8rMVNxNjhXOENENHFPcEZEV0hVWWNFb0VOZUplb0czY2pPSStiS2NmQnpmMXBDSGtMcHdNUm91Qysxb0xjTlJ0dDNhaTZYWWdCSFJjOXMzUDlzODRqa1VuRzdHSE1GYVdIeUNVNWJ0eHZMNCtUaHBOc0hCRVJOOWZ4ekNOOFcvUXF2TFhGaXNxbHlOeGFoeUhWaHNTWm5xTWFBS1hsVkhxaWwwRHNqbU5SK0l5TmJqT0VTRGxPOUFzRmhPaEpSUE5IRHdla1A4RnNEYkxFdG1HbFk5UHcrV1JqZkFwbUxWYWVJc1IvanVja2owNjNWUVNQLy9VQWlVOW5vZUJMcjJkUXlvR01XVzQ5RW9QRWVHUWtxNWVCUUtyNUNHWmRYSWlPY0w5MDZQWlpvSVJQbFh4ZU91NFhLTHN5eTN6UFhTUHZ4dE5keUpSSlRBWVM0azBqbFpCRHJPZDFWOTJhS3lldTY4KzFOM3QrOTJmSCtXOWQ4enJtMnJKZDRTdDdIekNZM2NzZkQwT05vMzN1NFphZWY5TE5neTdLNEV1ZlVTbm5XZXhUbHBLSXdwSUNyN3RCQWFUUU51UnlzWm1BZmRiQm5yeVBjQUZMSTd2bDhoM0YzeE8zejI4ZHZ3T1ArM3ZTRDA2aDM3UWNtQm1EM0UxcDFyUlQ3bmJFRW9JT2kxbURON3lrSXpNMHpLS2VTZ1NkeHF5VUo3ZkdvVW1YWWVPYXJBL2JFYW90UVhhR2h3UzQ2R3hDQ1pld0F6OGtoSEdSVUpTZmRnSU0yS1Z3UUpwVkFyTGNGa3lhc1lCZ3UxVnFwTXF6SGwxVklWamdrOFpyaTlxWll6VU1BY3FNL2RhY1k1b3p2MFVzZkFSNTRwNlFWSndjMVVtTm9CS2N0WFZCRzVWSDB1cXdnaWZCRmNPZzJSVnVCR2lteXMzQWJrSlBSZjlOY0VpVU5vNlRxOHYyWnBsOXB2NlJVRWc4SmVxeTJqdDdob0J0OUMwTVlwNEcxaVErWUNmN293SjVpbU1oQkx4Vm1FTW1WZWtKNmRGV0QrZDh3eDhDR3FoMXpqVUhUNVBZck9HbWNQVGZraDZKd2tyY1liRmZTUVJFNFBHZVhWT09ta0NZZGNqZTViZ3orN1FqZU5EcVBqY0dqd2lNczFMSFBJOUZYczkwRnFkazRJOGVzdWsxaW15aXVoU3ppMnBEL09ycktIWFpNNzBFYmJURUVJcDJkMVJ5Zjc4RnZIUUloU1Npa2VMRmFXS2tOekRvY0dROHpLVlMwV0NxYW5iVEg2ejlEZnhBUUxYV1ZrNUZoS2JBbXl1a096QUpuQ0dTNUY5WlM1K2hwQWJXZ3dWSFBJbGVWZU14amlEMndBWEVNdkh3eVpBWCtaSkM5TUFIUFI0UEpCelJ5QUlEUTR1VVVHa0ljR3A4M2lqQWhaTTNwRHdSa0NpNlVYRTdzd05SZjE4cy9RREg2b0tLTzMwaW9tbHFvTXdiU2M3R0NhTWhtL3hnblFzN05EZEZVZXNleU5ZK0Eza1E4a1krSzFQRDVKcjJUNlFjSjZZU2c0czRKdzZjaEVER2JtdGlQNHF1bnl0Wlp1YnNESDc3S1poWjJCd202KzJkVEZEeFFLT3MyRnBqa3lDbUJnSTFoTUtGWm9DMmxaNGlLYVFrc3NGb3Z3SVlXdWtKNlZWVWhYNmdpaEc0ZERnNCs1bmxRbGc2d1RHQXNMOVdQUEt0djJpU3R0amZpalE4c3htT1ZibDJQRzcvdEptcGRMWUVER1RwcUpRcFpXeXUrSXRmRGpSQ1ZmU0RFcmVHNG9VekdKT3oxUDJtbGpzS0hJT1NzeG1HMi9EOEtnTWtRV1dzYm0wL1JLdGhPVWxsTkZIL25kR0twNTdLSzZIc3RDU2VxeWRJVUJVeXc0RVRwRVNGTDN5TEVjdGdMYms2UW1IQXFkRUdDS0ZZYXk5TVhTS1pFM0ZWWEFBVy9LUUswMHNRK3dpVnV6a1F0WXdhMjRPbEMyUFFPd1BhUHM2a0RWT01QUkxWSE5ENDBSelpOUFU0OVRKL3c3N25IZWVFOWxNV2RNLzRRQnlhQ2thVXkvblZMZGw3cllIZSthQyt4eFJmRC9YdWI3NkpQdmJkdUxqYnlvZ25KZnE4R3B4dnpMenpoVStvRDg0VnpQRC9UTmRFKzYvcVBrWXh4Mm9DSFVaeUMwY3ZqditSUTFxaFdPS1NhS3VUckVPN0NDZkJWQ1lEa2FjSkdMakZRQjRrcFNGRld3Mm9kcGljNENLZkM2VWFlYlVNRFl2YUJrdWRxWUJRMVRkdXIwbm8vK1FHU2pnNVhKZHhKekZOZ0NIZy9yeVZhNFNFS3VKKzFJeG5wczlwVHRaTUwyTlRVNFhNM3E3UVR5amluWjRjU1ZnV2NuY01SWjdRWWN6dEMrZ2tqWVRuNStQWjhrRW5yeENpbkpJOG9nZWhReUwxN0FDWkxQSGh2U2JmT21jWVV1VXJZQzYrSHhzQVU1Q2hlUkwzYXdwZ01DL284ZXZRZzlYbWxZamRmZ0ZUOWJVYmFEWWlOSUNvdFNocWJDMjRoakVxUGE0am9YbDZCWkttcTJqR2NwVFpjSVBIaVpsT2pKRUJLOE1saytnY2V6WTNlakN4NHdaOWZPOGMveEcvd2hXcko2Z3h6SnduWEhtTmZiNHVFQXRCc1VxcTF1TVQveVV0bk1iN1VKeEd6QWtud3FWK0FtWnN1d2JpNFhtNTh0ZDVFRVhDOTlCeURQYzRZSDlXZHJRblJkenFTMDgrNVpXUDJjRlVUQzRaWFZlRnpWem0wRTR2TFplZUdPbi8wQUM1dWJMa1B0UzFWUlNQN1J5STdXSG14R3JqMzN1LytqUDdocmovK3VQMkViVEFhRGNhQXdEZ3dtYjAxZHhrc0dycm1yQktiNndZU3JTY2VZY1RmV3hVZlczVWR5TEYrOXdUMnhrVDlmYnYvOTE3YzQvZFluOHJQL28xK3l0M3NwVUR0bUFZMDhBU3VQYnAzc1lNVTNPRkhJQmEydGFNemRvYk9JQ0Q4TXNhcmVpdUFwN2JuLytwdFQ0S0Q4SkVSQzVQZE5kMDc3bmY1SDIzOHdQN04wdEM3QlpxaWgrcnpOZWlVa2VaUnlIMEVnOEJFVThtZ1hwcHNWS0dSMVNobmFCZ1E0US90MkVtbDdodE1weHhmWUZNT2JYVy84UTE1ZFpJbWJkNDVrUG4xSnBIRHoyNUhnbkZNdkthQ0x3d3ZTeldxSjFIbUcvRUxCNWhkL3ZMa3BRUWoxakNuSzQ3QkFqeU9kUERBT0V2MFo5ZFhmZk5vYytEcVBrUGg1N3JNa2xOY0RYclIyTXByMlZhbElJQWhLcVRCNUJsMU9wQ1NQM3YwMUZmdm1ja3ZFNU5sWTByUGt0eml1bjd6b2U4YnM5aS8wai9pNFd6OEI4a1oxZ3hScXJXNkV4K0RwOWZXMjcxaVRoRWdBQU8wOFhyb2N1WkZwbHRISXpvMUVxbFhjd2lvOWRhZDhaak5nVm5OeGF0T2R5Z3BBZlVXbzBhUEs3eXNyN3dTYlE0Q21VSERWblhHRC85VCswZHkwdm5sOTdiWUhKNzYyZEJ6cU90UkFIRmtDbU41VS9GUjcvSVFaaTA5NDlJRnBiUVVUTTU0aWpVTjNLZ0xyWjhkbFEwMXpETEdTc0tHRlAxS0pPc3c2aHNNazdBUXJWZHlrcklVWmNRZXgrcnYvbFFQbWZiOXJJT3lQeTFpWWxjUlZLY0U3RTVqNFE5d2pxTElscjU1Ym55Znh2NkdPY0EvaG1VR0c4UktMN3ljWTduNnZCS3o5NzY0ZWUvQ2xQSkYzM2pDNFk2ekRLRjJKTFo5KzBvV0w1UkFVbXhGOGxUQUpLU0hTZC8zeXZacXFJK05RVEhyejhLZmNUMGs5Y0FjUzZZVERTaEZJbDVRMi8waU9OeWRINHRtT2VXc1k5ZjJqQy8rTG5LdElOVkdGTXFTRHcwSGFoVklUQlNqalNoODZjWjlrbWFQUzNtM2NxOXo4THNwKzJWNzhMcUFKdUNrZ08wL3RTcE94N01qL3hISkNHNWFTZUhvWjFMcDV5NnNOZVVBVmpRYlJadG5zZUtkOW53cElKZVdDQjF4T3JzTkZCMnVvdEZSRm10WEdzVmtHTkJBcUxSZXl6MnJocEVyeGJSTTBXS3htWWhzZTN6dlJXczBKdlhGZkgzdTJ5ZnR2eUp0MkVyY1NhNi9LNThpM29YbmIrc0wxdnRYU0pldjlWci9sUS9kNWw3Z3I5ODRpTXZrZ0tUWCsyK2VYNlZmT2QrQVliQ1h6dkNrTko1MmhTU1hKbW9VdnJJd3hXZ0k1VWZOZUFnSCtUM1VYL1RkN1FSK09KMUxOVzd1WVFVV1VxVklJRWo5enh2c1hQKzZRMzAxTytYc2hobUxEbDJVZ2dhKzYzMGE5d25aQ0NIQVlCd2Jsd09DRTA2Q3JQcGFuRkpreWUwdExab3BOeGhuaUc1L1pDNWZMbXlFeW1tYUtUanZUSU9jME9aM05iTG04aVEyZTNjU3ptL2ttRHQvTWVRYmpOUC9JSDEwTXc1WlY1R056alM0RlhqZDZhTUJLRm5Mc21JdFlHNWVIdDc2d296bkFnMnN5VHMzN2ZHUEUrdWZvSk0wSE5oVE5iMWFOd2tiQjh1SGdhYitMeDMzQ2tFYWUyUWJjb1lpWW1waGsvU3BMQkw1T0lUaHhZV1RIaDZaZGQvdnY5UDkyd2JXcmNkZlFsL3VOdGMyMFhEbHVpUWYzYVM1RXdmL3hnWVRFVmJGTVNjRmNRWkFReW82b1RRYnZqUWZEVHJzVVZjRkpUTHgxMklwbk1xMzRZVFF6bVhoTGduRUlkeHFXSERKU3hWTWhLUlN1NWlGVlpJcURDeEQzdTlFbkNoY2wyaWtLQ2pESXc3WXViY1VlWml4NzY3OU4rYVUzTGlVbHJ2ZVhGSktTUkZLK1VhMS9zTml5K0w3bC9nTExnZ2QzNGkzeHNqd2tYTEZoNDl0bUNBd0JnL09NMnVoeEJuVUdIT1d2UWRPM2IyMm9PenhuTGhTTytZNkhaRUZCOUc0RkNLRmhNUkJ4ZVhva1RyTDhheGNSMnpkVmd1Q2FXRUkxY0dZOUVuNGZseEsxZWxRaWZIQUIxeERxYTBoYkpTR3VOZlRxNVJIK29mYzN3RTh4azQyUlRaR21zMHdEdkFFbEo0Y21CeXIrazU5Tmg3bVF5RklZdkF5SktFMXJVd2JHamttS1doY0hnalVxendGaEUzVWlLV1dNZ25JMURvUk9qYmJONTJiN09KclBVR09lUW54OVVva2l6WkdOS1IzWGdzVzJqQ3ZGWUV1c1YxV2l3MkNMU0NRekZtTWhrUUk3UkpmNmYrdS9jN2RwVitPdU9kUzNqWVlhWDJUc2kxV1ppa3hQcnVlNGRFKzhUZXVyM2xtL2F6czd6S3RMZWJiNnpMTzU5eUtwd0IyZ0d1U1dlZTQwaUJCTzFycldETnpLMGdzakxMbUU3TW5zMnJiWTBvcUJ4TFhkSm00TTlSbDBUdnVZdmkwdjJOZjRubTdiNXRFRjljR0N1cjVxcS9zai8vQWovM3c5SHBaU0ZaVXhOaDZVSnhVTVorZENVeWFCSWJIeHdOSnFXTldLNzBXOGRNamJ2NTN5U1BvV0dqQm42d2NnZlFtTnRtVUdGQU9GSmtFaGlWQW9KcHhVNnlwd0h6OEZienM1N3Z6QUc1Zitwc0FoQ0RKYzhiODVwKzZ2YVptaWNnRlMrT2FqaG1QUWpab29kZ2ZZMHcwRG9qanNQZENCTWJrTWRDdHVZZW5CczFzSWtIYnc3RFk0cW1CaktHRzJEWG5nNXJtd2plaUhhUTF4bm9XTlFrUkdiMWRkN1EzK0Y3RE1ZbFNwVlV5QWNqcTl6SlhUbVYrZzZLeHlkZEprMzBMNUxlcGFva0ZKTGNyS0loVnBsZFZFMVpSYnI5U3YxdmFNL0NXNXluMnczd1FiUTRsck9weUlCajdkWUU3eEFFdHZNTGZwTUM0cy9lRjdWR3c2akhwVGJTY0l3S25EZ3J5eXJkdDZuZ1BiZHpTTHR4NEhsbTIvM2V2T0h2aVI4cmU4RG9zMW95ZktKek5IcUZzcG44ek96V2JYVmVhMHZJaGZ1YndaLzhqczNIeTQ1WVVkd1pPRTBsUjVoTExNbW96Y2lXTWRhRUZPY1pyYTNlQlpBbFRSMCs4RHhQMFRJbGRuTmYyRXgvMGptK0l6azM0SUhETHFjWHgyMFllZ1Z5bmVWa2d0OTlsZ0ZCSXY0UEJZNVk2QjBQd1drUThzWStHMUhNRUFmd3B3eXFiWnZwWVNMaDZaZ0VIL1YvUW92bnptTG44Y0ErVGlLWnhVS1YwTEswSXBhQmxpTXd2ZytHVWpXRVhsWVIydjhyRVp1RnpUZW55Y3htSFRrWmMvZlVTTXRjYnk1VUlCK3dxUGdycTZEUDZ0NzJvZTlvQ2JETHZlSU5kU2d4ZUxRb2dzeFlpektad0trUHdpeEdrUFd4ZTl2dmh3TGtZYmo5N1dpUDN4bGtHWUVEQVRBc0dBSWN6d1RkKzFOUDNJS2Y5QmdURnJTU2x5aFV3RUxWTWhJajU4UkNNSm9mcFkydW16bFRRWjRoSVNRT2I5NzhTMFJldGlGWi93K0xtaXpLdW85UjJ3c0NSY0M3WVBWU0Fha3hoVkhkZmNyVUl4NWRUc0o3SmdlcmFraEJOdW1wYTRJcWNzSkV0dTgzaExBdXNuRTNrMzJzRWJ1V2dpTEkxQjVKM0wrSklqeVMrY2orYkhZb0FRUnZNaEJ5TzRibklCZnhqL3FBYmNlSkU2SS9vQmlmbUV6Z1BZbWgrcmNkaFZsN2FGOEtyMk5jNTNLdkxaeFlocU1SOFp5dFlYTWVSQ0gwRWhJM3FFUXVhL2VnK0JUM3AySWFrLzE3ZWhodmQvRFkvendaaVh2Z0NhVU1YTHR0N0Q1YlVmSFllWWtyZFJYdnZpbzFJNVBIV0tvd285MERRVk1BV1NaMzdKYWdaNHdIeEcyWGNHUEJCanlyNHpaUHFmaE5vNmh2Z2Q0cC9Ic05sR3hWdmp6OTZBcVJFSU5leHZXL2p6OU9hUDgwNmlyZXdJcDhydWkybUNmVkVvdVRMRlNhVEROTVV6OWtrNUNwVjhuUy9SZ2lRZm0yckVJVzVkZnpvOWkzTHBkUVhoVDYrSDJYR2JySGtFbGZpSHAreG9IMis4QU5PNVdYc2FxUDkyN2RjNU50NGt0MUMyZmExOXhDM2Y5Y2IzeEZjYzZYREJidDVJcEg1amwyb3lMTEZYYnBJTExsSVVGSjJpdUxiVVJvcUNFdWFnL1RhNldqeEs2VlRLRlU3bFNHVkdTVCtKNnUvdEpNMTkyTnp6REJmdFA4YUtoS1hRTjcxTkJZNVprUEMzYXB0WnZST1BUeTQ1Y2htVmVpUTEvdWpXMHd1ak8vVFRuNVc2MWh2QzN5bHNZbmMrY2FUMUU1cEoxelhvTHh4dWp4VWNjSmxwb1g1MndzUGE1UnpEY2JzcmhMaTRPdFNWRmpGMmVSV09ENTNLS1QrQTU2RStuV1hMMzVXYUNLUHV6alhEVlZYYlY2QVBQb0s1cWNhSnk2c0UrUnhheEJ0elBvZmZFVEM1MDQ3NmJKSWM5NFVWbHZBSDdrTGJSUC9FREVtRzJLTUhkSGxaV3paSUZzeDhHNGRMcmZ5YlJPcHZGQVdsME9BWU5OSUszVStvMHJqY1JWc0k0aTdTWmV2ZmhiVWtUNDdoRjQ2WmJVUWJDbVlkVWcxaTQyeXBuenZlL04zWHpURXZHOTBKWWdFMzlaVjRUd2hwc2tNNEd6RmJpblVKR2kwVHRYOW1pU1VVTzhNRnJ5M1ltekdOdzVRZTRhR0RzNHFqNFlRN282czNFV2I1dWtYaE5DT2xKY1FRbk5DZ20rUzRobGU2Tklrcld2S051QzdadTNtT1k0REk2TnoxbWRXU2tSaEd6K3NiNWRpRzJ3Rkp0aEw1MDVJa3JQS2gzNUc1NnlJbDhPaDNoaE9PKzJBUlBxUFVXZTg3QmtMOXBmM1ZUMzkraGJ2VS9aTlY3SjJ3VWJMeEI4QjVobndiaFllTEJaSkhya2ZDZllEUWVLd2R3aDNyd3VoUW5GRGtwaWdvdHRKZ3lRUkpVQjRKaDFNSWc2SEJNVUloMGZUck0xc2o3dnJ2eGk0YmtRS2NNSE1Xc1l6dnZUTEJEZ3pxSWRVaFlrcEorWllROWQ0Q2JCQXB3MmxSS2hqWk90b2QrNExkaDZUYVVFOTJXQi9Sc3YrWUJidVozYUUxQ0w3L3lNY1BIdTIxSmJ3WXN2NWpESUZ4RTZuWDlGSWV5a2NOMU0wVTUvbWxaMUpnd3ZHWHh2d0pHbDY5bWltU1VjMjBtM0hQeVNNYnIwN2xPVFQxK3NHQzU1S3JtVS9uZDczTW81Zk9DZFhzZnFEVEYraDBQVDV4bU9KZFFhSFBCaWZEYmlGcDVLMDJhZmJjbUUrRW95dm5NWGdxeHY4SnpnM2VWdkxwRlQ0U0NtenkwUVpFYkw2QXIwbzVmTE81MXlMM3YzRHVUYUwxSTBWQitXcjltdDU2UldPUXJnbUo2Q0x3NlRMaWk3RG41aEIzQWUwTlE2aXZrZEhIS1F3OHN1U3RzdnBIbXNXUEJvTkpyKy9MQW5lY3NvZFc0MVIwZXZ5S3JocEhEMW1aNHBSV1k0MEtlbEF1b1FlTmltcThOQXU0OVBBenZrMFQyV284cW1ORHR2STVTSG02b21ueVVzSDkxMlVDdWNCTGtNdWRPSTlYSUpkNUNRSjV1ZkQxcTJER3RuOXdtWEYwK3RHVDYzV3hFUlk2QzltVjhnWDFzOWFVN3krUklGbG9yMDYrMzlEK1VRb1AvNDc1RTJEK2VwWThVT0M2V1l2SDl5a3lQTVM5cFFVdkl0anlDK1A4UVN5SUNKaDgwL0s1MEFJR0lZSTB6aGhqU2NkSEFKWTM0R01nNlE3aFlIUWRXdFJDQXF4N2c3TDE3OFp4elZoM0NXc0l2VUZJbXdkL2ZPOUdmajN6clI5Y2xGdTBUSUt3Y2x4eDVUaStLYWdRTGNzYjZEZW1QaEwzSmgvNDdveVVxaGhDMVYwYUpuU0VJK2EyNyt0ckVCTGtDKytJQTMrTkxhcHg2cUlOa2cxWFFsZjhVVlUrcHUvcGEyZG85OVZMNmoyVkw0UVNxK1M2bjA3ZkJOTFhpSStjZVBxT3pOcjB2MG00SVVkdVlGSVVsSTBkR1hrVVRJQ2ZQSVhwRGFzM29mRWlUd3NHYXRBZmRyV0tJL2FWcFRBUVphMHFHMmQ3anVqV3pwY1oweFMvdFJHSE81T0pYRVdJbzIrWjJlODNidTVTeFloZ3VqUVBIV3pyL3Rnd3IxQm41L1NVODJGR3VCaitIeHk4SWFEN0k3NG5qb252dEordXdYczlUaUMyTUtrUGZyMXhoUmJVMytJZTlPVml5NFVIdmVzZHZwYXc4alozcUM3RGdHRDNSTnB5OWszTGRSWFJpdGxlWTlZMWwzRlA3MHFHMytxMDJCNXVadzNyZ2dicjZrL1dWRVAxSDFmSmJkKzA3SnlTVlpPV1VpRGZNNG5xelp2SEFrOGhOdkZFNlhYYXlaQjJTMDNOTENyU05KbXNQbmNvQVh5THVaaVpVdGJVekwzK0xFY3UzZnVlM2FFM3laNE5UNU5VdkJkQ0ErSVRwbGFhVThOcmZtWVNRY0ZGcGxoZnBxbjJWWlFUU0ZNWkNLVmhidHZZSEpsMDd6cVlLYzBzT3l2Mm15OG1tVVpxRHA4YVAvZmpOTFdqd3Z4eG8zalpWdlA3Rk9LTTdpbmRYK0hFUXdvYWtaRFFWMlZPZmN1VXlLWHJMczcwWlhOby9Cdi9EL1ptcGNCQjRRUmx0SDlDU3IxOExranpHRHJiVVhmaHRyRC95QlQzRDc3NkxXSGphWVBpRkM3VUluTDJhbFNIYTVOU2tKR0NIZUF5YkZuaDBVNHVVeG9mQ3B2RXVjdUwrVXlDVnlmcUhpU3UxZ3BwVEdrdkpTU1JNdVQ1R3FtZjdUQklKY0ZDTHVWckV4a2ozYkdUZ29adFR2TDhHazM2aytpaGdURTdYME9UT0tuQWNTSloxT1JMTEhZZG5rK0tPaDJidzZJOE9ya0RleHM5clBNcEFWWGZmN3ZvQjdGSzNMdkRaVGQvN2M1bm14ZWpJaFoxcCtldFV0clg2YVN1WWgxckMwYXdUM0lVcWlwNGRweWtWaW9DV2M2aDVSYjlvZDFodGtKRi9zNUJmajJlSlliZVZKdTBWcW5VZGRNV2ZUZ0hKbE9sSEFjQmo2ZWtIZ2VDZWpVbDVWMFl3Syt4VXc4WW82K0t1aFR2WWRZTklhT1NPZUJuREZScmRqb3hOdUFNaCs2RE5mcHc5dnZIdFk0cmc2Y2RnZHM2cTY0UUxLVmpacEJhU2cwTUJsU2xxdUNTbDZpWEdjSEJvT2hIcjl4VHYxcUZ2YUZncjhCc2xsNUN1bmxQS0dBUFJHK3BSVXJ4SVliQThtU2VrT0kwbk9ZdkN3TkNXZUlmR1FIV21BVnRnN0tmWlEweEM4b2YzYTZuZjVGUHVSTkRkVzRoM3Y3Y2plVHhYVWhwQnQ0dVRJZHJ3V3JjcGxNZ3k2RDRoWUdab1VZVjhMV0NScjlwTWpWWFBZbm1NZkViTkJ4TWdVaGo0QndTLzJ4NWh0S2xIQWVCanFla25BQ0JUb0NTQndZZ0FqNzRLVDhab3E5bXFKSGVZZS9lV21id05ibG10QTMwSENaMUR6eWxXQk5sRktxS0w1SmJKZ05TWnE2WVJHU1J0R3BPQUNwKzRsL1lDWVhuVDBDanlwZFB4RGJoSnVQK2pidUNsN2d6amQxcmp3UUdWem16UlBpOHNhM0JoSEVHdWVmbW1PMzBnL1k2eDVYQlU0N0FiYjFWN3lBMHpVTE9kOGJZWnNDbk9yN3gzUU1COXA1YUEzTm16VFdkTTducExGMXZ2aDRKREFhWWgrWUF4UHhPbDZ4eVdxK3Vha1IxMFdCUlRVTWxkU0JBSGFoNm81UU9yQURjSnZjUEZrVm9JMTlxTS8vV1JrYkUrZ2ZuSGRQTUJrUUVGUTIyVE1nRVJFakNXNlI5b0FIblg4NmhOT3R1NjY5UzV3ZW5ndjB3aEp2NVRjMUFxVnBiYldDdzNEMXdXK2haMS9VQnd1VVNkWEtXRnl4b0VnV0tlbXYwZGxGV2pvT3ZyWjJlSWFWaVIxTmhzcmUyRXRTWU1hbGpTMndpVTZEdWlZUHFlQ0lyNFpxKzdBKzNhVVpONU9ZNzJJMXFOYnVKaE5oS004cGNhTmFPbWpURGM1b1F4MjZIa1BhdEs5VE5aNkd0SjEzVWxxY3RMa3FtRkQ1ZU92Tnk4WFJTUzU2VU9La24wZGFKK2dON3hqYjlhUUkwalQrZmRqYXROYUw1TDJPYlovZ1ppQ1FISWhBS0pqbkFrYVlWNWtsSzBlTFUrWUg1Q0hFSXJaWFFDcVdjQUprSlZ5RGtRQkw0OThEdlA1MXlKUlp6OEtYK2NTSDV2S0Mzck00MTFob0dia3FvUnQ5MjdrU2FOM1JlZk03eWF6NHU2Y29zTUFBR1N3YURVMkN3eUo5QlZ3aUFJenN1Uy83NGkyaHdzblBIRkJodEwvcDV3WS9kK1BpQ2o4RVZ1c21MOW1TUlRYSGo2YTRnN1JCQTV4dk8xOHZYNDQycmo1SUpReWZhQ1lUMkUwTUU4dEhWeGpDVDhEejZjSGJNNGRQZGV4RGY4Q1R3ZVV4QmNuS0JOQXBScUxiYWpHaFNjb1g1QzVSeFhWejlrSmkwelcrQmlOUE55V2R3R1BRc3o0NFJnR1RUTno0RWs3ekJtSkxHMTBEZWVQRmJSajR2M1lOWmFrMk9TUVRNVHp5SWhLWXJrVGRBdWJSVTcyZnNwaTIzOEtJOGkrVWZYeFU0SHZacWkyL1k1MFI2ZlEvQVFvZ1ZXL0Ewa0o0QzlJMkI3ei8zR3g3M3o3bEIrQmd2a0FMVzZ5ejREODVTdm90L3Y2cEw5dmRxNHQ0WDFNbkxPckhveHM0V3ZOcVRaOHJSODlpeTdJeE10WkxIVldndC8vdkdDRERXWGdPQ1FjK0Q3c2FwR1hoTnpGWjVKRVFLM0VuUjh0Z0Uwd3NibXNXV0lkbk5kNitwMy9nZ0QvWlZiL0N2OUpmZTJtZTMxNkV4VW14K3NwQ2xqOTN5endTSXVmSzNKY3BZR3Z4VHRpTmg3TTNySTdOcUhlbWEzUFNBakU4b2tNdDlSSEdHanlDWEV3c0VQSUo5Mkl6Yks0MFpoVGR2bUo5MTVPbmFnczFUeWdtK2xZZEpwTU96ZlFTQ2Y3WjFxSy8wMzF3WXlLeVBLRmZoSTVZNnNNb3N1a2R1ekpqaUxDazEvQmVUdDBTcFkwMzI1eGV6YTJWcEoydXRHTzlVeElocXNzZXpqSEJJOVg1OFB4Q0VlRFJoeWcvMzhuZVZIbWY4b3lnVVo1Y2o1dHBzOERsWlpVVmlwVEt0ekN5RHp4R21nNU5WN2hmTGRkUmxKRzF5TVZRQ1NRcVJkTnZPQjJESklaSm1LWlYyaEtCTkRvS1hDc2lQV09hT21NZ0wxOGIvOGR0SG5IVDNBL25STyt5dG1SUzY4Q1Y5MldmZFN5ajQ3c0lFSGVnNG5tNFg5dDU4Ymc0dG1nZGdtdTc1L3JmeDFIS1J4bTU3NjIyQjRhQ0ZJelFBcnB4RjV4WnNCUEM4TDlrbEorK1Z6UndmT1d0OHNaVHpFd012M2FHQjJEOG9rcHUwZFB6MERadEFrZXUwSFRMVjZLcGtMYzVPeFJ4SEt1S28vb0pKaEtzUFZpS3hLd3ltMUVwMWZJYUtSYW9xMk1wN2pIKzM3RWNnNlljN0xVYmc4N3FkdkJIVVN3aUZYb0lTOXRocjlFM25FeEJxVng5QnJTT3IvUVM4Zi9YUmo2dEhWOWUrMmVrYjNqVHM2Lys3Zk9jYno5MXNTcUZLNHNWeWhSNmlURUh3Q0FRRWowem1JUXJaRHNyOFNPa3VvbkgxWVRMaHlNNWFJbm5LamtONDhwSFZ4dkJZcGJwWnR2WkhZaGF0Y3pCaVQ5U2pSMzhSMlBPaHVXd3h5YXVRZVhCOFVaQnkrODgvZjB6SEw5NCtoY0w4SytYRGdVOTlrVzA0SzU5UEZNS3FqQXd2Y2FKSElDQjZDSGxYQmFiZ0xrQ3ZNR3hZUjZoZFBVUWtIdGxWU3hCKzE1RlgxTkRxMmpBdzZ0NWwvZUYrYi84aFdmbkZCNUhQRE5HTC95YTVlUGxuVmw3Z0VnUm5ZUmhBazlDS1Vob2ZiNXFwSkVBSmluRXhNM3FJVEl4OHV4a1lzWHFxb0FpVG0wVjFDR1M4SW9la0JwM3h4UDFFRnRHSWR1U3dDcTkxM2xzWXR5QXVlTko2bzdWa00yY1RwL2g2MjBtTDU1VE1CYWdNbFY3MjNaZlRRd1pGT1M3N29lOWhUam5Pb0tDSDVQZDlsMHNxaTkyQTViNmRwSTBtcU1GdHh0MDUzQU5uNVJoTlRwL1RsRzFndzdzUDM4R1pEVzRUOUw4Q0RhVVA1ODdpd0t4MExUWmRZZGRGS1VaR3F4MWFXYm9XUzRmWnVEbTQvTGthVWtHNGVLOTMyRHUwVS81MlB3dVM0RHZwZVA4TWVUNksyTTRnNURVUEhueCszYy9QYlF2aEJONXBNNVJvalQ2VS9mVy9qbUxQNFNSSjZ2L3B5RTFwLzIwaFk5S2lZMFVIcUVldzZJUS9PclpGMXpqQnpvK2JKc29LY1M5Uk5qWUxiWHZwdzBzU25XeFlVakNFVnhqeXpPTWJBN1dyRU56WlBYMzY0cjdvZmJPN1c5OFBjdmZWd1l4eW5EbVZaZTBWQm9PQ0hvdEYyQk1LOWdndDF1NE1lNjRrNk9QSmhBVjRwWVR1Q002MXpGUFJ2Q3FGajVpUldjemdiRGtvcWNzbHBFUGlKczFDbzBvck9ZZjBlc1Fsa29vdnBKb1VYQWVFb1p6RW02NlRORnRaZkNocXpodzBkdm5sc3pDYUhKR0hrYkg0dER3bHl3NmlxYXBZVDc1L21ZOFRkZlhUYThXcUZoc051NlYzRWVydndHdENnb1d1TktUbG1DdXNjYks2bGxMa1FHRWJlYXEwRktyaGtpeENPajVYeVN0R3lBeFBURU9qUTUrSi8zN2ZnU0g5d3BESEVDY2VIaUFKU0FGU2c4QURrM01KSmg2SG9KTnhQVkRoZFkxQUV4ajhNdjlUcGNHYWs1Vmp6OVNmU2F0dkNOU2VvZWNYNlZzV1p0cHdoVkNYNE5mQW52U3h1WW5MMHR2ekJ3TTR5QmxMbUZRNU9ydVozSEVTdXFvcTNpV1k0akMzRWN3ajhnNSsxeGYzMVU1TUhoaURxL29mQTVOczRlaS9FZEtwenhHVFVrZFRxOC92dTdiUGNPRzZsRUZudkxwK2ZGejAvYjE0L0xyWFgwdm54anRxQTRPM1orWFArbk13VU52VnJYN2ZLTStoZDByRTJXNlJadEs3SXNmZ0RxZitsMDVoQVZUR3hldTVYS0pCenZOQUJaMnQ3OWNMOTZ6OGgwVi8xZmovckFrK0xKaDF5MUd4UDJKbkcveHAvSmh1TXFCL1U4cVdLZ3o1cU8xZWJ0VVFiUXNESDhCRDlpbUdhSlhEdWNmc0dGSWx4Zng5bEQ2dzZ0cGlMdTd5cFpWb2tTNHJtNlZrUVUzMDF3MHlJOXNHZVlETlpXSVd0ZEs3QUdkdVpxRFNPUlJUcnJBSUtlUVlRWWUzUHJLVEhYblpLb05ObTBYOHBVNGZsODU2Zm5UbTVJem13VUFXWUhMbTI0R0l1aElYektXZFZyRzk5YjU1WXVhNG82RXZBdElYdVRXREdrSTFGZDM1YSs1dGt1SEZOMWJydmRTK0dwcFBqak9uTUMwOUtuQmtSUXpxYVNicDR1Vm9ROVZtQi96Y2JFazB1TXhZT2kyek9EM2lXQ3YvOStMdEE5ZjJuZDlYUFpxYU9nbnhuSnBPK01iUmI1SEFNUDlYamNHMXRma0hLMzh3VU91b0RkVGFIK2JQNmp3OUVCZ3NZbThRMjdHVFlTN0Jwc0EweGxoVnVJMjJzSG5nZmpDeU5qREl5cVVUNFhGTWNFUnRzTlpmYzZGdElReEF5ek84TURtZllPQnlhZVk4UVRreVowdnRFU2VzcnBTeUlTUkJpRXdxWTJubllRVXFDeUVVUW9LNUpNeWg0UHRnR1Q4UEZyVmhKa09PVW16Y24xWlU5V0JnY0xWN0lBQ3R5YXFCSzNnRXc1TytXU0h3SVRNdUZUa2pxMDBHclNqVHFEUk94MVNyQk96NnRNeU1BcUpjUWZhcTVsdm1oYWd1UlhZQlRraVJKc1B4ZmErZzFVcU1KVG5kMFNYMEJsazlGZ3UzcHpEWUpiU3liQ2xxN09TOWh3Y0VrMGJsWnJVR25kTlllcjV3V2ZubTVhV2Z6Z3E0c3RwRzVVN0tDQXpLaXJpanMwenUrZVU3SEhlOXBybkF3OHZrRjJSNm10K3pjMk1kbGdoMVlFRncydjNCZ0RDUDc4Ukl0SlJ4VWZiS0hIUXR4eTJUQkJhMGNRUm5oUlExc2hVY0xpRm4wVlJBT2tJK05nNFd2d3hPSnRnVDhVbUFJUk5KQU44RitFd1Z0SHN3TFdOeTBrbDVveDQzbzBESUg0WEpXS0lnR1lrT1oyVGY0am14cjNGdVlRYkpMYy9KeDNMNVR1ei9SQThWalUyS0xLTXROUmRQWkRubjZ1ZEpuSmdhbEt0a3ZwTjg1aTNYTTZFY2gxbXdlVG1aVkR2N0J3SmhmTFg0S1NxZVVVbUZhSDA0bEs3bmdnWFRzSElTREZhMWFock81UDFsK0hkUHZrb01qL3paNStoL1JkY2lSUUdWLzZlZHZtR08vcGJJUHROKzI3Q2hyMmhKbi9tMmZWYi9ibzdyMlI4VitNUDdRZkJjZ3dLdGJwa0dtNHdla3pSbWNrTDNraDRNUjUyV0ptYzJsekVsZkE5ZUxsT0Q0K1h1N3daQ0IwRXNSYm4rYnJxeFZ3MmNTakVObFVKS1hCTzF5STMzeXVhY0huemI0ajMyY0dEdTZiSk45N1JJOTBSSVNka1F4VlNmQzF4MzA3dWtKUEFpUmJKV0NlTXlsYUJCTTVRdHk3d1pXZjlTNTBiaWJ0cDFLUXkrQ3JwYmoxMlg5UEhMZXp6dkJ5S21OVU11RlROT2s5Q0pmUHhQbDk1c09Gb2NWK3dmOW52aUNyeG4xckZPRU9yWnJYL0ZMMzI3bGxFb3kzWlZOZyt1TUtNeDBoVTNpNC91UU9JL0xSc28yMzJ2OXZnRGpQbDAyVVd5Y1dwZTZvZ2J2bUZmYU1tYzZvWFZvUXYzQ28vZms2NjVkK2JaeVdmbVlaOTcwdzNFNXF0MjMzREh6bTNmc1hmSHNDdmRlcmU4WFl3M3ZOUXZ5bmUvOFYzeTVFVWU5akI0QWpkcG1IZml5VUsyaDM0NE1tZGpIMi90TndYL3VZSW5IbGxWUnlEVXJUcENKTytrM0g3a3BtYUovQW9GME1vVjRxTlV4QTZRYngwYmUyKzlma3UvcjMrMWJHUW9zck8xK0ZyU1B5aEZ3MHg2RXZkOXRHWER3bmg4K1MyTTdjSnZaWE9tUFJONlNESTVvWUFuSUJTMHpKOWVpNTQ3bjBzTGlESTVzWURQSitUTDVBVkVjNXh6NVNpQ29YMjcxQ3ZkMW02Y2l5Y1k1eTVuZWFYTDI0MFBmdjVjLzZSeDNPWnhtMnQyUERyMlQ5UDBnMTBIYXozbVlkL2NKM085YzQxMzdMTTZtZmU4U2taaER5NDkrTkk3N0YxYkhpR3p3dDRuNnRqTjVtRmYvNGwrWC8vSmZ1L3d4QU0rakk0OER2dE52enBtYlhsemIyMklyd0hmRVdHeDQvOVNROUlIKzd2MWp4Wlp1Ujk1c0tRUFc2Q203aDMzMWpwRVJ1Q1lmSUt1MUY2MmI5aTd5SFluM0h6b3liQnZlUFVtYmZLUHRmaWJjdFBwUWE2VThMYjBnOURDQ1pXbXA0ZUNJcE80Z0pnanh3d1NIaFl5dVljb3lDcExYeVRqSW5MVE9kanVKVjNvejdKUHRQcGlCMDZnWXB4bG1WOW4rOXJ5OHJHS0xJcU43ZjdOTit3NzdKMUkxOGk0ZGdRcjk0MytxeVUrRnYzaE9NWlJsYzRUWFZnVzdkUTA5VWVteXZsaS9CbE1iZ0w5M0xEMzJOVTVRT3AvKzZIdXJuejR2bGN4MncrQjRHcURBcU51YVlCTktuOVZXMXF4YktTNDZuSWprZVAycU4wL3R2S1lEQWNqRzR0akU4V3NQT05MSGNjZ2dkMmtHR2lmZkRtRldZVVRmQk4relBweEI0RGlTT013NUlpTlFBMzlYellVb3Ztb1JxVkRWOWM5a0JSUGorYTVlY1Y5dGJuL2RuMktWekVFT0VkelBlMno3RE42MFpKdXJFQ2VqcEJ4RjFXa1MvbHVvbFJPOEFnRUdFK092SUFvTmdWRWgvM0JtSFhFcEdlcm55ZWgwcXZ5RXV6U0xOb1loU3dCSnl5aklqNm5LY2pVRlBMYWI2azRLZWExL2Uzc1ZUalNVOEJiTEpRMldIUG0rOURrVlNSdUo4d0VockNnVURZRUxPMGRySnk5NU9YVGc5R3d4VCtNUXIzd3ZTV05OSnc4bHpFV2NDUHVjUk5NQWdFSEgxd3doSFZyNnZUcTN1ckNvL2Q4NGpWekJUcklVQVltTitUeWpmc3MyNE1WSGVCd04yWTE3TGgzNE1NQjN3SHVxM1ZiaFVJMWYxR0Q2dTU5VUh1R2Q3aDNFQ21LQVVLK093ZzFuVG5RUC8xTjEwdG91Z0s1THpXWFJ2Q094bTVhOGhNV2RwT1NSLzNDMUZ5SHF4M1BaTVYxaitzbXpqdFRXVDFDSVJmTEx2eUdzZDBxeDhjdjNCQnRlYzlOb3M5c1FDbit1WlpVM05rYU9XQ2NaWnUxZmRnMzc4azgzL0RrbjRLRGhpWFdWOW0rbmI3aHA2dnRMeXh1QldnS2t3ZWpsazdDWDlDQkZGVlBVWllOSW56Q1g5Ni83eWY4Z2xQMEtEdFdpNkdGVEI1TWRLUk0xWU1rcFlzOXVodWVyRjBXcURDNEV6WmY1TkFST1BKSjQyQnk5ekIwK0JYbWc2THlnOGx2UWUwaVpqVDNIRUtXaEtWTXQyYlZTUjkvVGxPT2ZlRGsyenl6S1dzZ25rcmZiWXY2ZU0xOEJINEhoVVZBSUJFdzZMdFZ4bko5RTZKa09Ed2VGVzd0ekNGblJhU3FHWnBRazJFWEFhQlpPKy80OFpsZjExZGQyNWZ5b3E1bW1xWTZab0hNRHUxV2d2NnBiK2pXaEh0anZKbW1NZHJxYWJValgwQVZDbTdtN201dGZYZGQxRC83WkhnUytJNTZ2NlVPZTVxWGdNRWpRUmRpa1lIRjFoUVM1U1ljcksvOGRVNTBRMzRnemlBWlNzVG1PR1IxT1hIYld2NGFyZWR4Zi9hOWc2U20vWDh2SGlpV3N2Rm5mU01ncWZEL0x5V21pbVVIRjJoeXRibmV1b1ptcjJ3WTkxMUh2K1A5N0hzUFNjbEt1QlFQekpLeThULzdBSkJVUkhnNElUVkxkbmpmbS8vKzhuRklmT1NtdVY3T05lU0VLWk8xd3Y5TlVaSE9jbk94Sy81Uk9ibWtuMFNwYlJPT1ZEcVZDdm5TOGsvbjlvcnFzZ21hMHU4dmZmVXkwbC9yM3RuMURWMmFjSDM4RzI0bGF1ZGJ6Y3U5ZW1PMHRyNnJMdHo0bHliRFV1OTRObTJQanI0VXozY2JZR0RkK3pzN2FqWkpub2cyamtnZDNod1RmZG1LK0VmUEhSTU9rcmtCVkxQOE1lVlRoSHBuMXY1N3lNeEw1Z3g2eFB4OUZab203SGFjcUl0b1M0UFFjSm9SekRucjlZcjZSNHBNNGVrN1FuVll1VDEyMlJnQ2loODUrMGpyd24rSTNNV0x1MXUrd1V4cWJybHp6RHhGa0tQSXQwbXFBanViQzQ2Rk1lbkNFUTJRR3hldG5ucnlhUkNPR1hIclp5V2hqTU1nREpLWGR6YUJITFBpVEMvNDFQUzVnbWlTaWNCeklTQnBMcXZ4UmdJMXhFV2RPYVpGWG9mYjM4aTVCSnpxUU1yT0hMc1B0VXpaV3JmNTFSYXg0V2VPMzdCUVpVUTNaMGErYWt4bFpaUVBVd0owSnZPOXVRR2owUU9obFl2V21TMGJ0WUQ5aUx0aWUweWtPSXcvQStNUTMvWWhLQm9uSGUxQ05jT1FSSjd5aEQrMG9yRk5ucmdnYVJvSW03Rk1XMjJBVzROZGNpSmJQaFVDa2dsblFmR2dobmE4VkdzZ3pNRzVEdkF4d0MxTlNCM2JmTEt3Z1hEZW9aYWNLTURmS3lIR0lrRWJDT2Zpcm9vcUEyMVRLcG5uRVA5V0wzNkxxbm0rRGIveG9XMUZKTUw0MXpydzFnY0FjZnNVanRjL29IdHBsNlA4UWJKMWsyREkyMWFjbGdwRnBhMUsvbENDS3NUVFkyaGJTYXFpRytubGlqOHpEVkZvWFhqMDdGVkdjc29VZU9vZ3NQdGg2Ui9ScjlMb3BwRWNRendkbWU0TFRkaENSNjh0Z2FnNmFaTy9TRnZCVUN0d1lKdEphSEYwc0RsY2NlUXY1bTAybVBSZDNKMk9XMEt4Z0NPMjFveWQranUyc2NMSjFvSldBZEMwa3FUV0Q1blUyN0VsVWVxTjhZZWcvN0RMK1ZwQzRyQjRMUm9NNWZPQ2QvVTZOaTlsRVJvSno4U1BEVmZzZW51YzZBcENqNGliTkdCU2ZQV250VjB3S2IvNjNneWRkZWlMQ2JJNllPN3E2SzkvZTRWcEQ0VUI3QVJjVmVkWlFlci9HVElOVVFvb0Ywd1hMaFpvOUZGblRHZlN6aGpQSEM4NERpWHRjbURIQ2hvMWdZK3ZhbjNicWNLOHdtSytZOHhSbkhqUmRqRXY0YnJ3UGhJSE8yUGJVaXoyaDIwenNJSitRRXY3K29EQkorS1RYcFplVGs2K1V2b3lxVm5rcklrUU4zSVZyaFQ3V3YrVVc0L3F3bDlOcFVGMyt4MnJBOW5yNyt6ZnBBdzE3a1Qyb1dXWXZZL2VCaEpuUFJNOXk1Z3QxQTNWT21mREpQOGs0YVVadU4vVkpDeFdvZTNmZDhMQitPSTUwbmdTVVFyS3IxNUVBcW1SQ0VSQ2JDd3NBcVMrSDlKVktzRVVzaXp4REU3LzBRMFd5SW9wT2tXNmU1NFpyR2JHeEl5TlQ0Q3BJZXFNT3hrZW95U0VGVEhNU1NkUXBqQjhPMTBxTWtwMFNwbG5LU0RCWS8rUEJwVFhhdEJDZWE1RTcxN21zcytFWE9GMGo2V2ZCV1E4eHg4RGdqN3dMOU80TFdHby9DRWxRaFR4NE1hbWl1SE5FNHNLV1QzWTB1NFdMTGFrdS9RdlZJSmFmczZWWXdnSGFiUXRCTUlQTlBvUFlXL3Z4Q2wyaTMyYXhvSmVZZVVDeG5HRXJSd0ExN0p5WEQyK0h0L1N2ZlB3a2kvYmdCb3FHMnYvM1labmMrejR5emdIMitab3RTWWVqaktjeUJsVzg1aTVFQWRUeVdsd1cxc1lja1Z6bXN2Q2FWQ3l3RTVtcnByM011ZUU0YlcxLzdURldGOXZOSjVtdnRVYm1tM2pkUnpidlFjNWlseWFQWlZubkp5UkgySjJHZ3pNenZ6Z1pLRXhyNTJmWDhUdU10LzRveXd6YVRxM3hwdXJaK1hodlFoTE9nTnUxT2t3ekhRajhVMU1aQ3c1d1VYVXZXWGpLeFllcnp5ZXA4V3c5RUdadUJ3OEpYOXhoWmJKd0k2Si9veENQdnYrQTBPcHdrb1Q5R0ZhYk1xNVFzUTVRL0hQU1l2cG9sdUxWaTN5UExjKzUwTnVhVEwzcEcvU2ttMTc4Q3NFbTY5YTBkb2JYVURoU0dMRy90K0FpVzg1VitWK3hxZ21pdm9Zc2ZpU2d0Z2ZJb2tMS0trTnVvUkxyK0tFVTBDa3FSTGNNS3BnV2lxeEUwODZRVXFaNG81YmxFZ29uSHVFaE1KZUdrZmdsZXhNUkpNdXJLb2xFbnh6dHBIUW5LdHRSR0RiVlM2YXVHMlZiOUhoNnluZEtjbUpDK3VqbzlkcTR1Tmd5UGdNL0JqdE1RRTk3dXljejBsSlBVbkpFUXZxeDBSdnpJcUxUazJLalJ3VitTRnBWQ294U3JkRHdCajc2eTZ5eFhtUUFZcU54cUUxd093c0tSQ0NUdGRscHBHL3gyQXh5bFJHbWdLSXhNVGtpYzdkNzN0N2RGWGVRZzFSVk50dDM1c3o0YTBka1p4cExVRmMxMnZmSjVud3dkNmR4M09HRDF5ZTNUdTd5eDBlYjQrdzgvT211YTNnd3ZMREI1aHdXdE9KaEZrVHpUanJqdTdINVZoM2R2L0thdC9SS1N5RjBSeHYxVVF6Rko4UlFUOWVNbWtZcUxoeFE0cit2WDY0SnkwdDFkQWlETXlhaUppSFE5WVhBbE5hN2lhejg1M21XZVJhalp1dkZ1bmR0SXN2RXVEM1pGQ0krUFBmQS9QWjVuUmgzTXh3M2lOM0ptbTBjTVRmT25GeUwvWFRlc1ZISitZK0ZuTVM0NC9peEdQOFl3bDUxOHVXbVVVSVBTTGlaWU5kYjQrNCszSEV4Kzk5c2VOcXI2a3NZcnJDTFh0cWFtOW40U1pFSVJXbU95bGk1WUJyaWRhUnFCV3NZL2ozYis5K05vcGxRTnN4NHY2ZFY2R0E2Sk03YjI3YW9SMm92UHNXY2FXMm95Sk84MUhidVlkd0FPaGh2TVRpK3drM2Q1Nk1BY0N1N3R5UFBmaFNuc2pyNVRQK0dHc0ZTaGN4L1BlSE1UVkZnSXpXVzhVMmNGR2h0NlRRb05OVU9BTE9qcUxDYStZc0tvbndJY3MyUHVualVQNXR5Y29icXNrRTg1ekd5YWJCZWtJaHNSRFZGdWVsUDRoVHFDWFo0S3JuU0hYTHVGalFxeGJTTlpQYU0xWVRJNVhtaW1EL29TaktRK3E0eFBHbVdKVlp0S2ZTQzRPajJNMTN1cUhnNXdTazFlYU5qVkVWYU5TMFErV3BDSHg4M2xjcEdOZ0Q1eUVSTmpoTWhVUW8xMTFybjlRK1JiREhnQmZnWmNtZ3UrUU1TZDZ6VlpzeDZNWnBWaFJLVmwrSGhrYi9Nckdxd0NzTVZEenJobjZId041Q0NTc2IvaTFlS1ljcjhYOFQ4ZkRSWDlKV29NeHlMQ3JicE01R1NhMWNGQW92TjV1UnlCRXcrQWdrNGgwQ05tSkU5dDMxOGQyK0Q3bnBUOTUzdjR1YkVjeEJTNng2MWNoc1ZuYS9Fdkh0T0w4cHNNZ0cxaGhGR0h2YkZwYUVKVWx5RWovR0krTjlOZldzUnp5MFNBNWhQanVOUlNERFg3MnJPNHFxaXBLR1lVNEV2QVRtKzRsd0JML2oyUm9hVXdjdXpjb0NsekoxR2hxYlk4ZWdNbEJmRGhpckpFWkZJc1dvU3lRd21DUmk5VC9ocUVxa093eUY2enhHb1hSdHB4VzFzOWcyY0dhWkNEV0pnQnRxSzBpSVVSUmFjZ21Qbm0wbHBUUHNXK2ZQZWVjNW1rMUl6ZDM3SHdqekhBTzdzc2VPY3JyRldmanJ0N1lRYUpkWGovaWJwMkJTWDFObFFJS3NLQk9xY0NIaCt0eWttTTR3S0YxT1llSFBUem10TldzYnZZMXZETCs2bXoxVmtUMHZacFV2TzNjenNta0xncW9BajRWSktWU0VFcXVCMHlWK2NhV1Y4SnNaelNoTGg0LytyUXFFVkthK2pXSXdGcTNheUNpaDBuTFRhT1EwbWtzeWJ2L1pXTUtmUTZ2SlZJU2NxWUpScUNwb09rSkdwbU50eTlxSDZtZGZQYkQxNHZXTE5YZlAvSmNhWksyZlIxcmpCN3poS1Zqa1MxUUZrRXhXQXFtWHlDeXU0aXFBc1lxTVczSjdFSThiK0hVeEFFWmhVaWxNQ3BsTHBuQVRMdUFPWWxEbmNQakRhTXpoTU16VHdtaWswbmdSM3gwWlNnbWxYdmh6cm5kT2lzdWhseGwwRmRTYzdISnFubzVlbGlPaGwrWnB5OG5aT1JWa2c1WmVXcHBEZzZvamxVZzZUWUg4MEZiVGFGRE54Mm9hWFlrYzJXMEhKRVArR1BaZ2hhUHJoVS82L0JPSDFpeW1xK2hPTlh0VVRaWXNWTzJ4MG9ucTE5YU1ZOHNqVTJ2T25VcXMyWE81ZnVTUHFVd0RzaE9kU3hQVFBQcWNTb3dVMFZFY1orTjlCUHVMTFhxeFdlZUVaYlFrcS9jcnVYTCs3c1NSVVpaSnJ0cHU5NTJYM3BmMXR2bzkzajBaenJnTEpkcXJ0NUN5NkNWa205K1pBTnI0RTVabFJSekFHVG5aRkk4bXB4U2REYjlSUE5ZMmsxUG90NWdKSFdkTytWZmQvR3pLbHpOdURVU1JtU1BsS1RIWTlOMzREN2Y4dzJXc05JZmdFV1h4T2x6VDY4ZnQvUFBCU2JMUnZGVzNTYlpzVGdCNlVyZmV0RVczNHB6VnVkOGQ5N21XaTNZbW0rd2JubW42aWw3WC9pTS9DRmc2M3FNYnFiSUwyT1NvQ0ZvVFVMN291SmJMZ0NHbllEVmRKbGRMSU5Hc0Jza0pvNU9qb2lOSGlrQ3lOSkJyWXNDSkQ2LzhFbnpadVBLb3hXT1JyY3hSNTJRVHdiSlRNamlkZG50eFgzSmVLdjZHSUtPeCtOS1dyRlpwYU8ySDZvbFhXNitXcmZ4UUpHM0xhcE8ybGZ2S1c2VVRLcU5yQ2JBb0wrQjNHVU5hN1lQaFg0emVJV3QvVnBoZlgxVlVsVFFNY3lBUVRoaXNCSTV3V3NwTEhvUHpINEhMMlJOZkkvTDJ1ZjlnMnNEbnNGZmVIaVhSbHFVRDd0WnhxYkF1YlNMMXFFK2NUeVlRRlFGcmEwRzZESjltS0EvdXdEdjlJYjVlVWtiUmFTbGxVZ205TEU5VFFjbkpLay83cWhNYlpDZ2lUWUg4Q0ZYVHFQRGNUeklVaWFiRUxCaHZBNThXbENFc0VuYXhWc1Vwc2NqSzBZS1RoV1p6bWc1Y2gxS2xjOURxYWwwcTNWenpvem5KVWc4cE5vK2E4OFh3UmJtL0NPSXhmMS84MHZoU1BMeTBRbzJrMDVHZWpWd3FGWlk3U29XaVN3WTdHNHkvak4xY0NzbVNWbEwxT2xxQlBndGxlazA1SlVkV1RtYWVzSUdMaHI4OEtZSVV2ZnJ5cnFocWYvL0pPNnA4eG9Mc1ZQUnJYazFSSFM1QkpqL0pRT01hamhmNDkzRUFkNTlNL2ZaNURLYmo2UmhBZEJHa1NMWFAvTXlpaGhRUkdwY0M1clRQaFBpWEFWWXVsYTVZQ2xqbWg4eGRmR0FhWUxFUDB2aDJBV0NoRDlMc2FCNWJzUUE3UE9VVVhJSmkwTkRMeWtaZS9ZOGJoZzE4eEZkaE4xbHJuRjdYeGFKQ2lJVjdrVUdieUhNMHpNbVJsQkYxYWtxSk5JdFdyTmVVVXJLelMwazZOUzJVTGVjVTdZNmMvdTQwRGFyK0lFTlFLSEtFdlBySFNRcFU5VjZPcEpCbHlQY3cxY3I5UlpDVEZIVzg1UVV0VTZyTm52bW1idEpEZzlFR2FuMkVCQU5qVHptQStZc0wxbythZ0NFUThNbm5wK1dVSHVvWjJFK2kzODlRcEpCRlFmb3pXZFlVQlJ4TkNoSW81K3FYQUFNTlJPcS91WXBrUE1lQ1AzRmhiTkg1amVadDVzMHNTaHpQZ21sREdOTE5SVnI0MWJOUGNiaW50NjdDdFVYbWRLU2h6WUpwL2o0NWN0R3lraHRnNXkvZzh0UmFjT05TUU12UzhyYWxnTWFscFJ2QlpSUDZBZVA3eXphQkpmLzdtdzdWYmZ2M0RLeTErNWZ1WDVwT3dyYi8yeVJFRlAxMldsTGQrNzczZmRrWkNlWDRPY2c0cEdXaENkb0dNczltOFMxTU9XSExwd0NNNklTYnRreUxsOHJjVmF2KzBRTlJldGlic2lUQ01GQnA0Z2tXbk5ldytjV05NQ2RhNnJ0dlc3dWEzT0FmekNQbmZEWjhIZzNiOGoybTZRUmJoSk1HSXhPdDM3NTdPbVg1RGZBekJpYm1sQXh4SnZxM09kb21ycVhCdjgvOXg4UncwNnVGejFZRUZwVm02RHhMNzhBZHZ0QjRWcU5INEZrQnBRclVMMWo4bzd0Q21mbGNXZVRuYTN5SWVaWU9IMTJtSVlTeTBBZCtSUkJpejNKWmdGbFNEbmZNWU1CMVcySDdvRktyN2dlNFZGR0h1bU5ESUxkUFBvTG1nK2k0N2x2OEowU0lXK1NJdmFFSVJ3QXEvZjZDNEc2Q1NiLzV3RGNKNDJVKzdJUENyYnNxeVlJOXVIT1JYT09UVG9xQ1l2d1Y2a1BjTk1KQkx0eWYwNkhIeTM4NWU5RDNqbjAxVFl0TWJlaWJLT0RSK2FGejZPRkFpR3ZLeUxPK3RvR0xmRjk4dGRrMU92bm1MK2F1NXMyYS9vUmdZc1g5TEZsTTI3UWhPV0dDRGFINVNtM0RzZlREc3FyR3pIOHM0MmJTMFZodXNFVVVsUkVmVlpkbkNwRHAzVUdvUU9Qd1hBQTNMM0NzQjZVbXhqMFBRK3pRM2lUdlAycERKQk5mbUdsZlY0Mm5vTVo3OTVsRmZVOHY4ZWh6SGhlRjZtdXpOVW05V1ZkWnA5SGRYdkVoajFRRVhIaEgzaDJabkpLU0doMGFSU2hLbWh6eVVRTkJSenJnR2xHUkt1bHlKY2haeXZoN3F3RTgvOU9RY1FnQnJLMU5ZNUVBVTJyemkzRTRsSnNncVkraW9Cd0lub2I5WDE3UGZvQjU0UU8zVUJUaXZmTUxrSHFOanB1cmpjUVhpZERPN1FVK3FzQ0QxS3R5NVdXUml1VFlsR2NxV2ppZmpybjFWTldJbU9UQVJqeE5nWHdDVmQ4a1NwVi9zblF3dmtWYW9YVGNEQTBqSHJYNFdHdVFpL2E2U3dudUdUQTdiSCt1L2RHODV2aUExZFZNY3B4dnIyYkxCSnpqejRCWVdSdjVUdkVkTGwxTzUyamdCaUtWOTdaK3lHKzlYRjZ6cklBMmlMcUpNSUlrYTFTcFBTSWNVYkEyK0k2QTNleTd1djRGRWo5THcybERpQ3liQy9yRTE5Ykl2TDZQdkZnc3JnaFhJYWtvY3oybHJGSlNNS2RXZTA5VGJsaU8zeHVSaDgyQTU2WDFQdTZIQ2xJZGtCSzZ0eTFIMW5hVUkvMFVpQy9rRHNwaUNQajFqYlFkRjhDV1FuWlNmdkNtdXJLbk1xQU1CRXBYdnFuZ0tOTzlpL0dGSlppeUIrNEtCYVpTRkJSa0ZlNlhTUnhLYkZBbDUxQ3Z5Zy9kVjdUUzJ4eXVwWWVJYmVNZHQ2bk1RZU03T2NOdlZVTkRUSGZuRHpPekMxMEFWN3gzcHJlRDNIeG5xNjhiWU9UdG5LNUg1M1J2SHE3ckQzT2lwUys3a21CVU1ZSTVFajZUVVZsSnlPN29KVDVzSnBJR2w2T1ZFQnE2R2sxVFFSTUdJZnNHQjQrUVRNcDdFM3d3NG9Xb3dhTDlNaWZFbC9COHlubjdIaDMrNEphMXp4M3hzcWtMVElXQ3g1RUg0ZjIrN2tUVjludjhzc3hxY3EvQ21MaXdiZzk4SDM0QlFmU2RSeG1UaEJMLzF3bEdXVXhPalE2akN1N1RpQ3E5SGpOcVIybkRBbEZWUHQ1VWRUNjNFSWFYWGVIenpzU1VOWTZ0b0ZqNlBBMnJEL1NsaVV0NktGK2ZTMmRBZ2I0VXhUVnc2NEVtdi91QWpXa3IxamlhaWhWb0ZEaXV2TmRCeTM4ZExBY2k0M2d2Uk9vazEzdWxTaStqYmkxdGJYdXBQWmhYdFJxNEZxQmRTTzdPUk0zVU5lS1djaSsxN0p1dWpKTkcrc2dRRTNjY2lXRTlucXlQcEZVZnJ0ZGFBdUg0RWM0czIvamNpTWRIbHJYdFdGTm12UFVGd2p1UFdZd0pDenVSRDRKRzYrNW4wTHovQ1A2dHJoWUtKR2M5TnpUVUNIWG9lVlRqU041bzROWlN6QjBwTWNHam1vaDRySjVST1h3N2N6UGtmMittSGNYTURQM0dNMDI1OVV3K0MvZkUyU0swaHg4K203M1hkdDRhOFkzU3VzYVJWK2NacFhJNjh1dG8vSXV6R1haM1Bvazd2elNjMW9qQ1QzWnJDOTE2cGh3WFNteWsrcGdpZHhnb28ySnFuY3NNbEU5TWxia3VKbEhFdERVMVF4VFhKWmttNThWN1M1VVA4SGl2cVlwaHdWWExkMXFxMVRzOEF4WTREMGJlOW9wcWRud08rZUh6c0ZhNXRoV1B5VEVScm16UXNXZHFiYVVHbWtXbHNyYzVlODBXYTNQMU9kNjNsbTgrMVNLczlacFRtcEVabmkvNThPNmlrek9CbDFuRjNKbzRncU5iUHFlVGJEOTFWS0JITnpvUUFHUys4RVVMWGFkYnFKdmRsME5kdGQvZFRYUnpidy80R0cvNzNkMFhUbEJRSHlkRmMvZVl5Zkl0R2hmc05LNXF5T0tuN3FHS21XVmpqRFJFanpwbWpFRkR0K2JKdG82NjNvbTJQTHV0bDlDVm42RkRFYnp3MktOVmMrczNRNW5rMHNDdGU1cjY3ZzZyMHQ1T1krM3RHbE9Wd1ZyNUtNV2VMaHdhWmcraTRWMDlmNldhU2JzaFI2aFVNN0dOMmZXMVJ3dDhjME05YSt6TzRyMmwxZ2NOR1c5VlZIZ3ZRZjd5akVzSjhxY05Ibm1HQmVEUjZGT2ZDelhsWjlSYzBUbTJOR0NWd2dTalBPZTN5WmcxSE9zcjRVdjRuSjFINlRMZHlIZ1VOTnFNUEN1QyswaVhJVThrT2VJK0pkdVFJWmhvUjhoOVNYU2VCS0hCZC93STUrUnRPczF4ZVdpZ29mRWF2aG1EczZyaEsvTkRWeXJRNGIvdU53ak12SndvM3gyV1BuU0tQWWwyQ2VwOUs2TFZrRVgyeUk3K1Jsc1RrNU1EdHllZ1N6Z0lSREM1aE1qblFBRjBGbWt5QjhLZUptUHNxNlVSTXM1dVA1LzI4K2FIcngyMlozNWFiVitsZ0J2dmlzeGZXVWlCTkIydlFpZjhHaXdzQ0lBNU4yYldPeXBxTzJKZ3JSMnA0ZmxUUDY4Rjg0dVlXc3Z3UUk3dmF0Y2MvNzdQVWZEenJxVGlKU3ZxcVo1a0lLaWxac3ZPVFZUWjBTZEJqMnJrZXRkc3lWRlIzYVo1dFBYYXNCeFYyZkxXcXZxNWNpbW1QUncvT1B1eUdTd1ZITHZkK1g5dnd3a0taczVxZ29JTi83ZGVBMTJwUUlmWGhiaWRYbk9obnViWkFlUndSVFRJUjZVaFNoMjY4amwwTEM0KzFxeHpmOUtlMmwycGdiWHlHQXBDY3dYNXBSSUZZMFpLa2o5TlNOUG1QdFRoZWNPSHRXQ296YXBRYlVXZWg4Nk9jdERUc1VQU2xQQWJOUWwvbzhhOVIvTlQ0SkppTzEyZnhDeFJxN2dXTW5PUDdLSmtqVHRyWWtaUzB0RXM1Q3NwUE16SktXU0c1OFVQSDNtNDZsWWozcktDZCtyK3FJVGF6TW9zeS9jODNCcFdZeFJtV1Q0eEhsV0tFOCtRLzhsZHlnaDFHL1NlZ0cvVmZlaEp5NWtubWRwUHFQQ0paaTI2Vjl6YS9IZFhheW1ucGpMN0thYy8zajNpYzh5OCtRWGNVKzdCczQyYUQwbVo4VjhJZndjL2JNZEhlUGxrbmVJSWFkZElTQXpaMEJJcUhvclAzcnBBOGRESUowOWxSa3BFUW9uc3BJUTdyU2JKZkkvaUxoN2lad2trQ1RzU1FucDhoSmRQbGg2SHVsMGphcXBsaUdvT3ZmZlBRUEhReUNmM095TXpKSU1ab21lRzY1MWhraVVkanloYUREbTJZWnhRem94YzBuK3pzZGxvK3JYLzQwaWlINE5wNzN6eHBDLytKZmpkbHdTQ3YxZjB3WjBCQ1BWTStOc1l0WE05L1BkNDJDL044N2FiQTVwUmphSnZyNjNqL1dLS1puRHlydVAxYUtNQ1hRdGNRUVZ5VTl2NFgvVjQxZ0RWSmRzZGE3bmpQUWVrcU0vRlVNWFpaOXBGSkJ2UUdIZ0JEYWduVnNIbmFublVWczZ6dnNRVk53RTByMDRRWGpLT0R4TmV0ZjdWS3ZtU3p0MEZaVmZORUlsK3hiRWVQajZYZXkzTko5d1Z4enIvUW9Dd3lzOHZKYVF1ckRSU3ludkNNbDVlalFyVUJXdXFBRFZBM2lhOGZlTlVCK0VkcnIvNlVPRzgrdEpvZG4yckxYVk9lbWVKSnVCc2xjUTFjUGU0Q3R6Ni9DMk40L084YnJiaWF0ZFU4cmx0N0hSdXZCZ0lHeExpdHIxOFQ5OHZvTTFYY1YrQU51d0pTeVN2Q1NHdWh1VEdtMTZLRGVoYXZHbDFDTkJCYWRSUWdPUllZNnJqT0UxNS9TMUo1N1NvbHI4enBtcERBMTZpajNzelRuZ2pIZUp6SGs2eE5HNTdwN1dwcjdQbWc5cHZLUXphZU41M0VxOWNjMk8wTFh5SzcrbnRyYWpGWjRrVnRWM2VGRjdMTzVkU1FBVzRuOFFhVmJRdFJuMW8vLy9uZ2wvMVVRL3hhSkxxNHNhMnlLYUhqWE1DOEFWWVl0T1pIcmZNNUNXazRzdlluK01SS3J1bytLaGw1RWNOTVc3ZHNFQnFYQkZCZmxKT2tFbzBOUzRJaHFPNEkrZU1SUXdEa21XNVBLYVJ4cFpLdCtEOElEWGt0S0VtUm0wbUJndkJ5THViYXRpZDdzWXVGUkU4bDZjR243cGd1WXJrNXZmOFZnT3VzazMxTmRKQzhqbXc0SHk5ZE5URnpsY3U1WktxV0xzRWdhbHRDSWhXSXBSRWtLamVLMXVROTBMSmNWcXdvQVhQdjBaMjhUeEp5M0phTVZiUmVvRW1UTmJPQVFTdVk3MnpNR2Z6YjJiNU5IREVxOHI3bG40OCtZNVg2cHRLNGM1TVFtNm11NWNpeXFiVXppQTJOQUVXOE10dWQ2Y2tkckMvaDltTVFDcHFUbERuWGFtbURzanRwN2NXcytGcWN5clp6aEpTT1liQTIyTDlhZGU2cTRrNmtueDNPaGM0WE5rSjd2S0kwN0tndlp3NTd6bHZGUHhwQzBBZHZ6SUdnTDd2YnBNdVRtMUxEZjlkT3JFQXY3d0tKa0Qxb0JzQXRhOVJrUnBld0c2VGhpdmxrRG1vVTdZQ0krbVBhN3BSajZGMmFPQzhacm1YdTNSblR6emo0dnBXMjVDcWRCSUVnaUszeUxsaGFDWGM3aEw4VGE1TmI2NlB4Vm1sTGZ2L215TXUzdmZYUHN1KzBHNXYvbTNwSldkTU93aUFyKzZkbGx2WHRoNDgrYWUzRGNOdG9PY0c5VWJ5ZWFxNVl1RFZCdGxnWGRmMktlRmkxVVpwNEszWFpaZWMrSzN0TFZ1T3R5TTNudzByazhqZFBEWXV1SUdlbks1bjhGTXdhRXR2c2JidTg5ZjZRYXpMSXlrbCtodkRIeGdleGZBRURrR3hobnQ2NzJFMUw5TTNvblB2RExMYzRuL3RjdTljTklmaU9oN2xPZSswWGJyWjZCMC9YSlFIdlYveGRTbGpreTZwRGp1NXEwQ2VTNXZJOU9QWDQxOFF5Qjc5M1dHU0doUm85Ym1QR3lxNlpBaFJoY0VCYjRmcEYzVE8vLzM1L0FsMUFaREhQNEpmL0JQdWQySHk3LytaZ3MweHdWOHNodC9BeEVxREdaOWZRcjl6eFF1YWVDcjRmcy82SHhLN1JDTVNyQmZIVWNETG9hQzNVQkw0VkpFcHBQMXNSenFsRFI4cGdjL3pvSTdWdDFCOFhTRUlQdmdDV1FRTS9XVmlVYlFYR21VUkNaaGtLc1FHZlhjN29HL2ZFVUdQbTZkRTROdEgzeFB3cER4bG5wUHU3OWx0a3ZCUXM5TzJ2VHN0VDcvMzRBeklack9qZmVtcEdHL0dPUVBHTmREemRHZ2R0NzZGK2ZFY29MRGFyZWJmc1pYRktUMFhFcVZmS2kvQVhHc28zQVpPSmw0R1FCNEZadlFISGdvMGJpa2pBb0ZBTEgvQjRYQzRwYnBNSnJNMzUzSzVYTDY0L21EMFhmYndtSDhFWlY0SjcvUHZnZGt4N3FFU1I4NFIvYnRNMWxycHplU2J0U2UyaFJ4OCtyTy8vWVRhTjhJLytzMS84Sno4cE5TSkYzUGY5dDlpL3hkLzk2eXAwV1pJQkxiQ2w3LzQrN3UxRDFKT2JKajFHMy9tY0RqUnVleHBjUFRJVjlPTGpoNzU4MWx0bUMxaHRyR3hzYm5OMnViWXdCZUc4OFB3OHEvSGlsYnc0SG1JcjNiUCttMjY0eTl6ZGZha0p3cVlpSWlJaVBoNWVWMWY2Q3VsbEZJcWxWSVpRVW9xa2FjUVRhNG0vWUV0SVlUOEV2NHVReWZXN3VpcGJzbUZSTjc1blBwcmhzc3RmblpNdUZFZXg2N2N4R0EzR2hGMFkrRUxjL2ovb21xL2E1eTJKL25jZG9NZTlhMU5EaGROSS9sbUlpVmxqSDk3bWt1N0VpMzBYYWYrTkUzVGpITlAzYnJWNVBUZ2ZXOFhNOXUyN2Vhd2ZaSGJ6aDgvdjlaa0taaGxXVmJCNUVsTUpHdjZpMVppV2JFNW1WSktLYVdVTVYwSkFBQUFrQUFUa0hrTkZtd3NjZ21nYlh0ZEVhbkZuMmtsMGlWaW5ITmUvaDIrSUlTY3p5Q25JbE9JRkVJSUlZU0lRWXdKbEFXYldIVmhQaCtGMXZMMm5lS1lvcWhXNlRtUzRla3FtUE5tU0VKU25ENTJMOGZrL3FjRzZJd0UrdEVrUzVpVElBZ0NRSUlnRHZUUHZvUmsxckNXSjRoNUVXaWdGVS8rcVZFb3dWdjJhWEdaTUZPajBXaUdKdUZONTdDM1B5aWQ2UmM1UHprTEFEMVhpMzFKYktsUUtCUUtoVUtSQ29VaWgzTzhMc0pKenRJOUlRM3RSY1kyWU9TVUJFWFJWVytMa3FjbjFJbnBMWlR6WmRCQmx4TFljZGZMc3VlWHBVTlltZll6WERNS0txRmNteUovSk1naXdhS0ZYTXlWV1BXNk9lbDBlcXVIeldWS3R6cE5wVkpwVEZWdTA4Y1liZ2tWbDh2bFprelBHZTdac0RiRlJZYzdmR0UyUHd2MEtVMkt4OHUrSThtc2g1NEhKZ2lDSUFpQzRBQXBOSVZDb1ZBb0ZBcFRLT3hDNXdMc3FyR1NaRDBZTmcwbStibVV0LzR0ejhrMG1VeW1PTW5EL1YxVXhGYUlCSHRzSVFyMWFXMHBGUDJqTnFzSFJwOTZ2VjZ2MSt2MSt2c2w0UnZCUllQd04wdEdMaThTM3I1WXlaWlhwdXJuSEZHeG8vY3JsR0R2ODBRdWw4dmxhMkVPcEhjR1ZNUTRkTWdTUklJaUQvdzI3aFJaTXJyOVp5SGlaUmNJRWViNjV3aUcwRkh1ODBWeGhQcnEzR3VBaTkvY0pvWkNCTnJ5Z3F5RC9nVWd5MnAyL2RuUEJpR2xkblYxamRjTkNoK2N6NXFYdFVpU0pQT2wraDlUejFnVmxyQXNWcmFoclpYYjBFblRORTNUTkUxZjFWbjZ1eGJkM2QwbjkxczB2cFJObFZLQnlubGFWRzM2bTlXcHFLaW9MQmRVS2pXcTFGL05MQkZWZmo3aDV1Ym10bVRteTVldjlxdWJ6ZkE3Uk1JeUxrY1FsYkJDQTFmQ1I1VHpaUko2bzdhL1ZHMDBBQjNrRnhFQ3ZwWXF4MTk5ckpaWkQyUTkwc1BEdzhQRHc4TWpQanoxNzhkRmg4amkyTGFkZHZ3d1owcW9vZ0dvYWdXRU1MTk5IMEhZYjJha2pZMU4zRnpPTnNMZExCWE5adk4yM2pBK3dkeEdBTXhOYmU5d3lFTGdqNm1yRGgyeVhZYVgwcEtiT0YrVWpVRll6RXE3akxXbTV4eWwwV2cwVHdLT0NPU0l1Qi82Z21HS1ZDZ1VDb1ZDb1lnRmtucTlYcS9YNi9XcDErOTZOZk14WHNxRFU1QktwVEdWQ204RVJrdVJNMDlzUmpMSUlIT3ZPMVN0cTBZTURBUXMrc1BaY0lydDRhWTFyM1NSRnZuRkJRMmk4K0VVQ1E3bnlGSmdVNDdtVVhGZ0hiUS8ybmJ4clJUSDhjZzdxNGEvVzlQNHBCL01UZFV3ekEraE9xMWswUmw2d2dWSUl1T3RaUUVFUVNKUnBYanNybHhBTEJhbldEeUpLZlNwQ3NwczZTU3QxTkRLRHZpUU1ieFpBVkNxR2hpQ2o2Ynd2bE9YYnlYTCthOHBvOXdpQ1RiWTVSQ1hZVUlRQkVFUUpCRWtrc3lCRTlLSzgyRUVCam5JSDliR3MyQkVYTmtOWHlBQmZCTitHYTJSKzY2Tm04SE1aUVdzZUJ0L3Y1elp4VkRzNGoxQ0Z6RHptbFVBdFlyRjcwYWJsTUxxMzU2N25nVk5WNlQ2SHRmMXF3WXJXaWQwWUplSkxMT3hHQnhvbVpNRWdSZU5xQXNKZkoxeGlONTRWTWVvZ1hCayt5SGJYRXhCSkVwYlcxdmJ1SjNBU0grdDgwYlJXUHY2bFRyVmFyVmFyVmFyWS8xeUF1ZHRwdFZtay9Nam13MUJMcGZIL0pXNTVvN1IvcVJXSnF6VjRITEZzMlNwM25uZXRlZ3R5eWt1bmV2MSt0anJXenVqTHpNaDI0YUtkRFg4Q29VaUZxenpJY3N6UUlER0ovQmVzNzFZc2FZYVpwalNaREtaVENhVHlaVHAwU3EwMEZpYlZpZ1VzYmd1d3VONVBjd1FucS92ck9RT2ZEYjQ3OUwyREsrZ1RoVkhaL1F6elpYdGI5SjRNM3B6ZmQzWFF3RVFTUTZlTFBpa1owbUd6OFNHbHhlL2FNU0xsWWRTaFA5OVNqZG1vSzlOeStZNHcxQUozVFZhMVNRUkRJSE1HaElqWVdoT0lad1BRL3JpdEtzSDJ1QnJIRkp2ZTAzcldCemVzMjU5VzdpL0VwandJYmlRZXpvTTZLTkRVajJ3VXdZaUVrS2pLYzd0emhDb3V2WEhGTmFCYkFGUzlkdlcvQW90NHBSamJyVENSNEhIWXFBQlc3Qi8yRmNtanpDaVBnUUdvQmdLSmpqaXE0QjJlSTMvNGVMaU9UZTVhZ0F1V0gwWUdrYjZQajFyS2pJTklGckVrK0xIaXFhMHd6eDFtMDdiTDRMRVlyRllTc1h1WmJmbWRjenV4OFFhT2NUM2JlL1RvdVpoaEVqRys5eUxmdFJucmV2T2FyVmFyVlpyV3EzV1BFQSs4UTRiNCs0QXpsem5xbE9QMVN0akxCcUxqVTRzMkxONU40MldId0tMaFZSYUdhTm5LVGlnbFhzTUNTUUFBQUFBRkd1dzUwQWdJaUppSW5hVXJVb0c5VzJrb1NsTVRDcDc4OFhLUTZtRmw2ZTdKQWVkd3JMQ1RLVnQ2YkhWbG56ZHFwRFhMWS9vNlNuMXh2T01zV2pISFFaUHVpT0RxVDRTWStsU1hsMjA1ZFNYekMxVUFnQUFRQUpjUVJicnE4SEZSRVJFUk1UR2VKc2tac05NTktpMFNWQXJmNmZSTmpTcmtVRVcxc2ZyZm9iUmJyU2tKYkZobllRa0lZUVFRZ2dwanZOZWg0VlNTaW1sU1NsdFJQV1E4ejkzUllqMk4rdHZNMyswREtHL3VPelNVSS9kdVVIV0dKWjZoSjlTWTVOMXZ5U2RycE40Wk5nTnVhcWQ2SXVYSXlVVEplakFpLzJHNjJ4c2JPSkd5ZFhWWlBvUGdEM20yZDBmd3ZLUFdpcnE5MFgvZXdCTE84TnVrNlY2N3dnNDU1eHpucHp6a2tqV0I0K0lGRUlJSVlUb1loNWpwN1ZJTFpmSExFQitadVhuSzNGQzErV2NBb01mdkVDUWlzMWZXOGN0MmMrc0NHV1RaVm1XWlZtVzNSY0g5MXlJMU96azQ4Q2lEazRHbUlPZUJUa3dETU55bTlKVXE5WHFXRjh5dFJRVDdabFpGUy91d0lxUVNGWVdjWTg1QUlaaEdJYmhoT0VwN2dyeTl6bFZuMElobmZzRE5uOElReHhXZFhqS1BCekRMVzE3WWRpc2ptZXRUWEVpdU9TMHlMTTVtM3QwWis0TS80bWJrb3U1S1BPclhxZ3NIUFZOUVFLQ3hlYklJSDFkSE5QbEtMem9zWi9xWTBsYi9leFQ1SmxBMWlRZE5ieEFxTWI0UmtzVXl2TmRBbHVEZmpxZDBOSUZOV0l5TUhSQTZBRVJMMExURlFSYWhRbThFZXh6WTgxWUU2K0NNYlFLK3M3VGNZTEJ5MnpJWENUSmE4bEpJTUdyNHZLREVqWnVKNVhJVUhXeEJxSzNScUd4OVF6Q3M5a2tNWW1xSTRaRlMyYmdaQklyOXNnQllUTUU0blBZMlRxN0swaFlLR0h6WEFMTTFlM1pKaEVOYlpzOEtzaStwRHExRGlvWmR0NFZYdDQ1amUvbkJMT3pzNHM3dTJnOVBOanBwM0E3dmxFUjhsMWV2RlUzK2ZzKzVhV0FtU0ovdTFUTGxSL0NlNkZRVkVDZXhjcGF0MjJWM3I0aVNDQVFDQVFDUVFvRWdzelNjeVZwQU5EV3FSaGJaY05kMTJXS0xPN1BTNzdiUnBZTWFpOHllTzllK2ZwWXAyTHFVTklEN1JzcURlKy9yblAydVBPNkVUbGVIYXYweXBrQVZ6SU5KMnJWNFJwZFBTRFgzTER1QWh1ek5EQ2lOMlBCTUF6RE1Fd3lUREpqc1g1L3FDenJRMlY2ZjkwOTRuVWdNSE1Ib2pTZnk4UzJKSTFpeSt3b1RpRlRpYm1JRWxoekpObHNCVTBTOVNsK0Y3VkxqNkZVZW1lUGJCM3ZyVU5VbkxhamFSdWdXKyszTDF6MVM2cytDaUk2ZEdqSGk3VURWOTJNcTRvOTFuY1ZCREhXZkFSNTFzc1VRQ0RaMXJ6QldOMGZJWWdpcStiTEJDQkJFQVM1MFpRck1nR2dNUTJ0S0FoTmJPcnd6ZG90UEEyQ0M2NU1iRkVJM2RiVDBzaWZ5TENKMUk1cUg1SjJxZ01WRjMwaEg5ZHRJeGFlcEs5RXJDcFZLcFZLcFZLcFZFdVhxUnZXeEw5SE9HZmdScHBUV3BDaWxZVEtPbWc4MW5DeXZRQ3RjNS9XVXZsZCtMNlQ4MFNBaWpvazZWcDdBR2MwbS9kR2wvVkVxdVVidEdsS0w5djJPZ05ES3BYRzlOS2lTMW1xaDJSYnVKYk5mWGZWREYxZFhWMGJIMTdYdXltblZKOWJxc05QcEhId3Z1QnBqSUtsOFdMaFlSUmpYczJHT2N3OERLVkk3a1dnMnFyM2NGTzFxcXBMc2pVMU5UVy9xS2JVUVQwNnN2ZzFLb0hlejVhVFc2Qm1TSWoyRjlXZkpoemlTdWd4UlBjOE0zQTRYTThSaHNmajhjdFNkRHA5MEdPcHQrZGdnZEdFYVFTUlhldGVwS1E4U2xTbFFRM0RGdzdTYmt0eFVjcjV5dkpEMUYxTjVuOVFPNklESzFEWmNwSzE0NUtZS0ZTaVVDZ1VDb1ZDb1g0RWppQ0xHR3pyaVZvaGtLUkVJcEZJSkJLSjVKbm9qclNCTk44N04rOWxnZ0UwRUh3NThFREtWYzNzcXI2eWxMZ3dIR25ibGUySU13VkJrSTV3V3haZmVhT2ExY1pmTUJHNkt0akJtMmhGVXhsUG85Um1CNTF3YVd1OEZUOXZKOUNETFg3ejdUc0ZleTE0NW9BQnU0MG5oSWlsTnNsOHkyMVQ1YVNyclhIQTl3cS8yZWgvUXZnbmhyZk5JTVNqZG1DSHFBQldBemorRSt0RThFaVlWOEs2Zjg0a2pDM2pFWk5LTTlFOFdsdnBOTG5TR1NmZTBuaTAvNFQzd2QyeHYwbmNxVnR3NWx4ZDZpL0gyVW45WUx2OVhDQmhDdTJOM05vQk9BOTYwUXRMZUFtMElmMk41UmJERDVYbjVjaW5tMkIzZHZYeUVkZ2tpQ1RHRW5BQmdpQ0lBakIrTFVGUkZJMzB2RUN2WkhJOHNSRHE2T2pvMktRdkR2ZHowS2ZhWkh0RmtHdkpwK2daMFZoaVl5aDBBUXpEc0l6VjdBcFZNOWNxQWZXVC83UUJ2OTNNT3B6eW4yZEhVeUQ2R1pPVnlMT1JZK2pZUmo5RXVnVWRxRGJreFRDN1h5eitGaWZ0RENOTkVMR3Z5cWxVcXFFS2FHekhMVTRhWTBSekc0REd3YmtYdUgxMDFjdkd1V3BaNE45UGZzejN5Zk04UC9WMkkzRlI1cDlXVUJaL0twV3BWQ3FWU3FWU3FWeHVTeE1vSHFJMUM4WjVYTmV5WDhXRDkxODJ1Mk8ySzB1cTFUMU4rLzF0bWViaGxlMjdwcFBYbzkraGlBa3l0MUNXUWFPaE5ua2hHY3NmaTFQeW0wTWJKK3JXRXF2RVluR014VFozd0tmTEhzS2c3ZWd2SzZtNzlia3c5bEhXZnVXQXZWNnhkVEo1dEZ2ODQ3TEF1cDdqTHc2SXNuTGdMdS9ZWnlYYXNHZzVseHdjSEJ6YUhLM3RRZmgxMzExT1hPVkdsNGFlK0xNRGlFVjVIVHhWd2I2cWxiVS92bmovcUI3VFZ6YkY1UG5rZVo3bmVaNXZ2VUQ5cHBNZnl3YVo4M0Y3UmMyeVlMODJWS3pocjV0ZG9lVk5KRW1TTFFibmloVVhDK3orSUJrT053cmVaS040SUNUaXQxNXlyMVRGblB3OTBVTTJXSWVLUWpkQ2U5eEptY0hLa0x4c2pVOG9nd1U1VysrWXh2a09Zd05mWHM0KzR6aU95NjZUTDBwdUJSRGF2RG5OcFBBQit2VlhhVmpXRzVwdnMrU0czQXRUbG92RGRDeDBhVXFyVXozMml5NmdWcXZWYXJWYUhXdjF1L0o2MEtYTzdEWlY1MHVEWDZmVDZYUTZuVTZuMCtsU3A5Tzk3K05SSm5oK2t5OEd1bks0bzVQd0cxdDFjYXpicnYrQ0M0V3owTFhPT3M3L3dFVUZXbW1UaWREMHpIVElIUGIxWEtJU0V1NmFHdFhzVmZNbXo1ZEZ5V0tqOTBVRW44L243M1BjMXpON3hybks2MDFnNkViM21SZHdQeUVvSVFpQ0lBaUNJbEpPc1Znc0ZvdkY0aFNMeGRWRE9NU3lHODFvcERlaDFUMXVJT0lJUGZaZ1RrdlpQckxxdHJ0dVd2b3dOZ1B6ZkJzSlRuNWFYMnV6WC9UbE8wL1p3MmQxY25FTHhaaW13RWRSYmVMUXozdXNkRkNXNDljejJGR2FtMmNHRERkWmlRZW1TMUpxMDRmNjFWa3lLN0pTNUpjRXVKNmFxcFF2VGhuYk9rdVdMTTN5anhtWldoNVV4Y0RBTUFZblFGMXNlRFNiOGxHZ3k5VGpYSXRZWm12RS85QjFmdTkwT1JVVFZDQ3ZzMXM0OWVHdmFNREVhT2grTitIR1p3TDAybGEwemcvUG5KMVBPblA1Qk1RaTRjRHFnWm9iNFIzcmpYWVJiQmJuTythVzFaMXo1NHgxQUZSTGoxZkZMekkwZHlvTzN3Z2RqMU5qMlU1R1hBeG9JUEowN0JuOFByTVg1eXg3S2JuaVc1TVB5UmdxeEgxTlgzeE82Y3E5WE90M2ZEczBXM29MYW03aEhmVlhCWmtCZFgvN1lhRC9LQnZQZm1rVzJ0OXNlKzZ2eW1hVzE4STBCdS9rWnFvQlJuT29mNndPVHlrSWdpQ1dWVFVhamViK0EvaC9Oek5XRDV2TTVhek91L2M1em1kVDgvWFJ5bkkwdFVCSTFLNmNaVXFsVW5sSENiYWxSeTdQT01yT0xsRVVSU00xMFl4aVNDb0IwWFhSb3hHQ0VvSWdDSkpTeGpSUEhNZHgzQmlUQnNjYlp5eVRrTjNna2E0Z0hmdU4rR2ErVERIRXRvc09ld2x2NEJuUWs1YTFVSi93NjNqRVR0c1V0RVF5L3FUZE5EaHJrTHZldjh3aDhlOE9CRHhKVCtKWVM2REordm12bTNtQ1RibS9rNXVLQSsyWkNRYUR3WHBRWFhocUVnclFiOWl6Q2xqWFpSam5FcEZSOTRQSU1yZE9pR1RGSXNpeUUxNU9MVFEwUnJIbU4vTWdZQzFpYWRNOE9CSmpnSytiSVFUOG9MZldTVEdhNGhMT1JlZ1h5cUF5MXJkYkNmTkNIRHdnUjdzRzAxSGVKVnBYTFpBN2pJTHpqelpabndHRllaaXNQeGM5WkZ1V3hVNzdHNXN0Nkt1SVU4R2lKenRiNzhnZ0FTT2dzY1BSZ1pNRW54ZElUL21uVEQ1MUFrMnZSS2NyVldMZGQwdE0xc0pLd2JpOHJYcEQ5RDBKTVBhQzdVWEY1bjdpM0hkSFROWkpIVXZ6eUFGaysxamFOeUxiK2xEMWxqL1NnU2Z4d09FMkZVS0t3VWgwc3ZUUEZKRTB1OFZUYjV3b2FaUGJGMktjeS90b1ZoR0pSREc2SU9ESDhwSHF4eXBmL2U3ZUUyOXU0bVBBekVWaGhtc1YwRHdLKy8vcCs1NzkxaUtveDhGNU1BeEg3SGluUGRvQ2tqYmxNQU9TRTllYmtmejFnQTc0VGdKTUJBdGVYVEh2N2VaSElwRklKQktKUkNLUlNDUVNsdDRpaFVLaFVDZ1VDb1ZDb1VqMUFjYWRNR2JPLzVzZ2tabXBZbFhnaU50dExYd1NBeGo0VEZ0QWxyei9PTjhhZGVqak00VlhjSEhoYmZiUi9vT2hCZ3ZtdkJuY3dmMW1EVjQ2cllUNzZYM1krc1BNZXZxOW85Rm9OQnFOVGpRYVhacUJlVGt1ZW5TbWYzWm5sb1B2NzBvZGh1YTdybDJkMFdtTEdjSitvemo3cmR2cC9hSnF4dmlVeTRyU3pRQmlPOWZUMjhINm1WTDVodkRKWWVwOGdEdW9URUlaQkp1aDBHR3c3TnBKdUFGVWlMdXJpZlFXMER4ZVlQd2kva2tMdHFXeDcrTHQ1ZER2NzdtTWZJcEFNbzMzcnlBUytZR1VCWElxcHNaMmpHSHhOZ0trMUtpZVVVbHVKdG9EcVlsVXMvMGFhVVJCclNyVnVScW1XdUNyZnBGaWJaNndzTEJTNi9pTkx5c2VWWTd5VThSUy9QeDhSY1NMSnovMktoR0gyL3p2U1hXaXpIZWJJSGJzMkprZFlkTllXV1YxNENvbkpkV3pWS2xDMWZBdUovVXU5ZFBUdXNURFFjbnh2OE92K1ptVGIxdjRacHFUd01CNVMrbTBhTkdpVlhpZzhURzluMFhpOGlJd01UR04rU2t6UU9vcE1aVjBLSDEzTGl5NkNBZ0lDQlordW1ZSTl0VGlSTCtzajdaTWNkbmZoaUZjRklxRDVXaTdtK3BwaHhLNVpyYjljQWRqYlArdU9jaVliVkZKQTRwWGhaNHJvd0lGQlFVRkJRVWxVMUJRN01BVDBPa25RRFh3SFZ4bk9YUUxyckJlNlQ5RU81aUZzaHNYQ2RBK0FzSnNqOEtDaFg5cHhtQzgxdGFmRittOFR3UWo3Q1hnQkV1OG02c0g1czJYYTZOWWF6dlZoR3U4dlZZaElnekt3WDhhdDRDcWtoREs4cnkvRkpRcXRpOUhDaUdSQnUvNWYvanJBaVFYT0xHUFFyaTQzdzVYVlhUOGk3WjhGcDBUcXVyakw2OHh4RElMMGt6U0dCbksva3NiWHFUZVdHOHdHSXhvd1BkSk43OURKb2orN0dDcDVzV2ljazdxamVMeG1OVDlMckpjeERKVFZ6ZXRyYTJ0cmU4Y0xxY2Fib1pSMlhneWZuUjN2T0QxZmJ0bkFpUUFBQURBRkltSWlJaVlpTHpaVTk1MWxJZEVmSFVsRUJaV3Q2bldlLzhUYkEzZ2JncmpNV3NtaE5rdVI0OWdTenNJSUhnQTd3MWtRQm44dFZJbGVHeDRjaGljd3ZOR2Q0bTY3ajB0cnIxQXZQNHU4emdKeHhaT0xreERTOVlvQkNYVzI1UDl0VmxUWlJ3T2h4dCtZdUVxTExkUkxuN2lKS2IwNkNtQXg5UzA0eVc3U3JpazExZkw1QUtDZVRKeGtwQ1FtQVNsNTV1TUIxZXh4ZkhJb3ByVXJRR3UzT1R3Q3BVTmlGY0wzV3N3eUY2dEFIbmR6N2xBUUx4dzNvUTdiUWdFWWdoa3hFd1p3UzRLM09GcldWam1mdklTUGo0Ky9yZUtXU1lUNTNTbnNaNlRPNU4zaklNelIwTTlETHU3ck1oYVNiVjY3NUhWY0VNaVp1RVBiYmlUdVR3a2pTT3JGYWx6UEgwN3JtR01BOXJWeTFDOXRIZDBmSFdzSjduMWMvTXNIOW96ZitPa0crejVmSlprenB3NWM0R2s2UmhHN0NhYlRadjBYRDJqRlY0NStiQ0trL1FZU3VlcGJDL0RYaEFkMFFWNUZDRnVjN0JIaUpoUzJsOTJOd01EZ3hsQWZGd1hCd2lTOUx0TUxacVR5TFBJL0Fya2t5WG01aUJOM0p1VDFvVmtCQUtCUUNpSzh1V3V5OTd4am5lODR4M1A4OW56am5ldEU0TFpYUERSR04xTmFyRDZHTzBoRGV1ZUFtMlhQTEFsMmVTMDNqTHcreG9KMlQrOHVXUXRkQldWenVwcEhRUDhYbXVyTkxGNXVLTUVrYnhxbjR3SC9mY1QrQXhSVmFpSDlOYlU5eDhXY0pROVJQMnVwcmluaVhBYjBKVGhkSFlPU21pSU43YUFlZEpnWjZQYVp6MkJqT2lyRDZLbFE1aE90Q2JkMmF1WjlOeHhTcFdwZC8rTzdnSWluSUQ5MWdNYVNzbHdZQUdDa1NZK2xSUlB3Y09kQ0VXbERBQ1FjVmt0SWF5VTFVdnBYK1p0SmYzSG9aWkNkMUswa3hIa1BoWkNmQmRrZXk5dEdvWEd4Q0hXdU01Rlk4bHlWUkZ4NUpyTm9ScVpKdklUL05LOFVXYXlETEJES3E5aFZBUnBjR3F1RFdleDBzbjBtQzRCRG5xOHRHRlpqT3pGRnVtTXpaejJCQ2dVQ3FWcE9tdW9vVmlaUUdRQ2dVQWdBQURhZ1lMNElIV2pwZ1BFdmxtNi81UVZaZDJqT1JUdzNUNmswNUk2T1oxZlQ3dHhkVlJwMWZIcWswNnFyVlFIb21nZWdrTGgxN0puZ2hXYjFPdkhhUzhlOVJrbUpxWXhNZjE2RFZhbmRUN29vM0Y0dUExT0piQllhRVVRbTdTRHRJOWVrb0Y5TWpDcEorcUJWTUZxcUt5Z29LQ2dLSXE1RUFPWEI3WU9uRE51c0RDOUE5V2lSblM3S1Zndm5jQmpLd1dIMjQ0TEVSdGpmZEtldy9ySEdUNC9ROXhLWmVzY0dkekFaM1M1cEpDVGs1UGZSUDRaa1B1NmU2d29PWEpVdGtLaGRVWWFrSmNvQS9wYU9aczV6cnNlUXBkMWRIUjBkQnpIY1JGNFAyUGJzanZ2bWgzYlJnTnRKYncyMVl0cXZRcEFmcGJjNXdkdkN6QUtDcXNCOTFMa1QvY0dKeVNieUhNTUhGZEJPdjBXUkg3MUtyOTEzL0ZNNjFPUWxLbHliaHZ5dWgzMElLNDFpbmZ5Vkk0d1ZzN21vK0g0VWRkNUEzd1NtV2ozYWVEdWFTU21kVDhxS2oxNzFBa1c4UWhNQ0tEVEcyQUxNQWFJZnY5Zis3THROY2VnRHgvMFVjaG5QRHkyeEhiZTVxZkVlOUpMNHQ3allTenFKeU5vZVVEZlUwODRDejh6RzI2NG9jZzRGSFFpRFl2SXlNaXJjbFcvOTc0MWFFZ2htZmtNZStLaHhQQ201bWt0Nld0SHZPdjF6MHY1RUJNVG14ZytMNUwwZ1VoMTYvMU5CZWs4V0xVVEVCQVEyTHRVbklCNGsrMEs0dW5YTVVnSTJXYTNKOXpUd2dNUFZ3N0hQallOcENKcWZ6cDk3Q0hoUFU4WVMyMHBoVzRuNWRMeFcxRWdtY2JyMnRqQ1hOZC94clFqaERxRndCZGdUYTFOSS8xcE8zMisyektTMlVwWUdLdThwaVVUTXRVdDc3TGhoZ2I1MXZMaTNzZ2I3ckhRN2RoMmthOVRoU1k0Q05jU1hzbS9vdkZlTXV5bFBkQkw4SytBSlpicG5NaFl4c2xQYUNxWUtyMXpnZ1NaRlRVU3J2QktqaklwMzNEdUZyWVZ5aXlSNHBhM0NMVmVrSE5ncU1UMkJyWFQ2b1VtREY5Mk9LOVNuMVVNTkR5cHp0K3M1VjVNY25KeWNpc1VLcjVrZlVLM2pSc3lSQ1h1TldlcSttK1hEeDJHVUVjSlk1eG1QWTROTnRFWG1FeGpuUzVxWXNNTTI2TzhqdTg4aVZ1b1Y0VTV4SllIem5vVjliZXhSdGlOSjk3V0o4T3JNWnZQWURBWURBYURaUXdHQzJRMEZjYXRuZmd5WGlxVkV5ZE81blJTT2hsOW1mam9SNCtsL3I2U1M4ZExReDFidzFQWjNWZ204b3M2eWUwbDBpRWhJU0VoSVNISkVwSXB3Sjc1MzcxYyszOXpnZHZxN3J4aGxtUGR0QlUyNy9aalZ6R3lMZlZsWVd5d3YzcHlURlM0NE9DenAxT1IydTVIbFZTQ1ArWGloc2VJUnhEUGlWVnVQT3BiV3NFanE1QnQ4dEpoRnZlU2ZMODFaa21HcjRmMjQzRENxSXVXRHRueHQ0blB5K0RJRmxwTzM3ZXpVcVpMRWtoS1lna1dUYmlsRkMxL1hjaW9XUHVsVVRCSjY0dUdiSEpIRkEyM2V2cjhBRjFuVFBrTVUwcGYxRGhGQWthQlVKTHAwUEo2OGROVVJETm5WQ0xHTlVZdmhCN3cyRytEdkYwWjFlSGlyWkkvRW1obGFqbUR2aDJFZkpqeklZcU5FWHVMYVIvN3FIdWJOVloxWHBsdkhsa1F4RTZUR2FCOXpnR1RIRzQwSk5HOW1yWFZhVjM3K0FpUEIxZy9FRzRJNjJuSG5DM050YmYxZXRKRlpCTjNWaGU0T0pteC9jeGRWUTYvczBXNi85WWNyckl6SHBQcFFabEdYVG9Kb1VyclBkcVB2OXVQazg2UUVDeWFvNS80dDN1R3hOQWIvVEFKY2M2M01iMXQ0WE5uOC9LM2czTzFtcUZUc09VbWtsQ2hiUFNzWW02STdDZFpuZlBldzUyc3hsN3lhN3FLL0I3QUI0SE5RbWt2NWRMMWc1SFdBcytFVDZ5VlhMN202NlpWWHNuU3d6TGdkaDB4U0tUcHIzUmNOaDNMTUxBZk1ORmlzL0F1Mno2ZUpwZGF2ejhGdGh3SkJFeWNBdVFWVzlyWGUvSTEvd1J1L3ExZkl4YkM3YmNSUHl3czkvN1hXMFFCU09EWFUwbm55d3ZueVpNblR6bTU0Mjgzd2NtZXZXSkgxQ3IvUTA4RTJWeDNEQnFOUnFQUjZFeWowWmJzNHd4SUxmRjM4M1dRc0dZckt5c3JLeXNySzZzQXgvTEJhbjdHanVKZ2RtenFiUGJJNndoM2Z3UHZZMkJZWndOWHREVzQxalhJa1dVcWFWMzdLV3pmTGNteVdTYnBKU242MzNNVi9OcXEvVkpteEo1TU5aQ2ladGhUSE5DK08rZ01yTzMrNWtlTmpQQStwcTQ1L3lCVC9qZThXeGZWdjVLUzloNjFJeXR0Q3hoUVFIRlpINHJMMWJBTUJyTmtXL0xFc2NiQzNzbmpieWhkaFkyMWswd09aZjB1dXVkUUxPNCtaZnl1cXc3VWVMbXN4ZjYyQ2NGWDdLY0NmNFIwNWllWkZlNC9oNFBGc1dYdDdaNzBMcGVpTm9ZQS83NGlNUVdvZEVZYURzdURjZ3BDY3BRUFpubkJsL0tyWG1WRkJ6ZUFGTnhyL1N0RmJ3UkFSQURTTTd3VjY4eE4rUDhhSGJaakd2LzhlT2lHamVHVTdlMWZhWHl5WmJEbFg4bmpXUS8zVFdLdjJIWVlYbTZlQ1lUTXBCNG5RenVUdm16RzJDSkJjNEx2cE1vdEpoTVppZUZKbHRPSzJNSjByZ2RPR3EreTZvQ2JUWExmZk85NUliR1V5SkZYczJaa2pEN3ZnelBEWURBWURBYURNd3dHRDFMdmliWkxhMFZWK2Jxd3VRcnYvbG9DYjRKMi9GSUtvQ2IvZzBEcjlyTDZMSGYvVG9KV3FpK0JzRGR3OG1JWFkyQnp6M25XWFluVjZZOXFJKzZIeGtVSEJHVnk1T2FSSDVQRmFUU1N4ZW95dldNdzRKZ1kwdkx1TENpSjgzcDAxeTlsRUdhZnQ2cFUvdlA5aHJKSlZtRzZUaDRzMDdCQ1o4dUdlS1FFU3pweVM2cGRKSHlnQytjblJmeFBLbG9aWm9MeWRzaTFqTnlEUTRRUEhRSjRkY0VKNlVLZ09FNDRSQlQzV09LSjJhMEtIcFhFaTdzSDhQSnRBQ2pTaDhuT0JRekRuV0JXcHNmdW9vanRFQzI5REFSUlAzWFltVTJuR3RXSXREZXRSTnVicEhhdVlmdklBbjRFZVI4NnZXYUY5UWpPa0toZmtSOTJWVnllUng0UXlWMVJFeWozckwwdHZRRHBqbDQ5SlRkemowZDhsV1lTbW83VXlMNGVJMkN2SklCQUg1NVhBOFRMTFpFc2YxaUJVZnU0MC9KNUM2SGNDZnFEMHBZenJwaFV6OG9ta1VJbkRjNmJueS92VW9CM2h3QlF0ZVVPSTJneGgrdDlhQzBRa0ZyZkhJR1loTWpGOG9UVytNMExDMFpKWTJpeUJZaUlNQXpEa3NaNTl4Y0FBSUlnaUFSUWRPTmJjUmJGVFAxV2dqVm05bEp4NTFKOER1VmNWcDR2VGQrNTh6VHFIMHZWMnJUajVNd0ZyTFZXTHBmTDA0N3ZRbWNCWm1hU0pNbGtqdWE2M3VldjJ4TkpLYWZDdWU5Z01rako5a2lXKzBlNUQwY0JVelRaRG1hK0Z4bktYT0o5V0txN3hwUEkzV0xvL0ZRdm9PVUpjOUF4QWRHWEtXYTNVUFV0bVA5b0p2UjdYSlNjZ1FFeDJhdU9WK2JYZ25FYkFuNjU2aGdFaHZwVkIwVkpvdGVpTkhPSlVQSk9zYkd4c1FtQ3lBSWIyL1lMM3ppNUlPbElnV25XS1JEdkRaVUFPc0N2K01MVHphMXRVZ2F6SUF3Z0pnWFAxODNqa0tHNlk4ZU9IVHQyN05obE8zYnNCc2dnWENDc1JwaXJ3U1ZjRGppU0xzTytRUTZVZ1dXYXorcWZ4bk9WR2pFdWxOWlVlcExJV2RKdUdiT0N5VW5NMDVFQTY2MHFHU1hOMWhxOCtieVpmR01hR2dwcmY0OGFoUUNoVnA1NjRvZ1NOUE44S3NCZ01CZzV1M1VUMjdRZ3l4aW0rNzd4S0Rlc1hOUnBTYVV5MUpTSmZxL1BHbDFlaE1qZGVJYWNPSlVVZzRhWmRZb0pvSXJTT254RWdhamxOcXgvc2FSbml1dS91bHRrVzJsTTV6U0xZaE5TUDZ1UlhlZkxxa2svTWIyWXM4Y1EzVWkrUWVCdkZySUV3emdEQy9keHhwbkNob3JuZTNzbisyelBuajE3OXV6WnMyZHZwOGhMREdkY0hqb1dkd3dENE1GaWQvbHJBQUFBS01aYU5mbWpxYVJZeitsVVltZ09OTFcrSEl2T25NdjNoc3drRW9sRVlveXgvWU5haXkzWWtuR3pFdmpsNTB4YndXQXdHRUlvRXd5MlYxUjFTRnlzUWtqQmJvTjZJallSVUpiMUhZYkhnRG5wUkliNXNHYjl5cjdOVkdBODFMRFFsa3gySjUxQTc2dHlWUU1LcEZzT3pkQnY0ampFTlM1VnF3ZTdIb00vTjFRL25DSlZOR0JzQXF1d1JXL1RBbUF4dlpXcFlmZ2hLWCtydklxVW4zYUtkNHFKVkhqeXNyTUZKd09nK282VE0wWHhEaE9iUERreWNBdXVFem1HTitTcS9tTjRTV21GOWxrVGlGNHA2VE9QUXZpYktZeUREbGR1di9TWHRER0JlaG1sOG9Na0RMdERYdzBMeDJKSVBXYVhTbVI5L1AxVmlUc0J5RTdidmVpa2FacW1hWnFtYVpxbTZhdjJEUDZmeC9GZFZsN2Z1TWphQldReW1Vd21rOGxTSnBPdHVCTG5QNFNtTWhLU2E4d1phL3dOcVZRcVhWVEVvcWg4WmtBWnpOdXVPVEptQXI1RW1nQXdCR0MvdWVxTVFWbVhPRWZZRUJRK2lZRjQ4K0wyNXhKUDdmRjlDdFMrVTR5QSsyZ1U1OUVXQjN6YnFtbC9tTmU3NDhBbXEzMVdwakFKd2VVYkVoQVFFTWlzL0tpV0d5aFRZdUI3Y3Z6cTQzYWdWOU13dEhjNEttMXpIcGE4bXJoVmwvTnBqZ2Q0SFlRRnZRNnJsOHVnZ3hoUmtZTXJwVmdGN1BPaEYweW03aEVvNjdLaXJjT0d0ckg1U05mV2dqWUNFcmdQanlPa2JpTTk2UGs2WDRKK01qRHQzZGI5M1FYSUJuYSt4RS9PMFk5SFUyMzY4OU9iY1JQaUlhZnRhNk55aWFyeVhjT3JzT0xEdWlkZVFONlJUOUFWVG5BZDVlUkprdEhudUlEUDljbWpTamhQMS9nc244SlJWRkQrWWhCQkwyUlR0Qzd4dStRTzBDWkVvajIraHIzbmlWRWp1SlY3S1hGOGV1UDYvNjJyanNJR0hNS0ZwdnVoVnhnTUJrT1I5Vzk2UFp0bzNRdlJwWm83UTRtd3RHOTNjOXJVYXJWYXJWYXJqUzJSWnJQWmJEYWJ6V2sybTBjcSswTEUvWHFNclMwU2V6dmtjSG1XMStqb01uc2hZYWlCMy83dDhMcklobWRPcGVVSUt0S1ZTQ1NTMHJ1Y1I2RUI0ZkNpd3huVklHSVh5bjBxZDBpeE9NVmpPL1FDWXJFNHhpcSsrRHhNN1Qvek1zaEhqd0dNRUFuMXZqVWx4eHRmamlWMllmWGFDa01qa0JHYW5JaXdBQzkrNERiakkwL0lBL3JuRjZHeHNHd3dPclU5cGpYNHY2V1hDMStXNzh5b3VTRWtBTXdML1ZGYUYxVU1sUzhDVEtucEVDUmVUUnRWQjNSbExadFR6ZXBXbjNEMUl0enF6cGdrRmJyZS9hV0NQazAvUzZPUk93OVpieFZiQmZUWUIwb1VrWTlNRXh3MGdhM1hua2tEK0t0VzRIdHdqNXN6ejRQUGsyWnQ5cUEzWXlIc0x2MkNBRWd4dlRWcGMzdGRycGNCOW8yOU5rWGRBSTBsRzJIeVM4aDJBNk1iSU9RMmtaTDBpYld6U2swVWo0Z3BsYVV5cGhyamlUdnFSYmRmR3hNVEU1UDhOZ3ZCaXdjZ0R5c3BCd3RPVHJUem5SY2pmNTI3MmYwREIzMTlCdWI3QzVKdlpXRVdFaFlqSnUrV2lud0YxN0J5dmVMS0RvOFFUTUhwNlQ2OWExdVY2VDZpZSswc04wbU91SDF0V2tmK0wxWVd0MVNiNi9ZRWpVWWI3V21ROEhkZlBmOElaM3FTb0o4ZWpzQzFrb1ZTNTRYTlhuSlcyVWxHdFNBUDVleldPb0ZXQ2RmT1AxSDZWS0hFd2k0VE5LVW9WRFcxZy9iUXpKRlMrbWswWXhIRldnT1grZmVPZHk5Z0V0ZlZMWnlITmtGQVlHRXQySDZXV2NUNVVnVlpzb1dGaFlXRmhZV0ZwUWlmbTVzT0pscTBrc3FQc1JKNkUxYjlUZ0F3NUxOVmdmelFpSDVPaTl6WGVWcUFjTkFyWnNaRzZPallMaFR3K25aVGpxcGJtZUN6WFpUcEdCazNwcDV6NjF0MmhBTjZXRGpLRFV2UXRubVVpdnVodnVrdmdTSUxrck1MbkNoWmRqTS9XeEFRdWhVV2JrZElEakdodHBDWXkxY2s5WTRXL2xuNUtiMW9RSno2K1ZUeGJFRTdKTTloN2IxYkhldEhOeWdMeDFTNjdFS3BTbmMyOXZtSVM3ZXlzN1hkV2pCVmV1QnVPd214Q3U4YmRTUFNJcVJma1J6NjJ0SDFMaisvSHRsMmN0RjRjUEEvZUV6OGQvYlkrbjEycHVCaTRuN2VaQ0NtSU1iVzd5R2VLazRWcHpKK2FVNTBmTlhwRmZqdEFKd2M2SFMxNStwbFNuZVpoWHpsSzEvNUtvM1NkL3J6NCt3OWdiSGMwcDhVOGpwaUVtMytMYmY0eGplKzhZMXZmT05iOW8xdmZDdE1HM1ZhOXU0UU9aenl0ZFUza2JKdWdTOWx3TEE0dWJmTy9ldkI0L0Y0UEI2ZmVYenAyL3AzM0RtV2hja3ZEVjVNMzlwUGExaU9JMEVWM05MNjR0TTBLKy9uWGhYdXk3ck9Wc1REam5OdENIN0lFT1FPbHlVczNrOU1WNWQxK1hRenlmaFpBMXNGZWFTSTB6d3NydUhOcVkvSUxudzhkMm9DNGxReFdlR2VYVmVCV3pVY3hxcXBRRFI0dktsQUlDeDhzd1UxdWExTmRVbHFhdVhPb2dWUDFWY21iL2JZcVlFQUNOb0VZcnU2cldzV3BKaURBVzU4eVBlNDZRR0x5TkpJR1QxVzlvZHM0cHRVdmJMK21ubk9XbDArK09ERGZIQkxmdnFKVDNYTzJUaTZxbi8yTC9TNnAzUzN4cXNXZkQ4NHdhbmNDVmFGcjFXbnR1cWlqRlc4T01CQ3dRSUdyL1l0YnV6V2dpaHBxc21xYkk3aHRyTWdRdXZrOVZEQzVsTTJNVEV4TVRFeE1XVVRFNU8xSjIrY1NSWjYzaFFVVGRiUTBORFEwTkRRckRhZzhiNjI3WVMrYUt4NUtSelhlQ3h0Qk5ObHJucndLdEorSjUrK2VsVFlTYmI2VVdRM1A1NHd4K3pJa1NOSGpodzVjalRIbTJleWpkK1o0bkh3SW9VUnA1SDFYWGtVYVlDVUJ1Tm1mWXlodDk2VjZNLzNVeEVPOEFPUmNQazlYTHF1dWErSy9XRUlVSkJqTTZkOUprNFFHQVV6bTg0ajBSTXhveWZZOHlQL3p2aWo2UmdqUmtsYTMzN2llQkNiMkJaRm9Zc3k4bGkxM2QxVU9NSmtWOGU0Z2tud0J0d1MzOHFXVUY1anh3R1ExQTRUaFVsUkppYUV1SGxRRWJPRjRMZDFrVVNTa1MwYkVtNFNlcFRoZ0NkbUFJQUVpazFBZVhNK1YxaEErUFgvSk9kLy8zKzJadmZzaitZUDF2NDV1cFArdm56bFpTREN5SThYOStkZUsrYi8rWCsyWm4vSTd1YVBOdkorSkJYU1E1Mm1ITkZPRUtGbVNQSzY0ZFdrdFhxTldOeEhaOTR5ZFZZNzRIQTRIQTZIWnh3T0Z4TlBWZjBFRmo5SkEvNnV6dFdWWGd0Z1h5ME1ENEhFTHE3Y0Izd2hRQTJ1MDBGNmkvck5UeTh4WXFnZHFGR3JEK1FzTlhXUm15dzZDcDlZZW8rU2praFhHWEdGOFVqVWxqTU91YXIxMVk3bGp0RENQWDQzOS9MNDMzeUNMVW0xN1oreFJTQlFNZ0F6ZGNmT0diYWszRkQrMVZWMmhoVldEcG03VjR6RDRYQTRIQzV6dU5UeHBYQ00vSVZwMHpLVG1jeGtKak9ZWUtKLzlHUjRHbFlaNVVyNSs0VnYyektmK2N4blB2UEduN1FNYjhhcnk4VWtIYjVick5VN3ZHUjliUVZLdE43aG1Gckx0YmM4eTBrVUNvVkNvVkNaUXFGay9WUFZQc2xVMHN2ZURHbEhCRHRweFphdGFWK0c3cFI4TlRwL21kM04ycnJCeXFuQnpJcGloZUJBZ0lCQzcrU2lhR2I2YmVsdzhjNHJ5SFl3Y0pIakZDL3FXelI1eHdiU3RpQkVhcEc5T29hSkg3ODB1NS9taG5lTlFJVTdSS0R0aU83WW5aSHU2Uk5VRnBaeFlLa1hwQVdvU3BNVEdJeGMzNndxcUxDL3FWVWdMNktybENJNzdwcHoxOWVwNzVvZm1FUmVsc0FrbHN0RnJMaGFTUTZsRHJ3b3JUUnJncnkxTmwwSHVSRmRZUU1CU0pNQUNWeWs5dWttbTZTZngyTVlvVFdrK3VBMWdTNGdXM2ZDQVJSZXBDYTN4UXVXOHI2eTZaOVJXdTBJUTZKVVpuY2xNYWVWRmdxRlFxRlFhRWFoVVB1M0V6WFMxUmQzRlprUVlnRFNNZTVnd2x0S1gxSk0yQk1Nc0F6OEZINkF5bHBXcko0NVJkdWxJV2JlN3Zlc0pMYVkzSlp4TEpLb1M2UmVpREVod2dBUjZsVkZ1ZHVLSk9IU3JabGFHcW82K0lnaWxtTUYremhOOWJlWHJjZDY2dzQxNkJhNGFSY1ZzVmQ0QUlYT3k0aGgwckZCdlE0aHdGRVRxMjJEYXdxVTBHZTFXbEtmQUtGVUx0a0NlTDBPYkRNdW1FMVpHQTlrSlRaOUJMZXB6YWlDK255RHUxa21yVlFodGFaMk1KeHg2dnFGQU1kVGlkYUx4VVh2Q1pGRGFiSkVwdnVZUVBRTFhtU3M1dmUxMWQ2YlFiWUxpRXRVV2RjNjB4SFVLNE1yYTYyTzY2cGFGVm5QRlZnb1M3dUlycTM5YmczeHQwRWtINy83cTBmK3BsS3hYZnc2Y3g1cTA5TFMwamFnZjlDT1N5UENzb0dCZ1lHQmdZRWhHeGdZMnBhdVYzSk11OG4xV1RaZ2lybDkxVmdzRm92RllqT0x4YjZTU09EUCt2TnVpUXg2VWVGMGtEM2pEc3Q3dGR1c09XZ0xoMmt6WGhLOEVycmpaSzZSREszWStleWxDOStiRTFUTDJjbVl2aHdwTkJqYnFCZmY3R1c2WG9QMnVFU0VGcEhkUzdnVHhYa2lBem1iZnR5cmlTOEpaS1ZLQkpYR2JLejJ3b2FZMkxqTzRNa2tMQjRmazBRWjlhTnc3dEh5OHF2T3pKeUpZU2FsTmg3ek12RDl1cUtYclhNQ2JyaWt2Q1o5ZHd4d1dsaUJ1aUNrU0RNZ0JYMjU1U0l2RE04THN5VitGd0FiUTJ4c0hNVU15V0hsWU5mRGlINE9RZ0Z4RmlsenVNemhjRGdjRG9lclhIRElvNE5Oc09aaGRSMFFtNm9UdElsK2twdnBlTThtK1V1YloxTllXSlI5dVJVTmsySXlXYWhnYW9CQ1FXTzh6dmNnOHFwQXoyaXpEYTFZdVZTMUtzTk5pa21CTDU4NmxrdU5TVTNoRlBqNjBRUFFvNk9FTDR3L01wYWJEaDlRZnBIMzZ2MFBkdnh1K1MzWmJ0NU9nR1YzaDM0Ly9KcythV3hGYkxQZm1FS2hVQ2dBUUFhVVZ3c0RzWTREU1cvZnR5NFdCVGs2SlhMZHE4VUZtVnhtbXkvSUUra3lyaVFYT2JONVY3dnJNNGxrMDd3K1EycHFhbW9FUVRLaHBpNDZTc01CcVdnaE1lSzBWUDVJRzl6VU1QOVdCcFdCZGxvdTRSVzVXVXhqUGRSUmF2aHNoc3VsNVRCN3Zyd1AycDBxNk5iamFtRVIzU3dXRUt0Q3dPQ0YxZUEwbmtxdVU2T1pidGtzaXZDRXdLQmJCT2dmUnZ3eHZjWkhFVnFNOWlxb284V01JYkg4aG9jK25iUTFTeHlaUjl4MmNycy9acThvd0toK3h0clgybTVTbHJIckhkOE5UWWRWbXhQWE9NWXFLYm1wa1hhNTRjcEw2VXVmQ0lHb0xGSmhTSDhmd2pHTE9DaldFMUUrbFB3bDVKTmw3dldDVlA5V1hKbGxxYTRWbTRqd09aalVPdC9XaDMwNFpDTTZLUW5xZ3JUM1R3QVFVZ1dwOUMvVlh2K3RHNTEweDkzdDFncmpIYmV5bmxMY0ZvUUZJZUswcUtDUTN5WUF6aVNsRy9qcGVhU3JOc3JyMWdjbGRtVFNLSzZoU0FCWWRwR3pVYTZIbG1BOURvZDhOUVlYN1NNUjFOZEpuMXloL0tXS25FS0hlNTRVS0JIQ0txMW9VTVdxOEo0aFU2NkdsZlIxdzE1cDhEY1ZpdkNjS1o4OG14MzBUaFJLZzVXYkl5eXVpNHVITGhXdlEydklJWVdKNFZjdEltamFsd3VQSzhza0oyL0cxZ3BZQmxrdGllN09NcDNCSTZnNXBSK3AxRmNCZEZCTXliZHdHSCs2ME1iK0FUWlhSUFR5VEhSZjlUenhvRkk4aXFhLzNvSy9nMkRRUWJESFU4VWt4SFB4Y2Ztc0NzSkVDQlRSSFhPZE5GMktBb2F1eTZWcjhqTGxPV3VlZWF2aXdmWmZUWDBtUmtlOWZZM2tONEpYQnJ5TTIzNURzQTF0QVRVdUlDVE81V251aVJpSHc1M1JuU2IwR2hyUGlJaVhVZERsUktpcGlkMFNTZGlXbXR3eEZRcFQ2SnppbCt5MGllaDRtSVltK2xhOTd5bzZ5ME9NMFM1QVRrNmU1ZVRrUHhCUmtCS0xlTEZwR2xvaFlDcVhxMGFWWnF5cjROOVFlLzhEWFFVVlo2SytDaTJ0U1FUQ0dFajlNSWlYU2tJaXBBQ1FTTXRBSHJOaXZrclZqRWx1RzZVOU5DTVFPazRmZU1DMnVRbzY1YXVibTNGOUMwbEtEeXJxczRIZ3YwRFI4N0cwaGlxb0lPYklzWXJCU3NtMVhEOHNxYjBuMUtnZm9OUzE3bU1xN2ppY3NaVVQ1aFNVTm1CcHZLMzlNdWJpTU91alVBU0NqYzFDWVJMQ1JTeXJtNFIrSHVVUFVSWVJFUkVSRVJFUm1XZzFONFpVZWxYOWtWV0VYRHVwQkExeDdvU01rb3IvQ1JSdFFhN1hFdmZEWXNTTlJFYjJNNkR4OFlOVHBRZkNTOVhSTWNOOHZwbU9qczUwZEUvcjdwcGdueEJjVEYrWGgzNVN3eHF0RXgySmFKWHVvZjJ1QVZkbG9WZnJFeGdycm8rOHJKQ0s2OFJnTUdrM3REeTJUV3pMcVJaZHdTeGJFMGJnWmNoZjJLSzRrY2xqK3BJb2ZNTWNNeEd6WXFXazd1S1U2TS9WaEgwVXgwNGRUeFVURWQ3NlZ1OFR2OTN0U3liVXBtbW1WZTYyWHNuTVZmWGRvYXpHdC9LV2NTNEhpcmRzY2NMUXhrNUtXeHIySC9zS2NFbWhwYmNtN01zTUU3MytFeWdyZm9WU1RpVVAwdUxObnJzelNKU2hyV1RhTUcwN3ZvSDVoUm9xY1I2bHVrZTJZM3ZaSHZBOTZrQXdvZ1Ixd0pQYVpxZU0rZ2JicjdGSE8wSXdmRFBacGdPU2hzM0lvaE5hN05yNncrY1dJWVY3Zjl3RjlTTFJQNlpaVU52VGwzNkZHNzZGRHlYL3g2K3d0VEZLOS95dXhCK2ZVUS9COUlZeThNRlkzb3NZMThMN0kwenJBdDNMcytETW1iTTVvM25YcmhzZDBsU0NWcEN0UG01N2dOSXZYeGM4UHU5SjlTbDhqQVFnNFJabXVDNk1aMm1MRFM1dTQwVklsdTl3cWFQNDJrWC9pNkVyMUdjRjErUkdnU0U3Y1lnWXNvTjBmVkZnTnhSYkEzWFp1c1BTVG16ZVBIMy9wS21LdDE4MG9sNHZxb2V5cGVQbTdvSXBabWpGb2N6R3lmZDZ2SWR0YTlEd0paMkFnV3VGQ3NrSm9Fc2wxaSt2SUJRS2hab1JxTksrRW5zSUN3UUNYeklnTzZsUkhTS1BYcUxjZUVpNFhtMzQ2TTB3eVkzRjNUY1p6TVlNaENhbjZhQzRwVEdCMUJGdTRhUTgrSGlDZFFvcWVaSGR3WG5peGpxQk5OYjlHMnAvd1M5LzN0ZG5JdVlXNXJkcFRCZ3F6b3pCcTJ0QWFrZlVWeExHaGpUS1k4eDBrbXpoWjFhQytkSDkvVWdrSDh5SkYvT09aZGVNcFdCaHZQUE91M25IYnZnUlpJYjk1VUlUMzgxZkswNkl4cVpqbjZkMHppeTM0U2Zpa2ZmV2VIMDd3N2l6eVcrcVVGcU9xS2lveXVybFRveXRDdlBOSEoxZVlzQUQ4T3ZvZi9ZTzFpUjJLQXlOb2VERlJBT2gyeVdBV3g5UWQ0RUJORGlDdFNEdXg0VHhhb3dxSXhkcWxtcURjL3RYUVh4cndYNlFpRVJxbkk4TkxSVFBMOVpEMHVzK1JybHlzN21hZDRvK042dnI4NkxTTi9XMC9lN3M0QlJ3ZXc2UXY0WGkrcjlrcjhSUHBuWHN5L09JK2ptTHZ6MGRmd2tySVU5TTRydHAycGVRSWhvSzlMR25rSGlHS1JuUnUzL0lNK0djVEJlZURqNFhuVGRORit4Z2luT1NudTI3UlNDc1NITTNEUzRMZTZJdEdpYjJIWmF6cGo5c2xnUHZNRHhFdllEdnRaVk0xZ0lZeXpzczk5S2dGYU1kVEJrRU9QUlVVMkQ4UW91b2tVdGhCblJiUDRwMWJEK2t1SVN1QVhtUC96dCs4MWJJK2NmVDMvbHN2SURKSHBLd2liWXN2T1NZOURpOFZhL1YyV3JFeG1RRjlBaEpzUDZtcXBUVXNuVmNuNzE4QWpLOXlYdFI1bytuZnlSZkgzTjZhOVNVTlRuNHd5Y05GcnBkTC85NkxzcC9UeklPa0puNHJBNlJPL2MzZ3F3MzR6d2YrOWg0eWNzME5WQ2VTanFxa1B4dmZkZ3NGWUhObFBKUk9sblNaL3R6alZHOFFiVnMySjRaUER3OHZNL0dDcHRpbWpUT1c5UnZLdjRuQlVocDByL1RNUmpIVzZteFcrb09mdTRJYVRLRmI0Q1BvRTk3SnZsNDJTV01LeDlqbmhNMzJaUGlZYktpZkpORGo4bDlmaXFnL29NaW5XUWlkZDZBeWtVNm12UWJsUFllLzVaREdoZW5Ud3JSaTJlNFdLQVBSSm9jV3BxUWtJam90M0RFZURRa1hZZE9XeWp1bjA5UXNzclZVcFZtRElvOVY4ZjE4NG44WEFxWVh6UmV1THh6SG1BeEh5cWR6R1E2ZXR3TTdhWkNlK0hHdlc0Z2lZcXErQlhITnZIRmZsZklzbG1tanV0WEUvcVZKNFl1VXNESnJ6OTI2QS9ORDlWR0Z6OGJZREVmMGoyNXVtRDBYY2t5MnhweHZKVnZ0emR6Um5xd25uYXBmM2hHNXNkVDVHMHNOVnkyU0ZuYTlKY016anl6T0ViUlE4S0NJYjd1NzYxY0NUM2NnN0d1UDVWN0t5R2RtY3hLWlNqRUZ1SUNRc2gyNko2SUR2Z3kzaHVSMWcxaTZ3L281eFIxS01TTzFRYzgrdFpBMmtIdjVKbnVzNTkxYlphcUM0ZXMvc012YmFLRWt3djRkbXRrZWZ3eStNcTBFRWtqeDhhdy85L3ZLREVUSVlXR09NYWNhTm0xVmxjNzIzazY3eUlra3NydDh5ZGxYRzFxS3dYRXRnb3lTamxlcnF4NTAzYnpIL2dRQk1scVFFdUkxeHpzRlhzQjNWSzh2SjVndnFHOUduNFZFN2FtNTVrMFo5T0JuWmdVYmh2U2VUSTFocm5XRVordkE4SlRFdXRmUEtNQU9pMVZyMDhZTHMzMUZFU1UzQk85U2JkcG1yYnZzcnhuQmkyd1hQUWF3NmdZZGlyeEVNb0pvcEc5eG5MRGdDaVdpYlZMamRsZG4xckZhZ2FFVnNDVG90amZCZFRkbityZGxiNVpSQ01DQVFKQmxFSElaeWU1aGNBWDVmZjBtV3Zkc3NPNy83RHRqQ2lkVkpwMVgrY2QyVFh5UFQwci8rM3dyRklKRVpQdmpBUWtvcStXNTBoU2xkc3Z2Wjc3R2lMWE1uWDVJVDgrZlVsdWFDK0ZHakJJZ2cydVY4NHprbngyL1cvcEdMR3hyekN1c2tobXJRQnkrdytWWXdmbGVnSmxNM09hVzU0UCs2ZVhrN0VtZG1XNms4NmkxcUZuVFZLVmZOTCtORUVhYzRabTVzZHBPbDNTSEhpazJLZzJERUVqYmdoZExmcXprY01tUkM3TkpJSnJnRVF4NWY0VHpielJ2SnltcWtKRGRrQ1ZaTEcxSFFTREJpU25uY1l0UFQ4WldMZnhET091TjJkZEp2aWx4blVQUlZhY1VSMHRSSTNhc1JZSUhkUGc4dTlEOU1hR2N2bktscFFLZStqcXlhK0VxMHpSZlBTc1h3V0V4M2xmZFNhKzVSUHVVRTQ4YlBYa2U5UnVuOGVlZHFDVWN0WHIrMG1zbS9DVUtqQjQyaytPNzFpcVhxL1FYSnFycVRuVWpIU09mamkwMjJ0bjROL3U2a2t1cEtJS2swclB5SWRMckl3SVJ2UkttbXZHSE9SRG1IMWh0Y1I4V2JQL1BNVDE1SnluTVp6eU5NODVHZ0ppQzJlNFh0NlpGOXBCSm9Kc2pwYWlrZU5vOTRlRHlTcXBVT3pZclhLQ1drOUlWWWJaR1ZaRWpoejFmeDZlZW1JSDdwem5MWnlyV1g1WVAxV3U1UEpjY1VuV2JkL3NJdmkzR2lsWE1jd3JyMDdGc0VlK00wcVI1RFl2OWFwSUJwT0pDeStaY3pmSk1uYjlVT0U0Y1ZJeVdRY3hsM2puOUhhL0dNSk1YL0VRK3dvTHdBN0dxQUlPZWZKNUU1RC9iMWdFYWxyWm40dmE3YjZibmxvYVhxOXdYR3JzcGZrSEhMc1dvbjUwK1MwZ0VHamdHeUlOZkVDR2I1d0NKSHNNMDVBN2ZGYzNpaGZUVk41ZDk3UHRsRjUzRUxvdHZuT1Y3cElMM3hOMExBM3lCSHNtSnhYMTZNRjcrLzNxa2JFNWVzSzVUK2c2blN6Q2VYaFFUb1lHSm5maVlmQVp5L0hlK1Ztc0d6UzRJNVgxK3NuMXB3WlFiV1VsYjNYREF1a0htYnRsOHI3TTJvblg0NnV1L3M4K2Qwb2YvMDFudlVwSk9BK2tnZjF3bmlVeWlnSlZpR3d6OGpKLy8vK2M5YTcwOG5iQzlmaEt1clAvL0svREtDaWZMNzhBQm9PM2hJTlVzS0dZRVNuYUcrRXE3Tk5NblFCU1loZUJMWWp1eUJLdmorYUJkeW5tUDcrZzVBTVMyWmk4b0dXeW9udWwzOWVaNHNzbEFTMVUrMjF1R2d0TktJYnlUenpudGtOWUVLTTNmZzVwYWVKeDZHN2hla2ZScG1JK3JWMDhObjlsVDVDaE9tMk92aFNQcllwY0EvNXVkNzhvTG51OUVFS1F1YnRDVXpmVkNxVEhobEJ3djhKWHlDRWtMWS9YTnNQS21FbytwNmRGK0JYMzdCaHF4dFBINlRTZGw0UkZ4R0lhRGdVT3MwZld3VDVlTG15OWNiWlN2cUpEemhPWTdPYmdGeDlmeEZmRWpxc1oyc1J0Y01aODFkWmJQM29JSThWeVE0cGIydDdYajAvQWhsTzdWU00vUE9ONHp3N0phUWVPNXo4QUp2VzRtSWZFRWpBd2NlQWNKZzluQmQ1N2dGK3FKSmZmUWtKQ1FwSy9DQnUrUm1TOUNlckZRbHU3YVFEQkZzL3ZGc0pRVnZCUDB6YjVIUWwrdXRtQ0QyN2xSMThYcFFXMXlpekdKS3ZXQnd0T1o2cDFGdW85U1RhK3R5TnVIK0JNa2lGOS9VRXJDOFprWGFTalNPbTlKZEdOWE5SbWJLbkNseU5MTzRvUlNRMGtrcFB4MEQzMzM1MFZLSzB5dUxpNHhyM0d4T2U4U2dzNDJNUEs4MmpGRm1OMHhqYkNBN0drM2RBYW5OODAyMW5iQlI2Z2hCdmdKR3labFc1T25CQ1JMZEZjNWl3U2lVUmlqRE1qa1pheTBjRktIQ2xkZjNYZE9MeGdXMmwvZERQcWtFVDFVSE45aFhySENiWU9FMGlQckc0ZEpLU2VHSlRjR1E3aGM1ZzlvZWJzRUFQdWlmYWM5UnNqNm1JMTRpWXNUZVhMbll2WGJvSTdZVXZTOWUxWnpvdnd3ZDY5Q2lxeG5CVENnbGdXSWdSSU5INUFMeFZjT0ErTjRYaGVMMkpWa2IvVVJvQWViWUFOY2E4b0FOQnBjRDJ5SWNMZHBtdEU3K3BiT1FMcFU5N1dNeUhFSkg3TUdiNHRUeWtRanA1Y0tCSjA2bVE3L1dKczJXUGlMeWRYcThWL3V4UTlqMGFqWXVOcGxOcnNvQk11clVMd0lGcmJ6Y3lMb21QVElZdzJDbEprdGQ5NkJuTm1pN1VYZld5OE9zZFU4VHZFOTlJMElpTHVNZnB1RURYS3pHdjNybkY0R3VQZGhaWXNqMmdURXZkamlGaUY1WXYwS0ZZY3Bhd3Z6dHpqcWJyZGVtbGJMd2s0OUc5TjZKYlQyWEJZV1hzblZTZ1V5eS9JOUF1LzhJdUNFT3pRa0IraDdrbDFubjNVMFpnUE5kdWFZZytxVGROS2NCMjV1REJSQXRzbkNCRWxwQVJzREFhRHdXQXdtUnNmZ0xiMVhBKzNWN1Z6eHNoa01wbE1saktxUVVVajJMVmhra3NLejFUNVRNVXNrY0pkQ0ZYbWlJend5cnFtN3FLd1BvN2s2a2RHN2R1OTQ5NUYyREp1ZzlFK1NzY011NFhIUXFzYkdMaGlmT2ZmMjlvSzliOTlGOHdQKzlCZy91K3c2OWJZNDBadzd4R3B4YUdBeXpoWHVzNm5wY1hUZElNNDgyV3BKWTZYVTRpbW05Z1NPTmNkWXErVHVGdTNGQkR1eC9kUFFyL3JIeVF4Zld2ZVJyaU1iM3FrV3ExV3E5VnFkYXJWNnBXVDM5Y0xDK04xbUYvSGMyU2NmdE4xVWVNUkRaSEFQWmNxV25DN21yQ0RCQmpsVlJZL3d4WFhoM0gvcE9WVlBQSHMvVlhBQVJjclFPd0RHYmhuK3pIUGpXazBHbzFHbzlGb3pQaVdGMjZjYlJpMDNkOFl4aVZmMkNmdHJlQXR2MkJ2YjE4NDlxekgreEswWStoZTBPRnkrQkdJc0I0dkNRUUVzU04xUmNUYjUxa2tUN2xjTHBmTDVYSjUyU21zbjMvUG5PWXhkWWNMbU0xbU05OEp6bHFOeTBEY1FzL0dFbGVSSGZhckxKVmVUcGNxMDhLL3REbEVuNnpuL1FxMEhXbXdwdlhaaElockNXblgyYjB4dVhkanNWaXM3Q05Iemx6ZDN0N3BnVTFHakRQa2ZRMHhPQ09qV0NCdzlWcWpqanNqRmRXSW9TWW9oazdzOWQwWjNlS0xzMmxvV0cvdGJwNnRZRzdyZk5yY25FZll5Q2x2WjEvc2JjNU5GbW5RdUVlTVhOMktjdkpDc1J2bzloMTFrT0dFdmpJZ1ozOHJpWURnbVg1R2QraWxMelIvelNKZWVlV1ZWMTU1NVRWNzVaVlh4YnNuM1JvN1FXSGRMZ1VvMUJBZ1kxTDBvTXVuZm81THI5VHp3WVdKaGdvcHFZV2VVWU5IRy9DQzhmYVhrVi9qUmFwVHZpRnF4R0s3VXQrQlJNN2Q5TWx2ZkF5Wm01OFpza3FjWGZIeEFWOFV1RkxjNkdlNktZVjl5ZXptU0VCWXZWVzExUnVwYXY2bU9mVUMyTTJtV1Azc2pCbGZmYnVad3VwWFg4YU5MbUZvT0l0L3o4d0VPVmNyci9nT1dQa0IvMDhJNlRmaitndGhWbmVYL0x6SVlKNnZrd1k4QlpPK0FmUWpmSk04SmtVLzRXVGlxRklSNXFvY0VheHc5a1J5bHFDS2NyaGtwMmtKR0FWQVRyekNaKy9adEh3MkliYU1oc05zaFNPQlZ4d3hteU9NTHhtSHAwSDRxNDFWWGprMXNBeUZDS2FTY2ptdFIxS2NSNUVmT0FhZzhoZ1FuM1BBNEp0VFUwUWptMDRnbHR6Ny83Z09OZTFicDd2cTlGdlptSVl0SDl2MFpSSFN3cVlMQ1NDMWJkbnBMalc3NjByYlJpT3djYmVwN1ZQYzZPZzEwREwvQTRUSk5NdWpXNVFPQmpNaERFbklCdWpRRzQ3VlR6eUJMakJady9tU0dRcXZCQTQ5WDZUSXhBaUJRQ0NrZUhDSVQ1VDdPTzNLYVhoQmdkdFFPS3dWdFpXZ0R4a1JxSXJQL05aeVhzL2hXMmtFNUFITVlqR2ljeU9sVlRDVVhyZ09FdVdEL1ZiWlNtc1BMSnd5WTVVVVdPRTZFNmdqRkYwcFRtT1ZlbDdseGJhM214amMrUUh4a1g1U1gza3RkanlNcE1uMlBIanc0R0hGL0pIMHFKd1pYdnNiN295Y1JhVEphUFJKMVJ2WjJYOXJOdHR3eStCVGFVeGRvREJ6aFRhZ3RJM2NJS01ydWZQbk9mUGt5Wk1uVDU0OHN5ZlA5RWxpd1BQUzRTNmxLZFV4eGdLZEhseVhIcUVRRFlWaFcydzgrS3pnZk5ieFRYVXFQMUp5NGd0Vlc1NXFTU0hmRmt5Z0tQeTUwc0s1VnRGYmt3UklTOFhNOHdNdmMxdVZzYmx4Rk5MbWRIeHp5VUxxZE94Q3BVbVFGYSs1eklLajdzbFZRNU5jM1NicHN6Mi9BdXBIVFhLb0VUSFVBMWtZeG1FVzZsNzhWbGtWQ1hxUU1lQVhOMlp4Y2d0RFRGaXlZekY1YktCNjFPUlRTUzlXSDlVSk9aTW9WN2pJdzRTY2NYbHhienNoajQ0L2hocDBvV29iOUZ0ODdBajE3ZEtOQW5YRkIwaEI3UFdkSTlhUllBUjd4WE1UUC9TM29iVFdEQjYxYUd2ZW5CUnVCYVFoVzdhQUh2eGlqUGVwaEdRMkpla29sRzArT01LRlFWd3N0T05lUW5UWW5RbGFRUnlUVlFMTXpUZ2cxb1VSS0RBVmM0dy9tSkZPREtTWkRlRldidG0rcXZ5b0V6U2l6RzNPQkJzbFdST3ZjUkpwK1N4eU1Kd3RXVWRuanlwUEwvVHRlWlhlZVJxcE01RjF6Z0FnQ3F1MkJmKytNbUV5dkRaUVErVEdPVkRqekpYT0g2SnVUWXU1SnJGYUhiZWcvdXpxREphWFZyY3VWdm1OM1B6bXJ1RWx5V1c2cVVCNzMrN1JqbzlBVnlJSlBQaXBMcDVVejljRGxURUpGM09DMDlrZDdxakRvdzluUlp5amc3cUdzc1locldCTWl5SG9FR2hqeURlZmo2andaTUdTK25ya3N3eFI0V3RKR25HNXk2VWgwM0dVY3RlODNKV3JJU1NoMGNVUVNNd25qeTZQdzVHa05hYXZlVWZiNjh4YzMzL2JNMXFwRURUeUZmOElHenUvdEg2OE1EQVE2WklGQ3hVRlNDOC9PN2pjL0l0NWd1bE4xNDFmTlVJakJ2MnAxWHNvWjdCVUFreXdQRUE5VDNPRGxKU1VsSlNVTkV0SlNhWEdWUnV1SlZzWUUrRkx6b3R5RUkweVFNS1o2cTd0NFFhWnRybW9CSVYrREVGQnhRd1VlR21FZ1lEbjJtQi90TktlQUZscDlpUnBaQlJwTC95SitjclB0L2RYSTB0MURrUm51bjZ2ZklHLzRxLzRLLzVLbEVzMy9kMFlkUFp2OHBzRC9zMlVWSVFrbi9qSkRKang1MWNmNFZOL3V6MXF6amg1eEdrRVplQU14VDQ1MFZFcHc0dGdZMWdHamw5OXFEeDgvZWwzSUVrMVVQWGFLbUF4bjJpaVJ3VmlyYXRZa1VnVmo3aUkzT2RwMHMyanlZNmZWbHRBM3BjOGcyMXBOTWlsQnExdWZPT0c2eVBjWmJOSlRtaHJzcDdJeUxiOVkxL1V1WnFnOWNvWEQzVWpkWFh1ZzZCRHVJVzFmckNMNmhVVFJzN09MU2N4VmVZNlozT0hEV3FBR0pPeHY0U3JGcnBFa2V6WnE3NGkrRjAvbkJSN3NiV1RjVmxzTCtxS2VuaE9lYmdoSDAwUEtxYUtiNW8ydkNjNE5LaGk5NEtEVVd6YU8yNjd5UnRjeUttMmN0U0o4Uys1UnlkL01zVDc2cWFjTkF3RzQwM2Q5TFF0SXAyNXdxZENWcEQyeUUzRVVMRG1EeGpSWG9vOStLejFzTzMrc0JIRGxncko5RU1DKzIvN3NVSlU0b05ZRjFralR3WXVDaXY4S1VzNzVvNno2Q0xlNFM1aldWbXgrU05adTZ5QjZWZVhoblZJd2VXSEJiSk9sU0MyRm9adU5MUklIU1owSTQzRVZ4ejFyKytKeWFKYnVQelZqNUcrcnUwRk55RWtRbzlFN1JyVVlRb2lCOUFGU1k0Mk9LQ1R2dUNZcFVNOHpVVzN4MFdjcCtIRDVJbDEwM1BVb2t1aXpVTXJYT2VoSGkvUFFJNkFSMEF2MGczcXlIcU9oSHJoOEhwNkpyNDh2VUFpdFZ6TjZ6UWNCU2l1Ymh4NkVDYnE3aUxTNHlNWnZXYXZWNVE3dy9pb3ZOYmZhYlJ1UEliYU90WktDeURHNGhjdDZDRWFYL25wVXVPMFJlZHRPalNicFVjNTFQeVl5Kzl0dGJZKyttcisrUTluVGtTbTk2dnVoeXN5dkJ0ZmRLM0oxSlBtekRTUWlTcy9ZOVB6ejJJN3hCZWRHeXVkeGZmeDUrZEFoN2pkOW5xMFF6MFFQbW9ybFlUam9Zd0pZNjhUUWNjMmxESUNxR2YvT0ZuSVQvZDdqRVhrV0JNcmhJeGhZNE1vc1I0NTNaQ1o3QWtYZTZEQUFaSEU2MFJvT2p0azNEakxtcG1xZjRSR2podmlPcFNvcHp5ckpUbGY3SkRmMUovNnJCcDNYb1ZEUjRjV0ZVRFJhaUhNS0gxWHRQaFhwc0dLYWtSVVJWRzd1S2JvZkFoSm5nTWFUU2tEaG9vVGhYeG5jT1hOQit5NkMrQldZYlV2QzNNKzFjZ1RmYkFhYnB0R1lSMDM0ZnJuQUM4M2pNbWN5VHFhcFFkZHVZdHNDeTlDd3A5N2d4MmQ0TEJkY1NHZk1MMThFbmF1R2hzbkpxdC9PZjg2VnloSlR4TTRsV2tuVjVueWlhUnlXV05ZL055REdaaDRsd3VtbDh2RDhjUXdTN3ArdXNBeFhEa2YycUgwcEpFN3RDUDVwdldGMjhRTEpKdTJSTTdxcytsVHFGWHFWVVhSRks1ekV3VmIwVk9LMmtTS3BuVWNQNmQrUEtlV2NLQjB2VVhsU2FKb05XMGx3Z0l0NFQycUx6QkdIbGpWVGtlb3Fzbnd6UUJRWHhDUnVocmtCc0tFTjRYUXM4aEhLc3MrSWVLaGs5WHRMQWFGaEg2NlphRzZ4R3lHbm1EckRCVFFzWmtqVUF4dW9NMWg5d2xwNEtjTHZjWVdYN0I5K2ozajhmWnNCNlhNVTFCakdHUzI4bndURW8yaWZYazZQd1UxaHVXbG0xaTFjK0JiY285UXdGVFZmMWg2ekZ1NWY0WnZ4enZOWFRvV0xqME9YTnBNNTU2TDZsWjRFU3hQSC9mdmdXeUZsOE50NHFjd25scURLYUhvMHZnZ3p0RHU0M1NwNDB3NW5CUG1FYWRnZlR1SnRTVUhQWlJvTjZNUnJFWVBhTTV3bVBoV1pKeXV0R1VVWEM0VzJpRTVhc2VQbkV1My9xYVZWL3NSNHhwc0JFTENYZG5DYlkxVTVvNGhKTHpFOWc4VlJNek1aTzBvSWNrU0VoSVNFaElTRXBJZFFrYnpLVzdJbllCT2FtYjdaRC9xQkQrZU1tZ0IwVWVuNWhJb3R3em1kT1V0L01mNG5pZFVxcVdTMHo2Rmp5RnRqL0taY3lMalc3UE84VEc4bkgrMWdOUGp0WUJxMGFHQXhQN2hTNDYyT3QrOE15ZkRhQXRRM2VqS0JQb2dGSSt1aGM3eGNGQ0M2YXRuVnRodXRYbmUzdnJLRnV6elBSeVlpRW5uUXpaTE42M2U4MjBpTXVjYkNpSU9sYlBUV1I0UkxZM3dWTWp5SWkzeWorUnR6RzljMTh1VUhOcE9Sb2JSSTFzZzJIQ28xNzJVY3dGMjI4OVJOWkFyZjZ4VnJFTXhFZ3gyVWlITWxrNDVUN0hNSnhGM05SdjBUZG9rYjdoejV6Ni9mNEZQUHZua1U0eWlkL3p0MlNlLzd2enJhcEprSmh0Q3BwaXlETXU1V0R2cVRyL2dZVHFxbnpRcHpaQi9lOVptcDlidmgyZ0xVbEsyTC9aTkZtaERVNWNubzJVSWlMUmNWYVJ3ZlFOeXFHZTNZRFExVnN5dE8rcTdZcTA4TjV1dUdiMjRhM1l6WmFsQ2ZVa1VVKzZoRlhaQ0cvR0RlNElkYUhUZzZwOFFZMTlqMFl6Si9aakZMTzdaYkZiYm5ZakVJYmRKS0FhVWV6UDh3NFpyQ3YrL3dhSDcxeVRlZUdlcE9ZV2pvV09JMXhRUmhRT2xtYkErc29td0NBalVRRThqM2JCc0ltd1cyQUR4VFB6aUFod0JRQVlBQUFBQUFBQUE5alZwZ2tPblJMQytyZ01EdXBGYUQ0N3V1MXJJMmNYaVl1ZlFzR3RtMlp3RzlkM0JwRTVIV0VYRG1TNldWTHJvRlJ2MXFKcFQveWk5ODdYVTM0STVEKzFvbDV0SmpxVTBlU3NqVW1JV1pwSUxoanNlRVpqV3lCVjNDcWp1V2IyTE5IV3dHaXMyN0NCZGRtNG1aUmlZWXdjQjF3STVoL2M4VzM1b3YwakVlaWR4VFRyLzVWbkE0Skw3RGoxbmgvM0dITzcrelQ3WjZyZjB0NHltUGczVzBnTmljTUFtMS9GMDF0dEFMN2FQNEkwL2UvV0trRDUvVXY4YmFCTjVPU1M5RVhoV3dYUGplZlkrdjlBaFBSSmNJaUV5bHpoMnUraFE0SktSK0tGZ1JBcHZVQVZ4RlRLcUVGWUZYaFdHVjhHM0NxSXFqQXdGZzhKSHdUWGUzUzRKUjY5dVVnYjRqWU56TDZOVkNWWGJDUHM5S0dvZ3NXZXNGRDN5aEkzYUg3QnJBMVgwcHBWaFNrbmVRZ3JQRWdNYTM5SVEzTXk2WU5ZVnlTMjV3WjVnMVU3bW5YSDl5amxIZ2lTRktFbjRXVno1RytMZlRkVUpueFpTNUQxaEYvSnZPTUlFUWE5NWhKVlNoSVRJVVBwczJhQUlCWXJOSldzMFdYTUl1MEJ5NS9OUFBsbGEyQ2NXR1M2YUlRYW1nWW4waUgzeTZoWjNEWTB1MFZqb1N0YTlwUW9LeHRIWTBtOU1sNlB4c3FySHdUS2hnQXpnYVFhNnR6U05kSGxTTmVVRXA1ZTloREJMOElxSTZXanhUZU5SbXhZL0dKbmVnMVBJUFFPRUd5LzRvUEJTNXE1NUtncjRHNndEVnNlak1teDlnWWRVa3o0enRkcnZqR3VRREZBYW5iaEFIUkljQU9xbE40OWM4NVNPMzFUUmRSS095cEQ2UkQya0xMUG84ODNoVTRQa0JQYnk1L0NLeVVScW9sZWhsQVhLQks2a0JHV0wzS21KMkJNc1lqVkdZOUFHNUxXSFJDdm5OQS9FNW1BMWlVWWNGclkrRmxJdllnVVRYRUU1SGx4TllJUGpZMU02U0ZVU0l0dERGNldQdFlobzAybDY5RGVoWEVldXo3S2hSREF6VFlFdVNXbUdwbDl0eVZvbUIzcFR2OXN0QjdhWGlIT2xmbTBJclpBdU1XYWJKQVBZQTNnelF0RGUwR0lBZ0szTm9kV1NMMzRGYytsb1VwdmVrOXhVc2xaVVduakVSSG5Qa1ZSUDV3VXkrKy85NlJvSnFqSkJjYjVRSFNhb0ZrZG1EejFzZmM2Q05pMHlJaldwemFETndPcHkvYVc2SmRVNjdDbVc2bHptcGxqK2FYS05rdVloNloxNjhTUzE0Z09FcmY4S3FYK3hWQkkrdWE0Y3U5T1FNcExXVWJadU1xNEVsM0t4MVMzQUlLK0Q1VWNsSE1GVmxESVpnZTJRaWFuMHZUNldhbDZnMFNFMThkVHovOFBnTC82NU44bWYya0V3S21COFBWMkVnalFmKzlWcldLSmdSTGNCandTME9mQmhvSDRHWGc5b2xaWnRLNnFXVWhkZysxN2lXaVYxRXppM2szb3BSTEZBM2VYVWJjV3dsbm9rcUp0SUVEYjFFbGFjM1QrSUd3NnJKbDkzdVh5N2haSFZaQ09BRjR0V0QvV3JDL2puQjI0enlIMFRWNW1rMDVJdGtsb2VySnBBRk9zdkJRRk5JKzlrNFQ2SnF3Zkp0Y1VHWWZuRlNIcjBkeEpSeDVDM21LSVVpTHFFS0U4eDgvVjdBa1QxeDhSY0l1Y0pQM1I5cVRKWjZVQndLcFpYL1M5V21mQnQxeXZCczhURnhMYTE4cFg1VG1INzdVNTV2STFQQnBlejZGV0FUcmdBTCsyK3hJaG5QOTB3ejFmMmhFK25FWTVoK2tkSCttdzlTaXVySWJ1VDE0aVF6MktrWHVCMG9ZaTlUSSsydHpkajJSNjF4RE1kbkUvS24xcU5VeWY4bXkyOEhzaFRUbDRKUkkwbVdoUisvalc4K2VRSHhSOXNBR1p0Slc4OHlrNGl3L2VXVU9RclVWb1k2emhTaldZYm9MOFNjS2NEZmhNaG56aWVqc0M0VHZUWDJMdmljZm9yZGdnYWhyakthMmNEZVVXRTVoYjMwQ0ZHMzR2RDBPZjZnTlYyNUZWY20xL25UeUt3WllZaWxjQ01aTnMvRUxiOVRNbGJGbElzdmpFbWgwVVFHbUthbXdUakRNa1l6UnI1eVppYjVmdFF1d2VtTEhhTUxZbDZLVDFCTHpFWHZ1VmNNbkNmbEVMZW4zakdwRG5QT2p2eUVNdWlMR0tNUUtiWDVGcWdXWmY2Wjl1MVIySVFhRGFtK2RSUzBvZGw0NVBxZENEMmh1dHdmdkl2ZTF2ZWo0RlF5eG5MV1NEUGVGc0J0dHZCbkl5c1RHU05pOU5pSlNkUmFrMTR4Z2drcTdrRVhnNWpSejVVbjgycGFkS29sSEZkcWE3cUNEd0g3cGNCc2VzMzl0amlFUzk0OFVJbzcrNjM4OWxSTUltU1lGY0lNaURvTEphOWZ1Sis1Tk5xb1AvbG1FTlkyRUVuVkJNUVdpZmVyTEt2QTM4cSthY0dmVFZVMXJFR3YvbHB0cEI4TXc1YUR6UVBLeDBpWnhEUVR5akZDck9CZjV1NmlNdEZpSXdlTVRNanRHNmlib2FKTjdPV1pBaXVQY2l3T296dVRIWnpQY2dYeDI0aFVtK01CZUdONE04bEpaSXh6eUFUWTFxeWxKdHRyZndnMkJRVE5aVHU0Q2FzN2VZb3pIM2l6ZEJDL1RuVXROQ0pjbnRUMW5uWVhQTC84NnQ5Y1ZhK1UyWklhQW81WlloNW1nUjFzdWhlSU1Da3NJeVVIUk1NVHNleE9Bd0g0aEE4QWt2eFNGOUVUeTVYbDNPcjQ0RHFUa0xqOE1wQjNyK0UxUnoreldmMjExck13OG14dHZ0RmtDYkJIRThmZFljc0I1UU5RdFRKbFBsSm1TZVVMU0RxSDVSaGdqSmJzR3M0eXV5bjdBdks1bE8yaWlqZktkdEFWR05RNWk2WE5HT1dRbUtHYmpCSDZQb0Y5ZWc2c1FNZzJXRVBMVVdkZ29Ua1pKbE15ZGl5MmdFaVdRYVJMNVdnRERkSXllc2xIc2FZOUNsY3d1M3NkSGtLRTFlajNMajVjdG1wZ1AySGlqWTFCcVdrUzFMVWI2OVdCRVN6ZGdNMEJUMEJObDF0aDVqdXBoeVBjSjErMUVjUVFQWXlBNE5zREFnQTZBTUs0bmNVQk1DTWxONjEwMjVzNXllRWVVd3BHQXJBZUdSbG1tMzlrZWpTZjlIQnJEeTZXVHZUNmNFNGRIcmhIQlY5R2ZYR1QvcXhlWGRmQm5CNzl5VkdNQncxekVqMFVRdWZSekYvYnhzZ0lXSUF3S1VBRUhDOUJqR1JLeVNKa1VEQnpkR1VCdjB0ZEZ4S3daQlRoY0xFZnE4eFlPU3hoTlZUY3VaaWlNKzdhMkJFM0xzbllNcjYzVDh3WXpScThuZm11Ty90QjI4ZWRrVzlDZVpZclFSOUFMQm8zcnhscUh3cDF1WXpUdENMVlBmTVQ0WHU3RlNPRlA3YkxjVW4vS2xvVVVkQjJ6d1AyWEx4VWhPRVNZZjJVRk5nczZCbUgvYmJiRmJ1dWRucHpJVzRkVnFYdzY0NktqWndjT25QZXZzaVA5eVpxbTVSSmZjN1lqV0F5SG9mT0F4ZE1NYUY1dWRjMTA3V0FYR1o0SGhma3dmYkZ2NFpvR0JZbVVjWTdMUDRGUzdzelJhMFRwbFhXMkdzMnJvcTV3WExTaS9tZHhkdGZOdUxMVnhYOC9XS1dkM2FUc1FuS2hmbXk4V043Nkt2dXVoU09MamdrUGhSMi9LaThLQ25EQzlEelN0SkNJTVRSbW9HVjlhSEgwQlJZeHVxdmRnTWtneUFSNEtwQ3FWOWxOMVRidTNqcjFDS0R4S2pCTmZ1amxWZEpvMTlWRE5KaUgyY0NWUXh2S0pQNWhONjVLSVFsSnM5eUhpTjFOblBKRTVjRk9yS0QrK0xMUFJHR3NZbVdRNS9kSFA3ZFRpL3RXdEhyMmpIVXpmdnZwTDJIbi91L3BJZ2ZHZzIvTGJleHJQaFhxUStMaWpmQ3BkbkJrQzBpb1VvT1lpU3Y2MHNzWktscUs4TUxJZlYyYW1vUXZuM1JFVExBZkZoUndFUE9DZG5EUmU0UFhCTWVCb3JtcEMwN3U4RkZSUjU2NElXaFY1VFlYN0J4ditHRHJyT04xS25ta0Q5cHZndWE1RmhoN01lb0g2ak5uVG5wOGhQNktOcEpLN2J2cktzUVhTelV1cTRoQXBESW1Qa1I1eGJTcHd2QlNOblJpMDY5ZHVrb2FaM3RlQ3JGWStoU2Y0Q2x5TWlJc29lelYyU0hzb0ljOFFKYlRveWUvYjdXTXNxWjBVT2pKSGNEczVTdmJYakkrSmR6SlFNcUNWakl6b2VxT2VLNjNIQ3hvSkVSaUtKVDFObkltbXdYUHlPY2wzZWphV2hGRGY2R3FRRVcvUUg0aHhOS0hkM1NVWm93NEVDTmFOS25zRUtqb3huVFJkVDRuMUpDODhUSytJRGt3Sm1RV3dJQ2JoU3ZMQVY4NWpFRVFSQmtuNVltMlI4YUlsUzNUcytDd2hoUTRseHBWT2JRcW1RcElxZmpjb1NNMFFGWnJndGRsUW1kSUhHc1ZVSUFWbm9XVHlIS0hTZzZDeHRLMzdzNFRDYXZoV0h5VlNxUy9GU0JiVzhOaXVhcFMyV0lDUkRHUlNwVTRzV082LzU0bkhrYUJCQTg2S0JMSXFPMUFSVk9WT29aNEtzNkF5MDk2cHVaeWgveG5JcTc3a3JEOE9YUUZac2c1Qm9SZEk5WURSS0ZQQkVvd2lwODhXWjcvVlZKeTYwUGlBR0pYV3hDQ3FwY1VDRU14YUFXUmZoT3VQRDM3N1dOQkdWQlYxd3RUaEdUMXoyY3dqWTMxNmhUVTNWUlhDNjYxS014RWowRmZIWWF5TWZlUmdhdDh4ZjhhV0QyVW5uMUs1NDhMenZDUmtqc3ZxQWVrbFdHbEpIcWdaRVRDUDJVb2c4STJXbWRhUnRKVldlSkZuSFRpSHBBTFNHOWNBb3FzUGF0ZlE4UVV5TzA2aUVzbGIyTUg1VlUvYytucElGMStwWXk1MUlBbkhzcVpxRWlaTnV2VXg0ZEt4aTFZbHNxU0hkWW8xL3lMK010ZmNDaXg1RTlzU2M2NVFhNXFVcGh0REt6QkZEV3pGVmEvUGtwUG8vV3RWUUxKWjhiYU10RGFSLzFyaEgxM2ltTm1qT2ZaQUNmWDh6b1NCSUlmVFJCaHRSUUYvdHRpZzhEcG9DSEFoejdXKzJ3QmIxL1dtTDgvNmFMb2RLZmJLMFNnYTV1VHFHK01XVzJTcmI1NHE0VWJoMGtGTmVaSHNpa1VZNjl6N1MwUUNSL3prVWRpOUltdGdBaFJaTlYxK3pZVEdDbGhkSGtiTkpZMDYzL3N4WnJDRnhoaTY0eG1ZNDRFQWdxN0tWekJMR2taa0RNYTBUdDE2QVhtd1NJMUs0azdQT0w1eTJYTjE2UHNSRWxmWTVhNklUVlhyYzZTMjBaRXNXNTlJeGhqbVdHaDZNWFdjWWRuclV3WlZncFZwR3BjZ0ZQeHRudDdUc0hTSGgyRmc3QmlrRU0yNjFBZWVNRUVIUHM5cXdLRXJRYjRWTVFmY0pmbldSSGJIYVdmZHZBUHp0R2dFbUNGMVl3NnFMV1Zhd1M0QVpxa3dGM1dnRE1MZXJ5UWNPd3QxQ0tiU1NVZmU0U0tHeENXZTV4U0owU1J1a3FIWStoQnFpSmpoeGlNUGthU29jdEMrUk1NekxGYUp5SDhpZFZTZWFQRTVvQS9iQmpMQUF2S3FwRjVxN3M5NEJTYnpXZmkyTWE4bmNCaUVKR1B0cGJHSVREZEVmRXNVRHRiV0E4dHphT2RZSEdtbm9YNnhkcG9PbUxMaEJickMxZ1NhYXN2emdLNkc4K0pWM1ltb0NodlBUSlQzaGhmTGwyL01SelFGUTBEZTF0MEtWeFdGZjR4dEVVRkd3V2ZheUoxZlVsa2o0RmMyY05YeVFoV3ljQTFyLzdNWHFlZGhadk50OGo5cFNRdWJzNVR1NFFFSjJCWUt3anpoc0k1NjJXYjlTYXdydlVtVi9TRmloMDlKZHpXZGZyUDVWc2xhckxwL3NWdTJyQVlQMnFuUFZaZlZ5NUNxWDU3cHhycmptdGh0dXV1V1Y4ZTY3NDY0R0UzeTBUb2NIMmszMHhqdkw1WnRrc3FtbW1LYlNkQVZtbUdtV09XYlRtT3UxZVJhWWI2RkZDalhaWTdFaXhaWjQ2NzNtVU1JcERxY3E0NCsvSTAxM3g3OUcxdkFlbWMzN2g4ZW5WcnZUN2ZWOTkyTWJSdkVnR2FhajhTU2I1ck81bi81ZkZNdlZ1cXcyejl1WDNldWJvMjdTYzlpUEI4TlJJQmdLUjZJeGpYNThUeVJUNlV3Mmx5LzQ2Wi9CekZHcFhLblc2bzFtcTkzcDl2cUQ0V2c4bWM2YytyRllydlN5b1QrYjdXNS9PSjdPbCt2dC9uaSt2TDY5ZjN3R2dxRndKQnFMSjVLcGRDYWJ5eGVLcFhLbFdxczNtcTEycDl2ckQ0YWo4V1E2bXkrV3BQWnEyZTRPdjNzNkhFL25pOHVyNjV2YnUvdUh4NmZuNlpuWnVEZzN2N0M0dEx5eXVyYWViR3h1YmV0VDB6RkNqU2tHNUhUMzlnOE9qOUxqVXJsU3JkVWJ6Vlk3bkp5ZW5WOWtsMWNocGx4cTYyT3VmZTd2Y1lCQ2toVlYwdzNUc2gzWDQ3VmoyanM0T3JIWUhDNlBENEFRTEVDRXFFZ3N3YVM0VEs0Z2xDbzFTV21jdFM0NlZ6ZFBlbmZQUFBjQ0FDRVlRVEdjSUNtYVlUbGVFQ1ZaVVRYZE1DM2JjVDAvQ0tNNFNiTzhLS3U2YWJ0K0dLZDVXYmY5T0MvWDIvM3hCRUFJUmxBTUowaUtabGlPRjBSSlZsUk5OMHpMZGx6UEQ4SW9UdElzTDhxcWJ0cXVIOFpwWGl4WDY4MTJ0ejhjVCtkMEpvdkZYTDVRTEpVcjFWcWROSnF0ZHFmYjZ3K0dJenFXWkVYVmRNTzBiSmhNWi9NRlc2NEFpVVhOSTZ0blY5bS9LcHJON3RDZExyZmhNUzN2enR3ZmppZkxkbHpQQnhEaGdJUTBpaE9XOGl3dlJGblZValhuOXRKZGIwLzkvZG56RndBSXdRaUs0UVJKMFF6TDhZSW95WXFxNllacDJZN3IrVUVZeFVtYTVVVloxVTNiOVFQMTFwekxYZWc0TC9RQkZra3M5cCtaUEFGQUVCZ0NoY0VSU0JRYWc4WGhDVVFTT2FQSjBzcDl4NWt0UEpTNEtsTjVPdU5rUDVWR1p6QlpvWG16T1Z3ZVh5QVVpU1ZTbVZ5aFZLazFXcDNlWURTWkxTeXRyRzFzN2V3ZEhLUExtUXovU3pybkFKRXR3NUVwdStUa3JySnd6amsvVVU1ZVFWRkpXVVZWVFIzUjBOVFMxdEhWMHpjZ0JKNFhJK0RkSVE5SUJLdURXN2hWSmhTTEp6MU8zOENUb1pHeGlha1ozdHpDMHNyYXN4Y2JXNEpYSW9sTW9kTG9ES1lkQUxJZ05vZkw0NU9vemtiUk9vdVNhbG91RFMxRjczeEdwa09qaGZWdWtwT0xtOEoxYlQyOGZQd0t5VlhuRHQ2dFhabHlGU3BWcWZhdjYvaUhmZm5TNmtzdzdpK0swUTQvVlNEc2JtZEJmTzJKVHcvZ2g0M1AwRzcwdkJkdnJuWjJNNkt3VHphSnFzZVB5cDBabHhEYllxT3NSNWNncThQaGF1T3ZrK0N2aGd2S28xazBVbU1pNVVFQWd6NG13V0NBTUt2UlQ5VWhRYmhGQjJnUDljR2xSTVFKM0ticXlBTFpoMWZIYnppdGJQZDFPS1ZTVXdaM3Q4T1RFTmFaVStPeXpaNk0rOFBGNmJ4d25UcXpSOTFNWHpqQy9SRmN3VjYrWkJqOG1iNXU0dzRpRHowOHZMcWFjVmtOM1FEM2ZZMTM3bzQzZCsxdktRK0gwVG05ZTVneUtoRXRHYVhwZnhsbHIzMFhUdGRXdy9WaWFHcUFJbDRUbk1JSnB0QmhnSElQSFZOVlNndEhwM0pTVXgyaVNWS29xcHhUeVdqRFZsczJXdk5XYUxRZGJ3WC96STBXenVFZDZoeHUrZUxBeitrOHhtKzBEdkFSVTIrSi9DZ3JiRjhUeW81VEYvU2p0ZUphWWZCNG0zTHZRSzNIa1l6S3RiMkoxamVvR3V4UFkvYVJRZ2htTStab2NUMC9QK2dXdzdINytZbHU0VHNRVW12QU55ZmpqREprdE9aTFRwc3k1UFJsT1g4ZWFkckRuVjNIYVZ5d1BKbHJQbEJjVTNvbFBPdE9TYkw4REN3NUVhc0g3a3BoeG1VRWNKYUV2TjJBQVdvT29qU3RieTY2MzZIS1gwT3RtWmE5Wm9hZS8yMlJmUmJadGpBYkhFNnFibnU0YzlxRDk3ZFNuRk9TMngyTXpxQ1F3ZHVBVHlvVmF6aFBZMFMzV0podFpSSGFIRTVZMFZJZndEWW54UTFERjBhV1d3TjZwQWZoQk01ejhqaFFRQjdsSVNnZ2VBcFBBQTNzMFM3UGRGbEE0TWhWMzFtVkNzNU1PSjV1YlJNcExrS0EveUpaNTFScURZVGhrbFBubm9kNnJjeE1uTWlKbUNNRk5QRkxaSk1sLzMxbWgrL0FyTFVWUnpERS9POXRKSWFtbEorUm1xbHFsOWUrbnErVVZTdXhiVW1CRUZaTUVZUkZTQmlnemdmRkxPUUhhT29FMUc0TmxUN3N2bXBwN0JHNjNCZEhpbXBjb3habkhNRkN5N09HdWlYb3N1V2k2ZlBKeEpGaWthWVBQMFlYaEM5akEzc3NPNVBxR095RW1MVGJKeWRQQ1FRZ2pheWhza2tqNzZHUHhsTVFtcUZ1MDg0eDZZVDZ5K2d5UUxiWmlhRzF1VG5VNTZYc3d5Z2Rra2cvWmtCLzZkWitVc3psbHAyeXhVbmNwK3ovRUJUc2M1aisraldRbnZscHA0VHAxdlh3cExJd1RtWWpGSmpPaFNHVmFka1lKNnNSWURvWGhsU21aV09jbkkxUVlEb1hobFNtWldPY1hJMVFZRG9YaGxTbVpSOWUxb1FDMDdrd3BESXRqSlBTQ0FXbWMyRklaVm8yeG1sbFRTbWxsRkpLS2FXVVVnQUFBQUFBQUFBQXhoaGpqREhHR0dPTXNla0NGSmpPaFNHVmFXR2N6UFpUV09UcFI2Z2pUdnNRbjZkU2E0bEt1RHhlRGdTakZHWnNsRENpb3VMcVYzN1I0Qnl1ZjRyQ1EvNitiT1hQYjFoa0JOK2QyUlYrYktKbXBwNktqTm9LemsvT0dJSkJHWmlaemtwUWJKYjhOcXRML3ROTXEydFpiRUJuR2llMGpHMlNLY0tpSjBQZjUxN0o0bHJHR2tWMEs2VlRzb2RUNG9WRERNNGVQSlNpcHBWbDdUZUpyNzdCTWJkaFdwUkVBVVYwU01jYWdiV0pPcFl0cWJMajZZbGo1QmJzcVM2ODd5WUh1UGk2SC9uQ1I5Zm5HTHBBUC9KMXEzem8zSHlzcTVSTEJSSjVaUUxEb24vT0M5K1hBVzc4NlRHUnQzb05qQ1BmZU1uSFJONjNRaDd1eUQvRkZmTGVseC84cGlSYXhScjBVK1BHTGl1a1BMYzBPZFBxTE4yajU0bUNjcW1rWFA5TDRWZlRkajg5K0UzY0ZFS2lBRVVYOHNkWCtBSXFJRWdjdTEvdDZyeGNsMHdoU3BlNmpIbkp4ZW02YktJOUJaN1liZGc5OWViL0hXT1BKbWIxQ3lwSXFKcWtuUFMrK3Y0ODFRMlVTWmRUcFhVTDhhSi9ZL21EZnhVRWE4U3RHeDRvbmhZY1R3L3dHRXpRMDhnUElmTnBnR2VyVDg4aEVmWFE4OGhQUTVMUGlYeXFDSnJobWMrSmZHMkZsdTdGRGhiMHp0WTQwSVUvYUJ2NUV3OXNrMDllVGJhUnRuSmFpeVAxWXU0MVVacVcwNThUWnJXQVVHQTZGNFpVcG1WalRtY2pGSmpPaFNHVmFkbVkwOVVJQmFaellVaGxXamJtZERkQ2dlbGNHRktabG8wNWc2K0lpSWlJaUlpSXVCMU93M0JHTG1oZy9YRzhkcGJEVG10MnZEa0tOWEtKNjlVRDhyWVpxZHFNTTIzdWJEL2k0bTZYMFdVMFlRUDNCTnVPeU4zKzI3UXkxSGNyeWFjaEw3bTZXTnFNLzJoZ091VSs1WExadDlJMjM1Ly9GZkdMSHV1dGRJSUtHbm9kRzlOKyt6SXBuL0hDZlptcWVZUzFKTkEvMzFXTXJmOFk3ZHh0bTA5SzkyQkxBaUJlSmY4K1JUWWE3KzVnY2MxNUpZZXQ3cXBxenBVSlNlL3FOL0VWMkcxNTdoQjVtNVFzbEtDQkpvOG9JZ1NmSjR6ZVpNUEd1YUNoVnZkVFc1eFY2VmQ5WGc0RGh2VURNa1JFN3FYL2Fsam84dHVmOHdhZnZuNXRGdFpzdC82ZGZNQXhoZlAwMTExaDZQaGptNytCbU9qZHhlenZmUGdmYnM5RnpkcFNlaEF4dVl0SHZlSC9IaW8zK09MN0tjVE0zck1nWE8xK1JIQnFYS1hCbFV1ZmZrY1VjVzIrWWlta2Y3a1ZXYStIUjl3TWg2cXMzRGpLZEo5SzQvNzRpSWJ4a0UreVhGOFBwSTA3TjB5UWI0byt3Q1ZtclVMdFdMYzkwQUZQUVpxbmFsSUdXa1hQRk5BenJWdTNCUHhNSVQvVHlvSWpaa1VrOFNRVjQ1Q0FRWUJmR0NRaVlDRGdVSUJmQkJnWWVNcFlwMUV5dVFmcVAxZW9UVlh0c0twWFVrN1kzMG5CU2ZTd1lNb2FqVWx2Wk05MkJYK3ByNnFWVWFnYTFTcXJuT3BVcndZMUtxOUkvYXIvS3Fpb2ttSTFxVmt0YXMyMmhvZDVoUEVFNm5QT3VxSjJKdXJ5TUpQeU1NNzRyWEZhQUFhbGFsRXNydWpZZzR5amtZUDBvOGlxNjBnWWhFYjhUOHlpSDlHb0dIZ1NKcWdtNzlxSVJjdUJCR1JDa0R4Nk1NZE9kODM1UW5nd2FZQ3Q3RVBTUVNQaEJFZzJwejNrTm9ROXR3aElCTGh0aFhOLzVPVGFSRHEyZEk0Wk1xd2o0TGh3ZlU1MmdDTWtUeEhkT1NhZ2p2RHo5RDBQTXdKc2xmSEszQjlCZW9ZS2gzbDB6UDNVN2NXMXpKTGFFMDlBa1ZnbFg3bVVTTUs3STlHUTJRcEtJaEE1RlVqMy9Td2hPWGVCSkYrQTBNVTBRclN4RURrY2NhUjgvenllV3VocFc4OUxMa1dScHdGVFJpZVNjeGE0NDZ4eGVhWTVrVEtIU01EM041SE1LaGxtVUhGVVRBamRlY0d1QmFGZGNRaHcxbTdqZE5qWXJVak9LZUc2djJ1U3RjZ25wdWw3SkpvQUZtdEdnT0JpTlNQLzI4NytIc3FYSnlmR0FEMkxINFZDd0pVRHk1c1B6aUtJRnVLQnhSUEVZOVdNQmdWajhYM0EveEpDQUFBPSIsICJlbmNvZGluZyI6ICJiYXNlNjQifSwgImhlYWRlcnNTaXplIjogMCwgImJvZHlTaXplIjogNjAyNzEsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDYwMjcxfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogMTkuMTc3LCAicmVjZWl2ZSI6IDE0LjQ5N30sICJwYWdlcmVmIjogInBhZ2VAODZkZGU0OWIwNzcyOGY1MDhjNjgyYWE4NTc0YzNlNDgiLCAic2VydmVySVBBZGRyZXNzIjogIlsyNjAwOjkwMDA6MjIzZTpiYTAwOjEwOjdkMzY6MTcwMDo5M2ExXSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAic3RhdGljLnNuYXBjaGF0LmNvbSIsICJpc3N1ZXIiOiAiRGlnaUNlcnQgVExTIFJTQSBTSEEyNTYgMjAyMCBDQTEiLCAidmFsaWRGcm9tIjogMTY3NTI5NjAwMCwgInZhbGlkVG8iOiAxNzA2ODMxOTk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMjA2WiIsICJ0aW1lIjogMzUuMzA1LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtUmVndWxhci53b2ZmMiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogInN0YXRpYy5zbmFwY2hhdC5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvZm9udHMvQXZlbmlyTmV4dC1SZWd1bGFyLndvZmYyIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogIm9yaWdpbiIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5zbmFwY2hhdC5jb20ifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAiZm9udCJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLW1vZGUiLCAidmFsdWUiOiAiY29ycyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAic2FtZS1zaXRlIn0sIHsibmFtZSI6ICJ1c2VyLWFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTMuMC41NjcyLjUzIFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA0NjgsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImFjY2VwdC1yYW5nZXMiLCAidmFsdWUiOiAiYnl0ZXMifSwgeyJuYW1lIjogImFjY2Vzcy1jb250cm9sLWFsbG93LWNyZWRlbnRpYWxzIiwgInZhbHVlIjogInRydWUifSwgeyJuYW1lIjogImFjY2Vzcy1jb250cm9sLWFsbG93LW1ldGhvZHMiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmlnaW4iLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tIn0sIHsibmFtZSI6ICJhZ2UiLCAidmFsdWUiOiAiMzY5MDYzNiJ9LCB7Im5hbWUiOiAiY2FjaGUtY29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwLHB1YmxpYyxpbW11dGFibGUifSwgeyJuYW1lIjogImNvbnRlbnQtbGVuZ3RoIiwgInZhbHVlIjogIjY2MzE2In0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAiZm9udC93b2ZmMiJ9LCB7Im5hbWUiOiAiZGF0ZSIsICJ2YWx1ZSI6ICJTYXQsIDAxIEFwciAyMDIzIDAwOjUxOjU0IEdNVCJ9LCB7Im5hbWUiOiAiZXRhZyIsICJ2YWx1ZSI6ICJcIjk5YjIyMGU4Nzg3NmFjMzE4YWQ5NmIwNDczYTc4YzdiXCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiTW9uLCAyOCBGZWIgMjAyMiAxMDowMDoyOCBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBbWF6b25TMyJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJPcmlnaW4sQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzLEFjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kIn0sIHsibmFtZSI6ICJ2aWEiLCAidmFsdWUiOiAiMS4xIDhhNmY2N2E5NDIxZGUzMjZmNDNlOTEwNzc1MWI1ODBlLmNsb3VkZnJvbnQubmV0IChDbG91ZEZyb250KSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtaWQiLCAidmFsdWUiOiAicGstWDE1S1pORmV2RFNFMTN2cXhuTFpfNEpBYnV3Z3M3bHpDMUNVUUlYVEN4OHE2M2U2dnh3PT0ifSwgeyJuYW1lIjogIngtYW16LWNmLXBvcCIsICJ2YWx1ZSI6ICJGUkE1Ni1QNCJ9LCB7Im5hbWUiOiAieC1hbXotdmVyc2lvbi1pZCIsICJ2YWx1ZSI6ICJudWxsIn0sIHsibmFtZSI6ICJ4LWNhY2hlIiwgInZhbHVlIjogIkhpdCBmcm9tIGNsb3VkZnJvbnQifV0sICJjb250ZW50IjogeyJzaXplIjogNjYzMTYsICJtaW1lVHlwZSI6ICJmb250L3dvZmYyIiwgImNvbXByZXNzaW9uIjogMCwgInRleHQiOiAiZDA5R01nQUJBQUFBQVFNTUFCRUFBQUFHYk53QUFRS2xBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwWkdWRTBjR29FS0cvWmlITFVVQm1BQWlYWUlHZ21DY3dxVzJnaVZrMThMb3l3QUFUWUNKQU9qS0FRZ0JhZHBCOUlBREhKYjJ2YlZnV1hZTm5QZFFubzNCUkx5QkFxS3R0bUloUWJRRS93U284NGhKckZBaTRpNjc4L1BkS05Ra1hudnlnbUZUWS9oWllMd0t1VUoyYWJEcU1PaGRvYWcxcWIrRm8vWi8vLy8vLy8vLy8vLy8vLy8vLy8vLzNlUWZJbCtzK1FsODVLWlhYWUJoWUtJMzFxcXRrWGIwMzYwcHozdlRoZ2dNNnBRdGE3V3ZzbWs2NFlxSTl1MERyUDVJRjFyMHN0QmEyUFh6ZVNRVWlkNnNaVGhYYWR6SmRXMEJoUWkrcStPWkVPcVk4T1JOQkFCdzBLL2Z0T1BXemxwYUJ1R1UwajZFWVllT1ZwWXprS21OZENodFJWNGdzOFc2RHpLdXdDZHRIV3F5L2RkVDBnRElURXg4ZFhxdys3anRlUlYxQ1k3bFg1TDJnbHZUdUdSWVFOSldFMTB1am1YVzFLMTl1bE1iYVZPNURPSWtQV1hTMVZsZ0kyUWUzTVB6Kzh1MXZmdlA0NHkwVjgxOVRjOTZOVDUxekRVaWVyMFh2Y3VvOU9paUszZWFJSUgvRWdjd2pJdWRnN25wZXoxdFg2VTRIZDlrUTlVSjlMaW1LQktrRlEvTWpQMVQ0OWJPV0tWR3FnUjd3aVQ1bCtFRzhJVitpQTc0UldJa0h1WnEweXdsV1lJUXRxdllUV0VKQ0o0a2loZ0NpdWVGL2dNdzdONlQyOXU1WlNxNFRZNjBFejdiL2xiV1BhOU5GSTFUR24yOEg3NWJnN0owdWFIc0RPa1E0WDBlN1RUSWR6Zm1SbVFCYjJhVzBMU2tONkhmMkExVkllSzZUYURVZkNuOHFPOE5FK1grUStwZW9kbTZOM2ZJSEZLMnNPOUwvNzUxNW1RcWxNTnNJTWtXRXBhd20xaURrTlk2SHl3Z3AxS3dPb1E3bWVRbGtDa2dlNXoyWEJseWdMWGNrZmJvc0IvNFlpYkRJZ0ZUZFNTS2l4WlhBZWJTc0NFcENIY0Q0cGZ6YzNOMEN6TnV5dS9QM2lOVUJVL2RlWE5ZUlk4TFg3Nkg1d2FPa2dhbW9GZTM4cnZZZUxxUVZ6ZHNvQndINCtML3o5S2Y1STNheE1pQ2d1NlVYdVBMT2twbm4vdjlleEY3dlFmOThHbGx4SE40dFRXNEE5TStvNkdGODgwcFAwV2N2ZHpHT1IxSm4yUmlTNkYwNm5IMndocDZCd0hmQXpKcitXRi9hR1F4NEFvY25rN0hDd1JGU01PY1lyTDdxM3RNN1BmK3NRdjBmZGovKy8zMmpNUFVZVlpBYUNFOG1HZGlreEZoaFdCa0ttb1NGVDg0YW9QcEFoVjZGamszL2RmM2RVSHZNSzdPK3V6OER6d2l3b2haQTYvZzBTSUFLUU8rZlA4TnYvY2M2OEZ6MnlHMVZqTVlVUzk3VFArVzJTMUt6dVI2ZUhVLzVwUmE1Wmt5NlVtVHZuUHlXdC9Xd2ZzQURySUQ3SGxTOGdCdWdNMHQyQmdJQUxDR010a2tXeGpZeXh2YTFiVVJvYWtBYWhnRUFwV29tQWtJdHBZRFQ3cUd5aGc4R0pnNTc4K1E5ellRcXJpbzJBUWhKNSt6OS91bnZ2MXAydE53WXd4UmdoQmlXSlErak5RWnlVbGh6UHlQUkV2OEdXcGthV052Y1I1QnJ2TnRna2ZZUGlBcUFMc3VpZFNyMGxUck9pRWFRS1R2L0gwY3FEdmVoK2JWSzBEblE0R091WVJqM2pKZ1U5L2tTbVVPM042SXJ0NHVJSUZzcng4cUZJcHl2T29GQXBsdkZUNjhRaHpWMFdhV2NJODBPWURLMG5SaGVqQlk3aFhsLzJNWkdYZm03RUM3ZjNQcitlbVowbGpTL1k2V2U5RzJmaUlmTWR0dHYwRVZBS1d3TWQwVmZsZDViMXhHMWFNaTdEaUpKQ0VDTE9MeE83K3ZTanIvNzgxTTJmdldsZlhTZ0pIckU3ejgxWG1kRjl0a0pkNU5nUUxhZjdNN0hldmdQckJPaWIzbmZkVDZDalVUYUd1RVFxRlFxRjBaWjc3a1RiZ3U3YXU1NHZrY1NOdDRCUDZsWDFWQThuTE5vS0RZM3N0T3p6dGhaK3N5a2s2TmxhdEx6SUZiMlhNVFYzbHF0UURaNzFIVURGT3J6aUtvMXREUnJLWHl1NEgzZnd2SVRXZ1dDcUlCdExnUVpxV1F1WDlONHhuTWt6ckRmczV4d3lQTnZNTnBoV1JManljcC8rL2g5Y05PSW5vZ3dHTGNPUnJBYml0MEN3L2d2ZFFaNFphdHZOeGlQd0lRU1hLS1hUV1diWUMxaU8xd3pCMWFnd1V3QUNUTWNldFZnUU16VFgxdWQ3Y2ZzTnJKVFI1ay9SQUNGa01qTFg1WUZzUmhDdWFybnhhRXl5Q2lOZGlqYmhhTEM0YTduUXgwTDFha3hFRHRCOHZIMDh4Y3ZOQ2NPOHRLT1F5NDZ0U3JrUXNNRXJ4eGxKOWMrVGlzNU0vVjQ5bEhZUGxLSlpUaWhnc0lRbUJnRWdVVU5DK2U2VyszMWI4ZjMrdCt2QWVYa0p1WW9CWFVrbGhzRkNSbzcxUTFadlRzeTJmczJPQVhrZFQvc1hDVjh0OU5BOThNNnlqUEVvbytjMm10RVJrTGUyTnkzM1ZUWkRCSUsyRTBSd3BncC9nb2MveHJuRllWTDZHZ0gzczEwN0UzdDBodmpNN24ycjd3aU5wRWdzTlFvUFFJRFFJRFVLRDBDQWtDOFVTUWFBQmtRMkZhUDI3QStzeXRBcUZjaUllY0lxcnkvQkE4UjRYQncvLzgzWG0vNjNmYnozSkNyNVZ4d1ZVbjhCenIwcTg2ei9JVEpHTUYvQ3pwY1orTWlHbnlmdHE3am9YeUk0cGZJWEJLU1RlRklxNjBiNVE4cEkwN2J5bTRVdHlmQng4L2QrenYrZWRaSmFqRWlpSkUxb28rQmg4REtUUk84VE5wL2RlMXJ2WFhmeXdDa2I5S1loeEVwQVl2aCtUYVhLTGdsV3N6N1pEK1dNS1dnNnVINFc2R1V6TkVCWEw2VGRnWmsyUG5MREN1czVzd2xKaFExVDMzYWRSWmNNZ1BoM2RTNmZsdUFxSjgzMW9PcWRRWG14NkdmWkJiOEY2aEJ3T01lRHlpSlovODgxMzZzUUJkTHQzQ3JiV3hocG9RQnJRMStoaHYrRXZ6U2FZclJhTG9Na2lLeXVYWHhuSUlGaU9hZUJEZ1EyR3l5MW4wNEVZV0QvSW5HQ0Vnc2JhdXkreTREdTRYb1JZQ1pFUUNaRVFDUkdlMkUvMmQwNjBEWXhpK1FnV1dSRU9nKzJCQ0I3cVRFRWlXd1k2d3lXcFhWL0lBVDJSaWhPcFNCTXUrdy9UMXZxbTdEZDlNV0FhWTdXeGFWNG5qZ2x1RjVIL003VXlyUUtJbmNiZThpMTZ1UVlyUzV6MUwrZktHQlA2SUhLTlg5WFY2Q28wUVRRR05OM0VnQVRtUmlRdzVBekJkUVJ1OTZIaENGcVJITFBHK0hPV0JNZjROeUxYVXRhWnpEa2ZYYWdrVkt4czNrVnkyU2xVbWl0VWxDb3lQZ2dWeGJyUFpwL3BuLzg1T3B1emRKZE5CeGphU1NxVnF0VzdndFVCR3dBam51b3VHT2daSFJEbGpzeHg2Q1J3bHJiR3RQN1JQWGNHT2FTaVpoNyszMVQvYmJWeGhVdjlhRk5oZWZWMGFPcVhpOFpGbVlxV2IzUTRXQkkwR0ljZkVzV2k4bnFWM1hrdERnWkRRQ0RJSDFQOVcrZWlMNjlBaDNtcTZJNStSZlZEWmYvTE4vMU1lYnJaZk9UNlYxT29ud29GbVNRbHdBRm1yWWw5RUErYmQvb3QrTmkvZDFFUVZmVzVzeVBudU9zanVlbnAxKytOdzJBTmpkTnU2R1FqS1FnVnBHbFBEMVRWR01wUUhzc3Y3M240MnFlZjFLZmJ1cHBoNDlKOG1pcVgwQkRtMldrQVhRR1grN1hsc3A5ZXY5bFFsbjJYbi8xWFpWMVFZQWdOb0lFd0dLaUNWSU1DQTRPREJUdnVoNGNCWXFEWTVjeWs1NnprN2ZjaVVNQldTNUZ2TGRsSnpvN3VzZU0rMzRkK2gra095VUtkSXRUaFY0QUxjZjkzN3Y5N1BRakNBcm9SOGhIWjBXak1BMHd2ckxOelp6SUVWTHB0MHV6dW5kejA5QXdpS1JKMmhQcEFKTnkzMzlFWlYvbVUvSzBBRXBMY2t1ZHpSM0FMOElGSSt4MUJoRzA1UmhqQzNES01oNXJBYUhLYTlHTk5lOTlRN0ZFeWNaRWdWdEQ5clI5T2RTZnJYMk5adStNSmxvLzRqNGtUQ1VWS2tGSkNDUkpLY2NkdHpySTYyYkMva1B0eU14aGpqQkJHaUVLbjBmU2xOS3kya3RIUjJ3eWoxZ2xnZ2FGU3IvSjVQK0kwZjI3V0hiaE45Z21LdGl3OVFVeVNBWVdHM2lHYi9kZCt0N3MxYVYvQkF6RmhFai9HdERweXBmNXZxNmJZMnBwWUFnWlRYRUdZQWNLbUk5L1p1UnhZZzNxL1gxbGw1M043dnVjNWMrOXVqajVGeExNMWlvSldBU1hKajY4ekphN2R5ZmVWVzV1VXNDd2JlWUU4dEo5MkxuK3QvMCtjcXZzMVUrL3pQdTYyZXdZZFdTS2lnR3hDZ0FRNlNUY3h5YTBjcXBkS1pSK0MrelhkVFBLL1AvZWVxKzNHZHJQalJvamhra2trRHVSaHgxLy9lazdVdnhmQkFGdG5iTmtBOFBGRFc1Y0FQM3NxY3hnUXNCYzhDeXd0aUlpSXhWVGlab2hibUEzZGJoSGlQb3VoK3gxQ3ZPZ3c5SklHeEwrYW9QK2pCeklpSWdJZE1URkN4bmhDNEppbUJzbU16b0taMWJOSWJ1VTJ6SjBPUVJoWVlNQnVlMGlCUFBrMWZpVG9ta0xyaG5lcVJFaGY0L01sUXZxWkZpY1IwdS9NZEltUS91U2tTb1FVMkhSQ01FOThqeDBKdW1EQU1BcVdkTXdRMzJBazh1SW5reUJGbGhRcENwUXFOZFVNY3l5d3pCcWJMVE5EbXowT09lNnN5M2l2UUhQVi9Ycmpkcm5qZDdtVGRybVRkN216OWhyaXZqSEVmWnNpN2x1NTFVMTROMWpiZkFkYi9XRGpCb0RrYVhmamhtc0s4TW8xM1ZTNjY5ejM1UXN3ZStzR3J3UW9vQitmakF6bU11UktvNnZKdzJ6eFFuQlRkWE00bnA1dE53UkxLZE5odWt3UDlQSUhnTUZGLzRFOHBKQU5qUFpRbUVIK3hxNnJzOWVzcGc1TTJNMWNWeU5hd3hsZ3JrVzBoelNPMUFBYm9KTHRuYWVDd1BWNFVrVGN3bk02MTNwR2xNN1UxQ1l1aXQ5endGUlAwRWtoNFhDMnUxdUdtZTlIcEprY1haaWVEdndVWUdPU3JDcWJ6OWZFV0hDbUJ5WnA5bkdXNDc5ZmIrT0tTZjNRcC9DUUxtVVFPWnIzYUIvbkNXSVdHVXM0bWYzNEJHR3h1Wk5ORzBYdU1iZUpUOTBmd0VMcGR4dEx5dDRYOGNnbHcrRmtBb2VneGhEUDVTOGVwdTlaYjVjcEtEb3diYUs1dWsyN1loMkFaT1RrdXNGZHdwdFl4Z2RsaFIrVXhQWEZvRng0N3lmU25ldGlma1hoMnR1aHB1aVJCMlRkaHBnN3BaSWRrQXdqSmZKbTF0OUJ6Y29aeitYK09PSHp3WFJnWVFNelV1SW9oY1BWWStLdkh0SmpRYzRoeTArRGFQK000YmU4WE8xU2swa2VEN2IydU0xSzMxeDE2WXllUXB1cmMwbWlMV2c4aEpUNjB2MkhRODZ3TitqTnJ1d0pyZGFVS0s4VEhNMzdpaXo2dFhyZElHVVIxcGFmSnhxNVo0bVRzL0QyRktnY2xWZHZtUWFZK0VsZUdpaWI3Sk1ZUDNQbUJmTVFXZ3FsYUhqeFljclE0L1dKOCtScVhLcXB4U0hxdWhmbGJTek8xTkRteVlxV2w4TGllZzR1R2xKQVFoTWxPSnRPSlFFaU9jQSt1ekxHOG5WdzBGWlkvbVVxNGhUSU5FNVkwZ2lSOU9WSjdwekhRWjJBNE5xNUI3Wkc2NVR0VnJtSTNXVzNLdkdSZ3pzQW9NRGpUR0dPYVp3QmdMazdDTWZySXovQ0thNW04dGZqQmd3Y0Vjb0RYcUYzdHowc3hPU0NWMGFzL1ZvVnY5eXRuWlJuYjZrVWVqbWg1RTVDSWlQRXBUMXljRTUrSmZoWTRJUTF5d1VIejArdnFhQllOeXlDdko4allvWUFNK3pnVTlCRm1qdVIrd0tESmdKSkpVNXhvZW1jRitCQVYxRWJ3MS9mRjUrY3g4Y3VOemNVL3Y4dDNXTmdBdVRzMll4dW84dTlaZU9qV0xzaHZqRUxTZUR5ZUkzbXNWamZZSVo5blBqK2xkQ0JydUxrN0VmN3RPYmN6ckNQa3pXekZOb2lmditmcXZRVk13RGpjSko3QWwzNStCRGtvNG9QQjhENFlWUGZvKzdORXA1VUVTcW9yYWNJZytzRW5WbjFoa3JibTdoQkRBUHNOSTFjM2NqYUU2ZlpWUUtOblorT0hYcjlpdDhhcGZ5Tkp3OXhEZVZudjFFUnVNREJLSWVVZzd2bk5yLzJ3citaSzY5cmJVZS9lVTFleHRkTGJaeVlic3A5MTlVb3RDSFZoOW1LRWNNOFFTQVU3eWRGQ0pPR0NOYTgyam10YUNoZmFGWWZSRzd5cmxDZVk1T1U5VDdybUVINEZnWDV0NjhObE1JZVBISVp6UktJL3lEalFIVmtPREdkV1d5VWczSGxQQVZmSmRBS2NaRk9iSlM0Z2dUSkRYR1htbVFlcUJteXVIaGlYbkp2aFkreTZBRkFwK1hMZ01Gb0ZCTW1LeFludGxnYzhiZ1M4YmlObG9Rdm1VQ0tDRm5Bc2dtVkdLTk1tSm5HcXExSW5VWXdUWkRtRjI2QnhaQldGR0dWdFhCYWl0TnFJNUpOcGRwcUo3cjJMOFlNSGZaaU9PdzR0cE5PWWp2bm5Bam5nWFpkQURseUVXeEdGOFNHYnFnWmwyQTIvQVUzb3dkaFk5d0lpVFNMUnB2RllzM2k4V2FKUkhOa3Nqa3ExVHlOWnBOT044OWcyR1F5emJOWU50bHM4eHlPVFM3WFBJOW5rOCszSUJEWUVnb3RpRVMyeEdJTEVva3RxZFNDVEdiTGxTdUxidHhZZE9mT2tudjN0ajE0c096SmsyVXZYbkJsVlUzWTI4NmFDN3JYMmZDRHlleHNzYW93M09IZ1VEdzZ4cE5UOGV3Y2JYYlI0VVNYVy9MNXBWQllpc1VsZ3BSVGFZK1pyRXpSSGhuV1l5NXZWU3BiMWVwV3JiWlZwMnRGV1NCSWlVU3BzYmd3a2FTbjB1Sk1scDdMQTZVeVVLc0RmZjJrb1dIeXlLaWdyS0lxcTNYdEU5UEFjTUR4Nk5QcFJHMDNqeHdQenZrVTN0K01sQ2pPcEJTT2JRMWRaK1I3RUFZYmNTVHFpcHJZbE5TdEtUU01nbTZhU2JWczZZMnhwelRXa1lxZnMyQ3lLelYvZHhyalBRRUNmWjBDMDVzTmpEc0ZZemF4MkMzTXJKc2hwSlJLT3lPeFN6SlpVakYyOU1yUzNrZk83bUxGVlVxUVhpVkRSaWVac3Jzb1VGRHVmNFZsclJndytNQzN4bGVBOGNhenlUcU54bUF3UUNaVHltS1poRUtTU0FSSnBVd1U1V0lZcGxMSnRWcWUwYWdnQ0tXN3U4eGs0bnQ0cU14bUc0dEZrTFJHUnVvQWFCQ0VnYW1wREkrbmhSREo1OU1VcFMwUVdBcUZWalNOTEN3TUxTMkx4d2pMd1VIQnlVa2dUcHhROGVKSkpVaWdsQ2lSaG90TEZEYzNoaVJKbUpJbEkwbVJnaVZWS3IwTUdVSmt5WUpYb29Tdk1tVUl5cFZqbTJtbU1lbzBnWnR2UG9wVjFxSnAwWUttMVVaMG0yeUNzVlU3bmwxMjBlcXdGOTgrQjBrY2NvaFpwMDRLaHgwbmNOSkpBcWVjRmVXY2MxZ3VnR3k3Q0RhckMySmZOOVNzU3pENy9vS2IxWU93N3pMU2lpc29yMTFGVy9FM3htdlhzRlpjeDNudEJ0Nkttd1N2M1NMNXFJL2lvd0dhQTNjWkR0eG5PZkFQeDRFaG5nTVArVlk5RXZqaXNkQ3FKeUpmREl1dGVpcnh4VE9wVmM5bHZuaXA4TVpybFRmZWFweDdyM1B1TTlENWluUytFNTBmcktlZm5PcFN5N3RXMm4wNzdhR0Q5dGdGT0hFVG5acUFNdy9SdVJkdzRhTG8wbVVBQWhVaGtFb01Wa2tnS2tsa01vV3FvOUhKREthT3hTWnp1RG9lbnl3UTZrUml0RVRxUmlaSEs1UnVkSG9tQUtvTVJxYkpyTEpZbVRhN3l1Rmt1dHdxajVmcDg2c0NRV1lvcklwRU1iRTRPNUhFcGRLY1RCYVh5OHNMUlErbHNyeFM5VkNyeXh0TkQzMzk1SUZCM2RBd2VtVFV6YnYzK0xLT3FxelN0ZFhEQWNZamJqZWZIQS9MenlkM3ZkVDNsNWovUHhoR1JjNzZ0cVZjWitGNzNUQ0k0bWlkSmtHZWliSndZM2MxU3lvZ2EwSk5nbmd4azJuWlVodGpEekRXa1J4d0ZrWjJ4ZEZ4UjliMXhOWHpaaExvNzd2M3pDNmdXZjJHdGU0cmhQUVBrMTlqQzB1UnBMUzE3YUZDV1VYRldPS1ZwZHhIems1aXhYV1JJTDJEMzJRVStGMTJvYi9rOVNwZmZvWC9GSlMwUWxlREQ2K0dmN0VUYjBHQ2daQ1FqRUpCTnhvTGh6OCt1VUFBTFNRREV6UXJLeHluV0hqeDRoRWxTa1RpbG9Jc1M3WndKVW93bENuRE5OTk1MTFVXWTF0aGhTaXJyQ1hUWWhPVnJkcnBkZGpMNnJEam5FNDZLZEU1bDMxMUZlMmJhMWpmM2NEN29aZm9wOXRrdi9UTC9QWU5tL3hnelg2SkZuOWt1eEhWVWVVZisvZElvM3Rpc1QzeitGNUVTbjJOM3RoZ05MVll6UnhPYzQvWEloQzBqT1N0U21Ycld0MXJYNyszb1ZIdnBWODFLc05KZmJ2WmVUejkvZjUya0ViLzZoWm13eitIak1LYnA4VTRlUHNNbUplSERhMVlZYnRXb3FqZEdxVzQwUmVucFB4bGE3L0JWeGcvRUxEYloxUHd3N1VUM1RiS0xiaW51M2QrNjNPRW9rQW9FaXVVYXVxWTdMeldrOWNvdmJnQXgwNmRPNDk1TXR4WWllbDNmSFljVURTMU1CUXpvN2ZVbWJvZmpZNlpwdW1MdmlxQnZkbWNNWG5UL3AvalI4MittWTNtSkxndnVtOGN6YjNKTHBpSG0ybzB6MWE2Wk41a3k2Um9QbDEwby9uUjdYM2s2cWhpUEFDQy9xZ3lQQW8xZ0RFc2FmcEdDUUtpcFRlNHUzQ2tURGJsMFNSc0hyMVlBZmdtWml5ZURJa2dlTyt1TUJPYUJEcGo5V21iR2tWclI0eU9WWUkwZVVwVm1tV2VKZGJZcU0wK1I1MTFnODZYdTFGRGcyZ1RBMkl4bUtFTWUwUWpIMTJzU1VnYUFtWWtLSmhFTE9PNzRzQ1Q0c255NURXcG12ZHM5ZXh2T3RtODczVFR6ZVlEL3A0d09ZYjJycllkU0h1VnZ0WWV1SHVnY1N0KzhEaDR6Z2cvZzluRndaY3VIeHMxQjU5Z1Z4Yy85RFI0dGxyK0JLenAvODJINy9TODcvblE4Nm5uRis1L1AyU083UGNTNDZObCtBdFk1YkhUdkhETUxPcVhmTTZuZk15YzFLZnBCNnhEclhsZTFHbVBKdi9LMDgvWWVCa0xhLy9nOWFkWUptSml4akY5MnBDM3FVbHQzdVZEelJySURKbDVKelM0NEZpY1lXYkZBU1VDa2RqL2xGVFVOQXowZEZ3U3VTWEpHcmNFUW95TnBMN2YxQ1J2dFMyNWZndnpEMkVlQlBOUm9RM21YeUtwbmN4ZVRpZ2NIRjFvR1JXSXZwZjVKQWZyQWNWTGt5cFp1aFFKTWx3UW9WeDhwaGo5aUZnZy9UODNVNWM1cWM0Y3hMMllFV3p0eUxEVUJaTXJsQ3ExUm92cjlBWlh3czM5aDlYL0w2UlBMKytpcG13NWN1VXJWcXRPdlFaenpkT295WHdMTExUSVlrc3N0Y3h5SzZ5MHltcHJORnVyUmF2MU50aG9rODIydUFpRkk5RllQSkZNcFRQWlhMNVFMSlVyMVZvalpubFJWa1BsZ0N6Q2lEYlJKV0tpVHd5SjhZQUhNdENCRDNLd2d4L2lrSWM2NGNNWTFuQ0dONElSam5naVJ6cXlrYytLV1Q4SE03MnpXcHQ1T1l2MHZXMVJEQkJyWE1uS3hFek9qTlROMGxrN20yZm5ISnpqYzNZdXo4MjVQMC9uOVh5ZFgxTThsVk0vclhXZVIzUDhCS2VZZmxwZmorZnI2SEJMSzkzOStJZWpzQVF5alpHRm5Rdk95cWFmMWlNcjQ1VVlwTHJVZ0pvRkVWd29ZWWFmeU1nRDFGUjdFNXJTckJhMHRGTTdvM095TU11ek5wdXpNL3R6Tktkek1kZHpONC96TXUvek5iOVNuTXJVcHpVZFpVekVqQnBXVEVtbGwxdFJaVldmNGF3WGQwbVhjWGxYZkpOdjJzMjZoaTd1OHE3dSttN3U5dTd1L2g3dThaN3UrVjd1OWQ3dS9UN3U4NzVHVTVpdlRHRXB5amRtVElPbE9OK1pNeDZXa3Z4Z3dRUm9TbFBBRXBxeS9HUUZUWGwrc1lhbUlyL1pRRk9aUDJ5aHFjcGZkbUFhRFFlTGNCTTBqWndaRHFhSkM1aG1ybUJhdUlGcDVRNm1qUWNZTlU4dzdieGcwVFNBTi9Vdy8vaUE2ZUFMcGhNK3dBSXVBVXRnQTFvRXozU3dGRGFEWmJBRnJCWnNCYXNOMjhEcXdIYXd1ckFEckI3c0JDdUNYV0RGc0Jzc0IzdkE2c05lRUIySUxrUWJySm01c0Fad0o2d2gzQVZyYmdHc2tZV3d4aGJCbWxvTWEyc0pyS09sc0s2V3dVb3NoNVZhQVJ0c0pheWZWYkF5cTJFRHJZRWRZaTFzbEhXdzBkYkR4dGdBRzJzamJKSk5zSWsyd3liWUN0dkROdGp1dHNQK1p3ZXMwazdZdm5iQnZMRWJ0bC9Fc0NidXdscTZEMnZoSWF5Vng3QjJuc0xhZUE1cjdTV3N2ZGV3RHQ3Q3VuZ1A2K1Fqckp2UHNNNit3bmJ4SGRaTEFheUhYN0R1L3NCNktvVDFVUXpyclJUV1h6bHNrRXBZWDdVd0d0NWdCMm1FRGRFTUc2b1Z0aXMxYkRjYTJEQWRzSXJ4d3FwOFFLQU5IMS9RUnN4bzBFYk9XTkRHeFIrMDhRa0FiWEtDUURzNHdiQXBBY09tQmdxYkZnaHNldUN3MlVIQ1dkc3NkTlkxSzJqWWpHQmhjNE9IelFzUk5qOWtXQ0ZVMlA4VER0c3pETmhlWWNHcXdvSGx3NFB0SFFGc253aGgreWNTZGtDa3NBTWpnODNNQ3RqY3JFSzBJTm9zMG51OHRMNkJvVTNYTmNLY1BzMVVaOHd0VlUxb0ZiVHR6SFh4OWZ4cWRmUU1qRXpNTEdKWTJkZzVsRDJPKzQ5aUNSSzV1Q1ZKbGlMVlZCV3FiYlhOZGp1MDJhbmRMaDEyMjJPdmZmWTc0S0JET2gxMnhGSEhISGZTS2FlZGNkWTU1MEVRR0FLRndSRklGQnFEeGVFSlJCS1pRcVhSbVJEaEJFbFJLZjZ6V08wT3Q4Y0hCSUVoVUJnc2prQ2kwQUFtbThzWGlxVUtsY2JBSlBESGRselBEOElvVHRJc0w4cXFidG91dktFUW9hc2hkT3dIczhEN1c1THBOcDAzTUJ2bnR3T3NjYlpLWnpRWGovUU05V25VSG1YYkZXRjlPZTQwOWVzK2JENUxtdDFSR0ltUi9oYmlVUnRuWnFQVUNpM1ZJdjh6ZTlpcFltVjJKb2UvT1FjenMvVlFTbHNOdjBpb0kybFlmVklEWG5XMDRUWjJoVzFIRFpqeEtVYzkyOG51QUY0RDRqWng0ejRTWkwyWmhzM1Jka0tEbkFBZ1A5N05yNEE2a05TdnpPN2hmM1NwdDZuTzg3S1VVUGZXZ0E3RUNYL21ubG5BWUdtWnZwcGx2Q0U3M2g4dURrZ0tVMFYzMi82OU9rcDFzWU9vQXhqaXdNblR4dFFlUW42VkNSNXhjbGhnaGpnUXQ1NDFrRitsaWdqMWxubHloRW90SE8wOFVJMDcwd1phTzdnU3lGVTVabzRuVFJpOTZaNzVzOUNoZENsYVdFNXB0bGwrM1lzc0V0RWx1aWkzcDhGRmJkSTMzYmhKZ0FZcVZvWU9TWERGbno0K3BZZGFWM2poTUM5emx0cUxRWnMyQ1FlY1ExNkxwMnJJTnl2QmxWdGxkT1g5azZMaFhhZTNoeW5sVmxGZHV6MUk4ZkNNZHBtd29aUWMvcnMxM1RJcTdTdVovcFFnVEgwQ1gwWWZqYlltZHBrUVlaeVR6WDFpL2dYLzYxcnBHdU0xZmxFY0N2Zy8xMUh4TVlGc2FBYnZZLzlrcHpsYWxqemVQVTltb0JvWTh6OUpORGZGcmVLR3h4a1B3N2ZYSFNPY0hFeHNFOUtpRXlHWm5UVEUrK1l4SEljN01oUWtrSVdTL294a01uTXRQd2tXL2VrNjd1VVp5UVZTVi8ycVEyaVVWOHlNcjhIaFVia2JLS1duZmFJOWJCYVdPVXd4ZlRseGcwM1BvQ1hCZ08yY21LL3JDdGNWb3NMZnQwUnl5TldIMExJak5rTEJmUHZkSDQ1NHo5U3Ntdk9qUWNYcVdLR0w4ZWpjbks5MklaMmRyQVIzL0crdXhTeU1ZVzZheGpmbiswbkZacmF3cERrRmh6U2xNZlRzUFRGN0QyWUhRU0VDWjQwRllHd2lFMzV1VWUrVEdrUDhxSkx2VGdtNk1yT01GbHZYMTFMZ2hablByWG1lR3F3OVdoVEgzYkRaNE9JdmtMeEQ5M2Z5dTk4eU1nSHMrK24yZnZYVGlvTDhlVVlDYndGbWE5MEhUb0dCZ0lBVElNRDZPMHJBQ2JEMUd2akFiTnJXQWZ2Y29uaU1tWlVWczJkT3o1MzVQbituYXBxVzdjSXV3Ukt2MCt2UmVySityT293eWxGRGFoeGthR0dIRjFXQjJqcXJDN0k4ZS9LeUhNdThsRXUvNWIzZER5ZHRhZHR3aXp1S3crQUlPQXFPaTVQaUFFa2pVdnd1L0JGOEdKNkFwK0FaZURaK3RqUkMyRTQ0UURoTWdCQVFCQXlCUVRCSXg2VXowZ3N1VDV1N251ZXhqb1BDd0VVeS9FNkFmU2JZbmE1anlZclpQYWZtOXR5YmdpbWV1bWxkRG91eXhPdlVlcmllck0rck9zRHRaQitYR0ZhNFVlS0dwVmRtWHdrellObVhkc3V5NWQrZkJBNi9FT09PNEdBNFhIY0hKTSt2bzg4eUhKckQ1OU1FNWlEejZQL2ZWWEhUZENjM2ZFTTNzTHI1Wmh1c3Y5NDZwcHRxc3JGRy9lODhOYXhmdDA0YWhXeWtyYTdtbjcvdVhJaGhZV1lDQXhVR2t1YzVsc0VkQ211NWxiZzRPdGhhRy92OHhRMWtlcFNXZE92U1c3eEdJaGJ5MkhpLzM1M3Uvdy9rNHJySEtkT01NNHdWQmlkRndPbmJsd2dXSHJSUEdmcmFXZTVKaHQzR1JwS2J6V1NwZG45WlJzWEI4Skx2aUlRdVNIR3FsNytpanlDU0tLS0pJYmFaV0NqUWk5NzBBYXBUUmE5K21YVTIyMm1mdmZZNzZJQkRqamptYU5YWGNzcEorWndMOGtXWFE5YzEySFNuR3R2K0NReFpqY2tmdTZNWnRpWVRHYnJqRnR2YUM4YnRSSzRheEtUdHplbWNXaUo2MFhDbSs5VmhWODNSajVFN1BCRTVscE1hNWNBejlXV3VCVGJGZUVJeXFaUDFDaWlYUEZkNjNaMEp2VFVDOVFMZlVIS1BNczJVVlhSNlo1bHZ1WGxXV0ZwZjg1VzFkYm8zcmErclh6NXMwNUFqYzlvWTk4eUpPV21xQitmVUhHVkdDRkdzbGdRNGZCdUIyY0t0KzB6K09uREJ4MlhRdS8vekRKS1ZENHFkQzM3RnZSenA2T0cwMFVzQkNTQi8yT1hjTzZBRlpFZ0JCc1U1VzNhU0ZHekNEcnZiUklIMzVlNDJPd2RYbDNqWWFRTTRUcEJQYzg0VEJYMWZyVi96SHFvakN0Z1JibE1TRllyRE45ajlEVXI5SDlFZE5LZVBCRlliMllyZnhyWHZ5MW9qUXZaM04rTHZjbzJxRkFoSkJtM2k5Nm5vNGlnYWJnekhCNFQyT3JTdjNJalQ3SUZGWDBLL1RXK3FiVnFIaXd1OCsrNE5GSGoyalFVT0c4M1pISExiNXN1aDI4QnI4M1B3aEFtMVJtVUtKTTMza3JsR1ZFSlpBZlJ4QkhadWdWM1BnVmMvZ004L0JPQVY5TmRiR0lCRktRcVErQk0ycmpOVUUwc0xyb0lPSTdSZGdVN0tjWVh4QzV3RkdrSmhEcUQxenhneUpIbVlGVjdNOXY0MDJaeVVVTEMzcUFLZ3kxQS8wbHZJWXBpUXBRMVFDTlI2UUdBVkhoRExqRXpHRkI1dkI5aXpNOXplbWtGYWRpNHlLMEx0QkV3emoyRE1jamc2cmlGSUZLZzgySk0xWUUyMjdISGJJU3VrWUtXSlZmQ2FMZURaa0ZkcFF3WUV0RVlBT2MyOGRqbEJ4MGtMTG1aUEJHZndvbmpoOURyQ1NVd010c2diRmh1dVEvRTRLL3FqSzZzaEw1Qk9iLzVaOHd2RjdyRVo4OWRGRXJqOTNMaC9oZmNVNXNKQ0FKUFlDTXJsOHlWU2tsQmlVQTN4UGRFTEI4S1BPSmMvTTI1R1gzcC9Ec1ZFVStTakZCWEV1U3RMakxwQ1ZkQzlLV1A0UlJPT2ZUa1FGZXB1NmtucStpajAzT1JjU1RLbmFCTGovcUw0cTdWRTJWek9zMEtEK1hLUlpBRkNrY2lQOWtTODVndnRwUTd6dVJuTmxQbjNmbWJ2VUFjQUJBYUlmYWQ5UHBaSTdIWmJZbXJYeTAxVk9YNTJtSlBLb3BxVUpBU1FDL1UvdFZIdkZ1OVp6NFQ2S2xKMWEzWFh1cnZKSnRMV0JrYUF1ZWwxNnRXTythSUpWSHE4RnRWZWUzMWFoMklpdTNyRmVnTGRlSmkwQjM3WmtaUHE1S3VxZ21xMFVDWDI3N0dQSEVXMXFod0VlNGpEZTF4b05yaENnb3JPY0tReTRnK2k0a0l0bkM4bklKdUdSUlV6SktqNFNRN1JETEdzWk5LaXNWL21CZ0FKS2gya0tsVGU3ZlluT3dJZ0tVYjNGdXRTVEJCbHRNRGtTeUU3OU5xUkJKWFBiTUtCdzdqNW9Wa3dZWkZKRms1OGFlUzk5SXFtR1pWWVdobnNHTTVsUjU0K1dnb0daSmFMRmlqNHdrd2ZaK1NCa29SNHhrUEl5UVNFWVJpMENlVnprSjZIZUhoVXdFTndyeWVRMGFRYWxpSUYxSXR3YmdMVmJoNzhUVzNya0ZFM2xpeDNyTGpMS3YvL1dhL3A4bzJSQWZHVVN5a1pCVG1Va0pWRm1VSEx1VjgrUjRsaXBSUDlaQTJOaWNSM082bzVYNG5OMFB0YUtxblhqa3FwZzFDSUJNWklzNUc1RVJEaGJJNWtLWkxKUml4K3dhTHRBK1hibUpzNWVTMUFCTzUyQzk3cDNoeC9VeDFLOXI3dTdiVVdZeFFsbldzZDBWb01zdVNEY1lIczFOb2s1RVByT0NCMFRXaFVoTUU2cUlMS0RqbUlnb2dHaEdjYkRGSXJOQnZPRFcvZlc0MVJINDB5Q1hQQ0FRNXAwVUVCRVFRcUg4dTdSYVZNQjhtazlBaW93MHlOanhJT0F0SGtpWEFCN2dobHRzVzdiWEJjWDFWdE9LOTZ2Y1JEUzVxdERjWm01M2g2ZDFLM1pXR3ZQekVjZ0x6Yy96VFlyL3JUY1ZEbjROUGUvSnErN0U1Zm45VGtFM240clBrODgwRGtjZVpRNFhhbjRVQWE2OTQrS3RvSG1rMWpjU09PT0g0bFc1WGtnN3lZQjJCaEpiR3hXd3U3ZmZ1a3ljNk5IanJYdG9FZFQxL3J1dTNFMTQvb2RUTGRJL3V0eDlhZnpRZHZuN252SzV4WHNENFFXOWY3NXc1dFIyTVFwUXBTaHNsTjFEdjJ6d2k1K0FNL3dmc05kbzV3SEpBWUluMDJCdHZjUFlzZHl5MThiMFBOUExHWStFRHJuT3NYaGhUY0xWaFN1WEIvaDRrQUxzbXJYZFJCR3drazRnV1JMM3hvSVF0ejF5SXRDUzdWeDNuQXhOeGFVcFVXY1ppdFl4NkhBSTVhUWZyT2xkTStjQVdRSUVITWtvWURBQ1BOR2hrazR3VVhKL1pYVUZBS01zaEUxQlNEMkJ4aGtyVUsxdkZSTER2V2dvbkFrMXYxUldWSDFBcVVEaVdVVElIRkYxL2hIdlY4Q01hNmhKaUlVc0RjZ0FyMVVoK2tJVWloZUFNRi9XZVd5WTVKT2liRmYwZndqSHQvejBFNmlnU1lXU0lobVF5elFKSHVGeExVVGIwMENDN0hDeTk4VklEUGw2UzRMc3p1eklMSFRDWE51S0pSdXFhNVhNdk1LeTBjeEhOV203cGtTd2ZvV0RCT0NiMDhPS29LR1BXTDZxSmFQOWV3Ry9QVkczTmNoc2FEeGhpWUY5S1JCb0ZzdFhnZnA5b2R0SWpSek5rbWFVaVgrVk92cjB1TGpkSElNWGFKN1lkU05DOEFLOEN0U0ptQ1JoeS9NTVd1WXJkYlYyTm8zV2cyeDJjZVhFMnVkUkVoOFpIbDZjVmhmRXhONU9QNjRjcTZQUlp0cDFiM2VuL3FtZVBQeEdRMmF0MVVXS3c3UDc2M080M3VNMDMzNm9kZ0VJNDVnRm5HcjU4ZVBXR1NpVC9GVkxOcGlnQXk2MlU0c1poMzVqbWNjWmE5OWg1SWhFZ0lBNUF1N1ZEaGpvcWhYcklHR2lWOTJUbmlkREJkSDkxOXYzekdaNlgvci9qbndxY3J2aThySUFMQU1sV3lNaUo2TGNqMEtBVDY0SnVHdjVYZVlnWnpLQXpMOG1uM2p4R25FM3NLQ2FLN0xpZ0tCcFR5NDhFNWRFMVpETXZXamNCd0d3aUFoQzJUaUIwRVNOMEM1QWZSUFFqZ2hlaHA4N2RLRE9jQndLbDQyVGIrWTVPNmp3K2UvOG1ZcWFCNEpHSDc0dlB5Ulo5STNKRURtSk1BWUVXbkFQNXhKenhvZDdVQU9RTEYzSVJzN3pSc2ZXRUhaWE9yUGdzbFRnY2NLaUFpcTVINHZOVFhabitqc2NUYTcxeUUwd0FodkJ4NVp5di9ub3dvZXJwOFRDQ0t1VnZyTmpDRS95RTUwUFN4bHJLeElOVmVCa0NkMjBLaGlURUNVb0FseWRRbkVua29TdSszOUF2Z1kwTGlOdy82c0E4QXYzRkFva2ZUWTkvVGRWK2EyaVpiLzRHTE9ST2dFQ0xPZUFoNzdoVno5bXlQWTRtMWlhWHV5aHFEN3lPU2VRZFFQeEdIY2xRVXpHdmpDMlJjbTZVdE1XZGx5WXV0elc5RG9OSjRaLzlTNU53cy80K1pyRzhucmxZU29HOWF4dGpLRlArbUlTa3VjQjd3NUpGMkQwYlozVGZhdkM5RDlYUTJMakhUb2VLZ1hIa0ZVMnZjWXJjKzdlWXV2UDd0OUZDMkFSVnpobHA4TWhlZW8rVnUxemZLeUR3R2hUWmZHV2xLR2FXUkpVK2MwQlFWVWw1SFVPUE5WM0ZPa2VhQzFCM3B5Sm1xRVdaNjRPSFVLaHBINXkxZ0hJTDhkZ1IxcVc4UmZQMmxwV1BmVWJWQ2VHcDhRa3hpLzVOUXVDTVVkaTBhUC9qa0ZQQjZXK0tEM3VCWE1FdTZMUHIyQzk0T05BUTF2dEpmMklVdXBHL2lnYVFqakNGTmxpVkIveWV4V3h6WGQwM05CbEk5WmtkSFdJOHcxSy9kNmtEMmx4VHhHZXBVeFdaRHFqK25iMEl5aFkweUJNd0RTVWVnN2FTQlN3UWxUaHhEMXBrVVdpV2tEMXltdDM4ZHFvam0veGI2REVFZHEreEZPa0svM1ZVZDBmWWJiQ09CamtKQ29zU3BCSXlRT0tBTVkxREE1Z3VjTzBrYk41ai9BdXBYUEV1SHhvaXltZ3ZTcGFKcktaYjFoNkVOVGVMRnlob2FWZnNrY3o2RFhhZzNBZFBTM0xOalFZWWFUR0ZiK1JnTmkvMmxjYkdQZzdPVDRyd0NLMlgya1BrUm9aUm9CT1ZHSkIwczR2RENjMHBTRmk1SUxGMHJWTXhUWnh3aUVFSlUwdlBvVUR2SDUxcVhFYlV0MVFFOGxLaWJMTC8rOUlNdVJFT2tpcmFCeVlFaDNBRHN2QnZoZ1lrZlNVSFBxamlBY1hzUCt4elFXd1lReEpxWWZWWXppRVBJSGkzcFhkWSs1Ny9OTzZEUTRsYmFZWTBCRSs1NkYzcGNUZ2g1alFiV2pVRlZtU2s5Y2doTWc3YUpOK1dHaDRXQ2JnZ0tMYXgzYUFadGxJNUs2TFp2aWpkZU5oeWcvNHRUSW1CWThmc1VlYkdNZWVvYmVlSmQ4a0VFMWZ5UjJ0YlZaSVorUVUwTG1xYk9PVTFqRHM1NG9NRU1qU1FRdHo1ejhNVFhPMGF0OTlZWE12UXZkcVpoNEZ3alVLUUpXU0I2dUtIbDJkSU00QWd1RlAwT2RMRWluRzM1aURTK2VOakgzUFplTUt5T0JvdjA5WjRZWHRZREVJR3k4TE1FVElnanhKdHNyYjB1Tm5aNjhZbUxheDFoczd6d3lQclhJZDRTU1ZNVENPZ0ora1NRWHNuVTVrS1F3eERUQngwVUpyZE9WM0pEbVcraVNZOU9XaHh2VC9tZE5aUlR5ODBUTUF3S25CSjFHUWxoK1pycWRvYkF5UHVjWjNRMXpJVVVZbENLSktsM08wblpmVG5nSUl0UmJKN0hKbVRKMHNWb3pUY3c1TXlCdXRaa0Jaa1Q5TnpBRCt3bkt0M0VRS3VqMUYxaVhaK25WNENyVVRmRVFXVE54UFFJazlNclJLemRHbnBMNXlKb0NCT2IzUUI1K3NLUUJFWFpadVpweThGNVRYbzF3K3E2ekN1a0FRY0RtdzBWS0hTS0Vla2g2eUoyMVQ2OU4yVnhJczZzUnU0cmFKS1RNWElFNmdlaDhuVW54dXI4YkpETWpMaC8zcTQ1WnNBK1RkYUhDaWJvbXhKVUZSajFQTEdRV2RtQVVxYXBMQmtHeVVKWDNVSVo4M3lRZWlaSVdtbmZsdFpHcXo2eUQwcjZoWXlxL1h1NXJDWWpHUTVnVTU4amRjK0JzcUNRdWFYS3JFL1h3bTFydmpjcWk3bXE3cVcxYnJtaEFMblFUWFk1Sm1zd1ZTN2ZMR0VyeGxPb0kvWnlLcUR6R0dTR0t3SWcweG5zSXFSckxoZ3lIQ2NEKzV6TVNuQTErSmJ6eUpLYzFWSUNBTVNramlpeDlubWNKMG85NlpDaGtYd21WYVovREFvNlh1MmErajNtblluVDFoTkhuVVlnQjZwdldOYTlkR0Fza0VFN1kvOTZ5K1NGTTl1YWlncjJaaytZYStReWIvTTdLQWZwbnNtQ3dvbStxVmR2dEtPZ2E5THZwNGhMZ25DSis2VnArTXA5NHQvbFQ5eG1lVVlpd1pFWmRVU0NLV0J5Q1pnUHJuSktBMGJaRVNIZURRRmZ1ckprWTFzZ0dDdlJac1ZXY2VnUnFXVlFWMG5CQTdZeTdHMGhNdmZCbTJleVFpa0tWV25UUVhEWFpEaFozb2MwS0dVMDZiamE3WDQxSnpnbTlRdngyNWNHVTEyVmk2L1g3b1l5RGRJejFUa0d4Q0dIUmQwVFNIckNVZjNBWjRFam1OQWFhYkhQUTUxSkRkWmx6NUs4U1dnMnNGUS9Nd3lnWnp6cnpQdUJ4eS9qMWtBLzBHUkxmM2VMc0VoQmdiZkhOTHUxVGVhcC9UdFRPM09pMDhSdEpMZTZpU1hXM3NjNEhCZUVwOXVWNmoyTFIzbmliMk9KdFpEelpTanpLck1ZNTBNQllkRWE5NXBFOUlHMlpDVFZlOXVMaHc4QzhhUzRTTHV5UjQvVnQyOGhYQ0RvczN4VGJQTThpWmtnd0s4ZUg4WmNnMUxBU2l6SkFCUGNxQkxuY0NBT0JTZXhIeHpOYXZPSytjWGN4Y0xxUmtKaG9wZWhvaDE4czNRWWlybHZ1Q2hWaFdMNlU1bmR6c3RJVWl3K3ZhTXZIbzlTVU9Oc2tZZFAzK1lONi9PR0F6Y2ZNSHg3T3J4TStRZTdPVjNlV3d1UWRXRmJBTWt0MDBYNEtwbm5HekpPajNhZmxXRUlGM2xXZGVCbXdBaUhxMThhc0Y4ZEIzKzUrYmNsYnpzTHA1VlMvais2M2ZlekZuaS9IRzd5RUNlRzh0L1h1azZQQTdjUXdzVUdmN2hkT2F6NGN2cllvNmQxaEZPSGp3SUVETysrNi9SbyswZFg0a0R5V1A5d1pKWHBZUnQvbXJDUXl6cUxzbnROTVdjSEZpeTZ6WlA0VElCd0V5aWNDVUZPalprVWpLUmpiUG13M1BoTmU4N2NmSUVzcitDZ2hqM1R1V2xPUGVQYURxNVhGcHJaV2ZaWktWYUxvZzdKUHJhMnZsUlJXUWZOaGxWRkF3MmtReWRDWmREaGdkZDluOU9UZjAyaUxYcHZ1clZoMGJFNjBac1R0cC8zUGFMMVBuOElMbFVQc29uT1ZpeWNCRjI5eXJJS0loVTBLSEdWQ0NPZDIvcUg3NFJWYisvbHJVSWJOR3RmYktodXF1YUhXdXJiM0RiWW5Xcktpc1BSL0xGZXAxcU83dlBRMlpUbEhCU25JUEY0bENRUkZwMkVDdWRlWTJ2RmhZd3A3MlJHaENiYWtEYXFFS1BZMGlrYmFFOHR1dXp4dVRMSVhmNG0wOXJ2QzljbktGa0ZIQ1Z3NXpkMDlYbzM1OUNRZnQ3Y2NveSs5MDBNc0V2Mmw4L2VqaE9KRWVLdHhZUFAzT2pSVnRGZGdpUUlOVS9RM2FpQW9lU0liNWhLNTFZMkMwa0pseEcxaEw3MjlKaUtxL2ZGVDdYTWRiT1pWYVJzc3IwWWxyRkZFU1o3SlBWdUZWMHZRUE5RR2JUR2FRU3ZQcWl5RGdERm9Bc1ZVcFVxUUdYMFFHdnlKSitpTExTSVVudDYrc3h3RWFRR3FJQmh5S09mK0dKUVRyRXVkVVRFdEFwNmZtd0NadnBXWEFacTBBclVoaGxEU2tTQk1tbVJWazlFYlJTZTF2aDc2ZDdPVUJKN3pHSW9iWjZaMjYwQlJ2RWZCUWQvbUdVSlkwYW9CT0xjU2JnVUYra3h1dW5Fenh1V3dXeXAvM1hHMEhqeVlVQUdBZ1BQVTVaejBZQkNIOThneXFyNlp5Vk1XTkNYZDJwKzI5YmFyWUp1Z1AyOGk5cStYUG5IYlFqNFByV096Y2RYM3A2QTBhUjllM1BJNnVZMzcwQ1BlRjU3OUVjdDhrM3JGeTFXYUVqNENKMlVLTCs0cFVqLzRUUlVYL0o0SVBZSlNDVEkreHQzR3NGUlNIS1RwK2pMbUU1ZzRGQ1pNZ09hQ21TOVcyRTF3RU1ZYXJxbC92eDZBMUZYRndlaGlzcFF1Y04rdWMycDBTZTBTRzdZemVKWmJmc3VIazhHUmlDK2l4WGtodWxlQXEwMVArdmV4MzE1VkNZMmRmelV4QkVNa3FobUkwTjBNMVpQYk5BL01FdjhoaUUrSWhOR2FseVlNQit2dzl5czFWQmNMcTNLNUxxbXh5eVB3NUt3enQ1UFhac2Q4dE0vZGNiaUxKK1llYXFJYkJjcFNNWmRuVVQ4QWhDczR2Y2srUW0rYllhTVo0cXJLK1dQMEpKMU5SK1BhNzU5UGdydHNuNTh5TVdsdmFRRWhLSng0U1RHUWdrRENhYkEwTjNSR3pBY0FoUGkzbVJscGxOOWF5blJnTFZISWlqUU5Yb3dMR1YrckhNSXU5NFhVKzk1bzdxYlM4YTBJa0VrbHZPM0ZPb0NTajYxM3VPTDBzZGtidTZUNlFjRUFob1V2YmtXZGxlVnMxZitGU3Z4Z3lFSnozdkRGclYzU2RGeCtlQkM5ZVVBOFBkakJCZWp5Y1Y4UVo2OGJvaWNmOXFPWDgwMTY5Q29mTHh5NW1ZQS9qKytPRFVqWTJhOGVqSHR2QnRzVXRVOFdhSHBvRVloakFIK1Z0aElXQ2hyQ2Q5NHNmQ1k2V3Bqc1dxYUVobzM4SERDMnJhY1JPT0hvdW4zNHlSS0pwUE90ak5NZkpJVVJqQVI3YktBU1V5Q21IY1RWd2RlMEY3cS9udFI2MHlGTWEzT0RTTnV0NGFmU25wTkdRQkxleXNiUUZJWHNaUlpyYU5lejR3UDJnOVlLQlkza3hJRmE2UkJGQXFEU0RVRm41TjdzS0hCSkU1VzYxYU1taUtKYUNqRjhXOWJHZGtSMGNDdm80KzcvdWlkdGpEZ240dHZpUWFDZGlJcmZJWlFmMnRlMGUxTzN6S2ZXVWx3c25hNzJOZllNY2FGdmlWenlDNGVMc1hqcFBJQXFhVVNodCtEWnBtUjdvRGZJVkVyS0FsRU0ybVFVckxSUm5xYzJNb3FnakpTRDRrQmpZYTZOUlh5RlFvN1c5Zk1kd1N6MGpyN3BRMHBaRitLclNCcnFZS2tCS2lmbUdPbUZ1YlFPUE10bzhBcUlBRnhKb1pybi9PSy9oK29lUWlwU2I5Ujh3N3JiUll3NEZCVm9BTzUwV0ZBTWZoR3NXWGloaHU3UkQ2SlFNbHhDVkVVUWRCWXg5bjB4Q0Z3Vi9xVWxXUjJTdEZNOUU5UDhPL3cvY3ZESUpvaHdHVmZpNGE0ZmM1Y3ZCYjBrTVNaTTVuUGx4NmZBeVl6MTZMcng1cnU4ekFoaVhNaWoyVFlOVis0bzlNdXVWTklVdythb2lHRHdFMDlRZmdnYXVLUXdBVVZ4cVRDMVZtbzVUSTRJUy9wbmNhVDZIVzhGclc3ZlcyTU9JemR6akhuZFB4Z2tneDREMVRIV0hYcG1IY0VuSTl6WHhIT01LYy9XalBHcUZGUHo0d2RiT0tDdCtGT3FDb3k4ckdKcHBQYnRxTVZhZGhDSFY0a3RTVElibmQ1czNaMm5jNjNWWkFCazRtcHJ0ZU5hUmRib25PYzRHbWY3aHpMbXJFK2NhVnZtazR0UnpPcFpZc2JxekEyVDlnZTRsYmZjT01XbktzMGZiMnEyR1c3TU4ycFRWK3k0QlJJeW5IcEdYcUMyL0JSWGN0dkhkZnFWOWZyYXowSG50WUxONGV6M2c3dy9XeU1OQWFYdFMvcGd6eGFRUDZaZVRwRUNJVmNiT1RNcTduV1NVRll4QTNSUW5PNUtpMHdqVEtldktoWWJHSjNpaUJiaHhxRERON1pPREpmMEVXY3Jpd2Q0YlQzeTAySHpnbUZpNzlySXJ6MGxWTjZTUldWb0I2Qk1jdGRhVUV0eExRRkJhNkpxczdFN1ZVV2VBNjkybGNISmRkeElLZVdmOHVuaHV4SkwvdUJISVdodkY5SFRZOFJzUGlseU1oQnY5ZGZhN2FiWEhGcFJYVndQUi9CMm5MRmhOTlJPWjhIS1R6TmJFUG1Gd3pDYW1zbGQrSDl2UkkxV2xNTys0cEpycFRlb0NkRjJrcVNESk9GWFI2ZnE2dUdlTFVJL1hHblJWcFBJOE5JMmdiWUZpbG83bGFrMHdBbjhpYWRDdk51Tnl2aTlpejFzN2t5RmFGSmtkaVFZcXJ4Z2h3RWE4VWxhODJSbkR1dGJJQ1YzL2YyUVdmZjJXTWhtbCt1YW52Q3U2UEVrb0VKMldtaEtwQ3JUQnowbDlyNWtaSTFJeWRtZEYzc2s1TGppdURPS1htUXN6UXJ0SEFMZ3hyZHhsWEI0czlIYmR2c2pxbXZDNmZMTFZ0UVFXTUV0TytwZExhRU9uMGdmcWxKci9scU9RQW40QzJwWkFwU2tWeDJ3RHcvVnNySmJqRmlCQ0xLMkdDdmh0TnlSQ2hUbE10TXNwN1M5dDlUTVZxdlIySUo2TUZXdDZUVk1PRkhoemYzSkUyODFKeHVsOFNENS9LVFFUS0FwSzFpcWZUMGtpcUxiOFgyc2pUSGNHZm5aR3RHM3Y0N1B0QUtIK0dhVzVyOFNpTWlpSVROYlRhTTUzVEdBVlJLK0lLcTZ5SGVLejRGZ1RFaGxjNnBpcVBRRFBBZlY2V09uTUZRVW1yZW43eXBRN01rVnZ4SmZBQS9RV0ZreWhWbEpwU2Vyay83RWFkdmtQQUt1RFp6UHppUVMzbGhFcjlsZTA3Ymt4OHduWTYzcHRlNnROckUzT2o4RFdlUVpwVjFNZzRMdWM2MkZpSG43VTQ3NUFZb3lESHRla2doQWRLTEtzcnJralVrT2xpdmpERmUvSDFjSEZTUUFoVkxnckxKYlNCZE45UmNLZnpOMDNoOGlkWWo0YnY4cmxmem9scE1mQkdSa1BwblVrOXpONE5BWGZRTHRtRzFXcWpteUZ5WUJMRFF4Q09BbVh4eFBjNVVyTFVKYXBscDdwVVVxb2QyNXhwbXJPV24vWms3c3lTZzhyNVQ2aklBNnd2OTVHSm83Q29iSTZkblcya3VGZ0RENC9DL2k4NmNhZUl5dnlQUmw4Ry8xbU5kWHFFMWo5TjhVbEVOZ1gvZkNocTdlQVpBYWFCTnRCMC9oa1hPUEtwODBDNXFXMnZGcDB3WWs0UUd3L2ZtVlhmdXZoeFN5cUt2RWozSW9XZU50KzVUdTVZa1RDdks3K0krOXhyeHpYb25YZTFYMk5HeHFDR0JicWRiaHQyQkZST2FMaW5yRGoxK291NC80cHNmcXcvYXBScTVZbkdUSVZ6T0tkSzk2V0xiMisrRzh6SXlDYWNuZVpIN21XU3dtbnkrcXJlTlN0cVhWdklaL0xoNU1NQm5tZXkzOE5jVDRUL3oyMDBTTkZPdXhGMW50Z2xxNmVJSTBla3ZoOUdBWDRDUUdwZEQ5bVFma3JvN3grUEg1TE9TbjVHNnFXWS9iRkFCMzJVcWQxMFVTSDV3WU1XRjQxWGJhQ0M1V3AzejY4T2xMRHVIazllaFFGVkNZcDdBV0JKb1YzUzVDT05CN3RZRDU0RVZLeEZBNHdjemF4OTgrWlpNQzNjazN1Z2x3c3RwZ1JRcnZwcXR1Ymt0MStaVUcrT0xxZEJmQXFHRDlpZnBVQWFlL2dMLzV6VWRJK013cVlIcHVHRTlsd2UwckdrZUpjWFpXeCtTekNqTFphSzdwUC85WFc4dTJkSnNwZUlnYTkrMTEvcTFReGgwTG1MZ2FJMnpYSm9SNVd0NWpFTkRGdFVRS0Y4aHd5bnh0UzlJWmFMYzltTzZJNTFUblRlNlB1a2M3VGFBczVHL09SVGZDNUNhWUNJVFZ3VGRxUjlwZnpzdkJTRk1LM2lCU3JBSjZ6b1NOSjkyTW4zZy9PN2E5UkhTdjZMMWhkSUF3bnJqZzFWcHR6bEtTZnVVemwyMEZhTGF6THlWd09lcHNDTzVBMG5BOFR4dGNpVXUxa2VBR1ZvaFlFMHZFNm1PeExqbVRZYTc4b29uclRqN1VtbjQ1alhvYlAxU1RUK1FPSnZJZlRzSDNUNUhmRmRUMExsazBudkZlbGxWelhFb1U5VDd6WXFQKzQxRjRKczFuQnVaZ3lWQUw5NDErTTEwd05mbFY2WWNMY0p2WnBjSGVlYVVmQ1lSdDNLaDF1c0NNcDgrdTlJNWpqR29ZTFVFUnBJbW1ZbHd0ZENnUmVpbTJrMGdNYXNnWWxsRDZmSkg1TkNCV1hUbFhTcVNhck1mc3FWRjY5eW82bmdXTlZxSFVCOEsvWUlwdERUR3NlWW5hdUQyUnRNdDVJL1pnSmNlYWN4YXZnZlZpU3hNd29mUTdyK2p4OUZib3NOUStFVi84RTlNN3lyUHhXaFdWdU1Na1lPYkhkV2M0c3M4YWhDL3Q3RGIzejJRaHg2WEp3QzBkT1lpdlRHb3F4Qk5Id1FRV3hYak8wRXpzREVHTmhPdXlJYllpWmpIMWZVYjl3Tityc3d0dEtBU0pDS2pNdE15WEU1Qk11NTdaeTl0eXNXNUE0OUlTa3hkSmloUmdUaFpBVHBRcGZkTHE1cjMzTGhRaU1mTzV5VTRPTGtTSUxMMU1lNk1EVzVTMkxzditEMjhBWkZ6dGlGOWx5SkQ1eHhBbXU3SnB1aE5CRCtTZVB6K1NoQ2g4Z0VHRXdqdzlHUVIvMTlxMk1DY0taL0gyUFlScWZiODZCSWpHWU5FRDIzYyt0T0FQUjBQOVJTTGZURGo3aU5ZUlJMditQRWhSY2I2azl5eU9TSHJkTmpEVjA2SEZZZlZqRzFGNUFPcjdaalZDbXZ6cUdyUVBZVWE4UThzUFNUVWlaWWhKVFZQaGpRVE5YTGxMR3hmT1FyTmZWSWh0Zi94UUR4NDBuUS9UdzZzOTcwMEpJdVJTYWJ3TmxzK3kvUTFqUjhVejRUMVlmMSsyTVBRSWt6eUg4VzEyM3ByeVFkbXo2cEdUc1AxMnFsZS9aL2Z5a3RndVVHYmJSSHZJTnJkR21oTGJQVGp0dlZvT0l6eWI2TERGdmVFOHdOcVU4WXh1Q3lzZGlrZnhuaG40bml4YnZvNFN0bWN3V2lQTmVJSzlsbjNQNnVkMUZFc2Q0Qzk1Q2pWcVI5RytneGhDa05HS29kRlZUdTRJWGtVUHFMSEZVYjVNRXA4MS9JakNTUGV3VzFCUE5aRG1HVlo3REJyYnA1U1I1eXRDOFRSU2ZvWjRweEpHRkI1K1NSNG5UcHZNRElIaVI2RXg5cUwvY2thK0txVTJINStaL2Z1emZGNUxpZVB3VnVkZDFsMmlYM3NWbjJYS1QxNnRCUWs2Y3VtL3pYL2Z1NXBRblhvWUpJSitEVUo4MmRCUlU2L1hxOC9wcmJaNzN1Q2o5WVdiaDQ3SnVvL0tHRTlxWXhkQWg1MWVSRkppRER4MnhEL2ZJSWtSOWhGSGczNzhzK2pFU2JleUZnQ2hzZjFQblZvU1pPRnNHeU1rYnRJR1ZoTFlrc0M0UjFmQ2Fuc2o3QU03cEp6R2psTXRpckNDQkVlZzR6a0p5RUMxUTg5cWtTM29NN1BQc2c4VlIzaGx5VVpUTGloQkQ0dmkyMWFjZGxLWStyYU9tSVNJdzZKYXYyUmp2dUJBNU9VdWp3Vm9ydytrekJZZjNTaDdIMDRka1IvWDk3eFV5SFQweDJldmxQVnV2bExWQnlHMnV2d3lBZWdRZ3U3WGhXSzhyNlc1ak1TNjZoU3RIZDlUb2J2a3pGMEUvQStxUnVRc0kxQzIxVFk5NkR4c20rYVJkTHdIYWxRNUxWS3RhOXUwRDJLejZkWDJsZU1UVVh2aGhlMUc3L042RkRsQStqa1Z0Z3FkWTV4RjBlYTVkUHplZW1PWnRNL1lnb1BmOVEvWmdyMTNQb01VUUl0SXNobUVER2J0OG5kczZCTVJPTVB0Z1ljU2dnYUNFazdaQXVSZXFBTmRqcW1wdTRhS21tOXVpU2FMRllXOFZGcmVFS2YwbkZyNE1lbEFYa2IwUU5halN5eUtDR0tiMTVhZklYVnlpOGZRaTRHVlQ4bHB1MTZBeVFNMHpIanpuak5KM2VJbThTMmpoNmQxd3RGS2JIUVNrRDhBb3VSNnhDTXMyekJRWjlZZ3hzNzVzbjl3eHdmVGwrbkxzem1yUnM3VDRDWTNGS1EwUWNmVVFqS1FxOU9UUGpORkRMT0FZazRuYTYzc2dCenhpUGdad0JabnNtUTEydG5JTE1hUzZ5MStIK21ic0dtaTlyYThMM0J4VExnRXhQTU03aHpsMG9CMzIyMk9POWlQV2hncCtHOUtlZldCOHpJcWV0QlkzaHJRanRGOVM1UzRHeThrNjJwU1ZLUm9TbHNabit0Vyt5aUhzQWQ5dkoxZXU5TGRSbTRSdG5HZmhxOVVBSmkwRjFsWEdIQzlzU05XdUQvaFVjRTQxTDJCUFRaVkhCQWk3VXRmbDU5V2s4RlZXcTZSR3VaNGpPWlpleDBUaitxbGZLcDdyZnlENlN1aEJEYjV4S296eHI4V2d4TVl0ZzA0NTdJbTBmdkRTeWVmZ1ptMGJKMCt1alZ4Wm40aFB3VkZzVHBDUW85R2FNK0IwV1Fna2Q2UVdlbk5pL05vTXVoRVo0bSs5UlVCMkZ0U21vamxrV3E5VUhLY3Q2YU5vTFR6YktzM2orR1VaU1Y0WWJudVNsUW5GVzdpb2ZPYm1lc0w4Qng3cmlsY3ljQlg4VkxNRmR0RFFlWGk4UE9rWlhsR2swMjFyek1zM0lEMUdMYUFmUW9vSmNUZk5wOVhzUlAzNzl0K292SGZqMURWMUZxeFZScHhIdUZLZlVGYXFGUGRVWTFtYlNHeEptZDlXYzhIVXFYMndCMlE2bUY4WGxXcU5UbkFoV1h5MjJmRHlPSnJPbmhSYWhJeXFOaGUvSWJ2a1REM3VTa1pCd3pMbXAvbTFNRUZTRHVnK2Q1Smk1RVVWLzdnbUxYZ1RNVUZPWjZuS0Z2VDlYR1RDWjRHTkRLMm95UHZSaEhrKysyWUovU3BNVFRwVDV5cnMvYUc0cjdQZVdIeUZEZm9kL1AwNmQrV0d5cUpxcVVqZG1kZkR5K0FudytDSnh2TytXaTlsYnFXNytWZzArdWtEeXovUy9TTlllN3llNDNuT2sxVGl1K2xwWU1lMEFlYW9LYlgxSkZjSzBSODBmMUxMbUlVeVBiNDdlOGlSR0p5VTdTTW1GYzJOS0dRS3RLaS92ODdSb3VPTVhJTm5qYkRMcmM0MnZSdHptUzIrTUhjTU13bTlOWG5aN2UxV3F6V2JVd1crZDNrREN2V1R3UDBWUkI2NEgvWFV1UTdiSnVDZU9lMnN6TXh0anRWczJLVklWdStwekJsQTJGdnNJMGlEVGdRVWZjUjdqM083a3BnRnNDTEZJcDZBOG1OMWdqNkdiVEI1cFVFSEFMelJ5Y1RoenhnUjBBSXFwZG1WdVB3eTZxYmpvVXJLWEVoRkw4YW5PUG9xai9XZ1A3Q3BiTXNyTHREeE5tekhuWVJUZ08xZ2FZOVRzZlNJOXRDNEpxR1lQYTY0MzZkUXpWSG82NW5Fdk1ESE9ESUlldThtcTh0dXI4UEZGaVo2UmIycE5HRW02M2ZsblRZZFB2Ynd1Z0V2OUdpWXFIRVBiVWJmemh6QUo3bUhkTURpK25HaUxWbWd6K1VFVittQW4veitLR2pxTGIwb1l6WktXdVl5c2JndVpIT2NnWUJBMW1FTm5hVjNQU1kxSnY3anlRR3dwVmpSUE1nMElKWml0REMyR1NNaWludzIvK044MjlueWZFamhnVGZZYTAvdTJVSFE5V3dVWUcyNUpxMENpd0FlUlhjMlFJQ1doekVOZUtJempRbFFLeU5LMUdSNGdOVkpBVSt1cjJBNmxCaFlNUkRCZldrRGpVYVN4Y1hITHhtR1hZMUFKVmxsUnc2R3FnU1pyai8zVCs3bG1DR2prd0pTeTFVZjNDY0UyakRBUVptTmMrejErYzRBWVE3S2VFU3M2S1dwRWRHd1BHUllUbmNuZWh1YTQ1YTdOWTZrM0ZKckZhWDkxcXNieUMyZHpmdGVQR2h3NHVVNUdBNUh4RTBVakthaVI2elMzcE82TmI5ZkxueDhpL1BSVFBNeXR1Uy9ra0FFc2prRFJWazkwUXBOcXNob0ZqU1hZOXZPLzdLczBITDdHNTVYSGVoVnhCMGNKM2tVOGh1eks4eDJ4R3pTL0hCd3hyMkhVZW5zcVBqbDdvM3YwRFFGMDdqQTZiMzc3a3R6TTVpTEpLT1FVSDNQcTRkc2FaOUhqeDBjN0tnWHFnTjZqdElMM2habEkrR2lnTjJxWW9weERvSkVzR3hDTHFwb0VkV3QxTE04YlY0bEpGWXFjNGNBQ0M1OXJ6cUNJRlRhNXpRUjBidkN6UXh6WFF5UzNEVXBlQWVXMWtoTXBncWkrVDVORDh5M1pjQ0E2amd6SW9xMTRzUVo5bkxCL3E5aWVuK3IyZFA3c0dTZmlFMjAyeGlUaXhreEZ3WWsxUEsycXl2OEZIVVN1akRnU0dwOWd3UFFKbHA1cWh5Rk1SV2VuMzBJVGtmK3dma3UxYzJ3b21raG1qWnNKMnVnQ3BVT0ZFeXRKSW9QV0pwZnJIQnpiVzhTaHJjbEFCczI0ZnpnUVF3U2RWd01YZDVFNlpMRjE4SUp1YkRDMWhiSzNWckZUVGJNcE5BUkhQL1h0UC9CVVR5Tnk3aXdqeEIvTUFJUTlMa3NpZDhHTVAxZVNPYXNqOWU4R1pqUWplSllRcWtZZVNFRS9nczJaaDQ0YUw2K0lBUUEya1YxUTE0eWl4Q3k0WHlrOUdtSkVUMjJCMlVLOG12SWJ1Y3pRMUpnbjJaTmd4eE9reW9GZVlKSTNBYVQvMGJ3RG1KWWE2Q0VVaWhCRFFIa2xKOEZkNXU4dFpVSy9HZHdEdlVQNGZETlFWY2hLQStmc3dsa0NjVGc5bUJHRHZtMjh3VE9VN3dlV1hZdnZSUTRjY3lkOURBam9GelZISzdVYktLZnVHR2JvVEtMdnpuRXVHampuRmwwditZa3NIb1lUVkF6MGp6cDFhMStqOWxXeExxUFFlY0hGZkpSaXdGUjJDMWFWejlVSW90SXNRWkoyTDhLTWIvYm9WZjMvMzJyNm01OG92L0o2dSt2OVNmL0Nyd2Fwa3dCTE0xSWxxdm1zODBCNzNFTjFCM1BiUnVrWmwwTk0vT1FZaW1hVzVoMkVwekZ1Nm5LUk5PYTRYamZWTmNGaFFDZTZ0M0MvQ2xRZHFDOEQ4dGo3eFk5OTYrSEUyRGsxTW5nM0hGM2tldDVBZXFGYVlIWmJUMGJqeFVRb2d5SE82enhiVUdYT2o4cnN3TjBISjBESTQ4SFZZWlo3cmJmS2RkZThYcDZvQzBHWGV3U0lsK0thMnVzZXJUNEYwVG9lOGxTaDFrazdGSEV5TmovMy9mMjcvdEQzLzUzdWZya2VIeGYvVHoxNzk0dW1vWjNiODV6c25kTFRlcUJTSnREb1pyc0dwZE1aR25EMVd1TDd3ZXVzTnJ4dkdubk1HWDBQd1NrZ3ZETllMZVJxelBydEw5bGEyN0kzY1IzclRRSjZzRkxLbFdGYUI2b3ZXWW02MVdKSXNHN0lsWFphUEhvaUdQaGRmR0xLQzUwSzJ6RzBkM2N6VEF4S1JSamFMazIvL2tENlpMREJxYTMvREFYUUpRY2xtWUFDbEZwRnA0QnJLdzMzTytCUm02SEJjY0lvQk40ZWc0ZEV4UUlZUnVkbkFOV2k4SjBxaUcvK2F2YU5sZ2lkcExvNjhmK1EvTXZtL2tmM2srZDRPdzhNL0xJUEJsbjBJaDQ5MlJtOU9vMC9GbzlxbEYxL1FSNHdUdG0zY2xwTmRjQ28zMHNDeXd3OFFERnphMGtQSDJKN24wOTdEYUdmKyswNGk5ci9xb0JCM1hxdDd1SDFYNW03SHlERm1JNE56a2cvK05XVnY4NHhCVmRHYWMzOVVWZ2ttc3k0V0k3VUl3SjYveFhXMHBFeXNGRHlKVU1oSjcrSCtHNUZEbVF5cFZpa2hOVmJ4dS9xWDI4TkpKeFNDSnlHdkhINDBidm94N210aGE0MVNCYWxXMFBHYU95ZlY0dG0vSXhZeTlZdVk3bWxmazZ0TjZLdFYvSjcwQzVsTFpiU0psaWV5Si9kZlpYSHVRb242alI0YU5QQlk4aGh5aktPK282cDZzb0xkWDAvR0Q2aGRTbUZCMkZ5dE5xeEJQSkpMb2RhNEZCMlFodEFMbWZ1L1JKVnFHZWMrMFIxUUtoUUdsQkJkOXpqc2UwUlhZSWxRR0ZoS2ROLzMxT1FaaW1ZWEgreGNxWlQ4dW1UR2t6elBxaDdBc0k0c0Frb1NvMnZUQmVTVUxkYkQ2UXdMYkJuQndDV0VQOTJZTi9LbjZ1bkFjaXpoekkzbFJJdzlpNEJpQWVHR20yTnpSU3E2Q2JZVXAyTXJ0SEV4b0d1T0pJT0FaTDNqUkxHdFUweG9yUVlXRWhzcHdqUzBOWk5vTDNpcVFDTFdzNkR6ZFlHaVlMZHVONkJqM0U3VDJrRS9tdjR0R3F5bitnN21VMkg4V093ZzNzRVQ0Qk1lSmhBallncTFWNVVvaGtYQUlWMCt2WmhFM2ZmMko0VmlDZzBlWFZ6bzhkMWNFdng3QTVKdHhhN0YyYmw4dk9OK0xJN1BqOFhkeHp2NFluSnF5M2xSclA4UDRzU1d0VVRpMnBhSlJFTFNncDBrMHM0RlNaNlV6N1dvV2dlcFBsbTVYVFdyY3BrNTI4QWhtZnFkS0JiTGllb25tVGdrR2RmN01xaXE5T1FYSkFPcnpkQWp3bWtHUkFaV3kwQitPVmxhOWJBVkZjMGJSaUtIZWRFb0ZKZndGSVY2U3VEQ1NuR0pqZk9JeEhtTmlUaGNmT05jSW5GdVk3em5UMDBFZGFmeDhNNFRuYndUQ0VXdnQ0Z3c5Kzl0MHE2ZnY1ell1WGV4ZUVDbWZtT3FOZi9jYzluMHlmNS96MVlEV0hPemJPU3ByMjV0Y1l4Z2s4c09mTS9IQnAvVHlWRFhzcSs5UDE3dlEwVkZvVzhpUkdyVlpJMS9ZTXhFbDVXbUM1TmhWSFRjbzdrWWp2SnZUQVVTZmdiSFg4RTk1dFpYbUJ1ZTMrakFiT3d6R09IejdmdHc4RlRtWjByOTdvM1NqSVJGb3V4TVVaUERIdFdZbjcwZzBnYk1wbWJacEZVT0dUWTVSb3Voc2xyUnZpYlg5eVZ3Z3Nza0k5R1JkcmFSektaa3RmdXVsMU5QaEpGRWtERit1SDIwQ2ZDRk40TlVGQlU5eTZJcHdDdTBaUng3TEdPeVJzK2E1TFJOcHV2Y3RTTDhTS0hieHV2U2NicnNNU2RLRWFySTFpcGxhbGNmelRGQlNhTnBoWkVhNXlJUU1DWXB5Y29rR1RUOFRHVDBiZjNpNVFqejZmMUV3cjZoQjhTWmhubFVYYUR5RzFtWEJpU3U5R0FPVGtKdzFFUjdLTmZlS003TUVqVTZIT0xHckt4NVlodlZGS1JDdWVDbk5xdmcrd25hWXA0NWpsb21sOVBLekhIRlBDQzZoS2Z6d0ZLNzNxb2JHQk5kcWdhWFcxVS8wZFhBVUwvVks1YmFLM2t4ZGtxK1dFekpqL0VmRXZhbHUzY29xcFZkM2NlVVpkOFNGWW54YllidTNjcnNIeWFGeVZ3SjZITHBhZ0J4RXczSERzaXk0VS92cGorRDd4VXI1dUlOTkgweWlKL0p1K1pScG5ZWkJIVUNRN2ZCVm1jekxHNHpkQnM0eVV1bnQzUEovMTN2d0gwMS9DSUd4b1NyakhScFRMYjlSdjJPdWQ3MjZQd2M1YlM2aVpuVHZLZTNvUkxSYlZLdXFCNjQ4TlIwNzNmRzBtNURQc2lUUi9Ia2dmSU4zYVhkc1FXZ1pFTjNVbXNHS1BObDAwTGVsaXpNSVJzck5pSW1oSzF2Tk52bFZLNFlBSmVnOHNTaTJBNVBUZmRCZUZtVUdQWUJyK055Q2JvUExxaG9sdEdnbnpzalBsR2xVQ2ZKbkRNNjZ5ZktLRVY2WndGWHJlSkhNamlwUlRLWmJpQkpwZDZuM2trcDJ0ZTJPcVpPbUo0aGJMRFpvRmpGeDJNczQ3OXpwamxibkJ6UUhjK1NOa04zYjRRTHJHUVM5UkhVY3lNcVpQWU51NnZMTkUwK016RlZyaUJ1R2xJRjBPWU1IbmFVNlNrQ1JQcUJMUVJDNjc3cysyWVQ4alFaRUFwcEZpWFBDYVhqL3F5RGhnL2xPdm1SeVBLTEZ3bms4NThHRUhRTk1nV240Z3BvUmhYSEJxRWFjdmtyUEEwcVE4TjdKVUg1WHBVVmJNOFZSY1dHWlRGUEd3NHp3UFliUm9wSVpLVGNBTnNaaHcybm1XRlpVYkY1b2c1UkN1aDVYa3hnbHlXZ3k2b2Ntd1U2a0pGd0lBTzBKOFBTMnhWM01CMTBNRDJ1dDh0U3FkMXhIcDN3eHU0ek9lbXUvSTQ4eVdmS08xdFNzc1BBRzdzaXFUL2hUa0xjMkJWeFlZM3I5ZHVVSTdJTitwWEs5OEovZG1TTXp4QnRuYllWNzN1aG50Mi9nbXpMclkrTjRSRmQzR2NINUdjTHpoYkkyZVp2L0c4QmZsM0oyVXVqNkhOWTBiK2o2WHAwVThxMU5MS01vZ3FGbjJOY1Iwb0UwVGd4R0RSaXAwbVFTNTQ4cDRwS2t6R1ZZNVVSOUxqUlFPZ3hQQnovclNDVU5DMUpqQ1Y2NW02eTJvQnZ3Q1RRVURwYklIYVI1U3FDT3lLQzRKYXJYR1N4SUozMUlLbUZDZ1V1cXRCMHFncjFCUUhRYUFqZ3N3cEZwYXRRRjZHQVoxSkh3VGdsZ1JLdVFnM0R0bjB3emUzdmw4Slp0NlRrL2dSR3RDU1pwRlFSM1VJaDBhMVVKWk1rbkF6YVhROXMwUG9nbllYbjZkbERvRW5BTjhDV2dzMkZhdnJzL3VKR2Z5aWREUUNwckFsR3d0cVRhOUQxa0RFVHhqYUFOZ3dOa29RV3JvSzZLb2NsalhDUkZDb1N4azhyQ2xVOGlTK09KYzFDeFhvdzJKYlNWcUExUzVJMXh4NlQ3QWk0M1hWcWEyd2dFbzhyZ2s4ckxaNmMycG5CRS9HMXFDMWdOY1VGMnAzRkVZaGR4QStFUkFHZmtFamI2ak01cDBFT29KY1NHaCtweitSWVZSVzgxdWhhTWxSMWdjcEdjQTlDSFU1R3FENnIwS01QN1F0UWxlZjNsbm0wUkE3ZjdTcE14QUkrNUZOWHg1Q1I1Qm9vd1BrRWZBTktMbTRDK29HQVRzaGdTTWdnNU9tYnZtN0MvaFZaNHlBYjd3TmhGSUNIT255UFJ2Ty8zVFYrNWFURDc3T25tN3lvY2p2cjdZRFAvem52di92OEFMNEJpczNWWVRIcjZ5T2RmQUc0TVcvVW1kbE92Z1RqcWt3aXQ1ck1lanlFL3hjSUpqVFBPMHlBalNyRzNyZ0VqSVNxUXRCQklFL0FyNzZYaTQxMDg2blVHaTM2Z3Y1YVNIS3JWTWtrc1lpRmlyTjAvUVNSZUhGOUJCVUczRmFodzhPVjZOdU9VeThsSmNxclFuM0plbW8yZkFTNkFZZlA5UXcyWCtZaC92TFMvKzJUb2wvWFl1Sjk2OSs5bmgzWGZSeEFONkRRRmp2RFhjd29NSWhzRFFOVVc1YzZPZ09SWUZPWWVtaS9pTlhyekhuWFRRMFJIL1FINDUydHpnbFdwWmoySXVRRFRwak5HRW5FYU1QcFlWVjlHQ2haUjFJSEFSOXFXdkdrUTQvUDRYakpqSHhQQTdPbElSaXhuTEFtS1BEbEhYcFlIaFM4THFxTVNzcVVaRFlBRFEzbjkvSDBnNlFIWVQ3YloybGVDRnE3MEJpYTFWZGVEWnBaclo1ZERTcXJOcXpzTTlYTUFNMllZUnJQVmRuemVjK1R4TmtIelcrdGRPNTZlT0tiYThIRkpSZWQ1UDhNb0dVTFRLOHNXcVV5R2p0UVVvVWd6bmhKenV5NWJhbFl0ZzFhUUlpcTRZWk45SlBrQ09YVTZjSkRST3lEWW9oQ3hBMHBQUllkZUlpa3ZQWmdEbWpPZzJ0SzBxSEE2R09sSVZ5UkFsTDhBRXM4Skp4T3pWLzAvcFhzVlRERHU4K0hIRjZwMzdRWk1RY1dXTmQ4QnZHMER4RThOQlZlMUx4Lzg3ZzVNQlQ3NlVVSUxIaW9JbndpdGVmWmlVdmJwY2ZrMVBETjN6a0tGcEhJVW5DK2YrWk5mdW42SGt1OUVNMVYrTWJRaEVwVUxKZUxpaFVxWTJpK0NtNzBoVmpxZDlmTHlid25tNjN0NE5HeXc3SThjSVlzSTVVUkdzZlZPTUpsVER2eTBiQm9CcEVWMzdNVW50aCs2dEcrWXFpZXhZSmJhdUxqOHhNVExobGdkT2RqbDZzcTBmVXJtUkdtVDRtTHE0eUx2V05Fc0poR2VFOXNiR1ZnSkdYd2JDbVJWSHB1a0VJWjNEK0xSSnkxYjlETDR4ZnVFQzEvb25XZlo1eGpKRHpTTGhYdG1QWHQyQVhzR3Nhc1hiUTFUWllXOVZWKzdpTnZkSnRHYjRtQ2NzL1NvZDd0ZUdvQ2JhVk1MZVlMMURFa0dZUCt6cUFKSVdrbWltZW9zSUVHS2oxa0dqa1hUZG96TWtzV0NkMzRHc1dYYXE2M2JTdjZnYUQ5UTFHR0VEV3hvaGQzaG02OTJlNWxHZnJnNkpRV0ZmclFCdTFRYU5pVGRvTFkwNHlZRjNvV0NqMGJDdWFlQTY5OFZOM1NQSm9hTDVUeG5QaFRlQ2VQaDNlY2N1SjVYRmQ0ZzNoZ081SGNzVGdKanpjdmJpSGpoaWIvVHJORk5lWGxMcERhclBPbHJSVFZCRGVQTmw5aXRTMlFMQjRWbytaUFNVaVl5bE9ycC9BZzhhWkl2S25TRkw0MGxmOVJ5NSthL3pVWHV4Z0h1ekQwSmZZNVVYR1dVeDJJUVVSb3dhQWdWWWpoS1ErR0U2NHdqQ0svaE54T2JnaUJxOFBDYjVDQ1BLcnFqNVAzUDE3WWF6WThWdSsvT2cvU1hDc2J2Q2diT1NKYVhQK09RM1ErY0JJNUhDZnhBVUtjQURrd0FSRVdjY2lwYUcyRUZrMmpjV3NFV2t1bGhRVUFDVDd5ODF4SklkQXR2eUdvTHp1QXNzaW9pZmdpdG5OcHFCd0tDUWloR3oxN1J4SURSWUdRRkNrdW9Tb1hoOHV0U3NDTjkrYUJmT3V3UVNDMmptK1EwVCtmUERVeGE1NnNsNjEvSW52U0xHdCs4bkZFTnFLUzQwTWxiZTJmMmxGb094cFZVWFo4aFZFcFFJekl6T2l3YnZtQ2E3Tm5YN25kRklZa0JsRlFrOURRd2g1NHZvcEVRUXd4cFNqY2h3Mi9OUlJzV1RvSHhUV3dlSFhyYjZLeFB1UlEvODNRRUtRbnVrSVFsYjAwbWE3dlUvc2tpRXdHakRnVm9tWjhVcGNnQ0hDOUJiUUYyL3dlcWwzMFhYM09hOGFQOFRYajFTZlpGbFFtUmtQTm1sNDA4YjM2bU1TS1BnNkxUVjFoR0FFSjdnQTNoNFlhalYvSENNRmpZNlc5NDBNdndzUDBtT2hNeHZTWDZPaWtYNjZ5WkFIVEhJWExxNnpBNHlzcTgzRDRYTERYM0dXaGg2dHhVQ2l1K25EbzZCSTlOYmtLdTJlM20yVWlXWlk0NjNURXZpQkE0cGgrYXVicFRpSGtyeFVFRGgreE4za1V3aXVJakd1eXo2RmRQYXArd3V0cnlFVnVnZzEwOWNQYTB6Q0EwY25RZjJkZmYzZFVaQ1NmanNCNmFKRmxOTzBDZEtQY2tzRnhxeHJWemlKemgrcmlwWGJuL3MrMWVTWGhVc29UYUVnTURJb0pnbHJWREdKM3l1ZXdrTlN4WTlFVHBzWmkrS0VHTFJ0czUxNVBNTm9uenhnS0hkN0ZBb2VpZHcySGhnNjNZMExCN1BaaEFSd1AvK3NYOGtDc0NyZHl5MS8wMlplYzE3cTZsVEhmaEFxaDNqdzc4TWVzT2NzbWE1cjYvREFTT1BTanA4a1NNamkxNW1XVmZtUzFCTUhTY3RUVDM4S0dqbXRDcE9nZFZ6My8zU0RRLzhVaG5pK2I0RndQdE5EOFYvUUFDc2wvVkxtWWtEQy9ERHE2QVAvQjFjY25HVVZHd1RwdzE2cEZqa3F1MVU3TzI1cWNaMzBDWE1laXp5QVI2TmJpS3B5aXFWenFZMnN2YU1uUFhkdWVGakpBdkZzOHhVZHE2ZDNpYmR1ekJ5cjhyNmVGMkxhbi9USG9HRjBHd0l1UGtDM3VEUnQzYmR5MGNXUEhCdlp1YkRuL3BuWElFNW05dk5vWUduM2FLdnJ6NHFJcXMrTWR1VEw4eHlyaGFsc0tJVXBiekRQRlVzdmtFbnpoV0JJbmcvZ0t4ejNicFlSQ3FHZmpNdE1LSUc2czY1bGZTMm41eGdiV1ppMmlydXpBK3ByNVErUkxGd2pPN0lzbXBxOXBUZEJWRVo2aGd0UXVRK3NjTXdIYUo3MmJpaFcvYkZUcW5IcHFQWUNqaHRnOGRwcWNBa0F0V0JXOVlrbzRLTzd4SlppZUljUW52RS9FaWNjUEg1UXMzK0p2VDArTlN5eE1UUFNUalkyMnlWU1lhUFlqT0RPOXR3UGhLVnovd3VXbis4Mko5REFFbEJxdkJVY01aN3lTM2liVUFCNS9KVDFEUE14dnZVU1Evb1J0QXQwMG9QM2JhSVRFZi96TGI4TG95YUFsWnpvSUFnT1hNM3BxT2l0U25TSEplalNmdGc2THVlSHBvL0NuSjZHbWpwRUZSVXN0MFhRVHVyM29RUjVGRm1ubkI1NU9pWWlNc0pIU0VMRUFYR09PQjdBRkxXc0M0b1dzT0Y5bGNEWVdoaDJ1Q2pQb3pBcUM1N0NCNHk1M3hkSzNsSTZYank5S0hHV2x6VWJIOHN3ZkJFYzBHTEtrVlVvSllqRGxkWC9aSkxCRlRPTXZrUVJGMmNPSzBwUkVYRGFFeUhNZkIyNGMvRGMyTmoyR3FHdHFlc1RqWDI1WDU2RW85M0hWYXlwTWMwSHJvSERyTFppR1NnM2Zlb0V1ZkpPK3JKdXJUUllVb0NkRnNlQ3BVbk1hVnl0SzBtU2dwTzhFbVZwa2RIQzdmZUt2c2toQmliaFJtN1o5SlMwbk4yS3k1NzE1eEl0cXdDeHFZb1FRODRrMGV0VTY0VzRBMkZSZW9vVkdERld1QklROVpCckUxcFRZWEd3UEJMcEc5L3MyVHhpUmpWeXVuL1dYM2YvNzJtcFBPVEliaUhRMStndGNTOE5oSUJjRVhVUzZDdjBVQnRBSUFhTnNzSDA0SjA5SWNxdUZlbVd1RlhsWHJSbFJhYzZoblZ3MU9vNWpRL3hTclRUek5PaUFaR3BYdGVKOFVrVVgxNGw1SXhZcHFCd2NGdEV1UTVzUTVwSHBtS0o5YmZOajdvdnhqMGhoWGdjcDFNL1VrMEJES1d4QmhJdWtyS0hGZHJGM0s3ODNQNTNhTk1NOGxhVHR4cmR2cnlkajBmTW9iZG9kS0FvMGpUSVBIRndTS0FyMExGM0puUUNWMndINTM1Nmx6THcxRk1xYXZEZ3FQc0o5c0kvbzJYLzZwRmU5a04velBvQWhQMWFNdkkwNVVXbzVJY0pQQndkVW9pR0RvWUVkTGErV1JMWldkYjVDcWdTeHN3Z1NiZHlmekZRRk5UWUFvbnVPTTNrOVZ5VnJKVGdCWk1kMkhDSUJVeWJMbGZKYTZiUVpjbnRHSWkxNzNuRkNOOTlYVDkyejIvUXJhMUhQUitYYWk1Zm1acExMZ1RWdXoxaUwwdzJxSGxSbG9Idmt6bm5HQnY4cmlUNnU5eXhhZUgvZlBTaHFBcG9pK1pGU3dBWmlmVmVQcmVlZnIvM0Q5ZXpYTGp3SzBEY0NSWUhwa3h1STQzUWdPZzNLUjVOZUNXYkNlazJ0ZlladVlNR3Zqa2dSd1NsNFoyKzZKSG95b25xYThYb056cUhWeWdrOWlicXpCT0c3UkhsMERKZEFrcXVJTGtnRGwvcFovelV6ZG5vTFVMaE12VmxJMXpQM2Z0VFpEdWtpeUg5aVIveFZtbUthYzU3bE52UVJYU3QzRVNvREJycU5FYU40L3FKUXlSZzZJVTM3R0xReE1sNVU1K1k5S2V2YUVqSDU4R1R3TmthNEloNFl2REsxVytwYW1uRHc3QzVaZHdRVitxSFcvNVlFK3pPMll6VmxWYXF6LzBqdE1teXMyNGg5eGl2THN1dXlqeVQzaW5kcEkzOWpKK2o1Q0ttSS8wTVRpdWpXVjRyazVSYml3c0pHbUNCT3pFNE9GQVV1MW5xNTlVN1EzdnBLYjBpTE1DY1p5ei93U0s5Mk1xdERMcW51MFoyTFo5K2xoSjBtOUFQOXZvTmUvYXBLRnAwTStmaUZiOFJLWmdMelhzaE9nVWVOK1pRVGZyZjVySXdKODB3SjBGRnZadFpMOVRaMy9xRWhUOUdKRlVmOWVRN3dJM2JJUlVXVm0vK0FVWDJESDQ0YXczMUUvdVJKeExqK1JmWi9Sdm52eWRFcmNZWG1XZnFzUk42QUJuT1BQd2g3REpOZVhUYVFjTy9xZkltZFNYem43amVuV2JTajhPNEozWDNOczhqRHZqaTBPanozSWtQSmhpdjJXS1BkV2FjMjU0dkxHM0JrcXRtR2NCZ1VDNFRjdFhDT0hxd2tQQjVZVmprdTloN3l4ckx6UkFzMWpJblVCM0hIanp5RnozNmtEeE5JVlZvUTU5R2ovazhIRGV0K1R4Z0k1NjF5SlcwVmdhSjU4UzdKSDBZb2EzUUZSaTlpMUJ0NXZGRHEzYWljcGNua3BWSkRlRlk0L3JRYzV1QkJxZE10ZGxTd1cvbGpIcnBkdmR1bGFqQXFac0RuVkFGWExqOFN4ODF3VHAwSDJqdjBaa2J5UktPMCtiSm4zeWJLREVhbWx6WVV5cjQ5eTVWdCswNkZBY01DclQrOHp2RHlPVHV2TlUySzhBZDg0YUM2Z24vN1g5NHVVWndCQWY4ZTZvQXhYY1VLbmlNR3YrZkorTnNSMjFMUndPd0RBTmwyQVZJSFJnWDR5WFBWbFV2Uzd1MGpsK3pFN1VDbklFeFFQYVVrT2NrUDg5OUp3T2FtU0U4eGoyQ29OU0t6SkFicWg1RnZQMVRLeDNNOHhjaG9JUjlxVWwydCtpSlZTZnBoRUNhQTNPRVBBcWs2Y0tGSTJjNXFsU0U1SGJGcE93bmNuQWVxY2V5Z2loRncyS2krS0JUc0pzOEgwYlZaemlsTkNXWmRReEY4eGZiMXpQQS9MZmtzcWUxVGc4c2dKS2JSSFhuMUZ5WVg1N2x5Mi9odDd3M3ZEL0NMY281Vy9Iamdrb2JNYW43MXJPdzNmN21iLzhiZWQ5V0R3SWhwSDI1UXR4aGVvc2lNLzhuRHcrZXpraDhvQ2p4T1NXaERmUER2eVYyUnIyYmptSVE3U3Rvcjdockc4T1BaWEMxdlFZNW5CczVOdVZIeGZIeDhKU2NEWTU4R0RuVzRUelM1bjJCZ1JGREFYNG9Xbk1pMldxTk9mUFJDenN6SHFMUDJCMExjc0dhVWgrRTNpMGQ1czcyTWdTSEl3d3F3THVFOE8reWFQQ2hMSDl4SCtqRXJ0WnA4OVYyN2NrTjBLUUp6K3ZOaGg5RTZhaDBkMUIyOW5RWHJtckRNYU5PRVY3ZWo2RmVXTGZHMFRsM24rM0dNMHMxSnJtNStLalhPWi8vSktqdFJYS1ZPTndrWkUybGhDWWkyR2pUME5tc0hRZTRvRmxVaGxxYUpveVFVUkdBMDluSlBFUHlub0prRHFTbHU0ajJsRFRFaWY4L1I4aHBOTTdWZmtBaERTT1Z0SkpWUERGeWFGSHJrOG5Qa0djN1dEakVrNmlqcFJaZ2ovSFlTUWJheEdBSVdyRFVIRkZ2ZlU4TVJCZmJGOWc4eEpLb282V0s1dC82ajZIcFUralZ5bXZCWUFtR1gvV01OUWxjSmR0NU5pcUYwVUpmaFcxMWIvV1hxaXljaSs2RGM2M0hGbG1zanVralQ2MVdKZkx3U2N2VHV5dENxYzkwOGV1blRxeGs2WmVwcVdaQ1dsRmZUdDNNN2tzRnZGV2UxaWJiaEkwcFRva0FBWk5MQ3J1RlFQUW5qR1R1Um9yV1VHZWxVQ3hGektjdGZiTkZjbEh3cVJCVHBLa3FqWGxJbnJhVFlueitzQ0RFLzJmeDhNdmdWZzlHaG9DbjQ5TGdQUDlWMlRNb2F2Z1lzTFJJeER0ekxWOHk0YW5ZTjBoM1lwQ2d1SUhUNU9GQlV2Q283YVZqTWZKZlhIZEZLVWVJUXBDS080Q2JlUFY1YzJZeWN5VzRNYTdJTmxsK3ZWMXFpVTlsK0NuSHZDRUlZenIzYXgvUVNjbzlKejdQMzJzdkpoWGxlQndMM012Mk9PdDhXVWdWbm5FSlE5R3JtVmU4dTVSbys3YnpxZzBCUE1lSmxvQzFkNkg0cmpobHBTK01TZm1yMXZDMVpadTZjaEl6S2FOMW9RaEo2V3Z4TE5QVE9sQnZ2WXJ6cXZlbFpvcm4yWHZ1N1AyS212K2FnbldubThEdkVJckkvOUY1azNYeXJUS1FvbEVSWHhIYXR6cjRVRnpiOFVmbk94WE1OOUh4bEl2ZzhJV3ZCNHpVTDY4clBtVmNibmswdFFYN2IxZmQzVGRjSTVBNElXY1B6aVJZWUJqdFQ1UHlaRkdTOVNHVit0MWxoZHY2VjZSZHAwcUo5YWZHYnFJU05LSHRENlBmN3RQTXRzY3h5M25GM2VzUE01ZjBGQkx1dzNhTU4vaFNTU3ZHVWdnUjZKUU42NlQ5SUsydU0zZWdsNVBXc296T1IzNko5R1dOcVkyaXRJZEltSlZpU0p3SXp4WWhDVUJ0ejdJcjcwV1hBUHMrWkswRVZlZThzVUE1RTZOS0I1UTh5RlNWeE9mbVZTRW4wcVUyWlJIUWFJL0FCTlhPaHdlTVdGUUhoeHRoNThoT21hTTY4Wi80VUhtR2xjSDVUUHJIOGRoTEdnZVhLL2tmRVpTZnpqL2NqN0h2V3hKSDlNTGp2SlQwdC92Rmtmc0N2NzZCUXVIdnpkb2JZaDRoL1MveUt2T3Z4WE9IMk1QRGxZdEozWU1qcUlBUHJuY0d0ZUxaYUhDWXVUTUpkNVFLQXpvbXY3TTNtLzAxbm5kRDd3MGNPQllPRDVwMzJWMkkxK2xncTQyRHZxZ2xYSU4zWnZ2Z0FUMCsvaHpwclV4a2I3Qml2NEl2UHo3N3ZJVTUzczRoTU0rWVRpY3I2YXFmdXh5WHd1MFlPd04ycDVLLzJqeUU0Q3p0S2xmYzZwb1YwNGR2c1p2MFAvSDkwTmsxNVBNUWZuUTlmOUowNDM1Z3FSc2dVMktsdEp0U3BpN3d0WDRQVFB4UXZEaFozVC9TeWhwWVozUm85cEdtdmVsMkEwZ0d6WjNTZFZYWWdKZXZlUDB2amR4UXcrU2JIL0JHeFFWOXhHK3VONDl4aWc1S2RqWHcxU3IxcnUvTDhmY3N4Tk02MS9EUklEWGNmY29XM2Uwb21qK0VWdnIvNWgweit1TEZDRWc1N1BIQ0NoSC9NUjdnSWZWeUFXWmlqNlpkYWZqeUo0UjlTTWowTXZSNzJQQ0FrTnl4c2pVeFhQWjNCUWhFaVJrRXYrQmR5eXNIcE9weWJNcitrbC85Y1BrQmVrWkdoR01jdWoybnZjMkE4WHNqb3c4K09RYnlhTnc0SkNQczRUZHhHbk8xY3lhdmM4K3RReXc0YUNKc1VWWk5LTWxBRFY4UVRhc3YyNm1BL0hxeVRkYXNUNmpUakpiSWJSS3ZlcXR4YzdVMlhwbmRwL1Bhd1lSeHA4TUxRMElYQi8zTGZDWTh1V0hWWTQzZVYvZEw4OWhLdnQ3eEpXVUxqQmZIdUU4N3RrY3BneTU0N1V4c2FleTA3OXk3SnB4SG4vbHJtYzRkYWNTM3J4RDB1YnltMTdPVy9pdTdMejZZSEZWVzVveWh1UUphR2lZeE14V2hrRkhkVVd2SFU5SUN6NDlSWExIUTdUNlJIdVFVR1lYbVNaVG9OQUtiUmtpd1JaUVl1MmlVMjJpSVFsaXRxVHpKeS9xK0l3RUEvSUdyaXRqUlc4N2RnaGRJa3dVWUVMRFdCbDBaSUtwOUU5akNhcmlWVXpVcG9uL1pvbnQ2bzNxSldrcEc2ckJKYldyMjFsY3RrY1psOUM1Vy9mNk0vb1VzOXJMN0NVeDlSMzdPcFA2ZzFEZGkrbkNWM2RSdnFTdXNNM1FXdDJPNkxpS1dKR0sxaHNkOHBwNHZRb3ppNFdVcEpxN01TdGNqVzJyTkY3enVkbCtqa2xXdTF2RW1KenVrOHZXK2NJVTd2TzRQbmN2SW12ZUozT1dkdzkyRTFHQmNMQ0c2MUpwMStHSFQ0OGNocWdPQXk4Z1dQck5LazBZOTRIMWJHU3lhNGhwcWYvZkQ3MWZ0d21nbXlDVzhTa2d3MEpUTTlScEdIbFlhdU42ekhTTE94QmtWNHVwSm1JQW54cHRsR1NEamlqYUg1QUFIUEpMSHFRMjFDK2liMUlWMXRYOXN3MlBmV2NRRDluL284cFUzNXl6Ri9JaWd3dit6WkVFaHFsZ1NUSHpsYlAwSU1YVHpGaUdJcFEyV3pobGZUaHBjNUVGRXNTOGhLTHdkc1M5SzFZQkMrOUQ4UkRPdGRid0tIaXcwbys4b3J1eEw4OXJESDdYbmhQeDV6ZHFyZHMvVktmQThMN2s1VHZpRGc2K01QaXFuWStKcXcwYjlYQS8yQWVwelErYzRETjA1a0lZNExNOUVDZ0xIb08zK2tGTEowL0IzMFdDQ0FCalVoTE1SbldvcS93VHlhKzliNUg5c25ib25UQW1ORkdLZEJqNkxURFBCeXZKWkpNb2F2VS90QVZaQWJkS09RUzdMOUc0dmw4RlJvVlVQQVhYbjRtVi85ZU1LbGU2MVVXMEZzbkZZVUpkWnJGVGhBNkl1V0dPTThPUFpIQUR1MDNia3ZaMmRPVE4vMnVNUnlESFk0TVZqRU1maXZ1ZWRPTGV5WnAvV25vL1AyN1FJSERveEtYRktheURMcHVGa2FJY210VWlRVHhTSTNVYVVrdVlSQ1VvSks1c0lMUG9Yd09yY1YvM2wrdnZWeVV6RVZxdTVWSWVsMEpmSjhtSnBLQzFPZlZ3Wi9FYWlRdlZDMVo5TW0vcVJ1bU9hOU9nRUxTQmxKR29kc2JtcFJlVHdYSzY0WHhRaG01eVpQNUUxUnU2ZW1GWWZvL0tNQlgvTDhwdU9nYk0yRWRSZkRZQXFmbGlkcitqYjg1MVEvK2YrcVU2U1NBdmlTdURqNFlrbCtpbFN0VHBaRzVzT1h4TWJDbDBRV0pFZXBSS3dSbWoyMExNZ2RBQzZoT1pYYysrVmV5dHRpbXYwUGk2UGtVQjBoeGNnOXk0RitBTFBPeC9HOW9oOG9LVEplZW91eTdFVVZCeUREMnJhOWpJQmlHQkdqOC92ZTJJMGJ0b0U0OFgxQVN5TVhnSXhmTEtjcGdpVmExQWtTQWg1NEJiUWYyYUxqTEVXMUZocTY3VXU4aFVXYzI5Wk84ZGttbWM3UWppMkgyaWdkTE9Kd21TbVE2ZFpNSjZzbkVHN2o4UnZzc1dIcjlQNXlRRWhlMTlTK0ppK3RXUzhTb0tyd01rOVkxYm8xdGdEOUMvdUJWcCtDRFIrQndXaGFNaENkZ09HSTNXU0ZpdWlPaUxBckZXK0xCU24xNjJ3YVZIdDRMcFFaZDJlbHc3V1BsUWpLVjgrblVDZU1HeW5aUkpyaVJ5N3JJTzNMN2ZzYTVUYUVuaWNtSlNrVkxvSlFra0s3cS8zVnphWDgyd3NIR0FKc25qN1V3M25SNHZQSkIxSm1FZS9XQ0lHZ0h0TXNXWHhnNjcxK2ZkY2xsMXJWam5TcnFQNi9KT2tRZnhXUXJFMEFjZXpVeXFpVHAyZ0Nvc25qZ2lyM2xJclNjWG9aTFZhZ2pFaFBVQlRqSXA4QnoxUmVreEdyNEtibHFZVjBWYjk2UEp3MGhSTUgvVXd5ZTRUbGZadFFHMUg2QzdhQnlhYUQ4Z055MDhDVWk5YmtYYXpITnNSMnZEWGlObkJIUWM4eWF3cUppbWZBTTBVaDBhSUp6MUxjQVc1SDRHSjIyQkdQMjRDUHVMWjRXRUo2SFBIOSszK3drY1pFUnp3UTd6REdSMklIMzc4anhzZW5KY0MyRmxoSTF5aHVCUWZoUUJyd0xGMjgwOGZnNjJ1TWk5V3hEQVFVd3NGUlVOelhMS1FDVDByTmdPa3QwQjNSNGVFejBVUTRRRnBScnhBKzBGUGpiWVNHZy9IRGRPTVVLbVRIYTVuUkYwOTZWU1dCSDFiK3RXcW8ydnRza3lxVitBQmxaM014c1E5U2lORktJQXJwYk9zSU44UWx4QzJ0TmRUZE1OZ3M4Smg2aDJVV1lvdFlWNkxJRFRjWldKa0o3WXBkZEVhK0thYVFwZnJ4VDhUemxxN0VlS3RHN2xmWWFQZFRacllKMWFXZkdkRTRjOEhFQWdwT294U2tvK1d5NzRXbjRHWEJjUVZ5WmZndmxTNlF1bWRIbDhBaE1BaG1paElSVC9FV0hwdWdIM1loUkYwMmg4M1EvWGhTU0pVcnpxUlFKMnJqditKbnp6SFUzVURqeDhUNWJTSWIxZ1IzOEo4YXpyRUM5UGgxekZscDNRWVdpbGczWG1BTEFtcklUZWZEbW0xQlNkSzZGR2N0T2RFNy90aHZGK2JIZk96NHJ3dTZsRnd1VjhudG9sYStQcmVjUkZwKzduWGxuTDBCdUZWdUVzS3ZMZURuVlRSNTdlOGFjR0I0N0lQZVo3MWJ3YW82UTNmZlFzUENwOTJHdXJubStROERwM1d2VUpzK0x4TWxJb2J4Smc2WFlIenFRb2g4VlBGSkJvVTZWZTFjRUhERWdGL1VzTkJ3M2ZXcFZ2ZWgxblhkUHdQdlZhdXU4SGFZOGNlV1MzRnE3MEtpemNHdkg1ZGl3OUs3ckUrTXRqNVJEZ25KTXJDUXBKdytrVzNZbUUwdE96Vmh0VzFjQ3IvZTVpZ2txcjNqRFJ1ZUxzY1NWQUhzejBSMXJCcUlNQWtNMDhkT0ZPbTRkdGdtckk2TmJaalBYQVBxVTRicU9Sd2UxYW9WcDZGRlhIUG9tclpQL2FmZW5kdENUVXgxYXVuaTgvYnhiS3hIdmJPZ05TbXAyNUFKYXMxNHVYTHlYRTNYazJzQ2phckhJM3dHVzNaclJ0a1dRZ2wzNVhlVk96QnVsYkkxeStFZjh5ZDJQZXQ5MEJzYkdBNnUrYjJXakw3Nk02RE5EMEZ5cndyQUxYSWl3bWx6M1gxZDRuWER3bW1YdXd6ZGV1VitxanA1aDZHMmYvdlU2NnI5RUo2ajNmaFlYbjA1cGhub0wva2dhZzN0d3M4VUphS2Y0eTFjYnJqRkpNcEh5OWZWWFZDUHJhK0tjOFVxMUVsV1o5V1JIY2VveG85OWpiZFJDc20vMksydnI0eFBCS3kvN2FYeWQzcTNvZnZtam16UzVSYzZtMjY0NWM5TkNaWVhMclNvYXpkejBoUUVkZDFiakNxWHBZdWg1dE4zS2RyZDlFeURQcGVxWkdwRGJjS2xDSGdxUUhDQTJYRnp4Y2xaM0VhSGc5K1ltbFV2dG5QalFuWEVzdmM3dXBSemZBM1M2a3gzTGQrQ0kxOVRsbHArWmxKVXRZOXhqdHJRSFpLSkdaUEpNZWVuaVQzbEw3UDEvbkYyTDEwaDZUVHNqRERaN1c2RHlSR1ZoZ01zOUZtalUyeHl6Q1Jlc2twVC9obGJuNVlWcVpMbEtKSWI1aldhL3BkSTdqeWlRcFg3VDVBSi9mK2VwZE5od1BuZlZPcmZ5MEtWbTRJRThmanIrQVNoaUp6NEp4N0hqWFFSbzlYNHRDZzBHUjUwb0dYL2hrYnBmR01hTmNxSXlaKzFMcDNueVdQZTZiL3FqZ2NraUM5L3BXcVhEOUVqMFpKVXpYdFJJdm4ydzAxb3JnNHRtMTNMNVM5aEkxSm5UU0hFcjczWkF2UVRKQThsNmdXYXY4eTcxOG8ycnJYK3BWN1lhcEdPek5EdHFDYjkyYnZpdnBmdDdoYkRlZDBDTDA2ZUhnUHZ1RzFaMy8wRUZISWVPQjhNK3J5KzI3TDdkZ3c4ZVFhaXlETEVjTjZ5UXJ3R2dUUDUrYllUMlZ3VlNzRDZXY2tPZzBML1B6akhCNGswSnFJVXVUYVhDRUJ4cDNSa1RzVU9rYW1pUnpROE8xb1d3V2Zkb3dlZmE1eUZKTjI1N25sMXNnWlRvK3ZYbFdGS2grakNVMUp4dk95clQ0WTFYMVQzUnVqTVd3T2pzZ3ZWSWdJZXJGeFl1WGNkbUViZWVjbHlwTThKVDY1QkZGaUc2RTRsUHo0MFl4RG9CN0xYdHRSdXFkVmY2NU9kNjFNdTdidjI2Y29uYVQ4dzZkQWpWT2RnTWRCZjMzTGNjOGIvRFA1OFBQU2ZyME9QWnhYb0dyY1ovekxvMTljcU9kZ0t0TGFwbWlWbmloNkprc2dOYS9TSWE0dXFsRWxrMFd2NWE2R2JySnJMTG1IRVVhdmNKSHVvZko4ZkZhYTVxRVNYVDZjcDBiZWdRQXVsa0lBTFB1cjA4bHUrQ05WNGdDYk5XeVgwQTgyL20vbUJXUzhEQzZmeCtnQ0FuZDYrWEpEM0h1Z0g5dVdySE5CSFFUcDJlVVIzNisxV29MNjUvZFdQdmc5dHRYWURDMXZ2OTIzTmlOQ0hIUmZqY1BuM0FTaTd2WFdSNU9iNk9OU3YwV1EwV2tqK2hYSWNXZmYrL0g3TmR5UFczKzBIK205R3BTNHdOY0lRZHRsYjlScWZSZ1V1eWlxRVkxRzV1OVBqL0k1bFJNYUlFMGt5RmJhR1A5QUtsWXNVSWMxaHJhSXFMRndoNmMzN015QS8wVmowdkpQSEtSSXo5LzBIcFdnZ2RCTlVjbkpjU05aRHBYbXg1eFdGRzcvRm9ybXE4VS9KTWppWHJZNkpZMUl0RkxDZVB1NC9INUtLTDFCbWFkTVA5Z05YWGpUQVVxM2Y0Tm1yYzVCZjJURVBEaDM3WW81dG1IZDN2RklRRi8vZU1ibzNSYUdnc0E2b095MDRmWHo3L0s3SlRLaHBRSU5oQkllbmVzYjBKbWJpakRuWlNzTy96L0xEbWJrU3l2R1Q4OUJqUlg2Z00rL2ZrR1JhY1FKNUxBVS9EaE8vTXNLNlphb0VVbVJNUnVUekE4YzlqSlFqNC9Pc2JIS2ZLUDhkTlN5cmJhN1ZYK3lUeWJlc2xvNFQ2MytidTJreWRFYXBtcXJjdXE2dk8raWR5Ymo5cFM0SlVPaEp6d0FJdS8yaC8wT2dmOFg2T05RUEFnY081d25Hb0J4ZnR6dWNNNVdwOWFlK0NhcFY4V3BCMURkb2Z5dVQyYnAvWU9yMmFpNE9wNnplbmpQNnRxWG5Oam56NVF3aW9xcGtBQnV0VkdwZldVekxGb0FtS1JlcUY3YjNBK3QrcndQNlo3WVp1cDJiMUk4c2toYWcvMDJiK3RHcjFIVkF4dk52dndXSENDWk92Ni9XYURCbVMxZTN2YjNmMmhraFRmR2RJMy9jbzNUc0w1SndySXRnYURyRm1XL1A5YmszYmI0YTQ5dzVDUC8yMldYcHBHSUEyWWJmMGNLRG1rZnVoUWgyNk5KSmx4TW5XZ0VueGJPV1AvdTd1T20rLzNUM3k1VnBVcGl2SGUwanY4MzNzWG1PN0h6MEJkU1BDaFFGSHFNTHRBMnlVa3M2dlFOOHY1NjA2OUx0ajZIVGlkOFhUMmJNZ3V2M1ZkTDFNVlZwUDRtNG5nMm1oVE5oendTS0FzZDdPeElzbkR1Y0tRMFVLQW9Nd0o3Q0V3RUxUU2JwTGl5SzVsNlNJc1ZpNUlaZ1hhVHNnWmVrS0h6c0dBYzdRVE9yOE1ZM2dIMzB5RU8rdkF6VlZtdHplQkRZN3VwaWtsaGU3bVlXcFgxZjZzVlBlelZlNjROZklNUUZyVWdVL1Q3OFVMMnJ3UTdkVDZCQlFBM1AvUVI1dlYxYys3dlBUdERsWGt3UGdPQ1JNeDdzdC95Yzc0ajM5R091MnBoczlTVGRYZ29ZZHV4TkppMmZmQzYxdTJwb0Q1aEZMcno3aFg4RFNqemN1L0cxbXBUS2ZsME9mTEJiYWFQZXM2ekNzNnVibExsaU9YRFZBNGh4eU5GbFkvZ3N6UndKM2tZb0prRGFIVVpZTDdUaWoyOUV0S0VqcTVpL0h5cktmcmNpRzNrd1FLTVF2T0kxMXVYR2FjcE9Oa3pCZmxBaG5kcEFVU0M3L1NkOHJWZ2RMZHVpN1BpRHFZaHRlNUVkcjZka3ErdFNnZTlUQWhYNzB4NHdhc3FPZlhJck1zQ0VlZzVFWWhvWUhZczhxbjczME9Ec1RaMndxUGpzMERHQ202OHEwd3pEMFpkaW9qaitDNzBrdEszeUtzTkJOVXd6cFhoSTNJbTUwNEFySjdHNDFvTy9LaDZuSDBud3F0RTg5NEc4dFFuSitUMlAwQXpFVGxDMnFOaHo4YXhhWmFoQUZYTUM5Snh4S1ltbmxqRUlXRldRTzJLV3NXK0k3emdrR0JqV0hsV3NZWTVIbDFJWThuc0pRNzQrSUp5VWVuL0ZVQzM0bnBmdnNCd1pPMkdsVzNNWHkzZFVqdnFUR1FxK29yenVyZmhvdFBTU3krRUZwVTBvZE5VR2FObWJ6MmEyc3B5T0sxMERuUmM3WjBFM0RQN0c5aDVuMjNGMGUrclZPWkNFaHVkQlgwUGp1N3dmNTNQT21IM0c0ekNiQWtXQm96dlBZOWxyR2ZSODZNbk93WDkreDhQcDdCOGlHS1BzSHhEZVpOZWNEandPU1hEVzNoU1A1S29tMkMzL1RXSUl4THIyeDYwTWVGemJha0orZ3orYkc1N09VU1NTemNKTjBidVJVQWRlaUtnT2JBN1cxM0tnV3hueDVqU29ZU1BZMEZWNXZOK2lmMWI5K25WeUsvMEhOSDh6bi8yT2JXNU9CUlI3SS9HY0dabVBIN2NoQTBZTHpHdzV6dG5yd1pQMnh6NGdzekZnZzVWOUxRNERINTZXNFFQMk13WSttZm5ydFhJZWZUSkw4eWZoakwzd1QwZG5LN2dYMUJ1VVhqVCs0TDE0VU5yQkVrTitPWkJ2L0VYS09uNmVaNGpGejIxelVtMWNpcGtpMTRBNjNIQ1Rlcndsdk41blQ5RkFpOEhXVUY5WUhxNHhpVjJlRjVDTG1KdE9TeUtwQnkrZ3l0c0J0TTZWa3RXMGcvd2k1dnpTYnNVWmZpTy9rekpsamZMbmdCbWpTSFRKRmxuK0tqaTdhRGpibmd5WnFHaW5lbSs3UWJMNmdqU1pDRjBEeUM3RjQzVFcxRkFxN1NPcnlpdUJERm93L2t4WFdqS0xvcElKWm1jOXJFbi92UjFEOHgrYTdJNTdjbWc5L092M053aXBiRk1mb1JlZGtGakN2S3ZQUnI1cTQxY3FqbUpjdEhvcmpDR3UrM1Z6V3NGYzR0dm5hLzdFK1Btbi9lV1JKSXpxWGJCMlUrcTgwY2xkMW1VN2NWSGlmdUlsNy9sNkR0QVUzMkJYY0hCQmNNaDk4VmpzcG5IZU9oMW9NUklaQlNGbWJiQWtiV0VhdEZSSk5vV0gwdXJUL2grOWRZSW8zVFIzc2J1K0pBUjdvTmdvUzEyeVo0aWlvZ1JNQi9lYjBlL0czSTFTclpjdSs5VjlTY1pWamZMOGs4cy92ZDNSSWZlbFJjRitId0t4bWFQc3ZVVFNjZ1JFNnA0WW5KWHZWZkN6RU83MzNEekQ3YzM4Q1ozbTNyQUo3eDZkRG9EUTFZd1gyNFE4Mkg4NjZEejV1aGlkdnJqQWZtOVYzeVRZK3huOW5IREVjaXRzd3RDdlYwUCtFTGFhUVR3ODNVVWcrdDdyUFlIc3ovNnZjakVUU202anhzRlJ2aWlsN2tydnJ3c2RIT1VUQitvZGdYTGdXK250WUlCa2lMek8xU3d2NWhKa05FWnFaM2pkbCt1OVpSa0lXYkk3Vi9OOGc1Y3VNbXlCQk9QK3BoNVFpWlV4Mm1rZGlFVVBVZU1VNW43UE9XbmVld2p1blBIaGNTVHJtT0wxWjNleHZwZ3B0RXV1WFlsd1VibHRmYVJzd3k0MmxESEY5cWdIRnlXVzR3K1lIaW40eHEvMjNqRE42bm12VURPQ09tTy9TZmRjUGUvRjNJZld2OHE0RG5GdDg1TEhIeGZ4aTdDNDF6SDh4WWhEQjAzZk1qQVE5RkFLK2dZaWxzUVU0Yjg4STVoUHU4RU02SnBOdDdMMzBUY1BkVVVjaHVYVi9CemdET1UxYU9KZWkyRGg5V29jMDZwcThwTDlTbGVWdSt6RG1DRmxEMVlON0N2RmJqL1lXbmFPWEg3UDRWL0duMzV0eVRQdXk0VFRSeXZ3N0xWTlc0MjBCYkhYSmgwVW5mQ1pPSkhSOGUwaVpuWll4d2RIMWJPU3FKUHRHWTZsVTNqQ2k4L3VmU2Vob25rTFV0NG9xMExGREx5ZUQxcjRkV0JVZ09rNm5XblRNd2hGWkV4aE4rUzNkNzBwbFVrVm1rZnYvWGYwaXY3R2xzeEg1ZHIzL0xWdHN6TTc4ciswYnRXUXpDTGI5RHhRdjFYUGVGNmYzdCtJaGl3MHR1MFJiOFR1OUtPRGJvV2dQSXhRaklyb3pCK3NCOWxacnFDMVc2TnpHclVaVXpGRUJBUmV5UlZBaW1EaDdZNUU1VDQvUSsvekNLOUVCUnA2MGQ4UnlJY3FDRzUrN1JyeEwxdWNMMmg5UkZHU2RDNmgrWWh3bklGWHpneU8rek9tNEh4Zk9nekJrK0svU3FNN1J6V2RuS21GdmFaekV6VWI0RjRPR2dVTzFDQTlpYkF2OHFZZ1FuMVZxUzAzMW1NOThLUVNzSFY5bldTU3ZhTDc1bkhuSUh1MXo3bXQrWEhEK3VnUkZLeEJtU0t1bW12eUY5OFArdVZKTFVyeVhxRzNqVlhBdHFSZGFWZDhWajFDbXpsaCtHdDhZL1ozWDI1OHZlSjdQSHlRWW1qbjJjVWxGVlJ0Q3E1WEpCdCthYWpxN1ZwaVIvaU5IcHJiKzZsSkEzR1N1QURKQUVxQ0NsQTNTUjlkQy8zWThDNjlLU0Z2MXBRNnpodHo3MTJiaFdOVm9wL1haTmVrYXVrdzlwcmFJUExwa25XWmRQSzgrdnpMM2ljYk1zbm5QTC9KNU4rZWMrUXY4eklmbU9PM1haYlFxNEtiSmlHdWFuNFY3aDVoUTlNRW1yWXBqVDZmL205SGttZTZ2bkZXaGx1ODgvVldERzMrMzRmNlhXRnYwZkRrL1dCZzA2dUZYSXR4ZXlrWFd0MjNhYmNYdjBmQS95VXoyMGFtc1N5SjVmbWhibVlZRVlNTEhqOEI2Ulgyc3BxcTNXcEMwS25xa1A0ZU5idElsa1UzNkZqSmN5d2luaDgyTURnVXFSVkpIb2pTWTFUcGVCRTlac0tOUlo1RkJqWmRJVHpIWWZVVE8yZGtaZ1pkWThtek9INzBlUTVzcExYcHhYcTVhdklHMEtyNFdCODZXTWw4Z2VSR2EyU21oQTJ4OFdzUXQ1ek5BYUVYc2tGOEQrVWhGSm9vZXloV1N1bzg1ZXBNcmhmUDY5YlA2Ym1YUzZTOXlYeW0zemg0c0d6eDNEeFpYcFBJR05ncVN3SXRjRk1YdUVGSnN2V3BjNkxtUkNYTk8zU2tCNkM5RDR0aGlTaHVqVEtaS0JRbWt6UktpbHZJRExPK0I4TC9PdkpiZXNuNXppRGtHK0NKWEEyL0xORStoYWxTVFdZbTJQbGxhaTdjeFRNWWhIK2NsNlNlZkMyRk5iVVE2UlBKdWZ5Q3cxcGViclZlNEh3eXgweU5uVzdpeC83elNLN1IwK05DSTZ3ekk5M1puSWFZR0U2RE8ydW0yR3FaSlhSbjhPYmFmeXJaaWZwMFBZSlB5bDZReko2K2Y4aXFQQkdCK2p6ajZjaTdXVmRRNnJicWlxUDkwRHE4bnoyTS8xRzJvVWVqMjg5cERZbXVtWFVrRWZlNzZramo1SzJsZmZrYkdoalhHY09RL3FZclgzU0JiOWMzODRUNFNBOHo0MmFXdDM1Q0I5dUxlSnMyMUx1dkw0SysxeU52cW5paDcremh6U2VMUFVWb3grU0Q2Z2NhRzFMWEdLZkVoWDBRSUwxUVVZNjVkdDh1cS9rS3NnOXZZajczcms4VUI5Vnh5bDFtQThkSVlpSHNUQVk4QnE3SHMzbnhyT2NCZmdIMENXazBCeUNNSUlhdmxQN1dvaGxjSXlhZXBJUFkvSnhBOVRhYmlFc0laL2hoTWY0NEZvR3hpYWdQY25xT0I4RjZUSmdlb09HSnJvY2hIK2c0MnFGK0pYMGxoQTJJRGVla3h5T0Q1Q2NqRHVsUDNJL0dXdWhpUUE1MEpiVHRIcnVKQStwdHNRT1RzamtielA1OXF4VCtwMzVqaFdJUkRzMS91SVBnV0gyRGlNR1JkUkZZRERtU2drTURqOXY0L01iekpBeE9tQ0NzcGF3T2g5UVY0ZDc5enlwY0NxVXNGNUxleVJldWdJQWZSdTRQb1J5a2hTNmJ6djY2K2xHd2NrTGdQMHRxeG95L244Y2FGelRxRjg3YkJYSEF1SkJjZUNBK01PQ2Z4ZFdqQXg0WUJLTjlQMEtSN04zN3J4SDlHOHdYOGJITHc3MEgyakE0VTFocURBQkJFc3F0ckhEdk84Y3dlQU1rSmhVSVE1T2l5K2k3RnZ5byszRXhMWkxQUGI3VUdDMGlmc3hVMEtyTVM2WFJVMWZMam1ocS81VWhMQ3VpNUpVdHNwTkFyVWMyM1VGVmZUK3QycnArYTR2cWUyN1VqeWlobzBpMXJXWGIrZzNSNy9qWkpJb3FHdEFSRk8zenpLTW9PdVpkQVJyVFRZQ21BSzM3WncvczArYWFCeEJOWDU4U08xVCtvSkhKREkycEVHY3VyRVl0STZETDB5SGdpc0VRbmp2QnZwQmFhbkFKZFJLemkvNzM2eURrUHlvNFRQcmpiZGNLbnAwdER1Z0crb0hBWnIyZGg3em5Sblo0L0dPdjVUZGdtOHZUYUxXT3RJWm1jcFlENUJ3L296Z0x2ajZBQk1CZ0FaQ0g3UXExdkR2MFpMMEVKVUY1UFowVUo0bnpldktOLyszUGgxR3hUem9KWEVoSTU5VDRiTXFKbUV5cGdTaFYxWkRKbEp5SVRUNDE2WnhDd2lTdzErcFA3MGZpVnZ0c3pCRSt1QnFpVXRZOGhuQ2pUM1U2dDNEYXRsbDRpUGo1K2wvVzk4a3ZxdnVlMVBmYTliR2dzZGV2K2JiMFZiK1EvN3IrK1hadHBucDFHZ0xIUC81aldlUUdMMXZieTNlaGxkZTZ3b3d6eTNUcHRzeVVCcDMyZktMNmJ4YTlTdWZxOExIUjczTkwvTDZvR3B5a0doZUZVTTBiS0JUVVlrcVJ5YVMzb1hNbmhxNC9VZDk0M0Q4WU5aUDB6aDRSSDF4UWZ5RTg3R1pBZEh2QnVKQW1TMUJhUXV6V3FRQVJNNWw5WE8yQm93N1FNSjliVmY2bnJDbzF1U0pPZ2FEL2w0Sk9QQm9aQksySDNJVEJia0llUHRsNXlEdW5UNXVlS1ZmUm5RUWVvZXRPTzBrc056QU83TUpMTEtvb21TRmFBcU1OdHlhVlQxRlBqYms5SDIxSElIWmd3M3RmekNwWWRrZEhESGN5d2pmYlBDbkN0U2lsSUJTRjloVW9VZVQzUmFOQ3oxMk5mNGZEdmNNVDN1S3l2QzM5NC9vejZzektOL0dDUWMvRGdkOTNSWmxwT0p3OWszZEx5cEZhUVBQZVFRYWhlODFoUmtzMEptdHUzdU5vVGpUZVJyOU5qMzYybVVONFJ5WDFSckUvQkIrbWtGWktQY3FERzNRVnV1Q25KZHZId3M4WUFjQUpqd25Pam9nSXpySXBnQ09JY0VvVHNvNmZrTDEvR2JacTFsZ0xtVHpXTXJNU2k2bWM2ZWYvbHV0bm1WWGxJVWZwVHNhYmxqVk9sbU0ydW9IZW05ZnU0dWhNS3BtNUhnZ0lVQ1VZMUlTdDJ4dkpMTFk5dnIzTmQ5R0JDQ0xuT0l1NmhJVCszNnU5YjJFSzhDdTJyeWJTMGFtbkl6VmM2cDVmejBsUmlaS0ZLcGhmUERIVWNpVVVoaUQ5T0FFbmVsZ3B4ODNSNWhwMXphdm8rMjY3eWdWcThkclIyOUIvMTJkaE85YVpsbXlsd2xVZjFZandxSVNvb04rcmw2TUYxL2xDVmJRQWZ2RzhMeGJ4cVV0OHAzODg4ZWlWUldUS3BxRmZGT3F2ZHh1cEpKZ3VhOGt6KytYSjNGTnN6aUlPYXlhWFA5TmpiaDdzRzdRTjNQNnROSEFYTEtLMS9nOWF4dGZ5U2V2dVBTT1RuNzFhUitMenRNdEEveStrNFN0V1Q4VmhwNjZ1OElReHFqaWNmQVpqTG91MWVrSVBoVUVrTUNqVVFCSTUwSE1CTTVqaEcyY2haUitqM295VDAzTk5wZ0phdEN5UEpoUmFWQzZuNTVrTWVWUlpkQUVWQ3ZadGlXYWhyQzR6anNzeDR3eElLNHVkdHhwTk9BNzNGVVZ1bE5WRFBub2kwN2xzVmJVY2pJbFFPU1ZyWFlyMnUzaStTaHJGTnJKU1ludnlaY3JrZ2tSSE9GNXoxaEgxU2NYMFlTamFidXFpNkc2VExBOFRoWmlTc3o4aU5JeHRDWjJJVVRMMUdWWUhYTno0Zk1BZ05VaS84M3hSMFpPMC9DMWZsZnp0dnN2NTQxa3h5TzE0dzlLT01ZZTBoNlNxc0xzV3hPQVhqOVl6VlI1Ly9sWUk3TkszT0REYmp1Z21XUGd5V3BJdUtoTXRRWGJuYkd3UlpoUWt1cWdudmowaFlaWGpHOG5tbUtYait3U0UyTGR4ZUw0Z0hqZEVTQkFwSTV2Y2RhVVZ5WTBXbzFadEVsbEkrSHdOTEp4dHhTM0EyVjVNSWg3YlhVTWlUbHpmVGlLMnQ5U1FpTW10YXoxcEE3MVV1Mk5mVEFld1lZa2hCTUVwRUV3U1ZVU1VjYkpFS2FvZDZnQ2ZzMXlpWmNDSjVIQ2N5QUdpaFF1WXMzcEJmRmw4SkIwTGxCa1JkTG9Sbm80RjZPSW9sd3FrbkdETWVib20wcWlUSU5uRXAyalVWNkljaWJMaXY4enF4K2MxVitEeEZjMTVlSHhDWXdXUk1MY3FiOFEvVUtpTW5PK3VLNTJhM0dnMmF0UkdrWm1FWnpxS3libGx3dkU0N3RnUi83cVMyTjVTVENJbUwxeExJaDd2V0VRaVZLOXZmNzNxcncyRGNKRlZIYWk2NDNNdFBHaE00SmlUUHB2RjFZUStCREp0Mi9ZZlgybHNQWmFFVlNubFJKSTNhSlQvdURGaUltTVJ6VkNuUjlCd2U4OVA4OEJqdmxZZU9hWFFLYlJIRkZLRlBNNlZaZ1grdXltSUNtR2lsWkdWT2JmYjFCVVJoYnUrVytmZm1uZkx2UE43VVVURjdMbTVZb3A2U2tYRURNcXpJK1Y0VjNHVU1WMmZJeDJER3lqclRUOFhWK2dxbU5FbnN6cTc2Vm1JNm1tSVRkUUFXdFNiNStHNFF6b3hlMGE2S015VHFhQi96NHJKTCtNTklmVGRXbDQyNHdXTHFTUUlFOWVrdzM3R1RVWnlsWFI1bmljWUZqK1lLOUxMY21sR1kzaHU5QzhYMlp1K01FUVcwSHRtMFBWRUJzZU1ONkppbUN4VWpNU0U0N0RNeExxejdwQWpnaHlNUThIUDFnSDhiSWNxQnlzNG9wVm44SjJvYlRnVGg0c3piWE1pK1JrYk44bWhpbFN3VXo1KzI1L29QOEJtSGRnbzkybi9HdjFWT3R4V2FNSnd1TEYrY3hndE9LNzk5K3FxNkRNamE3SmdVbmtlelpTUHo4MktiSExRRjNlSTdnbjFpUTZzKzA3OXJpdmFyQVByTUFtVnhSVTQrR2RNSWJSRVY0NDg4M1U1VzJhUkg1aThpUXI2OENiYjUwc0lOdTgvTUNoVUI5WnBOc2svS29SZ0hXbmlWTkNtRFNWZzNUblFvYk9NUTJlOXorbkFwV3N1NW9MMjZzQ3U0Q1BlUjNYZzVQejhjZEgwWEpNeEwxd215dzMvNVkwT1I3bW1MSS9DN0R2WExHT2lZa3htUElkandwdVFNY3hBdGtwTnlBemtyNEx1a0IzeHVWWXI5U3BWQ3c1UHZxZlRoaVJHYXJoOEFjQVFKMjZ0RmNseUtBWXRMVHRhRnA1dDBPZlFvcUt5YVFZOUxWdW1qY3hYZ0ZiOHVjRkVta1VHTEp0bHdPcVFaaVlEYVpFWThTeVdBVzlFV3I1czFvSGJxWm9nZkE4dHlxQnJXdlU5ZnY0N1IzU2lXRS9od25DZ0huaEtuL1BBNkNSQ2lMdWZBNFdPN3kvSmE1OXk0U0l0L0IxVkdVTGtwMUl2elJvL1RBRlAvTUdId1pYa2g0M05vWm1UU05SZnhFOTRqZzFmN2JIOXJ4dllMZDhvMzh0Ris0c3NSRVNZbVdiUjZkR1gvZ3Vua0NWdkJ0QjZuWVVHTlkrekVKdCtKb0cySEl1NUVhSzVFUklUZWk4WFZMUEhWck1IVkxuSDNCcGluclBmdTI2L2FWeWMvTTA0NTNKcyszL25vSzRWdzJaZnJyUFF2ZjhsaXNmclhseGl4cTMra24wTGl1dGgwbzdkWVRiekZVM1JqR2FLZkdaT0MrWVQ0Y0ZXVEpJTmF2WFNjVk9UYW4zWThtRmhiTk1NZjAweW5wOTNNZjMwRFkyZDF0U0lZMjM1SWt2dkp5OXh1RUptdCtnSDlJdlc2VGV1TENCc3dWNU1Uc3gzZzgyYmpWRTBJQkZhbGx5WUVEZEVIc2VDdFR5Zy9MamVQTStlV0gwcnNWUHg2bzNabTJITm5ZcXU5M0lVVlhobldrUzl2U0hkZExxdFZROFBMUDVLdGhEd1ZtajF0R3BkVElXZWtDNlp6bEgzMTVOR2p2SzVvMXMxOUhvNHRhZG04SGR5WXdMYitLejlFL3h0WENKWUhySDhkQys5MnpjQzQ1MjU2Szd0MHZkdjNkQXpkcXJGS1JnVFFCaDd2L25yd2thK2IrL014Vk44US9mR0VLMk9QUXBWZ0MvMGN4REUreC9CMWEyYk1EbEZpeEl1bk9ZREtxN2IxL003cTY3MW50TkxmT3l4UTYzN3c0MThldlozQXRZTjdxWlkwK1M0TkRrY3JadEluUmpIN3JlWVo2UGE1aVkyVmVKb2FOcjByeGhkTkF5c0F3ZmYzQ0JEMVJpK0pRV0tKWDl0RU15My81TE52L0Mydy9NQ3BuNnFFcmE2eXVXNHVQUnlPNDh1Lzc0M09HVG1aUDFGU1RDM0NzN2MwRmdMV2dwVzY5N0RyRmdSanlIK2x4aFBFN09wZEVhdTdyNnJOeDhWd284T3RlN2doN3FJU0Mza0xJM0tWbURHOGFhajBvc291dU1vSC9DN293ZVRsTWlqT1FnTWMzZEVHVjJUZ0dxVHU1T2hkUytDSkZEQ2Y3TUZtUWI2UWpPaEJnR2NuenpFUWdFVFRUWlF3bmc0QUt6NVNTcUVIQWhlQ2VnWGdSMUV6dmVEOW5ZMFdabEpickdPeE5pNmNDa2lPY1FQVjJnUWE3UWphc0NYbEc2VzJLL1NPTTBBZ283bVQ4R1lacWJKUUdFMUtHRlVqb2xnUWxvOVJyckNNaTc5dkJCQ090SUdwZldmV1NmY0M1c0hUdjRIVWxENStTUWsxclJCZloyQS9xUTlvVDZEMHR4RTJaSm5kS2E2NGk5bkpKclVtNVdYRXpHWDVzcWV2NUpCNVJSd0hLVjU1OXpoTW5zdWM5Y1R1bUxKSzNKeW9odUVsVUYvR1dRN2MrTmh0TEtZMDJ2ZkVmenBSQ1RWalRIcGFtbVVEcHhvVWVWWGxPejREa3FxV0ZWUnVxaUtwSm4vd053RHhSdEpieUJHNm5ISXhVZ2htdnhqYXo3elUyQVREK2lJQlVpcHhvTHBhQUdYMzRmaFhFQmxwSW9VYzdwWjJGOEg0aWdtdTVzdjdYM1l3MnhzekNwU1hSclQzZTVoY2RZR2lnSVBOV2d3VUJxQ01OQyt6Y0k3ZjlBMTA0bGpxVE1mU1RoZFZKT0xkazRQU0ZSUkFSVGZEdXc4KzBzSTQ2ZWQwZFVDUWE4Yk8wdFhmRjFQZkhkcGVaNGdWdVZBa0cyM3Q1WStkL09JSEtxWUdabEZObXJwbVRJWlBkTUlaSkVqSjVmRDM1SFVIbG1EWStveE9wU1J3VVFiaFFZTWIwcWVPUHhaNHJidlZjc3Q4VWhhanJmYTFwMHVlMDRheFQyNytNcDVBNmtaOW1VUG1TVUcyTENZMXoyVFRUcm1lWXVRNmRJZHFteHpzSk5kN0JyM2VNenpYdlllMllqaTUvbjJiWTEvemVoUEJOSDc5OWZySStrQTloQU8raXZ0ZTFUMjUzZkRGZmtpd1FPYUF0K0RTS0dub0Q4WEs2NU1TSEc4K0NLOTloOWhxOFBpM0VGbmNxaGRhQXVYR2JZUmpKWVZ6eGRPMFM1MWNjVnRZMWRlbjFldTdtbGRnV3ZvR3FwVVJadHhGVGwyNUJlamRGTWxVMGRObUxYMTBZaTk0YVlRMUZtUktzTnl5NVdFaUlpSWlJZ1lSUHk0cW5EaGZPVzVQOG45SmYrZTV5MFN1UUZic05OaFRuT1o2OTN2U1M5NXpZYy9XUHlrcG1OWjVRTUdDb1lxSTVVTnNObnl1SS9pMHZEczBOZ3ZHOXV3OGNzMlpKQzJwQzJuR21hdnk0czVkNktLUlNYcTkrSXBsMVBJYlFmM3ZqTGY5bkFYQUFBQUFBQWdBTkFoNERpTzR6aU80emlPQzhkeG5XejQ4RHpQOHp6UDh6elA4M3dIY0Q4UDU1eHp6am5ubkhQK28xK0l6dVRscENlYWJUcnFrV1NHNGNScDhJWjdCeSs1ODduTmpNbjRnVE4vTS8rTTJJK05Fak5pd0d3eWU4d2xjODNjTXZmTUkvUE12REx2YkpSSk1vZW9lcUE0NmtPK1o3Sm13NjRMVjI3Y2VmRGt4VnNudE9kK09QVGpzT2dQNWFvNStBZHBxWnI3OWZySW00aUlpSWlJS0VTOW5KSmU3NDgvM1N5akxmS0RBQUFBQUFBQUFCVHdrVmtQeUZNdUovM0wwdXBLaFZRb2d6d3BHSy9jZkhtK01sdXJ0b2lkQ2pHSWlJaUlpSWlZcVJBaGhCQkNDQ0dFRUJGaUZpQVdtRWdjTlVyOE01Y1N5UEJURVBVTzZ6MWpwZ3c2bVVBQUFBQUFBQUFnbzJYdzc0WHFJQy9iMzVaRDQvZUh6bFNrWXAyOEJUVjF2SVV2YUgxL01oajhnTkxkVkVqR09MNlFOM2hqcU4xRkdlNFZWaElYSkdzeURpTU1pbXNXRWpkTS9iSHdqOGx6aTVKaDJ6aExodUI3czZJQ1JaSWtTWktrbWxIVUVQZkdPMjlXZk5IUlU0WU1BQUFRb0VwbHh6OWJRZS9lWVg0VEJBa0FBQUNaUlpJa1NaSVVhUll5Z1d0V0VqL0xFMnpBYTV3U0lDaWRUT0lqbXJLNlRuVUVBUUJRRkVWUmtZMVg0YWIyYkFzV0FOcndqcVZ0MitaNW5zOEQ1OEtlRHNmUXNRUUNBQUJBVlZWVnRZZkNha2xQMWRsc0twODBxcXFxcXFxcXFxcjZrc3ZxK1NtZmczOVhzMGpqVEdmcTlkVWdrdjNMTVVNUW5pRUFBQUFBZ0I2MmxvZkwrREtMN1RMVVQwUkVSRVJFeENEaUxmMWk2K2JqbDJ5bjl0bDJxbEkxNFVHL01UMlZOcm5GbCtxWG82OFZReWx3N2Q2LzYzcjBUMUVRQUFBQUFBQUE2R0ZZMEhlVU5mOUs5bmpMdmlwWUJyazFreFVIek91YVpUVVZNNldVVWtvcHBaU0dVbnIrMFQvdGFPZG9jZ2lUY0Z4TjRnZmJxcGZjaE9zZnlzZjhmMGlUaEdmdCtTblZaK3NrU2VvcHRPOU5MeDBwaHlRaE52ZEcrVW51cEpMZEt0UnVML0ZHMjVkQ3B1UkVrZ0JZSzJkTCs0RTdGSVZ0bDZSdGEwTTdqWUlRUWdnaGhCQkNDSlVKbDEzK2NwWWxxVThEQUFBQUFBQUFRQUFBaFZRV0ZuaXFWQWZWNWg3TTExT3VadnErK1g1ZW5rclF5eXp0VkwxdFBlQ0NFQUFBQUFBQUFJQUNjSHg0aW1pVVVrb3BwWlJTS2tvOVhQUTRXeENZNHlFQUFBQmt6UGJlMk1WWUUwbVNKRWxTcE56ek41MnpKOTNqNjV2TlZmYk9adjVpazdod0hNZHhITWR4SE1keDNKNlp3aFdra0F0L1hYTUs2VWtKYjYvbzNWQmpmbTZNK2xoRmV1dVkwVG82ZGJ4N1pJeW93Y1JJYjU1UzVXRlpqN3hRd3ZRNjN0QTNyTzh0aEJLMlphMWNKNGVZTEFlbmdKSjZUUTZGMktSRHVtcVdjOHpLbDBmTXhzSFNHWklrU1pKazltcFVqMDZJcytzVUFRQUFBQUNnSE43K2xXdXJYUHFrVzdxZDczdzZFNGhhSW9JZ0NDSWlnaUFJOHUyNlpYWkppM0NzMlZMSHlpRS9kdGJaUWdzQUFBQUFFQUFkQ2htU0pFbVNaSGJVZ3Z2MnZMUUJGSW1JaUlpSWlJaEl0MFJWVlZWVlZkV29qZ1ZmeDMrWDA5eGxpalNmNjBPSEhNZGg4d2YwT1dJdWxzRmlzbHl0WkRPdXpzMzU5ZVVsZzBnSUFBQUFtYWtscVNSSmtpUXAwcytRcForR01hbVg0K1NuVWZEVGtTZWpRZWNJQUFBQUFDQ3pETVltNmFsSWtpUkprdlNCV1NYbkYxNG1zdE4velNQNlRtdjBBd2ZTdHRsbWZycWJuZVVXSjZlOXVwODhUL3BwUi9RUnd6c2tTWklrR1pJN0FmU21KUzFWQlRWSURRRUFBQUFBWk5CUFlZd3h4aGhqakRFV3hqYW1HVDFsOXpUWUdSd1BJQUFBQUFBQUFKQUJWalJ4UkgyQlcwS3FhYzVwVDVsbGx1QUl1azczZXdkQUlhcCtqQnp2bHMwNEJWdm9hYlBlR3JnaDJPVWlFN3c2ODlFWk1nc3c1ZmFLMkFLTGhlcElUUUFBRkVWUkFWWVFYNmlrL2V5ZSt1TisyY2hyYjA5akVoUUFrTUhVaDVlMmJadm5lVDcyYkE3YjFYazRlN2JsRjVyUUJZRHhNM3F2NThUeC9RVElXSU9YWWdzajdvb0phd0JjVk9oNnh3S2xwQ2dXdzNDOWRqQUVRTWhzSkk0TEJWaXBmNjAyYVdablcxNWxUNWlneWszRWthNFR5cUpDWCtyckR6QUdJamdpL0tFdkw5UE1kZEllTk5COGd6OHFqeTd4Y0JSQ1BqVGQvanRJdHpDblJjUVltTU9XdFVQY2FxNkNHWGtuTEdFb21iaGdoS2ZRMEZCa3BHc3h3VFk5VzhMYi9kd2pVbEQvZWZVa0FBQUFaUE5ucGdjZXRpM24vTzRxTGZjczZPbFpSS0dVVWtvcHBaUlNHa29IUGMvU0lhZVR6VS9ad2p0dWVWeGFiQlljVERDdjF3OXJ1blBEYm5adFo2YzllSmU5bXpzT3hoaGpqREhHR09QTW1QVVpSQnN6NGkvbm5MN09mcVZsV2hiTXVkaGRoQkJDQ0NHRUVBcEM2T09FOUJYQ3ZDQStnb29RQWtBSUlWUlJScEdYL29ER0xWb0xoQUU2V3F2VmFyWFdXcXZWYW5OcnFlK01oMVFTaWt6OWJ1dXBzMmw0OTdSR3hCdEVOekowMWswTTg3d0pHMGhFUkVSRVJFUkUxa3oxdGY5NmpxNzhJVjJaVVpKblhyYWlhS2FkenZPZGZUS2VLRGdHQUFBQUFBQkFBSUNuVXNqdGlvTDI1cFlzQ2l3anlnNFFHZHh3bFdheTBabE5URnd1V0QyN0hpb2dUZEZOdk83eE1EYUZ5ZENhdnRUV0pmd05CNkVNdjRNZE1TRER4YUVod09SNUNlQUlBYlQyWGZhYkl4aVJXRkIxaG5ab0doeXNtQkpveHlxVVNEemp5cFlDQWU4bFRXZ1dENWdqcUxRQ3RyRW9PNEFBZmxJQzh0eENTTWpGYVhMbXBHdkI1Qm9YVU9wb1NYbmc3T3UrZ1gwZEpQbzBYaXFsdnZ5bzBvcWhUaS9sY0lJZ0NDR0VFRUlRQkFsQzZLY014bDVTT2tNelhzLzRqWEZEQ1I4UndCRGhFdStJYmR5Wmc2U2YxWk94TWM3TEpXbmJ5OXhNN2RWV3ByaVlNNzF4ZEhvazU3aTZZQSsrL2ZuSEJiNTgrL0hyei84RnE3dDJYWkR2akp5cHFhbFdlSHhXM2JRVUQ0V0lpSWlJaUloR2NlWisxSFhwMXFxb2E2UEhubHQyTzNhVHhkTDhlRDYydkxTNnpTam5NRE16TXpNejgyaURzWUZvQUFBQUFBZ3dJRVYwck8rQm1sMmpLbTJmM1U2TDQ4WGhiR1BpQjdTQUpnNmxlbkptdHRaS25PbGNkYnlaU1o1VWYyQjl3M0xvYVBMZFdoSVJFUkVSRVlWb2xBL1ErWmJoUDdXbVU5ejZDNW1xZzZ3ZC9sWEVNRE16TXpNemgza0Z0VFJjN3h3Q0FBQUFBRUIxYkN1QzhWQ1hlR1E5aEJ0cnUraXByZzlYMnVqbzRrWC9WTFhENmZTWG5hSW9MWnRGSUhLNU82UlRMTFFFQUFBQUFBQUFBZ0JyNWNwL1NCNGs2Vk5GY1pOSjl0Z2FESHh5ZlRTcXpjaHpzcGg5blRIb1M3VUdYb1l2SjJMQW1sdXRCYjl4aVdFNkFhNGYyUmRxYUlMN2hCQkNDQ0dFRUJKQ3N1RDVkNXJ5dEwzSHU1VDYycmFyZklOUWt0ZTkzdzlRcm9RalRrNU5CU24xcnRJSzdicW5sRkpLS2FXVTBsQktxNkpxUnE0c2pESEdHR09NTWNZR296Mkx5bUl3b0ovaWZYMlZXeUJEczJsYzl5UjVmc0o4blJKUnZWZTFGNU1YSWdpQ0lBaUNJQWlDSUFnOGw2ZVV4dzRKb0VjcEIwK0pmRytvT08xWDRLME5LRTh0dFk3cjVYZ1FNWFdCTFh5b0I4Nyt4OGx5NEJFQXUvdEFIWUxMcnNQS2Q5aGdLeEdSNzZ3a0g2QXlEK3lqNGkrNUZiZDR3QU0yY3o2VEpXdm5hSk5MN055QUxHZkNSRTZqdGVITE5sRVpTZWVWeHdJWWpFNEt2WU5sakNsRmVjR0lQUmdTL3NEWERtb3Q1c011SkhJMXVRaEdrWDhDaHhaTk90QXdLL2NteVc1YnJUSkEyYkJJQ0FBQUFBQUFBQUJkL0ErejI2MVRTazRkVDF5V0ZSSWszTUhESVU4blA2RWZZYWhOOW1kV29Sb1o3S2NEaWh5cWZzYTdxMjFJRGxVaU9NWFFlb2kxcTBCWkJuQkVUdkR3bVBZeno3TENweWk1ZGN2eGxZNmZ6a0VGRk5EZjdKb1RibFZtTFc5VGVZdzlUam01ajJWSWtpUkprdndwZkhQcmtEcElaMzdQLytuYTVUcVNPcVRMd2ZJSkFBQUFBQ0RBV2JJYTFPcFpOeDlTcTczQk9KZ2dtNXR5Y2xOWVQ1SWtTUklBZ0NSSk1nQW1ORnlMUEdpSENxbE5NUmZRcVcyZjdHaENUbEk2YWx0TVp4eGZsU1M4bkc1aExyeWhrY0ZzZ0tZRHNuUWR2WTErZVM3eGNUWm1hUVBVNW51cUtLdXZBYVN1N29UckRWaDA1MDRlR2YySnFiTFhFTExUbXBxekxqbU80eEFST1k3amdvaWNSa1AwN2VnTWdjUmROT1VIZ092d1ZQS3dVYUZublFuZ0lzMUx6OEdvenordTBFMGIvN1NCYkNJeVB1UWhjUDhEaENTQUlOZlJLYWlBQTVuOEJMZGtpdDY0ZGtydm9uVURxT0hUZFk4MTJoazlmR0N1M1EzaXVVQlVxSHduQUE4Z3FwZldGb2VqQmdJMkhGL3B2SkEzdEpYczVkS0xpbWVzM0NpN25odmswQzcrQzRjU2JGeENDcHN0TE0yVHNzQ3dBUndlUkpvK2xONTR5Y1dVY3JWZUtab3g5WHE5M2pSTlU2L1g2ODB5YmdFYzlRbUFFbitFSVEzOHVOb0JuZkRjM1NLR1ZQVm9yQWxTYmNZMzRJdEJGaG5IbUFHTEZNUmZia2JrTjhmdFg0UFBndklKQjFLb2Fpc04waFVSRVJFUkVZbElIeFd3UEVqYUlka2ZmSkg4bDFKb1NwdHFJeHBWVlZWVlZWWFZnbGRGOFF5M1RyOHhiM0x0ZnFUN3Y0Sko3MmZlNXJVcFFqNTRCeUZBQ0NFUkVZUVF3anFWNS9sOUVaQVhsSzdUNlhTcXFqcWRUaGZETU9nQ2FDbENidno1bHlsUXRXeFE5K1ZqKzh2YVVsQyttMFRzUkQzaHErdndqMTZpRFBmYUdRcEVlOWNQWGd5RHczQWdrTDRIZ2o5LzN3ejJPeDBRSkF5bmIrUEc4V0FEakZQcmtwRnB0ZkltRXRzNmxyaExyZkZHNFVDYWtWTEc1U1ZQb3ZkNlgrM2doVXhhTkNQNGtIT3B0QWFJV3psLytkSmQvdEkwSmdLRUVFSUlJWVFRQ2tLTjhCZ0hZNHd4eGhoampESCt4anh5VEpwZlBuSE0vcyt2M1hYTzlUbXlUSlpsV1pabG1Vd21rOHY1YitoMEtxQnVyb2wzSzhmTEI4TG1FbGFwR3k1RTRBcUNJQWlDd09WeXVVTlk1TW10TkwxMS84YmhydVJ5Snl2ZTlDNkhQb1RhYWEvZ3M3WHVxSFpqT3ZrR2ZLOWZHVStycHUrUitoWmF5OVdHdVdWSStnK1F1bkxDMnRtdnNRL1lyN2pMSEtXRC9BYldBd1FBQUFBQUFBQUFBSmdCWFlSOHV3VVErRnF6WmsxVFUxTVRBSUFDeXcxcnhiRERjbGRJZlE4TWtuVXV5WlBXUXRpYTNrSVYxNVdEM2k1ZDdvb3FDSkFrU1FJQWtDUkppdEZZV1A4TjBqV25ENHNtRVlHOEVuazF3SUtNQlFBdzZHTEJtSHd3cXFCQWpSYklMRThRamlQNmtHSmhYOHA0dzE2Nk9lSVFNRHdlWXdUQmlEL01TdHNoVWZDczRXdWVJLzFQZllwS1FuQzBBYVRSRXNOZlB4bGEvUVJicFdsU09mQmJBeGlVUWdpY3RxWndySVl2SnpYOFhqSm9Kczk1VllSTlVhOFdBVnV0VVE1dEgrRE5lRUN2WXZRdXhONEZHUFlIOFNJcmNQc0tWWFhRYVRieHhPVmN1M05lZ1p4QXc4b2VTS1FNbFljRER0eEcrcHNuNlF6NGxvSlFUT2RtQngwaE1Pb3hVZ2Y3emIwUk93UTRsT2VMWjloZVRJZjI4NHE0VG0xUHJ2dTA3L0hvcnJWcGZVaUV0SUFZOVBQaXk4WHF4SkEzZzEwOTBmcW1nSG9uTmJiZTJVNFUyU1JXVlZWVlZWV2pxcVVDM0dMWDRiNDc4ckxKaG5YK3AyK25yODdqTkRtazl3WGV1Z3I5YytmNmVVa2l0WEhIc3pFa0lpSWlJaUlpSW1YMkgzcHNxNDk4MHV6V21DUkpraVJEWms4WEovd3A1ZGwxQ2dBQUFBQUI4QmhvWWJza1R4K296OHNhQTFXdWlxSW9LcVdVS0lwaWxEclljVldtZDkraHBxblFqWFFDMzNtTHROMVJZZHg5Q2V2TXhPTmx0Tk8yYnNjMzNtd2kxNVZpRHBmajcvelU4c3lYZXRIMGVCbnd3NVBJVFpJa2lZaElraVFwUlBRQVVQUDNBcUpCaUdEc214VDFkYmpaTmo2OTdBL2VuM2poN3h0czV2NmlzSnRTYjdtaVJLZU1pSWlJaUloRTVOWEp1MjZvMnErVmNFd215c2VIZmxERFpCSWV2dXg3dWdWb3piWFR1SFFZdDNQTWRmUXFNTmJQZHNNbiszUjhmTXhoWm1abVptYm03TGtYTGNjcjU2RHVpK01vaXFJb2lxSW9pcUlvVVpTekpWM3NlcEZKdkYwNWI5VHh1bzZkMnBTMjlXTkN1UmhFUkFSQVJCd1pHL01zRVFJQUFCRGdRVFFjcUh4VjY2anUwSHJnd2R6YW53TjFKL0hsK1dxUC9vcXNqOXBXK3VHK3QvcS95elR0YzVnTmc2UHNEdk10cHBja3ljeE1raVRKcXUvNmR6L2V6TjVYUVJSeXJlZ2tManRmM0EwWlZpRUVlVmVLMk9Rb2FWM3ZmeFVFV0ZQRHdoaCtmRVU1ZnBoVlFzenZnUGYwcncrRURnMXJybmdkaFNLOXk0dTM5MmE1OWhqR2h4ZFJ3NWRELzlpdmQ0NkJGWGhPWnRGbHdwRGpRZUZybVBrdUdHSTNqQVRsZ01va3ZPQXpLRllEVW5iU0E3Z3FRUHU0dzRSR0NCVXJFcXB3bkpVQ0hwUkRmVVoxMWVTWVU2UFFjM3IwSkFGRWJXSXlOTDdyaFh1OHF3cElxRC9YU05UZVVYeUJxTW9rOC9hY0FLOURCS2tGa0g1UVV5aWRwTkxaZ3hCczNYbEFOak9HOUxDRGtsS3F0em0xQmR6bDhETSs2ZFRXSTE1L3VVUk1Qc1loNnRYVzIvNmFiUjJRT01sNHZsaXlBNVlQWG9KN2tOUVRLSXFpS0lxaTREaU9SMUdVTHVIaG5IUE9PZWNFUVJEODdzcnkvNjgyOGxJUnRXa1kvTlAwa1drWnQ5VlUvVDJJaUEydDJpeU1NY1lZWXd4RlVUUmJSZ1NMRlV3aklpSWlJaUppRURQMStiYkY4QXZPNzQ0dVVTY1RtdVk0cFpSU1NpbWxsSWJTclAyOWF4STljS2NwazJOY3o5ZmloOGpGeEh6b3JwODYvZHBMTVVXay80UldYNU5VaDR6T1B4dFoxZGtHZFlvQ0lpNHVGc2tnYllZNmtZRFVLdWltYWRYWVdMc1pWdUxUTEk0MjFVekRkVmVkQVFBQUFBQUFBdERRZENOQUFBQUFBQUJZZzRISDR1L3lrN1p6cG5lUVFLN2w4TmcwOXgxOGpGVG02eFZETHlQbmhISktXMFF6c2hXa0xXRFRSck9JYTNtZGtzT0tvaWpNeklxaUtET3ZTL3VBcnVpZ3RMT2lJNzE4dUY1TWlzMElxdDhTendySHBFMTN4UkxSYURRYUVSR05ScU1SZGxKM216ZjJ3Ymoxd2ZGMkRIQWo4VnlQTFIzRkRIVzJac0ZZb052Umd4bGRMbUh5aEMybUxGMXNLOERPSXhvQ2dOUC9KT0FwdXcvNVd6OXorckFNV2dJMjVSTTFNamc5cVUwZzhaSCtuek16OUtTVlBkNzFBckI1SGMyUTNneVl4U1ErRno3TFhidDJCcWdQbmxNc2tsejJ4VkpKV0VjQTZRRUlrTUpwQWZZS1BpbExjWFA2YjRDK3JoblpTTG01dmZCQ0Fzd3hjM3J2WXBxZFNvOTNIN0MyVUs4dTFjV0U0K1FLTXNLTUVFSUlJWVFRUXBqd2VheHY5bE16dllaRnF3UThaclp2SHEvWkhIOGZPZ0Q0SUtMZnpsekN0T0xvd1RUZllURzdtZm5zR212MVh6MFI2L05YV1ViZE5CMW1kR2lhcG1tYXBtbWFwbW02azhNd0RNTXdETU13REJPR3lVYjZGM0dQeDVMRXJWeS9IUU1vQlF5VTYxSjVMVFlNOG9FNzRscXNwZnExK2VXcTVoZFMxOU5TMXJjd0VFSUlJWVFRUWlnSVBZSE1QdWErRTZSNGpIKzV2WGw2WFhHVEc1UUdCQVVBQUFBQUFBQUFJQUNBSW9pRnRjN2l2MGMrMWtRUjdQcmtRMlk3TkZTcjcxNS9HM2VMcXNvcmdyRnM5UFlHYjZHcm5pZ0lRUWdoaEJDQ0lBZzZuZ01SRW9EVzBFT1hpQjZsYWxoVkdXR1FSU3dhSEN0clBUUGVTcmZlY25SSFVFakhRL0VHNVlMYnhnS1lCZFduTlJQS0VFTXJBeVVoMlpacFBJWm9QQmVGUjM4QitZcWtYeGgreXNBQUxKQUlPaFBRZDFwK3UxWW1xWFMrSVlyUWF0UlhqQVEra014K3ZoYXBUQms2ZlR5UHZSQkpmVFZJQjFMM3ZXS2VSMk54a0c3NDZCWDZhYkZJR0UxcDJzdUZWWTN6L0dud3kxWmRzdzUrV214eXhXK2FMNnIweE1BODRPVUNFT1lNbW1Rd1NZN3BVNUUxdC9UTFJwU3VuSkVaaG1FWWhpR1R5ZVF3VEJnMkxJVmxXWlpsV1FxRlFzbldpSFVmYlFEbFpEbFhtdlhrT2lYaGsrc0RmVHUxbkVXYThTektFcEVOVk9RTXkweW1ERVdQWUJxc2NRck1yMGs2Q0dSZWJDemtqZWhJL2E2alZCVXk2NFpCWDduWEJkR0lEQ1N4L2g5Um9KU1dBMFdQN0UvS0pTbGRLZXd1N1NGdHpCRXg3WUZzUEl2STN4Q3pHQzdIL3dBTXRLSllaaFpEOGVnWFZ2VUJlUHlOTnZjQ2hDbWxFN1drVFJBeEZYRW5nWkV5RGpGR2dueDloTTZ6TmFIcHVyZXBxZ2c5cVRBTlRhUE5va1J2cktHMDUvNGdBQm90c3VNc2pjYnBZcnlMY1NjTk0xSEdjZ1pzb29SenpXQXcvRytKalFkUTZ6VGEyRlVqN1d5NzhQTmpNd2JOOHVFSThBYVNaZGF5MWhPZFZsNHlIMnNEbW9nb1cxdW5aNnovc2c3bGpZblBIcEV3N0JuU0FnQ2kzY3YxVWRaRi8vWVBSS1pJV05LenBtMzBXN1hsUWxvWlJKYTNtbWN0dWJNdlU4c29sbDFiQTlrOUwwcytSZVBGc2pIR0dHT01NY1lZbTNlQk9ROU5KOTk3NnRWeHRHbUZWM3BMOHh4ZGxKaTJ4c1VJc0lsSWpyYWJ6d2dTRTFuS3BBeWtXUTQzSTJIRDNOQzBLT3JsczZTVEtrMnQvaDEvQ2dSeHdCdEtGVVMxWFBHTFdmc3F4Mm1kbjFwK0QwRDhuOEI5ZU1SQUp5aUR4cTk4TGNLM1FvSVJFWmpSWEtqSFUwT2I1dXdHWFdPMzlrQlkyTkd1a3lFbHUwcmFBaUp1UWVYNVZJVlo4M2x0MW1ndCtDM3NKZGd5ZThZaU5HeExQZ2pBMzlUTW9vUWpzNGFpbFgrclBiTmhlcjNzbGFMS0U0MndManNZNzBqRzJCUHh6Ukgyb21aajUwVS9SZ1pLdmhjeFRsTGFjVHVJcW9uRldzMDZhSks3bjB2VldORnptbUNyRmt3VmJQNDlkVDRXOXg1YWR4dmdQNHpEZGE2cUVFSUlJWVFRUXBnUkp1UmFPdDhhYVdRYnpmbERUS3h6ZVlmbHorY3pycHZXYnZLcTg3eWpzNk1qUXVPQU9zUnBxZ3hTRkVWUkZFVlJGRVdGb2lnTGxpd29FNXR5SUY3aG1RVHFpOWRtekJWNTU3d1UyTmZmUld1ZFFrK1Z3TmRjQ1FWQlFxQXF4WExrOFFlUmw0bjhSanBWY1c0MzJiU01oN3o2UVNoUUVEZXRkT0VFZjlSZEtQeVYrTis3Z2FRR2VRUkhZYmc5UVVqMnRjMnpqRVRCVXMrNlFKUCt1RVN0Vml4akU0dDIvUldBRmxYZ0QrN1ZwYzBsa3pDZEd1OHJFZ04yQ0oycmtpUkIyQUFnVkNvU1FyNCtVc3BraVVvdFl1NUJIY0ZyaWFoc3k2QTdtZFo1Q0QyMUhiZ3RFSnJoSExET1dpRERCTlNyQno0aHJnQkFReFRnMkgwSmlONzlMNzltZ0h6NmM1U0JZSG82ZExQemlVT3g1T0FPZWVkUkt4RGRmYURRZk80TFRhOXZ1dFRhK1E3REVDNGsyYmdLYWhUSGNWeFZGY2R4WEFtYklXejk4QXpRdnZuVkdkWTZERy9EOHVjbVZJQTcvMjIvWmphS0xRNytoWVB6TGcxN0xRSTZ6aUZ6QUxuU0VZVW81cHhNTXhsZkNOL2dnWEdOMW9WSFh2MWVEUWRCRUhESjlSbURNQXpEaUlnd0RNTW9pbHJBaGV5TC9yMTdJdTFORWNCWWtVNTg5RnV0cHBGaVhCUFkwQWRIcUQrR200b0dzSUdOaTBydGZHZFRkR0R1bkRYSmxPNjNPNUtjSHZQUXVGMDZZd3k4WUE2T05rUHdJQ1FIb2R6a2pmRHBiRjZOZnhCZU9TYXZsL2dLbjV1MXIyeWZ6NnJ6RlhxT0lCQmVqUTdIYW8ybXNERTF6Vm0wc1FmMmUycEJoTnA4Ly9XdEI2eXlCaERnZ0s5YnNBKzJ3ZmdxdEQyUXpQMTB3ZEZFOFVkbFpzaTgvbTZIQ1ExV1RKR0s2bXNnenZwdnM0SGtrZVQvMXcxeUNwQnNtcWVkUW80NTNTZm9KenQ1VjFhWTR3VW5iYTlPckdSbExCbktaR1hkRlpDa0NydXhyMDgyTFg5VUtMSkRlOVM0dGRhRE1GRkRTaEgxdFIzMmtvYlV4ZWpNM3B4ZVVpWFd0R05PcVdKclZ3clRxVyszeGxod1B6dStycFNjVk9PcktsWVVrNnREZ1ZYc0lML3BNaXlwUm1OY3dmcXhNazhxNC9zUWYzSUhGTWpLaDVDTW1xdEtWVlZWVlZXVlNxVktsZTFSWUlWOWRLRnVoT3lkWU1xNDhWRDFZTjE2QTlUM2dVQnZ6aFZVWXQxMkhKaCszSTl3a0w5NkdJNk9zNnhzdnl0bXRBS29SSTFkVDgxZDlqVE9KL1JaUWpxSnM3bUtiMzdEYkxicnpnMmxnb0lqVlU3VTlaeTRmbFdTZVZRMG00WGVRR043dG5ueW1zOXN3THBMcFVYeEFqdlR1TXdxWXRjVDVmWDA1ODl4QWo2S0pLSFd5ZVVMTEhIQXhGUkp5Q2tGWjlFWkxKblBtOUxuNmhrejYzZlUxRUJIMEZaTDFoZkFmR3N5N3pEUHM4VS8yWmJpU0RnRSs0TmQ1ek92MWI3L1ZhbmY3TU5BYW5WajNYM2JzazZ5K2hXU1dQZEZGL0djWXl6emdsdjR2azNQSjF4UnZzM3Fyd3JYZ1E5Q04yYzFFNlJvSXhhbFUxTVVSV0ZtVmhSRnlXYStJSjM1Sk4xUHFZOHN0a1VQTGducnZxbVo3cmlaV2JZK0t1YTJlRCsvTnE3eS8vUGpodGoySWRUUFkyNTE1VnpLbmdWQ0VNUTk5NnNWSFI2R2VQcHVvRC9NVzdLQXdKazYrWHpNM21EanZlVjRFYXM1cGRiaU4waDc1dFV2dk5ubTRPM1RubDlIeXJHQ2Q0RUJGZ0FBQUFBQVFBWkFkUDdOR2UwTGt0L09EdnRPOWFpbFdQYktNMS9xYWltcm9VdGc0NGs5enFpMXUzVFh0eDIrQmdPRDdpc3ExTDVZNXBnM3VzNmoxcURSNlV2amZoM0NWdkc5TExEN3oxbmlPdC9RNWdHb2FVaEhPUVgrQzJkUWsySzVyRG9UMnVxdWRVR2JQbU9UNTZudWZyendLdDR3V1dGZnVjbEdCaFUwbUhDRnVGaFE3WlY1VXVlcEdxQUxBd1FDZ2lIMkE2TWh2TWNqRUd4UzdxS0Z5M21JbDh2ZU1SS0FPeUFjaFEwL2lQcXIwTlYzTXpSNkc2YkZ5K1FDYzNzZmxqMlZXeHE3aks1U092VnhKNC9FdGwveVNrR0w2MTNsam5jbkFTUmlqSTJGYlRtMkhkdE11SXVKbmNEQ3kxZ0JDMjZIcFc1SmthTTVyQUd6bEp5c0QrM1ZXVEF4bmN3eVE5Tng3U2JMYmdRM3VPTy95VTZmL211UVhZcVQxeXJZNXAwTmkrVjFrK3VreUhJU2l6WkpJQVdtK0NiK1Y4VFVQYUlJbVBWNUhuLytIWFFoL3VKdmN4bzduTHNSN3FwUjF0UFpTYlYvdWNkVHNnZFl4WVR1YjJwZnZUNVFFci9rcklsTlV2ckVScVkwTzAwVzlOMm5pRWZ1Q2tNY2lVc3o4WTJvM0FicXhJQkFNc3hLVm1ZVnlUR2JhYlV3L2xqS3draXUraFJZQ1JGcVlVd29aZU1waHI4V2hoQkNDQ0dFRUVKSUNDRzNtdkhjMXZPTmczZ21kWFNydjR0K25BN2RwZVpodkdEOEtMaTI4QkhyWHZwRGF1anJrWmRMVDJVNmZEaVlzZys3cCs2SmM4NDU1NXh6enNNNXIxT2FyLzhkWCtEMS9YYi9ML2pVdExhZXdPZVpvbzN5MWFUT0lyVlFIZ1JCRUFSQkVBUkJFQ0lJUWhIRXZUdWRtdGE5VGpTV1lRd2lJaUlpSWlKaURUUEpCOHcvUlBlV242NjRxNDF1aVhZUS9CMlR4YWVkYnBEaEFScXZQVzgweERxNFMxUlRXRjQvTjI4bUVPSFVhaUJPU2YvQUZ2MG40WVZTaUhZSUNBRUhsNnhYaDlPMkFpanZtRmljMjNNbjFudVJxRHU4ajdwaWRWZFpwdXRHNjdCUU1nTXFVNFhLQkJkTmFhVUhVYnVrRENBZFhyZk9PZU83SHNIaEhFbkU4MEtxQW81QjVDSjdrWGNSSEJ2c2xMc2dYVUcxOXRtM09wcXB0V0tHdFZrNzZpRmp5d3lqclMrNnlmUW1GU3J0Q2JRR2RnZmhWUXZmQVFMMllJcnhlaHNDTVNCUUR2UFRZMVVzYlFZYkY1cW1YZG0ydXZaOXp3YXNoMTc4UWZSa2h2T2VDM0tsWWJyYi83aEduWi9CNmZBTWV1KzBjczBKQUhsaGtONnBBdGh3QXllN1lkSHNxS3JhWmFNWExsZkJvNjlmRWZkRmswNVVpMlhlNVMwVktzYU1HdFJuQUFBQUFBQUFBQWdBWUYzMFdTbzcyb3M2Tnk4dmN1UmVHUFlOclZPVjA2L1JyTmNGbDhLZFEyVHExTkxhWmtBN0x4eFNtQ3h6VGhXMG9yY1NFUkVBRVRHSUtEVFNuU2QxbElpUFJibXlHYytnUFJSeS9SR1E2enFBT3MwTFc3M0VmQit1dHNFVjVYRktFY3J2RzcwUHhrWGd2a2hvOThRY0dMQWxDT0FlT2ZQQ3cySVdENDREYnRudEZjZy9mY3UzUXJaUFlPSHVZZ2JGakI0OXBBQVlZUTFFbzdyZFVOQU5YYS83MVRRZjgvdXl2WWJRRXNleDY0ZnFjRWNITndZMnpUMGh2clA2UmkwZXhOeUJpVnpXaDk2ZUVwNHRHcnlndVdLWU1uclhmaXVSeTVHVHRubFV1UGp3ejVSWnZBMFU1amVXcFlxOFFXWUNrZ01rRENCempNNURjVUsxNHJSTDNRakEwSG1UUXo2aFhkSzVkcDdNYm1lQXNZMzQyZ2I4eHl2WkkwUC9BZ1dYZk9OdUkwbUkwRjlZSXB0Zmlnd0FBQ0JqVHFoSDVyUDVFQzMyUU9NQjcvclltOXo3UDBmTlNzSmxmSnhYMVNiZkZ0ekdKSDB4K1hhQnp0TGU3U3UrWCtudHZLdmZEM1poYnJ4VzlINDlQTGl5TlFWU2R1ZENFTXJ5YlJpdkZJazJ0WTJ6dkd2SVpJaU1MWkxjRWw1bFNFcWM0Sk9BbnRjaEgzUjBJWFJkN1BHUy9jNTJSMG9kbDRQdHlVemQ0cUhwd3R1bGRUblpwZU1lTERHRm4zUGVLQXVXSFpHTTkycVI0dm8xRjJFL3hUbm5uSE5PRUFTUm5mTlFxQS9pcWZRNkh0TzR2MVNMNjhVY3BleHZWcVJ1NjkrSmV1US9JVW1TSkVrU1FSQkVUbEpLcG81RGxaZ3ZPU2JqRnBaRWcwdTdQc2pFNzE2enAwZHp2VThPdWV6OFF0VFJBYlFtVnZkMXJqcVlhMWs1a0oybFV6ZWV0ZVBhU2ovYXREM2dXemEyVnJldWJ2ZmdKVkhEckxGNG51ZDVubWV4V0t6cytlUWJWM1dpUlhwL281WGpCNXNFR3dITjZ4alhMUlVqdlJla05qU1dKZFd0cFg2YVMvM2F2dE1HWjJLTVppQWdCaUZUVngvenVoMmRpYlpVdTdvUkRyKzhJR01DbGJyWGZDeDVSQWRLYTNSbXc5RnRxUEVPWFNpVXZ0WXM2NFdRdUg4MEdEL2ZjZ2prYUhXK0pVL0V6czBoMnczNVJ4anZSY1RTd3BJLzRLeFBzd2ZlaTlUdHJaVUVOOWRiWng1RTZGbzlXMm15VklRUUFFSUlDVUJGTnF0bTRQMlNqSHRrL3VVVkNJQlBZd09GK1lGNlJOYjloeitDZVBlZml6dVZPTkRERkZNamRoU3FqczI0dGNiSUpGUDBtcmRZcDhPY2EvenY3ME9BRVc5ZlQvTUIzSXhNZHE4ekJQcG5hRjZSR3BYVk8rMG5QU2JISW9VcGhIaS9hemE3TGM1VjJISlptNzZsaGYvNGNJSnRBOEhOYW5HdzBGKy9ZODFLb3A1eURHMWNDbUI5V2ZVQUQ5V3NrTG1aMExkSE5IWkdCUkRJMXpNdE81WFBmV0N5eUl0aW5KSkh6REsxMSt2UXFUOXVScjdSTkUyU05FM1RjbEt2Ykt2VWFDeWJsS2RVZ0lTTGtPajNNb3BVTC8vdzV6TTloSHdmbnhHY2tRRUFBQUFBMUU4ZnVFMkQvUk5rQ1F2WlJiaUxXb1R2MFA0Mys0MitPWlliSlV2MElGaXlwVmNMdEI5WUVaRVB0Q3hFajVkS0EyelA2WTZTMnQ4eVoyNEhpWkNCQ2ZCK05yREpPUm9hNm9zUVI4WEpKanMxY21NL2ZSZng4SlROWjM1VHd0aFZJdllSNWp4OHVKOUtBZzVTUi9PTmo2QnZuMTJ5ZXRqT3luU2s0ekJKS3RnNXJ4NmE0cWZENmw0M1o0UGl5RktrMVZia3MzQXMxT3ZPUnozOWFXM2grREFZV2dDU1E3TGw1ckljbHR3Tm03Q2FkM2NZcElBNkx4Zno2eVNrTXFqVTFPU01FSk4walpFRDZNbVVYMDF2NEVDampOZHgzWXVmbThRQW5DTitmaG9kTGk0enBHSTY1MGQ3WlBQaDg1Yis1bnl6cjJEWHVhL09GQmxYRmU4ZFVEZXpCdlpjdkpiSGdmYVdyOFhtU09nYlBEK2VYUU5EbUora3BaMTJwVDdWSVNnQmVyWUdlRXpzK3hTRFZpWFhjcjRMTW9tUjVKTDlVYnh5QVlTckFHUUFBQUFBQUFCQVpaUHlDTElibXhDVnl0THAzQW03aEdXZTdOTGFYUzVSdVZ6eTBoWE9tQkFTNnExRlJKdjIwbGxKV0dhTVYvWHQ3V2tsdk1sWjB0MFB6dEVaTVkybU1TYVo5U09UeGhMcTJxWXZkVjFueEtCSnViN3lXU2hNMnRBaEh3N21ORmVpTzZrUktrSUlBQ0dFWk96cVhuMjdyejNNN3JCUWZYVHkvYVZsWTVyMGZhV25FQzg4ejdaT2pkdE1uNFpIN2JKRW5GKy91QjRjN29wQWtVcHBNRTlPMHlPTWNqK0FyR2pMclRsSnpFUkVCRUJFeEtwUDhZVFcxVmhIUHRtT000d1hSbm5VOHpEY3VqVitubXhQbjZUa0xxN3cwTzZlY1N4SW9TRUlnakF6SXdpQ1pITnlEZVdEKzBjMTZMTytnOVVsakFZWW1zQzRUQzJHV3JrSi9SSFZ4dGVrbi9jcDZjdkJmQjYyOHJlNUY5aHpFNXhjMXZVVHlLSXpmMEhsSEFXQlZqN2ZBTUJKWlJ6VzdRczdXaER4WGpOTHhvVm1aWW5aa3FFbXp1Ti8wb0U2WnhrMGlyaDV2UDZiVVZ4a2JEVXFSMVQzamwrTUdzL0hCa1JodVRXdFdHWlhuOFFValZaUVJRUFhpR1FEN28vcHRRNGJzR1ZSb0ZqWXhpWGtNMXpHd0pQLzcrM2V6bU5RbVoxc1JnSzRaNzZoandhK0NTT1RzeG1CY0d2aWpDSm8za2p1Mmw4b2tabVdTSkFES25uT0FwZ0ZVWXFwL1NLUk41YlovU0t4Sm1yWnlSa3pRaXdpUmFEK0swYmVISXc5a0dwMVlzSU40M0pFa2RDNG1ybERGYU5iTHF2VTJIdExJYzBSSmt6eTFRdDRLaUJtM0pjanJERS9aWlNiUWMvQ0ZUcktQdmpHMVMwQXhaVFROMWcxcG93dkx3UUVnOHpQUDVpYkwvV3A0WFBnQVVIYzJrVWp6UFBnM1hwY2FHYm1ZYkIzSEl0Q25xNTdDMG5rRVpqT3VvUjZxZzlTUWEyZms4UVBHd3F0RlhuQlc4QkhZVS9YMG5iMmRmY0IvR1I2cUM4YU1La281VGk2MmZLTUJEd2swVkRvQmx0U1hKOHViakIyL3c5WnhXczhZRHBkTThCS1RUVUVrQ2JKTFZ0NE1lc2hQWStKb0V1N0k4WDNaMUpDM0hheFMwWEgzaFNYVmVja3JZUE5jVnllRUlNRWVxajlZQWxzUHQ2RzNnVS92aDczQWhORWRDT0tmK0p0NFJxWFdLOFVNVERjVGxGSjk5a3FLZXBNU2p0elN1RFhUaitiMjEza1RzWDluSUR0TE04eUNjR0l2Uy9aM1lrd0RNTXdETU13RE1PQ1lhSXo5bkVjOTBvc1BPRjFRb0U0WXJxT09UajNrR256b2ltWVZ5Q0pqVExtNXFPQi9XVnVGY1hsNnR4cHBoMHhCR0lZL0hRaXBtNTlnVFVqT3ZiY21KeXIrTDJJSVlLT2tVcHdoV2lWaVNiQ2RzRVBYUEFFa3hpWHA0Rm9yRzVYQ3MxN3BucFladng3V29FWWFNYnhTZHIzV2k3MUxVZjYvenEvZmRCUjhzWjR1N2Z2TUgxMC8wZndDL1FFK3NqL3loK0ZQdnZ0TXBHK2Z0bmhQc3l6ekRBRzU1N3VpN0JDY0xMNDdsa2dpYlRFMXd4RHRrYmFVTXpjY0tBMW41REpIVE9nUHJ4ZXBjSmFJTmRDN2hudDh4Zkk3SnhneDIwQTFFRllmcWhSWDBja3lIU3dEY0Rya1FBVXc4OUZ3TklNUHdtMnJYU2J2NllYUlR6VlhKcWtVcWxVQUFBcWxVb053Q3FrcFE1am1INHZGTDQvRTJScjZtR3hXQ3htWmhhTHhSSXowMkQxSktBanlmV0ZtaVpVWUZXOUtVSDBleFlRTlVBbEtOQXBmSjNnMDR1aURrV01jc1JBWG9TK2xzQkZKcVF1U1pEd1pUOGFPOWpPeW02cGpxV1czaUFKalk3ZnE2ZlNKYm95R1pVWUVIa3BEd1JRMDZvQ0hhWVNvK0dzZnJ4UTBEQmc4SDRLZkNLM1BJTXMzRnkzRDhsUU43UzJETGNFQUZINVJhS0hCcTBUSTA2VklEcmh1UEFUVk1TS2hVbis2YWZCWmVFYjkyMmZlcDZ2ejhtRnAvLzlXMGhkZUw1ZitMdnZYb3h5aHBlM2FnV1Y5NVA1MHgveWN1MHFEdisrcWIzaitIZFpxL3lyYmJNV3N4eWg1MFY1Z1VzdXlPSkVHS3BhMUlMZENmZDljSWJpRVFyZklEL3Q5dUpQZlJaK3VjM0xvWjg5Q0QyM2dEak5KN2NBTkxrSEU4Wnp4MmZpTE13UkVibUFuaW5CTEx5RVA3RzdPTTJyRGd3aW5KWkpmOFB1N0I3eGYyaDlJNFNjOTluUXFGcmwwdFRXdHZsWVVoUjYzbUZRU25VcWpCOWV5aXljNVpBU0hKOWtBanZ4UXo1UzEvR0NpVDdqYVJZL2UyQUJsNnc1YVN4cGxFdkxpWmQ5K01jTzJlR1BtKzhHY3B2MDkxaXJ1RlVFT05pT2FEUGYwME9KUEFReDRXQktRVS9EQVJCQ0JpQ09rUGtRNEZ3Q2owb21jemE1UWtVUEN4amc0ejVQU3dpUisveTZDVGZqRHZtQUl1T3cwK0U4dnEvblJxN1NXVlV5QlVkWDVkR0NoZnduaHJIUVhlV0RzYld4K25iUXlrWjQyU2dmNzI4QTdSRnFSVzdDMjVwMzFseE1ua2krVzZvSXBWRG1Lb1cvdG5USkQ5THZpMHNlWTNNZkd2eDBCYUF4L3lURS9DRkdVUWIxc3V3NTJxTThlT0xoY3V5cDduQThJb1VmOXBSYkR1dnBIbmkzTWdKOWlKWFk0VXh3bldTSHQ2ODE0N0ZKL3dCQUF3eVM3Uks3NDJBZ0FCRHRQa0YwU0tZTTZyZ3lNQUQwbVM4Skx0S3kydnZzZHlWaE53TUdBWDY2SWVyTHR6MGlRbmUxRTR5RDBLcjcweFFFN0N6eEREdlczT3U4bFIrczB4WWlJUWRMUUs1ejFjMUFQVWlOb2dwQ3NEK1RnSGZsRGlKcklCWGpIbkRGTlpLbDRNRlJLMTFDcHNXQ1p0MXFTOFlqSlNXN3oya3VNenlzNCtuM1h6Mko2T01VWW5ndGJhb05Pbnh6YTlrRmx4M29QU2xxZUNpbEFrVWZIa1dYZUo1TUFhTzRQSzl1UXBwb0VFYjBNVE1tYlk4aHZlMEV2MW1VNnZhQmZ5WWhjZXRWTDdWYkNxYkI0dW1ic1pUcENOZHphWE1qS0JqRDd4Tmk3K0RyY0VxWFlsKzhGUVVNNFZuS0J4NzRBMFhJbFU3ek1xZ0pKbysxdWtQZ1U2dVlMRGpCWlhlaDZITU5BZ1QrMTdkQUF6S0RxVGt6V1ZpT2Ira21rMEtTSkVsRVJKSWtTVVQvVXN5Q1hUTi92RU9EckJKUzU2aU93UmU2TE83RlhLYWNET1BwcWJROW9JYk01QUFpU0VtVVRRT3JrUzBJSU0yeE10cnY1dDloODZuejhQOStwcVhHd2tEY3krWUh0VjJzWldtVnJzVUxydEEwc1ZmajVYbzdLZFZZTk5EWVZOMFFBYVNkdVIrMnE0R2FpWGRRWjRDSkdjSWcrcHh0dmgyd0w4RmNHZURZRkRnbGhqNnR1dElud2VRQlFRZ2hoQkNDSUFnR3dnRm5tVDg4WldOUm9pZ1ZSVkVVUlZFcWxVcUZ5ajF0NXc2eDNwN0FXdzNUUENQVmRLdDA2L0ZpMlFWVTJuQnhSaG5wRk5DY2RKQk4reURlUVNpN2w4N1dUWW8yNzZJSGNqQnVBYmNyRzAvY1ZveVlBTVgvZ3UwQmlMOC80QTlxbzluOU9udWZtbit4dVRweVI0NUJyNzJEd2JVdllUQlMrL3VRbjRLOTI0a0ZuYitDc2F2eGxYb3lvTFhEaGo2eGtDaUtvaWlLRUFSQkVVVlI3MUdYcmswUXU3cGZpVEk5WHpidTBCWno1MWF6eU1PRmR6R3YzREdwR3lWaFg1VW5GSmUxZlN5bG8zbkYzbzVtZVBUZW1hRTEvN2dSUStidmlEUnBadUpOQ3pVMFRiMlFQcURuczRacVpNR2FQMVc0TGs5UERRUjlFbUc2bmExc1RGUk1wYUZ2SVFpS2hCdksvK1NjbUVpYWNXMXk4aUJET0RSbnFmK255cThrZS9vbHdFYS9NM3l4bVlTRUdIR1U3cHBGYVJRRkRURkZob0tjTloxY2ZyMXdDZ1JlS21HYUc2QnBmbkN5Wm9WT1NUOUFoYUR4ZVBEWFhJQitxdVJRbzdxK1hSNldOK0FZSDFRenYyMDRBQXFLN3lXUVlzT29KZUFIMnRLQ0I3UXYyQWppK2paTXliRjgyeGJGdHhCSFM3bVZTUWRwVGtEbFhIRGtGRmFLY1dPRERiUEpVeDdMUnJoNnhCMFVOVVFRU2JCRXpVZXpsdXJEbU5Jdk45MEtsRFlFMmJYZEl1RFhiUW9BYmFMUU1LVEdDSEk2Mmk1Q2JHcFBJUlRGL2dwdzV0NGt2RGhlK3NUdk10eEJoTHN2cEdBd2dMY2tHZ2p3SWdaMFJGZDFEUUNBMVNHRjFqczIzK2ZUZFcwQVlpVmNOSnFWekRQdCtOOE9xbGF0YmwyWUtNcTVWbU9qUUZObTljMHU1QkpTM0xWckdTbm9TS0JmdW01a01iclNlcDc2dklLTEliMXJleUduc2ZNZUhkY3A3SE90Vi9aWG5KUVRKdEF1eCsweHlEdzJ6b3cyNzVXbEJBWGljbFlFUlBKcUNnd01uTDVENnkwcGFnR0hoMGFxSmVRVVp1WXh2UFdRNCs3b3dIMHZnZ3BpQUgzRGNUK1VTY1lRRUxBM0hzMU5tVnhncnJYVXRyNXM0cG5NdDEwRmVYcFRqQ2lMb2toRUpNdXluS09QT0RzVFFweHp6dG5aMlRtRWtLMHF1dTU2dTVXQ043R2o3cTZFckx6eVF4UFRUbE1jdjNoMzhsYnRKMXRYczMzUkVTSUNBQ0tpS0lwaUFESmM4OStkQ3J5dE5ER1pkQmZoa0N4Zk1rQnA5WlVUdlAvc1hNeVdCMEtwaDd2N0RWMVhjOUFaemVoMy9WZEc0VEMwQXZzaU9hR1FmaXZVdWh5TFcyR1F3djNCeU1YRXYyNDZDNjM2dmprWnFEQ2djNldKaTM4dGxLTENMZ3lFamFRS2lJdnRUVHlmRlZSTHFQdFdsYTZTd1AxVXZUL3JBZDBqQitqK3padkYwSEllUlZXUThVUHNlZ3Z4VUdBK0YwSXFjMXVHQklLbjI5VE9uWmhJRVl0MzNDM1lKallaejg4RC84YlhVNTl1clcxdUhick9FNG9wMFVUY2Y0TW1xUkdndDkwVytsZU8rKzVrMzJYM2Q2NDZ0c0YycW55QVFwcmtlZGw2SmhoUGsrelJQSDVLQ29RUVFnZ2hoQkNTaFNUaFZ6ekhyYVkvc2QyTE5TQ2Y5VWM4T1liMnByUDRFNzNlaVRHOXVVSUNEQWRDSG5qYnMxYXpFSFJPOVVjelBiVzNWVmNCM1RrREFBQUFBQUFJUU1aWXV5Q3lVNUVzVFNPamlSWmx5bkdadzJuQ2xxeVRCNDByc0RDSWlJaUlpSWlJeDA5NVRaa1NmYVhFazVwT2lTaUNIVEpMSVdIS1IrWVArbHM2TG92OHhia1lHZDRBd0RDR1lhVlhROFNoNjM5eXFmOURyMHd6bUxITFVXWVZ0eTZpL3BOT0lxeENOV0swNGFnenM1cFdGZVRaV2lPTEFGaWRGUWVNb2prQUlMVmk2bEFCSHIyZXEzT0VKb3FVR3VlTWdIa0RQQlNMeXNtZGRmNHFGdkYzbEk4dVIwd3lUUWpnQUJsRytnamlwcWhnNXpTUzlIMURYQXh2V1haQnAzcWZZWVk5b3IvdmxyY096SjJ3ZERDeVhLaVRNeWl0bFRzMDdkZzNia2tjQm92QU5LdDF6dlZPeEZrME1jWVlZNHd4eGhoajZzNSszZjlHb3k0VEFOZ3N2bFZlMUxhS2UrUDBBZ0FBQUVDQWpNM3I3bmNVTDdpKzRQcUNrdlBUbzMwNkRHWm1abVptNWpEemQrWUVCOGVxMEJ2MVduZDVSSVFRUWdnaGhCQkM1UERBdjl0b0JmZnhsMzM4SUQxdFQzVjJmbVRGa1R4dk0rRnltSm1abVptWm1ldXNRdXRLMTFwcnJiWFdXdXRvcmZlOUM1L3F2b1U5VHBjZCtUNWpWelplUVNIdmpmdjNzKzBKMmRZYi9ZWjJHUUFBQUFBQUlBREFiaUJpdHAxZUgwYTFCNmZ6bDYzV2c4and1ZW5nbVRNbVROdkh5Vkd0a3BoTWlDUDQrQVFwSEg2bnM4TlYzQjMxTEFsaFdKNnA1ZWxrb09nUlJmRGlabVEvVFh2a29ZME9Sbys5THZqam5tY093UUJYakJsVkVxUmpVcjloTTNwcVo0bnZxRHVzR2N3RHpoT2pnbW9zR2VVWTlLRGdFSFg2elBRcFJlVU01b1hqczdVcTJJdXNialVMejFDYjJKWnYxaVlnTTBIYkNqa25zSW9QdUVmdzN2NThuMnIxYVV2Z2ZRZ0FBQUNBREZxTTBzK2JXWjNXcGhudXRIYWl1Wk9BdWg5NXlFeFppVG1Lb2lpS29paUtvaWlLWWU1dzh2L1J2Y2Y0N3V0MHBmRDFRVWlyZHRRRTl6R3pmdThyWlEzOExQRDJWckROUXFyZXRuMmw5dkpZNE0yaVFBaElOK2w4Nk9hNjJ5a21VQ3k5SDlVNlhmeDYyL1pUcUgxRDBUNi9xaXM5MEdabVppNERNZ0FBQUFBQUFDRHlXYkR3aXVTY2M4NDU1NXp6N0h6cWJyZGdXQURIZFYrNWVVdTF2MjRLamtWQXVSVW05OXlaYkNhYjZuS0hIWnRpbkxhdEovOXVBMXBJdXRuZ2FSTWxpSnFpUFhPVEZaUFE3c0F1QURzTXdkV21MN3JkZmFjOEwxVzZ3Rm1GREFBQUFBQUFnQllyemU2YUR2MkFHY2RiYVJUUXBUZ0FXVzh1aW9ZemdvcEtnZy9id3NKTGlqclhBdHlVQ1lhUmVSNFo0VVhjM2pUZEhGcTNBK3huYUhmWkZ0dWtlZkYrbjE2cUJ1a0wrS2lsSTU3MzkvUmMrUzY2dlZUMzJmUllwVjNJd1c4Q0VwemNLczFBdUR5dmxtWU8vMVo5T0daSS85Ymw2bWpBL00wTC9vME4vM3I5WDRLYTdCUjlmUHZ6UllNbks1QmcveXpCWkwxa1ZVRjVEVEpGVnExdi9wSDJYdFRuMzg4TGl6Smd4dEpteDlMTHJRalh6YmNiKzdaZkgrZmsrKzNmTTEzNmdlRlh4WEZ5RjBCUkZDV0VFQlJGVVRtRXFJYllFVGlrOGNhVGRrZmZjRy9DYjhRQy91YXhvZWlxb2dGNzJVUGUvWDgzWXRWYWFUbzViUnF1dHVYN2tlNjFUOTRkS1ZRUG81UDlsaVJKSWlLU0pFbktJdHEzcmVmTXZVSFd6MzdPVzlmcTVXdEtRZjF3RTBvSmU0dzJtcDQ1YTdXbTVWYXdIVVRiKzQrOTlUeXJ0TjNlL1BZdk1yVUNzSENMUnhRQzl6RTgyNTQ5NTI5RS9LMkplN1o5MUJCM2h3RWxUNXRtdnc0N25VeXpUMEw3cXhINlYzaENuRk05Rlk1Z3pjbFQ2Y09xRXVteXIvS0tRY25vMGxFQlZQZGNsdkE4SzI3dVd6QkVFbTRlY25wSkp4cUN4aFIrVlJBNmZaT3pyTE1tZ2FlVW5JTTFDTmZ5WWVjOGoxMktsVzcrY1kzVEJOT2VncHVzbVoyVUxvMzMzTklpZ1F4emFQZG90bzVxQXZ4eVllbm1MSVVHRURVRVZiRkhKVGZzZUdscFpReUQvZDJ2UWk3ZHAyU2VzMjFQWktoQjBYU1cvR3RLRHpMNUFvckdWZFFXTGtBNWdNN3BlMUw3Q25UenhEQjVRVktIS2dWL2t6NG5DUnFXeDZNcE1ORUFBR1lZV2pUZlpIOUFnOXVjR0JnWVNieFd4Nm1CNjNTVnpFRmk4MEtFc3A5RWpQYnBGU1V3UnFWL3l5RmRtUmRCZG1HKzBneURneW1tbUFJdHdyQ2czNWpLTkVhUnVKUXdNM1NJVXdZNm1PcWJHdk9EdVpOMWdXQ3ZPSy9PeG5sR0d3ZFNmQVk0OEpFeVNLa29QS0lFNWxqckhXZjltZ21VMFZ3M0pDYkFmMG9ucnBJdld4d2JSeSt5VXlIbUx1QU1pMkNLWVlKSEF6a2VTYUpNNGJUV04xSy8wbU1ZWTVVUkJYQmk2R0tEeGZ1cnhvSWduOWpPczU2UmRXN1VENFNEVW90Q00rMmFSSUxpQll1ZzVvRDZ6c2lPbjQ2dWNoL0RISFBvNVNCQWhDa2pJdkxjL05xSzMxVWdDN2xxbGsremFUbFA1Nld3Vzc0cWEvOXlEWUlwUjhuS0xoOEt5Z0VTek9iNnJEeHFxVDRVSHpuNHZzbW0zNG04ekVaVGRGRzJHZVBwalQ5NHdDT1ZhT1ZWR1orakJyUHVxUjFITEpNRnl1TXNobXl1elFnbWRZVlRiTzBMUEFMZHRoMVAyb1BxWng5V3UwcUFneDhadjN4NGVDUlpXNEtKWVQ1azlYamxNM2ZlZ1ppZWhpUFFIcXViZEZUY1E1YjFGc1A0V1B5b0lDVDBadzJ6MUE2M3poekhNRkpzdWpnbzNzS05WOHd5d2FHaEoxNEJQdis1SVVBSUlSRVJoQkRLb0p4WHpFMXVRenFwM3RSWW1KbDY0R2ZkUXZqSENqM25zOWp4TUx4TW0xK3l1U0hONFdaem4xeDdBSXFpS0lxaUtJcWlxRkRVcU9EeU4raHVRUUFBQUFBQUFBQUFnQnRnaUpuMTlWWmt4VW85RWhkREdxSVBRRFRITWFtNTc1SVlBaDFMYWRZbXBUeG9adTJWK2pnUXVWMVRYTVVJRU42T0JGb3V0VncyeHVSUVpwN1NTanFndng1QWU5cExFNlpPNlMrREprVE9ISEgrVExDUHNseVBuMGZvR2tFQUs2Q3N3c0NhUlFIUHFTN3VuM2ljVEU0TVFiRXR0azQzOUV3cE1wNU81MUZOZDJGYjdqTU1oQk94QlhBT3hVbXJnNkdaR2ZKL01VeldYUVFVaEJCQ0NDR0VFRUtaZ09GYURYRlplWFA0MC9wdkxmdi9ISERjS2JzdEJOWlZwNlhiMVJrWEdoeWNNMmpoYjNDK3dpeXhzQzB3NzJhT2RJY3pCSThUZU9ISkpqMmNCMGFyYkVFWlFaeUJJUVVocjdJNmkyVnpaYXRjM1pQcmJJYlpLS1UzQmZPVHMwbGRtQU5kY09iU3VSK1p2RmxEUytoaXdFZ3A5WkkzMGVNZ0NzTWdJaUlpSWlKaXBybVBFNWZYaUVzeTBFNUhXdnE1OVNaZVp5a05Jb1kwTmFxRm9malpKZythUnR3YXdOWWkxTTF3SGxUMXRnVVFWUE10Y1U0NDd6aW56V3JEaXZqMkZtQS9iK0R3bjQ0RHNUclA5OUcxSDhXWGVOR3Fzb0lKcmU1dnh1TzlUTFd6d2hLUzR5VFlrMVJLcTVaUTFWb3RCZ3pzbzFTVE53Ym8wcVRQUDlTNEx6S1JNUXpudXd1M2FyNGk4NEtaOHdhQ0E3VENjR3JPQlFnOEQzYXQwdUsyYXBaMG9NbFRkVUFWVGR3NWgwRk1lWjlraVJTZWZCUWJjYVVzNFdqakltbkxXTjYvSnpsdURQa3JqVUc0aVZCYUhJVEk0eHdPMnhWUW1mZWZtZG1HYTFDdHNnRnFJeE5KVDRUdDdwL0wzV0FUN1BzZGRTZTBkc3g2QUFBNHRQN2hOUzVITEhvN3FpVVVBTjVyK3Z6cWhUcVBrWjZ5MmtGZndBWlo5ODN2UVhXTUZWMDdhL01wUHkzd2psczd5ZHVqT2NNcjRXNG1GVXRlUzFsMnVNS2lObVl5bTFmYWRGZC9JcHNqVG1oV3pEdy96bXIrNU9yTCtlL2Z6NkFLbGc1ODdLQVF1OTBuTWJyV1U5cmxWd3FMMHNNcGlxSXdNeXVLb21SektHakNGbnNQYk9kdHQ5dnR0bTNiZHJ2ZGJsZDMyam9TYzBzR3BJbFRyVjBnLzFYTzBxcFRDN1BMMHk4MWNwUWdNNlpXU241TUhKMXFWNG05dWJPYjJocSswU1BEZjdoVlRscmxZZ3JSSkx1c3d0U1owRjBvMjc4ZFdUWk1HalpSUGVCL0JwWlU0VlFma3dJKzFHcjVIQUNqbE9QMVpKbkplTVdrUWJvM24yTytDOGxpNU9UZTNsZkZuYmlJcVV1TlBUdk01RGlPUTBUa09JNUwzT3lDRTVyUFVjbzV2T3ZEZ0RqNW85S3JLK2dmc1VjeTJHbzZhZW1VQnZ0eURyYzczM2hTUnN2Wk1lV1BNVElBQUlEa3RsemhWUEt5L3dsVW10RFh1TFMxTnhyZENEZWgwdDNxYll2SWhYL2JxLzI3VUVaNExLS0lzK1hKMWNYOTNsTVdjNVJGVVNRaWttVlpQb2lPQTlNdU1CeS9OWmZpY1NrMVp5cUFQbFVIeEw4cXBlR3hxYnBjcGRtMFhIaGhSLzdncHdYVlpUTEdHb1VLbzFSWG5XcFRPOHBnbk9xMjdqUGo3WFBzWGxVSkxrZHBaRmN4MGN0QjFodUVFRUlJSVlRUVpvUlQ1S1VSdm9OZ2xsd3NXNkxmRE50REQ3KzNYd0luWmNXbWluKzUxQkJJeHU2VktpYnVaYWJxZlVaTFhuSTdHeXo2aVZmMlpKeXUvSk1MLytza1JQWEw5aGF1K1R1eTFiZDZ1dXZmZkNGNGt2dVk3M3Z5ZHYwYTZUTmo4aWxsV3UrMURUZUtOTy9Ga3BEK21CaUdZUmlHWVJpR1ljSXcyVkJpRjNBalhyMTVRVGlxVGRBYWU1eVFvU3cwQVRTTjJ4Rk9JSXQvVFBRUUtvaWlJM0thVElvOHpuVGJtdkh6ZlBPY2NCakpzb003ZFFZVUJCNVA3UUZCTlpDRVl3UytYUlNOcGpBTlJBNWxwSkdRZHhBOUZKTEYrcGxFUnM1WGh1WWhiMzNMSjBCeTROZlJqeXp1M0xlS1dvTVpvV2hqRHppQzQ2VUVqczdtaXY2RENMTVQ0Yit2akVRUUNxQXljeldsZnViNTNXK1hNTThaUXNFalZiRWp0YnZUcGdzYktSdVVTNTU0QzZEQWtlVVpNSzdEVzZrajBTN1RWMmZsckFhV3VEbFV2Y3NhUjl0ekp0QXczRlFzWkV5MDAvMHpVcmlXcm9rODVtcHA1VnJMMTdjTlkwd25uZUN4QWhEakRFTG1HNjBGcktNbi95RzRGR3RVd0ZnQlNPT0hpWU54akRIR0dPTTRqbU85K2xHSDlWMWlmazVpeUlaaG5nOEVvbFpyZk1VSUpwcEpmM0FIZFZhUTZncEVvTkFuTkJ5U1oyTUJFRDdON2k5V1pCcC9kU0RLVUFKdHl3VndTUXJtY0hwa3Rmc1pjWXJWaFl1aGJVZ1BSQTRkQ0dsQUczdE1LeXpUTUFpalBqSjQ3NW0wVE1GQW8vRjRKbndheGI5dHlHeHV5OUhTMTNSaGxtY0NPTzBaMmptNVJla01uY1JTa0loc1B3WTkvYnpiWWZTc2pEcmlzVXZUY2hDY0ZpUHYyUkpaZFNJR1g1OFVVZnpjNEQ5YU5LUVl1WEo2c2hjTXptM0ZnZTZhVUlMNmpTNkdkVVFjSG5vdEdRT29GQmJPZTRaY0FzZ3k2NzFqOXdCL2UxQWtpblI1eGFsM3EzSzFVU1hkVmk5NjlkVzNnWmEyZ200SjZiM3R6bGJnVXF4ckE3Ym1LUnF1TGtqb2JpakV1Qko5VE4zL1REaTVsVFdhdEFjbDZicGlKYmE3K3VaZ3E4cmJvM0NkZWlFWmFiWXUzeXB3Q0NRMGhsck5yYTRHYWJOYkdVY25WMTFSWUZkVmRGZS95cXVHN1NyMHora0JVcEVlL2Y1S2dRcFdRSU1qV1kwK1dPL2NZejlkTzBTdmxVWWFnSDNobnhGUnQ5bC9QU01hYzZDZHpIZUJ5TEtQSkRJdXRkTXF2bzkvSC91NjEyNDd6NDR2ZUZwdXRIUDhqRGFlQSt6eUh2SXJFSlFyN0hKaDRlZk9SL3JwSmxxQkVaUVpJMHUrU1l6L1dTdW1UUHp0bFFqZCtTSUhxZnp5WS9qaU9MUjZXQ3dCeExaRzJibS9EK3Q3Y1RQQWhlWHhNbWVvRU5UcXFWeWhsd01laWRaM2hsNCtIdWdBaUlBY2pLdG04QmtzaitwVXVhRWN4M0dJaUJ6SGNVSE14QTlpVUsydXFHNTRxWThZYktzL0Y3eEdBYmxjK3FlbjJBeWhiOFRxZlBjTFg1bi82N1lqWmhTcVUzdjhFSW1KaGUrQm5kY2g1L0tmVWY1bDByeTFuTHQwZFZyaUMzallSeGVvZXdYaWlja2J6c2hpNzdXNGZ1Q0VCZGd5RERJWnhRMnAzbHI2Y3ZmY1R6YTJkcGlEMjd3UjBQcVYyNWZCNFVaK003NGhRL1BZZG5RdVFWN05QbFhaSVV2eDFUT0I5cVErSDhLU2JpT0tvcWlVVXFJb2lsRktuWWI5dk95S1NLdmpUN2ZTNWY0TWE5RzNldWhhNjJTRzhpdXY2aHYvRnVQa3MrWUZzVFNOUm4vZm43Q2ZGdnVkd0pjL0QweG81Q003eC94ZFY2bE5RNDFjd2VUSytHU0NwL2xXNUpmZndnNW5LQWIrMldZMllCU3lFTmdMaG1QWXhPOXdDYkR6ZURDMTE0cmJhMXB3d2NYM0ZsSFpLMUlwMHErY0dIMHBKQjN2QWdiUmxxNEVzRURsbDBuNzArd1B1Vjh6TlZ2RlAyckZRZDVjeTZ4amxUYkE0Vm5qZW1JeXozS0hSUzBFd01QdEpoZU9mcjZ3aFRkTUhnTFNVVHdSNnZDbFFISm1LemJOSERjMERQbmRaQ2kwR3lKQ3hPQWpNTysvRjdjVWgvQk54R2FlcUJocVBZejNyVmhEQk9PK0lUenRNL2RHMndrTDRUeCtLQzBpUnVRZy9RK2hxQjZiQks3a0UvRjE4VDJJMEIxUkMrR0hqaFhoWnVqREFubGFPdWFsU1dGOUkrbXJYMzVOSFFCT0llQ0NBRlNOekFWeW5YRytwNDRYMlRwWnR4T2xnY0ozUmhJUklrcWwweWlUK2VwTTBsOFVaNkFKMTJIejlORklIUGdZYyt4L3RMVTNmSVp4THlzeGdFcnViVkFneDlKSnRVbXFCWVJrbW5UTCtRTW9PL1FWTE9jYTdheHJDdk5PcXR0Q1VPamhLcnVwWFp1SkJncUh0ZHVUejRHQnl4SldKSjYrT1pML2pPVEtFcEoyRHd5ZnhTUnRESU9nbW93QTlBalZKU1pMczY5YVVBMlM0ZytNUU9UQjE4RHhEWUpadFhWZmJLL2tkd3JkcWl3RTVyRmtxQlMzOGJKREJoT3ZsRFNYNVAvSUQ0aGFWdkVPdU5wK1B5QWlJaUlpSWdxUm5GeTNGenVKa1p3M3dOUDhzZjlLODhtN0VzNVpCV2phRUtFSXduNU1adFJoMGlnY0RNVHI1TlJaZ0dXTkgwR29RSVB3T1Bhd01wenRnV0R5M1lxcHFBajJMMzdiVXhsRDNQSVI5QWdIRU1CRE1kUktkcklWM3hYZ216aGJrWmpSNjd1MThYcGhteGlQVEV0N09RTHZJeDJzRXg4VzRib1FZd0taL0twYlpHRzVVZ0ZGTzdHalYyN2pzU1MvOStPRlNJZzVlajVIZUJ6ckdQclh1eVRkWmFRbVpiL0hhOXZYSmEyOTdwYXUrdFAyODN4ejZmNkh2Nng1UmpJcnh0N0Z4bFZiT3NvOC90dmx5NTc4dkNlZGwwWVBXeUlwWFRGOHJXTUZoUzhuaERlTUppNDUvRFRnTS80ay9HT3BvMDBkMmR5aWVmNTgyZGd5WXdhaVlZdkRPaHdHaUtOSXV2cGlWWWlQWGV0SVpLVDRjM0ZBemJ0SFA4b2dORnp6WklMN3hFZWJPcWFjdW5IQXdERDVLbkRiY2tDTWlaNUpRRGw2cTQ5S3NSbW5TcHFwZ0pYOERURnZ4Q0hZb2R3Q3hxbkUwL3Z4MkF1MU9MYTBpd2pqRjBjWlM2QXd6cWN0QVlNV3pubFdvazNiRkFjaGhCQkNDQ0dFZ1pCNWhsajVpdFdIU29RWkNNS2FUcGpIRkpzYlFreEJSR1NrYm8rWkVNS2RaaGw3UEFNcHd0OXpUampNbUdEclRUQXd6dUh6R20ycUN3TW5CQUJHTkEyZE80NmRRUnplOHpXaFRFK04zcXliTDRjNEdCb1BJeWtFTVBhenI5N1ExUTBZem9FT29YSS9ZUW9nMGFWSm5xbUZsaTNIUVUzc0Y4U1loMzRZNUswMWltWGVHRVZWakVBWWdraHUxQWZkbWRQYjF6cTUxMjdkM1o4aWhCQkNDQ0dFVUNhVWlQL05PQlF0dTdTOHl6MXVxNDJ2UzY0MThseXYxSGFxNmZnSm1lSSs5SnRMZzFXWmZYTzZYTW1BNm1uOVhqT1JxcUhFT3Q3aUl2T1ZEMkIrVVlrZGlydFhRL2kvdzJES0QxNkxaT09uVzk0SG5JdTdQSTVuYy91dlgrR2VPQUpsRVJFUkVSRVJ0YkpaZzlPaDlqSDRiVmRXTEZnZGgrbUZqK203ZzVFOFlPdWZGNm1JVlhBNGtFTk5HZkhiY0xMaUM1dGx4Rm4ybTJYSi9YRllQeER3Tng3dVlPUEIyejdoNnpkZDB3MkpoOHdaMDk1NHIvNEQzUjVORmcrTzI4NHJyTGlHemxST3ViWlp5cDdPWHI2K1NZS0ZHVDVtem9lNUU3NmNJZnNkcUtFWlRzTCtOT3hILzRPUTN4eW5yQWFvL2gvSFpmWk1PRW93Z3FlbnlNek16TXpNbk0ydEg1THZ3MjhYamdQTkVuc3ZLMy9kRzB2Z05vTCtudmJMMk5JM1M4RnFLMjVFNzRldlI5ZjEvT3g2VVFSa0hhay9QSXNyMC82VGIwT3lXRUhTUElsMzBRMnIvRXQ4NFRKa1pIaXRuUHg5K0twSzJWL2FSOHI5UHl0S3hrMW80WnI1MXA1SmtaV3Y4VmxTcmd0b2UrNVFaOTZ4OUVGMi9OV2F2dmFZMytHbWZ2bXpxWlFPY3dGRHlPUTRqdU00anNsa01yUGpranZTSVZmOWdvY0g4cEVhU2RzUzlmVTdIaVNzT2ZpNjhUMFdxOE5CbkpuQ2J3ajI5b1FaUVFnaGhCQ0NJQWdtWkliT2RuczBKbFVoRGNhM0x4ekV3QWZ2cUdsTHlMbkpTNGZJdkRMbnZwRi9iY2RPVDhPMzQ1aGZ4bitiTTVMSlJIZW5ibmRsc21uaklkSHZ3bjd3dmdaQVp3UzVweUZLNzFLTDR5c2RYOWtaeFA1ZG1BdGZYSFJsRjZkbDR3TkJMUk5MYStoWmhFeE1ISCt5cG9Sdkx1SzFNMFVId09Na1RIWk5iYm1mMW02RzRkWWVjTktkMkdFSnBpekdzaXgyWW1rK1pvMy9PeGY5M2p2N3JNVUNqMGR3VDR0Z0ZXSFpQbSszc1RqbldHYlNRbzk0VktqczRseVVxL0c0NXJaalJHbU4wR3pUQU5MUXVIdllxQnUyS3U3UkNBT0NDZDF5eXNmZUYwUE42QTc3ejBRK1MzUC80UnovN2dLcTJNWUIrUkpiaU1hZERvb1hQYkxGelVVQlJEZjQxeWxnL0J4OGZTY0VOMXZkQlVPMFNvM2pmdGpNbTdkbGFpejBKUmhJYkNZdDRXbXpQbENldjJkSklVR0NQNzYvQkRnSTBnY3psbFBHeDJZOHcyK3RwTklqQ2RBY2ZxdE9NbVVHakhDUnFWRTNQMytpZFFMdGNBWnp3ZkVySFRYWXAvOEdvb1pxQWF3SUNlNzBNbDZ4SGtJS3ZKWEZUU3ZLUVRyOEJHbDN0WFV5bVF2TDFpYzI5MEk2MlpCVVBXNERqUjdrM1VmMXhsMlluTGd2VnpLT0xVZFhrRGdGMkR0eDFtcTFXcTIxMW1xMTJtaXRtUVdnSDBPUXlmYmgxWWlCNmpLd1liaWoyeUp0M1RnV29uZ1I5K0p1am9nMmlOa1NydHZ1b1didEQyOUExTUY5S2VGQ1REN2lmdnhFTHJuZ2tCdGZ2a3FDMjRBbTkxa1VOTHdPQlZ2V24yTkZDZ0dlUlVZemJaMlF6ekpPOHRxeFNKRWtmQ08zVWhDTmhZcENTQ1pVN1JUWGgvc2laWFRkYUthMjJ1WXZEb283enp1ZWJsV2FwV21hbGxKS21xYnBTTW1GNStOUVpmU2ZUbFh2bnhGT2FRS1BJWWlOSVcraVFlMXZOS0IvZlRPaVpkU3BRMFh2OFdBQkJtUi9hOSs4dThqMXgxb2l3dm8yQXJ1RThQdld1OWNaN29ReHMvRk84K0ZwbUZNTXdmcC9zUS9OUTRiK0cwcnF6STdiQk42RENyNGQ0N0Y4azJ4VHFGQlkxTTFDSHN1NjJGcUlKb2tyWHBtd3dUTzdWcWQ4Q1FEd0RxTk5meGJNaGViNlJiZXlxWmZOTHN3Szhrb2tBTXdyMENrY3ovYzlCTDdUaUJ0VHlrS3Ira0lwNm8zeFNLUFlYQ3VxaDZOWUNqU3hIaDRlSHA3bmVSNGVIaDc1ZVY2QlBOcEUwaGR2Vnk5RloyK1d1QnY2VXRuMjNWalVDNHdYc0lMaDRmZlVkbDhZN05meEUrcGhlWkxHWUUyUEUybjcwRXJySlJaWXYwS0M3a0IrRElGS0g4Z0FBQUFBQUFDQVllRGlUZEw1cXFyTE9uWDJPdWFBUW41Wk9TRDJyVUd3L3ZSVmNlSEhVREFpQzRJZ0NJSWdDSUlnaVA2YmlVNlk1N1V2enI2Qi9KZURvSmJtZzhXeUs3T3l0TWdxaEFBZ3B1Zm0wbzRhVVpGWTdLckg1TVUwM1BQM2Vsb1JDVm93VXBzeUtacU5xcWtLc3BHWVhCT2dqanF3ZURScG5tVjRMa0k4RzRxUmhXdVFRYWEvVTRqUDJobXo5TVlNUXo0Mm95QVRZdHJJaWl1MTJ5L0Rna0ZZdTNVRDUvcCtybXlQVTJ4YnJtRllYTHJCV2w2OTRGcno0L0cwOVE0UWd4SUt0N1cvWWJHTzZkSDBvQlpZYWNvVzF3UkZiNnpmdHdrTWxHeHZQRjROYXJMSkpVbmE3QzRjSW5YeEU4cUp4UE9wZjJZMlpwY0d1Y21WdHQvaFFUK0lGRjZ1bWNuemptVHhWc0kwMTVISnNWS1VLRy82Z3BtTHYrOUFoMVFkQW1FSUJVNjR4dlgrZkNPL2xieDl2enljanBwZEJFNEFjakZKR3c4U1BtMEZsQVVhRVArTmhLcFZpc3RDRmhCRzVKM3dUdXM0RncxQVlsSFozNXZsNWNEVHRBNkt6YVI4UFJzNkdsMmlTbEhoTDRNTUFJMXVrWmFNejhwdDJNYXg3eGxzbnU4cnVMV3VpWUNwUXQycmtlTk96Y0pqOUF0NGlxWXFRUXBMZXY1TkUxeVBYVUFsaFVPZjBiQ1lvTUx6eVBOZkpyK2NFMzRoRXlGUmdRZFB5SDc4WVBpOW94SjhuYzd1c1ppVmpFUEE1L0xCSExrVEJFYzFpdzVOMWNqamxoQ0pYNDVEbElweWVCcDdLcXJWTHlLUW1GakNBck5PN3lzRHVNZHFTTFV1ckZLNy9pQVhhUnk5VlRIb1FpdmZseVJuUHVzL0lyVHR6L0xuUWZTalJlZ3MvUDF0SUt5dThoOUVlTERFNnF3eXlad296U3YyRWhjSHZRZjgrRU1rallmRmZZU2ZmQk5mVyt2N1hsbXZnUC8xS1d2bWRsczFDVnV6SEFPUnc3RkxWL1lIOU9tVkZLQ0o3NHIwWkVpU0pFbVNKRW1TSkVuU3F5Q0JYdmdsZldqOFJmM2ZZeVZoeGNsTlZTOXlXTnJBd2ZzeksyeWpOSTgvaWk3NVBvSXlEa01ZQUEvUUlldUI3WVRRUXh2dElaWHRnbmh0Z29OVkJMVlJ5Z2IxWEF1WWxDR1l5YmxTTWROZlBONjdKb2xzMXl3Y2dvYnN3ZW41S2tqdVhrVzZWclgrcTBOTnc3cVZNNFJSR2g5RFpHUEJEZEw0YmNPUTZLbUVkV3djMHJGWlNOeXZqY205Tjl1cWJSakp4SExQTklnVXFmWWJQcXNrNS9FT1FWQ25GYy96b2VrSG1TSUdVbzBpM3JQWUgwZFpkQkFoSlRqYlBEMXdnTlhMN21la1pJVEJRVVpGV0NXaE82Mmp6M1dqOEV6ancwQTRNSEJHTTVaeDlENGVqY2ViNkU4VEFRUG1XMFBmTXNaNVV3QUEvRnJuSkNPLzNwOVQyVzNEMitxYjI4YzdLNWNPTG1QWHAzZ25pbldhNXQ3akJTMmpzdWVxaitIZFR6RGE3V3luR2FaaWlnVnBkV0lZTmt0NGk4TGFiNkhaWFh6czFFZDEzekpTVzkwZ0QxSFkvanIrNmFIdXR2eSs2dkJaTVloeWdqeVBTZWVqM2tLMEdsa1FwTHpIMjhGei9PdFAzY2NXWnRCbnpKNER3dEcyaVUrMituVFRjVW03TCtoUXpVUmJNUkp1ZjhIT0ZkTzdmSktwbVFwMXhITUVrdDBIcE8wYzVBQ1FrQzJkNkhGYmR6bmVjZVRZRVB2M002S0lXeUFWYnJKMXRzWmF3YVhFNVVEUjZNREg0M0xEOE5ISHlBMHV0citNWHVXUVdnYi9XclpRdHc4OG9BbWprUzAxQWUvaC9zK2dDQVVqakR4UGpvYnQyMnJDdVhBTTZJTk5ncGdEMnJ4QzRBNXcxWXE3K0tNUHk4MlJyU25HbW0vMDg4OTRaMWlRN0VUZzBCYUlJVDlyaWxmcWZKcGl6SVZSa0lVaUdraHF3SXU5QXczNm1yaTVzRUlCVjRRclE1elNnRzRFQ0t5NGpEbmtRblRXRzAxY0JSbmxZVnpmM05reVl5WTR6T0FaOU9rZ1lFQjA0TkhRQStjclJKd08xWnhuVXZ3ekp6QVBESDNMbU9BeHhMMlovODIyUGpKRG9rQWFyK3hZdFZsODZHRTY0ZzBsQnNGQWMzTjZwSWNscnJqT0xHT3lmUkJtaGd5WlN3ZE03WTJsK01heTIrUXoyNzM0b1RNQ1NRMFV3RmgvV2ZhYkoxTmxTUHU2K1pQdEZQbXJ2bVpMM0tsTktMQllUZnNqTTQ5ZzdEVitHMmh4aXZNanRObDJKdEcwYnM1STFsTFFTS1I0R0JpbXNMdDBla2RkQVBuQyswWVJ5LzlVdTJyR3V4K3A1UHpGb0UyNTdGWGl6TTk4K0N1Z2M2M1AxVHRXbDloVEMrOEs0V3hyc3UzcUpic1l1OTA2MUxpZXUwNTd5UGhiNXBxKzlNdkZBN3VyUGt1ZmNuYnM2VTZ3TEcxbng5S25qSlJodDNPSzE2ZTM0dm9QWW9xN28zMjlZZGp5N0NKNjYzQ2xtQWp6NVU4blg2MmV0TkkreERHWFdRM2Q5VDcyeTdSUDNua0NUbXYxamRtRXZYVExjbHJaaWhxVXlTdW1nblloL015K2pDa0F4ZE5ibWpNRXNTWGZvMTljZ3Era05FZTl6RUdwSnJwOCtkTUtjWGQ2YVJQaW1RdTVrSThhR041UmFkNzdQMDZzR1ptbVZIVys5ZVlBRjcvZUdQOEU0NXJ3cy9CVjVWQXo0c3ZzdUtFSXBHbDM0cXZGZ0JYMkg5THVNUGhqVHNvSXcvYnN4RHV4eVRFWk5FSWZ3STlyc1FSeUFFdDgwTkdTRUtublRET1NoVTlxZ050WmF6cWc4dTA5VFpEbkExU2lBMGdxY3dHSzZGQWVnSWhRazBFT0FiT0FVVTdEUUVWQXVwVEpBZEh4bDBJUXM5VVYwTnBZTWFEMXhGaUcyNkVNSjRSWnlwaUI3b3l4UzVhS1pCajQ2SUoxWEtVMXJFMXdwdzZjU2dZbzFrVW96a0ZBU1FXWXhLVUlnUDFsY2JocGYybHdqc0N1SVBkKzA1UUtudTZlUGFpOXFjSkFrQ0FwU1cvRWFHRWpnVDBSUEFPaWFSQkpka2hYc0lFT1Vua2VWQUNCNlg1d2lJdkxVTjNocHRjZ1RQd0FpOFhIWUtUNDd4eVB5cDBScmd2TWd0Q1NFWkNsS1RqWHh2ZjVsRGhSaDFXR2VQditnSUpIajF4S2QyV2VDSi9vdWhGSkp1WVN3SHI1VS9RaWcvU0FvUUtjTk0wM0haanA4NWZSYkZjUEJyWDMybzdkenNZYXQ0dFk4L2tSTnJzMmdVVk1ucUx0UUNpLzJVSXAweWFUTDFkVVBabURUYWljT1IyNkpDcE1CN3F4RGV4SE5WalFzY1VKWEovdTR3RVM2LzZrRkFmajlQK05qb05LaGtHMmVFOVhISDR5Smh1Sjc3RS84TWkxZUcxTHVUYWdHZjdmMXRIUXBSMUxFc09JYTlYVm0yQ0FiNTd3TzBSb2llOUplaHEzK1RFbnhmM0NtT29jblJJWU45SEpOc21uTmRuczgxZ1JoczE3RVd4QnJUSUJhUTA0ZlcwZ042d2k2RVJycWZUdnd6Ry95Vy9ULzNyelNJb1gzZC9PWGU1eWw3cUUyMVkzbGo1QTIvb25LLzl1TW5zUzVVeVZqWUl2bTdxelNUOC9EM3hQenVOeGZMU3dTQkVhaEIvdGxOZ3QyTlZXWHkvSFRnVEdaY2R4SE1keEhNZHhITWNWc0VzM1lnaG40K3d2K3ozM2I2aE1XZnRDUzdPZmwvOWtIWnpMd3o3T2Y1aXJZYUJOSGRvV0R0QkRGQ0lpSWlJaUlxSlZwTjNCTElCTEthV1VVa29wWmFTVTV1aEpGUDgraW4zSmYrU2hYUCtkdzEyWThuK20wLzJuY0U1Mkh6bWlGZWxrenVoODFQOVg4S041QThwMEhHa2dZMzZVY1hZN1FVdlRLNzBGQWUxUkVWajIwNWZ6M2tvYzFRQnd1MnBsb3hwOEpBbG1TbWJJUDUzdW9CdWJCTDEvUWtvSk12dkNUZTBUSzUwcDBpUkpraVJwYmFLK0F6bWJBM3ZiWkpEajYwT21LWW96YlpTaU5aKzJGalJDSFZIYmpvVDBucEdJaUlpSWlJaUlySzBsWVRtY205bHY2MXc2L1ZRZmNuSHpHamJBRW9mVHBkbnRhVkUwdjdlVjE1Nm5lZkRFb045SkRwL2VPNytuOFV5Ny9kOGJvZHZyTWlSTkdpVUFBQUJrOXRab1VzcVVKRW1TSkVtU0pFbUtKQkVkSlRuK2E1MzhwTGtlOEF1emwycjhTWmRycjVWNTg2eHdpVno2QVhFWTZhZ0RCSVJub2pQelBab05kUnRObURBVkU2ekYrdkJyM2M5OGdzbWNCeEJ3V2NHS1BJMjBoZzZtenM4d2pJVXh4aGhqakRIR0dDdHMxUlBjMnRqblZwMjkwNWJXSFhzQi9zOWV2TWhqS041WlM2cHBVamlsdS92ZFlhdGRCdTFEMlFZYlZEa0hyY1FIaHhWRlVaaVpGVVZSUnRQRHFSM0hjdU02SEE2SDY3cXV3K0Z3dUZzd0VXdzV6WU9peXlDKzlNR1VtcUdqVEhVdnRld3Y2YnJaSmh2MWR6eXJpdUxnZ0Iyd2lSYktPWUNBWU1EN0RVQjdMYWtHcXFmVHgvbzhsY1Z5dk9nNDQ3WldUamc3bFVieERKZkg4aThySjZyUnlmVVlHalJuVk5yY3JOMFg1TjIzNXFEcjVreHYyTm16ZlUrYjRneUdzU1RIdGlpd25BM0RNSXhoR0FiRE1Fd2V4alVQd0svWEE1ci84QWI0ZmljWGNVdSt4UUpCaHMvL3ovOVp4UCtuLzNYV1BQdEMvKzJjT2JOT09xbnI4cUdmbUN1Ykw5UDNnRnJTUnROSUc2dmg5UVlUaXdwSi9ibDFxdzVkNjI3d2lMb1c0Z0hKZldtR1czZzNzdmdDb3NnVG5vQXZFOUZUS2R4aEpIdnpHY3RQMXQvdDZXa1g4WkJMcEN4Z2NDYTBJQjM0WWxTc1R5R2xOdktyc2E1TVpJWUhKUzVIVHE3MnNzL0pXK2hIM2tNTHNyWm1HclN2Z2FodFB0dWlxV0Z6ejRPUUlCUGNPQVNYNFRGaVNtVnlaMWxYMkJXdjd5d1FkeW9oQ1MyVHU1VHU4MnpBVDFlaVplRGpGZGhMWXVJUHcvVHliNWNkakJzMDZZNm5FUVJFVzBpbVFVb0U0dVBWZ0J6Z05nVTZQSmRhVmozaHYvcXlTeEUrWWZxYWR3dTQ0NktFUXNXKzdJenpaU2Z2eTIyN3dNY2orcDFVNmdQajVsOXJKNk5KOE0wcHNvcTZDeHhTazlPaEhqSUp2eUFSbmQ5elFnYXdCUFNRa3BJV09ldm1kNkYzcjZiYUdkSmliUUxoaHprQVBmajdHZFkvWUZHWDd1S2NJeDRYdzczNUtSVTUxTktHRGVYT2I0c3NCZWxhM0tNdENQOGh3c0ZmemFGTnMzbHRYSzQxUWV3T0dJODRvcCtMaituZjMxSlNubGdybWJxeU9pc1lobTQ0YlM2c205bHRSTjdPZ1h6VjBpU1I1UllSTGFtbXlLV2hRY2FGRHNJWnlsdGVLOEp6aDRqRkkvUWVTdGk2dnBaQ1c4enlmOEVnckFtRWhaK3dqTTE0ajZrNzZ0d3ZScWlMMlFOTG83ZHM2RjBjY3dSTXBBd3llMUxxV1NzcjQ3NHEyUTUrdVFXbFJtV3Q2L2Y5VWxlZk53c3RLRytSQ2E3a2Era2ttMlZPQkVmZGVQVWpNMkV5ZDVsVHU3Y2JGRjlIRjBmVGRDMm1GdVp4TGFxcXFxcXFxcm1hT3RRMkFkWFF6c0VmT1IxV2F6b1krUlN1RExETUxPbjNMZWM2eHVEa0pmS2VYVmlSc29aWE5RdTJPZDl6VXJ4UkNjQy9rSDBYa1ViN3Q5TE15eUhRQUFBQUdjbUxvU3hYakNadGo2c1A4SXltS2x0N1gxcDRDZXAvbjlXMzM4NStqeGRVdWtzb1djN2VvVGxYaENnS0MxNVYvK0hiL1AyRURLVmhZK0o3UjdUQzdzcWRhN2pTU2dZNm9Lc2N5RGtiNUhCY0IxNHR2RFc5S0VadU9UdVNPTGFtaVFDZ0VzN3dwT29FcHViejR5ZHdCSitOaEtnRVRqVlNuRi9WL3lDYXd1a2x3eSttdlB0UHl4WHNPQnNrK2psRmIrQW5Dc0ZmV0gvS2FPQXZQQUZZQkFNSDlzUmk1ZlFTWTRwanpQcG56TzZwRGkwM3FLc3Z2UjRqc0xKUmJHc3FhUTkycU5qcE1XbjQwMmwwK2pLSjQxNjJiaytSekU2eDZ4WUI0dHhlQXRrVVpMUGNZZE13cWg4dTNnbnNCdTRScUpWYk5zOVoyS2lkOUM3ZVNySnkreWRVdEFpRWRHS3dqNkZBMDlEdVRYSFk2Vkd1ODBtVnMxRVVsRGFXZVpFQ2diZktkbFhkc0llT2dNOXViUU8xNVJFSzlDbW85djBTeDVVbjArb0dFcTJCM0l5a2dlTE1TL2dDL05LOHNiaGFHek14N1h3SjdFdmdJMDk3M1ROUUg4K2R6Z1gwb3Y2N0FDWjNIeFdBQlNpTWZobTk0bzZ1cU1lNGF1V1AwM3Z0TkNDbkF1YjZEMm9vZUE4MGJqMmJBMTBSeUVPeTZNSzh2ODlKNTFGRUdPUkJaVkd5NWg3M09DeDJLSFN5NEUrS09NWVlZNHh4SE1jelk3elMwRlQ3aERsdmtzMkExUFczU3BaQklIVE93WFZTWFY2TkFUMW4xZEZ6Z3ovUDJYeTBvR0dXRWE5NGV1RW5hVG8rcHlkRzR6OEErQTNhMTkrYndTMVlkNkZyNHN3V1ljaVZILzBPYi9Qd3d6QmJHd1Y0eE43UFZmNDIzNmRPYURaMXBxcmppZGVoZ0RlNFBMZVAvZGFzMzg1Z1NjdmVZV2JkWjZUaWR5S0p1YWVmakVpZkNtYUdMRzRQa2FSSFFWczVNcHhNY2ZJZDJyYWV6RlFmVHhMNmlQL2RnUnRpODZ2VlBiSnNGL1RXYk4zSjdFcDJkUWNmTksrMGFXMW04NWdJdmdlajhmVGVxYSs3MGRvQ291ZW13M1RnMUFYUUREUmtha1NobzcwMnR4ZEFIYWhJOW9Ddi93bWcyWFRCcWJJOW9Jb3dWOEJVOVVpbmJ5bGUySTRBa3lqL2VFSk1KcFBKc2l6TFpES1o4cktzZmtmRjlnRUxTNkRWZWJzUDZnSytLOExtNVY1QU1RM1g1THlUamU3c3BnUkZlSC9JWVM5VmxmN3BWcWcrVDg3cEF0UjkyY1R5Nm85V2RhN29lL0wwTllLN0pKY0RSWWFaOWhSVmlMMkttc3lmeEhJRWxZRVg1RWluTnI4dGRid0UzMDdyeTBJcmFqNmg2ZXlOSi8zdGVJZkVVSng2THNSdWdQMVRLNW5YaUViSUlFbVNCQUFnU1pLRWM2MHBYNUl4bTF1RFZsMDhnYm01djB6eUp3bGhwcFBkVXAwS1AxbnNCYWpBZjFMVURRYzIxcEp4SHhIcjJSUENoSEhhZUthNFZ5dDdhMjZ2N0J1MlNlcXZXSGd2eG4rL1pGdjdyWnNtaTBuOTFJd0RNbkpqNm4zT20rVE5QZ2VPeDRWRkd2NzFmUFBEZjZ1WG1jMnVxb052emhJWHhrOXRVVkpzd05XL1ZXTGlVd1pyUmRBVHJ0cGNMY1ozRjE2UVNXbWV0a3o5VVVSNE43N1NqanMrRktFS21LL3pPM3djWHlWaldmcXhIQ3h3VGtSRVJFUkVsRVZKSDEyeVF6VmM3UU5SOEd6SkhXR1Z4RHQ2YmNWMGRHRHl1bmtRUkRuM0xqeTJZa3ozRUlZOERNTXdETU13RE1NdzhqRFNDRzFtZnZodnM2SXk0bWRYbWhNQW5palFSRUZCVnRiRjdwMkdoL2RvUTlsaVNXejV4bEJMVUJyVGh0RjBSNXFTamIxOUQzVDF6Vm5odDdOcmVIakpIMXM3cFZFejc1L1FMT1VmMnZPK3g0TjVjdzljQVE5WXFmcjVwdmcrN2tuVGk5cDNQZDMyaU01ZTZtbUx5dXJTUGRUVHNDai9Vcm8yWitVOGxWZzJvUGwyYjBvYVhIL3VHYWZCc2l6THNpekxzaXliTGN2dUg5bUVGenZONFBBYTUvS245b3RwNWRNQTZRTEFrL2puaEJ2UVNERzZhdWFrYVpxV1VrcWFwbWw1cWg2V2lSNzNScXFUY3oxOG9MV3A4MHQ4UWVBQXdHNTBjTjZVWGl2b0ZqRW5JUFFGRkl6bjBmeHRKTUpISy9xTkNkM01BOEFXdnZyMzNYUnoyaFlydW92aWtSV2ZZbEtSbTZVeU5KNEI1c1RMV1k5VFhScytFc3BlOTRHNFhVbVZNOXZhc0Zmd0xoenVLZzJKdjZNWXNDdlp1bGZDcjFJRUErbnlSTFBpejZuTVk1cXhKYUhTMUdCb1JFWGN2V2ZiNjg2SnFrdk00OXJvZGc1YlEvdUN6ZDhMMkpadTE2L2RZMVlmckJJMGZNOWRxeDlxTXhCSUphKzdBVjljOC9sTXFid1hDUEVuWHJMR3diNWFGNVdoQmFRQWpXbzBvYTlodDJKZXRIa2Rkcjd1ZG95R2xrUVkwNjl6dmRKSnBZbGdUTk9DdUY4N0VHSWZscnpGR2wvTFpzOXBodTZHVHRqc2h1YVdKb0hsMDFVN2FwcXJZQlRTTXNxNk5WQnlld1JrcllpelZlZXhPM3NicWxvbkVqMzN3L0xVMXc4N0t4QS80QzJkdDRkYU1MczBFRm5OQmtZdEU5bVBqTTVITFY1b1B6eURLVE5SR2V5bzMxQlY5MEdHZ0h1Nk9HR0x4L0Q5UHMyZVl1MW8zRHZvTDJqcW5oeFBpVWNRb0xVZ2laZEcvd2ltYm4vOS8rRXhobzcyb05qRHNhU2pGSnpsWnVoTUFPdXM3TkJUMGg3YkFrbTJoZi91RkQ2MUU2Yi82L1NqdHFvV2pKVTlzSlQ5YTFyS2RjT3dNNjhlRk9nbWNJMy9CWk1ncGJCTEZkWHUzUWxHclFOWVZUeXlwczBNWjJMTGhpVlpIZ1BFd3E5b1l3QWtYNGNDUUhNemYzSXR3S0VKci9PYWdwc01aOGZpN0dnWFpzLy8xdHNyZnFSVTR5OUdjVHB4M056YzNCekhjZHpjM053Y2V3d01MZmJmbkJNMTl4VXVnWkRFSGhtSkhDaU1mQXdRR2ovNG1oSjZyUng3cUhVbTRYK0Z0TDh3R252K0ZhL0QvenRVSXVwRnoxQTVlODUrYnBVejJFdFdQdk9DTkFqcjY2L1ZHSmkvWnNFTkRvQmhmdS9pWjBWcXFkZjlpRFZzdGc5SEd2WXkxUERnaWJoYm9JV1doQ2h5UmNQUHBIaEorY0p3d1czcEtQdStxMEZWakw2N2FuVnRqaDJUMlorcnc5amRrQzRmZGFGaU5yV0l6bFozU1ZWeDVxZE5oQ3I2OTBpbU1seW9QRTY3Qy9LTTRueDBFS1dqNnErTGdsRzFZN1lia1hmbkN5UHJ1WS9kYmtEYXJVTkNxT3l1VE11Mm5TTk1DQjJrd3pMZHZZN1lOSHVTMytyMUJYV1Y5RUhNRnJINE0vRjEzTnNEOEJlc3M2T3JaemZnaW9DQVR1MlNQcW80TGhDQ3BpTk9KcXFtTzdoM3AxQmgwbTJ2N2lIL0l4MDlwUDZscEVvN0s0c3ZZcHhPMmNrYVNpNlhtUjJjdzU5b1VFVmsxNWFZWm9sZUo1MTU3YzQzMUR6aW5CcGxpckliU1JBWDc5cnhrT0lyb3d1STd4elJ0ZlVCdlFRZWNjcDkwYUlLdnJOVy9vTWpHN09HQW9xS25SK3FRb2ZiVW5UbDZ0ZkQ2WGhsR3plVitQSndqa2k1OGh1ZXVDOUJGbnZkUFlaRlcyNy96bStOSlRRNEtKdnUzbldINEV0Y1ArejFHS2lQaGdudGpRVUJDeFJVTUMxeUNoWXVoVUJFZjdwbmk2RWhpbEpmamt6UHJXY1VZTUNnR29LNXlUUW5JZmdFNXRMTGJYZDdZb212WnpSRjI2WTVUQzVFb3RFekpVbGVoSHMrak1MZWxSRlI1RU1VN2VWRGhyYi9pemIrZ1BwNkVzbmF2dTBwMk1YZEZNbXVqNXpZb0RYOGJTVXhzZDUvdFhUSXdyNnpxaVJ1RkZWQUdLdjJSMUMxNDBXaTVROUJUZlNsSGtoVmp0V0h1bGNqSTNQbUg1NzJrbXA2YWNpUG91ang2bXpGOVQrZ0d6K0ZTM0dNS29TajNzT0IvaithbGl2Mjl3WVVOODZQd3V5QkZ0ZW95NDdkUHZIWS9ySVMremFVZTVjK2hCdUpDbmoraUFwalpjRjdGMCs0cXRGNzJxMC9mZWg1RzN4Q21NSzBjMVZ4aEZadlRlWG5qT05UYS9TaUY0enp3eUdCWDNzeGRRWXBPbE1uTlRTS3dFQ00xM1ZDNEhOU2pNeEw5RWdJdjk4NUNVbDg0NVZZSEl4ampESEdHTWR4UERQM2RWNzRJSXV0ejd2YkRkU0syMXRNTEJJbmFBT2xrckwremF2bnNGcGdEM3Y3SVB3eW9EOUZzUG5zcWwzZVFRVGRuKzBtYk5ob0w4QVpXdkQrRnMxUXd3MnNRUWJST2Q4dVlUZnc3amVxUWtOK21pR0R4U1V4KytiTURjNTdEOXlqTzhuY0hUakdXZ1pHZm8zNyt0d1BMSkYvMy9uR1dxOFY5S0F0UGh0c29ram5TSWNnaDU3MFZVVDBPaTBZQkRweXZ3SjI0ZUhra2Q2SlE5b1pveFdVckdzaDZnTzFGVytXVit0dnpWWk1MRHE3RTRoOXgvY21xT2tjS0pXY0tSN1grWmNiMS9kc0JiMmhLd2o3NCsxdzVDbW5MSlhVcmw1SjJhZGwxd1BsNkF2YzdFRlM3QXU4TmdRQUFBQzZJeWlTSkVtU0pQSC9yYVU3K2ljeTI4ZjNYN0IzN3ZjNlpROTdnazBQbUErL2t3cDR0RjhIdEVLV2xHdDRxLzNDUUxzS3Vibjh2N2VSckF6RkVRb1dDTzhvcDZwanlDOHRiOGVobzhMd2dOcEV2WkdNa245bEZ2aVpjQW9BN1QvOXZCK0xTc2t6UGwrWWQ4NENnS2VtYlh0aHVHR3VpVDBadGxNT0g4L0J0ZTJFc1RkTnVmRzF0Yng3USt6S09WUEx1UFBEbHArUUdITitxMVlOTzFJL3RFSk9aNkdoN3BQcHd3eG41aFFCT0dWbkhNdUI4dVRtTVdGTVRRbExpdk5pM3p5Q0FudFhLYWhWaWxPRVkxc1M4alBYak1ObnRzM1lMSmpzNUV0aWVMVlB6dGZZRzZGamVUampuSFBPT2VlY2MrWXhKOW55TWxKb2VXRWdnWnhpaFkxaVA0b1JWeVVRc2FJTmNVMnYzY0lLalFwYS9ic0NuU1AyRVFMQTZVZ1FiZzdWMHloSEswcGR6cFoySzgwS2lyd3I0MEtlSlRueW1kMkhkUkpVcE5MVm4yVWU5RW1yQXpQRUR2a3FZUUt0WlBmRTlaL201V3AwT0wxekc3bXNtVE1obUl3WCtNcTUzVXBoYUxJdXIwRllLcDlBb0NLRktTRVozemRlRGRCeGZDRG1BRUNKckRCb3IwVlV5S2p0a1crRmRPUUNOS3Y0ajBtZXkva1dDUUlvdVBNZi91ZiswL0F0S0srWWhKMGUwMUVwZDlCdDEvSk9paEVHczFDajIwL3RxQWZvN2tVUmQwL2R4eDllTVAvM09lMDdNTGNiNldyOVkzSUtFRFFWMTg0TDBCY3VsRWtpVTRLbk9kWWlRMTlZVWNsZlh6alN5YlJXbkxBQVl3TUVCZ2dJNEJsQUhrQVJJQ05BWklBSW1YckxGRGJPYmgrQXcveUg0OVJwb2pXZFVDOTUzd25aTThTUHpqOUVONkw2NG9uZnNXNHF3UkZwbFZKL1luTnlLS1NiTFVwY2N4RmtTWEhySVdWbGFKNHpXRXVZbGdUVzFSeTVRVzZROUN3U1dldnY3OSs3eVVKb002bjhSazQrZWJKUGhWSnhheko1ZWlyVTBtbGZaZ2NWR3FwTndhZkZsMDFlTldYVjVCYmdQYzNWYUd6RjQzM0ZxRGRzZk1iSVY0dzhXUUxnZDdLeHJQMC8zZnNEOUdDY2lrMjRxTDJpQUxuVUxwdUVtUVhjSFJha0Y5VCtYSksyczVPckJlNGZlVEl2SjNON090MWlTc3BselQyaWxzR01GVzhCTzRlRnp5RCtVWGNMaGEvbTVVbzZCY1EyWUhzeCtmWHRMQ2FiWG9YaG1wcm9XMUNTVXJXWVg4RUdSd0VDdTlMRjY2RjV1WnBlSG5tZFJFWisxQXNrUGIycnR6VDE0MjlCS1FKTldJc1Z6Uko3T3RVR3F3SmZ5V0wwY3BjbkZVOHhrN0ErMVdpR01pSW9UeldOM0VFRTg0M3BWMDVMY05XMzh6ZnFlUm5XNEZ0Y2cyb0plbDRtK0lUOG5qMGsrRVc2UHdCUjFTTmM1Wk11TkJ2MjFUNk1HVWs2Qnk2MkQzUXBYVzN0aXNyRlo1UFQ1c2NTTit3NXdGNHRIaThlNDBQd1FtWEZsdUo4VW9vQUQrQ3RTUUYvZzhlQWdKalB3V3VsdHdUQVVqcEYwcmJodmFpZjVpYzFHUG1FSnp3MlBUR1ZmRzhJL1h0RWYxS2RWNFQ5SkV5Snh3UHczNFI2NWF5YVNDMkpHZmhzVGdaaVFHMWJjTk5yUGVMQkk1ejlYQy91WXhZNTUyajloditwaUJYZlJleTZvM2crZlR2M1UrOGZVcVVLMklvVXpmdG5KTW1QaEsxUnlrYUdiakdYUzZDMXdvM1pCdGltS2VENWVFcnRFanloekNzSld5RUg3L1IzZThSNVBJR04wY1hVTXQwL3lrOC9CVC85UFVRYmZ2b0hZdStxSWNnTGtpRzV2bkF1dFJQWGhKaGRRMDFnL1J2TUpTQVBnL1UxeUxuQWQyMmFiVnlyRWgwY05lR09Xc0g2RUtkZ09mU3dYRXRuNGFlTmZaSVFsWGFxa0pLckJMbVZMTlB5WnBQWE45N1dFZVNYZjBxb2c2VEY0Nm5KRDg3dlB6U3JJRFNCL3VwRDdqTlMvd2pOZ1M5RkRBWFNDOEhuQy9WMG9qSHRMNkdXV0dKOHRrbitJZmxtUFNHYTk4VERrb2RsdG16Q0tIeGpPQndYd2JEQm5xelgrZzl1TWFsSEJKT2dCNWtRVWRIdFlXT29qYzl0bnMrMmsrdDdWeDljQTJQV0hUQ25ZUDBVbFFuVkJSNXhwOUd1RmJyaDFPbWtYbktZeHlqYUxWaGxFdmhpK3pTYTRBSzlnNC80SEFYWmMzZ2dlN0JFTWFIeE51RERBWHlYNDVKNWszdUorRWVFSGVGblpoM3pTT0hVQ24xTHU1OG9pa1NyM3JaUlVmcjYvTkRSaGZ0V0d0RmE0WFZFV2NxZW85cElDbTltVFd0MnZyZGNVWEQwQUgxSnJPZmVZellKdmczOFpQNFRjL0JOSUxnRzJYNTJCR2dleERXSm1USzJkU3BubGxWSmxLb2x4SWVqa3haUnRCcFp0VW5sWFNteTZtUnlTaUdwODFmbm5DaGlHVlp5VXdsbG5HbnppR2EzSDJxRlZ6akE4YXhrb1ZGWklWVVZVWUFKV010cXFkenpwSWZUYU82YXFmb2NITjg4dE10UUZOU041V0pWQk40QVBGbGhVVnhSaG9KTklBbkduRWVvOGx2WHB1bkQ4YUJxa2NQZTB6SnRqZEVYeGxDekluejZUTkl0amxpWDhTamxyWm1oalpqbWxSRE5IZmJZK2dxSFhDd3JHWjFtdmROajhuaFNtZDhrNzVVeEFXdWpkTXZHMC84TzlQTlNBSzY5QmU2aXdKUkEwcGxHMkpMVUszNTVGSkJRNkJzYUs3d2JqNmFRTDYwT05nN3RKSFRiTkRRckNFV3hQdE96Zkk0alg4cUI5MER6RHIreHR3OW9tS3pVT3N4b0QwYWNPNHg2dU1UUDhFTjBidzZhTDhYQXR5dnlFOGMyTWx5UEpKYkN1aFlaOHNtWG9QdDd2N21yaUVkWUEycVJ5TWZsa0Z6Mk8vUWkzMy9GQm9mREVYd0p5NzRjaFdNZitUTDBZSy9tNXVxUklMTGFzVFQ2L1hpSzkwOTN6emk0VklXZVBpT3pnSzFkMnRVYUxySEpXc1U5SEF3V1F3azlRbHphQlBIa0FvV0xsU1VlOXFFWjAwRVIxdkxNQzVjVkJJY200ZDBZT0RDanNIeGhJeVZGUmdxZjhZQkdHZnRkNDg0SEhDTUtvNzJZYmVXUWx4UDFLNk9CYUlVaHl2ZWlmdUpselBPSDA5MFJyUjg0ZDJnenVTOHIrcnlrRjdsN0ZMY1VjdWpndXF1RGhXK0k1ajJZL3dybUtGV3ZOdUxPeXYyQnBZVFJKYytoTEkxbGVSQkpMb2prMHdyeVN4NjVYWnFOalAyQ1VlRjJQRjV2WHhmYmxLOHR0MWpiUmNiOTNaK3E5VWlKTGlmYW04dExxMUEwdTZlcGFmV0RwV3VYTDlWUnpnLzJMWWN4QlBxNDRlZ0FCckFiRnA0TndDbk9ROTZOZTlodVpJT1dhQnpFdk5OVXl5dTJpYWJLZHMyUWRuaTBHWFlxb3JiTHhESFozZWpuUjN2MHJreDd6VjZYSEVSOE9BNmhjL2prOTJGTW4yMUFTZlVBM2dTdmlDN2xWRGtHNkZncFRPVVdnWEorQ00zNFhUUU9peTAyM0VPSmZjOVk2YzY1SFNhemV2SGtEci8rVU1maWVxdUJ3ZUVEOHpqdWFSUFhaNnBYTE4rZi8yeTBJcGczS1A4WFlXOWJObXpZQVNiWGVGKy9UNUdUbkYwWjBXOXZQV2JVdXRiQS9jVlpvZU9iMG5LeXlBSW5nZ0RZaEg2Z2s4WDB2T1pJeHpLSklYUTMvdys1Y1Q0QjNYanFubFBtRlhqbUtyYlhEVFhWamZBUjFJaWo5eVFFWnRnenRWK3pqVUdpSzAyWUFJL0lVbUhRVTJMUkQ0M0RHeE1nWGhVZ1lXeE1vS0pnazRIclBUa0dEbGdiT3J2SW51TnlHOXkwWXpMZ2pZdHVPWXpSZ0JnYUhNT0IzZWgyYWUrWTJPdlBFWlBOamNuV1liVGxRNXZNSk1RdzBrNDV6WHN0VE9CcU9wTXlVQWFzQjBPZ0VLaEQ0ZzJlWGZxc2J5dTB2b1VYRUtYV3dSUGdpa0VNWHZhRDlkWm03R2ZvWWljbFJwRXVwM3FQRlQvZGVZODU1S1FJR2Exd1cwVzh3bjFLRk9nWk9TV1EzK3luU29LSVRqeFFzSnhVdGdMU3JJREVXZ2NhdlR1YmF4RVkxNHNaU200K0kxcm9JKy8vcENwL1VLUk1EczZBS2xudkNTL0huZENmbjY0cCtZa21PVDNHb0FhTHdJdnNKVkZGOGlVOHo2STVaTVZNNTZEcjdKMnNsZVVQbnBBYU1JTWlqQWt1cFJiMkpBMmN6RmdRN25LTEs5U0JxeGVnUUtHa2tWUlIwdFJ3RXB2L3E4emlvRDVEcUZkSzRoVW9IeXZPZzJDQUxXYkRtd0F0ejVTZFZPV3QwRTFDRXdnRWwyWWl5L2FRSzR3dHZpbERDNWpJWkdFdnNMR1VNWHpSSURLSVZaSjE1SlllQ1VZdFFMUWl5Q0dDNWdWWUpza3lvclpIdTFyS3U1TVBweDFwRmhwaGFnenNDNkxLZXJFVmNha1pVWXNEWnRHU2pMMk1ncEZ0U3N4b2l5bzNSbzh4Qk1kaWpQSzhPSklzVWxaRkJHdHlGOG9iNkZ5RTQ1SVI3WjNwMU1HTHNWaWRZQ1J0MlNHS1dWNnh4anZvQzB3bHZRUW9tTTIwU3Y3U0x5eVRYeEhHbE1wdU94aUQ4WWJLU2FJaXJBdzJJQnlrVXJ3dW5FV2RESjVRQkpJOGtpbUs4VTVMc1BXYzJsWFNFR3dvWTF6WlQ5b1VTZ3gwVlJFK05XSlBoZG1GbUdFY2k2TnVnaUdZWTRoVkFBR3hNRTFrS3FIRktVakUwQXZOZGVKQTB4NWtOckZlMVNoNDRZYjIzT2lyN092YzBpc0lYQU1UT01udGhGczI0UVRuYWNpcFRNbUNnaWFCRkIyNVEyMlZRajJVVklndlBlL1Y4emtEaDRESFdqdmdxckhCU2RDc3RBMENsOFlvNGxXQVpkVWhFenFGVGpXQ2N4S2owZXNSOUZPZ2wwbWlsWjJBQzE0Nkp1RWhpYnE0ME9MTWNjRlhWVXpUU2VWQUZ4QXRobWhQcFZSekVWRGRlWVdlcWFsM0FSeFBWMVpIS2tpNENuaFUzTWtPUFpwcVdrL2lXWEFkbUszSEZwK0pvTHgydnFlYWFma0JlQ1dxRGdvajVZRFFhSVFoREdBWmhabTJxTnZLWko0b1dvTUltUlVjNnAwUEtLZ1l3S1ZpbEFScmFwd3FFdGd6N1NIODZ1bHllN3BXQzNaUngxeHVxQkxBVVZGT1FzU0oyQllyaVlZZ1ZyL1NsaDRxSi9qd2Q4b1hTL2MrVEdTZlFnZGhaMFNvSVY0aUdvUk1Nd01uc21TcTcrTEowUHlmM0Y2Z3NQOEtzOUhacW8wbnZNWVR2dmdUYnRDcjFEU2Zpd21VNlkwVWs0S1NjQStyS0tBYytSYTFjSk5jd0lCVTJFckxhbUF3VndRKzJDbENNSzNJL0Eyb29WR3BoRFFuTVNoUHpRREJzaGZTb3F3S3ozRlpTeFcwN1EyZXdZbCtvWWd6NDBzb29oMytCaTBycTUyWTRNQVF6LzVZbWxUdnlVV1dZaUpzTncvLzBtVTZTSndLNW5MVm1pOGdKTURDT3l1WkhNZ0xVa0JBdmM3N0pTaGhUL01oV3pndE1zRUpscldpcFhVaTVhSktBRWYwbENNVllYY01YR0JBbnN3cmVKcmtHYVhCaTlJOXNKdTVwQzZad1kycFRTM1lYL05YUnladklISGFWVk94RUUzT1ZBVzdnQ1pUaU9vb2RTUmFOc3NyUWFxWUhDa2dyOHdUZ2J6U1FnRG55bGtPNGdocWNiR1JjMVhCNTBGSnVRMEVpblVCYkRzbm1NOEh0SlZEcXlDdGpPNkpTN1pvK0FzcmNzYjgrREpia0ZLTDgxNFFnb0ErUytIYzFBRmgzYkhGZEppampuZ21sL21jR3MzVHFmT21VRDNkVHJSZ2JucmE0YWlLRXNENkhRQTduZGxFeFhxbmhkdU94RTZIWUlRQjloVDQvZlBVcG9GdXRZQ201c0ZxYnFBZXFYSVducWdUQm9HRHZrcElkV1kxTUVRZEVDQmRGbnA2S2JZTEIyRkd6aGRmTVRveU5UM3NNQXpzMFVzZVVOUlVJakhWcjRoS3pCU1hMRlFlVk45T0xlR1hQZEhEaitwUFFNVGdYTzdmcWMwOE12NFMzc2VCb1dqTlRRdUNaeEFRL0tRM2JGUnFvWlZMNzNERS9sQjQ0R2N0ZytxendCY05WcnhpdVVtWGh6N2JxY04zalpydHRkY1ZQZmJKa20yWkhIL0xkZGxWTjExejNRMnY1ZW5UNjViOThuMnl4aDM5QmhSNDY3MzVKaXBVcEVTeFVwdVZtYVRjWkZOVW1LcFNsVGVtbVdHNmFqUFZPRzZMMldhWm85WTdINXlzQ3UxWWJYYkR3Vzh2ak10dDh0OW04UHJZOUFXQklWQVlISUZFb1RGOWRNL2o4QVFpaVV5aDB1Z0FnOGxpOTVVaGw4Y1hDRVZpaWRTdkJtZ1NIVEpMWWovTXpDR1BSUHhPTjZVRVF0ckMwc3BheE5UdVNScTNlNjVDRVdwamEyZnY0T2prN09McWhva2xPQ0dWdFg4akZjcitlbG5ibDVvQzdoNDB3M0lhclU1djhPTFZkei84OUF2RmNJS2thSWJsZUVHVVpFWFZkTU8wYk1mMS9DQ000aVROOHFLczZxYnRla0RwOW84bitUODhuYzBYeTlWNnM5M3REOGZUK2NMaUVCZ0NoY0VSU0JRYWc4WGhDVVFTbVVLbFpSYlJjM0x6Q3JNS0dFd1dtOFBsOFFWQ2tWZ2lsY2tWU3BWYW85WHBEVVpBWXJIT2g1aHlxYTMrT0JCRkZVMDNUTXQyWEc2UDl4S0NFUlREQ1pLaUdaYmpCVkdTRlZYVGdXRmF0dU42ZmhCR2NaSm1lVkZXZGROck8vUTA4dkI0TXAzTkY4dlZtano3UVJqUnpYYTNQeHhQNTh2MXh1S0VpelRMWlZGV3RZTDdReHZybXJicmg1Zlg3ejkrL29MQzRBZ2tDbzNCNHZBRUlvbE1vZExvRENhTHplSHkrQUtoU0N5Unl1UUtwVXF0MGVyMEJvWkd4aWFtWnVZV2xsYldOcloyOWc2T1RzNHVFSXlnR0U2UUZNMndIQytJa3F5b21tNllsdTI0bmgrRVVaeWtXVjZVVmQyMFhUK01BQ0pNV0k0WFJFbFdWSC9Id1lwTjFPNXd1dHdlcjgvUC94S0NFUlREQ1pLaUdaYmpCVkdTRlZYVGdXRmF0dU42ZmhCR2NaSm1lVkZXZGROck8vUTA4dkI0TXAzTkY4dlZtano3UVJqUnpYYTNQeHhQNTh2MXh1S0VpelRMWlZGV3RZTDdRMk1VMkdqOHpQRHlDdXgwQWlUZS80NEppdUVFU2RFTXk1MDVQSUZJSWxPb05EcURPVE56SzJ1UGYyZGg2UWx6USt1OW5Kd2QyaHd1ank4WVFUd1VpU1ZTbVZ5aFZLazFXcDNld05ESTJNVFV6TnpDMHNyYXh0Yk8zc0hSeVhrY0RZL3JQeGhTMGdScU1vUDVadnNlZFhHTnhSUEpWRHFUemVVTHhWSzVVcTNWRzgwVzJvMWplNVFhMy82QWhNcGk4TURUZ1lOVHJHRm9aT3k5aVNtRGliL2lqODhaeHh6a1dsaGFXVU04R0VINW1FQ0lpOFEyRWxzcFlXY3ZrK093bU1HMldBWm90K2daR0dGcjNHTmx5eE1PVGorYklKRUx4c1dGeVZLa1NwT095ZUpJbG4vUDhoVW9ORkdSWXY4dm1mcU5VMkZKblI2ZkZnelZwcGQxQW1PRmdPS0Vkd1Qyb0J3OEV0VFU0WVZlekZjams5cGdaZ0EwUnlXdnVYTEVLZnRTbVRBaXlkWGIvQ0Y0aVErdjRRL2ZlVWtpbnhtT1RBdUZRVVFTaDRLaVp6Z0pTblNBeFhiRVE2d21DYUlabVdDMjFoTU4xM0J2YUJhcnFRVEpQNXhNWTU4bStlTnJtTmtRS3dUcDkyeVdDeTNWckpIRnBtZEsvbkUwbTQ5a29lYnlwSmpvUllwbytUVXNXWG5MQ05YRFJDOWR6TXFXQjFRZlRwYWM4cVI2ZExBT3FwU3hOcFJhZzNxcEZMdlNIdlhOdFVGR0tNNmpCa1VBL3N1US9OYlZQdDNhNkcvWkFORkJ3RlpwSXpDMENrQjNFSllBRTZ0UVd0UVlrV0dicUlyR1NtRVphVzVtRlZWT1UrMFVCZmZGbE9yUTFWUDNjMm9vZDRickdkVnc2NnlEYnNNMm8zdlNkM0RnRTRaSUhsb3JEbDlOU1U2cG04SlBvRE8zbys1NDdmc1ZEaEhzNk14NWYvY2RtM3VaTUNlaWY0dDVCeWtVVmcyS1h4OHQ1L2NMeGFnNnNaNS9Wb3hVQVVocURRdlZURWxGRkNnSzdxR2pQTHp3dEJmNkw2T1FqUE4yVTluRWhIWDVuSllWVlJ1cVNRMmJqeStYRERjZzVSQlRocjJSaUZOT2tkM2hDTWNyNW9DYUNTOU5GcW9GbEQwaitsWFFHdEtXbWhnSWpodDVoNUUzalBnQUU2VkNkZ0JycEFlZ3duMkpUTXBxMjdQME5rTTRPczNFNTRxWTZQc21JL0JTSUg2T05Jb21aNzFGVDFPdW14bXJsbHRNVFRZSVhCZ0ZneG1CTTVUTWpKRklFQmpDQUFhb21ZRFJTTkV4MUhRVEhYWVExSlNudmp2Q1BicnR5Nm02czl5YVRHV0Z5UDdHY1lKVmlORnpFYWNjTVQwR0RqUnhNeTVISVpLRU9rSlFyTERicElyM3VaN3RJOVV2K05FbkVmdit2MjJZOWQzdng3ZFVDWmFHc0N0TkduZnRtREsyQVM2elZObWV1U2xCWEdkY0VTd0RoQUJoUVIzbVFaQUFFWTBrMkxVclBtSDNkQTUwOFl6dlVrbWNHWFJRVEhEZEpOQWdnZzBpYk8rTTd3eEZwRkNZeW9JejEwYXFqMEgyck8rd0Jkc1htK09hQWNzSjAzVDIwWkM2QVE2b2JRWlJOMnVpVm9Mc1RTT0FhdzNDdHVrYUkxSlRPMU1uQXhBYnl5M3hjdlBvNDA4T0Z6L2pKQW4rVndEZTBMSEhsa2N2dHZnMEJCRkovQU5hc0hERHAyYlZwRi9lTUVVWkl3WlB2Z3FhYnNCbWpUQ2hUSklWVmRPNUlXQ3pUcGd5U1ZaVVRlZUdnTTJjTUtGTWtoVlYwN2toWUxOQm1GQW15WXFxNmR3UUI5ZUlDV1dTcktpYXpnM1lqQWtUeWlSWlVUV2RHd0kyRThLRU1rbFdWRTNuaG9ETmxEQ2hUSklWVmRPNUlXQXpJMHdvazJSRjFYUnVDTmdzTWFGTWtoVlYwN2tCbXpXcXd6L3l5Y2RscExLNStQSW5oUmhEcVpERWpMQkJJamMyU0paS1YvRmtCWkxvcm02ZXVzSzFpR2Y3OG1uRXhhWVk5MmJVK1pVdWFtSVN3bEZxZTNUUE54NUY1TVJEUHRIZWlaVHlWQkZ1TlZYY3pMWDZZcXQwb0JNdGNvRGR0VWtvSUZtQUluZmJLOXhkU3diQzhxNng3WitFZ25DVEluZlJuYm1hbkV4VlpsZTFJdkV0d1dtZWJ5L2RrYWhBbGF6NTlNSkE1NUdhSGx0aWxXZmhEREdSQ1R1N0pENHM4eDBzUWlnSHNjRGhTNDJSQlphRFdCYktLKzhXM1NYTEVSVVp5U1VWckpMRnFTNjRsdzVXK0tDTzVPcnlCdXRCckxEa2RTVFhoWWpDTlZFalZFU3haOW5iWmlzQjRpNmtSOWxwU3lvcFR5MThubWhpcEJuVVFVYnFGa3VoZytjd3ZCOW9mY3JSTDJVYmNFazBCbDdyaHdzNFRRTFVsa1dmYVhxUE55RlZOTFozWFROT09VUHVoSmRvSTJDTW45RWJmZWEvSFhQbllyWXlSbWhKRkZoTnN1ZmN6NmhIYVBPbWl4VTl0SWhMRmhjMHM5L05Ga0lwY2EwYktLZytKcHdqTzlnTUswQXppQTJYZWRNQnpkdXJQMmlMd0xZUGFJZmJPcEs4amJadEk2VEZiZDVHMnhVaW5kL1J3NDdzczk0TmVkRURHWVk3c01FaE9PZ3FHRkxNLytQZTJUMmQzNzU0a3Yyby8rSXg5bVZrWlcxamEyZnY0T2premJzUG43N3FlenRyempubm5IUE9PZWVjeDJpd3NyYXh0Yk4zY0hUeTV0MkhUMThMaEJCQ0NDR0VFRUlJSVFBQUFBQUFBQUFBWWpiODFYSi9BS0ozK2crRDJCczU5bjdmbXgxa254WlhySTFEUDZLc0hVUWlEM0ZQL0xzOXVkck8yWFBPdGtyU0crTERuZTFlOVpqM0Rhc0poNjZlWUpkSTJwd0lEN2lSM2FTc1NkZzFHSEpaTG4yKysvYUpPUzlMRWUraDQwelZmVTdVaXZ2dGZab1RoWDc2UHMyamxtSWhuMXdKSkIwU1k3aWxKQzd2UlU0TzVaTTh3QlBvaER5UEUrakhycldzVE4yUVZMZ3FOS1NpRmlNVmtCN3hrelhuRWVuUXVEdlhNRm5aZWhHTEthYTVJWVlJVkxtbGdyVzY2SEszNEhCUHd4OFZ1Q09jcGdkdE5TRDR1OXlvbDRVZWZSL25uRno5V3BGV2JUcnAvRU03RW5YbCsrWjN2SXFwb2JoTHMxOUZFTStLeitadjRjLy81ZjFuV2ZqbHVZUUNuZ0NmZlhEUHlOOE5hVnU4dzZzdlh5S1pPSUdpaW05TFpOVzFIVlJKemIrdkdZOUJ5ck9ncTMvWUJoRUhwemtpclNpRnRlM09SK0ZiRlQwKzVtaFdYekdKTURqUjVWUGRPU3c4VWo0a1B0R1Z1T1hNS29KTkNrQmhLTnVXQkRjQ1dBY0JSQkRBcG1BRFFBS0lTUUJyR1NKQ0MveDlOcGdXaVFFSVVDQXpBalFCSUFCQVlncGtSb0VBQVpMWUREdThLV1VzWGtqeHVsYWl4N0xKM2tWcVA3Q1JTU1dJc09GWGxjOVBzQW43SVpiZ2hGUW1KeFZLbFpvQzdoNDB3M0lhclU3L1pzeUdSdlR2cE1ZQk80bVhxcXRPeVNMY2p1bkd0WExFYi90NWE4cEVXWEdHTmluZG0yemhidnZKRW52MUpFbVQ3RVdnZU5yZEEzUFRUMFJVOVRpbEppU1I3WUhiUkc0SEN0aUJRTm1TRVNBRVB3cjVMUFVvc2FGbzVaV2pmQVFoZFVJaGhKR3RSVWJCdTV1QXppb09ad2d1c0R5V1pXWWVTU2tYTDZWaCszTUNoa3hZcVE2VVVza0l0WmRTSUlYVWp5a1BSRFVpVUNZMVd6djJKd1daYXNuNmR4TGtLblJUdTdKV3lZNUNMd0JRSnJWWm1SQkpxTGVIdHJFQ1hCTU5HbHRCcFllTFVVSlo3alVtVHFQMmhrYzAybFJ0amhwcVJPL1hpdFQ2cmpySFB1WHNQbkxiTWF2b1NEck5vdk5PTmFhYmFOZElPNFlvd1AxRzBzbks5aS9FSHJVTDdZaWg1TTMrUVBSMUVFWkc3d2REeDZGY05ReHJqaldWeFU4QnJsWVd0bG5KbkM4c2VaMGcvYjVpSk1aLzc0K2pIR0NMU2g4UWY3eERYT3hFKzFtYkgvcWpUdDZDZlJEOG82VHNRRk1HNUI5U1A3T0pQc0hmTXdNQUFBPT0iLCAiZW5jb2RpbmciOiAiYmFzZTY0In0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDY2OTE0LCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiA2NjkxNH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDMzLjMyNywgInJlY2VpdmUiOiAxLjk3OH0sICJwYWdlcmVmIjogInBhZ2VAODZkZGU0OWIwNzcyOGY1MDhjNjgyYWE4NTc0YzNlNDgiLCAic2VydmVySVBBZGRyZXNzIjogIlsyNjAwOjkwMDA6MjIzZTpiYTAwOjEwOjdkMzY6MTcwMDo5M2ExXSIsICJfc2VydmVyUG9ydCI6IDQ0MywgIl9zZWN1cml0eURldGFpbHMiOiB7InByb3RvY29sIjogIlRMUyAxLjMiLCAic3ViamVjdE5hbWUiOiAic3RhdGljLnNuYXBjaGF0LmNvbSIsICJpc3N1ZXIiOiAiRGlnaUNlcnQgVExTIFJTQSBTSEEyNTYgMjAyMCBDQTEiLCAidmFsaWRGcm9tIjogMTY3NTI5NjAwMCwgInZhbGlkVG8iOiAxNzA2ODMxOTk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMjA2WiIsICJ0aW1lIjogNjUuMzg2LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9zdG9yeS5zbmFwY2hhdC5jb20vX25leHQvc3RhdGljL2Nzcy8yZTcxODk1Zjc4MDM1ODJiLmNzcyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogInN0b3J5LnNuYXBjaGF0LmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9fbmV4dC9zdGF0aWMvY3NzLzJlNzE4OTVmNzgwMzU4MmIuY3NzIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAidGV4dC9jc3MsKi8qO3E9MC4xIn0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAic3R5bGUifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogInNhbWUtc2l0ZSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTEzLjAuNTY3Mi41MyBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogNDY2LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhZ2UiLCAidmFsdWUiOiAiMTg5NTcwIn0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDAscHVibGljLGltbXV0YWJsZSJ9LCB7Im5hbWUiOiAiY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAidGV4dC9jc3MifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxMzoyMzowMCBHTVQifSwgeyJuYW1lIjogImV0YWciLCAidmFsdWUiOiAiVy9cImI1YmVmODNiMmEwMjdkMDFkZWI2YTBjYTdlMzA5MTlmXCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxMzoxOToyNSBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBbWF6b25TMyJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOTBiYjEzMGVjY2NiNzE5NTNiMzhhMWMwZTNiNTcyMWEuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJ2ck5yaGZWOWF3ckdKajdoSC1Ka3RIbEZQUzRkTUhLcm8tTVRXR3k3M3M4MHo0M2FFR0xnbEE9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTYwLVAyIn0sIHsibmFtZSI6ICJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIiwgInZhbHVlIjogIkFFUzI1NiJ9LCB7Im5hbWUiOiAieC1jYWNoZSIsICJ2YWx1ZSI6ICJIaXQgZnJvbSBjbG91ZGZyb250In1dLCAiY29udGVudCI6IHsic2l6ZSI6IDk2MDkzLCAibWltZVR5cGUiOiAidGV4dC9jc3MiLCAiY29tcHJlc3Npb24iOiA3NDcxMSwgInRleHQiOiAiLlFVRzQ3Z1ZqcUQyMTZBY3duNzNney0taWNvbi1jb2xvci1hOnZhcigtLXRleHQtY29sb3ItYWN0aXZlKTstLWljb24tY29sb3ItYjp2YXIoLS1ob3Zlci1iZy1jb2xvcik7cG9pbnRlci1ldmVudHM6bm9uZX0uWlZFZEM5VWVfWWhVM3BBWHViMWp7LS1pY29uLWNvbG9yLWE6dmFyKC0tdGV4dC1jb2xvci1hY3RpdmUpOy0taWNvbi1jb2xvci1iOiNiOWMwYzc7cG9pbnRlci1ldmVudHM6bm9uZX0uVEREUGRXWmJPRXhDbU40TXdtc0EsLmFwaUdnd3EyVmU5QlN4YWpOY2hae2ZpbGw6dmFyKC0taWNvbi1jb2xvci1hKX0uRFpFTXBueFp1aGdhNUlsb2xwM2IsLkhjSkFFUnN5UXhDS3BzYmJWOHpGIC5hcGlHZ3dxMlZlOUJTeGFqTmNoWntmaWxsOnZhcigtLWljb24tY29sb3ItYil9LkhjSkFFUnN5UXhDS3BzYmJWOHpGIC5EWkVNcG54WnVoZ2E1SWxvbHAzYntmaWxsOnZhcigtLWljb24tY29sb3ItYSl9LldETVNlNktGRHNwc1pOYnBINjJKe3N0cm9rZTp2YXIoLS1pY29uLWNvbG9yLWEpfS5lXzl2M0dRUzl5bmZ4RkVYcURta3tmaWxsOnZhcigtLWljb24tY29sb3ItYil9LklHTUNLSE5PVDBpZXMxYkx1UEQxe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czo4cHg7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGVhc2V9LklHTUNLSE5PVDBpZXMxYkx1UEQxOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0teWVsbG93LXYxMDApfS5aRGJEZmY0S3hJNU5YbjY5bmJYV3stLXNpemU6NDBweDstLXRyYW5zaXRpb246MC4ycyBlYXNlO2FwcGVhcmFuY2U6bm9uZTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjt3aWR0aDp2YXIoLS1zaXplKTtoZWlnaHQ6dmFyKC0tc2l6ZSk7Ym9yZGVyLXJhZGl1czoxMDAlO2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSk7dHJhbnNpdGlvbjp2YXIoLS10cmFuc2l0aW9uKTt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjB9LlpEYkRmZjRLeEk1TlhuNjluYlhXOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC10ZXJ0aWFyeSl9LnJ0c2g5U3dRMWZjandpU3NhVkZney0tZm9udC1mYW1pbHk6XCJBdmVuaXIgTmV4dFwiLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFJvYm90byxcIlNlZ29lIFVJXCIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIixcIlNlZ29lIFVJIFN5bWJvbFwiOy0tZm9udC1zZWNvbmRhcnk6XCJHcmFwaGlrXCIsSGVsdmV0aWNhLHNhbnMtc2VyaWY7LS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtcGFnZWJnKTstLXRleHQtY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1zZWNvbmRhcnkpOy0tdGV4dC1jb2xvci1hY3RpdmU6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1wcmltYXJ5KTstLWxpbmstaG92ZXItY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1zZWNvbmRhcnkpOy0tY29uc3VtZXItbmF2LWhlaWdodDo3MnB4fS5vSVNsR0RrSVM5S2lqbmdKSWhoaHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1zZWNvbmRhcnkpO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOnN0cmV0Y2g7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtoZWlnaHQ6dmFyKC0tY29uc3VtZXItbmF2LWhlaWdodCk7d2lkdGg6MTAwJX0ub0lTbEdEa0lTOUtpam5nSkloaGgsLm9JU2xHRGtJUzlLaWpuZ0pJaGhoICp7Ym94LXNpemluZzpib3JkZXItYm94fS5nNG94TjJFMnR3NHdBR3E2RkJWS3t3aWR0aDp2YXIoLS1jb25zdW1lci1uYXYtaGVpZ2h0KTtoZWlnaHQ6dmFyKC0tY29uc3VtZXItbmF2LWhlaWdodCk7cGFkZGluZzo4cHh9LkpsYWdrYTJUSXdiOWVWN1VZeG93e2ZsZXgtZ3JvdzoxO2ZsZXgtYmFzaXM6MXB4O2hlaWdodDp2YXIoLS1jb25zdW1lci1uYXYtaGVpZ2h0KX0uaTlNYlh6MTRLcXlieVZwVVJ1MHB7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMDBweCl7LkpsYWdrYTJUSXdiOWVWN1VZeG93e2ZsZXgtYmFzaXM6YXV0b319LndYcjdTSmlHMzRqc09LQVlxRmFEe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpzdHJldGNoO2hlaWdodDp2YXIoLS1jb25zdW1lci1uYXYtaGVpZ2h0KX0uQzl1bDMyNVRBTTBfZ3h6dHBWczB7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zZWNvbmRhcnkpfVtkaXI9bHRyXSAuQzl1bDMyNVRBTTBfZ3h6dHBWczB7cGFkZGluZy1yaWdodDoyNHB4fVtkaXI9cnRsXSAuQzl1bDMyNVRBTTBfZ3h6dHBWczB7cGFkZGluZy1sZWZ0OjI0cHh9W2Rpcj1sdHJdIC5uTklKbmJJSVZlVFBlMW5tZ3VaYnttYXJnaW4tcmlnaHQ6MTJweH1bZGlyPXJ0bF0gLm5OSUpuYklJVmVUUGUxbm1ndVpie21hcmdpbi1sZWZ0OjEycHh9LkR0N3RCNFdDa09nZ1ZRdk5oVEFCe21heC13aWR0aDoxODFweH0ubmpsSjhITVhNbVNaVlFrZVY5aFV7cGFkZGluZzowO21hcmdpbjowIDAgNnB4O2ZvbnQtd2VpZ2h0OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXR9LmFWX0NpdnVWMlNJem1NX1BVVTlHe2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5KTtwYWRkaW5nOjZweCAwO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtsaXN0LXN0eWxlOm5vbmV9Lm5qbEo4SE1YTW1TWlZRa2VWOWhVPi5hVl9DaXZ1VjJTSXptTV9QVVU5Rzo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcntkaXNwbGF5Om5vbmV9LkJjU1ZyQnJsTVJ6ZlFIZE5vXzdBe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3RyYW5zaXRpb246LjNzIGVhc2Utb3V0fS5uamxKOEhNWE1tU1pWUWtlVjloVVtvcGVuXT4uYVZfQ2l2dVYyU0l6bU1fUFVVOUc+LkJjU1ZyQnJsTVJ6ZlFIZE5vXzdBe3RyYW5zZm9ybTpyb3RhdGVYKDE4MGRlZyl9LnhEWXJFNlJRN1lJNk43aEdHQ1gye3BhZGRpbmc6MCAxNXB4fS5nb2NRVTlpcGxPYjEwQm4wSTg1VHtwb3NpdGlvbjpyZWxhdGl2ZX0ucjlWcGpZWUt1eUZXdWlZazZ4enl7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNoYWRvdzowIDZweCAxMnB4IDRweCByZ2JhKDAsMCwwLC4xKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXNkcy13ZWJjLWNvbG9yLWludGVyYWN0aW9uLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIpO3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxNHB4O2JvcmRlci1yYWRpdXM6NnB4O3dpZHRoOjMwMHB4O2NvbG9yOnZhcigtLXRleHQtY29sb3IpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Vjb25kYXJ5KTttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSAxMjBweCk7b3ZlcmZsb3c6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQtY29sb3IpO21hcmdpbi10b3A6NHB4O3Zpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2U7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVkoOTUlKX1bZGlyPWx0cl0gLnI5VnBqWVlLdXlGV3VpWWs2eHp5e3JpZ2h0OjB9W2Rpcj1ydGxdIC5yOVZwallZS3V5Rld1aVlrNnh6eXtsZWZ0OjB9Lm1tRFNDQVI4SjlJS0FTZER0ZzNZe29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7cG9pbnRlci1ldmVudHM6YXV0bzt0cmFuc2Zvcm06bm9uZX0ucm9xTEplTk1Ba0htdEFnZGFrdjgsLnlEU2NySjRoN3h6M2YyVHpPb0hQe2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjB9LnRqZ3NHNjVwWGNRWmJBT3d4NHNJe21hcmdpbi1ib3R0b206NnB4fS5Bb2pfSlhndnc1bDlTV0ZoQlRBYntmb250LXdlaWdodDo3MDB9LmM4blh4cXhmb2c3Z3hWaEh0amRqe3BhZGRpbmc6NnB4IDA7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjQwMDt0ZXh0LWRlY29yYXRpb246bm9uZX1bZGlyPWx0cl0gLmM4blh4cXhmb2c3Z3hWaEh0amRqe3BhZGRpbmctbGVmdDoxMnB4fVtkaXI9cnRsXSAuYzhuWHhxeGZvZzdneFZoSHRqZGp7cGFkZGluZy1yaWdodDoxMnB4fS5jOG5YeHF4Zm9nN2d4VmhIdGpkajpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtYnV0dG9uYmctc2Vjb25kYXJ5KX0uS2ZrWk9sNllCSFZReEhzWUVqd0R7ZGlzcGxheTpmbGV4O2xpc3Qtc3R5bGU6bm9uZTthbGlnbi1pdGVtczpmbGV4LWVuZDtwYWRkaW5nOjA7bWFyZ2luOjA7aGVpZ2h0OjEwMCV9LnN4cjVqVjFXQWpLdVhOSm5vaTJHe2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MCAzcHg7aGVpZ2h0OjEwMCV9W2Rpcj1sdHJdIC5zeHI1alYxV0FqS3VYTkpub2kyRzpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowfVtkaXI9bHRyXSAuc3hyNWpWMVdBakt1WE5Kbm9pMkc6bGFzdC1jaGlsZCxbZGlyPXJ0bF0gLnN4cjVqVjFXQWpLdVhOSm5vaTJHOmZpcnN0LWNoaWxke21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAuc3hyNWpWMVdBakt1WE5Kbm9pMkc6bGFzdC1jaGlsZHttYXJnaW4tbGVmdDowfS5rYWJfUVNqZGhza1l3YTIwclZ2OXstLWhvdmVyLWJnLWNvbG9yOnZhcigtLWJhY2tncm91bmQtY29sb3IpO21hcmdpbjowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5KTtjb2xvcjp2YXIoLS10ZXh0LWNvbG9yKTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy10b3A6MnB4O3RleHQtZGVjb3JhdGlvbjpub25lO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6NzJweDt3aWR0aDo3MnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5rYWJfUVNqZGhza1l3YTIwclZ2OTpob3ZlcnstLWhvdmVyLWJnLWNvbG9yOnZhcigtLWxpbmstaG92ZXItY29sb3IpfS5rYWJfUVNqZGhza1l3YTIwclZ2OTpiZWZvcmV7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlO2NvbnRlbnQ6XCJcIjt0b3A6NHB4O2xlZnQ6MDtyaWdodDowO2JvdHRvbTo0cHg7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob3Zlci1iZy1jb2xvcil9LnZUeV9kdXAyOVMyQkd3NFJPWEFie2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LWNvbG9yLWFjdGl2ZSl9LklnVUE1eDdCUE5xZldxaFJ0Nk5me3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uYU95M2xOVmIzX0Y2NlFrektpc1l7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1ib3R0b206NHB4O2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHRyYW5zcGFyZW50fS5hT3kzbE5WYjNfRjY2UWt6S2lzWTo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnZUeV9kdXAyOVMyQkd3NFJPWEFiIC5hT3kzbE5WYjNfRjY2UWt6S2lzWXtib3JkZXItY29sb3I6Y3VycmVudENvbG9yfS5kX2FXUEhYa1hEUDlnN0ZTbkdJZ3ttYXJnaW4tYm90dG9tOjRweH0ub0owZnJnVjZmM1BIdUQ4bEJTdDB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHh9W2Rpcj1sdHJdIC5vSjBmcmdWNmYzUEh1RDhsQlN0MHtyaWdodDotMTBweH1bZGlyPXJ0bF0gLm9KMGZyZ1Y2ZjNQSHVEOGxCU3Qwe2xlZnQ6LTEwcHh9LlU5YkVkM1dRd2xZXzh2TmNWVjdve2hlaWdodDoxNnB4fVtkaXI9bHRyXSAuVTliRWQzV1F3bFlfOHZOY1ZWN297bWFyZ2luLXJpZ2h0OjEwcHh9W2Rpcj1ydGxdIC5VOWJFZDNXUXdsWV84dk5jVlY3b3ttYXJnaW4tbGVmdDoxMHB4fS5xMGVkc0lmM0RzemhBS1IyazU0WHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjEwMHB4O2JvcmRlcjowO3dpZHRoOmZpdC1jb250ZW50O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE2cHg7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LlBKVXBTNmRORnpWUEU4ODN1SU83e3dpZHRoOjEwMCV9LlRyeDJCb1dzY1R6S3lIVE05ejJpe2JhY2tncm91bmQtY29sb3I6dmFyKC0teWVsbG93LXYxMDApO2NvbG9yOnZhcigtLWJsYWNrLXYxNTApfS5DR1hGMlpnRVh6aDNLU0NzQmJ3d3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrLXYyMDApO2NvbG9yOiNmZmZ9Ll9qWFkyMktpdFRYQVd5eHoxSXhLe2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JheS12MTAwKTtjb2xvcjp2YXIoLS1ibGFjay12MTUwKX0uRVlMYW4zRGsyVUlyaVpBME5YdUV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibHVlLXYyMDApO2NvbG9yOiNmZmZ9LlhzQ2RwRldUZVRBSHowVUE5OHBRe2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1ibGFjay12MTUwKX0uajRWMlJPZnBhUjlqVmFzRFR3c0J7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJ1dHRvbmJnLXByaW1hcnktYWx0KTtjb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1wcmltYXJ5KX0uajRWMlJPZnBhUjlqVmFzRFR3c0Igc3ZnIHBhdGh7c3Ryb2tlOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpO2ZpbGw6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tcHJpbWFyeSl9LmRLbXlZQnE0U2Q2dEdVSjZuckt4e3dpZHRoOjEwMCV9LkFxVU1qdXFEbE1sWmF3SzR0azNqe2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1wcmltYXJ5KTtjb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1wcmltYXJ5KX1bZGlyPWx0cl0gLkFxVU1qdXFEbE1sWmF3SzR0azNqe21hcmdpbi1sZWZ0OjEwcHh9W2Rpcj1ydGxdIC5BcVVNanVxRGxNbFphd0s0dGszanttYXJnaW4tcmlnaHQ6MTBweH0uQXFVTWp1cURsTWxaYXdLNHRrM2ogc3ZnIHBhdGh7c3Ryb2tlOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpO2ZpbGw6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tcHJpbWFyeSl9LmI2MFdDMUtUcWJ0Y3FMWnVJRjlZe2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXNlY29uZGFyeSl9LmI2MFdDMUtUcWJ0Y3FMWnVJRjlZIHN2ZyBwYXRoe3N0cm9rZTp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1zZWNvbmRhcnkpO2ZpbGw6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tc2Vjb25kYXJ5KX0uX2dTT3hxNHRXSE02Z21BUGwwWDR7Zm9udC1zaXplOjM2cHg7bGluZS1oZWlnaHQ6NDZweH0uX2dTT3hxNHRXSE02Z21BUGwwWDQsLndQSjFubjkzemh4V19yRmtKYnJoe2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtsZXR0ZXItc3BhY2luZzowO21hcmdpbjowfS53UEoxbm45M3poeFdfckZrSmJyaHtmb250LXNpemU6MjhweDtsaW5lLWhlaWdodDozNnB4fS56aGpRaUM4SW9jOUxwVmNBREV6bXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIycHg7Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MzBweDtsZXR0ZXItc3BhY2luZzowO21hcmdpbjowfS5DcV8xOTFKX2Vjcm5PSE5fc1ZwX3tmb250LXdlaWdodDo2MDB9LkNxXzE5MUpfZWNybk9ITl9zVnBfLC5qWUw1TmhFQ1Q1TkY0YzJBWU5nentmb250LXNpemU6MThweDtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOjA7bWFyZ2luOjB9LmpZTDVOaEVDVDVORjRjMkFZTmd6e2ZvbnQtd2VpZ2h0OjcwMH0uSDh5VjZhdXVnbGpiVmZFdWprRWF7Zm9udC13ZWlnaHQ6NTAwfS5BdWczSW5VZjBtTVhJcEFfQ2VxaywuSDh5VjZhdXVnbGpiVmZFdWprRWF7Zm9udC1zaXplOjE2cHg7Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MjJweDtsZXR0ZXItc3BhY2luZzowO21hcmdpbjowfS5BdWczSW5VZjBtTVhJcEFfQ2Vxa3tmb250LXdlaWdodDo3MDB9LkF1dGFPMWxGZkRKZ1VvN3ZtV19Ue2ZvbnQtd2VpZ2h0OjUwMH0uQXV0YU8xbEZmREpnVW83dm1XX1QsLkZnZ3NqZUl2YzJZR2U1dUlicTlNe2ZvbnQtc2l6ZToxNHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjE4cHg7bGV0dGVyLXNwYWNpbmc6MDttYXJnaW46MH0uRmdnc2plSXZjMllHZTV1SWJxOU17Zm9udC13ZWlnaHQ6NzAwfS51SkNCTF9QSDNhREoxUmRUNnl6NHtmb250LXdlaWdodDo1MDB9LnVKQ0JMX1BIM2FESjFSZFQ2eXo0LC55MnFrd0lmWjF3S3FOdjJrYmxub3tmb250LXNpemU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDoxNHB4O2xldHRlci1zcGFjaW5nOjA7bWFyZ2luOjB9LnkycWt3SWZaMXdLcU52MmtibG5ve2ZvbnQtd2VpZ2h0OjcwMH0udlkwaGQ1NXVJUVNTMUpBZ2pDdU17Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxMXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjE0cHg7bGV0dGVyLXNwYWNpbmc6LjJweDttYXJnaW46MH0uWnpwR1RxOTVJTDZSOEtQVXRjOEx7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjE0cHg7bGV0dGVyLXNwYWNpbmc6MDttYXJnaW46MH0ubmhNQ1BjRDB0T0VWQ1cwcWtJcXp7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTozNHB4O2xpbmUtaGVpZ2h0OjQwcHh9LmNGZkRaMFBxNnBtQkl0dHJJVjVTe2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjhweDtsaW5lLWhlaWdodDozMnB4fS5sSkpxU3NGc3k0SmhkWUVQd0pwQ3tmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIycHg7bGluZS1oZWlnaHQ6MjhweH0uaUFic2REbTd1SEhpQmlZVFA1M057Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjI0cHh9LldZZ1MwSHk0TnNNT0VRVzczdElne2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoyMHB4fS5UeERxUHBubHk1QnZSejlxUDJvbHtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjBweH0uZzRKendTcktuZlFDbHNaOFlpcFZ7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIwcHh9Lnc2X0kzZTN3a3NWWHNnMkVIeVRQe2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4fS5MeWRrdnd6eUVxNk4wUTE3RW9ZN3tmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjBweH0ueDI5M2NOMFFvVVNmdkk5YmFQX017Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE2cHh9LksxZTlwM2VfSlp0cHZWZmd4UldIe2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4fS5fUzFYVzlIWVFHNUhBRWV4WkdpQXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LlBUR3J3N2JXZThoTVdKYmxUMWppe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uaUNkZDBsb3hUV0NjVThWMG5IUEh7ZmxleC1kaXJlY3Rpb246cm93fS5jWnJQaFVFZEpKVVg4WUlOOUk1entiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjcpO2NvbG9yOiNmZmY7cGFkZGluZzo2cHggMTJweDtoZWlnaHQ6Zml0LWNvbnRlbnQ7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEzcHg7d2lkdGg6bWF4LWNvbnRlbnR9W2Rpcj1sdHJdIC5PX2czRXVoaENpTUxaNkt5dHkzd3ttYXJnaW4tbGVmdDotMTIwcHh9W2Rpcj1ydGxdIC5PX2czRXVoaENpTUxaNkt5dHkzd3ttYXJnaW4tcmlnaHQ6LTEyMHB4fS5GWnhaNGR2SkZnbWRkUThTMjhEQXtib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudH1bZGlyPWx0cl0gLkZaeFo0ZHZKRmdtZGRROFMyOERBe2JvcmRlci1sZWZ0OjhweCBzb2xpZCByZ2JhKDAsMCwwLC43KX1bZGlyPXJ0bF0gLkZaeFo0ZHZKRmdtZGRROFMyOERBe2JvcmRlci1yaWdodDo4cHggc29saWQgcmdiYSgwLDAsMCwuNyl9LkpQQ19xNVFLVGhia1YwZmRwQTlFe2JvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6MTBweCBzb2xpZCByZ2JhKDAsMCwwLC43KX0uS0xTeEpBemdaZjRyWEJJbldjTkF7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXJ9LnIxZXN6QUJJODhlaFA4SGdSZUVne3Bvc2l0aW9uOmFic29sdXRlfVtkaXI9bHRyXSAucjFlc3pBQkk4OGVoUDhIZ1JlRWd7bWFyZ2luLXJpZ2h0OjhweDtyaWdodDozNXB4fVtkaXI9cnRsXSAucjFlc3pBQkk4OGVoUDhIZ1JlRWd7bWFyZ2luLWxlZnQ6OHB4O2xlZnQ6MzVweH0udTlyS09JTWlTd0NWTlZLRkRWazF7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KTtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7Ym94LXNoYWRvdzpyZ2JhKDAsMCwwLC4yNSk7dHJhbnNpdGlvbjouM3MgZWFzZS1vdXQ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS51OXJLT0lNaVN3Q1ZOVktGRFZrMTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC40NSk7dHJhbnNpdGlvbjouMXMgZWFzZX0uQjdlSmlTV21pdXhDWGxYY0E4a2h7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0ucjRVSXdZeVh6VWo1dVA4UnZpR1F7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweH0udVhsc3VSdFVnQ1pPdXM1bXJuWGp7aGVpZ2h0OjUwcHg7d2lkdGg6NTBweH0uSWM5UW13cnozRXVxUGZDSVEwVnp7aGVpZ2h0OjYwcHg7d2lkdGg6NjBweH0uTlBkNkJpV2hPSFlXMzBqVVBaX1B7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjEzcHg7dHJhbnNpdGlvbjouMjVzO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0uTlBkNkJpV2hPSFlXMzBqVVBaX1A6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmF5LXY1MCl9LlpsMmo1UFNSbWs1TlZoUmRyd1Zve21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH1bZGlyPWx0cl0gLlpsMmo1UFNSbWs1TlZoUmRyd1Zve3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5abDJqNVBTUm1rNU5WaFJkcndWb3t0ZXh0LWFsaWduOmxlZnR9LlpsMmo1UFNSbWs1TlZoUmRyd1ZvIHN2ZyBwYXRoe2ZpbGw6I2ZmZn0uSHlBaXlobGo3YVhueloydHU2cE17bWFyZ2luLWJvdHRvbTo4cHg7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4O3otaW5kZXg6NX1bZGlyPWx0cl0gLkh5QWl5aGxqN2FYbnpaMnR1NnBNe3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5IeUFpeWhsajdhWG56WjJ0dTZwTXt0ZXh0LWFsaWduOmxlZnR9Llk0aDZPQlBrek1jcFJLVVVLOWNae3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmluaGVyaXQ7cGFkZGluZzoxNXB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9Llk0aDZPQlBrek1jcFJLVVVLOWNaIHN2Z3tmaWxsOiNmZmZ9LkpUMW1la0w4aF9yaHV2WUtBblZRLC5nTm5URWFUWFVmelZVcjlfMkp0d3toZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uSlQxbWVrTDhoX3JodXZZS0FuVlF7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudH1bZGlyPWx0cl0gLkpUMW1la0w4aF9yaHV2WUtBblZRe2xlZnQ6MH1bZGlyPXJ0bF0gLkpUMW1la0w4aF9yaHV2WUtBblZRe3JpZ2h0OjB9LkoyclBicVhBUkJuSkZyam5YZkhEe3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmV4Z0JtUWJTdGFHMWJiQ0RwN3Zre21hcmdpbi1ib3R0b206NnB4O21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH1bZGlyPWx0cl0gLmV4Z0JtUWJTdGFHMWJiQ0RwN3Zre3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5leGdCbVFiU3RhRzFiYkNEcDd2a3t0ZXh0LWFsaWduOmxlZnR9LmV4Z0JtUWJTdGFHMWJiQ0RwN3ZrIHN2Z3tmaWxsOiNmZmZ9LmV4Z0JtUWJTdGFHMWJiQ0RwN3ZrIHN2ZyAqe2ZpbGw6I2ZmZjtzdHJva2U6I2ZmZn0udUlycUluZ0I4MFFka24zSl9TMnd7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcn0uWExTQ2pmZVFvdEpZb0ltdUxCdnd7cGFkZGluZzo4cHggMTJweCAwO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ucWp2NDlDc3l4d3lpcGl0UkFtS0V7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctYm90dG9tOjEwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWdyYXktdjEwMCk7bWluLWhlaWdodDo4NHB4fS5wN243MnRjNW1waTI4UmVGV0RhN3t3aWR0aDo1NHB4O2JvcmRlci1zdHlsZTpzb2xpZDtoZWlnaHQ6NTRweDtib3JkZXItcmFkaXVzOjE3MHB4O2JvcmRlci1jb2xvcjp2YXIoLS1ncmF5LXYxNTApfS51UUN5eTRxZXVmS1EzNnJOMEpPQ3tqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59W2Rpcj1sdHJdIC51UUN5eTRxZXVmS1EzNnJOMEpPQ3twYWRkaW5nLWxlZnQ6MTJweH1bZGlyPXJ0bF0gLnVRQ3l5NHFldWZLUTM2ck4wSk9De3BhZGRpbmctcmlnaHQ6MTJweH0udGNjYmdMMF92U2RCWWxQMUlZX0F7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LlA1NE40YWwwOHlWOVk0NGFzcnp2e2NvbG9yOnZhcigtLWJsYWNrLXY1MCl9W2Rpcj1sdHJdIC5sMGl5VEtQb1dTWDR6VzJDZ2dfbnttYXJnaW4tbGVmdDphdXRvfVtkaXI9cnRsXSAubDBpeVRLUG9XU1g0elcyQ2dnX257bWFyZ2luLXJpZ2h0OmF1dG99LnA5WGhPdjI0RG5ZN3BCNWE5cGVWe21hcmdpbi10b3A6MTJweH0uVllySWJlZjdySUhhRkdrRkNwRGd7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LlZZckliZWY3cklIYUZHa0ZDcERnIHN2Z3thbmltYXRpb246elBuWmlJMjFfb3FPWWNoeXhCSEsgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHpQblppSTIxX29xT1ljaHl4QkhLezAle3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9NTAle3RyYW5zZm9ybTpzY2FsZSgxLjIpO29wYWNpdHk6Ljh9dG97dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19LnRBRndTcEdRRUl1QzRFaFZnc1JfLC50QUZ3U3BHUUVJdUM0RWhWZ3NSXyBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uTVFIbGRkNVJ0VlhjYzBKZDU5OTh7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5CQnVkMng2V2RNZ2djTEpCRmtlb3tmbGV4LXdyYXA6d3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjJ9LnVGc0R2dlFyS19hOXNSdEtvM0Uye3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiNmZmZ9LnVGc0R2dlFyS19hOXNSdEtvM0UyOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgI2ZmZn0ueVRsckFyU0prWkVEVG9WaU1SZml7ZGlzcGxheTpmbGV4O2NvbG9yOiNmZmY7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbjowO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmowQTJtU3E5UUtMWVhkRUxVM09Ze21hcmdpbi1ib3R0b206MDttYXJnaW4tdG9wOjZweDttYXgtd2lkdGg6OTBweH1bZGlyPWx0cl0gLmowQTJtU3E5UUtMWVhkRUxVM09Ze21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjRweH1bZGlyPXJ0bF0gLmowQTJtU3E5UUtMWVhkRUxVM09Ze21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjRweH0uR01TckptY0JpSzJiWGZPSmFDNld7Y29sb3I6I2ZmZn0uaGY2ejhzNVl1Vl9MNEVzQk90YjZ7bWFyZ2luLXRvcDowO3RvcDoxOHB4O21hcmdpbi1ib3R0b206NnB4O21heC13aWR0aDo5MHB4fVtkaXI9bHRyXSAuaGY2ejhzNVl1Vl9MNEVzQk90YjZ7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAuaGY2ejhzNVl1Vl9MNEVzQk90YjZ7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6OHB4fS5UUmpLclJEdUlPUWxhMTRSVFF0M3ttYXJnaW4tYm90dG9tOjZweH0udThtSHZlQkV5VUdrUGRxR3lpVU17Y29sb3I6dmFyKC0tZ3JheS12MjAwKX0uWEN4U2hPMjQzRzVzdllVUmY1Qmd7ZGlzcGxheTpmbGV4O2JhY2tncm91bmQtY29sb3I6cmdiYSgxOCwxOSwyMCwuNSk7aGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo0cHg7YWxpZ24taXRlbXM6Y2VudGVyfVtkaXI9bHRyXSAuWEN4U2hPMjQzRzVzdllVUmY1Qmd7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLlhDeFNoTzI0M0c1c3ZZVVJmNUJne21hcmdpbi1sZWZ0OjhweH0uY2dkdDFBX2JxWW81WWFGRWJ2RHd7d2lkdGg6MThweDtoZWlnaHQ6MThweDttYXJnaW4tdG9wOjExcHg7bWFyZ2luLWJvdHRvbToxMXB4fVtkaXI9bHRyXSAuY2dkdDFBX2JxWW81WWFGRWJ2RHd7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5jZ2R0MUFfYnFZbzVZYUZFYnZEd3ttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0OjhweH0uY2dkdDFBX2JxWW81WWFGRWJ2RHcgaW1ne2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItcmFkaXVzOjUwcHg7Ym9yZGVyLWNvbG9yOnZhcigtLWdyYXktdjE1MCk7Ym9yZGVyLXdpZHRoOjJweH0ubnk1dkZjdXV5OElJRzg0ZVRyUXh7cGFkZGluZzozcHh9LmpRODFyVThWMzczNkhPR0dWOGFGLC5rYmM5TmVDVEpBX3dyeEhxeHVpaXtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5rYmM5TmVDVEpBX3dyeEhxeHVpaXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15ZWxsb3ctdjEwMCl9QGtleWZyYW1lcyBnUElLZ3Rsd3VYNU9vQkRMRUFxNXswJXt0cmFuc2Zvcm06c2NhbGUoMCk7b3BhY2l0eTowfXRve3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgUDRLZWJDd3RsRTVuZkpYcFJDcF97MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19LkZZWHFUVWdrakdmZzlfR010T2N2e3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC40KTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YW5pbWF0aW9uOlA0S2ViQ3d0bEU1bmZKWHBSQ3BfIC4xcyBlYXNlLWluLW91dDstd2Via2l0LXRyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZDt6LWluZGV4OjEwfVtkaXI9bHRyXSAuRllYcVRVZ2tqR2ZnOV9HTXRPY3Z7bGVmdDowfVtkaXI9cnRsXSAuRllYcVRVZ2tqR2ZnOV9HTXRPY3Z7cmlnaHQ6MH0udWdvd1ZSczluOXd3UDBLWHpvZE17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7cGFkZGluZzoyMHB4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1wYWdlYmcpO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0udWdvd1ZSczluOXd3UDBLWHpvZE0+YnV0dG9ue3dpZHRoOjEwMCU7bWFyZ2luOjAgNXB4O3BhZGRpbmc6MTJweH0uY3pCYTVSZFlNazRpcmdHcEp3UHV7d2lkdGg6NDUwcHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLXBhZ2ViZyk7Y29sb3I6dmFyKC0tY29udGVudC1wcmltYXJ5LWNvbG9yKTtib3JkZXItcmFkaXVzOjIwcHg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoyNHB4IDA7YW5pbWF0aW9uOmdQSUtndGx3dVg1T29CRExFQXE1IC40cyBlYXNlLWluLW91dDttYXJnaW46MTBweH1bZGlyPWx0cl0gLmpuejJOTTAwTmNfNlJ0cWZYeDlfe3BhZGRpbmctbGVmdDoyNHB4fVtkaXI9cnRsXSAuam56Mk5NMDBOY182UnRxZlh4OV97cGFkZGluZy1yaWdodDoyNHB4fS5qbnoyTk0wME5jXzZSdHFmWHg5XyBzdmcgcGF0aHtmaWxsOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSl9Lnp1bXB0Yjl4S0R3UFZaejhHaDlke292ZXJmbG93OmF1dG87bWFyZ2luOjE0cHggMjRweCAyNHB4O3BhZGRpbmctYm90dG9tOjQwcHh9Lks2b0JnSmJ6cUxSaXlrbXZzeUM3e2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5Pa0JYZkVjQ2FRMjFuWjF2Z19Hb3tkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOmhzbGEoMCwwJSwxMDAlLC4xKTtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjEycHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjouMjVzIGVhc2U7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5Pa0JYZkVjQ2FRMjFuWjF2Z19HbyBzdmd7ZmlsbDojZmZmO2Rpc3BsYXk6YmxvY2t9LmV1c3I3UHp3UWVCTFVBWXlTb1lUIHN2Z3tmaWxsOmhzbGEoMCwwJSwxMDAlLC4zKX0uVlRkcVVoazQyMnQ0al9SUU5DM1F7Ym9yZGVyLXJhZGl1czo0MHB4IDQwcHggMCAwO3BhZGRpbmctdG9wOjE0cHg7cGFkZGluZy1ib3R0b206MTBweH0uaXdLdU03YjF0VU9pT1FUQjU2WTB7bWFyZ2luLXRvcDoxcHg7Ym9yZGVyLXJhZGl1czowIDAgNDBweCA0MHB4O3BhZGRpbmctYm90dG9tOjE0cHg7cGFkZGluZy10b3A6MTBweH0uTkV0VEsyaXN2TzJMWDh3emdMREN7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LkdvTUhSQ0E2cHFtbnFfR1Z4ek00e292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXllbGxvdy12MTAwKX0ubkVMdkFydHZsX3hINjBCUVBRVVZ7ei1pbmRleDoxfS5OMkt1aXBRcFpEMFE1eUtqYkFyd3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3NnZtaW59W2Rpcj1sdHJdIC5OMkt1aXBRcFpEMFE1eUtqYkFyd3tsZWZ0OjB9W2Rpcj1ydGxdIC5OMkt1aXBRcFpEMFE1eUtqYkFyd3tyaWdodDowfS5iMHBaN2FBd19KQXpod0ZWTHpTMnt3aWR0aDo5NSU7aGVpZ2h0Ojk3JTtib3JkZXItcmFkaXVzOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1bZGlyPWx0cl0gLmIwcFo3YUF3X0pBemh3RlZMelMye2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX1bZGlyPXJ0bF0gLmIwcFo3YUF3X0pBemh3RlZMelMye3JpZ2h0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSwtNTAlKX0uSW5oek53OG9vSDdSQmJMaENtN0R7b3ZlcmZsb3c6c2Nyb2xsO2JhY2tncm91bmQ6aHNsYSgwLDAlLDEwMCUsLjk1KTtmbGV4LWdyb3c6MTtwYWRkaW5nOjEycHggMjZweH0uenpzTDRuUkFFQ0ZiUHd5ZWw2bkJ7bWFyZ2luLWJvdHRvbToxOHB4O21hcmdpbi10b3A6MTJweDtjb2xvcjp2YXIoLS1ibGFjay12MTUwKX0uYV8ydEdlaGFwcEtJYTJDSEdhemt7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7YmFja2dyb3VuZDojZmZmO29wYWNpdHk6MTtoZWlnaHQ6NTZweDtwYWRkaW5nOjEycHh9W2Rpcj1sdHJdIC5RNVV4YjRFa013YjRRWHJwNV9GMHttYXJnaW4tbGVmdDo4cHh9W2Rpcj1ydGxdIC5RNVV4YjRFa013YjRRWHJwNV9GMHttYXJnaW4tcmlnaHQ6OHB4fS5wTUhkRktyWGM1Y0NISVJUOEt0MntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi10b3A6MTJweH1bZGlyPWx0cl0gLnZfeFRPekJ1TU5kRHhvcjd6amM5e3RleHQtYWxpZ246bGVmdH1bZGlyPXJ0bF0gLnZfeFRPekJ1TU5kRHhvcjd6amM5e3RleHQtYWxpZ246cmlnaHR9Lm43VGhyVEtqT21NVkhmYTRCUzFULC5uTUxsUGc3aThMbGI2bkV6bE1OWnttYXJnaW4tYm90dG9tOjEycHh9Lm43VGhyVEtqT21NVkhmYTRCUzFUIHN2ZyBwYXRoe2ZpbGw6I2ZmZn0uWjU3U1hlckZJbDVJbHVvT2liM1F7Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LmR6SVljWW5rZnpqcjNvM2xTcTNne21hcmdpbi10b3A6MTJweDttYXJnaW4tYm90dG9tOjEwcHh9Lml4dEx1VTFLUWFCTkNzSlJydWN2e3dpZHRoOjEwMCU7bWluLWhlaWdodDoxNTBweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXktdjIwMCk7YmFja2dyb3VuZDp2YXIoLS1ncmF5LXYxMDApO3BhZGRpbmc6OHB4IDEycHg7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2V9Lml4dEx1VTFLUWFCTkNzSlJydWN2OmZvY3Vze291dGxpbmU6bm9uZTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJsYWNrLXY1MCl9LlBoX2FFazVOdzk3UEFvcGRiVlN3e3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9LlBoX2FFazVOdzk3UEFvcGRiVlN3OnZpc2l0ZWR7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7Y29sb3I6aW5oZXJpdH0uZ3ZWRFB4dUtoV3VwU3JiOTd0UW17Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6MjBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1bZGlyPWx0cl0gLkpMdkVHSnNVbEVLN2Y1YzltMG03e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDE4LDE5LDIwLDApLHJnYmEoMTgsMTksMjAsLjk1KSA2My4zOSUpfVtkaXI9cnRsXSAuSkx2RUdKc1VsRUs3ZjVjOW0wbTd7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoLTE4MGRlZyxyZ2JhKDE4LDE5LDIwLDApLHJnYmEoMTgsMTksMjAsLjk1KSA2My4zOSUpfS5Zcl9NVnpnUGRWbzNITTFiSTNRWntwYWRkaW5nOjhweDtib3JkZXItcmFkaXVzOjAgMCAyMHB4IDIwcHh9LkFBX0NsajJuNGRucEU5YVBWQmRBe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiNmZmZ9LkhCSWtwRVU1djdlc0tPbU84d3lie2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tdG9wOjhweH0udXVwQmFvOGdyM2F5cGZWQTYxV257Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweDtib3JkZXI6NHB4IHNvbGlkICNmZmY7Ym94LXNpemluZzpib3JkZXItYm94fVtkaXI9bHRyXSAudXVwQmFvOGdyM2F5cGZWQTYxV257bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLnV1cEJhbzhncjNheXBmVkE2MVdue21hcmdpbi1sZWZ0OjhweH0uSG42YjZhT2xBb21lZkJHWFpsbXZ7YmFja2dyb3VuZC1zaXplOmNvdmVyO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmVlcVNRZkRMUVRnT1dKcmdOc0tVe21hcmdpbi1ib3R0b206OHB4fS5WaGF3eTRNZ3dGR2JTbTRJcTIzVXtwYWRkaW5nOjFweDt0cmFuc2l0aW9uOi4yNXMgZWFzZTtib3JkZXItcmFkaXVzOjUwJX0ucEpuMTBFY1ZfVHJjbnVEMDBkZ0p7Ym9yZGVyOjJweCBzb2xpZCAjZmZmfS5rUXhmeWtmMjFXQ2hZOHRPdWRPX3tib3JkZXI6MnB4IHNvbGlkIHZhcigtLWNvbnRlbnQtc2Vjb25kYXJ5LWNvbG9yKX0uWkpKcmhyUTZZRUlwSzB2amtIb3h7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS15ZWxsb3ctdjEwMCl9LlFYbm41SDFxa0lqTHhEdzNHYTQwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9W2Rpcj1sdHJdIC5xckFrTjVxU0RWS0ZMdTJvUVNod3ttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAucXJBa041cVNEVktGTHUyb1FTaHd7bWFyZ2luLWxlZnQ6OHB4fS5tTEw5TER0WV9zUXg1d01vY0pGQntjb2xvcjojZmZmfS53d0NzTUY3SDBCclc1bksyYlVmQnttYXJnaW4tdG9wOjJweDtsaW5lLWhlaWdodDoxNnB4fVtkaXI9bHRyXSAud3dDc01GN0gwQnJXNW5LMmJVZkJ7cGFkZGluZy1sZWZ0OjRweH1bZGlyPXJ0bF0gLnd3Q3NNRjdIMEJyVzVuSzJiVWZCe3BhZGRpbmctcmlnaHQ6NHB4fS5jMVduZXIyQlhwT1JmYUg5SkFvbntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxOHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS15ZWxsb3ctdjEwMCl9Lnl2bVl6cU5ZTnBVWTA2Y05KbG1se21hcmdpbi10b3A6OHB4fS5DMFZBY09IN0c4cXJmTTNlUmw2OXtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6LjJweH0uZXR5Nnd6dzc3WlNzZFlHTGpMVUd7bWFyZ2luOjAgMTJweCA0cHh9LkVvUVExR0tLZmZzdnBTUW9zd0Rke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LkdZeHF4eWZ0UEJGeDBiaE1SVzFSe2NvbG9yOiNmZmY7ZmxleC13cmFwOndyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtbGluZS1jbGFtcDoyfS55ejRpOXBMMGptcHdTUWdaandiOXtjb2xvcjp2YXIoLS1jb250ZW50LXNlY29uZGFyeS1jb2xvcil9LkNCWk9SYkZWcDJ1cHJRMnp2MEdze21hcmdpbi10b3A6MXB4fVtkaXI9bHRyXSAuQ0JaT1JiRlZwMnVwclEyenYwR3N7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6NXB4fVtkaXI9cnRsXSAuQ0JaT1JiRlZwMnVwclEyenYwR3N7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWxlZnQ6NXB4fS5ja1lYTkZsUUthWUl3ZmxBMElCN3t0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjp2YXIoLS15ZWxsb3ctdjEwMCl9Llhib1c3bktnMVEybWdiZGh1SlZxe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjEycHggMjBweDtjb2xvcjojZmZmfS5SZEdGZFdDSVZQdGpaUF9NVjFUTnttYXJnaW4tdG9wOjhweH0uSVVzN01CNXZrM1ZVZkN5aHZ6ODZ7bGluZS1oZWlnaHQ6MTZweDtwb3NpdGlvbjphYnNvbHV0ZX1bZGlyPWx0cl0gLklVczdNQjV2azNWVWZDeWh2ejg2e3BhZGRpbmctbGVmdDo0cHh9W2Rpcj1ydGxdIC5JVXM3TUI1dmszVlVmQ3lodno4NntwYWRkaW5nLXJpZ2h0OjRweH0ubEtMNlJjTGNNYWVvT3FhSXVYbEJ7d2lkdGg6MzgwcHg7aGVpZ2h0OjM4MHB4fS5MUXBac3ZEMUlWWFlUbFNnQmVCb3t3aWR0aDoyNDBweDtoZWlnaHQ6MjQwcHh9LlBPWTNOd3BIREFRUW1EZGVqQXVWe3dpZHRoOjE0N3B4O2hlaWdodDoxNDdweH0uZ2hpWllNeFFlcGJ1Z2x5T1ZSdWt7d2lkdGg6MTIwcHg7aGVpZ2h0OjEyMHB4fS5JWGc0ME8xMFZ6SjF5TzBoMEF3a3t3aWR0aDo4M3B4O2hlaWdodDo4M3B4fS5CUXF5RVIwWmJRN293cTEyQ0d2eCwuZVBqMlhiSGlUZ2g1Z3VrdFhJWTB7d2lkdGg6NjdweDtoZWlnaHQ6NjdweH0uVTJjV1BXTFB2Z3BtUGpoUnFNM2N7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uQ29PYnhBdjdRYlZhQzdnUFVnWk97ZGlzcGxheTpmbGV4O21hcmdpbi10b3A6MTBweH0uR1d6NVE2UXhkWEFkaXo3N2k2dml7ZmxleDoxIDEgMDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LXNlY29uZGFyeSl9LkdXejVRNlF4ZFhBZGl6NzdpNnZpPmJ1dHRvbnthcHBlYXJhbmNlOm5vbmU7Zm9udC1mYW1pbHk6QXZlbmlyIE5leHQsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsUm9ib3RvLFNlZ29lIFVJLEhlbHZldGljYTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3BhZGRpbmc6MTBweCAwO2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHRyYW5zcGFyZW50O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMDtjdXJzb3I6aW5oZXJpdDtjb2xvcjppbmhlcml0fS5MN21vUVc3Z2JVNGZQQXNkWmh6UXtib3JkZXItY29sb3I6Y3VycmVudENvbG9yO2NvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSl9LlZFaWFIbnc2STRfaExZV0hJelh6e2NvbG9yOnZhcigtLXllbGxvdy12MTAwKX0uUk8ydG1KY3J0b3ZoYWZKT2dGY3Z7Ym9yZGVyLWNvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSk7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ud25WQzdTRDZtbTNpemxiWk1PS2R7c2Nyb2xsLW1hcmdpbjo5MHB4fS51MTlHRzZFeV90UjJNTmNhbVNWWntib3JkZXItcmFkaXVzOjI0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7YXBwZWFyYW5jZTpub25lO2N1cnNvcjpwb2ludGVyfS5HbW04bUt3T08zaWZHTXJIcHJLTntwYWRkaW5nOjA7YmFja2dyb3VuZDppbmhlcml0fS5kdjYxcWZLNzhjdmdoVFQ5bTNvT3tiYWNrZ3JvdW5kOnZhcigtLXllbGxvdy12MTAwKTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5kdjYxcWZLNzhjdmdoVFQ5bTNvTzpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1MiwwLC41KTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjFzIGVhc2V9LkdtbThtS3dPTzNpZkdNckhwcktOOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1jYXJkYmcpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZX0uY2NxVEllb3ZXSG14OXFxeHZ3a0p7cGFkZGluZzo4cHggMjBweDtib3JkZXItcmFkaXVzOmluaGVyaXR9Lm5SSnRJYjFyVERGX19IakJGbGJoe2JvcmRlcjoxcHggc29saWQgdmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1zZWNvbmRhcnkpfS5QZ3ZnQ2lrMEYzSVMyQlU0WkdKMHtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSl9LmRBZFI0aUlXNkxTZHhiYjNjME1Ke2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9LldIb3R2RW5DWENVWngwOEs2c0pwe2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MTZweDtmb250LXNpemU6MTRweDt3aGl0ZS1zcGFjZTpub3dyYXB9LkRRbXptTzdsT0ZNV2xDcTV0N2Q3e3Bvc2l0aW9uOmZpeGVkO3RvcDotMTAwcHg7bGVmdDoxMHB4O3JpZ2h0OjEwcHg7cGFkZGluZzozcHg7Ym9yZGVyLXJhZGl1czo1cHg7b3BhY2l0eTowO2NvbG9yOnZhcigtLXdoaXRlKTt0ZXh0LWFsaWduOmNlbnRlcjthbmltYXRpb246YTRLMXpqWk1DblVkOUJwWHBrOXIgNHMgZWFzZS1pbi1vdXR9LkUyajVpZnpYRkVkVk9KdXNFSGt5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tcmVkLXYxMDApfS54VUdxN0dNX1B6cTFYR3pUbERueXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXllbGxvdy12MTAwKX0uaHh5R0ZCWXJlSEVtV083cTRVcER7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibHVlLXYxNTApfUBrZXlmcmFtZXMgYTRLMXpqWk1DblVkOUJwWHBrOXJ7MTAle29wYWNpdHk6MTt0b3A6dmFyKC0tY29uc3VtZXItbmF2LWhlaWdodCl9OTAle29wYWNpdHk6MTt0b3A6dmFyKC0tY29uc3VtZXItbmF2LWhlaWdodCl9fS5Gbm9vS0FYOFhCSkJFZ2NsZlM1dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTJweDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5NeWNQdUhqdk5qOGRFN1B4U2YxZ3tvdmVyZmxvdzpoaWRkZW47b2JqZWN0LWZpdDpjb3Zlcjtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDZweCAxMnB4IDRweCByZ2JhKDAsMCwwLC4xKTt3aWR0aDoxMDAlfS54U3FEZ1BGOHhaTzMwS2J0UFZRbXtvYmplY3QtZml0OmNvdmVyO3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5WZXVrU2VTVkZTZHpLSnNmbFdhSXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0uTzVuWnljREw2UGpjQmJRT2Vtd08gc3ZnIHBhdGg6Zmlyc3QtY2hpbGR7c3Ryb2tlOnZhcigtLWdyYXktdjEwMCk7ZmlsbDpub25lfS5PNW5aeWNETDZQamNCYlFPZW13TyBzdmcgcGF0aDpub3QoZmlyc3QtY2hpbGQpe3N0cm9rZTp2YXIoLS1ncmF5LXYxMDApO2ZpbGw6dmFyKC0tZ3JheS12MTAwKX1bZGF0YS10aGVtZT1kYXJrXSAuTzVuWnljREw2UGpjQmJRT2Vtd08gc3ZnIHBhdGg6Zmlyc3QtY2hpbGR7c3Ryb2tlOnZhcigtLWJsYWNrLXY1MCk7ZmlsbDpub25lfS5PNW5aeWNETDZQamNCYlFPZW13TyBzdmcgcGF0aDpub3QoZmlyc3QtY2hpbGQpe3N0cm9rZTp2YXIoLS1ibGFjay12NTApO2ZpbGw6dmFyKC0tYmxhY2stdjUwKX0uTzF1QVBWNUFlT1doRHBmS3daV1F7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOmluaGVyaXR9W2RhdGEtdGhlbWU9ZGFya10gLk8xdUFQVjVBZU9XaERwZkt3WldRe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY3ctbGlnaHQtc2xhdGUtZ3JheSl9Ll9kWFJHbm9vM3pJclhkbG1PT2R3e3RleHQtZGVjb3JhdGlvbjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmJsb2NrfS52NW9BaDhhZ3h5dTJBbUN5RDRKQntkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LktZWkRFNFRzUlhSWmZNRVdsSjVUe2NvbG9yOnZhcigtLWNvbnRlbnQtcHJpbWFyeS1jb2xvcik7d2lkdGg6MTAwJX0uUklmZHdyZkN5bEw1QVpERjhtMVl7Y29sb3I6dmFyKC0tY29udGVudC1zZWNvbmRhcnktY29sb3IpfS5SSWZkd3JmQ3lsTDVBWkRGOG0xWSBzdmd7bWFyZ2luLXRvcDozcHg7bWFyZ2luLWJvdHRvbTotM3B4fS5oNUtDUlpremthcUxob1F4OEZteXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDttYXJnaW4tYm90dG9tOi0xNHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEwMCV9LlFTMU83WlRPRG5RNmxMc3BQMjBje3dpZHRoOjY0cHg7aGVpZ2h0OjY0cHh9LkhWX1FUNVVoN2lvQ2dVR29idXdHe3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoxNHB4O3BhZGRpbmc6NXB4O3RleHQtYWxpZ246Y2VudGVyfS5TZllhbXFLVXVjdTZUTmxDeW43cntib3JkZXItcmFkaXVzOjEycHg7LS1ibHVycmVkLWljb24tdGlsZS1ib3gtc2hhZG93OjAgNnB4IDEycHggNHB4IHJnYmEoMCwwLDAsLjEpfS5nbDc5aVlvVVlsVjVqeTBNWUJ0VHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6IzAwMDtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czppbmhlcml0O2JveC1zaGFkb3c6dmFyKC0tYmx1cnJlZC1pY29uLXRpbGUtYm94LXNoYWRvdyl9LkR0VG95VzY4QWVIVlFRV29lb1pfe2JvcmRlci1yYWRpdXM6aW5oZXJpdDtib3gtc2hhZG93Om5vbmV9LmlldWIxaG9UeThUYkl1RWlSdXQ5e292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9Lk9tTm9kQW5CYlBZVmdYOVByNkR1e3dpZHRoOjI1MCU7ZmlsdGVyOmJsdXIoMTBweCl9LmROeFJ4QktQNVVsTEhHRFFDZkJqe2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0uaXdRRjg1dWlQdWJvQnJtZEJzQ0R7aGVpZ2h0OjMwJX0uajRjMzlXak5TY25yYzhBd3dDc0R7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ibGFjay12MTUwKTt3aWR0aDo0OHB4O2hlaWdodDo0OHB4fS5ISFFKRmZlYmNpY2dhUG91b3JrWHtoZWlnaHQ6NDZweDt3aWR0aDo0NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjozcHggc29saWQgI2ZmZn0ueEYzd0VjdGtrbkRySFBzM3hOMlp7Ym9yZGVyLXJhZGl1czoxNnB4fS5xUTEzbkhTQVRPSG5qclBkSUpuSHtiYWNrZ3JvdW5kLXNpemU6MjAwJSAxMDAlO2FuaW1hdGlvbjpPM0NvOV9zajgwSGdrNkRCQXMxSSAxcyBlYXNlLWluLW91dCBpbmZpbml0ZX1bZGlyPWx0cl0gLnFRMTNuSFNBVE9IbmpyUGRJSm5Ie2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtZmVlZC1iZykgMzAlLHZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpIDQ4JSx2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1wcmltYXJ5KSA1MCUsdmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1mZWVkLWJnKSA1OCUpO2JhY2tncm91bmQtcG9zaXRpb246MTAwJSAwfVtkaXI9cnRsXSAucVExM25IU0FUT0huanJQZElKbkh7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoLTkwZGVnLHZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtZmVlZC1iZykgMzAlLHZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpIDQ4JSx2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1wcmltYXJ5KSA1MCUsdmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1mZWVkLWJnKSA1OCUpO2JhY2tncm91bmQtcG9zaXRpb246MCAwfUBrZXlmcmFtZXMgTzNDbzlfc2o4MEhnazZEQkFzMUl7dG97YmFja2dyb3VuZC1wb3NpdGlvbjotMTAwJSAwfX1Aa2V5ZnJhbWVzIFlKb0VkdFJVazFBSXR5RnFqczVaezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS5XOWp2RE1YRElwbktNdkh1MGgzMXt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtZmFtaWx5OmluaGVyaXR9LnRsOGMybFNkX3J3YndybmhfR2Zye3dpZHRoOjEwMCU7YmFja2dyb3VuZDp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLXBhZ2ViZyk7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MTBweCAzMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5KTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXR9W2Rpcj1sdHJdIC50bDhjMmxTZF9yd2J3cm5oX0dmcnttYXJnaW4tcmlnaHQ6MjBweH1bZGlyPXJ0bF0gLnRsOGMybFNkX3J3YndybmhfR2Zye21hcmdpbi1sZWZ0OjIwcHh9LnRsOGMybFNkX3J3YndybmhfR2ZyOmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LXByaW1hcnkpfS5HUjkyT1dEOVI3NUpnT1ZobjJrN3toZWlnaHQ6NDBweH0udGw4YzJsU2Rfcndid3JuaF9HZnI6Zm9jdXN7b3V0bGluZTpub25lfS5HZmNCSlNHcGRYaW9zcWZ2eWd4eXtwb3NpdGlvbjphYnNvbHV0ZX1bZGlyPWx0cl0gLkdmY0JKU0dwZFhpb3NxZnZ5Z3h5e21hcmdpbjoxMHB4IDEwcHggMTBweCAxM3B4fVtkaXI9cnRsXSAuR2ZjQkpTR3BkWGlvc3FmdnlneHl7bWFyZ2luOjEwcHggMTNweCAxMHB4IDEwcHh9LnlENElwTEpTVmh3Q0w5TWlBcTRHe3Bvc2l0aW9uOmFic29sdXRlfVtkaXI9bHRyXSAueUQ0SXBMSlNWaHdDTDlNaUFxNEd7bWFyZ2luOjEzcHggMTBweCAxMHB4IDEzcHh9W2Rpcj1ydGxdIC55RDRJcExKU1Zod0NMOU1pQXE0R3ttYXJnaW46MTNweCAxM3B4IDEwcHggMTBweH0uR2ZjQkpTR3BkWGlvc3FmdnlneHkgc3ZnIHBhdGh7ZmlsbDp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJ1dHRvbmJnLXByaW1hcnkpfS5HdkY4Sld2eGdaUmtLaWRxS3hjQXttYXJnaW46MTBweDt0b3A6MDtjdXJzb3I6cG9pbnRlcn1bZGlyPWx0cl0gLkd2RjhKV3Z4Z1pSa0tpZHFLeGNBe3JpZ2h0OjB9W2Rpcj1ydGxdIC5HdkY4Sld2eGdaUmtLaWRxS3hjQXtsZWZ0OjB9Lk5lanRGbW5IY1NXNGdHaUhsNlNnIGlucHV0e3dpZHRoOjA7aGVpZ2h0OjQwcHh9W2Rpcj1sdHJdIC5OZWp0Rm1uSGNTVzRnR2lIbDZTZyBpbnB1dHtwYWRkaW5nLXJpZ2h0OjlweDttYXJnaW4tcmlnaHQ6MH1bZGlyPXJ0bF0gLk5lanRGbW5IY1NXNGdHaUhsNlNnIGlucHV0e3BhZGRpbmctbGVmdDo5cHg7bWFyZ2luLWxlZnQ6MH0uTmVqdEZtbkhjU1c0Z0dpSGw2U2cgaW5wdXQ6Zm9jdXMsLk5lanRGbW5IY1NXNGdHaUhsNlNnOmhvdmVyIGlucHV0e3dpZHRoOjEwMCV9LldZWUt5czdPTlRFeklwVF9XMmNXe3BhZGRpbmc6NHB4IDZweDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYXktdjc1KTtjb2xvcjp2YXIoLS1ibGFjay12MTUwKTtib3JkZXItcmFkaXVzOjRweH0ual9Bak5jblpyQlVlc2pDZkxYNXh7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0ual9Bak5jblpyQlVlc2pDZkxYNXg6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uaFVBdUdHeEgzbVF5TGFwaVJ5U1kgZGl2e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5KYjh2dHI2UDNWMF9NVEVDbU5vZXtjdXJzb3I6cG9pbnRlcn1bZGlyPWx0cl0gLkpiOHZ0cjZQM1YwX01URUNtTm9le21hcmdpbi1yaWdodDoxMHB4fVtkaXI9cnRsXSAuSmI4dnRyNlAzVjBfTVRFQ21Ob2V7bWFyZ2luLWxlZnQ6MTBweH0uYmJJYTVGT3laSEh3ZGVJc3ZscVN7YWxsOnVuc2V0O2N1cnNvcjpwb2ludGVyfS5yd25yZzJmenJQMndhRng0cVFwX3twb2ludGVyLWV2ZW50czpub25lfS5yd25yZzJmenJQMndhRng0cVFwXyBwYXRoe2ZpbGw6dmFyKC0tYmFja2dyb3VuZC1jb2xvcik7c3Ryb2tlOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSl9LlV5clRVdW5CWF9ack9UaHBkdlZWe2JvcmRlcjoxcHggc29saWQgdmFyKC0tZ3JheS12MTUwKTtib3JkZXItcmFkaXVzOjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtoZWlnaHQ6aW5oZXJpdDt3aWR0aDppbmhlcml0fS5OUGs5Vmo1VTJLZEpoeUxXRDJuaHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3BhZGRpbmc6NHB4fVtkYXRhLXRoZW1lPWRhcmtdIC5VeXJUVXVuQlhfWnJPVGhwZHZWVntib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJsYWNrLXYxMDApO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stdjEwMCl9LnVzQVFZWmFYMFNaT2FibGJpTWNNe2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOiNmZmY7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjEwcHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6MTRweDtjb2xvcjojMDAwO2hlaWdodDozNHB4fS5hZUpfNHlfS3c5NDBIQWJFcXNoMSwudXNBUVlaYVgwU1pPYWJsYmlNY017Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1mYW1pbHkpO2N1cnNvcjpwb2ludGVyfS5hZUpfNHlfS3c5NDBIQWJFcXNoMXtwYWRkaW5nOjZweCAwO2Rpc3BsYXk6ZmxleDt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjppbmhlcml0fS5Ec0tmYzgxaGZ1U2lpSWlla09xS3tmb250LWZhbWlseTp2YXIoLS1mb250LWZhbWlseSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWNhcmRiZyk7bWluLWhlaWdodDoxMDAlO2NvbG9yOnZhcigtLXRleHQtY29sb3IpfS5Bam9kNElEN05NM2NNeHFhMmF1antkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxMHB4IDMycHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLXBhZ2ViZyl9LmlnU2RGbkljQTB6MGxVQ0E4dHBje2ZsZXgtYmFzaXM6MH1bZGlyPWx0cl0gLmlnU2RGbkljQTB6MGxVQ0E4dHBje21hcmdpbi1yaWdodDphdXRvO3JpZ2h0OmF1dG99W2Rpcj1ydGxdIC5pZ1NkRm5JY0EwejBsVUNBOHRwY3ttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0b30uUWRlS1UxNkJWQkgxQTVmcURTR2Z7ZmxleC1iYXNpczowfVtkaXI9bHRyXSAuUWRlS1UxNkJWQkgxQTVmcURTR2Z7bWFyZ2luLXJpZ2h0OmF1dG87cmlnaHQ6YXV0b31bZGlyPXJ0bF0gLlFkZUtVMTZCVkJIMUE1ZnFEU0dme21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvfS5xaDh5aFNmaF9RUUt3dEdPQ3FnaHthcHBlYXJhbmNlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXJ9Lm1HSkl2Y2JsMnVPWWV0V1l6M0VKe3BhZGRpbmc6MTBweCAzMnB4O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjUwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtcGFnZWJnKX0uWnJHbG15VUNYcGVEM0xJQ3N5Nkd7cGFkZGluZy10b3A6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYXktdjUwKTtjb2xvcjp2YXIoLS1ibGFjay12MTAwKX0uRklGWFlRVm1EbXRvQnc5WlJoUWx7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTppbmhlcml0O21hcmdpbjowIDAgMTBweH0ucXZveTZfTTJSU1NwN1Y3S096cmUsLnlZT0p3R1FoZWRhSGREWWVoZnNoe2FwcGVhcmFuY2U6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7bGlzdC1zdHlsZTpub25lfS5lbTh2bVUxMkp5amhRY0RJT2Y3MXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5NclV0Um5fc290R2k5TDBXSFRIS3twYWRkaW5nOjZweCAwO2NvbG9yOmluaGVyaXQ7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjE0cHh9W2Rpcj1sdHJdIC5NclV0Um5fc290R2k5TDBXSFRIS3twYWRkaW5nLWxlZnQ6MTJweH1bZGlyPXJ0bF0gLk1yVXRSbl9zb3RHaTlMMFdIVEhLe3BhZGRpbmctcmlnaHQ6MTJweH0uekJpOWxmY21tRHNQUV9mUWxJYXp7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1mYW1pbHkpO3BhZGRpbmc6NnB4IDA7ZGlzcGxheTpmbGV4O3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9LlE1djVVRDg4SWFzbjRONXkxYlc3e2hlaWdodDoxM3B4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47d2lkdGg6MTdweDthbGlnbi1pdGVtczpzdHJldGNoO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlLWlufS5uWkRlY3hoVkZpODg5V0dhWEUzViwudmhLbEVCaGpRbVJfUUxiSERld2V7Ym9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tdGV4dC1jb2xvcil9Lk1oYXBIa3hwRFAxZUIydDBLYmE2e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9LnJfZDhEc0hYX0ZPNndjYnlUblV0e3Bvc2l0aW9uOmZpeGVkO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO292ZXJmbG93OmF1dG87dHJhbnNmb3JtOnNjYWxlKC45NSk7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2U7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmV9LlBRQzF4VjlpQnBldEVzZnJ3T2Z4e3RyYW5zZm9ybTpzY2FsZSgxKTt2aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmluaGVyaXQ7ei1pbmRleDp2YXIoLS1jdGEtcG9wdXAtei1pbmRleCl9W2Rpcj1sdHJdIC5xdUx4Y0N2VVpEdUxhdFVhX2F4ZnttYXJnaW4tbGVmdDoxMnB4fVtkaXI9cnRsXSAucXVMeGNDdlVaRHVMYXRVYV9heGZ7bWFyZ2luLXJpZ2h0OjEycHh9LnF1THhjQ3ZVWkR1TGF0VWFfYXhmIGRpdjpmb2N1cy13aXRoaW4sLnF1THhjQ3ZVWkR1TGF0VWFfYXhmIGRpdjpoYXMoaW5wdXQ6aG92ZXIpLC5xdUx4Y0N2VVpEdUxhdFVhX2F4ZiBkaXY6aGFzKGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pKXt3aWR0aDpjYWxjKDEwMHZ3IC0gOTVweCl9LkNtb1lUTHlCZ2dFWmZZV3FkTmZ4e2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpzdHJldGNoO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZC1jb2xvcik7aGVpZ2h0OnZhcigtLWNvbnN1bWVyLW5hdi1oZWlnaHQpO3dpZHRoOjEwMCU7cGFkZGluZy1ib3R0b206dmFyKC0tc25hcGNoYXQtZm9vdGVyLW1pbi1oZWlnaHQpO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtYnV0dG9uYmctc2Vjb25kYXJ5KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJ1dHRvbmJnLXNlY29uZGFyeSl9LkNtb1lUTHlCZ2dFWmZZV3FkTmZ4LC5DbW9ZVEx5QmdnRVpmWVdxZE5meCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0uQjFLeXV5MmRfN0M3bzBsZzUwRVp7ZGlzcGxheTpmbGV4O2xpc3Qtc3R5bGU6bm9uZTthbGlnbi1pdGVtczpmbGV4LWVuZDtwYWRkaW5nOjA7bWFyZ2luOjA7aGVpZ2h0OjEwMCV9LnVCRmFkckk0Nm5sc1Y4RG1xcmROe2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MCAzcHg7aGVpZ2h0OjEwMCV9W2Rpcj1sdHJdIC51QkZhZHJJNDZubHNWOERtcXJkTjpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowfVtkaXI9bHRyXSAudUJGYWRySTQ2bmxzVjhEbXFyZE46bGFzdC1jaGlsZCxbZGlyPXJ0bF0gLnVCRmFkckk0Nm5sc1Y4RG1xcmROOmZpcnN0LWNoaWxke21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAudUJGYWRySTQ2bmxzVjhEbXFyZE46bGFzdC1jaGlsZHttYXJnaW4tbGVmdDowfS5Gc1RIZUJTYXYxVFFHZDJTZ2dNS3stLWhvdmVyLWJnLWNvbG9yOnZhcigtLWJhY2tncm91bmQtY29sb3IpO21hcmdpbjowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5KTtjb2xvcjp2YXIoLS10ZXh0LWNvbG9yKTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy10b3A6MnB4O3RleHQtZGVjb3JhdGlvbjpub25lO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6NzJweDt3aWR0aDo3MnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5Gc1RIZUJTYXYxVFFHZDJTZ2dNSzpiZWZvcmV7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlO2NvbnRlbnQ6XCJcIjt0b3A6NHB4O2xlZnQ6MDtyaWdodDowO2JvdHRvbTo0cHg7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob3Zlci1iZy1jb2xvcil9Lk4xd3o2MHlmQVpGRWRJRnFzSEtNe2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LWNvbG9yLWFjdGl2ZSl9LkhYQlNGVEVocmppd0l3czk5TVhje3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uQ0QzZEpXcUVBbU9qbFV3Vjh3eEx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1ib3R0b206NHB4O2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHRyYW5zcGFyZW50fS5DRDNkSldxRUFtT2psVXdWOHd4TDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LlRueFNfeVB0eWFYT2ViN1FYWFRve21hcmdpbi1ib3R0b206NHB4fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6QXZlbmlyIE5leHQ7c3JjOnVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1VbHRyYUxpZ2h0LndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtVWx0cmFMaWdodC53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1VbHRyYUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7Zm9udC13ZWlnaHQ6MTAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpibG9ja31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkF2ZW5pciBOZXh0O3NyYzp1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtVWx0cmFMaWdodEl0YWxpYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LVVsdHJhTGlnaHRJdGFsaWMud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtVWx0cmFMaWdodEl0YWxpYy50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO2ZvbnQtd2VpZ2h0OjEwMDtmb250LXN0eWxlOml0YWxpYztmb250LWRpc3BsYXk6YmxvY2t9QGZvbnQtZmFjZXtmb250LWZhbWlseTpBdmVuaXIgTmV4dDtzcmM6dXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LVVsdHJhTGlnaHQud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1VbHRyYUxpZ2h0LndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LVVsdHJhTGlnaHQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDoyMDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6QXZlbmlyIE5leHQ7c3JjOnVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1VbHRyYUxpZ2h0SXRhbGljLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtVWx0cmFMaWdodEl0YWxpYy53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1VbHRyYUxpZ2h0SXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtZGlzcGxheTpibG9ja31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkF2ZW5pciBOZXh0O3NyYzp1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtUmVndWxhci53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LVJlZ3VsYXIud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO2ZvbnQtd2VpZ2h0OjMwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWRpc3BsYXk6YmxvY2t9QGZvbnQtZmFjZXtmb250LWZhbWlseTpBdmVuaXIgTmV4dDtzcmM6dXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUl0YWxpYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUl0YWxpYy53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDozMDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6QXZlbmlyIE5leHQ7c3JjOnVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1NZWRpdW0ud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1NZWRpdW0ud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtTWVkaXVtLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpibG9ja31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkF2ZW5pciBOZXh0O3NyYzp1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtTWVkaXVtSXRhbGljLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtTWVkaXVtSXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LU1lZGl1bUl0YWxpYy50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOml0YWxpYztmb250LWRpc3BsYXk6YmxvY2t9QGZvbnQtZmFjZXtmb250LWZhbWlseTpBdmVuaXIgTmV4dDtzcmM6dXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LURlbWlCb2xkLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtRGVtaUJvbGQud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtRGVtaUJvbGQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo1MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6QXZlbmlyIE5leHQ7c3JjOnVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1EZW1pQm9sZEl0YWxpYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LURlbWlCb2xkSXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LURlbWlCb2xkSXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtZGlzcGxheTpibG9ja31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkF2ZW5pciBOZXh0O3NyYzp1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtQm9sZC53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUJvbGQud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtQm9sZC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWRpc3BsYXk6YmxvY2t9QGZvbnQtZmFjZXtmb250LWZhbWlseTpBdmVuaXIgTmV4dDtzcmM6dXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUJvbGRJdGFsaWMud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1Cb2xkSXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUJvbGRJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo2MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6QXZlbmlyIE5leHQ7c3JjOnVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1Cb2xkLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtQm9sZC53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZGlzcGxheTpibG9ja31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkF2ZW5pciBOZXh0O3NyYzp1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtQm9sZEl0YWxpYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUJvbGRJdGFsaWMud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtQm9sZEl0YWxpYy50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOml0YWxpYztmb250LWRpc3BsYXk6YmxvY2t9QGZvbnQtZmFjZXtmb250LWZhbWlseTpBdmVuaXIgTmV4dDtzcmM6dXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUhlYXZ5LndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtSGVhdnkud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtSGVhdnkudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo4MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6QXZlbmlyIE5leHQ7c3JjOnVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1IZWF2eUl0YWxpYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUhlYXZ5SXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUhlYXZ5SXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7Zm9udC13ZWlnaHQ6ODAwO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtZGlzcGxheTpibG9ja31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OkF2ZW5pciBOZXh0O3NyYzp1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtSGVhdnkud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1IZWF2eS53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZm9udHMvQXZlbmlyTmV4dC1IZWF2eS50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO2ZvbnQtd2VpZ2h0OjkwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWRpc3BsYXk6YmxvY2t9QGZvbnQtZmFjZXtmb250LWZhbWlseTpBdmVuaXIgTmV4dDtzcmM6dXJsKGh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbS9mb250cy9BdmVuaXJOZXh0LUhlYXZ5SXRhbGljLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtSGVhdnlJdGFsaWMud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tL2ZvbnRzL0F2ZW5pck5leHQtSGVhdnlJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo5MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVRoaW4ud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1UaGluLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVRoaW4udHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDoxMDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVRoaW5JdGFsaWMud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1UaGluSXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVRoaW5JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDoxMDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUV4dHJhbGlnaHQud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1FeHRyYWxpZ2h0LndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUV4dHJhbGlnaHQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDoyMDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUV4dHJhbGlnaHRJdGFsaWMud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1FeHRyYWxpZ2h0SXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUV4dHJhbGlnaHRJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDoyMDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUxpZ2h0LndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstTGlnaHQud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstTGlnaHQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDozMDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUxpZ2h0SXRhbGljLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstTGlnaHRJdGFsaWMud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstTGlnaHRJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDozMDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVJlZ3VsYXIud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1SZWd1bGFyLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVJlZ3VsYXIudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVJlZ3VsYXJJdGFsaWMud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1SZWd1bGFySXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVJlZ3VsYXJJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLU1lZGl1bS53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLU1lZGl1bS53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1NZWRpdW0udHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo1MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLU1lZGl1bUl0YWxpYy53b2ZmMikgZm9ybWF0KFwid29mZjJcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLU1lZGl1bUl0YWxpYy53b2ZmKSBmb3JtYXQoXCJ3b2ZmXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1NZWRpdW1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo1MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVNlbWlib2xkLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU2VtaWJvbGQud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU2VtaWJvbGQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo2MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVNlbWlib2xkSXRhbGljLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU2VtaWJvbGRJdGFsaWMud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU2VtaWJvbGRJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo2MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUJvbGQud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1Cb2xkLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUJvbGQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUJvbGRJdGFsaWMud29mZjIpIGZvcm1hdChcIndvZmYyXCIpLHVybChodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2ZvbnRzL2dyYXBoaWsvR3JhcGhpay1Cb2xkSXRhbGljLndvZmYpIGZvcm1hdChcIndvZmZcIiksdXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUJvbGRJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUJsYWNrLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstQmxhY2sud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstQmxhY2sudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo4MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLUJsYWNrSXRhbGljLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstQmxhY2tJdGFsaWMud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstQmxhY2tJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo4MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVN1cGVyLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU3VwZXIud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU3VwZXIudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo5MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC1kaXNwbGF5OmJsb2NrfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6R3JhcGhpaztzcmM6dXJsKGh0dHBzOi8vc25hcC1kZXNpZ24tc3lzdGVtLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vZm9udHMvZ3JhcGhpay9HcmFwaGlrLVN1cGVySXRhbGljLndvZmYyKSBmb3JtYXQoXCJ3b2ZmMlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU3VwZXJJdGFsaWMud29mZikgZm9ybWF0KFwid29mZlwiKSx1cmwoaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9mb250cy9ncmFwaGlrL0dyYXBoaWstU3VwZXJJdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtmb250LXdlaWdodDo5MDA7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1kaXNwbGF5OmJsb2NrfTpyb290ey0tY3ctZXh0cmEtbGlnaHQtc2xhdGUtZ3JheTojZGVkZWRlOy0tY3ctbGlnaHQtc2xhdGUtZ3JheTojOTQ5NTk2Oy0tY3ctZGFyay1zbGF0ZS1ncmF5OiMyYjJiMmI7LS1jdy1idXR0b24taG92ZXItZ3JheTojNDI0MjQyOy0tbmF2LWhlaWdodDo0MnB4Oy0tY29uc3VtZXItbmF2LWhlaWdodDo3MnB4Oy0tbmF2LWhlaWdodC13aXRoLXBhZGRpbmc6NTJweDstLXNuYXBjaGF0LWZvb3Rlci1oZWlnaHQ6NTNweDstLXRpdGxlLW1hcmdpbi1sZW5ndGg6MjRweDstLXNwb3RsaWdodC1wb3N0LWJ1dHRvbi1tYXJnaW4tdG9wOjE4cHg7LS1zcG90bGlnaHQtdGl0bGUtbWFyZ2luLXRvcDo0OHB4Oy0tbW9iaWxlLWJ1dHRvbi10b3A6dmFyKC0tbmF2LWJ1dHRvbi10b3ApOy0tYnV0dG9uLW9uLXRvcC1wYWRkaW5nOjE2cHg7LS1zYy13ZWJmcmFtZS1tb2JpbGUtZm9vdGVyLWhlaWdodDozMzVweDstLXNwb3RsaWdodC1mZWVkLW5hdi1idXR0b24tbWFyZ2luOjEycHg7LS1kZXNrdG9wLXB1YmxpYy1wcm9maWxlLWNvbnRlbnQtc2VjdGlvbi1oZWlnaHQ6MjIwMHB4Oy0tcGFnZS1mcmFtZS16LWluZGV4OjA7LS1zaGFyZS1pY29uLXotaW5kZXg6MTstLXByZW1pdW0tcHJvZmlsZS1zZWFzb24tc2VsZWN0b3ItZHJvcGRvd24tei1pbmRleDoyOy0tc3Rvcnktd2ViLXBsYXllci1jb250ZXh0LWNhcmQtei1pbmRleDozOy0tc3Rvcnktd2ViLXBsYXllci1mbG9hdGluZy1jbG9zZS1idXR0b24tei1pbmRleDo0Oy0tZml4ZWQtdGFiLXotaW5kZXg6NDstLWZsb2F0aW5nLXBsYXllci16LWluZGV4OjY7LS1zaGFyZS1zaGVldC16LWluZGV4Ojg7LS1yZXBvcnQtbW9kYWw6OTstLWRhcmstYmx1ZTojMmMzMTM3Oy0tc25hcGNoYXQtZm9vdGVyLW1pbi1oZWlnaHQ6NDhweDstLW5hdi1idXR0b24tdG9wOjI1cHg7LS1tb2JpbGUtbmF2LXYyLXotaW5kZXg6NDstLWNvbnN1bWVyLW5hdi16LWluZGV4OjU7LS1jdGEtZm9vdGVyLXotaW5kZXg6NzstLXVwc2VsbC16LWluZGV4OjEwOy0teWVsbG93LXYxMDA6I2ZmZmMwMDstLXllbGxvdy12MTI1OiNmZmUzMDA7LS1ibHVlLXYxNTA6IzA0OWVlZTstLWJsdWUtdjIwMDojMDA5NmU1Oy0td2hpdGU6I2ZmZjstLWdyYXktdjUwOiNmN2Y4Zjk7LS1ncmF5LXY3NTojZWVlOy0tZ3JheS12MTAwOiNmMGYxZjI7LS1ncmF5LXYxNTA6I2U5ZWFlYjstLWdyYXktdjIwMDojZDRkNWQ2Oy0tZ3JheS12MjUwOiNjN2M3Y2M7LS1ncmF5LXYzMDA6IzlhOWZhNzstLWJsYWNrLXY1MDojNTM1NzViOy0tYmxhY2stdjEwMDojM2EzZTQxOy0tYmxhY2stdjEyNTojMjAyMTI0Oy0tYmxhY2stdjE1MDojMTIxMzE0Oy0tYmxhY2stdjIwMDojMDAwOy0tcmVkLXYxMDA6I2YyM2M1N31bZGF0YS10aGVtZT1saWdodF17LS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJhY2tncm91bmQ6I2ZmZjstLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtcGFnZWJnOiNmZmY7LS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWNhcmRiZzp2YXIoLS1ncmF5LXY1MCk7LS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLXBhZ2ViZy1naG9zdGdyYWQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmNmMDAwLCNmZmQzMDEpOy0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1wcmltYXJ5OnZhcigtLWJsYWNrLXYxNTApOy0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1wcmltYXJ5LWFsdDp2YXIoLS1ibHVlLXYyMDApOy0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1zZWNvbmRhcnk6dmFyKC0tZ3JheS12MTAwKTstLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtYnV0dG9uYmctZGlzYWJsZWQ6dmFyKC0tZ3JheS12MTAwKTstLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtZmVlZC1iZzojZjlmOWY5Oy0tc2RzLXdlYmMtY29sb3ItY29udGVudC1wcmltYXJ5OnZhcigtLWJsYWNrLXYxNTApOy0tc2RzLXdlYmMtY29sb3ItY29udGVudC1zZWNvbmRhcnk6dmFyKC0tYmxhY2stdjUwKTstLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtdGVydGlhcnk6dmFyKC0tZ3JheS12MjUwKTstLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnk6I2ZmZjstLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXNlY29uZGFyeTp2YXIoLS1ibGFjay12MTUwKTstLXNkcy13ZWJjLWNvbG9yLWludGVyYWN0aW9uLWJ1dHRvbi1wcmltYXJ5LWhvdmVyOnZhcigtLWJsYWNrLXYxNTApOy0tc2RzLXdlYmMtY29sb3ItaW50ZXJhY3Rpb24tYnV0dG9uLXNlY29uZGFyeS1ob3Zlcjp2YXIoLS1ncmF5LXYxNTApOy0tc2RzLXdlYmMtY29sb3ItaGlnaGxpZ2h0LWFjdGlvbjp2YXIoLS1ibHVlLXYyMDApfVtkYXRhLXRoZW1lPWRhcmtdey0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1iYWNrZ3JvdW5kOiMxZTFlMWU7LS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLXBhZ2ViZzp2YXIoLS1ibGFjay12MTUwKTstLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtY2FyZGJnOnJnYmEoNTgsNjIsNjUsLjQpOy0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1wYWdlYmctZ2hvc3RncmFkOnJnYmEoNTgsNjIsNjUsLjI1KTstLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtYnV0dG9uYmctcHJpbWFyeTojZmZmOy0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1wcmltYXJ5LWFsdDp2YXIoLS15ZWxsb3ctdjEwMCk7LS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJ1dHRvbmJnLXNlY29uZGFyeTp2YXIoLS1ibGFjay12MTAwKTstLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtYnV0dG9uYmctZGlzYWJsZWQ6dmFyKC0tYmxhY2stdjEwMCk7LS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWZlZWQtYmc6IzFlMWUxZTstLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeTojZmZmOy0tc2RzLXdlYmMtY29sb3ItY29udGVudC1zZWNvbmRhcnk6dmFyKC0tZ3JheS12MjAwKTstLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtdGVydGlhcnk6dmFyKC0tYmxhY2stdjUwKTstLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnk6dmFyKC0tYmxhY2stdjE1MCk7LS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1zZWNvbmRhcnk6I2ZmZjstLXNkcy13ZWJjLWNvbG9yLWludGVyYWN0aW9uLWJ1dHRvbi1wcmltYXJ5LWhvdmVyOiNmZmY7LS1zZHMtd2ViYy1jb2xvci1pbnRlcmFjdGlvbi1idXR0b24tc2Vjb25kYXJ5LWhvdmVyOnZhcigtLWJsYWNrLXYxMDApOy0tc2RzLXdlYmMtY29sb3ItaGlnaGxpZ2h0LWFjdGlvbjp2YXIoLS15ZWxsb3ctdjEwMCl9OnJvb3R7LS1mb250LXByaW1hcnk6QXZlbmlyIE5leHQsSGVsdmV0aWNhLHNhbnMtc2VyaWY7LS1mb250LXNlY29uZGFyeTpHcmFwaGlrLEhlbHZldGljYSxzYW5zLXNlcmlmOy0tZm9udC1tZWRpdW06NDAwOy0tZm9udC1kZW1pLWJvbGQ6NTAwOy0tZm9udC1ub3JtYWw6NjAwOy0tZm9udC1ib2xkOjcwMDstLWJhY2tncm91bmQtaW1hZ2UtYmx1ci1yYWRpdXM6NXB4Oy0tYmFja2dyb3VuZC1pbWFnZS1icmlnaHRuZXNzOjUwJX1bZGF0YS10aGVtZV17LS1wYWdlLWJnLWNvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtcGFnZWJnKTstLWNhcmQtYmctY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1jYXJkYmcpOy0tYnV0dG9uLWJnLWNvbG9yLXByaW1hcnk6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1idXR0b25iZy1wcmltYXJ5KTstLWJ1dHRvbi1iZy1jb2xvci1kaXNhYmxlZDp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJ1dHRvbmJnLWRpc2FibGVkKTstLWNvbnRlbnQtcHJpbWFyeS1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LXByaW1hcnkpOy0tY29udGVudC1zZWNvbmRhcnktY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1zZWNvbmRhcnkpOy0tY29udGVudC10ZXJ0aWFyeS1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LXRlcnRpYXJ5KTstLWNvbnRlbnQtYnV0dG9uLXByaW1hcnktY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tcHJpbWFyeSk7LS1idXR0b24tcHJpbWFyeS1ob3Zlcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1pbnRlcmFjdGlvbi1idXR0b24tcHJpbWFyeS1ob3Zlcik7LS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyOnZhcigtLXNkcy13ZWJjLWNvbG9yLWludGVyYWN0aW9uLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIpOy0taGlnaGxpZ2h0LWFjdGlvbi1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1oaWdobGlnaHQtYWN0aW9uKTtiYWNrZ3JvdW5kOnZhcigtLXBhZ2UtYmctY29sb3IpO2NvbG9yOnZhcigtLWNvbnRlbnQtcHJpbWFyeS1jb2xvcik7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudGNvbG9yfWh0bWx7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtcHJpbWFyeSl9Ym9keSxodG1se2hlaWdodDoxMDAlfWJvZHl7bWFyZ2luOjB9YnV0dG9uey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LWtodG1sLXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9I19fbmV4dCwjcm9vdHtoZWlnaHQ6MTAwJX0qLDphZnRlciw6YmVmb3Jle2JveC1zaXppbmc6aW5oZXJpdH0uVG9vbHRpcF9jb250YWluZXJfX0VBc0hKe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uVG9vbHRpcF90b3BDb250YWluZXJfX0E0TTFMe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uVG9vbHRpcF9sZWZ0Q29udGFpbmVyX19fTVlHU3tmbGV4LWRpcmVjdGlvbjpyb3d9LlRvb2x0aXBfYm9keV9fNlZYVlF7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC43KTtjb2xvcjojZmZmO3BhZGRpbmc6NnB4IDEycHg7aGVpZ2h0OmZpdC1jb250ZW50O2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxM3B4O3dpZHRoOm1heC1jb250ZW50fVtkaXI9bHRyXSAuVG9vbHRpcF9ib2R5U2lkZV9fcDB6ZDd7bWFyZ2luLWxlZnQ6LTEyMHB4fVtkaXI9cnRsXSAuVG9vbHRpcF9ib2R5U2lkZV9fcDB6ZDd7bWFyZ2luLXJpZ2h0Oi0xMjBweH0uVG9vbHRpcF9ib3JkZXJMZWZ0X183ZXd1ZHtib3JkZXItdG9wOjVweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjVweCBzb2xpZCB0cmFuc3BhcmVudH1bZGlyPWx0cl0gLlRvb2x0aXBfYm9yZGVyTGVmdF9fN2V3dWR7Ym9yZGVyLWxlZnQ6OHB4IHNvbGlkIHJnYmEoMCwwLDAsLjcpfVtkaXI9cnRsXSAuVG9vbHRpcF9ib3JkZXJMZWZ0X183ZXd1ZHtib3JkZXItcmlnaHQ6OHB4IHNvbGlkIHJnYmEoMCwwLDAsLjcpfS5Ub29sdGlwX2JvcmRlclRvcF9fakhIMm17Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDoxMHB4IHNvbGlkIHJnYmEoMCwwLDAsLjcpfS5JY29uQnV0dG9uX3Rvb2x0aXBDb250YWluZXJfX2xldVpWe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyfS5JY29uQnV0dG9uX3Rvb2x0aXBfX2U1T0xEe3Bvc2l0aW9uOmFic29sdXRlfVtkaXI9bHRyXSAuSWNvbkJ1dHRvbl90b29sdGlwX19lNU9MRHttYXJnaW4tcmlnaHQ6OHB4O3JpZ2h0OjM1cHh9W2Rpcj1ydGxdIC5JY29uQnV0dG9uX3Rvb2x0aXBfX2U1T0xEe21hcmdpbi1sZWZ0OjhweDtsZWZ0OjM1cHh9Lkljb25CdXR0b25fYnV0dG9uQ29udGFpbmVyX191RUhVVHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjUpO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtib3gtc2hhZG93OnJnYmEoMCwwLDAsLjI1KTt0cmFuc2l0aW9uOi4zcyBlYXNlLW91dDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lkljb25CdXR0b25fYnV0dG9uQ29udGFpbmVyX191RUhVVDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC40NSk7dHJhbnNpdGlvbjouMXMgZWFzZX0uSWNvbkJ1dHRvbl9idXR0b25Yc21hbGxfX0FsRXA5e2hlaWdodDozMnB4O3dpZHRoOjMycHh9Lkljb25CdXR0b25fYnV0dG9uU21hbGxfX0pueWdie2hlaWdodDo0MHB4O3dpZHRoOjQwcHh9Lkljb25CdXR0b25fYnV0dG9uTWVkaXVtX19hdUVRRXtoZWlnaHQ6NTBweDt3aWR0aDo1MHB4fS5JY29uQnV0dG9uX2J1dHRvbkxhcmdlX19EX1lMcHtoZWlnaHQ6NjBweDt3aWR0aDo2MHB4fS5NZW51SXRlbUJ1dHRvbl9tZW51SXRlbV9fcDlTTmZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjEzcHg7dHJhbnNpdGlvbjouMjVzO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0uTWVudUl0ZW1CdXR0b25fbWVudUl0ZW1fX3A5U05mOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JheS12NTApfS5Nb3JlT3B0aW9uc0J1dHRvbl9tb3JlT3B0aW9uc0J1dHRvbl9fNDFBdGl7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDo0MHB4fVtkaXI9bHRyXSAuTW9yZU9wdGlvbnNCdXR0b25fbW9yZU9wdGlvbnNCdXR0b25fXzQxQXRpe3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5Nb3JlT3B0aW9uc0J1dHRvbl9tb3JlT3B0aW9uc0J1dHRvbl9fNDFBdGl7dGV4dC1hbGlnbjpsZWZ0fS5Nb3JlT3B0aW9uc0J1dHRvbl9tb3JlT3B0aW9uc0J1dHRvbl9fNDFBdGkgc3ZnIHBhdGh7ZmlsbDojZmZmfS5NdXRlQnV0dG9uX211dGVCdXR0b25fX2RERTN3e21hcmdpbi1ib3R0b206OHB4O21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweDt6LWluZGV4OjV9W2Rpcj1sdHJdIC5NdXRlQnV0dG9uX211dGVCdXR0b25fX2RERTN3e3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5NdXRlQnV0dG9uX211dGVCdXR0b25fX2RERTN3e3RleHQtYWxpZ246bGVmdH0uTmF2aWdhdGlvbkJ1dHRvbl9uYXZpZ2F0aW9uQnV0dG9uQ29udGFpbmVyX19LS3JwdXtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2p1c3RpZnktY29udGVudDppbmhlcml0O3BhZGRpbmc6MTVweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5OYXZpZ2F0aW9uQnV0dG9uX25hdmlnYXRpb25CdXR0b25Db250YWluZXJfX0tLcnB1IHN2Z3tmaWxsOiNmZmZ9LlBsYXlCdXR0b25fcGxheUJ1dHRvbkNvbnRhaW5lcl9fOXJfcUIsLlBsYXlJY29uX3BsYXlJY29uX18zX3lYOXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uUGxheUJ1dHRvbl9wbGF5QnV0dG9uQ29udGFpbmVyX185cl9xQntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fVtkaXI9bHRyXSAuUGxheUJ1dHRvbl9wbGF5QnV0dG9uQ29udGFpbmVyX185cl9xQntsZWZ0OjB9W2Rpcj1ydGxdIC5QbGF5QnV0dG9uX3BsYXlCdXR0b25Db250YWluZXJfXzlyX3FCe3JpZ2h0OjB9LlJlcGxheUJ1dHRvbl9yZXBsYXlCdXR0b25Db250YWluZXJfX1BpbTVle3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LlNoYXJlQnV0dG9uX2ljb25fX3N2NWdIe21hcmdpbi1ib3R0b206NnB4O21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6NDBweH1bZGlyPWx0cl0gLlNoYXJlQnV0dG9uX2ljb25fX3N2NWdIe3RleHQtYWxpZ246cmlnaHR9W2Rpcj1ydGxdIC5TaGFyZUJ1dHRvbl9pY29uX19zdjVnSHt0ZXh0LWFsaWduOmxlZnR9LlNoYXJlQnV0dG9uX2ljb25fX3N2NWdIIHN2Z3tmaWxsOiNmZmZ9LlNoYXJlQnV0dG9uX2ljb25fX3N2NWdIIHN2ZyAqe2ZpbGw6I2ZmZjtzdHJva2U6I2ZmZn0uc2RzQnV0dG9uc19idXR0b25JY29uX19EZm9UUHtoZWlnaHQ6MTZweH1bZGlyPWx0cl0gLnNkc0J1dHRvbnNfYnV0dG9uSWNvbl9fRGZvVFB7bWFyZ2luLXJpZ2h0OjEwcHh9W2Rpcj1ydGxdIC5zZHNCdXR0b25zX2J1dHRvbkljb25fX0Rmb1RQe21hcmdpbi1sZWZ0OjEwcHh9LmJ1dHRvbnNfc2RzQnV0dG9uX19pUEJqNXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjEwMHB4O2JvcmRlcjowO3dpZHRoOmZpdC1jb250ZW50O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE2cHg7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmJ1dHRvbnNfZnVsbFdpZHRoX19EejIwUnt3aWR0aDoxMDAlfS5Db2xvcmVkQnV0dG9uX3llbGxvd0J1dHRvbl9fX181aGh7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS15ZWxsb3ctdjEwMCk7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LkNvbG9yZWRCdXR0b25fYmxhY2tCdXR0b25fX2UyNmJme2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stdjIwMCk7Y29sb3I6I2ZmZn0uQ29sb3JlZEJ1dHRvbl9ncmF5QnV0dG9uX19ZRGVMQntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdyYXktdjEwMCk7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LkNvbG9yZWRCdXR0b25fYmx1ZUJ1dHRvbl9fZmE1cml7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibHVlLXYyMDApO2NvbG9yOiNmZmZ9LkNvbG9yZWRCdXR0b25fd2hpdGVCdXR0b25fX1VZTUR4e2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1ibGFjay12MTUwKX0uUHJpbWFyeUFsdEJ1dHRvbl9wcmltYXJ5QnV0dG9uQWx0X19oX0RrVHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtYnV0dG9uYmctcHJpbWFyeS1hbHQpO2NvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpfS5QcmltYXJ5QWx0QnV0dG9uX3ByaW1hcnlCdXR0b25BbHRfX2hfRGtUIHN2ZyBwYXRoe3N0cm9rZTp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1wcmltYXJ5KTtmaWxsOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpfS5QcmltYXJ5QWx0QnV0dG9uRnVsbFdpZHRoX3ByaW1hcnlBbHRCdXR0b25GdWxsV2lkdGhfX2ltTlBIe3dpZHRoOjEwMCV9LlByaW1hcnlCdXR0b25fcHJpbWFyeUJ1dHRvbl9fOUNlZFp7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJ1dHRvbmJnLXByaW1hcnkpO2NvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpfVtkaXI9bHRyXSAuUHJpbWFyeUJ1dHRvbl9wcmltYXJ5QnV0dG9uX185Q2VkWnttYXJnaW4tbGVmdDoxMHB4fVtkaXI9cnRsXSAuUHJpbWFyeUJ1dHRvbl9wcmltYXJ5QnV0dG9uX185Q2VkWnttYXJnaW4tcmlnaHQ6MTBweH0uUHJpbWFyeUJ1dHRvbl9wcmltYXJ5QnV0dG9uX185Q2VkWiBzdmcgcGF0aHtzdHJva2U6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tcHJpbWFyeSk7ZmlsbDp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1wcmltYXJ5KX0uU2Vjb25kYXJ5QnV0dG9uX3NlY29uZGFyeUJ1dHRvbl9fczI3OEt7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWJ1dHRvbmJnLXNlY29uZGFyeSk7Y29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tc2Vjb25kYXJ5KX0uU2Vjb25kYXJ5QnV0dG9uX3NlY29uZGFyeUJ1dHRvbl9fczI3OEsgc3ZnIHBhdGh7c3Ryb2tlOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXNlY29uZGFyeSk7ZmlsbDp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1zZWNvbmRhcnkpfS5IZWFkaW5nX2gxMDBfXzNRcnlje2ZvbnQtc2l6ZTozNnB4O2xpbmUtaGVpZ2h0OjQ2cHh9LkhlYWRpbmdfaDEwMF9fM1FyeWMsLkhlYWRpbmdfaDIwMF9fWWQySGJ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2xldHRlci1zcGFjaW5nOjA7bWFyZ2luOjB9LkhlYWRpbmdfaDIwMF9fWWQySGJ7Zm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzZweH0uSGVhZGluZ19oMzAwX180T1dCVntmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjIycHg7Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MzBweDtsZXR0ZXItc3BhY2luZzowO21hcmdpbjowfS5IZWFkaW5nX2g0MDBfX3ZaMHpFe2ZvbnQtd2VpZ2h0OjYwMH0uSGVhZGluZ19oNDAwRW1waGFzaXNfX2hnT19mLC5IZWFkaW5nX2g0MDBfX3ZaMHpFe2ZvbnQtc2l6ZToxOHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjI0cHg7bGV0dGVyLXNwYWNpbmc6MDttYXJnaW46MH0uSGVhZGluZ19oNDAwRW1waGFzaXNfX2hnT19me2ZvbnQtd2VpZ2h0OjcwMH0uSGVhZGluZ19oNTAwX19fYURXX3tmb250LXdlaWdodDo1MDB9LkhlYWRpbmdfaDUwMEVtcGhhc2lzX19JOVFFaCwuSGVhZGluZ19oNTAwX19fYURXX3tmb250LXNpemU6MTZweDtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDoyMnB4O2xldHRlci1zcGFjaW5nOjA7bWFyZ2luOjB9LkhlYWRpbmdfaDUwMEVtcGhhc2lzX19JOVFFaHtmb250LXdlaWdodDo3MDB9LkhlYWRpbmdfaDYwMF9fSVFJYUV7Zm9udC13ZWlnaHQ6NTAwfS5IZWFkaW5nX2g2MDBFbXBoYXNpc19fNlZSZFUsLkhlYWRpbmdfaDYwMF9fSVFJYUV7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MThweDtsZXR0ZXItc3BhY2luZzowO21hcmdpbjowfS5IZWFkaW5nX2g2MDBFbXBoYXNpc19fNlZSZFV7Zm9udC13ZWlnaHQ6NzAwfS5IZWFkaW5nX2g3MDBfXzNSaUFne2ZvbnQtd2VpZ2h0OjUwMH0uSGVhZGluZ19oNzAwRW1waGFzaXNfX29XNUpiLC5IZWFkaW5nX2g3MDBfXzNSaUFne2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjE0cHg7bGV0dGVyLXNwYWNpbmc6MDttYXJnaW46MH0uSGVhZGluZ19oNzAwRW1waGFzaXNfX29XNUpie2ZvbnQtd2VpZ2h0OjcwMH0uSGVhZGluZ19oODAwX19QRVBhYntmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6LjJweH0uSGVhZGluZ19oODAwX19QRVBhYiwuSGVhZGluZ19oOTAwX19UODY2WXtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDoxNHB4O21hcmdpbjowfS5IZWFkaW5nX2g5MDBfX1Q4NjZZe2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTBweDtsZXR0ZXItc3BhY2luZzowfS5UeXBvZ3JhcGh5X3RpdGxlMV9fcTF5V2N7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTozNHB4O2xpbmUtaGVpZ2h0OjQwcHh9LlR5cG9ncmFwaHlfdGl0bGUyX19ob1AzT3tmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzJweH0uVHlwb2dyYXBoeV90aXRsZTNfX3RHTXhGe2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MjJweDtsaW5lLWhlaWdodDoyOHB4fS5UeXBvZ3JhcGh5X3RpdGxlNF9feWRpYWx7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjI0cHh9LlR5cG9ncmFwaHlfaGVhZGxpbmVfX2x1U0x0e2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoyMHB4fS5UeXBvZ3JhcGh5X2JvZHlfX2p5Mnpwe2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyMHB4fS5UeXBvZ3JhcGh5X2JvZHlFbXBoYXNpc19fV0E0Ujl7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIwcHh9LlR5cG9ncmFwaHlfc3ViSGVhZGxpbmVfX0cycXpXe2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4fS5UeXBvZ3JhcGh5X3N1YkhlYWRpbmdMaW5lRW1waGFzaXNfX3Z1UTU1e2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4fS5UeXBvZ3JhcGh5X2NhcHRpb25fX0J4T3VCe2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4fS5UeXBvZ3JhcGh5X2NhcHRpb25FbXBoYXNpc19fRENteVB7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE2cHh9LkZvb3RlckNhcmRfZmxleFJvd19fbTl0cmR7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcn0uRm9vdGVyQ2FyZF9jYXJkX19DQ0NlaXtwYWRkaW5nOjhweCAxMnB4IDA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5Gb290ZXJDYXJkX2NhcmRDb250ZW50X19rZTExYntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy1ib3R0b206MTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tZ3JheS12MTAwKTttaW4taGVpZ2h0Ojg0cHh9LkZvb3RlckNhcmRfaWNvbl9faVVsQVF7d2lkdGg6NTRweDtib3JkZXItc3R5bGU6c29saWQ7aGVpZ2h0OjU0cHg7Ym9yZGVyLXJhZGl1czoxNzBweDtib3JkZXItY29sb3I6dmFyKC0tZ3JheS12MTUwKX0uRm9vdGVyQ2FyZF9pbmZvQ29sdW1uX19JOGlhUHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59W2Rpcj1sdHJdIC5Gb290ZXJDYXJkX2luZm9Db2x1bW5fX0k4aWFQe3BhZGRpbmctbGVmdDoxMnB4fVtkaXI9cnRsXSAuRm9vdGVyQ2FyZF9pbmZvQ29sdW1uX19JOGlhUHtwYWRkaW5nLXJpZ2h0OjEycHh9LkZvb3RlckNhcmRfdGl0bGVDb2xvcl9fQTdnR0F7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LkZvb3RlckNhcmRfc3VidGl0bGVDb2xvcl9fMk9helh7Y29sb3I6dmFyKC0tYmxhY2stdjUwKX1bZGlyPWx0cl0gLkZvb3RlckNhcmRfaGVhZGVyQ29udGVudF9fZm55UFB7bWFyZ2luLWxlZnQ6YXV0b31bZGlyPXJ0bF0gLkZvb3RlckNhcmRfaGVhZGVyQ29udGVudF9fZm55UFB7bWFyZ2luLXJpZ2h0OmF1dG99LkZvb3RlckNhcmRfZm9vdGVyQ29udGVudF9fTzhjREx7bWFyZ2luLXRvcDoxMnB4fS5Mb2FkaW5nQ2FyZF9pY29uV3JhcHBlcl9fX0JMVFZ7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LkxvYWRpbmdDYXJkX2ljb25XcmFwcGVyX19fQkxUViBzdmd7YW5pbWF0aW9uOkxvYWRpbmdDYXJkX3B1bHNlLWFuaW1fX1pYTl9FIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyBMb2FkaW5nQ2FyZF9wdWxzZS1hbmltX19aWE5fRXswJXt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4yKTtvcGFjaXR5Oi44fXRve3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9fS5XZWJQSW1hZ2VfaW1hZ2VfX0VleUNwLC5XZWJQSW1hZ2VfaW1hZ2VfX0VleUNwIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5UcnVuY2F0ZV90cnVuY2F0ZV9feXR6VXZ7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5XcmFwcGVkX3dyYXBwZWRfX19CbkhYe2ZsZXgtd3JhcDp3cmFwO3dvcmQtd3JhcDpicmVhay13b3JkO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWxpbmUtY2xhbXA6Mn0uTWVkaWFGb290ZXJDYXJkX2NsaWNrYWJsZVN0eWxlX183MXE0ZHt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojZmZmfS5NZWRpYUZvb3RlckNhcmRfY2xpY2thYmxlU3R5bGVfXzcxcTRkOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgI2ZmZn0uTWVkaWFGb290ZXJDYXJkX21ldGFkYXRhX19nUVg0X3tkaXNwbGF5OmZsZXg7Y29sb3I6I2ZmZjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjA7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uTWVkaWFGb290ZXJDYXJkX3RpdGxlX19sUFg1cnttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDo2cHg7bWF4LXdpZHRoOjkwcHh9W2Rpcj1sdHJdIC5NZWRpYUZvb3RlckNhcmRfdGl0bGVfX2xQWDVye21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjRweH1bZGlyPXJ0bF0gLk1lZGlhRm9vdGVyQ2FyZF90aXRsZV9fbFBYNXJ7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6NHB4fS5NZWRpYUZvb3RlckNhcmRfdGl0bGVUZXh0X19uX2YwSXtjb2xvcjojZmZmfS5NZWRpYUZvb3RlckNhcmRfc3VidGl0bGVfX1hNZktJe21hcmdpbi10b3A6MDt0b3A6MThweDttYXJnaW4tYm90dG9tOjZweDttYXgtd2lkdGg6OTBweH1bZGlyPWx0cl0gLk1lZGlhRm9vdGVyQ2FyZF9zdWJ0aXRsZV9fWE1mS0l7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAuTWVkaWFGb290ZXJDYXJkX3N1YnRpdGxlX19YTWZLSXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDo4cHh9Lk1lZGlhRm9vdGVyQ2FyZF9ub1N1YnRpdGxlX19jeWxHb3ttYXJnaW4tYm90dG9tOjZweH0uTWVkaWFGb290ZXJDYXJkX21ldGFkYXRhVGV4dF9fRWkxdGF7Y29sb3I6dmFyKC0tZ3JheS12MjAwKX0uTWVkaWFGb290ZXJDYXJkX2Zvb3RlckNhcmRfX1FTR3BQe2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTgsMTksMjAsLjUpO2hlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NHB4O2FsaWduLWl0ZW1zOmNlbnRlcn1bZGlyPWx0cl0gLk1lZGlhRm9vdGVyQ2FyZF9mb290ZXJDYXJkX19RU0dwUHttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAuTWVkaWFGb290ZXJDYXJkX2Zvb3RlckNhcmRfX1FTR3BQe21hcmdpbi1sZWZ0OjhweH0uTWVkaWFGb290ZXJDYXJkX2ljb25TdHlsZV9fTGRuOVR7d2lkdGg6MThweDtoZWlnaHQ6MThweDttYXJnaW4tdG9wOjExcHg7bWFyZ2luLWJvdHRvbToxMXB4fVtkaXI9bHRyXSAuTWVkaWFGb290ZXJDYXJkX2ljb25TdHlsZV9fTGRuOVR7bWFyZ2luLWxlZnQ6NHB4O21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5NZWRpYUZvb3RlckNhcmRfaWNvblN0eWxlX19MZG45VHttYXJnaW4tcmlnaHQ6NHB4O21hcmdpbi1sZWZ0OjhweH0uTWVkaWFGb290ZXJDYXJkX2ljb25TdHlsZV9fTGRuOVQgaW1ne2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItcmFkaXVzOjUwcHg7Ym9yZGVyLWNvbG9yOnZhcigtLWdyYXktdjE1MCk7Ym9yZGVyLXdpZHRoOjJweH0uTWVkaWFGb290ZXJDYXJkX2RlZmF1bHRJY29uU3R5bGVfX09fX3Fre3BhZGRpbmc6M3B4fS5DZW50ZXJlZENvbnRhaW5lcl9jZW50ZXJlZF9fTFRLMVUsLkRlZmF1bHRMaW5rUHJldmlld19jb250YWluZXJfXzh3bjFSe2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LkRlZmF1bHRMaW5rUHJldmlld19jb250YWluZXJfXzh3bjFSe2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXllbGxvdy12MTAwKX1Aa2V5ZnJhbWVzIERpYWxvZ19ncm93SW5fX2g0bHBUezAle3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjB9dG97dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19QGtleWZyYW1lcyBEaWFsb2dfZmFkZUluX19CRkk1QnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0uRGlhbG9nX2NvbnRhaW5lcl9fVFd5UUh7cG9zaXRpb246Zml4ZWQ7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjQpO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjthbmltYXRpb246RGlhbG9nX2ZhZGVJbl9fQkZJNUIgLjFzIGVhc2UtaW4tb3V0Oy13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkO3otaW5kZXg6MTB9W2Rpcj1sdHJdIC5EaWFsb2dfY29udGFpbmVyX19UV3lRSHtsZWZ0OjB9W2Rpcj1ydGxdIC5EaWFsb2dfY29udGFpbmVyX19UV3lRSHtyaWdodDowfS5EaWFsb2dfYWN0aW9uQnV0dG9uc19fWVBjY1l7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7cGFkZGluZzoyMHB4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1wYWdlYmcpO2JvcmRlci1yYWRpdXM6aW5oZXJpdH0uRGlhbG9nX2FjdGlvbkJ1dHRvbnNfX1lQY2NZPmJ1dHRvbnt3aWR0aDoxMDAlO21hcmdpbjowIDVweDtwYWRkaW5nOjEycHh9LkRpYWxvZ19pbm5lckNvbnRhaW5lcl9fbEJEeXZ7d2lkdGg6NDUwcHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLXBhZ2ViZyk7Y29sb3I6dmFyKC0tY29udGVudC1wcmltYXJ5LWNvbG9yKTtib3JkZXItcmFkaXVzOjIwcHg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzoyNHB4IDA7YW5pbWF0aW9uOkRpYWxvZ19ncm93SW5fX2g0bHBUIC40cyBlYXNlLWluLW91dDttYXJnaW46MTBweH1bZGlyPWx0cl0gLkRpYWxvZ19naG9zdEljb25XcmFwcGVyX19DT3lRc3twYWRkaW5nLWxlZnQ6MjRweH1bZGlyPXJ0bF0gLkRpYWxvZ19naG9zdEljb25XcmFwcGVyX19DT3lRc3twYWRkaW5nLXJpZ2h0OjI0cHh9LkRpYWxvZ19naG9zdEljb25XcmFwcGVyX19DT3lRcyBzdmcgcGF0aHtmaWxsOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSl9LkRpYWxvZ19jb250ZW50X19kb196X3tvdmVyZmxvdzphdXRvO21hcmdpbjoxNHB4IDI0cHggMjRweDtwYWRkaW5nLWJvdHRvbTo0MHB4fS5GZWVkTmF2aWdhdGlvbkJ1dHRvbnNfY29udGFpbmVyX18yaURXSHtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uRmVlZE5hdmlnYXRpb25CdXR0b25zX2J0bkNvbnRhaW5lcl9fZGt6bEh7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuMSk7cGFkZGluZy1sZWZ0OjEycHg7cGFkZGluZy1yaWdodDoxMnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246LjI1cyBlYXNlOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uRmVlZE5hdmlnYXRpb25CdXR0b25zX2J0bkNvbnRhaW5lcl9fZGt6bEggc3Zne2ZpbGw6I2ZmZjtkaXNwbGF5OmJsb2NrfS5GZWVkTmF2aWdhdGlvbkJ1dHRvbnNfZGlzYWJsZWRCdG5fX2Q5NlpqIHN2Z3tmaWxsOmhzbGEoMCwwJSwxMDAlLC4zKX0uRmVlZE5hdmlnYXRpb25CdXR0b25zX2J1dHRvblVwX18zWDZhb3tib3JkZXItcmFkaXVzOjQwcHggNDBweCAwIDA7cGFkZGluZy10b3A6MTRweDtwYWRkaW5nLWJvdHRvbToxMHB4fS5GZWVkTmF2aWdhdGlvbkJ1dHRvbnNfYnV0dG9uRG93bl9fSGJWRFp7bWFyZ2luLXRvcDoxcHg7Ym9yZGVyLXJhZGl1czowIDAgNDBweCA0MHB4O3BhZGRpbmctYm90dG9tOjE0cHg7cGFkZGluZy10b3A6MTBweH0uR2hvc3RCYWNrZ3JvdW5kQ29udGFpbmVyX2NlbnRlcmVkX19CamxRaHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uR2hvc3RCYWNrZ3JvdW5kQ29udGFpbmVyX2NvbnRhaW5lcl9fUnU0d097b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6dmFyKC0teWVsbG93LXYxMDApfS5HaG9zdEJhY2tncm91bmRDb250YWluZXJfY29udGVudF9fQ181YWt7ei1pbmRleDoxfS5HaG9zdEJhY2tncm91bmRDb250YWluZXJfaGFsZl9fbkhUVTd7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NzZ2bWlufVtkaXI9bHRyXSAuR2hvc3RCYWNrZ3JvdW5kQ29udGFpbmVyX2hhbGZfX25IVFU3e2xlZnQ6MH1bZGlyPXJ0bF0gLkdob3N0QmFja2dyb3VuZENvbnRhaW5lcl9oYWxmX19uSFRVN3tyaWdodDowfS5QbGF5ZXJNb2RhbF9tb2RhbENvbnRhaW5lcl9fVUZiN0l7d2lkdGg6OTUlO2hlaWdodDo5NyU7Ym9yZGVyLXJhZGl1czoxMHB4O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59W2Rpcj1sdHJdIC5QbGF5ZXJNb2RhbF9tb2RhbENvbnRhaW5lcl9fVUZiN0l7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfVtkaXI9cnRsXSAuUGxheWVyTW9kYWxfbW9kYWxDb250YWluZXJfX1VGYjdJe3JpZ2h0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKDUwJSwtNTAlKX0uUGxheWVyTW9kYWxfYm9keUNvbnRhaW5lcl9faktoOWx7b3ZlcmZsb3c6c2Nyb2xsO2JhY2tncm91bmQ6aHNsYSgwLDAlLDEwMCUsLjk1KTtmbGV4LWdyb3c6MTtwYWRkaW5nOjEycHggMjZweH0uUGxheWVyTW9kYWxfdGl0bGVfX0QyMkI0e21hcmdpbi1ib3R0b206MThweDttYXJnaW4tdG9wOjEycHg7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LlBsYXllck1vZGFsX2Zvb3RlckNvbnRhaW5lcl9fdjFZbzN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7YmFja2dyb3VuZDojZmZmO29wYWNpdHk6MTtoZWlnaHQ6NTZweDtwYWRkaW5nOjEycHh9W2Rpcj1sdHJdIC5QbGF5ZXJNb2RhbF9mb290ZXJCdXR0b25XcmFwcGVyX194X2Nic3ttYXJnaW4tbGVmdDo4cHh9W2Rpcj1ydGxdIC5QbGF5ZXJNb2RhbF9mb290ZXJCdXR0b25XcmFwcGVyX194X2Nic3ttYXJnaW4tcmlnaHQ6OHB4fS5SZXBvcnRNb2RhbF9yZXBvcnRDYXRlZ29yaWVzQ29udGFpbmVyX19ybUhQdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbi10b3A6MTJweH1bZGlyPWx0cl0gLlJlcG9ydE1vZGFsX3JlcG9ydENhdGVnb3J5X18yekROU3t0ZXh0LWFsaWduOmxlZnR9W2Rpcj1ydGxdIC5SZXBvcnRNb2RhbF9yZXBvcnRDYXRlZ29yeV9fMnpETlN7dGV4dC1hbGlnbjpyaWdodH0uUmVwb3J0TW9kYWxfYmFja0J1dHRvbl9fVzV3ZFQsLlJlcG9ydE1vZGFsX3JlcG9ydENhdGVnb3J5V3JhcHBlcl9fRFd1TWF7bWFyZ2luLWJvdHRvbToxMnB4fS5SZXBvcnRNb2RhbF9yZXBvcnRDYXRlZ29yeVdyYXBwZXJfX0RXdU1hIHN2ZyBwYXRoe2ZpbGw6I2ZmZn0uUmVwb3J0TW9kYWxfcmVwb3J0U3VidGV4dF9faVFweW57Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LlJlcG9ydE1vZGFsX3JlcG9ydFRleHRGaWVsZFRpdGxlX183VWhqdHttYXJnaW4tdG9wOjEycHg7bWFyZ2luLWJvdHRvbToxMHB4fS5SZXBvcnRNb2RhbF9yZXBvcnRUZXh0RmllbGRfX2poTW9Se3dpZHRoOjEwMCU7bWluLWhlaWdodDoxNTBweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXktdjIwMCk7YmFja2dyb3VuZDp2YXIoLS1ncmF5LXYxMDApO3BhZGRpbmc6OHB4IDEycHg7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2V9LlJlcG9ydE1vZGFsX3JlcG9ydFRleHRGaWVsZF9famhNb1I6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmxhY2stdjUwKX0uU3VwcHJlc3NlZERlZmF1bHRBY3Rpb25MaW5rX2xpbmtfX3hJRHJJe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmluaGVyaXR9LlN1cHByZXNzZWREZWZhdWx0QWN0aW9uTGlua19saW5rX194SURySTp2aXNpdGVke3RleHQtZGVjb3JhdGlvbjppbmhlcml0O2NvbG9yOmluaGVyaXR9LkNhcmRfY2FyZENvbnRhaW5lcl9fOW1OSkJ7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6MjBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1bZGlyPWx0cl0gLlByb2ZpbGVDYXJkX2NhcmRHcmFkaWVudF9fc3dXbGl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMTgsMTksMjAsMCkscmdiYSgxOCwxOSwyMCwuOTUpIDYzLjM5JSl9W2Rpcj1ydGxdIC5Qcm9maWxlQ2FyZF9jYXJkR3JhZGllbnRfX3N3V2xpe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KC0xODBkZWcscmdiYSgxOCwxOSwyMCwwKSxyZ2JhKDE4LDE5LDIwLC45NSkgNjMuMzklKX0uUHJvZmlsZUNhcmRfZGV0YWlsc0NvbnRhaW5lcl9fR01ENlp7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czowIDAgMjBweCAyMHB4fS5MZW5zUHJvZmlsZUNhcmRfZGV0YWlsc0NvbnRhaW5lcl9fTjFqX1h7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZn0uTGVuc1Byb2ZpbGVDYXJkX2xlbnNDcmVhdG9yX184M1Niantmb250LXdlaWdodDo2MDA7bWFyZ2luLXRvcDo4cHh9LkxlbnNQcm9maWxlQ2FyZF9sZW5zSWNvbl9fY0J3U2t7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjY0cHg7d2lkdGg6NjRweDtib3JkZXI6NHB4IHNvbGlkICNmZmY7Ym94LXNpemluZzpib3JkZXItYm94fVtkaXI9bHRyXSAuTGVuc1Byb2ZpbGVDYXJkX2xlbnNJY29uX19jQndTa3ttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAuTGVuc1Byb2ZpbGVDYXJkX2xlbnNJY29uX19jQndTa3ttYXJnaW4tbGVmdDo4cHh9LkxlbnNQcm9maWxlQ2FyZF9sZW5zSW1nX194ZHlBNXtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uTGVuc1Byb2ZpbGVDYXJkX2xlbnNOYW1lX19pS2lrbnttYXJnaW4tYm90dG9tOjhweH0uUHJvZmlsZVBpY3R1cmVCdWJibGVfcHJvZmlsZVBpY3R1cmVXcmFwcGVyX180MnBlaXtwYWRkaW5nOjFweDt0cmFuc2l0aW9uOi4yNXMgZWFzZTtib3JkZXItcmFkaXVzOjUwJX0uUHJvZmlsZVBpY3R1cmVCdWJibGVfbm9IaWdobGlnaHRCb3JkZXJfX2oxbERFe2JvcmRlcjoycHggc29saWQgI2ZmZn0uUHJvZmlsZVBpY3R1cmVCdWJibGVfaGFzRmluaXNoZWRTdG9yeUJvcmRlcl9fZ3FnOEx7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1jb250ZW50LXNlY29uZGFyeS1jb2xvcil9LlByb2ZpbGVQaWN0dXJlQnViYmxlX25vRmluaXNoZWRTdG9yeUJvcmRlcl9fN0kydHB7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS15ZWxsb3ctdjEwMCl9LlByZW1pdW1Qcm9maWxlQ2FyZF9wcmltYXJ5RGV0YWlsc0NvbnRhaW5lcl9fNnRYRjN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn1bZGlyPWx0cl0gLlByZW1pdW1Qcm9maWxlQ2FyZF9wcm9maWxlUGljdHVyZVdyYXBwZXJfX0RYMTl3e21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5QcmVtaXVtUHJvZmlsZUNhcmRfcHJvZmlsZVBpY3R1cmVXcmFwcGVyX19EWDE5d3ttYXJnaW4tbGVmdDo4cHh9LlByZW1pdW1Qcm9maWxlQ2FyZF90aXRsZV9fajViYWF7Y29sb3I6I2ZmZn0uUHJlbWl1bVByb2ZpbGVDYXJkX2JhZGdlQ29udGFpbmVyX193VVAxUHttYXJnaW4tdG9wOjJweDtsaW5lLWhlaWdodDoxNnB4fVtkaXI9bHRyXSAuUHJlbWl1bVByb2ZpbGVDYXJkX2JhZGdlQ29udGFpbmVyX193VVAxUHtwYWRkaW5nLWxlZnQ6NHB4fVtkaXI9cnRsXSAuUHJlbWl1bVByb2ZpbGVDYXJkX2JhZGdlQ29udGFpbmVyX193VVAxUHtwYWRkaW5nLXJpZ2h0OjRweH0uUHJlbWl1bVByb2ZpbGVDYXJkX3N1YnNjcmliZXJDb3VudF9fT19DTF97ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MThweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0teWVsbG93LXYxMDApfS5QcmVtaXVtUHJvZmlsZUNhcmRfdGV4dFdyYXBwZXJfX3NJY2tIe21hcmdpbi10b3A6OHB4fS5QcmVtaXVtUHJvZmlsZUNhcmRfc2Vjb25kYXJ5RGV0YWlsc1RleHRfX05FV1lTe2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzouMnB4fS5QcmVtaXVtUHJvZmlsZUNhcmRfc2Vjb25kYXJ5RGV0YWlsc1dyYXBwZXJfX0RIQ1RFe21hcmdpbjowIDEycHggNHB4fS5QcmVtaXVtUHJvZmlsZUNhcmRfdGl0bGVDb250YWluZXJfX3ZxSnFTe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LlByZW1pdW1Qcm9maWxlQ2FyZF9iaW9UaXRsZV9fbmVfVFF7Y29sb3I6I2ZmZjtmbGV4LXdyYXA6d3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1saW5lLWNsYW1wOjJ9LlByZW1pdW1Qcm9maWxlQ2FyZF9zdWJ0aXRsZV9fSWlReXl7Y29sb3I6dmFyKC0tY29udGVudC1zZWNvbmRhcnktY29sb3IpfS5QcmVtaXVtUHJvZmlsZUNhcmRfcGluSWNvbldyYXBwZXJfX2pBZjdae21hcmdpbi10b3A6MXB4fVtkaXI9bHRyXSAuUHJlbWl1bVByb2ZpbGVDYXJkX3Bpbkljb25XcmFwcGVyX19qQWY3WntmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDo1cHh9W2Rpcj1ydGxdIC5QcmVtaXVtUHJvZmlsZUNhcmRfcGluSWNvbldyYXBwZXJfX2pBZjdae2Zsb2F0OnJpZ2h0O21hcmdpbi1sZWZ0OjVweH0uUHJlbWl1bVByb2ZpbGVDYXJkX2xpbmtUZXh0X19JcXZHZHt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjp2YXIoLS15ZWxsb3ctdjEwMCl9LlB1YmxpY1N0b3J5Q2FyZF9kZXRhaWxzQ29udGFpbmVyX19lcGswbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxMnB4IDIwcHg7Y29sb3I6I2ZmZn0uUHVibGljU3RvcnlDYXJkX3B1Ymxpc2hlZFRpbWVfXzgzVXdxe21hcmdpbi10b3A6OHB4fS5QdWJsaWNTdG9yeUNhcmRfYmFkZ2VDb250YWluZXJfX0h3M3BFe2xpbmUtaGVpZ2h0OjE2cHg7cG9zaXRpb246YWJzb2x1dGV9W2Rpcj1sdHJdIC5QdWJsaWNTdG9yeUNhcmRfYmFkZ2VDb250YWluZXJfX0h3M3BFe3BhZGRpbmctbGVmdDo0cHh9W2Rpcj1ydGxdIC5QdWJsaWNTdG9yeUNhcmRfYmFkZ2VDb250YWluZXJfX0h3M3BFe3BhZGRpbmctcmlnaHQ6NHB4fS5TbmFwY29kZV94eGxhcmdlX19yY0FlNHt3aWR0aDozODBweDtoZWlnaHQ6MzgwcHh9LlNuYXBjb2RlX3hsYXJnZV9fTEJkNUF7d2lkdGg6MjQwcHg7aGVpZ2h0OjI0MHB4fS5TbmFwY29kZV9sYXJnZV9fTEhObkN7d2lkdGg6MTQ3cHg7aGVpZ2h0OjE0N3B4fS5TbmFwY29kZV9tZWRpdW1fX1ExUE92e3dpZHRoOjEyMHB4O2hlaWdodDoxMjBweH0uU25hcGNvZGVfc21hbGxfX1BuOUVme3dpZHRoOjgzcHg7aGVpZ2h0OjgzcHh9LlNuYXBjb2RlX3ByZXZpZXdfXzU2VUxsLC5TbmFwY29kZV94c21hbGxfX1BfZ0NQe3dpZHRoOjY3cHg7aGVpZ2h0OjY3cHh9LlNuYXBjb2RlX2Z1bGxfX3pFdzVne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LlRhYnNfdHJpZ2dlcnNfX2YxeWJRe2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjEwcHh9LlRhYnNfdGFiVHJpZ2dlcl9fVXhGU2Z7ZmxleDoxIDEgMDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LXNlY29uZGFyeSl9LlRhYnNfdGFiVHJpZ2dlcl9fVXhGU2Y+YnV0dG9ue2FwcGVhcmFuY2U6bm9uZTtmb250LWZhbWlseTpBdmVuaXIgTmV4dCwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxSb2JvdG8sU2Vnb2UgVUksSGVsdmV0aWNhO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7cGFkZGluZzoxMHB4IDA7Ym9yZGVyOm5vbmU7Ym9yZGVyLWJvdHRvbToycHggc29saWQgdHJhbnNwYXJlbnQ7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjppbmhlcml0O2NvbG9yOmluaGVyaXR9LlRhYnNfdGFiVHJpZ2dlckFjdGl2ZV9fbEhjRWt7Ym9yZGVyLWNvbG9yOmN1cnJlbnRDb2xvcjtjb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LXByaW1hcnkpfS5UYWJzX3RhYlRyaWdnZXJIaWdobGlnaHRfX3lkR1Z1e2NvbG9yOnZhcigtLXllbGxvdy12MTAwKX0uVGFic19zZWxlY3RlZEluZGljYXRvcl9fTnd0Nzd7Ym9yZGVyLWNvbG9yOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSk7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0uVGFic19uYXZfX1ZrSXpoe3Njcm9sbC1tYXJnaW46OTBweH0uVGFnX3RhZ0NvbnRhaW5lckJhc2VfX295aEkxe2JvcmRlci1yYWRpdXM6MjRweDtkaXNwbGF5OmlubGluZS1ibG9jazthcHBlYXJhbmNlOm5vbmU7Y3Vyc29yOnBvaW50ZXJ9LlRhZ190YWdDb250YWluZXJfX29OMEhme3BhZGRpbmc6MDtiYWNrZ3JvdW5kOmluaGVyaXR9LlRhZ195ZWxsb3dUYWdDb250YWluZXJfX3RpTExXe2JhY2tncm91bmQ6dmFyKC0teWVsbG93LXYxMDApO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9LlRhZ195ZWxsb3dUYWdDb250YWluZXJfX3RpTExXOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTUsMjUyLDAsLjUpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZX0uVGFnX3RhZ0NvbnRhaW5lcl9fb04wSGY6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWNhcmRiZyk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlfS5UYWdfdGFnQ29udGFpbmVySW5uZXJfXzIzeFNne3BhZGRpbmc6OHB4IDIwcHg7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5UYWdfdGFnQ29udGFpbmVyTm90U2VsZWN0ZWRfX2xZa1Aye2JvcmRlcjoxcHggc29saWQgdmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1zZWNvbmRhcnkpfS5UYWdfdGFnQ29udGFpbmVyU2VsZWN0ZWRfXzZodXlOe2JvcmRlcjoxcHggc29saWQgdmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1wcmltYXJ5KX0uVGFnX3RhZ0ludmlzaWJsZUJvcmRlcl9fV0FJS2Z7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH0uVGFnX3RhZ1RleHRfX3ZGZENDe2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MTZweDtmb250LXNpemU6MTRweDt3aGl0ZS1zcGFjZTpub3dyYXB9LlRvYXN0X3RvYXN0Q29udGFpbmVyX19tSGc0b3twb3NpdGlvbjpmaXhlZDt0b3A6LTEwMHB4O2xlZnQ6MTBweDtyaWdodDoxMHB4O3BhZGRpbmc6M3B4O2JvcmRlci1yYWRpdXM6NXB4O29wYWNpdHk6MDtjb2xvcjp2YXIoLS13aGl0ZSk7dGV4dC1hbGlnbjpjZW50ZXI7YW5pbWF0aW9uOlRvYXN0X3NsaWRlSW5PdXRfX3o0eGo0IDRzIGVhc2UtaW4tb3V0fS5Ub2FzdF9lcnJvcl9fcF9yT2l7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1yZWQtdjEwMCl9LlRvYXN0X3dhcm5fX3Q4RWpfe2JhY2tncm91bmQtY29sb3I6dmFyKC0teWVsbG93LXYxMDApfS5Ub2FzdF9pbmZvX19iTVBMU3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsdWUtdjE1MCl9QGtleWZyYW1lcyBUb2FzdF9zbGlkZUluT3V0X196NHhqNHsxMCV7b3BhY2l0eToxO3RvcDp2YXIoLS1jb25zdW1lci1uYXYtaGVpZ2h0KX05MCV7b3BhY2l0eToxO3RvcDp2YXIoLS1jb25zdW1lci1uYXYtaGVpZ2h0KX19LkltYWdlVGlsZV90aWxlQ29udGFpbmVyX19fRzZyRHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTJweDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5JbWFnZVRpbGVfaW1hZ2VXcmFwcGVyX19ia1BENXtvdmVyZmxvdzpoaWRkZW47b2JqZWN0LWZpdDpjb3Zlcjtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDZweCAxMnB4IDRweCByZ2JhKDAsMCwwLC4xKTt3aWR0aDoxMDAlfS5JbWFnZVRpbGVfdGlsZU1lZGlhX19vbFNLcXtvYmplY3QtZml0OmNvdmVyO3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5JbWFnZVRpbGVfb3ZlcmxheV9fYk81NWd7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOmluaGVyaXR9LkxlbnNUaWxlX3BsYWNlSG9sZGVyX19kc2podyBzdmcgcGF0aDpmaXJzdC1jaGlsZHtzdHJva2U6dmFyKC0tZ3JheS12MTAwKTtmaWxsOm5vbmV9LkxlbnNUaWxlX3BsYWNlSG9sZGVyX19kc2podyBzdmcgcGF0aDpub3QoZmlyc3QtY2hpbGQpe3N0cm9rZTp2YXIoLS1ncmF5LXYxMDApO2ZpbGw6dmFyKC0tZ3JheS12MTAwKX1bZGF0YS10aGVtZT1kYXJrXSAuTGVuc1RpbGVfcGxhY2VIb2xkZXJfX2Rzamh3IHN2ZyBwYXRoOmZpcnN0LWNoaWxke3N0cm9rZTp2YXIoLS1ibGFjay12NTApO2ZpbGw6bm9uZX0uTGVuc1RpbGVfcGxhY2VIb2xkZXJfX2Rzamh3IHN2ZyBwYXRoOm5vdChmaXJzdC1jaGlsZCl7c3Ryb2tlOnZhcigtLWJsYWNrLXY1MCk7ZmlsbDp2YXIoLS1ibGFjay12NTApfS5MZW5zVGlsZV9lbXB0eVRpbGVNZWRpYV9feUtkcmp7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOmluaGVyaXR9W2RhdGEtdGhlbWU9ZGFya10gLkxlbnNUaWxlX2VtcHR5VGlsZU1lZGlhX195S2RyantiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWN3LWxpZ2h0LXNsYXRlLWdyYXkpfS5MZW5zVGlsZV9saW5rX19MbkViWXt0ZXh0LWRlY29yYXRpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTpibG9ja30uTGVuc1RpbGVfdHJ1bmNhdGVkX18zVG1LbXtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LkxlbnNUaWxlX2xlbnNOYW1lX19odHhRa3tjb2xvcjp2YXIoLS1jb250ZW50LXByaW1hcnktY29sb3IpO3dpZHRoOjEwMCV9LkxlbnNUaWxlX2NyZWF0b3JOYW1lX192VVdxaHtjb2xvcjp2YXIoLS1jb250ZW50LXNlY29uZGFyeS1jb2xvcil9LkxlbnNUaWxlX2NyZWF0b3JOYW1lX192VVdxaCBzdmd7bWFyZ2luLXRvcDozcHg7bWFyZ2luLWJvdHRvbTotM3B4fS5MZW5zVGlsZV90aWxlSWNvbkNvbnRhaW5lcl9fU3JNSnl7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bWFyZ2luLWJvdHRvbTotMTRweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlfS5MZW5zVGlsZV90aWxlSWNvbl9fNHNya197d2lkdGg6NjRweDtoZWlnaHQ6NjRweH0uTGVuc1RpbGVfZGVzY3JpcHRpb25fX1pZRXpje3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoxNHB4O3BhZGRpbmc6NXB4O3RleHQtYWxpZ246Y2VudGVyfS5MZW5zVGlsZV9ibHVycmVkSW1hZ2VSYWRpdXNfX2RxSVBWe2JvcmRlci1yYWRpdXM6MTJweDstLWJsdXJyZWQtaWNvbi10aWxlLWJveC1zaGFkb3c6MCA2cHggMTJweCA0cHggcmdiYSgwLDAsMCwuMSl9LkJsdXJyZWRJY29uVGlsZV9jb250YWluZXJfX2pvTl9fe2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOmluaGVyaXQ7Ym94LXNoYWRvdzp2YXIoLS1ibHVycmVkLWljb24tdGlsZS1ib3gtc2hhZG93KX0uQmx1cnJlZEljb25UaWxlX2NvbnRhaW5lckxhcmdlX19BTGtjeXtib3JkZXItcmFkaXVzOmluaGVyaXQ7Ym94LXNoYWRvdzpub25lfS5CbHVycmVkSWNvblRpbGVfYmx1cnJlZEltYWdlQ29udGFpbmVyX191dFR5MntvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5CbHVycmVkSWNvblRpbGVfYmx1cnJlZEltYWdlX193RE5UUnt3aWR0aDoyNTAlO2ZpbHRlcjpibHVyKDEwcHgpfS5CbHVycmVkSWNvblRpbGVfaWNvbkNvbnRhaW5lcl9fZlZCSTJ7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5CbHVycmVkSWNvblRpbGVfaWNvbl9fSVVMSVJ7aGVpZ2h0OjMwJX0uQmx1cnJlZEljb25UaWxlX2ljb25SYWRpdXNDb250YWluZXJfX0dsM3pOe2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmxhY2stdjE1MCk7d2lkdGg6NDhweDtoZWlnaHQ6NDhweH0uQmx1cnJlZEljb25UaWxlX2ljb25SYWRpdXNfX0tGMUFBe2hlaWdodDo0NnB4O3dpZHRoOjQ2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjNweCBzb2xpZCAjZmZmfS5MZW5zVGlsZVBsYWNlaG9sZGVyX3BsYWNlSG9sZGVyVGlsZV9fZlA3d3p7Ym9yZGVyLXJhZGl1czoxNnB4fS5hbmltYXRpb25zX2xvYWRpbmdTa2VsZXRvbl9fMk5QTGl7YmFja2dyb3VuZC1zaXplOjIwMCUgMTAwJTthbmltYXRpb246YW5pbWF0aW9uc19za2VsZXRvbi1sb2FkaW5nX19NSV9xciAxcyBlYXNlLWluLW91dCBpbmZpbml0ZX1bZGlyPWx0cl0gLmFuaW1hdGlvbnNfbG9hZGluZ1NrZWxldG9uX18yTlBMaXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZyx2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWZlZWQtYmcpIDMwJSx2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LWJ1dHRvbi1wcmltYXJ5KSA0OCUsdmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tcHJpbWFyeSkgNTAlLHZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtZmVlZC1iZykgNTglKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgMH1bZGlyPXJ0bF0gLmFuaW1hdGlvbnNfbG9hZGluZ1NrZWxldG9uX18yTlBMaXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgtOTBkZWcsdmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1mZWVkLWJnKSAzMCUsdmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1idXR0b24tcHJpbWFyeSkgNDglLHZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtYnV0dG9uLXByaW1hcnkpIDUwJSx2YXIoLS1zZHMtd2ViYy1jb2xvci1zdXJmYWNlLWZlZWQtYmcpIDU4JSk7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9QGtleWZyYW1lcyBhbmltYXRpb25zX3NrZWxldG9uLWxvYWRpbmdfX01JX3Fye3Rve2JhY2tncm91bmQtcG9zaXRpb246LTEwMCUgMH19QGtleWZyYW1lcyBTZWFyY2hJbnB1dF9mYWRlLWluX185WnZIdXswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0uU2VhcmNoSW5wdXRfY29udGFpbmVyX19HZjY2ant3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtZmFtaWx5OmluaGVyaXR9LlNlYXJjaElucHV0X3NlYXJjaElucHV0X19QdnVfMXt3aWR0aDoxMDAlO2JhY2tncm91bmQ6dmFyKC0tc2RzLXdlYmMtY29sb3Itc3VyZmFjZS1wYWdlYmcpO2JvcmRlci1yYWRpdXM6MjBweDtwYWRkaW5nOjEwcHggMzBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtc2Vjb25kYXJ5KTtjb2xvcjp2YXIoLS1zZHMtd2ViYy1jb2xvci1jb250ZW50LXNlY29uZGFyeSk7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0fVtkaXI9bHRyXSAuU2VhcmNoSW5wdXRfc2VhcmNoSW5wdXRfX1B2dV8xe21hcmdpbi1yaWdodDoyMHB4fVtkaXI9cnRsXSAuU2VhcmNoSW5wdXRfc2VhcmNoSW5wdXRfX1B2dV8xe21hcmdpbi1sZWZ0OjIwcHh9LlNlYXJjaElucHV0X3NlYXJjaElucHV0X19QdnVfMTpmb2N1c3tib3JkZXItY29sb3I6dmFyKC0tc2RzLXdlYmMtY29sb3ItY29udGVudC1wcmltYXJ5KX0uU2VhcmNoSW5wdXRfc2VhcmNoSW5wdXRNb2JpbGVfX1NkM29Se2hlaWdodDo0MHB4fS5TZWFyY2hJbnB1dF9zZWFyY2hJbnB1dF9fUHZ1XzE6Zm9jdXN7b3V0bGluZTpub25lfS5TZWFyY2hJbnB1dF9pbnB1dEljb25fX3lKd1dae3Bvc2l0aW9uOmFic29sdXRlfVtkaXI9bHRyXSAuU2VhcmNoSW5wdXRfaW5wdXRJY29uX195SndXWnttYXJnaW46MTBweCAxMHB4IDEwcHggMTNweH1bZGlyPXJ0bF0gLlNlYXJjaElucHV0X2lucHV0SWNvbl9feUp3V1p7bWFyZ2luOjEwcHggMTNweCAxMHB4IDEwcHh9LlNlYXJjaElucHV0X2lucHV0SWNvbk1vYmlsZV9fVmFyekx7cG9zaXRpb246YWJzb2x1dGV9W2Rpcj1sdHJdIC5TZWFyY2hJbnB1dF9pbnB1dEljb25Nb2JpbGVfX1ZhcnpMe21hcmdpbjoxM3B4IDEwcHggMTBweCAxM3B4fVtkaXI9cnRsXSAuU2VhcmNoSW5wdXRfaW5wdXRJY29uTW9iaWxlX19WYXJ6THttYXJnaW46MTNweCAxM3B4IDEwcHggMTBweH0uU2VhcmNoSW5wdXRfaW5wdXRJY29uX195SndXWiBzdmcgcGF0aHtmaWxsOnZhcigtLXNkcy13ZWJjLWNvbG9yLXN1cmZhY2UtYnV0dG9uYmctcHJpbWFyeSl9LlNlYXJjaElucHV0X2NsZWFySWNvbl9fY2dUNTB7bWFyZ2luOjEwcHg7dG9wOjA7Y3Vyc29yOnBvaW50ZXJ9W2Rpcj1sdHJdIC5TZWFyY2hJbnB1dF9jbGVhckljb25fX2NnVDUwe3JpZ2h0OjB9W2Rpcj1ydGxdIC5TZWFyY2hJbnB1dF9jbGVhckljb25fX2NnVDUwe2xlZnQ6MH0uU2VhcmNoSW5wdXRfZXhwYW5kT25Gb2N1c19fVXhsNV8gaW5wdXR7d2lkdGg6MDtoZWlnaHQ6NDBweH1bZGlyPWx0cl0gLlNlYXJjaElucHV0X2V4cGFuZE9uRm9jdXNfX1V4bDVfIGlucHV0e3BhZGRpbmctcmlnaHQ6OXB4O21hcmdpbi1yaWdodDowfVtkaXI9cnRsXSAuU2VhcmNoSW5wdXRfZXhwYW5kT25Gb2N1c19fVXhsNV8gaW5wdXR7cGFkZGluZy1sZWZ0OjlweDttYXJnaW4tbGVmdDowfS5TZWFyY2hJbnB1dF9leHBhbmRPbkZvY3VzX19VeGw1XyBpbnB1dDpmb2N1cywuU2VhcmNoSW5wdXRfZXhwYW5kT25Gb2N1c19fVXhsNV86aG92ZXIgaW5wdXR7d2lkdGg6MTAwJX0uSGFzaFRhZ19oYXNoVGFnX19vV1l5Y3twYWRkaW5nOjRweCA2cHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmF5LXY3NSk7Y29sb3I6dmFyKC0tYmxhY2stdjE1MCk7Ym9yZGVyLXJhZGl1czo0cHh9Lkhhc2hUYWdfbGlua19fWXBiRDN7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0uSGFzaFRhZ19saW5rX19ZcGJEMzpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5FeHBhbnNpb25fZXhwYW5kaWJsZUNvbnRhaW5lcl9fVEhwWkwgZGl2e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5FeHBhbnNpb25fZXhwYW5zaW9uVGl0bGVfX0Z4VzF6e2N1cnNvcjpwb2ludGVyfVtkaXI9bHRyXSAuRXhwYW5zaW9uX2V4cGFuc2lvblRpdGxlX19GeFcxenttYXJnaW4tcmlnaHQ6MTBweH1bZGlyPXJ0bF0gLkV4cGFuc2lvbl9leHBhbnNpb25UaXRsZV9fRnhXMXp7bWFyZ2luLWxlZnQ6MTBweH0uRXhwYW5zaW9uX2J1dHRvbl9fcWR3Y1h7YWxsOnVuc2V0O2N1cnNvcjpwb2ludGVyfS5DaGF0SWNvbl9pY29uX19YdTlhQXtwb2ludGVyLWV2ZW50czpub25lfS5DaGF0SWNvbl9pY29uX19YdTlhQSBwYXRoe2ZpbGw6dmFyKC0tYmFja2dyb3VuZC1jb2xvcik7c3Ryb2tlOnZhcigtLXNkcy13ZWJjLWNvbG9yLWNvbnRlbnQtcHJpbWFyeSl9LkVtYWlsSWNvbl9pY29uQ29udGFpbmVyX19HZTNDQXtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWdyYXktdjE1MCk7Ym9yZGVyLXJhZGl1czoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7aGVpZ2h0OmluaGVyaXQ7d2lkdGg6aW5oZXJpdH0uRW1haWxJY29uX2ljb25TdHlsZV9fUDFZM1h7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwYWRkaW5nOjRweH1bZGF0YS10aGVtZT1kYXJrXSAuRW1haWxJY29uX2ljb25Db250YWluZXJfX0dlM0NBe2JvcmRlcjoxcHggc29saWQgdmFyKC0tYmxhY2stdjEwMCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjay12MTAwKX0uTGlua1NoYXJpbmdfd3JhcHBlcl9fSmlCYTl7aGVpZ2h0OjMycHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztib3JkZXItcmFkaXVzOjEwMHB4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JheS12MTAwKX0uTGlua1NoYXJpbmdfd3JhcHBlckxhcmdlX19sRl9nWnt3aWR0aDoxMDAlfVtkaXI9bHRyXSAuTGlua1NoYXJpbmdfd3JhcHBlckxhcmdlX19sRl9nWnttYXJnaW46MTJweCAxMnB4IDEycHggNHB4fVtkaXI9cnRsXSAuTGlua1NoYXJpbmdfd3JhcHBlckxhcmdlX19sRl9nWnttYXJnaW46MTJweCA0cHggMTJweCAxMnB4fS5MaW5rU2hhcmluZ193cmFwcGVyU21hbGxfX1g4VWM3e3dpZHRoOjMycHh9W2Rpcj1sdHJdIC5MaW5rU2hhcmluZ193cmFwcGVyU21hbGxfX1g4VWM3e21hcmdpbjoxMnB4IDEycHggMTJweCAxMXB4fVtkaXI9cnRsXSAuTGlua1NoYXJpbmdfd3JhcHBlclNtYWxsX19YOFVjN3ttYXJnaW46MTJweCAxMXB4IDEycHggMTJweH0uTGlua1NoYXJpbmdfbGlua0NvbnRhaW5lcl9fX3R1ZkR7ZmxleC1ncm93OjU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5MaW5rU2hhcmluZ19saW5rX180a2FKcnttYXgtd2lkdGg6MjUwcHg7d2lkdGg6MTAwJTtmb250LWZhbWlseTppbmhlcml0O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWJsYWNrLXY1MCk7Zm9udC1zaXplOjE0cHh9W2Rpcj1sdHJdIC5MaW5rU2hhcmluZ19saW5rX180a2FKcnttYXJnaW46MTBweCA2cHggMTBweCAxNnB4fVtkaXI9cnRsXSAuTGlua1NoYXJpbmdfbGlua19fNGthSnJ7bWFyZ2luOjEwcHggMTZweCAxMHB4IDZweH0uTGlua1NoYXJpbmdfY29weUxpbmtfX1p0MXlpe2NvbG9yOiNmZmY7Ym9yZGVyLXN0eWxlOm5vbmU7Zm9udC1mYW1pbHk6aW5oZXJpdDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stdjE1MCk7d2hpdGUtc3BhY2U6bm93cmFwfS5MaW5rU2hhcmluZ19jb3B5TGlua1NtYWxsX19YWkZFbHtib3JkZXItcmFkaXVzOjEwMHB4O3BhZGRpbmc6N3B4fS5MaW5rU2hhcmluZ19jb3B5TGlua01lZGl1bV9fVW5KYV97Ym9yZGVyLXJhZGl1czoxMDBweDtwYWRkaW5nOjdweCAxNHB4fVtkaXI9bHRyXSAuTGlua1NoYXJpbmdfY29weUxpbmtMYXJnZV9fNFo5S0V7Ym9yZGVyLXJhZGl1czowIDEwMHB4IDEwMHB4IDA7cGFkZGluZzo3cHggMjJweCA3cHggMTZweH1bZGlyPXJ0bF0gLkxpbmtTaGFyaW5nX2NvcHlMaW5rTGFyZ2VfXzRaOUtFe2JvcmRlci1yYWRpdXM6MTAwcHggMCAwIDEwMHB4O3BhZGRpbmc6N3B4IDE2cHggN3B4IDIycHh9W2RhdGEtdGhlbWU9ZGFya10gLkxpbmtTaGFyaW5nX2NvcHlMaW5rX19adDF5aXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrLXYxMDApfVtkYXRhLXRoZW1lPWRhcmtdIC5MaW5rU2hhcmluZ193cmFwcGVyX19KaUJhOXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNTgsNjIsNjUsLjQpfVtkYXRhLXRoZW1lPWRhcmtdIC5MaW5rU2hhcmluZ19saW5rX180a2FKcntjb2xvcjp2YXIoLS1ncmF5LXYyMDApfS5MaW5rU2hhcmluZ190b29sdGlwQ29udGFpbmVyX19nWWx2OHttYXJnaW4tdG9wOi01MHB4O21hcmdpbi1ib3R0b206MTVweDtwb3NpdGlvbjphYnNvbHV0ZX0uTGlua1NoYXJpbmdfaWNvbl9fcDJFNFZ7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpub25lO3BhZGRpbmc6MDt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtY29sb3I6I2I5YzBjNztib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LkxpbmtTaGFyaW5nX2NvcHlMaW5rSWNvbl9fdVMwa1M+c3ZnPnBhdGh7ZmlsbDojZmZmfS5MaW5rU2hhcmluZ19jb3BpZWRMaW5rSWNvbl9fOXdZel8+c3ZnPnBhdGh7c3Ryb2tlOiNmZmZ9LkxpbmtTaGFyaW5nX2J1dHRvbldyYXBwZXJfXzdobVhDe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lk9mZlBsYXRmb3JtU2hhcmluZ19jb250YWluZXJfXzVEY3BCe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7bWF4LXdpZHRoOjMxMnB4fVtkaXI9bHRyXSAuT2ZmUGxhdGZvcm1TaGFyaW5nX2NvbnRhaW5lcl9fNURjcEJ7cGFkZGluZy1sZWZ0OjExcHh9W2Rpcj1ydGxdIC5PZmZQbGF0Zm9ybVNoYXJpbmdfY29udGFpbmVyX181RGNwQntwYWRkaW5nLXJpZ2h0OjExcHh9W2Rpcj1sdHJdIC5PZmZQbGF0Zm9ybVNoYXJpbmdfaWNvbl9fUTFpRmt7bWFyZ2luLXJpZ2h0OjdweH1bZGlyPXJ0bF0gLk9mZlBsYXRmb3JtU2hhcmluZ19pY29uX19RMWlGa3ttYXJnaW4tbGVmdDo3cHh9Lk9mZlBsYXRmb3JtU2hhcmluZ19pY29uV3JhcHBlcl9fbEJWVGx7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0uU2hhcmVCYXJfc2hhcmVDb250YWluZXJfX3pHcDhCe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2FyZC1iZy1jb2xvcik7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aWR0aDoxMDAlO2hlaWdodDo1NnB4O2JvcmRlci1yYWRpdXM6OHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2hhZG93Om5vbmU7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXJ9LlNoYXJlQmFyX3NoYXJlQ29udGFpbmVyQm94U2hhZG93X19CQnExNntib3gtc2hhZG93OjAgOHB4IDEycHggLTRweCByZ2JhKDAsMCwwLC4yNSl9LkZyZWVzdGFuZGluZ01vYmlsZVNoYXJlSWNvbl9jb250YWluZXJfX0Z2Yk9ye2JvcmRlci1yYWRpdXM6MTAwcHg7Ym94LXNoYWRvdzowIDRweCA4cHggLTJweCByZ2JhKDAsMCwwLC4yNSk7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyOm5vbmU7cGFkZGluZzowfS5GcmVlc3RhbmRpbmdNb2JpbGVTaGFyZUljb25fY29udGFpbmVyRGVmYXVsdF9fTlo3WGx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjay12MTAwKX0uRnJlZXN0YW5kaW5nTW9iaWxlU2hhcmVJY29uX2NvbnRhaW5lcldpdGhUcmFuc3BhcmVuY3lfX1laQTBIe2JhY2tncm91bmQtY29sb3I6cmdiYSgxOCwxOSwyMCwuNSl9LkZyZWVzdGFuZGluZ01vYmlsZVNoYXJlSWNvbl9jb250YWluZXJEZWZhdWx0X19OWjdYbCBzdmcsLkZyZWVzdGFuZGluZ01vYmlsZVNoYXJlSWNvbl9jb250YWluZXJEZWZhdWx0X19OWjdYbCBzdmcgKiwuRnJlZXN0YW5kaW5nTW9iaWxlU2hhcmVJY29uX2NvbnRhaW5lcldpdGhUcmFuc3BhcmVuY3lfX1laQTBIIHN2ZywuRnJlZXN0YW5kaW5nTW9iaWxlU2hhcmVJY29uX2NvbnRhaW5lcldpdGhUcmFuc3BhcmVuY3lfX1laQTBIIHN2ZyAqe2ZpbGw6I2ZmZjtzdHJva2U6I2ZmZn0uU2hhcmVTaGVldF9jb250YWluZXJfX3N2c3Iye2NvbG9yOnZhcigtLWJsYWNrLXYxNTApO3dpZHRoOjEwMCU7Ym94LXNoYWRvdzowIC0xMHB4IDI0cHggcmdiYSgwLDAsMCwuMik7Ym9yZGVyLXJhZGl1czoyMHB4IDIwcHggMCAwO292ZXJmbG93OmhpZGRlbn0uU2hhcmVTaGVldF9ib2R5X19OdU1KT3tiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZy10b3A6MTlweDtwYWRkaW5nLWJvdHRvbTozN3B4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5TaGFyZVNoZWV0X3RpdGxlX19PZDVaZXttYXJnaW4tYm90dG9tOjIxcHh9W2Rpcj1sdHJdIC5TaGFyZVNoZWV0X3RpdGxlX19PZDVaZXttYXJnaW4tbGVmdDoxM3B4fVtkaXI9cnRsXSAuU2hhcmVTaGVldF90aXRsZV9fT2Q1WmV7bWFyZ2luLXJpZ2h0OjEzcHh9LlNoYXJlU2hlZXRfY2xvc2VCdXR0b25fXzFuczVOe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3BhZGRpbmctdG9wOjIzcHh9W2Rpcj1sdHJdIC5TaGFyZVNoZWV0X2Nsb3NlQnV0dG9uX18xbnM1TntyaWdodDowO3BhZGRpbmctcmlnaHQ6MTdweH1bZGlyPXJ0bF0gLlNoYXJlU2hlZXRfY2xvc2VCdXR0b25fXzFuczVOe2xlZnQ6MDtwYWRkaW5nLWxlZnQ6MTdweH0uU2hhcmVTaGVldF9tZWRpYVBsYXRmb3Jtc19feWNSXzR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWdyb3c6MTtvdmVyZmxvdzpoaWRkZW47b3ZlcmZsb3cteDpzY3JvbGw7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9W2Rpcj1sdHJdIC5TaGFyZVNoZWV0X21lZGlhUGxhdGZvcm1zX195Y1JfNHtwYWRkaW5nLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5TaGFyZVNoZWV0X21lZGlhUGxhdGZvcm1zX195Y1JfNHtwYWRkaW5nLWxlZnQ6MTJweH0uU2hhcmVTaGVldF9tZWRpYVBsYXRmb3Jtc19feWNSXzQgOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LlNoYXJlU2hlZXRfaWNvbl9fM2kydHl7ZGlzcGxheTpmbGV4O2hlaWdodDo1MHB4O3dpZHRoOjUwcHh9W2Rpcj1sdHJdIC5TaGFyZVNoZWV0X2ljb25fXzNpMnR5e21hcmdpbi1sZWZ0OjEzcHh9W2Rpcj1ydGxdIC5TaGFyZVNoZWV0X2ljb25fXzNpMnR5e21hcmdpbi1yaWdodDoxM3B4fS5TaGFyZVNoZWV0X2ljb25IZWFkaW5nX19OWm9YV3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcn0uU2hhcmVTaGVldF9pY29uSGVhZGluZ1RleHRfX1pFSm9We2ZvbnQtc2l6ZToxMHB4O2xpbmUtaGVpZ2h0OjEycHg7ZGlzcGxheTpmbGV4O3RleHQtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1ibGFjay12NTApO21hcmdpbi10b3A6NXB4fVtkaXI9bHRyXSAuU2hhcmVTaGVldF9pY29uSGVhZGluZ1RleHRfX1pFSm9We21hcmdpbi1sZWZ0OjEzcHh9W2Rpcj1ydGxdIC5TaGFyZVNoZWV0X2ljb25IZWFkaW5nVGV4dF9fWkVKb1Z7bWFyZ2luLXJpZ2h0OjEzcHh9LlNoYXJlU2hlZXRfaWNvbldyYXBwZXJfX3QwalYwe2hlaWdodDo1MHB4O3dpZHRoOjUwcHg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5TaGFyZVNoZWV0X2ljb25XcmFwcGVyX190MGpWMCBzdmd7aGVpZ2h0OjEwMCV9LlNoYXJlU2hlZXRQb3B1cF9jb250YWluZXJfX3lNRmR3e3dpZHRoOjEwMCU7ei1pbmRleDp2YXIoLS1zaGFyZS1zaGVldC16LWluZGV4KX0uU2hhcmVTaGVldFBvcHVwX29wZW5TdHlsZV9fZXpBc197dHJhbnNpdGlvbjphbGwgLjM1cyBlYXNlLWluLW91dDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTAwJSk7cG9zaXRpb246Zml4ZWR9LlNoYXJlU2hlZXRQb3B1cF9jbG9zZVN0eWxlX18ycFhNbXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX1bZGlyPWx0cl0gLkNUQUZvb3Rlcl9kZXNrdG9wQnV0dG9uV3JhcHBlcl9femtDU217bWFyZ2luLWxlZnQ6MTBweH1bZGlyPXJ0bF0gLkNUQUZvb3Rlcl9kZXNrdG9wQnV0dG9uV3JhcHBlcl9femtDU217bWFyZ2luLXJpZ2h0OjEwcHh9LkNUQUZvb3Rlcl9tb2JpbGVDdXN0b21Gb290ZXJXcmFwcGVyX181MFAzTntwb3NpdGlvbjpmaXhlZDtib3R0b206MDt6LWluZGV4OnZhcigtLWN0YS1mb290ZXItei1pbmRleCk7d2lkdGg6MTAwJX1bZGlyPWx0cl0gLkNUQUZvb3Rlcl9tb2JpbGVDdXN0b21Gb290ZXJXcmFwcGVyX181MFAzTntsZWZ0OjB9W2Rpcj1ydGxdIC5DVEFGb290ZXJfbW9iaWxlQ3VzdG9tRm9vdGVyV3JhcHBlcl9fNTBQM057cmlnaHQ6MH0uQ1RBRm9vdGVyX2Rlc2t0b3BDdGFMaW5rX19CVU1fM3thbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0teWVsbG93LXYxMDApO2Rpc3BsYXk6aW5saW5lLWZsZXg7Zm9udC13ZWlnaHQ6ODAwfVtkaXI9bHRyXSAuQ1RBRm9vdGVyX2Rlc2t0b3BDdGFMaW5rX19CVU1fMz5zdmd7bWFyZ2luLWxlZnQ6NXB4fVtkaXI9cnRsXSAuQ1RBRm9vdGVyX2Rlc2t0b3BDdGFMaW5rX19CVU1fMz5zdmd7bWFyZ2luLXJpZ2h0OjVweH0uQ1RBRm9vdGVyX2Rlc2t0b3BDdGFMaW5rX19CVU1fMz5zdmc+cGF0aHtmaWxsOnZhcigtLXllbGxvdy12MTAwKX0uTW9iaWxlQ29tcGFjdENUQUJhbm5lcl9tb2JpbGVDb21wYWN0Q3RhQmFubmVyX19pbWdfZnthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JveC1zaGFkb3c6MCA0cHggOHB4IC0ycHggcmdiYSgwLDAsMCwuMjUpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6MTAwcHg7Ym9yZGVyOjA7Y29sb3I6IzAwMDt3aWR0aDpmaXQtY29udGVudDtwYWRkaW5nOjhweCAxNnB4O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE2cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWFyZ2luOjAgYXV0byAyMHB4fVtkaXI9bHRyXSAuTW9iaWxlQ29tcGFjdENUQUJhbm5lcl9tb2JpbGVDb21wYWN0Q3RhQmFubmVyX19pbWdfZj5zdmd7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLk1vYmlsZUNvbXBhY3RDVEFCYW5uZXJfbW9iaWxlQ29tcGFjdEN0YUJhbm5lcl9faW1nX2Y+c3Zne21hcmdpbi1sZWZ0OjhweH0uTW9iaWxlRGVmYXVsdENUQUJhbm5lcl9jb250YWluZXJfX1djSk1ue2hlaWdodDoxMDAlO3dpZHRoOmluaGVyaXQ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stdjE1MCl9Lk1vYmlsZUV4cGFuZGVkQ1RBQmFubmVyX21vYmlsZUV4cGFuZGVkQ3RhQmFubmVyX184ZXdxbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoyMHB4IDIwcHggMCAwO3BhZGRpbmctYm90dG9tOjE1cHg7d2lkdGg6MTAwJTt6LWluZGV4OnZhcigtLWN0YS1mb290ZXItei1pbmRleCl9Lk1vYmlsZUV4cGFuZGVkQ1RBQmFubmVyX21vYmlsZUV4cGFuZGVkQ3RhQmFubmVyX184ZXdxbj5oM3tjb2xvcjojMmMzMTM3O21hcmdpbjowO3BhZGRpbmc6MTZweCAwO3RleHQtYWxpZ246Y2VudGVyfS5Nb2JpbGVFeHBhbmRlZENUQUJhbm5lcl9tb2JpbGVFeHBhbmRlZEN0YUJhbm5lckl0ZW1XcmFwcGVyX195RjlCa3ttYXJnaW46MCBhdXRvO3BhZGRpbmc6MDt3aWR0aDozMjBweH0uTW9iaWxlRXhwYW5kZWRDVEFCYW5uZXJfbW9iaWxlRXhwYW5kZWRDdGFCYW5uZXJJdGVtX19pQnpHY3thbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbjowIGF1dG8gMTVweH0uTW9iaWxlRXhwYW5kZWRDVEFCYW5uZXJfbW9iaWxlRXhwYW5kZWRDdGFCYW5uZXJJdGVtX19pQnpHYz5kaXZ7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOiM2NTZkNzg7ZGlzcGxheTpmbGV4fVtkaXI9bHRyXSAuTW9iaWxlRXhwYW5kZWRDVEFCYW5uZXJfbW9iaWxlRXhwYW5kZWRDdGFCYW5uZXJJdGVtX19pQnpHYz5kaXY+c3Zne21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5Nb2JpbGVFeHBhbmRlZENUQUJhbm5lcl9tb2JpbGVFeHBhbmRlZEN0YUJhbm5lckl0ZW1fX2lCekdjPmRpdj5zdmd7bWFyZ2luLWxlZnQ6OHB4fS5Nb2JpbGVFeHBhbmRlZENUQUJhbm5lcl9tb2JpbGVFeHBhbmRlZEN0YUJhbm5lckJhY2tkcm9wX19OZGkyQntiYWNrZ3JvdW5kOnJnYmEoMTgsMTksMjAsLjUpO3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO3otaW5kZXg6dmFyKC0tY3RhLWZvb3Rlci16LWluZGV4KTtoZWlnaHQ6MTAwJTt0b3A6MDt3aWR0aDoxMDAlfVtkaXI9bHRyXSAuTW9iaWxlRXhwYW5kZWRDVEFCYW5uZXJfbW9iaWxlRXhwYW5kZWRDdGFCYW5uZXJCYWNrZHJvcF9fTmRpMkJ7bGVmdDowfVtkaXI9cnRsXSAuTW9iaWxlRXhwYW5kZWRDVEFCYW5uZXJfbW9iaWxlRXhwYW5kZWRDdGFCYW5uZXJCYWNrZHJvcF9fTmRpMkJ7cmlnaHQ6MH0uRm9vdGVyX2Jhc2VfX1RUQ1Zke3dpZHRoOjEwMCU7bWluLWhlaWdodDo0OHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjojZmZmfVtkaXI9bHRyXSAuRm9vdGVyX2Jhc2VfX1RUQ1Zke2xlZnQ6MH1bZGlyPXJ0bF0gLkZvb3Rlcl9iYXNlX19UVENWZHtyaWdodDowfS5Gb290ZXJfYmFzZU1vYmlsZV9fWHBsc0l7ei1pbmRleDphdXRvO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6MDtib3JkZXItcmFkaXVzOjB9LkZvb3Rlcl9iYXNlRGVza3RvcF9fVFkyUV97ei1pbmRleDoxMDtwb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO2JvdHRvbTowO21pbi1oZWlnaHQ6NTRweDttYXgtaGVpZ2h0Ojk2cHg7aGVpZ2h0OjUlO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stdjE1MCl9LkZvb3Rlcl9mb290ZXJDb250YWluZXJfX3NZclVCe2JvdHRvbTowO3otaW5kZXg6dmFyKC0tY3RhLWZvb3Rlci16LWluZGV4KTt3aWR0aDoxMDAlfVtkaXI9bHRyXSAuRm9vdGVyX2Zvb3RlckNvbnRhaW5lcl9fc1lyVUJ7bGVmdDowfVtkaXI9cnRsXSAuRm9vdGVyX2Zvb3RlckNvbnRhaW5lcl9fc1lyVUJ7cmlnaHQ6MH0uRm9vdGVyX2Zvb3RlckNvbnRhaW5lcl9fc1lyVUIgLkZvb3Rlcl9iYXNlTW9iaWxlX19YcGxzSXtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQ3OXB4KXsuRm9vdGVyX2Zvb3RlckNvbnRhaW5lcl9fc1lyVUJ7cG9zaXRpb246Zml4ZWR9fS5Gb290ZXJfZm9vdGVyQ29udGFpbmVyRXhwYW5kZWRfX3h1bGFfe3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO3dpZHRoOjEwMCU7ei1pbmRleDoxMH1bZGlyPWx0cl0gLkZvb3Rlcl9mb290ZXJDb250YWluZXJFeHBhbmRlZF9feHVsYV97bGVmdDowfVtkaXI9cnRsXSAuRm9vdGVyX2Zvb3RlckNvbnRhaW5lckV4cGFuZGVkX194dWxhX3tyaWdodDowfS5Gb290ZXJfcmVzcG9uc2l2ZUZvb3RlckNvbnRhaW5lcl9fUWFVUFN7d2lkdGg6MTAwJX0uRm9vdGVyX3Jlc3BvbnNpdmVGb290ZXJDb250YWluZXJEZXNrdG9wX19VZVN4MnttYXJnaW4tYm90dG9tOjUycHh9LkZvb3Rlcl9yZXNwb25zaXZlRm9vdGVyQ29udGFpbmVyRXhwYW5kZWRfX1FKMVlwe2hlaWdodDo0MTRweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLXRvcDoxMDBweH0uRm9vdGVyX2Rlc2t0b3BMaW5rc19fMHJWQmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cGFkZGluZy1ib3R0b206MTVweDt6LWluZGV4OjEwMDB9W2Rpcj1sdHJdIC5Gb290ZXJfZGVza3RvcExpbmtzX18wclZCZXtsZWZ0OjA7cGFkZGluZy1sZWZ0OjE1cHh9W2Rpcj1ydGxdIC5Gb290ZXJfZGVza3RvcExpbmtzX18wclZCZXtyaWdodDowO3BhZGRpbmctcmlnaHQ6MTVweH0uRm9vdGVyX2Rlc2t0b3BMaW5rc19fMHJWQmUgYXtsaW5lLWhlaWdodDoxOXB4O2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9W2Rpcj1sdHJdIC5Gb290ZXJfZGVza3RvcExpbmtzX18wclZCZSBhe21hcmdpbi1yaWdodDoxNXB4fVtkaXI9cnRsXSAuRm9vdGVyX2Rlc2t0b3BMaW5rc19fMHJWQmUgYXttYXJnaW4tbGVmdDoxNXB4fVtkaXI9bHRyXSAuRm9vdGVyX2Rlc2t0b3BJY29uX19BYnhnT3twYWRkaW5nLXJpZ2h0OjI1MHB4O3JpZ2h0OjIwcHh9W2Rpcj1ydGxdIC5Gb290ZXJfZGVza3RvcEljb25fX0FieGdPe3BhZGRpbmctbGVmdDoyNTBweDtsZWZ0OjIwcHh9LkZvb3Rlcl9pY29uX19TYjBKS3twb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtwYWRkaW5nLWJvdHRvbToxNXB4O3otaW5kZXg6MTAwMH1bZGlyPWx0cl0gLkZvb3Rlcl9pY29uX19TYjBKS3tyaWdodDowO3BhZGRpbmctcmlnaHQ6MTVweH1bZGlyPXJ0bF0gLkZvb3Rlcl9pY29uX19TYjBKS3tsZWZ0OjA7cGFkZGluZy1sZWZ0OjE1cHh9LkZvb3Rlcl9pY29uRXhwYW5kZWRfX0hlTHMze3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAwMH1bZGlyPWx0cl0gLkZvb3Rlcl9pY29uRXhwYW5kZWRfX0hlTHMze3JpZ2h0OjA7cGFkZGluZy1yaWdodDoxNXB4fVtkaXI9cnRsXSAuRm9vdGVyX2ljb25FeHBhbmRlZF9fSGVMczN7bGVmdDowO3BhZGRpbmctbGVmdDoxNXB4fS5Gb290ZXJfaGlnaGxpZ2h0ZWRUZXh0X19hbTVuY3tjb2xvcjp2YXIoLS15ZWxsb3ctdjEwMCk7cGFkZGluZzowIDVweH0uRm9vdGVyX2hpZ2hsaWdodGVkVGV4dF9fYW01bmM+c3Zne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1bZGlyPWx0cl0gLkZvb3Rlcl9oaWdobGlnaHRlZFRleHRfX2FtNW5jPnN2Z3ttYXJnaW4tcmlnaHQ6NXB4fVtkaXI9cnRsXSAuRm9vdGVyX2hpZ2hsaWdodGVkVGV4dF9fYW01bmM+c3Zne21hcmdpbi1sZWZ0OjVweH0uRm9vdGVyX3RleHRfX2hORTM3e2NvbG9yOiNmZmZ9LlJlc3BvbnNpdmVTbmFwY2hhdEZvb3Rlcl9mb290ZXJDb250YWluZXJfX29yd3RHe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7bWluLWhlaWdodDo0OHB4fS5SZXNwb25zaXZlU25hcGNoYXRGb290ZXJfZm9vdGVyRXhwYW5kZWRfXzljR0dfe2NvbG9yOnZhcigtLWJsYWNrLXYxNTApO2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDt3aWR0aDoxMDAlfVtkaXI9bHRyXSAuUmVzcG9uc2l2ZVNuYXBjaGF0Rm9vdGVyX2Zvb3RlckV4cGFuZGVkX185Y0dHX3tsZWZ0OjB9W2Rpcj1ydGxdIC5SZXNwb25zaXZlU25hcGNoYXRGb290ZXJfZm9vdGVyRXhwYW5kZWRfXzljR0dfe3JpZ2h0OjB9LlJlc3BvbnNpdmVTbmFwY2hhdEZvb3Rlcl9mb290ZXJFeHBhbmRlZF9fOWNHR18+ZGl2e3dpZHRoOjEwMCV9LlRvYXN0Qm9keV90b2FzdEJvZHlfX2MyWkk3e3otaW5kZXg6dmFyKC0tdXBzZWxsLXotaW5kZXgpO2NvbG9yOnZhcigtLWJsYWNrLXYxNTApO3Bvc2l0aW9uOmZpeGVkO2JvdHRvbToxMnB4O3dpZHRoOjQ3MHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXllbGxvdy12MTAwKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3RleHQtYWxpZ246Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkO2FuaW1hdGlvbjpUb2FzdEJvZHlfZmFkZUluX19qbVJhXyAuNXN9W2Rpcj1sdHJdIC5Ub2FzdEJvZHlfdG9hc3RCb2R5X19jMlpJN3tyaWdodDoxMnB4O3BhZGRpbmc6MTZweCAzNnB4IDE2cHggMjRweH1bZGlyPXJ0bF0gLlRvYXN0Qm9keV90b2FzdEJvZHlfX2MyWkk3e2xlZnQ6MTJweDtwYWRkaW5nOjE2cHggMjRweCAxNnB4IDM2cHh9QGtleWZyYW1lcyBUb2FzdEJvZHlfZmFkZUluX19qbVJhX3swJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0uVG9hc3RCb2R5X3RvYXN0SGVhZGVyX19VMEJEWXtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjI4cHg7bGluZS1oZWlnaHQ6MzVweDtsZXR0ZXItc3BhY2luZzotLjI1cHh9LlRvYXN0Qm9keV90b2FzdERlc2NyaXB0aW9uX19xdlNES3ttYXJnaW46OHB4IDQycHg7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjIyLjVweDtsZXR0ZXItc3BhY2luZzotLjI1cHh9LlRvYXN0Qm9keV93ZWJDaGF0Q3RhX19hRndpQntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzo4cHggMzZweDtib3JkZXItcmFkaXVzOjUwMHB4O2JvcmRlcjowO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNXB4O2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmxhY2stdjIwMCk7Y29sb3I6I2ZmZn0uVG9hc3RCb2R5X2Nyb3NzSWNvbl9fZml5M3d7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEycHh9W2Rpcj1sdHJdIC5Ub2FzdEJvZHlfY3Jvc3NJY29uX19maXkzd3tyaWdodDoxMnB4fVtkaXI9cnRsXSAuVG9hc3RCb2R5X2Nyb3NzSWNvbl9fZml5M3d7bGVmdDoxMnB4fS5Ub2FzdEJvZHlfY2hhdEljb25fX19tWXRUe3Bvc2l0aW9uOnJlbGF0aXZlfVtkaXI9bHRyXSAuVG9hc3RCb2R5X2NoYXRJY29uX19fbVl0VHttYXJnaW4tcmlnaHQ6MTRweH1bZGlyPXJ0bF0gLlRvYXN0Qm9keV9jaGF0SWNvbl9fX21ZdFR7bWFyZ2luLWxlZnQ6MTRweH0uVG9hc3RCb2R5X2NoYXRJY29uX19fbVl0VCBzdmd7bWFyZ2luLWJvdHRvbTotMnB4fS5Ub2FzdEJvZHlfbmV3SWNvbl9fMFE3WTJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMHB4fVtkaXI9bHRyXSAuVG9hc3RCb2R5X25ld0ljb25fXzBRN1kye3JpZ2h0Oi0xMHB4fVtkaXI9cnRsXSAuVG9hc3RCb2R5X25ld0ljb25fXzBRN1kye2xlZnQ6LTEwcHh9Lk1vYmlsZU5hdmlnYXRpb25fbW9iaWxlTmF2Q29udGFpbmVyX19lbl9LZHtwb3NpdGlvbjpmaXhlZDt0b3A6dmFyKC0tbmF2LWJ1dHRvbi10b3ApO3otaW5kZXg6dmFyKC0tY29uc3VtZXItbmF2LXotaW5kZXgpfVtkaXI9bHRyXSAuTW9iaWxlTmF2aWdhdGlvbl9tb2JpbGVOYXZDb250YWluZXJfX2VuX0tke2xlZnQ6MDtwYWRkaW5nLWxlZnQ6NSV9W2Rpcj1ydGxdIC5Nb2JpbGVOYXZpZ2F0aW9uX21vYmlsZU5hdkNvbnRhaW5lcl9fZW5fS2R7cmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjUlfS5Nb2JpbGVOYXZpZ2F0aW9uX21vYmlsZU5hdkNvbnRhaW5lcl9fZW5fS2QgbmF2LC5Nb2JpbGVOYXZpZ2F0aW9uX25hdlYyQ29udGFpbmVyX19SYnBFeHtwYWRkaW5nLWJvdHRvbTp2YXIoLS1zbmFwY2hhdC1mb290ZXItbWluLWhlaWdodCl9Lk1vYmlsZU5hdmlnYXRpb25fbmF2VjJDb250YWluZXJfX1JicEV4e3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7ei1pbmRleDp2YXIoLS1tb2JpbGUtbmF2LXYyLXotaW5kZXgpO3RyYW5zaXRpb24tcHJvcGVydHk6YWxsO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tZHVyYXRpb246LjVzfS5Nb2JpbGVOYXZpZ2F0aW9uX21vYmlsZU5hdlYyRGlzcGxheWVkX191Q0RJQXtib3R0b206MH1bZGlyPWx0cl0gLk1vYmlsZU5hdmlnYXRpb25fbW9iaWxlTmF2VjJEaXNwbGF5ZWRfX3VDRElBe2xlZnQ6MH1bZGlyPXJ0bF0gLk1vYmlsZU5hdmlnYXRpb25fbW9iaWxlTmF2VjJEaXNwbGF5ZWRfX3VDRElBe3JpZ2h0OjB9Lk1vYmlsZU5hdmlnYXRpb25fbW9iaWxlTmF2VjJIaWRkZGVuX19FUlRMX3tib3R0b206Y2FsYygtMSAqIHZhcigtLWNvbnN1bWVyLW5hdi1oZWlnaHQpKX0uTW9iaWxlTmF2aWdhdGlvbl93aGl0ZUJnX19rV09HOSAqLC5Nb2JpbGVOYXZpZ2F0aW9uX3doaXRlQmdfX2tXT0c5IGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmOy0taG92ZXItYmctY29sb3I6I2ZmZiFpbXBvcnRhbnR9LkRlc2t0b3BOYXZpZ2F0aW9uX25hdkNvbnRhaW5lcl9fNFVRZ0N7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDp2YXIoLS1jb25zdW1lci1uYXYtei1pbmRleCl9LlBhZ2VGcmFtZV9wYWdlRnJhbWVfXzZ0dTZue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LlBhZ2VGcmFtZV9mb290ZXJXcmFwcGVyX19SOUpabHt3aWR0aDoxMDAlfS5QYWdlRnJhbWVfbW9iaWxlRm9vdGVyV3JhcHBlcl9fQWI5SmZ7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjA7ei1pbmRleDp2YXIoLS1mb290ZXItei1pbmRleCl9LkxvYWRpbmdQYWdlX2Z1bGxQYWdlX19rRWpmbntoZWlnaHQ6MTAwdmg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5Mb2FkaW5nUGFnZV90aGVtZVN0eWxlc19fc19UOXN7YmFja2dyb3VuZDp2YXIoLS1wYWdlLWJnLWNvbG9yKX0uTG9hZGluZ1BhZ2VfbG9hZGluZ0Zvb3Rlcl9fTG9mTm97cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjI0cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH1bZGlyPWx0cl0gLkxvYWRpbmdQYWdlX2xvYWRpbmdGb290ZXJfX0xvZk5ve2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfVtkaXI9cnRsXSAuTG9hZGluZ1BhZ2VfbG9hZGluZ0Zvb3Rlcl9fTG9mTm97cmlnaHQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDUwJSl9LkxvYWRpbmdQYWdlX2NvcHlSaWdodFRleHRfX1plV0Jve2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6OHB4O2xpbmUtaGVpZ2h0OjE4cHg7Y29sb3I6dmFyKC0tYmxhY2stdjUwKX06cm9vdHstLWN0YS1wb3B1cC16LWluZGV4Ojk5OTl9QGtleWZyYW1lcyBNb2JpbGVQb3B1cENUQV9ncm93SW5fX2UyVEtCezAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKSBzY2FsZSgwKTtvcGFjaXR5OjB9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpIHNjYWxlKDEpO29wYWNpdHk6MX19Lk1vYmlsZVBvcHVwQ1RBX21vZGFsQ29udGFpbmVyX190eVBtR3twb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6dmFyKC0tY3RhLXBvcHVwLXotaW5kZXgpO2NvbG9yOnZhcigtLWJsYWNrLXYxNTApfS5Nb2JpbGVQb3B1cENUQV9tb2RhbEJhY2tkcm9wX18wSzRaNXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6cmdiYSgxOCwxOSwyMCwuOCl9Lk1vYmlsZVBvcHVwQ1RBX21vZGFsQm9keV9fSkc4MGl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt3aWR0aDo4MCU7Ym9yZGVyLXJhZGl1czoxMHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2Q7YW5pbWF0aW9uOk1vYmlsZVBvcHVwQ1RBX2dyb3dJbl9fZTJUS0IgLjFzIGxpbmVhcn1bZGlyPWx0cl0gLk1vYmlsZVBvcHVwQ1RBX21vZGFsQm9keV9fSkc4MGl7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfVtkaXI9cnRsXSAuTW9iaWxlUG9wdXBDVEFfbW9kYWxCb2R5X19KRzgwaXtyaWdodDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSg1MCUsLTUwJSl9Lk1vYmlsZVBvcHVwQ1RBX2NvbnRlbnRfX29BX3E5e2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjIwcHggMzBweCAyNXB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6aW5oZXJpdDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czppbmhlcml0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fS5Nb2JpbGVQb3B1cENUQV9pbWFnZUNvbnRhaW5lcl9fQXl0bEh7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ncmF5LXY1MCl9Lk1vYmlsZVBvcHVwQ1RBX2ltYWdlQ29udGFpbmVyX19BeXRsSCwuTW9iaWxlUG9wdXBDVEFfaW1hZ2VDb250YWluZXJfX0F5dGxIIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxNTBweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmluaGVyaXQ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6aW5oZXJpdH0uTW9iaWxlUG9wdXBDVEFfaW1hZ2VDb250YWluZXJfX0F5dGxIIGltZ3twb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowfS5Nb2JpbGVQb3B1cENUQV9jb250ZW50VGl0bGVfX3dmTWxHe2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTlweDtsaW5lLWhlaWdodDoyOHB4O3BhZGRpbmc6MCAxMHB4fS5Nb2JpbGVQb3B1cENUQV9jb250ZW50RGVzY3JpcHRpb25fX0tZS2dQe2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoyMHB4O2NvbG9yOiM0ZTU2NWZ9Lk1vYmlsZVBvcHVwQ1RBX2N0YUNvbnRhaW5lcl9fdFpmMXl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6OHB4fS5NaW5pbWFsRm9vdGVyX2xpbmtzX19PbUh1RXtkaXNwbGF5OmZsZXg7Z2FwOjRweDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5NaW5pbWFsRm9vdGVyX2xpbmtzX19PbUh1RSBhe2FsbDp1bnNldDtjdXJzb3I6cG9pbnRlcn0uQ29va2llUG9wdXBXcmFwcGVyX2Nvb2tpZVdyYXBwZXJfX0VhUE53e2NvbG9yOiMwMDB9XG4ifSwgImhlYWRlcnNTaXplIjogMCwgImJvZHlTaXplIjogMjEzODIsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDIxMzgyfSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAyOC42MzUsICJjb25uZWN0IjogMTUuMjksICJzc2wiOiAxMS4wMzYsICJzZW5kIjogMCwgIndhaXQiOiA2LjkzMywgInJlY2VpdmUiOiAzLjQ5Mn0sICJwYWdlcmVmIjogInBhZ2VAODZkZGU0OWIwNzcyOGY1MDhjNjgyYWE4NTc0YzNlNDgiLCAic2VydmVySVBBZGRyZXNzIjogIjE4LjY2LjEyMC4yNDciLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogInN0b3J5LnNuYXBjaGF0LmNvbSIsICJpc3N1ZXIiOiAiRGlnaUNlcnQgVExTIFJTQSBTSEEyNTYgMjAyMCBDQTEiLCAidmFsaWRGcm9tIjogMTY2MDY5NDQwMCwgInZhbGlkVG8iOiAxNjkyMzE2Nzk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMjA3WiIsICJ0aW1lIjogMzIuNjE5LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9zdG9yeS5zbmFwY2hhdC5jb20vX25leHQvc3RhdGljL2Nzcy9mOWFhN2MyZDVjNThmM2IxLmNzcyIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICI6YXV0aG9yaXR5IiwgInZhbHVlIjogInN0b3J5LnNuYXBjaGF0LmNvbSJ9LCB7Im5hbWUiOiAiOm1ldGhvZCIsICJ2YWx1ZSI6ICJHRVQifSwgeyJuYW1lIjogIjpwYXRoIiwgInZhbHVlIjogIi9fbmV4dC9zdGF0aWMvY3NzL2Y5YWE3YzJkNWM1OGYzYjEuY3NzIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAidGV4dC9jc3MsKi8qO3E9MC4xIn0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAic3R5bGUifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogInNhbWUtc2l0ZSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTEzLjAuNTY3Mi41MyBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogNDY2LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhZ2UiLCAidmFsdWUiOiAiMTg0MTQ3In0sIHsibmFtZSI6ICJjYWNoZS1jb250cm9sIiwgInZhbHVlIjogIm1heC1hZ2U9MzE1MzYwMDAscHVibGljLGltbXV0YWJsZSJ9LCB7Im5hbWUiOiAiY29udGVudC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwIn0sIHsibmFtZSI6ICJjb250ZW50LXR5cGUiLCAidmFsdWUiOiAidGV4dC9jc3MifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxNDo1MzoyMyBHTVQifSwgeyJuYW1lIjogImV0YWciLCAidmFsdWUiOiAiVy9cIjdlNmE4MmQ4MzVlMTZiOTBhODAxMWU4ZmNhZGUxMDA4XCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxNDo0OTo0NiBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBbWF6b25TMyJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOTBiYjEzMGVjY2NiNzE5NTNiMzhhMWMwZTNiNTcyMWEuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJkSTJUOHBfWHRKOWV5RHhuc2lHUlNteUFOc0IyNzhPeGNZeFB1R1lhU1FuT3o4SWJVQUE2MkE9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTYwLVAyIn0sIHsibmFtZSI6ICJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIiwgInZhbHVlIjogIkFFUzI1NiJ9LCB7Im5hbWUiOiAieC1jYWNoZSIsICJ2YWx1ZSI6ICJIaXQgZnJvbSBjbG91ZGZyb250In1dLCAiY29udGVudCI6IHsic2l6ZSI6IDMxNTM2LCAibWltZVR5cGUiOiAidGV4dC9jc3MiLCAiY29tcHJlc3Npb24iOiAyNDQyNSwgInRleHQiOiAiLk1lZGlhQ2FyZF9naG9zdEljb25fXzFEb3ZRe3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMHB4fVtkaXI9bHRyXSAuTWVkaWFDYXJkX2dob3N0SWNvbl9fMURvdlF7cmlnaHQ6MjBweH1bZGlyPXJ0bF0gLk1lZGlhQ2FyZF9naG9zdEljb25fXzFEb3ZRe2xlZnQ6MjBweH0uTWVkaWFDYXJkX2NvbnRhaW5lcl9fRUNfQWJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjM1MnB4O2hlaWdodDozMTBweH0uQml0bW9qaTNESW1hZ2Vfd2ViUEltYWdlV3JhcHBlcl9fMmlLdUIsLk1lZGlhQ2FyZF9tZWRpYUNhcmRGdWxsX19CTjI0ZXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5CaXRtb2ppM0RJbWFnZV9hdmF0YXJJbWFnZVN0eWxlX19kcnk1NXtwb3NpdGlvbjphYnNvbHV0ZX0uVXNlckRldGFpbHNDYXJkX2NvbnRhaW5lcl9fV25SVXR7cGFkZGluZzoyMHB4O2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmluaGVyaXQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6aW5oZXJpdH0uVXNlckRldGFpbHNDYXJkX29uZUxpbmVUcnVuY2F0aW9uX191aE9GNXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LlVzZXJEZXRhaWxzQ2FyZF90aXRsZV9fdHJmdmZ7Y29sb3I6dmFyKC0tY29udGVudC1wcmltYXJ5LWNvbG9yKX0uVXNlckRldGFpbHNDYXJkX3N1YnRpdGxlX19tcFAyY3tjb2xvcjp2YXIoLS1jb250ZW50LXNlY29uZGFyeS1jb2xvcik7cGFkZGluZy10b3A6M3B4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjE4cHg7bGV0dGVyLXNwYWNpbmc6MDtmb250LXdlaWdodDo0MDB9LlVzZXJDYXJkX2NvbnRhaW5lcl9fQTRKQ0d7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jYXJkLWJnLWNvbG9yKTtib3JkZXItcmFkaXVzOjMwcHg7Ym94LXNoYWRvdzowIDhweCAxMnB4IC00cHggcmdiYSgwLDAsMCwuMjUpO3Bvc2l0aW9uOnJlbGF0aXZlfS5Vc2VyQ2FyZF92ZXJ0aWNhbENvbnRhaW5lcl9fYVc0bmV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNhcmQtYmctY29sb3IpO2JvcmRlci1yYWRpdXM6MCAwIDMwcHggMzBweDttaW4taGVpZ2h0OjExMHB4fS5Vc2VyQ2FyZF92ZXJ0aWNhbFNuYXBjb2RlX193VWlDcntwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW4tdG9wOjE0cHh9W2Rpcj1sdHJdIC5Vc2VyQ2FyZF92ZXJ0aWNhbFNuYXBjb2RlX193VWlDcntyaWdodDoyMHB4fVtkaXI9cnRsXSAuVXNlckNhcmRfdmVydGljYWxTbmFwY29kZV9fd1VpQ3J7bGVmdDoyMHB4fS5Vc2VyQ2FyZF9zaGFyZUljb25Db250YWluZXJfX1FUd2RHe3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToyMnB4O3otaW5kZXg6Mn1bZGlyPWx0cl0gLlVzZXJDYXJkX3NoYXJlSWNvbkNvbnRhaW5lcl9fUVR3ZEd7cmlnaHQ6MTVweH1bZGlyPXJ0bF0gLlVzZXJDYXJkX3NoYXJlSWNvbkNvbnRhaW5lcl9fUVR3ZEd7bGVmdDoxNXB4fS5Vc2VyQ2FyZF9iaXRtb2ppV3JhcHBlck1vYmlsZV9fbF9MVGJ7cGFkZGluZzowfS5Vc2VyQ2FyZF9iaXRtb2ppV3JhcHBlckRlc2t0b3BfX19Vb0ZYe3BhZGRpbmc6MTJweH0uVXNlckNhcmRfbWVkaWFDYXJkX193YlNvZSBpbWd7b2JqZWN0LXBvc2l0aW9uOjUwJSAyMCV9LlVzZXJDYXJkX2Rlc2t0b3BNZWRpYUNhcmRfX1VHOXRSe2hlaWdodDpjYWxjKDc1dmggLSAxMTBweCk7d2lkdGg6Y2FsYyg3NXZ3IC0gNDBweCk7bWF4LWhlaWdodDo2MDBweDttYXgtd2lkdGg6MzgwcHh9LlVzZXJDYXJkX21vYmlsZU1lZGlhQ2FyZF9fdXVjTXJ7aGVpZ2h0OmNhbGMoNzF2aCAtIDExMHB4KTt3aWR0aDo5MHZ3fS5EZXNrdG9wVXNlclByb2ZpbGVfZGVza3RvcENvbnRhaW5lcl9fUDFzcHB7aGVpZ2h0OjEwMHZoO3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uRGVza3RvcFVzZXJQcm9maWxlX3NoYXJlQ29udGFpbmVyX19ENU9XX3toZWlnaHQ6NTBweDtwYWRkaW5nLXRvcDoyMHB4fS5EZXNrdG9wVXNlclByb2ZpbGVfc2hhcmVDb250YWluZXJEZWZhdWx0V2lkdGhfX2N1eF9qe3dpZHRoOjEwMCV9LkRlc2t0b3BVc2VyUHJvZmlsZV9zaGFyZUNvbnRhaW5lcjNkQml0bW9qaVdpZHRoX19id1J2THt3aWR0aDo0MDBweH0uRGVza3RvcFVzZXJQcm9maWxlX3NoYXJlQ29udGFpbmVyQmFzaWNVc2VyRGV0YWlsc1dpZHRoX19rMXhRMHt3aWR0aDozNTJweH0uQ29udHJvbHNDYXJkX2NvbnRyb2xFbGVtZW50X19RZ0F5Ynt0cmFuc2l0aW9uOi4yNXM7Ym9yZGVyLXJhZGl1czppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6MDtib3R0b206MH0uQ29udHJvbHNDYXJkX292ZXJsYXlfX1lsbV9Me2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LkNvbnRyb2xzQ2FyZF9wbGF5QnV0dG9uX19oUnNWentkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjEwMCV9LkNvbnRyb2xzQ2FyZF9uYXZIb3ZlcmxheU1vYmlsZV9fYzR6YmE6aG92ZXJ7b3BhY2l0eTowfS5Db250cm9sc0NhcmRfbmF2SG92ZXJsYXlEZXNrdG9wX19welNaRzpob3ZlcntvcGFjaXR5OjF9LkNvbnRyb2xzQ2FyZF9uYXZPdmVybGF5X19Pb2dKcntkaXNwbGF5OmZsZXg7d2lkdGg6MTAwcHg7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvcGFjaXR5OjB9LkNvbnRyb2xzQ2FyZF9sZWZ0T3ZlcmxheV9fbWphT0h7bGVmdDowO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5Db250cm9sc0NhcmRfcmlnaHRPdmVybGF5X19PbFhKWntyaWdodDowO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uQ29udHJvbHNDYXJkX3JlcGxheUJ1dHRvbl9fbzBqN0R7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyfS5Db250cm9sc0NhcmRfcmVwbGF5QnV0dG9uX19vMGo3RCBzdmd7ZmlsbDojZmZmfS5Db250cm9sc0NhcmRfZmxvYXRpbmdCdXR0b25fX05xMVlqe3BhZGRpbmc6MjBweH1bZGlyPWx0cl0gLkNvbnRyb2xzQ2FyZF9mbG9hdGluZ0J1dHRvbl9fTnExWWp7cmlnaHQ6MH1bZGlyPXJ0bF0gLkNvbnRyb2xzQ2FyZF9mbG9hdGluZ0J1dHRvbl9fTnExWWp7bGVmdDowfS5Db250cm9sc0NhcmRfbXV0ZUJ1dHRvbl9famt1M217Ym90dG9tOjB9LkNvbnRyb2xzQ2FyZF9zaGFyZUJ1dHRvbl9fM1p4TGp7Ym90dG9tOjUycHh9LkNvdW50Q2FyZF9jYXJkX191dzBlOHt0ZXh0LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwuNik7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn1bZGlyPWx0cl0gLkNvdW50Q2FyZF9jYXJkX191dzBlOHttYXJnaW4tcmlnaHQ6OHB4fVtkaXI9cnRsXSAuQ291bnRDYXJkX2NhcmRfX3V3MGU4e21hcmdpbi1sZWZ0OjhweH0uQ291bnRDYXJkX3RleHRDb2xvcl9fcmtRZnV7Y29sb3I6I2ZmZn0uVGltZXN0YW1wQ2FyZF9jYXJkX19mRTZQYnt3aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5UaW1lc3RhbXBDYXJkX3RleHRfX25SSGFXe3RleHQtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLC42KTttYXJnaW46MDthbGlnbi1zZWxmOmNlbnRlcjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LkNyZWF0b3JDb250ZXh0Q2FyZF90ZXh0Q29sb3JfX01jUmtTLC5UaW1lc3RhbXBDYXJkX3RleHRDb2xvcl9fUEN2VHV7Y29sb3I6I2ZmZn0uQ3JlYXRvckNvbnRleHRDYXJkX2NvbnRleHRDYXJkX19ka2ZkU3t3aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3BhZGRpbmc6MjVweH0uQ3JlYXRvckNvbnRleHRDYXJkX3RleHRTdHlsZV9fYzNvQnh7dGV4dC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwwLDAsLjYpO21hcmdpbjowO2FsaWduLXNlbGY6Y2VudGVyO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uQ3JlYXRvckNvbnRleHRDYXJkX2xpbmtUZXh0U3R5bGVfX1kzSUN0OmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LkNyZWF0b3JDb250ZXh0Q2FyZF9wcm9maWxlUGljdHVyZVdyYXBwZXJfX1djcDYye2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MCAycHggNHB4IHJnYmEoMCwwLDAsLjE0KX1bZGlyPWx0cl0gLkNyZWF0b3JDb250ZXh0Q2FyZF9wcm9maWxlUGljdHVyZVdyYXBwZXJfX1djcDYye21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5DcmVhdG9yQ29udGV4dENhcmRfcHJvZmlsZVBpY3R1cmVXcmFwcGVyX19XY3A2MnttYXJnaW4tbGVmdDo4cHh9LkNyZWF0b3JDb250ZXh0Q2FyZF9saW5rU3R5bGVfX1AxTWNse2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LkJhc2VJblRoaXNTbmFwQ2FyZF9tZXRhZGF0YV9fMDVzT1d7ZGlzcGxheTpmbGV4O2NvbG9yOiNmZmY7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21hcmdpbjowO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LkJhc2VJblRoaXNTbmFwQ2FyZF9jbGlja2FibGVTdHlsZV9fSUwwSGt7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2ZmZn0uQmFzZUluVGhpc1NuYXBDYXJkX2NsaWNrYWJsZVN0eWxlX19JTDBIazpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lICNmZmZ9LkJhc2VJblRoaXNTbmFwQ2FyZF9mb290ZXJDYXJkX19ORVdVX3tkaXNwbGF5OmZsZXg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4LDE5LDIwLC41KTtoZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOjRweDthbGlnbi1pdGVtczpjZW50ZXJ9W2Rpcj1sdHJdIC5CYXNlSW5UaGlzU25hcENhcmRfZm9vdGVyQ2FyZF9fTkVXVV97bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLkJhc2VJblRoaXNTbmFwQ2FyZF9mb290ZXJDYXJkX19ORVdVX3ttYXJnaW4tbGVmdDo4cHh9Lkljb25faWNvblN0eWxlX190V0RuMHt3aWR0aDoxOHB4O2hlaWdodDoxOHB4fVtkaXI9bHRyXSAuSWNvbl9pY29uU3R5bGVfX3RXRG4we21hcmdpbjoxMXB4IDhweCAxMXB4IDRweH1bZGlyPXJ0bF0gLkljb25faWNvblN0eWxlX190V0RuMHttYXJnaW46MTFweCA0cHggMTFweCA4cHh9Lkljb25faWNvblN0eWxlX190V0RuMCBpbWd7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6aW5oZXJpdH0uU3VidGl0bGVfc3VidGl0bGVfX2wzUVFQe21hcmdpbi10b3A6MDt0b3A6MThweDttYXJnaW4tYm90dG9tOjZweDttYXgtd2lkdGg6OTBweH1bZGlyPWx0cl0gLlN1YnRpdGxlX3N1YnRpdGxlX19sM1FRUHttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo4cHh9W2Rpcj1ydGxdIC5TdWJ0aXRsZV9zdWJ0aXRsZV9fbDNRUVB7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6OHB4fS5TdWJ0aXRsZV9tZXRhZGF0YVRleHRfX3dCMU9le2NvbG9yOnZhcigtLWdyYXktdjIwMCl9LlRpdGxlX3RpdGxlX19XMUZGN3ttYXJnaW4tdG9wOjZweDttYXgtd2lkdGg6OTBweH1bZGlyPWx0cl0gLlRpdGxlX3RpdGxlX19XMUZGN3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDo0cHh9W2Rpcj1ydGxdIC5UaXRsZV90aXRsZV9fVzFGRjd7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6NHB4fS5UaXRsZV90aXRsZVRleHRfX0h2S1dme2NvbG9yOiNmZmZ9Lk11c2ljQ2FyZF9tdXNpY0ljb25fXzRJb0kze3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czozcHg7bWFyZ2luOjExcHggOHB4fS5NdXNpY0NhcmRfbXVzaWNJY29uX180SW9JMyBpbWd7cGFkZGluZzozcHh9LlNob3dzQ29udGV4dENhcmRfY29udGV4dENhcmRfX1FfNHpTe3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3BhZGRpbmc6MjVweDt0ZXh0LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwuNik7bWFyZ2luOjA7YWxpZ24tc2VsZjpjZW50ZXI7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5TaG93c0NvbnRleHRDYXJkX3B1Ymxpc2hlckRpc3BsYXlOYW1lX19mczMwb3tjb2xvcjojZmZmfS5TaG93c0NvbnRleHRDYXJkX2VwaXNvZGVJbmZvX190MWxEOXtjb2xvcjp2YXIoLS1ncmF5LXYyMDApfS5WaWV3Q291bnRDYXJkX3ZpZXdDb3VudEljb25fX19VZWltIHN2Z3tmaWx0ZXI6ZHJvcC1zaGFkb3coMCAxcHggNHB4IHJnYmEoMCwwLDAsLjYpKTtmaWxsOiNmZmY7bWFyZ2luLXRvcDoxcHh9W2Rpcj1sdHJdIC5WaWV3Q291bnRDYXJkX3ZpZXdDb3VudEljb25fX19VZWltIHN2Z3ttYXJnaW4tcmlnaHQ6NHB4fVtkaXI9cnRsXSAuVmlld0NvdW50Q2FyZF92aWV3Q291bnRJY29uX19fVWVpbSBzdmd7bWFyZ2luLWxlZnQ6NHB4fUBrZXlmcmFtZXMgRmxvYXRpbmdQbGF5ZXJDb250YWluZXJfZ3Jvd0luX19mdjdLeHswJXt0cmFuc2Zvcm06c2NhbGUoMCk7b3BhY2l0eTowfXRve3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9fS5GbG9hdGluZ1BsYXllckNvbnRhaW5lcl9mbG9hdGluZ1BsYXllckNvbnRhaW5lcl9fWkhLQ1J7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LXNlbGY6Y2VudGVyO2JveC1zaGFkb3c6MCA2cHggMTJweCA0cHggcmdiYSgwLDAsMCwuMjUpO3RyYW5zaXRpb246LjNzO2FuaW1hdGlvbjpGbG9hdGluZ1BsYXllckNvbnRhaW5lcl9ncm93SW5fX2Z2N0t4IC40cyBlYXNlfS5GbG9hdGluZ1BsYXllckNvbnRhaW5lcl9jbG9zZUJ1dHRvbldyYXBwZXJfXzdzTENFe3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMHB4O3otaW5kZXg6NH1bZGlyPWx0cl0gLkZsb2F0aW5nUGxheWVyQ29udGFpbmVyX2Nsb3NlQnV0dG9uV3JhcHBlcl9fN3NMQ0V7cmlnaHQ6MjBweH1bZGlyPXJ0bF0gLkZsb2F0aW5nUGxheWVyQ29udGFpbmVyX2Nsb3NlQnV0dG9uV3JhcHBlcl9fN3NMQ0V7bGVmdDoyMHB4fS5IYXNodGFnc0Zvb3RlckNhcmRfaGFzaHRhZ19fMUtlVFB7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE4LDE5LDIwLC41KTt3aWR0aDpmaXQtY29udGVudDtwYWRkaW5nOjRweCA4cHg7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjRweDt3aGl0ZS1zcGFjZTpub3dyYXA7YWxpZ24tY29udGVudDpjZW50ZXJ9W2Rpcj1sdHJdIC5IYXNodGFnc0Zvb3RlckNhcmRfaGFzaHRhZ19fMUtlVFB7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNodGFnX18xS2VUUHttYXJnaW4tbGVmdDo4cHh9Lkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNodGFnVGV4dF9feHhweWp7Y29sb3I6I2ZmZn0uSGFzaHRhZ3NGb290ZXJDYXJkX2hhc2hUYWdDb250YWluZXJfX2ZfSmMze292ZXJmbG93OmhpZGRlbjttYXJnaW4tdG9wOjVweDt3aGl0ZS1zcGFjZTpub3dyYXA7LXdlYmtpdC1tYXNrLXNpemU6MTExJSAxMTElOy13ZWJraXQtbWFzay1wb3NpdGlvbjpjZW50ZXI7LXdlYmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQ7bWF4LXdpZHRoOjkwJTttYXNrLXNpemU6MTExJSAxMTElO21hc2stcG9zaXRpb246Y2VudGVyO21hc2stcmVwZWF0Om5vLXJlcGVhdDttYXNrLWNvbXBvc2l0ZTppbnRlcnNlY3Q7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztoZWlnaHQ6MjJweDstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTtzY3JvbGxiYXItd2lkdGg6bm9uZX1bZGlyPWx0cl0gLkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNoVGFnQ29udGFpbmVyX19mX0pjM3ttYXJnaW4tbGVmdDotMThweDtwYWRkaW5nLWxlZnQ6MjBweH1bZGlyPXJ0bF0gLkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNoVGFnQ29udGFpbmVyX19mX0pjM3ttYXJnaW4tcmlnaHQ6LTE4cHg7cGFkZGluZy1yaWdodDoyMHB4fS5IYXNodGFnc0Zvb3RlckNhcmRfaGFzaFRhZ0NvbnRhaW5lcl9fZl9KYzM6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uSGFzaHRhZ3NGb290ZXJDYXJkX2hhc2hUYWdDb250YWluZXJfX2ZfSmMzOmFmdGVye2NvbnRlbnQ6XCJcIn1bZGlyPWx0cl0gLkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNoVGFnQ29udGFpbmVyX19mX0pjMzphZnRlcntwYWRkaW5nLWxlZnQ6MjBweH1bZGlyPXJ0bF0gLkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNoVGFnQ29udGFpbmVyX19mX0pjMzphZnRlcntwYWRkaW5nLXJpZ2h0OjIwcHh9Lkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNoVGFnQ29udGFpbmVyTW9iaWxlX18zMmRRU3ttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdy14OnNjcm9sbDttYXNrOmxpbmVhci1ncmFkaWVudCgyNzBkZWcsdHJhbnNwYXJlbnQgOCUsI2ZmZiAxNSUgOTIlLHRyYW5zcGFyZW50IDk1JSk7LXdlYmtpdC1tYXNrOmxpbmVhci1ncmFkaWVudCgyNzBkZWcsdHJhbnNwYXJlbnQgOCUsI2ZmZiAxNSUgOTIlLHRyYW5zcGFyZW50IDk1JSl9Lkhhc2h0YWdzRm9vdGVyQ2FyZF9oYXNoVGFnQ29udGFpbmVyRGVza3RvcF9fN3ZLUWF7b3ZlcmZsb3cteDpoaWRkZW47ZmxleC13cmFwOndyYXB9LlN0b3J5RGVzY3JpcHRpb25fZGVzY3JpcHRpb25fX0E0VzRfe2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE4cHg7bGV0dGVyLXNwYWNpbmc6MDtjb2xvcjojZmZmfS5TdG9yeURlc2NyaXB0aW9uX2Rlc2NyaXB0aW9uQ29udGFpbmVyX19NQm90ant3aWR0aDozMDBweH0uU3RvcnlEZXNjcmlwdGlvbl90b3BpY19fQXlpTzF7Zm9udC13ZWlnaHQ6NzAwfS5TcG90bGlnaHRGb290ZXJDb250ZXh0Q2FyZF9jb250ZXh0Q2FyZF9fNEc3Q1F7d2lkdGg6ODAlO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtwYWRkaW5nOjAgMjVweCAyNXB4fS5TcG90bGlnaHRGb290ZXJDb250ZXh0Q2FyZF90ZXh0X19oZ0k4eXt0ZXh0LXNoYWRvdzowIDFweCA0cHggcmdiYSgwLDAsMCwuNik7bWFyZ2luOjA7YWxpZ24tc2VsZjpjZW50ZXI7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5TcG90bGlnaHRGb290ZXJDb250ZXh0Q2FyZF9saW5rX19SMnVtM3tjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS5TcG90bGlnaHRGb290ZXJDb250ZXh0Q2FyZF9saW5rX19SMnVtMzpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5TcG90bGlnaHRGb290ZXJDb250ZXh0Q2FyZF9wcm9maWxlUGljdHVyZV9fUjIzVVd7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDJweCA0cHggcmdiYSgwLDAsMCwuMTQpO2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9W2Rpcj1sdHJdIC5TcG90bGlnaHRGb290ZXJDb250ZXh0Q2FyZF9wcm9maWxlUGljdHVyZV9fUjIzVVd7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLlNwb3RsaWdodEZvb3RlckNvbnRleHRDYXJkX3Byb2ZpbGVQaWN0dXJlX19SMjNVV3ttYXJnaW4tbGVmdDo4cHh9LlNwb3RsaWdodEZvb3RlckNvbnRleHRDYXJkX2NvbnRleHRXcmFwcGVyX19LMTF1R3tkaXNwbGF5OmZsZXg7bWFyZ2luLXRvcDo3cHg7YWxpZ24taXRlbXM6Y2VudGVyfS5TcG90bGlnaHRGb290ZXJDb250ZXh0Q2FyZF9pblRoaXNTbmFwQ29udGFpbmVyX19ubDB5VntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21hcmdpbi10b3A6NXB4fS5TbmFwTm90QXZhaWxhYmxlX25vdEF2YWlsYWJsZV9fUjJ6cVF7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjojZmZmO2hlaWdodDoxMDAlO3BhZGRpbmc6MWVtO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5TbmFwTm90QXZhaWxhYmxlX3RpdGxlX19iOF81a3tjb2xvcjojZmZmfS5TbmFwTm90QXZhaWxhYmxlX2J1dHRvbkNvbnRhaW5lcl9fN0MwYVh7Ym90dG9tOjNlbTtwb3NpdGlvbjphYnNvbHV0ZX1bZGlyPWx0cl0gLlNuYXBOb3RBdmFpbGFibGVfYnV0dG9uQ29udGFpbmVyX183QzBhWHttYXJnaW4tbGVmdDoxMnB4fVtkaXI9cnRsXSAuU25hcE5vdEF2YWlsYWJsZV9idXR0b25Db250YWluZXJfXzdDMGFYe21hcmdpbi1yaWdodDoxMnB4fS5TbmFwUmVwb3J0aW5nQ2FyZF9tZW51QnV0dG9uX19NaWRoMHtib3R0b206MTAwcHg7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5TbmFwUmVwb3J0aW5nQ2FyZF9tZW51SXRlbXNDb250YWluZXJfX0dnY2cze2JvdHRvbToxNjBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6MTM1cHh9LlNuYXBSZXBvcnRpbmdDYXJkX2Jhc2VFbGVtZW50c19faV96WGZ7dHJhbnNpdGlvbjouMjVzO3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbjoyMHB4IDIwcHggMzBweH1bZGlyPWx0cl0gLlNuYXBSZXBvcnRpbmdDYXJkX2Jhc2VFbGVtZW50c19faV96WGZ7cmlnaHQ6MH1bZGlyPXJ0bF0gLlNuYXBSZXBvcnRpbmdDYXJkX2Jhc2VFbGVtZW50c19faV96WGZ7bGVmdDowfVtkaXI9bHRyXSAuU25hcFJlcG9ydGluZ0NhcmRfaWNvbldyYXBwZXJfX3ljMkdYe21hcmdpbjo1cHggN3B4IDAgMDtmbG9hdDpsZWZ0fVtkaXI9cnRsXSAuU25hcFJlcG9ydGluZ0NhcmRfaWNvbldyYXBwZXJfX3ljMkdYe21hcmdpbjo1cHggMCAwIDdweDtmbG9hdDpyaWdodH0uU25hcFJlcG9ydGluZ0NhcmRfdGV4dENvbG9yX19fcDFMMHtjb2xvcjp2YXIoLS1ibGFjay12NTApfS5TdG9yeVdlYlBsYXllcl9tZWRpYV9fZGpOT0F7Ym9yZGVyLXJhZGl1czppbmhlcml0O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7b2JqZWN0LWZpdDpjb3ZlcjstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmV9LlN0b3J5V2ViUGxheWVyX3ZpZGVvUGxheWVyX19JU21aNntoZWlnaHQ6Y2FsYygxMDAlICsgMXB4KTt3aWR0aDpjYWxjKDEwMCUgKyAxcHgpOy13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkfS5TdG9yeVdlYlBsYXllcl9jb250ZW50V3JhcHBlcl9fV3l4RTd7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5Qcm9maWxlU3RvcnlQbGF5ZXJfZGVza3RvcEJvcmRlclJhZGl1c19fVWxfYUp7Ym9yZGVyLXJhZGl1czoxMnB4fS5Qcm9maWxlU3RvcnlQbGF5ZXJfbW9iaWxlQm9yZGVyUmFkaXVzX19sUFRYWntib3JkZXItcmFkaXVzOjB9LlByb2ZpbGVTdG9yeVBsYXllcl9wbGF5ZXJDb250YWluZXJfX1Vybm1ve2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjay12MjAwKX0uTWVkaWFQYWRkZWRDb250YWluZXJfY29udGFpbmVyX180a1k1eHtwYWRkaW5nOjEycHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jYXJkLWJnLWNvbG9yKTtib3JkZXItcmFkaXVzOjMwcHg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX1Aa2V5ZnJhbWVzIENvbnRlbnRPblBsYXlPdmVybGF5X2ZhZGVJbl9fcDM3WDd7MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyBDb250ZW50T25QbGF5T3ZlcmxheV9mYWRlSW5VcF9fUktWQjN7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDUwJSl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX0uQ29udGVudE9uUGxheU92ZXJsYXlfb25QbGF5Q29udGFpbmVyX18yYWo4X3t0cmFuc2l0aW9uOi4zcztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOnJnYmEoMTgsMTksMjAsLjQpO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czppbmhlcml0O2FuaW1hdGlvbjpDb250ZW50T25QbGF5T3ZlcmxheV9mYWRlSW5fX3AzN1g3IC4zcyBlYXNlfS5Db250ZW50T25QbGF5T3ZlcmxheV9wbGF5SWNvbl9fbEpDbWF7YW5pbWF0aW9uOkNvbnRlbnRPblBsYXlPdmVybGF5X2ZhZGVJblVwX19SS1ZCMyAuM3MgZWFzZTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5Qcm9maWxlUGljdHVyZV91c2VySWNvbl9fVTI4UWx7Ym9yZGVyLXJhZGl1czo1MCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jdy1leHRyYS1saWdodC1zbGF0ZS1ncmF5KX0uUHJvZmlsZVBpY3R1cmVfdXNlckljb25fX1UyOFFsIHN2Z3twYWRkaW5nLXRvcDo1cHh9LlByb2ZpbGVQaWN0dXJlX3Byb2ZpbGVQaWN0dXJlV3JhcHBlcl9fT1BPdFl7cGFkZGluZzoxcHg7dHJhbnNpdGlvbjouMjVzIGVhc2V9LlByb2ZpbGVQaWN0dXJlX3Byb2ZpbGVQaWN0dXJlX19YeTRkVntib3JkZXItcmFkaXVzOjUwJTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LlByb2ZpbGVQaWN0dXJlX3Byb2ZpbGVQaWN0dXJlUmluZ0JvcmRlck5vSGlnaGxpZ2h0X19vcmxVWHtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MnB4IHNvbGlkICNmZmZ9LlByb2ZpbGVQaWN0dXJlX3Byb2ZpbGVQaWN0dXJlUmluZ0JvcmRlckZpbmlzaGVkU3RvcnlfX1BfQUVVe2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoycHggc29saWQgdmFyKC0tY29udGVudC1zZWNvbmRhcnktY29sb3IpfS5Qcm9maWxlUGljdHVyZV9wcm9maWxlUGljdHVyZVJpbmdCb3JkZXJQZW5kaW5nU3RvcnlfXzRCeEphe2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoycHggc29saWQgdmFyKC0taGlnaGxpZ2h0LWFjdGlvbi1jb2xvcil9LlN0b3J5Q29udGV4dENhcmRfY29udGFpbmVyX19lX1EzQntib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOnZhcigtLWNhcmQtYmctY29sb3IpO2hlaWdodDo3MnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC1kaXJlY3Rpb246cm93O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1bZGlyPWx0cl0gLlN0b3J5Q29udGV4dENhcmRfY29udGFpbmVyX19lX1EzQntwYWRkaW5nLWxlZnQ6MTVweH1bZGlyPXJ0bF0gLlN0b3J5Q29udGV4dENhcmRfY29udGFpbmVyX19lX1EzQntwYWRkaW5nLXJpZ2h0OjE1cHh9LlN0b3J5Q29udGV4dENhcmRfZGlzcGxheVBpY3R1cmVXcmFwcGVyX19FWHhfWXtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDo0M3B4O3dpZHRoOjQzcHh9W2Rpcj1sdHJdIC5TdG9yeUNvbnRleHRDYXJkX2Rpc3BsYXlQaWN0dXJlV3JhcHBlcl9fRVh4X1l7bWFyZ2luLXJpZ2h0OjEycHh9W2Rpcj1ydGxdIC5TdG9yeUNvbnRleHRDYXJkX2Rpc3BsYXlQaWN0dXJlV3JhcHBlcl9fRVh4X1l7bWFyZ2luLWxlZnQ6MTJweH0uU3RvcnlDb250ZXh0Q2FyZF90ZXh0Q29udGFpbmVyX19sQTlFVXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5TdG9yeUNvbnRleHRDYXJkX3RpdGxlX19CYklydXtjb2xvcjp2YXIoLS1jb250ZW50LXByaW1hcnktY29sb3IpfS5TdG9yeUNvbnRleHRDYXJkX3N1YnRpdGxlX19SZkpsWntjb2xvcjp2YXIoLS1jb250ZW50LXNlY29uZGFyeS1jb2xvcil9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9jb250YWluZXJfXzZFSUhOe3BhZGRpbmc6MTVweCAxNXB4IDdweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfZGlzcGxheU5hbWVDb250YWluZXJfX3M4M3dHe3dpZHRoOjEwMCV9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9kaXNwbGF5TmFtZUNvbnRhaW5lcl9fczgzd0c+Knt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0uUHVibGljUHJvZmlsZURldGFpbHNDYXJkX2xpbmtfX0w2WE8ze3RleHQtZGVjb3JhdGlvbjpub25lfS5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfc2hhcmVJY29uV3JhcHBlcl9felM1ckd7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDp2YXIoLS1zaGFyZS1pY29uLXotaW5kZXgpO3RvcDp2YXIoLS1tb2JpbGUtYnV0dG9uLXRvcCl9W2Rpcj1sdHJdIC5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfc2hhcmVJY29uV3JhcHBlcl9felM1ckd7cmlnaHQ6dmFyKC0tYnV0dG9uLW9uLXRvcC1wYWRkaW5nKX1bZGlyPXJ0bF0gLlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9zaGFyZUljb25XcmFwcGVyX196UzVyR3tsZWZ0OnZhcigtLWJ1dHRvbi1vbi10b3AtcGFkZGluZyl9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF90ZXh0V3JhcHBlcl9feV9wRDV7bWFyZ2luLXRvcDo0cHh9W2Rpcj1sdHJdIC5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfdGV4dFdyYXBwZXJfX3lfcEQ1e21hcmdpbi1yaWdodDoyNXB4fVtkaXI9cnRsXSAuUHVibGljUHJvZmlsZURldGFpbHNDYXJkX3RleHRXcmFwcGVyX195X3BENXttYXJnaW4tbGVmdDoyNXB4fS5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfaW5saW5lRGl2X19WMTJEZ3tkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveH0uUHVibGljUHJvZmlsZURldGFpbHNDYXJkX2lubGluZUljb25fXzU2Mkxse3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6M3B4fVtkaXI9bHRyXSAuUHVibGljUHJvZmlsZURldGFpbHNDYXJkX2lubGluZUljb25fXzU2Mkxse3BhZGRpbmctbGVmdDo0cHh9W2Rpcj1ydGxdIC5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfaW5saW5lSWNvbl9fNTYyTGx7cGFkZGluZy1yaWdodDo0cHh9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9pbmxpbmVJY29uX181NjJMbCBzdmd7aGVpZ2h0OjMycHg7d2lkdGg6MzJweH0uUHVibGljUHJvZmlsZURldGFpbHNDYXJkX2lubGluZUljb25Nb2JpbGVfX3NDVWFNe21hcmdpbi10b3A6MnB4fS5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfaW5saW5lSWNvbk1vYmlsZV9fc0NVYU0gc3Zne2hlaWdodDoxN3B4O3dpZHRoOjE3cHh9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9vbmVMaW5lVHJ1bmNhdGlvbl9fU2V1TXl7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7d29yZC1icmVhazpicmVhay13b3JkfS5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfdGV4dENvbG9yX193SUtVYXtjb2xvcjp2YXIoLS1jb250ZW50LXByaW1hcnktY29sb3IpfS5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfdGV4dENvbG9yT25NZWRpYV9feXJfQkt7Y29sb3I6I2ZmZn1bZGlyPWx0cl0gLlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9kaXNwbGF5TmFtZVRleHRfX3hBNTB4e3BhZGRpbmctcmlnaHQ6NXB4fVtkaXI9cnRsXSAuUHVibGljUHJvZmlsZURldGFpbHNDYXJkX2Rpc3BsYXlOYW1lVGV4dF9feEE1MHh7cGFkZGluZy1sZWZ0OjVweH1bZGlyPWx0cl0gLlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9kaXNwbGF5TmFtZVRleHRPbk1lZGlhX19yajNkNHtwYWRkaW5nLXJpZ2h0OjVweH1bZGlyPXJ0bF0gLlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9kaXNwbGF5TmFtZVRleHRPbk1lZGlhX19yajNkNHtwYWRkaW5nLWxlZnQ6NXB4fS5QdWJsaWNQcm9maWxlRGV0YWlsc0NhcmRfc3Vic2NyaWJlcnNNb2JpbGVfX2k5aFZje2ZvbnQtc2l6ZToxNHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjE4cHg7bGV0dGVyLXNwYWNpbmc6MDtmb250LXdlaWdodDozMDB9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9zdWJzY3JpYmVyc0Rlc2t0b3BfX0xnbm10e2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjIycHg7bGV0dGVyLXNwYWNpbmc6MDtmb250LXdlaWdodDozMDB9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9tb2JpbGVTdWJzY3JpYmVyVGV4dF9fNzVYRlp7Y29sb3I6dmFyKC0taGlnaGxpZ2h0LWFjdGlvbi1jb2xvcil9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9tb2JpbGVTdWJzY3JpYmVyVGV4dE9uTWVkaWFfXzVicGhie2NvbG9yOnZhcigtLXllbGxvdy12MTAwKX0uUHVibGljUHJvZmlsZURldGFpbHNDYXJkX2Rlc2t0b3BTdWJzY3JpYmVyVGV4dF9fd1FjWGd7Y29sb3I6dmFyKC0taGlnaGxpZ2h0LWFjdGlvbi1jb2xvcil9LlB1YmxpY1Byb2ZpbGVEZXRhaWxzQ2FyZF9kZXNrdG9wU3Vic2NyaWJlclRleHRPbk1lZGlhX19sMHJqantjb2xvcjp2YXIoLS15ZWxsb3ctdjEwMCl9LlB1YmxpY1Byb2ZpbGVDYXJkX3ByaW1hcnlDb250YWluZXJfX0RVWTh2e3dpZHRoOjEwMCV9LlB1YmxpY1Byb2ZpbGVDYXJkX3Byb2ZpbGVQaWN0dXJlV3JhcHBlcl9fVGVaM3R7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6NzJweDt3aWR0aDo3MnB4fVtkaXI9bHRyXSAuUHVibGljUHJvZmlsZUNhcmRfcHJvZmlsZVBpY3R1cmVXcmFwcGVyX19UZVozdHttYXJnaW4tbGVmdDo1cHh9W2Rpcj1ydGxdIC5QdWJsaWNQcm9maWxlQ2FyZF9wcm9maWxlUGljdHVyZVdyYXBwZXJfX1RlWjN0e21hcmdpbi1yaWdodDo1cHh9LlB1YmxpY1Byb2ZpbGVDYXJkX3RleHRXcmFwcGVyX19CQm9xbHttYXJnaW4tdG9wOjVweDtmbGV4LXdyYXA6d3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtkaXNwbGF5Oi13ZWJraXQtYm94fS5QdWJsaWNQcm9maWxlQ2FyZF91c2VyRGV0YWlsc0NvbnRhaW5lcl9fQWltRll7d2lkdGg6MTAwJTttYXgtd2lkdGg6NTAwcHh9LlB1YmxpY1Byb2ZpbGVDYXJkX3NlY29uZGFyeURldGFpbHNDb250YWluZXJNb2JpbGVfX093Ulc5e3BhZGRpbmc6MCAxNXB4IDE1cHh9LlB1YmxpY1Byb2ZpbGVDYXJkX3NlY29uZGFyeURldGFpbHNDb250YWluZXJEZXNrdG9wX185Nlh1b3twYWRkaW5nLXRvcDoxMHB4fS5QdWJsaWNQcm9maWxlQ2FyZF9waW5JY29uV3JhcHBlcl9fYVM5SGN7bWFyZ2luLXRvcDoxcHh9W2Rpcj1sdHJdIC5QdWJsaWNQcm9maWxlQ2FyZF9waW5JY29uV3JhcHBlcl9fYVM5SGN7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6NXB4fVtkaXI9cnRsXSAuUHVibGljUHJvZmlsZUNhcmRfcGluSWNvbldyYXBwZXJfX2FTOUhje2Zsb2F0OnJpZ2h0O21hcmdpbi1sZWZ0OjVweH0uUHVibGljUHJvZmlsZUNhcmRfbW9iaWxlVGV4dF9fOFJnZzd7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTpub3JtYWw7bGluZS1oZWlnaHQ6MThweDtsZXR0ZXItc3BhY2luZzowO2ZvbnQtd2VpZ2h0OjMwMH0uUHVibGljUHJvZmlsZUNhcmRfZGVza3RvcFRleHRfX0lZblJne2ZvbnQtc2l6ZToxNnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjIycHg7bGV0dGVyLXNwYWNpbmc6MDtmb250LXdlaWdodDozMDB9LlB1YmxpY1Byb2ZpbGVDYXJkX21vYmlsZVRpdGxlX19pUlk1ZHtjb2xvcjp2YXIoLS1jb250ZW50LXByaW1hcnktY29sb3IpfS5QdWJsaWNQcm9maWxlQ2FyZF9tb2JpbGVTdWJ0aXRsZV9fQVptbUh7Y29sb3I6dmFyKC0tY29udGVudC1zZWNvbmRhcnktY29sb3IpfS5QdWJsaWNQcm9maWxlQ2FyZF9kZXNrdG9wRGV0YWlsX19kaHFfeiwuUHVibGljUHJvZmlsZUNhcmRfbW9iaWxlRGV0YWlsX19KUTFjeXt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjp2YXIoLS1oaWdobGlnaHQtYWN0aW9uLWNvbG9yKX0uUHVibGljUHJvZmlsZUNhcmRfZGVza3RvcFN1YnRpdGxlX19FU3dEa3tjb2xvcjp2YXIoLS1jb250ZW50LXNlY29uZGFyeS1jb2xvcil9LlB1YmxpY1Byb2ZpbGVDYXJkX2Rlc2t0b3BUaXRsZV9fOWlrNkR7Y29sb3I6dmFyKC0tY29udGVudC1wcmltYXJ5LWNvbG9yKX0uUHVibGljUHJvZmlsZUNhcmRfcHJpbWFyeURldGFpbHNDb250YWluZXJfX3FsZnpMe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmV9LlB1YmxpY1Byb2ZpbGVDYXJkX21vYmlsZVByaW1hcnlEZXRhaWxzQ29udGFpbmVyX19uZGhLTntwYWRkaW5nOjE1cHh9LlB1YmxpY1Byb2ZpbGVDYXJkX3ByaW1hcnlEZXRhaWxzQ29udGFpbmVyV2l0aEJhbm5lcl9fY3VXY3V7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6NTUlIDE1cHggMTBweDt3aWR0aDo2NTBweDttYXJnaW4tdG9wOjE1JX1bZGlyPWx0cl0gLlB1YmxpY1Byb2ZpbGVDYXJkX3ByaW1hcnlEZXRhaWxzQ29udGFpbmVyV2l0aEJhbm5lcl9fY3VXY3V7bWFyZ2luLWxlZnQ6LTE1cHh9W2Rpcj1ydGxdIC5QdWJsaWNQcm9maWxlQ2FyZF9wcmltYXJ5RGV0YWlsc0NvbnRhaW5lcldpdGhCYW5uZXJfX2N1V2N1e21hcmdpbi1yaWdodDotMTVweH0uUHVibGljUHJvZmlsZUNhcmRfbW9iaWxlUHJpbWFyeURldGFpbHNDb250YWluZXJXaXRoQmFubmVyX19xc0dUb3tib3JkZXItcmFkaXVzOjE1cHh9W2Rpcj1sdHJdIC5QdWJsaWNQcm9maWxlQ2FyZF9tb2JpbGVQcmltYXJ5RGV0YWlsc0NvbnRhaW5lcldpdGhCYW5uZXJfX3FzR1Rve3BhZGRpbmc6NjAlIDIwcHggMTBweCAxMHB4fVtkaXI9cnRsXSAuUHVibGljUHJvZmlsZUNhcmRfbW9iaWxlUHJpbWFyeURldGFpbHNDb250YWluZXJXaXRoQmFubmVyX19xc0dUb3twYWRkaW5nOjYwJSAxMHB4IDEwcHggMjBweH0uTGlzdFZpZXdfY29udGFpbmVyX19GQmszTntkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJX0uTGlzdFZpZXdfdmVydGljYWxfX1dnQzlre2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uTGlzdFZpZXdfaG9yaXpvbnRhbF9fUlhQU3N7ZmxleC1kaXJlY3Rpb246cm93fS5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheUVsZW1lbnRfdHJheUVsZW1lbnRDb250YWluZXJfX1VaaXlTe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6MCAxcHggMCAwIGhzbGEoMCwwJSwxMDAlLC4xKX0uUHJvZmlsZVJlY29tbWVuZGF0aW9uc1RyYXlFbGVtZW50X3RyYXlFbGVtZW50Q29udGFpbmVyRGVza3RvcF9fYUJhRV97aGVpZ2h0OjcycHg7cGFkZGluZzowIDE0cHh9LlByb2ZpbGVSZWNvbW1lbmRhdGlvbnNUcmF5RWxlbWVudF90cmF5RWxlbWVudENvbnRhaW5lck1vYmlsZV9fU2JIdGN7aGVpZ2h0OjY0cHg7cGFkZGluZzowIDhweH0uUHJvZmlsZVJlY29tbWVuZGF0aW9uc1RyYXlFbGVtZW50X3Byb2ZpbGVQaWN0dXJlV3JhcHBlcl9fcTJQdDB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDJweCA0cHggcmdiYSgwLDAsMCwuMTQpfVtkaXI9bHRyXSAuUHJvZmlsZVJlY29tbWVuZGF0aW9uc1RyYXlFbGVtZW50X3Byb2ZpbGVQaWN0dXJlV3JhcHBlcl9fcTJQdDB7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLlByb2ZpbGVSZWNvbW1lbmRhdGlvbnNUcmF5RWxlbWVudF9wcm9maWxlUGljdHVyZVdyYXBwZXJfX3EyUHQwe21hcmdpbi1sZWZ0OjhweH0uUHJvZmlsZVJlY29tbWVuZGF0aW9uc1RyYXlFbGVtZW50X3Byb2ZpbGVQaWN0dXJlV3JhcHBlcl9fcTJQdDA6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LlByb2ZpbGVSZWNvbW1lbmRhdGlvbnNUcmF5RWxlbWVudF90ZXh0Q29udGFpbmVyX192ZW0xSHt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59W2Rpcj1sdHJdIC5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheUVsZW1lbnRfdGV4dENvbnRhaW5lcl9fdmVtMUh7cGFkZGluZy1sZWZ0OjEwcHh9W2Rpcj1ydGxdIC5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheUVsZW1lbnRfdGV4dENvbnRhaW5lcl9fdmVtMUh7cGFkZGluZy1yaWdodDoxMHB4fS5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheUVsZW1lbnRfdGV4dENvbG9yX191XzlMMiBhe2NvbG9yOnZhcigtLWdyYXktdjIwMCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LlByb2ZpbGVSZWNvbW1lbmRhdGlvbnNUcmF5RWxlbWVudF9zdWJUZXh0Q29sb3JfXzBJMWgxIGF7Y29sb3I6dmFyKC0tZ3JheS12MzAwKTt0ZXh0LWRlY29yYXRpb246bm9uZX0uUHJvZmlsZVJlY29tbWVuZGF0aW9uc1RyYXlFbGVtZW50X3N1YlRleHRDb2xvcl9fMEkxaDE6aG92ZXIsLlByb2ZpbGVSZWNvbW1lbmRhdGlvbnNUcmF5RWxlbWVudF90ZXh0Q29sb3JfX3VfOUwyOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXJ9LlByb2ZpbGVSZWNvbW1lbmRhdGlvbnNUcmF5RWxlbWVudF9zdWJzY3JpYmVCdXR0b25fX0cyTnVGe3dpZHRoOjEwMHB4O2hlaWdodDoyOHB4O3BhZGRpbmc6NnB4IDEycHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY3ctZGFyay1zbGF0ZS1ncmF5KTt0ZXh0LWRlY29yYXRpb246bm9uZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfVtkaXI9bHRyXSAuUHJvZmlsZVJlY29tbWVuZGF0aW9uc1RyYXlFbGVtZW50X3N1YnNjcmliZUJ1dHRvbl9fRzJOdUYgc3Zne21hcmdpbi1yaWdodDo1cHh9W2Rpcj1ydGxdIC5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheUVsZW1lbnRfc3Vic2NyaWJlQnV0dG9uX19HMk51RiBzdmd7bWFyZ2luLWxlZnQ6NXB4fS5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheUVsZW1lbnRfc3Vic2NyaWJlQnV0dG9uX19HMk51RiBzcGFue2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tY3ctZXh0cmEtbGlnaHQtc2xhdGUtZ3JheSk7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LlByb2ZpbGVSZWNvbW1lbmRhdGlvbnNUcmF5RWxlbWVudF9zdWJzY3JpYmVCdXR0b25fX0cyTnVGOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY3ctYnV0dG9uLWhvdmVyLWdyYXkpO2N1cnNvcjpwb2ludGVyfS5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheV90cmF5Q29udGFpbmVyX19yS0tJUntiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC4wNSk7Ym9yZGVyLXJhZGl1czoxMnB4fS5Qcm9maWxlUmVjb21tZW5kYXRpb25zVHJheV90cmF5Q29udGFpbmVyX19yS0tJUiBkaXY6bGFzdC1jaGlsZHtib3gtc2hhZG93Om5vbmV9Lk1vYmlsZVB1YmxpY1Byb2ZpbGVfY29udGFpbmVyX18zYWNncXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtvdmVyZmxvdzpzY3JvbGw7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lk1vYmlsZVB1YmxpY1Byb2ZpbGVfbW9iaWxlQ29udGFpbmVyX183RzJUS3ttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tc25hcGNoYXQtZm9vdGVyLW1pbi1oZWlnaHQpICsgdmFyKC0tY29uc3VtZXItbmF2LWhlaWdodCkpfS5Nb2JpbGVQdWJsaWNQcm9maWxlX21lZGlhV3JhcHBlcl9fZUxMV1p7d2lkdGg6MTAwJX0uTW9iaWxlUHVibGljUHJvZmlsZV9jYXJkQ29udGFpbmVyX19UVTFUU3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5Nb2JpbGVQdWJsaWNQcm9maWxlX2NhcmRXcmFwcGVyX19QaGV2MywuTW9iaWxlUHVibGljUHJvZmlsZV9jb250ZW50V3JhcHBlcl9fZ1BydTN7d2lkdGg6MTAwJX0uTW9iaWxlUHVibGljUHJvZmlsZV9zZWN0aW9uV3JhcHBlcl9fSF82OGx7d2lkdGg6MTAwJTtwYWRkaW5nOjAgMTVweCAxNXB4fS5Nb2JpbGVQdWJsaWNQcm9maWxlX3NlY3Rpb25IZWFkaW5nX183bEpkUXtwYWRkaW5nLWJvdHRvbTo4cHh9Lk1vYmlsZVB1YmxpY1Byb2ZpbGVfYml0bW9qaVdyYXBwZXJfXzdmVnRFe2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4IDE1cHggMTBweH0uTW9iaWxlUHVibGljUHJvZmlsZV9mbG9hdGluZ1BsYXllcldyYXBwZXJfX0JyOTRhe2hlaWdodDpjYWxjKDEwMHZoIC0gY2FsYygxMDB2aCAtIDEwMCUpIC0gdmFyKC0tc25hcGNoYXQtZm9vdGVyLW1pbi1oZWlnaHQpKTt3aWR0aDoxMDAlO3RvcDowO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6dmFyKC0tZmxvYXRpbmctcGxheWVyLXotaW5kZXgpfS5Nb2JpbGVQdWJsaWNQcm9maWxlX2ljb25fX3FpMmd6e3ZlcnRpY2FsLWFsaWduOnN1Yn0uTW9iaWxlUHVibGljUHJvZmlsZV9kaXZpZGVyTGluZV9fZUhkUW17bWFyZ2luOjAgMTNweCAxM3B4O2JvcmRlci1zdHlsZTppbnNldDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjp2YXIoLS1ibGFjay12MTAwKX0uRGVza3RvcFB1YmxpY1Byb2ZpbGVfZGVza3RvcENvbnRhaW5lcl9fWmp3b3d7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjEwMHZoO21pbi13aWR0aDoxMDAwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6dmFyKC0tdGl0bGUtbWFyZ2luLWxlbmd0aCl9LkRlc2t0b3BQdWJsaWNQcm9maWxlX2lubmVyQ29udGFpbmVyX19vNHB6QXtkaXNwbGF5OmZsZXg7d2lkdGg6MTUwMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjEwMCV9LkRlc2t0b3BQdWJsaWNQcm9maWxlX21lZGlhQ29udGFpbmVyX183Z1IzY3toZWlnaHQ6OTB2aDt3aWR0aDo0NS43NXZoO3RvcDowO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjZ2aCAwfS5EZXNrdG9wUHVibGljUHJvZmlsZV9tZWRpYVdyYXBwZXJfX2NCZGxje2hlaWdodDoxMDAlO3dpZHRoOjQ1Ljc1dmg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOnN0aWNreTttYXJnaW4tYm90dG9tOjIwcHg7dG9wOmNhbGMoMTBweCArIHZhcigtLXNwb3RsaWdodC10aXRsZS1tYXJnaW4tdG9wKSl9W2Rpcj1sdHJdIC5EZXNrdG9wUHVibGljUHJvZmlsZV9tZWRpYVdyYXBwZXJfX2NCZGxje21hcmdpbi1yaWdodDo2MHB4fVtkaXI9cnRsXSAuRGVza3RvcFB1YmxpY1Byb2ZpbGVfbWVkaWFXcmFwcGVyX19jQmRsY3ttYXJnaW4tbGVmdDo2MHB4fS5EZXNrdG9wUHVibGljUHJvZmlsZV9jb250ZW50V3JhcHBlcl9fSDVyZVZ7d2lkdGg6NjAlO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6NjIwcHg7bWluLXdpZHRoOjIwMHB4O2FsaWduLWl0ZW1zOmNlbnRlcn0uRGVza3RvcFB1YmxpY1Byb2ZpbGVfY29udGVudFdyYXBwZXJQYWRkaW5nX19RX0NtRntwYWRkaW5nLXRvcDo4MHB4fS5EZXNrdG9wUHVibGljUHJvZmlsZV9jb250ZW50Q29udGFpbmVyX19ySF9PWnttYXJnaW46YXV0bztwYWRkaW5nLWJvdHRvbToyMHB4O21heC1oZWlnaHQ6dmFyKC0tZGVza3RvcC1wdWJsaWMtcHJvZmlsZS1jb250ZW50LXNlY3Rpb24taGVpZ2h0KX0uRGVza3RvcFB1YmxpY1Byb2ZpbGVfcHJvZmlsZUNhcmRXcmFwcGVyX192UnNpN3tkaXNwbGF5OmZsZXh9LkRlc2t0b3BQdWJsaWNQcm9maWxlX3NlY3Rpb25XcmFwcGVyX19XSkJQVHt3aWR0aDo2MjBweDttYXgtd2lkdGg6MTAwJTttYXJnaW4tdG9wOjIwcHh9LkRlc2t0b3BQdWJsaWNQcm9maWxlX3NlY3Rpb25IZWFkaW5nX19sbU85TntwYWRkaW5nLWJvdHRvbToxMnB4fS5EZXNrdG9wUHVibGljUHJvZmlsZV9tZWRpYUNhcmRfXzdzcXFJe2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LkRlc2t0b3BQdWJsaWNQcm9maWxlX2ljb25fX0Z4VVVze3ZlcnRpY2FsLWFsaWduOnN1Yn0uRGVza3RvcFB1YmxpY1Byb2ZpbGVfZGl2aWRlckxpbmVfX0RGVWIze21heC13aWR0aDo2MjBweDt3aWR0aDoxMDAlO2Rpc3BsYXk6aW5saW5lLWZsZXg7bWFyZ2luLXRvcDozMHB4O2JvcmRlci1jb2xvcjp2YXIoLS1ibGFjay12MTAwKX1bZGlyPWx0cl0gLkxlbnNMaXN0X21vYmlsZUl0ZW1Db250YWluZXJfX192UThXOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1yaWdodDo0dnd9W2Rpcj1ydGxdIC5MZW5zTGlzdF9tb2JpbGVJdGVtQ29udGFpbmVyX19fdlE4Vzpub3QoOmxhc3QtY2hpbGQpe3BhZGRpbmctbGVmdDo0dnd9W2Rpcj1sdHJdIC5MZW5zTGlzdF9kZXNrdG9wSXRlbUNvbnRhaW5lcl9fYUpjTUg6bm90KDpsYXN0LWNoaWxkKXtwYWRkaW5nLXJpZ2h0OjI2cHh9W2Rpcj1ydGxdIC5MZW5zTGlzdF9kZXNrdG9wSXRlbUNvbnRhaW5lcl9fYUpjTUg6bm90KDpsYXN0LWNoaWxkKXtwYWRkaW5nLWxlZnQ6MjZweH0uU3RvcnlUaWxlX2hpZ2hsaWdodFdyYXBwZXJfX3FnaXdEe3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uU3RvcnlUaWxlX2hpZ2hsaWdodFdyYXBwZXJNb2JpbGVfX09ZRU5le2hlaWdodDoyMDBweDt3aWR0aDoyOHZ3fVtkaXI9bHRyXSAuU3RvcnlUaWxlX2hpZ2hsaWdodFdyYXBwZXJNb2JpbGVfX09ZRU5lOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjR2d31bZGlyPXJ0bF0gLlN0b3J5VGlsZV9oaWdobGlnaHRXcmFwcGVyTW9iaWxlX19PWUVOZTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1sZWZ0OjR2d30uU3RvcnlUaWxlX2hpZ2hsaWdodFdyYXBwZXJEZXNrdG9wX18xNk1fd3toZWlnaHQ6MjMwcHg7d2lkdGg6MTM1cHh9W2Rpcj1sdHJdIC5TdG9yeVRpbGVfaGlnaGxpZ2h0V3JhcHBlckRlc2t0b3BfXzE2TV93Om5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OjI2cHh9W2Rpcj1ydGxdIC5TdG9yeVRpbGVfaGlnaGxpZ2h0V3JhcHBlckRlc2t0b3BfXzE2TV93Om5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6MjZweH0uU3RvcnlUaWxlX292ZXJsYXlDb250ZW50V3JhcHBlcl9faFNhQld7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1lbmQ7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czoxMnB4fVtkaXI9bHRyXSAuU3RvcnlUaWxlX292ZXJsYXlDb250ZW50V3JhcHBlcl9faFNhQld7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHRyYW5zcGFyZW50IDQwLjU3JSxyZ2JhKDAsMCwwLC40KSl9W2Rpcj1ydGxdIC5TdG9yeVRpbGVfb3ZlcmxheUNvbnRlbnRXcmFwcGVyX19oU2FCV3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgtMTgwZGVnLHRyYW5zcGFyZW50IDQwLjU3JSxyZ2JhKDAsMCwwLC40KSl9LlN0b3J5VGlsZV9jb250ZW50T25QbGF5V3JhcHBlcl9famlNRWt7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czoxMnB4O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjB9LlN0b3J5VGlsZV9zdG9yeVRpdGxlX19fMmZ0antvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7Y29sb3I6I2ZmZn0uSWNvblN0eWxlc19iYXNlQ291bnRJY29uU3R5bGVfX0lieDI1e2ZpbHRlcjpkcm9wLXNoYWRvdygwIDFweCA0cHggcmdiYSgwLDAsMCwuNikpO21hcmdpbi10b3A6MXB4fVtkaXI9bHRyXSAuSWNvblN0eWxlc19iYXNlQ291bnRJY29uU3R5bGVfX0lieDI1e21hcmdpbi1yaWdodDo0cHh9W2Rpcj1ydGxdIC5JY29uU3R5bGVzX2Jhc2VDb3VudEljb25TdHlsZV9fSWJ4MjV7bWFyZ2luLWxlZnQ6NHB4fS5Db3VudENhcmRfY2FyZF9fQlBIckZ7dGV4dC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwwLDAsLjYpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9W2Rpcj1sdHJdIC5Db3VudENhcmRfY2FyZF9fQlBIckZ7bWFyZ2luLXJpZ2h0OjhweH1bZGlyPXJ0bF0gLkNvdW50Q2FyZF9jYXJkX19CUEhyRnttYXJnaW4tbGVmdDo4cHh9LkNvdW50Q2FyZF90ZXh0Q29sb3JfXzdfZWE2e2NvbG9yOiNmZmZ9LlNwb3RsaWdodFRpbGVfaGlnaGxpZ2h0V3JhcHBlcl9fUVkxbEh7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5TcG90bGlnaHRUaWxlX2hpZ2hsaWdodFdyYXBwZXJNb2JpbGVfX2lTcE1ue2hlaWdodDoyMDBweDt3aWR0aDoyOHZ3fVtkaXI9bHRyXSAuU3BvdGxpZ2h0VGlsZV9oaWdobGlnaHRXcmFwcGVyTW9iaWxlX19pU3BNbjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDo0dnd9W2Rpcj1ydGxdIC5TcG90bGlnaHRUaWxlX2hpZ2hsaWdodFdyYXBwZXJNb2JpbGVfX2lTcE1uOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6NHZ3fS5TcG90bGlnaHRUaWxlX2hpZ2hsaWdodFdyYXBwZXJEZXNrdG9wX19lVXc0cntoZWlnaHQ6MjMwcHg7d2lkdGg6MTM1cHh9W2Rpcj1sdHJdIC5TcG90bGlnaHRUaWxlX2hpZ2hsaWdodFdyYXBwZXJEZXNrdG9wX19lVXc0cjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDoyNnB4fVtkaXI9cnRsXSAuU3BvdGxpZ2h0VGlsZV9oaWdobGlnaHRXcmFwcGVyRGVza3RvcF9fZVV3NHI6bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tbGVmdDoyNnB4fS5TcG90bGlnaHRUaWxlX292ZXJsYXlDb250ZW50V3JhcHBlcl9fdzEyQ2d7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1lbmQ7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czoxMnB4fVtkaXI9bHRyXSAuU3BvdGxpZ2h0VGlsZV9vdmVybGF5Q29udGVudFdyYXBwZXJfX3cxMkNne2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx0cmFuc3BhcmVudCA0MC41NyUscmdiYSgwLDAsMCwuNCkpfVtkaXI9cnRsXSAuU3BvdGxpZ2h0VGlsZV9vdmVybGF5Q29udGVudFdyYXBwZXJfX3cxMkNne2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KC0xODBkZWcsdHJhbnNwYXJlbnQgNDAuNTclLHJnYmEoMCwwLDAsLjQpKX0uU3BvdGxpZ2h0VGlsZV9jb250ZW50T25QbGF5V3JhcHBlcl9fZ1kwX0d7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czoxMnB4O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjB9LlNwb3RsaWdodFRpbGVfc3RvcnlUaXRsZV9fYU9fUEp7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7d29yZC1icmVhazpicmVhay13b3JkO2NvbG9yOiNmZmZ9LkNvbnRlbnROb3RBdmFpbGFibGVfdGV4dF9fUV9zdVJ7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoyMHB4IDB9LkNvbnRlbnROb3RBdmFpbGFibGVfdGV4dE1vYmlsZV9fSjRDUjh7Z3JpZC1jb2x1bW4tZW5kOnNwYW4gM30uQ29udGVudE5vdEF2YWlsYWJsZV90ZXh0RGVza3RvcF9feGVfZUd7Z3JpZC1jb2x1bW4tZW5kOnNwYW4gNH0uQ29udGVudHNTZWN0aW9uX2Rlc2t0b3BTZWN0aW9uV3JhcHBlcl9fSG5HVmp7d2lkdGg6NjIwcHg7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLXRvcDoyMHB4O2Rpc3BsYXk6Z3JpZDtncmlkLXJvdy1nYXA6MThweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmciAxZnIgMWZyfS5Db250ZW50c1NlY3Rpb25fbW9iaWxlU2VjdGlvbldyYXBwZXJfXzRGTW1We3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4O2Rpc3BsYXk6Z3JpZDtncmlkLXJvdy1nYXA6MTZweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmciAxZnJ9LkNvbnRlbnRzU2VjdGlvbl9zZWN0aW9uX19QZVhtaCBuYXZ7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3RvcDp2YXIoLS1jb25zdW1lci1uYXYtaGVpZ2h0KTt6LWluZGV4OnZhcigtLWZpeGVkLXRhYi16LWluZGV4KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXBhZ2UtYmctY29sb3IpfS5Db250ZW50c1NlY3Rpb25fZGVza3RvcFNlY3Rpb25fX1JvbXRGe21heC13aWR0aDo2MjBweH0uQ29udGVudHNTZWN0aW9uX21vYmlsZVNlY3Rpb25fXzlOU1daIG5hdntwYWRkaW5nOjAgMTNweH0uQ29udGVudHNTZWN0aW9uX2Rlc2t0b3BTZWN0aW9uV3JhcHBlckxlZ2FjeV9fc25uaEJ7d2lkdGg6NjIwcHg7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLXRvcDoyMHB4fS5Db250ZW50c1NlY3Rpb25fZGVza3RvcFNlY3Rpb25IZWFkaW5nTGVnYWN5X19kblVoZntwYWRkaW5nLWJvdHRvbToxMnB4fS5Db250ZW50c1NlY3Rpb25fbW9iaWxlU2VjdGlvbldyYXBwZXJMZWdhY3lfX2tnRWdne3dpZHRoOjEwMCU7cGFkZGluZzowIDE1cHggMTVweH0uQ29udGVudHNTZWN0aW9uX21vYmlsZVNlY3Rpb25IZWFkaW5nTGVnYWN5X19nejdjdntwYWRkaW5nLWJvdHRvbTo4cHh9LlVzZXJQcm9maWxlX21vYmlsZUZvb3RlckNvbnRhaW5lcl9fX2lqTGZ7cG9zaXRpb246Zml4ZWQ7bWFyZ2luLXRvcDpjYWxjKC0xICogdmFyKC0tc25hcGNoYXQtZm9vdGVyLW1pbi1oZWlnaHQpKTtoZWlnaHQ6dmFyKC0tc25hcGNoYXQtZm9vdGVyLW1pbi1oZWlnaHQpO292ZXJmbG93OmhpZGRlbjt6LWluZGV4OnZhcigtLWN0YS1mb290ZXItei1pbmRleCl9LlVzZXJQcm9maWxlX2Rlc2t0b3BDb250YWluZXJfXzhPUE8ye292ZXJmbG93LXg6Y2xpcH0uVXNlclByb2ZpbGVfZGVza3RvcEZvb3RlckNvbnRhaW5lcl9fNzVfUWh7d2lkdGg6MTAwJX0uVXNlclByb2ZpbGVfbW9iaWxlUHVibGljUHJvZmlsZUNvbnRhaW5lcl9fcDRrN297bWFyZ2luLXRvcDo2MHB4O3dpZHRoOjEwMCV9LlllbGxvd0JhY2tncm91bmRXaXRoR2hvc3RJY29uX2NvbnRhaW5lcl9fT3MxbDN7ZGlzcGxheTpmbGV4O2JhY2tncm91bmQtY29sb3I6dmFyKC0teWVsbG93LXYxMDApO2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5Vc2VyUHJvZmlsZUJhY2tncm91bmRfY29udGFpbmVyX196U0VFT3toZWlnaHQ6NjAlO3dpZHRoOjEwMCU7cG9zaXRpb246Zml4ZWR9LlVzZXJQcm9maWxlQmFja2dyb3VuZF9mdWxsQ29udGFpbmVyX19CU2JGYXtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3Bvc2l0aW9uOmZpeGVkfS5Vc2VyUHJvZmlsZUJhY2tncm91bmRfeWVsbG93QmFja2dyb3VuZENvbnRhaW5lcl9fckVub1N7d2lkdGg6MTAwJTtwb3NpdGlvbjpmaXhlZH0uVXNlclByb2ZpbGVUcmF5QnV0dG9uX2J1dHRvbl9feVFFTDZ7d2lkdGg6Y2FsYygxMDB2dyAtIDMycHgpO2hlaWdodDo1NnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LlVzZXJQcm9maWxlVHJheUJ1dHRvbl9idXR0b25fX3lRRUw2IHNwYW57bWFyZ2luLXRvcDotOHB4fS5Vc2VyUHJvZmlsZVRyYXlCdXR0b25fdGl0bGVfX1VKdlFUe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNnB4O2NvbG9yOnZhcigtLWJsYWNrLXYxNTApfS5Vc2VyUHJvZmlsZVRyYXlCdXR0b25fYnV0dG9uVjFfX1NteE01e2dhcDo4cHg7cGFkZGluZzo2cHggMjRweDtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDFweCA0cHggMCByZ2JhKDAsMCwwLC4xKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LlVzZXJQcm9maWxlVHJheUJ1dHRvbl9idXR0b25WMl9fTkhvalV7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOjI2cHg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibHVlLXYyMDApfS5Vc2VyUHJvZmlsZVRyYXlCdXR0b25fYnV0dG9uVjJfX05Ib2pVPi5Vc2VyUHJvZmlsZVRyYXlCdXR0b25fdGl0bGVfX1VKdlFUe2NvbG9yOiNmZmY7Zm9udC1zaXplOjE4cHh9LlVzZXJQcm9maWxlVHJheV90cmF5Q29udGFpbmVyX190a003cntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JvcmRlci1yYWRpdXM6MTJweCAxMnB4IDAgMDtiYWNrZ3JvdW5kOnZhcigtLWdyYXktdjUwKTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDB2dztnYXA6MTZweDtwYWRkaW5nOjE1cHggMTRweDstd2Via2l0LWJveC1zaGFkb3c6MCAtMjBweCA1MHB4IHJnYmEoMCwwLDAsLjIpOy1tb3otYm94LXNoYWRvdzowIC05N3B4IDUwcHggcmdiYSgwLDAsMCwuMik7Ym94LXNoYWRvdzowIC00MHB4IDUwcHggcmdiYSgwLDAsMCwuMil9LlVzZXJQcm9maWxlVHJheV9pbmZvQ29udGVudENvbnRhaW5lcl9fTU5fS0l7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzttYXJnaW4tdG9wOjEycHh9LlVzZXJQcm9maWxlVHJheV9zbmFwY29kZUNvbnRhaW5lcl9fVWYxMzh7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5Vc2VyUHJvZmlsZVRyYXlfcHJvZmlsZVBpY3R1cmVDb250YWluZXJfXzNUUWtYIHN2Z3tmaWxsOiMyYTNlOTB9LlVzZXJQcm9maWxlVHJheV9tZXRhRGF0YUNvbnRhaW5lcl9fMzN2M2t7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Y29sb3I6IzAwMH1bZGlyPWx0cl0gLlVzZXJQcm9maWxlVHJheV9tZXRhRGF0YUNvbnRhaW5lcl9fMzN2M2t7bWFyZ2luLWxlZnQ6MjBweH1bZGlyPXJ0bF0gLlVzZXJQcm9maWxlVHJheV9tZXRhRGF0YUNvbnRhaW5lcl9fMzN2M2t7bWFyZ2luLXJpZ2h0OjIwcHh9Lk1vYmlsZVVzZXJQcm9maWxlX2NvbnRhaW5lcl9fbGZRbHp7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0uTW9iaWxlVXNlclByb2ZpbGVfdHJheUNvbnRhaW5lcl9faUxrd3B7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjB9W2Rpcj1sdHJdIC5Nb2JpbGVVc2VyUHJvZmlsZV90cmF5Q29udGFpbmVyX19pTGt3cHtsZWZ0OjB9W2Rpcj1ydGxdIC5Nb2JpbGVVc2VyUHJvZmlsZV90cmF5Q29udGFpbmVyX19pTGt3cHtyaWdodDowfS5Nb2JpbGVVc2VyUHJvZmlsZV90cmF5Q29udGFpbmVyV3JhcHBlcl9fdER3M057cG9zaXRpb246Zml4ZWR9W2Rpcj1sdHJdIC5Nb2JpbGVVc2VyUHJvZmlsZV90cmF5Q29udGFpbmVyV3JhcHBlcl9fdER3M057bGVmdDowfVtkaXI9cnRsXSAuTW9iaWxlVXNlclByb2ZpbGVfdHJheUNvbnRhaW5lcldyYXBwZXJfX3REdzNOe3JpZ2h0OjB9Lk1vYmlsZVVzZXJQcm9maWxlX3RyYXlDb250YWluZXJXaXRoRm9vdGVyX19ucHJLWHtib3R0b206dmFyKC0tc25hcGNoYXQtZm9vdGVyLW1pbi1oZWlnaHQpfS5Nb2JpbGVVc2VyUHJvZmlsZV90cmF5Q29udGFpbmVyV2l0aEZvb3Rlck5hdlYyX19odTdtc3tib3R0b206Y2FsYyh2YXIoLS1jb25zdW1lci1uYXYtaGVpZ2h0KSArIHZhcigtLXNuYXBjaGF0LWZvb3Rlci1taW4taGVpZ2h0KSl9Lk1vYmlsZVVzZXJQcm9maWxlX3RyYXlDb250YWluZXJXaXRob3V0Rm9vdGVyX19wN182Z3tib3R0b206MH0uTW9iaWxlVXNlclByb2ZpbGVfc2hhcmVJY29uV3JhcHBlcl9feWQxeW17cG9zaXRpb246Zml4ZWQ7ei1pbmRleDp2YXIoLS1zaGFyZS1pY29uLXotaW5kZXgpO3RvcDp2YXIoLS1tb2JpbGUtYnV0dG9uLXRvcCl9W2Rpcj1sdHJdIC5Nb2JpbGVVc2VyUHJvZmlsZV9zaGFyZUljb25XcmFwcGVyX195ZDF5bXtyaWdodDp2YXIoLS1idXR0b24tb24tdG9wLXBhZGRpbmcpfVtkaXI9cnRsXSAuTW9iaWxlVXNlclByb2ZpbGVfc2hhcmVJY29uV3JhcHBlcl9feWQxeW17bGVmdDp2YXIoLS1idXR0b24tb24tdG9wLXBhZGRpbmcpfVxuIn0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDcxMTEsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDcxMTF9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiAyOS45ODUsICJyZWNlaXZlIjogMi42MzR9LCAicGFnZXJlZiI6ICJwYWdlQDg2ZGRlNDliMDc3MjhmNTA4YzY4MmFhODU3NGMzZTQ4IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC42Ni4xMjAuMjQ3IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJzdG9yeS5zbmFwY2hhdC5jb20iLCAiaXNzdWVyIjogIkRpZ2lDZXJ0IFRMUyBSU0EgU0hBMjU2IDIwMjAgQ0ExIiwgInZhbGlkRnJvbSI6IDE2NjA2OTQ0MDAsICJ2YWxpZFRvIjogMTY5MjMxNjc5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTA1LTEzVDE4OjAyOjI5LjIwN1oiLCAidGltZSI6IDQ1Ljk4Mzk5OTk5OTk5OTk5NSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jaHVua3Mvd2VicGFjay1lYmI4YzExYjBlNjBjMjNmLmpzIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAic3Rvcnkuc25hcGNoYXQuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiL19uZXh0L3N0YXRpYy9jaHVua3Mvd2VicGFjay1lYmI4YzExYjBlNjBjMjNmLmpzIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAic2NyaXB0In0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtc2l0ZSIsICJ2YWx1ZSI6ICJzYW1lLXNpdGUifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExMy4wLjU2NzIuNTMgU2FmYXJpLzUzNy4zNiJ9XSwgInF1ZXJ5U3RyaW5nIjogW10sICJoZWFkZXJzU2l6ZSI6IDQ3MiwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiYWdlIiwgInZhbHVlIjogIjE4NDE0NyJ9LCB7Im5hbWUiOiAiY2FjaGUtY29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwLHB1YmxpYyxpbW11dGFibGUifSwgeyJuYW1lIjogImNvbnRlbnQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxNDo1MzoyMyBHTVQifSwgeyJuYW1lIjogImV0YWciLCAidmFsdWUiOiAiVy9cIjMxN2Q1ZDY1ZDExOWI0MTZmOGQ4OTc0ZWYzNzY5NmQyXCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxNDo0OTo0NiBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBbWF6b25TMyJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOTBiYjEzMGVjY2NiNzE5NTNiMzhhMWMwZTNiNTcyMWEuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJuTnFKVUpycnBWMWZIdVZMdmxiVkdBMm1jV3FUS284bUhGM1RacTA2R2paQ1NwMHpncm85RVE9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTYwLVAyIn0sIHsibmFtZSI6ICJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIiwgInZhbHVlIjogIkFFUzI1NiJ9LCB7Im5hbWUiOiAieC1jYWNoZSIsICJ2YWx1ZSI6ICJIaXQgZnJvbSBjbG91ZGZyb250In1dLCAiY29udGVudCI6IHsic2l6ZSI6IDcwMTYsICJtaW1lVHlwZSI6ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiwgImNvbXByZXNzaW9uIjogMzI3MSwgInRleHQiOiAiIWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9e30sdD17fTtmdW5jdGlvbiBuKHIpe3ZhciBhPXRbcl07aWYodm9pZCAwIT09YSlyZXR1cm4gYS5leHBvcnRzO3ZhciBmPXRbcl09e2lkOnIsbG9hZGVkOiExLGV4cG9ydHM6e319LGM9ITA7dHJ5e2Vbcl0uY2FsbChmLmV4cG9ydHMsZixmLmV4cG9ydHMsbiksYz0hMX1maW5hbGx5e2MmJmRlbGV0ZSB0W3JdfXJldHVybiBmLmxvYWRlZD0hMCxmLmV4cG9ydHN9bi5tPWUsbi5hbWRPPXt9LGZ1bmN0aW9uKCl7dmFyIGU9W107bi5PPWZ1bmN0aW9uKHQscixhLGYpe2lmKCFyKXt2YXIgYz0xLzA7Zm9yKGQ9MDtkPGUubGVuZ3RoO2QrKyl7cj1lW2RdWzBdLGE9ZVtkXVsxXSxmPWVbZF1bMl07Zm9yKHZhciBvPSEwLGk9MDtpPHIubGVuZ3RoO2krKykoITEmZnx8Yz49ZikmJk9iamVjdC5rZXlzKG4uTykuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiBuLk9bZV0ocltpXSl9KSk/ci5zcGxpY2UoaS0tLDEpOihvPSExLGY8YyYmKGM9ZikpO2lmKG8pe2Uuc3BsaWNlKGQtLSwxKTt2YXIgdT1hKCk7dm9pZCAwIT09dSYmKHQ9dSl9fXJldHVybiB0fWY9Znx8MDtmb3IodmFyIGQ9ZS5sZW5ndGg7ZD4wJiZlW2QtMV1bMl0+ZjtkLS0pZVtkXT1lW2QtMV07ZVtkXT1bcixhLGZdfX0oKSxuLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIG4uZCh0LHthOnR9KSx0fSxmdW5jdGlvbigpe3ZhciBlLHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mP2Z1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBlLl9fcHJvdG9fX307bi50PWZ1bmN0aW9uKHIsYSl7aWYoMSZhJiYocj10aGlzKHIpKSw4JmEpcmV0dXJuIHI7aWYoXCJvYmplY3RcIj09PXR5cGVvZiByJiZyKXtpZig0JmEmJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZigxNiZhJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygci50aGVuKXJldHVybiByfXZhciBmPU9iamVjdC5jcmVhdGUobnVsbCk7bi5yKGYpO3ZhciBjPXt9O2U9ZXx8W251bGwsdCh7fSksdChbXSksdCh0KV07Zm9yKHZhciBvPTImYSYmcjtcIm9iamVjdFwiPT10eXBlb2YgbyYmIX5lLmluZGV4T2Yobyk7bz10KG8pKU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG8pLmZvckVhY2goKGZ1bmN0aW9uKGUpe2NbZV09ZnVuY3Rpb24oKXtyZXR1cm4gcltlXX19KSk7cmV0dXJuIGMuZGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiByfSxuLmQoZixjKSxmfX0oKSxuLmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gdCluLm8odCxyKSYmIW4ubyhlLHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDp0W3JdfSl9LG4uZj17fSxuLmU9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKG4uZikucmVkdWNlKChmdW5jdGlvbih0LHIpe3JldHVybiBuLmZbcl0oZSx0KSx0fSksW10pKX0sbi51PWZ1bmN0aW9uKGUpe3JldHVybiA3NzEyPT09ZT9cInN0YXRpYy9jaHVua3MvNzcxMi05ZTFhYjBiOGExODdlZmY0LmpzXCI6ODE4MD09PWU/XCJzdGF0aWMvY2h1bmtzLzgxODAtZTI1ZGU5YmM0MjUyNzgyMi5qc1wiOlwic3RhdGljL2NodW5rcy9cIitlK1wiLlwiK3szNzM6XCJiZWY2ZDhjMGVkY2I0YTEwXCIsODY5OlwiZWFkMzA5MmFmOWU5MDBhMlwiLDEwMjU6XCI0Y2FmODQ0MWNkNTk1MzZmXCIsMTE1NzpcImI4OWRjZGIxYjdjZDQ0MDNcIiwxNDcxOlwiNzU0MjEyY2Q3NTU2MzZjN1wiLDE4NDk6XCJlNGE0M2E5YmU4NDI5YzViXCIsMTg2MjpcIjUxZWZjZGM4MjEyZDZlOTRcIiwxOTQ0OlwiYzhhN2I3MTU3ZTQxNjkxM1wiLDIwMDc6XCIxNzg1YTFlZmM1ZmNjNzY5XCIsMjI1ODpcIjEzZjk5NGYxOWE3ZjUzNTdcIiwyNDEzOlwiYjU5Y2Y3OGNiNmE5ZWUyYlwiLDI1MzQ6XCIxNTgxMmNmZWIxMTMzMDJmXCIsMjc0MTpcIjY1M2M3ODdmMjQ5MGRjMjRcIiwyNzUwOlwiNDA0NDYxOTNlMzUyOGU2NVwiLDI5ODg6XCJiNDhkMDg4ZWI1OGY3NjhmXCIsMzE0MDpcIjU2ZDFiMDAwNWMwMjRkZGRcIiwzMTg3OlwiNjYxMGU1MzU2ZTBkMjBhYVwiLDMyMDE6XCJiMTg5YmI4YTQ2OGMyNzZkXCIsMzUzOTpcImNiYmEzYTlhOGViZWJhZWZcIiwzOTMzOlwiNWUwNzZmOTMxNTBhYjE2OVwiLDQxODQ6XCJkMDkxZDE5YTY5NTdmYTNiXCIsNDQyMjpcIjJmZWY2ZjU5YWFkZTA1ZDVcIiw0NDc2OlwiYzIwNjYwZjczYTA4ZWU4N1wiLDQ5NTI6XCIxNDlmOWQ0MzM3ZTI1ZTM1XCIsNTA4MjpcImIwZDBkZWVmNjZlYzE1NDlcIiw1MjEwOlwiOTdiNTcwMjA5NjYxMWMzZlwiLDUyODU6XCJhMTkwYzY0MjZkNDVlZGFiXCIsNTMyOTpcIjA3NjYyZjUzYzE3MjA0NzVcIiw1NjkyOlwiMzlmNmIxNjFiZmEzYWY0MFwiLDU4Nzc6XCJjM2NjMDQzNjZmZmNmODM3XCIsNjAzMTpcIjljMGMxMDM2NDM3Y2RlNmNcIiw2OTA1OlwiNzFmYTkyZjc5ZDE1NmJjYVwiLDcxNDY6XCIxZWIyYTVhNGFiYmE4Y2RlXCIsNzQ5MzpcIjJjMTM3YWQyMmZlZjVkMmRcIiw3Nzg4OlwiOTk1ZTdlOTViMzA1MmQ3OFwiLDc5NzQ6XCJmM2I4YWJmMjkyZWU5MWU2XCIsNzk5NzpcImNhYTJlMjM5Y2Q4OWFiODlcIiw4MzQ3OlwiMmI2Y2M1MWQyMjk3NjZhOFwiLDg0NDE6XCI3MTA1MWU4Y2M2MmZiMTMzXCIsODQ5MTpcIjMwNzU1YmNkYzAyZDMyNmJcIiw4Nzc0OlwiYTk2YWIwNzcxODlmZmM0Y1wiLDg3ODk6XCJiYTU0YzViNWMxMTlkYTZhXCIsOTA2MzpcIjRhNDE0N2M1NGI4MGQxOTRcIiw5NjUxOlwiYmRkZDk1OWE3Yzg1ZWZjMlwiLDk3MDI6XCIwM2I3ZmVhZGQ0OGJiMmI1XCIsOTc5NDpcIjA5Y2JlYzdjMjQ0NGI5NWVcIiw5OTUwOlwiM2Y2ODdmNDM2NGM2NzA3MVwifVtlXStcIi5qc1wifSxuLm1pbmlDc3NGPWZ1bmN0aW9uKGUpe3JldHVyblwic3RhdGljL2Nzcy9cIit7NDg2OlwiN2JjYzU1ZmU3YjFkMzk2ZlwiLDU1MDpcImYwMjlmNmM1Y2ZhOGM3MTJcIiwxMzQ0OlwiOTk1NmY1ZTVkYzNiY2ZhNFwiLDE5NDQ6XCJmMDI5ZjZjNWNmYThjNzEyXCIsMjE5NzpcImYwMjlmNmM1Y2ZhOGM3MTJcIiwyODg4OlwiMmU3MTg5NWY3ODAzNTgyYlwiLDMxNTc6XCJiZWU4Y2E0YTcxNWJjMzBlXCIsMzIwNTpcIjY2YTNjMjg1YmU2NDhiYWZcIiwzNTc5OlwiN2IzZTk4NDQ1YjhkYzIzZVwiLDM5MzY6XCJmMDI5ZjZjNWNmYThjNzEyXCIsNDMyMDpcImY5YWE3YzJkNWM1OGYzYjFcIiw0NDc2OlwiMDJjZDUzOGM5Zjc4MTE4NVwiLDQ0ODA6XCJiZWU4Y2E0YTcxNWJjMzBlXCIsNDkyMzpcImYwMjlmNmM1Y2ZhOGM3MTJcIiw1NjA1OlwiMjg0NTRjNTE5MGYxMTFhNFwiLDc5OTc6XCJmMDI5ZjZjNWNmYThjNzEyXCIsOTU2MDpcImZjOTVjZjJjMTViMjE4NDlcIn1bZV0rXCIuY3NzXCJ9LG4uZz1mdW5jdGlvbigpe2lmKFwib2JqZWN0XCI9PT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCl9Y2F0Y2goZSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksbi5obWQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9T2JqZWN0LmNyZWF0ZShlKSkuY2hpbGRyZW58fChlLmNoaWxkcmVuPVtdKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImV4cG9ydHNcIix7ZW51bWVyYWJsZTohMCxzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJFUyBNb2R1bGVzIG1heSBub3QgYXNzaWduIG1vZHVsZS5leHBvcnRzIG9yIGV4cG9ydHMuKiwgVXNlIEVTTSBleHBvcnQgc3ludGF4LCBpbnN0ZWFkOiBcIitlLmlkKX19KSxlfSxuLm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9LGZ1bmN0aW9uKCl7dmFyIGU9e30sdD1cIl9OX0U6XCI7bi5sPWZ1bmN0aW9uKHIsYSxmLGMpe2lmKGVbcl0pZVtyXS5wdXNoKGEpO2Vsc2V7dmFyIG8saTtpZih2b2lkIDAhPT1mKWZvcih2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKSxkPTA7ZDx1Lmxlbmd0aDtkKyspe3ZhciBiPXVbZF07aWYoYi5nZXRBdHRyaWJ1dGUoXCJzcmNcIik9PXJ8fGIuZ2V0QXR0cmlidXRlKFwiZGF0YS13ZWJwYWNrXCIpPT10K2Ype289YjticmVha319b3x8KGk9ITAsKG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSkuY2hhcnNldD1cInV0Zi04XCIsby50aW1lb3V0PTEyMCxuLm5jJiZvLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsbi5uYyksby5zZXRBdHRyaWJ1dGUoXCJkYXRhLXdlYnBhY2tcIix0K2YpLG8uc3JjPW4udHUocikpLGVbcl09W2FdO3ZhciBzPWZ1bmN0aW9uKHQsbil7by5vbmVycm9yPW8ub25sb2FkPW51bGwsY2xlYXJUaW1lb3V0KGwpO3ZhciBhPWVbcl07aWYoZGVsZXRlIGVbcl0sby5wYXJlbnROb2RlJiZvLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobyksYSYmYS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZShuKX0pKSx0KXJldHVybiB0KG4pfSxsPXNldFRpbWVvdXQocy5iaW5kKG51bGwsdm9pZCAwLHt0eXBlOlwidGltZW91dFwiLHRhcmdldDpvfSksMTJlNCk7by5vbmVycm9yPXMuYmluZChudWxsLG8ub25lcnJvciksby5vbmxvYWQ9cy5iaW5kKG51bGwsby5vbmxvYWQpLGkmJmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobyl9fX0oKSxuLnI9ZnVuY3Rpb24oZSl7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9LG4ubm1kPWZ1bmN0aW9uKGUpe3JldHVybiBlLnBhdGhzPVtdLGUuY2hpbGRyZW58fChlLmNoaWxkcmVuPVtdKSxlfSxmdW5jdGlvbigpe3ZhciBlO24udHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e2NyZWF0ZVNjcmlwdFVSTDpmdW5jdGlvbihlKXtyZXR1cm4gZX19LFwidW5kZWZpbmVkXCIhPT10eXBlb2YgdHJ1c3RlZFR5cGVzJiZ0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5JiYoZT10cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KFwibmV4dGpzI2J1bmRsZXJcIixlKSkpLGV9fSgpLG4udHU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4udHQoKS5jcmVhdGVTY3JpcHRVUkwoZSl9LG4ucD1cImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L1wiLGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LHIpe3ZhciBhPW4ubWluaUNzc0YoZSksZj1uLnArYTtpZihmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImxpbmtcIikscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgYT0oYz1uW3JdKS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIil8fGMuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKTtpZihcInN0eWxlc2hlZXRcIj09PWMucmVsJiYoYT09PWV8fGE9PT10KSlyZXR1cm4gY312YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInN0eWxlXCIpO2ZvcihyPTA7cjxmLmxlbmd0aDtyKyspe3ZhciBjO2lmKChhPShjPWZbcl0pLmdldEF0dHJpYnV0ZShcImRhdGEtaHJlZlwiKSk9PT1lfHxhPT09dClyZXR1cm4gY319KGEsZikpcmV0dXJuIHQoKTshZnVuY3Rpb24oZSx0LG4scil7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7YS5yZWw9XCJzdHlsZXNoZWV0XCIsYS50eXBlPVwidGV4dC9jc3NcIixhLm9uZXJyb3I9YS5vbmxvYWQ9ZnVuY3Rpb24oZil7aWYoYS5vbmVycm9yPWEub25sb2FkPW51bGwsXCJsb2FkXCI9PT1mLnR5cGUpbigpO2Vsc2V7dmFyIGM9ZiYmKFwibG9hZFwiPT09Zi50eXBlP1wibWlzc2luZ1wiOmYudHlwZSksbz1mJiZmLnRhcmdldCYmZi50YXJnZXQuaHJlZnx8dCxpPW5ldyBFcnJvcihcIkxvYWRpbmcgQ1NTIGNodW5rIFwiK2UrXCIgZmFpbGVkLlxcbihcIitvK1wiKVwiKTtpLmNvZGU9XCJDU1NfQ0hVTktfTE9BRF9GQUlMRURcIixpLnR5cGU9YyxpLnJlcXVlc3Q9byxhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSkscihpKX19LGEuaHJlZj10LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYSl9KGUsZix0LHIpfSkpfSx0PXsyMjcyOjB9O24uZi5taW5pQ3NzPWZ1bmN0aW9uKG4scil7dFtuXT9yLnB1c2godFtuXSk6MCE9PXRbbl0mJnsxOTQ0OjEsNDQ3NjoxLDc5OTc6MX1bbl0mJnIucHVzaCh0W25dPWUobikudGhlbigoZnVuY3Rpb24oKXt0W25dPTB9KSwoZnVuY3Rpb24oZSl7dGhyb3cgZGVsZXRlIHRbbl0sZX0pKSl9fSgpLGZ1bmN0aW9uKCl7dmFyIGU9ezIyNzI6MH07bi5mLmo9ZnVuY3Rpb24odCxyKXt2YXIgYT1uLm8oZSx0KT9lW3RdOnZvaWQgMDtpZigwIT09YSlpZihhKXIucHVzaChhWzJdKTtlbHNlIGlmKC9eKDIyNzJ8Nzk5NykkLy50ZXN0KHQpKWVbdF09MDtlbHNle3ZhciBmPW5ldyBQcm9taXNlKChmdW5jdGlvbihuLHIpe2E9ZVt0XT1bbixyXX0pKTtyLnB1c2goYVsyXT1mKTt2YXIgYz1uLnArbi51KHQpLG89bmV3IEVycm9yO24ubChjLChmdW5jdGlvbihyKXtpZihuLm8oZSx0KSYmKDAhPT0oYT1lW3RdKSYmKGVbdF09dm9pZCAwKSxhKSl7dmFyIGY9ciYmKFwibG9hZFwiPT09ci50eXBlP1wibWlzc2luZ1wiOnIudHlwZSksYz1yJiZyLnRhcmdldCYmci50YXJnZXQuc3JjO28ubWVzc2FnZT1cIkxvYWRpbmcgY2h1bmsgXCIrdCtcIiBmYWlsZWQuXFxuKFwiK2YrXCI6IFwiK2MrXCIpXCIsby5uYW1lPVwiQ2h1bmtMb2FkRXJyb3JcIixvLnR5cGU9ZixvLnJlcXVlc3Q9YyxhWzFdKG8pfX0pLFwiY2h1bmstXCIrdCx0KX19LG4uTy5qPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09ZVt0XX07dmFyIHQ9ZnVuY3Rpb24odCxyKXt2YXIgYSxmLGM9clswXSxvPXJbMV0saT1yWzJdLHU9MDtpZihjLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiAwIT09ZVt0XX0pKSl7Zm9yKGEgaW4gbyluLm8obyxhKSYmKG4ubVthXT1vW2FdKTtpZihpKXZhciBkPWkobil9Zm9yKHQmJnQocik7dTxjLmxlbmd0aDt1KyspZj1jW3VdLG4ubyhlLGYpJiZlW2ZdJiZlW2ZdWzBdKCksZVtmXT0wO3JldHVybiBuLk8oZCl9LHI9c2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W107ci5mb3JFYWNoKHQuYmluZChudWxsLDApKSxyLnB1c2g9dC5iaW5kKG51bGwsci5wdXNoLmJpbmQocikpfSgpfSgpO1xuIn0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDM3NDUsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDM3NDV9LCAiY2FjaGUiOiB7fSwgInRpbWluZ3MiOiB7ImRucyI6IC0xLCAiY29ubmVjdCI6IC0xLCAic3NsIjogLTEsICJzZW5kIjogMCwgIndhaXQiOiAyOS41MTQsICJyZWNlaXZlIjogMTYuNDd9LCAicGFnZXJlZiI6ICJwYWdlQDg2ZGRlNDliMDc3MjhmNTA4YzY4MmFhODU3NGMzZTQ4IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC42Ni4xMjAuMjQ3IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJzdG9yeS5zbmFwY2hhdC5jb20iLCAiaXNzdWVyIjogIkRpZ2lDZXJ0IFRMUyBSU0EgU0hBMjU2IDIwMjAgQ0ExIiwgInZhbGlkRnJvbSI6IDE2NjA2OTQ0MDAsICJ2YWxpZFRvIjogMTY5MjMxNjc5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTA1LTEzVDE4OjAyOjI5LjIwOFoiLCAidGltZSI6IDUwLjM2MTk5OTk5OTk5OTk5NSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jaHVua3MvZnJhbWV3b3JrLWVjNzU3OGJjM2U3ZTljNzguanMiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJzdG9yeS5zbmFwY2hhdC5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvX25leHQvc3RhdGljL2NodW5rcy9mcmFtZXdvcmstZWM3NTc4YmMzZTdlOWM3OC5qcyJ9LCB7Im5hbWUiOiAiOnNjaGVtZSIsICJ2YWx1ZSI6ICJodHRwcyJ9LCB7Im5hbWUiOiAiYWNjZXB0IiwgInZhbHVlIjogIiovKiJ9LCB7Im5hbWUiOiAiYWNjZXB0LWVuY29kaW5nIiwgInZhbHVlIjogImd6aXAsIGRlZmxhdGUsIGJyIn0sIHsibmFtZSI6ICJyZWZlcmVyIiwgInZhbHVlIjogImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS8ifSwgeyJuYW1lIjogInNlYy1mZXRjaC1kZXN0IiwgInZhbHVlIjogInNjcmlwdCJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLW1vZGUiLCAidmFsdWUiOiAibm8tY29ycyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLXNpdGUiLCAidmFsdWUiOiAic2FtZS1zaXRlIn0sIHsibmFtZSI6ICJ1c2VyLWFnZW50IiwgInZhbHVlIjogIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTMuMC41NjcyLjUzIFNhZmFyaS81MzcuMzYifV0sICJxdWVyeVN0cmluZyI6IFtdLCAiaGVhZGVyc1NpemUiOiA0NzYsICJib2R5U2l6ZSI6IDB9LCAicmVzcG9uc2UiOiB7InN0YXR1cyI6IDIwMCwgInN0YXR1c1RleHQiOiAiIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogImFnZSIsICJ2YWx1ZSI6ICIxMDI0Nzc2NyJ9LCB7Im5hbWUiOiAiY2FjaGUtY29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwLHB1YmxpYyxpbW11dGFibGUifSwgeyJuYW1lIjogImNvbnRlbnQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiU3VuLCAxNSBKYW4gMjAyMyAwMzoyNjoyMyBHTVQifSwgeyJuYW1lIjogImV0YWciLCAidmFsdWUiOiAiVy9cIjFjZWQ2MGQ0OGU4YWRlZmMxODAzMTNhYjg4N2NiNzFkXCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiRnJpLCAxMyBKYW4gMjAyMyAxMjoxMTowMyBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBbWF6b25TMyJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOTBiYjEzMGVjY2NiNzE5NTNiMzhhMWMwZTNiNTcyMWEuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJ4RU9EVWU2SDhQc010WkJOSGVIbG1PaUFXZ1pUOVBHUkFTRzV0SC1ILU0wVFBISkJacXN6cGc9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTYwLVAyIn0sIHsibmFtZSI6ICJ4LWNhY2hlIiwgInZhbHVlIjogIkhpdCBmcm9tIGNsb3VkZnJvbnQifV0sICJjb250ZW50IjogeyJzaXplIjogMTQwOTU0LCAibWltZVR5cGUiOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIsICJjb21wcmVzc2lvbiI6IDk1MTI3LCAidGV4dCI6ICJcInVzZSBzdHJpY3RcIjsoc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1s5Nzc0XSx7NjQ0NDg6ZnVuY3Rpb24oZSxuLHQpe3ZhciByPXQoNjcyOTQpLGw9dCg2Mzg0MCk7ZnVuY3Rpb24gYShlKXtmb3IodmFyIG49XCJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD1cIitlLHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKW4rPVwiJmFyZ3NbXT1cIitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW3RdKTtyZXR1cm5cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIitlK1wiOyB2aXNpdCBcIituK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5cIn12YXIgbz1uZXcgU2V0LHU9e307ZnVuY3Rpb24gaShlLG4pe3MoZSxuKSxzKGUrXCJDYXB0dXJlXCIsbil9ZnVuY3Rpb24gcyhlLG4pe2Zvcih1W2VdPW4sZT0wO2U8bi5sZW5ndGg7ZSsrKW8uYWRkKG5bZV0pfXZhciBjPSEoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3d8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSxmPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksZD0vXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJC8scD17fSxtPXt9O2Z1bmN0aW9uIGgoZSxuLHQscixsLGEsbyl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PW58fDM9PT1ufHw0PT09bix0aGlzLmF0dHJpYnV0ZU5hbWU9cix0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1sLHRoaXMubXVzdFVzZVByb3BlcnR5PXQsdGhpcy5wcm9wZXJ0eU5hbWU9ZSx0aGlzLnR5cGU9bix0aGlzLnNhbml0aXplVVJMPWEsdGhpcy5yZW1vdmVFbXB0eVN0cmluZz1vfXZhciB2PXt9O1wiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZbZV09bmV3IGgoZSwwLCExLGUsbnVsbCwhMSwhMSl9KSksW1tcImFjY2VwdENoYXJzZXRcIixcImFjY2VwdC1jaGFyc2V0XCJdLFtcImNsYXNzTmFtZVwiLFwiY2xhc3NcIl0sW1wiaHRtbEZvclwiLFwiZm9yXCJdLFtcImh0dHBFcXVpdlwiLFwiaHR0cC1lcXVpdlwiXV0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZVswXTt2W25dPW5ldyBoKG4sMSwhMSxlWzFdLG51bGwsITEsITEpfSkpLFtcImNvbnRlbnRFZGl0YWJsZVwiLFwiZHJhZ2dhYmxlXCIsXCJzcGVsbENoZWNrXCIsXCJ2YWx1ZVwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2W2VdPW5ldyBoKGUsMiwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSksW1wiYXV0b1JldmVyc2VcIixcImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcIixcImZvY3VzYWJsZVwiLFwicHJlc2VydmVBbHBoYVwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2W2VdPW5ldyBoKGUsMiwhMSxlLG51bGwsITEsITEpfSkpLFwiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2W2VdPW5ldyBoKGUsMywhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KSksW1wiY2hlY2tlZFwiLFwibXVsdGlwbGVcIixcIm11dGVkXCIsXCJzZWxlY3RlZFwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2W2VdPW5ldyBoKGUsMywhMCxlLG51bGwsITEsITEpfSkpLFtcImNhcHR1cmVcIixcImRvd25sb2FkXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZbZV09bmV3IGgoZSw0LCExLGUsbnVsbCwhMSwhMSl9KSksW1wiY29sc1wiLFwicm93c1wiLFwic2l6ZVwiLFwic3BhblwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXt2W2VdPW5ldyBoKGUsNiwhMSxlLG51bGwsITEsITEpfSkpLFtcInJvd1NwYW5cIixcInN0YXJ0XCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZbZV09bmV3IGgoZSw1LCExLGUudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pKTt2YXIgZz0vW1xcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIHkoZSl7cmV0dXJuIGVbMV0udG9VcHBlckNhc2UoKX1mdW5jdGlvbiBiKGUsbix0LHIpe3ZhciBsPXYuaGFzT3duUHJvcGVydHkobik/dltuXTpudWxsOyhudWxsIT09bD8wIT09bC50eXBlOnJ8fCEoMjxuLmxlbmd0aCl8fFwib1wiIT09blswXSYmXCJPXCIhPT1uWzBdfHxcIm5cIiE9PW5bMV0mJlwiTlwiIT09blsxXSkmJihmdW5jdGlvbihlLG4sdCxyKXtpZihudWxsPT09bnx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBufHxmdW5jdGlvbihlLG4sdCxyKXtpZihudWxsIT09dCYmMD09PXQudHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIG4pe2Nhc2VcImZ1bmN0aW9uXCI6Y2FzZVwic3ltYm9sXCI6cmV0dXJuITA7Y2FzZVwiYm9vbGVhblwiOnJldHVybiFyJiYobnVsbCE9PXQ/IXQuYWNjZXB0c0Jvb2xlYW5zOlwiZGF0YS1cIiE9PShlPWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpKSYmXCJhcmlhLVwiIT09ZSk7ZGVmYXVsdDpyZXR1cm4hMX19KGUsbix0LHIpKXJldHVybiEwO2lmKHIpcmV0dXJuITE7aWYobnVsbCE9PXQpc3dpdGNoKHQudHlwZSl7Y2FzZSAzOnJldHVybiFuO2Nhc2UgNDpyZXR1cm4hMT09PW47Y2FzZSA1OnJldHVybiBpc05hTihuKTtjYXNlIDY6cmV0dXJuIGlzTmFOKG4pfHwxPm59cmV0dXJuITF9KG4sdCxsLHIpJiYodD1udWxsKSxyfHxudWxsPT09bD9mdW5jdGlvbihlKXtyZXR1cm4hIWYuY2FsbChtLGUpfHwhZi5jYWxsKHAsZSkmJihkLnRlc3QoZSk/bVtlXT0hMDoocFtlXT0hMCwhMSkpfShuKSYmKG51bGw9PT10P2UucmVtb3ZlQXR0cmlidXRlKG4pOmUuc2V0QXR0cmlidXRlKG4sXCJcIit0KSk6bC5tdXN0VXNlUHJvcGVydHk/ZVtsLnByb3BlcnR5TmFtZV09bnVsbD09PXQ/MyE9PWwudHlwZSYmXCJcIjp0OihuPWwuYXR0cmlidXRlTmFtZSxyPWwuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT10P2UucmVtb3ZlQXR0cmlidXRlKG4pOih0PTM9PT0obD1sLnR5cGUpfHw0PT09bCYmITA9PT10P1wiXCI6XCJcIit0LHI/ZS5zZXRBdHRyaWJ1dGVOUyhyLG4sdCk6ZS5zZXRBdHRyaWJ1dGUobix0KSkpKX1cImFjY2VudC1oZWlnaHQgYWxpZ25tZW50LWJhc2VsaW5lIGFyYWJpYy1mb3JtIGJhc2VsaW5lLXNoaWZ0IGNhcC1oZWlnaHQgY2xpcC1wYXRoIGNsaXAtcnVsZSBjb2xvci1pbnRlcnBvbGF0aW9uIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyBjb2xvci1wcm9maWxlIGNvbG9yLXJlbmRlcmluZyBkb21pbmFudC1iYXNlbGluZSBlbmFibGUtYmFja2dyb3VuZCBmaWxsLW9wYWNpdHkgZmlsbC1ydWxlIGZsb29kLWNvbG9yIGZsb29kLW9wYWNpdHkgZm9udC1mYW1pbHkgZm9udC1zaXplIGZvbnQtc2l6ZS1hZGp1c3QgZm9udC1zdHJldGNoIGZvbnQtc3R5bGUgZm9udC12YXJpYW50IGZvbnQtd2VpZ2h0IGdseXBoLW5hbWUgZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCBnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCBob3Jpei1hZHYteCBob3Jpei1vcmlnaW4teCBpbWFnZS1yZW5kZXJpbmcgbGV0dGVyLXNwYWNpbmcgbGlnaHRpbmctY29sb3IgbWFya2VyLWVuZCBtYXJrZXItbWlkIG1hcmtlci1zdGFydCBvdmVybGluZS1wb3NpdGlvbiBvdmVybGluZS10aGlja25lc3MgcGFpbnQtb3JkZXIgcGFub3NlLTEgcG9pbnRlci1ldmVudHMgcmVuZGVyaW5nLWludGVudCBzaGFwZS1yZW5kZXJpbmcgc3RvcC1jb2xvciBzdG9wLW9wYWNpdHkgc3RyaWtldGhyb3VnaC1wb3NpdGlvbiBzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyBzdHJva2UtZGFzaGFycmF5IHN0cm9rZS1kYXNob2Zmc2V0IHN0cm9rZS1saW5lY2FwIHN0cm9rZS1saW5lam9pbiBzdHJva2UtbWl0ZXJsaW1pdCBzdHJva2Utb3BhY2l0eSBzdHJva2Utd2lkdGggdGV4dC1hbmNob3IgdGV4dC1kZWNvcmF0aW9uIHRleHQtcmVuZGVyaW5nIHVuZGVybGluZS1wb3NpdGlvbiB1bmRlcmxpbmUtdGhpY2tuZXNzIHVuaWNvZGUtYmlkaSB1bmljb2RlLXJhbmdlIHVuaXRzLXBlci1lbSB2LWFscGhhYmV0aWMgdi1oYW5naW5nIHYtaWRlb2dyYXBoaWMgdi1tYXRoZW1hdGljYWwgdmVjdG9yLWVmZmVjdCB2ZXJ0LWFkdi15IHZlcnQtb3JpZ2luLXggdmVydC1vcmlnaW4teSB3b3JkLXNwYWNpbmcgd3JpdGluZy1tb2RlIHhtbG5zOnhsaW5rIHgtaGVpZ2h0XCIuc3BsaXQoXCIgXCIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPWUucmVwbGFjZShnLHkpO3Zbbl09bmV3IGgobiwxLCExLGUsbnVsbCwhMSwhMSl9KSksXCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKGcseSk7dltuXT1uZXcgaChuLDEsITEsZSxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMSwhMSl9KSksW1wieG1sOmJhc2VcIixcInhtbDpsYW5nXCIsXCJ4bWw6c3BhY2VcIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKGcseSk7dltuXT1uZXcgaChuLDEsITEsZSxcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiLCExLCExKX0pKSxbXCJ0YWJJbmRleFwiLFwiY3Jvc3NPcmlnaW5cIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dltlXT1uZXcgaChlLDEsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSkpLHYueGxpbmtIcmVmPW5ldyBoKFwieGxpbmtIcmVmXCIsMSwhMSxcInhsaW5rOmhyZWZcIixcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMCwhMSksW1wic3JjXCIsXCJocmVmXCIsXCJhY3Rpb25cIixcImZvcm1BY3Rpb25cIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dltlXT1uZXcgaChlLDEsITEsZS50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSkpO3ZhciBrPXIuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQsdz1TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKSxTPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIikseD1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksRT1TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksXz1TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIiksQz1TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIiksUD1TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxOPVN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSx6PVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxUPVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLEw9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksUj1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTtTeW1ib2wuZm9yKFwicmVhY3Quc2NvcGVcIiksU3ltYm9sLmZvcihcInJlYWN0LmRlYnVnX3RyYWNlX21vZGVcIik7dmFyIE09U3ltYm9sLmZvcihcInJlYWN0Lm9mZnNjcmVlblwiKTtTeW1ib2wuZm9yKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKSxTeW1ib2wuZm9yKFwicmVhY3QuY2FjaGVcIiksU3ltYm9sLmZvcihcInJlYWN0LnRyYWNpbmdfbWFya2VyXCIpO3ZhciBGPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBPKGUpe3JldHVybiBudWxsPT09ZXx8XCJvYmplY3RcIiE9PXR5cGVvZiBlP251bGw6XCJmdW5jdGlvblwiPT09dHlwZW9mKGU9RiYmZVtGXXx8ZVtcIkBAaXRlcmF0b3JcIl0pP2U6bnVsbH12YXIgRCxJPU9iamVjdC5hc3NpZ247ZnVuY3Rpb24gVShlKXtpZih2b2lkIDA9PT1EKXRyeXt0aHJvdyBFcnJvcigpfWNhdGNoKHQpe3ZhciBuPXQuc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7RD1uJiZuWzFdfHxcIlwifXJldHVyblwiXFxuXCIrRCtlfXZhciBWPSExO2Z1bmN0aW9uICQoZSxuKXtpZighZXx8VilyZXR1cm5cIlwiO1Y9ITA7dmFyIHQ9RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dm9pZCAwO3RyeXtpZihuKWlmKG49ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJwcm9wc1wiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLFwib2JqZWN0XCI9PT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChuLFtdKX1jYXRjaChzKXt2YXIgcj1zfVJlZmxlY3QuY29uc3RydWN0KGUsW10sbil9ZWxzZXt0cnl7bi5jYWxsKCl9Y2F0Y2gocyl7cj1zfWUuY2FsbChuLnByb3RvdHlwZSl9ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKX1jYXRjaChzKXtyPXN9ZSgpfX1jYXRjaChzKXtpZihzJiZyJiZcInN0cmluZ1wiPT09dHlwZW9mIHMuc3RhY2spe2Zvcih2YXIgbD1zLnN0YWNrLnNwbGl0KFwiXFxuXCIpLGE9ci5zdGFjay5zcGxpdChcIlxcblwiKSxvPWwubGVuZ3RoLTEsdT1hLmxlbmd0aC0xOzE8PW8mJjA8PXUmJmxbb10hPT1hW3VdOyl1LS07Zm9yKDsxPD1vJiYwPD11O28tLSx1LS0paWYobFtvXSE9PWFbdV0pe2lmKDEhPT1vfHwxIT09dSlkb3tpZihvLS0sMD4tLXV8fGxbb10hPT1hW3VdKXt2YXIgaT1cIlxcblwiK2xbb10ucmVwbGFjZShcIiBhdCBuZXcgXCIsXCIgYXQgXCIpO3JldHVybiBlLmRpc3BsYXlOYW1lJiZpLmluY2x1ZGVzKFwiPGFub255bW91cz5cIikmJihpPWkucmVwbGFjZShcIjxhbm9ueW1vdXM+XCIsZS5kaXNwbGF5TmFtZSkpLGl9fXdoaWxlKDE8PW8mJjA8PXUpO2JyZWFrfX19ZmluYWxseXtWPSExLEVycm9yLnByZXBhcmVTdGFja1RyYWNlPXR9cmV0dXJuKGU9ZT9lLmRpc3BsYXlOYW1lfHxlLm5hbWU6XCJcIik/VShlKTpcIlwifWZ1bmN0aW9uIEEoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDU6cmV0dXJuIFUoZS50eXBlKTtjYXNlIDE2OnJldHVybiBVKFwiTGF6eVwiKTtjYXNlIDEzOnJldHVybiBVKFwiU3VzcGVuc2VcIik7Y2FzZSAxOTpyZXR1cm4gVShcIlN1c3BlbnNlTGlzdFwiKTtjYXNlIDA6Y2FzZSAyOmNhc2UgMTU6cmV0dXJuIGU9JChlLnR5cGUsITEpO2Nhc2UgMTE6cmV0dXJuIGU9JChlLnR5cGUucmVuZGVyLCExKTtjYXNlIDE6cmV0dXJuIGU9JChlLnR5cGUsITApO2RlZmF1bHQ6cmV0dXJuXCJcIn19ZnVuY3Rpb24gaihlKXtpZihudWxsPT1lKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXJldHVybiBlLmRpc3BsYXlOYW1lfHxlLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlKXJldHVybiBlO3N3aXRjaChlKXtjYXNlIHg6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgUzpyZXR1cm5cIlBvcnRhbFwiO2Nhc2UgXzpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSBFOnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgejpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBUOnJldHVyblwiU3VzcGVuc2VMaXN0XCJ9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIFA6cmV0dXJuKGUuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgQzpyZXR1cm4oZS5fY29udGV4dC5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLlByb3ZpZGVyXCI7Y2FzZSBOOnZhciBuPWUucmVuZGVyO3JldHVybihlPWUuZGlzcGxheU5hbWUpfHwoZT1cIlwiIT09KGU9bi5kaXNwbGF5TmFtZXx8bi5uYW1lfHxcIlwiKT9cIkZvcndhcmRSZWYoXCIrZStcIilcIjpcIkZvcndhcmRSZWZcIiksZTtjYXNlIEw6cmV0dXJuIG51bGwhPT0obj1lLmRpc3BsYXlOYW1lfHxudWxsKT9uOmooZS50eXBlKXx8XCJNZW1vXCI7Y2FzZSBSOm49ZS5fcGF5bG9hZCxlPWUuX2luaXQ7dHJ5e3JldHVybiBqKGUobikpfWNhdGNoKHQpe319cmV0dXJuIG51bGx9ZnVuY3Rpb24gQihlKXt2YXIgbj1lLnR5cGU7c3dpdGNoKGUudGFnKXtjYXNlIDI0OnJldHVyblwiQ2FjaGVcIjtjYXNlIDk6cmV0dXJuKG4uZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgMTA6cmV0dXJuKG4uX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Qcm92aWRlclwiO2Nhc2UgMTg6cmV0dXJuXCJEZWh5ZHJhdGVkRnJhZ21lbnRcIjtjYXNlIDExOnJldHVybiBlPShlPW4ucmVuZGVyKS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHxcIlwiLG4uZGlzcGxheU5hbWV8fChcIlwiIT09ZT9cIkZvcndhcmRSZWYoXCIrZStcIilcIjpcIkZvcndhcmRSZWZcIik7Y2FzZSA3OnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIDU6cmV0dXJuIG47Y2FzZSA0OnJldHVyblwiUG9ydGFsXCI7Y2FzZSAzOnJldHVyblwiUm9vdFwiO2Nhc2UgNjpyZXR1cm5cIlRleHRcIjtjYXNlIDE2OnJldHVybiBqKG4pO2Nhc2UgODpyZXR1cm4gbj09PUU/XCJTdHJpY3RNb2RlXCI6XCJNb2RlXCI7Y2FzZSAyMjpyZXR1cm5cIk9mZnNjcmVlblwiO2Nhc2UgMTI6cmV0dXJuXCJQcm9maWxlclwiO2Nhc2UgMjE6cmV0dXJuXCJTY29wZVwiO2Nhc2UgMTM6cmV0dXJuXCJTdXNwZW5zZVwiO2Nhc2UgMTk6cmV0dXJuXCJTdXNwZW5zZUxpc3RcIjtjYXNlIDI1OnJldHVyblwiVHJhY2luZ01hcmtlclwiO2Nhc2UgMTpjYXNlIDA6Y2FzZSAxNzpjYXNlIDI6Y2FzZSAxNDpjYXNlIDE1OmlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuKXJldHVybiBuLmRpc3BsYXlOYW1lfHxuLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBuKXJldHVybiBufXJldHVybiBudWxsfWZ1bmN0aW9uIEgoZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlXCJib29sZWFuXCI6Y2FzZVwibnVtYmVyXCI6Y2FzZVwic3RyaW5nXCI6Y2FzZVwidW5kZWZpbmVkXCI6Y2FzZVwib2JqZWN0XCI6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm5cIlwifX1mdW5jdGlvbiBXKGUpe3ZhciBuPWUudHlwZTtyZXR1cm4oZT1lLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09ZS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09bnx8XCJyYWRpb1wiPT09bil9ZnVuY3Rpb24gUShlKXtlLl92YWx1ZVRyYWNrZXJ8fChlLl92YWx1ZVRyYWNrZXI9ZnVuY3Rpb24oZSl7dmFyIG49VyhlKT9cImNoZWNrZWRcIjpcInZhbHVlXCIsdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUuY29uc3RydWN0b3IucHJvdG90eXBlLG4pLHI9XCJcIitlW25dO2lmKCFlLmhhc093blByb3BlcnR5KG4pJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIHQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmdldCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuc2V0KXt2YXIgbD10LmdldCxhPXQuc2V0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGUpe3I9XCJcIitlLGEuY2FsbCh0aGlzLGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dC5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHNldFZhbHVlOmZ1bmN0aW9uKGUpe3I9XCJcIitlfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXtlLl92YWx1ZVRyYWNrZXI9bnVsbCxkZWxldGUgZVtuXX19fX0oZSkpfWZ1bmN0aW9uIHEoZSl7aWYoIWUpcmV0dXJuITE7dmFyIG49ZS5fdmFsdWVUcmFja2VyO2lmKCFuKXJldHVybiEwO3ZhciB0PW4uZ2V0VmFsdWUoKSxyPVwiXCI7cmV0dXJuIGUmJihyPVcoZSk/ZS5jaGVja2VkP1widHJ1ZVwiOlwiZmFsc2VcIjplLnZhbHVlKSwoZT1yKSE9PXQmJihuLnNldFZhbHVlKGUpLCEwKX1mdW5jdGlvbiBLKGUpe2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YoZT1lfHwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGUuYWN0aXZlRWxlbWVudHx8ZS5ib2R5fWNhdGNoKG4pe3JldHVybiBlLmJvZHl9fWZ1bmN0aW9uIFkoZSxuKXt2YXIgdD1uLmNoZWNrZWQ7cmV0dXJuIEkoe30sbix7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9dD90OmUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIFgoZSxuKXt2YXIgdD1udWxsPT1uLmRlZmF1bHRWYWx1ZT9cIlwiOm4uZGVmYXVsdFZhbHVlLHI9bnVsbCE9bi5jaGVja2VkP24uY2hlY2tlZDpuLmRlZmF1bHRDaGVja2VkO3Q9SChudWxsIT1uLnZhbHVlP24udmFsdWU6dCksZS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpyLGluaXRpYWxWYWx1ZTp0LGNvbnRyb2xsZWQ6XCJjaGVja2JveFwiPT09bi50eXBlfHxcInJhZGlvXCI9PT1uLnR5cGU/bnVsbCE9bi5jaGVja2VkOm51bGwhPW4udmFsdWV9fWZ1bmN0aW9uIEcoZSxuKXtudWxsIT0obj1uLmNoZWNrZWQpJiZiKGUsXCJjaGVja2VkXCIsbiwhMSl9ZnVuY3Rpb24gWihlLG4pe0coZSxuKTt2YXIgdD1IKG4udmFsdWUpLHI9bi50eXBlO2lmKG51bGwhPXQpXCJudW1iZXJcIj09PXI/KDA9PT10JiZcIlwiPT09ZS52YWx1ZXx8ZS52YWx1ZSE9dCkmJihlLnZhbHVlPVwiXCIrdCk6ZS52YWx1ZSE9PVwiXCIrdCYmKGUudmFsdWU9XCJcIit0KTtlbHNlIGlmKFwic3VibWl0XCI9PT1yfHxcInJlc2V0XCI9PT1yKXJldHVybiB2b2lkIGUucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik7bi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpP2VlKGUsbi50eXBlLHQpOm4uaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikmJmVlKGUsbi50eXBlLEgobi5kZWZhdWx0VmFsdWUpKSxudWxsPT1uLmNoZWNrZWQmJm51bGwhPW4uZGVmYXVsdENoZWNrZWQmJihlLmRlZmF1bHRDaGVja2VkPSEhbi5kZWZhdWx0Q2hlY2tlZCl9ZnVuY3Rpb24gSihlLG4sdCl7aWYobi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpfHxuLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpKXt2YXIgcj1uLnR5cGU7aWYoIShcInN1Ym1pdFwiIT09ciYmXCJyZXNldFwiIT09cnx8dm9pZCAwIT09bi52YWx1ZSYmbnVsbCE9PW4udmFsdWUpKXJldHVybjtuPVwiXCIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSx0fHxuPT09ZS52YWx1ZXx8KGUudmFsdWU9biksZS5kZWZhdWx0VmFsdWU9bn1cIlwiIT09KHQ9ZS5uYW1lKSYmKGUubmFtZT1cIlwiKSxlLmRlZmF1bHRDaGVja2VkPSEhZS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkLFwiXCIhPT10JiYoZS5uYW1lPXQpfWZ1bmN0aW9uIGVlKGUsbix0KXtcIm51bWJlclwiPT09biYmSyhlLm93bmVyRG9jdW1lbnQpPT09ZXx8KG51bGw9PXQ/ZS5kZWZhdWx0VmFsdWU9XCJcIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmUuZGVmYXVsdFZhbHVlIT09XCJcIit0JiYoZS5kZWZhdWx0VmFsdWU9XCJcIit0KSl9dmFyIG5lPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gdGUoZSxuLHQscil7aWYoZT1lLm9wdGlvbnMsbil7bj17fTtmb3IodmFyIGw9MDtsPHQubGVuZ3RoO2wrKyluW1wiJFwiK3RbbF1dPSEwO2Zvcih0PTA7dDxlLmxlbmd0aDt0KyspbD1uLmhhc093blByb3BlcnR5KFwiJFwiK2VbdF0udmFsdWUpLGVbdF0uc2VsZWN0ZWQhPT1sJiYoZVt0XS5zZWxlY3RlZD1sKSxsJiZyJiYoZVt0XS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Zm9yKHQ9XCJcIitIKHQpLG49bnVsbCxsPTA7bDxlLmxlbmd0aDtsKyspe2lmKGVbbF0udmFsdWU9PT10KXJldHVybiBlW2xdLnNlbGVjdGVkPSEwLHZvaWQociYmKGVbbF0uZGVmYXVsdFNlbGVjdGVkPSEwKSk7bnVsbCE9PW58fGVbbF0uZGlzYWJsZWR8fChuPWVbbF0pfW51bGwhPT1uJiYobi5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIHJlKGUsbil7aWYobnVsbCE9bi5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcihhKDkxKSk7cmV0dXJuIEkoe30sbix7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46XCJcIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlfSl9ZnVuY3Rpb24gbGUoZSxuKXt2YXIgdD1uLnZhbHVlO2lmKG51bGw9PXQpe2lmKHQ9bi5jaGlsZHJlbixuPW4uZGVmYXVsdFZhbHVlLG51bGwhPXQpe2lmKG51bGwhPW4pdGhyb3cgRXJyb3IoYSg5MikpO2lmKG5lKHQpKXtpZigxPHQubGVuZ3RoKXRocm93IEVycm9yKGEoOTMpKTt0PXRbMF19bj10fW51bGw9PW4mJihuPVwiXCIpLHQ9bn1lLl93cmFwcGVyU3RhdGU9e2luaXRpYWxWYWx1ZTpIKHQpfX1mdW5jdGlvbiBhZShlLG4pe3ZhciB0PUgobi52YWx1ZSkscj1IKG4uZGVmYXVsdFZhbHVlKTtudWxsIT10JiYoKHQ9XCJcIit0KSE9PWUudmFsdWUmJihlLnZhbHVlPXQpLG51bGw9PW4uZGVmYXVsdFZhbHVlJiZlLmRlZmF1bHRWYWx1ZSE9PXQmJihlLmRlZmF1bHRWYWx1ZT10KSksbnVsbCE9ciYmKGUuZGVmYXVsdFZhbHVlPVwiXCIrcil9ZnVuY3Rpb24gb2UoZSl7dmFyIG49ZS50ZXh0Q29udGVudDtuPT09ZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmXCJcIiE9PW4mJm51bGwhPT1uJiYoZS52YWx1ZT1uKX1mdW5jdGlvbiB1ZShlKXtzd2l0Y2goZSl7Y2FzZVwic3ZnXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO2Nhc2VcIm1hdGhcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtkZWZhdWx0OnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwifX1mdW5jdGlvbiBpZShlLG4pe3JldHVybiBudWxsPT1lfHxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWU/dWUobik6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09ZSYmXCJmb3JlaWduT2JqZWN0XCI9PT1uP1wiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiOmV9dmFyIHNlLGNlLGZlPShjZT1mdW5jdGlvbihlLG4pe2lmKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiE9PWUubmFtZXNwYWNlVVJJfHxcImlubmVySFRNTFwiaW4gZSllLmlubmVySFRNTD1uO2Vsc2V7Zm9yKChzZT1zZXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPVwiPHN2Zz5cIituLnZhbHVlT2YoKS50b1N0cmluZygpK1wiPC9zdmc+XCIsbj1zZS5maXJzdENoaWxkO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2Zvcig7bi5maXJzdENoaWxkOyllLmFwcGVuZENoaWxkKG4uZmlyc3RDaGlsZCl9fSxcInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihlLG4sdCxyKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbigoZnVuY3Rpb24oKXtyZXR1cm4gY2UoZSxuKX0pKX06Y2UpO2Z1bmN0aW9uIGRlKGUsbil7aWYobil7dmFyIHQ9ZS5maXJzdENoaWxkO2lmKHQmJnQ9PT1lLmxhc3RDaGlsZCYmMz09PXQubm9kZVR5cGUpcmV0dXJuIHZvaWQodC5ub2RlVmFsdWU9bil9ZS50ZXh0Q29udGVudD1ufXZhciBwZT17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYXNwZWN0UmF0aW86ITAsYm9yZGVySW1hZ2VPdXRzZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEwLGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDohMCxjb2x1bW5Db3VudDohMCxjb2x1bW5zOiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZsZXhPcmRlcjohMCxncmlkQXJlYTohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1NwYW46ITAsZ3JpZFJvd1N0YXJ0OiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3BhbjohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZm9udFdlaWdodDohMCxsaW5lQ2xhbXA6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsdGFiU2l6ZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZURhc2hhcnJheTohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH0sbWU9W1wiV2Via2l0XCIsXCJtc1wiLFwiTW96XCIsXCJPXCJdO2Z1bmN0aW9uIGhlKGUsbix0KXtyZXR1cm4gbnVsbD09bnx8XCJib29sZWFuXCI9PT10eXBlb2Ygbnx8XCJcIj09PW4/XCJcIjp0fHxcIm51bWJlclwiIT09dHlwZW9mIG58fDA9PT1ufHxwZS5oYXNPd25Qcm9wZXJ0eShlKSYmcGVbZV0/KFwiXCIrbikudHJpbSgpOm4rXCJweFwifWZ1bmN0aW9uIHZlKGUsbil7Zm9yKHZhciB0IGluIGU9ZS5zdHlsZSxuKWlmKG4uaGFzT3duUHJvcGVydHkodCkpe3ZhciByPTA9PT10LmluZGV4T2YoXCItLVwiKSxsPWhlKHQsblt0XSxyKTtcImZsb2F0XCI9PT10JiYodD1cImNzc0Zsb2F0XCIpLHI/ZS5zZXRQcm9wZXJ0eSh0LGwpOmVbdF09bH19T2JqZWN0LmtleXMocGUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe21lLmZvckVhY2goKGZ1bmN0aW9uKG4pe249bitlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpLHBlW25dPXBlW2VdfSkpfSkpO3ZhciBnZT1JKHttZW51aXRlbTohMH0se2FyZWE6ITAsYmFzZTohMCxicjohMCxjb2w6ITAsZW1iZWQ6ITAsaHI6ITAsaW1nOiEwLGlucHV0OiEwLGtleWdlbjohMCxsaW5rOiEwLG1ldGE6ITAscGFyYW06ITAsc291cmNlOiEwLHRyYWNrOiEwLHdicjohMH0pO2Z1bmN0aW9uIHllKGUsbil7aWYobil7aWYoZ2VbZV0mJihudWxsIT1uLmNoaWxkcmVufHxudWxsIT1uLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihhKDEzNyxlKSk7aWYobnVsbCE9bi5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9bi5jaGlsZHJlbil0aHJvdyBFcnJvcihhKDYwKSk7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBuLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwhKFwiX19odG1sXCJpbiBuLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihhKDYxKSl9aWYobnVsbCE9bi5zdHlsZSYmXCJvYmplY3RcIiE9PXR5cGVvZiBuLnN0eWxlKXRocm93IEVycm9yKGEoNjIpKX19ZnVuY3Rpb24gYmUoZSxuKXtpZigtMT09PWUuaW5kZXhPZihcIi1cIikpcmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBuLmlzO3N3aXRjaChlKXtjYXNlXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2VcImNvbG9yLXByb2ZpbGVcIjpjYXNlXCJmb250LWZhY2VcIjpjYXNlXCJmb250LWZhY2Utc3JjXCI6Y2FzZVwiZm9udC1mYWNlLXVyaVwiOmNhc2VcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlXCJmb250LWZhY2UtbmFtZVwiOmNhc2VcIm1pc3NpbmctZ2x5cGhcIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIga2U9bnVsbDtmdW5jdGlvbiB3ZShlKXtyZXR1cm4oZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3cpLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoZT1lLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSwzPT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX12YXIgU2U9bnVsbCx4ZT1udWxsLEVlPW51bGw7ZnVuY3Rpb24gX2UoZSl7aWYoZT1ibChlKSl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIFNlKXRocm93IEVycm9yKGEoMjgwKSk7dmFyIG49ZS5zdGF0ZU5vZGU7biYmKG49d2wobiksU2UoZS5zdGF0ZU5vZGUsZS50eXBlLG4pKX19ZnVuY3Rpb24gQ2UoZSl7eGU/RWU/RWUucHVzaChlKTpFZT1bZV06eGU9ZX1mdW5jdGlvbiBQZSgpe2lmKHhlKXt2YXIgZT14ZSxuPUVlO2lmKEVlPXhlPW51bGwsX2UoZSksbilmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKV9lKG5bZV0pfX1mdW5jdGlvbiBOZShlLG4pe3JldHVybiBlKG4pfWZ1bmN0aW9uIHplKCl7fXZhciBUZT0hMTtmdW5jdGlvbiBMZShlLG4sdCl7aWYoVGUpcmV0dXJuIGUobix0KTtUZT0hMDt0cnl7cmV0dXJuIE5lKGUsbix0KX1maW5hbGx5e1RlPSExLChudWxsIT09eGV8fG51bGwhPT1FZSkmJih6ZSgpLFBlKCkpfX1mdW5jdGlvbiBSZShlLG4pe3ZhciB0PWUuc3RhdGVOb2RlO2lmKG51bGw9PT10KXJldHVybiBudWxsO3ZhciByPXdsKHQpO2lmKG51bGw9PT1yKXJldHVybiBudWxsO3Q9cltuXTtlOnN3aXRjaChuKXtjYXNlXCJvbkNsaWNrXCI6Y2FzZVwib25DbGlja0NhcHR1cmVcIjpjYXNlXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZVwib25Eb3VibGVDbGlja0NhcHR1cmVcIjpjYXNlXCJvbk1vdXNlRG93blwiOmNhc2VcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VNb3ZlXCI6Y2FzZVwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZVwib25Nb3VzZVVwXCI6Y2FzZVwib25Nb3VzZVVwQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VFbnRlclwiOihyPSFyLmRpc2FibGVkKXx8KHI9IShcImJ1dHRvblwiPT09KGU9ZS50eXBlKXx8XCJpbnB1dFwiPT09ZXx8XCJzZWxlY3RcIj09PWV8fFwidGV4dGFyZWFcIj09PWUpKSxlPSFyO2JyZWFrIGU7ZGVmYXVsdDplPSExfWlmKGUpcmV0dXJuIG51bGw7aWYodCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIHQpdGhyb3cgRXJyb3IoYSgyMzEsbix0eXBlb2YgdCkpO3JldHVybiB0fXZhciBNZT0hMTtpZihjKXRyeXt2YXIgRmU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KEZlLFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtNZT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIixGZSxGZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsRmUsRmUpfWNhdGNoKGNlKXtNZT0hMX1mdW5jdGlvbiBPZShlLG4sdCxyLGwsYSxvLHUsaSl7dmFyIHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpO3RyeXtuLmFwcGx5KHQscyl9Y2F0Y2goYyl7dGhpcy5vbkVycm9yKGMpfX12YXIgRGU9ITEsSWU9bnVsbCxVZT0hMSxWZT1udWxsLCRlPXtvbkVycm9yOmZ1bmN0aW9uKGUpe0RlPSEwLEllPWV9fTtmdW5jdGlvbiBBZShlLG4sdCxyLGwsYSxvLHUsaSl7RGU9ITEsSWU9bnVsbCxPZS5hcHBseSgkZSxhcmd1bWVudHMpfWZ1bmN0aW9uIGplKGUpe3ZhciBuPWUsdD1lO2lmKGUuYWx0ZXJuYXRlKWZvcig7bi5yZXR1cm47KW49bi5yZXR1cm47ZWxzZXtlPW47ZG97MCE9PSg0MDk4JihuPWUpLmZsYWdzKSYmKHQ9bi5yZXR1cm4pLGU9bi5yZXR1cm59d2hpbGUoZSl9cmV0dXJuIDM9PT1uLnRhZz90Om51bGx9ZnVuY3Rpb24gQmUoZSl7aWYoMTM9PT1lLnRhZyl7dmFyIG49ZS5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1uJiYobnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKG49ZS5tZW1vaXplZFN0YXRlKSksbnVsbCE9PW4pcmV0dXJuIG4uZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBIZShlKXtpZihqZShlKSE9PWUpdGhyb3cgRXJyb3IoYSgxODgpKX1mdW5jdGlvbiBXZShlKXtyZXR1cm4gbnVsbCE9PShlPWZ1bmN0aW9uKGUpe3ZhciBuPWUuYWx0ZXJuYXRlO2lmKCFuKXtpZihudWxsPT09KG49amUoZSkpKXRocm93IEVycm9yKGEoMTg4KSk7cmV0dXJuIG4hPT1lP251bGw6ZX1mb3IodmFyIHQ9ZSxyPW47Oyl7dmFyIGw9dC5yZXR1cm47aWYobnVsbD09PWwpYnJlYWs7dmFyIG89bC5hbHRlcm5hdGU7aWYobnVsbD09PW8pe2lmKG51bGwhPT0ocj1sLnJldHVybikpe3Q9cjtjb250aW51ZX1icmVha31pZihsLmNoaWxkPT09by5jaGlsZCl7Zm9yKG89bC5jaGlsZDtvOyl7aWYobz09PXQpcmV0dXJuIEhlKGwpLGU7aWYobz09PXIpcmV0dXJuIEhlKGwpLG47bz1vLnNpYmxpbmd9dGhyb3cgRXJyb3IoYSgxODgpKX1pZih0LnJldHVybiE9PXIucmV0dXJuKXQ9bCxyPW87ZWxzZXtmb3IodmFyIHU9ITEsaT1sLmNoaWxkO2k7KXtpZihpPT09dCl7dT0hMCx0PWwscj1vO2JyZWFrfWlmKGk9PT1yKXt1PSEwLHI9bCx0PW87YnJlYWt9aT1pLnNpYmxpbmd9aWYoIXUpe2ZvcihpPW8uY2hpbGQ7aTspe2lmKGk9PT10KXt1PSEwLHQ9byxyPWw7YnJlYWt9aWYoaT09PXIpe3U9ITAscj1vLHQ9bDticmVha31pPWkuc2libGluZ31pZighdSl0aHJvdyBFcnJvcihhKDE4OSkpfX1pZih0LmFsdGVybmF0ZSE9PXIpdGhyb3cgRXJyb3IoYSgxOTApKX1pZigzIT09dC50YWcpdGhyb3cgRXJyb3IoYSgxODgpKTtyZXR1cm4gdC5zdGF0ZU5vZGUuY3VycmVudD09PXQ/ZTpufShlKSk/UWUoZSk6bnVsbH1mdW5jdGlvbiBRZShlKXtpZig1PT09ZS50YWd8fDY9PT1lLnRhZylyZXR1cm4gZTtmb3IoZT1lLmNoaWxkO251bGwhPT1lOyl7dmFyIG49UWUoZSk7aWYobnVsbCE9PW4pcmV0dXJuIG47ZT1lLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIHFlPWwudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxLZT1sLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLFllPWwudW5zdGFibGVfc2hvdWxkWWllbGQsWGU9bC51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsR2U9bC51bnN0YWJsZV9ub3csWmU9bC51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxKZT1sLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGVuPWwudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksbm49bC51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSx0bj1sLnVuc3RhYmxlX0xvd1ByaW9yaXR5LHJuPWwudW5zdGFibGVfSWRsZVByaW9yaXR5LGxuPW51bGwsYW49bnVsbDt2YXIgb249TWF0aC5jbHozMj9NYXRoLmNsejMyOmZ1bmN0aW9uKGUpe3JldHVybiAwPT09KGU+Pj49MCk/MzI6MzEtKHVuKGUpL3NufDApfDB9LHVuPU1hdGgubG9nLHNuPU1hdGguTE4yO3ZhciBjbj02NCxmbj00MTk0MzA0O2Z1bmN0aW9uIGRuKGUpe3N3aXRjaChlJi1lKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gNDE5NDI0MCZlO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6cmV0dXJuIDEzMDAyMzQyNCZlO2Nhc2UgMTM0MjE3NzI4OnJldHVybiAxMzQyMTc3Mjg7Y2FzZSAyNjg0MzU0NTY6cmV0dXJuIDI2ODQzNTQ1NjtjYXNlIDUzNjg3MDkxMjpyZXR1cm4gNTM2ODcwOTEyO2Nhc2UgMTA3Mzc0MTgyNDpyZXR1cm4gMTA3Mzc0MTgyNDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBwbihlLG4pe3ZhciB0PWUucGVuZGluZ0xhbmVzO2lmKDA9PT10KXJldHVybiAwO3ZhciByPTAsbD1lLnN1c3BlbmRlZExhbmVzLGE9ZS5waW5nZWRMYW5lcyxvPTI2ODQzNTQ1NSZ0O2lmKDAhPT1vKXt2YXIgdT1vJn5sOzAhPT11P3I9ZG4odSk6MCE9PShhJj1vKSYmKHI9ZG4oYSkpfWVsc2UgMCE9PShvPXQmfmwpP3I9ZG4obyk6MCE9PWEmJihyPWRuKGEpKTtpZigwPT09cilyZXR1cm4gMDtpZigwIT09biYmbiE9PXImJjA9PT0obiZsKSYmKChsPXImLXIpPj0oYT1uJi1uKXx8MTY9PT1sJiYwIT09KDQxOTQyNDAmYSkpKXJldHVybiBuO2lmKDAhPT0oNCZyKSYmKHJ8PTE2JnQpLDAhPT0obj1lLmVudGFuZ2xlZExhbmVzKSlmb3IoZT1lLmVudGFuZ2xlbWVudHMsbiY9cjswPG47KWw9MTw8KHQ9MzEtb24obikpLHJ8PWVbdF0sbiY9fmw7cmV0dXJuIHJ9ZnVuY3Rpb24gbW4oZSxuKXtzd2l0Y2goZSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIG4rMjUwO2Nhc2UgODpjYXNlIDE2OmNhc2UgMzI6Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gbis1ZTM7ZGVmYXVsdDpyZXR1cm4tMX19ZnVuY3Rpb24gaG4oZSl7cmV0dXJuIDAhPT0oZT0tMTA3Mzc0MTgyNSZlLnBlbmRpbmdMYW5lcyk/ZToxMDczNzQxODI0JmU/MTA3Mzc0MTgyNDowfWZ1bmN0aW9uIHZuKCl7dmFyIGU9Y247cmV0dXJuIDA9PT0oNDE5NDI0MCYoY248PD0xKSkmJihjbj02NCksZX1mdW5jdGlvbiBnbihlKXtmb3IodmFyIG49W10sdD0wOzMxPnQ7dCsrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiB5bihlLG4sdCl7ZS5wZW5kaW5nTGFuZXN8PW4sNTM2ODcwOTEyIT09biYmKGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTApLChlPWUuZXZlbnRUaW1lcylbbj0zMS1vbihuKV09dH1mdW5jdGlvbiBibihlLG4pe3ZhciB0PWUuZW50YW5nbGVkTGFuZXN8PW47Zm9yKGU9ZS5lbnRhbmdsZW1lbnRzO3Q7KXt2YXIgcj0zMS1vbih0KSxsPTE8PHI7bCZufGVbcl0mbiYmKGVbcl18PW4pLHQmPX5sfX12YXIga249MDtmdW5jdGlvbiB3bihlKXtyZXR1cm4gMTwoZSY9LWUpPzQ8ZT8wIT09KDI2ODQzNTQ1NSZlKT8xNjo1MzY4NzA5MTI6NDoxfXZhciBTbix4bixFbixfbixDbixQbj0hMSxObj1bXSx6bj1udWxsLFRuPW51bGwsTG49bnVsbCxSbj1uZXcgTWFwLE1uPW5ldyBNYXAsRm49W10sT249XCJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQgc3VibWl0XCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIERuKGUsbil7c3dpdGNoKGUpe2Nhc2VcImZvY3VzaW5cIjpjYXNlXCJmb2N1c291dFwiOnpuPW51bGw7YnJlYWs7Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2xlYXZlXCI6VG49bnVsbDticmVhaztjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJtb3VzZW91dFwiOkxuPW51bGw7YnJlYWs7Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJwb2ludGVyb3V0XCI6Um4uZGVsZXRlKG4ucG9pbnRlcklkKTticmVhaztjYXNlXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2VcImxvc3Rwb2ludGVyY2FwdHVyZVwiOk1uLmRlbGV0ZShuLnBvaW50ZXJJZCl9fWZ1bmN0aW9uIEluKGUsbix0LHIsbCxhKXtyZXR1cm4gbnVsbD09PWV8fGUubmF0aXZlRXZlbnQhPT1hPyhlPXtibG9ja2VkT246bixkb21FdmVudE5hbWU6dCxldmVudFN5c3RlbUZsYWdzOnIsbmF0aXZlRXZlbnQ6YSx0YXJnZXRDb250YWluZXJzOltsXX0sbnVsbCE9PW4mJihudWxsIT09KG49YmwobikpJiZ4bihuKSksZSk6KGUuZXZlbnRTeXN0ZW1GbGFnc3w9cixuPWUudGFyZ2V0Q29udGFpbmVycyxudWxsIT09bCYmLTE9PT1uLmluZGV4T2YobCkmJm4ucHVzaChsKSxlKX1mdW5jdGlvbiBVbihlKXt2YXIgbj15bChlLnRhcmdldCk7aWYobnVsbCE9PW4pe3ZhciB0PWplKG4pO2lmKG51bGwhPT10KWlmKDEzPT09KG49dC50YWcpKXtpZihudWxsIT09KG49QmUodCkpKXJldHVybiBlLmJsb2NrZWRPbj1uLHZvaWQgQ24oZS5wcmlvcml0eSwoZnVuY3Rpb24oKXtFbih0KX0pKX1lbHNlIGlmKDM9PT1uJiZ0LnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiB2b2lkKGUuYmxvY2tlZE9uPTM9PT10LnRhZz90LnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGwpfWUuYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gVm4oZSl7aWYobnVsbCE9PWUuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgbj1lLnRhcmdldENvbnRhaW5lcnM7MDxuLmxlbmd0aDspe3ZhciB0PVhuKGUuZG9tRXZlbnROYW1lLGUuZXZlbnRTeXN0ZW1GbGFncyxuWzBdLGUubmF0aXZlRXZlbnQpO2lmKG51bGwhPT10KXJldHVybiBudWxsIT09KG49YmwodCkpJiZ4bihuKSxlLmJsb2NrZWRPbj10LCExO3ZhciByPW5ldyh0PWUubmF0aXZlRXZlbnQpLmNvbnN0cnVjdG9yKHQudHlwZSx0KTtrZT1yLHQudGFyZ2V0LmRpc3BhdGNoRXZlbnQociksa2U9bnVsbCxuLnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gJG4oZSxuLHQpe1ZuKGUpJiZ0LmRlbGV0ZShuKX1mdW5jdGlvbiBBbigpe1BuPSExLG51bGwhPT16biYmVm4oem4pJiYoem49bnVsbCksbnVsbCE9PVRuJiZWbihUbikmJihUbj1udWxsKSxudWxsIT09TG4mJlZuKExuKSYmKExuPW51bGwpLFJuLmZvckVhY2goJG4pLE1uLmZvckVhY2goJG4pfWZ1bmN0aW9uIGpuKGUsbil7ZS5ibG9ja2VkT249PT1uJiYoZS5ibG9ja2VkT249bnVsbCxQbnx8KFBuPSEwLGwudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhsLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LEFuKSkpfWZ1bmN0aW9uIEJuKGUpe2Z1bmN0aW9uIG4obil7cmV0dXJuIGpuKG4sZSl9aWYoMDxObi5sZW5ndGgpe2puKE5uWzBdLGUpO2Zvcih2YXIgdD0xO3Q8Tm4ubGVuZ3RoO3QrKyl7dmFyIHI9Tm5bdF07ci5ibG9ja2VkT249PT1lJiYoci5ibG9ja2VkT249bnVsbCl9fWZvcihudWxsIT09em4mJmpuKHpuLGUpLG51bGwhPT1UbiYmam4oVG4sZSksbnVsbCE9PUxuJiZqbihMbixlKSxSbi5mb3JFYWNoKG4pLE1uLmZvckVhY2gobiksdD0wO3Q8Rm4ubGVuZ3RoO3QrKykocj1Gblt0XSkuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxGbi5sZW5ndGgmJm51bGw9PT0odD1GblswXSkuYmxvY2tlZE9uOylVbih0KSxudWxsPT09dC5ibG9ja2VkT24mJkZuLnNoaWZ0KCl9dmFyIEhuPWsuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsV249ITA7ZnVuY3Rpb24gUW4oZSxuLHQscil7dmFyIGw9a24sYT1Ibi50cmFuc2l0aW9uO0huLnRyYW5zaXRpb249bnVsbDt0cnl7a249MSxLbihlLG4sdCxyKX1maW5hbGx5e2tuPWwsSG4udHJhbnNpdGlvbj1hfX1mdW5jdGlvbiBxbihlLG4sdCxyKXt2YXIgbD1rbixhPUhuLnRyYW5zaXRpb247SG4udHJhbnNpdGlvbj1udWxsO3RyeXtrbj00LEtuKGUsbix0LHIpfWZpbmFsbHl7a249bCxIbi50cmFuc2l0aW9uPWF9fWZ1bmN0aW9uIEtuKGUsbix0LHIpe2lmKFduKXt2YXIgbD1YbihlLG4sdCxyKTtpZihudWxsPT09bClIcihlLG4scixZbix0KSxEbihlLHIpO2Vsc2UgaWYoZnVuY3Rpb24oZSxuLHQscixsKXtzd2l0Y2gobil7Y2FzZVwiZm9jdXNpblwiOnJldHVybiB6bj1Jbih6bixlLG4sdCxyLGwpLCEwO2Nhc2VcImRyYWdlbnRlclwiOnJldHVybiBUbj1JbihUbixlLG4sdCxyLGwpLCEwO2Nhc2VcIm1vdXNlb3ZlclwiOnJldHVybiBMbj1JbihMbixlLG4sdCxyLGwpLCEwO2Nhc2VcInBvaW50ZXJvdmVyXCI6dmFyIGE9bC5wb2ludGVySWQ7cmV0dXJuIFJuLnNldChhLEluKFJuLmdldChhKXx8bnVsbCxlLG4sdCxyLGwpKSwhMDtjYXNlXCJnb3Rwb2ludGVyY2FwdHVyZVwiOnJldHVybiBhPWwucG9pbnRlcklkLE1uLnNldChhLEluKE1uLmdldChhKXx8bnVsbCxlLG4sdCxyLGwpKSwhMH1yZXR1cm4hMX0obCxlLG4sdCxyKSlyLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYoRG4oZSxyKSw0Jm4mJi0xPE9uLmluZGV4T2YoZSkpe2Zvcig7bnVsbCE9PWw7KXt2YXIgYT1ibChsKTtpZihudWxsIT09YSYmU24oYSksbnVsbD09PShhPVhuKGUsbix0LHIpKSYmSHIoZSxuLHIsWW4sdCksYT09PWwpYnJlYWs7bD1hfW51bGwhPT1sJiZyLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgSHIoZSxuLHIsbnVsbCx0KX19dmFyIFluPW51bGw7ZnVuY3Rpb24gWG4oZSxuLHQscil7aWYoWW49bnVsbCxudWxsIT09KGU9eWwoZT13ZShyKSkpKWlmKG51bGw9PT0obj1qZShlKSkpZT1udWxsO2Vsc2UgaWYoMTM9PT0odD1uLnRhZykpe2lmKG51bGwhPT0oZT1CZShuKSkpcmV0dXJuIGU7ZT1udWxsfWVsc2UgaWYoMz09PXQpe2lmKG4uc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpcmV0dXJuIDM9PT1uLnRhZz9uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7ZT1udWxsfWVsc2UgbiE9PWUmJihlPW51bGwpO3JldHVybiBZbj1lLG51bGx9ZnVuY3Rpb24gR24oZSl7c3dpdGNoKGUpe2Nhc2VcImNhbmNlbFwiOmNhc2VcImNsaWNrXCI6Y2FzZVwiY2xvc2VcIjpjYXNlXCJjb250ZXh0bWVudVwiOmNhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJhdXhjbGlja1wiOmNhc2VcImRibGNsaWNrXCI6Y2FzZVwiZHJhZ2VuZFwiOmNhc2VcImRyYWdzdGFydFwiOmNhc2VcImRyb3BcIjpjYXNlXCJmb2N1c2luXCI6Y2FzZVwiZm9jdXNvdXRcIjpjYXNlXCJpbnB1dFwiOmNhc2VcImludmFsaWRcIjpjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5cHJlc3NcIjpjYXNlXCJrZXl1cFwiOmNhc2VcIm1vdXNlZG93blwiOmNhc2VcIm1vdXNldXBcIjpjYXNlXCJwYXN0ZVwiOmNhc2VcInBhdXNlXCI6Y2FzZVwicGxheVwiOmNhc2VcInBvaW50ZXJjYW5jZWxcIjpjYXNlXCJwb2ludGVyZG93blwiOmNhc2VcInBvaW50ZXJ1cFwiOmNhc2VcInJhdGVjaGFuZ2VcIjpjYXNlXCJyZXNldFwiOmNhc2VcInJlc2l6ZVwiOmNhc2VcInNlZWtlZFwiOmNhc2VcInN1Ym1pdFwiOmNhc2VcInRvdWNoY2FuY2VsXCI6Y2FzZVwidG91Y2hlbmRcIjpjYXNlXCJ0b3VjaHN0YXJ0XCI6Y2FzZVwidm9sdW1lY2hhbmdlXCI6Y2FzZVwiY2hhbmdlXCI6Y2FzZVwic2VsZWN0aW9uY2hhbmdlXCI6Y2FzZVwidGV4dElucHV0XCI6Y2FzZVwiY29tcG9zaXRpb25zdGFydFwiOmNhc2VcImNvbXBvc2l0aW9uZW5kXCI6Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjpjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Y2FzZVwiYmVmb3JlaW5wdXRcIjpjYXNlXCJibHVyXCI6Y2FzZVwiZnVsbHNjcmVlbmNoYW5nZVwiOmNhc2VcImZvY3VzXCI6Y2FzZVwiaGFzaGNoYW5nZVwiOmNhc2VcInBvcHN0YXRlXCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwic2VsZWN0c3RhcnRcIjpyZXR1cm4gMTtjYXNlXCJkcmFnXCI6Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2V4aXRcIjpjYXNlXCJkcmFnbGVhdmVcIjpjYXNlXCJkcmFnb3ZlclwiOmNhc2VcIm1vdXNlbW92ZVwiOmNhc2VcIm1vdXNlb3V0XCI6Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwicG9pbnRlcm1vdmVcIjpjYXNlXCJwb2ludGVyb3V0XCI6Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJzY3JvbGxcIjpjYXNlXCJ0b2dnbGVcIjpjYXNlXCJ0b3VjaG1vdmVcIjpjYXNlXCJ3aGVlbFwiOmNhc2VcIm1vdXNlZW50ZXJcIjpjYXNlXCJtb3VzZWxlYXZlXCI6Y2FzZVwicG9pbnRlcmVudGVyXCI6Y2FzZVwicG9pbnRlcmxlYXZlXCI6cmV0dXJuIDQ7Y2FzZVwibWVzc2FnZVwiOnN3aXRjaChaZSgpKXtjYXNlIEplOnJldHVybiAxO2Nhc2UgZW46cmV0dXJuIDQ7Y2FzZSBubjpjYXNlIHRuOnJldHVybiAxNjtjYXNlIHJuOnJldHVybiA1MzY4NzA5MTI7ZGVmYXVsdDpyZXR1cm4gMTZ9ZGVmYXVsdDpyZXR1cm4gMTZ9fXZhciBabj1udWxsLEpuPW51bGwsZXQ9bnVsbDtmdW5jdGlvbiBudCgpe2lmKGV0KXJldHVybiBldDt2YXIgZSxuLHQ9Sm4scj10Lmxlbmd0aCxsPVwidmFsdWVcImluIFpuP1puLnZhbHVlOlpuLnRleHRDb250ZW50LGE9bC5sZW5ndGg7Zm9yKGU9MDtlPHImJnRbZV09PT1sW2VdO2UrKyk7dmFyIG89ci1lO2ZvcihuPTE7bjw9byYmdFtyLW5dPT09bFthLW5dO24rKyk7cmV0dXJuIGV0PWwuc2xpY2UoZSwxPG4/MS1uOnZvaWQgMCl9ZnVuY3Rpb24gdHQoZSl7dmFyIG49ZS5rZXlDb2RlO3JldHVyblwiY2hhckNvZGVcImluIGU/MD09PShlPWUuY2hhckNvZGUpJiYxMz09PW4mJihlPTEzKTplPW4sMTA9PT1lJiYoZT0xMyksMzI8PWV8fDEzPT09ZT9lOjB9ZnVuY3Rpb24gcnQoKXtyZXR1cm4hMH1mdW5jdGlvbiBsdCgpe3JldHVybiExfWZ1bmN0aW9uIGF0KGUpe2Z1bmN0aW9uIG4obix0LHIsbCxhKXtmb3IodmFyIG8gaW4gdGhpcy5fcmVhY3ROYW1lPW4sdGhpcy5fdGFyZ2V0SW5zdD1yLHRoaXMudHlwZT10LHRoaXMubmF0aXZlRXZlbnQ9bCx0aGlzLnRhcmdldD1hLHRoaXMuY3VycmVudFRhcmdldD1udWxsLGUpZS5oYXNPd25Qcm9wZXJ0eShvKSYmKG49ZVtvXSx0aGlzW29dPW4/bihsKTpsW29dKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPWwuZGVmYXVsdFByZXZlbnRlZD9sLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1sLnJldHVyblZhbHVlKT9ydDpsdCx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPWx0LHRoaXN9cmV0dXJuIEkobi5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOlwidW5rbm93blwiIT09dHlwZW9mIGUucmV0dXJuVmFsdWUmJihlLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1ydCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uP2Uuc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPT10eXBlb2YgZS5jYW5jZWxCdWJibGUmJihlLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1ydCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpydH0pLG59dmFyIG90LHV0LGl0LHN0PXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LGN0PWF0KHN0KSxmdD1JKHt9LHN0LHt2aWV3OjAsZGV0YWlsOjB9KSxkdD1hdChmdCkscHQ9SSh7fSxmdCx7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpfdCxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZS5yZWxhdGVkVGFyZ2V0P2UuZnJvbUVsZW1lbnQ9PT1lLnNyY0VsZW1lbnQ/ZS50b0VsZW1lbnQ6ZS5mcm9tRWxlbWVudDplLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihlKXtyZXR1cm5cIm1vdmVtZW50WFwiaW4gZT9lLm1vdmVtZW50WDooZSE9PWl0JiYoaXQmJlwibW91c2Vtb3ZlXCI9PT1lLnR5cGU/KG90PWUuc2NyZWVuWC1pdC5zY3JlZW5YLHV0PWUuc2NyZWVuWS1pdC5zY3JlZW5ZKTp1dD1vdD0wLGl0PWUpLG90KX0sbW92ZW1lbnRZOmZ1bmN0aW9uKGUpe3JldHVyblwibW92ZW1lbnRZXCJpbiBlP2UubW92ZW1lbnRZOnV0fX0pLG10PWF0KHB0KSxodD1hdChJKHt9LHB0LHtkYXRhVHJhbnNmZXI6MH0pKSx2dD1hdChJKHt9LGZ0LHtyZWxhdGVkVGFyZ2V0OjB9KSksZ3Q9YXQoSSh7fSxzdCx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLHl0PUkoe30sc3Qse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuXCJjbGlwYm9hcmREYXRhXCJpbiBlP2UuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSxidD1hdCh5dCksa3Q9YXQoSSh7fSxzdCx7ZGF0YTowfSkpLHd0PXtFc2M6XCJFc2NhcGVcIixTcGFjZWJhcjpcIiBcIixMZWZ0OlwiQXJyb3dMZWZ0XCIsVXA6XCJBcnJvd1VwXCIsUmlnaHQ6XCJBcnJvd1JpZ2h0XCIsRG93bjpcIkFycm93RG93blwiLERlbDpcIkRlbGV0ZVwiLFdpbjpcIk9TXCIsTWVudTpcIkNvbnRleHRNZW51XCIsQXBwczpcIkNvbnRleHRNZW51XCIsU2Nyb2xsOlwiU2Nyb2xsTG9ja1wiLE1velByaW50YWJsZUtleTpcIlVuaWRlbnRpZmllZFwifSxTdD17ODpcIkJhY2tzcGFjZVwiLDk6XCJUYWJcIiwxMjpcIkNsZWFyXCIsMTM6XCJFbnRlclwiLDE2OlwiU2hpZnRcIiwxNzpcIkNvbnRyb2xcIiwxODpcIkFsdFwiLDE5OlwiUGF1c2VcIiwyMDpcIkNhcHNMb2NrXCIsMjc6XCJFc2NhcGVcIiwzMjpcIiBcIiwzMzpcIlBhZ2VVcFwiLDM0OlwiUGFnZURvd25cIiwzNTpcIkVuZFwiLDM2OlwiSG9tZVwiLDM3OlwiQXJyb3dMZWZ0XCIsMzg6XCJBcnJvd1VwXCIsMzk6XCJBcnJvd1JpZ2h0XCIsNDA6XCJBcnJvd0Rvd25cIiw0NTpcIkluc2VydFwiLDQ2OlwiRGVsZXRlXCIsMTEyOlwiRjFcIiwxMTM6XCJGMlwiLDExNDpcIkYzXCIsMTE1OlwiRjRcIiwxMTY6XCJGNVwiLDExNzpcIkY2XCIsMTE4OlwiRjdcIiwxMTk6XCJGOFwiLDEyMDpcIkY5XCIsMTIxOlwiRjEwXCIsMTIyOlwiRjExXCIsMTIzOlwiRjEyXCIsMTQ0OlwiTnVtTG9ja1wiLDE0NTpcIlNjcm9sbExvY2tcIiwyMjQ6XCJNZXRhXCJ9LHh0PXtBbHQ6XCJhbHRLZXlcIixDb250cm9sOlwiY3RybEtleVwiLE1ldGE6XCJtZXRhS2V5XCIsU2hpZnQ6XCJzaGlmdEtleVwifTtmdW5jdGlvbiBFdChlKXt2YXIgbj10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBuLmdldE1vZGlmaWVyU3RhdGU/bi5nZXRNb2RpZmllclN0YXRlKGUpOiEhKGU9eHRbZV0pJiYhIW5bZV19ZnVuY3Rpb24gX3QoKXtyZXR1cm4gRXR9dmFyIEN0PUkoe30sZnQse2tleTpmdW5jdGlvbihlKXtpZihlLmtleSl7dmFyIG49d3RbZS5rZXldfHxlLmtleTtpZihcIlVuaWRlbnRpZmllZFwiIT09bilyZXR1cm4gbn1yZXR1cm5cImtleXByZXNzXCI9PT1lLnR5cGU/MTM9PT0oZT10dChlKSk/XCJFbnRlclwiOlN0cmluZy5mcm9tQ2hhckNvZGUoZSk6XCJrZXlkb3duXCI9PT1lLnR5cGV8fFwia2V5dXBcIj09PWUudHlwZT9TdFtlLmtleUNvZGVdfHxcIlVuaWRlbnRpZmllZFwiOlwiXCJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOl90LGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVyblwia2V5cHJlc3NcIj09PWUudHlwZT90dChlKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGUpe3JldHVyblwia2V5ZG93blwiPT09ZS50eXBlfHxcImtleXVwXCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGUpe3JldHVyblwia2V5cHJlc3NcIj09PWUudHlwZT90dChlKTpcImtleWRvd25cIj09PWUudHlwZXx8XCJrZXl1cFwiPT09ZS50eXBlP2Uua2V5Q29kZTowfX0pLFB0PWF0KEN0KSxOdD1hdChJKHt9LHB0LHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pKSx6dD1hdChJKHt9LGZ0LHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6X3R9KSksVHQ9YXQoSSh7fSxzdCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksTHQ9SSh7fSxwdCx7ZGVsdGFYOmZ1bmN0aW9uKGUpe3JldHVyblwiZGVsdGFYXCJpbiBlP2UuZGVsdGFYOlwid2hlZWxEZWx0YVhcImluIGU/LWUud2hlZWxEZWx0YVg6MH0sZGVsdGFZOmZ1bmN0aW9uKGUpe3JldHVyblwiZGVsdGFZXCJpbiBlP2UuZGVsdGFZOlwid2hlZWxEZWx0YVlcImluIGU/LWUud2hlZWxEZWx0YVk6XCJ3aGVlbERlbHRhXCJpbiBlPy1lLndoZWVsRGVsdGE6MH0sZGVsdGFaOjAsZGVsdGFNb2RlOjB9KSxSdD1hdChMdCksTXQ9WzksMTMsMjcsMzJdLEZ0PWMmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LE90PW51bGw7YyYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYoT3Q9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgRHQ9YyYmXCJUZXh0RXZlbnRcImluIHdpbmRvdyYmIU90LEl0PWMmJighRnR8fE90JiY4PE90JiYxMT49T3QpLFV0PVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLFZ0PSExO2Z1bmN0aW9uICR0KGUsbil7c3dpdGNoKGUpe2Nhc2VcImtleXVwXCI6cmV0dXJuLTEhPT1NdC5pbmRleE9mKG4ua2V5Q29kZSk7Y2FzZVwia2V5ZG93blwiOnJldHVybiAyMjkhPT1uLmtleUNvZGU7Y2FzZVwia2V5cHJlc3NcIjpjYXNlXCJtb3VzZWRvd25cIjpjYXNlXCJmb2N1c291dFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIEF0KGUpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YoZT1lLmRldGFpbCkmJlwiZGF0YVwiaW4gZT9lLmRhdGE6bnVsbH12YXIganQ9ITE7dmFyIEJ0PXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLFwiZGF0ZXRpbWUtbG9jYWxcIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIEh0KGUpe3ZhciBuPWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm5cImlucHV0XCI9PT1uPyEhQnRbZS50eXBlXTpcInRleHRhcmVhXCI9PT1ufWZ1bmN0aW9uIFd0KGUsbix0LHIpe0NlKHIpLDA8KG49UXIobixcIm9uQ2hhbmdlXCIpKS5sZW5ndGgmJih0PW5ldyBjdChcIm9uQ2hhbmdlXCIsXCJjaGFuZ2VcIixudWxsLHQsciksZS5wdXNoKHtldmVudDp0LGxpc3RlbmVyczpufSkpfXZhciBRdD1udWxsLHF0PW51bGw7ZnVuY3Rpb24gS3QoZSl7VXIoZSwwKX1mdW5jdGlvbiBZdChlKXtpZihxKGtsKGUpKSlyZXR1cm4gZX1mdW5jdGlvbiBYdChlLG4pe2lmKFwiY2hhbmdlXCI9PT1lKXJldHVybiBufXZhciBHdD0hMTtpZihjKXt2YXIgWnQ7aWYoYyl7dmFyIEp0PVwib25pbnB1dFwiaW4gZG9jdW1lbnQ7aWYoIUp0KXt2YXIgZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtlci5zZXRBdHRyaWJ1dGUoXCJvbmlucHV0XCIsXCJyZXR1cm47XCIpLEp0PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBlci5vbmlucHV0fVp0PUp0fWVsc2UgWnQ9ITE7R3Q9WnQmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gbnIoKXtRdCYmKFF0LmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLHRyKSxxdD1RdD1udWxsKX1mdW5jdGlvbiB0cihlKXtpZihcInZhbHVlXCI9PT1lLnByb3BlcnR5TmFtZSYmWXQocXQpKXt2YXIgbj1bXTtXdChuLHF0LGUsd2UoZSkpLExlKEt0LG4pfX1mdW5jdGlvbiBycihlLG4sdCl7XCJmb2N1c2luXCI9PT1lPyhucigpLHF0PXQsKFF0PW4pLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLHRyKSk6XCJmb2N1c291dFwiPT09ZSYmbnIoKX1mdW5jdGlvbiBscihlKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09ZXx8XCJrZXl1cFwiPT09ZXx8XCJrZXlkb3duXCI9PT1lKXJldHVybiBZdChxdCl9ZnVuY3Rpb24gYXIoZSxuKXtpZihcImNsaWNrXCI9PT1lKXJldHVybiBZdChuKX1mdW5jdGlvbiBvcihlLG4pe2lmKFwiaW5wdXRcIj09PWV8fFwiY2hhbmdlXCI9PT1lKXJldHVybiBZdChuKX12YXIgdXI9XCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZT09PW4mJigwIT09ZXx8MS9lPT09MS9uKXx8ZSE9PWUmJm4hPT1ufTtmdW5jdGlvbiBpcihlLG4pe2lmKHVyKGUsbikpcmV0dXJuITA7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlfHxudWxsPT09ZXx8XCJvYmplY3RcIiE9PXR5cGVvZiBufHxudWxsPT09bilyZXR1cm4hMTt2YXIgdD1PYmplY3Qua2V5cyhlKSxyPU9iamVjdC5rZXlzKG4pO2lmKHQubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGw9dFtyXTtpZighZi5jYWxsKG4sbCl8fCF1cihlW2xdLG5bbF0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIHNyKGUpe2Zvcig7ZSYmZS5maXJzdENoaWxkOyllPWUuZmlyc3RDaGlsZDtyZXR1cm4gZX1mdW5jdGlvbiBjcihlLG4pe3ZhciB0LHI9c3IoZSk7Zm9yKGU9MDtyOyl7aWYoMz09PXIubm9kZVR5cGUpe2lmKHQ9ZStyLnRleHRDb250ZW50Lmxlbmd0aCxlPD1uJiZ0Pj1uKXJldHVybntub2RlOnIsb2Zmc2V0Om4tZX07ZT10fWU6e2Zvcig7cjspe2lmKHIubmV4dFNpYmxpbmcpe3I9ci5uZXh0U2libGluZzticmVhayBlfXI9ci5wYXJlbnROb2RlfXI9dm9pZCAwfXI9c3Iocil9fWZ1bmN0aW9uIGZyKGUsbil7cmV0dXJuISghZXx8IW4pJiYoZT09PW58fCghZXx8MyE9PWUubm9kZVR5cGUpJiYobiYmMz09PW4ubm9kZVR5cGU/ZnIoZSxuLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIGU/ZS5jb250YWlucyhuKTohIWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJiEhKDE2JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24obikpKSl9ZnVuY3Rpb24gZHIoKXtmb3IodmFyIGU9d2luZG93LG49SygpO24gaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciB0PVwic3RyaW5nXCI9PT10eXBlb2Ygbi5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2gocil7dD0hMX1pZighdClicmVhaztuPUsoKGU9bi5jb250ZW50V2luZG93KS5kb2N1bWVudCl9cmV0dXJuIG59ZnVuY3Rpb24gcHIoZSl7dmFyIG49ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBuJiYoXCJpbnB1dFwiPT09biYmKFwidGV4dFwiPT09ZS50eXBlfHxcInNlYXJjaFwiPT09ZS50eXBlfHxcInRlbFwiPT09ZS50eXBlfHxcInVybFwiPT09ZS50eXBlfHxcInBhc3N3b3JkXCI9PT1lLnR5cGUpfHxcInRleHRhcmVhXCI9PT1ufHxcInRydWVcIj09PWUuY29udGVudEVkaXRhYmxlKX1mdW5jdGlvbiBtcihlKXt2YXIgbj1kcigpLHQ9ZS5mb2N1c2VkRWxlbSxyPWUuc2VsZWN0aW9uUmFuZ2U7aWYobiE9PXQmJnQmJnQub3duZXJEb2N1bWVudCYmZnIodC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0KSl7aWYobnVsbCE9PXImJnByKHQpKWlmKG49ci5zdGFydCx2b2lkIDA9PT0oZT1yLmVuZCkmJihlPW4pLFwic2VsZWN0aW9uU3RhcnRcImluIHQpdC5zZWxlY3Rpb25TdGFydD1uLHQuc2VsZWN0aW9uRW5kPU1hdGgubWluKGUsdC52YWx1ZS5sZW5ndGgpO2Vsc2UgaWYoKGU9KG49dC5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJm4uZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKXtlPWUuZ2V0U2VsZWN0aW9uKCk7dmFyIGw9dC50ZXh0Q29udGVudC5sZW5ndGgsYT1NYXRoLm1pbihyLnN0YXJ0LGwpO3I9dm9pZCAwPT09ci5lbmQ/YTpNYXRoLm1pbihyLmVuZCxsKSwhZS5leHRlbmQmJmE+ciYmKGw9cixyPWEsYT1sKSxsPWNyKHQsYSk7dmFyIG89Y3IodCxyKTtsJiZvJiYoMSE9PWUucmFuZ2VDb3VudHx8ZS5hbmNob3JOb2RlIT09bC5ub2RlfHxlLmFuY2hvck9mZnNldCE9PWwub2Zmc2V0fHxlLmZvY3VzTm9kZSE9PW8ubm9kZXx8ZS5mb2N1c09mZnNldCE9PW8ub2Zmc2V0KSYmKChuPW4uY3JlYXRlUmFuZ2UoKSkuc2V0U3RhcnQobC5ub2RlLGwub2Zmc2V0KSxlLnJlbW92ZUFsbFJhbmdlcygpLGE+cj8oZS5hZGRSYW5nZShuKSxlLmV4dGVuZChvLm5vZGUsby5vZmZzZXQpKToobi5zZXRFbmQoby5ub2RlLG8ub2Zmc2V0KSxlLmFkZFJhbmdlKG4pKSl9Zm9yKG49W10sZT10O2U9ZS5wYXJlbnROb2RlOykxPT09ZS5ub2RlVHlwZSYmbi5wdXNoKHtlbGVtZW50OmUsbGVmdDplLnNjcm9sbExlZnQsdG9wOmUuc2Nyb2xsVG9wfSk7Zm9yKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmZvY3VzJiZ0LmZvY3VzKCksdD0wO3Q8bi5sZW5ndGg7dCsrKShlPW5bdF0pLmVsZW1lbnQuc2Nyb2xsTGVmdD1lLmxlZnQsZS5lbGVtZW50LnNjcm9sbFRvcD1lLnRvcH19dmFyIGhyPWMmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSx2cj1udWxsLGdyPW51bGwseXI9bnVsbCxicj0hMTtmdW5jdGlvbiBrcihlLG4sdCl7dmFyIHI9dC53aW5kb3c9PT10P3QuZG9jdW1lbnQ6OT09PXQubm9kZVR5cGU/dDp0Lm93bmVyRG9jdW1lbnQ7YnJ8fG51bGw9PXZyfHx2ciE9PUsocil8fChcInNlbGVjdGlvblN0YXJ0XCJpbihyPXZyKSYmcHIocik/cj17c3RhcnQ6ci5zZWxlY3Rpb25TdGFydCxlbmQ6ci5zZWxlY3Rpb25FbmR9OnI9e2FuY2hvck5vZGU6KHI9KHIub3duZXJEb2N1bWVudCYmci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpyLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ci5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ci5mb2N1c09mZnNldH0seXImJmlyKHlyLHIpfHwoeXI9ciwwPChyPVFyKGdyLFwib25TZWxlY3RcIikpLmxlbmd0aCYmKG49bmV3IGN0KFwib25TZWxlY3RcIixcInNlbGVjdFwiLG51bGwsbix0KSxlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOnJ9KSxuLnRhcmdldD12cikpKX1mdW5jdGlvbiB3cihlLG4pe3ZhciB0PXt9O3JldHVybiB0W2UudG9Mb3dlckNhc2UoKV09bi50b0xvd2VyQ2FzZSgpLHRbXCJXZWJraXRcIitlXT1cIndlYmtpdFwiK24sdFtcIk1velwiK2VdPVwibW96XCIrbix0fXZhciBTcj17YW5pbWF0aW9uZW5kOndyKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25FbmRcIiksYW5pbWF0aW9uaXRlcmF0aW9uOndyKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25JdGVyYXRpb25cIiksYW5pbWF0aW9uc3RhcnQ6d3IoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25lbmQ6d3IoXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uRW5kXCIpfSx4cj17fSxFcj17fTtmdW5jdGlvbiBfcihlKXtpZih4cltlXSlyZXR1cm4geHJbZV07aWYoIVNyW2VdKXJldHVybiBlO3ZhciBuLHQ9U3JbZV07Zm9yKG4gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pJiZuIGluIEVyKXJldHVybiB4cltlXT10W25dO3JldHVybiBlfWMmJihFcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlLFwiQW5pbWF0aW9uRXZlbnRcImluIHdpbmRvd3x8KGRlbGV0ZSBTci5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBTci5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBTci5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLFwiVHJhbnNpdGlvbkV2ZW50XCJpbiB3aW5kb3d8fGRlbGV0ZSBTci50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO3ZhciBDcj1fcihcImFuaW1hdGlvbmVuZFwiKSxQcj1fcihcImFuaW1hdGlvbml0ZXJhdGlvblwiKSxOcj1fcihcImFuaW1hdGlvbnN0YXJ0XCIpLHpyPV9yKFwidHJhbnNpdGlvbmVuZFwiKSxUcj1uZXcgTWFwLExyPVwiYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWxcIi5zcGxpdChcIiBcIik7ZnVuY3Rpb24gUnIoZSxuKXtUci5zZXQoZSxuKSxpKG4sW2VdKX1mb3IodmFyIE1yPTA7TXI8THIubGVuZ3RoO01yKyspe3ZhciBGcj1McltNcl07UnIoRnIudG9Mb3dlckNhc2UoKSxcIm9uXCIrKEZyWzBdLnRvVXBwZXJDYXNlKCkrRnIuc2xpY2UoMSkpKX1ScihDcixcIm9uQW5pbWF0aW9uRW5kXCIpLFJyKFByLFwib25BbmltYXRpb25JdGVyYXRpb25cIiksUnIoTnIsXCJvbkFuaW1hdGlvblN0YXJ0XCIpLFJyKFwiZGJsY2xpY2tcIixcIm9uRG91YmxlQ2xpY2tcIiksUnIoXCJmb2N1c2luXCIsXCJvbkZvY3VzXCIpLFJyKFwiZm9jdXNvdXRcIixcIm9uQmx1clwiKSxScih6cixcIm9uVHJhbnNpdGlvbkVuZFwiKSxzKFwib25Nb3VzZUVudGVyXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSkscyhcIm9uTW91c2VMZWF2ZVwiLFtcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl0pLHMoXCJvblBvaW50ZXJFbnRlclwiLFtcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdKSxzKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSksaShcIm9uQ2hhbmdlXCIsXCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSksaShcIm9uU2VsZWN0XCIsXCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpLGkoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKSxpKFwib25Db21wb3NpdGlvbkVuZFwiLFwiY29tcG9zaXRpb25lbmQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIikpLGkoXCJvbkNvbXBvc2l0aW9uU3RhcnRcIixcImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIikpLGkoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIE9yPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksRHI9bmV3IFNldChcImNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHRvZ2dsZVwiLnNwbGl0KFwiIFwiKS5jb25jYXQoT3IpKTtmdW5jdGlvbiBJcihlLG4sdCl7dmFyIHI9ZS50eXBlfHxcInVua25vd24tZXZlbnRcIjtlLmN1cnJlbnRUYXJnZXQ9dCxmdW5jdGlvbihlLG4sdCxyLGwsbyx1LGkscyl7aWYoQWUuYXBwbHkodGhpcyxhcmd1bWVudHMpLERlKXtpZighRGUpdGhyb3cgRXJyb3IoYSgxOTgpKTt2YXIgYz1JZTtEZT0hMSxJZT1udWxsLFVlfHwoVWU9ITAsVmU9Yyl9fShyLG4sdm9pZCAwLGUpLGUuY3VycmVudFRhcmdldD1udWxsfWZ1bmN0aW9uIFVyKGUsbil7bj0wIT09KDQmbik7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF0sbD1yLmV2ZW50O3I9ci5saXN0ZW5lcnM7ZTp7dmFyIGE9dm9pZCAwO2lmKG4pZm9yKHZhciBvPXIubGVuZ3RoLTE7MDw9bztvLS0pe3ZhciB1PXJbb10saT11Lmluc3RhbmNlLHM9dS5jdXJyZW50VGFyZ2V0O2lmKHU9dS5saXN0ZW5lcixpIT09YSYmbC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7SXIobCx1LHMpLGE9aX1lbHNlIGZvcihvPTA7bzxyLmxlbmd0aDtvKyspe2lmKGk9KHU9cltvXSkuaW5zdGFuY2Uscz11LmN1cnJlbnRUYXJnZXQsdT11Lmxpc3RlbmVyLGkhPT1hJiZsLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtJcihsLHUscyksYT1pfX19aWYoVWUpdGhyb3cgZT1WZSxVZT0hMSxWZT1udWxsLGV9ZnVuY3Rpb24gVnIoZSxuKXt2YXIgdD1uW2hsXTt2b2lkIDA9PT10JiYodD1uW2hsXT1uZXcgU2V0KTt2YXIgcj1lK1wiX19idWJibGVcIjt0LmhhcyhyKXx8KEJyKG4sZSwyLCExKSx0LmFkZChyKSl9ZnVuY3Rpb24gJHIoZSxuLHQpe3ZhciByPTA7biYmKHJ8PTQpLEJyKHQsZSxyLG4pfXZhciBBcj1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIGpyKGUpe2lmKCFlW0FyXSl7ZVtBcl09ITAsby5mb3JFYWNoKChmdW5jdGlvbihuKXtcInNlbGVjdGlvbmNoYW5nZVwiIT09biYmKERyLmhhcyhuKXx8JHIobiwhMSxlKSwkcihuLCEwLGUpKX0pKTt2YXIgbj05PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudDtudWxsPT09bnx8bltBcl18fChuW0FyXT0hMCwkcihcInNlbGVjdGlvbmNoYW5nZVwiLCExLG4pKX19ZnVuY3Rpb24gQnIoZSxuLHQscil7c3dpdGNoKEduKG4pKXtjYXNlIDE6dmFyIGw9UW47YnJlYWs7Y2FzZSA0Omw9cW47YnJlYWs7ZGVmYXVsdDpsPUtufXQ9bC5iaW5kKG51bGwsbix0LGUpLGw9dm9pZCAwLCFNZXx8XCJ0b3VjaHN0YXJ0XCIhPT1uJiZcInRvdWNobW92ZVwiIT09biYmXCJ3aGVlbFwiIT09bnx8KGw9ITApLHI/dm9pZCAwIT09bD9lLmFkZEV2ZW50TGlzdGVuZXIobix0LHtjYXB0dXJlOiEwLHBhc3NpdmU6bH0pOmUuYWRkRXZlbnRMaXN0ZW5lcihuLHQsITApOnZvaWQgMCE9PWw/ZS5hZGRFdmVudExpc3RlbmVyKG4sdCx7cGFzc2l2ZTpsfSk6ZS5hZGRFdmVudExpc3RlbmVyKG4sdCwhMSl9ZnVuY3Rpb24gSHIoZSxuLHQscixsKXt2YXIgYT1yO2lmKDA9PT0oMSZuKSYmMD09PSgyJm4pJiZudWxsIT09cillOmZvcig7Oyl7aWYobnVsbD09PXIpcmV0dXJuO3ZhciBvPXIudGFnO2lmKDM9PT1vfHw0PT09byl7dmFyIHU9ci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZih1PT09bHx8OD09PXUubm9kZVR5cGUmJnUucGFyZW50Tm9kZT09PWwpYnJlYWs7aWYoND09PW8pZm9yKG89ci5yZXR1cm47bnVsbCE9PW87KXt2YXIgaT1vLnRhZztpZigoMz09PWl8fDQ9PT1pKSYmKChpPW8uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pPT09bHx8OD09PWkubm9kZVR5cGUmJmkucGFyZW50Tm9kZT09PWwpKXJldHVybjtvPW8ucmV0dXJufWZvcig7bnVsbCE9PXU7KXtpZihudWxsPT09KG89eWwodSkpKXJldHVybjtpZig1PT09KGk9by50YWcpfHw2PT09aSl7cj1hPW87Y29udGludWUgZX11PXUucGFyZW50Tm9kZX19cj1yLnJldHVybn1MZSgoZnVuY3Rpb24oKXt2YXIgcj1hLGw9d2UodCksbz1bXTtlOnt2YXIgdT1Uci5nZXQoZSk7aWYodm9pZCAwIT09dSl7dmFyIGk9Y3Qscz1lO3N3aXRjaChlKXtjYXNlXCJrZXlwcmVzc1wiOmlmKDA9PT10dCh0KSlicmVhayBlO2Nhc2VcImtleWRvd25cIjpjYXNlXCJrZXl1cFwiOmk9UHQ7YnJlYWs7Y2FzZVwiZm9jdXNpblwiOnM9XCJmb2N1c1wiLGk9dnQ7YnJlYWs7Y2FzZVwiZm9jdXNvdXRcIjpzPVwiYmx1clwiLGk9dnQ7YnJlYWs7Y2FzZVwiYmVmb3JlYmx1clwiOmNhc2VcImFmdGVyYmx1clwiOmk9dnQ7YnJlYWs7Y2FzZVwiY2xpY2tcIjppZigyPT09dC5idXR0b24pYnJlYWsgZTtjYXNlXCJhdXhjbGlja1wiOmNhc2VcImRibGNsaWNrXCI6Y2FzZVwibW91c2Vkb3duXCI6Y2FzZVwibW91c2Vtb3ZlXCI6Y2FzZVwibW91c2V1cFwiOmNhc2VcIm1vdXNlb3V0XCI6Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwiY29udGV4dG1lbnVcIjppPW10O2JyZWFrO2Nhc2VcImRyYWdcIjpjYXNlXCJkcmFnZW5kXCI6Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2V4aXRcIjpjYXNlXCJkcmFnbGVhdmVcIjpjYXNlXCJkcmFnb3ZlclwiOmNhc2VcImRyYWdzdGFydFwiOmNhc2VcImRyb3BcIjppPWh0O2JyZWFrO2Nhc2VcInRvdWNoY2FuY2VsXCI6Y2FzZVwidG91Y2hlbmRcIjpjYXNlXCJ0b3VjaG1vdmVcIjpjYXNlXCJ0b3VjaHN0YXJ0XCI6aT16dDticmVhaztjYXNlIENyOmNhc2UgUHI6Y2FzZSBOcjppPWd0O2JyZWFrO2Nhc2UgenI6aT1UdDticmVhaztjYXNlXCJzY3JvbGxcIjppPWR0O2JyZWFrO2Nhc2VcIndoZWVsXCI6aT1SdDticmVhaztjYXNlXCJjb3B5XCI6Y2FzZVwiY3V0XCI6Y2FzZVwicGFzdGVcIjppPWJ0O2JyZWFrO2Nhc2VcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZVwibG9zdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZVwicG9pbnRlcmNhbmNlbFwiOmNhc2VcInBvaW50ZXJkb3duXCI6Y2FzZVwicG9pbnRlcm1vdmVcIjpjYXNlXCJwb2ludGVyb3V0XCI6Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJwb2ludGVydXBcIjppPU50fXZhciBjPTAhPT0oNCZuKSxmPSFjJiZcInNjcm9sbFwiPT09ZSxkPWM/bnVsbCE9PXU/dStcIkNhcHR1cmVcIjpudWxsOnU7Yz1bXTtmb3IodmFyIHAsbT1yO251bGwhPT1tOyl7dmFyIGg9KHA9bSkuc3RhdGVOb2RlO2lmKDU9PT1wLnRhZyYmbnVsbCE9PWgmJihwPWgsbnVsbCE9PWQmJihudWxsIT0oaD1SZShtLGQpKSYmYy5wdXNoKFdyKG0saCxwKSkpKSxmKWJyZWFrO209bS5yZXR1cm59MDxjLmxlbmd0aCYmKHU9bmV3IGkodSxzLG51bGwsdCxsKSxvLnB1c2goe2V2ZW50OnUsbGlzdGVuZXJzOmN9KSl9fWlmKDA9PT0oNyZuKSl7aWYoaT1cIm1vdXNlb3V0XCI9PT1lfHxcInBvaW50ZXJvdXRcIj09PWUsKCEodT1cIm1vdXNlb3ZlclwiPT09ZXx8XCJwb2ludGVyb3ZlclwiPT09ZSl8fHQ9PT1rZXx8IShzPXQucmVsYXRlZFRhcmdldHx8dC5mcm9tRWxlbWVudCl8fCF5bChzKSYmIXNbbWxdKSYmKGl8fHUpJiYodT1sLndpbmRvdz09PWw/bDoodT1sLm93bmVyRG9jdW1lbnQpP3UuZGVmYXVsdFZpZXd8fHUucGFyZW50V2luZG93OndpbmRvdyxpPyhpPXIsbnVsbCE9PShzPShzPXQucmVsYXRlZFRhcmdldHx8dC50b0VsZW1lbnQpP3lsKHMpOm51bGwpJiYocyE9PShmPWplKHMpKXx8NSE9PXMudGFnJiY2IT09cy50YWcpJiYocz1udWxsKSk6KGk9bnVsbCxzPXIpLGkhPT1zKSl7aWYoYz1tdCxoPVwib25Nb3VzZUxlYXZlXCIsZD1cIm9uTW91c2VFbnRlclwiLG09XCJtb3VzZVwiLFwicG9pbnRlcm91dFwiIT09ZSYmXCJwb2ludGVyb3ZlclwiIT09ZXx8KGM9TnQsaD1cIm9uUG9pbnRlckxlYXZlXCIsZD1cIm9uUG9pbnRlckVudGVyXCIsbT1cInBvaW50ZXJcIiksZj1udWxsPT1pP3U6a2woaSkscD1udWxsPT1zP3U6a2wocyksKHU9bmV3IGMoaCxtK1wibGVhdmVcIixpLHQsbCkpLnRhcmdldD1mLHUucmVsYXRlZFRhcmdldD1wLGg9bnVsbCx5bChsKT09PXImJigoYz1uZXcgYyhkLG0rXCJlbnRlclwiLHMsdCxsKSkudGFyZ2V0PXAsYy5yZWxhdGVkVGFyZ2V0PWYsaD1jKSxmPWgsaSYmcyllOntmb3IoZD1zLG09MCxwPWM9aTtwO3A9cXIocCkpbSsrO2ZvcihwPTAsaD1kO2g7aD1xcihoKSlwKys7Zm9yKDswPG0tcDspYz1xcihjKSxtLS07Zm9yKDswPHAtbTspZD1xcihkKSxwLS07Zm9yKDttLS07KXtpZihjPT09ZHx8bnVsbCE9PWQmJmM9PT1kLmFsdGVybmF0ZSlicmVhayBlO2M9cXIoYyksZD1xcihkKX1jPW51bGx9ZWxzZSBjPW51bGw7bnVsbCE9PWkmJktyKG8sdSxpLGMsITEpLG51bGwhPT1zJiZudWxsIT09ZiYmS3IobyxmLHMsYywhMCl9aWYoXCJzZWxlY3RcIj09PShpPSh1PXI/a2wocik6d2luZG93KS5ub2RlTmFtZSYmdS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXx8XCJpbnB1dFwiPT09aSYmXCJmaWxlXCI9PT11LnR5cGUpdmFyIHY9WHQ7ZWxzZSBpZihIdCh1KSlpZihHdCl2PW9yO2Vsc2V7dj1scjt2YXIgZz1ycn1lbHNlKGk9dS5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWkudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PXUudHlwZXx8XCJyYWRpb1wiPT09dS50eXBlKSYmKHY9YXIpO3N3aXRjaCh2JiYodj12KGUscikpP1d0KG8sdix0LGwpOihnJiZnKGUsdSxyKSxcImZvY3Vzb3V0XCI9PT1lJiYoZz11Ll93cmFwcGVyU3RhdGUpJiZnLmNvbnRyb2xsZWQmJlwibnVtYmVyXCI9PT11LnR5cGUmJmVlKHUsXCJudW1iZXJcIix1LnZhbHVlKSksZz1yP2tsKHIpOndpbmRvdyxlKXtjYXNlXCJmb2N1c2luXCI6KEh0KGcpfHxcInRydWVcIj09PWcuY29udGVudEVkaXRhYmxlKSYmKHZyPWcsZ3I9cix5cj1udWxsKTticmVhaztjYXNlXCJmb2N1c291dFwiOnlyPWdyPXZyPW51bGw7YnJlYWs7Y2FzZVwibW91c2Vkb3duXCI6YnI9ITA7YnJlYWs7Y2FzZVwiY29udGV4dG1lbnVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwiZHJhZ2VuZFwiOmJyPSExLGtyKG8sdCxsKTticmVhaztjYXNlXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihocilicmVhaztjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5dXBcIjprcihvLHQsbCl9dmFyIHk7aWYoRnQpZTp7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgYj1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIGU7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjpiPVwib25Db21wb3NpdGlvbkVuZFwiO2JyZWFrIGU7Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjpiPVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIGV9Yj12b2lkIDB9ZWxzZSBqdD8kdChlLHQpJiYoYj1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1lJiYyMjk9PT10LmtleUNvZGUmJihiPVwib25Db21wb3NpdGlvblN0YXJ0XCIpO2ImJihJdCYmXCJrb1wiIT09dC5sb2NhbGUmJihqdHx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PWI/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT1iJiZqdCYmKHk9bnQoKSk6KEpuPVwidmFsdWVcImluKFpuPWwpP1puLnZhbHVlOlpuLnRleHRDb250ZW50LGp0PSEwKSksMDwoZz1RcihyLGIpKS5sZW5ndGgmJihiPW5ldyBrdChiLGUsbnVsbCx0LGwpLG8ucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6Z30pLHk/Yi5kYXRhPXk6bnVsbCE9PSh5PUF0KHQpKSYmKGIuZGF0YT15KSkpLCh5PUR0P2Z1bmN0aW9uKGUsbil7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIEF0KG4pO2Nhc2VcImtleXByZXNzXCI6cmV0dXJuIDMyIT09bi53aGljaD9udWxsOihWdD0hMCxVdCk7Y2FzZVwidGV4dElucHV0XCI6cmV0dXJuKGU9bi5kYXRhKT09PVV0JiZWdD9udWxsOmU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KGUsdCk6ZnVuY3Rpb24oZSxuKXtpZihqdClyZXR1cm5cImNvbXBvc2l0aW9uZW5kXCI9PT1lfHwhRnQmJiR0KGUsbik/KGU9bnQoKSxldD1Kbj1abj1udWxsLGp0PSExLGUpOm51bGw7c3dpdGNoKGUpe2Nhc2VcInBhc3RlXCI6ZGVmYXVsdDpyZXR1cm4gbnVsbDtjYXNlXCJrZXlwcmVzc1wiOmlmKCEobi5jdHJsS2V5fHxuLmFsdEtleXx8bi5tZXRhS2V5KXx8bi5jdHJsS2V5JiZuLmFsdEtleSl7aWYobi5jaGFyJiYxPG4uY2hhci5sZW5ndGgpcmV0dXJuIG4uY2hhcjtpZihuLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG4ud2hpY2gpfXJldHVybiBudWxsO2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIEl0JiZcImtvXCIhPT1uLmxvY2FsZT9udWxsOm4uZGF0YX19KGUsdCkpJiYoMDwocj1RcihyLFwib25CZWZvcmVJbnB1dFwiKSkubGVuZ3RoJiYobD1uZXcga3QoXCJvbkJlZm9yZUlucHV0XCIsXCJiZWZvcmVpbnB1dFwiLG51bGwsdCxsKSxvLnB1c2goe2V2ZW50OmwsbGlzdGVuZXJzOnJ9KSxsLmRhdGE9eSkpfVVyKG8sbil9KSl9ZnVuY3Rpb24gV3IoZSxuLHQpe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOm4sY3VycmVudFRhcmdldDp0fX1mdW5jdGlvbiBRcihlLG4pe2Zvcih2YXIgdD1uK1wiQ2FwdHVyZVwiLHI9W107bnVsbCE9PWU7KXt2YXIgbD1lLGE9bC5zdGF0ZU5vZGU7NT09PWwudGFnJiZudWxsIT09YSYmKGw9YSxudWxsIT0oYT1SZShlLHQpKSYmci51bnNoaWZ0KFdyKGUsYSxsKSksbnVsbCE9KGE9UmUoZSxuKSkmJnIucHVzaChXcihlLGEsbCkpKSxlPWUucmV0dXJufXJldHVybiByfWZ1bmN0aW9uIHFyKGUpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2Rve2U9ZS5yZXR1cm59d2hpbGUoZSYmNSE9PWUudGFnKTtyZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBLcihlLG4sdCxyLGwpe2Zvcih2YXIgYT1uLl9yZWFjdE5hbWUsbz1bXTtudWxsIT09dCYmdCE9PXI7KXt2YXIgdT10LGk9dS5hbHRlcm5hdGUscz11LnN0YXRlTm9kZTtpZihudWxsIT09aSYmaT09PXIpYnJlYWs7NT09PXUudGFnJiZudWxsIT09cyYmKHU9cyxsP251bGwhPShpPVJlKHQsYSkpJiZvLnVuc2hpZnQoV3IodCxpLHUpKTpsfHxudWxsIT0oaT1SZSh0LGEpKSYmby5wdXNoKFdyKHQsaSx1KSkpLHQ9dC5yZXR1cm59MCE9PW8ubGVuZ3RoJiZlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOm99KX12YXIgWXI9L1xcclxcbj8vZyxYcj0vXFx1MDAwMHxcXHVGRkZEL2c7ZnVuY3Rpb24gR3IoZSl7cmV0dXJuKFwic3RyaW5nXCI9PT10eXBlb2YgZT9lOlwiXCIrZSkucmVwbGFjZShZcixcIlxcblwiKS5yZXBsYWNlKFhyLFwiXCIpfWZ1bmN0aW9uIFpyKGUsbix0KXtpZihuPUdyKG4pLEdyKGUpIT09biYmdCl0aHJvdyBFcnJvcihhKDQyNSkpfWZ1bmN0aW9uIEpyKCl7fXZhciBlbD1udWxsLG5sPW51bGw7ZnVuY3Rpb24gdGwoZSxuKXtyZXR1cm5cInRleHRhcmVhXCI9PT1lfHxcIm5vc2NyaXB0XCI9PT1lfHxcInN0cmluZ1wiPT09dHlwZW9mIG4uY2hpbGRyZW58fFwibnVtYmVyXCI9PT10eXBlb2Ygbi5jaGlsZHJlbnx8XCJvYmplY3RcIj09PXR5cGVvZiBuLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09bi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9bi5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIHJsPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLGxsPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMCxhbD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlOnZvaWQgMCxvbD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBhbD9mdW5jdGlvbihlKXtyZXR1cm4gYWwucmVzb2x2ZShudWxsKS50aGVuKGUpLmNhdGNoKHVsKX06cmw7ZnVuY3Rpb24gdWwoZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSkpfWZ1bmN0aW9uIGlsKGUsbil7dmFyIHQ9bixyPTA7ZG97dmFyIGw9dC5uZXh0U2libGluZztpZihlLnJlbW92ZUNoaWxkKHQpLGwmJjg9PT1sLm5vZGVUeXBlKWlmKFwiLyRcIj09PSh0PWwuZGF0YSkpe2lmKDA9PT1yKXJldHVybiBlLnJlbW92ZUNoaWxkKGwpLHZvaWQgQm4obik7ci0tfWVsc2VcIiRcIiE9PXQmJlwiJD9cIiE9PXQmJlwiJCFcIiE9PXR8fHIrKzt0PWx9d2hpbGUodCk7Qm4obil9ZnVuY3Rpb24gc2woZSl7Zm9yKDtudWxsIT1lO2U9ZS5uZXh0U2libGluZyl7dmFyIG49ZS5ub2RlVHlwZTtpZigxPT09bnx8Mz09PW4pYnJlYWs7aWYoOD09PW4pe2lmKFwiJFwiPT09KG49ZS5kYXRhKXx8XCIkIVwiPT09bnx8XCIkP1wiPT09bilicmVhaztpZihcIi8kXCI9PT1uKXJldHVybiBudWxsfX1yZXR1cm4gZX1mdW5jdGlvbiBjbChlKXtlPWUucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgbj0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIHQ9ZS5kYXRhO2lmKFwiJFwiPT09dHx8XCIkIVwiPT09dHx8XCIkP1wiPT09dCl7aWYoMD09PW4pcmV0dXJuIGU7bi0tfWVsc2VcIi8kXCI9PT10JiZuKyt9ZT1lLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgZmw9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksZGw9XCJfX3JlYWN0RmliZXIkXCIrZmwscGw9XCJfX3JlYWN0UHJvcHMkXCIrZmwsbWw9XCJfX3JlYWN0Q29udGFpbmVyJFwiK2ZsLGhsPVwiX19yZWFjdEV2ZW50cyRcIitmbCx2bD1cIl9fcmVhY3RMaXN0ZW5lcnMkXCIrZmwsZ2w9XCJfX3JlYWN0SGFuZGxlcyRcIitmbDtmdW5jdGlvbiB5bChlKXt2YXIgbj1lW2RsXTtpZihuKXJldHVybiBuO2Zvcih2YXIgdD1lLnBhcmVudE5vZGU7dDspe2lmKG49dFttbF18fHRbZGxdKXtpZih0PW4uYWx0ZXJuYXRlLG51bGwhPT1uLmNoaWxkfHxudWxsIT09dCYmbnVsbCE9PXQuY2hpbGQpZm9yKGU9Y2woZSk7bnVsbCE9PWU7KXtpZih0PWVbZGxdKXJldHVybiB0O2U9Y2woZSl9cmV0dXJuIG59dD0oZT10KS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIGJsKGUpe3JldHVybiEoZT1lW2RsXXx8ZVttbF0pfHw1IT09ZS50YWcmJjYhPT1lLnRhZyYmMTMhPT1lLnRhZyYmMyE9PWUudGFnP251bGw6ZX1mdW5jdGlvbiBrbChlKXtpZig1PT09ZS50YWd8fDY9PT1lLnRhZylyZXR1cm4gZS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IoYSgzMykpfWZ1bmN0aW9uIHdsKGUpe3JldHVybiBlW3BsXXx8bnVsbH12YXIgU2w9W10seGw9LTE7ZnVuY3Rpb24gRWwoZSl7cmV0dXJue2N1cnJlbnQ6ZX19ZnVuY3Rpb24gX2woZSl7MD54bHx8KGUuY3VycmVudD1TbFt4bF0sU2xbeGxdPW51bGwseGwtLSl9ZnVuY3Rpb24gQ2woZSxuKXt4bCsrLFNsW3hsXT1lLmN1cnJlbnQsZS5jdXJyZW50PW59dmFyIFBsPXt9LE5sPUVsKFBsKSx6bD1FbCghMSksVGw9UGw7ZnVuY3Rpb24gTGwoZSxuKXt2YXIgdD1lLnR5cGUuY29udGV4dFR5cGVzO2lmKCF0KXJldHVybiBQbDt2YXIgcj1lLnN0YXRlTm9kZTtpZihyJiZyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9PT1uKXJldHVybiByLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O3ZhciBsLGE9e307Zm9yKGwgaW4gdClhW2xdPW5bbF07cmV0dXJuIHImJigoZT1lLnN0YXRlTm9kZSkuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1uLGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9YSksYX1mdW5jdGlvbiBSbChlKXtyZXR1cm4gbnVsbCE9PShlPWUuY2hpbGRDb250ZXh0VHlwZXMpJiZ2b2lkIDAhPT1lfWZ1bmN0aW9uIE1sKCl7X2woemwpLF9sKE5sKX1mdW5jdGlvbiBGbChlLG4sdCl7aWYoTmwuY3VycmVudCE9PVBsKXRocm93IEVycm9yKGEoMTY4KSk7Q2woTmwsbiksQ2woemwsdCl9ZnVuY3Rpb24gT2woZSxuLHQpe3ZhciByPWUuc3RhdGVOb2RlO2lmKG49bi5jaGlsZENvbnRleHRUeXBlcyxcImZ1bmN0aW9uXCIhPT10eXBlb2Ygci5nZXRDaGlsZENvbnRleHQpcmV0dXJuIHQ7Zm9yKHZhciBsIGluIHI9ci5nZXRDaGlsZENvbnRleHQoKSlpZighKGwgaW4gbikpdGhyb3cgRXJyb3IoYSgxMDgsQihlKXx8XCJVbmtub3duXCIsbCkpO3JldHVybiBJKHt9LHQscil9ZnVuY3Rpb24gRGwoZSl7cmV0dXJuIGU9KGU9ZS5zdGF0ZU5vZGUpJiZlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxQbCxUbD1ObC5jdXJyZW50LENsKE5sLGUpLENsKHpsLHpsLmN1cnJlbnQpLCEwfWZ1bmN0aW9uIElsKGUsbix0KXt2YXIgcj1lLnN0YXRlTm9kZTtpZighcil0aHJvdyBFcnJvcihhKDE2OSkpO3Q/KGU9T2woZSxuLFRsKSxyLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWUsX2woemwpLF9sKE5sKSxDbChObCxlKSk6X2woemwpLENsKHpsLHQpfXZhciBVbD1udWxsLFZsPSExLCRsPSExO2Z1bmN0aW9uIEFsKGUpe251bGw9PT1VbD9VbD1bZV06VWwucHVzaChlKX1mdW5jdGlvbiBqbCgpe2lmKCEkbCYmbnVsbCE9PVVsKXskbD0hMDt2YXIgZT0wLG49a247dHJ5e3ZhciB0PVVsO2Zvcihrbj0xO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdO2Rve3I9cighMCl9d2hpbGUobnVsbCE9PXIpfVVsPW51bGwsVmw9ITF9Y2F0Y2gobCl7dGhyb3cgbnVsbCE9PVVsJiYoVWw9VWwuc2xpY2UoZSsxKSkscWUoSmUsamwpLGx9ZmluYWxseXtrbj1uLCRsPSExfX1yZXR1cm4gbnVsbH12YXIgQmw9W10sSGw9MCxXbD1udWxsLFFsPTAscWw9W10sS2w9MCxZbD1udWxsLFhsPTEsR2w9XCJcIjtmdW5jdGlvbiBabChlLG4pe0JsW0hsKytdPVFsLEJsW0hsKytdPVdsLFdsPWUsUWw9bn1mdW5jdGlvbiBKbChlLG4sdCl7cWxbS2wrK109WGwscWxbS2wrK109R2wscWxbS2wrK109WWwsWWw9ZTt2YXIgcj1YbDtlPUdsO3ZhciBsPTMyLW9uKHIpLTE7ciY9figxPDxsKSx0Kz0xO3ZhciBhPTMyLW9uKG4pK2w7aWYoMzA8YSl7dmFyIG89bC1sJTU7YT0ociYoMTw8byktMSkudG9TdHJpbmcoMzIpLHI+Pj1vLGwtPW8sWGw9MTw8MzItb24obikrbHx0PDxsfHIsR2w9YStlfWVsc2UgWGw9MTw8YXx0PDxsfHIsR2w9ZX1mdW5jdGlvbiBlYShlKXtudWxsIT09ZS5yZXR1cm4mJihabChlLDEpLEpsKGUsMSwwKSl9ZnVuY3Rpb24gbmEoZSl7Zm9yKDtlPT09V2w7KVdsPUJsWy0tSGxdLEJsW0hsXT1udWxsLFFsPUJsWy0tSGxdLEJsW0hsXT1udWxsO2Zvcig7ZT09PVlsOylZbD1xbFstLUtsXSxxbFtLbF09bnVsbCxHbD1xbFstLUtsXSxxbFtLbF09bnVsbCxYbD1xbFstLUtsXSxxbFtLbF09bnVsbH12YXIgdGE9bnVsbCxyYT1udWxsLGxhPSExLGFhPW51bGw7ZnVuY3Rpb24gb2EoZSxuKXt2YXIgdD1Mcyg1LG51bGwsbnVsbCwwKTt0LmVsZW1lbnRUeXBlPVwiREVMRVRFRFwiLHQuc3RhdGVOb2RlPW4sdC5yZXR1cm49ZSxudWxsPT09KG49ZS5kZWxldGlvbnMpPyhlLmRlbGV0aW9ucz1bdF0sZS5mbGFnc3w9MTYpOm4ucHVzaCh0KX1mdW5jdGlvbiB1YShlLG4pe3N3aXRjaChlLnRhZyl7Y2FzZSA1OnZhciB0PWUudHlwZTtyZXR1cm4gbnVsbCE9PShuPTEhPT1uLm5vZGVUeXBlfHx0LnRvTG93ZXJDYXNlKCkhPT1uLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpuKSYmKGUuc3RhdGVOb2RlPW4sdGE9ZSxyYT1zbChuLmZpcnN0Q2hpbGQpLCEwKTtjYXNlIDY6cmV0dXJuIG51bGwhPT0obj1cIlwiPT09ZS5wZW5kaW5nUHJvcHN8fDMhPT1uLm5vZGVUeXBlP251bGw6bikmJihlLnN0YXRlTm9kZT1uLHRhPWUscmE9bnVsbCwhMCk7Y2FzZSAxMzpyZXR1cm4gbnVsbCE9PShuPTghPT1uLm5vZGVUeXBlP251bGw6bikmJih0PW51bGwhPT1ZbD97aWQ6WGwsb3ZlcmZsb3c6R2x9Om51bGwsZS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOm4sdHJlZUNvbnRleHQ6dCxyZXRyeUxhbmU6MTA3Mzc0MTgyNH0sKHQ9THMoMTgsbnVsbCxudWxsLDApKS5zdGF0ZU5vZGU9bix0LnJldHVybj1lLGUuY2hpbGQ9dCx0YT1lLHJhPW51bGwsITApO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGlhKGUpe3JldHVybiAwIT09KDEmZS5tb2RlKSYmMD09PSgxMjgmZS5mbGFncyl9ZnVuY3Rpb24gc2EoZSl7aWYobGEpe3ZhciBuPXJhO2lmKG4pe3ZhciB0PW47aWYoIXVhKGUsbikpe2lmKGlhKGUpKXRocm93IEVycm9yKGEoNDE4KSk7bj1zbCh0Lm5leHRTaWJsaW5nKTt2YXIgcj10YTtuJiZ1YShlLG4pP29hKHIsdCk6KGUuZmxhZ3M9LTQwOTcmZS5mbGFnc3wyLGxhPSExLHRhPWUpfX1lbHNle2lmKGlhKGUpKXRocm93IEVycm9yKGEoNDE4KSk7ZS5mbGFncz0tNDA5NyZlLmZsYWdzfDIsbGE9ITEsdGE9ZX19fWZ1bmN0aW9uIGNhKGUpe2ZvcihlPWUucmV0dXJuO251bGwhPT1lJiY1IT09ZS50YWcmJjMhPT1lLnRhZyYmMTMhPT1lLnRhZzspZT1lLnJldHVybjt0YT1lfWZ1bmN0aW9uIGZhKGUpe2lmKGUhPT10YSlyZXR1cm4hMTtpZighbGEpcmV0dXJuIGNhKGUpLGxhPSEwLCExO3ZhciBuO2lmKChuPTMhPT1lLnRhZykmJiEobj01IT09ZS50YWcpJiYobj1cImhlYWRcIiE9PShuPWUudHlwZSkmJlwiYm9keVwiIT09biYmIXRsKGUudHlwZSxlLm1lbW9pemVkUHJvcHMpKSxuJiYobj1yYSkpe2lmKGlhKGUpKXRocm93IGRhKCksRXJyb3IoYSg0MTgpKTtmb3IoO247KW9hKGUsbiksbj1zbChuLm5leHRTaWJsaW5nKX1pZihjYShlKSwxMz09PWUudGFnKXtpZighKGU9bnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSk/ZS5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKGEoMzE3KSk7ZTp7Zm9yKGU9ZS5uZXh0U2libGluZyxuPTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgdD1lLmRhdGE7aWYoXCIvJFwiPT09dCl7aWYoMD09PW4pe3JhPXNsKGUubmV4dFNpYmxpbmcpO2JyZWFrIGV9bi0tfWVsc2VcIiRcIiE9PXQmJlwiJCFcIiE9PXQmJlwiJD9cIiE9PXR8fG4rK31lPWUubmV4dFNpYmxpbmd9cmE9bnVsbH19ZWxzZSByYT10YT9zbChlLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBkYSgpe2Zvcih2YXIgZT1yYTtlOyllPXNsKGUubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIHBhKCl7cmE9dGE9bnVsbCxsYT0hMX1mdW5jdGlvbiBtYShlKXtudWxsPT09YWE/YWE9W2VdOmFhLnB1c2goZSl9dmFyIGhhPWsuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7ZnVuY3Rpb24gdmEoZSxuKXtpZihlJiZlLmRlZmF1bHRQcm9wcyl7Zm9yKHZhciB0IGluIG49SSh7fSxuKSxlPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PW5bdF0mJihuW3RdPWVbdF0pO3JldHVybiBufXJldHVybiBufXZhciBnYT1FbChudWxsKSx5YT1udWxsLGJhPW51bGwsa2E9bnVsbDtmdW5jdGlvbiB3YSgpe2thPWJhPXlhPW51bGx9ZnVuY3Rpb24gU2EoZSl7dmFyIG49Z2EuY3VycmVudDtfbChnYSksZS5fY3VycmVudFZhbHVlPW59ZnVuY3Rpb24geGEoZSxuLHQpe2Zvcig7bnVsbCE9PWU7KXt2YXIgcj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJm4pIT09bj8oZS5jaGlsZExhbmVzfD1uLG51bGwhPT1yJiYoci5jaGlsZExhbmVzfD1uKSk6bnVsbCE9PXImJihyLmNoaWxkTGFuZXMmbikhPT1uJiYoci5jaGlsZExhbmVzfD1uKSxlPT09dClicmVhaztlPWUucmV0dXJufX1mdW5jdGlvbiBFYShlLG4pe3lhPWUsa2E9YmE9bnVsbCxudWxsIT09KGU9ZS5kZXBlbmRlbmNpZXMpJiZudWxsIT09ZS5maXJzdENvbnRleHQmJigwIT09KGUubGFuZXMmbikmJihrdT0hMCksZS5maXJzdENvbnRleHQ9bnVsbCl9ZnVuY3Rpb24gX2EoZSl7dmFyIG49ZS5fY3VycmVudFZhbHVlO2lmKGthIT09ZSlpZihlPXtjb250ZXh0OmUsbWVtb2l6ZWRWYWx1ZTpuLG5leHQ6bnVsbH0sbnVsbD09PWJhKXtpZihudWxsPT09eWEpdGhyb3cgRXJyb3IoYSgzMDgpKTtiYT1lLHlhLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6ZX19ZWxzZSBiYT1iYS5uZXh0PWU7cmV0dXJuIG59dmFyIENhPW51bGw7ZnVuY3Rpb24gUGEoZSl7bnVsbD09PUNhP0NhPVtlXTpDYS5wdXNoKGUpfWZ1bmN0aW9uIE5hKGUsbix0LHIpe3ZhciBsPW4uaW50ZXJsZWF2ZWQ7cmV0dXJuIG51bGw9PT1sPyh0Lm5leHQ9dCxQYShuKSk6KHQubmV4dD1sLm5leHQsbC5uZXh0PXQpLG4uaW50ZXJsZWF2ZWQ9dCx6YShlLHIpfWZ1bmN0aW9uIHphKGUsbil7ZS5sYW5lc3w9bjt2YXIgdD1lLmFsdGVybmF0ZTtmb3IobnVsbCE9PXQmJih0LmxhbmVzfD1uKSx0PWUsZT1lLnJldHVybjtudWxsIT09ZTspZS5jaGlsZExhbmVzfD1uLG51bGwhPT0odD1lLmFsdGVybmF0ZSkmJih0LmNoaWxkTGFuZXN8PW4pLHQ9ZSxlPWUucmV0dXJuO3JldHVybiAzPT09dC50YWc/dC5zdGF0ZU5vZGU6bnVsbH12YXIgVGE9ITE7ZnVuY3Rpb24gTGEoZSl7ZS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MH0sZWZmZWN0czpudWxsfX1mdW5jdGlvbiBSYShlLG4pe2U9ZS51cGRhdGVRdWV1ZSxuLnVwZGF0ZVF1ZXVlPT09ZSYmKG4udXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZS5maXJzdEJhc2VVcGRhdGUsbGFzdEJhc2VVcGRhdGU6ZS5sYXN0QmFzZVVwZGF0ZSxzaGFyZWQ6ZS5zaGFyZWQsZWZmZWN0czplLmVmZmVjdHN9KX1mdW5jdGlvbiBNYShlLG4pe3JldHVybntldmVudFRpbWU6ZSxsYW5lOm4sdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBGYShlLG4sdCl7dmFyIHI9ZS51cGRhdGVRdWV1ZTtpZihudWxsPT09cilyZXR1cm4gbnVsbDtpZihyPXIuc2hhcmVkLDAhPT0oMiZOaSkpe3ZhciBsPXIucGVuZGluZztyZXR1cm4gbnVsbD09PWw/bi5uZXh0PW46KG4ubmV4dD1sLm5leHQsbC5uZXh0PW4pLHIucGVuZGluZz1uLHphKGUsdCl9cmV0dXJuIG51bGw9PT0obD1yLmludGVybGVhdmVkKT8obi5uZXh0PW4sUGEocikpOihuLm5leHQ9bC5uZXh0LGwubmV4dD1uKSxyLmludGVybGVhdmVkPW4semEoZSx0KX1mdW5jdGlvbiBPYShlLG4sdCl7aWYobnVsbCE9PShuPW4udXBkYXRlUXVldWUpJiYobj1uLnNoYXJlZCwwIT09KDQxOTQyNDAmdCkpKXt2YXIgcj1uLmxhbmVzO3R8PXImPWUucGVuZGluZ0xhbmVzLG4ubGFuZXM9dCxibihlLHQpfX1mdW5jdGlvbiBEYShlLG4pe3ZhciB0PWUudXBkYXRlUXVldWUscj1lLmFsdGVybmF0ZTtpZihudWxsIT09ciYmdD09PShyPXIudXBkYXRlUXVldWUpKXt2YXIgbD1udWxsLGE9bnVsbDtpZihudWxsIT09KHQ9dC5maXJzdEJhc2VVcGRhdGUpKXtkb3t2YXIgbz17ZXZlbnRUaW1lOnQuZXZlbnRUaW1lLGxhbmU6dC5sYW5lLHRhZzp0LnRhZyxwYXlsb2FkOnQucGF5bG9hZCxjYWxsYmFjazp0LmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWE/bD1hPW86YT1hLm5leHQ9byx0PXQubmV4dH13aGlsZShudWxsIT09dCk7bnVsbD09PWE/bD1hPW46YT1hLm5leHQ9bn1lbHNlIGw9YT1uO3JldHVybiB0PXtiYXNlU3RhdGU6ci5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmwsbGFzdEJhc2VVcGRhdGU6YSxzaGFyZWQ6ci5zaGFyZWQsZWZmZWN0czpyLmVmZmVjdHN9LHZvaWQoZS51cGRhdGVRdWV1ZT10KX1udWxsPT09KGU9dC5sYXN0QmFzZVVwZGF0ZSk/dC5maXJzdEJhc2VVcGRhdGU9bjplLm5leHQ9bix0Lmxhc3RCYXNlVXBkYXRlPW59ZnVuY3Rpb24gSWEoZSxuLHQscil7dmFyIGw9ZS51cGRhdGVRdWV1ZTtUYT0hMTt2YXIgYT1sLmZpcnN0QmFzZVVwZGF0ZSxvPWwubGFzdEJhc2VVcGRhdGUsdT1sLnNoYXJlZC5wZW5kaW5nO2lmKG51bGwhPT11KXtsLnNoYXJlZC5wZW5kaW5nPW51bGw7dmFyIGk9dSxzPWkubmV4dDtpLm5leHQ9bnVsbCxudWxsPT09bz9hPXM6by5uZXh0PXMsbz1pO3ZhciBjPWUuYWx0ZXJuYXRlO251bGwhPT1jJiYoKHU9KGM9Yy51cGRhdGVRdWV1ZSkubGFzdEJhc2VVcGRhdGUpIT09byYmKG51bGw9PT11P2MuZmlyc3RCYXNlVXBkYXRlPXM6dS5uZXh0PXMsYy5sYXN0QmFzZVVwZGF0ZT1pKSl9aWYobnVsbCE9PWEpe3ZhciBmPWwuYmFzZVN0YXRlO2ZvcihvPTAsYz1zPWk9bnVsbCx1PWE7Oyl7dmFyIGQ9dS5sYW5lLHA9dS5ldmVudFRpbWU7aWYoKHImZCk9PT1kKXtudWxsIT09YyYmKGM9Yy5uZXh0PXtldmVudFRpbWU6cCxsYW5lOjAsdGFnOnUudGFnLHBheWxvYWQ6dS5wYXlsb2FkLGNhbGxiYWNrOnUuY2FsbGJhY2ssbmV4dDpudWxsfSk7ZTp7dmFyIG09ZSxoPXU7c3dpdGNoKGQ9bixwPXQsaC50YWcpe2Nhc2UgMTppZihcImZ1bmN0aW9uXCI9PT10eXBlb2YobT1oLnBheWxvYWQpKXtmPW0uY2FsbChwLGYsZCk7YnJlYWsgZX1mPW07YnJlYWsgZTtjYXNlIDM6bS5mbGFncz0tNjU1MzcmbS5mbGFnc3wxMjg7Y2FzZSAwOmlmKG51bGw9PT0oZD1cImZ1bmN0aW9uXCI9PT10eXBlb2YobT1oLnBheWxvYWQpP20uY2FsbChwLGYsZCk6bSl8fHZvaWQgMD09PWQpYnJlYWsgZTtmPUkoe30sZixkKTticmVhayBlO2Nhc2UgMjpUYT0hMH19bnVsbCE9PXUuY2FsbGJhY2smJjAhPT11LmxhbmUmJihlLmZsYWdzfD02NCxudWxsPT09KGQ9bC5lZmZlY3RzKT9sLmVmZmVjdHM9W3VdOmQucHVzaCh1KSl9ZWxzZSBwPXtldmVudFRpbWU6cCxsYW5lOmQsdGFnOnUudGFnLHBheWxvYWQ6dS5wYXlsb2FkLGNhbGxiYWNrOnUuY2FsbGJhY2ssbmV4dDpudWxsfSxudWxsPT09Yz8ocz1jPXAsaT1mKTpjPWMubmV4dD1wLG98PWQ7aWYobnVsbD09PSh1PXUubmV4dCkpe2lmKG51bGw9PT0odT1sLnNoYXJlZC5wZW5kaW5nKSlicmVhazt1PShkPXUpLm5leHQsZC5uZXh0PW51bGwsbC5sYXN0QmFzZVVwZGF0ZT1kLGwuc2hhcmVkLnBlbmRpbmc9bnVsbH19aWYobnVsbD09PWMmJihpPWYpLGwuYmFzZVN0YXRlPWksbC5maXJzdEJhc2VVcGRhdGU9cyxsLmxhc3RCYXNlVXBkYXRlPWMsbnVsbCE9PShuPWwuc2hhcmVkLmludGVybGVhdmVkKSl7bD1uO2Rve298PWwubGFuZSxsPWwubmV4dH13aGlsZShsIT09bil9ZWxzZSBudWxsPT09YSYmKGwuc2hhcmVkLmxhbmVzPTApO0RpfD1vLGUubGFuZXM9byxlLm1lbW9pemVkU3RhdGU9Zn19ZnVuY3Rpb24gVWEoZSxuLHQpe2lmKGU9bi5lZmZlY3RzLG4uZWZmZWN0cz1udWxsLG51bGwhPT1lKWZvcihuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl0sbD1yLmNhbGxiYWNrO2lmKG51bGwhPT1sKXtpZihyLmNhbGxiYWNrPW51bGwscj10LFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBsKXRocm93IEVycm9yKGEoMTkxLGwpKTtsLmNhbGwocil9fX12YXIgVmE9KG5ldyByLkNvbXBvbmVudCkucmVmcztmdW5jdGlvbiAkYShlLG4sdCxyKXt0PW51bGw9PT0odD10KHIsbj1lLm1lbW9pemVkU3RhdGUpKXx8dm9pZCAwPT09dD9uOkkoe30sbix0KSxlLm1lbW9pemVkU3RhdGU9dCwwPT09ZS5sYW5lcyYmKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPXQpfXZhciBBYT17aXNNb3VudGVkOmZ1bmN0aW9uKGUpe3JldHVybiEhKGU9ZS5fcmVhY3RJbnRlcm5hbHMpJiZqZShlKT09PWV9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihlLG4sdCl7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1lcygpLGw9bnMoZSksYT1NYShyLGwpO2EucGF5bG9hZD1uLHZvaWQgMCE9PXQmJm51bGwhPT10JiYoYS5jYWxsYmFjaz10KSxudWxsIT09KG49RmEoZSxhLGwpKSYmKHRzKG4sZSxsLHIpLE9hKG4sZSxsKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSxuLHQpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHI9ZXMoKSxsPW5zKGUpLGE9TWEocixsKTthLnRhZz0xLGEucGF5bG9hZD1uLHZvaWQgMCE9PXQmJm51bGwhPT10JiYoYS5jYWxsYmFjaz10KSxudWxsIT09KG49RmEoZSxhLGwpKSYmKHRzKG4sZSxsLHIpLE9hKG4sZSxsKSl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihlLG4pe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHQ9ZXMoKSxyPW5zKGUpLGw9TWEodCxyKTtsLnRhZz0yLHZvaWQgMCE9PW4mJm51bGwhPT1uJiYobC5jYWxsYmFjaz1uKSxudWxsIT09KG49RmEoZSxsLHIpKSYmKHRzKG4sZSxyLHQpLE9hKG4sZSxyKSl9fTtmdW5jdGlvbiBqYShlLG4sdCxyLGwsYSxvKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YoZT1lLnN0YXRlTm9kZSkuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKHIsYSxvKTohbi5wcm90b3R5cGV8fCFuLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudHx8KCFpcih0LHIpfHwhaXIobCxhKSl9ZnVuY3Rpb24gQmEoZSxuLHQpe3ZhciByPSExLGw9UGwsYT1uLmNvbnRleHRUeXBlO3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWE/YT1fYShhKToobD1SbChuKT9UbDpObC5jdXJyZW50LGE9KHI9bnVsbCE9PShyPW4uY29udGV4dFR5cGVzKSYmdm9pZCAwIT09cik/TGwoZSxsKTpQbCksbj1uZXcgbih0LGEpLGUubWVtb2l6ZWRTdGF0ZT1udWxsIT09bi5zdGF0ZSYmdm9pZCAwIT09bi5zdGF0ZT9uLnN0YXRlOm51bGwsbi51cGRhdGVyPUFhLGUuc3RhdGVOb2RlPW4sbi5fcmVhY3RJbnRlcm5hbHM9ZSxyJiYoKGU9ZS5zdGF0ZU5vZGUpLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9bCxlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWEpLG59ZnVuY3Rpb24gSGEoZSxuLHQscil7ZT1uLnN0YXRlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJm4uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh0LHIpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZuLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHQsciksbi5zdGF0ZSE9PWUmJkFhLmVucXVldWVSZXBsYWNlU3RhdGUobixuLnN0YXRlLG51bGwpfWZ1bmN0aW9uIFdhKGUsbix0LHIpe3ZhciBsPWUuc3RhdGVOb2RlO2wucHJvcHM9dCxsLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxsLnJlZnM9VmEsTGEoZSk7dmFyIGE9bi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hP2wuY29udGV4dD1fYShhKTooYT1SbChuKT9UbDpObC5jdXJyZW50LGwuY29udGV4dD1MbChlLGEpKSxsLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxcImZ1bmN0aW9uXCI9PT10eXBlb2YoYT1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykmJigkYShlLG4sYSx0KSxsLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZSksXCJmdW5jdGlvblwiPT09dHlwZW9mIG4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgbC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGwuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGwuY29tcG9uZW50V2lsbE1vdW50fHwobj1sLnN0YXRlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBsLmNvbXBvbmVudFdpbGxNb3VudCYmbC5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgbC5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZsLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxuIT09bC5zdGF0ZSYmQWEuZW5xdWV1ZVJlcGxhY2VTdGF0ZShsLGwuc3RhdGUsbnVsbCksSWEoZSx0LGwsciksbC5zdGF0ZT1lLm1lbW9pemVkU3RhdGUpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBsLmNvbXBvbmVudERpZE1vdW50JiYoZS5mbGFnc3w9NDE5NDMwOCl9ZnVuY3Rpb24gUWEoZSxuLHQpe2lmKG51bGwhPT0oZT10LnJlZikmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlJiZcIm9iamVjdFwiIT09dHlwZW9mIGUpe2lmKHQuX293bmVyKXtpZih0PXQuX293bmVyKXtpZigxIT09dC50YWcpdGhyb3cgRXJyb3IoYSgzMDkpKTt2YXIgcj10LnN0YXRlTm9kZX1pZighcil0aHJvdyBFcnJvcihhKDE0NyxlKSk7dmFyIGw9cixvPVwiXCIrZTtyZXR1cm4gbnVsbCE9PW4mJm51bGwhPT1uLnJlZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIG4ucmVmJiZuLnJlZi5fc3RyaW5nUmVmPT09bz9uLnJlZjoobj1mdW5jdGlvbihlKXt2YXIgbj1sLnJlZnM7bj09PVZhJiYobj1sLnJlZnM9e30pLG51bGw9PT1lP2RlbGV0ZSBuW29dOm5bb109ZX0sbi5fc3RyaW5nUmVmPW8sbil9aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBlKXRocm93IEVycm9yKGEoMjg0KSk7aWYoIXQuX293bmVyKXRocm93IEVycm9yKGEoMjkwLGUpKX1yZXR1cm4gZX1mdW5jdGlvbiBxYShlLG4pe3Rocm93IGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pLEVycm9yKGEoMzEsXCJbb2JqZWN0IE9iamVjdF1cIj09PWU/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhuKS5qb2luKFwiLCBcIikrXCJ9XCI6ZSkpfWZ1bmN0aW9uIEthKGUpe3JldHVybigwLGUuX2luaXQpKGUuX3BheWxvYWQpfWZ1bmN0aW9uIFlhKGUpe2Z1bmN0aW9uIG4obix0KXtpZihlKXt2YXIgcj1uLmRlbGV0aW9ucztudWxsPT09cj8obi5kZWxldGlvbnM9W3RdLG4uZmxhZ3N8PTE2KTpyLnB1c2godCl9fWZ1bmN0aW9uIHQodCxyKXtpZighZSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1yOyluKHQscikscj1yLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gcihlLG4pe2ZvcihlPW5ldyBNYXA7bnVsbCE9PW47KW51bGwhPT1uLmtleT9lLnNldChuLmtleSxuKTplLnNldChuLmluZGV4LG4pLG49bi5zaWJsaW5nO3JldHVybiBlfWZ1bmN0aW9uIGwoZSxuKXtyZXR1cm4oZT1NcyhlLG4pKS5pbmRleD0wLGUuc2libGluZz1udWxsLGV9ZnVuY3Rpb24gbyhuLHQscil7cmV0dXJuIG4uaW5kZXg9cixlP251bGwhPT0ocj1uLmFsdGVybmF0ZSk/KHI9ci5pbmRleCk8dD8obi5mbGFnc3w9Mix0KTpyOihuLmZsYWdzfD0yLHQpOihuLmZsYWdzfD0xMDQ4NTc2LHQpfWZ1bmN0aW9uIHUobil7cmV0dXJuIGUmJm51bGw9PT1uLmFsdGVybmF0ZSYmKG4uZmxhZ3N8PTIpLG59ZnVuY3Rpb24gaShlLG4sdCxyKXtyZXR1cm4gbnVsbD09PW58fDYhPT1uLnRhZz8oKG49SXModCxlLm1vZGUscikpLnJldHVybj1lLG4pOigobj1sKG4sdCkpLnJldHVybj1lLG4pfWZ1bmN0aW9uIHMoZSxuLHQscil7dmFyIGE9dC50eXBlO3JldHVybiBhPT09eD9mKGUsbix0LnByb3BzLmNoaWxkcmVuLHIsdC5rZXkpOm51bGwhPT1uJiYobi5lbGVtZW50VHlwZT09PWF8fFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1SJiZLYShhKT09PW4udHlwZSk/KChyPWwobix0LnByb3BzKSkucmVmPVFhKGUsbix0KSxyLnJldHVybj1lLHIpOigocj1Gcyh0LnR5cGUsdC5rZXksdC5wcm9wcyxudWxsLGUubW9kZSxyKSkucmVmPVFhKGUsbix0KSxyLnJldHVybj1lLHIpfWZ1bmN0aW9uIGMoZSxuLHQscil7cmV0dXJuIG51bGw9PT1ufHw0IT09bi50YWd8fG4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT10LmNvbnRhaW5lckluZm98fG4uc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09dC5pbXBsZW1lbnRhdGlvbj8oKG49VXModCxlLm1vZGUscikpLnJldHVybj1lLG4pOigobj1sKG4sdC5jaGlsZHJlbnx8W10pKS5yZXR1cm49ZSxuKX1mdW5jdGlvbiBmKGUsbix0LHIsYSl7cmV0dXJuIG51bGw9PT1ufHw3IT09bi50YWc/KChuPU9zKHQsZS5tb2RlLHIsYSkpLnJldHVybj1lLG4pOigobj1sKG4sdCkpLnJldHVybj1lLG4pfWZ1bmN0aW9uIGQoZSxuLHQpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgbiYmXCJcIiE9PW58fFwibnVtYmVyXCI9PT10eXBlb2YgbilyZXR1cm4obj1JcyhcIlwiK24sZS5tb2RlLHQpKS5yZXR1cm49ZSxuO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgbiYmbnVsbCE9PW4pe3N3aXRjaChuLiQkdHlwZW9mKXtjYXNlIHc6cmV0dXJuKHQ9RnMobi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUsdCkpLnJlZj1RYShlLG51bGwsbiksdC5yZXR1cm49ZSx0O2Nhc2UgUzpyZXR1cm4obj1VcyhuLGUubW9kZSx0KSkucmV0dXJuPWUsbjtjYXNlIFI6cmV0dXJuIGQoZSwoMCxuLl9pbml0KShuLl9wYXlsb2FkKSx0KX1pZihuZShuKXx8TyhuKSlyZXR1cm4obj1PcyhuLGUubW9kZSx0LG51bGwpKS5yZXR1cm49ZSxuO3FhKGUsbil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcChlLG4sdCxyKXt2YXIgbD1udWxsIT09bj9uLmtleTpudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgdCYmXCJcIiE9PXR8fFwibnVtYmVyXCI9PT10eXBlb2YgdClyZXR1cm4gbnVsbCE9PWw/bnVsbDppKGUsbixcIlwiK3Qscik7aWYoXCJvYmplY3RcIj09PXR5cGVvZiB0JiZudWxsIT09dCl7c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgdzpyZXR1cm4gdC5rZXk9PT1sP3MoZSxuLHQscik6bnVsbDtjYXNlIFM6cmV0dXJuIHQua2V5PT09bD9jKGUsbix0LHIpOm51bGw7Y2FzZSBSOnJldHVybiBwKGUsbiwobD10Ll9pbml0KSh0Ll9wYXlsb2FkKSxyKX1pZihuZSh0KXx8Tyh0KSlyZXR1cm4gbnVsbCE9PWw/bnVsbDpmKGUsbix0LHIsbnVsbCk7cWEoZSx0KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBtKGUsbix0LHIsbCl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiByJiZcIlwiIT09cnx8XCJudW1iZXJcIj09PXR5cGVvZiByKXJldHVybiBpKG4sZT1lLmdldCh0KXx8bnVsbCxcIlwiK3IsbCk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiByJiZudWxsIT09cil7c3dpdGNoKHIuJCR0eXBlb2Ype2Nhc2UgdzpyZXR1cm4gcyhuLGU9ZS5nZXQobnVsbD09PXIua2V5P3Q6ci5rZXkpfHxudWxsLHIsbCk7Y2FzZSBTOnJldHVybiBjKG4sZT1lLmdldChudWxsPT09ci5rZXk/dDpyLmtleSl8fG51bGwscixsKTtjYXNlIFI6cmV0dXJuIG0oZSxuLHQsKDAsci5faW5pdCkoci5fcGF5bG9hZCksbCl9aWYobmUocil8fE8ocikpcmV0dXJuIGYobixlPWUuZ2V0KHQpfHxudWxsLHIsbCxudWxsKTtxYShuLHIpfXJldHVybiBudWxsfWZ1bmN0aW9uIGgobCxhLHUsaSl7Zm9yKHZhciBzPW51bGwsYz1udWxsLGY9YSxoPWE9MCx2PW51bGw7bnVsbCE9PWYmJmg8dS5sZW5ndGg7aCsrKXtmLmluZGV4Pmg/KHY9ZixmPW51bGwpOnY9Zi5zaWJsaW5nO3ZhciBnPXAobCxmLHVbaF0saSk7aWYobnVsbD09PWcpe251bGw9PT1mJiYoZj12KTticmVha31lJiZmJiZudWxsPT09Zy5hbHRlcm5hdGUmJm4obCxmKSxhPW8oZyxhLGgpLG51bGw9PT1jP3M9ZzpjLnNpYmxpbmc9ZyxjPWcsZj12fWlmKGg9PT11Lmxlbmd0aClyZXR1cm4gdChsLGYpLGxhJiZabChsLGgpLHM7aWYobnVsbD09PWYpe2Zvcig7aDx1Lmxlbmd0aDtoKyspbnVsbCE9PShmPWQobCx1W2hdLGkpKSYmKGE9byhmLGEsaCksbnVsbD09PWM/cz1mOmMuc2libGluZz1mLGM9Zik7cmV0dXJuIGxhJiZabChsLGgpLHN9Zm9yKGY9cihsLGYpO2g8dS5sZW5ndGg7aCsrKW51bGwhPT0odj1tKGYsbCxoLHVbaF0saSkpJiYoZSYmbnVsbCE9PXYuYWx0ZXJuYXRlJiZmLmRlbGV0ZShudWxsPT09di5rZXk/aDp2LmtleSksYT1vKHYsYSxoKSxudWxsPT09Yz9zPXY6Yy5zaWJsaW5nPXYsYz12KTtyZXR1cm4gZSYmZi5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gbihsLGUpfSkpLGxhJiZabChsLGgpLHN9ZnVuY3Rpb24gdihsLHUsaSxzKXt2YXIgYz1PKGkpO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjKXRocm93IEVycm9yKGEoMTUwKSk7aWYobnVsbD09KGk9Yy5jYWxsKGkpKSl0aHJvdyBFcnJvcihhKDE1MSkpO2Zvcih2YXIgZj1jPW51bGwsaD11LHY9dT0wLGc9bnVsbCx5PWkubmV4dCgpO251bGwhPT1oJiYheS5kb25lO3YrKyx5PWkubmV4dCgpKXtoLmluZGV4PnY/KGc9aCxoPW51bGwpOmc9aC5zaWJsaW5nO3ZhciBiPXAobCxoLHkudmFsdWUscyk7aWYobnVsbD09PWIpe251bGw9PT1oJiYoaD1nKTticmVha31lJiZoJiZudWxsPT09Yi5hbHRlcm5hdGUmJm4obCxoKSx1PW8oYix1LHYpLG51bGw9PT1mP2M9YjpmLnNpYmxpbmc9YixmPWIsaD1nfWlmKHkuZG9uZSlyZXR1cm4gdChsLGgpLGxhJiZabChsLHYpLGM7aWYobnVsbD09PWgpe2Zvcig7IXkuZG9uZTt2KysseT1pLm5leHQoKSludWxsIT09KHk9ZChsLHkudmFsdWUscykpJiYodT1vKHksdSx2KSxudWxsPT09Zj9jPXk6Zi5zaWJsaW5nPXksZj15KTtyZXR1cm4gbGEmJlpsKGwsdiksY31mb3IoaD1yKGwsaCk7IXkuZG9uZTt2KysseT1pLm5leHQoKSludWxsIT09KHk9bShoLGwsdix5LnZhbHVlLHMpKSYmKGUmJm51bGwhPT15LmFsdGVybmF0ZSYmaC5kZWxldGUobnVsbD09PXkua2V5P3Y6eS5rZXkpLHU9byh5LHUsdiksbnVsbD09PWY/Yz15OmYuc2libGluZz15LGY9eSk7cmV0dXJuIGUmJmguZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4obCxlKX0pKSxsYSYmWmwobCx2KSxjfXJldHVybiBmdW5jdGlvbiBlKHIsYSxvLGkpe2lmKFwib2JqZWN0XCI9PT10eXBlb2YgbyYmbnVsbCE9PW8mJm8udHlwZT09PXgmJm51bGw9PT1vLmtleSYmKG89by5wcm9wcy5jaGlsZHJlbiksXCJvYmplY3RcIj09PXR5cGVvZiBvJiZudWxsIT09byl7c3dpdGNoKG8uJCR0eXBlb2Ype2Nhc2UgdzplOntmb3IodmFyIHM9by5rZXksYz1hO251bGwhPT1jOyl7aWYoYy5rZXk9PT1zKXtpZigocz1vLnR5cGUpPT09eCl7aWYoNz09PWMudGFnKXt0KHIsYy5zaWJsaW5nKSwoYT1sKGMsby5wcm9wcy5jaGlsZHJlbikpLnJldHVybj1yLHI9YTticmVhayBlfX1lbHNlIGlmKGMuZWxlbWVudFR5cGU9PT1zfHxcIm9iamVjdFwiPT09dHlwZW9mIHMmJm51bGwhPT1zJiZzLiQkdHlwZW9mPT09UiYmS2Eocyk9PT1jLnR5cGUpe3QocixjLnNpYmxpbmcpLChhPWwoYyxvLnByb3BzKSkucmVmPVFhKHIsYyxvKSxhLnJldHVybj1yLHI9YTticmVhayBlfXQocixjKTticmVha31uKHIsYyksYz1jLnNpYmxpbmd9by50eXBlPT09eD8oKGE9T3Moby5wcm9wcy5jaGlsZHJlbixyLm1vZGUsaSxvLmtleSkpLnJldHVybj1yLHI9YSk6KChpPUZzKG8udHlwZSxvLmtleSxvLnByb3BzLG51bGwsci5tb2RlLGkpKS5yZWY9UWEocixhLG8pLGkucmV0dXJuPXIscj1pKX1yZXR1cm4gdShyKTtjYXNlIFM6ZTp7Zm9yKGM9by5rZXk7bnVsbCE9PWE7KXtpZihhLmtleT09PWMpe2lmKDQ9PT1hLnRhZyYmYS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PW8uY29udGFpbmVySW5mbyYmYS5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1vLmltcGxlbWVudGF0aW9uKXt0KHIsYS5zaWJsaW5nKSwoYT1sKGEsby5jaGlsZHJlbnx8W10pKS5yZXR1cm49cixyPWE7YnJlYWsgZX10KHIsYSk7YnJlYWt9bihyLGEpLGE9YS5zaWJsaW5nfShhPVVzKG8sci5tb2RlLGkpKS5yZXR1cm49cixyPWF9cmV0dXJuIHUocik7Y2FzZSBSOnJldHVybiBlKHIsYSwoYz1vLl9pbml0KShvLl9wYXlsb2FkKSxpKX1pZihuZShvKSlyZXR1cm4gaChyLGEsbyxpKTtpZihPKG8pKXJldHVybiB2KHIsYSxvLGkpO3FhKHIsbyl9cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBvJiZcIlwiIT09b3x8XCJudW1iZXJcIj09PXR5cGVvZiBvPyhvPVwiXCIrbyxudWxsIT09YSYmNj09PWEudGFnPyh0KHIsYS5zaWJsaW5nKSwoYT1sKGEsbykpLnJldHVybj1yLHI9YSk6KHQocixhKSwoYT1JcyhvLHIubW9kZSxpKSkucmV0dXJuPXIscj1hKSx1KHIpKTp0KHIsYSl9fXZhciBYYT1ZYSghMCksR2E9WWEoITEpLFphPXt9LEphPUVsKFphKSxlbz1FbChaYSksbm89RWwoWmEpO2Z1bmN0aW9uIHRvKGUpe2lmKGU9PT1aYSl0aHJvdyBFcnJvcihhKDE3NCkpO3JldHVybiBlfWZ1bmN0aW9uIHJvKGUsbil7c3dpdGNoKENsKG5vLG4pLENsKGVvLGUpLENsKEphLFphKSxlPW4ubm9kZVR5cGUpe2Nhc2UgOTpjYXNlIDExOm49KG49bi5kb2N1bWVudEVsZW1lbnQpP24ubmFtZXNwYWNlVVJJOmllKG51bGwsXCJcIik7YnJlYWs7ZGVmYXVsdDpuPWllKG49KGU9OD09PWU/bi5wYXJlbnROb2RlOm4pLm5hbWVzcGFjZVVSSXx8bnVsbCxlPWUudGFnTmFtZSl9X2woSmEpLENsKEphLG4pfWZ1bmN0aW9uIGxvKCl7X2woSmEpLF9sKGVvKSxfbChubyl9ZnVuY3Rpb24gYW8oZSl7dG8obm8uY3VycmVudCk7dmFyIG49dG8oSmEuY3VycmVudCksdD1pZShuLGUudHlwZSk7biE9PXQmJihDbChlbyxlKSxDbChKYSx0KSl9ZnVuY3Rpb24gb28oZSl7ZW8uY3VycmVudD09PWUmJihfbChKYSksX2woZW8pKX12YXIgdW89RWwoMCk7ZnVuY3Rpb24gaW8oZSl7Zm9yKHZhciBuPWU7bnVsbCE9PW47KXtpZigxMz09PW4udGFnKXt2YXIgdD1uLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXQmJihudWxsPT09KHQ9dC5kZWh5ZHJhdGVkKXx8XCIkP1wiPT09dC5kYXRhfHxcIiQhXCI9PT10LmRhdGEpKXJldHVybiBufWVsc2UgaWYoMTk9PT1uLnRhZyYmdm9pZCAwIT09bi5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyKXtpZigwIT09KDEyOCZuLmZsYWdzKSlyZXR1cm4gbn1lbHNlIGlmKG51bGwhPT1uLmNoaWxkKXtuLmNoaWxkLnJldHVybj1uLG49bi5jaGlsZDtjb250aW51ZX1pZihuPT09ZSlicmVhaztmb3IoO251bGw9PT1uLnNpYmxpbmc7KXtpZihudWxsPT09bi5yZXR1cm58fG4ucmV0dXJuPT09ZSlyZXR1cm4gbnVsbDtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIHNvPVtdO2Z1bmN0aW9uIGNvKCl7Zm9yKHZhciBlPTA7ZTxzby5sZW5ndGg7ZSsrKXNvW2VdLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PW51bGw7c28ubGVuZ3RoPTB9dmFyIGZvPWsuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixwbz1rLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLG1vPTAsaG89bnVsbCx2bz1udWxsLGdvPW51bGwseW89ITEsYm89ITEsa289MCx3bz0wO2Z1bmN0aW9uIFNvKCl7dGhyb3cgRXJyb3IoYSgzMjEpKX1mdW5jdGlvbiB4byhlLG4pe2lmKG51bGw9PT1uKXJldHVybiExO2Zvcih2YXIgdD0wO3Q8bi5sZW5ndGgmJnQ8ZS5sZW5ndGg7dCsrKWlmKCF1cihlW3RdLG5bdF0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEVvKGUsbix0LHIsbCxvKXtpZihtbz1vLGhvPW4sbi5tZW1vaXplZFN0YXRlPW51bGwsbi51cGRhdGVRdWV1ZT1udWxsLG4ubGFuZXM9MCxmby5jdXJyZW50PW51bGw9PT1lfHxudWxsPT09ZS5tZW1vaXplZFN0YXRlP3V1Oml1LGU9dChyLGwpLGJvKXtvPTA7ZG97aWYoYm89ITEsa289MCwyNTw9byl0aHJvdyBFcnJvcihhKDMwMSkpO28rPTEsZ289dm89bnVsbCxuLnVwZGF0ZVF1ZXVlPW51bGwsZm8uY3VycmVudD1zdSxlPXQocixsKX13aGlsZShibyl9aWYoZm8uY3VycmVudD1vdSxuPW51bGwhPT12byYmbnVsbCE9PXZvLm5leHQsbW89MCxnbz12bz1obz1udWxsLHlvPSExLG4pdGhyb3cgRXJyb3IoYSgzMDApKTtyZXR1cm4gZX1mdW5jdGlvbiBfbygpe3ZhciBlPTAhPT1rbztyZXR1cm4ga289MCxlfWZ1bmN0aW9uIENvKCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIG51bGw9PT1nbz9oby5tZW1vaXplZFN0YXRlPWdvPWU6Z289Z28ubmV4dD1lLGdvfWZ1bmN0aW9uIFBvKCl7aWYobnVsbD09PXZvKXt2YXIgZT1oby5hbHRlcm5hdGU7ZT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGU9dm8ubmV4dDt2YXIgbj1udWxsPT09Z28/aG8ubWVtb2l6ZWRTdGF0ZTpnby5uZXh0O2lmKG51bGwhPT1uKWdvPW4sdm89ZTtlbHNle2lmKG51bGw9PT1lKXRocm93IEVycm9yKGEoMzEwKSk7ZT17bWVtb2l6ZWRTdGF0ZToodm89ZSkubWVtb2l6ZWRTdGF0ZSxiYXNlU3RhdGU6dm8uYmFzZVN0YXRlLGJhc2VRdWV1ZTp2by5iYXNlUXVldWUscXVldWU6dm8ucXVldWUsbmV4dDpudWxsfSxudWxsPT09Z28/aG8ubWVtb2l6ZWRTdGF0ZT1nbz1lOmdvPWdvLm5leHQ9ZX1yZXR1cm4gZ299ZnVuY3Rpb24gTm8oZSxuKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbj9uKGUpOm59ZnVuY3Rpb24gem8oZSl7dmFyIG49UG8oKSx0PW4ucXVldWU7aWYobnVsbD09PXQpdGhyb3cgRXJyb3IoYSgzMTEpKTt0Lmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj12byxsPXIuYmFzZVF1ZXVlLG89dC5wZW5kaW5nO2lmKG51bGwhPT1vKXtpZihudWxsIT09bCl7dmFyIHU9bC5uZXh0O2wubmV4dD1vLm5leHQsby5uZXh0PXV9ci5iYXNlUXVldWU9bD1vLHQucGVuZGluZz1udWxsfWlmKG51bGwhPT1sKXtvPWwubmV4dCxyPXIuYmFzZVN0YXRlO3ZhciBpPXU9bnVsbCxzPW51bGwsYz1vO2Rve3ZhciBmPWMubGFuZTtpZigobW8mZik9PT1mKW51bGwhPT1zJiYocz1zLm5leHQ9e2xhbmU6MCxhY3Rpb246Yy5hY3Rpb24saGFzRWFnZXJTdGF0ZTpjLmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTpjLmVhZ2VyU3RhdGUsbmV4dDpudWxsfSkscj1jLmhhc0VhZ2VyU3RhdGU/Yy5lYWdlclN0YXRlOmUocixjLmFjdGlvbik7ZWxzZXt2YXIgZD17bGFuZTpmLGFjdGlvbjpjLmFjdGlvbixoYXNFYWdlclN0YXRlOmMuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOmMuZWFnZXJTdGF0ZSxuZXh0Om51bGx9O251bGw9PT1zPyhpPXM9ZCx1PXIpOnM9cy5uZXh0PWQsaG8ubGFuZXN8PWYsRGl8PWZ9Yz1jLm5leHR9d2hpbGUobnVsbCE9PWMmJmMhPT1vKTtudWxsPT09cz91PXI6cy5uZXh0PWksdXIocixuLm1lbW9pemVkU3RhdGUpfHwoa3U9ITApLG4ubWVtb2l6ZWRTdGF0ZT1yLG4uYmFzZVN0YXRlPXUsbi5iYXNlUXVldWU9cyx0Lmxhc3RSZW5kZXJlZFN0YXRlPXJ9aWYobnVsbCE9PShlPXQuaW50ZXJsZWF2ZWQpKXtsPWU7ZG97bz1sLmxhbmUsaG8ubGFuZXN8PW8sRGl8PW8sbD1sLm5leHR9d2hpbGUobCE9PWUpfWVsc2UgbnVsbD09PWwmJih0LmxhbmVzPTApO3JldHVybltuLm1lbW9pemVkU3RhdGUsdC5kaXNwYXRjaF19ZnVuY3Rpb24gVG8oZSl7dmFyIG49UG8oKSx0PW4ucXVldWU7aWYobnVsbD09PXQpdGhyb3cgRXJyb3IoYSgzMTEpKTt0Lmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj10LmRpc3BhdGNoLGw9dC5wZW5kaW5nLG89bi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1sKXt0LnBlbmRpbmc9bnVsbDt2YXIgdT1sPWwubmV4dDtkb3tvPWUobyx1LmFjdGlvbiksdT11Lm5leHR9d2hpbGUodSE9PWwpO3VyKG8sbi5tZW1vaXplZFN0YXRlKXx8KGt1PSEwKSxuLm1lbW9pemVkU3RhdGU9byxudWxsPT09bi5iYXNlUXVldWUmJihuLmJhc2VTdGF0ZT1vKSx0Lmxhc3RSZW5kZXJlZFN0YXRlPW99cmV0dXJuW28scl19ZnVuY3Rpb24gTG8oKXt9ZnVuY3Rpb24gUm8oZSxuKXt2YXIgdD1obyxyPVBvKCksbD1uKCksbz0hdXIoci5tZW1vaXplZFN0YXRlLGwpO2lmKG8mJihyLm1lbW9pemVkU3RhdGU9bCxrdT0hMCkscj1yLnF1ZXVlLEhvKE9vLmJpbmQobnVsbCx0LHIsZSksW2VdKSxyLmdldFNuYXBzaG90IT09bnx8b3x8bnVsbCE9PWdvJiYxJmdvLm1lbW9pemVkU3RhdGUudGFnKXtpZih0LmZsYWdzfD0yMDQ4LFZvKDksRm8uYmluZChudWxsLHQscixsLG4pLHZvaWQgMCxudWxsKSxudWxsPT09emkpdGhyb3cgRXJyb3IoYSgzNDkpKTswIT09KDMwJm1vKXx8TW8odCxuLGwpfXJldHVybiBsfWZ1bmN0aW9uIE1vKGUsbix0KXtlLmZsYWdzfD0xNjM4NCxlPXtnZXRTbmFwc2hvdDpuLHZhbHVlOnR9LG51bGw9PT0obj1oby51cGRhdGVRdWV1ZSk/KG49e2xhc3RFZmZlY3Q6bnVsbCxzdG9yZXM6bnVsbH0saG8udXBkYXRlUXVldWU9bixuLnN0b3Jlcz1bZV0pOm51bGw9PT0odD1uLnN0b3Jlcyk/bi5zdG9yZXM9W2VdOnQucHVzaChlKX1mdW5jdGlvbiBGbyhlLG4sdCxyKXtuLnZhbHVlPXQsbi5nZXRTbmFwc2hvdD1yLERvKG4pJiZJbyhlKX1mdW5jdGlvbiBPbyhlLG4sdCl7cmV0dXJuIHQoKGZ1bmN0aW9uKCl7RG8obikmJklvKGUpfSkpfWZ1bmN0aW9uIERvKGUpe3ZhciBuPWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgdD1uKCk7cmV0dXJuIXVyKGUsdCl9Y2F0Y2gocil7cmV0dXJuITB9fWZ1bmN0aW9uIElvKGUpe3ZhciBuPXphKGUsMSk7bnVsbCE9PW4mJnRzKG4sZSwxLC0xKX1mdW5jdGlvbiBVbyhlKXt2YXIgbj1DbygpO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBlJiYoZT1lKCkpLG4ubWVtb2l6ZWRTdGF0ZT1uLmJhc2VTdGF0ZT1lLGU9e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOk5vLGxhc3RSZW5kZXJlZFN0YXRlOmV9LG4ucXVldWU9ZSxlPWUuZGlzcGF0Y2g9dHUuYmluZChudWxsLGhvLGUpLFtuLm1lbW9pemVkU3RhdGUsZV19ZnVuY3Rpb24gVm8oZSxuLHQscil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTpuLGRlc3Ryb3k6dCxkZXBzOnIsbmV4dDpudWxsfSxudWxsPT09KG49aG8udXBkYXRlUXVldWUpPyhuPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LGhvLnVwZGF0ZVF1ZXVlPW4sbi5sYXN0RWZmZWN0PWUubmV4dD1lKTpudWxsPT09KHQ9bi5sYXN0RWZmZWN0KT9uLmxhc3RFZmZlY3Q9ZS5uZXh0PWU6KHI9dC5uZXh0LHQubmV4dD1lLGUubmV4dD1yLG4ubGFzdEVmZmVjdD1lKSxlfWZ1bmN0aW9uICRvKCl7cmV0dXJuIFBvKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBBbyhlLG4sdCxyKXt2YXIgbD1DbygpO2hvLmZsYWdzfD1lLGwubWVtb2l6ZWRTdGF0ZT1WbygxfG4sdCx2b2lkIDAsdm9pZCAwPT09cj9udWxsOnIpfWZ1bmN0aW9uIGpvKGUsbix0LHIpe3ZhciBsPVBvKCk7cj12b2lkIDA9PT1yP251bGw6cjt2YXIgYT12b2lkIDA7aWYobnVsbCE9PXZvKXt2YXIgbz12by5tZW1vaXplZFN0YXRlO2lmKGE9by5kZXN0cm95LG51bGwhPT1yJiZ4byhyLG8uZGVwcykpcmV0dXJuIHZvaWQobC5tZW1vaXplZFN0YXRlPVZvKG4sdCxhLHIpKX1oby5mbGFnc3w9ZSxsLm1lbW9pemVkU3RhdGU9Vm8oMXxuLHQsYSxyKX1mdW5jdGlvbiBCbyhlLG4pe3JldHVybiBBbyg4MzkwNjU2LDgsZSxuKX1mdW5jdGlvbiBIbyhlLG4pe3JldHVybiBqbygyMDQ4LDgsZSxuKX1mdW5jdGlvbiBXbyhlLG4pe3JldHVybiBqbyg0LDIsZSxuKX1mdW5jdGlvbiBRbyhlLG4pe3JldHVybiBqbyg0LDQsZSxuKX1mdW5jdGlvbiBxbyhlLG4pe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBuPyhlPWUoKSxuKGUpLGZ1bmN0aW9uKCl7bihudWxsKX0pOm51bGwhPT1uJiZ2b2lkIDAhPT1uPyhlPWUoKSxuLmN1cnJlbnQ9ZSxmdW5jdGlvbigpe24uY3VycmVudD1udWxsfSk6dm9pZCAwfWZ1bmN0aW9uIEtvKGUsbix0KXtyZXR1cm4gdD1udWxsIT09dCYmdm9pZCAwIT09dD90LmNvbmNhdChbZV0pOm51bGwsam8oNCw0LHFvLmJpbmQobnVsbCxuLGUpLHQpfWZ1bmN0aW9uIFlvKCl7fWZ1bmN0aW9uIFhvKGUsbil7dmFyIHQ9UG8oKTtuPXZvaWQgMD09PW4/bnVsbDpuO3ZhciByPXQubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXImJm51bGwhPT1uJiZ4byhuLHJbMV0pP3JbMF06KHQubWVtb2l6ZWRTdGF0ZT1bZSxuXSxlKX1mdW5jdGlvbiBHbyhlLG4pe3ZhciB0PVBvKCk7bj12b2lkIDA9PT1uP251bGw6bjt2YXIgcj10Lm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGwhPT1yJiZudWxsIT09biYmeG8obixyWzFdKT9yWzBdOihlPWUoKSx0Lm1lbW9pemVkU3RhdGU9W2Usbl0sZSl9ZnVuY3Rpb24gWm8oZSxuLHQpe3JldHVybiAwPT09KDIxJm1vKT8oZS5iYXNlU3RhdGUmJihlLmJhc2VTdGF0ZT0hMSxrdT0hMCksZS5tZW1vaXplZFN0YXRlPXQpOih1cih0LG4pfHwodD12bigpLGhvLmxhbmVzfD10LERpfD10LGUuYmFzZVN0YXRlPSEwKSxuKX1mdW5jdGlvbiBKbyhlLG4pe3ZhciB0PWtuO2tuPTAhPT10JiY0PnQ/dDo0LGUoITApO3ZhciByPXBvLnRyYW5zaXRpb247cG8udHJhbnNpdGlvbj17fTt0cnl7ZSghMSksbigpfWZpbmFsbHl7a249dCxwby50cmFuc2l0aW9uPXJ9fWZ1bmN0aW9uIGV1KCl7cmV0dXJuIFBvKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBudShlLG4sdCl7dmFyIHI9bnMoZSk7aWYodD17bGFuZTpyLGFjdGlvbjp0LGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0scnUoZSkpbHUobix0KTtlbHNlIGlmKG51bGwhPT0odD1OYShlLG4sdCxyKSkpe3RzKHQsZSxyLGVzKCkpLGF1KHQsbixyKX19ZnVuY3Rpb24gdHUoZSxuLHQpe3ZhciByPW5zKGUpLGw9e2xhbmU6cixhY3Rpb246dCxoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9O2lmKHJ1KGUpKWx1KG4sbCk7ZWxzZXt2YXIgYT1lLmFsdGVybmF0ZTtpZigwPT09ZS5sYW5lcyYmKG51bGw9PT1hfHwwPT09YS5sYW5lcykmJm51bGwhPT0oYT1uLmxhc3RSZW5kZXJlZFJlZHVjZXIpKXRyeXt2YXIgbz1uLmxhc3RSZW5kZXJlZFN0YXRlLHU9YShvLHQpO2lmKGwuaGFzRWFnZXJTdGF0ZT0hMCxsLmVhZ2VyU3RhdGU9dSx1cih1LG8pKXt2YXIgaT1uLmludGVybGVhdmVkO3JldHVybiBudWxsPT09aT8obC5uZXh0PWwsUGEobikpOihsLm5leHQ9aS5uZXh0LGkubmV4dD1sKSx2b2lkKG4uaW50ZXJsZWF2ZWQ9bCl9fWNhdGNoKHMpe31udWxsIT09KHQ9TmEoZSxuLGwscikpJiYodHModCxlLHIsbD1lcygpKSxhdSh0LG4scikpfX1mdW5jdGlvbiBydShlKXt2YXIgbj1lLmFsdGVybmF0ZTtyZXR1cm4gZT09PWhvfHxudWxsIT09biYmbj09PWhvfWZ1bmN0aW9uIGx1KGUsbil7Ym89eW89ITA7dmFyIHQ9ZS5wZW5kaW5nO251bGw9PT10P24ubmV4dD1uOihuLm5leHQ9dC5uZXh0LHQubmV4dD1uKSxlLnBlbmRpbmc9bn1mdW5jdGlvbiBhdShlLG4sdCl7aWYoMCE9PSg0MTk0MjQwJnQpKXt2YXIgcj1uLmxhbmVzO3R8PXImPWUucGVuZGluZ0xhbmVzLG4ubGFuZXM9dCxibihlLHQpfX12YXIgb3U9e3JlYWRDb250ZXh0Ol9hLHVzZUNhbGxiYWNrOlNvLHVzZUNvbnRleHQ6U28sdXNlRWZmZWN0OlNvLHVzZUltcGVyYXRpdmVIYW5kbGU6U28sdXNlSW5zZXJ0aW9uRWZmZWN0OlNvLHVzZUxheW91dEVmZmVjdDpTbyx1c2VNZW1vOlNvLHVzZVJlZHVjZXI6U28sdXNlUmVmOlNvLHVzZVN0YXRlOlNvLHVzZURlYnVnVmFsdWU6U28sdXNlRGVmZXJyZWRWYWx1ZTpTbyx1c2VUcmFuc2l0aW9uOlNvLHVzZU11dGFibGVTb3VyY2U6U28sdXNlU3luY0V4dGVybmFsU3RvcmU6U28sdXNlSWQ6U28sdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSx1dT17cmVhZENvbnRleHQ6X2EsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gQ28oKS5tZW1vaXplZFN0YXRlPVtlLHZvaWQgMD09PW4/bnVsbDpuXSxlfSx1c2VDb250ZXh0Ol9hLHVzZUVmZmVjdDpCbyx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGUsbix0KXtyZXR1cm4gdD1udWxsIT09dCYmdm9pZCAwIT09dD90LmNvbmNhdChbZV0pOm51bGwsQW8oNDE5NDMwOCw0LHFvLmJpbmQobnVsbCxuLGUpLHQpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gQW8oNDE5NDMwOCw0LGUsbil9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbihlLG4pe3JldHVybiBBbyg0LDIsZSxuKX0sdXNlTWVtbzpmdW5jdGlvbihlLG4pe3ZhciB0PUNvKCk7cmV0dXJuIG49dm9pZCAwPT09bj9udWxsOm4sZT1lKCksdC5tZW1vaXplZFN0YXRlPVtlLG5dLGV9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSxuLHQpe3ZhciByPUNvKCk7cmV0dXJuIG49dm9pZCAwIT09dD90KG4pOm4sci5tZW1vaXplZFN0YXRlPXIuYmFzZVN0YXRlPW4sZT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6ZSxsYXN0UmVuZGVyZWRTdGF0ZTpufSxyLnF1ZXVlPWUsZT1lLmRpc3BhdGNoPW51LmJpbmQobnVsbCxobyxlKSxbci5tZW1vaXplZFN0YXRlLGVdfSx1c2VSZWY6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9e2N1cnJlbnQ6ZX0sQ28oKS5tZW1vaXplZFN0YXRlPWV9LHVzZVN0YXRlOlVvLHVzZURlYnVnVmFsdWU6WW8sdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gQ28oKS5tZW1vaXplZFN0YXRlPWV9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1VbyghMSksbj1lWzBdO3JldHVybiBlPUpvLmJpbmQobnVsbCxlWzFdKSxDbygpLm1lbW9pemVkU3RhdGU9ZSxbbixlXX0sdXNlTXV0YWJsZVNvdXJjZTpmdW5jdGlvbigpe30sdXNlU3luY0V4dGVybmFsU3RvcmU6ZnVuY3Rpb24oZSxuLHQpe3ZhciByPWhvLGw9Q28oKTtpZihsYSl7aWYodm9pZCAwPT09dCl0aHJvdyBFcnJvcihhKDQwNykpO3Q9dCgpfWVsc2V7aWYodD1uKCksbnVsbD09PXppKXRocm93IEVycm9yKGEoMzQ5KSk7MCE9PSgzMCZtbyl8fE1vKHIsbix0KX1sLm1lbW9pemVkU3RhdGU9dDt2YXIgbz17dmFsdWU6dCxnZXRTbmFwc2hvdDpufTtyZXR1cm4gbC5xdWV1ZT1vLEJvKE9vLmJpbmQobnVsbCxyLG8sZSksW2VdKSxyLmZsYWdzfD0yMDQ4LFZvKDksRm8uYmluZChudWxsLHIsbyx0LG4pLHZvaWQgMCxudWxsKSx0fSx1c2VJZDpmdW5jdGlvbigpe3ZhciBlPUNvKCksbj16aS5pZGVudGlmaWVyUHJlZml4O2lmKGxhKXt2YXIgdD1HbDtuPVwiOlwiK24rXCJSXCIrKHQ9KFhsJn4oMTw8MzItb24oWGwpLTEpKS50b1N0cmluZygzMikrdCksMDwodD1rbysrKSYmKG4rPVwiSFwiK3QudG9TdHJpbmcoMzIpKSxuKz1cIjpcIn1lbHNlIG49XCI6XCIrbitcInJcIisodD13bysrKS50b1N0cmluZygzMikrXCI6XCI7cmV0dXJuIGUubWVtb2l6ZWRTdGF0ZT1ufSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LGl1PXtyZWFkQ29udGV4dDpfYSx1c2VDYWxsYmFjazpYbyx1c2VDb250ZXh0Ol9hLHVzZUVmZmVjdDpIbyx1c2VJbXBlcmF0aXZlSGFuZGxlOktvLHVzZUluc2VydGlvbkVmZmVjdDpXbyx1c2VMYXlvdXRFZmZlY3Q6UW8sdXNlTWVtbzpHbyx1c2VSZWR1Y2VyOnpvLHVzZVJlZjokbyx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiB6byhObyl9LHVzZURlYnVnVmFsdWU6WW8sdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gWm8oUG8oKSx2by5tZW1vaXplZFN0YXRlLGUpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuW3pvKE5vKVswXSxQbygpLm1lbW9pemVkU3RhdGVdfSx1c2VNdXRhYmxlU291cmNlOkxvLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlJvLHVzZUlkOmV1LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sc3U9e3JlYWRDb250ZXh0Ol9hLHVzZUNhbGxiYWNrOlhvLHVzZUNvbnRleHQ6X2EsdXNlRWZmZWN0OkhvLHVzZUltcGVyYXRpdmVIYW5kbGU6S28sdXNlSW5zZXJ0aW9uRWZmZWN0OldvLHVzZUxheW91dEVmZmVjdDpRbyx1c2VNZW1vOkdvLHVzZVJlZHVjZXI6VG8sdXNlUmVmOiRvLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKE5vKX0sdXNlRGVidWdWYWx1ZTpZbyx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciBuPVBvKCk7cmV0dXJuIG51bGw9PT12bz9uLm1lbW9pemVkU3RhdGU9ZTpabyhuLHZvLm1lbW9pemVkU3RhdGUsZSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm5bVG8oTm8pWzBdLFBvKCkubWVtb2l6ZWRTdGF0ZV19LHVzZU11dGFibGVTb3VyY2U6TG8sdXNlU3luY0V4dGVybmFsU3RvcmU6Um8sdXNlSWQ6ZXUsdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBjdShlLG4pe3RyeXt2YXIgdD1cIlwiLHI9bjtkb3t0Kz1BKHIpLHI9ci5yZXR1cm59d2hpbGUocik7dmFyIGw9dH1jYXRjaChhKXtsPVwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIrYS5tZXNzYWdlK1wiXFxuXCIrYS5zdGFja31yZXR1cm57dmFsdWU6ZSxzb3VyY2U6bixzdGFjazpsLGRpZ2VzdDpudWxsfX1mdW5jdGlvbiBmdShlLG4sdCl7cmV0dXJue3ZhbHVlOmUsc291cmNlOm51bGwsc3RhY2s6bnVsbCE9dD90Om51bGwsZGlnZXN0Om51bGwhPW4/bjpudWxsfX1mdW5jdGlvbiBkdShlLG4pe3RyeXtjb25zb2xlLmVycm9yKG4udmFsdWUpfWNhdGNoKHQpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgdH0pKX19dmFyIHB1PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwO2Z1bmN0aW9uIG11KGUsbix0KXsodD1NYSgtMSx0KSkudGFnPTMsdC5wYXlsb2FkPXtlbGVtZW50Om51bGx9O3ZhciByPW4udmFsdWU7cmV0dXJuIHQuY2FsbGJhY2s9ZnVuY3Rpb24oKXtIaXx8KEhpPSEwLFdpPXIpLGR1KDAsbil9LHR9ZnVuY3Rpb24gaHUoZSxuLHQpeyh0PU1hKC0xLHQpKS50YWc9Mzt2YXIgcj1lLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiByKXt2YXIgbD1uLnZhbHVlO3QucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiByKGwpfSx0LmNhbGxiYWNrPWZ1bmN0aW9uKCl7ZHUoMCxuKX19dmFyIGE9ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGwhPT1hJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5jb21wb25lbnREaWRDYXRjaCYmKHQuY2FsbGJhY2s9ZnVuY3Rpb24oKXtkdSgwLG4pLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiByJiYobnVsbD09PVFpP1FpPW5ldyBTZXQoW3RoaXNdKTpRaS5hZGQodGhpcykpO3ZhciBlPW4uc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChuLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09ZT9lOlwiXCJ9KX0pLHR9ZnVuY3Rpb24gdnUoZSxuLHQpe3ZhciByPWUucGluZ0NhY2hlO2lmKG51bGw9PT1yKXtyPWUucGluZ0NhY2hlPW5ldyBwdTt2YXIgbD1uZXcgU2V0O3Iuc2V0KG4sbCl9ZWxzZSB2b2lkIDA9PT0obD1yLmdldChuKSkmJihsPW5ldyBTZXQsci5zZXQobixsKSk7bC5oYXModCl8fChsLmFkZCh0KSxlPV9zLmJpbmQobnVsbCxlLG4sdCksbi50aGVuKGUsZSkpfWZ1bmN0aW9uIGd1KGUpe2Rve3ZhciBuO2lmKChuPTEzPT09ZS50YWcpJiYobj1udWxsPT09KG49ZS5tZW1vaXplZFN0YXRlKXx8bnVsbCE9PW4uZGVoeWRyYXRlZCksbilyZXR1cm4gZTtlPWUucmV0dXJufXdoaWxlKG51bGwhPT1lKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiB5dShlLG4sdCxyLGwpe3JldHVybiAwPT09KDEmZS5tb2RlKT8oZT09PW4/ZS5mbGFnc3w9NjU1MzY6KGUuZmxhZ3N8PTEyOCx0LmZsYWdzfD0xMzEwNzIsdC5mbGFncyY9LTUyODA1LDE9PT10LnRhZyYmKG51bGw9PT10LmFsdGVybmF0ZT90LnRhZz0xNzooKG49TWEoLTEsMSkpLnRhZz0yLEZhKHQsbiwxKSkpLHQubGFuZXN8PTEpLGUpOihlLmZsYWdzfD02NTUzNixlLmxhbmVzPWwsZSl9dmFyIGJ1PWsuUmVhY3RDdXJyZW50T3duZXIsa3U9ITE7ZnVuY3Rpb24gd3UoZSxuLHQscil7bi5jaGlsZD1udWxsPT09ZT9HYShuLG51bGwsdCxyKTpYYShuLGUuY2hpbGQsdCxyKX1mdW5jdGlvbiBTdShlLG4sdCxyLGwpe3Q9dC5yZW5kZXI7dmFyIGE9bi5yZWY7cmV0dXJuIEVhKG4sbCkscj1FbyhlLG4sdCxyLGEsbCksdD1fbygpLG51bGw9PT1lfHxrdT8obGEmJnQmJmVhKG4pLG4uZmxhZ3N8PTEsd3UoZSxuLHIsbCksbi5jaGlsZCk6KG4udXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSxuLmZsYWdzJj0tMjA1MyxlLmxhbmVzJj1+bCxIdShlLG4sbCkpfWZ1bmN0aW9uIHh1KGUsbix0LHIsbCl7aWYobnVsbD09PWUpe3ZhciBhPXQudHlwZTtyZXR1cm5cImZ1bmN0aW9uXCIhPT10eXBlb2YgYXx8UnMoYSl8fHZvaWQgMCE9PWEuZGVmYXVsdFByb3BzfHxudWxsIT09dC5jb21wYXJlfHx2b2lkIDAhPT10LmRlZmF1bHRQcm9wcz8oKGU9RnModC50eXBlLG51bGwscixuLG4ubW9kZSxsKSkucmVmPW4ucmVmLGUucmV0dXJuPW4sbi5jaGlsZD1lKToobi50YWc9MTUsbi50eXBlPWEsRXUoZSxuLGEscixsKSl9aWYoYT1lLmNoaWxkLDA9PT0oZS5sYW5lcyZsKSl7dmFyIG89YS5tZW1vaXplZFByb3BzO2lmKCh0PW51bGwhPT0odD10LmNvbXBhcmUpP3Q6aXIpKG8scikmJmUucmVmPT09bi5yZWYpcmV0dXJuIEh1KGUsbixsKX1yZXR1cm4gbi5mbGFnc3w9MSwoZT1NcyhhLHIpKS5yZWY9bi5yZWYsZS5yZXR1cm49bixuLmNoaWxkPWV9ZnVuY3Rpb24gRXUoZSxuLHQscixsKXtpZihudWxsIT09ZSl7dmFyIGE9ZS5tZW1vaXplZFByb3BzO2lmKGlyKGEscikmJmUucmVmPT09bi5yZWYpe2lmKGt1PSExLG4ucGVuZGluZ1Byb3BzPXI9YSwwPT09KGUubGFuZXMmbCkpcmV0dXJuIG4ubGFuZXM9ZS5sYW5lcyxIdShlLG4sbCk7MCE9PSgxMzEwNzImZS5mbGFncykmJihrdT0hMCl9fXJldHVybiBQdShlLG4sdCxyLGwpfWZ1bmN0aW9uIF91KGUsbix0KXt2YXIgcj1uLnBlbmRpbmdQcm9wcyxsPXIuY2hpbGRyZW4sYT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbDtpZihcImhpZGRlblwiPT09ci5tb2RlKWlmKDA9PT0oMSZuLm1vZGUpKW4ubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sQ2woTWksUmkpLFJpfD10O2Vsc2V7aWYoMD09PSgxMDczNzQxODI0JnQpKXJldHVybiBlPW51bGwhPT1hP2EuYmFzZUxhbmVzfHQ6dCxuLmxhbmVzPW4uY2hpbGRMYW5lcz0xMDczNzQxODI0LG4ubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmUsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sbi51cGRhdGVRdWV1ZT1udWxsLENsKE1pLFJpKSxSaXw9ZSxudWxsO24ubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0scj1udWxsIT09YT9hLmJhc2VMYW5lczp0LENsKE1pLFJpKSxSaXw9cn1lbHNlIG51bGwhPT1hPyhyPWEuYmFzZUxhbmVzfHQsbi5tZW1vaXplZFN0YXRlPW51bGwpOnI9dCxDbChNaSxSaSksUml8PXI7cmV0dXJuIHd1KGUsbixsLHQpLG4uY2hpbGR9ZnVuY3Rpb24gQ3UoZSxuKXt2YXIgdD1uLnJlZjsobnVsbD09PWUmJm51bGwhPT10fHxudWxsIT09ZSYmZS5yZWYhPT10KSYmKG4uZmxhZ3N8PTUxMixuLmZsYWdzfD0yMDk3MTUyKX1mdW5jdGlvbiBQdShlLG4sdCxyLGwpe3ZhciBhPVJsKHQpP1RsOk5sLmN1cnJlbnQ7cmV0dXJuIGE9TGwobixhKSxFYShuLGwpLHQ9RW8oZSxuLHQscixhLGwpLHI9X28oKSxudWxsPT09ZXx8a3U/KGxhJiZyJiZlYShuKSxuLmZsYWdzfD0xLHd1KGUsbix0LGwpLG4uY2hpbGQpOihuLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsbi5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fmwsSHUoZSxuLGwpKX1mdW5jdGlvbiBOdShlLG4sdCxyLGwpe2lmKFJsKHQpKXt2YXIgYT0hMDtEbChuKX1lbHNlIGE9ITE7aWYoRWEobixsKSxudWxsPT09bi5zdGF0ZU5vZGUpQnUoZSxuKSxCYShuLHQsciksV2Eobix0LHIsbCkscj0hMDtlbHNlIGlmKG51bGw9PT1lKXt2YXIgbz1uLnN0YXRlTm9kZSx1PW4ubWVtb2l6ZWRQcm9wcztvLnByb3BzPXU7dmFyIGk9by5jb250ZXh0LHM9dC5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIHMmJm51bGwhPT1zP3M9X2Eocyk6cz1MbChuLHM9UmwodCk/VGw6TmwuY3VycmVudCk7dmFyIGM9dC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsZj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgY3x8XCJmdW5jdGlvblwiPT09dHlwZW9mIG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7Znx8XCJmdW5jdGlvblwiIT09dHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fCh1IT09cnx8aSE9PXMpJiZIYShuLG8scixzKSxUYT0hMTt2YXIgZD1uLm1lbW9pemVkU3RhdGU7by5zdGF0ZT1kLElhKG4scixvLGwpLGk9bi5tZW1vaXplZFN0YXRlLHUhPT1yfHxkIT09aXx8emwuY3VycmVudHx8VGE/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBjJiYoJGEobix0LGMsciksaT1uLm1lbW9pemVkU3RhdGUpLCh1PVRhfHxqYShuLHQsdSxyLGQsaSxzKSk/KGZ8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLmNvbXBvbmVudFdpbGxNb3VudHx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBvLmNvbXBvbmVudFdpbGxNb3VudCYmby5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2Ygby5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZvLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQmJihuLmZsYWdzfD00MTk0MzA4KSk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBvLmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCksbi5tZW1vaXplZFByb3BzPXIsbi5tZW1vaXplZFN0YXRlPWkpLG8ucHJvcHM9cixvLnN0YXRlPWksby5jb250ZXh0PXMscj11KTooXCJmdW5jdGlvblwiPT09dHlwZW9mIG8uY29tcG9uZW50RGlkTW91bnQmJihuLmZsYWdzfD00MTk0MzA4KSxyPSExKX1lbHNle289bi5zdGF0ZU5vZGUsUmEoZSxuKSx1PW4ubWVtb2l6ZWRQcm9wcyxzPW4udHlwZT09PW4uZWxlbWVudFR5cGU/dTp2YShuLnR5cGUsdSksby5wcm9wcz1zLGY9bi5wZW5kaW5nUHJvcHMsZD1vLmNvbnRleHQsXCJvYmplY3RcIj09PXR5cGVvZihpPXQuY29udGV4dFR5cGUpJiZudWxsIT09aT9pPV9hKGkpOmk9TGwobixpPVJsKHQpP1RsOk5sLmN1cnJlbnQpO3ZhciBwPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyhjPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBwfHxcImZ1bmN0aW9uXCI9PT10eXBlb2Ygby5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2Ygby5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwodSE9PWZ8fGQhPT1pKSYmSGEobixvLHIsaSksVGE9ITEsZD1uLm1lbW9pemVkU3RhdGUsby5zdGF0ZT1kLElhKG4scixvLGwpO3ZhciBtPW4ubWVtb2l6ZWRTdGF0ZTt1IT09Znx8ZCE9PW18fHpsLmN1cnJlbnR8fFRhPyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgcCYmKCRhKG4sdCxwLHIpLG09bi5tZW1vaXplZFN0YXRlKSwocz1UYXx8amEobix0LHMscixkLG0saSl8fCExKT8oY3x8XCJmdW5jdGlvblwiIT09dHlwZW9mIG8uVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLmNvbXBvbmVudFdpbGxVcGRhdGV8fChcImZ1bmN0aW9uXCI9PT10eXBlb2Ygby5jb21wb25lbnRXaWxsVXBkYXRlJiZvLmNvbXBvbmVudFdpbGxVcGRhdGUocixtLGkpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBvLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZvLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIsbSxpKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIG8uY29tcG9uZW50RGlkVXBkYXRlJiYobi5mbGFnc3w9NCksXCJmdW5jdGlvblwiPT09dHlwZW9mIG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihuLmZsYWdzfD0xMDI0KSk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLmNvbXBvbmVudERpZFVwZGF0ZXx8dT09PWUubWVtb2l6ZWRQcm9wcyYmZD09PWUubWVtb2l6ZWRTdGF0ZXx8KG4uZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHx1PT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwobi5mbGFnc3w9MTAyNCksbi5tZW1vaXplZFByb3BzPXIsbi5tZW1vaXplZFN0YXRlPW0pLG8ucHJvcHM9cixvLnN0YXRlPW0sby5jb250ZXh0PWkscj1zKTooXCJmdW5jdGlvblwiIT09dHlwZW9mIG8uY29tcG9uZW50RGlkVXBkYXRlfHx1PT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwobi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIG8uZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fHU9PT1lLm1lbW9pemVkUHJvcHMmJmQ9PT1lLm1lbW9pemVkU3RhdGV8fChuLmZsYWdzfD0xMDI0KSxyPSExKX1yZXR1cm4genUoZSxuLHQscixhLGwpfWZ1bmN0aW9uIHp1KGUsbix0LHIsbCxhKXtDdShlLG4pO3ZhciBvPTAhPT0oMTI4Jm4uZmxhZ3MpO2lmKCFyJiYhbylyZXR1cm4gbCYmSWwobix0LCExKSxIdShlLG4sYSk7cj1uLnN0YXRlTm9kZSxidS5jdXJyZW50PW47dmFyIHU9byYmXCJmdW5jdGlvblwiIT09dHlwZW9mIHQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6ci5yZW5kZXIoKTtyZXR1cm4gbi5mbGFnc3w9MSxudWxsIT09ZSYmbz8obi5jaGlsZD1YYShuLGUuY2hpbGQsbnVsbCxhKSxuLmNoaWxkPVhhKG4sbnVsbCx1LGEpKTp3dShlLG4sdSxhKSxuLm1lbW9pemVkU3RhdGU9ci5zdGF0ZSxsJiZJbChuLHQsITApLG4uY2hpbGR9ZnVuY3Rpb24gVHUoZSl7dmFyIG49ZS5zdGF0ZU5vZGU7bi5wZW5kaW5nQ29udGV4dD9GbCgwLG4ucGVuZGluZ0NvbnRleHQsbi5wZW5kaW5nQ29udGV4dCE9PW4uY29udGV4dCk6bi5jb250ZXh0JiZGbCgwLG4uY29udGV4dCwhMSkscm8oZSxuLmNvbnRhaW5lckluZm8pfWZ1bmN0aW9uIEx1KGUsbix0LHIsbCl7cmV0dXJuIHBhKCksbWEobCksbi5mbGFnc3w9MjU2LHd1KGUsbix0LHIpLG4uY2hpbGR9dmFyIFJ1LE11LEZ1LE91PXtkZWh5ZHJhdGVkOm51bGwsdHJlZUNvbnRleHQ6bnVsbCxyZXRyeUxhbmU6MH07ZnVuY3Rpb24gRHUoZSl7cmV0dXJue2Jhc2VMYW5lczplLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9fWZ1bmN0aW9uIEl1KGUsbix0KXt2YXIgcixsPW4ucGVuZGluZ1Byb3BzLG89dW8uY3VycmVudCx1PSExLGk9MCE9PSgxMjgmbi5mbGFncyk7aWYoKHI9aSl8fChyPShudWxsPT09ZXx8bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSkmJjAhPT0oMiZvKSkscj8odT0hMCxuLmZsYWdzJj0tMTI5KTpudWxsIT09ZSYmbnVsbD09PWUubWVtb2l6ZWRTdGF0ZXx8KG98PTEpLENsKHVvLDEmbyksbnVsbD09PWUpcmV0dXJuIHNhKG4pLG51bGwhPT0oZT1uLm1lbW9pemVkU3RhdGUpJiZudWxsIT09KGU9ZS5kZWh5ZHJhdGVkKT8oMD09PSgxJm4ubW9kZSk/bi5sYW5lcz0xOlwiJCFcIj09PWUuZGF0YT9uLmxhbmVzPTg6bi5sYW5lcz0xMDczNzQxODI0LG51bGwpOihpPWwuY2hpbGRyZW4sZT1sLmZhbGxiYWNrLHU/KGw9bi5tb2RlLHU9bi5jaGlsZCxpPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46aX0sMD09PSgxJmwpJiZudWxsIT09dT8odS5jaGlsZExhbmVzPTAsdS5wZW5kaW5nUHJvcHM9aSk6dT1EcyhpLGwsMCxudWxsKSxlPU9zKGUsbCx0LG51bGwpLHUucmV0dXJuPW4sZS5yZXR1cm49bix1LnNpYmxpbmc9ZSxuLmNoaWxkPXUsbi5jaGlsZC5tZW1vaXplZFN0YXRlPUR1KHQpLG4ubWVtb2l6ZWRTdGF0ZT1PdSxlKTpVdShuLGkpKTtpZihudWxsIT09KG89ZS5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShyPW8uZGVoeWRyYXRlZCkpcmV0dXJuIGZ1bmN0aW9uKGUsbix0LHIsbCxvLHUpe2lmKHQpcmV0dXJuIDI1NiZuLmZsYWdzPyhuLmZsYWdzJj0tMjU3LFZ1KGUsbix1LHI9ZnUoRXJyb3IoYSg0MjIpKSkpKTpudWxsIT09bi5tZW1vaXplZFN0YXRlPyhuLmNoaWxkPWUuY2hpbGQsbi5mbGFnc3w9MTI4LG51bGwpOihvPXIuZmFsbGJhY2ssbD1uLm1vZGUscj1Ecyh7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpyLmNoaWxkcmVufSxsLDAsbnVsbCksKG89T3MobyxsLHUsbnVsbCkpLmZsYWdzfD0yLHIucmV0dXJuPW4sby5yZXR1cm49bixyLnNpYmxpbmc9byxuLmNoaWxkPXIsMCE9PSgxJm4ubW9kZSkmJlhhKG4sZS5jaGlsZCxudWxsLHUpLG4uY2hpbGQubWVtb2l6ZWRTdGF0ZT1EdSh1KSxuLm1lbW9pemVkU3RhdGU9T3Usbyk7aWYoMD09PSgxJm4ubW9kZSkpcmV0dXJuIFZ1KGUsbix1LG51bGwpO2lmKFwiJCFcIj09PWwuZGF0YSl7aWYocj1sLm5leHRTaWJsaW5nJiZsLm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIGk9ci5kZ3N0O3JldHVybiByPWksVnUoZSxuLHUscj1mdShvPUVycm9yKGEoNDE5KSkscix2b2lkIDApKX1pZihpPTAhPT0odSZlLmNoaWxkTGFuZXMpLGt1fHxpKXtpZihudWxsIT09KHI9emkpKXtzd2l0Y2godSYtdSl7Y2FzZSA0Omw9MjticmVhaztjYXNlIDE2Omw9ODticmVhaztjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6bD0zMjticmVhaztjYXNlIDUzNjg3MDkxMjpsPTI2ODQzNTQ1NjticmVhaztkZWZhdWx0Omw9MH0wIT09KGw9MCE9PShsJihyLnN1c3BlbmRlZExhbmVzfHUpKT8wOmwpJiZsIT09by5yZXRyeUxhbmUmJihvLnJldHJ5TGFuZT1sLHphKGUsbCksdHMocixlLGwsLTEpKX1yZXR1cm4gaHMoKSxWdShlLG4sdSxyPWZ1KEVycm9yKGEoNDIxKSkpKX1yZXR1cm5cIiQ/XCI9PT1sLmRhdGE/KG4uZmxhZ3N8PTEyOCxuLmNoaWxkPWUuY2hpbGQsbj1Qcy5iaW5kKG51bGwsZSksbC5fcmVhY3RSZXRyeT1uLG51bGwpOihlPW8udHJlZUNvbnRleHQscmE9c2wobC5uZXh0U2libGluZyksdGE9bixsYT0hMCxhYT1udWxsLG51bGwhPT1lJiYocWxbS2wrK109WGwscWxbS2wrK109R2wscWxbS2wrK109WWwsWGw9ZS5pZCxHbD1lLm92ZXJmbG93LFlsPW4pLChuPVV1KG4sci5jaGlsZHJlbikpLmZsYWdzfD00MDk2LG4pfShlLG4saSxsLHIsbyx0KTtpZih1KXt1PWwuZmFsbGJhY2ssaT1uLm1vZGUscj0obz1lLmNoaWxkKS5zaWJsaW5nO3ZhciBzPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46bC5jaGlsZHJlbn07cmV0dXJuIDA9PT0oMSZpKSYmbi5jaGlsZCE9PW8/KChsPW4uY2hpbGQpLmNoaWxkTGFuZXM9MCxsLnBlbmRpbmdQcm9wcz1zLG4uZGVsZXRpb25zPW51bGwpOihsPU1zKG8scykpLnN1YnRyZWVGbGFncz0xNDY4MDA2NCZvLnN1YnRyZWVGbGFncyxudWxsIT09cj91PU1zKHIsdSk6KHU9T3ModSxpLHQsbnVsbCkpLmZsYWdzfD0yLHUucmV0dXJuPW4sbC5yZXR1cm49bixsLnNpYmxpbmc9dSxuLmNoaWxkPWwsbD11LHU9bi5jaGlsZCxpPW51bGw9PT0oaT1lLmNoaWxkLm1lbW9pemVkU3RhdGUpP0R1KHQpOntiYXNlTGFuZXM6aS5iYXNlTGFuZXN8dCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczppLnRyYW5zaXRpb25zfSx1Lm1lbW9pemVkU3RhdGU9aSx1LmNoaWxkTGFuZXM9ZS5jaGlsZExhbmVzJn50LG4ubWVtb2l6ZWRTdGF0ZT1PdSxsfXJldHVybiBlPSh1PWUuY2hpbGQpLnNpYmxpbmcsbD1Ncyh1LHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmwuY2hpbGRyZW59KSwwPT09KDEmbi5tb2RlKSYmKGwubGFuZXM9dCksbC5yZXR1cm49bixsLnNpYmxpbmc9bnVsbCxudWxsIT09ZSYmKG51bGw9PT0odD1uLmRlbGV0aW9ucyk/KG4uZGVsZXRpb25zPVtlXSxuLmZsYWdzfD0xNik6dC5wdXNoKGUpKSxuLmNoaWxkPWwsbi5tZW1vaXplZFN0YXRlPW51bGwsbH1mdW5jdGlvbiBVdShlLG4pe3JldHVybihuPURzKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOm59LGUubW9kZSwwLG51bGwpKS5yZXR1cm49ZSxlLmNoaWxkPW59ZnVuY3Rpb24gVnUoZSxuLHQscil7cmV0dXJuIG51bGwhPT1yJiZtYShyKSxYYShuLGUuY2hpbGQsbnVsbCx0KSwoZT1VdShuLG4ucGVuZGluZ1Byb3BzLmNoaWxkcmVuKSkuZmxhZ3N8PTIsbi5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiAkdShlLG4sdCl7ZS5sYW5lc3w9bjt2YXIgcj1lLmFsdGVybmF0ZTtudWxsIT09ciYmKHIubGFuZXN8PW4pLHhhKGUucmV0dXJuLG4sdCl9ZnVuY3Rpb24gQXUoZSxuLHQscixsKXt2YXIgYT1lLm1lbW9pemVkU3RhdGU7bnVsbD09PWE/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczpuLHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6cix0YWlsOnQsdGFpbE1vZGU6bH06KGEuaXNCYWNrd2FyZHM9bixhLnJlbmRlcmluZz1udWxsLGEucmVuZGVyaW5nU3RhcnRUaW1lPTAsYS5sYXN0PXIsYS50YWlsPXQsYS50YWlsTW9kZT1sKX1mdW5jdGlvbiBqdShlLG4sdCl7dmFyIHI9bi5wZW5kaW5nUHJvcHMsbD1yLnJldmVhbE9yZGVyLGE9ci50YWlsO2lmKHd1KGUsbixyLmNoaWxkcmVuLHQpLDAhPT0oMiYocj11by5jdXJyZW50KSkpcj0xJnJ8MixuLmZsYWdzfD0xMjg7ZWxzZXtpZihudWxsIT09ZSYmMCE9PSgxMjgmZS5mbGFncykpZTpmb3IoZT1uLmNoaWxkO251bGwhPT1lOyl7aWYoMTM9PT1lLnRhZyludWxsIT09ZS5tZW1vaXplZFN0YXRlJiYkdShlLHQsbik7ZWxzZSBpZigxOT09PWUudGFnKSR1KGUsdCxuKTtlbHNlIGlmKG51bGwhPT1lLmNoaWxkKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09bilicmVhayBlO2Zvcig7bnVsbD09PWUuc2libGluZzspe2lmKG51bGw9PT1lLnJldHVybnx8ZS5yZXR1cm49PT1uKWJyZWFrIGU7ZT1lLnJldHVybn1lLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nfXImPTF9aWYoQ2wodW8sciksMD09PSgxJm4ubW9kZSkpbi5tZW1vaXplZFN0YXRlPW51bGw7ZWxzZSBzd2l0Y2gobCl7Y2FzZVwiZm9yd2FyZHNcIjpmb3IodD1uLmNoaWxkLGw9bnVsbDtudWxsIT09dDspbnVsbCE9PShlPXQuYWx0ZXJuYXRlKSYmbnVsbD09PWlvKGUpJiYobD10KSx0PXQuc2libGluZztudWxsPT09KHQ9bCk/KGw9bi5jaGlsZCxuLmNoaWxkPW51bGwpOihsPXQuc2libGluZyx0LnNpYmxpbmc9bnVsbCksQXUobiwhMSxsLHQsYSk7YnJlYWs7Y2FzZVwiYmFja3dhcmRzXCI6Zm9yKHQ9bnVsbCxsPW4uY2hpbGQsbi5jaGlsZD1udWxsO251bGwhPT1sOyl7aWYobnVsbCE9PShlPWwuYWx0ZXJuYXRlKSYmbnVsbD09PWlvKGUpKXtuLmNoaWxkPWw7YnJlYWt9ZT1sLnNpYmxpbmcsbC5zaWJsaW5nPXQsdD1sLGw9ZX1BdShuLCEwLHQsbnVsbCxhKTticmVhaztjYXNlXCJ0b2dldGhlclwiOkF1KG4sITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDpuLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gbi5jaGlsZH1mdW5jdGlvbiBCdShlLG4pezA9PT0oMSZuLm1vZGUpJiZudWxsIT09ZSYmKGUuYWx0ZXJuYXRlPW51bGwsbi5hbHRlcm5hdGU9bnVsbCxuLmZsYWdzfD0yKX1mdW5jdGlvbiBIdShlLG4sdCl7aWYobnVsbCE9PWUmJihuLmRlcGVuZGVuY2llcz1lLmRlcGVuZGVuY2llcyksRGl8PW4ubGFuZXMsMD09PSh0Jm4uY2hpbGRMYW5lcykpcmV0dXJuIG51bGw7aWYobnVsbCE9PWUmJm4uY2hpbGQhPT1lLmNoaWxkKXRocm93IEVycm9yKGEoMTUzKSk7aWYobnVsbCE9PW4uY2hpbGQpe2Zvcih0PU1zKGU9bi5jaGlsZCxlLnBlbmRpbmdQcm9wcyksbi5jaGlsZD10LHQucmV0dXJuPW47bnVsbCE9PWUuc2libGluZzspZT1lLnNpYmxpbmcsKHQ9dC5zaWJsaW5nPU1zKGUsZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49bjt0LnNpYmxpbmc9bnVsbH1yZXR1cm4gbi5jaGlsZH1mdW5jdGlvbiBXdShlLG4pe2lmKCFsYSlzd2l0Y2goZS50YWlsTW9kZSl7Y2FzZVwiaGlkZGVuXCI6bj1lLnRhaWw7Zm9yKHZhciB0PW51bGw7bnVsbCE9PW47KW51bGwhPT1uLmFsdGVybmF0ZSYmKHQ9biksbj1uLnNpYmxpbmc7bnVsbD09PXQ/ZS50YWlsPW51bGw6dC5zaWJsaW5nPW51bGw7YnJlYWs7Y2FzZVwiY29sbGFwc2VkXCI6dD1lLnRhaWw7Zm9yKHZhciByPW51bGw7bnVsbCE9PXQ7KW51bGwhPT10LmFsdGVybmF0ZSYmKHI9dCksdD10LnNpYmxpbmc7bnVsbD09PXI/bnx8bnVsbD09PWUudGFpbD9lLnRhaWw9bnVsbDplLnRhaWwuc2libGluZz1udWxsOnIuc2libGluZz1udWxsfX1mdW5jdGlvbiBRdShlKXt2YXIgbj1udWxsIT09ZS5hbHRlcm5hdGUmJmUuYWx0ZXJuYXRlLmNoaWxkPT09ZS5jaGlsZCx0PTAscj0wO2lmKG4pZm9yKHZhciBsPWUuY2hpbGQ7bnVsbCE9PWw7KXR8PWwubGFuZXN8bC5jaGlsZExhbmVzLHJ8PTE0NjgwMDY0Jmwuc3VidHJlZUZsYWdzLHJ8PTE0NjgwMDY0JmwuZmxhZ3MsbC5yZXR1cm49ZSxsPWwuc2libGluZztlbHNlIGZvcihsPWUuY2hpbGQ7bnVsbCE9PWw7KXR8PWwubGFuZXN8bC5jaGlsZExhbmVzLHJ8PWwuc3VidHJlZUZsYWdzLHJ8PWwuZmxhZ3MsbC5yZXR1cm49ZSxsPWwuc2libGluZztyZXR1cm4gZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPXQsbn1mdW5jdGlvbiBxdShlLG4sdCl7dmFyIHI9bi5wZW5kaW5nUHJvcHM7c3dpdGNoKG5hKG4pLG4udGFnKXtjYXNlIDI6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gUXUobiksbnVsbDtjYXNlIDE6Y2FzZSAxNzpyZXR1cm4gUmwobi50eXBlKSYmTWwoKSxRdShuKSxudWxsO2Nhc2UgMzpyZXR1cm4gcj1uLnN0YXRlTm9kZSxsbygpLF9sKHpsKSxfbChObCksY28oKSxyLnBlbmRpbmdDb250ZXh0JiYoci5jb250ZXh0PXIucGVuZGluZ0NvbnRleHQsci5wZW5kaW5nQ29udGV4dD1udWxsKSxudWxsIT09ZSYmbnVsbCE9PWUuY2hpbGR8fChmYShuKT9uLmZsYWdzfD00Om51bGw9PT1lfHxlLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYwPT09KDI1NiZuLmZsYWdzKXx8KG4uZmxhZ3N8PTEwMjQsbnVsbCE9PWFhJiYob3MoYWEpLGFhPW51bGwpKSksUXUobiksbnVsbDtjYXNlIDU6b28obik7dmFyIGw9dG8obm8uY3VycmVudCk7aWYodD1uLnR5cGUsbnVsbCE9PWUmJm51bGwhPW4uc3RhdGVOb2RlKU11KGUsbix0LHIpLGUucmVmIT09bi5yZWYmJihuLmZsYWdzfD01MTIsbi5mbGFnc3w9MjA5NzE1Mik7ZWxzZXtpZighcil7aWYobnVsbD09PW4uc3RhdGVOb2RlKXRocm93IEVycm9yKGEoMTY2KSk7cmV0dXJuIFF1KG4pLG51bGx9aWYoZT10byhKYS5jdXJyZW50KSxmYShuKSl7cj1uLnN0YXRlTm9kZSx0PW4udHlwZTt2YXIgbz1uLm1lbW9pemVkUHJvcHM7c3dpdGNoKHJbZGxdPW4scltwbF09byxlPTAhPT0oMSZuLm1vZGUpLHQpe2Nhc2VcImRpYWxvZ1wiOlZyKFwiY2FuY2VsXCIsciksVnIoXCJjbG9zZVwiLHIpO2JyZWFrO2Nhc2VcImlmcmFtZVwiOmNhc2VcIm9iamVjdFwiOmNhc2VcImVtYmVkXCI6VnIoXCJsb2FkXCIscik7YnJlYWs7Y2FzZVwidmlkZW9cIjpjYXNlXCJhdWRpb1wiOmZvcihsPTA7bDxPci5sZW5ndGg7bCsrKVZyKE9yW2xdLHIpO2JyZWFrO2Nhc2VcInNvdXJjZVwiOlZyKFwiZXJyb3JcIixyKTticmVhaztjYXNlXCJpbWdcIjpjYXNlXCJpbWFnZVwiOmNhc2VcImxpbmtcIjpWcihcImVycm9yXCIsciksVnIoXCJsb2FkXCIscik7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOlZyKFwidG9nZ2xlXCIscik7YnJlYWs7Y2FzZVwiaW5wdXRcIjpYKHIsbyksVnIoXCJpbnZhbGlkXCIscik7YnJlYWs7Y2FzZVwic2VsZWN0XCI6ci5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIW8ubXVsdGlwbGV9LFZyKFwiaW52YWxpZFwiLHIpO2JyZWFrO2Nhc2VcInRleHRhcmVhXCI6bGUocixvKSxWcihcImludmFsaWRcIixyKX1mb3IodmFyIGkgaW4geWUodCxvKSxsPW51bGwsbylpZihvLmhhc093blByb3BlcnR5KGkpKXt2YXIgcz1vW2ldO1wiY2hpbGRyZW5cIj09PWk/XCJzdHJpbmdcIj09PXR5cGVvZiBzP3IudGV4dENvbnRlbnQhPT1zJiYoITAhPT1vLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmWnIoci50ZXh0Q29udGVudCxzLGUpLGw9W1wiY2hpbGRyZW5cIixzXSk6XCJudW1iZXJcIj09PXR5cGVvZiBzJiZyLnRleHRDb250ZW50IT09XCJcIitzJiYoITAhPT1vLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmWnIoci50ZXh0Q29udGVudCxzLGUpLGw9W1wiY2hpbGRyZW5cIixcIlwiK3NdKTp1Lmhhc093blByb3BlcnR5KGkpJiZudWxsIT1zJiZcIm9uU2Nyb2xsXCI9PT1pJiZWcihcInNjcm9sbFwiLHIpfXN3aXRjaCh0KXtjYXNlXCJpbnB1dFwiOlEociksSihyLG8sITApO2JyZWFrO2Nhc2VcInRleHRhcmVhXCI6UShyKSxvZShyKTticmVhaztjYXNlXCJzZWxlY3RcIjpjYXNlXCJvcHRpb25cIjpicmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIj09PXR5cGVvZiBvLm9uQ2xpY2smJihyLm9uY2xpY2s9SnIpfXI9bCxuLnVwZGF0ZVF1ZXVlPXIsbnVsbCE9PXImJihuLmZsYWdzfD00KX1lbHNle2k9OT09PWwubm9kZVR5cGU/bDpsLm93bmVyRG9jdW1lbnQsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1lJiYoZT11ZSh0KSksXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1lP1wic2NyaXB0XCI9PT10PygoZT1pLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpLmlubmVySFRNTD1cIjxzY3JpcHQ+PFxcL3NjcmlwdD5cIixlPWUucmVtb3ZlQ2hpbGQoZS5maXJzdENoaWxkKSk6XCJzdHJpbmdcIj09PXR5cGVvZiByLmlzP2U9aS5jcmVhdGVFbGVtZW50KHQse2lzOnIuaXN9KTooZT1pLmNyZWF0ZUVsZW1lbnQodCksXCJzZWxlY3RcIj09PXQmJihpPWUsci5tdWx0aXBsZT9pLm11bHRpcGxlPSEwOnIuc2l6ZSYmKGkuc2l6ZT1yLnNpemUpKSk6ZT1pLmNyZWF0ZUVsZW1lbnROUyhlLHQpLGVbZGxdPW4sZVtwbF09cixSdShlLG4pLG4uc3RhdGVOb2RlPWU7ZTp7c3dpdGNoKGk9YmUodCxyKSx0KXtjYXNlXCJkaWFsb2dcIjpWcihcImNhbmNlbFwiLGUpLFZyKFwiY2xvc2VcIixlKSxsPXI7YnJlYWs7Y2FzZVwiaWZyYW1lXCI6Y2FzZVwib2JqZWN0XCI6Y2FzZVwiZW1iZWRcIjpWcihcImxvYWRcIixlKSxsPXI7YnJlYWs7Y2FzZVwidmlkZW9cIjpjYXNlXCJhdWRpb1wiOmZvcihsPTA7bDxPci5sZW5ndGg7bCsrKVZyKE9yW2xdLGUpO2w9cjticmVhaztjYXNlXCJzb3VyY2VcIjpWcihcImVycm9yXCIsZSksbD1yO2JyZWFrO2Nhc2VcImltZ1wiOmNhc2VcImltYWdlXCI6Y2FzZVwibGlua1wiOlZyKFwiZXJyb3JcIixlKSxWcihcImxvYWRcIixlKSxsPXI7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOlZyKFwidG9nZ2xlXCIsZSksbD1yO2JyZWFrO2Nhc2VcImlucHV0XCI6WChlLHIpLGw9WShlLHIpLFZyKFwiaW52YWxpZFwiLGUpO2JyZWFrO2Nhc2VcIm9wdGlvblwiOmRlZmF1bHQ6bD1yO2JyZWFrO2Nhc2VcInNlbGVjdFwiOmUuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFyLm11bHRpcGxlfSxsPUkoe30scix7dmFsdWU6dm9pZCAwfSksVnIoXCJpbnZhbGlkXCIsZSk7YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpsZShlLHIpLGw9cmUoZSxyKSxWcihcImludmFsaWRcIixlKX1mb3IobyBpbiB5ZSh0LGwpLHM9bClpZihzLmhhc093blByb3BlcnR5KG8pKXt2YXIgYz1zW29dO1wic3R5bGVcIj09PW8/dmUoZSxjKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1vP251bGwhPShjPWM/Yy5fX2h0bWw6dm9pZCAwKSYmZmUoZSxjKTpcImNoaWxkcmVuXCI9PT1vP1wic3RyaW5nXCI9PT10eXBlb2YgYz8oXCJ0ZXh0YXJlYVwiIT09dHx8XCJcIiE9PWMpJiZkZShlLGMpOlwibnVtYmVyXCI9PT10eXBlb2YgYyYmZGUoZSxcIlwiK2MpOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1vJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09byYmXCJhdXRvRm9jdXNcIiE9PW8mJih1Lmhhc093blByb3BlcnR5KG8pP251bGwhPWMmJlwib25TY3JvbGxcIj09PW8mJlZyKFwic2Nyb2xsXCIsZSk6bnVsbCE9YyYmYihlLG8sYyxpKSl9c3dpdGNoKHQpe2Nhc2VcImlucHV0XCI6UShlKSxKKGUsciwhMSk7YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpRKGUpLG9lKGUpO2JyZWFrO2Nhc2VcIm9wdGlvblwiOm51bGwhPXIudmFsdWUmJmUuc2V0QXR0cmlidXRlKFwidmFsdWVcIixcIlwiK0goci52YWx1ZSkpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOmUubXVsdGlwbGU9ISFyLm11bHRpcGxlLG51bGwhPShvPXIudmFsdWUpP3RlKGUsISFyLm11bHRpcGxlLG8sITEpOm51bGwhPXIuZGVmYXVsdFZhbHVlJiZ0ZShlLCEhci5tdWx0aXBsZSxyLmRlZmF1bHRWYWx1ZSwhMCk7YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgbC5vbkNsaWNrJiYoZS5vbmNsaWNrPUpyKX1zd2l0Y2godCl7Y2FzZVwiYnV0dG9uXCI6Y2FzZVwiaW5wdXRcIjpjYXNlXCJzZWxlY3RcIjpjYXNlXCJ0ZXh0YXJlYVwiOnI9ISFyLmF1dG9Gb2N1czticmVhayBlO2Nhc2VcImltZ1wiOnI9ITA7YnJlYWsgZTtkZWZhdWx0OnI9ITF9fXImJihuLmZsYWdzfD00KX1udWxsIT09bi5yZWYmJihuLmZsYWdzfD01MTIsbi5mbGFnc3w9MjA5NzE1Mil9cmV0dXJuIFF1KG4pLG51bGw7Y2FzZSA2OmlmKGUmJm51bGwhPW4uc3RhdGVOb2RlKUZ1KDAsbixlLm1lbW9pemVkUHJvcHMscik7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIHImJm51bGw9PT1uLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihhKDE2NikpO2lmKHQ9dG8obm8uY3VycmVudCksdG8oSmEuY3VycmVudCksZmEobikpe2lmKHI9bi5zdGF0ZU5vZGUsdD1uLm1lbW9pemVkUHJvcHMscltkbF09biwobz1yLm5vZGVWYWx1ZSE9PXQpJiZudWxsIT09KGU9dGEpKXN3aXRjaChlLnRhZyl7Y2FzZSAzOlpyKHIubm9kZVZhbHVlLHQsMCE9PSgxJmUubW9kZSkpO2JyZWFrO2Nhc2UgNTohMCE9PWUubWVtb2l6ZWRQcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJlpyKHIubm9kZVZhbHVlLHQsMCE9PSgxJmUubW9kZSkpfW8mJihuLmZsYWdzfD00KX1lbHNlKHI9KDk9PT10Lm5vZGVUeXBlP3Q6dC5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShyKSlbZGxdPW4sbi5zdGF0ZU5vZGU9cn1yZXR1cm4gUXUobiksbnVsbDtjYXNlIDEzOmlmKF9sKHVvKSxyPW4ubWVtb2l6ZWRTdGF0ZSxudWxsPT09ZXx8bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkKXtpZihsYSYmbnVsbCE9PXJhJiYwIT09KDEmbi5tb2RlKSYmMD09PSgxMjgmbi5mbGFncykpZGEoKSxwYSgpLG4uZmxhZ3N8PTk4NTYwLG89ITE7ZWxzZSBpZihvPWZhKG4pLG51bGwhPT1yJiZudWxsIT09ci5kZWh5ZHJhdGVkKXtpZihudWxsPT09ZSl7aWYoIW8pdGhyb3cgRXJyb3IoYSgzMTgpKTtpZighKG89bnVsbCE9PShvPW4ubWVtb2l6ZWRTdGF0ZSk/by5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKGEoMzE3KSk7b1tkbF09bn1lbHNlIHBhKCksMD09PSgxMjgmbi5mbGFncykmJihuLm1lbW9pemVkU3RhdGU9bnVsbCksbi5mbGFnc3w9NDtRdShuKSxvPSExfWVsc2UgbnVsbCE9PWFhJiYob3MoYWEpLGFhPW51bGwpLG89ITA7aWYoIW8pcmV0dXJuIDY1NTM2Jm4uZmxhZ3M/bjpudWxsfXJldHVybiAwIT09KDEyOCZuLmZsYWdzKT8obi5sYW5lcz10LG4pOigocj1udWxsIT09cikhPT0obnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUpJiZyJiYobi5jaGlsZC5mbGFnc3w9ODE5MiwwIT09KDEmbi5tb2RlKSYmKG51bGw9PT1lfHwwIT09KDEmdW8uY3VycmVudCk/MD09PUZpJiYoRmk9Myk6aHMoKSkpLG51bGwhPT1uLnVwZGF0ZVF1ZXVlJiYobi5mbGFnc3w9NCksUXUobiksbnVsbCk7Y2FzZSA0OnJldHVybiBsbygpLG51bGw9PT1lJiZqcihuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxRdShuKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFNhKG4udHlwZS5fY29udGV4dCksUXUobiksbnVsbDtjYXNlIDE5OmlmKF9sKHVvKSxudWxsPT09KG89bi5tZW1vaXplZFN0YXRlKSlyZXR1cm4gUXUobiksbnVsbDtpZihyPTAhPT0oMTI4Jm4uZmxhZ3MpLG51bGw9PT0oaT1vLnJlbmRlcmluZykpaWYocilXdShvLCExKTtlbHNle2lmKDAhPT1GaXx8bnVsbCE9PWUmJjAhPT0oMTI4JmUuZmxhZ3MpKWZvcihlPW4uY2hpbGQ7bnVsbCE9PWU7KXtpZihudWxsIT09KGk9aW8oZSkpKXtmb3Iobi5mbGFnc3w9MTI4LFd1KG8sITEpLG51bGwhPT0ocj1pLnVwZGF0ZVF1ZXVlKSYmKG4udXBkYXRlUXVldWU9cixuLmZsYWdzfD00KSxuLnN1YnRyZWVGbGFncz0wLHI9dCx0PW4uY2hpbGQ7bnVsbCE9PXQ7KWU9ciwobz10KS5mbGFncyY9MTQ2ODAwNjYsbnVsbD09PShpPW8uYWx0ZXJuYXRlKT8oby5jaGlsZExhbmVzPTAsby5sYW5lcz1lLG8uY2hpbGQ9bnVsbCxvLnN1YnRyZWVGbGFncz0wLG8ubWVtb2l6ZWRQcm9wcz1udWxsLG8ubWVtb2l6ZWRTdGF0ZT1udWxsLG8udXBkYXRlUXVldWU9bnVsbCxvLmRlcGVuZGVuY2llcz1udWxsLG8uc3RhdGVOb2RlPW51bGwpOihvLmNoaWxkTGFuZXM9aS5jaGlsZExhbmVzLG8ubGFuZXM9aS5sYW5lcyxvLmNoaWxkPWkuY2hpbGQsby5zdWJ0cmVlRmxhZ3M9MCxvLmRlbGV0aW9ucz1udWxsLG8ubWVtb2l6ZWRQcm9wcz1pLm1lbW9pemVkUHJvcHMsby5tZW1vaXplZFN0YXRlPWkubWVtb2l6ZWRTdGF0ZSxvLnVwZGF0ZVF1ZXVlPWkudXBkYXRlUXVldWUsby50eXBlPWkudHlwZSxlPWkuZGVwZW5kZW5jaWVzLG8uZGVwZW5kZW5jaWVzPW51bGw9PT1lP251bGw6e2xhbmVzOmUubGFuZXMsZmlyc3RDb250ZXh0OmUuZmlyc3RDb250ZXh0fSksdD10LnNpYmxpbmc7cmV0dXJuIENsKHVvLDEmdW8uY3VycmVudHwyKSxuLmNoaWxkfWU9ZS5zaWJsaW5nfW51bGwhPT1vLnRhaWwmJkdlKCk+amkmJihuLmZsYWdzfD0xMjgscj0hMCxXdShvLCExKSxuLmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIXIpaWYobnVsbCE9PShlPWlvKGkpKSl7aWYobi5mbGFnc3w9MTI4LHI9ITAsbnVsbCE9PSh0PWUudXBkYXRlUXVldWUpJiYobi51cGRhdGVRdWV1ZT10LG4uZmxhZ3N8PTQpLFd1KG8sITApLG51bGw9PT1vLnRhaWwmJlwiaGlkZGVuXCI9PT1vLnRhaWxNb2RlJiYhaS5hbHRlcm5hdGUmJiFsYSlyZXR1cm4gUXUobiksbnVsbH1lbHNlIDIqR2UoKS1vLnJlbmRlcmluZ1N0YXJ0VGltZT5qaSYmMTA3Mzc0MTgyNCE9PXQmJihuLmZsYWdzfD0xMjgscj0hMCxXdShvLCExKSxuLmxhbmVzPTQxOTQzMDQpO28uaXNCYWNrd2FyZHM/KGkuc2libGluZz1uLmNoaWxkLG4uY2hpbGQ9aSk6KG51bGwhPT0odD1vLmxhc3QpP3Quc2libGluZz1pOm4uY2hpbGQ9aSxvLmxhc3Q9aSl9cmV0dXJuIG51bGwhPT1vLnRhaWw/KG49by50YWlsLG8ucmVuZGVyaW5nPW4sby50YWlsPW4uc2libGluZyxvLnJlbmRlcmluZ1N0YXJ0VGltZT1HZSgpLG4uc2libGluZz1udWxsLHQ9dW8uY3VycmVudCxDbCh1byxyPzEmdHwyOjEmdCksbik6KFF1KG4pLG51bGwpO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gZnMoKSxyPW51bGwhPT1uLm1lbW9pemVkU3RhdGUsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUhPT1yJiYobi5mbGFnc3w9ODE5MiksciYmMCE9PSgxJm4ubW9kZSk/MCE9PSgxMDczNzQxODI0JlJpKSYmKFF1KG4pLDYmbi5zdWJ0cmVlRmxhZ3MmJihuLmZsYWdzfD04MTkyKSk6UXUobiksbnVsbDtjYXNlIDI0OmNhc2UgMjU6cmV0dXJuIG51bGx9dGhyb3cgRXJyb3IoYSgxNTYsbi50YWcpKX1mdW5jdGlvbiBLdShlLG4pe3N3aXRjaChuYShuKSxuLnRhZyl7Y2FzZSAxOnJldHVybiBSbChuLnR5cGUpJiZNbCgpLDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMzpyZXR1cm4gbG8oKSxfbCh6bCksX2woTmwpLGNvKCksMCE9PSg2NTUzNiYoZT1uLmZsYWdzKSkmJjA9PT0oMTI4JmUpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgNTpyZXR1cm4gb28obiksbnVsbDtjYXNlIDEzOmlmKF9sKHVvKSxudWxsIT09KGU9bi5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PWUuZGVoeWRyYXRlZCl7aWYobnVsbD09PW4uYWx0ZXJuYXRlKXRocm93IEVycm9yKGEoMzQwKSk7cGEoKX1yZXR1cm4gNjU1MzYmKGU9bi5mbGFncyk/KG4uZmxhZ3M9LTY1NTM3JmV8MTI4LG4pOm51bGw7Y2FzZSAxOTpyZXR1cm4gX2wodW8pLG51bGw7Y2FzZSA0OnJldHVybiBsbygpLG51bGw7Y2FzZSAxMDpyZXR1cm4gU2Eobi50eXBlLl9jb250ZXh0KSxudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gZnMoKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVJ1PWZ1bmN0aW9uKGUsbil7Zm9yKHZhciB0PW4uY2hpbGQ7bnVsbCE9PXQ7KXtpZig1PT09dC50YWd8fDY9PT10LnRhZyllLmFwcGVuZENoaWxkKHQuc3RhdGVOb2RlKTtlbHNlIGlmKDQhPT10LnRhZyYmbnVsbCE9PXQuY2hpbGQpe3QuY2hpbGQucmV0dXJuPXQsdD10LmNoaWxkO2NvbnRpbnVlfWlmKHQ9PT1uKWJyZWFrO2Zvcig7bnVsbD09PXQuc2libGluZzspe2lmKG51bGw9PT10LnJldHVybnx8dC5yZXR1cm49PT1uKXJldHVybjt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9fSxNdT1mdW5jdGlvbihlLG4sdCxyKXt2YXIgbD1lLm1lbW9pemVkUHJvcHM7aWYobCE9PXIpe2U9bi5zdGF0ZU5vZGUsdG8oSmEuY3VycmVudCk7dmFyIGEsbz1udWxsO3N3aXRjaCh0KXtjYXNlXCJpbnB1dFwiOmw9WShlLGwpLHI9WShlLHIpLG89W107YnJlYWs7Y2FzZVwic2VsZWN0XCI6bD1JKHt9LGwse3ZhbHVlOnZvaWQgMH0pLHI9SSh7fSxyLHt2YWx1ZTp2b2lkIDB9KSxvPVtdO2JyZWFrO2Nhc2VcInRleHRhcmVhXCI6bD1yZShlLGwpLHI9cmUoZSxyKSxvPVtdO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiIT09dHlwZW9mIGwub25DbGljayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHIub25DbGljayYmKGUub25jbGljaz1Kcil9Zm9yKGMgaW4geWUodCxyKSx0PW51bGwsbClpZighci5oYXNPd25Qcm9wZXJ0eShjKSYmbC5oYXNPd25Qcm9wZXJ0eShjKSYmbnVsbCE9bFtjXSlpZihcInN0eWxlXCI9PT1jKXt2YXIgaT1sW2NdO2ZvcihhIGluIGkpaS5oYXNPd25Qcm9wZXJ0eShhKSYmKHR8fCh0PXt9KSx0W2FdPVwiXCIpfWVsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIhPT1jJiZcImNoaWxkcmVuXCIhPT1jJiZcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09YyYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWMmJlwiYXV0b0ZvY3VzXCIhPT1jJiYodS5oYXNPd25Qcm9wZXJ0eShjKT9vfHwobz1bXSk6KG89b3x8W10pLnB1c2goYyxudWxsKSk7Zm9yKGMgaW4gcil7dmFyIHM9cltjXTtpZihpPW51bGwhPWw/bFtjXTp2b2lkIDAsci5oYXNPd25Qcm9wZXJ0eShjKSYmcyE9PWkmJihudWxsIT1zfHxudWxsIT1pKSlpZihcInN0eWxlXCI9PT1jKWlmKGkpe2ZvcihhIGluIGkpIWkuaGFzT3duUHJvcGVydHkoYSl8fHMmJnMuaGFzT3duUHJvcGVydHkoYSl8fCh0fHwodD17fSksdFthXT1cIlwiKTtmb3IoYSBpbiBzKXMuaGFzT3duUHJvcGVydHkoYSkmJmlbYV0hPT1zW2FdJiYodHx8KHQ9e30pLHRbYV09c1thXSl9ZWxzZSB0fHwob3x8KG89W10pLG8ucHVzaChjLHQpKSx0PXM7ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWM/KHM9cz9zLl9faHRtbDp2b2lkIDAsaT1pP2kuX19odG1sOnZvaWQgMCxudWxsIT1zJiZpIT09cyYmKG89b3x8W10pLnB1c2goYyxzKSk6XCJjaGlsZHJlblwiPT09Yz9cInN0cmluZ1wiIT09dHlwZW9mIHMmJlwibnVtYmVyXCIhPT10eXBlb2Ygc3x8KG89b3x8W10pLnB1c2goYyxcIlwiK3MpOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1jJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09YyYmKHUuaGFzT3duUHJvcGVydHkoYyk/KG51bGwhPXMmJlwib25TY3JvbGxcIj09PWMmJlZyKFwic2Nyb2xsXCIsZSksb3x8aT09PXN8fChvPVtdKSk6KG89b3x8W10pLnB1c2goYyxzKSl9dCYmKG89b3x8W10pLnB1c2goXCJzdHlsZVwiLHQpO3ZhciBjPW87KG4udXBkYXRlUXVldWU9YykmJihuLmZsYWdzfD00KX19LEZ1PWZ1bmN0aW9uKGUsbix0LHIpe3QhPT1yJiYobi5mbGFnc3w9NCl9O3ZhciBZdT0hMSxYdT0hMSxHdT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha1NldD9XZWFrU2V0OlNldCxadT1udWxsO2Z1bmN0aW9uIEp1KGUsbil7dmFyIHQ9ZS5yZWY7aWYobnVsbCE9PXQpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQpdHJ5e3QobnVsbCl9Y2F0Y2gocil7RXMoZSxuLHIpfWVsc2UgdC5jdXJyZW50PW51bGx9ZnVuY3Rpb24gZWkoZSxuLHQpe3RyeXt0KCl9Y2F0Y2gocil7RXMoZSxuLHIpfX12YXIgbmk9ITE7ZnVuY3Rpb24gdGkoZSxuLHQpe3ZhciByPW4udXBkYXRlUXVldWU7aWYobnVsbCE9PShyPW51bGwhPT1yP3IubGFzdEVmZmVjdDpudWxsKSl7dmFyIGw9cj1yLm5leHQ7ZG97aWYoKGwudGFnJmUpPT09ZSl7dmFyIGE9bC5kZXN0cm95O2wuZGVzdHJveT12b2lkIDAsdm9pZCAwIT09YSYmZWkobix0LGEpfWw9bC5uZXh0fXdoaWxlKGwhPT1yKX19ZnVuY3Rpb24gcmkoZSxuKXtpZihudWxsIT09KG49bnVsbCE9PShuPW4udXBkYXRlUXVldWUpP24ubGFzdEVmZmVjdDpudWxsKSl7dmFyIHQ9bj1uLm5leHQ7ZG97aWYoKHQudGFnJmUpPT09ZSl7dmFyIHI9dC5jcmVhdGU7dC5kZXN0cm95PXIoKX10PXQubmV4dH13aGlsZSh0IT09bil9fWZ1bmN0aW9uIGxpKGUpe3ZhciBuPWUucmVmO2lmKG51bGwhPT1uKXt2YXIgdD1lLnN0YXRlTm9kZTtlLnRhZyxlPXQsXCJmdW5jdGlvblwiPT09dHlwZW9mIG4/bihlKTpuLmN1cnJlbnQ9ZX19ZnVuY3Rpb24gYWkoZSl7dmFyIG49ZS5hbHRlcm5hdGU7bnVsbCE9PW4mJihlLmFsdGVybmF0ZT1udWxsLGFpKG4pKSxlLmNoaWxkPW51bGwsZS5kZWxldGlvbnM9bnVsbCxlLnNpYmxpbmc9bnVsbCw1PT09ZS50YWcmJihudWxsIT09KG49ZS5zdGF0ZU5vZGUpJiYoZGVsZXRlIG5bZGxdLGRlbGV0ZSBuW3BsXSxkZWxldGUgbltobF0sZGVsZXRlIG5bdmxdLGRlbGV0ZSBuW2dsXSkpLGUuc3RhdGVOb2RlPW51bGwsZS5yZXR1cm49bnVsbCxlLmRlcGVuZGVuY2llcz1udWxsLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGUucGVuZGluZ1Byb3BzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGx9ZnVuY3Rpb24gb2koZSl7cmV0dXJuIDU9PT1lLnRhZ3x8Mz09PWUudGFnfHw0PT09ZS50YWd9ZnVuY3Rpb24gdWkoZSl7ZTpmb3IoOzspe2Zvcig7bnVsbD09PWUuc2libGluZzspe2lmKG51bGw9PT1lLnJldHVybnx8b2koZS5yZXR1cm4pKXJldHVybiBudWxsO2U9ZS5yZXR1cm59Zm9yKGUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmc7NSE9PWUudGFnJiY2IT09ZS50YWcmJjE4IT09ZS50YWc7KXtpZigyJmUuZmxhZ3MpY29udGludWUgZTtpZihudWxsPT09ZS5jaGlsZHx8ND09PWUudGFnKWNvbnRpbnVlIGU7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGR9aWYoISgyJmUuZmxhZ3MpKXJldHVybiBlLnN0YXRlTm9kZX19ZnVuY3Rpb24gaWkoZSxuLHQpe3ZhciByPWUudGFnO2lmKDU9PT1yfHw2PT09cillPWUuc3RhdGVOb2RlLG4/OD09PXQubm9kZVR5cGU/dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLG4pOnQuaW5zZXJ0QmVmb3JlKGUsbik6KDg9PT10Lm5vZGVUeXBlPyhuPXQucGFyZW50Tm9kZSkuaW5zZXJ0QmVmb3JlKGUsdCk6KG49dCkuYXBwZW5kQ2hpbGQoZSksbnVsbCE9PSh0PXQuX3JlYWN0Um9vdENvbnRhaW5lcikmJnZvaWQgMCE9PXR8fG51bGwhPT1uLm9uY2xpY2t8fChuLm9uY2xpY2s9SnIpKTtlbHNlIGlmKDQhPT1yJiZudWxsIT09KGU9ZS5jaGlsZCkpZm9yKGlpKGUsbix0KSxlPWUuc2libGluZztudWxsIT09ZTspaWkoZSxuLHQpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIHNpKGUsbix0KXt2YXIgcj1lLnRhZztpZig1PT09cnx8Nj09PXIpZT1lLnN0YXRlTm9kZSxuP3QuaW5zZXJ0QmVmb3JlKGUsbik6dC5hcHBlbmRDaGlsZChlKTtlbHNlIGlmKDQhPT1yJiZudWxsIT09KGU9ZS5jaGlsZCkpZm9yKHNpKGUsbix0KSxlPWUuc2libGluZztudWxsIT09ZTspc2koZSxuLHQpLGU9ZS5zaWJsaW5nfXZhciBjaT1udWxsLGZpPSExO2Z1bmN0aW9uIGRpKGUsbix0KXtmb3IodD10LmNoaWxkO251bGwhPT10OylwaShlLG4sdCksdD10LnNpYmxpbmd9ZnVuY3Rpb24gcGkoZSxuLHQpe2lmKGFuJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYW4ub25Db21taXRGaWJlclVubW91bnQpdHJ5e2FuLm9uQ29tbWl0RmliZXJVbm1vdW50KGxuLHQpfWNhdGNoKHUpe31zd2l0Y2godC50YWcpe2Nhc2UgNTpYdXx8SnUodCxuKTtjYXNlIDY6dmFyIHI9Y2ksbD1maTtjaT1udWxsLGRpKGUsbix0KSxmaT1sLG51bGwhPT0oY2k9cikmJihmaT8oZT1jaSx0PXQuc3RhdGVOb2RlLDg9PT1lLm5vZGVUeXBlP2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KTplLnJlbW92ZUNoaWxkKHQpKTpjaS5yZW1vdmVDaGlsZCh0LnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgMTg6bnVsbCE9PWNpJiYoZmk/KGU9Y2ksdD10LnN0YXRlTm9kZSw4PT09ZS5ub2RlVHlwZT9pbChlLnBhcmVudE5vZGUsdCk6MT09PWUubm9kZVR5cGUmJmlsKGUsdCksQm4oZSkpOmlsKGNpLHQuc3RhdGVOb2RlKSk7YnJlYWs7Y2FzZSA0OnI9Y2ksbD1maSxjaT10LnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGZpPSEwLGRpKGUsbix0KSxjaT1yLGZpPWw7YnJlYWs7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKCFYdSYmKG51bGwhPT0ocj10LnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShyPXIubGFzdEVmZmVjdCkpKXtsPXI9ci5uZXh0O2Rve3ZhciBhPWwsbz1hLmRlc3Ryb3k7YT1hLnRhZyx2b2lkIDAhPT1vJiYoMCE9PSgyJmEpfHwwIT09KDQmYSkpJiZlaSh0LG4sbyksbD1sLm5leHR9d2hpbGUobCE9PXIpfWRpKGUsbix0KTticmVhaztjYXNlIDE6aWYoIVh1JiYoSnUodCxuKSxcImZ1bmN0aW9uXCI9PT10eXBlb2Yocj10LnN0YXRlTm9kZSkuY29tcG9uZW50V2lsbFVubW91bnQpKXRyeXtyLnByb3BzPXQubWVtb2l6ZWRQcm9wcyxyLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSxyLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2godSl7RXModCxuLHUpfWRpKGUsbix0KTticmVhaztjYXNlIDIxOmRpKGUsbix0KTticmVhaztjYXNlIDIyOjEmdC5tb2RlPyhYdT0ocj1YdSl8fG51bGwhPT10Lm1lbW9pemVkU3RhdGUsZGkoZSxuLHQpLFh1PXIpOmRpKGUsbix0KTticmVhaztkZWZhdWx0OmRpKGUsbix0KX19ZnVuY3Rpb24gbWkoZSl7dmFyIG49ZS51cGRhdGVRdWV1ZTtpZihudWxsIT09bil7ZS51cGRhdGVRdWV1ZT1udWxsO3ZhciB0PWUuc3RhdGVOb2RlO251bGw9PT10JiYodD1lLnN0YXRlTm9kZT1uZXcgR3UpLG4uZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIHI9TnMuYmluZChudWxsLGUsbik7dC5oYXMobil8fCh0LmFkZChuKSxuLnRoZW4ocixyKSl9KSl9fWZ1bmN0aW9uIGhpKGUsbil7dmFyIHQ9bi5kZWxldGlvbnM7aWYobnVsbCE9PXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBsPXRbcl07dHJ5e3ZhciBvPWUsdT1uLGk9dTtlOmZvcig7bnVsbCE9PWk7KXtzd2l0Y2goaS50YWcpe2Nhc2UgNTpjaT1pLnN0YXRlTm9kZSxmaT0hMTticmVhayBlO2Nhc2UgMzpjYXNlIDQ6Y2k9aS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxmaT0hMDticmVhayBlfWk9aS5yZXR1cm59aWYobnVsbD09PWNpKXRocm93IEVycm9yKGEoMTYwKSk7cGkobyx1LGwpLGNpPW51bGwsZmk9ITE7dmFyIHM9bC5hbHRlcm5hdGU7bnVsbCE9PXMmJihzLnJldHVybj1udWxsKSxsLnJldHVybj1udWxsfWNhdGNoKGMpe0VzKGwsbixjKX19aWYoMTI4NTQmbi5zdWJ0cmVlRmxhZ3MpZm9yKG49bi5jaGlsZDtudWxsIT09bjspdmkobixlKSxuPW4uc2libGluZ31mdW5jdGlvbiB2aShlLG4pe3ZhciB0PWUuYWx0ZXJuYXRlLHI9ZS5mbGFncztzd2l0Y2goZS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZihoaShuLGUpLGdpKGUpLDQmcil7dHJ5e3RpKDMsZSxlLnJldHVybikscmkoMyxlKX1jYXRjaCh2KXtFcyhlLGUucmV0dXJuLHYpfXRyeXt0aSg1LGUsZS5yZXR1cm4pfWNhdGNoKHYpe0VzKGUsZS5yZXR1cm4sdil9fWJyZWFrO2Nhc2UgMTpoaShuLGUpLGdpKGUpLDUxMiZyJiZudWxsIT09dCYmSnUodCx0LnJldHVybik7YnJlYWs7Y2FzZSA1OmlmKGhpKG4sZSksZ2koZSksNTEyJnImJm51bGwhPT10JiZKdSh0LHQucmV0dXJuKSwzMiZlLmZsYWdzKXt2YXIgbD1lLnN0YXRlTm9kZTt0cnl7ZGUobCxcIlwiKX1jYXRjaCh2KXtFcyhlLGUucmV0dXJuLHYpfX1pZig0JnImJm51bGwhPShsPWUuc3RhdGVOb2RlKSl7dmFyIG89ZS5tZW1vaXplZFByb3BzLHU9bnVsbCE9PXQ/dC5tZW1vaXplZFByb3BzOm8saT1lLnR5cGUscz1lLnVwZGF0ZVF1ZXVlO2lmKGUudXBkYXRlUXVldWU9bnVsbCxudWxsIT09cyl0cnl7XCJpbnB1dFwiPT09aSYmXCJyYWRpb1wiPT09by50eXBlJiZudWxsIT1vLm5hbWUmJkcobCxvKSxiZShpLHUpO3ZhciBjPWJlKGksbyk7Zm9yKHU9MDt1PHMubGVuZ3RoO3UrPTIpe3ZhciBmPXNbdV0sZD1zW3UrMV07XCJzdHlsZVwiPT09Zj92ZShsLGQpOlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWY/ZmUobCxkKTpcImNoaWxkcmVuXCI9PT1mP2RlKGwsZCk6YihsLGYsZCxjKX1zd2l0Y2goaSl7Y2FzZVwiaW5wdXRcIjpaKGwsbyk7YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjphZShsLG8pO2JyZWFrO2Nhc2VcInNlbGVjdFwiOnZhciBwPWwuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtsLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFvLm11bHRpcGxlO3ZhciBtPW8udmFsdWU7bnVsbCE9bT90ZShsLCEhby5tdWx0aXBsZSxtLCExKTpwIT09ISFvLm11bHRpcGxlJiYobnVsbCE9by5kZWZhdWx0VmFsdWU/dGUobCwhIW8ubXVsdGlwbGUsby5kZWZhdWx0VmFsdWUsITApOnRlKGwsISFvLm11bHRpcGxlLG8ubXVsdGlwbGU/W106XCJcIiwhMSkpfWxbcGxdPW99Y2F0Y2godil7RXMoZSxlLnJldHVybix2KX19YnJlYWs7Y2FzZSA2OmlmKGhpKG4sZSksZ2koZSksNCZyKXtpZihudWxsPT09ZS5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IoYSgxNjIpKTtsPWUuc3RhdGVOb2RlLG89ZS5tZW1vaXplZFByb3BzO3RyeXtsLm5vZGVWYWx1ZT1vfWNhdGNoKHYpe0VzKGUsZS5yZXR1cm4sdil9fWJyZWFrO2Nhc2UgMzppZihoaShuLGUpLGdpKGUpLDQmciYmbnVsbCE9PXQmJnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e0JuKG4uY29udGFpbmVySW5mbyl9Y2F0Y2godil7RXMoZSxlLnJldHVybix2KX1icmVhaztjYXNlIDQ6ZGVmYXVsdDpoaShuLGUpLGdpKGUpO2JyZWFrO2Nhc2UgMTM6aGkobixlKSxnaShlKSw4MTkyJihsPWUuY2hpbGQpLmZsYWdzJiYobz1udWxsIT09bC5tZW1vaXplZFN0YXRlLGwuc3RhdGVOb2RlLmlzSGlkZGVuPW8sIW98fG51bGwhPT1sLmFsdGVybmF0ZSYmbnVsbCE9PWwuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGV8fChBaT1HZSgpKSksNCZyJiZtaShlKTticmVhaztjYXNlIDIyOmlmKGY9bnVsbCE9PXQmJm51bGwhPT10Lm1lbW9pemVkU3RhdGUsMSZlLm1vZGU/KFh1PShjPVh1KXx8ZixoaShuLGUpLFh1PWMpOmhpKG4sZSksZ2koZSksODE5MiZyKXtpZihjPW51bGwhPT1lLm1lbW9pemVkU3RhdGUsKGUuc3RhdGVOb2RlLmlzSGlkZGVuPWMpJiYhZiYmMCE9PSgxJmUubW9kZSkpZm9yKFp1PWUsZj1lLmNoaWxkO251bGwhPT1mOyl7Zm9yKGQ9WnU9ZjtudWxsIT09WnU7KXtzd2l0Y2gobT0ocD1adSkuY2hpbGQscC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTp0aSg0LHAscC5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpKdShwLHAucmV0dXJuKTt2YXIgaD1wLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnRXaWxsVW5tb3VudCl7cj1wLHQ9cC5yZXR1cm47dHJ5e249cixoLnByb3BzPW4ubWVtb2l6ZWRQcm9wcyxoLnN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxoLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2godil7RXMocix0LHYpfX1icmVhaztjYXNlIDU6SnUocCxwLnJldHVybik7YnJlYWs7Y2FzZSAyMjppZihudWxsIT09cC5tZW1vaXplZFN0YXRlKXt3aShkKTtjb250aW51ZX19bnVsbCE9PW0/KG0ucmV0dXJuPXAsWnU9bSk6d2koZCl9Zj1mLnNpYmxpbmd9ZTpmb3IoZj1udWxsLGQ9ZTs7KXtpZig1PT09ZC50YWcpe2lmKG51bGw9PT1mKXtmPWQ7dHJ5e2w9ZC5zdGF0ZU5vZGUsYz9cImZ1bmN0aW9uXCI9PT10eXBlb2Yobz1sLnN0eWxlKS5zZXRQcm9wZXJ0eT9vLnNldFByb3BlcnR5KFwiZGlzcGxheVwiLFwibm9uZVwiLFwiaW1wb3J0YW50XCIpOm8uZGlzcGxheT1cIm5vbmVcIjooaT1kLnN0YXRlTm9kZSx1PXZvaWQgMCE9PShzPWQubWVtb2l6ZWRQcm9wcy5zdHlsZSkmJm51bGwhPT1zJiZzLmhhc093blByb3BlcnR5KFwiZGlzcGxheVwiKT9zLmRpc3BsYXk6bnVsbCxpLnN0eWxlLmRpc3BsYXk9aGUoXCJkaXNwbGF5XCIsdSkpfWNhdGNoKHYpe0VzKGUsZS5yZXR1cm4sdil9fX1lbHNlIGlmKDY9PT1kLnRhZyl7aWYobnVsbD09PWYpdHJ5e2Quc3RhdGVOb2RlLm5vZGVWYWx1ZT1jP1wiXCI6ZC5tZW1vaXplZFByb3BzfWNhdGNoKHYpe0VzKGUsZS5yZXR1cm4sdil9fWVsc2UgaWYoKDIyIT09ZC50YWcmJjIzIT09ZC50YWd8fG51bGw9PT1kLm1lbW9pemVkU3RhdGV8fGQ9PT1lKSYmbnVsbCE9PWQuY2hpbGQpe2QuY2hpbGQucmV0dXJuPWQsZD1kLmNoaWxkO2NvbnRpbnVlfWlmKGQ9PT1lKWJyZWFrIGU7Zm9yKDtudWxsPT09ZC5zaWJsaW5nOyl7aWYobnVsbD09PWQucmV0dXJufHxkLnJldHVybj09PWUpYnJlYWsgZTtmPT09ZCYmKGY9bnVsbCksZD1kLnJldHVybn1mPT09ZCYmKGY9bnVsbCksZC5zaWJsaW5nLnJldHVybj1kLnJldHVybixkPWQuc2libGluZ319YnJlYWs7Y2FzZSAxOTpoaShuLGUpLGdpKGUpLDQmciYmbWkoZSk7Y2FzZSAyMTp9fWZ1bmN0aW9uIGdpKGUpe3ZhciBuPWUuZmxhZ3M7aWYoMiZuKXt0cnl7ZTp7Zm9yKHZhciB0PWUucmV0dXJuO251bGwhPT10Oyl7aWYob2kodCkpe3ZhciByPXQ7YnJlYWsgZX10PXQucmV0dXJufXRocm93IEVycm9yKGEoMTYwKSl9c3dpdGNoKHIudGFnKXtjYXNlIDU6dmFyIGw9ci5zdGF0ZU5vZGU7MzImci5mbGFncyYmKGRlKGwsXCJcIiksci5mbGFncyY9LTMzKSxzaShlLHVpKGUpLGwpO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6dmFyIG89ci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpaShlLHVpKGUpLG8pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgxNjEpKX19Y2F0Y2godSl7RXMoZSxlLnJldHVybix1KX1lLmZsYWdzJj0tM300MDk2Jm4mJihlLmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24geWkoZSxuLHQpe1p1PWUsYmkoZSxuLHQpfWZ1bmN0aW9uIGJpKGUsbix0KXtmb3IodmFyIHI9MCE9PSgxJmUubW9kZSk7bnVsbCE9PVp1Oyl7dmFyIGw9WnUsYT1sLmNoaWxkO2lmKDIyPT09bC50YWcmJnIpe3ZhciBvPW51bGwhPT1sLm1lbW9pemVkU3RhdGV8fFl1O2lmKCFvKXt2YXIgdT1sLmFsdGVybmF0ZSxpPW51bGwhPT11JiZudWxsIT09dS5tZW1vaXplZFN0YXRlfHxYdTt1PVl1O3ZhciBzPVh1O2lmKFl1PW8sKFh1PWkpJiYhcylmb3IoWnU9bDtudWxsIT09WnU7KWk9KG89WnUpLmNoaWxkLDIyPT09by50YWcmJm51bGwhPT1vLm1lbW9pemVkU3RhdGU/U2kobCk6bnVsbCE9PWk/KGkucmV0dXJuPW8sWnU9aSk6U2kobCk7Zm9yKDtudWxsIT09YTspWnU9YSxiaShhLG4sdCksYT1hLnNpYmxpbmc7WnU9bCxZdT11LFh1PXN9a2koZSl9ZWxzZSAwIT09KDg3NzImbC5zdWJ0cmVlRmxhZ3MpJiZudWxsIT09YT8oYS5yZXR1cm49bCxadT1hKTpraShlKX19ZnVuY3Rpb24ga2koZSl7Zm9yKDtudWxsIT09WnU7KXt2YXIgbj1adTtpZigwIT09KDg3NzImbi5mbGFncykpe3ZhciB0PW4uYWx0ZXJuYXRlO3RyeXtpZigwIT09KDg3NzImbi5mbGFncykpc3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1Olh1fHxyaSg1LG4pO2JyZWFrO2Nhc2UgMTp2YXIgcj1uLnN0YXRlTm9kZTtpZig0Jm4uZmxhZ3MmJiFYdSlpZihudWxsPT09dClyLmNvbXBvbmVudERpZE1vdW50KCk7ZWxzZXt2YXIgbD1uLmVsZW1lbnRUeXBlPT09bi50eXBlP3QubWVtb2l6ZWRQcm9wczp2YShuLnR5cGUsdC5tZW1vaXplZFByb3BzKTtyLmNvbXBvbmVudERpZFVwZGF0ZShsLHQubWVtb2l6ZWRTdGF0ZSxyLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgbz1uLnVwZGF0ZVF1ZXVlO251bGwhPT1vJiZVYShuLG8scik7YnJlYWs7Y2FzZSAzOnZhciB1PW4udXBkYXRlUXVldWU7aWYobnVsbCE9PXUpe2lmKHQ9bnVsbCxudWxsIT09bi5jaGlsZClzd2l0Y2gobi5jaGlsZC50YWcpe2Nhc2UgNTpjYXNlIDE6dD1uLmNoaWxkLnN0YXRlTm9kZX1VYShuLHUsdCl9YnJlYWs7Y2FzZSA1OnZhciBpPW4uc3RhdGVOb2RlO2lmKG51bGw9PT10JiY0Jm4uZmxhZ3Mpe3Q9aTt2YXIgcz1uLm1lbW9pemVkUHJvcHM7c3dpdGNoKG4udHlwZSl7Y2FzZVwiYnV0dG9uXCI6Y2FzZVwiaW5wdXRcIjpjYXNlXCJzZWxlY3RcIjpjYXNlXCJ0ZXh0YXJlYVwiOnMuYXV0b0ZvY3VzJiZ0LmZvY3VzKCk7YnJlYWs7Y2FzZVwiaW1nXCI6cy5zcmMmJih0LnNyYz1zLnNyYyl9fWJyZWFrO2Nhc2UgNjpjYXNlIDQ6Y2FzZSAxMjpjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMjM6Y2FzZSAyNTpicmVhaztjYXNlIDEzOmlmKG51bGw9PT1uLm1lbW9pemVkU3RhdGUpe3ZhciBjPW4uYWx0ZXJuYXRlO2lmKG51bGwhPT1jKXt2YXIgZj1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWYpe3ZhciBkPWYuZGVoeWRyYXRlZDtudWxsIT09ZCYmQm4oZCl9fX1icmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMTYzKSl9WHV8fDUxMiZuLmZsYWdzJiZsaShuKX1jYXRjaChwKXtFcyhuLG4ucmV0dXJuLHApfX1pZihuPT09ZSl7WnU9bnVsbDticmVha31pZihudWxsIT09KHQ9bi5zaWJsaW5nKSl7dC5yZXR1cm49bi5yZXR1cm4sWnU9dDticmVha31adT1uLnJldHVybn19ZnVuY3Rpb24gd2koZSl7Zm9yKDtudWxsIT09WnU7KXt2YXIgbj1adTtpZihuPT09ZSl7WnU9bnVsbDticmVha312YXIgdD1uLnNpYmxpbmc7aWYobnVsbCE9PXQpe3QucmV0dXJuPW4ucmV0dXJuLFp1PXQ7YnJlYWt9WnU9bi5yZXR1cm59fWZ1bmN0aW9uIFNpKGUpe2Zvcig7bnVsbCE9PVp1Oyl7dmFyIG49WnU7dHJ5e3N3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTp2YXIgdD1uLnJldHVybjt0cnl7cmkoNCxuKX1jYXRjaChpKXtFcyhuLHQsaSl9YnJlYWs7Y2FzZSAxOnZhciByPW4uc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiByLmNvbXBvbmVudERpZE1vdW50KXt2YXIgbD1uLnJldHVybjt0cnl7ci5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKGkpe0VzKG4sbCxpKX19dmFyIGE9bi5yZXR1cm47dHJ5e2xpKG4pfWNhdGNoKGkpe0VzKG4sYSxpKX1icmVhaztjYXNlIDU6dmFyIG89bi5yZXR1cm47dHJ5e2xpKG4pfWNhdGNoKGkpe0VzKG4sbyxpKX19fWNhdGNoKGkpe0VzKG4sbi5yZXR1cm4saSl9aWYobj09PWUpe1p1PW51bGw7YnJlYWt9dmFyIHU9bi5zaWJsaW5nO2lmKG51bGwhPT11KXt1LnJldHVybj1uLnJldHVybixadT11O2JyZWFrfVp1PW4ucmV0dXJufX12YXIgeGksRWk9TWF0aC5jZWlsLF9pPWsuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixDaT1rLlJlYWN0Q3VycmVudE93bmVyLFBpPWsuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsTmk9MCx6aT1udWxsLFRpPW51bGwsTGk9MCxSaT0wLE1pPUVsKDApLEZpPTAsT2k9bnVsbCxEaT0wLElpPTAsVWk9MCxWaT1udWxsLCRpPW51bGwsQWk9MCxqaT0xLzAsQmk9bnVsbCxIaT0hMSxXaT1udWxsLFFpPW51bGwscWk9ITEsS2k9bnVsbCxZaT0wLFhpPTAsR2k9bnVsbCxaaT0tMSxKaT0wO2Z1bmN0aW9uIGVzKCl7cmV0dXJuIDAhPT0oNiZOaSk/R2UoKTotMSE9PVppP1ppOlppPUdlKCl9ZnVuY3Rpb24gbnMoZSl7cmV0dXJuIDA9PT0oMSZlLm1vZGUpPzE6MCE9PSgyJk5pKSYmMCE9PUxpP0xpJi1MaTpudWxsIT09aGEudHJhbnNpdGlvbj8oMD09PUppJiYoSmk9dm4oKSksSmkpOjAhPT0oZT1rbik/ZTplPXZvaWQgMD09PShlPXdpbmRvdy5ldmVudCk/MTY6R24oZS50eXBlKX1mdW5jdGlvbiB0cyhlLG4sdCxyKXtpZig1MDxYaSl0aHJvdyBYaT0wLEdpPW51bGwsRXJyb3IoYSgxODUpKTt5bihlLHQsciksMCE9PSgyJk5pKSYmZT09PXppfHwoZT09PXppJiYoMD09PSgyJk5pKSYmKElpfD10KSw0PT09RmkmJnVzKGUsTGkpKSxycyhlLHIpLDE9PT10JiYwPT09TmkmJjA9PT0oMSZuLm1vZGUpJiYoamk9R2UoKSs1MDAsVmwmJmpsKCkpKX1mdW5jdGlvbiBycyhlLG4pe3ZhciB0PWUuY2FsbGJhY2tOb2RlOyFmdW5jdGlvbihlLG4pe2Zvcih2YXIgdD1lLnN1c3BlbmRlZExhbmVzLHI9ZS5waW5nZWRMYW5lcyxsPWUuZXhwaXJhdGlvblRpbWVzLGE9ZS5wZW5kaW5nTGFuZXM7MDxhOyl7dmFyIG89MzEtb24oYSksdT0xPDxvLGk9bFtvXTstMT09PWk/MCE9PSh1JnQpJiYwPT09KHUmcil8fChsW29dPW1uKHUsbikpOmk8PW4mJihlLmV4cGlyZWRMYW5lc3w9dSksYSY9fnV9fShlLG4pO3ZhciByPXBuKGUsZT09PXppP0xpOjApO2lmKDA9PT1yKW51bGwhPT10JiZLZSh0KSxlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tQcmlvcml0eT0wO2Vsc2UgaWYobj1yJi1yLGUuY2FsbGJhY2tQcmlvcml0eSE9PW4pe2lmKG51bGwhPXQmJktlKHQpLDE9PT1uKTA9PT1lLnRhZz9mdW5jdGlvbihlKXtWbD0hMCxBbChlKX0oaXMuYmluZChudWxsLGUpKTpBbChpcy5iaW5kKG51bGwsZSkpLG9sKChmdW5jdGlvbigpezA9PT0oNiZOaSkmJmpsKCl9KSksdD1udWxsO2Vsc2V7c3dpdGNoKHduKHIpKXtjYXNlIDE6dD1KZTticmVhaztjYXNlIDQ6dD1lbjticmVhaztjYXNlIDE2OmRlZmF1bHQ6dD1ubjticmVhaztjYXNlIDUzNjg3MDkxMjp0PXJufXQ9enModCxscy5iaW5kKG51bGwsZSkpfWUuY2FsbGJhY2tQcmlvcml0eT1uLGUuY2FsbGJhY2tOb2RlPXR9fWZ1bmN0aW9uIGxzKGUsbil7aWYoWmk9LTEsSmk9MCwwIT09KDYmTmkpKXRocm93IEVycm9yKGEoMzI3KSk7dmFyIHQ9ZS5jYWxsYmFja05vZGU7aWYoU3MoKSYmZS5jYWxsYmFja05vZGUhPT10KXJldHVybiBudWxsO3ZhciByPXBuKGUsZT09PXppP0xpOjApO2lmKDA9PT1yKXJldHVybiBudWxsO2lmKDAhPT0oMzAmcil8fDAhPT0ociZlLmV4cGlyZWRMYW5lcyl8fG4pbj12cyhlLHIpO2Vsc2V7bj1yO3ZhciBsPU5pO05pfD0yO3ZhciBvPW1zKCk7Zm9yKHppPT09ZSYmTGk9PT1ufHwoQmk9bnVsbCxqaT1HZSgpKzUwMCxkcyhlLG4pKTs7KXRyeXt5cygpO2JyZWFrfWNhdGNoKGkpe3BzKGUsaSl9d2EoKSxfaS5jdXJyZW50PW8sTmk9bCxudWxsIT09VGk/bj0wOih6aT1udWxsLExpPTAsbj1GaSl9aWYoMCE9PW4pe2lmKDI9PT1uJiYoMCE9PShsPWhuKGUpKSYmKHI9bCxuPWFzKGUsbCkpKSwxPT09bil0aHJvdyB0PU9pLGRzKGUsMCksdXMoZSxyKSxycyhlLEdlKCkpLHQ7aWYoNj09PW4pdXMoZSxyKTtlbHNle2lmKGw9ZS5jdXJyZW50LmFsdGVybmF0ZSwwPT09KDMwJnIpJiYhZnVuY3Rpb24oZSl7Zm9yKHZhciBuPWU7Oyl7aWYoMTYzODQmbi5mbGFncyl7dmFyIHQ9bi51cGRhdGVRdWV1ZTtpZihudWxsIT09dCYmbnVsbCE9PSh0PXQuc3RvcmVzKSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGw9dFtyXSxhPWwuZ2V0U25hcHNob3Q7bD1sLnZhbHVlO3RyeXtpZighdXIoYSgpLGwpKXJldHVybiExfWNhdGNoKHUpe3JldHVybiExfX19aWYodD1uLmNoaWxkLDE2Mzg0Jm4uc3VidHJlZUZsYWdzJiZudWxsIT09dCl0LnJldHVybj1uLG49dDtlbHNle2lmKG49PT1lKWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT1lKXJldHVybiEwO249bi5yZXR1cm59bi5zaWJsaW5nLnJldHVybj1uLnJldHVybixuPW4uc2libGluZ319cmV0dXJuITB9KGwpJiYoMj09PShuPXZzKGUscikpJiYoMCE9PShvPWhuKGUpKSYmKHI9byxuPWFzKGUsbykpKSwxPT09bikpdGhyb3cgdD1PaSxkcyhlLDApLHVzKGUscikscnMoZSxHZSgpKSx0O3N3aXRjaChlLmZpbmlzaGVkV29yaz1sLGUuZmluaXNoZWRMYW5lcz1yLG4pe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IoYSgzNDUpKTtjYXNlIDI6Y2FzZSA1OndzKGUsJGksQmkpO2JyZWFrO2Nhc2UgMzppZih1cyhlLHIpLCgxMzAwMjM0MjQmcik9PT1yJiYxMDwobj1BaSs1MDAtR2UoKSkpe2lmKDAhPT1wbihlLDApKWJyZWFrO2lmKCgobD1lLnN1c3BlbmRlZExhbmVzKSZyKSE9PXIpe2VzKCksZS5waW5nZWRMYW5lc3w9ZS5zdXNwZW5kZWRMYW5lcyZsO2JyZWFrfWUudGltZW91dEhhbmRsZT1ybCh3cy5iaW5kKG51bGwsZSwkaSxCaSksbik7YnJlYWt9d3MoZSwkaSxCaSk7YnJlYWs7Y2FzZSA0OmlmKHVzKGUsciksKDQxOTQyNDAmcik9PT1yKWJyZWFrO2ZvcihuPWUuZXZlbnRUaW1lcyxsPS0xOzA8cjspe3ZhciB1PTMxLW9uKHIpO289MTw8dSwodT1uW3VdKT5sJiYobD11KSxyJj1+b31pZihyPWwsMTA8KHI9KDEyMD4ocj1HZSgpLXIpPzEyMDo0ODA+cj80ODA6MTA4MD5yPzEwODA6MTkyMD5yPzE5MjA6M2UzPnI/M2UzOjQzMjA+cj80MzIwOjE5NjAqRWkoci8xOTYwKSktcikpe2UudGltZW91dEhhbmRsZT1ybCh3cy5iaW5kKG51bGwsZSwkaSxCaSkscik7YnJlYWt9d3MoZSwkaSxCaSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihhKDMyOSkpfX19cmV0dXJuIHJzKGUsR2UoKSksZS5jYWxsYmFja05vZGU9PT10P2xzLmJpbmQobnVsbCxlKTpudWxsfWZ1bmN0aW9uIGFzKGUsbil7dmFyIHQ9Vmk7cmV0dXJuIGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmKGRzKGUsbikuZmxhZ3N8PTI1NiksMiE9PShlPXZzKGUsbikpJiYobj0kaSwkaT10LG51bGwhPT1uJiZvcyhuKSksZX1mdW5jdGlvbiBvcyhlKXtudWxsPT09JGk/JGk9ZTokaS5wdXNoLmFwcGx5KCRpLGUpfWZ1bmN0aW9uIHVzKGUsbil7Zm9yKG4mPX5VaSxuJj1+SWksZS5zdXNwZW5kZWRMYW5lc3w9bixlLnBpbmdlZExhbmVzJj1+bixlPWUuZXhwaXJhdGlvblRpbWVzOzA8bjspe3ZhciB0PTMxLW9uKG4pLHI9MTw8dDtlW3RdPS0xLG4mPX5yfX1mdW5jdGlvbiBpcyhlKXtpZigwIT09KDYmTmkpKXRocm93IEVycm9yKGEoMzI3KSk7U3MoKTt2YXIgbj1wbihlLDApO2lmKDA9PT0oMSZuKSlyZXR1cm4gcnMoZSxHZSgpKSxudWxsO3ZhciB0PXZzKGUsbik7aWYoMCE9PWUudGFnJiYyPT09dCl7dmFyIHI9aG4oZSk7MCE9PXImJihuPXIsdD1hcyhlLHIpKX1pZigxPT09dCl0aHJvdyB0PU9pLGRzKGUsMCksdXMoZSxuKSxycyhlLEdlKCkpLHQ7aWYoNj09PXQpdGhyb3cgRXJyb3IoYSgzNDUpKTtyZXR1cm4gZS5maW5pc2hlZFdvcms9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZpbmlzaGVkTGFuZXM9bix3cyhlLCRpLEJpKSxycyhlLEdlKCkpLG51bGx9ZnVuY3Rpb24gc3MoZSxuKXt2YXIgdD1OaTtOaXw9MTt0cnl7cmV0dXJuIGUobil9ZmluYWxseXswPT09KE5pPXQpJiYoamk9R2UoKSs1MDAsVmwmJmpsKCkpfX1mdW5jdGlvbiBjcyhlKXtudWxsIT09S2kmJjA9PT1LaS50YWcmJjA9PT0oNiZOaSkmJlNzKCk7dmFyIG49Tmk7Tml8PTE7dmFyIHQ9UGkudHJhbnNpdGlvbixyPWtuO3RyeXtpZihQaS50cmFuc2l0aW9uPW51bGwsa249MSxlKXJldHVybiBlKCl9ZmluYWxseXtrbj1yLFBpLnRyYW5zaXRpb249dCwwPT09KDYmKE5pPW4pKSYmamwoKX19ZnVuY3Rpb24gZnMoKXtSaT1NaS5jdXJyZW50LF9sKE1pKX1mdW5jdGlvbiBkcyhlLG4pe2UuZmluaXNoZWRXb3JrPW51bGwsZS5maW5pc2hlZExhbmVzPTA7dmFyIHQ9ZS50aW1lb3V0SGFuZGxlO2lmKC0xIT09dCYmKGUudGltZW91dEhhbmRsZT0tMSxsbCh0KSksbnVsbCE9PVRpKWZvcih0PVRpLnJldHVybjtudWxsIT09dDspe3ZhciByPXQ7c3dpdGNoKG5hKHIpLHIudGFnKXtjYXNlIDE6bnVsbCE9PShyPXIudHlwZS5jaGlsZENvbnRleHRUeXBlcykmJnZvaWQgMCE9PXImJk1sKCk7YnJlYWs7Y2FzZSAzOmxvKCksX2woemwpLF9sKE5sKSxjbygpO2JyZWFrO2Nhc2UgNTpvbyhyKTticmVhaztjYXNlIDQ6bG8oKTticmVhaztjYXNlIDEzOmNhc2UgMTk6X2wodW8pO2JyZWFrO2Nhc2UgMTA6U2Eoci50eXBlLl9jb250ZXh0KTticmVhaztjYXNlIDIyOmNhc2UgMjM6ZnMoKX10PXQucmV0dXJufWlmKHppPWUsVGk9ZT1NcyhlLmN1cnJlbnQsbnVsbCksTGk9Umk9bixGaT0wLE9pPW51bGwsVWk9SWk9RGk9MCwkaT1WaT1udWxsLG51bGwhPT1DYSl7Zm9yKG49MDtuPENhLmxlbmd0aDtuKyspaWYobnVsbCE9PShyPSh0PUNhW25dKS5pbnRlcmxlYXZlZCkpe3QuaW50ZXJsZWF2ZWQ9bnVsbDt2YXIgbD1yLm5leHQsYT10LnBlbmRpbmc7aWYobnVsbCE9PWEpe3ZhciBvPWEubmV4dDthLm5leHQ9bCxyLm5leHQ9b310LnBlbmRpbmc9cn1DYT1udWxsfXJldHVybiBlfWZ1bmN0aW9uIHBzKGUsbil7Zm9yKDs7KXt2YXIgdD1UaTt0cnl7aWYod2EoKSxmby5jdXJyZW50PW91LHlvKXtmb3IodmFyIHI9aG8ubWVtb2l6ZWRTdGF0ZTtudWxsIT09cjspe3ZhciBsPXIucXVldWU7bnVsbCE9PWwmJihsLnBlbmRpbmc9bnVsbCkscj1yLm5leHR9eW89ITF9aWYobW89MCxnbz12bz1obz1udWxsLGJvPSExLGtvPTAsQ2kuY3VycmVudD1udWxsLG51bGw9PT10fHxudWxsPT09dC5yZXR1cm4pe0ZpPTEsT2k9bixUaT1udWxsO2JyZWFrfWU6e3ZhciBvPWUsdT10LnJldHVybixpPXQscz1uO2lmKG49TGksaS5mbGFnc3w9MzI3NjgsbnVsbCE9PXMmJlwib2JqZWN0XCI9PT10eXBlb2YgcyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHMudGhlbil7dmFyIGM9cyxmPWksZD1mLnRhZztpZigwPT09KDEmZi5tb2RlKSYmKDA9PT1kfHwxMT09PWR8fDE1PT09ZCkpe3ZhciBwPWYuYWx0ZXJuYXRlO3A/KGYudXBkYXRlUXVldWU9cC51cGRhdGVRdWV1ZSxmLm1lbW9pemVkU3RhdGU9cC5tZW1vaXplZFN0YXRlLGYubGFuZXM9cC5sYW5lcyk6KGYudXBkYXRlUXVldWU9bnVsbCxmLm1lbW9pemVkU3RhdGU9bnVsbCl9dmFyIG09Z3UodSk7aWYobnVsbCE9PW0pe20uZmxhZ3MmPS0yNTcseXUobSx1LGksMCxuKSwxJm0ubW9kZSYmdnUobyxjLG4pLHM9Yzt2YXIgaD0obj1tKS51cGRhdGVRdWV1ZTtpZihudWxsPT09aCl7dmFyIHY9bmV3IFNldDt2LmFkZChzKSxuLnVwZGF0ZVF1ZXVlPXZ9ZWxzZSBoLmFkZChzKTticmVhayBlfWlmKDA9PT0oMSZuKSl7dnUobyxjLG4pLGhzKCk7YnJlYWsgZX1zPUVycm9yKGEoNDI2KSl9ZWxzZSBpZihsYSYmMSZpLm1vZGUpe3ZhciBnPWd1KHUpO2lmKG51bGwhPT1nKXswPT09KDY1NTM2JmcuZmxhZ3MpJiYoZy5mbGFnc3w9MjU2KSx5dShnLHUsaSwwLG4pLG1hKGN1KHMsaSkpO2JyZWFrIGV9fW89cz1jdShzLGkpLDQhPT1GaSYmKEZpPTIpLG51bGw9PT1WaT9WaT1bb106VmkucHVzaChvKSxvPXU7ZG97c3dpdGNoKG8udGFnKXtjYXNlIDM6by5mbGFnc3w9NjU1MzYsbiY9LW4sby5sYW5lc3w9bixEYShvLG11KDAscyxuKSk7YnJlYWsgZTtjYXNlIDE6aT1zO3ZhciB5PW8udHlwZSxiPW8uc3RhdGVOb2RlO2lmKDA9PT0oMTI4Jm8uZmxhZ3MpJiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHkuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxudWxsIT09YiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGIuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09UWl8fCFRaS5oYXMoYikpKSl7by5mbGFnc3w9NjU1MzYsbiY9LW4sby5sYW5lc3w9bixEYShvLGh1KG8saSxuKSk7YnJlYWsgZX19bz1vLnJldHVybn13aGlsZShudWxsIT09byl9a3ModCl9Y2F0Y2goayl7bj1rLFRpPT09dCYmbnVsbCE9PXQmJihUaT10PXQucmV0dXJuKTtjb250aW51ZX1icmVha319ZnVuY3Rpb24gbXMoKXt2YXIgZT1faS5jdXJyZW50O3JldHVybiBfaS5jdXJyZW50PW91LG51bGw9PT1lP291OmV9ZnVuY3Rpb24gaHMoKXswIT09RmkmJjMhPT1GaSYmMiE9PUZpfHwoRmk9NCksbnVsbD09PXppfHwwPT09KDI2ODQzNTQ1NSZEaSkmJjA9PT0oMjY4NDM1NDU1JklpKXx8dXMoemksTGkpfWZ1bmN0aW9uIHZzKGUsbil7dmFyIHQ9Tmk7Tml8PTI7dmFyIHI9bXMoKTtmb3Ioemk9PT1lJiZMaT09PW58fChCaT1udWxsLGRzKGUsbikpOzspdHJ5e2dzKCk7YnJlYWt9Y2F0Y2gobCl7cHMoZSxsKX1pZih3YSgpLE5pPXQsX2kuY3VycmVudD1yLG51bGwhPT1UaSl0aHJvdyBFcnJvcihhKDI2MSkpO3JldHVybiB6aT1udWxsLExpPTAsRml9ZnVuY3Rpb24gZ3MoKXtmb3IoO251bGwhPT1UaTspYnMoVGkpfWZ1bmN0aW9uIHlzKCl7Zm9yKDtudWxsIT09VGkmJiFZZSgpOylicyhUaSl9ZnVuY3Rpb24gYnMoZSl7dmFyIG49eGkoZS5hbHRlcm5hdGUsZSxSaSk7ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT1uP2tzKGUpOlRpPW4sQ2kuY3VycmVudD1udWxsfWZ1bmN0aW9uIGtzKGUpe3ZhciBuPWU7ZG97dmFyIHQ9bi5hbHRlcm5hdGU7aWYoZT1uLnJldHVybiwwPT09KDMyNzY4Jm4uZmxhZ3MpKXtpZihudWxsIT09KHQ9cXUodCxuLFJpKSkpcmV0dXJuIHZvaWQoVGk9dCl9ZWxzZXtpZihudWxsIT09KHQ9S3UodCxuKSkpcmV0dXJuIHQuZmxhZ3MmPTMyNzY3LHZvaWQoVGk9dCk7aWYobnVsbD09PWUpcmV0dXJuIEZpPTYsdm9pZChUaT1udWxsKTtlLmZsYWdzfD0zMjc2OCxlLnN1YnRyZWVGbGFncz0wLGUuZGVsZXRpb25zPW51bGx9aWYobnVsbCE9PShuPW4uc2libGluZykpcmV0dXJuIHZvaWQoVGk9bik7VGk9bj1lfXdoaWxlKG51bGwhPT1uKTswPT09RmkmJihGaT01KX1mdW5jdGlvbiB3cyhlLG4sdCl7dmFyIHI9a24sbD1QaS50cmFuc2l0aW9uO3RyeXtQaS50cmFuc2l0aW9uPW51bGwsa249MSxmdW5jdGlvbihlLG4sdCxyKXtkb3tTcygpfXdoaWxlKG51bGwhPT1LaSk7aWYoMCE9PSg2Jk5pKSl0aHJvdyBFcnJvcihhKDMyNykpO3Q9ZS5maW5pc2hlZFdvcms7dmFyIGw9ZS5maW5pc2hlZExhbmVzO2lmKG51bGw9PT10KXJldHVybiBudWxsO2lmKGUuZmluaXNoZWRXb3JrPW51bGwsZS5maW5pc2hlZExhbmVzPTAsdD09PWUuY3VycmVudCl0aHJvdyBFcnJvcihhKDE3NykpO2UuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7dmFyIG89dC5sYW5lc3x0LmNoaWxkTGFuZXM7aWYoZnVuY3Rpb24oZSxuKXt2YXIgdD1lLnBlbmRpbmdMYW5lcyZ+bjtlLnBlbmRpbmdMYW5lcz1uLGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTAsZS5leHBpcmVkTGFuZXMmPW4sZS5tdXRhYmxlUmVhZExhbmVzJj1uLGUuZW50YW5nbGVkTGFuZXMmPW4sbj1lLmVudGFuZ2xlbWVudHM7dmFyIHI9ZS5ldmVudFRpbWVzO2ZvcihlPWUuZXhwaXJhdGlvblRpbWVzOzA8dDspe3ZhciBsPTMxLW9uKHQpLGE9MTw8bDtuW2xdPTAscltsXT0tMSxlW2xdPS0xLHQmPX5hfX0oZSxvKSxlPT09emkmJihUaT16aT1udWxsLExpPTApLDA9PT0oMjA2NCZ0LnN1YnRyZWVGbGFncykmJjA9PT0oMjA2NCZ0LmZsYWdzKXx8cWl8fChxaT0hMCx6cyhubiwoZnVuY3Rpb24oKXtyZXR1cm4gU3MoKSxudWxsfSkpKSxvPTAhPT0oMTU5OTAmdC5mbGFncyksMCE9PSgxNTk5MCZ0LnN1YnRyZWVGbGFncyl8fG8pe289UGkudHJhbnNpdGlvbixQaS50cmFuc2l0aW9uPW51bGw7dmFyIHU9a247a249MTt2YXIgaT1OaTtOaXw9NCxDaS5jdXJyZW50PW51bGwsZnVuY3Rpb24oZSxuKXtpZihlbD1XbixwcihlPWRyKCkpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBlKXZhciB0PXtzdGFydDplLnNlbGVjdGlvblN0YXJ0LGVuZDplLnNlbGVjdGlvbkVuZH07ZWxzZSBlOnt2YXIgcj0odD0odD1lLm93bmVyRG9jdW1lbnQpJiZ0LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKTtpZihyJiYwIT09ci5yYW5nZUNvdW50KXt0PXIuYW5jaG9yTm9kZTt2YXIgbD1yLmFuY2hvck9mZnNldCxvPXIuZm9jdXNOb2RlO3I9ci5mb2N1c09mZnNldDt0cnl7dC5ub2RlVHlwZSxvLm5vZGVUeXBlfWNhdGNoKHcpe3Q9bnVsbDticmVhayBlfXZhciB1PTAsaT0tMSxzPS0xLGM9MCxmPTAsZD1lLHA9bnVsbDtuOmZvcig7Oyl7Zm9yKHZhciBtO2QhPT10fHwwIT09bCYmMyE9PWQubm9kZVR5cGV8fChpPXUrbCksZCE9PW98fDAhPT1yJiYzIT09ZC5ub2RlVHlwZXx8KHM9dStyKSwzPT09ZC5ub2RlVHlwZSYmKHUrPWQubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShtPWQuZmlyc3RDaGlsZCk7KXA9ZCxkPW07Zm9yKDs7KXtpZihkPT09ZSlicmVhayBuO2lmKHA9PT10JiYrK2M9PT1sJiYoaT11KSxwPT09byYmKytmPT09ciYmKHM9dSksbnVsbCE9PShtPWQubmV4dFNpYmxpbmcpKWJyZWFrO3A9KGQ9cCkucGFyZW50Tm9kZX1kPW19dD0tMT09PWl8fC0xPT09cz9udWxsOntzdGFydDppLGVuZDpzfX1lbHNlIHQ9bnVsbH10PXR8fHtzdGFydDowLGVuZDowfX1lbHNlIHQ9bnVsbDtmb3Iobmw9e2ZvY3VzZWRFbGVtOmUsc2VsZWN0aW9uUmFuZ2U6dH0sV249ITEsWnU9bjtudWxsIT09WnU7KWlmKGU9KG49WnUpLmNoaWxkLDAhPT0oMTAyOCZuLnN1YnRyZWVGbGFncykmJm51bGwhPT1lKWUucmV0dXJuPW4sWnU9ZTtlbHNlIGZvcig7bnVsbCE9PVp1Oyl7bj1adTt0cnl7dmFyIGg9bi5hbHRlcm5hdGU7aWYoMCE9PSgxMDI0Jm4uZmxhZ3MpKXN3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OmJyZWFrO2Nhc2UgMTppZihudWxsIT09aCl7dmFyIHY9aC5tZW1vaXplZFByb3BzLGc9aC5tZW1vaXplZFN0YXRlLHk9bi5zdGF0ZU5vZGUsYj15LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKG4uZWxlbWVudFR5cGU9PT1uLnR5cGU/djp2YShuLnR5cGUsdiksZyk7eS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1ifWJyZWFrO2Nhc2UgMzp2YXIgaz1uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOzE9PT1rLm5vZGVUeXBlP2sudGV4dENvbnRlbnQ9XCJcIjo5PT09ay5ub2RlVHlwZSYmay5kb2N1bWVudEVsZW1lbnQmJmsucmVtb3ZlQ2hpbGQoay5kb2N1bWVudEVsZW1lbnQpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYSgxNjMpKX19Y2F0Y2godyl7RXMobixuLnJldHVybix3KX1pZihudWxsIT09KGU9bi5zaWJsaW5nKSl7ZS5yZXR1cm49bi5yZXR1cm4sWnU9ZTticmVha31adT1uLnJldHVybn1oPW5pLG5pPSExfShlLHQpLHZpKHQsZSksbXIobmwpLFduPSEhZWwsbmw9ZWw9bnVsbCxlLmN1cnJlbnQ9dCx5aSh0LGUsbCksWGUoKSxOaT1pLGtuPXUsUGkudHJhbnNpdGlvbj1vfWVsc2UgZS5jdXJyZW50PXQ7aWYocWkmJihxaT0hMSxLaT1lLFlpPWwpLDA9PT0obz1lLnBlbmRpbmdMYW5lcykmJihRaT1udWxsKSxmdW5jdGlvbihlKXtpZihhbiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGFuLm9uQ29tbWl0RmliZXJSb290KXRyeXthbi5vbkNvbW1pdEZpYmVyUm9vdChsbixlLHZvaWQgMCwxMjg9PT0oMTI4JmUuY3VycmVudC5mbGFncykpfWNhdGNoKG4pe319KHQuc3RhdGVOb2RlKSxycyhlLEdlKCkpLG51bGwhPT1uKWZvcihyPWUub25SZWNvdmVyYWJsZUVycm9yLHQ9MDt0PG4ubGVuZ3RoO3QrKylsPW5bdF0scihsLnZhbHVlLHtjb21wb25lbnRTdGFjazpsLnN0YWNrLGRpZ2VzdDpsLmRpZ2VzdH0pO2lmKEhpKXRocm93IEhpPSExLGU9V2ksV2k9bnVsbCxlOzAhPT0oMSZZaSkmJjAhPT1lLnRhZyYmU3MoKSwwIT09KDEmKG89ZS5wZW5kaW5nTGFuZXMpKT9lPT09R2k/WGkrKzooWGk9MCxHaT1lKTpYaT0wLGpsKCl9KGUsbix0LHIpfWZpbmFsbHl7UGkudHJhbnNpdGlvbj1sLGtuPXJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gU3MoKXtpZihudWxsIT09S2kpe3ZhciBlPXduKFlpKSxuPVBpLnRyYW5zaXRpb24sdD1rbjt0cnl7aWYoUGkudHJhbnNpdGlvbj1udWxsLGtuPTE2PmU/MTY6ZSxudWxsPT09S2kpdmFyIHI9ITE7ZWxzZXtpZihlPUtpLEtpPW51bGwsWWk9MCwwIT09KDYmTmkpKXRocm93IEVycm9yKGEoMzMxKSk7dmFyIGw9Tmk7Zm9yKE5pfD00LFp1PWUuY3VycmVudDtudWxsIT09WnU7KXt2YXIgbz1adSx1PW8uY2hpbGQ7aWYoMCE9PSgxNiZadS5mbGFncykpe3ZhciBpPW8uZGVsZXRpb25zO2lmKG51bGwhPT1pKXtmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGM9aVtzXTtmb3IoWnU9YztudWxsIT09WnU7KXt2YXIgZj1adTtzd2l0Y2goZi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dGkoOCxmLG8pfXZhciBkPWYuY2hpbGQ7aWYobnVsbCE9PWQpZC5yZXR1cm49ZixadT1kO2Vsc2UgZm9yKDtudWxsIT09WnU7KXt2YXIgcD0oZj1adSkuc2libGluZyxtPWYucmV0dXJuO2lmKGFpKGYpLGY9PT1jKXtadT1udWxsO2JyZWFrfWlmKG51bGwhPT1wKXtwLnJldHVybj1tLFp1PXA7YnJlYWt9WnU9bX19fXZhciBoPW8uYWx0ZXJuYXRlO2lmKG51bGwhPT1oKXt2YXIgdj1oLmNoaWxkO2lmKG51bGwhPT12KXtoLmNoaWxkPW51bGw7ZG97dmFyIGc9di5zaWJsaW5nO3Yuc2libGluZz1udWxsLHY9Z313aGlsZShudWxsIT09dil9fVp1PW99fWlmKDAhPT0oMjA2NCZvLnN1YnRyZWVGbGFncykmJm51bGwhPT11KXUucmV0dXJuPW8sWnU9dTtlbHNlIGU6Zm9yKDtudWxsIT09WnU7KXtpZigwIT09KDIwNDgmKG89WnUpLmZsYWdzKSlzd2l0Y2goby50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dGkoOSxvLG8ucmV0dXJuKX12YXIgeT1vLnNpYmxpbmc7aWYobnVsbCE9PXkpe3kucmV0dXJuPW8ucmV0dXJuLFp1PXk7YnJlYWsgZX1adT1vLnJldHVybn19dmFyIGI9ZS5jdXJyZW50O2ZvcihadT1iO251bGwhPT1adTspe3ZhciBrPSh1PVp1KS5jaGlsZDtpZigwIT09KDIwNjQmdS5zdWJ0cmVlRmxhZ3MpJiZudWxsIT09aylrLnJldHVybj11LFp1PWs7ZWxzZSBlOmZvcih1PWI7bnVsbCE9PVp1Oyl7aWYoMCE9PSgyMDQ4JihpPVp1KS5mbGFncykpdHJ5e3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpyaSg5LGkpfX1jYXRjaChTKXtFcyhpLGkucmV0dXJuLFMpfWlmKGk9PT11KXtadT1udWxsO2JyZWFrIGV9dmFyIHc9aS5zaWJsaW5nO2lmKG51bGwhPT13KXt3LnJldHVybj1pLnJldHVybixadT13O2JyZWFrIGV9WnU9aS5yZXR1cm59fWlmKE5pPWwsamwoKSxhbiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGFuLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7YW4ub25Qb3N0Q29tbWl0RmliZXJSb290KGxuLGUpfWNhdGNoKFMpe31yPSEwfXJldHVybiByfWZpbmFsbHl7a249dCxQaS50cmFuc2l0aW9uPW59fXJldHVybiExfWZ1bmN0aW9uIHhzKGUsbix0KXtlPUZhKGUsbj1tdSgwLG49Y3UodCxuKSwxKSwxKSxuPWVzKCksbnVsbCE9PWUmJih5bihlLDEsbikscnMoZSxuKSl9ZnVuY3Rpb24gRXMoZSxuLHQpe2lmKDM9PT1lLnRhZyl4cyhlLGUsdCk7ZWxzZSBmb3IoO251bGwhPT1uOyl7aWYoMz09PW4udGFnKXt4cyhuLGUsdCk7YnJlYWt9aWYoMT09PW4udGFnKXt2YXIgcj1uLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09UWl8fCFRaS5oYXMocikpKXtuPUZhKG4sZT1odShuLGU9Y3UodCxlKSwxKSwxKSxlPWVzKCksbnVsbCE9PW4mJih5bihuLDEsZSkscnMobixlKSk7YnJlYWt9fW49bi5yZXR1cm59fWZ1bmN0aW9uIF9zKGUsbix0KXt2YXIgcj1lLnBpbmdDYWNoZTtudWxsIT09ciYmci5kZWxldGUobiksbj1lcygpLGUucGluZ2VkTGFuZXN8PWUuc3VzcGVuZGVkTGFuZXMmdCx6aT09PWUmJihMaSZ0KT09PXQmJig0PT09Rml8fDM9PT1GaSYmKDEzMDAyMzQyNCZMaSk9PT1MaSYmNTAwPkdlKCktQWk/ZHMoZSwwKTpVaXw9dCkscnMoZSxuKX1mdW5jdGlvbiBDcyhlLG4pezA9PT1uJiYoMD09PSgxJmUubW9kZSk/bj0xOihuPWZuLDA9PT0oMTMwMDIzNDI0Jihmbjw8PTEpKSYmKGZuPTQxOTQzMDQpKSk7dmFyIHQ9ZXMoKTtudWxsIT09KGU9emEoZSxuKSkmJih5bihlLG4sdCkscnMoZSx0KSl9ZnVuY3Rpb24gUHMoZSl7dmFyIG49ZS5tZW1vaXplZFN0YXRlLHQ9MDtudWxsIT09biYmKHQ9bi5yZXRyeUxhbmUpLENzKGUsdCl9ZnVuY3Rpb24gTnMoZSxuKXt2YXIgdD0wO3N3aXRjaChlLnRhZyl7Y2FzZSAxMzp2YXIgcj1lLnN0YXRlTm9kZSxsPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09bCYmKHQ9bC5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cj1lLnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGEoMzE0KSl9bnVsbCE9PXImJnIuZGVsZXRlKG4pLENzKGUsdCl9ZnVuY3Rpb24genMoZSxuKXtyZXR1cm4gcWUoZSxuKX1mdW5jdGlvbiBUcyhlLG4sdCxyKXt0aGlzLnRhZz1lLHRoaXMua2V5PXQsdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWY9bnVsbCx0aGlzLnBlbmRpbmdQcm9wcz1uLHRoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsLHRoaXMubW9kZT1yLHRoaXMuc3VidHJlZUZsYWdzPXRoaXMuZmxhZ3M9MCx0aGlzLmRlbGV0aW9ucz1udWxsLHRoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTAsdGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiBMcyhlLG4sdCxyKXtyZXR1cm4gbmV3IFRzKGUsbix0LHIpfWZ1bmN0aW9uIFJzKGUpe3JldHVybiEoIShlPWUucHJvdG90eXBlKXx8IWUuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gTXMoZSxuKXt2YXIgdD1lLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PXQ/KCh0PUxzKGUudGFnLG4sZS5rZXksZS5tb2RlKSkuZWxlbWVudFR5cGU9ZS5lbGVtZW50VHlwZSx0LnR5cGU9ZS50eXBlLHQuc3RhdGVOb2RlPWUuc3RhdGVOb2RlLHQuYWx0ZXJuYXRlPWUsZS5hbHRlcm5hdGU9dCk6KHQucGVuZGluZ1Byb3BzPW4sdC50eXBlPWUudHlwZSx0LmZsYWdzPTAsdC5zdWJ0cmVlRmxhZ3M9MCx0LmRlbGV0aW9ucz1udWxsKSx0LmZsYWdzPTE0NjgwMDY0JmUuZmxhZ3MsdC5jaGlsZExhbmVzPWUuY2hpbGRMYW5lcyx0LmxhbmVzPWUubGFuZXMsdC5jaGlsZD1lLmNoaWxkLHQubWVtb2l6ZWRQcm9wcz1lLm1lbW9pemVkUHJvcHMsdC5tZW1vaXplZFN0YXRlPWUubWVtb2l6ZWRTdGF0ZSx0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsbj1lLmRlcGVuZGVuY2llcyx0LmRlcGVuZGVuY2llcz1udWxsPT09bj9udWxsOntsYW5lczpuLmxhbmVzLGZpcnN0Q29udGV4dDpuLmZpcnN0Q29udGV4dH0sdC5zaWJsaW5nPWUuc2libGluZyx0LmluZGV4PWUuaW5kZXgsdC5yZWY9ZS5yZWYsdH1mdW5jdGlvbiBGcyhlLG4sdCxyLGwsbyl7dmFyIHU9MjtpZihyPWUsXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpUnMoZSkmJih1PTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlKXU9NTtlbHNlIGU6c3dpdGNoKGUpe2Nhc2UgeDpyZXR1cm4gT3ModC5jaGlsZHJlbixsLG8sbik7Y2FzZSBFOnU9OCxsfD04O2JyZWFrO2Nhc2UgXzpyZXR1cm4oZT1McygxMix0LG4sMnxsKSkuZWxlbWVudFR5cGU9XyxlLmxhbmVzPW8sZTtjYXNlIHo6cmV0dXJuKGU9THMoMTMsdCxuLGwpKS5lbGVtZW50VHlwZT16LGUubGFuZXM9byxlO2Nhc2UgVDpyZXR1cm4oZT1McygxOSx0LG4sbCkpLmVsZW1lbnRUeXBlPVQsZS5sYW5lcz1vLGU7Y2FzZSBNOnJldHVybiBEcyh0LGwsbyxuKTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PT10eXBlb2YgZSYmbnVsbCE9PWUpc3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgQzp1PTEwO2JyZWFrIGU7Y2FzZSBQOnU9OTticmVhayBlO2Nhc2UgTjp1PTExO2JyZWFrIGU7Y2FzZSBMOnU9MTQ7YnJlYWsgZTtjYXNlIFI6dT0xNixyPW51bGw7YnJlYWsgZX10aHJvdyBFcnJvcihhKDEzMCxudWxsPT1lP2U6dHlwZW9mIGUsXCJcIikpfXJldHVybihuPUxzKHUsdCxuLGwpKS5lbGVtZW50VHlwZT1lLG4udHlwZT1yLG4ubGFuZXM9byxufWZ1bmN0aW9uIE9zKGUsbix0LHIpe3JldHVybihlPUxzKDcsZSxyLG4pKS5sYW5lcz10LGV9ZnVuY3Rpb24gRHMoZSxuLHQscil7cmV0dXJuKGU9THMoMjIsZSxyLG4pKS5lbGVtZW50VHlwZT1NLGUubGFuZXM9dCxlLnN0YXRlTm9kZT17aXNIaWRkZW46ITF9LGV9ZnVuY3Rpb24gSXMoZSxuLHQpe3JldHVybihlPUxzKDYsZSxudWxsLG4pKS5sYW5lcz10LGV9ZnVuY3Rpb24gVXMoZSxuLHQpe3JldHVybihuPUxzKDQsbnVsbCE9PWUuY2hpbGRyZW4/ZS5jaGlsZHJlbjpbXSxlLmtleSxuKSkubGFuZXM9dCxuLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzplLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246ZS5pbXBsZW1lbnRhdGlvbn0sbn1mdW5jdGlvbiBWcyhlLG4sdCxyLGwpe3RoaXMudGFnPW4sdGhpcy5jb250YWluZXJJbmZvPWUsdGhpcy5maW5pc2hlZFdvcms9dGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy50aW1lb3V0SGFuZGxlPS0xLHRoaXMuY2FsbGJhY2tOb2RlPXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5ldmVudFRpbWVzPWduKDApLHRoaXMuZXhwaXJhdGlvblRpbWVzPWduKC0xKSx0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPWduKDApLHRoaXMuaWRlbnRpZmllclByZWZpeD1yLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPWwsdGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPW51bGx9ZnVuY3Rpb24gJHMoZSxuLHQscixsLGEsbyx1LGkpe3JldHVybiBlPW5ldyBWcyhlLG4sdCx1LGkpLDE9PT1uPyhuPTEsITA9PT1hJiYobnw9OCkpOm49MCxhPUxzKDMsbnVsbCxudWxsLG4pLGUuY3VycmVudD1hLGEuc3RhdGVOb2RlPWUsYS5tZW1vaXplZFN0YXRlPXtlbGVtZW50OnIsaXNEZWh5ZHJhdGVkOnQsY2FjaGU6bnVsbCx0cmFuc2l0aW9uczpudWxsLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6bnVsbH0sTGEoYSksZX1mdW5jdGlvbiBBcyhlLG4sdCl7dmFyIHI9Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGw7cmV0dXJueyQkdHlwZW9mOlMsa2V5Om51bGw9PXI/bnVsbDpcIlwiK3IsY2hpbGRyZW46ZSxjb250YWluZXJJbmZvOm4saW1wbGVtZW50YXRpb246dH19ZnVuY3Rpb24ganMoZSl7aWYoIWUpcmV0dXJuIFBsO2U6e2lmKGplKGU9ZS5fcmVhY3RJbnRlcm5hbHMpIT09ZXx8MSE9PWUudGFnKXRocm93IEVycm9yKGEoMTcwKSk7dmFyIG49ZTtkb3tzd2l0Y2gobi50YWcpe2Nhc2UgMzpuPW4uc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgZTtjYXNlIDE6aWYoUmwobi50eXBlKSl7bj1uLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayBlfX1uPW4ucmV0dXJufXdoaWxlKG51bGwhPT1uKTt0aHJvdyBFcnJvcihhKDE3MSkpfWlmKDE9PT1lLnRhZyl7dmFyIHQ9ZS50eXBlO2lmKFJsKHQpKXJldHVybiBPbChlLHQsbil9cmV0dXJuIG59ZnVuY3Rpb24gQnMoZSxuLHQscixsLGEsbyx1LGkpe3JldHVybihlPSRzKHQsciwhMCxlLDAsYSwwLHUsaSkpLmNvbnRleHQ9anMobnVsbCksdD1lLmN1cnJlbnQsKGE9TWEocj1lcygpLGw9bnModCkpKS5jYWxsYmFjaz12b2lkIDAhPT1uJiZudWxsIT09bj9uOm51bGwsRmEodCxhLGwpLGUuY3VycmVudC5sYW5lcz1sLHluKGUsbCxyKSxycyhlLHIpLGV9ZnVuY3Rpb24gSHMoZSxuLHQscil7dmFyIGw9bi5jdXJyZW50LGE9ZXMoKSxvPW5zKGwpO3JldHVybiB0PWpzKHQpLG51bGw9PT1uLmNvbnRleHQ/bi5jb250ZXh0PXQ6bi5wZW5kaW5nQ29udGV4dD10LChuPU1hKGEsbykpLnBheWxvYWQ9e2VsZW1lbnQ6ZX0sbnVsbCE9PShyPXZvaWQgMD09PXI/bnVsbDpyKSYmKG4uY2FsbGJhY2s9ciksbnVsbCE9PShlPUZhKGwsbixvKSkmJih0cyhlLGwsbyxhKSxPYShlLGwsbykpLG99ZnVuY3Rpb24gV3MoZSl7cmV0dXJuKGU9ZS5jdXJyZW50KS5jaGlsZD8oZS5jaGlsZC50YWcsZS5jaGlsZC5zdGF0ZU5vZGUpOm51bGx9ZnVuY3Rpb24gUXMoZSxuKXtpZihudWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PWUuZGVoeWRyYXRlZCl7dmFyIHQ9ZS5yZXRyeUxhbmU7ZS5yZXRyeUxhbmU9MCE9PXQmJnQ8bj90Om59fWZ1bmN0aW9uIHFzKGUsbil7UXMoZSxuKSwoZT1lLmFsdGVybmF0ZSkmJlFzKGUsbil9eGk9ZnVuY3Rpb24oZSxuLHQpe2lmKG51bGwhPT1lKWlmKGUubWVtb2l6ZWRQcm9wcyE9PW4ucGVuZGluZ1Byb3BzfHx6bC5jdXJyZW50KWt1PSEwO2Vsc2V7aWYoMD09PShlLmxhbmVzJnQpJiYwPT09KDEyOCZuLmZsYWdzKSlyZXR1cm4ga3U9ITEsZnVuY3Rpb24oZSxuLHQpe3N3aXRjaChuLnRhZyl7Y2FzZSAzOlR1KG4pLHBhKCk7YnJlYWs7Y2FzZSA1OmFvKG4pO2JyZWFrO2Nhc2UgMTpSbChuLnR5cGUpJiZEbChuKTticmVhaztjYXNlIDQ6cm8obixuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnZhciByPW4udHlwZS5fY29udGV4dCxsPW4ubWVtb2l6ZWRQcm9wcy52YWx1ZTtDbChnYSxyLl9jdXJyZW50VmFsdWUpLHIuX2N1cnJlbnRWYWx1ZT1sO2JyZWFrO2Nhc2UgMTM6aWYobnVsbCE9PShyPW4ubWVtb2l6ZWRTdGF0ZSkpcmV0dXJuIG51bGwhPT1yLmRlaHlkcmF0ZWQ/KENsKHVvLDEmdW8uY3VycmVudCksbi5mbGFnc3w9MTI4LG51bGwpOjAhPT0odCZuLmNoaWxkLmNoaWxkTGFuZXMpP0l1KGUsbix0KTooQ2wodW8sMSZ1by5jdXJyZW50KSxudWxsIT09KGU9SHUoZSxuLHQpKT9lLnNpYmxpbmc6bnVsbCk7Q2wodW8sMSZ1by5jdXJyZW50KTticmVhaztjYXNlIDE5OmlmKHI9MCE9PSh0Jm4uY2hpbGRMYW5lcyksMCE9PSgxMjgmZS5mbGFncykpe2lmKHIpcmV0dXJuIGp1KGUsbix0KTtuLmZsYWdzfD0xMjh9aWYobnVsbCE9PShsPW4ubWVtb2l6ZWRTdGF0ZSkmJihsLnJlbmRlcmluZz1udWxsLGwudGFpbD1udWxsLGwubGFzdEVmZmVjdD1udWxsKSxDbCh1byx1by5jdXJyZW50KSxyKWJyZWFrO3JldHVybiBudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gbi5sYW5lcz0wLF91KGUsbix0KX1yZXR1cm4gSHUoZSxuLHQpfShlLG4sdCk7a3U9MCE9PSgxMzEwNzImZS5mbGFncyl9ZWxzZSBrdT0hMSxsYSYmMCE9PSgxMDQ4NTc2Jm4uZmxhZ3MpJiZKbChuLFFsLG4uaW5kZXgpO3N3aXRjaChuLmxhbmVzPTAsbi50YWcpe2Nhc2UgMjp2YXIgcj1uLnR5cGU7QnUoZSxuKSxlPW4ucGVuZGluZ1Byb3BzO3ZhciBsPUxsKG4sTmwuY3VycmVudCk7RWEobix0KSxsPUVvKG51bGwsbixyLGUsbCx0KTt2YXIgbz1fbygpO3JldHVybiBuLmZsYWdzfD0xLFwib2JqZWN0XCI9PT10eXBlb2YgbCYmbnVsbCE9PWwmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBsLnJlbmRlciYmdm9pZCAwPT09bC4kJHR5cGVvZj8obi50YWc9MSxuLm1lbW9pemVkU3RhdGU9bnVsbCxuLnVwZGF0ZVF1ZXVlPW51bGwsUmwocik/KG89ITAsRGwobikpOm89ITEsbi5tZW1vaXplZFN0YXRlPW51bGwhPT1sLnN0YXRlJiZ2b2lkIDAhPT1sLnN0YXRlP2wuc3RhdGU6bnVsbCxMYShuKSxsLnVwZGF0ZXI9QWEsbi5zdGF0ZU5vZGU9bCxsLl9yZWFjdEludGVybmFscz1uLFdhKG4scixlLHQpLG49enUobnVsbCxuLHIsITAsbyx0KSk6KG4udGFnPTAsbGEmJm8mJmVhKG4pLHd1KG51bGwsbixsLHQpLG49bi5jaGlsZCksbjtjYXNlIDE2OnI9bi5lbGVtZW50VHlwZTtlOntzd2l0Y2goQnUoZSxuKSxlPW4ucGVuZGluZ1Byb3BzLHI9KGw9ci5faW5pdCkoci5fcGF5bG9hZCksbi50eXBlPXIsbD1uLnRhZz1mdW5jdGlvbihlKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSlyZXR1cm4gUnMoZSk/MTowO2lmKHZvaWQgMCE9PWUmJm51bGwhPT1lKXtpZigoZT1lLiQkdHlwZW9mKT09PU4pcmV0dXJuIDExO2lmKGU9PT1MKXJldHVybiAxNH1yZXR1cm4gMn0ociksZT12YShyLGUpLGwpe2Nhc2UgMDpuPVB1KG51bGwsbixyLGUsdCk7YnJlYWsgZTtjYXNlIDE6bj1OdShudWxsLG4scixlLHQpO2JyZWFrIGU7Y2FzZSAxMTpuPVN1KG51bGwsbixyLGUsdCk7YnJlYWsgZTtjYXNlIDE0Om49eHUobnVsbCxuLHIsdmEoci50eXBlLGUpLHQpO2JyZWFrIGV9dGhyb3cgRXJyb3IoYSgzMDYscixcIlwiKSl9cmV0dXJuIG47Y2FzZSAwOnJldHVybiByPW4udHlwZSxsPW4ucGVuZGluZ1Byb3BzLFB1KGUsbixyLGw9bi5lbGVtZW50VHlwZT09PXI/bDp2YShyLGwpLHQpO2Nhc2UgMTpyZXR1cm4gcj1uLnR5cGUsbD1uLnBlbmRpbmdQcm9wcyxOdShlLG4scixsPW4uZWxlbWVudFR5cGU9PT1yP2w6dmEocixsKSx0KTtjYXNlIDM6ZTp7aWYoVHUobiksbnVsbD09PWUpdGhyb3cgRXJyb3IoYSgzODcpKTtyPW4ucGVuZGluZ1Byb3BzLGw9KG89bi5tZW1vaXplZFN0YXRlKS5lbGVtZW50LFJhKGUsbiksSWEobixyLG51bGwsdCk7dmFyIHU9bi5tZW1vaXplZFN0YXRlO2lmKHI9dS5lbGVtZW50LG8uaXNEZWh5ZHJhdGVkKXtpZihvPXtlbGVtZW50OnIsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOnUuY2FjaGUscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczp1LnBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXMsdHJhbnNpdGlvbnM6dS50cmFuc2l0aW9uc30sbi51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9byxuLm1lbW9pemVkU3RhdGU9bywyNTYmbi5mbGFncyl7bj1MdShlLG4scix0LGw9Y3UoRXJyb3IoYSg0MjMpKSxuKSk7YnJlYWsgZX1pZihyIT09bCl7bj1MdShlLG4scix0LGw9Y3UoRXJyb3IoYSg0MjQpKSxuKSk7YnJlYWsgZX1mb3IocmE9c2wobi5zdGF0ZU5vZGUuY29udGFpbmVySW5mby5maXJzdENoaWxkKSx0YT1uLGxhPSEwLGFhPW51bGwsdD1HYShuLG51bGwscix0KSxuLmNoaWxkPXQ7dDspdC5mbGFncz0tMyZ0LmZsYWdzfDQwOTYsdD10LnNpYmxpbmd9ZWxzZXtpZihwYSgpLHI9PT1sKXtuPUh1KGUsbix0KTticmVhayBlfXd1KGUsbixyLHQpfW49bi5jaGlsZH1yZXR1cm4gbjtjYXNlIDU6cmV0dXJuIGFvKG4pLG51bGw9PT1lJiZzYShuKSxyPW4udHlwZSxsPW4ucGVuZGluZ1Byb3BzLG89bnVsbCE9PWU/ZS5tZW1vaXplZFByb3BzOm51bGwsdT1sLmNoaWxkcmVuLHRsKHIsbCk/dT1udWxsOm51bGwhPT1vJiZ0bChyLG8pJiYobi5mbGFnc3w9MzIpLEN1KGUsbiksd3UoZSxuLHUsdCksbi5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1lJiZzYShuKSxudWxsO2Nhc2UgMTM6cmV0dXJuIEl1KGUsbix0KTtjYXNlIDQ6cmV0dXJuIHJvKG4sbi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscj1uLnBlbmRpbmdQcm9wcyxudWxsPT09ZT9uLmNoaWxkPVhhKG4sbnVsbCxyLHQpOnd1KGUsbixyLHQpLG4uY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gcj1uLnR5cGUsbD1uLnBlbmRpbmdQcm9wcyxTdShlLG4scixsPW4uZWxlbWVudFR5cGU9PT1yP2w6dmEocixsKSx0KTtjYXNlIDc6cmV0dXJuIHd1KGUsbixuLnBlbmRpbmdQcm9wcyx0KSxuLmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiB3dShlLG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksbi5jaGlsZDtjYXNlIDEwOmU6e2lmKHI9bi50eXBlLl9jb250ZXh0LGw9bi5wZW5kaW5nUHJvcHMsbz1uLm1lbW9pemVkUHJvcHMsdT1sLnZhbHVlLENsKGdhLHIuX2N1cnJlbnRWYWx1ZSksci5fY3VycmVudFZhbHVlPXUsbnVsbCE9PW8paWYodXIoby52YWx1ZSx1KSl7aWYoby5jaGlsZHJlbj09PWwuY2hpbGRyZW4mJiF6bC5jdXJyZW50KXtuPUh1KGUsbix0KTticmVhayBlfX1lbHNlIGZvcihudWxsIT09KG89bi5jaGlsZCkmJihvLnJldHVybj1uKTtudWxsIT09bzspe3ZhciBpPW8uZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1pKXt1PW8uY2hpbGQ7Zm9yKHZhciBzPWkuZmlyc3RDb250ZXh0O251bGwhPT1zOyl7aWYocy5jb250ZXh0PT09cil7aWYoMT09PW8udGFnKXsocz1NYSgtMSx0Ji10KSkudGFnPTI7dmFyIGM9by51cGRhdGVRdWV1ZTtpZihudWxsIT09Yyl7dmFyIGY9KGM9Yy5zaGFyZWQpLnBlbmRpbmc7bnVsbD09PWY/cy5uZXh0PXM6KHMubmV4dD1mLm5leHQsZi5uZXh0PXMpLGMucGVuZGluZz1zfX1vLmxhbmVzfD10LG51bGwhPT0ocz1vLmFsdGVybmF0ZSkmJihzLmxhbmVzfD10KSx4YShvLnJldHVybix0LG4pLGkubGFuZXN8PXQ7YnJlYWt9cz1zLm5leHR9fWVsc2UgaWYoMTA9PT1vLnRhZyl1PW8udHlwZT09PW4udHlwZT9udWxsOm8uY2hpbGQ7ZWxzZSBpZigxOD09PW8udGFnKXtpZihudWxsPT09KHU9by5yZXR1cm4pKXRocm93IEVycm9yKGEoMzQxKSk7dS5sYW5lc3w9dCxudWxsIT09KGk9dS5hbHRlcm5hdGUpJiYoaS5sYW5lc3w9dCkseGEodSx0LG4pLHU9by5zaWJsaW5nfWVsc2UgdT1vLmNoaWxkO2lmKG51bGwhPT11KXUucmV0dXJuPW87ZWxzZSBmb3IodT1vO251bGwhPT11Oyl7aWYodT09PW4pe3U9bnVsbDticmVha31pZihudWxsIT09KG89dS5zaWJsaW5nKSl7by5yZXR1cm49dS5yZXR1cm4sdT1vO2JyZWFrfXU9dS5yZXR1cm59bz11fXd1KGUsbixsLmNoaWxkcmVuLHQpLG49bi5jaGlsZH1yZXR1cm4gbjtjYXNlIDk6cmV0dXJuIGw9bi50eXBlLHI9bi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sRWEobix0KSxyPXIobD1fYShsKSksbi5mbGFnc3w9MSx3dShlLG4scix0KSxuLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGw9dmEocj1uLnR5cGUsbi5wZW5kaW5nUHJvcHMpLHh1KGUsbixyLGw9dmEoci50eXBlLGwpLHQpO2Nhc2UgMTU6cmV0dXJuIEV1KGUsbixuLnR5cGUsbi5wZW5kaW5nUHJvcHMsdCk7Y2FzZSAxNzpyZXR1cm4gcj1uLnR5cGUsbD1uLnBlbmRpbmdQcm9wcyxsPW4uZWxlbWVudFR5cGU9PT1yP2w6dmEocixsKSxCdShlLG4pLG4udGFnPTEsUmwocik/KGU9ITAsRGwobikpOmU9ITEsRWEobix0KSxCYShuLHIsbCksV2EobixyLGwsdCksenUobnVsbCxuLHIsITAsZSx0KTtjYXNlIDE5OnJldHVybiBqdShlLG4sdCk7Y2FzZSAyMjpyZXR1cm4gX3UoZSxuLHQpfXRocm93IEVycm9yKGEoMTU2LG4udGFnKSl9O3ZhciBLcz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcmVwb3J0RXJyb3I/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSl7Y29uc29sZS5lcnJvcihlKX07ZnVuY3Rpb24gWXMoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gWHMoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gR3MoZSl7cmV0dXJuISghZXx8MSE9PWUubm9kZVR5cGUmJjkhPT1lLm5vZGVUeXBlJiYxMSE9PWUubm9kZVR5cGUpfWZ1bmN0aW9uIFpzKGUpe3JldHVybiEoIWV8fDEhPT1lLm5vZGVUeXBlJiY5IT09ZS5ub2RlVHlwZSYmMTEhPT1lLm5vZGVUeXBlJiYoOCE9PWUubm9kZVR5cGV8fFwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlIFwiIT09ZS5ub2RlVmFsdWUpKX1mdW5jdGlvbiBKcygpe31mdW5jdGlvbiBlYyhlLG4sdCxyLGwpe3ZhciBhPXQuX3JlYWN0Um9vdENvbnRhaW5lcjtpZihhKXt2YXIgbz1hO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBsKXt2YXIgdT1sO2w9ZnVuY3Rpb24oKXt2YXIgZT1XcyhvKTt1LmNhbGwoZSl9fUhzKG4sbyxlLGwpfWVsc2Ugbz1mdW5jdGlvbihlLG4sdCxyLGwpe2lmKGwpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiByKXt2YXIgYT1yO3I9ZnVuY3Rpb24oKXt2YXIgZT1XcyhvKTthLmNhbGwoZSl9fXZhciBvPUJzKG4scixlLDAsbnVsbCwhMSwwLFwiXCIsSnMpO3JldHVybiBlLl9yZWFjdFJvb3RDb250YWluZXI9byxlW21sXT1vLmN1cnJlbnQsanIoOD09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmUpLGNzKCksb31mb3IoO2w9ZS5sYXN0Q2hpbGQ7KWUucmVtb3ZlQ2hpbGQobCk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHIpe3ZhciB1PXI7cj1mdW5jdGlvbigpe3ZhciBlPVdzKGkpO3UuY2FsbChlKX19dmFyIGk9JHMoZSwwLCExLG51bGwsMCwhMSwwLFwiXCIsSnMpO3JldHVybiBlLl9yZWFjdFJvb3RDb250YWluZXI9aSxlW21sXT1pLmN1cnJlbnQsanIoOD09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmUpLGNzKChmdW5jdGlvbigpe0hzKG4saSx0LHIpfSkpLGl9KHQsbixlLGwscik7cmV0dXJuIFdzKG8pfVhzLnByb3RvdHlwZS5yZW5kZXI9WXMucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihlKXt2YXIgbj10aGlzLl9pbnRlcm5hbFJvb3Q7aWYobnVsbD09PW4pdGhyb3cgRXJyb3IoYSg0MDkpKTtIcyhlLG4sbnVsbCxudWxsKX0sWHMucHJvdG90eXBlLnVubW91bnQ9WXMucHJvdG90eXBlLnVubW91bnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9pbnRlcm5hbFJvb3Q7aWYobnVsbCE9PWUpe3RoaXMuX2ludGVybmFsUm9vdD1udWxsO3ZhciBuPWUuY29udGFpbmVySW5mbztjcygoZnVuY3Rpb24oKXtIcyhudWxsLGUsbnVsbCxudWxsKX0pKSxuW21sXT1udWxsfX0sWHMucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciBuPV9uKCk7ZT17YmxvY2tlZE9uOm51bGwsdGFyZ2V0OmUscHJpb3JpdHk6bn07Zm9yKHZhciB0PTA7dDxGbi5sZW5ndGgmJjAhPT1uJiZuPEZuW3RdLnByaW9yaXR5O3QrKyk7Rm4uc3BsaWNlKHQsMCxlKSwwPT09dCYmVW4oZSl9fSxTbj1mdW5jdGlvbihlKXtzd2l0Y2goZS50YWcpe2Nhc2UgMzp2YXIgbj1lLnN0YXRlTm9kZTtpZihuLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciB0PWRuKG4ucGVuZGluZ0xhbmVzKTswIT09dCYmKGJuKG4sMXx0KSxycyhuLEdlKCkpLDA9PT0oNiZOaSkmJihqaT1HZSgpKzUwMCxqbCgpKSl9YnJlYWs7Y2FzZSAxMzpjcygoZnVuY3Rpb24oKXt2YXIgbj16YShlLDEpO2lmKG51bGwhPT1uKXt2YXIgdD1lcygpO3RzKG4sZSwxLHQpfX0pKSxxcyhlLDEpfX0seG49ZnVuY3Rpb24oZSl7aWYoMTM9PT1lLnRhZyl7dmFyIG49emEoZSwxMzQyMTc3MjgpO2lmKG51bGwhPT1uKXRzKG4sZSwxMzQyMTc3MjgsZXMoKSk7cXMoZSwxMzQyMTc3MjgpfX0sRW49ZnVuY3Rpb24oZSl7aWYoMTM9PT1lLnRhZyl7dmFyIG49bnMoZSksdD16YShlLG4pO2lmKG51bGwhPT10KXRzKHQsZSxuLGVzKCkpO3FzKGUsbil9fSxfbj1mdW5jdGlvbigpe3JldHVybiBrbn0sQ249ZnVuY3Rpb24oZSxuKXt2YXIgdD1rbjt0cnl7cmV0dXJuIGtuPWUsbigpfWZpbmFsbHl7a249dH19LFNlPWZ1bmN0aW9uKGUsbix0KXtzd2l0Y2gobil7Y2FzZVwiaW5wdXRcIjppZihaKGUsdCksbj10Lm5hbWUsXCJyYWRpb1wiPT09dC50eXBlJiZudWxsIT1uKXtmb3IodD1lO3QucGFyZW50Tm9kZTspdD10LnBhcmVudE5vZGU7Zm9yKHQ9dC5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXRbbmFtZT1cIitKU09OLnN0cmluZ2lmeShcIlwiK24pKyddW3R5cGU9XCJyYWRpb1wiXScpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtpZihyIT09ZSYmci5mb3JtPT09ZS5mb3JtKXt2YXIgbD13bChyKTtpZighbCl0aHJvdyBFcnJvcihhKDkwKSk7cShyKSxaKHIsbCl9fX1icmVhaztjYXNlXCJ0ZXh0YXJlYVwiOmFlKGUsdCk7YnJlYWs7Y2FzZVwic2VsZWN0XCI6bnVsbCE9KG49dC52YWx1ZSkmJnRlKGUsISF0Lm11bHRpcGxlLG4sITEpfX0sTmU9c3MsemU9Y3M7dmFyIG5jPXt1c2luZ0NsaWVudEVudHJ5UG9pbnQ6ITEsRXZlbnRzOltibCxrbCx3bCxDZSxQZSxzc119LHRjPXtmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp5bCxidW5kbGVUeXBlOjAsdmVyc2lvbjpcIjE4LjIuMFwiLHJlbmRlcmVyUGFja2FnZU5hbWU6XCJyZWFjdC1kb21cIn0scmM9e2J1bmRsZVR5cGU6dGMuYnVuZGxlVHlwZSx2ZXJzaW9uOnRjLnZlcnNpb24scmVuZGVyZXJQYWNrYWdlTmFtZTp0Yy5yZW5kZXJlclBhY2thZ2VOYW1lLHJlbmRlcmVyQ29uZmlnOnRjLnJlbmRlcmVyQ29uZmlnLG92ZXJyaWRlSG9va1N0YXRlOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wczpudWxsLG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoOm51bGwsb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg6bnVsbCxzZXRFcnJvckhhbmRsZXI6bnVsbCxzZXRTdXNwZW5zZUhhbmRsZXI6bnVsbCxzY2hlZHVsZVVwZGF0ZTpudWxsLGN1cnJlbnREaXNwYXRjaGVyUmVmOmsuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09PShlPVdlKGUpKT9udWxsOmUuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp0Yy5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOm51bGwsc2NoZWR1bGVSZWZyZXNoOm51bGwsc2NoZWR1bGVSb290Om51bGwsc2V0UmVmcmVzaEhhbmRsZXI6bnVsbCxnZXRDdXJyZW50RmliZXI6bnVsbCxyZWNvbmNpbGVyVmVyc2lvbjpcIjE4LjIuMC1uZXh0LTllM2I3NzJiOC0yMDIyMDYwOFwifTtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIGxjPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighbGMuaXNEaXNhYmxlZCYmbGMuc3VwcG9ydHNGaWJlcil0cnl7bG49bGMuaW5qZWN0KHJjKSxhbj1sY31jYXRjaChjZSl7fX1uLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPW5jLG4uY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGUsbil7dmFyIHQ9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIUdzKG4pKXRocm93IEVycm9yKGEoMjAwKSk7cmV0dXJuIEFzKGUsbixudWxsLHQpfSxuLmNyZWF0ZVJvb3Q9ZnVuY3Rpb24oZSxuKXtpZighR3MoZSkpdGhyb3cgRXJyb3IoYSgyOTkpKTt2YXIgdD0hMSxyPVwiXCIsbD1LcztyZXR1cm4gbnVsbCE9PW4mJnZvaWQgMCE9PW4mJighMD09PW4udW5zdGFibGVfc3RyaWN0TW9kZSYmKHQ9ITApLHZvaWQgMCE9PW4uaWRlbnRpZmllclByZWZpeCYmKHI9bi5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1uLm9uUmVjb3ZlcmFibGVFcnJvciYmKGw9bi5vblJlY292ZXJhYmxlRXJyb3IpKSxuPSRzKGUsMSwhMSxudWxsLDAsdCwwLHIsbCksZVttbF09bi5jdXJyZW50LGpyKDg9PT1lLm5vZGVUeXBlP2UucGFyZW50Tm9kZTplKSxuZXcgWXMobil9LG4uZmluZERPTU5vZGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gbnVsbDtpZigxPT09ZS5ub2RlVHlwZSlyZXR1cm4gZTt2YXIgbj1lLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1uKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5yZW5kZXIpdGhyb3cgRXJyb3IoYSgxODgpKTt0aHJvdyBlPU9iamVjdC5rZXlzKGUpLmpvaW4oXCIsXCIpLEVycm9yKGEoMjY4LGUpKX1yZXR1cm4gZT1udWxsPT09KGU9V2UobikpP251bGw6ZS5zdGF0ZU5vZGV9LG4uZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3JldHVybiBjcyhlKX0sbi5oeWRyYXRlPWZ1bmN0aW9uKGUsbix0KXtpZighWnMobikpdGhyb3cgRXJyb3IoYSgyMDApKTtyZXR1cm4gZWMobnVsbCxlLG4sITAsdCl9LG4uaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24oZSxuLHQpe2lmKCFHcyhlKSl0aHJvdyBFcnJvcihhKDQwNSkpO3ZhciByPW51bGwhPXQmJnQuaHlkcmF0ZWRTb3VyY2VzfHxudWxsLGw9ITEsbz1cIlwiLHU9S3M7aWYobnVsbCE9PXQmJnZvaWQgMCE9PXQmJighMD09PXQudW5zdGFibGVfc3RyaWN0TW9kZSYmKGw9ITApLHZvaWQgMCE9PXQuaWRlbnRpZmllclByZWZpeCYmKG89dC5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT10Lm9uUmVjb3ZlcmFibGVFcnJvciYmKHU9dC5vblJlY292ZXJhYmxlRXJyb3IpKSxuPUJzKG4sbnVsbCxlLDEsbnVsbCE9dD90Om51bGwsbCwwLG8sdSksZVttbF09bi5jdXJyZW50LGpyKGUpLHIpZm9yKGU9MDtlPHIubGVuZ3RoO2UrKylsPShsPSh0PXJbZV0pLl9nZXRWZXJzaW9uKSh0Ll9zb3VyY2UpLG51bGw9PW4ubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT9uLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9W3QsbF06bi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLnB1c2godCxsKTtyZXR1cm4gbmV3IFhzKG4pfSxuLnJlbmRlcj1mdW5jdGlvbihlLG4sdCl7aWYoIVpzKG4pKXRocm93IEVycm9yKGEoMjAwKSk7cmV0dXJuIGVjKG51bGwsZSxuLCExLHQpfSxuLnVubW91bnRDb21wb25lbnRBdE5vZGU9ZnVuY3Rpb24oZSl7aWYoIVpzKGUpKXRocm93IEVycm9yKGEoNDApKTtyZXR1cm4hIWUuX3JlYWN0Um9vdENvbnRhaW5lciYmKGNzKChmdW5jdGlvbigpe2VjKG51bGwsbnVsbCxlLCExLChmdW5jdGlvbigpe2UuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsLGVbbWxdPW51bGx9KSl9KSksITApfSxuLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPXNzLG4udW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24oZSxuLHQscil7aWYoIVpzKHQpKXRocm93IEVycm9yKGEoMjAwKSk7aWYobnVsbD09ZXx8dm9pZCAwPT09ZS5fcmVhY3RJbnRlcm5hbHMpdGhyb3cgRXJyb3IoYSgzOCkpO3JldHVybiBlYyhlLG4sdCwhMSxyKX0sbi52ZXJzaW9uPVwiMTguMi4wLW5leHQtOWUzYjc3MmI4LTIwMjIwNjA4XCJ9LDIwNzQ1OmZ1bmN0aW9uKGUsbix0KXt2YXIgcj10KDczOTM1KTtuLmNyZWF0ZVJvb3Q9ci5jcmVhdGVSb290LG4uaHlkcmF0ZVJvb3Q9ci5oeWRyYXRlUm9vdH0sNzM5MzU6ZnVuY3Rpb24oZSxuLHQpeyFmdW5jdGlvbiBlKCl7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UpdHJ5e19fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShlKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKG4pfX0oKSxlLmV4cG9ydHM9dCg2NDQ0OCl9LDc1MjUxOmZ1bmN0aW9uKGUsbix0KXt2YXIgcj10KDY3Mjk0KSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLGE9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx1PXIuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQuUmVhY3RDdXJyZW50T3duZXIsaT17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O2Z1bmN0aW9uIHMoZSxuLHQpe3ZhciByLGE9e30scz1udWxsLGM9bnVsbDtmb3IociBpbiB2b2lkIDAhPT10JiYocz1cIlwiK3QpLHZvaWQgMCE9PW4ua2V5JiYocz1cIlwiK24ua2V5KSx2b2lkIDAhPT1uLnJlZiYmKGM9bi5yZWYpLG4pby5jYWxsKG4scikmJiFpLmhhc093blByb3BlcnR5KHIpJiYoYVtyXT1uW3JdKTtpZihlJiZlLmRlZmF1bHRQcm9wcylmb3IociBpbiBuPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PWFbcl0mJihhW3JdPW5bcl0pO3JldHVybnskJHR5cGVvZjpsLHR5cGU6ZSxrZXk6cyxyZWY6Yyxwcm9wczphLF9vd25lcjp1LmN1cnJlbnR9fW4uRnJhZ21lbnQ9YSxuLmpzeD1zLG4uanN4cz1zfSw3MjQwODpmdW5jdGlvbihlLG4pe3ZhciB0PVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLHI9U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxhPVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxvPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSx1PVN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKSxpPVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLHM9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLGM9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLGY9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksZD1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSxwPVN5bWJvbC5pdGVyYXRvcjt2YXIgbT17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0saD1PYmplY3QuYXNzaWduLHY9e307ZnVuY3Rpb24gZyhlLG4sdCl7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD1uLHRoaXMucmVmcz12LHRoaXMudXBkYXRlcj10fHxtfWZ1bmN0aW9uIHkoKXt9ZnVuY3Rpb24gYihlLG4sdCl7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD1uLHRoaXMucmVmcz12LHRoaXMudXBkYXRlcj10fHxtfWcucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sZy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSxuKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKFwic2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuXCIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxlLG4sXCJzZXRTdGF0ZVwiKX0sZy5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsXCJmb3JjZVVwZGF0ZVwiKX0seS5wcm90b3R5cGU9Zy5wcm90b3R5cGU7dmFyIGs9Yi5wcm90b3R5cGU9bmV3IHk7ay5jb25zdHJ1Y3Rvcj1iLGgoayxnLnByb3RvdHlwZSksay5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgdz1BcnJheS5pc0FycmF5LFM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx4PXtjdXJyZW50Om51bGx9LEU9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBfKGUsbixyKXt2YXIgbCxhPXt9LG89bnVsbCx1PW51bGw7aWYobnVsbCE9bilmb3IobCBpbiB2b2lkIDAhPT1uLnJlZiYmKHU9bi5yZWYpLHZvaWQgMCE9PW4ua2V5JiYobz1cIlwiK24ua2V5KSxuKVMuY2FsbChuLGwpJiYhRS5oYXNPd25Qcm9wZXJ0eShsKSYmKGFbbF09bltsXSk7dmFyIGk9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1pKWEuY2hpbGRyZW49cjtlbHNlIGlmKDE8aSl7Zm9yKHZhciBzPUFycmF5KGkpLGM9MDtjPGk7YysrKXNbY109YXJndW1lbnRzW2MrMl07YS5jaGlsZHJlbj1zfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihsIGluIGk9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09YVtsXSYmKGFbbF09aVtsXSk7cmV0dXJueyQkdHlwZW9mOnQsdHlwZTplLGtleTpvLHJlZjp1LHByb3BzOmEsX293bmVyOnguY3VycmVudH19ZnVuY3Rpb24gQyhlKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09dH12YXIgUD0vXFwvKy9nO2Z1bmN0aW9uIE4oZSxuKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT9mdW5jdGlvbihlKXt2YXIgbj17XCI9XCI6XCI9MFwiLFwiOlwiOlwiPTJcIn07cmV0dXJuXCIkXCIrZS5yZXBsYWNlKC9bPTpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiBuW2VdfSkpfShcIlwiK2Uua2V5KTpuLnRvU3RyaW5nKDM2KX1mdW5jdGlvbiB6KGUsbixsLGEsbyl7dmFyIHU9dHlwZW9mIGU7XCJ1bmRlZmluZWRcIiE9PXUmJlwiYm9vbGVhblwiIT09dXx8KGU9bnVsbCk7dmFyIGk9ITE7aWYobnVsbD09PWUpaT0hMDtlbHNlIHN3aXRjaCh1KXtjYXNlXCJzdHJpbmdcIjpjYXNlXCJudW1iZXJcIjppPSEwO2JyZWFrO2Nhc2VcIm9iamVjdFwiOnN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIHQ6Y2FzZSByOmk9ITB9fWlmKGkpcmV0dXJuIG89byhpPWUpLGU9XCJcIj09PWE/XCIuXCIrTihpLDApOmEsdyhvKT8obD1cIlwiLG51bGwhPWUmJihsPWUucmVwbGFjZShQLFwiJCYvXCIpK1wiL1wiKSx6KG8sbixsLFwiXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpKTpudWxsIT1vJiYoQyhvKSYmKG89ZnVuY3Rpb24oZSxuKXtyZXR1cm57JCR0eXBlb2Y6dCx0eXBlOmUudHlwZSxrZXk6bixyZWY6ZS5yZWYscHJvcHM6ZS5wcm9wcyxfb3duZXI6ZS5fb3duZXJ9fShvLGwrKCFvLmtleXx8aSYmaS5rZXk9PT1vLmtleT9cIlwiOihcIlwiK28ua2V5KS5yZXBsYWNlKFAsXCIkJi9cIikrXCIvXCIpK2UpKSxuLnB1c2gobykpLDE7aWYoaT0wLGE9XCJcIj09PWE/XCIuXCI6YStcIjpcIix3KGUpKWZvcih2YXIgcz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgYz1hK04odT1lW3NdLHMpO2krPXoodSxuLGwsYyxvKX1lbHNlIGlmKGM9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT1lfHxcIm9iamVjdFwiIT09dHlwZW9mIGU/bnVsbDpcImZ1bmN0aW9uXCI9PT10eXBlb2YoZT1wJiZlW3BdfHxlW1wiQEBpdGVyYXRvclwiXSk/ZTpudWxsfShlKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYylmb3IoZT1jLmNhbGwoZSkscz0wOyEodT1lLm5leHQoKSkuZG9uZTspaSs9eih1PXUudmFsdWUsbixsLGM9YStOKHUscysrKSxvKTtlbHNlIGlmKFwib2JqZWN0XCI9PT11KXRocm93IG49U3RyaW5nKGUpLEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIisoXCJbb2JqZWN0IE9iamVjdF1cIj09PW4/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhlKS5qb2luKFwiLCBcIikrXCJ9XCI6bikrXCIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuXCIpO3JldHVybiBpfWZ1bmN0aW9uIFQoZSxuLHQpe2lmKG51bGw9PWUpcmV0dXJuIGU7dmFyIHI9W10sbD0wO3JldHVybiB6KGUscixcIlwiLFwiXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwodCxlLGwrKyl9KSkscn1mdW5jdGlvbiBMKGUpe2lmKC0xPT09ZS5fc3RhdHVzKXt2YXIgbj1lLl9yZXN1bHQ7KG49bigpKS50aGVuKChmdW5jdGlvbihuKXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD1uKX0pLChmdW5jdGlvbihuKXswIT09ZS5fc3RhdHVzJiYtMSE9PWUuX3N0YXR1c3x8KGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD1uKX0pKSwtMT09PWUuX3N0YXR1cyYmKGUuX3N0YXR1cz0wLGUuX3Jlc3VsdD1uKX1pZigxPT09ZS5fc3RhdHVzKXJldHVybiBlLl9yZXN1bHQuZGVmYXVsdDt0aHJvdyBlLl9yZXN1bHR9dmFyIFI9e2N1cnJlbnQ6bnVsbH0sTT17dHJhbnNpdGlvbjpudWxsfSxGPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOlIsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6TSxSZWFjdEN1cnJlbnRPd25lcjp4fTtuLkNoaWxkcmVuPXttYXA6VCxmb3JFYWNoOmZ1bmN0aW9uKGUsbix0KXtUKGUsKGZ1bmN0aW9uKCl7bi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSx0KX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIG49MDtyZXR1cm4gVChlLChmdW5jdGlvbigpe24rK30pKSxufSx0b0FycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBUKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighQyhlKSl0aHJvdyBFcnJvcihcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiKTtyZXR1cm4gZX19LG4uQ29tcG9uZW50PWcsbi5GcmFnbWVudD1sLG4uUHJvZmlsZXI9byxuLlB1cmVDb21wb25lbnQ9YixuLlN0cmljdE1vZGU9YSxuLlN1c3BlbnNlPWMsbi5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD1GLG4uY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsbixyKXtpZihudWxsPT09ZXx8dm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiK2UrXCIuXCIpO3ZhciBsPWgoe30sZS5wcm9wcyksYT1lLmtleSxvPWUucmVmLHU9ZS5fb3duZXI7aWYobnVsbCE9bil7aWYodm9pZCAwIT09bi5yZWYmJihvPW4ucmVmLHU9eC5jdXJyZW50KSx2b2lkIDAhPT1uLmtleSYmKGE9XCJcIituLmtleSksZS50eXBlJiZlLnR5cGUuZGVmYXVsdFByb3BzKXZhciBpPWUudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKHMgaW4gbilTLmNhbGwobixzKSYmIUUuaGFzT3duUHJvcGVydHkocykmJihsW3NdPXZvaWQgMD09PW5bc10mJnZvaWQgMCE9PWk/aVtzXTpuW3NdKX12YXIgcz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PXMpbC5jaGlsZHJlbj1yO2Vsc2UgaWYoMTxzKXtpPUFycmF5KHMpO2Zvcih2YXIgYz0wO2M8cztjKyspaVtjXT1hcmd1bWVudHNbYysyXTtsLmNoaWxkcmVuPWl9cmV0dXJueyQkdHlwZW9mOnQsdHlwZTplLnR5cGUsa2V5OmEscmVmOm8scHJvcHM6bCxfb3duZXI6dX19LG4uY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6aSxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9KS5Qcm92aWRlcj17JCR0eXBlb2Y6dSxfY29udGV4dDplfSxlLkNvbnN1bWVyPWV9LG4uY3JlYXRlRWxlbWVudD1fLG4uY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgbj1fLmJpbmQobnVsbCxlKTtyZXR1cm4gbi50eXBlPWUsbn0sbi5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sbi5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpzLHJlbmRlcjplfX0sbi5pc1ZhbGlkRWxlbWVudD1DLG4ubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6ZCxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0Okx9fSxuLm1lbW89ZnVuY3Rpb24oZSxuKXtyZXR1cm57JCR0eXBlb2Y6Zix0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT1uP251bGw6bn19LG4uc3RhcnRUcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciBuPU0udHJhbnNpdGlvbjtNLnRyYW5zaXRpb249e307dHJ5e2UoKX1maW5hbGx5e00udHJhbnNpdGlvbj1ufX0sbi51bnN0YWJsZV9hY3Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihcImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuXCIpfSxuLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbil7cmV0dXJuIFIuY3VycmVudC51c2VDYWxsYmFjayhlLG4pfSxuLnVzZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFIuY3VycmVudC51c2VDb250ZXh0KGUpfSxuLnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LG4udXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gUi5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoZSl9LG4udXNlRWZmZWN0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIFIuY3VycmVudC51c2VFZmZlY3QoZSxuKX0sbi51c2VJZD1mdW5jdGlvbigpe3JldHVybiBSLmN1cnJlbnQudXNlSWQoKX0sbi51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsbix0KXtyZXR1cm4gUi5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUoZSxuLHQpfSxuLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihlLG4pe3JldHVybiBSLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KGUsbil9LG4udXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIFIuY3VycmVudC51c2VMYXlvdXRFZmZlY3QoZSxuKX0sbi51c2VNZW1vPWZ1bmN0aW9uKGUsbil7cmV0dXJuIFIuY3VycmVudC51c2VNZW1vKGUsbil9LG4udXNlUmVkdWNlcj1mdW5jdGlvbihlLG4sdCl7cmV0dXJuIFIuY3VycmVudC51c2VSZWR1Y2VyKGUsbix0KX0sbi51c2VSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIFIuY3VycmVudC51c2VSZWYoZSl9LG4udXNlU3RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIFIuY3VycmVudC51c2VTdGF0ZShlKX0sbi51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihlLG4sdCl7cmV0dXJuIFIuY3VycmVudC51c2VTeW5jRXh0ZXJuYWxTdG9yZShlLG4sdCl9LG4udXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBSLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfSxuLnZlcnNpb249XCIxOC4yLjBcIn0sNjcyOTQ6ZnVuY3Rpb24oZSxuLHQpe2UuZXhwb3J0cz10KDcyNDA4KX0sODU4OTM6ZnVuY3Rpb24oZSxuLHQpe2UuZXhwb3J0cz10KDc1MjUxKX0sNjAwNTM6ZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiB0KGUsbil7dmFyIHQ9ZS5sZW5ndGg7ZS5wdXNoKG4pO2U6Zm9yKDswPHQ7KXt2YXIgcj10LTE+Pj4xLGw9ZVtyXTtpZighKDA8YShsLG4pKSlicmVhayBlO2Vbcl09bixlW3RdPWwsdD1yfX1mdW5jdGlvbiByKGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDplWzBdfWZ1bmN0aW9uIGwoZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiBudWxsO3ZhciBuPWVbMF0sdD1lLnBvcCgpO2lmKHQhPT1uKXtlWzBdPXQ7ZTpmb3IodmFyIHI9MCxsPWUubGVuZ3RoLG89bD4+PjE7cjxvOyl7dmFyIHU9MioocisxKS0xLGk9ZVt1XSxzPXUrMSxjPWVbc107aWYoMD5hKGksdCkpczxsJiYwPmEoYyxpKT8oZVtyXT1jLGVbc109dCxyPXMpOihlW3JdPWksZVt1XT10LHI9dSk7ZWxzZXtpZighKHM8bCYmMD5hKGMsdCkpKWJyZWFrIGU7ZVtyXT1jLGVbc109dCxyPXN9fX1yZXR1cm4gbn1mdW5jdGlvbiBhKGUsbil7dmFyIHQ9ZS5zb3J0SW5kZXgtbi5zb3J0SW5kZXg7cmV0dXJuIDAhPT10P3Q6ZS5pZC1uLmlkfWlmKFwib2JqZWN0XCI9PT10eXBlb2YgcGVyZm9ybWFuY2UmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBvPXBlcmZvcm1hbmNlO24udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIG8ubm93KCl9fWVsc2V7dmFyIHU9RGF0ZSxpPXUubm93KCk7bi51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gdS5ub3coKS1pfX12YXIgcz1bXSxjPVtdLGY9MSxkPW51bGwscD0zLG09ITEsaD0hMSx2PSExLGc9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpudWxsLHk9XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCxiPVwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2V0SW1tZWRpYXRlP3NldEltbWVkaWF0ZTpudWxsO2Z1bmN0aW9uIGsoZSl7Zm9yKHZhciBuPXIoYyk7bnVsbCE9PW47KXtpZihudWxsPT09bi5jYWxsYmFjaylsKGMpO2Vsc2V7aWYoIShuLnN0YXJ0VGltZTw9ZSkpYnJlYWs7bChjKSxuLnNvcnRJbmRleD1uLmV4cGlyYXRpb25UaW1lLHQocyxuKX1uPXIoYyl9fWZ1bmN0aW9uIHcoZSl7aWYodj0hMSxrKGUpLCFoKWlmKG51bGwhPT1yKHMpKWg9ITAsTShTKTtlbHNle3ZhciBuPXIoYyk7bnVsbCE9PW4mJkYodyxuLnN0YXJ0VGltZS1lKX19ZnVuY3Rpb24gUyhlLHQpe2g9ITEsdiYmKHY9ITEseShDKSxDPS0xKSxtPSEwO3ZhciBhPXA7dHJ5e2ZvcihrKHQpLGQ9cihzKTtudWxsIT09ZCYmKCEoZC5leHBpcmF0aW9uVGltZT50KXx8ZSYmIXooKSk7KXt2YXIgbz1kLmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBvKXtkLmNhbGxiYWNrPW51bGwscD1kLnByaW9yaXR5TGV2ZWw7dmFyIHU9byhkLmV4cGlyYXRpb25UaW1lPD10KTt0PW4udW5zdGFibGVfbm93KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIHU/ZC5jYWxsYmFjaz11OmQ9PT1yKHMpJiZsKHMpLGsodCl9ZWxzZSBsKHMpO2Q9cihzKX1pZihudWxsIT09ZCl2YXIgaT0hMDtlbHNle3ZhciBmPXIoYyk7bnVsbCE9PWYmJkYodyxmLnN0YXJ0VGltZS10KSxpPSExfXJldHVybiBpfWZpbmFsbHl7ZD1udWxsLHA9YSxtPSExfX1cInVuZGVmaW5lZFwiIT09dHlwZW9mIG5hdmlnYXRvciYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcmJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKTt2YXIgeCxFPSExLF89bnVsbCxDPS0xLFA9NSxOPS0xO2Z1bmN0aW9uIHooKXtyZXR1cm4hKG4udW5zdGFibGVfbm93KCktTjxQKX1mdW5jdGlvbiBUKCl7aWYobnVsbCE9PV8pe3ZhciBlPW4udW5zdGFibGVfbm93KCk7Tj1lO3ZhciB0PSEwO3RyeXt0PV8oITAsZSl9ZmluYWxseXt0P3goKTooRT0hMSxfPW51bGwpfX1lbHNlIEU9ITF9aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpeD1mdW5jdGlvbigpe2IoVCl9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIEw9bmV3IE1lc3NhZ2VDaGFubmVsLFI9TC5wb3J0MjtMLnBvcnQxLm9ubWVzc2FnZT1ULHg9ZnVuY3Rpb24oKXtSLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIHg9ZnVuY3Rpb24oKXtnKFQsMCl9O2Z1bmN0aW9uIE0oZSl7Xz1lLEV8fChFPSEwLHgoKSl9ZnVuY3Rpb24gRihlLHQpe0M9ZygoZnVuY3Rpb24oKXtlKG4udW5zdGFibGVfbm93KCkpfSksdCl9bi51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NSxuLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTEsbi51bnN0YWJsZV9Mb3dQcmlvcml0eT00LG4udW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MyxuLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsLG4udW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MixuLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGUpe2UuY2FsbGJhY2s9bnVsbH0sbi51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe2h8fG18fChoPSEwLE0oUykpfSxuLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGUpezA+ZXx8MTI1PGU/Y29uc29sZS5lcnJvcihcImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZFwiKTpQPTA8ZT9NYXRoLmZsb29yKDFlMy9lKTo1fSxuLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIHB9LG4udW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gcihzKX0sbi51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGUpe3N3aXRjaChwKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgbj0zO2JyZWFrO2RlZmF1bHQ6bj1wfXZhciB0PXA7cD1uO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7cD10fX0sbi51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe30sbi51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXt9LG4udW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGUsbil7c3dpdGNoKGUpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDplPTN9dmFyIHQ9cDtwPWU7dHJ5e3JldHVybiBuKCl9ZmluYWxseXtwPXR9fSxuLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oZSxsLGEpe3ZhciBvPW4udW5zdGFibGVfbm93KCk7c3dpdGNoKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWE/YT1cIm51bWJlclwiPT09dHlwZW9mKGE9YS5kZWxheSkmJjA8YT9vK2E6bzphPW8sZSl7Y2FzZSAxOnZhciB1PS0xO2JyZWFrO2Nhc2UgMjp1PTI1MDticmVhaztjYXNlIDU6dT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDp1PTFlNDticmVhaztkZWZhdWx0OnU9NWUzfXJldHVybiBlPXtpZDpmKyssY2FsbGJhY2s6bCxwcmlvcml0eUxldmVsOmUsc3RhcnRUaW1lOmEsZXhwaXJhdGlvblRpbWU6dT1hK3Usc29ydEluZGV4Oi0xfSxhPm8/KGUuc29ydEluZGV4PWEsdChjLGUpLG51bGw9PT1yKHMpJiZlPT09cihjKSYmKHY/KHkoQyksQz0tMSk6dj0hMCxGKHcsYS1vKSkpOihlLnNvcnRJbmRleD11LHQocyxlKSxofHxtfHwoaD0hMCxNKFMpKSksZX0sbi51bnN0YWJsZV9zaG91bGRZaWVsZD16LG4udW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKGUpe3ZhciBuPXA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9cDtwPW47dHJ5e3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3A9dH19fX0sNjM4NDA6ZnVuY3Rpb24oZSxuLHQpe2UuZXhwb3J0cz10KDYwMDUzKX19XSk7XG4ifSwgImhlYWRlcnNTaXplIjogMCwgImJvZHlTaXplIjogNDU4MjcsICJyZWRpcmVjdFVSTCI6ICIiLCAiX3RyYW5zZmVyU2l6ZSI6IDQ1ODI3fSwgImNhY2hlIjoge30sICJ0aW1pbmdzIjogeyJkbnMiOiAtMSwgImNvbm5lY3QiOiAtMSwgInNzbCI6IC0xLCAic2VuZCI6IDAsICJ3YWl0IjogMzAuMTUzLCAicmVjZWl2ZSI6IDIwLjIwOX0sICJwYWdlcmVmIjogInBhZ2VAODZkZGU0OWIwNzcyOGY1MDhjNjgyYWE4NTc0YzNlNDgiLCAic2VydmVySVBBZGRyZXNzIjogIjE4LjY2LjEyMC4yNDciLCAiX3NlcnZlclBvcnQiOiA0NDMsICJfc2VjdXJpdHlEZXRhaWxzIjogeyJwcm90b2NvbCI6ICJUTFMgMS4zIiwgInN1YmplY3ROYW1lIjogInN0b3J5LnNuYXBjaGF0LmNvbSIsICJpc3N1ZXIiOiAiRGlnaUNlcnQgVExTIFJTQSBTSEEyNTYgMjAyMCBDQTEiLCAidmFsaWRGcm9tIjogMTY2MDY5NDQwMCwgInZhbGlkVG8iOiAxNjkyMzE2Nzk5fX0sIHsic3RhcnRlZERhdGVUaW1lIjogIjIwMjMtMDUtMTNUMTg6MDI6MjkuMjA4WiIsICJ0aW1lIjogNTEuMDQ4LCAicmVxdWVzdCI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cHM6Ly9zdG9yeS5zbmFwY2hhdC5jb20vX25leHQvc3RhdGljL2NodW5rcy9tYWluLTI0NzliYThmMmRmNmFiODEuanMiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiOmF1dGhvcml0eSIsICJ2YWx1ZSI6ICJzdG9yeS5zbmFwY2hhdC5jb20ifSwgeyJuYW1lIjogIjptZXRob2QiLCAidmFsdWUiOiAiR0VUIn0sIHsibmFtZSI6ICI6cGF0aCIsICJ2YWx1ZSI6ICIvX25leHQvc3RhdGljL2NodW5rcy9tYWluLTI0NzliYThmMmRmNmFiODEuanMifSwgeyJuYW1lIjogIjpzY2hlbWUiLCAidmFsdWUiOiAiaHR0cHMifSwgeyJuYW1lIjogImFjY2VwdCIsICJ2YWx1ZSI6ICIqLyoifSwgeyJuYW1lIjogImFjY2VwdC1lbmNvZGluZyIsICJ2YWx1ZSI6ICJnemlwLCBkZWZsYXRlLCBiciJ9LCB7Im5hbWUiOiAicmVmZXJlciIsICJ2YWx1ZSI6ICJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtZGVzdCIsICJ2YWx1ZSI6ICJzY3JpcHQifSwgeyJuYW1lIjogInNlYy1mZXRjaC1tb2RlIiwgInZhbHVlIjogIm5vLWNvcnMifSwgeyJuYW1lIjogInNlYy1mZXRjaC1zaXRlIiwgInZhbHVlIjogInNhbWUtc2l0ZSJ9LCB7Im5hbWUiOiAidXNlci1hZ2VudCIsICJ2YWx1ZSI6ICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTEzLjAuNTY3Mi41MyBTYWZhcmkvNTM3LjM2In1dLCAicXVlcnlTdHJpbmciOiBbXSwgImhlYWRlcnNTaXplIjogNDY2LCAiYm9keVNpemUiOiAwfSwgInJlc3BvbnNlIjogeyJzdGF0dXMiOiAyMDAsICJzdGF0dXNUZXh0IjogIiIsICJodHRwVmVyc2lvbiI6ICJIVFRQLzIuMCIsICJjb29raWVzIjogW10sICJoZWFkZXJzIjogW3sibmFtZSI6ICJhZ2UiLCAidmFsdWUiOiAiOTkxNTQ5NiJ9LCB7Im5hbWUiOiAiY2FjaGUtY29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwLHB1YmxpYyxpbW11dGFibGUifSwgeyJuYW1lIjogImNvbnRlbnQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiV2VkLCAxOCBKYW4gMjAyMyAyMzo0NDoxNCBHTVQifSwgeyJuYW1lIjogImV0YWciLCAidmFsdWUiOiAiVy9cImZiZWYxNDM5OGEzNjEyZTVmZjBlMjVlMzY0YTBmNGE4XCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiV2VkLCAxOCBKYW4gMjAyMyAyMzozOToyMiBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBbWF6b25TMyJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOTBiYjEzMGVjY2NiNzE5NTNiMzhhMWMwZTNiNTcyMWEuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJ6dWl4SWJwdTFoWEhmc1VpdjJoUjFGZDV5cGJLUkhlcTNXaEhfVlgxb1FHUUtBRENQWW1KYUE9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTYwLVAyIn0sIHsibmFtZSI6ICJ4LWNhY2hlIiwgInZhbHVlIjogIkhpdCBmcm9tIGNsb3VkZnJvbnQifV0sICJjb250ZW50IjogeyJzaXplIjogMTEzOTA0LCAibWltZVR5cGUiOiAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIsICJjb21wcmVzc2lvbiI6IDc5NTU0LCAidGV4dCI6ICIoc2VsZi53ZWJwYWNrQ2h1bmtfTl9FPXNlbGYud2VicGFja0NodW5rX05fRXx8W10pLnB1c2goW1sxNzldLHs2MDkzMjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHIoZSx0LHIsbixhLG8saSl7dHJ5e3ZhciB1PWVbb10oaSksYz11LnZhbHVlfWNhdGNoKHMpe3JldHVybiB2b2lkIHIocyl9dS5kb25lP3QoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX10Llo9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGEsbyl7dmFyIGk9ZS5hcHBseSh0LG4pO2Z1bmN0aW9uIHUoZSl7cihpLGEsbyx1LGMsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gYyhlKXtyKGksYSxvLHUsYyxcInRocm93XCIsZSl9dSh2b2lkIDApfSkpfX19LDY0OTU6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKCl7cmV0dXJuIHI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgbiBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG4pJiYoZVtuXT1yW25dKX1yZXR1cm4gZX0sci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5aPWZ1bmN0aW9uKCl7cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sOTI2NDg6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt0Llo9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fX0sOTE1OTg6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciB0PW5ldyBXZWFrTWFwLG49bmV3IFdlYWtNYXA7cmV0dXJuKHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/bjp0fSkoZSl9dC5aPWZ1bmN0aW9uKGUsdCl7aWYoIXQmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PXR5cGVvZiBlJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgbj1yKHQpO2lmKG4mJm4uaGFzKGUpKXJldHVybiBuLmdldChlKTt2YXIgYT17fSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIGkgaW4gZSlpZihcImRlZmF1bHRcIiE9PWkmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpKXt2YXIgdT1vP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKTpudWxsO3UmJih1LmdldHx8dS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGksdSk6YVtpXT1lW2ldfWEuZGVmYXVsdD1lLG4mJm4uc2V0KGUsYSk7cmV0dXJuIGF9fSwxNzI3MzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuWj1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHIsbixhPXt9LG89T2JqZWN0LmtleXMoZSk7Zm9yKG49MDtuPG8ubGVuZ3RoO24rKylyPW9bbl0sdC5pbmRleE9mKHIpPj0wfHwoYVtyXT1lW3JdKTtyZXR1cm4gYX19LDcwMjI3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmFkZEJhc2VQYXRoPWZ1bmN0aW9uKGUsdCl7MDtyZXR1cm4gYS5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChuLmFkZFBhdGhQcmVmaXgoZSxcIlwiKSl9O3ZhciBuPXIoODk3ODIpLGE9cigyNDk2OSk7KFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmRlZmF1bHR8fFwib2JqZWN0XCI9PT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB0LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksZS5leHBvcnRzPXQuZGVmYXVsdCl9LDU3OTk1OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmFkZExvY2FsZT12b2lkIDA7cigyNDk2OSk7dC5hZGRMb2NhbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw1NzU2NTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGV0ZWN0RG9tYWluTG9jYWxlPXZvaWQgMDt0LmRldGVjdERvbWFpbkxvY2FsZT1mdW5jdGlvbigpe30sKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmRlZmF1bHR8fFwib2JqZWN0XCI9PT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB0LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksZS5leHBvcnRzPXQuZGVmYXVsdCl9LDg3NzE6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaGFzQmFzZVBhdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIG4ucGF0aEhhc1ByZWZpeChlLFwiXCIpfTt2YXIgbj1yKDE5ODgwKTsoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZGVmYXVsdHx8XCJvYmplY3RcIj09PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxlLmV4cG9ydHM9dC5kZWZhdWx0KX0sNDA4Nzc6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm57bW91bnRlZEluc3RhbmNlczpuZXcgU2V0LHVwZGF0ZUhlYWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9e307ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihcImxpbmtcIj09PWUudHlwZSYmZS5wcm9wc1tcImRhdGEtb3B0aW1pemVkLWZvbnRzXCJdKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLWhyZWY9XCInLmNvbmNhdChlLnByb3BzW1wiZGF0YS1ocmVmXCJdLCdcIl0nKSkpcmV0dXJuO2UucHJvcHMuaHJlZj1lLnByb3BzW1wiZGF0YS1ocmVmXCJdLGUucHJvcHNbXCJkYXRhLWhyZWZcIl09dm9pZCAwfXZhciByPXRbZS50eXBlXXx8W107ci5wdXNoKGUpLHRbZS50eXBlXT1yfSkpO3ZhciByPXQudGl0bGU/dC50aXRsZVswXTpudWxsLG89XCJcIjtpZihyKXt2YXIgaT1yLnByb3BzLmNoaWxkcmVuO289XCJzdHJpbmdcIj09PXR5cGVvZiBpP2k6QXJyYXkuaXNBcnJheShpKT9pLmpvaW4oXCJcIik6XCJcIn1vIT09ZG9jdW1lbnQudGl0bGUmJihkb2N1bWVudC50aXRsZT1vKSxbXCJtZXRhXCIsXCJiYXNlXCIsXCJsaW5rXCIsXCJzdHlsZVwiLFwic2NyaXB0XCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe3ZhciByPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXSxvPXIucXVlcnlTZWxlY3RvcihcIm1ldGFbbmFtZT1uZXh0LWhlYWQtY291bnRdXCIpOzA7Zm9yKHZhciBpPU51bWJlcihvLmNvbnRlbnQpLHU9W10sYz0wLHM9by5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO2M8aTtjKysscz0obnVsbD09cz92b2lkIDA6cy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKXx8bnVsbCl7dmFyIGw7KG51bGw9PXN8fG51bGw9PShsPXMudGFnTmFtZSk/dm9pZCAwOmwudG9Mb3dlckNhc2UoKSk9PT1lJiZ1LnB1c2gocyl9dmFyIGY9dC5tYXAobikuZmlsdGVyKChmdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxyPXUubGVuZ3RoO3Q8cjt0Kyspe2lmKGEodVt0XSxlKSlyZXR1cm4gdS5zcGxpY2UodCwxKSwhMX1yZXR1cm4hMH0pKTt1LmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBudWxsPT0odD1lLnBhcmVudE5vZGUpP3ZvaWQgMDp0LnJlbW92ZUNoaWxkKGUpfSkpLGYuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIuaW5zZXJ0QmVmb3JlKGUsbyl9KSksby5jb250ZW50PShpLXUubGVuZ3RoK2YubGVuZ3RoKS50b1N0cmluZygpfShlLHRbZV18fFtdKX0pKX19fSx0LmlzRXF1YWxOb2RlPWEsdC5ET01BdHRyaWJ1dGVOYW1lcz12b2lkIDA7dmFyIHI9e2FjY2VwdENoYXJzZXQ6XCJhY2NlcHQtY2hhcnNldFwiLGNsYXNzTmFtZTpcImNsYXNzXCIsaHRtbEZvcjpcImZvclwiLGh0dHBFcXVpdjpcImh0dHAtZXF1aXZcIixub01vZHVsZTpcIm5vTW9kdWxlXCJ9O2Z1bmN0aW9uIG4oZSl7dmFyIHQ9ZS50eXBlLG49ZS5wcm9wcyxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7Zm9yKHZhciBvIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShvKSYmXCJjaGlsZHJlblwiIT09byYmXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiIT09byYmdm9pZCAwIT09bltvXSl7dmFyIGk9cltvXXx8by50b0xvd2VyQ2FzZSgpO1wic2NyaXB0XCIhPT10fHxcImFzeW5jXCIhPT1pJiZcImRlZmVyXCIhPT1pJiZcIm5vTW9kdWxlXCIhPT1pP2Euc2V0QXR0cmlidXRlKGksbltvXSk6YVtpXT0hIW5bb119dmFyIHU9bi5jaGlsZHJlbixjPW4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw7cmV0dXJuIGM/YS5pbm5lckhUTUw9Yy5fX2h0bWx8fFwiXCI6dSYmKGEudGV4dENvbnRlbnQ9XCJzdHJpbmdcIj09PXR5cGVvZiB1P3U6QXJyYXkuaXNBcnJheSh1KT91LmpvaW4oXCJcIik6XCJcIiksYX1mdW5jdGlvbiBhKGUsdCl7aWYoZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe3ZhciByPXQuZ2V0QXR0cmlidXRlKFwibm9uY2VcIik7aWYociYmIWUuZ2V0QXR0cmlidXRlKFwibm9uY2VcIikpe3ZhciBuPXQuY2xvbmVOb2RlKCEwKTtyZXR1cm4gbi5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLFwiXCIpLG4ubm9uY2U9cixyPT09ZS5ub25jZSYmZS5pc0VxdWFsTm9kZShuKX19cmV0dXJuIGUuaXNFcXVhbE5vZGUodCl9dC5ET01BdHRyaWJ1dGVOYW1lcz1yLChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw5Njk0NzpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig4Nzc5NCksYT1yKDg1Njk2KSxvPXIoMzMyMjcpLGk9cig4ODM2MSksdT1yKDg1OTcxKSxjPXIoNTI3MTUpLHM9cig5MTE5Myk7ZnVuY3Rpb24gbChlKXt2YXIgdD1mdW5jdGlvbigpe2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbj1zKGUpO2lmKHQpe3ZhciBhPXModGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxhKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGModGhpcyxyKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5pbml0aWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIEsuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0Lmh5ZHJhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdC5lbWl0dGVyPXQucm91dGVyPXQudmVyc2lvbj12b2lkIDA7dmFyIGY9cig2MDkzMikuWixkPXIoNjQ5NSkuWixwPXIoOTI2NDgpLlo7cig5MTU5OCkuWjtyKDQwMDM3KTt2YXIgaCx2PXAocig2NzI5NCkpLG09cigxNTg1MCkseT1wKHIoMTgyODYpKSxnPXIoMzA2NDcpLGI9cig5NjM2KSxfPXIoMjU4ODApLHg9cigzNjYxNiksdz1yKDk5NDc1KSxQPXIoNjMyOTEpLEU9cChyKDQwODc3KSksUz1wKHIoNjYxODQpKSxPPXAocig4ODU0KSksaj1yKDkzMzk2KSxSPXIoNjk4OTgpLGs9cig4MDY3NiksTT1yKDg5MjM5KSxDPXIoNjU2NzgpLEE9cig4NzcxKSxMPXIoMjA3NDUpO3QudmVyc2lvbj1cIjEyLjMuNFwiLHQucm91dGVyPWg7dmFyIFQ9eS5kZWZhdWx0KCk7dC5lbWl0dGVyPVQ7dmFyIE4sSSxELEIscSxVLEgsRixXLHosRz1mdW5jdGlvbihlKXtyZXR1cm5bXS5zbGljZS5jYWxsKGUpfSxaPXZvaWQgMCwkPSExO3NlbGYuX19uZXh0X3JlcXVpcmVfXz1yO3ZhciBWPWZ1bmN0aW9uKGUpe3UocixlKTt2YXIgdD1sKHIpO2Z1bmN0aW9uIHIoKXtyZXR1cm4gbyh0aGlzLHIpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBpKHIsW3trZXk6XCJjb21wb25lbnREaWRDYXRjaFwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5wcm9wcy5mbihlLHQpfX0se2tleTpcImNvbXBvbmVudERpZE1vdW50XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbFRvSGFzaCgpLGguaXNTc3ImJlwiLzQwNFwiIT09Ti5wYWdlJiZcIi9fZXJyb3JcIiE9PU4ucGFnZSYmKE4uaXNGYWxsYmFja3x8Ti5uZXh0RXhwb3J0JiYoYi5pc0R5bmFtaWNSb3V0ZShoLnBhdGhuYW1lKXx8bG9jYXRpb24uc2VhcmNoLDEpfHxOLnByb3BzJiZOLnByb3BzLl9fTl9TU0cmJihsb2NhdGlvbi5zZWFyY2gsMSkpJiZoLnJlcGxhY2UoaC5wYXRobmFtZStcIj9cIitTdHJpbmcoXy5hc3NpZ24oXy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKGgucXVlcnkpLG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKSkpLEkse19oOjEsc2hhbGxvdzohTi5pc0ZhbGxiYWNrJiYhJH0pLmNhdGNoKChmdW5jdGlvbihlKXtpZighZS5jYW5jZWxsZWQpdGhyb3cgZX0pKX19LHtrZXk6XCJjb21wb25lbnREaWRVcGRhdGVcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsVG9IYXNoKCl9fSx7a2V5Olwic2Nyb2xsVG9IYXNoXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1sb2NhdGlvbi5oYXNoO2lmKGU9ZSYmZS5zdWJzdHJpbmcoMSkpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpO3QmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2Nyb2xsSW50b1ZpZXcoKX0pLDApfX19LHtrZXk6XCJyZW5kZXJcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3BzLmNoaWxkcmVufX1dKSxyfSh2LmRlZmF1bHQuQ29tcG9uZW50KTtmdW5jdGlvbiBLKCl7cmV0dXJuIEs9ZihuLm1hcmsoKGZ1bmN0aW9uIGUoKXt2YXIgdCxvLGksdT1hcmd1bWVudHM7cmV0dXJuIG4ud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHUubGVuZ3RoPjAmJnZvaWQgMCE9PXVbMF0/dVswXTp7fSxOPUpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJfX05FWFRfREFUQV9fXCIpLnRleHRDb250ZW50KSx3aW5kb3cuX19ORVhUX0RBVEFfXz1OLFo9Ti5kZWZhdWx0TG9jYWxlLHQ9Ti5hc3NldFByZWZpeHx8XCJcIixyLnA9XCJcIi5jb25jYXQodCxcIi9fbmV4dC9cIikseC5zZXRDb25maWcoe3NlcnZlclJ1bnRpbWVDb25maWc6e30scHVibGljUnVudGltZUNvbmZpZzpOLnJ1bnRpbWVDb25maWd8fHt9fSksST13LmdldFVSTCgpLEEuaGFzQmFzZVBhdGgoSSkmJihJPUMucmVtb3ZlQmFzZVBhdGgoSSkpLE4uc2NyaXB0TG9hZGVyJiYobz1yKDcyMTg5KSwoMCxvLmluaXRTY3JpcHRMb2FkZXIpKE4uc2NyaXB0TG9hZGVyKSksRD1uZXcgUy5kZWZhdWx0KE4uYnVpbGRJZCx0KSxpPWZ1bmN0aW9uKGUpe3ZhciB0PWEoZSwyKSxyPXRbMF0sbj10WzFdO3JldHVybiBELnJvdXRlTG9hZGVyLm9uRW50cnlwb2ludChyLG4pfSx3aW5kb3cuX19ORVhUX1AmJndpbmRvdy5fX05FWFRfUC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBpKGUpfSksMCl9KSksd2luZG93Ll9fTkVYVF9QPVtdLHdpbmRvdy5fX05FWFRfUC5wdXNoPWksKHE9RS5kZWZhdWx0KCkpLmdldElzU3NyPWZ1bmN0aW9uKCl7cmV0dXJuIGguaXNTc3J9LEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJfX25leHRcIiksZS5hYnJ1cHQoXCJyZXR1cm5cIix7YXNzZXRQcmVmaXg6dH0pO2Nhc2UgMjE6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKSxLLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBYKGUsdCl7cmV0dXJuIHYuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGUsT2JqZWN0LmFzc2lnbih7fSx0KSl9ZnVuY3Rpb24gUShlKXt2YXIgdD1lLmNoaWxkcmVuO3JldHVybiB2LmRlZmF1bHQuY3JlYXRlRWxlbWVudChWLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4gSih7QXBwOkYsZXJyOmV9KS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJFcnJvciByZW5kZXJpbmcgcGFnZTogXCIsZSl9KSl9fSx2LmRlZmF1bHQuY3JlYXRlRWxlbWVudChnLlJvdXRlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOlIubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKGgpfSx2LmRlZmF1bHQuY3JlYXRlRWxlbWVudChtLkhlYWRNYW5hZ2VyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6cX0sdi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTS5JbWFnZUNvbmZpZ0NvbnRleHQuUHJvdmlkZXIse3ZhbHVlOntkZXZpY2VTaXplczpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSxpbWFnZVNpemVzOlsxNiwzMiw0OCw2NCw5NiwxMjgsMjU2LDM4NF0scGF0aDpcIi9fbmV4dC9pbWFnZVwiLGxvYWRlcjpcImRlZmF1bHRcIixkYW5nZXJvdXNseUFsbG93U1ZHOiExLHVub3B0aW1pemVkOiExfX0sdCkpKSl9dmFyIFk9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPWQoe30sdCx7Q29tcG9uZW50OnosZXJyOk4uZXJyLHJvdXRlcjpofSk7cmV0dXJuIHYuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFEsbnVsbCxYKGUscikpfX07ZnVuY3Rpb24gSihlKXt2YXIgdD1lLkFwcCxuPWUuZXJyO3JldHVybiBjb25zb2xlLmVycm9yKG4pLGNvbnNvbGUuZXJyb3IoXCJBIGNsaWVudC1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQsIHNlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NsaWVudC1zaWRlLWV4Y2VwdGlvbi1vY2N1cnJlZFwiKSxELmxvYWRQYWdlKFwiL19lcnJvclwiKS50aGVuKChmdW5jdGlvbihuKXt2YXIgYT1uLnBhZ2Usbz1uLnN0eWxlU2hlZXRzO3JldHVybihudWxsPT1VP3ZvaWQgMDpVLkNvbXBvbmVudCk9PT1hP3IuZSg5NjUxKS50aGVuKHIuYmluZChyLDk5NjUxKSkudGhlbigoZnVuY3Rpb24obil7cmV0dXJuIHIuZSgyNzQxKS50aGVuKHIuYmluZChyLDIyNzQxKSkudGhlbigoZnVuY3Rpb24ocil7cmV0dXJuIHQ9ci5kZWZhdWx0LGUuQXBwPXQsbn0pKX0pKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm57RXJyb3JDb21wb25lbnQ6ZS5kZWZhdWx0LHN0eWxlU2hlZXRzOltdfX0pKTp7RXJyb3JDb21wb25lbnQ6YSxzdHlsZVNoZWV0czpvfX0pKS50aGVuKChmdW5jdGlvbihyKXt2YXIgYSxvPXIuRXJyb3JDb21wb25lbnQsaT1yLnN0eWxlU2hlZXRzLHU9WSh0KSxjPXtDb21wb25lbnQ6byxBcHBUcmVlOnUscm91dGVyOmgsY3R4OntlcnI6bixwYXRobmFtZTpOLnBhZ2UscXVlcnk6Ti5xdWVyeSxhc1BhdGg6SSxBcHBUcmVlOnV9fTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKChudWxsPT0oYT1lLnByb3BzKT92b2lkIDA6YS5lcnIpP2UucHJvcHM6dy5sb2FkR2V0SW5pdGlhbFByb3BzKHQsYykpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB1ZShkKHt9LGUse2VycjpuLENvbXBvbmVudDpvLHN0eWxlU2hlZXRzOmkscHJvcHM6dH0pKX0pKX0pKX1mdW5jdGlvbiBlZShlKXt2YXIgdD1lLmNhbGxiYWNrO3JldHVybiB2LmRlZmF1bHQudXNlTGF5b3V0RWZmZWN0KChmdW5jdGlvbigpe3JldHVybiB0KCl9KSxbdF0pLG51bGx9dmFyIHRlPW51bGwscmU9ITA7ZnVuY3Rpb24gbmUoKXtbXCJiZWZvcmVSZW5kZXJcIixcImFmdGVySHlkcmF0ZVwiLFwiYWZ0ZXJSZW5kZXJcIixcInJvdXRlQ2hhbmdlXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBwZXJmb3JtYW5jZS5jbGVhck1hcmtzKGUpfSkpfWZ1bmN0aW9uIGFlKCl7dy5TVCYmKHBlcmZvcm1hbmNlLm1hcmsoXCJhZnRlckh5ZHJhdGVcIikscGVyZm9ybWFuY2UubWVhc3VyZShcIk5leHQuanMtYmVmb3JlLWh5ZHJhdGlvblwiLFwibmF2aWdhdGlvblN0YXJ0XCIsXCJiZWZvcmVSZW5kZXJcIikscGVyZm9ybWFuY2UubWVhc3VyZShcIk5leHQuanMtaHlkcmF0aW9uXCIsXCJiZWZvcmVSZW5kZXJcIixcImFmdGVySHlkcmF0ZVwiKSxXJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKFwiTmV4dC5qcy1oeWRyYXRpb25cIikuZm9yRWFjaChXKSxuZSgpKX1mdW5jdGlvbiBvZSgpe2lmKHcuU1Qpe3BlcmZvcm1hbmNlLm1hcmsoXCJhZnRlclJlbmRlclwiKTt2YXIgZT1wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKFwicm91dGVDaGFuZ2VcIixcIm1hcmtcIik7ZS5sZW5ndGgmJihwZXJmb3JtYW5jZS5tZWFzdXJlKFwiTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyXCIsZVswXS5uYW1lLFwiYmVmb3JlUmVuZGVyXCIpLHBlcmZvcm1hbmNlLm1lYXN1cmUoXCJOZXh0LmpzLXJlbmRlclwiLFwiYmVmb3JlUmVuZGVyXCIsXCJhZnRlclJlbmRlclwiKSxXJiYocGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShcIk5leHQuanMtcmVuZGVyXCIpLmZvckVhY2goVykscGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShcIk5leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlclwiKS5mb3JFYWNoKFcpKSxuZSgpLFtcIk5leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlclwiLFwiTmV4dC5qcy1yZW5kZXJcIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMoZSl9KSkpfX1mdW5jdGlvbiBpZShlKXt2YXIgdD1lLmNhbGxiYWNrcyxyPWUuY2hpbGRyZW47cmV0dXJuIHYuZGVmYXVsdC51c2VMYXlvdXRFZmZlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pKX0pLFt0XSksdi5kZWZhdWx0LnVzZUVmZmVjdCgoZnVuY3Rpb24oKXtPLmRlZmF1bHQoVyl9KSxbXSkscn1mdW5jdGlvbiB1ZShlKXt2YXIgdD1lLkFwcCxyPWUuQ29tcG9uZW50LG49ZS5wcm9wcyxhPWUuZXJyLG89XCJpbml0aWFsXCJpbiBlP3ZvaWQgMDplLnN0eWxlU2hlZXRzO3I9cnx8VS5Db21wb25lbnQsbj1ufHxVLnByb3BzO3ZhciBpPWQoe30sbix7Q29tcG9uZW50OnIsZXJyOmEscm91dGVyOmh9KTtVPWk7dmFyIHUsYz0hMSxzPW5ldyBQcm9taXNlKChmdW5jdGlvbihlLHQpe0gmJkgoKSx1PWZ1bmN0aW9uKCl7SD1udWxsLGUoKX0sSD1mdW5jdGlvbigpe2M9ITAsSD1udWxsO3ZhciBlPW5ldyBFcnJvcihcIkNhbmNlbCByZW5kZXJpbmcgcm91dGVcIik7ZS5jYW5jZWxsZWQ9ITAsdChlKX19KSk7ZnVuY3Rpb24gbCgpe3UoKX0hZnVuY3Rpb24oKXtpZighbylyZXR1cm4hMTt2YXIgZT1HKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJzdHlsZVtkYXRhLW4taHJlZl1cIikpLHQ9bmV3IFNldChlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0QXR0cmlidXRlKFwiZGF0YS1uLWhyZWZcIil9KSkpLHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIm5vc2NyaXB0W2RhdGEtbi1jc3NdXCIpLG49bnVsbD09cj92b2lkIDA6ci5nZXRBdHRyaWJ1dGUoXCJkYXRhLW4tY3NzXCIpO28uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9ZS5ocmVmLGE9ZS50ZXh0O2lmKCF0LmhhcyhyKSl7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO28uc2V0QXR0cmlidXRlKFwiZGF0YS1uLWhyZWZcIixyKSxvLnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsXCJ4XCIpLG4mJm8uc2V0QXR0cmlidXRlKFwibm9uY2VcIixuKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pLG8uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYSkpfX0pKX0oKTt2YXIgZj12LmRlZmF1bHQuY3JlYXRlRWxlbWVudCh2LmRlZmF1bHQuRnJhZ21lbnQsbnVsbCx2LmRlZmF1bHQuY3JlYXRlRWxlbWVudChlZSx7Y2FsbGJhY2s6ZnVuY3Rpb24oKXtpZihvJiYhYyl7Zm9yKHZhciB0PW5ldyBTZXQoby5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmhyZWZ9KSkpLHI9Ryhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwic3R5bGVbZGF0YS1uLWhyZWZdXCIpKSxuPXIubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLW4taHJlZlwiKX0pKSxhPTA7YTxuLmxlbmd0aDsrK2EpdC5oYXMoblthXSk/clthXS5yZW1vdmVBdHRyaWJ1dGUoXCJtZWRpYVwiKTpyW2FdLnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsXCJ4XCIpO3ZhciBpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJub3NjcmlwdFtkYXRhLW4tY3NzXVwiKTtpJiZvLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuaHJlZixyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtbi1ocmVmPVwiJy5jb25jYXQodCwnXCJdJykpO3ImJihpLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHIsaS5uZXh0U2libGluZyksaT1yKX0pKSxHKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJsaW5rW2RhdGEtbi1wXVwiKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSkpfWlmKGUuc2Nyb2xsKXt2YXIgdT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscz11LnN0eWxlLnNjcm9sbEJlaGF2aW9yO3Uuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9XCJhdXRvXCIsd2luZG93LnNjcm9sbFRvKGUuc2Nyb2xsLngsZS5zY3JvbGwueSksdS5zdHlsZS5zY3JvbGxCZWhhdmlvcj1zfX19KSx2LmRlZmF1bHQuY3JlYXRlRWxlbWVudChRLG51bGwsWCh0LGkpLHYuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFAuUG9ydGFsLHt0eXBlOlwibmV4dC1yb3V0ZS1hbm5vdW5jZXJcIn0sdi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoai5Sb3V0ZUFubm91bmNlcixudWxsKSkpKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXt3LlNUJiZwZXJmb3JtYW5jZS5tYXJrKFwiYmVmb3JlUmVuZGVyXCIpO3ZhciByPXQocmU/YWU6b2UpO3RlPygwLHYuZGVmYXVsdC5zdGFydFRyYW5zaXRpb24pKChmdW5jdGlvbigpe3RlLnJlbmRlcihyKX0pKToodGU9TC5oeWRyYXRlUm9vdChlLHIpLHJlPSExKX0oQiwoZnVuY3Rpb24oZSl7cmV0dXJuIHYuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGllLHtjYWxsYmFja3M6W2UsbF19LHYuZGVmYXVsdC5jcmVhdGVFbGVtZW50KHYuZGVmYXVsdC5TdHJpY3RNb2RlLG51bGwsZikpfSkpLHN9ZnVuY3Rpb24gY2UoZSl7cmV0dXJuIHNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBzZSgpe3JldHVybihzZT1mKG4ubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgcjtyZXR1cm4gbi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZighdC5lcnIpe2UubmV4dD00O2JyZWFrfXJldHVybiBlLm5leHQ9MyxKKHQpO2Nhc2UgMzpyZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIik7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLm5leHQ9Nyx1ZSh0KTtjYXNlIDc6ZS5uZXh0PTE3O2JyZWFrO2Nhc2UgOTppZihlLnByZXY9OSxlLnQwPWUuY2F0Y2goNCksIShyPWsuZ2V0UHJvcGVyRXJyb3IoZS50MCkpLmNhbmNlbGxlZCl7ZS5uZXh0PTE0O2JyZWFrfXRocm93IHI7Y2FzZSAxNDpyZXR1cm4gZS5uZXh0PTE3LEooZCh7fSx0LHtlcnI6cn0pKTtjYXNlIDE3OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDldXSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbGUoKXtyZXR1cm4obGU9ZihuLm1hcmsoKGZ1bmN0aW9uIGUocil7dmFyIGEsbyxpLHUsYyxzO3JldHVybiBuLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBhPU4uZXJyLGUucHJldj0xLGUubmV4dD00LEQucm91dGVMb2FkZXIud2hlbkVudHJ5cG9pbnQoXCIvX2FwcFwiKTtjYXNlIDQ6aWYoIShcImVycm9yXCJpbihvPWUuc2VudCkpKXtlLm5leHQ9NzticmVha310aHJvdyBvLmVycm9yO2Nhc2UgNzppPW8uY29tcG9uZW50LHU9by5leHBvcnRzLEY9aSx1JiZ1LnJlcG9ydFdlYlZpdGFscyYmKFc9ZnVuY3Rpb24oZSl7dmFyIHQscj1lLmlkLG49ZS5uYW1lLGE9ZS5zdGFydFRpbWUsbz1lLnZhbHVlLGk9ZS5kdXJhdGlvbixjPWUuZW50cnlUeXBlLHM9ZS5lbnRyaWVzLGw9XCJcIi5jb25jYXQoRGF0ZS5ub3coKSxcIi1cIikuY29uY2F0KE1hdGguZmxvb3IoODk5OTk5OTk5OTk5OSpNYXRoLnJhbmRvbSgpKSsxZTEyKTtzJiZzLmxlbmd0aCYmKHQ9c1swXS5zdGFydFRpbWUpO3ZhciBmPXtpZDpyfHxsLG5hbWU6bixzdGFydFRpbWU6YXx8dCx2YWx1ZTpudWxsPT1vP2k6byxsYWJlbDpcIm1hcmtcIj09PWN8fFwibWVhc3VyZVwiPT09Yz9cImN1c3RvbVwiOlwid2ViLXZpdGFsXCJ9O3UucmVwb3J0V2ViVml0YWxzKGYpfSksZS5uZXh0PTE0O2JyZWFrO2Nhc2UgMTQ6cmV0dXJuIGUubmV4dD0xNixELnJvdXRlTG9hZGVyLndoZW5FbnRyeXBvaW50KE4ucGFnZSk7Y2FzZSAxNjplLnQwPWUuc2VudDtjYXNlIDE3OmlmKCEoXCJlcnJvclwiaW4oYz1lLnQwKSkpe2UubmV4dD0yMDticmVha310aHJvdyBjLmVycm9yO2Nhc2UgMjA6ej1jLmNvbXBvbmVudCxlLm5leHQ9MjU7YnJlYWs7Y2FzZSAyNTplLm5leHQ9MzA7YnJlYWs7Y2FzZSAyNzplLnByZXY9MjcsZS50MT1lLmNhdGNoKDEpLGE9ay5nZXRQcm9wZXJFcnJvcihlLnQxKTtjYXNlIDMwOmlmKCF3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWSl7ZS5uZXh0PTM0O2JyZWFrfXJldHVybiBlLm5leHQ9MzQsd2luZG93Ll9fTkVYVF9QUkVMT0FEUkVBRFkoTi5keW5hbWljSWRzKTtjYXNlIDM0OnJldHVybiB0LnJvdXRlcj1oPVIuY3JlYXRlUm91dGVyKE4ucGFnZSxOLnF1ZXJ5LEkse2luaXRpYWxQcm9wczpOLnByb3BzLHBhZ2VMb2FkZXI6RCxBcHA6RixDb21wb25lbnQ6eix3cmFwQXBwOlksZXJyOmEsaXNGYWxsYmFjazpCb29sZWFuKE4uaXNGYWxsYmFjayksc3Vic2NyaXB0aW9uOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gY2UoT2JqZWN0LmFzc2lnbih7fSxlLHtBcHA6dCxzY3JvbGw6cn0pKX0sbG9jYWxlOk4ubG9jYWxlLGxvY2FsZXM6Ti5sb2NhbGVzLGRlZmF1bHRMb2NhbGU6Wixkb21haW5Mb2NhbGVzOk4uZG9tYWluTG9jYWxlcyxpc1ByZXZpZXc6Ti5pc1ByZXZpZXd9KSxlLm5leHQ9MzcsaC5faW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZTtjYXNlIDM3OmlmKCQ9ZS5zZW50LHM9e0FwcDpGLGluaXRpYWw6ITAsQ29tcG9uZW50OnoscHJvcHM6Ti5wcm9wcyxlcnI6YX0sIShudWxsPT1yP3ZvaWQgMDpyLmJlZm9yZVJlbmRlcikpe2UubmV4dD00MjticmVha31yZXR1cm4gZS5uZXh0PTQyLHIuYmVmb3JlUmVuZGVyKCk7Y2FzZSA0MjpjZShzKTtjYXNlIDQzOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1sxLDI3XV0pfSkpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfShcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw5NDYwOTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig5Njk0Nyk7d2luZG93Lm5leHQ9e3ZlcnNpb246bi52ZXJzaW9uLGdldCByb3V0ZXIoKXtyZXR1cm4gbi5yb3V0ZXJ9LGVtaXR0ZXI6bi5lbWl0dGVyfSxuLmluaXRpYWxpemUoe30pLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG4uaHlkcmF0ZSgpfSkpLmNhdGNoKGNvbnNvbGUuZXJyb3IpLChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSwyNDk2OTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaD12b2lkIDA7dmFyIG49cigxNTMyMyksYT1yKDIzMDgyKTt0Lm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoPWZ1bmN0aW9uKGUpe2lmKCFlLnN0YXJ0c1dpdGgoXCIvXCIpKXJldHVybiBlO3ZhciB0PWEucGFyc2VQYXRoKGUpLHI9dC5wYXRobmFtZSxvPXQucXVlcnksaT10Lmhhc2g7cmV0dXJuXCJcIi5jb25jYXQobi5yZW1vdmVUcmFpbGluZ1NsYXNoKHIpKS5jb25jYXQobykuY29uY2F0KGkpfSwoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZGVmYXVsdHx8XCJvYmplY3RcIj09PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxlLmV4cG9ydHM9dC5kZWZhdWx0KX0sNjYxODQ6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPXIoMzMyMjcpLGE9cig4ODM2MSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbz1yKDkyNjQ4KS5aLGk9cig3MDIyNyksdT1yKDY0OTU3KSxjPW8ocig1ODc5MikpLHM9cig1Nzk5NSksbD1yKDk2MzYpLGY9cig4NjQ3MiksZD1yKDE1MzIzKSxwPXIoNDk4OSksaD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXtuKHRoaXMsZSksdGhpcy5yb3V0ZUxvYWRlcj1wLmNyZWF0ZVJvdXRlTG9hZGVyKHIpLHRoaXMuYnVpbGRJZD10LHRoaXMuYXNzZXRQcmVmaXg9cix0aGlzLnByb21pc2VkU3NnTWFuaWZlc3Q9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3dpbmRvdy5fX1NTR19NQU5JRkVTVD9lKHdpbmRvdy5fX1NTR19NQU5JRkVTVCk6d2luZG93Ll9fU1NHX01BTklGRVNUX0NCPWZ1bmN0aW9uKCl7ZSh3aW5kb3cuX19TU0dfTUFOSUZFU1QpfX0pKX1yZXR1cm4gYShlLFt7a2V5OlwiZ2V0UGFnZUxpc3RcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBwLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5zb3J0ZWRQYWdlc30pKX19LHtrZXk6XCJnZXRNaWRkbGV3YXJlXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1be3JlZ2V4cDpcIl4oPzpcXFxcLyhfbmV4dFxcXFwvZGF0YVxcXFwvW14vXXsxLH0pKT9cXFxcL2FkZCg/OlxcXFwvKCg/OlteXFxcXC8jXFxcXD9dKz8pKD86XFxcXC8oPzpbXlxcXFwvI1xcXFw/XSs/KSkqKSk/KC5qc29uKT9bXFxcXC8jXFxcXD9dPyRcIn1dO3JldHVybiB3aW5kb3cuX19NSURETEVXQVJFX01BVENIRVJTPWV8fHZvaWQgMCx3aW5kb3cuX19NSURETEVXQVJFX01BVENIRVJTfX0se2tleTpcImdldERhdGFIcmVmXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxyPWUuYXNQYXRoLG49ZS5ocmVmLGE9ZS5sb2NhbGUsbz1mLnBhcnNlUmVsYXRpdmVVcmwobikscD1vLnBhdGhuYW1lLGg9by5xdWVyeSx2PW8uc2VhcmNoLG09Zi5wYXJzZVJlbGF0aXZlVXJsKHIpLnBhdGhuYW1lLHk9ZC5yZW1vdmVUcmFpbGluZ1NsYXNoKHApO2lmKFwiL1wiIT09eVswXSl0aHJvdyBuZXcgRXJyb3IoJ1JvdXRlIG5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggYSBcIi9cIiwgZ290IFwiJy5jb25jYXQoeSwnXCInKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPWMuZGVmYXVsdChkLnJlbW92ZVRyYWlsaW5nU2xhc2gocy5hZGRMb2NhbGUoZSxhKSksXCIuanNvblwiKTtyZXR1cm4gaS5hZGRCYXNlUGF0aChcIi9fbmV4dC9kYXRhL1wiLmNvbmNhdCh0LmJ1aWxkSWQpLmNvbmNhdChyKS5jb25jYXQodiksITApfShlLnNraXBJbnRlcnBvbGF0aW9uP206bC5pc0R5bmFtaWNSb3V0ZSh5KT91LmludGVycG9sYXRlQXMocCxtLGgpLnJlc3VsdDp5KX19LHtrZXk6XCJfaXNTc2dcIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0LnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhhcyhlKX0pKX19LHtrZXk6XCJsb2FkUGFnZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJvdXRlTG9hZGVyLmxvYWRSb3V0ZShlKS50aGVuKChmdW5jdGlvbihlKXtpZihcImNvbXBvbmVudFwiaW4gZSlyZXR1cm57cGFnZTplLmNvbXBvbmVudCxtb2Q6ZS5leHBvcnRzLHN0eWxlU2hlZXRzOmUuc3R5bGVzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJue2hyZWY6ZS5ocmVmLHRleHQ6ZS5jb250ZW50fX0pKX07dGhyb3cgZS5lcnJvcn0pKX19LHtrZXk6XCJwcmVmZXRjaFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJvdXRlTG9hZGVyLnByZWZldGNoKGUpfX1dKSxlfSgpO3QuZGVmYXVsdD1oLChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw4ODU0OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuLGE9cig3ODAxOCksbz0obG9jYXRpb24uaHJlZiwhMSk7ZnVuY3Rpb24gaShlKXtuJiZuKGUpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtuPWUsb3x8KG89ITAsYS5vbkNMUyhpKSxhLm9uRklEKGkpLGEub25GQ1AoaSksYS5vbkxDUChpKSxhLm9uVFRGQihpKSxhLm9uSU5QKGkpKX0sKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmRlZmF1bHR8fFwib2JqZWN0XCI9PT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB0LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksZS5leHBvcnRzPXQuZGVmYXVsdCl9LDYzMjkxOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1yKDg1Njk2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlBvcnRhbD12b2lkIDA7dmFyIGE9cig2NzI5NCksbz1yKDczOTM1KTt0LlBvcnRhbD1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLHI9ZS50eXBlLGk9YS51c2VTdGF0ZShudWxsKSx1PW4oaSwyKSxjPXVbMF0scz11WzFdO3JldHVybiBhLnVzZUVmZmVjdCgoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHIpO3JldHVybiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLHMoZSksZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGUpfX0pLFtyXSksYz9vLmNyZWF0ZVBvcnRhbCh0LGMpOm51bGx9LChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw2NTY3ODpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5yZW1vdmVCYXNlUGF0aD1mdW5jdGlvbihlKXswOyhlPWUuc2xpY2UoXCJcIi5sZW5ndGgpKS5zdGFydHNXaXRoKFwiL1wiKXx8KGU9XCIvXCIuY29uY2F0KGUpKTtyZXR1cm4gZX07cig4NzcxKTsoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZGVmYXVsdHx8XCJvYmplY3RcIj09PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxlLmV4cG9ydHM9dC5kZWZhdWx0KX0sNDk3ODE6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucmVtb3ZlTG9jYWxlPWZ1bmN0aW9uKGUsdCl7MDtyZXR1cm4gZX07cigyMzA4Mik7KFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmRlZmF1bHR8fFwib2JqZWN0XCI9PT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB0LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksZS5leHBvcnRzPXQuZGVmYXVsdCl9LDI2Mjg2OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5jYW5jZWxJZGxlQ2FsbGJhY2s9dC5yZXF1ZXN0SWRsZUNhbGxiYWNrPXZvaWQgMDt2YXIgcj1cInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGYmJnNlbGYucmVxdWVzdElkbGVDYWxsYmFjayYmc2VsZi5yZXF1ZXN0SWRsZUNhbGxiYWNrLmJpbmQod2luZG93KXx8ZnVuY3Rpb24oZSl7dmFyIHQ9RGF0ZS5ub3coKTtyZXR1cm4gc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlKHtkaWRUaW1lb3V0OiExLHRpbWVSZW1haW5pbmc6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgoMCw1MC0oRGF0ZS5ub3coKS10KSl9fSl9KSwxKX07dC5yZXF1ZXN0SWRsZUNhbGxiYWNrPXI7dmFyIG49XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZWxmJiZzZWxmLmNhbmNlbElkbGVDYWxsYmFjayYmc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpfHxmdW5jdGlvbihlKXtyZXR1cm4gY2xlYXJUaW1lb3V0KGUpfTt0LmNhbmNlbElkbGVDYWxsYmFjaz1uLChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw5MzM5NjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig4NTY5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXQuUm91dGVBbm5vdW5jZXI9dm9pZCAwO3ZhciBhPSgwLHIoOTI2NDgpLlopKHIoNjcyOTQpKSxvPXIoNjk4OTgpLGk9e2JvcmRlcjowLGNsaXA6XCJyZWN0KDAgMCAwIDApXCIsaGVpZ2h0OlwiMXB4XCIsbWFyZ2luOlwiLTFweFwiLG92ZXJmbG93OlwiaGlkZGVuXCIscGFkZGluZzowLHBvc2l0aW9uOlwiYWJzb2x1dGVcIix3aWR0aDpcIjFweFwiLHdoaXRlU3BhY2U6XCJub3dyYXBcIix3b3JkV3JhcDpcIm5vcm1hbFwifSx1PWZ1bmN0aW9uKCl7dmFyIGU9by51c2VSb3V0ZXIoKS5hc1BhdGgsdD1hLmRlZmF1bHQudXNlU3RhdGUoXCJcIikscj1uKHQsMiksdT1yWzBdLGM9clsxXSxzPWEuZGVmYXVsdC51c2VSZWYoZSk7cmV0dXJuIGEuZGVmYXVsdC51c2VFZmZlY3QoKGZ1bmN0aW9uKCl7aWYocy5jdXJyZW50IT09ZSlpZihzLmN1cnJlbnQ9ZSxkb2N1bWVudC50aXRsZSljKGRvY3VtZW50LnRpdGxlKTtlbHNle3ZhciB0LHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImgxXCIpLG49bnVsbCE9KHQ9bnVsbD09cj92b2lkIDA6ci5pbm5lclRleHQpP3Q6bnVsbD09cj92b2lkIDA6ci50ZXh0Q29udGVudDtjKG58fGUpfX0pLFtlXSksYS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJwXCIse1wiYXJpYS1saXZlXCI6XCJhc3NlcnRpdmVcIixpZDpcIl9fbmV4dC1yb3V0ZS1hbm5vdW5jZXJfX1wiLHJvbGU6XCJhbGVydFwiLHN0eWxlOml9LHUpfTt0LlJvdXRlQW5ub3VuY2VyPXU7dmFyIGM9dTt0LmRlZmF1bHQ9YywoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZGVmYXVsdHx8XCJvYmplY3RcIj09PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxlLmV4cG9ydHM9dC5kZWZhdWx0KX0sNDk4OTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5tYXJrQXNzZXRFcnJvcj1jLHQuaXNBc3NldEVycm9yPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZ1IGluIGV9LHQuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdD1sLHQuY3JlYXRlUm91dGVMb2FkZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IE1hcCxyPW5ldyBNYXAsbj1uZXcgTWFwLHU9bmV3IE1hcDtmdW5jdGlvbiBsKGUpe3ZhciB0PXIuZ2V0KGUudG9TdHJpbmcoKSk7cmV0dXJuIHR8fChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjXj1cIicuY29uY2F0KGUsJ1wiXScpKT9Qcm9taXNlLnJlc29sdmUoKTooci5zZXQoZS50b1N0cmluZygpLHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbil7KHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSkub25sb2FkPXIsdC5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIG4oYyhuZXcgRXJyb3IoXCJGYWlsZWQgdG8gbG9hZCBzY3JpcHQ6IFwiLmNvbmNhdChlKSkpKX0sdC5jcm9zc09yaWdpbj12b2lkIDAsdC5zcmM9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpfSkpfShlKSksdCkpfWZ1bmN0aW9uIGQoZSl7dmFyIHQ9bi5nZXQoZSk7cmV0dXJuIHR8fChuLnNldChlLHQ9ZmV0Y2goZSkudGhlbigoZnVuY3Rpb24odCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGxvYWQgc3R5bGVzaGVldDogXCIuY29uY2F0KGUpKTtyZXR1cm4gdC50ZXh0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJue2hyZWY6ZSxjb250ZW50OnR9fSkpfSkpLmNhdGNoKChmdW5jdGlvbihlKXt0aHJvdyBjKGUpfSkpKSx0KX1yZXR1cm57d2hlbkVudHJ5cG9pbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSx0KX0sb25FbnRyeXBvaW50OmZ1bmN0aW9uKGUscil7KHI/UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gcigpfSkpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybntjb21wb25lbnQ6ZSYmZS5kZWZhdWx0fHxlLGV4cG9ydHM6ZX19KSwoZnVuY3Rpb24oZSl7cmV0dXJue2Vycm9yOmV9fSkpOlByb21pc2UucmVzb2x2ZSh2b2lkIDApKS50aGVuKChmdW5jdGlvbihyKXt2YXIgbj10LmdldChlKTtuJiZcInJlc29sdmVcImluIG4/ciYmKHQuc2V0KGUsciksbi5yZXNvbHZlKHIpKToocj90LnNldChlLHIpOnQuZGVsZXRlKGUpLHUuZGVsZXRlKGUpKX0pKX0sbG9hZFJvdXRlOmZ1bmN0aW9uKHIsbil7dmFyIGE9dGhpcztyZXR1cm4gbyhyLHUsKGZ1bmN0aW9uKCl7cmV0dXJuIHMoZihlLHIpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciBuPWUuc2NyaXB0cyxhPWUuY3NzO3JldHVybiBQcm9taXNlLmFsbChbdC5oYXMocik/W106UHJvbWlzZS5hbGwobi5tYXAobCkpLFByb21pc2UuYWxsKGEubWFwKGQpKV0pfSkpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBhLndoZW5FbnRyeXBvaW50KHIpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybntlbnRyeXBvaW50OnQsc3R5bGVzOmVbMV19fSkpfSkpLDM4MDAsYyhuZXcgRXJyb3IoXCJSb3V0ZSBkaWQgbm90IGNvbXBsZXRlIGxvYWRpbmc6IFwiLmNvbmNhdChyKSkpKS50aGVuKChmdW5jdGlvbihlKXt2YXIgdD1lLmVudHJ5cG9pbnQscj1lLnN0eWxlcyxuPU9iamVjdC5hc3NpZ24oe3N0eWxlczpyfSx0KTtyZXR1cm5cImVycm9yXCJpbiB0P3Q6bn0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7aWYobil0aHJvdyBlO3JldHVybntlcnJvcjplfX0pKS5maW5hbGx5KChmdW5jdGlvbigpe30pKX0pKX0scHJlZmV0Y2g6ZnVuY3Rpb24odCl7dmFyIHIsbj10aGlzO3JldHVybihyPW5hdmlnYXRvci5jb25uZWN0aW9uKSYmKHIuc2F2ZURhdGF8fC8yZy8udGVzdChyLmVmZmVjdGl2ZVR5cGUpKT9Qcm9taXNlLnJlc29sdmUoKTpmKGUsdCkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGk/ZS5zY3JpcHRzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQ9ZS50b1N0cmluZygpLHI9XCJzY3JpcHRcIixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxhKXt2YXIgbz0nXFxuICAgICAgbGlua1tyZWw9XCJwcmVmZXRjaFwiXVtocmVmXj1cIicuY29uY2F0KHQsJ1wiXSxcXG4gICAgICBsaW5rW3JlbD1cInByZWxvYWRcIl1baHJlZl49XCInKS5jb25jYXQodCwnXCJdLFxcbiAgICAgIHNjcmlwdFtzcmNePVwiJykuY29uY2F0KHQsJ1wiXScpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IobykpcmV0dXJuIGUoKTtuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLHImJihuLmFzPXIpLG4ucmVsPVwicHJlZmV0Y2hcIixuLmNyb3NzT3JpZ2luPXZvaWQgMCxuLm9ubG9hZD1lLG4ub25lcnJvcj1hLG4uaHJlZj10LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9KSk7dmFyIHQscixufSkpOltdKX0pKS50aGVuKChmdW5jdGlvbigpe2EucmVxdWVzdElkbGVDYWxsYmFjaygoZnVuY3Rpb24oKXtyZXR1cm4gbi5sb2FkUm91dGUodCwhMCkuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpfSkpfSkpLmNhdGNoKChmdW5jdGlvbigpe30pKX19fTsoMCxyKDkyNjQ4KS5aKShyKDU4NzkyKSk7dmFyIG49cig2NTc0MCksYT1yKDI2Mjg2KTtmdW5jdGlvbiBvKGUsdCxyKXt2YXIgbixhPXQuZ2V0KGUpO2lmKGEpcmV0dXJuXCJmdXR1cmVcImluIGE/YS5mdXR1cmU6UHJvbWlzZS5yZXNvbHZlKGEpO3ZhciBvPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtuPWV9KSk7cmV0dXJuIHQuc2V0KGUsYT17cmVzb2x2ZTpuLGZ1dHVyZTpvfSkscj9yKCkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSksZX0pKS5jYXRjaCgoZnVuY3Rpb24ocil7dGhyb3cgdC5kZWxldGUoZSkscn0pKTpvfXZhciBpPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKSwhIXdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCYmISFkb2N1bWVudC5kb2N1bWVudE1vZGV8fGUucmVsTGlzdC5zdXBwb3J0cyhcInByZWZldGNoXCIpfWNhdGNoKHQpe3JldHVybiExfX0oKTt2YXIgdT1TeW1ib2woXCJBU1NFVF9MT0FEX0VSUk9SXCIpO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHUse30pfWZ1bmN0aW9uIHMoZSx0LHIpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixvKXt2YXIgaT0hMTtlLnRoZW4oKGZ1bmN0aW9uKGUpe2k9ITAsbihlKX0pKS5jYXRjaChvKSxhLnJlcXVlc3RJZGxlQ2FsbGJhY2soKGZ1bmN0aW9uKCl7cmV0dXJuIHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7aXx8byhyKX0pLHQpfSkpfSkpfWZ1bmN0aW9uIGwoKXtyZXR1cm4gc2VsZi5fX0JVSUxEX01BTklGRVNUP1Byb21pc2UucmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QpOnMobmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3ZhciB0PXNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQjtzZWxmLl9fQlVJTERfTUFOSUZFU1RfQ0I9ZnVuY3Rpb24oKXtlKHNlbGYuX19CVUlMRF9NQU5JRkVTVCksdCYmdCgpfX0pKSwzODAwLGMobmV3IEVycm9yKFwiRmFpbGVkIHRvIGxvYWQgY2xpZW50IGJ1aWxkIG1hbmlmZXN0XCIpKSl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiBsKCkudGhlbigoZnVuY3Rpb24ocil7aWYoISh0IGluIHIpKXRocm93IGMobmV3IEVycm9yKFwiRmFpbGVkIHRvIGxvb2t1cCByb3V0ZTogXCIuY29uY2F0KHQpKSk7dmFyIGE9clt0XS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlK1wiL19uZXh0L1wiK2VuY29kZVVSSSh0KX0pKTtyZXR1cm57c2NyaXB0czphLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZW5kc1dpdGgoXCIuanNcIil9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5fX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwoZSl9KSksY3NzOmEuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5lbmRzV2l0aChcIi5jc3NcIil9KSl9fSkpfShcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw2OTg5ODpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig3NDU3Nyk7ZnVuY3Rpb24gYShlLHQpe3ZhciByPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKCFyKXtpZihBcnJheS5pc0FycmF5KGUpfHwocj1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybjtpZihcInN0cmluZ1wiPT09dHlwZW9mIGUpcmV0dXJuIG8oZSx0KTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXJ8fFwiU2V0XCI9PT1yKXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT1yfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKSlyZXR1cm4gbyhlLHQpfShlKSl8fHQmJmUmJlwibnVtYmVyXCI9PT10eXBlb2YgZS5sZW5ndGgpe3ImJihlPXIpO3ZhciBuPTAsYT1mdW5jdGlvbigpe307cmV0dXJue3M6YSxuOmZ1bmN0aW9uKCl7cmV0dXJuIG4+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW24rK119fSxlOmZ1bmN0aW9uKGUpe3Rocm93IGV9LGY6YX19dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfXZhciBpLHU9ITAsYz0hMTtyZXR1cm57czpmdW5jdGlvbigpe3I9ci5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9ci5uZXh0KCk7cmV0dXJuIHU9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7Yz0hMCxpPWV9LGY6ZnVuY3Rpb24oKXt0cnl7dXx8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZihjKXRocm93IGl9fX19ZnVuY3Rpb24gbyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KHQpO3I8dDtyKyspbltyXT1lW3JdO3JldHVybiBufU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiUm91dGVyXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIndpdGhSb3V0ZXJcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kZWZhdWx0fX0pLHQudXNlUm91dGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHUuZGVmYXVsdC51c2VDb250ZXh0KHMuUm91dGVyQ29udGV4dCl9LHQuY3JlYXRlUm91dGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIGQucm91dGVyPW4oYy5kZWZhdWx0LHQpLGQucmVhZHlDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pKSxkLnJlYWR5Q2FsbGJhY2tzPVtdLGQucm91dGVyfSx0Lm1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZT1mdW5jdGlvbihlKXt2YXIgdCxyPWUsbj17fSxvPWEocCk7dHJ5e2ZvcihvLnMoKTshKHQ9by5uKCkpLmRvbmU7KXt2YXIgaT10LnZhbHVlO1wib2JqZWN0XCIhPT10eXBlb2YgcltpXT9uW2ldPXJbaV06bltpXT1PYmplY3QuYXNzaWduKEFycmF5LmlzQXJyYXkocltpXSk/W106e30scltpXSl9fWNhdGNoKHUpe28uZSh1KX1maW5hbGx5e28uZigpfXJldHVybiBuLmV2ZW50cz1jLmRlZmF1bHQuZXZlbnRzLGguZm9yRWFjaCgoZnVuY3Rpb24oZSl7bltlXT1mdW5jdGlvbigpe3JldHVybiByW2VdLmFwcGx5KHIsYXJndW1lbnRzKX19KSksbn0sdC5kZWZhdWx0PXZvaWQgMDt2YXIgaT1yKDkyNjQ4KS5aLHU9aShyKDY3Mjk0KSksYz1pKHIoNjQ5NTcpKSxzPXIoMzA2NDcpLGw9aShyKDgwNjc2KSksZj1pKHIoOTYwOTgpKSxkPXtyb3V0ZXI6bnVsbCxyZWFkeUNhbGxiYWNrczpbXSxyZWFkeTpmdW5jdGlvbihlKXtpZih0aGlzLnJvdXRlcilyZXR1cm4gZSgpO3RoaXMucmVhZHlDYWxsYmFja3MucHVzaChlKX19LHA9W1wicGF0aG5hbWVcIixcInJvdXRlXCIsXCJxdWVyeVwiLFwiYXNQYXRoXCIsXCJjb21wb25lbnRzXCIsXCJpc0ZhbGxiYWNrXCIsXCJiYXNlUGF0aFwiLFwibG9jYWxlXCIsXCJsb2NhbGVzXCIsXCJkZWZhdWx0TG9jYWxlXCIsXCJpc1JlYWR5XCIsXCJpc1ByZXZpZXdcIixcImlzTG9jYWxlRG9tYWluXCIsXCJkb21haW5Mb2NhbGVzXCJdLGg9W1wicHVzaFwiLFwicmVwbGFjZVwiLFwicmVsb2FkXCIsXCJiYWNrXCIsXCJwcmVmZXRjaFwiLFwiYmVmb3JlUG9wU3RhdGVcIl07ZnVuY3Rpb24gdigpe2lmKCFkLnJvdXRlcil7dGhyb3cgbmV3IEVycm9yKCdObyByb3V0ZXIgaW5zdGFuY2UgZm91bmQuXFxuWW91IHNob3VsZCBvbmx5IHVzZSBcIm5leHQvcm91dGVyXCIgb24gdGhlIGNsaWVudCBzaWRlIG9mIHlvdXIgYXBwLlxcbicpfXJldHVybiBkLnJvdXRlcn1PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxcImV2ZW50c1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5kZWZhdWx0LmV2ZW50c319KSxwLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGUse2dldDpmdW5jdGlvbigpe3JldHVybiB2KClbZV19fSl9KSksaC5mb3JFYWNoKChmdW5jdGlvbihlKXtkW2VdPWZ1bmN0aW9uKCl7dmFyIHQ9digpO3JldHVybiB0W2VdLmFwcGx5KHQsYXJndW1lbnRzKX19KSksW1wicm91dGVDaGFuZ2VTdGFydFwiLFwiYmVmb3JlSGlzdG9yeUNoYW5nZVwiLFwicm91dGVDaGFuZ2VDb21wbGV0ZVwiLFwicm91dGVDaGFuZ2VFcnJvclwiLFwiaGFzaENoYW5nZVN0YXJ0XCIsXCJoYXNoQ2hhbmdlQ29tcGxldGVcIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZC5yZWFkeSgoZnVuY3Rpb24oKXtjLmRlZmF1bHQuZXZlbnRzLm9uKGUsKGZ1bmN0aW9uKCl7dmFyIHQ9XCJvblwiLmNvbmNhdChlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpKS5jb25jYXQoZS5zdWJzdHJpbmcoMSkpLHI9ZDtpZihyW3RdKXRyeXtyW3RdLmFwcGx5KHIsYXJndW1lbnRzKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKFwiRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6IFwiLmNvbmNhdCh0KSksY29uc29sZS5lcnJvcihsLmRlZmF1bHQobik/XCJcIi5jb25jYXQobi5tZXNzYWdlLFwiXFxuXCIpLmNvbmNhdChuLnN0YWNrKTpuK1wiXCIpfX0pKX0pKX0pKTt2YXIgbT1kO3QuZGVmYXVsdD1tLChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw3MjE4OTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig3OTgwKSxhPXIoODU2OTYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaGFuZGxlQ2xpZW50U2NyaXB0TG9hZD1tLHQuaW5pdFNjcmlwdExvYWRlcj1mdW5jdGlvbihlKXtlLmZvckVhY2gobSksW10uY29uY2F0KG4oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbnNjcmlwdD1cImJlZm9yZUludGVyYWN0aXZlXCJdJykpLG4oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbnNjcmlwdD1cImJlZm9yZVBhZ2VSZW5kZXJcIl0nKSkpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWUuaWR8fGUuZ2V0QXR0cmlidXRlKFwic3JjXCIpO3AuYWRkKHQpfSkpfSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBvPXIoNjQ5NSkuWixpPXIoOTE1OTgpLlosdT1yKDE3MjczKS5aLGM9aShyKDY3Mjk0KSkscz1yKDE1ODUwKSxsPXIoNDA4NzcpLGY9cigyNjI4NiksZD1uZXcgTWFwLHA9bmV3IFNldCxoPVtcIm9uTG9hZFwiLFwib25SZWFkeVwiLFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIixcImNoaWxkcmVuXCIsXCJvbkVycm9yXCIsXCJzdHJhdGVneVwiXSx2PWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3JjLHI9ZS5pZCxuPWUub25Mb2FkLG89dm9pZCAwPT09bj9mdW5jdGlvbigpe306bixpPWUub25SZWFkeSx1PXZvaWQgMD09PWk/bnVsbDppLGM9ZS5kYW5nZXJvdXNseVNldElubmVySFRNTCxzPWUuY2hpbGRyZW4sZj12b2lkIDA9PT1zP1wiXCI6cyx2PWUuc3RyYXRlZ3ksbT12b2lkIDA9PT12P1wiYWZ0ZXJJbnRlcmFjdGl2ZVwiOnYseT1lLm9uRXJyb3IsZz1yfHx0O2lmKCFnfHwhcC5oYXMoZykpe2lmKGQuaGFzKHQpKXJldHVybiBwLmFkZChnKSx2b2lkIGQuZ2V0KHQpLnRoZW4obyx5KTt2YXIgYj1mdW5jdGlvbigpe3UmJnUoKSxwLmFkZChnKX0sXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpLHg9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsdCl7Xy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLChmdW5jdGlvbih0KXtlKCksbyYmby5jYWxsKHRoaXMsdCksYigpfSkpLF8uYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsKGZ1bmN0aW9uKGUpe3QoZSl9KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3kmJnkoZSl9KSk7Yz8oXy5pbm5lckhUTUw9Yy5fX2h0bWx8fFwiXCIsYigpKTpmPyhfLnRleHRDb250ZW50PVwic3RyaW5nXCI9PT10eXBlb2YgZj9mOkFycmF5LmlzQXJyYXkoZik/Zi5qb2luKFwiXCIpOlwiXCIsYigpKTp0JiYoXy5zcmM9dCxkLnNldCh0LHgpKTtmb3IodmFyIHc9MCxQPU9iamVjdC5lbnRyaWVzKGUpO3c8UC5sZW5ndGg7dysrKXt2YXIgRT1hKFBbd10sMiksUz1FWzBdLE89RVsxXTtpZih2b2lkIDAhPT1PJiYhaC5pbmNsdWRlcyhTKSl7dmFyIGo9bC5ET01BdHRyaWJ1dGVOYW1lc1tTXXx8Uy50b0xvd2VyQ2FzZSgpO18uc2V0QXR0cmlidXRlKGosTyl9fVwid29ya2VyXCI9PT1tJiZfLnNldEF0dHJpYnV0ZShcInR5cGVcIixcInRleHQvcGFydHl0b3duXCIpLF8uc2V0QXR0cmlidXRlKFwiZGF0YS1uc2NyaXB0XCIsbSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChfKX19O2Z1bmN0aW9uIG0oZSl7dmFyIHQ9ZS5zdHJhdGVneTtcImxhenlPbmxvYWRcIj09PSh2b2lkIDA9PT10P1wiYWZ0ZXJJbnRlcmFjdGl2ZVwiOnQpP3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLChmdW5jdGlvbigpe2YucmVxdWVzdElkbGVDYWxsYmFjaygoZnVuY3Rpb24oKXtyZXR1cm4gdihlKX0pKX0pKTp2KGUpfWZ1bmN0aW9uIHkoZSl7dmFyIHQ9ZS5pZCxyPWUuc3JjLG49dm9pZCAwPT09cj9cIlwiOnIsYT1lLm9uTG9hZCxpPXZvaWQgMD09PWE/ZnVuY3Rpb24oKXt9OmEsbD1lLm9uUmVhZHksZD12b2lkIDA9PT1sP251bGw6bCxoPWUuc3RyYXRlZ3ksbT12b2lkIDA9PT1oP1wiYWZ0ZXJJbnRlcmFjdGl2ZVwiOmgseT1lLm9uRXJyb3IsZz11KGUsW1wiaWRcIixcInNyY1wiLFwib25Mb2FkXCIsXCJvblJlYWR5XCIsXCJzdHJhdGVneVwiLFwib25FcnJvclwiXSksYj1jLnVzZUNvbnRleHQocy5IZWFkTWFuYWdlckNvbnRleHQpLF89Yi51cGRhdGVTY3JpcHRzLHg9Yi5zY3JpcHRzLHc9Yi5nZXRJc1NzcixQPWMudXNlUmVmKCExKTtjLnVzZUVmZmVjdCgoZnVuY3Rpb24oKXt2YXIgZT10fHxuO1AuY3VycmVudHx8KGQmJmUmJnAuaGFzKGUpJiZkKCksUC5jdXJyZW50PSEwKX0pLFtkLHQsbl0pO3ZhciBFPWMudXNlUmVmKCExKTtyZXR1cm4gYy51c2VFZmZlY3QoKGZ1bmN0aW9uKCl7RS5jdXJyZW50fHwoXCJhZnRlckludGVyYWN0aXZlXCI9PT1tP3YoZSk6XCJsYXp5T25sb2FkXCI9PT1tJiZmdW5jdGlvbihlKXtcImNvbXBsZXRlXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP2YucmVxdWVzdElkbGVDYWxsYmFjaygoZnVuY3Rpb24oKXtyZXR1cm4gdihlKX0pKTp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwoZnVuY3Rpb24oKXtmLnJlcXVlc3RJZGxlQ2FsbGJhY2soKGZ1bmN0aW9uKCl7cmV0dXJuIHYoZSl9KSl9KSl9KGUpLEUuY3VycmVudD0hMCl9KSxbZSxtXSksXCJiZWZvcmVJbnRlcmFjdGl2ZVwiIT09bSYmXCJ3b3JrZXJcIiE9PW18fChfPyh4W21dPSh4W21dfHxbXSkuY29uY2F0KFtvKHtpZDp0LHNyYzpuLG9uTG9hZDppLG9uUmVhZHk6ZCxvbkVycm9yOnl9LGcpXSksXyh4KSk6dyYmdygpP3AuYWRkKHR8fG4pOncmJiF3KCkmJnYoZSkpLG51bGx9T2JqZWN0LmRlZmluZVByb3BlcnR5KHksXCJfX25leHRTY3JpcHRcIix7dmFsdWU6ITB9KTt2YXIgZz15O3QuZGVmYXVsdD1nLChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw2NTc0MDpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciByO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybihudWxsPT0odD1mdW5jdGlvbigpe3ZhciBlO1widW5kZWZpbmVkXCI9PT10eXBlb2YgciYmKHI9KG51bGw9PShlPXdpbmRvdy50cnVzdGVkVHlwZXMpP3ZvaWQgMDplLmNyZWF0ZVBvbGljeShcIm5leHRqc1wiLHtjcmVhdGVIVE1MOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxjcmVhdGVTY3JpcHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNyZWF0ZVNjcmlwdFVSTDpmdW5jdGlvbihlKXtyZXR1cm4gZX19KSl8fG51bGwpO3JldHVybiByfSgpKT92b2lkIDA6dC5jcmVhdGVTY3JpcHRVUkwoZSkpfHxlfSwoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZGVmYXVsdHx8XCJvYmplY3RcIj09PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxlLmV4cG9ydHM9dC5kZWZhdWx0KX0sOTYwOTg6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3JldHVybiBuLmRlZmF1bHQuY3JlYXRlRWxlbWVudChlLE9iamVjdC5hc3NpZ24oe3JvdXRlcjphLnVzZVJvdXRlcigpfSx0KSl9dC5nZXRJbml0aWFsUHJvcHM9ZS5nZXRJbml0aWFsUHJvcHMsdC5vcmlnR2V0SW5pdGlhbFByb3BzPWUub3JpZ0dldEluaXRpYWxQcm9wcywhMTtyZXR1cm4gdH07dmFyIG49KDAscig5MjY0OCkuWikocig2NzI5NCkpLGE9cig2OTg5OCk7KFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmRlZmF1bHR8fFwib2JqZWN0XCI9PT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB0LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksZS5leHBvcnRzPXQuZGVmYXVsdCl9LDc5ODE3OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5lc2NhcGVTdHJpbmdSZWdleHA9ZnVuY3Rpb24oZSl7aWYoci50ZXN0KGUpKXJldHVybiBlLnJlcGxhY2UobixcIlxcXFwkJlwiKTtyZXR1cm4gZX07dmFyIHI9L1t8XFxcXHt9KClbXFxdXiQrKj8uLV0vLG49L1t8XFxcXHt9KClbXFxdXiQrKj8uLV0vZ30sMTU4NTA6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuSGVhZE1hbmFnZXJDb250ZXh0PXZvaWQgMDt2YXIgbj0oMCxyKDkyNjQ4KS5aKShyKDY3Mjk0KSkuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHt9KTt0LkhlYWRNYW5hZ2VyQ29udGV4dD1ufSw5NjI1OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5ub3JtYWxpemVMb2NhbGVQYXRoPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbj1lLnNwbGl0KFwiL1wiKTtyZXR1cm4odHx8W10pLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiEoIW5bMV18fG5bMV0udG9Mb3dlckNhc2UoKSE9PXQudG9Mb3dlckNhc2UoKSkmJihyPXQsbi5zcGxpY2UoMSwxKSxlPW4uam9pbihcIi9cIil8fFwiL1wiLCEwKX0pKSx7cGF0aG5hbWU6ZSxkZXRlY3RlZExvY2FsZTpyfX19LDg5MjM5OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkltYWdlQ29uZmlnQ29udGV4dD12b2lkIDA7dmFyIG49KDAscig5MjY0OCkuWikocig2NzI5NCkpLGE9cig0ODE4Nyksbz1uLmRlZmF1bHQuY3JlYXRlQ29udGV4dChhLmltYWdlQ29uZmlnRGVmYXVsdCk7dC5JbWFnZUNvbmZpZ0NvbnRleHQ9b30sNDgxODc6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmltYWdlQ29uZmlnRGVmYXVsdD10LlZBTElEX0xPQURFUlM9dm9pZCAwO3QuVkFMSURfTE9BREVSUz1bXCJkZWZhdWx0XCIsXCJpbWdpeFwiLFwiY2xvdWRpbmFyeVwiLFwiYWthbWFpXCIsXCJjdXN0b21cIl07dC5pbWFnZUNvbmZpZ0RlZmF1bHQ9e2RldmljZVNpemVzOls2NDAsNzUwLDgyOCwxMDgwLDEyMDAsMTkyMCwyMDQ4LDM4NDBdLGltYWdlU2l6ZXM6WzE2LDMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSxwYXRoOlwiL19uZXh0L2ltYWdlXCIsbG9hZGVyOlwiZGVmYXVsdFwiLGRvbWFpbnM6W10sZGlzYWJsZVN0YXRpY0ltYWdlczohMSxtaW5pbXVtQ2FjaGVUVEw6NjAsZm9ybWF0czpbXCJpbWFnZS93ZWJwXCJdLGRhbmdlcm91c2x5QWxsb3dTVkc6ITEsY29udGVudFNlY3VyaXR5UG9saWN5Olwic2NyaXB0LXNyYyAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IHNhbmRib3g7XCIscmVtb3RlUGF0dGVybnM6W10sdW5vcHRpbWl6ZWQ6ITF9fSwyMjc4NDpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmdldE9iamVjdENsYXNzTGFiZWw9cix0LmlzUGxhaW5PYmplY3Q9ZnVuY3Rpb24oZSl7aWYoXCJbb2JqZWN0IE9iamVjdF1cIiE9PXIoZSkpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09dHx8dC5oYXNPd25Qcm9wZXJ0eShcImlzUHJvdG90eXBlT2ZcIil9fSwxODI4NjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbigpe3ZhciBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJue29uOmZ1bmN0aW9uKHQscil7KGVbdF18fChlW3RdPVtdKSkucHVzaChyKX0sb2ZmOmZ1bmN0aW9uKHQscil7ZVt0XSYmZVt0XS5zcGxpY2UoZVt0XS5pbmRleE9mKHIpPj4+MCwxKX0sZW1pdDpmdW5jdGlvbih0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShyPjE/ci0xOjApLGE9MTthPHI7YSsrKW5bYS0xXT1hcmd1bWVudHNbYV07KGVbdF18fFtdKS5zbGljZSgpLm1hcCgoZnVuY3Rpb24oZSl7ZS5hcHBseSh2b2lkIDAsbil9KSl9fX19LDc3NDg6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVub3JtYWxpemVQYWdlUGF0aD1mdW5jdGlvbihlKXt2YXIgdD1hLm5vcm1hbGl6ZVBhdGhTZXAoZSk7cmV0dXJuIHQuc3RhcnRzV2l0aChcIi9pbmRleC9cIikmJiFuLmlzRHluYW1pY1JvdXRlKHQpP3Quc2xpY2UoNik6XCIvaW5kZXhcIiE9PXQ/dDpcIi9cIn07dmFyIG49cig0MTEzNCksYT1yKDcwNzE2KX0sNzA3MTY6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lm5vcm1hbGl6ZVBhdGhTZXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvXFxcXC9nLFwiL1wiKX19LDMwNjQ3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlJvdXRlckNvbnRleHQ9dm9pZCAwO3ZhciBuPSgwLHIoOTI2NDgpLlopKHIoNjcyOTQpKS5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCk7dC5Sb3V0ZXJDb250ZXh0PW59LDY0OTU3OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1yKDMzMjI3KSxhPXIoODgzNjEpLG89cig4NTY5NiksaT1yKDg3Nzk0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lm1hdGNoZXNNaWRkbGV3YXJlPUIsdC5pc0xvY2FsVVJMPUYsdC5pbnRlcnBvbGF0ZUFzPVcsdC5yZXNvbHZlSHJlZj16LHQuY3JlYXRlS2V5PWVlLHQuZGVmYXVsdD12b2lkIDA7dmFyIHU9cig2MDkzMikuWixjPXIoNjQ5NSkuWixzPXIoOTI2NDgpLlosbD1yKDkxNTk4KS5aLGY9cigyNDk2OSksZD1yKDE1MzIzKSxwPXIoNDk4OSksaD1yKDcyMTg5KSx2PWwocig4MDY3NikpLG09cig3NzQ4KSx5PXIoOTYyNSksZz1zKHIoMTgyODYpKSxiPXIoOTk0NzUpLF89cig5NjM2KSx4PXIoODY0NzIpLHc9cigyNTg4MCksUD1zKHIoMjY4ODMpKSxFPXIoNjE1NTMpLFM9cig3NjkyNyksTz1yKDY5NDIyKSxqPShyKDU3NTY1KSxyKDIzMDgyKSksUj1yKDU3OTk1KSxrPXIoNDk3ODEpLE09cig2NTY3OCksQz1yKDcwMjI3KSxBPXIoODc3MSksTD1yKDgzNjAxKSxUPXIoNDYzOTQpLE49cig1Njc1MiksST1yKDI5MjkzKTtmdW5jdGlvbiBEKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKFwiUm91dGUgQ2FuY2VsbGVkXCIpLHtjYW5jZWxsZWQ6ITB9KX1mdW5jdGlvbiBCKGUpe3JldHVybiBxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBxKCl7cmV0dXJuKHE9dShpLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIHIsbixhLG8sdTtyZXR1cm4gaS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsUHJvbWlzZS5yZXNvbHZlKHQucm91dGVyLnBhZ2VMb2FkZXIuZ2V0TWlkZGxld2FyZSgpKTtjYXNlIDI6aWYocj1lLnNlbnQpe2UubmV4dD01O2JyZWFrfXJldHVybiBlLmFicnVwdChcInJldHVyblwiLCExKTtjYXNlIDU6cmV0dXJuIG49ai5wYXJzZVBhdGgodC5hc1BhdGgpLGE9bi5wYXRobmFtZSxvPUEuaGFzQmFzZVBhdGgoYSk/TS5yZW1vdmVCYXNlUGF0aChhKTphLHU9Qy5hZGRCYXNlUGF0aChSLmFkZExvY2FsZShvLHQubG9jYWxlKSksZS5hYnJ1cHQoXCJyZXR1cm5cIixyLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUmVnRXhwKGUucmVnZXhwKS50ZXN0KHUpfSkpKTtjYXNlIDk6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFUoZSl7dmFyIHQ9Yi5nZXRMb2NhdGlvbk9yaWdpbigpO3JldHVybiBlLnN0YXJ0c1dpdGgodCk/ZS5zdWJzdHJpbmcodC5sZW5ndGgpOmV9ZnVuY3Rpb24gSChlLHQpe3ZhciByPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXt0LmluY2x1ZGVzKG4pfHwocltuXT1lW25dKX0pKSxyfWZ1bmN0aW9uIEYoZSl7aWYoIWIuaXNBYnNvbHV0ZVVybChlKSlyZXR1cm4hMDt0cnl7dmFyIHQ9Yi5nZXRMb2NhdGlvbk9yaWdpbigpLHI9bmV3IFVSTChlLHQpO3JldHVybiByLm9yaWdpbj09PXQmJkEuaGFzQmFzZVBhdGgoci5wYXRobmFtZSl9Y2F0Y2gobil7cmV0dXJuITF9fWZ1bmN0aW9uIFcoZSx0LHIpe3ZhciBuPVwiXCIsYT1TLmdldFJvdXRlUmVnZXgoZSksbz1hLmdyb3VwcyxpPSh0IT09ZT9FLmdldFJvdXRlTWF0Y2hlcihhKSh0KTpcIlwiKXx8cjtuPWU7dmFyIHU9T2JqZWN0LmtleXMobyk7cmV0dXJuIHUuZXZlcnkoKGZ1bmN0aW9uKGUpe3ZhciB0PWlbZV18fFwiXCIscj1vW2VdLGE9ci5yZXBlYXQsdT1yLm9wdGlvbmFsLGM9XCJbXCIuY29uY2F0KGE/XCIuLi5cIjpcIlwiKS5jb25jYXQoZSxcIl1cIik7cmV0dXJuIHUmJihjPVwiXCIuY29uY2F0KHQ/XCJcIjpcIi9cIixcIltcIikuY29uY2F0KGMsXCJdXCIpKSxhJiYhQXJyYXkuaXNBcnJheSh0KSYmKHQ9W3RdKSwodXx8ZSBpbiBpKSYmKG49bi5yZXBsYWNlKGMsYT90Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKX0pKS5qb2luKFwiL1wiKTplbmNvZGVVUklDb21wb25lbnQodCkpfHxcIi9cIil9KSl8fChuPVwiXCIpLHtwYXJhbXM6dSxyZXN1bHQ6bn19ZnVuY3Rpb24geihlLHQscil7dmFyIG4sYT1cInN0cmluZ1wiPT09dHlwZW9mIHQ/dDpPLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHQpLG89YS5tYXRjaCgvXlthLXpBLVpdezEsfTpcXC9cXC8vKSxpPW8/YS5zbGljZShvWzBdLmxlbmd0aCk6YTtpZigoaS5zcGxpdChcIj9cIilbMF18fFwiXCIpLm1hdGNoKC8oXFwvXFwvfFxcXFwpLykpe2NvbnNvbGUuZXJyb3IoXCJJbnZhbGlkIGhyZWYgcGFzc2VkIHRvIG5leHQvcm91dGVyOiBcIi5jb25jYXQoYSxcIiwgcmVwZWF0ZWQgZm9yd2FyZC1zbGFzaGVzICgvLykgb3IgYmFja3NsYXNoZXMgXFxcXCBhcmUgbm90IHZhbGlkIGluIHRoZSBocmVmXCIpKTt2YXIgdT1iLm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyhpKTthPShvP29bMF06XCJcIikrdX1pZighRihhKSlyZXR1cm4gcj9bYV06YTt0cnl7bj1uZXcgVVJMKGEuc3RhcnRzV2l0aChcIiNcIik/ZS5hc1BhdGg6ZS5wYXRobmFtZSxcImh0dHA6Ly9uXCIpfWNhdGNoKG0pe249bmV3IFVSTChcIi9cIixcImh0dHA6Ly9uXCIpfXRyeXt2YXIgYz1uZXcgVVJMKGEsbik7Yy5wYXRobmFtZT1mLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGMucGF0aG5hbWUpO3ZhciBzPVwiXCI7aWYoXy5pc0R5bmFtaWNSb3V0ZShjLnBhdGhuYW1lKSYmYy5zZWFyY2hQYXJhbXMmJnIpe3ZhciBsPXcuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShjLnNlYXJjaFBhcmFtcyksZD1XKGMucGF0aG5hbWUsYy5wYXRobmFtZSxsKSxwPWQucmVzdWx0LGg9ZC5wYXJhbXM7cCYmKHM9Ty5mb3JtYXRXaXRoVmFsaWRhdGlvbih7cGF0aG5hbWU6cCxoYXNoOmMuaGFzaCxxdWVyeTpIKGwsaCl9KSl9dmFyIHY9Yy5vcmlnaW49PT1uLm9yaWdpbj9jLmhyZWYuc2xpY2UoYy5vcmlnaW4ubGVuZ3RoKTpjLmhyZWY7cmV0dXJuIHI/W3Ysc3x8dl06dn1jYXRjaCh5KXtyZXR1cm4gcj9bYV06YX19ZnVuY3Rpb24gRyhlLHQscil7dmFyIG49eihlLHQsITApLGE9byhuLDIpLGk9YVswXSx1PWFbMV0sYz1iLmdldExvY2F0aW9uT3JpZ2luKCkscz1pLnN0YXJ0c1dpdGgoYyksbD11JiZ1LnN0YXJ0c1dpdGgoYyk7aT1VKGkpLHU9dT9VKHUpOnU7dmFyIGY9cz9pOkMuYWRkQmFzZVBhdGgoaSksZD1yP1UoeihlLHIpKTp1fHxpO3JldHVybnt1cmw6ZixhczpsP2Q6Qy5hZGRCYXNlUGF0aChkKX19ZnVuY3Rpb24gWihlLHQpe3ZhciByPWQucmVtb3ZlVHJhaWxpbmdTbGFzaChtLmRlbm9ybWFsaXplUGFnZVBhdGgoZSkpO3JldHVyblwiLzQwNFwiPT09cnx8XCIvX2Vycm9yXCI9PT1yP2U6KHQuaW5jbHVkZXMocil8fHQuc29tZSgoZnVuY3Rpb24odCl7aWYoXy5pc0R5bmFtaWNSb3V0ZSh0KSYmUy5nZXRSb3V0ZVJlZ2V4KHQpLnJlLnRlc3QocikpcmV0dXJuIGU9dCwhMH0pKSxkLnJlbW92ZVRyYWlsaW5nU2xhc2goZSkpfWZ1bmN0aW9uICQoZSl7cmV0dXJuIEIoZSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHQmJmUuZmV0Y2hEYXRhP2UuZmV0Y2hEYXRhKCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj17YmFzZVBhdGg6ci5yb3V0ZXIuYmFzZVBhdGgsaTE4bjp7bG9jYWxlczpyLnJvdXRlci5sb2NhbGVzfSx0cmFpbGluZ1NsYXNoOkJvb2xlYW4oITEpfSxhPXQuaGVhZGVycy5nZXQoXCJ4LW5leHRqcy1yZXdyaXRlXCIpLGk9YXx8dC5oZWFkZXJzLmdldChcIngtbmV4dGpzLW1hdGNoZWQtcGF0aFwiKSx1PXQuaGVhZGVycy5nZXQoXCJ4LW1hdGNoZWQtcGF0aFwiKTtpZighdXx8aXx8dS5pbmNsdWRlcyhcIl9fbmV4dF9kYXRhX2NhdGNoYWxsXCIpfHx1LmluY2x1ZGVzKFwiL19lcnJvclwiKXx8dS5pbmNsdWRlcyhcIi80MDRcIil8fChpPXUpLGkpe2lmKGkuc3RhcnRzV2l0aChcIi9cIikpe3ZhciBzPXgucGFyc2VSZWxhdGl2ZVVybChpKSxsPUwuZ2V0TmV4dFBhdGhuYW1lSW5mbyhzLnBhdGhuYW1lLHtuZXh0Q29uZmlnOm4scGFyc2VEYXRhOiEwfSksZj1kLnJlbW92ZVRyYWlsaW5nU2xhc2gobC5wYXRobmFtZSk7cmV0dXJuIFByb21pc2UuYWxsKFtyLnJvdXRlci5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCkscC5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCldKS50aGVuKChmdW5jdGlvbih0KXt2YXIgbj1vKHQsMiksaT1uWzBdLHU9blsxXS5fX3Jld3JpdGVzLGM9Ui5hZGRMb2NhbGUobC5wYXRobmFtZSxsLmxvY2FsZSk7aWYoXy5pc0R5bmFtaWNSb3V0ZShjKXx8IWEmJmkuaW5jbHVkZXMoeS5ub3JtYWxpemVMb2NhbGVQYXRoKE0ucmVtb3ZlQmFzZVBhdGgoYyksci5yb3V0ZXIubG9jYWxlcykucGF0aG5hbWUpKXt2YXIgZD1MLmdldE5leHRQYXRobmFtZUluZm8oeC5wYXJzZVJlbGF0aXZlVXJsKGUpLnBhdGhuYW1lLHtwYXJzZURhdGE6ITB9KTtjPUMuYWRkQmFzZVBhdGgoZC5wYXRobmFtZSkscy5wYXRobmFtZT1jfXZhciBwPVAuZGVmYXVsdChjLGksdSxzLnF1ZXJ5LChmdW5jdGlvbihlKXtyZXR1cm4gWihlLGkpfSksci5yb3V0ZXIubG9jYWxlcyk7cC5tYXRjaGVkUGFnZSYmKHMucGF0aG5hbWU9cC5wYXJzZWRBcy5wYXRobmFtZSxjPXMucGF0aG5hbWUsT2JqZWN0LmFzc2lnbihzLnF1ZXJ5LHAucGFyc2VkQXMucXVlcnkpKTt2YXIgaD1pLmluY2x1ZGVzKGYpP2Y6Wih5Lm5vcm1hbGl6ZUxvY2FsZVBhdGgoTS5yZW1vdmVCYXNlUGF0aChzLnBhdGhuYW1lKSxyLnJvdXRlci5sb2NhbGVzKS5wYXRobmFtZSxpKTtpZihfLmlzRHluYW1pY1JvdXRlKGgpKXt2YXIgdj1FLmdldFJvdXRlTWF0Y2hlcihTLmdldFJvdXRlUmVnZXgoaCkpKGMpO09iamVjdC5hc3NpZ24ocy5xdWVyeSx2fHx7fSl9cmV0dXJue3R5cGU6XCJyZXdyaXRlXCIscGFyc2VkQXM6cyxyZXNvbHZlZEhyZWY6aH19KSl9dmFyIGg9ai5wYXJzZVBhdGgoZSksdj1ULmZvcm1hdE5leHRQYXRobmFtZUluZm8oYyh7fSxMLmdldE5leHRQYXRobmFtZUluZm8oaC5wYXRobmFtZSx7bmV4dENvbmZpZzpuLHBhcnNlRGF0YTohMH0pLHtkZWZhdWx0TG9jYWxlOnIucm91dGVyLmRlZmF1bHRMb2NhbGUsYnVpbGRJZDpcIlwifSkpO3JldHVybiBQcm9taXNlLnJlc29sdmUoe3R5cGU6XCJyZWRpcmVjdC1leHRlcm5hbFwiLGRlc3RpbmF0aW9uOlwiXCIuY29uY2F0KHYpLmNvbmNhdChoLnF1ZXJ5KS5jb25jYXQoaC5oYXNoKX0pfXZhciBtPXQuaGVhZGVycy5nZXQoXCJ4LW5leHRqcy1yZWRpcmVjdFwiKTtpZihtKXtpZihtLnN0YXJ0c1dpdGgoXCIvXCIpKXt2YXIgZz1qLnBhcnNlUGF0aChtKSxiPVQuZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyhjKHt9LEwuZ2V0TmV4dFBhdGhuYW1lSW5mbyhnLnBhdGhuYW1lLHtuZXh0Q29uZmlnOm4scGFyc2VEYXRhOiEwfSkse2RlZmF1bHRMb2NhbGU6ci5yb3V0ZXIuZGVmYXVsdExvY2FsZSxidWlsZElkOlwiXCJ9KSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7dHlwZTpcInJlZGlyZWN0LWludGVybmFsXCIsbmV3QXM6XCJcIi5jb25jYXQoYikuY29uY2F0KGcucXVlcnkpLmNvbmNhdChnLmhhc2gpLG5ld1VybDpcIlwiLmNvbmNhdChiKS5jb25jYXQoZy5xdWVyeSkuY29uY2F0KGcuaGFzaCl9KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt0eXBlOlwicmVkaXJlY3QtZXh0ZXJuYWxcIixkZXN0aW5hdGlvbjptfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7dHlwZTpcIm5leHRcIn0pfSh0LmRhdGFIcmVmLHQucmVzcG9uc2UsZSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJue2RhdGFIcmVmOnQuZGF0YUhyZWYsY2FjaGVLZXk6dC5jYWNoZUtleSxqc29uOnQuanNvbixyZXNwb25zZTp0LnJlc3BvbnNlLHRleHQ6dC50ZXh0LGVmZmVjdDplfX0pKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGx9KSk6bnVsbH0pKX12YXIgVj1TeW1ib2woXCJTU0dfREFUQV9OT1RfRk9VTkRcIik7ZnVuY3Rpb24gSyhlLHQscil7cmV0dXJuIGZldGNoKGUse2NyZWRlbnRpYWxzOlwic2FtZS1vcmlnaW5cIixtZXRob2Q6ci5tZXRob2R8fFwiR0VUXCIsaGVhZGVyczpPYmplY3QuYXNzaWduKHt9LHIuaGVhZGVycyx7XCJ4LW5leHRqcy1kYXRhXCI6XCIxXCJ9KX0pLnRoZW4oKGZ1bmN0aW9uKG4pe3JldHVybiFuLm9rJiZ0PjEmJm4uc3RhdHVzPj01MDA/SyhlLHQtMSxyKTpufSkpfXZhciBYPXt9O2Z1bmN0aW9uIFEoZSl7dmFyIHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9dC5zdHlsZS5zY3JvbGxCZWhhdmlvcjt0LnN0eWxlLnNjcm9sbEJlaGF2aW9yPVwiYXV0b1wiLGUoKSx0LnN0eWxlLnNjcm9sbEJlaGF2aW9yPXJ9ZnVuY3Rpb24gWShlKXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIEooZSl7dmFyIHQscj1lLmRhdGFIcmVmLG49ZS5pbmZsaWdodENhY2hlLGE9ZS5pc1ByZWZldGNoLG89ZS5oYXNNaWRkbGV3YXJlLGk9ZS5pc1NlcnZlclJlbmRlcix1PWUucGFyc2VKU09OLGM9ZS5wZXJzaXN0Q2FjaGUscz1lLmlzQmFja2dyb3VuZCxsPWUudW5zdGFibGVfc2tpcENsaWVudENhY2hlLGY9bmV3IFVSTChyLHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5ocmVmLGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIEsocixpPzM6MSx7aGVhZGVyczphP3twdXJwb3NlOlwicHJlZmV0Y2hcIn06e30sbWV0aG9kOm51bGwhPSh0PW51bGw9PWU/dm9pZCAwOmUubWV0aG9kKT90OlwiR0VUXCJ9KS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gdC5vayYmXCJIRUFEXCI9PT0obnVsbD09ZT92b2lkIDA6ZS5tZXRob2QpP3tkYXRhSHJlZjpyLHJlc3BvbnNlOnQsdGV4dDpcIlwiLGpzb246e30sY2FjaGVLZXk6Zn06dC50ZXh0KCkudGhlbigoZnVuY3Rpb24oZSl7aWYoIXQub2spe2lmKG8mJlszMDEsMzAyLDMwNywzMDhdLmluY2x1ZGVzKHQuc3RhdHVzKSlyZXR1cm57ZGF0YUhyZWY6cixyZXNwb25zZTp0LHRleHQ6ZSxqc29uOnt9LGNhY2hlS2V5OmZ9O3ZhciBuO2lmKCFvJiY0MDQ9PT10LnN0YXR1cylpZihudWxsPT0obj1ZKGUpKT92b2lkIDA6bi5ub3RGb3VuZClyZXR1cm57ZGF0YUhyZWY6cixqc29uOntub3RGb3VuZDpWfSxyZXNwb25zZTp0LHRleHQ6ZSxjYWNoZUtleTpmfTt2YXIgYT1uZXcgRXJyb3IoXCJGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNcIik7dGhyb3cgaXx8cC5tYXJrQXNzZXRFcnJvcihhKSxhfXJldHVybntkYXRhSHJlZjpyLGpzb246dT9ZKGUpOm51bGwscmVzcG9uc2U6dCx0ZXh0OmUsY2FjaGVLZXk6Zn19KSl9KSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGMmJlwibm8tY2FjaGVcIiE9PWUucmVzcG9uc2UuaGVhZGVycy5nZXQoXCJ4LW1pZGRsZXdhcmUtY2FjaGVcIil8fGRlbGV0ZSBuW2ZdLGV9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3Rocm93IGRlbGV0ZSBuW2ZdLGV9KSl9O3JldHVybiBsJiZjP2Qoe30pLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBuW2ZdPVByb21pc2UucmVzb2x2ZShlKSxlfSkpOnZvaWQgMCE9PW5bZl0/bltmXTpuW2ZdPWQocz97bWV0aG9kOlwiSEVBRFwifTp7fSl9ZnVuY3Rpb24gZWUoKXtyZXR1cm4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCl9ZnVuY3Rpb24gdGUoZSl7dmFyIHQ9ZS51cmwscj1lLnJvdXRlcjtpZih0PT09Qy5hZGRCYXNlUGF0aChSLmFkZExvY2FsZShyLmFzUGF0aCxyLmxvY2FsZSkpKXRocm93IG5ldyBFcnJvcihcIkludmFyaWFudDogYXR0ZW1wdGVkIHRvIGhhcmQgbmF2aWdhdGUgdG8gdGhlIHNhbWUgVVJMIFwiLmNvbmNhdCh0LFwiIFwiKS5jb25jYXQobG9jYXRpb24uaHJlZikpO3dpbmRvdy5sb2NhdGlvbi5ocmVmPXR9dmFyIHJlPWZ1bmN0aW9uKGUpe3ZhciB0PWUucm91dGUscj1lLnJvdXRlcixuPSExLGE9ci5jbGM9ZnVuY3Rpb24oKXtuPSEwfTtyZXR1cm4gZnVuY3Rpb24oKXtpZihuKXt2YXIgZT1uZXcgRXJyb3IoJ0Fib3J0IGZldGNoaW5nIGNvbXBvbmVudCBmb3Igcm91dGU6IFwiJy5jb25jYXQodCwnXCInKSk7dGhyb3cgZS5jYW5jZWxsZWQ9ITAsZX1hPT09ci5jbGMmJihyLmNsYz1udWxsKX19LG5lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsYSxvKXt2YXIgaT10aGlzLHU9by5pbml0aWFsUHJvcHMsYz1vLnBhZ2VMb2FkZXIscz1vLkFwcCxsPW8ud3JhcEFwcCxmPW8uQ29tcG9uZW50LHA9by5lcnIsaD1vLnN1YnNjcmlwdGlvbix2PW8uaXNGYWxsYmFjayxtPW8ubG9jYWxlLHk9KG8ubG9jYWxlcyxvLmRlZmF1bHRMb2NhbGUsby5kb21haW5Mb2NhbGVzLG8uaXNQcmV2aWV3KTtuKHRoaXMsZSksdGhpcy5zZGM9e30sdGhpcy5pc0ZpcnN0UG9wU3RhdGVFdmVudD0hMCx0aGlzLl9rZXk9ZWUoKSx0aGlzLm9uUG9wU3RhdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9aS5pc0ZpcnN0UG9wU3RhdGVFdmVudDtpLmlzRmlyc3RQb3BTdGF0ZUV2ZW50PSExO3ZhciByPWUuc3RhdGU7aWYocil7aWYoci5fX05BKXdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtlbHNlIGlmKHIuX19OJiYoIXR8fGkubG9jYWxlIT09ci5vcHRpb25zLmxvY2FsZXx8ci5hcyE9PWkuYXNQYXRoKSl7dmFyIG49ci51cmwsYT1yLmFzLG89ci5vcHRpb25zLHU9ci5rZXk7aS5fa2V5PXU7dmFyIGM9eC5wYXJzZVJlbGF0aXZlVXJsKG4pLnBhdGhuYW1lO2kuaXNTc3ImJmE9PT1DLmFkZEJhc2VQYXRoKGkuYXNQYXRoKSYmYz09PUMuYWRkQmFzZVBhdGgoaS5wYXRobmFtZSl8fGkuX2JwcyYmIWkuX2JwcyhyKXx8aS5jaGFuZ2UoXCJyZXBsYWNlU3RhdGVcIixuLGEsT2JqZWN0LmFzc2lnbih7fSxvLHtzaGFsbG93Om8uc2hhbGxvdyYmaS5fc2hhbGxvdyxsb2NhbGU6by5sb2NhbGV8fGkuZGVmYXVsdExvY2FsZSxfaDowfSksdW5kZWZpbmVkKX19ZWxzZXt2YXIgcz1pLnBhdGhuYW1lLGw9aS5xdWVyeTtpLmNoYW5nZVN0YXRlKFwicmVwbGFjZVN0YXRlXCIsTy5mb3JtYXRXaXRoVmFsaWRhdGlvbih7cGF0aG5hbWU6Qy5hZGRCYXNlUGF0aChzKSxxdWVyeTpsfSksYi5nZXRVUkwoKSl9fTt2YXIgZz1kLnJlbW92ZVRyYWlsaW5nU2xhc2godCk7dGhpcy5jb21wb25lbnRzPXt9LFwiL19lcnJvclwiIT09dCYmKHRoaXMuY29tcG9uZW50c1tnXT17Q29tcG9uZW50OmYsaW5pdGlhbDohMCxwcm9wczp1LGVycjpwLF9fTl9TU0c6dSYmdS5fX05fU1NHLF9fTl9TU1A6dSYmdS5fX05fU1NQfSksdGhpcy5jb21wb25lbnRzW1wiL19hcHBcIl09e0NvbXBvbmVudDpzLHN0eWxlU2hlZXRzOltdfSx0aGlzLmV2ZW50cz1lLmV2ZW50cyx0aGlzLnBhZ2VMb2FkZXI9Yzt2YXIgdz1fLmlzRHluYW1pY1JvdXRlKHQpJiZzZWxmLl9fTkVYVF9EQVRBX18uYXV0b0V4cG9ydDtpZih0aGlzLmJhc2VQYXRoPVwiXCIsdGhpcy5zdWI9aCx0aGlzLmNsYz1udWxsLHRoaXMuX3dyYXBBcHA9bCx0aGlzLmlzU3NyPSEwLHRoaXMuaXNMb2NhbGVEb21haW49ITEsdGhpcy5pc1JlYWR5PSEhKHNlbGYuX19ORVhUX0RBVEFfXy5nc3NwfHxzZWxmLl9fTkVYVF9EQVRBX18uZ2lwfHxzZWxmLl9fTkVYVF9EQVRBX18uYXBwR2lwJiYhc2VsZi5fX05FWFRfREFUQV9fLmdzcHx8KCF3JiZzZWxmLmxvY2F0aW9uLnNlYXJjaCwwKSksdGhpcy5zdGF0ZT17cm91dGU6ZyxwYXRobmFtZTp0LHF1ZXJ5OnIsYXNQYXRoOnc/dDphLGlzUHJldmlldzohIXksbG9jYWxlOnZvaWQgMCxpc0ZhbGxiYWNrOnZ9LHRoaXMuX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2U9UHJvbWlzZS5yZXNvbHZlKCExKSwhYS5zdGFydHNXaXRoKFwiLy9cIikpe3ZhciBQPXtsb2NhbGU6bX0sRT1iLmdldFVSTCgpO3RoaXMuX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2U9Qih7cm91dGVyOnRoaXMsbG9jYWxlOm0sYXNQYXRoOkV9KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gUC5fc2hvdWxkUmVzb2x2ZUhyZWY9YSE9PXQsaS5jaGFuZ2VTdGF0ZShcInJlcGxhY2VTdGF0ZVwiLGU/RTpPLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtwYXRobmFtZTpDLmFkZEJhc2VQYXRoKHQpLHF1ZXJ5OnJ9KSxFLFApLGV9KSl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb3BzdGF0ZVwiLHRoaXMub25Qb3BTdGF0ZSl9cmV0dXJuIGEoZSxbe2tleTpcInJlbG9hZFwiLHZhbHVlOmZ1bmN0aW9uKCl7d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfX0se2tleTpcImJhY2tcIix2YWx1ZTpmdW5jdGlvbigpe3dpbmRvdy5oaXN0b3J5LmJhY2soKX19LHtrZXk6XCJwdXNoXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307dmFyIG49Ryh0aGlzLGUsdCk7cmV0dXJuIGU9bi51cmwsdD1uLmFzLHRoaXMuY2hhbmdlKFwicHVzaFN0YXRlXCIsZSx0LHIpfX0se2tleTpcInJlcGxhY2VcIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxuPUcodGhpcyxlLHQpO3JldHVybiBlPW4udXJsLHQ9bi5hcyx0aGlzLmNoYW5nZShcInJlcGxhY2VTdGF0ZVwiLGUsdCxyKX19LHtrZXk6XCJjaGFuZ2VcIix2YWx1ZTpmdW5jdGlvbih0LHIsbixhLHMpe3ZhciBsPXRoaXM7cmV0dXJuIHUoaS5tYXJrKChmdW5jdGlvbiB1KCl7dmFyIGYsbSx5LGcsdyxMLFQsSSxxLFUseiwkLEssWCxRLFksSixlZSxyZSxuZSxhZSxvZSxpZSx1ZSxjZSxzZSxsZSxmZSxkZSxwZSxoZSx2ZSxtZSx5ZSxnZSxiZSxfZSx4ZSx3ZSxQZSxFZSxTZSxPZSxqZSxSZSxrZSxNZSxDZSxBZSxMZSxUZSxOZSxJZSxEZSxCZSxxZSxVZSxIZSxGZTtyZXR1cm4gaS53cmFwKChmdW5jdGlvbihpKXtmb3IoOzspc3dpdGNoKGkucHJldj1pLm5leHQpe2Nhc2UgMDppZihGKHIpKXtpLm5leHQ9MzticmVha31yZXR1cm4gdGUoe3VybDpyLHJvdXRlcjpsfSksaS5hYnJ1cHQoXCJyZXR1cm5cIiwhMSk7Y2FzZSAzOmlmKGY9YS5faCxtPWZ8fGEuX3Nob3VsZFJlc29sdmVIcmVmfHxqLnBhcnNlUGF0aChyKS5wYXRobmFtZT09PWoucGFyc2VQYXRoKG4pLnBhdGhuYW1lLHk9Yyh7fSxsLnN0YXRlKSxnPSEwIT09bC5pc1JlYWR5LGwuaXNSZWFkeT0hMCx3PWwuaXNTc3IsZnx8KGwuaXNTc3I9ITEpLCFmfHwhbC5jbGMpe2kubmV4dD0xMjticmVha31yZXR1cm4gaS5hYnJ1cHQoXCJyZXR1cm5cIiwhMSk7Y2FzZSAxMjpMPXkubG9jYWxlLGkubmV4dD0yNTticmVhaztjYXNlIDI1OmlmKGIuU1QmJnBlcmZvcm1hbmNlLm1hcmsoXCJyb3V0ZUNoYW5nZVwiKSxJPWEuc2hhbGxvdyxxPXZvaWQgMCE9PUkmJkksVT1hLnNjcm9sbCx6PXZvaWQgMD09PVV8fFUsJD17c2hhbGxvdzpxfSxsLl9pbkZsaWdodFJvdXRlJiZsLmNsYyYmKHd8fGUuZXZlbnRzLmVtaXQoXCJyb3V0ZUNoYW5nZUVycm9yXCIsRCgpLGwuX2luRmxpZ2h0Um91dGUsJCksbC5jbGMoKSxsLmNsYz1udWxsKSxuPUMuYWRkQmFzZVBhdGgoUi5hZGRMb2NhbGUoQS5oYXNCYXNlUGF0aChuKT9NLnJlbW92ZUJhc2VQYXRoKG4pOm4sYS5sb2NhbGUsbC5kZWZhdWx0TG9jYWxlKSksSz1rLnJlbW92ZUxvY2FsZShBLmhhc0Jhc2VQYXRoKG4pP00ucmVtb3ZlQmFzZVBhdGgobik6bix5LmxvY2FsZSksbC5faW5GbGlnaHRSb3V0ZT1uLFg9TCE9PXkubG9jYWxlLGZ8fCFsLm9ubHlBSGFzaENoYW5nZShLKXx8WCl7aS5uZXh0PTQ5O2JyZWFrfXJldHVybiB5LmFzUGF0aD1LLGUuZXZlbnRzLmVtaXQoXCJoYXNoQ2hhbmdlU3RhcnRcIixuLCQpLGwuY2hhbmdlU3RhdGUodCxyLG4sYyh7fSxhLHtzY3JvbGw6ITF9KSkseiYmbC5zY3JvbGxUb0hhc2goSyksaS5wcmV2PTM4LGkubmV4dD00MSxsLnNldCh5LGwuY29tcG9uZW50c1t5LnJvdXRlXSxudWxsKTtjYXNlIDQxOmkubmV4dD00NzticmVhaztjYXNlIDQzOnRocm93IGkucHJldj00MyxpLnQwPWkuY2F0Y2goMzgpLHYuZGVmYXVsdChpLnQwKSYmaS50MC5jYW5jZWxsZWQmJmUuZXZlbnRzLmVtaXQoXCJyb3V0ZUNoYW5nZUVycm9yXCIsaS50MCxLLCQpLGkudDA7Y2FzZSA0NzpyZXR1cm4gZS5ldmVudHMuZW1pdChcImhhc2hDaGFuZ2VDb21wbGV0ZVwiLG4sJCksaS5hYnJ1cHQoXCJyZXR1cm5cIiwhMCk7Y2FzZSA0OTpyZXR1cm4gUT14LnBhcnNlUmVsYXRpdmVVcmwociksWT1RLnBhdGhuYW1lLEo9US5xdWVyeSxpLnByZXY9NTEsaS5uZXh0PTU0LFByb21pc2UuYWxsKFtsLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxwLmdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSxsLnBhZ2VMb2FkZXIuZ2V0TWlkZGxld2FyZSgpXSk7Y2FzZSA1NDpuZT1pLnNlbnQsYWU9byhuZSwyKSxlZT1hZVswXSxyZT1hZVsxXS5fX3Jld3JpdGVzLGkubmV4dD02NDticmVhaztjYXNlIDYwOnJldHVybiBpLnByZXY9NjAsaS50MT1pLmNhdGNoKDUxKSx0ZSh7dXJsOm4scm91dGVyOmx9KSxpLmFicnVwdChcInJldHVyblwiLCExKTtjYXNlIDY0OnJldHVybiBsLnVybElzTmV3KEspfHxYfHwodD1cInJlcGxhY2VTdGF0ZVwiKSxvZT1uLFk9WT9kLnJlbW92ZVRyYWlsaW5nU2xhc2goTS5yZW1vdmVCYXNlUGF0aChZKSk6WSxpLm5leHQ9NjksQih7YXNQYXRoOm4sbG9jYWxlOnkubG9jYWxlLHJvdXRlcjpsfSk7Y2FzZSA2OTppZihpZT1pLnNlbnQsYS5zaGFsbG93JiZpZSYmKFk9bC5wYXRobmFtZSksIW18fFwiL19lcnJvclwiPT09WSl7aS5uZXh0PTg0O2JyZWFrfWlmKGEuX3Nob3VsZFJlc29sdmVIcmVmPSEwLCFuLnN0YXJ0c1dpdGgoXCIvXCIpKXtpLm5leHQ9ODI7YnJlYWt9aWYoISh1ZT1QLmRlZmF1bHQoQy5hZGRCYXNlUGF0aChSLmFkZExvY2FsZShLLHkubG9jYWxlKSwhMCksZWUscmUsSiwoZnVuY3Rpb24oZSl7cmV0dXJuIFooZSxlZSl9KSxsLmxvY2FsZXMpKS5leHRlcm5hbERlc3Qpe2kubmV4dD03ODticmVha31yZXR1cm4gdGUoe3VybDpuLHJvdXRlcjpsfSksaS5hYnJ1cHQoXCJyZXR1cm5cIiwhMCk7Y2FzZSA3ODppZXx8KG9lPXVlLmFzUGF0aCksdWUubWF0Y2hlZFBhZ2UmJnVlLnJlc29sdmVkSHJlZiYmKFk9dWUucmVzb2x2ZWRIcmVmLFEucGF0aG5hbWU9Qy5hZGRCYXNlUGF0aChZKSxpZXx8KHI9Ty5mb3JtYXRXaXRoVmFsaWRhdGlvbihRKSkpLGkubmV4dD04NDticmVhaztjYXNlIDgyOlEucGF0aG5hbWU9WihZLGVlKSxRLnBhdGhuYW1lIT09WSYmKFk9US5wYXRobmFtZSxRLnBhdGhuYW1lPUMuYWRkQmFzZVBhdGgoWSksaWV8fChyPU8uZm9ybWF0V2l0aFZhbGlkYXRpb24oUSkpKTtjYXNlIDg0OmlmKEYobikpe2kubmV4dD04OTticmVha31pLm5leHQ9ODc7YnJlYWs7Y2FzZSA4NzpyZXR1cm4gdGUoe3VybDpuLHJvdXRlcjpsfSksaS5hYnJ1cHQoXCJyZXR1cm5cIiwhMSk7Y2FzZSA4OTppZihvZT1rLnJlbW92ZUxvY2FsZShNLnJlbW92ZUJhc2VQYXRoKG9lKSx5LmxvY2FsZSksY2U9ZC5yZW1vdmVUcmFpbGluZ1NsYXNoKFkpLHNlPSExLCFfLmlzRHluYW1pY1JvdXRlKGNlKSl7aS5uZXh0PTEwNzticmVha31pZihUPXgucGFyc2VSZWxhdGl2ZVVybChvZSksbGU9VC5wYXRobmFtZSxmZT1TLmdldFJvdXRlUmVnZXgoY2UpLHNlPUUuZ2V0Um91dGVNYXRjaGVyKGZlKShsZSkscGU9KGRlPWNlPT09bGUpP1coY2UsbGUsSik6e30sc2UmJighZGV8fHBlLnJlc3VsdCkpe2kubmV4dD0xMDY7YnJlYWt9aWYoISgoaGU9T2JqZWN0LmtleXMoZmUuZ3JvdXBzKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiFKW2VdfSkpKS5sZW5ndGg+MCl8fGllKXtpLm5leHQ9MTA0O2JyZWFrfXRocm93IG5ldyBFcnJvcigoZGU/XCJUaGUgcHJvdmlkZWQgYGhyZWZgIChcIi5jb25jYXQocixcIikgdmFsdWUgaXMgbWlzc2luZyBxdWVyeSB2YWx1ZXMgKFwiKS5jb25jYXQoaGUuam9pbihcIiwgXCIpLFwiKSB0byBiZSBpbnRlcnBvbGF0ZWQgcHJvcGVybHkuIFwiKTpcIlRoZSBwcm92aWRlZCBgYXNgIHZhbHVlIChcIi5jb25jYXQobGUsXCIpIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBgaHJlZmAgdmFsdWUgKFwiKS5jb25jYXQoY2UsXCIpLiBcIikpK1wiUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9cIi5jb25jYXQoZGU/XCJocmVmLWludGVycG9sYXRpb24tZmFpbGVkXCI6XCJpbmNvbXBhdGlibGUtaHJlZi1hc1wiKSk7Y2FzZSAxMDQ6aS5uZXh0PTEwNzticmVhaztjYXNlIDEwNjpkZT9uPU8uZm9ybWF0V2l0aFZhbGlkYXRpb24oT2JqZWN0LmFzc2lnbih7fSxULHtwYXRobmFtZTpwZS5yZXN1bHQscXVlcnk6SChKLHBlLnBhcmFtcyl9KSk6T2JqZWN0LmFzc2lnbihKLHNlKTtjYXNlIDEwNzpyZXR1cm4gZnx8ZS5ldmVudHMuZW1pdChcInJvdXRlQ2hhbmdlU3RhcnRcIixuLCQpLGkucHJldj0xMDgsaS5uZXh0PTExMSxsLmdldFJvdXRlSW5mbyh7cm91dGU6Y2UscGF0aG5hbWU6WSxxdWVyeTpKLGFzOm4scmVzb2x2ZWRBczpvZSxyb3V0ZVByb3BzOiQsbG9jYWxlOnkubG9jYWxlLGlzUHJldmlldzp5LmlzUHJldmlldyxoYXNNaWRkbGV3YXJlOmllfSk7Y2FzZSAxMTE6aWYoXCJyb3V0ZVwiaW4oeWU9aS5zZW50KSYmaWUmJihZPXllLnJvdXRlfHxjZSxjZT1ZLCQuc2hhbGxvd3x8KEo9T2JqZWN0LmFzc2lnbih7fSx5ZS5xdWVyeXx8e30sSikpLGdlPUEuaGFzQmFzZVBhdGgoUS5wYXRobmFtZSk/TS5yZW1vdmVCYXNlUGF0aChRLnBhdGhuYW1lKTpRLnBhdGhuYW1lLHNlJiZZIT09Z2UmJk9iamVjdC5rZXlzKHNlKS5mb3JFYWNoKChmdW5jdGlvbihlKXtzZSYmSltlXT09PXNlW2VdJiZkZWxldGUgSltlXX0pKSxfLmlzRHluYW1pY1JvdXRlKFkpJiYoYmU9ISQuc2hhbGxvdyYmeWUucmVzb2x2ZWRBcz95ZS5yZXNvbHZlZEFzOkMuYWRkQmFzZVBhdGgoUi5hZGRMb2NhbGUobmV3IFVSTChuLGxvY2F0aW9uLmhyZWYpLnBhdGhuYW1lLHkubG9jYWxlKSwhMCksX2U9YmUsQS5oYXNCYXNlUGF0aChfZSkmJihfZT1NLnJlbW92ZUJhc2VQYXRoKF9lKSkseGU9Uy5nZXRSb3V0ZVJlZ2V4KFkpLCh3ZT1FLmdldFJvdXRlTWF0Y2hlcih4ZSkoX2UpKSYmT2JqZWN0LmFzc2lnbihKLHdlKSkpLCEoXCJ0eXBlXCJpbiB5ZSkpe2kubmV4dD0xMjA7YnJlYWt9aWYoXCJyZWRpcmVjdC1pbnRlcm5hbFwiIT09eWUudHlwZSl7aS5uZXh0PTExODticmVha31yZXR1cm4gaS5hYnJ1cHQoXCJyZXR1cm5cIixsLmNoYW5nZSh0LHllLm5ld1VybCx5ZS5uZXdBcyxhKSk7Y2FzZSAxMTg6cmV0dXJuIHRlKHt1cmw6eWUuZGVzdGluYXRpb24scm91dGVyOmx9KSxpLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKChmdW5jdGlvbigpe30pKSk7Y2FzZSAxMjA6aWYoRWU9KFBlPXllKS5lcnJvcixTZT1QZS5wcm9wcyxPZT1QZS5fX05fU1NHLGplPVBlLl9fTl9TU1AsKFJlPXllLkNvbXBvbmVudCkmJlJlLnVuc3RhYmxlX3NjcmlwdExvYWRlciYmW10uY29uY2F0KFJlLnVuc3RhYmxlX3NjcmlwdExvYWRlcigpKS5mb3JFYWNoKChmdW5jdGlvbihlKXtoLmhhbmRsZUNsaWVudFNjcmlwdExvYWQoZS5wcm9wcyl9KSksIU9lJiYhamV8fCFTZSl7aS5uZXh0PTE1MDticmVha31pZighU2UucGFnZVByb3BzfHwhU2UucGFnZVByb3BzLl9fTl9SRURJUkVDVCl7aS5uZXh0PTEzNDticmVha31pZihhLmxvY2FsZT0hMSwhKGtlPVNlLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1QpLnN0YXJ0c1dpdGgoXCIvXCIpfHwhMT09PVNlLnBhZ2VQcm9wcy5fX05fUkVESVJFQ1RfQkFTRV9QQVRIKXtpLm5leHQ9MTMyO2JyZWFrfXJldHVybihNZT14LnBhcnNlUmVsYXRpdmVVcmwoa2UpKS5wYXRobmFtZT1aKE1lLnBhdGhuYW1lLGVlKSxDZT1HKGwsa2Usa2UpLEFlPUNlLnVybCxMZT1DZS5hcyxpLmFicnVwdChcInJldHVyblwiLGwuY2hhbmdlKHQsQWUsTGUsYSkpO2Nhc2UgMTMyOnJldHVybiB0ZSh7dXJsOmtlLHJvdXRlcjpsfSksaS5hYnJ1cHQoXCJyZXR1cm5cIixuZXcgUHJvbWlzZSgoZnVuY3Rpb24oKXt9KSkpO2Nhc2UgMTM0OmlmKHkuaXNQcmV2aWV3PSEhU2UuX19OX1BSRVZJRVcsU2Uubm90Rm91bmQhPT1WKXtpLm5leHQ9MTUwO2JyZWFrfXJldHVybiBpLnByZXY9MTM2LGkubmV4dD0xMzksbC5mZXRjaENvbXBvbmVudChcIi80MDRcIik7Y2FzZSAxMzk6VGU9XCIvNDA0XCIsaS5uZXh0PTE0NTticmVhaztjYXNlIDE0MjppLnByZXY9MTQyLGkudDI9aS5jYXRjaCgxMzYpLFRlPVwiL19lcnJvclwiO2Nhc2UgMTQ1OnJldHVybiBpLm5leHQ9MTQ3LGwuZ2V0Um91dGVJbmZvKHtyb3V0ZTpUZSxwYXRobmFtZTpUZSxxdWVyeTpKLGFzOm4scmVzb2x2ZWRBczpvZSxyb3V0ZVByb3BzOntzaGFsbG93OiExfSxsb2NhbGU6eS5sb2NhbGUsaXNQcmV2aWV3OnkuaXNQcmV2aWV3fSk7Y2FzZSAxNDc6aWYoIShcInR5cGVcImluKHllPWkuc2VudCkpKXtpLm5leHQ9MTUwO2JyZWFrfXRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgbWlkZGxld2FyZSBlZmZlY3Qgb24gLzQwNFwiKTtjYXNlIDE1MDppZihlLmV2ZW50cy5lbWl0KFwiYmVmb3JlSGlzdG9yeUNoYW5nZVwiLG4sJCksbC5jaGFuZ2VTdGF0ZSh0LHIsbixhKSxmJiZcIi9fZXJyb3JcIj09PVkmJjUwMD09PShudWxsPT0odmU9c2VsZi5fX05FWFRfREFUQV9fLnByb3BzKXx8bnVsbD09KG1lPXZlLnBhZ2VQcm9wcyk/dm9pZCAwOm1lLnN0YXR1c0NvZGUpJiYobnVsbD09U2U/dm9pZCAwOlNlLnBhZ2VQcm9wcykmJihTZS5wYWdlUHJvcHMuc3RhdHVzQ29kZT01MDApLEllPWEuc2hhbGxvdyYmeS5yb3V0ZT09PShudWxsIT0oTmU9eWUucm91dGUpP05lOmNlKSxCZT1udWxsIT0oRGU9YS5zY3JvbGwpP0RlOiFhLl9oJiYhSWUscWU9QmU/e3g6MCx5OjB9Om51bGwsVWU9Yyh7fSx5LHtyb3V0ZTpjZSxwYXRobmFtZTpZLHF1ZXJ5OkosYXNQYXRoOkssaXNGYWxsYmFjazohMX0pLEhlPW51bGwhPXM/czpxZSxhLl9oJiYhSGUmJiFnJiYhWCYmTi5jb21wYXJlUm91dGVyU3RhdGVzKFVlLGwuc3RhdGUpKXtpLm5leHQ9MTY5O2JyZWFrfXJldHVybiBpLm5leHQ9MTYyLGwuc2V0KFVlLHllLEhlKS5jYXRjaCgoZnVuY3Rpb24oZSl7aWYoIWUuY2FuY2VsbGVkKXRocm93IGU7RWU9RWV8fGV9KSk7Y2FzZSAxNjI6aWYoIUVlKXtpLm5leHQ9MTY1O2JyZWFrfXRocm93IGZ8fGUuZXZlbnRzLmVtaXQoXCJyb3V0ZUNoYW5nZUVycm9yXCIsRWUsSywkKSxFZTtjYXNlIDE2NTowLGZ8fGUuZXZlbnRzLmVtaXQoXCJyb3V0ZUNoYW5nZUNvbXBsZXRlXCIsbiwkKSxGZT0vIy4rJC8sQmUmJkZlLnRlc3QobikmJmwuc2Nyb2xsVG9IYXNoKG4pO2Nhc2UgMTY5OnJldHVybiBpLmFicnVwdChcInJldHVyblwiLCEwKTtjYXNlIDE3MjppZihpLnByZXY9MTcyLGkudDM9aS5jYXRjaCgxMDgpLCF2LmRlZmF1bHQoaS50Myl8fCFpLnQzLmNhbmNlbGxlZCl7aS5uZXh0PTE3NjticmVha31yZXR1cm4gaS5hYnJ1cHQoXCJyZXR1cm5cIiwhMSk7Y2FzZSAxNzY6dGhyb3cgaS50MztjYXNlIDE3NzpjYXNlXCJlbmRcIjpyZXR1cm4gaS5zdG9wKCl9fSksdSxudWxsLFtbMzgsNDNdLFs1MSw2MF0sWzEwOCwxNzJdLFsxMzYsMTQyXV0pfSkpKSgpfX0se2tleTpcImNoYW5nZVN0YXRlXCIsdmFsdWU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp7fTtcInB1c2hTdGF0ZVwiPT09ZSYmYi5nZXRVUkwoKT09PXJ8fCh0aGlzLl9zaGFsbG93PW4uc2hhbGxvdyx3aW5kb3cuaGlzdG9yeVtlXSh7dXJsOnQsYXM6cixvcHRpb25zOm4sX19OOiEwLGtleTp0aGlzLl9rZXk9XCJwdXNoU3RhdGVcIiE9PWU/dGhpcy5fa2V5OmVlKCl9LFwiXCIscikpfX0se2tleTpcImhhbmRsZVJvdXRlSW5mb0Vycm9yXCIsdmFsdWU6ZnVuY3Rpb24odCxyLG4sYSxvLGMpe3ZhciBzPXRoaXM7cmV0dXJuIHUoaS5tYXJrKChmdW5jdGlvbiB1KCl7dmFyIGwsZixkLGg7cmV0dXJuIGkud3JhcCgoZnVuY3Rpb24oaSl7Zm9yKDs7KXN3aXRjaChpLnByZXY9aS5uZXh0KXtjYXNlIDA6aWYoY29uc29sZS5lcnJvcih0KSwhdC5jYW5jZWxsZWQpe2kubmV4dD0zO2JyZWFrfXRocm93IHQ7Y2FzZSAzOmlmKCFwLmlzQXNzZXRFcnJvcih0KSYmIWMpe2kubmV4dD03O2JyZWFrfXRocm93IGUuZXZlbnRzLmVtaXQoXCJyb3V0ZUNoYW5nZUVycm9yXCIsdCxhLG8pLHRlKHt1cmw6YSxyb3V0ZXI6c30pLEQoKTtjYXNlIDc6cmV0dXJuIGkucHJldj03LGkubmV4dD0xMCxzLmZldGNoQ29tcG9uZW50KFwiL19lcnJvclwiKTtjYXNlIDEwOmlmKGw9aS5zZW50LGY9bC5wYWdlLGQ9bC5zdHlsZVNoZWV0cywoaD17cHJvcHM6dW5kZWZpbmVkLENvbXBvbmVudDpmLHN0eWxlU2hlZXRzOmQsZXJyOnQsZXJyb3I6dH0pLnByb3BzKXtpLm5leHQ9MjU7YnJlYWt9cmV0dXJuIGkucHJldj0xNSxpLm5leHQ9MTgscy5nZXRJbml0aWFsUHJvcHMoZix7ZXJyOnQscGF0aG5hbWU6cixxdWVyeTpufSk7Y2FzZSAxODpoLnByb3BzPWkuc2VudCxpLm5leHQ9MjU7YnJlYWs7Y2FzZSAyMTppLnByZXY9MjEsaS50MD1pLmNhdGNoKDE1KSxjb25zb2xlLmVycm9yKFwiRXJyb3IgaW4gZXJyb3IgcGFnZSBgZ2V0SW5pdGlhbFByb3BzYDogXCIsaS50MCksaC5wcm9wcz17fTtjYXNlIDI1OnJldHVybiBpLmFicnVwdChcInJldHVyblwiLGgpO2Nhc2UgMjg6cmV0dXJuIGkucHJldj0yOCxpLnQxPWkuY2F0Y2goNyksaS5hYnJ1cHQoXCJyZXR1cm5cIixzLmhhbmRsZVJvdXRlSW5mb0Vycm9yKHYuZGVmYXVsdChpLnQxKT9pLnQxOm5ldyBFcnJvcihpLnQxK1wiXCIpLHIsbixhLG8sITApKTtjYXNlIDMxOmNhc2VcImVuZFwiOnJldHVybiBpLnN0b3AoKX19KSx1LG51bGwsW1s3LDI4XSxbMTUsMjFdXSl9KSkpKCl9fSx7a2V5OlwiZ2V0Um91dGVJbmZvXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yb3V0ZSxyPWUucGF0aG5hbWUsbj1lLnF1ZXJ5LGE9ZS5hcyxvPWUucmVzb2x2ZWRBcyxzPWUucm91dGVQcm9wcyxsPWUubG9jYWxlLGY9ZS5oYXNNaWRkbGV3YXJlLHA9ZS5pc1ByZXZpZXcsaD1lLnVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxtPXRoaXM7cmV0dXJuIHUoaS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIGcsYixfLHgsdyxQLEUsUyxqLFIsayxDLEEsTDtyZXR1cm4gaS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihnPXQsZS5wcmV2PTEsdz1yZSh7cm91dGU6Zyxyb3V0ZXI6bX0pLFA9bS5jb21wb25lbnRzW2ddLCFzLnNoYWxsb3d8fCFQfHxtLnJvdXRlIT09Zyl7ZS5uZXh0PTY7YnJlYWt9cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsUCk7Y2FzZSA2OnJldHVybiBmJiYoUD12b2lkIDApLEU9UCYmIShcImluaXRpYWxcImluIFApP1A6dm9pZCAwLFM9e2RhdGFIcmVmOm0ucGFnZUxvYWRlci5nZXREYXRhSHJlZih7aHJlZjpPLmZvcm1hdFdpdGhWYWxpZGF0aW9uKHtwYXRobmFtZTpyLHF1ZXJ5Om59KSxza2lwSW50ZXJwb2xhdGlvbjohMCxhc1BhdGg6byxsb2NhbGU6bH0pLGhhc01pZGRsZXdhcmU6ITAsaXNTZXJ2ZXJSZW5kZXI6bS5pc1NzcixwYXJzZUpTT046ITAsaW5mbGlnaHRDYWNoZTptLnNkYyxwZXJzaXN0Q2FjaGU6IXAsaXNQcmVmZXRjaDohMSx1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGU6aH0sZS5uZXh0PTExLCQoe2ZldGNoRGF0YTpmdW5jdGlvbigpe3JldHVybiBKKFMpfSxhc1BhdGg6byxsb2NhbGU6bCxyb3V0ZXI6bX0pO2Nhc2UgMTE6aWYoaj1lLnNlbnQsdygpLFwicmVkaXJlY3QtaW50ZXJuYWxcIiE9PShudWxsPT1qfHxudWxsPT0oYj1qLmVmZmVjdCk/dm9pZCAwOmIudHlwZSkmJlwicmVkaXJlY3QtZXh0ZXJuYWxcIiE9PShudWxsPT1qfHxudWxsPT0oXz1qLmVmZmVjdCk/dm9pZCAwOl8udHlwZSkpe2UubmV4dD0xNTticmVha31yZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixqLmVmZmVjdCk7Y2FzZSAxNTppZihcInJld3JpdGVcIiE9PShudWxsPT1qfHxudWxsPT0oeD1qLmVmZmVjdCk/dm9pZCAwOngudHlwZSkpe2UubmV4dD0yMzticmVha31pZihnPWQucmVtb3ZlVHJhaWxpbmdTbGFzaChqLmVmZmVjdC5yZXNvbHZlZEhyZWYpLHI9ai5lZmZlY3QucmVzb2x2ZWRIcmVmLG49Yyh7fSxuLGouZWZmZWN0LnBhcnNlZEFzLnF1ZXJ5KSxvPU0ucmVtb3ZlQmFzZVBhdGgoeS5ub3JtYWxpemVMb2NhbGVQYXRoKGouZWZmZWN0LnBhcnNlZEFzLnBhdGhuYW1lLG0ubG9jYWxlcykucGF0aG5hbWUpLFA9bS5jb21wb25lbnRzW2ddLCFzLnNoYWxsb3d8fCFQfHxtLnJvdXRlIT09Z3x8Zil7ZS5uZXh0PTIzO2JyZWFrfXJldHVybiBlLmFicnVwdChcInJldHVyblwiLGMoe30sUCx7cm91dGU6Z30pKTtjYXNlIDIzOmlmKFwiL2FwaVwiIT09ZyYmIWcuc3RhcnRzV2l0aChcIi9hcGkvXCIpKXtlLm5leHQ9MjY7YnJlYWt9cmV0dXJuIHRlKHt1cmw6YSxyb3V0ZXI6bX0pLGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoKGZ1bmN0aW9uKCl7fSkpKTtjYXNlIDI2OmlmKGUudDA9RSxlLnQwKXtlLm5leHQ9MzE7YnJlYWt9cmV0dXJuIGUubmV4dD0zMCxtLmZldGNoQ29tcG9uZW50KGcpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybntDb21wb25lbnQ6ZS5wYWdlLHN0eWxlU2hlZXRzOmUuc3R5bGVTaGVldHMsX19OX1NTRzplLm1vZC5fX05fU1NHLF9fTl9TU1A6ZS5tb2QuX19OX1NTUH19KSk7Y2FzZSAzMDplLnQwPWUuc2VudDtjYXNlIDMxOlI9ZS50MCxlLm5leHQ9MzY7YnJlYWs7Y2FzZSAzNjpyZXR1cm4gaz1SLl9fTl9TU0d8fFIuX19OX1NTUCxlLm5leHQ9MzksbS5fZ2V0RGF0YSh1KGkubWFyaygoZnVuY3Rpb24gZSgpe3ZhciB0LHUsYztyZXR1cm4gaS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZighayl7ZS5uZXh0PTEyO2JyZWFrfWlmKCEobnVsbD09aj92b2lkIDA6ai5qc29uKSl7ZS5uZXh0PTU7YnJlYWt9ZS50MD1qLGUubmV4dD04O2JyZWFrO2Nhc2UgNTpyZXR1cm4gZS5uZXh0PTcsSih7ZGF0YUhyZWY6bS5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtocmVmOk8uZm9ybWF0V2l0aFZhbGlkYXRpb24oe3BhdGhuYW1lOnIscXVlcnk6bn0pLGFzUGF0aDpvLGxvY2FsZTpsfSksaXNTZXJ2ZXJSZW5kZXI6bS5pc1NzcixwYXJzZUpTT046ITAsaW5mbGlnaHRDYWNoZTptLnNkYyxwZXJzaXN0Q2FjaGU6IXAsaXNQcmVmZXRjaDohMSx1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGU6aH0pO2Nhc2UgNzplLnQwPWUuc2VudDtjYXNlIDg6cmV0dXJuIHQ9ZS50MCx1PXQuanNvbixjPXQuY2FjaGVLZXksZS5hYnJ1cHQoXCJyZXR1cm5cIix7Y2FjaGVLZXk6Yyxwcm9wczp1fHx7fX0pO2Nhc2UgMTI6cmV0dXJuIGUudDE9e30sZS5uZXh0PTE1LG0uZ2V0SW5pdGlhbFByb3BzKFIuQ29tcG9uZW50LHtwYXRobmFtZTpyLHF1ZXJ5Om4sYXNQYXRoOmEsbG9jYWxlOmwsbG9jYWxlczptLmxvY2FsZXMsZGVmYXVsdExvY2FsZTptLmRlZmF1bHRMb2NhbGV9KTtjYXNlIDE1OnJldHVybiBlLnQyPWUuc2VudCxlLmFicnVwdChcInJldHVyblwiLHtoZWFkZXJzOmUudDEsY2FjaGVLZXk6XCJcIixwcm9wczplLnQyfSk7Y2FzZSAxNzpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKTtjYXNlIDM5OnJldHVybiBDPWUuc2VudCxBPUMucHJvcHMsTD1DLmNhY2hlS2V5LFIuX19OX1NTUCYmUy5kYXRhSHJlZiYmZGVsZXRlIG0uc2RjW0xdLCFtLmlzUHJldmlldyYmUi5fX05fU1NHJiZKKE9iamVjdC5hc3NpZ24oe30sUyx7aXNCYWNrZ3JvdW5kOiEwLHBlcnNpc3RDYWNoZTohMSxpbmZsaWdodENhY2hlOlh9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7fSkpLEEucGFnZVByb3BzPU9iamVjdC5hc3NpZ24oe30sQS5wYWdlUHJvcHMpLFIucHJvcHM9QSxSLnJvdXRlPWcsUi5xdWVyeT1uLFIucmVzb2x2ZWRBcz1vLG0uY29tcG9uZW50c1tnXT1SLGUuYWJydXB0KFwicmV0dXJuXCIsUik7Y2FzZSA1MzpyZXR1cm4gZS5wcmV2PTUzLGUudDE9ZS5jYXRjaCgxKSxlLmFicnVwdChcInJldHVyblwiLG0uaGFuZGxlUm91dGVJbmZvRXJyb3Iodi5nZXRQcm9wZXJFcnJvcihlLnQxKSxyLG4sYSxzKSk7Y2FzZSA1NjpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSxudWxsLFtbMSw1M11dKX0pKSkoKX19LHtrZXk6XCJzZXRcIix2YWx1ZTpmdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuc3RhdGU9ZSx0aGlzLnN1Yih0LHRoaXMuY29tcG9uZW50c1tcIi9fYXBwXCJdLkNvbXBvbmVudCxyKX19LHtrZXk6XCJiZWZvcmVQb3BTdGF0ZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuX2Jwcz1lfX0se2tleTpcIm9ubHlBSGFzaENoYW5nZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLmFzUGF0aClyZXR1cm4hMTt2YXIgdD10aGlzLmFzUGF0aC5zcGxpdChcIiNcIikscj1vKHQsMiksbj1yWzBdLGE9clsxXSxpPWUuc3BsaXQoXCIjXCIpLHU9byhpLDIpLGM9dVswXSxzPXVbMV07cmV0dXJuISghc3x8biE9PWN8fGEhPT1zKXx8bj09PWMmJmEhPT1zfX0se2tleTpcInNjcm9sbFRvSGFzaFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoXCIjXCIpLHI9byh0LDIpWzFdLG49dm9pZCAwPT09cj9cIlwiOnI7aWYoXCJcIiE9PW4mJlwidG9wXCIhPT1uKXt2YXIgYT1kZWNvZGVVUklDb21wb25lbnQobiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTtpZihpKVEoKGZ1bmN0aW9uKCl7cmV0dXJuIGkuc2Nyb2xsSW50b1ZpZXcoKX0pKTtlbHNle3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKGEpWzBdO3UmJlEoKGZ1bmN0aW9uKCl7cmV0dXJuIHUuc2Nyb2xsSW50b1ZpZXcoKX0pKX19ZWxzZSBRKChmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuc2Nyb2xsVG8oMCwwKX0pKX19LHtrZXk6XCJ1cmxJc05ld1wiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFzUGF0aCE9PWV9fSx7a2V5OlwicHJlZmV0Y2hcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ZSxyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxuPXRoaXM7cmV0dXJuIHUoaS5tYXJrKChmdW5jdGlvbiBhKCl7dmFyIG8sdSxjLHMsbCxmLGgsdixtLHk7cmV0dXJuIGkud3JhcCgoZnVuY3Rpb24oYSl7Zm9yKDs7KXN3aXRjaChhLnByZXY9YS5uZXh0KXtjYXNlIDA6aWYoIUkuaXNCb3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpKXthLm5leHQ9MjticmVha31yZXR1cm4gYS5hYnJ1cHQoXCJyZXR1cm5cIik7Y2FzZSAyOnJldHVybiBvPXgucGFyc2VSZWxhdGl2ZVVybChlKSx1PW8ucGF0aG5hbWUsYz1vLnF1ZXJ5LGEubmV4dD03LG4ucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpO2Nhc2UgNzppZihzPWEuc2VudCxsPXQsZj1cInVuZGVmaW5lZFwiIT09dHlwZW9mIHIubG9jYWxlP3IubG9jYWxlfHx2b2lkIDA6bi5sb2NhbGUsIXQuc3RhcnRzV2l0aChcIi9cIikpe2EubmV4dD0yMDticmVha31yZXR1cm4gYS5uZXh0PTEzLHAuZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpO2Nhc2UgMTM6aWYodj1hLnNlbnQsaD12Ll9fcmV3cml0ZXMsIShtPVAuZGVmYXVsdChDLmFkZEJhc2VQYXRoKFIuYWRkTG9jYWxlKHQsbi5sb2NhbGUpLCEwKSxzLGgsby5xdWVyeSwoZnVuY3Rpb24oZSl7cmV0dXJuIFooZSxzKX0pLG4ubG9jYWxlcykpLmV4dGVybmFsRGVzdCl7YS5uZXh0PTE4O2JyZWFrfXJldHVybiBhLmFicnVwdChcInJldHVyblwiKTtjYXNlIDE4Omw9ay5yZW1vdmVMb2NhbGUoTS5yZW1vdmVCYXNlUGF0aChtLmFzUGF0aCksbi5sb2NhbGUpLG0ubWF0Y2hlZFBhZ2UmJm0ucmVzb2x2ZWRIcmVmJiYodT1tLnJlc29sdmVkSHJlZixvLnBhdGhuYW1lPXUsZT1PLmZvcm1hdFdpdGhWYWxpZGF0aW9uKG8pKTtjYXNlIDIwOm8ucGF0aG5hbWU9WihvLnBhdGhuYW1lLHMpLF8uaXNEeW5hbWljUm91dGUoby5wYXRobmFtZSkmJih1PW8ucGF0aG5hbWUsby5wYXRobmFtZT11LE9iamVjdC5hc3NpZ24oYyxFLmdldFJvdXRlTWF0Y2hlcihTLmdldFJvdXRlUmVnZXgoby5wYXRobmFtZSkpKGoucGFyc2VQYXRoKHQpLnBhdGhuYW1lKXx8e30pLGU9Ty5mb3JtYXRXaXRoVmFsaWRhdGlvbihvKSksYS5uZXh0PTI0O2JyZWFrO2Nhc2UgMjQ6cmV0dXJuIHk9ZC5yZW1vdmVUcmFpbGluZ1NsYXNoKHUpLGEubmV4dD0yNyxQcm9taXNlLmFsbChbbi5wYWdlTG9hZGVyLl9pc1NzZyh5KS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4hIXQmJkooe2RhdGFIcmVmOm4ucGFnZUxvYWRlci5nZXREYXRhSHJlZih7aHJlZjplLGFzUGF0aDpsLGxvY2FsZTpmfSksaXNTZXJ2ZXJSZW5kZXI6ITEscGFyc2VKU09OOiEwLGluZmxpZ2h0Q2FjaGU6bi5zZGMscGVyc2lzdENhY2hlOiFuLmlzUHJldmlldyxpc1ByZWZldGNoOiEwLHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZTpyLnVuc3RhYmxlX3NraXBDbGllbnRDYWNoZXx8ci5wcmlvcml0eSYmITB9KS50aGVuKChmdW5jdGlvbigpe3JldHVybiExfSkpfSkpLG4ucGFnZUxvYWRlcltyLnByaW9yaXR5P1wibG9hZFBhZ2VcIjpcInByZWZldGNoXCJdKHkpXSk7Y2FzZSAyNzpjYXNlXCJlbmRcIjpyZXR1cm4gYS5zdG9wKCl9fSksYSl9KSkpKCl9fSx7a2V5OlwiZmV0Y2hDb21wb25lbnRcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB1KGkubWFyaygoZnVuY3Rpb24gcigpe3ZhciBuLGE7cmV0dXJuIGkud3JhcCgoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIG49cmUoe3JvdXRlOmUscm91dGVyOnR9KSxyLnByZXY9MSxyLm5leHQ9NCx0LnBhZ2VMb2FkZXIubG9hZFBhZ2UoZSk7Y2FzZSA0OnJldHVybiBhPXIuc2VudCxuKCksci5hYnJ1cHQoXCJyZXR1cm5cIixhKTtjYXNlIDk6dGhyb3cgci5wcmV2PTksci50MD1yLmNhdGNoKDEpLG4oKSxyLnQwO2Nhc2UgMTM6Y2FzZVwiZW5kXCI6cmV0dXJuIHIuc3RvcCgpfX0pLHIsbnVsbCxbWzEsOV1dKX0pKSkoKX19LHtrZXk6XCJfZ2V0RGF0YVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMscj0hMSxuPWZ1bmN0aW9uKCl7cj0hMH07cmV0dXJuIHRoaXMuY2xjPW4sZSgpLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKG49PT10LmNsYyYmKHQuY2xjPW51bGwpLHIpe3ZhciBhPW5ldyBFcnJvcihcIkxvYWRpbmcgaW5pdGlhbCBwcm9wcyBjYW5jZWxsZWRcIik7dGhyb3cgYS5jYW5jZWxsZWQ9ITAsYX1yZXR1cm4gZX0pKX19LHtrZXk6XCJfZ2V0RmxpZ2h0RGF0YVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBKKHtkYXRhSHJlZjplLGlzU2VydmVyUmVuZGVyOiEwLHBhcnNlSlNPTjohMSxpbmZsaWdodENhY2hlOnRoaXMuc2RjLHBlcnNpc3RDYWNoZTohMSxpc1ByZWZldGNoOiExfSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJue2RhdGE6ZS50ZXh0fX0pKX19LHtrZXk6XCJnZXRJbml0aWFsUHJvcHNcIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuY29tcG9uZW50c1tcIi9fYXBwXCJdLkNvbXBvbmVudCxuPXRoaXMuX3dyYXBBcHAocik7cmV0dXJuIHQuQXBwVHJlZT1uLGIubG9hZEdldEluaXRpYWxQcm9wcyhyLHtBcHBUcmVlOm4sQ29tcG9uZW50OmUscm91dGVyOnRoaXMsY3R4OnR9KX19LHtrZXk6XCJyb3V0ZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlLnJvdXRlfX0se2tleTpcInBhdGhuYW1lXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGUucGF0aG5hbWV9fSx7a2V5OlwicXVlcnlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZS5xdWVyeX19LHtrZXk6XCJhc1BhdGhcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZS5hc1BhdGh9fSx7a2V5OlwibG9jYWxlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGUubG9jYWxlfX0se2tleTpcImlzRmFsbGJhY2tcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZS5pc0ZhbGxiYWNrfX0se2tleTpcImlzUHJldmlld1wiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlLmlzUHJldmlld319XSksZX0oKTtuZS5ldmVudHM9Zy5kZWZhdWx0KCksdC5kZWZhdWx0PW5lfSw4MjQ5OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmFkZExvY2FsZT1mdW5jdGlvbihlLHQscixvKXtpZih0JiZ0IT09ciYmKG98fCFhLnBhdGhIYXNQcmVmaXgoZS50b0xvd2VyQ2FzZSgpLFwiL1wiLmNvbmNhdCh0LnRvTG93ZXJDYXNlKCkpKSYmIWEucGF0aEhhc1ByZWZpeChlLnRvTG93ZXJDYXNlKCksXCIvYXBpXCIpKSlyZXR1cm4gbi5hZGRQYXRoUHJlZml4KGUsXCIvXCIuY29uY2F0KHQpKTtyZXR1cm4gZX07dmFyIG49cig4OTc4MiksYT1yKDE5ODgwKX0sODk3ODI6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuYWRkUGF0aFByZWZpeD1mdW5jdGlvbihlLHQpe2lmKCFlLnN0YXJ0c1dpdGgoXCIvXCIpfHwhdClyZXR1cm4gZTt2YXIgcj1uLnBhcnNlUGF0aChlKSxhPXIucGF0aG5hbWUsbz1yLnF1ZXJ5LGk9ci5oYXNoO3JldHVyblwiXCIuY29uY2F0KHQpLmNvbmNhdChhKS5jb25jYXQobykuY29uY2F0KGkpfTt2YXIgbj1yKDIzMDgyKX0sNzU5NTQ6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuYWRkUGF0aFN1ZmZpeD1mdW5jdGlvbihlLHQpe2lmKCFlLnN0YXJ0c1dpdGgoXCIvXCIpfHwhdClyZXR1cm4gZTt2YXIgcj1uLnBhcnNlUGF0aChlKSxhPXIucGF0aG5hbWUsbz1yLnF1ZXJ5LGk9ci5oYXNoO3JldHVyblwiXCIuY29uY2F0KGEpLmNvbmNhdCh0KS5jb25jYXQobykuY29uY2F0KGkpfTt2YXIgbj1yKDIzMDgyKX0sNTY3NTI6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmNvbXBhcmVSb3V0ZXJTdGF0ZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1PYmplY3Qua2V5cyhlKTtpZihyLmxlbmd0aCE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG49ci5sZW5ndGg7bi0tOyl7dmFyIGE9cltuXTtpZihcInF1ZXJ5XCI9PT1hKXt2YXIgbz1PYmplY3Qua2V5cyhlLnF1ZXJ5KTtpZihvLmxlbmd0aCE9PU9iamVjdC5rZXlzKHQucXVlcnkpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGk9by5sZW5ndGg7aS0tOyl7dmFyIHU9b1tpXTtpZighdC5xdWVyeS5oYXNPd25Qcm9wZXJ0eSh1KXx8ZS5xdWVyeVt1XSE9PXQucXVlcnlbdV0pcmV0dXJuITF9fWVsc2UgaWYoIXQuaGFzT3duUHJvcGVydHkoYSl8fGVbYV0hPT10W2FdKXJldHVybiExfXJldHVybiEwfX0sNDYzOTQ6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZm9ybWF0TmV4dFBhdGhuYW1lSW5mbz1mdW5jdGlvbihlKXt2YXIgdD1pLmFkZExvY2FsZShlLnBhdGhuYW1lLGUubG9jYWxlLGUuYnVpbGRJZD92b2lkIDA6ZS5kZWZhdWx0TG9jYWxlLGUuaWdub3JlUHJlZml4KTtlLmJ1aWxkSWQmJih0PW8uYWRkUGF0aFN1ZmZpeChhLmFkZFBhdGhQcmVmaXgodCxcIi9fbmV4dC9kYXRhL1wiLmNvbmNhdChlLmJ1aWxkSWQpKSxcIi9cIj09PWUucGF0aG5hbWU/XCJpbmRleC5qc29uXCI6XCIuanNvblwiKSk7cmV0dXJuIHQ9YS5hZGRQYXRoUHJlZml4KHQsZS5iYXNlUGF0aCksZS50cmFpbGluZ1NsYXNoP2UuYnVpbGRJZHx8dC5lbmRzV2l0aChcIi9cIik/dDpvLmFkZFBhdGhTdWZmaXgodCxcIi9cIik6bi5yZW1vdmVUcmFpbGluZ1NsYXNoKHQpfTt2YXIgbj1yKDE1MzIzKSxhPXIoODk3ODIpLG89cig3NTk1NCksaT1yKDgyNDkpfSw2OTQyMjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5mb3JtYXRVcmw9byx0LmZvcm1hdFdpdGhWYWxpZGF0aW9uPWZ1bmN0aW9uKGUpezA7cmV0dXJuIG8oZSl9LHQudXJsT2JqZWN0S2V5cz12b2lkIDA7dmFyIG49KDAscig5MTU5OCkuWikocigyNTg4MCkpLGE9L2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9ZS5hdXRoLHI9ZS5ob3N0bmFtZSxvPWUucHJvdG9jb2x8fFwiXCIsaT1lLnBhdGhuYW1lfHxcIlwiLHU9ZS5oYXNofHxcIlwiLGM9ZS5xdWVyeXx8XCJcIixzPSExO3Q9dD9lbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZSgvJTNBL2ksXCI6XCIpK1wiQFwiOlwiXCIsZS5ob3N0P3M9dCtlLmhvc3Q6ciYmKHM9dCsofnIuaW5kZXhPZihcIjpcIik/XCJbXCIuY29uY2F0KHIsXCJdXCIpOnIpLGUucG9ydCYmKHMrPVwiOlwiK2UucG9ydCkpLGMmJlwib2JqZWN0XCI9PT10eXBlb2YgYyYmKGM9U3RyaW5nKG4udXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhjKSkpO3ZhciBsPWUuc2VhcmNofHxjJiZcIj9cIi5jb25jYXQoYyl8fFwiXCI7cmV0dXJuIG8mJiFvLmVuZHNXaXRoKFwiOlwiKSYmKG8rPVwiOlwiKSxlLnNsYXNoZXN8fCghb3x8YS50ZXN0KG8pKSYmITEhPT1zPyhzPVwiLy9cIisoc3x8XCJcIiksaSYmXCIvXCIhPT1pWzBdJiYoaT1cIi9cIitpKSk6c3x8KHM9XCJcIiksdSYmXCIjXCIhPT11WzBdJiYodT1cIiNcIit1KSxsJiZcIj9cIiE9PWxbMF0mJihsPVwiP1wiK2wpLGk9aS5yZXBsYWNlKC9bPyNdL2csZW5jb2RlVVJJQ29tcG9uZW50KSxsPWwucmVwbGFjZShcIiNcIixcIiUyM1wiKSxcIlwiLmNvbmNhdChvKS5jb25jYXQocykuY29uY2F0KGkpLmNvbmNhdChsKS5jb25jYXQodSl9dC51cmxPYmplY3RLZXlzPVtcImF1dGhcIixcImhhc2hcIixcImhvc3RcIixcImhvc3RuYW1lXCIsXCJocmVmXCIsXCJwYXRoXCIsXCJwYXRobmFtZVwiLFwicG9ydFwiLFwicHJvdG9jb2xcIixcInF1ZXJ5XCIsXCJzZWFyY2hcIixcInNsYXNoZXNcIl19LDU4NzkyOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpcIlwiLHI9XCIvXCI9PT1lP1wiL2luZGV4XCI6L15cXC9pbmRleChcXC98JCkvLnRlc3QoZSk/XCIvaW5kZXhcIi5jb25jYXQoZSk6XCJcIi5jb25jYXQoZSk7cmV0dXJuIHIrdH19LDgzNjAxOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmdldE5leHRQYXRobmFtZUluZm89ZnVuY3Rpb24oZSx0KXt2YXIgcixpPW51bGwhPShyPXQubmV4dENvbmZpZyk/cjp7fSx1PWkuYmFzZVBhdGgsYz1pLmkxOG4scz1pLnRyYWlsaW5nU2xhc2gsbD17cGF0aG5hbWU6ZSx0cmFpbGluZ1NsYXNoOlwiL1wiIT09ZT9lLmVuZHNXaXRoKFwiL1wiKTpzfTt1JiZvLnBhdGhIYXNQcmVmaXgobC5wYXRobmFtZSx1KSYmKGwucGF0aG5hbWU9YS5yZW1vdmVQYXRoUHJlZml4KGwucGF0aG5hbWUsdSksbC5iYXNlUGF0aD11KTtpZighMD09PXQucGFyc2VEYXRhJiZsLnBhdGhuYW1lLnN0YXJ0c1dpdGgoXCIvX25leHQvZGF0YS9cIikmJmwucGF0aG5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSl7dmFyIGY9bC5wYXRobmFtZS5yZXBsYWNlKC9eXFwvX25leHRcXC9kYXRhXFwvLyxcIlwiKS5yZXBsYWNlKC9cXC5qc29uJC8sXCJcIikuc3BsaXQoXCIvXCIpLGQ9ZlswXTtsLnBhdGhuYW1lPVwiaW5kZXhcIiE9PWZbMV0/XCIvXCIuY29uY2F0KGYuc2xpY2UoMSkuam9pbihcIi9cIikpOlwiL1wiLGwuYnVpbGRJZD1kfWlmKGMpe3ZhciBwPW4ubm9ybWFsaXplTG9jYWxlUGF0aChsLnBhdGhuYW1lLGMubG9jYWxlcyk7bC5sb2NhbGU9bnVsbD09cD92b2lkIDA6cC5kZXRlY3RlZExvY2FsZSxsLnBhdGhuYW1lPShudWxsPT1wP3ZvaWQgMDpwLnBhdGhuYW1lKXx8bC5wYXRobmFtZX1yZXR1cm4gbH07dmFyIG49cig5NjI1KSxhPXIoMjk1NDMpLG89cigxOTg4MCl9LDQxMTM0OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImdldFNvcnRlZFJvdXRlc1wiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmdldFNvcnRlZFJvdXRlc319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImlzRHluYW1pY1JvdXRlXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNEeW5hbWljUm91dGV9fSk7dmFyIG49cig0MzI1OCksYT1yKDk2MzYpfSwyOTI5MzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaXNCb3Q9ZnVuY3Rpb24oZSl7cmV0dXJuL0dvb2dsZWJvdHxNZWRpYXBhcnRuZXJzLUdvb2dsZXxBZHNCb3QtR29vZ2xlfGdvb2dsZXdlYmxpZ2h0fFN0b3JlYm90LUdvb2dsZXxHb29nbGUtUGFnZVJlbmRlcmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8U2x1cnB8RHVja0R1Y2tCb3R8YmFpZHVzcGlkZXJ8eWFuZGV4fHNvZ291fExpbmtlZEluQm90fGJpdGx5Ym90fHR1bWJscnx2a1NoYXJlfHF1b3JhIGxpbmsgcHJldmlld3xmYWNlYm9va2V4dGVybmFsaGl0fGZhY2Vib29rY2F0YWxvZ3xUd2l0dGVyYm90fGFwcGxlYm90fHJlZGRpdGJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xpYV9hcmNoaXZlci9pLnRlc3QoZSl9fSw5NjM2OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5pc0R5bmFtaWNSb3V0ZT1mdW5jdGlvbihlKXtyZXR1cm4gci50ZXN0KGUpfTt2YXIgcj0vXFwvXFxbW14vXSs/XFxdKD89XFwvfCQpL30sMjMwODI6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnBhcnNlUGF0aD1mdW5jdGlvbihlKXt2YXIgdD1lLmluZGV4T2YoXCIjXCIpLHI9ZS5pbmRleE9mKFwiP1wiKSxuPXI+LTEmJih0PDB8fHI8dCk7aWYobnx8dD4tMSlyZXR1cm57cGF0aG5hbWU6ZS5zdWJzdHJpbmcoMCxuP3I6dCkscXVlcnk6bj9lLnN1YnN0cmluZyhyLHQ+LTE/dDp2b2lkIDApOlwiXCIsaGFzaDp0Pi0xP2Uuc2xpY2UodCk6XCJcIn07cmV0dXJue3BhdGhuYW1lOmUscXVlcnk6XCJcIixoYXNoOlwiXCJ9fX0sODY0NzI6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucGFyc2VSZWxhdGl2ZVVybD1mdW5jdGlvbihlLHQpe3ZhciByPW5ldyBVUkwobi5nZXRMb2NhdGlvbk9yaWdpbigpKSxvPXQ/bmV3IFVSTCh0LHIpOmUuc3RhcnRzV2l0aChcIi5cIik/bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik6cixpPW5ldyBVUkwoZSxvKSx1PWkucGF0aG5hbWUsYz1pLnNlYXJjaFBhcmFtcyxzPWkuc2VhcmNoLGw9aS5oYXNoLGY9aS5ocmVmO2lmKGkub3JpZ2luIT09ci5vcmlnaW4pdGhyb3cgbmV3IEVycm9yKFwiaW52YXJpYW50OiBpbnZhbGlkIHJlbGF0aXZlIFVSTCwgcm91dGVyIHJlY2VpdmVkIFwiLmNvbmNhdChlKSk7cmV0dXJue3BhdGhuYW1lOnUscXVlcnk6YS5zZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KGMpLHNlYXJjaDpzLGhhc2g6bCxocmVmOmYuc2xpY2Uoci5vcmlnaW4ubGVuZ3RoKX19O3ZhciBuPXIoOTk0NzUpLGE9cigyNTg4MCl9LDYwMjA0OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnBhcnNlVXJsPWZ1bmN0aW9uKGUpe2lmKGUuc3RhcnRzV2l0aChcIi9cIikpcmV0dXJuIGEucGFyc2VSZWxhdGl2ZVVybChlKTt2YXIgdD1uZXcgVVJMKGUpO3JldHVybntoYXNoOnQuaGFzaCxob3N0bmFtZTp0Lmhvc3RuYW1lLGhyZWY6dC5ocmVmLHBhdGhuYW1lOnQucGF0aG5hbWUscG9ydDp0LnBvcnQscHJvdG9jb2w6dC5wcm90b2NvbCxxdWVyeTpuLnNlYXJjaFBhcmFtc1RvVXJsUXVlcnkodC5zZWFyY2hQYXJhbXMpLHNlYXJjaDp0LnNlYXJjaH19O3ZhciBuPXIoMjU4ODApLGE9cig4NjQ3Mil9LDE5ODgwOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnBhdGhIYXNQcmVmaXg9ZnVuY3Rpb24oZSx0KXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGUpcmV0dXJuITE7dmFyIHI9bi5wYXJzZVBhdGgoZSkucGF0aG5hbWU7cmV0dXJuIHI9PT10fHxyLnN0YXJ0c1dpdGgodCtcIi9cIil9O3ZhciBuPXIoMjMwODIpfSw0ODY3NTpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbihlLHQpe3ZhciByPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKCFyKXtpZihBcnJheS5pc0FycmF5KGUpfHwocj1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybjtpZihcInN0cmluZ1wiPT09dHlwZW9mIGUpcmV0dXJuIGEoZSx0KTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXJ8fFwiU2V0XCI9PT1yKXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT1yfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKSlyZXR1cm4gYShlLHQpfShlKSl8fHQmJmUmJlwibnVtYmVyXCI9PT10eXBlb2YgZS5sZW5ndGgpe3ImJihlPXIpO3ZhciBuPTAsbz1mdW5jdGlvbigpe307cmV0dXJue3M6byxuOmZ1bmN0aW9uKCl7cmV0dXJuIG4+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW24rK119fSxlOmZ1bmN0aW9uKGUpe3Rocm93IGV9LGY6b319dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfXZhciBpLHU9ITAsYz0hMTtyZXR1cm57czpmdW5jdGlvbigpe3I9ci5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9ci5uZXh0KCk7cmV0dXJuIHU9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7Yz0hMCxpPWV9LGY6ZnVuY3Rpb24oKXt0cnl7dXx8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZihjKXRocm93IGl9fX19ZnVuY3Rpb24gYShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KHQpO3I8dDtyKyspbltyXT1lW3JdO3JldHVybiBufU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZ2V0UGF0aE1hdGNoPWZ1bmN0aW9uKGUsdCl7dmFyIHI9W10sYT1pLnBhdGhUb1JlZ2V4cChlLHIse2RlbGltaXRlcjpcIi9cIixzZW5zaXRpdmU6ITEsc3RyaWN0Om51bGw9PXQ/dm9pZCAwOnQuc3RyaWN0fSksdT1pLnJlZ2V4cFRvRnVuY3Rpb24oKG51bGw9PXQ/dm9pZCAwOnQucmVnZXhNb2RpZmllcik/bmV3IFJlZ0V4cCh0LnJlZ2V4TW9kaWZpZXIoYS5zb3VyY2UpLGEuZmxhZ3MpOmEscik7cmV0dXJuIGZ1bmN0aW9uKGUsYSl7dmFyIGk9bnVsbCE9ZSYmdShlKTtpZighaSlyZXR1cm4hMTtpZihudWxsPT10P3ZvaWQgMDp0LnJlbW92ZVVubmFtZWRQYXJhbXMpe3ZhciBjLHM9bihyKTt0cnl7Zm9yKHMucygpOyEoYz1zLm4oKSkuZG9uZTspe3ZhciBsPWMudmFsdWU7XCJudW1iZXJcIj09PXR5cGVvZiBsLm5hbWUmJmRlbGV0ZSBpLnBhcmFtc1tsLm5hbWVdfX1jYXRjaChmKXtzLmUoZil9ZmluYWxseXtzLmYoKX19cmV0dXJuIG8oe30sYSxpLnBhcmFtcyl9fTt2YXIgbz1yKDY0OTUpLlosaT1yKDc0MzI5KX0sNjUwMzk6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPXIoODU2OTYpO2Z1bmN0aW9uIGEoZSx0KXt2YXIgcj1cInVuZGVmaW5lZFwiIT09dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZighcil7aWYoQXJyYXkuaXNBcnJheShlKXx8KHI9ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlKXJldHVybiBvKGUsdCk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO1wiT2JqZWN0XCI9PT1yJiZlLmNvbnN0cnVjdG9yJiYocj1lLmNvbnN0cnVjdG9yLm5hbWUpO2lmKFwiTWFwXCI9PT1yfHxcIlNldFwiPT09cilyZXR1cm4gQXJyYXkuZnJvbShlKTtpZihcIkFyZ3VtZW50c1wiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QocikpcmV0dXJuIG8oZSx0KX0oZSkpfHx0JiZlJiZcIm51bWJlclwiPT09dHlwZW9mIGUubGVuZ3RoKXtyJiYoZT1yKTt2YXIgbj0wLGE9ZnVuY3Rpb24oKXt9O3JldHVybntzOmEsbjpmdW5jdGlvbigpe3JldHVybiBuPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtuKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOmF9fXRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX12YXIgaSx1PSEwLGM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPXIuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPXIubmV4dCgpO3JldHVybiB1PWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe2M9ITAsaT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e3V8fG51bGw9PXIucmV0dXJufHxyLnJldHVybigpfWZpbmFsbHl7aWYoYyl0aHJvdyBpfX19fWZ1bmN0aW9uIG8oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheSh0KTtyPHQ7cisrKW5bcl09ZVtyXTtyZXR1cm4gbn1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lm1hdGNoSGFzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOltdLG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOltdLGE9e30sbz1mdW5jdGlvbihyKXt2YXIgbixvPXIua2V5O3N3aXRjaChyLnR5cGUpe2Nhc2VcImhlYWRlclwiOm89by50b0xvd2VyQ2FzZSgpLG49ZS5oZWFkZXJzW29dO2JyZWFrO2Nhc2VcImNvb2tpZVwiOm49ZS5jb29raWVzW3Iua2V5XTticmVhaztjYXNlXCJxdWVyeVwiOm49dFtvXTticmVhaztjYXNlXCJob3N0XCI6dmFyIGk9KChudWxsPT1lP3ZvaWQgMDplLmhlYWRlcnMpfHx7fSkuaG9zdDtuPW51bGw9PWk/dm9pZCAwOmkuc3BsaXQoXCI6XCIpWzBdLnRvTG93ZXJDYXNlKCl9aWYoIXIudmFsdWUmJm4pcmV0dXJuIGFbbChvKV09biwhMDtpZihuKXt2YXIgdT1uZXcgUmVnRXhwKFwiXlwiLmNvbmNhdChyLnZhbHVlLFwiJFwiKSksYz1BcnJheS5pc0FycmF5KG4pP24uc2xpY2UoLTEpWzBdLm1hdGNoKHUpOm4ubWF0Y2godSk7aWYoYylyZXR1cm4gQXJyYXkuaXNBcnJheShjKSYmKGMuZ3JvdXBzP09iamVjdC5rZXlzKGMuZ3JvdXBzKS5mb3JFYWNoKChmdW5jdGlvbihlKXthW2VdPWMuZ3JvdXBzW2VdfSkpOlwiaG9zdFwiPT09ci50eXBlJiZjWzBdJiYoYS5ob3N0PWNbMF0pKSwhMH1yZXR1cm4hMX0saT1yLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gbyhlKX0pKSYmIW4uc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSl9KSk7aWYoaSlyZXR1cm4gYTtyZXR1cm4hMX0sdC5jb21waWxlTm9uUGF0aD1kLHQucHJlcGFyZURlc3RpbmF0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdC5hc3NpZ24oe30sZS5xdWVyeSk7ZGVsZXRlIHQuX19uZXh0TG9jYWxlLGRlbGV0ZSB0Ll9fbmV4dERlZmF1bHRMb2NhbGUsZGVsZXRlIHQuX19uZXh0RGF0YVJlcTtmb3IodmFyIHI9ZS5kZXN0aW5hdGlvbixvPTAsbD1PYmplY3Qua2V5cyhpKHt9LGUucGFyYW1zLHQpKTtvPGwubGVuZ3RoO28rKyl7dmFyIHA9bFtvXTtoPXAscj1yLnJlcGxhY2UobmV3IFJlZ0V4cChcIjpcIi5jb25jYXQoYy5lc2NhcGVTdHJpbmdSZWdleHAoaCkpLFwiZ1wiKSxcIl9fRVNDX0NPTE9OX1wiLmNvbmNhdChoKSl9dmFyIGg7dmFyIHY9cy5wYXJzZVVybChyKSxtPXYucXVlcnkseT1mKFwiXCIuY29uY2F0KHYucGF0aG5hbWUpLmNvbmNhdCh2Lmhhc2h8fFwiXCIpKSxnPWYodi5ob3N0bmFtZXx8XCJcIiksYj1bXSxfPVtdO3UucGF0aFRvUmVnZXhwKHksYiksdS5wYXRoVG9SZWdleHAoZyxfKTt2YXIgeD1bXTtiLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB4LnB1c2goZS5uYW1lKX0pKSxfLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB4LnB1c2goZS5uYW1lKX0pKTtmb3IodmFyIHc9dS5jb21waWxlKHkse3ZhbGlkYXRlOiExfSksUD11LmNvbXBpbGUoZyx7dmFsaWRhdGU6ITF9KSxFPTAsUz1PYmplY3QuZW50cmllcyhtKTtFPFMubGVuZ3RoO0UrKyl7dmFyIE89bihTW0VdLDIpLGo9T1swXSxSPU9bMV07QXJyYXkuaXNBcnJheShSKT9tW2pdPVIubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZChmKHQpLGUucGFyYW1zKX0pKTptW2pdPWQoZihSKSxlLnBhcmFtcyl9dmFyIGssTT1PYmplY3Qua2V5cyhlLnBhcmFtcykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm5cIm5leHRJbnRlcm5hbExvY2FsZVwiIT09ZX0pKTtpZihlLmFwcGVuZFBhcmFtc1RvUXVlcnkmJiFNLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiB4LmluY2x1ZGVzKGUpfSkpKXt2YXIgQyxBPWEoTSk7dHJ5e2ZvcihBLnMoKTshKEM9QS5uKCkpLmRvbmU7KXt2YXIgTD1DLnZhbHVlO0wgaW4gbXx8KG1bTF09ZS5wYXJhbXNbTF0pfX1jYXRjaChCKXtBLmUoQil9ZmluYWxseXtBLmYoKX19dHJ5e3ZhciBUPShrPXcoZS5wYXJhbXMpKS5zcGxpdChcIiNcIiksTj1uKFQsMiksST1OWzBdLEQ9TlsxXTt2Lmhvc3RuYW1lPVAoZS5wYXJhbXMpLHYucGF0aG5hbWU9SSx2Lmhhc2g9XCJcIi5jb25jYXQoRD9cIiNcIjpcIlwiKS5jb25jYXQoRHx8XCJcIiksZGVsZXRlIHYuc2VhcmNofWNhdGNoKEIpe2lmKEIubWVzc2FnZS5tYXRjaCgvRXhwZWN0ZWQgLio/IHRvIG5vdCByZXBlYXQsIGJ1dCBnb3QgYW4gYXJyYXkvKSl0aHJvdyBuZXcgRXJyb3IoXCJUbyB1c2UgYSBtdWx0aS1tYXRjaCBpbiB0aGUgZGVzdGluYXRpb24geW91IG11c3QgYWRkIGAqYCBhdCB0aGUgZW5kIG9mIHRoZSBwYXJhbSBuYW1lIHRvIHNpZ25pZnkgaXQgc2hvdWxkIHJlcGVhdC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1tdWx0aS1tYXRjaFwiKTt0aHJvdyBCfXJldHVybiB2LnF1ZXJ5PWkoe30sdCx2LnF1ZXJ5KSx7bmV3VXJsOmssZGVzdFF1ZXJ5Om0scGFyc2VkRGVzdGluYXRpb246dn19O3ZhciBpPXIoNjQ5NSkuWix1PXIoNzQzMjkpLGM9cig3OTgxNykscz1yKDYwMjA0KTtmdW5jdGlvbiBsKGUpe2Zvcih2YXIgdD1cIlwiLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZS5jaGFyQ29kZUF0KHIpOyhuPjY0JiZuPDkxfHxuPjk2JiZuPDEyMykmJih0Kz1lW3JdKX1yZXR1cm4gdH1mdW5jdGlvbiBmKGUpe3JldHVybiBlLnJlcGxhY2UoL19fRVNDX0NPTE9OXy9naSxcIjpcIil9ZnVuY3Rpb24gZChlLHQpe2lmKCFlLmluY2x1ZGVzKFwiOlwiKSlyZXR1cm4gZTtmb3IodmFyIHI9MCxuPU9iamVjdC5rZXlzKHQpO3I8bi5sZW5ndGg7cisrKXt2YXIgYT1uW3JdO2UuaW5jbHVkZXMoXCI6XCIuY29uY2F0KGEpKSYmKGU9ZS5yZXBsYWNlKG5ldyBSZWdFeHAoXCI6XCIuY29uY2F0KGEsXCJcXFxcKlwiKSxcImdcIiksXCI6XCIuY29uY2F0KGEsXCItLUVTQ0FQRURfUEFSQU1fQVNURVJJU0tTXCIpKS5yZXBsYWNlKG5ldyBSZWdFeHAoXCI6XCIuY29uY2F0KGEsXCJcXFxcP1wiKSxcImdcIiksXCI6XCIuY29uY2F0KGEsXCItLUVTQ0FQRURfUEFSQU1fUVVFU1RJT05cIikpLnJlcGxhY2UobmV3IFJlZ0V4cChcIjpcIi5jb25jYXQoYSxcIlxcXFwrXCIpLFwiZ1wiKSxcIjpcIi5jb25jYXQoYSxcIi0tRVNDQVBFRF9QQVJBTV9QTFVTXCIpKS5yZXBsYWNlKG5ldyBSZWdFeHAoXCI6XCIuY29uY2F0KGEsXCIoPyFcXFxcdylcIiksXCJnXCIpLFwiLS1FU0NBUEVEX1BBUkFNX0NPTE9OXCIuY29uY2F0KGEpKSl9cmV0dXJuIGU9ZS5yZXBsYWNlKC8oOnxcXCp8XFw/fFxcK3xcXCh8XFwpfFxce3xcXH0pL2csXCJcXFxcJDFcIikucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX1BMVVMvZyxcIitcIikucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX0NPTE9OL2csXCI6XCIpLnJlcGxhY2UoLy0tRVNDQVBFRF9QQVJBTV9RVUVTVElPTi9nLFwiP1wiKS5yZXBsYWNlKC8tLUVTQ0FQRURfUEFSQU1fQVNURVJJU0tTL2csXCIqXCIpLHUuY29tcGlsZShcIi9cIi5jb25jYXQoZSkse3ZhbGlkYXRlOiExfSkodCkuc2xpY2UoMSl9fSwyNTg4MDpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig4NTY5Nik7ZnVuY3Rpb24gYShlKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGV8fFwibnVtYmVyXCI9PT10eXBlb2YgZSYmIWlzTmFOKGUpfHxcImJvb2xlYW5cIj09PXR5cGVvZiBlP1N0cmluZyhlKTpcIlwifU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuc2VhcmNoUGFyYW1zVG9VcmxRdWVyeT1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe1widW5kZWZpbmVkXCI9PT10eXBlb2YgdFtyXT90W3JdPWU6QXJyYXkuaXNBcnJheSh0W3JdKT90W3JdLnB1c2goZSk6dFtyXT1bdFtyXSxlXX0pKSx0fSx0LnVybFF1ZXJ5VG9TZWFyY2hQYXJhbXM9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFVSTFNlYXJjaFBhcmFtcztyZXR1cm4gT2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bihlLDIpLG89clswXSxpPXJbMV07QXJyYXkuaXNBcnJheShpKT9pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGVuZChvLGEoZSkpfSkpOnQuc2V0KG8sYShpKSl9KSksdH0sdC5hc3NpZ249ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodD4xP3QtMTowKSxuPTE7bjx0O24rKylyW24tMV09YXJndW1lbnRzW25dO3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKHQpe0FycmF5LmZyb20odC5rZXlzKCkpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBlLmRlbGV0ZSh0KX0pKSx0LmZvckVhY2goKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUuYXBwZW5kKHIsdCl9KSl9KSksZX19LDI5NTQzOmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlbW92ZVBhdGhQcmVmaXg9ZnVuY3Rpb24oZSx0KXtpZihuLnBhdGhIYXNQcmVmaXgoZSx0KSl7dmFyIHI9ZS5zbGljZSh0Lmxlbmd0aCk7cmV0dXJuIHIuc3RhcnRzV2l0aChcIi9cIik/cjpcIi9cIi5jb25jYXQocil9cmV0dXJuIGV9O3ZhciBuPXIoMTk4ODApfSwxNTMyMzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucmVtb3ZlVHJhaWxpbmdTbGFzaD1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9cXC8kLyxcIlwiKXx8XCIvXCJ9fSwyNjg4MzpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cig5ODQzNCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCxyLGwsZixkKXtmb3IodmFyIHAsaD0hMSx2PSExLG09cy5wYXJzZVJlbGF0aXZlVXJsKGUpLHk9aS5yZW1vdmVUcmFpbGluZ1NsYXNoKHUubm9ybWFsaXplTG9jYWxlUGF0aChjLnJlbW92ZUJhc2VQYXRoKG0ucGF0aG5hbWUpLGQpLnBhdGhuYW1lKSxnPWZ1bmN0aW9uKHIpe3ZhciBzPWEuZ2V0UGF0aE1hdGNoKHIuc291cmNlK1wiXCIse3JlbW92ZVVubmFtZWRQYXJhbXM6ITAsc3RyaWN0OiEwfSkobS5wYXRobmFtZSk7aWYoKHIuaGFzfHxyLm1pc3NpbmcpJiZzKXt2YXIgZz1vLm1hdGNoSGFzKHtoZWFkZXJzOntob3N0OmRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lfSxjb29raWVzOmRvY3VtZW50LmNvb2tpZS5zcGxpdChcIjsgXCIpLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXt2YXIgcj10LnNwbGl0KFwiPVwiKSxhPW4ociksbz1hWzBdLGk9YS5zbGljZSgxKTtyZXR1cm4gZVtvXT1pLmpvaW4oXCI9XCIpLGV9KSx7fSl9LG0ucXVlcnksci5oYXMsci5taXNzaW5nKTtnP09iamVjdC5hc3NpZ24ocyxnKTpzPSExfWlmKHMpe2lmKCFyLmRlc3RpbmF0aW9uKXJldHVybiB2PSEwLCEwO3ZhciBiPW8ucHJlcGFyZURlc3RpbmF0aW9uKHthcHBlbmRQYXJhbXNUb1F1ZXJ5OiEwLGRlc3RpbmF0aW9uOnIuZGVzdGluYXRpb24scGFyYW1zOnMscXVlcnk6bH0pO2lmKG09Yi5wYXJzZWREZXN0aW5hdGlvbixlPWIubmV3VXJsLE9iamVjdC5hc3NpZ24obCxiLnBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5KSx5PWkucmVtb3ZlVHJhaWxpbmdTbGFzaCh1Lm5vcm1hbGl6ZUxvY2FsZVBhdGgoYy5yZW1vdmVCYXNlUGF0aChlKSxkKS5wYXRobmFtZSksdC5pbmNsdWRlcyh5KSlyZXR1cm4gaD0hMCxwPXksITA7aWYoKHA9Zih5KSkhPT1lJiZ0LmluY2x1ZGVzKHApKXJldHVybiBoPSEwLCEwfX0sYj0hMSxfPTA7XzxyLmJlZm9yZUZpbGVzLmxlbmd0aDtfKyspZyhyLmJlZm9yZUZpbGVzW19dKTtpZighKGg9dC5pbmNsdWRlcyh5KSkpe2lmKCFiKWZvcih2YXIgeD0wO3g8ci5hZnRlckZpbGVzLmxlbmd0aDt4KyspaWYoZyhyLmFmdGVyRmlsZXNbeF0pKXtiPSEwO2JyZWFrfWlmKGJ8fChwPWYoeSksaD10LmluY2x1ZGVzKHApLGI9aCksIWIpZm9yKHZhciB3PTA7dzxyLmZhbGxiYWNrLmxlbmd0aDt3KyspaWYoZyhyLmZhbGxiYWNrW3ddKSl7Yj0hMDticmVha319cmV0dXJue2FzUGF0aDplLHBhcnNlZEFzOm0sbWF0Y2hlZFBhZ2U6aCxyZXNvbHZlZEhyZWY6cCxleHRlcm5hbERlc3Q6dn19O3ZhciBhPXIoNDg2NzUpLG89cig2NTAzOSksaT1yKDE1MzIzKSx1PXIoOTYyNSksYz1yKDY1Njc4KSxzPXIoODY0NzIpfSw2MTU1MzpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5nZXRSb3V0ZU1hdGNoZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZSxyPWUuZ3JvdXBzO3JldHVybiBmdW5jdGlvbihlKXt2YXIgYT10LmV4ZWMoZSk7aWYoIWEpcmV0dXJuITE7dmFyIG89ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9Y2F0Y2godCl7dGhyb3cgbmV3IG4uRGVjb2RlRXJyb3IoXCJmYWlsZWQgdG8gZGVjb2RlIHBhcmFtXCIpfX0saT17fTtyZXR1cm4gT2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9cltlXSxuPWFbdC5wb3NdO3ZvaWQgMCE9PW4mJihpW2VdPX5uLmluZGV4T2YoXCIvXCIpP24uc3BsaXQoXCIvXCIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSl9KSk6dC5yZXBlYXQ/W28obildOm8obikpfSkpLGl9fTt2YXIgbj1yKDk5NDc1KX0sNzY5Mjc6ZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZ2V0Um91dGVSZWdleD1jLHQuZ2V0TmFtZWRSb3V0ZVJlZ2V4PWZ1bmN0aW9uKGUpe3ZhciB0PXMoZSk7cmV0dXJuIG4oe30sYyhlKSx7bmFtZWRSZWdleDpcIl5cIi5jb25jYXQodC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSxcIig/Oi8pPyRcIikscm91dGVLZXlzOnQucm91dGVLZXlzfSl9LHQuZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXg9ZnVuY3Rpb24oZSx0KXt2YXIgcj11KGUpLnBhcmFtZXRlcml6ZWRSb3V0ZSxuPXQuY2F0Y2hBbGwsYT12b2lkIDA9PT1ufHxuO2lmKFwiL1wiPT09cil7cmV0dXJue25hbWVkUmVnZXg6XCJeL1wiLmNvbmNhdChhP1wiLipcIjpcIlwiLFwiJFwiKX19dmFyIG89cyhlKS5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSxpPWE/XCIoPzooLy4qKT8pXCI6XCJcIjtyZXR1cm57bmFtZWRSZWdleDpcIl5cIi5jb25jYXQobykuY29uY2F0KGksXCIkXCIpfX07dmFyIG49cig2NDk1KS5aLGE9cig3OTgxNyksbz1yKDE1MzIzKTtmdW5jdGlvbiBpKGUpe3ZhciB0PWUuc3RhcnRzV2l0aChcIltcIikmJmUuZW5kc1dpdGgoXCJdXCIpO3QmJihlPWUuc2xpY2UoMSwtMSkpO3ZhciByPWUuc3RhcnRzV2l0aChcIi4uLlwiKTtyZXR1cm4gciYmKGU9ZS5zbGljZSgzKSkse2tleTplLHJlcGVhdDpyLG9wdGlvbmFsOnR9fWZ1bmN0aW9uIHUoZSl7dmFyIHQ9by5yZW1vdmVUcmFpbGluZ1NsYXNoKGUpLnNsaWNlKDEpLnNwbGl0KFwiL1wiKSxyPXt9LG49MTtyZXR1cm57cGFyYW1ldGVyaXplZFJvdXRlOnQubWFwKChmdW5jdGlvbihlKXtpZihlLnN0YXJ0c1dpdGgoXCJbXCIpJiZlLmVuZHNXaXRoKFwiXVwiKSl7dmFyIHQ9aShlLnNsaWNlKDEsLTEpKSxvPXQua2V5LHU9dC5vcHRpb25hbCxjPXQucmVwZWF0O3JldHVybiByW29dPXtwb3M6bisrLHJlcGVhdDpjLG9wdGlvbmFsOnV9LGM/dT9cIig/Oi8oLis/KSk/XCI6XCIvKC4rPylcIjpcIi8oW14vXSs/KVwifXJldHVyblwiL1wiLmNvbmNhdChhLmVzY2FwZVN0cmluZ1JlZ2V4cChlKSl9KSkuam9pbihcIlwiKSxncm91cHM6cn19ZnVuY3Rpb24gYyhlKXt2YXIgdD11KGUpLHI9dC5wYXJhbWV0ZXJpemVkUm91dGUsbj10Lmdyb3VwcztyZXR1cm57cmU6bmV3IFJlZ0V4cChcIl5cIi5jb25jYXQocixcIig/Oi8pPyRcIikpLGdyb3VwczpufX1mdW5jdGlvbiBzKGUpe3ZhciB0PW8ucmVtb3ZlVHJhaWxpbmdTbGFzaChlKS5zbGljZSgxKS5zcGxpdChcIi9cIikscj1mdW5jdGlvbigpe3ZhciBlPTk3LHQ9MTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHI9XCJcIixuPTA7bjx0O24rKylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpLCsrZT4xMjImJih0KyssZT05Nyk7cmV0dXJuIHJ9fSgpLG49e307cmV0dXJue25hbWVkUGFyYW1ldGVyaXplZFJvdXRlOnQubWFwKChmdW5jdGlvbihlKXtpZihlLnN0YXJ0c1dpdGgoXCJbXCIpJiZlLmVuZHNXaXRoKFwiXVwiKSl7dmFyIHQ9aShlLnNsaWNlKDEsLTEpKSxvPXQua2V5LHU9dC5vcHRpb25hbCxjPXQucmVwZWF0LHM9by5yZXBsYWNlKC9cXFcvZyxcIlwiKSxsPSExO3JldHVybigwPT09cy5sZW5ndGh8fHMubGVuZ3RoPjMwKSYmKGw9ITApLGlzTmFOKHBhcnNlSW50KHMuc2xpY2UoMCwxKSkpfHwobD0hMCksbCYmKHM9cigpKSxuW3NdPW8sYz91P1wiKD86Lyg/PFwiLmNvbmNhdChzLFwiPi4rPykpP1wiKTpcIi8oPzxcIi5jb25jYXQocyxcIj4uKz8pXCIpOlwiLyg/PFwiLmNvbmNhdChzLFwiPlteL10rPylcIil9cmV0dXJuXCIvXCIuY29uY2F0KGEuZXNjYXBlU3RyaW5nUmVnZXhwKGUpKX0pKS5qb2luKFwiXCIpLHJvdXRlS2V5czpufX19LDQzMjU4OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1yKDc5ODApLGE9cigzMzIyNyksbz1yKDg4MzYxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmdldFNvcnRlZFJvdXRlcz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgaTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5pbnNlcnQoZSl9KSksdC5zbW9vc2goKX07dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7YSh0aGlzLGUpLHRoaXMucGxhY2Vob2xkZXI9ITAsdGhpcy5jaGlsZHJlbj1uZXcgTWFwLHRoaXMuc2x1Z05hbWU9bnVsbCx0aGlzLnJlc3RTbHVnTmFtZT1udWxsLHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWU9bnVsbH1yZXR1cm4gbyhlLFt7a2V5OlwiaW5zZXJ0XCIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5faW5zZXJ0KGUuc3BsaXQoXCIvXCIpLmZpbHRlcihCb29sZWFuKSxbXSwhMSl9fSx7a2V5Olwic21vb3NoXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc21vb3NoKCl9fSx7a2V5OlwiX3Ntb29zaFwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpcIi9cIixyPW4odGhpcy5jaGlsZHJlbi5rZXlzKCkpLnNvcnQoKTtudWxsIT09dGhpcy5zbHVnTmFtZSYmci5zcGxpY2Uoci5pbmRleE9mKFwiW11cIiksMSksbnVsbCE9PXRoaXMucmVzdFNsdWdOYW1lJiZyLnNwbGljZShyLmluZGV4T2YoXCJbLi4uXVwiKSwxKSxudWxsIT09dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSYmci5zcGxpY2Uoci5pbmRleE9mKFwiW1suLi5dXVwiKSwxKTt2YXIgYT1yLm1hcCgoZnVuY3Rpb24ocil7cmV0dXJuIGUuY2hpbGRyZW4uZ2V0KHIpLl9zbW9vc2goXCJcIi5jb25jYXQodCkuY29uY2F0KHIsXCIvXCIpKX0pKS5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuW10uY29uY2F0KG4oZSksbih0KSl9KSxbXSk7aWYobnVsbCE9PXRoaXMuc2x1Z05hbWUmJmEucHVzaC5hcHBseShhLG4odGhpcy5jaGlsZHJlbi5nZXQoXCJbXVwiKS5fc21vb3NoKFwiXCIuY29uY2F0KHQsXCJbXCIpLmNvbmNhdCh0aGlzLnNsdWdOYW1lLFwiXS9cIikpKSksIXRoaXMucGxhY2Vob2xkZXIpe3ZhciBvPVwiL1wiPT09dD9cIi9cIjp0LnNsaWNlKDAsLTEpO2lmKG51bGwhPXRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUpdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IGRlZmluZSBhIHJvdXRlIHdpdGggdGhlIHNhbWUgc3BlY2lmaWNpdHkgYXMgYSBvcHRpb25hbCBjYXRjaC1hbGwgcm91dGUgKFwiJy5jb25jYXQobywnXCIgYW5kIFwiJykuY29uY2F0KG8sXCJbWy4uLlwiKS5jb25jYXQodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSwnXV1cIikuJykpO2EudW5zaGlmdChvKX1yZXR1cm4gbnVsbCE9PXRoaXMucmVzdFNsdWdOYW1lJiZhLnB1c2guYXBwbHkoYSxuKHRoaXMuY2hpbGRyZW4uZ2V0KFwiWy4uLl1cIikuX3Ntb29zaChcIlwiLmNvbmNhdCh0LFwiWy4uLlwiKS5jb25jYXQodGhpcy5yZXN0U2x1Z05hbWUsXCJdL1wiKSkpKSxudWxsIT09dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSYmYS5wdXNoLmFwcGx5KGEsbih0aGlzLmNoaWxkcmVuLmdldChcIltbLi4uXV1cIikuX3Ntb29zaChcIlwiLmNvbmNhdCh0LFwiW1suLi5cIikuY29uY2F0KHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsXCJdXS9cIikpKSksYX19LHtrZXk6XCJfaW5zZXJ0XCIsdmFsdWU6ZnVuY3Rpb24odCxyLG4pe2lmKDAhPT10Lmxlbmd0aCl7aWYobil0aHJvdyBuZXcgRXJyb3IoXCJDYXRjaC1hbGwgbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwuXCIpO3ZhciBhPXRbMF07aWYoYS5zdGFydHNXaXRoKFwiW1wiKSYmYS5lbmRzV2l0aChcIl1cIikpe3ZhciBvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9PWUmJmUhPT10KXRocm93IG5ldyBFcnJvcihcIllvdSBjYW5ub3QgdXNlIGRpZmZlcmVudCBzbHVnIG5hbWVzIGZvciB0aGUgc2FtZSBkeW5hbWljIHBhdGggKCdcIi5jb25jYXQoZSxcIicgIT09ICdcIikuY29uY2F0KHQsXCInKS5cIikpO3IuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZT09PXQpdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IGhhdmUgdGhlIHNhbWUgc2x1ZyBuYW1lIFwiJy5jb25jYXQodCwnXCIgcmVwZWF0IHdpdGhpbiBhIHNpbmdsZSBkeW5hbWljIHBhdGgnKSk7aWYoZS5yZXBsYWNlKC9cXFcvZyxcIlwiKT09PWEucmVwbGFjZSgvXFxXL2csXCJcIikpdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IGhhdmUgdGhlIHNsdWcgbmFtZXMgXCInLmNvbmNhdChlLCdcIiBhbmQgXCInKS5jb25jYXQodCwnXCIgZGlmZmVyIG9ubHkgYnkgbm9uLXdvcmQgc3ltYm9scyB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoJykpfSkpLHIucHVzaCh0KX0saT1hLnNsaWNlKDEsLTEpLHU9ITE7aWYoaS5zdGFydHNXaXRoKFwiW1wiKSYmaS5lbmRzV2l0aChcIl1cIikmJihpPWkuc2xpY2UoMSwtMSksdT0hMCksaS5zdGFydHNXaXRoKFwiLi4uXCIpJiYoaT1pLnN1YnN0cmluZygzKSxuPSEwKSxpLnN0YXJ0c1dpdGgoXCJbXCIpfHxpLmVuZHNXaXRoKFwiXVwiKSl0aHJvdyBuZXcgRXJyb3IoXCJTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggZXh0cmEgYnJhY2tldHMgKCdcIi5jb25jYXQoaSxcIicpLlwiKSk7aWYoaS5zdGFydHNXaXRoKFwiLlwiKSl0aHJvdyBuZXcgRXJyb3IoXCJTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgd2l0aCBlcnJvbmVvdXMgcGVyaW9kcyAoJ1wiLmNvbmNhdChpLFwiJykuXCIpKTtpZihuKWlmKHUpe2lmKG51bGwhPXRoaXMucmVzdFNsdWdOYW1lKXRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCB1c2UgYm90aCBhbiByZXF1aXJlZCBhbmQgb3B0aW9uYWwgY2F0Y2gtYWxsIHJvdXRlIGF0IHRoZSBzYW1lIGxldmVsIChcIlsuLi4nLmNvbmNhdCh0aGlzLnJlc3RTbHVnTmFtZSwnXVwiIGFuZCBcIicpLmNvbmNhdCh0WzBdLCdcIiApLicpKTtvKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsaSksdGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZT1pLGE9XCJbWy4uLl1dXCJ9ZWxzZXtpZihudWxsIT10aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lKXRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCB1c2UgYm90aCBhbiBvcHRpb25hbCBhbmQgcmVxdWlyZWQgY2F0Y2gtYWxsIHJvdXRlIGF0IHRoZSBzYW1lIGxldmVsIChcIltbLi4uJy5jb25jYXQodGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZSwnXV1cIiBhbmQgXCInKS5jb25jYXQodFswXSwnXCIpLicpKTtvKHRoaXMucmVzdFNsdWdOYW1lLGkpLHRoaXMucmVzdFNsdWdOYW1lPWksYT1cIlsuLi5dXCJ9ZWxzZXtpZih1KXRocm93IG5ldyBFcnJvcignT3B0aW9uYWwgcm91dGUgcGFyYW1ldGVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgKFwiJy5jb25jYXQodFswXSwnXCIpLicpKTtvKHRoaXMuc2x1Z05hbWUsaSksdGhpcy5zbHVnTmFtZT1pLGE9XCJbXVwifX10aGlzLmNoaWxkcmVuLmhhcyhhKXx8dGhpcy5jaGlsZHJlbi5zZXQoYSxuZXcgZSksdGhpcy5jaGlsZHJlbi5nZXQoYSkuX2luc2VydCh0LnNsaWNlKDEpLHIsbil9ZWxzZSB0aGlzLnBsYWNlaG9sZGVyPSExfX1dKSxlfSgpfSwzNjYxNjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciByO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuc2V0Q29uZmlnPWZ1bmN0aW9uKGUpe3I9ZX0sdC5kZWZhdWx0PXZvaWQgMDt0LmRlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gcn0sKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmRlZmF1bHR8fFwib2JqZWN0XCI9PT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB0LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksZS5leHBvcnRzPXQuZGVmYXVsdCl9LDk5NDc1OmZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1yKDg4MzYxKSxhPXIoMzMyMjcpLG89cig4NTk3MSksaT1yKDUyNzE1KSx1PXIoOTExOTMpLGM9cigzNjU1OCkscz1yKDg3Nzk0KTtmdW5jdGlvbiBsKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixuPXUoZSk7aWYodCl7dmFyIGE9dSh0aGlzKS5jb25zdHJ1Y3RvcjtyPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLGEpfWVsc2Ugcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaSh0aGlzLHIpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmV4ZWNPbmNlPWZ1bmN0aW9uKGUpe3ZhciB0LHI9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHJ8fChyPSEwLHQ9ZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSksdH19LHQuZ2V0TG9jYXRpb25PcmlnaW49cCx0LmdldFVSTD1mdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5sb2NhdGlvbi5ocmVmLHQ9cCgpO3JldHVybiBlLnN1YnN0cmluZyh0Lmxlbmd0aCl9LHQuZ2V0RGlzcGxheU5hbWU9aCx0LmlzUmVzU2VudD12LHQubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoXCI/XCIpO3JldHVybiB0WzBdLnJlcGxhY2UoL1xcXFwvZyxcIi9cIikucmVwbGFjZSgvXFwvXFwvKy9nLFwiL1wiKSsodFsxXT9cIj9cIi5jb25jYXQodC5zbGljZSgxKS5qb2luKFwiP1wiKSk6XCJcIil9LHQubG9hZEdldEluaXRpYWxQcm9wcz1tLHQuU1Q9dC5TUD10Lndhcm5PbmNlPXQuaXNBYnNvbHV0ZVVybD12b2lkIDA7dmFyIGY9cig2MDkzMikuWjt2YXIgZD0vXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi87ZnVuY3Rpb24gcCgpe3ZhciBlPXdpbmRvdy5sb2NhdGlvbix0PWUucHJvdG9jb2wscj1lLmhvc3RuYW1lLG49ZS5wb3J0O3JldHVyblwiXCIuY29uY2F0KHQsXCIvL1wiKS5jb25jYXQocikuY29uY2F0KG4/XCI6XCIrbjpcIlwiKX1mdW5jdGlvbiBoKGUpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgZT9lOmUuZGlzcGxheU5hbWV8fGUubmFtZXx8XCJVbmtub3duXCJ9ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5maW5pc2hlZHx8ZS5oZWFkZXJzU2VudH1mdW5jdGlvbiBtKGUsdCl7cmV0dXJuIHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHkoKXtyZXR1cm4oeT1mKHMubWFyaygoZnVuY3Rpb24gZSh0LHIpe3ZhciBuLGEsbztyZXR1cm4gcy53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDplLm5leHQ9NDticmVhaztjYXNlIDQ6aWYobj1yLnJlc3x8ci5jdHgmJnIuY3R4LnJlcyx0LmdldEluaXRpYWxQcm9wcyl7ZS5uZXh0PTEyO2JyZWFrfWlmKCFyLmN0eHx8IXIuQ29tcG9uZW50KXtlLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGUubmV4dD05LG0oci5Db21wb25lbnQsci5jdHgpO2Nhc2UgOTpyZXR1cm4gZS50MD1lLnNlbnQsZS5hYnJ1cHQoXCJyZXR1cm5cIix7cGFnZVByb3BzOmUudDB9KTtjYXNlIDExOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLHt9KTtjYXNlIDEyOnJldHVybiBlLm5leHQ9MTQsdC5nZXRJbml0aWFsUHJvcHMocik7Y2FzZSAxNDppZihhPWUuc2VudCwhbnx8IXYobikpe2UubmV4dD0xNzticmVha31yZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixhKTtjYXNlIDE3OmlmKGEpe2UubmV4dD0yMDticmVha310aHJvdyBvPSdcIicuY29uY2F0KGgodCksJy5nZXRJbml0aWFsUHJvcHMoKVwiIHNob3VsZCByZXNvbHZlIHRvIGFuIG9iamVjdC4gQnV0IGZvdW5kIFwiJykuY29uY2F0KGEsJ1wiIGluc3RlYWQuJyksbmV3IEVycm9yKG8pO2Nhc2UgMjA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsYSk7Y2FzZSAyMjpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5pc0Fic29sdXRlVXJsPWZ1bmN0aW9uKGUpe3JldHVybiBkLnRlc3QoZSl9O3ZhciBnPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgcGVyZm9ybWFuY2U7dC5TUD1nO3ZhciBiPWcmJltcIm1hcmtcIixcIm1lYXN1cmVcIixcImdldEVudHJpZXNCeU5hbWVcIl0uZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBwZXJmb3JtYW5jZVtlXX0pKTt0LlNUPWI7dmFyIF89ZnVuY3Rpb24oZSl7byhyLGUpO3ZhciB0PWwocik7ZnVuY3Rpb24gcigpe3JldHVybiBhKHRoaXMsciksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4ocil9KGMoRXJyb3IpKTt0LkRlY29kZUVycm9yPV87dmFyIHg9ZnVuY3Rpb24oZSl7byhyLGUpO3ZhciB0PWwocik7ZnVuY3Rpb24gcigpe3JldHVybiBhKHRoaXMsciksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4ocil9KGMoRXJyb3IpKTt0Lk5vcm1hbGl6ZUVycm9yPXg7dmFyIHc9ZnVuY3Rpb24oZSl7byhyLGUpO3ZhciB0PWwocik7ZnVuY3Rpb24gcihlKXt2YXIgbjtyZXR1cm4gYSh0aGlzLHIpLChuPXQuY2FsbCh0aGlzKSkuY29kZT1cIkVOT0VOVFwiLG4ubWVzc2FnZT1cIkNhbm5vdCBmaW5kIG1vZHVsZSBmb3IgcGFnZTogXCIuY29uY2F0KGUpLG59cmV0dXJuIG4ocil9KGMoRXJyb3IpKTt0LlBhZ2VOb3RGb3VuZEVycm9yPXc7dmFyIFA9ZnVuY3Rpb24oZSl7byhyLGUpO3ZhciB0PWwocik7ZnVuY3Rpb24gcihlLG4pe3ZhciBvO3JldHVybiBhKHRoaXMsciksKG89dC5jYWxsKHRoaXMpKS5tZXNzYWdlPVwiRmFpbGVkIHRvIGxvYWQgc3RhdGljIGZpbGUgZm9yIHBhZ2U6IFwiLmNvbmNhdChlLFwiIFwiKS5jb25jYXQobiksb31yZXR1cm4gbihyKX0oYyhFcnJvcikpO3QuTWlzc2luZ1N0YXRpY1BhZ2U9UDt2YXIgRT1mdW5jdGlvbihlKXtvKHIsZSk7dmFyIHQ9bChyKTtmdW5jdGlvbiByKCl7dmFyIGU7cmV0dXJuIGEodGhpcyxyKSwoZT10LmNhbGwodGhpcykpLmNvZGU9XCJFTk9FTlRcIixlLm1lc3NhZ2U9XCJDYW5ub3QgZmluZCB0aGUgbWlkZGxld2FyZSBtb2R1bGVcIixlfXJldHVybiBuKHIpfShjKEVycm9yKSk7dC5NaWRkbGV3YXJlTm90Rm91bmRFcnJvcj1FLHQud2Fybk9uY2U9ZnVuY3Rpb24oZSl7fX0sNDAwMzc6ZnVuY3Rpb24oKXtcInRyaW1TdGFydFwiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbVN0YXJ0PVN0cmluZy5wcm90b3R5cGUudHJpbUxlZnQpLFwidHJpbUVuZFwiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbUVuZD1TdHJpbmcucHJvdG90eXBlLnRyaW1SaWdodCksXCJkZXNjcmlwdGlvblwiaW4gU3ltYm9sLnByb3RvdHlwZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KFN5bWJvbC5wcm90b3R5cGUsXCJkZXNjcmlwdGlvblwiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIGU9L1xcKCguKilcXCkvLmV4ZWModGhpcy50b1N0cmluZygpKTtyZXR1cm4gZT9lWzFdOnZvaWQgMH19KSxBcnJheS5wcm90b3R5cGUuZmxhdHx8KEFycmF5LnByb3RvdHlwZS5mbGF0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dGhpcy5jb25jYXQuYXBwbHkoW10sdGhpcyksZT4xJiZ0LnNvbWUoQXJyYXkuaXNBcnJheSk/dC5mbGF0KGUtMSk6dH0sQXJyYXkucHJvdG90eXBlLmZsYXRNYXA9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tYXAoZSx0KS5mbGF0KCl9KSxQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5fHwoUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1mdW5jdGlvbihlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXJldHVybiB0aGlzLnRoZW4oZSxlKTt2YXIgdD10aGlzLmNvbnN0cnVjdG9yfHxQcm9taXNlO3JldHVybiB0aGlzLnRoZW4oKGZ1bmN0aW9uKHIpe3JldHVybiB0LnJlc29sdmUoZSgpKS50aGVuKChmdW5jdGlvbigpe3JldHVybiByfSkpfSksKGZ1bmN0aW9uKHIpe3JldHVybiB0LnJlc29sdmUoZSgpKS50aGVuKChmdW5jdGlvbigpe3Rocm93IHJ9KSl9KSl9KSxPYmplY3QuZnJvbUVudHJpZXN8fChPYmplY3QuZnJvbUVudHJpZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LmZyb20oZSkucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBlW3RbMF1dPXRbMV0sZX0pLHt9KX0pfSw5MDQ3OTpmdW5jdGlvbihlKXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheSh0KTtyPHQ7cisrKW5bcl09ZVtyXTtyZXR1cm4gbn0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSw3ODY5OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDY2Mjg5OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDkwNDc5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gbihlKX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSw5MjE5MTpmdW5jdGlvbihlKXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGV9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMH0sMzMyMjc6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSw3NDU3NzpmdW5jdGlvbihlLHQscil7dmFyIG49cig5ODgzKSxhPXIoMTEzNTIpO2Z1bmN0aW9uIG8odCxyLGkpe3JldHVybiBhKCk/KGUuZXhwb3J0cz1vPVJlZmxlY3QuY29uc3RydWN0LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCk6KGUuZXhwb3J0cz1vPWZ1bmN0aW9uKGUsdCxyKXt2YXIgYT1bbnVsbF07YS5wdXNoLmFwcGx5KGEsdCk7dmFyIG89bmV3KEZ1bmN0aW9uLmJpbmQuYXBwbHkoZSxhKSk7cmV0dXJuIHImJm4obyxyLnByb3RvdHlwZSksb30sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwKSxvLmFwcGx5KG51bGwsYXJndW1lbnRzKX1lLmV4cG9ydHM9byxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDg4MzYxOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbi5rZXksbil9fWUuZXhwb3J0cz1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHImJnQoZS5wcm90b3R5cGUsciksbiYmdChlLG4pLGV9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMH0sOTExOTM6ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyKXtyZXR1cm4gZS5leHBvcnRzPXQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQocil9ZS5leHBvcnRzPXQsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSw4NTk3MTpmdW5jdGlvbihlLHQscil7dmFyIG49cig5ODgzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiZuKGUsdCl9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMH0sNDMxNTI6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybi0xIT09RnVuY3Rpb24udG9TdHJpbmcuY2FsbChlKS5pbmRleE9mKFwiW25hdGl2ZSBjb2RlXVwiKX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSwxMTM1MjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDgwODY6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDM1OTU6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIHI9bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPXIpe3ZhciBuLGEsbz1bXSxpPSEwLHU9ITE7dHJ5e2ZvcihyPXIuY2FsbChlKTshKGk9KG49ci5uZXh0KCkpLmRvbmUpJiYoby5wdXNoKG4udmFsdWUpLCF0fHxvLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChjKXt1PSEwLGE9Y31maW5hbGx5e3RyeXtpfHxudWxsPT1yLnJldHVybnx8ci5yZXR1cm4oKX1maW5hbGx5e2lmKHUpdGhyb3cgYX19cmV0dXJuIG99fSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDI0ODE4OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMH0sMjY3NTQ6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMH0sNTI3MTU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTQwMjcpLmRlZmF1bHQsYT1yKDkyMTkxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZih0JiYoXCJvYmplY3RcIj09PW4odCl8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0KSlyZXR1cm4gdDtpZih2b2lkIDAhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gYShlKX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSw5ODgzOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocixuKXtyZXR1cm4gZS5leHBvcnRzPXQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCx0KHIsbil9ZS5leHBvcnRzPXQsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSw4NTY5NjpmdW5jdGlvbihlLHQscil7dmFyIG49cig3ODY5KSxhPXIoMzU5NSksbz1yKDUwNTgpLGk9cigyNDgxOCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4oZSl8fGEoZSx0KXx8byhlLHQpfHxpKCl9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMH0sOTg0MzQ6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNzg2OSksYT1yKDgwODYpLG89cig1MDU4KSxpPXIoMjQ4MTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbihlKXx8YShlKXx8byhlKXx8aSgpfSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDc5ODA6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNjYyODkpLGE9cig4MDg2KSxvPXIoNTA1OCksaT1yKDI2NzU0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSl8fGEoZSl8fG8oZSl8fGkoKX0sZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSwxNDAyNzpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yPyhlLmV4cG9ydHM9dD1mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9LGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCk6KGUuZXhwb3J0cz10PWZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITApLHQocil9ZS5leHBvcnRzPXQsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwfSw1MDU4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDkwNDc5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGUpcmV0dXJuIG4oZSx0KTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXJ8fFwiU2V0XCI9PT1yP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP24oZSx0KTp2b2lkIDB9fSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDM2NTU4OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDkxMTkzKSxhPXIoOTg4Myksbz1yKDQzMTUyKSxpPXIoNzQ1NzcpO2Z1bmN0aW9uIHUodCl7dmFyIHI9XCJmdW5jdGlvblwiPT09dHlwZW9mIE1hcD9uZXcgTWFwOnZvaWQgMDtyZXR1cm4gZS5leHBvcnRzPXU9ZnVuY3Rpb24oZSl7aWYobnVsbD09PWV8fCFvKGUpKXJldHVybiBlO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIHIpe2lmKHIuaGFzKGUpKXJldHVybiByLmdldChlKTtyLnNldChlLHQpfWZ1bmN0aW9uIHQoKXtyZXR1cm4gaShlLGFyZ3VtZW50cyxuKHRoaXMpLmNvbnN0cnVjdG9yKX1yZXR1cm4gdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksYSh0LGUpfSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdSh0KX1lLmV4cG9ydHM9dSxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITB9LDg3Nzk0OmZ1bmN0aW9uKGUsdCxyKXtlLmV4cG9ydHM9cigzNDA1MSl9LDc0MzI5OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcihlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTtmb3IodmFyIHI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9MDtyPGUubGVuZ3RoOyl7dmFyIG49ZVtyXTtpZihcIipcIiE9PW4mJlwiK1wiIT09biYmXCI/XCIhPT1uKWlmKFwiXFxcXFwiIT09bilpZihcIntcIiE9PW4paWYoXCJ9XCIhPT1uKWlmKFwiOlwiIT09bilpZihcIihcIiE9PW4pdC5wdXNoKHt0eXBlOlwiQ0hBUlwiLGluZGV4OnIsdmFsdWU6ZVtyKytdfSk7ZWxzZXt2YXIgYT0xLG89XCJcIjtpZihcIj9cIj09PWVbdT1yKzFdKXRocm93IG5ldyBUeXBlRXJyb3IoJ1BhdHRlcm4gY2Fubm90IHN0YXJ0IHdpdGggXCI/XCIgYXQgJyt1KTtmb3IoO3U8ZS5sZW5ndGg7KWlmKFwiXFxcXFwiIT09ZVt1XSl7aWYoXCIpXCI9PT1lW3VdKXtpZigwPT09LS1hKXt1Kys7YnJlYWt9fWVsc2UgaWYoXCIoXCI9PT1lW3VdJiYoYSsrLFwiP1wiIT09ZVt1KzFdKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2FwdHVyaW5nIGdyb3VwcyBhcmUgbm90IGFsbG93ZWQgYXQgXCIrdSk7bys9ZVt1KytdfWVsc2Ugbys9ZVt1KytdK2VbdSsrXTtpZihhKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmJhbGFuY2VkIHBhdHRlcm4gYXQgXCIrcik7aWYoIW8pdGhyb3cgbmV3IFR5cGVFcnJvcihcIk1pc3NpbmcgcGF0dGVybiBhdCBcIityKTt0LnB1c2goe3R5cGU6XCJQQVRURVJOXCIsaW5kZXg6cix2YWx1ZTpvfSkscj11fWVsc2V7Zm9yKHZhciBpPVwiXCIsdT1yKzE7dTxlLmxlbmd0aDspe3ZhciBjPWUuY2hhckNvZGVBdCh1KTtpZighKGM+PTQ4JiZjPD01N3x8Yz49NjUmJmM8PTkwfHxjPj05NyYmYzw9MTIyfHw5NT09PWMpKWJyZWFrO2krPWVbdSsrXX1pZighaSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBcIityKTt0LnB1c2goe3R5cGU6XCJOQU1FXCIsaW5kZXg6cix2YWx1ZTppfSkscj11fWVsc2UgdC5wdXNoKHt0eXBlOlwiQ0xPU0VcIixpbmRleDpyLHZhbHVlOmVbcisrXX0pO2Vsc2UgdC5wdXNoKHt0eXBlOlwiT1BFTlwiLGluZGV4OnIsdmFsdWU6ZVtyKytdfSk7ZWxzZSB0LnB1c2goe3R5cGU6XCJFU0NBUEVEX0NIQVJcIixpbmRleDpyKyssdmFsdWU6ZVtyKytdfSk7ZWxzZSB0LnB1c2goe3R5cGU6XCJNT0RJRklFUlwiLGluZGV4OnIsdmFsdWU6ZVtyKytdfSl9cmV0dXJuIHQucHVzaCh7dHlwZTpcIkVORFwiLGluZGV4OnIsdmFsdWU6XCJcIn0pLHR9KGUpLG49dC5wcmVmaXhlcyxhPXZvaWQgMD09PW4/XCIuL1wiOm4saT1cIlteXCIrbyh0LmRlbGltaXRlcnx8XCIvIz9cIikrXCJdKz9cIix1PVtdLGM9MCxzPTAsbD1cIlwiLGY9ZnVuY3Rpb24oZSl7aWYoczxyLmxlbmd0aCYmcltzXS50eXBlPT09ZSlyZXR1cm4gcltzKytdLnZhbHVlfSxkPWZ1bmN0aW9uKGUpe3ZhciB0PWYoZSk7aWYodm9pZCAwIT09dClyZXR1cm4gdDt2YXIgbj1yW3NdLGE9bi50eXBlLG89bi5pbmRleDt0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5leHBlY3RlZCBcIithK1wiIGF0IFwiK28rXCIsIGV4cGVjdGVkIFwiK2UpfSxwPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9XCJcIjtlPWYoXCJDSEFSXCIpfHxmKFwiRVNDQVBFRF9DSEFSXCIpOyl0Kz1lO3JldHVybiB0fTtzPHIubGVuZ3RoOyl7dmFyIGg9ZihcIkNIQVJcIiksdj1mKFwiTkFNRVwiKSxtPWYoXCJQQVRURVJOXCIpO2lmKHZ8fG0pe3ZhciB5PWh8fFwiXCI7LTE9PT1hLmluZGV4T2YoeSkmJihsKz15LHk9XCJcIiksbCYmKHUucHVzaChsKSxsPVwiXCIpLHUucHVzaCh7bmFtZTp2fHxjKysscHJlZml4Onksc3VmZml4OlwiXCIscGF0dGVybjptfHxpLG1vZGlmaWVyOmYoXCJNT0RJRklFUlwiKXx8XCJcIn0pfWVsc2V7dmFyIGc9aHx8ZihcIkVTQ0FQRURfQ0hBUlwiKTtpZihnKWwrPWc7ZWxzZSBpZihsJiYodS5wdXNoKGwpLGw9XCJcIiksZihcIk9QRU5cIikpe3k9cCgpO3ZhciBiPWYoXCJOQU1FXCIpfHxcIlwiLF89ZihcIlBBVFRFUk5cIil8fFwiXCIseD1wKCk7ZChcIkNMT1NFXCIpLHUucHVzaCh7bmFtZTpifHwoXz9jKys6XCJcIikscGF0dGVybjpiJiYhXz9pOl8scHJlZml4Onksc3VmZml4OngsbW9kaWZpZXI6ZihcIk1PRElGSUVSXCIpfHxcIlwifSl9ZWxzZSBkKFwiRU5EXCIpfX1yZXR1cm4gdX1mdW5jdGlvbiBuKGUsdCl7dm9pZCAwPT09dCYmKHQ9e30pO3ZhciByPWkodCksbj10LmVuY29kZSxhPXZvaWQgMD09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuIGV9Om4sbz10LnZhbGlkYXRlLHU9dm9pZCAwPT09b3x8byxjPWUubWFwKChmdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT09dHlwZW9mIGUpcmV0dXJuIG5ldyBSZWdFeHAoXCJeKD86XCIrZS5wYXR0ZXJuK1wiKSRcIixyKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciByPVwiXCIsbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgbz1lW25dO2lmKFwic3RyaW5nXCIhPT10eXBlb2Ygbyl7dmFyIGk9dD90W28ubmFtZV06dm9pZCAwLHM9XCI/XCI9PT1vLm1vZGlmaWVyfHxcIipcIj09PW8ubW9kaWZpZXIsbD1cIipcIj09PW8ubW9kaWZpZXJ8fFwiK1wiPT09by5tb2RpZmllcjtpZihBcnJheS5pc0FycmF5KGkpKXtpZighbCl0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBcIicrby5uYW1lKydcIiB0byBub3QgcmVwZWF0LCBidXQgZ290IGFuIGFycmF5Jyk7aWYoMD09PWkubGVuZ3RoKXtpZihzKWNvbnRpbnVlO3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFwiJytvLm5hbWUrJ1wiIHRvIG5vdCBiZSBlbXB0eScpfWZvcih2YXIgZj0wO2Y8aS5sZW5ndGg7ZisrKXt2YXIgZD1hKGlbZl0sbyk7aWYodSYmIWNbbl0udGVzdChkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBhbGwgXCInK28ubmFtZSsnXCIgdG8gbWF0Y2ggXCInK28ucGF0dGVybisnXCIsIGJ1dCBnb3QgXCInK2QrJ1wiJyk7cis9by5wcmVmaXgrZCtvLnN1ZmZpeH19ZWxzZSBpZihcInN0cmluZ1wiIT09dHlwZW9mIGkmJlwibnVtYmVyXCIhPT10eXBlb2YgaSl7aWYoIXMpe3ZhciBwPWw/XCJhbiBhcnJheVwiOlwiYSBzdHJpbmdcIjt0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBcIicrby5uYW1lKydcIiB0byBiZSAnK3ApfX1lbHNle2Q9YShTdHJpbmcoaSksbyk7aWYodSYmIWNbbl0udGVzdChkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBcIicrby5uYW1lKydcIiB0byBtYXRjaCBcIicrby5wYXR0ZXJuKydcIiwgYnV0IGdvdCBcIicrZCsnXCInKTtyKz1vLnByZWZpeCtkK28uc3VmZml4fX1lbHNlIHIrPW99cmV0dXJuIHJ9fWZ1bmN0aW9uIGEoZSx0LHIpe3ZvaWQgMD09PXImJihyPXt9KTt2YXIgbj1yLmRlY29kZSxhPXZvaWQgMD09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuIGV9Om47cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPWUuZXhlYyhyKTtpZighbilyZXR1cm4hMTtmb3IodmFyIG89blswXSxpPW4uaW5kZXgsdT1PYmplY3QuY3JlYXRlKG51bGwpLGM9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09bltlXSlyZXR1cm5cImNvbnRpbnVlXCI7dmFyIHI9dFtlLTFdO1wiKlwiPT09ci5tb2RpZmllcnx8XCIrXCI9PT1yLm1vZGlmaWVyP3Vbci5uYW1lXT1uW2VdLnNwbGl0KHIucHJlZml4K3Iuc3VmZml4KS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBhKGUscil9KSk6dVtyLm5hbWVdPWEobltlXSxyKX0scz0xO3M8bi5sZW5ndGg7cysrKWMocyk7cmV0dXJue3BhdGg6byxpbmRleDppLHBhcmFtczp1fX19ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5yZXBsYWNlKC8oWy4rKj89XiE6JHt9KClbXFxdfC9cXFxcXSkvZyxcIlxcXFwkMVwiKX1mdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLnNlbnNpdGl2ZT9cIlwiOlwiaVwifWZ1bmN0aW9uIHUoZSx0LHIpe3ZvaWQgMD09PXImJihyPXt9KTtmb3IodmFyIG49ci5zdHJpY3QsYT12b2lkIDAhPT1uJiZuLHU9ci5zdGFydCxjPXZvaWQgMD09PXV8fHUscz1yLmVuZCxsPXZvaWQgMD09PXN8fHMsZj1yLmVuY29kZSxkPXZvaWQgMD09PWY/ZnVuY3Rpb24oZSl7cmV0dXJuIGV9OmYscD1cIltcIitvKHIuZW5kc1dpdGh8fFwiXCIpK1wiXXwkXCIsaD1cIltcIitvKHIuZGVsaW1pdGVyfHxcIi8jP1wiKStcIl1cIix2PWM/XCJeXCI6XCJcIixtPTAseT1lO208eS5sZW5ndGg7bSsrKXt2YXIgZz15W21dO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZyl2Kz1vKGQoZykpO2Vsc2V7dmFyIGI9byhkKGcucHJlZml4KSksXz1vKGQoZy5zdWZmaXgpKTtpZihnLnBhdHRlcm4paWYodCYmdC5wdXNoKGcpLGJ8fF8paWYoXCIrXCI9PT1nLm1vZGlmaWVyfHxcIipcIj09PWcubW9kaWZpZXIpe3ZhciB4PVwiKlwiPT09Zy5tb2RpZmllcj9cIj9cIjpcIlwiO3YrPVwiKD86XCIrYitcIigoPzpcIitnLnBhdHRlcm4rXCIpKD86XCIrXytiK1wiKD86XCIrZy5wYXR0ZXJuK1wiKSkqKVwiK18rXCIpXCIreH1lbHNlIHYrPVwiKD86XCIrYitcIihcIitnLnBhdHRlcm4rXCIpXCIrXytcIilcIitnLm1vZGlmaWVyO2Vsc2Ugdis9XCIoXCIrZy5wYXR0ZXJuK1wiKVwiK2cubW9kaWZpZXI7ZWxzZSB2Kz1cIig/OlwiK2IrXytcIilcIitnLm1vZGlmaWVyfX1pZihsKWF8fCh2Kz1oK1wiP1wiKSx2Kz1yLmVuZHNXaXRoP1wiKD89XCIrcCtcIilcIjpcIiRcIjtlbHNle3ZhciB3PWVbZS5sZW5ndGgtMV0sUD1cInN0cmluZ1wiPT09dHlwZW9mIHc/aC5pbmRleE9mKHdbdy5sZW5ndGgtMV0pPi0xOnZvaWQgMD09PXc7YXx8KHYrPVwiKD86XCIraCtcIig/PVwiK3ArXCIpKT9cIiksUHx8KHYrPVwiKD89XCIraCtcInxcIitwK1wiKVwiKX1yZXR1cm4gbmV3IFJlZ0V4cCh2LGkocikpfWZ1bmN0aW9uIGMoZSx0LG4pe3JldHVybiBlIGluc3RhbmNlb2YgUmVnRXhwP2Z1bmN0aW9uKGUsdCl7aWYoIXQpcmV0dXJuIGU7dmFyIHI9ZS5zb3VyY2UubWF0Y2goL1xcKCg/IVxcPykvZyk7aWYocilmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0LnB1c2goe25hbWU6bixwcmVmaXg6XCJcIixzdWZmaXg6XCJcIixtb2RpZmllcjpcIlwiLHBhdHRlcm46XCJcIn0pO3JldHVybiBlfShlLHQpOkFycmF5LmlzQXJyYXkoZSk/ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gYyhlLHQscikuc291cmNlfSkpO3JldHVybiBuZXcgUmVnRXhwKFwiKD86XCIrbi5qb2luKFwifFwiKStcIilcIixpKHIpKX0oZSx0LG4pOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdShyKGUsbiksdCxuKX0oZSx0LG4pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucGFyc2U9cix0LmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbihyKGUsdCksdCl9LHQudG9rZW5zVG9GdW5jdGlvbj1uLHQubWF0Y2g9ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXTtyZXR1cm4gYShjKGUscix0KSxyLHQpfSx0LnJlZ2V4cFRvRnVuY3Rpb249YSx0LnRva2Vuc1RvUmVnZXhwPXUsdC5wYXRoVG9SZWdleHA9Y30sMzQwNTE6ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHQscj1PYmplY3QucHJvdG90eXBlLG49ci5oYXNPd25Qcm9wZXJ0eSxhPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LG89YS5pdGVyYXRvcnx8XCJAQGl0ZXJhdG9yXCIsaT1hLmFzeW5jSXRlcmF0b3J8fFwiQEBhc3luY0l0ZXJhdG9yXCIsdT1hLnRvU3RyaW5nVGFnfHxcIkBAdG9TdHJpbmdUYWdcIjtmdW5jdGlvbiBjKGUsdCxyLG4pe3ZhciBhPXQmJnQucHJvdG90eXBlIGluc3RhbmNlb2Ygdj90OnYsbz1PYmplY3QuY3JlYXRlKGEucHJvdG90eXBlKSxpPW5ldyBqKG58fFtdKTtyZXR1cm4gby5faW52b2tlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1sO3JldHVybiBmdW5jdGlvbihhLG8pe2lmKG49PT1kKXRocm93IG5ldyBFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7aWYobj09PXApe2lmKFwidGhyb3dcIj09PWEpdGhyb3cgbztyZXR1cm4gaygpfWZvcihyLm1ldGhvZD1hLHIuYXJnPW87Oyl7dmFyIGk9ci5kZWxlZ2F0ZTtpZihpKXt2YXIgdT1FKGkscik7aWYodSl7aWYodT09PWgpY29udGludWU7cmV0dXJuIHV9fWlmKFwibmV4dFwiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZihcInRocm93XCI9PT1yLm1ldGhvZCl7aWYobj09PWwpdGhyb3cgbj1wLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2VcInJldHVyblwiPT09ci5tZXRob2QmJnIuYWJydXB0KFwicmV0dXJuXCIsci5hcmcpO249ZDt2YXIgYz1zKGUsdCxyKTtpZihcIm5vcm1hbFwiPT09Yy50eXBlKXtpZihuPXIuZG9uZT9wOmYsYy5hcmc9PT1oKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19XCJ0aHJvd1wiPT09Yy50eXBlJiYobj1wLHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1jLmFyZyl9fX0oZSxyLGkpLG99ZnVuY3Rpb24gcyhlLHQscil7dHJ5e3JldHVybnt0eXBlOlwibm9ybWFsXCIsYXJnOmUuY2FsbCh0LHIpfX1jYXRjaChuKXtyZXR1cm57dHlwZTpcInRocm93XCIsYXJnOm59fX1lLndyYXA9Yzt2YXIgbD1cInN1c3BlbmRlZFN0YXJ0XCIsZj1cInN1c3BlbmRlZFlpZWxkXCIsZD1cImV4ZWN1dGluZ1wiLHA9XCJjb21wbGV0ZWRcIixoPXt9O2Z1bmN0aW9uIHYoKXt9ZnVuY3Rpb24gbSgpe31mdW5jdGlvbiB5KCl7fXZhciBnPXt9O2dbb109ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIGI9T2JqZWN0LmdldFByb3RvdHlwZU9mLF89YiYmYihiKFIoW10pKSk7XyYmXyE9PXImJm4uY2FsbChfLG8pJiYoZz1fKTt2YXIgeD15LnByb3RvdHlwZT12LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcpO2Z1bmN0aW9uIHcoZSl7W1wibmV4dFwiLFwidGhyb3dcIixcInJldHVyblwiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbnZva2UodCxlKX19KSl9ZnVuY3Rpb24gUChlLHQpe2Z1bmN0aW9uIHIoYSxvLGksdSl7dmFyIGM9cyhlW2FdLGUsbyk7aWYoXCJ0aHJvd1wiIT09Yy50eXBlKXt2YXIgbD1jLmFyZyxmPWwudmFsdWU7cmV0dXJuIGYmJlwib2JqZWN0XCI9PT10eXBlb2YgZiYmbi5jYWxsKGYsXCJfX2F3YWl0XCIpP3QucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKGUpe3IoXCJuZXh0XCIsZSxpLHUpfSksKGZ1bmN0aW9uKGUpe3IoXCJ0aHJvd1wiLGUsaSx1KX0pKTp0LnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24oZSl7bC52YWx1ZT1lLGkobCl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIHIoXCJ0aHJvd1wiLGUsaSx1KX0pKX11KGMuYXJnKX12YXIgYTt0aGlzLl9pbnZva2U9ZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyB0KChmdW5jdGlvbih0LGEpe3IoZSxuLHQsYSl9KSl9cmV0dXJuIGE9YT9hLnRoZW4obyxvKTpvKCl9fWZ1bmN0aW9uIEUoZSxyKXt2YXIgbj1lLml0ZXJhdG9yW3IubWV0aG9kXTtpZihuPT09dCl7aWYoci5kZWxlZ2F0ZT1udWxsLFwidGhyb3dcIj09PXIubWV0aG9kKXtpZihlLml0ZXJhdG9yLnJldHVybiYmKHIubWV0aG9kPVwicmV0dXJuXCIsci5hcmc9dCxFKGUsciksXCJ0aHJvd1wiPT09ci5tZXRob2QpKXJldHVybiBoO3IubWV0aG9kPVwidGhyb3dcIixyLmFyZz1uZXcgVHlwZUVycm9yKFwiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZFwiKX1yZXR1cm4gaH12YXIgYT1zKG4sZS5pdGVyYXRvcixyLmFyZyk7aWYoXCJ0aHJvd1wiPT09YS50eXBlKXJldHVybiByLm1ldGhvZD1cInRocm93XCIsci5hcmc9YS5hcmcsci5kZWxlZ2F0ZT1udWxsLGg7dmFyIG89YS5hcmc7cmV0dXJuIG8/by5kb25lPyhyW2UucmVzdWx0TmFtZV09by52YWx1ZSxyLm5leHQ9ZS5uZXh0TG9jLFwicmV0dXJuXCIhPT1yLm1ldGhvZCYmKHIubWV0aG9kPVwibmV4dFwiLHIuYXJnPXQpLHIuZGVsZWdhdGU9bnVsbCxoKTpvOihyLm1ldGhvZD1cInRocm93XCIsci5hcmc9bmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLHIuZGVsZWdhdGU9bnVsbCxoKX1mdW5jdGlvbiBTKGUpe3ZhciB0PXt0cnlMb2M6ZVswXX07MSBpbiBlJiYodC5jYXRjaExvYz1lWzFdKSwyIGluIGUmJih0LmZpbmFsbHlMb2M9ZVsyXSx0LmFmdGVyTG9jPWVbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKHQpfWZ1bmN0aW9uIE8oZSl7dmFyIHQ9ZS5jb21wbGV0aW9ufHx7fTt0LnR5cGU9XCJub3JtYWxcIixkZWxldGUgdC5hcmcsZS5jb21wbGV0aW9uPXR9ZnVuY3Rpb24gaihlKXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6XCJyb290XCJ9XSxlLmZvckVhY2goUyx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBSKGUpe2lmKGUpe3ZhciByPWVbb107aWYocilyZXR1cm4gci5jYWxsKGUpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIGE9LTEsaT1mdW5jdGlvbiByKCl7Zm9yKDsrK2E8ZS5sZW5ndGg7KWlmKG4uY2FsbChlLGEpKXJldHVybiByLnZhbHVlPWVbYV0sci5kb25lPSExLHI7cmV0dXJuIHIudmFsdWU9dCxyLmRvbmU9ITAscn07cmV0dXJuIGkubmV4dD1pfX1yZXR1cm57bmV4dDprfX1mdW5jdGlvbiBrKCl7cmV0dXJue3ZhbHVlOnQsZG9uZTohMH19cmV0dXJuIG0ucHJvdG90eXBlPXguY29uc3RydWN0b3I9eSx5LmNvbnN0cnVjdG9yPW0seVt1XT1tLmRpc3BsYXlOYW1lPVwiR2VuZXJhdG9yRnVuY3Rpb25cIixlLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQ9XCJmdW5jdGlvblwiPT09dHlwZW9mIGUmJmUuY29uc3RydWN0b3I7cmV0dXJuISF0JiYodD09PW18fFwiR2VuZXJhdG9yRnVuY3Rpb25cIj09PSh0LmRpc3BsYXlOYW1lfHx0Lm5hbWUpKX0sZS5tYXJrPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUseSk6KGUuX19wcm90b19fPXksdSBpbiBlfHwoZVt1XT1cIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHgpLGV9LGUuYXdyYXA9ZnVuY3Rpb24oZSl7cmV0dXJue19fYXdhaXQ6ZX19LHcoUC5wcm90b3R5cGUpLFAucHJvdG90eXBlW2ldPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGUuQXN5bmNJdGVyYXRvcj1QLGUuYXN5bmM9ZnVuY3Rpb24odCxyLG4sYSxvKXt2b2lkIDA9PT1vJiYobz1Qcm9taXNlKTt2YXIgaT1uZXcgUChjKHQscixuLGEpLG8pO3JldHVybiBlLmlzR2VuZXJhdG9yRnVuY3Rpb24ocik/aTppLm5leHQoKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5kb25lP2UudmFsdWU6aS5uZXh0KCl9KSl9LHcoeCkseFt1XT1cIkdlbmVyYXRvclwiLHhbb109ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30seC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiW29iamVjdCBHZW5lcmF0b3JdXCJ9LGUua2V5cz1mdW5jdGlvbihlKXt2YXIgdD1bXTtmb3IodmFyIHIgaW4gZSl0LnB1c2gocik7cmV0dXJuIHQucmV2ZXJzZSgpLGZ1bmN0aW9uIHIoKXtmb3IoO3QubGVuZ3RoOyl7dmFyIG49dC5wb3AoKTtpZihuIGluIGUpcmV0dXJuIHIudmFsdWU9bixyLmRvbmU9ITEscn1yZXR1cm4gci5kb25lPSEwLHJ9fSxlLnZhbHVlcz1SLGoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpqLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXQsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD1cIm5leHRcIix0aGlzLmFyZz10LHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKE8pLCFlKWZvcih2YXIgciBpbiB0aGlzKVwidFwiPT09ci5jaGFyQXQoMCkmJm4uY2FsbCh0aGlzLHIpJiYhaXNOYU4oK3Iuc2xpY2UoMSkpJiYodGhpc1tyXT10KX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgZT10aGlzLnRyeUVudHJpZXNbMF0uY29tcGxldGlvbjtpZihcInRocm93XCI9PT1lLnR5cGUpdGhyb3cgZS5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIHI9dGhpcztmdW5jdGlvbiBhKG4sYSl7cmV0dXJuIHUudHlwZT1cInRocm93XCIsdS5hcmc9ZSxyLm5leHQ9bixhJiYoci5tZXRob2Q9XCJuZXh0XCIsci5hcmc9dCksISFhfWZvcih2YXIgbz10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bz49MDstLW8pe3ZhciBpPXRoaXMudHJ5RW50cmllc1tvXSx1PWkuY29tcGxldGlvbjtpZihcInJvb3RcIj09PWkudHJ5TG9jKXJldHVybiBhKFwiZW5kXCIpO2lmKGkudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBjPW4uY2FsbChpLFwiY2F0Y2hMb2NcIikscz1uLmNhbGwoaSxcImZpbmFsbHlMb2NcIik7aWYoYyYmcyl7aWYodGhpcy5wcmV2PGkuY2F0Y2hMb2MpcmV0dXJuIGEoaS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGkuZmluYWxseUxvYylyZXR1cm4gYShpLmZpbmFsbHlMb2MpfWVsc2UgaWYoYyl7aWYodGhpcy5wcmV2PGkuY2F0Y2hMb2MpcmV0dXJuIGEoaS5jYXRjaExvYywhMCl9ZWxzZXtpZighcyl0aHJvdyBuZXcgRXJyb3IoXCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseVwiKTtpZih0aGlzLnByZXY8aS5maW5hbGx5TG9jKXJldHVybiBhKGkuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7cj49MDstLXIpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tyXTtpZihhLnRyeUxvYzw9dGhpcy5wcmV2JiZuLmNhbGwoYSxcImZpbmFsbHlMb2NcIikmJnRoaXMucHJldjxhLmZpbmFsbHlMb2Mpe3ZhciBvPWE7YnJlYWt9fW8mJihcImJyZWFrXCI9PT1lfHxcImNvbnRpbnVlXCI9PT1lKSYmby50cnlMb2M8PXQmJnQ8PW8uZmluYWxseUxvYyYmKG89bnVsbCk7dmFyIGk9bz9vLmNvbXBsZXRpb246e307cmV0dXJuIGkudHlwZT1lLGkuYXJnPXQsbz8odGhpcy5tZXRob2Q9XCJuZXh0XCIsdGhpcy5uZXh0PW8uZmluYWxseUxvYyxoKTp0aGlzLmNvbXBsZXRlKGkpfSxjb21wbGV0ZTpmdW5jdGlvbihlLHQpe2lmKFwidGhyb3dcIj09PWUudHlwZSl0aHJvdyBlLmFyZztyZXR1cm5cImJyZWFrXCI9PT1lLnR5cGV8fFwiY29udGludWVcIj09PWUudHlwZT90aGlzLm5leHQ9ZS5hcmc6XCJyZXR1cm5cIj09PWUudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPWUuYXJnLHRoaXMubWV0aG9kPVwicmV0dXJuXCIsdGhpcy5uZXh0PVwiZW5kXCIpOlwibm9ybWFsXCI9PT1lLnR5cGUmJnQmJih0aGlzLm5leHQ9dCksaH0sZmluaXNoOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7dD49MDstLXQpe3ZhciByPXRoaXMudHJ5RW50cmllc1t0XTtpZihyLmZpbmFsbHlMb2M9PT1lKXJldHVybiB0aGlzLmNvbXBsZXRlKHIuY29tcGxldGlvbixyLmFmdGVyTG9jKSxPKHIpLGh9fSxjYXRjaDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO3Q+PTA7LS10KXt2YXIgcj10aGlzLnRyeUVudHJpZXNbdF07aWYoci50cnlMb2M9PT1lKXt2YXIgbj1yLmNvbXBsZXRpb247aWYoXCJ0aHJvd1wiPT09bi50eXBlKXt2YXIgYT1uLmFyZztPKHIpfXJldHVybiBhfX10aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpSKGUpLHJlc3VsdE5hbWU6cixuZXh0TG9jOm59LFwibmV4dFwiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz10KSxofX0sZX0oZS5leHBvcnRzKTt0cnl7cmVnZW5lcmF0b3JSdW50aW1lPXR9Y2F0Y2gocil7RnVuY3Rpb24oXCJyXCIsXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHQpfX0sNzgwMTg6ZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHQ9e2Q6ZnVuY3Rpb24oZSxyKXtmb3IodmFyIG4gaW4gcil0Lm8ocixuKSYmIXQubyhlLG4pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOiEwLGdldDpyW25dfSl9LG86ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9LHI6ZnVuY3Rpb24oZSl7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9fTtcInVuZGVmaW5lZFwiIT09dHlwZW9mIHQmJih0LmFiPVwiLy9cIik7dmFyIHI9e307dC5yKHIpLHQuZChyLHtnZXRDTFM6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sZ2V0RkNQOmZ1bmN0aW9uKCl7cmV0dXJuIF99LGdldEZJRDpmdW5jdGlvbigpe3JldHVybiBNfSxnZXRJTlA6ZnVuY3Rpb24oKXtyZXR1cm4gSH0sZ2V0TENQOmZ1bmN0aW9uKCl7cmV0dXJuIFd9LGdldFRURkI6ZnVuY3Rpb24oKXtyZXR1cm4gR30sb25DTFM6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sb25GQ1A6ZnVuY3Rpb24oKXtyZXR1cm4gX30sb25GSUQ6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sb25JTlA6ZnVuY3Rpb24oKXtyZXR1cm4gSH0sb25MQ1A6ZnVuY3Rpb24oKXtyZXR1cm4gV30sb25UVEZCOmZ1bmN0aW9uKCl7cmV0dXJuIEd9fSk7dmFyIG4sYSxvLGksdSxjPS0xLHM9ZnVuY3Rpb24oZSl7YWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VzaG93XCIsKGZ1bmN0aW9uKHQpe3QucGVyc2lzdGVkJiYoYz10LnRpbWVTdGFtcCxlKHQpKX0pLCEwKX0sbD1mdW5jdGlvbigpe3JldHVybiB3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUmJnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoXCJuYXZpZ2F0aW9uXCIpWzBdfSxmPWZ1bmN0aW9uKCl7dmFyIGU9bCgpO3JldHVybiBlJiZlLmFjdGl2YXRpb25TdGFydHx8MH0sZD1mdW5jdGlvbihlLHQpe3ZhciByPWwoKSxuPVwibmF2aWdhdGVcIjtyZXR1cm4gYz49MD9uPVwiYmFjay1mb3J3YXJkLWNhY2hlXCI6ciYmKG49ZG9jdW1lbnQucHJlcmVuZGVyaW5nfHxmKCk+MD9cInByZXJlbmRlclwiOnIudHlwZS5yZXBsYWNlKC9fL2csXCItXCIpKSx7bmFtZTplLHZhbHVlOnZvaWQgMD09PXQ/LTE6dCxyYXRpbmc6XCJnb29kXCIsZGVsdGE6MCxlbnRyaWVzOltdLGlkOlwidjMtXCIuY29uY2F0KERhdGUubm93KCksXCItXCIpLmNvbmNhdChNYXRoLmZsb29yKDg5OTk5OTk5OTk5OTkqTWF0aC5yYW5kb20oKSkrMWUxMiksbmF2aWdhdGlvblR5cGU6bn19LHA9ZnVuY3Rpb24oZSx0LHIpe3RyeXtpZihQZXJmb3JtYW5jZU9ic2VydmVyLnN1cHBvcnRlZEVudHJ5VHlwZXMuaW5jbHVkZXMoZSkpe3ZhciBuPW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKChmdW5jdGlvbihlKXt0KGUuZ2V0RW50cmllcygpKX0pKTtyZXR1cm4gbi5vYnNlcnZlKE9iamVjdC5hc3NpZ24oe3R5cGU6ZSxidWZmZXJlZDohMH0scnx8e30pKSxufX1jYXRjaChlKXt9fSxoPWZ1bmN0aW9uKGUsdCl7dmFyIHI9ZnVuY3Rpb24gcihuKXtcInBhZ2VoaWRlXCIhPT1uLnR5cGUmJlwiaGlkZGVuXCIhPT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fChlKG4pLHQmJihyZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLHIsITApLHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLHIsITApKSl9O2FkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsciwhMCksYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsciwhMCl9LHY9ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGEsbztyZXR1cm4gZnVuY3Rpb24oaSl7dC52YWx1ZT49MCYmKGl8fG4pJiYoKG89dC52YWx1ZS0oYXx8MCkpfHx2b2lkIDA9PT1hKSYmKGE9dC52YWx1ZSx0LmRlbHRhPW8sdC5yYXRpbmc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT50WzFdP1wicG9vclwiOmU+dFswXT9cIm5lZWRzLWltcHJvdmVtZW50XCI6XCJnb29kXCJ9KHQudmFsdWUsciksZSh0KSl9fSxtPS0xLHk9ZnVuY3Rpb24oKXtyZXR1cm5cImhpZGRlblwiIT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlfHxkb2N1bWVudC5wcmVyZW5kZXJpbmc/MS8wOjB9LGc9ZnVuY3Rpb24oKXtoKChmdW5jdGlvbihlKXt2YXIgdD1lLnRpbWVTdGFtcDttPXR9KSwhMCl9LGI9ZnVuY3Rpb24oKXtyZXR1cm4gbTwwJiYobT15KCksZygpLHMoKGZ1bmN0aW9uKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXttPXkoKSxnKCl9KSwwKX0pKSkse2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gbX19fSxfPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgcixuPVsxODAwLDNlM10sYT1iKCksbz1kKFwiRkNQXCIpLGk9ZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtcImZpcnN0LWNvbnRlbnRmdWwtcGFpbnRcIj09PWUubmFtZSYmKGMmJmMuZGlzY29ubmVjdCgpLGUuc3RhcnRUaW1lPGEuZmlyc3RIaWRkZW5UaW1lJiYoby52YWx1ZT1lLnN0YXJ0VGltZS1mKCksby5lbnRyaWVzLnB1c2goZSkscighMCkpKX0pKX0sdT13aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lJiZ3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShcImZpcnN0LWNvbnRlbnRmdWwtcGFpbnRcIilbMF0sYz11P251bGw6cChcInBhaW50XCIsaSk7KHV8fGMpJiYocj12KGUsbyxuLHQucmVwb3J0QWxsQ2hhbmdlcyksdSYmaShbdV0pLHMoKGZ1bmN0aW9uKGEpe289ZChcIkZDUFwiKSxyPXYoZSxvLG4sdC5yZXBvcnRBbGxDaGFuZ2VzKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe28udmFsdWU9cGVyZm9ybWFuY2Uubm93KCktYS50aW1lU3RhbXAscighMCl9KSl9KSl9KSkpfSx4PSExLHc9LTEsUD1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIHI9Wy4xLC4yNV07eHx8KF8oKGZ1bmN0aW9uKGUpe3c9ZS52YWx1ZX0pKSx4PSEwKTt2YXIgbixhPWZ1bmN0aW9uKHQpe3c+LTEmJmUodCl9LG89ZChcIkNMU1wiLDApLGk9MCx1PVtdLGM9ZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZighZS5oYWRSZWNlbnRJbnB1dCl7dmFyIHQ9dVswXSxyPXVbdS5sZW5ndGgtMV07aSYmZS5zdGFydFRpbWUtci5zdGFydFRpbWU8MWUzJiZlLnN0YXJ0VGltZS10LnN0YXJ0VGltZTw1ZTM/KGkrPWUudmFsdWUsdS5wdXNoKGUpKTooaT1lLnZhbHVlLHU9W2VdKSxpPm8udmFsdWUmJihvLnZhbHVlPWksby5lbnRyaWVzPXUsbigpKX19KSl9LGw9cChcImxheW91dC1zaGlmdFwiLGMpO2wmJihuPXYoYSxvLHIsdC5yZXBvcnRBbGxDaGFuZ2VzKSxoKChmdW5jdGlvbigpe2MobC50YWtlUmVjb3JkcygpKSxuKCEwKX0pKSxzKChmdW5jdGlvbigpe2k9MCx3PS0xLG89ZChcIkNMU1wiLDApLG49dihhLG8scix0LnJlcG9ydEFsbENoYW5nZXMpfSkpKX0sRT17cGFzc2l2ZTohMCxjYXB0dXJlOiEwfSxTPW5ldyBEYXRlLE89ZnVuY3Rpb24oZSx0KXtufHwobj10LGE9ZSxvPW5ldyBEYXRlLGsocmVtb3ZlRXZlbnRMaXN0ZW5lciksaigpKX0saj1mdW5jdGlvbigpe2lmKGE+PTAmJmE8by1TKXt2YXIgZT17ZW50cnlUeXBlOlwiZmlyc3QtaW5wdXRcIixuYW1lOm4udHlwZSx0YXJnZXQ6bi50YXJnZXQsY2FuY2VsYWJsZTpuLmNhbmNlbGFibGUsc3RhcnRUaW1lOm4udGltZVN0YW1wLHByb2Nlc3NpbmdTdGFydDpuLnRpbWVTdGFtcCthfTtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QoZSl9KSksaT1bXX19LFI9ZnVuY3Rpb24oZSl7aWYoZS5jYW5jZWxhYmxlKXt2YXIgdD0oZS50aW1lU3RhbXA+MWUxMj9uZXcgRGF0ZTpwZXJmb3JtYW5jZS5ub3coKSktZS50aW1lU3RhbXA7XCJwb2ludGVyZG93blwiPT1lLnR5cGU/ZnVuY3Rpb24oZSx0KXt2YXIgcj1mdW5jdGlvbigpe08oZSx0KSxhKCl9LG49ZnVuY3Rpb24oKXthKCl9LGE9ZnVuY3Rpb24oKXtyZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIscixFKSxyZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmNhbmNlbFwiLG4sRSl9O2FkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIixyLEUpLGFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsbixFKX0odCxlKTpPKHQsZSl9fSxrPWZ1bmN0aW9uKGUpe1tcIm1vdXNlZG93blwiLFwia2V5ZG93blwiLFwidG91Y2hzdGFydFwiLFwicG9pbnRlcmRvd25cIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUodCxSLEUpfSkpfSxNPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgcixvPVsxMDAsMzAwXSx1PWIoKSxjPWQoXCJGSURcIiksbD1mdW5jdGlvbihlKXtlLnN0YXJ0VGltZTx1LmZpcnN0SGlkZGVuVGltZSYmKGMudmFsdWU9ZS5wcm9jZXNzaW5nU3RhcnQtZS5zdGFydFRpbWUsYy5lbnRyaWVzLnB1c2goZSkscighMCkpfSxmPWZ1bmN0aW9uKGUpe2UuZm9yRWFjaChsKX0sbT1wKFwiZmlyc3QtaW5wdXRcIixmKTtyPXYoZSxjLG8sdC5yZXBvcnRBbGxDaGFuZ2VzKSxtJiZoKChmdW5jdGlvbigpe2YobS50YWtlUmVjb3JkcygpKSxtLmRpc2Nvbm5lY3QoKX0pLCEwKSxtJiZzKChmdW5jdGlvbigpe3ZhciB1O2M9ZChcIkZJRFwiKSxyPXYoZSxjLG8sdC5yZXBvcnRBbGxDaGFuZ2VzKSxpPVtdLGE9LTEsbj1udWxsLGsoYWRkRXZlbnRMaXN0ZW5lciksdT1sLGkucHVzaCh1KSxqKCl9KSl9LEM9MCxBPTEvMCxMPTAsVD1mdW5jdGlvbihlKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuaW50ZXJhY3Rpb25JZCYmKEE9TWF0aC5taW4oQSxlLmludGVyYWN0aW9uSWQpLEw9TWF0aC5tYXgoTCxlLmludGVyYWN0aW9uSWQpLEM9TD8oTC1BKS83KzE6MCl9KSl9LE49ZnVuY3Rpb24oKXtyZXR1cm4gdT9DOnBlcmZvcm1hbmNlLmludGVyYWN0aW9uQ291bnR8fDB9LEk9MCxEPWZ1bmN0aW9uKCl7cmV0dXJuIE4oKS1JfSxCPVtdLHE9e30sVT1mdW5jdGlvbihlKXt2YXIgdD1CW0IubGVuZ3RoLTFdLHI9cVtlLmludGVyYWN0aW9uSWRdO2lmKHJ8fEIubGVuZ3RoPDEwfHxlLmR1cmF0aW9uPnQubGF0ZW5jeSl7aWYocilyLmVudHJpZXMucHVzaChlKSxyLmxhdGVuY3k9TWF0aC5tYXgoci5sYXRlbmN5LGUuZHVyYXRpb24pO2Vsc2V7dmFyIG49e2lkOmUuaW50ZXJhY3Rpb25JZCxsYXRlbmN5OmUuZHVyYXRpb24sZW50cmllczpbZV19O3Fbbi5pZF09bixCLnB1c2gobil9Qi5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiB0LmxhdGVuY3ktZS5sYXRlbmN5fSkpLEIuc3BsaWNlKDEwKS5mb3JFYWNoKChmdW5jdGlvbihlKXtkZWxldGUgcVtlLmlkXX0pKX19LEg9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciByPVsyMDAsNTAwXTtcImludGVyYWN0aW9uQ291bnRcImluIHBlcmZvcm1hbmNlfHx1fHwodT1wKFwiZXZlbnRcIixULHt0eXBlOlwiZXZlbnRcIixidWZmZXJlZDohMCxkdXJhdGlvblRocmVzaG9sZDowfSkpO3ZhciBuLGE9ZChcIklOUFwiKSxvPWZ1bmN0aW9uKGUpe2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5pbnRlcmFjdGlvbklkJiZVKGUpLFwiZmlyc3QtaW5wdXRcIj09PWUuZW50cnlUeXBlJiYhQi5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5lbnRyaWVzLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmR1cmF0aW9uPT09dC5kdXJhdGlvbiYmZS5zdGFydFRpbWU9PT10LnN0YXJ0VGltZX0pKX0pKSYmVShlKX0pKTt2YXIgdCxyPSh0PU1hdGgubWluKEIubGVuZ3RoLTEsTWF0aC5mbG9vcihEKCkvNTApKSxCW3RdKTtyJiZyLmxhdGVuY3khPT1hLnZhbHVlJiYoYS52YWx1ZT1yLmxhdGVuY3ksYS5lbnRyaWVzPXIuZW50cmllcyxuKCkpfSxpPXAoXCJldmVudFwiLG8se2R1cmF0aW9uVGhyZXNob2xkOnQuZHVyYXRpb25UaHJlc2hvbGR8fDQwfSk7bj12KGUsYSxyLHQucmVwb3J0QWxsQ2hhbmdlcyksaSYmKGkub2JzZXJ2ZSh7dHlwZTpcImZpcnN0LWlucHV0XCIsYnVmZmVyZWQ6ITB9KSxoKChmdW5jdGlvbigpe28oaS50YWtlUmVjb3JkcygpKSxhLnZhbHVlPDAmJkQoKT4wJiYoYS52YWx1ZT0wLGEuZW50cmllcz1bXSksbighMCl9KSkscygoZnVuY3Rpb24oKXtCPVtdLEk9TigpLGE9ZChcIklOUFwiKSxuPXYoZSxhLHIsdC5yZXBvcnRBbGxDaGFuZ2VzKX0pKSl9LEY9e30sVz1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIHIsbj1bMjUwMCw0ZTNdLGE9YigpLG89ZChcIkxDUFwiKSxpPWZ1bmN0aW9uKGUpe3ZhciB0PWVbZS5sZW5ndGgtMV07aWYodCl7dmFyIG49dC5zdGFydFRpbWUtZigpO248YS5maXJzdEhpZGRlblRpbWUmJihvLnZhbHVlPW4sby5lbnRyaWVzPVt0XSxyKCkpfX0sdT1wKFwibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50XCIsaSk7aWYodSl7cj12KGUsbyxuLHQucmVwb3J0QWxsQ2hhbmdlcyk7dmFyIGM9ZnVuY3Rpb24oKXtGW28uaWRdfHwoaSh1LnRha2VSZWNvcmRzKCkpLHUuZGlzY29ubmVjdCgpLEZbby5pZF09ITAscighMCkpfTtbXCJrZXlkb3duXCIsXCJjbGlja1wiXS5mb3JFYWNoKChmdW5jdGlvbihlKXthZGRFdmVudExpc3RlbmVyKGUsYyx7b25jZTohMCxjYXB0dXJlOiEwfSl9KSksaChjLCEwKSxzKChmdW5jdGlvbihhKXtvPWQoXCJMQ1BcIikscj12KGUsbyxuLHQucmVwb3J0QWxsQ2hhbmdlcykscmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtvLnZhbHVlPXBlcmZvcm1hbmNlLm5vdygpLWEudGltZVN0YW1wLEZbby5pZF09ITAscighMCl9KSl9KSl9KSl9fSx6PWZ1bmN0aW9uIGUodCl7ZG9jdW1lbnQucHJlcmVuZGVyaW5nP2FkZEV2ZW50TGlzdGVuZXIoXCJwcmVyZW5kZXJpbmdjaGFuZ2VcIiwoZnVuY3Rpb24oKXtyZXR1cm4gZSh0KX0pLCEwKTpcImNvbXBsZXRlXCIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP2FkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGUodCl9KSwhMCk6c2V0VGltZW91dCh0LDApfSxHPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgcj1bODAwLDE4MDBdLG49ZChcIlRURkJcIiksYT12KGUsbixyLHQucmVwb3J0QWxsQ2hhbmdlcyk7eigoZnVuY3Rpb24oKXt2YXIgbz1sKCk7aWYobyl7aWYobi52YWx1ZT1NYXRoLm1heChvLnJlc3BvbnNlU3RhcnQtZigpLDApLG4udmFsdWU8MHx8bi52YWx1ZT5wZXJmb3JtYW5jZS5ub3coKSlyZXR1cm47bi5lbnRyaWVzPVtvXSxhKCEwKSxzKChmdW5jdGlvbigpe249ZChcIlRURkJcIiwwKSwoYT12KGUsbixyLHQucmVwb3J0QWxsQ2hhbmdlcykpKCEwKX0pKX19KSl9O2UuZXhwb3J0cz1yfSgpfSw4MDY3NjpmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWEsdC5nZXRQcm9wZXJFcnJvcj1mdW5jdGlvbihlKXtpZihhKGUpKXJldHVybiBlOzA7cmV0dXJuIG5ldyBFcnJvcihuLmlzUGxhaW5PYmplY3QoZSk/SlNPTi5zdHJpbmdpZnkoZSk6ZStcIlwiKX07dmFyIG49cigyMjc4NCk7ZnVuY3Rpb24gYShlKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZcIm5hbWVcImluIGUmJlwibWVzc2FnZVwiaW4gZX19fSxmdW5jdGlvbihlKXtlLk8oMCxbOTc3NF0sKGZ1bmN0aW9uKCl7cmV0dXJuIHQ9OTQ2MDksZShlLnM9dCk7dmFyIHR9KSk7dmFyIHQ9ZS5PKCk7X05fRT10fV0pO1xuIn0sICJoZWFkZXJzU2l6ZSI6IDAsICJib2R5U2l6ZSI6IDM0MzUwLCAicmVkaXJlY3RVUkwiOiAiIiwgIl90cmFuc2ZlclNpemUiOiAzNDM1MH0sICJjYWNoZSI6IHt9LCAidGltaW5ncyI6IHsiZG5zIjogLTEsICJjb25uZWN0IjogLTEsICJzc2wiOiAtMSwgInNlbmQiOiAwLCAid2FpdCI6IDMwLjMwMywgInJlY2VpdmUiOiAyMC43NDV9LCAicGFnZXJlZiI6ICJwYWdlQDg2ZGRlNDliMDc3MjhmNTA4YzY4MmFhODU3NGMzZTQ4IiwgInNlcnZlcklQQWRkcmVzcyI6ICIxOC42Ni4xMjAuMjQ3IiwgIl9zZXJ2ZXJQb3J0IjogNDQzLCAiX3NlY3VyaXR5RGV0YWlscyI6IHsicHJvdG9jb2wiOiAiVExTIDEuMyIsICJzdWJqZWN0TmFtZSI6ICJzdG9yeS5zbmFwY2hhdC5jb20iLCAiaXNzdWVyIjogIkRpZ2lDZXJ0IFRMUyBSU0EgU0hBMjU2IDIwMjAgQ0ExIiwgInZhbGlkRnJvbSI6IDE2NjA2OTQ0MDAsICJ2YWxpZFRvIjogMTY5MjMxNjc5OX19LCB7InN0YXJ0ZWREYXRlVGltZSI6ICIyMDIzLTA1LTEzVDE4OjAyOjI5LjIwOVoiLCAidGltZSI6IDg3LjI1NSwgInJlcXVlc3QiOiB7Im1ldGhvZCI6ICJHRVQiLCAidXJsIjogImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMvX2FwcC03NGMzNGEzZDhmMjNiOTA0LmpzIiwgImh0dHBWZXJzaW9uIjogIkhUVFAvMi4wIiwgImNvb2tpZXMiOiBbXSwgImhlYWRlcnMiOiBbeyJuYW1lIjogIjphdXRob3JpdHkiLCAidmFsdWUiOiAic3Rvcnkuc25hcGNoYXQuY29tIn0sIHsibmFtZSI6ICI6bWV0aG9kIiwgInZhbHVlIjogIkdFVCJ9LCB7Im5hbWUiOiAiOnBhdGgiLCAidmFsdWUiOiAiL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMvX2FwcC03NGMzNGEzZDhmMjNiOTA0LmpzIn0sIHsibmFtZSI6ICI6c2NoZW1lIiwgInZhbHVlIjogImh0dHBzIn0sIHsibmFtZSI6ICJhY2NlcHQiLCAidmFsdWUiOiAiKi8qIn0sIHsibmFtZSI6ICJhY2NlcHQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCwgZGVmbGF0ZSwgYnIifSwgeyJuYW1lIjogInJlZmVyZXIiLCAidmFsdWUiOiAiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tLyJ9LCB7Im5hbWUiOiAic2VjLWZldGNoLWRlc3QiLCAidmFsdWUiOiAic2NyaXB0In0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtbW9kZSIsICJ2YWx1ZSI6ICJuby1jb3JzIn0sIHsibmFtZSI6ICJzZWMtZmV0Y2gtc2l0ZSIsICJ2YWx1ZSI6ICJzYW1lLXNpdGUifSwgeyJuYW1lIjogInVzZXItYWdlbnQiLCAidmFsdWUiOiAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExMy4wLjU2NzIuNTMgU2FmYXJpLzUzNy4zNiJ9XSwgInF1ZXJ5U3RyaW5nIjogW10sICJoZWFkZXJzU2l6ZSI6IDQ3OCwgImJvZHlTaXplIjogMH0sICJyZXNwb25zZSI6IHsic3RhdHVzIjogMjAwLCAic3RhdHVzVGV4dCI6ICIiLCAiaHR0cFZlcnNpb24iOiAiSFRUUC8yLjAiLCAiY29va2llcyI6IFtdLCAiaGVhZGVycyI6IFt7Im5hbWUiOiAiYWdlIiwgInZhbHVlIjogIjE4NDE0NyJ9LCB7Im5hbWUiOiAiY2FjaGUtY29udHJvbCIsICJ2YWx1ZSI6ICJtYXgtYWdlPTMxNTM2MDAwLHB1YmxpYyxpbW11dGFibGUifSwgeyJuYW1lIjogImNvbnRlbnQtZW5jb2RpbmciLCAidmFsdWUiOiAiZ3ppcCJ9LCB7Im5hbWUiOiAiY29udGVudC10eXBlIiwgInZhbHVlIjogImFwcGxpY2F0aW9uL2phdmFzY3JpcHQifSwgeyJuYW1lIjogImRhdGUiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxNDo1MzoyMyBHTVQifSwgeyJuYW1lIjogImV0YWciLCAidmFsdWUiOiAiVy9cIjE0YjYwYzk5ZGYwZjliOWRjYTg5ZmJiNDAzZjEwMjllXCIifSwgeyJuYW1lIjogImxhc3QtbW9kaWZpZWQiLCAidmFsdWUiOiAiVGh1LCAxMSBNYXkgMjAyMyAxNDo0OTo0NSBHTVQifSwgeyJuYW1lIjogInNlcnZlciIsICJ2YWx1ZSI6ICJBbWF6b25TMyJ9LCB7Im5hbWUiOiAidmFyeSIsICJ2YWx1ZSI6ICJBY2NlcHQtRW5jb2RpbmcifSwgeyJuYW1lIjogInZpYSIsICJ2YWx1ZSI6ICIxLjEgOTBiYjEzMGVjY2NiNzE5NTNiMzhhMWMwZTNiNTcyMWEuY2xvdWRmcm9udC5uZXQgKENsb3VkRnJvbnQpIn0sIHsibmFtZSI6ICJ4LWFtei1jZi1pZCIsICJ2YWx1ZSI6ICJCWWFKZWd4Q1BkOS1iLTlzRVBLLVlrRmFVSWMtVHlpN0hBaDF6V0ZyMzFjRUJuZDc1LU5KNHc9PSJ9LCB7Im5hbWUiOiAieC1hbXotY2YtcG9wIiwgInZhbHVlIjogIkZSQTYwLVAyIn0sIHsibmFtZSI6ICJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIiwgInZhbHVlIjogIkFFUzI1NiJ9LCB7Im5hbWUiOiAieC1jYWNoZSIsICJ2YWx1ZSI6ICJIaXQgZnJvbSBjbG91ZGZyb250In1dLCAiY29udGVudCI6IHsic2l6ZSI6IDQ4MzkzODYsICJtaW1lVHlwZSI6ICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiwgImNvbXByZXNzaW9uIjogMzc4MjkzNCwgInRleHQiOiAiKHNlbGYud2VicGFja0NodW5rX05fRT1zZWxmLndlYnBhY2tDaHVua19OX0V8fFtdKS5wdXNoKFtbMjg4OCwyNzQxXSx7NzQxMjk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByLGk9big2NzI5NCksbz0ocj1pKSYmXCJvYmplY3RcIj09PXR5cGVvZiByJiZcImRlZmF1bHRcImluIHI/ci5kZWZhdWx0OnIsYT1mdW5jdGlvbigpe3JldHVybiBhPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHM9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3c/d2luZG93OlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygbi5nP24uZzpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGY/c2VsZjp7fTtmdW5jdGlvbiBjKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZX1mdW5jdGlvbiB1KGUsdCl7cmV0dXJuIGUodD17ZXhwb3J0czp7fX0sdC5leHBvcnRzKSx0LmV4cG9ydHN9dmFyIGw9dSgoZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkJMT0NLUz12b2lkIDAsZnVuY3Rpb24oZSl7ZS5ET0NVTUVOVD1cImRvY3VtZW50XCIsZS5QQVJBR1JBUEg9XCJwYXJhZ3JhcGhcIixlLkhFQURJTkdfMT1cImhlYWRpbmctMVwiLGUuSEVBRElOR18yPVwiaGVhZGluZy0yXCIsZS5IRUFESU5HXzM9XCJoZWFkaW5nLTNcIixlLkhFQURJTkdfND1cImhlYWRpbmctNFwiLGUuSEVBRElOR181PVwiaGVhZGluZy01XCIsZS5IRUFESU5HXzY9XCJoZWFkaW5nLTZcIixlLk9MX0xJU1Q9XCJvcmRlcmVkLWxpc3RcIixlLlVMX0xJU1Q9XCJ1bm9yZGVyZWQtbGlzdFwiLGUuTElTVF9JVEVNPVwibGlzdC1pdGVtXCIsZS5IUj1cImhyXCIsZS5RVU9URT1cImJsb2NrcXVvdGVcIixlLkVNQkVEREVEX0VOVFJZPVwiZW1iZWRkZWQtZW50cnktYmxvY2tcIixlLkVNQkVEREVEX0FTU0VUPVwiZW1iZWRkZWQtYXNzZXQtYmxvY2tcIixlLlRBQkxFPVwidGFibGVcIixlLlRBQkxFX1JPVz1cInRhYmxlLXJvd1wiLGUuVEFCTEVfQ0VMTD1cInRhYmxlLWNlbGxcIixlLlRBQkxFX0hFQURFUl9DRUxMPVwidGFibGUtaGVhZGVyLWNlbGxcIn0odC5CTE9DS1N8fCh0LkJMT0NLUz17fSkpfSkpO2MobCk7bC5CTE9DS1M7dmFyIGQ9dSgoZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LklOTElORVM9dm9pZCAwLGZ1bmN0aW9uKGUpe2UuSFlQRVJMSU5LPVwiaHlwZXJsaW5rXCIsZS5FTlRSWV9IWVBFUkxJTks9XCJlbnRyeS1oeXBlcmxpbmtcIixlLkFTU0VUX0hZUEVSTElOSz1cImFzc2V0LWh5cGVybGlua1wiLGUuRU1CRURERURfRU5UUlk9XCJlbWJlZGRlZC1lbnRyeS1pbmxpbmVcIn0odC5JTkxJTkVTfHwodC5JTkxJTkVTPXt9KSl9KSk7YyhkKTtkLklOTElORVM7dmFyIHA9dSgoZnVuY3Rpb24oZSx0KXt2YXIgbjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxmdW5jdGlvbihlKXtlLkJPTEQ9XCJib2xkXCIsZS5JVEFMSUM9XCJpdGFsaWNcIixlLlVOREVSTElORT1cInVuZGVybGluZVwiLGUuQ09ERT1cImNvZGVcIixlLlNVUEVSU0NSSVBUPVwic3VwZXJzY3JpcHRcIixlLlNVQlNDUklQVD1cInN1YnNjcmlwdFwifShufHwobj17fSkpLHQuZGVmYXVsdD1ufSkpO2MocCk7dmFyIGY9dSgoZnVuY3Rpb24oZSx0KXt2YXIgbixyPXMmJnMuX19zcHJlYWRBcnJheXx8ZnVuY3Rpb24oZSx0LG4pe2lmKG58fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixpPTAsbz10Lmxlbmd0aDtpPG87aSsrKSFyJiZpIGluIHR8fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LDAsaSkpLHJbaV09dFtpXSk7cmV0dXJuIGUuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0saT1zJiZzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlYxX01BUktTPXQuVjFfTk9ERV9UWVBFUz10LlRFWFRfQ09OVEFJTkVSUz10LkhFQURJTkdTPXQuQ09OVEFJTkVSUz10LlZPSURfQkxPQ0tTPXQuVEFCTEVfQkxPQ0tTPXQuTElTVF9JVEVNX0JMT0NLUz10LlRPUF9MRVZFTF9CTE9DS1M9dm9pZCAwO3ZhciBvPWkocCk7dC5UT1BfTEVWRUxfQkxPQ0tTPVtsLkJMT0NLUy5QQVJBR1JBUEgsbC5CTE9DS1MuSEVBRElOR18xLGwuQkxPQ0tTLkhFQURJTkdfMixsLkJMT0NLUy5IRUFESU5HXzMsbC5CTE9DS1MuSEVBRElOR180LGwuQkxPQ0tTLkhFQURJTkdfNSxsLkJMT0NLUy5IRUFESU5HXzYsbC5CTE9DS1MuT0xfTElTVCxsLkJMT0NLUy5VTF9MSVNULGwuQkxPQ0tTLkhSLGwuQkxPQ0tTLlFVT1RFLGwuQkxPQ0tTLkVNQkVEREVEX0VOVFJZLGwuQkxPQ0tTLkVNQkVEREVEX0FTU0VULGwuQkxPQ0tTLlRBQkxFXSx0LkxJU1RfSVRFTV9CTE9DS1M9W2wuQkxPQ0tTLlBBUkFHUkFQSCxsLkJMT0NLUy5IRUFESU5HXzEsbC5CTE9DS1MuSEVBRElOR18yLGwuQkxPQ0tTLkhFQURJTkdfMyxsLkJMT0NLUy5IRUFESU5HXzQsbC5CTE9DS1MuSEVBRElOR181LGwuQkxPQ0tTLkhFQURJTkdfNixsLkJMT0NLUy5PTF9MSVNULGwuQkxPQ0tTLlVMX0xJU1QsbC5CTE9DS1MuSFIsbC5CTE9DS1MuUVVPVEUsbC5CTE9DS1MuRU1CRURERURfRU5UUlksbC5CTE9DS1MuRU1CRURERURfQVNTRVRdLHQuVEFCTEVfQkxPQ0tTPVtsLkJMT0NLUy5UQUJMRSxsLkJMT0NLUy5UQUJMRV9ST1csbC5CTE9DS1MuVEFCTEVfQ0VMTCxsLkJMT0NLUy5UQUJMRV9IRUFERVJfQ0VMTF0sdC5WT0lEX0JMT0NLUz1bbC5CTE9DS1MuSFIsbC5CTE9DS1MuRU1CRURERURfRU5UUlksbC5CTE9DS1MuRU1CRURERURfQVNTRVRdLHQuQ09OVEFJTkVSUz0oKG49e30pW2wuQkxPQ0tTLk9MX0xJU1RdPVtsLkJMT0NLUy5MSVNUX0lURU1dLG5bbC5CTE9DS1MuVUxfTElTVF09W2wuQkxPQ0tTLkxJU1RfSVRFTV0sbltsLkJMT0NLUy5MSVNUX0lURU1dPXQuTElTVF9JVEVNX0JMT0NLUyxuW2wuQkxPQ0tTLlFVT1RFXT1bbC5CTE9DS1MuUEFSQUdSQVBIXSxuW2wuQkxPQ0tTLlRBQkxFXT1bbC5CTE9DS1MuVEFCTEVfUk9XXSxuW2wuQkxPQ0tTLlRBQkxFX1JPV109W2wuQkxPQ0tTLlRBQkxFX0NFTEwsbC5CTE9DS1MuVEFCTEVfSEVBREVSX0NFTExdLG5bbC5CTE9DS1MuVEFCTEVfQ0VMTF09W2wuQkxPQ0tTLlBBUkFHUkFQSF0sbltsLkJMT0NLUy5UQUJMRV9IRUFERVJfQ0VMTF09W2wuQkxPQ0tTLlBBUkFHUkFQSF0sbiksdC5IRUFESU5HUz1bbC5CTE9DS1MuSEVBRElOR18xLGwuQkxPQ0tTLkhFQURJTkdfMixsLkJMT0NLUy5IRUFESU5HXzMsbC5CTE9DS1MuSEVBRElOR180LGwuQkxPQ0tTLkhFQURJTkdfNSxsLkJMT0NLUy5IRUFESU5HXzZdLHQuVEVYVF9DT05UQUlORVJTPXIoW2wuQkxPQ0tTLlBBUkFHUkFQSF0sdC5IRUFESU5HUywhMCksdC5WMV9OT0RFX1RZUEVTPVtsLkJMT0NLUy5ET0NVTUVOVCxsLkJMT0NLUy5QQVJBR1JBUEgsbC5CTE9DS1MuSEVBRElOR18xLGwuQkxPQ0tTLkhFQURJTkdfMixsLkJMT0NLUy5IRUFESU5HXzMsbC5CTE9DS1MuSEVBRElOR180LGwuQkxPQ0tTLkhFQURJTkdfNSxsLkJMT0NLUy5IRUFESU5HXzYsbC5CTE9DS1MuT0xfTElTVCxsLkJMT0NLUy5VTF9MSVNULGwuQkxPQ0tTLkxJU1RfSVRFTSxsLkJMT0NLUy5IUixsLkJMT0NLUy5RVU9URSxsLkJMT0NLUy5FTUJFRERFRF9FTlRSWSxsLkJMT0NLUy5FTUJFRERFRF9BU1NFVCxkLklOTElORVMuSFlQRVJMSU5LLGQuSU5MSU5FUy5FTlRSWV9IWVBFUkxJTkssZC5JTkxJTkVTLkFTU0VUX0hZUEVSTElOSyxkLklOTElORVMuRU1CRURERURfRU5UUlksXCJ0ZXh0XCJdLHQuVjFfTUFSS1M9W28uZGVmYXVsdC5CT0xELG8uZGVmYXVsdC5DT0RFLG8uZGVmYXVsdC5JVEFMSUMsby5kZWZhdWx0LlVOREVSTElORV19KSk7YyhmKTtmLlYxX01BUktTLGYuVjFfTk9ERV9UWVBFUyxmLlRFWFRfQ09OVEFJTkVSUyxmLkhFQURJTkdTLGYuQ09OVEFJTkVSUyxmLlZPSURfQkxPQ0tTLGYuVEFCTEVfQkxPQ0tTLGYuTElTVF9JVEVNX0JMT0NLUyxmLlRPUF9MRVZFTF9CTE9DS1M7dmFyIGg9dSgoZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pKTtjKGgpO3ZhciBnPXUoKGZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KSk7YyhnKTt2YXIgbT11KChmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBuPXtub2RlVHlwZTpsLkJMT0NLUy5ET0NVTUVOVCxkYXRhOnt9LGNvbnRlbnQ6W3tub2RlVHlwZTpsLkJMT0NLUy5QQVJBR1JBUEgsZGF0YTp7fSxjb250ZW50Olt7bm9kZVR5cGU6XCJ0ZXh0XCIsdmFsdWU6XCJcIixtYXJrczpbXSxkYXRhOnt9fV19XX07dC5kZWZhdWx0PW59KSk7YyhtKTt2YXIgdj11KChmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSx0KXtmb3IodmFyIG49MCxyPU9iamVjdC5rZXlzKGUpO248ci5sZW5ndGg7bisrKXtpZih0PT09ZVtyW25dXSlyZXR1cm4hMH1yZXR1cm4hMX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmlzVGV4dD10LmlzQmxvY2s9dC5pc0lubGluZT12b2lkIDAsdC5pc0lubGluZT1mdW5jdGlvbihlKXtyZXR1cm4gbihkLklOTElORVMsZS5ub2RlVHlwZSl9LHQuaXNCbG9jaz1mdW5jdGlvbihlKXtyZXR1cm4gbihsLkJMT0NLUyxlLm5vZGVUeXBlKX0sdC5pc1RleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuXCJ0ZXh0XCI9PT1lLm5vZGVUeXBlfX0pKTtjKHYpO3YuaXNUZXh0LHYuaXNCbG9jayx2LmlzSW5saW5lO3ZhciBfPXUoKGZ1bmN0aW9uKGUsdCl7dmFyIG49cyYmcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTtpJiYhKFwiZ2V0XCJpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpfHwoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLGkpfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxyPXMmJnMuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX06ZnVuY3Rpb24oZSx0KXtlLmRlZmF1bHQ9dH0pLGk9cyYmcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpXCJkZWZhdWx0XCI9PT1yfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKXx8bih0LGUscil9LG89cyYmcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgaSBpbiBlKVwiZGVmYXVsdFwiIT09aSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJm4odCxlLGkpO3JldHVybiByKHQsZSksdH0sYT1zJiZzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmhlbHBlcnM9dC5FTVBUWV9ET0NVTUVOVD10Lk1BUktTPXQuSU5MSU5FUz10LkJMT0NLUz12b2lkIDAsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJCTE9DS1NcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5CTE9DS1N9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJJTkxJTkVTXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuSU5MSU5FU319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIk1BUktTXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEocCkuZGVmYXVsdH19KSxpKGYsdCksaShoLHQpLGkoZyx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIkVNUFRZX0RPQ1VNRU5UXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEobSkuZGVmYXVsdH19KTt2YXIgYz1vKHYpO3QuaGVscGVycz1jfSkpO2MoXyk7dmFyIEUsYixTPV8uaGVscGVycyx5PShfLkVNUFRZX0RPQ1VNRU5ULF8uTUFSS1MpLFQ9Xy5JTkxJTkVTLEk9Xy5CTE9DS1M7ZnVuY3Rpb24gTyhlLHQpe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gcj1BKGUsdCksbz1uLGkuaXNWYWxpZEVsZW1lbnQocikmJm51bGw9PT1yLmtleT9pLmNsb25lRWxlbWVudChyLHtrZXk6b30pOnI7dmFyIHIsb30pKX1mdW5jdGlvbiBBKGUsdCl7dmFyIG49dC5yZW5kZXJOb2RlLHI9dC5yZW5kZXJNYXJrLGk9dC5yZW5kZXJUZXh0O2lmKFMuaXNUZXh0KGUpKXJldHVybiBlLm1hcmtzLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gclt0LnR5cGVdP3JbdC50eXBlXShlKTplfSksaT9pKGUudmFsdWUpOmUudmFsdWUpO3ZhciBhPU8oZS5jb250ZW50LHQpO3JldHVybiBlLm5vZGVUeXBlJiZuW2Uubm9kZVR5cGVdP25bZS5ub2RlVHlwZV0oZSxhKTpvLmNyZWF0ZUVsZW1lbnQoby5GcmFnbWVudCxudWxsLGEpfXZhciBDPSgoRT17fSlbSS5ET0NVTUVOVF09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdH0sRVtJLlBBUkFHUkFQSF09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwicFwiLG51bGwsdCl9LEVbSS5IRUFESU5HXzFdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcImgxXCIsbnVsbCx0KX0sRVtJLkhFQURJTkdfMl09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwiaDJcIixudWxsLHQpfSxFW0kuSEVBRElOR18zXT1mdW5jdGlvbihlLHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJoM1wiLG51bGwsdCl9LEVbSS5IRUFESU5HXzRdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcImg0XCIsbnVsbCx0KX0sRVtJLkhFQURJTkdfNV09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwiaDVcIixudWxsLHQpfSxFW0kuSEVBRElOR182XT1mdW5jdGlvbihlLHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJoNlwiLG51bGwsdCl9LEVbSS5FTUJFRERFRF9FTlRSWV09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwiZGl2XCIsbnVsbCx0KX0sRVtJLlVMX0xJU1RdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInVsXCIsbnVsbCx0KX0sRVtJLk9MX0xJU1RdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcIm9sXCIsbnVsbCx0KX0sRVtJLkxJU1RfSVRFTV09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwibGlcIixudWxsLHQpfSxFW0kuUVVPVEVdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcImJsb2NrcXVvdGVcIixudWxsLHQpfSxFW0kuSFJdPWZ1bmN0aW9uKCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcImhyXCIsbnVsbCl9LEVbSS5UQUJMRV09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwidGFibGVcIixudWxsLG8uY3JlYXRlRWxlbWVudChcInRib2R5XCIsbnVsbCx0KSl9LEVbSS5UQUJMRV9ST1ddPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInRyXCIsbnVsbCx0KX0sRVtJLlRBQkxFX0hFQURFUl9DRUxMXT1mdW5jdGlvbihlLHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJ0aFwiLG51bGwsdCl9LEVbSS5UQUJMRV9DRUxMXT1mdW5jdGlvbihlLHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiLG51bGwsdCl9LEVbVC5BU1NFVF9IWVBFUkxJTktdPWZ1bmN0aW9uKGUpe3JldHVybiBrKFQuQVNTRVRfSFlQRVJMSU5LLGUpfSxFW1QuRU5UUllfSFlQRVJMSU5LXT1mdW5jdGlvbihlKXtyZXR1cm4gayhULkVOVFJZX0hZUEVSTElOSyxlKX0sRVtULkVNQkVEREVEX0VOVFJZXT1mdW5jdGlvbihlKXtyZXR1cm4gayhULkVNQkVEREVEX0VOVFJZLGUpfSxFW1QuSFlQRVJMSU5LXT1mdW5jdGlvbihlLHQpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6ZS5kYXRhLnVyaX0sdCl9LEUpLE49KChiPXt9KVt5LkJPTERdPWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJiXCIsbnVsbCxlKX0sYlt5LklUQUxJQ109ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcImlcIixudWxsLGUpfSxiW3kuVU5ERVJMSU5FXT1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwidVwiLG51bGwsZSl9LGJbeS5DT0RFXT1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwiY29kZVwiLG51bGwsZSl9LGJbeS5TVVBFUlNDUklQVF09ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInN1cFwiLG51bGwsZSl9LGJbeS5TVUJTQ1JJUFRdPWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdWJcIixudWxsLGUpfSxiKTtmdW5jdGlvbiBrKGUsdCl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInNwYW5cIix7a2V5OnQuZGF0YS50YXJnZXQuc3lzLmlkfSxcInR5cGU6IFwiLHQubm9kZVR5cGUsXCIgaWQ6IFwiLHQuZGF0YS50YXJnZXQuc3lzLmlkKX10LmRvY3VtZW50VG9SZWFjdENvbXBvbmVudHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9e30pLGU/QShlLHtyZW5kZXJOb2RlOmEoYSh7fSxDKSx0LnJlbmRlck5vZGUpLHJlbmRlck1hcms6YShhKHt9LE4pLHQucmVuZGVyTWFyaykscmVuZGVyVGV4dDp0LnJlbmRlclRleHR9KTpudWxsfX0sNzQ4MTE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtIWTpmdW5jdGlvbigpe3JldHVybiBQZX0sdFo6ZnVuY3Rpb24oKXtyZXR1cm4gUmV9LEJYOmZ1bmN0aW9uKCl7cmV0dXJuIHdlfX0pO3ZhciByPW4oNjcyOTQpLGk9bi50KHIsMik7dmFyIG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXRoaXM7dGhpcy5faW5zZXJ0VGFnPWZ1bmN0aW9uKGUpe3ZhciBuO249MD09PXQudGFncy5sZW5ndGg/dC5pbnNlcnRpb25Qb2ludD90Lmluc2VydGlvblBvaW50Lm5leHRTaWJsaW5nOnQucHJlcGVuZD90LmNvbnRhaW5lci5maXJzdENoaWxkOnQuYmVmb3JlOnQudGFnc1t0LnRhZ3MubGVuZ3RoLTFdLm5leHRTaWJsaW5nLHQuY29udGFpbmVyLmluc2VydEJlZm9yZShlLG4pLHQudGFncy5wdXNoKGUpfSx0aGlzLmlzU3BlZWR5PXZvaWQgMD09PWUuc3BlZWR5fHxlLnNwZWVkeSx0aGlzLnRhZ3M9W10sdGhpcy5jdHI9MCx0aGlzLm5vbmNlPWUubm9uY2UsdGhpcy5rZXk9ZS5rZXksdGhpcy5jb250YWluZXI9ZS5jb250YWluZXIsdGhpcy5wcmVwZW5kPWUucHJlcGVuZCx0aGlzLmluc2VydGlvblBvaW50PWUuaW5zZXJ0aW9uUG9pbnQsdGhpcy5iZWZvcmU9bnVsbH12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC5oeWRyYXRlPWZ1bmN0aW9uKGUpe2UuZm9yRWFjaCh0aGlzLl9pbnNlcnRUYWcpfSx0Lmluc2VydD1mdW5jdGlvbihlKXt0aGlzLmN0ciUodGhpcy5pc1NwZWVkeT82NWUzOjEpPT09MCYmdGhpcy5faW5zZXJ0VGFnKGZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoXCJkYXRhLWVtb3Rpb25cIixlLmtleSksdm9pZCAwIT09ZS5ub25jZSYmdC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLGUubm9uY2UpLHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcIikpLHQuc2V0QXR0cmlidXRlKFwiZGF0YS1zXCIsXCJcIiksdH0odGhpcykpO3ZhciB0PXRoaXMudGFnc1t0aGlzLnRhZ3MubGVuZ3RoLTFdO2lmKHRoaXMuaXNTcGVlZHkpe3ZhciBuPWZ1bmN0aW9uKGUpe2lmKGUuc2hlZXQpcmV0dXJuIGUuc2hlZXQ7Zm9yKHZhciB0PTA7dDxkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7dCsrKWlmKGRvY3VtZW50LnN0eWxlU2hlZXRzW3RdLm93bmVyTm9kZT09PWUpcmV0dXJuIGRvY3VtZW50LnN0eWxlU2hlZXRzW3RdfSh0KTt0cnl7bi5pbnNlcnRSdWxlKGUsbi5jc3NSdWxlcy5sZW5ndGgpfWNhdGNoKHIpezB9fWVsc2UgdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSk7dGhpcy5jdHIrK30sdC5mbHVzaD1mdW5jdGlvbigpe3RoaXMudGFncy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KSksdGhpcy50YWdzPVtdLHRoaXMuY3RyPTB9LGV9KCksYT1NYXRoLmFicyxzPVN0cmluZy5mcm9tQ2hhckNvZGUsYz1PYmplY3QuYXNzaWduO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIGUudHJpbSgpfWZ1bmN0aW9uIGwoZSx0LG4pe3JldHVybiBlLnJlcGxhY2UodCxuKX1mdW5jdGlvbiBkKGUsdCl7cmV0dXJuIGUuaW5kZXhPZih0KX1mdW5jdGlvbiBwKGUsdCl7cmV0dXJuIDB8ZS5jaGFyQ29kZUF0KHQpfWZ1bmN0aW9uIGYoZSx0LG4pe3JldHVybiBlLnNsaWNlKHQsbil9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZS5sZW5ndGh9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gZS5sZW5ndGh9ZnVuY3Rpb24gbShlLHQpe3JldHVybiB0LnB1c2goZSksZX12YXIgdj0xLF89MSxFPTAsYj0wLFM9MCx5PVwiXCI7ZnVuY3Rpb24gVChlLHQsbixyLGksbyxhKXtyZXR1cm57dmFsdWU6ZSxyb290OnQscGFyZW50Om4sdHlwZTpyLHByb3BzOmksY2hpbGRyZW46byxsaW5lOnYsY29sdW1uOl8sbGVuZ3RoOmEscmV0dXJuOlwiXCJ9fWZ1bmN0aW9uIEkoZSx0KXtyZXR1cm4gYyhUKFwiXCIsbnVsbCxudWxsLFwiXCIsbnVsbCxudWxsLDApLGUse2xlbmd0aDotZS5sZW5ndGh9LHQpfWZ1bmN0aW9uIE8oKXtyZXR1cm4gUz1iPjA/cCh5LC0tYik6MCxfLS0sMTA9PT1TJiYoXz0xLHYtLSksU31mdW5jdGlvbiBBKCl7cmV0dXJuIFM9YjxFP3AoeSxiKyspOjAsXysrLDEwPT09UyYmKF89MSx2KyspLFN9ZnVuY3Rpb24gQygpe3JldHVybiBwKHksYil9ZnVuY3Rpb24gTigpe3JldHVybiBifWZ1bmN0aW9uIGsoZSx0KXtyZXR1cm4gZih5LGUsdCl9ZnVuY3Rpb24gUChlKXtzd2l0Y2goZSl7Y2FzZSAwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gNTtjYXNlIDMzOmNhc2UgNDM6Y2FzZSA0NDpjYXNlIDQ3OmNhc2UgNjI6Y2FzZSA2NDpjYXNlIDEyNjpjYXNlIDU5OmNhc2UgMTIzOmNhc2UgMTI1OnJldHVybiA0O2Nhc2UgNTg6cmV0dXJuIDM7Y2FzZSAzNDpjYXNlIDM5OmNhc2UgNDA6Y2FzZSA5MTpyZXR1cm4gMjtjYXNlIDQxOmNhc2UgOTM6cmV0dXJuIDF9cmV0dXJuIDB9ZnVuY3Rpb24gUihlKXtyZXR1cm4gdj1fPTEsRT1oKHk9ZSksYj0wLFtdfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIHk9XCJcIixlfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIHUoayhiLTEsRCg5MT09PWU/ZSsyOjQwPT09ZT9lKzE6ZSkpKX1mdW5jdGlvbiBCKGUpe2Zvcig7KFM9QygpKSYmUzwzMzspQSgpO3JldHVybiBQKGUpPjJ8fFAoUyk+Mz9cIlwiOlwiIFwifWZ1bmN0aW9uIE0oZSx0KXtmb3IoOy0tdCYmQSgpJiYhKFM8NDh8fFM+MTAyfHxTPjU3JiZTPDY1fHxTPjcwJiZTPDk3KTspO3JldHVybiBrKGUsTigpKyh0PDYmJjMyPT1DKCkmJjMyPT1BKCkpKX1mdW5jdGlvbiBEKGUpe2Zvcig7QSgpOylzd2l0Y2goUyl7Y2FzZSBlOnJldHVybiBiO2Nhc2UgMzQ6Y2FzZSAzOTozNCE9PWUmJjM5IT09ZSYmRChTKTticmVhaztjYXNlIDQwOjQxPT09ZSYmRChlKTticmVhaztjYXNlIDkyOkEoKX1yZXR1cm4gYn1mdW5jdGlvbiBqKGUsdCl7Zm9yKDtBKCkmJmUrUyE9PTU3JiYoZStTIT09ODR8fDQ3IT09QygpKTspO3JldHVyblwiLypcIitrKHQsYi0xKStcIipcIitzKDQ3PT09ZT9lOkEoKSl9ZnVuY3Rpb24geChlKXtmb3IoOyFQKEMoKSk7KUEoKTtyZXR1cm4gayhlLGIpfXZhciBVPVwiLW1zLVwiLEY9XCItbW96LVwiLEg9XCItd2Via2l0LVwiLEc9XCJjb21tXCIsVz1cInJ1bGVcIixWPVwiZGVjbFwiLHo9XCJAa2V5ZnJhbWVzXCI7ZnVuY3Rpb24gSyhlLHQpe2Zvcih2YXIgbj1cIlwiLHI9ZyhlKSxpPTA7aTxyO2krKyluKz10KGVbaV0saSxlLHQpfHxcIlwiO3JldHVybiBufWZ1bmN0aW9uIFkoZSx0LG4scil7c3dpdGNoKGUudHlwZSl7Y2FzZVwiQGltcG9ydFwiOmNhc2UgVjpyZXR1cm4gZS5yZXR1cm49ZS5yZXR1cm58fGUudmFsdWU7Y2FzZSBHOnJldHVyblwiXCI7Y2FzZSB6OnJldHVybiBlLnJldHVybj1lLnZhbHVlK1wie1wiK0soZS5jaGlsZHJlbixyKStcIn1cIjtjYXNlIFc6ZS52YWx1ZT1lLnByb3BzLmpvaW4oXCIsXCIpfXJldHVybiBoKG49SyhlLmNoaWxkcmVuLHIpKT9lLnJldHVybj1lLnZhbHVlK1wie1wiK24rXCJ9XCI6XCJcIn1mdW5jdGlvbiBxKGUpe3JldHVybiB3KFooXCJcIixudWxsLG51bGwsbnVsbCxbXCJcIl0sZT1SKGUpLDAsWzBdLGUpKX1mdW5jdGlvbiBaKGUsdCxuLHIsaSxvLGEsYyx1KXtmb3IodmFyIGY9MCxnPTAsdj1hLF89MCxFPTAsYj0wLFM9MSx5PTEsVD0xLEk9MCxrPVwiXCIsUD1pLFI9byx3PXIsRD1rO3k7KXN3aXRjaChiPUksST1BKCkpe2Nhc2UgNDA6aWYoMTA4IT1iJiY1OD09cChELHYtMSkpey0xIT1kKEQrPWwoTChJKSxcIiZcIixcIiZcXGZcIiksXCImXFxmXCIpJiYoVD0tMSk7YnJlYWt9Y2FzZSAzNDpjYXNlIDM5OmNhc2UgOTE6RCs9TChJKTticmVhaztjYXNlIDk6Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6RCs9QihiKTticmVhaztjYXNlIDkyOkQrPU0oTigpLTEsNyk7Y29udGludWU7Y2FzZSA0Nzpzd2l0Y2goQygpKXtjYXNlIDQyOmNhc2UgNDc6bShYKGooQSgpLE4oKSksdCxuKSx1KTticmVhaztkZWZhdWx0OkQrPVwiL1wifWJyZWFrO2Nhc2UgMTIzKlM6Y1tmKytdPWgoRCkqVDtjYXNlIDEyNSpTOmNhc2UgNTk6Y2FzZSAwOnN3aXRjaChJKXtjYXNlIDA6Y2FzZSAxMjU6eT0wO2Nhc2UgNTkrZzpFPjAmJmgoRCktdiYmbShFPjMyP1EoRCtcIjtcIixyLG4sdi0xKTpRKGwoRCxcIiBcIixcIlwiKStcIjtcIixyLG4sdi0yKSx1KTticmVhaztjYXNlIDU5OkQrPVwiO1wiO2RlZmF1bHQ6aWYobSh3PUooRCx0LG4sZixnLGksYyxrLFA9W10sUj1bXSx2KSxvKSwxMjM9PT1JKWlmKDA9PT1nKVooRCx0LHcsdyxQLG8sdixjLFIpO2Vsc2Ugc3dpdGNoKDk5PT09XyYmMTEwPT09cChELDMpPzEwMDpfKXtjYXNlIDEwMDpjYXNlIDEwOTpjYXNlIDExNTpaKGUsdyx3LHImJm0oSihlLHcsdywwLDAsaSxjLGssaSxQPVtdLHYpLFIpLGksUix2LGMscj9QOlIpO2JyZWFrO2RlZmF1bHQ6WihELHcsdyx3LFtcIlwiXSxSLDAsYyxSKX19Zj1nPUU9MCxTPVQ9MSxrPUQ9XCJcIix2PWE7YnJlYWs7Y2FzZSA1ODp2PTEraChEKSxFPWI7ZGVmYXVsdDppZihTPDEpaWYoMTIzPT1JKS0tUztlbHNlIGlmKDEyNT09SSYmMD09UysrJiYxMjU9PU8oKSljb250aW51ZTtzd2l0Y2goRCs9cyhJKSxJKlMpe2Nhc2UgMzg6VD1nPjA/MTooRCs9XCJcXGZcIiwtMSk7YnJlYWs7Y2FzZSA0NDpjW2YrK109KGgoRCktMSkqVCxUPTE7YnJlYWs7Y2FzZSA2NDo0NT09PUMoKSYmKEQrPUwoQSgpKSksXz1DKCksZz12PWgoaz1EKz14KE4oKSkpLEkrKzticmVhaztjYXNlIDQ1OjQ1PT09YiYmMj09aChEKSYmKFM9MCl9fXJldHVybiBvfWZ1bmN0aW9uIEooZSx0LG4scixpLG8scyxjLGQscCxoKXtmb3IodmFyIG09aS0xLHY9MD09PWk/bzpbXCJcIl0sXz1nKHYpLEU9MCxiPTAsUz0wO0U8cjsrK0UpZm9yKHZhciB5PTAsST1mKGUsbSsxLG09YShiPXNbRV0pKSxPPWU7eTxfOysreSkoTz11KGI+MD92W3ldK1wiIFwiK0k6bChJLC8mXFxmL2csdlt5XSkpKSYmKGRbUysrXT1PKTtyZXR1cm4gVChlLHQsbiwwPT09aT9XOmMsZCxwLGgpfWZ1bmN0aW9uIFgoZSx0LG4pe3JldHVybiBUKGUsdCxuLEcscyhTKSxmKGUsMiwtMiksMCl9ZnVuY3Rpb24gUShlLHQsbixyKXtyZXR1cm4gVChlLHQsbixWLGYoZSwwLHIpLGYoZSxyKzEsLTEpLHIpfXZhciAkPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MCxpPTA7cj1pLGk9QygpLDM4PT09ciYmMTI9PT1pJiYodFtuXT0xKSwhUChpKTspQSgpO3JldHVybiBrKGUsYil9LGVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHcoZnVuY3Rpb24oZSx0KXt2YXIgbj0tMSxyPTQ0O2Rve3N3aXRjaChQKHIpKXtjYXNlIDA6Mzg9PT1yJiYxMj09PUMoKSYmKHRbbl09MSksZVtuXSs9JChiLTEsdCxuKTticmVhaztjYXNlIDI6ZVtuXSs9TChyKTticmVhaztjYXNlIDQ6aWYoNDQ9PT1yKXtlWysrbl09NTg9PT1DKCk/XCImXFxmXCI6XCJcIix0W25dPWVbbl0ubGVuZ3RoO2JyZWFrfWRlZmF1bHQ6ZVtuXSs9cyhyKX19d2hpbGUocj1BKCkpO3JldHVybiBlfShSKGUpLHQpKX0sdGU9bmV3IFdlYWtNYXAsbmU9ZnVuY3Rpb24oZSl7aWYoXCJydWxlXCI9PT1lLnR5cGUmJmUucGFyZW50JiYhKGUubGVuZ3RoPDEpKXtmb3IodmFyIHQ9ZS52YWx1ZSxuPWUucGFyZW50LHI9ZS5jb2x1bW49PT1uLmNvbHVtbiYmZS5saW5lPT09bi5saW5lO1wicnVsZVwiIT09bi50eXBlOylpZighKG49bi5wYXJlbnQpKXJldHVybjtpZigoMSE9PWUucHJvcHMubGVuZ3RofHw1OD09PXQuY2hhckNvZGVBdCgwKXx8dGUuZ2V0KG4pKSYmIXIpe3RlLnNldChlLCEwKTtmb3IodmFyIGk9W10sbz1lZSh0LGkpLGE9bi5wcm9wcyxzPTAsYz0wO3M8by5sZW5ndGg7cysrKWZvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrLGMrKyllLnByb3BzW2NdPWlbc10/b1tzXS5yZXBsYWNlKC8mXFxmL2csYVt1XSk6YVt1XStcIiBcIitvW3NdfX19LHJlPWZ1bmN0aW9uKGUpe2lmKFwiZGVjbFwiPT09ZS50eXBlKXt2YXIgdD1lLnZhbHVlOzEwOD09PXQuY2hhckNvZGVBdCgwKSYmOTg9PT10LmNoYXJDb2RlQXQoMikmJihlLnJldHVybj1cIlwiLGUudmFsdWU9XCJcIil9fTtmdW5jdGlvbiBpZShlLHQpe3N3aXRjaChmdW5jdGlvbihlLHQpe3JldHVybiA0NV5wKGUsMCk/KCgodDw8Ml5wKGUsMCkpPDwyXnAoZSwxKSk8PDJecChlLDIpKTw8Ml5wKGUsMyk6MH0oZSx0KSl7Y2FzZSA1MTAzOnJldHVyblwiLXdlYmtpdC1wcmludC1cIitlK2U7Y2FzZSA1NzM3OmNhc2UgNDIwMTpjYXNlIDMxNzc6Y2FzZSAzNDMzOmNhc2UgMTY0MTpjYXNlIDQ0NTc6Y2FzZSAyOTIxOmNhc2UgNTU3MjpjYXNlIDYzNTY6Y2FzZSA1ODQ0OmNhc2UgMzE5MTpjYXNlIDY2NDU6Y2FzZSAzMDA1OmNhc2UgNjM5MTpjYXNlIDU4Nzk6Y2FzZSA1NjIzOmNhc2UgNjEzNTpjYXNlIDQ1OTk6Y2FzZSA0ODU1OmNhc2UgNDIxNTpjYXNlIDYzODk6Y2FzZSA1MTA5OmNhc2UgNTM2NTpjYXNlIDU2MjE6Y2FzZSAzODI5OnJldHVybiBIK2UrZTtjYXNlIDUzNDk6Y2FzZSA0MjQ2OmNhc2UgNDgxMDpjYXNlIDY5Njg6Y2FzZSAyNzU2OnJldHVybiBIK2UrRitlK1UrZStlO2Nhc2UgNjgyODpjYXNlIDQyNjg6cmV0dXJuIEgrZStVK2UrZTtjYXNlIDYxNjU6cmV0dXJuIEgrZStVK1wiZmxleC1cIitlK2U7Y2FzZSA1MTg3OnJldHVybiBIK2UrbChlLC8oXFx3KykuKyg6W15dKykvLFwiLXdlYmtpdC1ib3gtJDEkMi1tcy1mbGV4LSQxJDJcIikrZTtjYXNlIDU0NDM6cmV0dXJuIEgrZStVK1wiZmxleC1pdGVtLVwiK2woZSwvZmxleC18LXNlbGYvLFwiXCIpK2U7Y2FzZSA0Njc1OnJldHVybiBIK2UrVStcImZsZXgtbGluZS1wYWNrXCIrbChlLC9hbGlnbi1jb250ZW50fGZsZXgtfC1zZWxmLyxcIlwiKStlO2Nhc2UgNTU0ODpyZXR1cm4gSCtlK1UrbChlLFwic2hyaW5rXCIsXCJuZWdhdGl2ZVwiKStlO2Nhc2UgNTI5MjpyZXR1cm4gSCtlK1UrbChlLFwiYmFzaXNcIixcInByZWZlcnJlZC1zaXplXCIpK2U7Y2FzZSA2MDYwOnJldHVyblwiLXdlYmtpdC1ib3gtXCIrbChlLFwiLWdyb3dcIixcIlwiKStIK2UrVStsKGUsXCJncm93XCIsXCJwb3NpdGl2ZVwiKStlO2Nhc2UgNDU1NDpyZXR1cm4gSCtsKGUsLyhbXi1dKSh0cmFuc2Zvcm0pL2csXCIkMS13ZWJraXQtJDJcIikrZTtjYXNlIDYxODc6cmV0dXJuIGwobChsKGUsLyh6b29tLXxncmFiKS8sXCItd2Via2l0LSQxXCIpLC8oaW1hZ2Utc2V0KS8sXCItd2Via2l0LSQxXCIpLGUsXCJcIikrZTtjYXNlIDU0OTU6Y2FzZSAzOTU5OnJldHVybiBsKGUsLyhpbWFnZS1zZXRcXChbXl0qKS8sXCItd2Via2l0LSQxJGAkMVwiKTtjYXNlIDQ5Njg6cmV0dXJuIGwobChlLC8oLis6KShmbGV4LSk/KC4qKS8sXCItd2Via2l0LWJveC1wYWNrOiQzLW1zLWZsZXgtcGFjazokM1wiKSwvcy4rLWJbXjtdKy8sXCJqdXN0aWZ5XCIpK0grZStlO2Nhc2UgNDA5NTpjYXNlIDM1ODM6Y2FzZSA0MDY4OmNhc2UgMjUzMjpyZXR1cm4gbChlLC8oLispLWlubGluZSguKykvLFwiLXdlYmtpdC0kMSQyXCIpK2U7Y2FzZSA4MTE2OmNhc2UgNzA1OTpjYXNlIDU3NTM6Y2FzZSA1NTM1OmNhc2UgNTQ0NTpjYXNlIDU3MDE6Y2FzZSA0OTMzOmNhc2UgNDY3NzpjYXNlIDU1MzM6Y2FzZSA1Nzg5OmNhc2UgNTAyMTpjYXNlIDQ3NjU6aWYoaChlKS0xLXQ+Nilzd2l0Y2gocChlLHQrMSkpe2Nhc2UgMTA5OmlmKDQ1IT09cChlLHQrNCkpYnJlYWs7Y2FzZSAxMDI6cmV0dXJuIGwoZSwvKC4rOikoLispLShbXl0rKS8sXCIkMS13ZWJraXQtJDItJDMkMS1tb3otXCIrKDEwOD09cChlLHQrMyk/XCIkM1wiOlwiJDItJDNcIikpK2U7Y2FzZSAxMTU6cmV0dXJufmQoZSxcInN0cmV0Y2hcIik/aWUobChlLFwic3RyZXRjaFwiLFwiZmlsbC1hdmFpbGFibGVcIiksdCkrZTplfWJyZWFrO2Nhc2UgNDk0OTppZigxMTUhPT1wKGUsdCsxKSlicmVhaztjYXNlIDY0NDQ6c3dpdGNoKHAoZSxoKGUpLTMtKH5kKGUsXCIhaW1wb3J0YW50XCIpJiYxMCkpKXtjYXNlIDEwNzpyZXR1cm4gbChlLFwiOlwiLFwiOi13ZWJraXQtXCIpK2U7Y2FzZSAxMDE6cmV0dXJuIGwoZSwvKC4rOikoW147IV0rKSg7fCEuKyk/LyxcIiQxLXdlYmtpdC1cIisoNDU9PT1wKGUsMTQpP1wiaW5saW5lLVwiOlwiXCIpK1wiYm94JDMkMVwiK1wiLXdlYmtpdC0kMiQzJDFcIitcIi1tcy0kMmJveCQzXCIpK2V9YnJlYWs7Y2FzZSA1OTM2OnN3aXRjaChwKGUsdCsxMSkpe2Nhc2UgMTE0OnJldHVybiBIK2UrVStsKGUsL1tzdmhdXFx3Ky1bdGJscl17Mn0vLFwidGJcIikrZTtjYXNlIDEwODpyZXR1cm4gSCtlK1UrbChlLC9bc3ZoXVxcdystW3RibHJdezJ9LyxcInRiLXJsXCIpK2U7Y2FzZSA0NTpyZXR1cm4gSCtlK1UrbChlLC9bc3ZoXVxcdystW3RibHJdezJ9LyxcImxyXCIpK2V9cmV0dXJuIEgrZStVK2UrZX1yZXR1cm4gZX12YXIgb2U9W2Z1bmN0aW9uKGUsdCxuLHIpe2lmKGUubGVuZ3RoPi0xJiYhZS5yZXR1cm4pc3dpdGNoKGUudHlwZSl7Y2FzZSBWOmUucmV0dXJuPWllKGUudmFsdWUsZS5sZW5ndGgpO2JyZWFrO2Nhc2UgejpyZXR1cm4gSyhbSShlLHt2YWx1ZTpsKGUudmFsdWUsXCJAXCIsXCJALXdlYmtpdC1cIil9KV0scik7Y2FzZSBXOmlmKGUubGVuZ3RoKXJldHVybiBmdW5jdGlvbihlLHQpe3JldHVybiBlLm1hcCh0KS5qb2luKFwiXCIpfShlLnByb3BzLChmdW5jdGlvbih0KXtzd2l0Y2goZnVuY3Rpb24oZSx0KXtyZXR1cm4oZT10LmV4ZWMoZSkpP2VbMF06ZX0odCwvKDo6cGxhY1xcdyt8OnJlYWQtXFx3KykvKSl7Y2FzZVwiOnJlYWQtb25seVwiOmNhc2VcIjpyZWFkLXdyaXRlXCI6cmV0dXJuIEsoW0koZSx7cHJvcHM6W2wodCwvOihyZWFkLVxcdyspLyxcIjotbW96LSQxXCIpXX0pXSxyKTtjYXNlXCI6OnBsYWNlaG9sZGVyXCI6cmV0dXJuIEsoW0koZSx7cHJvcHM6W2wodCwvOihwbGFjXFx3KykvLFwiOi13ZWJraXQtaW5wdXQtJDFcIildfSksSShlLHtwcm9wczpbbCh0LC86KHBsYWNcXHcrKS8sXCI6LW1vei0kMVwiKV19KSxJKGUse3Byb3BzOltsKHQsLzoocGxhY1xcdyspLyxcIi1tcy1pbnB1dC0kMVwiKV19KV0scil9cmV0dXJuXCJcIn0pKX19XSxhZT1mdW5jdGlvbihlKXt2YXIgdD1lLmtleTtpZihcImNzc1wiPT09dCl7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInN0eWxlW2RhdGEtZW1vdGlvbl06bm90KFtkYXRhLXNdKVwiKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG4sKGZ1bmN0aW9uKGUpey0xIT09ZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWVtb3Rpb25cIikuaW5kZXhPZihcIiBcIikmJihkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUpLGUuc2V0QXR0cmlidXRlKFwiZGF0YS1zXCIsXCJcIikpfSkpfXZhciByPWUuc3R5bGlzUGx1Z2luc3x8b2U7dmFyIGksYSxzPXt9LGM9W107aT1lLmNvbnRhaW5lcnx8ZG9jdW1lbnQuaGVhZCxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlW2RhdGEtZW1vdGlvbl49XCInK3QrJyBcIl0nKSwoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuZ2V0QXR0cmlidXRlKFwiZGF0YS1lbW90aW9uXCIpLnNwbGl0KFwiIFwiKSxuPTE7bjx0Lmxlbmd0aDtuKyspc1t0W25dXT0hMDtjLnB1c2goZSl9KSk7dmFyIHUsbCxkPVtZLChsPWZ1bmN0aW9uKGUpe3UuaW5zZXJ0KGUpfSxmdW5jdGlvbihlKXtlLnJvb3R8fChlPWUucmV0dXJuKSYmbChlKX0pXSxwPWZ1bmN0aW9uKGUpe3ZhciB0PWcoZSk7cmV0dXJuIGZ1bmN0aW9uKG4scixpLG8pe2Zvcih2YXIgYT1cIlwiLHM9MDtzPHQ7cysrKWErPWVbc10obixyLGksbyl8fFwiXCI7cmV0dXJuIGF9fShbbmUscmVdLmNvbmNhdChyLGQpKTthPWZ1bmN0aW9uKGUsdCxuLHIpe3U9bixLKHEoZT9lK1wie1wiK3Quc3R5bGVzK1wifVwiOnQuc3R5bGVzKSxwKSxyJiYoZi5pbnNlcnRlZFt0Lm5hbWVdPSEwKX07dmFyIGY9e2tleTp0LHNoZWV0Om5ldyBvKHtrZXk6dCxjb250YWluZXI6aSxub25jZTplLm5vbmNlLHNwZWVkeTplLnNwZWVkeSxwcmVwZW5kOmUucHJlcGVuZCxpbnNlcnRpb25Qb2ludDplLmluc2VydGlvblBvaW50fSksbm9uY2U6ZS5ub25jZSxpbnNlcnRlZDpzLHJlZ2lzdGVyZWQ6e30saW5zZXJ0OmF9O3JldHVybiBmLnNoZWV0Lmh5ZHJhdGUoYyksZn07dmFyIHNlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmtleStcIi1cIit0Lm5hbWU7ITE9PT1uJiZ2b2lkIDA9PT1lLnJlZ2lzdGVyZWRbcl0mJihlLnJlZ2lzdGVyZWRbcl09dC5zdHlsZXMpfTt2YXIgY2U9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MCxyPTAsaT1lLmxlbmd0aDtpPj00OysrcixpLT00KXQ9MTU0MDQ4MzQ3NyooNjU1MzUmKHQ9MjU1JmUuY2hhckNvZGVBdChyKXwoMjU1JmUuY2hhckNvZGVBdCgrK3IpKTw8OHwoMjU1JmUuY2hhckNvZGVBdCgrK3IpKTw8MTZ8KDI1NSZlLmNoYXJDb2RlQXQoKytyKSk8PDI0KSkrKDU5Nzk3Kih0Pj4+MTYpPDwxNiksbj0xNTQwNDgzNDc3Kig2NTUzNSYodF49dD4+PjI0KSkrKDU5Nzk3Kih0Pj4+MTYpPDwxNileMTU0MDQ4MzQ3NyooNjU1MzUmbikrKDU5Nzk3KihuPj4+MTYpPDwxNik7c3dpdGNoKGkpe2Nhc2UgMzpuXj0oMjU1JmUuY2hhckNvZGVBdChyKzIpKTw8MTY7Y2FzZSAyOm5ePSgyNTUmZS5jaGFyQ29kZUF0KHIrMSkpPDw4O2Nhc2UgMTpuPTE1NDA0ODM0NzcqKDY1NTM1JihuXj0yNTUmZS5jaGFyQ29kZUF0KHIpKSkrKDU5Nzk3KihuPj4+MTYpPDwxNil9cmV0dXJuKCgobj0xNTQwNDgzNDc3Kig2NTUzNSYobl49bj4+PjEzKSkrKDU5Nzk3KihuPj4+MTYpPDwxNikpXm4+Pj4xNSk+Pj4wKS50b1N0cmluZygzNil9LHVlPXthbmltYXRpb25JdGVyYXRpb25Db3VudDoxLGJvcmRlckltYWdlT3V0c2V0OjEsYm9yZGVySW1hZ2VTbGljZToxLGJvcmRlckltYWdlV2lkdGg6MSxib3hGbGV4OjEsYm94RmxleEdyb3VwOjEsYm94T3JkaW5hbEdyb3VwOjEsY29sdW1uQ291bnQ6MSxjb2x1bW5zOjEsZmxleDoxLGZsZXhHcm93OjEsZmxleFBvc2l0aXZlOjEsZmxleFNocmluazoxLGZsZXhOZWdhdGl2ZToxLGZsZXhPcmRlcjoxLGdyaWRSb3c6MSxncmlkUm93RW5kOjEsZ3JpZFJvd1NwYW46MSxncmlkUm93U3RhcnQ6MSxncmlkQ29sdW1uOjEsZ3JpZENvbHVtbkVuZDoxLGdyaWRDb2x1bW5TcGFuOjEsZ3JpZENvbHVtblN0YXJ0OjEsbXNHcmlkUm93OjEsbXNHcmlkUm93U3BhbjoxLG1zR3JpZENvbHVtbjoxLG1zR3JpZENvbHVtblNwYW46MSxmb250V2VpZ2h0OjEsbGluZUhlaWdodDoxLG9wYWNpdHk6MSxvcmRlcjoxLG9ycGhhbnM6MSx0YWJTaXplOjEsd2lkb3dzOjEsekluZGV4OjEsem9vbToxLFdlYmtpdExpbmVDbGFtcDoxLGZpbGxPcGFjaXR5OjEsZmxvb2RPcGFjaXR5OjEsc3RvcE9wYWNpdHk6MSxzdHJva2VEYXNoYXJyYXk6MSxzdHJva2VEYXNob2Zmc2V0OjEsc3Ryb2tlTWl0ZXJsaW1pdDoxLHN0cm9rZU9wYWNpdHk6MSxzdHJva2VXaWR0aDoxfTt2YXIgbGU9L1tBLVpdfF5tcy9nLGRlPS9fRU1PXyhbXl9dKz8pXyhbXl0qPylfRU1PXy9nLHBlPWZ1bmN0aW9uKGUpe3JldHVybiA0NT09PWUuY2hhckNvZGVBdCgxKX0sZmU9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJlwiYm9vbGVhblwiIT09dHlwZW9mIGV9LGhlPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB2b2lkIDA9PT10W25dJiYodFtuXT1lKG4pKSx0W25dfX0oKGZ1bmN0aW9uKGUpe3JldHVybiBwZShlKT9lOmUucmVwbGFjZShsZSxcIi0kJlwiKS50b0xvd2VyQ2FzZSgpfSkpLGdlPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImFuaW1hdGlvblwiOmNhc2VcImFuaW1hdGlvbk5hbWVcIjppZihcInN0cmluZ1wiPT09dHlwZW9mIHQpcmV0dXJuIHQucmVwbGFjZShkZSwoZnVuY3Rpb24oZSx0LG4pe3JldHVybiB2ZT17bmFtZTp0LHN0eWxlczpuLG5leHQ6dmV9LHR9KSl9cmV0dXJuIDE9PT11ZVtlXXx8cGUoZSl8fFwibnVtYmVyXCIhPT10eXBlb2YgdHx8MD09PXQ/dDp0K1wicHhcIn07ZnVuY3Rpb24gbWUoZSx0LG4pe2lmKG51bGw9PW4pcmV0dXJuXCJcIjtpZih2b2lkIDAhPT1uLl9fZW1vdGlvbl9zdHlsZXMpcmV0dXJuIG47c3dpdGNoKHR5cGVvZiBuKXtjYXNlXCJib29sZWFuXCI6cmV0dXJuXCJcIjtjYXNlXCJvYmplY3RcIjppZigxPT09bi5hbmltKXJldHVybiB2ZT17bmFtZTpuLm5hbWUsc3R5bGVzOm4uc3R5bGVzLG5leHQ6dmV9LG4ubmFtZTtpZih2b2lkIDAhPT1uLnN0eWxlcyl7dmFyIHI9bi5uZXh0O2lmKHZvaWQgMCE9PXIpZm9yKDt2b2lkIDAhPT1yOyl2ZT17bmFtZTpyLm5hbWUsc3R5bGVzOnIuc3R5bGVzLG5leHQ6dmV9LHI9ci5uZXh0O3JldHVybiBuLnN0eWxlcytcIjtcIn1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByPVwiXCI7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKylyKz1tZShlLHQsbltpXSkrXCI7XCI7ZWxzZSBmb3IodmFyIG8gaW4gbil7dmFyIGE9bltvXTtpZihcIm9iamVjdFwiIT09dHlwZW9mIGEpbnVsbCE9dCYmdm9pZCAwIT09dFthXT9yKz1vK1wie1wiK3RbYV0rXCJ9XCI6ZmUoYSkmJihyKz1oZShvKStcIjpcIitnZShvLGEpK1wiO1wiKTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KGEpfHxcInN0cmluZ1wiIT09dHlwZW9mIGFbMF18fG51bGwhPXQmJnZvaWQgMCE9PXRbYVswXV0pe3ZhciBzPW1lKGUsdCxhKTtzd2l0Y2gobyl7Y2FzZVwiYW5pbWF0aW9uXCI6Y2FzZVwiYW5pbWF0aW9uTmFtZVwiOnIrPWhlKG8pK1wiOlwiK3MrXCI7XCI7YnJlYWs7ZGVmYXVsdDpyKz1vK1wie1wiK3MrXCJ9XCJ9fWVsc2UgZm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspZmUoYVtjXSkmJihyKz1oZShvKStcIjpcIitnZShvLGFbY10pK1wiO1wiKX1yZXR1cm4gcn0oZSx0LG4pO2Nhc2VcImZ1bmN0aW9uXCI6aWYodm9pZCAwIT09ZSl7dmFyIGk9dmUsbz1uKGUpO3JldHVybiB2ZT1pLG1lKGUsdCxvKX19aWYobnVsbD09dClyZXR1cm4gbjt2YXIgYT10W25dO3JldHVybiB2b2lkIDAhPT1hP2E6bn12YXIgdmUsX2U9L2xhYmVsOlxccyooW15cXHM7XFxue10rKVxccyooO3wkKS9nO3ZhciBFZT0hIWkudXNlSW5zZXJ0aW9uRWZmZWN0JiZpLnVzZUluc2VydGlvbkVmZmVjdCxiZT1FZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0sU2U9KEVlfHxyLnVzZUxheW91dEVmZmVjdCx7fS5oYXNPd25Qcm9wZXJ0eSkseWU9KDAsci5jcmVhdGVDb250ZXh0KShcInVuZGVmaW5lZFwiIT09dHlwZW9mIEhUTUxFbGVtZW50P2FlKHtrZXk6XCJjc3NcIn0pOm51bGwpO3llLlByb3ZpZGVyO3ZhciBUZT1mdW5jdGlvbihlKXtyZXR1cm4oMCxyLmZvcndhcmRSZWYpKChmdW5jdGlvbih0LG4pe3ZhciBpPSgwLHIudXNlQ29udGV4dCkoeWUpO3JldHVybiBlKHQsaSxuKX0pKX0sSWU9KDAsci5jcmVhdGVDb250ZXh0KSh7fSk7dmFyIE9lPVwiX19FTU9USU9OX1RZUEVfUExFQVNFX0RPX05PVF9VU0VfX1wiLEFlPWZ1bmN0aW9uKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIHQpU2UuY2FsbCh0LHIpJiYobltyXT10W3JdKTtyZXR1cm4gbltPZV09ZSxufSxDZT1mdW5jdGlvbihlKXt2YXIgdD1lLmNhY2hlLG49ZS5zZXJpYWxpemVkLHI9ZS5pc1N0cmluZ1RhZztzZSh0LG4scik7YmUoKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtzZShlLHQsbik7dmFyIHI9ZS5rZXkrXCItXCIrdC5uYW1lO2lmKHZvaWQgMD09PWUuaW5zZXJ0ZWRbdC5uYW1lXSl7dmFyIGk9dDtkb3tlLmluc2VydCh0PT09aT9cIi5cIityOlwiXCIsaSxlLnNoZWV0LCEwKSxpPWkubmV4dH13aGlsZSh2b2lkIDAhPT1pKX19KHQsbixyKX0pKTtyZXR1cm4gbnVsbH0sTmU9VGUoKGZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1lLmNzcztcInN0cmluZ1wiPT09dHlwZW9mIGkmJnZvaWQgMCE9PXQucmVnaXN0ZXJlZFtpXSYmKGk9dC5yZWdpc3RlcmVkW2ldKTt2YXIgbz1lW09lXSxhPVtpXSxzPVwiXCI7XCJzdHJpbmdcIj09PXR5cGVvZiBlLmNsYXNzTmFtZT9zPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1cIlwiO3JldHVybiBuLnNwbGl0KFwiIFwiKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2b2lkIDAhPT1lW25dP3QucHVzaChlW25dK1wiO1wiKTpyKz1uK1wiIFwifSkpLHJ9KHQucmVnaXN0ZXJlZCxhLGUuY2xhc3NOYW1lKTpudWxsIT1lLmNsYXNzTmFtZSYmKHM9ZS5jbGFzc05hbWUrXCIgXCIpO3ZhciBjPWZ1bmN0aW9uKGUsdCxuKXtpZigxPT09ZS5sZW5ndGgmJlwib2JqZWN0XCI9PT10eXBlb2YgZVswXSYmbnVsbCE9PWVbMF0mJnZvaWQgMCE9PWVbMF0uc3R5bGVzKXJldHVybiBlWzBdO3ZhciByPSEwLGk9XCJcIjt2ZT12b2lkIDA7dmFyIG89ZVswXTtudWxsPT1vfHx2b2lkIDA9PT1vLnJhdz8ocj0hMSxpKz1tZShuLHQsbykpOmkrPW9bMF07Zm9yKHZhciBhPTE7YTxlLmxlbmd0aDthKyspaSs9bWUobix0LGVbYV0pLHImJihpKz1vW2FdKTtfZS5sYXN0SW5kZXg9MDtmb3IodmFyIHMsYz1cIlwiO251bGwhPT0ocz1fZS5leGVjKGkpKTspYys9XCItXCIrc1sxXTtyZXR1cm57bmFtZTpjZShpKStjLHN0eWxlczppLG5leHQ6dmV9fShhLHZvaWQgMCwoMCxyLnVzZUNvbnRleHQpKEllKSk7cys9dC5rZXkrXCItXCIrYy5uYW1lO3ZhciB1PXt9O2Zvcih2YXIgbCBpbiBlKVNlLmNhbGwoZSxsKSYmXCJjc3NcIiE9PWwmJmwhPT1PZSYmKHVbbF09ZVtsXSk7cmV0dXJuIHUucmVmPW4sdS5jbGFzc05hbWU9cywoMCxyLmNyZWF0ZUVsZW1lbnQpKHIuRnJhZ21lbnQsbnVsbCwoMCxyLmNyZWF0ZUVsZW1lbnQpKENlLHtjYWNoZTp0LHNlcmlhbGl6ZWQ6Yyxpc1N0cmluZ1RhZzpcInN0cmluZ1wiPT09dHlwZW9mIG99KSwoMCxyLmNyZWF0ZUVsZW1lbnQpKG8sdSkpfSkpO24oODY3OSk7dmFyIGtlPW4oODU4OTMpLFBlPWtlLkZyYWdtZW50O2Z1bmN0aW9uIFJlKGUsdCxuKXtyZXR1cm4gU2UuY2FsbCh0LFwiY3NzXCIpPygwLGtlLmpzeCkoTmUsQWUoZSx0KSxuKTooMCxrZS5qc3gpKGUsdCxuKX1mdW5jdGlvbiB3ZShlLHQsbil7cmV0dXJuIFNlLmNhbGwodCxcImNzc1wiKT8oMCxrZS5qc3hzKShOZSxBZShlLHQpLG4pOigwLGtlLmpzeHMpKGUsdCxuKX19LDk1OTU3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUsdCl7dmFyIG49dCYmdC5jYWNoZT90LmNhY2hlOmwscj10JiZ0LnNlcmlhbGl6ZXI/dC5zZXJpYWxpemVyOmM7cmV0dXJuKHQmJnQuc3RyYXRlZ3k/dC5zdHJhdGVneTpzKShlLHtjYWNoZTpuLHNlcmlhbGl6ZXI6cn0pfWZ1bmN0aW9uIGkoZSx0LG4scil7dmFyIGksbz1udWxsPT0oaT1yKXx8XCJudW1iZXJcIj09PXR5cGVvZiBpfHxcImJvb2xlYW5cIj09PXR5cGVvZiBpP3I6bihyKSxhPXQuZ2V0KG8pO3JldHVyblwidW5kZWZpbmVkXCI9PT10eXBlb2YgYSYmKGE9ZS5jYWxsKHRoaXMsciksdC5zZXQobyxhKSksYX1mdW5jdGlvbiBvKGUsdCxuKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyksaT1uKHIpLG89dC5nZXQoaSk7cmV0dXJuXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBvJiYobz1lLmFwcGx5KHRoaXMsciksdC5zZXQoaSxvKSksb31mdW5jdGlvbiBhKGUsdCxuLHIsaSl7cmV0dXJuIG4uYmluZCh0LGUscixpKX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGEoZSx0aGlzLDE9PT1lLmxlbmd0aD9pOm8sdC5jYWNoZS5jcmVhdGUoKSx0LnNlcmlhbGl6ZXIpfW4uZCh0LHtBOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LFo6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTt2YXIgYz1mdW5jdGlvbigpe3JldHVybiBKU09OLnN0cmluZ2lmeShhcmd1bWVudHMpfTtmdW5jdGlvbiB1KCl7dGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpfXUucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jYWNoZVtlXX0sdS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5jYWNoZVtlXT10fTt2YXIgbD17Y3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1fX0sZD17dmFyaWFkaWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYShlLHRoaXMsbyx0LmNhY2hlLmNyZWF0ZSgpLHQuc2VyaWFsaXplcil9LG1vbmFkaWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYShlLHRoaXMsaSx0LmNhY2hlLmNyZWF0ZSgpLHQuc2VyaWFsaXplcil9fX0sODgyMjI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHskNjpmdW5jdGlvbigpe3JldHVybiBkfSxPVjpmdW5jdGlvbigpe3JldHVybiBzfSxRZTpmdW5jdGlvbigpe3JldHVybiB1fSxSdzpmdW5jdGlvbigpe3JldHVybiBvfSxYOTpmdW5jdGlvbigpe3JldHVybiBsfSxiYzpmdW5jdGlvbigpe3JldHVybiByfSxnYjpmdW5jdGlvbigpe3JldHVybiBjfSx3STpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByLGk9big3MDY1NSk7IWZ1bmN0aW9uKGUpe2UuRk9STUFUX0VSUk9SPVwiRk9STUFUX0VSUk9SXCIsZS5VTlNVUFBPUlRFRF9GT1JNQVRURVI9XCJVTlNVUFBPUlRFRF9GT1JNQVRURVJcIixlLklOVkFMSURfQ09ORklHPVwiSU5WQUxJRF9DT05GSUdcIixlLk1JU1NJTkdfREFUQT1cIk1JU1NJTkdfREFUQVwiLGUuTUlTU0lOR19UUkFOU0xBVElPTj1cIk1JU1NJTkdfVFJBTlNMQVRJT05cIn0ocnx8KHI9e30pKTt2YXIgbz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4scixpKXt2YXIgbz10aGlzLGE9aT9pIGluc3RhbmNlb2YgRXJyb3I/aTpuZXcgRXJyb3IoU3RyaW5nKGkpKTp2b2lkIDA7cmV0dXJuKG89ZS5jYWxsKHRoaXMsXCJbQGZvcm1hdGpzL2ludGwgRXJyb3IgXCIuY29uY2F0KG4sXCJdIFwiKS5jb25jYXQocixcIlxcblwiKS5jb25jYXQoYT9cIlxcblwiLmNvbmNhdChhLm1lc3NhZ2UsXCJcXG5cIikuY29uY2F0KGEuc3RhY2spOlwiXCIpKXx8dGhpcykuY29kZT1uLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uobyx0KSxvfXJldHVybigwLGkuWlQpKHQsZSksdH0oRXJyb3IpLGE9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4pe3JldHVybiBlLmNhbGwodGhpcyxyLlVOU1VQUE9SVEVEX0ZPUk1BVFRFUix0LG4pfHx0aGlzfXJldHVybigwLGkuWlQpKHQsZSksdH0obykscz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7cmV0dXJuIGUuY2FsbCh0aGlzLHIuSU5WQUxJRF9DT05GSUcsdCxuKXx8dGhpc31yZXR1cm4oMCxpLlpUKSh0LGUpLHR9KG8pLGM9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4pe3JldHVybiBlLmNhbGwodGhpcyxyLk1JU1NJTkdfREFUQSx0LG4pfHx0aGlzfXJldHVybigwLGkuWlQpKHQsZSksdH0obyksdT1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbixpKXtyZXR1cm4gZS5jYWxsKHRoaXMsci5GT1JNQVRfRVJST1IsXCJcIi5jb25jYXQodCxcIlxcbkxvY2FsZTogXCIpLmNvbmNhdChuLFwiXFxuXCIpLGkpfHx0aGlzfXJldHVybigwLGkuWlQpKHQsZSksdH0obyksbD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbixyLGkpe3ZhciBvPWUuY2FsbCh0aGlzLFwiXCIuY29uY2F0KHQsXCJcXG5NZXNzYWdlSUQ6IFwiKS5jb25jYXQobnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuaWQsXCJcXG5EZWZhdWx0IE1lc3NhZ2U6IFwiKS5jb25jYXQobnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuZGVmYXVsdE1lc3NhZ2UsXCJcXG5EZXNjcmlwdGlvbjogXCIpLmNvbmNhdChudWxsPT09cnx8dm9pZCAwPT09cj92b2lkIDA6ci5kZXNjcmlwdGlvbixcIlxcblwiKSxuLGkpfHx0aGlzO3JldHVybiBvLmRlc2NyaXB0b3I9cixvfXJldHVybigwLGkuWlQpKHQsZSksdH0odSksZD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsbil7dmFyIGk9ZS5jYWxsKHRoaXMsci5NSVNTSU5HX1RSQU5TTEFUSU9OLCdNaXNzaW5nIG1lc3NhZ2U6IFwiJy5jb25jYXQodC5pZCwnXCIgZm9yIGxvY2FsZSBcIicpLmNvbmNhdChuLCdcIiwgdXNpbmcgJykuY29uY2F0KHQuZGVmYXVsdE1lc3NhZ2U/XCJkZWZhdWx0IG1lc3NhZ2UgKFwiLmNvbmNhdChcInN0cmluZ1wiPT09dHlwZW9mIHQuZGVmYXVsdE1lc3NhZ2U/dC5kZWZhdWx0TWVzc2FnZTp0LmRlZmF1bHRNZXNzYWdlLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIG51bGwhPT0odD1lLnZhbHVlKSYmdm9pZCAwIT09dD90OkpTT04uc3RyaW5naWZ5KGUpfSkpLmpvaW4oKSxcIilcIik6XCJpZFwiLFwiIGFzIGZhbGxiYWNrLlwiKSl8fHRoaXM7cmV0dXJuIGkuZGVzY3JpcHRvcj10LGl9cmV0dXJuKDAsaS5aVCkodCxlKSx0fShvKX0sODI2NDQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtMNjpmdW5jdGlvbigpe3JldHVybiBzfSxTbjpmdW5jdGlvbigpe3JldHVybiB1fSxUQjpmdW5jdGlvbigpe3JldHVybiBwfSxaMDpmdW5jdGlvbigpe3JldHVybiBjfSxheDpmdW5jdGlvbigpe3JldHVybiBkfX0pO3ZhciByPW4oNzA2NTUpLGk9bigzNDc1MCksbz1uKDk1OTU3KSxhPW4oODgyMjIpO2Z1bmN0aW9uIHMoZSx0LG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj17fSksdC5yZWR1Y2UoKGZ1bmN0aW9uKHQscil7cmV0dXJuIHIgaW4gZT90W3JdPWVbcl06ciBpbiBuJiYodFtyXT1uW3JdKSx0fSkse30pfXZhciBjPXtmb3JtYXRzOnt9LG1lc3NhZ2VzOnt9LHRpbWVab25lOnZvaWQgMCxkZWZhdWx0TG9jYWxlOlwiZW5cIixkZWZhdWx0Rm9ybWF0czp7fSxmYWxsYmFja09uRW1wdHlTdHJpbmc6ITAsb25FcnJvcjpmdW5jdGlvbihlKXswfSxvbldhcm46ZnVuY3Rpb24oZSl7MH19O2Z1bmN0aW9uIHUoKXtyZXR1cm57ZGF0ZVRpbWU6e30sbnVtYmVyOnt9LG1lc3NhZ2U6e30scmVsYXRpdmVUaW1lOnt9LHBsdXJhbFJ1bGVzOnt9LGxpc3Q6e30sZGlzcGxheU5hbWVzOnt9fX1mdW5jdGlvbiBsKGUpe3JldHVybntjcmVhdGU6ZnVuY3Rpb24oKXtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSxzZXQ6ZnVuY3Rpb24odCxuKXtlW3RdPW59fX19fWZ1bmN0aW9uIGQoZSl7dm9pZCAwPT09ZSYmKGU9e2RhdGVUaW1lOnt9LG51bWJlcjp7fSxtZXNzYWdlOnt9LHJlbGF0aXZlVGltZTp7fSxwbHVyYWxSdWxlczp7fSxsaXN0Ont9LGRpc3BsYXlOYW1lczp7fX0pO3ZhciB0PUludGwuUmVsYXRpdmVUaW1lRm9ybWF0LG49SW50bC5MaXN0Rm9ybWF0LGE9SW50bC5EaXNwbGF5TmFtZXMscz0oMCxvLlopKChmdW5jdGlvbigpe2Zvcih2YXIgZSx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiBuZXcoKGU9SW50bC5EYXRlVGltZUZvcm1hdCkuYmluZC5hcHBseShlLCgwLHIuZXYpKFt2b2lkIDBdLHQsITEpKSl9KSx7Y2FjaGU6bChlLmRhdGVUaW1lKSxzdHJhdGVneTpvLkEudmFyaWFkaWN9KSxjPSgwLG8uWikoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIG5ldygoZT1JbnRsLk51bWJlckZvcm1hdCkuYmluZC5hcHBseShlLCgwLHIuZXYpKFt2b2lkIDBdLHQsITEpKSl9KSx7Y2FjaGU6bChlLm51bWJlciksc3RyYXRlZ3k6by5BLnZhcmlhZGljfSksdT0oMCxvLlopKChmdW5jdGlvbigpe2Zvcih2YXIgZSx0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiBuZXcoKGU9SW50bC5QbHVyYWxSdWxlcykuYmluZC5hcHBseShlLCgwLHIuZXYpKFt2b2lkIDBdLHQsITEpKSl9KSx7Y2FjaGU6bChlLnBsdXJhbFJ1bGVzKSxzdHJhdGVneTpvLkEudmFyaWFkaWN9KTtyZXR1cm57Z2V0RGF0ZVRpbWVGb3JtYXQ6cyxnZXROdW1iZXJGb3JtYXQ6YyxnZXRNZXNzYWdlRm9ybWF0OigwLG8uWikoKGZ1bmN0aW9uKGUsdCxuLG8pe3JldHVybiBuZXcgaS5DKGUsdCxuLCgwLHIucGkpKHtmb3JtYXR0ZXJzOntnZXROdW1iZXJGb3JtYXQ6YyxnZXREYXRlVGltZUZvcm1hdDpzLGdldFBsdXJhbFJ1bGVzOnV9fSxvfHx7fSkpfSkse2NhY2hlOmwoZS5tZXNzYWdlKSxzdHJhdGVneTpvLkEudmFyaWFkaWN9KSxnZXRSZWxhdGl2ZVRpbWVGb3JtYXQ6KDAsby5aKSgoZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIG5ldyh0LmJpbmQuYXBwbHkodCwoMCxyLmV2KShbdm9pZCAwXSxlLCExKSkpfSkse2NhY2hlOmwoZS5yZWxhdGl2ZVRpbWUpLHN0cmF0ZWd5Om8uQS52YXJpYWRpY30pLGdldFBsdXJhbFJ1bGVzOnUsZ2V0TGlzdEZvcm1hdDooMCxvLlopKChmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gbmV3KG4uYmluZC5hcHBseShuLCgwLHIuZXYpKFt2b2lkIDBdLGUsITEpKSl9KSx7Y2FjaGU6bChlLmxpc3QpLHN0cmF0ZWd5Om8uQS52YXJpYWRpY30pLGdldERpc3BsYXlOYW1lczooMCxvLlopKChmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gbmV3KGEuYmluZC5hcHBseShhLCgwLHIuZXYpKFt2b2lkIDBdLGUsITEpKSl9KSx7Y2FjaGU6bChlLmRpc3BsYXlOYW1lcyksc3RyYXRlZ3k6by5BLnZhcmlhZGljfSl9fWZ1bmN0aW9uIHAoZSx0LG4scil7dmFyIGksbz1lJiZlW3RdO2lmKG8mJihpPW9bbl0pLGkpcmV0dXJuIGk7cihuZXcgYS53SShcIk5vIFwiLmNvbmNhdCh0LFwiIGZvcm1hdCBuYW1lZDogXCIpLmNvbmNhdChuKSkpfX0sODU2NDU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHt3RDpmdW5jdGlvbigpe3JldHVybiBpfSxWRzpmdW5jdGlvbigpe3JldHVybiBjfSxycDpmdW5jdGlvbigpe3JldHVybiBsfSxJaTpmdW5jdGlvbigpe3JldHVybiB2fSxPNDpmdW5jdGlvbigpe3JldHVybiBzfSx1ZjpmdW5jdGlvbigpe3JldHVybiB1fSxXaDpmdW5jdGlvbigpe3JldHVybiBtfSxKbzpmdW5jdGlvbigpe3JldHVybiBmfSx5eDpmdW5jdGlvbigpe3JldHVybiBofSxXaTpmdW5jdGlvbigpe3JldHVybiBwfSxISTpmdW5jdGlvbigpe3JldHVybiBnfSxwZTpmdW5jdGlvbigpe3JldHVybiBkfSxRYzpmdW5jdGlvbigpe3JldHVybiBvZX19KTt2YXIgcixpLG8sYT1uKDcwNjU1KTtmdW5jdGlvbiBzKGUpe3JldHVybiBlLnR5cGU9PT1pLmxpdGVyYWx9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZS50eXBlPT09aS5hcmd1bWVudH1mdW5jdGlvbiB1KGUpe3JldHVybiBlLnR5cGU9PT1pLm51bWJlcn1mdW5jdGlvbiBsKGUpe3JldHVybiBlLnR5cGU9PT1pLmRhdGV9ZnVuY3Rpb24gZChlKXtyZXR1cm4gZS50eXBlPT09aS50aW1lfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGUudHlwZT09PWkuc2VsZWN0fWZ1bmN0aW9uIGYoZSl7cmV0dXJuIGUudHlwZT09PWkucGx1cmFsfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGUudHlwZT09PWkucG91bmR9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gZS50eXBlPT09aS50YWd9ZnVuY3Rpb24gbShlKXtyZXR1cm4hKCFlfHxcIm9iamVjdFwiIT09dHlwZW9mIGV8fGUudHlwZSE9PW8ubnVtYmVyKX1mdW5jdGlvbiB2KGUpe3JldHVybiEoIWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZXx8ZS50eXBlIT09by5kYXRlVGltZSl9IWZ1bmN0aW9uKGUpe2VbZS5FWFBFQ1RfQVJHVU1FTlRfQ0xPU0lOR19CUkFDRT0xXT1cIkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFXCIsZVtlLkVNUFRZX0FSR1VNRU5UPTJdPVwiRU1QVFlfQVJHVU1FTlRcIixlW2UuTUFMRk9STUVEX0FSR1VNRU5UPTNdPVwiTUFMRk9STUVEX0FSR1VNRU5UXCIsZVtlLkVYUEVDVF9BUkdVTUVOVF9UWVBFPTRdPVwiRVhQRUNUX0FSR1VNRU5UX1RZUEVcIixlW2UuSU5WQUxJRF9BUkdVTUVOVF9UWVBFPTVdPVwiSU5WQUxJRF9BUkdVTUVOVF9UWVBFXCIsZVtlLkVYUEVDVF9BUkdVTUVOVF9TVFlMRT02XT1cIkVYUEVDVF9BUkdVTUVOVF9TVFlMRVwiLGVbZS5JTlZBTElEX05VTUJFUl9TS0VMRVRPTj03XT1cIklOVkFMSURfTlVNQkVSX1NLRUxFVE9OXCIsZVtlLklOVkFMSURfREFURV9USU1FX1NLRUxFVE9OPThdPVwiSU5WQUxJRF9EQVRFX1RJTUVfU0tFTEVUT05cIixlW2UuRVhQRUNUX05VTUJFUl9TS0VMRVRPTj05XT1cIkVYUEVDVF9OVU1CRVJfU0tFTEVUT05cIixlW2UuRVhQRUNUX0RBVEVfVElNRV9TS0VMRVRPTj0xMF09XCJFWFBFQ1RfREFURV9USU1FX1NLRUxFVE9OXCIsZVtlLlVOQ0xPU0VEX1FVT1RFX0lOX0FSR1VNRU5UX1NUWUxFPTExXT1cIlVOQ0xPU0VEX1FVT1RFX0lOX0FSR1VNRU5UX1NUWUxFXCIsZVtlLkVYUEVDVF9TRUxFQ1RfQVJHVU1FTlRfT1BUSU9OUz0xMl09XCJFWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX09QVElPTlNcIixlW2UuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUU9MTNdPVwiRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9PRkZTRVRfVkFMVUVcIixlW2UuSU5WQUxJRF9QTFVSQUxfQVJHVU1FTlRfT0ZGU0VUX1ZBTFVFPTE0XT1cIklOVkFMSURfUExVUkFMX0FSR1VNRU5UX09GRlNFVF9WQUxVRVwiLGVbZS5FWFBFQ1RfU0VMRUNUX0FSR1VNRU5UX1NFTEVDVE9SPTE1XT1cIkVYUEVDVF9TRUxFQ1RfQVJHVU1FTlRfU0VMRUNUT1JcIixlW2UuRVhQRUNUX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUj0xNl09XCJFWFBFQ1RfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SXCIsZVtlLkVYUEVDVF9TRUxFQ1RfQVJHVU1FTlRfU0VMRUNUT1JfRlJBR01FTlQ9MTddPVwiRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUl9GUkFHTUVOVFwiLGVbZS5FWFBFQ1RfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SX0ZSQUdNRU5UPTE4XT1cIkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JfRlJBR01FTlRcIixlW2UuSU5WQUxJRF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1I9MTldPVwiSU5WQUxJRF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1JcIixlW2UuRFVQTElDQVRFX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUj0yMF09XCJEVVBMSUNBVEVfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SXCIsZVtlLkRVUExJQ0FURV9TRUxFQ1RfQVJHVU1FTlRfU0VMRUNUT1I9MjFdPVwiRFVQTElDQVRFX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUlwiLGVbZS5NSVNTSU5HX09USEVSX0NMQVVTRT0yMl09XCJNSVNTSU5HX09USEVSX0NMQVVTRVwiLGVbZS5JTlZBTElEX1RBRz0yM109XCJJTlZBTElEX1RBR1wiLGVbZS5JTlZBTElEX1RBR19OQU1FPTI1XT1cIklOVkFMSURfVEFHX05BTUVcIixlW2UuVU5NQVRDSEVEX0NMT1NJTkdfVEFHPTI2XT1cIlVOTUFUQ0hFRF9DTE9TSU5HX1RBR1wiLGVbZS5VTkNMT1NFRF9UQUc9MjddPVwiVU5DTE9TRURfVEFHXCJ9KHJ8fChyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLmxpdGVyYWw9MF09XCJsaXRlcmFsXCIsZVtlLmFyZ3VtZW50PTFdPVwiYXJndW1lbnRcIixlW2UubnVtYmVyPTJdPVwibnVtYmVyXCIsZVtlLmRhdGU9M109XCJkYXRlXCIsZVtlLnRpbWU9NF09XCJ0aW1lXCIsZVtlLnNlbGVjdD01XT1cInNlbGVjdFwiLGVbZS5wbHVyYWw9Nl09XCJwbHVyYWxcIixlW2UucG91bmQ9N109XCJwb3VuZFwiLGVbZS50YWc9OF09XCJ0YWdcIn0oaXx8KGk9e30pKSxmdW5jdGlvbihlKXtlW2UubnVtYmVyPTBdPVwibnVtYmVyXCIsZVtlLmRhdGVUaW1lPTFdPVwiZGF0ZVRpbWVcIn0ob3x8KG89e30pKTt2YXIgXz0vWyBcXHhBMFxcdTE2ODBcXHUyMDAwLVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBdLyxFPS8oPzpbRWVjXXsxLDZ9fEd7MSw1fXxbUXFdezEsNX18KD86W3lZdXJdK3xVezEsNX0pfFtNTF17MSw1fXxkezEsMn18RHsxLDN9fEZ7MX18W2FiQl17MSw1fXxbaGtIS117MSwyfXx3ezEsMn18V3sxfXxtezEsMn18c3sxLDJ9fFt6Wk92VnhYXXsxLDR9KSg/PShbXiddKidbXiddKicpKlteJ10qJCkvZztmdW5jdGlvbiBiKGUpe3ZhciB0PXt9O3JldHVybiBlLnJlcGxhY2UoRSwoZnVuY3Rpb24oZSl7dmFyIG49ZS5sZW5ndGg7c3dpdGNoKGVbMF0pe2Nhc2VcIkdcIjp0LmVyYT00PT09bj9cImxvbmdcIjo1PT09bj9cIm5hcnJvd1wiOlwic2hvcnRcIjticmVhaztjYXNlXCJ5XCI6dC55ZWFyPTI9PT1uP1wiMi1kaWdpdFwiOlwibnVtZXJpY1wiO2JyZWFrO2Nhc2VcIllcIjpjYXNlXCJ1XCI6Y2FzZVwiVVwiOmNhc2VcInJcIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcihcImBZL3UvVS9yYCAoeWVhcikgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWQsIHVzZSBgeWAgaW5zdGVhZFwiKTtjYXNlXCJxXCI6Y2FzZVwiUVwiOnRocm93IG5ldyBSYW5nZUVycm9yKFwiYHEvUWAgKHF1YXJ0ZXIpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkXCIpO2Nhc2VcIk1cIjpjYXNlXCJMXCI6dC5tb250aD1bXCJudW1lcmljXCIsXCIyLWRpZ2l0XCIsXCJzaG9ydFwiLFwibG9uZ1wiLFwibmFycm93XCJdW24tMV07YnJlYWs7Y2FzZVwid1wiOmNhc2VcIldcIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcihcImB3L1dgICh3ZWVrKSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZFwiKTtjYXNlXCJkXCI6dC5kYXk9W1wibnVtZXJpY1wiLFwiMi1kaWdpdFwiXVtuLTFdO2JyZWFrO2Nhc2VcIkRcIjpjYXNlXCJGXCI6Y2FzZVwiZ1wiOnRocm93IG5ldyBSYW5nZUVycm9yKFwiYEQvRi9nYCAoZGF5KSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCwgdXNlIGBkYCBpbnN0ZWFkXCIpO2Nhc2VcIkVcIjp0LndlZWtkYXk9ND09PW4/XCJzaG9ydFwiOjU9PT1uP1wibmFycm93XCI6XCJzaG9ydFwiO2JyZWFrO2Nhc2VcImVcIjppZihuPDQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJgZS4uZWVlYCAod2Vla2RheSkgcGF0dGVybnMgYXJlIG5vdCBzdXBwb3J0ZWRcIik7dC53ZWVrZGF5PVtcInNob3J0XCIsXCJsb25nXCIsXCJuYXJyb3dcIixcInNob3J0XCJdW24tNF07YnJlYWs7Y2FzZVwiY1wiOmlmKG48NCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcImBjLi5jY2NgICh3ZWVrZGF5KSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZFwiKTt0LndlZWtkYXk9W1wic2hvcnRcIixcImxvbmdcIixcIm5hcnJvd1wiLFwic2hvcnRcIl1bbi00XTticmVhaztjYXNlXCJhXCI6dC5ob3VyMTI9ITA7YnJlYWs7Y2FzZVwiYlwiOmNhc2VcIkJcIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcihcImBiL0JgIChwZXJpb2QpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYGFgIGluc3RlYWRcIik7Y2FzZVwiaFwiOnQuaG91ckN5Y2xlPVwiaDEyXCIsdC5ob3VyPVtcIm51bWVyaWNcIixcIjItZGlnaXRcIl1bbi0xXTticmVhaztjYXNlXCJIXCI6dC5ob3VyQ3ljbGU9XCJoMjNcIix0LmhvdXI9W1wibnVtZXJpY1wiLFwiMi1kaWdpdFwiXVtuLTFdO2JyZWFrO2Nhc2VcIktcIjp0LmhvdXJDeWNsZT1cImgxMVwiLHQuaG91cj1bXCJudW1lcmljXCIsXCIyLWRpZ2l0XCJdW24tMV07YnJlYWs7Y2FzZVwia1wiOnQuaG91ckN5Y2xlPVwiaDI0XCIsdC5ob3VyPVtcIm51bWVyaWNcIixcIjItZGlnaXRcIl1bbi0xXTticmVhaztjYXNlXCJqXCI6Y2FzZVwiSlwiOmNhc2VcIkNcIjp0aHJvdyBuZXcgUmFuZ2VFcnJvcihcImBqL0ovQ2AgKGhvdXIpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYGgvSC9LL2tgIGluc3RlYWRcIik7Y2FzZVwibVwiOnQubWludXRlPVtcIm51bWVyaWNcIixcIjItZGlnaXRcIl1bbi0xXTticmVhaztjYXNlXCJzXCI6dC5zZWNvbmQ9W1wibnVtZXJpY1wiLFwiMi1kaWdpdFwiXVtuLTFdO2JyZWFrO2Nhc2VcIlNcIjpjYXNlXCJBXCI6dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJgUy9BYCAoc2Vjb25kKSBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZCwgdXNlIGBzYCBpbnN0ZWFkXCIpO2Nhc2VcInpcIjp0LnRpbWVab25lTmFtZT1uPDQ/XCJzaG9ydFwiOlwibG9uZ1wiO2JyZWFrO2Nhc2VcIlpcIjpjYXNlXCJPXCI6Y2FzZVwidlwiOmNhc2VcIlZcIjpjYXNlXCJYXCI6Y2FzZVwieFwiOnRocm93IG5ldyBSYW5nZUVycm9yKFwiYFovTy92L1YvWC94YCAodGltZVpvbmUpIHBhdHRlcm5zIGFyZSBub3Qgc3VwcG9ydGVkLCB1c2UgYHpgIGluc3RlYWRcIil9cmV0dXJuXCJcIn0pKSx0fXZhciBTPS9bXFx0LVxcciBcXHg4NVxcdTIwMEVcXHUyMDBGXFx1MjAyOFxcdTIwMjldL2k7dmFyIHk9L15cXC4oPzooMCspKFxcKik/fCgjKyl8KDArKSgjKykpJC9nLFQ9L14oQCspPyhcXCt8IyspP1tyc10/JC9nLEk9LyhcXCopKDArKXwoIyspKDArKXwoMCspL2csTz0vXigwKykkLztmdW5jdGlvbiBBKGUpe3ZhciB0PXt9O3JldHVyblwiclwiPT09ZVtlLmxlbmd0aC0xXT90LnJvdW5kaW5nUHJpb3JpdHk9XCJtb3JlUHJlY2lzaW9uXCI6XCJzXCI9PT1lW2UubGVuZ3RoLTFdJiYodC5yb3VuZGluZ1ByaW9yaXR5PVwibGVzc1ByZWNpc2lvblwiKSxlLnJlcGxhY2UoVCwoZnVuY3Rpb24oZSxuLHIpe3JldHVyblwic3RyaW5nXCIhPT10eXBlb2Ygcj8odC5taW5pbXVtU2lnbmlmaWNhbnREaWdpdHM9bi5sZW5ndGgsdC5tYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM9bi5sZW5ndGgpOlwiK1wiPT09cj90Lm1pbmltdW1TaWduaWZpY2FudERpZ2l0cz1uLmxlbmd0aDpcIiNcIj09PW5bMF0/dC5tYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM9bi5sZW5ndGg6KHQubWluaW11bVNpZ25pZmljYW50RGlnaXRzPW4ubGVuZ3RoLHQubWF4aW11bVNpZ25pZmljYW50RGlnaXRzPW4ubGVuZ3RoKyhcInN0cmluZ1wiPT09dHlwZW9mIHI/ci5sZW5ndGg6MCkpLFwiXCJ9KSksdH1mdW5jdGlvbiBDKGUpe3N3aXRjaChlKXtjYXNlXCJzaWduLWF1dG9cIjpyZXR1cm57c2lnbkRpc3BsYXk6XCJhdXRvXCJ9O2Nhc2VcInNpZ24tYWNjb3VudGluZ1wiOmNhc2VcIigpXCI6cmV0dXJue2N1cnJlbmN5U2lnbjpcImFjY291bnRpbmdcIn07Y2FzZVwic2lnbi1hbHdheXNcIjpjYXNlXCIrIVwiOnJldHVybntzaWduRGlzcGxheTpcImFsd2F5c1wifTtjYXNlXCJzaWduLWFjY291bnRpbmctYWx3YXlzXCI6Y2FzZVwiKCkhXCI6cmV0dXJue3NpZ25EaXNwbGF5OlwiYWx3YXlzXCIsY3VycmVuY3lTaWduOlwiYWNjb3VudGluZ1wifTtjYXNlXCJzaWduLWV4Y2VwdC16ZXJvXCI6Y2FzZVwiKz9cIjpyZXR1cm57c2lnbkRpc3BsYXk6XCJleGNlcHRaZXJvXCJ9O2Nhc2VcInNpZ24tYWNjb3VudGluZy1leGNlcHQtemVyb1wiOmNhc2VcIigpP1wiOnJldHVybntzaWduRGlzcGxheTpcImV4Y2VwdFplcm9cIixjdXJyZW5jeVNpZ246XCJhY2NvdW50aW5nXCJ9O2Nhc2VcInNpZ24tbmV2ZXJcIjpjYXNlXCIrX1wiOnJldHVybntzaWduRGlzcGxheTpcIm5ldmVyXCJ9fX1mdW5jdGlvbiBOKGUpe3ZhciB0O2lmKFwiRVwiPT09ZVswXSYmXCJFXCI9PT1lWzFdPyh0PXtub3RhdGlvbjpcImVuZ2luZWVyaW5nXCJ9LGU9ZS5zbGljZSgyKSk6XCJFXCI9PT1lWzBdJiYodD17bm90YXRpb246XCJzY2llbnRpZmljXCJ9LGU9ZS5zbGljZSgxKSksdCl7dmFyIG49ZS5zbGljZSgwLDIpO2lmKFwiKyFcIj09PW4/KHQuc2lnbkRpc3BsYXk9XCJhbHdheXNcIixlPWUuc2xpY2UoMikpOlwiKz9cIj09PW4mJih0LnNpZ25EaXNwbGF5PVwiZXhjZXB0WmVyb1wiLGU9ZS5zbGljZSgyKSksIU8udGVzdChlKSl0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgY29uY2lzZSBlbmcvc2NpZW50aWZpYyBub3RhdGlvblwiKTt0Lm1pbmltdW1JbnRlZ2VyRGlnaXRzPWUubGVuZ3RofXJldHVybiB0fWZ1bmN0aW9uIGsoZSl7dmFyIHQ9QyhlKTtyZXR1cm4gdHx8e319ZnVuY3Rpb24gUChlKXtmb3IodmFyIHQ9e30sbj0wLHI9ZTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTtzd2l0Y2goaS5zdGVtKXtjYXNlXCJwZXJjZW50XCI6Y2FzZVwiJVwiOnQuc3R5bGU9XCJwZXJjZW50XCI7Y29udGludWU7Y2FzZVwiJXgxMDBcIjp0LnN0eWxlPVwicGVyY2VudFwiLHQuc2NhbGU9MTAwO2NvbnRpbnVlO2Nhc2VcImN1cnJlbmN5XCI6dC5zdHlsZT1cImN1cnJlbmN5XCIsdC5jdXJyZW5jeT1pLm9wdGlvbnNbMF07Y29udGludWU7Y2FzZVwiZ3JvdXAtb2ZmXCI6Y2FzZVwiLF9cIjp0LnVzZUdyb3VwaW5nPSExO2NvbnRpbnVlO2Nhc2VcInByZWNpc2lvbi1pbnRlZ2VyXCI6Y2FzZVwiLlwiOnQubWF4aW11bUZyYWN0aW9uRGlnaXRzPTA7Y29udGludWU7Y2FzZVwibWVhc3VyZS11bml0XCI6Y2FzZVwidW5pdFwiOnQuc3R5bGU9XCJ1bml0XCIsdC51bml0PWkub3B0aW9uc1swXS5yZXBsYWNlKC9eKC4qPyktLyxcIlwiKTtjb250aW51ZTtjYXNlXCJjb21wYWN0LXNob3J0XCI6Y2FzZVwiS1wiOnQubm90YXRpb249XCJjb21wYWN0XCIsdC5jb21wYWN0RGlzcGxheT1cInNob3J0XCI7Y29udGludWU7Y2FzZVwiY29tcGFjdC1sb25nXCI6Y2FzZVwiS0tcIjp0Lm5vdGF0aW9uPVwiY29tcGFjdFwiLHQuY29tcGFjdERpc3BsYXk9XCJsb25nXCI7Y29udGludWU7Y2FzZVwic2NpZW50aWZpY1wiOnQ9KDAsYS5waSkoKDAsYS5waSkoKDAsYS5waSkoe30sdCkse25vdGF0aW9uOlwic2NpZW50aWZpY1wifSksaS5vcHRpb25zLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxhLnBpKSgoMCxhLnBpKSh7fSxlKSxrKHQpKX0pLHt9KSk7Y29udGludWU7Y2FzZVwiZW5naW5lZXJpbmdcIjp0PSgwLGEucGkpKCgwLGEucGkpKCgwLGEucGkpKHt9LHQpLHtub3RhdGlvbjpcImVuZ2luZWVyaW5nXCJ9KSxpLm9wdGlvbnMucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybigwLGEucGkpKCgwLGEucGkpKHt9LGUpLGsodCkpfSkse30pKTtjb250aW51ZTtjYXNlXCJub3RhdGlvbi1zaW1wbGVcIjp0Lm5vdGF0aW9uPVwic3RhbmRhcmRcIjtjb250aW51ZTtjYXNlXCJ1bml0LXdpZHRoLW5hcnJvd1wiOnQuY3VycmVuY3lEaXNwbGF5PVwibmFycm93U3ltYm9sXCIsdC51bml0RGlzcGxheT1cIm5hcnJvd1wiO2NvbnRpbnVlO2Nhc2VcInVuaXQtd2lkdGgtc2hvcnRcIjp0LmN1cnJlbmN5RGlzcGxheT1cImNvZGVcIix0LnVuaXREaXNwbGF5PVwic2hvcnRcIjtjb250aW51ZTtjYXNlXCJ1bml0LXdpZHRoLWZ1bGwtbmFtZVwiOnQuY3VycmVuY3lEaXNwbGF5PVwibmFtZVwiLHQudW5pdERpc3BsYXk9XCJsb25nXCI7Y29udGludWU7Y2FzZVwidW5pdC13aWR0aC1pc28tY29kZVwiOnQuY3VycmVuY3lEaXNwbGF5PVwic3ltYm9sXCI7Y29udGludWU7Y2FzZVwic2NhbGVcIjp0LnNjYWxlPXBhcnNlRmxvYXQoaS5vcHRpb25zWzBdKTtjb250aW51ZTtjYXNlXCJpbnRlZ2VyLXdpZHRoXCI6aWYoaS5vcHRpb25zLmxlbmd0aD4xKXRocm93IG5ldyBSYW5nZUVycm9yKFwiaW50ZWdlci13aWR0aCBzdGVtcyBvbmx5IGFjY2VwdCBhIHNpbmdsZSBvcHRpb25hbCBvcHRpb25cIik7aS5vcHRpb25zWzBdLnJlcGxhY2UoSSwoZnVuY3Rpb24oZSxuLHIsaSxvLGEpe2lmKG4pdC5taW5pbXVtSW50ZWdlckRpZ2l0cz1yLmxlbmd0aDtlbHNle2lmKGkmJm8pdGhyb3cgbmV3IEVycm9yKFwiV2UgY3VycmVudGx5IGRvIG5vdCBzdXBwb3J0IG1heGltdW0gaW50ZWdlciBkaWdpdHNcIik7aWYoYSl0aHJvdyBuZXcgRXJyb3IoXCJXZSBjdXJyZW50bHkgZG8gbm90IHN1cHBvcnQgZXhhY3QgaW50ZWdlciBkaWdpdHNcIil9cmV0dXJuXCJcIn0pKTtjb250aW51ZX1pZihPLnRlc3QoaS5zdGVtKSl0Lm1pbmltdW1JbnRlZ2VyRGlnaXRzPWkuc3RlbS5sZW5ndGg7ZWxzZSBpZih5LnRlc3QoaS5zdGVtKSl7aWYoaS5vcHRpb25zLmxlbmd0aD4xKXRocm93IG5ldyBSYW5nZUVycm9yKFwiRnJhY3Rpb24tcHJlY2lzaW9uIHN0ZW1zIG9ubHkgYWNjZXB0IGEgc2luZ2xlIG9wdGlvbmFsIG9wdGlvblwiKTtpLnN0ZW0ucmVwbGFjZSh5LChmdW5jdGlvbihlLG4scixpLG8sYSl7cmV0dXJuXCIqXCI9PT1yP3QubWluaW11bUZyYWN0aW9uRGlnaXRzPW4ubGVuZ3RoOmkmJlwiI1wiPT09aVswXT90Lm1heGltdW1GcmFjdGlvbkRpZ2l0cz1pLmxlbmd0aDpvJiZhPyh0Lm1pbmltdW1GcmFjdGlvbkRpZ2l0cz1vLmxlbmd0aCx0Lm1heGltdW1GcmFjdGlvbkRpZ2l0cz1vLmxlbmd0aCthLmxlbmd0aCk6KHQubWluaW11bUZyYWN0aW9uRGlnaXRzPW4ubGVuZ3RoLHQubWF4aW11bUZyYWN0aW9uRGlnaXRzPW4ubGVuZ3RoKSxcIlwifSkpO3ZhciBvPWkub3B0aW9uc1swXTtcIndcIj09PW8/dD0oMCxhLnBpKSgoMCxhLnBpKSh7fSx0KSx7dHJhaWxpbmdaZXJvRGlzcGxheTpcInN0cmlwSWZJbnRlZ2VyXCJ9KTpvJiYodD0oMCxhLnBpKSgoMCxhLnBpKSh7fSx0KSxBKG8pKSl9ZWxzZSBpZihULnRlc3QoaS5zdGVtKSl0PSgwLGEucGkpKCgwLGEucGkpKHt9LHQpLEEoaS5zdGVtKSk7ZWxzZXt2YXIgcz1DKGkuc3RlbSk7cyYmKHQ9KDAsYS5waSkoKDAsYS5waSkoe30sdCkscykpO3ZhciBjPU4oaS5zdGVtKTtjJiYodD0oMCxhLnBpKSgoMCxhLnBpKSh7fSx0KSxjKSl9fXJldHVybiB0fXZhciBSLHc9e0FYOltcIkhcIl0sQlE6W1wiSFwiXSxDUDpbXCJIXCJdLENaOltcIkhcIl0sREs6W1wiSFwiXSxGSTpbXCJIXCJdLElEOltcIkhcIl0sSVM6W1wiSFwiXSxNTDpbXCJIXCJdLE5FOltcIkhcIl0sUlU6W1wiSFwiXSxTRTpbXCJIXCJdLFNKOltcIkhcIl0sU0s6W1wiSFwiXSxBUzpbXCJoXCIsXCJIXCJdLEJUOltcImhcIixcIkhcIl0sREo6W1wiaFwiLFwiSFwiXSxFUjpbXCJoXCIsXCJIXCJdLEdIOltcImhcIixcIkhcIl0sSU46W1wiaFwiLFwiSFwiXSxMUzpbXCJoXCIsXCJIXCJdLFBHOltcImhcIixcIkhcIl0sUFc6W1wiaFwiLFwiSFwiXSxTTzpbXCJoXCIsXCJIXCJdLFRPOltcImhcIixcIkhcIl0sVlU6W1wiaFwiLFwiSFwiXSxXUzpbXCJoXCIsXCJIXCJdLFwiMDAxXCI6W1wiSFwiLFwiaFwiXSxBTDpbXCJoXCIsXCJIXCIsXCJoQlwiXSxURDpbXCJoXCIsXCJIXCIsXCJoQlwiXSxcImNhLUVTXCI6W1wiSFwiLFwiaFwiLFwiaEJcIl0sQ0Y6W1wiSFwiLFwiaFwiLFwiaEJcIl0sQ006W1wiSFwiLFwiaFwiLFwiaEJcIl0sXCJmci1DQVwiOltcIkhcIixcImhcIixcImhCXCJdLFwiZ2wtRVNcIjpbXCJIXCIsXCJoXCIsXCJoQlwiXSxcIml0LUNIXCI6W1wiSFwiLFwiaFwiLFwiaEJcIl0sXCJpdC1JVFwiOltcIkhcIixcImhcIixcImhCXCJdLExVOltcIkhcIixcImhcIixcImhCXCJdLE5QOltcIkhcIixcImhcIixcImhCXCJdLFBGOltcIkhcIixcImhcIixcImhCXCJdLFNDOltcIkhcIixcImhcIixcImhCXCJdLFNNOltcIkhcIixcImhcIixcImhCXCJdLFNOOltcIkhcIixcImhcIixcImhCXCJdLFRGOltcIkhcIixcImhcIixcImhCXCJdLFZBOltcIkhcIixcImhcIixcImhCXCJdLENZOltcImhcIixcIkhcIixcImhiXCIsXCJoQlwiXSxHUjpbXCJoXCIsXCJIXCIsXCJoYlwiLFwiaEJcIl0sQ086W1wiaFwiLFwiSFwiLFwiaEJcIixcImhiXCJdLERPOltcImhcIixcIkhcIixcImhCXCIsXCJoYlwiXSxLUDpbXCJoXCIsXCJIXCIsXCJoQlwiLFwiaGJcIl0sS1I6W1wiaFwiLFwiSFwiLFwiaEJcIixcImhiXCJdLE5BOltcImhcIixcIkhcIixcImhCXCIsXCJoYlwiXSxQQTpbXCJoXCIsXCJIXCIsXCJoQlwiLFwiaGJcIl0sUFI6W1wiaFwiLFwiSFwiLFwiaEJcIixcImhiXCJdLFZFOltcImhcIixcIkhcIixcImhCXCIsXCJoYlwiXSxBQzpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sQUk6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLEJXOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxCWjpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sQ0M6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLENLOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxDWDpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sREc6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLEZLOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxHQjpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sR0c6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLEdJOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxJRTpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sSU06W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLElPOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxKRTpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sTFQ6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLE1LOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxNTjpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sTVM6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLE5GOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxORzpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sTlI6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLE5VOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxQTjpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sU0g6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLFNYOltcIkhcIixcImhcIixcImhiXCIsXCJoQlwiXSxUQTpbXCJIXCIsXCJoXCIsXCJoYlwiLFwiaEJcIl0sWkE6W1wiSFwiLFwiaFwiLFwiaGJcIixcImhCXCJdLFwiYWYtWkFcIjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sQVI6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLENMOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxDUjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sQ1U6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLEVBOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxcImVzLUJPXCI6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLFwiZXMtQlJcIjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sXCJlcy1FQ1wiOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxcImVzLUVTXCI6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLFwiZXMtR1FcIjpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sXCJlcy1QRVwiOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxHVDpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sSE46W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLElDOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxLRzpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sS006W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLExLOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxNQTpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sTVg6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLE5JOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxQWTpbXCJIXCIsXCJoXCIsXCJoQlwiLFwiaGJcIl0sU1Y6W1wiSFwiLFwiaFwiLFwiaEJcIixcImhiXCJdLFVZOltcIkhcIixcImhcIixcImhCXCIsXCJoYlwiXSxKUDpbXCJIXCIsXCJoXCIsXCJLXCJdLEFEOltcIkhcIixcImhCXCJdLEFNOltcIkhcIixcImhCXCJdLEFPOltcIkhcIixcImhCXCJdLEFUOltcIkhcIixcImhCXCJdLEFXOltcIkhcIixcImhCXCJdLEJFOltcIkhcIixcImhCXCJdLEJGOltcIkhcIixcImhCXCJdLEJKOltcIkhcIixcImhCXCJdLEJMOltcIkhcIixcImhCXCJdLEJSOltcIkhcIixcImhCXCJdLENHOltcIkhcIixcImhCXCJdLENJOltcIkhcIixcImhCXCJdLENWOltcIkhcIixcImhCXCJdLERFOltcIkhcIixcImhCXCJdLEVFOltcIkhcIixcImhCXCJdLEZSOltcIkhcIixcImhCXCJdLEdBOltcIkhcIixcImhCXCJdLEdGOltcIkhcIixcImhCXCJdLEdOOltcIkhcIixcImhCXCJdLEdQOltcIkhcIixcImhCXCJdLEdXOltcIkhcIixcImhCXCJdLEhSOltcIkhcIixcImhCXCJdLElMOltcIkhcIixcImhCXCJdLElUOltcIkhcIixcImhCXCJdLEtaOltcIkhcIixcImhCXCJdLE1DOltcIkhcIixcImhCXCJdLE1EOltcIkhcIixcImhCXCJdLE1GOltcIkhcIixcImhCXCJdLE1ROltcIkhcIixcImhCXCJdLE1aOltcIkhcIixcImhCXCJdLE5DOltcIkhcIixcImhCXCJdLE5MOltcIkhcIixcImhCXCJdLFBNOltcIkhcIixcImhCXCJdLFBUOltcIkhcIixcImhCXCJdLFJFOltcIkhcIixcImhCXCJdLFJPOltcIkhcIixcImhCXCJdLFNJOltcIkhcIixcImhCXCJdLFNSOltcIkhcIixcImhCXCJdLFNUOltcIkhcIixcImhCXCJdLFRHOltcIkhcIixcImhCXCJdLFRSOltcIkhcIixcImhCXCJdLFdGOltcIkhcIixcImhCXCJdLFlUOltcIkhcIixcImhCXCJdLEJEOltcImhcIixcImhCXCIsXCJIXCJdLFBLOltcImhcIixcImhCXCIsXCJIXCJdLEFaOltcIkhcIixcImhCXCIsXCJoXCJdLEJBOltcIkhcIixcImhCXCIsXCJoXCJdLEJHOltcIkhcIixcImhCXCIsXCJoXCJdLENIOltcIkhcIixcImhCXCIsXCJoXCJdLEdFOltcIkhcIixcImhCXCIsXCJoXCJdLExJOltcIkhcIixcImhCXCIsXCJoXCJdLE1FOltcIkhcIixcImhCXCIsXCJoXCJdLFJTOltcIkhcIixcImhCXCIsXCJoXCJdLFVBOltcIkhcIixcImhCXCIsXCJoXCJdLFVaOltcIkhcIixcImhCXCIsXCJoXCJdLFhLOltcIkhcIixcImhCXCIsXCJoXCJdLEFHOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxBVTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sQkI6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEJNOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxCUzpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sQ0E6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLERNOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxcImVuLTAwMVwiOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxGSjpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sRk06W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEdEOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxHTTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sR1U6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEdZOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxKTTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sS0k6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEtOOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxLWTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sTEM6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLExSOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxNSDpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sTVA6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLE1XOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxOWjpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sU0I6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFNHOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxTTDpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sU1M6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFNaOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxUQzpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sVFQ6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFVNOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxVUzpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sVkM6W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLFZHOltcImhcIixcImhiXCIsXCJIXCIsXCJoQlwiXSxWSTpbXCJoXCIsXCJoYlwiLFwiSFwiLFwiaEJcIl0sWk06W1wiaFwiLFwiaGJcIixcIkhcIixcImhCXCJdLEJPOltcIkhcIixcImhCXCIsXCJoXCIsXCJoYlwiXSxFQzpbXCJIXCIsXCJoQlwiLFwiaFwiLFwiaGJcIl0sRVM6W1wiSFwiLFwiaEJcIixcImhcIixcImhiXCJdLEdROltcIkhcIixcImhCXCIsXCJoXCIsXCJoYlwiXSxQRTpbXCJIXCIsXCJoQlwiLFwiaFwiLFwiaGJcIl0sQUU6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLFwiYXItMDAxXCI6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLEJIOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxEWjpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sRUc6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLEVIOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxISzpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sSVE6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLEpPOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxLVzpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sTEI6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLExZOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxNTzpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sTVI6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLE9NOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxQSDpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sUFM6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLFFBOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxTQTpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sU0Q6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLFNZOltcImhcIixcImhCXCIsXCJoYlwiLFwiSFwiXSxUTjpbXCJoXCIsXCJoQlwiLFwiaGJcIixcIkhcIl0sWUU6W1wiaFwiLFwiaEJcIixcImhiXCIsXCJIXCJdLEFGOltcIkhcIixcImhiXCIsXCJoQlwiLFwiaFwiXSxMQTpbXCJIXCIsXCJoYlwiLFwiaEJcIixcImhcIl0sQ046W1wiSFwiLFwiaEJcIixcImhiXCIsXCJoXCJdLExWOltcIkhcIixcImhCXCIsXCJoYlwiLFwiaFwiXSxUTDpbXCJIXCIsXCJoQlwiLFwiaGJcIixcImhcIl0sXCJ6dS1aQVwiOltcIkhcIixcImhCXCIsXCJoYlwiLFwiaFwiXSxDRDpbXCJoQlwiLFwiSFwiXSxJUjpbXCJoQlwiLFwiSFwiXSxcImhpLUlOXCI6W1wiaEJcIixcImhcIixcIkhcIl0sXCJrbi1JTlwiOltcImhCXCIsXCJoXCIsXCJIXCJdLFwibWwtSU5cIjpbXCJoQlwiLFwiaFwiLFwiSFwiXSxcInRlLUlOXCI6W1wiaEJcIixcImhcIixcIkhcIl0sS0g6W1wiaEJcIixcImhcIixcIkhcIixcImhiXCJdLFwidGEtSU5cIjpbXCJoQlwiLFwiaFwiLFwiaGJcIixcIkhcIl0sQk46W1wiaGJcIixcImhCXCIsXCJoXCIsXCJIXCJdLE1ZOltcImhiXCIsXCJoQlwiLFwiaFwiLFwiSFwiXSxFVDpbXCJoQlwiLFwiaGJcIixcImhcIixcIkhcIl0sXCJndS1JTlwiOltcImhCXCIsXCJoYlwiLFwiaFwiLFwiSFwiXSxcIm1yLUlOXCI6W1wiaEJcIixcImhiXCIsXCJoXCIsXCJIXCJdLFwicGEtSU5cIjpbXCJoQlwiLFwiaGJcIixcImhcIixcIkhcIl0sVFc6W1wiaEJcIixcImhiXCIsXCJoXCIsXCJIXCJdLEtFOltcImhCXCIsXCJoYlwiLFwiSFwiLFwiaFwiXSxNTTpbXCJoQlwiLFwiaGJcIixcIkhcIixcImhcIl0sVFo6W1wiaEJcIixcImhiXCIsXCJIXCIsXCJoXCJdLFVHOltcImhCXCIsXCJoYlwiLFwiSFwiLFwiaFwiXX07ZnVuY3Rpb24gTChlKXt2YXIgdD1lLmhvdXJDeWNsZTtpZih2b2lkIDA9PT10JiZlLmhvdXJDeWNsZXMmJmUuaG91ckN5Y2xlcy5sZW5ndGgmJih0PWUuaG91ckN5Y2xlc1swXSksdClzd2l0Y2godCl7Y2FzZVwiaDI0XCI6cmV0dXJuXCJrXCI7Y2FzZVwiaDIzXCI6cmV0dXJuXCJIXCI7Y2FzZVwiaDEyXCI6cmV0dXJuXCJoXCI7Y2FzZVwiaDExXCI6cmV0dXJuXCJLXCI7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGhvdXJDeWNsZVwiKX12YXIgbixyPWUubGFuZ3VhZ2U7cmV0dXJuXCJyb290XCIhPT1yJiYobj1lLm1heGltaXplKCkucmVnaW9uKSwod1tufHxcIlwiXXx8d1tyfHxcIlwiXXx8d1tcIlwiLmNvbmNhdChyLFwiLTAwMVwiKV18fHdbXCIwMDFcIl0pWzBdfXZhciBCPW5ldyBSZWdFeHAoXCJeXCIuY29uY2F0KF8uc291cmNlLFwiKlwiKSksTT1uZXcgUmVnRXhwKFwiXCIuY29uY2F0KF8uc291cmNlLFwiKiRcIikpO2Z1bmN0aW9uIEQoZSx0KXtyZXR1cm57c3RhcnQ6ZSxlbmQ6dH19dmFyIGo9ISFTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGgseD0hIVN0cmluZy5mcm9tQ29kZVBvaW50LFU9ISFPYmplY3QuZnJvbUVudHJpZXMsRj0hIVN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXQsSD0hIVN0cmluZy5wcm90b3R5cGUudHJpbVN0YXJ0LEc9ISFTdHJpbmcucHJvdG90eXBlLnRyaW1FbmQsVz0hIU51bWJlci5pc1NhZmVJbnRlZ2VyP051bWJlci5pc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKGUpe3JldHVyblwibnVtYmVyXCI9PT10eXBlb2YgZSYmaXNGaW5pdGUoZSkmJk1hdGguZmxvb3IoZSk9PT1lJiZNYXRoLmFicyhlKTw9OTAwNzE5OTI1NDc0MDk5MX0sVj0hMDt0cnl7Vj1cImFcIj09PShudWxsPT09KFI9UShcIihbXlxcXFxwe1doaXRlX1NwYWNlfVxcXFxwe1BhdHRlcm5fU3ludGF4fV0qKVwiLFwieXVcIikuZXhlYyhcImFcIikpfHx2b2lkIDA9PT1SP3ZvaWQgMDpSWzBdKX1jYXRjaChhZSl7Vj0hMX12YXIgeixLPWo/ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLnN0YXJ0c1dpdGgodCxuKX06ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLnNsaWNlKG4sbit0Lmxlbmd0aCk9PT10fSxZPXg/U3RyaW5nLmZyb21Db2RlUG9pbnQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07Zm9yKHZhciBuLHI9XCJcIixpPWUubGVuZ3RoLG89MDtpPm87KXtpZigobj1lW28rK10pPjExMTQxMTEpdGhyb3cgUmFuZ2VFcnJvcihuK1wiIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnRcIik7cis9bjw2NTUzNj9TdHJpbmcuZnJvbUNoYXJDb2RlKG4pOlN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKChuLT02NTUzNik+PjEwKSxuJTEwMjQrNTYzMjApfXJldHVybiByfSxxPVU/T2JqZWN0LmZyb21FbnRyaWVzOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxuPTAscj1lO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dLG89aVswXSxhPWlbMV07dFtvXT1hfXJldHVybiB0fSxaPUY/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jb2RlUG9pbnRBdCh0KX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aDtpZighKHQ8MHx8dD49bikpe3ZhciByLGk9ZS5jaGFyQ29kZUF0KHQpO3JldHVybiBpPDU1Mjk2fHxpPjU2MzE5fHx0KzE9PT1ufHwocj1lLmNoYXJDb2RlQXQodCsxKSk8NTYzMjB8fHI+NTczNDM/aTpyLTU2MzIwKyhpLTU1Mjk2PDwxMCkrNjU1MzZ9fSxKPUg/ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbVN0YXJ0KCl9OmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoQixcIlwiKX0sWD1HP2Z1bmN0aW9uKGUpe3JldHVybiBlLnRyaW1FbmQoKX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShNLFwiXCIpfTtmdW5jdGlvbiBRKGUsdCl7cmV0dXJuIG5ldyBSZWdFeHAoZSx0KX1pZihWKXt2YXIgJD1RKFwiKFteXFxcXHB7V2hpdGVfU3BhY2V9XFxcXHB7UGF0dGVybl9TeW50YXh9XSopXCIsXCJ5dVwiKTt6PWZ1bmN0aW9uKGUsdCl7dmFyIG47cmV0dXJuICQubGFzdEluZGV4PXQsbnVsbCE9PShuPSQuZXhlYyhlKVsxXSkmJnZvaWQgMCE9PW4/bjpcIlwifX1lbHNlIHo9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W107Oyl7dmFyIHI9WihlLHQpO2lmKHZvaWQgMD09PXJ8fG5lKHIpfHxyZShyKSlicmVhaztuLnB1c2gociksdCs9cj49NjU1MzY/MjoxfXJldHVybiBZLmFwcGx5KHZvaWQgMCxuKX07dmFyIGVlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe3ZvaWQgMD09PXQmJih0PXt9KSx0aGlzLm1lc3NhZ2U9ZSx0aGlzLnBvc2l0aW9uPXtvZmZzZXQ6MCxsaW5lOjEsY29sdW1uOjF9LHRoaXMuaWdub3JlVGFnPSEhdC5pZ25vcmVUYWcsdGhpcy5sb2NhbGU9dC5sb2NhbGUsdGhpcy5yZXF1aXJlc090aGVyQ2xhdXNlPSEhdC5yZXF1aXJlc090aGVyQ2xhdXNlLHRoaXMuc2hvdWxkUGFyc2VTa2VsZXRvbnM9ISF0LnNob3VsZFBhcnNlU2tlbGV0b25zfXJldHVybiBlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbigpe2lmKDAhPT10aGlzLm9mZnNldCgpKXRocm93IEVycm9yKFwicGFyc2VyIGNhbiBvbmx5IGJlIHVzZWQgb25jZVwiKTtyZXR1cm4gdGhpcy5wYXJzZU1lc3NhZ2UoMCxcIlwiLCExKX0sZS5wcm90b3R5cGUucGFyc2VNZXNzYWdlPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIG89W107IXRoaXMuaXNFT0YoKTspe3ZhciBhPXRoaXMuY2hhcigpO2lmKDEyMz09PWEpe2lmKChzPXRoaXMucGFyc2VBcmd1bWVudChlLG4pKS5lcnIpcmV0dXJuIHM7by5wdXNoKHMudmFsKX1lbHNle2lmKDEyNT09PWEmJmU+MClicmVhaztpZigzNSE9PWF8fFwicGx1cmFsXCIhPT10JiZcInNlbGVjdG9yZGluYWxcIiE9PXQpe2lmKDYwPT09YSYmIXRoaXMuaWdub3JlVGFnJiY0Nz09PXRoaXMucGVlaygpKXtpZihuKWJyZWFrO3JldHVybiB0aGlzLmVycm9yKHIuVU5NQVRDSEVEX0NMT1NJTkdfVEFHLEQodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKX1pZig2MD09PWEmJiF0aGlzLmlnbm9yZVRhZyYmdGUodGhpcy5wZWVrKCl8fDApKXtpZigocz10aGlzLnBhcnNlVGFnKGUsdCkpLmVycilyZXR1cm4gcztvLnB1c2gocy52YWwpfWVsc2V7dmFyIHM7aWYoKHM9dGhpcy5wYXJzZUxpdGVyYWwoZSx0KSkuZXJyKXJldHVybiBzO28ucHVzaChzLnZhbCl9fWVsc2V7dmFyIGM9dGhpcy5jbG9uZVBvc2l0aW9uKCk7dGhpcy5idW1wKCksby5wdXNoKHt0eXBlOmkucG91bmQsbG9jYXRpb246RChjLHRoaXMuY2xvbmVQb3NpdGlvbigpKX0pfX19cmV0dXJue3ZhbDpvLGVycjpudWxsfX0sZS5wcm90b3R5cGUucGFyc2VUYWc9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNsb25lUG9zaXRpb24oKTt0aGlzLmJ1bXAoKTt2YXIgbz10aGlzLnBhcnNlVGFnTmFtZSgpO2lmKHRoaXMuYnVtcFNwYWNlKCksdGhpcy5idW1wSWYoXCIvPlwiKSlyZXR1cm57dmFsOnt0eXBlOmkubGl0ZXJhbCx2YWx1ZTpcIjxcIi5jb25jYXQobyxcIi8+XCIpLGxvY2F0aW9uOkQobix0aGlzLmNsb25lUG9zaXRpb24oKSl9LGVycjpudWxsfTtpZih0aGlzLmJ1bXBJZihcIj5cIikpe3ZhciBhPXRoaXMucGFyc2VNZXNzYWdlKGUrMSx0LCEwKTtpZihhLmVycilyZXR1cm4gYTt2YXIgcz1hLnZhbCxjPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKHRoaXMuYnVtcElmKFwiPC9cIikpe2lmKHRoaXMuaXNFT0YoKXx8IXRlKHRoaXMuY2hhcigpKSlyZXR1cm4gdGhpcy5lcnJvcihyLklOVkFMSURfVEFHLEQoYyx0aGlzLmNsb25lUG9zaXRpb24oKSkpO3ZhciB1PXRoaXMuY2xvbmVQb3NpdGlvbigpO3JldHVybiBvIT09dGhpcy5wYXJzZVRhZ05hbWUoKT90aGlzLmVycm9yKHIuVU5NQVRDSEVEX0NMT1NJTkdfVEFHLEQodSx0aGlzLmNsb25lUG9zaXRpb24oKSkpOih0aGlzLmJ1bXBTcGFjZSgpLHRoaXMuYnVtcElmKFwiPlwiKT97dmFsOnt0eXBlOmkudGFnLHZhbHVlOm8sY2hpbGRyZW46cyxsb2NhdGlvbjpEKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpfSxlcnI6bnVsbH06dGhpcy5lcnJvcihyLklOVkFMSURfVEFHLEQoYyx0aGlzLmNsb25lUG9zaXRpb24oKSkpKX1yZXR1cm4gdGhpcy5lcnJvcihyLlVOQ0xPU0VEX1RBRyxEKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKX1yZXR1cm4gdGhpcy5lcnJvcihyLklOVkFMSURfVEFHLEQobix0aGlzLmNsb25lUG9zaXRpb24oKSkpfSxlLnByb3RvdHlwZS5wYXJzZVRhZ05hbWU9ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub2Zmc2V0KCk7Zm9yKHRoaXMuYnVtcCgpOyF0aGlzLmlzRU9GKCkmJig0NT09PShlPXRoaXMuY2hhcigpKXx8NDY9PT1lfHxlPj00OCYmZTw9NTd8fDk1PT09ZXx8ZT49OTcmJmU8PTEyMnx8ZT49NjUmJmU8PTkwfHwxODM9PWV8fGU+PTE5MiYmZTw9MjE0fHxlPj0yMTYmJmU8PTI0Nnx8ZT49MjQ4JiZlPD04OTN8fGU+PTg5NSYmZTw9ODE5MXx8ZT49ODIwNCYmZTw9ODIwNXx8ZT49ODI1NSYmZTw9ODI1Nnx8ZT49ODMwNCYmZTw9ODU5MXx8ZT49MTEyNjQmJmU8PTEyMjcxfHxlPj0xMjI4OSYmZTw9NTUyOTV8fGU+PTYzNzQ0JiZlPD02NDk3NXx8ZT49NjUwMDgmJmU8PTY1NTMzfHxlPj02NTUzNiYmZTw9OTgzMDM5KTspdGhpcy5idW1wKCk7cmV0dXJuIHRoaXMubWVzc2FnZS5zbGljZSh0LHRoaXMub2Zmc2V0KCkpfSxlLnByb3RvdHlwZS5wYXJzZUxpdGVyYWw9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49dGhpcy5jbG9uZVBvc2l0aW9uKCkscj1cIlwiOzspe3ZhciBvPXRoaXMudHJ5UGFyc2VRdW90ZSh0KTtpZihvKXIrPW87ZWxzZXt2YXIgYT10aGlzLnRyeVBhcnNlVW5xdW90ZWQoZSx0KTtpZihhKXIrPWE7ZWxzZXt2YXIgcz10aGlzLnRyeVBhcnNlTGVmdEFuZ2xlQnJhY2tldCgpO2lmKCFzKWJyZWFrO3IrPXN9fX12YXIgYz1EKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpO3JldHVybnt2YWw6e3R5cGU6aS5saXRlcmFsLHZhbHVlOnIsbG9jYXRpb246Y30sZXJyOm51bGx9fSxlLnByb3RvdHlwZS50cnlQYXJzZUxlZnRBbmdsZUJyYWNrZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0VPRigpfHw2MCE9PXRoaXMuY2hhcigpfHwhdGhpcy5pZ25vcmVUYWcmJih0ZShlPXRoaXMucGVlaygpfHwwKXx8NDc9PT1lKT9udWxsOih0aGlzLmJ1bXAoKSxcIjxcIik7dmFyIGV9LGUucHJvdG90eXBlLnRyeVBhcnNlUXVvdGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5pc0VPRigpfHwzOSE9PXRoaXMuY2hhcigpKXJldHVybiBudWxsO3N3aXRjaCh0aGlzLnBlZWsoKSl7Y2FzZSAzOTpyZXR1cm4gdGhpcy5idW1wKCksdGhpcy5idW1wKCksXCInXCI7Y2FzZSAxMjM6Y2FzZSA2MDpjYXNlIDYyOmNhc2UgMTI1OmJyZWFrO2Nhc2UgMzU6aWYoXCJwbHVyYWxcIj09PWV8fFwic2VsZWN0b3JkaW5hbFwiPT09ZSlicmVhaztyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfXRoaXMuYnVtcCgpO3ZhciB0PVt0aGlzLmNoYXIoKV07Zm9yKHRoaXMuYnVtcCgpOyF0aGlzLmlzRU9GKCk7KXt2YXIgbj10aGlzLmNoYXIoKTtpZigzOT09PW4pe2lmKDM5IT09dGhpcy5wZWVrKCkpe3RoaXMuYnVtcCgpO2JyZWFrfXQucHVzaCgzOSksdGhpcy5idW1wKCl9ZWxzZSB0LnB1c2gobik7dGhpcy5idW1wKCl9cmV0dXJuIFkuYXBwbHkodm9pZCAwLHQpfSxlLnByb3RvdHlwZS50cnlQYXJzZVVucXVvdGVkPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5pc0VPRigpKXJldHVybiBudWxsO3ZhciBuPXRoaXMuY2hhcigpO3JldHVybiA2MD09PW58fDEyMz09PW58fDM1PT09biYmKFwicGx1cmFsXCI9PT10fHxcInNlbGVjdG9yZGluYWxcIj09PXQpfHwxMjU9PT1uJiZlPjA/bnVsbDoodGhpcy5idW1wKCksWShuKSl9LGUucHJvdG90eXBlLnBhcnNlQXJndW1lbnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNsb25lUG9zaXRpb24oKTtpZih0aGlzLmJ1bXAoKSx0aGlzLmJ1bXBTcGFjZSgpLHRoaXMuaXNFT0YoKSlyZXR1cm4gdGhpcy5lcnJvcihyLkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFLEQobix0aGlzLmNsb25lUG9zaXRpb24oKSkpO2lmKDEyNT09PXRoaXMuY2hhcigpKXJldHVybiB0aGlzLmJ1bXAoKSx0aGlzLmVycm9yKHIuRU1QVFlfQVJHVU1FTlQsRChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7dmFyIG89dGhpcy5wYXJzZUlkZW50aWZpZXJJZlBvc3NpYmxlKCkudmFsdWU7aWYoIW8pcmV0dXJuIHRoaXMuZXJyb3Ioci5NQUxGT1JNRURfQVJHVU1FTlQsRChuLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7aWYodGhpcy5idW1wU3BhY2UoKSx0aGlzLmlzRU9GKCkpcmV0dXJuIHRoaXMuZXJyb3Ioci5FWFBFQ1RfQVJHVU1FTlRfQ0xPU0lOR19CUkFDRSxEKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTtzd2l0Y2godGhpcy5jaGFyKCkpe2Nhc2UgMTI1OnJldHVybiB0aGlzLmJ1bXAoKSx7dmFsOnt0eXBlOmkuYXJndW1lbnQsdmFsdWU6byxsb2NhdGlvbjpEKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpfSxlcnI6bnVsbH07Y2FzZSA0NDpyZXR1cm4gdGhpcy5idW1wKCksdGhpcy5idW1wU3BhY2UoKSx0aGlzLmlzRU9GKCk/dGhpcy5lcnJvcihyLkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFLEQobix0aGlzLmNsb25lUG9zaXRpb24oKSkpOnRoaXMucGFyc2VBcmd1bWVudE9wdGlvbnMoZSx0LG8sbik7ZGVmYXVsdDpyZXR1cm4gdGhpcy5lcnJvcihyLk1BTEZPUk1FRF9BUkdVTUVOVCxEKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKX19LGUucHJvdG90eXBlLnBhcnNlSWRlbnRpZmllcklmUG9zc2libGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNsb25lUG9zaXRpb24oKSx0PXRoaXMub2Zmc2V0KCksbj16KHRoaXMubWVzc2FnZSx0KSxyPXQrbi5sZW5ndGg7cmV0dXJuIHRoaXMuYnVtcFRvKHIpLHt2YWx1ZTpuLGxvY2F0aW9uOkQoZSx0aGlzLmNsb25lUG9zaXRpb24oKSl9fSxlLnByb3RvdHlwZS5wYXJzZUFyZ3VtZW50T3B0aW9ucz1mdW5jdGlvbihlLHQsbixzKXt2YXIgYyx1PXRoaXMuY2xvbmVQb3NpdGlvbigpLGw9dGhpcy5wYXJzZUlkZW50aWZpZXJJZlBvc3NpYmxlKCkudmFsdWUsZD10aGlzLmNsb25lUG9zaXRpb24oKTtzd2l0Y2gobCl7Y2FzZVwiXCI6cmV0dXJuIHRoaXMuZXJyb3Ioci5FWFBFQ1RfQVJHVU1FTlRfVFlQRSxEKHUsZCkpO2Nhc2VcIm51bWJlclwiOmNhc2VcImRhdGVcIjpjYXNlXCJ0aW1lXCI6dGhpcy5idW1wU3BhY2UoKTt2YXIgcD1udWxsO2lmKHRoaXMuYnVtcElmKFwiLFwiKSl7dGhpcy5idW1wU3BhY2UoKTt2YXIgZj10aGlzLmNsb25lUG9zaXRpb24oKTtpZigoeT10aGlzLnBhcnNlU2ltcGxlQXJnU3R5bGVJZlBvc3NpYmxlKCkpLmVycilyZXR1cm4geTtpZigwPT09KHY9WCh5LnZhbCkpLmxlbmd0aClyZXR1cm4gdGhpcy5lcnJvcihyLkVYUEVDVF9BUkdVTUVOVF9TVFlMRSxEKHRoaXMuY2xvbmVQb3NpdGlvbigpLHRoaXMuY2xvbmVQb3NpdGlvbigpKSk7cD17c3R5bGU6dixzdHlsZUxvY2F0aW9uOkQoZix0aGlzLmNsb25lUG9zaXRpb24oKSl9fWlmKChUPXRoaXMudHJ5UGFyc2VBcmd1bWVudENsb3NlKHMpKS5lcnIpcmV0dXJuIFQ7dmFyIGg9RChzLHRoaXMuY2xvbmVQb3NpdGlvbigpKTtpZihwJiZLKG51bGw9PT1wfHx2b2lkIDA9PT1wP3ZvaWQgMDpwLnN0eWxlLFwiOjpcIiwwKSl7dmFyIGc9SihwLnN0eWxlLnNsaWNlKDIpKTtpZihcIm51bWJlclwiPT09bClyZXR1cm4oeT10aGlzLnBhcnNlTnVtYmVyU2tlbGV0b25Gcm9tU3RyaW5nKGcscC5zdHlsZUxvY2F0aW9uKSkuZXJyP3k6e3ZhbDp7dHlwZTppLm51bWJlcix2YWx1ZTpuLGxvY2F0aW9uOmgsc3R5bGU6eS52YWx9LGVycjpudWxsfTtpZigwPT09Zy5sZW5ndGgpcmV0dXJuIHRoaXMuZXJyb3Ioci5FWFBFQ1RfREFURV9USU1FX1NLRUxFVE9OLGgpO3ZhciBtPWc7dGhpcy5sb2NhbGUmJihtPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVwiXCIscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lLmNoYXJBdChyKTtpZihcImpcIj09PWkpe2Zvcih2YXIgbz0wO3IrMTxlLmxlbmd0aCYmZS5jaGFyQXQocisxKT09PWk7KW8rKyxyKys7dmFyIGE9MSsoMSZvKSxzPW88Mj8xOjMrKG8+PjEpLGM9TCh0KTtmb3IoXCJIXCIhPWMmJlwia1wiIT1jfHwocz0wKTtzLS0gPjA7KW4rPVwiYVwiO2Zvcig7YS0tID4wOyluPWMrbn1lbHNlIG4rPVwiSlwiPT09aT9cIkhcIjppfXJldHVybiBufShnLHRoaXMubG9jYWxlKSk7dmFyIHY9e3R5cGU6by5kYXRlVGltZSxwYXR0ZXJuOm0sbG9jYXRpb246cC5zdHlsZUxvY2F0aW9uLHBhcnNlZE9wdGlvbnM6dGhpcy5zaG91bGRQYXJzZVNrZWxldG9ucz9iKG0pOnt9fTtyZXR1cm57dmFsOnt0eXBlOlwiZGF0ZVwiPT09bD9pLmRhdGU6aS50aW1lLHZhbHVlOm4sbG9jYXRpb246aCxzdHlsZTp2fSxlcnI6bnVsbH19cmV0dXJue3ZhbDp7dHlwZTpcIm51bWJlclwiPT09bD9pLm51bWJlcjpcImRhdGVcIj09PWw/aS5kYXRlOmkudGltZSx2YWx1ZTpuLGxvY2F0aW9uOmgsc3R5bGU6bnVsbCE9PShjPW51bGw9PT1wfHx2b2lkIDA9PT1wP3ZvaWQgMDpwLnN0eWxlKSYmdm9pZCAwIT09Yz9jOm51bGx9LGVycjpudWxsfTtjYXNlXCJwbHVyYWxcIjpjYXNlXCJzZWxlY3RvcmRpbmFsXCI6Y2FzZVwic2VsZWN0XCI6dmFyIF89dGhpcy5jbG9uZVBvc2l0aW9uKCk7aWYodGhpcy5idW1wU3BhY2UoKSwhdGhpcy5idW1wSWYoXCIsXCIpKXJldHVybiB0aGlzLmVycm9yKHIuRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9PUFRJT05TLEQoXywoMCxhLnBpKSh7fSxfKSkpO3RoaXMuYnVtcFNwYWNlKCk7dmFyIEU9dGhpcy5wYXJzZUlkZW50aWZpZXJJZlBvc3NpYmxlKCksUz0wO2lmKFwic2VsZWN0XCIhPT1sJiZcIm9mZnNldFwiPT09RS52YWx1ZSl7aWYoIXRoaXMuYnVtcElmKFwiOlwiKSlyZXR1cm4gdGhpcy5lcnJvcihyLkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfT0ZGU0VUX1ZBTFVFLEQodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTt2YXIgeTtpZih0aGlzLmJ1bXBTcGFjZSgpLCh5PXRoaXMudHJ5UGFyc2VEZWNpbWFsSW50ZWdlcihyLkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfT0ZGU0VUX1ZBTFVFLHIuSU5WQUxJRF9QTFVSQUxfQVJHVU1FTlRfT0ZGU0VUX1ZBTFVFKSkuZXJyKXJldHVybiB5O3RoaXMuYnVtcFNwYWNlKCksRT10aGlzLnBhcnNlSWRlbnRpZmllcklmUG9zc2libGUoKSxTPXkudmFsfXZhciBULEk9dGhpcy50cnlQYXJzZVBsdXJhbE9yU2VsZWN0T3B0aW9ucyhlLGwsdCxFKTtpZihJLmVycilyZXR1cm4gSTtpZigoVD10aGlzLnRyeVBhcnNlQXJndW1lbnRDbG9zZShzKSkuZXJyKXJldHVybiBUO3ZhciBPPUQocyx0aGlzLmNsb25lUG9zaXRpb24oKSk7cmV0dXJuXCJzZWxlY3RcIj09PWw/e3ZhbDp7dHlwZTppLnNlbGVjdCx2YWx1ZTpuLG9wdGlvbnM6cShJLnZhbCksbG9jYXRpb246T30sZXJyOm51bGx9Ont2YWw6e3R5cGU6aS5wbHVyYWwsdmFsdWU6bixvcHRpb25zOnEoSS52YWwpLG9mZnNldDpTLHBsdXJhbFR5cGU6XCJwbHVyYWxcIj09PWw/XCJjYXJkaW5hbFwiOlwib3JkaW5hbFwiLGxvY2F0aW9uOk99LGVycjpudWxsfTtkZWZhdWx0OnJldHVybiB0aGlzLmVycm9yKHIuSU5WQUxJRF9BUkdVTUVOVF9UWVBFLEQodSxkKSl9fSxlLnByb3RvdHlwZS50cnlQYXJzZUFyZ3VtZW50Q2xvc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaXNFT0YoKXx8MTI1IT09dGhpcy5jaGFyKCk/dGhpcy5lcnJvcihyLkVYUEVDVF9BUkdVTUVOVF9DTE9TSU5HX0JSQUNFLEQoZSx0aGlzLmNsb25lUG9zaXRpb24oKSkpOih0aGlzLmJ1bXAoKSx7dmFsOiEwLGVycjpudWxsfSl9LGUucHJvdG90eXBlLnBhcnNlU2ltcGxlQXJnU3R5bGVJZlBvc3NpYmxlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsdD10aGlzLmNsb25lUG9zaXRpb24oKTshdGhpcy5pc0VPRigpOyl7c3dpdGNoKHRoaXMuY2hhcigpKXtjYXNlIDM5OnRoaXMuYnVtcCgpO3ZhciBuPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKCF0aGlzLmJ1bXBVbnRpbChcIidcIikpcmV0dXJuIHRoaXMuZXJyb3Ioci5VTkNMT1NFRF9RVU9URV9JTl9BUkdVTUVOVF9TVFlMRSxEKG4sdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTt0aGlzLmJ1bXAoKTticmVhaztjYXNlIDEyMzplKz0xLHRoaXMuYnVtcCgpO2JyZWFrO2Nhc2UgMTI1OmlmKCEoZT4wKSlyZXR1cm57dmFsOnRoaXMubWVzc2FnZS5zbGljZSh0Lm9mZnNldCx0aGlzLm9mZnNldCgpKSxlcnI6bnVsbH07ZS09MTticmVhaztkZWZhdWx0OnRoaXMuYnVtcCgpfX1yZXR1cm57dmFsOnRoaXMubWVzc2FnZS5zbGljZSh0Lm9mZnNldCx0aGlzLm9mZnNldCgpKSxlcnI6bnVsbH19LGUucHJvdG90eXBlLnBhcnNlTnVtYmVyU2tlbGV0b25Gcm9tU3RyaW5nPWZ1bmN0aW9uKGUsdCl7dmFyIG49W107dHJ5e249ZnVuY3Rpb24oZSl7aWYoMD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIk51bWJlciBza2VsZXRvbiBjYW5ub3QgYmUgZW1wdHlcIik7Zm9yKHZhciB0PVtdLG49MCxyPWUuc3BsaXQoUykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg+MH0pKTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXS5zcGxpdChcIi9cIik7aWYoMD09PWkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbnVtYmVyIHNrZWxldG9uXCIpO2Zvcih2YXIgbz1pWzBdLGE9aS5zbGljZSgxKSxzPTAsYz1hO3M8Yy5sZW5ndGg7cysrKWlmKDA9PT1jW3NdLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIG51bWJlciBza2VsZXRvblwiKTt0LnB1c2goe3N0ZW06byxvcHRpb25zOmF9KX1yZXR1cm4gdH0oZSl9Y2F0Y2goaSl7cmV0dXJuIHRoaXMuZXJyb3Ioci5JTlZBTElEX05VTUJFUl9TS0VMRVRPTix0KX1yZXR1cm57dmFsOnt0eXBlOm8ubnVtYmVyLHRva2VuczpuLGxvY2F0aW9uOnQscGFyc2VkT3B0aW9uczp0aGlzLnNob3VsZFBhcnNlU2tlbGV0b25zP1Aobik6e319LGVycjpudWxsfX0sZS5wcm90b3R5cGUudHJ5UGFyc2VQbHVyYWxPclNlbGVjdE9wdGlvbnM9ZnVuY3Rpb24oZSx0LG4saSl7Zm9yKHZhciBvLGE9ITEscz1bXSxjPW5ldyBTZXQsdT1pLnZhbHVlLGw9aS5sb2NhdGlvbjs7KXtpZigwPT09dS5sZW5ndGgpe3ZhciBkPXRoaXMuY2xvbmVQb3NpdGlvbigpO2lmKFwic2VsZWN0XCI9PT10fHwhdGhpcy5idW1wSWYoXCI9XCIpKWJyZWFrO3ZhciBwPXRoaXMudHJ5UGFyc2VEZWNpbWFsSW50ZWdlcihyLkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1Isci5JTlZBTElEX1BMVVJBTF9BUkdVTUVOVF9TRUxFQ1RPUik7aWYocC5lcnIpcmV0dXJuIHA7bD1EKGQsdGhpcy5jbG9uZVBvc2l0aW9uKCkpLHU9dGhpcy5tZXNzYWdlLnNsaWNlKGQub2Zmc2V0LHRoaXMub2Zmc2V0KCkpfWlmKGMuaGFzKHUpKXJldHVybiB0aGlzLmVycm9yKFwic2VsZWN0XCI9PT10P3IuRFVQTElDQVRFX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUjpyLkRVUExJQ0FURV9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1IsbCk7XCJvdGhlclwiPT09dSYmKGE9ITApLHRoaXMuYnVtcFNwYWNlKCk7dmFyIGY9dGhpcy5jbG9uZVBvc2l0aW9uKCk7aWYoIXRoaXMuYnVtcElmKFwie1wiKSlyZXR1cm4gdGhpcy5lcnJvcihcInNlbGVjdFwiPT09dD9yLkVYUEVDVF9TRUxFQ1RfQVJHVU1FTlRfU0VMRUNUT1JfRlJBR01FTlQ6ci5FWFBFQ1RfUExVUkFMX0FSR1VNRU5UX1NFTEVDVE9SX0ZSQUdNRU5ULEQodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTt2YXIgaD10aGlzLnBhcnNlTWVzc2FnZShlKzEsdCxuKTtpZihoLmVycilyZXR1cm4gaDt2YXIgZz10aGlzLnRyeVBhcnNlQXJndW1lbnRDbG9zZShmKTtpZihnLmVycilyZXR1cm4gZztzLnB1c2goW3Use3ZhbHVlOmgudmFsLGxvY2F0aW9uOkQoZix0aGlzLmNsb25lUG9zaXRpb24oKSl9XSksYy5hZGQodSksdGhpcy5idW1wU3BhY2UoKSx1PShvPXRoaXMucGFyc2VJZGVudGlmaWVySWZQb3NzaWJsZSgpKS52YWx1ZSxsPW8ubG9jYXRpb259cmV0dXJuIDA9PT1zLmxlbmd0aD90aGlzLmVycm9yKFwic2VsZWN0XCI9PT10P3IuRVhQRUNUX1NFTEVDVF9BUkdVTUVOVF9TRUxFQ1RPUjpyLkVYUEVDVF9QTFVSQUxfQVJHVU1FTlRfU0VMRUNUT1IsRCh0aGlzLmNsb25lUG9zaXRpb24oKSx0aGlzLmNsb25lUG9zaXRpb24oKSkpOnRoaXMucmVxdWlyZXNPdGhlckNsYXVzZSYmIWE/dGhpcy5lcnJvcihyLk1JU1NJTkdfT1RIRVJfQ0xBVVNFLEQodGhpcy5jbG9uZVBvc2l0aW9uKCksdGhpcy5jbG9uZVBvc2l0aW9uKCkpKTp7dmFsOnMsZXJyOm51bGx9fSxlLnByb3RvdHlwZS50cnlQYXJzZURlY2ltYWxJbnRlZ2VyPWZ1bmN0aW9uKGUsdCl7dmFyIG49MSxyPXRoaXMuY2xvbmVQb3NpdGlvbigpO3RoaXMuYnVtcElmKFwiK1wiKXx8dGhpcy5idW1wSWYoXCItXCIpJiYobj0tMSk7Zm9yKHZhciBpPSExLG89MDshdGhpcy5pc0VPRigpOyl7dmFyIGE9dGhpcy5jaGFyKCk7aWYoIShhPj00OCYmYTw9NTcpKWJyZWFrO2k9ITAsbz0xMCpvKyhhLTQ4KSx0aGlzLmJ1bXAoKX12YXIgcz1EKHIsdGhpcy5jbG9uZVBvc2l0aW9uKCkpO3JldHVybiBpP1cobyo9bik/e3ZhbDpvLGVycjpudWxsfTp0aGlzLmVycm9yKHQscyk6dGhpcy5lcnJvcihlLHMpfSxlLnByb3RvdHlwZS5vZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3NpdGlvbi5vZmZzZXR9LGUucHJvdG90eXBlLmlzRU9GPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0KCk9PT10aGlzLm1lc3NhZ2UubGVuZ3RofSxlLnByb3RvdHlwZS5jbG9uZVBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLnBvc2l0aW9uLm9mZnNldCxsaW5lOnRoaXMucG9zaXRpb24ubGluZSxjb2x1bW46dGhpcy5wb3NpdGlvbi5jb2x1bW59fSxlLnByb3RvdHlwZS5jaGFyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wb3NpdGlvbi5vZmZzZXQ7aWYoZT49dGhpcy5tZXNzYWdlLmxlbmd0aCl0aHJvdyBFcnJvcihcIm91dCBvZiBib3VuZFwiKTt2YXIgdD1aKHRoaXMubWVzc2FnZSxlKTtpZih2b2lkIDA9PT10KXRocm93IEVycm9yKFwiT2Zmc2V0IFwiLmNvbmNhdChlLFwiIGlzIGF0IGludmFsaWQgVVRGLTE2IGNvZGUgdW5pdCBib3VuZGFyeVwiKSk7cmV0dXJuIHR9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUsdCl7cmV0dXJue3ZhbDpudWxsLGVycjp7a2luZDplLG1lc3NhZ2U6dGhpcy5tZXNzYWdlLGxvY2F0aW9uOnR9fX0sZS5wcm90b3R5cGUuYnVtcD1mdW5jdGlvbigpe2lmKCF0aGlzLmlzRU9GKCkpe3ZhciBlPXRoaXMuY2hhcigpOzEwPT09ZT8odGhpcy5wb3NpdGlvbi5saW5lKz0xLHRoaXMucG9zaXRpb24uY29sdW1uPTEsdGhpcy5wb3NpdGlvbi5vZmZzZXQrPTEpOih0aGlzLnBvc2l0aW9uLmNvbHVtbis9MSx0aGlzLnBvc2l0aW9uLm9mZnNldCs9ZTw2NTUzNj8xOjIpfX0sZS5wcm90b3R5cGUuYnVtcElmPWZ1bmN0aW9uKGUpe2lmKEsodGhpcy5tZXNzYWdlLGUsdGhpcy5vZmZzZXQoKSkpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXRoaXMuYnVtcCgpO3JldHVybiEwfXJldHVybiExfSxlLnByb3RvdHlwZS5idW1wVW50aWw9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5vZmZzZXQoKSxuPXRoaXMubWVzc2FnZS5pbmRleE9mKGUsdCk7cmV0dXJuIG4+PTA/KHRoaXMuYnVtcFRvKG4pLCEwKToodGhpcy5idW1wVG8odGhpcy5tZXNzYWdlLmxlbmd0aCksITEpfSxlLnByb3RvdHlwZS5idW1wVG89ZnVuY3Rpb24oZSl7aWYodGhpcy5vZmZzZXQoKT5lKXRocm93IEVycm9yKFwidGFyZ2V0T2Zmc2V0IFwiLmNvbmNhdChlLFwiIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9mZnNldCBcIikuY29uY2F0KHRoaXMub2Zmc2V0KCkpKTtmb3IoZT1NYXRoLm1pbihlLHRoaXMubWVzc2FnZS5sZW5ndGgpOzspe3ZhciB0PXRoaXMub2Zmc2V0KCk7aWYodD09PWUpYnJlYWs7aWYodD5lKXRocm93IEVycm9yKFwidGFyZ2V0T2Zmc2V0IFwiLmNvbmNhdChlLFwiIGlzIGF0IGludmFsaWQgVVRGLTE2IGNvZGUgdW5pdCBib3VuZGFyeVwiKSk7aWYodGhpcy5idW1wKCksdGhpcy5pc0VPRigpKWJyZWFrfX0sZS5wcm90b3R5cGUuYnVtcFNwYWNlPWZ1bmN0aW9uKCl7Zm9yKDshdGhpcy5pc0VPRigpJiZuZSh0aGlzLmNoYXIoKSk7KXRoaXMuYnVtcCgpfSxlLnByb3RvdHlwZS5wZWVrPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0VPRigpKXJldHVybiBudWxsO3ZhciBlPXRoaXMuY2hhcigpLHQ9dGhpcy5vZmZzZXQoKSxuPXRoaXMubWVzc2FnZS5jaGFyQ29kZUF0KHQrKGU+PTY1NTM2PzI6MSkpO3JldHVybiBudWxsIT09biYmdm9pZCAwIT09bj9uOm51bGx9LGV9KCk7ZnVuY3Rpb24gdGUoZSl7cmV0dXJuIGU+PTk3JiZlPD0xMjJ8fGU+PTY1JiZlPD05MH1mdW5jdGlvbiBuZShlKXtyZXR1cm4gZT49OSYmZTw9MTN8fDMyPT09ZXx8MTMzPT09ZXx8ZT49ODIwNiYmZTw9ODIwN3x8ODIzMj09PWV8fDgyMzM9PT1lfWZ1bmN0aW9uIHJlKGUpe3JldHVybiBlPj0zMyYmZTw9MzV8fDM2PT09ZXx8ZT49MzcmJmU8PTM5fHw0MD09PWV8fDQxPT09ZXx8NDI9PT1lfHw0Mz09PWV8fDQ0PT09ZXx8NDU9PT1lfHxlPj00NiYmZTw9NDd8fGU+PTU4JiZlPD01OXx8ZT49NjAmJmU8PTYyfHxlPj02MyYmZTw9NjR8fDkxPT09ZXx8OTI9PT1lfHw5Mz09PWV8fDk0PT09ZXx8OTY9PT1lfHwxMjM9PT1lfHwxMjQ9PT1lfHwxMjU9PT1lfHwxMjY9PT1lfHwxNjE9PT1lfHxlPj0xNjImJmU8PTE2NXx8MTY2PT09ZXx8MTY3PT09ZXx8MTY5PT09ZXx8MTcxPT09ZXx8MTcyPT09ZXx8MTc0PT09ZXx8MTc2PT09ZXx8MTc3PT09ZXx8MTgyPT09ZXx8MTg3PT09ZXx8MTkxPT09ZXx8MjE1PT09ZXx8MjQ3PT09ZXx8ZT49ODIwOCYmZTw9ODIxM3x8ZT49ODIxNCYmZTw9ODIxNXx8ODIxNj09PWV8fDgyMTc9PT1lfHw4MjE4PT09ZXx8ZT49ODIxOSYmZTw9ODIyMHx8ODIyMT09PWV8fDgyMjI9PT1lfHw4MjIzPT09ZXx8ZT49ODIyNCYmZTw9ODIzMXx8ZT49ODI0MCYmZTw9ODI0OHx8ODI0OT09PWV8fDgyNTA9PT1lfHxlPj04MjUxJiZlPD04MjU0fHxlPj04MjU3JiZlPD04MjU5fHw4MjYwPT09ZXx8ODI2MT09PWV8fDgyNjI9PT1lfHxlPj04MjYzJiZlPD04MjczfHw4Mjc0PT09ZXx8ODI3NT09PWV8fGU+PTgyNzcmJmU8PTgyODZ8fGU+PTg1OTImJmU8PTg1OTZ8fGU+PTg1OTcmJmU8PTg2MDF8fGU+PTg2MDImJmU8PTg2MDN8fGU+PTg2MDQmJmU8PTg2MDd8fDg2MDg9PT1lfHxlPj04NjA5JiZlPD04NjEwfHw4NjExPT09ZXx8ZT49ODYxMiYmZTw9ODYxM3x8ODYxND09PWV8fGU+PTg2MTUmJmU8PTg2MjF8fDg2MjI9PT1lfHxlPj04NjIzJiZlPD04NjUzfHxlPj04NjU0JiZlPD04NjU1fHxlPj04NjU2JiZlPD04NjU3fHw4NjU4PT09ZXx8ODY1OT09PWV8fDg2NjA9PT1lfHxlPj04NjYxJiZlPD04NjkxfHxlPj04NjkyJiZlPD04OTU5fHxlPj04OTYwJiZlPD04OTY3fHw4OTY4PT09ZXx8ODk2OT09PWV8fDg5NzA9PT1lfHw4OTcxPT09ZXx8ZT49ODk3MiYmZTw9ODk5MXx8ZT49ODk5MiYmZTw9ODk5M3x8ZT49ODk5NCYmZTw9OWUzfHw5MDAxPT09ZXx8OTAwMj09PWV8fGU+PTkwMDMmJmU8PTkwODN8fDkwODQ9PT1lfHxlPj05MDg1JiZlPD05MTE0fHxlPj05MTE1JiZlPD05MTM5fHxlPj05MTQwJiZlPD05MTc5fHxlPj05MTgwJiZlPD05MTg1fHxlPj05MTg2JiZlPD05MjU0fHxlPj05MjU1JiZlPD05Mjc5fHxlPj05MjgwJiZlPD05MjkwfHxlPj05MjkxJiZlPD05MzExfHxlPj05NDcyJiZlPD05NjU0fHw5NjU1PT09ZXx8ZT49OTY1NiYmZTw9OTY2NHx8OTY2NT09PWV8fGU+PTk2NjYmJmU8PTk3MTl8fGU+PTk3MjAmJmU8PTk3Mjd8fGU+PTk3MjgmJmU8PTk4Mzh8fDk4Mzk9PT1lfHxlPj05ODQwJiZlPD0xMDA4N3x8MTAwODg9PT1lfHwxMDA4OT09PWV8fDEwMDkwPT09ZXx8MTAwOTE9PT1lfHwxMDA5Mj09PWV8fDEwMDkzPT09ZXx8MTAwOTQ9PT1lfHwxMDA5NT09PWV8fDEwMDk2PT09ZXx8MTAwOTc9PT1lfHwxMDA5OD09PWV8fDEwMDk5PT09ZXx8MTAxMDA9PT1lfHwxMDEwMT09PWV8fGU+PTEwMTMyJiZlPD0xMDE3NXx8ZT49MTAxNzYmJmU8PTEwMTgwfHwxMDE4MT09PWV8fDEwMTgyPT09ZXx8ZT49MTAxODMmJmU8PTEwMjEzfHwxMDIxND09PWV8fDEwMjE1PT09ZXx8MTAyMTY9PT1lfHwxMDIxNz09PWV8fDEwMjE4PT09ZXx8MTAyMTk9PT1lfHwxMDIyMD09PWV8fDEwMjIxPT09ZXx8MTAyMjI9PT1lfHwxMDIyMz09PWV8fGU+PTEwMjI0JiZlPD0xMDIzOXx8ZT49MTAyNDAmJmU8PTEwNDk1fHxlPj0xMDQ5NiYmZTw9MTA2MjZ8fDEwNjI3PT09ZXx8MTA2Mjg9PT1lfHwxMDYyOT09PWV8fDEwNjMwPT09ZXx8MTA2MzE9PT1lfHwxMDYzMj09PWV8fDEwNjMzPT09ZXx8MTA2MzQ9PT1lfHwxMDYzNT09PWV8fDEwNjM2PT09ZXx8MTA2Mzc9PT1lfHwxMDYzOD09PWV8fDEwNjM5PT09ZXx8MTA2NDA9PT1lfHwxMDY0MT09PWV8fDEwNjQyPT09ZXx8MTA2NDM9PT1lfHwxMDY0ND09PWV8fDEwNjQ1PT09ZXx8MTA2NDY9PT1lfHwxMDY0Nz09PWV8fDEwNjQ4PT09ZXx8ZT49MTA2NDkmJmU8PTEwNzExfHwxMDcxMj09PWV8fDEwNzEzPT09ZXx8MTA3MTQ9PT1lfHwxMDcxNT09PWV8fGU+PTEwNzE2JiZlPD0xMDc0N3x8MTA3NDg9PT1lfHwxMDc0OT09PWV8fGU+PTEwNzUwJiZlPD0xMTAwN3x8ZT49MTEwMDgmJmU8PTExMDU1fHxlPj0xMTA1NiYmZTw9MTEwNzZ8fGU+PTExMDc3JiZlPD0xMTA3OHx8ZT49MTEwNzkmJmU8PTExMDg0fHxlPj0xMTA4NSYmZTw9MTExMjN8fGU+PTExMTI0JiZlPD0xMTEyNXx8ZT49MTExMjYmJmU8PTExMTU3fHwxMTE1OD09PWV8fGU+PTExMTU5JiZlPD0xMTI2M3x8ZT49MTE3NzYmJmU8PTExNzc3fHwxMTc3OD09PWV8fDExNzc5PT09ZXx8MTE3ODA9PT1lfHwxMTc4MT09PWV8fGU+PTExNzgyJiZlPD0xMTc4NHx8MTE3ODU9PT1lfHwxMTc4Nj09PWV8fDExNzg3PT09ZXx8MTE3ODg9PT1lfHwxMTc4OT09PWV8fGU+PTExNzkwJiZlPD0xMTc5OHx8MTE3OTk9PT1lfHxlPj0xMTgwMCYmZTw9MTE4MDF8fDExODAyPT09ZXx8MTE4MDM9PT1lfHwxMTgwND09PWV8fDExODA1PT09ZXx8ZT49MTE4MDYmJmU8PTExODA3fHwxMTgwOD09PWV8fDExODA5PT09ZXx8MTE4MTA9PT1lfHwxMTgxMT09PWV8fDExODEyPT09ZXx8MTE4MTM9PT1lfHwxMTgxND09PWV8fDExODE1PT09ZXx8MTE4MTY9PT1lfHwxMTgxNz09PWV8fGU+PTExODE4JiZlPD0xMTgyMnx8MTE4MjM9PT1lfHxlPj0xMTgyNCYmZTw9MTE4MzN8fGU+PTExODM0JiZlPD0xMTgzNXx8ZT49MTE4MzYmJmU8PTExODM5fHwxMTg0MD09PWV8fDExODQxPT09ZXx8MTE4NDI9PT1lfHxlPj0xMTg0MyYmZTw9MTE4NTV8fGU+PTExODU2JiZlPD0xMTg1N3x8MTE4NTg9PT1lfHxlPj0xMTg1OSYmZTw9MTE5MDN8fGU+PTEyMjg5JiZlPD0xMjI5MXx8MTIyOTY9PT1lfHwxMjI5Nz09PWV8fDEyMjk4PT09ZXx8MTIyOTk9PT1lfHwxMjMwMD09PWV8fDEyMzAxPT09ZXx8MTIzMDI9PT1lfHwxMjMwMz09PWV8fDEyMzA0PT09ZXx8MTIzMDU9PT1lfHxlPj0xMjMwNiYmZTw9MTIzMDd8fDEyMzA4PT09ZXx8MTIzMDk9PT1lfHwxMjMxMD09PWV8fDEyMzExPT09ZXx8MTIzMTI9PT1lfHwxMjMxMz09PWV8fDEyMzE0PT09ZXx8MTIzMTU9PT1lfHwxMjMxNj09PWV8fDEyMzE3PT09ZXx8ZT49MTIzMTgmJmU8PTEyMzE5fHwxMjMyMD09PWV8fDEyMzM2PT09ZXx8NjQ4MzA9PT1lfHw2NDgzMT09PWV8fGU+PTY1MDkzJiZlPD02NTA5NH1mdW5jdGlvbiBpZShlKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKGRlbGV0ZSBlLmxvY2F0aW9uLHAoZSl8fGYoZSkpZm9yKHZhciB0IGluIGUub3B0aW9ucylkZWxldGUgZS5vcHRpb25zW3RdLmxvY2F0aW9uLGllKGUub3B0aW9uc1t0XS52YWx1ZSk7ZWxzZSB1KGUpJiZtKGUuc3R5bGUpfHwobChlKXx8ZChlKSkmJnYoZS5zdHlsZSk/ZGVsZXRlIGUuc3R5bGUubG9jYXRpb246ZyhlKSYmaWUoZS5jaGlsZHJlbil9KSl9ZnVuY3Rpb24gb2UoZSx0KXt2b2lkIDA9PT10JiYodD17fSksdD0oMCxhLnBpKSh7c2hvdWxkUGFyc2VTa2VsZXRvbnM6ITAscmVxdWlyZXNPdGhlckNsYXVzZTohMH0sdCk7dmFyIG49bmV3IGVlKGUsdCkucGFyc2UoKTtpZihuLmVycil7dmFyIGk9U3ludGF4RXJyb3IocltuLmVyci5raW5kXSk7dGhyb3cgaS5sb2NhdGlvbj1uLmVyci5sb2NhdGlvbixpLm9yaWdpbmFsTWVzc2FnZT1uLmVyci5tZXNzYWdlLGl9cmV0dXJuKG51bGw9PT10fHx2b2lkIDA9PT10P3ZvaWQgMDp0LmNhcHR1cmVMb2NhdGlvbil8fGllKG4udmFsKSxuLnZhbH19LDM0NzUwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7QzpmdW5jdGlvbigpe3JldHVybiBwfX0pO3ZhciByLGk9big3MDY1NSksbz1uKDg1NjQ1KSxhPW4oOTU5NTcpLHM9bigyMDQ5NCk7ZnVuY3Rpb24gYyhlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgZX1mdW5jdGlvbiB1KGUsdCxuLGksYSxsLGQpe2lmKDE9PT1lLmxlbmd0aCYmKDAsby5PNCkoZVswXSkpcmV0dXJuW3t0eXBlOnIubGl0ZXJhbCx2YWx1ZTplWzBdLnZhbHVlfV07Zm9yKHZhciBwPVtdLGY9MCxoPWU7ZjxoLmxlbmd0aDtmKyspe3ZhciBnPWhbZl07aWYoKDAsby5PNCkoZykpcC5wdXNoKHt0eXBlOnIubGl0ZXJhbCx2YWx1ZTpnLnZhbHVlfSk7ZWxzZSBpZigoMCxvLnl4KShnKSlcIm51bWJlclwiPT09dHlwZW9mIGwmJnAucHVzaCh7dHlwZTpyLmxpdGVyYWwsdmFsdWU6bi5nZXROdW1iZXJGb3JtYXQodCkuZm9ybWF0KGwpfSk7ZWxzZXt2YXIgbT1nLnZhbHVlO2lmKCFhfHwhKG0gaW4gYSkpdGhyb3cgbmV3IHMuSFIobSxkKTt2YXIgdj1hW21dO2lmKCgwLG8uVkcpKGcpKXYmJlwic3RyaW5nXCIhPT10eXBlb2YgdiYmXCJudW1iZXJcIiE9PXR5cGVvZiB2fHwodj1cInN0cmluZ1wiPT09dHlwZW9mIHZ8fFwibnVtYmVyXCI9PT10eXBlb2Ygdj9TdHJpbmcodik6XCJcIikscC5wdXNoKHt0eXBlOlwic3RyaW5nXCI9PT10eXBlb2Ygdj9yLmxpdGVyYWw6ci5vYmplY3QsdmFsdWU6dn0pO2Vsc2UgaWYoKDAsby5ycCkoZykpe3ZhciBfPVwic3RyaW5nXCI9PT10eXBlb2YgZy5zdHlsZT9pLmRhdGVbZy5zdHlsZV06KDAsby5JaSkoZy5zdHlsZSk/Zy5zdHlsZS5wYXJzZWRPcHRpb25zOnZvaWQgMDtwLnB1c2goe3R5cGU6ci5saXRlcmFsLHZhbHVlOm4uZ2V0RGF0ZVRpbWVGb3JtYXQodCxfKS5mb3JtYXQodil9KX1lbHNlIGlmKCgwLG8ucGUpKGcpKXtfPVwic3RyaW5nXCI9PT10eXBlb2YgZy5zdHlsZT9pLnRpbWVbZy5zdHlsZV06KDAsby5JaSkoZy5zdHlsZSk/Zy5zdHlsZS5wYXJzZWRPcHRpb25zOmkudGltZS5tZWRpdW07cC5wdXNoKHt0eXBlOnIubGl0ZXJhbCx2YWx1ZTpuLmdldERhdGVUaW1lRm9ybWF0KHQsXykuZm9ybWF0KHYpfSl9ZWxzZSBpZigoMCxvLnVmKShnKSl7KF89XCJzdHJpbmdcIj09PXR5cGVvZiBnLnN0eWxlP2kubnVtYmVyW2cuc3R5bGVdOigwLG8uV2gpKGcuc3R5bGUpP2cuc3R5bGUucGFyc2VkT3B0aW9uczp2b2lkIDApJiZfLnNjYWxlJiYodio9Xy5zY2FsZXx8MSkscC5wdXNoKHt0eXBlOnIubGl0ZXJhbCx2YWx1ZTpuLmdldE51bWJlckZvcm1hdCh0LF8pLmZvcm1hdCh2KX0pfWVsc2V7aWYoKDAsby5ISSkoZykpe3ZhciBFPWcuY2hpbGRyZW4sYj1nLnZhbHVlLFM9YVtiXTtpZighYyhTKSl0aHJvdyBuZXcgcy5ZUihiLFwiZnVuY3Rpb25cIixkKTt2YXIgeT1TKHUoRSx0LG4saSxhLGwpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsdWV9KSkpO0FycmF5LmlzQXJyYXkoeSl8fCh5PVt5XSkscC5wdXNoLmFwcGx5KHAseS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybnt0eXBlOlwic3RyaW5nXCI9PT10eXBlb2YgZT9yLmxpdGVyYWw6ci5vYmplY3QsdmFsdWU6ZX19KSkpfWlmKCgwLG8uV2kpKGcpKXtpZighKFQ9Zy5vcHRpb25zW3ZdfHxnLm9wdGlvbnMub3RoZXIpKXRocm93IG5ldyBzLkM4KGcudmFsdWUsdixPYmplY3Qua2V5cyhnLm9wdGlvbnMpLGQpO3AucHVzaC5hcHBseShwLHUoVC52YWx1ZSx0LG4saSxhKSl9ZWxzZSBpZigoMCxvLkpvKShnKSl7dmFyIFQ7aWYoIShUPWcub3B0aW9uc1tcIj1cIi5jb25jYXQodildKSl7aWYoIUludGwuUGx1cmFsUnVsZXMpdGhyb3cgbmV3IHMudV8oJ0ludGwuUGx1cmFsUnVsZXMgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGVudmlyb25tZW50LlxcblRyeSBwb2x5ZmlsbGluZyBpdCB1c2luZyBcIkBmb3JtYXRqcy9pbnRsLXBsdXJhbHJ1bGVzXCJcXG4nLHMuaksuTUlTU0lOR19JTlRMX0FQSSxkKTt2YXIgST1uLmdldFBsdXJhbFJ1bGVzKHQse3R5cGU6Zy5wbHVyYWxUeXBlfSkuc2VsZWN0KHYtKGcub2Zmc2V0fHwwKSk7VD1nLm9wdGlvbnNbSV18fGcub3B0aW9ucy5vdGhlcn1pZighVCl0aHJvdyBuZXcgcy5DOChnLnZhbHVlLHYsT2JqZWN0LmtleXMoZy5vcHRpb25zKSxkKTtwLnB1c2guYXBwbHkocCx1KFQudmFsdWUsdCxuLGksYSx2LShnLm9mZnNldHx8MCkpKX1lbHNlO319fXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg8Mj9lOmUucmVkdWNlKChmdW5jdGlvbihlLHQpe3ZhciBuPWVbZS5sZW5ndGgtMV07cmV0dXJuIG4mJm4udHlwZT09PXIubGl0ZXJhbCYmdC50eXBlPT09ci5saXRlcmFsP24udmFsdWUrPXQudmFsdWU6ZS5wdXNoKHQpLGV9KSxbXSl9KHApfWZ1bmN0aW9uIGwoZSx0KXtyZXR1cm4gdD9PYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGZ1bmN0aW9uKG4scil7dmFyIG8sYTtyZXR1cm4gbltyXT0obz1lW3JdLChhPXRbcl0pPygwLGkucGkpKCgwLGkucGkpKCgwLGkucGkpKHt9LG98fHt9KSxhfHx7fSksT2JqZWN0LmtleXMobykucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBlW3RdPSgwLGkucGkpKCgwLGkucGkpKHt9LG9bdF0pLGFbdF18fHt9KSxlfSkse30pKTpvKSxufSksKDAsaS5waSkoe30sZSkpOmV9ZnVuY3Rpb24gZChlKXtyZXR1cm57Y3JlYXRlOmZ1bmN0aW9uKCl7cmV0dXJue2dldDpmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0sc2V0OmZ1bmN0aW9uKHQsbil7ZVt0XT1ufX19fX0hZnVuY3Rpb24oZSl7ZVtlLmxpdGVyYWw9MF09XCJsaXRlcmFsXCIsZVtlLm9iamVjdD0xXT1cIm9iamVjdFwifShyfHwocj17fSkpO3ZhciBwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4sbyxzKXt2b2lkIDA9PT1uJiYobj1lLmRlZmF1bHRMb2NhbGUpO3ZhciBjLHA9dGhpcztpZih0aGlzLmZvcm1hdHRlckNhY2hlPXtudW1iZXI6e30sZGF0ZVRpbWU6e30scGx1cmFsUnVsZXM6e319LHRoaXMuZm9ybWF0PWZ1bmN0aW9uKGUpe3ZhciB0PXAuZm9ybWF0VG9QYXJ0cyhlKTtpZigxPT09dC5sZW5ndGgpcmV0dXJuIHRbMF0udmFsdWU7dmFyIG49dC5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubGVuZ3RoJiZ0LnR5cGU9PT1yLmxpdGVyYWwmJlwic3RyaW5nXCI9PT10eXBlb2YgZVtlLmxlbmd0aC0xXT9lW2UubGVuZ3RoLTFdKz10LnZhbHVlOmUucHVzaCh0LnZhbHVlKSxlfSksW10pO3JldHVybiBuLmxlbmd0aDw9MT9uWzBdfHxcIlwiOm59LHRoaXMuZm9ybWF0VG9QYXJ0cz1mdW5jdGlvbihlKXtyZXR1cm4gdShwLmFzdCxwLmxvY2FsZXMscC5mb3JtYXR0ZXJzLHAuZm9ybWF0cyxlLHZvaWQgMCxwLm1lc3NhZ2UpfSx0aGlzLnJlc29sdmVkT3B0aW9ucz1mdW5jdGlvbigpe3ZhciBlO3JldHVybntsb2NhbGU6KG51bGw9PT0oZT1wLnJlc29sdmVkTG9jYWxlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS50b1N0cmluZygpKXx8SW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKHAubG9jYWxlcylbMF19fSx0aGlzLmdldEFzdD1mdW5jdGlvbigpe3JldHVybiBwLmFzdH0sdGhpcy5sb2NhbGVzPW4sdGhpcy5yZXNvbHZlZExvY2FsZT1lLnJlc29sdmVMb2NhbGUobiksXCJzdHJpbmdcIj09PXR5cGVvZiB0KXtpZih0aGlzLm1lc3NhZ2U9dCwhZS5fX3BhcnNlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnRsTWVzc2FnZUZvcm1hdC5fX3BhcnNlIG11c3QgYmUgc2V0IHRvIHByb2Nlc3MgYG1lc3NhZ2VgIG9mIHR5cGUgYHN0cmluZ2BcIik7dGhpcy5hc3Q9ZS5fX3BhcnNlKHQse2lnbm9yZVRhZzpudWxsPT09c3x8dm9pZCAwPT09cz92b2lkIDA6cy5pZ25vcmVUYWcsbG9jYWxlOnRoaXMucmVzb2x2ZWRMb2NhbGV9KX1lbHNlIHRoaXMuYXN0PXQ7aWYoIUFycmF5LmlzQXJyYXkodGhpcy5hc3QpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJBIG1lc3NhZ2UgbXVzdCBiZSBwcm92aWRlZCBhcyBhIFN0cmluZyBvciBBU1QuXCIpO3RoaXMuZm9ybWF0cz1sKGUuZm9ybWF0cyxvKSx0aGlzLmZvcm1hdHRlcnM9cyYmcy5mb3JtYXR0ZXJzfHwodm9pZCAwPT09KGM9dGhpcy5mb3JtYXR0ZXJDYWNoZSkmJihjPXtudW1iZXI6e30sZGF0ZVRpbWU6e30scGx1cmFsUnVsZXM6e319KSx7Z2V0TnVtYmVyRm9ybWF0OigwLGEuWikoKGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIG5ldygoZT1JbnRsLk51bWJlckZvcm1hdCkuYmluZC5hcHBseShlLCgwLGkuZXYpKFt2b2lkIDBdLHQsITEpKSl9KSx7Y2FjaGU6ZChjLm51bWJlciksc3RyYXRlZ3k6YS5BLnZhcmlhZGljfSksZ2V0RGF0ZVRpbWVGb3JtYXQ6KDAsYS5aKSgoZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuRGF0ZVRpbWVGb3JtYXQpLmJpbmQuYXBwbHkoZSwoMCxpLmV2KShbdm9pZCAwXSx0LCExKSkpfSkse2NhY2hlOmQoYy5kYXRlVGltZSksc3RyYXRlZ3k6YS5BLnZhcmlhZGljfSksZ2V0UGx1cmFsUnVsZXM6KDAsYS5aKSgoZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gbmV3KChlPUludGwuUGx1cmFsUnVsZXMpLmJpbmQuYXBwbHkoZSwoMCxpLmV2KShbdm9pZCAwXSx0LCExKSkpfSkse2NhY2hlOmQoYy5wbHVyYWxSdWxlcyksc3RyYXRlZ3k6YS5BLnZhcmlhZGljfSl9KX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0TG9jYWxlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLm1lbW9pemVkRGVmYXVsdExvY2FsZXx8KGUubWVtb2l6ZWREZWZhdWx0TG9jYWxlPShuZXcgSW50bC5OdW1iZXJGb3JtYXQpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZSksZS5tZW1vaXplZERlZmF1bHRMb2NhbGV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5tZW1vaXplZERlZmF1bHRMb2NhbGU9bnVsbCxlLnJlc29sdmVMb2NhbGU9ZnVuY3Rpb24oZSl7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBJbnRsLkxvY2FsZSl7dmFyIHQ9SW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKGUpO3JldHVybiB0Lmxlbmd0aD4wP25ldyBJbnRsLkxvY2FsZSh0WzBdKTpuZXcgSW50bC5Mb2NhbGUoXCJzdHJpbmdcIj09PXR5cGVvZiBlP2U6ZVswXSl9fSxlLl9fcGFyc2U9by5RYyxlLmZvcm1hdHM9e251bWJlcjp7aW50ZWdlcjp7bWF4aW11bUZyYWN0aW9uRGlnaXRzOjB9LGN1cnJlbmN5OntzdHlsZTpcImN1cnJlbmN5XCJ9LHBlcmNlbnQ6e3N0eWxlOlwicGVyY2VudFwifX0sZGF0ZTp7c2hvcnQ6e21vbnRoOlwibnVtZXJpY1wiLGRheTpcIm51bWVyaWNcIix5ZWFyOlwiMi1kaWdpdFwifSxtZWRpdW06e21vbnRoOlwic2hvcnRcIixkYXk6XCJudW1lcmljXCIseWVhcjpcIm51bWVyaWNcIn0sbG9uZzp7bW9udGg6XCJsb25nXCIsZGF5OlwibnVtZXJpY1wiLHllYXI6XCJudW1lcmljXCJ9LGZ1bGw6e3dlZWtkYXk6XCJsb25nXCIsbW9udGg6XCJsb25nXCIsZGF5OlwibnVtZXJpY1wiLHllYXI6XCJudW1lcmljXCJ9fSx0aW1lOntzaG9ydDp7aG91cjpcIm51bWVyaWNcIixtaW51dGU6XCJudW1lcmljXCJ9LG1lZGl1bTp7aG91cjpcIm51bWVyaWNcIixtaW51dGU6XCJudW1lcmljXCIsc2Vjb25kOlwibnVtZXJpY1wifSxsb25nOntob3VyOlwibnVtZXJpY1wiLG1pbnV0ZTpcIm51bWVyaWNcIixzZWNvbmQ6XCJudW1lcmljXCIsdGltZVpvbmVOYW1lOlwic2hvcnRcIn0sZnVsbDp7aG91cjpcIm51bWVyaWNcIixtaW51dGU6XCJudW1lcmljXCIsc2Vjb25kOlwibnVtZXJpY1wiLHRpbWVab25lTmFtZTpcInNob3J0XCJ9fX0sZX0oKX0sMjA0OTQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtDODpmdW5jdGlvbigpe3JldHVybiBhfSxIUjpmdW5jdGlvbigpe3JldHVybiBjfSxZUjpmdW5jdGlvbigpe3JldHVybiBzfSxqSzpmdW5jdGlvbigpe3JldHVybiByfSx1XzpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByLGk9big3MDY1NSk7IWZ1bmN0aW9uKGUpe2UuTUlTU0lOR19WQUxVRT1cIk1JU1NJTkdfVkFMVUVcIixlLklOVkFMSURfVkFMVUU9XCJJTlZBTElEX1ZBTFVFXCIsZS5NSVNTSU5HX0lOVExfQVBJPVwiTUlTU0lOR19JTlRMX0FQSVwifShyfHwocj17fSkpO3ZhciBvPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuLHIpe3ZhciBpPWUuY2FsbCh0aGlzLHQpfHx0aGlzO3JldHVybiBpLmNvZGU9bixpLm9yaWdpbmFsTWVzc2FnZT1yLGl9cmV0dXJuKDAsaS5aVCkodCxlKSx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiW2Zvcm1hdGpzIEVycm9yOiBcIi5jb25jYXQodGhpcy5jb2RlLFwiXSBcIikuY29uY2F0KHRoaXMubWVzc2FnZSl9LHR9KEVycm9yKSxhPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuLGksbyl7cmV0dXJuIGUuY2FsbCh0aGlzLCdJbnZhbGlkIHZhbHVlcyBmb3IgXCInLmNvbmNhdCh0LCdcIjogXCInKS5jb25jYXQobiwnXCIuIE9wdGlvbnMgYXJlIFwiJykuY29uY2F0KE9iamVjdC5rZXlzKGkpLmpvaW4oJ1wiLCBcIicpLCdcIicpLHIuSU5WQUxJRF9WQUxVRSxvKXx8dGhpc31yZXR1cm4oMCxpLlpUKSh0LGUpLHR9KG8pLHM9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4saSl7cmV0dXJuIGUuY2FsbCh0aGlzLCdWYWx1ZSBmb3IgXCInLmNvbmNhdCh0LCdcIiBtdXN0IGJlIG9mIHR5cGUgJykuY29uY2F0KG4pLHIuSU5WQUxJRF9WQUxVRSxpKXx8dGhpc31yZXR1cm4oMCxpLlpUKSh0LGUpLHR9KG8pLGM9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4pe3JldHVybiBlLmNhbGwodGhpcywnVGhlIGludGwgc3RyaW5nIGNvbnRleHQgdmFyaWFibGUgXCInLmNvbmNhdCh0LCdcIiB3YXMgbm90IHByb3ZpZGVkIHRvIHRoZSBzdHJpbmcgXCInKS5jb25jYXQobiwnXCInKSxyLk1JU1NJTkdfVkFMVUUsbil8fHRoaXN9cmV0dXJuKDAsaS5aVCkodCxlKSx0fShvKX0sMzQ1Mzc6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSkscj0wLGk9MixvPSEwO2Zvcig7aTxhcmd1bWVudHMubGVuZ3RoOyluW3IrK109YXJndW1lbnRzW2krK107cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihpLGEpe25bcl09ZnVuY3Rpb24oZSl7aWYobylpZihvPSExLGUpYShlKTtlbHNle2Zvcih2YXIgdD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKSxuPTA7bjx0Lmxlbmd0aDspdFtuKytdPWFyZ3VtZW50c1tuXTtpLmFwcGx5KG51bGwsdCl9fTt0cnl7ZS5hcHBseSh0fHxudWxsLG4pfWNhdGNoKHMpe28mJihvPSExLGEocykpfX0pKX19LDk3NDE5OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dDtuLmxlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aDtpZighdClyZXR1cm4gMDtmb3IodmFyIG49MDstLXQlND4xJiZcIj1cIj09PWUuY2hhckF0KHQpOykrK247cmV0dXJuIE1hdGguY2VpbCgzKmUubGVuZ3RoKS80LW59O2Zvcih2YXIgcj1uZXcgQXJyYXkoNjQpLGk9bmV3IEFycmF5KDEyMyksbz0wO288NjQ7KWlbcltvXT1vPDI2P28rNjU6bzw1Mj9vKzcxOm88NjI/by00Om8tNTl8NDNdPW8rKztuLmVuY29kZT1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciBpLG89bnVsbCxhPVtdLHM9MCxjPTA7dDxuOyl7dmFyIHU9ZVt0KytdO3N3aXRjaChjKXtjYXNlIDA6YVtzKytdPXJbdT4+Ml0saT0oMyZ1KTw8NCxjPTE7YnJlYWs7Y2FzZSAxOmFbcysrXT1yW2l8dT4+NF0saT0oMTUmdSk8PDIsYz0yO2JyZWFrO2Nhc2UgMjphW3MrK109cltpfHU+PjZdLGFbcysrXT1yWzYzJnVdLGM9MH1zPjgxOTEmJigob3x8KG89W10pKS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGEpKSxzPTApfXJldHVybiBjJiYoYVtzKytdPXJbaV0sYVtzKytdPTYxLDE9PT1jJiYoYVtzKytdPTYxKSksbz8ocyYmby5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGEuc2xpY2UoMCxzKSkpLG8uam9pbihcIlwiKSk6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsYS5zbGljZSgwLHMpKX07dmFyIGE9XCJpbnZhbGlkIGVuY29kaW5nXCI7bi5kZWNvZGU9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcixvPW4scz0wLGM9MDtjPGUubGVuZ3RoOyl7dmFyIHU9ZS5jaGFyQ29kZUF0KGMrKyk7aWYoNjE9PT11JiZzPjEpYnJlYWs7aWYodm9pZCAwPT09KHU9aVt1XSkpdGhyb3cgRXJyb3IoYSk7c3dpdGNoKHMpe2Nhc2UgMDpyPXUscz0xO2JyZWFrO2Nhc2UgMTp0W24rK109cjw8MnwoNDgmdSk+PjQscj11LHM9MjticmVhaztjYXNlIDI6dFtuKytdPSgxNSZyKTw8NHwoNjAmdSk+PjIscj11LHM9MzticmVhaztjYXNlIDM6dFtuKytdPSgzJnIpPDw2fHUscz0wfX1pZigxPT09cyl0aHJvdyBFcnJvcihhKTtyZXR1cm4gbi1vfSxuLnRlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuL14oPzpbQS1aYS16MC05Ky9dezR9KSooPzpbQS1aYS16MC05Ky9dezJ9PT18W0EtWmEtejAtOSsvXXszfT0pPyQvLnRlc3QoZSl9fSwxOTIxMTpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiB0KCl7dGhpcy5fbGlzdGVuZXJzPXt9fWUuZXhwb3J0cz10LHQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4odGhpcy5fbGlzdGVuZXJzW2VdfHwodGhpcy5fbGlzdGVuZXJzW2VdPVtdKSkucHVzaCh7Zm46dCxjdHg6bnx8dGhpc30pLHRoaXN9LHQucHJvdG90eXBlLm9mZj1mdW5jdGlvbihlLHQpe2lmKHZvaWQgMD09PWUpdGhpcy5fbGlzdGVuZXJzPXt9O2Vsc2UgaWYodm9pZCAwPT09dCl0aGlzLl9saXN0ZW5lcnNbZV09W107ZWxzZSBmb3IodmFyIG49dGhpcy5fbGlzdGVuZXJzW2VdLHI9MDtyPG4ubGVuZ3RoOyluW3JdLmZuPT09dD9uLnNwbGljZShyLDEpOisrcjtyZXR1cm4gdGhpc30sdC5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9saXN0ZW5lcnNbZV07aWYodCl7Zm9yKHZhciBuPVtdLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7KW4ucHVzaChhcmd1bWVudHNbcisrXSk7Zm9yKHI9MDtyPHQubGVuZ3RoOyl0W3JdLmZuLmFwcGx5KHRbcisrXS5jdHgsbil9cmV0dXJuIHRoaXN9fSwxMDk0NTpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiB0KGUpe3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgRmxvYXQzMkFycmF5P2Z1bmN0aW9uKCl7dmFyIHQ9bmV3IEZsb2F0MzJBcnJheShbLTBdKSxuPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxyPTEyOD09PW5bM107ZnVuY3Rpb24gaShlLHIsaSl7dFswXT1lLHJbaV09blswXSxyW2krMV09blsxXSxyW2krMl09blsyXSxyW2krM109blszXX1mdW5jdGlvbiBvKGUscixpKXt0WzBdPWUscltpXT1uWzNdLHJbaSsxXT1uWzJdLHJbaSsyXT1uWzFdLHJbaSszXT1uWzBdfWZ1bmN0aW9uIGEoZSxyKXtyZXR1cm4gblswXT1lW3JdLG5bMV09ZVtyKzFdLG5bMl09ZVtyKzJdLG5bM109ZVtyKzNdLHRbMF19ZnVuY3Rpb24gcyhlLHIpe3JldHVybiBuWzNdPWVbcl0sblsyXT1lW3IrMV0sblsxXT1lW3IrMl0sblswXT1lW3IrM10sdFswXX1lLndyaXRlRmxvYXRMRT1yP2k6byxlLndyaXRlRmxvYXRCRT1yP286aSxlLnJlYWRGbG9hdExFPXI/YTpzLGUucmVhZEZsb2F0QkU9cj9zOmF9KCk6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsdCxuLHIpe3ZhciBpPXQ8MD8xOjA7aWYoaSYmKHQ9LXQpLDA9PT10KWUoMS90PjA/MDoyMTQ3NDgzNjQ4LG4scik7ZWxzZSBpZihpc05hTih0KSllKDIxNDMyODkzNDQsbixyKTtlbHNlIGlmKHQ+MzQwMjgyMzQ2NjM4NTI4ODZlMjIpZSgoaTw8MzF8MjEzOTA5NTA0MCk+Pj4wLG4scik7ZWxzZSBpZih0PDExNzU0OTQzNTA4MjIyODc1ZS01NCllKChpPDwzMXxNYXRoLnJvdW5kKHQvMTQwMTI5ODQ2NDMyNDgxN2UtNjApKT4+PjAsbixyKTtlbHNle3ZhciBvPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpO2UoKGk8PDMxfG8rMTI3PDwyM3w4Mzg4NjA3Jk1hdGgucm91bmQodCpNYXRoLnBvdygyLC1vKSo4Mzg4NjA4KSk+Pj4wLG4scil9fWZ1bmN0aW9uIGEoZSx0LG4pe3ZhciByPWUodCxuKSxpPTIqKHI+PjMxKSsxLG89cj4+PjIzJjI1NSxhPTgzODg2MDcmcjtyZXR1cm4gMjU1PT09bz9hP05hTjppKigxLzApOjA9PT1vPzE0MDEyOTg0NjQzMjQ4MTdlLTYwKmkqYTppKk1hdGgucG93KDIsby0xNTApKihhKzgzODg2MDgpfWUud3JpdGVGbG9hdExFPXQuYmluZChudWxsLG4pLGUud3JpdGVGbG9hdEJFPXQuYmluZChudWxsLHIpLGUucmVhZEZsb2F0TEU9YS5iaW5kKG51bGwsaSksZS5yZWFkRmxvYXRCRT1hLmJpbmQobnVsbCxvKX0oKSxcInVuZGVmaW5lZFwiIT09dHlwZW9mIEZsb2F0NjRBcnJheT9mdW5jdGlvbigpe3ZhciB0PW5ldyBGbG9hdDY0QXJyYXkoWy0wXSksbj1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscj0xMjg9PT1uWzddO2Z1bmN0aW9uIGkoZSxyLGkpe3RbMF09ZSxyW2ldPW5bMF0scltpKzFdPW5bMV0scltpKzJdPW5bMl0scltpKzNdPW5bM10scltpKzRdPW5bNF0scltpKzVdPW5bNV0scltpKzZdPW5bNl0scltpKzddPW5bN119ZnVuY3Rpb24gbyhlLHIsaSl7dFswXT1lLHJbaV09bls3XSxyW2krMV09bls2XSxyW2krMl09bls1XSxyW2krM109bls0XSxyW2krNF09blszXSxyW2krNV09blsyXSxyW2krNl09blsxXSxyW2krN109blswXX1mdW5jdGlvbiBhKGUscil7cmV0dXJuIG5bMF09ZVtyXSxuWzFdPWVbcisxXSxuWzJdPWVbcisyXSxuWzNdPWVbciszXSxuWzRdPWVbcis0XSxuWzVdPWVbcis1XSxuWzZdPWVbcis2XSxuWzddPWVbcis3XSx0WzBdfWZ1bmN0aW9uIHMoZSxyKXtyZXR1cm4gbls3XT1lW3JdLG5bNl09ZVtyKzFdLG5bNV09ZVtyKzJdLG5bNF09ZVtyKzNdLG5bM109ZVtyKzRdLG5bMl09ZVtyKzVdLG5bMV09ZVtyKzZdLG5bMF09ZVtyKzddLHRbMF19ZS53cml0ZURvdWJsZUxFPXI/aTpvLGUud3JpdGVEb3VibGVCRT1yP286aSxlLnJlYWREb3VibGVMRT1yP2E6cyxlLnJlYWREb3VibGVCRT1yP3M6YX0oKTpmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSx0LG4scixpLG8pe3ZhciBhPXI8MD8xOjA7aWYoYSYmKHI9LXIpLDA9PT1yKWUoMCxpLG8rdCksZSgxL3I+MD8wOjIxNDc0ODM2NDgsaSxvK24pO2Vsc2UgaWYoaXNOYU4ocikpZSgwLGksbyt0KSxlKDIxNDY5NTkzNjAsaSxvK24pO2Vsc2UgaWYocj4xNzk3NjkzMTM0ODYyMzE1N2UyOTIpZSgwLGksbyt0KSxlKChhPDwzMXwyMTQ2NDM1MDcyKT4+PjAsaSxvK24pO2Vsc2V7dmFyIHM7aWYocjwyMjI1MDczODU4NTA3MjAxNGUtMzI0KWUoKHM9ci81ZS0zMjQpPj4+MCxpLG8rdCksZSgoYTw8MzF8cy80Mjk0OTY3Mjk2KT4+PjAsaSxvK24pO2Vsc2V7dmFyIGM9TWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMik7MTAyND09PWMmJihjPTEwMjMpLGUoNDUwMzU5OTYyNzM3MDQ5Nioocz1yKk1hdGgucG93KDIsLWMpKT4+PjAsaSxvK3QpLGUoKGE8PDMxfGMrMTAyMzw8MjB8MTA0ODU3NipzJjEwNDg1NzUpPj4+MCxpLG8rbil9fX1mdW5jdGlvbiBhKGUsdCxuLHIsaSl7dmFyIG89ZShyLGkrdCksYT1lKHIsaStuKSxzPTIqKGE+PjMxKSsxLGM9YT4+PjIwJjIwNDcsdT00Mjk0OTY3Mjk2KigxMDQ4NTc1JmEpK287cmV0dXJuIDIwNDc9PT1jP3U/TmFOOnMqKDEvMCk6MD09PWM/NWUtMzI0KnMqdTpzKk1hdGgucG93KDIsYy0xMDc1KSoodSs0NTAzNTk5NjI3MzcwNDk2KX1lLndyaXRlRG91YmxlTEU9dC5iaW5kKG51bGwsbiwwLDQpLGUud3JpdGVEb3VibGVCRT10LmJpbmQobnVsbCxyLDQsMCksZS5yZWFkRG91YmxlTEU9YS5iaW5kKG51bGwsaSwwLDQpLGUucmVhZERvdWJsZUJFPWEuYmluZChudWxsLG8sNCwwKX0oKSxlfWZ1bmN0aW9uIG4oZSx0LG4pe3Rbbl09MjU1JmUsdFtuKzFdPWU+Pj44JjI1NSx0W24rMl09ZT4+PjE2JjI1NSx0W24rM109ZT4+PjI0fWZ1bmN0aW9uIHIoZSx0LG4pe3Rbbl09ZT4+PjI0LHRbbisxXT1lPj4+MTYmMjU1LHRbbisyXT1lPj4+OCYyNTUsdFtuKzNdPTI1NSZlfWZ1bmN0aW9uIGkoZSx0KXtyZXR1cm4oZVt0XXxlW3QrMV08PDh8ZVt0KzJdPDwxNnxlW3QrM108PDI0KT4+PjB9ZnVuY3Rpb24gbyhlLHQpe3JldHVybihlW3RdPDwyNHxlW3QrMV08PDE2fGVbdCsyXTw8OHxlW3QrM10pPj4+MH1lLmV4cG9ydHM9dCh0KX0sNjcxOTk6ZnVuY3Rpb24obW9kdWxlKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBpbnF1aXJlKG1vZHVsZU5hbWUpe3RyeXt2YXIgbW9kPWV2YWwoXCJxdWlyZVwiLnJlcGxhY2UoL14vLFwicmVcIikpKG1vZHVsZU5hbWUpO2lmKG1vZCYmKG1vZC5sZW5ndGh8fE9iamVjdC5rZXlzKG1vZCkubGVuZ3RoKSlyZXR1cm4gbW9kfWNhdGNoKGUpe31yZXR1cm4gbnVsbH1tb2R1bGUuZXhwb3J0cz1pbnF1aXJlfSw3NjY2MjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW58fDgxOTIsaT1yPj4+MSxvPW51bGwsYT1yO3JldHVybiBmdW5jdGlvbihuKXtpZihuPDF8fG4+aSlyZXR1cm4gZShuKTthK24+ciYmKG89ZShyKSxhPTApO3ZhciBzPXQuY2FsbChvLGEsYSs9bik7cmV0dXJuIDcmYSYmKGE9MSsoN3xhKSksc319fSw5NDk5NzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPXQ7bi5sZW5ndGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj0wLHI9MDtyPGUubGVuZ3RoOysrcikobj1lLmNoYXJDb2RlQXQocikpPDEyOD90Kz0xOm48MjA0OD90Kz0yOjU1Mjk2PT09KDY0NTEyJm4pJiY1NjMyMD09PSg2NDUxMiZlLmNoYXJDb2RlQXQocisxKSk/KCsrcix0Kz00KTp0Kz0zO3JldHVybiB0fSxuLnJlYWQ9ZnVuY3Rpb24oZSx0LG4pe2lmKG4tdDwxKXJldHVyblwiXCI7Zm9yKHZhciByLGk9bnVsbCxvPVtdLGE9MDt0PG47KShyPWVbdCsrXSk8MTI4P29bYSsrXT1yOnI+MTkxJiZyPDIyND9vW2ErK109KDMxJnIpPDw2fDYzJmVbdCsrXTpyPjIzOSYmcjwzNjU/KHI9KCg3JnIpPDwxOHwoNjMmZVt0KytdKTw8MTJ8KDYzJmVbdCsrXSk8PDZ8NjMmZVt0KytdKS02NTUzNixvW2ErK109NTUyOTYrKHI+PjEwKSxvW2ErK109NTYzMjArKDEwMjMmcikpOm9bYSsrXT0oMTUmcik8PDEyfCg2MyZlW3QrK10pPDw2fDYzJmVbdCsrXSxhPjgxOTEmJigoaXx8KGk9W10pKS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLG8pKSxhPTApO3JldHVybiBpPyhhJiZpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsby5zbGljZSgwLGEpKSksaS5qb2luKFwiXCIpKTpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxvLnNsaWNlKDAsYSkpfSxuLndyaXRlPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHIsaSxvPW4sYT0wO2E8ZS5sZW5ndGg7KythKShyPWUuY2hhckNvZGVBdChhKSk8MTI4P3RbbisrXT1yOnI8MjA0OD8odFtuKytdPXI+PjZ8MTkyLHRbbisrXT02MyZyfDEyOCk6NTUyOTY9PT0oNjQ1MTImcikmJjU2MzIwPT09KDY0NTEyJihpPWUuY2hhckNvZGVBdChhKzEpKSk/KHI9NjU1MzYrKCgxMDIzJnIpPDwxMCkrKDEwMjMmaSksKythLHRbbisrXT1yPj4xOHwyNDAsdFtuKytdPXI+PjEyJjYzfDEyOCx0W24rK109cj4+NiY2M3wxMjgsdFtuKytdPTYzJnJ8MTI4KToodFtuKytdPXI+PjEyfDIyNCx0W24rK109cj4+NiY2M3wxMjgsdFtuKytdPTYzJnJ8MTI4KTtyZXR1cm4gbi1vfX0sODk0Mzc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtsJDpmdW5jdGlvbigpe3JldHVybiBvfSxLVjpmdW5jdGlvbigpe3JldHVybiBpfX0pLGU9bi5obWQoZSk7dmFyIHI9bigzNDE1NSk7ZnVuY3Rpb24gaSgpe3JldHVybiEoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1NFTlRSWV9CUk9XU0VSX0JVTkRMRV9fJiZfX1NFTlRSWV9CUk9XU0VSX0JVTkRMRV9fKSYmXCJbb2JqZWN0IHByb2Nlc3NdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiByP3I6MCl9ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBlLnJlcXVpcmUodCl9fSw5MzgwOTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1oxOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LHBoOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHlXOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9big4OTQzNyksaT1uKDM4MzgwKTtlPW4uaG1kKGUpO2NvbnN0IG89KDAsaS5SZikoKSxhPXtub3dTZWNvbmRzOigpPT5EYXRlLm5vdygpLzFlM307Y29uc3Qgcz0oMCxyLktWKSgpP2Z1bmN0aW9uKCl7dHJ5e3JldHVybigwLHIubCQpKGUsXCJwZXJmX2hvb2tzXCIpLnBlcmZvcm1hbmNlfWNhdGNoKHQpe3JldHVybn19KCk6ZnVuY3Rpb24oKXtjb25zdHtwZXJmb3JtYW5jZTplfT1vO2lmKCFlfHwhZS5ub3cpcmV0dXJuO3JldHVybntub3c6KCk9PmUubm93KCksdGltZU9yaWdpbjpEYXRlLm5vdygpLWUubm93KCl9fSgpLGM9dm9pZCAwPT09cz9hOntub3dTZWNvbmRzOigpPT4ocy50aW1lT3JpZ2luK3Mubm93KCkpLzFlM30sdT1hLm5vd1NlY29uZHMuYmluZChhKSxsPWMubm93U2Vjb25kcy5iaW5kKGMpO2xldCBkO2NvbnN0IHA9KCgpPT57Y29uc3R7cGVyZm9ybWFuY2U6ZX09bztpZighZXx8IWUubm93KXJldHVybiB2b2lkKGQ9XCJub25lXCIpO2NvbnN0IHQ9MzZlNSxuPWUubm93KCkscj1EYXRlLm5vdygpLGk9ZS50aW1lT3JpZ2luP01hdGguYWJzKGUudGltZU9yaWdpbituLXIpOnQsYT1pPHQscz1lLnRpbWluZyYmZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0LGM9XCJudW1iZXJcIj09PXR5cGVvZiBzP01hdGguYWJzKHMrbi1yKTp0O3JldHVybiBhfHxjPHQ/aTw9Yz8oZD1cInRpbWVPcmlnaW5cIixlLnRpbWVPcmlnaW4pOihkPVwibmF2aWdhdGlvblN0YXJ0XCIscyk6KGQ9XCJkYXRlTm93XCIscil9KSgpfSwzODM4MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSYmZS5NYXRoPT1NYXRoP2U6dm9pZCAwfW4uZCh0LHtSZjpmdW5jdGlvbigpe3JldHVybiBvfSxZTzpmdW5jdGlvbigpe3JldHVybiBhfSxuMjpmdW5jdGlvbigpe3JldHVybiBpfX0pO2NvbnN0IGk9XCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJnIoZ2xvYmFsVGhpcyl8fFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJnIod2luZG93KXx8XCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnIoc2VsZil8fFwib2JqZWN0XCI9PXR5cGVvZiBuLmcmJnIobi5nKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8e307ZnVuY3Rpb24gbygpe3JldHVybiBpfWZ1bmN0aW9uIGEoZSx0LG4pe2NvbnN0IHI9bnx8aSxvPXIuX19TRU5UUllfXz1yLl9fU0VOVFJZX198fHt9O3JldHVybiBvW2VdfHwob1tlXT10KCkpfX0sNzk2MjE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtsJDpmdW5jdGlvbigpe3JldHVybiBvfSxLVjpmdW5jdGlvbigpe3JldHVybiBpfX0pLGU9bi5obWQoZSk7dmFyIHI9bigzNDE1NSk7ZnVuY3Rpb24gaSgpe3JldHVybiEoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1NFTlRSWV9CUk9XU0VSX0JVTkRMRV9fJiZfX1NFTlRSWV9CUk9XU0VSX0JVTkRMRV9fKSYmXCJbb2JqZWN0IHByb2Nlc3NdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiByP3I6MCl9ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBlLnJlcXVpcmUodCl9fSw0Mzk2MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1oxOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LHBoOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHlXOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9big3OTYyMSksaT1uKDkxOTc5KTtlPW4uaG1kKGUpO2NvbnN0IG89KDAsaS5SZikoKSxhPXtub3dTZWNvbmRzOigpPT5EYXRlLm5vdygpLzFlM307Y29uc3Qgcz0oMCxyLktWKSgpP2Z1bmN0aW9uKCl7dHJ5e3JldHVybigwLHIubCQpKGUsXCJwZXJmX2hvb2tzXCIpLnBlcmZvcm1hbmNlfWNhdGNoKHQpe3JldHVybn19KCk6ZnVuY3Rpb24oKXtjb25zdHtwZXJmb3JtYW5jZTplfT1vO2lmKCFlfHwhZS5ub3cpcmV0dXJuO3JldHVybntub3c6KCk9PmUubm93KCksdGltZU9yaWdpbjpEYXRlLm5vdygpLWUubm93KCl9fSgpLGM9dm9pZCAwPT09cz9hOntub3dTZWNvbmRzOigpPT4ocy50aW1lT3JpZ2luK3Mubm93KCkpLzFlM30sdT1hLm5vd1NlY29uZHMuYmluZChhKSxsPWMubm93U2Vjb25kcy5iaW5kKGMpO2xldCBkO2NvbnN0IHA9KCgpPT57Y29uc3R7cGVyZm9ybWFuY2U6ZX09bztpZighZXx8IWUubm93KXJldHVybiB2b2lkKGQ9XCJub25lXCIpO2NvbnN0IHQ9MzZlNSxuPWUubm93KCkscj1EYXRlLm5vdygpLGk9ZS50aW1lT3JpZ2luP01hdGguYWJzKGUudGltZU9yaWdpbituLXIpOnQsYT1pPHQscz1lLnRpbWluZyYmZS50aW1pbmcubmF2aWdhdGlvblN0YXJ0LGM9XCJudW1iZXJcIj09PXR5cGVvZiBzP01hdGguYWJzKHMrbi1yKTp0O3JldHVybiBhfHxjPHQ/aTw9Yz8oZD1cInRpbWVPcmlnaW5cIixlLnRpbWVPcmlnaW4pOihkPVwibmF2aWdhdGlvblN0YXJ0XCIscyk6KGQ9XCJkYXRlTm93XCIscil9KSgpfSw5MTk3OTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSYmZS5NYXRoPT1NYXRoP2U6dm9pZCAwfW4uZCh0LHtSZjpmdW5jdGlvbigpe3JldHVybiBvfSxZTzpmdW5jdGlvbigpe3JldHVybiBhfSxuMjpmdW5jdGlvbigpe3JldHVybiBpfX0pO2NvbnN0IGk9XCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJnIoZ2xvYmFsVGhpcyl8fFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJnIod2luZG93KXx8XCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnIoc2VsZil8fFwib2JqZWN0XCI9PXR5cGVvZiBuLmcmJnIobi5nKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8e307ZnVuY3Rpb24gbygpe3JldHVybiBpfWZ1bmN0aW9uIGEoZSx0LG4pe2NvbnN0IHI9bnx8aSxvPXIuX19TRU5UUllfXz1yLl9fU0VOVFJZX198fHt9O3JldHVybiBvW2VdfHwob1tlXT10KCkpfX0sOTUyODc6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGU9ezQxODpmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KWVbbl09dFtuXX0odCxmdW5jdGlvbihlKXt2YXIgdD17fTtmdW5jdGlvbiBuKHIpe2lmKHRbcl0pcmV0dXJuIHRbcl0uZXhwb3J0czt2YXIgaT10W3JdPXtpOnIsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gZVtyXS5jYWxsKGkuZXhwb3J0cyxpLGkuZXhwb3J0cyxuKSxpLmw9ITAsaS5leHBvcnRzfXJldHVybiBuLm09ZSxuLmM9dCxuLmk9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LG4uZD1mdW5jdGlvbihlLHQscil7bi5vKGUsdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDpyfSl9LG4ubj1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gZS5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBlfTtyZXR1cm4gbi5kKHQsXCJhXCIsdCksdH0sbi5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxuLnA9XCJcIixuKG4ucz0xKX0oW2Z1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1uKDMpLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dm9pZCAwPT09ZSYmKGU9e30pLHZvaWQgMD09PXQmJih0PXtzcGxpdFZhbHVlczohMX0pO3ZhciBuLGk9dGhpczt0aGlzLmhlYWRlcnNNYXA9e30sZSYmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBIZWFkZXJzJiZlIGluc3RhbmNlb2YgSGVhZGVycz9yLmdldEhlYWRlcktleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7ci5nZXRIZWFkZXJWYWx1ZXMoZSxuKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LnNwbGl0VmFsdWVzP2kuYXBwZW5kKG4sci5zcGxpdEhlYWRlclZhbHVlKGUpKTppLmFwcGVuZChuLGUpfSkpfSkpOlwib2JqZWN0XCI9PXR5cGVvZihuPWUpJiZcIm9iamVjdFwiPT10eXBlb2Ygbi5oZWFkZXJzTWFwJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLmZvckVhY2g/ZS5mb3JFYWNoKChmdW5jdGlvbihlLHQpe2kuYXBwZW5kKGUsdCl9KSk6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIE1hcCYmZSBpbnN0YW5jZW9mIE1hcD9lLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7aS5hcHBlbmQodCxlKX0pKTpcInN0cmluZ1wiPT10eXBlb2YgZT90aGlzLmFwcGVuZEZyb21TdHJpbmcoZSk6XCJvYmplY3RcIj09dHlwZW9mIGUmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPWVbdF07QXJyYXkuaXNBcnJheShuKT9uLmZvckVhY2goKGZ1bmN0aW9uKGUpe2kuYXBwZW5kKHQsZSl9KSk6aS5hcHBlbmQodCxuKX0pKSl9cmV0dXJuIGUucHJvdG90eXBlLmFwcGVuZEZyb21TdHJpbmc9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuc3BsaXQoXCJcXHJcXG5cIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dLGk9ci5pbmRleE9mKFwiOlwiKTtpZihpPjApe3ZhciBvPXIuc3Vic3RyaW5nKDAsaSkudHJpbSgpLGE9ci5zdWJzdHJpbmcoaSsxKS50cmltKCk7dGhpcy5hcHBlbmQobyxhKX19fSxlLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yLm5vcm1hbGl6ZU5hbWUoZSk7aWYodm9pZCAwPT09dClkZWxldGUgdGhpcy5oZWFkZXJzTWFwW25dO2Vsc2V7dmFyIGk9dGhpcy5oZWFkZXJzTWFwW25dO2lmKGkpe3ZhciBvPWkuaW5kZXhPZih0KTtvPj0wJiZpLnNwbGljZShvLDEpLDA9PT1pLmxlbmd0aCYmZGVsZXRlIHRoaXMuaGVhZGVyc01hcFtuXX19fSxlLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLGk9ci5ub3JtYWxpemVOYW1lKGUpO0FycmF5LmlzQXJyYXkodGhpcy5oZWFkZXJzTWFwW2ldKXx8KHRoaXMuaGVhZGVyc01hcFtpXT1bXSksQXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goKGZ1bmN0aW9uKGUpe24uaGVhZGVyc01hcFtpXS5wdXNoKHIubm9ybWFsaXplVmFsdWUoZSkpfSkpOnRoaXMuaGVhZGVyc01hcFtpXS5wdXNoKHIubm9ybWFsaXplVmFsdWUodCkpfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yLm5vcm1hbGl6ZU5hbWUoZSk7aWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGk9W107dC5mb3JFYWNoKChmdW5jdGlvbihlKXtpLnB1c2goci5ub3JtYWxpemVWYWx1ZShlKSl9KSksdGhpcy5oZWFkZXJzTWFwW25dPWl9ZWxzZSB0aGlzLmhlYWRlcnNNYXBbbl09W3Iubm9ybWFsaXplVmFsdWUodCldfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmhlYWRlcnNNYXBbci5ub3JtYWxpemVOYW1lKGUpXTtpZighQXJyYXkuaXNBcnJheShuKSlyZXR1cm4hMTtpZih2b2lkIDAhPT10KXt2YXIgaT1yLm5vcm1hbGl6ZVZhbHVlKHQpO3JldHVybiBuLmluZGV4T2YoaSk+PTB9cmV0dXJuITB9LGUucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmhlYWRlcnNNYXBbci5ub3JtYWxpemVOYW1lKGUpXTtyZXR1cm4gdm9pZCAwIT09dD90LmNvbmNhdCgpOltdfSxlLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5oZWFkZXJzTWFwKS5mb3JFYWNoKChmdW5jdGlvbihuKXtlKG4sdC5oZWFkZXJzTWFwW25dKX0pLHRoaXMpfSxlLnByb3RvdHlwZS50b0hlYWRlcnM9ZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgSGVhZGVycyl7dmFyIGU9bmV3IEhlYWRlcnM7cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtuLmZvckVhY2goKGZ1bmN0aW9uKG4pe2UuYXBwZW5kKHQsbil9KSl9KSksZX10aHJvdyBuZXcgRXJyb3IoXCJIZWFkZXJzIGNsYXNzIGlzIG5vdCBkZWZpbmVkXCIpfSxlfSgpO3QuQnJvd3NlckhlYWRlcnM9aX0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPW4oMCk7dC5Ccm93c2VySGVhZGVycz1yLkJyb3dzZXJIZWFkZXJzfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5pdGVyYXRlSGVhZGVycz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lW1N5bWJvbC5pdGVyYXRvcl0oKSxyPW4ubmV4dCgpOyFyLmRvbmU7KXQoci52YWx1ZVswXSkscj1uLm5leHQoKX0sdC5pdGVyYXRlSGVhZGVyc0tleXM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZS5rZXlzKCkscj1uLm5leHQoKTshci5kb25lOyl0KHIudmFsdWUpLHI9bi5uZXh0KCl9fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9bigyKTt0Lm5vcm1hbGl6ZU5hbWU9ZnVuY3Rpb24oZSl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUmJihlPVN0cmluZyhlKSksL1teYS16MC05XFwtIyQlJicqKy5cXF5fYHx+XS9pLnRlc3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lXCIpO3JldHVybiBlLnRvTG93ZXJDYXNlKCl9LHQubm9ybWFsaXplVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuXCJzdHJpbmdcIiE9dHlwZW9mIGUmJihlPVN0cmluZyhlKSksZX0sdC5nZXRIZWFkZXJWYWx1ZXM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lO2lmKG4gaW5zdGFuY2VvZiBIZWFkZXJzJiZuLmdldEFsbClyZXR1cm4gbi5nZXRBbGwodCk7dmFyIHI9bi5nZXQodCk7cmV0dXJuIHImJlwic3RyaW5nXCI9PXR5cGVvZiByP1tyXTpyfSx0LmdldEhlYWRlcktleXM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSxuPXt9LGk9W107cmV0dXJuIHQua2V5cz9yLml0ZXJhdGVIZWFkZXJzS2V5cyh0LChmdW5jdGlvbihlKXtuW2VdfHwobltlXT0hMCxpLnB1c2goZSkpfSkpOnQuZm9yRWFjaD90LmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7blt0XXx8KG5bdF09ITAsaS5wdXNoKHQpKX0pKTpyLml0ZXJhdGVIZWFkZXJzKHQsKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF07blt0XXx8KG5bdF09ITAsaS5wdXNoKHQpKX0pKSxpfSx0LnNwbGl0SGVhZGVyVmFsdWU9ZnVuY3Rpb24oZSl7dmFyIHQ9W107cmV0dXJuIGUuc3BsaXQoXCIsIFwiKS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnNwbGl0KFwiLFwiKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LnB1c2goZSl9KSl9KSksdH19XSkpfSw2MTc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuQ2h1bmtQYXJzZXI9dC5DaHVua1R5cGU9dC5lbmNvZGVBU0NJST10LmRlY29kZUFTQ0lJPXZvaWQgMDt2YXIgcixpPW4oNjUpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIDk9PT0odD1lKXx8MTA9PT10fHwxMz09PXR8fGU+PTMyJiZlPD0xMjY7dmFyIHR9ZnVuY3Rpb24gYShlKXtmb3IodmFyIHQ9MDt0IT09ZS5sZW5ndGg7Kyt0KWlmKCFvKGVbdF0pKXRocm93IG5ldyBFcnJvcihcIk1ldGFkYXRhIGlzIG5vdCB2YWxpZCAocHJpbnRhYmxlKSBBU0NJSVwiKTtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIDEyOD09KDEyOCZlLmdldFVpbnQ4KDApKX1mdW5jdGlvbiBjKGUpe3JldHVybiBlLmdldFVpbnQzMigxLCExKX1mdW5jdGlvbiB1KGUsdCxuKXtyZXR1cm4gZS5ieXRlTGVuZ3RoLXQ+PW59ZnVuY3Rpb24gbChlLHQsbil7aWYoZS5zbGljZSlyZXR1cm4gZS5zbGljZSh0LG4pO3ZhciByPWUubGVuZ3RoO3ZvaWQgMCE9PW4mJihyPW4pO2Zvcih2YXIgaT1uZXcgVWludDhBcnJheShyLXQpLG89MCxhPXQ7YTxyO2ErKylpW28rK109ZVthXTtyZXR1cm4gaX10LmRlY29kZUFTQ0lJPWEsdC5lbmNvZGVBU0NJST1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLG49MDtuIT09ZS5sZW5ndGg7KytuKXt2YXIgcj1lLmNoYXJDb2RlQXQobik7aWYoIW8ocikpdGhyb3cgbmV3IEVycm9yKFwiTWV0YWRhdGEgY29udGFpbnMgaW52YWxpZCBBU0NJSVwiKTt0W25dPXJ9cmV0dXJuIHR9LGZ1bmN0aW9uKGUpe2VbZS5NRVNTQUdFPTFdPVwiTUVTU0FHRVwiLGVbZS5UUkFJTEVSUz0yXT1cIlRSQUlMRVJTXCJ9KHI9dC5DaHVua1R5cGV8fCh0LkNodW5rVHlwZT17fSkpO3ZhciBkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuYnVmZmVyPW51bGwsdGhpcy5wb3NpdGlvbj0wfXJldHVybiBlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihlLHQpe2lmKDA9PT1lLmxlbmd0aCYmdClyZXR1cm5bXTt2YXIgbixvPVtdO2lmKG51bGw9PXRoaXMuYnVmZmVyKXRoaXMuYnVmZmVyPWUsdGhpcy5wb3NpdGlvbj0wO2Vsc2UgaWYodGhpcy5wb3NpdGlvbj09PXRoaXMuYnVmZmVyLmJ5dGVMZW5ndGgpdGhpcy5idWZmZXI9ZSx0aGlzLnBvc2l0aW9uPTA7ZWxzZXt2YXIgZD10aGlzLmJ1ZmZlci5ieXRlTGVuZ3RoLXRoaXMucG9zaXRpb24scD1uZXcgVWludDhBcnJheShkK2UuYnl0ZUxlbmd0aCksZj1sKHRoaXMuYnVmZmVyLHRoaXMucG9zaXRpb24pO3Auc2V0KGYsMCk7dmFyIGg9bmV3IFVpbnQ4QXJyYXkoZSk7cC5zZXQoaCxkKSx0aGlzLmJ1ZmZlcj1wLHRoaXMucG9zaXRpb249MH1mb3IoOzspe2lmKCF1KHRoaXMuYnVmZmVyLHRoaXMucG9zaXRpb24sNSkpcmV0dXJuIG87dmFyIGc9bCh0aGlzLmJ1ZmZlcix0aGlzLnBvc2l0aW9uLHRoaXMucG9zaXRpb24rNSksbT1uZXcgRGF0YVZpZXcoZy5idWZmZXIsZy5ieXRlT2Zmc2V0LGcuYnl0ZUxlbmd0aCksdj1jKG0pO2lmKCF1KHRoaXMuYnVmZmVyLHRoaXMucG9zaXRpb24sNSt2KSlyZXR1cm4gbzt2YXIgXz1sKHRoaXMuYnVmZmVyLHRoaXMucG9zaXRpb24rNSx0aGlzLnBvc2l0aW9uKzUrdik7aWYodGhpcy5wb3NpdGlvbis9NSt2LHMobSkpcmV0dXJuIG8ucHVzaCh7Y2h1bmtUeXBlOnIuVFJBSUxFUlMsdHJhaWxlcnM6KG49XyxuZXcgaS5NZXRhZGF0YShhKG4pKSl9KSxvO28ucHVzaCh7Y2h1bmtUeXBlOnIuTUVTU0FHRSxkYXRhOl99KX19LGV9KCk7dC5DaHVua1BhcnNlcj1kfSw4OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG47T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5odHRwU3RhdHVzVG9Db2RlPXQuQ29kZT12b2lkIDAsZnVuY3Rpb24oZSl7ZVtlLk9LPTBdPVwiT0tcIixlW2UuQ2FuY2VsZWQ9MV09XCJDYW5jZWxlZFwiLGVbZS5Vbmtub3duPTJdPVwiVW5rbm93blwiLGVbZS5JbnZhbGlkQXJndW1lbnQ9M109XCJJbnZhbGlkQXJndW1lbnRcIixlW2UuRGVhZGxpbmVFeGNlZWRlZD00XT1cIkRlYWRsaW5lRXhjZWVkZWRcIixlW2UuTm90Rm91bmQ9NV09XCJOb3RGb3VuZFwiLGVbZS5BbHJlYWR5RXhpc3RzPTZdPVwiQWxyZWFkeUV4aXN0c1wiLGVbZS5QZXJtaXNzaW9uRGVuaWVkPTddPVwiUGVybWlzc2lvbkRlbmllZFwiLGVbZS5SZXNvdXJjZUV4aGF1c3RlZD04XT1cIlJlc291cmNlRXhoYXVzdGVkXCIsZVtlLkZhaWxlZFByZWNvbmRpdGlvbj05XT1cIkZhaWxlZFByZWNvbmRpdGlvblwiLGVbZS5BYm9ydGVkPTEwXT1cIkFib3J0ZWRcIixlW2UuT3V0T2ZSYW5nZT0xMV09XCJPdXRPZlJhbmdlXCIsZVtlLlVuaW1wbGVtZW50ZWQ9MTJdPVwiVW5pbXBsZW1lbnRlZFwiLGVbZS5JbnRlcm5hbD0xM109XCJJbnRlcm5hbFwiLGVbZS5VbmF2YWlsYWJsZT0xNF09XCJVbmF2YWlsYWJsZVwiLGVbZS5EYXRhTG9zcz0xNV09XCJEYXRhTG9zc1wiLGVbZS5VbmF1dGhlbnRpY2F0ZWQ9MTZdPVwiVW5hdXRoZW50aWNhdGVkXCJ9KG49dC5Db2RlfHwodC5Db2RlPXt9KSksdC5odHRwU3RhdHVzVG9Db2RlPWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuIG4uSW50ZXJuYWw7Y2FzZSAyMDA6cmV0dXJuIG4uT0s7Y2FzZSA0MDA6cmV0dXJuIG4uSW52YWxpZEFyZ3VtZW50O2Nhc2UgNDAxOnJldHVybiBuLlVuYXV0aGVudGljYXRlZDtjYXNlIDQwMzpyZXR1cm4gbi5QZXJtaXNzaW9uRGVuaWVkO2Nhc2UgNDA0OnJldHVybiBuLk5vdEZvdW5kO2Nhc2UgNDA5OnJldHVybiBuLkFib3J0ZWQ7Y2FzZSA0MTI6cmV0dXJuIG4uRmFpbGVkUHJlY29uZGl0aW9uO2Nhc2UgNDI5OnJldHVybiBuLlJlc291cmNlRXhoYXVzdGVkO2Nhc2UgNDk5OnJldHVybiBuLkNhbmNlbGVkO2Nhc2UgNTAwOmRlZmF1bHQ6cmV0dXJuIG4uVW5rbm93bjtjYXNlIDUwMTpyZXR1cm4gbi5VbmltcGxlbWVudGVkO2Nhc2UgNTAzOnJldHVybiBuLlVuYXZhaWxhYmxlO2Nhc2UgNTA0OnJldHVybiBuLkRlYWRsaW5lRXhjZWVkZWR9fX0sOTM0OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmNsaWVudD12b2lkIDA7dmFyIHI9big2NSksaT1uKDYxNyksbz1uKDgpLGE9bigzNDYpLHM9big1NyksYz1uKDg4Mik7dC5jbGllbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IHUoZSx0KX07dmFyIHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dGhpcy5zdGFydGVkPSExLHRoaXMuc2VudEZpcnN0TWVzc2FnZT0hMSx0aGlzLmNvbXBsZXRlZD0hMSx0aGlzLmNsb3NlZD0hMSx0aGlzLmZpbmlzaGVkU2VuZGluZz0hMSx0aGlzLm9uSGVhZGVyc0NhbGxiYWNrcz1bXSx0aGlzLm9uTWVzc2FnZUNhbGxiYWNrcz1bXSx0aGlzLm9uRW5kQ2FsbGJhY2tzPVtdLHRoaXMucGFyc2VyPW5ldyBpLkNodW5rUGFyc2VyLHRoaXMubWV0aG9kRGVmaW5pdGlvbj1lLHRoaXMucHJvcHM9dCx0aGlzLmNyZWF0ZVRyYW5zcG9ydCgpfXJldHVybiBlLnByb3RvdHlwZS5jcmVhdGVUcmFuc3BvcnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLmhvc3QrXCIvXCIrdGhpcy5tZXRob2REZWZpbml0aW9uLnNlcnZpY2Uuc2VydmljZU5hbWUrXCIvXCIrdGhpcy5tZXRob2REZWZpbml0aW9uLm1ldGhvZE5hbWUsdD17bWV0aG9kRGVmaW5pdGlvbjp0aGlzLm1ldGhvZERlZmluaXRpb24sZGVidWc6dGhpcy5wcm9wcy5kZWJ1Z3x8ITEsdXJsOmUsb25IZWFkZXJzOnRoaXMub25UcmFuc3BvcnRIZWFkZXJzLmJpbmQodGhpcyksb25DaHVuazp0aGlzLm9uVHJhbnNwb3J0Q2h1bmsuYmluZCh0aGlzKSxvbkVuZDp0aGlzLm9uVHJhbnNwb3J0RW5kLmJpbmQodGhpcyl9O3RoaXMucHJvcHMudHJhbnNwb3J0P3RoaXMudHJhbnNwb3J0PXRoaXMucHJvcHMudHJhbnNwb3J0KHQpOnRoaXMudHJhbnNwb3J0PXMubWFrZURlZmF1bHRUcmFuc3BvcnQodCl9LGUucHJvdG90eXBlLm9uVHJhbnNwb3J0SGVhZGVycz1mdW5jdGlvbihlLHQpe2lmKHRoaXMucHJvcHMuZGVidWcmJmEuZGVidWcoXCJvbkhlYWRlcnNcIixlLHQpLHRoaXMuY2xvc2VkKXRoaXMucHJvcHMuZGVidWcmJmEuZGVidWcoXCJncnBjLm9uSGVhZGVycyByZWNlaXZlZCBhZnRlciByZXF1ZXN0IHdhcyBjbG9zZWQgLSBpZ25vcmluZ1wiKTtlbHNlIGlmKDA9PT10KTtlbHNle3RoaXMucmVzcG9uc2VIZWFkZXJzPWUsdGhpcy5wcm9wcy5kZWJ1ZyYmYS5kZWJ1ZyhcIm9uSGVhZGVycy5yZXNwb25zZUhlYWRlcnNcIixKU09OLnN0cmluZ2lmeSh0aGlzLnJlc3BvbnNlSGVhZGVycyxudWxsLDIpKTt2YXIgbj1sKGUpO3RoaXMucHJvcHMuZGVidWcmJmEuZGVidWcoXCJvbkhlYWRlcnMuZ1JQQ1N0YXR1c1wiLG4pO3ZhciByPW4mJm4+PTA/bjpvLmh0dHBTdGF0dXNUb0NvZGUodCk7dGhpcy5wcm9wcy5kZWJ1ZyYmYS5kZWJ1ZyhcIm9uSGVhZGVycy5jb2RlXCIscik7dmFyIGk9ZS5nZXQoXCJncnBjLW1lc3NhZ2VcIil8fFtdO2lmKHRoaXMucHJvcHMuZGVidWcmJmEuZGVidWcoXCJvbkhlYWRlcnMuZ1JQQ01lc3NhZ2VcIixpKSx0aGlzLnJhd09uSGVhZGVycyhlKSxyIT09by5Db2RlLk9LKXt2YXIgcz10aGlzLmRlY29kZUdSUENTdGF0dXMoaVswXSk7dGhpcy5yYXdPbkVycm9yKHIscyxlKX19fSxlLnByb3RvdHlwZS5vblRyYW5zcG9ydENodW5rPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodGhpcy5jbG9zZWQpdGhpcy5wcm9wcy5kZWJ1ZyYmYS5kZWJ1ZyhcImdycGMub25DaHVuayByZWNlaXZlZCBhZnRlciByZXF1ZXN0IHdhcyBjbG9zZWQgLSBpZ25vcmluZ1wiKTtlbHNle3ZhciBuPVtdO3RyeXtuPXRoaXMucGFyc2VyLnBhcnNlKGUpfWNhdGNoKGUpe3JldHVybiB0aGlzLnByb3BzLmRlYnVnJiZhLmRlYnVnKFwib25DaHVuay5wYXJzaW5nIGVycm9yXCIsZSxlLm1lc3NhZ2UpLHZvaWQgdGhpcy5yYXdPbkVycm9yKG8uQ29kZS5JbnRlcm5hbCxcInBhcnNpbmcgZXJyb3I6IFwiK2UubWVzc2FnZSl9bi5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihlLmNodW5rVHlwZT09PWkuQ2h1bmtUeXBlLk1FU1NBR0Upe3ZhciBuPXQubWV0aG9kRGVmaW5pdGlvbi5yZXNwb25zZVR5cGUuZGVzZXJpYWxpemVCaW5hcnkoZS5kYXRhKTt0LnJhd09uTWVzc2FnZShuKX1lbHNlIGUuY2h1bmtUeXBlPT09aS5DaHVua1R5cGUuVFJBSUxFUlMmJih0LnJlc3BvbnNlSGVhZGVycz8odC5yZXNwb25zZVRyYWlsZXJzPW5ldyByLk1ldGFkYXRhKGUudHJhaWxlcnMpLHQucHJvcHMuZGVidWcmJmEuZGVidWcoXCJvbkNodW5rLnRyYWlsZXJzXCIsdC5yZXNwb25zZVRyYWlsZXJzKSk6KHQucmVzcG9uc2VIZWFkZXJzPW5ldyByLk1ldGFkYXRhKGUudHJhaWxlcnMpLHQucmF3T25IZWFkZXJzKHQucmVzcG9uc2VIZWFkZXJzKSkpfSkpfX0sZS5wcm90b3R5cGUub25UcmFuc3BvcnRFbmQ9ZnVuY3Rpb24oKXtpZih0aGlzLnByb3BzLmRlYnVnJiZhLmRlYnVnKFwiZ3JwYy5vbkVuZFwiKSx0aGlzLmNsb3NlZCl0aGlzLnByb3BzLmRlYnVnJiZhLmRlYnVnKFwiZ3JwYy5vbkVuZCByZWNlaXZlZCBhZnRlciByZXF1ZXN0IHdhcyBjbG9zZWQgLSBpZ25vcmluZ1wiKTtlbHNlIGlmKHZvaWQgMCE9PXRoaXMucmVzcG9uc2VUcmFpbGVycyl7dmFyIGU9bCh0aGlzLnJlc3BvbnNlVHJhaWxlcnMpO2lmKG51bGwhPT1lKXt2YXIgdD10aGlzLnJlc3BvbnNlVHJhaWxlcnMuZ2V0KFwiZ3JwYy1tZXNzYWdlXCIpLG49dGhpcy5kZWNvZGVHUlBDU3RhdHVzKHRbMF0pO3RoaXMucmF3T25FbmQoZSxuLHRoaXMucmVzcG9uc2VUcmFpbGVycyl9ZWxzZSB0aGlzLnJhd09uRXJyb3Ioby5Db2RlLkludGVybmFsLFwiUmVzcG9uc2UgY2xvc2VkIHdpdGhvdXQgZ3JwYy1zdGF0dXMgKFRyYWlsZXJzIHByb3ZpZGVkKVwiKX1lbHNle2lmKHZvaWQgMD09PXRoaXMucmVzcG9uc2VIZWFkZXJzKXJldHVybiB2b2lkIHRoaXMucmF3T25FcnJvcihvLkNvZGUuVW5rbm93bixcIlJlc3BvbnNlIGNsb3NlZCB3aXRob3V0IGhlYWRlcnNcIik7dmFyIHI9bCh0aGlzLnJlc3BvbnNlSGVhZGVycyksaT10aGlzLnJlc3BvbnNlSGVhZGVycy5nZXQoXCJncnBjLW1lc3NhZ2VcIik7aWYodGhpcy5wcm9wcy5kZWJ1ZyYmYS5kZWJ1ZyhcImdycGMuaGVhZGVycyBvbmx5IHJlc3BvbnNlIFwiLHIsaSksbnVsbD09PXIpcmV0dXJuIHZvaWQgdGhpcy5yYXdPbkVuZChvLkNvZGUuVW5rbm93bixcIlJlc3BvbnNlIGNsb3NlZCB3aXRob3V0IGdycGMtc3RhdHVzIChIZWFkZXJzIG9ubHkpXCIsdGhpcy5yZXNwb25zZUhlYWRlcnMpO3ZhciBzPXRoaXMuZGVjb2RlR1JQQ1N0YXR1cyhpWzBdKTt0aGlzLnJhd09uRW5kKHIscyx0aGlzLnJlc3BvbnNlSGVhZGVycyl9fSxlLnByb3RvdHlwZS5kZWNvZGVHUlBDU3RhdHVzPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVyblwiXCI7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9Y2F0Y2godCl7cmV0dXJuIGV9fSxlLnByb3RvdHlwZS5yYXdPbkVuZD1mdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpczt0aGlzLnByb3BzLmRlYnVnJiZhLmRlYnVnKFwicmF3T25FbmRcIixlLHQsbiksdGhpcy5jb21wbGV0ZWR8fCh0aGlzLmNvbXBsZXRlZD0hMCx0aGlzLm9uRW5kQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKGkpe2lmKCFyLmNsb3NlZCl0cnl7aShlLHQsbil9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSksMCl9fSkpKX0sZS5wcm90b3R5cGUucmF3T25IZWFkZXJzPWZ1bmN0aW9uKGUpe3RoaXMucHJvcHMuZGVidWcmJmEuZGVidWcoXCJyYXdPbkhlYWRlcnNcIixlKSx0aGlzLmNvbXBsZXRlZHx8dGhpcy5vbkhlYWRlcnNDYWxsYmFja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dHJ5e3QoZSl9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSksMCl9fSkpfSxlLnByb3RvdHlwZS5yYXdPbkVycm9yPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT10aGlzO3ZvaWQgMD09PW4mJihuPW5ldyByLk1ldGFkYXRhKSx0aGlzLnByb3BzLmRlYnVnJiZhLmRlYnVnKFwicmF3T25FcnJvclwiLGUsdCksdGhpcy5jb21wbGV0ZWR8fCh0aGlzLmNvbXBsZXRlZD0hMCx0aGlzLm9uRW5kQ2FsbGJhY2tzLmZvckVhY2goKGZ1bmN0aW9uKHIpe2lmKCFpLmNsb3NlZCl0cnl7cihlLHQsbil9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSksMCl9fSkpKX0sZS5wcm90b3R5cGUucmF3T25NZXNzYWdlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5wcm9wcy5kZWJ1ZyYmYS5kZWJ1ZyhcInJhd09uTWVzc2FnZVwiLGUudG9PYmplY3QoKSksdGhpcy5jb21wbGV0ZWR8fHRoaXMuY2xvc2VkfHx0aGlzLm9uTWVzc2FnZUNhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbihuKXtpZighdC5jbG9zZWQpdHJ5e24oZSl9Y2F0Y2goZSl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyBlfSksMCl9fSkpfSxlLnByb3RvdHlwZS5vbkhlYWRlcnM9ZnVuY3Rpb24oZSl7dGhpcy5vbkhlYWRlcnNDYWxsYmFja3MucHVzaChlKX0sZS5wcm90b3R5cGUub25NZXNzYWdlPWZ1bmN0aW9uKGUpe3RoaXMub25NZXNzYWdlQ2FsbGJhY2tzLnB1c2goZSl9LGUucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGUpe3RoaXMub25FbmRDYWxsYmFja3MucHVzaChlKX0sZS5wcm90b3R5cGUuc3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5zdGFydGVkKXRocm93IG5ldyBFcnJvcihcIkNsaWVudCBhbHJlYWR5IHN0YXJ0ZWQgLSBjYW5ub3QgLnN0YXJ0KClcIik7dGhpcy5zdGFydGVkPSEwO3ZhciB0PW5ldyByLk1ldGFkYXRhKGV8fHt9KTt0LnNldChcImNvbnRlbnQtdHlwZVwiLFwiYXBwbGljYXRpb24vZ3JwYy13ZWIrcHJvdG9cIiksdC5zZXQoXCJ4LWdycGMtd2ViXCIsXCIxXCIpLHRoaXMudHJhbnNwb3J0LnN0YXJ0KHQpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLnN0YXJ0ZWQpdGhyb3cgbmV3IEVycm9yKFwiQ2xpZW50IG5vdCBzdGFydGVkIC0gLnN0YXJ0KCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIC5zZW5kKClcIik7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKFwiQ2xpZW50IGFscmVhZHkgY2xvc2VkIC0gY2Fubm90IC5zZW5kKClcIik7aWYodGhpcy5maW5pc2hlZFNlbmRpbmcpdGhyb3cgbmV3IEVycm9yKFwiQ2xpZW50IGFscmVhZHkgZmluaXNoZWQgc2VuZGluZyAtIGNhbm5vdCAuc2VuZCgpXCIpO2lmKCF0aGlzLm1ldGhvZERlZmluaXRpb24ucmVxdWVzdFN0cmVhbSYmdGhpcy5zZW50Rmlyc3RNZXNzYWdlKXRocm93IG5ldyBFcnJvcihcIk1lc3NhZ2UgYWxyZWFkeSBzZW50IGZvciBub24tY2xpZW50LXN0cmVhbWluZyBtZXRob2QgLSBjYW5ub3QgLnNlbmQoKVwiKTt0aGlzLnNlbnRGaXJzdE1lc3NhZ2U9ITA7dmFyIHQ9Yy5mcmFtZVJlcXVlc3QoZSk7dGhpcy50cmFuc3BvcnQuc2VuZE1lc3NhZ2UodCl9LGUucHJvdG90eXBlLmZpbmlzaFNlbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5zdGFydGVkKXRocm93IG5ldyBFcnJvcihcIkNsaWVudCBub3Qgc3RhcnRlZCAtIC5maW5pc2hTZW5kKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIC5jbG9zZSgpXCIpO2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBFcnJvcihcIkNsaWVudCBhbHJlYWR5IGNsb3NlZCAtIGNhbm5vdCAuc2VuZCgpXCIpO2lmKHRoaXMuZmluaXNoZWRTZW5kaW5nKXRocm93IG5ldyBFcnJvcihcIkNsaWVudCBhbHJlYWR5IGZpbmlzaGVkIHNlbmRpbmcgLSBjYW5ub3QgLmZpbmlzaFNlbmQoKVwiKTt0aGlzLmZpbmlzaGVkU2VuZGluZz0hMCx0aGlzLnRyYW5zcG9ydC5maW5pc2hTZW5kKCl9LGUucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuc3RhcnRlZCl0aHJvdyBuZXcgRXJyb3IoXCJDbGllbnQgbm90IHN0YXJ0ZWQgLSAuc3RhcnQoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgLmNsb3NlKClcIik7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKFwiQ2xpZW50IGFscmVhZHkgY2xvc2VkIC0gY2Fubm90IC5jbG9zZSgpXCIpO3RoaXMuY2xvc2VkPSEwLHRoaXMucHJvcHMuZGVidWcmJmEuZGVidWcoXCJyZXF1ZXN0LmFib3J0IGFib3J0aW5nIHJlcXVlc3RcIiksdGhpcy50cmFuc3BvcnQuY2FuY2VsKCl9LGV9KCk7ZnVuY3Rpb24gbChlKXt2YXIgdD1lLmdldChcImdycGMtc3RhdHVzXCIpfHxbXTtpZih0Lmxlbmd0aD4wKXRyeXt2YXIgbj10WzBdO3JldHVybiBwYXJzZUludChuLDEwKX1jYXRjaChlKXtyZXR1cm4gbnVsbH1yZXR1cm4gbnVsbH19LDM0NjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVidWc9dm9pZCAwLHQuZGVidWc9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07Y29uc29sZS5kZWJ1Zz9jb25zb2xlLmRlYnVnLmFwcGx5KG51bGwsZSk6Y29uc29sZS5sb2cuYXBwbHkobnVsbCxlKX19LDYwNzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5ncnBjPXZvaWQgMDt2YXIgcixpPW4oNDE4KSxvPW4oNTcpLGE9bigyMjkpLHM9big1NDApLGM9bigyMTApLHU9big4NTkpLGw9big4KSxkPW4oOTM4KSxwPW4oMzUpLGY9big5MzQpOyhyPXQuZ3JwY3x8KHQuZ3JwYz17fSkpLnNldERlZmF1bHRUcmFuc3BvcnQ9by5zZXREZWZhdWx0VHJhbnNwb3J0RmFjdG9yeSxyLkNyb3NzQnJvd3Nlckh0dHBUcmFuc3BvcnQ9dS5Dcm9zc0Jyb3dzZXJIdHRwVHJhbnNwb3J0LHIuRmV0Y2hSZWFkYWJsZVN0cmVhbVRyYW5zcG9ydD1hLkZldGNoUmVhZGFibGVTdHJlYW1UcmFuc3BvcnQsci5YaHJUcmFuc3BvcnQ9Yy5YaHJUcmFuc3BvcnQsci5XZWJzb2NrZXRUcmFuc3BvcnQ9cy5XZWJzb2NrZXRUcmFuc3BvcnQsci5Db2RlPWwuQ29kZSxyLk1ldGFkYXRhPWkuQnJvd3NlckhlYWRlcnMsci5jbGllbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZi5jbGllbnQoZSx0KX0sci5pbnZva2U9ZC5pbnZva2Usci51bmFyeT1wLnVuYXJ5fSw5Mzg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaW52b2tlPXZvaWQgMDt2YXIgcj1uKDkzNCk7dC5pbnZva2U9ZnVuY3Rpb24oZSx0KXtpZihlLnJlcXVlc3RTdHJlYW0pdGhyb3cgbmV3IEVycm9yKFwiLmludm9rZSBjYW5ub3QgYmUgdXNlZCB3aXRoIGNsaWVudC1zdHJlYW1pbmcgbWV0aG9kcy4gVXNlIC5jbGllbnQgaW5zdGVhZC5cIik7dmFyIG49ci5jbGllbnQoZSx7aG9zdDp0Lmhvc3QsdHJhbnNwb3J0OnQudHJhbnNwb3J0LGRlYnVnOnQuZGVidWd9KTtyZXR1cm4gdC5vbkhlYWRlcnMmJm4ub25IZWFkZXJzKHQub25IZWFkZXJzKSx0Lm9uTWVzc2FnZSYmbi5vbk1lc3NhZ2UodC5vbk1lc3NhZ2UpLHQub25FbmQmJm4ub25FbmQodC5vbkVuZCksbi5zdGFydCh0Lm1ldGFkYXRhKSxuLnNlbmQodC5yZXF1ZXN0KSxuLmZpbmlzaFNlbmQoKSx7Y2xvc2U6ZnVuY3Rpb24oKXtuLmNsb3NlKCl9fX19LDY1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lk1ldGFkYXRhPXZvaWQgMDt2YXIgcj1uKDQxOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJNZXRhZGF0YVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLkJyb3dzZXJIZWFkZXJzfX0pfSw1NzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5tYWtlRGVmYXVsdFRyYW5zcG9ydD10LnNldERlZmF1bHRUcmFuc3BvcnRGYWN0b3J5PXZvaWQgMDt2YXIgcj1uKDg1OSksaT1mdW5jdGlvbihlKXtyZXR1cm4gci5Dcm9zc0Jyb3dzZXJIdHRwVHJhbnNwb3J0KHt3aXRoQ3JlZGVudGlhbHM6ITF9KShlKX07dC5zZXREZWZhdWx0VHJhbnNwb3J0RmFjdG9yeT1mdW5jdGlvbihlKXtpPWV9LHQubWFrZURlZmF1bHRUcmFuc3BvcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9fSwyMjk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuKHI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRldGVjdEZldGNoU3VwcG9ydD10LkZldGNoUmVhZGFibGVTdHJlYW1UcmFuc3BvcnQ9dm9pZCAwO3ZhciBpPW4oNjUpLG89bigzNDYpO3QuRmV0Y2hSZWFkYWJsZVN0cmVhbVRyYW5zcG9ydD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuZGVidWcmJm8uZGVidWcoXCJmZXRjaFJlcXVlc3RcIixlKSxuZXcgYShlLHQpfSh0LGUpfX07dmFyIGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dGhpcy5jYW5jZWxsZWQ9ITEsdGhpcy5jb250cm9sbGVyPXNlbGYuQWJvcnRDb250cm9sbGVyJiZuZXcgQWJvcnRDb250cm9sbGVyLHRoaXMub3B0aW9ucz1lLHRoaXMuaW5pdD10fXJldHVybiBlLnByb3RvdHlwZS5wdW1wPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztpZih0aGlzLnJlYWRlcj1lLHRoaXMuY2FuY2VsbGVkKXJldHVybiB0aGlzLm9wdGlvbnMuZGVidWcmJm8uZGVidWcoXCJGZXRjaC5wdW1wLmNhbmNlbCBhdCBmaXJzdCBwdW1wXCIpLHZvaWQgdGhpcy5yZWFkZXIuY2FuY2VsKCkuY2F0Y2goKGZ1bmN0aW9uKGUpe24ub3B0aW9ucy5kZWJ1ZyYmby5kZWJ1ZyhcIkZldGNoLnB1bXAucmVhZGVyLmNhbmNlbCBleGNlcHRpb25cIixlKX0pKTt0aGlzLnJlYWRlci5yZWFkKCkudGhlbigoZnVuY3Rpb24oZSl7aWYoZS5kb25lKXJldHVybiBuLm9wdGlvbnMub25FbmQoKSx0O24ub3B0aW9ucy5vbkNodW5rKGUudmFsdWUpLG4ucHVtcChuLnJlYWRlcix0KX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7bi5jYW5jZWxsZWQ/bi5vcHRpb25zLmRlYnVnJiZvLmRlYnVnKFwiRmV0Y2guY2F0Y2ggLSByZXF1ZXN0IGNhbmNlbGxlZFwiKToobi5jYW5jZWxsZWQ9ITAsbi5vcHRpb25zLmRlYnVnJiZvLmRlYnVnKFwiRmV0Y2guY2F0Y2hcIixlLm1lc3NhZ2UpLG4ub3B0aW9ucy5vbkVuZChlKSl9KSl9LGUucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztmZXRjaCh0aGlzLm9wdGlvbnMudXJsLHIocih7fSx0aGlzLmluaXQpLHtoZWFkZXJzOnRoaXMubWV0YWRhdGEudG9IZWFkZXJzKCksbWV0aG9kOlwiUE9TVFwiLGJvZHk6ZSxzaWduYWw6dGhpcy5jb250cm9sbGVyJiZ0aGlzLmNvbnRyb2xsZXIuc2lnbmFsfSkpLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKHQub3B0aW9ucy5kZWJ1ZyYmby5kZWJ1ZyhcIkZldGNoLnJlc3BvbnNlXCIsZSksdC5vcHRpb25zLm9uSGVhZGVycyhuZXcgaS5NZXRhZGF0YShlLmhlYWRlcnMpLGUuc3RhdHVzKSwhZS5ib2R5KXJldHVybiBlO3QucHVtcChlLmJvZHkuZ2V0UmVhZGVyKCksZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3QuY2FuY2VsbGVkP3Qub3B0aW9ucy5kZWJ1ZyYmby5kZWJ1ZyhcIkZldGNoLmNhdGNoIC0gcmVxdWVzdCBjYW5jZWxsZWRcIik6KHQuY2FuY2VsbGVkPSEwLHQub3B0aW9ucy5kZWJ1ZyYmby5kZWJ1ZyhcIkZldGNoLmNhdGNoXCIsZS5tZXNzYWdlKSx0Lm9wdGlvbnMub25FbmQoZSkpfSkpfSxlLnByb3RvdHlwZS5zZW5kTWVzc2FnZT1mdW5jdGlvbihlKXt0aGlzLnNlbmQoZSl9LGUucHJvdG90eXBlLmZpbmlzaFNlbmQ9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKGUpe3RoaXMubWV0YWRhdGE9ZX0sZS5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLmNhbmNlbGxlZD90aGlzLm9wdGlvbnMuZGVidWcmJm8uZGVidWcoXCJGZXRjaC5jYW5jZWwgYWxyZWFkeSBjYW5jZWxsZWRcIik6KHRoaXMuY2FuY2VsbGVkPSEwLHRoaXMuY29udHJvbGxlcj8odGhpcy5vcHRpb25zLmRlYnVnJiZvLmRlYnVnKFwiRmV0Y2guY2FuY2VsLmNvbnRyb2xsZXIuYWJvcnRcIiksdGhpcy5jb250cm9sbGVyLmFib3J0KCkpOnRoaXMub3B0aW9ucy5kZWJ1ZyYmby5kZWJ1ZyhcIkZldGNoLmNhbmNlbC5taXNzaW5nIGFib3J0IGNvbnRyb2xsZXJcIiksdGhpcy5yZWFkZXI/KHRoaXMub3B0aW9ucy5kZWJ1ZyYmby5kZWJ1ZyhcIkZldGNoLmNhbmNlbC5yZWFkZXIuY2FuY2VsXCIpLHRoaXMucmVhZGVyLmNhbmNlbCgpLmNhdGNoKChmdW5jdGlvbih0KXtlLm9wdGlvbnMuZGVidWcmJm8uZGVidWcoXCJGZXRjaC5jYW5jZWwucmVhZGVyLmNhbmNlbCBleGNlcHRpb25cIix0KX0pKSk6dGhpcy5vcHRpb25zLmRlYnVnJiZvLmRlYnVnKFwiRmV0Y2guY2FuY2VsIGJlZm9yZSByZWFkZXJcIikpfSxlfSgpO3QuZGV0ZWN0RmV0Y2hTdXBwb3J0PWZ1bmN0aW9uKCl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFJlc3BvbnNlJiZSZXNwb25zZS5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoXCJib2R5XCIpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBIZWFkZXJzfX0sODU5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkNyb3NzQnJvd3Nlckh0dHBUcmFuc3BvcnQ9dm9pZCAwO3ZhciByPW4oMjI5KSxpPW4oMjEwKTt0LkNyb3NzQnJvd3Nlckh0dHBUcmFuc3BvcnQ9ZnVuY3Rpb24oZSl7aWYoci5kZXRlY3RGZXRjaFN1cHBvcnQoKSl7dmFyIHQ9e2NyZWRlbnRpYWxzOmUud2l0aENyZWRlbnRpYWxzP1wiaW5jbHVkZVwiOlwic2FtZS1vcmlnaW5cIn07cmV0dXJuIHIuRmV0Y2hSZWFkYWJsZVN0cmVhbVRyYW5zcG9ydCh0KX1yZXR1cm4gaS5YaHJUcmFuc3BvcnQoe3dpdGhDcmVkZW50aWFsczplLndpdGhDcmVkZW50aWFsc30pfX0sMjEwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcixpPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KToobi5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IG4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5zdHJpbmdUb0FycmF5QnVmZmVyPXQuTW96Q2h1bmtlZEFycmF5QnVmZmVyWEhSPXQuWEhSPXQuWGhyVHJhbnNwb3J0PXZvaWQgMDt2YXIgbz1uKDY1KSxhPW4oMzQ2KSxzPW4oODQ5KTt0LlhoclRyYW5zcG9ydD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYocy5kZXRlY3RNb3pYSFJTdXBwb3J0KCkpcmV0dXJuIG5ldyB1KHQsZSk7aWYocy5kZXRlY3RYSFJPdmVycmlkZU1pbWVUeXBlU3VwcG9ydCgpKXJldHVybiBuZXcgYyh0LGUpO3Rocm93IG5ldyBFcnJvcihcIlRoaXMgZW52aXJvbm1lbnQncyBYSFIgaW1wbGVtZW50YXRpb24gY2Fubm90IHN1cHBvcnQgYmluYXJ5IHRyYW5zZmVyLlwiKX19O3ZhciBjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe3RoaXMub3B0aW9ucz1lLHRoaXMuaW5pdD10fXJldHVybiBlLnByb3RvdHlwZS5vblByb2dyZXNzRXZlbnQ9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuZGVidWcmJmEuZGVidWcoXCJYSFIub25Qcm9ncmVzc0V2ZW50Lmxlbmd0aDogXCIsdGhpcy54aHIucmVzcG9uc2UubGVuZ3RoKTt2YXIgZT10aGlzLnhoci5yZXNwb25zZS5zdWJzdHIodGhpcy5pbmRleCk7dGhpcy5pbmRleD10aGlzLnhoci5yZXNwb25zZS5sZW5ndGg7dmFyIHQ9ZChlKTt0aGlzLm9wdGlvbnMub25DaHVuayh0KX0sZS5wcm90b3R5cGUub25Mb2FkRXZlbnQ9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuZGVidWcmJmEuZGVidWcoXCJYSFIub25Mb2FkRXZlbnRcIiksdGhpcy5vcHRpb25zLm9uRW5kKCl9LGUucHJvdG90eXBlLm9uU3RhdGVDaGFuZ2U9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuZGVidWcmJmEuZGVidWcoXCJYSFIub25TdGF0ZUNoYW5nZVwiLHRoaXMueGhyLnJlYWR5U3RhdGUpLHRoaXMueGhyLnJlYWR5U3RhdGU9PT1YTUxIdHRwUmVxdWVzdC5IRUFERVJTX1JFQ0VJVkVEJiZ0aGlzLm9wdGlvbnMub25IZWFkZXJzKG5ldyBvLk1ldGFkYXRhKHRoaXMueGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSx0aGlzLnhoci5zdGF0dXMpfSxlLnByb3RvdHlwZS5zZW5kTWVzc2FnZT1mdW5jdGlvbihlKXt0aGlzLnhoci5zZW5kKGUpfSxlLnByb3RvdHlwZS5maW5pc2hTZW5kPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMubWV0YWRhdGE9ZTt2YXIgbj1uZXcgWE1MSHR0cFJlcXVlc3Q7dGhpcy54aHI9bixuLm9wZW4oXCJQT1NUXCIsdGhpcy5vcHRpb25zLnVybCksdGhpcy5jb25maWd1cmVYaHIoKSx0aGlzLm1ldGFkYXRhLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7bi5zZXRSZXF1ZXN0SGVhZGVyKGUsdC5qb2luKFwiLCBcIikpfSkpLG4ud2l0aENyZWRlbnRpYWxzPUJvb2xlYW4odGhpcy5pbml0LndpdGhDcmVkZW50aWFscyksbi5hZGRFdmVudExpc3RlbmVyKFwicmVhZHlzdGF0ZWNoYW5nZVwiLHRoaXMub25TdGF0ZUNoYW5nZS5iaW5kKHRoaXMpKSxuLmFkZEV2ZW50TGlzdGVuZXIoXCJwcm9ncmVzc1wiLHRoaXMub25Qcm9ncmVzc0V2ZW50LmJpbmQodGhpcykpLG4uYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRlbmRcIix0aGlzLm9uTG9hZEV2ZW50LmJpbmQodGhpcykpLG4uYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsKGZ1bmN0aW9uKGUpe3Qub3B0aW9ucy5kZWJ1ZyYmYS5kZWJ1ZyhcIlhIUi5lcnJvclwiLGUpLHQub3B0aW9ucy5vbkVuZChlLmVycm9yKX0pKX0sZS5wcm90b3R5cGUuY29uZmlndXJlWGhyPWZ1bmN0aW9uKCl7dGhpcy54aHIucmVzcG9uc2VUeXBlPVwidGV4dFwiLHRoaXMueGhyLm92ZXJyaWRlTWltZVR5cGUoXCJ0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkXCIpfSxlLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuZGVidWcmJmEuZGVidWcoXCJYSFIuYWJvcnRcIiksdGhpcy54aHIuYWJvcnQoKX0sZX0oKTt0LlhIUj1jO3ZhciB1PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gbnVsbCE9PWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBpKHQsZSksdC5wcm90b3R5cGUuY29uZmlndXJlWGhyPWZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLmRlYnVnJiZhLmRlYnVnKFwiTW96WEhSLmNvbmZpZ3VyZVhocjogc2V0dGluZyByZXNwb25zZVR5cGUgdG8gJ21vei1jaHVua2VkLWFycmF5YnVmZmVyJ1wiKSx0aGlzLnhoci5yZXNwb25zZVR5cGU9XCJtb3otY2h1bmtlZC1hcnJheWJ1ZmZlclwifSx0LnByb3RvdHlwZS5vblByb2dyZXNzRXZlbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnhoci5yZXNwb25zZTt0aGlzLm9wdGlvbnMuZGVidWcmJmEuZGVidWcoXCJNb3pYSFIub25Qcm9ncmVzc0V2ZW50OiBcIixuZXcgVWludDhBcnJheShlKSksdGhpcy5vcHRpb25zLm9uQ2h1bmsobmV3IFVpbnQ4QXJyYXkoZSkpfSx0fShjKTtmdW5jdGlvbiBsKGUsdCl7dmFyIG49ZS5jaGFyQ29kZUF0KHQpO2lmKG4+PTU1Mjk2JiZuPD01NjMxOSl7dmFyIHI9ZS5jaGFyQ29kZUF0KHQrMSk7cj49NTYzMjAmJnI8PTU3MzQzJiYobj02NTUzNisobi01NTI5Njw8MTApKyhyLTU2MzIwKSl9cmV0dXJuIG59ZnVuY3Rpb24gZChlKXtmb3IodmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLG49MCxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPVN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXQ/ZS5jb2RlUG9pbnRBdChyKTpsKGUscik7dFtuKytdPTI1NSZpfXJldHVybiB0fXQuTW96Q2h1bmtlZEFycmF5QnVmZmVyWEhSPXUsdC5zdHJpbmdUb0FycmF5QnVmZmVyPWR9LDg0OTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuO2Z1bmN0aW9uIHIoKXtpZih2b2lkIDAhPT1uKXJldHVybiBuO2lmKFhNTEh0dHBSZXF1ZXN0KXtuPW5ldyBYTUxIdHRwUmVxdWVzdDt0cnl7bi5vcGVuKFwiR0VUXCIsXCJodHRwczovL2xvY2FsaG9zdFwiKX1jYXRjaChlKXt9fXJldHVybiBufWZ1bmN0aW9uIGkoZSl7dmFyIHQ9cigpO2lmKCF0KXJldHVybiExO3RyeXtyZXR1cm4gdC5yZXNwb25zZVR5cGU9ZSx0LnJlc3BvbnNlVHlwZT09PWV9Y2F0Y2goZSl7fXJldHVybiExfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGV0ZWN0WEhST3ZlcnJpZGVNaW1lVHlwZVN1cHBvcnQ9dC5kZXRlY3RNb3pYSFJTdXBwb3J0PXQueGhyU3VwcG9ydHNSZXNwb25zZVR5cGU9dm9pZCAwLHQueGhyU3VwcG9ydHNSZXNwb25zZVR5cGU9aSx0LmRldGVjdE1velhIUlN1cHBvcnQ9ZnVuY3Rpb24oKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3QmJmkoXCJtb3otY2h1bmtlZC1hcnJheWJ1ZmZlclwiKX0sdC5kZXRlY3RYSFJPdmVycmlkZU1pbWVUeXBlU3VwcG9ydD1mdW5jdGlvbigpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdCYmWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KFwib3ZlcnJpZGVNaW1lVHlwZVwiKX19LDU0MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5XZWJzb2NrZXRUcmFuc3BvcnQ9dm9pZCAwO3ZhciByLGk9bigzNDYpLG89big2MTcpOyFmdW5jdGlvbihlKXtlW2UuRklOSVNIX1NFTkQ9MV09XCJGSU5JU0hfU0VORFwifShyfHwocj17fSkpO3ZhciBhPW5ldyBVaW50OEFycmF5KFsxXSk7dC5XZWJzb2NrZXRUcmFuc3BvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2UuZGVidWcmJmkuZGVidWcoXCJ3ZWJzb2NrZXRSZXF1ZXN0XCIsZSk7dmFyIHQsbj1mdW5jdGlvbihlKXtpZihcImh0dHBzOi8vXCI9PT1lLnN1YnN0cigwLDgpKXJldHVyblwid3NzOi8vXCIrZS5zdWJzdHIoOCk7aWYoXCJodHRwOi8vXCI9PT1lLnN1YnN0cigwLDcpKXJldHVyblwid3M6Ly9cIitlLnN1YnN0cig3KTt0aHJvdyBuZXcgRXJyb3IoXCJXZWJzb2NrZXQgdHJhbnNwb3J0IGNvbnN0cnVjdGVkIHdpdGggbm9uLWh0dHBzOi8vIG9yIGh0dHA6Ly8gaG9zdC5cIil9KGUudXJsKSxzPVtdO2Z1bmN0aW9uIGMoZSl7aWYoZT09PXIuRklOSVNIX1NFTkQpdC5zZW5kKGEpO2Vsc2V7dmFyIG49ZSxpPW5ldyBJbnQ4QXJyYXkobi5ieXRlTGVuZ3RoKzEpO2kuc2V0KG5ldyBVaW50OEFycmF5KFswXSkpLGkuc2V0KG4sMSksdC5zZW5kKGkpfX1yZXR1cm57c2VuZE1lc3NhZ2U6ZnVuY3Rpb24oZSl7dCYmdC5yZWFkeVN0YXRlIT09dC5DT05ORUNUSU5HP2MoZSk6cy5wdXNoKGUpfSxmaW5pc2hTZW5kOmZ1bmN0aW9uKCl7dCYmdC5yZWFkeVN0YXRlIT09dC5DT05ORUNUSU5HP2Moci5GSU5JU0hfU0VORCk6cy5wdXNoKHIuRklOSVNIX1NFTkQpfSxzdGFydDpmdW5jdGlvbihyKXsodD1uZXcgV2ViU29ja2V0KG4sW1wiZ3JwYy13ZWJzb2NrZXRzXCJdKSkuYmluYXJ5VHlwZT1cImFycmF5YnVmZmVyXCIsdC5vbm9wZW49ZnVuY3Rpb24oKXt2YXIgbjtlLmRlYnVnJiZpLmRlYnVnKFwid2Vic29ja2V0UmVxdWVzdC5vbm9wZW5cIiksdC5zZW5kKChuPVwiXCIsci5mb3JFYWNoKChmdW5jdGlvbihlLHQpe24rPWUrXCI6IFwiK3Quam9pbihcIiwgXCIpK1wiXFxyXFxuXCJ9KSksby5lbmNvZGVBU0NJSShuKSkpLHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7YyhlKX0pKX0sdC5vbmNsb3NlPWZ1bmN0aW9uKHQpe2UuZGVidWcmJmkuZGVidWcoXCJ3ZWJzb2NrZXRSZXF1ZXN0Lm9uY2xvc2VcIix0KSxlLm9uRW5kKCl9LHQub25lcnJvcj1mdW5jdGlvbih0KXtlLmRlYnVnJiZpLmRlYnVnKFwid2Vic29ja2V0UmVxdWVzdC5vbmVycm9yXCIsdCl9LHQub25tZXNzYWdlPWZ1bmN0aW9uKHQpe2Uub25DaHVuayhuZXcgVWludDhBcnJheSh0LmRhdGEpKX19LGNhbmNlbDpmdW5jdGlvbigpe2UuZGVidWcmJmkuZGVidWcoXCJ3ZWJzb2NrZXQuYWJvcnRcIiksdC5jbG9zZSgpfX19KGUpfX19LDM1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnVuYXJ5PXZvaWQgMDt2YXIgcj1uKDY1KSxpPW4oOTM0KTt0LnVuYXJ5PWZ1bmN0aW9uKGUsdCl7aWYoZS5yZXNwb25zZVN0cmVhbSl0aHJvdyBuZXcgRXJyb3IoXCIudW5hcnkgY2Fubm90IGJlIHVzZWQgd2l0aCBzZXJ2ZXItc3RyZWFtaW5nIG1ldGhvZHMuIFVzZSAuaW52b2tlIG9yIC5jbGllbnQgaW5zdGVhZC5cIik7aWYoZS5yZXF1ZXN0U3RyZWFtKXRocm93IG5ldyBFcnJvcihcIi51bmFyeSBjYW5ub3QgYmUgdXNlZCB3aXRoIGNsaWVudC1zdHJlYW1pbmcgbWV0aG9kcy4gVXNlIC5jbGllbnQgaW5zdGVhZC5cIik7dmFyIG49bnVsbCxvPW51bGwsYT1pLmNsaWVudChlLHtob3N0OnQuaG9zdCx0cmFuc3BvcnQ6dC50cmFuc3BvcnQsZGVidWc6dC5kZWJ1Z30pO3JldHVybiBhLm9uSGVhZGVycygoZnVuY3Rpb24oZSl7bj1lfSkpLGEub25NZXNzYWdlKChmdW5jdGlvbihlKXtvPWV9KSksYS5vbkVuZCgoZnVuY3Rpb24oZSxpLGEpe3Qub25FbmQoe3N0YXR1czplLHN0YXR1c01lc3NhZ2U6aSxoZWFkZXJzOm58fG5ldyByLk1ldGFkYXRhLG1lc3NhZ2U6byx0cmFpbGVyczphfSl9KSksYS5zdGFydCh0Lm1ldGFkYXRhKSxhLnNlbmQodC5yZXF1ZXN0KSxhLmZpbmlzaFNlbmQoKSx7Y2xvc2U6ZnVuY3Rpb24oKXthLmNsb3NlKCl9fX19LDg4MjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZnJhbWVSZXF1ZXN0PXZvaWQgMCx0LmZyYW1lUmVxdWVzdD1mdW5jdGlvbihlKXt2YXIgdD1lLnNlcmlhbGl6ZUJpbmFyeSgpLG49bmV3IEFycmF5QnVmZmVyKHQuYnl0ZUxlbmd0aCs1KTtyZXR1cm4gbmV3IERhdGFWaWV3KG4sMSw0KS5zZXRVaW50MzIoMCx0Lmxlbmd0aCwhMSksbmV3IFVpbnQ4QXJyYXkobiw1KS5zZXQodCksbmV3IFVpbnQ4QXJyYXkobil9fX0sdD17fSxmdW5jdGlvbiBuKHIpe2lmKHRbcl0pcmV0dXJuIHRbcl0uZXhwb3J0czt2YXIgaT10W3JdPXtleHBvcnRzOnt9fTtyZXR1cm4gZVtyXS5jYWxsKGkuZXhwb3J0cyxpLGkuZXhwb3J0cyxuKSxpLmV4cG9ydHN9KDYwNyk7dmFyIGUsdH0oKX0sNjE3NDM6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPW47dmFyIHQ9bnVsbDt0cnl7dD1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSwxMywyLDk2LDAsMSwxMjcsOTYsNCwxMjcsMTI3LDEyNywxMjcsMSwxMjcsMyw3LDYsMCwxLDEsMSwxLDEsNiw2LDEsMTI3LDEsNjUsMCwxMSw3LDUwLDYsMywxMDksMTE3LDEwOCwwLDEsNSwxMDAsMTA1LDExOCw5NSwxMTUsMCwyLDUsMTAwLDEwNSwxMTgsOTUsMTE3LDAsMyw1LDExNCwxMDEsMTA5LDk1LDExNSwwLDQsNSwxMTQsMTAxLDEwOSw5NSwxMTcsMCw1LDgsMTAzLDEwMSwxMTYsOTUsMTA0LDEwNSwxMDMsMTA0LDAsMCwxMCwxOTEsMSw2LDQsMCwzNSwwLDExLDM2LDEsMSwxMjYsMzIsMCwxNzMsMzIsMSwxNzMsNjYsMzIsMTM0LDEzMiwzMiwyLDE3MywzMiwzLDE3Myw2NiwzMiwxMzQsMTMyLDEyNiwzNCw0LDY2LDMyLDEzNSwxNjcsMzYsMCwzMiw0LDE2NywxMSwzNiwxLDEsMTI2LDMyLDAsMTczLDMyLDEsMTczLDY2LDMyLDEzNCwxMzIsMzIsMiwxNzMsMzIsMywxNzMsNjYsMzIsMTM0LDEzMiwxMjcsMzQsNCw2NiwzMiwxMzUsMTY3LDM2LDAsMzIsNCwxNjcsMTEsMzYsMSwxLDEyNiwzMiwwLDE3MywzMiwxLDE3Myw2NiwzMiwxMzQsMTMyLDMyLDIsMTczLDMyLDMsMTczLDY2LDMyLDEzNCwxMzIsMTI4LDM0LDQsNjYsMzIsMTM1LDE2NywzNiwwLDMyLDQsMTY3LDExLDM2LDEsMSwxMjYsMzIsMCwxNzMsMzIsMSwxNzMsNjYsMzIsMTM0LDEzMiwzMiwyLDE3MywzMiwzLDE3Myw2NiwzMiwxMzQsMTMyLDEyOSwzNCw0LDY2LDMyLDEzNSwxNjcsMzYsMCwzMiw0LDE2NywxMSwzNiwxLDEsMTI2LDMyLDAsMTczLDMyLDEsMTczLDY2LDMyLDEzNCwxMzIsMzIsMiwxNzMsMzIsMywxNzMsNjYsMzIsMTM0LDEzMiwxMzAsMzQsNCw2NiwzMiwxMzUsMTY3LDM2LDAsMzIsNCwxNjcsMTFdKSkse30pLmV4cG9ydHN9Y2F0Y2goTyl7fWZ1bmN0aW9uIG4oZSx0LG4pe3RoaXMubG93PTB8ZSx0aGlzLmhpZ2g9MHx0LHRoaXMudW5zaWduZWQ9ISFufWZ1bmN0aW9uIHIoZSl7cmV0dXJuITA9PT0oZSYmZS5fX2lzTG9uZ19fKX1uLnByb3RvdHlwZS5fX2lzTG9uZ19fLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIl9faXNMb25nX19cIix7dmFsdWU6ITB9KSxuLmlzTG9uZz1yO3ZhciBpPXt9LG89e307ZnVuY3Rpb24gYShlLHQpe3ZhciBuLHIsYTtyZXR1cm4gdD8oYT0wPD0oZT4+Pj0wKSYmZTwyNTYpJiYocj1vW2VdKT9yOihuPWMoZSwoMHxlKTwwPy0xOjAsITApLGEmJihvW2VdPW4pLG4pOihhPS0xMjg8PShlfD0wKSYmZTwxMjgpJiYocj1pW2VdKT9yOihuPWMoZSxlPDA/LTE6MCwhMSksYSYmKGlbZV09biksbil9ZnVuY3Rpb24gcyhlLHQpe2lmKGlzTmFOKGUpKXJldHVybiB0P3Y6bTtpZih0KXtpZihlPDApcmV0dXJuIHY7aWYoZT49ZilyZXR1cm4geX1lbHNle2lmKGU8PS1oKXJldHVybiBUO2lmKGUrMT49aClyZXR1cm4gU31yZXR1cm4gZTwwP3MoLWUsdCkubmVnKCk6YyhlJXB8MCxlL3B8MCx0KX1mdW5jdGlvbiBjKGUsdCxyKXtyZXR1cm4gbmV3IG4oZSx0LHIpfW4uZnJvbUludD1hLG4uZnJvbU51bWJlcj1zLG4uZnJvbUJpdHM9Yzt2YXIgdT1NYXRoLnBvdztmdW5jdGlvbiBsKGUsdCxuKXtpZigwPT09ZS5sZW5ndGgpdGhyb3cgRXJyb3IoXCJlbXB0eSBzdHJpbmdcIik7aWYoXCJOYU5cIj09PWV8fFwiSW5maW5pdHlcIj09PWV8fFwiK0luZmluaXR5XCI9PT1lfHxcIi1JbmZpbml0eVwiPT09ZSlyZXR1cm4gbTtpZihcIm51bWJlclwiPT09dHlwZW9mIHQ/KG49dCx0PSExKTp0PSEhdCwobj1ufHwxMCk8Mnx8MzY8bil0aHJvdyBSYW5nZUVycm9yKFwicmFkaXhcIik7dmFyIHI7aWYoKHI9ZS5pbmRleE9mKFwiLVwiKSk+MCl0aHJvdyBFcnJvcihcImludGVyaW9yIGh5cGhlblwiKTtpZigwPT09cilyZXR1cm4gbChlLnN1YnN0cmluZygxKSx0LG4pLm5lZygpO2Zvcih2YXIgaT1zKHUobiw4KSksbz1tLGE9MDthPGUubGVuZ3RoO2ErPTgpe3ZhciBjPU1hdGgubWluKDgsZS5sZW5ndGgtYSksZD1wYXJzZUludChlLnN1YnN0cmluZyhhLGErYyksbik7aWYoYzw4KXt2YXIgcD1zKHUobixjKSk7bz1vLm11bChwKS5hZGQocyhkKSl9ZWxzZSBvPShvPW8ubXVsKGkpKS5hZGQocyhkKSl9cmV0dXJuIG8udW5zaWduZWQ9dCxvfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm5cIm51bWJlclwiPT09dHlwZW9mIGU/cyhlLHQpOlwic3RyaW5nXCI9PT10eXBlb2YgZT9sKGUsdCk6YyhlLmxvdyxlLmhpZ2gsXCJib29sZWFuXCI9PT10eXBlb2YgdD90OmUudW5zaWduZWQpfW4uZnJvbVN0cmluZz1sLG4uZnJvbVZhbHVlPWQ7dmFyIHA9NDI5NDk2NzI5NixmPXAqcCxoPWYvMixnPWEoMTw8MjQpLG09YSgwKTtuLlpFUk89bTt2YXIgdj1hKDAsITApO24uVVpFUk89djt2YXIgXz1hKDEpO24uT05FPV87dmFyIEU9YSgxLCEwKTtuLlVPTkU9RTt2YXIgYj1hKC0xKTtuLk5FR19PTkU9Yjt2YXIgUz1jKC0xLDIxNDc0ODM2NDcsITEpO24uTUFYX1ZBTFVFPVM7dmFyIHk9YygtMSwtMSwhMCk7bi5NQVhfVU5TSUdORURfVkFMVUU9eTt2YXIgVD1jKDAsLTIxNDc0ODM2NDgsITEpO24uTUlOX1ZBTFVFPVQ7dmFyIEk9bi5wcm90b3R5cGU7SS50b0ludD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVuc2lnbmVkP3RoaXMubG93Pj4+MDp0aGlzLmxvd30sSS50b051bWJlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVuc2lnbmVkPyh0aGlzLmhpZ2g+Pj4wKSpwKyh0aGlzLmxvdz4+PjApOnRoaXMuaGlnaCpwKyh0aGlzLmxvdz4+PjApfSxJLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2lmKChlPWV8fDEwKTwyfHwzNjxlKXRocm93IFJhbmdlRXJyb3IoXCJyYWRpeFwiKTtpZih0aGlzLmlzWmVybygpKXJldHVyblwiMFwiO2lmKHRoaXMuaXNOZWdhdGl2ZSgpKXtpZih0aGlzLmVxKFQpKXt2YXIgdD1zKGUpLG49dGhpcy5kaXYodCkscj1uLm11bCh0KS5zdWIodGhpcyk7cmV0dXJuIG4udG9TdHJpbmcoZSkrci50b0ludCgpLnRvU3RyaW5nKGUpfXJldHVyblwiLVwiK3RoaXMubmVnKCkudG9TdHJpbmcoZSl9Zm9yKHZhciBpPXModShlLDYpLHRoaXMudW5zaWduZWQpLG89dGhpcyxhPVwiXCI7Oyl7dmFyIGM9by5kaXYoaSksbD0oby5zdWIoYy5tdWwoaSkpLnRvSW50KCk+Pj4wKS50b1N0cmluZyhlKTtpZigobz1jKS5pc1plcm8oKSlyZXR1cm4gbCthO2Zvcig7bC5sZW5ndGg8NjspbD1cIjBcIitsO2E9XCJcIitsK2F9fSxJLmdldEhpZ2hCaXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGlnaH0sSS5nZXRIaWdoQml0c1Vuc2lnbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGlnaD4+PjB9LEkuZ2V0TG93Qml0cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxvd30sSS5nZXRMb3dCaXRzVW5zaWduZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb3c+Pj4wfSxJLmdldE51bUJpdHNBYnM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzTmVnYXRpdmUoKSlyZXR1cm4gdGhpcy5lcShUKT82NDp0aGlzLm5lZygpLmdldE51bUJpdHNBYnMoKTtmb3IodmFyIGU9MCE9dGhpcy5oaWdoP3RoaXMuaGlnaDp0aGlzLmxvdyx0PTMxO3Q+MCYmMD09KGUmMTw8dCk7dC0tKTtyZXR1cm4gMCE9dGhpcy5oaWdoP3QrMzM6dCsxfSxJLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5oaWdoJiYwPT09dGhpcy5sb3d9LEkuZXF6PUkuaXNaZXJvLEkuaXNOZWdhdGl2ZT1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVuc2lnbmVkJiZ0aGlzLmhpZ2g8MH0sSS5pc1Bvc2l0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5zaWduZWR8fHRoaXMuaGlnaD49MH0sSS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT09KDEmdGhpcy5sb3cpfSxJLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT09KDEmdGhpcy5sb3cpfSxJLmVxdWFscz1mdW5jdGlvbihlKXtyZXR1cm4gcihlKXx8KGU9ZChlKSksKHRoaXMudW5zaWduZWQ9PT1lLnVuc2lnbmVkfHx0aGlzLmhpZ2g+Pj4zMSE9PTF8fGUuaGlnaD4+PjMxIT09MSkmJih0aGlzLmhpZ2g9PT1lLmhpZ2gmJnRoaXMubG93PT09ZS5sb3cpfSxJLmVxPUkuZXF1YWxzLEkubm90RXF1YWxzPWZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLmVxKGUpfSxJLm5lcT1JLm5vdEVxdWFscyxJLm5lPUkubm90RXF1YWxzLEkubGVzc1RoYW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY29tcChlKTwwfSxJLmx0PUkubGVzc1RoYW4sSS5sZXNzVGhhbk9yRXF1YWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY29tcChlKTw9MH0sSS5sdGU9SS5sZXNzVGhhbk9yRXF1YWwsSS5sZT1JLmxlc3NUaGFuT3JFcXVhbCxJLmdyZWF0ZXJUaGFuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNvbXAoZSk+MH0sSS5ndD1JLmdyZWF0ZXJUaGFuLEkuZ3JlYXRlclRoYW5PckVxdWFsPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNvbXAoZSk+PTB9LEkuZ3RlPUkuZ3JlYXRlclRoYW5PckVxdWFsLEkuZ2U9SS5ncmVhdGVyVGhhbk9yRXF1YWwsSS5jb21wYXJlPWZ1bmN0aW9uKGUpe2lmKHIoZSl8fChlPWQoZSkpLHRoaXMuZXEoZSkpcmV0dXJuIDA7dmFyIHQ9dGhpcy5pc05lZ2F0aXZlKCksbj1lLmlzTmVnYXRpdmUoKTtyZXR1cm4gdCYmIW4/LTE6IXQmJm4/MTp0aGlzLnVuc2lnbmVkP2UuaGlnaD4+PjA+dGhpcy5oaWdoPj4+MHx8ZS5oaWdoPT09dGhpcy5oaWdoJiZlLmxvdz4+PjA+dGhpcy5sb3c+Pj4wPy0xOjE6dGhpcy5zdWIoZSkuaXNOZWdhdGl2ZSgpPy0xOjF9LEkuY29tcD1JLmNvbXBhcmUsSS5uZWdhdGU9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy51bnNpZ25lZCYmdGhpcy5lcShUKT9UOnRoaXMubm90KCkuYWRkKF8pfSxJLm5lZz1JLm5lZ2F0ZSxJLmFkZD1mdW5jdGlvbihlKXtyKGUpfHwoZT1kKGUpKTt2YXIgdD10aGlzLmhpZ2g+Pj4xNixuPTY1NTM1JnRoaXMuaGlnaCxpPXRoaXMubG93Pj4+MTYsbz02NTUzNSZ0aGlzLmxvdyxhPWUuaGlnaD4+PjE2LHM9NjU1MzUmZS5oaWdoLHU9ZS5sb3c+Pj4xNixsPTAscD0wLGY9MCxoPTA7cmV0dXJuIGYrPShoKz1vKyg2NTUzNSZlLmxvdykpPj4+MTYscCs9KGYrPWkrdSk+Pj4xNixsKz0ocCs9bitzKT4+PjE2LGwrPXQrYSxjKChmJj02NTUzNSk8PDE2fChoJj02NTUzNSksKGwmPTY1NTM1KTw8MTZ8KHAmPTY1NTM1KSx0aGlzLnVuc2lnbmVkKX0sSS5zdWJ0cmFjdD1mdW5jdGlvbihlKXtyZXR1cm4gcihlKXx8KGU9ZChlKSksdGhpcy5hZGQoZS5uZWcoKSl9LEkuc3ViPUkuc3VidHJhY3QsSS5tdWx0aXBseT1mdW5jdGlvbihlKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBtO2lmKHIoZSl8fChlPWQoZSkpLHQpcmV0dXJuIGModC5tdWwodGhpcy5sb3csdGhpcy5oaWdoLGUubG93LGUuaGlnaCksdC5nZXRfaGlnaCgpLHRoaXMudW5zaWduZWQpO2lmKGUuaXNaZXJvKCkpcmV0dXJuIG07aWYodGhpcy5lcShUKSlyZXR1cm4gZS5pc09kZCgpP1Q6bTtpZihlLmVxKFQpKXJldHVybiB0aGlzLmlzT2RkKCk/VDptO2lmKHRoaXMuaXNOZWdhdGl2ZSgpKXJldHVybiBlLmlzTmVnYXRpdmUoKT90aGlzLm5lZygpLm11bChlLm5lZygpKTp0aGlzLm5lZygpLm11bChlKS5uZWcoKTtpZihlLmlzTmVnYXRpdmUoKSlyZXR1cm4gdGhpcy5tdWwoZS5uZWcoKSkubmVnKCk7aWYodGhpcy5sdChnKSYmZS5sdChnKSlyZXR1cm4gcyh0aGlzLnRvTnVtYmVyKCkqZS50b051bWJlcigpLHRoaXMudW5zaWduZWQpO3ZhciBuPXRoaXMuaGlnaD4+PjE2LGk9NjU1MzUmdGhpcy5oaWdoLG89dGhpcy5sb3c+Pj4xNixhPTY1NTM1JnRoaXMubG93LHU9ZS5oaWdoPj4+MTYsbD02NTUzNSZlLmhpZ2gscD1lLmxvdz4+PjE2LGY9NjU1MzUmZS5sb3csaD0wLHY9MCxfPTAsRT0wO3JldHVybiBfKz0oRSs9YSpmKT4+PjE2LHYrPShfKz1vKmYpPj4+MTYsXyY9NjU1MzUsdis9KF8rPWEqcCk+Pj4xNixoKz0odis9aSpmKT4+PjE2LHYmPTY1NTM1LGgrPSh2Kz1vKnApPj4+MTYsdiY9NjU1MzUsaCs9KHYrPWEqbCk+Pj4xNixoKz1uKmYraSpwK28qbCthKnUsYygoXyY9NjU1MzUpPDwxNnwoRSY9NjU1MzUpLChoJj02NTUzNSk8PDE2fCh2Jj02NTUzNSksdGhpcy51bnNpZ25lZCl9LEkubXVsPUkubXVsdGlwbHksSS5kaXZpZGU9ZnVuY3Rpb24oZSl7aWYocihlKXx8KGU9ZChlKSksZS5pc1plcm8oKSl0aHJvdyBFcnJvcihcImRpdmlzaW9uIGJ5IHplcm9cIik7dmFyIG4saSxvO2lmKHQpcmV0dXJuIHRoaXMudW5zaWduZWR8fC0yMTQ3NDgzNjQ4IT09dGhpcy5oaWdofHwtMSE9PWUubG93fHwtMSE9PWUuaGlnaD9jKCh0aGlzLnVuc2lnbmVkP3QuZGl2X3U6dC5kaXZfcykodGhpcy5sb3csdGhpcy5oaWdoLGUubG93LGUuaGlnaCksdC5nZXRfaGlnaCgpLHRoaXMudW5zaWduZWQpOnRoaXM7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gdGhpcy51bnNpZ25lZD92Om07aWYodGhpcy51bnNpZ25lZCl7aWYoZS51bnNpZ25lZHx8KGU9ZS50b1Vuc2lnbmVkKCkpLGUuZ3QodGhpcykpcmV0dXJuIHY7aWYoZS5ndCh0aGlzLnNocnUoMSkpKXJldHVybiBFO289dn1lbHNle2lmKHRoaXMuZXEoVCkpcmV0dXJuIGUuZXEoXyl8fGUuZXEoYik/VDplLmVxKFQpP186KG49dGhpcy5zaHIoMSkuZGl2KGUpLnNobCgxKSkuZXEobSk/ZS5pc05lZ2F0aXZlKCk/XzpiOihpPXRoaXMuc3ViKGUubXVsKG4pKSxvPW4uYWRkKGkuZGl2KGUpKSk7aWYoZS5lcShUKSlyZXR1cm4gdGhpcy51bnNpZ25lZD92Om07aWYodGhpcy5pc05lZ2F0aXZlKCkpcmV0dXJuIGUuaXNOZWdhdGl2ZSgpP3RoaXMubmVnKCkuZGl2KGUubmVnKCkpOnRoaXMubmVnKCkuZGl2KGUpLm5lZygpO2lmKGUuaXNOZWdhdGl2ZSgpKXJldHVybiB0aGlzLmRpdihlLm5lZygpKS5uZWcoKTtvPW19Zm9yKGk9dGhpcztpLmd0ZShlKTspe249TWF0aC5tYXgoMSxNYXRoLmZsb29yKGkudG9OdW1iZXIoKS9lLnRvTnVtYmVyKCkpKTtmb3IodmFyIGE9TWF0aC5jZWlsKE1hdGgubG9nKG4pL01hdGguTE4yKSxsPWE8PTQ4PzE6dSgyLGEtNDgpLHA9cyhuKSxmPXAubXVsKGUpO2YuaXNOZWdhdGl2ZSgpfHxmLmd0KGkpOylmPShwPXMobi09bCx0aGlzLnVuc2lnbmVkKSkubXVsKGUpO3AuaXNaZXJvKCkmJihwPV8pLG89by5hZGQocCksaT1pLnN1YihmKX1yZXR1cm4gb30sSS5kaXY9SS5kaXZpZGUsSS5tb2R1bG89ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSl8fChlPWQoZSkpLHQ/YygodGhpcy51bnNpZ25lZD90LnJlbV91OnQucmVtX3MpKHRoaXMubG93LHRoaXMuaGlnaCxlLmxvdyxlLmhpZ2gpLHQuZ2V0X2hpZ2goKSx0aGlzLnVuc2lnbmVkKTp0aGlzLnN1Yih0aGlzLmRpdihlKS5tdWwoZSkpfSxJLm1vZD1JLm1vZHVsbyxJLnJlbT1JLm1vZHVsbyxJLm5vdD1mdW5jdGlvbigpe3JldHVybiBjKH50aGlzLmxvdyx+dGhpcy5oaWdoLHRoaXMudW5zaWduZWQpfSxJLmFuZD1mdW5jdGlvbihlKXtyZXR1cm4gcihlKXx8KGU9ZChlKSksYyh0aGlzLmxvdyZlLmxvdyx0aGlzLmhpZ2gmZS5oaWdoLHRoaXMudW5zaWduZWQpfSxJLm9yPWZ1bmN0aW9uKGUpe3JldHVybiByKGUpfHwoZT1kKGUpKSxjKHRoaXMubG93fGUubG93LHRoaXMuaGlnaHxlLmhpZ2gsdGhpcy51bnNpZ25lZCl9LEkueG9yPWZ1bmN0aW9uKGUpe3JldHVybiByKGUpfHwoZT1kKGUpKSxjKHRoaXMubG93XmUubG93LHRoaXMuaGlnaF5lLmhpZ2gsdGhpcy51bnNpZ25lZCl9LEkuc2hpZnRMZWZ0PWZ1bmN0aW9uKGUpe3JldHVybiByKGUpJiYoZT1lLnRvSW50KCkpLDA9PT0oZSY9NjMpP3RoaXM6ZTwzMj9jKHRoaXMubG93PDxlLHRoaXMuaGlnaDw8ZXx0aGlzLmxvdz4+PjMyLWUsdGhpcy51bnNpZ25lZCk6YygwLHRoaXMubG93PDxlLTMyLHRoaXMudW5zaWduZWQpfSxJLnNobD1JLnNoaWZ0TGVmdCxJLnNoaWZ0UmlnaHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSkmJihlPWUudG9JbnQoKSksMD09PShlJj02Myk/dGhpczplPDMyP2ModGhpcy5sb3c+Pj5lfHRoaXMuaGlnaDw8MzItZSx0aGlzLmhpZ2g+PmUsdGhpcy51bnNpZ25lZCk6Yyh0aGlzLmhpZ2g+PmUtMzIsdGhpcy5oaWdoPj0wPzA6LTEsdGhpcy51bnNpZ25lZCl9LEkuc2hyPUkuc2hpZnRSaWdodCxJLnNoaWZ0UmlnaHRVbnNpZ25lZD1mdW5jdGlvbihlKXtpZihyKGUpJiYoZT1lLnRvSW50KCkpLDA9PT0oZSY9NjMpKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuaGlnaDtyZXR1cm4gZTwzMj9jKHRoaXMubG93Pj4+ZXx0PDwzMi1lLHQ+Pj5lLHRoaXMudW5zaWduZWQpOmMoMzI9PT1lP3Q6dD4+PmUtMzIsMCx0aGlzLnVuc2lnbmVkKX0sSS5zaHJ1PUkuc2hpZnRSaWdodFVuc2lnbmVkLEkuc2hyX3U9SS5zaGlmdFJpZ2h0VW5zaWduZWQsSS50b1NpZ25lZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVuc2lnbmVkP2ModGhpcy5sb3csdGhpcy5oaWdoLCExKTp0aGlzfSxJLnRvVW5zaWduZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bnNpZ25lZD90aGlzOmModGhpcy5sb3csdGhpcy5oaWdoLCEwKX0sSS50b0J5dGVzPWZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMudG9CeXRlc0xFKCk6dGhpcy50b0J5dGVzQkUoKX0sSS50b0J5dGVzTEU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhpZ2gsdD10aGlzLmxvdztyZXR1cm5bMjU1JnQsdD4+PjgmMjU1LHQ+Pj4xNiYyNTUsdD4+PjI0LDI1NSZlLGU+Pj44JjI1NSxlPj4+MTYmMjU1LGU+Pj4yNF19LEkudG9CeXRlc0JFPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oaWdoLHQ9dGhpcy5sb3c7cmV0dXJuW2U+Pj4yNCxlPj4+MTYmMjU1LGU+Pj44JjI1NSwyNTUmZSx0Pj4+MjQsdD4+PjE2JjI1NSx0Pj4+OCYyNTUsMjU1JnRdfSxuLmZyb21CeXRlcz1mdW5jdGlvbihlLHQscil7cmV0dXJuIHI/bi5mcm9tQnl0ZXNMRShlLHQpOm4uZnJvbUJ5dGVzQkUoZSx0KX0sbi5mcm9tQnl0ZXNMRT1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgbihlWzBdfGVbMV08PDh8ZVsyXTw8MTZ8ZVszXTw8MjQsZVs0XXxlWzVdPDw4fGVbNl08PDE2fGVbN108PDI0LHQpfSxuLmZyb21CeXRlc0JFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBuKGVbNF08PDI0fGVbNV08PDE2fGVbNl08PDh8ZVs3XSxlWzBdPDwyNHxlWzFdPDwxNnxlWzJdPDw4fGVbM10sdCl9fSw3OTI4NzpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzMzAxOSksaT1yLG89RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpO2kuZXhwb3J0U3ltYm9sKFwicHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlclwiLG51bGwsbyksaS5leHBvcnRTeW1ib2woXCJwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuSVNQXCIsbnVsbCxvKSxpLmV4cG9ydFN5bWJvbChcInByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvblwiLG51bGwsbykscHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlcj1mdW5jdGlvbihlKXtyLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxpLmluaGVyaXRzKHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIsci5NZXNzYWdlKSxpLkRFQlVHJiYhQ09NUElMRUQmJihwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuR2VvSGVhZGVyLmRpc3BsYXlOYW1lPVwicHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlclwiKSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb249ZnVuY3Rpb24oZSl7ci5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0saS5pbmhlcml0cyhwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24sci5NZXNzYWdlKSxpLkRFQlVHJiYhQ09NUElMRUQmJihwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24uZGlzcGxheU5hbWU9XCJwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb25cIikscHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUD1mdW5jdGlvbihlKXtyLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxpLmluaGVyaXRzKHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1Asci5NZXNzYWdlKSxpLkRFQlVHJiYhQ09NUElMRUQmJihwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuSVNQLmRpc3BsYXlOYW1lPVwicHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUFwiKSxyLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYocHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIudG9PYmplY3QoZSx0aGlzKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciBuLHI9e2xvY2F0aW9uOihuPXQuZ2V0TG9jYXRpb24oKSkmJnByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi50b09iamVjdChlLG4pLGlzcDoobj10LmdldElzcCgpKSYmcHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUC50b09iamVjdChlLG4pfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHIuQmluYXJ5UmVhZGVyKGUpLG49bmV3IHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXI7cmV0dXJuIHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG4sdCl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXtzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIG49bmV3IHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbjt0LnJlYWRNZXNzYWdlKG4scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRMb2NhdGlvbihuKTticmVhaztjYXNlIDI6bj1uZXcgcHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUDt0LnJlYWRNZXNzYWdlKG4scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuc2V0SXNwKG4pO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX19cmV0dXJuIGV9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyByLkJpbmFyeVdyaXRlcjtyZXR1cm4gcHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbj12b2lkIDA7bnVsbCE9KG49ZS5nZXRMb2NhdGlvbigpKSYmdC53cml0ZU1lc3NhZ2UoMSxuLHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksbnVsbCE9KG49ZS5nZXRJc3AoKSkmJnQud3JpdGVNZXNzYWdlKDIsbixwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuSVNQLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5wcm90b3R5cGUuZ2V0TG9jYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gci5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbiwxKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5wcm90b3R5cGUuc2V0TG9jYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIHIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywxLGUpfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuR2VvSGVhZGVyLnByb3RvdHlwZS5jbGVhckxvY2F0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0TG9jYXRpb24odm9pZCAwKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5wcm90b3R5cGUuaGFzTG9jYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9ci5NZXNzYWdlLmdldEZpZWxkKHRoaXMsMSl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5HZW9IZWFkZXIucHJvdG90eXBlLmdldElzcD1mdW5jdGlvbigpe3JldHVybiByLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMscHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUCwyKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5wcm90b3R5cGUuc2V0SXNwPWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsMixlKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5wcm90b3R5cGUuY2xlYXJJc3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRJc3Aodm9pZCAwKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkdlb0hlYWRlci5wcm90b3R5cGUuaGFzSXNwPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPXIuTWVzc2FnZS5nZXRGaWVsZCh0aGlzLDIpfSxyLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYocHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gcHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLnRvT2JqZWN0KGUsdGhpcyl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciBuPXtjb3VudHJ5OnIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSxcIlwiKSxyZWdpb246ci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLFwiXCIpLGNpdHk6ci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLFwiXCIpLGxhdGl0dWRlOnIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0LDQsMCksbG9uZ2l0dWRlOnIuTWVzc2FnZS5nZXRGbG9hdGluZ1BvaW50RmllbGRXaXRoRGVmYXVsdCh0LDUsMCksY29udGluZW50OnIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNiwwKX07cmV0dXJuIGUmJihuLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLG59KSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24uZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHIuQmluYXJ5UmVhZGVyKGUpLG49bmV3IHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbjtyZXR1cm4gcHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihuLHQpfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXtzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIG49dC5yZWFkU3RyaW5nKCk7ZS5zZXRDb3VudHJ5KG4pO2JyZWFrO2Nhc2UgMjpuPXQucmVhZFN0cmluZygpO2Uuc2V0UmVnaW9uKG4pO2JyZWFrO2Nhc2UgMzpuPXQucmVhZFN0cmluZygpO2Uuc2V0Q2l0eShuKTticmVhaztjYXNlIDQ6bj10LnJlYWREb3VibGUoKTtlLnNldExhdGl0dWRlKG4pO2JyZWFrO2Nhc2UgNTpuPXQucmVhZERvdWJsZSgpO2Uuc2V0TG9uZ2l0dWRlKG4pO2JyZWFrO2Nhc2UgNjpuPXQucmVhZEludDMyKCk7ZS5zZXRDb250aW5lbnQobik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfX1yZXR1cm4gZX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgci5CaW5hcnlXcml0ZXI7cmV0dXJuIHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciBuPXZvaWQgMDsobj1lLmdldENvdW50cnkoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoMSxuKSwobj1lLmdldFJlZ2lvbigpKS5sZW5ndGg+MCYmdC53cml0ZVN0cmluZygyLG4pLChuPWUuZ2V0Q2l0eSgpKS5sZW5ndGg+MCYmdC53cml0ZVN0cmluZygzLG4pLDAhPT0obj1lLmdldExhdGl0dWRlKCkpJiZ0LndyaXRlRG91YmxlKDQsbiksMCE9PShuPWUuZ2V0TG9uZ2l0dWRlKCkpJiZ0LndyaXRlRG91YmxlKDUsbiksMCE9PShuPWUuZ2V0Q29udGluZW50KCkpJiZ0LndyaXRlSW50MzIoNixuKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLnByb3RvdHlwZS5nZXRDb3VudHJ5PWZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSxcIlwiKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLnByb3RvdHlwZS5zZXRDb3VudHJ5PWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywxLGUpfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24ucHJvdG90eXBlLmdldFJlZ2lvbj1mdW5jdGlvbigpe3JldHVybiByLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsXCJcIil9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi5wcm90b3R5cGUuc2V0UmVnaW9uPWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywyLGUpfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24ucHJvdG90eXBlLmdldENpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLFwiXCIpfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24ucHJvdG90eXBlLnNldENpdHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLDMsZSl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi5wcm90b3R5cGUuZ2V0TGF0aXR1ZGU9ZnVuY3Rpb24oKXtyZXR1cm4gci5NZXNzYWdlLmdldEZsb2F0aW5nUG9pbnRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLkxvY2F0aW9uLnByb3RvdHlwZS5zZXRMYXRpdHVkZT1mdW5jdGlvbihlKXtyZXR1cm4gci5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQodGhpcyw0LGUpfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24ucHJvdG90eXBlLmdldExvbmdpdHVkZT1mdW5jdGlvbigpe3JldHVybiByLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQodGhpcyw1LDApfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24ucHJvdG90eXBlLnNldExvbmdpdHVkZT1mdW5jdGlvbihlKXtyZXR1cm4gci5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQodGhpcyw1LGUpfSxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEuTG9jYXRpb24ucHJvdG90eXBlLmdldENvbnRpbmVudD1mdW5jdGlvbigpe3JldHVybiByLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDYsMCl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5Mb2NhdGlvbi5wcm90b3R5cGUuc2V0Q29udGluZW50PWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw2LGUpfSxyLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYocHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1AudG9PYmplY3QoZSx0aGlzKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciBuPXthc246ci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwxLDApfTtyZXR1cm4gZSYmKG4uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksbn0pLHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1AuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHIuQmluYXJ5UmVhZGVyKGUpLG49bmV3IHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1A7cmV0dXJuIHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1AuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG4sdCl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1AuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXtpZigxPT09dC5nZXRGaWVsZE51bWJlcigpKXt2YXIgbj10LnJlYWRVaW50MzIoKTtlLnNldEFzbihuKX1lbHNlIHQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1AucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyByLkJpbmFyeVdyaXRlcjtyZXR1cm4gcHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LHByb3RvLnNuYXAuY29uZmlnLmdlb2hlYWRlci52MS5JU1Auc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbjswIT09KG49ZS5nZXRBc24oKSkmJnQud3JpdGVVaW50MzIoMSxuKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUC5wcm90b3R5cGUuZ2V0QXNuPWZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwwKX0scHJvdG8uc25hcC5jb25maWcuZ2VvaGVhZGVyLnYxLklTUC5wcm90b3R5cGUuc2V0QXNuPWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxLGUpfSxpLm9iamVjdC5leHRlbmQodCxwcm90by5zbmFwLmNvbmZpZy5nZW9oZWFkZXIudjEpfSwxMjczMzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMDt2YXIgbj1bXCJtb3VzZWRvd25cIixcIm1vdXNlbW92ZVwiLFwia2V5ZG93blwiLFwic2Nyb2xsXCIsXCJ0b3VjaHN0YXJ0XCJdLHI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtuLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Lm9uQWN0aXZpdHksITApfSkpfSx0aGlzLm9uQWN0aXZpdHk9ZnVuY3Rpb24oKXt0Lmxhc3RBY3Rpdml0eVRpbWVzdGFtcD1EYXRlLm5vdygpfSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzPWZ1bmN0aW9uKCl7bi5mb3JFYWNoKChmdW5jdGlvbihlKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsdC5vbkFjdGl2aXR5LCEwKX0pKX0sdGhpcy5nZXRTZWNvbmRzU2luY2VMYXN0QWN0aXZpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yb3VuZCgoRGF0ZS5ub3coKS10Lmxhc3RBY3Rpdml0eVRpbWVzdGFtcCkvMWUzKX0sdGhpcy5nZXRJc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0LmdldFNlY29uZHNTaW5jZUxhc3RBY3Rpdml0eSgpPHQuaW5hY3RpdmVUaHJlc2hvbGRJblNlY29uZH0sdGhpcy5sYXN0QWN0aXZpdHlUaW1lc3RhbXA9RGF0ZS5ub3coKSx0aGlzLmluYWN0aXZlVGhyZXNob2xkSW5TZWNvbmQ9ZSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCl9O3QuZGVmYXVsdD1yfSw3Mzg3MTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9LGUodCxuKX07cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIG4mJm51bGwhPT1uKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiK1N0cmluZyhuKStcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9ZSh0LG4pLHQucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksaT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBpPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0saS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG89dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwLHQuV0VCX0FUVEVTVEFUSU9OX0hFQURFUj12b2lkIDA7dmFyIGE9big1OTYwMikscz1vKG4oODkyMjIpKTt0LldFQl9BVFRFU1RBVElPTl9IRUFERVI9XCJYLVNuYXBjaGF0LVdlYi1DbGllbnQtQXV0aFwiO3ZhciBjPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gbnVsbCE9PWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKG4sZSksbi5wcm90b3R5cGUuYXV0aFJlcXVlc3Q9ZnVuY3Rpb24oZSxuLHIpe3ZhciBvO3N3aXRjaChlKXtjYXNlIGEuQXV0aFR5cGUuTm9uZTpyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIpO2Nhc2UgYS5BdXRoVHlwZS5XZWJBdHRlc3RhdGlvbjp2YXIgYz1zLmRlZmF1bHQobik7cmV0dXJuIFByb21pc2UucmVzb2x2ZShpKGkoe30sciksKChvPXt9KVt0LldFQl9BVFRFU1RBVElPTl9IRUFERVJdPWMsbykpKTtkZWZhdWx0OnJldHVybiBQcm9taXNlLnJlamVjdChcIlVuc3VwcG9ydGVkIGF1dGggdHlwZTogXCIrZSl9fSxufShhLkF1dGhlbnRpY2F0b3IpO3QuZGVmYXVsdD1jfSw4OTIyMjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwO3ZhciBpPXIobig1MjU3KSksbz1uKDc2Mjc1KSxhPXIobig4Njc1KSk7dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChlLChmdW5jdGlvbihlKXtyZXR1cm4oXCIwXCIrZS50b1N0cmluZygxNikpLnNsaWNlKC0yKX0pKS5qb2luKFwiXCIpLG49YS5kZWZhdWx0Lmhhc2godCx7bXNnRm9ybWF0OlwiaGV4LWJ5dGVzXCJ9KStcIjpcIitEYXRlLm5vdygpO3JldHVybiBvLmlzSW5Ccm93c2VyKCk/YnRvYShuKTppLmRlZmF1bHQobil9fSw1NDU5MTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9LGUodCxuKX07cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIG4mJm51bGwhPT1uKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiK1N0cmluZyhuKStcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9ZSh0LG4pLHQucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksaT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBpPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0saS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG89dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwO3ZhciBhPW8obig3MDU5OSkpLHM9big1OTYwMiksYz1vKG4oNzExOTUpKSx1PW8obig4MzU3MCkpLGw9byhuKDQxNjQ3KSksZD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztpZighdC5wYXJ0aXRpb25OYW1lfHwhYS5kZWZhdWx0W3QucGFydGl0aW9uTmFtZS50b1VwcGVyQ2FzZSgpXSl0aHJvdyBuZXcgRXJyb3IoXCJQYXJ0aXRpb24gaXMgbm90IGRlZmluZWQhXCIpO3JldHVybiBuLnBhcnRpdGlvbk5hbWU9dC5wYXJ0aXRpb25OYW1lLG4uZmxhdm9yPXQuZmxhdm9yLG4udmFyaWFudD10LnZhcmlhbnQsbi52ZXJzaW9uTnVtYmVyPXQudmVyc2lvbk51bWJlcixuLm1heFNpemVQZXJNZXRyaWM9dC5tYXhTaXplUGVyTWV0cmljfHw1MCxuLmRlZmF1bHREaW1lbnNpb25zPXQuZGVmYXVsdERpbWVuc2lvbnMsbn1yZXR1cm4gcih0LGUpLHQucHJvdG90eXBlLmluY3JlbWVudD1mdW5jdGlvbihlKXt2YXIgdD1lLm1ldHJpY3NOYW1lLG49ZS5kaW1lbnNpb25zLHI9ZS52YWx1ZSxpPWMuZGVmYXVsdCh7bWV0cmljc05hbWU6dCxkaW1lbnNpb25zOm59KSxvPXRoaXMubWV0cmljcy5jb3VudGVyc1tpXTt0aGlzLm1ldHJpY3MuY291bnRlcnNbaV09dGhpcy51cGRhdGVNZXRyaWNPYmplY3Qoe3ByZXZNZXRyaWNPYmplY3Q6byxtZXRyaWNzTmFtZTp0LGRpbWVuc2lvbnM6dGhpcy5fZGVjb3JhdGVEaW1lbnNpb25zKG4pLHZhbHVlOnIsc2hvdWxkQWdncmVnYXRlOiEwfSl9LHQucHJvdG90eXBlLmFkZEhpc3RvZ3JhbT1mdW5jdGlvbihlKXt2YXIgdD1lLm1ldHJpY3NOYW1lLG49ZS5kaW1lbnNpb25zLHI9ZS52YWx1ZSxpPWMuZGVmYXVsdCh7bWV0cmljc05hbWU6dCxkaW1lbnNpb25zOm59KSxvPXRoaXMubWV0cmljcy5sZXZlbHNbaV07dGhpcy5tZXRyaWNzLmxldmVsc1tpXT10aGlzLnVwZGF0ZU1ldHJpY09iamVjdCh7cHJldk1ldHJpY09iamVjdDpvLG1ldHJpY3NOYW1lOnQsZGltZW5zaW9uczp0aGlzLl9kZWNvcmF0ZURpbWVuc2lvbnMobiksdmFsdWU6cixzaG91bGRBZ2dyZWdhdGU6ITF9KX0sdC5wcm90b3R5cGUuYWRkVGltZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tZXRyaWNzTmFtZSxuPWUuZGltZW5zaW9ucyxyPWUubWlsbGlTZWMsaT1jLmRlZmF1bHQoe21ldHJpY3NOYW1lOnQsZGltZW5zaW9uczpufSksbz10aGlzLm1ldHJpY3MudGltZXJzW2ldO3RoaXMubWV0cmljcy50aW1lcnNbaV09dGhpcy51cGRhdGVNZXRyaWNPYmplY3Qoe3ByZXZNZXRyaWNPYmplY3Q6byxtZXRyaWNzTmFtZTp0LGRpbWVuc2lvbnM6dGhpcy5fZGVjb3JhdGVEaW1lbnNpb25zKG4pLHZhbHVlOnIsc2hvdWxkQWdncmVnYXRlOiExfSl9LHQucHJvdG90eXBlLmdldFBheWxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnZlcnRUb01ldHJpY0ZyYW1lKHRoaXMubWV0cmljcyk7cmV0dXJuIGwuZGVmYXVsdC5NZXRyaWNGcmFtZS5lbmNvZGUoZSkuZmluaXNoKCl9LHQucHJvdG90eXBlLnVwZGF0ZU1ldHJpY09iamVjdD1mdW5jdGlvbihlKXt2YXIgdD1lLnByZXZNZXRyaWNPYmplY3Qsbj1lLm1ldHJpY3NOYW1lLHI9ZS5kaW1lbnNpb25zLGk9dm9pZCAwPT09cj97fTpyLG89ZS52YWx1ZSxhPWUuc2hvdWxkQWdncmVnYXRlLHM9dm9pZCAwIT09YSYmYSxjPXQ7aWYoY3x8KGM9bmV3IGwuZGVmYXVsdC5NZXRyaWMoe3BhcnRpdGlvbk5hbWU6dGhpcy5wYXJ0aXRpb25OYW1lLG1ldHJpY05hbWU6bixjdXN0b21EaW1lbnNpb25zOml9KSkscyl7dmFyIHU9Yy52YWx1ZXMsZD1vKyhOdW1iZXIodVswXSl8fDApO2MudmFsdWVzPVtkXX1lbHNlIGMudmFsdWVzLnB1c2gobyk7cmV0dXJuIGN9LHQucHJvdG90eXBlLmNvbnZlcnRUb01ldHJpY0ZyYW1lPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1uZXcgbC5kZWZhdWx0Lk1ldHJpY0ZyYW1lO2lmKG4uY2xpZW50T3NUeXBlPWwuZGVmYXVsdC5Pc1R5cGUuT1NfV0VCLHRoaXMuZmxhdm9yfHx0aGlzLnZhcmlhbnR8fHRoaXMudmVyc2lvbk51bWJlcil7dmFyIHI9bmV3IGwuZGVmYXVsdC5BcHBWZXJzaW9uO3RoaXMuZmxhdm9yJiYoci5mbGF2b3I9dGhpcy5mbGF2b3IpLHRoaXMudmFyaWFudCYmKHIudmFyaWFudD10aGlzLnZhcmlhbnQpLHRoaXMudmVyc2lvbk51bWJlciYmKHIudmVyc2lvbk51bWJlcj10aGlzLnZlcnNpb25OdW1iZXIpLG4uYXBwVmVyc2lvbj1yfXJldHVybiBPYmplY3Qua2V5cyhlLmNvdW50ZXJzKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1lLmNvdW50ZXJzW3RdO24uY291bnRlcnMucHVzaChyKX0pKSxPYmplY3Qua2V5cyhlLnRpbWVycykuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIGk9dC5zYW1wbGVNZXRyaWNWYWx1ZXMoZS50aW1lcnNbcl0pO24udGltZXJzLnB1c2goaSl9KSksT2JqZWN0LmtleXMoZS5sZXZlbHMpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBpPXQuc2FtcGxlTWV0cmljVmFsdWVzKGUubGV2ZWxzW3JdKTtuLmxldmVscy5wdXNoKGkpfSkpLG59LHQucHJvdG90eXBlLnNhbXBsZU1ldHJpY1ZhbHVlcz1mdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZXM9dS5kZWZhdWx0KGUudmFsdWVzLHRoaXMubWF4U2l6ZVBlck1ldHJpYyksZX0sdC5wcm90b3R5cGUuX2RlY29yYXRlRGltZW5zaW9ucz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kZWZhdWx0RGltZW5zaW9ucz9pKGkoe30sdGhpcy5kZWZhdWx0RGltZW5zaW9ucyksZXx8e30pOmV9LHR9KHMuTWV0cmljQ29sbGVjdG9yKTt0LmRlZmF1bHQ9ZH0sMjE3NTg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O3QuX19lc01vZHVsZT0hMCx0LmdldFdlYkNvbmZpZz12b2lkIDA7dmFyIGk9big1OTYwMiksbz1yKG4oNzM4NzEpKSxhPXIobig1NDU5MSkpO3QuZ2V0V2ViQ29uZmlnPWZ1bmN0aW9uKGUpe3JldHVybntwcm90b2NvbDpcImh0dHBzOlwiLGhvc3Q6XCJnY3AuYXBpLnNuYXBjaGF0LmNvbVwiLHBhdGg6XCIvd2ViL21ldHJpY3NcIixoZWFkZXJzOntcIkNvbnRlbnQtVHlwZVwiOlwiYXBwbGljYXRpb24veC1wcm90b2J1ZlwifSxhdXRoVHlwZTppLkF1dGhUeXBlLldlYkF0dGVzdGF0aW9uLGF1dGhlbnRpY2F0b3I6bmV3IG8uZGVmYXVsdCxjb2xsZWN0b3I6bmV3IGEuZGVmYXVsdChlKX19LHQuZGVmYXVsdD10LmdldFdlYkNvbmZpZ30sNjI2MDQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19leHRlbmRzfHxmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBuJiZudWxsIT09bil0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIitTdHJpbmcobikrXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWUodCxuKSx0LnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLGk9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwLHQuR3JhcGhlbmU9dC5ERUZBVUxUX0lOQUNUSVZFX1RIUkVTSE9MRD12b2lkIDA7dmFyIG89big1OTYwMiksYT1uKDc2Mjc1KSxzPWkobigxMjczMykpO3QuREVGQVVMVF9JTkFDVElWRV9USFJFU0hPTEQ9NjA7dmFyIGM9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbigpe3ZhciB0PW51bGwhPT1lJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gdC5zZW5kSGVhcnRCZWF0Q291bnRlcj1mdW5jdGlvbihlKXtpZih0LmlzSW5pdGlhbGl6ZWQpe3ZhciBuPWZ1bmN0aW9uKCl7dmFyIG4scj0obnVsbD09PShuPXQuYWN0aXZpdHlEZXRlY3Rvcil8fHZvaWQgMD09PW4/dm9pZCAwOm4uZ2V0SXNBY3RpdmUoKSk/XCJhY3RpdmVcIjpcImluYWN0aXZlXCI7dC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOlwiaGVhcnRfYmVhdFwiLGRpbWVuc2lvbnM6e3ZlcnNpb246ZSxhY3RpdmU6cn19KX07bigpLHQuaGVhcnRCZWF0SWQ9c2V0SW50ZXJ2YWwobiw2ZTQpfX0sdH1yZXR1cm4gcihuLGUpLG4ucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24obil7aWYodGhpcy5pc0luaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcihcInRoaXMgaW5zdGFuY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuIENhbid0IHJlLWluaXRpYWxpemUgaXQuXCIpO2UucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLG4pO3ZhciByPW4uaW5hY3RpdmVUaHJlc2hvbGRJblNlY29uZCxpPXZvaWQgMD09PXI/dC5ERUZBVUxUX0lOQUNUSVZFX1RIUkVTSE9MRDpyO2EuaXNJbldpbmRvdygpJiYodGhpcy5hY3Rpdml0eURldGVjdG9yPW5ldyBzLmRlZmF1bHQoaSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIix0aGlzLmZsdXNoKSl9LG4ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksYS5pc0luV2luZG93KCkmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsdGhpcy5mbHVzaCksdGhpcy5hY3Rpdml0eURldGVjdG9yJiZ0aGlzLmFjdGl2aXR5RGV0ZWN0b3IuZGVzdHJveSgpfSxufShvLkJhc2VDbGllbnQpO3QuR3JhcGhlbmU9Yzt2YXIgdT1uZXcgYzt0LmRlZmF1bHQ9dX0sNDQ4NTg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxpPXRoaXMmJnRoaXMuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX06ZnVuY3Rpb24oZSx0KXtlLmRlZmF1bHQ9dH0pLG89dGhpcyYmdGhpcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiIT09biYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJnIodCxlLG4pO3JldHVybiBpKHQsZSksdH0sYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIj09PW58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfHxyKHQsZSxuKX07dC5fX2VzTW9kdWxlPSEwLHQuR3JhcGhlbmU9dC5ncmFwaGVuZT10LlBBUlRJVElPTj12b2lkIDA7dmFyIHM9byhuKDYyNjA0KSk7dC5ncmFwaGVuZT1zLmRlZmF1bHQsdC5HcmFwaGVuZT1zLkdyYXBoZW5lO3ZhciBjPW4oNzA1OTkpO3IodCxjLFwiUEFSVElUSU9OXCIpLGEobig1OTYwMiksdCksdC5kZWZhdWx0PXMuZGVmYXVsdH0sMjc5ODY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KTt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PXQuQnJvd3Nlck5ldHdvcmtIYW5kbGVyPXZvaWQgMDt2YXIgaT1uKDcxNjE3KTtyKHQsaSxcIkJyb3dzZXJOZXR3b3JrSGFuZGxlclwiKSxyKHQsaSxcImRlZmF1bHRcIil9LDcwNTk5OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG47dC5fX2VzTW9kdWxlPSEwLHQuUEFSVElUSU9OPXZvaWQgMCxmdW5jdGlvbihlKXtlLlVOREVGSU5FRD1cInVuZGVmaW5lZFwiLGUuQURTX01BTkFHRVI9XCJhZHNfbWFuYWdlclwiLGUuQlVTSU5FU1NfTUFOQUdFUj1cImJ1c2luZXNzX21hbmFnZXJcIixlLlBST0ZJTEVfTUFOQUdFUj1cInByb2ZpbGVfbWFuYWdlclwiLGUuUkVWSUVXX1RPT0w9XCJyZXZpZXdfdG9vbFwiLGUuU05BUF9NQVBTPVwic25hcF9tYXBzXCIsZS5GT1JfQlVTSU5FU1M9XCJmb3JfYnVzaW5lc3NcIixlLkFERk9STUFUU19XRUI9XCJhZGZvcm1hdHNfd2ViXCIsZS5ESVNDT1ZFUl9DTVM9XCJkaXNjb3Zlcl9jbXNcIixlLlNOQVBfV0VCPVwic25hcF93ZWJcIixlLk5FV1NST09NPVwibmV3c3Jvb21cIixlLllFTExPV19MQT1cInllbGxvd19sYVwiLGUuQ0lUSVpFTl9TTkFQPVwiY2l0aXplbl9zbmFwXCIsZS5TTkFQX0ZPVU5EQVRJT049XCJzbmFwX2ZvdW5kYXRpb25cIixlLkVOR19CTE9HPVwiZW5nX2Jsb2dcIixlLlJFU0VBUkNIX1NOQVA9XCJyZXNlYXJjaF9zbmFwXCIsZS5NWV9MRU5TRVM9XCJteV9sZW5zZXNcIixlLlBMQVlDQU5WQVM9XCJwbGF5Y2FudmFzXCIsZS5NRUFTVVJFTUVOVF9QT1JUQUw9XCJtZWFzdXJlbWVudF9wb3J0YWxcIixlLlNBRkVUWT1cInNhZmV0eVwiLGUuQ0hFRVJJT1M9XCJjaGVlcmlvc1wiLGUuU1BTPVwic3BzXCIsZS5BUl9TTkFQPVwiYXJfc25hcFwiLGUuREVWRUxPUEVSX1NOQVA9XCJkZXZlbG9wZXJfc25hcFwiLGUuREFOREVMSU9OPVwiZGFuZGVsaW9uXCIsZS5DUkVBVE9SU19TTkFQPVwiY3JlYXRvcnNfc25hcFwiLGUuRElWRVJTSVRZPVwiZGl2ZXJzaXR5XCIsZS5TTkFQQ0hBVF9XRUI9XCJzbmFwY2hhdF93ZWJcIixlLkVNQkVEREVEX1dFQlZJRVdfQURTPVwiZW1iZWRkZWRfd2Vidmlld19hZHNcIixlLk1FVFJJQ1NfTU9OSVRPUj1cIm1ldHJpY3NfbW9uaXRvclwiLGUuU05BUEdSQVBIPVwic25hcGdyYXBoXCIsZS5NRUFTVVJFTUVOVF9SRVNPTkFOQ0VfU1VSVkVZPVwibWVhc3VyZW1lbnRfcmVzb25hbmNlX3N1cnZleVwiLGUuTUVBU1VSRU1FTlRfTVJfU1VSVkVZPVwibWVhc3VyZW1lbnRfbXJfc3VydmV5XCIsZS5NRUFTVVJFTUVOVF9DT0xMRUNUSU9OX1NVUlZFWT1cIm1lYXN1cmVtZW50X2NvbGxlY3Rpb25fc3VydmV5XCIsZS5TVE9SWV9TVFVESU9fTElURT1cInN0b3J5X3N0dWRpb19saXRlXCIsZS5XRUJfU0VMRl9TRVJWRV9BRFM9XCJ3ZWJfc2VsZl9zZXJ2ZV9hZHNcIixlLkFSQ0FESUE9XCJhcmNhZGlhXCIsZS5TTkFQXzUyMz1cInNuYXBfNTIzXCIsZS5PUklHSU5BTFM9XCJvcmlnaW5hbHNcIixlLkxFT19XRUI9XCJsZW9fd2ViXCIsZS5EV0VCPVwiZHdlYlwiLGUuU0NOX0NPTlRFTlRfTUFOQUdFUj1cInNjbl9jb250ZW50X21hbmFnZXJcIixlLkFEVkVSVElTRVJfMzYwPVwiYWR2ZXJ0aXNlcl8zNjBcIixlLkNBUkVFUlM9XCJjYXJlZXJzXCIsZS5QUklWQUNZX0lORlJBPVwicHJpdmFjeV9pbmZyYVwiLGUuQkxJWlpBUkQ9XCJibGl6emFyZFwiLGUuQ09PS0lFX01PREFMX0NPTVBPTkVOVFM9XCJjb29raWVfbW9kYWxfY29tcG9uZW50c1wiLGUuQ09OVEVOVF9UT09MUz1cImNvbnRlbnRfdG9vbHNcIixlLldFQl9BQ0NPVU5UUz1cIndlYl9hY2NvdW50c1wiLGUuTUFSS0VUSU5HX1dFQl9QTEFURk9STT1cIm1hcmtldGluZ193ZWJfcGxhdGZvcm1cIixlLkFSRVNfU0RLPVwiYXJlc19zZGtcIixlLlNOQVBfT1JDQT1cInNuYXBfb3JjYVwifShuPXQuUEFSVElUSU9OfHwodC5QQVJUSVRJT049e30pKSx0LmRlZmF1bHQ9bn0sNDE2NDc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNjIxMDApLGk9ci5Xcml0ZXIsbz1yLnV0aWwsYT1yLnJvb3RzLmRlZmF1bHR8fChyLnJvb3RzLmRlZmF1bHQ9e30pO2EuT3NUeXBlPWZ1bmN0aW9uKCl7dmFyIGU9e30sdD1PYmplY3QuY3JlYXRlKGUpO3JldHVybiB0W2VbMF09XCJVTktOT1dOX09TX1RZUEVcIl09MCx0W2VbMV09XCJPU19JT1NcIl09MSx0W2VbMl09XCJPU19BTkRST0lEXCJdPTIsdFtlWzNdPVwiT1NfV0VCXCJdPTMsdH0oKSxhLkFwcFZlcnNpb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2lmKGUpZm9yKHZhciB0PU9iamVjdC5rZXlzKGUpLG49MDtuPHQubGVuZ3RoOysrbiludWxsIT1lW3Rbbl1dJiYodGhpc1t0W25dXT1lW3Rbbl1dKX1yZXR1cm4gZS5wcm90b3R5cGUudmVyc2lvbk51bWJlcj1udWxsLGUucHJvdG90eXBlLmZsYXZvcj1cIlwiLGUucHJvdG90eXBlLnZhcmlhbnQ9XCJcIixlLmVuY29kZT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHwodD1pLmNyZWF0ZSgpKSxudWxsIT1lLnZlcnNpb25OdW1iZXImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJ2ZXJzaW9uTnVtYmVyXCIpJiZhLkFwcFZlcnNpb24uVmVyc2lvbk51bWJlci5lbmNvZGUoZS52ZXJzaW9uTnVtYmVyLHQudWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG51bGwhPWUuZmxhdm9yJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZmxhdm9yXCIpJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZmxhdm9yKSxudWxsIT1lLnZhcmlhbnQmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJ2YXJpYW50XCIpJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUudmFyaWFudCksdH0sZS5mcm9tT2JqZWN0PWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBhLkFwcFZlcnNpb24pcmV0dXJuIGU7dmFyIHQ9bmV3IGEuQXBwVmVyc2lvbjtpZihudWxsIT1lLnZlcnNpb25OdW1iZXIpe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgZS52ZXJzaW9uTnVtYmVyKXRocm93IFR5cGVFcnJvcihcIi5BcHBWZXJzaW9uLnZlcnNpb25OdW1iZXI6IG9iamVjdCBleHBlY3RlZFwiKTt0LnZlcnNpb25OdW1iZXI9YS5BcHBWZXJzaW9uLlZlcnNpb25OdW1iZXIuZnJvbU9iamVjdChlLnZlcnNpb25OdW1iZXIpfXJldHVybiBudWxsIT1lLmZsYXZvciYmKHQuZmxhdm9yPVN0cmluZyhlLmZsYXZvcikpLG51bGwhPWUudmFyaWFudCYmKHQudmFyaWFudD1TdHJpbmcoZS52YXJpYW50KSksdH0sZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3R8fCh0PXt9KTt2YXIgbj17fTtyZXR1cm4gdC5kZWZhdWx0cyYmKG4udmVyc2lvbk51bWJlcj1udWxsLG4uZmxhdm9yPVwiXCIsbi52YXJpYW50PVwiXCIpLG51bGwhPWUudmVyc2lvbk51bWJlciYmZS5oYXNPd25Qcm9wZXJ0eShcInZlcnNpb25OdW1iZXJcIikmJihuLnZlcnNpb25OdW1iZXI9YS5BcHBWZXJzaW9uLlZlcnNpb25OdW1iZXIudG9PYmplY3QoZS52ZXJzaW9uTnVtYmVyLHQpKSxudWxsIT1lLmZsYXZvciYmZS5oYXNPd25Qcm9wZXJ0eShcImZsYXZvclwiKSYmKG4uZmxhdm9yPWUuZmxhdm9yKSxudWxsIT1lLnZhcmlhbnQmJmUuaGFzT3duUHJvcGVydHkoXCJ2YXJpYW50XCIpJiYobi52YXJpYW50PWUudmFyaWFudCksbn0sZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IudG9PYmplY3QodGhpcyxyLnV0aWwudG9KU09OT3B0aW9ucyl9LGUuVmVyc2lvbk51bWJlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7aWYoZSlmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7KytuKW51bGwhPWVbdFtuXV0mJih0aGlzW3Rbbl1dPWVbdFtuXV0pfXJldHVybiBlLnByb3RvdHlwZS5tYWpvcj0wLGUucHJvdG90eXBlLm1pbm9yPTAsZS5wcm90b3R5cGUucGF0Y2g9MCxlLnByb3RvdHlwZS5idWlsZD0wLGUuZW5jb2RlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fCh0PWkuY3JlYXRlKCkpLG51bGwhPWUubWFqb3ImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJtYWpvclwiKSYmdC51aW50MzIoOCkuaW50MzIoZS5tYWpvciksbnVsbCE9ZS5taW5vciYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcIm1pbm9yXCIpJiZ0LnVpbnQzMigxNikuaW50MzIoZS5taW5vciksbnVsbCE9ZS5wYXRjaCYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcInBhdGNoXCIpJiZ0LnVpbnQzMigyNCkuaW50MzIoZS5wYXRjaCksbnVsbCE9ZS5idWlsZCYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcImJ1aWxkXCIpJiZ0LnVpbnQzMigzMikuaW50MzIoZS5idWlsZCksdH0sZS5mcm9tT2JqZWN0PWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBhLkFwcFZlcnNpb24uVmVyc2lvbk51bWJlcilyZXR1cm4gZTt2YXIgdD1uZXcgYS5BcHBWZXJzaW9uLlZlcnNpb25OdW1iZXI7cmV0dXJuIG51bGwhPWUubWFqb3ImJih0Lm1ham9yPTB8ZS5tYWpvciksbnVsbCE9ZS5taW5vciYmKHQubWlub3I9MHxlLm1pbm9yKSxudWxsIT1lLnBhdGNoJiYodC5wYXRjaD0wfGUucGF0Y2gpLG51bGwhPWUuYnVpbGQmJih0LmJ1aWxkPTB8ZS5idWlsZCksdH0sZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3R8fCh0PXt9KTt2YXIgbj17fTtyZXR1cm4gdC5kZWZhdWx0cyYmKG4ubWFqb3I9MCxuLm1pbm9yPTAsbi5wYXRjaD0wLG4uYnVpbGQ9MCksbnVsbCE9ZS5tYWpvciYmZS5oYXNPd25Qcm9wZXJ0eShcIm1ham9yXCIpJiYobi5tYWpvcj1lLm1ham9yKSxudWxsIT1lLm1pbm9yJiZlLmhhc093blByb3BlcnR5KFwibWlub3JcIikmJihuLm1pbm9yPWUubWlub3IpLG51bGwhPWUucGF0Y2gmJmUuaGFzT3duUHJvcGVydHkoXCJwYXRjaFwiKSYmKG4ucGF0Y2g9ZS5wYXRjaCksbnVsbCE9ZS5idWlsZCYmZS5oYXNPd25Qcm9wZXJ0eShcImJ1aWxkXCIpJiYobi5idWlsZD1lLmJ1aWxkKSxufSxlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci50b09iamVjdCh0aGlzLHIudXRpbC50b0pTT05PcHRpb25zKX0sZX0oKSxlfSgpLGEuTWV0cmljPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXtpZih0aGlzLmN1c3RvbURpbWVuc2lvbnM9e30sdGhpcy52YWx1ZXM9W10sZSlmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7KytuKW51bGwhPWVbdFtuXV0mJih0aGlzW3Rbbl1dPWVbdFtuXV0pfXJldHVybiBlLnByb3RvdHlwZS5wYXJ0aXRpb25OYW1lPVwiXCIsZS5wcm90b3R5cGUubWV0cmljTmFtZT1cIlwiLGUucHJvdG90eXBlLmN1c3RvbURpbWVuc2lvbnM9by5lbXB0eU9iamVjdCxlLnByb3RvdHlwZS52YWx1ZXM9by5lbXB0eUFycmF5LGUuZW5jb2RlPWZ1bmN0aW9uKGUsdCl7aWYodHx8KHQ9aS5jcmVhdGUoKSksbnVsbCE9ZS5wYXJ0aXRpb25OYW1lJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwicGFydGl0aW9uTmFtZVwiKSYmdC51aW50MzIoMTApLnN0cmluZyhlLnBhcnRpdGlvbk5hbWUpLG51bGwhPWUubWV0cmljTmFtZSYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcIm1ldHJpY05hbWVcIikmJnQudWludDMyKDE4KS5zdHJpbmcoZS5tZXRyaWNOYW1lKSxudWxsIT1lLmN1c3RvbURpbWVuc2lvbnMmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJjdXN0b21EaW1lbnNpb25zXCIpKWZvcih2YXIgbj1PYmplY3Qua2V5cyhlLmN1c3RvbURpbWVuc2lvbnMpLHI9MDtyPG4ubGVuZ3RoOysrcil0LnVpbnQzMigyNikuZm9yaygpLnVpbnQzMigxMCkuc3RyaW5nKG5bcl0pLnVpbnQzMigxOCkuc3RyaW5nKGUuY3VzdG9tRGltZW5zaW9uc1tuW3JdXSkubGRlbGltKCk7aWYobnVsbCE9ZS52YWx1ZXMmJmUudmFsdWVzLmxlbmd0aCl7dC51aW50MzIoMzQpLmZvcmsoKTtmb3Iocj0wO3I8ZS52YWx1ZXMubGVuZ3RoOysrcil0LmludDY0KGUudmFsdWVzW3JdKTt0LmxkZWxpbSgpfXJldHVybiB0fSxlLmZyb21PYmplY3Q9ZnVuY3Rpb24oZSl7aWYoZSBpbnN0YW5jZW9mIGEuTWV0cmljKXJldHVybiBlO3ZhciB0PW5ldyBhLk1ldHJpYztpZihudWxsIT1lLnBhcnRpdGlvbk5hbWUmJih0LnBhcnRpdGlvbk5hbWU9U3RyaW5nKGUucGFydGl0aW9uTmFtZSkpLG51bGwhPWUubWV0cmljTmFtZSYmKHQubWV0cmljTmFtZT1TdHJpbmcoZS5tZXRyaWNOYW1lKSksZS5jdXN0b21EaW1lbnNpb25zKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUuY3VzdG9tRGltZW5zaW9ucyl0aHJvdyBUeXBlRXJyb3IoXCIuTWV0cmljLmN1c3RvbURpbWVuc2lvbnM6IG9iamVjdCBleHBlY3RlZFwiKTt0LmN1c3RvbURpbWVuc2lvbnM9e307Zm9yKHZhciBuPU9iamVjdC5rZXlzKGUuY3VzdG9tRGltZW5zaW9ucykscj0wO3I8bi5sZW5ndGg7KytyKXQuY3VzdG9tRGltZW5zaW9uc1tuW3JdXT1TdHJpbmcoZS5jdXN0b21EaW1lbnNpb25zW25bcl1dKX1pZihlLnZhbHVlcyl7aWYoIUFycmF5LmlzQXJyYXkoZS52YWx1ZXMpKXRocm93IFR5cGVFcnJvcihcIi5NZXRyaWMudmFsdWVzOiBhcnJheSBleHBlY3RlZFwiKTt0LnZhbHVlcz1bXTtmb3Iocj0wO3I8ZS52YWx1ZXMubGVuZ3RoOysrcilvLkxvbmc/KHQudmFsdWVzW3JdPW8uTG9uZy5mcm9tVmFsdWUoZS52YWx1ZXNbcl0pKS51bnNpZ25lZD0hMTpcInN0cmluZ1wiPT09dHlwZW9mIGUudmFsdWVzW3JdP3QudmFsdWVzW3JdPXBhcnNlSW50KGUudmFsdWVzW3JdLDEwKTpcIm51bWJlclwiPT09dHlwZW9mIGUudmFsdWVzW3JdP3QudmFsdWVzW3JdPWUudmFsdWVzW3JdOlwib2JqZWN0XCI9PT10eXBlb2YgZS52YWx1ZXNbcl0mJih0LnZhbHVlc1tyXT1uZXcgby5Mb25nQml0cyhlLnZhbHVlc1tyXS5sb3c+Pj4wLGUudmFsdWVzW3JdLmhpZ2g+Pj4wKS50b051bWJlcigpKX1yZXR1cm4gdH0sZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3R8fCh0PXt9KTt2YXIgbixyPXt9O2lmKCh0LmFycmF5c3x8dC5kZWZhdWx0cykmJihyLnZhbHVlcz1bXSksKHQub2JqZWN0c3x8dC5kZWZhdWx0cykmJihyLmN1c3RvbURpbWVuc2lvbnM9e30pLHQuZGVmYXVsdHMmJihyLnBhcnRpdGlvbk5hbWU9XCJcIixyLm1ldHJpY05hbWU9XCJcIiksbnVsbCE9ZS5wYXJ0aXRpb25OYW1lJiZlLmhhc093blByb3BlcnR5KFwicGFydGl0aW9uTmFtZVwiKSYmKHIucGFydGl0aW9uTmFtZT1lLnBhcnRpdGlvbk5hbWUpLG51bGwhPWUubWV0cmljTmFtZSYmZS5oYXNPd25Qcm9wZXJ0eShcIm1ldHJpY05hbWVcIikmJihyLm1ldHJpY05hbWU9ZS5tZXRyaWNOYW1lKSxlLmN1c3RvbURpbWVuc2lvbnMmJihuPU9iamVjdC5rZXlzKGUuY3VzdG9tRGltZW5zaW9ucykpLmxlbmd0aCl7ci5jdXN0b21EaW1lbnNpb25zPXt9O2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7KytpKXIuY3VzdG9tRGltZW5zaW9uc1tuW2ldXT1lLmN1c3RvbURpbWVuc2lvbnNbbltpXV19aWYoZS52YWx1ZXMmJmUudmFsdWVzLmxlbmd0aCl7ci52YWx1ZXM9W107Zm9yKGk9MDtpPGUudmFsdWVzLmxlbmd0aDsrK2kpXCJudW1iZXJcIj09PXR5cGVvZiBlLnZhbHVlc1tpXT9yLnZhbHVlc1tpXT10LmxvbmdzPT09U3RyaW5nP1N0cmluZyhlLnZhbHVlc1tpXSk6ZS52YWx1ZXNbaV06ci52YWx1ZXNbaV09dC5sb25ncz09PVN0cmluZz9vLkxvbmcucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZS52YWx1ZXNbaV0pOnQubG9uZ3M9PT1OdW1iZXI/bmV3IG8uTG9uZ0JpdHMoZS52YWx1ZXNbaV0ubG93Pj4+MCxlLnZhbHVlc1tpXS5oaWdoPj4+MCkudG9OdW1iZXIoKTplLnZhbHVlc1tpXX1yZXR1cm4gcn0sZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IudG9PYmplY3QodGhpcyxyLnV0aWwudG9KU09OT3B0aW9ucyl9LGV9KCksYS5NZXRyaWNGcmFtZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7aWYodGhpcy50aW1lcnM9W10sdGhpcy5jb3VudGVycz1bXSx0aGlzLmxldmVscz1bXSxlKWZvcih2YXIgdD1PYmplY3Qua2V5cyhlKSxuPTA7bjx0Lmxlbmd0aDsrK24pbnVsbCE9ZVt0W25dXSYmKHRoaXNbdFtuXV09ZVt0W25dXSl9cmV0dXJuIGUucHJvdG90eXBlLnRpbWVycz1vLmVtcHR5QXJyYXksZS5wcm90b3R5cGUuY291bnRlcnM9by5lbXB0eUFycmF5LGUucHJvdG90eXBlLmxldmVscz1vLmVtcHR5QXJyYXksZS5wcm90b3R5cGUucHJvdG9jb2xWZXJzaW9uPTAsZS5wcm90b3R5cGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9by5Mb25nP28uTG9uZy5mcm9tQml0cygwLDAsITApOjAsZS5wcm90b3R5cGUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzPW8uTG9uZz9vLkxvbmcuZnJvbUJpdHMoMCwwLCEwKTowLGUucHJvdG90eXBlLmFwcFZlcnNpb249bnVsbCxlLnByb3RvdHlwZS5jbGllbnRPc1R5cGU9MCxlLnByb3RvdHlwZS51c2VySWQ9XCJcIixlLmVuY29kZT1mdW5jdGlvbihlLHQpe2lmKHR8fCh0PWkuY3JlYXRlKCkpLG51bGwhPWUudGltZXJzJiZlLnRpbWVycy5sZW5ndGgpZm9yKHZhciBuPTA7bjxlLnRpbWVycy5sZW5ndGg7KytuKWEuTWV0cmljLmVuY29kZShlLnRpbWVyc1tuXSx0LnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKTtpZihudWxsIT1lLmNvdW50ZXJzJiZlLmNvdW50ZXJzLmxlbmd0aClmb3Iobj0wO248ZS5jb3VudGVycy5sZW5ndGg7KytuKWEuTWV0cmljLmVuY29kZShlLmNvdW50ZXJzW25dLHQudWludDMyKDE4KS5mb3JrKCkpLmxkZWxpbSgpO2lmKG51bGwhPWUubGV2ZWxzJiZlLmxldmVscy5sZW5ndGgpZm9yKG49MDtuPGUubGV2ZWxzLmxlbmd0aDsrK24pYS5NZXRyaWMuZW5jb2RlKGUubGV2ZWxzW25dLHQudWludDMyKDI2KS5mb3JrKCkpLmxkZWxpbSgpO3JldHVybiBudWxsIT1lLnByb3RvY29sVmVyc2lvbiYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcInByb3RvY29sVmVyc2lvblwiKSYmdC51aW50MzIoMzIpLnVpbnQzMihlLnByb3RvY29sVmVyc2lvbiksbnVsbCE9ZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcyYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcImJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzXCIpJiZ0LnVpbnQzMig0MCkudWludDY0KGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMpLG51bGwhPWUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzXCIpJiZ0LnVpbnQzMig0OCkudWludDY0KGUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzKSxudWxsIT1lLmFwcFZlcnNpb24mJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJhcHBWZXJzaW9uXCIpJiZhLkFwcFZlcnNpb24uZW5jb2RlKGUuYXBwVmVyc2lvbix0LnVpbnQzMig1OCkuZm9yaygpKS5sZGVsaW0oKSxudWxsIT1lLmNsaWVudE9zVHlwZSYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcImNsaWVudE9zVHlwZVwiKSYmdC51aW50MzIoNjQpLmludDMyKGUuY2xpZW50T3NUeXBlKSxudWxsIT1lLnVzZXJJZCYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcInVzZXJJZFwiKSYmdC51aW50MzIoNzQpLnN0cmluZyhlLnVzZXJJZCksdH0sZS5mcm9tT2JqZWN0PWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBhLk1ldHJpY0ZyYW1lKXJldHVybiBlO3ZhciB0PW5ldyBhLk1ldHJpY0ZyYW1lO2lmKGUudGltZXJzKXtpZighQXJyYXkuaXNBcnJheShlLnRpbWVycykpdGhyb3cgVHlwZUVycm9yKFwiLk1ldHJpY0ZyYW1lLnRpbWVyczogYXJyYXkgZXhwZWN0ZWRcIik7dC50aW1lcnM9W107Zm9yKHZhciBuPTA7bjxlLnRpbWVycy5sZW5ndGg7KytuKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUudGltZXJzW25dKXRocm93IFR5cGVFcnJvcihcIi5NZXRyaWNGcmFtZS50aW1lcnM6IG9iamVjdCBleHBlY3RlZFwiKTt0LnRpbWVyc1tuXT1hLk1ldHJpYy5mcm9tT2JqZWN0KGUudGltZXJzW25dKX19aWYoZS5jb3VudGVycyl7aWYoIUFycmF5LmlzQXJyYXkoZS5jb3VudGVycykpdGhyb3cgVHlwZUVycm9yKFwiLk1ldHJpY0ZyYW1lLmNvdW50ZXJzOiBhcnJheSBleHBlY3RlZFwiKTt0LmNvdW50ZXJzPVtdO2ZvcihuPTA7bjxlLmNvdW50ZXJzLmxlbmd0aDsrK24pe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgZS5jb3VudGVyc1tuXSl0aHJvdyBUeXBlRXJyb3IoXCIuTWV0cmljRnJhbWUuY291bnRlcnM6IG9iamVjdCBleHBlY3RlZFwiKTt0LmNvdW50ZXJzW25dPWEuTWV0cmljLmZyb21PYmplY3QoZS5jb3VudGVyc1tuXSl9fWlmKGUubGV2ZWxzKXtpZighQXJyYXkuaXNBcnJheShlLmxldmVscykpdGhyb3cgVHlwZUVycm9yKFwiLk1ldHJpY0ZyYW1lLmxldmVsczogYXJyYXkgZXhwZWN0ZWRcIik7dC5sZXZlbHM9W107Zm9yKG49MDtuPGUubGV2ZWxzLmxlbmd0aDsrK24pe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgZS5sZXZlbHNbbl0pdGhyb3cgVHlwZUVycm9yKFwiLk1ldHJpY0ZyYW1lLmxldmVsczogb2JqZWN0IGV4cGVjdGVkXCIpO3QubGV2ZWxzW25dPWEuTWV0cmljLmZyb21PYmplY3QoZS5sZXZlbHNbbl0pfX1pZihudWxsIT1lLnByb3RvY29sVmVyc2lvbiYmKHQucHJvdG9jb2xWZXJzaW9uPWUucHJvdG9jb2xWZXJzaW9uPj4+MCksbnVsbCE9ZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcyYmKG8uTG9uZz8odC5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcz1vLkxvbmcuZnJvbVZhbHVlKGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMpKS51bnNpZ25lZD0hMDpcInN0cmluZ1wiPT09dHlwZW9mIGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM/dC5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcz1wYXJzZUludChlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzLDEwKTpcIm51bWJlclwiPT09dHlwZW9mIGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM/dC5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcz1lLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzOlwib2JqZWN0XCI9PT10eXBlb2YgZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcyYmKHQuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9bmV3IG8uTG9uZ0JpdHMoZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcy5sb3c+Pj4wLGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMuaGlnaD4+PjApLnRvTnVtYmVyKCEwKSkpLG51bGwhPWUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzJiYoby5Mb25nPyh0LmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz1vLkxvbmcuZnJvbVZhbHVlKGUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzKSkudW5zaWduZWQ9ITA6XCJzdHJpbmdcIj09PXR5cGVvZiBlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz90LmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz1wYXJzZUludChlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcywxMCk6XCJudW1iZXJcIj09PXR5cGVvZiBlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz90LmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz1lLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpczpcIm9iamVjdFwiPT09dHlwZW9mIGUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzJiYodC5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9bmV3IG8uTG9uZ0JpdHMoZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXMubG93Pj4+MCxlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcy5oaWdoPj4+MCkudG9OdW1iZXIoITApKSksbnVsbCE9ZS5hcHBWZXJzaW9uKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUuYXBwVmVyc2lvbil0aHJvdyBUeXBlRXJyb3IoXCIuTWV0cmljRnJhbWUuYXBwVmVyc2lvbjogb2JqZWN0IGV4cGVjdGVkXCIpO3QuYXBwVmVyc2lvbj1hLkFwcFZlcnNpb24uZnJvbU9iamVjdChlLmFwcFZlcnNpb24pfXN3aXRjaChlLmNsaWVudE9zVHlwZSl7Y2FzZVwiVU5LTk9XTl9PU19UWVBFXCI6Y2FzZSAwOnQuY2xpZW50T3NUeXBlPTA7YnJlYWs7Y2FzZVwiT1NfSU9TXCI6Y2FzZSAxOnQuY2xpZW50T3NUeXBlPTE7YnJlYWs7Y2FzZVwiT1NfQU5EUk9JRFwiOmNhc2UgMjp0LmNsaWVudE9zVHlwZT0yO2JyZWFrO2Nhc2VcIk9TX1dFQlwiOmNhc2UgMzp0LmNsaWVudE9zVHlwZT0zfXJldHVybiBudWxsIT1lLnVzZXJJZCYmKHQudXNlcklkPVN0cmluZyhlLnVzZXJJZCkpLHR9LGUudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt0fHwodD17fSk7dmFyIG49e307aWYoKHQuYXJyYXlzfHx0LmRlZmF1bHRzKSYmKG4udGltZXJzPVtdLG4uY291bnRlcnM9W10sbi5sZXZlbHM9W10pLHQuZGVmYXVsdHMpe2lmKG4ucHJvdG9jb2xWZXJzaW9uPTAsby5Mb25nKXt2YXIgcj1uZXcgby5Mb25nKDAsMCwhMCk7bi5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcz10LmxvbmdzPT09U3RyaW5nP3IudG9TdHJpbmcoKTp0LmxvbmdzPT09TnVtYmVyP3IudG9OdW1iZXIoKTpyfWVsc2Ugbi5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcz10LmxvbmdzPT09U3RyaW5nP1wiMFwiOjA7aWYoby5Mb25nKXtyPW5ldyBvLkxvbmcoMCwwLCEwKTtuLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz10LmxvbmdzPT09U3RyaW5nP3IudG9TdHJpbmcoKTp0LmxvbmdzPT09TnVtYmVyP3IudG9OdW1iZXIoKTpyfWVsc2Ugbi5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9cIjBcIjowO24uYXBwVmVyc2lvbj1udWxsLG4uY2xpZW50T3NUeXBlPXQuZW51bXM9PT1TdHJpbmc/XCJVTktOT1dOX09TX1RZUEVcIjowLG4udXNlcklkPVwiXCJ9aWYoZS50aW1lcnMmJmUudGltZXJzLmxlbmd0aCl7bi50aW1lcnM9W107Zm9yKHZhciBpPTA7aTxlLnRpbWVycy5sZW5ndGg7KytpKW4udGltZXJzW2ldPWEuTWV0cmljLnRvT2JqZWN0KGUudGltZXJzW2ldLHQpfWlmKGUuY291bnRlcnMmJmUuY291bnRlcnMubGVuZ3RoKXtuLmNvdW50ZXJzPVtdO2ZvcihpPTA7aTxlLmNvdW50ZXJzLmxlbmd0aDsrK2kpbi5jb3VudGVyc1tpXT1hLk1ldHJpYy50b09iamVjdChlLmNvdW50ZXJzW2ldLHQpfWlmKGUubGV2ZWxzJiZlLmxldmVscy5sZW5ndGgpe24ubGV2ZWxzPVtdO2ZvcihpPTA7aTxlLmxldmVscy5sZW5ndGg7KytpKW4ubGV2ZWxzW2ldPWEuTWV0cmljLnRvT2JqZWN0KGUubGV2ZWxzW2ldLHQpfXJldHVybiBudWxsIT1lLnByb3RvY29sVmVyc2lvbiYmZS5oYXNPd25Qcm9wZXJ0eShcInByb3RvY29sVmVyc2lvblwiKSYmKG4ucHJvdG9jb2xWZXJzaW9uPWUucHJvdG9jb2xWZXJzaW9uKSxudWxsIT1lLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzJiZlLmhhc093blByb3BlcnR5KFwiYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXNcIikmJihcIm51bWJlclwiPT09dHlwZW9mIGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM/bi5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcz10LmxvbmdzPT09U3RyaW5nP1N0cmluZyhlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzKTplLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzOm4uYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9vLkxvbmcucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcyk6dC5sb25ncz09PU51bWJlcj9uZXcgby5Mb25nQml0cyhlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzLmxvdz4+PjAsZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcy5oaWdoPj4+MCkudG9OdW1iZXIoITApOmUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMpLG51bGwhPWUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzJiZlLmhhc093blByb3BlcnR5KFwiYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzXCIpJiYoXCJudW1iZXJcIj09PXR5cGVvZiBlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz9uLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz10LmxvbmdzPT09U3RyaW5nP1N0cmluZyhlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcyk6ZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM6bi5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9vLkxvbmcucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXMpOnQubG9uZ3M9PT1OdW1iZXI/bmV3IG8uTG9uZ0JpdHMoZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXMubG93Pj4+MCxlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcy5oaWdoPj4+MCkudG9OdW1iZXIoITApOmUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzKSxudWxsIT1lLmFwcFZlcnNpb24mJmUuaGFzT3duUHJvcGVydHkoXCJhcHBWZXJzaW9uXCIpJiYobi5hcHBWZXJzaW9uPWEuQXBwVmVyc2lvbi50b09iamVjdChlLmFwcFZlcnNpb24sdCkpLG51bGwhPWUuY2xpZW50T3NUeXBlJiZlLmhhc093blByb3BlcnR5KFwiY2xpZW50T3NUeXBlXCIpJiYobi5jbGllbnRPc1R5cGU9dC5lbnVtcz09PVN0cmluZz9hLk9zVHlwZVtlLmNsaWVudE9zVHlwZV06ZS5jbGllbnRPc1R5cGUpLG51bGwhPWUudXNlcklkJiZlLmhhc093blByb3BlcnR5KFwidXNlcklkXCIpJiYobi51c2VySWQ9ZS51c2VySWQpLG59LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvT2JqZWN0KHRoaXMsci51dGlsLnRvSlNPTk9wdGlvbnMpfSxlfSgpLGUuZXhwb3J0cz1hfSw0NDM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O3QuX19lc01vZHVsZT0hMDt2YXIgaT1uKDc2Mjc1KSxvPXIobig4MzQxNCkpLGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dmFyIGU9dGhpczt0aGlzLmlzSW5pdGlhbGl6ZWQ9ITEsdGhpcy5pc01ldHJpY0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIWUubWV0cmljQ29sbGVjdG9yfHxlLm1ldHJpY0NvbGxlY3Rvci5pc0VtcHR5KCl9LHRoaXMuZmx1c2g9ZnVuY3Rpb24oKXtpZighZS5tZXRyaWNDb2xsZWN0b3J8fCFlLm5ldHdvcmtIYW5kbGVyfHxlLm1ldHJpY0NvbGxlY3Rvci5pc0VtcHR5KCkpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO28uZGVmYXVsdC5sb2coXCJmbHVzaGluZyBtZXRyaWNzXCIsZS5tZXRyaWNDb2xsZWN0b3IubWV0cmljcyk7dmFyIHQ9ZS5tZXRyaWNDb2xsZWN0b3IuZ2V0UGF5bG9hZCgpO3JldHVybiBlLm1ldHJpY0NvbGxlY3Rvci5jbGVhck1ldHJpY3MoKSxlLm5ldHdvcmtIYW5kbGVyLnNlbmRSZXF1ZXN0KHQpfX1yZXR1cm4gZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt2YXIgdD1lLmRlYnVnTW9kZSxuPXZvaWQgMCE9PXQmJnQscj1lLmxvZ1RpbWVJbnRlcnZhbCxhPXZvaWQgMD09PXI/NWUzOnI7by5kZWZhdWx0LnNldERlYnVnTW9kZShuKSx0aGlzLm5ldHdvcmtIYW5kbGVyPWUubmV0d29ya0hhbmRsZXIsdGhpcy5tZXRyaWNDb2xsZWN0b3I9dGhpcy5uZXR3b3JrSGFuZGxlci5jb25maWcuY29sbGVjdG9yLHRoaXMudGltZXJJZD1zZXRJbnRlcnZhbCh0aGlzLmZsdXNoLGEpLGkuaXNJbldpbmRvdygpJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZXVubG9hZFwiLHRoaXMuZmx1c2gpLHRoaXMuaXNJbml0aWFsaXplZD0hMCxvLmRlZmF1bHQubG9nKFwiaW5pdGlhbGl6aW5nIFNESyB3aXRoIGNvbmZpZ1wiLGUpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGU7by5kZWZhdWx0LmxvZyhcImRlc3Ryb3lpbmcgU0RLLlwiKSx0aGlzLnRpbWVySWQmJmNsZWFySW50ZXJ2YWwodGhpcy50aW1lcklkKSx0aGlzLmhlYXJ0QmVhdElkJiZjbGVhckludGVydmFsKHRoaXMuaGVhcnRCZWF0SWQpLHRoaXMuaXNJbml0aWFsaXplZD0hMSxudWxsPT09KGU9dGhpcy5tZXRyaWNDb2xsZWN0b3IpfHx2b2lkIDA9PT1lfHxlLmNsZWFyTWV0cmljcygpLGkuaXNJbldpbmRvdygpJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJlZm9yZXVubG9hZFwiLHRoaXMuZmx1c2gpfSxlLnByb3RvdHlwZS5pc1JlYWR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbml0aWFsaXplZH0sZS5wcm90b3R5cGUuaW5jcmVtZW50PWZ1bmN0aW9uKGUpe3ZhciB0PWUubWV0cmljc05hbWUsbj1lLmRpbWVuc2lvbnMscj1lLnZhbHVlLGk9dm9pZCAwPT09cj8xOnI7aWYodGhpcy5pc0luaXRpYWxpemVkJiZ0aGlzLm1ldHJpY0NvbGxlY3Rvcil7aWYoIU51bWJlci5pc0ludGVnZXIoaSkpdGhyb3cgbmV3IEVycm9yKFwidmFsdWUgbXVzdCBiZSBhbiBpbnRlZ2VyIGluIGluY3JlbWVudC5cIik7dGhpcy5tZXRyaWNDb2xsZWN0b3IuaW5jcmVtZW50KHttZXRyaWNzTmFtZTp0LGRpbWVuc2lvbnM6bix2YWx1ZTppfSksby5kZWZhdWx0LmxvZyhcImluY3JlbWVudCBjb3VudGVyIFwiK3QrXCIgd2l0aCBkaW1lbnNpb24gXCIsbixcIiB3aXRoIHZhbHVlIFwiLGkpfX0sZS5wcm90b3R5cGUuYWRkSGlzdG9ncmFtPWZ1bmN0aW9uKGUpe3ZhciB0PWUubWV0cmljc05hbWUsbj1lLmRpbWVuc2lvbnMscj1lLnZhbHVlO3RoaXMuaXNJbml0aWFsaXplZCYmdGhpcy5tZXRyaWNDb2xsZWN0b3ImJih0aGlzLm1ldHJpY0NvbGxlY3Rvci5hZGRIaXN0b2dyYW0oe21ldHJpY3NOYW1lOnQsZGltZW5zaW9uczpuLHZhbHVlOnJ9KSxvLmRlZmF1bHQubG9nKFwiYWRkSGlzdG9ncmFtIGxldmVsIFwiK3QrXCIgd2l0aCBkaW1lbnNpb24gXCIsbixcIiB3aXRoIHZhbHVlIFwiLHIpKX0sZS5wcm90b3R5cGUuYWRkVGltZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tZXRyaWNzTmFtZSxuPWUuZGltZW5zaW9ucyxyPWUubWlsbGlTZWM7aWYodGhpcy5pc0luaXRpYWxpemVkJiZ0aGlzLm1ldHJpY0NvbGxlY3Rvcil7aWYoIU51bWJlci5pc0ludGVnZXIocikpdGhyb3cgbmV3IEVycm9yKFwibWlsbGlTZWMgbXVzdCBiZSBhbiBpbnRlZ2VyIGluIGFkZFRpbWVyLlwiKTt0aGlzLm1ldHJpY0NvbGxlY3Rvci5hZGRUaW1lcih7bWV0cmljc05hbWU6dCxkaW1lbnNpb25zOm4sbWlsbGlTZWM6cn0pLG8uZGVmYXVsdC5sb2coXCJhZGRUaW1lciB0aW1lciBcIit0K1wiIHdpdGggZGltZW5zaW9uIFwiLG4sXCIgd2l0aCBtaWxsaVNlYyBcIixyKX19LGUucHJvdG90eXBlLmdldENvbGxlY3RlZE1ldHJpY3M9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gbnVsbD09PShlPXRoaXMubWV0cmljQ29sbGVjdG9yKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tZXRyaWNzfSxlfSgpO3QuZGVmYXVsdD1hfSwxMDA4ODpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMDt2YXIgbj1mdW5jdGlvbigpe307dC5kZWZhdWx0PW59LDE0NDYzOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwLHQuQXV0aFR5cGU9dm9pZCAwLHQuQXV0aFR5cGU9e0xjYTpcImxjYVwiLFdlYkF0dGVzdGF0aW9uOlwid2ViQXR0ZXN0YXRpb25cIixOb25lOlwibm9uZVwifX0sODgxODY6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt0Ll9fZXNNb2R1bGU9ITA7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5tZXRyaWNzPXRoaXMuZ2V0RnJlc2hNZXRyaWNzKCl9cmV0dXJuIGUucHJvdG90eXBlLmdldEZyZXNoTWV0cmljcz1mdW5jdGlvbigpe3JldHVybntjb3VudGVyczp7fSx0aW1lcnM6e30sbGV2ZWxzOnt9fX0sZS5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiFPYmplY3Qua2V5cyh0aGlzLm1ldHJpY3MuY291bnRlcnMpLmxlbmd0aCYmIU9iamVjdC5rZXlzKHRoaXMubWV0cmljcy50aW1lcnMpLmxlbmd0aCYmIU9iamVjdC5rZXlzKHRoaXMubWV0cmljcy5sZXZlbHMpLmxlbmd0aH0sZS5wcm90b3R5cGUuY2xlYXJNZXRyaWNzPWZ1bmN0aW9uKCl7dGhpcy5tZXRyaWNzPXRoaXMuZ2V0RnJlc2hNZXRyaWNzKCl9LGV9KCk7dC5kZWZhdWx0PW59LDMxOTQ0OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwfSw2MTkwOTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMH0sNTk2MDI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxpPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiPT09bnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbil8fHIodCxlLG4pfTt0Ll9fZXNNb2R1bGU9ITAsdC5CYXNlTmV0d29ya0hhbmRsZXI9dC5NZXRyaWNDb2xsZWN0b3I9dC5BdXRoZW50aWNhdG9yPXQubG9nZ2VyPXQuQmFzZUNsaWVudD12b2lkIDAsaShuKDYxNzA2KSx0KTt2YXIgbz1uKDQ0Myk7cih0LG8sXCJkZWZhdWx0XCIsXCJCYXNlQ2xpZW50XCIpO3ZhciBhPW4oODM0MTQpO3IodCxhLFwiZGVmYXVsdFwiLFwibG9nZ2VyXCIpLGkobigxNDQ2MyksdCk7dmFyIHM9bigxMDA4OCk7cih0LHMsXCJkZWZhdWx0XCIsXCJBdXRoZW50aWNhdG9yXCIpO3ZhciBjPW4oODgxODYpO3IodCxjLFwiZGVmYXVsdFwiLFwiTWV0cmljQ29sbGVjdG9yXCIpLGkobigzMTk0NCksdCksaShuKDYxOTA5KSx0KTt2YXIgdT1uKDQyOTcwKTtyKHQsdSxcImRlZmF1bHRcIixcIkJhc2VOZXR3b3JrSGFuZGxlclwiKX0sODM0MTQ6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt2YXIgbj10aGlzJiZ0aGlzLl9fcmVhZHx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIGU7dmFyIHIsaSxvPW4uY2FsbChlKSxhPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKHI9by5uZXh0KCkpLmRvbmU7KWEucHVzaChyLnZhbHVlKX1jYXRjaChzKXtpPXtlcnJvcjpzfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIGF9LHI9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLHI9dC5sZW5ndGgsaT1lLmxlbmd0aDtuPHI7bisrLGkrKyllW2ldPXRbbl07cmV0dXJuIGV9O3QuX19lc01vZHVsZT0hMDt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzO3RoaXMubG9nPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXRbaV09YXJndW1lbnRzW2ldO2UuZGVidWdNb2RlJiZjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLHIoW1wiW01ldHJpY3MgU0RLXVwiXSxuKHQpKSl9fXJldHVybiBlLnByb3RvdHlwZS5zZXREZWJ1Z01vZGU9ZnVuY3Rpb24oZSl7dGhpcy5kZWJ1Z01vZGU9ZX0sZX0oKTt0LmRlZmF1bHQ9bmV3IGl9LDQyOTcwOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwO3ZhciBuPWZ1bmN0aW9uKGUpe3RoaXMuY29uZmlnPWV9O3QuZGVmYXVsdD1ufSw3MTYxNzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9LGUodCxuKX07cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIG4mJm51bGwhPT1uKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiK1N0cmluZyhuKStcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9ZSh0LG4pLHQucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksaT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTt0Ll9fZXNNb2R1bGU9ITAsdC5Ccm93c2VyTmV0d29ya0hhbmRsZXI9dm9pZCAwO3ZhciBvPWkobig4MzQxNCkpLGE9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3JldHVybiBudWxsIT09ZSYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIodCxlKSx0LnByb3RvdHlwZS5zZW5kUmVxdWVzdD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgWE1MSHR0cFJlcXVlc3Qsbj10aGlzLmNvbmZpZyxyPW4uYXV0aFR5cGUsaT1uLmF1dGhlbnRpY2F0b3IsYT1uLnByb3RvY29sLHM9bi5ob3N0LGM9bi5wYXRoLHU9bi5oZWFkZXJzO3JldHVybiBpLmF1dGhSZXF1ZXN0KHIsZSx1KS50aGVuKChmdW5jdGlvbihuKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsaSl7dmFyIHU9YStcIi8vXCIrcytjO3Qub3BlbihcIlBPU1RcIix1LCEwKSxPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LnNldFJlcXVlc3RIZWFkZXIoZSxuW2VdKX0pKSx0Lm9ubG9hZD1mdW5jdGlvbigpe28uZGVmYXVsdC5sb2coXCJSZWNlaXZlZCByZXNwb25zZSBmcm9tIG1ldHJpY3Mgc2VydmVyLiBTdGF0dXMgY29kZTpcIix0aGlzLnN0YXR1cyx0LnN0YXR1c1RleHQpLHRoaXMuc3RhdHVzPj0yMDAmJnRoaXMuc3RhdHVzPDMwMD9yKCk6aSh7c3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1RleHQ6dC5zdGF0dXNUZXh0fSl9LHQub25lcnJvcj1mdW5jdGlvbigpe28uZGVmYXVsdC5sb2coXCJGYWlsZWQgdG8gc2VuZCByZXF1ZXN0XCIsdCksaSh7c3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1RleHQ6dC5zdGF0dXNUZXh0fSl9LHQuc2VuZChlKX0pKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7by5kZWZhdWx0LmxvZyhcIkdvdCBlcnJvciB3aGVuIHNlbmRpbmcgcmVxdWVzdDpcIixlKX0pKX0sdH0oaShuKDQyOTcwKSkuZGVmYXVsdCk7dC5Ccm93c2VyTmV0d29ya0hhbmRsZXI9YSx0LmRlZmF1bHQ9YX0sNjE3MDY6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt0Ll9fZXNNb2R1bGU9ITB9LDcxMTk1OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKGUsdCl7dmFyIG49XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiBlO3ZhciByLGksbz1uLmNhbGwoZSksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09dHx8dC0tID4wKSYmIShyPW8ubmV4dCgpKS5kb25lOylhLnB1c2goci52YWx1ZSl9Y2F0Y2gocyl7aT17ZXJyb3I6c319ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBhfSxyPXRoaXMmJnRoaXMuX19zcHJlYWRBcnJheXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxyPXQubGVuZ3RoLGk9ZS5sZW5ndGg7bjxyO24rKyxpKyspZVtpXT10W25dO3JldHVybiBlfTt0Ll9fZXNNb2R1bGU9ITA7dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWUubWV0cmljc05hbWUsaT1lLmRpbWVuc2lvbnMsbz1lLnByZWZpeGVzLGE9cihbXSxuKHZvaWQgMD09PW8/W106bykpO3JldHVybiBhLnB1c2godCksaSYmT2JqZWN0LmtleXMoaSkuc29ydCgpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWlbZV07YS5wdXNoKGUsdCl9KSksYS5qb2luKFwiLlwiKX19LDI3ODg5OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwO3QuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKHQtZSsxKSkrZX19LDUyNTc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNDg3NjQpLmxXO3QuX19lc01vZHVsZT0hMDt0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZnJvbShlLFwiYmluYXJ5XCIpLnRvU3RyaW5nKFwiYmFzZTY0XCIpfX0sNzYyNzU6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt0Ll9fZXNNb2R1bGU9ITAsdC5pc0luQnJvd3Nlcj10LmlzSW5Xb3JrZXI9dC5pc0luV2luZG93PXZvaWQgMDt0LmlzSW5XaW5kb3c9ZnVuY3Rpb24oKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIHdpbmRvd307dC5pc0luV29ya2VyPWZ1bmN0aW9uKCl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZX07dC5pc0luQnJvd3Nlcj1mdW5jdGlvbigpe3JldHVybiB0LmlzSW5XaW5kb3coKXx8dC5pc0luV29ya2VyKCl9fSw4MzU3MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwO3ZhciBpPXIobigyNzg4OSkpO3QuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2lmKGUubGVuZ3RoPD10KXJldHVybiBlO2Zvcih2YXIgbj1lLnNsaWNlKDAsdCkscj10O3I8ZS5sZW5ndGg7cisrKXt2YXIgbz1pLmRlZmF1bHQoMCxyKTtvPHQmJihuW29dPWVbcl0pfXJldHVybiBufX0sODY3NTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMDt2YXIgbj17aGFzaDpmdW5jdGlvbihlLHQpe3ZhciByPU9iamVjdC5hc3NpZ24oe21zZ0Zvcm1hdDpcInN0cmluZ1wiLG91dEZvcm1hdDpcImhleFwifSx0KTtzd2l0Y2goci5tc2dGb3JtYXQpe2RlZmF1bHQ6Y2FzZVwic3RyaW5nXCI6ZT1uLnV0ZjhFbmNvZGUoZSk7YnJlYWs7Y2FzZVwiaGV4LWJ5dGVzXCI6ZT1uLmhleEJ5dGVzVG9TdHJpbmcoZSl9Zm9yKHZhciBpPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLG89WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XSxhPShlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCkpLmxlbmd0aC80KzIscz1NYXRoLmNlaWwoYS8xNiksYz1uZXcgQXJyYXkocyksdT0wO3U8czt1Kyspe2NbdV09bmV3IEFycmF5KDE2KTtmb3IodmFyIGw9MDtsPDE2O2wrKyljW3VdW2xdPWUuY2hhckNvZGVBdCg2NCp1KzQqbCk8PDI0fGUuY2hhckNvZGVBdCg2NCp1KzQqbCsxKTw8MTZ8ZS5jaGFyQ29kZUF0KDY0KnUrNCpsKzIpPDw4fGUuY2hhckNvZGVBdCg2NCp1KzQqbCszKX12YXIgZD04KihlLmxlbmd0aC0xKS9NYXRoLnBvdygyLDMyKSxwPTgqKGUubGVuZ3RoLTEpPj4+MDtjW3MtMV1bMTRdPU1hdGguZmxvb3IoZCksY1tzLTFdWzE1XT1wO2Zvcih1PTA7dTxzO3UrKyl7Zm9yKHZhciBmPW5ldyBBcnJheSg2NCksaD0wO2g8MTY7aCsrKWZbaF09Y1t1XVtoXTtmb3IoaD0xNjtoPDY0O2grKylmW2hdPW4uXFx1MDNjMzEoZltoLTJdKStmW2gtN10rbi5cXHUwM2MzMChmW2gtMTVdKStmW2gtMTZdPj4+MDt2YXIgZz1vWzBdLG09b1sxXSx2PW9bMl0sXz1vWzNdLEU9b1s0XSxiPW9bNV0sUz1vWzZdLHk9b1s3XTtmb3IoaD0wO2g8NjQ7aCsrKXt2YXIgVD15K24uXFx1MDNhMzEoRSkrbi5DaChFLGIsUykraVtoXStmW2hdLEk9bi5cXHUwM2EzMChnKStuLk1haihnLG0sdik7eT1TLFM9YixiPUUsRT1fK1Q+Pj4wLF89dix2PW0sbT1nLGc9VCtJPj4+MH1vWzBdPW9bMF0rZz4+PjAsb1sxXT1vWzFdK20+Pj4wLG9bMl09b1syXSt2Pj4+MCxvWzNdPW9bM10rXz4+PjAsb1s0XT1vWzRdK0U+Pj4wLG9bNV09b1s1XStiPj4+MCxvWzZdPW9bNl0rUz4+PjAsb1s3XT1vWzddK3k+Pj4wfWZvcih5PTA7eTxvLmxlbmd0aDt5Kyspb1t5XT0oXCIwMDAwMDAwMFwiK29beV0udG9TdHJpbmcoMTYpKS5zbGljZSgtOCk7dmFyIE89XCJoZXgtd1wiPT1yLm91dEZvcm1hdD9cIiBcIjpcIlwiO3JldHVybiBvLmpvaW4oTyl9LFJPVFI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD4+PmV8dDw8MzItZX0sXCJcXHUwM2EzMFwiOmZ1bmN0aW9uKGUpe3JldHVybiBuLlJPVFIoMixlKV5uLlJPVFIoMTMsZSlebi5ST1RSKDIyLGUpfSxcIlxcdTAzYTMxXCI6ZnVuY3Rpb24oZSl7cmV0dXJuIG4uUk9UUig2LGUpXm4uUk9UUigxMSxlKV5uLlJPVFIoMjUsZSl9LFwiXFx1MDNjMzBcIjpmdW5jdGlvbihlKXtyZXR1cm4gbi5ST1RSKDcsZSlebi5ST1RSKDE4LGUpXmU+Pj4zfSxcIlxcdTAzYzMxXCI6ZnVuY3Rpb24oZSl7cmV0dXJuIG4uUk9UUigxNyxlKV5uLlJPVFIoMTksZSleZT4+PjEwfSxDaDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmdF5+ZSZufSxNYWo6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlJnReZSZuXnQmbn0sdXRmOEVuY29kZTpmdW5jdGlvbihlKXtyZXR1cm4gdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUpKX0saGV4Qnl0ZXNUb1N0cmluZzpmdW5jdGlvbihlKXtlPWUucmVwbGFjZShcIiBcIixcIlwiKTtmb3IodmFyIHQ9XCJcIixuPTA7bjxlLmxlbmd0aDtuKz0yKXQrPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZS5zbGljZShuLG4rMiksMTYpKTtyZXR1cm4gdH19O3QuZGVmYXVsdD1ufSw0ODE3MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5nZXREb21haW5Gb3JVUkxzPWZ1bmN0aW9uKGUpe2lmKCFlfHwtMSE9PWUuaW5kZXhPZihcImxvY2FsaG9zdFwiKSlyZXR1cm4gci5ERUZBVUxUX0RPTUFJTjtyZXR1cm4gZX0sdC5nZXRDdXJyZW50TG9jYWxlPWZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgZT0oMCxpLl9fZ2V0Q29va2llKShyLkNPT0tJRV9LRVlfTE9DQUxFKTtpZihlKXJldHVybiBlO2Zvcih2YXIgdD1PYmplY3Qua2V5cyhyLkFMTF9MT0NBTEVTKSxuPTAsbz10Lmxlbmd0aDtuPG87bisrKXt2YXIgYT10W25dO2lmKG5ldyBSZWdFeHAoXCJcXFxcL1wiLmNvbmNhdChhLFwiKD86XFxcXC98JClcIiksXCJpXCIpLnRlc3Qod2luZG93LmxvY2F0aW9uKSlyZXR1cm4gYX1yZXR1cm4gbmF2aWdhdG9yLmxhbmd1YWdlfSgpLnRvTG93ZXJDYXNlKCksdD1yLkxPQ0FMRVNfTE9XRVJfVE9fTk9STUFMW2VdO2lmKHQpcmV0dXJuIHQ7dmFyIG49ZS5zbGljZSgwLDIpLG89ci5MT0NBTEVTX0xBTkdVQUdFX09OTFlfVE9fTk9STUFMW25dO2lmKG8pcmV0dXJuIG87cmV0dXJuIHIuREVGQVVMVF9MT0NBTEV9LHQuc2V0TG9jYWxlQ29va2llPWZ1bmN0aW9uKGUsdCl7KDAsaS5zZXRDb29raWUpKHIuQ09PS0lFX0tFWV9MT0NBTEUsZS50b0xvd2VyQ2FzZSgpLHQpfSx0LmluaXRDb29raWVQb2xpY3lQb3B1cD1mdW5jdGlvbihlLHQsbil7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjc1MDtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGEpe2lmKGUmJlwic2hvd25cIiE9PWUuY2xhc3NOYW1lKWlmKFwidHJ1ZVwiIT09KDAsaS5fX2dldENvb2tpZSkoci5DT09LSUVfS0VZX0NPT0tJRVNfQUNDRVBURUQpKXt2YXIgcz1mdW5jdGlvbigpe3ZhciBvPVwic2hvd25cIjtlLnF1ZXJ5U2VsZWN0b3IoXCIjY29va2llUG9wdXBDbG9zZUJ1dHRvblwiKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoZnVuY3Rpb24oKXtlLmNsYXNzTGlzdC5yZW1vdmUobyl9KSksZS5xdWVyeVNlbGVjdG9yKFwiI2Nvb2tpZVBvcHVwQWNjZXB0RVVcIikuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKGZ1bmN0aW9uKCl7KDAsaS5zZXRDb29raWUpKHIuQ09PS0lFX0tFWV9DT09LSUVTX0FDQ0VQVEVELCEwLHQpLCgwLGkuc2V0Q29va2llKShcIlByZWZlcmVuY2VzXCIsITAsdCksKDAsaS5zZXRDb29raWUpKFwiUGVyZm9ybWFuY2VcIiwhMCx0KSwoMCxpLnNldENvb2tpZSkoXCJNYXJrZXRpbmdcIiwhMCx0KSxlLmNsYXNzTGlzdC5yZW1vdmUobyksbigpfSkpLGUucXVlcnlTZWxlY3RvcihcIiNjb29raWVQb3B1cFNldHRpbmdzXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLChmdW5jdGlvbigpe2UuY2xhc3NMaXN0LnJlbW92ZShvKX0pKSxlLmNsYXNzTGlzdC5hZGQobyksYSgpfTt0cnl7ZmV0Y2goXCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vY29va2llcy9hcGkvaXNfY29va2llX3BvcHVwX2VsaWdpYmxlXCIpLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKDIwMCE9PWUuc3RhdHVzKXt2YXIgdD1lLnN0YXR1cyxuPWUuc3RhdHVzVGV4dDt0aHJvdyBuZXcgRXJyb3IoXCJcIi5jb25jYXQodCxcIiA6IFwiKS5jb25jYXQobikpfXJldHVybiBlLmpzb24oKX0pKS50aGVuKChmdW5jdGlvbihlKXtlLnBvcHVwRW5hYmxlZCYmXCJ0cnVlXCIhPT0oMCxpLl9fZ2V0Q29va2llKShyLkNPT0tJRV9LRVlfQ09PS0lFU19BQ0NFUFRFRCk/KHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIHMoKX0pLG8pLGEoKSk6KCgwLGkuc2V0Q29va2llKShyLkNPT0tJRV9LRVlfQ09PS0lFU19BQ0NFUFRFRCwhMCx0KSwoMCxpLnNldENvb2tpZSkoXCJQcmVmZXJlbmNlc1wiLCEwLHQpLCgwLGkuc2V0Q29va2llKShcIlBlcmZvcm1hbmNlXCIsITAsdCksKDAsaS5zZXRDb29raWUpKFwiTWFya2V0aW5nXCIsITAsdCksbigpLGEoKSl9KSl9Y2F0Y2goYyl7c2V0VGltZW91dChzLG8pLGEoKX19ZWxzZSBhKCk7ZWxzZSBhKCl9KSl9LHQuaW5pdEV4cGFuZGluZ0Zvb3RlckNvbHVtbnM9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuO2UuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsbyl9LHQucmVnaXN0ZXJIYW1idXJnZXJFdmVudHM9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuO2UuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnRhcmdldDt0JiYoIXQuY2xhc3NMaXN0fHwhdC5jbGFzc0xpc3QuY29udGFpbnMoXCJoZWFkZXItY29udGFpbmVyXCIpKTspdD10LnBhcmVudE5vZGU7dCYmdC5jbGFzc0xpc3QudG9nZ2xlKFwiaGFtYnVyZ2VyLWV4cGFuZGVkXCIpfSkpfTt2YXIgcj1uKDM4MzQxKSxpPW4oNzM1MjEpO2Z1bmN0aW9uIG8oZSl7Zm9yKHZhciB0PWUudGFyZ2V0O3QmJighdC5jbGFzc0xpc3R8fCF0LmNsYXNzTGlzdC5jb250YWlucyhcImZvb3Rlci1jb2x1bW5cIikpOyl7aWYoXCJBXCI9PT10LnRhZ05hbWUpcmV0dXJuO3Q9dC5wYXJlbnROb2RlfXQmJnQuY2xhc3NMaXN0LnRvZ2dsZShcImV4cGFuZGVkXCIpfX0sMzgzNDE6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkNPT0tJRV9LRVlfQ09PS0lFU19BQ0NFUFRFRD10LkNPT0tJRV9LRVlfQ09PS0lFU19QT1BVUF9ESVNNSVNTRUQ9dC5DT09LSUVfS0VZX0xPQ0FMRT10LlVOUkVTT0xWRURfU1RSSU5HPXQuTE9DQUxFU19MQU5HVUFHRV9PTkxZX1RPX05PUk1BTD10LkxPQ0FMRVNfTE9XRVJfVE9fTk9STUFMPXQuQUxMX0xPQ0FMRVM9dC5ERUZBVUxUX0FWQUlMQUJMRV9MT0NBTEVTPXQuTE9DQUxFX0FSUkFZPXQuREVGQVVMVF9DT09LSUVfSUNPTl9SSUdIVD10LkRFRkFVTFRfQ09PS0lFX0lDT05fTEVGVD10LkRFRkFVTFRfQ09PS0lFX1BPTElDWV9VUkw9dC5ERUZBVUxUX1NOQVBfQ09NX0RPTUFJTj10LkRFRkFVTFRfTE9DQUxFPXQuREVGQVVMVF9ET01BSU49dm9pZCAwO3QuREVGQVVMVF9ET01BSU49XCJzbmFwY2hhdC5jb21cIjt0LkRFRkFVTFRfTE9DQUxFPVwiZW4tVVNcIjt0LkRFRkFVTFRfU05BUF9DT01fRE9NQUlOPVwic25hcC5jb21cIjt0LkRFRkFVTFRfQ09PS0lFX1BPTElDWV9VUkw9XCJodHRwczovL3d3dy5zbmFwLmNvbS9jb29raWUtcG9saWN5L1wiO3QuREVGQVVMVF9DT09LSUVfSUNPTl9MRUZUPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2hvbWUvY29va2llLTEuc3ZnXCI7dC5ERUZBVUxUX0NPT0tJRV9JQ09OX1JJR0hUPVwiaHR0cHM6Ly93d3cuc25hcGNoYXQuY29tL2hvbWUvY29va2llLTIuc3ZnXCI7dmFyIG49e2FyOntuYW1lOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjM5XFx1MDY0ZVxcdTA2MzFcXHUwNjRlXFx1MDYyOFxcdTA2NTBcXHUwNjRhXFx1MDYyOVwiLGxhbmc6XCJhclwiLGRpcjpcInJ0bFwifSxcImJuLUJEXCI6e25hbWU6XCJcXHUwOWFjXFx1MDliZVxcdTA5ODJcXHUwOWIyXFx1MDliZShcXHUwOWFjXFx1MDliZVxcdTA5ODJcXHUwOWIyXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliNilcIixsYW5nOlwiYm4tQkRcIixkaXI6XCJsdHJcIn0sXCJibi1JTlwiOntuYW1lOlwiXFx1MDlhY1xcdTA5YmVcXHUwOTgyXFx1MDliMlxcdTA5YmUgKFxcdTA5YWRcXHUwOWJlXFx1MDliMFxcdTA5YTQpXCIsbGFuZzpcImJuLUlOXCIsZGlyOlwibHRyXCJ9LFwiaWQtSURcIjp7bmFtZTpcIkJhaGFzYSBJbmRvbmVzaWFcIixsYW5nOlwiaWQtSURcIixkaXI6XCJsdHJcIn0sXCJkYS1ES1wiOntuYW1lOlwiRGFuc2tcIixsYW5nOlwiZGEtREtcIixkaXI6XCJsdHJcIn0sXCJkZS1ERVwiOntuYW1lOlwiRGV1dHNjaFwiLGxhbmc6XCJkZS1ERVwiLGRpcjpcImx0clwifSxcImVsLUdSXCI6e25hbWU6XCJcXHUwMzk1XFx1MDNiYlxcdTAzYmJcXHUwM2I3XFx1MDNiZFxcdTAzYjlcXHUwM2JhXFx1MDNhY1wiLGxhbmc6XCJlbC1HUlwiLGRpcjpcImx0clwifSxcImVuLUdCXCI6e25hbWU6XCJFbmdsaXNoIChVSylcIixsYW5nOlwiZW4tR0JcIixkaXI6XCJsdHJcIn0sXCJlbi1VU1wiOntuYW1lOlwiRW5nbGlzaCAoVVMpXCIsbGFuZzpcImVuLVVTXCIsZGlyOlwibHRyXCJ9LGVzOntuYW1lOlwiRXNwYVxceGYxb2xcIixsYW5nOlwiZXNcIixkaXI6XCJsdHJcIn0sXCJlcy1BUlwiOntuYW1lOlwiRXNwYVxceGYxb2wgKEFyZ2VudGluZSlcIixsYW5nOlwiZXMtQVJcIixkaXI6XCJsdHJcIn0sXCJlcy1FU1wiOntuYW1lOlwiRXNwYVxceGYxb2wgKEVzcGFcXHhmMWEpXCIsbGFuZzpcImVzLUVTXCIsZGlyOlwibHRyXCJ9LFwiZXMtTVhcIjp7bmFtZTpcIkVzcGFcXHhmMW9sIChNXFx4ZTl4aWNvKVwiLGxhbmc6XCJlcy1NWFwiLGRpcjpcImx0clwifSxcImZpLUZJXCI6e25hbWU6XCJTdW9taVwiLGxhbmc6XCJmaS1GSVwiLGRpcjpcImx0clwifSxcImZpbC1QSFwiOntuYW1lOlwiRmlsaXBpbm9cIixsYW5nOlwiZmlsLVBIXCIsZGlyOlwibHRyXCJ9LFwiZnItRlJcIjp7bmFtZTpcIkZyYW5cXHhlN2Fpc1wiLGxhbmc6XCJmci1GUlwiLGRpcjpcImx0clwifSxcImd1LUlOXCI6e25hbWU6XCJcXHUwYTk3XFx1MGFjMVxcdTBhOWNcXHUwYWIwXFx1MGFiZVxcdTBhYTRcXHUwYWMwXCIsbGFuZzpcImd1LUlOXCIsZGlyOlwibHRyXCJ9LFwiaGktSU5cIjp7bmFtZTpcIlxcdTA5MzlcXHUwOTNmXFx1MDkwMlxcdTA5MjZcXHUwOTQwXCIsbGFuZzpcImhpLUlOXCIsZGlyOlwibHRyXCJ9LFwiaXQtSVRcIjp7bmFtZTpcIkl0YWxpYW5vXCIsbGFuZzpcIml0LUlUXCIsZGlyOlwibHRyXCJ9LFwiamEtSlBcIjp7bmFtZTpcIlxcdTY1ZTVcXHU2NzJjXFx1OGE5ZVwiLGxhbmc6XCJqYS1KUFwiLGRpcjpcImx0clwifSxcImtuLUlOXCI6e25hbWU6XCJcXHUwYzk1XFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNhMSAoSW5kaWEpXCIsbGFuZzpcImtuLUlOXCIsZGlyOlwibHRyXCJ9LFwia28tS1JcIjp7bmFtZTpcIlxcdWQ1NWNcXHVhZDZkXFx1YzViNFwiLGxhbmc6XCJrby1LUlwiLGRpcjpcImx0clwifSxcIm1sLUlOXCI6e25hbWU6XCJcXHUwZDJlXFx1MGQzMlxcdTBkMmZcXHUwZDNlXFx1MGQzM1xcdTBkMDJcIixsYW5nOlwibWwtSU5cIixkaXI6XCJsdHJcIn0sXCJtci1JTlwiOntuYW1lOlwiXFx1MDkyZVxcdTA5MzBcXHUwOTNlXFx1MDkyMFxcdTA5NDBcIixsYW5nOlwibXItSU5cIixkaXI6XCJsdHJcIn0sXCJtcy1NWVwiOntuYW1lOlwiQmFoYXNhIE1lbGF5dVwiLGxhbmc6XCJtcy1NWVwiLGRpcjpcImx0clwifSxcIm5sLU5MXCI6e25hbWU6XCJOZWRlcmxhbmRzXCIsbGFuZzpcIm5sLU5MXCIsZGlyOlwibHRyXCJ9LFwibmItTk9cIjp7bmFtZTpcIk5vcnNrXCIsbGFuZzpcIm5iLU5PXCIsZGlyOlwibHRyXCJ9LHBhOntuYW1lOlwiXFx1MGEyYVxcdTBhNzBcXHUwYTFjXFx1MGEzZVxcdTBhMmNcXHUwYTQwXCIsbGFuZzpcInBhXCIsZGlyOlwibHRyXCJ9LFwicGwtUExcIjp7bmFtZTpcIlBvbHNraVwiLGxhbmc6XCJwbC1QTFwiLGRpcjpcImx0clwifSxcInB0LUJSXCI6e25hbWU6XCJQb3J0dWd1XFx4ZWFzIChCcmFzaWwpXCIsbGFuZzpcInB0LUJSXCIsZGlyOlwibHRyXCJ9LFwicHQtUFRcIjp7bmFtZTpcIlBvcnR1Z3VcXHhlYXMgKFBvcnR1Z2FsKVwiLGxhbmc6XCJwdC1QVFwiLGRpcjpcImx0clwifSxcInJvLVJPXCI6e25hbWU6XCJSb21cXHhlMm5cXHUwMTAzXCIsbGFuZzpcInJvLVJPXCIsZGlyOlwibHRyXCJ9LFwicnUtUlVcIjp7bmFtZTpcIlxcdTA0MjBcXHUwNDQzXFx1MDQ0MVxcdTA0NDFcXHUwNDNhXFx1MDQzOFxcdTA0MzlcIixsYW5nOlwicnUtUlVcIixkaXI6XCJsdHJcIn0sXCJzdi1TRVwiOntuYW1lOlwiU3ZlbnNrYVwiLGxhbmc6XCJzdi1TRVwiLGRpcjpcImx0clwifSxcInRhLUlOXCI6e25hbWU6XCJcXHUwYmE0XFx1MGJhZVxcdTBiYmZcXHUwYmI0XFx1MGJjZFwiLGxhbmc6XCJ0YS1JTlwiLGRpcjpcImx0clwifSxcInRlLUlOXCI6e25hbWU6XCJcXHUwYzI0XFx1MGM0NlxcdTBjMzJcXHUwYzQxXFx1MGMxN1xcdTBjNDFcIixsYW5nOlwidGUtSU5cIixkaXI6XCJsdHJcIn0sXCJ0aC1USFwiOntuYW1lOlwiXFx1MGUyMFxcdTBlMzJcXHUwZTI5XFx1MGUzMlxcdTBlNDRcXHUwZTE3XFx1MGUyMiAoXFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGU0MFxcdTBlMTdcXHUwZTI4XFx1MGU0NFxcdTBlMTdcXHUwZTIyKVwiLGxhbmc6XCJ0aC1USFwiLGRpcjpcImx0clwifSxcInRyLVRSXCI6e25hbWU6XCJUXFx4ZmNya1xceGU3ZVwiLGxhbmc6XCJ0ci1UUlwiLGRpcjpcImx0clwifSxcInVyLVBLXCI6e25hbWU6XCJcXHUwNjI3XFx1MDYzMVxcdTA2MmZcXHUwNjQ4XCIsbGFuZzpcInVyLVBLXCIsZGlyOlwicnRsXCJ9LFwidmktVk5cIjp7bmFtZTpcIlRpXFx1MWViZm5nIFZpXFx1MWVjN3RcIixsYW5nOlwidmktVk5cIixkaXI6XCJsdHJcIn0sXCJ6aC1DTlwiOntuYW1lOlwiXFx1NGUyZFxcdTY1ODdcXHVmZjA4XFx1N2I4MFxcdTRmNTNcXHVmZjA5XCIsbGFuZzpcInpoLUNOXCIsZGlyOlwibHRyXCJ9LFwiemgtSGFuc1wiOntuYW1lOlwiXFx1NGUyZFxcdTY1ODdcXHVmZjA4XFx1N2I4MFxcdTRmNTNcXHVmZjA5XCIsbGFuZzpcInpoLUhhbnNcIixkaXI6XCJsdHJcIn0sXCJ6aC1UV1wiOntuYW1lOlwiXFx1NGUyZFxcdTY1ODdcXHVmZjA4XFx1N2U0MVxcdTlhZDRcXHVmZjA5XCIsbGFuZzpcInpoLVRXXCIsZGlyOlwibHRyXCJ9LFwiemgtSGFudFwiOntuYW1lOlwiXFx1NGUyZFxcdTY1ODdcXHVmZjA4XFx1N2U0MVxcdTlhZDRcXHVmZjA5XCIsbGFuZzpcInpoLUhhbnRcIixkaXI6XCJsdHJcIn19O3QuTE9DQUxFX0FSUkFZPW47dC5ERUZBVUxUX0FWQUlMQUJMRV9MT0NBTEVTPVtcImRhLURLXCIsXCJkZS1ERVwiLFwiZW4tVVNcIixcImVuLUdCXCIsXCJlc1wiLFwiZnItRlJcIixcIml0LUlUXCIsXCJqYS1KUFwiLFwibmwtTkxcIixcIm5iLU5PXCIsXCJwdC1CUlwiLFwiZmktRklcIixcInN2LVNFXCJdO3ZhciByPXt9O3QuQUxMX0xPQ0FMRVM9cjt2YXIgaT17fTt0LkxPQ0FMRVNfTE9XRVJfVE9fTk9STUFMPWk7dmFyIG89e307dC5MT0NBTEVTX0xBTkdVQUdFX09OTFlfVE9fTk9STUFMPW87Zm9yKHZhciBhPU9iamVjdC5rZXlzKG4pLHM9MCxjPWEubGVuZ3RoO3M8YztzKyspe3ZhciB1PW5bYVtzXV0sbD11LmxhbmcsZD11Lm5hbWUscD1sLnRvTG93ZXJDYXNlKCksZj1sLnN1YnN0cmluZygwLDIpLnRvTG93ZXJDYXNlKCk7cltsXT1kLGlbcF09bCxvW2ZdPWx9dC5VTlJFU09MVkVEX1NUUklORz1cIj8/P1wiO3QuQ09PS0lFX0tFWV9MT0NBTEU9XCJzYy1sYW5ndWFnZVwiO3QuQ09PS0lFX0tFWV9DT09LSUVTX1BPUFVQX0RJU01JU1NFRD1cInNjLWNvb2tpZXMtcG9wdXAtZGlzbWlzc2VkXCI7dC5DT09LSUVfS0VZX0NPT0tJRVNfQUNDRVBURUQ9XCJzYy1jb29raWVzLWFjY2VwdGVkXCJ9LDcyMjIyOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbj17TGlnaHQ6e2NvbnRhaW5lcjpcIlxcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICBcIixidXR0b246XCJcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xcbiAgICAgIGNvbG9yOiAjRkZGO1xcbiAgICBcIn0sRGFyazp7Y29udGFpbmVyOlwiXFxuICAgICAgYmFja2dyb3VuZDogYmxhY2s7XFxuICAgICAgY29sb3I6ICNGRkY7XFxuICAgIFwiLGJ1dHRvbjpcIlxcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZDMDA7XFxuICAgICAgY29sb3I6ICMwMDA7XFxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIFwifX07dC5kZWZhdWx0PW59LDg0MDkwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciByPWgobig2NzI5NCkpLGk9aChuKDQ1Njk3KSksbz1uKDIzOTcyKSxhPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PWcoZSkmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PWYoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIG49e30scj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBpIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkpe3ZhciBvPXI/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpOm51bGw7byYmKG8uZ2V0fHxvLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KG4saSxvKTpuW2ldPWVbaV19bi5kZWZhdWx0PWUsdCYmdC5zZXQoZSxuKTtyZXR1cm4gbn0obigxMDE1OSkpLHM9big3NDEyOSksYz1uKDM4MzQxKSx1PW4oNDgxNzApLGw9aChuKDIwMDYwKSksZD1uKDczNTIxKSxwPWgobig3MjIyMikpO2Z1bmN0aW9uIGYoKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gZj1mdW5jdGlvbigpe3JldHVybiBlfSxlfWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIGcoZSl7cmV0dXJuIGc9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0sZyhlKX1mdW5jdGlvbiBtKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe2lmKCEoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSkmJlwiW29iamVjdCBBcmd1bWVudHNdXCIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuO3ZhciBuPVtdLHI9ITAsaT0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBhLHM9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7IShyPShhPXMubmV4dCgpKS5kb25lKSYmKG4ucHVzaChhLnZhbHVlKSwhdHx8bi5sZW5ndGghPT10KTtyPSEwKTt9Y2F0Y2goYyl7aT0hMCxvPWN9ZmluYWxseXt0cnl7cnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihpKXRocm93IG99fXJldHVybiBufShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpfSgpfWZ1bmN0aW9uIHYoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fWZ1bmN0aW9uIF8oZSl7cmV0dXJuIF89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0sXyhlKX1mdW5jdGlvbiBFKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlfWZ1bmN0aW9uIGIoZSx0KXtyZXR1cm4gYj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuX19wcm90b19fPXQsZX0sYihlLHQpfWZ1bmN0aW9uIFMoZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfXZhciB5PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7dmFyIG47cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KSwobj1mdW5jdGlvbihlLHQpe3JldHVybiF0fHxcIm9iamVjdFwiIT09Zyh0KSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIHQ/RShlKTp0fSh0aGlzLF8odCkuY2FsbCh0aGlzLGUpKSkuY2xpZW50PWEuY3JlYXRlQ2xpZW50KHtzcGFjZTpcImtwNTF6eWJ3em54NFwiLGVudmlyb25tZW50OlwibWFzdGVyXCIsYWNjZXNzVG9rZW46XCJkcGstN0w3ckdZemtLay1qWnd0SURueWh1aTZEZ0xxNlZUYXBKTkk3VzQ0XCJ9KSxuLmNhbGxJbml0Q29va2llUG9wdXA9bi5jYWxsSW5pdENvb2tpZVBvcHVwLmJpbmQoRShuKSksbi5lbmFibGVQZXJmb3JtYW5jZUFuYWx5dGljcz1uLmVuYWJsZVBlcmZvcm1hbmNlQW5hbHl0aWNzLmJpbmQoRShuKSksbi5zdGF0ZT17dXNlckxvY2F0aW9uOm51bGwsZ2xvYmFsQ29va2llQmFubmVyRGF0YTpudWxsfSxuLmdhPXQuZ2V0R2FpZFdpdGhQcmVmaXgoZS5HQUlEKSxuLnJ0bExhbmdzPVtcImFyXCIsXCJ1ci1QS1wiXSxufXZhciBuLGksYztyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiZiKGUsdCl9KHQsZSksbj10LChpPVt7a2V5OlwiY2FsbEluaXRDb29raWVQb3B1cFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLnByb3BzLHI9bi5tYXJrZXRpbmdBbmFseXRpY3NDYWxsYmFjayxpPW4uY29va2llRG9tYWluLG89KDAsZC5nZXRDb29raWVEb21haW4pKGkpOygwLHUuaW5pdENvb2tpZVBvbGljeVBvcHVwKShlLG8sKGZ1bmN0aW9uKCl7dC5lbmFibGVQZXJmb3JtYW5jZUFuYWx5dGljcygpLHIoKX0pKX19LHtrZXk6XCJlbmFibGVQZXJmb3JtYW5jZUFuYWx5dGljc1wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcm9wcyx0PWUuR1RNSUQsbj1lLkdBSUQscj1lLnBsdWdpbnMsaT1lLmdhQ3VzdG9tQ2FsbGJhY2ssbz1lLmd0bUN1c3RvbUNhbGxiYWNrLGE9ZS5wZXJmb3JtYW5jZUFuYWx5dGljc0NhbGxiYWNrO3QmJm4/KDAsZC5lbmFibGVHb29nbGVUYWdNYW5hZ2VyKSh0LHRoaXMuZ2Esbyk6biYmKDAsZC5lbmFibGVHb29nbGVBbmFseXRpY3MpKHRoaXMuZ2EscixpKSxhKCl9fSx7a2V5OlwiY29tcG9uZW50RGlkTW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLnByb3BzLG49dC5tYXJrZXRpbmdBbmFseXRpY3NDYWxsYmFjayxyPXQubG9jYWxlLGk9dC5vbkVycm9yO3RoaXMuY2xpZW50LmdldEVudHJpZXMoe2NvbnRlbnRfdHlwZTpcImNvb2tpZUJhbm5lclwiLGxvY2FsZTpyfSkudGhlbigoZnVuY3Rpb24odCl7dmFyIG49bSh0Lml0ZW1zLDEpWzBdLmZpZWxkcztlLnNldFN0YXRlKHtnbG9iYWxDb29raWVCYW5uZXJEYXRhOm59KX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7aSYmaSh0KSxlLnNldFN0YXRlKHtnbG9iYWxDb29raWVCYW5uZXJEYXRhOm51bGx9KX0pKSx3aW5kb3dbXCJnYS1kaXNhYmxlLVwiLmNvbmNhdCh0aGlzLmdhKV09ITAsZmV0Y2goXCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vY29va2llcy9hcGkvdXNlcl9sb2NhdGlvblwiKS50aGVuKChmdW5jdGlvbihlKXtpZigyMDAhPT1lLnN0YXR1cyl7dmFyIHQ9ZS5zdGF0dXMsbj1lLnN0YXR1c1RleHQ7dGhyb3cgbmV3IEVycm9yKFwiXCIuY29uY2F0KHQsXCIgOiBcIikuY29uY2F0KG4pKX1yZXR1cm4gZS5qc29uKCl9KSkudGhlbigoZnVuY3Rpb24odCl7dmFyIHIsaT10LmNvdW50cnksbz10LnJlZ2lvbixhPVwiXCIuY29uY2F0KGksXCItXCIpLmNvbmNhdChvKTt3aW5kb3cuZGF0YUxheWVyPW51bGwhPT0ocj13aW5kb3cuZGF0YUxheWVyKSYmdm9pZCAwIT09cj9yOltdLGRhdGFMYXllci5wdXNoKHt1c2VyTG9jYXRpb246YX0pLGUuc2V0U3RhdGUoe3VzZXJMb2NhdGlvbjp0fSwoZnVuY3Rpb24oKXtcInRydWVcIj09PSgwLGQuX19nZXRDb29raWUpKFwiUGVyZm9ybWFuY2VcIikmJmUuZW5hYmxlUGVyZm9ybWFuY2VBbmFseXRpY3MoKSxcInRydWVcIj09PSgwLGQuX19nZXRDb29raWUpKFwiTWFya2V0aW5nXCIpJiZuKCl9KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe2kmJmkoZSl9KSl9fSx7a2V5OlwicmVuZGVyQ29udGFpbmVyU3R5bGVzXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9cC5kZWZhdWx0W3RoaXMucHJvcHMudGhlbWVdO3JldHVyblwiXFxuICAgICAgI1wiLmNvbmNhdCh0aGlzLnByb3BzLmNvbnRhaW5lcklELFwiIHtcXG4gICAgICAgIFwiKS5jb25jYXQodC5jb250YWluZXIsXCJcXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICBtaW4taGVpZ2h0OiAzMyU7XFxuICAgICAgICB6LWluZGV4OiAxMDAwO1xcbiAgICAgICAgYm90dG9tOiAwO1xcblxcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XFxuXFxuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0sIGJveC1zaGFkb3c7XFxuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcXG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwwLDAsMSksIGxpbmVhcjtcXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLDAsMCwwLjA3NSk7XFxuICAgICAgfVxcblxcbiAgICAgICNcIikuY29uY2F0KHRoaXMucHJvcHMuY29udGFpbmVySUQsXCIuc2hvd24ge1xcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggM3B4IHJnYmEoMCwwLDAsMC4xNzUpO1xcbiAgICAgIH1cXG5cXG4gICAgICAjXCIpLmNvbmNhdCh0aGlzLnByb3BzLmNvbnRhaW5lcklELFwiICNjb29raWVQb3B1cENsb3NlQnV0dG9uIHtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIHJpZ2h0OiAzMHB4O1xcbiAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDEwcHgpO1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICAgICAgd2lkdGg6IDIwcHg7XFxuICAgICAgICBoZWlnaHQ6IDIwcHg7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIpLmNvbmNhdChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHN0eWxlJTNEJTIyYmFja2dyb3VuZC1jb2xvciUzQSUyMGxpZ2h0Z3JheSUzQiUyMiUyMHdpZHRoJTNEJTIyMjAlMjIlMjBoZWlnaHQlM0QlMjIyMCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDMwJTIwMzAlMjIlM0UlM0NyZWN0JTIwd2lkdGglM0QlMjIzJTIyJTIwaGVpZ2h0JTNEJTIyMjAlMjIlMjB4JTNEJTIyMTMuNSUyMiUyMHklM0QlMjI1JTIyJTIwZmlsbCUzRCUyMiUyM0ZGRiUyMiUyMHJ4JTNEJTIyMSUyMiUyMHJ5JTNEJTIyMSUyMiUzRSUzQyUyRnJlY3QlM0UlM0NyZWN0JTIwd2lkdGglM0QlMjIyMCUyMiUyMGhlaWdodCUzRCUyMjMlMjIlMjB5JTNEJTIyMTMuNSUyMiUyMHglM0QlMjI1JTIyJTIwZmlsbCUzRCUyMiUyM0ZGRiUyMiUyMHJ4JTNEJTIyMSUyMiUyMHJ5JTNEJTIyMSUyMiUzRSUzQyUyRnJlY3QlM0UlM0MlMkZzdmclM0VcIixcIik7XFxuICAgICAgfVxcblxcbiAgICAgICNcIikuY29uY2F0KHRoaXMucHJvcHMuY29udGFpbmVySUQsXCIgI2Nvb2tpZVBvcHVwQ2xvc2VCdXR0b246aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiKS5jb25jYXQoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjBzdHlsZSUzRCUyMmJhY2tncm91bmQtY29sb3IlM0ElMjBncmF5JTNCJTIyJTIwd2lkdGglM0QlMjIyMCUyMiUyMGhlaWdodCUzRCUyMjIwJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMzAlMjAzMCUyMiUzRSUzQ3JlY3QlMjB3aWR0aCUzRCUyMjMlMjIlMjBoZWlnaHQlM0QlMjIyMCUyMiUyMHglM0QlMjIxMy41JTIyJTIweSUzRCUyMjUlMjIlMjBmaWxsJTNEJTIyJTIzRkZGJTIyJTIwcnglM0QlMjIxJTIyJTIwcnklM0QlMjIxJTIyJTNFJTNDJTJGcmVjdCUzRSUzQ3JlY3QlMjB3aWR0aCUzRCUyMjIwJTIyJTIwaGVpZ2h0JTNEJTIyMyUyMiUyMHklM0QlMjIxMy41JTIyJTIweCUzRCUyMjUlMjIlMjBmaWxsJTNEJTIyJTIzRkZGJTIyJTIwcnglM0QlMjIxJTIyJTIwcnklM0QlMjIxJTIyJTNFJTNDJTJGcmVjdCUzRSUzQyUyRnN2ZyUzRVwiLFwiKTtcXG4gICAgICB9XFxuXFxuICAgICAgI1wiKS5jb25jYXQodGhpcy5wcm9wcy5jb250YWluZXJJRCxcIiAjY29va2llUG9wdXBBY2NlcHRFVSB7XFxuICAgICAgICBcIikuY29uY2F0KHQuYnV0dG9uLFwiXFxuICAgICAgICBmb250LWZhbWlseTogQXZlbmlyTmV4dCwgc2Fucy1zZXJpZjtcXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XFxuICAgICAgICBtYXJnaW4tdG9wOiAxMC41cHg7XFxuICAgICAgICBib3JkZXI6IG5vbmU7XFxuICAgICAgICBvdXRsaW5lOiBub25lO1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICBcIikuY29uY2F0KFwicnRsXCI9PT1lP1wibWFyZ2luLWxlZnQ6IDIwcHhcIjpcIlwiLFwiXFxuICAgICAgfVxcblxcbiAgICAgICNcIikuY29uY2F0KHRoaXMucHJvcHMuY29udGFpbmVySUQsXCIgYnV0dG9uIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcXG4gICAgICB9XFxuXFxuICAgICAgI1wiKS5jb25jYXQodGhpcy5wcm9wcy5jb250YWluZXJJRCxcIiBhIHtcXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIGNvbG9yOiAjM2NiMmUyO1xcbiAgICAgIH1cXG5cXG4gICAgICAjXCIpLmNvbmNhdCh0aGlzLnByb3BzLmNvbnRhaW5lcklELFwiIC5jb29raWUtdGV4dCB7XFxuICAgICAgICBmb250LXNpemU6IDE0cHg7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcXG4gICAgICAgIHBhZGRpbmc6IDI4cHggMjBweCAwO1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTAlICsgMjEwcHgpO1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDEwJSArIDIxMHB4KTtcXG4gICAgICB9XFxuXFxuICAgICAgI1wiKS5jb25jYXQodGhpcy5wcm9wcy5jb250YWluZXJJRCxcIiAuY29va2llLXByb21wdC1ldSB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjhweDtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgICAgfVxcblxcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICAgICAgI1wiKS5jb25jYXQodGhpcy5wcm9wcy5jb250YWluZXJJRCxcIiAuY29va2llLXRleHQge1xcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xcbiAgICAgICAgI1wiKS5jb25jYXQodGhpcy5wcm9wcy5jb250YWluZXJJRCxcIiAuY29va2llLXRleHQge1xcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMyU7XFxuICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygzJSArIDQwcHgpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XFxuICAgICAgICAjXCIpLmNvbmNhdCh0aGlzLnByb3BzLmNvbnRhaW5lcklELFwiIC5jb29raWUtaWNvbiB7XFxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgIEBtZWRpYSBwcmludCB7XFxuICAgICAgICAjXCIpLmNvbmNhdCh0aGlzLnByb3BzLmNvbnRhaW5lcklELFwiIHtcXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAgICAgICAjXCIpLmNvbmNhdCh0aGlzLnByb3BzLmNvbnRhaW5lcklELFwiIC5jb29raWUtdGV4dCB7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDM2MHB4KSB7XFxuICAgICAgICAjXCIpLmNvbmNhdCh0aGlzLnByb3BzLmNvbnRhaW5lcklELFwiICNjb29raWVQb3B1cEFjY2VwdEVVIHtcXG4gICAgICAgICAgZm9udC1zaXplOiAxMi41cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAjY29va2llUG9wdXBDb250YWluZXIgYnV0dG9uIHtcXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgI1wiKS5jb25jYXQodGhpcy5wcm9wcy5jb250YWluZXJJRCxcIiAjY29va2llUG9wdXBTZXR0aW5ncyB7XFxuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xcbiAgICAgICAgICBmb250LXNpemU6IDEyLjVweDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIFwiKX19LHtrZXk6XCJnZXRDb29raWVJY29uU3R5bGVcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybntwb3NpdGlvbjpcImFic29sdXRlXCIsd2lkdGg6MjQwLGhlaWdodDoxMjAsYmFja2dyb3VuZFNpemU6XCJjb3ZlclwifX19LHtrZXk6XCJyZW5kZXJMZWZ0Q29va2llSWNvblwiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCFlLmZpZWxkcy5maWxlLnVybClyZXR1cm4gbnVsbDt2YXIgdD1PYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0Q29va2llSWNvblN0eWxlKCkse2xlZnQ6XCJjYWxjKDEwJSAtIDUwcHgpXCIsdG9wOlwiY2FsYyg1MCUgLSA1NXB4KVwiLGJhY2tncm91bmQ6J3VybChcImh0dHBzOicuY29uY2F0KGUuZmllbGRzLmZpbGUudXJsLCdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQnKX0pO3JldHVybiByLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJjb29raWUtaWNvbiBjb29raWUtaWNvbi1sZWZ0XCIsc3R5bGU6dH0pfX0se2tleTpcInJlbmRlclJpZ2h0Q29va2llSWNvblwiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCFlLmZpZWxkcy5maWxlLnVybClyZXR1cm4gbnVsbDt2YXIgdD1PYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0Q29va2llSWNvblN0eWxlKCkse3JpZ2h0OlwiY2FsYygxMCUgLSA1MHB4KVwiLHRvcDpcImNhbGMoNTAlIC0gNTBweClcIixiYWNrZ3JvdW5kOid1cmwoXCJodHRwczonLmNvbmNhdChlLmZpZWxkcy5maWxlLnVybCwnXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0Jyl9KTtyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29va2llLWljb24gY29va2llLWljb24tcmlnaHRcIixzdHlsZTp0fSl9fSx7a2V5OlwicmVuZGVyXCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5zdGF0ZS51c2VyTG9jYXRpb24pcmV0dXJuIG51bGw7aWYoIXRoaXMuc3RhdGUuZ2xvYmFsQ29va2llQmFubmVyRGF0YSlyZXR1cm4gbnVsbDt2YXIgZT10aGlzLnN0YXRlLmdsb2JhbENvb2tpZUJhbm5lckRhdGEsdD1lLmxlZnRNZWRpYSxuPWUucmlnaHRNZWRpYSxpPWUuYm9keSxhPWUuYWNjZXB0Q29va2llc0J1dHRvbixjPWUuY29va2llU2V0dGluZ3NCdXR0b25UZXh0LHU9KDAscy5kb2N1bWVudFRvUmVhY3RDb21wb25lbnRzKShpKSxsPSh0aGlzLmNyZWF0ZVN0cmluZ1NlbGVjdG9yKCkoXCJDT09LSUVfUE9QVVBfRVVcIikucmVwbGFjZShcIntDT09LSUVfUE9MSUNZX1VSTH1cIix0aGlzLnByb3BzLmNvb2tpZVBvbGljeVVybCksKDAsby5nZXRMYW5nRGlyKSh0aGlzLnByb3BzLmxvY2FsZSkpO3JldHVybiByLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtpZDp0aGlzLnByb3BzLmNvbnRhaW5lcklELGNsYXNzTmFtZTp0aGlzLnByb3BzLmNsYXNzTmFtZSxyZWY6dGhpcy5jYWxsSW5pdENvb2tpZVBvcHVwfSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsbnVsbCx0aGlzLnJlbmRlckNvbnRhaW5lclN0eWxlcyhsKSksdGhpcy5yZW5kZXJMZWZ0Q29va2llSWNvbih0KSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJjb29raWUtcG9wdXBcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29va2llLXRleHRcIixkaXI6bH0sdSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29va2llLXByb21wdC1ldVwifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLHtpZDpcImNvb2tpZVBvcHVwQWNjZXB0RVVcIn0sYSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6dGhpcy5wcm9wcy5jb29raWVTZXR0aW5nc1VybCxpZDpcImNvb2tpZVBvcHVwU2V0dGluZ3NcIn0sYykpKSx0aGlzLnJlbmRlclJpZ2h0Q29va2llSWNvbihuKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtpZDpcImNvb2tpZVBvcHVwQ2xvc2VCdXR0b25cIixcImFyaWEtbGFiZWxcIjpcIkNsb3NlIENvb2tpZSBQb3B1cFwifSkpfX1dKSYmdihuLnByb3RvdHlwZSxpKSxjJiZ2KG4sYyksdH0obC5kZWZhdWx0KTt0LmRlZmF1bHQ9eSxTKHksXCJwcm9wVHlwZXNcIix7ZG9tYWluOmkuZGVmYXVsdC5zdHJpbmcsY29va2llRG9tYWluOmkuZGVmYXVsdC5zdHJpbmcsY29va2llUG9saWN5VXJsOmkuZGVmYXVsdC5zdHJpbmcsbGVmdENvb2tpZUljb25TcmM6aS5kZWZhdWx0LnN0cmluZyxyaWdodENvb2tpZUljb25TcmM6aS5kZWZhdWx0LnN0cmluZyxjb250YWluZXJJRDppLmRlZmF1bHQuc3RyaW5nLGNsYXNzTmFtZTppLmRlZmF1bHQuc3RyaW5nLGNvb2tpZVNldHRpbmdzVXJsOmkuZGVmYXVsdC5zdHJpbmcsR1RNSUQ6aS5kZWZhdWx0LnN0cmluZyxHQUlEOmkuZGVmYXVsdC5zdHJpbmcscGx1Z2luczppLmRlZmF1bHQuYXJyYXksZ2FDdXN0b21DYWxsYmFjazppLmRlZmF1bHQuZnVuYyxndG1DdXN0b21DYWxsYmFjazppLmRlZmF1bHQuZnVuYyxwZXJmb3JtYW5jZUFuYWx5dGljc0NhbGxiYWNrOmkuZGVmYXVsdC5mdW5jLG1hcmtldGluZ0FuYWx5dGljc0NhbGxiYWNrOmkuZGVmYXVsdC5mdW5jLHRoZW1lOmkuZGVmYXVsdC5vbmVPZihPYmplY3Qua2V5cyhwLmRlZmF1bHQpKSxvbkVycm9yOmkuZGVmYXVsdC5mdW5jfSksUyh5LFwiZGVmYXVsdFByb3BzXCIse2RvbWFpbjpjLkRFRkFVTFRfRE9NQUlOLGNvb2tpZURvbWFpbjpcIlwiLGNvb2tpZVBvbGljeVVybDpjLkRFRkFVTFRfQ09PS0lFX1BPTElDWV9VUkwsbGVmdENvb2tpZUljb25TcmM6Yy5ERUZBVUxUX0NPT0tJRV9JQ09OX0xFRlQscmlnaHRDb29raWVJY29uU3JjOmMuREVGQVVMVF9DT09LSUVfSUNPTl9SSUdIVCxjb250YWluZXJJRDpcImNvb2tpZVBvcHVwQ29udGFpbmVyXCIsY2xhc3NOYW1lOm51bGwsR1RNSUQ6XCJcIixHQUlEOlwiXCIscGx1Z2luczpbXSxnYUN1c3RvbUNhbGxiYWNrOmZ1bmN0aW9uKCl7fSxndG1DdXN0b21DYWxsYmFjazpmdW5jdGlvbigpe30scGVyZm9ybWFuY2VBbmFseXRpY3NDYWxsYmFjazpmdW5jdGlvbigpe30sbWFya2V0aW5nQW5hbHl0aWNzQ2FsbGJhY2s6ZnVuY3Rpb24oKXt9LHRoZW1lOlwiTGlnaHRcIn0pLFMoeSxcImdldEdhaWRXaXRoUHJlZml4XCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluY2x1ZGVzKFwiVUEtXCIpfHxlLmluY2x1ZGVzKFwiRy1cIik/ZTpcIlVBLVwiLmNvbmNhdChlKX0pKX0sODgyMzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgcj1sKG4oNjcyOTQpKSxpPWwobig0NTY5NykpLG89bigyMzk3MiksYT1sKG4oMjYyMjkpKSxzPW4oNzM1MjEpLGM9bChuKDIwMDYwKSksdT1uKDM4MzQxKTtmdW5jdGlvbiBsKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBkKGUpe3JldHVybiBkPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LGQoZSl9ZnVuY3Rpb24gcChlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19ZnVuY3Rpb24gZihlKXtyZXR1cm4gZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3JldHVybiBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfSxmKGUpfWZ1bmN0aW9uIGgoZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gZyhlLHQpe3JldHVybiBnPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSxnKGUsdCl9ZnVuY3Rpb24gbShlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9dmFyIHY9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3ZhciBlO3JldHVybiBmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCksZT1mdW5jdGlvbihlLHQpe3JldHVybiF0fHxcIm9iamVjdFwiIT09ZCh0KSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIHQ/aChlKTp0fSh0aGlzLGYodCkuY2FsbCh0aGlzKSksbShoKGUpLFwiY29va2llc1wiLFtcIlByZWZlcmVuY2VzXCIsXCJQZXJmb3JtYW5jZVwiLFwiTWFya2V0aW5nXCJdKSxtKGgoZSksXCJ0b2dnbGVQcmVmZXJlbmNlXCIsKGZ1bmN0aW9uKCl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKG4pe2Uuc2V0U3RhdGUobSh7fSxuLCFlLnN0YXRlW25dKSwoZnVuY3Rpb24oKXsoMCxzLnNldENvb2tpZSkobixlLnN0YXRlW25dLGUucHJvcHMuZG9tYWluLnRvTG93ZXJDYXNlKCkpfSkpLHR8fCh0PSEwLCgwLHMuc2V0Q29va2llKSh1LkNPT0tJRV9LRVlfQ09PS0lFU19BQ0NFUFRFRCx0LGUucHJvcHMuZG9tYWluLnRvTG93ZXJDYXNlKCkpKX19KSksbShoKGUpLFwidG9nZ2xlT3ZlcmxheVwiLChmdW5jdGlvbigpe2Uuc2V0U3RhdGUoe292ZXJsYXlPcGVuOiFlLnN0YXRlLm92ZXJsYXlPcGVufSl9KSksZS50b2dnbGVIYW5kbGVyPWUudG9nZ2xlUHJlZmVyZW5jZSgpLmJpbmQoaChlKSksZS5zdGF0ZT17b3ZlcmxheU9wZW46ITF9LGUuY29va2llcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5zdGF0ZVt0XT0hMX0pKSxlfXZhciBuLGksYztyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiZnKGUsdCl9KHQsZSksbj10LChpPVt7a2V5OlwiY29tcG9uZW50RGlkTW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5jb29raWVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuX19nZXRDb29raWUpKHQpO2Uuc2V0U3RhdGUobSh7fSx0LFwidHJ1ZVwiPT09bikpfSkpfX0se2tleTpcInJlbmRlckNvbnRhaW5lclN0eWxlc1wiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVyblwiXFxuICAgIGEge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgfVxcblxcbiAgICAudGV4dGFydGljbGUge1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgICAgbWFyZ2luOiAwIDIwcHg7XFxuICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICAgfVxcbiAgIC50ZXh0YXJ0aWNsZS1jb250YWluZXIge1xcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xcbiAgICAgIG1heC13aWR0aDogNjQwcHg7XFxuICAgICAgcGFkZGluZzogNjBweCAwO1xcbiAgIH1cXG4gICAgLnRleHRhcnRpY2xlLWNvbnRhaW5lciA+IDpmaXJzdC1jaGlsZCB7XFxuICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICB9XFxuICAgIC50ZXh0YXJ0aWNsZS1jb250YWluZXIgPiA6bGFzdC1jaGlsZCB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7XFxuICAgfVxcbiAgIC50ZXh0YXJ0aWNsZS1jb250YWluZXI6Zmlyc3QtbGV0dGVyIHtcXG4gICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICAgfVxcbiAgICAudGV4dGFydGljbGUgaDEge1xcbiAgICAgIGZvbnQtc2l6ZTogNDBweDtcXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xcbiAgICAgIG1hcmdpbjogMTZweCAwO1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICB9XFxuICAgIC50ZXh0YXJ0aWNsZSBoMTpmaXJzdC1jaGlsZCB7XFxuICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICB9XFxuICAgIC50ZXh0YXJ0aWNsZSBoMSArIC50ZXh0YXJ0aWNsZS1kYXRlIHtcXG4gICAgICBtYXJnaW46IDMwcHggMCA0MHB4O1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICB9XFxuICAgIC50ZXh0YXJ0aWNsZSBoMSArIC50ZXh0YXJ0aWNsZS1kYXRlLXJhbmdlIHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xcbiAgIH1cXG4gICAgLnRleHRhcnRpY2xlIGgxICsgLnRleHRhcnRpY2xlLWRhdGUgKyAudGV4dGFydGljbGUtZGF0ZSB7XFxuICAgICAgbWFyZ2luLXRvcDogLTQwcHg7XFxuICAgfVxcbiAgICAudGV4dGFydGljbGUgaDIge1xcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcXG4gICAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQxNjY2NjY2Njc7XFxuICAgfVxcbiAgICAudGV4dGFydGljbGUgaDIgKyBoMyB7XFxuICAgICAgbWFyZ2luLXRvcDogLTE2cHg7XFxuICAgfVxcbiAgICAudGV4dGFydGljbGUgaDMsIC50ZXh0YXJ0aWNsZSBoNCwgLnRleHRhcnRpY2xlIGg1LCAudGV4dGFydGljbGUgaDYge1xcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgICBmb250LXdlaWdodDogNjAwO1xcbiAgIH1cXG4gICAudGV4dGFydGljbGUgcCwgLnRleHRhcnRpY2xlIG9sLCAudGV4dGFydGljbGUgdWx7XFxuICAgICAgbWFyZ2luOiAxNnB4IDA7XFxuICAgfVxcbiAgICAudGV4dGFydGljbGUgaHIge1xcbiAgICAgIGJvcmRlcjogbm9uZTtcXG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q0ZDRkNDtcXG4gICAgICBtYXJnaW46IDY0cHggMDtcXG4gICB9XFxuICAgIC50ZXh0YXJ0aWNsZS1kYXRlIHtcXG4gICAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICB9XFxuICAgIC50ZXh0YXJ0aWNsZS1kYXRlOmxhc3QtY2hpbGQge1xcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgIH1cXG4gICAgLnRleHRhcnRpY2xlLW92ZXJsYXkge1xcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgYm90dG9tOiAwO1xcbiAgICAgIGxlZnQ6IDA7XFxuICAgICAgcmlnaHQ6IDA7XFxuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNTAwbXM7XFxuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgICAgIG9wYWNpdHk6IDA7XFxuICAgIH1cXG4gICAgLnRleHRhcnRpY2xlLW92ZXJsYXkub3BlbiB7XFxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgICBvcGFjaXR5OiAxO1xcbiAgICB9XFxuICAgIC50ZXh0YXJ0aWNsZS1wb3B1cCB7XFxuICAgICAgbWFyZ2luOiA3MHB4IGF1dG87XFxuICAgICAgcGFkZGluZzogMjBweDtcXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gICAgICB3aWR0aDogNTAlO1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgNXMgZWFzZS1pbi1vdXQ7XFxuICAgIH1cXG4gICAgLnRleHRhcnRpY2xlLWNsb3NlIHtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgdG9wOiA0cHg7XFxuICAgICAgcmlnaHQ6IDIwcHg7XFxuICAgICAgdHJhbnNpdGlvbjogYWxsIDIwMG1zO1xcbiAgICAgIGZvbnQtc2l6ZTogMjVweDtcXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgY29sb3I6ICMzMzM7XFxuICAgIH1cXG4gICAgLnRleHRhcnRpY2xlLXBhcnRuZXJsaXN0IHtcXG4gICAgICBtYXgtaGVpZ2h0OiAzMCU7XFxuICAgIH1cXG5cXG4gICAgLnRvZ2dsZSB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICB3aWR0aDogNDVweDtcXG4gICAgICBoZWlnaHQ6IDIzcHg7XFxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICBcIi5jb25jYXQoZT9cImxlZnQ6IDIwcHhcIjpcInJpZ2h0OiAyMHB4XCIsJ1xcbiAgICB9XFxuICAgIC50b2dnbGUgaW5wdXQge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIH1cXG4gICAgLnNsaWRlciB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICByaWdodDogMDtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZlZWQ3NTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmZjA3O1xcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcXG4gICAgICB0cmFuc2l0aW9uOiAwLjRzO1xcbiAgICB9XFxuICAgIC5zbGlkZXI6YmVmb3JlIHtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FlYjZiZDtcXG4gICAgICBjb250ZW50OiBcIlwiO1xcbiAgICAgIGhlaWdodDogMTlweDtcXG4gICAgICB3aWR0aDogMTlweDtcXG4gICAgICBsZWZ0OiAyMXB4O1xcbiAgICAgIGJvdHRvbTogMXB4O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcXG4gICAgICB0cmFuc2l0aW9uOiAwLjRzO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgfVxcbiAgICBpbnB1dDpob3ZlciArIC5zbGlkZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZmN2E7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZlZWQ3NTtcXG4gICAgfVxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06bm90KDpjaGVja2VkKSArIC5zbGlkZXIge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhZWI2YmQ7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FlYjZiZDtcXG4gICAgfVxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06bm90KDpjaGVja2VkKSArIC5zbGlkZXI6YmVmb3JlIHtcXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XFxuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG4gICAgfVxcbiAgICAuc2xpZGVyLnJvdW5kIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XFxuICAgIH1cXG4gICAgLnNlY3Rpb24taGVhZGxpbmUge1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIH1cXG4gICAgLnNlY3Rpb24taGVhZGxpbmUgaDIge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcXG4gICAgfVxcbiAgICAuc2VjdGlvbi1jb3B5IC50ZXh0YXJ0aWNsZS1idXR0b24ge1xcbiAgICAgIGNvbG9yOiAjM2NiMmUyO1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICB9XFxuICAgIC5zZWN0aW9uLWNvcHkgLnRoaXJkLXBhcnR5LWFkdmVydGlzZXIgYSB7XFxuICAgICAgY29sb3I6ICMzY2IyZTI7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgIH1cXG4gICAgJyl9fSx7a2V5OlwicmVuZGVyXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9KDAsby5pc1J0bExhbmcpKHRoaXMucHJvcHMubG9jYWxlKSxuPXRoaXMuY3JlYXRlU3RyaW5nU2VsZWN0b3IoKSxpPW4oXCJDT09LSUVfU0VUVElOR1NfU0VDVElPTlNcIikscz1uKFwiQWR2ZXJ0aXNlcnNMaXN0XCIpLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLHtjbGFzc05hbWU6XCJ0aGlyZC1wYXJ0eS1hZHZlcnRpc2VyXCIsa2V5OnQsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDplfX0pfSkpLGM9T2JqZWN0LmtleXMoaSkubWFwKChmdW5jdGlvbih0LG8pe3ZhciBjPWlbdF0uY29udGVudFswXS5zcGxpdChuKFwiVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dFwiKSk7cmV0dXJuIHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic2VjdGlvblwiLHtrZXk6byxjbGFzc05hbWU6XCJzZWN0aW9uXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaHJcIixudWxsKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJjb29raWUtc2V0dGluZ3MtY29udGFpbmVyXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcInNlY3Rpb24taGVhZGxpbmVcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJoMlwiLG51bGwsaVt0XS5oZWFkbGluZSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoYS5kZWZhdWx0LHtrZXk6dCxvbkNoYW5nZTpmdW5jdGlvbigpe3JldHVybiBlLnRvZ2dsZUhhbmRsZXIodCl9LGlzVG9nZ2xlZDplLnN0YXRlW3RdfHxcIk5lY2Vzc2FyeVwiPT09dCxkaXNhYmxlZDpcIk5lY2Vzc2FyeVwiPT09dH0pKSxcIk1hcmtldGluZ1wiPT09dD9yLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJzZWN0aW9uLWNvcHlcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6Y1swXX19KSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7Y2xhc3NOYW1lOlwidGV4dGFydGljbGUtYnV0dG9uXCIsb25DbGljazplLnRvZ2dsZU92ZXJsYXl9LG4oXCJUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0XCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIix7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDpjWzFdfX0pLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2lkOlwicG9wdXAxXCIsY2xhc3NOYW1lOlwidGV4dGFydGljbGUtb3ZlcmxheSBcIisoZS5zdGF0ZS5vdmVybGF5T3Blbj9cIm9wZW5cIjpcIlwiKX0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwidGV4dGFydGljbGUtcG9wdXBcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJoMlwiLG51bGwsbihcIlRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dFwiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2NsYXNzTmFtZTpcInRleHRhcnRpY2xlLWNsb3NlXCIsb25DbGljazplLnRvZ2dsZU92ZXJsYXl9LFwiXFx4ZDdcIiksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwidGV4dGFydGljbGUtcGFydG5lcmxpc3RcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLG51bGwscykpKSkpOmlbdF0uY29udGVudC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiByLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInBcIix7Y2xhc3NOYW1lOlwic2VjdGlvbi1jb3B5XCIsZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6e19faHRtbDplfX0pfSkpKSl9KSk7cmV0dXJuIHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYXJ0aWNsZVwiLHtjbGFzc05hbWU6XCJ0ZXh0YXJ0aWNsZVwifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJ0ZXh0YXJ0aWNsZS1jb250YWluZXJcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLG51bGwsdGhpcy5yZW5kZXJDb250YWluZXJTdHlsZXModCkpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaDFcIixudWxsLHRoaXMucHJvcHMuZG9tYWluLFwiIFwiLG4oXCJUaXRsZVwiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsbnVsbCxcIiBcIixuKFwiQm9keVwiKVswXSxcIiBcIiksYykpfX1dKSYmcChuLnByb3RvdHlwZSxpKSxjJiZwKG4sYyksdH0oYy5kZWZhdWx0KTt0LmRlZmF1bHQ9dixtKHYsXCJwcm9wVHlwZXNcIix7ZG9tYWluOmkuZGVmYXVsdC5zdHJpbmcuaXNSZXF1aXJlZH0pfSw3NTY2MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgcj1sKG4oNjcyOTQpKSxpPWwobig0NTY5NykpLG89bigzODM0MSksYT1uKDQ4MTcwKSxzPWwobigyMDA2MCkpLGM9bChuKDg0MDkwKSksdT1sKG4oNzIyMjIpKTtmdW5jdGlvbiBsKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBkKGUpe3JldHVybiBkPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LGQoZSl9ZnVuY3Rpb24gcChlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19ZnVuY3Rpb24gZihlKXtyZXR1cm4gZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3JldHVybiBlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfSxmKGUpfWZ1bmN0aW9uIGgoZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gZyhlLHQpe3JldHVybiBnPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSxnKGUsdCl9ZnVuY3Rpb24gbShlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9dmFyIHY9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXt2YXIgbjtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpLG49ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdHx8XCJvYmplY3RcIiE9PWQodCkmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0P2goZSk6dH0odGhpcyxmKHQpLmNhbGwodGhpcyxlKSksbShoKG4pLFwiZ2V0Rm9udENvbnRyYXN0XCIsKGZ1bmN0aW9uKGUpe3ZhciB0PWU7XCIjXCI9PT10LnNsaWNlKDAsMSkmJih0PXQuc2xpY2UoMSkpLDM9PT10Lmxlbmd0aCYmKHQ9dC5zcGxpdChcIlwiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlK2V9KSkuam9pbihcIlwiKSk7dmFyIG49KDI5OSpwYXJzZUludCh0LnN1YnN0cigwLDIpLDE2KSs1ODcqcGFyc2VJbnQodC5zdWJzdHIoMiwyKSwxNikrMTE0KnBhcnNlSW50KHQuc3Vic3RyKDQsMiksMTYpKS8xZTM7cmV0dXJue3RpdGxlRm9udENvbG9yOm4+PTEyOD9cInJnYmEoMCwwLDAsLjg3KVwiOlwicmdiYSgyNTUsMjU1LDI1NSwuODcpXCIsbGlua0ZvbnRDb2xvcjpuPj0xMjg/XCJyZ2JhKDAsMCwwLC44NylcIjpcInJnYmEoMjU1LDI1NSwyNTUsLjg3KVwiLGxpbmtGb250Q29sb3JIb3ZlcjpuPj0xMjg/XCJibGFja1wiOlwid2hpdGVcIn19KSksbi5sb2NhbGVTZWxlY3RlZD1uLmxvY2FsZVNlbGVjdGVkLmJpbmQoaChuKSksbn12YXIgbixpLHM7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmZyhlLHQpfSh0LGUpLG49dCwoaT1be2tleTpcImNhbGxJbml0RXhwYW5kaW5nQ29sdW1uc1wiLHZhbHVlOmZ1bmN0aW9uKGUpeygwLGEuaW5pdEV4cGFuZGluZ0Zvb3RlckNvbHVtbnMpKGUpfX0se2tleTpcImxvY2FsZVNlbGVjdGVkXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQudmFsdWU7KDAsYS5zZXRMb2NhbGVDb29raWUpKHQsdGhpcy5wcm9wcy5jb29raWVEb21haW4pLHRoaXMucHJvcHMub25Mb2NhbGVTZWxlY3RlZCYmdGhpcy5wcm9wcy5vbkxvY2FsZVNlbGVjdGVkKHQpfX0se2tleTpcInJlbmRlckNvbHVtbkhlYWRlckNhcmV0XCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZvb3Rlci1jb2x1bW4tZXhwYW5kLWNhcmV0XCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIse3dpZHRoOlwiMTVcIixoZWlnaHQ6XCIyMFwiLGZpbGw6ZX0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsbnVsbCxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInJlY3RcIix7c3Ryb2tlOmUsdHJhbnNmb3JtOlwicm90YXRlKDQ1IDAsMClcIixyeDpcIjFcIixpZDpcIjFcIixoZWlnaHQ6XCIxLjVcIix3aWR0aDpcIjEwXCIseTpcIi0yXCIseDpcIjVcIixzdHJva2VXaWR0aDpcIjFcIn0pLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwicmVjdFwiLHtzdHJva2U6ZSx0cmFuc2Zvcm06XCJyb3RhdGUoLTQ1IDAsMClcIixyeDpcIjFcIixpZDpcIjJcIixoZWlnaHQ6XCIxLjVcIix3aWR0aDpcIjEwXCIseTpcIjEzLjVcIix4OlwiLThcIixzdHJva2VXaWR0aDpcIjFcIn0pKSkpfX0se2tleTpcInJlbmRlclwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXRGb250Q29udHJhc3QodGhpcy5wcm9wcy5iYWNrZ3JvdW5kQ29sb3IpLHQ9ZS50aXRsZUZvbnRDb2xvcixuPWUubGlua0ZvbnRDb2xvcixpPWUubGlua0ZvbnRDb2xvckhvdmVyLHM9J1xcbiAgICAgIC5mb290ZXItY29udGFpbmVyLFxcbiAgICAgIC5mb290ZXItYm90dG9tLWJhciB7XFxuICAgICAgICB3aWR0aDogOTIuMyU7XFxuICAgICAgICBtYXgtd2lkdGg6IDEwNzBweDtcXG4gICAgICAgIG1hcmdpbjogYXV0bztcXG4gICAgICB9XFxuXFxuICAgICAgLmZvb3Rlci1jb250YWluZXIge1xcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICBwYWRkaW5nOiAzMHB4IDAgMzBweDtcXG4gICAgICAgIG1pbi1oZWlnaHQ6IDE5NXB4O1xcbiAgICAgIH1cXG5cXG4gICAgICAuZm9vdGVyLWNvbnRhaW5lciAuZm9vdGVyLWNvbHVtbiB7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XFxuICAgICAgICB3aWR0aDogMjUlO1xcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiA2LjI1JTtcXG4gICAgICB9XFxuXFxuICAgICAgW2Rpcj1cInJ0bFwiXSAuZm9vdGVyLWNvbnRhaW5lciAuZm9vdGVyLWNvbHVtbiB7XFxuICAgICAgICBmbG9hdDogcmlnaHQ7XFxuICAgICAgfVxcblxcbiAgICAgIC5mb290ZXItY29udGFpbmVyIC5mb290ZXItY29sdW1uIC5mb290ZXItY29sdW1uLWhlYWRlciB7XFxuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgICAgIGNvbG9yOiAnLmNvbmNhdCh0LFwiO1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XFxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICAgIH1cXG5cXG4gICAgICAuZm9vdGVyLWNvbnRhaW5lciAuZm9vdGVyLWNvbHVtbiAuZm9vdGVyLWNvbHVtbi1leHBhbmQtY2FyZXQge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICB9XFxuXFxuICAgICAgLmZvb3Rlci1jb250YWluZXIgLmZvb3Rlci1jb2x1bW4gYSB7XFxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcXG4gICAgICAgIGNvbG9yOiBcIikuY29uY2F0KG4sXCI7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcXG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcXG4gICAgICB9XFxuICAgICAgLmZvb3Rlci1jb250YWluZXIgLmZvb3Rlci1jb2x1bW4gYTpob3ZlciB7XFxuICAgICAgICBjb2xvcjogXCIpLmNvbmNhdChpLFwiO1xcbiAgICAgIH1cXG5cXG4gICAgICAuZm9vdGVyLWNvbnRhaW5lciAubGFuZ3VlLXNlbGVjdGlvbi1ibG9jayB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogMDtcXG4gICAgICAgIHBhZGRpbmctYmxvY2stZW5kOiAxNXB4O1xcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XFxuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDYuMjUlO1xcbiAgICAgICAgYm90dG9tOiAxNXB4O1xcbiAgICAgICAgd2lkdGg6IDI1JTtcXG4gICAgICB9XFxuICAgICAgLmZvb3Rlci1jb250YWluZXIgLmxhbmd1ZS1zZWxlY3Rpb24tYmxvY2sgLmxhbmd1ZS1oZWFkZXIge1xcbiAgICAgICAgY29sb3I6IFwiKS5jb25jYXQodCxcIjtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgICAgfVxcblxcbiAgICAgIC5mb290ZXItYm90dG9tLWJhciBhIHtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDQwcHg7XFxuICAgICAgICBjb2xvcjogd2hpdGU7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgfVxcblxcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgICAgICAgLmZvb3Rlci1jb250YWluZXIsXFxuICAgICAgICAuZm9vdGVyLWJvdHRvbS1iYXIge1xcbiAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmZvb3Rlci1jb250YWluZXIgLmZvb3Rlci1jb2x1bW4ge1xcbiAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC5mb290ZXItY29udGFpbmVyIC5mb290ZXItY29sdW1uIGEsXFxuICAgICAgICAuZm9vdGVyLWNvbnRhaW5lciAuZm9vdGVyLWNvbHVtbiAuZm9vdGVyLWNvbHVtbi1oZWFkZXIge1xcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDQwcHg7XFxuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuZm9vdGVyLWNvbnRhaW5lciAuZm9vdGVyLWNvbHVtbiAuZm9vdGVyLWNvbHVtbi1oZWFkZXIsXFxuICAgICAgICAuZm9vdGVyLWNvbnRhaW5lciAubGFuZ3VlLXNlbGVjdGlvbi1ibG9jayB7XFxuICAgICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAjRDRENEQ0O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmZvb3Rlci1jb250YWluZXIgLmZvb3Rlci1jb2x1bW4gLmZvb3Rlci1jb2x1bW4taGVhZGVyIHtcXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBcIikuY29uY2F0KHRoaXMucHJvcHMuYmFja2dyb3VuZENvbG9yLFwiO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmZvb3Rlci1jb250YWluZXIgLmZvb3Rlci1jb2x1bW4gLmZvb3Rlci1jb2x1bW4tZXhwYW5kLWNhcmV0IHtcXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAxNnB4O1xcbiAgICAgICAgICB0b3A6IDE1cHg7XFxuICAgICAgICAgIHdpZHRoOiAxNXB4O1xcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDU1JSA0NSU7XFxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgIH1cXG4gICAgICAgIC5mb290ZXItY29udGFpbmVyIC5mb290ZXItY29sdW1uLmV4cGFuZGVkIC5mb290ZXItY29sdW1uLWV4cGFuZC1jYXJldCB7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuZm9vdGVyLWNvbnRhaW5lciAuZm9vdGVyLWNvbHVtbiBhIHtcXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgICAgICAgY29sb3I6IFwiKS5jb25jYXQobixcIjtcXG4gICAgICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICNFNUU1RTU7XFxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgICB9XFxuICAgICAgICAuZm9vdGVyLWNvbnRhaW5lciAuZm9vdGVyLWNvbHVtbi5leHBhbmRlZCBhIHtcXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmZvb3Rlci1jb250YWluZXIgLmxhbmd1ZS1zZWxlY3Rpb24tYmxvY2sge1xcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgICB0b3A6IGluaGVyaXQ7XFxuICAgICAgICAgIHBhZGRpbmc6IDE0cHggMjBweCAxNXB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmZvb3Rlci1ib3R0b20tYmFyIGEge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XFxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcXG4gICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDIwcHg7XFxuICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjRDRENEQ0O1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG4gICAgXCIpLHU9e3Bvc2l0aW9uOlwiYWJzb2x1dGVcIixpbnNldElubGluZUVuZDoxMCx3aWR0aDowLGhlaWdodDowLHBvaW50ZXJFdmVudHM6XCJub25lXCIsYm9yZGVyU3R5bGU6XCJzb2xpZFwifSxsPU9iamVjdC5hc3NpZ24oe30sdSx7Ym90dG9tOjE4LGJvcmRlcldpZHRoOlwiMCAzcHggNXB4IDNweFwiLGJvcmRlckNvbG9yOlwidHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzY2NjY2NiB0cmFuc3BhcmVudFwifSksZD1PYmplY3QuYXNzaWduKHt9LHUse2JvdHRvbToxMCxib3JkZXJXaWR0aDpcIjVweCAzcHggMCAzcHhcIixib3JkZXJDb2xvcjpcIiM2NjY2NjYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnRcIn0pLHA9KDAsYS5nZXREb21haW5Gb3JVUkxzKSh0aGlzLnByb3BzLmRvbWFpbiksZj10aGlzLmNyZWF0ZVN0cmluZ1NlbGVjdG9yKCksaD10aGlzLmdldExvY2FsZSgpLGc9dGhpcy5nZXRMb2NhbGVVcmxTdWZmaXhGb3JXV1coKSxtPXRoaXMucHJvcHMuc25hcENvbVVybCx2PVtdLF89ITAsRT0hMSxiPXZvaWQgMDt0cnl7Zm9yKHZhciBTLHk9dGhpcy5wcm9wcy5hdmFpbGFibGVMb2NhbGVzW1N5bWJvbC5pdGVyYXRvcl0oKTshKF89KFM9eS5uZXh0KCkpLmRvbmUpO189ITApe3ZhciBUPVMudmFsdWU7aWYoby5BTExfTE9DQUxFU1tUXSl7dmFyIEk9VD09PWg7di5wdXNoKHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwib3B0aW9uXCIse2tleTpULHZhbHVlOlQsc2VsZWN0ZWQ6SX0sby5BTExfTE9DQUxFU1tUXSkpfX19Y2F0Y2goTyl7RT0hMCxiPU99ZmluYWxseXt0cnl7X3x8bnVsbD09eS5yZXR1cm58fHkucmV0dXJuKCl9ZmluYWxseXtpZihFKXRocm93IGJ9fXJldHVybiByLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtzdHlsZTp7YmFja2dyb3VuZENvbG9yOnRoaXMucHJvcHMuYmFja2dyb3VuZENvbG9yLGZvbnRTaXplOjE0LGxpbmVIZWlnaHQ6XCIxN3B4XCJ9fSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsbnVsbCxzKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmb290ZXItY29udGFpbmVyXCIsaWQ6XCJmb290ZXJDb250YWluZXJcIixyZWY6dGhpcy5jYWxsSW5pdEV4cGFuZGluZ0NvbHVtbnN9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZvb3Rlci1jb2x1bW5cIn0sdGhpcy5yZW5kZXJDb2x1bW5IZWFkZXJDYXJldChuKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmb290ZXItY29sdW1uLWhlYWRlclwifSxmKFwiQ29tcGFueVwiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixudWxsLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOlwiaHR0cHM6Ly9cIi5jb25jYXQobSxcIi9cIikuY29uY2F0KGgpfSxmKFwiU25hcCBJbmMuXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7aHJlZjpcImh0dHBzOi8vY2FyZWVycy5cIi5jb25jYXQobSl9LGYoXCJDYXJlZXJzXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7aHJlZjpcImh0dHBzOi8vbmV3c3Jvb20uXCIuY29uY2F0KG0pfSxmKFwiTmV3c1wiKSkpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmb290ZXItY29sdW1uXCJ9LHRoaXMucmVuZGVyQ29sdW1uSGVhZGVyQ2FyZXQobiksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZm9vdGVyLWNvbHVtbi1oZWFkZXJcIn0sZihcIkNvbW11bml0eVwiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixudWxsLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOlwiaHR0cHM6Ly9zdXBwb3J0LlwiLmNvbmNhdChwLFwiL1wiKX0sZihcIlN1cHBvcnRcIikpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOlwiaHR0cHM6Ly9cIi5jb25jYXQobSxcIi9cIikuY29uY2F0KGgsXCIvY29tbXVuaXR5LWd1aWRlbGluZXNcIil9LGYoXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL1wiLmNvbmNhdChtLFwiL1wiKS5jb25jYXQoaCxcIi9zYWZldHkvc2FmZXR5LWNlbnRlclwiKX0sZihcIlNhZmV0eSBDZW50ZXJcIikpKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZm9vdGVyLWNvbHVtblwifSx0aGlzLnJlbmRlckNvbHVtbkhlYWRlckNhcmV0KG4pLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZvb3Rlci1jb2x1bW4taGVhZGVyXCJ9LGYoXCJBZHZlcnRpc2luZ1wiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixudWxsLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOlwiaHR0cHM6Ly9cIi5jb25jYXQocCxcIi9cIikuY29uY2F0KGcsXCJhZHNcIil9LGYoXCJCdXkgQWRzXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7aHJlZjpcImh0dHBzOi8vXCIuY29uY2F0KG0sXCIvXCIpLmNvbmNhdChoLFwiL2FkLXBvbGljaWVzL1wiKX0sZihcIkFkdmVydGlzaW5nIFBvbGljaWVzXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7aHJlZjpcImh0dHBzOi8vXCIuY29uY2F0KG0sXCIvXCIpLmNvbmNhdChoLFwiL3BvbGl0aWNhbC1hZHMvXCIpfSxmKFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7aHJlZjpcImh0dHBzOi8vXCIuY29uY2F0KG0sXCIvXCIpLmNvbmNhdChoLFwiL2JyYW5kLWd1aWRlbGluZXMvXCIpfSxmKFwiQnJhbmQgR3VpZGVsaW5lc1wiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL3N1cHBvcnQuXCIuY29uY2F0KHAsXCIvYS9wcm9tb3Rpb25zLXJ1bGVzXCIpfSxmKFwiUHJvbW90aW9ucyBSdWxlc1wiKSkpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmb290ZXItY29sdW1uXCJ9LHRoaXMucmVuZGVyQ29sdW1uSGVhZGVyQ2FyZXQobiksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZm9vdGVyLWNvbHVtbi1oZWFkZXJcIn0sZihcIkxlZ2FsXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLG51bGwsci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL1wiLmNvbmNhdChtLFwiL1wiKS5jb25jYXQoaCxcIi9wcml2YWN5L3ByaXZhY3ktY2VudGVyL1wiKX0sZihcIlByaXZhY3kgQ2VudGVyXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7aHJlZjpcImh0dHBzOi8vaGVscC5zbmFwY2hhdC5jb20vaGMvYXJ0aWNsZXMvMTEzOTkyNjU2MzcwMTI/dXRtX3NvdXJjZT1zbmFwY2hhdF9jb20mdXRtX21lZGl1bT1nbG9iYWxfZm9vdGVyJnV0bV9jYW1wYWlnbj1wcml2YWN5X2Nob2ljZXNcIn0sZihcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7aHJlZjpcImh0dHBzOi8vXCIuY29uY2F0KG0sXCIvXCIpLmNvbmNhdChoLFwiL2Nvb2tpZS1wb2xpY3kvXCIpfSxmKFwiQ29va2llIFBvbGljeVwiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL3N1cHBvcnQuXCIuY29uY2F0KHAsXCIvYXJ0aWNsZS9pbmZyaW5nZW1lbnQtcmVwb3J0aW5nLWFib3V0XCIpfSxmKFwiUmVwb3J0IEluZnJpbmdlbWVudFwiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL1wiLmNvbmNhdChtLFwiL1wiKS5jb25jYXQoaCxcIi90ZXJtcy9jdXN0b20tY3JlYXRpdmUtdG9vbHMvXCIpfSxmKFwiQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPU1wiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL1wiLmNvbmNhdChwLFwiL2NyZWF0ZS90ZXJtcy5odG1sXCIpfSxmKFwiQ09NTVVOSVRZX1RPU1wiKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL1wiLmNvbmNhdChtLFwiL1wiKS5jb25jYXQoaCxcIi90ZXJtcy9sZW5zLXN0dWRpby1saWNlbnNlLWFncmVlbWVudFwiKX0sZihcIkxFTlNfU1RVRElPX1RPU1wiKSkpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtzdHlsZTp7Y2xlYXI6XCJib3RoXCJ9fSksdi5sZW5ndGg+MT9yLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJsYW5ndWUtc2VsZWN0aW9uLWJsb2NrXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImxhbmd1ZS1oZWFkZXJcIn0sZihcIkxhbmd1YWdlXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtzdHlsZTp7cG9zaXRpb246XCJyZWxhdGl2ZVwifX0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIix7aWQ6XCJzYy1nbG9iYWwtbG9jYWxlLXNlbGVjdG9yXCIsb25DaGFuZ2U6dGhpcy5sb2NhbGVTZWxlY3RlZCxzdHlsZTp7V2Via2l0QXBwZWFyYW5jZTpcIm5vbmVcIixNb3pBcHBlYXJhbmNlOlwibm9uZVwiLGFwcGVhcmFuY2U6XCJub25lXCIsYm9yZGVyOlwiMXB4IHNvbGlkICNDQ0NDQ0NcIixib3JkZXJSYWRpdXM6XCI1cHhcIixiYWNrZ3JvdW5kOlwid2hpdGVcIix3aWR0aDpcIjEwMCVcIixtYXJnaW5Ub3A6MTAscGFkZGluZzpcIjVweCAxMHB4XCIsZm9udFNpemU6MTQsZm9udEZhbWlseTpcImluaGVyaXRcIixjb2xvcjpcInJnYmEoMCwgMCwgMCwgMC42KVwiLGhlaWdodDozNCxjdXJzb3I6XCJwb2ludGVyXCJ9fSx2KSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtzdHlsZTpsfSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7c3R5bGU6ZH0pKSk6bnVsbCksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7c3R5bGU6e2JhY2tncm91bmRDb2xvcjpcIiMyNjI2MjZcIn19LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZvb3Rlci1ib3R0b20tYmFyXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOnRoaXMucHJvcHMucHJpdmFjeVBvbGljeVVybE92ZXJyaWRlfHxcImh0dHBzOi8vXCIuY29uY2F0KG0sXCIvXCIpLmNvbmNhdChoLFwiL3ByaXZhY3kvcHJpdmFjeS1wb2xpY3kvXCIpfSxmKFwiUHJpdmFjeSBQb2xpY3lcIikpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOnRoaXMucHJvcHMudGVybXNPZlNlcnZpY2VVcmxPdmVycmlkZXx8XCJodHRwczovL1wiLmNvbmNhdChtLFwiL1wiKS5jb25jYXQoaCxcIi90ZXJtcy9cIil9LGYoXCJUZXJtcyBvZiBTZXJ2aWNlXCIpKSx0aGlzLnByb3BzLnNob3dJbXByZXNzdW0mJnIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOlwiaHR0cHM6Ly9zdXBwb3J0LnNuYXBjaGF0LmNvbS9hL2ltcHJlc3N1bVwiLGNsYXNzTmFtZTpcImltcHJlc3N1bVwifSxmKFwiSW1wcmVzc3VtXCIpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtzdHlsZTp7Y2xlYXI6XCJib3RoXCJ9fSkpKSx0aGlzLnByb3BzLmRpc2FibGVDb29raWVQb3B1cD9udWxsOnIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KGMuZGVmYXVsdCx7bGVmdENvb2tpZUljb25TcmM6XCJodHRwczovL3d3dy5cIi5jb25jYXQocCxcIi9ob21lL2Nvb2tpZS0xLnN2Z1wiKSxyaWdodENvb2tpZUljb25TcmM6XCJodHRwczovL3d3dy5cIi5jb25jYXQocCxcIi9ob21lL2Nvb2tpZS0yLnN2Z1wiKSxjb29raWVQb2xpY3lVcmw6XCJodHRwczovL3d3dy5cIi5jb25jYXQobSxcIi9jb29raWUtcG9saWN5L1wiKSxjb29raWVTZXR0aW5nc1VybDpcImh0dHBzOi8vd3d3LlwiLmNvbmNhdChwLFwiL2Nvb2tpZS1zZXR0aW5nc1wiKSxsb2NhbGU6aCxkb21haW46cCx0aGVtZTp0aGlzLnByb3BzLmNvb2tpZVBvcHVwVGhlbWV9KSl9fSx7a2V5OlwiY29tcG9uZW50RGlkTW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe319XSkmJnAobi5wcm90b3R5cGUsaSkscyYmcChuLHMpLHR9KHMuZGVmYXVsdCk7dC5kZWZhdWx0PXYsbSh2LFwicHJvcFR5cGVzXCIse2RvbWFpbjppLmRlZmF1bHQuc3RyaW5nLGNvb2tpZURvbWFpbjppLmRlZmF1bHQuc3RyaW5nLHNuYXBDb21Vcmw6aS5kZWZhdWx0LnN0cmluZyxsb2NhbGU6aS5kZWZhdWx0LnN0cmluZyxhdmFpbGFibGVMb2NhbGVzOmkuZGVmYXVsdC5hcnJheSxvbkxvY2FsZVNlbGVjdGVkOmkuZGVmYXVsdC5mdW5jLGRpc2FibGVDb29raWVQb3B1cDppLmRlZmF1bHQuYm9vbCx0ZXJtc09mU2VydmljZVVybE92ZXJyaWRlOmkuZGVmYXVsdC5zdHJpbmcscHJpdmFjeVBvbGljeVVybE92ZXJyaWRlOmkuZGVmYXVsdC5zdHJpbmcsc2hvd0ltcHJlc3N1bTppLmRlZmF1bHQuYm9vbCxiYWNrZ3JvdW5kQ29sb3I6aS5kZWZhdWx0LnN0cmluZyxjb29raWVQb3B1cFRoZW1lOmkuZGVmYXVsdC5vbmVPZihPYmplY3Qua2V5cyh1LmRlZmF1bHQpKX0pLG0odixcImRlZmF1bHRQcm9wc1wiLHtkb21haW46by5ERUZBVUxUX0RPTUFJTixjb29raWVEb21haW46XCJcIixzbmFwQ29tVXJsOm8uREVGQVVMVF9TTkFQX0NPTV9ET01BSU4sbG9jYWxlOm51bGwsYXZhaWxhYmxlTG9jYWxlczpvLkRFRkFVTFRfQVZBSUxBQkxFX0xPQ0FMRVMsb25Mb2NhbGVTZWxlY3RlZDpudWxsLGRpc2FibGVDb29raWVQb3B1cDohMSx0ZXJtc09mU2VydmljZVVybE92ZXJyaWRlOm51bGwscHJpdmFjeVBvbGljeVVybE92ZXJyaWRlOm51bGwsc2hvd0ltcHJlc3N1bTohMSxiYWNrZ3JvdW5kQ29sb3I6XCIjRjhGOUZCXCIsY29va2llUG9wdXBUaGVtZTpcIkxpZ2h0XCJ9KX0sMjAwNjA6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIHI9cyhuKDY3Mjk0KSksaT1uKDQ4MTcwKSxvPW4oMzgzNDEpLGE9cyhuKDg2Mjc2KSk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gYyhlKXtyZXR1cm4gYz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSxjKGUpfWZ1bmN0aW9uIHUoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIGwoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4hdHx8XCJvYmplY3RcIiE9PWModCkmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0P2Z1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlfShlKTp0fWZ1bmN0aW9uIHAoZSl7cmV0dXJuIHA9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0scChlKX1mdW5jdGlvbiBmKGUsdCl7cmV0dXJuIGY9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LGYoZSx0KX12YXIgaD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7cmV0dXJuIHUodGhpcyx0KSxkKHRoaXMscCh0KS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXZhciBuLHIscztyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiZmKGUsdCl9KHQsZSksbj10LChyPVt7a2V5OlwiZ2V0TG9jYWxlXCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLnByb3BzLmxvY2FsZSlyZXR1cm4gdGhpcy5wcm9wcy5sb2NhbGU7dmFyIGU9KDAsaS5nZXRDdXJyZW50TG9jYWxlKSgpO3JldHVybiB0aGlzLnByb3BzLmF2YWlsYWJsZUxvY2FsZXMmJi0xPT09dGhpcy5wcm9wcy5hdmFpbGFibGVMb2NhbGVzLmluZGV4T2YoZSk/by5ERUZBVUxUX0xPQ0FMRTplfX0se2tleTpcImdldExvY2FsZVVybFN1ZmZpeEZvcldXV1wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXRMb2NhbGUoKTtyZXR1cm4gZT09PW8uREVGQVVMVF9MT0NBTEV8fC0xPT09by5ERUZBVUxUX0FWQUlMQUJMRV9MT0NBTEVTLmluZGV4T2YoZSk/XCJcIjpcImwvXCIuY29uY2F0KGUudG9Mb3dlckNhc2UoKSxcIi9cIil9fSx7a2V5OlwiY3JlYXRlU3RyaW5nU2VsZWN0b3JcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0TG9jYWxlKCkudG9Mb3dlckNhc2UoKSx0PW8uREVGQVVMVF9MT0NBTEUudG9Mb3dlckNhc2UoKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGEuZGVmYXVsdFtlXSYmYS5kZWZhdWx0W2VdW25dP2EuZGVmYXVsdFtlXVtuXTphLmRlZmF1bHRbdF0mJmEuZGVmYXVsdFt0XVtuXT9hLmRlZmF1bHRbdF1bbl06by5VTlJFU09MVkVEX1NUUklOR319fV0pJiZsKG4ucHJvdG90eXBlLHIpLHMmJmwobixzKSx0fShyLmRlZmF1bHQuQ29tcG9uZW50KTt0LmRlZmF1bHQ9aH0sODI5MDE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIHI9cyhuKDY3Mjk0KSksaT1zKG4oNDU2OTcpKSxvPW4oMzgzNDEpLGE9big0ODE3MCk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gYyhlKXtyZXR1cm4gYz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSxjKGUpfWZ1bmN0aW9uIHUoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIGwoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4hdHx8XCJvYmplY3RcIiE9PWModCkmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0P2Z1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlfShlKTp0fWZ1bmN0aW9uIHAoZSl7cmV0dXJuIHA9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0scChlKX1mdW5jdGlvbiBmKGUsdCl7cmV0dXJuIGY9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LGYoZSx0KX1mdW5jdGlvbiBoKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX12YXIgZz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7cmV0dXJuIHUodGhpcyx0KSxkKHRoaXMscCh0KS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiZmKGUsdCl9KHQsZSksbj10LChpPVt7a2V5OlwicmVuZGVyXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0oMCxhLmdldERvbWFpbkZvclVSTHMpKHRoaXMucHJvcHMuZG9tYWluKSx0PXRoaXMuY3JlYXRlU3RyaW5nU2VsZWN0b3IoKSxuPXRoaXMuZ2V0TG9jYWxlVXJsU3VmZml4Rm9yV1dXKCk7cmV0dXJuIHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse3N0eWxlOntoZWlnaHQ6NDZ9fSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsbnVsbCxcIlxcbiAgICAgIC5oZWFkZXItY29udGFpbmVyIHtcXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkMwMDtcXG4gICAgICAgIGhlaWdodDogNDZweDtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NnB4O1xcbiAgICAgICAgei1pbmRleDogMTAwMDtcXG4gICAgICB9XFxuXFxuICAgICAgLmdsb2JhbG5hdi1jb250YWluZXIge1xcbiAgICAgICAgd2lkdGg6IDkyLjMlO1xcbiAgICAgICAgbWF4LXdpZHRoOiAxMDcwcHg7XFxuICAgICAgICBtYXJnaW46IGF1dG87XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICAgIH1cXG5cXG4gICAgICAuZ2xvYmFsbmF2LWNvbnRhaW5lciAuZ2xvYmFsbmF2LWl0ZW0ge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xcbiAgICAgICAgcGFkZGluZzogMnB4O1xcbiAgICAgIH1cXG5cXG4gICAgICAuZ2xvYmFsbmF2LWNvbnRhaW5lciAuZ2xvYmFsbmF2LWl0ZW06aG92ZXIge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMzgsIDM4LCAzOCwgMC41KTtcXG4gICAgICB9XFxuXFxuICAgICAgLnNjLWhlYWRlci1zZWxlY3RlZC1ob21lIC5nbG9iYWxuYXYtaG9tZS1saW5rLFxcbiAgICAgIC5zYy1oZWFkZXItc2VsZWN0ZWQtY3JlYXRlIC5nbG9iYWxuYXYtY3JlYXRlLWxpbmssXFxuICAgICAgLnNjLWhlYWRlci1zZWxlY3RlZC1saXZlIC5nbG9iYWxuYXYtbGl2ZS1saW5rLFxcbiAgICAgIC5zYy1oZWFkZXItc2VsZWN0ZWQtc25hcGNvZGVzIC5nbG9iYWxuYXYtc25hcGNvZGVzLWxpbmssXFxuICAgICAgLnNjLWhlYWRlci1zZWxlY3RlZC1hZHMgLmdsb2JhbG5hdi1hZHMtbGluayxcXG4gICAgICAuc2MtaGVhZGVyLXNlbGVjdGVkLWRvd25sb2FkIC5nbG9iYWxuYXYtZG93bmxvYWQtbGluayB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiKDM4LCAzOCwgMzgpO1xcbiAgICAgIH1cXG5cXG4gICAgICAuZ2xvYmFsbmF2LWNvbnRhaW5lciAuZ2xvYmFsbmF2LWxpbmsge1xcbiAgICAgICAgY29sb3I6IHJnYigzOCwgMzgsIDM4KTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDVweDtcXG4gICAgICB9XFxuXFxuICAgICAgLmdsb2JhbG5hdi1jb250YWluZXIgLmdsb2JhbG5hdi1naG9zdC1pY29uLWxpbmsge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiA5cHg7XFxuICAgICAgfVxcblxcbiAgICAgIC5nbG9iYWxuYXYtY29udGFpbmVyIC5nbG9iYWxuYXYtaG9tZS1saW5rIHtcXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgICB9XFxuXFxuICAgICAgLmhlYWRlci1oYW1idXJnZXIge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICB9XFxuXFxuICAgICAgLnNjLWhlYWRlci1yZXBsYWNlLWdob3N0LWhvbWUtd2l0aC10ZXh0IC5nbG9iYWxuYXYtY29udGFpbmVyIC5nbG9iYWxuYXYtZ2hvc3QtaWNvbi1saW5rIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgfVxcbiAgICAgIC5zYy1oZWFkZXItcmVwbGFjZS1naG9zdC1ob21lLXdpdGgtdGV4dCAuZ2xvYmFsbmF2LWNvbnRhaW5lciAuZ2xvYmFsbmF2LWhvbWUtbGluayB7XFxuICAgICAgICB2aXNpYmlsaXR5OiBpbmhlcml0O1xcbiAgICAgIH1cXG4gICAgICAuc2MtaGVhZGVyLXdoaXRlIC5oZWFkZXItY29udGFpbmVyLFxcbiAgICAgIC5zYy1oZWFkZXItd2hpdGUuaGVhZGVyLWNvbnRhaW5lciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgICB9XFxuXFxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDEwNzBweCkge1xcbiAgICAgICAgLnNjLWhlYWRlci13aGl0ZSAuaGVhZGVyLWNvbnRhaW5lcixcXG4gICAgICAgIC5zYy1oZWFkZXItd2hpdGUuaGVhZGVyLWNvbnRhaW5lciB7XFxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMTA3MHB4KSB7XFxuICAgICAgICAuZ2xvYmFsbmF2LWNvbnRhaW5lciB7XFxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgdG9wOiA0NnB4O1xcbiAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNENEQ0RDQ7XFxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgICAgICAgbWF4LWhlaWdodDogMDtcXG4gICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuMjVzIGVhc2UtaW4tb3V0O1xcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgfVxcbiAgICAgICAgLmdsb2JhbG5hdi1jb250YWluZXIgLmdsb2JhbG5hdi1naG9zdC1pY29uLWxpbmsge1xcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmhhbWJ1cmdlci1leHBhbmRlZCAuZ2xvYmFsbmF2LWNvbnRhaW5lciB7XFxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDRENEQ0O1xcbiAgICAgICAgICBtYXgtaGVpZ2h0OiA2MjBweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC5nbG9iYWxuYXYtY29udGFpbmVyIC5nbG9iYWxuYXYtaG9tZS1saW5rIHtcXG4gICAgICAgICAgdmlzaWJpbGl0eTogaW5oZXJpdDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC8qIGEgaG92ZXIgc2VsZWN0b3IgdG8gb3ZlcndyaXRlIGRlc2t0b3AgaG92ZXIgaGlnaHRsaWdodCAqL1xcbiAgICAgICAgLmdsb2JhbG5hdi1jb250YWluZXIgLmdsb2JhbG5hdi1pdGVtLFxcbiAgICAgICAgLmdsb2JhbG5hdi1jb250YWluZXIgLmdsb2JhbG5hdi1pdGVtOmhvdmVyIHtcXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjhGOUZCO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmdsb2JhbG5hdi1jb250YWluZXIgLmdsb2JhbG5hdi1pdGVtOmhvdmVyIHtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0Y4RjlGQjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC5nbG9iYWxuYXYtY29udGFpbmVyIC5nbG9iYWxuYXYtaXRlbSAuZ2xvYmFsbmF2LWxpbmsge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMTNweDtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDQ2cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuc2MtaGVhZGVyLXNlbGVjdGVkLWhvbWUgLmdsb2JhbG5hdi1ob21lLWxpbmssXFxuICAgICAgICAuc2MtaGVhZGVyLXNlbGVjdGVkLWNyZWF0ZSAuZ2xvYmFsbmF2LWNyZWF0ZS1saW5rLFxcbiAgICAgICAgLnNjLWhlYWRlci1zZWxlY3RlZC1saXZlIC5nbG9iYWxuYXYtbGl2ZS1saW5rLFxcbiAgICAgICAgLnNjLWhlYWRlci1zZWxlY3RlZC1zbmFwY29kZXMgLmdsb2JhbG5hdi1zbmFwY29kZXMtbGluayxcXG4gICAgICAgIC5zYy1oZWFkZXItc2VsZWN0ZWQtYWRzIC5nbG9iYWxuYXYtYWRzLWxpbmssXFxuICAgICAgICAuc2MtaGVhZGVyLXNlbGVjdGVkLWRvd25sb2FkIC5nbG9iYWxuYXYtZG93bmxvYWQtbGluayB7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGOEY5RkI7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuaGVhZGVyLWhhbWJ1cmdlciB7XFxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgICAgICB3aWR0aDogMjBweDtcXG4gICAgICAgICAgaGVpZ2h0OiAxNXB4O1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgICB0b3A6IDE0cHg7XFxuICAgICAgICAgIHJpZ2h0OiAxNXB4O1xcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XFxuICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC5oZWFkZXItaGFtYnVyZ2VyIHNwYW4ge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgICBoZWlnaHQ6IDIuNXB4O1xcbiAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiKDM4LCAzOCwgMzgpO1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgICAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgICAgIGxlZnQ6IDA7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgICAgICAgICB0cmFuc2l0aW9uOiAuMjVzIGVhc2UtaW4tb3V0O1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuaGVhZGVyLWhhbWJ1cmdlciBzcGFuOm50aC1jaGlsZCgxKSB7XFxuICAgICAgICAgIHRvcDogMHB4O1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC5oZWFkZXItaGFtYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDIpIHtcXG4gICAgICAgICAgdG9wOiA2cHg7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmhlYWRlci1oYW1idXJnZXIgc3BhbjpudGgtY2hpbGQoMykge1xcbiAgICAgICAgICB0b3A6IDEycHg7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmhhbWJ1cmdlci1leHBhbmRlZCAuaGVhZGVyLWhhbWJ1cmdlciBzcGFuOm50aC1jaGlsZCgxKSB7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVZKC0xLjVweCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuaGFtYnVyZ2VyLWV4cGFuZGVkIC5oZWFkZXItaGFtYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDIpIHtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XFxuICAgICAgICAgIG9wYWNpdHk6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuaGFtYnVyZ2VyLWV4cGFuZGVkIC5oZWFkZXItaGFtYnVyZ2VyIHNwYW46bnRoLWNoaWxkKDMpIHtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVZKDFweCk7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICBcIiksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiaGVhZGVyLWNvbnRhaW5lclwifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJoZWFkZXItaGFtYnVyZ2VyXCIsaWQ6XCJoZWFkZXJIYW1idXJnZXJcIixyZWY6YS5yZWdpc3RlckhhbWJ1cmdlckV2ZW50c30sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsbnVsbCksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsbnVsbCksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsbnVsbCkpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1jb250YWluZXJcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6XCJodHRwczovL3d3dy5cIi5jb25jYXQoZSxcIi9cIikuY29uY2F0KG4pLGNsYXNzTmFtZTpcImdsb2JhbG5hdi1naG9zdC1pY29uLWxpbmtcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIix7c3JjOlwiaHR0cHM6Ly93d3cuXCIuY29uY2F0KGUsXCIvc3RhdGljL3N0eWxlLWd1aWRlL2ltYWdlcy9naG9zdC9naG9zdC5zdmdcIiksYWx0OnQoXCJTbmFwY2hhdFwiKSxzdHlsZTp7aGVpZ2h0OjY0fX0pKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtaXRlbSBnbG9iYWxuYXYtaG9tZS1saW5rXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtbGlua1wiLGhyZWY6XCJodHRwczovL3d3dy5cIi5jb25jYXQoZSxcIi9cIikuY29uY2F0KG4pfSx0KFwiSG9tZVwiKSkpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1pdGVtIGdsb2JhbG5hdi1kb3dubG9hZC1saW5rXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtbGlua1wiLGhyZWY6XCJodHRwczovL3d3dy5cIi5jb25jYXQoZSxcIi9cIikuY29uY2F0KG4sXCJkb3dubG9hZFwiKX0sdChcIkRvd25sb2FkXCIpKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWl0ZW0gZ2xvYmFsbmF2LXNuYXBjb2Rlcy1saW5rXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtbGlua1wiLGhyZWY6XCJodHRwczovL3N0b3J5LlwiLmNvbmNhdChlLFwiL3Nwb3RsaWdodFwiKX0sdChcIlNwb3RsaWdodFwiKSkpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1pdGVtIGdsb2JhbG5hdi1zdG9yaWVzLWxpbmtcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1saW5rXCIsaHJlZjpcImh0dHBzOi8vc3RvcnkuXCIuY29uY2F0KGUpfSx0KFwiU3Rvcmllc1wiKSkpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1pdGVtIGdsb2JhbG5hdi1tYXAtbGlua1wifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWxpbmtcIixocmVmOlwiaHR0cHM6Ly9tYXAuXCIuY29uY2F0KGUpfSx0KFwiTWFwXCIpKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWl0ZW0gZ2xvYmFsbmF2LWFkcy1saW5rXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtbGlua1wiLGhyZWY6XCJodHRwczovL3d3dy5cIi5jb25jYXQoZSxcIi9cIikuY29uY2F0KG4sXCJhZHNcIil9LHQoXCJBZHNcIikpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtaXRlbSBnbG9iYWxuYXYtc3BlY3RhY2xlcy1saW5rXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtbGlua1wiLGhyZWY6XCJodHRwczovL3d3dy5zcGVjdGFjbGVzLmNvbVwifSx0KFwiU3BlY3RhY2xlc1wiKSkpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1pdGVtIGdsb2JhbG5hdi1jcmVhdGUtbGlua1wifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWxpbmtcIixocmVmOlwiaHR0cHM6Ly93d3cuXCIuY29uY2F0KGUsXCIvXCIpLmNvbmNhdChuLFwiY3JlYXRlXCIpfSx0KFwiQ3JlYXRlXCIpKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWl0ZW0gZ2xvYmFsbmF2LWxlbnNzdHVkaW8tbGlua1wifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWxpbmtcIixocmVmOlwiaHR0cHM6Ly9sZW5zc3R1ZGlvLlwiLmNvbmNhdChlKX0sdChcIkxlbnMgU3R1ZGlvXCIpKSksci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWl0ZW0gZ2xvYmFsbmF2LWtpdC1saW5rXCJ9LHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYVwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtbGlua1wiLGhyZWY6XCJodHRwczovL2tpdC5cIi5jb25jYXQoZSl9LHQoXCJLaXRcIikpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtaXRlbSBnbG9iYWxuYXYtc25hcGNvZGVzLWxpbmtcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1saW5rXCIsaHJlZjpcImh0dHBzOi8vc25hcGNvZGVzLlwiLmNvbmNhdChlKX0sdChcIlNuYXBjb2Rlc1wiKSkpLHIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImdsb2JhbG5hdi1pdGVtIGdsb2JhbG5hdi1zbmFwY29kZXMtbGlua1wifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWxpbmtcIixocmVmOlwiaHR0cHM6Ly9zdXBwb3J0LlwiLmNvbmNhdChlKX0sdChcIlN1cHBvcnRcIikpKSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJnbG9iYWxuYXYtaXRlbSBnbG9iYWxuYXYtc3RvcmUtbGlua1wifSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIix7Y2xhc3NOYW1lOlwiZ2xvYmFsbmF2LWxpbmtcIixocmVmOlwiaHR0cHM6Ly9zdG9yZS5cIi5jb25jYXQoZSl9LHQoXCJTdG9yZVwiKSkpKSkpfX1dKSYmbChuLnByb3RvdHlwZSxpKSxvJiZsKG4sbyksdH0ocyhuKDIwMDYwKSkuZGVmYXVsdCk7dC5kZWZhdWx0PWcsaChnLFwicHJvcFR5cGVzXCIse2RvbWFpbjppLmRlZmF1bHQuc3RyaW5nLGxvY2FsZTppLmRlZmF1bHQuc3RyaW5nfSksaChnLFwiZGVmYXVsdFByb3BzXCIse2RvbWFpbjpvLkRFRkFVTFRfRE9NQUlOLGxvY2FsZTpudWxsfSl9LDM5NzMwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIlNuYXBjaGF0SGVhZGVyXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIlNuYXBjaGF0Rm9vdGVyXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIkNvb2tpZVBvcHVwXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIkNvb2tpZVNldHRpbmdzXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImluaXRDb29raWVQb2xpY3lQb3B1cFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmluaXRDb29raWVQb2xpY3lQb3B1cH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImdldEN1cnJlbnRMb2NhbGVcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5nZXRDdXJyZW50TG9jYWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwic2V0TG9jYWxlQ29va2llXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMuc2V0TG9jYWxlQ29va2llfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiaW5pdEV4cGFuZGluZ0Zvb3RlckNvbHVtbnNcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5pbml0RXhwYW5kaW5nRm9vdGVyQ29sdW1uc319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInJlZ2lzdGVySGFtYnVyZ2VyRXZlbnRzXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMucmVnaXN0ZXJIYW1idXJnZXJFdmVudHN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2dldENvb2tpZVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBjLl9fZ2V0Q29va2llfX0pO3ZhciByPXUobig4MjkwMSkpLGk9dShuKDc1NjYwKSksbz11KG4oODQwOTApKSxhPXUobig4ODIzKSkscz1uKDQ4MTcwKSxjPW4oNzM1MjEpO2Z1bmN0aW9uIHUoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fX0sODYyNzY6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBuPXthcjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiXFx1MDY0NlxcdTA2MzhcXHUwNjI3XFx1MDYzMVxcdTA2MjkgU3BlY3RhY2xlc1wiLExpdmU6XCJcXHUwNjQ1XFx1MDYyOFxcdTA2MjdcXHUwNjM0XFx1MDYzMVwiLEFkczpcIlxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzlcXHUwNjQ0XFx1MDYyN1xcdTA2NDZcXHUwNjI3XFx1MDYyYVwiLENvbXBhbnk6XCJcXHUwNjI3XFx1MDY0NFxcdTA2MzRcXHUwNjMxXFx1MDY0M1xcdTA2MjlcIixIb21lOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjM1XFx1MDY0MVxcdTA2MmRcXHUwNjI5IFxcdTA2MjdcXHUwNjQ0XFx1MDYzMVxcdTA2MjZcXHUwNjRhXFx1MDYzM1xcdTA2NGFcXHUwNjI5XCIsQmxvZzpcIlxcdTA2MjdcXHUwNjQ0XFx1MDY0NVxcdTA2MmZcXHUwNjQ4XFx1MDY1MVxcdTA2NDZcXHUwNjI5XCIsSm9iczpcIlxcdTA2MjdcXHUwNjQ0XFx1MDY0OFxcdTA2MzhcXHUwNjI3XFx1MDYyNlxcdTA2NDFcIixDYXJlZXJzOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjQ4XFx1MDYzOFxcdTA2MjdcXHUwNjI2XFx1MDY0MVwiLFByZXNzOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjM1XFx1MDYyZFxcdTA2MjdcXHUwNjQxXFx1MDYyOVwiLE5ld3M6XCJcXHUwNjI3XFx1MDY0NFxcdTA2MjNcXHUwNjJlXFx1MDYyOFxcdTA2MjdcXHUwNjMxXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDY0MVxcdTA2MzNcXHUwNjI3XFx1MDYzMVxcdTA2MjdcXHUwNjJhIFxcdTA2MjdcXHUwNjQ0XFx1MDYzNVxcdTA2MmRcXHUwNjQxXFx1MDY0YVxcdTA2MjlcIixUd2l0dGVyOlwiXFx1MDYyYVxcdTA2NDhcXHUwNjRhXFx1MDYyYVxcdTA2MzFcIixMYW5ndWFnZTpcIlxcdTA2MjdcXHUwNjQ0XFx1MDY0NFxcdTA2M2FcXHUwNjI5XCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiXFx1MDYyYVxcdTA2MmRcXHUwNjQ1XFx1MDY0YVxcdTA2NDQgU25hcGNoYXRcIixEb3dubG9hZDpcIlxcdTA2MmFcXHUwNjQ2XFx1MDYzMlxcdTA2NGFcXHUwNjQ0XCIsS2l0OlwiXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDYyY1xcdTA2NDVcXHUwNjQ4XFx1MDYzOVxcdTA2MjlcIixTdG9yaWVzOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjQyXFx1MDYzNVxcdTA2MzVcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiXFx1MDY0NVxcdTA2MmFcXHUwNjJjXFx1MDYzMVwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgXFx1MDY0NFxcdTA2NDAgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgXFx1MDY0NFxcdTA2NDAgXFx1MDYyM1xcdTA2NDZcXHUwNjJmXFx1MDYzMVxcdTA2NDhcXHUwNjRhXFx1MDYyZlwiLENvbW11bml0eTpcIlxcdTA2MjdcXHUwNjQ0XFx1MDY0NVxcdTA2MmNcXHUwNjJhXFx1MDY0NVxcdTA2MzlcIixTdXBwb3J0OlwiXFx1MDYyN1xcdTA2NDRcXHUwNjJmXFx1MDYzOVxcdTA2NDVcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJcXHUwNjI3XFx1MDY0NFxcdTA2MjVcXHUwNjMxXFx1MDYzNFxcdTA2MjdcXHUwNjJmXFx1MDYyN1xcdTA2MmEgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDYyY1xcdTA2MmFcXHUwNjQ1XFx1MDYzOVxcdTA2NGFcXHUwNjI5XCIsXCJTYWZldHkgQ2VudGVyXCI6XCJcXHUwNjQ1XFx1MDYzMVxcdTA2NDNcXHUwNjMyIFxcdTA2MjdcXHUwNjQ0XFx1MDYzM1xcdTA2NDRcXHUwNjI3XFx1MDY0NVxcdTA2MjlcIixTbmFwY29kZXM6XCJcXHUwNjMxXFx1MDY0NVxcdTA2NDhcXHUwNjMyIFNuYXBcIixHZW9maWx0ZXJzOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjQxXFx1MDY0NFxcdTA2MjdcXHUwNjJhXFx1MDYzMSBcXHUwNjI3XFx1MDY0NFxcdTA2MmNcXHUwNjNhXFx1MDYzMVxcdTA2MjdcXHUwNjQxXFx1MDY0YVxcdTA2MjlcIixDcmVhdGU6XCJcXHUwNjI3XFx1MDY0NFxcdTA2NDFcXHUwNjQ0XFx1MDYyN1xcdTA2MmFcXHUwNjMxIFxcdTA2NDhcXHUwNjI3XFx1MDY0NFxcdTA2MzlcXHUwNjJmXFx1MDYzM1xcdTA2MjdcXHUwNjJhXCIsTWFwOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDYzMVxcdTA2NGFcXHUwNjM3XFx1MDYyOVwiLEFkdmVydGlzaW5nOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjI1XFx1MDYzOVxcdTA2NDRcXHUwNjI3XFx1MDY0NlxcdTA2MjdcXHUwNjJhXCIsXCJCdXkgQWRzXCI6XCJcXHUwNjM0XFx1MDYzMVxcdTA2MjdcXHUwNjIxIFxcdTA2MjVcXHUwNjM5XFx1MDY0NFxcdTA2MjdcXHUwNjQ2XFx1MDYyN1xcdTA2MmFcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHUwNjMzXFx1MDY0YVxcdTA2MjdcXHUwNjMzXFx1MDYyN1xcdTA2MmEgXFx1MDYyN1xcdTA2NDRcXHUwNjI1XFx1MDYzOVxcdTA2NDRcXHUwNjI3XFx1MDY0NlwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJcXHUwNjQ1XFx1MDY0M1xcdTA2MmFcXHUwNjI4XFx1MDYyOSBcXHUwNjI3XFx1MDY0NFxcdTA2MjVcXHUwNjM5XFx1MDY0NFxcdTA2MjdcXHUwNjQ2XFx1MDYyN1xcdTA2MmEgXFx1MDYyN1xcdTA2NDRcXHUwNjMzXFx1MDY0YVxcdTA2MjdcXHUwNjMzXFx1MDY0YVxcdTA2MjlcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIlxcdTA2MjVcXHUwNjMxXFx1MDYzNFxcdTA2MjdcXHUwNjJmXFx1MDYyN1xcdTA2MmEgXFx1MDYyN1xcdTA2NDRcXHUwNjM5XFx1MDY0NFxcdTA2MjdcXHUwNjQ1XFx1MDYyOSBcXHUwNjI3XFx1MDY0NFxcdTA2MmFcXHUwNjJjXFx1MDYyN1xcdTA2MzFcXHUwNjRhXFx1MDYyOVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MDY0MlxcdTA2NDhcXHUwNjI3XFx1MDYzOVxcdTA2MmYgXFx1MDYyN1xcdTA2NDRcXHUwNjM5XFx1MDYzMVxcdTA2NDhcXHUwNjM2IFxcdTA2MjdcXHUwNjQ0XFx1MDYyYVxcdTA2MzFcXHUwNjQ4XFx1MDY0YVxcdTA2MmNcXHUwNjRhXFx1MDYyOVwiLExlZ2FsOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjQyXFx1MDYzM1xcdTA2NDUgXFx1MDYyN1xcdTA2NDRcXHUwNjQyXFx1MDYyN1xcdTA2NDZcXHUwNjQ4XFx1MDY0NlxcdTA2NGFcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTA2MzRcXHUwNjMxXFx1MDY0OFxcdTA2MzcgXFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDYyZlxcdTA2NDVcXHUwNjI5XCIsSW1wcmVzc3VtOlwiXFx1MDYyNVxcdTA2MmVcXHUwNjQ0XFx1MDYyN1xcdTA2MjEgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDYzM1xcdTA2MjRcXHUwNjQ4XFx1MDY0NFxcdTA2NGFcXHUwNjI5XCIsXCJQcml2YWN5IFBvbGljeVwiOlwiXFx1MDYzM1xcdTA2NGFcXHUwNjI3XFx1MDYzM1xcdTA2MjkgXFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDYzNVxcdTA2NDhcXHUwNjM1XFx1MDY0YVxcdTA2MjlcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHUwNjQ1XFx1MDYzMVxcdTA2NDNcXHUwNjMyIFxcdTA2MjdcXHUwNjQ0XFx1MDYyZVxcdTA2MzVcXHUwNjQ4XFx1MDYzNVxcdTA2NGFcXHUwNjI5XCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHUwNjMzXFx1MDY0YVxcdTA2MjdcXHUwNjMzXFx1MDYyOSBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyAoXFx1MDY0M1xcdTA2NDhcXHUwNjQzXFx1MDY0YVxcdTA2MzIpXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6J1xcdTA2MzRcXHUwNjMxXFx1MDY0OFxcdTA2MzcgXFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDYyZlxcdTA2NDVcXHUwNjI5IFxcdTA2NDRcXHUwNjJlXFx1MDYyN1xcdTA2MzVcXHUwNjRhXFx1MDYyOSBcIlxcdTA2MjdcXHUwNjQ0XFx1MDYzMFxcdTA2NDNcXHUwNjMxXFx1MDY0YVxcdTA2MjdcXHUwNjJhXCInLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJcXHUwNjM0XFx1MDYzMVxcdTA2NDhcXHUwNjM3IFxcdTA2MjNcXHUwNjJmXFx1MDY0OFxcdTA2MjdcXHUwNjJhIFxcdTA2MjdcXHUwNjQ0XFx1MDYyYVxcdTA2MzVcXHUwNjQ1XFx1MDY0YVxcdTA2NDUgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDYyZVxcdTA2MzVcXHUwNjM1XFx1MDYyOVwiLENPTU1VTklUWV9UT1M6XCJcXHUwNjM0XFx1MDYzMVxcdTA2NDhcXHUwNjM3IFxcdTA2MjdcXHUwNjQ0XFx1MDYyY1xcdTA2NGFcXHUwNjQ4XFx1MDY0MVxcdTA2NDRcXHUwNjJhXFx1MDYzMVxcdTA2MjdcXHUwNjJhIFxcdTA2MjdcXHUwNjQ0XFx1MDY0NVxcdTA2MmNcXHUwNjJhXFx1MDY0NVxcdTA2MzlcXHUwNjRhXFx1MDYyOVwiLExFTlNfU1RVRElPX1RPUzpcIlxcdTA2MzRcXHUwNjMxXFx1MDY0OFxcdTA2MzcgTGVucyBTdHVkaW9cIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHUwNjJlXFx1MDY0YVxcdTA2MjdcXHUwNjMxXFx1MDYyN1xcdTA2MmEgXFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDYzNVxcdTA2NDhcXHUwNjM1XFx1MDY0YVxcdTA2MjkgXFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDYyN1xcdTA2MzVcXHUwNjI5IFxcdTA2MjhcXHUwNjQzXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDYyN1xcdTA2NDRcXHUwNjQ0XFx1MDYyN1xcdTA2MzJcXHUwNjQ1XFx1MDYyOVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlxcdTA2NDZcXHUwNjJkXFx1MDY0NiBcXHUwNjQ2XFx1MDYzM1xcdTA2MmFcXHUwNjJlXFx1MDYyZlxcdTA2NDUgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDY0N1xcdTA2MzBcXHUwNjQ3PC9hPiBcXHUwNjQ0XFx1MDY0NFxcdTA2NDVcXHUwNjMzXFx1MDYyN1xcdTA2MzlcXHUwNjJmXFx1MDYyOSBcXHUwNjM5XFx1MDY0NFxcdTA2NDkgXFx1MDYyYVxcdTA2MzRcXHUwNjNhXFx1MDY0YVxcdTA2NDQgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDY0OFxcdTA2NDJcXHUwNjM5LiBcXHUwNjQ4XFx1MDY0NlxcdTA2MzhcXHUwNjMxXFx1MDY0YlxcdTA2MjcgXFx1MDY0NFxcdTA2MzZcXHUwNjMxXFx1MDY0OFxcdTA2MzFcXHUwNjI5IFxcdTA2MjdcXHUwNjMzXFx1MDYyYVxcdTA2MmVcXHUwNjJmXFx1MDYyN1xcdTA2NDUgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDY0N1xcdTA2MzBcXHUwNjQ3XFx1MDYwYyBcXHUwNjQ0XFx1MDYyNyBcXHUwNjRhXFx1MDY0NVxcdTA2NDNcXHUwNjQ2XFx1MDY0MyBcXHUwNjI1XFx1MDY0YVxcdTA2NDJcXHUwNjI3XFx1MDY0MVxcdTA2NDdcXHUwNjI3LiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwNjI3XFx1MDY0NFxcdTA2MmFcXHUwNjQxXFx1MDYzNlxcdTA2NGFcXHUwNjQ0XFx1MDYyN1xcdTA2MmFcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTA2NDZcXHUwNjJkXFx1MDY0NiBcXHUwNjQ2XFx1MDYzM1xcdTA2MmFcXHUwNjJlXFx1MDYyZlxcdTA2NDUgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDY0N1xcdTA2MzBcXHUwNjQ3PC9hPiBcXHUwNjQ0XFx1MDY0NlxcdTA2MmFcXHUwNjMwXFx1MDY0M1xcdTA2MzEgXFx1MDYyYVxcdTA2NDFcXHUwNjM2XFx1MDY0YVxcdTA2NDRcXHUwNjI3XFx1MDYyYVxcdTA2NDMgXFx1MDY0OFxcdTA2NDZcXHUwNjJkXFx1MDYzM1xcdTA2NTFcXHUwNjQ2IFxcdTA2MmFcXHUwNjJjXFx1MDYzMVxcdTA2MjhcXHUwNjJhXFx1MDY0MyBcXHUwNjM5XFx1MDY0NFxcdTA2NDkgXFx1MDY0NVxcdTA2NDhcXHUwNjQyXFx1MDYzOVxcdTA2NDZcXHUwNjI3LiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJcXHUwNjI3XFx1MDY0NFxcdTA2MjNcXHUwNjJmXFx1MDYyN1xcdTA2MjEgXFx1MDY0OFxcdTA2MjdcXHUwNjQ0XFx1MDYyYVxcdTA2MmRcXHUwNjQ0XFx1MDY0YVxcdTA2NDRcXHUwNjI3XFx1MDYyYVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+XFx1MDY0NlxcdTA2MmRcXHUwNjQ2IFxcdTA2NDZcXHUwNjMzXFx1MDYyYVxcdTA2MmVcXHUwNjJmXFx1MDY0NSBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjQ3XFx1MDYzMFxcdTA2NDc8L2E+IFxcdTA2NDRcXHUwNjJjXFx1MDY0NVxcdTA2MzkgXFx1MDY0NVxcdTA2MzlcXHUwNjQ0XFx1MDY0OFxcdTA2NDVcXHUwNjI3XFx1MDYyYSBcXHUwNjJkXFx1MDY0OFxcdTA2NDQgXFx1MDY0M1xcdTA2NGFcXHUwNjQxXFx1MDY0YVxcdTA2MjkgXFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYyZVxcdTA2MmZcXHUwNjI3XFx1MDY0NVxcdTA2NDMgXFx1MDY0NFxcdTA2NDVcXHUwNjQ4XFx1MDY0MlxcdTA2MzlcXHUwNjQ2XFx1MDYyNyBcXHUwNjI3XFx1MDY0NFxcdTA2MjVcXHUwNjQ0XFx1MDY0M1xcdTA2MmFcXHUwNjMxXFx1MDY0OFxcdTA2NDZcXHUwNjRhIFxcdTA2NDhcXHUwNjQ1XFx1MDYzMVxcdTA2MjdcXHUwNjQyXFx1MDYyOFxcdTA2MjkgXFx1MDYyM1xcdTA2MmZcXHUwNjI3XFx1MDYyMSBcXHUwNjI3XFx1MDY0NFxcdTA2NDVcXHUwNjQ4XFx1MDY0MlxcdTA2MzkgXFx1MDY0OFxcdTA2MmFcXHUwNjJkXFx1MDYzM1xcdTA2NGFcXHUwNjQ2XFx1MDY0N1xcdTA2MGMgXFx1MDY0OFxcdTA2MmFcXHUwNjJkXFx1MDYzM1xcdTA2NGFcXHUwNjQ2IFxcdTA2MmFcXHUwNjJjXFx1MDYzMVxcdTA2MjhcXHUwNjJhXFx1MDY0MyBcXHUwNjM5XFx1MDY0NFxcdTA2NGFcXHUwNjQ3LiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1MDYyN1xcdTA2NDRcXHUwNjJhXFx1MDYzM1xcdTA2NDhcXHUwNjRhXFx1MDY0MlwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlxcdTA2NDZcXHUwNjJkXFx1MDY0NiBcXHUwNjQ2XFx1MDYzM1xcdTA2MmFcXHUwNjJlXFx1MDYyZlxcdTA2NDUgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDY0N1xcdTA2MzBcXHUwNjQ3PC9hPiBcXHUwNjQ0XFx1MDYyYVxcdTA2NDJcXHUwNjJmXFx1MDY0YVxcdTA2NDUgXFx1MDYyN1xcdTA2NDRcXHUwNjI1XFx1MDYzOVxcdTA2NDRcXHUwNjI3XFx1MDY0NlxcdTA2MjdcXHUwNjJhIFxcdTA2MzBcXHUwNjI3XFx1MDYyYSBcXHUwNjI3XFx1MDY0NFxcdTA2MzVcXHUwNjQ0XFx1MDYyOSBcXHUwNjQ4XFx1MDY0MlxcdTA2NGFcXHUwNjI3XFx1MDYzMyBcXHUwNjQxXFx1MDYzOVxcdTA2MjdcXHUwNjQ0XFx1MDY0YVxcdTA2MjkgXFx1MDYyZFxcdTA2NDVcXHUwNjQ0XFx1MDYyN1xcdTA2MmFcXHUwNjQ2XFx1MDYyNyBcXHUwNjI3XFx1MDY0NFxcdTA2MjVcXHUwNjM5XFx1MDY0NFxcdTA2MjdcXHUwNjQ2XFx1MDY0YVxcdTA2MjkuIFxcdTA2NDJcXHUwNjJmIFxcdTA2NGFcXHUwNjMzXFx1MDYyYVxcdTA2MmVcXHUwNjJmXFx1MDY0NSBcXHUwNjM0XFx1MDYzMVxcdTA2NDNcXHUwNjI3XFx1MDYyNFxcdTA2NDZcXHUwNjI3IFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzlcXHUwNjQ0XFx1MDYyN1xcdTA2NDZcXHUwNjRhXFx1MDY0OFxcdTA2NDYgXFx1MDY0NVxcdTA2NDYgXFx1MDYyN1xcdTA2NDRcXHUwNjIzXFx1MDYzN1xcdTA2MzFcXHUwNjI3XFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MmJcXHUwNjI3XFx1MDY0NFxcdTA2MmJcXHUwNjI5IFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3IFxcdTA2NDdcXHUwNjMwXFx1MDY0NyBcXHUwNjQ0XFx1MDYyNVxcdTA2NDJcXHUwNjI3XFx1MDY0NVxcdTA2MjkgXFx1MDY0NVxcdTA2NDRcXHUwNjQxIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxXFx1MDY0YSBcXHUwNjI4XFx1MDYyN1xcdTA2NDdcXHUwNjJhXFx1MDY0NVxcdTA2MjdcXHUwNjQ1XFx1MDYyN1xcdTA2MmFcXHUwNjQzIFxcdTA2NDhcXHUwNjJhXFx1MDY0MlxcdTA2MmZcXHUwNjRhXFx1MDY0NSBcXHUwNjI3XFx1MDY0NFxcdTA2MjVcXHUwNjM5XFx1MDY0NFxcdTA2MjdcXHUwNjQ2XFx1MDYyN1xcdTA2MmEgXFx1MDYzMFxcdTA2MjdcXHUwNjJhIFxcdTA2MjdcXHUwNjQ0XFx1MDYzNVxcdTA2NDRcXHUwNjI5IFxcdTA2MzlcXHUwNjQ0XFx1MDY0OSBcXHUwNjQ1XFx1MDY0OFxcdTA2MjdcXHUwNjQyXFx1MDYzOSBcXHUwNjIzXFx1MDYyZVxcdTA2MzFcXHUwNjQ5LiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTA2MjdcXHUwNjQ0XFx1MDYzNFxcdTA2MzFcXHUwNjQzXFx1MDYyN1xcdTA2MjEgXFx1MDYyN1xcdTA2NDRcXHUwNjI1XFx1MDYzOVxcdTA2NDRcXHUwNjI3XFx1MDY0NlxcdTA2NGFcXHUwNjQ4XFx1MDY0NiBcXHUwNjQ1XFx1MDY0NiBcXHUwNjI3XFx1MDY0NFxcdTA2MjNcXHUwNjM3XFx1MDYzMVxcdTA2MjdcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyYlxcdTA2MjdcXHUwNjQ0XFx1MDYyYlxcdTA2MjlcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA2MmFcXHUwNjQ4XFx1MDY0YVxcdTA2MmFcXHUwNjMxPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiXFx1MDYzNFxcdTA2MzFcXHUwNjQzXFx1MDYyN1xcdTA2MjRcXHUwNjQ2XFx1MDYyNyBcXHUwNjI3XFx1MDY0NFxcdTA2MjVcXHUwNjM5XFx1MDY0NFxcdTA2MjdcXHUwNjQ2XFx1MDY0YVxcdTA2NDhcXHUwNjQ2IFxcdTA2NDVcXHUwNjQ2IFxcdTA2MjdcXHUwNjQ0XFx1MDYyM1xcdTA2MzdcXHUwNjMxXFx1MDYyN1xcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDYyN1xcdTA2MzFcXHUwNjJjXFx1MDY0YVxcdTA2Mjk6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTA2NGFcXHUwNjI4XFx1MDYyZlxcdTA2MjMgXFx1MDYyN1xcdTA2NDRcXHUwNjMzXFx1MDYzMVxcdTA2NGFcXHUwNjI3XFx1MDY0NiBcXHUwNjQ1XFx1MDY0NjogXFx1MDY2MVxcdTA2NjUgXFx1MDY0YVxcdTA2NDZcXHUwNjI3XFx1MDY0YVxcdTA2MzEgXFx1MDY2MlxcdTA2NjBcXHUwNjYxXFx1MDY2OVwiLEJvZHk6W1wiXFx1MDYyOFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzZcXHUwNjI3XFx1MDY0MVxcdTA2MjkgXFx1MDYyNVxcdTA2NDRcXHUwNjQ5IFxcdTA2MjVcXHUwNjJmXFx1MDYyN1xcdTA2MzFcXHUwNjI5IFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3IFxcdTA2NDVcXHUwNjQ2IFxcdTA2MmVcXHUwNjQ0XFx1MDYyN1xcdTA2NDQgXFx1MDY0NVxcdTA2NGZcXHUwNjJhXFx1MDYzNVxcdTA2NDFcXHUwNjUxXFx1MDYyZFxcdTA2NDMgXFx1MDYyM1xcdTA2NDggXFx1MDYyN1xcdTA2NDRcXHUwNjJjXFx1MDY0N1xcdTA2MjdcXHUwNjMyXFx1MDYwYyBcXHUwNjRhXFx1MDY0ZlxcdTA2NDVcXHUwNjQzXFx1MDY0NlxcdTA2NDMgXFx1MDYyYVxcdTA2M2FcXHUwNjRhXFx1MDY0YVxcdTA2MzEgXFx1MDYyNVxcdTA2MzlcXHUwNjJmXFx1MDYyN1xcdTA2MmZcXHUwNjI3XFx1MDYyYSBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjIzXFx1MDYyZlxcdTA2NDZcXHUwNjI3XFx1MDY0Ny4gXFx1MDY0YVxcdTA2NGZcXHUwNjMxXFx1MDYyY1xcdTA2NDkgXFx1MDY0NVxcdTA2NGZcXHUwNjQ0XFx1MDYyN1xcdTA2MmRcXHUwNjM4XFx1MDYyOSBcXHUwNjIzXFx1MDY0NiBcXHUwNjI4XFx1MDYzOVxcdTA2MzYgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDY0ZlxcdTA2MzlcXHUwNjRhXFx1MDY1MVxcdTA2NDZcXHUwNjI5IFxcdTA2NDJcXHUwNjJmIFxcdTA2MmFcXHUwNjQzXFx1MDY0OFxcdTA2NDYgXFx1MDYzNlxcdTA2MzFcXHUwNjQ4XFx1MDYzMVxcdTA2NGFcXHUwNjI5IFxcdTA2NDRcXHUwNjJhXFx1MDYzNFxcdTA2M2FcXHUwNjRhXFx1MDY0NCBcXHUwNjQ1XFx1MDY0OFxcdTA2NDJcXHUwNjM5XFx1MDY0NlxcdTA2MjcgXFx1MDYyN1xcdTA2NDRcXHUwNjI1XFx1MDY0NFxcdTA2NDNcXHUwNjJhXFx1MDYzMVxcdTA2NDhcXHUwNjQ2XFx1MDY0YSBcXHUwNjQ4XFx1MDY0NFxcdTA2MjcgXFx1MDY0YVxcdTA2NGZcXHUwNjQ1XFx1MDY0M1xcdTA2NDYgXFx1MDYyZFxcdTA2MzhcXHUwNjMxXFx1MDY0N1xcdTA2MjcgXFx1MDYyOFxcdTA2MjdcXHUwNjMzXFx1MDYyYVxcdTA2MmVcXHUwNjJmXFx1MDYyN1xcdTA2NDUgXFx1MDY0N1xcdTA2MzBcXHUwNjQ3IFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzlcXHUwNjJmXFx1MDYyN1xcdTA2MmZcXHUwNjI3XFx1MDYyYS5cIl0sVGl0bGU6XCJcXHUwNjI1XFx1MDYzOVxcdTA2MmZcXHUwNjI3XFx1MDYyZlxcdTA2MjdcXHUwNjJhIFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3XCIsQ09PS0lFX1BPUFVQOidcXHUwNjQ1XFx1MDYzMVxcdTA2MmRcXHUwNjI4XFx1MDY0YlxcdTA2MjdcXHUwNjBjIFxcdTA2NDZcXHUwNjMzXFx1MDYyYVxcdTA2MmVcXHUwNjJmXFx1MDY0NSBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyAoXCJcXHUwNjQzXFx1MDY0OFxcdTA2NDNcXHUwNjRhXFx1MDYzMlwiKSBcXHUwNjQ4XFx1MDYyYVxcdTA2NDJcXHUwNjQ2XFx1MDY0YVxcdTA2MjdcXHUwNjJhIFxcdTA2NDVcXHUwNjM0XFx1MDYyN1xcdTA2MjhcXHUwNjQ3XFx1MDYyOVxcdTA2MGMgXFx1MDYyOFxcdTA2NDVcXHUwNjI3IFxcdTA2NDFcXHUwNjRhIFxcdTA2MzBcXHUwNjQ0XFx1MDY0MyBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjQ0XFx1MDYyM1xcdTA2MzdcXHUwNjMxXFx1MDYyN1xcdTA2NDEgXFx1MDYyYlxcdTA2MjdcXHUwNjQ0XFx1MDYyYlxcdTA2MjlcXHUwNjBjIFxcdTA2MzlcXHUwNjQ0XFx1MDY0OSBcXHUwNjQ3XFx1MDYzMFxcdTA2MjcgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDY0OFxcdTA2NDJcXHUwNjM5IFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2NDRcXHUwNjQzXFx1MDYyYVxcdTA2MzFcXHUwNjQ4XFx1MDY0NlxcdTA2NGEgXFx1MDY0NFxcdTA2NDRcXHUwNjQ1XFx1MDYzM1xcdTA2MjdcXHUwNjM5XFx1MDYyZlxcdTA2MjkgXFx1MDYzOVxcdTA2NDRcXHUwNjQ5IFxcdTA2MmFcXHUwNjM0XFx1MDYzYVxcdTA2NGFcXHUwNjQ0XFx1MDY0NyBcXHUwNjQ4XFx1MDYyYVxcdTA2MmRcXHUwNjMzXFx1MDY0YVxcdTA2NDYgXFx1MDYyYVxcdTA2MmNcXHUwNjMxXFx1MDYyOFxcdTA2MjkgXFx1MDYyN1xcdTA2NDRcXHUwNjJhXFx1MDYzNVxcdTA2NDFcXHUwNjUxXFx1MDYyZFxcdTA2MGMgXFx1MDYyOFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzZcXHUwNjI3XFx1MDY0MVxcdTA2MjkgXFx1MDYyNVxcdTA2NDRcXHUwNjQ5IFxcdTA2NDVcXHUwNjMxXFx1MDYyN1xcdTA2NDJcXHUwNjI4XFx1MDYyOSBcXHUwNjI3XFx1MDY0NFxcdTA2MjNcXHUwNjJmXFx1MDYyN1xcdTA2MjEgXFx1MDY0OFxcdTA2NDRcXHUwNjIzXFx1MDYzYVxcdTA2MzFcXHUwNjI3XFx1MDYzNiBcXHUwNjQ1XFx1MDYyYVxcdTA2MzlcXHUwNjQ0XFx1MDY0MlxcdTA2MjkgXFx1MDYyOFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzlcXHUwNjQ0XFx1MDYyN1xcdTA2NDYuIFxcdTA2NDRcXHUwNjQ0XFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0MSBcXHUwNjM5XFx1MDY0NFxcdTA2NDkgXFx1MDY0NVxcdTA2MzJcXHUwNjRhXFx1MDYyZiBcXHUwNjQ1XFx1MDY0NiBcXHUwNjI3XFx1MDY0NFxcdTA2NDVcXHUwNjM5XFx1MDY0NFxcdTA2NDhcXHUwNjQ1XFx1MDYyN1xcdTA2MmEgXFx1MDYzOVxcdTA2NDYgXFx1MDY0M1xcdTA2NGFcXHUwNjQxXFx1MDY0YVxcdTA2MjkgXFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYyZVxcdTA2MmZcXHUwNjI3XFx1MDY0NVxcdTA2NDZcXHUwNjI3IFxcdTA2NDRcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjQ4XFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDY0YVxcdTA2MjdcXHUwNjMxXFx1MDYyN1xcdTA2MmEgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDYyYVxcdTA2MjdcXHUwNjJkXFx1MDYyOSBcXHUwNjQ0XFx1MDYyZlxcdTA2NGFcXHUwNjQzXFx1MDYwYyBcXHUwNjI3XFx1MDYzN1xcdTA2NDRcXHUwNjM5IFxcdTA2MzlcXHUwNjQ0XFx1MDY0OSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDYzM1xcdTA2NGFcXHUwNjI3XFx1MDYzM1xcdTA2MjkgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2Mzc8L2E+LiBcXHUwNjQ1XFx1MDY0NiBcXHUwNjJlXFx1MDY0NFxcdTA2MjdcXHUwNjQ0IFxcdTA2MjdcXHUwNjQ0XFx1MDY0NlxcdTA2NDJcXHUwNjMxIFxcdTA2MzlcXHUwNjQ0XFx1MDY0OSBcIlxcdTA2NDJcXHUwNjI4XFx1MDY0OFxcdTA2NDQgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzdcIiBcXHUwNjIzXFx1MDYyZlxcdTA2NDZcXHUwNjI3XFx1MDY0N1xcdTA2MGMgXFx1MDY0MVxcdTA2MjVcXHUwNjQ2XFx1MDY0MyBcXHUwNjJhXFx1MDY0NVxcdTA2NDZcXHUwNjJkXFx1MDY0NlxcdTA2MjcgXFx1MDY0NVxcdTA2NDhcXHUwNjI3XFx1MDY0MVxcdTA2NDJcXHUwNjJhXFx1MDY0MyBcXHUwNjQ0XFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYyZVxcdTA2MmZcXHUwNjI3XFx1MDY0NSBcXHUwNjJjXFx1MDY0NVxcdTA2NGFcXHUwNjM5IFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3XFx1MDYwYyBcXHUwNjI4XFx1MDY0NVxcdTA2MjcgXFx1MDY0MVxcdTA2NGEgXFx1MDYzMFxcdTA2NDRcXHUwNjQzIFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3IFxcdTA2M2FcXHUwNjRhXFx1MDYzMSBcXHUwNjI3XFx1MDY0NFxcdTA2MzZcXHUwNjMxXFx1MDY0OFxcdTA2MzFcXHUwNjRhXFx1MDYyOS4gXFx1MDY0YVxcdTA2NDVcXHUwNjQzXFx1MDY0NlxcdTA2NDMgXFx1MDYzMVxcdTA2NDFcXHUwNjM2IFxcdTA2MmNcXHUwNjQ1XFx1MDY0YVxcdTA2MzkgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDYzYVxcdTA2NGFcXHUwNjMxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyM1xcdTA2MzNcXHUwNjI3XFx1MDYzM1xcdTA2NGFcXHUwNjI5IFxcdTA2MjhcXHUwNjI3XFx1MDY0NFxcdTA2NDZcXHUwNjQyXFx1MDYzMSBcXHUwNjM5XFx1MDY0NFxcdTA2NDkgXFx1MDYzOVxcdTA2NDRcXHUwNjI3XFx1MDY0NVxcdTA2MjkgXCJYXCIgXFx1MDYzOVxcdTA2NDRcXHUwNjQ5IFxcdTA2NGFcXHUwNjQ1XFx1MDY0YVxcdTA2NDYgXFx1MDYyN1xcdTA2NDRcXHUwNjM1XFx1MDY0MVxcdTA2MmRcXHUwNjI5LiBcXHUwNjI3XFx1MDY0NlxcdTA2MmFcXHUwNjQyXFx1MDY0NCBcXHUwNjI1XFx1MDY0NFxcdTA2NDkgXCJcXHUwNjI1XFx1MDYzOVxcdTA2MmZcXHUwNjI3XFx1MDYyZlxcdTA2MjdcXHUwNjJhIFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3XCIgXFx1MDYyM1xcdTA2NDggPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA2MzNcXHUwNjRhXFx1MDYyN1xcdTA2MzNcXHUwNjI5IFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3PC9hPiBcXHUwNjQ0XFx1MDYyYVxcdTA2M2FcXHUwNjRhXFx1MDY0YVxcdTA2MzEgXFx1MDYyNVxcdTA2MzlcXHUwNjJmXFx1MDYyN1xcdTA2MmZcXHUwNjI3XFx1MDYyYSBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjQ4XFx1MDYzM1xcdTA2MmRcXHUwNjI4IFxcdTA2NDVcXHUwNjQ4XFx1MDYyN1xcdTA2NDFcXHUwNjQyXFx1MDYyYVxcdTA2NDMgXFx1MDY0MVxcdTA2NGEgXFx1MDYyM1xcdTA2NGEgXFx1MDY0OFxcdTA2NDJcXHUwNjJhLicsQ09PS0lFX1BPUFVQX0VVOidcXHUwNjQ1XFx1MDYzMVxcdTA2MmRcXHUwNjI4XFx1MDY0YlxcdTA2MjdcXHUwNjBjIFxcdTA2NDZcXHUwNjMzXFx1MDYyYVxcdTA2MmVcXHUwNjJmXFx1MDY0NSBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyAoXCJcXHUwNjQzXFx1MDY0OFxcdTA2NDNcXHUwNjRhXFx1MDYzMlwiKSBcXHUwNjQ4XFx1MDYyYVxcdTA2NDJcXHUwNjQ2XFx1MDY0YVxcdTA2MjdcXHUwNjJhIFxcdTA2NDVcXHUwNjM0XFx1MDYyN1xcdTA2MjhcXHUwNjQ3XFx1MDYyOVxcdTA2MGMgXFx1MDYyOFxcdTA2NDVcXHUwNjI3IFxcdTA2NDFcXHUwNjRhIFxcdTA2MzBcXHUwNjQ0XFx1MDY0MyBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjQ0XFx1MDYyM1xcdTA2MzdcXHUwNjMxXFx1MDYyN1xcdTA2NDEgXFx1MDYyYlxcdTA2MjdcXHUwNjQ0XFx1MDYyYlxcdTA2MjlcXHUwNjBjIFxcdTA2MzlcXHUwNjQ0XFx1MDY0OSBcXHUwNjQ3XFx1MDYzMFxcdTA2MjcgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDY0OFxcdTA2NDJcXHUwNjM5IFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2NDRcXHUwNjQzXFx1MDYyYVxcdTA2MzFcXHUwNjQ4XFx1MDY0NlxcdTA2NGEgXFx1MDY0NFxcdTA2NDRcXHUwNjQ1XFx1MDYzM1xcdTA2MjdcXHUwNjM5XFx1MDYyZlxcdTA2MjkgXFx1MDYzOVxcdTA2NDRcXHUwNjQ5IFxcdTA2MmFcXHUwNjM0XFx1MDYzYVxcdTA2NGFcXHUwNjQ0XFx1MDY0NyBcXHUwNjQ4XFx1MDYyYVxcdTA2MmRcXHUwNjMzXFx1MDY0YVxcdTA2NDYgXFx1MDYyYVxcdTA2MmNcXHUwNjMxXFx1MDYyOFxcdTA2MjkgXFx1MDYyN1xcdTA2NDRcXHUwNjJhXFx1MDYzNVxcdTA2NDFcXHUwNjUxXFx1MDYyZFxcdTA2MGMgXFx1MDYyOFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzZcXHUwNjI3XFx1MDY0MVxcdTA2MjkgXFx1MDYyNVxcdTA2NDRcXHUwNjQ5IFxcdTA2NDVcXHUwNjMxXFx1MDYyN1xcdTA2NDJcXHUwNjI4XFx1MDYyOSBcXHUwNjI3XFx1MDY0NFxcdTA2MjNcXHUwNjJmXFx1MDYyN1xcdTA2MjEgXFx1MDY0OFxcdTA2NDRcXHUwNjIzXFx1MDYzYVxcdTA2MzFcXHUwNjI3XFx1MDYzNiBcXHUwNjQ1XFx1MDYyYVxcdTA2MzlcXHUwNjQ0XFx1MDY0MlxcdTA2MjkgXFx1MDYyOFxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MzlcXHUwNjQ0XFx1MDYyN1xcdTA2NDYuIFxcdTA2NDRcXHUwNjQ0XFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0MSBcXHUwNjM5XFx1MDY0NFxcdTA2NDkgXFx1MDY0NVxcdTA2MzJcXHUwNjRhXFx1MDYyZiBcXHUwNjQ1XFx1MDY0NiBcXHUwNjI3XFx1MDY0NFxcdTA2NDVcXHUwNjM5XFx1MDY0NFxcdTA2NDhcXHUwNjQ1XFx1MDYyN1xcdTA2MmEgXFx1MDYzOVxcdTA2NDYgXFx1MDY0M1xcdTA2NGFcXHUwNjQxXFx1MDY0YVxcdTA2MjkgXFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYyZVxcdTA2MmZcXHUwNjI3XFx1MDY0NVxcdTA2NDZcXHUwNjI3IFxcdTA2NDRcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjQ4XFx1MDYyN1xcdTA2NDRcXHUwNjJlXFx1MDY0YVxcdTA2MjdcXHUwNjMxXFx1MDYyN1xcdTA2MmEgXFx1MDYyN1xcdTA2NDRcXHUwNjQ1XFx1MDYyYVxcdTA2MjdcXHUwNjJkXFx1MDYyOSBcXHUwNjQ0XFx1MDYyZlxcdTA2NGFcXHUwNjQzXFx1MDYwYyBcXHUwNjI3XFx1MDYzN1xcdTA2NDRcXHUwNjM5IFxcdTA2MzlcXHUwNjQ0XFx1MDY0OSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDYzM1xcdTA2NGFcXHUwNjI3XFx1MDYzM1xcdTA2MjkgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2Mzc8L2E+LiBcXHUwNjQ1XFx1MDY0NiBcXHUwNjJlXFx1MDY0NFxcdTA2MjdcXHUwNjQ0IFxcdTA2MjdcXHUwNjQ0XFx1MDY0NlxcdTA2NDJcXHUwNjMxIFxcdTA2MzlcXHUwNjQ0XFx1MDY0OSBcIlxcdTA2NDJcXHUwNjI4XFx1MDY0OFxcdTA2NDQgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzdcIiBcXHUwNjIzXFx1MDYyZlxcdTA2NDZcXHUwNjI3XFx1MDY0N1xcdTA2MGMgXFx1MDY0MVxcdTA2MjVcXHUwNjQ2XFx1MDY0MyBcXHUwNjJhXFx1MDY0NVxcdTA2NDZcXHUwNjJkXFx1MDY0NlxcdTA2MjcgXFx1MDY0NVxcdTA2NDhcXHUwNjI3XFx1MDY0MVxcdTA2NDJcXHUwNjJhXFx1MDY0MyBcXHUwNjQ0XFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYyZVxcdTA2MmZcXHUwNjI3XFx1MDY0NSBcXHUwNjJjXFx1MDY0NVxcdTA2NGFcXHUwNjM5IFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3XFx1MDYwYyBcXHUwNjI4XFx1MDY0NVxcdTA2MjcgXFx1MDY0MVxcdTA2NGEgXFx1MDYzMFxcdTA2NDRcXHUwNjQzIFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3IFxcdTA2M2FcXHUwNjRhXFx1MDYzMSBcXHUwNjI3XFx1MDY0NFxcdTA2MzZcXHUwNjMxXFx1MDY0OFxcdTA2MzFcXHUwNjRhXFx1MDYyOS4gXFx1MDY0YVxcdTA2NDVcXHUwNjQzXFx1MDY0NlxcdTA2NDMgXFx1MDYzMVxcdTA2NDFcXHUwNjM2IFxcdTA2MmNcXHUwNjQ1XFx1MDY0YVxcdTA2MzkgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzcgXFx1MDYzYVxcdTA2NGFcXHUwNjMxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyM1xcdTA2MzNcXHUwNjI3XFx1MDYzM1xcdTA2NGFcXHUwNjI5IFxcdTA2MjhcXHUwNjI3XFx1MDY0NFxcdTA2NDZcXHUwNjQyXFx1MDYzMSBcXHUwNjM5XFx1MDY0NFxcdTA2NDkgXFx1MDYzOVxcdTA2NDRcXHUwNjI3XFx1MDY0NVxcdTA2MjkgXCJYXCIgXFx1MDYzOVxcdTA2NDRcXHUwNjQ5IFxcdTA2NGFcXHUwNjQ1XFx1MDY0YVxcdTA2NDYgXFx1MDYyN1xcdTA2NDRcXHUwNjM1XFx1MDY0MVxcdTA2MmRcXHUwNjI5LiBcXHUwNjI3XFx1MDY0NlxcdTA2MmFcXHUwNjQyXFx1MDY0NCBcXHUwNjI1XFx1MDY0NFxcdTA2NDkgXCJcXHUwNjI1XFx1MDYzOVxcdTA2MmZcXHUwNjI3XFx1MDYyZlxcdTA2MjdcXHUwNjJhIFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3XCIgXFx1MDYyM1xcdTA2NDggPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA2MzNcXHUwNjRhXFx1MDYyN1xcdTA2MzNcXHUwNjI5IFxcdTA2NDVcXHUwNjQ0XFx1MDY0MVxcdTA2MjdcXHUwNjJhIFxcdTA2MmFcXHUwNjM5XFx1MDYzMVxcdTA2NGFcXHUwNjQxIFxcdTA2MjdcXHUwNjQ0XFx1MDYyN1xcdTA2MzFcXHUwNjJhXFx1MDYyOFxcdTA2MjdcXHUwNjM3PC9hPiBcXHUwNjQ0XFx1MDYyYVxcdTA2M2FcXHUwNjRhXFx1MDY0YVxcdTA2MzEgXFx1MDYyNVxcdTA2MzlcXHUwNjJmXFx1MDYyN1xcdTA2MmZcXHUwNjI3XFx1MDYyYSBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzNyBcXHUwNjQ4XFx1MDYzM1xcdTA2MmRcXHUwNjI4IFxcdTA2NDVcXHUwNjQ4XFx1MDYyN1xcdTA2NDFcXHUwNjQyXFx1MDYyYVxcdTA2NDMgXFx1MDY0MVxcdTA2NGEgXFx1MDYyM1xcdTA2NGEgXFx1MDY0OFxcdTA2NDJcXHUwNjJhLicsQWdyZWVUZXh0OlwiXFx1MDY0MlxcdTA2MjhcXHUwNjQ4XFx1MDY0NCBcXHUwNjQ1XFx1MDY0NFxcdTA2NDFcXHUwNjI3XFx1MDYyYSBcXHUwNjJhXFx1MDYzOVxcdTA2MzFcXHUwNjRhXFx1MDY0MSBcXHUwNjI3XFx1MDY0NFxcdTA2MjdcXHUwNjMxXFx1MDYyYVxcdTA2MjhcXHUwNjI3XFx1MDYzN1wiLFNldHRpbmdzVGV4dDpcIlxcdTA2MjVcXHUwNjM5XFx1MDYyZlxcdTA2MjdcXHUwNjJmXFx1MDYyN1xcdTA2MmEgXFx1MDY0NVxcdTA2NDRcXHUwNjQxXFx1MDYyN1xcdTA2MmEgXFx1MDYyYVxcdTA2MzlcXHUwNjMxXFx1MDY0YVxcdTA2NDEgXFx1MDYyN1xcdTA2NDRcXHUwNjI3XFx1MDYzMVxcdTA2MmFcXHUwNjI4XFx1MDYyN1xcdTA2MzdcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTA2MjdcXHUwNjQ0XFx1MDYyNVxcdTA2MjhcXHUwNjQ0XFx1MDYyN1xcdTA2M2EgXFx1MDYzOVxcdTA2NDYgXFx1MDY0NVxcdTA2MmVcXHUwNjI3XFx1MDY0NFxcdTA2NDFcXHUwNjI5XCIsU3BvdGxpZ2h0OlwiXFx1MDY0NVxcdTA2NDZcXHUwNjM1XFx1MDYyOSBcXHUwNjI3XFx1MDY0NFxcdTA2MjNcXHUwNjM2XFx1MDY0OFxcdTA2MjdcXHUwNjIxXCJ9LFwiYm4tYmRcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHUwOWIyXFx1MDliZVxcdTA5ODdcXHUwOWFkXCIsQWRzOlwiXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YThcIixDb21wYW55OlwiXFx1MDk5NVxcdTA5Y2JcXHUwOWFlXFx1MDljZFxcdTA5YWFcXHUwOWJlXFx1MDlhOFxcdTA5YmZcIixIb21lOlwiXFx1MDliOVxcdTA5Y2JcXHUwOWFlXCIsQmxvZzpcIlxcdTA5YWNcXHUwOWNkXFx1MDliMlxcdTA5OTdcIixKb2JzOlwiXFx1MDk5YVxcdTA5YmVcXHUwOTk1XFx1MDliMFxcdTA5YmZcIixDYXJlZXJzOlwiXFx1MDlhYVxcdTA5YzdcXHUwOWI2XFx1MDliZVwiLFByZXNzOlwiXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDljN1xcdTA5YjhcIixOZXdzOlwiXFx1MDliOFxcdTA5ODJcXHUwOWFjXFx1MDliZVxcdTA5YTZcIixcIlByZXNzIElucXVpcmllc1wiOlwiXFx1MDk4NVxcdTA5YThcXHUwOWMxXFx1MDliOFxcdTA5YThcXHUwOWNkXFx1MDlhN1xcdTA5YmVcXHUwOWE4IFxcdTA5OWFcXHUwOWJlXFx1MDlhYVxcdTA5YzFcXHUwOWE4XCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTA5YWRcXHUwOWJlXFx1MDliN1xcdTA5YmVcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJTbmFwY2hhdCBcXHUwOWExXFx1MDliZVxcdTA5ODlcXHUwOWE4XFx1MDliMlxcdTA5Y2JcXHUwOWExIFxcdTA5OTVcXHUwOWIwXFx1MDljMVxcdTA5YThcIixEb3dubG9hZDpcIlxcdTA5YTFcXHUwOWJlXFx1MDk4OVxcdTA5YThcXHUwOWIyXFx1MDljYlxcdTA5YTEgXFx1MDk5NVxcdTA5YjBcXHUwOWMxXFx1MDlhOFwiLEtpdDpcIlxcdTA5YjhcXHUwOWIwXFx1MDk5ZVxcdTA5Y2RcXHUwOTljXFx1MDliZVxcdTA5YWUgXFx1MDk5N1xcdTA5YzFcXHUwOTlhXFx1MDljZFxcdTA5OWJcIixTdG9yaWVzOlwiXFx1MDk5N1xcdTA5YjJcXHUwOWNkXFx1MDlhYVwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJcXHUwOWFlXFx1MDk5Y1xcdTA5YzFcXHUwOWE0XCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJpT1MgXFx1MDk4ZlxcdTA5YjAgXFx1MDk5Y1xcdTA5YThcXHUwOWNkXFx1MDlhZiBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQgXFx1MDk4ZlxcdTA5YjAgXFx1MDk5Y1xcdTA5YThcXHUwOWNkXFx1MDlhZiBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTA5OTVcXHUwOWFlXFx1MDliZlxcdTA5ODlcXHUwOWE4XFx1MDliZlxcdTA5OWZcXHUwOWJmXCIsU3VwcG9ydDpcIlxcdTA5YjhcXHUwOWI5XFx1MDliZVxcdTA5ZGZcXHUwOWE0XFx1MDliZVwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlxcdTA5OTVcXHUwOWFlXFx1MDliZlxcdTA5ODlcXHUwOWE4XFx1MDliZlxcdTA5OWZcXHUwOWJmIFxcdTA5YThcXHUwOWJmXFx1MDliMFxcdTA5Y2RcXHUwOWE2XFx1MDljN1xcdTA5YjZcXHUwOWJmXFx1MDk5NVxcdTA5YmVcXHUwOWI4XFx1MDlhZVxcdTA5YzJcXHUwOWI5XCIsXCJTYWZldHkgQ2VudGVyXCI6XCJcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWJlXFx1MDlhYVxcdTA5YTRcXHUwOWNkXFx1MDlhNFxcdTA5YmUgXFx1MDk5NVxcdTA5YzdcXHUwOWE4XFx1MDljZFxcdTA5YTZcXHUwOWNkXFx1MDliMFwiLFNuYXBjb2RlczpcIlNuYXBjb2Rlc1wiLEdlb2ZpbHRlcnM6XCJcXHUwOTljXFx1MDliZlxcdTA5OTNcXHUwOWFiXFx1MDliZlxcdTA5YjJcXHUwOWNkXFx1MDk5ZlxcdTA5YmVcXHUwOWIwXFx1MDliOFxcdTA5YWVcXHUwOWMxXFx1MDliOVwiLENyZWF0ZTpcIlxcdTA5YWJcXHUwOWJmXFx1MDliMlxcdTA5Y2RcXHUwOTlmXFx1MDliZVxcdTA5YjAgXFx1MDk5MyBcXHUwOWIyXFx1MDljN1xcdTA5YThcXHUwOWNkXFx1MDliOFxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmZcIixNYXA6XCJcXHUwOWFlXFx1MDliZVxcdTA5YThcXHUwOTlhXFx1MDliZlxcdTA5YTRcXHUwOWNkXFx1MDliMFwiLEFkdmVydGlzaW5nOlwiXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YThcIixcIkJ1eSBBZHNcIjpcIlxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4IFxcdTA5OTVcXHUwOWJmXFx1MDlhOFxcdTA5YzFcXHUwOWE4XCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YThcXHUwOWM3XFx1MDliMCBcXHUwOWE4XFx1MDljMFxcdTA5YTRcXHUwOWJmXFx1MDliOFxcdTA5YWVcXHUwOWMyXFx1MDliOVwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJcXHUwOWIwXFx1MDliZVxcdTA5OWNcXHUwOWE4XFx1MDljOFxcdTA5YTRcXHUwOWJmXFx1MDk5NSBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOCBcXHUwOWIyXFx1MDliZVxcdTA5ODdcXHUwOWFjXFx1MDljZFxcdTA5YjBcXHUwOWM3XFx1MDliMFxcdTA5YmZcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIlxcdTA5YWNcXHUwOWNkXFx1MDliMFxcdTA5Y2RcXHUwOWFmXFx1MDliZVxcdTA5YThcXHUwOWNkXFx1MDlhMSBcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWNkXFx1MDlhNlxcdTA5YzdcXHUwOWI2XFx1MDliZlxcdTA5OTVcXHUwOWJlXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOTlhXFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDliMCBcXHUwOWE4XFx1MDliZlxcdTA5ZGZcXHUwOWFlXFx1MDliOFxcdTA5YWVcXHUwOWMyXFx1MDliOVwiLExlZ2FsOlwiXFx1MDk4NlxcdTA5ODdcXHUwOWE4XFx1MDliZlwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDliN1xcdTA5YzdcXHUwOWFjXFx1MDliZVxcdTA5YjAgXFx1MDliNlxcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YmVcXHUwOWFjXFx1MDliMlxcdTA5YzBcIixJbXByZXNzdW06XCJcXHUwOWFlXFx1MDliZVxcdTA5YjJcXHUwOWJmXFx1MDk5NVxcdTA5YmVcXHUwOWE4XFx1MDliZSBcXHUwOWI4XFx1MDlhZVxcdTA5Y2RcXHUwOWFjXFx1MDlhOFxcdTA5Y2RcXHUwOWE3XFx1MDljMFxcdTA5ZGYgXFx1MDlhY1xcdTA5YmZcXHUwOWFjXFx1MDljM1xcdTA5YTRcXHUwOWJmXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiXFx1MDk5N1xcdTA5Y2JcXHUwOWFhXFx1MDlhOFxcdTA5YzBcXHUwOWFmXFx1MDliY1xcdTA5YTRcXHUwOWJlIFxcdTA5YThcXHUwOWMwXFx1MDlhNFxcdTA5YmZcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHUwOTk3XFx1MDljYlxcdTA5YWFcXHUwOWE4XFx1MDljMFxcdTA5YWZcXHUwOWJjXFx1MDlhNFxcdTA5YmUgXFx1MDk5NVxcdTA5YzdcXHUwOWE4XFx1MDljZFxcdTA5YTZcXHUwOWNkXFx1MDliMFwiLFwiQ29va2llIFBvbGljeVwiOlwiXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDk4MlxcdTA5OTVcXHUwOWNkXFx1MDliMFxcdTA5YmVcXHUwOWE4XFx1MDljZFxcdTA5YTQgXFx1MDlhOFxcdTA5YzBcXHUwOWE0XFx1MDliZlwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MDliOFxcdTA5Y2RcXHUwOWFlXFx1MDljM1xcdTA5YTRcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZlxcdTA5YjAgXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDliN1xcdTA5YzdcXHUwOWFjXFx1MDliZVxcdTA5YjAgXFx1MDliNlxcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YmVcXHUwOWFjXFx1MDliMlxcdTA5YzBcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDlkZlxcdTA5Y2JcXHUwOTljXFx1MDlhOFxcdTA5YmVcXHUwOWE4XFx1MDljMVxcdTA5OTcgXFx1MDliOFxcdTA5YzNcXHUwOTljXFx1MDlhOFxcdTA5YjZcXHUwOWMwXFx1MDliMiBcXHUwOWI4XFx1MDliMFxcdTA5OWVcXHUwOWNkXFx1MDk5Y1xcdTA5YmVcXHUwOWFlXFx1MDljN1xcdTA5YjAgXFx1MDliNlxcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YmVcXHUwOWFjXFx1MDliMlxcdTA5YzBcIixDT01NVU5JVFlfVE9TOlwiXFx1MDk5NVxcdTA5YWVcXHUwOWJmXFx1MDk4OVxcdTA5YThcXHUwOWJmXFx1MDk5ZlxcdTA5YmYgXFx1MDk5Y1xcdTA5YmZcXHUwOTkzXFx1MDlhYlxcdTA5YmZcXHUwOWIyXFx1MDljZFxcdTA5OWZcXHUwOWJlXFx1MDliMFxcdTA5YzdcXHUwOWIwIFxcdTA5YjZcXHUwOWIwXFx1MDljZFxcdTA5YTRcXHUwOWJlXFx1MDlhY1xcdTA5YjJcXHUwOWMwXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1MDliNlxcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YmVcXHUwOWFjXFx1MDliMlxcdTA5YzBcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTk3XFx1MDljYlxcdTA5YWFcXHUwOWE4XFx1MDljMFxcdTA5YWZcXHUwOWJjXFx1MDlhNFxcdTA5YmUgXFx1MDliOFxcdTA5ODJcXHUwOTk1XFx1MDljZFxcdTA5YjBcXHUwOWJlXFx1MDlhOFxcdTA5Y2RcXHUwOWE0IFxcdTA5YWFcXHUwOTliXFx1MDlhOFxcdTA5Y2RcXHUwOWE2XCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDlhZlxcdTA5YmNcXHUwOWNiXFx1MDk5Y1xcdTA5YThcXHUwOWMwXFx1MDlhZlxcdTA5YmMgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWNcIixjb250ZW50OlsnXFx1MDliOFxcdTA5YmVcXHUwOTg3XFx1MDk5ZlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmYgXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDk5YVxcdTA5YmVcXHUwOWIyXFx1MDlhOFxcdTA5YmUgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlxcdTA5ODZcXHUwOWFlXFx1MDliMFxcdTA5YmUgXFx1MDk4ZlxcdTA5ODcgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmYgXFx1MDlhY1xcdTA5Y2RcXHUwOWFmXFx1MDlhY1xcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YmY8L2E+XFx1MDk2NCBcXHUwOWFmXFx1MDljN1xcdTA5YjlcXHUwOWM3XFx1MDlhNFxcdTA5YzEgXFx1MDk4ZlxcdTA5ODcgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmYgXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDlhZlxcdTA5YmNcXHUwOWNiXFx1MDk5Y1xcdTA5YThcXHUwOWMwXFx1MDlhZlxcdTA5YmMgXFx1MDliOFxcdTA5YzdcXHUwOTg3XFx1MDk5Y1xcdTA5YThcXHUwOWNkXFx1MDlhZiBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJmIFxcdTA5OGZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmIFxcdTA5YWNcXHUwOWE4XFx1MDljZFxcdTA5YTcgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOWFhXFx1MDliZVxcdTA5YjBcXHUwOWFjXFx1MDljN1xcdTA5YTggXFx1MDlhOFxcdTA5YmVcXHUwOTY0J119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlxcdTA5ODVcXHUwOTk3XFx1MDljZFxcdTA5YjBcXHUwOWJlXFx1MDlhN1xcdTA5YmZcXHUwOTk1XFx1MDliZVxcdTA5YjBcXHUwOWI4XFx1MDlhZVxcdTA5YzJcXHUwOWI5XCIsY29udGVudDpbJ1xcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5ODVcXHUwOTk3XFx1MDljZFxcdTA5YjBcXHUwOWJlXFx1MDlhN1xcdTA5YmZcXHUwOTk1XFx1MDliZVxcdTA5YjBcXHUwOWI4XFx1MDlhZVxcdTA5YzJcXHUwOWI5IFxcdTA5YWVcXHUwOWE4XFx1MDljNyBcXHUwOWIwXFx1MDliZVxcdTA5OTZcXHUwOWE0XFx1MDljNyBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIFxcdTA5OTNcXHUwOWRmXFx1MDljN1xcdTA5YWNcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmXFx1MDljNyBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTg1XFx1MDlhZFxcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWE0XFx1MDliZSBcXHUwOTg5XFx1MDlhOFxcdTA5Y2RcXHUwOWE4XFx1MDlhNCBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUHJlZmVyZW5jZXNcIj5cXHUwOTg2XFx1MDlhZVxcdTA5YjBcXHUwOWJlIFxcdTA5OGZcXHUwOTg3IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmIFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWJmPC9hPlxcdTA5NjQnXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1MDk5NVxcdTA5YjBcXHUwOWNkXFx1MDlhZVxcdTA5YjhcXHUwOWFlXFx1MDljZFxcdTA5YWFcXHUwOWJlXFx1MDlhNlxcdTA5YTggXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5ODVcXHUwOWNkXFx1MDlhZlxcdTA5YmVcXHUwOWE4XFx1MDliZVxcdTA5YjJcXHUwOWJmXFx1MDk5ZlxcdTA5YmZcXHUwOTk1XFx1MDliOFwiLGNvbnRlbnQ6WydcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJmIFxcdTA5OTVcXHUwOWMwXFx1MDlhZFxcdTA5YmVcXHUwOWFjXFx1MDljNyBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDliOFxcdTA5YmVcXHUwOTg3XFx1MDk5ZiBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDk5YlxcdTA5YzdcXHUwOWE4IFxcdTA5YjhcXHUwOWM3IFxcdTA5YjhcXHUwOWFlXFx1MDljZFxcdTA5YWFcXHUwOWIwXFx1MDljZFxcdTA5OTVcXHUwOWJmXFx1MDlhNCBcXHUwOWE0XFx1MDlhNVxcdTA5Y2RcXHUwOWFmIFxcdTA5YjhcXHUwOTgyXFx1MDk5N1xcdTA5Y2RcXHUwOWIwXFx1MDliOSBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3LCBcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmXFx1MDljN1xcdTA5YjAgXFx1MDk5NVxcdTA5YmVcXHUwOWIwXFx1MDljZFxcdTA5YWZcXHUwOWI4XFx1MDlhZVxcdTA5Y2RcXHUwOWFhXFx1MDliZVxcdTA5YTZcXHUwOWE4IFxcdTA5YThcXHUwOWJmXFx1MDliMFxcdTA5YzBcXHUwOTk1XFx1MDljZFxcdTA5YjdcXHUwOWEzIFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmXFx1MDljN1xcdTA5YjAgXFx1MDk5NVxcdTA5YmVcXHUwOWIwXFx1MDljZFxcdTA5YWYgXFx1MDliOFxcdTA5YWVcXHUwOWNkXFx1MDlhYVxcdTA5YmVcXHUwOWE2XFx1MDlhOCBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5YjAgXFx1MDk4NVxcdTA5YWRcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDlhNFxcdTA5YmUgXFx1MDk4OVxcdTA5YThcXHUwOWNkXFx1MDlhOFxcdTA5YTQgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+XFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOThmXFx1MDk4NyBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDliZjwvYT5cXHUwOTY0J119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJcXHUwOWFjXFx1MDliZlxcdTA5YWFcXHUwOWEzXFx1MDlhOFwiLGNvbnRlbnQ6WydcXHUwOWI4XFx1MDk4MlxcdTA5YjZcXHUwOWNkXFx1MDliMlxcdTA5YmZcXHUwOWI3XFx1MDljZFxcdTA5OWYgXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YTggXFx1MDliOFxcdTA5YjBcXHUwOWFjXFx1MDliMFxcdTA5YmVcXHUwOWI5IFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOCBcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOTlhXFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDliMCBcXHUwOTk1XFx1MDliZVxcdTA5YjBcXHUwOWNkXFx1MDlhZlxcdTA5OTVcXHUwOWJlXFx1MDliMFxcdTA5YmZcXHUwOWE0XFx1MDliZSBcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOWFlXFx1MDliZVxcdTA5YWEgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlxcdTA5ODZcXHUwOWFlXFx1MDliMFxcdTA5YmUgXFx1MDk4ZlxcdTA5ODcgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmYgXFx1MDlhY1xcdTA5Y2RcXHUwOWFmXFx1MDlhY1xcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YmY8L2E+XFx1MDk2NCBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTg2XFx1MDk5N1xcdTA5Y2RcXHUwOWIwXFx1MDliOSBcXHUwOWFjXFx1MDliZlxcdTA5YjdcXHUwOWRmXFx1MDk5NSBcXHUwOThmXFx1MDk5NVxcdTA5OWZcXHUwOWJmIFxcdTA5YWFcXHUwOWNkXFx1MDliMFxcdTA5Y2JcXHUwOWFiXFx1MDliZVxcdTA5ODdcXHUwOWIyIFxcdTA5YTRcXHUwOWM4XFx1MDliMFxcdTA5YmYgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDk4NVxcdTA5YThcXHUwOWNkXFx1MDlhZlxcdTA5YmVcXHUwOWE4XFx1MDljZFxcdTA5YWYgXFx1MDliOFxcdTA5YmVcXHUwOTg3XFx1MDk5ZlxcdTA5YzcgXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDliZVxcdTA5YjhcXHUwOTk5XFx1MDljZFxcdTA5OTdcXHUwOWJmXFx1MDk5NSBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOCBcXHUwOWI4XFx1MDliMFxcdTA5YWNcXHUwOWIwXFx1MDliZVxcdTA5YjkgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDlhNFxcdTA5YzNcXHUwOWE0XFx1MDljMFxcdTA5YWZcXHUwOWJjIFxcdTA5YWFcXHUwOTk1XFx1MDljZFxcdTA5YjdcXHUwOWM3XFx1MDliMCBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOCBcXHUwOTg1XFx1MDk4MlxcdTA5YjZcXHUwOWMwXFx1MDlhNlxcdTA5YmVcXHUwOWIwXFx1MDliOFxcdTA5YWVcXHUwOWMyXFx1MDliOSBcXHUwOThmXFx1MDk4NyBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5YyBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MDlhYVxcdTA5YmVcXHUwOWIwXFx1MDljN1xcdTA5NjQnXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJcXHUwOWE0XFx1MDljM1xcdTA5YTRcXHUwOWMwXFx1MDlhZlxcdTA5YmMgXFx1MDlhYVxcdTA5OTVcXHUwOWNkXFx1MDliN1xcdTA5YzdcXHUwOWIwIFxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4IFxcdTA5ODVcXHUwOTgyXFx1MDliNlxcdTA5YzBcXHUwOWE2XFx1MDliZVxcdTA5YjBcXHUwOWI4XFx1MDlhZVxcdTA5YzJcXHUwOWI5XCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiXFx1MDlhNFxcdTA5YzNcXHUwOWE0XFx1MDljMFxcdTA5YWZcXHUwOWJjIFxcdTA5YWFcXHUwOTk1XFx1MDljZFxcdTA5YjdcXHUwOWM3XFx1MDliMCBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOCBcXHUwOTg1XFx1MDk4MlxcdTA5YjZcXHUwOWMwXFx1MDlhNlxcdTA5YmVcXHUwOWIwXFx1MDliOFxcdTA5YWVcXHUwOWMyXFx1MDliOTpcIixFZmZlY3RpdmVEYXRlOlwiXFx1MDk5NVxcdTA5YmVcXHUwOWIwXFx1MDljZFxcdTA5YWZcXHUwOTk1XFx1MDliMCBcXHUwOWI5XFx1MDk5M1xcdTA5ZGZcXHUwOWJlXFx1MDliMCBcXHUwOWE0XFx1MDliZVxcdTA5YjBcXHUwOWJmXFx1MDk5NjogXFx1MDk5Y1xcdTA5YmVcXHUwOWE4XFx1MDljMVxcdTA5ZGZcXHUwOWJlXFx1MDliMFxcdTA5YmYgMTUsIDIwMTlcIixCb2R5OltcIlxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5YWNcXHUwOWNkXFx1MDliMFxcdTA5YmVcXHUwOTg5XFx1MDk5Y1xcdTA5YmVcXHUwOWIwIFxcdTA5YWNcXHUwOWJlIFxcdTA5YTFcXHUwOWJmXFx1MDlhZFxcdTA5YmVcXHUwOTg3XFx1MDliOFxcdTA5YzdcXHUwOWIwIFxcdTA5YWVcXHUwOWJlXFx1MDlhN1xcdTA5Y2RcXHUwOWFmXFx1MDlhZVxcdTA5YzcgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOTlhXFx1MDliZVxcdTA5YjJcXHUwOWE4XFx1MDliZSBcXHUwOTk1XFx1MDliMFxcdTA5YmUgXFx1MDlhY1xcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5OTMsIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmYgXFx1MDlhOFxcdTA5YzBcXHUwOTlhXFx1MDljNyBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YjhcXHUwOWM3XFx1MDk5ZlxcdTA5YmZcXHUwOTgyXFx1MDliOCBcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOWFjXFx1MDliMFxcdTA5Y2RcXHUwOWE0XFx1MDlhOCBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5YWFcXHUwOWJlXFx1MDliMFxcdTA5YzdcXHUwOWE4XFx1MDk2NCBcXHUwOTg1XFx1MDlhOFxcdTA5YzFcXHUwOTk3XFx1MDljZFxcdTA5YjBcXHUwOWI5IFxcdTA5OTVcXHUwOWIwXFx1MDljNyBcXHUwOWFlXFx1MDlhOFxcdTA5YzcgXFx1MDliMFxcdTA5YmVcXHUwOTk2XFx1MDlhY1xcdTA5YzdcXHUwOWE4IFxcdTA5YWZcXHUwOWM3IFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmIFxcdTA5OWFcXHUwOWJlXFx1MDliMlxcdTA5YmVcXHUwOWE4XFx1MDljYlxcdTA5YjAgXFx1MDk5Y1xcdTA5YThcXHUwOWNkXFx1MDlhZiBcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWNkXFx1MDlhNlxcdTA5YmZcXHUwOWI3XFx1MDljZFxcdTA5OWYgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDlhZlxcdTA5YmNcXHUwOWNiXFx1MDk5Y1xcdTA5YThcXHUwOWMwXFx1MDlhZlxcdTA5YmMgXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5OGZcXHUwOTg3IFxcdTA5YjhcXHUwOWM3XFx1MDk5ZlxcdTA5YmZcXHUwOTgyXFx1MDliOFxcdTA5OWZcXHUwOWJmIFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWM3IFxcdTA5YjhcXHUwOWM3XFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWFjXFx1MDljZFxcdTA5YjJcXHUwOTk1IFxcdTA5OTVcXHUwOWIwXFx1MDliZSBcXHUwOWFmXFx1MDliZVxcdTA5YWNcXHUwOWM3IFxcdTA5YThcXHUwOWJlXFx1MDk2NFwiXSxUaXRsZTpcIlxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDliOFxcdTA5YzdcXHUwOTlmXFx1MDliZlxcdTA5ODJcXHUwOWI4XCIsQ09PS0lFX1BPUFVQOidcXHUwOWI5XFx1MDliZVxcdTA5ODchIFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmXFx1MDljNyBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliZVxcdTA5OWNcXHUwOTk1XFx1MDliMFxcdTA5Y2RcXHUwOWFlIFxcdTA5YWFcXHUwOWIwXFx1MDliZlxcdTA5OWFcXHUwOWJlXFx1MDliMlxcdTA5YThcXHUwOWJlIFxcdTA5OTMgXFx1MDlhY1xcdTA5Y2RcXHUwOWIwXFx1MDliZVxcdTA5ODlcXHUwOTljXFx1MDliZlxcdTA5ODIgXFx1MDk4NVxcdTA5YWRcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDlhNFxcdTA5YmUgXFx1MDk4OVxcdTA5YThcXHUwOWNkXFx1MDlhOFxcdTA5YTQgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNywgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIFxcdTA5YWFcXHUwOWJlXFx1MDliMFxcdTA5YWJcXHUwOWIwXFx1MDlhZVxcdTA5YzdcXHUwOWE4XFx1MDljZFxcdTA5YjggXFx1MDlhOFxcdTA5YmZcXHUwOWIwXFx1MDljMFxcdTA5OTVcXHUwOWNkXFx1MDliN1xcdTA5YTMgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YThcXHUwOWM3XFx1MDliMCBcXHUwOTg5XFx1MDlhNlxcdTA5Y2RcXHUwOWE2XFx1MDljN1xcdTA5YjZcXHUwOWNkXFx1MDlhZlxcdTA5YzcgXFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOThmXFx1MDk4NyBcXHUwOTkzXFx1MDlkZlxcdTA5YzdcXHUwOWFjXFx1MDliOFxcdTA5YmVcXHUwOTg3XFx1MDk5ZlxcdTA5YzcgXFx1MDlhNFxcdTA5YzNcXHUwOWE0XFx1MDljMFxcdTA5ZGZcXHUwOWFhXFx1MDk5NVxcdTA5Y2RcXHUwOWI3XFx1MDljN1xcdTA5YjAgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmYgXFx1MDliOFxcdTA5YjksIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDk5MyBcXHUwOThmXFx1MDk5NVxcdTA5ODcgXFx1MDlhN1xcdTA5YjBcXHUwOWEzXFx1MDljN1xcdTA5YjAgXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDlhZlxcdTA5YzFcXHUwOTk1XFx1MDljZFxcdTA5YTRcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiAoXFx1MjAxY1xcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljXFx1MjAxZCkgXFx1MDlhY1xcdTA5Y2RcXHUwOWFmXFx1MDlhY1xcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YmZcXHUwOTY0IFxcdTA5ODZcXHUwOWFlXFx1MDliMFxcdTA5YmUgXFx1MDk5NVxcdTA5YzBcXHUwOWFkXFx1MDliZVxcdTA5YWNcXHUwOWM3IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWJmIFxcdTA5OGZcXHUwOWFjXFx1MDk4MiBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YWFcXHUwOTliXFx1MDlhOFxcdTA5Y2RcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDlhY1xcdTA5YmZcXHUwOWI3XFx1MDlkZlxcdTA5YzcgXFx1MDk4NlxcdTA5YjBcXHUwOWNiIFxcdTA5OWNcXHUwOWJlXFx1MDlhOFxcdTA5YTRcXHUwOWM3IFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWE4XFx1MDljMFxcdTA5YTRcXHUwOWJmPC9hPiBcXHUwOWE2XFx1MDljN1xcdTA5OTZcXHUwOWMxXFx1MDlhOCEgXFx1MDlhOFxcdTA5YmZcXHUwOTlhXFx1MDljNyBcIlxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5OTdcXHUwOWNkXFx1MDliMFxcdTA5YjlcXHUwOWEzIFxcdTA5OTVcXHUwOWIwXFx1MDk5YlxcdTA5YmZcIi1cXHUwOWE0XFx1MDljNyBcXHUwOTk1XFx1MDljZFxcdTA5YjJcXHUwOWJmXFx1MDk5NSBcXHUwOTk1XFx1MDliMFxcdTA5YzcgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZiBcXHUwOTg1XFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDliOVxcdTA5YmVcXHUwOWIwXFx1MDljZFxcdTA5YWYgXFx1MDlhOFxcdTA5ZGYgXFx1MDk4ZlxcdTA5YWVcXHUwOWE4IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5YjhcXHUwOWI5IFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWI4XFx1MDlhYyBcXHUwOWE3XFx1MDliMFxcdTA5YTNcXHUwOWM3XFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5YyBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwXFx1MDljN1xcdTA5YjAgXFx1MDliOFxcdTA5YWVcXHUwOWNkXFx1MDlhZVxcdTA5YTRcXHUwOWJmIFxcdTA5YTZcXHUwOWJmXFx1MDk5YVxcdTA5Y2RcXHUwOTliXFx1MDljN1xcdTA5YThcXHUwOTY0IFxcdTA5YTFcXHUwOWJlXFx1MDlhOFxcdTA5YTZcXHUwOWJmXFx1MDk5NVxcdTA5YzdcXHUyMDFjWFxcdTIwMWQtXFx1MDk4ZiBcXHUwOTk1XFx1MDljZFxcdTA5YjJcXHUwOWJmXFx1MDk5NSBcXHUwOTk1XFx1MDliMFxcdTA5YzcgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZiBcXHUwOTg1XFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDliOVxcdTA5YmVcXHUwOWIwXFx1MDljZFxcdTA5YWYgXFx1MDlhOFxcdTA5ZGYgXFx1MDk4ZlxcdTA5YWVcXHUwOWE4IFxcdTA5YjhcXHUwOWFlXFx1MDliOFxcdTA5Y2RcXHUwOWE0IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5ODVcXHUwOWI4XFx1MDljZFxcdTA5YWNcXHUwOWMwXFx1MDk5NVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MDlhYVxcdTA5YmVcXHUwOWIwXFx1MDljN1xcdTA5YThcXHUwOTY0IFxcdTA5YWZcXHUwOWM3IFxcdTA5OTVcXHUwOWNiXFx1MDlhOFxcdTA5Y2IgXFx1MDliOFxcdTA5YWVcXHUwOWRmIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDliOFxcdTA5YzdcXHUwOTlmXFx1MDliZlxcdTA5ODJcXHUwOWI4IFxcdTA5YWFcXHUwOWIwXFx1MDliZlxcdTA5YWNcXHUwOWIwXFx1MDljZFxcdTA5YTRcXHUwOWE4IFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5ODVcXHUwOWE4XFx1MDljMVxcdTA5YWVcXHUwOWE0XFx1MDliZiBcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOWE0XFx1MDljZFxcdTA5YWZcXHUwOWJlXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MjAxY1xcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDliOFxcdTA5YzdcXHUwOTlmXFx1MDliZlxcdTA5ODJcXHUwOWI4XFx1MjAxZC1cXHUwOThmIFxcdTA5YWNcXHUwOWJlIFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWE4XFx1MDljMFxcdTA5YTRcXHUwOWJmPC9hPi1cXHUwOWE0XFx1MDljNyBcXHUwOWFmXFx1MDliZVxcdTA5YThcXHUwOTY0JyxDT09LSUVfUE9QVVBfRVU6J1xcdTA5YjlcXHUwOWJlXFx1MDk4NyEgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIFxcdTA5YjhcXHUwOWJlXFx1MDk4N1xcdTA5OWZcXHUwOWM3IFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWJlXFx1MDk5Y1xcdTA5OTVcXHUwOWIwXFx1MDljZFxcdTA5YWUgXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDk5YVxcdTA5YmVcXHUwOWIyXFx1MDlhOFxcdTA5YmUgXFx1MDk5MyBcXHUwOWFjXFx1MDljZFxcdTA5YjBcXHUwOWJlXFx1MDk4OVxcdTA5OWNcXHUwOWJmXFx1MDk4MiBcXHUwOTg1XFx1MDlhZFxcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWE0XFx1MDliZSBcXHUwOTg5XFx1MDlhOFxcdTA5Y2RcXHUwOWE4XFx1MDlhNCBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3LCBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDlhYVxcdTA5YmVcXHUwOWIwXFx1MDlhYlxcdTA5YjBcXHUwOWFlXFx1MDljN1xcdTA5YThcXHUwOWNkXFx1MDliOCBcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWMwXFx1MDk5NVxcdTA5Y2RcXHUwOWI3XFx1MDlhMyBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5OGZcXHUwOWFjXFx1MDk4MiBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOFxcdTA5YzdcXHUwOWIwIFxcdTA5ODlcXHUwOWE2XFx1MDljZFxcdTA5YTZcXHUwOWM3XFx1MDliNlxcdTA5Y2RcXHUwOWFmXFx1MDljNyBcXHUwOTg2XFx1MDlhZVxcdTA5YjBcXHUwOWJlIFxcdTA5OGZcXHUwOTg3IFxcdTA5OTNcXHUwOWRmXFx1MDljN1xcdTA5YWNcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmXFx1MDljNyBcXHUwOWE0XFx1MDljM1xcdTA5YTRcXHUwOWMwXFx1MDlkZlxcdTA5YWFcXHUwOTk1XFx1MDljZFxcdTA5YjdcXHUwOWM3XFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWI4XFx1MDliOSwgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOTkzIFxcdTA5OGZcXHUwOTk1XFx1MDk4NyBcXHUwOWE3XFx1MDliMFxcdTA5YTNcXHUwOWM3XFx1MDliMCBcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOWFmXFx1MDljMVxcdTA5OTVcXHUwOWNkXFx1MDlhNFxcdTA5YmZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmIChcXHUyMDFjXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWNcXHUyMDFkKSBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDliZlxcdTA5NjQgXFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOTk1XFx1MDljMFxcdTA5YWRcXHUwOWJlXFx1MDlhY1xcdTA5YzcgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDlhY1xcdTA5Y2RcXHUwOWFmXFx1MDlhY1xcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YmYgXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDlhYVxcdTA5OWJcXHUwOWE4XFx1MDljZFxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWFjXFx1MDliZlxcdTA5YjdcXHUwOWRmXFx1MDljNyBcXHUwOTg2XFx1MDliMFxcdTA5Y2IgXFx1MDk5Y1xcdTA5YmVcXHUwOWE4XFx1MDlhNFxcdTA5YzcgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YThcXHUwOWMwXFx1MDlhNFxcdTA5YmY8L2E+IFxcdTA5YTZcXHUwOWM3XFx1MDk5NlxcdTA5YzFcXHUwOWE4ISBcXHUwOWE4XFx1MDliZlxcdTA5OWFcXHUwOWM3IFwiXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDk5N1xcdTA5Y2RcXHUwOWIwXFx1MDliOVxcdTA5YTMgXFx1MDk5NVxcdTA5YjBcXHUwOTliXFx1MDliZlwiLVxcdTA5YTRcXHUwOWM3IFxcdTA5OTVcXHUwOWNkXFx1MDliMlxcdTA5YmZcXHUwOTk1IFxcdTA5OTVcXHUwOWIwXFx1MDljNyBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJmIFxcdTA5ODVcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOWI5XFx1MDliZVxcdTA5YjBcXHUwOWNkXFx1MDlhZiBcXHUwOWE4XFx1MDlkZiBcXHUwOThmXFx1MDlhZVxcdTA5YTggXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDliOFxcdTA5YjkgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIFxcdTA5YjhcXHUwOWFjIFxcdTA5YTdcXHUwOWIwXFx1MDlhM1xcdTA5YzdcXHUwOWIwIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDliMCBcXHUwOWI4XFx1MDlhZVxcdTA5Y2RcXHUwOWFlXFx1MDlhNFxcdTA5YmYgXFx1MDlhNlxcdTA5YmZcXHUwOTlhXFx1MDljZFxcdTA5OWJcXHUwOWM3XFx1MDlhOFxcdTA5NjQgXFx1MDlhMVxcdTA5YmVcXHUwOWE4XFx1MDlhNlxcdTA5YmZcXHUwOTk1XFx1MDljN1xcdTIwMWNYXFx1MjAxZC1cXHUwOThmIFxcdTA5OTVcXHUwOWNkXFx1MDliMlxcdTA5YmZcXHUwOTk1IFxcdTA5OTVcXHUwOWIwXFx1MDljNyBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJmIFxcdTA5ODVcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOWI5XFx1MDliZVxcdTA5YjBcXHUwOWNkXFx1MDlhZiBcXHUwOWE4XFx1MDlkZiBcXHUwOThmXFx1MDlhZVxcdTA5YTggXFx1MDliOFxcdTA5YWVcXHUwOWI4XFx1MDljZFxcdTA5YTQgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDk4NVxcdTA5YjhcXHUwOWNkXFx1MDlhY1xcdTA5YzBcXHUwOTk1XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOWFhXFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDlhOFxcdTA5NjQgXFx1MDlhZlxcdTA5YzcgXFx1MDk5NVxcdTA5Y2JcXHUwOWE4XFx1MDljYiBcXHUwOWI4XFx1MDlhZVxcdTA5ZGYgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDljN1xcdTA5OWZcXHUwOWJmXFx1MDk4MlxcdTA5YjggXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDlhY1xcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YTggXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5YjAgXFx1MDk4NVxcdTA5YThcXHUwOWMxXFx1MDlhZVxcdTA5YTRcXHUwOWJmIFxcdTA5YWFcXHUwOWNkXFx1MDliMFxcdTA5YTRcXHUwOWNkXFx1MDlhZlxcdTA5YmVcXHUwOWI5XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUyMDFjXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDljN1xcdTA5OWZcXHUwOWJmXFx1MDk4MlxcdTA5YjhcXHUyMDFkLVxcdTA5OGYgXFx1MDlhY1xcdTA5YmUgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YThcXHUwOWMwXFx1MDlhNFxcdTA5YmY8L2E+LVxcdTA5YTRcXHUwOWM3IFxcdTA5YWZcXHUwOWJlXFx1MDlhOFxcdTA5NjQnLEFncmVlVGV4dDpcIlxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5YjhcXHUwOWNkXFx1MDlhY1xcdTA5YzBcXHUwOTk1XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWMxXFx1MDlhOFwiLFNldHRpbmdzVGV4dDpcIlxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDliOFxcdTA5YzdcXHUwOTlmXFx1MDliZlxcdTA5ODJcXHUwOWI4XCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHUwOWIyXFx1MDk5OVxcdTA5Y2RcXHUwOTk4XFx1MDlhOCBcXHUwOWI4XFx1MDlhZVxcdTA5Y2RcXHUwOWFhXFx1MDliMFxcdTA5Y2RcXHUwOTk1XFx1MDljNyBcXHUwOWIwXFx1MDliZlxcdTA5YWFcXHUwOWNiXFx1MDliMFxcdTA5Y2RcXHUwOTlmIFxcdTA5OTVcXHUwOWIwXFx1MDljMVxcdTA5YThcIixTcG90bGlnaHQ6XCJcXHUwOWI4XFx1MDljZFxcdTA5YWFcXHUwOTlmXFx1MDliMlxcdTA5YmVcXHUwOTg3XFx1MDk5ZlwifSxcImJuLWluXCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiXFx1MDliMlxcdTA5YmVcXHUwOTg3XFx1MDlhZFwiLEFkczpcIlxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4XCIsQ29tcGFueTpcIlxcdTA5OTVcXHUwOWNiXFx1MDlhZVxcdTA5Y2RcXHUwOWFhXFx1MDliZVxcdTA5YThcXHUwOWJmXCIsSG9tZTpcIlxcdTA5YWNcXHUwOWJlXFx1MDlhMVxcdTA5YmNcXHUwOWJmXCIsQmxvZzpcIlxcdTA5YWNcXHUwOWNkXFx1MDliMlxcdTA5OTdcIixKb2JzOlwiXFx1MDk5YVxcdTA5YmVcXHUwOTk1XFx1MDliMFxcdTA5YmZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmXCIsQ2FyZWVyczpcIlxcdTA5YWFcXHUwOWM3XFx1MDliNlxcdTA5YmVcIixQcmVzczpcIlxcdTA5YWFcXHUwOWNkXFx1MDliMFxcdTA5YzdcXHUwOWI4XCIsTmV3czpcIlxcdTA5YjhcXHUwOTgyXFx1MDlhY1xcdTA5YmVcXHUwOWE2XCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTA5OWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YjhcXHUwOWNkXFx1MDlhZlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmYgXFx1MDk5ZlxcdTA5YmZcXHUwOWFhXFx1MDljMVxcdTA5YThcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiXFx1MDlhZFxcdTA5YmVcXHUwOWI3XFx1MDliZVwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlNuYXBjaGF0IFxcdTA5YTFcXHUwOWJlXFx1MDk4OVxcdTA5YThcXHUwOWIyXFx1MDljYlxcdTA5YTEgXFx1MDk5NVxcdTA5YjBcXHUwOWMxXFx1MDlhOFwiLERvd25sb2FkOlwiXFx1MDlhMVxcdTA5YmVcXHUwOTg5XFx1MDlhOFxcdTA5YjJcXHUwOWNiXFx1MDlhMSBcXHUwOTk1XFx1MDliMFxcdTA5YzFcXHUwOWE4XCIsS2l0OlwiXFx1MDk5NVxcdTA5YmZcXHUwOTlmXCIsU3RvcmllczpcIlxcdTA5OTdcXHUwOWIyXFx1MDljZFxcdTA5YWFcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTA5YjhcXHUwOWNkXFx1MDk5ZlxcdTA5Y2JcXHUwOWIwXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJpT1MgXFx1MDk4ZlxcdTA5YjAgXFx1MDk5Y1xcdTA5YThcXHUwOWNkXFx1MDlhZiBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQgXFx1MDk4ZlxcdTA5YjAgXFx1MDk5Y1xcdTA5YThcXHUwOWNkXFx1MDlhZiBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTA5OTVcXHUwOWFlXFx1MDliZlxcdTA5ODlcXHUwOWE4XFx1MDliZlxcdTA5OWZcXHUwOWJmXCIsU3VwcG9ydDpcIlxcdTA5YjhcXHUwOWI5XFx1MDliZVxcdTA5ZGZcXHUwOWE0XFx1MDliZVwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlxcdTA5OTVcXHUwOWFlXFx1MDliZlxcdTA5ODlcXHUwOWE4XFx1MDliZlxcdTA5OWZcXHUwOWJmXFx1MDliMCBcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWNkXFx1MDlhNlxcdTA5YzdcXHUwOWI2XFx1MDliZlxcdTA5OTVcXHUwOWJlXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWJlXFx1MDlhYVxcdTA5YTRcXHUwOWNkXFx1MDlhNFxcdTA5YmUgXFx1MDk5NVxcdTA5YzdcXHUwOWE4XFx1MDljZFxcdTA5YTZcXHUwOWNkXFx1MDliMFwiLFNuYXBjb2RlczpcIlNuYXBjb2RlIFxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmZcIixHZW9maWx0ZXJzOlwiXFx1MDk5Y1xcdTA5YmZcXHUwOTkzXFx1MDlhYlxcdTA5YmZcXHUwOWIyXFx1MDljZFxcdTA5OWZcXHUwOWJlXFx1MDliMFxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmZcIixDcmVhdGU6XCJcXHUwOWFiXFx1MDliZlxcdTA5YjJcXHUwOWNkXFx1MDk5ZlxcdTA5YmVcXHUwOWIwIFxcdTA5OTMgXFx1MDliMlxcdTA5YzdcXHUwOWE4XFx1MDljZFxcdTA5YjhcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmXCIsTWFwOlwiXFx1MDlhZVxcdTA5YmVcXHUwOWE4XFx1MDk5YVxcdTA5YmZcXHUwOWE0XFx1MDljZFxcdTA5YjBcIixBZHZlcnRpc2luZzpcIlxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4XCIsXCJCdXkgQWRzXCI6XCJcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOCBcXHUwOTk1XFx1MDliZlxcdTA5YThcXHUwOWMxXFx1MDlhOFwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4XFx1MDljN1xcdTA5YjAgXFx1MDlhOFxcdTA5YzBcXHUwOWE0XFx1MDliZlxcdTA5YjhcXHUwOWFlXFx1MDljMlxcdTA5YjlcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiXFx1MDliMFxcdTA5YmVcXHUwOTljXFx1MDlhOFxcdTA5YzhcXHUwOWE0XFx1MDliZlxcdTA5OTUgXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YTggXFx1MDliMlxcdTA5YmVcXHUwOTg3XFx1MDlhY1xcdTA5Y2RcXHUwOWIwXFx1MDljN1xcdTA5YjBcXHUwOWMwXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwOWFjXFx1MDljZFxcdTA5YjBcXHUwOWNkXFx1MDlhZlxcdTA5YmVcXHUwOWE4XFx1MDljZFxcdTA5YTFcXHUwOWM3XFx1MDliMCBcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWNkXFx1MDlhNlxcdTA5YzdcXHUwOWI2XFx1MDliZlxcdTA5OTVcXHUwOWJlXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOTlhXFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDliMCBcXHUwOWE4XFx1MDliZlxcdTA5ZGZcXHUwOWFlXFx1MDliZVxcdTA5YWNcXHUwOWIyXFx1MDljMFwiLExlZ2FsOlwiXFx1MDk4NlxcdTA5ODdcXHUwOWE4XFx1MDliZlwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDliN1xcdTA5YzdcXHUwOWFjXFx1MDliZVxcdTA5YjAgXFx1MDliNlxcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YmVcXHUwOWFjXFx1MDliMlxcdTA5YzBcIixJbXByZXNzdW06XCJcXHUwOTg3XFx1MDlhZVxcdTA5Y2RcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOWM3XFx1MDliOFxcdTA5YmVcXHUwOWFlXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiXFx1MDk5N1xcdTA5Y2JcXHUwOWFhXFx1MDlhOFxcdTA5YzBcXHUwOWRmXFx1MDlhNFxcdTA5YmVcXHUwOWIwIFxcdTA5YThcXHUwOWMwXFx1MDlhNFxcdTA5YmZcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHUwOTk3XFx1MDljYlxcdTA5YWFcXHUwOWE4XFx1MDljMFxcdTA5ZGZcXHUwOWE0XFx1MDliZSBcXHUwOTk1XFx1MDljN1xcdTA5YThcXHUwOWNkXFx1MDlhNlxcdTA5Y2RcXHUwOWIwXCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YjhcXHUwOTgyXFx1MDk5NVxcdTA5Y2RcXHUwOWIwXFx1MDliZVxcdTA5YThcXHUwOWNkXFx1MDlhNCBcXHUwOWE4XFx1MDljMFxcdTA5YTRcXHUwOWJmXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwOWI4XFx1MDljZFxcdTA5YWVcXHUwOWMzXFx1MDlhNFxcdTA5YmZcXHUwOWI4XFx1MDlhZVxcdTA5YzJcXHUwOWI5XFx1MDljN1xcdTA5YjAgXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDliN1xcdTA5YzdcXHUwOWFjXFx1MDliZVxcdTA5YjAgXFx1MDliNlxcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YmVcXHUwOWFjXFx1MDliMlxcdTA5YzBcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MDk5NVxcdTA5YmVcXHUwOWI4XFx1MDljZFxcdTA5OWZcXHUwOWFlIFxcdTA5YjhcXHUwOWMzXFx1MDk5Y1xcdTA5YThcXHUwOWJlXFx1MDlhNFxcdTA5Y2RcXHUwOWFlXFx1MDk5NSBcXHUwOWI4XFx1MDliMFxcdTA5OWVcXHUwOWNkXFx1MDk5Y1xcdTA5YmVcXHUwOWFlXFx1MDliOFxcdTA5YWVcXHUwOWMyXFx1MDliOVxcdTA5YzdcXHUwOWIwIFxcdTA5YjZcXHUwOWIwXFx1MDljZFxcdTA5YTRcXHUwOWJlXFx1MDlhY1xcdTA5YjJcXHUwOWMwXCIsQ09NTVVOSVRZX1RPUzpcIlxcdTA5OTVcXHUwOWFlXFx1MDliZlxcdTA5ODlcXHUwOWE4XFx1MDliZlxcdTA5OWZcXHUwOWJmIFxcdTA5OWNcXHUwOWJmXFx1MDk5M1xcdTA5YWJcXHUwOWJmXFx1MDliMlxcdTA5Y2RcXHUwOTlmXFx1MDliZVxcdTA5YjAgXFx1MDliNlxcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YmVcXHUwOWFjXFx1MDliMlxcdTA5YzBcIixMRU5TX1NUVURJT19UT1M6XCJMZW5zIFN0dWRpbyBcXHUwOWI2XFx1MDliMFxcdTA5Y2RcXHUwOWE0XFx1MDliZVxcdTA5YWNcXHUwOWIyXFx1MDljMFwiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlxcdTA5OTdcXHUwOWNiXFx1MDlhYVxcdTA5YThcXHUwOWMwXFx1MDlhZlxcdTA5YmNcXHUwOWE0XFx1MDliZSBcXHUwOWI4XFx1MDk4MlxcdTA5OTVcXHUwOWNkXFx1MDliMFxcdTA5YmVcXHUwOWE4XFx1MDljZFxcdTA5YTQgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5YjAgXFx1MDlhY1xcdTA5YmZcXHUwOTk1XFx1MDliMlxcdTA5Y2RcXHUwOWFhXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDlkZlxcdTA5Y2JcXHUwOTljXFx1MDlhOFxcdTA5YzBcXHUwOWRmIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmXCIsY29udGVudDpbJ1xcdTA5YjhcXHUwOWJlXFx1MDk4N1xcdTA5OWYgXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDk5YVxcdTA5YmVcXHUwOWIyXFx1MDlhOFxcdTA5YmVcXHUwOWRmIFxcdTA5YjhcXHUwOWJlXFx1MDliOVxcdTA5YmVcXHUwOWFmXFx1MDljZFxcdTA5YWYgXFx1MDk5NVxcdTA5YjBcXHUwOWJlXFx1MDliMCBcXHUwOTljXFx1MDlhOFxcdTA5Y2RcXHUwOWFmIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+XFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOThmXFx1MDk4NyBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDliZjwvYT5cXHUwOTY0IFxcdTA5OGZcXHUwOTg3IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmIFxcdTA5YWFcXHUwOWNkXFx1MDliMFxcdTA5ZGZcXHUwOWNiXFx1MDk5Y1xcdTA5YThcXHUwOWMwXFx1MDlkZiBcXHUwOWFjXFx1MDliMlxcdTA5YzcgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZiBcXHUwOThmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWFjXFx1MDlhOFxcdTA5Y2RcXHUwOWE3IFxcdTA5YjBcXHUwOWJlXFx1MDk5NlxcdTA5YTRcXHUwOWM3IFxcdTA5YWFcXHUwOWJlXFx1MDliMFxcdTA5YzdcXHUwOWE4IFxcdTA5YThcXHUwOWJlXFx1MDk2NCddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwOWFhXFx1MDk5YlxcdTA5YThcXHUwOWNkXFx1MDlhNlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmZcIixjb250ZW50OlsnXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5YjAgXFx1MDlhYVxcdTA5OWJcXHUwOWE4XFx1MDljZFxcdTA5YTZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmIFxcdTA5YWVcXHUwOWE4XFx1MDljNyBcXHUwOWIwXFx1MDliZVxcdTA5OTZcXHUwOWE0XFx1MDljNyBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIFxcdTA5YjhcXHUwOWJlXFx1MDk4N1xcdTA5OWZcXHUwOWM3IFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5ODVcXHUwOWFkXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YTRcXHUwOWJlXFx1MDk5NVxcdTA5YzcgXFx1MDk4OVxcdTA5YThcXHUwOWNkXFx1MDlhOFxcdTA5YTQgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+XFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOThmXFx1MDk4NyBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDliZjwvYT5cXHUwOTY0J119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTA5OTVcXHUwOWJlXFx1MDliMFxcdTA5Y2RcXHUwOWI3XFx1MDliOFxcdTA5YWVcXHUwOWNkXFx1MDlhYVxcdTA5YmVcXHUwOWE2XFx1MDlhOCBcXHUwOTkzIFxcdTA5YWNcXHUwOWM4XFx1MDliNlxcdTA5Y2RcXHUwOWIyXFx1MDljN1xcdTA5YjdcXHUwOWJmXFx1MDk5NVwiLGNvbnRlbnQ6WydcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJmIFxcdTA5OTVcXHUwOWMwXFx1MDlhZFxcdTA5YmVcXHUwOWFjXFx1MDljNyBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDliOFxcdTA5YmVcXHUwOTg3XFx1MDk5ZiBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDljN1xcdTA5YTggXFx1MDlhNFxcdTA5YmVcXHUwOWIwIFxcdTA5YjhcXHUwOWFlXFx1MDljZFxcdTA5YWFcXHUwOWIwXFx1MDljZFxcdTA5OTVcXHUwOWM3IFxcdTA5YTRcXHUwOWE1XFx1MDljZFxcdTA5YWYgXFx1MDliOFxcdTA5ODJcXHUwOTk3XFx1MDljZFxcdTA5YjBcXHUwOWI5IFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcsIFxcdTA5YjhcXHUwOWJlXFx1MDk4N1xcdTA5OWZcXHUwOWM3XFx1MDliMCBcXHUwOTk1XFx1MDliZVxcdTA5YjBcXHUwOWNkXFx1MDlhZlxcdTA5YjhcXHUwOWFlXFx1MDljZFxcdTA5YWFcXHUwOWJlXFx1MDlhNlxcdTA5YTggXFx1MDlhYVxcdTA5YjBcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWM3XFx1MDk5NVxcdTA5Y2RcXHUwOWI3XFx1MDlhMyBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5OGZcXHUwOWFjXFx1MDk4MiBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDliOFxcdTA5YmVcXHUwOTg3XFx1MDk5ZlxcdTA5YzdcXHUwOWIwIFxcdTA5OTVcXHUwOWJlXFx1MDliMFxcdTA5Y2RcXHUwOWFmXFx1MDliOFxcdTA5YWVcXHUwOWNkXFx1MDlhYVxcdTA5YmVcXHUwOWE2XFx1MDlhOCBcXHUwOTkzIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5ODVcXHUwOWFkXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YTRcXHUwOWJlXFx1MDk5NVxcdTA5YzcgXFx1MDk4OVxcdTA5YThcXHUwOWNkXFx1MDlhOFxcdTA5YTQgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+XFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOThmXFx1MDk4NyBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDliZjwvYT5cXHUwOTY0J119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJcXHUwOWFjXFx1MDliZlxcdTA5YWFcXHUwOWEzXFx1MDlhOFwiLGNvbnRlbnQ6WydcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOWJlXFx1MDliOFxcdTA5OTlcXHUwOWNkXFx1MDk5N1xcdTA5YmZcXHUwOTk1IFxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4IFxcdTA5YjhcXHUwOWIwXFx1MDlhY1xcdTA5YjBcXHUwOWJlXFx1MDliOSBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIFxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4IFxcdTA5YWFcXHUwOWNkXFx1MDliMFxcdTA5OWFcXHUwOWJlXFx1MDliMFxcdTA5YTNcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliZVxcdTA5YjBcXHUwOWNkXFx1MDlhZlxcdTA5OTVcXHUwOWJlXFx1MDliMFxcdTA5YmZcXHUwOWE0XFx1MDliZSBcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOWFlXFx1MDliZVxcdTA5YWEgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlxcdTA5ODZcXHUwOWFlXFx1MDliMFxcdTA5YmUgXFx1MDk4ZlxcdTA5ODcgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OTdcXHUwOWMxXFx1MDliMlxcdTA5YmYgXFx1MDlhY1xcdTA5Y2RcXHUwOWFmXFx1MDlhY1xcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YmY8L2E+XFx1MDk2NCBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDlhNFxcdTA5YzNcXHUwOWE0XFx1MDljMFxcdTA5ZGZcXHUwOWFhXFx1MDk5NVxcdTA5Y2RcXHUwOWI3XFx1MDljN1xcdTA5YjAgXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YTggXFx1MDk4NVxcdTA5ODJcXHUwOWI2XFx1MDljMFxcdTA5YTZcXHUwOWJlXFx1MDliMFxcdTA5YzdcXHUwOWIwXFx1MDliZSBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTg2XFx1MDk5N1xcdTA5Y2RcXHUwOWIwXFx1MDliOVxcdTA5YzdcXHUwOWIwIFxcdTA5OGZcXHUwOTk1XFx1MDk5ZlxcdTA5YmYgXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDljYlxcdTA5YWJcXHUwOWJlXFx1MDk4N1xcdTA5YjIgXFx1MDlhNFxcdTA5YzhcXHUwOWIwXFx1MDliZiBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5OGZcXHUwOWFjXFx1MDk4MiBcXHUwOTg1XFx1MDlhOFxcdTA5Y2RcXHUwOWFmXFx1MDliZVxcdTA5YThcXHUwOWNkXFx1MDlhZiBcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmXFx1MDljNyBcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOWJlXFx1MDliOFxcdTA5OTlcXHUwOWNkXFx1MDk5N1xcdTA5YmZcXHUwOTk1IFxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4IFxcdTA5YjhcXHUwOWIwXFx1MDlhY1xcdTA5YjBcXHUwOWJlXFx1MDliOSBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5OGZcXHUwOTg3IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmIFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOWFhXFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDk2NCddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTA5YTRcXHUwOWMzXFx1MDlhNFxcdTA5YzBcXHUwOWRmXFx1MDlhYVxcdTA5OTVcXHUwOWNkXFx1MDliN1xcdTA5YzdcXHUwOWIwIFxcdTA5YWNcXHUwOWJmXFx1MDk5Y1xcdTA5Y2RcXHUwOTllXFx1MDliZVxcdTA5YWFcXHUwOWE4XFx1MDljMCBcXHUwOTg1XFx1MDk4MlxcdTA5YjZcXHUwOWMwXFx1MDlhNlxcdTA5YmVcXHUwOWIwXFx1MDk5N1xcdTA5YTNcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJcXHUwOWE0XFx1MDljM1xcdTA5YTRcXHUwOWMwXFx1MDlkZlxcdTA5YWFcXHUwOTk1XFx1MDljZFxcdTA5YjdcXHUwOWM3XFx1MDliMCBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOFxcdTA5YzAgXFx1MDk4NVxcdTA5ODJcXHUwOWI2XFx1MDljMFxcdTA5YTZcXHUwOWJlXFx1MDliMFxcdTA5OTdcXHUwOWEzOlwiLEVmZmVjdGl2ZURhdGU6XCJcXHUwOTk1XFx1MDliZVxcdTA5YjBcXHUwOWNkXFx1MDlhZlxcdTA5OTVcXHUwOWIwIFxcdTA5YjlcXHUwOTkzXFx1MDlkZlxcdTA5YmVcXHUwOWIwIFxcdTA5YTRcXHUwOWJlXFx1MDliMFxcdTA5YmZcXHUwOTk2OiAxNSBcXHUwOTljXFx1MDliZVxcdTA5YThcXHUwOWMxXFx1MDlkZlxcdTA5YmVcXHUwOWIwXFx1MDliZiwgMjAxOVwiLEJvZHk6W1wiXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5YjAgXFx1MDlhY1xcdTA5Y2RcXHUwOWIwXFx1MDliZVxcdTA5ODlcXHUwOTljXFx1MDliZVxcdTA5YjAgXFx1MDlhY1xcdTA5YmUgXFx1MDlhMVxcdTA5YmZcXHUwOWFkXFx1MDliZVxcdTA5ODdcXHUwOWI4XFx1MDljN1xcdTA5YjAgXFx1MDlhZVxcdTA5YmVcXHUwOWE3XFx1MDljZFxcdTA5YWZcXHUwOWFlXFx1MDljNyBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOFxcdTA5Y2RcXHUwOWE1XFx1MDliZVxcdTA5YWFcXHUwOWE4XFx1MDliZSBcXHUwOTk1XFx1MDliMFxcdTA5YmUgXFx1MDk5YlxcdTA5YmVcXHUwOWExXFx1MDliY1xcdTA5YmVcXHUwOTkzLCBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJmIFxcdTA5YThcXHUwOWJmXFx1MDk5YVxcdTA5YzcgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDljN1xcdTA5OWZcXHUwOWJmXFx1MDk4MlxcdTA5YjggXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDlhY1xcdTA5YjBcXHUwOWNkXFx1MDlhNFxcdTA5YTggXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOWFhXFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDlhOFxcdTA5NjQgXFx1MDk4NVxcdTA5YThcXHUwOWMxXFx1MDk5N1xcdTA5Y2RcXHUwOWIwXFx1MDliOSBcXHUwOTk1XFx1MDliMFxcdTA5YzcgXFx1MDliMlxcdTA5OTVcXHUwOWNkXFx1MDliN1xcdTA5Y2RcXHUwOWFmIFxcdTA5OTVcXHUwOWIwXFx1MDljMVxcdTA5YTgsIFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmIFxcdTA5OWFcXHUwOWJlXFx1MDliMlxcdTA5YmVcXHUwOWE0XFx1MDljNyBcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWNkXFx1MDlhNlxcdTA5YmZcXHUwOWI3XFx1MDljZFxcdTA5OWYgXFx1MDk5NVxcdTA5YmZcXHUwOTliXFx1MDljMSBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YWFcXHUwOWNkXFx1MDliMFxcdTA5ZGZcXHUwOWNiXFx1MDk5Y1xcdTA5YThcXHUwOWMwXFx1MDlkZiBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDk4ZlxcdTA5ODcgXFx1MDliOFxcdTA5YzdcXHUwOTlmXFx1MDliZlxcdTA5ODJcXHUwOWI4IFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWM3IFxcdTA5ODVcXHUwOWFjXFx1MDliMFxcdTA5Y2JcXHUwOWE3IFxcdTA5OTVcXHUwOWIwXFx1MDliZSBcXHUwOWFmXFx1MDliZVxcdTA5ZGYgXFx1MDlhOFxcdTA5YmVcXHUwOTY0XCJdLFRpdGxlOlwiXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDljN1xcdTA5OWZcXHUwOWJmXFx1MDk4MlxcdTA5YjhcIixDT09LSUVfUE9QVVA6J1xcdTA5YjlcXHUwOWJlXFx1MDk4NyEgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIFxcdTA5YjhcXHUwOWJlXFx1MDk4N1xcdTA5OWZcXHUwOWM3IFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWJlXFx1MDk5Y1xcdTA5OTVcXHUwOWIwXFx1MDljZFxcdTA5YWUgXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDk5YVxcdTA5YmVcXHUwOWIyXFx1MDlhOFxcdTA5YmUgXFx1MDk5MyBcXHUwOWFjXFx1MDljZFxcdTA5YjBcXHUwOWJlXFx1MDk4OVxcdTA5OWNcXHUwOWJmXFx1MDk4MiBcXHUwOTg1XFx1MDlhZFxcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWE0XFx1MDliZSBcXHUwOTg5XFx1MDlhOFxcdTA5Y2RcXHUwOWE4XFx1MDlhNCBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3LCBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDlhYVxcdTA5YmVcXHUwOWIwXFx1MDlhYlxcdTA5YjBcXHUwOWFlXFx1MDljN1xcdTA5YThcXHUwOWNkXFx1MDliOCBcXHUwOWE4XFx1MDliZlxcdTA5YjBcXHUwOWMwXFx1MDk5NVxcdTA5Y2RcXHUwOWI3XFx1MDlhMyBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5OGZcXHUwOWFjXFx1MDk4MiBcXHUwOWFjXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YmVcXHUwOWFhXFx1MDlhOFxcdTA5YzdcXHUwOWIwIFxcdTA5ODlcXHUwOWE2XFx1MDljZFxcdTA5YTZcXHUwOWM3XFx1MDliNlxcdTA5Y2RcXHUwOWFmXFx1MDljNyBcXHUwOTg2XFx1MDlhZVxcdTA5YjBcXHUwOWJlIFxcdTA5OGZcXHUwOTg3IFxcdTA5OTNcXHUwOWRmXFx1MDljN1xcdTA5YWNcXHUwOWI4XFx1MDliZVxcdTA5ODdcXHUwOTlmXFx1MDljNyBcXHUwOWE0XFx1MDljM1xcdTA5YTRcXHUwOWMwXFx1MDlkZlxcdTA5YWFcXHUwOTk1XFx1MDljZFxcdTA5YjdcXHUwOWM3XFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5N1xcdTA5YzFcXHUwOWIyXFx1MDliZiBcXHUwOWI4XFx1MDliOSwgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOTkzIFxcdTA5OGZcXHUwOTk1XFx1MDk4NyBcXHUwOWE3XFx1MDliMFxcdTA5YTNcXHUwOWM3XFx1MDliMCBcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOWFmXFx1MDljMVxcdTA5OTVcXHUwOWNkXFx1MDlhNFxcdTA5YmZcXHUwOTk3XFx1MDljMVxcdTA5YjJcXHUwOWJmIChcXHUyMDFjXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWNcXHUyMDFkKSBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDliZlxcdTA5NjQgXFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOTk1XFx1MDljMFxcdTA5YWRcXHUwOWJlXFx1MDlhY1xcdTA5YzcgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDlhY1xcdTA5Y2RcXHUwOWFmXFx1MDlhY1xcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YmYgXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDlhYVxcdTA5OWJcXHUwOWE4XFx1MDljZFxcdTA5YTZcXHUwOWM3XFx1MDliMCBcXHUwOWFjXFx1MDliZlxcdTA5YjdcXHUwOWRmXFx1MDljNyBcXHUwOTg2XFx1MDliMFxcdTA5OTMgXFx1MDk5Y1xcdTA5YmVcXHUwOWE4XFx1MDlhNFxcdTA5YzcgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YjhcXHUwOTgyXFx1MDk5NVxcdTA5Y2RcXHUwOWIwXFx1MDliZVxcdTA5YThcXHUwOWNkXFx1MDlhNCBcXHUwOWE4XFx1MDljMFxcdTA5YTRcXHUwOWJmPC9hPiBcXHUwOWE2XFx1MDljN1xcdTA5OTZcXHUwOWMxXFx1MDlhOCEgXFx1MDlhOFxcdTA5YmZcXHUwOTlhXFx1MDljNyBcIlxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5YjhcXHUwOWNkXFx1MDlhY1xcdTA5YzBcXHUwOTk1XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWMxXFx1MDlhOFwiLVxcdTA5OGYgXFx1MDk5NVxcdTA5Y2RcXHUwOWIyXFx1MDliZlxcdTA5OTUgXFx1MDk5NVxcdTA5YjBcXHUwOWM3IFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmYgXFx1MDk4NVxcdTA5YWFcXHUwOWIwXFx1MDliZlxcdTA5YjlcXHUwOWJlXFx1MDliMFxcdTA5Y2RcXHUwOWFmIFxcdTA5YThcXHUwOWRmIFxcdTA5OGZcXHUwOWFlXFx1MDlhOCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5YyBcXHUwOWI4XFx1MDliOSBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjBcXHUwOTk1XFx1MDljNyBcXHUwOWI4XFx1MDlhY1xcdTA5YTdcXHUwOWIwXFx1MDlhM1xcdTA5YzdcXHUwOWIwIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjBcXHUwOWM3XFx1MDliMCBcXHUwOWI4XFx1MDlhZVxcdTA5Y2RcXHUwOWFlXFx1MDlhNFxcdTA5YmYgXFx1MDlhNlxcdTA5YmZcXHUwOTlhXFx1MDljZFxcdTA5OWJcXHUwOWM3XFx1MDlhOFxcdTA5NjQgXFx1MDlhMVxcdTA5YmVcXHUwOWE4XFx1MDlhNlxcdTA5YmZcXHUwOTk1XFx1MDljNyBcXHUyMDFjWFxcdTIwMWQtXFx1MDk4ZiBcXHUwOTk1XFx1MDljZFxcdTA5YjJcXHUwOWJmXFx1MDk5NSBcXHUwOTk1XFx1MDliMFxcdTA5YzcgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZiBcXHUwOTg1XFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDliOVxcdTA5YmVcXHUwOWIwXFx1MDljZFxcdTA5YWYgXFx1MDlhOFxcdTA5ZGYgXFx1MDk4ZlxcdTA5YWVcXHUwOWE4IFxcdTA5YjhcXHUwOWFlXFx1MDliOFxcdTA5Y2RcXHUwOWE0IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5ODVcXHUwOWI4XFx1MDljZFxcdTA5YWNcXHUwOWMwXFx1MDk5NVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MDlhYVxcdTA5YmVcXHUwOWIwXFx1MDljN1xcdTA5YThcXHUwOTY0IFxcdTA5YWZcXHUwOWM3IFxcdTA5OTVcXHUwOWNiXFx1MDlhOFxcdTA5OTMgXFx1MDliOFxcdTA5YWVcXHUwOWRmIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDliOFxcdTA5YzdcXHUwOTlmXFx1MDliZlxcdTA5ODJcXHUwOWI4IFxcdTA5YWFcXHUwOWIwXFx1MDliZlxcdTA5YWNcXHUwOWIwXFx1MDljZFxcdTA5YTRcXHUwOWE4IFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MDk4ZlxcdTA5YWNcXHUwOTgyIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5ODVcXHUwOWE4XFx1MDljMVxcdTA5YWVcXHUwOWE0XFx1MDliZiBcXHUwOWFhXFx1MDljZFxcdTA5YjBcXHUwOWE0XFx1MDljZFxcdTA5YWZcXHUwOWJlXFx1MDliOVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcgXFx1MjAxY1xcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDliOFxcdTA5YzdcXHUwOTlmXFx1MDliZlxcdTA5ODJcXHUwOWI4XFx1MjAxZC1cXHUwOThmIFxcdTA5YWNcXHUwOWJlIFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWE4XFx1MDljMFxcdTA5YTRcXHUwOWJmPC9hPi1cXHUwOWE0XFx1MDljNyBcXHUwOWFmXFx1MDliZVxcdTA5YThcXHUwOTY0JyxDT09LSUVfUE9QVVBfRVU6J1xcdTA5YjlcXHUwOWJlXFx1MDk4NyEgXFx1MDk4NlxcdTA5YWFcXHUwOWE4XFx1MDliZVxcdTA5OTVcXHUwOWM3IFxcdTA5YThcXHUwOWJmXFx1MDk5Y1xcdTA5YzdcXHUwOWIwIFxcdTA5OTVcXHUwOWJlXFx1MDk5Y1xcdTA5OTVcXHUwOWIwXFx1MDljZFxcdTA5YWUgXFx1MDlhYVxcdTA5YjBcXHUwOWJmXFx1MDk5YVxcdTA5YmVcXHUwOWIyXFx1MDlhOFxcdTA5YmUgXFx1MDk5NVxcdTA5YjBcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliZVxcdTA5OWNcXHUwOWM3IFxcdTA5YjhcXHUwOWJlXFx1MDliOVxcdTA5YmVcXHUwOWFmXFx1MDljZFxcdTA5YWYgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOTkzIFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmVcXHUwOWIwIFxcdTA5YWNcXHUwOWNkXFx1MDliMFxcdTA5YmVcXHUwOTg5XFx1MDk5Y1xcdTA5YmZcXHUwOTgyIFxcdTA5ODVcXHUwOWFkXFx1MDliZlxcdTA5OWNcXHUwOWNkXFx1MDk5ZVxcdTA5YTRcXHUwOWJlIFxcdTA5ODlcXHUwOWE4XFx1MDljZFxcdTA5YThcXHUwOWE0IFxcdTA5OTVcXHUwOWIwXFx1MDlhNFxcdTA5YzcsIFxcdTA5YWFcXHUwOWJlXFx1MDliMFxcdTA5YWJcXHUwOWIwXFx1MDlhZVxcdTA5YzdcXHUwOWE4XFx1MDljZFxcdTA5YjggXFx1MDlhOFxcdTA5YmZcXHUwOWIwXFx1MDljMFxcdTA5OTVcXHUwOWNkXFx1MDliN1xcdTA5YTMgXFx1MDk5NVxcdTA5YjBcXHUwOWE0XFx1MDljNyBcXHUwOThmXFx1MDlhY1xcdTA5ODIgXFx1MDlhY1xcdTA5YmZcXHUwOTljXFx1MDljZFxcdTA5OWVcXHUwOWJlXFx1MDlhYVxcdTA5YThcXHUwOWM3XFx1MDliMCBcXHUwOTg5XFx1MDlhNlxcdTA5Y2RcXHUwOWE2XFx1MDljN1xcdTA5YjZcXHUwOWNkXFx1MDlhZlxcdTA5YzcgXFx1MDk4NlxcdTA5YWVcXHUwOWIwXFx1MDliZSBcXHUwOThmXFx1MDk4NyBcXHUwOTkzXFx1MDlkZlxcdTA5YzdcXHUwOWFjXFx1MDliOFxcdTA5YmVcXHUwOTg3XFx1MDk5ZlxcdTA5YzcgXFx1MDlhNFxcdTA5YzNcXHUwOWE0XFx1MDljMFxcdTA5ZGZcXHUwOWFhXFx1MDk5NVxcdTA5Y2RcXHUwOWI3XFx1MDljN1xcdTA5YjAgXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDliOSBcXHUwOTg1XFx1MDlhOFxcdTA5Y2RcXHUwOWFmXFx1MDliZVxcdTA5YThcXHUwOWNkXFx1MDlhZiBcXHUwOWI4XFx1MDlhZVxcdTA5YjhcXHUwOWNkXFx1MDlhNCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5OTMgXFx1MDk4ZlxcdTA5OTVcXHUwOTg3IFxcdTA5YTdcXHUwOWIwXFx1MDlhM1xcdTA5YzdcXHUwOWIwIFxcdTA5YWFcXHUwOWNkXFx1MDliMFxcdTA5YWZcXHUwOWMxXFx1MDk5NVxcdTA5Y2RcXHUwOWE0XFx1MDliZiAoXFx1MjAxY1xcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljXFx1MjAxZCkgXFx1MDlhY1xcdTA5Y2RcXHUwOWFmXFx1MDlhY1xcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YmZcXHUwOTY0IFxcdTA5ODZcXHUwOWFlXFx1MDliMFxcdTA5YmUgXFx1MDk5NVxcdTA5YzBcXHUwOWFkXFx1MDliZVxcdTA5YWNcXHUwOWM3IFxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmZcXHUwOTljIFxcdTA5YWNcXHUwOWNkXFx1MDlhZlxcdTA5YWNcXHUwOWI5XFx1MDliZVxcdTA5YjAgXFx1MDk5NVxcdTA5YjBcXHUwOWJmIFxcdTA5OGZcXHUwOWFjXFx1MDk4MiBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YWFcXHUwOTliXFx1MDlhOFxcdTA5Y2RcXHUwOWE2XFx1MDljN1xcdTA5YjAgXFx1MDlhY1xcdTA5YmZcXHUwOWI3XFx1MDlkZlxcdTA5YzcgXFx1MDk4NlxcdTA5YjBcXHUwOTkzIFxcdTA5OWNcXHUwOWJlXFx1MDlhOFxcdTA5YTRcXHUwOWM3IFxcdTA5ODZcXHUwOWFlXFx1MDliZVxcdTA5YTZcXHUwOWM3XFx1MDliMCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDk4MlxcdTA5OTVcXHUwOWNkXFx1MDliMFxcdTA5YmVcXHUwOWE4XFx1MDljZFxcdTA5YTQgXFx1MDlhOFxcdTA5YzBcXHUwOWE0XFx1MDliZjwvYT4gXFx1MDlhNlxcdTA5YzdcXHUwOTk2XFx1MDljMVxcdTA5YTghIFxcdTA5YThcXHUwOWJmXFx1MDk5YVxcdTA5YzcgXCJcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5YyBcXHUwOWI4XFx1MDljZFxcdTA5YWNcXHUwOWMwXFx1MDk5NVxcdTA5YmVcXHUwOWIwIFxcdTA5OTVcXHUwOWIwXFx1MDljMVxcdTA5YThcIi1cXHUwOThmIFxcdTA5OTVcXHUwOWNkXFx1MDliMlxcdTA5YmZcXHUwOTk1IFxcdTA5OTVcXHUwOWIwXFx1MDljNyBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJmIFxcdTA5ODVcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOWI5XFx1MDliZVxcdTA5YjBcXHUwOWNkXFx1MDlhZiBcXHUwOWE4XFx1MDlkZiBcXHUwOThmXFx1MDlhZVxcdTA5YTggXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDliOFxcdTA5YjkgXFx1MDk4NlxcdTA5YWVcXHUwOWJlXFx1MDlhNlxcdTA5YzdcXHUwOWIwXFx1MDk5NVxcdTA5YzcgXFx1MDliOFxcdTA5YWNcXHUwOWE3XFx1MDliMFxcdTA5YTNcXHUwOWM3XFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5YyBcXHUwOWFjXFx1MDljZFxcdTA5YWZcXHUwOWFjXFx1MDliOVxcdTA5YmVcXHUwOWIwXFx1MDljN1xcdTA5YjAgXFx1MDliOFxcdTA5YWVcXHUwOWNkXFx1MDlhZVxcdTA5YTRcXHUwOWJmIFxcdTA5YTZcXHUwOWJmXFx1MDk5YVxcdTA5Y2RcXHUwOTliXFx1MDljN1xcdTA5YThcXHUwOTY0IFxcdTA5YTFcXHUwOWJlXFx1MDlhOFxcdTA5YTZcXHUwOWJmXFx1MDk5NVxcdTA5YzcgXFx1MjAxY1hcXHUyMDFkLVxcdTA5OGYgXFx1MDk5NVxcdTA5Y2RcXHUwOWIyXFx1MDliZlxcdTA5OTUgXFx1MDk5NVxcdTA5YjBcXHUwOWM3IFxcdTA5ODZcXHUwOWFhXFx1MDlhOFxcdTA5YmYgXFx1MDk4NVxcdTA5YWFcXHUwOWIwXFx1MDliZlxcdTA5YjlcXHUwOWJlXFx1MDliMFxcdTA5Y2RcXHUwOWFmIFxcdTA5YThcXHUwOWRmIFxcdTA5OGZcXHUwOWFlXFx1MDlhOCBcXHUwOWI4XFx1MDlhZVxcdTA5YjhcXHUwOWNkXFx1MDlhNCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmXFx1MDk5YyBcXHUwOTg1XFx1MDliOFxcdTA5Y2RcXHUwOWFjXFx1MDljMFxcdTA5OTVcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5YWFcXHUwOWJlXFx1MDliMFxcdTA5YzdcXHUwOWE4XFx1MDk2NCBcXHUwOWFmXFx1MDljNyBcXHUwOTk1XFx1MDljYlxcdTA5YThcXHUwOTkzIFxcdTA5YjhcXHUwOWFlXFx1MDlkZiBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YjhcXHUwOWM3XFx1MDk5ZlxcdTA5YmZcXHUwOTgyXFx1MDliOCBcXHUwOWFhXFx1MDliMFxcdTA5YmZcXHUwOWFjXFx1MDliMFxcdTA5Y2RcXHUwOWE0XFx1MDlhOCBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTA5OGZcXHUwOWFjXFx1MDk4MiBcXHUwOTg2XFx1MDlhYVxcdTA5YThcXHUwOWJlXFx1MDliMCBcXHUwOTg1XFx1MDlhOFxcdTA5YzFcXHUwOWFlXFx1MDlhNFxcdTA5YmYgXFx1MDlhYVxcdTA5Y2RcXHUwOWIwXFx1MDlhNFxcdTA5Y2RcXHUwOWFmXFx1MDliZVxcdTA5YjlcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YTRcXHUwOWM3IFxcdTIwMWNcXHUwOTk1XFx1MDljMVxcdTA5OTVcXHUwOWJmIFxcdTA5YjhcXHUwOWM3XFx1MDk5ZlxcdTA5YmZcXHUwOTgyXFx1MDliOFxcdTIwMWQtXFx1MDk4ZiBcXHUwOWFjXFx1MDliZSBcXHUwOTg2XFx1MDlhZVxcdTA5YmVcXHUwOWE2XFx1MDljN1xcdTA5YjAgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA5OTVcXHUwOWMxXFx1MDk5NVxcdTA5YmYgXFx1MDlhOFxcdTA5YzBcXHUwOWE0XFx1MDliZjwvYT4tXFx1MDlhNFxcdTA5YzcgXFx1MDlhZlxcdTA5YmVcXHUwOWE4XFx1MDk2NCcsQWdyZWVUZXh0OlwiXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZlxcdTA5OWMgXFx1MDliOFxcdTA5Y2RcXHUwOWFjXFx1MDljMFxcdTA5OTVcXHUwOWJlXFx1MDliMCBcXHUwOTk1XFx1MDliMFxcdTA5YzFcXHUwOWE4XCIsU2V0dGluZ3NUZXh0OlwiXFx1MDk5NVxcdTA5YzFcXHUwOTk1XFx1MDliZiBcXHUwOWI4XFx1MDljN1xcdTA5OWZcXHUwOWJmXFx1MDk4MlxcdTA5YjhcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTA5YWNcXHUwOWJmXFx1MDlhN1xcdTA5YmZcXHUwOWIyXFx1MDk5OVxcdTA5Y2RcXHUwOTk4XFx1MDlhOFxcdTA5YzdcXHUwOWIwIFxcdTA5YjBcXHUwOWJmXFx1MDlhYVxcdTA5Y2JcXHUwOWIwXFx1MDljZFxcdTA5OWYgXFx1MDk5NVxcdTA5YjBcXHUwOWMxXFx1MDlhOFwiLFNwb3RsaWdodDpcIlxcdTA5YjhcXHUwOWNkXFx1MDlhYVxcdTA5OWZcXHUwOWIyXFx1MDliZVxcdTA5ODdcXHUwOTlmXCJ9LFwiZGEtZGtcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJMaXZlXCIsQWRzOlwiQW5ub25jZXJcIixDb21wYW55OlwiVmlya3NvbWhlZFwiLEhvbWU6XCJTdGFydFwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIkpvYlwiLENhcmVlcnM6XCJLYXJyaWVyZVwiLFByZXNzOlwiUHJlc3NlXCIsTmV3czpcIk55aGVkZXJcIixcIlByZXNzIElucXVpcmllc1wiOlwiUHJlc3NlXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlNwcm9nXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiRG93bmxvYWQgU25hcGNoYXRcIixEb3dubG9hZDpcIkRvd25sb2FkXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIkhpc3RvcmllclwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJCdXRpa1wiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgdGlsIGlPU1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IHRpbCBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiRlxceGU2bGxlc3NrYWJcIixTdXBwb3J0OlwiU3VwcG9ydFwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlJldG5pbmdzbGluamVyIGZvciBicnVnZXJuZVwiLFwiU2FmZXR5IENlbnRlclwiOlwiU2lra2VyaGVkc2NlbnRlclwiLFNuYXBjb2RlczpcIlNuYXBrb2RlclwiLEdlb2ZpbHRlcnM6XCJHZW9maWx0cmVcIixDcmVhdGU6XCJGaWx0cmUgb2cgTGluc2VyXCIsTWFwOlwiS29ydFwiLEFkdmVydGlzaW5nOlwiQW5ub25jZXJpbmdcIixcIkJ1eSBBZHNcIjpcIktcXHhmOGIgYW5ub25jZXJcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJBbm5vbmNlcG9saXRpa1wiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJCaWJsaW90ZWsgb3ZlciBwb2xpdGlza2UgYW5ub25jZXJcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIlJldG5pbmdzbGluamVyIGZvciBicmFuZGV0XCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJLYW1wYWduZXJlZ2xlclwiLExlZ2FsOlwiSnVyaWRpc2tcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlNlcnZpY2V2aWxrXFx4ZTVyXCIsSW1wcmVzc3VtOlwiSW1wcmVzc3VtXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiUHJpdmF0bGl2c3BvbGl0aWtcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJQcml2YXRsaXZzY2VudGVyXCIsXCJDb29raWUgUG9saWN5XCI6XCJDb29raWVwb2xpdGlrXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJTZXJ2aWNldmlsa1xceGU1ciBmb3IgTWluZGVyXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlZpbGtcXHhlNXIgZm9yIGtyZWF0aXZlIHZcXHhlNnJrdFxceGY4amVyXCIsQ09NTVVOSVRZX1RPUzpcIlZpbGtcXHhlNXIgZm9yIExva2FsZSBHZW9maWx0cmVcIixMRU5TX1NUVURJT19UT1M6XCJWaWxrXFx4ZTVyIGZvciBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIkRpbmUgcHJpdmF0bGl2c2luZHN0aWxsaW5nZXJcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJOXFx4ZjhkdmVuZGlnZSBjb29raWVzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+VmkgYnJ1Z2VyIGRpc3NlIGNvb2tpZXM8L2E+IHRpbCBhdCBoalxceGU2bHBlIG1lZCBhdCBmXFx4ZTUgd2Vic2l0ZXQgdGlsIGF0IGZ1bmdlcmUuIERhIGRpc3NlIGNvb2tpZXMgZXIgblxceGY4ZHZlbmRpZ2UsIGthbiBkdSBpa2tlIGZyYXZcXHhlNmxnZSBkZW0uJ119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlByXFx4ZTZmZXJlbmNlclwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+VmkgYnJ1Z2VyIGRpc3NlIGNvb2tpZXM8L2E+IHRpbCBhdCBodXNrZSBkaW5lIHByXFx4ZTZmZXJlbmNlciBvZyBmb3JiZWRyZSBkaW4gb3BsZXZlbHNlIHBcXHhlNSB2b3JlcyB3ZWJzaXRlLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJQclxceGU2c3RhdGlvbiBvZyBzdGF0aXN0aWtcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlZpIGJydWdlciBkaXNzZSBjb29raWVzPC9hPiB0aWwgYXQgaW5kc2FtbGUgb3BseXNuaW5nZXIgb20sIGh2b3JkYW4gZHUgYnJ1Z2VyIHZvcmVzIHdlYnNpdGUsIHRpbCBhdCBvdmVydlxceGU1Z2Ugd2Vic2l0ZXRzIGVmZmVrdGl2aXRldCBvZyB0aWwgYXQgZm9yYmVkcmUgd2Vic2l0ZXRzIGVmZmVrdGl2aXRldCBvZyBkaW4gb3BsZXZlbHNlLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiTWFya2V0aW5nXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+VmkgYnJ1Z2VyIGRpc3NlIGNvb2tpZXM8L2E+IHRpbCBhdCBsZXZlcmUgcmVsZXZhbnRlIGFubm9uY2VyIG9nIG1cXHhlNWxlIGVmZmVrdGl2aXRldGVuIGFmIHZvcmVzIGFubm9uY2VrYW1wYWduZXIuIFZvcmVzIHRyZWRqZXBhcnRzYW5ub25jZXJpbmdzcGFydG5lcmUga2FuIGJydWdlIGRpc3NlIGNvb2tpZXMgdGlsIGF0IG9wYnlnZ2UgZW4gcHJvZmlsIHVkIGZyYSBkaW5lIGludGVyZXNzZXIgb2cgbGV2ZXJlIHJlbGV2YW50ZSBhbm5vbmNlciBwXFx4ZTUgYW5kcmUgd2Vic2l0ZXMuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwidHJlZGplcGFydHNhbm5vbmNlcmluZ3NwYXJ0bmVyZVwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlRyZWRqZXBhcnRzYW5ub25jZXJpbmdzcGFydG5lcmU6XCIsRWZmZWN0aXZlRGF0ZTpcIlRyXFx4ZTZkZXIgaSBrcmFmdDogZC4gMTUuIGphbnVhciAyMDE5XCIsQm9keTpbXCJVZG92ZXIgYXQgYWRtaW5pc3RyZXJlIGNvb2tpZXMgdmlhIGRpbiBicm93c2VyIGVsbGVyIGRpbiBlbmhlZCBrYW4gZHUgXFx4ZTZuZHJlIGRpbmUgY29va2llaW5kc3RpbGxpbmdlciBuZWRlbmZvci4gQmVtXFx4ZTZyaywgYXQgdmlzc2UgY29va2llcyBlciBuXFx4ZjhkdmVuZGlnZSBmb3IgYXQga1xceGY4cmUgdm9yZXMgd2Vic2l0ZSBvZyBpa2tlIGthbiBibG9rZXJlcyB2ZWQgaGpcXHhlNmxwIGRpc3NlIGluZHN0aWxsaW5nZXIuXCJdLFRpdGxlOlwiQ29va2llaW5kc3RpbGxpbmdlclwiLENPT0tJRV9QT1BVUDonSGVqISBWaSBicnVnZXIgY29va2llcyBvZyBsaWduZW5kZSB0ZWtub2xvZ2llciAoXCJjb29raWVzXCIpLCBoZXJ1bmRlciB0cmVkamVwYXJ0c2Nvb2tpZXMsIHBcXHhlNSBkZXR0ZSB3ZWJzaXRlIHRpbCBhdCBoalxceGU2bHBlIG1lZCBhdCBmXFx4ZTUgd2Vic2l0ZXQgdGlsIGF0IGZ1bmdlcmUgb2cgZm9yYmVkcmUgZGluIGJyb3dzaW5nb3BsZXZlbHNlLCB0aWwgYXQgb3ZlcnZcXHhlNWdlIHlkZWxzZW4gc2FtdCBpIGFubm9uY2VyaW5nc1xceGY4amVtZWQuIEh2aXMgZHUgdmlsIGhhdmUgZmxlcmUgb3BseXNuaW5nZXIgb20sIGh2b3JkYW4gdmkgYW52ZW5kZXIgY29va2llcywgb2cgb20gZGluZSBjb29raWV2YWxnLCBoZW52aXNlcyBkdSB0aWwgdm9yZXMgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPmNvb2tpZXBvbGl0aWs8L2E+LiBWZWQgYXQga2xpa2tlIHBcXHhlNSBcIkFjY2VwdFxceGU5ciBjb29raWVzXCIgbmVkZW5mb3IgZ2l2ZXIgZHUgZGl0IHNhbXR5a2tlIHRpbCBhbGxlIGNvb2tpZXMsIGhlcnVuZGVyIGlra2UtZXNzZW50aWVsbGUgY29va2llcy4gRHUga2FuIGFmdmlzZSBhbGxlIGlra2UtZXNzZW50aWVsbGUgY29va2llcyB2ZWQgYXQga2xpa2tlIHBcXHhlNSBcIlhcIi1ldCB0aWwgaFxceGY4anJlLiBEdSBrYW4gblxceGU1ciBzb20gaGVsc3QgZ1xceGU1IHRpbCB2b3JlcyBcIkNvb2tpZWluZHN0aWxsaW5nZXJcIiBpIHZvcmVzIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5jb29raWVwb2xpdGlrPC9hPiBmb3IgYXQgXFx4ZTZuZHJlIGRpbmUgY29va2llaW5kc3RpbGxpbmdlciBlbGxlciB0clxceGU2a2tlIGRpdCBzYW10eWtrZSB0aWxiYWdlLicsQ09PS0lFX1BPUFVQX0VVOidIZWohIFZpIGJydWdlciBjb29raWVzIG9nIGxpZ25lbmRlIHRla25vbG9naWVyIChcImNvb2tpZXNcIiksIGhlcnVuZGVyIHRyZWRqZXBhcnRzY29va2llcywgcFxceGU1IGRldHRlIHdlYnNpdGUgdGlsIGF0IGhqXFx4ZTZscGUgbWVkIGF0IGZcXHhlNSB3ZWJzaXRldCB0aWwgYXQgZnVuZ2VyZSBvZyBmb3JiZWRyZSBkaW4gYnJvd3NpbmdvcGxldmVsc2UsIHRpbCBhdCBvdmVydlxceGU1Z2UgeWRlbHNlbiBzYW10IGkgYW5ub25jZXJpbmdzXFx4ZjhqZW1lZC4gSHZpcyBkdSB2aWwgaGF2ZSBmbGVyZSBvcGx5c25pbmdlciBvbSwgaHZvcmRhbiB2aSBhbnZlbmRlciBjb29raWVzLCBvZyBvbSBkaW5lIGNvb2tpZXZhbGcsIGhlbnZpc2VzIGR1IHRpbCB2b3JlcyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Y29va2llcG9saXRpazwvYT4uIFZlZCBhdCBrbGlra2UgcFxceGU1IFwiQWNjZXB0XFx4ZTlyIGNvb2tpZXNcIiBuZWRlbmZvciBnaXZlciBkdSBkaXQgc2FtdHlra2UgdGlsIGFsbGUgY29va2llcywgaGVydW5kZXIgaWtrZS1lc3NlbnRpZWxsZSBjb29raWVzLiBEdSBrYW4gYWZ2aXNlIGFsbGUgaWtrZS1lc3NlbnRpZWxsZSBjb29raWVzIHZlZCBhdCBrbGlra2UgcFxceGU1IFwiWFwiLWV0IHRpbCBoXFx4ZjhqcmUuIER1IGthbiBuXFx4ZTVyIHNvbSBoZWxzdCBnXFx4ZTUgdGlsIHZvcmVzIFwiQ29va2llaW5kc3RpbGxpbmdlclwiIGkgdm9yZXMgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPmNvb2tpZXBvbGl0aWs8L2E+IGZvciBhdCBcXHhlNm5kcmUgZGluZSBjb29raWVpbmRzdGlsbGluZ2VyIGVsbGVyIHRyXFx4ZTZra2UgZGl0IHNhbXR5a2tlIHRpbGJhZ2UuJyxBZ3JlZVRleHQ6XCJBY2NlcHRcXHhlOXIgY29va2llc1wiLFNldHRpbmdzVGV4dDpcIkNvb2tpZWluZHN0aWxsaW5nZXJcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlJhcHBvcnRcXHhlOXIgb3ZlcnRyXFx4ZTZkZWxzZVwiLFNwb3RsaWdodDpcIlNwb3RsaWdodFwifSxcImRlLWRlXCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiTGl2ZVwiLEFkczpcIldlcmJ1bmdcIixDb21wYW55OlwiVW50ZXJuZWhtZW5cIixIb21lOlwiSG9tZVwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIkpvYnNcIixDYXJlZXJzOlwiS2FycmllcmVcIixQcmVzczpcIlByZXNzZVwiLE5ld3M6XCJOZXdzXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlByZXNzZWFuZnJhZ2VuXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlNwcmFjaGVcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJTbmFwY2hhdCBoZXJ1bnRlcmxhZGVuXCIsRG93bmxvYWQ6XCJEb3dubG9hZGVuXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIlN0b3J5c1wiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJTdG9yZVwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgZlxceGZjciBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBmXFx4ZmNyIEFuZHJvaWRcIixDb21tdW5pdHk6XCJDb21tdW5pdHlcIixTdXBwb3J0OlwiU3VwcG9ydFwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIkNvbW11bml0eS1SaWNodGxpbmllblwiLFwiU2FmZXR5IENlbnRlclwiOlwiU2ljaGVyaGVpdHNjZW50ZXJcIixTbmFwY29kZXM6XCJTbmFwY29kZXNcIixHZW9maWx0ZXJzOlwiR2VvZmlsdGVyXCIsQ3JlYXRlOlwiRmlsdGVyIHVuZCBMaW5zZW5cIixNYXA6XCJLYXJ0ZVwiLEFkdmVydGlzaW5nOlwiV2VyYnVuZ1wiLFwiQnV5IEFkc1wiOlwiQW56ZWlnZW4gc2NoYWx0ZW5cIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJXZXJiZXJpY2h0bGluaWVuXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIkJpYmxpb3RoZWsgcG9saXRpc2NoZXIgQW56ZWlnZW5cIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIk1hcmtlbnJpY2h0bGluaWVuXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJSaWNodGxpbmllbiBmXFx4ZmNyIFdlcmJlYWt0aW9uZW5cIixMZWdhbDpcIlJlY2h0bGljaGVzXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJTZXJ2aWNlYmVzdGltbXVuZ2VuXCIsSW1wcmVzc3VtOlwiSW1wcmVzc3VtXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiRGF0ZW5zY2h1dHpiZXN0aW1tdW5nZW5cIixcIlByaXZhY3kgQ2VudGVyXCI6XCJEYXRlbnNjaHV0emNlbnRlclwiLFwiQ29va2llIFBvbGljeVwiOlwiQ29va2llLVJpY2h0bGluaWVuXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJNZW1vcnlzLVNlcnZpY2ViZXN0aW1tdW5nZW5cIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiQmVkaW5ndW5nZW4gZlxceGZjciBiZW51dHplcmRlZmluaWVydGUgS3JlYXRpdnRvb2xzXCIsQ09NTVVOSVRZX1RPUzpcIkFHQiBmXFx4ZmNyIENvbW11bml0eS1HZW9maWx0ZXJcIixMRU5TX1NUVURJT19UT1M6XCJHZXNjaFxceGU0ZnRzYmVkaW5ndW5nZW4gZlxceGZjciBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIkRlaW5lIERhdGVuc2NodXR6LU9wdGlvbmVuXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiRXJmb3JkZXJsaWNoZSBDb29raWVzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+V2lyIG51dHplbiBkaWVzZSBDb29raWVzPC9hPiBmXFx4ZmNyIGRlbiBCZXRyaWViIGRlciBXZWJzaXRlLiBXZWlsIGRpZXNlIENvb2tpZXMgbm90d2VuZGlnIHNpbmQsIGthbm5zdCBkdSBzaWUgbmljaHQgZGVha3RpdmllcmVuLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJFaW5zdGVsbHVuZ2VuXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUHJlZmVyZW5jZXNcIj5XaXIgdmVyd2VuZGVuIGRpZXNlIENvb2tpZXMsPC9hPiB1bSB1bnMgYW4gZGVpbmUgUHJcXHhlNGZlcmVuemVuIHp1IGVyaW5uZXJuIHVuZCB1bnNlcmUgV2Vic2l0ZSBmXFx4ZmNyIGRpY2ggbm9jaCBjb29sZXIgenUgbWFjaGVuLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJMZWlzdHVuZyB1bmQgQW5hbHlzZW5cIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPldpciB2ZXJ3ZW5kZW4gZGllc2UgQ29va2llcyw8L2E+IHVtIEluZm9ybWF0aW9uZW4gZGFyXFx4ZmNiZXIgenUgc2FtbWVsbiwgd2llIGR1IHVuc2VyZSBXZWJzaXRlIG51dHp0LCB1bSBkaWUgTGVpc3R1bmcgZGVyIFNlaXRlIG5hY2h6dXZvbGx6aWVoZW4sIGRpZXNlIExlaXN0dW5nIGZcXHhmY3IgZGljaCB6dSB2ZXJiZXNzZXJuIHVuZCBkaWUgU2VpdGUgZlxceGZjciBkaWNoIGRhZHVyY2ggbm9jaCBjb29sZXIgenUgbWFjaGVuLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiTWFya2V0aW5nXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+V2lyIHZlcndlbmRlbiBkaWVzZSBDb29raWVzLDwvYT4gdW0gcmVsZXZhbnRlIFdlcmJ1bmcgenUgc2NoYWx0ZW4gdW5kIGRpZSBXaXJrc2Fta2VpdCB1bnNlcmVyIFdlcmJla2FtcGFnbmVuIHp1IG1lc3Nlbi4gVW5zZXJlIGV4dGVybmVuIFdlcmJlcGFydG5lciBrXFx4ZjZubmVuIGRpZXNlIENvb2tpZXMgbnV0emVuLCB1bSBlaW4gUHJvZmlsIGRlaW5lciBJbnRlcmVzc2VuIHp1IGVyc3RlbGxlbiB1bmQgZGlyIGF1ZiBhbmRlcmVuIFNlaXRlbiByZWxldmFudGUgV2VyYnVuZyB6dSB6ZWlnZW4uJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwiZXh0ZXJuZSBXZXJiZXBhcnRuZXJcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJFeHRlcm5lIFdlcmJlcGFydG5lcjpcIixFZmZlY3RpdmVEYXRlOlwiU3RhbmQgdm9tIDE1LiBKYW51YXIgMjAxOVwiLEJvZHk6W1wiWnVzXFx4ZTR0emxpY2ggenVyIFZlcndhbHR1bmcgdm9uIENvb2tpZXMgZHVyY2ggZGVpbmVuIEJyb3dzZXIgb2RlciBkZWluIEdlclxceGU0dCBrYW5uc3QgZHUgdW50ZW4gZGVpbmUgQ29va2llLUVpbnN0ZWxsdW5nZW4gXFx4ZTRuZGVybi4gQml0dGUgYmVhY2h0ZSwgZGFzcyBiZXN0aW1tdGUgQ29va2llcyB6dXIgTnV0enVuZyBkZXIgV2Vic2l0ZSBub3R3ZW5kaWcgc2luZCB1bmQgc29taXQgbmljaHQgaW4gZGllc2VuIEVpbnN0ZWxsdW5nZW4gYmxvY2tpZXJ0IHdlcmRlbiBrXFx4ZjZubmVuLlwiXSxUaXRsZTpcIkNvb2tpZS1FaW5zdGVsbHVuZ2VuXCIsQ09PS0lFX1BPUFVQOidIaSEgV2lyIHZlcndlbmRlbiBhdWYgZGllc2VyIFdlYnNpdGUgQ29va2llcyB1bmQgXFx4ZTRobmxpY2hlIFRlY2hub2xvZ2llbiAoXFx1MjAxZUNvb2tpZXNcXHUyMDFjKSwgZGFydW50ZXIgYXVjaCBDb29raWVzIHZvbiBleHRlcm5lbiBQYXJ0bmVybiwgdW0gZGVpbmUgQnJvd3NpbmctRXJmYWhydW5nIHp1IHZlcmJlc3Nlcm4sIGRpZSBMZWlzdHVuZyBuYWNoenV2b2xsemllaGVuIHVuZCBXZXJidW5nIGJlcmVpdHp1c3RlbGxlbi4gTWVociBkYXJcXHhmY2Jlciwgd2llIHdpciBDb29raWVzIHZlcndlbmRlbiB1bmQgd2VsY2hlIEVpbnN0ZWxsdW5nc29wdGlvbmVuIGR1IGhhc3QsIGVyZlxceGU0aHJzdCBkdSBpbiB1bnNlcmVyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUtUmljaHRsaW5pZTwvYT4hIFdlbm4gZHUgdW50ZW4gYXVmIFxcdTIwMWVDb29raWVzIGFremVwdGllcmVuXFx1MjAxYyBrbGlja3N0LCBzdGltbXN0IGR1IGRlciBWZXJ3ZW5kdW5nIHNcXHhlNG10bGljaGVyIENvb2tpZXMgenUsIGVpbnNjaGxpZVxceGRmbGljaCBuaWNodCB6d2luZ2VuZCBlcmZvcmRlcmxpY2hlciBDb29raWVzLiBEdSBrYW5uc3QgYWxsZSBuaWNodCB6d2luZ2VuZCBlcmZvcmRlcmxpY2hlbiBDb29raWVzIGFibGVobmVuLCBpbmRlbSBkdSByZWNodHMgYXVmIGRhcyBcXHUyMDFlWFxcdTIwMWMga2xpY2tzdC4gSW4gZGVuIFxcdTIwMWVDb29raWUtRWluc3RlbGx1bmdlblxcdTIwMWMgb2RlciBpbiB1bnNlcmVyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUtUmljaHRsaW5pZTwvYT4ga2FubnN0IGR1IGplZGVyemVpdCBkZWluZSBDb29raWUtRWluc3RlbGx1bmdlbiBcXHhlNG5kZXJuIHVuZCBkZWluIEVpbnZlcnN0XFx4ZTRuZG5pcyB6dXJcXHhmY2NrbmVobWVuLicsQ09PS0lFX1BPUFVQX0VVOidIaSEgV2lyIHZlcndlbmRlbiBhdWYgZGllc2VyIFdlYnNpdGUgQ29va2llcyB1bmQgXFx4ZTRobmxpY2hlIFRlY2hub2xvZ2llbiAoXFx1MjAxZUNvb2tpZXNcXHUyMDFjKSwgZGFydW50ZXIgYXVjaCBDb29raWVzIHZvbiBleHRlcm5lbiBQYXJ0bmVybiwgdW0gZGVpbmUgQnJvd3NpbmctRXJmYWhydW5nIHp1IHZlcmJlc3Nlcm4sIGRpZSBMZWlzdHVuZyBuYWNoenV2b2xsemllaGVuIHVuZCBXZXJidW5nIGJlcmVpdHp1c3RlbGxlbi4gTWVociBkYXJcXHhmY2Jlciwgd2llIHdpciBDb29raWVzIHZlcndlbmRlbiB1bmQgd2VsY2hlIEVpbnN0ZWxsdW5nc29wdGlvbmVuIGR1IGhhc3QsIGVyZlxceGU0aHJzdCBkdSBpbiB1bnNlcmVyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUtUmljaHRsaW5pZTwvYT4hIFdlbm4gZHUgdW50ZW4gYXVmIFxcdTIwMWVDb29raWVzIGFremVwdGllcmVuXFx1MjAxYyBrbGlja3N0LCBzdGltbXN0IGR1IGRlciBWZXJ3ZW5kdW5nIHNcXHhlNG10bGljaGVyIENvb2tpZXMgenUsIGVpbnNjaGxpZVxceGRmbGljaCBuaWNodCB6d2luZ2VuZCBlcmZvcmRlcmxpY2hlciBDb29raWVzLiBEdSBrYW5uc3QgYWxsZSBuaWNodCB6d2luZ2VuZCBlcmZvcmRlcmxpY2hlbiBDb29raWVzIGFibGVobmVuLCBpbmRlbSBkdSByZWNodHMgYXVmIGRhcyBcXHUyMDFlWFxcdTIwMWMga2xpY2tzdC4gSW4gZGVuIFxcdTIwMWVDb29raWUtRWluc3RlbGx1bmdlblxcdTIwMWMgb2RlciBpbiB1bnNlcmVyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUtUmljaHRsaW5pZTwvYT4ga2FubnN0IGR1IGplZGVyemVpdCBkZWluZSBDb29raWUtRWluc3RlbGx1bmdlbiBcXHhlNG5kZXJuIHVuZCBkZWluIEVpbnZlcnN0XFx4ZTRuZG5pcyB6dXJcXHhmY2NrbmVobWVuLicsQWdyZWVUZXh0OlwiQ29va2llcyBha3plcHRpZXJlblwiLFNldHRpbmdzVGV4dDpcIkNvb2tpZS1FaW5zdGVsbHVuZ2VuXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJWZXJzdG9cXHhkZiBtZWxkZW5cIixTcG90bGlnaHQ6XCJTcG90bGlnaHRcIn0sXCJlbC1nclwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJcXHUwM2E0XFx1MDNiZiBTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIlxcdTAzOTZcXHUwM2M5XFx1MDNiZFxcdTAzYzRcXHUwM2IxXFx1MDNiZFxcdTAzYWNcIixBZHM6XCJcXHUwMzk0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNiN1xcdTAzYmNcXHUwM2FmXFx1MDNjM1xcdTAzYjVcXHUwM2I5XFx1MDNjMlwiLENvbXBhbnk6XCJcXHUwMzk1XFx1MDNjNFxcdTAzYjFcXHUwM2I5XFx1MDNjMVxcdTAzYjVcXHUwM2FmXFx1MDNiMVwiLEhvbWU6XCJcXHUwMzkxXFx1MDNjMVxcdTAzYzdcXHUwM2I5XFx1MDNiYVxcdTAzYWUgXFx1MDNjM1xcdTAzYjVcXHUwM2JiXFx1MDNhZlxcdTAzYjRcXHUwM2IxXCIsQmxvZzpcIkJsb2dcIixKb2JzOlwiXFx1MDM5OFxcdTAzYWRcXHUwM2MzXFx1MDNiNVxcdTAzYjlcXHUwM2MyIFxcdTAzYjVcXHUwM2MxXFx1MDNiM1xcdTAzYjFcXHUwM2MzXFx1MDNhZlxcdTAzYjFcXHUwM2MyXCIsQ2FyZWVyczpcIlxcdTAzOWFcXHUwM2IxXFx1MDNjMVxcdTAzYjlcXHUwM2FkXFx1MDNjMVxcdTAzYjFcIixQcmVzczpcIlxcdTAzYTRcXHUwM2NkXFx1MDNjMFxcdTAzYmZcXHUwM2MyXCIsTmV3czpcIlxcdTAzOTVcXHUwM2I5XFx1MDNiNFxcdTAzYWVcXHUwM2MzXFx1MDNiNVxcdTAzYjlcXHUwM2MyXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTAzOTVcXHUwM2MxXFx1MDNjOVxcdTAzYzRcXHUwM2FlXFx1MDNiY1xcdTAzYjFcXHUwM2M0XFx1MDNiMSBcXHUwM2E0XFx1MDNjZFxcdTAzYzBcXHUwM2JmXFx1MDNjNVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJcXHUwMzkzXFx1MDNiYlxcdTAzY2VcXHUwM2MzXFx1MDNjM1xcdTAzYjFcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJcXHUwMzliXFx1MDNhZVxcdTAzYzhcXHUwM2I3IFNuYXBjaGF0XCIsRG93bmxvYWQ6XCJcXHUwMzliXFx1MDNhZVxcdTAzYzhcXHUwM2I3XCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIlxcdTAzOTlcXHUwM2MzXFx1MDNjNFxcdTAzYmZcXHUwM2MxXFx1MDNhZlxcdTAzYjVcXHUwM2MyXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTAzOWFcXHUwM2IxXFx1MDNjNFxcdTAzYWNcXHUwM2MzXFx1MDNjNFxcdTAzYjdcXHUwM2JjXFx1MDNiMVwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgXFx1MDNiM1xcdTAzYjlcXHUwM2IxIGlPU1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiXFx1MDM5YVxcdTAzYmZcXHUwM2I5XFx1MDNiZFxcdTAzY2NcXHUwM2M0XFx1MDNiN1xcdTAzYzRcXHUwM2IxXCIsU3VwcG9ydDpcIlxcdTAzYTVcXHUwM2MwXFx1MDNiZlxcdTAzYzNcXHUwM2M0XFx1MDNhZVxcdTAzYzFcXHUwM2I5XFx1MDNiZVxcdTAzYjdcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJcXHUwMzlmXFx1MDNiNFxcdTAzYjdcXHUwM2IzXFx1MDNhZlxcdTAzYjVcXHUwM2MyIFxcdTAzOWFcXHUwM2JmXFx1MDNiOVxcdTAzYmRcXHUwM2NjXFx1MDNjNFxcdTAzYjdcXHUwM2M0XFx1MDNiMVxcdTAzYzJcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlxcdTAzOWFcXHUwM2FkXFx1MDNiZFxcdTAzYzRcXHUwM2MxXFx1MDNiZiBcXHUwMzkxXFx1MDNjM1xcdTAzYzZcXHUwM2IxXFx1MDNiYlxcdTAzYjVcXHUwM2FmXFx1MDNiMVxcdTAzYzJcIixTbmFwY29kZXM6XCJTbmFwY29kZXNcIixHZW9maWx0ZXJzOlwiXFx1MDM5M1xcdTAzYjVcXHUwM2M5XFx1MDNjNlxcdTAzYWZcXHUwM2JiXFx1MDNjNFxcdTAzYzFcXHUwM2IxXCIsQ3JlYXRlOlwiXFx1MDNhNlxcdTAzYWZcXHUwM2JiXFx1MDNjNFxcdTAzYzFcXHUwM2IxIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2M2XFx1MDNiMVxcdTAzYmFcXHUwM2JmXFx1MDNhZlwiLE1hcDpcIlxcdTAzYTdcXHUwM2FjXFx1MDNjMVxcdTAzYzRcXHUwM2I3XFx1MDNjMlwiLEFkdmVydGlzaW5nOlwiXFx1MDM5NFxcdTAzYjlcXHUwM2IxXFx1MDNjNlxcdTAzYWVcXHUwM2JjXFx1MDNiOVxcdTAzYzNcXHUwM2I3XCIsXCJCdXkgQWRzXCI6XCJcXHUwMzkxXFx1MDNiM1xcdTAzYmZcXHUwM2MxXFx1MDNhYyBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNiN1xcdTAzYmNcXHUwM2FmXFx1MDNjM1xcdTAzYjVcXHUwM2M5XFx1MDNiZFwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FkXFx1MDNjMiBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNhZVxcdTAzYmNcXHUwM2I5XFx1MDNjM1xcdTAzYjdcXHUwM2MyXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTAzOTJcXHUwM2I5XFx1MDNiMlxcdTAzYmJcXHUwM2I5XFx1MDNiZlxcdTAzYjhcXHUwM2FlXFx1MDNiYVxcdTAzYjcgXFx1MDNjMFxcdTAzYmZcXHUwM2JiXFx1MDNiOVxcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzY2VcXHUwM2JkIFxcdTAzYjRcXHUwM2I5XFx1MDNiMVxcdTAzYzZcXHUwM2I3XFx1MDNiY1xcdTAzYWZcXHUwM2MzXFx1MDNiNVxcdTAzYzlcXHUwM2JkXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwMzlmXFx1MDNiNFxcdTAzYjdcXHUwM2IzXFx1MDNhZlxcdTAzYjVcXHUwM2MyIFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2M0XFx1MDNiZiBCcmFuZFwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MDM5YVxcdTAzYjFcXHUwM2JkXFx1MDNjY1xcdTAzYmRcXHUwM2I1XFx1MDNjMiBcXHUwM2MwXFx1MDNjMVxcdTAzYmZcXHUwM2NlXFx1MDNiOFxcdTAzYjdcXHUwM2MzXFx1MDNiN1xcdTAzYzJcIixMZWdhbDpcIlxcdTAzYTBcXHUwM2JiXFx1MDNiN1xcdTAzYzFcXHUwM2JmXFx1MDNjNlxcdTAzYmZcXHUwM2MxXFx1MDNhZlxcdTAzYjVcXHUwM2MyIFxcdTAzYmRcXHUwM2JmXFx1MDNiY1xcdTAzYjlcXHUwM2JhXFx1MDNiZlxcdTAzY2QgXFx1MDNjMFxcdTAzYjVcXHUwM2MxXFx1MDNiOVxcdTAzYjVcXHUwM2M3XFx1MDNiZlxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYmZcXHUwM2M1XCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwMzhjXFx1MDNjMVxcdTAzYmZcXHUwM2I5IFxcdTAzYzVcXHUwM2MwXFx1MDNiN1xcdTAzYzFcXHUwM2I1XFx1MDNjM1xcdTAzYWZcXHUwM2IxXFx1MDNjMlwiLEltcHJlc3N1bTpcIkltcHJlc3N1bVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FlIFxcdTAzOTFcXHUwM2MwXFx1MDNiZlxcdTAzYzFcXHUwM2MxXFx1MDNhZVxcdTAzYzRcXHUwM2JmXFx1MDNjNVwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlxcdTAzOWFcXHUwM2FkXFx1MDNiZFxcdTAzYzRcXHUwM2MxXFx1MDNiZiBcXHUwMzkxXFx1MDNjMFxcdTAzYmZcXHUwM2MxXFx1MDNjMVxcdTAzYWVcXHUwM2M0XFx1MDNiZlxcdTAzYzVcIixcIkNvb2tpZSBQb2xpY3lcIjpcIlxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FlIFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2M0XFx1MDNiMSBDb29raWVzXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwMzhjXFx1MDNjMVxcdTAzYmZcXHUwM2I5IFxcdTAzYzVcXHUwM2MwXFx1MDNiN1xcdTAzYzFcXHUwM2I1XFx1MDNjM1xcdTAzYWZcXHUwM2IxXFx1MDNjMiBcXHUwMzkxXFx1MDNiZFxcdTAzYjFcXHUwM2JjXFx1MDNiZFxcdTAzYWVcXHUwM2MzXFx1MDNiNVxcdTAzYzlcXHUwM2JkXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTAzOGNcXHUwM2MxXFx1MDNiZlxcdTAzYjkgXFx1MDM5NVxcdTAzYmVcXHUwM2IxXFx1MDNjNFxcdTAzYmZcXHUwM2JjXFx1MDNiOVxcdTAzYmFcXHUwM2I1XFx1MDNjNVxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYzlcXHUwM2JkIFxcdTAzOTRcXHUwM2I3XFx1MDNiY1xcdTAzYjlcXHUwM2JmXFx1MDNjNVxcdTAzYzFcXHUwM2IzXFx1MDNiOVxcdTAzYmFcXHUwM2NlXFx1MDNiZCBcXHUwMzk1XFx1MDNjMVxcdTAzYjNcXHUwM2IxXFx1MDNiYlxcdTAzYjVcXHUwM2FmXFx1MDNjOVxcdTAzYmRcIixDT01NVU5JVFlfVE9TOlwiXFx1MDM4Y1xcdTAzYzFcXHUwM2JmXFx1MDNiOSBcXHUwMzkzXFx1MDNiNVxcdTAzYzlcXHUwM2M2XFx1MDNhZlxcdTAzYmJcXHUwM2M0XFx1MDNjMVxcdTAzYmZcXHUwM2M1IFxcdTAzYmFcXHUwM2JmXFx1MDNiOVxcdTAzYmRcXHUwM2NjXFx1MDNjNFxcdTAzYjdcXHUwM2M0XFx1MDNiMVxcdTAzYzJcIixMRU5TX1NUVURJT19UT1M6XCJcXHUwMzhjXFx1MDNjMVxcdTAzYmZcXHUwM2I5IExlbnMgU3R1ZGlvXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiXFx1MDM5ZlxcdTAzYjkgXFx1MDNiNVxcdTAzYzBcXHUwM2I5XFx1MDNiYlxcdTAzYmZcXHUwM2IzXFx1MDNhZFxcdTAzYzIgXFx1MDNiMVxcdTAzYzBcXHUwM2JmXFx1MDNjMVxcdTAzYzFcXHUwM2FlXFx1MDNjNFxcdTAzYmZcXHUwM2M1IFxcdTAzYzNcXHUwM2IxXFx1MDNjMlwiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIlxcdTAzOTFcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNhZlxcdTAzYzRcXHUwM2I3XFx1MDNjNFxcdTAzYjEgY29va2llc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlxcdTAzYTdcXHUwM2MxXFx1MDNiN1xcdTAzYzNcXHUwM2I5XFx1MDNiY1xcdTAzYmZcXHUwM2MwXFx1MDNiZlxcdTAzYjlcXHUwM2JmXFx1MDNjZFxcdTAzYmNcXHUwM2I1IFxcdTAzYjFcXHUwM2M1XFx1MDNjNFxcdTAzYWMgXFx1MDNjNFxcdTAzYjEgY29va2llczwvYT4gXFx1MDNiM1xcdTAzYjlcXHUwM2IxIFxcdTAzYmRcXHUwM2IxIFxcdTAzYmNcXHUwM2MwXFx1MDNiZlxcdTAzYzFcXHUwM2I1XFx1MDNhZiBcXHUwM2JkXFx1MDNiMSBcXHUwM2JiXFx1MDNiNVxcdTAzYjlcXHUwM2M0XFx1MDNiZlxcdTAzYzVcXHUwM2MxXFx1MDNiM1xcdTAzYjVcXHUwM2FmIFxcdTAzYjcgXFx1MDNiOVxcdTAzYzNcXHUwM2M0XFx1MDNiZlxcdTAzYzNcXHUwM2I1XFx1MDNiYlxcdTAzYWZcXHUwM2I0XFx1MDNiMS4gXFx1MDM5MVxcdTAzYzVcXHUwM2M0XFx1MDNhYyBcXHUwM2M0XFx1MDNiMSBjb29raWVzIFxcdTAzYjVcXHUwM2FmXFx1MDNiZFxcdTAzYjFcXHUwM2I5IFxcdTAzYjFcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNhZlxcdTAzYzRcXHUwM2I3XFx1MDNjNFxcdTAzYjEgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYjRcXHUwM2I1XFx1MDNiZCBcXHUwM2JjXFx1MDNjMFxcdTAzYmZcXHUwM2MxXFx1MDNiNVxcdTAzYWZcXHUwM2MyIFxcdTAzYmRcXHUwM2IxIFxcdTAzYzRcXHUwM2IxIFxcdTAzYmFcXHUwM2IxXFx1MDNjNFxcdTAzYjFcXHUwM2MxXFx1MDNiM1xcdTAzYWVcXHUwM2MzXFx1MDNiNVxcdTAzYjlcXHUwM2MyLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwM2EwXFx1MDNjMVxcdTAzYmZcXHUwM2M0XFx1MDNiOVxcdTAzYmNcXHUwM2FlXFx1MDNjM1xcdTAzYjVcXHUwM2I5XFx1MDNjMiBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDM5MVxcdTAzYmRcXHUwM2IxXFx1MDNiYlxcdTAzYzVcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FjIFxcdTAzYzNcXHUwM2M0XFx1MDNiZlxcdTAzYjlcXHUwM2M3XFx1MDNiNVxcdTAzYWZcXHUwM2IxXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUHJlZmVyZW5jZXNcIj5cXHUwM2E3XFx1MDNjMVxcdTAzYjdcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmXFx1MDNjMFxcdTAzYmZcXHUwM2I5XFx1MDNiZlxcdTAzY2RcXHUwM2JjXFx1MDNiNSBcXHUwM2IxXFx1MDNjNVxcdTAzYzRcXHUwM2FjIFxcdTAzYzRcXHUwM2IxIGNvb2tpZXM8L2E+IFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2JkXFx1MDNiMSBcXHUwM2I4XFx1MDNjNVxcdTAzYmNcXHUwM2FjXFx1MDNjM1xcdTAzYjFcXHUwM2I5IFxcdTAzYzRcXHUwM2I5XFx1MDNjMiBcXHUwM2MwXFx1MDNjMVxcdTAzYmZcXHUwM2M0XFx1MDNiOVxcdTAzYmNcXHUwM2FlXFx1MDNjM1xcdTAzYjVcXHUwM2I5XFx1MDNjMiBcXHUwM2MzXFx1MDNiZlxcdTAzYzUgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYmRcXHUwM2IxIFxcdTAzYjJcXHUwM2I1XFx1MDNiYlxcdTAzYzRcXHUwM2I5XFx1MDNjZVxcdTAzYmRcXHUwM2JmXFx1MDNjNVxcdTAzYmNcXHUwM2I1IFxcdTAzYzRcXHUwM2I3XFx1MDNiZCBcXHUwM2I1XFx1MDNiY1xcdTAzYzBcXHUwM2I1XFx1MDNiOVxcdTAzYzFcXHUwM2FmXFx1MDNiMSBcXHUwM2MzXFx1MDNiZlxcdTAzYzUgXFx1MDNjM1xcdTAzYzRcXHUwM2JmXFx1MDNiZCBcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2NjXFx1MDNjNFxcdTAzYmZcXHUwM2MwXFx1MDNjYyBcXHUwM2JjXFx1MDNiMVxcdTAzYzIuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTAzOTFcXHUwM2MwXFx1MDNjY1xcdTAzYjRcXHUwM2JmXFx1MDNjM1xcdTAzYjcgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IEFuYWx5dGljc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+XFx1MDNhN1xcdTAzYzFcXHUwM2I3XFx1MDNjM1xcdTAzYjlcXHUwM2JjXFx1MDNiZlxcdTAzYzBcXHUwM2JmXFx1MDNiOVxcdTAzYmZcXHUwM2NkXFx1MDNiY1xcdTAzYjUgXFx1MDNiMVxcdTAzYzVcXHUwM2M0XFx1MDNhYyBcXHUwM2M0XFx1MDNiMSBjb29raWVzPC9hPiBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNiZFxcdTAzYjEgXFx1MDNjM1xcdTAzYzVcXHUwM2JiXFx1MDNiYlxcdTAzYWRcXHUwM2IzXFx1MDNiZlxcdTAzYzVcXHUwM2JjXFx1MDNiNSBcXHUwM2MwXFx1MDNiYlxcdTAzYjdcXHUwM2MxXFx1MDNiZlxcdTAzYzZcXHUwM2JmXFx1MDNjMVxcdTAzYWZcXHUwM2I1XFx1MDNjMiBcXHUwM2MzXFx1MDNjN1xcdTAzYjVcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FjIFxcdTAzYmNcXHUwM2I1IFxcdTAzYzRcXHUwM2JmIFxcdTAzYzBcXHUwM2NlXFx1MDNjMiBcXHUwM2M3XFx1MDNjMVxcdTAzYjdcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmXFx1MDNjMFxcdTAzYmZcXHUwM2I5XFx1MDNiNVxcdTAzYWZcXHUwM2MyIFxcdTAzYzRcXHUwM2JmXFx1MDNiZCBcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2NjXFx1MDNjNFxcdTAzYmZcXHUwM2MwXFx1MDNjYyBcXHUwM2JjXFx1MDNiMVxcdTAzYzIsIFxcdTAzYzRcXHUwM2I3XFx1MDNiZCBcXHUwM2IxXFx1MDNjMFxcdTAzY2NcXHUwM2I0XFx1MDNiZlxcdTAzYzNcXHUwM2I3IFxcdTAzYzRcXHUwM2JmXFx1MDNjNSBcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2JmXFx1MDNjNFxcdTAzY2NcXHUwM2MwXFx1MDNiZlxcdTAzYzUgXFx1MDNiY1xcdTAzYjFcXHUwM2MyIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNiZFxcdTAzYjEgXFx1MDNiMlxcdTAzYjVcXHUwM2JiXFx1MDNjNFxcdTAzYjlcXHUwM2NlXFx1MDNiZFxcdTAzYmZcXHUwM2M1XFx1MDNiY1xcdTAzYjUgXFx1MDNjNFxcdTAzYjdcXHUwM2JkIFxcdTAzYjFcXHUwM2MwXFx1MDNjY1xcdTAzYjRcXHUwM2JmXFx1MDNjM1xcdTAzYjcgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYzRcXHUwM2I3XFx1MDNiZCBcXHUwM2I1XFx1MDNiY1xcdTAzYzBcXHUwM2I1XFx1MDNiOVxcdTAzYzFcXHUwM2FmXFx1MDNiMSBcXHUwM2MzXFx1MDNiZlxcdTAzYzUuJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJNYXJrZXRpbmdcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHUwM2E3XFx1MDNjMVxcdTAzYjdcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmXFx1MDNjMFxcdTAzYmZcXHUwM2I5XFx1MDNiZlxcdTAzY2RcXHUwM2JjXFx1MDNiNSBcXHUwM2IxXFx1MDNjNVxcdTAzYzRcXHUwM2FjIFxcdTAzYzRcXHUwM2IxIGNvb2tpZXM8L2E+IFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2JkXFx1MDNiMSBcXHUwM2MzXFx1MDNiZlxcdTAzYzUgXFx1MDNjMFxcdTAzYjFcXHUwM2MxXFx1MDNhZFxcdTAzYzdcXHUwM2JmXFx1MDNjNVxcdTAzYmNcXHUwM2I1IFxcdTAzYzNcXHUwM2M3XFx1MDNiNVxcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYWRcXHUwM2MyIFxcdTAzYjRcXHUwM2I5XFx1MDNiMVxcdTAzYzZcXHUwM2I3XFx1MDNiY1xcdTAzYWZcXHUwM2MzXFx1MDNiNVxcdTAzYjlcXHUwM2MyIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2JkXFx1MDNiMSBcXHUwM2JjXFx1MDNiNVxcdTAzYzRcXHUwM2MxXFx1MDNiZlxcdTAzY2RcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgXFx1MDNiMVxcdTAzYzBcXHUwM2JmXFx1MDNjNFxcdTAzYjVcXHUwM2JiXFx1MDNiNVxcdTAzYzNcXHUwM2JjXFx1MDNiMVxcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzY2NcXHUwM2M0XFx1MDNiN1xcdTAzYzRcXHUwM2IxIFxcdTAzYzRcXHUwM2M5XFx1MDNiZCBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNiN1xcdTAzYmNcXHUwM2FmXFx1MDNjM1xcdTAzYjVcXHUwM2NlXFx1MDNiZCBcXHUwM2JjXFx1MDNiMVxcdTAzYzIuIFxcdTAzYTRcXHUwM2MxXFx1MDNiOVxcdTAzYzRcXHUwM2JmXFx1MDNiOSBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNiN1xcdTAzYmNcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYmZcXHUwM2FmIFxcdTAzYzNcXHUwM2M1XFx1MDNiZFxcdTAzYjVcXHUwM2MxXFx1MDNiM1xcdTAzYWNcXHUwM2M0XFx1MDNiNVxcdTAzYzIgXFx1MDNiY1xcdTAzYjFcXHUwM2MyIFxcdTAzYmNcXHUwM2MwXFx1MDNiZlxcdTAzYzFcXHUwM2I1XFx1MDNhZiBcXHUwM2JkXFx1MDNiMSBcXHUwM2M3XFx1MDNjMVxcdTAzYjdcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmXFx1MDNjMFxcdTAzYmZcXHUwM2I5XFx1MDNhZVxcdTAzYzNcXHUwM2JmXFx1MDNjNVxcdTAzYmQgXFx1MDNiMVxcdTAzYzVcXHUwM2M0XFx1MDNhYyBcXHUwM2M0XFx1MDNiMSBjb29raWVzIFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2JkXFx1MDNiMSBcXHUwM2I0XFx1MDNiN1xcdTAzYmNcXHUwM2I5XFx1MDNiZlxcdTAzYzVcXHUwM2MxXFx1MDNiM1xcdTAzYWVcXHUwM2MzXFx1MDNiZlxcdTAzYzVcXHUwM2JkIFxcdTAzYWRcXHUwM2JkXFx1MDNiMSBcXHUwM2MwXFx1MDNjMVxcdTAzYmZcXHUwM2M2XFx1MDNhZlxcdTAzYmIgXFx1MDNjNFxcdTAzYzlcXHUwM2JkIFxcdTAzYjVcXHUwM2JkXFx1MDNiNFxcdTAzYjlcXHUwM2IxXFx1MDNjNlxcdTAzYjVcXHUwM2MxXFx1MDNjY1xcdTAzYmRcXHUwM2M0XFx1MDNjOVxcdTAzYmQgXFx1MDNjM1xcdTAzYjFcXHUwM2MyIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2JkXFx1MDNiMSBcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNiNFxcdTAzY2VcXHUwM2MzXFx1MDNiZlxcdTAzYzVcXHUwM2JkIFxcdTAzYzNcXHUwM2M3XFx1MDNiNVxcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYWRcXHUwM2MyIFxcdTAzYjRcXHUwM2I5XFx1MDNiMVxcdTAzYzZcXHUwM2I3XFx1MDNiY1xcdTAzYWZcXHUwM2MzXFx1MDNiNVxcdTAzYjlcXHUwM2MyIFxcdTAzYzNcXHUwM2I1IFxcdTAzYWNcXHUwM2JiXFx1MDNiYlxcdTAzYmZcXHUwM2M1XFx1MDNjMiBcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2NjXFx1MDNjNFxcdTAzYmZcXHUwM2MwXFx1MDNiZlxcdTAzYzVcXHUwM2MyLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTAzYzRcXHUwM2MxXFx1MDNhZlxcdTAzYzRcXHUwM2JmXFx1MDNiOSBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNiN1xcdTAzYmNcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYmZcXHUwM2FmIFxcdTAzYzNcXHUwM2M1XFx1MDNiZFxcdTAzYjVcXHUwM2MxXFx1MDNiM1xcdTAzYWNcXHUwM2M0XFx1MDNiNVxcdTAzYzJcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJcXHUwM2E0XFx1MDNjMVxcdTAzYWZcXHUwM2M0XFx1MDNiZlxcdTAzYjkgXFx1MDNiNFxcdTAzYjlcXHUwM2IxXFx1MDNjNlxcdTAzYjdcXHUwM2JjXFx1MDNiOVxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2JmXFx1MDNhZiBcXHUwM2MzXFx1MDNjNVxcdTAzYmRcXHUwM2I1XFx1MDNjMVxcdTAzYjNcXHUwM2FjXFx1MDNjNFxcdTAzYjVcXHUwM2MyOlwiLEVmZmVjdGl2ZURhdGU6XCJcXHUwMzk1XFx1MDNiZFxcdTAzYjVcXHUwM2MxXFx1MDNiM1xcdTAzY2M6IDE1IFxcdTAzOTlcXHUwM2IxXFx1MDNiZFxcdTAzYmZcXHUwM2M1XFx1MDNiMVxcdTAzYzFcXHUwM2FmXFx1MDNiZlxcdTAzYzUgMjAxOVwiLEJvZHk6W1wiXFx1MDM5NVxcdTAzYmFcXHUwM2M0XFx1MDNjY1xcdTAzYzIgXFx1MDNiMVxcdTAzYzBcXHUwM2NjIFxcdTAzYzRcXHUwM2I3IFxcdTAzYjRcXHUwM2I5XFx1MDNiMVxcdTAzYzdcXHUwM2I1XFx1MDNhZlxcdTAzYzFcXHUwM2I5XFx1MDNjM1xcdTAzYjcgXFx1MDNjNFxcdTAzYzlcXHUwM2JkIGNvb2tpZXMgXFx1MDNiY1xcdTAzYWRcXHUwM2MzXFx1MDNjOSBcXHUwM2M0XFx1MDNiZlxcdTAzYzUgXFx1MDNjMFxcdTAzYzFcXHUwM2JmXFx1MDNiM1xcdTAzYzFcXHUwM2FjXFx1MDNiY1xcdTAzYmNcXHUwM2IxXFx1MDNjNFxcdTAzYmZcXHUwM2MyIFxcdTAzYzBcXHUwM2I1XFx1MDNjMVxcdTAzYjlcXHUwM2FlXFx1MDNiM1xcdTAzYjdcXHUwM2MzXFx1MDNiN1xcdTAzYzIgXFx1MDNhZSBcXHUwM2M0XFx1MDNiN1xcdTAzYzIgXFx1MDNjM1xcdTAzYzVcXHUwM2MzXFx1MDNiYVxcdTAzYjVcXHUwM2M1XFx1MDNhZVxcdTAzYzIgXFx1MDNjM1xcdTAzYmZcXHUwM2M1LCBcXHUwM2JjXFx1MDNjMFxcdTAzYmZcXHUwM2MxXFx1MDNiNVxcdTAzYWZcXHUwM2MyIFxcdTAzYmRcXHUwM2IxIFxcdTAzYjFcXHUwM2JiXFx1MDNiYlxcdTAzYWNcXHUwM2JlXFx1MDNiNVxcdTAzYjlcXHUwM2MyIFxcdTAzYzRcXHUwM2I5XFx1MDNjMiBcXHUwM2MxXFx1MDNjNVxcdTAzYjhcXHUwM2JjXFx1MDNhZlxcdTAzYzNcXHUwM2I1XFx1MDNiOVxcdTAzYzIgY29va2llcyBcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNiYVxcdTAzYWNcXHUwM2M0XFx1MDNjOS4gXFx1MDNhMFxcdTAzYjFcXHUwM2MxXFx1MDNiMVxcdTAzYmFcXHUwM2IxXFx1MDNiYlxcdTAzYmZcXHUwM2NkXFx1MDNiY1xcdTAzYjUgXFx1MDNjM1xcdTAzYjdcXHUwM2JjXFx1MDNiNVxcdTAzYWZcXHUwM2M5XFx1MDNjM1xcdTAzYjUgXFx1MDNjY1xcdTAzYzRcXHUwM2I5IFxcdTAzYmZcXHUwM2MxXFx1MDNiOVxcdTAzYzNcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2IxIGNvb2tpZXMgXFx1MDNiNVxcdTAzYWZcXHUwM2JkXFx1MDNiMVxcdTAzYjkgXFx1MDNiMVxcdTAzYzBcXHUwM2IxXFx1MDNjMVxcdTAzYjFcXHUwM2FmXFx1MDNjNFxcdTAzYjdcXHUwM2M0XFx1MDNiMSBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNiZFxcdTAzYjEgXFx1MDNiYlxcdTAzYjVcXHUwM2I5XFx1MDNjNFxcdTAzYmZcXHUwM2M1XFx1MDNjMVxcdTAzYjNcXHUwM2I1XFx1MDNhZiBcXHUwM2JmIFxcdTAzYjlcXHUwM2MzXFx1MDNjNFxcdTAzY2NcXHUwM2M0XFx1MDNiZlxcdTAzYzBcXHUwM2NjXFx1MDNjMiBcXHUwM2JjXFx1MDNiMVxcdTAzYzIgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYjRcXHUwM2I1XFx1MDNiZCBcXHUwM2JjXFx1MDNjMFxcdTAzYmZcXHUwM2MxXFx1MDNiZlxcdTAzY2RcXHUwM2JkIFxcdTAzYmRcXHUwM2IxIFxcdTAzYjFcXHUwM2MwXFx1MDNiZlxcdTAzYmFcXHUwM2JiXFx1MDNiNVxcdTAzYjlcXHUwM2MzXFx1MDNjNFxcdTAzYmZcXHUwM2NkXFx1MDNiZCBcXHUwM2IxXFx1MDNjMFxcdTAzY2MgXFx1MDNjNFxcdTAzYjlcXHUwM2MyIFxcdTAzYzFcXHUwM2M1XFx1MDNiOFxcdTAzYmNcXHUwM2FmXFx1MDNjM1xcdTAzYjVcXHUwM2I5XFx1MDNjMiBcXHUwM2IxXFx1MDNjNVxcdTAzYzRcXHUwM2FkXFx1MDNjMi5cIl0sVGl0bGU6XCJcXHUwM2ExXFx1MDNjNVxcdTAzYjhcXHUwM2JjXFx1MDNhZlxcdTAzYzNcXHUwM2I1XFx1MDNiOVxcdTAzYzIgQ29va2llXCIsQ09PS0lFX1BPUFVQOidcXHUwMzkzXFx1MDNiNVxcdTAzYjlcXHUwM2IxISBcXHUwM2E3XFx1MDNjMVxcdTAzYjdcXHUwM2MzXFx1MDNiOVxcdTAzYmNcXHUwM2JmXFx1MDNjMFxcdTAzYmZcXHUwM2I5XFx1MDNiZlxcdTAzY2RcXHUwM2JjXFx1MDNiNSBjb29raWVzIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2NjXFx1MDNiY1xcdTAzYmZcXHUwM2I5XFx1MDNiNVxcdTAzYzIgXFx1MDNjNFxcdTAzYjVcXHUwM2M3XFx1MDNiZFxcdTAzYmZcXHUwM2JiXFx1MDNiZlxcdTAzYjNcXHUwM2FmXFx1MDNiNVxcdTAzYzIgKFxceGFiY29va2llc1xceGJiKSwgXFx1MDNjM1xcdTAzYzVcXHUwM2JjXFx1MDNjMFxcdTAzYjVcXHUwM2MxXFx1MDNiOVxcdTAzYmJcXHUwM2IxXFx1MDNiY1xcdTAzYjJcXHUwM2IxXFx1MDNiZFxcdTAzYmZcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2M5XFx1MDNiZCBjb29raWVzIFxcdTAzYzRcXHUwM2MxXFx1MDNhZlxcdTAzYzRcXHUwM2M5XFx1MDNiZCwgXFx1MDNjM1xcdTAzYjUgXFx1MDNiMVxcdTAzYzVcXHUwM2M0XFx1MDNhZSBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgXFx1MDNiOVxcdTAzYzNcXHUwM2M0XFx1MDNiZlxcdTAzYzNcXHUwM2I1XFx1MDNiYlxcdTAzYWZcXHUwM2I0XFx1MDNiMSBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNiZFxcdTAzYjEgXFx1MDNiY1xcdTAzYzBcXHUwM2JmXFx1MDNjMVxcdTAzYjVcXHUwM2FmIFxcdTAzYmRcXHUwM2IxIFxcdTAzYmJcXHUwM2I1XFx1MDNiOVxcdTAzYzRcXHUwM2JmXFx1MDNjNVxcdTAzYzFcXHUwM2IzXFx1MDNiNVxcdTAzYWYgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYmRcXHUwM2IxIFxcdTAzYjJcXHUwM2I1XFx1MDNiYlxcdTAzYzRcXHUwM2I5XFx1MDNjZVxcdTAzYzNcXHUwM2JmXFx1MDNjNVxcdTAzYmNcXHUwM2I1IFxcdTAzYzRcXHUwM2I3XFx1MDNiZCBcXHUwM2I1XFx1MDNiY1xcdTAzYzBcXHUwM2I1XFx1MDNiOVxcdTAzYzFcXHUwM2FmXFx1MDNiMSBcXHUwM2MwXFx1MDNiNVxcdTAzYzFcXHUwM2I5XFx1MDNhZVxcdTAzYjNcXHUwM2I3XFx1MDNjM1xcdTAzYjdcXHUwM2MyLCBcXHUwM2JkXFx1MDNiMSBcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNiYVxcdTAzYmZcXHUwM2JiXFx1MDNiZlxcdTAzYzVcXHUwM2I4XFx1MDNiZlxcdTAzY2RcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgXFx1MDNiMVxcdTAzYzBcXHUwM2NjXFx1MDNiNFxcdTAzYmZcXHUwM2MzXFx1MDNiNyBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNiM1xcdTAzYjlcXHUwM2IxIFxcdTAzYjRcXHUwM2I5XFx1MDNiMVxcdTAzYzZcXHUwM2I3XFx1MDNiY1xcdTAzYjlcXHUwM2MzXFx1MDNjNFxcdTAzYjlcXHUwM2JhXFx1MDNiZlxcdTAzY2RcXHUwM2MyIFxcdTAzYzNcXHUwM2JhXFx1MDNiZlxcdTAzYzBcXHUwM2JmXFx1MDNjZFxcdTAzYzIuIFxcdTAzOTNcXHUwM2I5XFx1MDNiMSBcXHUwM2MwXFx1MDNiNVxcdTAzYzFcXHUwM2I5XFx1MDNjM1xcdTAzYzNcXHUwM2NjXFx1MDNjNFxcdTAzYjVcXHUwM2MxXFx1MDNiNVxcdTAzYzIgXFx1MDNjMFxcdTAzYmJcXHUwM2I3XFx1MDNjMVxcdTAzYmZcXHUwM2M2XFx1MDNiZlxcdTAzYzFcXHUwM2FmXFx1MDNiNVxcdTAzYzIgXFx1MDNjM1xcdTAzYzdcXHUwM2I1XFx1MDNjNFxcdTAzYjlcXHUwM2JhXFx1MDNhYyBcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNiZiBcXHUwM2MwXFx1MDNjZVxcdTAzYzIgXFx1MDNjN1xcdTAzYzFcXHUwM2I3XFx1MDNjM1xcdTAzYjlcXHUwM2JjXFx1MDNiZlxcdTAzYzBcXHUwM2JmXFx1MDNiOVxcdTAzYmZcXHUwM2NkXFx1MDNiY1xcdTAzYjUgXFx1MDNjNFxcdTAzYjEgY29va2llcyBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNjNFxcdTAzYjlcXHUwM2MyIFxcdTAzYjVcXHUwM2MwXFx1MDNiOVxcdTAzYmJcXHUwM2JmXFx1MDNiM1xcdTAzYWRcXHUwM2MyIFxcdTAzYzNcXHUwM2JmXFx1MDNjNSBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNjNFxcdTAzYjEgY29va2llcywgXFx1MDNiNFxcdTAzYjVcXHUwM2MyIFxcdTAzYzRcXHUwM2I3XFx1MDNiZCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDNhMFxcdTAzYmZcXHUwM2JiXFx1MDNiOVxcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYWUgXFx1MDNiY1xcdTAzYjFcXHUwM2MyIFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2M0XFx1MDNiMSBjb29raWVzPC9hPiEgXFx1MDM5YVxcdTAzYWNcXHUwM2JkXFx1MDNiZlxcdTAzYmRcXHUwM2M0XFx1MDNiMVxcdTAzYzIgXFx1MDNiYVxcdTAzYmJcXHUwM2I5XFx1MDNiYSBcXHUwM2MzXFx1MDNjNFxcdTAzYmYgXFx4YWJcXHUwMzkxXFx1MDNjMFxcdTAzYmZcXHUwM2I0XFx1MDNiZlxcdTAzYzdcXHUwM2FlIENvb2tpZXNcXHhiYiBcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNiYVxcdTAzYWNcXHUwM2M0XFx1MDNjOSwgXFx1MDNjM1xcdTAzYzVcXHUwM2JkXFx1MDNiMVxcdTAzYjlcXHUwM2JkXFx1MDNiNVxcdTAzYWZcXHUwM2MyIFxcdTAzYzNcXHUwM2M0XFx1MDNiNyBcXHUwM2M3XFx1MDNjMVxcdTAzYWVcXHUwM2MzXFx1MDNiNyBcXHUwM2NjXFx1MDNiYlxcdTAzYzlcXHUwM2JkIFxcdTAzYzRcXHUwM2M5XFx1MDNiZCBjb29raWVzLCBcXHUwM2MzXFx1MDNjNVxcdTAzYmNcXHUwM2MwXFx1MDNiNVxcdTAzYzFcXHUwM2I5XFx1MDNiYlxcdTAzYjFcXHUwM2JjXFx1MDNiMlxcdTAzYjFcXHUwM2JkXFx1MDNiZlxcdTAzYmNcXHUwM2FkXFx1MDNiZFxcdTAzYzlcXHUwM2JkIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2M0XFx1MDNjOVxcdTAzYmQgXFx1MDNiY1xcdTAzYjcgXFx1MDNiZlxcdTAzYzVcXHUwM2MzXFx1MDNiOVxcdTAzYjFcXHUwM2MzXFx1MDNjNFxcdTAzYjlcXHUwM2JhXFx1MDNhZVxcdTAzYzIgXFx1MDNjM1xcdTAzYjdcXHUwM2JjXFx1MDNiMVxcdTAzYzNcXHUwM2FmXFx1MDNiMVxcdTAzYzIgY29va2llcy4gXFx1MDM5Y1xcdTAzYzBcXHUwM2JmXFx1MDNjMVxcdTAzYjVcXHUwM2FmXFx1MDNjMiBcXHUwM2JkXFx1MDNiMSBcXHUwM2IxXFx1MDNjMFxcdTAzYmZcXHUwM2MxXFx1MDNjMVxcdTAzYWZcXHUwM2M4XFx1MDNiNVxcdTAzYjlcXHUwM2MyIFxcdTAzYzRcXHUwM2IxIFxcdTAzYmNcXHUwM2I3IFxcdTAzYmZcXHUwM2M1XFx1MDNjM1xcdTAzYjlcXHUwM2IxXFx1MDNjM1xcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYWVcXHUwM2MyIFxcdTAzYzNcXHUwM2I3XFx1MDNiY1xcdTAzYjFcXHUwM2MzXFx1MDNhZlxcdTAzYjFcXHUwM2MyIGNvb2tpZXMsIFxcdTAzYmFcXHUwM2FjXFx1MDNiZFxcdTAzYmZcXHUwM2JkXFx1MDNjNFxcdTAzYjFcXHUwM2MyIFxcdTAzYmFcXHUwM2JiXFx1MDNiOVxcdTAzYmEgXFx1MDNjM1xcdTAzYzRcXHUwM2JmIFxcdTIwMWNYXFx1MjAxZCBcXHUwM2MzXFx1MDNjNFxcdTAzYjEgXFx1MDNiNFxcdTAzYjVcXHUwM2JlXFx1MDNiOVxcdTAzYWMuIFxcdTAzYTBcXHUwM2FlXFx1MDNiM1xcdTAzYjFcXHUwM2I5XFx1MDNiZFxcdTAzYjUgXFx1MDNjM1xcdTAzYzRcXHUwM2I5XFx1MDNjMiBcXHhhYlxcdTAzYTFcXHUwM2M1XFx1MDNiOFxcdTAzYmNcXHUwM2FmXFx1MDNjM1xcdTAzYjVcXHUwM2I5XFx1MDNjMiBDb29raWVcXHhiYiBcXHUwM2M0XFx1MDNiN1xcdTAzYzIgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FlXFx1MDNjMiBcXHUwM2JjXFx1MDNiMVxcdTAzYzIgXFx1MDNiM1xcdTAzYjlcXHUwM2IxIFxcdTAzYzRcXHUwM2IxIGNvb2tpZXM8L2E+IFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2JkXFx1MDNiMSBcXHUwM2IxXFx1MDNiYlxcdTAzYmJcXHUwM2FjXFx1MDNiZVxcdTAzYjVcXHUwM2I5XFx1MDNjMiBcXHUwM2M0XFx1MDNiOVxcdTAzYzIgXFx1MDNjMVxcdTAzYzVcXHUwM2I4XFx1MDNiY1xcdTAzYWZcXHUwM2MzXFx1MDNiNVxcdTAzYjlcXHUwM2MyIGNvb2tpZSBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNiZFxcdTAzYjEgXFx1MDNiMVxcdTAzYmRcXHUwM2IxXFx1MDNiOVxcdTAzYzFcXHUwM2FkXFx1MDNjM1xcdTAzYjVcXHUwM2I5XFx1MDNjMiBcXHUwM2M0XFx1MDNiNyBcXHUwM2MzXFx1MDNjNVxcdTAzYmRcXHUwM2IxXFx1MDNhZlxcdTAzYmRcXHUwM2I1XFx1MDNjM1xcdTAzYWUgXFx1MDNjM1xcdTAzYmZcXHUwM2M1IFxcdTAzYmZcXHUwM2MwXFx1MDNiZlxcdTAzYjlcXHUwM2IxXFx1MDNiNFxcdTAzYWVcXHUwM2MwXFx1MDNiZlxcdTAzYzRcXHUwM2I1IFxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYjNcXHUwM2JjXFx1MDNhZS4nLENPT0tJRV9QT1BVUF9FVTonXFx1MDM5M1xcdTAzYjVcXHUwM2I5XFx1MDNiMSEgXFx1MDNhN1xcdTAzYzFcXHUwM2I3XFx1MDNjM1xcdTAzYjlcXHUwM2JjXFx1MDNiZlxcdTAzYzBcXHUwM2JmXFx1MDNiOVxcdTAzYmZcXHUwM2NkXFx1MDNiY1xcdTAzYjUgY29va2llcyBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNjMFxcdTAzYjFcXHUwM2MxXFx1MDNjY1xcdTAzYmNcXHUwM2JmXFx1MDNiOVxcdTAzYjVcXHUwM2MyIFxcdTAzYzRcXHUwM2I1XFx1MDNjN1xcdTAzYmRcXHUwM2JmXFx1MDNiYlxcdTAzYmZcXHUwM2IzXFx1MDNhZlxcdTAzYjVcXHUwM2MyIChcXHhhYmNvb2tpZXNcXHhiYiksIFxcdTAzYzNcXHUwM2M1XFx1MDNiY1xcdTAzYzBcXHUwM2I1XFx1MDNjMVxcdTAzYjlcXHUwM2JiXFx1MDNiMVxcdTAzYmNcXHUwM2IyXFx1MDNiMVxcdTAzYmRcXHUwM2JmXFx1MDNiY1xcdTAzYWRcXHUwM2JkXFx1MDNjOVxcdTAzYmQgY29va2llcyBcXHUwM2M0XFx1MDNjMVxcdTAzYWZcXHUwM2M0XFx1MDNjOVxcdTAzYmQsIFxcdTAzYzNcXHUwM2I1IFxcdTAzYjFcXHUwM2M1XFx1MDNjNFxcdTAzYWUgXFx1MDNjNFxcdTAzYjdcXHUwM2JkIFxcdTAzYjlcXHUwM2MzXFx1MDNjNFxcdTAzYmZcXHUwM2MzXFx1MDNiNVxcdTAzYmJcXHUwM2FmXFx1MDNiNFxcdTAzYjEgXFx1MDNiM1xcdTAzYjlcXHUwM2IxIFxcdTAzYmRcXHUwM2IxIFxcdTAzYmNcXHUwM2MwXFx1MDNiZlxcdTAzYzFcXHUwM2I1XFx1MDNhZiBcXHUwM2JkXFx1MDNiMSBcXHUwM2JiXFx1MDNiNVxcdTAzYjlcXHUwM2M0XFx1MDNiZlxcdTAzYzVcXHUwM2MxXFx1MDNiM1xcdTAzYjVcXHUwM2FmIFxcdTAzYmFcXHUwM2IxXFx1MDNiOSBcXHUwM2JkXFx1MDNiMSBcXHUwM2IyXFx1MDNiNVxcdTAzYmJcXHUwM2M0XFx1MDNiOVxcdTAzY2VcXHUwM2MzXFx1MDNiZlxcdTAzYzVcXHUwM2JjXFx1MDNiNSBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgXFx1MDNiNVxcdTAzYmNcXHUwM2MwXFx1MDNiNVxcdTAzYjlcXHUwM2MxXFx1MDNhZlxcdTAzYjEgXFx1MDNjMFxcdTAzYjVcXHUwM2MxXFx1MDNiOVxcdTAzYWVcXHUwM2IzXFx1MDNiN1xcdTAzYzNcXHUwM2I3XFx1MDNjMiwgXFx1MDNiZFxcdTAzYjEgXFx1MDNjMFxcdTAzYjFcXHUwM2MxXFx1MDNiMVxcdTAzYmFcXHUwM2JmXFx1MDNiYlxcdTAzYmZcXHUwM2M1XFx1MDNiOFxcdTAzYmZcXHUwM2NkXFx1MDNiY1xcdTAzYjUgXFx1MDNjNFxcdTAzYjdcXHUwM2JkIFxcdTAzYjFcXHUwM2MwXFx1MDNjY1xcdTAzYjRcXHUwM2JmXFx1MDNjM1xcdTAzYjcgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2I0XFx1MDNiOVxcdTAzYjFcXHUwM2M2XFx1MDNiN1xcdTAzYmNcXHUwM2I5XFx1MDNjM1xcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYmZcXHUwM2NkXFx1MDNjMiBcXHUwM2MzXFx1MDNiYVxcdTAzYmZcXHUwM2MwXFx1MDNiZlxcdTAzY2RcXHUwM2MyLiBcXHUwMzkzXFx1MDNiOVxcdTAzYjEgXFx1MDNjMFxcdTAzYjVcXHUwM2MxXFx1MDNiOVxcdTAzYzNcXHUwM2MzXFx1MDNjY1xcdTAzYzRcXHUwM2I1XFx1MDNjMVxcdTAzYjVcXHUwM2MyIFxcdTAzYzBcXHUwM2JiXFx1MDNiN1xcdTAzYzFcXHUwM2JmXFx1MDNjNlxcdTAzYmZcXHUwM2MxXFx1MDNhZlxcdTAzYjVcXHUwM2MyIFxcdTAzYzNcXHUwM2M3XFx1MDNiNVxcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYWMgXFx1MDNiY1xcdTAzYjUgXFx1MDNjNFxcdTAzYmYgXFx1MDNjMFxcdTAzY2VcXHUwM2MyIFxcdTAzYzdcXHUwM2MxXFx1MDNiN1xcdTAzYzNcXHUwM2I5XFx1MDNiY1xcdTAzYmZcXHUwM2MwXFx1MDNiZlxcdTAzYjlcXHUwM2JmXFx1MDNjZFxcdTAzYmNcXHUwM2I1IFxcdTAzYzRcXHUwM2IxIGNvb2tpZXMgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYzRcXHUwM2I5XFx1MDNjMiBcXHUwM2I1XFx1MDNjMFxcdTAzYjlcXHUwM2JiXFx1MDNiZlxcdTAzYjNcXHUwM2FkXFx1MDNjMiBcXHUwM2MzXFx1MDNiZlxcdTAzYzUgXFx1MDNiM1xcdTAzYjlcXHUwM2IxIFxcdTAzYzRcXHUwM2IxIGNvb2tpZXMsIFxcdTAzYjRcXHUwM2I1XFx1MDNjMiBcXHUwM2M0XFx1MDNiN1xcdTAzYmQgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTAzYTBcXHUwM2JmXFx1MDNiYlxcdTAzYjlcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FlIFxcdTAzYmNcXHUwM2IxXFx1MDNjMiBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNjNFxcdTAzYjEgY29va2llczwvYT4hIFxcdTAzOWFcXHUwM2FjXFx1MDNiZFxcdTAzYmZcXHUwM2JkXFx1MDNjNFxcdTAzYjFcXHUwM2MyIFxcdTAzYmFcXHUwM2JiXFx1MDNiOVxcdTAzYmEgXFx1MDNjM1xcdTAzYzRcXHUwM2JmIFxceGFiXFx1MDM5MVxcdTAzYzBcXHUwM2JmXFx1MDNiNFxcdTAzYmZcXHUwM2M3XFx1MDNhZSBDb29raWVzXFx4YmIgXFx1MDNjMFxcdTAzYjFcXHUwM2MxXFx1MDNiMVxcdTAzYmFcXHUwM2FjXFx1MDNjNFxcdTAzYzksIFxcdTAzYzNcXHUwM2M1XFx1MDNiZFxcdTAzYjFcXHUwM2I5XFx1MDNiZFxcdTAzYjVcXHUwM2FmXFx1MDNjMiBcXHUwM2MzXFx1MDNjNFxcdTAzYjcgXFx1MDNjN1xcdTAzYzFcXHUwM2FlXFx1MDNjM1xcdTAzYjcgXFx1MDNjY1xcdTAzYmJcXHUwM2M5XFx1MDNiZCBcXHUwM2M0XFx1MDNjOVxcdTAzYmQgY29va2llcywgXFx1MDNjM1xcdTAzYzVcXHUwM2JjXFx1MDNjMFxcdTAzYjVcXHUwM2MxXFx1MDNiOVxcdTAzYmJcXHUwM2IxXFx1MDNiY1xcdTAzYjJcXHUwM2IxXFx1MDNiZFxcdTAzYmZcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2M5XFx1MDNiZCBcXHUwM2JhXFx1MDNiMVxcdTAzYjkgXFx1MDNjNFxcdTAzYzlcXHUwM2JkIFxcdTAzYmNcXHUwM2I3IFxcdTAzYmZcXHUwM2M1XFx1MDNjM1xcdTAzYjlcXHUwM2IxXFx1MDNjM1xcdTAzYzRcXHUwM2I5XFx1MDNiYVxcdTAzYWVcXHUwM2MyIFxcdTAzYzNcXHUwM2I3XFx1MDNiY1xcdTAzYjFcXHUwM2MzXFx1MDNhZlxcdTAzYjFcXHUwM2MyIGNvb2tpZXMuIFxcdTAzOWNcXHUwM2MwXFx1MDNiZlxcdTAzYzFcXHUwM2I1XFx1MDNhZlxcdTAzYzIgXFx1MDNiZFxcdTAzYjEgXFx1MDNiMVxcdTAzYzBcXHUwM2JmXFx1MDNjMVxcdTAzYzFcXHUwM2FmXFx1MDNjOFxcdTAzYjVcXHUwM2I5XFx1MDNjMiBcXHUwM2M0XFx1MDNiMSBcXHUwM2JjXFx1MDNiNyBcXHUwM2JmXFx1MDNjNVxcdTAzYzNcXHUwM2I5XFx1MDNiMVxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYmFcXHUwM2FlXFx1MDNjMiBcXHUwM2MzXFx1MDNiN1xcdTAzYmNcXHUwM2IxXFx1MDNjM1xcdTAzYWZcXHUwM2IxXFx1MDNjMiBjb29raWVzLCBcXHUwM2JhXFx1MDNhY1xcdTAzYmRcXHUwM2JmXFx1MDNiZFxcdTAzYzRcXHUwM2IxXFx1MDNjMiBcXHUwM2JhXFx1MDNiYlxcdTAzYjlcXHUwM2JhIFxcdTAzYzNcXHUwM2M0XFx1MDNiZiBcXHUyMDFjWFxcdTIwMWQgXFx1MDNjM1xcdTAzYzRcXHUwM2IxIFxcdTAzYjRcXHUwM2I1XFx1MDNiZVxcdTAzYjlcXHUwM2FjLiBcXHUwM2EwXFx1MDNhZVxcdTAzYjNcXHUwM2IxXFx1MDNiOVxcdTAzYmRcXHUwM2I1IFxcdTAzYzNcXHUwM2M0XFx1MDNiOVxcdTAzYzIgXFx4YWJcXHUwM2ExXFx1MDNjNVxcdTAzYjhcXHUwM2JjXFx1MDNhZlxcdTAzYzNcXHUwM2I1XFx1MDNiOVxcdTAzYzIgQ29va2llXFx4YmIgXFx1MDNjNFxcdTAzYjdcXHUwM2MyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwM2EwXFx1MDNiZlxcdTAzYmJcXHUwM2I5XFx1MDNjNFxcdTAzYjlcXHUwM2JhXFx1MDNhZVxcdTAzYzIgXFx1MDNiY1xcdTAzYjFcXHUwM2MyIFxcdTAzYjNcXHUwM2I5XFx1MDNiMSBcXHUwM2M0XFx1MDNiMSBjb29raWVzPC9hPiBcXHUwM2IzXFx1MDNiOVxcdTAzYjEgXFx1MDNiZFxcdTAzYjEgXFx1MDNiMVxcdTAzYmJcXHUwM2JiXFx1MDNhY1xcdTAzYmVcXHUwM2I1XFx1MDNiOVxcdTAzYzIgXFx1MDNjNFxcdTAzYjlcXHUwM2MyIFxcdTAzYzFcXHUwM2M1XFx1MDNiOFxcdTAzYmNcXHUwM2FmXFx1MDNjM1xcdTAzYjVcXHUwM2I5XFx1MDNjMiBjb29raWUgXFx1MDNiYVxcdTAzYjFcXHUwM2I5IFxcdTAzYmRcXHUwM2IxIFxcdTAzYjFcXHUwM2JkXFx1MDNiMVxcdTAzYjlcXHUwM2MxXFx1MDNhZFxcdTAzYzNcXHUwM2I1XFx1MDNiOVxcdTAzYzIgXFx1MDNjNFxcdTAzYjcgXFx1MDNjM1xcdTAzYzVcXHUwM2JkXFx1MDNiMVxcdTAzYWZcXHUwM2JkXFx1MDNiNVxcdTAzYzNcXHUwM2FlIFxcdTAzYzNcXHUwM2JmXFx1MDNjNSBcXHUwM2JmXFx1MDNjMFxcdTAzYmZcXHUwM2I5XFx1MDNiMVxcdTAzYjRcXHUwM2FlXFx1MDNjMFxcdTAzYmZcXHUwM2M0XFx1MDNiNSBcXHUwM2MzXFx1MDNjNFxcdTAzYjlcXHUwM2IzXFx1MDNiY1xcdTAzYWUuJyxBZ3JlZVRleHQ6XCJcXHUwMzkxXFx1MDNjMFxcdTAzYmZcXHUwM2I0XFx1MDNiZlxcdTAzYzdcXHUwM2FlIENvb2tpZXNcIixTZXR0aW5nc1RleHQ6XCJcXHUwM2ExXFx1MDNjNVxcdTAzYjhcXHUwM2JjXFx1MDNhZlxcdTAzYzNcXHUwM2I1XFx1MDNiOVxcdTAzYzIgQ29va2llc1wiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiXFx1MDM5MVxcdTAzYmRcXHUwM2IxXFx1MDNjNlxcdTAzYmZcXHUwM2MxXFx1MDNhYyBcXHUwM2MwXFx1MDNiMVxcdTAzYzFcXHUwM2IxXFx1MDNiMlxcdTAzYWZcXHUwM2IxXFx1MDNjM1xcdTAzYjdcXHUwM2MyXCIsU3BvdGxpZ2h0OlwiXFx1MDNhMFxcdTAzYzFcXHUwM2JmXFx1MDNjM1xcdTAzYmFcXHUwM2FlXFx1MDNiZFxcdTAzYjlcXHUwM2JmXCJ9LFwiZW4tZ2JcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJMaXZlXCIsQWRzOlwiQWR2ZXJ0c1wiLENvbXBhbnk6XCJDb21wYW55XCIsSG9tZTpcIkhvbWVcIixCbG9nOlwiQmxvZ1wiLEpvYnM6XCJKb2JzXCIsQ2FyZWVyczpcIkNhcmVlcnNcIixQcmVzczpcIlByZXNzXCIsTmV3czpcIk5ld3NcIixcIlByZXNzIElucXVpcmllc1wiOlwiUHJlc3MgRW5xdWlyaWVzXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIkxhbmd1YWdlXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiRG93bmxvYWQgU25hcGNoYXRcIixEb3dubG9hZDpcIkRvd25sb2FkXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIlN0b3JpZXNcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiU3RvcmVcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcIlNuYXBjaGF0IGZvciBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiLENvbW11bml0eTpcIkNvbW11bml0eVwiLFN1cHBvcnQ6XCJTdXBwb3J0XCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlNhZmV0eSBDZW50cmVcIixTbmFwY29kZXM6XCJTbmFwY29kZXNcIixHZW9maWx0ZXJzOlwiR2VvZmlsdGVyc1wiLENyZWF0ZTpcIkZpbHRlcnMgJiBMZW5zZXNcIixNYXA6XCJNYXBcIixBZHZlcnRpc2luZzpcIkFkdmVydGlzaW5nXCIsXCJCdXkgQWRzXCI6XCJCdXkgQWR2ZXJ0c1wiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIkFkdmVydGlzaW5nIFBvbGljaWVzXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiQnJhbmQgR3VpZGVsaW5lc1wiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUHJvbW90aW9ucyBSdWxlc1wiLExlZ2FsOlwiTGVnYWxcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlRlcm1zIG9mIFNlcnZpY2VcIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJQcml2YWN5IFBvbGljeVwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlByaXZhY3kgQ2VudHJlXCIsXCJDb29raWUgUG9saWN5XCI6XCJDb29raWUgUG9saWN5XCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIkN1c3RvbSBDcmVhdGl2ZSBUb29scyBUZXJtc1wiLENPTU1VTklUWV9UT1M6XCJDb21tdW5pdHkgR2VvZmlsdGVyIFRlcm1zXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gVGVybXNcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIk5lY2Vzc2FyeSBjb29raWVzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+V2UgdXNlIHRoZXNlIGNvb2tpZXM8L2E+IHRvIGhlbHAgb3BlcmF0ZSB0aGUgc2l0ZS4gQmVjYXVzZSB0aGVzZSBjb29raWVzIGFyZSBuZWNlc3NhcnksIHlvdSBjYW5cXHUyMDE5dCB0dXJuIHRoZW0gb2ZmLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJQcmVmZXJlbmNlc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+V2UgdXNlIHRoZXNlIGNvb2tpZXM8L2E+IHRvIHJlbWVtYmVyIHlvdXIgcHJlZmVyZW5jZXMgYW5kIGltcHJvdmUgeW91ciBleHBlcmllbmNlIG9uIG91ciB3ZWJzaXRlLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJQZXJmb3JtYW5jZSAmIEFuYWx5dGljc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+V2UgdXNlIHRoZXNlIGNvb2tpZXM8L2E+IHRvIGNvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgaG93IHlvdSB1c2Ugb3VyIHNpdGUsIG1vbml0b3Igc2l0ZSBwZXJmb3JtYW5jZSBhbmQgaW1wcm92ZSBvdXIgc2l0ZSBwZXJmb3JtYW5jZSBhbmQgeW91ciBleHBlcmllbmNlLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiTWFya2V0aW5nXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+V2UgdXNlIHRoZXNlIGNvb2tpZXM8L2E+IHRvIGRlbGl2ZXIgcmVsZXZhbnQgYWR2ZXJ0aXNpbmcgYW5kIG1lYXN1cmUgdGhlIGVmZmVjdGl2ZW5lc3Mgb2Ygb3VyIGFkdmVydGlzaW5nIGNhbXBhaWducy4gT3VyIHRoaXJkLXBhcnR5IGFkdmVydGlzaW5nIHBhcnRuZXJzIG1heSB1c2UgdGhlc2UgY29va2llcyB0byBidWlsZCBhIHByb2ZpbGUgb2YgeW91ciBpbnRlcmVzdHMgYW5kIGRlbGl2ZXIgcmVsZXZhbnQgYWR2ZXJ0aXNpbmcgb24gb3RoZXIgc2l0ZXMuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwidGhpcmQtcGFydHkgYWR2ZXJ0aXNpbmcgcGFydG5lcnNcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJUaGlyZC1wYXJ0eSBhZHZlcnRpc2luZyBwYXJ0bmVyczpcIixFZmZlY3RpdmVEYXRlOlwiRWZmZWN0aXZlOiAxNSBKYW51YXJ5IDIwMTlcIixCb2R5OltcIkluIGFkZGl0aW9uIHRvIG1hbmFnaW5nIGNvb2tpZXMgdGhyb3VnaCB5b3VyIGJyb3dzZXIgb3IgZGV2aWNlLCB5b3UgY2FuIGNoYW5nZSB5b3VyIGNvb2tpZSBzZXR0aW5ncyBiZWxvdy4gUGxlYXNlIG5vdGUgdGhhdCBjZXJ0YWluIGNvb2tpZXMgYXJlIG5lY2Vzc2FyeSB0byBydW4gb3VyIHNpdGUgYW5kIGNhblxcdTIwMTl0IGJlIGJsb2NrZWQgdXNpbmcgdGhlc2Ugc2V0dGluZ3MuXCJdLFRpdGxlOlwiQ29va2llIFNldHRpbmdzXCIsQ09PS0lFX1BPUFVQOidIaSEgV2UgdXNlIGNvb2tpZXMgYW5kIHNpbWlsYXIgdGVjaG5vbG9naWVzIChcXHUyMDFjY29va2llc1xcdTIwMWQpLCBpbmNsdWRpbmcgdGhpcmQtcGFydHkgY29va2llcywgb24gdGhpcyB3ZWJzaXRlIHRvIGhlbHAgb3BlcmF0ZSBhbmQgaW1wcm92ZSB5b3VyIGJyb3dzaW5nIGV4cGVyaWVuY2UsIG1vbml0b3IgcGVyZm9ybWFuY2UgYW5kIGZvciBhZHZlcnRpc2luZyBwdXJwb3Nlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHdlIHVzZSBjb29raWVzIGFuZCB5b3VyIGNvb2tpZSBjaG9pY2VzLCBzZWUgb3VyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgUG9saWN5PC9hPiEgQnkgY2xpY2tpbmcgXFx1MjAxY0FjY2VwdCBDb29raWVzXFx1MjAxZCBiZWxvdywgeW91IGFyZSBnaXZpbmcgdXMgY29uc2VudCB0byB1c2UgYWxsIGNvb2tpZXMsIGluY2x1ZGluZyBub24tZXNzZW50aWFsIGNvb2tpZXMuIFlvdSBjYW4gZGVjbGluZSBhbGwgbm9uLWVzc2VudGlhbCBjb29raWVzIGJ5IGNsaWNraW5nIHRoZSBcXHUyMDFjWFxcdTIwMWQgb24gdGhlIHJpZ2h0LiBHbyB0byBcXHUyMDFjQ29va2llIFNldHRpbmdzXFx1MjAxZCBvciBvdXIgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBQb2xpY3k8L2E+IHRvIGNoYW5nZSB5b3VyIGNvb2tpZSBzZXR0aW5ncyBhbmQgd2l0aGRyYXcgeW91ciBjb25zZW50IGF0IGFueSB0aW1lLicsQ09PS0lFX1BPUFVQX0VVOidIaSEgV2UgdXNlIGNvb2tpZXMgYW5kIHNpbWlsYXIgdGVjaG5vbG9naWVzIChcXHUyMDFjY29va2llc1xcdTIwMWQpLCBpbmNsdWRpbmcgdGhpcmQtcGFydHkgY29va2llcywgb24gdGhpcyB3ZWJzaXRlIHRvIGhlbHAgb3BlcmF0ZSBhbmQgaW1wcm92ZSB5b3VyIGJyb3dzaW5nIGV4cGVyaWVuY2UsIG1vbml0b3IgcGVyZm9ybWFuY2UgYW5kIGZvciBhZHZlcnRpc2luZyBwdXJwb3Nlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHdlIHVzZSBjb29raWVzIGFuZCB5b3VyIGNvb2tpZSBjaG9pY2VzLCBzZWUgb3VyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgUG9saWN5PC9hPiEgQnkgY2xpY2tpbmcgXFx1MjAxY0FjY2VwdCBDb29raWVzXFx1MjAxZCBiZWxvdywgeW91IGFyZSBnaXZpbmcgdXMgY29uc2VudCB0byB1c2UgYWxsIGNvb2tpZXMsIGluY2x1ZGluZyBub24tZXNzZW50aWFsIGNvb2tpZXMuIFlvdSBjYW4gZGVjbGluZSBhbGwgbm9uLWVzc2VudGlhbCBjb29raWVzIGJ5IGNsaWNraW5nIHRoZSBcXHUyMDFjWFxcdTIwMWQgb24gdGhlIHJpZ2h0LiBHbyB0byBcXHUyMDFjQ29va2llIFNldHRpbmdzXFx1MjAxZCBvciBvdXIgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBQb2xpY3k8L2E+IHRvIGNoYW5nZSB5b3VyIGNvb2tpZSBzZXR0aW5ncyBhbmQgd2l0aGRyYXcgeW91ciBjb25zZW50IGF0IGFueSB0aW1lLicsQWdyZWVUZXh0OlwiQWNjZXB0IENvb2tpZXNcIixTZXR0aW5nc1RleHQ6XCJDb29raWUgU2V0dGluZ3NcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIixTcG90bGlnaHQ6XCJTcG90bGlnaHRcIn0sXCJlbi11c1wiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIkxpdmVcIixBZHM6XCJBZHNcIixDb21wYW55OlwiQ29tcGFueVwiLEhvbWU6XCJIb21lXCIsQmxvZzpcIkJsb2dcIixKb2JzOlwiSm9ic1wiLENhcmVlcnM6XCJDYXJlZXJzXCIsUHJlc3M6XCJQcmVzc1wiLE5ld3M6XCJOZXdzXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlByZXNzIElucXVpcmllc1wiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJMYW5ndWFnZVwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIkRvd25sb2FkIFNuYXBjaGF0XCIsRG93bmxvYWQ6XCJEb3dubG9hZFwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJTdG9yaWVzXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlN0b3JlXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBmb3IgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIixDb21tdW5pdHk6XCJDb21tdW5pdHlcIixTdXBwb3J0OlwiU3VwcG9ydFwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIkNvbW11bml0eSBHdWlkZWxpbmVzXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJTYWZldHkgQ2VudGVyXCIsU25hcGNvZGVzOlwiU25hcGNvZGVzXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlcnNcIixDcmVhdGU6XCJGaWx0ZXJzICYgTGVuc2VzXCIsTWFwOlwiTWFwXCIsQWR2ZXJ0aXNpbmc6XCJBZHZlcnRpc2luZ1wiLFwiQnV5IEFkc1wiOlwiQnV5IEFkc1wiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIkFkdmVydGlzaW5nIFBvbGljaWVzXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiQnJhbmQgR3VpZGVsaW5lc1wiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUHJvbW90aW9ucyBSdWxlc1wiLExlZ2FsOlwiTGVnYWxcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlRlcm1zIG9mIFNlcnZpY2VcIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJQcml2YWN5IFBvbGljeVwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlByaXZhY3kgQ2VudGVyXCIsXCJDb29raWUgUG9saWN5XCI6XCJDb29raWUgUG9saWN5XCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIkN1c3RvbSBDcmVhdGl2ZSBUb29scyBUZXJtc1wiLENPTU1VTklUWV9UT1M6XCJDb21tdW5pdHkgR2VvZmlsdGVyIFRlcm1zXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gVGVybXNcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIk5lY2Vzc2FyeSBjb29raWVzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+V2UgdXNlIHRoZXNlIGNvb2tpZXM8L2E+IHRvIGhlbHAgb3BlcmF0ZSB0aGUgc2l0ZS4gQmVjYXVzZSB0aGVzZSBjb29raWVzIGFyZSBuZWNlc3NhcnksIHlvdSBjYW5cXHUyMDE5dCB0dXJuIHRoZW0gb2ZmLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJQcmVmZXJlbmNlc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+V2UgdXNlIHRoZXNlIGNvb2tpZXM8L2E+IHRvIHJlbWVtYmVyIHlvdXIgcHJlZmVyZW5jZXMgYW5kIGltcHJvdmUgeW91ciBleHBlcmllbmNlIG9uIG91ciB3ZWJzaXRlLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJQZXJmb3JtYW5jZSAmIEFuYWx5dGljc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+V2UgdXNlIHRoZXNlIGNvb2tpZXM8L2E+IHRvIGNvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgaG93IHlvdSB1c2Ugb3VyIHNpdGUsIG1vbml0b3Igc2l0ZSBwZXJmb3JtYW5jZSwgYW5kIGltcHJvdmUgb3VyIHNpdGUgcGVyZm9ybWFuY2UgYW5kIHlvdXIgZXhwZXJpZW5jZS4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1hcmtldGluZ1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPldlIHVzZSB0aGVzZSBjb29raWVzPC9hPiB0byBkZWxpdmVyIHJlbGV2YW50IGFkdmVydGlzaW5nIGFuZCBtZWFzdXJlIHRoZSBlZmZlY3RpdmVuZXNzIG9mIG91ciBhZHZlcnRpc2luZyBjYW1wYWlnbnMuIE91ciB0aGlyZC1wYXJ0eSBhZHZlcnRpc2luZyBwYXJ0bmVycyBtYXkgdXNlIHRoZXNlIGNvb2tpZXMgdG8gYnVpbGQgYSBwcm9maWxlIG9mIHlvdXIgaW50ZXJlc3RzIGFuZCBkZWxpdmVyIHJlbGV2YW50IGFkdmVydGlzaW5nIG9uIG90aGVyIHNpdGVzLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInRoaXJkLXBhcnR5IGFkdmVydGlzaW5nIHBhcnRuZXJzXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiVGhpcmQtcGFydHkgYWR2ZXJ0aXNpbmcgcGFydG5lcnM6XCIsRWZmZWN0aXZlRGF0ZTpcIkVmZmVjdGl2ZTogSmFudWFyeSAxNSwgMjAxOVwiLEJvZHk6W1wiSW4gYWRkaXRpb24gdG8gbWFuYWdpbmcgY29va2llcyB0aHJvdWdoIHlvdXIgYnJvd3NlciBvciBkZXZpY2UsIHlvdSBjYW4gY2hhbmdlIHlvdXIgY29va2llIHNldHRpbmdzIGJlbG93LiBQbGVhc2Ugbm90ZSB0aGF0IGNlcnRhaW4gY29va2llcyBhcmUgbmVjZXNzYXJ5IHRvIHJ1biBvdXIgc2l0ZSBhbmQgY2FuXFx1MjAxOXQgYmUgYmxvY2tlZCB1c2luZyB0aGVzZSBzZXR0aW5ncy5cIl0sVGl0bGU6XCJDb29raWUgU2V0dGluZ3NcIixDT09LSUVfUE9QVVA6J0hpISBXZSB1c2UgY29va2llcyBhbmQgc2ltaWxhciB0ZWNobm9sb2dpZXMgKFxcdTIwMWNjb29raWVzXFx1MjAxZCksIGluY2x1ZGluZyB0aGlyZC1wYXJ0eSBjb29raWVzLCBvbiB0aGlzIHdlYnNpdGUgdG8gaGVscCBvcGVyYXRlIGFuZCBpbXByb3ZlIHlvdXIgYnJvd3NpbmcgZXhwZXJpZW5jZSwgbW9uaXRvciBwZXJmb3JtYW5jZSwgYW5kIGZvciBhZHZlcnRpc2luZyBwdXJwb3Nlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHdlIHVzZSBjb29raWVzIGFuZCB5b3VyIGNvb2tpZSBjaG9pY2VzLCBzZWUgb3VyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgUG9saWN5PC9hPiEgQnkgY2xpY2tpbmcgXFx1MjAxY0FjY2VwdCBDb29raWVzXFx1MjAxZCBiZWxvdywgeW91IGFyZSBnaXZpbmcgdXMgY29uc2VudCB0byB1c2UgYWxsIGNvb2tpZXMsIGluY2x1ZGluZyBub24tZXNzZW50aWFsIGNvb2tpZXMuIFlvdSBtYXkgZGVjbGluZSBhbGwgbm9uLWVzc2VudGlhbCBjb29raWVzIGJ5IGNsaWNraW5nIHRoZSBcXHUyMDFjWFxcdTIwMWQgb24gdGhlIHJpZ2h0LiBHbyB0byBcXHUyMDFjQ29va2llIFNldHRpbmdzXFx1MjAxZCBvciBvdXIgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBQb2xpY3k8L2E+IHRvIGNoYW5nZSB5b3VyIGNvb2tpZSBzZXR0aW5ncywgYW5kIHdpdGhkcmF3IHlvdXIgY29uc2VudCBhdCBhbnkgdGltZS4nLENPT0tJRV9QT1BVUF9FVTonSGkhIFdlIHVzZSBjb29raWVzIGFuZCBzaW1pbGFyIHRlY2hub2xvZ2llcyAoXFx1MjAxY2Nvb2tpZXNcXHUyMDFkKSwgaW5jbHVkaW5nIHRoaXJkLXBhcnR5IGNvb2tpZXMsIG9uIHRoaXMgd2Vic2l0ZSB0byBoZWxwIG9wZXJhdGUgYW5kIGltcHJvdmUgeW91ciBicm93c2luZyBleHBlcmllbmNlLCBtb25pdG9yIHBlcmZvcm1hbmNlLCBhbmQgZm9yIGFkdmVydGlzaW5nIHB1cnBvc2VzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgd2UgdXNlIGNvb2tpZXMgYW5kIHlvdXIgY29va2llIGNob2ljZXMsIHNlZSBvdXIgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBQb2xpY3k8L2E+ISBCeSBjbGlja2luZyBcXHUyMDFjQWNjZXB0IENvb2tpZXNcXHUyMDFkIGJlbG93LCB5b3UgYXJlIGdpdmluZyB1cyBjb25zZW50IHRvIHVzZSBhbGwgY29va2llcywgaW5jbHVkaW5nIG5vbi1lc3NlbnRpYWwgY29va2llcy4gWW91IG1heSBkZWNsaW5lIGFsbCBub24tZXNzZW50aWFsIGNvb2tpZXMgYnkgY2xpY2tpbmcgdGhlIFxcdTIwMWNYXFx1MjAxZCBvbiB0aGUgcmlnaHQuIEdvIHRvIFxcdTIwMWNDb29raWUgU2V0dGluZ3NcXHUyMDFkIG9yIG91ciA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFBvbGljeTwvYT4gdG8gY2hhbmdlIHlvdXIgY29va2llIHNldHRpbmdzLCBhbmQgd2l0aGRyYXcgeW91ciBjb25zZW50IGF0IGFueSB0aW1lLicsQWdyZWVUZXh0OlwiQWNjZXB0IENvb2tpZXNcIixTZXR0aW5nc1RleHQ6XCJDb29raWUgU2V0dGluZ3NcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIixTcG90bGlnaHQ6XCJTcG90bGlnaHRcIn0sXCJlcy1hclwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIkVuIHZpdm9cIixBZHM6XCJQdWJsaWNpZGFkZXNcIixDb21wYW55OlwiRW1wcmVzYVwiLEhvbWU6XCJJbmljaW9cIixCbG9nOlwiQmxvZ1wiLEpvYnM6XCJFbXBsZW9zXCIsQ2FyZWVyczpcIkNhcnJlcmFzXCIsUHJlc3M6XCJQcmVuc2FcIixOZXdzOlwiTm90aWNpYXNcIixcIlByZXNzIElucXVpcmllc1wiOlwiQ29uc3VsdGFzIGRlIHByZW5zYVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJJZGlvbWFcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJEZXNjYXJnYXIgU25hcGNoYXRcIixEb3dubG9hZDpcIkRlc2NhcmdhclwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJIaXN0b3JpYXNcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiVGllbmRhXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBwYXJhIGlPU1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IHBhcmEgQW5kcm9pZFwiLENvbW11bml0eTpcIkNvbXVuaWRhZFwiLFN1cHBvcnQ6XCJBeXVkYVwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlBhdXRhcyBwYXJhIGxhIGNvbXVuaWRhZFwiLFwiU2FmZXR5IENlbnRlclwiOlwiQ2VudHJvIGRlIHNlZ3VyaWRhZFwiLFNuYXBjb2RlczpcIlNuYXBjXFx4ZjNkaWdvc1wiLEdlb2ZpbHRlcnM6XCJHZW9maWx0cm9zXCIsQ3JlYXRlOlwiRmlsdHJvcyB5IExlbnRlc1wiLE1hcDpcIk1hcGFcIixBZHZlcnRpc2luZzpcIlB1YmxpY2lkYWRcIixcIkJ1eSBBZHNcIjpcIkNvbXByYXIgcHVibGljaWRhZGVzXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiTm9ybWFzIGRlIHB1YmxpY2lkYWRcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiQmlibGlvdGVjYSBkZSBhbnVuY2lvcyBwb2xcXHhlZHRpY29zXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJQYXV0YXMgZGUgbGEgbWFyY2FcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlJlZ2xhcyBkZSBwcm9tb2Npb25lc1wiLExlZ2FsOlwiTGVnYWxcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpY2lvbmVzIGRlIHNlcnZpY2lvXCIsSW1wcmVzc3VtOlwiSW1wcmVzc3VtXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiUG9sXFx4ZWR0aWNhIGRlIHByaXZhY2lkYWRcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJDZW50cm8gZGUgcHJpdmFjaWRhZFwiLFwiQ29va2llIFBvbGljeVwiOlwiUG9sXFx4ZWR0aWNhIGRlIGNvb2tpZXNcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpY2lvbmVzIGRlIHNlcnZpY2lvIGRlIFJlY3VlcmRvc1wiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJDb25kaWNpb25lcyBkZSBoZXJyYW1pZW50YXMgY3JlYXRpdmFzIHBlcnNvbmFsaXphZGFzXCIsQ09NTVVOSVRZX1RPUzpcIkNvbmRpY2lvbmVzIGRlIEdlb2ZpbHRyb3MgcGFyYSBsYSBjb211bmlkYWRcIixMRU5TX1NUVURJT19UT1M6XCJDb25kaWNpb25lcyBkZSBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlR1cyBvcGNpb25lcyBkZSBwcml2YWNpZGFkXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llcyBuZWNlc2FyaWFzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+VXNhbW9zIGVzdGFzIGNvb2tpZXM8L2E+IHBhcmEgb3B0aW1pemFyIGVsIGZ1bmNpb25hbWllbnRvIGRlbCBzaXRpby4gRGFkbyBxdWUgc29uIG5lY2VzYXJpYXMsIG5vIHBvZFxceGU5cyBkZXNhY3RpdmFybGFzLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJQcmVmZXJlbmNpYXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlVzYW1vcyBlc3RhcyBjb29raWVzPC9hPiBwYXJhIHJlY29yZGFyIHR1cyBwcmVmZXJlbmNpYXMgeSBtZWpvcmFyIHR1IGV4cGVyaWVuY2lhIGVuIG51ZXN0cm8gc2l0aW8gd2ViLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJSZW5kaW1pZW50byB5IGFuXFx4ZTFsaXNpc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+VXNhbW9zIGVzdGFzIGNvb2tpZXM8L2E+IHBhcmEgcmVjb3BpbGFyIGluZm9ybWFjaVxceGYzbiBzb2JyZSBjXFx4ZjNtbyB1c1xceGUxcyBudWVzdHJvIHNpdG8sIGNvbnRyb2xhciBlbCByZW5kaW1pZW50byBkZWwgc2l0aW8sIHkgbWVqb3JhciBlbCByZW5kaW1pZW50byBkZSBudWVzdHJvIHNpdGlvIHkgdHUgZXhwZXJpZW5jaWEuJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJNYXJrZXRpbmdcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5Vc2Ftb3MgZXN0YXMgY29va2llczwvYT4gcGFyYSBicmluZGFydGUgcHVibGljaWRhZCBwZXJ0aW5lbnRlIHkgbWVkaXIgbGEgZWZpY2FjaWEgZGUgbnVlc3RyYXMgY2FtcGFcXHhmMWFzIGRlIHB1YmxpY2lkYWRlcy4gTnVlc3Ryb3Mgc29jaW9zIHB1YmxpY2l0YXJpb3MgZXh0ZXJub3MgcHVlZGVuIHV0aWxpemFyIGVzdGFzIGNvb2tpZXMgcGFyYSBjcmVhciB1biBwZXJmaWwgY29uIHR1cyBpbnRlcmVzZXMgeSBwcm9wb3JjaW9uYXJ0ZSBwdWJsaWNpZGFkIHJlbGV2YW50ZSBlbiBvdHJvcyBzaXRpb3Mgd2ViLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInNvY2lvcyBwdWJsaWNpdGFyaW9zIGV4dGVybm9zXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiU29jaW9zIHB1YmxpY2l0YXJpb3MgZXh0ZXJub3M6XCIsRWZmZWN0aXZlRGF0ZTpcIlZpZ2VudGUgYSBwYXJ0aXIgZGU6IDE1IGRlIGVuZXJvIGRlIDIwMTlcIixCb2R5OltcIkFkZW1cXHhlMXMgZGUgYWRtaW5pc3RyYXIgY29va2llcyBtZWRpYW50ZSB0dSBuYXZlZ2Fkb3IgbyBkaXNwb3NpdGl2bywgcHVlZGVzIGNhbWJpYXIgbG9zIGFqdXN0ZXMgZGUgY29va2llcyBhIGNvbnRpbnVhY2lcXHhmM24uIFRlbiBlbiBjdWVudGEgcXVlIGNpZXJ0YXMgY29va2llcyBzb24gbmVjZXNhcmlhcyBwYXJhIGVsIGZ1bmNpb25hbWllbnRvIGRlIG51ZXN0cm8gc2l0aW8geSBubyBzZSBwdWVkZW4gYmxvcXVlYXIgY29uIGVzdG9zIGFqdXN0ZXMuXCJdLFRpdGxlOlwiQWp1c3RlcyBkZSBjb29raWVzXCIsQ09PS0lFX1BPUFVQOidcXHhhMUhvbGEhIFVzYW1vcyBjb29raWVzIHkgb3RyYXMgdGVjbm9sb2dcXHhlZGFzIHNpbWlsYXJlcyAoXCJjb29raWVzXCIpLCBpbmNsdWlkYXMgbGFzIGNvb2tpZXMgZGUgdGVyY2Vyb3MsIGVuIGVzdGUgc2l0aW8gd2ViIHBhcmEgYXl1ZGFyIGEgb3BlcmFyIHkgbWVqb3JhciB0dSBleHBlcmllbmNpYSBkZSBuYXZlZ2FjaVxceGYzbiwgcGFyYSBtb25pdG9yZWFyIGVsIGRlc2VtcGVcXHhmMW8geSBjb24gZmluZXMgcHVibGljaXRhcmlvcy4gUGFyYSB2ZXIgbVxceGUxcyBpbmZvcm1hY2lcXHhmM24gc29icmUgbnVlc3RybyB1c28gZGUgY29va2llcyB5IGxhcyBvcGNpb25lcyBkaXNwb25pYmxlcywgY29uc3VsdFxceGUxIG51ZXN0cmEgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbFxceGVkdGljYSBkZSBjb29raWVzPC9hPi4gQWwgaGFjZXIgY2xpYyBlbiBcIkFjZXB0YXIgY29va2llc1wiIGEgY29udGludWFjaVxceGYzbiwgbm9zIGVzdFxceGUxcyBhdXRvcml6YW5kbyBhIHVzYXIgdG9kYXMgbGFzIGNvb2tpZXMsIGluY2x1aWRhcyBsYXMgbm8gZXNlbmNpYWxlcy4gUG9kXFx4ZTlzIHJlY2hhemFyIGxhcyBjb29raWVzIG5vIGVzZW5jaWFsZXMgaGFjaWVuZG8gY2xpYyBlbiBsYSBcIlhcIiBhIGxhIGRlcmVjaGEuIERpcmlnaXRlIGEgXCJBanVzdGVzIGRlIGNvb2tpZXNcIiBvIGEgbnVlc3RyYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9sXFx4ZWR0aWNhIGRlIGNvb2tpZXM8L2E+IHBhcmEgY2FtYmlhciBsb3MgYWp1c3Rlcy4gUG9kXFx4ZTlzIHJldm9jYXIgZWwgY29uc2VudGltaWVudG8gZW4gY3VhbHF1aWVyIG1vbWVudG8uJyxDT09LSUVfUE9QVVBfRVU6J1xceGExSG9sYSEgVXNhbW9zIGNvb2tpZXMgeSBvdHJhcyB0ZWNub2xvZ1xceGVkYXMgc2ltaWxhcmVzIChcImNvb2tpZXNcIiksIGluY2x1aWRhcyBsYXMgY29va2llcyBkZSB0ZXJjZXJvcywgZW4gZXN0ZSBzaXRpbyB3ZWIgcGFyYSBheXVkYXIgYSBvcGVyYXIgeSBtZWpvcmFyIHR1IGV4cGVyaWVuY2lhIGRlIG5hdmVnYWNpXFx4ZjNuLCBwYXJhIG1vbml0b3JlYXIgZWwgZGVzZW1wZVxceGYxbyB5IGNvbiBmaW5lcyBwdWJsaWNpdGFyaW9zLiBQYXJhIHZlciBtXFx4ZTFzIGluZm9ybWFjaVxceGYzbiBzb2JyZSBudWVzdHJvIHVzbyBkZSBjb29raWVzIHkgbGFzIG9wY2lvbmVzIGRpc3BvbmlibGVzLCBjb25zdWx0XFx4ZTEgbnVlc3RyYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9sXFx4ZWR0aWNhIGRlIGNvb2tpZXM8L2E+LiBBbCBoYWNlciBjbGljIGVuIFwiQWNlcHRhciBjb29raWVzXCIgYSBjb250aW51YWNpXFx4ZjNuLCBub3MgZXN0XFx4ZTFzIGF1dG9yaXphbmRvIGEgdXNhciB0b2RhcyBsYXMgY29va2llcywgaW5jbHVpZGFzIGxhcyBubyBlc2VuY2lhbGVzLiBQb2RcXHhlOXMgcmVjaGF6YXIgbGFzIGNvb2tpZXMgbm8gZXNlbmNpYWxlcyBoYWNpZW5kbyBjbGljIGVuIGxhIFwiWFwiIGEgbGEgZGVyZWNoYS4gRGlyaWdpdGUgYSBcIkFqdXN0ZXMgZGUgY29va2llc1wiIG8gYSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Qb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4gcGFyYSBjYW1iaWFyIGxvcyBhanVzdGVzLiBQb2RcXHhlOXMgcmV2b2NhciBlbCBjb25zZW50aW1pZW50byBlbiBjdWFscXVpZXIgbW9tZW50by4nLEFncmVlVGV4dDpcIkFjZXB0YXIgY29va2llc1wiLFNldHRpbmdzVGV4dDpcIkFqdXN0ZXMgZGUgY29va2llc1wiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiSW5mb3JtYXIgdW5hIGluZnJhY2NpXFx4ZjNuXCIsU3BvdGxpZ2h0OlwiRGVzdGFjYWRvXCJ9LFwiZXMtZXNcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJFbiB2aXZvXCIsQWRzOlwiQW51bmNpb3NcIixDb21wYW55OlwiRW1wcmVzYVwiLEhvbWU6XCJJbmljaW9cIixCbG9nOlwiQmxvZ1wiLEpvYnM6XCJFbXBsZW9zXCIsQ2FyZWVyczpcIkNhcnJlcmFzXCIsUHJlc3M6XCJQcmVuc2FcIixOZXdzOlwiTm90aWNpYXNcIixcIlByZXNzIElucXVpcmllc1wiOlwiQ29uc3VsdGFzIGRlIHByZW5zYVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJJZGlvbWFcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJEZXNjYXJnYXIgU25hcGNoYXRcIixEb3dubG9hZDpcIkRlc2NhcmdhclwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJIaXN0b3JpYXNcIixcIkxlbnMgU3R1ZGlvXCI6XCJlbCBMZW5zIFN0dWRpb1wiLFN0b3JlOlwiVGllbmRhXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBwYXJhIGlPU1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IHBhcmEgQW5kcm9pZFwiLENvbW11bml0eTpcIkNvbXVuaWRhZFwiLFN1cHBvcnQ6XCJBeXVkYVwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlBhdXRhcyBwYXJhIGxhIGNvbXVuaWRhZFwiLFwiU2FmZXR5IENlbnRlclwiOlwiQ2VudHJvIGRlIHNlZ3VyaWRhZFwiLFNuYXBjb2RlczpcIlNuYXBjXFx4ZjNkaWdvc1wiLEdlb2ZpbHRlcnM6XCJHZW9maWx0cm9zXCIsQ3JlYXRlOlwiRmlsdHJvcyB5IExlbnRlc1wiLE1hcDpcIk1hcGFcIixBZHZlcnRpc2luZzpcIlB1YmxpY2lkYWRcIixcIkJ1eSBBZHNcIjpcIkNvbXByYXIgYW51bmNpb3NcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJQb2xcXHhlZHRpY2FzIGRlIHB1YmxpY2lkYWRcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiQmlibGlvdGVjYSBkZSBhbnVuY2lvcyBkZSBjYXJcXHhlMWN0ZXIgcG9sXFx4ZWR0aWNvXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJQYXV0YXMgZGUgbGEgbWFyY2FcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlJlZ2xhcyBkZSBwcm9tb2Npb25lc1wiLExlZ2FsOlwiTGVnYWxcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpY2lvbmVzIGRlIHNlcnZpY2lvXCIsSW1wcmVzc3VtOlwiSW1wcmVzc3VtXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiUG9sXFx4ZWR0aWNhIGRlIHByaXZhY2lkYWRcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJDZW50cm8gZGUgcHJpdmFjaWRhZFwiLFwiQ29va2llIFBvbGljeVwiOlwiUG9sXFx4ZWR0aWNhIGRlIGNvb2tpZXNcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpY2lvbmVzIGRlIHNlcnZpY2lvIGRlIFJlY3VlcmRvc1wiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJDb25kaWNpb25lcyBkZSBoZXJyYW1pZW50YXMgY3JlYXRpdmFzIHBlcnNvbmFsaXphZGFzXCIsQ09NTVVOSVRZX1RPUzpcIkNvbmRpY2lvbmVzIGRlIEdlb2ZpbHRyb3MgcGFyYSBsYSBjb211bmlkYWRcIixMRU5TX1NUVURJT19UT1M6XCJDb25kaWNpb25lcyBkZSBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlR1cyBvcGNpb25lcyBkZSBwcml2YWNpZGFkXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llcyBuZWNlc2FyaWFzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+VXNhbW9zIGVzdGFzIGNvb2tpZXM8L2E+IHBhcmEgcGVybWl0aXIgZWwgZnVuY2lvbmFtaWVudG8gZGVsIHNpdGlvLiBDb21vIGVzdGFzIGNvb2tpZXMgc29uIG5lY2VzYXJpYXMsIG5vIHB1ZWRlcyBkZXNhY3RpdmFybGFzLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJQcmVmZXJlbmNpYXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlVzYW1vcyBlc3RhcyBjb29raWVzPC9hPiBwYXJhIHJlY29yZGFyIHR1cyBwcmVmZXJlbmNpYXMgeSBtZWpvcmFyIHR1IGV4cGVyaWVuY2lhIGVuIG51ZXN0cm8gc2l0aW8gd2ViLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJSZW5kaW1pZW50byB5IGFuXFx4ZTFsaXNpc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+VXNhbW9zIGVzdGFzIGNvb2tpZXM8L2E+IHBhcmEgcmVjb3BpbGFyIGluZm9ybWFjaVxceGYzbiBzb2JyZSBjXFx4ZjNtbyB1c2FzIG51ZXN0cm8gc2l0aW8sIGNvbnRyb2xhciBzdSByZW5kaW1pZW50byB5IG1lam9yYXJsbywgYWRlbVxceGUxcyBkZSBtZWpvcmFyIHR1IGV4cGVyaWVuY2lhLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiTWFya2V0aW5nXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+VXNhbW9zIGVzdGFzIGNvb2tpZXM8L2E+IHBhcmEgb2ZyZWNlcnRlIHB1YmxpY2lkYWQgcGVydGluZW50ZSB5IG1lZGlyIGxhIGVmaWNhY2lhIGRlIG51ZXN0cmFzIGNhbXBhXFx4ZjFhcyBkZSBhbnVuY2lvcy4gTG9zIHRlcmNlcm9zIHF1ZSBlc3RcXHhlMW4gYXNvY2lhZG9zIGNvbiBub3NvdHJvcyBwYXJhIGxhIHB1YmxpY2lkYWQgcHVlZGVuIHV0aWxpemFyIGVzdGFzIGNvb2tpZXMgcGFyYSBjcmVhciB1biBwZXJmaWwgY29uIHR1cyBpbnRlcmVzZXMgeSBvZnJlY2VydGUgcHVibGljaWRhZCBwZXJ0aW5lbnRlIGVuIG90cm9zIHNpdGlvcyB3ZWIuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwidGVyY2Vyb3MgYXNvY2lhZG9zIGNvbiBub3NvdHJvcyBwYXJhIGxhIHB1YmxpY2lkYWRcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJFc3RvcyBzb24gbG9zIHRlcmNlcm9zIHF1ZSBlc3RcXHhlMW4gYXNvY2lhZG9zIGNvbiBub3NvdHJvcyBwYXJhIGxhIHB1YmxpY2lkYWQ6XCIsRWZmZWN0aXZlRGF0ZTpcIlZpZ2VudGUgYSBwYXJ0aXIgZGU6IDE1IGRlIGVuZXJvIGRlIDIwMTlcIixCb2R5OltcIkFkZW1cXHhlMXMgZGUgYWRtaW5pc3RyYXIgY29va2llcyBtZWRpYW50ZSB0dSBuYXZlZ2Fkb3IgbyBkaXNwb3NpdGl2bywgcHVlZGVzIGNhbWJpYXIgbG9zIGFqdXN0ZXMgZGUgY29va2llcyBhIGNvbnRpbnVhY2lcXHhmM24uIFRlbiBlbiBjdWVudGEgcXVlIGNpZXJ0YXMgY29va2llcyBzb24gbmVjZXNhcmlhcyBwYXJhIGVsIGZ1bmNpb25hbWllbnRvIGRlIG51ZXN0cm8gc2l0aW8geSBubyBzZSBwdWVkZW4gYmxvcXVlYXIgY29uIGVzdG9zIGFqdXN0ZXMuXCJdLFRpdGxlOlwiQWp1c3RlcyBkZSBjb29raWVzXCIsQ09PS0lFX1BPUFVQOidcXHhhMUhvbGEhIEVuIGVzdGUgc2l0aW8gd2ViIHVzYW1vcyBjb29raWVzIHkgdGVjbm9sb2dcXHhlZGFzIHNpbWlsYXJlcyAoXFx4YWJjb29raWVzXFx4YmIpLCBpbmNsdWlkYXMgbGFzIGNvb2tpZXMgZGUgdGVyY2Vyb3MsIHBhcmEgcGVybWl0aXIgZWwgZnVuY2lvbmFtaWVudG8gZGVsIHNpdGlvIHkgbWVqb3JhciB0dSBleHBlcmllbmNpYSBkZSBuYXZlZ2FjaVxceGYzbiwgcGFyYSBjb250cm9sYXIgZWwgcmVuZGltaWVudG8geSBjb24gZmluZXMgcHVibGljaXRhcmlvcy4gUGFyYSBzYWJlciBtXFx4ZTFzIHNvYnJlIGNcXHhmM21vIHVzYW1vcyBsYXMgY29va2llcyB5IGxhcyBvcGNpb25lcyBxdWUgdGllbmVzLCBjb25zdWx0YSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4uIEFsIGhhY2VyIGNsaWNrIGVuIEFjZXB0YXIgY29va2llcywgbm9zIGRhcyB0dSBjb25zZW50aW1pZW50byBwYXJhIHVzYXIgdG9kYXMgbGFzIGNvb2tpZXMsIGluY2x1aWRhcyBhcXVlbGxhcyBxdWUgbm8gc29uIGltcHJlc2NpbmRpYmxlcy4gUHVlZGVzIG5lZ2FydGUgYSBhY2VwdGFyIGRpY2hhcyBjb29raWVzIGhhY2llbmRvIGNsaWMgZW4gZWwgc1xceGVkbWJvbG8gXFx4YWJYXFx4YmIgZGUgbGEgZGVyZWNoYS4gVmUgYSBsYSBDb25maWd1cmFjaVxceGYzbiBkZSBjb29raWVzIG8gYSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4gcGFyYSBjYW1iaWFyIGxhIGNvbmZpZ3VyYWNpXFx4ZjNuIGRlIGNvb2tpZXMgeSByZXRpcmFyIHR1IGNvbnNlbnRpbWllbnRvIGVuIGN1YWxxdWllciBtb21lbnRvLicsQ09PS0lFX1BPUFVQX0VVOidcXHhhMUhvbGEhIEVuIGVzdGUgc2l0aW8gd2ViIHVzYW1vcyBjb29raWVzIHkgdGVjbm9sb2dcXHhlZGFzIHNpbWlsYXJlcyAoXFx4YWJjb29raWVzXFx4YmIpLCBpbmNsdWlkYXMgbGFzIGNvb2tpZXMgZGUgdGVyY2Vyb3MsIHBhcmEgcGVybWl0aXIgZWwgZnVuY2lvbmFtaWVudG8gZGVsIHNpdGlvIHkgbWVqb3JhciB0dSBleHBlcmllbmNpYSBkZSBuYXZlZ2FjaVxceGYzbiwgcGFyYSBjb250cm9sYXIgZWwgcmVuZGltaWVudG8geSBjb24gZmluZXMgcHVibGljaXRhcmlvcy4gUGFyYSBzYWJlciBtXFx4ZTFzIHNvYnJlIGNcXHhmM21vIHVzYW1vcyBsYXMgY29va2llcyB5IGxhcyBvcGNpb25lcyBxdWUgdGllbmVzLCBjb25zdWx0YSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4uIEFsIGhhY2VyIGNsaWNrIGVuIEFjZXB0YXIgY29va2llcywgbm9zIGRhcyB0dSBjb25zZW50aW1pZW50byBwYXJhIHVzYXIgdG9kYXMgbGFzIGNvb2tpZXMsIGluY2x1aWRhcyBhcXVlbGxhcyBxdWUgbm8gc29uIGltcHJlc2NpbmRpYmxlcy4gUHVlZGVzIG5lZ2FydGUgYSBhY2VwdGFyIGRpY2hhcyBjb29raWVzIGhhY2llbmRvIGNsaWMgZW4gZWwgc1xceGVkbWJvbG8gXFx4YWJYXFx4YmIgZGUgbGEgZGVyZWNoYS4gVmUgYSBsYSBDb25maWd1cmFjaVxceGYzbiBkZSBjb29raWVzIG8gYSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4gcGFyYSBjYW1iaWFyIGxhIGNvbmZpZ3VyYWNpXFx4ZjNuIGRlIGNvb2tpZXMgeSByZXRpcmFyIHR1IGNvbnNlbnRpbWllbnRvIGVuIGN1YWxxdWllciBtb21lbnRvLicsQWdyZWVUZXh0OlwiQWNlcHRhciBjb29raWVzXCIsU2V0dGluZ3NUZXh0OlwiQ29uZmlndXJhY2lcXHhmM24gZGUgY29va2llc1wiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiRGVudW5jaWFyIHVuYSBpbmZyYWNjaVxceGYzblwiLFNwb3RsaWdodDpcIkRlc3RhY2Fkb3NcIn0sXCJlcy1teFwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIkVuIHZpdm9cIixBZHM6XCJBbnVuY2lvc1wiLENvbXBhbnk6XCJFbXByZXNhXCIsSG9tZTpcIkluaWNpb1wiLEJsb2c6XCJCbG9nXCIsSm9iczpcIkVtcGxlb3NcIixDYXJlZXJzOlwiQ2FycmVyYXNcIixQcmVzczpcIlByZW5zYVwiLE5ld3M6XCJOb3RpY2lhc1wiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJDb25zdWx0YXMgZGUgcHJlbnNhXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIklkaW9tYVwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIkRlc2NhcmdhciBTbmFwY2hhdFwiLERvd25sb2FkOlwiRGVzY2FyZ2FyXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIkhpc3Rvcmlhc1wiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJUaWVuZGFcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcIlNuYXBjaGF0IHBhcmEgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgcGFyYSBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiQ29tdW5pZGFkXCIsU3VwcG9ydDpcIkF5dWRhXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiUGF1dGFzIHBhcmEgbGEgY29tdW5pZGFkXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJDZW50cm8gZGUgc2VndXJpZGFkXCIsU25hcGNvZGVzOlwiU25hcGNcXHhmM2RpZ29zXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRyb3NcIixDcmVhdGU6XCJGaWx0cm9zIHkgTGVudGVzXCIsTWFwOlwiTWFwYVwiLEFkdmVydGlzaW5nOlwiUHVibGljaWRhZFwiLFwiQnV5IEFkc1wiOlwiQ29tcHJhciBhbnVuY2lvc1wiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlBvbFxceGVkdGljYXMgcHVibGljaXRhcmlhc1wiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJCaWJsaW90ZWNhIGRlIGFudW5jaW9zIGNvbiBmaW5lcyBwb2xcXHhlZHRpY29zXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJMaW5lYW1pZW50b3MgZGUgTWFyY2FcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlJlZ2xhcyBkZSBwcm9tb2Npb25lc1wiLExlZ2FsOlwiTGVnYWxcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpY2lvbmVzIGRlIHNlcnZpY2lvXCIsSW1wcmVzc3VtOlwiSW1wcmVzc3VtXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiUG9sXFx4ZWR0aWNhIGRlIHByaXZhY2lkYWRcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJDZW50cm8gZGUgcHJpdmFjaWRhZFwiLFwiQ29va2llIFBvbGljeVwiOlwiUG9sXFx4ZWR0aWNhIGRlIGNvb2tpZXNcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpY2lvbmVzIGRlIHNlcnZpY2lvIGRlIFJlY3VlcmRvc1wiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJDb25kaWNpb25lcyBkZSBoZXJyYW1pZW50YXMgY3JlYXRpdmFzIHBlcnNvbmFsaXphZGFzXCIsQ09NTVVOSVRZX1RPUzpcIkNvbmRpY2lvbmVzIGRlIEdlb2ZpbHRyb3MgcGFyYSBsYSBjb211bmlkYWRcIixMRU5TX1NUVURJT19UT1M6XCJUXFx4ZTlybWlub3MgeSBDb25kaWNpb25lcyBkZSBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlR1cyBvcGNpb25lcyBkZSBwcml2YWNpZGFkXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llcyBuZWNlc2FyaWFzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+VXRpbGl6YW1vcyBjb29raWVzPC9hPiBwYXJhIG9wZXJhciBlbCBzaXRpby4gRGViaWRvIGEgcXVlIGVzdGFzIGNvb2tpZXMgc29uIG5lY2VzYXJpYXMsIG5vIHB1ZWRlcyBkZXNhY3RpdmFybGFzLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJQcmVmZXJlbmNpYXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlV0aWxpemFtb3MgY29va2llczwvYT4gcGFyYSByZWNvcmRhciB0dXMgcHJlZmVyZW5jaWFzIHkgbWVqb3JhciB0dSBleHBlcmllbmNpYSBlbiBudWVzdHJvIHNpdGlvIHdlYi4nXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiUmVuZGltaWVudG8geSBBbmFsXFx4ZWR0aWNhXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5VdGlsaXphbW9zIGNvb2tpZXM8L2E+IHBhcmEgcmVjb3BpbGFyIGluZm9ybWFjaVxceGYzbiBzb2JyZSBjXFx4ZjNtbyB1c2FzIG51ZXN0cm8gc2l0aW8sIHN1cGVydmlzYXIgZWwgcmVuZGltaWVudG8gZGVsIG1pc21vLCB5IG1lam9yYXIgc3UgcmVuZGltaWVudG8geSB0dSBleHBlcmllbmNpYS4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1cXHhlMXJrZXRpbmdcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5VdGlsaXphbW9zIGNvb2tpZXM8L2E+IHBhcmEgYnJpbmRhcnRlIHB1YmxpY2lkYWQgcGVydGluZW50ZSB5IG1lZGlyIGxhIGVmaWNhY2lhIGRlIG51ZXN0cmFzIGNhbXBhXFx4ZjFhcyBwdWJsaWNpdGFyaWFzLiBOdWVzdHJvcyBzb2Npb3MgcHVibGljaXRhcmlvcyBleHRlcm5vcyBwb2RyXFx4ZWRhbiB1dGlsaXphciBlc3RhcyBjb29raWVzIHBhcmEgY29uc3RydWlyIHVuIHBlcmZpbCBiYXNhZG8gZW4gdHVzIGludGVyZXNlcyB5IHByb3BvcmNpb25hcnRlIHB1YmxpY2lkYWQgcmVsZXZhbnRlIGVuIG90cm9zIHNpdGlvcyB3ZWIuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0Olwic29jaW9zIHB1YmxpY2l0YXJpb3MgZXh0ZXJub3NcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJTb2Npb3MgcHVibGljaXRhcmlvcyBleHRlcm5vczpcIixFZmZlY3RpdmVEYXRlOlwiVmlnZW50ZSBhIHBhcnRpciBkZTogMTUgZGUgZW5lcm8gZGUgMjAxOVwiLEJvZHk6W1wiQWRlbVxceGUxcyBkZSBhZG1pbmlzdHJhciBjb29raWVzIG1lZGlhbnRlIHR1IG5hdmVnYWRvciBvIGRpc3Bvc2l0aXZvLCBwdWVkZXMgY2FtYmlhciBsb3MgYWp1c3RlcyBkZSBjb29raWVzIGEgY29udGludWFjaVxceGYzbi4gVGVuIGVuIGN1ZW50YSBxdWUgY2llcnRhcyBjb29raWVzIHNvbiBuZWNlc2FyaWFzIHBhcmEgZWwgZnVuY2lvbmFtaWVudG8gZGUgbnVlc3RybyBzaXRpbyB5IG5vIHNlIHB1ZWRlbiBibG9xdWVhciBjb24gZXN0b3MgYWp1c3Rlcy5cIl0sVGl0bGU6XCJBanVzdGVzIGRlIGNvb2tpZXNcIixDT09LSUVfUE9QVVA6J1xceGExSG9sYSEgRW4gZXN0ZSBzaXRpbyB1c2Ftb3MgY29va2llcyB5IHRlY25vbG9nXFx4ZWRhcyBzaW1pbGFyZXMgKFwiY29va2llc1wiKSwgaW5jbHV5ZW5kbyBjb29raWVzIGRlIHRlcmNlcm9zLCBwYXJhIG9wZXJhciBudWVzdHJvIHNpdGlvIHkgbWVqb3JhciB0dSBleHBlcmllbmNpYSBkZSBleHBsb3JhY2lcXHhmM24sIHN1cGVydmlzYXIgZWwgcmVuZGltaWVudG8gZGUgbnVlc3RybyBzaXRpbyB5IHBhcmEgZmluZXMgcHVibGljaXRhcmlvcy4gUGFyYSBzYWJlciBtXFx4ZTFzIHNvYnJlIGNcXHhmM21vIHVzYW1vcyBsYXMgY29va2llcyB5IGxhcyBvcGNpb25lcyBxdWUgdGllbmVzLCBtaXJhIG51ZXN0cmEgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPnBvbFxceGVkdGljYSBkZSBjb29raWVzPC9hPi4gQWwgaGFjZXIgY2xpYyBlbiBcIkFjZXB0YXIgY29va2llc1wiIGEgY29udGludWFjaVxceGYzbiwgYXV0b3JpemFzIGVsIHVzbyBkZSB0b2RhcyBsYXMgY29va2llcywgaW5jbHV5ZW5kbyBsYXMgcXVlIG5vIHNvbiBpbmRpc3BlbnNhYmxlcy4gUHVlZGVzIHJlY2hhemFyIGxhcyBjb29raWVzIG5vIGluZGlzcGVuc2FibGVzIGFsIGhhY2VyIGNsaWMgZW4gbGEgXCJYXCIgZGUgbGEgZGVyZWNoYS4gVmUgYSBcIkFqdXN0ZXMgZGUgY29va2llc1wiIG8gYSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4gcGFyYSBjYW1iaWFyIGxvcyBhanVzdGVzIGRlIGNvb2tpZXMgeSByZXZvY2FyIHR1IGF1dG9yaXphY2lcXHhmM24gZW4gY3VhbHF1aWVyIG1vbWVudG8uJyxDT09LSUVfUE9QVVBfRVU6J1xceGExSG9sYSEgRW4gZXN0ZSBzaXRpbyB1c2Ftb3MgY29va2llcyB5IHRlY25vbG9nXFx4ZWRhcyBzaW1pbGFyZXMgKFwiY29va2llc1wiKSwgaW5jbHV5ZW5kbyBjb29raWVzIGRlIHRlcmNlcm9zLCBwYXJhIG9wZXJhciBudWVzdHJvIHNpdGlvIHkgbWVqb3JhciB0dSBleHBlcmllbmNpYSBkZSBleHBsb3JhY2lcXHhmM24sIHN1cGVydmlzYXIgZWwgcmVuZGltaWVudG8gZGUgbnVlc3RybyBzaXRpbyB5IHBhcmEgZmluZXMgcHVibGljaXRhcmlvcy4gUGFyYSBzYWJlciBtXFx4ZTFzIHNvYnJlIGNcXHhmM21vIHVzYW1vcyBsYXMgY29va2llcyB5IGxhcyBvcGNpb25lcyBxdWUgdGllbmVzLCBtaXJhIG51ZXN0cmEgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPnBvbFxceGVkdGljYSBkZSBjb29raWVzPC9hPi4gQWwgaGFjZXIgY2xpYyBlbiBcIkFjZXB0YXIgY29va2llc1wiIGEgY29udGludWFjaVxceGYzbiwgYXV0b3JpemFzIGVsIHVzbyBkZSB0b2RhcyBsYXMgY29va2llcywgaW5jbHV5ZW5kbyBsYXMgcXVlIG5vIHNvbiBpbmRpc3BlbnNhYmxlcy4gUHVlZGVzIHJlY2hhemFyIGxhcyBjb29raWVzIG5vIGluZGlzcGVuc2FibGVzIGFsIGhhY2VyIGNsaWMgZW4gbGEgXCJYXCIgZGUgbGEgZGVyZWNoYS4gVmUgYSBcIkFqdXN0ZXMgZGUgY29va2llc1wiIG8gYSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4gcGFyYSBjYW1iaWFyIGxvcyBhanVzdGVzIGRlIGNvb2tpZXMgeSByZXZvY2FyIHR1IGF1dG9yaXphY2lcXHhmM24gZW4gY3VhbHF1aWVyIG1vbWVudG8uJyxBZ3JlZVRleHQ6XCJBY2VwdGFyIGNvb2tpZXNcIixTZXR0aW5nc1RleHQ6XCJBanVzdGVzIGRlIGNvb2tpZXNcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlJlcG9ydGFyIHVuYSBpbmZyYWNjaVxceGYzblwiLFNwb3RsaWdodDpcIlNwb3RsaWdodFwifSxlczp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJFbiB2aXZvXCIsQWRzOlwiQW51bmNpb3NcIixDb21wYW55OlwiRW1wcmVzYVwiLEhvbWU6XCJJbmljaW9cIixCbG9nOlwiQmxvZ1wiLEpvYnM6XCJFbXBsZW9zXCIsQ2FyZWVyczpcIkNhcnJlcmFzXCIsUHJlc3M6XCJQcmVuc2FcIixOZXdzOlwiTm90aWNpYXNcIixcIlByZXNzIElucXVpcmllc1wiOlwiQ29uc3VsdGFzIGRlIHByZW5zYVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJJZGlvbWFcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJEZXNjYXJnYXIgU25hcGNoYXRcIixEb3dubG9hZDpcIkRlc2NhcmdhclwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJIaXN0b3JpYXNcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiVGllbmRhXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBwYXJhIGlPU1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IHBhcmEgQW5kcm9pZFwiLENvbW11bml0eTpcIkNvbXVuaWRhZFwiLFN1cHBvcnQ6XCJBeXVkYVwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlBhdXRhcyBwYXJhIGxhIGNvbXVuaWRhZFwiLFwiU2FmZXR5IENlbnRlclwiOlwiQ2VudHJvIGRlIHNlZ3VyaWRhZFwiLFNuYXBjb2RlczpcIlNuYXBjXFx4ZjNkaWdvc1wiLEdlb2ZpbHRlcnM6XCJHZW9maWx0cm9zXCIsQ3JlYXRlOlwiRmlsdHJvcyB5IExlbnRlc1wiLE1hcDpcIk1hcGFcIixBZHZlcnRpc2luZzpcIlB1YmxpY2lkYWRcIixcIkJ1eSBBZHNcIjpcIkNvbXByYXIgYW51bmNpb3NcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJOb3JtYXMgZGUgcHVibGljaWRhZFwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJCaWJsaW90ZWNhIGRlIGFudW5jaW9zIHBvbFxceGVkdGljb3NcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIlBhdXRhcyBkZSBsYSBtYXJjYVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUmVnbGFzIGRlIHByb21vY2lvbmVzXCIsTGVnYWw6XCJMZWdhbFwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiQ29uZGljaW9uZXMgZGUgc2VydmljaW9cIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJQb2xcXHhlZHRpY2EgZGUgcHJpdmFjaWRhZFwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIkNlbnRybyBkZSBwcml2YWNpZGFkXCIsXCJDb29raWUgUG9saWN5XCI6XCJQb2xcXHhlZHRpY2EgZGUgY29va2llc1wiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiQ29uZGljaW9uZXMgZGUgc2VydmljaW8gZGUgUmVjdWVyZG9zXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIkNvbmRpY2lvbmVzIGRlIGhlcnJhbWllbnRhcyBjcmVhdGl2YXMgcGVyc29uYWxpemFkYXNcIixDT01NVU5JVFlfVE9TOlwiQ29uZGljaW9uZXMgZGUgR2VvZmlsdHJvcyBwYXJhIGxhIGNvbXVuaWRhZFwiLExFTlNfU1RVRElPX1RPUzpcIkNvbmRpY2lvbmVzIGRlIExlbnMgU3R1ZGlvXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiVHVzIG9wY2lvbmVzIGRlIHByaXZhY2lkYWRcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJDb29raWVzIG5lY2VzYXJpYXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5Vc2Ftb3MgZXN0YXMgY29va2llczwvYT4gcGFyYSBvcHRpbWl6YXIgZWwgZnVuY2lvbmFtaWVudG8gZGVsIHNpdGlvLiBEYWRvIHF1ZSBzb24gbmVjZXNhcmlhcywgbm8gcHVlZGVzIGRlc2FjdGl2YXJsYXMuJ119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlByZWZlcmVuY2lhc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+VXNhbW9zIGVzdGFzIGNvb2tpZXM8L2E+IHBhcmEgcmVjb3JkYXIgdHVzIHByZWZlcmVuY2lhcyB5IG1lam9yYXIgdHUgZXhwZXJpZW5jaWEgZW4gbnVlc3RybyBzaXRpbyB3ZWIuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlJlbmRpbWllbnRvIHkgYW5cXHhlMWxpc2lzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5Vc2Ftb3MgZXN0YXMgY29va2llczwvYT4gcGFyYSByZWNvcGlsYXIgaW5mb3JtYWNpXFx4ZjNuIHNvYnJlIGNcXHhmM21vIHVzYXMgbnVlc3RybyBzaXRvLCBjb250cm9sYXIgZWwgcmVuZGltaWVudG8gZGVsIHNpdGlvLCB5IG1lam9yYXIgZWwgcmVuZGltaWVudG8gZGUgbnVlc3RybyBzaXRpbyB5IHR1IGV4cGVyaWVuY2lhLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiTWFya2V0aW5nXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+VXNhbW9zIGVzdGFzIGNvb2tpZXM8L2E+IHBhcmEgYnJpbmRhcnRlIHB1YmxpY2lkYWQgcGVydGluZW50ZSB5IG1lZGlyIGxhIGVmaWNhY2lhIGRlIG51ZXN0cmFzIGNhbXBhXFx4ZjFhcyBkZSBhbnVuY2lvcy4gTnVlc3Ryb3Mgc29jaW9zIHB1YmxpY2l0YXJpb3MgZXh0ZXJub3MgcHVlZGVuIHV0aWxpemFyIGVzdGFzIGNvb2tpZXMgcGFyYSBjcmVhciB1biBwZXJmaWwgY29uIHR1cyBpbnRlcmVzZXMgeSBwcm9wb3JjaW9uYXJ0ZSBwdWJsaWNpZGFkIHJlbGV2YW50ZSBlbiBvdHJvcyBzaXRpb3Mgd2ViLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInNvY2lvcyBwdWJsaWNpdGFyaW9zIGV4dGVybm9zXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiU29jaW9zIHB1YmxpY2l0YXJpb3MgZXh0ZXJub3M6XCIsRWZmZWN0aXZlRGF0ZTpcIlZpZ2VudGUgYSBwYXJ0aXIgZGU6IDE1IGRlIGVuZXJvIGRlIDIwMTlcIixCb2R5OltcIkFkZW1cXHhlMXMgZGUgYWRtaW5pc3RyYXIgY29va2llcyBtZWRpYW50ZSB0dSBuYXZlZ2Fkb3IgbyBkaXNwb3NpdGl2bywgcHVlZGVzIGNhbWJpYXIgbG9zIGFqdXN0ZXMgZGUgY29va2llcyBhIGNvbnRpbnVhY2lcXHhmM24uIFRlbiBlbiBjdWVudGEgcXVlIGNpZXJ0YXMgY29va2llcyBzb24gbmVjZXNhcmlhcyBwYXJhIGVsIGZ1bmNpb25hbWllbnRvIGRlIG51ZXN0cm8gc2l0aW8geSBubyBzZSBwdWVkZW4gYmxvcXVlYXIgY29uIGVzdG9zIGFqdXN0ZXMuXCJdLFRpdGxlOlwiQWp1c3RlcyBkZSBjb29raWVzXCIsQ09PS0lFX1BPUFVQOidcXHhhMUhvbGEhIEVuIGVzdGUgc2l0aW8gdXRpbGl6YW1vcyBjb29raWVzIHkgdGVjbm9sb2dcXHhlZGFzIHNpbWlsYXJlcyAoXCJjb29raWVzXCIpLCBpbmNsdWlkYXMgY29va2llcyBkZSB0ZXJjZXJvcywgcGFyYSBvcHRpbWl6YXIgZWwgZnVuY2lvbmFtaWVudG8geSBtZWpvcmFyIHR1IGV4cGVyaWVuY2lhIGRlIG5hdmVnYWNpXFx4ZjNuLCBwYXJhIGNvbnRyb2xhciBlbCByZW5kaW1pZW50byB5IHBhcmEgZmluZXMgcHVibGljaXRhcmlvcy4gUGFyYSBzYWJlciBtXFx4ZTFzIHNvYnJlIGNcXHhmM21vIHVzYW1vcyBsYXMgY29va2llcyB5IHF1XFx4ZTkgb3BjaW9uZXMgdGllbmVzLCBjb25zdWx0YSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Qb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4uIEFsIGhhY2VyIGNsaWMgZW4gXCJBY2VwdGFyIGNvb2tpZXNcIiwgYnJpbmRhcyB0dSBjb25zZW50aW1pZW50byBwYXJhIHF1ZSB1c2Vtb3MgdG9kYXMgbGFzIGNvb2tpZXMsIGluY2x1aWRhcyBsYXMgcXVlIG5vIHNvbiBuZWNlc2FyaWFzLiBQdWVkZXMgcmVjaGF6YXIgdG9kYXMgbGFzIGNvb2tpZXMgaW5uZWNlc2FyaWFzIGhhY2llbmRvIGNsaWMgZW4gbGEgWCBkZSBsYSBkZXJlY2hhLiBQdWVkZXMgbW9kaWZpY2FyIHR1cyBhanVzdGVzIGRlIGNvb2tpZXMgeSByZXRpcmFyIHR1IGNvbnNlbnRpbWllbnRvIGVuIGN1YWxxdWllciBtb21lbnRvLiBQYXJhIGVsbG8sIHZlIGEgQWp1c3RlcyBkZSBjb29raWVzIG8gdmlzaXRhIG51ZXN0cmEgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbFxceGVkdGljYSBkZSBjb29raWVzPC9hPi4nLENPT0tJRV9QT1BVUF9FVTonXFx4YTFIb2xhISBFbiBlc3RlIHNpdGlvIHV0aWxpemFtb3MgY29va2llcyB5IHRlY25vbG9nXFx4ZWRhcyBzaW1pbGFyZXMgKFwiY29va2llc1wiKSwgaW5jbHVpZGFzIGNvb2tpZXMgZGUgdGVyY2Vyb3MsIHBhcmEgb3B0aW1pemFyIGVsIGZ1bmNpb25hbWllbnRvIHkgbWVqb3JhciB0dSBleHBlcmllbmNpYSBkZSBuYXZlZ2FjaVxceGYzbiwgcGFyYSBjb250cm9sYXIgZWwgcmVuZGltaWVudG8geSBwYXJhIGZpbmVzIHB1YmxpY2l0YXJpb3MuIFBhcmEgc2FiZXIgbVxceGUxcyBzb2JyZSBjXFx4ZjNtbyB1c2Ftb3MgbGFzIGNvb2tpZXMgeSBxdVxceGU5IG9wY2lvbmVzIHRpZW5lcywgY29uc3VsdGEgbnVlc3RyYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9sXFx4ZWR0aWNhIGRlIGNvb2tpZXM8L2E+LiBBbCBoYWNlciBjbGljIGVuIFwiQWNlcHRhciBjb29raWVzXCIsIGJyaW5kYXMgdHUgY29uc2VudGltaWVudG8gcGFyYSBxdWUgdXNlbW9zIHRvZGFzIGxhcyBjb29raWVzLCBpbmNsdWlkYXMgbGFzIHF1ZSBubyBzb24gbmVjZXNhcmlhcy4gUHVlZGVzIHJlY2hhemFyIHRvZGFzIGxhcyBjb29raWVzIGlubmVjZXNhcmlhcyBoYWNpZW5kbyBjbGljIGVuIGxhIFggZGUgbGEgZGVyZWNoYS4gUHVlZGVzIG1vZGlmaWNhciB0dXMgYWp1c3RlcyBkZSBjb29raWVzIHkgcmV0aXJhciB0dSBjb25zZW50aW1pZW50byBlbiBjdWFscXVpZXIgbW9tZW50by4gUGFyYSBlbGxvLCB2ZSBhIEFqdXN0ZXMgZGUgY29va2llcyBvIHZpc2l0YSBudWVzdHJhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Qb2xcXHhlZHRpY2EgZGUgY29va2llczwvYT4uJyxBZ3JlZVRleHQ6XCJBY2VwdGFyIGNvb2tpZXNcIixTZXR0aW5nc1RleHQ6XCJBanVzdGVzIGRlIGNvb2tpZXNcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIk5vdGlmaWNhciB1bmEgaW5mcmFjY2lcXHhmM25cIixTcG90bGlnaHQ6XCJTcG90bGlnaHRcIn0sXCJmaS1maVwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIkxpdmVcIixBZHM6XCJNYWlub2tzZXRcIixDb21wYW55OlwiWXJpdHlzXCIsSG9tZTpcIkV0dXNpdnVcIixCbG9nOlwiQmxvZ2lcIixKb2JzOlwiVHlcXHhmNnBhaWthdFwiLENhcmVlcnM6XCJVcmFtYWhkb2xsaXN1dWRldFwiLFByZXNzOlwiTWVkaWFcIixOZXdzOlwiVXV0aXNldFwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJNZWRpYXRpZWR1c3RlbHV0XCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIktpZWxpXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiTGF0YWEgU25hcGNoYXRcIixEb3dubG9hZDpcIkxhdGFhXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIlRhcmluYXRcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiS2F1cHBhXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBpT1M6bGxlXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgQW5kcm9pZGlsbGVcIixDb21tdW5pdHk6XCJZaHRlaXNcXHhmNlwiLFN1cHBvcnQ6XCJUdWtpXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiWWh0ZWlzXFx4ZjZuIHNcXHhlNFxceGU0bm5cXHhmNnRcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlR1cnZha2Vza3VzXCIsU25hcGNvZGVzOlwiU25hcGNvZGUta29vZGl0XCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlci1zdW9kYXR0aW1ldFwiLENyZWF0ZTpcIlN1b2RhdHRpbWV0IGphIHRlaG9zdGVldFwiLE1hcDpcIkthcnR0YVwiLEFkdmVydGlzaW5nOlwiTWFpbm9udGFcIixcIkJ1eSBBZHNcIjpcIk9zdGEgbWFpbm9udGFhXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiTWFpbm9ubmFuIHNcXHhlNFxceGU0bm5cXHhmNnRcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiUG9saWl0dGlzZW4gbWFpbm9ubmFuIGtpcmphc3RvXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJCclxceGU0bmRpb2hqZWV0XCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJLYW1wYW5qb2lkZW4gc1xceGU0XFx4ZTRublxceGY2dFwiLExlZ2FsOlwiSnVyaWRpc2V0IHRpZWRvdFwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiUGFsdmVsdWVoZG90XCIsSW1wcmVzc3VtOlwiSnVsa2Fpc3V0aWVkb3RcIixcIlByaXZhY3kgUG9saWN5XCI6XCJUaWV0b3N1b2phc2Vsb3N0ZVwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlRpZXRvc3VvamFrZXNrdXNcIixcIkNvb2tpZSBQb2xpY3lcIjpcIkV2XFx4ZTRzdGVpZGVuIGtcXHhlNHl0dFxceGY2XCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJTbmFwY2hhdC1NdWlzdG9qZW4gcGFsdmVsdWVoZG90XCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIkx1b3ZpZW4gbXVva2thdXN0eVxceGY2a2FsdWplbiBlaGRvdFwiLENPTU1VTklUWV9UT1M6XCJZaHRlaXNcXHhmNm4gR2VvZmlsdGVyLXN1b2RhdHRpbWllbiBlaGRvdFwiLExFTlNfU1RVRElPX1RPUzpcIkxlbnMgU3R1ZGlvbiBlaGRvdFwiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIllrc2l0eWlzeXl0ZWVuIGxpaXR0eXZcXHhlNHQgdmFsaW50YXNpXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiVlxceGU0bHR0XFx4ZTRtXFx4ZTR0dFxceGY2bVxceGU0dCBldlxceGU0c3RlZXRcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5LXFx4ZTR5dFxceGU0bW1lIGV2XFx4ZTRzdGVpdFxceGU0PC9hPiwgam90dGEgc2l2dXN0byB0b2ltaXNpIGh5dmluLiBOZSBvdmF0IHZcXHhlNGx0dFxceGU0bVxceGU0dHRcXHhmNm1pXFx4ZTQsIGV0a1xceGU0IHNpa3NpIHZvaSBwb2lzdGFhIG5paXRcXHhlNCBrXFx4ZTR5dFxceGY2c3RcXHhlNC4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiVmFsaW5uYXRcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPktcXHhlNHl0XFx4ZTRtbWUgblxceGU0aXRcXHhlNCBldlxceGU0c3RlaXRcXHhlNDwvYT4gdmFsaW50b2plc2kgdGFsbGVudGFtaXNlZW4gamEgc2l2dXN0b2tva2VtdWtzZXNpIHBhcmFudGFtaXNlZW4uJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlRvaW1pbnRhIGphIGFuYWx5dGlpa2thXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5OXFx4ZTRpbGxcXHhlNCBldlxceGU0c3RlaWxsXFx4ZTQ8L2E+IGtlclxceGU0XFx4ZTRtbWUgdGlldG9hIHNpaXRcXHhlNCwgbWl0ZW4ga1xceGU0eXRcXHhlNHQgc2l2dXN0b2FtbWUsIHNldXJhYW1tZSBzaXZ1c3RvbiB0b2ltaW50YWEgamEgcGFyYW5uYW1tZSBzZW4gc3Vvcml0dXNreWt5XFx4ZTQgc2VrXFx4ZTQgc2FtYWxsYSBrXFx4ZTR5dHRcXHhmNmtva2VtdXN0YS4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1hcmtraW5vaW50aVwiLGNvbnRlbnQ6WydLXFx4ZTR5dFxceGU0bW1lIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+blxceGU0aXRcXHhlNCBldlxceGU0c3RlaXRcXHhlNDwvYT4gcmVsZXZhbnRpbiBtYWlub25uYW4gblxceGU0eXR0XFx4ZTRtaXNlZW4gamEgbWFpbm9za2FtcGFuam9pZGVuIHRlaG9ra3V1ZGVuIG1pdHRhYW1pc2Vlbi4gS29sbWFubmVuIG9zYXB1b2xlbiBtYWlub3NrdW1wcGFuaW1tZSB2b2l2YXQga1xceGU0eXR0XFx4ZTRcXHhlNCBuXFx4ZTRpdFxceGU0IGV2XFx4ZTRzdGVpdFxceGU0IG11b2Rvc3RhYWtzZWVuIHByb2ZpaWxpbiBtaWVsZW5raWlubm9uIGtvaHRlaXN0YXNpIGphIHRhcmpvdGFrc2VlbiBzaW51bGxlIHJlbGV2YW50dGVqYSBtYWlub2tzaWEgbXVpbGxhIHNpdnVzdG9pbGxhLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIktvbG1hbm5lbiBvc2FwdW9sZW4gbWFpbm9za3VtcHBhbmltbWVcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJLb2xtYW5uZW4gb3NhcHVvbGVuIG1haW5vc2t1bXBwYW5pbW1lOlwiLEVmZmVjdGl2ZURhdGU6XCJWb2ltYXNzYSBhbGthZW46IDE1LiB0YW1taWt1dXRhLCAyMDE5XCIsQm9keTpbXCJWb2l0IGhhbGxpdGEgZXZcXHhlNHN0ZWl0XFx4ZTQgbGFpdHRlZXNzYXNpIHRhaSBzZWxhaW1lc3Nhc2kuIFNlbiBsaXNcXHhlNGtzaSB2b2l0IG11dXR0YWEgZXZcXHhlNHN0ZWFzZXR1a3NpYSBhbGxhLiBIdW9tYWEsIGV0dFxceGU0IHRpZXR5dCBldlxceGU0c3RlZXQgb3ZhdCB2XFx4ZTRsdHRcXHhlNG1cXHhlNHR0XFx4ZjZtaVxceGU0IHNpdnVzdG9uIHRvaW1pbm5hbiBrYW5uYWx0YSwgZWlrXFx4ZTQgbmlpdFxceGU0IHZvaSBlc3RcXHhlNFxceGU0IG5cXHhlNGlsbFxceGU0IGFzZXR1a3NpbGxhLlwiXSxUaXRsZTpcIkV2XFx4ZTRzdGVhc2V0dWtzZXRcIixDT09LSUVfUE9QVVA6J0hlaSEgS1xceGU0eXRcXHhlNG1tZSB0XFx4ZTRsbFxceGU0IHZlcmtrb3NpdnVzdG9sbGEgZXZcXHhlNHN0ZWl0XFx4ZTQgamEgdmFzdGFhdmlhIHRla25vbG9naW9pdGEgKHloZGVzc1xceGU0IFxcdTIwMWRldlxceGU0c3RlZXRcXHUyMDFkKSwgbXVrYWFuIGx1a2llbiBrb2xtYW5uZW4gb3NhcHVvbGVuIGV2XFx4ZTRzdGVpdFxceGU0LiBOZSBhdXR0YXZhdCBzaXZ1c3RvbW1lIHRvaW1pbm5hc3NhIGphIGtcXHhlNHl0dFxceGY2a29rZW11a3NlbiBwYXJhbnRhbWlzZXNzYSwgc2l2dXN0b24gdG9pbWlubmFuIHNldXJhYW1pc2Vzc2Egc2VrXFx4ZTQgbWFpbm9ubmFzc2EuIExpc1xceGU0dGlldG9qYSBldlxceGU0c3RlaWRlbiBrXFx4ZTR5dFxceGY2c3RcXHhlNCBqYSBuaWloaW4gbGlpdHR5dmlzdFxceGU0IHZhbGlubm9pc3Rhc2kgb24gPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPmV2XFx4ZTRzdGVzaXZ1bGxhbW1lPC9hPi4gS3VuIG5hcHNhdXRhdCBhbGxhIEh5dlxceGU0a3N5IGV2XFx4ZTRzdGVldCwgYW5uYXQgc3Vvc3R1bXVrc2VzaSBrYWlra2llbiBldlxceGU0c3RlaWRlbiBrXFx4ZTR5dHRcXHhmNlxceGY2biwgbXVrYWFuIGx1a2llbiBtdXV0IGt1aW4gdlxceGU0bHR0XFx4ZTRtXFx4ZTR0dFxceGY2bVxceGU0dCBldlxceGU0c3RlZXQuICBWb2l0IGtpZWx0XFx4ZTR5dHlcXHhlNCBtdWlzdGEga3VpbiB2XFx4ZTRsdHRcXHhlNG1cXHhlNHR0XFx4ZjZtaXN0XFx4ZTQgZXZcXHhlNHN0ZWlzdFxceGU0IG5hcHNhdXR0YW1hbGxhIG9pa2VhbGxhIFgta3V2YWtldHRhLiBWb2l0IHBcXHhlNGl2aXR0XFx4ZTRcXHhlNCBldlxceGU0c3RlYXNldHVrc2V0IHRhaSBwZXJ1YSBzdW9zdHVtdWtzZXNpIGtvc2thIHZhaW4gbmFwc2F1dHRhbWFsbGEgYWxsYSBFdlxceGU0c3RlYXNldHVrc2V0IHRhaSBzaWlydHltXFx4ZTRsbFxceGU0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5ldlxceGU0c3Rlc2l2dWxsZTwvYT4uJyxDT09LSUVfUE9QVVBfRVU6J0hlaSEgS1xceGU0eXRcXHhlNG1tZSB0XFx4ZTRsbFxceGU0IHZlcmtrb3NpdnVzdG9sbGEgZXZcXHhlNHN0ZWl0XFx4ZTQgamEgdmFzdGFhdmlhIHRla25vbG9naW9pdGEgKHloZGVzc1xceGU0IFxcdTIwMWRldlxceGU0c3RlZXRcXHUyMDFkKSwgbXVrYWFuIGx1a2llbiBrb2xtYW5uZW4gb3NhcHVvbGVuIGV2XFx4ZTRzdGVpdFxceGU0LiBOZSBhdXR0YXZhdCBzaXZ1c3RvbW1lIHRvaW1pbm5hc3NhIGphIGtcXHhlNHl0dFxceGY2a29rZW11a3NlbiBwYXJhbnRhbWlzZXNzYSwgc2l2dXN0b24gdG9pbWlubmFuIHNldXJhYW1pc2Vzc2Egc2VrXFx4ZTQgbWFpbm9ubmFzc2EuIExpc1xceGU0dGlldG9qYSBldlxceGU0c3RlaWRlbiBrXFx4ZTR5dFxceGY2c3RcXHhlNCBqYSBuaWloaW4gbGlpdHR5dmlzdFxceGU0IHZhbGlubm9pc3Rhc2kgb24gPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPmV2XFx4ZTRzdGVzaXZ1bGxhbW1lPC9hPi4gS3VuIG5hcHNhdXRhdCBhbGxhIEh5dlxceGU0a3N5IGV2XFx4ZTRzdGVldCwgYW5uYXQgc3Vvc3R1bXVrc2VzaSBrYWlra2llbiBldlxceGU0c3RlaWRlbiBrXFx4ZTR5dHRcXHhmNlxceGY2biwgbXVrYWFuIGx1a2llbiBtdXV0IGt1aW4gdlxceGU0bHR0XFx4ZTRtXFx4ZTR0dFxceGY2bVxceGU0dCBldlxceGU0c3RlZXQuIFZvaXQga2llbHRcXHhlNHl0eVxceGU0IG11aXN0YSBrdWluIHZcXHhlNGx0dFxceGU0bVxceGU0dHRcXHhmNm1pc3RcXHhlNCBldlxceGU0c3RlaXN0XFx4ZTQgbmFwc2F1dHRhbWFsbGEgb2lrZWFsbGEgWC1rdXZha2V0dGEuIFZvaXQgcFxceGU0aXZpdHRcXHhlNFxceGU0IGV2XFx4ZTRzdGVhc2V0dWtzZXQgdGFpIHBlcnVhIHN1b3N0dW11a3Nlc2kga29za2EgdmFpbiBuYXBzYXV0dGFtYWxsYSBhbGxhIEV2XFx4ZTRzdGVhc2V0dWtzZXQgdGFpIHNpaXJ0eW1cXHhlNGxsXFx4ZTQgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPmV2XFx4ZTRzdGVzaXZ1bGxlPC9hPi4nLEFncmVlVGV4dDpcIkh5dlxceGU0a3N5IGV2XFx4ZTRzdGVldFwiLFNldHRpbmdzVGV4dDpcIkV2XFx4ZTRzdGVhc2V0dWtzZXRcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIklsbW9pdGEgcmlra29tdWtzZXN0YVwiLFNwb3RsaWdodDpcIlZhbG9rZWlsYVwifSxcImZpbC1waFwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIkxpdmVcIixBZHM6XCJBZHNcIixDb21wYW55OlwiQ29tcGFueVwiLEhvbWU6XCJIb21lXCIsQmxvZzpcIkJsb2dcIixKb2JzOlwiTWdhIFRyYWJhaG9cIixDYXJlZXJzOlwiQ2FyZWVyc1wiLFByZXNzOlwiUHJlc3NcIixOZXdzOlwiQmFsaXRhXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlByZXNzIElucXVpcmllc1wiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJXaWthXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiSS1kb3dubG9hZCBhbmcgU25hcGNoYXRcIixEb3dubG9hZDpcIkktZG93bmxvYWRcIixLaXQ6XCJLaXRcIixTdG9yaWVzOlwiU3Rvcmllc1wiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJTdG9yZVwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgcGFyYSBzYSBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBwYXJhIHNhIEFuZHJvaWRcIixDb21tdW5pdHk6XCJDb21tdW5pdHlcIixTdXBwb3J0OlwiU3VwcG9ydFwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIkNvbW11bml0eSBHdWlkZWxpbmVzXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJTYWZldHkgQ2VudGVyXCIsU25hcGNvZGVzOlwiU25hcGNvZGVzXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlcnNcIixDcmVhdGU6XCJGaWx0ZXJzICYgTGVuc2VzXCIsTWFwOlwiTWFwXCIsQWR2ZXJ0aXNpbmc6XCJBZHZlcnRpc2luZ1wiLFwiQnV5IEFkc1wiOlwiQnVtaWxpIG5nIEFkc1wiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIkFkdmVydGlzaW5nIFBvbGljaWVzXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiQnJhbmQgR3VpZGVsaW5lc1wiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUnVsZXMgbmcgUHJvbW90aW9uc1wiLExlZ2FsOlwiTGVnYWxcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlRlcm1zIG9mIFNlcnZpY2VcIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJQcml2YWN5IFBvbGljeVwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlByaXZhY3kgQ2VudGVyXCIsXCJDb29raWUgUG9saWN5XCI6XCJDb29raWUgUG9saWN5XCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIkN1c3RvbSBDcmVhdGl2ZSBUb29scyBUZXJtc1wiLENPTU1VTklUWV9UT1M6XCJDb21tdW5pdHkgR2VvZmlsdGVyIFRlcm1zXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gVGVybXNcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJBbmcgSXlvbmcgTWdhIFBhZ3BpcGlsaWFuIHNhIFByaXZhY3lcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJLYWlsYW5nYW5nIGNvb2tpZXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5HaW5hZ2FtaXQgbmFtaW4gYW5nIGNvb2tpZXMgbmEgXFwndG88L2E+IHBhcmEgbWFrYXR1bG9uZyBuYSBwYWdhbmFoaW4gYW5nIHNpdGUuIERhaGlsIGthaWxhbmdhbiBhbmcgY29va2llcyBuYSBcXCd0bywgaGluZGkgbW8gbWFvLW9mZiBhbmcgbWdhIFxcJ3lvbi4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiUHJlZmVyZW5jZXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPkdpbmFnYW1pdCBuYW1pbiBhbmcgY29va2llcyBuYSBcXCd0bzwvYT4gcGFyYSB0YW5kYWFuIGFuZyBwcmVmZXJlbmNlcyBtbyBhdCBtYXMgcGFnYW5kYWhpbiBhbmcgZXhwZXJpZW5jZSBtbyBzYSBhbWluZyB3ZWJzaXRlLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJQZXJmb3JtYW5jZSAmIEFuYWx5dGljc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+R2luYWdhbWl0IG5hbWluIGFuZyBjb29raWVzIG5hIFxcJ3RvPC9hPiBwYXJhIG1hbmdvbGVrdGEgbmcgaW1wb3JtYXN5b24ga3VuZyBwYWFubyBtbyBnaW5hZ2FtaXQgYW5nIGFtaW5nIHNpdGUsIGktbW9uaXRvciBhbmcgcGVyZm9ybWFuY2Ugbmcgc2l0ZSwgYXQgcGFnYW5kYWhpbiBhbmcgcGVyZm9ybWFuY2Ugbmcgc2l0ZSBhdCBhbmcgZXhwZXJpZW5jZSBtby4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1hcmtldGluZ1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPkdpbmFnYW1pdCBuYW1pbiBhbmcgY29va2llcyBuYSBcXCd0bzwvYT4gcGFyYSBtYWdiaWdheSBuZyBhZHZlcnRpc2luZyBuYSBtYXkga2F1Z25heWFuIHNhIFxcJ3lvIGF0IHN1a2F0aW4gYW5nIHBhZ2lnaW5nIGVwZWt0aWJvIG5nIGFtaW5nIGFkdmVydGlzaW5nIGNhbXBhaWducy4gQW5nIHRoaXJkLXBhcnR5IGFkdmVydGlzaW5nIHBhcnRuZXJzIG5hbWluIGF5IHB3ZWRlbmcgZ3VtYW1pdCBuZyBjb29raWVzIG5hIGl0byBwYXJhIGJ1bXVvIG5nIHByb2ZpbGUgbmcgaXlvbmcgbWdhIGludGVyZXMgYXQgbWFnaGF0aWQgbmcgbWF5IGthdWduYXlhbmcgYWR2ZXJ0aXNpbmcgc2EgaWJhbmcgbWdhIHNpdGUuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwidGhpcmQtcGFydHkgYWR2ZXJ0aXNpbmcgcGFydG5lcnNcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJNZ2EgdGhpcmQtcGFydHkgbmEgYWR2ZXJ0aXNpbmcgcGFydG5lcjpcIixFZmZlY3RpdmVEYXRlOlwiRWZmZWN0aXZlOiBFbmVybyAxNSwgMjAxOVwiLEJvZHk6W1wiRGFnZGFnIHBhIHNhIHBhZy1tYW5hZ2UgbmcgY29va2llcyBzYSBwYW1hbWFnaXRhbiBuZyBpeW9uZyBicm93c2VyIG8gZGV2aWNlLCBwd2VkZSBtb25nIHBhbGl0YW4gYW5nIGNvb2tpZSBzZXR0aW5ncyBtbyBzYSBiYWJhLiBQYWFsYWxhIGxhbmcgbmEgbWF5IGlsYW5nIGNvb2tpZXMgbmEga2luYWthaWxhbmdhbiBwYXJhIHBhdGFrYnVoaW4gYW5nIGFtaW5nIHNpdGUgYXQgJ2RpIHB3ZWRlbmcgaS1ibG9jayBnYW1pdCBhbmcgc2V0dGluZ3MgbmEgJ3RvLlwiXSxUaXRsZTpcIkNvb2tpZSBTZXR0aW5nc1wiLENPT0tJRV9QT1BVUDonSGkhIEd1bWFnYW1pdCBrYW1pIG5nIGNvb2tpZXMgYXQga2F0dWxhZCBuYSB0ZWNobm9sb2dpZXMgKFxcdTIwMWNjb29raWVzXFx1MjAxZCksIGthc2FtYSBhbmcgdGhpcmQtcGFydHkgY29va2llcywgc2Egd2Vic2l0ZSBuYSBpdG8gcGFyYSBtYWthdHVsb25nIG5hIHBhZ2FuYWhpbiBhdCBwYWdhbmRhaGluIGFuZyB4cGVyaWVuY2UgbW8gc2EgcGFnYmEtYnJvd3NlLCBpLW1vbml0b3IgYW5nIHBlcmZvcm1hbmNlLCBhdCBwYXJhIHNhIGFkdmVydGlzaW5nIHB1cnBvc2VzLiBQYXJhIHNhIGthcmFnZGFnYW5nIGltcG9ybWFzeW9uIGt1bmcgcGFhbm8gbmFtaW4gZ2luYWdhbWl0IGFuZyBjb29raWVzIGF0IGFuZyBtZ2EgZGVzaXN5b24gbW8gbmEga2F1Z25heSBuZyBjb29raWVzLCB0aW5nbmFuIGFuZyBhbWluZyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFBvbGljeTwvYT4hIFNhIHBhZy1jbGljayBzYSBcXHUyMDFjSS1hY2NlcHQgYW5nIENvb2tpZXNcXHUyMDFkIHNhIGliYWJhLCBiaW5pYmlneWFuIG1vIGthbWkgbmcgcGFoaW50dWxvdCBuYSBnYW1pdGluIGFuZyBsYWhhdCBuZyBjb29raWVzLCBrYXNhbWEgYW5nIG1nYSBub24tZXNzZW50aWFsIG5hIGNvb2tpZXMuIFB1d2VkZSBtb25nIHRhbmdnaWhhbiBhbmcgbGFoYXQgbmcgbm9uLWVzc2VudGlhbCBuYSBjb29raWVzIHNhIHBhbWFtYWdpdGFuIG5nIHBhZy1jbGljayBzYSBcXHUyMDFjWFxcdTIwMWQgc2Ega2FuYW4gcmlnaHQuIFB1bXVudGEgc2EgXFx1MjAxY0Nvb2tpZSBTZXR0aW5nc1xcdTIwMWQgbyBhbWluZyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFBvbGljeTwvYT4gcGFyYSBiYWd1aGluIGFuZyBzZXR0aW5ncyBuZyBpeW9uZyBjb29raWUsIGF0IGJhd2lpbiBhbmcgcGFoaW50dWxvdCBtbyBhbnVtYW5nIG9yYXMuJyxDT09LSUVfUE9QVVBfRVU6J0hpISBHdW1hZ2FtaXQga2FtaSBuZyBjb29raWVzIGF0IGthdHVsYWQgbmEgdGVjaG5vbG9naWVzIChcXHUyMDFjY29va2llc1xcdTIwMWQpLCBrYXNhbWEgYW5nIHRoaXJkLXBhcnR5IGNvb2tpZXMsIHNhIHdlYnNpdGUgbmEgaXRvIHBhcmEgbWFrYXR1bG9uZyBuYSBwYWdhbmFoaW4gYXQgcGFnYW5kYWhpbiBhbmcgeHBlcmllbmNlIG1vIHNhIHBhZ2JhLWJyb3dzZSwgaS1tb25pdG9yIGFuZyBwZXJmb3JtYW5jZSwgYXQgcGFyYSBzYSBhZHZlcnRpc2luZyBwdXJwb3Nlcy4gUGFyYSBzYSBrYXJhZ2RhZ2FuZyBpbXBvcm1hc3lvbiBrdW5nIHBhYW5vIG5hbWluIGdpbmFnYW1pdCBhbmcgY29va2llcyBhdCBhbmcgbWdhIGRlc2lzeW9uIG1vIG5hIGthdWduYXkgbmcgY29va2llcywgdGluZ25hbiBhbmcgYW1pbmcgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBQb2xpY3k8L2E+ISBTYSBwYWctY2xpY2sgc2EgXFx1MjAxY0ktYWNjZXB0IGFuZyBDb29raWVzXFx1MjAxZCBzYSBpYmFiYSwgYmluaWJpZ3lhbiBtbyBrYW1pIG5nIHBhaGludHVsb3QgbmEgZ2FtaXRpbiBhbmcgbGFoYXQgbmcgY29va2llcywga2FzYW1hIGFuZyBtZ2Egbm9uLWVzc2VudGlhbCBuYSBjb29raWVzLiBQdXdlZGUgbW9uZyB0YW5nZ2loYW4gYW5nIGxhaGF0IG5nIG5vbi1lc3NlbnRpYWwgbmEgY29va2llcyBzYSBwYW1hbWFnaXRhbiBuZyBwYWctY2xpY2sgc2EgXFx1MjAxY1hcXHUyMDFkIHNhIGthbmFuIHJpZ2h0LiBQdW11bnRhIHNhIFxcdTIwMWNDb29raWUgU2V0dGluZ3NcXHUyMDFkIG8gYW1pbmcgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBQb2xpY3k8L2E+IHBhcmEgYmFndWhpbiBhbmcgc2V0dGluZ3MgbmcgaXlvbmcgY29va2llLCBhdCBiYXdpaW4gYW5nIHBhaGludHVsb3QgbW8gYW51bWFuZyBvcmFzLicsQWdyZWVUZXh0OlwiSS1hY2NlcHQgYW5nIENvb2tpZXNcIixTZXR0aW5nc1RleHQ6XCJDb29raWUgU2V0dGluZ3NcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIk1hZy1yZXBvcnQgbmcgUGFnbGFiYWdcIixTcG90bGlnaHQ6XCJTcG90bGlnaHRcIn0sXCJmci1mclwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIkVuIGRpcmVjdFwiLEFkczpcIkZvcm1hdHMgcHVibGljaXRhaXJlc1wiLENvbXBhbnk6XCJTb2NpXFx4ZTl0XFx4ZTlcIixIb21lOlwiQWNjdWVpbFwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIkVtcGxvaXNcIixDYXJlZXJzOlwiQ2FycmlcXHhlOHJlc1wiLFByZXNzOlwiUHJlc3NlXCIsTmV3czpcIkFjdHVhbGl0XFx4ZTlzXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIkNvbnRhY3QgUHJlc3NlXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIkxhbmd1ZVwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlRcXHhlOWxcXHhlOWNoYXJnZXIgU25hcGNoYXRcIixEb3dubG9hZDpcIlRcXHhlOWxcXHhlOWNoYXJnZXJcIixLaXQ6XCJLaXRcIixTdG9yaWVzOlwiU3Rvcmllc1wiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJTdG9yZVwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgcG91ciBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBwb3VyIEFuZHJvaWRcIixDb21tdW5pdHk6XCJDb21tdW5hdXRcXHhlOVwiLFN1cHBvcnQ6XCJBc3Npc3RhbmNlXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiUlxceGU4Z2xlcyBjb21tdW5hdXRhaXJlc1wiLFwiU2FmZXR5IENlbnRlclwiOlwiQ2VudHJlIGRlIHNcXHhlOWN1cml0XFx4ZTlcIixTbmFwY29kZXM6XCJTbmFwY29kZXNcIixHZW9maWx0ZXJzOlwiR2VvZmlsdGVyc1wiLENyZWF0ZTpcIkZpbHRyZXMgZXQgTGVuc2VzXCIsTWFwOlwiQ2FydGVcIixBZHZlcnRpc2luZzpcIlB1YmxpY2l0XFx4ZTlcIixcIkJ1eSBBZHNcIjpcIkFjaGV0ZXIgZGVzIHB1YmxpY2l0XFx4ZTlzXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiUG9saXRpcXVlcyByZWxhdGl2ZXMgXFx4ZTAgbGEgcHVibGljaXRcXHhlOVwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJCaWJsaW90aFxceGU4cXVlIGRlcyBwdWJsaWNpdFxceGU5cyBwb2xpdGlxdWVzXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJDaGFydGUgZGUgbGEgbWFycXVlXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJSXFx4ZThnbGVzIGFwcGxpY2FibGVzIGF1eCBwcm9tb3Rpb25zXCIsTGVnYWw6XCJKdXJpZGlxdWVcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpdGlvbnMgZCd1dGlsaXNhdGlvbiBkdSBzZXJ2aWNlXCIsSW1wcmVzc3VtOlwiSW1wcmVzc3VtXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiUG9saXRpcXVlIGRlIGNvbmZpZGVudGlhbGl0XFx4ZTlcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJDZW50cmUgZGUgY29uZmlkZW50aWFsaXRcXHhlOVwiLFwiQ29va2llIFBvbGljeVwiOlwiUG9saXRpcXVlIHJlbGF0aXZlIGF1eCBjb29raWVzXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJDb25kaXRpb25zIGQndXRpbGlzYXRpb24gZGVzIFNvdXZlbmlyc1wiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJDb25kaXRpb25zIGQndXRpbGlzYXRpb24gZGVzIG91dGlscyBjclxceGU5YXRpZnMgcGVyc29ubmFsaXNcXHhlOXNcIixDT01NVU5JVFlfVE9TOlwiQ29uZGl0aW9ucyBnXFx4ZTluXFx4ZTlyYWxlcyBkZXMgR2VvZmlsdGVycyBjb21tdW5hdXRhaXJlc1wiLExFTlNfU1RVRElPX1RPUzpcIkNvbmRpdGlvbnMgZCd1dGlsaXNhdGlvbiBkZSBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlZvcyBjaG9peCBkZSBjb25maWRlbnRpYWxpdFxceGU5XCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llcyBpbmRpc3BlbnNhYmxlc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPk5vdXMgdXRpbGlzb25zIGNlcyBjb29raWVzPC9hPiBwb3VyIGZhaXJlIGZvbmN0aW9ubmVyIGxlIHNpdGUuIFxceGM5dGFudCBkb25uXFx4ZTkgcXVlIGNlcyBjb29raWVzIHNvbnQgaW5kaXNwZW5zYWJsZXMsIHZvdXMgbmUgcG91dmV6IHBhcyBsZXMgZFxceGU5c2FjdGl2ZXIuJ119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlByXFx4ZTlmXFx4ZTlyZW5jZXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPk5vdXMgdXRpbGlzb25zIGNlcyBjb29raWVzPC9hPiBwb3VyIGVucmVnaXN0cmVyIHZvcyBwclxceGU5ZlxceGU5cmVuY2VzIGV0IGFtXFx4ZTlsaW9yZXIgdm90cmUgZXhwXFx4ZTlyaWVuY2Ugc3VyIG5vdHJlIHNpdGUuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlBlcmZvcm1hbmNlcyBldCBhbmFseXNlXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5Ob3VzIHV0aWxpc29ucyBjZXMgY29va2llczwvYT4gcG91ciBjb2xsZWN0ZXIgZGVzIGluZm9ybWF0aW9ucyBzdXIgbGEgbWFuaVxceGU4cmUgZG9udCB2b3VzIHV0aWxpc2V6IG5vdHJlIHNpdGUsIFxceGU5dmFsdWVyIGxlcyBwZXJmb3JtYW5jZXMgZGUgbm90cmUgc2l0ZSwgbWFpcyBhdXNzaSBhbVxceGU5bGlvcmVyIGxlcyBwZXJmb3JtYW5jZXMgZGUgbm90cmUgc2l0ZSBldCB2b3RyZSBleHBcXHhlOXJpZW5jZS4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1hcmtldGluZ1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPk5vdXMgdXRpbGlzb25zIGNlcyBjb29raWVzPC9hPiBwb3VyIGRpZmZ1c2VyIGRlcyBwdWJsaWNpdFxceGU5cyBwZXJ0aW5lbnRlcyBldCBtZXN1cmVyIGxcXCdlZmZpY2FjaXRcXHhlOSBkZSBub3MgY2FtcGFnbmVzIHB1YmxpY2l0YWlyZXMuIE5vcyBwYXJ0ZW5haXJlcyBhbm5vbmNldXJzIHRpZXJzIHBldXZlbnQgdXRpbGlzZXIgY2VzIGNvb2tpZXMgcG91ciBcXHhlOXRhYmxpciB1biBwcm9maWwgZGUgdm9zIGNlbnRyZXMgZFxcJ2ludFxceGU5clxceGVhdHMgZXQgdm91cyBwclxceGU5c2VudGVyIGRlcyBwdWJsaWNpdFxceGU5cyBwZXJ0aW5lbnRlcyBzdXIgZFxcJ2F1dHJlcyBzaXRlcy4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJwYXJ0ZW5haXJlcyBhbm5vbmNldXJzIHRpZXJzXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiUGFydGVuYWlyZXMgYW5ub25jZXVycyB0aWVyc1xceGEwOlwiLEVmZmVjdGl2ZURhdGU6XCJEYXRlIGQnZWZmZXRcXHhhMDogMTVcXHhhMGphbnZpZXIgMjAxOVwiLEJvZHk6W1wiRW4gcGx1cyBkZSBnXFx4ZTlyZXIgbGVzIGNvb2tpZXMgdmlhIHZvdHJlIG5hdmlnYXRldXIgb3Ugdm90cmUgYXBwYXJlaWwsIHZvdXMgcG91dmV6IG1vZGlmaWVyIHZvcyBwYXJhbVxceGU4dHJlcyBkZSBjb29raWVzIGNpLWRlc3NvdXMuIFZldWlsbGV6IG5vdGVyIHF1ZSBjZXJ0YWlucyBjb29raWVzIHNvbnQgblxceGU5Y2Vzc2FpcmVzIGF1IGZvbmN0aW9ubmVtZW50IGRlIG5vdHJlIHNpdGUgZXQgbmUgcGV1dmVudCBwYXMgXFx4ZWF0cmUgYmxvcXVcXHhlOXMgXFx4ZTAgbCdhaWRlIGRlIGNlcyBwYXJhbVxceGU4dHJlcy5cIl0sVGl0bGU6XCJSXFx4ZTlnbGFnZXMgZGVzIGNvb2tpZXNcIixDT09LSUVfUE9QVVA6J0JvbmpvdXImbmJzcDshIE5vdXMgdXRpbGlzb25zIGRlcyBjb29raWVzIGV0IGRlcyB0ZWNobm9sb2dpZXMgc2ltaWxhaXJlcyAoXCJjb29raWVzXCIpLCB5IGNvbXByaXMgZGVzIGNvb2tpZXMgdGllcnMsIHN1ciBjZSBzaXRlIHdlYiBhZmluIGRlIGxlIGZhaXJlIGZvbmN0aW9ubmVyIGV0IGRcXCdlbiBzdXJ2ZWlsbGVyIGxlcyBwZXJmb3JtYW5jZXMsIGRcXCdhbVxceGU5bGlvcmVyIHZvdHJlIGV4cFxceGU5cmllbmNlIGRlIG5hdmlnYXRpb24gZXQgXFx4ZTAgZGVzIGZpbnMgcHVibGljaXRhaXJlcy4gUG91ciBlbiBzYXZvaXIgcGx1cyBzdXIgbm90cmUgdXRpbGlzYXRpb24gZGVzIGNvb2tpZXMgZXQgbGVzIGNob2l4IHF1aSBzXFwnb2ZmcmVudCBcXHhlMCB2b3VzIFxceGUwIGNlIHN1amV0LCBjb25zdWx0ZXogbm90cmUgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPnBvbGl0aXF1ZSByZWxhdGl2ZSBhdXggY29va2llczwvYT4mbmJzcDshIEVuIGNsaXF1YW50IHN1ciBcIkFjY2VwdGVyIGxlcyBjb29raWVzXCIgY2ktZGVzc291cywgdm91cyBub3VzIGF1dG9yaXNleiBcXHhlMCB1dGlsaXNlciB0b3VzIGxlcyBjb29raWVzLCB5IGNvbXByaXMgbGVzIGNvb2tpZXMgbm9uIGVzc2VudGllbHMuIFZvdXMgcG91dmV6IHJlZnVzZXIgdG91cyBsZXMgY29va2llcyBub24gZXNzZW50aWVscyBlbiBjbGlxdWFudCBzdXIgbGUgXCJYXCIgXFx4ZTAgZHJvaXRlLiBWb3VzIHBvdXZleiBtb2RpZmllciB2b3MgclxceGU5Z2xhZ2VzIGRlIGNvb2tpZXMgZXQgdm91cyBvcHBvc2VyIFxceGUwIHRvdXQgbW9tZW50IFxceGUwIGxldXIgdXRpbGlzYXRpb24gZW4gY2xpcXVhbnQgc3VyIFwiUlxceGU5Z2xhZ2VzIGRlcyBjb29raWVzXCIgY2ktZGVzc291cyBvdSBlbiBjb25zdWx0YW50IG5vdHJlIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xpdGlxdWUgcmVsYXRpdmUgYXV4IGNvb2tpZXM8L2E+LicsQ09PS0lFX1BPUFVQX0VVOidCb25qb3VyJm5ic3A7ISBOb3VzIHV0aWxpc29ucyBkZXMgY29va2llcyBldCBkZXMgdGVjaG5vbG9naWVzIHNpbWlsYWlyZXMgKFwiY29va2llc1wiKSwgeSBjb21wcmlzIGRlcyBjb29raWVzIHRpZXJzLCBzdXIgY2Ugc2l0ZSB3ZWIgYWZpbiBkZSBsZSBmYWlyZSBmb25jdGlvbm5lciBldCBkXFwnZW4gc3VydmVpbGxlciBsZXMgcGVyZm9ybWFuY2VzLCBkXFwnYW1cXHhlOWxpb3JlciB2b3RyZSBleHBcXHhlOXJpZW5jZSBkZSBuYXZpZ2F0aW9uIGV0IFxceGUwIGRlcyBmaW5zIHB1YmxpY2l0YWlyZXMuIFBvdXIgZW4gc2F2b2lyIHBsdXMgc3VyIG5vdHJlIHV0aWxpc2F0aW9uIGRlcyBjb29raWVzIGV0IGxlcyBjaG9peCBxdWkgc1xcJ29mZnJlbnQgXFx4ZTAgdm91cyBcXHhlMCBjZSBzdWpldCwgY29uc3VsdGV6IG5vdHJlIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5wb2xpdGlxdWUgcmVsYXRpdmUgYXV4IGNvb2tpZXM8L2E+Jm5ic3A7ISBFbiBjbGlxdWFudCBzdXIgXCJBY2NlcHRlciBsZXMgY29va2llc1wiIGNpLWRlc3NvdXMsIHZvdXMgbm91cyBhdXRvcmlzZXogXFx4ZTAgdXRpbGlzZXIgdG91cyBsZXMgY29va2llcywgeSBjb21wcmlzIGxlcyBjb29raWVzIG5vbiBlc3NlbnRpZWxzLiBWb3VzIHBvdXZleiByZWZ1c2VyIHRvdXMgbGVzIGNvb2tpZXMgbm9uIGVzc2VudGllbHMgZW4gY2xpcXVhbnQgc3VyIGxlIFwiWFwiIFxceGUwIGRyb2l0ZS4gVm91cyBwb3V2ZXogbW9kaWZpZXIgdm9zIHJcXHhlOWdsYWdlcyBkZSBjb29raWVzIGV0IHZvdXMgb3Bwb3NlciBcXHhlMCB0b3V0IG1vbWVudCBcXHhlMCBsZXVyIHV0aWxpc2F0aW9uIGVuIGNsaXF1YW50IHN1ciBcIlJcXHhlOWdsYWdlcyBkZXMgY29va2llc1wiIGNpLWRlc3NvdXMgb3UgZW4gY29uc3VsdGFudCBub3RyZSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+cG9saXRpcXVlIHJlbGF0aXZlIGF1eCBjb29raWVzPC9hPi4nLEFncmVlVGV4dDpcIkFjY2VwdGVyIGxlcyBjb29raWVzXCIsU2V0dGluZ3NUZXh0OlwiUlxceGU5Z2xhZ2VzIGRlcyBjb29raWVzXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJTaWduYWxlciB1bmUgdmlvbGF0aW9uXCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwiZ3UtaW5cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHUwYWIyXFx1MGFiZVxcdTBhODdcXHUwYWI1XCIsQWRzOlwiXFx1MGE5Y1xcdTBhYmVcXHUwYWI5XFx1MGFjN1xcdTBhYjBcXHUwYWJlXFx1MGFhNFwiLENvbXBhbnk6XCJcXHUwYTk1XFx1MGE4MlxcdTBhYWFcXHUwYWE4XFx1MGFjMFwiLEhvbWU6XCJcXHUwYWI5XFx1MGFjYlxcdTBhYWVcIixCbG9nOlwiXFx1MGFhY1xcdTBhY2RcXHUwYWIyXFx1MGFjOVxcdTBhOTdcIixKb2JzOlwiXFx1MGFhOFxcdTBhY2JcXHUwYTk1XFx1MGFiMFxcdTBhYzBcXHUwYTkzXCIsQ2FyZWVyczpcIlxcdTBhOTVcXHUwYWJlXFx1MGFiMFxcdTBhOTVcXHUwYWMwXFx1MGFiMFxcdTBhY2RcXHUwYWE2XFx1MGFiZlwiLFByZXNzOlwiXFx1MGFhYVxcdTBhY2RcXHUwYWIwXFx1MGFjN1xcdTBhYjhcIixOZXdzOlwiXFx1MGFiOFxcdTBhYWVcXHUwYWJlXFx1MGE5YVxcdTBhYmVcXHUwYWIwXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTBhYWFcXHUwYWNkXFx1MGFiMFxcdTBhYzdcXHUwYWI4IFxcdTBhODVcXHUwYTgyXFx1MGE5N1xcdTBhYzdcXHUwYWE4XFx1MGFjMCBcXHUwYWFhXFx1MGFjMlxcdTBhOWJcXHUwYWFhXFx1MGFiMFxcdTBhOWJcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiXFx1MGFhZFxcdTBhYmVcXHUwYWI3XFx1MGFiZVwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlNuYXBjaGF0IFxcdTBhYTFcXHUwYWJlXFx1MGE4OVxcdTBhYThcXHUwYWIyXFx1MGFjYlxcdTBhYTEgXFx1MGE5NVxcdTBhYjBcXHUwYWNiXCIsRG93bmxvYWQ6XCJcXHUwYWExXFx1MGFiZVxcdTBhODlcXHUwYWE4XFx1MGFiMlxcdTBhY2JcXHUwYWExIFxcdTBhOTVcXHUwYWIwXFx1MGFjYlwiLEtpdDpcIlxcdTBhOTVcXHUwYWJmXFx1MGE5ZlwiLFN0b3JpZXM6XCJcXHUwYWI4XFx1MGFjZFxcdTBhOWZcXHUwYWNiXFx1MGFiMFxcdTBhYzBcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiXFx1MGFiOFxcdTBhY2RcXHUwYTlmXFx1MGFjYlxcdTBhYjBcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcImlPUyBcXHUwYWFlXFx1MGFiZVxcdTBhOWZcXHUwYWM3IFNuYXBjaGF0XCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiXFx1MGE4ZFxcdTBhYThcXHUwYWNkXFx1MGFhMVxcdTBhY2RcXHUwYWIwXFx1MGFjYlxcdTBhODdcXHUwYWExIFxcdTBhYWVcXHUwYWJlXFx1MGE5ZlxcdTBhYzcgU25hcGNoYXRcIixDb21tdW5pdHk6XCJcXHUwYTk1XFx1MGFhZVxcdTBhY2RcXHUwYWFmXFx1MGFjMVxcdTBhYThcXHUwYWJmXFx1MGE5ZlxcdTBhYmZcIixTdXBwb3J0OlwiXFx1MGFiOFxcdTBhYjlcXHUwYWJlXFx1MGFhZlxcdTBhYTRcXHUwYWJlXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1MGE5NVxcdTBhYWVcXHUwYWNkXFx1MGFhZlxcdTBhYzFcXHUwYWE4XFx1MGFiZlxcdTBhOWZcXHUwYWJmXFx1MGFhOFxcdTBhYmUgXFx1MGFhOFxcdTBhYmZcXHUwYWIwXFx1MGFjZFxcdTBhYTZcXHUwYWM3XFx1MGFiNlxcdTBhY2JcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlxcdTBhYjhcXHUwYWMxXFx1MGFiMFxcdTBhOTVcXHUwYWNkXFx1MGFiN1xcdTBhYmUgXFx1MGE5NVxcdTBhYzdcXHUwYWE4XFx1MGFjZFxcdTBhYTZcXHUwYWNkXFx1MGFiMFwiLFNuYXBjb2RlczpcIlNuYXBjb2Rlc1wiLEdlb2ZpbHRlcnM6XCJcXHUwYTljXFx1MGFiZlxcdTBhYWZcXHUwYWNiXFx1MGFhYlxcdTBhYmZcXHUwYWIyXFx1MGFjZFxcdTBhOWZcXHUwYWIwXFx1MGFjZFxcdTBhYjhcIixDcmVhdGU6XCJcXHUwYWFiXFx1MGFiZlxcdTBhYjJcXHUwYWNkXFx1MGE5ZlxcdTBhYjAgXFx1MGE4ZlxcdTBhYThcXHUwYWNkXFx1MGFhMSBcXHUwYWIyXFx1MGFjN1xcdTBhYThcXHUwYWNkXFx1MGFiOFwiLE1hcDpcIlxcdTBhYThcXHUwYTk1XFx1MGFiNlxcdTBhY2JcIixBZHZlcnRpc2luZzpcIlxcdTBhOWNcXHUwYWJlXFx1MGFiOVxcdTBhYzdcXHUwYWIwXFx1MGFiZVxcdTBhYTRcIixcIkJ1eSBBZHNcIjpcIlxcdTBhOWNcXHUwYWJlXFx1MGFiOVxcdTBhYzdcXHUwYWIwXFx1MGFiZVxcdTBhYTQgXFx1MGE5NlxcdTBhYjBcXHUwYWMwXFx1MGFhNlxcdTBhY2JcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHUwYTljXFx1MGFiZVxcdTBhYjlcXHUwYWM3XFx1MGFiMFxcdTBhYmVcXHUwYWE0XFx1MGFhOFxcdTBhYzAgXFx1MGFhOFxcdTBhYzBcXHUwYWE0XFx1MGFiZlxcdTBhOTNcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiXFx1MGFiMFxcdTBhYmVcXHUwYTljXFx1MGFhOFxcdTBhYzhcXHUwYWE0XFx1MGFiZlxcdTBhOTUgXFx1MGE5Y1xcdTBhYmVcXHUwYWI5XFx1MGFjN1xcdTBhYjBcXHUwYWJlXFx1MGFhNFxcdTBhY2JcXHUwYWE4XFx1MGFjMCBcXHUwYWIyXFx1MGFiZVxcdTBhYWZcXHUwYWFjXFx1MGFjZFxcdTBhYjBcXHUwYWM3XFx1MGFiMFxcdTBhYzBcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIlxcdTBhYWNcXHUwYWNkXFx1MGFiMFxcdTBhYmVcXHUwYTgyXFx1MGFhMVxcdTBhYThcXHUwYWJlIFxcdTBhYThcXHUwYWJmXFx1MGFiMFxcdTBhY2RcXHUwYWE2XFx1MGFjN1xcdTBhYjZcXHUwYWNiXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJcXHUwYWFhXFx1MGFjZFxcdTBhYjBcXHUwYWFlXFx1MGFjYlxcdTBhYjZcXHUwYWE4XFx1MGFhOFxcdTBhYmUgXFx1MGFhOFxcdTBhYmZcXHUwYWFmXFx1MGFhZVxcdTBhY2JcIixMZWdhbDpcIlxcdTBhOTVcXHUwYWJlXFx1MGFhOFxcdTBhYzJcXHUwYWE4XFx1MGFjMFwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MGFiOFxcdTBhYzdcXHUwYWI1XFx1MGFiZVxcdTBhYThcXHUwYWMwIFxcdTBhYjZcXHUwYWIwXFx1MGFhNFxcdTBhY2JcIixJbXByZXNzdW06XCJcXHUwYTg3XFx1MGFhZVxcdTBhY2RcXHUwYWFhXFx1MGFjZFxcdTBhYjBcXHUwYWM3XFx1MGFiOFxcdTBhYWVcIixcIlByaXZhY3kgUG9saWN5XCI6XCJcXHUwYTk3XFx1MGFjYlxcdTBhYWFcXHUwYWE4XFx1MGFjMFxcdTBhYWZcXHUwYWE0XFx1MGFiZSBcXHUwYWE4XFx1MGFjMFxcdTBhYTRcXHUwYWJmXCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1MGE5N1xcdTBhY2JcXHUwYWFhXFx1MGFhOFxcdTBhYzBcXHUwYWFmXFx1MGFhNFxcdTBhYmUgXFx1MGE5NVxcdTBhYzdcXHUwYWE4XFx1MGFjZFxcdTBhYTZcXHUwYWNkXFx1MGFiMFwiLFwiQ29va2llIFBvbGljeVwiOlwiXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMCBcXHUwYTg1XFx1MGE4MlxcdTBhOTdcXHUwYWM3XFx1MGFhOFxcdTBhYzAgXFx1MGFhOFxcdTBhYzBcXHUwYWE0XFx1MGFiZlwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MGFhZlxcdTBhYmVcXHUwYWE2XFx1MGFjYlxcdTBhYThcXHUwYWMwIFxcdTBhYjhcXHUwYWM3XFx1MGFiNVxcdTBhYmVcXHUwYWE4XFx1MGFjMCBcXHUwYWI2XFx1MGFiMFxcdTBhYTRcXHUwYWNiXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTBhOTVcXHUwYWI4XFx1MGFjZFxcdTBhOWZcXHUwYWFlIFxcdTBhYjBcXHUwYTlhXFx1MGFhOFxcdTBhYmVcXHUwYWE0XFx1MGFjZFxcdTBhYWVcXHUwYTk1IFxcdTBhOWZcXHUwYWMyXFx1MGFiMlxcdTBhY2RcXHUwYWI4XFx1MGFhOFxcdTBhYzAgXFx1MGFiNlxcdTBhYjBcXHUwYWE0XFx1MGFjYlwiLENPTU1VTklUWV9UT1M6XCJrXFx1MGE5NVxcdTBhYWVcXHUwYWNkXFx1MGFhZlxcdTBhYzFcXHUwYWE4XFx1MGFiZlxcdTBhOWZcXHUwYWMwIEdlb2ZpbHRlciBcXHUwYWI2XFx1MGFiMFxcdTBhYTRcXHUwYWNiXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW9cXHUwYWE4XFx1MGFiZSBcXHUwYWE4XFx1MGFiZlxcdTBhYWZcXHUwYWFlXFx1MGFjYlwiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWMwIFxcdTBhOTdcXHUwYWNiXFx1MGFhYVxcdTBhYThcXHUwYWMwXFx1MGFhZlxcdTBhYTRcXHUwYWJlIFxcdTBhYWFcXHUwYWI4XFx1MGE4MlxcdTBhYTZcXHUwYTk3XFx1MGFjMFxcdTBhOTNcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHUwYTljXFx1MGFiMFxcdTBhYzJcXHUwYWIwXFx1MGFjMCBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWJmXFx1MGE5ZFwiLGNvbnRlbnQ6WydcXHUwYWI4XFx1MGFiZVxcdTBhODdcXHUwYTlmXFx1MGFhOFxcdTBhYzcgXFx1MGE5M1xcdTBhYWFcXHUwYWIwXFx1MGFjN1xcdTBhOWYgXFx1MGFhNVxcdTBhYjVcXHUwYWJlXFx1MGFhZVxcdTBhYmVcXHUwYTgyIFxcdTBhYWVcXHUwYWE2XFx1MGFhNlxcdTBhYjBcXHUwYWMyXFx1MGFhYSBcXHUwYWFjXFx1MGFhOFxcdTBhYjVcXHUwYWJlIFxcdTBhYWVcXHUwYWJlXFx1MGE5ZlxcdTBhYzcgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHUwYTg1XFx1MGFhZVxcdTBhYzcgXFx1MGE4NiBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZFxcdTBhYThcXHUwYWNiIFxcdTBhODlcXHUwYWFhXFx1MGFhZlxcdTBhY2JcXHUwYTk3IFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhOGYgXFx1MGE5YlxcdTBhYzBcXHUwYThmPC9hPi4gXFx1MGE4NiBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWJmXFx1MGE5ZCBcXHUwYTljXFx1MGFiMFxcdTBhYzJcXHUwYWIwXFx1MGFjMFxcdTBhOTMgXFx1MGFiOVxcdTBhY2JcXHUwYWI1XFx1MGFiZVxcdTBhYTVcXHUwYWMwLCBcXHUwYWE0XFx1MGFhZVxcdTBhYzcgXFx1MGFhNFxcdTBhYzdcXHUwYWE4XFx1MGFjNyBcXHUwYWFjXFx1MGE4MlxcdTBhYTcgXFx1MGE5NVxcdTBhYjBcXHUwYWMwIFxcdTBhYjZcXHUwYTk1XFx1MGFjYiBcXHUwYWE4XFx1MGFiOVxcdTBhYzBcXHUwYTgyLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwYWFhXFx1MGFiOFxcdTBhODJcXHUwYWE2XFx1MGE5N1xcdTBhYzBcXHUwYTkzXCIsY29udGVudDpbJ1xcdTBhODVcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWMwIFxcdTBhYjVcXHUwYWM3XFx1MGFhY1xcdTBhYjhcXHUwYWJlXFx1MGE4N1xcdTBhOWYgXFx1MGFhYVxcdTBhYjAgXFx1MGFhNFxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhYzAgXFx1MGFhYVxcdTBhYjhcXHUwYTgyXFx1MGFhNlxcdTBhOTdcXHUwYWMwXFx1MGE5MyBcXHUwYWFmXFx1MGFiZVxcdTBhYTYgXFx1MGFiMFxcdTBhYmVcXHUwYTk2XFx1MGFiNVxcdTBhYmUgXFx1MGE4NVxcdTBhYThcXHUwYWM3IFxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWJlIFxcdTBhODVcXHUwYWE4XFx1MGFjMVxcdTBhYWRcXHUwYWI1XFx1MGFhOFxcdTBhYzcgXFx1MGFhY1xcdTBhYjlcXHUwYWM3XFx1MGFhNFxcdTBhYjAgXFx1MGFhY1xcdTBhYThcXHUwYWJlXFx1MGFiNVxcdTBhYjVcXHUwYWJlIFxcdTBhYWVcXHUwYWJlXFx1MGE5ZlxcdTBhYzc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+XFx1MGE4NVxcdTBhYWVcXHUwYWM3IFxcdTBhODYgXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhOWRcXHUwYWE4XFx1MGFjYiBcXHUwYTg5XFx1MGFhYVxcdTBhYWZcXHUwYWNiXFx1MGE5NyBcXHUwYTk1XFx1MGFiMFxcdTBhYzBcXHUwYThmIFxcdTBhOWJcXHUwYWMwXFx1MGE4ZjwvYT4uJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTBhOTVcXHUwYWJlXFx1MGFhZVxcdTBhOTdcXHUwYWMwXFx1MGFiMFxcdTBhYzAgXFx1MGE4NVxcdTBhYThcXHUwYWM3IFxcdTBhYjVcXHUwYWJmXFx1MGFiNlxcdTBhY2RcXHUwYWIyXFx1MGFjN1xcdTBhYjdcXHUwYWEzXCIsY29udGVudDpbJ1xcdTBhYTRcXHUwYWFlXFx1MGFjNyBcXHUwYTg1XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjMCBcXHUwYWI4XFx1MGFiZVxcdTBhODdcXHUwYTlmXFx1MGFhOFxcdTBhY2IgXFx1MGE4OVxcdTBhYWFcXHUwYWFmXFx1MGFjYlxcdTBhOTcgXFx1MGE5NVxcdTBhYzdcXHUwYWI1XFx1MGFjMCBcXHUwYWIwXFx1MGFjMFxcdTBhYTRcXHUwYWM3IFxcdTBhOTVcXHUwYWIwXFx1MGFjYiBcXHUwYTliXFx1MGFjYiBcXHUwYWE0XFx1MGFjNyBcXHUwYTg1XFx1MGE4MlxcdTBhOTdcXHUwYWM3XFx1MGFhOFxcdTBhYzAgXFx1MGFhZVxcdTBhYmVcXHUwYWI5XFx1MGFiZlxcdTBhYTRcXHUwYWMwIFxcdTBhOGZcXHUwYTk1XFx1MGFhNFxcdTBhY2RcXHUwYWIwXFx1MGFiZlxcdTBhYTQgXFx1MGE5NVxcdTBhYjBcXHUwYWI1XFx1MGFiZSwgXFx1MGFiOFxcdTBhYmVcXHUwYTg3XFx1MGE5ZlxcdTBhYThcXHUwYWJlIFxcdTBhYWFcXHUwYWIwXFx1MGFjZFxcdTBhYWJcXHUwYWNiXFx1MGFiMFxcdTBhY2RcXHUwYWFlXFx1MGFhOFxcdTBhY2RcXHUwYWI4XFx1MGFhOFxcdTBhYzAgXFx1MGFhNlxcdTBhYzdcXHUwYTk2XFx1MGFiMFxcdTBhYzdcXHUwYTk2IFxcdTBhYjBcXHUwYWJlXFx1MGE5NlxcdTBhYjVcXHUwYWJlIFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYTg1XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjMCBcXHUwYWI4XFx1MGFiZVxcdTBhODdcXHUwYTlmXFx1MGFhOFxcdTBhYzFcXHUwYTgyIFxcdTBhYWFcXHUwYWIwXFx1MGFjZFxcdTBhYWJcXHUwYWNiXFx1MGFiMFxcdTBhY2RcXHUwYWFlXFx1MGFhOFxcdTBhY2RcXHUwYWI4IFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYWE0XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFiZSBcXHUwYTg1XFx1MGFhOFxcdTBhYzFcXHUwYWFkXFx1MGFiNVxcdTBhYThcXHUwYWM3IFxcdTBhYWNcXHUwYWI5XFx1MGFjN1xcdTBhYTRcXHUwYWIwIFxcdTBhYWNcXHUwYWE4XFx1MGFiZVxcdTBhYjVcXHUwYWI1XFx1MGFiZSBcXHUwYWFlXFx1MGFiZVxcdTBhOWZcXHUwYWM3IDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5cXHUwYTg1XFx1MGFhZVxcdTBhYzcgXFx1MGE4NiBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZFxcdTBhYThcXHUwYWNiIFxcdTBhODlcXHUwYWFhXFx1MGFhZlxcdTBhY2JcXHUwYTk3IFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhOGYgXFx1MGE5YlxcdTBhYzBcXHUwYThmPC9hPi4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIlxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhY2RcXHUwYTk1XFx1MGFjN1xcdTBhOWZcXHUwYWJmXFx1MGE4MlxcdTBhOTdcIixjb250ZW50OlsnXFx1MGFiOFxcdTBhODJcXHUwYWFjXFx1MGE4MlxcdTBhYTdcXHUwYWJmXFx1MGFhNCBcXHUwYTljXFx1MGFiZVxcdTBhYjlcXHUwYWM3XFx1MGFiMFxcdTBhYmVcXHUwYWE0XFx1MGFjYiBcXHUwYWFhXFx1MGFjZFxcdTBhYjBcXHUwYWE2XFx1MGFiZVxcdTBhYTggXFx1MGE5NVxcdTBhYjBcXHUwYWI1XFx1MGFiZSBcXHUwYTg1XFx1MGFhOFxcdTBhYzcgXFx1MGE4NVxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhYmUgXFx1MGE5Y1xcdTBhYmVcXHUwYWI5XFx1MGFjN1xcdTBhYjBcXHUwYWJlXFx1MGFhNCBcXHUwYTg1XFx1MGFhZFxcdTBhYmZcXHUwYWFmXFx1MGFiZVxcdTBhYThcXHUwYWNiXFx1MGFhOFxcdTBhYzAgXFx1MGE4NVxcdTBhYjhcXHUwYWIwXFx1MGE5NVxcdTBhYmVcXHUwYWIwXFx1MGE5NVxcdTBhYTRcXHUwYWJlIFxcdTBhYWVcXHUwYWJlXFx1MGFhYVxcdTBhYjVcXHUwYWJlIFxcdTBhYWVcXHUwYWJlXFx1MGE5ZlxcdTBhYzcgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHUwYTg1XFx1MGFhZVxcdTBhYzcgXFx1MGE4NiBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZFxcdTBhYThcXHUwYWNiIFxcdTBhODlcXHUwYWFhXFx1MGFhZlxcdTBhY2JcXHUwYTk3IFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhOGYgXFx1MGE5YlxcdTBhYzBcXHUwYThmPC9hPi4gXFx1MGFhNFxcdTBhYWVcXHUwYWE4XFx1MGFjNyBcXHUwYWIwXFx1MGFiOCBcXHUwYWFhXFx1MGFhMVxcdTBhYzcgXFx1MGE4ZlxcdTBhYjVcXHUwYWMwIFxcdTBhYWFcXHUwYWNkXFx1MGFiMFxcdTBhY2JcXHUwYWFiXFx1MGFiZVxcdTBhODdcXHUwYWIyIFxcdTBhYWNcXHUwYWE4XFx1MGFiZVxcdTBhYjVcXHUwYWI1XFx1MGFiZSBcXHUwYTg1XFx1MGFhOFxcdTBhYzcgXFx1MGE4NVxcdTBhYThcXHUwYWNkXFx1MGFhZiBcXHUwYWI4XFx1MGFiZVxcdTBhODdcXHUwYTlmIFxcdTBhYWFcXHUwYWIwIFxcdTBhYjhcXHUwYTgyXFx1MGFhY1xcdTBhODJcXHUwYWE3XFx1MGFiZlxcdTBhYTQgXFx1MGE5Y1xcdTBhYmVcXHUwYWI5XFx1MGFjN1xcdTBhYjBcXHUwYWJlXFx1MGFhNFxcdTBhY2IgXFx1MGE4NlxcdTBhYWFcXHUwYWI1XFx1MGFiZSBcXHUwYWFlXFx1MGFiZVxcdTBhOWZcXHUwYWM3IFxcdTBhODVcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWJlIFxcdTBhYTRcXHUwYWNkXFx1MGFiMFxcdTBhYzBcXHUwYTljXFx1MGFiZS1cXHUwYWFhXFx1MGE5NVxcdTBhY2RcXHUwYWI3XFx1MGFhOFxcdTBhYmUgXFx1MGE5Y1xcdTBhYmVcXHUwYWI5XFx1MGFjN1xcdTBhYjBcXHUwYWJlXFx1MGFhNFxcdTBhYThcXHUwYWJlIFxcdTBhYWRcXHUwYWJlXFx1MGE5N1xcdTBhYzBcXHUwYWE2XFx1MGFiZVxcdTBhYjBcXHUwYWNiIFxcdTBhODYgXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhOWRcXHUwYWE4XFx1MGFjYiBcXHUwYTg5XFx1MGFhYVxcdTBhYWZcXHUwYWNiXFx1MGE5NyBcXHUwYTk1XFx1MGFiMFxcdTBhYzAgXFx1MGFiNlxcdTBhOTVcXHUwYWM3IFxcdTBhOWJcXHUwYWM3LiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTBhYTRcXHUwYWMzXFx1MGFhNFxcdTBhYzBcXHUwYWFmIFxcdTBhYWFcXHUwYTk1XFx1MGFjZFxcdTBhYjcgXFx1MGE5Y1xcdTBhYmVcXHUwYWI5XFx1MGFjN1xcdTBhYjBcXHUwYWJlXFx1MGFhNCBcXHUwYWFkXFx1MGFiZVxcdTBhOTdcXHUwYWMwXFx1MGFhNlxcdTBhYmVcXHUwYWIwXFx1MGFjYlwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYWFhXFx1MGFiZlxcdTBhYThcXHUwYTlmXFx1MGFjN1xcdTBhYjBcXHUwYWM3XFx1MGFiOFxcdTBhY2RcXHUwYTlmPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJcXHUwYWE0XFx1MGFjZFxcdTBhYjBcXHUwYWMwXFx1MGE5Y1xcdTBhYmUtXFx1MGFhYVxcdTBhOTVcXHUwYWNkXFx1MGFiN1xcdTBhYThcXHUwYWJlIFxcdTBhOWNcXHUwYWJlXFx1MGFiOVxcdTBhYzdcXHUwYWIwXFx1MGFiZVxcdTBhYTQgXFx1MGFhZFxcdTBhYmVcXHUwYTk3XFx1MGFjMFxcdTBhYTZcXHUwYWJlXFx1MGFiMFxcdTBhY2I6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTBhODVcXHUwYWI4XFx1MGFiMFxcdTBhOTVcXHUwYWJlXFx1MGFiMFxcdTBhOTU6IDE1IFxcdTBhOWNcXHUwYWJlXFx1MGFhOFxcdTBhY2RcXHUwYWFmXFx1MGFjMVxcdTBhODZcXHUwYWIwXFx1MGFjMCwgMjAxOVwiLEJvZHk6W1wiXFx1MGFhNFxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhYmUgXFx1MGFhY1xcdTBhY2RcXHUwYWIwXFx1MGFiZVxcdTBhODlcXHUwYTlkXFx1MGFiMCBcXHUwYTg1XFx1MGFhNVxcdTBhYjVcXHUwYWJlIFxcdTBhYTFcXHUwYWJmXFx1MGFiNVxcdTBhYmVcXHUwYTg3XFx1MGFiOFxcdTBhYWVcXHUwYWJlXFx1MGE4MlxcdTBhYTVcXHUwYWMwIFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzAgXFx1MGFhZVxcdTBhYzdcXHUwYWE4XFx1MGFjN1xcdTBhOWMgXFx1MGE5NVxcdTBhYjBcXHUwYWI1XFx1MGFiZSBcXHUwYTg5XFx1MGFhYVxcdTBhYjBcXHUwYWJlXFx1MGE4MlxcdTBhYTQsIFxcdTBhYTRcXHUwYWFlXFx1MGFjNyBcXHUwYWE4XFx1MGFjMFxcdTBhOWFcXHUwYWM3IFxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWJlIFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzAgXFx1MGFiOFxcdTBhYzdcXHUwYTlmXFx1MGFiZlxcdTBhODJcXHUwYTk3IFxcdTBhYWNcXHUwYWE2XFx1MGFiMlxcdTBhYzAgXFx1MGFiNlxcdTBhOTVcXHUwYWNiIFxcdTBhOWJcXHUwYWNiLiBcXHUwYTk1XFx1MGFjM1xcdTBhYWFcXHUwYWJlIFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhYThcXHUwYWM3IFxcdTBhYThcXHUwYWNiXFx1MGE4MlxcdTBhYTdcXHUwYWNiIFxcdTBhOTVcXHUwYWM3IFxcdTBhODVcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWMwIFxcdTBhYjhcXHUwYWJlXFx1MGE4N1xcdTBhOWYgXFx1MGE5YVxcdTBhYjJcXHUwYWJlXFx1MGFiNVxcdTBhYjVcXHUwYWJlIFxcdTBhYWVcXHUwYWJlXFx1MGE5ZlxcdTBhYzcgXFx1MGE5YVxcdTBhY2JcXHUwYTk1XFx1MGFjZFxcdTBhOTVcXHUwYWI4IFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzAgXFx1MGE4NlxcdTBhYjVcXHUwYWI2XFx1MGFjZFxcdTBhYWZcXHUwYTk1IFxcdTBhOWJcXHUwYWM3IFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYTg2IFxcdTBhYjhcXHUwYWM3XFx1MGE5ZlxcdTBhYmZcXHUwYTgyXFx1MGE5N1xcdTBhYThcXHUwYWNiIFxcdTBhODlcXHUwYWFhXFx1MGFhZlxcdTBhY2JcXHUwYTk3IFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhYThcXHUwYWM3IFxcdTBhODVcXHUwYWI1XFx1MGFiMFxcdTBhY2JcXHUwYWE3XFx1MGFiZlxcdTBhYTQgXFx1MGE5NVxcdTBhYjBcXHUwYWMwIFxcdTBhYjZcXHUwYTk1XFx1MGFhNFxcdTBhYzAgXFx1MGFhOFxcdTBhYTVcXHUwYWMwLlwiXSxUaXRsZTpcIlxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzAgXFx1MGFiOFxcdTBhYzdcXHUwYTlmXFx1MGFiZlxcdTBhODJcXHUwYTk3XFx1MGFjZFxcdTBhYjhcIixDT09LSUVfUE9QVVA6J1xcdTBhYThcXHUwYWFlXFx1MGFiOFxcdTBhY2RcXHUwYWE0XFx1MGFjNyEgXFx1MGE4NVxcdTBhYWVcXHUwYWM3IFxcdTBhODYgXFx1MGFiNVxcdTBhYzdcXHUwYWFjXFx1MGFiOFxcdTBhYmVcXHUwYTg3XFx1MGE5ZiBcXHUwYWFhXFx1MGFiMCBcXHUwYTg1XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjMCBcXHUwYWI4XFx1MGFiZVxcdTBhODdcXHUwYTlmXFx1MGFhOFxcdTBhYzcgXFx1MGE5M1xcdTBhYWFcXHUwYWIwXFx1MGFjN1xcdTBhOWYgXFx1MGE5NVxcdTBhYjBcXHUwYWI1XFx1MGFiZVxcdTBhYWVcXHUwYWJlXFx1MGE4MiBcXHUwYWFlXFx1MGFhNlxcdTBhYTZcXHUwYWIwXFx1MGFjMlxcdTBhYWEgXFx1MGFhNVxcdTBhYjVcXHUwYWJlIFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYWE0XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjYiBcXHUwYWFjXFx1MGFjZFxcdTBhYjBcXHUwYWJlXFx1MGE4OVxcdTBhOWRcXHUwYWJmXFx1MGE4MlxcdTBhOTcgXFx1MGE4NVxcdTBhYThcXHUwYWMxXFx1MGFhZFxcdTBhYjUgXFx1MGFiNVxcdTBhYTdcXHUwYWMxIFxcdTBhYjhcXHUwYWJlXFx1MGFiMFxcdTBhY2IgXFx1MGFhY1xcdTBhYThcXHUwYWJlXFx1MGFiNVxcdTBhYjVcXHUwYWJlLCBcXHUwYWI4XFx1MGFiZVxcdTBhODdcXHUwYTlmXFx1MGFhOFxcdTBhYzAgXFx1MGE5NVxcdTBhYmVcXHUwYWFlXFx1MGE5N1xcdTBhYzBcXHUwYWIwXFx1MGFjMCBcXHUwYWFhXFx1MGFiMCBcXHUwYWE2XFx1MGFjN1xcdTBhOTZcXHUwYWIwXFx1MGFjN1xcdTBhOTYgXFx1MGFiMFxcdTBhYmVcXHUwYTk2XFx1MGFiNVxcdTBhYmUsIFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYTljXFx1MGFiZVxcdTBhYjlcXHUwYWM3XFx1MGFiMFxcdTBhYmVcXHUwYWE0IFxcdTBhOTVcXHUwYWIwXFx1MGFiNVxcdTBhYmVcXHUwYWE4XFx1MGFiZSBcXHUwYWI5XFx1MGFjN1xcdTBhYTRcXHUwYWMxXFx1MGFiOFxcdTBhYjAgXFx1MGFhNFxcdTBhY2RcXHUwYWIwXFx1MGFiZVxcdTBhYjlcXHUwYWJmXFx1MGFhNCBcXHUwYWFhXFx1MGE5NVxcdTBhY2RcXHUwYWI3XFx1MGFhOFxcdTBhYzAgXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhOWQgXFx1MGFiOFxcdTBhYjlcXHUwYWJmXFx1MGFhNFxcdTBhYThcXHUwYWMwLCBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZCBcXHUwYTg1XFx1MGFhOFxcdTBhYzcgXFx1MGFiOFxcdTBhYWVcXHUwYWJlXFx1MGFhOCBcXHUwYWE0XFx1MGE5NVxcdTBhYThcXHUwYWMwXFx1MGE5NVxcdTBhY2IgKFxcdTIwMWNcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZFxcdTIwMWQpXFx1MGFhOFxcdTBhY2IgXFx1MGE4OVxcdTBhYWFcXHUwYWFmXFx1MGFjYlxcdTBhOTcgXFx1MGE5NVxcdTBhYjBcXHUwYWMwXFx1MGE4ZiBcXHUwYTliXFx1MGFjNy4gXFx1MGE4NVxcdTBhYWVcXHUwYWM3IFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzBcXHUwYTlkXFx1MGFhOFxcdTBhY2IgXFx1MGE5NVxcdTBhYzdcXHUwYWI1XFx1MGFjMCBcXHUwYWIwXFx1MGFjMFxcdTBhYTRcXHUwYWM3IFxcdTBhODlcXHUwYWFhXFx1MGFhZlxcdTBhY2JcXHUwYTk3IFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhOGYgXFx1MGE5YlxcdTBhYzBcXHUwYThmIFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYWE0XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjMCBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwIFxcdTBhYWFcXHUwYWI4XFx1MGE4MlxcdTBhYTZcXHUwYTk3XFx1MGFjMCBcXHUwYWI1XFx1MGFiZlxcdTBhYjZcXHUwYWM3IFxcdTBhYjVcXHUwYWE3XFx1MGFjMSBcXHUwYWFlXFx1MGFiZVxcdTBhYjlcXHUwYWJmXFx1MGFhNFxcdTBhYzAgXFx1MGFhZVxcdTBhYmVcXHUwYTlmXFx1MGFjNywgXFx1MGE4NVxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhYzAgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzAgXFx1MGFhOFxcdTBhYzBcXHUwYWE0XFx1MGFiZjwvYT4gXFx1MGE5Y1xcdTBhYzFcXHUwYTkzISBcXHUwYWE4XFx1MGFjMFxcdTBhOWFcXHUwYWM3IFwiXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhOWQgXFx1MGFiOFxcdTBhY2RcXHUwYWI1XFx1MGFjMFxcdTBhOTVcXHUwYWJlXFx1MGFiMFxcdTBhY2JcIiBcXHUwYWFhXFx1MGFiMCBcXHUwYTk1XFx1MGFjZFxcdTBhYjJcXHUwYWJmXFx1MGE5NSBcXHUwYTk1XFx1MGFiMFxcdTBhYzBcXHUwYWE4XFx1MGFjNywgXFx1MGFhNFxcdTBhYWVcXHUwYWM3IFxcdTBhYWNcXHUwYWJmXFx1MGFhOC1cXHUwYTg2XFx1MGFiNVxcdTBhYjZcXHUwYWNkXFx1MGFhZlxcdTBhOTUgXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhOWQgXFx1MGFiOFxcdTBhYjlcXHUwYWJmXFx1MGFhNFxcdTBhYThcXHUwYWMwIFxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYWUgXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhOWRcXHUwYWE4XFx1MGFjYiBcXHUwYTg5XFx1MGFhYVxcdTBhYWZcXHUwYWNiXFx1MGE5NyBcXHUwYTk1XFx1MGFiMFxcdTBhYjVcXHUwYWJlIFxcdTBhYWVcXHUwYWJlXFx1MGE5ZlxcdTBhYzdcXHUwYWE4XFx1MGFjMCBcXHUwYWI4XFx1MGE4MlxcdTBhYWVcXHUwYWE0XFx1MGFiZiBcXHUwYTg2XFx1MGFhYVxcdTBhY2IgXFx1MGE5YlxcdTBhY2IuIFxcdTBhYTRcXHUwYWFlXFx1MGFjNyBcXHUwYTljXFx1MGFhZVxcdTBhYTNcXHUwYWMwIFxcdTBhYWNcXHUwYWJlXFx1MGE5Y1xcdTBhYzFcXHUwYThmIFwiWFwiIFxcdTBhYWFcXHUwYWIwIFxcdTBhOTVcXHUwYWNkXFx1MGFiMlxcdTBhYmZcXHUwYTk1IFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhYThcXHUwYWM3IFxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYWUgXFx1MGFhY1xcdTBhYmZcXHUwYWE4LVxcdTBhODZcXHUwYWI1XFx1MGFiNlxcdTBhY2RcXHUwYWFmXFx1MGE5NSBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZFxcdTBhYThcXHUwYWNiIFxcdTBhODVcXHUwYWI4XFx1MGFjZFxcdTBhYjVcXHUwYWMwXFx1MGE5NVxcdTBhYmVcXHUwYWIwIFxcdTBhOTVcXHUwYWIwXFx1MGFjMCBcXHUwYWI2XFx1MGE5NVxcdTBhY2IgXFx1MGE5YlxcdTBhY2IuIFxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWJlIFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzBcXHUwYWE4XFx1MGFiZSBcXHUwYWI4XFx1MGFjN1xcdTBhOWZcXHUwYWJmXFx1MGE4MlxcdTBhOTcgXFx1MGFhY1xcdTBhYTZcXHUwYWIyXFx1MGFiNVxcdTBhYmUgXFx1MGFhZVxcdTBhYmVcXHUwYTlmXFx1MGFjNywgXFx1MGE4NVxcdTBhYThcXHUwYWM3IFxcdTBhOTVcXHUwYWNiXFx1MGE4OCBcXHUwYWFhXFx1MGFhMyBcXHUwYWI4XFx1MGFhZVxcdTBhYWZcXHUwYWM3IFxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWMwIFxcdTBhYjhcXHUwYTgyXFx1MGFhZVxcdTBhYTRcXHUwYWJmIFxcdTBhYWFcXHUwYWIwXFx1MGFhNCBcXHUwYTk2XFx1MGFjN1xcdTBhODJcXHUwYTlhXFx1MGFiNVxcdTBhYmUgXFx1MGFhZVxcdTBhYmVcXHUwYTlmXFx1MGFjNyBcIlxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYmZcXHUwYTlkIFxcdTBhYjhcXHUwYWM3XFx1MGE5ZlxcdTBhYmZcXHUwYTgyXFx1MGE5N1wiIFxcdTBhODVcXHUwYWE1XFx1MGFiNVxcdTBhYmUgXFx1MGE4NVxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhYzAgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzAgXFx1MGFhYVxcdTBhY2JcXHUwYWIyXFx1MGFiZlxcdTBhYjhcXHUwYWMwPC9hPiBcXHUwYWFhXFx1MGFiMCBcXHUwYTljXFx1MGFiZVxcdTBhOTMuJyxDT09LSUVfUE9QVVBfRVU6J1xcdTBhYThcXHUwYWFlXFx1MGFiOFxcdTBhY2RcXHUwYWE0XFx1MGFjNyEgXFx1MGE4NVxcdTBhYWVcXHUwYWM3IFxcdTBhODYgXFx1MGFiNVxcdTBhYzdcXHUwYWFjXFx1MGFiOFxcdTBhYmVcXHUwYTg3XFx1MGE5ZiBcXHUwYWFhXFx1MGFiMCBcXHUwYTg1XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjMCBcXHUwYWI4XFx1MGFiZVxcdTBhODdcXHUwYTlmXFx1MGFhOFxcdTBhYzcgXFx1MGE5M1xcdTBhYWFcXHUwYWIwXFx1MGFjN1xcdTBhOWYgXFx1MGE5NVxcdTBhYjBcXHUwYWI1XFx1MGFiZVxcdTBhYWVcXHUwYWJlXFx1MGE4MiBcXHUwYWFlXFx1MGFhNlxcdTBhYTZcXHUwYWIwXFx1MGFjMlxcdTBhYWEgXFx1MGFhNVxcdTBhYjVcXHUwYWJlIFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYWE0XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjYiBcXHUwYTg1XFx1MGFhOFxcdTBhYzFcXHUwYWFkXFx1MGFiNSBcXHUwYWI1XFx1MGFhN1xcdTBhYzEgXFx1MGFiOFxcdTBhYmVcXHUwYWIwXFx1MGFjYiBcXHUwYWFjXFx1MGFhOFxcdTBhYmVcXHUwYWI1XFx1MGFiNVxcdTBhYmUsIFxcdTBhODVcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWMwIFxcdTBhYjhcXHUwYWJlXFx1MGE4N1xcdTBhOWZcXHUwYWE4XFx1MGFjMCBcXHUwYTk1XFx1MGFiZVxcdTBhYWVcXHUwYTk3XFx1MGFjMFxcdTBhYjBcXHUwYWMwIFxcdTBhYWFcXHUwYWIwIFxcdTBhYTZcXHUwYWM3XFx1MGE5NlxcdTBhYjBcXHUwYWM3XFx1MGE5NiBcXHUwYWIwXFx1MGFiZVxcdTBhOTZcXHUwYWI1XFx1MGFiZSwgXFx1MGE4NVxcdTBhYThcXHUwYWM3IFxcdTBhOWNcXHUwYWJlXFx1MGFiOVxcdTBhYzdcXHUwYWIwXFx1MGFiZVxcdTBhYTQgXFx1MGE5NVxcdTBhYjBcXHUwYWI1XFx1MGFiZVxcdTBhYThcXHUwYWJlIFxcdTBhYjlcXHUwYWM3XFx1MGFhNFxcdTBhYzFcXHUwYWI4XFx1MGFiMCBcXHUwYWE0XFx1MGFjZFxcdTBhYjBcXHUwYWMwXFx1MGE5Y1xcdTBhYmUtXFx1MGFhYVxcdTBhOTVcXHUwYWNkXFx1MGFiN1xcdTBhYThcXHUwYWMwIFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYmZcXHUwYTlkIFxcdTBhYjhcXHUwYWI5XFx1MGFiZlxcdTBhYTQsIFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYmZcXHUwYTlkIFxcdTBhODVcXHUwYWE4XFx1MGFjNyBcXHUwYWI4XFx1MGFhZVxcdTBhYmVcXHUwYWE4IFxcdTBhYTRcXHUwYTk1XFx1MGFhOFxcdTBhYzBcXHUwYTk1XFx1MGFjYlxcdTBhYThcXHUwYWNiIChcXHUyMDFjXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFiZlxcdTBhOWRcXHUyMDFkKSBcXHUwYTg5XFx1MGFhYVxcdTBhYWZcXHUwYWNiXFx1MGE5NyBcXHUwYTk1XFx1MGFiMFxcdTBhYzBcXHUwYThmIFxcdTBhOWJcXHUwYWM3LiBcXHUwYTg1XFx1MGFhZVxcdTBhYzcgXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhOWRcXHUwYWE4XFx1MGFjYiBcXHUwYTk1XFx1MGFjN1xcdTBhYjVcXHUwYWMwIFxcdTBhYjBcXHUwYWMwXFx1MGFhNFxcdTBhYzcgXFx1MGE4OVxcdTBhYWFcXHUwYWFmXFx1MGFjYlxcdTBhOTcgXFx1MGE5NVxcdTBhYjBcXHUwYWMwXFx1MGE4ZiBcXHUwYTliXFx1MGFjMFxcdTBhOGYgXFx1MGE4NVxcdTBhYThcXHUwYWM3IFxcdTBhYTRcXHUwYWFlXFx1MGFiZVxcdTBhYjBcXHUwYWMwIFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzAgXFx1MGFhYVxcdTBhYjhcXHUwYTgyXFx1MGFhNlxcdTBhOTdcXHUwYWMwIFxcdTBhYjVcXHUwYWJmXFx1MGFiNlxcdTBhYzcgXFx1MGFiNVxcdTBhYTdcXHUwYWMxIFxcdTBhYWVcXHUwYWJlXFx1MGFiOVxcdTBhYmZcXHUwYWE0XFx1MGFjMCBcXHUwYWFlXFx1MGFiZVxcdTBhOWZcXHUwYWM3LCBcXHUwYTg1XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjMCBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwIFxcdTBhYWFcXHUwYWNiXFx1MGFiMlxcdTBhYmZcXHUwYWI4XFx1MGFjMCBcXHUwYWFlXFx1MGFiZVxcdTBhOWZcXHUwYWM3IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYTg1XFx1MGFiOVxcdTBhYzBcXHUwYTgyIFxcdTBhOWNcXHUwYWJlXFx1MGE5MzwvYT4hIFxcdTBhYThcXHUwYWMwXFx1MGE5YVxcdTBhYzcgXCJcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZCBcXHUwYWI4XFx1MGFjZFxcdTBhYjVcXHUwYWMwXFx1MGE5NVxcdTBhYmVcXHUwYWIwXFx1MGFjYlwiIFxcdTBhYWFcXHUwYWIwIFxcdTBhOTVcXHUwYWNkXFx1MGFiMlxcdTBhYmZcXHUwYTk1IFxcdTBhOTVcXHUwYWIwXFx1MGFjMFxcdTBhYThcXHUwYWM3LCBcXHUwYWE0XFx1MGFhZVxcdTBhYzcgXFx1MGFhY1xcdTBhYmZcXHUwYWE4LVxcdTBhODZcXHUwYWI1XFx1MGFiNlxcdTBhY2RcXHUwYWFmXFx1MGE5NSBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZCBcXHUwYWI4XFx1MGFiOVxcdTBhYmZcXHUwYWE0XFx1MGFhOFxcdTBhYzAgXFx1MGFhNFxcdTBhYWVcXHUwYWJlXFx1MGFhZSBcXHUwYTk1XFx1MGFjMlxcdTBhOTVcXHUwYWMwXFx1MGE5ZFxcdTBhYThcXHUwYWNiIFxcdTBhODlcXHUwYWFhXFx1MGFhZlxcdTBhY2JcXHUwYTk3IFxcdTBhOTVcXHUwYWIwXFx1MGFiNVxcdTBhYmUgXFx1MGFhZVxcdTBhYmVcXHUwYTlmXFx1MGFjN1xcdTBhYThcXHUwYWMwIFxcdTBhYjhcXHUwYTgyXFx1MGFhZVxcdTBhYTRcXHUwYWJmIFxcdTBhODZcXHUwYWFhXFx1MGFjYiBcXHUwYTliXFx1MGFjYi4gXFx1MGFhNFxcdTBhYWVcXHUwYWM3IFxcdTBhOWNcXHUwYWFlXFx1MGFhM1xcdTBhYzAgXFx1MGFhY1xcdTBhYmVcXHUwYTljXFx1MGFjMVxcdTBhOGYgXCJYXCIgXFx1MGFhYVxcdTBhYjAgXFx1MGE5NVxcdTBhY2RcXHUwYWIyXFx1MGFiZlxcdTBhOTUgXFx1MGE5NVxcdTBhYjBcXHUwYWMwXFx1MGFhOFxcdTBhYzcgXFx1MGFhNFxcdTBhYWVcXHUwYWJlXFx1MGFhZSBcXHUwYWFjXFx1MGFiZlxcdTBhYTgtXFx1MGE4NlxcdTBhYjVcXHUwYWI2XFx1MGFjZFxcdTBhYWZcXHUwYTk1IFxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzBcXHUwYTlkXFx1MGFhOFxcdTBhY2IgXFx1MGE4NVxcdTBhYjhcXHUwYWNkXFx1MGFiNVxcdTBhYzBcXHUwYTk1XFx1MGFiZVxcdTBhYjAgXFx1MGE5NVxcdTBhYjBcXHUwYWMwIFxcdTBhYjZcXHUwYTk1XFx1MGFjYiBcXHUwYTliXFx1MGFjYi4gXFx1MGFhNFxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhYmUgXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMFxcdTBhYThcXHUwYWJlIFxcdTBhYjhcXHUwYWM3XFx1MGE5ZlxcdTBhYmZcXHUwYTgyXFx1MGE5NyBcXHUwYWFjXFx1MGFhNlxcdTBhYjJcXHUwYWI1XFx1MGFiZSBcXHUwYWFlXFx1MGFiZVxcdTBhOWZcXHUwYWM3LCBcXHUwYTg1XFx1MGFhOFxcdTBhYzcgXFx1MGE5NVxcdTBhY2JcXHUwYTg4IFxcdTBhYWFcXHUwYWEzIFxcdTBhYjhcXHUwYWFlXFx1MGFhZlxcdTBhYzcgXFx1MGFhNFxcdTBhYWVcXHUwYWJlXFx1MGFiMFxcdTBhYzAgXFx1MGFiOFxcdTBhODJcXHUwYWFlXFx1MGFhNFxcdTBhYmYgXFx1MGFhYVxcdTBhYjBcXHUwYWE0IFxcdTBhOTZcXHUwYWM3XFx1MGE4MlxcdTBhOWFcXHUwYWI1XFx1MGFiZSBcXHUwYWFlXFx1MGFiZVxcdTBhOWZcXHUwYWM3IFwiXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFiZlxcdTBhOWQgXFx1MGFiOFxcdTBhYzdcXHUwYTlmXFx1MGFiZlxcdTBhODJcXHUwYTk3XCIgXFx1MGE4NVxcdTBhYTVcXHUwYWI1XFx1MGFiZSBcXHUwYTg1XFx1MGFhZVxcdTBhYmVcXHUwYWIwXFx1MGFjMCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMCBcXHUwYWFhXFx1MGFjYlxcdTBhYjJcXHUwYWJmXFx1MGFiOFxcdTBhYzA8L2E+IFxcdTBhYWFcXHUwYWIwIFxcdTBhOWNcXHUwYWJlXFx1MGE5My4nLEFncmVlVGV4dDpcIlxcdTBhOTVcXHUwYWMyXFx1MGE5NVxcdTBhYzBcXHUwYTlkIFxcdTBhYjhcXHUwYWNkXFx1MGFiNVxcdTBhYzBcXHUwYTk1XFx1MGFiZVxcdTBhYjBcXHUwYWNiXCIsU2V0dGluZ3NUZXh0OlwiXFx1MGE5NVxcdTBhYzJcXHUwYTk1XFx1MGFjMCBcXHUwYWI4XFx1MGFjN1xcdTBhOWZcXHUwYWJmXFx1MGE4MlxcdTBhOTdcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTBhODlcXHUwYWIyXFx1MGFjZFxcdTBhYjJcXHUwYTgyXFx1MGE5OFxcdTBhYTggXFx1MGFiNVxcdTBhYmZcXHUwYWI2XFx1MGFjNyBcXHUwYWIwXFx1MGFiZlxcdTBhYWFcXHUwYWNiXFx1MGFiMFxcdTBhY2RcXHUwYTlmIFxcdTBhOTVcXHUwYWIwXFx1MGFjYlwiLFNwb3RsaWdodDpcIlxcdTBhYjhcXHUwYWNkXFx1MGFhYVxcdTBhYzlcXHUwYTlmXFx1MGFiMlxcdTBhYmVcXHUwYTg3XFx1MGE5ZlwifSxcImhpLWluXCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiXFx1MDkzMlxcdTA5M2VcXHUwOTA3XFx1MDkzNVwiLEFkczpcIlxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4XCIsQ29tcGFueTpcIlxcdTA5MTVcXHUwOTAyXFx1MDkyYVxcdTA5MjhcXHUwOTQwXCIsSG9tZTpcIlxcdTA5MzlcXHUwOTRiXFx1MDkyZVwiLEJsb2c6XCJcXHUwOTJjXFx1MDk0ZFxcdTA5MzJcXHUwOTQ5XFx1MDkxN1wiLEpvYnM6XCJcXHUwOTFjXFx1MDk0OVxcdTA5MmNcIixDYXJlZXJzOlwiXFx1MDkxNVxcdTA5NDhcXHUwOTMwXFx1MDkzZlxcdTA5MmZcXHUwOTMwXCIsUHJlc3M6XCJcXHUwOTJhXFx1MDk0ZFxcdTA5MzBcXHUwOTQ3XFx1MDkzOFwiLE5ld3M6XCJcXHUwOTI4XFx1MDk0ZFxcdTA5MmZcXHUwOTQyXFx1MDkxY1xcdTA5M2NcIixcIlByZXNzIElucXVpcmllc1wiOlwiXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDk0N1xcdTA5MzggXFx1MDkyYVxcdTA5NDJcXHUwOTFiXFx1MDkyNFxcdTA5M2VcXHUwOTFiXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTA5MmRcXHUwOTNlXFx1MDkzN1xcdTA5M2VcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJTbmFwY2hhdCBcXHUwOTIxXFx1MDkzZVxcdTA5MDlcXHUwOTI4XFx1MDkzMlxcdTA5NGJcXHUwOTIxIFxcdTA5MTVcXHUwOTMwXFx1MDk0N1xcdTA5MDJcIixEb3dubG9hZDpcIlxcdTA5MjFcXHUwOTNlXFx1MDkwOVxcdTA5MjhcXHUwOTMyXFx1MDk0YlxcdTA5MjEgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMlwiLEtpdDpcIlxcdTA5MTVcXHUwOTNmXFx1MDkxZlwiLFN0b3JpZXM6XCJcXHUwOTM4XFx1MDk0ZFxcdTA5MWZcXHUwOTRiXFx1MDkzMFxcdTA5NDBcXHUwOTViXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTA5MzhcXHUwOTRkXFx1MDkxZlxcdTA5NGJcXHUwOTMwXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJpT1MgXFx1MDkxNVxcdTA5NDcgXFx1MDkzMlxcdTA5M2ZcXHUwOTBmIFNuYXBjaGF0XCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiQW5kcm9pZCBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYgU25hcGNoYXRcIixDb21tdW5pdHk6XCJcXHUwOTE1XFx1MDkyZVxcdTA5NGRcXHUwOTJmXFx1MDk0MVxcdTA5MjhcXHUwOTNmXFx1MDkxZlxcdTA5NDBcIixTdXBwb3J0OlwiXFx1MDkzOFxcdTA5MmFcXHUwOTRiXFx1MDkzMFxcdTA5NGRcXHUwOTFmXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1MDkxNVxcdTA5MmVcXHUwOTRkXFx1MDkyZlxcdTA5NDFcXHUwOTI4XFx1MDkzZlxcdTA5MWZcXHUwOTQwIFxcdTA5MjZcXHUwOTNmXFx1MDkzNlxcdTA5M2VcXHUwOTI4XFx1MDkzZlxcdTA5MzBcXHUwOTRkXFx1MDkyNlxcdTA5NDdcXHUwOTM2XCIsXCJTYWZldHkgQ2VudGVyXCI6XCJcXHUwOTM4XFx1MDk0MVxcdTA5MzBcXHUwOTE1XFx1MDk0ZFxcdTA5MzdcXHUwOTNlIFxcdTA5MTVcXHUwOTQ3XFx1MDkwMlxcdTA5MjZcXHUwOTRkXFx1MDkzMFwiLFNuYXBjb2RlczpcIlNuYXAgXFx1MDkxNVxcdTA5NGJcXHUwOTIxXCIsR2VvZmlsdGVyczpcIlxcdTA5MWNcXHUwOTNmXFx1MDkyZlxcdTA5NGJcXHUwOTVlXFx1MDkzZlxcdTA5MzJcXHUwOTRkXFx1MDkxZlxcdTA5MzBcIixDcmVhdGU6XCJcXHUwOTJiXFx1MDkzY1xcdTA5M2ZcXHUwOTMyXFx1MDk0ZFxcdTA5MWZcXHUwOTMwIFxcdTA5MTRcXHUwOTMwIFxcdTA5MzJcXHUwOTQ3XFx1MDkwMlxcdTA5MzhcIixNYXA6XCJcXHUwOTJlXFx1MDk0OFxcdTA5MmFcIixBZHZlcnRpc2luZzpcIlxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4XCIsXCJCdXkgQWRzXCI6XCJcXHUwOTM1XFx1MDkzZlxcdTA5MWNcXHUwOTRkXFx1MDkxZVxcdTA5M2VcXHUwOTJhXFx1MDkyOCBcXHUwOTE2XFx1MDkzMFxcdTA5NDBcXHUwOTI2XFx1MDk0N1xcdTA5MDJcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHUwOTM1XFx1MDkzZlxcdTA5MWNcXHUwOTRkXFx1MDkxZVxcdTA5M2VcXHUwOTJhXFx1MDkyOCBcXHUwOTI4XFx1MDk0MFxcdTA5MjRcXHUwOTNmXFx1MDkyZlxcdTA5M2VcXHUwOTAyXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTA5MzBcXHUwOTNlXFx1MDkxY1xcdTA5MjhcXHUwOTQwXFx1MDkyNFxcdTA5M2ZcXHUwOTE1IFxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4IFxcdTA5MzJcXHUwOTNlXFx1MDkwN1xcdTA5MmNcXHUwOTRkXFx1MDkzMFxcdTA5NDdcXHUwOTMwXFx1MDk0MFwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiXFx1MDkyY1xcdTA5NGRcXHUwOTMwXFx1MDkzZVxcdTA5MDJcXHUwOTIxIFxcdTA5MzhcXHUwOTAyXFx1MDkyY1xcdTA5MDJcXHUwOTI3XFx1MDk0MCBcXHUwOTI2XFx1MDkzZlxcdTA5MzZcXHUwOTNlXFx1MDkyOFxcdTA5M2ZcXHUwOTMwXFx1MDk0ZFxcdTA5MjZcXHUwOTQ3XFx1MDkzNlwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyZVxcdTA5NGJcXHUwOTM2XFx1MDkyOCBcXHUwOTI4XFx1MDkzZlxcdTA5MmZcXHUwOTJlXCIsTGVnYWw6XCJcXHUwOTMyXFx1MDk0MFxcdTA5MTdcXHUwOTMyXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwOTM4XFx1MDk0N1xcdTA5MzVcXHUwOTNlIFxcdTA5MTVcXHUwOTQwIFxcdTA5MzZcXHUwOTMwXFx1MDk0ZFxcdTA5MjRcXHUwOTQ3XFx1MDkwMlwiLEltcHJlc3N1bTpcIlxcdTA5MDdcXHUwOTJlXFx1MDk0ZFxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5NDdcXHUwOTM4XFx1MDkyZVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTA5MTdcXHUwOTRiXFx1MDkyYVxcdTA5MjhcXHUwOTQwXFx1MDkyZlxcdTA5MjRcXHUwOTNlIFxcdTA5MjhcXHUwOTQwXFx1MDkyNFxcdTA5M2ZcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHUwOTE3XFx1MDk0YlxcdTA5MmFcXHUwOTI4XFx1MDk0MFxcdTA5MmZcXHUwOTI0XFx1MDkzZSBcXHUwOTE1XFx1MDk0N1xcdTA5MDJcXHUwOTI2XFx1MDk0ZFxcdTA5MzBcIixcIkNvb2tpZSBQb2xpY3lcIjpcIlxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDAgXFx1MDkyOFxcdTA5NDBcXHUwOTI0XFx1MDkzZlwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MDkyZVxcdTA5NDdcXHUwOTJlXFx1MDk0YlxcdTA5MzBcXHUwOTQwXFx1MDkxY1xcdTA5M2MgXFx1MDkzOFxcdTA5NDdcXHUwOTM1XFx1MDkzZSBcXHUwOTE1XFx1MDk0MCBcXHUwOTM2XFx1MDkzMFxcdTA5NGRcXHUwOTI0XFx1MDk0N1xcdTA5MDJcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MDkxNVxcdTA5MzhcXHUwOTRkXFx1MDkxZlxcdTA5MmUgXFx1MDkxNVxcdTA5NGRcXHUwOTMwXFx1MDkzZlxcdTA5MGZcXHUwOTFmXFx1MDkzZlxcdTA5MzUgXFx1MDkxZlxcdTA5NDJcXHUwOTMyXFx1MDk0ZFxcdTA5MzggXFx1MDkzNlxcdTA5MzBcXHUwOTRkXFx1MDkyNFxcdTA5NDdcXHUwOTAyXCIsQ09NTVVOSVRZX1RPUzpcIlxcdTA5MTVcXHUwOTJlXFx1MDk0ZFxcdTA5MmZcXHUwOTQxXFx1MDkyOFxcdTA5M2ZcXHUwOTFmXFx1MDk0MCBHZW9maWx0ZXIgXFx1MDkzNlxcdTA5MzBcXHUwOTRkXFx1MDkyNFxcdTA5NDdcXHUwOTAyXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1MDkxNVxcdTA5NDAgXFx1MDkzNlxcdTA5MzBcXHUwOTRkXFx1MDkyNFxcdTA5NDdcXHUwOTAyXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiXFx1MDkwNlxcdTA5MmFcXHUwOTE1XFx1MDk0NyBcXHUwOTE3XFx1MDk0YlxcdTA5MmFcXHUwOTI4XFx1MDk0MFxcdTA5MmZcXHUwOTI0XFx1MDkzZSBcXHUwOTM1XFx1MDkzZlxcdTA5MTVcXHUwOTMyXFx1MDk0ZFxcdTA5MmFcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHUwOTA2XFx1MDkzNVxcdTA5MzZcXHUwOTRkXFx1MDkyZlxcdTA5MTUgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5NWJcIixjb250ZW50OlsnXFx1MDkwN1xcdTA5MzggXFx1MDkzOFxcdTA5M2VcXHUwOTA3XFx1MDkxZiBcXHUwOTE1XFx1MDk0NyBcXHUwOTJhXFx1MDkzMFxcdTA5M2ZcXHUwOTFhXFx1MDkzZVxcdTA5MzJcXHUwOTI4IFxcdTA5MmVcXHUwOTQ3XFx1MDkwMiBcXHUwOTJlXFx1MDkyNlxcdTA5MjYgXFx1MDkxNVxcdTA5NDcgXFx1MDkzMlxcdTA5M2ZcXHUwOTBmIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+XFx1MDkzOVxcdTA5MmUgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5NWIgXFx1MDkxNVxcdTA5M2UgXFx1MDkwOVxcdTA5MmFcXHUwOTJmXFx1MDk0YlxcdTA5MTcgXFx1MDkxNVxcdTA5MzBcXHUwOTI0XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDJcXHUwOTY0PC9hPiBcXHUwOTE1XFx1MDk0ZFxcdTA5MmZcXHUwOTRiXFx1MDkwMlxcdTA5MTVcXHUwOTNmIFxcdTA5MmZcXHUwOTQ3IFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MDZcXHUwOTM1XFx1MDkzNlxcdTA5NGRcXHUwOTJmXFx1MDkxNSBcXHUwOTM5XFx1MDk0YlxcdTA5MjRcXHUwOTQ3IFxcdTA5MzlcXHUwOTQ4XFx1MDkwMiwgXFx1MDkwN1xcdTA5MzhcXHUwOTMyXFx1MDkzZlxcdTA5MGYgXFx1MDkwNlxcdTA5MmEgXFx1MDkwN1xcdTA5MjhcXHUwOTRkXFx1MDkzOVxcdTA5NDdcXHUwOTAyIFxcdTA5MmNcXHUwOTAyXFx1MDkyNiBcXHUwOTI4XFx1MDkzOVxcdTA5NDBcXHUwOTAyIFxcdTA5MTVcXHUwOTMwIFxcdTA5MzhcXHUwOTE1XFx1MDkyNFxcdTA5NDdcXHUwOTY0J119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5M2VcXHUwOTI1XFx1MDkyZVxcdTA5M2ZcXHUwOTE1XFx1MDkyNFxcdTA5M2VcXHUwOTBmXFx1MDkwMlwiLGNvbnRlbnQ6WydcXHUwOTA2XFx1MDkyYVxcdTA5MTVcXHUwOTQwIFxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5M2VcXHUwOTI1XFx1MDkyZVxcdTA5M2ZcXHUwOTE1XFx1MDkyNFxcdTA5M2VcXHUwOTBmXFx1MDkwMiBcXHUwOTJmXFx1MDkzZVxcdTA5MjYgXFx1MDkzMFxcdTA5MTZcXHUwOTI4XFx1MDk0NyBcXHUwOTE0XFx1MDkzMCBcXHUwOTM5XFx1MDkyZVxcdTA5M2VcXHUwOTMwXFx1MDk0MCBcXHUwOTM1XFx1MDk0N1xcdTA5MmNcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxcdTA5MmFcXHUwOTMwIFxcdTA5MDZcXHUwOTJhXFx1MDkxNVxcdTA5NDcgXFx1MDkwNVxcdTA5MjhcXHUwOTQxXFx1MDkyZFxcdTA5MzUgXFx1MDkxNVxcdTA5NGIgXFx1MDkyY1xcdTA5NDdcXHUwOTM5XFx1MDkyNFxcdTA5MzAgXFx1MDkyY1xcdTA5MjhcXHUwOTNlXFx1MDkyOFxcdTA5NDcgXFx1MDkxNVxcdTA5NDcgXFx1MDkzMlxcdTA5M2ZcXHUwOTBmPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTA5MzlcXHUwOTJlIFxcdTA5MDdcXHUwOTI4IFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MTVcXHUwOTNlIFxcdTA5MDlcXHUwOTJhXFx1MDkyZlxcdTA5NGJcXHUwOTE3IFxcdTA5MTVcXHUwOTMwXFx1MDkyNFxcdTA5NDcgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NDwvYT4nXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyNlxcdTA5MzBcXHUwOTRkXFx1MDkzNlxcdTA5MjggXFx1MDkxNFxcdTA5MzAgXFx1MDkzNVxcdTA5M2ZcXHUwOTM2XFx1MDk0ZFxcdTA5MzJcXHUwOTQ3XFx1MDkzN1xcdTA5MjNcIixjb250ZW50OlsnXFx1MDkwNlxcdTA5MmFcXHUwOTE1XFx1MDk0NyBcXHUwOTI2XFx1MDk0ZFxcdTA5MzVcXHUwOTNlXFx1MDkzMFxcdTA5M2UgXFx1MDkzOVxcdTA5MmVcXHUwOTNlXFx1MDkzMFxcdTA5NDAgXFx1MDkzOFxcdTA5M2VcXHUwOTA3XFx1MDkxZiBcXHUwOTE1XFx1MDk0NyBcXHUwOTA5XFx1MDkyYVxcdTA5MmZcXHUwOTRiXFx1MDkxNyBcXHUwOTE1XFx1MDk0MCBcXHUwOTFjXFx1MDkzZVxcdTA5MjhcXHUwOTE1XFx1MDkzZVxcdTA5MzBcXHUwOTQwIFxcdTA5MzJcXHUwOTQ3XFx1MDkyOFxcdTA5NDcsIFxcdTA5MzhcXHUwOTNlXFx1MDkwN1xcdTA5MWYgXFx1MDkxNVxcdTA5NDcgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyNlxcdTA5MzBcXHUwOTRkXFx1MDkzNlxcdTA5MjggXFx1MDkyYVxcdTA5MzAgXFx1MDkyOFxcdTA5MWNcXHUwOTNjXFx1MDkzMCBcXHUwOTMwXFx1MDkxNlxcdTA5MjhcXHUwOTQ3LCBcXHUwOTE0XFx1MDkzMCBcXHUwOTA1XFx1MDkyYVxcdTA5MjhcXHUwOTQwIFxcdTA5MzhcXHUwOTNlXFx1MDkwN1xcdTA5MWYgXFx1MDkxNVxcdTA5NDcgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyNlxcdTA5MzBcXHUwOTRkXFx1MDkzNlxcdTA5MjggXFx1MDkyNFxcdTA5MjVcXHUwOTNlIFxcdTA5MDZcXHUwOTJhXFx1MDkxNVxcdTA5NDcgXFx1MDkwNVxcdTA5MjhcXHUwOTQxXFx1MDkyZFxcdTA5MzUgXFx1MDkyZVxcdTA5NDdcXHUwOTAyIFxcdTA5MzhcXHUwOTQxXFx1MDkyN1xcdTA5M2VcXHUwOTMwIFxcdTA5MTVcXHUwOTMwXFx1MDkyOFxcdTA5NDcgXFx1MDkxNVxcdTA5NDcgXFx1MDkzMlxcdTA5M2ZcXHUwOTBmIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5cXHUwOTM5XFx1MDkyZSBcXHUwOTA3XFx1MDkyOCBcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxYyBcXHUwOTE1XFx1MDkzZSBcXHUwOTA5XFx1MDkyYVxcdTA5MmZcXHUwOTRiXFx1MDkxNyBcXHUwOTE1XFx1MDkzMFxcdTA5MjRcXHUwOTQ3IFxcdTA5MzlcXHUwOTQ4XFx1MDkwMlxcdTA5NjQ8L2E+J119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJcXHUwOTJlXFx1MDkzZVxcdTA5MzBcXHUwOTRkXFx1MDkxNVxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3XCIsY29udGVudDpbJ1xcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5M2VcXHUwOTM4XFx1MDkwMlxcdTA5MTdcXHUwOTNmXFx1MDkxNSBcXHUwOTM1XFx1MDkzZlxcdTA5MWNcXHUwOTRkXFx1MDkxZVxcdTA5M2VcXHUwOTJhXFx1MDkyOCBcXHUwOTI2XFx1MDk0N1xcdTA5MjhcXHUwOTQ3IFxcdTA5MTRcXHUwOTMwIFxcdTA5MDVcXHUwOTJhXFx1MDkyOFxcdTA5NDcgXFx1MDkzNVxcdTA5M2ZcXHUwOTFjXFx1MDk0ZFxcdTA5MWVcXHUwOTNlXFx1MDkyYVxcdTA5MjggXFx1MDkwNVxcdTA5MmRcXHUwOTNmXFx1MDkyZlxcdTA5M2VcXHUwOTI4XFx1MDk0YlxcdTA5MDIgXFx1MDkxNVxcdTA5NDAgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyZFxcdTA5M2VcXHUwOTM1XFx1MDkzNlxcdTA5NDBcXHUwOTMyXFx1MDkyNFxcdTA5M2UgXFx1MDkxNVxcdTA5NGIgXFx1MDkyZVxcdTA5M2VcXHUwOTJhXFx1MDkyOFxcdTA5NDcgXFx1MDkxNVxcdTA5NDcgXFx1MDkzMlxcdTA5M2ZcXHUwOTBmIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+XFx1MDkzOVxcdTA5MmUgXFx1MDkwN1xcdTA5MjggXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5NWIgXFx1MDkxNVxcdTA5M2UgXFx1MDkwOVxcdTA5MmFcXHUwOTJmXFx1MDk0YlxcdTA5MTcgXFx1MDkxNVxcdTA5MzBcXHUwOTI0XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDJcXHUwOTY0PC9hPiBcXHUwOTM5XFx1MDkyZVxcdTA5M2VcXHUwOTMwXFx1MDk0NyBcXHUwOTI0XFx1MDk0M1xcdTA5MjRcXHUwOTQwXFx1MDkyZiBcXHUwOTJhXFx1MDkxNVxcdTA5NGRcXHUwOTM3IFxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4IFxcdTA5MDdcXHUwOTI4IFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTFjXFx1MDkzYyBcXHUwOTE1XFx1MDkzZSBcXHUwOTA5XFx1MDkyYVxcdTA5MmZcXHUwOTRiXFx1MDkxNyBcXHUwOTJkXFx1MDkzZVxcdTA5MTdcXHUwOTQwXFx1MDkyNlxcdTA5M2VcXHUwOTMwIFxcdTA5MDZcXHUwOTJhXFx1MDkxNVxcdTA5NDAgXFx1MDkyNlxcdTA5M2ZcXHUwOTMyXFx1MDkxYVxcdTA5MzhcXHUwOTRkXFx1MDkyYVxcdTA5NDAgXFx1MDkxNVxcdTA5NDAgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDk0YlxcdTA5NWVcXHUwOTNlXFx1MDkwN1xcdTA5MzIgXFx1MDkyY1xcdTA5MjhcXHUwOTNlXFx1MDkyOFxcdTA5NDcgXFx1MDkxNFxcdTA5MzAgXFx1MDkwNVxcdTA5MjhcXHUwOTRkXFx1MDkyZiBcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmXFx1MDk0YlxcdTA5MDIgXFx1MDkyYVxcdTA5MzAgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkzZVxcdTA5MzhcXHUwOTAyXFx1MDkxN1xcdTA5M2ZcXHUwOTE1IFxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4IFxcdTA5MjZcXHUwOTQ3XFx1MDkyOFxcdTA5NDcgXFx1MDkyZVxcdTA5NDdcXHUwOTAyIFxcdTA5MTVcXHUwOTMwIFxcdTA5MzhcXHUwOTE1XFx1MDkyNFxcdTA5NDcgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NCddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTA5MjRcXHUwOTQzXFx1MDkyNFxcdTA5NDBcXHUwOTJmIFxcdTA5MmFcXHUwOTE1XFx1MDk0ZFxcdTA5MzcgXFx1MDkzNVxcdTA5M2ZcXHUwOTFjXFx1MDk0ZFxcdTA5MWVcXHUwOTNlXFx1MDkyYVxcdTA5MjggXFx1MDkyZFxcdTA5M2VcXHUwOTE3XFx1MDk0MFxcdTA5MjZcXHUwOTNlXFx1MDkzMFwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTA5MjRcXHUwOTQzXFx1MDkyNFxcdTA5NDBcXHUwOTJmLVxcdTA5MmFcXHUwOTE1XFx1MDk0ZFxcdTA5MzcgXFx1MDkzNVxcdTA5M2ZcXHUwOTFjXFx1MDk0ZFxcdTA5MWVcXHUwOTNlXFx1MDkyYVxcdTA5MjggXFx1MDkyZFxcdTA5M2VcXHUwOTE3XFx1MDk0MFxcdTA5MjZcXHUwOTNlXFx1MDkzMDpcIixFZmZlY3RpdmVEYXRlOlwiXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyZFxcdTA5M2VcXHUwOTM1XFx1MDk0MCBcXHUwOTI0XFx1MDkzZlxcdTA5MjVcXHUwOTNmOiAxNSBcXHUwOTFjXFx1MDkyOFxcdTA5MzVcXHUwOTMwXFx1MDk0MCwgMjAxOVwiLEJvZHk6W1wiXFx1MDkwNVxcdTA5MmFcXHUwOTI4XFx1MDk0NyBcXHUwOTJjXFx1MDk0ZFxcdTA5MzBcXHUwOTNlXFx1MDkwOVxcdTA5MWNcXHUwOTMwIFxcdTA5MmZcXHUwOTNlIFxcdTA5MjFcXHUwOTNmXFx1MDkzNVxcdTA5M2VcXHUwOTA3XFx1MDkzOCBcXHUwOTE1XFx1MDk0NyBcXHUwOTJlXFx1MDkzZVxcdTA5MjdcXHUwOTRkXFx1MDkyZlxcdTA5MmUgXFx1MDkzOFxcdTA5NDcgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWMgXFx1MDkxNVxcdTA5M2UgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyY1xcdTA5MDJcXHUwOTI3XFx1MDkyOCBcXHUwOTE1XFx1MDkzMFxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MDVcXHUwOTMyXFx1MDkzZVxcdTA5MzVcXHUwOTNlLCBcXHUwOTA2XFx1MDkyYSBcXHUwOTI4XFx1MDk0MFxcdTA5MWFcXHUwOTQ3IFxcdTA5MDVcXHUwOTJhXFx1MDkyOFxcdTA5NDAgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MCBcXHUwOTM4XFx1MDk0N1xcdTA5MWZcXHUwOTNmXFx1MDkwMlxcdTA5MTcgXFx1MDkyY1xcdTA5MjZcXHUwOTMyIFxcdTA5MzhcXHUwOTE1XFx1MDkyNFxcdTA5NDcgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NCBcXHUwOTE1XFx1MDk0M1xcdTA5MmFcXHUwOTJmXFx1MDkzZSBcXHUwOTI3XFx1MDk0ZFxcdTA5MmZcXHUwOTNlXFx1MDkyOCBcXHUwOTI2XFx1MDk0N1xcdTA5MDIgXFx1MDkxNVxcdTA5M2YgXFx1MDkzOVxcdTA5MmVcXHUwOTNlXFx1MDkzMFxcdTA5NDAgXFx1MDkzOFxcdTA5M2VcXHUwOTA3XFx1MDkxZiBcXHUwOTE1XFx1MDk0YiBcXHUwOTFhXFx1MDkzMlxcdTA5M2VcXHUwOTI4XFx1MDk0NyBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYgXFx1MDkxNVxcdTA5NDFcXHUwOTFiIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MDZcXHUwOTM1XFx1MDkzNlxcdTA5NGRcXHUwOTJmXFx1MDkxNSBcXHUwOTM5XFx1MDk0OFxcdTA5MDIgXFx1MDkxNFxcdTA5MzAgXFx1MDkwN1xcdTA5MjggXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3IFxcdTA5MTVcXHUwOTNlIFxcdTA5MDlcXHUwOTJhXFx1MDkyZlxcdTA5NGJcXHUwOTE3IFxcdTA5MTVcXHUwOTMwXFx1MDkxNVxcdTA5NDcgXFx1MDkwN1xcdTA5MjhcXHUwOTRkXFx1MDkzOVxcdTA5NDdcXHUwOTAyIFxcdTA5MmNcXHUwOTRkXFx1MDkzMlxcdTA5NDlcXHUwOTE1IFxcdTA5MjhcXHUwOTM5XFx1MDk0MFxcdTA5MDIgXFx1MDkxNVxcdTA5M2ZcXHUwOTJmXFx1MDkzZSBcXHUwOTFjXFx1MDkzZSBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTNlIFxcdTA5MzlcXHUwOTQ4XFx1MDk2NFwiXSxUaXRsZTpcIlxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDAgXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3XCIsQ09PS0lFX1BPUFVQOidcXHUwOTI4XFx1MDkyZVxcdTA5MzhcXHUwOTRkXFx1MDkyNFxcdTA5NDchIFxcdTA5MzlcXHUwOTJlIFxcdTA5MjVcXHUwOTMwXFx1MDk0ZFxcdTA5MjEtXFx1MDkyYVxcdTA5M2VcXHUwOTMwXFx1MDk0ZFxcdTA5MWZcXHUwOTQwIFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MzhcXHUwOTM5XFx1MDkzZlxcdTA5MjQgXFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MFxcdTA5NWIgXFx1MDkxNFxcdTA5MzAgXFx1MDkzOFxcdTA5MmVcXHUwOTNlXFx1MDkyOCBcXHUwOTJhXFx1MDk0ZFxcdTA5MzBcXHUwOTRjXFx1MDkyNlxcdTA5NGRcXHUwOTJmXFx1MDk0YlxcdTA5MTdcXHUwOTNmXFx1MDkxNVxcdTA5NDAgKFwiXFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MFxcdTA5NWJcIikgXFx1MDkxNVxcdTA5M2UgXFx1MDkwOVxcdTA5MmFcXHUwOTJmXFx1MDk0YlxcdTA5MTcgXFx1MDkwNlxcdTA5MmFcXHUwOTE1XFx1MDk0NyBcXHUwOTJjXFx1MDk0ZFxcdTA5MzBcXHUwOTNlXFx1MDkwOVxcdTA5MWNcXHUwOTNjXFx1MDkzZlxcdTA5MDJcXHUwOTE3IFxcdTA5MDVcXHUwOTI4XFx1MDk0MVxcdTA5MmRcXHUwOTM1IFxcdTA5MTVcXHUwOTRiIFxcdTA5MmNcXHUwOTQ3XFx1MDkzOVxcdTA5MjRcXHUwOTMwIFxcdTA5MmNcXHUwOTI4XFx1MDkzZVxcdTA5MjhcXHUwOTQ3IFxcdTA5MmVcXHUwOTQ3XFx1MDkwMiBcXHUwOTJlXFx1MDkyNlxcdTA5MjYgXFx1MDkxNVxcdTA5MzBcXHUwOTI4XFx1MDk0NywgXFx1MDkzOVxcdTA5MmVcXHUwOTNlXFx1MDkzMFxcdTA5NDAgXFx1MDkzOFxcdTA5M2VcXHUwOTA3XFx1MDkxZiBcXHUwOTE1XFx1MDk0MCBcXHUwOTJhXFx1MDkzMFxcdTA5NWVcXHUwOTQ5XFx1MDkzMFxcdTA5NGRcXHUwOTJlXFx1MDk0N1xcdTA5MDJcXHUwOTM4IFxcdTA5MmFcXHUwOTMwIFxcdTA5MjhcXHUwOTFjXFx1MDkzY1xcdTA5MzAgXFx1MDkzMFxcdTA5MTZcXHUwOTI4XFx1MDk0NyBcXHUwOTE0XFx1MDkzMCBcXHUwOTM1XFx1MDkzZlxcdTA5MWNcXHUwOTRkXFx1MDkxZVxcdTA5M2VcXHUwOTJhXFx1MDkyOCBcXHUwOTM4XFx1MDk0NyBcXHUwOTFjXFx1MDk0MVxcdTA5NWNcXHUwOTQ3IFxcdTA5MDlcXHUwOTI2XFx1MDk0ZFxcdTA5MjZcXHUwOTQ3XFx1MDkzNlxcdTA5NGRcXHUwOTJmXFx1MDk0YlxcdTA5MDIgXFx1MDkxNVxcdTA5NDcgXFx1MDkzMlxcdTA5M2ZcXHUwOTBmIFxcdTA5MTVcXHUwOTMwXFx1MDkyNFxcdTA5NDcgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NCBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwXFx1MDk1YiBcXHUwOTE1XFx1MDk0NyBcXHUwOTA5XFx1MDkyYVxcdTA5MmZcXHUwOTRiXFx1MDkxNyBcXHUwOTE0XFx1MDkzMCBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwXFx1MDk1YiBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYgXFx1MDkwNlxcdTA5MmFcXHUwOTE1XFx1MDk0NyBcXHUwOTM1XFx1MDkzZlxcdTA5MTVcXHUwOTMyXFx1MDk0ZFxcdTA5MmFcXHUwOTRiXFx1MDkwMiBcXHUwOTJhXFx1MDkzMCBcXHUwOTA1XFx1MDkyN1xcdTA5M2ZcXHUwOTE1IFxcdTA5MWNcXHUwOTNlXFx1MDkyOFxcdTA5MTVcXHUwOTNlXFx1MDkzMFxcdTA5NDAgXFx1MDkxNVxcdTA5NDcgXFx1MDkzMlxcdTA5M2ZcXHUwOTBmLCBcXHUwOTM5XFx1MDkyZVxcdTA5M2VcXHUwOTMwXFx1MDk0MCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MCBcXHUwOTI4XFx1MDk0MFxcdTA5MjRcXHUwOTNmPC9hPiBcXHUwOTI2XFx1MDk0N1xcdTA5MTZcXHUwOTQ3XFx1MDkwMiEgXFx1MDkyOFxcdTA5NDBcXHUwOTFhXFx1MDk0NyBcIlxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MzhcXHUwOTRkXFx1MDkzNVxcdTA5NDBcXHUwOTE1XFx1MDkzZVxcdTA5MzAgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMlwiIFxcdTA5MmFcXHUwOTMwIFxcdTA5MTVcXHUwOTRkXFx1MDkzMlxcdTA5M2ZcXHUwOTE1IFxcdTA5MTVcXHUwOTMwXFx1MDkxNVxcdTA5NDcsIFxcdTA5MDZcXHUwOTJhIFxcdTA5MTdcXHUwOTQ4XFx1MDkzMC1cXHUwOTA2XFx1MDkzNVxcdTA5MzZcXHUwOTRkXFx1MDkyZlxcdTA5MTUgXFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MFxcdTA5NWIgXFx1MDkzOFxcdTA5MzlcXHUwOTNmXFx1MDkyNCBcXHUwOTM4XFx1MDkyZFxcdTA5NDAgXFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MFxcdTA5NWIgXFx1MDkxNVxcdTA5M2UgXFx1MDkwN1xcdTA5MzhcXHUwOTRkXFx1MDkyNFxcdTA5NDdcXHUwOTJlXFx1MDkzZVxcdTA5MzIgXFx1MDkxNVxcdTA5MzBcXHUwOTI4XFx1MDk0NyBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYgXFx1MDkzOVxcdTA5MmVcXHUwOTQ3XFx1MDkwMiBcXHUwOTM4XFx1MDkzOVxcdTA5MmVcXHUwOTI0XFx1MDkzZiBcXHUwOTI2XFx1MDk0NyBcXHUwOTMwXFx1MDkzOVxcdTA5NDcgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NCBcXHUwOTI2XFx1MDkzZVxcdTA5MDhcXHUwOTAyIFxcdTA5MjRcXHUwOTMwXFx1MDkyYlxcdTA5M2MgXCJYXCIgXFx1MDkyYVxcdTA5MzAgXFx1MDkxNVxcdTA5NGRcXHUwOTMyXFx1MDkzZlxcdTA5MTUgXFx1MDkxNVxcdTA5MzBcXHUwOTE1XFx1MDk0NyBcXHUwOTA2XFx1MDkyYSBcXHUwOTM4XFx1MDkyZFxcdTA5NDAgXFx1MDkxN1xcdTA5NDhcXHUwOTMwLVxcdTA5MDZcXHUwOTM1XFx1MDkzNlxcdTA5NGRcXHUwOTJmXFx1MDkxNSBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwXFx1MDk1YiBcXHUwOTA1XFx1MDkzOFxcdTA5NGRcXHUwOTM1XFx1MDk0MFxcdTA5MTVcXHUwOTNlXFx1MDkzMCBcXHUwOTE1XFx1MDkzMCBcXHUwOTM4XFx1MDkxNVxcdTA5MjRcXHUwOTQ3IFxcdTA5MzlcXHUwOTQ4XFx1MDkwMlxcdTA5NjQgXFx1MDkwNVxcdTA5MmFcXHUwOTI4XFx1MDk0MCBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwIFxcdTA5MzhcXHUwOTQ3XFx1MDkxZlxcdTA5M2ZcXHUwOTAyXFx1MDkxNyBcXHUwOTJjXFx1MDkyNlxcdTA5MzJcXHUwOTI4XFx1MDk0NyBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYsIFwiXFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MCBcXHUwOTM4XFx1MDk0N1xcdTA5MWZcXHUwOTNmXFx1MDkwMlxcdTA5MTdcIiBcXHUwOTJhXFx1MDkzMCBcXHUwOTJmXFx1MDkzZSBcXHUwOTM5XFx1MDkyZVxcdTA5M2VcXHUwOTMwXFx1MDk0MCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MCBcXHUwOTI4XFx1MDk0MFxcdTA5MjRcXHUwOTNmPC9hPiBcXHUwOTJhXFx1MDkzMCBcXHUwOTFjXFx1MDkzZVxcdTA5MGZcXHUwOTAyIFxcdTA5MTRcXHUwOTMwIFxcdTA5MTVcXHUwOTNmXFx1MDkzOFxcdTA5NDAgXFx1MDkyZFxcdTA5NDAgXFx1MDkzOFxcdTA5MmVcXHUwOTJmIFxcdTA5MDVcXHUwOTJhXFx1MDkyOFxcdTA5NDAgXFx1MDkzOFxcdTA5MzlcXHUwOTJlXFx1MDkyNFxcdTA5M2YgXFx1MDkzNVxcdTA5M2VcXHUwOTJhXFx1MDkzOCBcXHUwOTMyXFx1MDk0N1xcdTA5MDJcXHUwOTY0JyxDT09LSUVfUE9QVVBfRVU6J1xcdTA5MjhcXHUwOTJlXFx1MDkzOFxcdTA5NGRcXHUwOTI0XFx1MDk0NyEgXFx1MDkzOVxcdTA5MmUgXFx1MDkyNVxcdTA5MzBcXHUwOTRkXFx1MDkyMS1cXHUwOTJhXFx1MDkzZVxcdTA5MzBcXHUwOTRkXFx1MDkxZlxcdTA5NDAgXFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MFxcdTA5NWIgXFx1MDkzOFxcdTA5MzlcXHUwOTNmXFx1MDkyNCBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwXFx1MDk1YiBcXHUwOTE0XFx1MDkzMCBcXHUwOTM4XFx1MDkyZVxcdTA5M2VcXHUwOTI4IFxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5NGNcXHUwOTI2XFx1MDk0ZFxcdTA5MmZcXHUwOTRiXFx1MDkxN1xcdTA5M2ZcXHUwOTE1XFx1MDk0MCAoXCJcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwXFx1MDk1YlwiKSBcXHUwOTE1XFx1MDkzZSBcXHUwOTA5XFx1MDkyYVxcdTA5MmZcXHUwOTRiXFx1MDkxNyBcXHUwOTA2XFx1MDkyYVxcdTA5MTVcXHUwOTQ3IFxcdTA5MmNcXHUwOTRkXFx1MDkzMFxcdTA5M2VcXHUwOTA5XFx1MDkxY1xcdTA5M2NcXHUwOTNmXFx1MDkwMlxcdTA5MTcgXFx1MDkwNVxcdTA5MjhcXHUwOTQxXFx1MDkyZFxcdTA5MzUgXFx1MDkxNVxcdTA5NGIgXFx1MDkyY1xcdTA5NDdcXHUwOTM5XFx1MDkyNFxcdTA5MzAgXFx1MDkyY1xcdTA5MjhcXHUwOTNlXFx1MDkyOFxcdTA5NDcgXFx1MDkyZVxcdTA5NDdcXHUwOTAyIFxcdTA5MmVcXHUwOTI2XFx1MDkyNiBcXHUwOTE1XFx1MDkzMFxcdTA5MjhcXHUwOTQ3LCBcXHUwOTM5XFx1MDkyZVxcdTA5M2VcXHUwOTMwXFx1MDk0MCBcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxcdTA5MTVcXHUwOTQwIFxcdTA5MmFcXHUwOTMwXFx1MDk1ZVxcdTA5NDlcXHUwOTMwXFx1MDk0ZFxcdTA5MmVcXHUwOTQ3XFx1MDkwMlxcdTA5MzggXFx1MDkyYVxcdTA5MzAgXFx1MDkyOFxcdTA5MWNcXHUwOTNjXFx1MDkzMCBcXHUwOTMwXFx1MDkxNlxcdTA5MjhcXHUwOTQ3IFxcdTA5MTRcXHUwOTMwIFxcdTA5MzVcXHUwOTNmXFx1MDkxY1xcdTA5NGRcXHUwOTFlXFx1MDkzZVxcdTA5MmFcXHUwOTI4IFxcdTA5MzhcXHUwOTQ3IFxcdTA5MWNcXHUwOTQxXFx1MDk1Y1xcdTA5NDcgXFx1MDkwOVxcdTA5MjZcXHUwOTRkXFx1MDkyNlxcdTA5NDdcXHUwOTM2XFx1MDk0ZFxcdTA5MmZcXHUwOTRiXFx1MDkwMiBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYgXFx1MDkxNVxcdTA5MzBcXHUwOTI0XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDJcXHUwOTY0IFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MDlcXHUwOTJhXFx1MDkyZlxcdTA5NGJcXHUwOTE3IFxcdTA5MTRcXHUwOTMwIFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTA2XFx1MDkyYVxcdTA5MTVcXHUwOTQ3IFxcdTA5MzVcXHUwOTNmXFx1MDkxNVxcdTA5MzJcXHUwOTRkXFx1MDkyYVxcdTA5NGJcXHUwOTAyIFxcdTA5MmFcXHUwOTMwIFxcdTA5MDVcXHUwOTI3XFx1MDkzZlxcdTA5MTUgXFx1MDkxY1xcdTA5M2VcXHUwOTI4XFx1MDkxNVxcdTA5M2VcXHUwOTMwXFx1MDk0MCBcXHUwOTE1XFx1MDk0NyBcXHUwOTMyXFx1MDkzZlxcdTA5MGYsIFxcdTA5MzlcXHUwOTJlXFx1MDkzZVxcdTA5MzBcXHUwOTQwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwIFxcdTA5MjhcXHUwOTQwXFx1MDkyNFxcdTA5M2Y8L2E+IFxcdTA5MjZcXHUwOTQ3XFx1MDkxNlxcdTA5NDdcXHUwOTAyISBcXHUwOTI4XFx1MDk0MFxcdTA5MWFcXHUwOTQ3IFwiXFx1MDkxNVxcdTA5NDJcXHUwOTE1XFx1MDk0MFxcdTA5NWIgXFx1MDkzOFxcdTA5NGRcXHUwOTM1XFx1MDk0MFxcdTA5MTVcXHUwOTNlXFx1MDkzMCBcXHUwOTE1XFx1MDkzMFxcdTA5NDdcXHUwOTAyXCIgXFx1MDkyYVxcdTA5MzAgXFx1MDkxNVxcdTA5NGRcXHUwOTMyXFx1MDkzZlxcdTA5MTUgXFx1MDkxNVxcdTA5MzBcXHUwOTE1XFx1MDk0NywgXFx1MDkwNlxcdTA5MmEgXFx1MDkxN1xcdTA5NDhcXHUwOTMwLVxcdTA5MDZcXHUwOTM1XFx1MDkzNlxcdTA5NGRcXHUwOTJmXFx1MDkxNSBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwXFx1MDk1YiBcXHUwOTM4XFx1MDkzOVxcdTA5M2ZcXHUwOTI0IFxcdTA5MzhcXHUwOTJkXFx1MDk0MCBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwXFx1MDk1YiBcXHUwOTE1XFx1MDkzZSBcXHUwOTA3XFx1MDkzOFxcdTA5NGRcXHUwOTI0XFx1MDk0N1xcdTA5MmVcXHUwOTNlXFx1MDkzMiBcXHUwOTE1XFx1MDkzMFxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiBcXHUwOTM5XFx1MDkyZVxcdTA5NDdcXHUwOTAyIFxcdTA5MzhcXHUwOTM5XFx1MDkyZVxcdTA5MjRcXHUwOTNmIFxcdTA5MjZcXHUwOTQ3IFxcdTA5MzBcXHUwOTM5XFx1MDk0NyBcXHUwOTM5XFx1MDk0OFxcdTA5MDJcXHUwOTY0IFxcdTA5MjZcXHUwOTNlXFx1MDkwOFxcdTA5MDIgXFx1MDkyNFxcdTA5MzBcXHUwOTJiXFx1MDkzYyBcIlhcIiBcXHUwOTJhXFx1MDkzMCBcXHUwOTE1XFx1MDk0ZFxcdTA5MzJcXHUwOTNmXFx1MDkxNSBcXHUwOTE1XFx1MDkzMFxcdTA5MTVcXHUwOTQ3IFxcdTA5MDZcXHUwOTJhIFxcdTA5MzhcXHUwOTJkXFx1MDk0MCBcXHUwOTE3XFx1MDk0OFxcdTA5MzAtXFx1MDkwNlxcdTA5MzVcXHUwOTM2XFx1MDk0ZFxcdTA5MmZcXHUwOTE1IFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MDVcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTQwXFx1MDkxNVxcdTA5M2VcXHUwOTMwIFxcdTA5MTVcXHUwOTMwIFxcdTA5MzhcXHUwOTE1XFx1MDkyNFxcdTA5NDcgXFx1MDkzOVxcdTA5NDhcXHUwOTAyXFx1MDk2NCBcXHUwOTA1XFx1MDkyYVxcdTA5MjhcXHUwOTQwIFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDAgXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3IFxcdTA5MmNcXHUwOTI2XFx1MDkzMlxcdTA5MjhcXHUwOTQ3IFxcdTA5MTVcXHUwOTQ3IFxcdTA5MzJcXHUwOTNmXFx1MDkwZiwgXCJcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwIFxcdTA5MzhcXHUwOTQ3XFx1MDkxZlxcdTA5M2ZcXHUwOTAyXFx1MDkxN1wiIFxcdTA5MmFcXHUwOTMwIFxcdTA5MmZcXHUwOTNlIFxcdTA5MzlcXHUwOTJlXFx1MDkzZVxcdTA5MzBcXHUwOTQwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwIFxcdTA5MjhcXHUwOTQwXFx1MDkyNFxcdTA5M2Y8L2E+IFxcdTA5MmFcXHUwOTMwIFxcdTA5MWNcXHUwOTNlXFx1MDkwZlxcdTA5MDIgXFx1MDkxNFxcdTA5MzAgXFx1MDkxNVxcdTA5M2ZcXHUwOTM4XFx1MDk0MCBcXHUwOTJkXFx1MDk0MCBcXHUwOTM4XFx1MDkyZVxcdTA5MmYgXFx1MDkwNVxcdTA5MmFcXHUwOTI4XFx1MDk0MCBcXHUwOTM4XFx1MDkzOVxcdTA5MmVcXHUwOTI0XFx1MDkzZiBcXHUwOTM1XFx1MDkzZVxcdTA5MmFcXHUwOTM4IFxcdTA5MzJcXHUwOTQ3XFx1MDkwMlxcdTA5NjQnLEFncmVlVGV4dDpcIlxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTViIFxcdTA5MzhcXHUwOTRkXFx1MDkzNVxcdTA5NDBcXHUwOTE1XFx1MDkzZVxcdTA5MzAgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMlwiLFNldHRpbmdzVGV4dDpcIlxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDAgXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3XCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHUwOTA5XFx1MDkzMlxcdTA5NGRcXHUwOTMyXFx1MDkwMlxcdTA5MThcXHUwOTI4IFxcdTA5MTVcXHUwOTQwIFxcdTA5MzBcXHUwOTNmXFx1MDkyYVxcdTA5NGJcXHUwOTMwXFx1MDk0ZFxcdTA5MWYgXFx1MDkxNVxcdTA5MzBcXHUwOTQ3XFx1MDkwMlwiLFNwb3RsaWdodDpcIlxcdTA5MzhcXHUwOTRkXFx1MDkyYVxcdTA5NDlcXHUwOTFmXFx1MDkzMlxcdTA5M2VcXHUwOTA3XFx1MDkxZlwifSxcImlkLWlkXCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiTGFuZ3N1bmdcIixBZHM6XCJJa2xhblwiLENvbXBhbnk6XCJQZXJ1c2FoYWFuXCIsSG9tZTpcIkJlcmFuZGFcIixCbG9nOlwiQmxvZ1wiLEpvYnM6XCJQZWtlcmphYW5cIixDYXJlZXJzOlwiS2FyaWVyXCIsUHJlc3M6XCJQZXJzXCIsTmV3czpcIkJlcml0YVwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJQZXJ0YW55YWFuIFBlcnNcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiQmFoYXNhXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiVW5kdWggU25hcGNoYXRcIixEb3dubG9hZDpcIlVuZHVoXCIsS2l0OlwiUGVybGVuZ2thcGFuXCIsU3RvcmllczpcIkNlcml0YVwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJUb2tvXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCB1bnR1ayBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCB1bnR1ayBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiS29tdW5pdGFzXCIsU3VwcG9ydDpcIkR1a3VuZ2FuXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiUGFuZHVhbiBLb211bml0YXNcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlB1c2F0IEtlYW1hbmFuXCIsU25hcGNvZGVzOlwiU25hcGNvZGVcIixHZW9maWx0ZXJzOlwiR2VvZmlsdGVyXCIsQ3JlYXRlOlwiRmlsdGVyICYgTGVuc2FcIixNYXA6XCJQZXRhXCIsQWR2ZXJ0aXNpbmc6XCJQZXJpa2xhbmFuXCIsXCJCdXkgQWRzXCI6XCJCZWxpIElrbGFuXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiS2ViaWpha2FuIFBlcmlrbGFuYW5cIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiUGVycHVzdGFrYWFuIElrbGFuIFBvbGl0aWtcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIlBhbmR1YW4gTWVyZWtcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlBlcmF0dXJhbiBQcm9tb3NpXCIsTGVnYWw6XCJMZWdhbFwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiS2V0ZW50dWFuIExheWFuYW5cIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJLZWJpamFrYW4gUHJpdmFzaVwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlB1c2F0IFByaXZhc2lcIixcIkNvb2tpZSBQb2xpY3lcIjpcIktlYmlqYWthbiBDb29raWVcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIktldGVudHVhbiBMYXlhbmFuIE1lbW9yaVwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJLZXRlbnR1YW4gQWxhdCBLcmVhdGl2aXRhcyBLdXN0b21cIixDT01NVU5JVFlfVE9TOlwiS2V0ZW50dWFuIEtvbXVuaXRhcyBHZW9maWx0ZXJcIixMRU5TX1NUVURJT19UT1M6XCJLZXRlbnR1YW4gU3R1ZGlvIExlbnNhXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiUGlsaWhhbiBQcml2YXNpIEFuZGFcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJDb29raWUgeWFuZyBkaXBlcmx1a2FuXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+S2FtaSBtZW5nZ3VuYWthbiBjb29raWU8L2E+IHVudHVrIG1lbmphbGFua2FuIHNpdHVzLiBLYXJlbmEgZGlwZXJsdWthbiwgY29va2llIHRpZGFrIGJpc2EgZGlub25ha3RpZmthbi4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiUHJlZmVyZW5zaVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+S2FtaSBtZW5nZ3VuYWthbiBjb29raWU8L2E+IHVudHVrIG1lbmdpbmdhdCBwcmVmZXJlbnNpIEFuZGEgZGFuIG1lbWJlcmlrYW4gcGVuZ2FsYW1hbiBwZW5nZ3VuYSB5YW5nIGxlYmloIGJhaWsgZGkgc2l0dXMgd2ViIGthbWkuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlBlcmZvcm1hICYgQW5hbGl0aWtcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPkthbWkgbWVuZ2d1bmFrYW4gY29va2llPC9hPiB1bnR1ayBtZW5ndW1wdWxrYW4gaW5mb3JtYXNpIG1lbmdlbmFpIGNhcmEgQW5kYSBtZW5nZ3VuYWthbiBzaXR1cyBrYW1pLCBtZW1hbnRhdSBraW5lcmphIHNpdHVzLCBzZXJ0YSBtZW5pbmdrYXRrYW4ga2luZXJqYSBzaXR1cyBkYW4gcGVuZ2FsYW1hbiBBbmRhLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiUGVtYXNhcmFuXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+S2FtaSBtZW5nZ3VuYWthbiBjb29raWU8L2E+IHVudHVrIG1lbmF5YW5na2FuIGlrbGFuIHlhbmcgcmVsZXZhbiBkYW4gbWVuZ3VrdXIgZWZla3Rpdml0YXMga2FtcGFueWUgaWtsYW4ga2FtaS4gTWl0cmEgaWtsYW4gcGloYWsga2V0aWdhIGthbWkgZGFwYXQgbWVuZ2d1bmFrYW4gY29va2llIGluaSB1bnR1ayBtZW1idWF0IHByb2ZpbCBtaW5hdCBBbmRhIGRhbiBtZW5heWFuZ2thbiBpa2xhbiB5YW5nIHJlbGV2YW4gZGkgc2l0dXMgbGFpbi4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJtaXRyYSBpa2xhbiBwaWhhayBrZXRpZ2FcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJNaXRyYSBpa2xhbiBwaWhhayBrZXRpZ2E6XCIsRWZmZWN0aXZlRGF0ZTpcIkJlcmxha3U6IDE1IEphbnVhcmkgMjAxOVwiLEJvZHk6W1wiU2VsYWluIG1lbmdlbG9sYSBjb29raWUgbWVsYWx1aSBicm93c2VyIGF0YXUgcGVyYW5na2F0bXUsIGthbXUgYmlzYSBtZW5ndWJhaCBwZW5nYXR1cmFuIGNvb2tpZS1tdSBkaSBiYXdhaCBpbmkuIEhhcmFwIGRpaW5nYXQgYmFod2EgYmViZXJhcGEgY29va2llIGRpcGVybHVrYW4gdW50dWsgbWVuamFsYW5rYW4gc2l0dXMga2FtaSBkYW4gdGlkYWsgYmlzYSBkaWJsb2tpciBtZW5nZ3VuYWthbiBwZW5nYXR1cmFuIGluaS5cIl0sVGl0bGU6XCJQZW5nYXR1cmFuIENvb2tpZVwiLENPT0tJRV9QT1BVUDonSGFpISBLYW1pIG1lbmdndW5ha2FuIGNvb2tpZSBkYW4gdGVrbm9sb2dpIHNlcnVwYSAoXFx1MjAxY2Nvb2tpZVxcdTIwMWQpLCB0ZXJtYXN1ayBjb29raWUgcGloYWsga2V0aWdhLCB1bnR1ayBtZW5qYWxhbmthbiBzaXR1cyB3ZWIgaW5pIHNlcnRhIG1lbmluZ2thdGthbiBwZW5nYWxhbWFubXUgbWVuamVsYWphaCwgbWVtYW50YXUga2luZXJqYSwgZGFuIHVudHVrIHR1anVhbiBwZXJpa2xhbmFuLiBVbnR1ayBpbmZvcm1hc2kgbGViaWggbGFuanV0IG1lbmdlbmFpIGNhcmEga2FtaSBtZW5nZ3VuYWthbiBjb29raWUgZGFuIGNvb2tpZSBwaWxpaGFubXUsIGxpaGF0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5LZWJpamFrYW4gQ29va2llPC9hPiBrYW1pISBEZW5nYW4gbWVuZ2VrbGlrIFwiVGVyaW1hIENvb2tpZVwiIGRpIGJhd2FoLCBrYW11IG1lbmdpemlua2FuIGthbWkgbWVuZ2d1bmFrYW4gc2VtdWEgY29va2llLCB0ZXJtYXN1ayBjb29raWUgbm9uZXNlbnNpYWwuIEthbXUgYmlzYSBtZW5vbGFrIHNlbXVhIGNvb2tpZSBub25lc2Vuc2lhbCBkZW5nYW4gbWVuZ2VrbGlrIHRvbWJvbCBcIlhcIiBkaSBzZWJlbGFoIGthbmFuLiBLYW11IGJpc2EgbWVuZ3ViYWggcGVuZ2F0dXJhbiBjb29raWUgZGFuIG1lbmNhYnV0IGl6aW4ga2FwYW4gc2FqYSBkZW5nYW4gbWVtYnVrYSBcXHUyMDFjUGVuZ2F0dXJhbiBDb29raWVcXHUyMDFkIGF0YXUgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPktlYmlqYWthbiBDb29raWU8L2E+IGthbWkuJyxDT09LSUVfUE9QVVBfRVU6J0hhaSEgS2FtaSBtZW5nZ3VuYWthbiBjb29raWUgZGFuIHRla25vbG9naSBzZXJ1cGEgKFxcdTIwMWNjb29raWVcXHUyMDFkKSwgdGVybWFzdWsgY29va2llIHBpaGFrIGtldGlnYSwgdW50dWsgbWVuamFsYW5rYW4gc2l0dXMgd2ViIGluaSBzZXJ0YSBtZW5pbmdrYXRrYW4gcGVuZ2FsYW1hbm11IG1lbmplbGFqYWgsIG1lbWFudGF1IGtpbmVyamEsIGRhbiB1bnR1ayB0dWp1YW4gcGVyaWtsYW5hbi4gVW50dWsgaW5mb3JtYXNpIGxlYmloIGxhbmp1dCBtZW5nZW5haSBjYXJhIGthbWkgbWVuZ2d1bmFrYW4gY29va2llIGRhbiBjb29raWUgcGlsaWhhbm11LCBsaWhhdCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+S2ViaWpha2FuIENvb2tpZTwvYT4ga2FtaSEgRGVuZ2FuIG1lbmdla2xpayBcIlRlcmltYSBDb29raWVcIiBkaSBiYXdhaCwga2FtdSBtZW5naXppbmthbiBrYW1pIG1lbmdndW5ha2FuIHNlbXVhIGNvb2tpZSwgdGVybWFzdWsgY29va2llIG5vbmVzZW5zaWFsLiBLYW11IGJpc2EgbWVub2xhayBzZW11YSBjb29raWUgbm9uZXNlbnNpYWwgZGVuZ2FuIG1lbmdla2xpayB0b21ib2wgXCJYXCIgZGkgc2ViZWxhaCBrYW5hbi4gS2FtdSBiaXNhIG1lbmd1YmFoIHBlbmdhdHVyYW4gY29va2llIGRhbiBtZW5jYWJ1dCBpemluIGthcGFuIHNhamEgZGVuZ2FuIG1lbWJ1a2EgXFx1MjAxY1BlbmdhdHVyYW4gQ29va2llXFx1MjAxZCBhdGF1IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5LZWJpamFrYW4gQ29va2llPC9hPiBrYW1pLicsQWdyZWVUZXh0OlwiVGVyaW1hIENvb2tpZVwiLFNldHRpbmdzVGV4dDpcIlBlbmdhdHVyYW4gQ29va2llXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJMYXBvcmthbiBQZWxhbmdnYXJhblwiLFNwb3RsaWdodDpcIlNwb3RsaWdodFwifSxcIml0LWl0XCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiTGl2ZVwiLEFkczpcIkFubnVuY2lcIixDb21wYW55OlwiU29jaWV0XFx4ZTBcIixIb21lOlwiSG9tZVwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIkxhdm9yYSBjb24gbm9pXCIsQ2FyZWVyczpcIlBvc2l6aW9uaSBhcGVydGVcIixQcmVzczpcIlN0YW1wYVwiLE5ld3M6XCJOb3RpemllXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlJpY2hpZXN0ZSBzdGFtcGFcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiTGluZ3VhXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiU2NhcmljYSBTbmFwY2hhdFwiLERvd25sb2FkOlwiU2NhcmljYVwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJTdG9yaWVcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiU3RvcmVcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcIlNuYXBjaGF0IHBlciBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBwZXIgQW5kcm9pZFwiLENvbW11bml0eTpcIkNvbW11bml0eVwiLFN1cHBvcnQ6XCJBc3Npc3RlbnphXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiTGluZWUgR3VpZGEgcGVyIGxhIENvbW11bml0eVwiLFwiU2FmZXR5IENlbnRlclwiOlwiQ2VudHJvIFNpY3VyZXp6YVwiLFNuYXBjb2RlczpcIlNuYXBjb2RlXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRyaVwiLENyZWF0ZTpcIkZpbHRyaSBlIExlbnRpXCIsTWFwOlwiTWFwXCIsQWR2ZXJ0aXNpbmc6XCJQdWJibGljaXRcXHhlMFwiLFwiQnV5IEFkc1wiOlwiQWNxdWlzdGEgYW5udW5jaVwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIkluZm9ybWF0aXZlIHN1bGxhIFB1YmJsaWNpdFxceGUwXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIkxpYnJlcmlhIGFubnVuY2kgYSBzZm9uZG8gcG9saXRpY29cIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIkxpbmVlIGd1aWRhIGRlbCBCcmFuZFwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUmVnb2xhbWVudG8gc3VsbGUgcHJvbW96aW9uaVwiLExlZ2FsOlwiTm90ZSBMZWdhbGlcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlRlcm1pbmkgZGkgU2Vydml6aW9cIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJJbmZvcm1hdGl2YSBzdWxsYSBQcml2YWN5XCIsXCJQcml2YWN5IENlbnRlclwiOlwiQ2VudHJvIFByaXZhY3lcIixcIkNvb2tpZSBQb2xpY3lcIjpcIkluZm9ybWF0aXZhIHN1aSBDb29raWVcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIlRlcm1pbmkgZGkgU2Vydml6aW8gZGkgUmljb3JkaVwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJUZXJtaW5pIHBlciBTdHJ1bWVudGkgY3JlYXRpdmkgcGVyc29uYWxpenphdGlcIixDT01NVU5JVFlfVE9TOlwiVGVybWluaSBwZXIgR2VvZmlsdHJpIENvbW11bml0eVwiLExFTlNfU1RVRElPX1RPUzpcIlRlcm1pbmkgcGVyIExlbnMgU3R1ZGlvXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiTGUgdHVlIHNjZWx0ZSBzdWxsYSBwcml2YWN5XCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llIG5lY2Vzc2FyaVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlV0aWxpenppYW1vIHF1ZXN0aSBjb29raWU8L2E+IHBlciBjb250cmlidWlyZSBhbCBmdW56aW9uYW1lbnRvIGRlbCBzaXRvLiBOb24gcHVvaSBkaXNhdHRpdmFyZSBxdWVzdGkgY29va2llIHBlcmNoXFx4ZTkgc29ubyBuZWNlc3NhcmkuJ119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlByZWZlcmVuemVcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlV0aWxpenppYW1vIHF1ZXN0aSBjb29raWU8L2E+IHBlciByaWNvcmRhcmUgbGUgdHVlIHByZWZlcmVuemUgZSBtaWdsaW9yYXJlIGxhIHR1YSBmcnVpemlvbmUgZGVsIHNpdG8uJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlByZXN0YXppb25pIGUgZGF0aSBzdGF0aXN0aWNpXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5VdGlsaXp6aWFtbyBxdWVzdGkgY29va2llPC9hPiBwZXIgcmFjY29nbGllcmUgaW5mb3JtYXppb25pIHN1bGxlIG1vZGFsaXRcXHhlMCBkaSB1dGlsaXp6byBkZWwgbm9zdHJvIHNpdG8sIHBlciBtb25pdG9yYXJuZSBsZSBwcmVzdGF6aW9uaSBlIG1pZ2xpb3JhcmUgcXVlc3RlIHVsdGltZSBpbnNpZW1lIGFsbFxcJ2VzcGVyaWVuemEgZGkgbmF2aWdhemlvbmUuJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJNYXJrZXRpbmdcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5VdGlsaXp6aWFtbyBxdWVzdGkgY29va2llPC9hPiBwZXIgb2ZmcmlyZSBpbnNlcnppb25pIHBlcnRpbmVudGkgZSBtaXN1cmFyZSBsXFwnZWZmaWNhY2lhIGRlbGxlIG5vc3RyZSBjYW1wYWduZSBwdWJibGljaXRhcmllLiBJIG5vc3RyaSBwYXJ0bmVyIHB1YmJsaWNpdGFyaSBkaSB0ZXJ6ZSBwYXJ0aSBwb3RyZWJiZXJvIHVzYXJlIHF1ZXN0aSBjb29raWUgcGVyIGNyZWFyZSB1biBwcm9maWxvIHN1aSB0dW9pIGludGVyZXNzaSBlIGZvcm5pcmUgcHViYmxpY2l0XFx4ZTAgcGVydGluZW50aSBzdSBhbHRyaSBzaXRpLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInBhcnRuZXIgcHViYmxpY2l0YXJpIGRpIHRlcnplIHBhcnRpXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiUGFydG5lciBwdWJibGljaXRhcmkgZGkgdGVyemUgcGFydGk6XCIsRWZmZWN0aXZlRGF0ZTpcIkVudHJhdGEgaW4gdmlnb3JlOiAxNSBnZW5uYWlvIDIwMTlcIixCb2R5OltcIk9sdHJlIGEgcG90ZXIgZ2VzdGlyZSBpIGNvb2tpZSBtZWRpYW50ZSBicm93c2VyIG8gZGlzcG9zaXRpdm8sIHB1b2kgbW9kaWZpY2FyZSBsZSBpbXBvc3RhemlvbmkgZGVpIGNvb2tpZSBxdWkgc290dG8uIFJpY29yZGEgY2hlIGFsY3VuaSBjb29raWUgc29ubyBpbmRpc3BlbnNhYmlsaSBwZXIgbGEgZ2VzdGlvbmUgZGVsIHNpdG8gZSBub24gcG9zc29ubyBlc3NlcmUgYmxvY2NhdGkgZGFsbGUgaW1wb3N0YXppb25pLlwiXSxUaXRsZTpcIkltcG9zdGF6aW9uaSBkZWkgY29va2llXCIsQ09PS0lFX1BPUFVQOidDaWFvISBTdSBxdWVzdG8gc2l0byB3ZWIgdXRpbGl6emlhbW8gY29va2llIGUgdGVjbm9sb2dpZSBzaW1pbGkgKFwiY29va2llXCIpLCBjb21wcmVzaSBxdWVsbGkgZGkgdGVyemUgcGFydGksIHBlciBmYXIgZnVuemlvbmFyZSBlIG1pZ2xpb3JhcmUgbGEgdHVhIGVzcGVyaWVuemEgZGkgbmF2aWdhemlvbmUsIG1vbml0b3JhcmUgbGUgcHJlc3RhemlvbmkgZGVsIHNpdG8gZSBwZXIgc2NvcGkgcHViYmxpY2l0YXJpLiBQZXIgbWFnZ2lvcmkgaW5mb3JtYXppb25pIGluIG1lcml0byBhbGxcXCd1dGlsaXp6byBkZWkgY29va2llIGUgYWxsZSB0dWUgc2NlbHRlIGEgcmlndWFyZG8sIGNvbnN1bHRhIGxhIG5vc3RyYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+SW5mb3JtYXRpdmEgc3VpIENvb2tpZTwvYT4hIENsaWNjYW5kbyBzdSBcIkFjY2V0dGEgY29va2llXCIgZGkgc2VndWl0bywgY2kgZm9ybmlzY2kgaWwgY29uc2Vuc28gYSB1dGlsaXp6YXJlIHR1dHRpIGkgY29va2llLCBpbmNsdXNpIHF1ZWxsaSBub24gZXNzZW56aWFsaS4gUHVvaSByaWZpdXRhcmUgdHV0dGkgaSBjb29raWUgbm9uIGVzc2VuemlhbGkgY2xpY2NhbmRvIHN1bGxhIFwiWFwiIGEgZGVzdHJhLiBBY2NlZGkgYWxsZSBcIkltcG9zdGF6aW9uaSBkZWkgY29va2llXCIgbyBhbGxhIG5vc3RyYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+SW5mb3JtYXRpdmEgc3VpIENvb2tpZTwvYT4gcGVyIG1vZGlmaWNhcm5lIGxlIGltcG9zdGF6aW9uaSBlIHJpdGlyYXJlIGlsIHR1byBjb25zZW5zbyBpbiBxdWFsc2lhc2kgbW9tZW50by4nLENPT0tJRV9QT1BVUF9FVTonQ2lhbyEgU3UgcXVlc3RvIHNpdG8gd2ViIHV0aWxpenppYW1vIGNvb2tpZSBlIHRlY25vbG9naWUgc2ltaWxpIChcImNvb2tpZVwiKSwgY29tcHJlc2kgcXVlbGxpIGRpIHRlcnplIHBhcnRpLCBwZXIgZmFyIGZ1bnppb25hcmUgZSBtaWdsaW9yYXJlIGxhIHR1YSBlc3BlcmllbnphIGRpIG5hdmlnYXppb25lLCBtb25pdG9yYXJlIGxlIHByZXN0YXppb25pIGRlbCBzaXRvIGUgcGVyIHNjb3BpIHB1YmJsaWNpdGFyaS4gUGVyIG1hZ2dpb3JpIGluZm9ybWF6aW9uaSBpbiBtZXJpdG8gYWxsXFwndXRpbGl6em8gZGVpIGNvb2tpZSBlIGFsbGUgdHVlIHNjZWx0ZSBhIHJpZ3VhcmRvLCBjb25zdWx0YSBsYSBub3N0cmEgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkluZm9ybWF0aXZhIHN1aSBDb29raWU8L2E+ISBDbGljY2FuZG8gc3UgXCJBY2NldHRhIGNvb2tpZVwiIGRpIHNlZ3VpdG8sIGNpIGZvcm5pc2NpIGlsIGNvbnNlbnNvIGEgdXRpbGl6emFyZSB0dXR0aSBpIGNvb2tpZSwgaW5jbHVzaSBxdWVsbGkgbm9uIGVzc2VuemlhbGkuIFB1b2kgcmlmaXV0YXJlIHR1dHRpIGkgY29va2llIG5vbiBlc3NlbnppYWxpIGNsaWNjYW5kbyBzdWxsYSBcIlhcIiBhIGRlc3RyYS4gQWNjZWRpIGFsbGUgXCJJbXBvc3RhemlvbmkgZGVpIGNvb2tpZVwiIG8gYWxsYSBub3N0cmEgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkluZm9ybWF0aXZhIHN1aSBDb29raWU8L2E+IHBlciBtb2RpZmljYXJuZSBsZSBpbXBvc3RhemlvbmkgZSByaXRpcmFyZSBpbCB0dW8gY29uc2Vuc28gaW4gcXVhbHNpYXNpIG1vbWVudG8uJyxBZ3JlZVRleHQ6XCJBY2NldHRhIGNvb2tpZVwiLFNldHRpbmdzVGV4dDpcIkltcG9zdGF6aW9uaSBkZWkgY29va2llXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJTZWduYWxhIHVuYSB2aW9sYXppb25lXCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwiamEtanBcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJMaXZlXCIsQWRzOlwiXFx1NWU4M1xcdTU0NGFcIixDb21wYW55OlwiXFx1NGYwMVxcdTY5NmRcIixIb21lOlwiXFx1MzBkYlxcdTMwZmNcXHUzMGUwXCIsQmxvZzpcIlxcdTMwZDZcXHUzMGVkXFx1MzBiMFwiLEpvYnM6XCJcXHU2M2ExXFx1NzUyOFxcdTYwYzVcXHU1ODMxXCIsQ2FyZWVyczpcIlxcdTMwYWRcXHUzMGUzXFx1MzBlYVxcdTMwYTJcIixQcmVzczpcIlxcdTMwZTFcXHUzMGM3XFx1MzBhM1xcdTMwYTJcXHU5NWEyXFx1OTAyM1wiLE5ld3M6XCJcXHUzMGNiXFx1MzBlNVxcdTMwZmNcXHUzMGI5XCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTMwZTFcXHUzMGM3XFx1MzBhM1xcdTMwYTJcXHU5NWEyXFx1OTAyM1xcdTMwNmVcXHUzMDRhXFx1NTU0ZlxcdTMwNDRcXHU1NDA4XFx1MzA4ZlxcdTMwNWJcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiXFx1OGEwMFxcdThhOWVcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJTbmFwY2hhdFxcdTMwOTJcXHUzMGMwXFx1MzBhNlxcdTMwZjNcXHUzMGVkXFx1MzBmY1xcdTMwYzlcXHUzMDU5XFx1MzA4YlwiLERvd25sb2FkOlwiXFx1MzBjMFxcdTMwYTZcXHUzMGYzXFx1MzBlZFxcdTMwZmNcXHUzMGM5XCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIlxcdTMwYjlcXHUzMGM4XFx1MzBmY1xcdTMwZWFcXHUzMGZjXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTMwYjlcXHUzMGM4XFx1MzBhMlwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiaU9TXFx1NzUyOFNuYXBjaGF0XCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiQW5kcm9pZFxcdTc1MjhTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTMwYjNcXHUzMGRmXFx1MzBlNVxcdTMwY2JcXHUzMGM2XFx1MzBhM1wiLFN1cHBvcnQ6XCJcXHUzMGI1XFx1MzBkZFxcdTMwZmNcXHUzMGM4XCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1MzBiM1xcdTMwZGZcXHUzMGU1XFx1MzBjYlxcdTMwYzZcXHUzMGEzXFx1MzBhY1xcdTMwYTRcXHUzMGM5XFx1MzBlOVxcdTMwYTRcXHUzMGYzXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJcXHUzMGJiXFx1MzBmY1xcdTMwZDVcXHUzMGM2XFx1MzBhM1xcdTMwYmJcXHUzMGYzXFx1MzBiZlxcdTMwZmNcIixTbmFwY29kZXM6XCJTbmFwXFx1MzBiM1xcdTMwZmNcXHUzMGM5XCIsR2VvZmlsdGVyczpcIlxcdTMwYjhcXHUzMGFhXFx1MzBkNVxcdTMwYTNcXHUzMGViXFx1MzBiZlxcdTMwZmNcIixDcmVhdGU6XCJcXHUzMGQ1XFx1MzBhM1xcdTMwZWJcXHUzMGJmXFx1MzBmYyZcXHUzMGVjXFx1MzBmM1xcdTMwYmFcIixNYXA6XCJcXHUzMGRlXFx1MzBjM1xcdTMwZDdcIixBZHZlcnRpc2luZzpcIlxcdTVlODNcXHU1NDRhXCIsXCJCdXkgQWRzXCI6XCJcXHU1ZTgzXFx1NTQ0YVxcdTMwOTJcXHU4Y2ZjXFx1NTE2NVxcdTMwNTlcXHUzMDhiXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiXFx1NWU4M1xcdTU0NGFcXHUzMGRkXFx1MzBlYVxcdTMwYjdcXHUzMGZjXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTY1M2ZcXHU2Y2JiXFx1NzY4NFxcdTMwNmFcXHU1ZTgzXFx1NTQ0YVxcdTMwNmVcXHUzMGU5XFx1MzBhNFxcdTMwZDZcXHUzMGU5XFx1MzBlYVwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiXFx1MzBkNlxcdTMwZTlcXHUzMGYzXFx1MzBjOVxcdTMwYWNcXHUzMGE0XFx1MzBjOVxcdTMwZTlcXHUzMGE0XFx1MzBmM1wiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MzBkN1xcdTMwZWRcXHUzMGUyXFx1MzBmY1xcdTMwYjdcXHUzMGU3XFx1MzBmM1xcdTMwZWJcXHUzMGZjXFx1MzBlYlwiLExlZ2FsOlwiXFx1NmNkNVxcdTUyZDlcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTUyMjlcXHU3NTI4XFx1ODk4ZlxcdTdkMDRcIixJbXByZXNzdW06XCJcXHU2MjQwXFx1NjcwOVxcdTZhMjlcXHU2MGM1XFx1NTgzMVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTMwZDdcXHUzMGU5XFx1MzBhNFxcdTMwZDBcXHUzMGI3XFx1MzBmY1xcdTMwZGRcXHUzMGVhXFx1MzBiN1xcdTMwZmNcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHUzMGQ3XFx1MzBlOVxcdTMwYTRcXHUzMGQwXFx1MzBiN1xcdTMwZmNcXHUzMGJiXFx1MzBmM1xcdTMwYmZcXHUzMGZjXCIsXCJDb29raWUgUG9saWN5XCI6XCJDb29raWUgXFx1MzBkZFxcdTMwZWFcXHUzMGI3XFx1MzBmY1wiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MzBlMVxcdTMwZTJcXHUzMGVhXFx1MzBmY1xcdTMwYmFcXHU1MjI5XFx1NzUyOFxcdTg5OGZcXHU3ZDA0XCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTMwYWJcXHUzMGI5XFx1MzBiZlxcdTMwZTBcXHUzMGFmXFx1MzBlYVxcdTMwYThcXHUzMGE0XFx1MzBjNlxcdTMwYTNcXHUzMGQ2XFx1MzBjNFxcdTMwZmNcXHUzMGViXFx1NTIyOVxcdTc1MjhcXHU4OThmXFx1N2QwNFwiLENPTU1VTklUWV9UT1M6XCJcXHUzMGIzXFx1MzBkZlxcdTMwZTVcXHUzMGNiXFx1MzBjNlxcdTMwYTNcXHUzMGI4XFx1MzBhYVxcdTMwZDVcXHUzMGEzXFx1MzBlYlxcdTMwYmZcXHUzMGZjXFx1NTIyOVxcdTc1MjhcXHU4OThmXFx1N2QwNFwiLExFTlNfU1RVRElPX1RPUzpcIkxlbnMgU3R1ZGlvXFx1NTIyOVxcdTc1MjhcXHU4OThmXFx1N2QwNFwiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlxcdTMwZDdcXHUzMGU5XFx1MzBhNFxcdTMwZDBcXHUzMGI3XFx1MzBmY1xcdTMwNmVcXHU5MDc4XFx1NjI5ZVxcdTgwYTJcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHU1ZmM1XFx1ODk4MVxcdTMwNmFDb29raWVcIixjb250ZW50OlsnXFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzA2ZVxcdTkwNGJcXHU1NWI2XFx1MzA2ZVxcdTc2ZWVcXHU3Njg0XFx1MzA2N1xcdTMwNTNcXHUzMDhjXFx1MzA4OVxcdTMwNmU8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPkNvb2tpZVxcdTMwOTJcXHU0ZjdmXFx1NzUyOFxcdTMwNTdcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5PC9hPlxcdTMwMDJcXHUzMDUzXFx1MzA4Y1xcdTMwODlcXHUzMDZmXFx1NWZjNVxcdTg5ODFcXHUzMDZhQ29va2llc1xcdTMwNjdcXHUzMDQyXFx1MzA4YlxcdTMwNWZcXHUzMDgxXFx1MzAwMVxcdTcxMjFcXHU1MmI5XFx1MzA2YlxcdTMwNjdcXHUzMDRkXFx1MzA3ZVxcdTMwNWJcXHUzMDkzXFx1MzAwMiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHU4YTJkXFx1NWI5YVwiLGNvbnRlbnQ6WydcXHU1ZjUzXFx1NzkzZVxcdTMwYTZcXHUzMGE3XFx1MzBkNlxcdTMwYjVcXHUzMGE0XFx1MzBjOFxcdTMwNjdcXHUzMDZmPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPkNvb2tpZVxcdTMwOTJcXHU0ZjdmXFx1MzA2M1xcdTMwNjY8L2E+XFx1MzA0YVxcdTViYTJcXHU2OWQ4XFx1MzA2ZVxcdThhMmRcXHU1YjlhXFx1MzA5MlxcdTg5OWFcXHUzMDQ4XFx1MzAwMVxcdTMwZTZcXHUzMGZjXFx1MzBiNlxcdTMwZmNcXHUzMGE4XFx1MzBhZlxcdTMwYjlcXHUzMGRhXFx1MzBlYVxcdTMwYThcXHUzMGYzXFx1MzBiOVxcdTMwNmVcXHU1NDExXFx1NGUwYVxcdTMwNmJcXHU1MmFhXFx1MzA4MVxcdTMwNjZcXHUzMDQ0XFx1MzA3ZVxcdTMwNTlcXHUzMDAyJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTMwZDFcXHUzMGQ1XFx1MzBhOVxcdTMwZmNcXHUzMGRlXFx1MzBmM1xcdTMwYjlcXHUzMDY4XFx1MzBhMlxcdTMwY2FcXHUzMGVhXFx1MzBjNlxcdTMwYTNcXHUzMGFmXFx1MzBiOVwiLGNvbnRlbnQ6WydcXHUzMDRhXFx1NWJhMlxcdTY5ZDhcXHUzMDZiXFx1MzA4OFxcdTMwOGJcXHU1ZjUzXFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzA2ZVxcdTUyMjlcXHU3NTI4XFx1MzA2YlxcdTk1YTJcXHUzMDU5XFx1MzA4YlxcdTYwYzVcXHU1ODMxXFx1NTNjZVxcdTk2YzZcXHUzMDAxXFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzBkMVxcdTMwZDVcXHUzMGE5XFx1MzBmY1xcdTMwZGVcXHUzMGYzXFx1MzBiOVxcdTMwNmVcXHUzMGUyXFx1MzBjYlxcdTMwYmZcXHUzMGVhXFx1MzBmM1xcdTMwYjBcXHUzMDAxXFx1MzA1ZFxcdTMwNTdcXHUzMDY2XFx1MzBiNVxcdTMwYTRcXHUzMGM4XFx1MzBkMVxcdTMwZDVcXHUzMGE5XFx1MzBmY1xcdTMwZGVcXHUzMGYzXFx1MzBiOVxcdTMwNjhcXHUzMGU2XFx1MzBmY1xcdTMwYjZcXHUzMGZjXFx1MzBhOFxcdTMwYWZcXHUzMGI5XFx1MzBkYVxcdTMwZWFcXHUzMGE4XFx1MzBmM1xcdTMwYjlcXHUzMDZlXFx1NTQxMVxcdTRlMGFcXHUzMDZlXFx1MzA1ZlxcdTMwODFcXHUzMDZiPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPkNvb2tpZVxcdTMwOTJcXHU0ZjdmXFx1NzUyOFxcdTMwNTdcXHUzMDY2XFx1MzA0NFxcdTMwN2VcXHUzMDU5PC9hPlxcdTMwMDInXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIlxcdTMwZGVcXHUzMGZjXFx1MzBiMVxcdTMwYzZcXHUzMGEzXFx1MzBmM1xcdTMwYjBcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5Db29raWVcXHUzMDkyXFx1NGY3ZlxcdTMwNjNcXHUzMDY2PC9hPlxcdTk1YTJcXHU5MDIzXFx1NjAyN1xcdTMwNmVcXHU5YWQ4XFx1MzA0NFxcdTVlODNcXHU1NDRhXFx1MzA5MlxcdTg4NjhcXHU3OTNhXFx1MzA1NVxcdTMwNWJcXHUzMDAxXFx1NWU4M1xcdTU0NGFcXHUzMGFkXFx1MzBlM1xcdTMwZjNcXHUzMGRhXFx1MzBmY1xcdTMwZjNcXHUzMDZlXFx1NTJiOVxcdTY3OWNcXHUzMDkyXFx1NmUyY1xcdTViOWFcXHUzMDU3XFx1MzA2NlxcdTMwNDRcXHUzMDdlXFx1MzA1OVxcdTMwMDJcXHUzMGI1XFx1MzBmY1xcdTMwYzlcXHUzMGQxXFx1MzBmY1xcdTMwYzZcXHUzMGEzXFx1MzA2ZVxcdTVlODNcXHU1NDRhXFx1MzBkMVxcdTMwZmNcXHUzMGM4XFx1MzBjYVxcdTMwZmNcXHUzMDZmXFx1MzA1M1xcdTMwNmVcXHUzMDg4XFx1MzA0NlxcdTMwNmFDb29raWVcXHUzMDkyXFx1NGY3ZlxcdTc1MjhcXHUzMDU3XFx1MzA2NlxcdTMwMDFcXHUzMDRhXFx1NWJhMlxcdTY5ZDhcXHUzMDRjXFx1OTVhMlxcdTVmYzNcXHUzMDkyXFx1NjMwMVxcdTMwNjRcXHU2MGM1XFx1NTgzMVxcdTMwOTJcXHU1M2NlXFx1OTZjNlxcdTMwNTdcXHUzMDAxXFx1NGVkNlxcdTMwNmVcXHUzMGI1XFx1MzBhNFxcdTMwYzhcXHUzMDY3XFx1OTVhMlxcdTkwMjNcXHUzMDU5XFx1MzA4YlxcdTVlODNcXHU1NDRhXFx1MzA5MlxcdTg4NjhcXHU3OTNhXFx1MzA1OVxcdTMwOGJcXHUzMDUzXFx1MzA2OFxcdTMwNGNcXHUzMDQyXFx1MzA4YVxcdTMwN2VcXHUzMDU5XFx1MzAwMiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTMwYjVcXHUzMGZjXFx1MzBjOVxcdTMwZDFcXHUzMGZjXFx1MzBjNlxcdTMwYTNcXHUzMDZlXFx1NWU4M1xcdTU0NGFcXHUzMGQxXFx1MzBmY1xcdTMwYzhcXHUzMGNhXFx1MzBmY1wiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTMwYjVcXHUzMGZjXFx1MzBjOVxcdTMwZDFcXHUzMGZjXFx1MzBjNlxcdTMwYTNcXHUzMDZlXFx1NWU4M1xcdTU0NGFcXHUzMGQxXFx1MzBmY1xcdTMwYzhcXHUzMGNhXFx1MzBmY1xcdWZmMWFcIixFZmZlY3RpdmVEYXRlOlwiXFx1NzY3YVxcdTUyYjlcXHU2NWU1XFx1ZmYxYTIwMTlcXHU1ZTc0MVxcdTY3MDgxNVxcdTY1ZTVcIixCb2R5OltcIlxcdTMwZDZcXHUzMGU5XFx1MzBhNlxcdTMwYjZcXHUzMGZjXFx1MzA4NFxcdTMwYzdcXHUzMGQwXFx1MzBhNFxcdTMwYjlcXHUzMDY3Q29va2llXFx1MzA5MlxcdTdiYTFcXHU3NDA2XFx1MzA1OVxcdTMwOGJcXHU0ZWU1XFx1NTkxNlxcdTMwNmJcXHUzMDAxXFx1NGUwYlxcdThhMThcXHUzMDZlXFx1OGEyZFxcdTViOWFcXHU3NTNiXFx1OTc2MlxcdTMwNGJcXHUzMDg5Q29va2llXFx1MzA5MlxcdTU5MDlcXHU2NmY0XFx1MzA1OVxcdTMwOGJcXHUzMDUzXFx1MzA2OFxcdTMwODJcXHUzMDY3XFx1MzA0ZFxcdTMwN2VcXHUzMDU5XFx1MzAwMlxcdTVmNTNcXHUzMGI1XFx1MzBhNFxcdTMwYzhcXHUzMDkyXFx1NTIyOVxcdTc1MjhcXHUzMDU5XFx1MzA4YlxcdTRlMGFcXHUzMDY3XFx1NWZjNVxcdTg5ODFcXHUzMDZhQ29va2llXFx1MzA2ZlxcdThhMmRcXHU1YjlhXFx1NzUzYlxcdTk3NjJcXHUzMDY3XFx1MzBkNlxcdTMwZWRcXHUzMGMzXFx1MzBhZlxcdTMwNTlcXHUzMDhiXFx1MzA1M1xcdTMwNjhcXHUzMDRjXFx1MzA2N1xcdTMwNGRcXHUzMDdlXFx1MzA1YlxcdTMwOTNcXHUzMDAyXCJdLFRpdGxlOlwiQ29va2llXFx1MzA2ZVxcdThhMmRcXHU1YjlhXCIsQ09PS0lFX1BPUFVQOidcXHUzMDU0XFx1NTIyOVxcdTc1MjhcXHUzMDZlXFx1NzY4NlxcdTY5ZDhcXHUzMDAxXFx1NjcyY1xcdTMwYTZcXHUzMGE3XFx1MzBkNlxcdTMwYjVcXHUzMGE0XFx1MzBjOFxcdTMwNjdcXHUzMDZmXFx1MzAwMUNvb2tpZVxcdTMwODRcXHUzMDAxXFx1MzBiNVxcdTMwZmNcXHUzMGM5XFx1MzBkMVxcdTMwZmNcXHUzMGM2XFx1MzBhM0Nvb2tpZVxcdTMwNmFcXHUzMDY5XFx1NTQwY1xcdTY5ZDhcXHUzMDZlXFx1MzBjNlxcdTMwYWZcXHUzMGNlXFx1MzBlZFxcdTMwYjhcXHUzMGZjXFx1ZmYwOFxcdTRlZTVcXHU0ZTBiXFx1MzAwMVxcdTMwMGNDb29raWVcXHUzMDBkXFx1ZmYwOVxcdTMwOTJcXHU0ZjdmXFx1NzUyOFxcdTMwNTdcXHUzMDdlXFx1MzA1OVxcdTMwMDJcXHUzMDUzXFx1MzA4Y1xcdTMwNmZcXHUzMDAxXFx1NjRjZFxcdTRmNWNcXHU3NGIwXFx1NTg4M1xcdTMwODRcXHU5NWIyXFx1ODlhN1xcdTc0YjBcXHU1ODgzXFx1MzA2ZVxcdTU0MTFcXHU0ZTBhXFx1MzAwMVxcdTMwZDFcXHUzMGQ1XFx1MzBhOVxcdTMwZmNcXHUzMGRlXFx1MzBmM1xcdTMwYjlcXHUzMDZlXFx1NzZlM1xcdTg5OTZcXHUzMDAxXFx1NWU4M1xcdTU0NGFcXHUzMDkyXFx1NzZlZVxcdTc2ODRcXHUzMDY4XFx1MzA1N1xcdTMwNWZcXHUzMDgyXFx1MzA2ZVxcdTMwNjdcXHUzMDU5XFx1MzAwMkNvb2tpZVxcdTMwNmJcXHU5NWEyXFx1MzA1N1xcdTMwNjZcXHUzMDAxXFx1NWY1M1xcdTc5M2VcXHUzMDZlXFx1NGY3ZlxcdTc1MjhcXHU2NWI5XFx1NmNkNVxcdTMwNGFcXHUzMDg4XFx1MzA3M1xcdTMwNGFcXHU1YmEyXFx1NjlkOFxcdTUwNzRcXHUzMDZlXFx1OGEyZFxcdTViOWFcXHUzMDZiXFx1MzA2NFxcdTMwNDRcXHUzMDY2XFx1MzA2ZlxcdTMwMDE8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llXFx1MzBkZFxcdTMwZWFcXHUzMGI3XFx1MzBmYzwvYT5cXHUzMDkyXFx1MzA1NFxcdTg5YTdcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XFx1MzAwMlxcdTRlZTVcXHU0ZTBiXFx1MzA2N1xcdTMwMGNDb29raWVcXHUzMDkyXFx1NTNkN1xcdTMwNTFcXHU1MTY1XFx1MzA4Y1xcdTMwOGJcXHUzMDBkXFx1MzA5MlxcdTMwYWZcXHUzMGVhXFx1MzBjM1xcdTMwYWZcXHUzMDU5XFx1MzA4YlxcdTMwNjhcXHUzMDAxXFx1MzA0YVxcdTViYTJcXHU2OWQ4XFx1MzA2ZlxcdTVmYzVcXHU5ODA4Q29va2llXFx1NGVlNVxcdTU5MTZcXHUzMDZlXFx1MzA4MlxcdTMwNmVcXHUzMDgyXFx1NTQyYlxcdTMwODFcXHUzMDAxXFx1MzA1OVxcdTMwNzlcXHUzMDY2XFx1MzA2ZUNvb2tpZVxcdTMwOTJcXHU4YTMxXFx1NTNlZlxcdTMwNTdcXHUzMDVmXFx1MzA4MlxcdTMwNmVcXHUzMDY4XFx1MzA3ZlxcdTMwNmFcXHUzMDU1XFx1MzA4Y1xcdTMwN2VcXHUzMDU5XFx1MzAwMlxcdTVmYzVcXHU5ODA4Q29va2llXFx1NGVlNVxcdTU5MTZcXHUzMDZlQ29va2llXFx1MzA5MlxcdTYyZDJcXHU1NDI2XFx1MzA1OVxcdTMwOGJcXHU1ODM0XFx1NTQwOFxcdTMwNmZcXHUzMDAxXFx1NTNmM1xcdTMwNmVcXHUzMDBjWFxcdTMwMGRcXHUzMDkyXFx1MzBhZlxcdTMwZWFcXHUzMGMzXFx1MzBhZlxcdTMwNTdcXHUzMDY2XFx1MzA0ZlxcdTMwNjBcXHUzMDU1XFx1MzA0NFxcdTMwMDJcXHU0ZTBiXFx1OGExOFxcdTMwNmVcXHUzMDBjQ29va2llXFx1MzA2ZVxcdThhMmRcXHU1YjlhXFx1MzAwZFxcdTMwNGI8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llXFx1MzBkZFxcdTMwZWFcXHUzMGI3XFx1MzBmYzwvYT5cXHUzMDRiXFx1MzA4OVxcdTMwMDFDb29raWVcXHUzMDZlXFx1OGEyZFxcdTViOWFcXHUzMDZmXFx1OTY4ZlxcdTY2NDJcXHU1OTA5XFx1NjZmNFxcdTMwNTdcXHUzMDY2XFx1OGEzMVxcdTUzZWZcXHUzMDkyXFx1NTNkNlxcdTMwOGFcXHU0ZTBiXFx1MzA1MlxcdTMwOGJcXHUzMDUzXFx1MzA2OFxcdTMwNGNcXHU1M2VmXFx1ODBmZFxcdTMwNjdcXHUzMDU5XFx1MzAwMicsQ09PS0lFX1BPUFVQX0VVOidcXHUzMDU0XFx1NTIyOVxcdTc1MjhcXHUzMDZlXFx1NzY4NlxcdTY5ZDhcXHUzMDAxXFx1NjcyY1xcdTMwYTZcXHUzMGE3XFx1MzBkNlxcdTMwYjVcXHUzMGE0XFx1MzBjOFxcdTMwNjdcXHUzMDZmXFx1MzAwMUNvb2tpZVxcdTMwODRcXHUzMDAxXFx1MzBiNVxcdTMwZmNcXHUzMGM5XFx1MzBkMVxcdTMwZmNcXHUzMGM2XFx1MzBhM0Nvb2tpZVxcdTMwNmFcXHUzMDY5XFx1NTQwY1xcdTY5ZDhcXHUzMDZlXFx1MzBjNlxcdTMwYWZcXHUzMGNlXFx1MzBlZFxcdTMwYjhcXHUzMGZjXFx1ZmYwOFxcdTRlZTVcXHU0ZTBiXFx1MzAwMVxcdTMwMGNDb29raWVcXHUzMDBkXFx1ZmYwOVxcdTMwOTJcXHU0ZjdmXFx1NzUyOFxcdTMwNTdcXHUzMDdlXFx1MzA1OVxcdTMwMDJcXHUzMDUzXFx1MzA4Y1xcdTMwNmZcXHUzMDAxXFx1NjRjZFxcdTRmNWNcXHU3NGIwXFx1NTg4M1xcdTMwODRcXHU5NWIyXFx1ODlhN1xcdTc0YjBcXHU1ODgzXFx1MzA2ZVxcdTU0MTFcXHU0ZTBhXFx1MzAwMVxcdTMwZDFcXHUzMGQ1XFx1MzBhOVxcdTMwZmNcXHUzMGRlXFx1MzBmM1xcdTMwYjlcXHUzMDZlXFx1NzZlM1xcdTg5OTZcXHUzMDAxXFx1NWU4M1xcdTU0NGFcXHUzMDkyXFx1NzZlZVxcdTc2ODRcXHUzMDY4XFx1MzA1N1xcdTMwNWZcXHUzMDgyXFx1MzA2ZVxcdTMwNjdcXHUzMDU5XFx1MzAwMkNvb2tpZVxcdTMwNmJcXHU5NWEyXFx1MzA1N1xcdTMwNjZcXHUzMDAxXFx1NWY1M1xcdTc5M2VcXHUzMDZlXFx1NGY3ZlxcdTc1MjhcXHU2NWI5XFx1NmNkNVxcdTMwNGFcXHUzMDg4XFx1MzA3M1xcdTMwNGFcXHU1YmEyXFx1NjlkOFxcdTUwNzRcXHUzMDZlXFx1OGEyZFxcdTViOWFcXHUzMDZiXFx1MzA2NFxcdTMwNDRcXHUzMDY2XFx1MzA2ZlxcdTMwMDE8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llXFx1MzBkZFxcdTMwZWFcXHUzMGI3XFx1MzBmYzwvYT5cXHUzMDkyXFx1MzA1NFxcdTg5YTdcXHUzMDRmXFx1MzA2MFxcdTMwNTVcXHUzMDQ0XFx1MzAwMlxcdTRlZTVcXHU0ZTBiXFx1MzA2N1xcdTMwMGNDb29raWVcXHUzMDkyXFx1NTNkN1xcdTMwNTFcXHU1MTY1XFx1MzA4Y1xcdTMwOGJcXHUzMDBkXFx1MzA5MlxcdTMwYWZcXHUzMGVhXFx1MzBjM1xcdTMwYWZcXHUzMDU5XFx1MzA4YlxcdTMwNjhcXHUzMDAxXFx1MzA0YVxcdTViYTJcXHU2OWQ4XFx1MzA2ZlxcdTVmYzVcXHU5ODA4Q29va2llXFx1NGVlNVxcdTU5MTZcXHUzMDZlXFx1MzA4MlxcdTMwNmVcXHUzMDgyXFx1NTQyYlxcdTMwODFcXHUzMDAxXFx1MzA1OVxcdTMwNzlcXHUzMDY2XFx1MzA2ZUNvb2tpZVxcdTMwOTJcXHU4YTMxXFx1NTNlZlxcdTMwNTdcXHUzMDVmXFx1MzA4MlxcdTMwNmVcXHUzMDY4XFx1MzA3ZlxcdTMwNmFcXHUzMDU1XFx1MzA4Y1xcdTMwN2VcXHUzMDU5XFx1MzAwMlxcdTVmYzVcXHU5ODA4Q29va2llXFx1NGVlNVxcdTU5MTZcXHUzMDZlQ29va2llXFx1MzA5MlxcdTYyZDJcXHU1NDI2XFx1MzA1OVxcdTMwOGJcXHU1ODM0XFx1NTQwOFxcdTMwNmZcXHUzMDAxXFx1NTNmM1xcdTMwNmVcXHUzMDBjWFxcdTMwMGRcXHUzMDkyXFx1MzBhZlxcdTMwZWFcXHUzMGMzXFx1MzBhZlxcdTMwNTdcXHUzMDY2XFx1MzA0ZlxcdTMwNjBcXHUzMDU1XFx1MzA0NFxcdTMwMDJcXHU0ZTBiXFx1OGExOFxcdTMwNmVcXHUzMDBjQ29va2llXFx1MzA2ZVxcdThhMmRcXHU1YjlhXFx1MzAwZFxcdTMwNGI8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llXFx1MzBkZFxcdTMwZWFcXHUzMGI3XFx1MzBmYzwvYT5cXHUzMDRiXFx1MzA4OVxcdTMwMDFDb29raWVcXHUzMDZlXFx1OGEyZFxcdTViOWFcXHUzMDZmXFx1OTY4ZlxcdTY2NDJcXHU1OTA5XFx1NjZmNFxcdTMwNTdcXHUzMDY2XFx1OGEzMVxcdTUzZWZcXHUzMDkyXFx1NTNkNlxcdTMwOGFcXHU0ZTBiXFx1MzA1MlxcdTMwOGJcXHUzMDUzXFx1MzA2OFxcdTMwNGNcXHU1M2VmXFx1ODBmZFxcdTMwNjdcXHUzMDU5XFx1MzAwMicsQWdyZWVUZXh0OlwiQ29va2llXFx1MzA5MlxcdTUzZDdcXHUzMDUxXFx1NTE2NVxcdTMwOGNcXHUzMDhiXCIsU2V0dGluZ3NUZXh0OlwiQ29va2llXFx1MzA2ZVxcdThhMmRcXHU1YjlhXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHU2YTI5XFx1NTIyOVxcdTMwNmVcXHU0ZmI1XFx1NWJiM1xcdTMwOTJcXHU1ODMxXFx1NTQ0YVwiLFNwb3RsaWdodDpcIlNwb3RsaWdodFwifSxcImtuLWluXCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiXFx1MGNiMlxcdTBjYzhcXHUwY2I1XFx1MGNjZFxcdTIwMGNcIixBZHM6XCJcXHUwYzljXFx1MGNiZVxcdTBjYjlcXHUwY2MwXFx1MGNiMFxcdTBjYmVcXHUwY2E0XFx1MGNjMVxcdTBjOTdcXHUwY2IzXFx1MGNjMVwiLENvbXBhbnk6XCJcXHUwYzk1XFx1MGM4MlxcdTBjYWFcXHUwY2E4XFx1MGNiZlwiLEhvbWU6XCJcXHUwY2FlXFx1MGNjMVxcdTBjOTZcXHUwY2FhXFx1MGNjMVxcdTBjOWZcIixCbG9nOlwiXFx1MGNhY1xcdTBjY2RcXHUwY2IyXFx1MGNiZVxcdTBjOTdcXHUwY2NkXCIsSm9iczpcIlxcdTBjODlcXHUwY2E2XFx1MGNjZFxcdTBjYWZcXHUwY2NiXFx1MGM5N1xcdTBjOTdcXHUwY2IzXFx1MGNjMVwiLENhcmVlcnM6XCJcXHUwYzg5XFx1MGNhNlxcdTBjY2RcXHUwY2FmXFx1MGNjYlxcdTBjOTdcXHUwY2JlXFx1MGNiNVxcdTBjOTVcXHUwY2JlXFx1MGNiNlxcdTBjOTdcXHUwY2IzXFx1MGNjMVwiLFByZXNzOlwiXFx1MGNhYVxcdTBjY2RcXHUwY2IwXFx1MGNjNlxcdTBjYjhcXHUwY2NkXFx1MjAwY1wiLE5ld3M6XCJcXHUwY2I4XFx1MGNjMVxcdTBjYTZcXHUwY2NkXFx1MGNhN1xcdTBjYmZcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixcIlByZXNzIElucXVpcmllc1wiOlwiXFx1MGNhYVxcdTBjYTRcXHUwY2NkXFx1MGNiMFxcdTBjYmZcXHUwYzk1XFx1MGNiZSBcXHUwY2I1XFx1MGNiZlxcdTBjOWFcXHUwY2JlXFx1MGNiMFxcdTBjYTNcXHUwY2M2XFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTBjYWRcXHUwY2JlXFx1MGNiN1xcdTBjYzZcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJTbmFwY2hhdCBcXHUwY2ExXFx1MGNjY1xcdTBjYThcXHUwY2NkXFx1MjAwY1xcdTBjYjJcXHUwY2NiXFx1MGNhMVxcdTBjY2RcXHUyMDBjIFxcdTBjYWVcXHUwY2JlXFx1MGNhMVxcdTBjYmZcIixEb3dubG9hZDpcIlxcdTBjYTFcXHUwY2NjXFx1MGNhOFxcdTBjY2RcXHUyMDBjXFx1MGNiMlxcdTBjY2JcXHUwY2ExXFx1MGNjZCBcXHUwY2FlXFx1MGNiZVxcdTBjYTFcXHUwY2JmXCIsS2l0OlwiXFx1MGM5NVxcdTBjYmZcXHUwYzlmXFx1MGNjZFxcdTIwMGNcIixTdG9yaWVzOlwiXFx1MGM5NVxcdTBjYTVcXHUwY2M2XFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTBjYjhcXHUwY2NkXFx1MGM5ZlxcdTBjY2JcXHUwY2IwXFx1MGNjZFwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiaU9TIFxcdTBjOTdcXHUwY2JlXFx1MGM5N1xcdTBjYmYgU25hcGNoYXRcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJBbmRyb2lkIFxcdTBjOTdcXHUwY2JlXFx1MGM5N1xcdTBjYmYgU25hcGNoYXRcIixDb21tdW5pdHk6XCJcXHUwY2I4XFx1MGNhZVxcdTBjYzFcXHUwY2E2XFx1MGNiZVxcdTBjYWZcIixTdXBwb3J0OlwiXFx1MGNhY1xcdTBjYzZcXHUwYzgyXFx1MGNhY1xcdTBjYjJcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJcXHUwY2I4XFx1MGNhZVxcdTBjYzFcXHUwY2E2XFx1MGNiZVxcdTBjYWYgXFx1MGNhZVxcdTBjYmVcXHUwY2IwXFx1MGNjZFxcdTBjOTdcXHUwY2I4XFx1MGNjMlxcdTBjOWFcXHUwY2JmXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJcXHUwY2I4XFx1MGNjMVxcdTBjYjBcXHUwYzk1XFx1MGNjZFxcdTBjYjdcXHUwY2E0XFx1MGNiZSBcXHUwYzk1XFx1MGNjN1xcdTBjODJcXHUwY2E2XFx1MGNjZFxcdTBjYjBcIixTbmFwY29kZXM6XCJTbmFwY29kZXNcIixHZW9maWx0ZXJzOlwiXFx1MGM5Y1xcdTBjYmZcXHUwY2FmXFx1MGNjYlxcdTBjYWJcXHUwY2JmXFx1MGNiMlxcdTBjY2RcXHUwYzlmXFx1MGNiMFxcdTBjY2RcXHUyMDBjXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsQ3JlYXRlOlwiXFx1MGNhYlxcdTBjYmZcXHUwY2IyXFx1MGNjZFxcdTBjOWZcXHUwY2IwXFx1MGNjMVxcdTBjOTdcXHUwY2IzXFx1MGNjMSBcXHUwY2FlXFx1MGNhNFxcdTBjY2RcXHUwY2E0XFx1MGNjMSBcXHUwY2IyXFx1MGNjNlxcdTBjYThcXHUwY2NkXFx1MGNiOFxcdTBjY2RcXHUyMDBjXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsTWFwOlwiXFx1MGNhZVxcdTBjY2RcXHUwY2FmXFx1MGNiZVxcdTBjYWFcXHUwY2NkXCIsQWR2ZXJ0aXNpbmc6XCJcXHUwYzljXFx1MGNiZVxcdTBjYjlcXHUwY2MwXFx1MGNiMFxcdTBjYmVcXHUwY2E0XFx1MGNjMSBcXHUwY2E4XFx1MGNjMFxcdTBjYTFcXHUwY2MxXFx1MGNiNVxcdTBjYmZcXHUwYzk1XFx1MGNjNlwiLFwiQnV5IEFkc1wiOlwiXFx1MGM5Y1xcdTBjYmVcXHUwY2I5XFx1MGNjMFxcdTBjYjBcXHUwY2JlXFx1MGNhNFxcdTBjYzEgXFx1MGM5NlxcdTBjYjBcXHUwY2MwXFx1MGNhNlxcdTBjYmZcXHUwY2I4XFx1MGNiZlwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlxcdTBjOWNcXHUwY2JlXFx1MGNiOVxcdTBjYzBcXHUwY2IwXFx1MGNiZVxcdTBjYTRcXHUwY2MxIFxcdTBjYThcXHUwY2MwXFx1MGNhNFxcdTBjYmZcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiXFx1MGNiMFxcdTBjYmVcXHUwYzljXFx1MGM5NVxcdTBjYzBcXHUwY2FmIFxcdTBjOWNcXHUwY2JlXFx1MGNiOVxcdTBjYzBcXHUwY2IwXFx1MGNiZVxcdTBjYTRcXHUwY2MxXFx1MGM5N1xcdTBjYjMgXFx1MGNiMlxcdTBjYzhcXHUwY2FjXFx1MGNjZFxcdTBjYjBcXHUwY2IwXFx1MGNiZlwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiXFx1MGNhY1xcdTBjY2RcXHUwY2IwXFx1MGNiZVxcdTBjODJcXHUwY2ExXFx1MGNjZCBcXHUwY2FlXFx1MGNiZVxcdTBjYjBcXHUwY2NkXFx1MGM5N1xcdTBjYjhcXHUwY2MyXFx1MGM5YVxcdTBjYmZcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlxcdTBjYWFcXHUwY2NkXFx1MGNiMFxcdTBjYWVcXHUwY2NiXFx1MGNiNlxcdTBjYThcXHUwY2NkXFx1MjAwYyBcXHUwY2E4XFx1MGNiZlxcdTBjYWZcXHUwY2FlXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsTGVnYWw6XCJcXHUwYzk1XFx1MGNiZVxcdTBjYThcXHUwY2MyXFx1MGNhOFxcdTBjYzEgXFx1MGNiOFxcdTBjODJcXHUwY2FjXFx1MGM4MlxcdTBjYTdcXHUwY2JmXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwY2I4XFx1MGNjN1xcdTBjYjVcXHUwY2JlIFxcdTBjYThcXHUwY2JmXFx1MGNhZlxcdTBjYWVcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixJbXByZXNzdW06XCJcXHUwYzg3XFx1MGM4MlxcdTBjYWFcXHUwY2NkXFx1MGNiMFxcdTBjYzZcXHUwY2I4XFx1MGNjZFxcdTBjYjhcXHUwY2FlXFx1MGNjZFxcdTIwMGNcIixcIlByaXZhY3kgUG9saWN5XCI6XCJcXHUwYzk3XFx1MGNjY1xcdTBjYWFcXHUwY2NkXFx1MGNhZlxcdTBjYTRcXHUwY2JlIFxcdTBjYThcXHUwY2MwXFx1MGNhNFxcdTBjYmZcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHUwYzk3XFx1MGNjY1xcdTBjYWFcXHUwY2NkXFx1MGNhZlxcdTBjYTRcXHUwY2JlIFxcdTBjOTVcXHUwY2M3XFx1MGM4MlxcdTBjYTZcXHUwY2NkXFx1MGNiMFwiLFwiQ29va2llIFBvbGljeVwiOlwiXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMCBcXHUwY2E4XFx1MGNjMFxcdTBjYTRcXHUwY2JmXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwY2E4XFx1MGNjNlxcdTBjYThcXHUwY2FhXFx1MGNjMVxcdTBjOTdcXHUwY2IzXFx1MGNjMSBcXHUwY2I4XFx1MGNjN1xcdTBjYjVcXHUwY2JlIFxcdTBjYThcXHUwY2JmXFx1MGNhZlxcdTBjYWVcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MGM5NVxcdTBjYjhcXHUwY2NkXFx1MGM5ZlxcdTBjYWVcXHUwY2NkIFxcdTBjOTVcXHUwY2NkXFx1MGNiMFxcdTBjYmZcXHUwY2FmXFx1MGNjN1xcdTBjOWZcXHUwY2JmXFx1MGNiNVxcdTBjY2QgXFx1MGM5ZlxcdTBjYzJcXHUwY2IyXFx1MGNjZFxcdTBjYjhcXHUwY2NkIFxcdTBjYThcXHUwY2JmXFx1MGNhZlxcdTBjYWVcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixDT01NVU5JVFlfVE9TOlwiQ29tbXVuaXR5IEdlb2ZpbHRlciBcXHUwY2E4XFx1MGNiZlxcdTBjYWZcXHUwY2FlXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1MGNhOFxcdTBjYmZcXHUwY2FmXFx1MGNhZVxcdTBjOTdcXHUwY2IzXFx1MGNjMVwiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlxcdTBjYThcXHUwY2JmXFx1MGNhZVxcdTBjY2RcXHUwY2FlIFxcdTBjOTdcXHUwY2NjXFx1MGNhYVxcdTBjY2RcXHUwY2FmXFx1MGNhNFxcdTBjYzYgXFx1MGM4NlxcdTBjYWZcXHUwY2NkXFx1MGM5NVxcdTBjYzZcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHUwYzg1XFx1MGM5N1xcdTBjYTRcXHUwY2NkXFx1MGNhZiBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsY29udGVudDpbJ1xcdTBjYjhcXHUwY2M4XFx1MGM5ZlxcdTBjY2RcXHUyMDBjIFxcdTBjOTVcXHUwY2JlXFx1MGNiMFxcdTBjY2RcXHUwY2FmXFx1MGNhOFxcdTBjYmZcXHUwY2IwXFx1MGNjZFxcdTBjYjVcXHUwY2I5XFx1MGNhM1xcdTBjYzZcXHUwYzk3XFx1MGNjNiBcXHUwY2I4XFx1MGNiOVxcdTBjYmVcXHUwY2FmXFx1MGNiNVxcdTBjYmVcXHUwYzk3XFx1MGNiMlxcdTBjYzEgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHUwY2E4XFx1MGNiZVxcdTBjYjVcXHUwY2MxIFxcdTBjODggXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2FjXFx1MGNiM1xcdTBjYjhcXHUwY2MxXFx1MGNhNFxcdTBjY2RcXHUwY2E0XFx1MGNjN1xcdTBjYjVcXHUwY2M2PC9hPi4gXFx1MGNhZlxcdTBjYmVcXHUwYzk1XFx1MGNjNlxcdTBjODJcXHUwY2E2XFx1MGNiMFxcdTBjYzYsIFxcdTBjODggXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNjMSBcXHUwYzg1XFx1MGM5N1xcdTBjYTRcXHUwY2NkXFx1MGNhZlxcdTBjYjVcXHUwY2JlXFx1MGM5N1xcdTBjYmZcXHUwY2E2XFx1MGNjZFxcdTBjYTZcXHUwY2MxLCBcXHUwY2E4XFx1MGNjMFxcdTBjYjVcXHUwY2MxIFxcdTBjODdcXHUwY2E2XFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwYzg2XFx1MGNhYlxcdTBjY2RcXHUyMDBjIFxcdTBjYWVcXHUwY2JlXFx1MGNhMVxcdTBjYjJcXHUwY2JlXFx1MGM5N1xcdTBjYzFcXHUwY2I1XFx1MGNjMVxcdTBjYTZcXHUwY2JmXFx1MGNiMlxcdTBjY2RcXHUwY2IyLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwYzg2XFx1MGNhNlxcdTBjY2RcXHUwY2FmXFx1MGNhNFxcdTBjYzZcXHUwYzk3XFx1MGNiM1xcdTBjYzFcIixjb250ZW50OlsnXFx1MGNhOFxcdTBjYmZcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGM4NlxcdTBjYTZcXHUwY2NkXFx1MGNhZlxcdTBjYTRcXHUwY2M2XFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYThcXHUwY2M2XFx1MGNhOFxcdTBjYWFcXHUwY2JmXFx1MGM5ZlxcdTBjY2RcXHUwYzlmXFx1MGNjMVxcdTBjOTVcXHUwY2NhXFx1MGNiM1xcdTBjY2RcXHUwY2IzXFx1MGNiMlxcdTBjYzEgXFx1MGNhZVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYzEgXFx1MGNhOFxcdTBjYWVcXHUwY2NkXFx1MGNhZSBcXHUwY2I1XFx1MGNjNlxcdTBjYWNcXHUwY2NkXFx1MjAwY1xcdTBjYjhcXHUwY2M4XFx1MGM5ZlxcdTBjY2RcXHUyMDBjXFx1MGNhOFxcdTBjYjJcXHUwY2NkXFx1MGNiMlxcdTBjYmYgXFx1MGNhOFxcdTBjYmZcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGM4NVxcdTBjYThcXHUwY2MxXFx1MGNhZFxcdTBjYjVcXHUwY2I1XFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2I4XFx1MGNjMVxcdTBjYTdcXHUwY2JlXFx1MGNiMFxcdTBjYmZcXHUwY2I4XFx1MGNiMlxcdTBjYzEgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTBjYThcXHUwY2JlXFx1MGNiNVxcdTBjYzEgXFx1MGM4OCBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYzFcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2M3XFx1MGNiNVxcdTBjYzY8L2E+LiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJcXHUwYzk1XFx1MGNiZVxcdTBjYjBcXHUwY2NkXFx1MGNhZlxcdTBjOTVcXHUwY2NkXFx1MGNiN1xcdTBjYWVcXHUwY2E0XFx1MGNjNiBcXHUwY2FlXFx1MGNhNFxcdTBjY2RcXHUwY2E0XFx1MGNjMSBcXHUwYzg1XFx1MGNhOFxcdTBjYmVcXHUwY2IyXFx1MGNiZlxcdTBjOWZcXHUwY2JmXFx1MGM5NVxcdTBjY2RcXHUwY2I4XFx1MGNjZFxcdTIwMGNcIixjb250ZW50OlsnXFx1MGNhOFxcdTBjYWVcXHUwY2NkXFx1MGNhZSBcXHUwY2I4XFx1MGNjOFxcdTBjOWZcXHUwY2NkIFxcdTBjODVcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYThcXHUwY2MwXFx1MGNiNVxcdTBjYzEgXFx1MGNiOVxcdTBjYzdcXHUwYzk3XFx1MGNjNiBcXHUwY2FjXFx1MGNiM1xcdTBjYjhcXHUwY2MxXFx1MGNhNFxcdTBjY2RcXHUwY2E0XFx1MGNjMFxcdTBjYjBcXHUwY2JmIFxcdTBjOTVcXHUwY2MxXFx1MGNiMFxcdTBjYmZcXHUwY2E0XFx1MGNjMSBcXHUwY2FlXFx1MGNiZVxcdTBjYjlcXHUwY2JmXFx1MGNhNFxcdTBjYmYgXFx1MGNiOFxcdTBjODJcXHUwYzk3XFx1MGNjZFxcdTBjYjBcXHUwY2I5XFx1MGNiZlxcdTBjYjhcXHUwY2IyXFx1MGNjMSwgXFx1MGNiOFxcdTBjYzhcXHUwYzlmXFx1MGNjZCBcXHUwYzk1XFx1MGNiZVxcdTBjYjBcXHUwY2NkXFx1MGNhZlxcdTBjOTVcXHUwY2NkXFx1MGNiN1xcdTBjYWVcXHUwY2E0XFx1MGNjNlxcdTBjYWYgXFx1MGNhZVxcdTBjYzdcXHUwY2IyXFx1MGNjZFxcdTBjYjVcXHUwY2JmXFx1MGM5YVxcdTBjYmVcXHUwY2IwXFx1MGNhM1xcdTBjYzYgXFx1MGNhOFxcdTBjYTFcXHUwY2M2XFx1MGNiOFxcdTBjYjJcXHUwY2MxIFxcdTBjYWVcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2MxIFxcdTBjYThcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGNiOFxcdTBjYzhcXHUwYzlmXFx1MGNjZCBcXHUwYzk1XFx1MGNiZVxcdTBjYjBcXHUwY2NkXFx1MGNhZlxcdTBjOTVcXHUwY2NkXFx1MGNiN1xcdTBjYWVcXHUwY2E0XFx1MGNjNiwgXFx1MGNhOFxcdTBjYmZcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGM4NVxcdTBjYThcXHUwY2MxXFx1MGNhZFxcdTBjYjVcXHUwY2I1XFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2I4XFx1MGNjMVxcdTBjYTdcXHUwY2JlXFx1MGNiMFxcdTBjYmZcXHUwY2I4XFx1MGNiMlxcdTBjYzEgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTBjYThcXHUwY2JlXFx1MGNiNVxcdTBjYzEgXFx1MGM4OCBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYzFcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2M3XFx1MGNiNVxcdTBjYzY8L2E+LiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1MGNhZVxcdTBjYmVcXHUwY2IwXFx1MGNjZFxcdTBjOTVcXHUwY2M2XFx1MGM5ZlxcdTBjYmZcXHUwYzgyXFx1MGM5N1xcdTBjY2RcIixjb250ZW50OlsnXFx1MGNiOFxcdTBjYzJcXHUwYzk1XFx1MGNjZFxcdTBjYTQgXFx1MGM5Y1xcdTBjYmVcXHUwY2I5XFx1MGNjMFxcdTBjYjBcXHUwY2JlXFx1MGNhNFxcdTBjYzFcXHUwYzk3XFx1MGNiM1xcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNhOFxcdTBjYzBcXHUwY2ExXFx1MGNiMlxcdTBjYzEgXFx1MGNhZVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYzEgXFx1MGNhOFxcdTBjYWVcXHUwY2NkXFx1MGNhZSBcXHUwYzljXFx1MGNiZVxcdTBjYjlcXHUwY2MwXFx1MGNiMFxcdTBjYmVcXHUwY2E0XFx1MGNjMSBcXHUwYzk1XFx1MGNjZFxcdTBjYWZcXHUwY2JlXFx1MGM4MlxcdTBjYWFcXHUwY2M3XFx1MGNhOFxcdTBjY2RcXHUyMDBjXFx1MGM5N1xcdTBjYjMgXFx1MGNhYVxcdTBjYjBcXHUwY2JmXFx1MGNhM1xcdTBjYmVcXHUwY2FlXFx1MGM5NVxcdTBjYmVcXHUwY2IwXFx1MGNiZlxcdTBjYTRcXHUwY2NkXFx1MGNiNVxcdTBjYjVcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjODVcXHUwY2IzXFx1MGNjNlxcdTBjYWZcXHUwY2IyXFx1MGNjMSA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlxcdTBjODggXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2E4XFx1MGNiZVxcdTBjYjVcXHUwY2MxIFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYzFcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2M3XFx1MGNiNVxcdTBjYzY8L2E+LiBcXHUwY2E4XFx1MGNiZlxcdTBjYWVcXHUwY2NkXFx1MGNhZSBcXHUwYzg2XFx1MGNiOFxcdTBjOTVcXHUwY2NkXFx1MGNhNFxcdTBjYmZcXHUwYzk3XFx1MGNiMyBcXHUwY2FhXFx1MGNjZFxcdTBjYjBcXHUwY2NhXFx1MGNhYlxcdTBjYzhcXHUwY2IyXFx1MGNjZCBcXHUwYzg1XFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2E4XFx1MGNiZlxcdTBjYjBcXHUwY2NkXFx1MGNhZVxcdTBjYmZcXHUwY2I4XFx1MGNiMlxcdTBjYzEgXFx1MGNhZVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYzEgXFx1MGM4N1xcdTBjYTRcXHUwY2IwIFxcdTBjYjhcXHUwY2M4XFx1MGM5ZlxcdTBjY2RcXHUyMDBjXFx1MGM5N1xcdTBjYjNcXHUwY2IyXFx1MGNjZFxcdTBjYjJcXHUwY2JmIFxcdTBjYjhcXHUwYzgyXFx1MGNhY1xcdTBjODJcXHUwY2E3XFx1MGNiZlxcdTBjYTQgXFx1MGM5Y1xcdTBjYmVcXHUwY2I5XFx1MGNjMFxcdTBjYjBcXHUwY2JlXFx1MGNhNFxcdTBjYzFcXHUwYzk3XFx1MGNiM1xcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNhNFxcdTBjYjJcXHUwY2MxXFx1MGNhYVxcdTBjYmZcXHUwY2I4XFx1MGNiMlxcdTBjYzEgXFx1MGNhOFxcdTBjYWVcXHUwY2NkXFx1MGNhZSBcXHUwY2FlXFx1MGNjMlxcdTBjYjBcXHUwY2E4XFx1MGNjNyBcXHUwY2FhXFx1MGM5NVxcdTBjY2RcXHUwY2I3XFx1MGNhNiBcXHUwYzljXFx1MGNiZVxcdTBjYjlcXHUwY2MwXFx1MGNiMFxcdTBjYmVcXHUwY2E0XFx1MGNjMSBcXHUwY2FhXFx1MGNiZVxcdTBjYjJcXHUwY2MxXFx1MGNhNlxcdTBjYmVcXHUwY2IwXFx1MGNiMFxcdTBjYzEgXFx1MGM4OCBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYWNcXHUwY2I5XFx1MGNjMVxcdTBjYTZcXHUwY2MxLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTBjYWVcXHUwY2MyXFx1MGNiMFxcdTBjYThcXHUwY2M3LVxcdTBjYWFcXHUwYzk1XFx1MGNjZFxcdTBjYjdcXHUwY2E2IFxcdTBjOWNcXHUwY2JlXFx1MGNiOVxcdTBjYzBcXHUwY2IwXFx1MGNiZVxcdTBjYTRcXHUwY2MxIFxcdTBjYWFcXHUwY2JlXFx1MGNiMlxcdTBjYzFcXHUwY2E2XFx1MGNiZVxcdTBjYjBcXHUwY2IwXFx1MGNjMVwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTBjYWVcXHUwY2MyXFx1MGNiMFxcdTBjYThcXHUwY2M3LVxcdTBjYWFcXHUwYzk1XFx1MGNjZFxcdTBjYjdcXHUwY2E2IFxcdTBjOWNcXHUwY2JlXFx1MGNiOVxcdTBjYzBcXHUwY2IwXFx1MGNiZVxcdTBjYTRcXHUwY2MxIFxcdTBjYWFcXHUwY2JlXFx1MGNiMlxcdTBjYzFcXHUwY2E2XFx1MGNiZVxcdTBjYjBcXHUwY2IwXFx1MGNjMTpcIixFZmZlY3RpdmVEYXRlOlwiXFx1MGM5Y1xcdTBjYmVcXHUwY2IwXFx1MGNiZjogXFx1MGM5Y1xcdTBjYThcXHUwY2I1XFx1MGNiMFxcdTBjYmYgMTUsIDIwMTlcIixCb2R5OltcIlxcdTBjYThcXHUwY2JmXFx1MGNhZVxcdTBjY2RcXHUwY2FlIFxcdTBjYWNcXHUwY2NkXFx1MGNiMFxcdTBjY2NcXHUwY2I4XFx1MGNiMFxcdTBjY2RcXHUyMDBjIFxcdTBjODVcXHUwY2E1XFx1MGNiNVxcdTBjYmUgXFx1MGNiOFxcdTBjYmVcXHUwY2E3XFx1MGNhOFxcdTBjYTYgXFx1MGNhZVxcdTBjYzJcXHUwY2IyXFx1MGM5NSBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYThcXHUwY2JmXFx1MGNiMFxcdTBjY2RcXHUwY2I1XFx1MGNiOVxcdTBjYmZcXHUwY2I4XFx1MGNjMVxcdTBjYjVcXHUwY2MxXFx1MGNhNlxcdTBjYjAgXFx1MGM5Y1xcdTBjY2FcXHUwY2E0XFx1MGNjNlxcdTBjOTdcXHUwY2M2LCBcXHUwYzg4IFxcdTBjOTVcXHUwY2M2XFx1MGNiM1xcdTBjOTdcXHUwY2M2IFxcdTBjYThcXHUwY2JmXFx1MGNhZVxcdTBjY2RcXHUwY2FlIFxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzAgXFx1MGNiOFxcdTBjYzZcXHUwYzlmXFx1MGNjZFxcdTBjOWZcXHUwY2JmXFx1MGM4MlxcdTBjOTdcXHUwY2NkXFx1MjAwY1xcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2E4XFx1MGNjMFxcdTBjYjVcXHUwY2MxIFxcdTBjYWNcXHUwY2E2XFx1MGNiMlxcdTBjYmZcXHUwY2I4XFx1MGNhY1xcdTBjYjlcXHUwY2MxXFx1MGNhNlxcdTBjYzEuIFxcdTBjYThcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGNiOFxcdTBjYzhcXHUwYzlmXFx1MGNjZFxcdTIwMGMgXFx1MGM5YVxcdTBjYjJcXHUwY2JlXFx1MGNhZlxcdTBjYmZcXHUwY2I4XFx1MGNiMlxcdTBjYzEgXFx1MGM5NVxcdTBjYzZcXHUwY2IyXFx1MGNiNVxcdTBjYzEgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNjMSBcXHUwYzg1XFx1MGM5N1xcdTBjYTRcXHUwY2NkXFx1MGNhZlxcdTBjYjVcXHUwY2JlXFx1MGM5N1xcdTBjYmZcXHUwY2IwXFx1MGNjMVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYjVcXHUwY2M2IFxcdTBjYWVcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2MxIFxcdTBjODggXFx1MGNiOFxcdTBjYzZcXHUwYzlmXFx1MGNjZFxcdTBjOWZcXHUwY2JmXFx1MGM4MlxcdTBjOTdcXHUwY2NkXFx1MjAwY1xcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2FjXFx1MGNiM1xcdTBjYjhcXHUwY2JmIFxcdTBjODVcXHUwY2I1XFx1MGNjMVxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2E4XFx1MGNiZlxcdTBjYjBcXHUwY2NkXFx1MGNhY1xcdTBjODJcXHUwY2E3XFx1MGNiZlxcdTBjYjhcXHUwY2IyXFx1MGNiZVxcdTBjOTdcXHUwY2E2XFx1MGNjMSBcXHUwYzhlXFx1MGM4MlxcdTBjYWNcXHUwY2MxXFx1MGNhNlxcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNhNlxcdTBjYWZcXHUwY2I1XFx1MGNiZlxcdTBjOWZcXHUwY2NkXFx1MGM5ZlxcdTBjYzEgXFx1MGM5N1xcdTBjYWVcXHUwY2E4XFx1MGNhNlxcdTBjYjJcXHUwY2NkXFx1MGNiMlxcdTBjYmZcXHUwYzlmXFx1MGNjZFxcdTBjOWZcXHUwY2MxXFx1MGM5NVxcdTBjY2FcXHUwY2IzXFx1MGNjZFxcdTBjYjNcXHUwY2JmLlwiXSxUaXRsZTpcIlxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzAgXFx1MGNiOFxcdTBjYzZcXHUwYzlmXFx1MGNjZFxcdTBjOWZcXHUwY2JmXFx1MGM4MlxcdTBjOTdcXHUwY2NkXFx1MjAwY1xcdTBjOTdcXHUwY2IzXFx1MGNjMVwiLENPT0tJRV9QT1BVUDonXFx1MGNiOVxcdTBjYmVcXHUwY2FmXFx1MGNjZFxcdTIwMGMhIFxcdTBjODggXFx1MGNiNVxcdTBjYzZcXHUwY2FjXFx1MGNjZFxcdTIwMGNcXHUwY2I4XFx1MGNjOFxcdTBjOWZcXHUwY2NkXFx1MjAwY1xcdTBjYThcXHUwY2IyXFx1MGNjZFxcdTBjYjJcXHUwY2JmIFxcdTBjOTVcXHUwY2JlXFx1MGNiMFxcdTBjY2RcXHUwY2FmXFx1MGNiZVxcdTBjOWFcXHUwY2IwXFx1MGNhM1xcdTBjYzYgXFx1MGNhOFxcdTBjYTFcXHUwY2M2XFx1MGNiOFxcdTBjYjJcXHUwY2MxIFxcdTBjYWVcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2MxIFxcdTBjYThcXHUwY2JmXFx1MGNhZVxcdTBjY2RcXHUwY2FlIFxcdTBjYWNcXHUwY2NkXFx1MGNiMFxcdTBjY2NcXHUwY2I4XFx1MGNiZlxcdTBjODJcXHUwYzk3XFx1MGNjZCBcXHUwYzg1XFx1MGNhOFxcdTBjYzFcXHUwY2FkXFx1MGNiNVxcdTBjYjVcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYjhcXHUwY2MxXFx1MGNhN1xcdTBjYmVcXHUwY2IwXFx1MGNiZlxcdTBjYjhcXHUwY2IyXFx1MGNjMSwgXFx1MGM5NVxcdTBjYmVcXHUwY2IwXFx1MGNjZFxcdTBjYWZcXHUwYzk1XFx1MGNjZFxcdTBjYjdcXHUwY2FlXFx1MGNhNFxcdTBjYzZcXHUwY2FmIFxcdTBjYWVcXHUwY2M3XFx1MGNiMlxcdTBjYzYgXFx1MGNhOFxcdTBjYmZcXHUwYzk3XFx1MGNiZSBcXHUwYzg3XFx1MGNiMFxcdTBjYmZcXHUwY2I4XFx1MGNiMlxcdTBjYzEgXFx1MGNiOFxcdTBjYjlcXHUwY2JlXFx1MGNhZiBcXHUwY2FlXFx1MGNiZVxcdTBjYTFcXHUwY2MxXFx1MGNiNVxcdTBjYzFcXHUwY2E2XFx1MGM5NVxcdTBjY2RcXHUwYzk1XFx1MGNiZVxcdTBjOTdcXHUwY2JmIFxcdTBjYWVcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2MxIFxcdTBjOWNcXHUwY2JlXFx1MGNiOVxcdTBjYzBcXHUwY2IwXFx1MGNiZVxcdTBjYTRcXHUwY2MxIFxcdTBjODlcXHUwY2E2XFx1MGNjZFxcdTBjYTZcXHUwY2M3XFx1MGNiNlxcdTBjOTdcXHUwY2IzXFx1MGNiZlxcdTBjOTdcXHUwY2JlXFx1MGM5N1xcdTBjYmYsIFxcdTBjYTVcXHUwY2IwXFx1MGNjZFxcdTBjYTFcXHUwY2NkIFxcdTBjYWFcXHUwY2JlXFx1MGNiMFxcdTBjY2RcXHUwYzlmXFx1MGNiZiBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2MxIFxcdTBjYjhcXHUwY2M3XFx1MGNiMFxcdTBjYmZcXHUwY2E2XFx1MGM4MlxcdTBjYTRcXHUwY2M2IFxcdTBjYThcXHUwY2JlXFx1MGNiNVxcdTBjYzEgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNjMSBcXHUwY2FlXFx1MGNhNFxcdTBjY2RcXHUwY2E0XFx1MGNjMSBcXHUwYzg1XFx1MGNhNlxcdTBjYzcgXFx1MGNiMFxcdTBjYzBcXHUwY2E0XFx1MGNiZlxcdTBjYWYgXFx1MGNhNFxcdTBjODJcXHUwY2E0XFx1MGNjZFxcdTBjYjBcXHUwYzljXFx1MGNjZFxcdTBjOWVcXHUwY2JlXFx1MGNhOFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSAoXCJcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIpIFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYzFcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2M3XFx1MGNiNVxcdTBjYzYuIFxcdTBjYThcXHUwY2JlXFx1MGNiNVxcdTBjYzEgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2I5XFx1MGNjN1xcdTBjOTdcXHUwY2M2IFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYzFcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2M3XFx1MGNiNVxcdTBjYzYgXFx1MGNhZVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYzEgXFx1MGNhOFxcdTBjYmZcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzIFxcdTBjODZcXHUwY2FmXFx1MGNjZFxcdTBjOTVcXHUwY2M2XFx1MGM5N1xcdTBjYjMgXFx1MGM5NVxcdTBjYzFcXHUwY2IwXFx1MGNiZlxcdTBjYTQgXFx1MGNiOVxcdTBjOWFcXHUwY2NkXFx1MGM5YVxcdTBjYmZcXHUwY2E4IFxcdTBjYWVcXHUwY2JlXFx1MGNiOVxcdTBjYmZcXHUwY2E0XFx1MGNiZlxcdTBjOTdcXHUwY2JlXFx1MGM5N1xcdTBjYmYsIFxcdTBjYThcXHUwY2FlXFx1MGNjZFxcdTBjYWUgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzAgXFx1MGNhOFxcdTBjYzBcXHUwY2E0XFx1MGNiZjwvYT5cXHUwY2FmXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2E4XFx1MGNjYlxcdTBjYTFcXHUwY2JmISBcXHUwYzk1XFx1MGNjNlxcdTBjYjNcXHUwYzk3XFx1MGNjNiBcIlxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzBcXHUwYzk3XFx1MGNiM1xcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNiOFxcdTBjY2RcXHUwY2I1XFx1MGNjMFxcdTBjOTVcXHUwY2IwXFx1MGNiZlxcdTBjYjhcXHUwY2JmXCIgXFx1MGM5NVxcdTBjY2RcXHUwY2IyXFx1MGNiZlxcdTBjOTVcXHUwY2NkIFxcdTBjYWVcXHUwY2JlXFx1MGNhMVxcdTBjYzFcXHUwY2I1IFxcdTBjYWVcXHUwY2MyXFx1MGNiMlxcdTBjOTUsIFxcdTBjODVcXHUwY2I1XFx1MGNiNlxcdTBjY2RcXHUwY2FmXFx1MGM5NVxcdTBjYjVcXHUwY2IyXFx1MGNjZFxcdTBjYjJcXHUwY2E2IFxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzBcXHUwYzk3XFx1MGNiM1xcdTBjYzEgXFx1MGNiOFxcdTBjYzdcXHUwY2IwXFx1MGNiZlxcdTBjYTZcXHUwYzgyXFx1MGNhNFxcdTBjYzYsIFxcdTBjOGVcXHUwY2IyXFx1MGNjZFxcdTBjYjIgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2FjXFx1MGNiM1xcdTBjYjhcXHUwY2IyXFx1MGNjMSBcXHUwY2E4XFx1MGNjMFxcdTBjYjVcXHUwY2MxIFxcdTBjYThcXHUwY2FlXFx1MGM5N1xcdTBjYzYgXFx1MGM4NVxcdTBjYThcXHUwY2MxXFx1MGNhZVxcdTBjYTRcXHUwY2JmXFx1MGNhZlxcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNhOFxcdTBjYzBcXHUwY2ExXFx1MGNjMVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYzBcXHUwY2IwXFx1MGNiZi4gIFxcdTBjYWNcXHUwY2IyXFx1MGNhZFxcdTBjYmVcXHUwYzk3XFx1MGNhNlxcdTBjYjJcXHUwY2NkXFx1MGNiMlxcdTBjYmYgXFx1MGM4N1xcdTBjYjBcXHUwY2MxXFx1MGNiNSBcXHUyMDFjWFxcdTIwMWQgXFx1MGM5NVxcdTBjY2RcXHUwY2IyXFx1MGNiZlxcdTBjOTVcXHUwY2NkIFxcdTBjYWVcXHUwY2JlXFx1MGNhMVxcdTBjYzFcXHUwY2I1IFxcdTBjYWVcXHUwY2MyXFx1MGNiMlxcdTBjOTUgXFx1MGM4ZVxcdTBjYjJcXHUwY2NkXFx1MGNiMiBcXHUwYzg1XFx1MGNiNVxcdTBjYjZcXHUwY2NkXFx1MGNhZlxcdTBjOTVcXHUwY2I1XFx1MGNiMlxcdTBjY2RcXHUwY2IyXFx1MGNhNiBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYThcXHUwY2MwXFx1MGNiNVxcdTBjYzEgXFx1MGNhOFxcdTBjYmZcXHUwY2IwXFx1MGNiZVxcdTBjOTVcXHUwY2IwXFx1MGNiZlxcdTBjYjhcXHUwY2FjXFx1MGNiOVxcdTBjYzFcXHUwY2E2XFx1MGNjMS4gXFx1MGNhOFxcdTBjYmZcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMCBcXHUwY2I4XFx1MGNjNlxcdTBjOWZcXHUwY2NkXFx1MGM5ZlxcdTBjYmZcXHUwYzgyXFx1MGM5N1xcdTBjY2RcXHUyMDBjXFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYWNcXHUwY2E2XFx1MGNiMlxcdTBjYmVcXHUwY2FmXFx1MGNiZlxcdTBjYjhcXHUwY2IyXFx1MGNjMSBcXHUwY2FlXFx1MGNhNFxcdTBjY2RcXHUwY2E0XFx1MGNjMSBcXHUwY2E4XFx1MGNiZlxcdTBjYWVcXHUwY2NkXFx1MGNhZSBcXHUwY2I4XFx1MGNhZVxcdTBjY2RcXHUwY2FlXFx1MGNhNFxcdTBjYmZcXHUwY2FmXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2FmXFx1MGNiZVxcdTBjYjVcXHUwY2MxXFx1MGNhNlxcdTBjYzcgXFx1MGNiOFxcdTBjYWVcXHUwY2FmXFx1MGNhNlxcdTBjYjJcXHUwY2NkXFx1MGNiMlxcdTBjYmYgXFx1MGNiOVxcdTBjYmZcXHUwYzgyXFx1MGNhNlxcdTBjOTVcXHUwY2NkXFx1MGM5NVxcdTBjYzYgXFx1MGNhYVxcdTBjYTFcXHUwY2M2XFx1MGNhZlxcdTBjYjJcXHUwY2MxLCBcIlxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzAgXFx1MGNiOFxcdTBjYzZcXHUwYzlmXFx1MGNjZFxcdTBjOWZcXHUwY2JmXFx1MGM4MlxcdTBjOTdcXHUwY2NkXFx1MjAwY1xcdTBjOTdcXHUwY2IzXFx1MGNjMVwiIFxcdTBjODVcXHUwY2E1XFx1MGNiNVxcdTBjYmUgXFx1MGNhOFxcdTBjYWVcXHUwY2NkXFx1MGNhZSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMCBcXHUwY2E4XFx1MGNjMFxcdTBjYTRcXHUwY2JmPC9hPiBcXHUwYzk3XFx1MGNjNiBcXHUwY2I5XFx1MGNjYlxcdTBjOTdcXHUwY2JmLiAnLENPT0tJRV9QT1BVUF9FVTonXFx1MGNiOVxcdTBjYmVcXHUwY2FmXFx1MGNjZFxcdTIwMGMhIFxcdTBjODggXFx1MGNiNVxcdTBjYzZcXHUwY2FjXFx1MGNjZFxcdTIwMGNcXHUwY2I4XFx1MGNjOFxcdTBjOWZcXHUwY2NkXFx1MjAwY1xcdTBjYThcXHUwY2IyXFx1MGNjZFxcdTBjYjJcXHUwY2JmIFxcdTBjOTVcXHUwY2JlXFx1MGNiMFxcdTBjY2RcXHUwY2FmXFx1MGNiZVxcdTBjOWFcXHUwY2IwXFx1MGNhM1xcdTBjYzYgXFx1MGNhOFxcdTBjYTFcXHUwY2M2XFx1MGNiOFxcdTBjYjJcXHUwY2MxIFxcdTBjYWVcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2MxIFxcdTBjYThcXHUwY2JmXFx1MGNhZVxcdTBjY2RcXHUwY2FlIFxcdTBjYWNcXHUwY2NkXFx1MGNiMFxcdTBjY2NcXHUwY2I4XFx1MGNiZlxcdTBjODJcXHUwYzk3XFx1MGNjZCBcXHUwYzg1XFx1MGNhOFxcdTBjYzFcXHUwY2FkXFx1MGNiNVxcdTBjYjVcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYjhcXHUwY2MxXFx1MGNhN1xcdTBjYmVcXHUwY2IwXFx1MGNiZlxcdTBjYjhcXHUwY2IyXFx1MGNjMSwgXFx1MGM5NVxcdTBjYmVcXHUwY2IwXFx1MGNjZFxcdTBjYWZcXHUwYzk1XFx1MGNjZFxcdTBjYjdcXHUwY2FlXFx1MGNhNFxcdTBjYzZcXHUwY2FmIFxcdTBjYWVcXHUwY2M3XFx1MGNiMlxcdTBjYzYgXFx1MGNhOFxcdTBjYmZcXHUwYzk3XFx1MGNiZSBcXHUwYzg3XFx1MGNiMFxcdTBjYmZcXHUwY2I4XFx1MGNiMlxcdTBjYzEgXFx1MGNiOFxcdTBjYjlcXHUwY2JlXFx1MGNhZiBcXHUwY2FlXFx1MGNiZVxcdTBjYTFcXHUwY2MxXFx1MGNiNVxcdTBjYzFcXHUwY2E2XFx1MGM5NVxcdTBjY2RcXHUwYzk1XFx1MGNiZVxcdTBjOTdcXHUwY2JmIFxcdTBjYWVcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2MxIFxcdTBjOWNcXHUwY2JlXFx1MGNiOVxcdTBjYzBcXHUwY2IwXFx1MGNiZVxcdTBjYTRcXHUwY2MxIFxcdTBjODlcXHUwY2E2XFx1MGNjZFxcdTBjYTZcXHUwY2M3XFx1MGNiNlxcdTBjOTdcXHUwY2IzXFx1MGNiZlxcdTBjOTdcXHUwY2JlXFx1MGM5N1xcdTBjYmYsIFxcdTBjYTVcXHUwY2IwXFx1MGNjZFxcdTBjYTFcXHUwY2NkIFxcdTBjYWFcXHUwY2JlXFx1MGNiMFxcdTBjY2RcXHUwYzlmXFx1MGNiZiBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2MxIFxcdTBjYjhcXHUwY2M3XFx1MGNiMFxcdTBjYmZcXHUwY2E2XFx1MGM4MlxcdTBjYTRcXHUwY2M2IFxcdTBjYThcXHUwY2JlXFx1MGNiNVxcdTBjYzEgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNjMSBcXHUwY2FlXFx1MGNhNFxcdTBjY2RcXHUwY2E0XFx1MGNjMSBcXHUwYzg1XFx1MGNhNlxcdTBjYzcgXFx1MGNiMFxcdTBjYzBcXHUwY2E0XFx1MGNiZlxcdTBjYWYgXFx1MGNhNFxcdTBjODJcXHUwY2E0XFx1MGNjZFxcdTBjYjBcXHUwYzljXFx1MGNjZFxcdTBjOWVcXHUwY2JlXFx1MGNhOFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSAoXCJcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIpIFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYzFcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2M3XFx1MGNiNVxcdTBjYzYuIFxcdTBjYThcXHUwY2JlXFx1MGNiNVxcdTBjYzEgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2I5XFx1MGNjN1xcdTBjOTdcXHUwY2M2IFxcdTBjYWNcXHUwY2IzXFx1MGNiOFxcdTBjYzFcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2M3XFx1MGNiNVxcdTBjYzYgXFx1MGNhZVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYzEgXFx1MGNhOFxcdTBjYmZcXHUwY2FlXFx1MGNjZFxcdTBjYWUgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzIFxcdTBjODZcXHUwY2FmXFx1MGNjZFxcdTBjOTVcXHUwY2M2XFx1MGM5N1xcdTBjYjMgXFx1MGM5NVxcdTBjYzFcXHUwY2IwXFx1MGNiZlxcdTBjYTQgXFx1MGNiOVxcdTBjOWFcXHUwY2NkXFx1MGM5YVxcdTBjYmZcXHUwY2E4IFxcdTBjYWVcXHUwY2JlXFx1MGNiOVxcdTBjYmZcXHUwY2E0XFx1MGNiZlxcdTBjOTdcXHUwY2JlXFx1MGM5N1xcdTBjYmYsIFxcdTBjYThcXHUwY2FlXFx1MGNjZFxcdTBjYWUgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzAgXFx1MGNhOFxcdTBjYzBcXHUwY2E0XFx1MGNiZjwvYT5cXHUwY2FmXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2E4XFx1MGNjYlxcdTBjYTFcXHUwY2JmISBcXHUwYzk1XFx1MGNjNlxcdTBjYjNcXHUwYzk3XFx1MGNjNiBcIlxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzBcXHUwYzk3XFx1MGNiM1xcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNiOFxcdTBjY2RcXHUwY2I1XFx1MGNjMFxcdTBjOTVcXHUwY2IwXFx1MGNiZlxcdTBjYjhcXHUwY2JmXCIgXFx1MGM5NVxcdTBjY2RcXHUwY2IyXFx1MGNiZlxcdTBjOTVcXHUwY2NkIFxcdTBjYWVcXHUwY2JlXFx1MGNhMVxcdTBjYzFcXHUwY2I1IFxcdTBjYWVcXHUwY2MyXFx1MGNiMlxcdTBjOTUsIFxcdTBjODVcXHUwY2I1XFx1MGNiNlxcdTBjY2RcXHUwY2FmXFx1MGM5NVxcdTBjYjVcXHUwY2IyXFx1MGNjZFxcdTBjYjJcXHUwY2E2IFxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzBcXHUwYzk3XFx1MGNiM1xcdTBjYzEgXFx1MGNiOFxcdTBjYzdcXHUwY2IwXFx1MGNiZlxcdTBjYTZcXHUwYzgyXFx1MGNhNFxcdTBjYzYsIFxcdTBjOGVcXHUwY2IyXFx1MGNjZFxcdTBjYjIgXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMFxcdTBjOTdcXHUwY2IzXFx1MGNhOFxcdTBjY2RcXHUwY2E4XFx1MGNjMSBcXHUwY2FjXFx1MGNiM1xcdTBjYjhcXHUwY2IyXFx1MGNjMSBcXHUwY2E4XFx1MGNjMFxcdTBjYjVcXHUwY2MxIFxcdTBjYThcXHUwY2FlXFx1MGM5N1xcdTBjYzYgXFx1MGM4NVxcdTBjYThcXHUwY2MxXFx1MGNhZVxcdTBjYTRcXHUwY2JmXFx1MGNhZlxcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNhOFxcdTBjYzBcXHUwY2ExXFx1MGNjMVxcdTBjYTRcXHUwY2NkXFx1MGNhNFxcdTBjYzBcXHUwY2IwXFx1MGNiZi4gXFx1MGNhY1xcdTBjYjJcXHUwY2FkXFx1MGNiZVxcdTBjOTdcXHUwY2E2XFx1MGNiMlxcdTBjY2RcXHUwY2IyXFx1MGNiZiBcXHUwYzg3XFx1MGNiMFxcdTBjYzFcXHUwY2I1IFxcdTIwMWNYXFx1MjAxZCBcXHUwYzk1XFx1MGNjZFxcdTBjYjJcXHUwY2JmXFx1MGM5NVxcdTBjY2QgXFx1MGNhZVxcdTBjYmVcXHUwY2ExXFx1MGNjMVxcdTBjYjUgXFx1MGNhZVxcdTBjYzJcXHUwY2IyXFx1MGM5NSBcXHUwYzhlXFx1MGNiMlxcdTBjY2RcXHUwY2IyIFxcdTBjODVcXHUwY2I1XFx1MGNiNlxcdTBjY2RcXHUwY2FmXFx1MGM5NVxcdTBjYjVcXHUwY2IyXFx1MGNjZFxcdTBjYjJcXHUwY2E2IFxcdTBjOTVcXHUwY2MxXFx1MGM5NVxcdTBjYzBcXHUwYzk3XFx1MGNiM1xcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNhOFxcdTBjYzBcXHUwY2I1XFx1MGNjMSBcXHUwY2E4XFx1MGNiZlxcdTBjYjBcXHUwY2JlXFx1MGM5NVxcdTBjYjBcXHUwY2JmXFx1MGNiOFxcdTBjYWNcXHUwY2I5XFx1MGNjMVxcdTBjYTZcXHUwY2MxLiBcXHUwY2E4XFx1MGNiZlxcdTBjYWVcXHUwY2NkXFx1MGNhZSBcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwIFxcdTBjYjhcXHUwY2M2XFx1MGM5ZlxcdTBjY2RcXHUwYzlmXFx1MGNiZlxcdTBjODJcXHUwYzk3XFx1MGNjZFxcdTIwMGNcXHUwYzk3XFx1MGNiM1xcdTBjYThcXHUwY2NkXFx1MGNhOFxcdTBjYzEgXFx1MGNhY1xcdTBjYTZcXHUwY2IyXFx1MGNiZVxcdTBjYWZcXHUwY2JmXFx1MGNiOFxcdTBjYjJcXHUwY2MxIFxcdTBjYWVcXHUwY2E0XFx1MGNjZFxcdTBjYTRcXHUwY2MxIFxcdTBjYThcXHUwY2JmXFx1MGNhZVxcdTBjY2RcXHUwY2FlIFxcdTBjYjhcXHUwY2FlXFx1MGNjZFxcdTBjYWVcXHUwY2E0XFx1MGNiZlxcdTBjYWZcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYWZcXHUwY2JlXFx1MGNiNVxcdTBjYzFcXHUwY2E2XFx1MGNjNyBcXHUwY2I4XFx1MGNhZVxcdTBjYWZcXHUwY2E2XFx1MGNiMlxcdTBjY2RcXHUwY2IyXFx1MGNiZiBcXHUwY2I5XFx1MGNiZlxcdTBjODJcXHUwY2E2XFx1MGM5NVxcdTBjY2RcXHUwYzk1XFx1MGNjNiBcXHUwY2FhXFx1MGNhMVxcdTBjYzZcXHUwY2FmXFx1MGNiMlxcdTBjYzEsIFwiXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMCBcXHUwY2I4XFx1MGNjNlxcdTBjOWZcXHUwY2NkXFx1MGM5ZlxcdTBjYmZcXHUwYzgyXFx1MGM5N1xcdTBjY2RcXHUyMDBjXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIgXFx1MGM4NVxcdTBjYTVcXHUwY2I1XFx1MGNiZSBcXHUwY2E4XFx1MGNhZVxcdTBjY2RcXHUwY2FlIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwIFxcdTBjYThcXHUwY2MwXFx1MGNhNFxcdTBjYmY8L2E+IFxcdTBjOTdcXHUwY2M2IFxcdTBjYjlcXHUwY2NiXFx1MGM5N1xcdTBjYmYuJyxBZ3JlZVRleHQ6XCJcXHUwYzk1XFx1MGNjMVxcdTBjOTVcXHUwY2MwXFx1MGM5N1xcdTBjYjNcXHUwY2E4XFx1MGNjZFxcdTBjYThcXHUwY2MxIFxcdTBjYjhcXHUwY2FlXFx1MGNjZFxcdTBjYWVcXHUwY2E0XFx1MGNiZlxcdTBjYjhcXHUwY2JmXCIsU2V0dGluZ3NUZXh0OlwiXFx1MGM5NVxcdTBjYzFcXHUwYzk1XFx1MGNjMCBcXHUwY2I4XFx1MGNjNlxcdTBjOWZcXHUwY2NkXFx1MGM5ZlxcdTBjYmZcXHUwYzgyXFx1MGM5N1xcdTBjY2RcXHUyMDBjXFx1MGM5N1xcdTBjYjNcXHUwY2MxXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHUwYzg5XFx1MGNiMlxcdTBjY2RcXHUwY2IyXFx1MGM4MlxcdTBjOThcXHUwY2E4XFx1MGNjNlxcdTBjYWYgXFx1MGM5NVxcdTBjYzFcXHUwY2IwXFx1MGNiZlxcdTBjYTRcXHUwY2MxIFxcdTBjYjVcXHUwY2IwXFx1MGNhNlxcdTBjYmYgXFx1MGNhZVxcdTBjYmVcXHUwY2ExXFx1MGNiZlwiLFNwb3RsaWdodDpcIlxcdTBjYjhcXHUwY2NkXFx1MGNhYVxcdTBjYmVcXHUwYzlmXFx1MGNjZFxcdTIwMGNcXHUwY2IyXFx1MGNjOFxcdTBjOWZcXHUwY2NkXCJ9LFwia28ta3JcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlXCIsTGl2ZTpcIlxcdWMyZTRcXHVjMmRjXFx1YWMwNFwiLEFkczpcIlxcdWFkMTFcXHVhY2UwXCIsQ29tcGFueTpcIlxcdWFlMzBcXHVjNWM1IFxcdWM4MTVcXHViY2Y0XCIsSG9tZTpcIlxcdWQ2NDhcIixCbG9nOlwiXFx1YmUxNFxcdWI4NWNcXHVhZGY4XCIsSm9iczpcIlxcdWNjNDRcXHVjNmE5IFxcdWM4MTVcXHViY2Y0XCIsQ2FyZWVyczpcIlxcdWNjNDRcXHVjNmE5XCIsUHJlc3M6XCJcXHVjNWI4XFx1Yjg2MCBcXHViYjM4XFx1Yzc1OFwiLE5ld3M6XCJcXHVjZDVjXFx1YzJlMCBcXHVjMThjXFx1YzJkZFwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHVjNWI4XFx1Yjg2MCBcXHViYjM4XFx1Yzc1OFwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJcXHVjNWI4XFx1YzViNFwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlNuYXBjaGF0IFxcdWIyZTRcXHVjNmI0XFx1Yjg1Y1xcdWI0ZGNcIixEb3dubG9hZDpcIlxcdWIyZTRcXHVjNmI0XFx1Yjg1Y1xcdWI0ZGNcIixLaXQ6XCJLaXRcIixTdG9yaWVzOlwiXFx1YzJhNFxcdWQxYTBcXHViOWFjXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdWMyYTRcXHVkMWEwXFx1YzViNFwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiaU9TXFx1YzZhOSBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlxcdWM1NDhcXHViNGRjXFx1Yjg1Y1xcdWM3NzRcXHViNGRjXFx1YzZhOSBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdWNlZTRcXHViYmE0XFx1YjJjOFxcdWQyZjBcIixTdXBwb3J0OlwiXFx1YWNlMFxcdWFjMWRcXHVjOWMwXFx1YzZkMFwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlxcdWNlZTRcXHViYmE0XFx1YjJjOFxcdWQyZjAgXFx1YWMwMFxcdWM3NzRcXHViNGRjXFx1Yjc3Y1xcdWM3NzhcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlxcdWJjZjRcXHVjNTQ4IFxcdWMxM2NcXHVkMTMwXCIsU25hcGNvZGVzOlwiU25hcGNvZGVcIixHZW9maWx0ZXJzOlwiXFx1YzljMFxcdWM2MjRcXHVkNTQ0XFx1ZDEzMFwiLENyZWF0ZTpcIlxcdWQ1NDRcXHVkMTMwIFxcdWJjMGYgXFx1YjgwY1xcdWM5ODhcIixNYXA6XCJcXHVjOWMwXFx1YjNjNFwiLEFkdmVydGlzaW5nOlwiXFx1YWQxMVxcdWFjZTBcIixcIkJ1eSBBZHNcIjpcIlxcdWFkMTFcXHVhY2UwIFxcdWFkNmNcXHViOWU0XCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiXFx1YWQxMVxcdWFjZTAgXFx1YzgxNVxcdWNjNDVcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiXFx1YzgxNVxcdWNlNTggXFx1YWQxMVxcdWFjZTAgXFx1Yjc3Y1xcdWM3NzRcXHViZTBjXFx1YjdlY1xcdWI5YWNcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIlxcdWJlMGNcXHViNzljXFx1YjRkYyBcXHVhYzAwXFx1Yzc3NFxcdWI0ZGNcXHViNzdjXFx1Yzc3OFwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1ZDUwNFxcdWI4NWNcXHViYWE4XFx1YzE1OCBcXHVhZGRjXFx1YzgxNVwiLExlZ2FsOlwiXFx1YmM5NVxcdWM4MDEgXFx1YWNlMFxcdWM5YzBcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdWM3NzRcXHVjNmE5IFxcdWM1N2RcXHVhZDAwXCIsSW1wcmVzc3VtOlwiXFx1YWUzMFxcdWM1YzUgXFx1YzgxNVxcdWJjZjRcIixcIlByaXZhY3kgUG9saWN5XCI6XCJcXHVhYzFjXFx1Yzc3OFxcdWM4MTVcXHViY2Y0IFxcdWNkZThcXHVhZTA5XFx1YmMyOVxcdWNlNjhcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHVhYzFjXFx1Yzc3OFxcdWM4MTVcXHViY2Y0IFxcdWJjZjRcXHVkNjM4IFxcdWMxM2NcXHVkMTMwXCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHVjZmUwXFx1ZDBhNCBcXHVjODE1XFx1Y2M0NVwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1YmE1NFxcdWJhYThcXHViOWFjIFxcdWM3NzRcXHVjNmE5IFxcdWM1N2RcXHVhZDAwXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdWI5ZGVcXHVjZGE0XFx1ZDYxNSBcXHVkMDZjXFx1YjlhY1xcdWM1ZDBcXHVjNzc0XFx1ZDJmMFxcdWJlMGMgXFx1ZDIzNCBcXHVjNzc0XFx1YzZhOSBcXHVjNTdkXFx1YWQwMFwiLENPTU1VTklUWV9UT1M6XCJcXHVjZWU0XFx1YmJhNFxcdWIyYzhcXHVkMmYwIEdlb2ZpbHRlciBcXHVjNzc0XFx1YzZhOSBcXHVjNTdkXFx1YWQwMFwiLExFTlNfU1RVRElPX1RPUzpcIkxlbnMgU3R1ZGlvIFxcdWM1N2RcXHVhZDAwXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiXFx1YjBiNCBcXHVhYzFjXFx1Yzc3OFxcdWM4MTVcXHViY2Y0IFxcdWJjZjRcXHVkNjM4IFxcdWMxMjBcXHVkMGRkXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiXFx1ZDU0NFxcdWMyMTggXFx1Y2ZlMFxcdWQwYTRcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHViMmY5XFx1YzBhY1xcdWIyOTQgXFx1Y2ZlMFxcdWQwYTRcXHViOTdjIFxcdWMwYWNcXHVjNmE5PC9hPlxcdWQ1NThcXHVjNWVjIFxcdWMwYWNcXHVjNzc0XFx1ZDJiOFxcdWM3NTggXFx1YzZiNFxcdWM2MDFcXHVjNzQ0IFxcdWM5YzBcXHVjNmQwXFx1ZDU2OVxcdWIyYzhcXHViMmU0LiBcXHVjNzc0XFx1YjdlY1xcdWQ1NWMgXFx1Y2ZlMFxcdWQwYTRcXHVhYzAwIFxcdWQ1NDRcXHVjNjk0XFx1ZDU1OFxcdWJiYzBcXHViODVjIFxcdWNmZTBcXHVkMGE0XFx1Yjk3YyBcXHVkNTc0XFx1YzgxY1xcdWQ1NjAgXFx1YzIxOCBcXHVjNWM2XFx1YzJiNVxcdWIyYzhcXHViMmU0LiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHVkNjU4XFx1YWNiZCBcXHVjMTI0XFx1YzgxNVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+XFx1YjJmOVxcdWMwYWNcXHViMjk0IFxcdWNmZTBcXHVkMGE0XFx1Yjk3YyBcXHVjMGFjXFx1YzZhOTwvYT5cXHVkNTc0IFxcdWQ2OGNcXHVjNmQwXFx1YjJkOFxcdWM3NTggXFx1ZDY1OFxcdWFjYmQgXFx1YzEyNFxcdWM4MTVcXHVjNzQ0IFxcdWM4MDBcXHVjN2E1XFx1ZDU1OFxcdWFjZTAgXFx1YzZmOVxcdWMwYWNcXHVjNzc0XFx1ZDJiOCBcXHVjMGFjXFx1YzZhOSBcXHVhY2JkXFx1ZDVkOFxcdWM3NDQgXFx1YWMxY1xcdWMxMjBcXHVkNTY5XFx1YjJjOFxcdWIyZTQuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdWMxMzFcXHViMmE1IFxcdWJjMGYgXFx1YmQ4NFxcdWMxMWRcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdWIyZjlcXHVjMGFjXFx1YjI5NCBcXHVjZmUwXFx1ZDBhNFxcdWI5N2MgXFx1YzBhY1xcdWM2YTk8L2E+XFx1ZDU3NCBcXHVkNjhjXFx1YzZkMFxcdWIyZDhcXHVjNzU4IFxcdWIyZjlcXHVjMGFjIFxcdWM2ZjlcXHVjMGFjXFx1Yzc3NFxcdWQyYjggXFx1Yzc3NFxcdWM2YTlcXHVjNWQwIFxcdWFkMDBcXHVkNTVjIFxcdWM4MTVcXHViY2Y0XFx1Yjk3YyBcXHVjMjE4XFx1YzlkMVxcdWQ1NThcXHVhY2UwIFxcdWM2ZjlcXHVjMGFjXFx1Yzc3NFxcdWQyYjggXFx1YzEzMVxcdWIyYTVcXHVjNzQ0IFxcdWJhYThcXHViMmM4XFx1ZDEzMFxcdWI5YzFcXHVkNTU4XFx1YmE3MCBcXHVjNmY5XFx1YzBhY1xcdWM3NzRcXHVkMmI4IFxcdWMxMzFcXHViMmE1IFxcdWJjMGYgXFx1YzBhY1xcdWM2YTkgXFx1YWNiZFxcdWQ1ZDhcXHVjNzQ0IFxcdWFjMWNcXHVjMTIwXFx1ZDU2OVxcdWIyYzhcXHViMmU0LiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1YjljOFxcdWNmMDBcXHVkMzA1XCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+XFx1YjJmOVxcdWMwYWNcXHViMjk0IFxcdWNmZTBcXHVkMGE0XFx1Yjk3YyBcXHVjMGFjXFx1YzZhOTwvYT5cXHVkNTc0IFxcdWFkMDBcXHViODI4XFx1YzEzMSBcXHVjNzg4XFx1YjI5NCBcXHVhZDExXFx1YWNlMFxcdWI5N2MgXFx1YzgxY1xcdWFjZjVcXHVkNTU4XFx1YWNlMCBcXHViMmY5XFx1YzBhYyBcXHVhZDExXFx1YWNlMCBcXHVjZWEwXFx1ZDM5OFxcdWM3NzhcXHVjNzU4IFxcdWQ2YThcXHVhY2ZjXFx1Yjk3YyBcXHVjZTIxXFx1YzgxNVxcdWQ1NjlcXHViMmM4XFx1YjJlNC4gXFx1YjJmOVxcdWMwYWNcXHVjNzU4IFxcdWM4MWMzXFx1Yzc5MCBcXHVhZDExXFx1YWNlMCBcXHVkMzBjXFx1ZDJiOFxcdWIxMDhcXHViMjk0IFxcdWNmZTBcXHVkMGE0XFx1Yjk3YyBcXHVjMGFjXFx1YzZhOVxcdWQ1NThcXHVjNWVjIFxcdWQ2OGNcXHVjNmQwXFx1YjJkOFxcdWM3NTggXFx1YWQwMFxcdWMyZWNcXHVjMGFjXFx1YzVkMCBcXHViMzAwXFx1ZDU1YyBcXHVkNTA0XFx1Yjg1Y1xcdWQ1NDRcXHVjNzQ0IFxcdWMwZGRcXHVjMTMxXFx1ZDU1OFxcdWFjZTAgXFx1YWUzMFxcdWQwYzAgXFx1YzZmOVxcdWMwYWNcXHVjNzc0XFx1ZDJiOFxcdWM1ZDBcXHVjMTFjIFxcdWM4MDFcXHVjODA4XFx1ZDU1YyBcXHVhZDExXFx1YWNlMFxcdWI5N2MgXFx1YzgxY1xcdWFjZjVcXHVkNTY5XFx1YjJjOFxcdWIyZTQuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwiXFx1YzgxYzNcXHVjNzkwIFxcdWFkMTFcXHVhY2UwIFxcdWQzMGNcXHVkMmI4XFx1YjEwOFwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdWM4MWMzXFx1Yzc5MCBcXHVhZDExXFx1YWNlMCBcXHVkMzBjXFx1ZDJiOFxcdWIxMDg6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdWJjMWNcXHVkNmE4XFx1Yzc3YzogMjAxOVxcdWIxNDQgMVxcdWM2ZDQgMTVcXHVjNzdjXCIsQm9keTpbXCJcXHViZTBjXFx1Yjc3Y1xcdWM2YjBcXHVjODAwXFx1YjA5OCBcXHVhZTMwXFx1YWUzMFxcdWM1ZDBcXHVjMTFjIFxcdWNmZTBcXHVkMGE0XFx1Yjk3YyBcXHVhZDAwXFx1YjlhY1xcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzczY1xcdWJhNzAsIFxcdWM1NDRcXHViNzk4XFx1YzVkMFxcdWMxMWNcXHViM2M0IFxcdWNmZTBcXHVkMGE0IFxcdWMxMjRcXHVjODE1XFx1Yzc0NCBcXHViY2MwXFx1YWNiZFxcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0LiBcXHViMmU0XFx1YjljYyBcXHVjNzdjXFx1YmQ4MCBcXHVjZmUwXFx1ZDBhNFxcdWIyOTQgXFx1YjJmOVxcdWMwYWMgXFx1YzZmOVxcdWMwYWNcXHVjNzc0XFx1ZDJiOCBcXHVjNzc0XFx1YzZhOVxcdWM3NDQgXFx1YzcwNFxcdWQ1NzQgXFx1ZDU0NFxcdWMyMThcXHVjODAxXFx1Yzc3NFxcdWJhNzAsIFxcdWM3NzRcXHVjNjQwIFxcdWFjMTlcXHVjNzQwIFxcdWQ2NThcXHVhY2JkIFxcdWMxMjRcXHVjODE1XFx1YzczY1xcdWI4NWMgXFx1Y2MyOFxcdWIyZThcXHVkNTYwIFxcdWMyMTggXFx1YzVjNlxcdWMyYjVcXHViMmM4XFx1YjJlNC5cIl0sVGl0bGU6XCJcXHVjZmUwXFx1ZDBhNCBcXHVjMTI0XFx1YzgxNVwiLENPT0tJRV9QT1BVUDonXFx1YzU0OFxcdWIxNTVcXHVkNTU4XFx1YzEzOFxcdWM2OTQhIFxcdWIyZjlcXHVjMGFjXFx1YjI5NCBcXHVjNzc0IFxcdWM2ZjlcXHVjMGFjXFx1Yzc3NFxcdWQyYjhcXHVjNWQwXFx1YzExYyBcXHVjODFjM1xcdWM3OTAgXFx1Y2ZlMFxcdWQwYTRcXHViOTdjIFxcdWQzZWNcXHVkNTY4XFx1ZDU1YyBcXHVjZmUwXFx1ZDBhNFxcdWM2NDAgXFx1YzcyMFxcdWMwYWMgXFx1YWUzMFxcdWMyMjAoXCJcXHVjZmUwXFx1ZDBhNFwiKVxcdWM3NDQgXFx1Yzc3NFxcdWM2YTlcXHVkNTU4XFx1YzVlYyBcXHVjNmI0XFx1YzYwMVxcdWM3NDQgXFx1YzljMFxcdWM2ZDBcXHVkNTU4XFx1YWNlMCwgXFx1ZDY4Y1xcdWM2ZDBcXHViMmQ4XFx1Yzc1OCBcXHVjNmY5XFx1YzBhY1xcdWM3NzRcXHVkMmI4IFxcdWQwZDBcXHVjMGM5IFxcdWFjYmRcXHVkNWQ4XFx1Yzc0NCBcXHVhYzFjXFx1YzEyMFxcdWQ1NThcXHVhY2UwLCBcXHVjNmY5XFx1YzBhY1xcdWM3NzRcXHVkMmI4IFxcdWMxMzFcXHViMmE1XFx1Yzc0NCBcXHViYWE4XFx1YjJjOFxcdWQxMzBcXHViOWMxXFx1ZDU1OFxcdWFjZTAsIFxcdWFkMTFcXHVhY2UwIFxcdWJhYTlcXHVjODAxXFx1Yzc0NCBcXHVjNzc0XFx1ZDU4OVxcdWQ1NjlcXHViMmM4XFx1YjJlNC4gXFx1YjJmOVxcdWMwYWNcXHVjNzU4IFxcdWNmZTBcXHVkMGE0IFxcdWMwYWNcXHVjNmE5IFxcdWJjMjlcXHVjZTY4XFx1YWNmYyBcXHVjMGFjXFx1YzZhOVxcdWM3OTBcXHVjNzU4IFxcdWNmZTBcXHVkMGE0IFxcdWMxMjBcXHVkMGRkIFxcdWMwYWNcXHVkNTZkXFx1YzVkMCBcXHVhZDAwXFx1ZDU1YyBcXHVjNzkwXFx1YzEzOFxcdWQ1NWMgXFx1YzgxNVxcdWJjZjRcXHViMjk0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHVjZmUwXFx1ZDBhNCBcXHVjODE1XFx1Y2M0NTwvYT5cXHVjNWQwXFx1YzExYyBcXHVkNjU1XFx1Yzc3OFxcdWQ1NThcXHVjMTM4XFx1YzY5NCEgXFx1YzU0NFxcdWI3OThcXHVjNzU4IFxcJ1xcdWNmZTBcXHVkMGE0IFxcdWQ1YzhcXHVjNmE5XFwnXFx1Yzc0NCBcXHVkMDc0XFx1YjlhZFxcdWQ1NThcXHViYTc0LCBcXHVhZjJkIFxcdWQ1NDRcXHVjNjk0XFx1ZDU1OFxcdWM5YzAgXFx1YzU0YVxcdWM3NDAgXFx1Y2ZlMFxcdWQwYTRcXHViOTdjIFxcdWJlNDRcXHViODZmXFx1ZDU1OFxcdWM1ZWMgXFx1YjJmOVxcdWMwYWNcXHVjNWQwXFx1YzExYyBcXHViYWE4XFx1YjRlMCBcXHVjZmUwXFx1ZDBhNFxcdWI5N2MgXFx1YzBhY1xcdWM2YTlcXHVkNTU4XFx1YjI5NCBcXHVhYzgzXFx1YzVkMCBcXHViM2Q5XFx1Yzc1OFxcdWQ1NThcXHViMjk0IFxcdWFjODNcXHVjNzg1XFx1YjJjOFxcdWIyZTQuIFxcdWM2MjRcXHViOTc4XFx1Y2FiZFxcdWM3NTggXFwnWFxcJ1xcdWI5N2MgXFx1ZDA3NFxcdWI5YWRcXHVkNTU4XFx1YzVlYyBcXHVhZjJkIFxcdWQ1NDRcXHVjNjk0XFx1ZDU1OFxcdWM5YzAgXFx1YzU0YVxcdWM3NDAgXFx1Y2ZlMFxcdWQwYTRcXHVjNWQwIFxcdWIzMDBcXHVkNTVjIFxcdWMwYWNcXHVjNmE5XFx1Yzc0NCBcXHVhYzcwXFx1YmQ4MFxcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0LiBcXHVkNjhjXFx1YzZkMFxcdWIyZDhcXHVjNzQwIFxcJ1xcdWNmZTBcXHVkMGE0IFxcdWMxMjRcXHVjODE1XFwnXFx1Yzc3NFxcdWIwOTggXFx1YjJmOVxcdWMwYWNcXHVjNzU4IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHVjZmUwXFx1ZDBhNCBcXHVjODE1XFx1Y2M0NTwvYT5cXHVjNzNjXFx1Yjg1YyBcXHVjNzc0XFx1YjNkOVxcdWQ1NThcXHVjNWVjIFxcdWNmZTBcXHVkMGE0IFxcdWMxMjRcXHVjODE1XFx1Yzc0NCBcXHViY2MwXFx1YWNiZFxcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzczY1xcdWJhNzAsIFxcdWM1YjhcXHVjODFjXFx1YjRlMFxcdWM5YzAgXFx1YjNkOVxcdWM3NThcXHViOTdjIFxcdWNjYTBcXHVkNjhjXFx1ZDU2MCBcXHVjMjE4IFxcdWM3ODhcXHVjMmI1XFx1YjJjOFxcdWIyZTQuJyxDT09LSUVfUE9QVVBfRVU6J1xcdWM1NDhcXHViMTU1XFx1ZDU1OFxcdWMxMzhcXHVjNjk0ISBcXHViMmY5XFx1YzBhY1xcdWIyOTQgXFx1Yzc3NCBcXHVjNmY5XFx1YzBhY1xcdWM3NzRcXHVkMmI4XFx1YzVkMFxcdWMxMWMgXFx1YzgxYzNcXHVjNzkwIFxcdWNmZTBcXHVkMGE0XFx1Yjk3YyBcXHVkM2VjXFx1ZDU2OFxcdWQ1NWMgXFx1Y2ZlMFxcdWQwYTRcXHVjNjQwIFxcdWM3MjBcXHVjMGFjIFxcdWFlMzBcXHVjMjIwKFwiXFx1Y2ZlMFxcdWQwYTRcIilcXHVjNzQ0IFxcdWM3NzRcXHVjNmE5XFx1ZDU1OFxcdWM1ZWMgXFx1YzZiNFxcdWM2MDFcXHVjNzQ0IFxcdWM5YzBcXHVjNmQwXFx1ZDU1OFxcdWFjZTAsIFxcdWQ2OGNcXHVjNmQwXFx1YjJkOFxcdWM3NTggXFx1YzZmOVxcdWMwYWNcXHVjNzc0XFx1ZDJiOCBcXHVkMGQwXFx1YzBjOSBcXHVhY2JkXFx1ZDVkOFxcdWM3NDQgXFx1YWMxY1xcdWMxMjBcXHVkNTU4XFx1YWNlMCwgXFx1YzZmOVxcdWMwYWNcXHVjNzc0XFx1ZDJiOCBcXHVjMTMxXFx1YjJhNVxcdWM3NDQgXFx1YmFhOFxcdWIyYzhcXHVkMTMwXFx1YjljMVxcdWQ1NThcXHVhY2UwLCBcXHVhZDExXFx1YWNlMCBcXHViYWE5XFx1YzgwMVxcdWM3NDQgXFx1Yzc3NFxcdWQ1ODlcXHVkNTY5XFx1YjJjOFxcdWIyZTQuIFxcdWIyZjlcXHVjMGFjXFx1Yzc1OCBcXHVjZmUwXFx1ZDBhNCBcXHVjMGFjXFx1YzZhOSBcXHViYzI5XFx1Y2U2OFxcdWFjZmMgXFx1YzBhY1xcdWM2YTlcXHVjNzkwXFx1Yzc1OCBcXHVjZmUwXFx1ZDBhNCBcXHVjMTIwXFx1ZDBkZCBcXHVjMGFjXFx1ZDU2ZFxcdWM1ZDAgXFx1YWQwMFxcdWQ1NWMgXFx1Yzc5MFxcdWMxMzhcXHVkNTVjIFxcdWM4MTVcXHViY2Y0XFx1YjI5NCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1Y2ZlMFxcdWQwYTQgXFx1YzgxNVxcdWNjNDU8L2E+XFx1YzVkMFxcdWMxMWMgXFx1ZDY1NVxcdWM3NzhcXHVkNTU4XFx1YzEzOFxcdWM2OTQhIFxcdWM1NDRcXHViNzk4XFx1Yzc1OCBcXCdcXHVjZmUwXFx1ZDBhNCBcXHVkNWM4XFx1YzZhOVxcJ1xcdWM3NDQgXFx1ZDA3NFxcdWI5YWRcXHVkNTU4XFx1YmE3NCwgXFx1YWYyZCBcXHVkNTQ0XFx1YzY5NFxcdWQ1NThcXHVjOWMwIFxcdWM1NGFcXHVjNzQwIFxcdWNmZTBcXHVkMGE0XFx1Yjk3YyBcXHViZTQ0XFx1Yjg2ZlxcdWQ1NThcXHVjNWVjIFxcdWIyZjlcXHVjMGFjXFx1YzVkMFxcdWMxMWMgXFx1YmFhOFxcdWI0ZTAgXFx1Y2ZlMFxcdWQwYTRcXHViOTdjIFxcdWMwYWNcXHVjNmE5XFx1ZDU1OFxcdWIyOTQgXFx1YWM4M1xcdWM1ZDAgXFx1YjNkOVxcdWM3NThcXHVkNTU4XFx1YjI5NCBcXHVhYzgzXFx1Yzc4NVxcdWIyYzhcXHViMmU0LiBcXHVjNjI0XFx1Yjk3OFxcdWNhYmRcXHVjNzU4IFxcJ1hcXCdcXHViOTdjIFxcdWQwNzRcXHViOWFkXFx1ZDU1OFxcdWM1ZWMgXFx1YWYyZCBcXHVkNTQ0XFx1YzY5NFxcdWQ1NThcXHVjOWMwIFxcdWM1NGFcXHVjNzQwIFxcdWNmZTBcXHVkMGE0XFx1YzVkMCBcXHViMzAwXFx1ZDU1YyBcXHVjMGFjXFx1YzZhOVxcdWM3NDQgXFx1YWM3MFxcdWJkODBcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWMyYjVcXHViMmM4XFx1YjJlNC4gXFx1ZDY4Y1xcdWM2ZDBcXHViMmQ4XFx1Yzc0MCBcXCdcXHVjZmUwXFx1ZDBhNCBcXHVjMTI0XFx1YzgxNVxcJ1xcdWM3NzRcXHViMDk4IFxcdWIyZjlcXHVjMGFjXFx1Yzc1OCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1Y2ZlMFxcdWQwYTQgXFx1YzgxNVxcdWNjNDU8L2E+XFx1YzczY1xcdWI4NWMgXFx1Yzc3NFxcdWIzZDlcXHVkNTU4XFx1YzVlYyBcXHVjZmUwXFx1ZDBhNCBcXHVjMTI0XFx1YzgxNVxcdWM3NDQgXFx1YmNjMFxcdWFjYmRcXHVkNTYwIFxcdWMyMTggXFx1Yzc4OFxcdWM3M2NcXHViYTcwLCBcXHVjNWI4XFx1YzgxY1xcdWI0ZTBcXHVjOWMwIFxcdWIzZDlcXHVjNzU4XFx1Yjk3YyBcXHVjY2EwXFx1ZDY4Y1xcdWQ1NjAgXFx1YzIxOCBcXHVjNzg4XFx1YzJiNVxcdWIyYzhcXHViMmU0LicsQWdyZWVUZXh0OlwiXFx1Y2ZlMFxcdWQwYTQgXFx1ZDVjOFxcdWM2YTlcIixTZXR0aW5nc1RleHQ6XCJcXHVjZmUwXFx1ZDBhNCBcXHVjMTI0XFx1YzgxNVwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiXFx1YmNmNFxcdWM1NDggXFx1Y2U2OFxcdWQ1NzQgXFx1YzJlMFxcdWFjZTBcIixTcG90bGlnaHQ6XCJcXHVjMmE0XFx1ZDNlY1xcdWQyYjhcXHViNzdjXFx1Yzc3NFxcdWQyYjhcIn0sXCJtbC1pblwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJcXHUwZDE1XFx1MGQyM1xcdTBkNGRcXHUwZDIzXFx1MGQzZVxcdTBkMWZcXHUwZDNmXFx1MGQxNVxcdTBkN2VcIixMaXZlOlwiXFx1MGQzMlxcdTBkNDhcXHUwZDM1XFx1MGQ0ZFwiLEFkczpcIlxcdTBkMmFcXHUwZDMwXFx1MGQzOFxcdTBkNGRcXHUwZDJmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZVwiLENvbXBhbnk6XCJcXHUwZDE1XFx1MGQyZVxcdTBkNGRcXHUwZDJhXFx1MGQyOFxcdTBkM2ZcIixIb21lOlwiXFx1MGQzOVxcdTBkNGJcXHUwZDAyXCIsQmxvZzpcIlxcdTBkMmNcXHUwZDRkXFx1MGQzMlxcdTBkNGJcXHUwZDE3XFx1MGQ0ZFwiLEpvYnM6XCJcXHUwZDFjXFx1MGQ0YlxcdTBkMzJcXHUwZDNmXFx1MGQxNVxcdTBkN2VcIixDYXJlZXJzOlwiXFx1MGQxY1xcdTBkNGJcXHUwZDMyXFx1MGQzZlxcdTBkMTVcXHUwZDdlXCIsUHJlc3M6XCJcXHUwZDJhXFx1MGQyNFxcdTBkNGRcXHUwZDMwXFx1MGQwMlwiLE5ld3M6XCJcXHUwZDM1XFx1MGQzZVxcdTBkN2NcXHUwZDI0XFx1MGQ0ZFxcdTBkMjRcXHUwZDE1XFx1MGQ3ZVwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHUwZDA1XFx1MGQyOFxcdTBkNGRcXHUwZDM1XFx1MGQ0N1xcdTBkMzdcXHUwZDIzXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkM2ZcXHUwZDdkIFxcdTBkMDVcXHUwZDJlXFx1MGQ3Y1xcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkNDFcXHUwZDE1XCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTBkMmRcXHUwZDNlXFx1MGQzN1wiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlNuYXBjaGF0IFxcdTBkMjFcXHUwZDU3XFx1MGQ3YVxcdTBkMzJcXHUwZDRiXFx1MGQyMVxcdTBkNGQgXFx1MGQxYVxcdTBkNDZcXHUwZDJmXFx1MGQ0ZFxcdTBkMmZcXHUwZDQxXFx1MGQxNVwiLERvd25sb2FkOlwiXFx1MGQyMVxcdTBkNTdcXHUwZDdhXFx1MGQzMlxcdTBkNGJcXHUwZDIxXFx1MGQ0ZFwiLEtpdDpcIlxcdTBkMTVcXHUwZDNmXFx1MGQzMVxcdTBkNGRcXHUwZDMxXFx1MGQ0ZFwiLFN0b3JpZXM6XCJcXHUwZDM4XFx1MGQ0ZFxcdTBkMzFcXHUwZDRkXFx1MGQzMVxcdTBkNGJcXHUwZDMxXFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0ZFxcdTIwMGRcIixcIkxlbnMgU3R1ZGlvXCI6XCJcXHUwZDMyXFx1MGQ0NlxcdTBkMjhcXHUwZDRkXFx1MjAwZFxcdTBkMzhcXHUwZDRkIFxcdTBkMzhcXHUwZDRkXFx1MGQzMVxcdTBkNGRcXHUwZDMxXFx1MGQ0MVxcdTBkMjFcXHUwZDNmXFx1MGQyZlxcdTBkNGJcIixTdG9yZTpcIlxcdTBkMzhcXHUwZDRkXFx1MGQzMVxcdTBkNGRcXHUwZDMxXFx1MGQ0YlxcdTBkMzBcXHUwZDRkXFx1MjAwZFwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiaU9TLVxcdTBkMjhcXHUwZDQxXFx1MGQzM1xcdTBkNGRcXHUwZDMzIFNuYXBjaGF0XCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiQW5kcm9pZC1cXHUwZDI4XFx1MGQ0MVxcdTBkMzNcXHUwZDRkXFx1MGQzMyBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTBkMTVcXHUwZDJlXFx1MGQ0ZFxcdTBkMmVcXHUwZDRkXFx1MGQyZlxcdTBkNDJcXHUwZDIzXFx1MGQzZlxcdTBkMzFcXHUwZDRkXFx1MGQzMVxcdTBkM2ZcIixTdXBwb3J0OlwiXFx1MGQyYVxcdTBkM2ZcXHUwZDI4XFx1MGQ0ZFxcdTBkMjRcXHUwZDQxXFx1MGQyM1wiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlxcdTBkMTVcXHUwZDJlXFx1MGQ0ZFxcdTBkMmVcXHUwZDRkXFx1MGQyZlxcdTBkNDJcXHUwZDIzXFx1MGQzZlxcdTBkMzFcXHUwZDRkXFx1MGQzMVxcdTBkM2YgXFx1MGQyZVxcdTBkM2VcXHUwZDdjXFx1MGQxN1xcdTBkNGRcXHUwZDE3XFx1MGQyOFxcdTBkM2ZcXHUwZDdjXFx1MGQyNlxcdTBkNGRcXHUwZDI2XFx1MGQ0N1xcdTBkMzZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDdlXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJcXHUwZDM4XFx1MGQ0MVxcdTBkMzBcXHUwZDE1XFx1MGQ0ZFxcdTBkMzdcXHUwZDNlIFxcdTBkMTVcXHUwZDQ3XFx1MGQyOFxcdTBkNGRcXHUwZDI2XFx1MGQ0ZFxcdTBkMzBcXHUwZDAyXCIsU25hcGNvZGVzOlwiU25hcGNvZGUtXFx1MGQxNVxcdTBkN2VcIixHZW9maWx0ZXJzOlwiXFx1MGQxY1xcdTBkM2ZcXHUwZDJmXFx1MGQ0YlxcdTBkMmJcXHUwZDNmXFx1MGQ3ZFxcdTBkMWZcXHUwZDRkXFx1MGQxZlxcdTBkMzFcXHUwZDQxXFx1MGQxNVxcdTBkN2VcIixDcmVhdGU6XCJcXHUwZDJiXFx1MGQzZlxcdTBkMzJcXHUwZDRkXFx1MjAwZFxcdTBkMzFcXHUwZDRkXFx1MGQzMVxcdTBkMzFcXHUwZDQxXFx1MGQxNVxcdTBkMzNcXHUwZDQxXFx1MGQwMiBcXHUwZDMyXFx1MGQ0NlxcdTBkMjhcXHUwZDRkXFx1MjAwZFxcdTBkMzhcXHUwZDQxXFx1MGQxNVxcdTBkMzNcXHUwZDQxXFx1MGQwMlwiLE1hcDpcIlxcdTBkMmVcXHUwZDNlXFx1MGQyYVxcdTBkNGRcXHUwZDJhXFx1MGQ0ZFwiLEFkdmVydGlzaW5nOlwiXFx1MGQyYVxcdTBkMzBcXHUwZDM4XFx1MGQ0ZFxcdTBkMmZcXHUwZDAyIFxcdTBkMWFcXHUwZDQ2XFx1MGQyZlxcdTBkNGRcXHUwZDJmXFx1MGQ3ZFwiLFwiQnV5IEFkc1wiOlwiXFx1MGQyYVxcdTBkMzBcXHUwZDM4XFx1MGQ0ZFxcdTBkMmZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0ZFxcdTIwMGQgXFx1MGQzNVxcdTBkM2VcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDQxXFx1MGQxNVwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlxcdTBkMmFcXHUwZDMwXFx1MGQzOFxcdTBkNGRcXHUwZDJmXFx1MGQwMiBcXHUwZDFhXFx1MGQ0NlxcdTBkMmZcXHUwZDRkXFx1MGQyZlxcdTBkN2QgXFx1MGQyOFxcdTBkMmZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDdlXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTBkMzBcXHUwZDNlXFx1MGQzN1xcdTBkNGRcXHUwZDFmXFx1MGQ0ZFxcdTBkMzBcXHUwZDQwXFx1MGQyZiBcXHUwZDJhXFx1MGQzMFxcdTBkMzhcXHUwZDRkXFx1MGQyZiBcXHUwZDMyXFx1MGQ0OFxcdTBkMmNcXHUwZDRkXFx1MGQzMFxcdTBkMzFcXHUwZDNmXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwZDJjXFx1MGQ0ZFxcdTBkMzBcXHUwZDNlXFx1MGQ3YlxcdTBkMjFcXHUwZDRkIFxcdTBkMmVcXHUwZDNlXFx1MGQ3Y1xcdTBkMTdcXHUwZDRkXFx1MGQxN1xcdTBkMjhcXHUwZDNmXFx1MGQ3Y1xcdTBkMjZcXHUwZDRkXFx1MGQyNlxcdTBkNDdcXHUwZDM2XFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MGQyYVxcdTBkNGRcXHUwZDMwXFx1MGQ0YVxcdTBkMmVcXHUwZDRiXFx1MGQzN1xcdTBkMjhcXHUwZDQxXFx1MGQxNVxcdTBkN2VcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQzM1xcdTBkNGRcXHUwZDMzIFxcdTBkMjhcXHUwZDNmXFx1MGQyZlxcdTBkMmVcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDdlXCIsTGVnYWw6XCJcXHUwZDI4XFx1MGQzZlxcdTBkMmZcXHUwZDJlXFx1MGQyYVxcdTBkMzBcXHUwZDAyXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwZDM4XFx1MGQ0N1xcdTBkMzVcXHUwZDI4IFxcdTBkMzVcXHUwZDRkXFx1MGQyZlxcdTBkMzVcXHUwZDM4XFx1MGQ0ZFxcdTBkMjVcXHUwZDE1XFx1MGQ3ZVwiLEltcHJlc3N1bTpcIkltcHJlc3N1bVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTBkMzhcXHUwZDRkXFx1MGQzNVxcdTBkMTVcXHUwZDNlXFx1MGQzMFxcdTBkNGRcXHUwZDJmXFx1MGQyNFxcdTBkM2UgXFx1MGQyOFxcdTBkMmZcXHUwZDAyXCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1MGQzOFxcdTBkNGRcXHUwZDM1XFx1MGQxNVxcdTBkM2VcXHUwZDMwXFx1MGQ0ZFxcdTBkMmZcXHUwZDI0XFx1MGQzZSBcXHUwZDE1XFx1MGQ0N1xcdTBkMjhcXHUwZDRkXFx1MGQyNlxcdTBkNGRcXHUwZDMwXFx1MGQwMlwiLFwiQ29va2llIFBvbGljeVwiOlwiXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmIFxcdTBkMjhcXHUwZDJmXFx1MGQwMlwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiTWVtb3JpZXMgXFx1MGQzOFxcdTBkNDdcXHUwZDM1XFx1MGQyOCBcXHUwZDM1XFx1MGQ0ZFxcdTBkMmZcXHUwZDM1XFx1MGQzOFxcdTBkNGRcXHUwZDI1XFx1MGQxNVxcdTBkN2VcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MGQwN1xcdTBkMzdcXHUwZDRkXFx1MGQxZlxcdTBkM2VcXHUwZDI4XFx1MGQ0MVxcdTBkMzhcXHUwZDQzXFx1MGQyNCBcXHUwZDM4XFx1MGQ3Y1xcdTBkMTdcXHUwZDRkXFx1MGQxN1xcdTBkM2VcXHUwZDI0XFx1MGQ0ZFxcdTBkMmVcXHUwZDE1IFxcdTBkMDlcXHUwZDJhXFx1MGQxNVxcdTBkMzBcXHUwZDIzIFxcdTBkMzVcXHUwZDRkXFx1MGQyZlxcdTBkMzVcXHUwZDM4XFx1MGQ0ZFxcdTBkMjVcXHUwZDE1XFx1MGQ3ZVwiLENPTU1VTklUWV9UT1M6XCJcXHUwZDE1XFx1MGQyZVxcdTBkNGRcXHUwZDJlXFx1MGQ0ZFxcdTBkMmZcXHUwZDQyXFx1MGQyM1xcdTBkM2ZcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDNmIFxcdTBkMWNcXHUwZDNmXFx1MGQyZlxcdTBkNGJcXHUwZDJiXFx1MGQzZlxcdTBkMzJcXHUwZDRkXFx1MjAwZFxcdTBkMWZcXHUwZDRkXFx1MGQxZlxcdTBkMzBcXHUwZDRkXFx1MjAwZCBcXHUwZDI4XFx1MGQzZlxcdTBkMmNcXHUwZDI4XFx1MGQ0ZFxcdTBkMjdcXHUwZDI4XFx1MGQxNVxcdTBkMzNcXHUwZDRkXFx1MjAwZFwiLExFTlNfU1RVRElPX1RPUzpcIkxlbnMgU3R1ZGlvIFxcdTBkMzVcXHUwZDRkXFx1MGQyZlxcdTBkMzVcXHUwZDM4XFx1MGQ0ZFxcdTBkMjVcXHUwZDE1XFx1MGQ3ZVwiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlxcdTBkMjhcXHUwZDNmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiBcXHUwZDM4XFx1MGQ0ZFxcdTBkMzVcXHUwZDE1XFx1MGQzZVxcdTBkMzBcXHUwZDRkXFx1MGQyZlxcdTBkMjRcXHUwZDNlIFxcdTBkMjRcXHUwZDNmXFx1MGQzMFxcdTBkMWVcXHUwZDRkXFx1MGQxZVxcdTBkNDZcXHUwZDFmXFx1MGQ0MVxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkNDFcXHUwZDE1XFx1MGQ3ZVwiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIlxcdTBkMDZcXHUwZDM1XFx1MGQzNlxcdTBkNGRcXHUwZDJmXFx1MGQyZVxcdTBkM2VcXHUwZDJmIFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0ZFxcdTIwMGRcIixjb250ZW50OlsnXFx1MGQzOFxcdTBkNDhcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDRkIFxcdTBkMmFcXHUwZDRkXFx1MGQzMFxcdTBkMzVcXHUwZDMwXFx1MGQ0ZFxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkM2ZcXHUwZDJhXFx1MGQ0ZFxcdTBkMmFcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMjhcXHUwZDRkIFxcdTBkMzhcXHUwZDM5XFx1MGQzZVxcdTBkMmZcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0MVxcdTBkMjhcXHUwZDRkXFx1MGQyOFxcdTBkMjRcXHUwZDNmXFx1MGQyOFxcdTBkM2VcXHUwZDIzXFx1MGQ0ZCA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlxcdTBkMWVcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0ZCBcXHUwZDA4IFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0ZCBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkNGQ8L2E+LiBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQzM1xcdTBkNGRcXHUyMDBkIFxcdTBkMDZcXHUwZDM1XFx1MGQzNlxcdTBkNGRcXHUwZDJmXFx1MGQyZVxcdTBkM2VcXHUwZDJmXFx1MGQyNFxcdTBkM2ZcXHUwZDI4XFx1MGQzZVxcdTBkMzJcXHUwZDRkXFx1MjAwZCBcXHUwZDI4XFx1MGQzZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZFxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNGQgXFx1MGQwNVxcdTBkMzUgXFx1MGQxM1xcdTBkMmJcXHUwZDRkIFxcdTBkMWFcXHUwZDQ2XFx1MGQyZlxcdTBkNGRcXHUwZDJmXFx1MGQzZVxcdTBkMjhcXHUwZDNlXFx1MGQzNVxcdTBkM2ZcXHUwZDMyXFx1MGQ0ZFxcdTBkMzIuJ119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlxcdTBkMmVcXHUwZDQxXFx1MGQ3YlxcdTBkMTdcXHUwZDIzXFx1MGQyOFxcdTBkMTVcXHUwZDdlXCIsY29udGVudDpbJ1xcdTBkMjhcXHUwZDNmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiBcXHUwZDI0XFx1MGQzZlxcdTBkMzBcXHUwZDFlXFx1MGQ0ZFxcdTBkMWVcXHUwZDQ2XFx1MGQxZlxcdTBkNDFcXHUwZDJhXFx1MGQ0ZFxcdTBkMmFcXHUwZDQxXFx1MGQxNVxcdTBkMzNcXHUwZDRkXFx1MjAwZCBcXHUwZDEzXFx1MGQ3Y1xcdTBkMmVcXHUwZDRkXFx1MGQyZVxcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkM2ZcXHUwZDI4XFx1MGQ0MVxcdTBkMDIgXFx1MGQxZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQzNVxcdTBkNDZcXHUwZDJjXFx1MGQ0ZFxcdTIwMGRcXHUyMDBkXFx1MGQzOFxcdTBkNDhcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDNmXFx1MGQzMlxcdTBkNDYgXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IFxcdTBkMDVcXHUwZDI4XFx1MGQ0MVxcdTBkMmRcXHUwZDM1XFx1MGQwMiBcXHUwZDJlXFx1MGQ0NlxcdTBkMWFcXHUwZDRkXFx1MGQxYVxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkNDZcXHUwZDFmXFx1MGQ0MVxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDQxXFx1MGQwMiA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+XFx1MGQxZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkIFxcdTBkMDggXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmXFx1MGQxNVxcdTBkMzNcXHUwZDRkIFxcdTBkMDlcXHUwZDJhXFx1MGQyZlxcdTBkNGJcXHUwZDE3XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDQxPC9hPi4nXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1MGQyYVxcdTBkNGRcXHUwZDMwXFx1MGQxNVxcdTBkMWZcXHUwZDI4XFx1MGQzNVxcdTBkNDFcXHUwZDAyIFxcdTBkMDVcXHUwZDI4XFx1MGQzMlxcdTBkM2ZcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDM4XFx1MGQ0MVxcdTBkMDJcIixjb250ZW50OlsnXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDdlIFxcdTBkMWVcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IFxcdTBkMzhcXHUwZDQ4XFx1MGQzMVxcdTBkNGRcXHUwZDMxXFx1MGQ0ZCBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkNGQgXFx1MGQwZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMjhcXHUwZDQ2XFx1MGQyZlxcdTBkNDZcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDQ2XFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0MVxcdTBkMzFcXHUwZDNmXFx1MGQxYVxcdTBkNGRcXHUwZDFhXFx1MGQ0ZCBcXHUwZDM1XFx1MGQzZlxcdTBkMzVcXHUwZDMwXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZSBcXHUwZDM2XFx1MGQ0N1xcdTBkMTZcXHUwZDMwXFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDQxXFx1MGQwMiwgXFx1MGQzOFxcdTBkNDhcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDNmXFx1MGQyOFxcdTBkNGRcXHUwZDMxXFx1MGQ0NiBcXHUwZDJhXFx1MGQ0ZFxcdTBkMzBcXHUwZDE1XFx1MGQxZlxcdTBkMjhcXHUwZDAyIFxcdTBkMjhcXHUwZDNmXFx1MGQzMFxcdTBkNDBcXHUwZDE1XFx1MGQ0ZFxcdTBkMzdcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0MVxcdTBkMjhcXHUwZDRkXFx1MGQyOFxcdTBkMjRcXHUwZDNmXFx1MGQyOFxcdTBkNDFcXHUwZDAyLCBcXHUwZDE1XFx1MGQ0MlxcdTBkMWZcXHUwZDNlXFx1MjAwZFxcdTBkMjRcXHUwZDQ2LCBcXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiBcXHUwZDM4XFx1MGQ0OFxcdTBkMzFcXHUwZDRkXFx1MGQzMVxcdTBkM2ZcXHUwZDI4XFx1MGQ0ZFxcdTIwMGRcXHUwZDMxXFx1MGQ0NiBcXHUwZDJhXFx1MGQ0ZFxcdTBkMzBcXHUwZDE1XFx1MGQxZlxcdTBkMjhcXHUwZDM1XFx1MGQ0MVxcdTBkMDIgXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IFxcdTBkMDVcXHUwZDI4XFx1MGQ0MVxcdTBkMmRcXHUwZDM1XFx1MGQzNVxcdTBkNDFcXHUwZDAyIFxcdTBkMmVcXHUwZDQ2XFx1MGQxYVxcdTBkNGRcXHUwZDFhXFx1MGQyYVxcdTBkNGRcXHUwZDJhXFx1MGQ0NlxcdTBkMWZcXHUwZDQxXFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQ0MVxcdTBkMjhcXHUwZDRkXFx1MGQyOFxcdTBkMjRcXHUwZDNmXFx1MGQyOFxcdTBkNDFcXHUwZDAyIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5cXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZSBcXHUwZDA4IFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDdlIFxcdTBkMDlcXHUwZDJhXFx1MGQyZlxcdTBkNGJcXHUwZDE3XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDQxPC9hPiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1MGQyZVxcdTBkM2VcXHUwZDdjXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzMVxcdTBkNGRcXHUwZDMxXFx1MGQzZlxcdTBkMDJcXHUwZDE3XFx1MGQ0ZFwiLGNvbnRlbnQ6WydcXHUwZDJhXFx1MGQ0ZFxcdTBkMzBcXHUwZDM4XFx1MGQxNVxcdTBkNGRcXHUwZDI0XFx1MGQyZVxcdTBkM2VcXHUwZDJmIFxcdTBkMmFcXHUwZDMwXFx1MGQzOFxcdTBkNGRcXHUwZDJmXFx1MGQwMiBcXHUwZDMyXFx1MGQyZFxcdTBkNGRcXHUwZDJmXFx1MGQyZVxcdTBkM2VcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkM2ZcXHUwZDI4XFx1MGQ0MVxcdTBkMDIgXFx1MGQxZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQyYVxcdTBkMzBcXHUwZDM4XFx1MGQ0ZFxcdTBkMmYgXFx1MGQxNVxcdTBkNGRcXHUwZDJmXFx1MGQzZVxcdTBkMmVcXHUwZDRkXFx1MGQyYVxcdTBkNDZcXHUwZDJmXFx1MGQ0ZFxcdTBkMjhcXHUwZDQxXFx1MGQxNVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQyYlxcdTBkMzJcXHUwZDJhXFx1MGQ0ZFxcdTBkMzBcXHUwZDNlXFx1MGQyYVxcdTBkNGRcXHUwZDI0XFx1MGQzZiBcXHUwZDE1XFx1MGQyM1xcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2VcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkM2ZcXHUwZDI4XFx1MGQ0MVxcdTBkMDIgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZSBcXHUwZDA4IFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDdlIFxcdTBkMDlcXHUwZDJhXFx1MGQyZlxcdTBkNGJcXHUwZDE3XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDQxPC9hPi4gXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IFxcdTBkMjRcXHUwZDNlXFx1MGQ3ZFxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkMzBcXHUwZDRkXFx1MGQyZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQxMlxcdTBkMzBcXHUwZDQxIFxcdTBkMmFcXHUwZDRkXFx1MGQzMFxcdTBkNGFcXHUwZDJiXFx1MGQ0OFxcdTBkN2QgXFx1MGQyOFxcdTBkM2ZcXHUwZDdjXFx1MGQyZVxcdTBkNGRcXHUwZDJlXFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDQxXFx1MGQwMiBcXHUwZDJlXFx1MGQzMVxcdTBkNGRcXHUwZDMxXFx1MGQ0ZCBcXHUwZDM4XFx1MGQ0OFxcdTBkMzFcXHUwZDRkXFx1MGQzMVxcdTBkNDFcXHUwZDE1XFx1MGQzM1xcdTBkM2ZcXHUwZDdkIFxcdTBkMmFcXHUwZDRkXFx1MGQzMFxcdTBkMzhcXHUwZDE1XFx1MGQ0ZFxcdTBkMjRcXHUwZDJlXFx1MGQzZVxcdTBkMmYgXFx1MGQyYVxcdTBkMzBcXHUwZDM4XFx1MGQ0ZFxcdTBkMmZcXHUwZDAyIFxcdTBkMjhcXHUwZDdkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDQxXFx1MGQwMiBcXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiBcXHUwZDJlXFx1MGQ0MlxcdTBkMjhcXHUwZDRkXFx1MGQyOFxcdTBkM2VcXHUwZDAyIFxcdTBkMTVcXHUwZDE1XFx1MGQ0ZFxcdTBkMzdcXHUwZDNmIFxcdTBkMmFcXHUwZDMwXFx1MGQzOFxcdTBkNGRcXHUwZDJmIFxcdTBkMmFcXHUwZDNlXFx1MGQzMFxcdTBkNGRcXHUyMDBkXFx1MGQxZlxcdTBkNGRcXHUwZDIzXFx1MGQzMFxcdTBkNGRcXHUyMDBkXFx1MGQyZVxcdTBkM2VcXHUwZDMwXFx1MGQ0ZFxcdTIwMGQgXFx1MGQwOCBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQ3ZSBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDFhXFx1MGQ0ZFxcdTBkMWFcXHUwZDQ3XFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMDIuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwiXFx1MGQyZVxcdTBkNDJcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDNlXFx1MGQwMi1cXHUwZDE1XFx1MGQxNVxcdTBkNGRcXHUwZDM3XFx1MGQzZiBcXHUwZDJhXFx1MGQzMFxcdTBkMzhcXHUwZDRkXFx1MGQyZiBcXHUwZDJhXFx1MGQxOVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMzNcXHUwZDNmXFx1MGQxNVxcdTBkN2U6XCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiXFx1MGQyZVxcdTBkNDJcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDNlXFx1MGQwMi1cXHUwZDE1XFx1MGQxNVxcdTBkNGRcXHUwZDM3XFx1MGQzZiBcXHUwZDJhXFx1MGQzMFxcdTBkMzhcXHUwZDRkXFx1MGQyZiBcXHUwZDJhXFx1MGQxOVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMzNcXHUwZDNmXFx1MGQxNVxcdTBkN2U6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTBkMmFcXHUwZDRkXFx1MGQzMFxcdTBkM2VcXHUwZDJjXFx1MGQzMlxcdTBkNGRcXHUwZDJmXFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQzZlxcdTBkMzJcXHUwZDNlXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDI0XFx1MGQ0ZDogXFx1MGQxY1xcdTBkMjhcXHUwZDQxXFx1MGQzNVxcdTBkMzBcXHUwZDNmIDE1LCAyMDE5XCIsQm9keTpbXCJcXHUwZDI4XFx1MGQzZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQyY1xcdTBkNGRcXHUwZDMwXFx1MGQ1N1xcdTBkMzhcXHUwZDMwXFx1MGQ0ZFxcdTIwMGQgXFx1MGQwNVxcdTBkMzJcXHUwZDRkXFx1MGQzMlxcdTBkNDZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmXFx1MGQzMlxcdTBkNGRcXHUyMDBkIFxcdTBkMjFcXHUwZDNmXFx1MGQzNVxcdTBkNDhcXHUwZDM4XFx1MGQ0ZCBcXHUwZDM1XFx1MGQzNFxcdTBkM2YgXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmXFx1MGQxNVxcdTBkMzNcXHUwZDQ2IFxcdTBkMmVcXHUwZDNlXFx1MGQyOFxcdTBkNDdcXHUwZDFjXFx1MGQ0ZCBcXHUwZDFhXFx1MGQ0NlxcdTBkMmZcXHUwZDRkXFx1MGQyZlxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDRkIFxcdTBkMmFcXHUwZDQxXFx1MGQzMVxcdTBkMmVcXHUwZDQ3LCBcXHUwZDI0XFx1MGQzZVxcdTBkMzRcXHUwZDQ2IFxcdTBkMjhcXHUwZDNmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNGRcXHUyMDBkXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0ZCBcXHUwZDI4XFx1MGQzZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmIFxcdTBkMTVcXHUwZDRkXFx1MGQzMFxcdTBkMmVcXHUwZDQwXFx1MGQxNVxcdTBkMzBcXHUwZDIzXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkM2ZcXHUwZDMyXFx1MGQ0ZFxcdTIwMGQgXFx1MGQyZVxcdTBkM2VcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDAyIFxcdTBkMzVcXHUwZDMwXFx1MGQ0MVxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkM2VcXHUwZDAyLiBcXHUwZDFhXFx1MGQzZlxcdTBkMzIgXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmXFx1MGQxNVxcdTBkMzNcXHUwZDRkXFx1MjAwZCBcXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiBcXHUwZDM4XFx1MGQ0OFxcdTBkMzFcXHUwZDRkXFx1MGQzMVxcdTBkNGQgXFx1MGQyYVxcdTBkNGRcXHUwZDMwXFx1MGQzNVxcdTBkMzBcXHUwZDRkXFx1MjAwZFxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkM2ZcXHUwZDI4XFx1MGQ0ZCBcXHUwZDA2XFx1MGQzNVxcdTBkMzZcXHUwZDRkXFx1MGQyZlxcdTBkMmVcXHUwZDNlXFx1MGQyM1xcdTBkNGQgXFx1MGQwZVxcdTBkMjhcXHUwZDRkXFx1MGQyOFxcdTBkNGQgXFx1MGQxM1xcdTBkMzBcXHUwZDRkXFx1MjAwZFxcdTBkMmVcXHUwZDRkXFx1MGQyZVxcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQxNS4gXFx1MGQwOCBcXHUwZDE1XFx1MGQ0ZFxcdTBkMzBcXHUwZDJlXFx1MGQ0MFxcdTBkMTVcXHUwZDMwXFx1MGQyM1xcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZCBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDFhXFx1MGQ0ZFxcdTBkMWFcXHUwZDRkIFxcdTBkMDVcXHUwZDI0XFx1MGQ0ZCBcXHUwZDJjXFx1MGQ0ZFxcdTBkMzJcXHUwZDRiXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0ZCBcXHUwZDFhXFx1MGQ0NlxcdTBkMmZcXHUwZDRkXFx1MGQyZlxcdTBkM2VcXHUwZDI4XFx1MGQzZVxcdTBkMzVcXHUwZDNmXFx1MGQzMlxcdTBkNGRcXHUwZDMyLlwiXSxUaXRsZTpcIlxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZiBcXHUwZDE1XFx1MGQ0ZFxcdTBkMzBcXHUwZDJlXFx1MGQ0MFxcdTBkMTVcXHUwZDMwXFx1MGQyM1xcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZFwiLENPT0tJRV9QT1BVUDonXFx1MGQzOVxcdTBkM2VcXHUwZDJmXFx1MGQ0ZCEgXFx1MGQxZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZCBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQzM1xcdTBkNDFcXHUwZDAyIFxcdTBkMzhcXHUwZDJlXFx1MGQzZVxcdTBkMjhcXHUwZDJlXFx1MGQzZVxcdTBkMmYgXFx1MGQzOFxcdTBkM2VcXHUwZDE5XFx1MGQ0ZFxcdTBkMTVcXHUwZDQ3XFx1MGQyNFxcdTBkM2ZcXHUwZDE1XFx1MGQzNVxcdTBkM2ZcXHUwZDI2XFx1MGQ0ZFxcdTBkMmZcXHUwZDE1XFx1MGQzM1xcdTBkNDFcXHUwZDAyIChcXHUyMDFjXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmXFx1MGQxNVxcdTBkMzNcXHUwZDRkXFx1MjAwZFxcdTIwMWQpLCBcXHUwZDJlXFx1MGQ0MlxcdTBkMjhcXHUwZDRkXFx1MGQyOFxcdTBkM2VcXHUwZDAyIFxcdTBkMTVcXHUwZDE1XFx1MGQ0ZFxcdTBkMzdcXHUwZDNmIFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0ZFxcdTIwMGQgXFx1MGQwOVxcdTBkMzNcXHUwZDRkXFx1MjAwZFxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkMWZcXHUwZDQ2LCBcXHUwZDA4IFxcdTBkMzVcXHUwZDQ2XFx1MGQyY1xcdTBkNGRcXHUyMDBkXFx1MGQzOFxcdTBkNDhcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDNmXFx1MGQzMlxcdTBkNGRcXHUyMDBkIFxcdTBkMmFcXHUwZDRkXFx1MGQzMFxcdTBkMzVcXHUwZDMwXFx1MGQ0ZFxcdTIwMGRcXHUwZDI0XFx1MGQ0ZFxcdTBkMjRcXHUwZDI4XFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDRkIFxcdTBkMzhcXHUwZDM5XFx1MGQzZVxcdTBkMmZcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMjhcXHUwZDQxXFx1MGQwMiBcXHUwZDI4XFx1MGQzZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQyY1xcdTBkNGRcXHUwZDMwXFx1MGQ1N1xcdTBkMzhcXHUwZDNmXFx1MGQwMlxcdTBkMTdcXHUwZDRkIFxcdTBkMDVcXHUwZDI4XFx1MGQ0MVxcdTBkMmRcXHUwZDM1XFx1MGQwMiBcXHUwZDJlXFx1MGQ0NlxcdTBkMWFcXHUwZDRkXFx1MGQxYVxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkNDZcXHUwZDFmXFx1MGQ0MVxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkM2VcXHUwZDI4XFx1MGQ0MVxcdTBkMDIsIFxcdTIwMGQgXFx1MGQyYVxcdTBkNGRcXHUwZDMwXFx1MGQxNVxcdTBkMWZcXHUwZDI4XFx1MGQwMiBcXHUwZDI4XFx1MGQzZlxcdTBkMzBcXHUwZDQwXFx1MGQxNVxcdTBkNGRcXHUwZDM3XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2VcXHUwZDI4XFx1MGQ0MVxcdTBkMDIsIFxcdTBkMTVcXHUwZDQyXFx1MGQxZlxcdTBkM2VcXHUwZDI0XFx1MGQ0NiBcXHUwZDJhXFx1MGQzMFxcdTBkMzhcXHUwZDRkXFx1MGQyZlxcdTBkMzJcXHUwZDE1XFx1MGQ0ZFxcdTBkMzdcXHUwZDRkXFx1MGQyZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZFxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNDFcXHUwZDAyIFxcdTBkMzVcXHUwZDQ3XFx1MGQyM1xcdTBkNGRcXHUwZDFmXFx1MGQzZiBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQwMi4gXFx1MGQxZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZCBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQzM1xcdTBkNGRcXHUyMDBkIFxcdTBkMGVcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDI4XFx1MGQ0NiBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQ0MSBcXHUwZDBlXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQ0MVxcdTBkMDIgXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZiBcXHUwZDI0XFx1MGQzZlxcdTBkMzBcXHUwZDFlXFx1MGQ0ZFxcdTBkMWVcXHUwZDQ2XFx1MGQxZlxcdTBkNDFcXHUwZDJhXFx1MGQ0ZFxcdTBkMmFcXHUwZDQxXFx1MGQxNVxcdTBkMzNcXHUwZDQxXFx1MGQwMiBcXHUwZDM4XFx1MGQwMlxcdTBkMmNcXHUwZDI4XFx1MGQ0ZFxcdTBkMjdcXHUwZDNmXFx1MGQxYVxcdTBkNGRcXHUwZDFhIFxcdTBkMTVcXHUwZDQyXFx1MGQxZlxcdTBkNDFcXHUwZDI0XFx1MGQzMlxcdTBkNGRcXHUyMDBkIFxcdTBkMzVcXHUwZDNmXFx1MGQzNVxcdTBkMzBcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0ZFxcdTIwMGRcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDRkIFxcdTBkMWVcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2YgXFx1MGQyOFxcdTBkMmZcXHUwZDAyIDwvYT4gXFx1MGQxNVxcdTBkM2VcXHUwZDIzXFx1MGQ0MVxcdTBkMTUhIFxcdTBkMjRcXHUwZDNlXFx1MGQzNFxcdTBkNDYgXFx1MjAxY1xcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDdlIFxcdTBkMDVcXHUwZDAyXFx1MGQxN1xcdTBkNDBcXHUwZDE1XFx1MGQzMFxcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTIwMWQgXFx1MGQxNVxcdTBkNGRcXHUwZDMyXFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNGQgXFx1MGQxYVxcdTBkNDZcXHUwZDJmXFx1MGQ0ZFxcdTBkMmZcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkM2ZcXHUwZDMyXFx1MGQ0MlxcdTBkMWZcXHUwZDQ2LCBcXHUwZDA1XFx1MGQyNFxcdTBkNGRcXHUwZDJmXFx1MGQzZVxcdTBkMzVcXHUwZDM2XFx1MGQ0ZFxcdTBkMmZcXHUwZDJlXFx1MGQzMlxcdTBkNGRcXHUwZDMyXFx1MGQzZVxcdTBkMjRcXHUwZDRkXFx1MGQyNCBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQ3ZSBcXHUwZDA5XFx1MGQ3ZVxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkNDZcXHUwZDFmXFx1MGQ0NiBcXHUwZDBlXFx1MGQzMlxcdTBkNGRcXHUwZDMyXFx1MGQzZSBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQzM1xcdTBkNDFcXHUwZDAyIFxcdTBkMDlcXHUwZDJhXFx1MGQyZlxcdTBkNGJcXHUwZDE3XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2VcXHUwZDdiIFxcdTBkMjhcXHUwZDNmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZSBcXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNGQgXFx1MGQzOFxcdTBkMmVcXHUwZDRkXFx1MGQyZVxcdTBkMjRcXHUwZDAyIFxcdTBkMjhcXHUwZDdkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDQxLiBcXHUwZDM1XFx1MGQzMlxcdTBkMjRcXHUwZDRkIFxcdTIwMWNYXFx1MjAxZCBcXHUwZDE1XFx1MGQ0ZFxcdTBkMzJcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0ZCBcXHUwZDFhXFx1MGQ0NlxcdTBkMmZcXHUwZDRkXFx1MGQyNFxcdTBkNDFcXHUwZDE1XFx1MGQ0YVxcdTBkMjNcXHUwZDRkXFx1MGQxZlxcdTBkNGQgXFx1MGQwNVxcdTBkMjRcXHUwZDRkXFx1MGQyZlxcdTBkM2VcXHUwZDM1XFx1MGQzNlxcdTBkNGRcXHUwZDJmXFx1MGQyZVxcdTBkM2ZcXHUwZDMyXFx1MGQ0ZFxcdTBkMzJcXHUwZDNlXFx1MGQyNFxcdTBkNGRcXHUwZDI0IFxcdTBkMGVcXHUwZDMyXFx1MGQ0ZFxcdTBkMzJcXHUwZDNlIFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0MVxcdTBkMDIgXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDdlXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0ZCBcXHUwZDI4XFx1MGQzZlxcdTBkMzBcXHUwZDM4XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2VcXHUwZDAyLiBcXHUwZDI4XFx1MGQzZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmIFxcdTBkMTVcXHUwZDRkXFx1MGQzMFxcdTBkMmVcXHUwZDQwXFx1MGQxNVxcdTBkMzBcXHUwZDIzXFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQzZlxcdTBkN2QgXFx1MGQyZVxcdTBkM2VcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDAyIFxcdTBkMzVcXHUwZDMwXFx1MGQ0MVxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkM2VcXHUwZDI4XFx1MGQ0MVxcdTBkMDIgXFx1MGQwZlxcdTBkMjRcXHUwZDRkIFxcdTBkMzhcXHUwZDJlXFx1MGQyZlxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkNDFcXHUwZDAyIFxcdTBkMjhcXHUwZDNmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiBcXHUwZDM4XFx1MGQyZVxcdTBkNGRcXHUwZDJlXFx1MGQyNFxcdTBkMDIgXFx1MGQyYVxcdTBkM2ZcXHUwZDdiXFx1MGQzNVxcdTBkMzJcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMjhcXHUwZDQxXFx1MGQwMiBcXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmIFxcdTBkMjhcXHUwZDJmXFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQzZlxcdTBkN2Q8L2E+IFxcdTIwMWNcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2YgXFx1MGQxNVxcdTBkNGRcXHUwZDMwXFx1MGQyZVxcdTBkNDBcXHUwZDE1XFx1MGQzMFxcdTBkMjNcXHUwZDI0XFx1MGQ0ZFxcdTBkMjRcXHUwZDNmXFx1MGQzMlxcdTBkNDdcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDRkXFx1MjAxZCBcXHUwZDJhXFx1MGQ0YlxcdTBkMTVcXHUwZDQxXFx1MGQxNS4nLENPT0tJRV9QT1BVUF9FVTonXFx1MGQzOVxcdTBkM2VcXHUwZDJmXFx1MGQ0ZCEgXFx1MGQxZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZCBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQzM1xcdTBkNDFcXHUwZDAyIFxcdTBkMzhcXHUwZDJlXFx1MGQzZVxcdTBkMjhcXHUwZDJlXFx1MGQzZVxcdTBkMmYgXFx1MGQzOFxcdTBkM2VcXHUwZDE5XFx1MGQ0ZFxcdTBkMTVcXHUwZDQ3XFx1MGQyNFxcdTBkM2ZcXHUwZDE1XFx1MGQzNVxcdTBkM2ZcXHUwZDI2XFx1MGQ0ZFxcdTBkMmZcXHUwZDE1XFx1MGQzM1xcdTBkNDFcXHUwZDAyIChcXHUyMDFjXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmXFx1MGQxNVxcdTBkMzNcXHUwZDRkXFx1MjAwZFxcdTIwMWQpLCBcXHUwZDJlXFx1MGQ0MlxcdTBkMjhcXHUwZDRkXFx1MGQyOFxcdTBkM2VcXHUwZDAyIFxcdTBkMTVcXHUwZDE1XFx1MGQ0ZFxcdTBkMzdcXHUwZDNmIFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0ZFxcdTIwMGQgXFx1MGQwOVxcdTBkMzNcXHUwZDRkXFx1MjAwZFxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkMWZcXHUwZDQ2LCBcXHUwZDA4IFxcdTBkMzVcXHUwZDQ2XFx1MGQyY1xcdTBkNGRcXHUyMDBkXFx1MGQzOFxcdTBkNDhcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDNmXFx1MGQzMlxcdTBkNGRcXHUyMDBkIFxcdTBkMmFcXHUwZDRkXFx1MGQzMFxcdTBkMzVcXHUwZDMwXFx1MGQ0ZFxcdTIwMGRcXHUwZDI0XFx1MGQ0ZFxcdTBkMjRcXHUwZDI4XFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQzZlxcdTBkMjhcXHUwZDRkIFxcdTBkMzhcXHUwZDM5XFx1MGQzZVxcdTBkMmZcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMjhcXHUwZDQxXFx1MGQwMiBcXHUwZDI4XFx1MGQzZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQyY1xcdTBkNGRcXHUwZDMwXFx1MGQ1N1xcdTBkMzhcXHUwZDNmXFx1MGQwMlxcdTBkMTdcXHUwZDRkIFxcdTBkMDVcXHUwZDI4XFx1MGQ0MVxcdTBkMmRcXHUwZDM1XFx1MGQwMiBcXHUwZDJlXFx1MGQ0NlxcdTBkMWFcXHUwZDRkXFx1MGQxYVxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkNDZcXHUwZDFmXFx1MGQ0MVxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkM2VcXHUwZDI4XFx1MGQ0MVxcdTBkMDIsIFxcdTIwMGQgXFx1MGQyYVxcdTBkNGRcXHUwZDMwXFx1MGQxNVxcdTBkMWZcXHUwZDI4XFx1MGQwMiBcXHUwZDI4XFx1MGQzZlxcdTBkMzBcXHUwZDQwXFx1MGQxNVxcdTBkNGRcXHUwZDM3XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2VcXHUwZDI4XFx1MGQ0MVxcdTBkMDIsIFxcdTBkMTVcXHUwZDQyXFx1MGQxZlxcdTBkM2VcXHUwZDI0XFx1MGQ0NiBcXHUwZDJhXFx1MGQzMFxcdTBkMzhcXHUwZDRkXFx1MGQyZlxcdTBkMzJcXHUwZDE1XFx1MGQ0ZFxcdTBkMzdcXHUwZDRkXFx1MGQyZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZFxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNDFcXHUwZDAyIFxcdTBkMzVcXHUwZDQ3XFx1MGQyM1xcdTBkNGRcXHUwZDFmXFx1MGQzZiBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQwMi4gXFx1MGQxZVxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDRkXFx1MjAwZCBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQzM1xcdTBkNGRcXHUyMDBkIFxcdTBkMGVcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDI4XFx1MGQ0NiBcXHUwZDA5XFx1MGQyYVxcdTBkMmZcXHUwZDRiXFx1MGQxN1xcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQ0MSBcXHUwZDBlXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQ0MVxcdTBkMDIgXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZiBcXHUwZDI0XFx1MGQzZlxcdTBkMzBcXHUwZDFlXFx1MGQ0ZFxcdTBkMWVcXHUwZDQ2XFx1MGQxZlxcdTBkNDFcXHUwZDJhXFx1MGQ0ZFxcdTBkMmFcXHUwZDQxXFx1MGQxNVxcdTBkMzNcXHUwZDQxXFx1MGQwMiBcXHUwZDM4XFx1MGQwMlxcdTBkMmNcXHUwZDI4XFx1MGQ0ZFxcdTBkMjdcXHUwZDNmXFx1MGQxYVxcdTBkNGRcXHUwZDFhIFxcdTBkMTVcXHUwZDQyXFx1MGQxZlxcdTBkNDFcXHUwZDI0XFx1MGQzMlxcdTBkNGRcXHUyMDBkIFxcdTBkMzVcXHUwZDNmXFx1MGQzNVxcdTBkMzBcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0ZFxcdTIwMGRcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDRkIFxcdTBkMWVcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0MVxcdTBkMWZcXHUwZDQ2IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2YgXFx1MGQyOFxcdTBkMmZcXHUwZDAyIDwvYT4gXFx1MGQxNVxcdTBkM2VcXHUwZDIzXFx1MGQ0MVxcdTBkMTUhIFxcdTBkMjRcXHUwZDNlXFx1MGQzNFxcdTBkNDYgXFx1MjAxY1xcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDdlIFxcdTBkMDVcXHUwZDAyXFx1MGQxN1xcdTBkNDBcXHUwZDE1XFx1MGQzMFxcdTBkM2ZcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTIwMWQgXFx1MGQxNVxcdTBkNGRcXHUwZDMyXFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNGQgXFx1MGQxYVxcdTBkNDZcXHUwZDJmXFx1MGQ0ZFxcdTBkMmZcXHUwZDQxXFx1MGQyOFxcdTBkNGRcXHUwZDI4XFx1MGQyNFxcdTBkM2ZcXHUwZDMyXFx1MGQ0MlxcdTBkMWZcXHUwZDQ2LCBcXHUwZDA1XFx1MGQyNFxcdTBkNGRcXHUwZDJmXFx1MGQzZVxcdTBkMzVcXHUwZDM2XFx1MGQ0ZFxcdTBkMmZcXHUwZDJlXFx1MGQzMlxcdTBkNGRcXHUwZDMyXFx1MGQzZVxcdTBkMjRcXHUwZDRkXFx1MGQyNCBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQ3ZSBcXHUwZDA5XFx1MGQ3ZVxcdTBkMmFcXHUwZDRkXFx1MGQyYVxcdTBkNDZcXHUwZDFmXFx1MGQ0NiBcXHUwZDBlXFx1MGQzMlxcdTBkNGRcXHUwZDMyXFx1MGQzZSBcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2ZcXHUwZDE1XFx1MGQzM1xcdTBkNDFcXHUwZDAyIFxcdTBkMDlcXHUwZDJhXFx1MGQyZlxcdTBkNGJcXHUwZDE3XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2VcXHUwZDdiIFxcdTBkMjhcXHUwZDNmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZSBcXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQ3ZVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkNGQgXFx1MGQzOFxcdTBkMmVcXHUwZDRkXFx1MGQyZVxcdTBkMjRcXHUwZDAyIFxcdTBkMjhcXHUwZDdkXFx1MGQxNVxcdTBkNDFcXHUwZDI4XFx1MGQ0ZFxcdTBkMjhcXHUwZDQxLiBcXHUwZDM1XFx1MGQzMlxcdTBkMjRcXHUwZDRkIFxcdTIwMWNYXFx1MjAxZCBcXHUwZDE1XFx1MGQ0ZFxcdTBkMzJcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0ZCBcXHUwZDFhXFx1MGQ0NlxcdTBkMmZcXHUwZDRkXFx1MGQyNFxcdTBkNDFcXHUwZDE1XFx1MGQ0YVxcdTBkMjNcXHUwZDRkXFx1MGQxZlxcdTBkNGQgXFx1MGQwNVxcdTBkMjRcXHUwZDRkXFx1MGQyZlxcdTBkM2VcXHUwZDM1XFx1MGQzNlxcdTBkNGRcXHUwZDJmXFx1MGQyZVxcdTBkM2ZcXHUwZDMyXFx1MGQ0ZFxcdTBkMzJcXHUwZDNlXFx1MGQyNFxcdTBkNGRcXHUwZDI0IFxcdTBkMGVcXHUwZDMyXFx1MGQ0ZFxcdTBkMzJcXHUwZDNlIFxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0MVxcdTBkMDIgXFx1MGQyOFxcdTBkM2ZcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDdlXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0ZCBcXHUwZDI4XFx1MGQzZlxcdTBkMzBcXHUwZDM4XFx1MGQzZlxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2VcXHUwZDAyLiBcXHUwZDI4XFx1MGQzZlxcdTBkMTlcXHUwZDRkXFx1MGQxOVxcdTBkMzNcXHUwZDQxXFx1MGQxZlxcdTBkNDYgXFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmIFxcdTBkMTVcXHUwZDRkXFx1MGQzMFxcdTBkMmVcXHUwZDQwXFx1MGQxNVxcdTBkMzBcXHUwZDIzXFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQzZlxcdTBkN2QgXFx1MGQyZVxcdTBkM2VcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDAyIFxcdTBkMzVcXHUwZDMwXFx1MGQ0MVxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkM2VcXHUwZDI4XFx1MGQ0MVxcdTBkMDIgXFx1MGQwZlxcdTBkMjRcXHUwZDRkIFxcdTBkMzhcXHUwZDJlXFx1MGQyZlxcdTBkMjRcXHUwZDRkXFx1MGQyNFxcdTBkNDFcXHUwZDAyIFxcdTBkMjhcXHUwZDNmXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiBcXHUwZDM4XFx1MGQyZVxcdTBkNGRcXHUwZDJlXFx1MGQyNFxcdTBkMDIgXFx1MGQyYVxcdTBkM2ZcXHUwZDdiXFx1MGQzNVxcdTBkMzJcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZVxcdTBkMjhcXHUwZDQxXFx1MGQwMiBcXHUwZDFlXFx1MGQxOVxcdTBkNGRcXHUwZDE5XFx1MGQzM1xcdTBkNDFcXHUwZDFmXFx1MGQ0NiA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGQxNVxcdTBkNDFcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDNmIFxcdTBkMjhcXHUwZDJmXFx1MGQyNFxcdTBkNGRcXHUwZDI0XFx1MGQzZlxcdTBkN2Q8L2E+IFxcdTIwMWNcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2YgXFx1MGQxNVxcdTBkNGRcXHUwZDMwXFx1MGQyZVxcdTBkNDBcXHUwZDE1XFx1MGQzMFxcdTBkMjNcXHUwZDI0XFx1MGQ0ZFxcdTBkMjRcXHUwZDNmXFx1MGQzMlxcdTBkNDdcXHUwZDE1XFx1MGQ0ZFxcdTBkMTVcXHUwZDRkXFx1MjAxZCBcXHUwZDJhXFx1MGQ0YlxcdTBkMTVcXHUwZDQxXFx1MGQxNS4nLEFncmVlVGV4dDpcIlxcdTBkMTVcXHUwZDQxXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQzZlxcdTBkMTVcXHUwZDMzXFx1MGQ0NiBcXHUwZDA1XFx1MGQwMlxcdTBkMTdcXHUwZDQwXFx1MGQxNVxcdTBkMzBcXHUwZDNmXFx1MGQxNVxcdTBkNGRcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcIixTZXR0aW5nc1RleHQ6XCJcXHUwZDE1XFx1MGQ0MVxcdTBkMTVcXHUwZDRkXFx1MGQxNVxcdTBkM2YgXFx1MGQxNVxcdTBkNGRcXHUwZDMwXFx1MGQyZVxcdTBkNDBcXHUwZDE1XFx1MGQzMFxcdTBkMjNcXHUwZDE5XFx1MGQ0ZFxcdTBkMTlcXHUwZDMzXFx1MGQ0ZFxcdTIwMGRcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTBkMzJcXHUwZDAyXFx1MGQxOFxcdTBkMjhcXHUwZDAyIFxcdTBkMzFcXHUwZDNmXFx1MGQyYVxcdTBkNGRcXHUwZDJhXFx1MGQ0YlxcdTBkN2NcXHUyMDBkXFx1MGQxZlxcdTBkNGRcXHUwZDFmXFx1MGQ0ZCBcXHUwZDFhXFx1MGQ0NlxcdTBkMmZcXHUwZDRkXFx1MGQyZlxcdTBkNDFcXHUwZDE1XCIsU3BvdGxpZ2h0OlwiXFx1MGQzOFxcdTBkNGRcXHUwZDJhXFx1MGQ0YlxcdTBkMWZcXHUwZDRkXFx1MGQxZlxcdTBkNGRcXHUyMDBjXFx1MGQzMlxcdTBkNDhcXHUwZDMxXFx1MGQ0ZFxcdTBkMzFcXHUwZDRkXCJ9LFwibXItaW5cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHUwOTMyXFx1MDkzZVxcdTA5MDdcXHUwOTM1XFx1MDk0ZFxcdTA5MzlcIixBZHM6XCJcXHUwOTFjXFx1MDkzZVxcdTA5MzlcXHUwOTNmXFx1MDkzMFxcdTA5M2VcXHUwOTI0XFx1MDk0MFwiLENvbXBhbnk6XCJcXHUwOTE1XFx1MDkwMlxcdTA5MmFcXHUwOTI4XFx1MDk0MFwiLEhvbWU6XCJcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTE3XFx1MDk0M1xcdTA5MzlcIixCbG9nOlwiXFx1MDkyY1xcdTA5NGRcXHUwOTMyXFx1MDk0OVxcdTA5MTdcIixKb2JzOlwiXFx1MDkyOFxcdTA5NGJcXHUwOTE1XFx1MDkzMVxcdTA5NGRcXHUwOTJmXFx1MDkzZVwiLENhcmVlcnM6XCJcXHUwOTE1XFx1MDkzMFxcdTA5M2ZcXHUwOTJmXFx1MDkzMFwiLFByZXNzOlwiXFx1MDkyZVxcdTA5M2VcXHUwOTI3XFx1MDk0ZFxcdTA5MmZcXHUwOTJlXFx1MDk0N1wiLE5ld3M6XCJcXHUwOTJjXFx1MDkzZVxcdTA5MjRcXHUwOTJlXFx1MDk0ZFxcdTA5MmZcXHUwOTNlXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5MzhcXHUwOTNlXFx1MDkzMFxcdTA5MmVcXHUwOTNlXFx1MDkyN1xcdTA5NGRcXHUwOTJmXFx1MDkyZSBcXHUwOTFhXFx1MDk0Y1xcdTA5MTVcXHUwOTM2XFx1MDk0ZFxcdTA5MmZcXHUwOTNlXCIsVHdpdHRlcjpcIlxcdTA5MWZcXHUwOTRkXFx1MDkzNVxcdTA5M2ZcXHUwOTFmXFx1MDkzMFwiLExhbmd1YWdlOlwiXFx1MDkyZFxcdTA5M2VcXHUwOTM3XFx1MDkzZVwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlNuYXBjaGF0IFxcdTA5MjFcXHUwOTNlXFx1MDkwYVxcdTA5MjhcXHUwOTMyXFx1MDk0YlxcdTA5MjEgXFx1MDkxNVxcdTA5MzBcXHUwOTNlXCIsRG93bmxvYWQ6XCJcXHUwOTIxXFx1MDkzZVxcdTA5MGFcXHUwOTI4XFx1MDkzMlxcdTA5NGJcXHUwOTIxXCIsS2l0OlwiXFx1MDkxNVxcdTA5M2ZcXHUwOTFmXCIsU3RvcmllczpcIlxcdTA5MTdcXHUwOTRiXFx1MDkzN1xcdTA5NGRcXHUwOTFmXFx1MDk0MFwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJcXHUwOTM4XFx1MDk0ZFxcdTA5MWZcXHUwOTRiXFx1MDkwNVxcdTA5MzBcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcImlPUyBcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIFNuYXBjaGF0XCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiXFx1MDkwNVxcdTA5MDFcXHUwOTIxXFx1MDk0ZFxcdTA5MzBcXHUwOTQ5XFx1MDkwN1xcdTA5MjFcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIFNuYXBjaGF0XCIsQ29tbXVuaXR5OlwiXFx1MDkzOFxcdTA5MmVcXHUwOTQxXFx1MDkyNlxcdTA5M2VcXHUwOTJmXCIsU3VwcG9ydDpcIlxcdTA5MzhcXHUwOTM5XFx1MDkzZVxcdTA5MmZcXHUwOTRkXFx1MDkyZlxcdTA5MjRcXHUwOTNlXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1MDkzOFxcdTA5MmVcXHUwOTQxXFx1MDkyNlxcdTA5M2VcXHUwOTJmIFxcdTA5MmVcXHUwOTNlXFx1MDkzMFxcdTA5NGRcXHUwOTE3XFx1MDkyNlxcdTA5MzBcXHUwOTRkXFx1MDkzNlxcdTA5MTUgXFx1MDkzOFxcdTA5NDJcXHUwOTFhXFx1MDkyOFxcdTA5M2VcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlxcdTA5MzhcXHUwOTQxXFx1MDkzMFxcdTA5MTVcXHUwOTRkXFx1MDkzN1xcdTA5M2UgXFx1MDkxNVxcdTA5NDdcXHUwOTAyXFx1MDkyNlxcdTA5NGRcXHUwOTMwXCIsU25hcGNvZGVzOlwiXFx1MDkzOFxcdTA5NGRcXHUwOTI4XFx1MDk0NVxcdTA5MmFcXHUwOTE1XFx1MDk0YlxcdTA5MjFcXHUwOTRkXFx1MDkzOFwiLEdlb2ZpbHRlcnM6XCJcXHUwOTFjXFx1MDkzZlxcdTA5MTNcXHUwOTJiXFx1MDkzZlxcdTA5MzJcXHUwOTRkXFx1MDkxZlxcdTA5MzBcXHUwOTRkXFx1MDkzOFwiLENyZWF0ZTpcIlxcdTA5MmJcXHUwOTNmXFx1MDkzMlxcdTA5NGRcXHUwOTFmXFx1MDkzMCBcXHUwOTM1IFxcdTA5MzJcXHUwOTQ3XFx1MDkyOFxcdTA5NGRcXHUwOTM4XFx1MDk0N1xcdTA5MzhcIixNYXA6XCJcXHUwOTJlXFx1MDk0NVxcdTA5MmFcIixBZHZlcnRpc2luZzpcIlxcdTA5MWNcXHUwOTNlXFx1MDkzOVxcdTA5M2ZcXHUwOTMwXFx1MDkzZVxcdTA5MjRcXHUwOTQwXCIsXCJCdXkgQWRzXCI6XCJcXHUwOTFjXFx1MDkzZVxcdTA5MzlcXHUwOTNmXFx1MDkzMFxcdTA5M2VcXHUwOTI0XFx1MDk0MCBcXHUwOTE2XFx1MDkzMFxcdTA5NDdcXHUwOTI2XFx1MDk0MCBcXHUwOTE1XFx1MDkzMFxcdTA5M2VcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHUwOTFjXFx1MDkzZVxcdTA5MzlcXHUwOTNmXFx1MDkzMFxcdTA5M2VcXHUwOTI0IFxcdTA5MjdcXHUwOTRiXFx1MDkzMFxcdTA5MjNcXHUwOTQ3XCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTA5MzBcXHUwOTNlXFx1MDkxY1xcdTA5MjhcXHUwOTQ4XFx1MDkyNFxcdTA5M2ZcXHUwOTE1IFxcdTA5MWNcXHUwOTNlXFx1MDkzOVxcdTA5M2ZcXHUwOTMwXFx1MDkzZVxcdTA5MjQgXFx1MDkyYVxcdTA5NDFcXHUwOTM4XFx1MDk0ZFxcdTA5MjRcXHUwOTE1XFx1MDkzZVxcdTA5MzJcXHUwOTJmXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwOTJjXFx1MDk0ZFxcdTA5MzBcXHUwOTAxXFx1MDkyMVxcdTA5MWFcXHUwOTQwIFxcdTA5MmVcXHUwOTNlXFx1MDkzMFxcdTA5NGRcXHUwOTE3XFx1MDkyNlxcdTA5MzBcXHUwOTRkXFx1MDkzNlxcdTA5MTUgXFx1MDkyNFxcdTA5MjRcXHUwOTRkXFx1MDkyNFxcdTA5NGRcXHUwOTM1XFx1MDk0N1wiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkxYVxcdTA5M2VcXHUwOTMwXFx1MDkzZVxcdTA5MWFcXHUwOTQ3IFxcdTA5MjhcXHUwOTNmXFx1MDkyZlxcdTA5MmVcIixMZWdhbDpcIlxcdTA5MTVcXHUwOTNlXFx1MDkyZlxcdTA5MjZcXHUwOTQ3XFx1MDkzNVxcdTA5M2ZcXHUwOTM3XFx1MDkyZlxcdTA5MTVcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTA5MzhcXHUwOTQ3XFx1MDkzNVxcdTA5NDdcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MDVcXHUwOTFmXFx1MDk0MFwiLEltcHJlc3N1bTpcIlxcdTA5MTVcXHUwOTNlXFx1MDkyZlxcdTA5MjZcXHUwOTQ3XFx1MDkzNlxcdTA5NDBcXHUwOTMwIFxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5MTVcXHUwOTFmXFx1MDk0MFxcdTA5MTVcXHUwOTMwXFx1MDkyM1wiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTA5MTdcXHUwOTRiXFx1MDkyYVxcdTA5MjhcXHUwOTQwXFx1MDkyZlxcdTA5MjRcXHUwOTNlIFxcdTA5MjdcXHUwOTRiXFx1MDkzMFxcdTA5MjNcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHUwOTE3XFx1MDk0YlxcdTA5MmFcXHUwOTI4XFx1MDk0MFxcdTA5MmZcXHUwOTI0XFx1MDkzZSBcXHUwOTE1XFx1MDk0N1xcdTA5MDJcXHUwOTI2XFx1MDk0ZFxcdTA5MzBcIixcIkNvb2tpZSBQb2xpY3lcIjpcIlxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDAgXFx1MDkyN1xcdTA5NGJcXHUwOTMwXFx1MDkyM1wiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MDkyZVxcdTA5NDdcXHUwOTJlXFx1MDkzMFxcdTA5NDBcXHUwOTFjXFx1MDk0ZCBcXHUwOTM4XFx1MDk0N1xcdTA5MzVcXHUwOTQ3XFx1MDkxYVxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTA1XFx1MDkxZlxcdTA5NDBcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MDkzOFxcdTA5M2VcXHUwOTI4XFx1MDk0MVxcdTA5MTVcXHUwOTQyXFx1MDkzMiBcXHUwOTE1XFx1MDkzMlxcdTA5NGRcXHUwOTJhXFx1MDkxNSBcXHUwOTM4XFx1MDkzZVxcdTA5MjdcXHUwOTI4XFx1MDk0NyBcXHUwOTA1XFx1MDkxZlxcdTA5NDBcIixDT01NVU5JVFlfVE9TOlwiXFx1MDkzOFxcdTA5MmVcXHUwOTQxXFx1MDkyNlxcdTA5M2VcXHUwOTJmIEdlb2ZpbHRlciBcXHUwOTA1XFx1MDkxZlxcdTA5NDBcIixMRU5TX1NUVURJT19UT1M6XCJMZW5zIFN0dWRpbyBcXHUwOTA1XFx1MDkxZlxcdTA5NDBcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MTdcXHUwOTRiXFx1MDkyYVxcdTA5MjhcXHUwOTQwXFx1MDkyZlxcdTA5MjRcXHUwOTNlIFxcdTA5MjhcXHUwOTNmXFx1MDkzNVxcdTA5MjFcXHUwOTQwXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiXFx1MDkwNlxcdTA5MzVcXHUwOTM2XFx1MDk0ZFxcdTA5MmZcXHUwOTE1IFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjXCIsY29udGVudDpbJ1xcdTA5MzhcXHUwOTNlXFx1MDkwN1xcdTA5MWYgXFx1MDkxYVxcdTA5M2VcXHUwOTMyXFx1MDkzNVxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTI0IFxcdTA5MmVcXHUwOTI2XFx1MDkyNCBcXHUwOTE1XFx1MDkzMFxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+XFx1MDkwNlxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5NDAgXFx1MDkyZlxcdTA5M2UgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWMgXFx1MDkzNVxcdTA5M2VcXHUwOTJhXFx1MDkzMFxcdTA5MjRcXHUwOTRiPC9hPi4gXFx1MDkyZlxcdTA5M2UgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWMgXFx1MDkwNlxcdTA5MzVcXHUwOTM2XFx1MDk0ZFxcdTA5MmZcXHUwOTE1IFxcdTA5MDVcXHUwOTM4XFx1MDkzMlxcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MjhcXHUwOTQ3LCBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5NDAgXFx1MDkyNFxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTJjXFx1MDkwMlxcdTA5MjYgXFx1MDkxNVxcdTA5MzBcXHUwOTQyIFxcdTA5MzZcXHUwOTE1XFx1MDkyNCBcXHUwOTI4XFx1MDkzZVxcdTA5MzlcXHUwOTQwLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwOTJhXFx1MDkzOFxcdTA5MDJcXHUwOTI0XFx1MDk0MFwiLGNvbnRlbnQ6WydcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MmFcXHUwOTM4XFx1MDkwMlxcdTA5MjRcXHUwOTQwIFxcdTA5MzJcXHUwOTE1XFx1MDk0ZFxcdTA5MzdcXHUwOTNlXFx1MDkyNCBcXHUwOTIwXFx1MDk0N1xcdTA5MzVcXHUwOTIzXFx1MDk0ZFxcdTA5MmZcXHUwOTNlXFx1MDkzOFxcdTA5M2VcXHUwOTIwXFx1MDk0MCBcXHUwOTA2XFx1MDkyM1xcdTA5M2YgXFx1MDkwNlxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MzVcXHUwOTQ3XFx1MDkyY1xcdTA5MzhcXHUwOTNlXFx1MDkwN1xcdTA5MWZcXHUwOTM1XFx1MDkzMFxcdTA5NDBcXHUwOTMyIFxcdTA5MjRcXHUwOTQxXFx1MDkyZVxcdTA5MWFcXHUwOTNlIFxcdTA5MDVcXHUwOTI4XFx1MDk0MVxcdTA5MmRcXHUwOTM1IFxcdTA5MzhcXHUwOTQxXFx1MDkyN1xcdTA5M2VcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MzhcXHUwOTNlXFx1MDkyMFxcdTA5NDAgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTA5MDZcXHUwOTJlXFx1MDk0ZFxcdTA5MzlcXHUwOTQwIFxcdTA5MmZcXHUwOTNlIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MzVcXHUwOTNlXFx1MDkyYVxcdTA5MzBcXHUwOTI0XFx1MDk0YjwvYT4uJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTA5MTVcXHUwOTNlXFx1MDkzMFxcdTA5NGRcXHUwOTJmXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyNlxcdTA5MzBcXHUwOTRkXFx1MDkzNlxcdTA5MjggXFx1MDkzNSBcXHUwOTM1XFx1MDkzZlxcdTA5MzZcXHUwOTRkXFx1MDkzMlxcdTA5NDdcXHUwOTM3XFx1MDkyM1wiLGNvbnRlbnQ6WydcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5NDAgXFx1MDkwNlxcdTA5MmVcXHUwOTFhXFx1MDk0MCBcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmIFxcdTA5MTVcXHUwOTM2XFx1MDk0MCBcXHUwOTM1XFx1MDkzZVxcdTA5MmFcXHUwOTMwXFx1MDkyNFxcdTA5M2UgXFx1MDkyZlxcdTA5M2VcXHUwOTM1XFx1MDkzZlxcdTA5MzdcXHUwOTJmXFx1MDk0MCBcXHUwOTJlXFx1MDkzZVxcdTA5MzlcXHUwOTNmXFx1MDkyNFxcdTA5NDAgXFx1MDkxN1xcdTA5NGJcXHUwOTMzXFx1MDkzZSBcXHUwOTE1XFx1MDkzMFxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwLCBcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmXFx1MDkxYVxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTE1XFx1MDkzZVxcdTA5MmVcXHUwOTE3XFx1MDkzZlxcdTA5MzBcXHUwOTQwXFx1MDkzNVxcdTA5MzAgXFx1MDkyNlxcdTA5NDdcXHUwOTE2XFx1MDkzMFxcdTA5NDdcXHUwOTE2IFxcdTA5MTVcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MzhcXHUwOTNlXFx1MDkyMFxcdTA5NDAgXFx1MDkwNlxcdTA5MjNcXHUwOTNmIFxcdTA5MDZcXHUwOTJlXFx1MDkxYVxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmXFx1MDkxYVxcdTA5NDAgXFx1MDkxNVxcdTA5M2VcXHUwOTJlXFx1MDkxN1xcdTA5M2ZcXHUwOTMwXFx1MDk0MCBcXHUwOTM1IFxcdTA5MjRcXHUwOTQxXFx1MDkyZVxcdTA5MWFcXHUwOTNlIFxcdTA5MDVcXHUwOTI4XFx1MDk0MVxcdTA5MmRcXHUwOTM1IFxcdTA5MzhcXHUwOTQxXFx1MDkyN1xcdTA5M2VcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MzhcXHUwOTNlXFx1MDkyMFxcdTA5NDAgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPiBcXHUwOTA2XFx1MDkyZVxcdTA5NGRcXHUwOTM5XFx1MDk0MCBcXHUwOTJmXFx1MDkzZSBcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxYyBcXHUwOTM1XFx1MDkzZVxcdTA5MmFcXHUwOTMwXFx1MDkyNFxcdTA5NGI8L2E+LiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1MDkyZVxcdTA5M2VcXHUwOTMwXFx1MDk0ZFxcdTA5MTVcXHUwOTQ3XFx1MDkxZlxcdTA5M2ZcXHUwOTAyXFx1MDkxN1wiLGNvbnRlbnQ6WydcXHUwOTM4XFx1MDkwMlxcdTA5MmNcXHUwOTAyXFx1MDkyN1xcdTA5M2ZcXHUwOTI0IFxcdTA5MWNcXHUwOTNlXFx1MDkzOVxcdTA5M2ZcXHUwOTMwXFx1MDkzZVxcdTA5MjRcXHUwOTQwIFxcdTA5MmFcXHUwOTQxXFx1MDkzMFxcdTA5MzVcXHUwOTIzXFx1MDk0ZFxcdTA5MmZcXHUwOTNlXFx1MDkzOFxcdTA5M2VcXHUwOTIwXFx1MDk0MCBcXHUwOTA2XFx1MDkyM1xcdTA5M2YgXFx1MDkwNlxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MWNcXHUwOTNlXFx1MDkzOVxcdTA5M2ZcXHUwOTMwXFx1MDkzZVxcdTA5MjQgXFx1MDkyZVxcdTA5NGJcXHUwOTM5XFx1MDkzZlxcdTA5MmVcXHUwOTNlXFx1MDkwMlxcdTA5MWFcXHUwOTQwIFxcdTA5MmFcXHUwOTMwXFx1MDkzZlxcdTA5MjNcXHUwOTNlXFx1MDkyZVxcdTA5MTVcXHUwOTNlXFx1MDkzMFxcdTA5MTVcXHUwOTI0XFx1MDkzZSBcXHUwOTJlXFx1MDk0YlxcdTA5MWNcXHUwOTIzXFx1MDk0ZFxcdTA5MmZcXHUwOTNlXFx1MDkzOFxcdTA5M2VcXHUwOTIwXFx1MDk0MCA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlxcdTA5MDZcXHUwOTJlXFx1MDk0ZFxcdTA5MzlcXHUwOTQwIFxcdTA5MmZcXHUwOTNlIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MzVcXHUwOTNlXFx1MDkyYVxcdTA5MzBcXHUwOTI0XFx1MDk0YjwvYT4uIFxcdTA5MmZcXHUwOTNlIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTAyXFx1MDkxYVxcdTA5M2UgXFx1MDkzNVxcdTA5M2VcXHUwOTJhXFx1MDkzMCBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MzBcXHUwOTQxXFx1MDkxYVxcdTA5NDBcXHUwOTAyXFx1MDkxYVxcdTA5M2UgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDk0YlxcdTA5MmJcXHUwOTNlXFx1MDkwN1xcdTA5MzIgXFx1MDkyY1xcdTA5MjhcXHUwOTM1XFx1MDkzZlxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIFxcdTA5MzUgXFx1MDkwN1xcdTA5MjRcXHUwOTMwIFxcdTA5MzhcXHUwOTNlXFx1MDkwOFxcdTA5MWZcXHUwOTRkXFx1MDkzOFxcdTA5MzVcXHUwOTMwXFx1MDk0MFxcdTA5MzIgXFx1MDkzOFxcdTA5MDJcXHUwOTJjXFx1MDkwMlxcdTA5MjdcXHUwOTNmXFx1MDkyNCBcXHUwOTI0XFx1MDk0ZFxcdTA5MzBcXHUwOTJmXFx1MDkzOFxcdTA5NGRcXHUwOTI1IFxcdTA5MWNcXHUwOTNlXFx1MDkzOVxcdTA5M2ZcXHUwOTMwXFx1MDkzZVxcdTA5MjQgXFx1MDkyZFxcdTA5M2VcXHUwOTE3XFx1MDk0MFxcdTA5MjZcXHUwOTNlXFx1MDkzMCBcXHUwOTFjXFx1MDkzZVxcdTA5MzlcXHUwOTNmXFx1MDkzMFxcdTA5M2VcXHUwOTI0XFx1MDk0MCBcXHUwOTI2XFx1MDk0N1xcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIFxcdTA5MTVcXHUwOTMwXFx1MDk0MiBcXHUwOTM2XFx1MDkxNVxcdTA5MjRcXHUwOTNlXFx1MDkyNC4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJcXHUwOTI0XFx1MDk0ZFxcdTA5MzBcXHUwOTJmXFx1MDkzOFxcdTA5NGRcXHUwOTI1IFxcdTA5MWNcXHUwOTNlXFx1MDkzOVxcdTA5M2ZcXHUwOTMwXFx1MDkzZVxcdTA5MjQgXFx1MDkyZFxcdTA5M2VcXHUwOTE3XFx1MDk0MFxcdTA5MjZcXHUwOTNlXFx1MDkzMFwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDkxZlxcdTA5NGRcXHUwOTM1XFx1MDkzZlxcdTA5MWZcXHUwOTMwPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA5MmFcXHUwOTNmXFx1MDkyOFxcdTA5NGRcXHUwOTFmXFx1MDkzMFxcdTA5NDdcXHUwOTM4XFx1MDk0ZFxcdTA5MWY8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTA5MjRcXHUwOTRkXFx1MDkzMFxcdTA5MmZcXHUwOTM4XFx1MDk0ZFxcdTA5MjUtXFx1MDkyYVxcdTA5MTVcXHUwOTRkXFx1MDkzNyBcXHUwOTFjXFx1MDkzZVxcdTA5MzlcXHUwOTNmXFx1MDkzMFxcdTA5M2VcXHUwOTI0IFxcdTA5MmRcXHUwOTNlXFx1MDkxN1xcdTA5NDBcXHUwOTI2XFx1MDkzZVxcdTA5MzA6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5MmRcXHUwOTNlXFx1MDkzNVxcdTA5NDAgOiBcXHUwOTY3XFx1MDk2YiBcXHUwOTFjXFx1MDkzZVxcdTA5MjhcXHUwOTQ3XFx1MDkzNVxcdTA5M2VcXHUwOTMwXFx1MDk0MCBcXHUwOTY4XFx1MDk2NlxcdTA5NjdcXHUwOTZmXCIsQm9keTpbXCJcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MmNcXHUwOTRkXFx1MDkzMFxcdTA5M2VcXHUwOTA5XFx1MDkxY1xcdTA5MzAgXFx1MDkxNVxcdTA5M2ZcXHUwOTAyXFx1MDkzNVxcdTA5M2UgXFx1MDkyMVxcdTA5M2ZcXHUwOTM1XFx1MDk0ZFxcdTA5MzlcXHUwOTNlXFx1MDkwN1xcdTA5MzhcXHUwOTJlXFx1MDkyN1xcdTA5NDJcXHUwOTI4IFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MzVcXHUwOTRkXFx1MDkyZlxcdTA5MzVcXHUwOTM4XFx1MDk0ZFxcdTA5MjVcXHUwOTNlXFx1MDkyYVxcdTA5M2ZcXHUwOTI0IFxcdTA5MTVcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MmNcXHUwOTMwXFx1MDk0YlxcdTA5MmNcXHUwOTMwXFx1MDkxYSwgXFx1MDkxNlxcdTA5M2VcXHUwOTMyXFx1MDk0MCBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5NDAgXFx1MDkyNFxcdTA5NDFcXHUwOTJlXFx1MDkxYVxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTE1XFx1MDk0MlxcdTA5MTVcXHUwOTQwIFxcdTA5MzhcXHUwOTQ3XFx1MDkxZlxcdTA5M2ZcXHUwOTAyXFx1MDkxNyBcXHUwOTJjXFx1MDkyNlxcdTA5MzJcXHUwOTQyIFxcdTA5MzZcXHUwOTE1XFx1MDkyNFxcdTA5M2UuIFxcdTA5MTVcXHUwOTQzXFx1MDkyYVxcdTA5MmZcXHUwOTNlIFxcdTA5MjhcXHUwOTRiXFx1MDkwMlxcdTA5MjYgXFx1MDkxOFxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTE1XFx1MDk0MCBcXHUwOTE1XFx1MDkzZVxcdTA5MzlcXHUwOTQwIFxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MDZcXHUwOTJlXFx1MDkxYVxcdTA5NDAgXFx1MDkzOFxcdTA5M2VcXHUwOTA3XFx1MDkxZiBcXHUwOTFhXFx1MDkzZVxcdTA5MzJcXHUwOTM1XFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MzhcXHUwOTNlXFx1MDkyMFxcdTA5NDAgXFx1MDkwNlxcdTA5MzVcXHUwOTM2XFx1MDk0ZFxcdTA5MmZcXHUwOTE1IFxcdTA5MDZcXHUwOTM5XFx1MDk0N1xcdTA5MjQgXFx1MDkwNlxcdTA5MjNcXHUwOTNmIFxcdTA5MmZcXHUwOTNlIFxcdTA5MzhcXHUwOTQ3XFx1MDkxZlxcdTA5M2ZcXHUwOTAyXFx1MDkxNyBcXHUwOTM1XFx1MDkzZVxcdTA5MmFcXHUwOTMwXFx1MDk0MlxcdTA5MjggXFx1MDkyNFxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTA1XFx1MDkzNVxcdTA5MzBcXHUwOTRiXFx1MDkyN1xcdTA5M2ZcXHUwOTI0IFxcdTA5MTVcXHUwOTMwXFx1MDkyNFxcdTA5M2UgXFx1MDkyZlxcdTA5NDdcXHUwOTI0IFxcdTA5MjhcXHUwOTNlXFx1MDkzOVxcdTA5NDBcXHUwOTI0LlwiXSxUaXRsZTpcIlxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDAgXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3XCIsQ09PS0lFX1BPUFVQOidcXHUwOTM5XFx1MDkzZVxcdTA5MmYhIFxcdTA5MDZcXHUwOTJlXFx1MDk0ZFxcdTA5MzlcXHUwOTQwIFxcdTA5MmZcXHUwOTNlIFxcdTA5MzVcXHUwOTQ3XFx1MDkyY1xcdTA5MzhcXHUwOTNlXFx1MDkwN1xcdTA5MWZcXHUwOTM1XFx1MDkzMCBcXHUwOTI0XFx1MDk0M1xcdTA5MjRcXHUwOTQwXFx1MDkyZi1cXHUwOTJhXFx1MDkxNVxcdTA5NGRcXHUwOTM3IFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjXFx1MDkzOFxcdTA5MzksIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MDZcXHUwOTIzXFx1MDkzZiBcXHUwOTI0XFx1MDkyNFxcdTA5NGRcXHUwOTM4XFx1MDkyZSBcXHUwOTI0XFx1MDkwMlxcdTA5MjRcXHUwOTRkXFx1MDkzMFxcdTA5MWNcXHUwOTRkXFx1MDkxZVxcdTA5M2VcXHUwOTI4IChcXHUyMDFjXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWNcXHUyMDFkKSBcXHUwOTM1XFx1MDkzZVxcdTA5MmFcXHUwOTMwXFx1MDkyNFxcdTA5NGIsIFxcdTA5MWNcXHUwOTQ3IFxcdTA5MjRcXHUwOTQxXFx1MDkyZVxcdTA5NGRcXHUwOTM5XFx1MDkzZVxcdTA5MzJcXHUwOTNlIFxcdTA5MmNcXHUwOTRkXFx1MDkzMFxcdTA5M2VcXHUwOTA5XFx1MDkxZFxcdTA5M2ZcXHUwOTAyXFx1MDkxNyBcXHUwOTA1XFx1MDkyOFxcdTA5NDFcXHUwOTJkXFx1MDkzNSBcXHUwOTJhXFx1MDk0ZFxcdTA5MzBcXHUwOTI2XFx1MDkzZVxcdTA5MjggXFx1MDkxNVxcdTA5MzBcXHUwOTIzXFx1MDk0ZFxcdTA5MmZcXHUwOTNlXFx1MDkyNCBcXHUwOTM1IFxcdTA5MzhcXHUwOTQxXFx1MDkyN1xcdTA5M2VcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MjQsIFxcdTA5MTVcXHUwOTNlXFx1MDkyZVxcdTA5MTdcXHUwOTNmXFx1MDkzMFxcdTA5NDBcXHUwOTFhXFx1MDk0NyBcXHUwOTJhXFx1MDkzMFxcdTA5M2ZcXHUwOTE1XFx1MDk0ZFxcdTA5MzdcXHUwOTIzIFxcdTA5MTVcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MjQgXFx1MDkwNlxcdTA5MjNcXHUwOTNmIFxcdTA5MWNcXHUwOTNlXFx1MDkzOVxcdTA5M2ZcXHUwOTMwXFx1MDkzZVxcdTA5MjRcXHUwOTQwXFx1MDkxYVxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTM5XFx1MDk0N1xcdTA5MjRcXHUwOTQyXFx1MDkwMlxcdTA5MzhcXHUwOTNlXFx1MDkyMFxcdTA5NDAgXFx1MDkwNlxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5M2VcXHUwOTMyXFx1MDkzZSBcXHUwOTJlXFx1MDkyNlxcdTA5MjQgXFx1MDkxNVxcdTA5MzBcXHUwOTI0XFx1MDk0Ny4gXFx1MDkwNlxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5NDAgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWMgXFx1MDkxNVxcdTA5MzZcXHUwOTNlIFxcdTA5MzVcXHUwOTNlXFx1MDkyYVxcdTA5MzBcXHUwOTI0XFx1MDk0YiBcXHUwOTA2XFx1MDkyM1xcdTA5M2YgXFx1MDkyNFxcdTA5NDFcXHUwOTJlXFx1MDkxYVxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxY1xcdTA5MWFcXHUwOTRkXFx1MDkyZlxcdTA5M2UgXFx1MDkyOFxcdTA5M2ZcXHUwOTM1XFx1MDkyMVxcdTA5NDBcXHUwOTAyXFx1MDkyY1xcdTA5MjZcXHUwOTRkXFx1MDkyNlxcdTA5MzIgXFx1MDkwNVxcdTA5MjdcXHUwOTNmXFx1MDkxNSBcXHUwOTFjXFx1MDkzZVxcdTA5MjNcXHUwOTQyXFx1MDkyOCBcXHUwOTE4XFx1MDk0N1xcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwLCBcXHUwOTA2XFx1MDkyZVxcdTA5MWFcXHUwOTQ3IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwIFxcdTA5MjdcXHUwOTRiXFx1MDkzMFxcdTA5MjM8L2E+IFxcdTA5MmFcXHUwOTM5XFx1MDkzZSEgXFx1MDkxNlxcdTA5M2VcXHUwOTMyXFx1MDk0MFxcdTA5MzIgXFx1MjAxY1xcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MzhcXHUwOTRkXFx1MDkzNVxcdTA5NDBcXHUwOTE1XFx1MDkzZVxcdTA5MzBcXHUwOTNlXFx1MjAxZCBcXHUwOTM1XFx1MDkzMCBcXHUwOTE1XFx1MDk0ZFxcdTA5MzJcXHUwOTNmXFx1MDkxNSBcXHUwOTE1XFx1MDkzMFxcdTA5NDJcXHUwOTI4LCBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5NDAgXFx1MDkwNlxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5M2VcXHUwOTMyXFx1MDkzZSBcXHUwOTA2XFx1MDkzNVxcdTA5MzZcXHUwOTRkXFx1MDkyZlxcdTA5MTUgXFx1MDkyOFxcdTA5MzhcXHUwOTMyXFx1MDk0N1xcdTA5MzJcXHUwOTRkXFx1MDkyZlxcdTA5M2UgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWNcXHUwOTM4XFx1MDkzOSwgXFx1MDkzOFxcdTA5MzBcXHUwOTRkXFx1MDkzNSBcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxYyBcXHUwOTM1XFx1MDkzZVxcdTA5MmFcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MzhcXHUwOTNlXFx1MDkyMFxcdTA5NDAgXFx1MDkzOFxcdTA5MDJcXHUwOTJlXFx1MDkyNFxcdTA5NDAgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyNlxcdTA5M2VcXHUwOTI4IFxcdTA5MTVcXHUwOTMwXFx1MDkyNFxcdTA5M2UuIFxcdTA5MjRcXHUwOTQxXFx1MDkyZVxcdTA5NGRcXHUwOTM5XFx1MDk0MCBcXHUwOTA5XFx1MDkxY1xcdTA5MzVcXHUwOTQwXFx1MDkxNVxcdTA5MjFcXHUwOTQwXFx1MDkzMiBcXHUyMDFjWFxcdTIwMWQgXFx1MDkxNVxcdTA5NGRcXHUwOTMyXFx1MDkzZlxcdTA5MTUgXFx1MDkxNVxcdTA5MzBcXHUwOTQyXFx1MDkyOCBcXHUwOTM4XFx1MDkzMFxcdTA5NGRcXHUwOTM1IFxcdTA5MDZcXHUwOTM1XFx1MDkzNlxcdTA5NGRcXHUwOTJmXFx1MDkxNSBcXHUwOTI4XFx1MDkzOFxcdTA5MzJcXHUwOTQ3XFx1MDkzMlxcdTA5NGRcXHUwOTJmXFx1MDkzZSBcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxY1xcdTA5MjhcXHUwOTNlIFxcdTA5MjhcXHUwOTE1XFx1MDkzZVxcdTA5MzAgXFx1MDkyNlxcdTA5NDdcXHUwOTBhIFxcdTA5MzZcXHUwOTE1XFx1MDkyNFxcdTA5M2UuIFxcdTA5MjRcXHUwOTQxXFx1MDkyZVxcdTA5MWFcXHUwOTRkXFx1MDkyZlxcdTA5M2UgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MCBcXHUwOTM4XFx1MDk0N1xcdTA5MWZcXHUwOTNmXFx1MDkwMlxcdTA5MTcgXFx1MDkyY1xcdTA5MjZcXHUwOTMyXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MzhcXHUwOTNlXFx1MDkyMFxcdTA5NDAgXFx1MjAxY1xcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDAgXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3XFx1MjAxZCBcXHUwOTE1XFx1MDkzZlxcdTA5MDJcXHUwOTM1XFx1MDkzZSBcXHUwOTA2XFx1MDkyZVxcdTA5MWFcXHUwOTRkXFx1MDkyZlxcdTA5M2UgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDAgXFx1MDkyN1xcdTA5NGJcXHUwOTMwXFx1MDkyM1xcdTA5M2U8L2E+XFx1MDkzNVxcdTA5MzAgXFx1MDkxY1xcdTA5M2UgXFx1MDkwNlxcdTA5MjNcXHUwOTNmIFxcdTA5MTVcXHUwOTI3XFx1MDk0MFxcdTA5MzlcXHUwOTQwIFxcdTA5MjRcXHUwOTQxXFx1MDkyZVxcdTA5MWFcXHUwOTQwIFxcdTA5MzhcXHUwOTAyXFx1MDkyZVxcdTA5MjRcXHUwOTQwIFxcdTA5MmVcXHUwOTNlXFx1MDkxN1xcdTA5NDcgXFx1MDkxOFxcdTA5NGRcXHUwOTJmXFx1MDkzZS4nLENPT0tJRV9QT1BVUF9FVTonXFx1MDkzOVxcdTA5M2VcXHUwOTJmISBcXHUwOTA2XFx1MDkyZVxcdTA5NGRcXHUwOTM5XFx1MDk0MCBcXHUwOTJmXFx1MDkzZSBcXHUwOTM1XFx1MDk0N1xcdTA5MmNcXHUwOTM4XFx1MDkzZVxcdTA5MDdcXHUwOTFmXFx1MDkzNVxcdTA5MzAgXFx1MDkyNFxcdTA5NDNcXHUwOTI0XFx1MDk0MFxcdTA5MmYtXFx1MDkyYVxcdTA5MTVcXHUwOTRkXFx1MDkzNyBcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxY1xcdTA5MzhcXHUwOTM5LCBcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxYyBcXHUwOTA2XFx1MDkyM1xcdTA5M2YgXFx1MDkyNFxcdTA5MjRcXHUwOTRkXFx1MDkzOFxcdTA5MmUgXFx1MDkyNFxcdTA5MDJcXHUwOTI0XFx1MDk0ZFxcdTA5MzBcXHUwOTFjXFx1MDk0ZFxcdTA5MWVcXHUwOTNlXFx1MDkyOCAoXFx1MjAxY1xcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjXFx1MjAxZCksIFxcdTA5MzVcXHUwOTNlXFx1MDkyYVxcdTA5MzBcXHUwOTI0XFx1MDk0YiBcXHUwOTM5XFx1MDk0NyBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5M2VcXHUwOTMyXFx1MDkzZSBcXHUwOTJjXFx1MDk0ZFxcdTA5MzBcXHUwOTNlXFx1MDkwOVxcdTA5MWRcXHUwOTNmXFx1MDkwMlxcdTA5MTcgXFx1MDkwNVxcdTA5MjhcXHUwOTQxXFx1MDkyZFxcdTA5MzUgXFx1MDkyYVxcdTA5NGRcXHUwOTMwXFx1MDkyNlxcdTA5M2VcXHUwOTI4IFxcdTA5MTVcXHUwOTMwXFx1MDkyM1xcdTA5NGRcXHUwOTJmXFx1MDkzZVxcdTA5MjQgXFx1MDkzNSBcXHUwOTM4XFx1MDk0MVxcdTA5MjdcXHUwOTNlXFx1MDkzMFxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTI0LCBcXHUwOTE1XFx1MDkzZVxcdTA5MmVcXHUwOTE3XFx1MDkzZlxcdTA5MzBcXHUwOTQwXFx1MDkxYVxcdTA5NDcgXFx1MDkyYVxcdTA5MzBcXHUwOTNmXFx1MDkxNVxcdTA5NGRcXHUwOTM3XFx1MDkyMyBcXHUwOTE1XFx1MDkzMFxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTI0IFxcdTA5MDZcXHUwOTIzXFx1MDkzZiBcXHUwOTFjXFx1MDkzZVxcdTA5MzlcXHUwOTNmXFx1MDkzMFxcdTA5M2VcXHUwOTI0XFx1MDk0MFxcdTA5MWFcXHUwOTRkXFx1MDkyZlxcdTA5M2UgXFx1MDkzOVxcdTA5NDdcXHUwOTI0XFx1MDk0MlxcdTA5MDJcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIFxcdTA5MDZcXHUwOTJlXFx1MDk0ZFxcdTA5MzlcXHUwOTNlXFx1MDkzMlxcdTA5M2UgXFx1MDkyZVxcdTA5MjZcXHUwOTI0IFxcdTA5MTVcXHUwOTMwXFx1MDkyNFxcdTA5NDcuIFxcdTA5MDZcXHUwOTJlXFx1MDk0ZFxcdTA5MzlcXHUwOTQwIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjIFxcdTA5MTVcXHUwOTM2XFx1MDkzZSBcXHUwOTM1XFx1MDkzZVxcdTA5MmFcXHUwOTMwXFx1MDkyNFxcdTA5NGIgXFx1MDkwNlxcdTA5MjNcXHUwOTNmIFxcdTA5MjRcXHUwOTQxXFx1MDkyZVxcdTA5MWFcXHUwOTRkXFx1MDkyZlxcdTA5M2UgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWNcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MjhcXHUwOTNmXFx1MDkzNVxcdTA5MjFcXHUwOTQwXFx1MDkwMlxcdTA5MmNcXHUwOTI2XFx1MDk0ZFxcdTA5MjZcXHUwOTMyIFxcdTA5MDVcXHUwOTI3XFx1MDkzZlxcdTA5MTUgXFx1MDkxY1xcdTA5M2VcXHUwOTIzXFx1MDk0MlxcdTA5MjggXFx1MDkxOFxcdTA5NDdcXHUwOTIzXFx1MDk0ZFxcdTA5MmZcXHUwOTNlXFx1MDkzOFxcdTA5M2VcXHUwOTIwXFx1MDk0MCwgXFx1MDkwNlxcdTA5MmVcXHUwOTFhXFx1MDk0NyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MCBcXHUwOTI3XFx1MDk0YlxcdTA5MzBcXHUwOTIzPC9hPiBcXHUwOTJhXFx1MDkzOVxcdTA5M2UhIFxcdTA5MTZcXHUwOTNlXFx1MDkzMlxcdTA5NDBcXHUwOTMyIFxcdTIwMWNcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxYyBcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTQwXFx1MDkxNVxcdTA5M2VcXHUwOTMwXFx1MDkzZVxcdTIwMWQgXFx1MDkzNVxcdTA5MzAgXFx1MDkxNVxcdTA5NGRcXHUwOTMyXFx1MDkzZlxcdTA5MTUgXFx1MDkxNVxcdTA5MzBcXHUwOTQyXFx1MDkyOCwgXFx1MDkyNFxcdTA5NDFcXHUwOTJlXFx1MDk0ZFxcdTA5MzlcXHUwOTQwIFxcdTA5MDZcXHUwOTJlXFx1MDk0ZFxcdTA5MzlcXHUwOTNlXFx1MDkzMlxcdTA5M2UgXFx1MDkwNlxcdTA5MzVcXHUwOTM2XFx1MDk0ZFxcdTA5MmZcXHUwOTE1IFxcdTA5MjhcXHUwOTM4XFx1MDkzMlxcdTA5NDdcXHUwOTMyXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDBcXHUwOTFjXFx1MDkzOFxcdTA5MzksIFxcdTA5MzhcXHUwOTMwXFx1MDk0ZFxcdTA5MzUgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWMgXFx1MDkzNVxcdTA5M2VcXHUwOTJhXFx1MDkzMFxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIFxcdTA5MzhcXHUwOTAyXFx1MDkyZVxcdTA5MjRcXHUwOTQwIFxcdTA5MmFcXHUwOTRkXFx1MDkzMFxcdTA5MjZcXHUwOTNlXFx1MDkyOCBcXHUwOTE1XFx1MDkzMFxcdTA5MjRcXHUwOTNlLiBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTRkXFx1MDkzOVxcdTA5NDAgXFx1MDkwOVxcdTA5MWNcXHUwOTM1XFx1MDk0MFxcdTA5MTVcXHUwOTIxXFx1MDk0MFxcdTA5MzIgXFx1MjAxY1hcXHUyMDFkIFxcdTA5MTVcXHUwOTRkXFx1MDkzMlxcdTA5M2ZcXHUwOTE1IFxcdTA5MTVcXHUwOTMwXFx1MDk0MlxcdTA5MjggXFx1MDkzOFxcdTA5MzBcXHUwOTRkXFx1MDkzNSBcXHUwOTA2XFx1MDkzNVxcdTA5MzZcXHUwOTRkXFx1MDkyZlxcdTA5MTUgXFx1MDkyOFxcdTA5MzhcXHUwOTMyXFx1MDk0N1xcdTA5MzJcXHUwOTRkXFx1MDkyZlxcdTA5M2UgXFx1MDkxNVxcdTA5NDFcXHUwOTE1XFx1MDk0MFxcdTA5MWNcXHUwOTI4XFx1MDkzZSBcXHUwOTI4XFx1MDkxNVxcdTA5M2VcXHUwOTMwIFxcdTA5MjZcXHUwOTQ3XFx1MDkwYSBcXHUwOTM2XFx1MDkxNVxcdTA5MjRcXHUwOTNlLiBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIFxcdTA5MTVcXHUwOTQxXFx1MDkxNVxcdTA5NDAgXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3IFxcdTA5MmNcXHUwOTI2XFx1MDkzMlxcdTA5MjNcXHUwOTRkXFx1MDkyZlxcdTA5M2VcXHUwOTM4XFx1MDkzZVxcdTA5MjBcXHUwOTQwIFxcdTIwMWNcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwIFxcdTA5MzhcXHUwOTQ3XFx1MDkxZlxcdTA5M2ZcXHUwOTAyXFx1MDkxN1xcdTIwMWQgXFx1MDkxNVxcdTA5M2ZcXHUwOTAyXFx1MDkzNVxcdTA5M2UgXFx1MDkwNlxcdTA5MmVcXHUwOTFhXFx1MDk0ZFxcdTA5MmZcXHUwOTNlIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwIFxcdTA5MjdcXHUwOTRiXFx1MDkzMFxcdTA5MjNcXHUwOTNlPC9hPlxcdTA5MzVcXHUwOTMwIFxcdTA5MWNcXHUwOTNlIFxcdTA5MDZcXHUwOTIzXFx1MDkzZiBcXHUwOTE1XFx1MDkyN1xcdTA5NDBcXHUwOTM5XFx1MDk0MCBcXHUwOTI0XFx1MDk0MVxcdTA5MmVcXHUwOTFhXFx1MDk0MCBcXHUwOTM4XFx1MDkwMlxcdTA5MmVcXHUwOTI0XFx1MDk0MCBcXHUwOTJlXFx1MDkzZVxcdTA5MTdcXHUwOTQ3IFxcdTA5MThcXHUwOTRkXFx1MDkyZlxcdTA5M2UuJyxBZ3JlZVRleHQ6XCJcXHUwOTE1XFx1MDk0MVxcdTA5MTVcXHUwOTQwXFx1MDkxYyBcXHUwOTM4XFx1MDk0ZFxcdTA5MzVcXHUwOTQwXFx1MDkxNVxcdTA5M2VcXHUwOTMwXFx1MDkzZVwiLFNldHRpbmdzVGV4dDpcIlxcdTA5MTVcXHUwOTQyXFx1MDkxNVxcdTA5NDAgXFx1MDkzOFxcdTA5NDdcXHUwOTFmXFx1MDkzZlxcdTA5MDJcXHUwOTE3XCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHUwOTA5XFx1MDkzMlxcdTA5NGRcXHUwOTMyXFx1MDkwMlxcdTA5MThcXHUwOTI4XFx1MDkzZVxcdTA5MWFcXHUwOTQwIFxcdTA5MjRcXHUwOTE1XFx1MDk0ZFxcdTA5MzBcXHUwOTNlXFx1MDkzMCBcXHUwOTE1XFx1MDkzMFxcdTA5M2VcIixTcG90bGlnaHQ6XCJcXHUwOTM4XFx1MDk0ZFxcdTA5MmFcXHUwOTQ5XFx1MDkxZlxcdTA5MzJcXHUwOTNlXFx1MDkwN1xcdTA5MWZcIn0sXCJtcy1teVwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIlNlY2FyYSBsYW5nc3VuZ1wiLEFkczpcIklrbGFuXCIsQ29tcGFueTpcIlN5YXJpa2F0XCIsSG9tZTpcIkJ1dGFuZyBVdGFtYVwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIktlcmphXCIsQ2FyZWVyczpcIktlcmpheWFcIixQcmVzczpcIkFraGJhclwiLE5ld3M6XCJCZXJpdGFcIixcIlByZXNzIElucXVpcmllc1wiOlwiUGVydGFueWFhbiBBa2hiYXJcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiQmFoYXNhXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiTXVhdCB0dXJ1biBTbmFwY2hhdFwiLERvd25sb2FkOlwiTXVhdCB0dXJ1blwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJDZXJpdGFcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiU3RvclwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgdW50dWsgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgdW50dWsgQW5kcm9pZFwiLENvbW11bml0eTpcIktvbXVuaXRpXCIsU3VwcG9ydDpcIlNva29uZ2FuXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiR2FyaXMgcGFuZHVhbiBLb211bml0aVwiLFwiU2FmZXR5IENlbnRlclwiOlwiUHVzYXQgS2VzZWxhbWF0YW5cIixTbmFwY29kZXM6XCJTbmFwY29kZVwiLEdlb2ZpbHRlcnM6XCJQZW5hcGlzR2VvXCIsQ3JlYXRlOlwiUGVuYXBpcyAmIExlbnNhXCIsTWFwOlwiUGV0YVwiLEFkdmVydGlzaW5nOlwiUGVuZ2lrbGFuYW5cIixcIkJ1eSBBZHNcIjpcIkJlbGkgSWtsYW5cIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJEYXNhciBQZW5naWtsYW5hblwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJQdXN0YWthIElrbGFuIFBvbGl0aWtcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIkdhcmlzIFBhbmR1YW4gSmVuYW1hXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJQZXJhdHVyYW4gUHJvbW9zaVwiLExlZ2FsOlwiVW5kYW5nLXVuZGFuZ1wiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiU3lhcmF0IFBlcmtoaWRtYXRhblwiLEltcHJlc3N1bTpcIkltcHJlc3N1bVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIkRhc2FyIFByaXZhc2lcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJQdXNhdCBQcml2YXNpXCIsXCJDb29raWUgUG9saWN5XCI6XCJEYXNhciBLdWtpXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJTeWFyYXQgUGVya2hpZG1hdGFuIE1lbW9yaVwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJUZXJtYSBQZXJhbGF0YW4gS3JlYXRpZiBCdWF0IEtodXN1c1wiLENPTU1VTklUWV9UT1M6XCJUZXJtYSBHZW9maWx0ZXIgS29tdW5pdGlcIixMRU5TX1NUVURJT19UT1M6XCJUZXJtYSBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlBpbGloYW4gUHJpdmFzaSBBbmRhXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiS3VraSBQZXJsdVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPkthbWkgbWVuZ2d1bmFrYW4ga3VraSBpbmk8L2E+IG1lbWJhbnR1IG1lbmdlbmRhbGlrYW4gbGFtYW4gaW5pLiBEaXNlYmFia2FuIGt1a2kgaW5pIGRpcGVybHVrYW4sIGFuZGEgdGlkYWsgZGFwYXQgbWVtYXRpa2FubnlhLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJLZXV0YW1hYW5cIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPkthbWkgbWVuZ2d1bmFrYW4ga3VraSBpbmk8L2E+IHVudHVrIG1lbmdpbmdhdGkga2V1dGFtYWFuIGFuZGEgZGFuIG1lbmluZ2thdGthbiBwZW5nYWxhbWFuIGFuZGEgZGkgbGFtYW4gd2ViIGthbWkuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlByZXN0YXNpICYgQW5hbGl0aXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPkthbWkgbWVuZ2d1bmFrYW4ga3VraSBpbmk8L2E+IHVudHVrIG1lbmd1bXB1bCBtYWtsdW1hdCB0ZW50YW5nIGJhZ2FpbWFuYSBhbmRhIG1lbmdndW5ha2FuIGxhbWFuIGthbWksIG1lbmdhd2FzaSBwcmVzdGFzaSBsYW1hbiBkYW4gbWVuaW5na2F0a2FuIHByZXN0YXNpIGxhbWFuIGthbWkgc2VydGEgcGVuZ2FsYW1hbiBhbmRhLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiUGVtYXNhcmFuXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+S2FtaSBtZW5nZ3VuYWthbiBrdWtpIGluaTwvYT4gdW50dWsgbWVueWFtcGFpa2FuIHBlbmdpa2xhbmFuIHlhbmcgYmVya2FpdGFuIGRhbiBtZW5ndWt1ciBrZWJlcmtlc2FuYW4ga2VtcGVuIHBlbmdpa2xhbmFuIGthbWkuIFJha2FuIGtvbmdzaSBwZW5naWtsYW5hbiBwaWhhayBrZXRpZ2Ega2FtaSBtdW5na2luIG1lbmdndW5ha2FuIGt1a2kgaW5pIHVudHVrIG1lbWJpbmEgc2VidWFoIHByb2ZpbCB1bnR1ayBtaW5hdCBhbmRhIGRhbiBtZW55YW1wYWlrYW4gcGVuZ2lrbGFuYW4geWFuZyByZWxldmFuIHBhZGEgbGFtYW4geWFuZyBsYWluLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInJha2FuIGtvbmdzaSBwZW5naWtsYW5hbiBwaWhhayBrZXRpZ2FcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJSYWthbiBrb25nc2kgcGVuZ2lrbGFuYW4gcGloYWsga2V0aWdhOlwiLEVmZmVjdGl2ZURhdGU6XCJCZXJtdWxhOiAxNSBKYW51YXJpIDIwMTlcIixCb2R5OltcIkRpIHNhbXBpbmcgbWVuZ3VydXNrYW4ga3VraSBtZWxhbHVpIHBlbGF5YXIgYXRhdSBwZXJhbnRpIGFuZGEsIGFuZGEgYm9sZWggbWVudWthciBzZXRpbmcga3VraSBhbmRhIGRpIGJhd2FoLiBTaWxhIGFtYmlsIHBlcmhhdGlhbiBiYWhhd2Ega3VraSB0ZXJ0ZW50dSBkaXBlcmx1a2FuIHVudHVrIG1lbmphbGFua2FuIGxhbWFuIHdlYiBrYW1pIGRhbiB0aWRhayBkYXBhdCBkaXNla2F0IG1lbmdndW5ha2FuIHNldGluZyBpbmkuXCJdLFRpdGxlOlwiU2V0aW5nIEt1a2lcIixDT09LSUVfUE9QVVA6J0hhaSEgS2FtaSBtZW5nZ3VuYWthbiBrdWtpIGF0YXUgdGVrbm9sb2dpIHlhbmcgc2VydXBhIChcXHUyMDFja3VraVxcdTIwMWQpLCB0ZXJtYXN1ayBrdWtpIHBpaGFrIGtldGlnYSwgcGFkYSBsYW1hbiB3ZWIgaW5pIHVudHVrIG1lbWJhbnR1IG1lbmdlbmRhbGlrYW4gZGFuIG1lbmluZ2thdGthbiBwZW5nYWxhbWFuIHNlbWFrIGltYmFzIGFuZGEsIG1lbWFudGF1IHByZXN0YXNpIGRhbiB1bnR1ayB0dWp1YW4gcGVuZ2lrbGFuYW4uIFVudHVrIG1ha2x1bWF0IGxhbmp1dCB0ZW50YW5nIGNhcmEga2FtaSBtZW5nZ3VuYWthbiBrdWtpIGRhbiBwaWxpaGFuIGt1a2kgYW5kYSwgbGloYXQ8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RGFzYXIgS3VraSA8L2E+a2FtaSEgRGVuZ2FuIG1lbmdrbGlrIFxcdTIwMWNUZXJpbWEgS3VraVxcdTIwMWQgZGkgYmF3YWgsIGFuZGEgbWVtYmVyaSBrYW1pIGtlYmVuYXJhbiB1bnR1ayBtZW5nZ3VuYWthbiBzZW11YSBrdWtpLCB0ZXJtYXN1ayBrdWtpIHRpZGFrIHBlbnRpbmcuIEFuZGEgYm9sZWggbWVub2xhayBzZW11YSBrdWtpIHlhbmcgdGlkYWsgcGVudGluZyBkZW5nYW4gbWVuZ2tsaWsgXFx1MjAxY1hcXHUyMDFkIGRpIHNlYmVsYWgga2FuYW4uIFBlcmdpIGtlIFxcdTIwMWNTZXRpbmcgS3VraVxcdTIwMWQgYXRhdSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RGFzYXIgS3VraTwvYT4gdW50dWsgbWVuZ3ViYWggc2V0aW5nIGt1a2ksIGRhbiBtZW5hcmlrIGJhbGlrIHBlcnNldHVqdWFuIGFuZGEgcGFkYSBiaWxhLWJpbGEgbWFzYS4nLENPT0tJRV9QT1BVUF9FVTonSGFpISBLYW1pIG1lbmdndW5ha2FuIGt1a2kgYXRhdSB0ZWtub2xvZ2kgeWFuZyBzZXJ1cGEgKFxcdTIwMWNrdWtpXFx1MjAxZCksIHRlcm1hc3VrIGt1a2kgcGloYWsga2V0aWdhLCBwYWRhIGxhbWFuIHdlYiBpbmkgdW50dWsgbWVtYmFudHUgbWVuZ2VuZGFsaWthbiBkYW4gbWVuaW5na2F0a2FuIHBlbmdhbGFtYW4gc2VtYWsgaW1iYXMgYW5kYSwgbWVtYW50YXUgcHJlc3Rhc2kgZGFuIHVudHVrIHR1anVhbiBwZW5naWtsYW5hbi4gVW50dWsgbWFrbHVtYXQgbGFuanV0IHRlbnRhbmcgY2FyYSBrYW1pIG1lbmdndW5ha2FuIGt1a2kgZGFuIHBpbGloYW4ga3VraSBhbmRhLCBsaWhhdDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5EYXNhciBLdWtpIDwvYT5rYW1pISBEZW5nYW4gbWVuZ2tsaWsgXFx1MjAxY1RlcmltYSBLdWtpXFx1MjAxZCBkaSBiYXdhaCwgYW5kYSBtZW1iZXJpIGthbWkga2ViZW5hcmFuIHVudHVrIG1lbmdndW5ha2FuIHNlbXVhIGt1a2ksIHRlcm1hc3VrIGt1a2kgdGlkYWsgcGVudGluZy4gQW5kYSBib2xlaCBtZW5vbGFrIHNlbXVhIGt1a2kgeWFuZyB0aWRhayBwZW50aW5nIGRlbmdhbiBtZW5na2xpayBcXHUyMDFjWFxcdTIwMWQgZGkgc2ViZWxhaCBrYW5hbi4gUGVyZ2kga2UgXFx1MjAxY1NldGluZyBLdWtpXFx1MjAxZCBhdGF1IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5EYXNhciBLdWtpPC9hPiB1bnR1ayBtZW5ndWJhaCBzZXRpbmcga3VraSwgZGFuIG1lbmFyaWsgYmFsaWsgcGVyc2V0dWp1YW4gYW5kYSBwYWRhIGJpbGEtYmlsYSBtYXNhLicsQWdyZWVUZXh0OlwiVGVyaW1hIEt1a2lcIixTZXR0aW5nc1RleHQ6XCJTZXRpbmcgS3VraVwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiTGFwb3JrYW4gUGVsYW5nZ2FyYW5cIixTcG90bGlnaHQ6XCJUdW1wdWFuXCJ9LFwibmItbm9cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJMaXZlXCIsQWRzOlwiQW5ub25zZXJcIixDb21wYW55OlwiQmVkcmlmdFwiLEhvbWU6XCJIamVtXCIsQmxvZzpcIkJsb2dnXCIsSm9iczpcIkpvYmJlclwiLENhcmVlcnM6XCJLYXJyaVxceGU4cmVyXCIsUHJlc3M6XCJQcmVzc2VcIixOZXdzOlwiTnloZXRlclwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJQcmVzc2Vmb3Jlc3BcXHhmOHJzbGVyXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlNwclxceGU1a1wiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIkxhc3QgbmVkIFNuYXBjaGF0XCIsRG93bmxvYWQ6XCJMYXN0IG5lZFwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJTdG9yaWVzXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVuc1xceGEwU3R1ZGlvXCIsU3RvcmU6XCJCdXRpa2tcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcIlNuYXBjaGF0IGZvciBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiLENvbW11bml0eTpcIlNhbWZ1bm5cIixTdXBwb3J0OlwiSGplbHBcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJTYW1mdW5uc3JldG5pbmdzbGluamVyXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJTaWtrZXJoZXRzc2VudGVyXCIsU25hcGNvZGVzOlwiU25hcGtvZGVyXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlclwiLENyZWF0ZTpcIkZpbHRyZSAmIExpbnNlclwiLE1hcDpcIkthcnRcIixBZHZlcnRpc2luZzpcIkFubm9uc2VyaW5nXCIsXCJCdXkgQWRzXCI6XCJLalxceGY4cCBhbm5vbnNlclwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIkFubm9uc2VyaW5nc3JlZ2xlclwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJCaWJsaW90ZWsgbWVkIHBvbGl0aXNrZSBhbm5vbnNlclwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiTWVya2V2YXJlcmV0bmluZ3NsaW5qZXJcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIkthbXBhbmplcmVnbGVyXCIsTGVnYWw6XCJKdXJpZGlza1wiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiVGplbmVzdGV2aWxrXFx4ZTVyXCIsSW1wcmVzc3VtOlwiSW1wcmVzc3VtXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiUGVyc29udmVybmJldGluZ2Vsc2VyXCIsXCJQcml2YWN5IENlbnRlclwiOlwiUGVyc29udmVybnNlbnRlclwiLFwiQ29va2llIFBvbGljeVwiOlwiUmVnbGVyIGZvciBpbmZvcm1hc2pvbnNrYXBzbGVyXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJUamVuZXN0ZXZpbGtcXHhlNXIgZm9yIE1pbm5lclwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJWaWxrXFx4ZTVyIGZvciBLcmVhdGl2ZSB0aWxwYXNuaW5nc3Zlcmt0XFx4Zjh5XCIsQ09NTVVOSVRZX1RPUzpcIlZpbGtcXHhlNXIgZm9yIFNhbWZ1bm5zLUdlb2ZpbHRlclwiLExFTlNfU1RVRElPX1RPUzpcIlZpbGtcXHhlNXIgZm9yIExlbnNcXHhhMFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlBlcnNvbnZlcm52YWxnZW5lIGRpbmVcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJOXFx4ZjhkdmVuZGlnZSBpbmZvcm1hc2pvbnNrYXBzbGVyXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+VmkgYnJ1a2VyIGluZm9ybWFzam9uc2thcHNsZW5lPC9hPiB0aWwgXFx4ZTUgYmVkcmUgZnVua3Nqb25hbGl0ZXRlbiB0aWwgbmV0dHN0ZWRldC4gRHUga2FuIGlra2UgZGVha3RpdmVyZSBpbmZvcm1hc2pvbnNrYXBzbGVuZSBkYSBkZSBlciBwXFx4ZTVrcmV2ZC4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiUHJlZmVyYW5zZXJcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlZpIGJydWtlciBpbmZvcm1hc2pvbnNrYXBzbGVuZTwvYT4gdGlsIFxceGU1IGh1c2tlIHByZWZlcmFuc2VyIG9nIGZvcmJlZHJlIG9wcGxldmVsc2VuIGRpbiBwXFx4ZTUgbmV0dHN0ZWRldCB2XFx4ZTVydC4nXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiWXRlbHNlIG9nIGFuYWx5c2VcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlZpIGJydWtlciBpbmZvcm1hc2pvbnNrYXBzbGVuZTwvYT4gdGlsIFxceGU1IHNhbWxlIGlubiBpbmZvcm1hc2pvbiBvbSBodm9yZGFuIGR1IGJydWtlciBuZXR0c3RlZGV0IHZcXHhlNXJ0LCBvdmVydlxceGU1a2UgbmV0dHN0ZWRldHMgeXRlbHNlIHNhbXQgZm9yYmVkcmUgbmV0dHN0ZWRzeXRlbHNlbiBvZyBvcHBsZXZlbHNlbiBkaW4uJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJNYXJrZWRzZlxceGY4cmluZ1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlZpIGJydWtlciBpbmZvcm1hc2pvbnNrYXBzbGVuZTwvYT4gdGlsIFxceGU1IGxldmVyZSByZWxldmFudGUgYW5ub25zZXIgb2cgbVxceGU1bGUgZWZmZWt0aXZpdGV0ZW4gcFxceGU1IGFubm9uc2VrYW1wYW5qZW5lIHZcXHhlNXJlLiBWXFx4ZTVyZSB0cmVkamVwYXJ0cyBhbm5vbnNlcGFydG5lcmUga2FuIGJydWtlIGRpc3NlIGluZm9ybWFzam9uc2thcHNsZW5lIHRpbCBcXHhlNSBieWdnZSBlbiBwcm9maWwgYmFzZXJ0IHBcXHhlNSBpbnRlcmVzc2VuZSBkaW5lIHNhbXQgbGV2ZXJlIHJlbGV2YW50IGFubm9uc2VyaW5nIHBcXHhlNSBhbmRyZSBuZXR0c3RlZGVyLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInRyZWRqZXBhcnRzIGFubm9uc2VwYXJ0bmVyZVwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlRyZWRqZXBhcnRzIGFubm9uc2VwYXJ0bmVyZTpcIixFZmZlY3RpdmVEYXRlOlwiR2plbGRlciBmcmEgb2cgbWVkIDE1LlxceGEwamFudWFyXFx4YTAyMDE5XCIsQm9keTpbXCJJIHRpbGxlZ2cgdGlsIFxceGU1IGFkbWluaXN0cmVyZSBpbmZvcm1hc2pvbnNrYXBzbGVyIGdqZW5ub20gbmV0dGxlc2VyZW4gZWxsZXIgZW5oZXRlbiBkaW4sIGthbiBkdSBlbmRyZSBpbm5zdGlsbGluZ2VuZSBmb3IgaW5mb3JtYXNqb25za2Fwc2xlbmUgbmVkZW5mb3IuIExlZ2cgbWVya2UgdGlsIGF0IGVua2VsdGUgaW5mb3JtYXNqb25za2Fwc2xlciBlciBuXFx4ZjhkdmVuZGlnZSBmb3IgXFx4ZTUga2pcXHhmOHJlIG5ldHRzdGVkZXQgdlxceGU1cnQsIG9nIGthbiBpa2tlIGJsb2trZXJlcyBmcmEgXFx4ZTUgYnJ1a2UgZGlzc2UgaW5uc3RpbGxpbmdlbmUuXCJdLFRpdGxlOlwiSW5mb3JtYXNqb25za2Fwc2xlciwgaW5uc3RpbGxpbmdlclwiLENPT0tJRV9QT1BVUDonSGVpISBQXFx4ZTUgZGV0dGUgbmV0dHN0ZWRldCBicnVrZXIgdmkgaW5mb3JtYXNqb25za2Fwc2xlciBvZyBsaWduZW5kZSB0ZWtub2xvZ2kgKFxceGFiY29va2llc1xceGJiKSwgaW5rbHVkZXJ0IHRyZWRqZXBhcnRzIGluZm9ybWFzam9uc2thcHNsZXIsIHRpbCBcXHhlNSBiZWRyZSBmdW5rc2pvbmFsaXRldGVuIG9nIGZvcmJlZHJlIG5ldHRsZXNlcm9wcGxldmVsc2VuLCBvdmVydlxceGU1a2UgeXRlbHNlbiBkaW4gc2FtdCBmb3IgbWFya2Vkc2ZcXHhmOHJpbmdzZm9ybVxceGU1bC4gSHZpcyBkdSB2aWwgdml0ZSBtZXIgb20gaHZvcmRhbiB2aSBicnVrZXIgaW5mb3JtYXNqb25za2Fwc2xlciBvZyBodmlsa2UgYWx0ZXJuYXRpdmVyIGR1IGhhciBmb3IgZGVtLCBrYW4gZHUgc2pla2tlIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5yZXRuaW5nc2xpbmplbmUgdlxceGU1cmUgZm9yIGluZm9ybWFzam9uc2thcHNsZXI8L2E+ISBWZWQgXFx4ZTUga2xpa2tlIHBcXHhlNSBcXHhhYkdvZHRhIGluZm9ybWFzam9uc2thcHNsZXJcXHhiYiBnb2R0YXIgZHUgYXQgdmkga2FuIGJydWtlIGFsbGUgaW5mb3JtYXNqb25za2Fwc2xlciwgaW5rbHVkZXJ0IGlra2UtdmlrdGlnZSBpbmZvcm1hc2pvbnNrYXBzbGVyLiBEdSBrYW4gdmVsZ2UgXFx4ZTUgYXZ2aXNlIGFsbGUgaWtrZS12aWt0aWdlIGluZm9ybWFzam9uc2thcHNsZXIgdmVkIFxceGU1IGtsaWtrZSBwXFx4ZTUgXFx4YWJYXFx4YmIgdGlsIGhcXHhmOHlyZS4gR1xceGU1IHRpbCBcXHhhYklubnN0aWxsaW5nZXIgZm9yIGluZm9ybWFzam9uc2thcHNsZXJcXHhiYiBlbGxlciBzZSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+cmV0bmluZ3NsaW5qZW5lIHZcXHhlNXJlIGZvciBpbmZvcm1hc2pvbnNrYXBzbGVyPC9hPiBmb3IgXFx4ZTUgZW5kcmUgaW5uc3RpbGxpbmdlciBmb3IgaW5mb3JtYXNqb25za2Fwc2xlciwgb2cgdHJla2sgdGlsYmFrZSBzYW10eWtrZXQgZGl0dCBuXFx4ZTVyIHNvbSBoZWxzdC4nLENPT0tJRV9QT1BVUF9FVTonSGVpISBQXFx4ZTUgZGV0dGUgbmV0dHN0ZWRldCBicnVrZXIgdmkgaW5mb3JtYXNqb25za2Fwc2xlciBvZyBsaWduZW5kZSB0ZWtub2xvZ2kgKFxceGFiY29va2llc1xceGJiKSwgaW5rbHVkZXJ0IHRyZWRqZXBhcnRzIGluZm9ybWFzam9uc2thcHNsZXIsIHRpbCBcXHhlNSBiZWRyZSBmdW5rc2pvbmFsaXRldGVuIG9nIGZvcmJlZHJlIG5ldHRsZXNlcm9wcGxldmVsc2VuLCBvdmVydlxceGU1a2UgeXRlbHNlbiBkaW4gc2FtdCBmb3IgbWFya2Vkc2ZcXHhmOHJpbmdzZm9ybVxceGU1bC4gSHZpcyBkdSB2aWwgdml0ZSBtZXIgb20gaHZvcmRhbiB2aSBicnVrZXIgaW5mb3JtYXNqb25za2Fwc2xlciBvZyBodmlsa2UgYWx0ZXJuYXRpdmVyIGR1IGhhciBmb3IgZGVtLCBrYW4gZHUgc2pla2tlIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5yZXRuaW5nc2xpbmplbmUgdlxceGU1cmUgZm9yIGluZm9ybWFzam9uc2thcHNsZXI8L2E+ISBWZWQgXFx4ZTUga2xpa2tlIHBcXHhlNSBcXHhhYkdvZHRhIGluZm9ybWFzam9uc2thcHNsZXJcXHhiYiBnb2R0YXIgZHUgYXQgdmkga2FuIGJydWtlIGFsbGUgaW5mb3JtYXNqb25za2Fwc2xlciwgaW5rbHVkZXJ0IGlra2UtdmlrdGlnZSBpbmZvcm1hc2pvbnNrYXBzbGVyLiBEdSBrYW4gdmVsZ2UgXFx4ZTUgYXZ2aXNlIGFsbGUgaWtrZS12aWt0aWdlIGluZm9ybWFzam9uc2thcHNsZXIgdmVkIFxceGU1IGtsaWtrZSBwXFx4ZTUgXFx4YWJYXFx4YmIgdGlsIGhcXHhmOHlyZS4gR1xceGU1IHRpbCBcXHhhYklubnN0aWxsaW5nZXIgZm9yIGluZm9ybWFzam9uc2thcHNsZXJcXHhiYiBlbGxlciBzZSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+cmV0bmluZ3NsaW5qZW5lIHZcXHhlNXJlIGZvciBpbmZvcm1hc2pvbnNrYXBzbGVyPC9hPiBmb3IgXFx4ZTUgZW5kcmUgaW5uc3RpbGxpbmdlciBmb3IgaW5mb3JtYXNqb25za2Fwc2xlciwgb2cgdHJla2sgdGlsYmFrZSBzYW10eWtrZXQgZGl0dCBuXFx4ZTVyIHNvbSBoZWxzdC4nLEFncmVlVGV4dDpcIkdvZHRhIGluZm9ybWFzam9uc2thcHNsZXJcIixTZXR0aW5nc1RleHQ6XCJJbm5zdGlsbGluZ2VyIGZvciBpbmZvcm1hc2pvbnNrYXBzbGVyXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJSYXBwb3J0ZXIgYnJ1ZGQgcFxceGU1IG9wcGhhdnNyZXR0XCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwibmwtbmxcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJMaXZlXCIsQWRzOlwiQWR2ZXJ0ZW50aWVzXCIsQ29tcGFueTpcIkJlZHJpamZcIixIb21lOlwiSG9tZVwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIlZhY2F0dXJlc1wiLENhcmVlcnM6XCJDYXJyaVxceGU4cmVzXCIsUHJlc3M6XCJQZXJzXCIsTmV3czpcIk5pZXV3c1wiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJQZXJzaW5mb3JtYXRpZVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJUYWFsXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiU25hcGNoYXQgZG93bmxvYWRlblwiLERvd25sb2FkOlwiRG93bmxvYWRlblwiLEtpdDpcIktpdFwiLFN0b3JpZXM6XCJWZXJoYWxlblwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJXaW5rZWxcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcIlNuYXBjaGF0IHZvb3IgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgdm9vciBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiQ29tbXVuaXR5XCIsU3VwcG9ydDpcIk9uZGVyc3RldW5pbmdcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJDb21tdW5pdHlyaWNodGxpam5lblwiLFwiU2FmZXR5IENlbnRlclwiOlwiVmVpbGlnaGVpZHNjZW50cnVtXCIsU25hcGNvZGVzOlwiU25hcGNvZGVzXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlcnNcIixDcmVhdGU6XCJGaWx0ZXJzICYgTGVuemVuXCIsTWFwOlwiS2FhcnRcIixBZHZlcnRpc2luZzpcIkFkdmVydGVyZW5cIixcIkJ1eSBBZHNcIjpcIkFkcyBrb3BlblwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIkFkdmVydGVudGllYmVsZWlkXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIkJpYmxpb3RoZWVrIG1ldCBwb2xpdGlla2UgYWR2ZXJ0ZW50aWVzXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJNZXJrcmljaHRsaWpuZW5cIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlJlZ2VscyB2b29yIGFjdGllc1wiLExlZ2FsOlwiSnVyaWRpc2NoXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJTZXJ2aWNldm9vcndhYXJkZW5cIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJQcml2YWN5YmVsZWlkXCIsXCJQcml2YWN5IENlbnRlclwiOlwiUHJpdmFjeWNlbnRydW1cIixcIkNvb2tpZSBQb2xpY3lcIjpcIkNvb2tpZWJlbGVpZFwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiU2VydmljZXZvb3J3YWFyZGVuIEhlcmlubmVyaW5nZW5cIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiVm9vcndhYXJkZW4gQ3JlYXRpZXZlIFRvb2xzIG9wIE1hYXRcIixDT01NVU5JVFlfVE9TOlwiVm9vcndhYXJkZW4gQ29tbXVuaXR5LUdlb2ZpbHRlcnNcIixMRU5TX1NUVURJT19UT1M6XCJWb29yd2FhcmRlbiBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIkpvdXcgcHJpdmFjeWtldXplc1wiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIk5vb2R6YWtlbGlqa2UgY29va2llc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPldlIGdlYnJ1aWtlbiBkZXplIGNvb2tpZXM8L2E+IG9tIGRlIHNpdGUgYmV0ZXIgdGUgbGF0ZW4gd2Vya2VuLiBPbWRhdCBkZXplIGNvb2tpZXMgbm9vZHpha2VsaWprIHppam4sIGt1biBqZSB6ZSBuaWV0IHVpdHNjaGFrZWxlbi4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiVm9vcmtldXJlblwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+V2lqIGdlYnJ1aWtlbiBkZXplIGNvb2tpZXM8L2E+IG9tIGplIHZvb3JrZXVyZW4gdGUgb250aG91ZGVuIGVuIGplIGVydmFyaW5nIG9wIG9uemUgd2Vic2l0ZSB0ZSB2ZXJiZXRlcmVuLiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJQcmVzdGF0aWVzIGVuIGFuYWx5c2VcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPldlIGdlYnJ1aWtlbiBkZXplIGNvb2tpZXM8L2E+IG9tIGluZm9ybWF0aWUgdGUgdmVyemFtZWxlbiBvdmVyIGhvZSBqZSBvbnplIHNpdGUgZ2VicnVpa3QsIGRlIHByZXN0YXRpZXMgdmFuIG9uemUgc2l0ZSB0ZSBtb25pdG9yZW4gZW4gZGUgcHJlc3RhdGllcyB2YW4gb256ZSBzaXRlIGVuIGplIGVydmFyaW5nIHRlIHZlcmJldGVyZW4uJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJNYXJrZXRpbmdcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5XaWogZ2VicnVpa2VuIGRlemUgY29va2llczwvYT4gb20gcmVsZXZhbnRlIGFkdmVydGVudGllcyB0ZSB0b25lbiBlbiBkZSBlZmZlY3Rpdml0ZWl0IHZhbiBvbnplIGFkdmVydGVudGllY2FtcGFnbmVzIHRlIG1ldGVuLiBPbnplIGV4dGVybmUgYWR2ZXJ0ZW50aWVwYXJ0bmVycyBrdW5uZW4gZGV6ZSBjb29raWVzIGdlYnJ1aWtlbiBvbSBqZSBpbnRlcmVzc2VzIGluIGthYXJ0IHRlIGJyZW5nZW4gZW4gb3AgYW5kZXJlIHdlYnNpdGVzIHJlbGV2YW50ZSBhZHZlcnRlbnRpZXMgdGUgbGF0ZW4gemllbi4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJPbnplIGV4dGVybmUgYWR2ZXJ0ZW50aWVwYXJ0bmVyc1wiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIkV4dGVybmUgYWR2ZXJ0ZW50aWVwYXJ0bmVyczpcIixFZmZlY3RpdmVEYXRlOlwiSW5nYW5nc2RhdHVtOiAxNSBqYW51YXJpIDIwMTlcIixCb2R5OltcIk5hYXN0IGhldCBiZWhlcmVuIHZhbiBjb29raWVzIHZpYSBqZSBicm93c2VyIG9mIGFwcGFyYWF0LCBrdW4gamUgaGllcm9uZGVyIGplIGNvb2tpZS1pbnN0ZWxsaW5nZW4gd2lqemlnZW4uIEhvdWQgZXIgcmVrZW5pbmcgbWVlIGRhdCBiZXBhYWxkZSBjb29raWVzIG5vZGlnIHppam4gb20gb256ZSBzaXRlIHRlIGxhdGVuIGRyYWFpZW4gZW4gbmlldCBrdW5uZW4gd29yZGVuIGdlYmxva2tlZXJkIG1ldCBiZWh1bHAgdmFuIGRlemUgaW5zdGVsbGluZ2VuLlwiXSxUaXRsZTpcIkNvb2tpZS1pbnN0ZWxsaW5nZW5cIixDT09LSUVfUE9QVVA6J0hhbGxvISBXaWogZ2VicnVpa2VuIGNvb2tpZXMgZW4gc29vcnRnZWxpamtlIHRlY2hub2xvZ2llXFx4ZWJuIChcXHUyMDFjY29va2llc1xcdTIwMWQpLCB3YWFyb25kZXIgY29va2llcyB2YW4gZGVyZGVuLCBvcCBkZXplIHdlYnNpdGUgb20gamUgYnJvd3NlLWVydmFyaW5nIHRlIHZlcmJldGVyZW4sIGRlIHByZXN0YXRpZXMgdGUgdmVyYmV0ZXJlbiBlbiB2b29yIGFkdmVydGVudGllZG9lbGVpbmRlbi4gR2Egdm9vciBtZWVyIGluZm9ybWF0aWUgb3ZlciBob2Ugd2UgY29va2llcyBnZWJydWlrZW4gZW4gd2F0IGplIHplbGYga3VudCBpbnN0ZWxsZW4gbmFhciBvbnMgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPmNvb2tpZWJlbGVpZDwvYT4hIEFscyBqZSBoaWVyb25kZXIgb3AgXFwnQ29va2llcyBhY2NlcHRlcmVuXFwnIGtsaWt0LCBnZWVmIGplIG9ucyB0b2VzdGVtbWluZyBvbSBhbGxlIGNvb2tpZXMgdGUgZ2VicnVpa2VuLCBpbmNsdXNpZWYgbmlldC1lc3NlbnRpXFx4ZWJsZSBjb29raWVzLiBKZSBrdW50IGFsbGUgbmlldC1lc3NlbnRpXFx4ZWJsZSBjb29raWVzIHdlaWdlcmVuIGRvb3IgcmVjaHRzIG9wIGRlIFxcJ1hcXCcgdGUga2xpa2tlbi4gSmUga3VudCBvcCBlbGsgbW9tZW50IGplIGNvb2tpZS1pbnN0ZWxsaW5nZW4gd2lqemlnZW4gb2YgamUgdG9lc3RlbW1pbmcgaW50cmVra2VuIHZpYSBkZSBcXCdjb29raWUtaW5zdGVsbGluZ2VuXFwnIG9mIG9ucyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Y29va2llYmVsZWlkPC9hPi4nLENPT0tJRV9QT1BVUF9FVTonSGFsbG8hIFdpaiBnZWJydWlrZW4gY29va2llcyBlbiBzb29ydGdlbGlqa2UgdGVjaG5vbG9naWVcXHhlYm4gKFxcdTIwMWNjb29raWVzXFx1MjAxZCksIHdhYXJvbmRlciBjb29raWVzIHZhbiBkZXJkZW4sIG9wIGRlemUgd2Vic2l0ZSBvbSBqZSBicm93c2UtZXJ2YXJpbmcgdGUgdmVyYmV0ZXJlbiwgZGUgcHJlc3RhdGllcyB0ZSB2ZXJiZXRlcmVuIGVuIHZvb3IgYWR2ZXJ0ZW50aWVkb2VsZWluZGVuLiBHYSB2b29yIG1lZXIgaW5mb3JtYXRpZSBvdmVyIGhvZSB3ZSBjb29raWVzIGdlYnJ1aWtlbiBlbiB3YXQgamUgemVsZiBrdW50IGluc3RlbGxlbiBuYWFyIG9ucyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Y29va2llYmVsZWlkPC9hPiEgQWxzIGplIGhpZXJvbmRlciBvcCBcXCdDb29raWVzIGFjY2VwdGVyZW5cXCcga2xpa3QsIGdlZWYgamUgb25zIHRvZXN0ZW1taW5nIG9tIGFsbGUgY29va2llcyB0ZSBnZWJydWlrZW4sIGluY2x1c2llZiBuaWV0LWVzc2VudGlcXHhlYmxlIGNvb2tpZXMuIEplIGt1bnQgYWxsZSBuaWV0LWVzc2VudGlcXHhlYmxlIGNvb2tpZXMgd2VpZ2VyZW4gZG9vciByZWNodHMgb3AgZGUgXFwnWFxcJyB0ZSBrbGlra2VuLiBKZSBrdW50IG9wIGVsayBtb21lbnQgamUgY29va2llLWluc3RlbGxpbmdlbiB3aWp6aWdlbiBvZiBqZSB0b2VzdGVtbWluZyBpbnRyZWtrZW4gdmlhIGRlIFxcJ2Nvb2tpZS1pbnN0ZWxsaW5nZW5cXCcgb2Ygb25zIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5jb29raWViZWxlaWQ8L2E+LicsQWdyZWVUZXh0OlwiQ29va2llcyBhY2NlcHRlcmVuXCIsU2V0dGluZ3NUZXh0OlwiQ29va2llLWluc3RlbGxpbmdlblwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiU2NoZW5kaW5nIHJhcHBvcnRlcmVuXCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwicGEtaW5cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHUwYTMyXFx1MGEzZVxcdTBhMDhcXHUwYTM1XCIsQWRzOlwiXFx1MGEwN1xcdTBhMzZcXHUwYTI0XFx1MGEzZlxcdTBhMzlcXHUwYTNlXFx1MGEzMFwiLENvbXBhbnk6XCJcXHUwYTE1XFx1MGE3MFxcdTBhMmFcXHUwYTI4XFx1MGE0MFwiLEhvbWU6XCJcXHUwYTM5XFx1MGE0YlxcdTBhMmVcIixCbG9nOlwiXFx1MGEyY1xcdTBhMzJcXHUwYTRjXFx1MGExN1wiLEpvYnM6XCJcXHUwYTI4XFx1MGE0Y1xcdTBhMTVcXHUwYTMwXFx1MGE0MFxcdTBhMDZcXHUwYTAyXCIsQ2FyZWVyczpcIlxcdTBhMzBcXHUwYTQxXFx1MGE1YlxcdTBhMTdcXHUwYTNlXFx1MGEzMFwiLFByZXNzOlwiXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGE0OFxcdTBhNzFcXHUwYTM4XCIsTmV3czpcIlxcdTBhNTlcXHUwYTJjXFx1MGEzMFxcdTBhM2VcXHUwYTAyXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTBhMmFcXHUwYTRkXFx1MGEzMFxcdTBhNDhcXHUwYTcxXFx1MGEzOCBcXHUwYTM1XFx1MGE3MVxcdTBhMzJcXHUwYTRiXFx1MGEwMiBcXHUwYTJhXFx1MGE0MVxcdTBhNzFcXHUwYTFiXFx1MGExN1xcdTBhM2ZcXHUwYTcxXFx1MGExYlxcdTBhM2VcXHUwYTAyXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTBhMmRcXHUwYTNlXFx1MGEzNlxcdTBhM2VcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJTbmFwY2hhdCBcXHUwYTIxXFx1MGEzZVxcdTBhMGFcXHUwYTI4XFx1MGEzMlxcdTBhNGJcXHUwYTIxIFxcdTBhMTVcXHUwYTMwXFx1MGE0YlwiLERvd25sb2FkOlwiXFx1MGEyMVxcdTBhM2VcXHUwYTBhXFx1MGEyOFxcdTBhMzJcXHUwYTRiXFx1MGEyMSBcXHUwYTE1XFx1MGEzMFxcdTBhNGJcIixLaXQ6XCJcXHUwYTE1XFx1MGEzZlxcdTBhNzFcXHUwYTFmXCIsU3RvcmllczpcIlxcdTBhMTVcXHUwYTM5XFx1MGEzZVxcdTBhMjNcXHUwYTQwXFx1MGEwNlxcdTBhMDJcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiXFx1MGEzOFxcdTBhMWZcXHUwYTRiXFx1MGEzMFwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiaU9TIFxcdTBhMzVcXHUwYTNlXFx1MGEzOFxcdTBhMjRcXHUwYTQ3IFNuYXBjaGF0XCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiQW5kcm9pZCBcXHUwYTM1XFx1MGEzZVxcdTBhMzhcXHUwYTI0XFx1MGE0NyBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTBhMmRcXHUwYTNlXFx1MGEwOFxcdTBhMWFcXHUwYTNlXFx1MGEzMFxcdTBhM2VcIixTdXBwb3J0OlwiXFx1MGEzOFxcdTBhMzlcXHUwYTNlXFx1MGEwN1xcdTBhMjRcXHUwYTNlXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1MGEyZFxcdTBhM2VcXHUwYTA4XFx1MGExYVxcdTBhM2VcXHUwYTMwXFx1MGExNSBcXHUwYTM4XFx1MGE0N1xcdTBhMjdcXHUwYTNlXFx1MGEwMlwiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1MGEzOFxcdTBhNDFcXHUwYTMwXFx1MGE3MVxcdTBhMTZcXHUwYTNmXFx1MGEwNiBcXHUwYTE1XFx1MGE0N1xcdTBhMDJcXHUwYTI2XFx1MGEzMFwiLFNuYXBjb2RlczpcIlNuYXBjb2Rlc1wiLEdlb2ZpbHRlcnM6XCJHZW9maWx0ZXJzXCIsQ3JlYXRlOlwiXFx1MGEyYlxcdTBhM2ZcXHUwYTMyXFx1MGExZlxcdTBhMzAgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzJcXHUwYTQ4XFx1MGEwMlxcdTBhMWNcXHUwYTNjXCIsTWFwOlwiXFx1MGEyOFxcdTBhMTVcXHUwYTM2XFx1MGEzZVwiLEFkdmVydGlzaW5nOlwiXFx1MGEwN1xcdTBhMzZcXHUwYTI0XFx1MGEzZlxcdTBhMzlcXHUwYTNlXFx1MGEzMFxcdTBhMmNcXHUwYTNlXFx1MGE1YlxcdTBhNDBcIixcIkJ1eSBBZHNcIjpcIlxcdTBhMDdcXHUwYTM2XFx1MGEyNFxcdTBhM2ZcXHUwYTM5XFx1MGEzZVxcdTBhMzAgXFx1MGExNlxcdTBhMzBcXHUwYTQwXFx1MGEyNlxcdTBhNGJcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHUwYTA3XFx1MGEzNlxcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwXFx1MGEyY1xcdTBhM2VcXHUwYTViXFx1MGE0MCBcXHUwYTI4XFx1MGE0MFxcdTBhMjRcXHUwYTQwXFx1MGEwNlxcdTBhMDJcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiXFx1MGEzMFxcdTBhM2VcXHUwYTFjXFx1MGEyOFxcdTBhNDBcXHUwYTI0XFx1MGEzZlxcdTBhMTUgXFx1MGEwN1xcdTBhMzhcXHUwYTNjXFx1MGEyNFxcdTBhM2ZcXHUwYTM5XFx1MGEzZVxcdTBhMzAgXFx1MGEzMlxcdTBhM2VcXHUwYTA3XFx1MGEyY1xcdTBhNGRcXHUwYTMwXFx1MGE0N1xcdTBhMzBcXHUwYTQwXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwYTJjXFx1MGE0ZFxcdTBhMzBcXHUwYTNlXFx1MGEwMlxcdTBhMjEgXFx1MGEyNlxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTM4XFx1MGE0N1xcdTBhMjdcXHUwYTNlXFx1MGEwMlwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGExYVxcdTBhM2VcXHUwYTMwIFxcdTBhMjhcXHUwYTNmXFx1MGEyZlxcdTBhMmVcIixMZWdhbDpcIlxcdTBhMTVcXHUwYTNlXFx1MGEyOFxcdTBhNDJcXHUwYTcwXFx1MGEyOFxcdTBhNDBcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTBhMzhcXHUwYTQ3XFx1MGEzNVxcdTBhM2UgXFx1MGEyNlxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTJlXFx1MGEyNlxcdTBhM2VcXHUwYTAyXCIsSW1wcmVzc3VtOlwiXFx1MGEyZVxcdTBhM2VcXHUwYTMyXFx1MGExNVxcdTBhNDAgXFx1MGEyNlxcdTBhNDAgXFx1MGExYlxcdTBhM2VcXHUwYTJhXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiXFx1MGEyYVxcdTBhMzBcXHUwYTI2XFx1MGE0N1xcdTBhMjZcXHUwYTNlXFx1MGEzMFxcdTBhNDAgXFx1MGEyY1xcdTBhM2VcXHUwYTMwXFx1MGE0NyBcXHUwYTI4XFx1MGE0MFxcdTBhMjRcXHUwYTQwXCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1MGEyYVxcdTBhMzBcXHUwYTI2XFx1MGE0N1xcdTBhMjZcXHUwYTNlXFx1MGEzMFxcdTBhNDAgXFx1MGExNVxcdTBhNDdcXHUwYTAyXFx1MGEyNlxcdTBhMzBcIixcIkNvb2tpZSBQb2xpY3lcIjpcIlxcdTBhMTVcXHUwYTQxXFx1MGE3MVxcdTBhMTVcXHUwYTQwIFxcdTBhMjhcXHUwYTQwXFx1MGEyNFxcdTBhNDBcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIidcXHUwYTJmXFx1MGEzZVxcdTBhMjZcXHUwYTNlXFx1MGEwMicgXFx1MGEyNlxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTM4XFx1MGE0N1xcdTBhMzVcXHUwYTNlIFxcdTBhMjZcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEyZVxcdTBhMjZcXHUwYTNlXFx1MGEwMlwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJcXHUwYTM1XFx1MGEzZlxcdTBhMDlcXHUwYTAyXFx1MGEyNFxcdTBhMmNcXHUwYTcxXFx1MGEyNyBcXHUwYTMwXFx1MGExYVxcdTBhMjhcXHUwYTNlXFx1MGEyNFxcdTBhMmVcXHUwYTE1IFxcdTBhMTRcXHUwYTFjXFx1MGEzY1xcdTBhM2VcXHUwYTMwIFxcdTBhMjZcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEyZVxcdTBhMjZcXHUwYTNlXFx1MGEwMlwiLENPTU1VTklUWV9UT1M6XCJcXHUwYTJkXFx1MGEzZVxcdTBhMDhcXHUwYTFhXFx1MGEzZVxcdTBhMzBcXHUwYTE1IEdlb2ZpbHRlciBcXHUwYTI2XFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMmVcXHUwYTI2XFx1MGEzZVxcdTBhMDJcIixMRU5TX1NUVURJT19UT1M6XCJMZW5zIFN0dWRpbyBcXHUwYTI2XFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMmVcXHUwYTI2XFx1MGEzZVxcdTBhMDJcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTJhXFx1MGEzMFxcdTBhMjZcXHUwYTQ3XFx1MGEyNlxcdTBhM2VcXHUwYTMwXFx1MGE0MCBcXHUwYTFhXFx1MGE0YlxcdTBhMjNcXHUwYTNlXFx1MGEwMlwiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIlxcdTBhMzJcXHUwYTNlXFx1MGExY1xcdTBhM2NcXHUwYTJlXFx1MGE0MCBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2NcIixjb250ZW50OlsnXFx1MGEzOFxcdTBhM2VcXHUwYTA4XFx1MGExZiBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEzOFxcdTBhNzBcXHUwYTFhXFx1MGEzZVxcdTBhMzJcXHUwYTNmXFx1MGEyNCBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzNVxcdTBhM2ZcXHUwYTcxXFx1MGExYSBcXHUwYTJlXFx1MGEyNlxcdTBhMjYgXFx1MGExNVxcdTBhMzBcXHUwYTI4IFxcdTBhMzJcXHUwYTA4IDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+XFx1MGEwNVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTA3XFx1MGEyOFxcdTBhNGRcXHUwYTM5XFx1MGEzZVxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyXFx1MDk2NDwvYT4gXFx1MGExNVxcdTBhM2ZcXHUwYTA5XFx1MGEwMlxcdTBhMTVcXHUwYTNmIFxcdTBhMDdcXHUwYTM5IFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTMyXFx1MGEzZVxcdTBhMWNcXHUwYTNjXFx1MGEyZVxcdTBhNDAgXFx1MGEzOVxcdTBhMjgsIFxcdTBhMjRcXHUwYTQxXFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMDlcXHUwYTI4XFx1MGE0ZFxcdTBhMzlcXHUwYTNlXFx1MGEwMiBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEyY1xcdTBhNzBcXHUwYTI2IFxcdTBhMjhcXHUwYTM5XFx1MGE0MFxcdTBhMDIgXFx1MGExNVxcdTBhMzAgXFx1MGEzOFxcdTBhMTVcXHUwYTI2XFx1MGE0N1xcdTA5NjQnXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiXFx1MGEyNFxcdTBhMzBcXHUwYTFjXFx1MGE0MFxcdTBhMzlcXHUwYTNlXFx1MGEwMlwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+XFx1MGEwNVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTA3XFx1MGEzOVxcdTBhMjhcXHUwYTNlXFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDI8L2E+IFxcdTBhMjRcXHUwYTQxXFx1MGEzOVxcdTBhM2VcXHUwYTIxXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMjRcXHUwYTMwXFx1MGExY1xcdTBhNDBcXHUwYTM5XFx1MGEzZVxcdTBhMDIgXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMmZcXHUwYTNlXFx1MGEyNiBcXHUwYTMwXFx1MGE3MVxcdTBhMTZcXHUwYTIzIFxcdTBhMzJcXHUwYTA4IFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQwIFxcdTBhMzVcXHUwYTQ4XFx1MGE3MVxcdTBhMmNcXHUwYTM4XFx1MGEzZVxcdTBhMDhcXHUwYTFmIFxcdTBhMDlcXHUwYTcxXFx1MGEyNFxcdTBhNDcgXFx1MGEyNFxcdTBhNDFcXHUwYTM5XFx1MGEzZVxcdTBhMjFcXHUwYTQ3IFxcdTBhMDVcXHUwYTI4XFx1MGE0MVxcdTBhMmRcXHUwYTM1IFxcdTBhMzVcXHUwYTNmXFx1MGE3MVxcdTBhMWEgXFx1MGEzOFxcdTBhNDFcXHUwYTI3XFx1MGEzZVxcdTBhMzAgXFx1MGExNVxcdTBhMzBcXHUwYTI4IFxcdTBhMzJcXHUwYTA4IFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyXFx1MDk2NCddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTI2XFx1MGEzMFxcdTBhMzZcXHUwYTI4IFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTM1XFx1MGEzZlxcdTBhMzZcXHUwYTMyXFx1MGE0N1xcdTBhMzZcXHUwYTIzXCIsY29udGVudDpbJ1xcdTBhMjRcXHUwYTQxXFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMzhcXHUwYTNlXFx1MGEyMVxcdTBhNDAgXFx1MGEzOFxcdTBhM2VcXHUwYTA4XFx1MGExZiBcXHUwYTI2XFx1MGE0MCBcXHUwYTM1XFx1MGEzMFxcdTBhMjRcXHUwYTRiXFx1MGEwMiBcXHUwYTE1XFx1MGEzZlxcdTBhMzVcXHUwYTQ3XFx1MGEwMiBcXHUwYTE1XFx1MGEzMFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTRiIFxcdTBhMDlcXHUwYTM4IFxcdTBhMmNcXHUwYTNlXFx1MGEzMFxcdTBhNDcgXFx1MGExY1xcdTBhM2VcXHUwYTIzXFx1MGExNVxcdTBhM2VcXHUwYTMwXFx1MGE0MCBcXHUwYTA3XFx1MGExNVxcdTBhNzFcXHUwYTI0XFx1MGEzMCBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzMlxcdTBhMDgsIFxcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWYgXFx1MGEyNlxcdTBhNDcgXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGEyNlxcdTBhMzBcXHUwYTM2XFx1MGEyOCBcXHUwYTI2XFx1MGE0MCBcXHUwYTI4XFx1MGEzZlxcdTBhMTdcXHUwYTMwXFx1MGEzZVxcdTBhMjhcXHUwYTQwIFxcdTBhMTVcXHUwYTMwXFx1MGEyOCBcXHUwYTMyXFx1MGEwOCwgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMDZcXHUwYTJhXFx1MGEyM1xcdTBhNDAgXFx1MGEzOFxcdTBhM2VcXHUwYTA4XFx1MGExZiBcXHUwYTI2XFx1MGE0NyBcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTI2XFx1MGEzMFxcdTBhMzZcXHUwYTI4IFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDcgXFx1MGEwNVxcdTBhMjhcXHUwYTQxXFx1MGEyZFxcdTBhMzUgXFx1MGEzNVxcdTBhM2ZcXHUwYTcxXFx1MGExYSBcXHUwYTM4XFx1MGE0MVxcdTBhMjdcXHUwYTNlXFx1MGEzMCBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzMlxcdTBhMDggPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGEwN1xcdTBhMzlcXHUwYTI4XFx1MGEzZVxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyXFx1MDk2NDwvYT4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIlxcdTBhMmVcXHUwYTNlXFx1MGEzMFxcdTBhMTVcXHUwYTFmXFx1MGEzZlxcdTBhNzBcXHUwYTE3XCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+XFx1MGEwNVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTA3XFx1MGEzOVxcdTBhMjhcXHUwYTNlXFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDI8L2E+IFxcdTBhMjRcXHUwYTQxXFx1MGEzOVxcdTBhM2VcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEyMlxcdTBhNDFcXHUwYTcxXFx1MGExNVxcdTBhMzVcXHUwYTQ3XFx1MGEwMiBcXHUwYTA3XFx1MGEzNlxcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwIFxcdTBhMjZcXHUwYTNmXFx1MGExNlxcdTBhM2VcXHUwYTA5XFx1MGEyMyBcXHUwYTMyXFx1MGEwOCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEzOFxcdTBhM2VcXHUwYTIxXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMDdcXHUwYTM2XFx1MGEyNFxcdTBhM2ZcXHUwYTM5XFx1MGEzZVxcdTBhMzBcXHUwYTJjXFx1MGEzZVxcdTBhNWJcXHUwYTQwIFxcdTBhMmVcXHUwYTQxXFx1MGEzOVxcdTBhM2ZcXHUwYTcwXFx1MGEyZVxcdTBhM2VcXHUwYTAyIFxcdTBhMjZcXHUwYTQwIFxcdTBhMTVcXHUwYTNlXFx1MGEyZVxcdTBhMmZcXHUwYTNlXFx1MGEyY1xcdTBhNDAgXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMmVcXHUwYTNlXFx1MGEyYVxcdTBhMjMgXFx1MGEzMlxcdTBhMDggXFx1MGExNVxcdTBhMzBcXHUwYTI2XFx1MGE0NyBcXHUwYTM5XFx1MGEzZVxcdTBhMDJcXHUwOTY0IFxcdTBhMzhcXHUwYTNlXFx1MGEyMVxcdTBhNDcgXFx1MGEyNFxcdTBhNDBcXHUwYTFjXFx1MGE0MC1cXHUwYTI3XFx1MGEzZlxcdTBhMzAgXFx1MGEyNlxcdTBhNDcgXFx1MGEwN1xcdTBhMzhcXHUwYTNjXFx1MGEyNFxcdTBhM2ZcXHUwYTM5XFx1MGEzZVxcdTBhMzAgXFx1MGEyZFxcdTBhM2VcXHUwYTA4XFx1MGEzNVxcdTBhM2VcXHUwYTMyIFxcdTBhMjRcXHUwYTQxXFx1MGEzOVxcdTBhM2VcXHUwYTIxXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMzBcXHUwYTQxXFx1MGExYVxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTA1XFx1MGEyOFxcdTBhNDFcXHUwYTM4XFx1MGEzZVxcdTBhMzAgXFx1MGEwN1xcdTBhNzFcXHUwYTE1IFxcdTBhMmFcXHUwYTRkXFx1MGEzMFxcdTBhNGJcXHUwYTJiXFx1MGEzZVxcdTBhMDhcXHUwYTMyIFxcdTBhMmNcXHUwYTIzXFx1MGEzZVxcdTBhMDlcXHUwYTIzIFxcdTBhMzJcXHUwYTA4IFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTI2XFx1MGE0MlxcdTBhMWNcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEzOFxcdTBhM2VcXHUwYTA4XFx1MGExZlxcdTBhM2VcXHUwYTAyIFxcdTBhMzVcXHUwYTNmXFx1MGE3MVxcdTBhMWEgXFx1MGEyMlxcdTBhNDFcXHUwYTcxXFx1MGExNVxcdTBhMzVcXHUwYTQ3XFx1MGEwMiBcXHUwYTA3XFx1MGEzNlxcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwIFxcdTBhMjZcXHUwYTNmXFx1MGExNlxcdTBhM2VcXHUwYTA5XFx1MGEyMyBcXHUwYTMyXFx1MGEwOCBcXHUwYTA3XFx1MGEzOVxcdTBhMjhcXHUwYTNlXFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGExNVxcdTBhMzAgXFx1MGEzOFxcdTBhMTVcXHUwYTI2XFx1MGE0NyBcXHUwYTM5XFx1MGEyOFxcdTA5NjQnXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJcXHUwYTI0XFx1MGE0MFxcdTBhMWNcXHUwYTQwLVxcdTBhMjdcXHUwYTNmXFx1MGEzMCBcXHUwYTI2XFx1MGE0NyBcXHUwYTA3XFx1MGEzNlxcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwXFx1MGEyY1xcdTBhM2VcXHUwYTViXFx1MGE0MCBcXHUwYTJkXFx1MGEzZVxcdTBhMDhcXHUwYTM1XFx1MGEzZVxcdTBhMzJcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJcXHUwYTI0XFx1MGE0MFxcdTBhMWNcXHUwYTQwLVxcdTBhMjdcXHUwYTNmXFx1MGEzMCBcXHUwYTI2XFx1MGE0NyBcXHUwYTA3XFx1MGEzNlxcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwXFx1MGEyY1xcdTBhM2VcXHUwYTViXFx1MGE0MCBcXHUwYTJkXFx1MGEzZVxcdTBhMDhcXHUwYTM1XFx1MGEzZVxcdTBhMzI6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTBhMmFcXHUwYTRkXFx1MGEzMFxcdTBhMmRcXHUwYTNlXFx1MGEzNVxcdTBhNDAgXFx1MGEyZVxcdTBhM2ZcXHUwYTI0XFx1MGE0MDogMTUgXFx1MGExY1xcdTBhMjhcXHUwYTM1XFx1MGEzMFxcdTBhNDAsIDIwMTlcIixCb2R5OltcIlxcdTBhMDZcXHUwYTJhXFx1MGEyM1xcdTBhNDcgXFx1MGEyY1xcdTBhNGRcXHUwYTMwXFx1MGEzZVxcdTBhMGFcXHUwYTViXFx1MGEzMCBcXHUwYTFjXFx1MGEzZVxcdTBhMDIgXFx1MGEyMVxcdTBhNDBcXHUwYTM1XFx1MGEzZVxcdTBhMDhcXHUwYTM4IFxcdTBhMzBcXHUwYTNlXFx1MGEzOVxcdTBhNDBcXHUwYTAyIFxcdTBhMTVcXHUwYTQxXFx1MGE3MVxcdTBhMTVcXHUwYTQwXFx1MGE1YiBcXHUwYTI2XFx1MGEzZSBcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTJjXFx1MGE3MFxcdTBhMjdcXHUwYTI4IFxcdTBhMTVcXHUwYTMwXFx1MGEyOCBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGEwN1xcdTBhMzJcXHUwYTNlXFx1MGEzNVxcdTBhM2UsIFxcdTBhMjRcXHUwYTQxXFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMDZcXHUwYTJhXFx1MGEyM1xcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTE1XFx1MGE0MVxcdTBhNzFcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGE0OFxcdTBhMWZcXHUwYTNmXFx1MGE3MFxcdTBhMTdcXHUwYTNlXFx1MGEwMiBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEzOVxcdTBhNDdcXHUwYTIwXFx1MGEzZVxcdTBhMDIgXFx1MGEyY1xcdTBhMjZcXHUwYTMyIFxcdTBhMzhcXHUwYTE1XFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhNGJcXHUwOTY0IFxcdTBhMTVcXHUwYTNmXFx1MGEzMFxcdTBhMmFcXHUwYTNlIFxcdTBhMTVcXHUwYTMwXFx1MGExNVxcdTBhNDcgXFx1MGEyOFxcdTBhNGJcXHUwYTFmIFxcdTBhMTVcXHUwYTMwXFx1MGE0YiBcXHUwYTE1XFx1MGEzZiBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQwIFxcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWYgXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMWFcXHUwYTMyXFx1MGEzZVxcdTBhMDlcXHUwYTIzIFxcdTBhMzJcXHUwYTA4IFxcdTBhMTVcXHUwYTQxXFx1MGExZCBcXHUwYTE1XFx1MGE0MVxcdTBhNzFcXHUwYTE1XFx1MGE0MFxcdTBhNWIgXFx1MGEyNlxcdTBhNDAgXFx1MGEzMlxcdTBhNGJcXHUwYTVjIFxcdTBhMmFcXHUwYTQ4XFx1MGEwMlxcdTBhMjZcXHUwYTQwIFxcdTBhMzlcXHUwYTQ4IFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTA5XFx1MGEzOVxcdTBhMjhcXHUwYTNlXFx1MGEwMiBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEwN1xcdTBhMzlcXHUwYTI4XFx1MGEzZVxcdTBhMDIgXFx1MGEzOFxcdTBhNDhcXHUwYTFmXFx1MGEzZlxcdTBhNzBcXHUwYTE3XFx1MGEzZVxcdTBhMDIgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGExNVxcdTBhMzBcXHUwYTE1XFx1MGE0NyBcXHUwYTJjXFx1MGEzMlxcdTBhNGNcXHUwYTE1IFxcdTBhMjhcXHUwYTM5XFx1MGE0MFxcdTBhMDIgXFx1MGExNVxcdTBhNDBcXHUwYTI0XFx1MGEzZSBcXHUwYTFjXFx1MGEzZSBcXHUwYTM4XFx1MGExNVxcdTBhMjZcXHUwYTNlXFx1MDk2NFwiXSxUaXRsZTpcIlxcdTBhMTVcXHUwYTQxXFx1MGE3MVxcdTBhMTVcXHUwYTQwIFxcdTBhMzhcXHUwYTQ4XFx1MGExZlxcdTBhM2ZcXHUwYTcwXFx1MGExN1xcdTBhM2VcXHUwYTAyXCIsQ09PS0lFX1BPUFVQOidcXHUwYTM5XFx1MGE0OFxcdTBhMzJcXHUwYTRiISBcXHUwYTA1XFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMjRcXHUwYTQxXFx1MGEzOVxcdTBhM2VcXHUwYTIxXFx1MGE0NyBcXHUwYTJjXFx1MGE0ZFxcdTBhMzBcXHUwYTNlXFx1MGEwYVxcdTBhMWNcXHUwYTNjXFx1MGEzZlxcdTBhNzBcXHUwYTE3IFxcdTBhMDVcXHUwYTI4XFx1MGE0MVxcdTBhMmRcXHUwYTM1IFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTFhXFx1MGEzMlxcdTBhM2VcXHUwYTA5XFx1MGEyMyBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEzOFxcdTBhNDFcXHUwYTI3XFx1MGEzZVxcdTBhMzAgXFx1MGExNVxcdTBhMzBcXHUwYTI4LCBcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTI2XFx1MGEzMFxcdTBhMzZcXHUwYTI4IFxcdTBhMjZcXHUwYTQwIFxcdTBhMjhcXHUwYTNmXFx1MGExN1xcdTBhMzBcXHUwYTNlXFx1MGEyOFxcdTBhNDAgXFx1MGExNVxcdTBhMzBcXHUwYTI4LCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEzNVxcdTBhM2ZcXHUwYTE3XFx1MGEzZlxcdTBhMDZcXHUwYTJhXFx1MGEyOCBcXHUwYTA5XFx1MGEyNlxcdTBhNDdcXHUwYTM2XFx1MGEzZVxcdTBhMDIgXFx1MGEzMlxcdTBhMDggXFx1MGEyZVxcdTBhMjZcXHUwYTI2IFxcdTBhMTVcXHUwYTMwXFx1MGEyOCBcXHUwYTM1XFx1MGEzZVxcdTBhMzhcXHUwYTI0XFx1MGE0NyBcXHUwYTA3XFx1MGEzOCBcXHUwYTM1XFx1MGE0OFxcdTBhNzFcXHUwYTJjXFx1MGEzOFxcdTBhM2VcXHUwYTA4XFx1MGExZiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTI0XFx1MGE0MFxcdTBhMWNcXHUwYTQwLVxcdTBhMjdcXHUwYTNmXFx1MGEzMCBcXHUwYTI2XFx1MGE0NyBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEzOFxcdTBhMmVcXHUwYTQ3XFx1MGEyNCwgXFx1MGEwNVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzhcXHUwYTJlXFx1MGEzZVxcdTBhMjggXFx1MGEyNFxcdTBhMTVcXHUwYTI4XFx1MGE0MFxcdTBhMTVcXHUwYTNlXFx1MGEwMiAoXCJcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2NcIikgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGExNVxcdTBhMzBcXHUwYTI2XFx1MGE0NyBcXHUwYTM5XFx1MGEzZVxcdTBhMDJcXHUwOTY0IFxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTNmXFx1MGEzNVxcdTBhNDdcXHUwYTAyIFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyIFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDcgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGEyY1xcdTBhNzBcXHUwYTI3XFx1MGE0MCBcXHUwYTM1XFx1MGEzZlxcdTBhMTVcXHUwYTMyXFx1MGEyYVxcdTBhM2VcXHUwYTAyIFxcdTBhMmNcXHUwYTNlXFx1MGEzMFxcdTBhNDcgXFx1MGEzOVxcdTBhNGJcXHUwYTMwIFxcdTBhMWNcXHUwYTNlXFx1MGEyM1xcdTBhMjggXFx1MGEzMlxcdTBhMDgsIFxcdTBhMzhcXHUwYTNlXFx1MGEyMVxcdTBhNDAgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDAgXFx1MGEyOFxcdTBhNDBcXHUwYTI0XFx1MGE0MDwvYT4gXFx1MGEyNlxcdTBhNDdcXHUwYTE2XFx1MGE0YiEgXFx1MGEzOVxcdTBhNDdcXHUwYTIwXFx1MGEzZVxcdTBhMDIgXCJcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEzOFxcdTBhMzVcXHUwYTQwXFx1MGExNVxcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwXFx1MGE0YlwiIFxcJ1xcdTBhMjRcXHUwYTQ3IFxcdTBhMTVcXHUwYTMyXFx1MGEzZlxcdTBhNzFcXHUwYTE1IFxcdTBhMTVcXHUwYTMwXFx1MGExNVxcdTBhNDcsIFxcdTBhMjRcXHUwYTQxXFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMzhcXHUwYTNlXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMTdcXHUwYTQ4XFx1MGEzMC1cXHUwYTFjXFx1MGEzY1xcdTBhMzBcXHUwYTQyXFx1MGEzMFxcdTBhNDAgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMzhcXHUwYTJlXFx1MGE0N1xcdTBhMjQgXFx1MGEzOFxcdTBhM2VcXHUwYTMwXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI2XFx1MGE0MCBcXHUwYTM1XFx1MGEzMFxcdTBhMjRcXHUwYTRiXFx1MGEwMiBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzMlxcdTBhMDggXFx1MGEzOFxcdTBhMzlcXHUwYTNmXFx1MGEyZVxcdTBhMjRcXHUwYTQwIFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzBcXHUwYTM5XFx1MGE0NyBcXHUwYTM5XFx1MGE0YlxcdTA5NjQgXFx1MGEyNFxcdTBhNDFcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGEzOFxcdTBhNzFcXHUwYTFjXFx1MGE0NyBcXHUwYTJhXFx1MGEzZVxcdTBhMzhcXHUwYTQ3IFwiWFwiIFxcJ1xcdTBhMjRcXHUwYTQ3IFxcdTBhMTVcXHUwYTMyXFx1MGEzZlxcdTBhNzFcXHUwYTE1IFxcdTBhMTVcXHUwYTMwXFx1MGExNVxcdTBhNDcgXFx1MGEzOFxcdTBhM2VcXHUwYTMwXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMTdcXHUwYTQ4XFx1MGEzMC1cXHUwYTFjXFx1MGEzY1xcdTBhMzBcXHUwYTQyXFx1MGEzMFxcdTBhNDAgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTA1XFx1MGEzOFxcdTBhMzVcXHUwYTQwXFx1MGExNVxcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwIFxcdTBhMzhcXHUwYTE1XFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhNGJcXHUwOTY0IFxcdTBhMDZcXHUwYTJhXFx1MGEyM1xcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwIFxcdTBhMzhcXHUwYTQ4XFx1MGExZlxcdTBhM2ZcXHUwYTcwXFx1MGExN1xcdTBhM2VcXHUwYTAyIFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTJjXFx1MGEyNlxcdTBhMzJcXHUwYTIzIFxcdTBhMzJcXHUwYTA4IFwiXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGE0OFxcdTBhMWZcXHUwYTNmXFx1MGE3MFxcdTBhMTdcXHUwYTFjXFx1MGEzY1wiIFxcdTBhMWNcXHUwYTNlXFx1MGEwMiBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwIFxcdTBhMjhcXHUwYTQwXFx1MGEyNFxcdTBhNDA8L2E+IFxcJ1xcdTBhMjRcXHUwYTQ3IFxcdTBhMWNcXHUwYTNlXFx1MGExMyBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGExNVxcdTBhM2ZcXHUwYTM4XFx1MGE0NyBcXHUwYTM1XFx1MGE0MCBcXHUwYTM4XFx1MGEyZVxcdTBhNDdcXHUwYTAyIFxcdTBhMDZcXHUwYTJhXFx1MGEyM1xcdTBhNDAgXFx1MGEzOFxcdTBhMzlcXHUwYTNmXFx1MGEyZVxcdTBhMjRcXHUwYTQwIFxcdTBhMzVcXHUwYTNlXFx1MGEyYVxcdTBhMzggXFx1MGEzMlxcdTBhNDggXFx1MGEzMlxcdTBhMTNcXHUwOTY0JyxDT09LSUVfUE9QVVBfRVU6J1xcdTBhMzlcXHUwYTQ4XFx1MGEzMlxcdTBhNGIhIFxcdTBhMjRcXHUwYTQxXFx1MGEzOVxcdTBhM2VcXHUwYTIxXFx1MGE0NyBcXHUwYTJjXFx1MGE0ZFxcdTBhMzBcXHUwYTNlXFx1MGEwYVxcdTBhMWNcXHUwYTNjXFx1MGEzZlxcdTBhNzBcXHUwYTE3IFxcdTBhMDVcXHUwYTI4XFx1MGE0MVxcdTBhMmRcXHUwYTM1IFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTFhXFx1MGEzMlxcdTBhM2VcXHUwYTA5XFx1MGEyMyBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEzOFxcdTBhNDFcXHUwYTI3XFx1MGEzZVxcdTBhMzAgXFx1MGExNVxcdTBhMzBcXHUwYTI4LCBcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTI2XFx1MGEzMFxcdTBhMzZcXHUwYTI4IFxcdTBhMjZcXHUwYTQwIFxcdTBhMjhcXHUwYTNmXFx1MGExN1xcdTBhMzBcXHUwYTNlXFx1MGEyOFxcdTBhNDAgXFx1MGExNVxcdTBhMzBcXHUwYTI4LCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEzNVxcdTBhM2ZcXHUwYTE3XFx1MGEzZlxcdTBhMDZcXHUwYTJhXFx1MGEyOCBcXHUwYTA5XFx1MGEyNlxcdTBhNDdcXHUwYTM2XFx1MGEzZVxcdTBhMDIgXFx1MGEzMlxcdTBhMDggXFx1MGEyZVxcdTBhMjZcXHUwYTI2IFxcdTBhMTVcXHUwYTMwXFx1MGEyOCBcXHUwYTM1XFx1MGEzZVxcdTBhMzhcXHUwYTI0XFx1MGE0NyBcXHUwYTA3XFx1MGEzOCBcXHUwYTM1XFx1MGE0OFxcdTBhNzFcXHUwYTJjXFx1MGEzOFxcdTBhM2VcXHUwYTA4XFx1MGExZiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTI0XFx1MGE0MFxcdTBhMWNcXHUwYTQwLVxcdTBhMjdcXHUwYTNmXFx1MGEzMCBcXHUwYTI2XFx1MGE0NyBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEzOFxcdTBhMmVcXHUwYTQ3XFx1MGEyNCwgXFx1MGEwNVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzhcXHUwYTJlXFx1MGEzZVxcdTBhMjggXFx1MGEyNFxcdTBhMTVcXHUwYTI4XFx1MGE0MFxcdTBhMTVcXHUwYTNlXFx1MGEwMiAoXCJcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2NcIikgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGExNVxcdTBhMzBcXHUwYTI2XFx1MGE0NyBcXHUwYTM5XFx1MGEzZVxcdTBhMDJcXHUwOTY0IFxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTNmXFx1MGEzNVxcdTBhNDdcXHUwYTAyIFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyIFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDcgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGEyY1xcdTBhNzBcXHUwYTI3XFx1MGE0MCBcXHUwYTM1XFx1MGEzZlxcdTBhMTVcXHUwYTMyXFx1MGEyYVxcdTBhM2VcXHUwYTAyIFxcdTBhMmNcXHUwYTNlXFx1MGEzMFxcdTBhNDcgXFx1MGEzOVxcdTBhNGJcXHUwYTMwIFxcdTBhMWNcXHUwYTNlXFx1MGEyM1xcdTBhMjggXFx1MGEzMlxcdTBhMDgsIFxcdTBhMzhcXHUwYTNlXFx1MGEyMVxcdTBhNDAgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDAgXFx1MGEyOFxcdTBhNDBcXHUwYTI0XFx1MGE0MDwvYT4gXFx1MGEyNlxcdTBhNDdcXHUwYTE2XFx1MGE0YiEgXFx1MGEzOVxcdTBhNDdcXHUwYTIwXFx1MGEzZVxcdTBhMDIgXCJcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEzOFxcdTBhMzVcXHUwYTQwXFx1MGExNVxcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwXFx1MGE0YlwiIFxcJ1xcdTBhMjRcXHUwYTQ3IFxcdTBhMTVcXHUwYTMyXFx1MGEzZlxcdTBhNzFcXHUwYTE1IFxcdTBhMTVcXHUwYTMwXFx1MGExNVxcdTBhNDcsIFxcdTBhMjRcXHUwYTQxXFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMzhcXHUwYTNlXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMTdcXHUwYTQ4XFx1MGEzMC1cXHUwYTFjXFx1MGEzY1xcdTBhMzBcXHUwYTQyXFx1MGEzMFxcdTBhNDAgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMzhcXHUwYTJlXFx1MGE0N1xcdTBhMjQgXFx1MGEzOFxcdTBhM2VcXHUwYTMwXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI2XFx1MGE0MCBcXHUwYTM1XFx1MGEzMFxcdTBhMjRcXHUwYTRiXFx1MGEwMiBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzMlxcdTBhMDggXFx1MGEzOFxcdTBhMzlcXHUwYTNmXFx1MGEyZVxcdTBhMjRcXHUwYTQwIFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzBcXHUwYTM5XFx1MGE0NyBcXHUwYTM5XFx1MGE0YlxcdTA5NjQgXFx1MGEyNFxcdTBhNDFcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGEzOFxcdTBhNzFcXHUwYTFjXFx1MGE0NyBcXHUwYTJhXFx1MGEzZVxcdTBhMzhcXHUwYTQ3IFwiWFwiIFxcJ1xcdTBhMjRcXHUwYTQ3IFxcdTBhMTVcXHUwYTMyXFx1MGEzZlxcdTBhNzFcXHUwYTE1IFxcdTBhMTVcXHUwYTMwXFx1MGExNVxcdTBhNDcgXFx1MGEzOFxcdTBhM2VcXHUwYTMwXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMTdcXHUwYTQ4XFx1MGEzMC1cXHUwYTFjXFx1MGEzY1xcdTBhMzBcXHUwYTQyXFx1MGEzMFxcdTBhNDAgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTA1XFx1MGEzOFxcdTBhMzVcXHUwYTQwXFx1MGExNVxcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwIFxcdTBhMzhcXHUwYTE1XFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhNGJcXHUwOTY0IFxcdTBhMDZcXHUwYTJhXFx1MGEyM1xcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwIFxcdTBhMzhcXHUwYTQ4XFx1MGExZlxcdTBhM2ZcXHUwYTcwXFx1MGExN1xcdTBhM2VcXHUwYTAyIFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTJjXFx1MGEyNlxcdTBhMzJcXHUwYTIzIFxcdTBhMzJcXHUwYTA4IFwiXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGE0OFxcdTBhMWZcXHUwYTNmXFx1MGE3MFxcdTBhMTdcXHUwYTFjXFx1MGEzY1wiIFxcdTBhMWNcXHUwYTNlXFx1MGEwMiBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwIFxcdTBhMjhcXHUwYTQwXFx1MGEyNFxcdTBhNDA8L2E+IFxcJ1xcdTBhMjRcXHUwYTQ3IFxcdTBhMWNcXHUwYTNlXFx1MGExMyBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGExNVxcdTBhM2ZcXHUwYTM4XFx1MGE0NyBcXHUwYTM1XFx1MGE0MCBcXHUwYTM4XFx1MGEyZVxcdTBhNDdcXHUwYTAyIFxcdTBhMDZcXHUwYTJhXFx1MGEyM1xcdTBhNDAgXFx1MGEzOFxcdTBhMzlcXHUwYTNmXFx1MGEyZVxcdTBhMjRcXHUwYTQwIFxcdTBhMzVcXHUwYTNlXFx1MGEyYVxcdTBhMzggXFx1MGEzMlxcdTBhNDggXFx1MGEzMlxcdTBhMTNcXHUwOTY0JyxBZ3JlZVRleHQ6XCJcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEzOFxcdTBhMzVcXHUwYTQwXFx1MGExNVxcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwXFx1MGE0YlwiLFNldHRpbmdzVGV4dDpcIlxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDAgXFx1MGEzOFxcdTBhNDhcXHUwYTFmXFx1MGEzZlxcdTBhNzBcXHUwYTE3XFx1MGEzZVxcdTBhMDJcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTBhMDlcXHUwYTMyXFx1MGE3MFxcdTBhMThcXHUwYTIzXFx1MGEzZSBcXHUwYTI2XFx1MGE0MCBcXHUwYTMwXFx1MGEzZlxcdTBhMmFcXHUwYTRiXFx1MGEzMFxcdTBhMWYgXFx1MGExNVxcdTBhMzBcXHUwYTRiXCIsU3BvdGxpZ2h0OlwiXFx1MGEzOFxcdTBhMmFcXHUwYTRjXFx1MGExZlxcdTBhMzJcXHUwYTNlXFx1MGEwOFxcdTBhMWZcIn0scGE6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiXFx1MGEzMlxcdTBhM2VcXHUwYTA4XFx1MGEzNVwiLEFkczpcIlxcdTBhMDdcXHUwYTM2XFx1MGEyNFxcdTBhM2ZcXHUwYTM5XFx1MGEzZVxcdTBhMzBcIixDb21wYW55OlwiXFx1MGExNVxcdTBhNzBcXHUwYTJhXFx1MGEyOFxcdTBhNDBcIixIb21lOlwiXFx1MGEzOVxcdTBhNGJcXHUwYTJlXCIsQmxvZzpcIlxcdTBhMmNcXHUwYTMyXFx1MGE0Y1xcdTBhMTdcIixKb2JzOlwiXFx1MGEyOFxcdTBhNGNcXHUwYTE1XFx1MGEzMFxcdTBhNDBcXHUwYTA2XFx1MGEwMlwiLENhcmVlcnM6XCJcXHUwYTMwXFx1MGE0MVxcdTBhNWJcXHUwYTE3XFx1MGEzZVxcdTBhMzBcIixQcmVzczpcIlxcdTBhMmFcXHUwYTRkXFx1MGEzMFxcdTBhNDhcXHUwYTcxXFx1MGEzOFwiLE5ld3M6XCJcXHUwYTU5XFx1MGEyY1xcdTBhMzBcXHUwYTNlXFx1MGEwMlwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTQ4XFx1MGE3MVxcdTBhMzggXFx1MGEzNVxcdTBhNzFcXHUwYTMyXFx1MGE0YlxcdTBhMDIgXFx1MGEyYVxcdTBhNDFcXHUwYTcxXFx1MGExYlxcdTBhMTdcXHUwYTNmXFx1MGE3MVxcdTBhMWJcXHUwYTNlXFx1MGEwMlwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJcXHUwYTJkXFx1MGEzZVxcdTBhMzZcXHUwYTNlXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiU25hcGNoYXQgXFx1MGEyMVxcdTBhM2VcXHUwYTBhXFx1MGEyOFxcdTBhMzJcXHUwYTRiXFx1MGEyMSBcXHUwYTE1XFx1MGEzMFxcdTBhNGJcIixEb3dubG9hZDpcIlxcdTBhMjFcXHUwYTNlXFx1MGEwYVxcdTBhMjhcXHUwYTMyXFx1MGE0YlxcdTBhMjEgXFx1MGExNVxcdTBhMzBcXHUwYTRiXCIsS2l0OlwiXFx1MGExNVxcdTBhM2ZcXHUwYTcxXFx1MGExZlwiLFN0b3JpZXM6XCJcXHUwYTE1XFx1MGEzOVxcdTBhM2VcXHUwYTIzXFx1MGE0MFxcdTBhMDZcXHUwYTAyXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTBhMzhcXHUwYTFmXFx1MGE0YlxcdTBhMzBcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcImlPUyBcXHUwYTM1XFx1MGEzZVxcdTBhMzhcXHUwYTI0XFx1MGE0NyBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQgXFx1MGEzNVxcdTBhM2VcXHUwYTM4XFx1MGEyNFxcdTBhNDcgU25hcGNoYXRcIixDb21tdW5pdHk6XCJcXHUwYTJkXFx1MGEzZVxcdTBhMDhcXHUwYTFhXFx1MGEzZVxcdTBhMzBcXHUwYTNlXCIsU3VwcG9ydDpcIlxcdTBhMzhcXHUwYTM5XFx1MGEzZVxcdTBhMDdcXHUwYTI0XFx1MGEzZVwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlxcdTBhMmRcXHUwYTNlXFx1MGEwOFxcdTBhMWFcXHUwYTNlXFx1MGEzMFxcdTBhMTUgXFx1MGEzOFxcdTBhNDdcXHUwYTI3XFx1MGEzZVxcdTBhMDJcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlxcdTBhMzhcXHUwYTQxXFx1MGEzMFxcdTBhNzFcXHUwYTE2XFx1MGEzZlxcdTBhMDYgXFx1MGExNVxcdTBhNDdcXHUwYTAyXFx1MGEyNlxcdTBhMzBcIixTbmFwY29kZXM6XCJTbmFwY29kZXNcIixHZW9maWx0ZXJzOlwiR2VvZmlsdGVyc1wiLENyZWF0ZTpcIlxcdTBhMmJcXHUwYTNmXFx1MGEzMlxcdTBhMWZcXHUwYTMwIFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTMyXFx1MGE0OFxcdTBhMDJcXHUwYTFjXFx1MGEzY1wiLE1hcDpcIlxcdTBhMjhcXHUwYTE1XFx1MGEzNlxcdTBhM2VcIixBZHZlcnRpc2luZzpcIlxcdTBhMDdcXHUwYTM2XFx1MGEyNFxcdTBhM2ZcXHUwYTM5XFx1MGEzZVxcdTBhMzBcXHUwYTJjXFx1MGEzZVxcdTBhNWJcXHUwYTQwXCIsXCJCdXkgQWRzXCI6XCJcXHUwYTA3XFx1MGEzNlxcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwIFxcdTBhMTZcXHUwYTMwXFx1MGE0MFxcdTBhMjZcXHUwYTRiXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiXFx1MGEwN1xcdTBhMzZcXHUwYTI0XFx1MGEzZlxcdTBhMzlcXHUwYTNlXFx1MGEzMFxcdTBhMmNcXHUwYTNlXFx1MGE1YlxcdTBhNDAgXFx1MGEyOFxcdTBhNDBcXHUwYTI0XFx1MGE0MFxcdTBhMDZcXHUwYTAyXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTBhMzBcXHUwYTNlXFx1MGExY1xcdTBhMjhcXHUwYTQwXFx1MGEyNFxcdTBhM2ZcXHUwYTE1IFxcdTBhMDdcXHUwYTM4XFx1MGEzY1xcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwIFxcdTBhMzJcXHUwYTNlXFx1MGEwN1xcdTBhMmNcXHUwYTRkXFx1MGEzMFxcdTBhNDdcXHUwYTMwXFx1MGE0MFwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiXFx1MGEyY1xcdTBhNGRcXHUwYTMwXFx1MGEzZVxcdTBhMDJcXHUwYTIxIFxcdTBhMjZcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEzOFxcdTBhNDdcXHUwYTI3XFx1MGEzZVxcdTBhMDJcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlxcdTBhMmFcXHUwYTRkXFx1MGEzMFxcdTBhMWFcXHUwYTNlXFx1MGEzMCBcXHUwYTI4XFx1MGEzZlxcdTBhMmZcXHUwYTJlXCIsTGVnYWw6XCJcXHUwYTE1XFx1MGEzZVxcdTBhMjhcXHUwYTQyXFx1MGE3MFxcdTBhMjhcXHUwYTQwXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwYTM4XFx1MGE0N1xcdTBhMzVcXHUwYTNlIFxcdTBhMjZcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEyZVxcdTBhMjZcXHUwYTNlXFx1MGEwMlwiLEltcHJlc3N1bTpcIlxcdTBhMmVcXHUwYTNlXFx1MGEzMlxcdTBhMTVcXHUwYTQwIFxcdTBhMjZcXHUwYTQwIFxcdTBhMWJcXHUwYTNlXFx1MGEyYVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTBhMmFcXHUwYTMwXFx1MGEyNlxcdTBhNDdcXHUwYTI2XFx1MGEzZVxcdTBhMzBcXHUwYTQwIFxcdTBhMmNcXHUwYTNlXFx1MGEzMFxcdTBhNDcgXFx1MGEyOFxcdTBhNDBcXHUwYTI0XFx1MGE0MFwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlxcdTBhMmFcXHUwYTMwXFx1MGEyNlxcdTBhNDdcXHUwYTI2XFx1MGEzZVxcdTBhMzBcXHUwYTQwIFxcdTBhMTVcXHUwYTQ3XFx1MGEwMlxcdTBhMjZcXHUwYTMwXCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHUwYTE1XFx1MGE0MVxcdTBhNzFcXHUwYTE1XFx1MGE0MCBcXHUwYTI4XFx1MGE0MFxcdTBhMjRcXHUwYTQwXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCInXFx1MGEyZlxcdTBhM2VcXHUwYTI2XFx1MGEzZVxcdTBhMDInIFxcdTBhMjZcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEzOFxcdTBhNDdcXHUwYTM1XFx1MGEzZSBcXHUwYTI2XFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMmVcXHUwYTI2XFx1MGEzZVxcdTBhMDJcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MGEzNVxcdTBhM2ZcXHUwYTA5XFx1MGEwMlxcdTBhMjRcXHUwYTJjXFx1MGE3MVxcdTBhMjcgXFx1MGEzMFxcdTBhMWFcXHUwYTI4XFx1MGEzZVxcdTBhMjRcXHUwYTJlXFx1MGExNSBcXHUwYTE0XFx1MGExY1xcdTBhM2NcXHUwYTNlXFx1MGEzMCBcXHUwYTI2XFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMmVcXHUwYTI2XFx1MGEzZVxcdTBhMDJcIixDT01NVU5JVFlfVE9TOlwiXFx1MGEyZFxcdTBhM2VcXHUwYTA4XFx1MGExYVxcdTBhM2VcXHUwYTMwXFx1MGExNSBHZW9maWx0ZXIgXFx1MGEyNlxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTJlXFx1MGEyNlxcdTBhM2VcXHUwYTAyXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1MGEyNlxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTJlXFx1MGEyNlxcdTBhM2VcXHUwYTAyXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiXFx1MGEyNFxcdTBhNDFcXHUwYTM5XFx1MGEzZVxcdTBhMjFcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEyYVxcdTBhMzBcXHUwYTI2XFx1MGE0N1xcdTBhMjZcXHUwYTNlXFx1MGEzMFxcdTBhNDAgXFx1MGExYVxcdTBhNGJcXHUwYTIzXFx1MGEzZVxcdTBhMDJcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHUwYTMyXFx1MGEzZVxcdTBhMWNcXHUwYTNjXFx1MGEyZVxcdTBhNDAgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjXCIsY29udGVudDpbJ1xcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWYgXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMzhcXHUwYTcwXFx1MGExYVxcdTBhM2VcXHUwYTMyXFx1MGEzZlxcdTBhMjQgXFx1MGExNVxcdTBhMzBcXHUwYTI4IFxcdTBhMzVcXHUwYTNmXFx1MGE3MVxcdTBhMWEgXFx1MGEyZVxcdTBhMjZcXHUwYTI2IFxcdTBhMTVcXHUwYTMwXFx1MGEyOCBcXHUwYTMyXFx1MGEwOCA8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGEwN1xcdTBhMjhcXHUwYTRkXFx1MGEzOVxcdTBhM2VcXHUwYTAyIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI2XFx1MGE0MCBcXHUwYTM1XFx1MGEzMFxcdTBhMjRcXHUwYTRiXFx1MGEwMiBcXHUwYTE1XFx1MGEzMFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTNlXFx1MGEwMlxcdTA5NjQ8L2E+IFxcdTBhMTVcXHUwYTNmXFx1MGEwOVxcdTBhMDJcXHUwYTE1XFx1MGEzZiBcXHUwYTA3XFx1MGEzOSBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEzMlxcdTBhM2VcXHUwYTFjXFx1MGEzY1xcdTBhMmVcXHUwYTQwIFxcdTBhMzlcXHUwYTI4LCBcXHUwYTI0XFx1MGE0MVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTA5XFx1MGEyOFxcdTBhNGRcXHUwYTM5XFx1MGEzZVxcdTBhMDIgXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMmNcXHUwYTcwXFx1MGEyNiBcXHUwYTI4XFx1MGEzOVxcdTBhNDBcXHUwYTAyIFxcdTBhMTVcXHUwYTMwIFxcdTBhMzhcXHUwYTE1XFx1MGEyNlxcdTBhNDdcXHUwOTY0J119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlxcdTBhMjRcXHUwYTMwXFx1MGExY1xcdTBhNDBcXHUwYTM5XFx1MGEzZVxcdTBhMDJcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGEwN1xcdTBhMzlcXHUwYTI4XFx1MGEzZVxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyPC9hPiBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTI0XFx1MGEzMFxcdTBhMWNcXHUwYTQwXFx1MGEzOVxcdTBhM2VcXHUwYTAyIFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTJmXFx1MGEzZVxcdTBhMjYgXFx1MGEzMFxcdTBhNzFcXHUwYTE2XFx1MGEyMyBcXHUwYTMyXFx1MGEwOCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEzOFxcdTBhM2VcXHUwYTIxXFx1MGE0MCBcXHUwYTM1XFx1MGE0OFxcdTBhNzFcXHUwYTJjXFx1MGEzOFxcdTBhM2VcXHUwYTA4XFx1MGExZiBcXHUwYTA5XFx1MGE3MVxcdTBhMjRcXHUwYTQ3IFxcdTBhMjRcXHUwYTQxXFx1MGEzOVxcdTBhM2VcXHUwYTIxXFx1MGE0NyBcXHUwYTA1XFx1MGEyOFxcdTBhNDFcXHUwYTJkXFx1MGEzNSBcXHUwYTM1XFx1MGEzZlxcdTBhNzFcXHUwYTFhIFxcdTBhMzhcXHUwYTQxXFx1MGEyN1xcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwXFx1MGEyOCBcXHUwYTMyXFx1MGEwOCBcXHUwYTE1XFx1MGEzMFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTNlXFx1MGEwMlxcdTA5NjQnXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGEyNlxcdTBhMzBcXHUwYTM2XFx1MGEyOCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEzNVxcdTBhM2ZcXHUwYTM2XFx1MGEzMlxcdTBhNDdcXHUwYTM2XFx1MGEyM1wiLGNvbnRlbnQ6WydcXHUwYTI0XFx1MGE0MVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQwIFxcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWYgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGExNVxcdTBhM2ZcXHUwYTM1XFx1MGE0N1xcdTBhMDIgXFx1MGExNVxcdTBhMzBcXHUwYTI2XFx1MGE0NyBcXHUwYTM5XFx1MGE0YiBcXHUwYTA5XFx1MGEzOCBcXHUwYTJjXFx1MGEzZVxcdTBhMzBcXHUwYTQ3IFxcdTBhMWNcXHUwYTNlXFx1MGEyM1xcdTBhMTVcXHUwYTNlXFx1MGEzMFxcdTBhNDAgXFx1MGEwN1xcdTBhMTVcXHUwYTcxXFx1MGEyNFxcdTBhMzAgXFx1MGExNVxcdTBhMzBcXHUwYTI4IFxcdTBhMzJcXHUwYTA4LCBcXHUwYTM4XFx1MGEzZVxcdTBhMDhcXHUwYTFmIFxcdTBhMjZcXHUwYTQ3IFxcdTBhMmFcXHUwYTRkXFx1MGEzMFxcdTBhMjZcXHUwYTMwXFx1MGEzNlxcdTBhMjggXFx1MGEyNlxcdTBhNDAgXFx1MGEyOFxcdTBhM2ZcXHUwYTE3XFx1MGEzMFxcdTBhM2VcXHUwYTI4XFx1MGE0MCBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzMlxcdTBhMDgsIFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTA2XFx1MGEyYVxcdTBhMjNcXHUwYTQwIFxcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWYgXFx1MGEyNlxcdTBhNDcgXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGEyNlxcdTBhMzBcXHUwYTM2XFx1MGEyOCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEyNFxcdTBhNDFcXHUwYTM5XFx1MGEzZVxcdTBhMjFcXHUwYTQ3IFxcdTBhMDVcXHUwYTI4XFx1MGE0MVxcdTBhMmRcXHUwYTM1IFxcdTBhMzVcXHUwYTNmXFx1MGE3MVxcdTBhMWEgXFx1MGEzOFxcdTBhNDFcXHUwYTI3XFx1MGEzZVxcdTBhMzAgXFx1MGExNVxcdTBhMzBcXHUwYTI4IFxcdTBhMzJcXHUwYTA4IDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5cXHUwYTA1XFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMDdcXHUwYTM5XFx1MGEyOFxcdTBhM2VcXHUwYTAyIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI2XFx1MGE0MCBcXHUwYTM1XFx1MGEzMFxcdTBhMjRcXHUwYTRiXFx1MGEwMiBcXHUwYTE1XFx1MGEzMFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTNlXFx1MGEwMlxcdTA5NjQ8L2E+J119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJcXHUwYTJlXFx1MGEzZVxcdTBhMzBcXHUwYTE1XFx1MGExZlxcdTBhM2ZcXHUwYTcwXFx1MGExN1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGEwN1xcdTBhMzlcXHUwYTI4XFx1MGEzZVxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyPC9hPiBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMjJcXHUwYTQxXFx1MGE3MVxcdTBhMTVcXHUwYTM1XFx1MGE0N1xcdTBhMDIgXFx1MGEwN1xcdTBhMzZcXHUwYTI0XFx1MGEzZlxcdTBhMzlcXHUwYTNlXFx1MGEzMCBcXHUwYTI2XFx1MGEzZlxcdTBhMTZcXHUwYTNlXFx1MGEwOVxcdTBhMjMgXFx1MGEzMlxcdTBhMDggXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzhcXHUwYTNlXFx1MGEyMVxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTA3XFx1MGEzNlxcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwXFx1MGEyY1xcdTBhM2VcXHUwYTViXFx1MGE0MCBcXHUwYTJlXFx1MGE0MVxcdTBhMzlcXHUwYTNmXFx1MGE3MFxcdTBhMmVcXHUwYTNlXFx1MGEwMiBcXHUwYTI2XFx1MGE0MCBcXHUwYTE1XFx1MGEzZVxcdTBhMmVcXHUwYTJmXFx1MGEzZVxcdTBhMmNcXHUwYTQwIFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTJlXFx1MGEzZVxcdTBhMmFcXHUwYTIzIFxcdTBhMzJcXHUwYTA4IFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyXFx1MDk2NCBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQ3IFxcdTBhMjRcXHUwYTQwXFx1MGExY1xcdTBhNDAtXFx1MGEyN1xcdTBhM2ZcXHUwYTMwIFxcdTBhMjZcXHUwYTQ3IFxcdTBhMDdcXHUwYTM4XFx1MGEzY1xcdTBhMjRcXHUwYTNmXFx1MGEzOVxcdTBhM2VcXHUwYTMwIFxcdTBhMmRcXHUwYTNlXFx1MGEwOFxcdTBhMzVcXHUwYTNlXFx1MGEzMiBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTMwXFx1MGE0MVxcdTBhMWFcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGEwNVxcdTBhMjhcXHUwYTQxXFx1MGEzOFxcdTBhM2VcXHUwYTMwIFxcdTBhMDdcXHUwYTcxXFx1MGExNSBcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTRiXFx1MGEyYlxcdTBhM2VcXHUwYTA4XFx1MGEzMiBcXHUwYTJjXFx1MGEyM1xcdTBhM2VcXHUwYTA5XFx1MGEyMyBcXHUwYTMyXFx1MGEwOCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEyNlxcdTBhNDJcXHUwYTFjXFx1MGE0MFxcdTBhMDZcXHUwYTAyIFxcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWZcXHUwYTNlXFx1MGEwMiBcXHUwYTM1XFx1MGEzZlxcdTBhNzFcXHUwYTFhIFxcdTBhMjJcXHUwYTQxXFx1MGE3MVxcdTBhMTVcXHUwYTM1XFx1MGE0N1xcdTBhMDIgXFx1MGEwN1xcdTBhMzZcXHUwYTI0XFx1MGEzZlxcdTBhMzlcXHUwYTNlXFx1MGEzMCBcXHUwYTI2XFx1MGEzZlxcdTBhMTZcXHUwYTNlXFx1MGEwOVxcdTBhMjMgXFx1MGEzMlxcdTBhMDggXFx1MGEwN1xcdTBhMzlcXHUwYTI4XFx1MGEzZVxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTMwIFxcdTBhMzhcXHUwYTE1XFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhMjhcXHUwOTY0J119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwiXFx1MGEyNFxcdTBhNDBcXHUwYTFjXFx1MGE0MC1cXHUwYTI3XFx1MGEzZlxcdTBhMzAgXFx1MGEyNlxcdTBhNDcgXFx1MGEwN1xcdTBhMzZcXHUwYTI0XFx1MGEzZlxcdTBhMzlcXHUwYTNlXFx1MGEzMFxcdTBhMmNcXHUwYTNlXFx1MGE1YlxcdTBhNDAgXFx1MGEyZFxcdTBhM2VcXHUwYTA4XFx1MGEzNVxcdTBhM2VcXHUwYTMyXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiXFx1MGEyNFxcdTBhNDBcXHUwYTFjXFx1MGE0MC1cXHUwYTI3XFx1MGEzZlxcdTBhMzAgXFx1MGEyNlxcdTBhNDcgXFx1MGEwN1xcdTBhMzZcXHUwYTI0XFx1MGEzZlxcdTBhMzlcXHUwYTNlXFx1MGEzMFxcdTBhMmNcXHUwYTNlXFx1MGE1YlxcdTBhNDAgXFx1MGEyZFxcdTBhM2VcXHUwYTA4XFx1MGEzNVxcdTBhM2VcXHUwYTMyOlwiLEVmZmVjdGl2ZURhdGU6XCJcXHUwYTJhXFx1MGE0ZFxcdTBhMzBcXHUwYTJkXFx1MGEzZVxcdTBhMzVcXHUwYTQwIFxcdTBhMmVcXHUwYTNmXFx1MGEyNFxcdTBhNDA6IDE1IFxcdTBhMWNcXHUwYTI4XFx1MGEzNVxcdTBhMzBcXHUwYTQwLCAyMDE5XCIsQm9keTpbXCJcXHUwYTA2XFx1MGEyYVxcdTBhMjNcXHUwYTQ3IFxcdTBhMmNcXHUwYTRkXFx1MGEzMFxcdTBhM2VcXHUwYTBhXFx1MGE1YlxcdTBhMzAgXFx1MGExY1xcdTBhM2VcXHUwYTAyIFxcdTBhMjFcXHUwYTQwXFx1MGEzNVxcdTBhM2VcXHUwYTA4XFx1MGEzOCBcXHUwYTMwXFx1MGEzZVxcdTBhMzlcXHUwYTQwXFx1MGEwMiBcXHUwYTE1XFx1MGE0MVxcdTBhNzFcXHUwYTE1XFx1MGE0MFxcdTBhNWIgXFx1MGEyNlxcdTBhM2UgXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGEyY1xcdTBhNzBcXHUwYTI3XFx1MGEyOCBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMDdcXHUwYTMyXFx1MGEzZVxcdTBhMzVcXHUwYTNlLCBcXHUwYTI0XFx1MGE0MVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTA2XFx1MGEyYVxcdTBhMjNcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGExNVxcdTBhNDFcXHUwYTcxXFx1MGExNVxcdTBhNDAgXFx1MGEzOFxcdTBhNDhcXHUwYTFmXFx1MGEzZlxcdTBhNzBcXHUwYTE3XFx1MGEzZVxcdTBhMDIgXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMzlcXHUwYTQ3XFx1MGEyMFxcdTBhM2VcXHUwYTAyIFxcdTBhMmNcXHUwYTI2XFx1MGEzMiBcXHUwYTM4XFx1MGExNVxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTRiXFx1MDk2NCBcXHUwYTE1XFx1MGEzZlxcdTBhMzBcXHUwYTJhXFx1MGEzZSBcXHUwYTE1XFx1MGEzMFxcdTBhMTVcXHUwYTQ3IFxcdTBhMjhcXHUwYTRiXFx1MGExZiBcXHUwYTE1XFx1MGEzMFxcdTBhNGIgXFx1MGExNVxcdTBhM2YgXFx1MGEzOFxcdTBhM2VcXHUwYTIxXFx1MGE0MCBcXHUwYTM4XFx1MGEzZVxcdTBhMDhcXHUwYTFmIFxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTFhXFx1MGEzMlxcdTBhM2VcXHUwYTA5XFx1MGEyMyBcXHUwYTMyXFx1MGEwOCBcXHUwYTE1XFx1MGE0MVxcdTBhMWQgXFx1MGExNVxcdTBhNDFcXHUwYTcxXFx1MGExNVxcdTBhNDBcXHUwYTViIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzJcXHUwYTRiXFx1MGE1YyBcXHUwYTJhXFx1MGE0OFxcdTBhMDJcXHUwYTI2XFx1MGE0MCBcXHUwYTM5XFx1MGE0OCBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEwOVxcdTBhMzlcXHUwYTI4XFx1MGEzZVxcdTBhMDIgXFx1MGEyOFxcdTBhNDJcXHUwYTcwIFxcdTBhMDdcXHUwYTM5XFx1MGEyOFxcdTBhM2VcXHUwYTAyIFxcdTBhMzhcXHUwYTQ4XFx1MGExZlxcdTBhM2ZcXHUwYTcwXFx1MGExN1xcdTBhM2VcXHUwYTAyIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTMwXFx1MGExNVxcdTBhNDcgXFx1MGEyY1xcdTBhMzJcXHUwYTRjXFx1MGExNSBcXHUwYTI4XFx1MGEzOVxcdTBhNDBcXHUwYTAyIFxcdTBhMTVcXHUwYTQwXFx1MGEyNFxcdTBhM2UgXFx1MGExY1xcdTBhM2UgXFx1MGEzOFxcdTBhMTVcXHUwYTI2XFx1MGEzZVxcdTA5NjRcIl0sVGl0bGU6XCJcXHUwYTE1XFx1MGE0MVxcdTBhNzFcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGE0OFxcdTBhMWZcXHUwYTNmXFx1MGE3MFxcdTBhMTdcXHUwYTNlXFx1MGEwMlwiLENPT0tJRV9QT1BVUDonXFx1MGEzOVxcdTBhNDhcXHUwYTMyXFx1MGE0YiEgXFx1MGEwNVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDcgXFx1MGEyY1xcdTBhNGRcXHUwYTMwXFx1MGEzZVxcdTBhMGFcXHUwYTFjXFx1MGEzY1xcdTBhM2ZcXHUwYTcwXFx1MGExNyBcXHUwYTA1XFx1MGEyOFxcdTBhNDFcXHUwYTJkXFx1MGEzNSBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGExYVxcdTBhMzJcXHUwYTNlXFx1MGEwOVxcdTBhMjMgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzhcXHUwYTQxXFx1MGEyN1xcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwXFx1MGEyOCwgXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGEyNlxcdTBhMzBcXHUwYTM2XFx1MGEyOCBcXHUwYTI2XFx1MGE0MCBcXHUwYTI4XFx1MGEzZlxcdTBhMTdcXHUwYTMwXFx1MGEzZVxcdTBhMjhcXHUwYTQwIFxcdTBhMTVcXHUwYTMwXFx1MGEyOCwgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzVcXHUwYTNmXFx1MGExN1xcdTBhM2ZcXHUwYTA2XFx1MGEyYVxcdTBhMjggXFx1MGEwOVxcdTBhMjZcXHUwYTQ3XFx1MGEzNlxcdTBhM2VcXHUwYTAyIFxcdTBhMzJcXHUwYTA4IFxcdTBhMmVcXHUwYTI2XFx1MGEyNiBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzNVxcdTBhM2VcXHUwYTM4XFx1MGEyNFxcdTBhNDcgXFx1MGEwN1xcdTBhMzggXFx1MGEzNVxcdTBhNDhcXHUwYTcxXFx1MGEyY1xcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWYgXFwnXFx1MGEyNFxcdTBhNDcgXFx1MGEyNFxcdTBhNDBcXHUwYTFjXFx1MGE0MC1cXHUwYTI3XFx1MGEzZlxcdTBhMzAgXFx1MGEyNlxcdTBhNDcgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMzhcXHUwYTJlXFx1MGE0N1xcdTBhMjQsIFxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTM4XFx1MGEyZVxcdTBhM2VcXHUwYTI4IFxcdTBhMjRcXHUwYTE1XFx1MGEyOFxcdTBhNDBcXHUwYTE1XFx1MGEzZVxcdTBhMDIgKFwiXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjXCIpIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyXFx1MDk2NCBcXHUwYTA1XFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI2XFx1MGE0MCBcXHUwYTM1XFx1MGEzMFxcdTBhMjRcXHUwYTRiXFx1MGEwMiBcXHUwYTE1XFx1MGEzZlxcdTBhMzVcXHUwYTQ3XFx1MGEwMiBcXHUwYTE1XFx1MGEzMFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTNlXFx1MGEwMiBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEyNFxcdTBhNDFcXHUwYTM5XFx1MGEzZVxcdTBhMjFcXHUwYTQ3IFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDAgXFx1MGEzOFxcdTBhMmNcXHUwYTcwXFx1MGEyN1xcdTBhNDAgXFx1MGEzNVxcdTBhM2ZcXHUwYTE1XFx1MGEzMlxcdTBhMmFcXHUwYTNlXFx1MGEwMiBcXHUwYTJjXFx1MGEzZVxcdTBhMzBcXHUwYTQ3IFxcdTBhMzlcXHUwYTRiXFx1MGEzMCBcXHUwYTFjXFx1MGEzZVxcdTBhMjNcXHUwYTI4IFxcdTBhMzJcXHUwYTA4LCBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwIFxcdTBhMjhcXHUwYTQwXFx1MGEyNFxcdTBhNDA8L2E+IFxcdTBhMjZcXHUwYTQ3XFx1MGExNlxcdTBhNGIhIFxcdTBhMzlcXHUwYTQ3XFx1MGEyMFxcdTBhM2VcXHUwYTAyIFwiXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMzhcXHUwYTM1XFx1MGE0MFxcdTBhMTVcXHUwYTNlXFx1MGEzMCBcXHUwYTE1XFx1MGEzMFxcdTBhNGJcIiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTE1XFx1MGEzMlxcdTBhM2ZcXHUwYTcxXFx1MGExNSBcXHUwYTE1XFx1MGEzMFxcdTBhMTVcXHUwYTQ3LCBcXHUwYTI0XFx1MGE0MVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTM4XFx1MGEzZVxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTE3XFx1MGE0OFxcdTBhMzAtXFx1MGExY1xcdTBhM2NcXHUwYTMwXFx1MGE0MlxcdTBhMzBcXHUwYTQwIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTM4XFx1MGEyZVxcdTBhNDdcXHUwYTI0IFxcdTBhMzhcXHUwYTNlXFx1MGEzMFxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGExNVxcdTBhMzBcXHUwYTI4IFxcdTBhMzJcXHUwYTA4IFxcdTBhMzhcXHUwYTM5XFx1MGEzZlxcdTBhMmVcXHUwYTI0XFx1MGE0MCBcXHUwYTI2XFx1MGE0NyBcXHUwYTMwXFx1MGEzOVxcdTBhNDcgXFx1MGEzOVxcdTBhNGJcXHUwOTY0IFxcdTBhMjRcXHUwYTQxXFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMzhcXHUwYTcxXFx1MGExY1xcdTBhNDcgXFx1MGEyYVxcdTBhM2VcXHUwYTM4XFx1MGE0NyBcIlhcIiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTE1XFx1MGEzMlxcdTBhM2ZcXHUwYTcxXFx1MGExNSBcXHUwYTE1XFx1MGEzMFxcdTBhMTVcXHUwYTQ3IFxcdTBhMzhcXHUwYTNlXFx1MGEzMFxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTE3XFx1MGE0OFxcdTBhMzAtXFx1MGExY1xcdTBhM2NcXHUwYTMwXFx1MGE0MlxcdTBhMzBcXHUwYTQwIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEwNVxcdTBhMzhcXHUwYTM1XFx1MGE0MFxcdTBhMTVcXHUwYTNlXFx1MGEzMCBcXHUwYTE1XFx1MGEzMCBcXHUwYTM4XFx1MGExNVxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTRiXFx1MDk2NCBcXHUwYTA2XFx1MGEyYVxcdTBhMjNcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGE0OFxcdTBhMWZcXHUwYTNmXFx1MGE3MFxcdTBhMTdcXHUwYTNlXFx1MGEwMiBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEyY1xcdTBhMjZcXHUwYTMyXFx1MGEyMyBcXHUwYTMyXFx1MGEwOCBcIlxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDAgXFx1MGEzOFxcdTBhNDhcXHUwYTFmXFx1MGEzZlxcdTBhNzBcXHUwYTE3XFx1MGExY1xcdTBhM2NcIiBcXHUwYTFjXFx1MGEzZVxcdTBhMDIgXFx1MGEzOFxcdTBhM2VcXHUwYTIxXFx1MGE0MCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTI4XFx1MGE0MFxcdTBhMjRcXHUwYTQwPC9hPiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTFjXFx1MGEzZVxcdTBhMTMgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMTVcXHUwYTNmXFx1MGEzOFxcdTBhNDcgXFx1MGEzNVxcdTBhNDAgXFx1MGEzOFxcdTBhMmVcXHUwYTQ3XFx1MGEwMiBcXHUwYTA2XFx1MGEyYVxcdTBhMjNcXHUwYTQwIFxcdTBhMzhcXHUwYTM5XFx1MGEzZlxcdTBhMmVcXHUwYTI0XFx1MGE0MCBcXHUwYTM1XFx1MGEzZVxcdTBhMmFcXHUwYTM4IFxcdTBhMzJcXHUwYTQ4IFxcdTBhMzJcXHUwYTEzXFx1MDk2NCcsQ09PS0lFX1BPUFVQX0VVOidcXHUwYTM5XFx1MGE0OFxcdTBhMzJcXHUwYTRiISBcXHUwYTI0XFx1MGE0MVxcdTBhMzlcXHUwYTNlXFx1MGEyMVxcdTBhNDcgXFx1MGEyY1xcdTBhNGRcXHUwYTMwXFx1MGEzZVxcdTBhMGFcXHUwYTFjXFx1MGEzY1xcdTBhM2ZcXHUwYTcwXFx1MGExNyBcXHUwYTA1XFx1MGEyOFxcdTBhNDFcXHUwYTJkXFx1MGEzNSBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGExYVxcdTBhMzJcXHUwYTNlXFx1MGEwOVxcdTBhMjMgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzhcXHUwYTQxXFx1MGEyN1xcdTBhM2VcXHUwYTMwIFxcdTBhMTVcXHUwYTMwXFx1MGEyOCwgXFx1MGEyYVxcdTBhNGRcXHUwYTMwXFx1MGEyNlxcdTBhMzBcXHUwYTM2XFx1MGEyOCBcXHUwYTI2XFx1MGE0MCBcXHUwYTI4XFx1MGEzZlxcdTBhMTdcXHUwYTMwXFx1MGEzZVxcdTBhMjhcXHUwYTQwIFxcdTBhMTVcXHUwYTMwXFx1MGEyOCwgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMzVcXHUwYTNmXFx1MGExN1xcdTBhM2ZcXHUwYTA2XFx1MGEyYVxcdTBhMjggXFx1MGEwOVxcdTBhMjZcXHUwYTQ3XFx1MGEzNlxcdTBhM2VcXHUwYTAyIFxcdTBhMzJcXHUwYTA4IFxcdTBhMmVcXHUwYTI2XFx1MGEyNiBcXHUwYTE1XFx1MGEzMFxcdTBhMjggXFx1MGEzNVxcdTBhM2VcXHUwYTM4XFx1MGEyNFxcdTBhNDcgXFx1MGEwN1xcdTBhMzggXFx1MGEzNVxcdTBhNDhcXHUwYTcxXFx1MGEyY1xcdTBhMzhcXHUwYTNlXFx1MGEwOFxcdTBhMWYgXFwnXFx1MGEyNFxcdTBhNDcgXFx1MGEyNFxcdTBhNDBcXHUwYTFjXFx1MGE0MC1cXHUwYTI3XFx1MGEzZlxcdTBhMzAgXFx1MGEyNlxcdTBhNDcgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMzhcXHUwYTJlXFx1MGE0N1xcdTBhMjQsIFxcdTBhMDVcXHUwYTM4XFx1MGE0MFxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMDVcXHUwYTI0XFx1MGE0NyBcXHUwYTM4XFx1MGEyZVxcdTBhM2VcXHUwYTI4IFxcdTBhMjRcXHUwYTE1XFx1MGEyOFxcdTBhNDBcXHUwYTE1XFx1MGEzZVxcdTBhMDIgKFwiXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjXCIpIFxcdTBhMjZcXHUwYTQwIFxcdTBhMzVcXHUwYTMwXFx1MGEyNFxcdTBhNGJcXHUwYTAyIFxcdTBhMTVcXHUwYTMwXFx1MGEyNlxcdTBhNDcgXFx1MGEzOVxcdTBhM2VcXHUwYTAyXFx1MDk2NCBcXHUwYTA1XFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI2XFx1MGE0MCBcXHUwYTM1XFx1MGEzMFxcdTBhMjRcXHUwYTRiXFx1MGEwMiBcXHUwYTE1XFx1MGEzZlxcdTBhMzVcXHUwYTQ3XFx1MGEwMiBcXHUwYTE1XFx1MGEzMFxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTNlXFx1MGEwMiBcXHUwYTA1XFx1MGEyNFxcdTBhNDcgXFx1MGEyNFxcdTBhNDFcXHUwYTM5XFx1MGEzZVxcdTBhMjFcXHUwYTQ3IFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDAgXFx1MGEzOFxcdTBhMmNcXHUwYTcwXFx1MGEyN1xcdTBhNDAgXFx1MGEzNVxcdTBhM2ZcXHUwYTE1XFx1MGEzMlxcdTBhMmFcXHUwYTNlXFx1MGEwMiBcXHUwYTJjXFx1MGEzZVxcdTBhMzBcXHUwYTQ3IFxcdTBhMzlcXHUwYTRiXFx1MGEzMCBcXHUwYTFjXFx1MGEzZVxcdTBhMjNcXHUwYTI4IFxcdTBhMzJcXHUwYTA4LCBcXHUwYTM4XFx1MGEzZVxcdTBhMjFcXHUwYTQwIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwIFxcdTBhMjhcXHUwYTQwXFx1MGEyNFxcdTBhNDA8L2E+IFxcdTBhMjZcXHUwYTQ3XFx1MGExNlxcdTBhNGIhIFxcdTBhMzlcXHUwYTQ3XFx1MGEyMFxcdTBhM2VcXHUwYTAyIFwiXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMzhcXHUwYTM1XFx1MGE0MFxcdTBhMTVcXHUwYTNlXFx1MGEzMCBcXHUwYTE1XFx1MGEzMFxcdTBhNGJcIiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTE1XFx1MGEzMlxcdTBhM2ZcXHUwYTcxXFx1MGExNSBcXHUwYTE1XFx1MGEzMFxcdTBhMTVcXHUwYTQ3LCBcXHUwYTI0XFx1MGE0MVxcdTBhMzhcXHUwYTQwXFx1MGEwMiBcXHUwYTM4XFx1MGEzZVxcdTBhMjhcXHUwYTQyXFx1MGE3MCBcXHUwYTE3XFx1MGE0OFxcdTBhMzAtXFx1MGExY1xcdTBhM2NcXHUwYTMwXFx1MGE0MlxcdTBhMzBcXHUwYTQwIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTM4XFx1MGEyZVxcdTBhNDdcXHUwYTI0IFxcdTBhMzhcXHUwYTNlXFx1MGEzMFxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwXFx1MGExY1xcdTBhM2MgXFx1MGEyNlxcdTBhNDAgXFx1MGEzNVxcdTBhMzBcXHUwYTI0XFx1MGE0YlxcdTBhMDIgXFx1MGExNVxcdTBhMzBcXHUwYTI4IFxcdTBhMzJcXHUwYTA4IFxcdTBhMzhcXHUwYTM5XFx1MGEzZlxcdTBhMmVcXHUwYTI0XFx1MGE0MCBcXHUwYTI2XFx1MGE0NyBcXHUwYTMwXFx1MGEzOVxcdTBhNDcgXFx1MGEzOVxcdTBhNGJcXHUwOTY0IFxcdTBhMjRcXHUwYTQxXFx1MGEzOFxcdTBhNDBcXHUwYTAyIFxcdTBhMzhcXHUwYTcxXFx1MGExY1xcdTBhNDcgXFx1MGEyYVxcdTBhM2VcXHUwYTM4XFx1MGE0NyBcIlhcIiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTE1XFx1MGEzMlxcdTBhM2ZcXHUwYTcxXFx1MGExNSBcXHUwYTE1XFx1MGEzMFxcdTBhMTVcXHUwYTQ3IFxcdTBhMzhcXHUwYTNlXFx1MGEzMFxcdTBhNDBcXHUwYTA2XFx1MGEwMiBcXHUwYTE3XFx1MGE0OFxcdTBhMzAtXFx1MGExY1xcdTBhM2NcXHUwYTMwXFx1MGE0MlxcdTBhMzBcXHUwYTQwIFxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDBcXHUwYTFjXFx1MGEzYyBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEwNVxcdTBhMzhcXHUwYTM1XFx1MGE0MFxcdTBhMTVcXHUwYTNlXFx1MGEzMCBcXHUwYTE1XFx1MGEzMCBcXHUwYTM4XFx1MGExNVxcdTBhMjZcXHUwYTQ3IFxcdTBhMzlcXHUwYTRiXFx1MDk2NCBcXHUwYTA2XFx1MGEyYVxcdTBhMjNcXHUwYTQwXFx1MGEwNlxcdTBhMDIgXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTM4XFx1MGE0OFxcdTBhMWZcXHUwYTNmXFx1MGE3MFxcdTBhMTdcXHUwYTNlXFx1MGEwMiBcXHUwYTI4XFx1MGE0MlxcdTBhNzAgXFx1MGEyY1xcdTBhMjZcXHUwYTMyXFx1MGEyMyBcXHUwYTMyXFx1MGEwOCBcIlxcdTBhMTVcXHUwYTQyXFx1MGExNVxcdTBhNDAgXFx1MGEzOFxcdTBhNDhcXHUwYTFmXFx1MGEzZlxcdTBhNzBcXHUwYTE3XFx1MGExY1xcdTBhM2NcIiBcXHUwYTFjXFx1MGEzZVxcdTBhMDIgXFx1MGEzOFxcdTBhM2VcXHUwYTIxXFx1MGE0MCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MCBcXHUwYTI4XFx1MGE0MFxcdTBhMjRcXHUwYTQwPC9hPiBcXCdcXHUwYTI0XFx1MGE0NyBcXHUwYTFjXFx1MGEzZVxcdTBhMTMgXFx1MGEwNVxcdTBhMjRcXHUwYTQ3IFxcdTBhMTVcXHUwYTNmXFx1MGEzOFxcdTBhNDcgXFx1MGEzNVxcdTBhNDAgXFx1MGEzOFxcdTBhMmVcXHUwYTQ3XFx1MGEwMiBcXHUwYTA2XFx1MGEyYVxcdTBhMjNcXHUwYTQwIFxcdTBhMzhcXHUwYTM5XFx1MGEzZlxcdTBhMmVcXHUwYTI0XFx1MGE0MCBcXHUwYTM1XFx1MGEzZVxcdTBhMmFcXHUwYTM4IFxcdTBhMzJcXHUwYTQ4IFxcdTBhMzJcXHUwYTEzXFx1MDk2NCcsQWdyZWVUZXh0OlwiXFx1MGExNVxcdTBhNDJcXHUwYTE1XFx1MGE0MFxcdTBhMWNcXHUwYTNjIFxcdTBhMzhcXHUwYTM1XFx1MGE0MFxcdTBhMTVcXHUwYTNlXFx1MGEzMCBcXHUwYTE1XFx1MGEzMFxcdTBhNGJcIixTZXR0aW5nc1RleHQ6XCJcXHUwYTE1XFx1MGE0MlxcdTBhMTVcXHUwYTQwIFxcdTBhMzhcXHUwYTQ4XFx1MGExZlxcdTBhM2ZcXHUwYTcwXFx1MGExN1xcdTBhM2VcXHUwYTAyXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHUwYTA5XFx1MGEzMlxcdTBhNzBcXHUwYTE4XFx1MGEyM1xcdTBhM2UgXFx1MGEyNlxcdTBhNDAgXFx1MGEzMFxcdTBhM2ZcXHUwYTJhXFx1MGE0YlxcdTBhMzBcXHUwYTFmIFxcdTBhMTVcXHUwYTMwXFx1MGE0YlwiLFNwb3RsaWdodDpcIlxcdTBhMzhcXHUwYTJhXFx1MGE0Y1xcdTBhMWZcXHUwYTMyXFx1MGEzZVxcdTBhMDhcXHUwYTFmXCJ9LFwicGwtcGxcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJOYSBcXHUwMTdjeXdvXCIsQWRzOlwiUmVrbGFteVwiLENvbXBhbnk6XCJGaXJtYVwiLEhvbWU6XCJTdHJvbmEgZ1xcdTAxNDJcXHhmM3duYVwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIlByYWNhXCIsQ2FyZWVyczpcIkthcmllcmFcIixQcmVzczpcIlByYXNhXCIsTmV3czpcIkFrdHVhbG5vXFx1MDE1YmNpXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlphcHl0YW5pYSBwcmFzb3dlXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIkpcXHUwMTE5enlrXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiUG9iaWVyeiBTbmFwY2hhdGFcIixEb3dubG9hZDpcIlBvYmllcnpcIixLaXQ6XCJaZXN0YXcgbmFyelxcdTAxMTlkemlcIixTdG9yaWVzOlwiU3Rvcmllc1wiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJTa2xlcFwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgbmEgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgbmEgQW5kcm9pZFwiLENvbW11bml0eTpcIlNwb1xcdTAxNDJlY3pub1xcdTAxNWJcXHUwMTA3XCIsU3VwcG9ydDpcIldzcGFyY2llXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiV3l0eWN6bmUgZGxhIHNwb1xcdTAxNDJlY3pub1xcdTAxNWJjaVwiLFwiU2FmZXR5IENlbnRlclwiOlwiQ2VudHJ1bSBiZXpwaWVjemVcXHUwMTQ0c3R3YVwiLFNuYXBjb2RlczpcIlNuYXBrb2R5XCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRyeVwiLENyZWF0ZTpcIkZpbHRyeSBpIG5ha1xcdTAxNDJhZGtpXCIsTWFwOlwiTWFwYVwiLEFkdmVydGlzaW5nOlwiUmVrbGFtYVwiLFwiQnV5IEFkc1wiOlwiS3VwIHJla2xhbVxcdTAxMTlcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJaYXNhZHkgZG90eWN6XFx1MDEwNWNlIHJla2xhbVwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJCaWJsaW90ZWthIHJla2xhbSBwb2xpdHljem55Y2hcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIld5dHljem5lIGRvdHljelxcdTAxMDVjZSBtYXJraVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiWmFzYWR5IHByb21vY2ppXCIsTGVnYWw6XCJJbmZvcm1hY2plIHByYXduZVwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiUmVndWxhbWluIHVzXFx1MDE0MnVnaVwiLEltcHJlc3N1bTpcIkltcHJlc3N1bVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlBvbGl0eWthIHByeXdhdG5vXFx1MDE1YmNpXCIsXCJQcml2YWN5IENlbnRlclwiOlwiQ2VudHJ1bSBvY2hyb255IHByeXdhdG5vXFx1MDE1YmNpXCIsXCJDb29raWUgUG9saWN5XCI6XCJQb2xpdHlrYSBwbGlrXFx4ZjN3IGNvb2tpZXNcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIlJlZ3VsYW1pbiB1c1xcdTAxNDJ1Z2kgTWVtb3JpZXNcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiV2FydW5raSB1XFx1MDE3Y3l0a293YW5pYSBzcGVyc29uYWxpem93YW55Y2ggbmFyelxcdTAxMTlkemkga3JlYXR5d255Y2hcIixDT01NVU5JVFlfVE9TOlwiUmVndWxhbWluIHVzXFx1MDE0MnVnaSBHZW9maWx0ciBzcG9cXHUwMTQyZWN6bm9cXHUwMTViY2lcIixMRU5TX1NUVURJT19UT1M6XCJXYXJ1bmtpIFxcdTAxNWJ3aWFkY3plbmlhIHVzXFx1MDE0MnVnaSBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlR3b2plIHd5Ym9yeSBkb3R5Y3pcXHUwMTA1Y2UgcHJ5d2F0bm9cXHUwMTViY2lcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJOaWV6YlxcdTAxMTlkbmUgcGxpa2kgY29va2llXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+S29yenlzdGFteSB6IHBsaWtcXHhmM3cgY29va2llLDwvYT4gYWJ5IHVzcHJhd25pYVxcdTAxMDcgZHppYVxcdTAxNDJhbmllIHN0cm9ueSBpbnRlcm5ldG93ZWouIFBvbmlld2FcXHUwMTdjIHRlIHBsaWtpIGNvb2tpZSBzXFx1MDEwNSBuaWV6YlxcdTAxMTlkbmUgZG8gamVqIGZ1bmtjam9ub3dhbmlhLCBuaWUgbW9cXHUwMTdjbmEgaWNoIHd5XFx1MDE0MlxcdTAxMDVjenlcXHUwMTA3LiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJQcmVmZXJlbmNqZVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+S29yenlzdGFteSB6IHR5Y2ggcGxpa1xceGYzdyBjb29raWUsPC9hPiBhYnkgemFwYW1pXFx1MDExOXR5d2FcXHUwMTA3IHByZWZlcmVuY2plIHVcXHUwMTdjeXRrb3duaWthIGkgendpXFx1MDExOWtzemFcXHUwMTA3IGZ1bmtjam9uYWxub1xcdTAxNWJcXHUwMTA3IG5hc3plaiB3aXRyeW55LiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJXeWRham5vXFx1MDE1YlxcdTAxMDcgaSBhbmFsaXphIGRhbnljaFwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+S29yenlzdGFteSB6IHR5Y2ggcGxpa1xceGYzdyBjb29raWUsPC9hPiBhYnkgemJpZXJhXFx1MDEwNyBpbmZvcm1hY2plIGRvdHljelxcdTAxMDVjZSB1XFx1MDE3Y3l0a293YW5pYSBuYXN6ZWogc3Ryb255LCBhIHRha1xcdTAxN2NlIG1vbml0b3Jvd2FcXHUwMTA3IGkgcG9wcmF3aWFcXHUwMTA3IHBhcmFtZXRyeSBzdHJvbnksIHp3aVxcdTAxMTlrc3phalxcdTAxMDVjIHd5Z29kXFx1MDExOSB1XFx1MDE3Y3l0a293YW5pYS4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1hcmtldGluZ1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPktvcnp5c3RhbXkgeiB0eWNoIHBsaWtcXHhmM3cgY29va2llLDwvYT4gYWJ5IGRvc3RhcmN6YVxcdTAxMDcgb2Rwb3dpZWRuaWUgcmVrbGFteSBpIG1pZXJ6eVxcdTAxMDcgc2t1dGVjem5vXFx1MDE1YlxcdTAxMDcgbmFzenljaCBrYW1wYW5paSByZWtsYW1vd3ljaC4gTmFzaSB6ZXduXFx1MDExOXRyem5pIHBhcnRuZXJ6eSByZWtsYW1vd2kgbW9nXFx1MDEwNSB3eWtvcnp5c3R5d2FcXHUwMTA3IHRlIHBsaWtpIGNvb2tpZSwgYnkgdHdvcnp5XFx1MDEwNyBwcm9maWwgemFpbnRlcmVzb3dhXFx1MDE0NCB1XFx1MDE3Y3l0a293bmlrYSBpIHd5XFx1MDE1YndpZXRsYVxcdTAxMDcgbXUgc3Rvc293bmUgcmVrbGFteSB3IGlubnljaCB3aXRyeW5hY2guJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwiemV3blxcdTAxMTl0cnpuaSBwYXJ0bmVyenkgcmVrbGFtb3dpXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiWmV3blxcdTAxMTl0cnpuaSBwYXJ0bmVyenkgcmVrbGFtb3dpOlwiLEVmZmVjdGl2ZURhdGU6XCJEYXRhIHdlalxcdTAxNWJjaWEgdyBcXHUwMTdjeWNpZTogMTUgc3R5Y3puaWEgMjAxOSByb2t1XCIsQm9keTpbXCJPcHJcXHhmM2N6IHphcnpcXHUwMTA1ZHphbmlhIHBsaWthbWkgY29va2llIHcgcHJ6ZWdsXFx1MDEwNWRhcmNlIGx1YiB1cnpcXHUwMTA1ZHplbml1IHVcXHUwMTdjeXRrb3duaWsgbW9cXHUwMTdjZSB6bWllbmlcXHUwMTA3IHN3b2plIHVzdGF3aWVuaWEgcGxpa1xceGYzdyBjb29raWUgcG9uaVxcdTAxN2Nlai4gTmFsZVxcdTAxN2N5IHp3clxceGYzY2lcXHUwMTA3IHV3YWdcXHUwMTE5LCBcXHUwMTdjZSBuaWVrdFxceGYzcmUgcGxpa2kgY29va2llIHNcXHUwMTA1IGtvbmllY3puZSBkbyBmdW5rY2pvbm93YW5pYSBuYXN6ZWogc3Ryb255IGkgbmllIG1vXFx1MDE3Y25hIGljaCB6YWJsb2tvd2FcXHUwMTA3IHByenkgdVxcdTAxN2N5Y2l1IHR5Y2ggdXN0YXdpZVxcdTAxNDQuXCJdLFRpdGxlOlwiVXN0YXdpZW5pYSBwbGlrXFx4ZjN3IGNvb2tpZVwiLENPT0tJRV9QT1BVUDonV2l0YWohIE5hIHRlaiBzdHJvbmllIGludGVybmV0b3dlaiBrb3J6eXN0YW15IHogcGxpa1xceGYzdyBjb29raWUgaSBwb2RvYm55Y2ggdGVjaG5vbG9naWkgKFxcdTIwMWVwbGlraSBjb29raWVcXHUyMDFkKSwgdyB0eW0gemV3blxcdTAxMTl0cnpueWNoIHBsaWtcXHhmM3cgY29va2llLCBhYnkgdXNwcmF3bmlhXFx1MDEwNyBkemlhXFx1MDE0MmFuaWUgaSBwcnplZ2xcXHUwMTA1ZGFuaWUgbmFzemVqIHN0cm9ueSwgbW9uaXRvcm93YVxcdTAxMDcgamVqIHBhcmFtZXRyeSwgYSB0YWtcXHUwMTdjZSB3IGNlbGFjaCByZWtsYW1vd3ljaC4gRG93aWVkeiBzaVxcdTAxMTkgd2lcXHUwMTE5Y2VqIG8gbmFzenljaCBwbGlrYWNoIGNvb2tpZSBpIGljaCB1c3Rhd2llbmlhY2ggdyBuYXN6ZWogPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbGl0eWNlIGRvdHljelxcdTAxMDVjZWogcGxpa1xceGYzdyBjb29raWU8L2E+ISBLbGlrYWpcXHUwMTA1YyBwb25pXFx1MDE3Y2VqIHByenljaXNrIFxcdTIwMWVBa2NlcHR1aiBwbGlraSBjb29raWVcXHUyMDFkLCB3eXJhXFx1MDE3Y2FzeiB6Z29kXFx1MDExOSBuYSB3eWtvcnp5c3R5d2FuaWUgd3N6eXN0a2ljaCBwbGlrXFx4ZjN3IGNvb2tpZSwgdyB0eW0gcGxpa1xceGYzdyBjb29raWUgaW5ueWNoIG5pXFx1MDE3YyBuaWV6YlxcdTAxMTlkbmUuIE1vXFx1MDE3Y2VzeiB3eVxcdTAxNDJcXHUwMTA1Y3p5XFx1MDEwNyB3c3p5c3RraWUgbmllaXN0b3RuZSBwbGlraSBjb29raWUsIGtsaWthalxcdTAxMDVjIFxcdTIwMWVYXFx1MjAxZCBwbyBwcmF3ZWogc3Ryb25pZS4gQWJ5IHptaWVuaVxcdTAxMDcgdXN0YXdpZW5pYSBwbGlrXFx4ZjN3IGNvb2tpZSBpIHd5Y29mYVxcdTAxMDcgc3dvalxcdTAxMDUgemdvZFxcdTAxMTksIHcgZG93b2xueW0gbW9tZW5jaWUgcHJ6ZWpkXFx1MDE3YSBkbyBvcGNqaSBcXHUyMDFlVXN0YXdpZW5pYSBwbGlrXFx4ZjN3IGNvb2tpZVxcdTIwMWQgbHViIGRvIG5hc3plaiA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9saXR5a2kgZG90eWN6XFx1MDEwNWNlaiBwbGlrXFx4ZjN3IGNvb2tpZTwvYT4uJyxDT09LSUVfUE9QVVBfRVU6J1dpdGFqISBOYSB0ZWogc3Ryb25pZSBpbnRlcm5ldG93ZWoga29yenlzdGFteSB6IHBsaWtcXHhmM3cgY29va2llIGkgcG9kb2JueWNoIHRlY2hub2xvZ2lpIChcXHUyMDFlcGxpa2kgY29va2llXFx1MjAxZCksIHcgdHltIHpld25cXHUwMTE5dHJ6bnljaCBwbGlrXFx4ZjN3IGNvb2tpZSwgYWJ5IHVzcHJhd25pYVxcdTAxMDcgZHppYVxcdTAxNDJhbmllIGkgcHJ6ZWdsXFx1MDEwNWRhbmllIG5hc3plaiBzdHJvbnksIG1vbml0b3Jvd2FcXHUwMTA3IGplaiBwYXJhbWV0cnksIGEgdGFrXFx1MDE3Y2UgdyBjZWxhY2ggcmVrbGFtb3d5Y2guIERvd2llZHogc2lcXHUwMTE5IHdpXFx1MDExOWNlaiBvIG5hc3p5Y2ggcGxpa2FjaCBjb29raWUgaSBpY2ggdXN0YXdpZW5pYWNoIHcgbmFzemVqIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Qb2xpdHljZSBkb3R5Y3pcXHUwMTA1Y2VqIHBsaWtcXHhmM3cgY29va2llPC9hPiEgS2xpa2FqXFx1MDEwNWMgcG9uaVxcdTAxN2NlaiBwcnp5Y2lzayBcXHUyMDFlQWtjZXB0dWogcGxpa2kgY29va2llXFx1MjAxZCwgd3lyYVxcdTAxN2Nhc3ogemdvZFxcdTAxMTkgbmEgd3lrb3J6eXN0eXdhbmllIHdzenlzdGtpY2ggcGxpa1xceGYzdyBjb29raWUsIHcgdHltIHBsaWtcXHhmM3cgY29va2llIGlubnljaCBuaVxcdTAxN2MgbmllemJcXHUwMTE5ZG5lLiBNb1xcdTAxN2Nlc3ogd3lcXHUwMTQyXFx1MDEwNWN6eVxcdTAxMDcgd3N6eXN0a2llIG5pZWlzdG90bmUgcGxpa2kgY29va2llLCBrbGlrYWpcXHUwMTA1YyBcXHUyMDFlWFxcdTIwMWQgcG8gcHJhd2VqIHN0cm9uaWUuIEFieSB6bWllbmlcXHUwMTA3IHVzdGF3aWVuaWEgcGxpa1xceGYzdyBjb29raWUgaSB3eWNvZmFcXHUwMTA3IHN3b2pcXHUwMTA1IHpnb2RcXHUwMTE5LCB3IGRvd29sbnltIG1vbWVuY2llIHByemVqZFxcdTAxN2EgZG8gb3BjamkgXFx1MjAxZVVzdGF3aWVuaWEgcGxpa1xceGYzdyBjb29raWVcXHUyMDFkIGx1YiBkbyBuYXN6ZWogPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbGl0eWtpIGRvdHljelxcdTAxMDVjZWogcGxpa1xceGYzdyBjb29raWU8L2E+LicsQWdyZWVUZXh0OlwiQWtjZXB0dWogcGxpa2kgY29va2llXCIsU2V0dGluZ3NUZXh0OlwiVXN0YXdpZW5pYSBwbGlrXFx4ZjN3IGNvb2tpZVwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiWmdcXHUwMTQyb1xcdTAxNWIgbmFydXN6ZW5pZVwiLFNwb3RsaWdodDpcIlBvbGVjYW5lXCJ9LFwicHQtYnJcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJBbyBWaXZvXCIsQWRzOlwiQW5cXHhmYW5jaW9zXCIsQ29tcGFueTpcIkVtcHJlc2FcIixIb21lOlwiUFxceGUxZ2luYSBpbmljaWFsXCIsQmxvZzpcIkJsb2dcIixKb2JzOlwiRW1wcmVnb3NcIixDYXJlZXJzOlwiQ2FycmVpcmFzXCIsUHJlc3M6XCJJbXByZW5zYVwiLE5ld3M6XCJOb3RcXHhlZGNpYXNcIixcIlByZXNzIElucXVpcmllc1wiOlwiQXNzZXNzb3JpYSBkZSBJbXByZW5zYVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJJZGlvbWFcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJCYWl4YXIgbyBTbmFwY2hhdFwiLERvd25sb2FkOlwiQmFpeGFyXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIkhpc3RcXHhmM3JpYXNcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiTG9qYVwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgcGFyYSBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBwYXJhIEFuZHJvaWRcIixDb21tdW5pdHk6XCJDb211bmlkYWRlXCIsU3VwcG9ydDpcIlN1cG9ydGVcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJEaXJldHJpemVzIENvbXVuaXRcXHhlMXJpYXNcIixcIlNhZmV0eSBDZW50ZXJcIjpcIkNlbnRybyBkZSBTZWd1cmFuXFx4ZTdhXCIsU25hcGNvZGVzOlwiU25hcGNvZGVzXCIsR2VvZmlsdGVyczpcIkZpbHRyb3MgR2VvZ3JcXHhlMWZpY29zXCIsQ3JlYXRlOlwiRmlsdHJvcyBlIExlbnRlc1wiLE1hcDpcIk1hcGFcIixBZHZlcnRpc2luZzpcIlB1YmxpY2lkYWRlXCIsXCJCdXkgQWRzXCI6XCJDb21wcmFyIGFuXFx4ZmFuY2lvc1wiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlBvbFxceGVkdGljYXMgZGUgUHVibGljaWRhZGVcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiQmlibGlvdGVjYSBkZSBBblxceGZhbmNpb3MgUG9sXFx4ZWR0aWNvc1wiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiRGlyZXRyaXplcyBkZSBNYXJjYVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUmVncmFzIGRlIFByb21vXFx4ZTdcXHhmNWVzXCIsTGVnYWw6XCJEaXJlaXRvXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJUZXJtb3MgZGUgU2VydmlcXHhlN29cIixJbXByZXNzdW06XCJJbXByZXNzdW1cIixcIlByaXZhY3kgUG9saWN5XCI6XCJQb2xcXHhlZHRpY2EgZGUgUHJpdmFjaWRhZGVcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJDZW50cm8gZGUgUHJpdmFjaWRhZGVcIixcIkNvb2tpZSBQb2xpY3lcIjpcIlBvbFxceGVkdGljYSBkZSBDb29raWVzXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJUZXJtb3MgZGUgU2VydmlcXHhlN28gZGFzIE1lbVxceGYzcmlhc1wiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJUZXJtb3MgZGFzIEZlcnJhbWVudGFzIENyaWF0aXZhcyBQZXJzb25hbGl6YWRhc1wiLENPTU1VTklUWV9UT1M6XCJUZXJtb3MgZG9zIEZpbHRyb3MgR2VvZ3JcXHhlMWZpY29zIENvbXVuaXRcXHhlMXJpb3NcIixMRU5TX1NUVURJT19UT1M6XCJUZXJtb3MgZG8gTGVucyBTdHVkaW9cIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJTdWFzIG9wXFx4ZTdcXHhmNWVzIGRlIHByaXZhY2lkYWRlXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llcyBuZWNlc3NcXHhlMXJpb3NcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5Vc2Ftb3MgZXN0ZXMgY29va2llczwvYT4gcGFyYSBhanVkYXIgbm8gZnVuY2lvbmFtZW50byBkbyBzaXRlLiBDb21vIGVzc2VzIGNvb2tpZXMgc1xceGUzbyBuZWNlc3NcXHhlMXJpb3MsIHZvY1xceGVhIG5cXHhlM28gcG9kZSBkZXNhdGl2XFx4ZTEtbG9zLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJQcmVmZXJcXHhlYW5jaWFzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUHJlZmVyZW5jZXNcIj5Vc2Ftb3MgZXN0ZXMgY29va2llczwvYT4gcGFyYSBsZW1icmFyIGRhcyBzdWFzIHByZWZlclxceGVhbmNpYXMgZSBtZWxob3JhciBzdWEgZXhwZXJpXFx4ZWFuY2lhIG5vIG5vc3NvIHNpdGUuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIkRlc2VtcGVuaG8gZSBBblxceGUxbGlzZVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+VXNhbW9zIGVzdGVzIGNvb2tpZXM8L2E+IHBhcmEgY29sZXRhciBkYWRvcyBzb2JyZSBjb21vIHZvY1xceGVhIHVzYSBub3NzbyBzaXRlLCBtb25pdG9yYXIgbyBkZXNlbXBlbmhvIGRlbGUgZSBtZWxob3JcXHhlMS1sbyBlbSBjb25qdW50byBjb20gYSBzdWEgZXhwZXJpXFx4ZWFuY2lhLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiTWFya2V0aW5nXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+VXNhbW9zIGVzdGVzIGNvb2tpZXM8L2E+IHBhcmEgZmF6ZXIgcHVibGljaWRhZGUgcmVsZXZhbnRlIGUgbWVkaXIgYSBlZmljXFx4ZTFjaWEgZGUgbm9zc2FzIGNhbXBhbmhhcyBwdWJsaWNpdFxceGUxcmlhcy4gTm9zc29zIHBhcmNlaXJvcyBkZSBwdWJsaWNpZGFkZSB0ZXJjZWlyaXphZG9zIHBvZGVtIHVzYXIgZXNzZXMgY29va2llcyBwYXJhIGNyaWFyIHVtIHBlcmZpbCBkZSBzZXVzIGludGVyZXNzZXMgZSBleGliaXIgYW5cXHhmYW5jaW9zIHJlbGV2YW50ZXMgZW0gb3V0cm9zIHNpdGVzLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInBhcmNlaXJvcyBkZSBwdWJsaWNpZGFkZSB0ZXJjZWlyaXphZG9zXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiUGFyY2Vpcm9zIGRlIHB1YmxpY2lkYWRlIHRlcmNlaXJpemFkb3M6XCIsRWZmZWN0aXZlRGF0ZTpcIlZcXHhlMWxpZG8gYSBwYXJ0aXIgZGUgMTUgZGUgamFuZWlybyBkZSAyMDE5XCIsQm9keTpbXCJBbFxceGU5bSBkZSBnZXJlbmNpYXIgY29va2llcyBhdHJhdlxceGU5cyBkbyBzZXUgbmF2ZWdhZG9yIG91IGFwYXJlbGhvLCB2b2NcXHhlYSBwb2RlIGFsdGVyYXIgc3VhcyBjb25maWd1cmFcXHhlN1xceGY1ZXMgZGUgY29va2llcyBhYmFpeG8uIFNhaWJhIHF1ZSBjZXJ0b3MgY29va2llcyBzXFx4ZTNvIG5lY2Vzc1xceGUxcmlvcyBwYXJhIHJvZGFyIG8gbm9zc28gc2l0ZSBlIG5cXHhlM28gcG9kZW0gc2VyIGJsb3F1ZWFkb3MgdXNhbmRvIGVzdGFzIGNvbmZpZ3VyYVxceGU3XFx4ZjVlcy5cIl0sVGl0bGU6XCJDb25maWd1cmFcXHhlN1xceGY1ZXMgZGUgY29va2llc1wiLENPT0tJRV9QT1BVUDonT2khIFVzYW1vcyBjb29raWVzIGUgdGVjbm9sb2dpYXMgc2VtZWxoYW50ZXMgKFxcdTIwMWNjb29raWVzXFx1MjAxZCkgbmVzdGUgc2l0ZSwgaW5jbHVpbmRvIGNvb2tpZXMgZGUgdGVyY2Vpcm9zLCBwYXJhIGFqdWRhciBhIGV4ZWN1dGFyIGUgYSBtZWxob3JhciBzdWEgZXhwZXJpXFx4ZWFuY2lhIGRlIG5hdmVnYVxceGU3XFx4ZTNvLCBtb25pdG9yYXIgbyBkZXNlbXBlbmhvIGUgcGFyYSBmaW5zIGRlIHB1YmxpY2lkYWRlLiBQYXJhIG1haXMgaW5mb3JtYVxceGU3XFx4ZjVlcyBzb2JyZSBjb21vIHVzYW1vcyBjb29raWVzIGUgc3VhcyBvcFxceGU3XFx4ZjVlcyBhIHJlc3BlaXRvLCBjb25zdWx0ZSBub3NzYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9sXFx4ZWR0aWNhIGRlIENvb2tpZXM8L2E+ISBBbyBjbGljYXIgZW0gXFx1MjAxY0FjZWl0YXIgQ29va2llc1xcdTIwMWQgYWJhaXhvLCB2b2NcXHhlYSBub3MgcGVybWl0ZSB1c2FyIHRvZG9zIG9zIGNvb2tpZXMsIGluY2x1aW5kbyBvcyBxdWUgblxceGUzbyBzXFx4ZTNvIGVzc2VuY2lhaXMuIFZvY1xceGVhIHBvZGUgcmVjdXNhciBvcyBjb29raWVzIG5cXHhlM28gZXNzZW5jaWFpcyBhbyBjbGljYXIgZW0gXCJYXCIsIGRvIGxhZG8gZGlyZWl0by4gQWNlc3NlIFxcdTIwMWNDb25maWd1cmFcXHhlN1xceGY1ZXMgZGUgQ29va2llc1xcdTIwMWQgZW0gbm9zc2EgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbFxceGVkdGljYSBkZSBDb29raWVzPC9hPiBwYXJhIGFsdGVyYXIgYXMgY29uZmlndXJhXFx4ZTdcXHhmNWVzIGRlIGNvb2tpZXMgZSByZXRpcmFyIHNldSBjb25zZW50aW1lbnRvIGEgcXVhbHF1ZXIgbW9tZW50by4nLENPT0tJRV9QT1BVUF9FVTonT2khIFVzYW1vcyBjb29raWVzIGUgdGVjbm9sb2dpYXMgc2VtZWxoYW50ZXMgKFxcdTIwMWNjb29raWVzXFx1MjAxZCkgbmVzdGUgc2l0ZSwgaW5jbHVpbmRvIGNvb2tpZXMgZGUgdGVyY2Vpcm9zLCBwYXJhIGFqdWRhciBhIGV4ZWN1dGFyIGUgYSBtZWxob3JhciBzdWEgZXhwZXJpXFx4ZWFuY2lhIGRlIG5hdmVnYVxceGU3XFx4ZTNvLCBtb25pdG9yYXIgbyBkZXNlbXBlbmhvIGUgcGFyYSBmaW5zIGRlIHB1YmxpY2lkYWRlLiBQYXJhIG1haXMgaW5mb3JtYVxceGU3XFx4ZjVlcyBzb2JyZSBjb21vIHVzYW1vcyBjb29raWVzIGUgc3VhcyBvcFxceGU3XFx4ZjVlcyBhIHJlc3BlaXRvLCBjb25zdWx0ZSBub3NzYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9sXFx4ZWR0aWNhIGRlIENvb2tpZXM8L2E+ISBBbyBjbGljYXIgZW0gXFx1MjAxY0FjZWl0YXIgQ29va2llc1xcdTIwMWQgYWJhaXhvLCB2b2NcXHhlYSBub3MgcGVybWl0ZSB1c2FyIHRvZG9zIG9zIGNvb2tpZXMsIGluY2x1aW5kbyBvcyBxdWUgblxceGUzbyBzXFx4ZTNvIGVzc2VuY2lhaXMuIFZvY1xceGVhIHBvZGUgcmVjdXNhciBvcyBjb29raWVzIG5cXHhlM28gZXNzZW5jaWFpcyBhbyBjbGljYXIgZW0gXCJYXCIsIGRvIGxhZG8gZGlyZWl0by4gQWNlc3NlIFxcdTIwMWNDb25maWd1cmFcXHhlN1xceGY1ZXMgZGUgQ29va2llc1xcdTIwMWQgZW0gbm9zc2EgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbFxceGVkdGljYSBkZSBDb29raWVzPC9hPiBwYXJhIGFsdGVyYXIgYXMgY29uZmlndXJhXFx4ZTdcXHhmNWVzIGRlIGNvb2tpZXMgZSByZXRpcmFyIHNldSBjb25zZW50aW1lbnRvIGEgcXVhbHF1ZXIgbW9tZW50by4nLEFncmVlVGV4dDpcIkFjZWl0YXIgY29va2llc1wiLFNldHRpbmdzVGV4dDpcIkNvbmZpZ3VyYVxceGU3XFx4ZjVlcyBkZSBjb29raWVzXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJEZW51bmNpYXIgdmlvbGFcXHhlN1xceGUzb1wiLFNwb3RsaWdodDpcIkhvbG9mb3RlXCJ9LFwicHQtcHRcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJFbSBkaXJldG9cIixBZHM6XCJQdWJsaWNpZGFkZVwiLENvbXBhbnk6XCJFbXByZXNhXCIsSG9tZTpcIkluXFx4ZWRjaW9cIixCbG9nOlwiQmxvZ1wiLEpvYnM6XCJFbXByZWdvc1wiLENhcmVlcnM6XCJDYXJyZWlyYXNcIixQcmVzczpcIkltcHJlbnNhXCIsTmV3czpcIk5vdmlkYWRlc1wiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJDb250YWN0b3MgZGEgSW1wcmVuc2FcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiSWRpb21hXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiRGVzY2FycmVnYXIgbyBTbmFwY2hhdFwiLERvd25sb2FkOlwiRGVzY2FycmVnYXJcIixLaXQ6XCJLaXRcIixTdG9yaWVzOlwiSGlzdFxceGYzcmlhc1wiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJMb2phXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBwYXJhIGlPU1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IHBhcmEgQW5kcm9pZFwiLENvbW11bml0eTpcIkNvbXVuaWRhZGVcIixTdXBwb3J0OlwiQXNzaXN0XFx4ZWFuY2lhXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiRGlyZXRyaXplcyBkYSBDb211bmlkYWRlXCIsXCJTYWZldHkgQ2VudGVyXCI6XCJDZW50cm8gZGUgU2VndXJhblxceGU3YVwiLFNuYXBjb2RlczpcIlNuYXBjb2Rlc1wiLEdlb2ZpbHRlcnM6XCJGaWx0cm9zIEdlb2dyXFx4ZTFmaWNvc1wiLENyZWF0ZTpcIkZpbHRyb3MgZSBMZW50ZXNcIixNYXA6XCJNYXBhXCIsQWR2ZXJ0aXNpbmc6XCJQdWJsaWNpZGFkZVwiLFwiQnV5IEFkc1wiOlwiQ29tcHJhciBQdWJsaWNpZGFkZVwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlBvbFxceGVkdGljYXMgZGUgUHVibGljaWRhZGVcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiQmlibGlvdGVjYSBkZSBBblxceGZhbmNpb3MgUG9sXFx4ZWR0aWNvc1wiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiTWFudWFsIGRlIE5vcm1hcyBkYSBNYXJjYVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUmVncmFzIGRlIFByb21vXFx4ZTdcXHhmNWVzXCIsTGVnYWw6XCJKdXJcXHhlZGRpY29cIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIkNvbmRpXFx4ZTdcXHhmNWVzIGRlIFNlcnZpXFx4ZTdvXCIsSW1wcmVzc3VtOlwiRmljaGEgVFxceGU5Y25pY2FcIixcIlByaXZhY3kgUG9saWN5XCI6XCJQb2xcXHhlZHRpY2EgZGUgUHJpdmFjaWRhZGVcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJDZW50cm8gZGUgUHJpdmFjaWRhZGVcIixcIkNvb2tpZSBQb2xpY3lcIjpcIlBvbFxceGVkdGljYSBkZSBDb29raWVzXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJDb25kaVxceGU3XFx4ZjVlcyBkZSBTZXJ2aVxceGU3byBkYXMgTWVtXFx4ZjNyaWFzXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIkNvbmRpXFx4ZTdcXHhmNWVzIGRhcyBGZXJyYW1lbnRhcyBDcmlhdGl2YXMgUGVyc29uYWxpemFkYXNcIixDT01NVU5JVFlfVE9TOlwiQ29uZGlcXHhlN1xceGY1ZXMgZG9zIEdlb2ZpbHRlcnMgQ29tdW5pdFxceGUxcmlvc1wiLExFTlNfU1RVRElPX1RPUzpcIkNvbmRpXFx4ZTdcXHhmNWVzIGRvIExlbnMgU3R1ZGlvXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiQXMgdHVhcyBvcFxceGU3XFx4ZjVlcyBkZSBwcml2YWNpZGFkZVwiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIkNvb2tpZXMgbmVjZXNzXFx4ZTFyaW9zXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+VXRpbGl6YW1vcyBlc3RlcyBjb29raWVzPC9hPiBwYXJhIGFqdWRhciBhIGdlcmlyIG8gc2l0ZS4gVW1hIHZleiBxdWUgZXN0ZXMgY29va2llcyBzXFx4ZTNvIG5lY2Vzc1xceGUxcmlvcywgblxceGUzbyBcXHhlOSBwb3NzXFx4ZWR2ZWwgZGVzYXRpdlxceGUxLWxvcy4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiUHJlZmVyXFx4ZWFuY2lhc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+VXRpbGl6YW1vcyBlc3RlcyBjb29raWVzPC9hPiBwYXJhIG1lbW9yaXphciBhcyBwcmVmZXJcXHhlYW5jaWFzIGRvIHV0aWxpemFkb3IgZSBtZWxob3JhciBhIHN1YSBleHBlcmlcXHhlYW5jaWEgbm8gbm9zc28gc2l0ZS4nXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiRGVzZW1wZW5obyBlIEFuXFx4ZTFsaXNlXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5VdGlsaXphbW9zIGVzdGVzIGNvb2tpZXM8L2E+IHBhcmEgcmVjb2xoZXIgaW5mb3JtYVxceGU3XFx4ZjVlcyBzb2JyZSBjb21vIG8gdXRpbGl6YWRvciB1dGlsaXphIG8gbm9zc28gc2l0ZSwgbW9uaXRvcml6YXIgZSBtZWxob3JhciBvIGRlc2VtcGVuaG8gZG8gbm9zc28gc2l0ZSBlIHRhbWJcXHhlOW0gbWVsaG9yYXIgYSBleHBlcmlcXHhlYW5jaWEgZG8gdXRpbGl6YWRvci4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1hcmtldGluZ1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlV0aWxpemFtb3MgZXN0ZXMgY29va2llczwvYT4gcGFyYSBhcHJlc2VudGFyIGFuXFx4ZmFuY2lvcyByZWxldmFudGVzIGUgbWVkaXIgYSBlZmljXFx4ZTFjaWEgZGFzIG5vc3NhcyBjYW1wYW5oYXMgcHVibGljaXRcXHhlMXJpYXMuIE9zIG5vc3NvcyBwYXJjZWlyb3MgZGUgcHVibGljaWRhZGUgdGVyY2Vpcm9zIHBvZGVtIHV0aWxpemFyIGVzdGVzIGNvb2tpZXMgcGFyYSBjcmlhciB1bSBwZXJmaWwgZG9zIHNldXMgaW50ZXJlc3NlcyBlIGFwcmVzZW50YXIgYW5cXHhmYW5jaW9zIHJlbGV2YW50ZXMgbm91dHJvcyBzaXRlcy4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJwYXJjZWlyb3MgZGUgcHVibGljaWRhZGUgdGVyY2Vpcm9zXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiUGFyY2Vpcm9zIGRlIHB1YmxpY2lkYWRlIHRlcmNlaXJvczpcIixFZmZlY3RpdmVEYXRlOlwiRW50cmFkYSBlbSB2aWdvcjogMTUgZGUgamFuZWlybyBkZSAyMDE5XCIsQm9keTpbXCJBbFxceGU5bSBkZSBwb2RlciBnZXJpciBvcyBjb29raWVzIGF0cmF2XFx4ZTlzIGRvIHNldSBuYXZlZ2Fkb3Igb3UgZGlzcG9zaXRpdm8sIG8gdXRpbGl6YWRvciBwb2RlIGFsdGVyYXIgYXMgZGVmaW5pXFx4ZTdcXHhmNWVzIGRlIGNvb2tpZXMgYWJhaXhvLiBPIHV0aWxpemFkb3IgZGV2ZSB0ZXIgZW0gYXRlblxceGU3XFx4ZTNvIHF1ZSBkZXRlcm1pbmFkb3MgY29va2llcyBzXFx4ZTNvIG5lY2Vzc1xceGUxcmlvcyBwYXJhIG8gZnVuY2lvbmFtZW50byBkbyBub3NzbyBzaXRlIGUgblxceGUzbyBwb2RlbSBzZXIgYmxvcXVlYWRvcywgdXRpbGl6YW5kbyBlc3RhcyBkZWZpbmlcXHhlN1xceGY1ZXMuXCJdLFRpdGxlOlwiRGVmaW5pXFx4ZTdcXHhmNWVzIGRlIENvb2tpZXNcIixDT09LSUVfUE9QVVA6J09sXFx4ZTEhIFV0aWxpemFtb3MgY29va2llcyBlIHRlY25vbG9naWFzIHNlbWVsaGFudGVzIChcImNvb2tpZXNcIiksIGluY2x1aW5kbyBjb29raWVzIGRlIHRlcmNlaXJvcywgbmVzdGUgc2l0ZSBwYXJhIGFqdWRhciBhIGdlcmlyIGUgbWVsaG9yYXIgYSB0dWEgZXhwZXJpXFx4ZWFuY2lhIGRlIG5hdmVnYVxceGU3XFx4ZTNvLCBtb25pdG9yaXphciBvIGRlc2VtcGVuaG8gZSBwYXJhIGZpbnMgcHVibGljaXRcXHhlMXJpb3MuIFBhcmEgc2FiZXJlcyBtYWlzIHNvYnJlIGNvbW8gb3MgdXRpbGl6YW1vcyBlIHNvYnJlIGFzIHR1YXMgb3BcXHhlN1xceGY1ZXMgZGUgY29va2llcywgY29uc3VsdGEgYSBub3NzYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9sXFx4ZWR0aWNhIGRlIENvb2tpZXM8L2E+ISBBbyBjbGljYXJlcyBlbSBcIkFjZWl0YXIgQ29va2llc1wiIGFiYWl4bywgZXN0XFx4ZTFzIGEgZGFyLW5vcyBvIHRldSBjb25zZW50aW1lbnRvIHBhcmEgdXRpbGl6YXJtb3MgdG9kb3Mgb3MgY29va2llcywgaW5jbHVpbmRvIG9zIGNvb2tpZXMgblxceGUzbyBlc3NlbmNpYWlzLiBQb2RlcyByZWN1c2FyIHRvZG9zIG9zIGNvb2tpZXMgblxceGUzbyBlc3NlbmNpYWlzIGFvIGNsaWNhciBubyBcIlhcIiBubyBsYWRvIGRpcmVpdG8uIEFjZWRlIGEgXCJEZWZpbmlcXHhlN1xceGY1ZXMgZGUgQ29va2llc1wiIG91IFxceGUwIG5vc3NhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Qb2xcXHhlZHRpY2EgZGUgQ29va2llczwvYT4gcGFyYSBhbHRlcmFyZXMgYXMgdHVhcyBkZWZpbmlcXHhlN1xceGY1ZXMgZGUgY29va2llcyBlIHJldGlyYSBvIGNvbnNlbnRpbWVudG8gZW0gcXVhbHF1ZXIgYWx0dXJhLicsQ09PS0lFX1BPUFVQX0VVOidPbFxceGUxISBVdGlsaXphbW9zIGNvb2tpZXMgZSB0ZWNub2xvZ2lhcyBzZW1lbGhhbnRlcyAoXCJjb29raWVzXCIpLCBpbmNsdWluZG8gY29va2llcyBkZSB0ZXJjZWlyb3MsIG5lc3RlIHNpdGUgcGFyYSBhanVkYXIgYSBnZXJpciBlIG1lbGhvcmFyIGEgdHVhIGV4cGVyaVxceGVhbmNpYSBkZSBuYXZlZ2FcXHhlN1xceGUzbywgbW9uaXRvcml6YXIgbyBkZXNlbXBlbmhvIGUgcGFyYSBmaW5zIHB1YmxpY2l0XFx4ZTFyaW9zLiBQYXJhIHNhYmVyZXMgbWFpcyBzb2JyZSBjb21vIG9zIHV0aWxpemFtb3MgZSBzb2JyZSBhcyB0dWFzIG9wXFx4ZTdcXHhmNWVzIGRlIGNvb2tpZXMsIGNvbnN1bHRhIGEgbm9zc2EgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbFxceGVkdGljYSBkZSBDb29raWVzPC9hPiEgQW8gY2xpY2FyZXMgZW0gXCJBY2VpdGFyIENvb2tpZXNcIiBhYmFpeG8sIGVzdFxceGUxcyBhIGRhci1ub3MgbyB0ZXUgY29uc2VudGltZW50byBwYXJhIHV0aWxpemFybW9zIHRvZG9zIG9zIGNvb2tpZXMsIGluY2x1aW5kbyBvcyBjb29raWVzIG5cXHhlM28gZXNzZW5jaWFpcy4gUG9kZXMgcmVjdXNhciB0b2RvcyBvcyBjb29raWVzIG5cXHhlM28gZXNzZW5jaWFpcyBhbyBjbGljYXIgbm8gXCJYXCIgbm8gbGFkbyBkaXJlaXRvLiBBY2VkZSBhIFwiRGVmaW5pXFx4ZTdcXHhmNWVzIGRlIENvb2tpZXNcIiBvdSBcXHhlMCBub3NzYSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9sXFx4ZWR0aWNhIGRlIENvb2tpZXM8L2E+IHBhcmEgYWx0ZXJhcmVzIGFzIHR1YXMgZGVmaW5pXFx4ZTdcXHhmNWVzIGRlIGNvb2tpZXMgZSByZXRpcmEgbyBjb25zZW50aW1lbnRvIGVtIHF1YWxxdWVyIGFsdHVyYS4nLEFncmVlVGV4dDpcIkFjZWl0YXIgQ29va2llc1wiLFNldHRpbmdzVGV4dDpcIkRlZmluaVxceGU3XFx4ZjVlcyBkZSBDb29raWVzXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJEZW5cXHhmYW5jaWEgZGUgVmlvbGFcXHhlN1xceGUzb1wiLFNwb3RsaWdodDpcIkRlc3RhcXVlXCJ9LFwicm8tcm9cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHhjZW4gZGlyZWN0XCIsQWRzOlwiUmVjbGFtZVwiLENvbXBhbnk6XCJDb21wYW5pZVwiLEhvbWU6XCJBY2FzXFx1MDEwM1wiLEJsb2c6XCJCbG9nXCIsSm9iczpcIkxvY3VyaSBkZSBtdW5jXFx1MDEwM1wiLENhcmVlcnM6XCJDYXJpZXJlXCIsUHJlc3M6XCJQcmVzXFx1MDEwM1wiLE5ld3M6XCJcXHUwMjE4dGlyaVwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHhjZW50cmViXFx1MDEwM3JpIGRpbiBwYXJ0ZWEgcHJlc2VpXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIkxpbWJhXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiRGVzY2FyY1xcdTAxMDMgU25hcGNoYXRcIixEb3dubG9hZDpcIkRlc2NhcmNcXHUwMTAzXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIlBvdmVcXHUwMjE5dGlcIixcIkxlbnMgU3R1ZGlvXCI6XCJTdHVkaW8gZGUgbGVudGlsZVwiLFN0b3JlOlwiTWFnYXppblwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25hcGNoYXQgcGVudHJ1IGlPU1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IHBlbnRydSBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiQ29tdW5pdGF0ZVwiLFN1cHBvcnQ6XCJBc2lzdGVuXFx1MDIxYlxcdTAxMDNcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJSZWd1bGlsZSBjb211bml0XFx1MDEwM1xcdTAyMWJpaVwiLFwiU2FmZXR5IENlbnRlclwiOlwiQ2VudHJ1bCBkZSBzaWd1cmFuXFx1MDIxYlxcdTAxMDNcIixTbmFwY29kZXM6XCJTbmFwY29kdXJpXCIsR2VvZmlsdGVyczpcIkZpbHRyZSBnZW9ncmFmaWNlXCIsQ3JlYXRlOlwiRmlsdHJlIFxcdTAyMTlpIGxlbnRpbGVcIixNYXA6XCJIYXJ0XFx1MDEwM1wiLEFkdmVydGlzaW5nOlwiUHVibGljaXRhdGVcIixcIkJ1eSBBZHNcIjpcIkN1bXBcXHUwMTAzclxcdTAxMDMgcmVjbGFtZVwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlBvbGl0aWNpIHByaXZpbmQgcHVibGljaXRhdGVhXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIkJpYmxpb3RlY2EgZGUgcmVjbGFtZSBwb2xpdGljZVwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiUmVndWxpIHV0aWxpemFyZSBicmFuZFwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUmVndWxhbWVudCBwdWJsaWNpdGF0ZVwiLExlZ2FsOlwiQXNwZWN0ZSBqdXJpZGljZVwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiVGVybWVuaSBkZSB1dGlsaXphcmVcIixJbXByZXNzdW06XCJUaXBcXHUwMTAzcml0XCIsXCJQcml2YWN5IFBvbGljeVwiOlwiUG9saXRpY2EgZGUgY29uZmlkZW5cXHUwMjFiaWFsaXRhdGVcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJDZW50cnVsIGRlIGNvbmZpZGVuXFx1MDIxYmlhbGl0YXRlXCIsXCJDb29raWUgUG9saWN5XCI6XCJQb2xpdGljYSBwcml2aW5kIG1vZHVsZWxlIGNvb2tpZVwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiVGVybWVuaSBkZSB1dGlsaXphcmUgQW1pbnRpcmlcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiVGVybWVuaSBkZSB1dGlsaXphcmUgaW5zdHJ1bWVudGUgY3JlYXRpdmUgcGVyc29uYWxpemF0ZVwiLENPTU1VTklUWV9UT1M6XCJUZXJtZW5pIEdlb2ZpbHRlciBkZXNwcmUgY29tdW5pdGF0ZVwiLExFTlNfU1RVRElPX1RPUzpcIlRlcm1lbmkgZGUgdXRpbGl6YXJlIFN0dWRpbyBkZSBsZW50aWxlXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiT3BcXHUwMjFiaXVuaWxlIHByaXZpbmQgY29uZmlkZW5cXHUwMjFiaWFsaXRhdGVhXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llLXVyaSBuZWNlc2FyZVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlV0aWxpelxcdTAxMDNtIGFjZXN0ZSBjb29raWUtdXJpPC9hPiBwZW50cnUgZnVuY1xcdTAyMWJpb25hcmVhIHNpdGUtdWx1aS4gRGVvYXJlY2UgYWNlc3RlIGNvb2tpZS11cmkgc3VudCBuZWNlc2FyZSwgbnUgbGUgcG9cXHUwMjFiaSBkZXphY3RpdmEuJ119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlByZWZlcmluXFx1MDIxYmVcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlV0aWxpelxcdTAxMDNtIGFjZXN0ZSBjb29raWUtdXJpPC9hPiBwZW50cnUgYSBuZSBhbWludGkgcHJlZmVyaW5cXHUwMjFiZWxlIHRhbGUgXFx1MDIxOWkgYS1cXHUwMjFiaSBcXHhlZW1idW5cXHUwMTAzdFxcdTAxMDNcXHUwMjFiaSBleHBlcmllblxcdTAyMWJhIHBlIHNpdGUuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlBlcmZvcm1hblxcdTAyMWJcXHUwMTAzIFxcdTAyMTlpIGFuYWxpemVcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlV0aWxpelxcdTAxMDNtIGFjZXN0ZSBjb29raWUtdXJpPC9hPiBwZW50cnUgYSBjb2xlY3RhIGluZm9ybWFcXHUwMjFiaWkgZGVzcHJlIG1vZHVsIFxceGVlbiBjYXJlIHV0aWxpemV6aSBzaXRlLXVsIG5vc3RydSwgcGVudHJ1IGEgbW9uaXRvcml6YSBwZXJmb3JtYW5cXHUwMjFiYSBzaXRlLXVsdWkgXFx1MDIxOWkgYSBcXHhlZW1idW5cXHUwMTAzdFxcdTAxMDNcXHUwMjFiaSBwZXJmb3JtYW5cXHUwMjFiYSBzaXRlLXVsdWkgXFx1MDIxOWkgZXhwZXJpZW5cXHUwMjFiYSB0YS4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIk1hcmtldGluZ1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlV0aWxpelxcdTAxMDNtIGFjZXN0ZSBjb29raWUtdXJpPC9hPiBwZW50cnUgYSBvZmVyaSBwdWJsaWNpdGF0ZSByZWxldmFudFxcdTAxMDMgXFx1MDIxOWkgYSBtXFx1MDEwM3N1cmEgZWZpY2FjaXRhdGVhIGNhbXBhbmlpbG9yIG5vYXN0cmUgcHVibGljaXRhcmUuIFBhcnRlbmVyaWkgbm9cXHUwMjE5dHJpIGRlIHB1YmxpY2l0YXRlIHRlclxcdTAyMWJcXHUwMTAzIHBhcnRlIHBvdCBmb2xvc2kgYWNlc3RlIGNvb2tpZS11cmkgcGVudHJ1IGEgYWxjXFx1MDEwM3R1aSB1biBwcm9maWwgYWwgaW50ZXJlc2Vsb3IgdGFsZSBcXHUwMjE5aSBhIG9mZXJpIHB1YmxpY2l0YXRlIHJlbGV2YW50XFx1MDEwMyBwZSBhbHRlIHNpdGUtdXJpLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcInBhcnRlbmVyaSBkZSBwdWJsaWNpdGF0ZSB0ZXJcXHUwMjFiXFx1MDEwMyBwYXJ0ZVwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlBhcnRlbmVyaSBkZSBwdWJsaWNpdGF0ZSBkZSB0ZXJcXHUwMjFiXFx1MDEwMyBwYXJ0ZTpcIixFZmZlY3RpdmVEYXRlOlwiRWZlY3RpdjogMTUgaWFudWFyaWUgSmFudWFyeSAyMDE5XCIsQm9keTpbXCJcXHhjZW4gcGx1cyBmYVxcdTAyMWJcXHUwMTAzIGRlIGdlc3Rpb25hcmVhIG1vZHVsZWxvciBjb29raWUgcHJpbiBpbnRlcm1lZGl1bCBicm93c2VydWx1aSBzYXUgYWwgZGlzcG96aXRpdnVsdWkgdFxcdTAxMDN1LCBwb1xcdTAyMWJpIHNjaGltYmEgbWFpIGpvcyBzZXRcXHUwMTAzcmlsZSBjb29raWUtdXJpbG9yLiBSZVxcdTAyMWJpbmVcXHUwMjFiaSBjXFx1MDEwMyBhbnVtaXRlIGNvb2tpZS11cmkgc3VudCBuZWNlc2FyZSBzXFx1MDEwMyBydWxlemUgcGUgc2l0ZS11bCBub3N0cnUgXFx1MDIxOWkgbnUgcG90IGZpIGJsb2NhdGUgdXRpbGl6XFx4ZTJuZCBhY2VzdGUgc2V0XFx1MDEwM3JpLlwiXSxUaXRsZTpcIlNldFxcdTAxMDNyaSBtb2R1bGUgY29va2llXCIsQ09PS0lFX1BPUFVQOidCdW5cXHUwMTAzISBVdGlsaXpcXHUwMTAzbSBjb29raWUtdXJpIFxcdTAyMTlpIHRlaG5vbG9naWkgc2ltaWxhcmUgKFxcdTIwMWVjb29raWUtdXJpXFx1MjAxZCksIGluY2x1c2l2IGNvb2tpZS11cmkgdGVyXFx1MDIxYlxcdTAxMDMgcGFydGUsIHBlIGFjZXN0IHNpdGUgcGVudHJ1IGEgYWp1dGEgbGEgZnVuY1xcdTAyMWJpb25hcmVhIGFjZXN0dWlhIFxcdTAyMTlpIGEtXFx1MDIxYmkgXFx4ZWVtYnVuXFx1MDEwM3RcXHUwMTAzXFx1MDIxYmkgZXhwZXJpZW5cXHUwMjFiYSBkZSBuYXZpZ2FyZSwgYSBtb25pdG9yaXphIHBlcmZvcm1hblxcdTAyMWJhIFxcdTAyMTlpIFxceGVlbiBzY29wdXJpIGRlIHB1YmxpY2l0YXRlLiBQZW50cnUgbWFpIG11bHRlIGluZm9ybWFcXHUwMjFiaWkgZGVzcHJlIG1vZHVsIFxceGVlbiBjYXJlIHV0aWxpelxcdTAxMDNtIGNvb2tpZS11cmlsZSBcXHUwMjE5aSBwcmVmZXJpblxcdTAyMWJlbGUgdGFsZSBsZWdhdGUgZGUgYWNlc3RlYSwgY29uc3VsdFxcdTAxMDMgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBvbGl0aWNhIGRlIHV0aWxpemFyZSBhIGNvb2tpZS11cmlsb3I8L2E+ISBEYWNcXHUwMTAzIGRhaSBjbGljIHBlIFxcdTIwMWVBY2NlcHRcXHUwMTAzIGNvb2tpZS11cmlsZVxcdTIwMWQgbWFpIGpvcywgbmUgYWNvcnppIGNvbnNpbVxcdTAyMWJcXHUwMTAzbVxceGUybnR1bCBkZSBhIGZvbG9zaSB0b2F0ZSBjb29raWUtdXJpbGUsIGluY2x1c2l2IHBlIGNlbGUgbmVlc2VuXFx1MDIxYmlhbGUuIFBvXFx1MDIxYmkgcmVmdXphIHRvYXRlIGNvb2tpZS11cmlsZSBuZWVzZW5cXHUwMjFiaWFsZSBkXFx4ZTJuZCBjbGljIHBlIFxcdTIwMWVYXFx1MjAxZCwgXFx4ZWVuIGRyZWFwdGEuIEFjY2VzZWF6XFx1MDEwMyBvcmljXFx4ZTJuZCBcXHUyMDFlU2V0XFx1MDEwM3JpIGNvb2tpZVxcdTIwMWQgc2F1IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Qb2xpdGljYSBkZSB1dGlsaXphcmUgYSBjb29raWUtdXJpbG9yPC9hPiBkYWNcXHUwMTAzIGRvcmVcXHUwMjE5dGkgc1xcdTAxMDMgbW9kaWZpY2kgc2V0XFx1MDEwM3JpbGUgcGVudHJ1IGNvb2tpZS11cmkgXFx1MDIxOWkgc1xcdTAxMDMgXFx4ZWVcXHUwMjFiaSByZXRyYWdpIGNvbnNpbVxcdTAyMWJcXHUwMTAzbVxceGUybnR1bC4nLENPT0tJRV9QT1BVUF9FVTonQnVuXFx1MDEwMyEgVXRpbGl6XFx1MDEwM20gY29va2llLXVyaSBcXHUwMjE5aSB0ZWhub2xvZ2lpIHNpbWlsYXJlIChcXHUyMDFlY29va2llLXVyaVxcdTIwMWQpLCBpbmNsdXNpdiBjb29raWUtdXJpIHRlclxcdTAyMWJcXHUwMTAzIHBhcnRlLCBwZSBhY2VzdCBzaXRlIHBlbnRydSBhIGFqdXRhIGxhIGZ1bmNcXHUwMjFiaW9uYXJlYSBhY2VzdHVpYSBcXHUwMjE5aSBhLVxcdTAyMWJpIFxceGVlbWJ1blxcdTAxMDN0XFx1MDEwM1xcdTAyMWJpIGV4cGVyaWVuXFx1MDIxYmEgZGUgbmF2aWdhcmUsIGEgbW9uaXRvcml6YSBwZXJmb3JtYW5cXHUwMjFiYSBcXHUwMjE5aSBcXHhlZW4gc2NvcHVyaSBkZSBwdWJsaWNpdGF0ZS4gUGVudHJ1IG1haSBtdWx0ZSBpbmZvcm1hXFx1MDIxYmlpIGRlc3ByZSBtb2R1bCBcXHhlZW4gY2FyZSB1dGlsaXpcXHUwMTAzbSBjb29raWUtdXJpbGUgXFx1MDIxOWkgcHJlZmVyaW5cXHUwMjFiZWxlIHRhbGUgbGVnYXRlIGRlIGFjZXN0ZWEsIGNvbnN1bHRcXHUwMTAzIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Qb2xpdGljYSBkZSB1dGlsaXphcmUgYSBjb29raWUtdXJpbG9yPC9hPiEgRGFjXFx1MDEwMyBkYWkgY2xpYyBwZSBcXHUyMDFlQWNjZXB0XFx1MDEwMyBjb29raWUtdXJpbGVcXHUyMDFkIG1haSBqb3MsIG5lIGFjb3J6aSBjb25zaW1cXHUwMjFiXFx1MDEwM21cXHhlMm50dWwgZGUgYSBmb2xvc2kgdG9hdGUgY29va2llLXVyaWxlLCBpbmNsdXNpdiBwZSBjZWxlIG5lZXNlblxcdTAyMWJpYWxlLiBQb1xcdTAyMWJpIHJlZnV6YSB0b2F0ZSBjb29raWUtdXJpbGUgbmVlc2VuXFx1MDIxYmlhbGUgZFxceGUybmQgY2xpYyBwZSBcXHUyMDFlWFxcdTIwMWQsIFxceGVlbiBkcmVhcHRhLiBBY2Nlc2VhelxcdTAxMDMgb3JpY1xceGUybmQgXFx1MjAxZVNldFxcdTAxMDNyaSBjb29raWVcXHUyMDFkIHNhdSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UG9saXRpY2EgZGUgdXRpbGl6YXJlIGEgY29va2llLXVyaWxvcjwvYT4gZGFjXFx1MDEwMyBkb3JlXFx1MDIxOXRpIHNcXHUwMTAzIG1vZGlmaWNpIHNldFxcdTAxMDNyaWxlIHBlbnRydSBjb29raWUtdXJpIFxcdTAyMTlpIHNcXHUwMTAzIFxceGVlXFx1MDIxYmkgcmV0cmFnaSBjb25zaW1cXHUwMjFiXFx1MDEwM21cXHhlMm50dWwuJyxBZ3JlZVRleHQ6XCJBY2NlcHRcXHUwMTAzIGNvb2tpZS11cmlsZVwiLFNldHRpbmdzVGV4dDpcIlNldFxcdTAxMDNyaSBtb2R1bGUgY29va2llXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJSYXBvcnRlYXpcXHUwMTAzIFxceGVlbmNcXHUwMTAzbGNhcmVhIGRyZXB0dXJpbG9yIGRlIGF1dG9yXCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwicnUtcnVcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAsIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiXFx1MDQyMlxcdTA0NDBcXHUwNDMwXFx1MDQzZFxcdTA0NDFcXHUwNDNiXFx1MDQ0ZlxcdTA0NDZcXHUwNDM4XFx1MDQ0ZlwiLEFkczpcIlxcdTA0MjBcXHUwNDM1XFx1MDQzYVxcdTA0M2JcXHUwNDMwXFx1MDQzY1xcdTA0MzBcIixDb21wYW55OlwiXFx1MDQxYVxcdTA0M2VcXHUwNDNjXFx1MDQzZlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0NGZcIixIb21lOlwiXFx1MDQxM1xcdTA0M2JcXHUwNDMwXFx1MDQzMlxcdTA0M2RcXHUwNDMwXFx1MDQ0ZlwiLEJsb2c6XCJcXHUwNDExXFx1MDQzYlxcdTA0M2VcXHUwNDMzXCIsSm9iczpcIlxcdTA0MTJcXHUwNDMwXFx1MDQzYVxcdTA0MzBcXHUwNDNkXFx1MDQ0MVxcdTA0MzhcXHUwNDM4XCIsQ2FyZWVyczpcIlxcdTA0MWFcXHUwNDMwXFx1MDQ0MFxcdTA0NGNcXHUwNDM1XFx1MDQ0MFxcdTA0MzBcIixQcmVzczpcIlxcdTA0MjFcXHUwNDFjXFx1MDQxOFwiLE5ld3M6XCJcXHUwNDFkXFx1MDQzZVxcdTA0MzJcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM4XCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTA0MTdcXHUwNDMwXFx1MDQzZlxcdTA0NDBcXHUwNDNlXFx1MDQ0MVxcdTA0NGIgXFx1MDQzZVxcdTA0NDIgXFx1MDQyMVxcdTA0MWNcXHUwNDE4XCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTA0MmZcXHUwNDM3XFx1MDQ0YlxcdTA0M2FcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJcXHUwNDIxXFx1MDQzYVxcdTA0MzBcXHUwNDQ3XFx1MDQzMFxcdTA0NDJcXHUwNDRjIFNuYXBjaGF0XCIsRG93bmxvYWQ6XCJcXHUwNDIxXFx1MDQzYVxcdTA0MzBcXHUwNDQ3XFx1MDQzMFxcdTA0NDJcXHUwNDRjXCIsS2l0OlwiU25hcCBLaXRcIixTdG9yaWVzOlwiXFx1MDQxOFxcdTA0NDFcXHUwNDQyXFx1MDQzZVxcdTA0NDBcXHUwNDM4XFx1MDQzOFwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJcXHUwNDFjXFx1MDQzMFxcdTA0MzNcXHUwNDMwXFx1MDQzN1xcdTA0MzhcXHUwNDNkXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBcXHUwNDM0XFx1MDQzYlxcdTA0NGYgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgXFx1MDQzNFxcdTA0M2JcXHUwNDRmIEFuZHJvaWRcIixDb21tdW5pdHk6XCJcXHUwNDIxXFx1MDQzZVxcdTA0M2VcXHUwNDMxXFx1MDQ0OVxcdTA0MzVcXHUwNDQxXFx1MDQ0MlxcdTA0MzJcXHUwNDNlXCIsU3VwcG9ydDpcIlxcdTA0MWZcXHUwNDNlXFx1MDQzNFxcdTA0MzRcXHUwNDM1XFx1MDQ0MFxcdTA0MzZcXHUwNDNhXFx1MDQzMFwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlxcdTA0MWZcXHUwNDQwXFx1MDQzMFxcdTA0MzJcXHUwNDM4XFx1MDQzYlxcdTA0MzAgXFx1MDQ0MVxcdTA0M2VcXHUwNDNlXFx1MDQzMVxcdTA0NDlcXHUwNDM1XFx1MDQ0MVxcdTA0NDJcXHUwNDMyXFx1MDQzMFwiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1MDQyNlxcdTA0MzVcXHUwNDNkXFx1MDQ0MlxcdTA0NDAgXFx1MDQzMVxcdTA0MzVcXHUwNDM3XFx1MDQzZVxcdTA0M2ZcXHUwNDMwXFx1MDQ0MVxcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM4XCIsU25hcGNvZGVzOlwiU25hcC1cXHUwNDNhXFx1MDQzZVxcdTA0MzRcXHUwNDRiXCIsR2VvZmlsdGVyczpcIlxcdTA0MTNcXHUwNDM1XFx1MDQzZVxcdTA0NDRcXHUwNDM4XFx1MDQzYlxcdTA0NGNcXHUwNDQyXFx1MDQ0MFxcdTA0NGJcIixDcmVhdGU6XCJcXHUwNDI0XFx1MDQzOFxcdTA0M2JcXHUwNDRjXFx1MDQ0MlxcdTA0NDBcXHUwNDRiIFxcdTA0MzggXFx1MDQzYlxcdTA0MzhcXHUwNDNkXFx1MDQzN1xcdTA0NGJcIixNYXA6XCJcXHUwNDFhXFx1MDQzMFxcdTA0NDBcXHUwNDQyXFx1MDQzMFwiLEFkdmVydGlzaW5nOlwiXFx1MDQyMFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQzMFwiLFwiQnV5IEFkc1wiOlwiXFx1MDQyMVxcdTA0NDJcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQzZVxcdTA0MzRcXHUwNDMwXFx1MDQ0MlxcdTA0MzVcXHUwNDNiXFx1MDQzNVxcdTA0M2NcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHUwNDIwXFx1MDQzNVxcdTA0M2FcXHUwNDNiXFx1MDQzMFxcdTA0M2NcXHUwNDNkXFx1MDQzMFxcdTA0NGYgXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQzOFxcdTA0NDJcXHUwNDM4XFx1MDQzYVxcdTA0MzBcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiXFx1MDQxMVxcdTA0MzhcXHUwNDMxXFx1MDQzYlxcdTA0MzhcXHUwNDNlXFx1MDQ0MlxcdTA0MzVcXHUwNDNhXFx1MDQzMCBcXHUwNDNmXFx1MDQzZVxcdTA0M2JcXHUwNDM4XFx1MDQ0MlxcdTA0MzhcXHUwNDQ3XFx1MDQzNVxcdTA0NDFcXHUwNDNhXFx1MDQzZVxcdTA0MzkgXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQ0YlwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiXFx1MDQyMFxcdTA0NDNcXHUwNDNhXFx1MDQzZVxcdTA0MzJcXHUwNDNlXFx1MDQzNFxcdTA0NDFcXHUwNDQyXFx1MDQzMlxcdTA0M2UgXFx1MDQzZlxcdTA0M2UgXFx1MDQzMVxcdTA0NDBcXHUwNDM1XFx1MDQzZFxcdTA0MzRcXHUwNDQzXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJcXHUwNDFmXFx1MDQ0MFxcdTA0MzBcXHUwNDMyXFx1MDQzOFxcdTA0M2JcXHUwNDMwIFxcdTA0M2ZcXHUwNDQwXFx1MDQzZVxcdTA0M2NcXHUwNDNlXFx1MDQzMFxcdTA0M2FcXHUwNDQ2XFx1MDQzOFxcdTA0MzlcIixMZWdhbDpcIlxcdTA0MmVcXHUwNDQwXFx1MDQzOFxcdTA0MzRcXHUwNDM4XFx1MDQ0N1xcdTA0MzVcXHUwNDQxXFx1MDQzYVxcdTA0MzBcXHUwNDRmIFxcdTA0MzhcXHUwNDNkXFx1MDQ0NFxcdTA0M2VcXHUwNDQwXFx1MDQzY1xcdTA0MzBcXHUwNDQ2XFx1MDQzOFxcdTA0NGZcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTA0MjNcXHUwNDQxXFx1MDQzYlxcdTA0M2VcXHUwNDMyXFx1MDQzOFxcdTA0NGYgXFx1MDQzZVxcdTA0M2FcXHUwNDMwXFx1MDQzN1xcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0NGYgXFx1MDQ0M1xcdTA0NDFcXHUwNDNiXFx1MDQ0M1xcdTA0MzNcIixJbXByZXNzdW06XCJcXHUwNDJlXFx1MDQ0MFxcdTA0MzhcXHUwNDM0XFx1MDQzOFxcdTA0NDdcXHUwNDM1XFx1MDQ0MVxcdTA0M2FcXHUwNDMwXFx1MDQ0ZiBcXHUwNDM4XFx1MDQzZFxcdTA0NDRcXHUwNDNlXFx1MDQ0MFxcdTA0M2NcXHUwNDMwXFx1MDQ0NlxcdTA0MzhcXHUwNDRmXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiXFx1MDQxZlxcdTA0M2VcXHUwNDNiXFx1MDQzOFxcdTA0NDJcXHUwNDM4XFx1MDQzYVxcdTA0MzAgXFx1MDQzYVxcdTA0M2VcXHUwNDNkXFx1MDQ0NFxcdTA0MzhcXHUwNDM0XFx1MDQzNVxcdTA0M2RcXHUwNDQ2XFx1MDQzOFxcdTA0MzBcXHUwNDNiXFx1MDQ0Y1xcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM4XCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1MDQyNlxcdTA0MzVcXHUwNDNkXFx1MDQ0MlxcdTA0NDAgXFx1MDQzYVxcdTA0M2VcXHUwNDNkXFx1MDQ0NFxcdTA0MzhcXHUwNDM0XFx1MDQzNVxcdTA0M2RcXHUwNDQ2XFx1MDQzOFxcdTA0MzBcXHUwNDNiXFx1MDQ0Y1xcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM4XCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHUwNDI0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQ0YiBcXHUwNDQxb29raWVcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTA0MjNcXHUwNDQxXFx1MDQzYlxcdTA0M2VcXHUwNDMyXFx1MDQzOFxcdTA0NGYgXFx1MDQzOFxcdTA0NDFcXHUwNDNmXFx1MDQzZVxcdTA0M2JcXHUwNDRjXFx1MDQzN1xcdTA0M2VcXHUwNDMyXFx1MDQzMFxcdTA0M2RcXHUwNDM4XFx1MDQ0ZiBcXHUwNDEyXFx1MDQzZVxcdTA0NDFcXHUwNDNmXFx1MDQzZVxcdTA0M2NcXHUwNDM4XFx1MDQzZFxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzlcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MDQyM1xcdTA0NDFcXHUwNDNiXFx1MDQzZVxcdTA0MzJcXHUwNDM4XFx1MDQ0ZiBcXHUwNDM4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQzZFxcdTA0MzhcXHUwNDRmIFxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQ0MlxcdTA0MzVcXHUwNDNiXFx1MDQ0Y1xcdTA0NDFcXHUwNDNhXFx1MDQzOFxcdTA0NDUgXFx1MDQzYVxcdTA0NDBcXHUwNDM1XFx1MDQzMFxcdTA0NDJcXHUwNDM4XFx1MDQzMlxcdTA0M2RcXHUwNDRiXFx1MDQ0NSBcXHUwNDM4XFx1MDQzZFxcdTA0NDFcXHUwNDQyXFx1MDQ0MFxcdTA0NDNcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDQyXFx1MDQzZVxcdTA0MzJcIixDT01NVU5JVFlfVE9TOlwiXFx1MDQyM1xcdTA0NDFcXHUwNDNiXFx1MDQzZVxcdTA0MzJcXHUwNDM4XFx1MDQ0ZiBcXHUwNDM4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQzZFxcdTA0MzhcXHUwNDRmIFxcdTA0MzNcXHUwNDM1XFx1MDQzZVxcdTA0NDRcXHUwNDM4XFx1MDQzYlxcdTA0NGNcXHUwNDQyXFx1MDQ0MFxcdTA0M2VcXHUwNDMyIFxcdTA0NDFcXHUwNDNlXFx1MDQzZVxcdTA0MzFcXHUwNDQ5XFx1MDQzNVxcdTA0NDFcXHUwNDQyXFx1MDQzMlxcdTA0MzBcIixMRU5TX1NUVURJT19UT1M6XCJcXHUwNDIzXFx1MDQ0MVxcdTA0M2JcXHUwNDNlXFx1MDQzMlxcdTA0MzhcXHUwNDRmIFxcdTA0MzhcXHUwNDQxXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQ0Y1xcdTA0MzdcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0NGYgTGVucyBTdHVkaW9cIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHUwNDEyXFx1MDQzMFxcdTA0NDhcXHUwNDM4IFxcdTA0M2ZcXHUwNDQwXFx1MDQzNVxcdTA0MzRcXHUwNDNmXFx1MDQzZVxcdTA0NDdcXHUwNDQyXFx1MDQzNVxcdTA0M2RcXHUwNDM4XFx1MDQ0ZiBcXHUwNDMyIFxcdTA0M2VcXHUwNDQyXFx1MDQzZFxcdTA0M2VcXHUwNDQ4XFx1MDQzNVxcdTA0M2RcXHUwNDM4XFx1MDQzOCBcXHUwNDNhXFx1MDQzZVxcdTA0M2RcXHUwNDQ0XFx1MDQzOFxcdTA0MzRcXHUwNDM1XFx1MDQzZFxcdTA0NDZcXHUwNDM4XFx1MDQzMFxcdTA0M2JcXHUwNDRjXFx1MDQzZFxcdTA0M2VcXHUwNDQxXFx1MDQ0MlxcdTA0MzhcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHUwNDFkXFx1MDQzNVxcdTA0M2VcXHUwNDMxXFx1MDQ0NVxcdTA0M2VcXHUwNDM0XFx1MDQzOFxcdTA0M2NcXHUwNDRiXFx1MDQzNSBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQ0YiBjb29raWVcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHUwNDFjXFx1MDQ0YiBcXHUwNDM4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQ0M1xcdTA0MzVcXHUwNDNjIFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDRiIGNvb2tpZSw8L2E+IFxcdTA0NDdcXHUwNDQyXFx1MDQzZVxcdTA0MzFcXHUwNDRiIFxcdTA0M2VcXHUwNDMxXFx1MDQzNVxcdTA0NDFcXHUwNDNmXFx1MDQzNVxcdTA0NDdcXHUwNDM4XFx1MDQ0MlxcdTA0NGMgXFx1MDQ0MFxcdTA0MzBcXHUwNDMxXFx1MDQzZVxcdTA0NDJcXHUwNDQzIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDMwLiBcXHUwNDJkXFx1MDQ0MlxcdTA0MzggXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0NGIgY29va2llIFxcdTA0NGZcXHUwNDMyXFx1MDQzYlxcdTA0NGZcXHUwNDRlXFx1MDQ0MlxcdTA0NDFcXHUwNDRmIFxcdTA0M2RcXHUwNDM1XFx1MDQzZVxcdTA0MzFcXHUwNDQ1XFx1MDQzZVxcdTA0MzRcXHUwNDM4XFx1MDQzY1xcdTA0NGJcXHUwNDNjXFx1MDQzOCwgXFx1MDQzZlxcdTA0M2VcXHUwNDRkXFx1MDQ0MlxcdTA0M2VcXHUwNDNjXFx1MDQ0MyBcXHUwNDM4XFx1MDQ0NSBcXHUwNDNkXFx1MDQzNVxcdTA0M2JcXHUwNDRjXFx1MDQzN1xcdTA0NGYgXFx1MDQzZVxcdTA0NDJcXHUwNDNhXFx1MDQzYlxcdTA0NGVcXHUwNDQ3XFx1MDQzOFxcdTA0NDJcXHUwNDRjLiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwNDFkXFx1MDQzMFxcdTA0NDFcXHUwNDQyXFx1MDQ0MFxcdTA0M2VcXHUwNDM5XFx1MDQzYVxcdTA0MzhcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTA0MWNcXHUwNDRiIFxcdTA0MzhcXHUwNDQxXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQ0Y1xcdTA0MzdcXHUwNDQzXFx1MDQzNVxcdTA0M2MgXFx1MDQ0ZFxcdTA0NDJcXHUwNDM4IFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDRiIGNvb2tpZSw8L2E+IFxcdTA0NDdcXHUwNDQyXFx1MDQzZVxcdTA0MzFcXHUwNDRiIFxcdTA0MzdcXHUwNDMwXFx1MDQzZlxcdTA0M2VcXHUwNDNjXFx1MDQzZFxcdTA0MzhcXHUwNDQyXFx1MDQ0YyBcXHUwNDMyXFx1MDQzMFxcdTA0NDhcXHUwNDM4IFxcdTA0M2RcXHUwNDMwXFx1MDQ0MVxcdTA0NDJcXHUwNDQwXFx1MDQzZVxcdTA0MzlcXHUwNDNhXFx1MDQzOCBcXHUwNDM4IFxcdTA0NDFcXHUwNDM0XFx1MDQzNVxcdTA0M2JcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0MVxcdTA0MzBcXHUwNDM5XFx1MDQ0MiBcXHUwNDQzXFx1MDQzNFxcdTA0M2VcXHUwNDMxXFx1MDQzZFxcdTA0MzVcXHUwNDM1LiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJcXHUwNDJkXFx1MDQ0NFxcdTA0NDRcXHUwNDM1XFx1MDQzYVxcdTA0NDJcXHUwNDM4XFx1MDQzMlxcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDRjIFxcdTA0MzggXFx1MDQzMFxcdTA0M2RcXHUwNDMwXFx1MDQzYlxcdTA0MzhcXHUwNDQyXFx1MDQzOFxcdTA0M2FcXHUwNDMwXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5cXHUwNDFjXFx1MDQ0YiBcXHUwNDM4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQ0M1xcdTA0MzVcXHUwNDNjIFxcdTA0NGRcXHUwNDQyXFx1MDQzOCBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQ0YiBjb29raWUsPC9hPiBcXHUwNDQ3XFx1MDQ0MlxcdTA0M2VcXHUwNDMxXFx1MDQ0YiBcXHUwNDQxXFx1MDQzZVxcdTA0MzFcXHUwNDM4XFx1MDQ0MFxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDQxXFx1MDQzMlxcdTA0MzVcXHUwNDM0XFx1MDQzNVxcdTA0M2RcXHUwNDM4XFx1MDQ0ZiBcXHUwNDNlIFxcdTA0NDJcXHUwNDNlXFx1MDQzYywgXFx1MDQzYVxcdTA0MzBcXHUwNDNhIFxcdTA0MzJcXHUwNDRiIFxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQ0M1xcdTA0MzVcXHUwNDQyXFx1MDQzNVxcdTA0NDFcXHUwNDRjIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDNlXFx1MDQzYywgXFx1MDQzZVxcdTA0NDJcXHUwNDQxXFx1MDQzYlxcdTA0MzVcXHUwNDM2XFx1MDQzOFxcdTA0MzJcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQzZlxcdTA0NDBcXHUwNDNlXFx1MDQzOFxcdTA0MzdcXHUwNDMyXFx1MDQzZVxcdTA0MzRcXHUwNDM4XFx1MDQ0MlxcdTA0MzVcXHUwNDNiXFx1MDQ0Y1xcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDRjIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDMwLCBcXHUwNDQzXFx1MDQzYlxcdTA0NDNcXHUwNDQ3XFx1MDQ0OFxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDM1XFx1MDQzM1xcdTA0M2UgXFx1MDQ0MFxcdTA0MzBcXHUwNDMxXFx1MDQzZVxcdTA0NDJcXHUwNDQzIFxcdTA0MzggXFx1MDQzNFxcdTA0MzVcXHUwNDNiXFx1MDQzMFxcdTA0NDJcXHUwNDRjIFxcdTA0NDNcXHUwNDM0XFx1MDQzZVxcdTA0MzFcXHUwNDNkXFx1MDQzNVxcdTA0MzUgXFx1MDQzNFxcdTA0M2JcXHUwNDRmIFxcdTA0MzJcXHUwNDMwXFx1MDQ0MS4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIlxcdTA0MWNcXHUwNDMwXFx1MDQ0MFxcdTA0M2FcXHUwNDM1XFx1MDQ0MlxcdTA0MzhcXHUwNDNkXFx1MDQzM1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI01hcmtldGluZ1wiPlxcdTA0MWNcXHUwNDRiIFxcdTA0MzhcXHUwNDQxXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQ0Y1xcdTA0MzdcXHUwNDQzXFx1MDQzNVxcdTA0M2MgXFx1MDQ0ZFxcdTA0NDJcXHUwNDM4IFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDRiIGNvb2tpZSw8L2E+IFxcdTA0NDdcXHUwNDQyXFx1MDQzZVxcdTA0MzFcXHUwNDRiIFxcdTA0M2ZcXHUwNDQwXFx1MDQzNVxcdTA0MzRcXHUwNDNiXFx1MDQzMFxcdTA0MzNcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQzMlxcdTA0MzBcXHUwNDNjIFxcdTA0MzFcXHUwNDNlXFx1MDQzYlxcdTA0MzVcXHUwNDM1IFxcdTA0MzBcXHUwNDNhXFx1MDQ0MlxcdTA0NDNcXHUwNDMwXFx1MDQzYlxcdTA0NGNcXHUwNDNkXFx1MDQ0M1xcdTA0NGUgXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQ0MyBcXHUwNDM4IFxcdTA0M2VcXHUwNDQyXFx1MDQ0MVxcdTA0M2JcXHUwNDM1XFx1MDQzNlxcdTA0MzhcXHUwNDMyXFx1MDQzMFxcdTA0NDJcXHUwNDRjIFxcdTA0NGRcXHUwNDQ0XFx1MDQ0NFxcdTA0MzVcXHUwNDNhXFx1MDQ0MlxcdTA0MzhcXHUwNDMyXFx1MDQzZFxcdTA0M2VcXHUwNDQxXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQzZFxcdTA0NGJcXHUwNDQ1IFxcdTA0M2FcXHUwNDMwXFx1MDQzY1xcdTA0M2ZcXHUwNDMwXFx1MDQzZFxcdTA0MzhcXHUwNDM5LiBcXHUwNDFkXFx1MDQzMFxcdTA0NDhcXHUwNDM4IFxcdTA0NDFcXHUwNDQyXFx1MDQzZVxcdTA0NDBcXHUwNDNlXFx1MDQzZFxcdTA0M2RcXHUwNDM4XFx1MDQzNSBcXHUwNDQwXFx1MDQzNVxcdTA0M2FcXHUwNDNiXFx1MDQzMFxcdTA0M2NcXHUwNDNkXFx1MDQ0YlxcdTA0MzUgXFx1MDQzZlxcdTA0MzBcXHUwNDQwXFx1MDQ0MlxcdTA0M2RcXHUwNDUxXFx1MDQ0MFxcdTA0NGIgXFx1MDQzY1xcdTA0M2VcXHUwNDMzXFx1MDQ0M1xcdTA0NDIgXFx1MDQzOFxcdTA0NDFcXHUwNDNmXFx1MDQzZVxcdTA0M2JcXHUwNDRjXFx1MDQzN1xcdTA0M2VcXHUwNDMyXFx1MDQzMFxcdTA0NDJcXHUwNDRjIFxcdTA0MzRcXHUwNDMwXFx1MDQzZFxcdTA0M2RcXHUwNDRiXFx1MDQzNSBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQ0YiBjb29raWUgXFx1MDQzNFxcdTA0M2JcXHUwNDRmIFxcdTA0NDFcXHUwNDNlXFx1MDQzN1xcdTA0MzRcXHUwNDMwXFx1MDQzZFxcdTA0MzhcXHUwNDRmIFxcdTA0M2ZcXHUwNDQwXFx1MDQzZVxcdTA0NDRcXHUwNDM4XFx1MDQzYlxcdTA0NGYgXFx1MDQzMlxcdTA0MzBcXHUwNDQ4XFx1MDQzOFxcdTA0NDUgXFx1MDQzOFxcdTA0M2RcXHUwNDQyXFx1MDQzNVxcdTA0NDBcXHUwNDM1XFx1MDQ0MVxcdTA0M2VcXHUwNDMyIFxcdTA0MzggXFx1MDQ0MFxcdTA0MzBcXHUwNDM3XFx1MDQzY1xcdTA0MzVcXHUwNDQ5XFx1MDQzNVxcdTA0M2RcXHUwNDM4XFx1MDQ0ZiBcXHUwNDMwXFx1MDQzYVxcdTA0NDJcXHUwNDQzXFx1MDQzMFxcdTA0M2JcXHUwNDRjXFx1MDQzZFxcdTA0M2VcXHUwNDM5IFxcdTA0NDBcXHUwNDM1XFx1MDQzYVxcdTA0M2JcXHUwNDMwXFx1MDQzY1xcdTA0NGIgXFx1MDQzZFxcdTA0MzAgXFx1MDQzNFxcdTA0NDBcXHUwNDQzXFx1MDQzM1xcdTA0MzhcXHUwNDQ1IFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDMwXFx1MDQ0NS4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJcXHUwNDQxXFx1MDQ0MlxcdTA0M2VcXHUwNDQwXFx1MDQzZVxcdTA0M2RcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQzZFxcdTA0NGJcXHUwNDM1IFxcdTA0M2ZcXHUwNDMwXFx1MDQ0MFxcdTA0NDJcXHUwNDNkXFx1MDQ1MVxcdTA0NDBcXHUwNDRiXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiXFx1MDQyMVxcdTA0NDJcXHUwNDNlXFx1MDQ0MFxcdTA0M2VcXHUwNDNkXFx1MDQzZFxcdTA0MzhcXHUwNDM1IFxcdTA0NDBcXHUwNDM1XFx1MDQzYVxcdTA0M2JcXHUwNDMwXFx1MDQzY1xcdTA0M2RcXHUwNDRiXFx1MDQzNSBcXHUwNDNmXFx1MDQzMFxcdTA0NDBcXHUwNDQyXFx1MDQzZFxcdTA0NTFcXHUwNDQwXFx1MDQ0YjpcIixFZmZlY3RpdmVEYXRlOlwiXFx1MDQxNFxcdTA0MzVcXHUwNDM5XFx1MDQ0MVxcdTA0NDJcXHUwNDMyXFx1MDQ0M1xcdTA0MzVcXHUwNDQyIFxcdTA0NDEgMTUuMDEuMjAxOVwiLEJvZHk6W1wiXFx1MDQxZlxcdTA0M2VcXHUwNDNjXFx1MDQzOFxcdTA0M2NcXHUwNDNlIFxcdTA0NDNcXHUwNDNmXFx1MDQ0MFxcdTA0MzBcXHUwNDMyXFx1MDQzYlxcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0NGYgXFx1MDQzZFxcdTA0MzBcXHUwNDQxXFx1MDQ0MlxcdTA0NDBcXHUwNDNlXFx1MDQzOVxcdTA0M2FcXHUwNDMwXFx1MDQzY1xcdTA0MzggXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0M2VcXHUwNDMyIGNvb2tpZSBcXHUwNDQ3XFx1MDQzNVxcdTA0NDBcXHUwNDM1XFx1MDQzNyBcXHUwNDNjXFx1MDQzNVxcdTA0M2RcXHUwNDRlIFxcdTA0MzFcXHUwNDQwXFx1MDQzMFxcdTA0NDNcXHUwNDM3XFx1MDQzNVxcdTA0NDBcXHUwNDMwIFxcdTA0MzhcXHUwNDNiXFx1MDQzOCBcXHUwNDQzXFx1MDQ0MVxcdTA0NDJcXHUwNDQwXFx1MDQzZVxcdTA0MzlcXHUwNDQxXFx1MDQ0MlxcdTA0MzJcXHUwNDMwLCBcXHUwNDM4XFx1MDQ0NSBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDNkXFx1MDQzZSBcXHUwNDM4XFx1MDQzN1xcdTA0M2NcXHUwNDM1XFx1MDQzZFxcdTA0MzhcXHUwNDQyXFx1MDQ0YyBcXHUwNDNkXFx1MDQzOFxcdTA0MzZcXHUwNDM1LiBcXHUwNDFlXFx1MDQzMVxcdTA0NDBcXHUwNDMwXFx1MDQ0MlxcdTA0MzhcXHUwNDQyXFx1MDQzNSBcXHUwNDMyXFx1MDQzZFxcdTA0MzhcXHUwNDNjXFx1MDQzMFxcdTA0M2RcXHUwNDM4XFx1MDQzNTogXFx1MDQzZFxcdTA0MzVcXHUwNDNhXFx1MDQzZVxcdTA0NDJcXHUwNDNlXFx1MDQ0MFxcdTA0NGJcXHUwNDM1IGNvb2tpZSBcXHUwNDNkXFx1MDQzNVxcdTA0M2VcXHUwNDMxXFx1MDQ0NVxcdTA0M2VcXHUwNDM0XFx1MDQzOFxcdTA0M2NcXHUwNDRiIFxcdTA0MzRcXHUwNDNiXFx1MDQ0ZiBcXHUwNDQwXFx1MDQzMFxcdTA0MzFcXHUwNDNlXFx1MDQ0MlxcdTA0NGIgXFx1MDQzZFxcdTA0MzBcXHUwNDQ4XFx1MDQzNVxcdTA0MzNcXHUwNDNlIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDMwIFxcdTA0MzggXFx1MDQzZFxcdTA0MzUgXFx1MDQzY1xcdTA0M2VcXHUwNDMzXFx1MDQ0M1xcdTA0NDIgXFx1MDQzMVxcdTA0NGJcXHUwNDQyXFx1MDQ0YyBcXHUwNDM3XFx1MDQzMFxcdTA0MzFcXHUwNDNiXFx1MDQzZVxcdTA0M2FcXHUwNDM4XFx1MDQ0MFxcdTA0M2VcXHUwNDMyXFx1MDQzMFxcdTA0M2RcXHUwNDRiIFxcdTA0MzIgXFx1MDQ0ZFxcdTA0NDJcXHUwNDM4XFx1MDQ0NSBcXHUwNDNkXFx1MDQzMFxcdTA0NDFcXHUwNDQyXFx1MDQ0MFxcdTA0M2VcXHUwNDM5XFx1MDQzYVxcdTA0MzBcXHUwNDQ1LlwiXSxUaXRsZTpcIlxcdTA0MWRcXHUwNDMwXFx1MDQ0MVxcdTA0NDJcXHUwNDQwXFx1MDQzZVxcdTA0MzlcXHUwNDNhXFx1MDQzOCBjb29raWVcIixDT09LSUVfUE9QVVA6J1xcdTA0MTdcXHUwNDM0XFx1MDQ0MFxcdTA0MzBcXHUwNDMyXFx1MDQ0MVxcdTA0NDJcXHUwNDMyXFx1MDQ0M1xcdTA0MzlcXHUwNDQyXFx1MDQzNSEgXFx1MDQxY1xcdTA0NGIgXFx1MDQzOFxcdTA0NDFcXHUwNDNmXFx1MDQzZVxcdTA0M2JcXHUwNDRjXFx1MDQzN1xcdTA0NDNcXHUwNDM1XFx1MDQzYyBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQ0YiBjb29raWUgXFx1MDQzOCBcXHUwNDMwXFx1MDQzZFxcdTA0MzBcXHUwNDNiXFx1MDQzZVxcdTA0MzNcXHUwNDM4XFx1MDQ0N1xcdTA0M2RcXHUwNDRiXFx1MDQzNSBcXHUwNDQyXFx1MDQzNVxcdTA0NDVcXHUwNDNkXFx1MDQzZVxcdTA0M2JcXHUwNDNlXFx1MDQzM1xcdTA0MzhcXHUwNDM4LCBcXHUwNDMyIFxcdTA0NDJcXHUwNDNlXFx1MDQzYyBcXHUwNDQ3XFx1MDQzOFxcdTA0NDFcXHUwNDNiXFx1MDQzNSBcXHUwNDQxXFx1MDQ0MlxcdTA0M2VcXHUwNDQwXFx1MDQzZVxcdTA0M2RcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0NGIgY29va2llLCBcXHUwNDNkXFx1MDQzMCBcXHUwNDRkXFx1MDQ0MlxcdTA0M2VcXHUwNDNjIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDM1LCBcXHUwNDQ3XFx1MDQ0MlxcdTA0M2VcXHUwNDMxXFx1MDQ0YiBcXHUwNDQzXFx1MDQzYlxcdTA0NDNcXHUwNDQ3XFx1MDQ0OFxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDM1XFx1MDQzM1xcdTA0M2UgXFx1MDQ0MFxcdTA0MzBcXHUwNDMxXFx1MDQzZVxcdTA0NDJcXHUwNDQzLCBcXHUwNDM0XFx1MDQzNVxcdTA0M2JcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0M1xcdTA0MzRcXHUwNDNlXFx1MDQzMVxcdTA0M2RcXHUwNDM1XFx1MDQzNSBcXHUwNDM0XFx1MDQzYlxcdTA0NGYgXFx1MDQzMlxcdTA0MzBcXHUwNDQxLCBcXHUwNDNlXFx1MDQ0MlxcdTA0NDFcXHUwNDNiXFx1MDQzNVxcdTA0MzZcXHUwNDM4XFx1MDQzMlxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDRkXFx1MDQ0NFxcdTA0NDRcXHUwNDM1XFx1MDQzYVxcdTA0NDJcXHUwNDM4XFx1MDQzMlxcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDRjLCBcXHUwNDMwIFxcdTA0NDJcXHUwNDMwXFx1MDQzYVxcdTA0MzZcXHUwNDM1IFxcdTA0MzIgXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQzZFxcdTA0NGJcXHUwNDQ1IFxcdTA0NDZcXHUwNDM1XFx1MDQzYlxcdTA0NGZcXHUwNDQ1LiBcXHUwNDFmXFx1MDQzZVxcdTA0MzRcXHUwNDQwXFx1MDQzZVxcdTA0MzFcXHUwNDNkXFx1MDQzNVxcdTA0MzUgXFx1MDQzZSBcXHUwNDQyXFx1MDQzZVxcdTA0M2MsIFxcdTA0M2FcXHUwNDMwXFx1MDQzYSBcXHUwNDNjXFx1MDQ0YiBcXHUwNDM4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQ0M1xcdTA0MzVcXHUwNDNjIFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDRiIGNvb2tpZSBcXHUwNDM4IFxcdTA0MzJcXHUwNDMwXFx1MDQ0OFxcdTA0MzggXFx1MDQzZFxcdTA0MzBcXHUwNDQxXFx1MDQ0MlxcdTA0NDBcXHUwNDNlXFx1MDQzOVxcdTA0M2FcXHUwNDM4IFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDNlXFx1MDQzMiBjb29raWUsIFxcdTA0M2NcXHUwNDNlXFx1MDQzNlxcdTA0M2RcXHUwNDNlIFxcdTA0NDNcXHUwNDM3XFx1MDQzZFxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDM4XFx1MDQzNyBcXHUwNDNkXFx1MDQzMFxcdTA0NDhcXHUwNDM1XFx1MDQzOSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQzOFxcdTA0NDJcXHUwNDM4XFx1MDQzYVxcdTA0MzggXFx1MDQzMiBcXHUwNDNlXFx1MDQ0MlxcdTA0M2RcXHUwNDNlXFx1MDQ0OFxcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0MzggXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0M2VcXHUwNDMyIGNvb2tpZTwvYT4uIFxcdTA0MWRcXHUwNDMwXFx1MDQzNlxcdTA0MzhcXHUwNDNjXFx1MDQzMFxcdTA0NGYgXFx4YWJcXHUwNDE4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0NGIgY29va2llXFx4YmIgXFx1MDQzZFxcdTA0MzhcXHUwNDM2XFx1MDQzNSwgXFx1MDQzMlxcdTA0NGIgXFx1MDQzMlxcdTA0NGJcXHUwNDQwXFx1MDQzMFxcdTA0MzZcXHUwNDMwXFx1MDQzNVxcdTA0NDJcXHUwNDM1IFxcdTA0NDFcXHUwNDNlXFx1MDQzM1xcdTA0M2JcXHUwNDMwXFx1MDQ0MVxcdTA0MzhcXHUwNDM1IFxcdTA0M2RcXHUwNDMwIFxcdTA0MzhcXHUwNDQxXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQ0Y1xcdTA0MzdcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQzZFxcdTA0MzBcXHUwNDNjXFx1MDQzOCBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQzZVxcdTA0MzIgY29va2llLCBcXHUwNDMyXFx1MDQzYVxcdTA0M2JcXHUwNDRlXFx1MDQ0N1xcdTA0MzBcXHUwNDRmIFxcdTA0MzJcXHUwNDQyXFx1MDQzZVxcdTA0NDBcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM1XFx1MDQzZlxcdTA0MzVcXHUwNDNkXFx1MDQzZFxcdTA0NGJcXHUwNDM1LiBcXHUwNDEyXFx1MDQ0YiBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDM1XFx1MDQ0MlxcdTA0MzUgXFx1MDQzN1xcdTA0MzBcXHUwNDNmXFx1MDQ0MFxcdTA0MzVcXHUwNDQyXFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0MzhcXHUwNDQxXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQ0Y1xcdTA0MzdcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQzMlxcdTA0NDFcXHUwNDM1XFx1MDQ0NSBcXHUwNDMyXFx1MDQ0MlxcdTA0M2VcXHUwNDQwXFx1MDQzZVxcdTA0NDFcXHUwNDQyXFx1MDQzNVxcdTA0M2ZcXHUwNDM1XFx1MDQzZFxcdTA0M2RcXHUwNDRiXFx1MDQ0NSBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQzZVxcdTA0MzIgY29va2llLCBcXHUwNDNkXFx1MDQzMFxcdTA0MzZcXHUwNDMwXFx1MDQzMiBcXHhhYlxcdTA0MjVcXHhiYiBcXHUwNDQxXFx1MDQzZlxcdTA0NDBcXHUwNDMwXFx1MDQzMlxcdTA0MzAuIFxcdTA0MTJcXHUwNDRiIFxcdTA0MzIgXFx1MDQzYlxcdTA0NGVcXHUwNDMxXFx1MDQzZVxcdTA0MzUgXFx1MDQzMlxcdTA0NDBcXHUwNDM1XFx1MDQzY1xcdTA0NGYgXFx1MDQzY1xcdTA0M2VcXHUwNDM2XFx1MDQzNVxcdTA0NDJcXHUwNDM1IFxcdTA0MzhcXHUwNDM3XFx1MDQzY1xcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0M2RcXHUwNDMwXFx1MDQ0MVxcdTA0NDJcXHUwNDQwXFx1MDQzZVxcdTA0MzlcXHUwNDNhXFx1MDQzOCBjb29raWUgXFx1MDQzOCBcXHUwNDNlXFx1MDQ0MlxcdTA0M2VcXHUwNDM3XFx1MDQzMlxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDQwXFx1MDQzMFxcdTA0MzdcXHUwNDQwXFx1MDQzNVxcdTA0NDhcXHUwNDM1XFx1MDQzZFxcdTA0MzhcXHUwNDM1LCBcXHUwNDMyIFxcdTA0M2RcXHUwNDMwXFx1MDQ0MVxcdTA0NDJcXHUwNDQwXFx1MDQzZVxcdTA0MzlcXHUwNDNhXFx1MDQzMFxcdTA0NDUgXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0M2VcXHUwNDMyIGNvb2tpZSBcXHUwNDM4XFx1MDQzYlxcdTA0MzggXFx1MDQzMiA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQzOFxcdTA0NDJcXHUwNDM4XFx1MDQzYVxcdTA0MzUgXFx1MDQzMiBcXHUwNDNlXFx1MDQ0MlxcdTA0M2RcXHUwNDNlXFx1MDQ0OFxcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0MzggXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0M2VcXHUwNDMyIGNvb2tpZTwvYT4uJyxDT09LSUVfUE9QVVBfRVU6J1xcdTA0MTdcXHUwNDM0XFx1MDQ0MFxcdTA0MzBcXHUwNDMyXFx1MDQ0MVxcdTA0NDJcXHUwNDMyXFx1MDQ0M1xcdTA0MzlcXHUwNDQyXFx1MDQzNSEgXFx1MDQxY1xcdTA0NGIgXFx1MDQzOFxcdTA0NDFcXHUwNDNmXFx1MDQzZVxcdTA0M2JcXHUwNDRjXFx1MDQzN1xcdTA0NDNcXHUwNDM1XFx1MDQzYyBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQ0YiBjb29raWUgXFx1MDQzOCBcXHUwNDMwXFx1MDQzZFxcdTA0MzBcXHUwNDNiXFx1MDQzZVxcdTA0MzNcXHUwNDM4XFx1MDQ0N1xcdTA0M2RcXHUwNDRiXFx1MDQzNSBcXHUwNDQyXFx1MDQzNVxcdTA0NDVcXHUwNDNkXFx1MDQzZVxcdTA0M2JcXHUwNDNlXFx1MDQzM1xcdTA0MzhcXHUwNDM4LCBcXHUwNDMyIFxcdTA0NDJcXHUwNDNlXFx1MDQzYyBcXHUwNDQ3XFx1MDQzOFxcdTA0NDFcXHUwNDNiXFx1MDQzNSBcXHUwNDQxXFx1MDQ0MlxcdTA0M2VcXHUwNDQwXFx1MDQzZVxcdTA0M2RcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0NGIgY29va2llLCBcXHUwNDNkXFx1MDQzMCBcXHUwNDRkXFx1MDQ0MlxcdTA0M2VcXHUwNDNjIFxcdTA0NDFcXHUwNDMwXFx1MDQzOVxcdTA0NDJcXHUwNDM1LCBcXHUwNDQ3XFx1MDQ0MlxcdTA0M2VcXHUwNDMxXFx1MDQ0YiBcXHUwNDQzXFx1MDQzYlxcdTA0NDNcXHUwNDQ3XFx1MDQ0OFxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDM1XFx1MDQzM1xcdTA0M2UgXFx1MDQ0MFxcdTA0MzBcXHUwNDMxXFx1MDQzZVxcdTA0NDJcXHUwNDQzLCBcXHUwNDM0XFx1MDQzNVxcdTA0M2JcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0M1xcdTA0MzRcXHUwNDNlXFx1MDQzMVxcdTA0M2RcXHUwNDM1XFx1MDQzNSBcXHUwNDM0XFx1MDQzYlxcdTA0NGYgXFx1MDQzMlxcdTA0MzBcXHUwNDQxLCBcXHUwNDNlXFx1MDQ0MlxcdTA0NDFcXHUwNDNiXFx1MDQzNVxcdTA0MzZcXHUwNDM4XFx1MDQzMlxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDRkXFx1MDQ0NFxcdTA0NDRcXHUwNDM1XFx1MDQzYVxcdTA0NDJcXHUwNDM4XFx1MDQzMlxcdTA0M2RcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDRjLCBcXHUwNDMwIFxcdTA0NDJcXHUwNDMwXFx1MDQzYVxcdTA0MzZcXHUwNDM1IFxcdTA0MzIgXFx1MDQ0MFxcdTA0MzVcXHUwNDNhXFx1MDQzYlxcdTA0MzBcXHUwNDNjXFx1MDQzZFxcdTA0NGJcXHUwNDQ1IFxcdTA0NDZcXHUwNDM1XFx1MDQzYlxcdTA0NGZcXHUwNDQ1LiBcXHUwNDFmXFx1MDQzZVxcdTA0MzRcXHUwNDQwXFx1MDQzZVxcdTA0MzFcXHUwNDNkXFx1MDQzNVxcdTA0MzUgXFx1MDQzZSBcXHUwNDQyXFx1MDQzZVxcdTA0M2MsIFxcdTA0M2FcXHUwNDMwXFx1MDQzYSBcXHUwNDNjXFx1MDQ0YiBcXHUwNDM4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQ0M1xcdTA0MzVcXHUwNDNjIFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDRiIGNvb2tpZSBcXHUwNDM4IFxcdTA0MzJcXHUwNDMwXFx1MDQ0OFxcdTA0MzggXFx1MDQzZFxcdTA0MzBcXHUwNDQxXFx1MDQ0MlxcdTA0NDBcXHUwNDNlXFx1MDQzOVxcdTA0M2FcXHUwNDM4IFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDNlXFx1MDQzMiBjb29raWUsIFxcdTA0M2NcXHUwNDNlXFx1MDQzNlxcdTA0M2RcXHUwNDNlIFxcdTA0NDNcXHUwNDM3XFx1MDQzZFxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDM4XFx1MDQzNyBcXHUwNDNkXFx1MDQzMFxcdTA0NDhcXHUwNDM1XFx1MDQzOSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQzOFxcdTA0NDJcXHUwNDM4XFx1MDQzYVxcdTA0MzggXFx1MDQzMiBcXHUwNDNlXFx1MDQ0MlxcdTA0M2RcXHUwNDNlXFx1MDQ0OFxcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0MzggXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0M2VcXHUwNDMyIGNvb2tpZTwvYT4uIFxcdTA0MWRcXHUwNDMwXFx1MDQzNlxcdTA0MzhcXHUwNDNjXFx1MDQzMFxcdTA0NGYgXFx4YWJcXHUwNDE4XFx1MDQ0MVxcdTA0M2ZcXHUwNDNlXFx1MDQzYlxcdTA0NGNcXHUwNDM3XFx1MDQzZVxcdTA0MzJcXHUwNDMwXFx1MDQ0MlxcdTA0NGMgXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0NGIgY29va2llXFx4YmIgXFx1MDQzZFxcdTA0MzhcXHUwNDM2XFx1MDQzNSwgXFx1MDQzMlxcdTA0NGIgXFx1MDQzMlxcdTA0NGJcXHUwNDQwXFx1MDQzMFxcdTA0MzZcXHUwNDMwXFx1MDQzNVxcdTA0NDJcXHUwNDM1IFxcdTA0NDFcXHUwNDNlXFx1MDQzM1xcdTA0M2JcXHUwNDMwXFx1MDQ0MVxcdTA0MzhcXHUwNDM1IFxcdTA0M2RcXHUwNDMwIFxcdTA0MzhcXHUwNDQxXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQ0Y1xcdTA0MzdcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQzZFxcdTA0MzBcXHUwNDNjXFx1MDQzOCBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQzZVxcdTA0MzIgY29va2llLCBcXHUwNDMyXFx1MDQzYVxcdTA0M2JcXHUwNDRlXFx1MDQ0N1xcdTA0MzBcXHUwNDRmIFxcdTA0MzJcXHUwNDQyXFx1MDQzZVxcdTA0NDBcXHUwNDNlXFx1MDQ0MVxcdTA0NDJcXHUwNDM1XFx1MDQzZlxcdTA0MzVcXHUwNDNkXFx1MDQzZFxcdTA0NGJcXHUwNDM1LiBcXHUwNDEyXFx1MDQ0YiBcXHUwNDNjXFx1MDQzZVxcdTA0MzZcXHUwNDM1XFx1MDQ0MlxcdTA0MzUgXFx1MDQzN1xcdTA0MzBcXHUwNDNmXFx1MDQ0MFxcdTA0MzVcXHUwNDQyXFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0MzhcXHUwNDQxXFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQ0Y1xcdTA0MzdcXHUwNDNlXFx1MDQzMlxcdTA0MzBcXHUwNDNkXFx1MDQzOFxcdTA0MzUgXFx1MDQzMlxcdTA0NDFcXHUwNDM1XFx1MDQ0NSBcXHUwNDMyXFx1MDQ0MlxcdTA0M2VcXHUwNDQwXFx1MDQzZVxcdTA0NDFcXHUwNDQyXFx1MDQzNVxcdTA0M2ZcXHUwNDM1XFx1MDQzZFxcdTA0M2RcXHUwNDRiXFx1MDQ0NSBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQzZVxcdTA0MzIgY29va2llLCBcXHUwNDNkXFx1MDQzMFxcdTA0MzZcXHUwNDMwXFx1MDQzMiBcXHhhYlxcdTA0MjVcXHhiYiBcXHUwNDQxXFx1MDQzZlxcdTA0NDBcXHUwNDMwXFx1MDQzMlxcdTA0MzAuIFxcdTA0MTJcXHUwNDRiIFxcdTA0MzIgXFx1MDQzYlxcdTA0NGVcXHUwNDMxXFx1MDQzZVxcdTA0MzUgXFx1MDQzMlxcdTA0NDBcXHUwNDM1XFx1MDQzY1xcdTA0NGYgXFx1MDQzY1xcdTA0M2VcXHUwNDM2XFx1MDQzNVxcdTA0NDJcXHUwNDM1IFxcdTA0MzhcXHUwNDM3XFx1MDQzY1xcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0M2RcXHUwNDMwXFx1MDQ0MVxcdTA0NDJcXHUwNDQwXFx1MDQzZVxcdTA0MzlcXHUwNDNhXFx1MDQzOCBjb29raWUgXFx1MDQzOCBcXHUwNDNlXFx1MDQ0MlxcdTA0M2VcXHUwNDM3XFx1MDQzMlxcdTA0MzBcXHUwNDQyXFx1MDQ0YyBcXHUwNDQwXFx1MDQzMFxcdTA0MzdcXHUwNDQwXFx1MDQzNVxcdTA0NDhcXHUwNDM1XFx1MDQzZFxcdTA0MzhcXHUwNDM1LCBcXHUwNDMyIFxcdTA0M2RcXHUwNDMwXFx1MDQ0MVxcdTA0NDJcXHUwNDQwXFx1MDQzZVxcdTA0MzlcXHUwNDNhXFx1MDQzMFxcdTA0NDUgXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0M2VcXHUwNDMyIGNvb2tpZSBcXHUwNDM4XFx1MDQzYlxcdTA0MzggXFx1MDQzMiA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDQzZlxcdTA0M2VcXHUwNDNiXFx1MDQzOFxcdTA0NDJcXHUwNDM4XFx1MDQzYVxcdTA0MzUgXFx1MDQzMiBcXHUwNDNlXFx1MDQ0MlxcdTA0M2RcXHUwNDNlXFx1MDQ0OFxcdTA0MzVcXHUwNDNkXFx1MDQzOFxcdTA0MzggXFx1MDQ0NFxcdTA0MzBcXHUwNDM5XFx1MDQzYlxcdTA0M2VcXHUwNDMyIGNvb2tpZTwvYT4uJyxBZ3JlZVRleHQ6XCJcXHUwNDIwXFx1MDQzMFxcdTA0MzdcXHUwNDQwXFx1MDQzNVxcdTA0NDhcXHUwNDM4XFx1MDQ0MlxcdTA0NGMgXFx1MDQzOFxcdTA0NDFcXHUwNDNmXFx1MDQzZVxcdTA0M2JcXHUwNDRjXFx1MDQzN1xcdTA0M2VcXHUwNDMyXFx1MDQzMFxcdTA0M2RcXHUwNDM4XFx1MDQzNSBcXHUwNDQ0XFx1MDQzMFxcdTA0MzlcXHUwNDNiXFx1MDQzZVxcdTA0MzIgY29va2llXCIsU2V0dGluZ3NUZXh0OlwiXFx1MDQxZFxcdTA0MzBcXHUwNDQxXFx1MDQ0MlxcdTA0NDBcXHUwNDNlXFx1MDQzOVxcdTA0M2FcXHUwNDM4IFxcdTA0NDRcXHUwNDMwXFx1MDQzOVxcdTA0M2JcXHUwNDNlXFx1MDQzMiBjb29raWVcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTA0MjFcXHUwNDNlXFx1MDQzZVxcdTA0MzFcXHUwNDQ5XFx1MDQzOFxcdTA0NDJcXHUwNDRjIFxcdTA0M2UgXFx1MDQzZFxcdTA0MzBcXHUwNDQwXFx1MDQ0M1xcdTA0NDhcXHUwNDM1XFx1MDQzZFxcdTA0MzhcXHUwNDM4XCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwic3Ytc2VcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJMaXZlXCIsQWRzOlwiQW5ub25zZXJcIixDb21wYW55OlwiRlxceGY2cmV0YWdcIixIb21lOlwiSGVtXCIsQmxvZzpcIkJsb2dnXCIsSm9iczpcIkpvYmJcIixDYXJlZXJzOlwiS2FycmlcXHhlNHJcIixQcmVzczpcIlByZXNzXCIsTmV3czpcIk55aGV0ZXJcIixcIlByZXNzIElucXVpcmllc1wiOlwiUHJlc3NmclxceGU1Z29yXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlNwclxceGU1a1wiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIkxhZGRhIG5lciBTbmFwY2hhdFwiLERvd25sb2FkOlwiTGFkZGEgbmVyXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIlN0b3JpZXNcIixcIkxlbnMgU3R1ZGlvXCI6XCJMZW5zIFN0dWRpb1wiLFN0b3JlOlwiQnV0aWtcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcIlNuYXBjaGF0IGZcXHhmNnIgaU9TXCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiU25hcGNoYXQgZlxceGY2ciBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiQ29tbXVuaXR5XCIsU3VwcG9ydDpcIlN1cHBvcnRcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJDb21tdW5pdHktcmlrdGxpbmplclwiLFwiU2FmZXR5IENlbnRlclwiOlwiU1xceGU0a2VyaGV0c2NlbnRlclwiLFNuYXBjb2RlczpcIlNuYXBrb2RlclwiLEdlb2ZpbHRlcnM6XCJHZW9maWx0ZXJcIixDcmVhdGU6XCJGaWx0ZXIgb2NoIGxpbnNlclwiLE1hcDpcIkthcnRhXCIsQWR2ZXJ0aXNpbmc6XCJBbm5vbnNlcmluZ1wiLFwiQnV5IEFkc1wiOlwiS1xceGY2cCBhbm5vbnNlclwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIkFubm9uc3ZpbGxrb3JcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiQmlibGlvdGVrIGF2IHBvbGl0aXNrYSBhbm5vbnNlclwiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiVmFydW1cXHhlNHJrZXNyaWt0bGluamVyXCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJLYW1wYW5qcmVnbGVyXCIsTGVnYWw6XCJKdXJpZGlzayBpbmZvcm1hdGlvblwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiQW52XFx4ZTRuZGFydmlsbGtvclwiLEltcHJlc3N1bTpcIkltcHJlc3N1bVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlNla3JldGVzc3ZpbGxrb3JcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJTZWtyZXRlc3NjZW50ZXJcIixcIkNvb2tpZSBQb2xpY3lcIjpcIkNvb2tpZXBvbGljeVwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiTWVtb3JpZXMgYW52XFx4ZTRuZGFydmlsbGtvclwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJWaWxsa29yIGZcXHhmNnIgYW5wYXNzYWRlIGtyZWF0aXZhIHZlcmt0eWdcIixDT01NVU5JVFlfVE9TOlwiQ29tbXVuaXR5LWdlb2ZpbHRlciB2aWxsa29yXCIsTEVOU19TVFVESU9fVE9TOlwiQW52XFx4ZTRuZGFydmlsbGtvciBmXFx4ZjZyIExlbnMgU3R1ZGlvXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiRGluYSBzZWtyZXRlc3N2YWxcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJOXFx4ZjZkdlxceGU0bmRpZ2EgY29va2llc1wiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlZpIGFudlxceGU0bmRlciBkZXNzYSBjb29raWVzPC9hPiBmXFx4ZjZyIGF0dCBoalxceGU0bHBhIHRpbGwgYXR0IGRyaXZhIHNpZGFuLiBEdSBrYW4gaW50ZSBzdFxceGU0bmdhIGF2IGRlc3NhIGNvb2tpZXMgZWZ0ZXJzb20gZGUgXFx4ZTRyIG5cXHhmNmR2XFx4ZTRuZGlnYS4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiUHJlZmVyZW5zZXJcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlZpIGFudlxceGU0bmRlciBkZXNzYSBjb29raWVzPC9hPiBmXFx4ZjZyIGF0dCBrb21tYSBpaFxceGU1ZyBkaW5hIHByZWZlcmVuc2VyIG9jaCBmXFx4ZjZyYlxceGU0dHRyYSBkaW4gdXBwbGV2ZWxzZSBwXFx4ZTUgdlxceGU1ciB3ZWJic2lkYS4nXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiUHJlc3RhbmRhIG9jaCBhbmFseXNlclwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+VmkgYW52XFx4ZTRuZGVyIGRlc3NhIGNvb2tpZXM8L2E+IGZcXHhmNnIgYXR0IHNhbWxhIGluIGluZm9ybWF0aW9uIG9tIGh1ciBkdSBhbnZcXHhlNG5kZXIgdlxceGU1ciBzaWRhLCBcXHhmNnZlcnZha2Egc2lkYW5zIHByZXN0YW5kYSBvY2ggZlxceGY2cmJcXHhlNHR0cmEgdlxceGU1ciBzaWRhcyBwcmVzdGFuZGEgb2NoIGRpbiB1cHBsZXZlbHNlLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiTWFya25hZHNmXFx4ZjZyaW5nXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+VmkgYW52XFx4ZTRuZGVyIGRlc3NhIGNvb2tpZXM8L2E+IGZcXHhmNnIgYXR0IHZpc2EgcmVsZXZhbnRhIGFubm9uc2VyIG9jaCBtXFx4ZTR0YSBlZmZla3Rpdml0ZXRlbiBwXFx4ZTUgdlxceGU1cmEgYW5ub25za2FtcGFuamVyLiBWXFx4ZTVyYSB0cmVkamVwYXJ0c2Fubm9uc3BhcnRuZXIga2FuIGFudlxceGU0bmRhIGRlc3NhIGNvb2tpZXMgZlxceGY2ciBhdHQgYnlnZ2EgZW4gcHJvZmlsIFxceGY2dmVyIGRpbmEgaW50cmVzc2VuIG9jaCBsZXZlcmVyYSByZWxldmFudGEgYW5ub25zZXIgcFxceGU1IGFuZHJhIHNpZG9yLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlRyZWRqZXBhcnRzYW5ub25zcGFydG5lclwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlRyZWRqZXBhcnRzYW5ub25zcGFydG5lcjpcIixFZmZlY3RpdmVEYXRlOlwiR1xceGU0bGxlciBmci5vLm0uIDE1IGphbnVhcmkgMjAxOVwiLEJvZHk6W1wiRlxceGY2cnV0b20gYXR0IGhhbnRlcmEgY29va2llcyBwXFx4ZTUgZGluIHdlYmJsXFx4ZTRzYXJlIGVsbGVyIGVuaGV0IGthbiBkdSBcXHhlNG5kcmEgZGluYSBjb29raWVzaW5zdFxceGU0bGxuaW5nYXIgbmVkYW4uIFRcXHhlNG5rIHBcXHhlNSBhdHQgdmlzc2EgY29va2llcyBiZWhcXHhmNnZzIGZcXHhmNnIgYXR0IGFudlxceGU0bmRhIHZcXHhlNXIgc2lkYSBvY2gga2FuIGludGUgYmxvY2tlcmFzIGkgZGVzc2EgaW5zdFxceGU0bGxuaW5nYXIuXCJdLFRpdGxlOlwiQ29va2llaW5zdFxceGU0bGxuaW5nYXJcIixDT09LSUVfUE9QVVA6J0hlaiEgVmkgYW52XFx4ZTRuZGVyIGNvb2tpZXMgb2NoIGxpa25hbmRlIHRla25vbG9naSAoXCJjb29raWVzXCIpLCBpbmtsdXNpdmUgdHJlZGplcGFydHNjb29raWVzIHBcXHhlNSBkZW4gaFxceGU0ciB3ZWJic2lkYW4gZlxceGY2ciBhdHQgaGpcXHhlNGxwYSB0aWxsIGF0dCBkcml2YSBzaWRhbiBvY2ggZlxceGY2cmJcXHhlNHR0cmEgZGluIHN1cmZ1cHBsZXZlbHNlLCBmXFx4ZjZyIGF0dCBcXHhmNnZlcnZha2EgZnVua3Rpb25hbGl0ZXRlbiBvY2ggaSBhbm5vbnNlcmluZ3NzeWZ0ZW4uIE1lciBpbmZvcm1hdGlvbiBvbSBodXIgdmkgYW52XFx4ZTRuZGVyIGNvb2tpZXMgb2NoIG9tIGRpbmEgY29va2llLXZhbCBoaXR0YXIgZHUgaSB2XFx4ZTVyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5jb29raWUtcG9saWN5PC9hPiEgR2Vub20gYXR0IGtsaWNrYSBwXFx4ZTUgQWNjZXB0ZXJhIGNvb2tpZXMgbmVkYW4gZ2VyIGR1IG9zcyBkaXR0IG1lZGdpdmFuZGUgYXR0IGFudlxceGU0bmRhIGFsbGEgY29va2llcywgaW5rbHVzaXZlIGlja2UtblxceGY2ZHZcXHhlNG5kaWdhIGNvb2tpZXMuIER1IGthbiB0YWNrYSBuZWogdGlsbCBpY2tlLW5cXHhmNmR2XFx4ZTRuZGlnYSBjb29raWVzIGdlbm9tIGF0dCBrbGlja2EgcFxceGU1IFg6ZXQgdGlsbCBoXFx4ZjZnZXIuIFxceGM0bmRyYSBkaW5hIGNvb2tpZS1pbnN0XFx4ZTRsbG5pbmdhciBvY2ggXFx4ZTV0ZXJrYWxsYSBkaXR0IG1lZGdpdmFuZGUgblxceGU0ciBkdSB2aWxsIGdlbm9tIGF0dCBnXFx4ZTUgdGlsbCBDb29raWUtaW5zdFxceGU0bGxuaW5nYXIgZWxsZXIgdlxceGU1ciA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Y29va2llLXBvbGljeTwvYT4uJyxDT09LSUVfUE9QVVBfRVU6J0hlaiEgVmkgYW52XFx4ZTRuZGVyIGNvb2tpZXMgb2NoIGxpa25hbmRlIHRla25vbG9naSAoXCJjb29raWVzXCIpLCBpbmtsdXNpdmUgdHJlZGplcGFydHNjb29raWVzIHBcXHhlNSBkZW4gaFxceGU0ciB3ZWJic2lkYW4gZlxceGY2ciBhdHQgaGpcXHhlNGxwYSB0aWxsIGF0dCBkcml2YSBzaWRhbiBvY2ggZlxceGY2cmJcXHhlNHR0cmEgZGluIHN1cmZ1cHBsZXZlbHNlLCBmXFx4ZjZyIGF0dCBcXHhmNnZlcnZha2EgZnVua3Rpb25hbGl0ZXRlbiBvY2ggaSBhbm5vbnNlcmluZ3NzeWZ0ZW4uIE1lciBpbmZvcm1hdGlvbiBvbSBodXIgdmkgYW52XFx4ZTRuZGVyIGNvb2tpZXMgb2NoIG9tIGRpbmEgY29va2llLXZhbCBoaXR0YXIgZHUgaSB2XFx4ZTVyIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5jb29raWUtcG9saWN5PC9hPiEgR2Vub20gYXR0IGtsaWNrYSBwXFx4ZTUgQWNjZXB0ZXJhIGNvb2tpZXMgbmVkYW4gZ2VyIGR1IG9zcyBkaXR0IG1lZGdpdmFuZGUgYXR0IGFudlxceGU0bmRhIGFsbGEgY29va2llcywgaW5rbHVzaXZlIGlja2UtblxceGY2ZHZcXHhlNG5kaWdhIGNvb2tpZXMuIER1IGthbiB0YWNrYSBuZWogdGlsbCBpY2tlLW5cXHhmNmR2XFx4ZTRuZGlnYSBjb29raWVzIGdlbm9tIGF0dCBrbGlja2EgcFxceGU1IFg6ZXQgdGlsbCBoXFx4ZjZnZXIuIFxceGM0bmRyYSBkaW5hIGNvb2tpZS1pbnN0XFx4ZTRsbG5pbmdhciBvY2ggXFx4ZTV0ZXJrYWxsYSBkaXR0IG1lZGdpdmFuZGUgblxceGU0ciBkdSB2aWxsIGdlbm9tIGF0dCBnXFx4ZTUgdGlsbCBDb29raWUtaW5zdFxceGU0bGxuaW5nYXIgZWxsZXIgdlxceGU1ciA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Y29va2llLXBvbGljeTwvYT4uJyxBZ3JlZVRleHQ6XCJBY2NlcHRlcmEgY29va2llc1wiLFNldHRpbmdzVGV4dDpcIkNvb2tpZS1pbnN0XFx4ZTRsbG5pbmdhclwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiQW5tXFx4ZTRsIGludHJcXHhlNW5nXCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwidGEtaW5cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHUwYmE4XFx1MGJjN1xcdTBiYjBcXHUwYmIyXFx1MGJjOFwiLEFkczpcIlxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLENvbXBhbnk6XCJcXHUwYmE4XFx1MGJiZlxcdTBiYjFcXHUwYmMxXFx1MGJiNVxcdTBiYTlcXHUwYmFlXFx1MGJjZFwiLEhvbWU6XCJcXHUwYmFlXFx1MGJjMVxcdTBiOTVcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXCIsQmxvZzpcIlxcdTBiYjVcXHUwYmIyXFx1MGJjOFxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmJmXFx1MGJiNVxcdTBiYzFcIixKb2JzOlwiXFx1MGJiNVxcdTBiYzdcXHUwYmIyXFx1MGJjOFxcdTBiYjVcXHUwYmJlXFx1MGJhZlxcdTBiY2RcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIsQ2FyZWVyczpcIlxcdTBiYWFcXHUwYmEzXFx1MGJiZlxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLFByZXNzOlwiXFx1MGI4N1xcdTBiYTRcXHUwYmI0XFx1MGJjZFxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYmIxXFx1MGJjOFwiLE5ld3M6XCJcXHUwYjlhXFx1MGJjNlxcdTBiYWZcXHUwYmNkXFx1MGJhNFxcdTBiYmZcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixcIlByZXNzIElucXVpcmllc1wiOlwiXFx1MGI4N1xcdTBiYTRcXHUwYmI0XFx1MGJjZFxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYmIxXFx1MGJjOCBcXHUwYmI1XFx1MGJiZlxcdTBiOWFcXHUwYmJlXFx1MGJiMFxcdTBiYTNcXHUwYmM4XFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTBiYWVcXHUwYmNhXFx1MGJiNFxcdTBiYmZcIixcIkRvd25sb2FkIFNuYXBjaGF0XCI6XCJTbmFwY2hhdC1cXHUwYjkwXFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYTRcXHUwYmJmXFx1MGJiNVxcdTBiYmZcXHUwYmIxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMVwiLERvd25sb2FkOlwiXFx1MGJhYVxcdTBiYTRcXHUwYmJmXFx1MGJiNVxcdTBiYmZcXHUwYmIxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJiNVxcdTBiYzFcXHUwYmFlXFx1MGJjZFwiLEtpdDpcIlxcdTBiYTRcXHUwYmNhXFx1MGI5NVxcdTBiYzFcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXCIsU3RvcmllczpcIlxcdTBiOTVcXHUwYmE0XFx1MGJjOFxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJcXHUwYjk1XFx1MGI5ZlxcdTBiYzhcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcImlPUy1cXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmJlXFx1MGJhOSBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQtXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJiZVxcdTBiYTkgU25hcGNoYXRcIixDb21tdW5pdHk6XCJcXHUwYjlhXFx1MGJhZVxcdTBiYzJcXHUwYjk1XFx1MGJhZVxcdTBiY2RcIixTdXBwb3J0OlwiXFx1MGI4NlxcdTBiYTRcXHUwYmIwXFx1MGJiNVxcdTBiYzFcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJcXHUwYjlhXFx1MGJhZVxcdTBiYzJcXHUwYjk1IFxcdTBiYjVcXHUwYmI0XFx1MGJiZlxcdTBiOTVcXHUwYmJlXFx1MGI5ZlxcdTBiY2RcXHUwYjlmXFx1MGJjMVxcdTBiYTRcXHUwYmIyXFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1MGJhYVxcdTBiYmVcXHUwYmE0XFx1MGJjMVxcdTBiOTVcXHUwYmJlXFx1MGJhYVxcdTBiY2RcXHUwYmFhXFx1MGJjMSBcXHUwYmFlXFx1MGJjOFxcdTBiYWZcXHUwYmFlXFx1MGJjZFwiLFNuYXBjb2RlczpcIlNuYXBjb2Rlc1wiLEdlb2ZpbHRlcnM6XCJHZW9maWx0ZXJzXCIsQ3JlYXRlOlwiXFx1MGJiNVxcdTBiOWZcXHUwYmJmXFx1MGI5NVxcdTBiOWZcXHUwYmNkXFx1MGI5ZlxcdTBiYmZcXHUwYjk1XFx1MGJiM1xcdTBiY2QgJiBcXHUwYmIyXFx1MGJjNlxcdTBiYTlcXHUwYmNkXFx1MGJiOFxcdTBiYjhcXHUwYmNkXCIsTWFwOlwiXFx1MGJiNVxcdTBiYjBcXHUwYmM4XFx1MGJhYVxcdTBiOWZcXHUwYmFlXFx1MGJjZFwiLEFkdmVydGlzaW5nOlwiXFx1MGJiNVxcdTBiYmZcXHUwYmIzXFx1MGJhZVxcdTBiY2RcXHUwYmFhXFx1MGJiMFxcdTBiYWVcXHUwYmNkIFxcdTBiOWFcXHUwYmM2XFx1MGJhZlxcdTBiY2RcXHUwYmE0XFx1MGJiMlxcdTBiY2RcIixcIkJ1eSBBZHNcIjpcIlxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjOCBcXHUwYmI1XFx1MGJiZVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYzFcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjYVxcdTBiYjNcXHUwYmNkXFx1MGI5NVxcdTBiYzhcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiXFx1MGI4NVxcdTBiYjBcXHUwYjlhXFx1MGJiZlxcdTBiYWZcXHUwYmIyXFx1MGJjZCBcXHUwYmI1XFx1MGJiZlxcdTBiYjNcXHUwYmFlXFx1MGJjZFxcdTBiYWFcXHUwYmIwXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGJhOFxcdTBiYzJcXHUwYmIyXFx1MGI5NVxcdTBiYWVcXHUwYmNkXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwYmFhXFx1MGJiZlxcdTBiYjBcXHUwYmJlXFx1MGJhM1xcdTBiY2RcXHUwYjlmXFx1MGJjZCBcXHUwYmI1XFx1MGJiNFxcdTBiYmZcXHUwYjk1XFx1MGJiZVxcdTBiOWZcXHUwYmNkXFx1MGI5ZlxcdTBiYzFcXHUwYmE0XFx1MGJiMlxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjAgXFx1MGJiNVxcdTBiYmZcXHUwYmE0XFx1MGJiZlxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLExlZ2FsOlwiXFx1MGI5YVxcdTBiOWZcXHUwYmNkXFx1MGI5ZlxcdTBiYjBcXHUwYmMwXFx1MGJhNFxcdTBiYmZcXHUwYmFmXFx1MGJiZVxcdTBiYTlcXHUwYmI1XFx1MGJjOFwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MGI5YVxcdTBiYzdcXHUwYmI1XFx1MGJjOCBcXHUwYmI1XFx1MGJiZlxcdTBiYTRcXHUwYmJmXFx1MGJhZVxcdTBiYzFcXHUwYmIxXFx1MGJjOFxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLEltcHJlc3N1bTpcIlxcdTBiOWFcXHUwYjlmXFx1MGJjZFxcdTBiOWYgXFx1MGI4NVxcdTBiYjFcXHUwYmJmXFx1MGJiNVxcdTBiYmZcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiXFx1MGJhNFxcdTBiYTlcXHUwYmJmXFx1MGJhZlxcdTBiYzFcXHUwYmIwXFx1MGJiZlxcdTBiYWVcXHUwYmM4XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiY2FcXHUwYmIzXFx1MGJjZFxcdTBiOTVcXHUwYmM4XCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1MGJhNFxcdTBiYTlcXHUwYmJmXFx1MGJhZlxcdTBiYzFcXHUwYmIwXFx1MGJiZlxcdTBiYWVcXHUwYmM4IFxcdTBiYWVcXHUwYmM4XFx1MGJhZlxcdTBiYWVcXHUwYmNkXCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjYVxcdTBiYjNcXHUwYmNkXFx1MGI5NVxcdTBiYzhcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTBiYThcXHUwYmJmXFx1MGJhOVxcdTBiYzhcXHUwYmI1XFx1MGJjMVxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjlhXFx1MGJjN1xcdTBiYjVcXHUwYmM4IFxcdTBiYjVcXHUwYmJmXFx1MGJhNFxcdTBiYmZcXHUwYmFlXFx1MGJjMVxcdTBiYjFcXHUwYmM4XFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTBiYTRcXHUwYmE5XFx1MGJjZFxcdTBiYWVcXHUwYmFmIFxcdTBiODZcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMyXFx1MGJiMFxcdTBiY2RcXHUwYmI1XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYjBcXHUwYmMxXFx1MGJiNVxcdTBiYmZcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGJhNFxcdTBiY2FcXHUwYjlmXFx1MGJiMFxcdTBiY2RcXHUwYmFhXFx1MGJiZVxcdTBiYTkgXFx1MGJiNVxcdTBiYmZcXHUwYmE0XFx1MGJiZlxcdTBiYWVcXHUwYmMxXFx1MGJiMVxcdTBiYzhcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixDT01NVU5JVFlfVE9TOlwiXFx1MGI5YVxcdTBiYWVcXHUwYmMyXFx1MGI5NSBHZW9maWx0ZXIgXFx1MGJiNVxcdTBiOWZcXHUwYmJmXFx1MGI5NVxcdTBiOWZcXHUwYmNkXFx1MGI5ZlxcdTBiYmYgXFx1MGJiNVxcdTBiYmZcXHUwYmE0XFx1MGJiZlxcdTBiYWVcXHUwYmMxXFx1MGJiMVxcdTBiYzhcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixMRU5TX1NUVURJT19UT1M6XCJcXHUwYmIyXFx1MGJjNlxcdTBiYTlcXHUwYmNkXFx1MGJiOFxcdTBiY2QgU3R1ZGlvIFxcdTBiYjVcXHUwYmJmXFx1MGJhNFxcdTBiYmZcXHUwYmFlXFx1MGJjMVxcdTBiYjFcXHUwYmM4XFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiXFx1MGI4OVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiYTRcXHUwYmE5XFx1MGJiZlxcdTBiYWZcXHUwYmMxXFx1MGJiMFxcdTBiYmZcXHUwYmFlXFx1MGJjOFxcdTBiYTRcXHUwYmNkIFxcdTBiYTRcXHUwYmM3XFx1MGJiMFxcdTBiY2RcXHUwYmI1XFx1MGJjMVxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIlxcdTBiYTRcXHUwYmM3XFx1MGJiNVxcdTBiYzhcXHUwYmFmXFx1MGJiZVxcdTBiYTkgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIsY29udGVudDpbJ1xcdTBiYTRcXHUwYmIzXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJjOCBcXHUwYjg3XFx1MGJhZlxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzFcXHUwYmI1XFx1MGJhNFxcdTBiYjFcXHUwYmNkXFx1MGI5NVxcdTBiYzEgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHUwYjg3XFx1MGJhOFxcdTBiY2RcXHUwYmE0XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmM4XFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYWZcXHUwYmE5XFx1MGJjZFxcdTBiYWFcXHUwYjlmXFx1MGJjMVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYjk1XFx1MGJiZlxcdTBiYjFcXHUwYmNiXFx1MGJhZVxcdTBiY2Q8L2E+LiBcXHUwYjg3XFx1MGJhOFxcdTBiY2RcXHUwYmE0XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiODVcXHUwYmI1XFx1MGI5YVxcdTBiYmZcXHUwYmFmXFx1MGJhZVxcdTBiYmVcXHUwYmE5XFx1MGJiNVxcdTBiYzggXFx1MGI4ZVxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmJlXFx1MGJiMlxcdTBiY2QsIFxcdTBiYThcXHUwYmMwXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4NVxcdTBiYjVcXHUwYmIxXFx1MGJjZFxcdTBiYjFcXHUwYmM4IFxcdTBiODVcXHUwYmEzXFx1MGJjOFxcdTBiOTVcXHUwYmNkXFx1MGI5NSBcXHUwYmFlXFx1MGJjMVxcdTBiOWZcXHUwYmJmXFx1MGJhZlxcdTBiYmVcXHUwYmE0XFx1MGJjMS4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiXFx1MGJiNVxcdTBiYmZcXHUwYmIwXFx1MGJjMVxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzdcXHUwYmIwXFx1MGJjZFxcdTBiYjVcXHUwYmMxXFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIsY29udGVudDpbJ1xcdTBiYThcXHUwYmJlXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4OVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiYjVcXHUwYmJmXFx1MGJiMFxcdTBiYzFcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjOCBcXHUwYmE4XFx1MGJiZlxcdTBiYTlcXHUwYmM4XFx1MGJiNVxcdTBiYmZcXHUwYmIyXFx1MGJjZCBcXHUwYmI1XFx1MGJjOFxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjYVxcdTBiYjNcXHUwYmNkXFx1MGJiM1xcdTBiYjVcXHUwYmMxXFx1MGJhZVxcdTBiY2QsIFxcdTBiOGVcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYmI1XFx1MGJiMlxcdTBiYzhcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmIzXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJiZlxcdTBiYjJcXHUwYmNkIFxcdTBiODlcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjg1XFx1MGJhOVxcdTBiYzFcXHUwYmFhXFx1MGJiNVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzggXFx1MGJhZVxcdTBiYzdcXHUwYmFlXFx1MGJjZFxcdTBiYWFcXHUwYjlmXFx1MGJjMVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYjVcXHUwYmMxXFx1MGJhZVxcdTBiY2QgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTBiODdcXHUwYmE4XFx1MGJjZFxcdTBiYTRcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzhcXHUwYmFhXFx1MGJjZCBcXHUwYmFhXFx1MGJhZlxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJjMVxcdTBiOTVcXHUwYmJmXFx1MGJiMVxcdTBiY2JcXHUwYmFlXFx1MGJjZDwvYT4uJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTBiOWFcXHUwYmM2XFx1MGJhZlxcdTBiYjJcXHUwYmNkXFx1MGJhNFxcdTBiYmZcXHUwYmIxXFx1MGJhOVxcdTBiY2QgXFx1MGJhZVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYmFhXFx1MGI5NVxcdTBiYzFcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmJlXFx1MGJhZlxcdTBiY2RcXHUwYmI1XFx1MGJjMVwiLGNvbnRlbnQ6WydcXHUwYjhlXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGJhNFxcdTBiYjNcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmM4IFxcdTBiYThcXHUwYmMwXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4ZVxcdTBiYjVcXHUwYmNkXFx1MGJiNVxcdTBiYmVcXHUwYmIxXFx1MGJjMSBcXHUwYmFhXFx1MGJhZlxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJjMVxcdTBiOTVcXHUwYmJmXFx1MGJiMVxcdTBiYzBcXHUwYmIwXFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCwgXFx1MGJhNFxcdTBiYjNcXHUwYjlhXFx1MGJjZCBcXHUwYjlhXFx1MGJjNlxcdTBiYWZcXHUwYmIyXFx1MGJjZFxcdTBiYTRcXHUwYmJmXFx1MGJiMVxcdTBiYTlcXHUwYmM4XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYTNcXHUwYmNkXFx1MGI5NVxcdTBiYmVcXHUwYmEzXFx1MGJiZlxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmMxIFxcdTBiYWVcXHUwYmIxXFx1MGJjZFxcdTBiYjFcXHUwYmMxXFx1MGJhZVxcdTBiY2QgXFx1MGI4ZVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiYTRcXHUwYmIzXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJiZlxcdTBiYTlcXHUwYmNkIFxcdTBiOWFcXHUwYmM2XFx1MGJhZlxcdTBiYjJcXHUwYmNkXFx1MGJhNFxcdTBiYmZcXHUwYmIxXFx1MGJhOVxcdTBiY2QgXFx1MGJhZVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4NVxcdTBiYTlcXHUwYmMxXFx1MGJhYVxcdTBiYjVcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmM4XFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYmZcXHUwYmFmIFxcdTBiYTRcXHUwYjk1XFx1MGJiNVxcdTBiYjJcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmM4XFx1MGI5YVxcdTBiY2QgXFx1MGI5YVxcdTBiYzdcXHUwYjk1XFx1MGJiMFxcdTBiYmZcXHUwYjk1XFx1MGJjZFxcdTBiOTUgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTBiODdcXHUwYmE4XFx1MGJjZFxcdTBiYTRcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzhcXHUwYmFhXFx1MGJjZCBcXHUwYmFhXFx1MGJhZlxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJjMVxcdTBiOTVcXHUwYmJmXFx1MGJiMVxcdTBiY2JcXHUwYmFlXFx1MGJjZDwvYT4uJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJcXHUwYjlhXFx1MGJhOFxcdTBiY2RcXHUwYmE0XFx1MGJjOFxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJiMlxcdTBiY2RcIixjb250ZW50OlsnXFx1MGJhNFxcdTBiY2FcXHUwYjlmXFx1MGJiMFxcdTBiY2RcXHUwYmFhXFx1MGJjMVxcdTBiOWZcXHUwYmM4XFx1MGJhZiBcXHUwYmI1XFx1MGJiZlxcdTBiYjNcXHUwYmFlXFx1MGJjZFxcdTBiYWFcXHUwYmIwXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiYzggXFx1MGJiNVxcdTBiYjRcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmI1XFx1MGJjMVxcdTBiYWVcXHUwYmNkLCBcXHUwYjhlXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGJiNVxcdTBiYmZcXHUwYmIzXFx1MGJhZVxcdTBiY2RcXHUwYmFhXFx1MGJiMFxcdTBiYWFcXHUwYmNkIFxcdTBiYWFcXHUwYmIwXFx1MGJhYVxcdTBiY2RcXHUwYmFhXFx1MGJjMVxcdTBiYjBcXHUwYmM4XFx1MGI5NVxcdTBiYjNcXHUwYmJmXFx1MGJhOVxcdTBiY2QgXFx1MGI5YVxcdTBiYzZcXHUwYmFmXFx1MGJiMlxcdTBiY2RcXHUwYmE0XFx1MGJiZlxcdTBiYjFcXHUwYmE5XFx1MGJjOCBcXHUwYjg1XFx1MGJiM1xcdTBiYjVcXHUwYmJmXFx1MGI5ZlxcdTBiYjVcXHUwYmMxXFx1MGJhZVxcdTBiY2QgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHUwYjg3XFx1MGJhOFxcdTBiY2RcXHUwYmE0XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmM4XFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYWZcXHUwYmE5XFx1MGJjZFxcdTBiYWFcXHUwYjlmXFx1MGJjMVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYjk1XFx1MGJiZlxcdTBiYjFcXHUwYmNiXFx1MGJhZVxcdTBiY2Q8L2E+LiBcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4NlxcdTBiYjBcXHUwYmNkXFx1MGJiNVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmJmXFx1MGJhOVxcdTBiY2QgXFx1MGJiNVxcdTBiYmZcXHUwYmI1XFx1MGJiMFxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzggXFx1MGI4OVxcdTBiYjBcXHUwYmMxXFx1MGJiNVxcdTBiYmVcXHUwYjk1XFx1MGJjZFxcdTBiOTUgXFx1MGJhZVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYmFhXFx1MGJiZlxcdTBiYjEgXFx1MGJhNFxcdTBiYjNcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJiZlxcdTBiYjJcXHUwYmNkIFxcdTBiYTRcXHUwYmNhXFx1MGI5ZlxcdTBiYjBcXHUwYmNkXFx1MGJhYVxcdTBiYzFcXHUwYjlmXFx1MGJjOFxcdTBiYWYgXFx1MGJiNVxcdTBiYmZcXHUwYmIzXFx1MGJhZVxcdTBiY2RcXHUwYmFhXFx1MGJiMFxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmM4IFxcdTBiYjVcXHUwYmI0XFx1MGI5OVxcdTBiY2RcXHUwYjk1IFxcdTBiOGVcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjMVxcdTBiOWZcXHUwYmM4XFx1MGJhZiBcXHUwYmFlXFx1MGJjMlxcdTBiYTlcXHUwYmNkXFx1MGJiMVxcdTBiYmVcXHUwYmFlXFx1MGJjZCBcXHUwYmE4XFx1MGJhYVxcdTBiYjBcXHUwYmNkIFxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYmE0XFx1MGJjZCBcXHUwYmE0XFx1MGJjMVxcdTBiYTNcXHUwYmM4IFxcdTBiYThcXHUwYmJmXFx1MGJiMVxcdTBiYzFcXHUwYmI1XFx1MGJhOVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiODdcXHUwYmE4XFx1MGJjZFxcdTBiYTRcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzhcXHUwYmFhXFx1MGJjZCBcXHUwYmFhXFx1MGJhZlxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJiMlxcdTBiYmVcXHUwYmFlXFx1MGJjZC4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJcXHUwYmFlXFx1MGJjMlxcdTBiYTlcXHUwYmNkXFx1MGJiMVxcdTBiYmVcXHUwYmFlXFx1MGJjZCBcXHUwYmE4XFx1MGJhYVxcdTBiYjBcXHUwYmNkIFxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjMlxcdTBiOWZcXHUwYmNkXFx1MGI5ZlxcdTBiYmVcXHUwYmIzXFx1MGJiMFxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJcXHUwYmFlXFx1MGJjMlxcdTBiYTlcXHUwYmNkXFx1MGJiMVxcdTBiYmVcXHUwYmFlXFx1MGJjZCBcXHUwYmE4XFx1MGJhYVxcdTBiYjBcXHUwYmNkIFxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjMlxcdTBiOWZcXHUwYmNkXFx1MGI5ZlxcdTBiYmVcXHUwYmIzXFx1MGJiMFxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2Q6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTBiOWFcXHUwYmM2XFx1MGJhZlxcdTBiYjJcXHUwYmNkXFx1MGJhYVxcdTBiYmVcXHUwYjlmXFx1MGJjZFxcdTBiOWZcXHUwYmJmXFx1MGJiMlxcdTBiY2Q6IFxcdTBiOWNcXHUwYmE5XFx1MGJiNVxcdTBiYjBcXHUwYmJmIDE1LCAyMDE5XCIsQm9keTpbXCJcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4OVxcdTBiYjJcXHUwYmJlXFx1MGJiNVxcdTBiYmYgXFx1MGI4NVxcdTBiYjJcXHUwYmNkXFx1MGJiMlxcdTBiYTRcXHUwYmMxIFxcdTBiOWFcXHUwYmJlXFx1MGJhNFxcdTBiYTlcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmJmXFx1MGJhOVxcdTBiY2QgXFx1MGJhZVxcdTBiYzJcXHUwYmIyXFx1MGJhZVxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmM4XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYzhcXHUwYmFmXFx1MGJiZVxcdTBiYjNcXHUwYmMxXFx1MGJiNVxcdTBiYTRcXHUwYmM4XFx1MGJhNFxcdTBiY2QgXFx1MGJhNFxcdTBiYjVcXHUwYmJmXFx1MGJiMFxcdTBiY2RcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmMxLCBcXHUwYjk1XFx1MGJjMFxcdTBiYjRcXHUwYmM3XFx1MGJhZlxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwIFxcdTBiODVcXHUwYmFlXFx1MGJjOFxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYzFcXHUwYjk1XFx1MGJiM1xcdTBiYzggXFx1MGJhZVxcdTBiYmVcXHUwYmIxXFx1MGJjZFxcdTBiYjFcXHUwYmIyXFx1MGJiZVxcdTBiYWVcXHUwYmNkLiBcXHUwYmE4XFx1MGJiZlxcdTBiYTlcXHUwYmM4XFx1MGJiNVxcdTBiYmZcXHUwYmIyXFx1MGJjZCBcXHUwYjk1XFx1MGJjYVxcdTBiYjNcXHUwYmNkXFx1MGJiM1xcdTBiYzFcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjhlXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGJhNFxcdTBiYjNcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmM4IFxcdTBiODdcXHUwYmFmXFx1MGI5NVxcdTBiY2RcXHUwYjk1IFxcdTBiOWFcXHUwYmJmXFx1MGJiMiBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4NVxcdTBiYjVcXHUwYjlhXFx1MGJiZlxcdTBiYWZcXHUwYmFlXFx1MGJiZVxcdTBiYTlcXHUwYmI1XFx1MGJjOCwgXFx1MGI4N1xcdTBiYThcXHUwYmNkXFx1MGJhNCBcXHUwYjg1XFx1MGJhZVxcdTBiYzhcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXFx1MGI5NVxcdTBiYjNcXHUwYmM4XFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYWZcXHUwYmE5XFx1MGJjZFxcdTBiYWFcXHUwYjlmXFx1MGJjMVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYmYgXFx1MGI4NVxcdTBiYjVcXHUwYmIxXFx1MGJjZFxcdTBiYjFcXHUwYmM4XFx1MGJhNFxcdTBiY2QgXFx1MGJhNFxcdTBiOWZcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1IFxcdTBiYWVcXHUwYmMxXFx1MGI5ZlxcdTBiYmZcXHUwYmFmXFx1MGJiZVxcdTBiYTRcXHUwYmMxLlwiXSxUaXRsZTpcIlxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMCBcXHUwYjg1XFx1MGJhZVxcdTBiYzhcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIsQ09PS0lFX1BPUFVQOidcXHUwYmI1XFx1MGJhM1xcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYWVcXHUwYmNkISBcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGJiNVxcdTBiYjJcXHUwYmM4IFxcdTBiODlcXHUwYmIyXFx1MGJiZVxcdTBiYjVcXHUwYmIyXFx1MGJjZCBcXHUwYjg1XFx1MGJhOVxcdTBiYzFcXHUwYmFhXFx1MGJiNVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzggXFx1MGI4N1xcdTBiYWZcXHUwYjk1XFx1MGJjZFxcdTBiOTUgXFx1MGJhZVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYmFlXFx1MGJjN1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0IFxcdTBiODlcXHUwYmE0XFx1MGJiNVxcdTBiYzFcXHUwYmI1XFx1MGJhNFxcdTBiYjFcXHUwYmNkXFx1MGI5NVxcdTBiYmVcXHUwYjk1LCBcXHUwYjlhXFx1MGJjNlxcdTBiYWZcXHUwYmIyXFx1MGJjZFxcdTBiYTRcXHUwYmJmXFx1MGJiMVxcdTBiYTlcXHUwYmM4XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYTNcXHUwYmNkXFx1MGI5NVxcdTBiYmVcXHUwYmEzXFx1MGJiZlxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmIxXFx1MGJjZFxcdTBiOTVcXHUwYmJlXFx1MGI5NSBcXHUwYmFlXFx1MGJiMVxcdTBiY2RcXHUwYmIxXFx1MGJjMVxcdTBiYWVcXHUwYmNkIFxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYmFlXFx1MGJjZCBcXHUwYjlhXFx1MGJjNlxcdTBiYWZcXHUwYmNkXFx1MGJhNFxcdTBiYjJcXHUwYmNkIFxcdTBiYThcXHUwYmNiXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmJlXFx1MGI5NSBcXHUwYmE4XFx1MGJiZVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiODdcXHUwYmE4XFx1MGJjZFxcdTBiYTQgXFx1MGI4N1xcdTBiYTNcXHUwYmM4XFx1MGJhZlxcdTBiYTRcXHUwYmIzXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJiZlxcdTBiYjJcXHUwYmNkIFxcdTBiYWVcXHUwYmMyXFx1MGJhOVxcdTBiY2RcXHUwYmIxXFx1MGJiZVxcdTBiYWVcXHUwYmNkIFxcdTBiYThcXHUwYmFhXFx1MGJiMFxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiODlcXHUwYmIzXFx1MGJjZFxcdTBiYWFcXHUwYjlmIFxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYmFlXFx1MGJiMVxcdTBiY2RcXHUwYmIxXFx1MGJjMVxcdTBiYWVcXHUwYmNkIFxcdTBiODVcXHUwYmE0XFx1MGJjOFxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiY2JcXHUwYmE5XFx1MGJjZFxcdTBiYjEgXFx1MGJhNFxcdTBiY2FcXHUwYmI0XFx1MGJiZlxcdTBiYjJcXHUwYmNkXFx1MGJhOFxcdTBiYzFcXHUwYjlmXFx1MGJjZFxcdTBiYWFcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjOFxcdTBiYWFcXHUwYmNkIChcIlxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMFxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiKSBcXHUwYmFhXFx1MGJhZlxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJjMVxcdTBiOTVcXHUwYmJmXFx1MGJiMVxcdTBiY2JcXHUwYmFlXFx1MGJjZC4gXFx1MGJhOFxcdTBiYmVcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzggXFx1MGI4ZVxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmJmXFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYWZcXHUwYmE5XFx1MGJjZFxcdTBiYWFcXHUwYjlmXFx1MGJjMVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYjk1XFx1MGJiZlxcdTBiYjFcXHUwYmNiXFx1MGJhZVxcdTBiY2QgXFx1MGI4ZVxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmMxIFxcdTBiYWFcXHUwYmIxXFx1MGJjZFxcdTBiYjFcXHUwYmJmXFx1MGJhZiBcXHUwYjk1XFx1MGJjMlxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiYjJcXHUwYmNkIFxcdTBiYTRcXHUwYjk1XFx1MGJiNVxcdTBiYjJcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMVxcdTBiYWVcXHUwYmNkIFxcdTBiODlcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzAgXFx1MGJhNFxcdTBiYzZcXHUwYmIwXFx1MGJiZlxcdTBiYjVcXHUwYmMxXFx1MGI5NVxcdTBiYjNcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMVxcdTBiYWVcXHUwYmNkLCBcXHUwYjhlXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMCBcXHUwYjk1XFx1MGJjYVxcdTBiYjNcXHUwYmNkXFx1MGI5NVxcdTBiYzhcXHUwYmFmXFx1MGJjOFxcdTBiYWFcXHUwYmNkPC9hPiBcXHUwYmFhXFx1MGJiZVxcdTBiYjBcXHUwYmMxXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QhIFxcdTBiOTVcXHUwYmMwXFx1MGJiNFxcdTBiYzcgXCJcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzggXFx1MGI4ZlxcdTBiYjFcXHUwYmNkXFx1MGI5NVxcdTBiYmZcXHUwYmIxXFx1MGJjN1xcdTBiYTlcXHUwYmNkXCIgXFx1MGI4ZVxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmM4XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYmZcXHUwYmIzXFx1MGJiZlxcdTBiOTVcXHUwYmNkIFxcdTBiOWFcXHUwYmM2XFx1MGJhZlxcdTBiY2RcXHUwYmI1XFx1MGJhNFxcdTBiYTlcXHUwYmNkIFxcdTBiYWVcXHUwYmMyXFx1MGJiMlxcdTBiYWVcXHUwYmNkLCBcXHUwYjg1XFx1MGI5ZlxcdTBiYmZcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYjlmXFx1MGJjOFxcdTBiYTRcXHUwYmNkIFxcdTBiYTRcXHUwYmM3XFx1MGJiNVxcdTBiYzggXFx1MGI4NVxcdTBiYjJcXHUwYmNkXFx1MGJiMlxcdTBiYmVcXHUwYmE0IFxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjg5XFx1MGJiM1xcdTBiY2RcXHUwYmFhXFx1MGI5ZiBcXHUwYjg1XFx1MGJhOVxcdTBiYzhcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmMxXFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmM4XFx1MGJhZlxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYmFhXFx1MGJhZlxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0IFxcdTBiYThcXHUwYmMwXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI4ZVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMSBcXHUwYjkyXFx1MGJhYVxcdTBiY2RcXHUwYmFhXFx1MGJjMVxcdTBiYTRcXHUwYmIyXFx1MGJjZCBcXHUwYmI1XFx1MGJiNFxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJiZlxcdTBiYjFcXHUwYmMwXFx1MGJiMFxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QuIFxcdTBiYjVcXHUwYmIyXFx1MGJhYVxcdTBiY2RcXHUwYmFhXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJhZVxcdTBiY2QgXFx1MGI4OVxcdTBiYjNcXHUwYmNkXFx1MGJiMyBcIlhcIiBcXHUwYjhlXFx1MGJhOVxcdTBiY2RcXHUwYmFhXFx1MGJhNFxcdTBiYzhcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJiZlxcdTBiYjNcXHUwYmJmXFx1MGI5NVxcdTBiY2QgXFx1MGI5YVxcdTBiYzZcXHUwYmFmXFx1MGJjZFxcdTBiYjVcXHUwYmE0XFx1MGJhOVxcdTBiY2QgXFx1MGJhZVxcdTBiYzJcXHUwYmIyXFx1MGJhZVxcdTBiY2QsIFxcdTBiODVcXHUwYjlmXFx1MGJiZlxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmM4XFx1MGJhNFxcdTBiY2QgXFx1MGJhNFxcdTBiYzdcXHUwYmI1XFx1MGJjOCBcXHUwYjg1XFx1MGJiMlxcdTBiY2RcXHUwYmIyXFx1MGJiZVxcdTBiYTQgXFx1MGI4NVxcdTBiYTlcXHUwYmM4XFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJjMVxcdTBiOTVcXHUwYmNkIFxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMFxcdTBiOTVcXHUwYmIzXFx1MGJjOFxcdTBiYWZcXHUwYmMxXFx1MGJhZVxcdTBiY2QgXFx1MGJhOFxcdTBiYzBcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYmFlXFx1MGJiMVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmIyXFx1MGJiZVxcdTBiYWVcXHUwYmNkLiBcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwIFxcdTBiODVcXHUwYmFlXFx1MGJjOFxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYzFcXHUwYjk1XFx1MGJiM1xcdTBiYzggXFx1MGJhZVxcdTBiYmVcXHUwYmIxXFx1MGJjZFxcdTBiYjFcXHUwYmMxXFx1MGJiNVxcdTBiYTRcXHUwYmIxXFx1MGJjZFxcdTBiOTVcXHUwYmMxIFxcdTBiYWVcXHUwYmIxXFx1MGJjZFxcdTBiYjFcXHUwYmMxXFx1MGJhZVxcdTBiY2QgXFx1MGI4OVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiOTJcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXFx1MGJhNFxcdTBiYjJcXHUwYmM4IFxcdTBiYjVcXHUwYmJmXFx1MGJiMlxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYmZcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmNhXFx1MGJiM1xcdTBiY2RcXHUwYmI1XFx1MGJhNFxcdTBiYjFcXHUwYmNkXFx1MGI5NVxcdTBiYzEsIFxcdTBiOGVcXHUwYmE4XFx1MGJjZFxcdTBiYTQgXFx1MGJhOFxcdTBiYzdcXHUwYmIwXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJiZlxcdTBiYjJcXHUwYmMxXFx1MGJhZVxcdTBiY2QgXCJcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzAgXFx1MGI4NVxcdTBiYWVcXHUwYmM4XFx1MGJhYVxcdTBiY2RcXHUwYmFhXFx1MGJjMVxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiIFxcdTBiODVcXHUwYmIyXFx1MGJjZFxcdTBiYjJcXHUwYmE0XFx1MGJjMSBcXHUwYjhlXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMCBcXHUwYjk1XFx1MGJjYVxcdTBiYjNcXHUwYmNkXFx1MGI5NVxcdTBiYzg8L2E+IFxcdTBiYWFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMVxcdTBiOWFcXHUwYmNkIFxcdTBiOWFcXHUwYmM2XFx1MGJiMlxcdTBiY2RcXHUwYmIyXFx1MGJjMVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkLicsQ09PS0lFX1BPUFVQX0VVOidcXHUwYmI1XFx1MGJhM1xcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYWVcXHUwYmNkISBcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGJiNVxcdTBiYjJcXHUwYmM4IFxcdTBiODlcXHUwYmIyXFx1MGJiZVxcdTBiYjVcXHUwYmIyXFx1MGJjZCBcXHUwYjg1XFx1MGJhOVxcdTBiYzFcXHUwYmFhXFx1MGJiNVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzggXFx1MGI4N1xcdTBiYWZcXHUwYjk1XFx1MGJjZFxcdTBiOTUgXFx1MGJhZVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYmFlXFx1MGJjN1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0IFxcdTBiODlcXHUwYmE0XFx1MGJiNVxcdTBiYzFcXHUwYmI1XFx1MGJhNFxcdTBiYjFcXHUwYmNkXFx1MGI5NVxcdTBiYmVcXHUwYjk1LCBcXHUwYjlhXFx1MGJjNlxcdTBiYWZcXHUwYmIyXFx1MGJjZFxcdTBiYTRcXHUwYmJmXFx1MGJiMVxcdTBiYTlcXHUwYmM4XFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYTNcXHUwYmNkXFx1MGI5NVxcdTBiYmVcXHUwYmEzXFx1MGJiZlxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmIxXFx1MGJjZFxcdTBiOTVcXHUwYmJlXFx1MGI5NSBcXHUwYmFlXFx1MGJiMVxcdTBiY2RcXHUwYmIxXFx1MGJjMVxcdTBiYWVcXHUwYmNkIFxcdTBiYjVcXHUwYmJmXFx1MGJiM1xcdTBiYWVcXHUwYmNkXFx1MGJhYVxcdTBiYjBcXHUwYmFlXFx1MGJjZCBcXHUwYjlhXFx1MGJjNlxcdTBiYWZcXHUwYmNkXFx1MGJhNFxcdTBiYjJcXHUwYmNkIFxcdTBiYThcXHUwYmNiXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmJlXFx1MGI5NSBcXHUwYmE4XFx1MGJiZVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiODdcXHUwYmE4XFx1MGJjZFxcdTBiYTQgXFx1MGI4N1xcdTBiYTNcXHUwYmM4XFx1MGJhZlxcdTBiYTRcXHUwYmIzXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJiZlxcdTBiYjJcXHUwYmNkIFxcdTBiYWVcXHUwYmMyXFx1MGJhOVxcdTBiY2RcXHUwYmIxXFx1MGJiZVxcdTBiYWVcXHUwYmNkIFxcdTBiYThcXHUwYmFhXFx1MGJiMFxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiODlcXHUwYmIzXFx1MGJjZFxcdTBiYWFcXHUwYjlmIFxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYmFlXFx1MGJiMVxcdTBiY2RcXHUwYmIxXFx1MGJjMVxcdTBiYWVcXHUwYmNkIFxcdTBiODVcXHUwYmE0XFx1MGJjOFxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiY2JcXHUwYmE5XFx1MGJjZFxcdTBiYjEgXFx1MGJhNFxcdTBiY2FcXHUwYmI0XFx1MGJiZlxcdTBiYjJcXHUwYmNkXFx1MGJhOFxcdTBiYzFcXHUwYjlmXFx1MGJjZFxcdTBiYWFcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjOFxcdTBiYWFcXHUwYmNkIChcIlxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMFxcdTBiOTVcXHUwYmIzXFx1MGJjZFwiKSBcXHUwYmFhXFx1MGJhZlxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmMxXFx1MGJhNFxcdTBiY2RcXHUwYmE0XFx1MGJjMVxcdTBiOTVcXHUwYmJmXFx1MGJiMVxcdTBiY2JcXHUwYmFlXFx1MGJjZC4gXFx1MGJhOFxcdTBiYmVcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzggXFx1MGI4ZVxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmJmXFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYWZcXHUwYmE5XFx1MGJjZFxcdTBiYWFcXHUwYjlmXFx1MGJjMVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYjk1XFx1MGJiZlxcdTBiYjFcXHUwYmNiXFx1MGJhZVxcdTBiY2QgXFx1MGI4ZVxcdTBiYTlcXHUwYmNkXFx1MGJhYVxcdTBiYTRcXHUwYmMxXFx1MGJhYVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYmZcXHUwYmFmIFxcdTBiOTVcXHUwYmMyXFx1MGI5ZlxcdTBiYzFcXHUwYmE0XFx1MGJiMlxcdTBiY2QgXFx1MGJhNFxcdTBiOTVcXHUwYmI1XFx1MGJiMlxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMxXFx1MGJhZVxcdTBiY2QgXFx1MGI4OVxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMCBcXHUwYmE0XFx1MGJjNlxcdTBiYjBcXHUwYmJmXFx1MGJiNVxcdTBiYzFcXHUwYjk1XFx1MGJiM1xcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMxXFx1MGJhZVxcdTBiY2QsIFxcdTBiOGVcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwIFxcdTBiOTVcXHUwYmNhXFx1MGJiM1xcdTBiY2RcXHUwYjk1XFx1MGJjOFxcdTBiYWZcXHUwYmM4XFx1MGJhYVxcdTBiY2Q8L2E+IFxcdTBiYWFcXHUwYmJlXFx1MGJiMFxcdTBiYzFcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCEgXFx1MGI5NVxcdTBiYzBcXHUwYmI0XFx1MGJjNyBcIlxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMFxcdTBiOTVcXHUwYmIzXFx1MGJjOCBcXHUwYjhmXFx1MGJiMVxcdTBiY2RcXHUwYjk1XFx1MGJiZlxcdTBiYjFcXHUwYmM3XFx1MGJhOVxcdTBiY2RcIiBcXHUwYjhlXFx1MGJhOVxcdTBiY2RcXHUwYmFhXFx1MGJhNFxcdTBiYzhcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJiZlxcdTBiYjNcXHUwYmJmXFx1MGI5NVxcdTBiY2QgXFx1MGI5YVxcdTBiYzZcXHUwYmFmXFx1MGJjZFxcdTBiYjVcXHUwYmE0XFx1MGJhOVxcdTBiY2QgXFx1MGJhZVxcdTBiYzJcXHUwYmIyXFx1MGJhZVxcdTBiY2QsIFxcdTBiODVcXHUwYjlmXFx1MGJiZlxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiOWZcXHUwYmM4XFx1MGJhNFxcdTBiY2QgXFx1MGJhNFxcdTBiYzdcXHUwYmI1XFx1MGJjOCBcXHUwYjg1XFx1MGJiMlxcdTBiY2RcXHUwYmIyXFx1MGJiZVxcdTBiYTQgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiODlcXHUwYmIzXFx1MGJjZFxcdTBiYWFcXHUwYjlmIFxcdTBiODVcXHUwYmE5XFx1MGJjOFxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYjk1XFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzhcXHUwYmFmXFx1MGJjMVxcdTBiYWVcXHUwYmNkIFxcdTBiYWFcXHUwYmFmXFx1MGJhOVxcdTBiY2RcXHUwYmFhXFx1MGI5ZlxcdTBiYzFcXHUwYmE0XFx1MGJjZFxcdTBiYTQgXFx1MGJhOFxcdTBiYzBcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjhlXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMxIFxcdTBiOTJcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXFx1MGJhNFxcdTBiYjJcXHUwYmNkIFxcdTBiYjVcXHUwYmI0XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmJmXFx1MGJiMVxcdTBiYzBcXHUwYmIwXFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZC4gXFx1MGJiNVxcdTBiYjJcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmFlXFx1MGJjZCBcXHUwYjg5XFx1MGJiM1xcdTBiY2RcXHUwYmIzIFwiWFwiIFxcdTBiOGVcXHUwYmE5XFx1MGJjZFxcdTBiYWFcXHUwYmE0XFx1MGJjOFxcdTBiOTVcXHUwYmNkIFxcdTBiOTVcXHUwYmJmXFx1MGJiM1xcdTBiYmZcXHUwYjk1XFx1MGJjZCBcXHUwYjlhXFx1MGJjNlxcdTBiYWZcXHUwYmNkXFx1MGJiNVxcdTBiYTRcXHUwYmE5XFx1MGJjZCBcXHUwYmFlXFx1MGJjMlxcdTBiYjJcXHUwYmFlXFx1MGJjZCwgXFx1MGI4NVxcdTBiOWZcXHUwYmJmXFx1MGJhYVxcdTBiY2RcXHUwYmFhXFx1MGI5ZlxcdTBiYzhcXHUwYmE0XFx1MGJjZCBcXHUwYmE0XFx1MGJjN1xcdTBiYjVcXHUwYmM4IFxcdTBiODVcXHUwYmIyXFx1MGJjZFxcdTBiYjJcXHUwYmJlXFx1MGJhNCBcXHUwYjg1XFx1MGJhOVxcdTBiYzhcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmMxXFx1MGI5NVxcdTBiY2QgXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwXFx1MGI5NVxcdTBiYjNcXHUwYmM4XFx1MGJhZlxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYmE4XFx1MGJjMFxcdTBiOTlcXHUwYmNkXFx1MGI5NVxcdTBiYjNcXHUwYmNkIFxcdTBiYWVcXHUwYmIxXFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYjJcXHUwYmJlXFx1MGJhZVxcdTBiY2QuIFxcdTBiODlcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCBcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzAgXFx1MGI4NVxcdTBiYWVcXHUwYmM4XFx1MGJhYVxcdTBiY2RcXHUwYmFhXFx1MGJjMVxcdTBiOTVcXHUwYmIzXFx1MGJjOCBcXHUwYmFlXFx1MGJiZVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYzFcXHUwYmI1XFx1MGJhNFxcdTBiYjFcXHUwYmNkXFx1MGI5NVxcdTBiYzEgXFx1MGJhZVxcdTBiYjFcXHUwYmNkXFx1MGJiMVxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcXHUwYjg5XFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QgXFx1MGI5MlxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYzFcXHUwYmE0XFx1MGJiMlxcdTBiYzggXFx1MGJiNVxcdTBiYmZcXHUwYmIyXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJiZlxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiY2FcXHUwYmIzXFx1MGJjZFxcdTBiYjVcXHUwYmE0XFx1MGJiMVxcdTBiY2RcXHUwYjk1XFx1MGJjMSwgXFx1MGI4ZVxcdTBiYThcXHUwYmNkXFx1MGJhNCBcXHUwYmE4XFx1MGJjN1xcdTBiYjBcXHUwYmE0XFx1MGJjZFxcdTBiYTRcXHUwYmJmXFx1MGJiMlxcdTBiYzFcXHUwYmFlXFx1MGJjZCBcIlxcdTBiOTVcXHUwYmMxXFx1MGI5NVxcdTBiY2RcXHUwYjk1XFx1MGJjMCBcXHUwYjg1XFx1MGJhZVxcdTBiYzhcXHUwYmFhXFx1MGJjZFxcdTBiYWFcXHUwYmMxXFx1MGI5NVxcdTBiYjNcXHUwYmNkXCIgXFx1MGI4NVxcdTBiYjJcXHUwYmNkXFx1MGJiMlxcdTBiYTRcXHUwYmMxIFxcdTBiOGVcXHUwYjk5XFx1MGJjZFxcdTBiOTVcXHUwYmIzXFx1MGJjZCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwIFxcdTBiOTVcXHUwYmNhXFx1MGJiM1xcdTBiY2RcXHUwYjk1XFx1MGJjODwvYT4gXFx1MGJhYVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYTRcXHUwYmNkXFx1MGJhNFxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMxXFx1MGI5YVxcdTBiY2QgXFx1MGI5YVxcdTBiYzZcXHUwYmIyXFx1MGJjZFxcdTBiYjJcXHUwYmMxXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2QuJyxBZ3JlZVRleHQ6XCJcXHUwYjk1XFx1MGJjMVxcdTBiOTVcXHUwYmNkXFx1MGI5NVxcdTBiYzBcXHUwYjk1XFx1MGJiM1xcdTBiYzggXFx1MGI4ZlxcdTBiYjFcXHUwYmNkXFx1MGI5NVxcdTBiYmZcXHUwYmIxXFx1MGJjN1xcdTBiYTlcXHUwYmNkXCIsU2V0dGluZ3NUZXh0OlwiXFx1MGI5NVxcdTBiYzFcXHUwYjk1XFx1MGJjZFxcdTBiOTVcXHUwYmMwIFxcdTBiODVcXHUwYmFlXFx1MGJjOFxcdTBiYWFcXHUwYmNkXFx1MGJhYVxcdTBiYzFcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTBiYWVcXHUwYmMwXFx1MGJiMVxcdTBiYjJcXHUwYmM4XFx1MGJhYVxcdTBiY2QgXFx1MGJhYVxcdTBiYzFcXHUwYjk1XFx1MGJiZVxcdTBiYjBcXHUwYmIzXFx1MGJiZlxcdTBiYWZcXHUwYmMxXFx1MGI5OVxcdTBiY2RcXHUwYjk1XFx1MGJiM1xcdTBiY2RcIixTcG90bGlnaHQ6XCJcXHUwYmI4XFx1MGJjZFxcdTBiYWFcXHUwYmJlXFx1MGI5ZlxcdTBiY2RcXHUwYmIyXFx1MGJjOFxcdTBiOWZcXHUwYmNkXCJ9LFwidGUtaW5cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHUwYzMyXFx1MGM0OFxcdTBjMzVcXHUwYzRkXCIsQWRzOlwiXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGMxNVxcdTBjMWZcXHUwYzI4XFx1MGMzMlxcdTBjNDFcIixDb21wYW55OlwiXFx1MGMxNVxcdTBjMDJcXHUwYzJhXFx1MGM0NlxcdTBjMjhcXHUwYzQwXCIsSG9tZTpcIlxcdTBjMzlcXHUwYzRiXFx1MGMyZVxcdTBjNGRcIixCbG9nOlwiXFx1MGMyY1xcdTBjNGRcXHUwYzMyXFx1MGMzZVxcdTBjMTdcXHUwYzRkXCIsSm9iczpcIlxcdTBjMDlcXHUwYzI2XFx1MGM0ZFxcdTBjMmZcXHUwYzRiXFx1MGMxN1xcdTBjM2VcXHUwYzMyXFx1MGM0MVwiLENhcmVlcnM6XCJcXHUwYzE1XFx1MGM0NlxcdTBjMzBcXHUwYzQwXFx1MGMzMFxcdTBjNGRcXHUyMDBjXFx1MGMzMlxcdTBjNDFcIixQcmVzczpcIlxcdTBjMmFcXHUwYzRkXFx1MGMzMFxcdTBjNDZcXHUwYzM4XFx1MGM0ZFwiLE5ld3M6XCJcXHUwYzI4XFx1MGM0ZFxcdTBjMmZcXHUwYzQyXFx1MGMzOFxcdTBjNGRcIixcIlByZXNzIElucXVpcmllc1wiOlwiXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGM0NlxcdTBjMzhcXHUwYzRkIFxcdTBjMzVcXHUwYzNmXFx1MGMxYVxcdTBjM2VcXHUwYzMwXFx1MGMyM1xcdTBjMzJcXHUwYzQxXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdTBjMmRcXHUwYzNlXFx1MGMzN1wiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlNuYXBjaGF0IFxcdTBjMjFcXHUwYzRjXFx1MGMyOFxcdTBjNGRcXHUyMDBjXFx1MGMzMlxcdTBjNGJcXHUwYzIxXFx1MGM0ZCBcXHUwYzFhXFx1MGM0N1xcdTBjMmZcXHUwYzAyXFx1MGMyMVxcdTBjM2ZcIixEb3dubG9hZDpcIlxcdTBjMjFcXHUwYzRjXFx1MGMyOFxcdTBjNGRcXHUyMDBjXFx1MGMzMlxcdTBjNGJcXHUwYzIxXFx1MGM0ZCBcXHUwYzFhXFx1MGM0N1xcdTBjMmZcXHUwYzAyXFx1MGMyMVxcdTBjM2ZcIixLaXQ6XCJcXHUwYzE1XFx1MGMzZlxcdTBjMWZcXHUwYzRkXCIsU3RvcmllczpcIlxcdTBjMzhcXHUwYzRkXFx1MGMxZlxcdTBjNGJcXHUwYzMwXFx1MGM0MFxcdTBjMzhcXHUwYzRkXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTBjMzhcXHUwYzRkXFx1MGMyMFxcdTBjNGJcXHUwYzMwXFx1MGM0ZFwiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiaU9TIFxcdTBjMTVcXHUwYzRhXFx1MGMzMFxcdTBjMTVcXHUwYzQxIFNuYXBjaGF0XCIsXCJTbmFwY2hhdCBmb3IgQW5kcm9pZFwiOlwiQW5kcm9pZCBcXHUwYzE1XFx1MGM0YVxcdTBjMzBcXHUwYzE1XFx1MGM0MSBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTBjMTVcXHUwYzJlXFx1MGM0ZFxcdTBjMmZcXHUwYzQyXFx1MGMyOFxcdTBjM2ZcXHUwYzFmXFx1MGM0MFwiLFN1cHBvcnQ6XCJcXHUwYzJlXFx1MGMyNlxcdTBjNGRcXHUwYzI2XFx1MGMyNFxcdTBjNDFcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJcXHUwYzE1XFx1MGMyZVxcdTBjNGRcXHUwYzJmXFx1MGM0MlxcdTBjMjhcXHUwYzNmXFx1MGMxZlxcdTBjNDAgXFx1MGMyZVxcdTBjM2VcXHUwYzMwXFx1MGM0ZFxcdTBjMTdcXHUwYzI2XFx1MGMzMFxcdTBjNGRcXHUwYzM2XFx1MGMxNVxcdTBjM2VcXHUwYzMyXFx1MGM0MVwiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1MGMzOFxcdTBjNDdcXHUwYzJiXFx1MGM0ZFxcdTBjMWZcXHUwYzQwIFxcdTBjMzhcXHUwYzQ2XFx1MGMwMlxcdTBjMWZcXHUwYzMwXFx1MGM0ZFwiLFNuYXBjb2RlczpcIlNuYXBcXHUyMDBjXFx1MjAwY1xcdTBjMTVcXHUwYzRiXFx1MGMyMVxcdTBjNGRcXHUyMDBjXFx1MjAwY1xcdTBjMzJcXHUwYzQxXCIsR2VvZmlsdGVyczpcIlxcdTBjMWNcXHUwYzNmXFx1MGMyZlxcdTBjNGIgXFx1MGMyYlxcdTBjM2ZcXHUwYzMyXFx1MGM0ZFxcdTBjMWZcXHUwYzMwXFx1MGM0ZFxcdTIwMGNcXHUwYzMyXFx1MGM0MVwiLENyZWF0ZTpcIlxcdTBjMmJcXHUwYzNmXFx1MGMzMlxcdTBjNGRcXHUwYzFmXFx1MGMzMFxcdTBjNGRcXHUyMDBjXFx1MGMzOFxcdTBjNGQgJiBcXHUwYzMyXFx1MGM0NlxcdTBjMjhcXHUwYzRkXFx1MGMzOFxcdTBjNDZcXHUwYzM4XFx1MGM0ZFwiLE1hcDpcIlxcdTBjMmVcXHUwYzRkXFx1MGMyZlxcdTBjM2VcXHUwYzJhXFx1MGM0ZFwiLEFkdmVydGlzaW5nOlwiXFx1MGMwNVxcdTBjMjFcXHUwYzRkXFx1MGMzNVxcdTBjMzBcXHUwYzRkXFx1MGMxZlxcdTBjNDhcXHUwYzFjXFx1MGMzZlxcdTBjMDJcXHUwYzE3XFx1MGM0ZFwiLFwiQnV5IEFkc1wiOlwiXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGMxNVxcdTBjMWZcXHUwYzI4XFx1MGMzMlxcdTBjNDEgXFx1MGMxNVxcdTBjNGFcXHUwYzI4XFx1MGM0MVxcdTBjMTdcXHUwYzRiXFx1MGMzMlxcdTBjNDEgXFx1MGMxYVxcdTBjNDdcXHUwYzJmXFx1MGMwMlxcdTBjMjFcXHUwYzNmXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiXFx1MGMwNVxcdTBjMjFcXHUwYzRkXFx1MGMzNVxcdTBjMzBcXHUwYzRkXFx1MGMxZlxcdTBjNDhcXHUwYzFjXFx1MGMzZlxcdTBjMDJcXHUwYzE3XFx1MGM0ZCBcXHUwYzM1XFx1MGMzZlxcdTBjMjdcXHUwYzNlXFx1MGMyOFxcdTBjM2VcXHUwYzMyXFx1MGM0MVwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJcXHUwYzMwXFx1MGMzZVxcdTBjMWNcXHUwYzE1XFx1MGM0MFxcdTBjMmYgXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGMxNVxcdTBjMWZcXHUwYzI4XFx1MGMzMiBcXHUwYzMyXFx1MGM0OFxcdTBjMmNcXHUwYzRkXFx1MGMzMFxcdTBjMzBcXHUwYzQwXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwYzJjXFx1MGM0ZFxcdTBjMzBcXHUwYzNlXFx1MGMwMlxcdTBjMjFcXHUwYzRkIFxcdTBjMmVcXHUwYzNlXFx1MGMzMFxcdTBjNGRcXHUwYzE3XFx1MGMyNlxcdTBjMzBcXHUwYzRkXFx1MGMzNlxcdTBjMTVcXHUwYzNlXFx1MGMzMlxcdTBjNDFcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlxcdTBjMmFcXHUwYzRkXFx1MGMzMFxcdTBjMmVcXHUwYzRiXFx1MGMzN1xcdTBjMjhcXHUwYzRkXFx1MGMzOFxcdTBjNGQgXFx1MGMzMFxcdTBjNDJcXHUwYzMyXFx1MGM0ZFxcdTBjMzhcXHUwYzRkXCIsTGVnYWw6XCJcXHUwYzMyXFx1MGM0MFxcdTBjMTdcXHUwYzMyXFx1MGM0ZFwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MGMzOFxcdTBjNDdcXHUwYzM1XFx1MGMzZSBcXHUwYzI4XFx1MGMzZlxcdTBjMmNcXHUwYzAyXFx1MGMyN1xcdTBjMjhcXHUwYzMyXFx1MGM0MVwiLEltcHJlc3N1bTpcIkltcHJlc3N1bVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTBjMTdcXHUwYzRiXFx1MGMyYVxcdTBjNGRcXHUwYzJmXFx1MGMyNFxcdTBjM2UgXFx1MGMzNVxcdTBjM2ZcXHUwYzI3XFx1MGMzZVxcdTBjMjhcXHUwYzAyXCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1MGMxN1xcdTBjNGJcXHUwYzJhXFx1MGM0ZFxcdTBjMmZcXHUwYzI0XFx1MGMzZSBcXHUwYzM4XFx1MGM0NlxcdTBjMDJcXHUwYzFmXFx1MGMzMFxcdTBjNGRcIixcIkNvb2tpZSBQb2xpY3lcIjpcIlxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMzNVxcdTBjM2ZcXHUwYzI3XFx1MGMzZVxcdTBjMjhcXHUwYzAyXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwYzJlXFx1MGM0NlxcdTBjMmVcXHUwYzMwXFx1MGM0MFxcdTBjMzhcXHUwYzRkIFxcdTBjMmZcXHUwYzRhXFx1MGMxNVxcdTBjNGRcXHUwYzE1IFxcdTBjMzhcXHUwYzQ3XFx1MGMzNVxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMmNcXHUwYzAyXFx1MGMyN1xcdTBjMjhcXHUwYzMyXFx1MGM0MVwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJcXHUwYzE1XFx1MGMzOFxcdTBjNGRcXHUwYzFmXFx1MGMyZVxcdTBjNGQgXFx1MGMxNVxcdTBjNGRcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQ3XFx1MGMxZlxcdTBjM2ZcXHUwYzM1XFx1MGM0ZCBcXHUwYzFmXFx1MGM0MlxcdTBjMzJcXHUwYzRkXFx1MGMzOFxcdTBjNGQgXFx1MGMyOFxcdTBjM2ZcXHUwYzJjXFx1MGMwMlxcdTBjMjdcXHUwYzI4XFx1MGMzMlxcdTBjNDFcIixDT01NVU5JVFlfVE9TOlwiXFx1MGMxNVxcdTBjMmVcXHUwYzRkXFx1MGMyZlxcdTBjNDJcXHUwYzI4XFx1MGMzZlxcdTBjMWZcXHUwYzQwIFxcdTBjMWNcXHUwYzNmXFx1MGMyZlxcdTBjNGJcXHUwYzJiXFx1MGMzZlxcdTBjMzJcXHUwYzRkXFx1MGMxZlxcdTBjMzBcXHUwYzRkIFxcdTBjMjhcXHUwYzNmXFx1MGMyY1xcdTBjMDJcXHUwYzI3XFx1MGMyOFxcdTBjMzJcXHUwYzQxXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1MGMyOFxcdTBjM2ZcXHUwYzJjXFx1MGMwMlxcdTBjMjdcXHUwYzI4XFx1MGMzMlxcdTBjNDFcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHUwYzJlXFx1MGM0MCBcXHUwYzE3XFx1MGM0YlxcdTBjMmFcXHUwYzRkXFx1MGMyZlxcdTBjMjRcXHUwYzNlIFxcdTBjMGVcXHUwYzAyXFx1MGMyYVxcdTBjM2ZcXHUwYzE1XFx1MGMzMlxcdTBjNDFcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHUwYzA1XFx1MGMzNVxcdTBjMzhcXHUwYzMwXFx1MGMyZVxcdTBjNDhcXHUwYzI4IFxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDBcXHUwYzMyXFx1MGM0MVwiLGNvbnRlbnQ6WydcXHUwYzM4XFx1MGM0OFxcdTBjMWZcXHUwYzRkIFxcdTBjMDZcXHUwYzJhXFx1MGMzMFxcdTBjNDdcXHUwYzFmXFx1MGM0ZCBcXHUwYzFhXFx1MGM0N1xcdTBjMmZcXHUwYzIxXFx1MGMwMlxcdTBjMzJcXHUwYzRiIFxcdTBjMzhcXHUwYzNlXFx1MGMyZlxcdTBjMmFcXHUwYzIxXFx1MGMxZlxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMTVcXHUwYzNmIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+XFx1MGMyZVxcdTBjNDdcXHUwYzAyIFxcdTBjMDggXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzJcXHUwYzI4XFx1MGM0MSBcXHUwYzA5XFx1MGMyYVxcdTBjMmZcXHUwYzRiXFx1MGMxN1xcdTBjM2ZcXHUwYzM4XFx1MGM0ZFxcdTBjMjRcXHUwYzNlXFx1MGMwMjwvYT4uIFxcdTBjMDggXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzJcXHUwYzQxIFxcdTBjMDVcXHUwYzM1XFx1MGMzOFxcdTBjMzBcXHUwYzAyIFxcdTBjMTVcXHUwYzNlXFx1MGMyY1xcdTBjMWZcXHUwYzRkXFx1MGMxZlxcdTBjM2YgXFx1MGMyZVxcdTBjNDBcXHUwYzMwXFx1MGM0MSBcXHUwYzM1XFx1MGMzZVxcdTBjMWZcXHUwYzNmXFx1MGMyOFxcdTBjM2YgXFx1MGMwNlxcdTBjMmJcXHUwYzRkIFxcdTBjMWFcXHUwYzQ3XFx1MGMyZlxcdTBjMzJcXHUwYzQ3XFx1MGMzMFxcdTBjNDEuJ119LFByZWZlcmVuY2VzOntoZWFkbGluZTpcIlxcdTBjMmFcXHUwYzRkXFx1MGMzMFxcdTBjM2VcXHUwYzI3XFx1MGMzZVxcdTBjMjhcXHUwYzRkXFx1MGMyZlxcdTBjMjRcXHUwYzMyXFx1MGM0MVwiLGNvbnRlbnQ6WydcXHUwYzJlXFx1MGM0MCBcXHUwYzJhXFx1MGM0ZFxcdTBjMzBcXHUwYzNlXFx1MGMyN1xcdTBjM2VcXHUwYzI4XFx1MGM0ZFxcdTBjMmZcXHUwYzI0XFx1MGMzMlxcdTBjMjhcXHUwYzQxIFxcdTBjMTdcXHUwYzQxXFx1MGMzMFxcdTBjNGRcXHUwYzI0XFx1MGM0MVxcdTBjMDJcXHUwYzFhXFx1MGM0MVxcdTBjMTVcXHUwYzRiXFx1MGMzNVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiwgXFx1MGMyZVxcdTBjMzBcXHUwYzNmXFx1MGMyZlxcdTBjNDEgXFx1MGMyZVxcdTBjM2UgXFx1MGMzNVxcdTBjNDZcXHUwYzJjXFx1MGM0ZFxcdTIwMGNcXHUwYzM4XFx1MGM0OFxcdTBjMWZcXHUwYzQxXFx1MGMzMlxcdTBjNGIgXFx1MGMyZVxcdTBjNDAgXFx1MGMwNVxcdTBjMjhcXHUwYzQxXFx1MGMyZFxcdTBjMzVcXHUwYzNlXFx1MGMyOFxcdTBjNGRcXHUwYzI4XFx1MGMzZiBcXHUwYzJlXFx1MGM0NlxcdTBjMzBcXHUwYzQxXFx1MGMxN1xcdTBjNDFcXHUwYzJhXFx1MGMzMFxcdTBjMWFcXHUwYzIxXFx1MGMzZVxcdTBjMjhcXHUwYzNmXFx1MGMxNVxcdTBjM2YgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTBjMmVcXHUwYzQ3XFx1MGMyZVxcdTBjNDEgXFx1MGMwOCBcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzMlxcdTBjMjhcXHUwYzQxIFxcdTBjMDlcXHUwYzJhXFx1MGMyZlxcdTBjNGJcXHUwYzE3XFx1MGMzZlxcdTBjMzhcXHUwYzRkXFx1MGMyNFxcdTBjM2VcXHUwYzAyPC9hPi4nXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1MGMyYVxcdTBjMjhcXHUwYzNmXFx1MGMyNFxcdTBjNDBcXHUwYzMwXFx1MGM0MSAmIFxcdTBjMGVcXHUwYzI4XFx1MGMzMlxcdTBjM2ZcXHUwYzFmXFx1MGMzZlxcdTBjMTVcXHUwYzRkXFx1MGMzOFxcdTBjNGRcIixjb250ZW50OlsnXFx1MGMyZVxcdTBjNDBcXHUwYzMwXFx1MGM0MSBcXHUwYzJlXFx1MGMzZSBcXHUwYzM4XFx1MGM0OFxcdTBjMWZcXHUwYzRkXFx1MjAwY1xcdTBjMjhcXHUwYzNmIFxcdTBjMGZcXHUwYzM1XFx1MGMzZlxcdTBjMjdcXHUwYzAyXFx1MGMxN1xcdTBjM2UgXFx1MGMwOVxcdTBjMmFcXHUwYzJmXFx1MGM0YlxcdTBjMTdcXHUwYzNmXFx1MGMzOFxcdTBjNGRcXHUwYzI0XFx1MGM0MVxcdTBjMjhcXHUwYzRkXFx1MGMyOFxcdTBjM2VcXHUwYzMwXFx1MGM0MSwgXFx1MGMzOFxcdTBjNDhcXHUwYzFmXFx1MGM0ZCBcXHUwYzJhXFx1MGM0ZFxcdTBjMzBcXHUwYzNlXFx1MGMyN1xcdTBjM2VcXHUwYzI4XFx1MGM0ZFxcdTBjMmZcXHUwYzI0XFx1MGMzMlxcdTBjMjhcXHUwYzQxIFxcdTBjMmVcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzFmXFx1MGMzMFxcdTBjNGQgXFx1MGMxYVxcdTBjNDdcXHUwYzJmXFx1MGMyMVxcdTBjMDIsIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQxIFxcdTBjMmVcXHUwYzNlIFxcdTBjMzhcXHUwYzQ4XFx1MGMxZlxcdTBjNDEgXFx1MGMyYVxcdTBjMjhcXHUwYzNmXFx1MGMyNFxcdTBjNDBcXHUwYzMwXFx1MGM0MSwgXFx1MGMyZVxcdTBjMzBcXHUwYzNmXFx1MGMyZlxcdTBjNDEgXFx1MGMyZVxcdTBjNDAgXFx1MGMwNVxcdTBjMjhcXHUwYzQxXFx1MGMyZFxcdTBjMzVcXHUwYzAyIFxcdTBjMTdcXHUwYzQxXFx1MGMzMFxcdTBjM2ZcXHUwYzAyXFx1MGMxYVxcdTBjM2ZcXHUwYzI4IFxcdTBjMzhcXHUwYzJlXFx1MGMzZVxcdTBjMWFcXHUwYzNlXFx1MGMzMFxcdTBjM2VcXHUwYzI4XFx1MGM0ZFxcdTBjMjhcXHUwYzNmIFxcdTBjMzhcXHUwYzQ3XFx1MGMxNVxcdTBjMzBcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzIxXFx1MGMzZVxcdTBjMjhcXHUwYzNmXFx1MGMxNVxcdTBjM2YgPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTBjMmVcXHUwYzQ3XFx1MGMyZVxcdTBjNDEgXFx1MGMwOCBcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzMlxcdTBjMjhcXHUwYzQxIFxcdTBjMDlcXHUwYzJhXFx1MGMyZlxcdTBjNGJcXHUwYzE3XFx1MGMzZlxcdTBjMzhcXHUwYzRkXFx1MGMyNFxcdTBjM2VcXHUwYzAyPC9hPi4nXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIlxcdTBjMmVcXHUwYzNlXFx1MGMzMFxcdTBjNGRcXHUwYzE1XFx1MGM0NlxcdTBjMWZcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkXCIsY29udGVudDpbJ1xcdTBjMzhcXHUwYzAyXFx1MGMyY1xcdTBjMDJcXHUwYzI3XFx1MGMzZlxcdTBjMjQgXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGMxNVxcdTBjMWZcXHUwYzI4XFx1MGMzMlxcdTBjNDEgXFx1MGMyZVxcdTBjNDBcXHUwYzE1XFx1MGM0MSBcXHUwYzA1XFx1MGMwMlxcdTBjMjZcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzIxXFx1MGMzZVxcdTBjMjhcXHUwYzNmXFx1MGMxNVxcdTBjM2YgXFx1MGMyZVxcdTBjMzBcXHUwYzNmXFx1MGMyZlxcdTBjNDEgXFx1MGMyZVxcdTBjM2UgXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGMxNVxcdTBjMWZcXHUwYzI4IFxcdTBjMmFcXHUwYzRkXFx1MGMzMFxcdTBjMWFcXHUwYzNlXFx1MGMzMFxcdTBjM2VcXHUwYzMyIFxcdTBjMTVcXHUwYzRhXFx1MGMzMFxcdTBjMTVcXHUwYzQxIFxcdTBjMzhcXHUwYzJlXFx1MGMzMFxcdTBjNGRcXHUwYzI1XFx1MGMyNFxcdTBjMjhcXHUwYzQxIFxcdTBjMzJcXHUwYzQ2XFx1MGMxNVxcdTBjNGRcXHUwYzE1XFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGMyMVxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMTVcXHUwYzNmIDxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+XFx1MGMyZVxcdTBjNDdcXHUwYzAyIFxcdTBjMDggXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzJcXHUwYzI4XFx1MGM0MSBcXHUwYzA5XFx1MGMyYVxcdTBjMmZcXHUwYzRiXFx1MGMxN1xcdTBjM2ZcXHUwYzM4XFx1MGM0ZFxcdTBjMjRcXHUwYzNlXFx1MGMwMjwvYT4uIFxcdTBjMmVcXHUwYzNlIFxcdTBjMjRcXHUwYzQzXFx1MGMyNFxcdTBjNDBcXHUwYzJmXFx1MGMyYVxcdTBjMTVcXHUwYzRkXFx1MGMzNyBcXHUwYzBlXFx1MGMyMVxcdTBjNGRcXHUwYzM1XFx1MGMzMFxcdTBjNGRcXHUwYzFmXFx1MGM0OFxcdTBjMWNcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkIFxcdTBjMmRcXHUwYzNlXFx1MGMxN1xcdTBjMzhcXHUwYzRkXFx1MGMzNVxcdTBjM2VcXHUwYzJlXFx1MGM0MVxcdTBjMzJcXHUwYzQxIFxcdTBjMmVcXHUwYzQwIFxcdTBjMDZcXHUwYzM4XFx1MGMxNVxcdTBjNGRcXHUwYzI0XFx1MGM0MVxcdTBjMzIgXFx1MGMyZlxcdTBjNGFcXHUwYzE1XFx1MGM0ZFxcdTBjMTUgXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGM0YVxcdTBjMmJcXHUwYzQ4XFx1MGMzMlxcdTBjNGQgXFx1MGMzMFxcdTBjNDJcXHUwYzJhXFx1MGM0YVxcdTBjMDJcXHUwYzI2XFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGMyMVxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMTVcXHUwYzNmIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQxIFxcdTBjMDdcXHUwYzI0XFx1MGMzMCBcXHUwYzM4XFx1MGM0OFxcdTBjMWZcXHUwYzRkXFx1MGMzMlxcdTBjMmFcXHUwYzQ4IFxcdTBjMzhcXHUwYzAyXFx1MGMyY1xcdTBjMDJcXHUwYzI3XFx1MGMzZlxcdTBjMjQgXFx1MGMyYVxcdTBjNGRcXHUwYzMwXFx1MGMxNVxcdTBjMWZcXHUwYzI4XFx1MGMzMlxcdTBjNDEgXFx1MGMwNVxcdTBjMDJcXHUwYzI2XFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGMyMVxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMTVcXHUwYzNmIFxcdTBjMDggXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzJcXHUwYzI4XFx1MGM0MSBcXHUwYzA5XFx1MGMyYVxcdTBjMmZcXHUwYzRiXFx1MGMxN1xcdTBjM2ZcXHUwYzAyXFx1MGMxYVxcdTBjNDFcXHUwYzE1XFx1MGM0YlxcdTBjMzVcXHUwYzFhXFx1MGM0ZFxcdTBjMWFcXHUwYzQxLiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTBjMjRcXHUwYzQzXFx1MGMyNFxcdTBjNDBcXHUwYzJmXFx1MGMyYVxcdTBjMTVcXHUwYzRkXFx1MGMzNyBcXHUwYzJhXFx1MGM0ZFxcdTBjMzBcXHUwYzE1XFx1MGMxZlxcdTBjMjhcXHUwYzMyIFxcdTBjMmRcXHUwYzNlXFx1MGMxN1xcdTBjMzhcXHUwYzRkXFx1MGMzNVxcdTBjM2VcXHUwYzJlXFx1MGM0MVxcdTBjMzJcXHUwYzQxXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiXFx1MGMyNFxcdTBjNDNcXHUwYzI0XFx1MGM0MFxcdTBjMmZcXHUwYzJhXFx1MGMxNVxcdTBjNGRcXHUwYzM3IFxcdTBjMmFcXHUwYzRkXFx1MGMzMFxcdTBjMTVcXHUwYzFmXFx1MGMyOFxcdTBjMzIgXFx1MGMyZFxcdTBjM2VcXHUwYzE3XFx1MGMzOFxcdTBjNGRcXHUwYzM1XFx1MGMzZVxcdTBjMmVcXHUwYzQxXFx1MGMzMlxcdTBjNDE6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTBjMDVcXHUwYzJlXFx1MGMzMlxcdTBjNDFcXHUwYzMyXFx1MGM0YlxcdTBjMTVcXHUwYzNmIFxcdTBjMzVcXHUwYzFhXFx1MGM0ZFxcdTBjMWFcXHUwYzNmXFx1MGMwMlxcdTBjMjZcXHUwYzNmOiBcXHUwYzFjXFx1MGMyOFxcdTBjMzVcXHUwYzMwXFx1MGMzZiAxNSwgMjAxOVwiLEJvZHk6W1wiXFx1MGMyZVxcdTBjNDAgXFx1MGMyY1xcdTBjNGRcXHUwYzMwXFx1MGM0Y1xcdTBjMWNcXHUwYzMwXFx1MGM0ZCBcXHUwYzMyXFx1MGM0N1xcdTBjMjZcXHUwYzNlIFxcdTBjMmFcXHUwYzMwXFx1MGMzZlxcdTBjMTVcXHUwYzMwXFx1MGMwMiBcXHUwYzI2XFx1MGM0ZFxcdTBjMzVcXHUwYzNlXFx1MGMzMFxcdTBjM2UgXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzJcXHUwYzQxIFxcdTBjMjhcXHUwYzNmXFx1MGMzMFxcdTBjNGRcXHUwYzM1XFx1MGMzOVxcdTBjM2ZcXHUwYzAyXFx1MGMxYVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiBcXHUwYzA1XFx1MGMyNlxcdTBjMjhcXHUwYzAyXFx1MGMxN1xcdTBjM2UsIFxcdTBjMmVcXHUwYzQwXFx1MGMzMFxcdTBjNDEgXFx1MGMyNlxcdTBjM2ZcXHUwYzE3XFx1MGM0MVxcdTBjMzVcXHUwYzI4IFxcdTBjMmVcXHUwYzQwIFxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDBcXHUwYzM4XFx1MGM0ZCBcXHUwYzM4XFx1MGM0NlxcdTBjMWZcXHUwYzRkXFx1MGMxZlxcdTBjM2ZcXHUwYzAyXFx1MGMxN1xcdTBjNGRcXHUyMDBjXFx1MGMzMlxcdTBjMjhcXHUwYzQxIFxcdTBjMmVcXHUwYzNlXFx1MGMzMFxcdTBjNGRcXHUwYzFhXFx1MGMzNVxcdTBjMWFcXHUwYzRkXFx1MGMxYVxcdTBjNDEuIFxcdTBjMmVcXHUwYzNlIFxcdTBjMzhcXHUwYzQ4XFx1MGMxZlxcdTBjNGQgXFx1MGMyOFxcdTBjNDEgXFx1MGMzMFxcdTBjMjhcXHUwYzRkIFxcdTBjMWFcXHUwYzQ3XFx1MGMyZlxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiBcXHUwYzE1XFx1MGM0YVxcdTBjMjhcXHUwYzRkXFx1MGMyOFxcdTBjM2YgXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzJcXHUwYzQxIFxcdTBjMDVcXHUwYzM1XFx1MGMzOFxcdTBjMzBcXHUwYzAyIFxcdTBjMDVcXHUwYzM1XFx1MGM0MVxcdTBjMjRcXHUwYzNlXFx1MGMyZlxcdTBjMjhcXHUwYzNmIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQxIFxcdTBjMDggXFx1MGMzOFxcdTBjNDZcXHUwYzFmXFx1MGM0ZFxcdTBjMWZcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkXFx1MjAwY1xcdTBjMzJcXHUwYzQxIFxcdTBjMDlcXHUwYzJhXFx1MGMyZlxcdTBjNGJcXHUwYzE3XFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGMzZiBcXHUwYzM1XFx1MGMzZVxcdTBjMWZcXHUwYzNmXFx1MGMyOFxcdTBjM2YgXFx1MGMyY1xcdTBjNGRcXHUwYzMyXFx1MGMzZVxcdTBjMTVcXHUwYzRkIFxcdTBjMWFcXHUwYzQ3XFx1MGMyZlxcdTBjMzJcXHUwYzQ3XFx1MGMzMFxcdTBjNDEgXFx1MGMwNVxcdTBjMjhcXHUwYzQ3IFxcdTBjMzVcXHUwYzNmXFx1MGMzN1xcdTBjMmZcXHUwYzNlXFx1MGMyOFxcdTBjNGRcXHUwYzI4XFx1MGMzZiBcXHUwYzI2XFx1MGMyZlxcdTBjMWFcXHUwYzQ3XFx1MGMzOFxcdTBjM2YgXFx1MGMxN1xcdTBjMmVcXHUwYzI4XFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGMwMlxcdTBjMjFcXHUwYzNmLlwiXSxUaXRsZTpcIlxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMzOFxcdTBjNDZcXHUwYzFmXFx1MGM0ZFxcdTBjMWZcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkXFx1MjAwY1xcdTBjMzJcXHUwYzQxXCIsQ09PS0lFX1BPUFVQOidcXHUwYzM5XFx1MGMzZVxcdTBjMmZcXHUwYzRkISBcXHUwYzJlXFx1MGM0MCBcXHUwYzJjXFx1MGM0ZFxcdTBjMzBcXHUwYzRjXFx1MGMxY1xcdTBjM2ZcXHUwYzAyXFx1MGMxN1xcdTBjNGQgXFx1MGMwNVxcdTBjMjhcXHUwYzQxXFx1MGMyZFxcdTBjMzVcXHUwYzNlXFx1MGMyOFxcdTBjNGRcXHUwYzI4XFx1MGMzZiBcXHUwYzA2XFx1MGMyYVxcdTBjMzBcXHUwYzQ3XFx1MGMxZlxcdTBjNGQgXFx1MGMxYVxcdTBjNDdcXHUwYzJmXFx1MGMyMVxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMTVcXHUwYzNmIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQxIFxcdTBjMmVcXHUwYzQ2XFx1MGMzMFxcdTBjNDFcXHUwYzE3XFx1MGM0MVxcdTBjMmFcXHUwYzMwXFx1MGMxYVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiwgXFx1MGMyYVxcdTBjMjhcXHUwYzNmXFx1MGMyNFxcdTBjNDBcXHUwYzMwXFx1MGM0MVxcdTBjMjhcXHUwYzQxIFxcdTBjMmFcXHUwYzMwXFx1MGM0ZFxcdTBjMmZcXHUwYzM1XFx1MGM0N1xcdTBjMTVcXHUwYzRkXFx1MGMzN1xcdTBjM2ZcXHUwYzAyXFx1MGMxYVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiBcXHUwYzJlXFx1MGMzMFxcdTBjM2ZcXHUwYzJmXFx1MGM0MSBcXHUwYzA1XFx1MGMyMVxcdTBjNGRcXHUwYzM1XFx1MGMzMFxcdTBjNGRcXHUwYzFmXFx1MGM0OFxcdTBjMWNcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkIFxcdTBjMmFcXHUwYzRkXFx1MGMzMFxcdTBjMmZcXHUwYzRiXFx1MGMxY1xcdTBjMjhcXHUwYzNlXFx1MGMzMiBcXHUwYzE1XFx1MGM0YlxcdTBjMzhcXHUwYzAyIFxcdTBjMmVcXHUwYzQ3XFx1MGMyZVxcdTBjNDEgXFx1MGMwOCBcXHUwYzM1XFx1MGM0NlxcdTBjMmNcXHUwYzRkXFx1MjAwY1xcdTBjMzhcXHUwYzQ4XFx1MGMxZlxcdTBjNGRcXHUyMDBjXFx1MGMzMlxcdTBjNGIgXFx1MGMyNFxcdTBjNDNcXHUwYzI0XFx1MGM0MFxcdTBjMmYgXFx1MGMyYVxcdTBjMTVcXHUwYzRkXFx1MGMzN1xcdTBjMDIgXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzhcXHUwYzRkXFx1MjAwY1xcdTBjMjRcXHUwYzRiIFxcdTBjMzhcXHUwYzM5XFx1MGMzZSBcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzOFxcdTBjNGQgXFx1MGMyZVxcdTBjMzBcXHUwYzNmXFx1MGMyZlxcdTBjNDEgXFx1MGMzOFxcdTBjM2VcXHUwYzMwXFx1MGM0MlxcdTBjMmFcXHUwYzRkXFx1MGMyZiBcXHUwYzM4XFx1MGMzZVxcdTBjMDJcXHUwYzE1XFx1MGM0N1xcdTBjMjRcXHUwYzNmXFx1MGMxNVxcdTBjMjRcXHUwYzMyXFx1MGMyOFxcdTBjNDEgKFxcdTIwMWNcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzOFxcdTBjNGRcXHUyMDFkKSBcXHUwYzA5XFx1MGMyYVxcdTBjMmZcXHUwYzRiXFx1MGMxN1xcdTBjM2ZcXHUwYzM4XFx1MGM0ZFxcdTBjMjRcXHUwYzNlXFx1MGMyZVxcdTBjNDEuIFxcdTBjMmVcXHUwYzQ3XFx1MGMyZVxcdTBjNDEgXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzhcXHUwYzRkXFx1MjAwY1xcdTBjMjhcXHUwYzQxIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQxIFxcdTBjMmVcXHUwYzQwIFxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMwZVxcdTBjMDJcXHUwYzJhXFx1MGMzZlxcdTBjMTVcXHUwYzMyXFx1MGMyOFxcdTBjNDEgXFx1MGMwZVxcdTBjMzJcXHUwYzNlIFxcdTBjMDlcXHUwYzJhXFx1MGMyZlxcdTBjNGJcXHUwYzE3XFx1MGMzZlxcdTBjMzhcXHUwYzRkXFx1MGMyNFxcdTBjM2VcXHUwYzJlXFx1MGM0MSBcXHUwYzA1XFx1MGMyOFxcdTBjNDcgXFx1MGMyNlxcdTBjM2VcXHUwYzI4XFx1MGMzZiBcXHUwYzE3XFx1MGM0MVxcdTBjMzBcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzNmIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMDJcXHUwYzI0IFxcdTBjMzhcXHUwYzJlXFx1MGMzZVxcdTBjMWFcXHUwYzNlXFx1MGMzMFxcdTBjMDIgXFx1MGMxNVxcdTBjNGJcXHUwYzM4XFx1MGMwMiwgXFx1MGMyZVxcdTBjM2UgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMyYVxcdTBjM2VcXHUwYzMyXFx1MGMzOFxcdTBjNDBcXHUwYzI4XFx1MGMzZjwvYT4gXFx1MGMxYVxcdTBjNDJcXHUwYzIxXFx1MGMwMlxcdTBjMjFcXHUwYzNmISAgXFx1MGMyNlxcdTBjM2ZcXHUwYzE3XFx1MGM0MVxcdTBjMzVcXHUwYzI4IFxcdTBjMDlcXHUwYzI4XFx1MGM0ZFxcdTBjMjggXFx1MjAxY1xcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDBcXHUwYzM4XFx1MGM0ZFxcdTIwMGNcXHUwYzI4XFx1MGM0MSBcXHUwYzA2XFx1MGMyZVxcdTBjNGJcXHUwYzI2XFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGM0MVxcdTIwMWQgXFx1MGMxNVxcdTBjNGRcXHUwYzMyXFx1MGMzZlxcdTBjMTVcXHUwYzRkIFxcdTBjMWFcXHUwYzQ3XFx1MGMyZlxcdTBjMjFcXHUwYzAyIFxcdTBjMjZcXHUwYzRkXFx1MGMzNVxcdTBjM2VcXHUwYzMwXFx1MGMzZSwgXFx1MGMwNVxcdTBjMjhcXHUwYzM1XFx1MGMzOFxcdTBjMzBcXHUwYzJlXFx1MGM0OFxcdTBjMjggXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzhcXHUwYzRkXFx1MjAwY1xcdTBjMjRcXHUwYzRiIFxcdTBjMzhcXHUwYzM5XFx1MGMzZSBcXHUwYzA1XFx1MGMyOFxcdTBjNGRcXHUwYzI4XFx1MGMzZiBcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzOFxcdTBjNGRcXHUyMDBjXFx1MGMyOFxcdTBjNDEgXFx1MGMwOVxcdTBjMmFcXHUwYzJmXFx1MGM0YlxcdTBjMTdcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzIxXFx1MGMzZVxcdTBjMjhcXHUwYzNmXFx1MGMxNVxcdTBjM2YgXFx1MGMyZVxcdTBjNDBcXHUwYzMwXFx1MGM0MSBcXHUwYzJlXFx1MGMzZVxcdTBjMTVcXHUwYzQxIFxcdTBjMzhcXHUwYzJlXFx1MGM0ZFxcdTBjMmVcXHUwYzI0XFx1MGMzZiBcXHUwYzA3XFx1MGMzOFxcdTBjNGRcXHUwYzI0XFx1MGM0MVxcdTBjMjhcXHUwYzRkXFx1MGMyOFxcdTBjM2VcXHUwYzMwXFx1MGM0MS4gXFx1MGMyZVxcdTBjNDBcXHUwYzMwXFx1MGM0MSBcXHUwYzE1XFx1MGM0MVxcdTBjMjFcXHUwYzNmXFx1MGMzNVxcdTBjNDhcXHUwYzJhXFx1MGM0MVxcdTBjMjggXFx1MGMwOVxcdTBjMjhcXHUwYzRkXFx1MGMyOCBcXHUyMDFjWFxcdTIwMWRcXHUwYzI4XFx1MGMzZiBcXHUwYzE1XFx1MGM0ZFxcdTBjMzJcXHUwYzNmXFx1MGMxNVxcdTBjNGQgXFx1MGMxYVxcdTBjNDdcXHUwYzJmXFx1MGMyMVxcdTBjMDIgXFx1MGMyNlxcdTBjNGRcXHUwYzM1XFx1MGMzZVxcdTBjMzBcXHUwYzNlIFxcdTBjMDVcXHUwYzI4XFx1MGM0ZFxcdTBjMjhcXHUwYzNmIFxcdTBjMDVcXHUwYzI4XFx1MGMzNVxcdTBjMzhcXHUwYzMwXFx1MGMyZVxcdTBjNDhcXHUwYzI4IFxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDBcXHUwYzM4XFx1MGM0ZFxcdTIwMGNcXHUwYzI4XFx1MGM0MSBcXHUwYzI0XFx1MGMzZlxcdTBjMzBcXHUwYzM4XFx1MGM0ZFxcdTBjMTVcXHUwYzMwXFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGMzNVxcdTBjMWFcXHUwYzRkXFx1MGMxYVxcdTBjNDEuIFxcdTBjMmVcXHUwYzQwIFxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMzOFxcdTBjNDZcXHUwYzFmXFx1MGM0ZFxcdTBjMWZcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkXFx1MGMzMlxcdTBjNDFcXHUwYzI4XFx1MGM0MSBcXHUwYzJlXFx1MGMzZVxcdTBjMzBcXHUwYzRkXFx1MGMxYVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiBcIlxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMzOFxcdTBjNDZcXHUwYzFmXFx1MGM0ZFxcdTBjMWZcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkXFx1MGMzMlxcdTBjNDFcIiBcXHUwYzMyXFx1MGM0N1xcdTBjMjZcXHUwYzNlIFxcdTBjMmVcXHUwYzNlIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzRkXFx1MGMxNVxcdTBjNDAgXFx1MGMyYVxcdTBjM2VcXHUwYzMyXFx1MGMzOFxcdTBjNDBcXHUwYzE1XFx1MGMzZjwvYT4gXFx1MGMzNVxcdTBjNDZcXHUwYzMzXFx1MGM0ZFxcdTBjMzJcXHUwYzNmLCBcXHUwYzJlXFx1MGM0MCBcXHUwYzM4XFx1MGMyZVxcdTBjNGRcXHUwYzJlXFx1MGMyNFxcdTBjM2ZcXHUwYzI4XFx1MGMzZiBcXHUwYzBlXFx1MGMyYVxcdTBjNGRcXHUwYzJhXFx1MGM0MVxcdTBjMjFcXHUwYzQ4XFx1MGMyOFxcdTBjM2UgXFx1MGMwOVxcdTBjMmFcXHUwYzM4XFx1MGMwMlxcdTBjMzlcXHUwYzMwXFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGM0MVxcdTBjMTVcXHUwYzRiXFx1MGMwMlxcdTBjMjFcXHUwYzNmLicsQ09PS0lFX1BPUFVQX0VVOidcXHUwYzM5XFx1MGMzZVxcdTBjMmZcXHUwYzRkISBcXHUwYzJlXFx1MGM0MCBcXHUwYzJjXFx1MGM0ZFxcdTBjMzBcXHUwYzRjXFx1MGMxY1xcdTBjM2ZcXHUwYzAyXFx1MGMxN1xcdTBjNGQgXFx1MGMwNVxcdTBjMjhcXHUwYzQxXFx1MGMyZFxcdTBjMzVcXHUwYzNlXFx1MGMyOFxcdTBjNGRcXHUwYzI4XFx1MGMzZiBcXHUwYzA2XFx1MGMyYVxcdTBjMzBcXHUwYzQ3XFx1MGMxZlxcdTBjNGQgXFx1MGMxYVxcdTBjNDdcXHUwYzJmXFx1MGMyMVxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMTVcXHUwYzNmIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQxIFxcdTBjMmVcXHUwYzQ2XFx1MGMzMFxcdTBjNDFcXHUwYzE3XFx1MGM0MVxcdTBjMmFcXHUwYzMwXFx1MGMxYVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiwgXFx1MGMyYVxcdTBjMjhcXHUwYzNmXFx1MGMyNFxcdTBjNDBcXHUwYzMwXFx1MGM0MVxcdTBjMjhcXHUwYzQxIFxcdTBjMmFcXHUwYzMwXFx1MGM0ZFxcdTBjMmZcXHUwYzM1XFx1MGM0N1xcdTBjMTVcXHUwYzRkXFx1MGMzN1xcdTBjM2ZcXHUwYzAyXFx1MGMxYVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiBcXHUwYzJlXFx1MGMzMFxcdTBjM2ZcXHUwYzJmXFx1MGM0MSBcXHUwYzA1XFx1MGMyMVxcdTBjNGRcXHUwYzM1XFx1MGMzMFxcdTBjNGRcXHUwYzFmXFx1MGM0OFxcdTBjMWNcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkIFxcdTBjMmFcXHUwYzRkXFx1MGMzMFxcdTBjMmZcXHUwYzRiXFx1MGMxY1xcdTBjMjhcXHUwYzNlXFx1MGMzMiBcXHUwYzE1XFx1MGM0YlxcdTBjMzhcXHUwYzAyIFxcdTBjMmVcXHUwYzQ3XFx1MGMyZVxcdTBjNDEgXFx1MGMwOCBcXHUwYzM1XFx1MGM0NlxcdTBjMmNcXHUwYzRkXFx1MjAwY1xcdTBjMzhcXHUwYzQ4XFx1MGMxZlxcdTBjNGRcXHUyMDBjXFx1MGMzMlxcdTBjNGIgXFx1MGMyNFxcdTBjNDNcXHUwYzI0XFx1MGM0MFxcdTBjMmYgXFx1MGMyYVxcdTBjMTVcXHUwYzRkXFx1MGMzN1xcdTBjMDIgXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzhcXHUwYzRkXFx1MjAwY1xcdTBjMjRcXHUwYzRiIFxcdTBjMzhcXHUwYzM5XFx1MGMzZSBcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzOFxcdTBjNGQgXFx1MGMyZVxcdTBjMzBcXHUwYzNmXFx1MGMyZlxcdTBjNDEgXFx1MGMzOFxcdTBjM2VcXHUwYzMwXFx1MGM0MlxcdTBjMmFcXHUwYzRkXFx1MGMyZiBcXHUwYzM4XFx1MGMzZVxcdTBjMDJcXHUwYzE1XFx1MGM0N1xcdTBjMjRcXHUwYzNmXFx1MGMxNVxcdTBjMjRcXHUwYzMyXFx1MGMyOFxcdTBjNDEgKFxcdTIwMWNcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzOFxcdTBjNGRcXHUyMDFkKSBcXHUwYzA5XFx1MGMyYVxcdTBjMmZcXHUwYzRiXFx1MGMxN1xcdTBjM2ZcXHUwYzM4XFx1MGM0ZFxcdTBjMjRcXHUwYzNlXFx1MGMyZVxcdTBjNDEuIFxcdTBjMmVcXHUwYzQ3XFx1MGMyZVxcdTBjNDEgXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzhcXHUwYzRkXFx1MjAwY1xcdTBjMjhcXHUwYzQxIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMmZcXHUwYzQxIFxcdTBjMmVcXHUwYzQwIFxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMwZVxcdTBjMDJcXHUwYzJhXFx1MGMzZlxcdTBjMTVcXHUwYzMyXFx1MGMyOFxcdTBjNDEgXFx1MGMwZVxcdTBjMzJcXHUwYzNlIFxcdTBjMDlcXHUwYzJhXFx1MGMyZlxcdTBjNGJcXHUwYzE3XFx1MGMzZlxcdTBjMzhcXHUwYzRkXFx1MGMyNFxcdTBjM2VcXHUwYzJlXFx1MGM0MSBcXHUwYzA1XFx1MGMyOFxcdTBjNDcgXFx1MGMyNlxcdTBjM2VcXHUwYzI4XFx1MGMzZiBcXHUwYzE3XFx1MGM0MVxcdTBjMzBcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzNmIFxcdTBjMmVcXHUwYzMwXFx1MGMzZlxcdTBjMDJcXHUwYzI0IFxcdTBjMzhcXHUwYzJlXFx1MGMzZVxcdTBjMWFcXHUwYzNlXFx1MGMzMFxcdTBjMDIgXFx1MGMxNVxcdTBjNGJcXHUwYzM4XFx1MGMwMiwgXFx1MGMyZVxcdTBjM2UgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMyYVxcdTBjM2VcXHUwYzMyXFx1MGMzOFxcdTBjNDBcXHUwYzI4XFx1MGMzZjwvYT4gXFx1MGMxYVxcdTBjNDJcXHUwYzIxXFx1MGMwMlxcdTBjMjFcXHUwYzNmISBcXHUwYzI2XFx1MGMzZlxcdTBjMTdcXHUwYzQxXFx1MGMzNVxcdTBjMjggXFx1MGMwOVxcdTBjMjhcXHUwYzRkXFx1MGMyOCBcXHUyMDFjXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzhcXHUwYzRkXFx1MjAwY1xcdTBjMjhcXHUwYzQxIFxcdTBjMDZcXHUwYzJlXFx1MGM0YlxcdTBjMjZcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzQxXFx1MjAxZCBcXHUwYzE1XFx1MGM0ZFxcdTBjMzJcXHUwYzNmXFx1MGMxNVxcdTBjNGQgXFx1MGMxYVxcdTBjNDdcXHUwYzJmXFx1MGMyMVxcdTBjMDIgXFx1MGMyNlxcdTBjNGRcXHUwYzM1XFx1MGMzZVxcdTBjMzBcXHUwYzNlLCBcXHUwYzA1XFx1MGMyOFxcdTBjMzVcXHUwYzM4XFx1MGMzMFxcdTBjMmVcXHUwYzQ4XFx1MGMyOCBcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzOFxcdTBjNGRcXHUyMDBjXFx1MGMyNFxcdTBjNGIgXFx1MGMzOFxcdTBjMzlcXHUwYzNlIFxcdTBjMDVcXHUwYzI4XFx1MGM0ZFxcdTBjMjhcXHUwYzNmIFxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDBcXHUwYzM4XFx1MGM0ZFxcdTIwMGNcXHUwYzI4XFx1MGM0MSBcXHUwYzA5XFx1MGMyYVxcdTBjMmZcXHUwYzRiXFx1MGMxN1xcdTBjM2ZcXHUwYzAyXFx1MGMxYVxcdTBjMjFcXHUwYzNlXFx1MGMyOFxcdTBjM2ZcXHUwYzE1XFx1MGMzZiBcXHUwYzJlXFx1MGM0MFxcdTBjMzBcXHUwYzQxIFxcdTBjMmVcXHUwYzNlXFx1MGMxNVxcdTBjNDEgXFx1MGMzOFxcdTBjMmVcXHUwYzRkXFx1MGMyZVxcdTBjMjRcXHUwYzNmIFxcdTBjMDdcXHUwYzM4XFx1MGM0ZFxcdTBjMjRcXHUwYzQxXFx1MGMyOFxcdTBjNGRcXHUwYzI4XFx1MGMzZVxcdTBjMzBcXHUwYzQxLiBcXHUwYzJlXFx1MGM0MFxcdTBjMzBcXHUwYzQxIFxcdTBjMTVcXHUwYzQxXFx1MGMyMVxcdTBjM2ZcXHUwYzM1XFx1MGM0OFxcdTBjMmFcXHUwYzQxXFx1MGMyOCBcXHUwYzA5XFx1MGMyOFxcdTBjNGRcXHUwYzI4IFxcdTIwMWNYXFx1MjAxZFxcdTBjMjhcXHUwYzNmIFxcdTBjMTVcXHUwYzRkXFx1MGMzMlxcdTBjM2ZcXHUwYzE1XFx1MGM0ZCBcXHUwYzFhXFx1MGM0N1xcdTBjMmZcXHUwYzIxXFx1MGMwMiBcXHUwYzI2XFx1MGM0ZFxcdTBjMzVcXHUwYzNlXFx1MGMzMFxcdTBjM2UgXFx1MGMwNVxcdTBjMjhcXHUwYzRkXFx1MGMyOFxcdTBjM2YgXFx1MGMwNVxcdTBjMjhcXHUwYzM1XFx1MGMzOFxcdTBjMzBcXHUwYzJlXFx1MGM0OFxcdTBjMjggXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MFxcdTBjMzhcXHUwYzRkXFx1MjAwY1xcdTBjMjhcXHUwYzQxIFxcdTBjMjRcXHUwYzNmXFx1MGMzMFxcdTBjMzhcXHUwYzRkXFx1MGMxNVxcdTBjMzBcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzM1XFx1MGMxYVxcdTBjNGRcXHUwYzFhXFx1MGM0MS4gXFx1MGMyZVxcdTBjNDAgXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MCBcXHUwYzM4XFx1MGM0NlxcdTBjMWZcXHUwYzRkXFx1MGMxZlxcdTBjM2ZcXHUwYzAyXFx1MGMxN1xcdTBjNGRcXHUwYzMyXFx1MGM0MVxcdTBjMjhcXHUwYzQxIFxcdTBjMmVcXHUwYzNlXFx1MGMzMFxcdTBjNGRcXHUwYzFhXFx1MGMyMVxcdTBjM2VcXHUwYzI4XFx1MGMzZlxcdTBjMTVcXHUwYzNmIFwiXFx1MGMxNVxcdTBjNDFcXHUwYzE1XFx1MGM0MCBcXHUwYzM4XFx1MGM0NlxcdTBjMWZcXHUwYzRkXFx1MGMxZlxcdTBjM2ZcXHUwYzAyXFx1MGMxN1xcdTBjNGRcXHUwYzMyXFx1MGM0MVwiIFxcdTBjMzJcXHUwYzQ3XFx1MGMyNlxcdTBjM2UgXFx1MGMyZVxcdTBjM2UgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNGRcXHUwYzE1XFx1MGM0MCBcXHUwYzJhXFx1MGMzZVxcdTBjMzJcXHUwYzM4XFx1MGM0MFxcdTBjMTVcXHUwYzNmPC9hPiBcXHUwYzM1XFx1MGM0NlxcdTBjMzNcXHUwYzRkXFx1MGMzMlxcdTBjM2YsIFxcdTBjMmVcXHUwYzQwIFxcdTBjMzhcXHUwYzJlXFx1MGM0ZFxcdTBjMmVcXHUwYzI0XFx1MGMzZlxcdTBjMjhcXHUwYzNmIFxcdTBjMGVcXHUwYzJhXFx1MGM0ZFxcdTBjMmFcXHUwYzQxXFx1MGMyMVxcdTBjNDhcXHUwYzI4XFx1MGMzZSBcXHUwYzA5XFx1MGMyYVxcdTBjMzhcXHUwYzAyXFx1MGMzOVxcdTBjMzBcXHUwYzNmXFx1MGMwMlxcdTBjMWFcXHUwYzQxXFx1MGMxNVxcdTBjNGJcXHUwYzAyXFx1MGMyMVxcdTBjM2YuJyxBZ3JlZVRleHQ6XCJcXHUwYzE1XFx1MGM0MVxcdTBjMTVcXHUwYzQwXFx1MGMzOFxcdTBjNGRcXHUyMDBjXFx1MGMyOFxcdTBjNDEgXFx1MGMwNlxcdTBjMmVcXHUwYzRiXFx1MGMyNlxcdTBjM2ZcXHUwYzAyXFx1MGMxYVxcdTBjMDJcXHUwYzIxXFx1MGMzZlwiLFNldHRpbmdzVGV4dDpcIlxcdTBjMTVcXHUwYzQxXFx1MGMxNVxcdTBjNDAgXFx1MGMzOFxcdTBjNDZcXHUwYzFmXFx1MGM0ZFxcdTBjMWZcXHUwYzNmXFx1MGMwMlxcdTBjMTdcXHUwYzRkXFx1MjAwY1xcdTBjMzJcXHUwYzQxXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHUwYzA5XFx1MGMzMlxcdTBjNGRcXHUwYzMyXFx1MGMwMlxcdTBjMThcXHUwYzI4IFxcdTBjMjhcXHUwYzNmXFx1MGMzNVxcdTBjNDdcXHUwYzI2XFx1MGMzZlxcdTBjMDJcXHUwYzFhXFx1MGMwMlxcdTBjMjFcXHUwYzNmXCIsU3BvdGxpZ2h0OlwiXFx1MGMzOFxcdTBjNGRcXHUwYzJhXFx1MGMzZVxcdTBjMWZcXHUwYzRkXFx1MjAwY1xcdTBjMzJcXHUwYzQ4XFx1MGMxZlxcdTBjNGRcIn0sXCJ0aC10aFwiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIlxcdTBlNDRcXHUwZTI1XFx1MGUxZlxcdTBlNGNcIixBZHM6XCJcXHUwZTQyXFx1MGUwNlxcdTBlMjlcXHUwZTEzXFx1MGUzMlwiLENvbXBhbnk6XCJcXHUwZTFhXFx1MGUyM1xcdTBlMzRcXHUwZTI5XFx1MGUzMVxcdTBlMTdcIixIb21lOlwiXFx1MGUyYlxcdTBlMTlcXHUwZTQ5XFx1MGUzMlxcdTBlNDFcXHUwZTIzXFx1MGUwMVwiLEJsb2c6XCJcXHUwZTFhXFx1MGUyNVxcdTBlNDdcXHUwZTJkXFx1MGUwMVwiLEpvYnM6XCJcXHUwZTA3XFx1MGUzMlxcdTBlMTlcIixDYXJlZXJzOlwiXFx1MGUyM1xcdTBlNDhcXHUwZTI3XFx1MGUyMVxcdTBlMDdcXHUwZTMyXFx1MGUxOVxcdTBlMDFcXHUwZTMxXFx1MGUxYVxcdTBlNDBcXHUwZTIzXFx1MGUzMlwiLFByZXNzOlwiXFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGUwYVxcdTBlMzJcXHUwZTJhXFx1MGUzMVxcdTBlMjFcXHUwZTFlXFx1MGUzMVxcdTBlMTlcXHUwZTE4XFx1MGU0Y1wiLE5ld3M6XCJcXHUwZTAyXFx1MGU0OFxcdTBlMzJcXHUwZTI3XFx1MGUyYVxcdTBlMzJcXHUwZTIzXCIsXCJQcmVzcyBJbnF1aXJpZXNcIjpcIlxcdTBlMDJcXHUwZTQ5XFx1MGUyZFxcdTBlMGJcXHUwZTMxXFx1MGUwMVxcdTBlMTZcXHUwZTMyXFx1MGUyMVxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMmFcXHUwZTM3XFx1MGU0OFxcdTBlMmRcXHUwZTIxXFx1MGUyN1xcdTBlMjVcXHUwZTBhXFx1MGUxOVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJcXHUwZTIwXFx1MGUzMlxcdTBlMjlcXHUwZTMyXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiXFx1MGUxNFxcdTBlMzJcXHUwZTI3XFx1MGUxOVxcdTBlNGNcXHUwZTQyXFx1MGUyYlxcdTBlMjVcXHUwZTE0IFNuYXBjaGF0XCIsRG93bmxvYWQ6XCJcXHUwZTE0XFx1MGUzMlxcdTBlMjdcXHUwZTE5XFx1MGU0Y1xcdTBlNDJcXHUwZTJiXFx1MGUyNVxcdTBlMTRcIixLaXQ6XCJcXHUwZTBhXFx1MGUzOFxcdTBlMTRcIixTdG9yaWVzOlwiXFx1MGU0MFxcdTBlMjNcXHUwZTM3XFx1MGU0OFxcdTBlMmRcXHUwZTA3XFx1MGUyM1xcdTBlMzJcXHUwZTI3XCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTBlMjNcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTA0XFx1MGU0OVxcdTBlMzJcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcIlNuYXBjaGF0IFxcdTBlMmFcXHUwZTMzXFx1MGUyYlxcdTBlMjNcXHUwZTMxXFx1MGUxYSBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBcXHUwZTJhXFx1MGUzM1xcdTBlMmJcXHUwZTIzXFx1MGUzMVxcdTBlMWEgQW5kcm9pZFwiLENvbW11bml0eTpcIlxcdTBlMGFcXHUwZTM4XFx1MGUyMVxcdTBlMGFcXHUwZTE5XCIsU3VwcG9ydDpcIlxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMmFcXHUwZTE5XFx1MGUzMVxcdTBlMWFcXHUwZTJhXFx1MGUxOVxcdTBlMzhcXHUwZTE5XCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1MGUwNFxcdTBlMzlcXHUwZTQ4XFx1MGUyMVxcdTBlMzdcXHUwZTJkXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUwYVxcdTBlMzhcXHUwZTIxXFx1MGUwYVxcdTBlMTlcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlxcdTBlMjhcXHUwZTM5XFx1MGUxOVxcdTBlMjJcXHUwZTRjXFx1MGUwNFxcdTBlMjdcXHUwZTMyXFx1MGUyMVxcdTBlMWJcXHUwZTI1XFx1MGUyZFxcdTBlMTRcXHUwZTIwXFx1MGUzMVxcdTBlMjJcIixTbmFwY29kZXM6XCJTbmFwY29kZVwiLEdlb2ZpbHRlcnM6XCJcXHUwZTE1XFx1MGUzMVxcdTBlMjdcXHUwZTAxXFx1MGUyM1xcdTBlMmRcXHUwZTA3XFx1MGUxZVxcdTBlMzdcXHUwZTQ5XFx1MGUxOVxcdTBlMTdcXHUwZTM1XFx1MGU0OFwiLENyZWF0ZTpcIlxcdTBlMTVcXHUwZTMxXFx1MGUyN1xcdTBlMDFcXHUwZTIzXFx1MGUyZFxcdTBlMDdcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTQwXFx1MGUyNVxcdTBlMTlcXHUwZTJhXFx1MGU0Y1wiLE1hcDpcIlxcdTBlNDFcXHUwZTFjXFx1MGUxOVxcdTBlMTdcXHUwZTM1XFx1MGU0OFwiLEFkdmVydGlzaW5nOlwiXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0MlxcdTBlMDZcXHUwZTI5XFx1MGUxM1xcdTBlMzJcIixcIkJ1eSBBZHNcIjpcIlxcdTBlMGJcXHUwZTM3XFx1MGU0OVxcdTBlMmRcXHUwZTQyXFx1MGUwNlxcdTBlMjlcXHUwZTEzXFx1MGUzMlwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlxcdTBlMTlcXHUwZTQyXFx1MGUyMlxcdTBlMWFcXHUwZTMyXFx1MGUyMlxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDJcXHUwZTA2XFx1MGUyOVxcdTBlMTNcXHUwZTMyXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTBlMDRcXHUwZTI1XFx1MGUzMVxcdTBlMDdcXHUwZTQyXFx1MGUwNlxcdTBlMjlcXHUwZTEzXFx1MGUzMlxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDBcXHUwZTIxXFx1MGUzN1xcdTBlMmRcXHUwZTA3XCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHUwZTA0XFx1MGUzOVxcdTBlNDhcXHUwZTIxXFx1MGUzN1xcdTBlMmRcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTQzXFx1MGUwYVxcdTBlNDlcXHUwZTQxXFx1MGUxYVxcdTBlMjNcXHUwZTE5XFx1MGUxNFxcdTBlNGNcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlxcdTBlMDFcXHUwZTBlXFx1MGUyM1xcdTBlMzBcXHUwZTQwXFx1MGUxYVxcdTBlMzVcXHUwZTIyXFx1MGUxYVxcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTJhXFx1MGU0OFxcdTBlMDdcXHUwZTQwXFx1MGUyYVxcdTBlMjNcXHUwZTM0XFx1MGUyMVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMDJcXHUwZTMyXFx1MGUyMlwiLExlZ2FsOlwiXFx1MGUwMVxcdTBlMGVcXHUwZTJiXFx1MGUyMVxcdTBlMzJcXHUwZTIyXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwZTQwXFx1MGUwN1xcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMTlcXHUwZTQ0XFx1MGUwMlxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDNcXHUwZTJiXFx1MGU0OVxcdTBlMWFcXHUwZTIzXFx1MGUzNFxcdTBlMDFcXHUwZTMyXFx1MGUyM1wiLEltcHJlc3N1bTpcIkltcHJlc3N1bVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTBlMTlcXHUwZTQyXFx1MGUyMlxcdTBlMWFcXHUwZTMyXFx1MGUyMlxcdTBlMDRcXHUwZTI3XFx1MGUzMlxcdTBlMjFcXHUwZTQwXFx1MGUxYlxcdTBlNDdcXHUwZTE5XFx1MGUyYVxcdTBlNDhcXHUwZTI3XFx1MGUxOVxcdTBlMTVcXHUwZTMxXFx1MGUyN1wiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlxcdTBlMjhcXHUwZTM5XFx1MGUxOVxcdTBlMjJcXHUwZTRjXFx1MGUwNFxcdTBlMjdcXHUwZTMyXFx1MGUyMVxcdTBlNDBcXHUwZTFiXFx1MGU0N1xcdTBlMTlcXHUwZTJhXFx1MGU0OFxcdTBlMjdcXHUwZTE5XFx1MGUxNVxcdTBlMzFcXHUwZTI3XCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHUwZTE5XFx1MGU0MlxcdTBlMjJcXHUwZTFhXFx1MGUzMlxcdTBlMjJcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcIixcIk1lbW9yaWVzIFRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTBlNDBcXHUwZTA3XFx1MGUzN1xcdTBlNDhcXHUwZTJkXFx1MGUxOVxcdTBlNDRcXHUwZTAyXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0M1xcdTBlMmJcXHUwZTQ5XFx1MGUxYVxcdTBlMjNcXHUwZTM0XFx1MGUwMVxcdTBlMzJcXHUwZTIzIE1lbW9yaWVzXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTBlMDJcXHUwZTQ5XFx1MGUyZFxcdTBlMDFcXHUwZTMzXFx1MGUyYlxcdTBlMTlcXHUwZTE0XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0M1xcdTBlMGFcXHUwZTQ5XFx1MGU0MFxcdTBlMDRcXHUwZTIzXFx1MGUzN1xcdTBlNDhcXHUwZTJkXFx1MGUwN1xcdTBlMjFcXHUwZTM3XFx1MGUyZFxcdTBlMmFcXHUwZTIzXFx1MGU0OVxcdTBlMzJcXHUwZTA3XFx1MGUyYVxcdTBlMjNcXHUwZTIzXFx1MGUwNFxcdTBlNGNcXHUwZTQxXFx1MGUxYVxcdTBlMWFcXHUwZTAxXFx1MGUzM1xcdTBlMmJcXHUwZTE5XFx1MGUxNFxcdTBlNDBcXHUwZTJkXFx1MGUwN1wiLENPTU1VTklUWV9UT1M6XCJcXHUwZTAyXFx1MGU0OVxcdTBlMmRcXHUwZTAxXFx1MGUzM1xcdTBlMmJcXHUwZTE5XFx1MGUxNFxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMWZcXHUwZTM0XFx1MGUyNVxcdTBlNDBcXHUwZTE1XFx1MGUyZFxcdTBlMjNcXHUwZTRjXFx1MGUxZVxcdTBlMzdcXHUwZTQ5XFx1MGUxOVxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMGFcXHUwZTM4XFx1MGUyMVxcdTBlMGFcXHUwZTE5XCIsTEVOU19TVFVESU9fVE9TOlwiXFx1MGUwMlxcdTBlNDlcXHUwZTJkXFx1MGUwMVxcdTBlMzNcXHUwZTJiXFx1MGUxOVxcdTBlMTRcXHUwZTAyXFx1MGUyZFxcdTBlMDcgTGVucyBTdHVkaW9cIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHUwZTE1XFx1MGUzMVxcdTBlMjdcXHUwZTQwXFx1MGUyNVxcdTBlMzdcXHUwZTJkXFx1MGUwMVxcdTBlMDRcXHUwZTI3XFx1MGUzMlxcdTBlMjFcXHUwZTQwXFx1MGUxYlxcdTBlNDdcXHUwZTE5XFx1MGUyYVxcdTBlNDhcXHUwZTI3XFx1MGUxOVxcdTBlMTVcXHUwZTMxXFx1MGUyN1xcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMDRcXHUwZTM4XFx1MGUxM1wiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIlxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMDhcXHUwZTMzXFx1MGU0MFxcdTBlMWJcXHUwZTQ3XFx1MGUxOVwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPlxcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlNDBcXHUwZTJiXFx1MGUyNVxcdTBlNDhcXHUwZTMyXFx1MGUxOVxcdTBlMzVcXHUwZTQ5PC9hPiBcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMGFcXHUwZTQ4XFx1MGUyN1xcdTBlMjJcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTFiXFx1MGUwZlxcdTBlMzRcXHUwZTFhXFx1MGUzMVxcdTBlMTVcXHUwZTM0XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGU0MFxcdTBlMjdcXHUwZTQ3XFx1MGUxYVxcdTBlNDRcXHUwZTBiXFx1MGUxNVxcdTBlNGMgXFx1MGU0MFxcdTBlMWVcXHUwZTIzXFx1MGUzMlxcdTBlMzBcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcXHUwZTQwXFx1MGUyYlxcdTBlMjVcXHUwZTQ4XFx1MGUzMlxcdTBlMTlcXHUwZTM1XFx1MGU0OVxcdTBlMjFcXHUwZTM1XFx1MGUwNFxcdTBlMjdcXHUwZTMyXFx1MGUyMVxcdTBlMDhcXHUwZTMzXFx1MGU0MFxcdTBlMWJcXHUwZTQ3XFx1MGUxOSBcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTQ0XFx1MGUyMVxcdTBlNDhcXHUwZTJhXFx1MGUzMlxcdTBlMjFcXHUwZTMyXFx1MGUyM1xcdTBlMTZcXHUwZTFiXFx1MGUzNFxcdTBlMTRcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcXHUwZTQ0XFx1MGUxNFxcdTBlNDknXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUwMVxcdTBlMzNcXHUwZTJiXFx1MGUxOVxcdTBlMTRcXHUwZTI1XFx1MGUzMVxcdTBlMDFcXHUwZTI5XFx1MGUxM1xcdTBlMzBcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlNDBcXHUwZTJiXFx1MGUyNVxcdTBlNDhcXHUwZTMyXFx1MGUxOVxcdTBlMzVcXHUwZTQ5PC9hPiBcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMDhcXHUwZTE0XFx1MGUwOFxcdTBlMzNcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTAxXFx1MGUzM1xcdTBlMmJcXHUwZTE5XFx1MGUxNFxcdTBlMjVcXHUwZTMxXFx1MGUwMVxcdTBlMjlcXHUwZTEzXFx1MGUzMFxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMDRcXHUwZTM4XFx1MGUxMyBcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTFiXFx1MGUyM1xcdTBlMzFcXHUwZTFhXFx1MGUxYlxcdTBlMjNcXHUwZTM4XFx1MGUwN1xcdTBlMWJcXHUwZTIzXFx1MGUzMFxcdTBlMmFcXHUwZTFhXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxM1xcdTBlNGNcXHUwZTAyXFx1MGUyZFxcdTBlMDdcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTQzXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDdcXHUwZTMyXFx1MGUxOVxcdTBlNDBcXHUwZTI3XFx1MGU0N1xcdTBlMWFcXHUwZTQ0XFx1MGUwYlxcdTBlMTVcXHUwZTRjXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGU0MFxcdTBlMjNcXHUwZTMyJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMWJcXHUwZTBmXFx1MGUzNFxcdTBlMWFcXHUwZTMxXFx1MGUxNVxcdTBlMzRcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTI3XFx1MGUzNFxcdTBlNDBcXHUwZTA0XFx1MGUyM1xcdTBlMzJcXHUwZTMwXFx1MGUyYlxcdTBlNGNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlNDBcXHUwZTJiXFx1MGUyNVxcdTBlNDhcXHUwZTMyXFx1MGUxOVxcdTBlMzVcXHUwZTQ5PC9hPiBcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMjNcXHUwZTI3XFx1MGUxYVxcdTBlMjNcXHUwZTI3XFx1MGUyMVxcdTBlMDJcXHUwZTQ5XFx1MGUyZFxcdTBlMjFcXHUwZTM5XFx1MGUyNVxcdTBlNDBcXHUwZTAxXFx1MGUzNVxcdTBlNDhcXHUwZTIyXFx1MGUyN1xcdTBlMDFcXHUwZTMxXFx1MGUxYVxcdTBlMjdcXHUwZTM0XFx1MGUxOFxcdTBlMzVcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTQzXFx1MGUwYVxcdTBlNDlcXHUwZTA3XFx1MGUzMlxcdTBlMTlcXHUwZTQwXFx1MGUyN1xcdTBlNDdcXHUwZTFhXFx1MGU0NFxcdTBlMGJcXHUwZTE1XFx1MGU0Y1xcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlNDBcXHUwZTIzXFx1MGUzMiBcXHUwZTE1XFx1MGUyM1xcdTBlMjdcXHUwZTA4XFx1MGUyYVxcdTBlMmRcXHUwZTFhXFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGUyYVxcdTBlMzRcXHUwZTE3XFx1MGUxOFxcdTBlMzRcXHUwZTIwXFx1MGUzMlxcdTBlMWVcXHUwZTAyXFx1MGUyZFxcdTBlMDdcXHUwZTQwXFx1MGUyN1xcdTBlNDdcXHUwZTFhXFx1MGU0NFxcdTBlMGJcXHUwZTE1XFx1MGU0YyBcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTFiXFx1MGUyM1xcdTBlMzFcXHUwZTFhXFx1MGUxYlxcdTBlMjNcXHUwZTM4XFx1MGUwN1xcdTBlMWJcXHUwZTIzXFx1MGUzMFxcdTBlMmFcXHUwZTM0XFx1MGUxN1xcdTBlMThcXHUwZTM0XFx1MGUyMFxcdTBlMzJcXHUwZTFlXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGU0MFxcdTBlMjdcXHUwZTQ3XFx1MGUxYVxcdTBlNDRcXHUwZTBiXFx1MGUxNVxcdTBlNGNcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTJhXFx1MGUxYVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMTNcXHUwZTRjXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUwNFxcdTBlMzhcXHUwZTEzJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTE1XFx1MGUyNVxcdTBlMzJcXHUwZTE0XCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+XFx1MGU0MFxcdTBlMjNcXHUwZTMyXFx1MGU0M1xcdTBlMGFcXHUwZTQ5XFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XFx1MGU0MFxcdTBlMmJcXHUwZTI1XFx1MGU0OFxcdTBlMzJcXHUwZTE5XFx1MGUzNVxcdTBlNDk8L2E+IFxcdTBlNDBcXHUwZTFlXFx1MGUzN1xcdTBlNDhcXHUwZTJkXFx1MGUyYVxcdTBlNDhcXHUwZTA3XFx1MGUyMVxcdTBlMmRcXHUwZTFhXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0MlxcdTBlMDZcXHUwZTI5XFx1MGUxM1xcdTBlMzJcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTQwXFx1MGUwMVxcdTBlMzVcXHUwZTQ4XFx1MGUyMlxcdTBlMjdcXHUwZTAyXFx1MGU0OVxcdTBlMmRcXHUwZTA3XFx1MGU0MVxcdTBlMjVcXHUwZTMwXFx1MGUyN1xcdTBlMzFcXHUwZTE0XFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGUyYVxcdTBlMzRcXHUwZTE3XFx1MGUxOFxcdTBlMzRcXHUwZTIwXFx1MGUzMlxcdTBlMWVcXHUwZTAyXFx1MGUyZFxcdTBlMDdcXHUwZTQxXFx1MGUwNFxcdTBlMjFcXHUwZTQwXFx1MGUxYlxcdTBlMGRcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTQyXFx1MGUwNlxcdTBlMjlcXHUwZTEzXFx1MGUzMlxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlNDBcXHUwZTIzXFx1MGUzMiBcXHUwZTFlXFx1MGUzMVxcdTBlMTlcXHUwZTE4XFx1MGUyMVxcdTBlMzRcXHUwZTE1XFx1MGUyM1xcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTQyXFx1MGUwNlxcdTBlMjlcXHUwZTEzXFx1MGUzMlxcdTBlMWFcXHUwZTM4XFx1MGUwNFxcdTBlMDRcXHUwZTI1XFx1MGUxN1xcdTBlMzVcXHUwZTQ4XFx1MGUyYVxcdTBlMzJcXHUwZTIxXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGU0MFxcdTBlMjNcXHUwZTMyXFx1MGUyZFxcdTBlMzJcXHUwZTA4XFx1MGU0M1xcdTBlMGFcXHUwZTQ5XFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XFx1MGU0MFxcdTBlMmJcXHUwZTI1XFx1MGU0OFxcdTBlMzJcXHUwZTE5XFx1MGUzNVxcdTBlNDlcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMmFcXHUwZTIzXFx1MGU0OVxcdTBlMzJcXHUwZTA3XFx1MGU0MlxcdTBlMWJcXHUwZTIzXFx1MGU0NFxcdTBlMWZcXHUwZTI1XFx1MGU0Y1xcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMmFcXHUwZTM0XFx1MGU0OFxcdTBlMDdcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTJhXFx1MGUxOVxcdTBlNDNcXHUwZTA4IFxcdTBlNDFcXHUwZTI1XFx1MGUzMFxcdTBlNDFcXHUwZTJhXFx1MGUxNFxcdTBlMDdcXHUwZTQyXFx1MGUwNlxcdTBlMjlcXHUwZTEzXFx1MGUzMlxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlNDBcXHUwZTAxXFx1MGUzNVxcdTBlNDhcXHUwZTIyXFx1MGUyN1xcdTBlMDJcXHUwZTQ5XFx1MGUyZFxcdTBlMDdcXHUwZTQzXFx1MGUxOVxcdTBlNDBcXHUwZTI3XFx1MGU0N1xcdTBlMWFcXHUwZTQ0XFx1MGUwYlxcdTBlMTVcXHUwZTRjXFx1MGUyZFxcdTBlMzdcXHUwZTQ4XFx1MGUxOSBcXHUwZTQ2J119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwiXFx1MGUxZVxcdTBlMzFcXHUwZTE5XFx1MGUxOFxcdTBlMjFcXHUwZTM0XFx1MGUxNVxcdTBlMjNcXHUwZTE0XFx1MGU0OVxcdTBlMzJcXHUwZTE5XFx1MGU0MlxcdTBlMDZcXHUwZTI5XFx1MGUxM1xcdTBlMzJcXHUwZTFhXFx1MGUzOFxcdTBlMDRcXHUwZTA0XFx1MGUyNVxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMmFcXHUwZTMyXFx1MGUyMVwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTBlMWVcXHUwZTMxXFx1MGUxOVxcdTBlMThcXHUwZTIxXFx1MGUzNFxcdTBlMTVcXHUwZTIzXFx1MGUxNFxcdTBlNDlcXHUwZTMyXFx1MGUxOVxcdTBlNDJcXHUwZTA2XFx1MGUyOVxcdTBlMTNcXHUwZTMyXFx1MGUxYVxcdTBlMzhcXHUwZTA0XFx1MGUwNFxcdTBlMjVcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTJhXFx1MGUzMlxcdTBlMjE6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTBlMjdcXHUwZTMxXFx1MGUxOVxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMjFcXHUwZTM1XFx1MGUxY1xcdTBlMjVcXHUwZTFhXFx1MGUzMVxcdTBlMDdcXHUwZTA0XFx1MGUzMVxcdTBlMWFcXHUwZTQzXFx1MGUwYVxcdTBlNDk6IDE1IFxcdTBlMjFcXHUwZTAxXFx1MGUyM1xcdTBlMzJcXHUwZTA0XFx1MGUyMSAyNTYyXCIsQm9keTpbXCJcXHUwZTE5XFx1MGUyZFxcdTBlMDFcXHUwZTQwXFx1MGUyYlxcdTBlMTlcXHUwZTM3XFx1MGUyZFxcdTBlMDhcXHUwZTMyXFx1MGUwMVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMDhcXHUwZTMxXFx1MGUxNFxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMWNcXHUwZTQ4XFx1MGUzMlxcdTBlMTlcXHUwZTE3XFx1MGUzMlxcdTBlMDdcXHUwZTFhXFx1MGUyM1xcdTBlMzJcXHUwZTI3XFx1MGU0MFxcdTBlMGJcXHUwZTJkXFx1MGUyM1xcdTBlNGNcXHUwZTJiXFx1MGUyM1xcdTBlMzdcXHUwZTJkXFx1MGUyZFxcdTBlMzhcXHUwZTFiXFx1MGUwMVxcdTBlMjNcXHUwZTEzXFx1MGU0Y1xcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMDRcXHUwZTM4XFx1MGUxM1xcdTBlNDFcXHUwZTI1XFx1MGU0OVxcdTBlMjcgXFx1MGUwNFxcdTBlMzhcXHUwZTEzXFx1MGUyYVxcdTBlMzJcXHUwZTIxXFx1MGUzMlxcdTBlMjNcXHUwZTE2XFx1MGU0MFxcdTBlMWJcXHUwZTI1XFx1MGUzNVxcdTBlNDhcXHUwZTIyXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMTVcXHUwZTMxXFx1MGU0OVxcdTBlMDdcXHUwZTA0XFx1MGU0OFxcdTBlMzJcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcXHUwZTAyXFx1MGUyZFxcdTBlMDdcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTE0XFx1MGU0OVxcdTBlMzJcXHUwZTE5XFx1MGUyNVxcdTBlNDhcXHUwZTMyXFx1MGUwNyBcXHUwZTQyXFx1MGUxYlxcdTBlMjNcXHUwZTE0XFx1MGUxN1xcdTBlMjNcXHUwZTMyXFx1MGUxYVxcdTBlMjdcXHUwZTQ4XFx1MGUzMlxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMWFcXHUwZTMyXFx1MGUwN1xcdTBlMmRcXHUwZTIyXFx1MGU0OFxcdTBlMzJcXHUwZTA3XFx1MGUwOFxcdTBlMzNcXHUwZTQwXFx1MGUxYlxcdTBlNDdcXHUwZTE5XFx1MGUxNVxcdTBlNDlcXHUwZTJkXFx1MGUwN1xcdTBlMTdcXHUwZTMzXFx1MGUwN1xcdTBlMzJcXHUwZTE5XFx1MGU0M1xcdTBlMTlcXHUwZTQwXFx1MGUyN1xcdTBlNDdcXHUwZTFhXFx1MGU0NFxcdTBlMGJcXHUwZTE1XFx1MGU0Y1xcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDFcXHUwZTI1XFx1MGUzMFxcdTBlNDRcXHUwZTIxXFx1MGU0OFxcdTBlMmFcXHUwZTMyXFx1MGUyMVxcdTBlMzJcXHUwZTIzXFx1MGUxNlxcdTBlMWFcXHUwZTI1XFx1MGU0N1xcdTBlMmRcXHUwZTAxXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0M1xcdTBlMGFcXHUwZTQ5XFx1MGUwN1xcdTBlMzJcXHUwZTE5XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxNVxcdTBlMzFcXHUwZTQ5XFx1MGUwN1xcdTBlMDRcXHUwZTQ4XFx1MGUzMlxcdTBlNDBcXHUwZTJiXFx1MGUyNVxcdTBlNDhcXHUwZTMyXFx1MGUxOVxcdTBlMzVcXHUwZTQ5XCJdLFRpdGxlOlwiXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxNVxcdTBlMzFcXHUwZTQ5XFx1MGUwN1xcdTBlMDRcXHUwZTQ4XFx1MGUzMlxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVwiLENPT0tJRV9QT1BVUDonXFx1MGUyYVxcdTBlMjdcXHUwZTMxXFx1MGUyYVxcdTBlMTRcXHUwZTM1ISBcXHUwZTQwXFx1MGUyM1xcdTBlMzJcXHUwZTQzXFx1MGUwYVxcdTBlNDlcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTQwXFx1MGUxN1xcdTBlMDRcXHUwZTQyXFx1MGUxOVxcdTBlNDJcXHUwZTI1XFx1MGUyMlxcdTBlMzVcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTA0XFx1MGUyNVxcdTBlNDlcXHUwZTMyXFx1MGUyMlxcdTBlMDFcXHUwZTMxXFx1MGUxOSAoXFx1MjAxY1xcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTIwMWQpIFxcdTBlMjNcXHUwZTI3XFx1MGUyMVxcdTBlMTZcXHUwZTM2XFx1MGUwN1xcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMWFcXHUwZTM4XFx1MGUwNFxcdTBlMDRcXHUwZTI1XFx1MGUxN1xcdTBlMzVcXHUwZTQ4XFx1MGUyYVxcdTBlMzJcXHUwZTIxIFxcdTBlMWFcXHUwZTE5XFx1MGU0MFxcdTBlMjdcXHUwZTQ3XFx1MGUxYVxcdTBlNDRcXHUwZTBiXFx1MGUxNVxcdTBlNGNcXHUwZTE5XFx1MGUzNVxcdTBlNDlcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMGFcXHUwZTQ4XFx1MGUyN1xcdTBlMjJcXHUwZTQzXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMWJcXHUwZTBmXFx1MGUzNFxcdTBlMWFcXHUwZTMxXFx1MGUxNVxcdTBlMzRcXHUwZTA3XFx1MGUzMlxcdTBlMTlcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTFiXFx1MGUyM1xcdTBlMzFcXHUwZTFhXFx1MGUxYlxcdTBlMjNcXHUwZTM4XFx1MGUwN1xcdTBlMWJcXHUwZTIzXFx1MGUzMFxcdTBlMmFcXHUwZTFhXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxM1xcdTBlNGNcXHUwZTAyXFx1MGUyZFxcdTBlMDdcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTQzXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDBcXHUwZTIzXFx1MGUzNVxcdTBlMjJcXHUwZTAxXFx1MGUxNFxcdTBlMzlcXHUwZTAyXFx1MGU0OVxcdTBlMmRcXHUwZTIxXFx1MGUzOVxcdTBlMjUgXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxNVxcdTBlMjNcXHUwZTI3XFx1MGUwOFxcdTBlMmFcXHUwZTJkXFx1MGUxYVxcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTJhXFx1MGUzNFxcdTBlMTdcXHUwZTE4XFx1MGUzNFxcdTBlMjBcXHUwZTMyXFx1MGUxZSBcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMjdcXHUwZTMxXFx1MGUxNVxcdTBlMTZcXHUwZTM4XFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGUyYVxcdTBlMDdcXHUwZTA0XFx1MGU0Y1xcdTBlNDNcXHUwZTE5XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0MlxcdTBlMDZcXHUwZTI5XFx1MGUxM1xcdTBlMzIgXFx1MGUyYVxcdTBlMzNcXHUwZTJiXFx1MGUyM1xcdTBlMzFcXHUwZTFhXFx1MGUwMlxcdTBlNDlcXHUwZTJkXFx1MGUyMVxcdTBlMzlcXHUwZTI1XFx1MGU0MFxcdTBlMWVcXHUwZTM0XFx1MGU0OFxcdTBlMjFcXHUwZTQwXFx1MGUxNVxcdTBlMzRcXHUwZTIxXFx1MGU0MFxcdTBlMDFcXHUwZTM1XFx1MGU0OFxcdTBlMjJcXHUwZTI3XFx1MGUwMVxcdTBlMzFcXHUwZTFhXFx1MGUyN1xcdTBlMzRcXHUwZTE4XFx1MGUzNVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDdcXHUwZTMyXFx1MGUxOVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDFcXHUwZTI1XFx1MGUzMFxcdTBlMTVcXHUwZTMxXFx1MGUyN1xcdTBlNDBcXHUwZTI1XFx1MGUzN1xcdTBlMmRcXHUwZTAxXFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUwNFxcdTBlMzhcXHUwZTEzIFxcdTBlNDNcXHUwZTJiXFx1MGU0OVxcdTBlMTRcXHUwZTM5IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwZTE5XFx1MGU0MlxcdTBlMjJcXHUwZTFhXFx1MGUzMlxcdTBlMjJcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDk8L2E+ISBcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTA0XFx1MGUyNVxcdTBlMzRcXHUwZTAxIFxcdTIwMWNcXHUwZTIyXFx1MGUyZFxcdTBlMjFcXHUwZTIzXFx1MGUzMVxcdTBlMWFcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcXHUyMDFkIFxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTI1XFx1MGU0OFxcdTBlMzJcXHUwZTA3XFx1MGUxOVxcdTBlMzVcXHUwZTQ5XFx1MGU0MVxcdTBlMmFcXHUwZTE0XFx1MGUwN1xcdTBlMjdcXHUwZTQ4XFx1MGUzMlxcdTBlMDRcXHUwZTM4XFx1MGUxM1xcdTBlMjJcXHUwZTM0XFx1MGUxOVxcdTBlMjJcXHUwZTJkXFx1MGUyMVxcdTBlNDNcXHUwZTJiXFx1MGU0OVxcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMTdcXHUwZTMxXFx1MGU0OVxcdTBlMDdcXHUwZTJiXFx1MGUyMVxcdTBlMTQgXFx1MGUyM1xcdTBlMjdcXHUwZTIxXFx1MGUxNlxcdTBlMzZcXHUwZTA3XFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XFx1MGUxN1xcdTBlMzVcXHUwZTQ4XFx1MGU0NFxcdTBlMjFcXHUwZTQ4XFx1MGUwOFxcdTBlMzNcXHUwZTQwXFx1MGUxYlxcdTBlNDdcXHUwZTE5IFxcdTBlMDRcXHUwZTM4XFx1MGUxM1xcdTBlMmRcXHUwZTMyXFx1MGUwOFxcdTBlMWJcXHUwZTBmXFx1MGUzNFxcdTBlNDBcXHUwZTJhXFx1MGUxOFxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlNDRcXHUwZTIxXFx1MGU0OFxcdTBlMDhcXHUwZTMzXFx1MGU0MFxcdTBlMWJcXHUwZTQ3XFx1MGUxOVxcdTBlMTdcXHUwZTMxXFx1MGU0OVxcdTBlMDdcXHUwZTJiXFx1MGUyMVxcdTBlMTRcXHUwZTQyXFx1MGUxNFxcdTBlMjJcXHUwZTA0XFx1MGUyNVxcdTBlMzRcXHUwZTAxIFwiWFwiIFxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTAyXFx1MGUyN1xcdTBlMzIgXFx1MGU0NFxcdTBlMWJcXHUwZTE3XFx1MGUzNVxcdTBlNDggXCJcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTE1XFx1MGUzMVxcdTBlNDlcXHUwZTA3XFx1MGUwNFxcdTBlNDhcXHUwZTMyXFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XCIgXFx1MGUyYlxcdTBlMjNcXHUwZTM3XFx1MGUyZCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGUxOVxcdTBlNDJcXHUwZTIyXFx1MGUxYVxcdTBlMzJcXHUwZTIyXFx1MGU0MFxcdTBlMDFcXHUwZTM1XFx1MGU0OFxcdTBlMjJcXHUwZTI3XFx1MGUwMVxcdTBlMzFcXHUwZTFhXFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5PC9hPiBcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlNDBcXHUwZTFiXFx1MGUyNVxcdTBlMzVcXHUwZTQ4XFx1MGUyMlxcdTBlMTlcXHUwZTQxXFx1MGUxYlxcdTBlMjVcXHUwZTA3XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxNVxcdTBlMzFcXHUwZTQ5XFx1MGUwN1xcdTBlMDRcXHUwZTQ4XFx1MGUzMlxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMDRcXHUwZTM4XFx1MGUxMyBcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTIyXFx1MGUwMVxcdTBlNDBcXHUwZTI1XFx1MGUzNFxcdTBlMDFcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTQzXFx1MGUyYlxcdTBlNDlcXHUwZTA0XFx1MGUyN1xcdTBlMzJcXHUwZTIxXFx1MGUyMlxcdTBlMzRcXHUwZTE5XFx1MGUyMlxcdTBlMmRcXHUwZTIxXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUwNFxcdTBlMzhcXHUwZTEzXFx1MGU0NFxcdTBlMTRcXHUwZTQ5XFx1MGUxNVxcdTBlMjVcXHUwZTJkXFx1MGUxNFxcdTBlNDBcXHUwZTI3XFx1MGUyNVxcdTBlMzInLENPT0tJRV9QT1BVUF9FVTonXFx1MGUyYVxcdTBlMjdcXHUwZTMxXFx1MGUyYVxcdTBlMTRcXHUwZTM1ISBcXHUwZTQwXFx1MGUyM1xcdTBlMzJcXHUwZTQzXFx1MGUwYVxcdTBlNDlcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTQwXFx1MGUxN1xcdTBlMDRcXHUwZTQyXFx1MGUxOVxcdTBlNDJcXHUwZTI1XFx1MGUyMlxcdTBlMzVcXHUwZTE3XFx1MGUzNVxcdTBlNDhcXHUwZTA0XFx1MGUyNVxcdTBlNDlcXHUwZTMyXFx1MGUyMlxcdTBlMDFcXHUwZTMxXFx1MGUxOSAoXFx1MjAxY1xcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTIwMWQpIFxcdTBlMjNcXHUwZTI3XFx1MGUyMVxcdTBlMTZcXHUwZTM2XFx1MGUwN1xcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMWFcXHUwZTM4XFx1MGUwNFxcdTBlMDRcXHUwZTI1XFx1MGUxN1xcdTBlMzVcXHUwZTQ4XFx1MGUyYVxcdTBlMzJcXHUwZTIxIFxcdTBlMWFcXHUwZTE5XFx1MGU0MFxcdTBlMjdcXHUwZTQ3XFx1MGUxYVxcdTBlNDRcXHUwZTBiXFx1MGUxNVxcdTBlNGNcXHUwZTE5XFx1MGUzNVxcdTBlNDlcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMGFcXHUwZTQ4XFx1MGUyN1xcdTBlMjJcXHUwZTQzXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMWJcXHUwZTBmXFx1MGUzNFxcdTBlMWFcXHUwZTMxXFx1MGUxNVxcdTBlMzRcXHUwZTA3XFx1MGUzMlxcdTBlMTlcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTFiXFx1MGUyM1xcdTBlMzFcXHUwZTFhXFx1MGUxYlxcdTBlMjNcXHUwZTM4XFx1MGUwN1xcdTBlMWJcXHUwZTIzXFx1MGUzMFxcdTBlMmFcXHUwZTFhXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxM1xcdTBlNGNcXHUwZTAyXFx1MGUyZFxcdTBlMDdcXHUwZTA0XFx1MGUzOFxcdTBlMTNcXHUwZTQzXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDBcXHUwZTIzXFx1MGUzNVxcdTBlMjJcXHUwZTAxXFx1MGUxNFxcdTBlMzlcXHUwZTAyXFx1MGU0OVxcdTBlMmRcXHUwZTIxXFx1MGUzOVxcdTBlMjUgXFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxNVxcdTBlMjNcXHUwZTI3XFx1MGUwOFxcdTBlMmFcXHUwZTJkXFx1MGUxYVxcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTFiXFx1MGUyM1xcdTBlMzBcXHUwZTJhXFx1MGUzNFxcdTBlMTdcXHUwZTE4XFx1MGUzNFxcdTBlMjBcXHUwZTMyXFx1MGUxZSBcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlMjdcXHUwZTMxXFx1MGUxNVxcdTBlMTZcXHUwZTM4XFx1MGUxYlxcdTBlMjNcXHUwZTMwXFx1MGUyYVxcdTBlMDdcXHUwZTA0XFx1MGU0Y1xcdTBlNDNcXHUwZTE5XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGU0MlxcdTBlMDZcXHUwZTI5XFx1MGUxM1xcdTBlMzIgXFx1MGUyYVxcdTBlMzNcXHUwZTJiXFx1MGUyM1xcdTBlMzFcXHUwZTFhXFx1MGUwMlxcdTBlNDlcXHUwZTJkXFx1MGUyMVxcdTBlMzlcXHUwZTI1XFx1MGU0MFxcdTBlMWVcXHUwZTM0XFx1MGU0OFxcdTBlMjFcXHUwZTQwXFx1MGUxNVxcdTBlMzRcXHUwZTIxXFx1MGU0MFxcdTBlMDFcXHUwZTM1XFx1MGU0OFxcdTBlMjJcXHUwZTI3XFx1MGUwMVxcdTBlMzFcXHUwZTFhXFx1MGUyN1xcdTBlMzRcXHUwZTE4XFx1MGUzNVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDdcXHUwZTMyXFx1MGUxOVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDFcXHUwZTI1XFx1MGUzMFxcdTBlMTVcXHUwZTMxXFx1MGUyN1xcdTBlNDBcXHUwZTI1XFx1MGUzN1xcdTBlMmRcXHUwZTAxXFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUwNFxcdTBlMzhcXHUwZTEzIFxcdTBlNDNcXHUwZTJiXFx1MGU0OVxcdTBlMTRcXHUwZTM5IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHUwZTE5XFx1MGU0MlxcdTBlMjJcXHUwZTFhXFx1MGUzMlxcdTBlMjJcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDk8L2E+ISBcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTA0XFx1MGUyNVxcdTBlMzRcXHUwZTAxIFxcdTIwMWNcXHUwZTIyXFx1MGUyZFxcdTBlMjFcXHUwZTIzXFx1MGUzMVxcdTBlMWFcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcXHUyMDFkIFxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTI1XFx1MGU0OFxcdTBlMzJcXHUwZTA3XFx1MGUxOVxcdTBlMzVcXHUwZTQ5XFx1MGU0MVxcdTBlMmFcXHUwZTE0XFx1MGUwN1xcdTBlMjdcXHUwZTQ4XFx1MGUzMlxcdTBlMDRcXHUwZTM4XFx1MGUxM1xcdTBlMjJcXHUwZTM0XFx1MGUxOVxcdTBlMjJcXHUwZTJkXFx1MGUyMVxcdTBlNDNcXHUwZTJiXFx1MGU0OVxcdTBlNDBcXHUwZTIzXFx1MGUzMlxcdTBlNDNcXHUwZTBhXFx1MGU0OVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMTdcXHUwZTMxXFx1MGU0OVxcdTBlMDdcXHUwZTJiXFx1MGUyMVxcdTBlMTQgXFx1MGUyM1xcdTBlMjdcXHUwZTIxXFx1MGUxNlxcdTBlMzZcXHUwZTA3XFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XFx1MGUxN1xcdTBlMzVcXHUwZTQ4XFx1MGU0NFxcdTBlMjFcXHUwZTQ4XFx1MGUwOFxcdTBlMzNcXHUwZTQwXFx1MGUxYlxcdTBlNDdcXHUwZTE5IFxcdTBlMDRcXHUwZTM4XFx1MGUxM1xcdTBlMmRcXHUwZTMyXFx1MGUwOFxcdTBlMWJcXHUwZTBmXFx1MGUzNFxcdTBlNDBcXHUwZTJhXFx1MGUxOFxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlNDRcXHUwZTIxXFx1MGU0OFxcdTBlMDhcXHUwZTMzXFx1MGU0MFxcdTBlMWJcXHUwZTQ3XFx1MGUxOVxcdTBlMTdcXHUwZTMxXFx1MGU0OVxcdTBlMDdcXHUwZTJiXFx1MGUyMVxcdTBlMTRcXHUwZTQyXFx1MGUxNFxcdTBlMjJcXHUwZTA0XFx1MGUyNVxcdTBlMzRcXHUwZTAxIFwiWFwiIFxcdTBlMTdcXHUwZTM1XFx1MGU0OFxcdTBlMTRcXHUwZTQ5XFx1MGUzMlxcdTBlMTlcXHUwZTAyXFx1MGUyN1xcdTBlMzIgXFx1MGU0NFxcdTBlMWJcXHUwZTE3XFx1MGUzNVxcdTBlNDggXCJcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTE1XFx1MGUzMVxcdTBlNDlcXHUwZTA3XFx1MGUwNFxcdTBlNDhcXHUwZTMyXFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5XCIgXFx1MGUyYlxcdTBlMjNcXHUwZTM3XFx1MGUyZCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MGUxOVxcdTBlNDJcXHUwZTIyXFx1MGUxYVxcdTBlMzJcXHUwZTIyXFx1MGU0MFxcdTBlMDFcXHUwZTM1XFx1MGU0OFxcdTBlMjJcXHUwZTI3XFx1MGUwMVxcdTBlMzFcXHUwZTFhXFx1MGUwNFxcdTBlMzhcXHUwZTAxXFx1MGUwMVxcdTBlMzVcXHUwZTQ5PC9hPiBcXHUwZTQwXFx1MGUxZVxcdTBlMzdcXHUwZTQ4XFx1MGUyZFxcdTBlNDBcXHUwZTFiXFx1MGUyNVxcdTBlMzVcXHUwZTQ4XFx1MGUyMlxcdTBlMTlcXHUwZTQxXFx1MGUxYlxcdTBlMjVcXHUwZTA3XFx1MGUwMVxcdTBlMzJcXHUwZTIzXFx1MGUxNVxcdTBlMzFcXHUwZTQ5XFx1MGUwN1xcdTBlMDRcXHUwZTQ4XFx1MGUzMlxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVxcdTBlMDJcXHUwZTJkXFx1MGUwN1xcdTBlMDRcXHUwZTM4XFx1MGUxMyBcXHUwZTQxXFx1MGUyNVxcdTBlMzBcXHUwZTIyXFx1MGUwMVxcdTBlNDBcXHUwZTI1XFx1MGUzNFxcdTBlMDFcXHUwZTAxXFx1MGUzMlxcdTBlMjNcXHUwZTQzXFx1MGUyYlxcdTBlNDlcXHUwZTA0XFx1MGUyN1xcdTBlMzJcXHUwZTIxXFx1MGUyMlxcdTBlMzRcXHUwZTE5XFx1MGUyMlxcdTBlMmRcXHUwZTIxXFx1MGUwMlxcdTBlMmRcXHUwZTA3XFx1MGUwNFxcdTBlMzhcXHUwZTEzXFx1MGU0NFxcdTBlMTRcXHUwZTQ5XFx1MGUxNVxcdTBlMjVcXHUwZTJkXFx1MGUxNFxcdTBlNDBcXHUwZTI3XFx1MGUyNVxcdTBlMzInLEFncmVlVGV4dDpcIlxcdTBlMjJcXHUwZTJkXFx1MGUyMVxcdTBlMjNcXHUwZTMxXFx1MGUxYVxcdTBlMDRcXHUwZTM4XFx1MGUwMVxcdTBlMDFcXHUwZTM1XFx1MGU0OVwiLFNldHRpbmdzVGV4dDpcIlxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMTVcXHUwZTMxXFx1MGU0OVxcdTBlMDdcXHUwZTA0XFx1MGU0OFxcdTBlMzJcXHUwZTA0XFx1MGUzOFxcdTBlMDFcXHUwZTAxXFx1MGUzNVxcdTBlNDlcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTBlMjNcXHUwZTMyXFx1MGUyMlxcdTBlMDdcXHUwZTMyXFx1MGUxOVxcdTBlMDFcXHUwZTMyXFx1MGUyM1xcdTBlMjVcXHUwZTMwXFx1MGU0MFxcdTBlMjFcXHUwZTM0XFx1MGUxNFwiLFNwb3RsaWdodDpcIlNwb3RsaWdodFwifSxcInRyLXRyXCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiQ2FubFxcdTAxMzFcIixBZHM6XCJSZWtsYW1sYXJcIixDb21wYW55OlwiXFx1MDE1ZWlya2V0XCIsSG9tZTpcIkFuYSBTYXlmYVwiLEJsb2c6XCJCbG9nXCIsSm9iczpcIlxcdTAxMzBcXHUwMTVmIEZcXHUwMTMxcnNhdGxhclxcdTAxMzFcIixDYXJlZXJzOlwiS2FyaXllclwiLFByZXNzOlwiQmFzXFx1MDEzMW5cIixOZXdzOlwiSGFiZXJsZXJcIixcIlByZXNzIElucXVpcmllc1wiOlwiQmFzXFx1MDEzMW4gVGFsZXBsZXJpXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIkRpbFwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlNuYXBjaGF0J2kgXFx1MDEzMG5kaXJcIixEb3dubG9hZDpcIlxcdTAxMzBuZGlyXCIsS2l0OlwiS2l0XCIsU3RvcmllczpcIkhpa2F5ZWxlclwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJNYVxcdTAxMWZhemFcIixcIlNuYXBjaGF0IGZvciBpT1NcIjpcImlPUyBpXFx4ZTdpbiBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQgaVxceGU3aW4gU25hcGNoYXRcIixDb21tdW5pdHk6XCJUb3BsdWx1a1wiLFN1cHBvcnQ6XCJEZXN0ZWtcIixcIkNvbW11bml0eSBHdWlkZWxpbmVzXCI6XCJUb3BsdWx1ayBcXHUwMTMwbGtlbGVyaVwiLFwiU2FmZXR5IENlbnRlclwiOlwiR1xceGZjdmVubGlrIE1lcmtlemlcIixTbmFwY29kZXM6XCJTbmFwa29kbGFyXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRyZWxlclwiLENyZWF0ZTpcIkZpbHRyZWxlciB2ZSBMZW5zbGVyXCIsTWFwOlwiSGFyaXRhXCIsQWR2ZXJ0aXNpbmc6XCJSZWtsYW1cIixcIkJ1eSBBZHNcIjpcIlJla2xhbSBTYXRcXHUwMTMxbiBBbFwiLFwiQWR2ZXJ0aXNpbmcgUG9saWNpZXNcIjpcIlJla2xhbSBQb2xpdGlrYXNcXHUwMTMxXCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlBvbGl0aWsgUmVrbGFtbGFyIEtcXHhmY3RcXHhmY3BoYW5lc2lcIixcIkJyYW5kIEd1aWRlbGluZXNcIjpcIk1hcmthIEt1cmFsbGFyXFx1MDEzMVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiVGFuXFx1MDEzMXRcXHUwMTMxbSBLdXJhbGxhclxcdTAxMzFcIixMZWdhbDpcIllhc2FsXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJLdWxsYW5cXHUwMTMxbSBcXHUwMTVlYXJ0bGFyXFx1MDEzMVwiLEltcHJlc3N1bTpcIktcXHhmY255ZVwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIkdpemxpbGlrIFBvbGl0aWthc1xcdTAxMzFcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJHaXpsaWxpayBNZXJrZXppXCIsXCJDb29raWUgUG9saWN5XCI6XCJcXHhjN2VyZXogUG9saXRpa2FzXFx1MDEzMVwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiQW5cXHUwMTMxbGFyIEt1bGxhblxcdTAxMzFtIFxcdTAxNWVhcnRsYXJcXHUwMTMxXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxceGQ2emVsIFlhcmF0XFx1MDEzMWNcXHUwMTMxIEFyYVxceGU3bGFyYSBhaXQgXFx1MDE1ZWFydGxhclwiLENPTU1VTklUWV9UT1M6XCJUb3BsdWx1ayBHZW9maWx0cmVzaSBLb1xcdTAxNWZ1bGxhclxcdTAxMzFcIixMRU5TX1NUVURJT19UT1M6XCJMZW5zIFN0dWRpbyBLb1xcdTAxNWZ1bGxhclxcdTAxMzFcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJHaXpsaWxpayBTZVxceGU3ZW5la2xlcmluaXpcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJHZXJla2xpIFxceGU3ZXJlemxlclwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPkJ1IFxceGU3ZXJlemxlcmksPC9hPiBzaXRleWkgXFx4ZTdhbFxcdTAxMzFcXHUwMTVmdFxcdTAxMzFybWFtXFx1MDEzMXphIHlhcmRcXHUwMTMxbWNcXHUwMTMxIG9sbWFzXFx1MDEzMSBpXFx4ZTdpbiBrdWxsYW5cXHUwMTMxeW9ydXouIEJ1IFxceGU3ZXJlemxlciBnZXJla2xpIG9sZHVcXHUwMTFmdW5kYW4gYnVubGFyXFx1MDEzMSBkZXZyZSBkXFx1MDEzMVxcdTAxNWZcXHUwMTMxIGJcXHUwMTMxcmFrYW1henNcXHUwMTMxbi4nXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiUHJlZmVyZW5jZXNcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPkJ1IFxceGU3ZXJlemxlcmksPC9hPiB0ZXJjaWhsZXJpbmkgaGF0XFx1MDEzMXJsYW1hayB2ZSB3ZWIgc2l0ZW1pemRla2kgZGVuZXlpbWluaSBnZWxpXFx1MDE1ZnRpcm1layBpXFx4ZTdpbiBrdWxsYW5cXHUwMTMxeW9ydXouJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlBlcmZvcm1hbmNlICYgQW5hbHl0aWNzXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5CdSBcXHhlN2VyZXpsZXJpLDwvYT4gc2l0ZW1pemkgbmFzXFx1MDEzMWwga3VsbGFuZFxcdTAxMzFcXHUwMTFmXFx1MDEzMW4gaGFra1xcdTAxMzFuZGEgYmlsZ2kgdG9wbGFtYWssIHNpdGUgcGVyZm9ybWFuc1xcdTAxMzFuXFx1MDEzMSBpemxlbWVrLCBheXJcXHUwMTMxY2Egc2l0ZW1pemluIHBlcmZvcm1hbnNcXHUwMTMxblxcdTAxMzEgdmUgc2VuaW4gZGVuZXlpbWluaSBnZWxpXFx1MDE1ZnRpcm1layBpXFx4ZTdpbiBrdWxsYW5cXHUwMTMxeW9ydXouJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJQYXphcmxhbWFcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5CdSBcXHhlN2VyZXpsZXJpLDwvYT4gc2FuYSBpbGdpbGkgcmVrbGFtbGFyIHN1bm1hayB2ZSByZWtsYW0ga2FtcGFueWFsYXJcXHUwMTMxbVxcdTAxMzF6XFx1MDEzMW4gZXRraW5saVxcdTAxMWZpbmkgXFx4ZjZsXFx4ZTdtZWsgaVxceGU3aW4ga3VsbGFuXFx1MDEzMXlvcnV6LiBcXHhkY1xceGU3XFx4ZmNuY1xceGZjIHRhcmFmIHJla2xhbSBvcnRha2xhclxcdTAxMzFtXFx1MDEzMXosIGlsZ2kgYWxhbmxhclxcdTAxMzFuXFx1MDEzMW4gcHJvZmlsaW5pIG9sdVxcdTAxNWZ0dXJtYWsgdmUgZGlcXHUwMTFmZXIgc2l0ZWxlcmRlIGFsYWthbFxcdTAxMzEgcmVrbGFtbGFyIGdcXHhmNnN0ZXJtZWsgaVxceGU3aW4gYnUgXFx4ZTdlcmV6bGVyaSBrdWxsYW5hYmlsaXIuJ119fSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNUZXh0OlwiXFx4ZmNcXHhlN1xceGZjbmNcXHhmYyB0YXJhZiByZWtsYW0gb3J0YWtsYXJcXHUwMTMxXCIsQWR2ZXJ0aXNlcnNMaXN0OlsnPGEgaHJlZj1cImh0dHBzOi8vaGVscC50d2l0dGVyLmNvbS9ydWxlcy1hbmQtcG9saWNpZXMvdHdpdHRlci1jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Ud2l0dGVyPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljeS5waW50ZXJlc3QuY29tL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBpbnRlcmVzdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY2llcy5nb29nbGUuY29tL3RlY2hub2xvZ2llcy9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Hb29nbGU8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9sZWdhbC9jb29raWUtcG9saWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5MaW5rZWRJbjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vcHJpdmFjeXN0YXRlbWVudFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+QmluZzwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuc2FsZXNmb3JjZS5jb20vY29tcGFueS9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QYXJkb3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9wb2xpY2llcy9jb29raWVzL1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+RmFjZWJvb2s8L2E+J10sVGhpcmRQYXJ0eUFkdmVydGlzZXJzUG9wdXBUZXh0OlwiXFx4ZGNcXHhlN1xceGZjbmNcXHhmYyB0YXJhZiByZWtsYW0gb3J0YWtsYXJcXHUwMTMxOlwiLEVmZmVjdGl2ZURhdGU6XCJZXFx4ZmNyXFx4ZmNybFxceGZjayB0YXJpaGk6IDE1IE9jYWsgMjAxOVwiLEJvZHk6W1wiXFx4YzdlcmV6bGVyaSB0YXJheVxcdTAxMzFjXFx1MDEzMW4gdmV5YSBjaWhhelxcdTAxMzFuIFxceGZjemVyaW5kZW4geVxceGY2bmV0bWV5ZSBlayBvbGFyYWssIFxceGU3ZXJleiBheWFybGFyXFx1MDEzMW5cXHUwMTMxIGFcXHUwMTVmYVxcdTAxMWZcXHUwMTMxZGFuIGRhIGRlXFx1MDExZmlcXHUwMTVmdGlyZWJpbGlyc2luLiBTaXRlbWl6aSBpXFx1MDE1ZmxleWlcXHUwMTVmaSBpXFx4ZTdpbiBiYXpcXHUwMTMxIFxceGU3ZXJlemxlcmluIGdlcmVrbGkgb2xkdVxcdTAxMWZ1bnUgdmUgYnUgYXlhcmxhclxcdTAxMzEga3VsbGFuYXJhayBlbmdlbGxlbmVtZWRpXFx1MDExZmluaSBsXFx4ZmN0ZmVuIHVudXRtYS5cIl0sVGl0bGU6XCJcXHhjN2VyZXogQXlhcmxhclxcdTAxMzFcIixDT09LSUVfUE9QVVA6J01lcmhhYmEhIFNpdGV5aSBcXHhlN2FsXFx1MDEzMVxcdTAxNWZ0XFx1MDEzMXJtYW1cXHUwMTMxemEsIHRhcmFtYSBkZW5leWltaW5pIGl5aWxlXFx1MDE1ZnRpcm1lbWl6ZSB2ZSBwZXJmb3JtYW5zXFx1MDEzMSBpemxlbWVtaXplIHlhcmRcXHUwMTMxbWNcXHUwMTMxIG9sbWFzXFx1MDEzMSBpXFx4ZTdpbiwgYXlyXFx1MDEzMWNhIHJla2xhbSBhbWFcXHhlN2xcXHUwMTMxIG9sYXJhayBidSB3ZWIgc2l0ZXNpbmRlLCBcXHhmY1xceGU3XFx4ZmNuY1xceGZjIHRhcmFmIFxceGU3ZXJlemxlcmkgZGUgZGFoaWwgb2xtYWsgXFx4ZmN6ZXJlLCBcXHhlN2VyZXpsZXIgdmUgYmVuemVyIHRla25vbG9qaWxlciAoXFx1MjAxY1xceGU3ZXJlemxlclxcdTIwMWQpIGt1bGxhblxcdTAxMzF5b3J1ei4gXFx4YzdlcmV6bGVyaSBuYXNcXHUwMTMxbCBrdWxsYW5kXFx1MDEzMVxcdTAxMWZcXHUwMTMxbVxcdTAxMzF6IHZlIGtlbmRpIFxceGU3ZXJleiB0ZXJjaWhsZXJpbiBoYWtrXFx1MDEzMW5kYSBkYWhhIGZhemxhIGJpbGdpIGlcXHhlN2luIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHhjN2VyZXogUG9saXRpa2FtXFx1MDEzMXphPC9hPiBiYWthYmlsaXJzaW4hIEFcXHUwMTVmYVxcdTAxMWZcXHUwMTMxZGFraSBcIlxceGM3ZXJlemxlcmkgS2FidWwgRXRcIiBzZVxceGU3ZW5lXFx1MDExZmluZSB0XFx1MDEzMWtsYWRcXHUwMTMxXFx1MDExZlxcdTAxMzFuZGEsIHpvcnVubHUgb2xtYXlhbiBcXHhlN2VyZXpsZXIgZGUgZGFoaWwgb2xtYWsgXFx4ZmN6ZXJlIHRcXHhmY20gXFx4ZTdlcmV6bGVyaSBrdWxsYW5tYW1cXHUwMTMxemEgaXppbiB2ZXJtaVxcdTAxNWYgb2x1cnN1bi4gU2FcXHUwMTFmIHRhcmFmdGFraSBcIlhcIiBpXFx1MDE1ZmFyZXRpbmUgdFxcdTAxMzFrbGF5YXJhayB6b3J1bmx1IG9sbWF5YW4gdFxceGZjbSBcXHhlN2VyZXpsZXJpIHJlZGRlZGViaWxpcnNpbi4gXCJcXHhjN2VyZXogQXlhcmxhclxcdTAxMzFcIiB2ZXlhIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5cXHhjN2VyZXogUG9saXRpa2FzXFx1MDEzMTwvYT4gc2F5ZmFzXFx1MDEzMW5hIGdpZGVyZWsgXFx4ZTdlcmV6IGF5YXJsYXJcXHUwMTMxblxcdTAxMzEgZGVcXHUwMTFmaVxcdTAxNWZ0aXJlYmlsaXJzaW4gdmUgaXN0ZWRpXFx1MDExZmluIHphbWFuIHZlcmRpXFx1MDExZmluIGl6bmkgZ2VyaSBhbGFiaWxpcnNpbi4nLENPT0tJRV9QT1BVUF9FVTonTWVyaGFiYSEgU2l0ZXlpIFxceGU3YWxcXHUwMTMxXFx1MDE1ZnRcXHUwMTMxcm1hbVxcdTAxMzF6YSwgdGFyYW1hIGRlbmV5aW1pbmkgaXlpbGVcXHUwMTVmdGlybWVtaXplIHZlIHBlcmZvcm1hbnNcXHUwMTMxIGl6bGVtZW1pemUgeWFyZFxcdTAxMzFtY1xcdTAxMzEgb2xtYXNcXHUwMTMxIGlcXHhlN2luLCBheXJcXHUwMTMxY2EgcmVrbGFtIGFtYVxceGU3bFxcdTAxMzEgb2xhcmFrIGJ1IHdlYiBzaXRlc2luZGUsIFxceGZjXFx4ZTdcXHhmY25jXFx4ZmMgdGFyYWYgXFx4ZTdlcmV6bGVyaSBkZSBkYWhpbCBvbG1hayBcXHhmY3plcmUsIFxceGU3ZXJlemxlciB2ZSBiZW56ZXIgdGVrbm9sb2ppbGVyIChcXHUyMDFjXFx4ZTdlcmV6bGVyXFx1MjAxZCkga3VsbGFuXFx1MDEzMXlvcnV6LiBcXHhjN2VyZXpsZXJpIG5hc1xcdTAxMzFsIGt1bGxhbmRcXHUwMTMxXFx1MDExZlxcdTAxMzFtXFx1MDEzMXogdmUga2VuZGkgXFx4ZTdlcmV6IHRlcmNpaGxlcmluIGhha2tcXHUwMTMxbmRhIGRhaGEgZmF6bGEgYmlsZ2kgaVxceGU3aW4gPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxceGM3ZXJleiBQb2xpdGlrYW1cXHUwMTMxemE8L2E+IGJha2FiaWxpcnNpbiEgQVxcdTAxNWZhXFx1MDExZlxcdTAxMzFkYWtpIFwiXFx4YzdlcmV6bGVyaSBLYWJ1bCBFdFwiIHNlXFx4ZTdlbmVcXHUwMTFmaW5lIHRcXHUwMTMxa2xhZFxcdTAxMzFcXHUwMTFmXFx1MDEzMW5kYSwgem9ydW5sdSBvbG1heWFuIFxceGU3ZXJlemxlciBkZSBkYWhpbCBvbG1hayBcXHhmY3plcmUgdFxceGZjbSBcXHhlN2VyZXpsZXJpIGt1bGxhbm1hbVxcdTAxMzF6YSBpemluIHZlcm1pXFx1MDE1ZiBvbHVyc3VuLiBTYVxcdTAxMWYgdGFyYWZ0YWtpIFwiWFwiIGlcXHUwMTVmYXJldGluZSB0XFx1MDEzMWtsYXlhcmFrIHpvcnVubHUgb2xtYXlhbiB0XFx4ZmNtIFxceGU3ZXJlemxlcmkgcmVkZGVkZWJpbGlyc2luLiBcIlxceGM3ZXJleiBBeWFybGFyXFx1MDEzMVwiIHZleWEgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxceGM3ZXJleiBQb2xpdGlrYXNcXHUwMTMxPC9hPiBzYXlmYXNcXHUwMTMxbmEgZ2lkZXJlayBcXHhlN2VyZXogYXlhcmxhclxcdTAxMzFuXFx1MDEzMSBkZVxcdTAxMWZpXFx1MDE1ZnRpcmViaWxpcnNpbiB2ZSBpc3RlZGlcXHUwMTFmaW4gemFtYW4gdmVyZGlcXHUwMTFmaW4gaXpuaSBnZXJpIGFsYWJpbGlyc2luLicsQWdyZWVUZXh0OlwiXFx4YzdlcmV6bGVyaSBLYWJ1bCBFdFwiLFNldHRpbmdzVGV4dDpcIlxceGM3ZXJleiBBeWFybGFyXFx1MDEzMVwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiXFx1MDEzMGhsYWwgQmlsZGlyXCIsU3BvdGxpZ2h0OlwiU2FobmUgSVxcdTAxNWZcXHUwMTMxXFx1MDExZlxcdTAxMzFcIn0sXCJ1ci1wa1wiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJcXHUwNjg2XFx1MDYzNFxcdTA2NDVcXHUwNmQyXCIsTGl2ZTpcIlxcdTA2MjhcXHUwNjMxXFx1MDYyN1xcdTA2YzEgXFx1MDYzMVxcdTA2MjdcXHUwNjMzXFx1MDYyYVwiLEFkczpcIlxcdTA2MjdcXHUwNjM0XFx1MDYyYVxcdTA2YzFcXHUwNjI3XFx1MDYzMVxcdTA2MjdcXHUwNjJhXCIsQ29tcGFueTpcIlxcdTA2YTlcXHUwNjQ1XFx1MDY3ZVxcdTA2NDZcXHUwNmNjXCIsSG9tZTpcIlxcdTA2YzFcXHUwNjQ4XFx1MDY0NVwiLEJsb2c6XCJcXHUwNjI4XFx1MDY0NFxcdTA2MjdcXHUwNmFmXCIsSm9iczpcIlxcdTA2NDZcXHUwNjQ4XFx1MDZhOVxcdTA2MzFcXHUwNmNjXFx1MDYyN1xcdTA2YmFcIixDYXJlZXJzOlwiXFx1MDZhOVxcdTA2Y2NcXHUwNjMxXFx1MDZjY1xcdTA2MjZcXHUwNjMxXFx1MDYzMlwiLFByZXNzOlwiXFx1MDY3ZVxcdTA2MzFcXHUwNmNjXFx1MDYzM1wiLE5ld3M6XCJcXHUwNjJlXFx1MDYyOFxcdTA2MzFcXHUwNmNjXFx1MDZiYVwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHUwNjdlXFx1MDYzMVxcdTA2Y2NcXHUwNjMzIFxcdTA2MjdcXHUwNjMzXFx1MDYyYVxcdTA2NDFcXHUwNjMzXFx1MDYyN1xcdTA2MzFcXHUwNjI3XFx1MDYyYVwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJcXHUwNjMyXFx1MDYyOFxcdTA2MjdcXHUwNjQ2XCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiU25hcGNoYXQgXFx1MDY4OFxcdTA2MjdcXHUwNjI0XFx1MDY0NiBcXHUwNjQ0XFx1MDY0OFxcdTA2ODggXFx1MDZhOVxcdTA2MzFcXHUwNmNjXFx1MDZiYVwiLERvd25sb2FkOlwiXFx1MDY4OFxcdTA2MjdcXHUwNjI0XFx1MDY0NiBcXHUwNjQ0XFx1MDY0OFxcdTA2ODggXFx1MDZhOVxcdTA2MzFcXHUwNmNjXFx1MDZiYVwiLEtpdDpcIlxcdTA2YTlcXHUwNjUwXFx1MDY3OVwiLFN0b3JpZXM6XCJcXHUwNmE5XFx1MDZjMVxcdTA2MjdcXHUwNjQ2XFx1MDZjY1xcdTA2MjdcXHUwNmJhXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlN0b3JlXCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJTbmFwY2hhdCBcXHUwNjI4XFx1MDYzMVxcdTA2MjdcXHUwNjI2XFx1MDZkMiBpT1NcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJTbmFwY2hhdCBcXHUwNjI4XFx1MDYzMVxcdTA2MjdcXHUwNjI2XFx1MDZkMiBcXHUwNjI3XFx1MDZjY1xcdTA2NDZcXHUwNjg4XFx1MDYzMVxcdTA2MjdcXHUwNjI2XFx1MDZjY1xcdTA2ODhcIixDb21tdW5pdHk6XCJcXHUwNmE5XFx1MDY0NVxcdTA2Y2NcXHUwNjQ4XFx1MDY0NlxcdTA2NzlcXHUwNmNjXCIsU3VwcG9ydDpcIlxcdTA2MzNcXHUwNjdlXFx1MDY0OFxcdTA2MzFcXHUwNjc5XCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1MDZhOVxcdTA2NDVcXHUwNmNjXFx1MDY0OFxcdTA2NDZcXHUwNjc5XFx1MDZjYyBcXHUwNjMxXFx1MDZjMVxcdTA2NDZcXHUwNjQ1XFx1MDYyN1xcdTA2MjEgXFx1MDYyN1xcdTA2MzVcXHUwNjQ4XFx1MDY0NFwiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1MDYyZFxcdTA2NDFcXHUwNjI3XFx1MDYzOFxcdTA2MmFcXHUwNmNjIFxcdTA2NDVcXHUwNjMxXFx1MDZhOVxcdTA2MzJcIixTbmFwY29kZXM6XCJTbmFwY29kZXNcIixHZW9maWx0ZXJzOlwiXFx1MDYzOVxcdTA2NDRcXHUwNjI3XFx1MDY0MlxcdTA2MjdcXHUwNjI2XFx1MDZjYyBcXHUwNjQxXFx1MDY0NFxcdTA2NzlcXHUwNjMxXFx1MDYzMlwiLENyZWF0ZTpcIlxcdTA2NDFcXHUwNjQ0XFx1MDY3OVxcdTA2MzFcXHUwNjMyIFxcdTA2MjdcXHUwNjQ4XFx1MDYzMSBcXHUwNjQ0XFx1MDZjY1xcdTA2NDZcXHUwNjMyXCIsTWFwOlwiXFx1MDY0NVxcdTA2Y2NcXHUwNjdlXCIsQWR2ZXJ0aXNpbmc6XCJcXHUwNjJhXFx1MDYzNFxcdTA2YzFcXHUwNmNjXFx1MDYzMVwiLFwiQnV5IEFkc1wiOlwiXFx1MDYyN1xcdTA2MzRcXHUwNjJhXFx1MDZjMVxcdTA2MjdcXHUwNjMxXFx1MDYyN1xcdTA2MmEgXFx1MDYyZVxcdTA2MzFcXHUwNmNjXFx1MDYyZlxcdTA2Y2NcXHUwNmJhXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiXFx1MDYyN1xcdTA2MzRcXHUwNjJhXFx1MDZjMVxcdTA2MjdcXHUwNjMxXFx1MDZjYyBcXHUwNjdlXFx1MDYyN1xcdTA2NDRcXHUwNmNjXFx1MDYzM1xcdTA2Y2NcXHUwNjI3XFx1MDZiYVwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJcXHUwNjMzXFx1MDZjY1xcdTA2MjdcXHUwNjMzXFx1MDZjYyBcXHUwNjI3XFx1MDYzNFxcdTA2MmFcXHUwNmMxXFx1MDYyN1xcdTA2MzFcXHUwNjI3XFx1MDYyYSBcXHUwNmE5XFx1MDZjYyBcXHUwNjQ0XFx1MDYyN1xcdTA2MjZcXHUwNjI4XFx1MDYzMVxcdTA2Y2NcXHUwNjMxXFx1MDZjY1wiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiXFx1MDYyOFxcdTA2MzFcXHUwNjI3XFx1MDY0NlxcdTA2ODggXFx1MDZhOVxcdTA2ZDIgXFx1MDYzMVxcdTA2YzFcXHUwNjQ2XFx1MDY0NVxcdTA2MjcgXFx1MDYyN1xcdTA2MzVcXHUwNjQ4XFx1MDY0NFwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiXFx1MDYyYVxcdTA2MzRcXHUwNmMxXFx1MDZjY1xcdTA2MzFcXHUwNmNjIFxcdTA2NDJcXHUwNjQ4XFx1MDYyN1xcdTA2MzlcXHUwNjJmXCIsTGVnYWw6XCJcXHUwNjQyXFx1MDYyN1xcdTA2NDZcXHUwNjQ4XFx1MDY0NlxcdTA2Y2NcIixcIlRlcm1zIG9mIFNlcnZpY2VcIjpcIlxcdTA2MzNcXHUwNjMxXFx1MDY0OFxcdTA2MzMgXFx1MDZhOVxcdTA2Y2MgXFx1MDYzNFxcdTA2MzFcXHUwNjI3XFx1MDYyNlxcdTA2MzdcIixJbXByZXNzdW06XCJcXHUwNjQ1XFx1MDYyZVxcdTA2MmFcXHUwNjI3XFx1MDYzMSBcXHUwNjQ2XFx1MDYyN1xcdTA2NDVcXHUwNmMxXCIsXCJQcml2YWN5IFBvbGljeVwiOlwiXFx1MDY3ZVxcdTA2MzFcXHUwNjI3XFx1MDYyNlxcdTA2Y2NcXHUwNjQ4XFx1MDZjY1xcdTA2MzNcXHUwNmNjIFxcdTA2N2VcXHUwNjI3XFx1MDY0NFxcdTA2Y2NcXHUwNjMzXFx1MDZjY1wiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlxcdTA2N2VcXHUwNjMxXFx1MDYyN1xcdTA2MjZcXHUwNmNjXFx1MDY0OFxcdTA2Y2NcXHUwNjMzXFx1MDZjYyBcXHUwNjMzXFx1MDZjY1xcdTA2NDZcXHUwNjc5XFx1MDYzMVwiLFwiQ29va2llIFBvbGljeVwiOlwiXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDZhOVxcdTA2Y2MgXFx1MDY3ZVxcdTA2MjdcXHUwNjQ0XFx1MDZjY1xcdTA2MzNcXHUwNmNjXCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHUwNmNjXFx1MDYyN1xcdTA2MmZcXHUwNjQ4XFx1MDZiYSBcXHUwNmE5XFx1MDZjYyBcXHUwNjMzXFx1MDYzMVxcdTA2NDhcXHUwNjMzIFxcdTA2YTlcXHUwNmNjIFxcdTA2MzRcXHUwNjMxXFx1MDYyN1xcdTA2MjZcXHUwNjM3XCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTA2NDVcXHUwNjQ2IFxcdTA2N2VcXHUwNjMzXFx1MDY0NlxcdTA2MmYgXFx1MDYyYVxcdTA2MmVcXHUwNjQ0XFx1MDZjY1xcdTA2NDJcXHUwNmNjIFxcdTA2NzlcXHUwNjQ4XFx1MDY0NFxcdTA2MzIgXFx1MDZhOVxcdTA2Y2MgXFx1MDYzM1xcdTA2MzFcXHUwNjQ4XFx1MDYzM1wiLENPTU1VTklUWV9UT1M6XCJcXHUwNmE5XFx1MDY0NVxcdTA2Y2NcXHUwNjQ4XFx1MDY0NlxcdTA2NzlcXHUwNmNjIFxcdTA2YTlcXHUwNmQyIEdlb2ZpbHRlciBcXHUwNmE5XFx1MDZjYyBcXHUwNjM0XFx1MDYzMVxcdTA2MjdcXHUwNjI2XFx1MDYzN1wiLExFTlNfU1RVRElPX1RPUzpcIkxlbnMgU3R1ZGlvIFxcdTA2YTlcXHUwNmNjIFxcdTA2MzRcXHUwNjMxXFx1MDYyN1xcdTA2MjZcXHUwNjM3XCIsXCJZb3VyIFByaXZhY3kgQ2hvaWNlc1wiOlwiXFx1MDYyMlxcdTA2N2UgXFx1MDZhOVxcdTA2Y2MgXFx1MDY3ZVxcdTA2MzFcXHUwNjI3XFx1MDYyNlxcdTA2Y2NcXHUwNjQ4XFx1MDZjY1xcdTA2MzNcXHUwNmNjIFxcdTA2YTlcXHUwNmQyIFxcdTA2MjdcXHUwNjQ2XFx1MDYyYVxcdTA2MmVcXHUwNjI3XFx1MDYyOFwiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIlxcdTA2MzZcXHUwNjMxXFx1MDY0OFxcdTA2MzFcXHUwNmNjIFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+XFx1MDZjMVxcdTA2NDUgXFx1MDYyN1xcdTA2NDYgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDZhOVxcdTA2MjcgXFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYzOVxcdTA2NDVcXHUwNjI3XFx1MDY0NDwvYT4gXFx1MDYzM1xcdTA2MjdcXHUwNjI2XFx1MDY3OSBcXHUwNmE5XFx1MDY0OCBcXHUwNjg2XFx1MDY0NFxcdTA2MjdcXHUwNjQ2XFx1MDZkMiBcXHUwNjQ1XFx1MDZjY1xcdTA2YmEgXFx1MDY0NVxcdTA2MmZcXHUwNjJmIFxcdTA2YTlcXHUwNmQyIFxcdTA2NDRcXHUwNmNjXFx1MDZkMiBcXHUwNmE5XFx1MDYzMVxcdTA2MmFcXHUwNmQyIFxcdTA2YzFcXHUwNmNjXFx1MDZiYVxcdTA2ZDQgXFx1MDY4NlxcdTA2NDhcXHUwNjQ2XFx1MDZhOVxcdTA2YzEgXFx1MDZjY1xcdTA2YzEgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDYzNlxcdTA2MzFcXHUwNjQ4XFx1MDYzMVxcdTA2Y2MgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhXFx1MDYwYyBcXHUwNjI3XFx1MDYzMyBcXHUwNjQ0XFx1MDZjY1xcdTA2ZDIgXFx1MDYyMlxcdTA2N2UgXFx1MDYyN1xcdTA2NDZcXHUwNmMxXFx1MDZjY1xcdTA2YmEgXFx1MDYyMlxcdTA2NDEgXFx1MDY0NlxcdTA2YzFcXHUwNmNjXFx1MDZiYSBcXHUwNmE5XFx1MDYzMSBcXHUwNjMzXFx1MDZhOVxcdTA2MmFcXHUwNmQyXFx1MDZkNCddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHUwNjJhXFx1MDYzMVxcdTA2MmNcXHUwNmNjXFx1MDYyZFxcdTA2MjdcXHUwNjJhXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUHJlZmVyZW5jZXNcIj5cXHUwNmMxXFx1MDY0NSBcXHUwNjI3XFx1MDY0NiBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNmE5XFx1MDYyNyBcXHUwNjI3XFx1MDYzM1xcdTA2MmFcXHUwNjM5XFx1MDY0NVxcdTA2MjdcXHUwNjQ0PC9hPiBcXHUwNjIyXFx1MDY3ZSBcXHUwNmE5XFx1MDZjYyBcXHUwNjJhXFx1MDYzMVxcdTA2MmNcXHUwNmNjXFx1MDYyZFxcdTA2MjdcXHUwNjJhIFxcdTA2Y2NcXHUwNjI3XFx1MDYyZiBcXHUwNjMxXFx1MDZhOVxcdTA2YmVcXHUwNjQ2XFx1MDZkMiBcXHUwNjI3XFx1MDY0OFxcdTA2MzEgXFx1MDYyN1xcdTA2N2VcXHUwNjQ2XFx1MDZjYyBcXHUwNjQ4XFx1MDZjY1xcdTA2MjggXFx1MDYzM1xcdTA2MjdcXHUwNjI2XFx1MDY3OSBcXHUwNjdlXFx1MDYzMSBcXHUwNjIyXFx1MDY3ZSBcXHUwNmE5XFx1MDYyNyBcXHUwNjJhXFx1MDYyY1xcdTA2MzFcXHUwNjI4XFx1MDZjMSBcXHUwNjI4XFx1MDZjMVxcdTA2MmFcXHUwNjMxIFxcdTA2MjhcXHUwNjQ2XFx1MDYyN1xcdTA2NDZcXHUwNmQyIFxcdTA2YTlcXHUwNmQyIFxcdTA2NDRcXHUwNmNjXFx1MDZkMiBcXHUwNmE5XFx1MDYzMVxcdTA2MmFcXHUwNmQyIFxcdTA2YzFcXHUwNmNjXFx1MDZiYVxcdTA2ZDQnXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1MDZhOVxcdTA2MjdcXHUwNmE5XFx1MDYzMVxcdTA2MmZcXHUwNmFmXFx1MDZjYyBcXHUwNjI3XFx1MDY0OFxcdTA2MzEgXFx1MDYyYVxcdTA2MmNcXHUwNjMyXFx1MDZjY1xcdTA2ZDJcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTA2YzFcXHUwNjQ1IFxcdTA2MjdcXHUwNjQ2IFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2YTlcXHUwNjI3IFxcdTA2MjdcXHUwNjMzXFx1MDYyYVxcdTA2MzlcXHUwNjQ1XFx1MDYyN1xcdTA2NDQ8L2E+IFxcdTA2MjJcXHUwNjdlIFxcdTA2YzFcXHUwNjQ1XFx1MDYyN1xcdTA2MzFcXHUwNmNjIFxcdTA2MzNcXHUwNjI3XFx1MDYyNlxcdTA2NzkgXFx1MDYyY1xcdTA2MzMgXFx1MDYzN1xcdTA2MzFcXHUwNjJkIFxcdTA2MjdcXHUwNjMzXFx1MDYyYVxcdTA2MzlcXHUwNjQ1XFx1MDYyN1xcdTA2NDQgXFx1MDZhOVxcdTA2MzFcXHUwNjJhXFx1MDZkMiBcXHUwNmMxXFx1MDZjY1xcdTA2YmFcXHUwNjBjIFxcdTA2MzNcXHUwNjI3XFx1MDYyNlxcdTA2NzkgXFx1MDZhOVxcdTA2Y2MgXFx1MDZhOVxcdTA2MjdcXHUwNjMxXFx1MDZhOVxcdTA2MzFcXHUwNjJmXFx1MDZhZlxcdTA2Y2MgXFx1MDZhOVxcdTA2Y2MgXFx1MDY0NlxcdTA2YWZcXHUwNjMxXFx1MDYyN1xcdTA2NDZcXHUwNmNjIFxcdTA2YTlcXHUwNjMxXFx1MDY0NlxcdTA2ZDJcXHUwNjBjIFxcdTA2MjdcXHUwNjQ4XFx1MDYzMSBcXHUwNjI3XFx1MDY3ZVxcdTA2NDZcXHUwNmNjIFxcdTA2MzNcXHUwNjI3XFx1MDYyNlxcdTA2NzkgXFx1MDZhOVxcdTA2Y2MgXFx1MDZhOVxcdTA2MjdcXHUwNjMxXFx1MDZhOVxcdTA2MzFcXHUwNjJmXFx1MDZhZlxcdTA2Y2MgXFx1MDYyN1xcdTA2NDhcXHUwNjMxIFxcdTA2MjJcXHUwNjdlIFxcdTA2YTlcXHUwNmQyIFxcdTA2MmFcXHUwNjJjXFx1MDYzMVxcdTA2MjhcXHUwNmQyIFxcdTA2YTlcXHUwNjQ4IFxcdTA2MjhcXHUwNmMxXFx1MDYyYVxcdTA2MzEgXFx1MDYyOFxcdTA2NDZcXHUwNjI3XFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2ZDIgXFx1MDY0NFxcdTA2Y2NcXHUwNmQyIFxcdTA2YTlcXHUwNjMxXFx1MDYyYVxcdTA2ZDIgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhXFx1MDZkNCddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1MDY0NVxcdTA2MjdcXHUwNjMxXFx1MDZhOVxcdTA2Y2NcXHUwNjc5XFx1MDY0NlxcdTA2YWZcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHUwNmMxXFx1MDY0NSBcXHUwNjI3XFx1MDY0NiBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNmE5XFx1MDYyNyBcXHUwNjI3XFx1MDYzM1xcdTA2MmFcXHUwNjM5XFx1MDY0NVxcdTA2MjdcXHUwNjQ0PC9hPiBcXHUwNjQ1XFx1MDYyYVxcdTA2MzlcXHUwNjQ0XFx1MDY0MlxcdTA2YzEgXFx1MDYyYVxcdTA2MzRcXHUwNmMxXFx1MDZjY1xcdTA2MzEgXFx1MDY0MVxcdTA2MzFcXHUwNjI3XFx1MDZjMVxcdTA2NDUgXFx1MDZhOVxcdTA2MzFcXHUwNjQ2XFx1MDZkMiBcXHUwNjI3XFx1MDY0OFxcdTA2MzEgXFx1MDYyN1xcdTA2N2VcXHUwNjQ2XFx1MDZjYyBcXHUwNjJhXFx1MDYzNFxcdTA2YzFcXHUwNmNjXFx1MDYzMVxcdTA2Y2MgXFx1MDY0NVxcdTA2YzFcXHUwNjQ1XFx1MDYyN1xcdTA2MmEgXFx1MDZhOVxcdTA2Y2MgXFx1MDYyN1xcdTA2MmJcXHUwNjMxXFx1MDY3ZVxcdTA2MzBcXHUwNmNjXFx1MDYzMVxcdTA2Y2MgXFx1MDZhOVxcdTA2Y2MgXFx1MDY3ZVxcdTA2Y2NcXHUwNjQ1XFx1MDYyN1xcdTA2MjZcXHUwNjM0IFxcdTA2YTlcXHUwNjMxXFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2ZDIgXFx1MDY0NFxcdTA2Y2NcXHUwNmQyIFxcdTA2YTlcXHUwNjMxXFx1MDYyYVxcdTA2ZDIgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhXFx1MDZkNCBcXHUwNmMxXFx1MDY0NVxcdTA2MjdcXHUwNjMxXFx1MDZkMiBcXHUwNjQxXFx1MDYzMVxcdTA2Y2NcXHUwNjQyIFxcdTA2MmJcXHUwNjI3XFx1MDY0NFxcdTA2MmIgXFx1MDYyYVxcdTA2MzRcXHUwNmMxXFx1MDZjY1xcdTA2MzFcXHUwNmNjIFxcdTA2MzRcXHUwNjMxXFx1MDYyN1xcdTA2YTlcXHUwNjJhIFxcdTA2MmZcXHUwNjI3XFx1MDYzMSBcXHUwNjIyXFx1MDY3ZSBcXHUwNmE5XFx1MDZjYyBcXHUwNjJmXFx1MDY0NFxcdTA2ODZcXHUwNjMzXFx1MDY3ZVxcdTA2Y2NcXHUwNjQ4XFx1MDZiYSBcXHUwNmE5XFx1MDZjYyBcXHUwNjI3XFx1MDZjY1xcdTA2YTkgXFx1MDY3ZVxcdTA2MzFcXHUwNjQ4XFx1MDY0MVxcdTA2MjdcXHUwNjI2XFx1MDY0NCBcXHUwNjQ1XFx1MDYzMVxcdTA2MmFcXHUwNjI4IFxcdTA2YTlcXHUwNjMxXFx1MDY0NlxcdTA2ZDIgXFx1MDYyN1xcdTA2NDhcXHUwNjMxIFxcdTA2MmZcXHUwNmNjXFx1MDZhZlxcdTA2MzEgXFx1MDYzM1xcdTA2MjdcXHUwNjI2XFx1MDY3OVxcdTA2MzMgXFx1MDY3ZVxcdTA2MzEgXFx1MDY0NVxcdTA2MmFcXHUwNjM5XFx1MDY0NFxcdTA2NDJcXHUwNmMxIFxcdTA2MjdcXHUwNjM0XFx1MDYyYVxcdTA2YzFcXHUwNjI3XFx1MDYzMVxcdTA2MjdcXHUwNjJhIFxcdTA2NDFcXHUwNjMxXFx1MDYyN1xcdTA2YzFcXHUwNjQ1IFxcdTA2YTlcXHUwNjMxXFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2ZDIgXFx1MDY0NFxcdTA2Y2NcXHUwNmQyIFxcdTA2MjdcXHUwNjQ2IFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2YTlcXHUwNjQ4IFxcdTA2MjdcXHUwNjMzXFx1MDYyYVxcdTA2MzlcXHUwNjQ1XFx1MDYyN1xcdTA2NDQgXFx1MDZhOVxcdTA2MzFcXHUwNjMzXFx1MDZhOVxcdTA2MmFcXHUwNmQyIFxcdTA2YzFcXHUwNmNjXFx1MDZiYVxcdTA2ZDQnXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJcXHUwNjQxXFx1MDYzMVxcdTA2Y2NcXHUwNjQyXFx1MDY1MCBcXHUwNjJiXFx1MDYyN1xcdTA2NDRcXHUwNjJiIFxcdTA2MmFcXHUwNjM0XFx1MDZjMVxcdTA2Y2NcXHUwNjMxXFx1MDZjYyBcXHUwNjM0XFx1MDYzMVxcdTA2MjdcXHUwNmE5XFx1MDYyYSBcXHUwNjJmXFx1MDYyN1xcdTA2MzFcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJcXHUwNjQxXFx1MDYzMVxcdTA2Y2NcXHUwNjQyXFx1MDY1MCBcXHUwNjJiXFx1MDYyN1xcdTA2NDRcXHUwNjJiIFxcdTA2YTlcXHUwNmQyIFxcdTA2MmFcXHUwNjM0XFx1MDZjMVxcdTA2Y2NcXHUwNjMxXFx1MDZjYyBcXHUwNjM0XFx1MDYzMVxcdTA2MjdcXHUwNmE5XFx1MDYyYSBcXHUwNjJmXFx1MDYyN1xcdTA2MzE6XCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTA2NDVcXHUwNjI0XFx1MDYyYlxcdTA2MzEgXFx1MDYyN1xcdTA2MzI6IEphbnVhcnkgMTUsIDIwMTlcIixCb2R5OltcIlxcdTA2MjJcXHUwNjdlIFxcdTA2YTlcXHUwNmQyIFxcdTA2MjhcXHUwNjMxXFx1MDYyN1xcdTA2MjRcXHUwNjMyXFx1MDYzMSBcXHUwNmNjXFx1MDYyNyBcXHUwNjg4XFx1MDZjY1xcdTA2NDhcXHUwNjI3XFx1MDYyNlxcdTA2MzMgXFx1MDZhOVxcdTA2ZDIgXFx1MDYzMFxcdTA2MzFcXHUwNmNjXFx1MDYzOVxcdTA2ZDIgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDZhOVxcdTA2MjcgXFx1MDYyN1xcdTA2NDZcXHUwNjJhXFx1MDYzOFxcdTA2MjdcXHUwNjQ1IFxcdTA2YTlcXHUwNjMxXFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2ZDIgXFx1MDYzM1xcdTA2MjdcXHUwNjJhXFx1MDZiZSBcXHUwNjMzXFx1MDYyN1xcdTA2MmFcXHUwNmJlXFx1MDYwYyBcXHUwNjIyXFx1MDY3ZSBcXHUwNjMwXFx1MDZjY1xcdTA2NDQgXFx1MDY0NVxcdTA2Y2NcXHUwNmJhIFxcdTA2MjdcXHUwNjdlXFx1MDY0NlxcdTA2Y2MgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDZhOVxcdTA2Y2MgXFx1MDYzM1xcdTA2Y2NcXHUwNjc5XFx1MDY0NlxcdTA2YWZcXHUwNjMyIFxcdTA2MmFcXHUwNjI4XFx1MDYyZlxcdTA2Y2NcXHUwNjQ0IFxcdTA2YTlcXHUwNjMxIFxcdTA2MzNcXHUwNmE5XFx1MDYyYVxcdTA2ZDIgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhXFx1MDZkNCBcXHUwNjI4XFx1MDYzMVxcdTA2MjdcXHUwNmMxXFx1MDY1MCBcXHUwNmE5XFx1MDYzMVxcdTA2NDUgXFx1MDY0NlxcdTA2NDhcXHUwNjc5IFxcdTA2YTlcXHUwNjMxXFx1MDZjY1xcdTA2YmEgXFx1MDZhOVxcdTA2YzEgXFx1MDYyOFxcdTA2MzlcXHUwNjM2IFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2YzFcXHUwNjQ1XFx1MDYyN1xcdTA2MzFcXHUwNmNjIFxcdTA2MzNcXHUwNjI3XFx1MDYyNlxcdTA2NzkgXFx1MDY4NlxcdTA2NDRcXHUwNjI3XFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2Y2NcXHUwNjQ0XFx1MDYyNlxcdTA2ZDIgXFx1MDY0NlxcdTA2MjdcXHUwNmFmXFx1MDYzMlxcdTA2Y2NcXHUwNjMxIFxcdTA2YzFcXHUwNjQ4XFx1MDYyYVxcdTA2ZDIgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhIFxcdTA2MjdcXHUwNjQ4XFx1MDYzMSBcXHUwNjI3XFx1MDY0NiBcXHUwNjMzXFx1MDZjY1xcdTA2NzlcXHUwNjQ2XFx1MDZhZlxcdTA2MzIgXFx1MDZhOVxcdTA2ZDIgXFx1MDYzMFxcdTA2MzFcXHUwNmNjXFx1MDYzOVxcdTA2ZDIgXFx1MDYyOFxcdTA2NDRcXHUwNjI3XFx1MDZhOSBcXHUwNjQ2XFx1MDZjMVxcdTA2Y2NcXHUwNmJhIFxcdTA2YTlcXHUwNmNjXFx1MDZkMiBcXHUwNjJjXFx1MDYyNyBcXHUwNjMzXFx1MDZhOVxcdTA2MmFcXHUwNmQyXFx1MDZkNFwiXSxUaXRsZTpcIlxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2YTlcXHUwNmNjIFxcdTA2MzNcXHUwNmNjXFx1MDY3OVxcdTA2NDZcXHUwNmFmXFx1MDYzMlwiLENPT0tJRV9QT1BVUDonXFx1MDZjMVxcdTA2Y2NcXHUwNjQ0XFx1MDY0OCEgXFx1MDYyN1xcdTA2MzMgXFx1MDY0OFxcdTA2Y2NcXHUwNjI4IFxcdTA2MzNcXHUwNjI3XFx1MDYyNlxcdTA2NzkgXFx1MDY3ZVxcdTA2MzEgXFx1MDZjMVxcdTA2NDUgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDYyN1xcdTA2NDhcXHUwNjMxIFxcdTA2MjdcXHUwNjMzXFx1MDZjYyBcXHUwNjM3XFx1MDYzMVxcdTA2MmQgXFx1MDZhOVxcdTA2Y2MgXFx1MDYyZlxcdTA2Y2NcXHUwNmFmXFx1MDYzMSBcXHUwNjc5XFx1MDZjY1xcdTA2YTlcXHUwNjQ2XFx1MDYyN1xcdTA2NDRcXHUwNjQ4XFx1MDYyY1xcdTA2Y2NcXHUwNjMyIChcIlxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyXCIpXFx1MDYwYyBcXHUwNjI4XFx1MDYzNFxcdTA2NDVcXHUwNjQ4XFx1MDY0NCBcXHUwNjQxXFx1MDYzMVxcdTA2Y2NcXHUwNjQyIFxcdTA2MmJcXHUwNjI3XFx1MDY0NFxcdTA2MmIgXFx1MDZhOVxcdTA2Y2MgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDZhOVxcdTA2MjcgXFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYzOVxcdTA2NDVcXHUwNjI3XFx1MDY0NCBcXHUwNjI3XFx1MDY3ZVxcdTA2NDZcXHUwNmNjIFxcdTA2MzNcXHUwNjI3XFx1MDYyNlxcdTA2NzkgXFx1MDZhOVxcdTA2NDggXFx1MDY4NlxcdTA2NDRcXHUwNjI3XFx1MDY0NlxcdTA2ZDIgXFx1MDY0NVxcdTA2Y2NcXHUwNmJhIFxcdTA2NDVcXHUwNjJmXFx1MDYyZiBcXHUwNjI3XFx1MDY0OFxcdTA2MzEgXFx1MDYyMlxcdTA2N2UgXFx1MDZhOVxcdTA2ZDIgXFx1MDYyOFxcdTA2MzFcXHUwNjI3XFx1MDYyNFxcdTA2MzJcXHUwNjQ2XFx1MDZhZiBcXHUwNmE5XFx1MDZkMiBcXHUwNjJhXFx1MDYyY1xcdTA2MzFcXHUwNjI4XFx1MDZjMSBcXHUwNmE5XFx1MDY0OCBcXHUwNjI4XFx1MDZjMVxcdTA2MmFcXHUwNjMxIFxcdTA2MjhcXHUwNjQ2XFx1MDYyN1xcdTA2NDZcXHUwNmQyIFxcdTA2YTlcXHUwNmQyIFxcdTA2NDRcXHUwNmNjXFx1MDZkMlxcdTA2MGMgXFx1MDZhOVxcdTA2MjdcXHUwNjMxXFx1MDZhOVxcdTA2MzFcXHUwNjJmXFx1MDZhZlxcdTA2Y2MgXFx1MDY0NVxcdTA2MjdcXHUwNjQ2XFx1MDZjY1xcdTA2NzlcXHUwNjMxIFxcdTA2YTlcXHUwNjMxXFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2ZDIgXFx1MDY0NFxcdTA2Y2NcXHUwNmQyIFxcdTA2MjdcXHUwNjQ4XFx1MDYzMSBcXHUwNjJhXFx1MDYzNFxcdTA2YzFcXHUwNmNjXFx1MDYzMVxcdTA2Y2MgXFx1MDY0NVxcdTA2NDJcXHUwNjI3XFx1MDYzNVxcdTA2MmYgXFx1MDZhOVxcdTA2ZDIgXFx1MDY0NFxcdTA2Y2NcXHUwNmQyIFxcdTA2YTlcXHUwNjMxXFx1MDYyYVxcdTA2ZDIgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhXFx1MDZkNCBcXHUwNmMxXFx1MDY0NSBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNmE5XFx1MDZjY1xcdTA2MzNcXHUwNmQyIFxcdTA2MjdcXHUwNjMzXFx1MDYyYVxcdTA2MzlcXHUwNjQ1XFx1MDYyN1xcdTA2NDQgXFx1MDZhOVxcdTA2MzFcXHUwNjJhXFx1MDZkMiBcXHUwNmMxXFx1MDZjY1xcdTA2YmEgXFx1MDYyN1xcdTA2MzMgXFx1MDYyOFxcdTA2MjdcXHUwNjMxXFx1MDZkMiBcXHUwNjQ1XFx1MDZjY1xcdTA2YmEgXFx1MDYyN1xcdTA2NDhcXHUwNjMxIFxcdTA2MjJcXHUwNjdlIFxcdTA2YTlcXHUwNmQyIFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2YTlcXHUwNmQyIFxcdTA2MjdcXHUwNjJlXFx1MDYyYVxcdTA2Y2NcXHUwNjI3XFx1MDYzMVxcdTA2MjdcXHUwNjJhIFxcdTA2YTlcXHUwNmQyIFxcdTA2MjhcXHUwNjI3XFx1MDYzMVxcdTA2ZDIgXFx1MDY0NVxcdTA2Y2NcXHUwNmJhIFxcdTA2NDVcXHUwNjMyXFx1MDZjY1xcdTA2MmYgXFx1MDY0NVxcdTA2MzlcXHUwNjQ0XFx1MDY0OFxcdTA2NDVcXHUwNjI3XFx1MDYyYSBcXHUwNmE5XFx1MDZkMiBcXHUwNjQ0XFx1MDZjY1xcdTA2ZDIgXFx1MDZhOVxcdTA2Y2NcXHUwNjQ0XFx1MDYyNlxcdTA2ZDIgXFx1MDZjMVxcdTA2NDVcXHUwNjI3XFx1MDYzMVxcdTA2Y2MgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2MgXFx1MDZhOVxcdTA2Y2MgXFx1MDY3ZVxcdTA2MjdcXHUwNjQ0XFx1MDZjY1xcdTA2MzNcXHUwNmNjPC9hPiBcXHUwNjJmXFx1MDZjY1xcdTA2YTlcXHUwNmJlXFx1MDZjY1xcdTA2YmEhIFxcdTA2MzBcXHUwNmNjXFx1MDY0NCBcXHUwNjQ1XFx1MDZjY1xcdTA2YmEgXFwnXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDY0MlxcdTA2MjhcXHUwNjQ4XFx1MDY0NCBcXHUwNmE5XFx1MDYzMVxcdTA2Y2NcXHUwNmJhXFwnIFxcdTA2N2VcXHUwNjMxIFxcdTA2YTlcXHUwNjQ0XFx1MDZhOSBcXHUwNmE5XFx1MDYzMSBcXHUwNmE5XFx1MDZkMiBcXHUwNjIyXFx1MDY3ZSBcXHUwNmMxXFx1MDY0NVxcdTA2Y2NcXHUwNmJhIFxcdTA2MjdcXHUwNjdlXFx1MDY0NlxcdTA2Y2MgXFx1MDYzM1xcdTA2MjhcXHUwNmJlXFx1MDZjYyBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNjI4XFx1MDYzNFxcdTA2NDVcXHUwNjQ4XFx1MDY0NCBcXHUwNjNhXFx1MDZjY1xcdTA2MzEgXFx1MDY0NFxcdTA2MjdcXHUwNjMyXFx1MDY0NVxcdTA2Y2MgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYzOVxcdTA2NDVcXHUwNjI3XFx1MDY0NCBcXHUwNmE5XFx1MDYzMVxcdTA2NDZcXHUwNmQyIFxcdTA2YTlcXHUwNmNjXFx1MDY0NFxcdTA2MjZcXHUwNmQyIFxcdTA2MzFcXHUwNjM2XFx1MDYyN1xcdTA2NDVcXHUwNjQ2XFx1MDYyZlxcdTA2Y2MgXFx1MDY0MVxcdTA2MzFcXHUwNjI3XFx1MDZjMVxcdTA2NDUgXFx1MDZhOVxcdTA2MzEgXFx1MDYzMVxcdTA2YzFcXHUwNmQyIFxcdTA2YzFcXHUwNmNjXFx1MDZiYVxcdTA2ZDQgXFx1MDYyMlxcdTA2N2UgXFx1MDYyZlxcdTA2MjdcXHUwNjI2XFx1MDZjY1xcdTA2YmEgXFx1MDYyY1xcdTA2MjdcXHUwNjQ2XFx1MDYyOCBcXHUwNjQ1XFx1MDY0OFxcdTA2MmNcXHUwNjQ4XFx1MDYyZiBcXCdYXFwnIFxcdTA2N2VcXHUwNjMxIFxcdTA2YTlcXHUwNjQ0XFx1MDZhOSBcXHUwNmE5XFx1MDYzMSBcXHUwNmE5XFx1MDZkMiBcXHUwNjMzXFx1MDYyOFxcdTA2YmVcXHUwNmNjIFxcdTA2M2FcXHUwNmNjXFx1MDYzMSBcXHUwNjQ0XFx1MDYyN1xcdTA2MzJcXHUwNjQ1XFx1MDZjYyBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNjQ1XFx1MDYzM1xcdTA2MmFcXHUwNjMxXFx1MDYyZiBcXHUwNmE5XFx1MDYzMSBcXHUwNjMzXFx1MDZhOVxcdTA2MmFcXHUwNmQyIFxcdTA2YzFcXHUwNmNjXFx1MDZiYVxcdTA2ZDQgXFx1MDZhOVxcdTA2MzNcXHUwNmNjIFxcdTA2MjhcXHUwNmJlXFx1MDZjYyBcXHUwNjQ4XFx1MDY0MlxcdTA2MmEgXFwnXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjYyBcXHUwNmE5XFx1MDZjYyBcXHUwNjMzXFx1MDZjY1xcdTA2NzlcXHUwNjQ2XFx1MDZhZlxcdTA2MzJcXCcgXFx1MDZjY1xcdTA2MjcgXFx1MDZjMVxcdTA2NDVcXHUwNjI3XFx1MDYzMVxcdTA2Y2MgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2MgXFx1MDZhOVxcdTA2Y2MgXFx1MDY3ZVxcdTA2MjdcXHUwNjQ0XFx1MDZjY1xcdTA2MzNcXHUwNmNjPC9hPiBcXHUwNjdlXFx1MDYzMSBcXHUwNjJjXFx1MDYyNyBcXHUwNmE5XFx1MDYzMSBcXHUwNjI3XFx1MDY3ZVxcdTA2NDZcXHUwNmNjIFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2MgXFx1MDZhOVxcdTA2Y2MgXFx1MDYzM1xcdTA2Y2NcXHUwNjc5XFx1MDY0NlxcdTA2YWZcXHUwNjMyIFxcdTA2MmFcXHUwNjI4XFx1MDYyZlxcdTA2Y2NcXHUwNjQ0IFxcdTA2YTlcXHUwNjMxXFx1MDZjY1xcdTA2YmEgXFx1MDYyN1xcdTA2NDhcXHUwNjMxIFxcdTA2MjdcXHUwNjdlXFx1MDY0NlxcdTA2Y2MgXFx1MDYzMVxcdTA2MzZcXHUwNjI3XFx1MDY0NVxcdTA2NDZcXHUwNjJmXFx1MDZjYyBcXHUwNjQ1XFx1MDY0NlxcdTA2MzNcXHUwNjQ4XFx1MDYyZSBcXHUwNmE5XFx1MDYzMVxcdTA2Y2NcXHUwNmJhXFx1MDZkNCcsQ09PS0lFX1BPUFVQX0VVOidcXHUwNmMxXFx1MDZjY1xcdTA2NDRcXHUwNjQ4ISBcXHUwNjI3XFx1MDYzMyBcXHUwNjQ4XFx1MDZjY1xcdTA2MjggXFx1MDYzM1xcdTA2MjdcXHUwNjI2XFx1MDY3OSBcXHUwNjdlXFx1MDYzMSBcXHUwNmMxXFx1MDY0NSBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNjI3XFx1MDY0OFxcdTA2MzEgXFx1MDYyN1xcdTA2MzNcXHUwNmNjIFxcdTA2MzdcXHUwNjMxXFx1MDYyZCBcXHUwNmE5XFx1MDZjYyBcXHUwNjJmXFx1MDZjY1xcdTA2YWZcXHUwNjMxIFxcdTA2NzlcXHUwNmNjXFx1MDZhOVxcdTA2NDZcXHUwNjI3XFx1MDY0NFxcdTA2NDhcXHUwNjJjXFx1MDZjY1xcdTA2MzIgKFwiXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzJcIilcXHUwNjBjIFxcdTA2MjhcXHUwNjM0XFx1MDY0NVxcdTA2NDhcXHUwNjQ0IFxcdTA2NDFcXHUwNjMxXFx1MDZjY1xcdTA2NDIgXFx1MDYyYlxcdTA2MjdcXHUwNjQ0XFx1MDYyYiBcXHUwNmE5XFx1MDZjYyBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNmE5XFx1MDYyNyBcXHUwNjI3XFx1MDYzM1xcdTA2MmFcXHUwNjM5XFx1MDY0NVxcdTA2MjdcXHUwNjQ0IFxcdTA2MjdcXHUwNjdlXFx1MDY0NlxcdTA2Y2MgXFx1MDYzM1xcdTA2MjdcXHUwNjI2XFx1MDY3OSBcXHUwNmE5XFx1MDY0OCBcXHUwNjg2XFx1MDY0NFxcdTA2MjdcXHUwNjQ2XFx1MDZkMiBcXHUwNjQ1XFx1MDZjY1xcdTA2YmEgXFx1MDY0NVxcdTA2MmZcXHUwNjJmIFxcdTA2MjdcXHUwNjQ4XFx1MDYzMSBcXHUwNjIyXFx1MDY3ZSBcXHUwNmE5XFx1MDZkMiBcXHUwNjI4XFx1MDYzMVxcdTA2MjdcXHUwNjI0XFx1MDYzMlxcdTA2NDZcXHUwNmFmIFxcdTA2YTlcXHUwNmQyIFxcdTA2MmFcXHUwNjJjXFx1MDYzMVxcdTA2MjhcXHUwNmMxIFxcdTA2YTlcXHUwNjQ4IFxcdTA2MjhcXHUwNmMxXFx1MDYyYVxcdTA2MzEgXFx1MDYyOFxcdTA2NDZcXHUwNjI3XFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2ZDIgXFx1MDY0NFxcdTA2Y2NcXHUwNmQyXFx1MDYwYyBcXHUwNmE5XFx1MDYyN1xcdTA2MzFcXHUwNmE5XFx1MDYzMVxcdTA2MmZcXHUwNmFmXFx1MDZjYyBcXHUwNjQ1XFx1MDYyN1xcdTA2NDZcXHUwNmNjXFx1MDY3OVxcdTA2MzEgXFx1MDZhOVxcdTA2MzFcXHUwNjQ2XFx1MDZkMiBcXHUwNmE5XFx1MDZkMiBcXHUwNjQ0XFx1MDZjY1xcdTA2ZDIgXFx1MDYyN1xcdTA2NDhcXHUwNjMxIFxcdTA2MmFcXHUwNjM0XFx1MDZjMVxcdTA2Y2NcXHUwNjMxXFx1MDZjYyBcXHUwNjQ1XFx1MDY0MlxcdTA2MjdcXHUwNjM1XFx1MDYyZiBcXHUwNmE5XFx1MDZkMiBcXHUwNjQ0XFx1MDZjY1xcdTA2ZDIgXFx1MDZhOVxcdTA2MzFcXHUwNjJhXFx1MDZkMiBcXHUwNmMxXFx1MDZjY1xcdTA2YmFcXHUwNmQ0IFxcdTA2YzFcXHUwNjQ1IFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2YTlcXHUwNmNjXFx1MDYzM1xcdTA2ZDIgXFx1MDYyN1xcdTA2MzNcXHUwNjJhXFx1MDYzOVxcdTA2NDVcXHUwNjI3XFx1MDY0NCBcXHUwNmE5XFx1MDYzMVxcdTA2MmFcXHUwNmQyIFxcdTA2YzFcXHUwNmNjXFx1MDZiYSBcXHUwNjI3XFx1MDYzMyBcXHUwNjI4XFx1MDYyN1xcdTA2MzFcXHUwNmQyIFxcdTA2NDVcXHUwNmNjXFx1MDZiYSBcXHUwNjI3XFx1MDY0OFxcdTA2MzEgXFx1MDYyMlxcdTA2N2UgXFx1MDZhOVxcdTA2ZDIgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjY1xcdTA2MzIgXFx1MDZhOVxcdTA2ZDIgXFx1MDYyN1xcdTA2MmVcXHUwNjJhXFx1MDZjY1xcdTA2MjdcXHUwNjMxXFx1MDYyN1xcdTA2MmEgXFx1MDZhOVxcdTA2ZDIgXFx1MDYyOFxcdTA2MjdcXHUwNjMxXFx1MDZkMiBcXHUwNjQ1XFx1MDZjY1xcdTA2YmEgXFx1MDY0NVxcdTA2MzJcXHUwNmNjXFx1MDYyZiBcXHUwNjQ1XFx1MDYzOVxcdTA2NDRcXHUwNjQ4XFx1MDY0NVxcdTA2MjdcXHUwNjJhIFxcdTA2YTlcXHUwNmQyIFxcdTA2NDRcXHUwNmNjXFx1MDZkMiBcXHUwNmE5XFx1MDZjY1xcdTA2NDRcXHUwNjI2XFx1MDZkMiBcXHUwNmMxXFx1MDY0NVxcdTA2MjdcXHUwNjMxXFx1MDZjYyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjYyBcXHUwNmE5XFx1MDZjYyBcXHUwNjdlXFx1MDYyN1xcdTA2NDRcXHUwNmNjXFx1MDYzM1xcdTA2Y2M8L2E+IFxcdTA2MmZcXHUwNmNjXFx1MDZhOVxcdTA2YmVcXHUwNmNjXFx1MDZiYSEgXFx1MDYzMFxcdTA2Y2NcXHUwNjQ0IFxcdTA2NDVcXHUwNmNjXFx1MDZiYSBcXCdcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNjQyXFx1MDYyOFxcdTA2NDhcXHUwNjQ0IFxcdTA2YTlcXHUwNjMxXFx1MDZjY1xcdTA2YmFcXCcgXFx1MDY3ZVxcdTA2MzEgXFx1MDZhOVxcdTA2NDRcXHUwNmE5IFxcdTA2YTlcXHUwNjMxIFxcdTA2YTlcXHUwNmQyIFxcdTA2MjJcXHUwNjdlIFxcdTA2YzFcXHUwNjQ1XFx1MDZjY1xcdTA2YmEgXFx1MDYyN1xcdTA2N2VcXHUwNjQ2XFx1MDZjYyBcXHUwNjMzXFx1MDYyOFxcdTA2YmVcXHUwNmNjIFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2MjhcXHUwNjM0XFx1MDY0NVxcdTA2NDhcXHUwNjQ0IFxcdTA2M2FcXHUwNmNjXFx1MDYzMSBcXHUwNjQ0XFx1MDYyN1xcdTA2MzJcXHUwNjQ1XFx1MDZjYyBcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNjI3XFx1MDYzM1xcdTA2MmFcXHUwNjM5XFx1MDY0NVxcdTA2MjdcXHUwNjQ0IFxcdTA2YTlcXHUwNjMxXFx1MDY0NlxcdTA2ZDIgXFx1MDZhOVxcdTA2Y2NcXHUwNjQ0XFx1MDYyNlxcdTA2ZDIgXFx1MDYzMVxcdTA2MzZcXHUwNjI3XFx1MDY0NVxcdTA2NDZcXHUwNjJmXFx1MDZjYyBcXHUwNjQxXFx1MDYzMVxcdTA2MjdcXHUwNmMxXFx1MDY0NSBcXHUwNmE5XFx1MDYzMSBcXHUwNjMxXFx1MDZjMVxcdTA2ZDIgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhXFx1MDZkNCBcXHUwNjIyXFx1MDY3ZSBcXHUwNjJmXFx1MDYyN1xcdTA2MjZcXHUwNmNjXFx1MDZiYSBcXHUwNjJjXFx1MDYyN1xcdTA2NDZcXHUwNjI4IFxcdTA2NDVcXHUwNjQ4XFx1MDYyY1xcdTA2NDhcXHUwNjJmIFxcJ1hcXCcgXFx1MDY3ZVxcdTA2MzEgXFx1MDZhOVxcdTA2NDRcXHUwNmE5IFxcdTA2YTlcXHUwNjMxIFxcdTA2YTlcXHUwNmQyIFxcdTA2MzNcXHUwNjI4XFx1MDZiZVxcdTA2Y2MgXFx1MDYzYVxcdTA2Y2NcXHUwNjMxIFxcdTA2NDRcXHUwNjI3XFx1MDYzMlxcdTA2NDVcXHUwNmNjIFxcdTA2YTlcXHUwNjQ4XFx1MDZhOVxcdTA2Y2NcXHUwNjMyIFxcdTA2NDVcXHUwNjMzXFx1MDYyYVxcdTA2MzFcXHUwNjJmIFxcdTA2YTlcXHUwNjMxIFxcdTA2MzNcXHUwNmE5XFx1MDYyYVxcdTA2ZDIgXFx1MDZjMVxcdTA2Y2NcXHUwNmJhXFx1MDZkNCBcXHUwNmE5XFx1MDYzM1xcdTA2Y2MgXFx1MDYyOFxcdTA2YmVcXHUwNmNjIFxcdTA2NDhcXHUwNjQyXFx1MDYyYSBcXCdcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjIFxcdTA2YTlcXHUwNmNjIFxcdTA2MzNcXHUwNmNjXFx1MDY3OVxcdTA2NDZcXHUwNmFmXFx1MDYzMlxcJyBcXHUwNmNjXFx1MDYyNyBcXHUwNmMxXFx1MDY0NVxcdTA2MjdcXHUwNjMxXFx1MDZjYyA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjYyBcXHUwNmE5XFx1MDZjYyBcXHUwNjdlXFx1MDYyN1xcdTA2NDRcXHUwNmNjXFx1MDYzM1xcdTA2Y2M8L2E+IFxcdTA2N2VcXHUwNjMxIFxcdTA2MmNcXHUwNjI3IFxcdTA2YTlcXHUwNjMxIFxcdTA2MjdcXHUwNjdlXFx1MDY0NlxcdTA2Y2MgXFx1MDZhOVxcdTA2NDhcXHUwNmE5XFx1MDZjYyBcXHUwNmE5XFx1MDZjYyBcXHUwNjMzXFx1MDZjY1xcdTA2NzlcXHUwNjQ2XFx1MDZhZlxcdTA2MzIgXFx1MDYyYVxcdTA2MjhcXHUwNjJmXFx1MDZjY1xcdTA2NDQgXFx1MDZhOVxcdTA2MzFcXHUwNmNjXFx1MDZiYSBcXHUwNjI3XFx1MDY0OFxcdTA2MzEgXFx1MDYyN1xcdTA2N2VcXHUwNjQ2XFx1MDZjYyBcXHUwNjMxXFx1MDYzNlxcdTA2MjdcXHUwNjQ1XFx1MDY0NlxcdTA2MmZcXHUwNmNjIFxcdTA2NDVcXHUwNjQ2XFx1MDYzM1xcdTA2NDhcXHUwNjJlIFxcdTA2YTlcXHUwNjMxXFx1MDZjY1xcdTA2YmFcXHUwNmQ0JyxBZ3JlZVRleHQ6XCJcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNjQyXFx1MDYyOFxcdTA2NDhcXHUwNjQ0IFxcdTA2YTlcXHUwNjMxXFx1MDZjY1xcdTA2YmFcIixTZXR0aW5nc1RleHQ6XCJcXHUwNmE5XFx1MDY0OFxcdTA2YTlcXHUwNmNjXFx1MDYzMiBcXHUwNmE5XFx1MDZjYyBcXHUwNjMzXFx1MDZjY1xcdTA2NzlcXHUwNjQ2XFx1MDZhZlxcdTA2MzJcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIlxcdTA2MmVcXHUwNjQ0XFx1MDYyN1xcdTA2NDEgXFx1MDY0OFxcdTA2MzFcXHUwNjMyXFx1MDZjYyBcXHUwNmE5XFx1MDZjYyBcXHUwNjQ2XFx1MDY0OFxcdTA2NzlcXHUwNmNjXFx1MDY0MVxcdTA2YTlcXHUwNmNjXFx1MDYzNFxcdTA2NDYgXFx1MDYyZlxcdTA2Y2NcXHUwNmJhXCIsU3BvdGxpZ2h0OlwiU3BvdGxpZ2h0XCJ9LFwidmktdm5cIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiS1xceGVkbmggU3BlY3RhY2xlc1wiLExpdmU6XCJUclxcdTFlZjFjIFRpXFx1MWViZnBcIixBZHM6XCJRdVxcdTFlYTNuZyBDXFx4ZTFvXCIsQ29tcGFueTpcIkNcXHhmNG5nIFR5XCIsSG9tZTpcIk5oXFx4ZTBcIixCbG9nOlwiQmxvZ1wiLEpvYnM6XCJDXFx4ZjRuZyBWaVxcdTFlYzdjXCIsQ2FyZWVyczpcIk5naFxcdTFlYzEgbmdoaVxcdTFlYzdwXCIsUHJlc3M6XCJCXFx4ZTFvIENoXFx4ZWRcIixOZXdzOlwiVGluIHRcXHUxZWU5Y1wiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJZXFx4ZWF1IENcXHUxZWE3dSBCXFx4ZTFvIENoXFx4ZWRcIixUd2l0dGVyOlwiVHdpdHRlclwiLExhbmd1YWdlOlwiTmdcXHhmNG4gTmdcXHUxZWVmXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiVFxcdTFlYTNpIFNuYXBjaGF0XCIsRG93bmxvYWQ6XCJUXFx1MWVhM2kgVlxcdTFlYzFcIixLaXQ6XCJEXFx1MWVlNW5nIENcXHUxZWU1XCIsU3RvcmllczpcIlN0b3J5XCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIkNcXHUxZWVkYSBIXFx4ZTBuZ1wiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiU25wYWNoYXQgY2hvIGlPc1wiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIlNuYXBjaGF0IGNobyBBbmRyb2lkXCIsQ29tbXVuaXR5OlwiQ1xcdTFlZDluZyBcXHUwMTEwXFx1MWVkM25nXCIsU3VwcG9ydDpcIkhcXHUxZWQ3IFRyXFx1MWVlM1wiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIkhcXHUwMWIwXFx1MWVkYm5nIERcXHUxZWFibiBDXFx1MWVkOW5nIFxcdTAxMTBcXHUxZWQzbmdcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlRydW5nIFRcXHhlMm0gQlxcdTFlYTNvIEFuXCIsU25hcGNvZGVzOlwiTVxceGUzIFNuYXBcIixHZW9maWx0ZXJzOlwiQlxcdTFlZDkgTFxcdTFlY2RjIFxcdTAxMTBcXHUxZWNiYSBMXFx4ZmRcIixDcmVhdGU6XCJCXFx1MWVkOSBMXFx1MWVjZGMgJiBcXHUxZWQwbmcgS1xceGVkbmhcIixNYXA6XCJCXFx1MWVhM24gXFx1MDExMFxcdTFlZDNcIixBZHZlcnRpc2luZzpcIlF1XFx1MWVhM25nIENcXHhlMW9cIixcIkJ1eSBBZHNcIjpcIk11YSBRdVxcdTFlYTNuZyBDXFx4ZTFvXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiQ2hcXHhlZG5oIFNcXHhlMWNoIFF1XFx1MWVhM25nIENcXHhlMW9cIixcIlBvbGl0aWNhbCBBZHMgTGlicmFyeVwiOlwiVGhcXHUwMWIwIFZpXFx1MWVjN24gUXVcXHUxZWEzbmcgQ1xceGUxbyBDaFxceGVkbmggVHJcXHUxZWNiXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJDXFx1MWVhOW0gTmFuZyBUaFxcdTAxYjBcXHUwMWExbmcgSGlcXHUxZWM3dVwiLFwiUHJvbW90aW9ucyBSdWxlc1wiOlwiUXV5IFxcdTAxMTBcXHUxZWNibmggS2h1eVxcdTFlYmZuIE1cXHhlM2lcIixMZWdhbDpcIkhcXHUxZWUzcCBQaFxceGUxcFwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MDExMGlcXHUxZWMxdSBLaG9cXHUxZWEzbiBEXFx1MWVjYmNoIFZcXHUxZWU1XCIsSW1wcmVzc3VtOlwiXFx1MWVhNG4gdFxcdTAxYjBcXHUxZWUzbmdcIixcIlByaXZhY3kgUG9saWN5XCI6XCJDaFxceGVkbmggU1xceGUxY2ggQlxcdTFlYTNvIE1cXHUxZWFkdFwiLFwiUHJpdmFjeSBDZW50ZXJcIjpcIlRydW5nIFRcXHhlMm0gQlxcdTFlYTNvIE1cXHUxZWFkdFwiLFwiQ29va2llIFBvbGljeVwiOlwiQ2hcXHhlZG5oIFNcXHhlMWNoIENvb2tpZVwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1MDExMGlcXHUxZWMxdSBLaG9cXHUxZWEzbiBEXFx1MWVjYmNoIFZcXHUxZWU1IEtcXHUxZWY3IE5pXFx1MWVjN21cIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1MDExMGlcXHUxZWMxdSBLSG9cXHUxZWEzbiBEXFx1MWVlNW5nIENcXHUxZWU1IFNcXHhlMW5nIFRcXHUxZWExbyBUXFx4Zjl5IENoXFx1MWVjOW5oXCIsQ09NTVVOSVRZX1RPUzpcIlxcdTAxMTBpXFx1MWVjMXUgS2hvXFx1MWVhM24gQlxcdTFlZDkgTFxcdTFlY2RjIFxcdTAxMTBcXHUxZWNiYSBMXFx4ZmQgQ1xcdTFlZDluZyBcXHUwMTEwXFx1MWVkM25nXCIsTEVOU19TVFVESU9fVE9TOlwiXFx1MDExMGlcXHUxZWMxdSBLaG9cXHUxZWEzbiBMZW5zIFN0dWRpb1wiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIkxcXHUxZWYxYSBDaFxcdTFlY2RuIFF1eVxcdTFlYzFuIFJpXFx4ZWFuZyBUXFx1MDFiMCBDXFx1MWVlN2EgQlxcdTFlYTFuXCIsQ09PS0lFX1NFVFRJTkdTX1NFQ1RJT05TOntOZWNlc3Nhcnk6e2hlYWRsaW5lOlwiQ29va2llIGNcXHUxZWE3biB0aGlcXHUxZWJmdFwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI05lY2Vzc2FyeVwiPkNoXFx4ZmFuZyB0XFx4ZjRpIHNcXHUxZWVkIGRcXHUxZWU1bmcgbmhcXHUxZWVmbmcgY29va2llIG5cXHhlMHk8L2E+IFxcdTAxMTFcXHUxZWMzIGhcXHUxZWQ3IHRyXFx1MWVlMyB2aVxcdTFlYzdjIHZcXHUxZWFkbiBoXFx4ZTBuaCB0cmFuZyB3ZWIuIE5oXFx1MWVlZm5nIGNvb2tpZSBuXFx4ZTB5IHJcXHUxZWE1dCBjXFx1MWVhN24gdGhpXFx1MWViZnQgblxceGVhbiBiXFx1MWVhMW4ga2hcXHhmNG5nIFxcdTAxMTFcXHUwMWIwXFx1MWVlM2MgdFxcdTFlYWZ0LiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJUXFx4Zjl5IENoXFx1MWVjZG5cIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPkNoXFx4ZmFuZyB0XFx4ZjRpIHNcXHUxZWVkIGRcXHUxZWU1bmcgbmhcXHUxZWVmbmcgY29va2llIG5cXHhlMHk8L2E+IFxcdTAxMTFcXHUxZWMzIGdoaSBuaFxcdTFlZGIgdFxceGY5eSBjaFxcdTFlY2RuIGNcXHUxZWU3YSBiXFx1MWVhMW4gdlxceGUwIGNcXHUxZWEzaSB0aGlcXHUxZWM3biB0clxcdTFlYTNpIG5naGlcXHUxZWM3bSBjXFx1MWVlN2EgYlxcdTFlYTFuIHRyXFx4ZWFuIHRyYW5nIHdlYiBjXFx1MWVlN2EgY2hcXHhmYW5nIHRcXHhmNGkuJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIkhpXFx1MWVjN3UgU3VcXHUxZWE1dCAmIFBoXFx4ZTJuIFRcXHhlZGNoXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5DaFxceGZhbmcgdFxceGY0aSBzXFx1MWVlZCBkXFx1MWVlNW5nIG5oXFx1MWVlZm5nIGNvb2tpZSBuXFx4ZTB5PC9hPiBcXHUwMTExXFx1MWVjMyB0aHUgdGhcXHUxZWFkcCB0aFxceGY0bmcgdGluIHZcXHUxZWMxIGNcXHhlMWNoIGJcXHUxZWExbiBzXFx1MWVlZCBkXFx1MWVlNW5nIHRyYW5nIHdlYiBjXFx1MWVlN2EgY2hcXHhmYW5nIHRcXHhmNGksIHRoZW8gZFxceGY1aSBoaVxcdTFlYzd1IHN1XFx1MWVhNXQgdHJhbmcgd2ViIHZcXHhlMCBjXFx1MWVhM2kgdGhpXFx1MWVjN24gaGlcXHUxZWM3dSBzdVxcdTFlYTV0IHRyYW5nIHdlYiBjXFx1MDE2OW5nIG5oXFx1MDFiMCB0clxcdTFlYTNpIG5naGlcXHUxZWM3bSBjXFx1MWVlN2EgYlxcdTFlYTFuLiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiVGlcXHUxZWJmcCBUaFxcdTFlY2JcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5DaFxceGZhbmcgdFxceGY0aSBzXFx1MWVlZCBkXFx1MWVlNW5nIG5oXFx1MWVlZm5nIGNvb2tpZSBuXFx4ZTB5PC9hPiBcXHUwMTExXFx1MWVjMyBwaFxceGUybiBwaFxcdTFlZDFpIHF1XFx1MWVhM25nIGNcXHhlMW8gcGhcXHhmOSBoXFx1MWVlM3AgdlxceGUwIFxcdTAxMTFvIGxcXHUwMWIwXFx1MWVkZG5nIGhpXFx1MWVjN3UgcXVcXHUxZWEzIGNcXHhlMWMgY2hpXFx1MWViZm4gZFxcdTFlY2JjaCBxdVxcdTFlYTNuZyBjXFx4ZTFvIGNcXHUxZWU3YSBjaFxceGZhbmcgdFxceGY0aS4gQ1xceGUxYyBcXHUwMTExXFx1MWVkMWkgdFxceGUxYyBxdVxcdTFlYTNuZyBjXFx4ZTFvIGJcXHhlYW4gdGhcXHUxZWU5IGJhIGNcXHhmMyB0aFxcdTFlYzMgc1xcdTFlZWQgZFxcdTFlZTVuZyBuaFxcdTFlZWZuZyBjb29raWUgblxceGUweSBcXHUwMTExXFx1MWVjMyB0XFx1MWVhMW8gaFxcdTFlZDMgc1xcdTAxYTEgdlxcdTFlYzEgc1xcdTFlZGYgdGhcXHhlZGNoIGNcXHUxZWU3YSBiXFx1MWVhMW4gdlxceGUwIHBoXFx4ZTJuIHBoXFx1MWVkMWkgcXVcXHUxZWEzbmcgY1xceGUxbyBjXFx4ZjMgbGlcXHhlYW4gcXVhbiB0clxceGVhbiBjXFx4ZTFjIHRyYW5nIHdlYiBraFxceGUxYy4nXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJjXFx4ZTFjIFxcdTAxMTFcXHUxZWQxaSB0XFx4ZTFjIHF1XFx1MWVhM25nIGNcXHhlMW8gYlxceGVhbiB0aFxcdTFlZTkgYmFcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkxpbmtlZEluPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJDXFx4ZTFjIFxcdTAxMTFcXHUxZWQxaSB0XFx4ZTFjIHF1XFx1MWVhM25nIGNcXHhlMW8gYlxceGVhbiB0aFxcdTFlZTkgYmE6XCIsRWZmZWN0aXZlRGF0ZTpcIkNcXHhmMyBoaVxcdTFlYzd1IGxcXHUxZWYxYzogbmdcXHhlMHkgMTUgdGhcXHhlMW5nIDEgblxcdTAxMDNtIDIwMTlcIixCb2R5OltcIk5nb1xceGUwaSB2aVxcdTFlYzdjIHF1XFx1MWVhM24gbFxceGZkIGNvb2tpZSB0aFxceGY0bmcgcXVhIHRyXFx4ZWNuaCBkdXlcXHUxZWM3dCBob1xcdTFlYjdjIHRoaVxcdTFlYmZ0IGJcXHUxZWNiIGNcXHUxZWU3YSBiXFx1MWVhMW4sIGJcXHUxZWExbiBjXFx4ZjMgdGhcXHUxZWMzIHRoYXkgXFx1MDExMVxcdTFlZDVpIGNcXHhlMGkgXFx1MDExMVxcdTFlYjd0IGNvb2tpZSBiXFx4ZWFuIGRcXHUwMWIwXFx1MWVkYmkuIFhpbiBsXFx1MDFiMHUgXFx4ZmQgclxcdTFlYjFuZyBtXFx1MWVkOXQgc1xcdTFlZDEgY29va2llIG5oXFx1MWVhNXQgXFx1MDExMVxcdTFlY2JuaCBsXFx4ZTAgY1xcdTFlYTduIHRoaVxcdTFlYmZ0IFxcdTAxMTFcXHUxZWMzIGNoXFx1MWVhMXkgdHJhbmcgd2ViIGNcXHUxZWU3YSBjaFxceGZhbmcgdFxceGY0aSB2XFx4ZTAga2hcXHhmNG5nIHRoXFx1MWVjMyBiXFx1MWVjYiBjaFxcdTFlYjduIGJcXHUxZWIxbmcgY1xceGUxY2ggc1xcdTFlZWQgZFxcdTFlZTVuZyBjXFx4ZTFjIGNcXHhlMGkgXFx1MDExMVxcdTFlYjd0IG5cXHhlMHkuXCJdLFRpdGxlOlwiQ1xceGUwaSBcXHUwMTEwXFx1MWViN3QgQ29va2llXCIsQ09PS0lFX1BPUFVQOidYaW4gY2hcXHhlMG8hIENoXFx4ZmFuZyB0XFx4ZjRpIHNcXHUxZWVkIGRcXHUxZWU1bmcgY29va2llIHZcXHhlMCBjXFx4ZjRuZyBuZ2hcXHUxZWM3IHRcXHUwMWIwXFx1MDFhMW5nIHRcXHUxZWYxIChcXHUyMDFjY29va2llXFx1MjAxZCksIGJhbyBnXFx1MWVkM20gY29va2llIGNcXHUxZWU3YSBiXFx4ZWFuIHRoXFx1MWVlOSBiYSwgdHJcXHhlYW4gdHJhbmcgd2ViIG5cXHhlMHkgXFx1MDExMVxcdTFlYzMgZ2lcXHhmYXAgdlxcdTFlYWRuIGhcXHhlMG5oIHZcXHhlMCBjXFx1MWVhM2kgdGhpXFx1MWVjN24gdHJcXHUxZWEzaSBuZ2hpXFx1MWVjN20gZHV5XFx1MWVjN3Qgd2ViIGNcXHUxZWU3YSBiXFx1MWVhMW4sIHRoZW8gZFxceGY1aSBoaVxcdTFlYzd1IHN1XFx1MWVhNXQgdHJhbmcgd2ViIHZcXHhlMCBjaG8gbVxcdTFlZTVjIFxcdTAxMTFcXHhlZGNoIHF1XFx1MWVhM25nIGNcXHhlMW8uIFxcdTAxMTBcXHUxZWMzIGJpXFx1MWViZnQgdGhcXHhlYW0gdGhcXHhmNG5nIHRpbiB2XFx1MWVjMSBjXFx4ZTFjaCBjaFxceGZhbmcgdFxceGY0aSBzXFx1MWVlZCBkXFx1MWVlNW5nIGNvb2tpZSB2XFx4ZTAgY1xceGUxYyBsXFx1MWVmMWEgY2hcXHUxZWNkbiBjb29raWUgY1xcdTFlZTdhIGJcXHUxZWExbiwgaFxceGUzeSB4ZW0gPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNoXFx4ZWRuaCBTXFx4ZTFjaCBDb29raWU8L2E+IGNcXHUxZWU3YSBjaFxceGZhbmcgdFxceGY0aSEgQlxcdTFlYjFuZyBjXFx4ZTFjaCBuaFxcdTFlYTVwIHZcXHhlMG8gXFx1MjAxY0NoXFx1MWVhNXAgTmhcXHUxZWFkbiBDb29raWVcXHUyMDFkIGJcXHhlYW4gZFxcdTAxYjBcXHUxZWRiaSwgYlxcdTFlYTFuIFxcdTAxMTFcXHUxZWQzbmcgXFx4ZmQgY2hvIGNoXFx4ZmFuZyB0XFx4ZjRpIHNcXHUxZWVkIGRcXHUxZWU1bmcgdFxcdTFlYTV0IGNcXHUxZWEzIGNvb2tpZSwgYmFvIGdcXHUxZWQzbSBjXFx1MWVhMyBuaFxcdTFlZWZuZyBjb29raWUga2hcXHhmNG5nIGNcXHUxZWE3biB0aGlcXHUxZWJmdC4gQlxcdTFlYTFuIGNcXHhmMyB0aFxcdTFlYzMgdFxcdTFlZWIgY2hcXHUxZWQxaSB0XFx1MWVhNXQgY1xcdTFlYTMgY29va2llIGtoXFx4ZjRuZyBjXFx1MWVhN24gdGhpXFx1MWViZnQgYlxcdTFlYjFuZyBjXFx4ZTFjaCBuaFxcdTFlYTVwIHZcXHhlMG8gXFx1MjAxY1hcXHUyMDFkIFxcdTFlZGYgYlxceGVhbiBwaFxcdTFlYTNpLiBCXFx1MWVhMW4gY1xceGYzIHRoXFx1MWVjMyB0aHUgaFxcdTFlZDNpIHNcXHUxZWYxIFxcdTAxMTFcXHUxZWQzbmcgXFx4ZmQgYlxcdTFlYTV0IGNcXHUxZWU5IGxcXHhmYWMgblxceGUwbyBiXFx1MWViMW5nIGNcXHhlMWNoIHZcXHhlMG8gcGhcXHUxZWE3biBcXHUyMDFjQ1xceGUwaSBcXHUwMTEwXFx1MWViN3QgQ29va2llXFx1MjAxZCBob1xcdTFlYjdjIDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5DaFxceGVkbmggU1xceGUxY2ggQ29va2llPC9hPiBjXFx1MWVlN2EgY2hcXHhmYW5nIHRcXHhmNGkuJyxDT09LSUVfUE9QVVBfRVU6J1hpbiBjaFxceGUwbyEgQ2hcXHhmYW5nIHRcXHhmNGkgc1xcdTFlZWQgZFxcdTFlZTVuZyBjb29raWUgdlxceGUwIGNcXHhmNG5nIG5naFxcdTFlYzcgdFxcdTAxYjBcXHUwMWExbmcgdFxcdTFlZjEgKFxcdTIwMWNjb29raWVcXHUyMDFkKSwgYmFvIGdcXHUxZWQzbSBjb29raWUgY1xcdTFlZTdhIGJcXHhlYW4gdGhcXHUxZWU5IGJhLCB0clxceGVhbiB0cmFuZyB3ZWIgblxceGUweSBcXHUwMTExXFx1MWVjMyBnaVxceGZhcCB2XFx1MWVhZG4gaFxceGUwbmggdlxceGUwIGNcXHUxZWEzaSB0aGlcXHUxZWM3biB0clxcdTFlYTNpIG5naGlcXHUxZWM3bSBkdXlcXHUxZWM3dCB3ZWIgY1xcdTFlZTdhIGJcXHUxZWExbiwgdGhlbyBkXFx4ZjVpIGhpXFx1MWVjN3Ugc3VcXHUxZWE1dCB0cmFuZyB3ZWIgdlxceGUwIGNobyBtXFx1MWVlNWMgXFx1MDExMVxceGVkY2ggcXVcXHUxZWEzbmcgY1xceGUxby4gXFx1MDExMFxcdTFlYzMgYmlcXHUxZWJmdCB0aFxceGVhbSB0aFxceGY0bmcgdGluIHZcXHUxZWMxIGNcXHhlMWNoIGNoXFx4ZmFuZyB0XFx4ZjRpIHNcXHUxZWVkIGRcXHUxZWU1bmcgY29va2llIHZcXHhlMCBjXFx4ZTFjIGxcXHUxZWYxYSBjaFxcdTFlY2RuIGNvb2tpZSBjXFx1MWVlN2EgYlxcdTFlYTFuLCBoXFx4ZTN5IHhlbSA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q2hcXHhlZG5oIFNcXHhlMWNoIENvb2tpZTwvYT4gY1xcdTFlZTdhIGNoXFx4ZmFuZyB0XFx4ZjRpISBCXFx1MWViMW5nIGNcXHhlMWNoIG5oXFx1MWVhNXAgdlxceGUwbyBcXHUyMDFjQ2hcXHUxZWE1cCBOaFxcdTFlYWRuIENvb2tpZVxcdTIwMWQgYlxceGVhbiBkXFx1MDFiMFxcdTFlZGJpLCBiXFx1MWVhMW4gXFx1MDExMVxcdTFlZDNuZyBcXHhmZCBjaG8gY2hcXHhmYW5nIHRcXHhmNGkgc1xcdTFlZWQgZFxcdTFlZTVuZyB0XFx1MWVhNXQgY1xcdTFlYTMgY29va2llLCBiYW8gZ1xcdTFlZDNtIGNcXHUxZWEzIG5oXFx1MWVlZm5nIGNvb2tpZSBraFxceGY0bmcgY1xcdTFlYTduIHRoaVxcdTFlYmZ0LiBCXFx1MWVhMW4gY1xceGYzIHRoXFx1MWVjMyB0XFx1MWVlYiBjaFxcdTFlZDFpIHRcXHUxZWE1dCBjXFx1MWVhMyBjb29raWUga2hcXHhmNG5nIGNcXHUxZWE3biB0aGlcXHUxZWJmdCBiXFx1MWViMW5nIGNcXHhlMWNoIG5oXFx1MWVhNXAgdlxceGUwbyBcXHUyMDFjWFxcdTIwMWQgXFx1MWVkZiBiXFx4ZWFuIHBoXFx1MWVhM2kuIEJcXHUxZWExbiBjXFx4ZjMgdGhcXHUxZWMzIHRodSBoXFx1MWVkM2kgc1xcdTFlZjEgXFx1MDExMVxcdTFlZDNuZyBcXHhmZCBiXFx1MWVhNXQgY1xcdTFlZTkgbFxceGZhYyBuXFx4ZTBvIGJcXHUxZWIxbmcgY1xceGUxY2ggdlxceGUwbyBwaFxcdTFlYTduIFxcdTIwMWNDXFx4ZTBpIFxcdTAxMTBcXHUxZWI3dCBDb29raWVcXHUyMDFkIGhvXFx1MWViN2MgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNoXFx4ZWRuaCBTXFx4ZTFjaCBDb29raWU8L2E+IGNcXHUxZWU3YSBjaFxceGZhbmcgdFxceGY0aS4nLEFncmVlVGV4dDpcIkNoXFx1MWVhNXAgTmhcXHUxZWFkbiBDb29raWVcIixTZXR0aW5nc1RleHQ6XCJDXFx4ZTBpIFxcdTAxMTBcXHUxZWI3dCBDb29raWVcIixcIlJlcG9ydCBJbmZyaW5nZW1lbnRcIjpcIkJcXHhlMW8gQ1xceGUxbyBWaSBQaFxcdTFlYTFtXCIsU3BvdGxpZ2h0OlwiVFxceGUybSBcXHUwMTEwaVxcdTFlYzNtXCJ9LFwiemgtaGFuc1wiOntcIlNuYXAgSW5jLlwiOlwiU25hcCBJbmMuXCIsU25hcGNoYXQ6XCJTbmFwY2hhdFwiLFNwZWN0YWNsZXM6XCJTcGVjdGFjbGVzXCIsTGl2ZTpcIlxcdTc2ZjRcXHU2NGFkXCIsQWRzOlwiXFx1NWU3ZlxcdTU0NGFcIixDb21wYW55OlwiXFx1NTE2Y1xcdTUzZjhcIixIb21lOlwiXFx1NGUzYlxcdTk4NzVcIixCbG9nOlwiXFx1NTM1YVxcdTViYTJcIixKb2JzOlwiXFx1NjJkYlxcdThkMjRcXHU3ZWIzXFx1NjI0ZFwiLENhcmVlcnM6XCJcXHU0ZThiXFx1NGUxYVwiLFByZXNzOlwiXFx1NjViMFxcdTk1ZmJcIixOZXdzOlwiXFx1OGQ0NFxcdThiYWZcIixcIlByZXNzIElucXVpcmllc1wiOlwiXFx1NjViMFxcdTk1ZmJcXHU1NGE4XFx1OGJlMlwiLFR3aXR0ZXI6XCJUd2l0dGVyXCIsTGFuZ3VhZ2U6XCJcXHU4YmVkXFx1OGEwMFwiLFwiRG93bmxvYWQgU25hcGNoYXRcIjpcIlxcdTRlMGJcXHU4ZjdkIFNuYXBjaGF0XCIsRG93bmxvYWQ6XCJcXHU0ZTBiXFx1OGY3ZFwiLEtpdDpcIlxcdTVkZTVcXHU1MTc3XFx1NTMwNVwiLFN0b3JpZXM6XCJcXHU2NTQ1XFx1NGU4YlwiLFwiTGVucyBTdHVkaW9cIjpcIkxlbnMgU3R1ZGlvXCIsU3RvcmU6XCJcXHU1NTQ2XFx1NWU5N1wiLFwiU25hcGNoYXQgZm9yIGlPU1wiOlwiaU9TIFxcdTcyNDggU25hcGNoYXRcIixcIlNuYXBjaGF0IGZvciBBbmRyb2lkXCI6XCJBbmRyb2lkIFxcdTcyNDggU25hcGNoYXRcIixDb21tdW5pdHk6XCJcXHU3OTNlXFx1NTMzYVwiLFN1cHBvcnQ6XCJcXHU2NTJmXFx1NjMwMVwiLFwiQ29tbXVuaXR5IEd1aWRlbGluZXNcIjpcIlxcdTc5M2VcXHU3ZmE0XFx1NjMwN1xcdTUzNTdcIixcIlNhZmV0eSBDZW50ZXJcIjpcIlxcdTViODlcXHU1MTY4XFx1NGUyZFxcdTVmYzNcIixTbmFwY29kZXM6XCJTbmFwY29kZVwiLEdlb2ZpbHRlcnM6XCJHZW9maWx0ZXJcIixDcmVhdGU6XCJcXHU2ZWU0XFx1OTU1Y1xcdTU0OGNcXHU3Mjc5XFx1NjU0OFxcdTk1NWNcXHU1OTM0XCIsTWFwOlwiXFx1NTczMFxcdTU2ZmVcIixBZHZlcnRpc2luZzpcIlxcdTVlN2ZcXHU1NDRhXCIsXCJCdXkgQWRzXCI6XCJcXHU4ZDJkXFx1NGU3MFxcdTVlN2ZcXHU1NDRhXCIsXCJBZHZlcnRpc2luZyBQb2xpY2llc1wiOlwiXFx1NWU3ZlxcdTU0NGFcXHU2NTNmXFx1N2I1NlwiLFwiUG9saXRpY2FsIEFkcyBMaWJyYXJ5XCI6XCJcXHU2NTNmXFx1NmNiYlxcdTVlN2ZcXHU1NDRhXFx1NWU5M1wiLFwiQnJhbmQgR3VpZGVsaW5lc1wiOlwiXFx1NTRjMVxcdTcyNGNcXHU1ZjYyXFx1OGM2MVxcdTYzMDdcXHU1ZjE1XCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJcXHU2M2E4XFx1NWU3ZlxcdTg5YzRcXHU1MjE5XCIsTGVnYWw6XCJcXHU2Y2Q1XFx1NWY4YlwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1NGY3ZlxcdTc1MjhcXHU2NzYxXFx1NmIzZVwiLEltcHJlc3N1bTpcIlxcdTUxNmNcXHU1M2Y4XFx1NGZlMVxcdTYwNmZcIixcIlByaXZhY3kgUG9saWN5XCI6XCJcXHU5NjkwXFx1NzljMVxcdTY1M2ZcXHU3YjU2XCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1OTY5MFxcdTc5YzFcXHU2NzQzXFx1NGUyZFxcdTVmYzNcIixcIkNvb2tpZSBQb2xpY3lcIjpcIkNvb2tpZSBcXHU2NTNmXFx1N2I1NlwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1NTZkZVxcdTVmYzZcXHU1MjlmXFx1ODBmZFxcdTY3MGRcXHU1MmExXFx1Njc2MVxcdTZiM2VcIixDVVNUT01fQ1JFQVRJVkVfVE9PTFNfVE9TOlwiXFx1NWJhMlxcdTUyMzZcXHU1MjFiXFx1NGY1Y1xcdTVkZTVcXHU1MTc3XFx1Njc2MVxcdTZiM2VcIixDT01NVU5JVFlfVE9TOlwiXFx1NzkzZVxcdTUzM2EgR2VvZmlsdGVyIFxcdTY3NjFcXHU2YjNlXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1Njc2MVxcdTZiM2VcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHU2MGE4XFx1NzY4NFxcdTk2OTBcXHU3OWMxXFx1OTAwOVxcdTYyZTlcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHU1ZmM1XFx1OTcwMFxcdTc2ODQgQ29va2llXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTmVjZXNzYXJ5XCI+XFx1NjIxMVxcdTY1YjlcXHU0ZjFhXFx1NGY3ZlxcdTc1MjhcXHU4ZmQ5XFx1NGU5YiBDb29raWU8L2E+IFxcdTY3NjVcXHU1ZTJlXFx1NTJhOVxcdTdmNTFcXHU3YWQ5XFx1OGZkMFxcdTg0MjVcXHUzMDAyXFx1NTZlMFxcdTRlM2FcXHU4ZmQ5XFx1NGU5YlxcdTY2MmZcXHU1ZmM1XFx1OTcwMFxcdTc2ODQgQ29va2llXFx1ZmYwY1xcdTYyNDBcXHU0ZWU1XFx1NGY2MFxcdTY1ZTBcXHU2Y2Q1XFx1NWMwNlxcdTUxNzZcXHU1MTczXFx1OTVlZFxcdTMwMDInXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiXFx1NTA0ZlxcdTU5N2RcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTYyMTFcXHU2NWI5XFx1NGY3ZlxcdTc1MjhcXHU4ZmQ5XFx1NGU5YiBDb29raWU8L2E+IFxcdTY3NjVcXHU4YmIwXFx1NGY0ZlxcdTRmNjBcXHU3Njg0XFx1NTA0ZlxcdTU5N2RcXHU1ZTc2XFx1NjUzOVxcdTU1ODRcXHU0ZjYwXFx1NTcyOFxcdTYyMTFcXHU0ZWVjXFx1N2Y1MVxcdTdhZDlcXHU0ZTBhXFx1NzY4NFxcdTRmNTNcXHU5YThjXFx1MzAwMiddfSxQZXJmb3JtYW5jZTp7aGVhZGxpbmU6XCJcXHU2MDI3XFx1ODBmZFxcdTRlMGVcXHU1MjA2XFx1Njc5MFwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1BlcmZvcm1hbmNlXCI+XFx1NjIxMVxcdTY1YjlcXHU0ZjdmXFx1NzUyOFxcdThmZDlcXHU0ZTliIENvb2tpZTwvYT4gXFx1Njc2NVxcdTY1MzZcXHU5NmM2XFx1NjcwOVxcdTUxNzNcXHU0ZjYwXFx1NTk4MlxcdTRmNTVcXHU0ZjdmXFx1NzUyOFxcdTYyMTFcXHU0ZWVjXFx1N2Y1MVxcdTdhZDlcXHU3Njg0XFx1NGZlMVxcdTYwNmZcXHVmZjBjXFx1NzZkMVxcdTYzYTdcXHU3ZjUxXFx1N2FkOVxcdTYwMjdcXHU4MGZkXFx1ZmYwY1xcdTRlZTVcXHU1M2NhXFx1NjUzOVxcdThmZGJcXHU2MjExXFx1NGVlY1xcdTc2ODRcXHU3ZjUxXFx1N2FkOVxcdTYwMjdcXHU4MGZkXFx1NTQ4Y1xcdTRmNjBcXHU3Njg0XFx1NGY1M1xcdTlhOGNcXHUzMDAyJ119LE1hcmtldGluZzp7aGVhZGxpbmU6XCJcXHU1ZTAyXFx1NTczYVxcdTg0MjVcXHU5NTAwXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jTWFya2V0aW5nXCI+XFx1NjIxMVxcdTY1YjlcXHU0ZjdmXFx1NzUyOFxcdThmZDlcXHU0ZTliIENvb2tpZTwvYT4gXFx1Njc2NVxcdTYzYThcXHU5MDAxXFx1NzZmOFxcdTUxNzNcXHU1ZTdmXFx1NTQ0YVxcdTVlNzZcXHU4ODYxXFx1OTFjZlxcdTYyMTFcXHU0ZWVjXFx1NWU3ZlxcdTU0NGFcXHU2ZDNiXFx1NTJhOFxcdTc2ODRcXHU2NTQ4XFx1Njc5Y1xcdTMwMDJcXHU2MjExXFx1NjViOVxcdTc2ODRcXHU3YjJjXFx1NGUwOVxcdTY1YjlcXHU1ZTdmXFx1NTQ0YVxcdTU0MDhcXHU0ZjVjXFx1NGYxOVxcdTRmMzRcXHU1M2VmXFx1ODBmZFxcdTRmN2ZcXHU3NTI4XFx1OGZkOVxcdTRlOWIgQ29va2llIFxcdTY3NjVcXHU2M2QwXFx1NGY5YlxcdTRmNjBcXHU2MTFmXFx1NTE3NFxcdThkYTNcXHU3Njg0XFx1NGZlMVxcdTYwNmZcXHVmZjBjXFx1NWU3NlxcdTU3MjhcXHU1MTc2XFx1NGVkNlxcdTdmNTFcXHU3YWQ5XFx1NGUwYVxcdTYyOTVcXHU2NTNlXFx1NzZmOFxcdTUxNzNcXHU1ZTdmXFx1NTQ0YVxcdTMwMDInXX19LFRoaXJkUGFydHlBZHZlcnRpc2Vyc1RleHQ6XCJcXHU3YjJjXFx1NGUwOVxcdTY1YjlcXHU1ZTdmXFx1NTQ0YVxcdTU0MDhcXHU0ZjVjXFx1NGYxOVxcdTRmMzRcIixBZHZlcnRpc2Vyc0xpc3Q6Wyc8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLnR3aXR0ZXIuY29tL3J1bGVzLWFuZC1wb2xpY2llcy90d2l0dGVyLWNvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlR3aXR0ZXI8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWN5LnBpbnRlcmVzdC5jb20vY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGludGVyZXN0PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3BvbGljaWVzLmdvb2dsZS5jb20vdGVjaG5vbG9naWVzL2Nvb2tpZXNcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkdvb2dsZTwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2xlZ2FsL2Nvb2tpZS1wb2xpY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlxcdTk4ODZcXHU4MmYxPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kubWljcm9zb2Z0LmNvbS9wcml2YWN5c3RhdGVtZW50XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5CaW5nPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5zYWxlc2ZvcmNlLmNvbS9jb21wYW55L3ByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPlBhcmRvdDwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3BvbGljaWVzL2Nvb2tpZXMvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5GYWNlYm9vazwvYT4nXSxUaGlyZFBhcnR5QWR2ZXJ0aXNlcnNQb3B1cFRleHQ6XCJcXHU3YjJjXFx1NGUwOVxcdTY1YjlcXHU1ZTdmXFx1NTQ0YVxcdTU0MDhcXHU0ZjVjXFx1NGYxOVxcdTRmMzRcXHVmZjFhXCIsRWZmZWN0aXZlRGF0ZTpcIlxcdTc1MWZcXHU2NTQ4XFx1NjVlNVxcdTY3MWZcXHVmZjFhMjAxOSBcXHU1ZTc0IDEgXFx1NjcwOCAxNSBcXHU2NWU1XCIsQm9keTpbXCJcXHU5NjY0XFx1NGU4NlxcdTkwMWFcXHU4ZmM3XFx1NmQ0ZlxcdTg5YzhcXHU1NjY4XFx1NjIxNlxcdThiYmVcXHU1OTA3XFx1N2JhMVxcdTc0MDYgQ29va2llIFxcdTRlNGJcXHU1OTE2XFx1ZmYwY1xcdTRmNjBcXHU4ZmQ4XFx1NTNlZlxcdTRlZTVcXHU1NzI4XFx1NGUwYlxcdTY1YjlcXHU2NmY0XFx1NjUzOSBDb29raWUgXFx1OGJiZVxcdTdmNmVcXHUzMDAyXFx1OGJmN1xcdTZjZThcXHU2MTBmXFx1ZmYwY1xcdTY3ZDBcXHU0ZTliIENvb2tpZSBcXHU2NjJmXFx1NjIxMVxcdTRlZWNcXHU3ZjUxXFx1N2FkOVxcdThmZDBcXHU4ODRjXFx1NjI0MFxcdTVmYzVcXHU5NzAwXFx1NzY4NFxcdWZmMGNcXHU2NWUwXFx1NmNkNVxcdTkwMWFcXHU4ZmM3XFx1OGZkOVxcdTRlOWJcXHU4YmJlXFx1N2Y2ZVxcdTY3NjVcXHU5NjNiXFx1NmI2MlxcdTMwMDJcIl0sVGl0bGU6XCJDb29raWUgXFx1OGJiZVxcdTdmNmVcIixDT09LSUVfUE9QVVA6J1xcdTU1ZThcXHVmZjAxXFx1NjIxMVxcdTRlZWNcXHU1NzI4XFx1NmI2NFxcdTdmNTFcXHU3YWQ5XFx1NGY3ZlxcdTc1MjhcXHUyMjE5Q29va2llXFx1MjIxOVxcdTU0OGNcXHU3YzdiXFx1NGYzY1xcdTYyODBcXHU2NzJmXFx1ZmYwOFxcdTRlZTVcXHU0ZTBiXFx1N2VkZlxcdTc5ZjBcXHUyMDFjQ29va2llXFx1MjAxZFxcdWZmMDlcXHVmZjBjXFx1NTE3NlxcdTRlMmRcXHU1MzA1XFx1NjJlY1xcdTdiMmNcXHU0ZTA5XFx1NjViOSBDb29raWVcXHVmZjBjXFx1NzUyOFxcdTRlOGVcXHU1ZTJlXFx1NTJhOVxcdTdmNTFcXHU3YWQ5XFx1OGZkMFxcdTg0MjVcXHUzMDAxXFx1NjUzOVxcdTU1ODRcXHU0ZjYwXFx1NzY4NFxcdTZkNGZcXHU4OWM4XFx1NGY1M1xcdTlhOGNcXHUzMDAxXFx1NzZkMVxcdTYzYTdcXHU2MDI3XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTc1MjhcXHU0ZThlXFx1NWU3ZlxcdTU0NGFcXHU3NmVlXFx1NzY4NFxcdTMwMDJcXHU2NzA5XFx1NTE3M1xcdTYyMTFcXHU0ZWVjXFx1NTk4MlxcdTRmNTVcXHU0ZjdmXFx1NzUyOCBDb29raWUgXFx1NGVlNVxcdTUzY2FcXHU0ZjYwXFx1NzY4NCBDb29raWUgXFx1OTAwOVxcdTYyZTlcXHU3Njg0XFx1OGJlNlxcdTdlYzZcXHU0ZmUxXFx1NjA2ZlxcdWZmMGNcXHU4YmY3XFx1NTNjMlxcdTk2MDVcXHU2MjExXFx1NGVlY1xcdTc2ODQgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBcXHU2NTNmXFx1N2I1NjwvYT5cXHVmZjAxXFx1NzBiOVxcdTUxZmJcXHU0ZTBiXFx1OTc2MlxcdTc2ODRcXHUyMDFjXFx1NjNhNVxcdTUzZDcgQ29va2llXFx1MjAxZFxcdWZmMGNcXHU1MzczXFx1ODg2OFxcdTc5M2FcXHU0ZjYwXFx1NTQwY1xcdTYxMGZcXHU2MjExXFx1NGVlY1xcdTRmN2ZcXHU3NTI4XFx1NjI0MFxcdTY3MDkgQ29va2llXFx1ZmYwY1xcdTUzMDVcXHU2MmVjXFx1OTc1ZVxcdTVmYzVcXHU4OTgxXFx1NzY4NCBDb29raWVcXHUzMDAyXFx1NGY2MFxcdTUzZWZcXHU0ZWU1XFx1OTAxYVxcdThmYzdcXHU3MGI5XFx1NTFmYlxcdTUzZjNcXHU4ZmI5XFx1NzY4NFxcdTIwMWNYXFx1MjAxZFxcdTdiMjZcXHU1M2Y3XFx1ZmYwY1xcdTYyZDJcXHU3ZWRkXFx1NGY3ZlxcdTc1MjhcXHU2MjQwXFx1NjcwOVxcdTk3NWVcXHU1ZmM1XFx1ODk4MVxcdTc2ODQgQ29va2llXFx1MzAwMlxcdTRmNjBcXHU5NjhmXFx1NjVmNlxcdTUzZWZcXHU0ZWU1XFx1OGJiZlxcdTk1ZWVcXHUyMDFjQ29va2llIFxcdThiYmVcXHU3ZjZlXFx1MjAxZFxcdTYyMTZcXHU2MjExXFx1NGVlY1xcdTc2ODQgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBcXHU4YmJlXFx1N2Y2ZTwvYT5cXHU0ZWU1XFx1NGZlZVxcdTY1MzkgQ29va2llIFxcdThiYmVcXHU3ZjZlXFx1ZmYwY1xcdTVlNzZcXHU2NGE0XFx1NTZkZVxcdTU0MGNcXHU2MTBmXFx1MzAwMicsQ09PS0lFX1BPUFVQX0VVOidcXHU1NWU4XFx1ZmYwMVxcdTYyMTFcXHU0ZWVjXFx1NTcyOFxcdTZiNjRcXHU3ZjUxXFx1N2FkOVxcdTRmN2ZcXHU3NTI4XFx1MjIxOUNvb2tpZVxcdTIyMTlcXHU1NDhjXFx1N2M3YlxcdTRmM2NcXHU2MjgwXFx1NjcyZlxcdWZmMDhcXHU0ZWU1XFx1NGUwYlxcdTdlZGZcXHU3OWYwXFx1MjAxY0Nvb2tpZVxcdTIwMWRcXHVmZjA5XFx1ZmYwY1xcdTUxNzZcXHU0ZTJkXFx1NTMwNVxcdTYyZWNcXHU3YjJjXFx1NGUwOVxcdTY1YjkgQ29va2llXFx1ZmYwY1xcdTc1MjhcXHU0ZThlXFx1NWUyZVxcdTUyYTlcXHU3ZjUxXFx1N2FkOVxcdThmZDBcXHU4NDI1XFx1MzAwMVxcdTY1MzlcXHU1NTg0XFx1NGY2MFxcdTc2ODRcXHU2ZDRmXFx1ODljOFxcdTRmNTNcXHU5YThjXFx1MzAwMVxcdTc2ZDFcXHU2M2E3XFx1NjAyN1xcdTgwZmRcXHVmZjBjXFx1NGVlNVxcdTUzY2FcXHU3NTI4XFx1NGU4ZVxcdTVlN2ZcXHU1NDRhXFx1NzZlZVxcdTc2ODRcXHUzMDAyXFx1NjcwOVxcdTUxNzNcXHU2MjExXFx1NGVlY1xcdTU5ODJcXHU0ZjU1XFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTRlZTVcXHU1M2NhXFx1NGY2MFxcdTc2ODQgQ29va2llIFxcdTkwMDlcXHU2MmU5XFx1NzY4NFxcdThiZTZcXHU3ZWM2XFx1NGZlMVxcdTYwNmZcXHVmZjBjXFx1OGJmN1xcdTUzYzJcXHU5NjA1XFx1NjIxMVxcdTRlZWNcXHU3Njg0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgXFx1NjUzZlxcdTdiNTY8L2E+XFx1ZmYwMVxcdTcwYjlcXHU1MWZiXFx1NGUwYlxcdTk3NjJcXHU3Njg0XFx1MjAxY1xcdTYzYTVcXHU1M2Q3IENvb2tpZVxcdTIwMWRcXHVmZjBjXFx1NTM3M1xcdTg4NjhcXHU3OTNhXFx1NGY2MFxcdTU0MGNcXHU2MTBmXFx1NjIxMVxcdTRlZWNcXHU0ZjdmXFx1NzUyOFxcdTYyNDBcXHU2NzA5IENvb2tpZVxcdWZmMGNcXHU1MzA1XFx1NjJlY1xcdTk3NWVcXHU1ZmM1XFx1ODk4MVxcdTc2ODQgQ29va2llXFx1MzAwMlxcdTRmNjBcXHU1M2VmXFx1NGVlNVxcdTkwMWFcXHU4ZmM3XFx1NzBiOVxcdTUxZmJcXHU1M2YzXFx1OGZiOVxcdTc2ODRcXHUyMDFjWFxcdTIwMWRcXHU3YjI2XFx1NTNmN1xcdWZmMGNcXHU2MmQyXFx1N2VkZFxcdTRmN2ZcXHU3NTI4XFx1NjI0MFxcdTY3MDlcXHU5NzVlXFx1NWZjNVxcdTg5ODFcXHU3Njg0IENvb2tpZVxcdTMwMDJcXHU0ZjYwXFx1OTY4ZlxcdTY1ZjZcXHU1M2VmXFx1NGVlNVxcdThiYmZcXHU5NWVlXFx1MjAxY0Nvb2tpZSBcXHU4YmJlXFx1N2Y2ZVxcdTIwMWRcXHU2MjE2XFx1NjIxMVxcdTRlZWNcXHU3Njg0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgXFx1OGJiZVxcdTdmNmU8L2E+XFx1NGVlNVxcdTRmZWVcXHU2NTM5IENvb2tpZSBcXHU4YmJlXFx1N2Y2ZVxcdWZmMGNcXHU1ZTc2XFx1NjRhNFxcdTU2ZGVcXHU1NDBjXFx1NjEwZlxcdTMwMDInLEFncmVlVGV4dDpcIlxcdTYzYTVcXHU1M2Q3IENvb2tpZVwiLFNldHRpbmdzVGV4dDpcIkNvb2tpZSBcXHU4YmJlXFx1N2Y2ZVwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiXFx1NGUzZVxcdTYyYTVcXHU0ZmI1XFx1Njc0M1wiLFNwb3RsaWdodDpcIlxcdTgwNWFcXHU1MTQ5XFx1NzA2ZlwifSxcInpoLWhhbnRcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHU1MzczXFx1NjY0MlwiLEFkczpcIlxcdTVlZTNcXHU1NDRhXCIsQ29tcGFueTpcIlxcdTUxNmNcXHU1M2Y4XCIsSG9tZTpcIlxcdTk5OTZcXHU5ODAxXCIsQmxvZzpcIlxcdTkwZThcXHU4NDNkXFx1NjgzY1wiLEpvYnM6XCJcXHU1ZGU1XFx1NGY1Y1xcdTZhNWZcXHU2NzAzXCIsQ2FyZWVyczpcIlxcdTRlOGJcXHU2OTZkXCIsUHJlc3M6XCJcXHU1YTkyXFx1OWFkNFwiLE5ld3M6XCJcXHU2NWIwXFx1ODA1ZVwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHU2NWIwXFx1ODA1ZVxcdThhZWVcXHU4YTYyXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdThhOWVcXHU4YTAwXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiXFx1NGUwYlxcdThmMDkgU25hcGNoYXRcIixEb3dubG9hZDpcIlxcdTRlMGJcXHU4ZjA5XCIsS2l0OlwiXFx1NWRlNVxcdTUxNzdcXHU3ZDQ0XCIsU3RvcmllczpcIlxcdTY1NDVcXHU0ZThiXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTU1NDZcXHU1ZTk3XCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJpT1MgXFx1NzI0OCBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQgXFx1NzI0OCBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTc5M2VcXHU3ZmE0XCIsU3VwcG9ydDpcIlxcdTY1MmZcXHU2M2Y0XCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1NzkzZVxcdTdmYTRcXHU2MzA3XFx1NTM1N1wiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1NWI4OVxcdTUxNjhcXHU0ZTJkXFx1NWZjM1wiLFNuYXBjb2RlczpcIlNuYXBjb2RlXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlclwiLENyZWF0ZTpcIlxcdTZmZmVcXHU5M2UxXFx1NTQ4Y1xcdTcyNzlcXHU2NTQ4XFx1OTNlMVxcdTk4MmRcIixNYXA6XCJcXHU1NzMwXFx1NTcxNlwiLEFkdmVydGlzaW5nOlwiXFx1NWVlM1xcdTU0NGFcIixcIkJ1eSBBZHNcIjpcIlxcdThjZmNcXHU4Y2I3XFx1NWVlM1xcdTU0NGFcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHU1ZWUzXFx1NTQ0YVxcdTY1M2ZcXHU3YjU2XCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTY1M2ZcXHU2Y2JiXFx1NWVlM1xcdTU0NGFcXHU1ZWFiXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHU1NGMxXFx1NzI0Y1xcdTg5OGZcXHU3YmM0XCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJcXHU2M2E4XFx1NWVlM1xcdTg5OGZcXHU1MjQ3XCIsTGVnYWw6XCJcXHU2Y2Q1XFx1NWY4YlwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1NjcwZFxcdTUyZDlcXHU2ODlkXFx1NmIzZVwiLEltcHJlc3N1bTpcIlxcdTcyNDhcXHU2NzJjXFx1OGFhYVxcdTY2MGVcIixcIlByaXZhY3kgUG9saWN5XCI6XCJcXHU5NmIxXFx1NzljMVxcdTY1M2ZcXHU3YjU2XCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1OTZiMVxcdTc5YzFcXHU2YjBhXFx1NGUyZFxcdTVmYzNcIixcIkNvb2tpZSBQb2xpY3lcIjpcIkNvb2tpZSBcXHU2NTNmXFx1N2I1NlwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1NTZkZVxcdTYxYjZcXHU2NzBkXFx1NTJkOVxcdTY4OWRcXHU2YjNlXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTViYTJcXHU4OGZkXFx1NTI3NVxcdTRmNWNcXHU1ZGU1XFx1NTE3N1xcdTY4OWRcXHU2YjNlXCIsQ09NTVVOSVRZX1RPUzpcIlxcdTc5M2VcXHU3ZmE0XFx1NTczMFxcdTc0MDZcXHU2ZmZlXFx1OTNlMVxcdTY4OWRcXHU2YjNlXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1Njg5ZFxcdTZiM2VcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHU2MGE4XFx1NzY4NFxcdTk2YjFcXHU3OWMxXFx1OTA3OFxcdTY0YzdcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHU1ZmM1XFx1OTcwMCBDb29raWVcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHU2MjExXFx1NTAxMVxcdTkwMGZcXHU5MDRlXFx1NGY3ZlxcdTc1MjhcXHU5MDE5XFx1NGU5YiBDb29raWU8L2E+IFxcdTVlNmJcXHU1MmE5XFx1N2RiMlxcdTdhZDlcXHU5MDRiXFx1NGY1Y1xcdTMwMDJcXHU3NTMxXFx1NjViY1xcdTkwMTlcXHU0ZTliIENvb2tpZSBcXHU1ZmM1XFx1NGUwZFxcdTUzZWZcXHU1YzExXFx1ZmYwY1xcdTYyNDBcXHU0ZWU1XFx1NGY2MFxcdTcxMjFcXHU2Y2Q1XFx1NWMwN1xcdTUxNzZcXHU5NWRjXFx1OTU4OVxcdTMwMDInXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiXFx1NTA0ZlxcdTU5N2RcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU5MDE5XFx1NGU5YiBDb29raWU8L2E+IFxcdTRmODZcXHU4YTE4XFx1NGY0ZlxcdTRmNjBcXHU3Njg0XFx1NTA0ZlxcdTU5N2RcXHVmZjBjXFx1NGUyNlxcdTYzZDBcXHU1MzQ3XFx1NGY2MFxcdTU3MjhcXHU2MjExXFx1NTAxMVxcdTdkYjJcXHU3YWQ5XFx1NGUwYVxcdTc2ODRcXHU5YWQ0XFx1OWE1N1xcdTMwMDInXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1NjU0OFxcdTgwZmRcXHU4MjA3XFx1NTIwNlxcdTY3OTBcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU5MDE5XFx1NGU5YiBDb29raWU8L2E+IFxcdTRmODZcXHU2NTM2XFx1OTZjNlxcdTY3MDlcXHU5NWRjXFx1NGY2MFxcdTU5ODJcXHU0ZjU1XFx1NGY3ZlxcdTc1MjhcXHU2MjExXFx1NTAxMVxcdTdkYjJcXHU3YWQ5XFx1MzAwMVxcdTc2ZTNcXHU2M2E3XFx1N2RiMlxcdTdhZDlcXHU2NTQ4XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTY1MzlcXHU1NTg0XFx1NjIxMVxcdTUwMTFcXHU3ZGIyXFx1N2FkOVxcdTY1NDhcXHU4MGZkXFx1NTQ4Y1xcdTlhZDRcXHU5YTU3XFx1NzY4NFxcdThjYzdcXHU4YTBhXFx1MzAwMiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1ODg0Y1xcdTkyYjdcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHU2MjExXFx1NTAxMVxcdTRmN2ZcXHU3NTI4XFx1OTAxOVxcdTRlOWIgQ29va2llPC9hPiBcXHU0Zjg2XFx1NjNkMFxcdTRmOWJcXHU3NmY4XFx1OTVkY1xcdTVlZTNcXHU1NDRhXFx1ZmYwY1xcdTRlMjZcXHU4ODYxXFx1OTFjZlxcdTYyMTFcXHU1MDExXFx1NWVlM1xcdTU0NGFcXHU2ZDNiXFx1NTJkNVxcdTc2ODRcXHU2MjEwXFx1NjU0OFxcdTMwMDJcXHU2MjExXFx1NTAxMVxcdTc2ODRcXHU3YjJjXFx1NGUwOVxcdTY1YjlcXHU1ZWUzXFx1NTQ0YVxcdTU0MDhcXHU0ZjVjXFx1NTkyNVxcdTRmMzRcXHU1M2VmXFx1ODBmZFxcdTY3MDNcXHU0ZjdmXFx1NzUyOFxcdTcwMGZcXHU4OWJkXFx1OGExOFxcdTkzMDRcXHU0Zjg2XFx1OGExOFxcdTkzMDRcXHU0ZjYwXFx1NzY4NFxcdTgyMDhcXHU4ZGEzXFx1ZmYwY1xcdTVlNzZcXHU1NzI4XFx1NTE3NlxcdTViODNcXHU3ZGIyXFx1N2FkOVxcdTRlMGFcXHU5ODZmXFx1NzkzYVxcdTc2ZjhcXHU5NWRjXFx1NzY4NFxcdTVlZTNcXHU1NDRhXFx1MzAwMiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTdiMmNcXHU0ZTA5XFx1NjViOVxcdTVlZTNcXHU1NDRhXFx1NTQwOFxcdTRmNWNcXHU1OTI1XFx1NGYzNFwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTdiMmNcXHU0ZTA5XFx1NjViOVxcdTVlZTNcXHU1NDRhXFx1NTQwOFxcdTRmNWNcXHU1OTI1XFx1NGYzNFxcdWZmMWFcIixFZmZlY3RpdmVEYXRlOlwiXFx1NzUxZlxcdTY1NDhcXHU2NWU1XFx1NjcxZlxcdWZmMWEyMDE5IFxcdTVlNzQgMSBcXHU2NzA4IDE1IFxcdTY1ZTVcIixCb2R5OltcIlxcdTk2NjRcXHU0ZTg2XFx1OTAwZlxcdTkwNGVcXHU3MDBmXFx1ODliZFxcdTU2NjhcXHU2MjE2XFx1ODhkZFxcdTdmNmVcXHU0Zjg2XFx1N2JhMVxcdTc0MDYgQ29va2llIFxcdTRlNGJcXHU1OTE2XFx1ZmYwY1xcdTRmNjBcXHU5MDg0XFx1NTNlZlxcdTRlZTVcXHU1NzI4XFx1NGUwYlxcdTY1YjlcXHU2NmY0XFx1NjUzOSBDb29raWUgXFx1OGEyZFxcdTViOWFcXHUzMDAyXFx1OGFjYlxcdTZjZThcXHU2MTBmXFx1ZmYwY1xcdTY3ZDBcXHU0ZTliIENvb2tpZSBcXHU2NjJmXFx1OTA0YlxcdTg4NGNcXHU2MjExXFx1NTAxMVxcdTdkYjJcXHU3YWQ5XFx1NWZjNVxcdTk3MDBcXHU3NTI4XFx1NTIzMFxcdTc2ODRcXHVmZjBjXFx1NzEyMVxcdTZjZDVcXHU1MjI5XFx1NzUyOFxcdThhMmRcXHU1YjlhXFx1NGY4NlxcdTk2M2JcXHU2NGNiXFx1MzAwMlwiXSxUaXRsZTpcIkNvb2tpZSBcXHU4YTJkXFx1NWI5YVwiLENPT0tJRV9QT1BVUDonXFx1NTVlOFxcdWZmMDFcXHU2MjExXFx1NTAxMVxcdTU3MjhcXHU2YjY0XFx1N2RiMlxcdTdhZDlcXHU0ZTJkXFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTUzY2FcXHU3NmY4XFx1OTVkY1xcdTYyODBcXHU4ODUzIChcXHU0ZWU1XFx1NGUwYlxcdTdkNzFcXHU3YTMxIENvb2tpZSlcXHVmZjBjXFx1NGUyNlxcdTUzMDVcXHU1NDJiXFx1N2IyY1xcdTRlMDlcXHU2NWI5IENvb2tpZSBcXHVmZjBjXFx1NGVlNVxcdTRmYmZcXHU1ZTZiXFx1NTJhOVxcdTdkYjJcXHU3YWQ5XFx1OTA0YlxcdTRmNWNcXHUzMDAxXFx1NjUzOVxcdTU1ODRcXHU3NTI4XFx1NjIzNlxcdTcwMGZcXHU4OWJkXFx1OWFkNFxcdTlhNTdcXHUzMDAxXFx1NzZlM1xcdTYzYTdcXHU2NTQ4XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTk4NmZcXHU3OTNhXFx1NzZmOFxcdTk1ZGNcXHU1ZWUzXFx1NTQ0YVxcdTMwMDJcXHU4MmU1XFx1ODk4MVxcdTZkZjFcXHU1MTY1XFx1NGU4NlxcdTg5ZTNcXHU2MjExXFx1NTAxMVxcdTU5ODJcXHU0ZjU1XFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTRlZTVcXHU1M2NhXFx1NGY2MFxcdTVjMGQgQ29va2llIFxcdTY3MDlcXHU1NGVhXFx1NGU5YlxcdTkwNzhcXHU2NGM3XFx1NzY4NFxcdThjYzdcXHU4YTBhXFx1ZmYwY1xcdThhY2JcXHU1M2MzXFx1OTViMVxcdTYyMTFcXHU1MDExXFx1NzY4NCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFxcdTY1M2ZcXHU3YjU2PC9hPiBcXHVmZjAxXFx1NjMwOVxcdTRlMGJcXHU0ZTBiXFx1NjViOVxcdTc2ODRcXHUzMDBjXFx1NjNhNVxcdTUzZDcgQ29va2llXFx1MzAwZFxcdWZmMGNcXHU0ZWUzXFx1ODg2OFxcdTRmNjBcXHU1NDBjXFx1NjEwZlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU2MjQwXFx1NjcwOVxcdTc2ODQgQ29va2llXFx1ZmYwY1xcdTUzMDVcXHU1NDJiXFx1OTc1ZVxcdTVmYzVcXHU4OTgxXFx1NzY4NCBDb29raWVcXHUzMDAyXFx1NGY2MFxcdTUzZWZcXHU0ZWU1XFx1NjMwOVxcdTRlMGJcXHU1M2YzXFx1OTA4YVxcdTc2ODRcXHUzMDBjWFxcdTMwMGRcXHU0Zjg2XFx1NjJkMlxcdTdkNTVcXHU2MjQwXFx1NjcwOVxcdTk3NWVcXHU1ZmM1XFx1ODk4MVxcdTc2ODQgQ29va2llXFx1MzAwMlxcdTUyNGRcXHU1ZjgwXFx1MzAwY0Nvb2tpZSBcXHU4YTJkXFx1NWI5YVxcdTMwMGRcXHU2MjE2XFx1NjIxMVxcdTUwMTFcXHU3Njg0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgXFx1NjUzZlxcdTdiNTY8L2E+XFx1NGVlNVxcdThiOGFcXHU2NmY0XFx1NGY2MFxcdTc2ODQgQ29va2llIFxcdThhMmRcXHU1YjlhXFx1ZmYwY1xcdTRmNjBcXHU5NmE4XFx1NjY0MlxcdTUzZWZcXHU0ZWU1XFx1NTNkNlxcdTZkODhcXHU1NDBjXFx1NjEwZlxcdTc2ODRcXHU2YzdhXFx1NWI5YVxcdTMwMDInLENPT0tJRV9QT1BVUF9FVTonXFx1NTVlOFxcdWZmMDFcXHU2MjExXFx1NTAxMVxcdTU3MjhcXHU2YjY0XFx1N2RiMlxcdTdhZDlcXHU0ZTJkXFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTUzY2FcXHU3NmY4XFx1OTVkY1xcdTYyODBcXHU4ODUzIChcXHU0ZWU1XFx1NGUwYlxcdTdkNzFcXHU3YTMxIENvb2tpZSlcXHVmZjBjXFx1NGUyNlxcdTUzMDVcXHU1NDJiXFx1N2IyY1xcdTRlMDlcXHU2NWI5IENvb2tpZSBcXHVmZjBjXFx1NGVlNVxcdTRmYmZcXHU1ZTZiXFx1NTJhOVxcdTdkYjJcXHU3YWQ5XFx1OTA0YlxcdTRmNWNcXHUzMDAxXFx1NjUzOVxcdTU1ODRcXHU3NTI4XFx1NjIzNlxcdTcwMGZcXHU4OWJkXFx1OWFkNFxcdTlhNTdcXHUzMDAxXFx1NzZlM1xcdTYzYTdcXHU2NTQ4XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTk4NmZcXHU3OTNhXFx1NzZmOFxcdTk1ZGNcXHU1ZWUzXFx1NTQ0YVxcdTMwMDJcXHU4MmU1XFx1ODk4MVxcdTZkZjFcXHU1MTY1XFx1NGU4NlxcdTg5ZTNcXHU2MjExXFx1NTAxMVxcdTU5ODJcXHU0ZjU1XFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTRlZTVcXHU1M2NhXFx1NGY2MFxcdTVjMGQgQ29va2llIFxcdTY3MDlcXHU1NGVhXFx1NGU5YlxcdTkwNzhcXHU2NGM3XFx1NzY4NFxcdThjYzdcXHU4YTBhXFx1ZmYwY1xcdThhY2JcXHU1M2MzXFx1OTViMVxcdTYyMTFcXHU1MDExXFx1NzY4NCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFxcdTY1M2ZcXHU3YjU2PC9hPiBcXHVmZjAxXFx1NjMwOVxcdTRlMGJcXHU0ZTBiXFx1NjViOVxcdTc2ODRcXHUzMDBjXFx1NjNhNVxcdTUzZDcgQ29va2llXFx1MzAwZFxcdWZmMGNcXHU0ZWUzXFx1ODg2OFxcdTRmNjBcXHU1NDBjXFx1NjEwZlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU2MjQwXFx1NjcwOVxcdTc2ODQgQ29va2llXFx1ZmYwY1xcdTUzMDVcXHU1NDJiXFx1OTc1ZVxcdTVmYzVcXHU4OTgxXFx1NzY4NCBDb29raWVcXHUzMDAyXFx1NGY2MFxcdTUzZWZcXHU0ZWU1XFx1NjMwOVxcdTRlMGJcXHU1M2YzXFx1OTA4YVxcdTc2ODRcXHUzMDBjWFxcdTMwMGRcXHU0Zjg2XFx1NjJkMlxcdTdkNTVcXHU2MjQwXFx1NjcwOVxcdTk3NWVcXHU1ZmM1XFx1ODk4MVxcdTc2ODQgQ29va2llXFx1MzAwMlxcdTUyNGRcXHU1ZjgwXFx1MzAwY0Nvb2tpZSBcXHU4YTJkXFx1NWI5YVxcdTMwMGRcXHU2MjE2XFx1NjIxMVxcdTUwMTFcXHU3Njg0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgXFx1NjUzZlxcdTdiNTY8L2E+XFx1NGVlNVxcdThiOGFcXHU2NmY0XFx1NGY2MFxcdTc2ODQgQ29va2llIFxcdThhMmRcXHU1YjlhXFx1ZmYwY1xcdTRmNjBcXHU5NmE4XFx1NjY0MlxcdTUzZWZcXHU0ZWU1XFx1NTNkNlxcdTZkODhcXHU1NDBjXFx1NjEwZlxcdTc2ODRcXHU2YzdhXFx1NWI5YVxcdTMwMDInLEFncmVlVGV4dDpcIlxcdTYzYTVcXHU1M2Q3IENvb2tpZVwiLFNldHRpbmdzVGV4dDpcIkNvb2tpZSBcXHU4YTJkXFx1NWI5YVwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiXFx1ODIwOVxcdTU4MzFcXHU0ZmI1XFx1NmIwYVwiLFNwb3RsaWdodDpcIlxcdTgwNWFcXHU1MTQ5XFx1NzFjOFwifSxcInpoLWNuXCI6e1wiU25hcCBJbmMuXCI6XCJTbmFwIEluYy5cIixTbmFwY2hhdDpcIlNuYXBjaGF0XCIsU3BlY3RhY2xlczpcIlNwZWN0YWNsZXNcIixMaXZlOlwiXFx1NzZmNFxcdTY0YWRcIixBZHM6XCJcXHU1ZTdmXFx1NTQ0YVwiLENvbXBhbnk6XCJcXHU1MTZjXFx1NTNmOFwiLEhvbWU6XCJcXHU0ZTNiXFx1OTg3NVwiLEJsb2c6XCJcXHU1MzVhXFx1NWJhMlwiLEpvYnM6XCJcXHU2MmRiXFx1OGQyNFxcdTdlYjNcXHU2MjRkXCIsQ2FyZWVyczpcIlxcdTRlOGJcXHU0ZTFhXCIsUHJlc3M6XCJcXHU2NWIwXFx1OTVmYlwiLE5ld3M6XCJcXHU4ZDQ0XFx1OGJhZlwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHU2NWIwXFx1OTVmYlxcdTU0YThcXHU4YmUyXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdThiZWRcXHU4YTAwXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiXFx1NGUwYlxcdThmN2QgU25hcGNoYXRcIixEb3dubG9hZDpcIlxcdTRlMGJcXHU4ZjdkXCIsS2l0OlwiXFx1NWRlNVxcdTUxNzdcXHU1MzA1XCIsU3RvcmllczpcIlxcdTY1NDVcXHU0ZThiXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTU1NDZcXHU1ZTk3XCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJpT1MgXFx1NzI0OCBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQgXFx1NzI0OCBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTc5M2VcXHU1MzNhXCIsU3VwcG9ydDpcIlxcdTY1MmZcXHU2MzAxXCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1NzkzZVxcdTdmYTRcXHU2MzA3XFx1NTM1N1wiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1NWI4OVxcdTUxNjhcXHU0ZTJkXFx1NWZjM1wiLFNuYXBjb2RlczpcIlNuYXBjb2RlXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlclwiLENyZWF0ZTpcIlxcdTZlZTRcXHU5NTVjXFx1NTQ4Y1xcdTcyNzlcXHU2NTQ4XFx1OTU1Y1xcdTU5MzRcIixNYXA6XCJcXHU1NzMwXFx1NTZmZVwiLEFkdmVydGlzaW5nOlwiXFx1NWU3ZlxcdTU0NGFcIixcIkJ1eSBBZHNcIjpcIlxcdThkMmRcXHU0ZTcwXFx1NWU3ZlxcdTU0NGFcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHU1ZTdmXFx1NTQ0YVxcdTY1M2ZcXHU3YjU2XCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTY1M2ZcXHU2Y2JiXFx1NWU3ZlxcdTU0NGFcXHU1ZTkzXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHU1NGMxXFx1NzI0Y1xcdTVmNjJcXHU4YzYxXFx1NjMwN1xcdTVmMTVcIixcIlByb21vdGlvbnMgUnVsZXNcIjpcIlxcdTYzYThcXHU1ZTdmXFx1ODljNFxcdTUyMTlcIixMZWdhbDpcIlxcdTZjZDVcXHU1ZjhiXCIsXCJUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHU0ZjdmXFx1NzUyOFxcdTY3NjFcXHU2YjNlXCIsSW1wcmVzc3VtOlwiXFx1NTE2Y1xcdTUzZjhcXHU0ZmUxXFx1NjA2ZlwiLFwiUHJpdmFjeSBQb2xpY3lcIjpcIlxcdTk2OTBcXHU3OWMxXFx1NjUzZlxcdTdiNTZcIixcIlByaXZhY3kgQ2VudGVyXCI6XCJcXHU5NjkwXFx1NzljMVxcdTY3NDNcXHU0ZTJkXFx1NWZjM1wiLFwiQ29va2llIFBvbGljeVwiOlwiQ29va2llIFxcdTY1M2ZcXHU3YjU2XCIsXCJNZW1vcmllcyBUZXJtcyBvZiBTZXJ2aWNlXCI6XCJcXHU1NmRlXFx1NWZjNlxcdTUyOWZcXHU4MGZkXFx1NjcwZFxcdTUyYTFcXHU2NzYxXFx1NmIzZVwiLENVU1RPTV9DUkVBVElWRV9UT09MU19UT1M6XCJcXHU1YmEyXFx1NTIzNlxcdTUyMWJcXHU0ZjVjXFx1NWRlNVxcdTUxNzdcXHU2NzYxXFx1NmIzZVwiLENPTU1VTklUWV9UT1M6XCJcXHU3OTNlXFx1NTMzYSBHZW9maWx0ZXIgXFx1Njc2MVxcdTZiM2VcIixMRU5TX1NUVURJT19UT1M6XCJMZW5zIFN0dWRpbyBcXHU2NzYxXFx1NmIzZVwiLFwiWW91ciBQcml2YWN5IENob2ljZXNcIjpcIlxcdTYwYThcXHU3Njg0XFx1OTY5MFxcdTc5YzFcXHU5MDA5XFx1NjJlOVwiLENPT0tJRV9TRVRUSU5HU19TRUNUSU9OUzp7TmVjZXNzYXJ5OntoZWFkbGluZTpcIlxcdTVmYzVcXHU5NzAwXFx1NzY4NCBDb29raWVcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHU2MjExXFx1NjViOVxcdTRmMWFcXHU0ZjdmXFx1NzUyOFxcdThmZDlcXHU0ZTliIENvb2tpZTwvYT4gXFx1Njc2NVxcdTVlMmVcXHU1MmE5XFx1N2Y1MVxcdTdhZDlcXHU4ZmQwXFx1ODQyNVxcdTMwMDJcXHU1NmUwXFx1NGUzYVxcdThmZDlcXHU0ZTliXFx1NjYyZlxcdTVmYzVcXHU5NzAwXFx1NzY4NCBDb29raWVcXHVmZjBjXFx1NjI0MFxcdTRlZTVcXHU0ZjYwXFx1NjVlMFxcdTZjZDVcXHU1YzA2XFx1NTE3NlxcdTUxNzNcXHU5NWVkXFx1MzAwMiddfSxQcmVmZXJlbmNlczp7aGVhZGxpbmU6XCJcXHU1MDRmXFx1NTk3ZFwiLGNvbnRlbnQ6Wyc8YSBjbGFzcz1cInRleHRhcnRpY2xlLWJ1dHRvblwiIGhyZWY9XCJodHRwczovL3NuYXAuY29tL3ByaXZhY3kvY29va2llLWluZm9ybWF0aW9uI1ByZWZlcmVuY2VzXCI+XFx1NjIxMVxcdTY1YjlcXHU0ZjdmXFx1NzUyOFxcdThmZDlcXHU0ZTliIENvb2tpZTwvYT4gXFx1Njc2NVxcdThiYjBcXHU0ZjRmXFx1NGY2MFxcdTc2ODRcXHU1MDRmXFx1NTk3ZFxcdTVlNzZcXHU2NTM5XFx1NTU4NFxcdTRmNjBcXHU1NzI4XFx1NjIxMVxcdTRlZWNcXHU3ZjUxXFx1N2FkOVxcdTRlMGFcXHU3Njg0XFx1NGY1M1xcdTlhOGNcXHUzMDAyJ119LFBlcmZvcm1hbmNlOntoZWFkbGluZTpcIlxcdTYwMjdcXHU4MGZkXFx1NGUwZVxcdTUyMDZcXHU2NzkwXCIsY29udGVudDpbJzxhIGNsYXNzPVwidGV4dGFydGljbGUtYnV0dG9uXCIgaHJlZj1cImh0dHBzOi8vc25hcC5jb20vcHJpdmFjeS9jb29raWUtaW5mb3JtYXRpb24jUGVyZm9ybWFuY2VcIj5cXHU2MjExXFx1NjViOVxcdTRmN2ZcXHU3NTI4XFx1OGZkOVxcdTRlOWIgQ29va2llPC9hPiBcXHU2NzY1XFx1NjUzNlxcdTk2YzZcXHU2NzA5XFx1NTE3M1xcdTRmNjBcXHU1OTgyXFx1NGY1NVxcdTRmN2ZcXHU3NTI4XFx1NjIxMVxcdTRlZWNcXHU3ZjUxXFx1N2FkOVxcdTc2ODRcXHU0ZmUxXFx1NjA2ZlxcdWZmMGNcXHU3NmQxXFx1NjNhN1xcdTdmNTFcXHU3YWQ5XFx1NjAyN1xcdTgwZmRcXHVmZjBjXFx1NGVlNVxcdTUzY2FcXHU2NTM5XFx1OGZkYlxcdTYyMTFcXHU0ZWVjXFx1NzY4NFxcdTdmNTFcXHU3YWQ5XFx1NjAyN1xcdTgwZmRcXHU1NDhjXFx1NGY2MFxcdTc2ODRcXHU0ZjUzXFx1OWE4Y1xcdTMwMDInXX0sTWFya2V0aW5nOntoZWFkbGluZTpcIlxcdTVlMDJcXHU1NzNhXFx1ODQyNVxcdTk1MDBcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHU2MjExXFx1NjViOVxcdTRmN2ZcXHU3NTI4XFx1OGZkOVxcdTRlOWIgQ29va2llPC9hPiBcXHU2NzY1XFx1NjNhOFxcdTkwMDFcXHU3NmY4XFx1NTE3M1xcdTVlN2ZcXHU1NDRhXFx1NWU3NlxcdTg4NjFcXHU5MWNmXFx1NjIxMVxcdTRlZWNcXHU1ZTdmXFx1NTQ0YVxcdTZkM2JcXHU1MmE4XFx1NzY4NFxcdTY1NDhcXHU2NzljXFx1MzAwMlxcdTYyMTFcXHU2NWI5XFx1NzY4NFxcdTdiMmNcXHU0ZTA5XFx1NjViOVxcdTVlN2ZcXHU1NDRhXFx1NTQwOFxcdTRmNWNcXHU0ZjE5XFx1NGYzNFxcdTUzZWZcXHU4MGZkXFx1NGY3ZlxcdTc1MjhcXHU4ZmQ5XFx1NGU5YiBDb29raWUgXFx1Njc2NVxcdTYzZDBcXHU0ZjliXFx1NGY2MFxcdTYxMWZcXHU1MTc0XFx1OGRhM1xcdTc2ODRcXHU0ZmUxXFx1NjA2ZlxcdWZmMGNcXHU1ZTc2XFx1NTcyOFxcdTUxNzZcXHU0ZWQ2XFx1N2Y1MVxcdTdhZDlcXHU0ZTBhXFx1NjI5NVxcdTY1M2VcXHU3NmY4XFx1NTE3M1xcdTVlN2ZcXHU1NDRhXFx1MzAwMiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTdiMmNcXHU0ZTA5XFx1NjViOVxcdTVlN2ZcXHU1NDRhXFx1NTQwOFxcdTRmNWNcXHU0ZjE5XFx1NGYzNFwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XFx1OTg4NlxcdTgyZjE8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTdiMmNcXHU0ZTA5XFx1NjViOVxcdTVlN2ZcXHU1NDRhXFx1NTQwOFxcdTRmNWNcXHU0ZjE5XFx1NGYzNFxcdWZmMWFcIixFZmZlY3RpdmVEYXRlOlwiXFx1NzUxZlxcdTY1NDhcXHU2NWU1XFx1NjcxZlxcdWZmMWEyMDE5IFxcdTVlNzQgMSBcXHU2NzA4IDE1IFxcdTY1ZTVcIixCb2R5OltcIlxcdTk2NjRcXHU0ZTg2XFx1OTAxYVxcdThmYzdcXHU2ZDRmXFx1ODljOFxcdTU2NjhcXHU2MjE2XFx1OGJiZVxcdTU5MDdcXHU3YmExXFx1NzQwNiBDb29raWUgXFx1NGU0YlxcdTU5MTZcXHVmZjBjXFx1NGY2MFxcdThmZDhcXHU1M2VmXFx1NGVlNVxcdTU3MjhcXHU0ZTBiXFx1NjViOVxcdTY2ZjRcXHU2NTM5IENvb2tpZSBcXHU4YmJlXFx1N2Y2ZVxcdTMwMDJcXHU4YmY3XFx1NmNlOFxcdTYxMGZcXHVmZjBjXFx1NjdkMFxcdTRlOWIgQ29va2llIFxcdTY2MmZcXHU2MjExXFx1NGVlY1xcdTdmNTFcXHU3YWQ5XFx1OGZkMFxcdTg4NGNcXHU2MjQwXFx1NWZjNVxcdTk3MDBcXHU3Njg0XFx1ZmYwY1xcdTY1ZTBcXHU2Y2Q1XFx1OTAxYVxcdThmYzdcXHU4ZmQ5XFx1NGU5YlxcdThiYmVcXHU3ZjZlXFx1Njc2NVxcdTk2M2JcXHU2YjYyXFx1MzAwMlwiXSxUaXRsZTpcIkNvb2tpZSBcXHU4YmJlXFx1N2Y2ZVwiLENPT0tJRV9QT1BVUDonXFx1NTVlOFxcdWZmMDFcXHU2MjExXFx1NGVlY1xcdTU3MjhcXHU2YjY0XFx1N2Y1MVxcdTdhZDlcXHU0ZjdmXFx1NzUyOFxcdTIyMTlDb29raWVcXHUyMjE5XFx1NTQ4Y1xcdTdjN2JcXHU0ZjNjXFx1NjI4MFxcdTY3MmZcXHVmZjA4XFx1NGVlNVxcdTRlMGJcXHU3ZWRmXFx1NzlmMFxcdTIwMWNDb29raWVcXHUyMDFkXFx1ZmYwOVxcdWZmMGNcXHU1MTc2XFx1NGUyZFxcdTUzMDVcXHU2MmVjXFx1N2IyY1xcdTRlMDlcXHU2NWI5IENvb2tpZVxcdWZmMGNcXHU3NTI4XFx1NGU4ZVxcdTVlMmVcXHU1MmE5XFx1N2Y1MVxcdTdhZDlcXHU4ZmQwXFx1ODQyNVxcdTMwMDFcXHU2NTM5XFx1NTU4NFxcdTRmNjBcXHU3Njg0XFx1NmQ0ZlxcdTg5YzhcXHU0ZjUzXFx1OWE4Y1xcdTMwMDFcXHU3NmQxXFx1NjNhN1xcdTYwMjdcXHU4MGZkXFx1ZmYwY1xcdTRlZTVcXHU1M2NhXFx1NzUyOFxcdTRlOGVcXHU1ZTdmXFx1NTQ0YVxcdTc2ZWVcXHU3Njg0XFx1MzAwMlxcdTY3MDlcXHU1MTczXFx1NjIxMVxcdTRlZWNcXHU1OTgyXFx1NGY1NVxcdTRmN2ZcXHU3NTI4IENvb2tpZSBcXHU0ZWU1XFx1NTNjYVxcdTRmNjBcXHU3Njg0IENvb2tpZSBcXHU5MDA5XFx1NjJlOVxcdTc2ODRcXHU4YmU2XFx1N2VjNlxcdTRmZTFcXHU2MDZmXFx1ZmYwY1xcdThiZjdcXHU1M2MyXFx1OTYwNVxcdTYyMTFcXHU0ZWVjXFx1NzY4NCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFxcdTY1M2ZcXHU3YjU2PC9hPlxcdWZmMDFcXHU3MGI5XFx1NTFmYlxcdTRlMGJcXHU5NzYyXFx1NzY4NFxcdTIwMWNcXHU2M2E1XFx1NTNkNyBDb29raWVcXHUyMDFkXFx1ZmYwY1xcdTUzNzNcXHU4ODY4XFx1NzkzYVxcdTRmNjBcXHU1NDBjXFx1NjEwZlxcdTYyMTFcXHU0ZWVjXFx1NGY3ZlxcdTc1MjhcXHU2MjQwXFx1NjcwOSBDb29raWVcXHVmZjBjXFx1NTMwNVxcdTYyZWNcXHU5NzVlXFx1NWZjNVxcdTg5ODFcXHU3Njg0IENvb2tpZVxcdTMwMDJcXHU0ZjYwXFx1NTNlZlxcdTRlZTVcXHU5MDFhXFx1OGZjN1xcdTcwYjlcXHU1MWZiXFx1NTNmM1xcdThmYjlcXHU3Njg0XFx1MjAxY1hcXHUyMDFkXFx1N2IyNlxcdTUzZjdcXHVmZjBjXFx1NjJkMlxcdTdlZGRcXHU0ZjdmXFx1NzUyOFxcdTYyNDBcXHU2NzA5XFx1OTc1ZVxcdTVmYzVcXHU4OTgxXFx1NzY4NCBDb29raWVcXHUzMDAyXFx1NGY2MFxcdTk2OGZcXHU2NWY2XFx1NTNlZlxcdTRlZTVcXHU4YmJmXFx1OTVlZVxcdTIwMWNDb29raWUgXFx1OGJiZVxcdTdmNmVcXHUyMDFkXFx1NjIxNlxcdTYyMTFcXHU0ZWVjXFx1NzY4NCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFxcdThiYmVcXHU3ZjZlPC9hPlxcdTRlZTVcXHU0ZmVlXFx1NjUzOSBDb29raWUgXFx1OGJiZVxcdTdmNmVcXHVmZjBjXFx1NWU3NlxcdTY0YTRcXHU1NmRlXFx1NTQwY1xcdTYxMGZcXHUzMDAyJyxDT09LSUVfUE9QVVBfRVU6J1xcdTU1ZThcXHVmZjAxXFx1NjIxMVxcdTRlZWNcXHU1NzI4XFx1NmI2NFxcdTdmNTFcXHU3YWQ5XFx1NGY3ZlxcdTc1MjhcXHUyMjE5Q29va2llXFx1MjIxOVxcdTU0OGNcXHU3YzdiXFx1NGYzY1xcdTYyODBcXHU2NzJmXFx1ZmYwOFxcdTRlZTVcXHU0ZTBiXFx1N2VkZlxcdTc5ZjBcXHUyMDFjQ29va2llXFx1MjAxZFxcdWZmMDlcXHVmZjBjXFx1NTE3NlxcdTRlMmRcXHU1MzA1XFx1NjJlY1xcdTdiMmNcXHU0ZTA5XFx1NjViOSBDb29raWVcXHVmZjBjXFx1NzUyOFxcdTRlOGVcXHU1ZTJlXFx1NTJhOVxcdTdmNTFcXHU3YWQ5XFx1OGZkMFxcdTg0MjVcXHUzMDAxXFx1NjUzOVxcdTU1ODRcXHU0ZjYwXFx1NzY4NFxcdTZkNGZcXHU4OWM4XFx1NGY1M1xcdTlhOGNcXHUzMDAxXFx1NzZkMVxcdTYzYTdcXHU2MDI3XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTc1MjhcXHU0ZThlXFx1NWU3ZlxcdTU0NGFcXHU3NmVlXFx1NzY4NFxcdTMwMDJcXHU2NzA5XFx1NTE3M1xcdTYyMTFcXHU0ZWVjXFx1NTk4MlxcdTRmNTVcXHU0ZjdmXFx1NzUyOCBDb29raWUgXFx1NGVlNVxcdTUzY2FcXHU0ZjYwXFx1NzY4NCBDb29raWUgXFx1OTAwOVxcdTYyZTlcXHU3Njg0XFx1OGJlNlxcdTdlYzZcXHU0ZmUxXFx1NjA2ZlxcdWZmMGNcXHU4YmY3XFx1NTNjMlxcdTk2MDVcXHU2MjExXFx1NGVlY1xcdTc2ODQgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBcXHU2NTNmXFx1N2I1NjwvYT5cXHVmZjAxXFx1NzBiOVxcdTUxZmJcXHU0ZTBiXFx1OTc2MlxcdTc2ODRcXHUyMDFjXFx1NjNhNVxcdTUzZDcgQ29va2llXFx1MjAxZFxcdWZmMGNcXHU1MzczXFx1ODg2OFxcdTc5M2FcXHU0ZjYwXFx1NTQwY1xcdTYxMGZcXHU2MjExXFx1NGVlY1xcdTRmN2ZcXHU3NTI4XFx1NjI0MFxcdTY3MDkgQ29va2llXFx1ZmYwY1xcdTUzMDVcXHU2MmVjXFx1OTc1ZVxcdTVmYzVcXHU4OTgxXFx1NzY4NCBDb29raWVcXHUzMDAyXFx1NGY2MFxcdTUzZWZcXHU0ZWU1XFx1OTAxYVxcdThmYzdcXHU3MGI5XFx1NTFmYlxcdTUzZjNcXHU4ZmI5XFx1NzY4NFxcdTIwMWNYXFx1MjAxZFxcdTdiMjZcXHU1M2Y3XFx1ZmYwY1xcdTYyZDJcXHU3ZWRkXFx1NGY3ZlxcdTc1MjhcXHU2MjQwXFx1NjcwOVxcdTk3NWVcXHU1ZmM1XFx1ODk4MVxcdTc2ODQgQ29va2llXFx1MzAwMlxcdTRmNjBcXHU5NjhmXFx1NjVmNlxcdTUzZWZcXHU0ZWU1XFx1OGJiZlxcdTk1ZWVcXHUyMDFjQ29va2llIFxcdThiYmVcXHU3ZjZlXFx1MjAxZFxcdTYyMTZcXHU2MjExXFx1NGVlY1xcdTc2ODQgPGEgaHJlZj1cIntDT09LSUVfUE9MSUNZX1VSTH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkNvb2tpZSBcXHU4YmJlXFx1N2Y2ZTwvYT5cXHU0ZWU1XFx1NGZlZVxcdTY1MzkgQ29va2llIFxcdThiYmVcXHU3ZjZlXFx1ZmYwY1xcdTVlNzZcXHU2NGE0XFx1NTZkZVxcdTU0MGNcXHU2MTBmXFx1MzAwMicsQWdyZWVUZXh0OlwiXFx1NjNhNVxcdTUzZDcgQ29va2llXCIsU2V0dGluZ3NUZXh0OlwiQ29va2llIFxcdThiYmVcXHU3ZjZlXCIsXCJSZXBvcnQgSW5mcmluZ2VtZW50XCI6XCJcXHU0ZTNlXFx1NjJhNVxcdTRmYjVcXHU2NzQzXCIsU3BvdGxpZ2h0OlwiXFx1ODA1YVxcdTUxNDlcXHU3MDZmXCJ9LFwiemgtdHdcIjp7XCJTbmFwIEluYy5cIjpcIlNuYXAgSW5jLlwiLFNuYXBjaGF0OlwiU25hcGNoYXRcIixTcGVjdGFjbGVzOlwiU3BlY3RhY2xlc1wiLExpdmU6XCJcXHU1MzczXFx1NjY0MlwiLEFkczpcIlxcdTVlZTNcXHU1NDRhXCIsQ29tcGFueTpcIlxcdTUxNmNcXHU1M2Y4XCIsSG9tZTpcIlxcdTk5OTZcXHU5ODAxXCIsQmxvZzpcIlxcdTkwZThcXHU4NDNkXFx1NjgzY1wiLEpvYnM6XCJcXHU1ZGU1XFx1NGY1Y1xcdTZhNWZcXHU2NzAzXCIsQ2FyZWVyczpcIlxcdTRlOGJcXHU2OTZkXCIsUHJlc3M6XCJcXHU1YTkyXFx1OWFkNFwiLE5ld3M6XCJcXHU2NWIwXFx1ODA1ZVwiLFwiUHJlc3MgSW5xdWlyaWVzXCI6XCJcXHU2NWIwXFx1ODA1ZVxcdThhZWVcXHU4YTYyXCIsVHdpdHRlcjpcIlR3aXR0ZXJcIixMYW5ndWFnZTpcIlxcdThhOWVcXHU4YTAwXCIsXCJEb3dubG9hZCBTbmFwY2hhdFwiOlwiXFx1NGUwYlxcdThmMDkgU25hcGNoYXRcIixEb3dubG9hZDpcIlxcdTRlMGJcXHU4ZjA5XCIsS2l0OlwiXFx1NWRlNVxcdTUxNzdcXHU3ZDQ0XCIsU3RvcmllczpcIlxcdTY1NDVcXHU0ZThiXCIsXCJMZW5zIFN0dWRpb1wiOlwiTGVucyBTdHVkaW9cIixTdG9yZTpcIlxcdTU1NDZcXHU1ZTk3XCIsXCJTbmFwY2hhdCBmb3IgaU9TXCI6XCJpT1MgXFx1NzI0OCBTbmFwY2hhdFwiLFwiU25hcGNoYXQgZm9yIEFuZHJvaWRcIjpcIkFuZHJvaWQgXFx1NzI0OCBTbmFwY2hhdFwiLENvbW11bml0eTpcIlxcdTc5M2VcXHU3ZmE0XCIsU3VwcG9ydDpcIlxcdTY1MmZcXHU2M2Y0XCIsXCJDb21tdW5pdHkgR3VpZGVsaW5lc1wiOlwiXFx1NzkzZVxcdTdmYTRcXHU2MzA3XFx1NTM1N1wiLFwiU2FmZXR5IENlbnRlclwiOlwiXFx1NWI4OVxcdTUxNjhcXHU0ZTJkXFx1NWZjM1wiLFNuYXBjb2RlczpcIlNuYXBjb2RlXCIsR2VvZmlsdGVyczpcIkdlb2ZpbHRlclwiLENyZWF0ZTpcIlxcdTZmZmVcXHU5M2UxXFx1NTQ4Y1xcdTcyNzlcXHU2NTQ4XFx1OTNlMVxcdTk4MmRcIixNYXA6XCJcXHU1NzMwXFx1NTcxNlwiLEFkdmVydGlzaW5nOlwiXFx1NWVlM1xcdTU0NGFcIixcIkJ1eSBBZHNcIjpcIlxcdThjZmNcXHU4Y2I3XFx1NWVlM1xcdTU0NGFcIixcIkFkdmVydGlzaW5nIFBvbGljaWVzXCI6XCJcXHU1ZWUzXFx1NTQ0YVxcdTY1M2ZcXHU3YjU2XCIsXCJQb2xpdGljYWwgQWRzIExpYnJhcnlcIjpcIlxcdTY1M2ZcXHU2Y2JiXFx1NWVlM1xcdTU0NGFcXHU1ZWFiXCIsXCJCcmFuZCBHdWlkZWxpbmVzXCI6XCJcXHU1NGMxXFx1NzI0Y1xcdTg5OGZcXHU3YmM0XCIsXCJQcm9tb3Rpb25zIFJ1bGVzXCI6XCJcXHU2M2E4XFx1NWVlM1xcdTg5OGZcXHU1MjQ3XCIsTGVnYWw6XCJcXHU2Y2Q1XFx1NWY4YlwiLFwiVGVybXMgb2YgU2VydmljZVwiOlwiXFx1NjcwZFxcdTUyZDlcXHU2ODlkXFx1NmIzZVwiLEltcHJlc3N1bTpcIlxcdTcyNDhcXHU2NzJjXFx1OGFhYVxcdTY2MGVcIixcIlByaXZhY3kgUG9saWN5XCI6XCJcXHU5NmIxXFx1NzljMVxcdTY1M2ZcXHU3YjU2XCIsXCJQcml2YWN5IENlbnRlclwiOlwiXFx1OTZiMVxcdTc5YzFcXHU2YjBhXFx1NGUyZFxcdTVmYzNcIixcIkNvb2tpZSBQb2xpY3lcIjpcIkNvb2tpZSBcXHU2NTNmXFx1N2I1NlwiLFwiTWVtb3JpZXMgVGVybXMgb2YgU2VydmljZVwiOlwiXFx1NTZkZVxcdTYxYjZcXHU2NzBkXFx1NTJkOVxcdTY4OWRcXHU2YjNlXCIsQ1VTVE9NX0NSRUFUSVZFX1RPT0xTX1RPUzpcIlxcdTViYTJcXHU4OGZkXFx1NTI3NVxcdTRmNWNcXHU1ZGU1XFx1NTE3N1xcdTY4OWRcXHU2YjNlXCIsQ09NTVVOSVRZX1RPUzpcIlxcdTc5M2VcXHU3ZmE0XFx1NTczMFxcdTc0MDZcXHU2ZmZlXFx1OTNlMVxcdTY4OWRcXHU2YjNlXCIsTEVOU19TVFVESU9fVE9TOlwiTGVucyBTdHVkaW8gXFx1Njg5ZFxcdTZiM2VcIixcIllvdXIgUHJpdmFjeSBDaG9pY2VzXCI6XCJcXHU2MGE4XFx1NzY4NFxcdTk2YjFcXHU3OWMxXFx1OTA3OFxcdTY0YzdcIixDT09LSUVfU0VUVElOR1NfU0VDVElPTlM6e05lY2Vzc2FyeTp7aGVhZGxpbmU6XCJcXHU1ZmM1XFx1OTcwMCBDb29raWVcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNOZWNlc3NhcnlcIj5cXHU2MjExXFx1NTAxMVxcdTkwMGZcXHU5MDRlXFx1NGY3ZlxcdTc1MjhcXHU5MDE5XFx1NGU5YiBDb29raWU8L2E+IFxcdTVlNmJcXHU1MmE5XFx1N2RiMlxcdTdhZDlcXHU5MDRiXFx1NGY1Y1xcdTMwMDJcXHU3NTMxXFx1NjViY1xcdTkwMTlcXHU0ZTliIENvb2tpZSBcXHU1ZmM1XFx1NGUwZFxcdTUzZWZcXHU1YzExXFx1ZmYwY1xcdTYyNDBcXHU0ZWU1XFx1NGY2MFxcdTcxMjFcXHU2Y2Q1XFx1NWMwN1xcdTUxNzZcXHU5NWRjXFx1OTU4OVxcdTMwMDInXX0sUHJlZmVyZW5jZXM6e2hlYWRsaW5lOlwiXFx1NTA0ZlxcdTU5N2RcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQcmVmZXJlbmNlc1wiPlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU5MDE5XFx1NGU5YiBDb29raWU8L2E+IFxcdTRmODZcXHU4YTE4XFx1NGY0ZlxcdTRmNjBcXHU3Njg0XFx1NTA0ZlxcdTU5N2RcXHVmZjBjXFx1NGUyNlxcdTYzZDBcXHU1MzQ3XFx1NGY2MFxcdTU3MjhcXHU2MjExXFx1NTAxMVxcdTdkYjJcXHU3YWQ5XFx1NGUwYVxcdTc2ODRcXHU5YWQ0XFx1OWE1N1xcdTMwMDInXX0sUGVyZm9ybWFuY2U6e2hlYWRsaW5lOlwiXFx1NjU0OFxcdTgwZmRcXHU4MjA3XFx1NTIwNlxcdTY3OTBcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNQZXJmb3JtYW5jZVwiPlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU5MDE5XFx1NGU5YiBDb29raWU8L2E+IFxcdTRmODZcXHU2NTM2XFx1OTZjNlxcdTY3MDlcXHU5NWRjXFx1NGY2MFxcdTU5ODJcXHU0ZjU1XFx1NGY3ZlxcdTc1MjhcXHU2MjExXFx1NTAxMVxcdTdkYjJcXHU3YWQ5XFx1MzAwMVxcdTc2ZTNcXHU2M2E3XFx1N2RiMlxcdTdhZDlcXHU2NTQ4XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTY1MzlcXHU1NTg0XFx1NjIxMVxcdTUwMTFcXHU3ZGIyXFx1N2FkOVxcdTY1NDhcXHU4MGZkXFx1NTQ4Y1xcdTlhZDRcXHU5YTU3XFx1NzY4NFxcdThjYzdcXHU4YTBhXFx1MzAwMiddfSxNYXJrZXRpbmc6e2hlYWRsaW5lOlwiXFx1ODg0Y1xcdTkyYjdcIixjb250ZW50OlsnPGEgY2xhc3M9XCJ0ZXh0YXJ0aWNsZS1idXR0b25cIiBocmVmPVwiaHR0cHM6Ly9zbmFwLmNvbS9wcml2YWN5L2Nvb2tpZS1pbmZvcm1hdGlvbiNNYXJrZXRpbmdcIj5cXHU2MjExXFx1NTAxMVxcdTRmN2ZcXHU3NTI4XFx1OTAxOVxcdTRlOWIgQ29va2llPC9hPiBcXHU0Zjg2XFx1NjNkMFxcdTRmOWJcXHU3NmY4XFx1OTVkY1xcdTVlZTNcXHU1NDRhXFx1ZmYwY1xcdTRlMjZcXHU4ODYxXFx1OTFjZlxcdTYyMTFcXHU1MDExXFx1NWVlM1xcdTU0NGFcXHU2ZDNiXFx1NTJkNVxcdTc2ODRcXHU2MjEwXFx1NjU0OFxcdTMwMDJcXHU2MjExXFx1NTAxMVxcdTc2ODRcXHU3YjJjXFx1NGUwOVxcdTY1YjlcXHU1ZWUzXFx1NTQ0YVxcdTU0MDhcXHU0ZjVjXFx1NTkyNVxcdTRmMzRcXHU1M2VmXFx1ODBmZFxcdTY3MDNcXHU0ZjdmXFx1NzUyOFxcdTcwMGZcXHU4OWJkXFx1OGExOFxcdTkzMDRcXHU0Zjg2XFx1OGExOFxcdTkzMDRcXHU0ZjYwXFx1NzY4NFxcdTgyMDhcXHU4ZGEzXFx1ZmYwY1xcdTVlNzZcXHU1NzI4XFx1NTE3NlxcdTViODNcXHU3ZGIyXFx1N2FkOVxcdTRlMGFcXHU5ODZmXFx1NzkzYVxcdTc2ZjhcXHU5NWRjXFx1NzY4NFxcdTVlZTNcXHU1NDRhXFx1MzAwMiddfX0sVGhpcmRQYXJ0eUFkdmVydGlzZXJzVGV4dDpcIlxcdTdiMmNcXHU0ZTA5XFx1NjViOVxcdTVlZTNcXHU1NDRhXFx1NTQwOFxcdTRmNWNcXHU1OTI1XFx1NGYzNFwiLEFkdmVydGlzZXJzTGlzdDpbJzxhIGhyZWY9XCJodHRwczovL2hlbHAudHdpdHRlci5jb20vcnVsZXMtYW5kLXBvbGljaWVzL3R3aXR0ZXItY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+VHdpdHRlcjwvYT4nLCc8YSBocmVmPVwiaHR0cHM6Ly9wb2xpY3kucGludGVyZXN0LmNvbS9jb29raWVzXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5QaW50ZXJlc3Q8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+R29vZ2xlPC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5saW5rZWRpbi5jb20vbGVnYWwvY29va2llLXBvbGljeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+TGlua2VkSW48L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vcHJpdmFjeS5taWNyb3NvZnQuY29tL3ByaXZhY3lzdGF0ZW1lbnRcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkJpbmc8L2E+JywnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnNhbGVzZm9yY2UuY29tL2NvbXBhbnkvcHJpdmFjeVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+UGFyZG90PC9hPicsJzxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vcG9saWNpZXMvY29va2llcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPkZhY2Vib29rPC9hPiddLFRoaXJkUGFydHlBZHZlcnRpc2Vyc1BvcHVwVGV4dDpcIlxcdTdiMmNcXHU0ZTA5XFx1NjViOVxcdTVlZTNcXHU1NDRhXFx1NTQwOFxcdTRmNWNcXHU1OTI1XFx1NGYzNFxcdWZmMWFcIixFZmZlY3RpdmVEYXRlOlwiXFx1NzUxZlxcdTY1NDhcXHU2NWU1XFx1NjcxZlxcdWZmMWEyMDE5IFxcdTVlNzQgMSBcXHU2NzA4IDE1IFxcdTY1ZTVcIixCb2R5OltcIlxcdTk2NjRcXHU0ZTg2XFx1OTAwZlxcdTkwNGVcXHU3MDBmXFx1ODliZFxcdTU2NjhcXHU2MjE2XFx1ODhkZFxcdTdmNmVcXHU0Zjg2XFx1N2JhMVxcdTc0MDYgQ29va2llIFxcdTRlNGJcXHU1OTE2XFx1ZmYwY1xcdTRmNjBcXHU5MDg0XFx1NTNlZlxcdTRlZTVcXHU1NzI4XFx1NGUwYlxcdTY1YjlcXHU2NmY0XFx1NjUzOSBDb29raWUgXFx1OGEyZFxcdTViOWFcXHUzMDAyXFx1OGFjYlxcdTZjZThcXHU2MTBmXFx1ZmYwY1xcdTY3ZDBcXHU0ZTliIENvb2tpZSBcXHU2NjJmXFx1OTA0YlxcdTg4NGNcXHU2MjExXFx1NTAxMVxcdTdkYjJcXHU3YWQ5XFx1NWZjNVxcdTk3MDBcXHU3NTI4XFx1NTIzMFxcdTc2ODRcXHVmZjBjXFx1NzEyMVxcdTZjZDVcXHU1MjI5XFx1NzUyOFxcdThhMmRcXHU1YjlhXFx1NGY4NlxcdTk2M2JcXHU2NGNiXFx1MzAwMlwiXSxUaXRsZTpcIkNvb2tpZSBcXHU4YTJkXFx1NWI5YVwiLENPT0tJRV9QT1BVUDonXFx1NTVlOFxcdWZmMDFcXHU2MjExXFx1NTAxMVxcdTU3MjhcXHU2YjY0XFx1N2RiMlxcdTdhZDlcXHU0ZTJkXFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTUzY2FcXHU3NmY4XFx1OTVkY1xcdTYyODBcXHU4ODUzIChcXHU0ZWU1XFx1NGUwYlxcdTdkNzFcXHU3YTMxIENvb2tpZSlcXHVmZjBjXFx1NGUyNlxcdTUzMDVcXHU1NDJiXFx1N2IyY1xcdTRlMDlcXHU2NWI5IENvb2tpZSBcXHVmZjBjXFx1NGVlNVxcdTRmYmZcXHU1ZTZiXFx1NTJhOVxcdTdkYjJcXHU3YWQ5XFx1OTA0YlxcdTRmNWNcXHUzMDAxXFx1NjUzOVxcdTU1ODRcXHU3NTI4XFx1NjIzNlxcdTcwMGZcXHU4OWJkXFx1OWFkNFxcdTlhNTdcXHUzMDAxXFx1NzZlM1xcdTYzYTdcXHU2NTQ4XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTk4NmZcXHU3OTNhXFx1NzZmOFxcdTk1ZGNcXHU1ZWUzXFx1NTQ0YVxcdTMwMDJcXHU4MmU1XFx1ODk4MVxcdTZkZjFcXHU1MTY1XFx1NGU4NlxcdTg5ZTNcXHU2MjExXFx1NTAxMVxcdTU5ODJcXHU0ZjU1XFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTRlZTVcXHU1M2NhXFx1NGY2MFxcdTVjMGQgQ29va2llIFxcdTY3MDlcXHU1NGVhXFx1NGU5YlxcdTkwNzhcXHU2NGM3XFx1NzY4NFxcdThjYzdcXHU4YTBhXFx1ZmYwY1xcdThhY2JcXHU1M2MzXFx1OTViMVxcdTYyMTFcXHU1MDExXFx1NzY4NCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFxcdTY1M2ZcXHU3YjU2PC9hPiBcXHVmZjAxXFx1NjMwOVxcdTRlMGJcXHU0ZTBiXFx1NjViOVxcdTc2ODRcXHUzMDBjXFx1NjNhNVxcdTUzZDcgQ29va2llXFx1MzAwZFxcdWZmMGNcXHU0ZWUzXFx1ODg2OFxcdTRmNjBcXHU1NDBjXFx1NjEwZlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU2MjQwXFx1NjcwOVxcdTc2ODQgQ29va2llXFx1ZmYwY1xcdTUzMDVcXHU1NDJiXFx1OTc1ZVxcdTVmYzVcXHU4OTgxXFx1NzY4NCBDb29raWVcXHUzMDAyXFx1NGY2MFxcdTUzZWZcXHU0ZWU1XFx1NjMwOVxcdTRlMGJcXHU1M2YzXFx1OTA4YVxcdTc2ODRcXHUzMDBjWFxcdTMwMGRcXHU0Zjg2XFx1NjJkMlxcdTdkNTVcXHU2MjQwXFx1NjcwOVxcdTk3NWVcXHU1ZmM1XFx1ODk4MVxcdTc2ODQgQ29va2llXFx1MzAwMlxcdTUyNGRcXHU1ZjgwXFx1MzAwY0Nvb2tpZSBcXHU4YTJkXFx1NWI5YVxcdTMwMGRcXHU2MjE2XFx1NjIxMVxcdTUwMTFcXHU3Njg0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgXFx1NjUzZlxcdTdiNTY8L2E+XFx1NGVlNVxcdThiOGFcXHU2NmY0XFx1NGY2MFxcdTc2ODQgQ29va2llIFxcdThhMmRcXHU1YjlhXFx1ZmYwY1xcdTRmNjBcXHU5NmE4XFx1NjY0MlxcdTUzZWZcXHU0ZWU1XFx1NTNkNlxcdTZkODhcXHU1NDBjXFx1NjEwZlxcdTc2ODRcXHU2YzdhXFx1NWI5YVxcdTMwMDInLENPT0tJRV9QT1BVUF9FVTonXFx1NTVlOFxcdWZmMDFcXHU2MjExXFx1NTAxMVxcdTU3MjhcXHU2YjY0XFx1N2RiMlxcdTdhZDlcXHU0ZTJkXFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTUzY2FcXHU3NmY4XFx1OTVkY1xcdTYyODBcXHU4ODUzIChcXHU0ZWU1XFx1NGUwYlxcdTdkNzFcXHU3YTMxIENvb2tpZSlcXHVmZjBjXFx1NGUyNlxcdTUzMDVcXHU1NDJiXFx1N2IyY1xcdTRlMDlcXHU2NWI5IENvb2tpZSBcXHVmZjBjXFx1NGVlNVxcdTRmYmZcXHU1ZTZiXFx1NTJhOVxcdTdkYjJcXHU3YWQ5XFx1OTA0YlxcdTRmNWNcXHUzMDAxXFx1NjUzOVxcdTU1ODRcXHU3NTI4XFx1NjIzNlxcdTcwMGZcXHU4OWJkXFx1OWFkNFxcdTlhNTdcXHUzMDAxXFx1NzZlM1xcdTYzYTdcXHU2NTQ4XFx1ODBmZFxcdWZmMGNcXHU0ZWU1XFx1NTNjYVxcdTk4NmZcXHU3OTNhXFx1NzZmOFxcdTk1ZGNcXHU1ZWUzXFx1NTQ0YVxcdTMwMDJcXHU4MmU1XFx1ODk4MVxcdTZkZjFcXHU1MTY1XFx1NGU4NlxcdTg5ZTNcXHU2MjExXFx1NTAxMVxcdTU5ODJcXHU0ZjU1XFx1NGY3ZlxcdTc1MjggQ29va2llIFxcdTRlZTVcXHU1M2NhXFx1NGY2MFxcdTVjMGQgQ29va2llIFxcdTY3MDlcXHU1NGVhXFx1NGU5YlxcdTkwNzhcXHU2NGM3XFx1NzY4NFxcdThjYzdcXHU4YTBhXFx1ZmYwY1xcdThhY2JcXHU1M2MzXFx1OTViMVxcdTYyMTFcXHU1MDExXFx1NzY4NCA8YSBocmVmPVwie0NPT0tJRV9QT0xJQ1lfVVJMfVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+Q29va2llIFxcdTY1M2ZcXHU3YjU2PC9hPiBcXHVmZjAxXFx1NjMwOVxcdTRlMGJcXHU0ZTBiXFx1NjViOVxcdTc2ODRcXHUzMDBjXFx1NjNhNVxcdTUzZDcgQ29va2llXFx1MzAwZFxcdWZmMGNcXHU0ZWUzXFx1ODg2OFxcdTRmNjBcXHU1NDBjXFx1NjEwZlxcdTYyMTFcXHU1MDExXFx1NGY3ZlxcdTc1MjhcXHU2MjQwXFx1NjcwOVxcdTc2ODQgQ29va2llXFx1ZmYwY1xcdTUzMDVcXHU1NDJiXFx1OTc1ZVxcdTVmYzVcXHU4OTgxXFx1NzY4NCBDb29raWVcXHUzMDAyXFx1NGY2MFxcdTUzZWZcXHU0ZWU1XFx1NjMwOVxcdTRlMGJcXHU1M2YzXFx1OTA4YVxcdTc2ODRcXHUzMDBjWFxcdTMwMGRcXHU0Zjg2XFx1NjJkMlxcdTdkNTVcXHU2MjQwXFx1NjcwOVxcdTk3NWVcXHU1ZmM1XFx1ODk4MVxcdTc2ODQgQ29va2llXFx1MzAwMlxcdTUyNGRcXHU1ZjgwXFx1MzAwY0Nvb2tpZSBcXHU4YTJkXFx1NWI5YVxcdTMwMGRcXHU2MjE2XFx1NjIxMVxcdTUwMTFcXHU3Njg0IDxhIGhyZWY9XCJ7Q09PS0lFX1BPTElDWV9VUkx9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXJcIj5Db29raWUgXFx1NjUzZlxcdTdiNTY8L2E+XFx1NGVlNVxcdThiOGFcXHU2NmY0XFx1NGY2MFxcdTc2ODQgQ29va2llIFxcdThhMmRcXHU1YjlhXFx1ZmYwY1xcdTRmNjBcXHU5NmE4XFx1NjY0MlxcdTUzZWZcXHU0ZWU1XFx1NTNkNlxcdTZkODhcXHU1NDBjXFx1NjEwZlxcdTc2ODRcXHU2YzdhXFx1NWI5YVxcdTMwMDInLEFncmVlVGV4dDpcIlxcdTYzYTVcXHU1M2Q3IENvb2tpZVwiLFNldHRpbmdzVGV4dDpcIkNvb2tpZSBcXHU4YTJkXFx1NWI5YVwiLFwiUmVwb3J0IEluZnJpbmdlbWVudFwiOlwiXFx1ODIwOVxcdTU4MzFcXHU0ZmI1XFx1NmIwYVwiLFNwb3RsaWdodDpcIlxcdTgwNWFcXHU1MTQ5XFx1NzFjOFwifX07dC5kZWZhdWx0PW59LDI2MjI5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciByPW8obig2NzI5NCkpLGk9byhuKDQ1Njk3KSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gYShlKXtyZXR1cm4gYT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSxhKGUpfWZ1bmN0aW9uIHMoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIGMoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4hdHx8XCJvYmplY3RcIiE9PWEodCkmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0P2Z1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlfShlKTp0fWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGw9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0sbChlKX1mdW5jdGlvbiBkKGUsdCl7cmV0dXJuIGQ9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LGQoZSx0KX12YXIgcCxmLGgsZz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7cmV0dXJuIHModGhpcyx0KSx1KHRoaXMsbCh0KS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfXZhciBuLGksbztyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiZkKGUsdCl9KHQsZSksbj10LChpPVt7a2V5OlwicmVuZGVyXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ9ZS5vbkNoYW5nZSxuPWUuaXNUb2dnbGVkLGk9ZS5kaXNhYmxlZDtyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLHtjbGFzc05hbWU6XCJ0b2dnbGVcIn0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLHt0eXBlOlwiY2hlY2tib3hcIixvbkNoYW5nZTp0LGNoZWNrZWQ6ISFuLGRpc2FibGVkOml9KSxyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOlwic2xpZGVyIHJvdW5kXCJ9KSl9fV0pJiZjKG4ucHJvdG90eXBlLGkpLG8mJmMobixvKSx0fShyLmRlZmF1bHQuQ29tcG9uZW50KTt0LmRlZmF1bHQ9ZyxwPWcsZj1cInByb3BUeXBlc1wiLGg9e29uQ2hhbmdlOmkuZGVmYXVsdC5mdW5jLGlzVG9nZ2xlZDppLmRlZmF1bHQuYm9vbH0sZiBpbiBwP09iamVjdC5kZWZpbmVQcm9wZXJ0eShwLGYse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpwW2ZdPWh9LDczNTIxOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmdldENvb2tpZURvbWFpbj1mdW5jdGlvbihlKXt2YXIgdCxuLHI7aWYoZSlyZXR1cm4gZTt2YXIgaT0obnVsbCE9PSh0PW51bGw9PT0obj1kb2N1bWVudCl8fHZvaWQgMD09PW58fG51bGw9PT0ocj1uLmxvY2F0aW9uKXx8dm9pZCAwPT09cj92b2lkIDA6ci5ob3N0bmFtZSkmJnZvaWQgMCE9PXQ/dDpcIlwiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBhKGkpfSx0Ll9fZ2V0Q29va2llPWZ1bmN0aW9uKGUpe3JldHVybiBvLmRlZmF1bHQuZ2V0KGUpfSx0LnNldENvb2tpZT1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpcIlwiO28uZGVmYXVsdC5zZXQoZSx0LHtleHBpcmVzOjM2NSxzZWN1cmU6ITAsZG9tYWluOm59KX0sdC5lbmFibGVHb29nbGVUYWdNYW5hZ2VyPWZ1bmN0aW9uKGUsdCxuKXt3aW5kb3cmJih3aW5kb3dbXCJnYS1kaXNhYmxlLVwiLmNvbmNhdCh0KV09ITEsZnVuY3Rpb24oZSx0LG4scixpKXtlW3JdPWVbcl18fFtdLGVbcl0ucHVzaCh7XCJndG0uc3RhcnRcIjoobmV3IERhdGUpLmdldFRpbWUoKSxldmVudDpcImd0bS5qc1wifSk7dmFyIG89dC5nZXRFbGVtZW50c0J5VGFnTmFtZShuKVswXSxhPXQuY3JlYXRlRWxlbWVudChuKTthLmFzeW5jPSEwLGEuc3JjPVwiaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPVwiK2ksby5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG8pfSh3aW5kb3csZG9jdW1lbnQsXCJzY3JpcHRcIixcImRhdGFMYXllclwiLGUpLG4mJm4oKSl9LHQuZW5hYmxlR29vZ2xlQW5hbHl0aWNzPWZ1bmN0aW9uKGUsdCxuKXtpZih3aW5kb3cpaWYod2luZG93W1wiZ2EtZGlzYWJsZS1cIi5jb25jYXQoZSldPSExLGUuaW5jbHVkZXMoXCJVQS1cIikpYT13aW5kb3cscz1kb2N1bWVudCxjPVwic2NyaXB0XCIsdT1cImdhXCIsYS5Hb29nbGVBbmFseXRpY3NPYmplY3Q9dSxhLmdhPWEuZ2F8fGZ1bmN0aW9uKCl7KGEuZ2EucT1hLmdhLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9LGEuZ2EubD0xKm5ldyBEYXRlLGw9cy5jcmVhdGVFbGVtZW50KGMpLGQ9cy5nZXRFbGVtZW50c0J5VGFnTmFtZShjKVswXSxsLmFzeW5jPTEsbC5zcmM9XCJodHRwczovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanNcIixkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGwsZCksZ2EoXCJjcmVhdGVcIixlLFwiYXV0b1wiKSx0LmZvckVhY2goKGZ1bmN0aW9uKGUpe2dhKFwicmVxdWlyZVwiLGUubmFtZSxlLm9wdGlvbnMpfSkpLGdhKFwic2V0XCIsXCJhbm9ueW1pemVJcFwiLCEwKSxnYShcInNlbmRcIixcInBhZ2V2aWV3XCIpLG4mJm4oKTtlbHNle3ZhciByLGk9ZnVuY3Rpb24oKXtkYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpfTt3aW5kb3cuZGF0YUxheWVyPW51bGwhPT0ocj13aW5kb3cuZGF0YUxheWVyKSYmdm9pZCAwIT09cj9yOltdO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7by5hc3luYz0hMCxvLnNyYz1cImh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9XCIuY29uY2F0KGUpLG8ub25sb2FkPWZ1bmN0aW9uKCl7aShcImpzXCIsbmV3IERhdGUpLGkoXCJjb25maWdcIixlKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChvKX12YXIgYSxzLGMsdSxsLGR9O3ZhciByLGk9big5MzMyNyksbz0ocj1uKDc4MDk4KSkmJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9O3ZhciBhPWZ1bmN0aW9uKGUpe3ZhciB0PSgwLGkucGFyc2VEb21haW4pKGUpO3JldHVybiB0LnR5cGU9PT1pLlBhcnNlUmVzdWx0VHlwZS5MaXN0ZWQmJnQuaWNhbm4uZG9tYWluP1wiXCIuY29uY2F0KHQuaWNhbm4uZG9tYWluLFwiLlwiKS5jb25jYXQodC5pY2Fubi50b3BMZXZlbERvbWFpbnMuam9pbihcIi5cIikpOmV9fSw3ODA5ODpmdW5jdGlvbihlKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbillW3JdPW5bcl19cmV0dXJuIGV9ZnVuY3Rpb24gdChuLHIpe2Z1bmN0aW9uIGkodCxpLG8pe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQpe1wibnVtYmVyXCI9PT10eXBlb2Yobz1lKHt9LHIsbykpLmV4cGlyZXMmJihvLmV4cGlyZXM9bmV3IERhdGUoRGF0ZS5ub3coKSs4NjRlNSpvLmV4cGlyZXMpKSxvLmV4cGlyZXMmJihvLmV4cGlyZXM9by5leHBpcmVzLnRvVVRDU3RyaW5nKCkpLHQ9ZW5jb2RlVVJJQ29tcG9uZW50KHQpLnJlcGxhY2UoLyUoMlszNDZCXXw1RXw2MHw3QykvZyxkZWNvZGVVUklDb21wb25lbnQpLnJlcGxhY2UoL1soKV0vZyxlc2NhcGUpO3ZhciBhPVwiXCI7Zm9yKHZhciBzIGluIG8pb1tzXSYmKGErPVwiOyBcIitzLCEwIT09b1tzXSYmKGErPVwiPVwiK29bc10uc3BsaXQoXCI7XCIpWzBdKSk7cmV0dXJuIGRvY3VtZW50LmNvb2tpZT10K1wiPVwiK24ud3JpdGUoaSx0KSthfX1mdW5jdGlvbiBvKGUpe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQmJighYXJndW1lbnRzLmxlbmd0aHx8ZSkpe2Zvcih2YXIgdD1kb2N1bWVudC5jb29raWU/ZG9jdW1lbnQuY29va2llLnNwbGl0KFwiOyBcIik6W10scj17fSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPXRbaV0uc3BsaXQoXCI9XCIpLGE9by5zbGljZSgxKS5qb2luKFwiPVwiKTt0cnl7dmFyIHM9ZGVjb2RlVVJJQ29tcG9uZW50KG9bMF0pO2lmKHJbc109bi5yZWFkKGEscyksZT09PXMpYnJlYWt9Y2F0Y2goYyl7fX1yZXR1cm4gZT9yW2VdOnJ9fXJldHVybiBPYmplY3QuY3JlYXRlKHtzZXQ6aSxnZXQ6byxyZW1vdmU6ZnVuY3Rpb24odCxuKXtpKHQsXCJcIixlKHt9LG4se2V4cGlyZXM6LTF9KSl9LHdpdGhBdHRyaWJ1dGVzOmZ1bmN0aW9uKG4pe3JldHVybiB0KHRoaXMuY29udmVydGVyLGUoe30sdGhpcy5hdHRyaWJ1dGVzLG4pKX0sd2l0aENvbnZlcnRlcjpmdW5jdGlvbihuKXtyZXR1cm4gdChlKHt9LHRoaXMuY29udmVydGVyLG4pLHRoaXMuYXR0cmlidXRlcyl9fSx7YXR0cmlidXRlczp7dmFsdWU6T2JqZWN0LmZyZWV6ZShyKX0sY29udmVydGVyOnt2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pfXJldHVybiB0KHtyZWFkOmZ1bmN0aW9uKGUpe3JldHVybidcIic9PT1lWzBdJiYoZT1lLnNsaWNlKDEsLTEpKSxlLnJlcGxhY2UoLyglW1xcZEEtRl17Mn0pKy9naSxkZWNvZGVVUklDb21wb25lbnQpfSx3cml0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpLnJlcGxhY2UoLyUoMlszNDZCRl18M1tBQy1GXXw0MHw1W0JERV18NjB8N1tCQ0RdKS9nLGRlY29kZVVSSUNvbXBvbmVudCl9fSx7cGF0aDpcIi9cIn0pfSgpfSwxMDg2ODpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5wcmludFdhcm5pbmc9dm9pZCAwO3ZhciByPW4oNzk1NzApLGk9XCJlbi11c1wiO3QucHJpbnRXYXJuaW5nPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPWkpLGU9ZT9lLnRvTG93ZXJDYXNlKCk6ZTt2YXIgdD1yLmRlZmF1bHRbZV0/ci5kZWZhdWx0W2VdOnIuZGVmYXVsdFtcImVuLXVzXCJdO2NvbnNvbGUubG9nKFwiJWNcIit0Lndhcm5pbmcsXCJmb250LXNpemU6IDMwcHg7IGNvbG9yOiAjRjYxRjFGOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwO1wiKSxjb25zb2xlLmxvZyhcIiVjXCIrdC5tZXNzYWdlLFwiZm9udC1zaXplOiAxNnB4OyBjb2xvcjogIzQ2NDY1NjsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcIil9fSw3OTU3MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9e1wiYXItYWFcIjpuKDI2MzgxKSxcImJuLWJkXCI6big0ODA0KSxcImJuLWluXCI6bigzNTc5NCksXCJkYS1ka1wiOm4oOTEwNjkpLFwiZGUtZGVcIjpuKDI3MDYpLFwiZWwtZ3JcIjpuKDU2OTg0KSxcImVuLWdiXCI6big1NDIyNyksXCJlbi11c1wiOm4oODgyMzcpLFwiZXMtYXJcIjpuKDE2ODQ2KSxcImVzLWVzXCI6bigzNzk1MyksXCJlcy1teFwiOm4oMjIwNzcpLGVzOm4oODk3NDApLFwiZmktZmlcIjpuKDMzOTE0KSxcImZpbC1waFwiOm4oMzAwNiksXCJmci1mclwiOm4oNTA1MzgpLFwiZ3UtaW5cIjpuKDIxMjA1KSxcImhpLWluXCI6bigyMjM4MiksXCJpZC1pZFwiOm4oMzIyMzUpLFwiaXQtaXRcIjpuKDQzMTM2KSxcImphLWpwXCI6bigyNjg1MSksXCJrbi1pblwiOm4oNzI3MDEpLFwia28ta3JcIjpuKDk3MTU3KSxcIm1sLWluXCI6bigyOTU3MSksXCJtci1pblwiOm4oNzI5NTApLFwibXMtbXlcIjpuKDE4MzA4KSxcIm5iLW5vXCI6bigyNTY2OSksXCJubC1ubFwiOm4oNjQ4OTApLFwicGEtaW5cIjpuKDg4ODk0KSxcInBsLXBsXCI6big0MDUxNyksXCJwdC1iclwiOm4oMzY2NSksXCJwdC1wdFwiOm4oNjg5MSksXCJyby1yb1wiOm4oOTUxOTApLFwicnUtcnVcIjpuKDMxOTM3KSxcInN2LXNlXCI6big4MTIxOSksXCJ0YS1pblwiOm4oNjg0MDkpLFwidGUtaW5cIjpuKDUyMTkyKSxcInRoLXRoXCI6bigyNjczMyksXCJ0ci10clwiOm4oMjkxMzApLFwidXItcGtcIjpuKDU5Nzc3KSxcInZpLXZuXCI6big3OTU0MyksXCJ6aC1jblwiOm4oNDEzOTIpLFwiemgtdHdcIjpuKDIwNzk0KX07dC5kZWZhdWx0PXJ9LDYzOTc4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkNhbWVvc1JlYXNvbklkPXQuQ2FtZW9zUmVhc29uSWRfUmVhc29uSWQ9dm9pZCAwO2NvbnN0IGk9cihuKDYyMTAwKSk7IWZ1bmN0aW9uKGUpe2VbZS5SRUFTT05fVU5TRVQ9MF09XCJSRUFTT05fVU5TRVRcIixlW2UuV0hZX01ZU0VMRl9JTl9DQU1FTz0xXT1cIldIWV9NWVNFTEZfSU5fQ0FNRU9cIixlW2UuR0VOREVSX01JU01BVENIPTJdPVwiR0VOREVSX01JU01BVENIXCIsZVtlLlVOS05PV05fRlJJRU5EPTNdPVwiVU5LTk9XTl9GUklFTkRcIixlW2UuRE9OVF9MSUtFX1dBTlRfVE9fU0VFPTRdPVwiRE9OVF9MSUtFX1dBTlRfVE9fU0VFXCIsZVtlLklOQVBQUk9QUklBVEU9NV09XCJJTkFQUFJPUFJJQVRFXCIsZVtlLlRFQ0hOSUNBTF9JU1NVRT02XT1cIlRFQ0hOSUNBTF9JU1NVRVwiLGVbZS5PVEhFUj03XT1cIk9USEVSXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5DYW1lb3NSZWFzb25JZF9SZWFzb25JZHx8KHQuQ2FtZW9zUmVhc29uSWRfUmVhc29uSWQ9e30pKSx0LkNhbWVvc1JlYXNvbklkPXtlbmNvZGU6KGUsdD1pLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLnJlYXNvbklkJiZ0LnVpbnQzMig4KS5pbnQzMihlLnJlYXNvbklkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBpLmRlZmF1bHQuUmVhZGVyP2U6bmV3IGkuZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IG89e3JlYXNvbklkOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtpZihlPj4+Mz09PTEpby5yZWFzb25JZD1uLmludDMyKCk7ZWxzZSBuLnNraXBUeXBlKDcmZSl9cmV0dXJuIG99LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3JlYXNvbklkOjB9O3JldHVybiB0LnJlYXNvbklkPWUucmVhc29uSWQ/PzAsdH19fSwyMjgxMDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5HZW5lcmF0aXZlQ29udGVudFJlYXNvbklkPXQuR2VuZXJhdGl2ZUNvbnRlbnRSZWFzb25JZF9SZWFzb25JZD12b2lkIDA7Y29uc3QgaT1yKG4oNjIxMDApKTshZnVuY3Rpb24oZSl7ZVtlLlVOU0VUPTBdPVwiVU5TRVRcIixlW2UuRE9OVF9MSUtFPTFdPVwiRE9OVF9MSUtFXCIsZVtlLklOQVBQUk9QUklBVEU9Ml09XCJJTkFQUFJPUFJJQVRFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5HZW5lcmF0aXZlQ29udGVudFJlYXNvbklkX1JlYXNvbklkfHwodC5HZW5lcmF0aXZlQ29udGVudFJlYXNvbklkX1JlYXNvbklkPXt9KSksdC5HZW5lcmF0aXZlQ29udGVudFJlYXNvbklkPXtlbmNvZGU6KGUsdD1pLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLnJlYXNvbklkJiZ0LnVpbnQzMig4KS5pbnQzMihlLnJlYXNvbklkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBpLmRlZmF1bHQuUmVhZGVyP2U6bmV3IGkuZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IG89e3JlYXNvbklkOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtpZihlPj4+Mz09PTEpby5yZWFzb25JZD1uLmludDMyKCk7ZWxzZSBuLnNraXBUeXBlKDcmZSl9cmV0dXJuIG99LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3JlYXNvbklkOjB9O3JldHVybiB0LnJlYXNvbklkPWUucmVhc29uSWQ/PzAsdH19fSw5ODczNTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5TYWZldHlSZWFzb25JZD10LlNhZmV0eVJlYXNvbklkX1JlYXNvbklkPXZvaWQgMDtjb25zdCBpPXIobig2MjEwMCkpOyFmdW5jdGlvbihlKXtlW2UuUkVBU09OX1VOU0VUPTBdPVwiUkVBU09OX1VOU0VUXCIsZVtlLkRPTlRfTElLRV9XQU5UX1RPX1NFRT0xXT1cIkRPTlRfTElLRV9XQU5UX1RPX1NFRVwiLGVbZS5JTVBFUlNPTkFUSU9OX0ZJUlNUX1BFUlNPTj0yXT1cIklNUEVSU09OQVRJT05fRklSU1RfUEVSU09OXCIsZVtlLklNUEVSU09OQVRJT05fR0VORVJBTD0zXT1cIklNUEVSU09OQVRJT05fR0VORVJBTFwiLGVbZS5TUEFNX0ZJUlNUX1BFUlNPTj00XT1cIlNQQU1fRklSU1RfUEVSU09OXCIsZVtlLlNQQU1fR0VORVJBTD01XT1cIlNQQU1fR0VORVJBTFwiLGVbZS5TUEFNX0ZSSUVORF9SRVFVRVNUPTM1XT1cIlNQQU1fRlJJRU5EX1JFUVVFU1RcIixlW2UuU1BBTV9DUkVFUFk9MzZdPVwiU1BBTV9DUkVFUFlcIixlW2UuSEFURV9TUEVFQ0hfR0VORVJBTD03XT1cIkhBVEVfU1BFRUNIX0dFTkVSQUxcIixlW2UuVklPTEVOVF9ESVNUVVJCSU5HX0dFTkVSQUw9OV09XCJWSU9MRU5UX0RJU1RVUkJJTkdfR0VORVJBTFwiLGVbZS5USFJFQVRfVEhSRUFURU5JTkdfRklSU1RfUEVSU09OPTEwXT1cIlRIUkVBVF9USFJFQVRFTklOR19GSVJTVF9QRVJTT05cIixlW2UuVEhSRUFUX1RIUkVBVEVOSU5HX0dFTkVSQUw9MTFdPVwiVEhSRUFUX1RIUkVBVEVOSU5HX0dFTkVSQUxcIixlW2UuVEhSRUFUX1NFWFRPUlRJT049MzddPVwiVEhSRUFUX1NFWFRPUlRJT05cIixlW2UuSU5BUFBST1BSSUFURV9GSVJTVF9QRVJTT049MTJdPVwiSU5BUFBST1BSSUFURV9GSVJTVF9QRVJTT05cIixlW2UuSU5BUFBST1BSSUFURV9QUk9NT1RJT049MjVdPVwiSU5BUFBST1BSSUFURV9QUk9NT1RJT05cIixlW2UuSU5BUFBST1BSSUFURV9HRU5FUkFMPTEzXT1cIklOQVBQUk9QUklBVEVfR0VORVJBTFwiLGVbZS5JTkFQUFJPUFJJQVRFX0xFTlM9MTRdPVwiSU5BUFBST1BSSUFURV9MRU5TXCIsZVtlLklOQVBQUk9QUklBVEVfQVRUQUNITUVOVD0xNV09XCJJTkFQUFJPUFJJQVRFX0FUVEFDSE1FTlRcIixlW2UuSU5BUFBST1BSSUFURV9DSElMRD0zMF09XCJJTkFQUFJPUFJJQVRFX0NISUxEXCIsZVtlLkJVTExZSU5HX0hBUkFTU01FTlRfRklSU1RfUEVSU09OPTE2XT1cIkJVTExZSU5HX0hBUkFTU01FTlRfRklSU1RfUEVSU09OXCIsZVtlLkJVTExZSU5HX0hBUkFTU01FTlRfR0VORVJBTD0xN109XCJCVUxMWUlOR19IQVJBU1NNRU5UX0dFTkVSQUxcIixlW2UuQlVMTFlJTkdfSEFSQVNTTUVOVF9TRVhVQUw9MzRdPVwiQlVMTFlJTkdfSEFSQVNTTUVOVF9TRVhVQUxcIixlW2UuUFJJVkFDWV9JTlZBU0lPTl9GSVJTVF9QRVJTT049MThdPVwiUFJJVkFDWV9JTlZBU0lPTl9GSVJTVF9QRVJTT05cIixlW2UuU0VMRl9IQVJNX1NVSUNJREU9MjBdPVwiU0VMRl9IQVJNX1NVSUNJREVcIixlW2UuU0VMRl9IQVJNX1NVSUNJREVfUFJPTU9URT0zMV09XCJTRUxGX0hBUk1fU1VJQ0lERV9QUk9NT1RFXCIsZVtlLlRFUlJPUklTTV9FWFRSRU1JU009MjFdPVwiVEVSUk9SSVNNX0VYVFJFTUlTTVwiLGVbZS5GUkFVRFVMRU5UX0lORk9STUFUSU9OPTIyXT1cIkZSQVVEVUxFTlRfSU5GT1JNQVRJT05cIixlW2UuRlJBVURVTEVOVF9JTkZPUk1BVElPTl9QT0xJVElDUz0yN109XCJGUkFVRFVMRU5UX0lORk9STUFUSU9OX1BPTElUSUNTXCIsZVtlLkZSQVVEVUxFTlRfSU5GT1JNQVRJT05fSEVBTFRIPTI4XT1cIkZSQVVEVUxFTlRfSU5GT1JNQVRJT05fSEVBTFRIXCIsZVtlLkZSQVVEVUxFTlRfSU5GT1JNQVRJT05fU09DSUFMX0lTU1VFUz0yOV09XCJGUkFVRFVMRU5UX0lORk9STUFUSU9OX1NPQ0lBTF9JU1NVRVNcIixlW2UuRFJVR19TQUxFX1VTRT0yM109XCJEUlVHX1NBTEVfVVNFXCIsZVtlLldFQVBPTl9TQUxFX1VTRT0yNF09XCJXRUFQT05fU0FMRV9VU0VcIixlW2UuVU5ERVJfVEhJUlRFRU49MjZdPVwiVU5ERVJfVEhJUlRFRU5cIixlW2UuQ09VTlRFUkZFSVRfR09PRFM9MzJdPVwiQ09VTlRFUkZFSVRfR09PRFNcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNhZmV0eVJlYXNvbklkX1JlYXNvbklkfHwodC5TYWZldHlSZWFzb25JZF9SZWFzb25JZD17fSkpLHQuU2FmZXR5UmVhc29uSWQ9e2VuY29kZTooZSx0PWkuZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUucmVhc29uSWQmJnQudWludDMyKDgpLmludDMyKGUucmVhc29uSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIGkuZGVmYXVsdC5SZWFkZXI/ZTpuZXcgaS5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3Qgbz17cmVhc29uSWQ6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlvLnJlYXNvbklkPW4uaW50MzIoKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gb30sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cmVhc29uSWQ6MH07cmV0dXJuIHQucmVhc29uSWQ9ZS5yZWFzb25JZD8/MCx0fX19LDY4MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5TdG9yZUl0ZW1SZWFzb25JZD10LlN0b3JlSXRlbVJlYXNvbklkX1JlYXNvbklkPXZvaWQgMDtjb25zdCBpPXIobig2MjEwMCkpOyFmdW5jdGlvbihlKXtlW2UuUkVBU09OX1VOU0VUPTBdPVwiUkVBU09OX1VOU0VUXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TdG9yZUl0ZW1SZWFzb25JZF9SZWFzb25JZHx8KHQuU3RvcmVJdGVtUmVhc29uSWRfUmVhc29uSWQ9e30pKSx0LlN0b3JlSXRlbVJlYXNvbklkPXtlbmNvZGU6KGUsdD1pLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLnJlYXNvbklkJiZ0LnVpbnQzMig4KS5pbnQzMihlLnJlYXNvbklkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBpLmRlZmF1bHQuUmVhZGVyP2U6bmV3IGkuZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IG89e3JlYXNvbklkOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtpZihlPj4+Mz09PTEpby5yZWFzb25JZD1uLmludDMyKCk7ZWxzZSBuLnNraXBUeXBlKDcmZSl9cmV0dXJuIG99LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3JlYXNvbklkOjB9O3JldHVybiB0LnJlYXNvbklkPWUucmVhc29uSWQ/PzAsdH19fSw5Mzg0MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5SZXBvcnRSZWFzb25JZD10LlJlcG9ydFJlYXNvbj12b2lkIDA7Y29uc3QgaT1uKDk4NzM1KSxvPW4oNjgyKSxhPW4oNjM5NzgpLHM9bigyMjgxMCksYz1yKG4oNjIxMDApKTshZnVuY3Rpb24oZSl7ZVtlLlJFQVNPTl9VTlNFVD0wXT1cIlJFQVNPTl9VTlNFVFwiLGVbZS5ET05UX0xJS0VfV0FOVF9UT19TRUU9MV09XCJET05UX0xJS0VfV0FOVF9UT19TRUVcIixlW2UuSU1QRVJTT05BVElPTl9GSVJTVF9QRVJTT049Ml09XCJJTVBFUlNPTkFUSU9OX0ZJUlNUX1BFUlNPTlwiLGVbZS5JTVBFUlNPTkFUSU9OX0dFTkVSQUw9M109XCJJTVBFUlNPTkFUSU9OX0dFTkVSQUxcIixlW2UuU1BBTV9GSVJTVF9QRVJTT049NF09XCJTUEFNX0ZJUlNUX1BFUlNPTlwiLGVbZS5TUEFNX0dFTkVSQUw9NV09XCJTUEFNX0dFTkVSQUxcIixlW2UuU1BBTV9GUklFTkRfUkVRVUVTVD0zNV09XCJTUEFNX0ZSSUVORF9SRVFVRVNUXCIsZVtlLlNQQU1fQ1JFRVBZPTM2XT1cIlNQQU1fQ1JFRVBZXCIsZVtlLkhBVEVfU1BFRUNIX0dFTkVSQUw9N109XCJIQVRFX1NQRUVDSF9HRU5FUkFMXCIsZVtlLlZJT0xFTlRfRElTVFVSQklOR19HRU5FUkFMPTldPVwiVklPTEVOVF9ESVNUVVJCSU5HX0dFTkVSQUxcIixlW2UuVEhSRUFUX1RIUkVBVEVOSU5HX0ZJUlNUX1BFUlNPTj0xMF09XCJUSFJFQVRfVEhSRUFURU5JTkdfRklSU1RfUEVSU09OXCIsZVtlLlRIUkVBVF9USFJFQVRFTklOR19HRU5FUkFMPTExXT1cIlRIUkVBVF9USFJFQVRFTklOR19HRU5FUkFMXCIsZVtlLlRIUkVBVF9TRVhUT1JUSU9OPTM3XT1cIlRIUkVBVF9TRVhUT1JUSU9OXCIsZVtlLklOQVBQUk9QUklBVEVfRklSU1RfUEVSU09OPTEyXT1cIklOQVBQUk9QUklBVEVfRklSU1RfUEVSU09OXCIsZVtlLklOQVBQUk9QUklBVEVfUFJPTU9USU9OPTI1XT1cIklOQVBQUk9QUklBVEVfUFJPTU9USU9OXCIsZVtlLklOQVBQUk9QUklBVEVfR0VORVJBTD0xM109XCJJTkFQUFJPUFJJQVRFX0dFTkVSQUxcIixlW2UuSU5BUFBST1BSSUFURV9MRU5TPTE0XT1cIklOQVBQUk9QUklBVEVfTEVOU1wiLGVbZS5JTkFQUFJPUFJJQVRFX0FUVEFDSE1FTlQ9MTVdPVwiSU5BUFBST1BSSUFURV9BVFRBQ0hNRU5UXCIsZVtlLklOQVBQUk9QUklBVEVfQ0hJTEQ9MzBdPVwiSU5BUFBST1BSSUFURV9DSElMRFwiLGVbZS5CVUxMWUlOR19IQVJBU1NNRU5UX0ZJUlNUX1BFUlNPTj0xNl09XCJCVUxMWUlOR19IQVJBU1NNRU5UX0ZJUlNUX1BFUlNPTlwiLGVbZS5CVUxMWUlOR19IQVJBU1NNRU5UX0dFTkVSQUw9MTddPVwiQlVMTFlJTkdfSEFSQVNTTUVOVF9HRU5FUkFMXCIsZVtlLkJVTExZSU5HX0hBUkFTU01FTlRfU0VYVUFMPTM0XT1cIkJVTExZSU5HX0hBUkFTU01FTlRfU0VYVUFMXCIsZVtlLlBSSVZBQ1lfSU5WQVNJT05fRklSU1RfUEVSU09OPTE4XT1cIlBSSVZBQ1lfSU5WQVNJT05fRklSU1RfUEVSU09OXCIsZVtlLlNFTEZfSEFSTV9TVUlDSURFPTIwXT1cIlNFTEZfSEFSTV9TVUlDSURFXCIsZVtlLlNFTEZfSEFSTV9TVUlDSURFX1BST01PVEU9MzFdPVwiU0VMRl9IQVJNX1NVSUNJREVfUFJPTU9URVwiLGVbZS5URVJST1JJU01fRVhUUkVNSVNNPTIxXT1cIlRFUlJPUklTTV9FWFRSRU1JU01cIixlW2UuRlJBVURVTEVOVF9JTkZPUk1BVElPTj0yMl09XCJGUkFVRFVMRU5UX0lORk9STUFUSU9OXCIsZVtlLkZSQVVEVUxFTlRfSU5GT1JNQVRJT05fUE9MSVRJQ1M9MjddPVwiRlJBVURVTEVOVF9JTkZPUk1BVElPTl9QT0xJVElDU1wiLGVbZS5GUkFVRFVMRU5UX0lORk9STUFUSU9OX0hFQUxUSD0yOF09XCJGUkFVRFVMRU5UX0lORk9STUFUSU9OX0hFQUxUSFwiLGVbZS5GUkFVRFVMRU5UX0lORk9STUFUSU9OX1NPQ0lBTF9JU1NVRVM9MjldPVwiRlJBVURVTEVOVF9JTkZPUk1BVElPTl9TT0NJQUxfSVNTVUVTXCIsZVtlLkRSVUdfU0FMRV9VU0U9MjNdPVwiRFJVR19TQUxFX1VTRVwiLGVbZS5XRUFQT05fU0FMRV9VU0U9MjRdPVwiV0VBUE9OX1NBTEVfVVNFXCIsZVtlLlVOREVSX1RISVJURUVOPTI2XT1cIlVOREVSX1RISVJURUVOXCIsZVtlLkNPVU5URVJGRUlUX0dPT0RTPTMyXT1cIkNPVU5URVJGRUlUX0dPT0RTXCIsZVtlLkZFQVRVUkVfQlJPS0VOPTMzXT1cIkZFQVRVUkVfQlJPS0VOXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5SZXBvcnRSZWFzb258fCh0LlJlcG9ydFJlYXNvbj17fSkpLHQuUmVwb3J0UmVhc29uSWQ9e2VuY29kZTooZSx0PWMuZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJzYWZldHlSZWFzb25JZFwiPT09ZS5yZWFzb25JZD8uJGNhc2UmJmkuU2FmZXR5UmVhc29uSWQuZW5jb2RlKGUucmVhc29uSWQuc2FmZXR5UmVhc29uSWQsdC51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJzdG9yZUl0ZW1SZWFzb25JZFwiPT09ZS5yZWFzb25JZD8uJGNhc2UmJm8uU3RvcmVJdGVtUmVhc29uSWQuZW5jb2RlKGUucmVhc29uSWQuc3RvcmVJdGVtUmVhc29uSWQsdC51aW50MzIoMTgpLmZvcmsoKSkubGRlbGltKCksXCJjYW1lb3NSZWFzb25JZFwiPT09ZS5yZWFzb25JZD8uJGNhc2UmJmEuQ2FtZW9zUmVhc29uSWQuZW5jb2RlKGUucmVhc29uSWQuY2FtZW9zUmVhc29uSWQsdC51aW50MzIoMjYpLmZvcmsoKSkubGRlbGltKCksXCJnZW5lcmF0aXZlQ29udGVudFJlYXNvbklkXCI9PT1lLnJlYXNvbklkPy4kY2FzZSYmcy5HZW5lcmF0aXZlQ29udGVudFJlYXNvbklkLmVuY29kZShlLnJlYXNvbklkLmdlbmVyYXRpdmVDb250ZW50UmVhc29uSWQsdC51aW50MzIoMzQpLmZvcmsoKSkubGRlbGltKCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2YgYy5kZWZhdWx0LlJlYWRlcj9lOm5ldyBjLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCB1PXtyZWFzb25JZDp2b2lkIDB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTp1LnJlYXNvbklkPXskY2FzZTpcInNhZmV0eVJlYXNvbklkXCIsc2FmZXR5UmVhc29uSWQ6aS5TYWZldHlSZWFzb25JZC5kZWNvZGUobixuLnVpbnQzMigpKX07YnJlYWs7Y2FzZSAyOnUucmVhc29uSWQ9eyRjYXNlOlwic3RvcmVJdGVtUmVhc29uSWRcIixzdG9yZUl0ZW1SZWFzb25JZDpvLlN0b3JlSXRlbVJlYXNvbklkLmRlY29kZShuLG4udWludDMyKCkpfTticmVhaztjYXNlIDM6dS5yZWFzb25JZD17JGNhc2U6XCJjYW1lb3NSZWFzb25JZFwiLGNhbWVvc1JlYXNvbklkOmEuQ2FtZW9zUmVhc29uSWQuZGVjb2RlKG4sbi51aW50MzIoKSl9O2JyZWFrO2Nhc2UgNDp1LnJlYXNvbklkPXskY2FzZTpcImdlbmVyYXRpdmVDb250ZW50UmVhc29uSWRcIixnZW5lcmF0aXZlQ29udGVudFJlYXNvbklkOnMuR2VuZXJhdGl2ZUNvbnRlbnRSZWFzb25JZC5kZWNvZGUobixuLnVpbnQzMigpKX07YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiB1fSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtyZWFzb25JZDp2b2lkIDB9O3JldHVyblwic2FmZXR5UmVhc29uSWRcIj09PWUucmVhc29uSWQ/LiRjYXNlJiZ2b2lkIDAhPT1lLnJlYXNvbklkPy5zYWZldHlSZWFzb25JZCYmbnVsbCE9PWUucmVhc29uSWQ/LnNhZmV0eVJlYXNvbklkJiYodC5yZWFzb25JZD17JGNhc2U6XCJzYWZldHlSZWFzb25JZFwiLHNhZmV0eVJlYXNvbklkOmkuU2FmZXR5UmVhc29uSWQuZnJvbVBhcnRpYWwoZS5yZWFzb25JZC5zYWZldHlSZWFzb25JZCl9KSxcInN0b3JlSXRlbVJlYXNvbklkXCI9PT1lLnJlYXNvbklkPy4kY2FzZSYmdm9pZCAwIT09ZS5yZWFzb25JZD8uc3RvcmVJdGVtUmVhc29uSWQmJm51bGwhPT1lLnJlYXNvbklkPy5zdG9yZUl0ZW1SZWFzb25JZCYmKHQucmVhc29uSWQ9eyRjYXNlOlwic3RvcmVJdGVtUmVhc29uSWRcIixzdG9yZUl0ZW1SZWFzb25JZDpvLlN0b3JlSXRlbVJlYXNvbklkLmZyb21QYXJ0aWFsKGUucmVhc29uSWQuc3RvcmVJdGVtUmVhc29uSWQpfSksXCJjYW1lb3NSZWFzb25JZFwiPT09ZS5yZWFzb25JZD8uJGNhc2UmJnZvaWQgMCE9PWUucmVhc29uSWQ/LmNhbWVvc1JlYXNvbklkJiZudWxsIT09ZS5yZWFzb25JZD8uY2FtZW9zUmVhc29uSWQmJih0LnJlYXNvbklkPXskY2FzZTpcImNhbWVvc1JlYXNvbklkXCIsY2FtZW9zUmVhc29uSWQ6YS5DYW1lb3NSZWFzb25JZC5mcm9tUGFydGlhbChlLnJlYXNvbklkLmNhbWVvc1JlYXNvbklkKX0pLFwiZ2VuZXJhdGl2ZUNvbnRlbnRSZWFzb25JZFwiPT09ZS5yZWFzb25JZD8uJGNhc2UmJnZvaWQgMCE9PWUucmVhc29uSWQ/LmdlbmVyYXRpdmVDb250ZW50UmVhc29uSWQmJm51bGwhPT1lLnJlYXNvbklkPy5nZW5lcmF0aXZlQ29udGVudFJlYXNvbklkJiYodC5yZWFzb25JZD17JGNhc2U6XCJnZW5lcmF0aXZlQ29udGVudFJlYXNvbklkXCIsZ2VuZXJhdGl2ZUNvbnRlbnRSZWFzb25JZDpzLkdlbmVyYXRpdmVDb250ZW50UmVhc29uSWQuZnJvbVBhcnRpYWwoZS5yZWFzb25JZC5nZW5lcmF0aXZlQ29udGVudFJlYXNvbklkKX0pLHR9fX0sNTQzOTM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuQml0bW9qaUFwcFN0aWNrZXJGb3JtYXQ9dC5CaXRtb2ppQXBwU3RpY2tlckNhY2hlU3RhdGU9dC5CaXRtb2ppQXBwU25hcGNoYXRMaW5rYWdlU291cmNlPXQuQml0bW9qaUFwcFNuYXBjaGF0TGlua2FnZUFjdGlvbj10LkJpdG1vamlBcHBTaGFyZUNhdGVnb3J5PXQuQml0bW9qaUFwcFNldHRpbmdzQ29udGFjdHNBY3Rpb249dC5CaXRtb2ppQXBwUmVnaXN0cmF0aW9uRXZlbnRUeXBlPXQuQml0bW9qaUFwcFJlZmVycmVyPXQuQml0bW9qaUFwcFBheWxvYWRUeXBlPXQuQml0bW9qaUFwcE9wZW5TdGF0ZT10LkJpdG1vamlBcHBOb3RpZmljYXRpb25FdmVudFR5cGU9dC5CaXRtb2ppQXBwTmV0d29ya1R5cGU9dC5CaXRtb2ppQXBwTmF2aWdhdGlvbkJ1dHRvbj10LkJpdG1vamlBcHBOYW1lPXQuQml0bW9qaUFwcEtleWJvYXJkVHlwZT10LkJpdG1vamlBcHBLZXlib2FyZE9uYm9hcmRpbmdTdGVwPXQuQml0bW9qaUFwcEtleWJvYXJkT25ib2FyZGluZ1NvdXJjZT10LkJpdG1vamlBcHBLZXlib2FyZE9uYm9hcmRpbmdBY3Rpb249dC5CaXRtb2ppQXBwS2V5Ym9hcmRFdmVudFR5cGU9dC5CaXRtb2ppQXBwSHR0cFByb3RvY29sPXQuQml0bW9qaUFwcEh0dHBNZXRob2Q9dC5CaXRtb2ppQXBwRnJpZW5kbW9qaU9uYm9hcmRpbmdBY3Rpb249dC5CaXRtb2ppQXBwRnJpZW5kbW9qaUZyaWVuZFBpY2tlclR5cGU9dC5CaXRtb2ppQXBwRnJpZW5kbW9qaUZyaWVuZFBpY2tlckFjdGlvbj10LkJpdG1vamlBcHBGcmllbmRTZWxlY3Rpb25Tb3VyY2U9dC5CaXRtb2ppQXBwRGlyZWN0QXV0aEV2ZW50VHlwZT10LkJpdG1vamlBcHBEaXJlY3RBdXRoRW50cnlQb2ludD10LkJpdG1vamlBcHBDb250ZW50UHJvdmlkZXJQZXJtaXNzaW9uPXQuQml0bW9qaUFwcENvbnRlbnRQcm92aWRlckV2ZW50VHlwZT10LkJpdG1vamlBcHBDb250YWN0RnJpZW5kbW9qaU9uYm9hcmRpbmdFbnRyeVBvaW50PXQuQml0bW9qaUFwcENvbnRhY3RGcmllbmRtb2ppQWN0aW9uPXQuQml0bW9qaUFwcENsb3NlU3RhdGU9dC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlclNvdXJjZT10LkJpdG1vamlBcHBBdXRoRXZlbnRUeXBlPXQuQml0bW9qaUFwcEFjY291bnRQaG9uZUFjdGlvbj10LkJpdG1vamlBcHBBY2NvdW50RW1haWxBY3Rpb249dC5CYW5kd2lkdGhDbGFzcz10LkFyZXNWYXJpYW50PXQuQXJlc1Byb2R1Y3RUYXBTb3VyY2U9dC5BcmVzUGhvdG9zaG9vdENhcHR1cmVTb3VyY2U9dC5BcmVzTWVkaWFUeXBlPXQuQXJlc0ZsYXZvcj10LkFyZXNGZWF0dXJlVHlwZT10LkFyZXNGZWF0dXJlRXhpdFJlYXNvbj10LkFyZXNDb25uZWN0aXZpdHlUeXBlPXQuQXBwVHlwZT10LkFjY291bnRzUmVzcG9uc2U9dC5BY2NvdW50c0FjdGlvbj10LkFjY291bnRJbmZvVHlwZT10LkFiVHJpZ2dlclR5cGU9dm9pZCAwLHQuRXhhbXBsZUVudW09dC5FbWFpbEV2ZW50VHlwZT10LkVtYWlsQ29uZmlybWF0aW9uVHlwZT10LkRlbGl2ZXJ5U3RyYXRlZ3lUeXBlPXQuRGVsaXZlcnlTdGF0dXM9dC5EZWxpdmVyeVByb3ZpZGVyVHlwZT10LkRlbGl2ZXJ5RmVhdHVyZVR5cGU9dC5EZWxpdmVyeUN1cnJlbmN5PXQuRGVsaXZlcnlDYXRlZ29yeT10LkRhaWx5U2Vzc2lvbkJ1Y2tldD10LkNvbmZpZ1RhcmdldGluZ1RyaWdnZXJFdmVudFR5cGU9dC5Db25maWdUYXJnZXRpbmdJbnN0cnVtZW50YXRpb249dC5Db25maWdUYXJnZXRpbmdBcHBTdGF0ZT10LkNvbW11bml0aWVzT25ib2FyZGluZ1Jlc3BvbnNlU3RhdHVzPXQuQ29sbGVjdGlvbj10LkNvZ25hY1RyYXlTZXJ2ZXJJdGVtVHlwZT10LkNoZWVyaW9zTGFuZGluZ1N0YXRlPXQuQ2hlZXJpb3NEaWFsUG9zaXRpb249dC5DYW52YXNOb3RpZmljYXRpb25BY3Rpb25TdGF0dXM9dC5DYW1raXRXZWJhcHBOYW1lRW51bT10LkNhbWVyYUtpdFZhcmlhbnQ9dC5DYW1lcmFLaXRNZWRpYVR5cGU9dC5DYW1lcmFLaXRMZWdhbFByb21wdFJlc3VsdD10LkNhbWVyYUtpdEZsYXZvcj10LkNhbWVyYUtpdENvbm5lY3Rpdml0eVR5cGU9dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNNb2RhbFJlc3VsdFN0YXR1cz10LkNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0ZhaWx1cmVSZWFzb249dC5DYW1lcmFLaXRDYW1lcmFUeXBlPXQuQmxvb3BzU3RvcnlTbmFwUG9zdFR5cGU9dC5CaXRtb2ppT3V0Zml0VHlwZT10LkJpdG1vamlMaXZlTWlycm9yQ2xhc3NpZmljYXRpb25TdGF0dXNUeXBlPXQuQml0bW9qaUtpdFRhZ1NlbGVjdG9yQ29uZmlndXJhdGlvbj10LkJpdG1vamlLaXRTdGlja2VyUGlja2VyVmlldz10LkJpdG1vamlLaXRTaGFyZUNhdGVnb3J5PXQuQml0bW9qaUtpdFNlYXJjaENhdGVnb3J5PXQuQml0bW9qaUtpdFNlYXJjaEJhckNvbmZpZ3VyYXRpb249dC5CaXRtb2ppS2l0UGVybWlzc2lvblVwZGF0ZVN0YXR1cz10LkJpdG1vamlGYXNoaW9uT3V0Zml0QWN0aW9uVHlwZT10LkJpdG1vamlBdmF0YXJUcmFpdEFjdGlvblR5cGU9dC5CaXRtb2ppQXZhdGFyU3R5bGU9dC5CaXRtb2ppQXZhdGFyQnVpbGRlclR5cGU9dC5CaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnk9dC5CaXRtb2ppQXZhdGFyQnVpbGRlclNlbGZpZUFjdGlvblR5cGU9dC5CaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlPXQuQml0bW9qaUFwcFVpU3R5bGU9dC5CaXRtb2ppQXBwU3RpY2tlclN1cGVydGFnPXQuQml0bW9qaUFwcFN0aWNrZXJTaGFyZUdlc3R1cmU9dC5CaXRtb2ppQXBwU3RpY2tlclNlYXJjaE5vUmVzdWx0UmVhc29uPXQuQml0bW9qaUFwcFN0aWNrZXJTZWFyY2hDYXRlZ29yeT10LkJpdG1vamlBcHBTdGlja2VyU2NhbGU9dm9pZCAwLHQuUGhvbmVQYXJzaW5nVXNlQ2FzZT10LlBob25lUGFyc2luZ1VucmVzb2x2ZWRFcnJvcj10LlBob25lTnVtYmVyVHlwZT10LlBob25lTnVtYmVyUHJvY2Vzc1N0YXR1cz10LlBheW1lbnRzS2l0RXJyb3JUeXBlPXQuT3B0aW9uYWxCb29sZWFuPXQuTm90aWZpY2F0aW9uVHlwZT10Lk15bGVuc2VzU3VibWlzc2lvbkRldGFpbHNTb3VyY2U9dC5NeWxlbnNlc1JhdGluZ0Zvcm1Tb3VyY2VUeXBlPXQuTXlsZW5zZXNSYXRpbmdGb3JtQWN0aW9uVHlwZT10Lk15bGVuc2VzTWFuYWdlbWVudFBhZ2VUeXBlcz10Lk15bGVuc2VzTWFuYWdlbWVudFBhZ2VBY3Rpb25UeXBlcz10Lk15bGVuc2VzTWFuYWdlbWVudEVudHJ5UG9pbnRUeXBlcz10Lk15bGVuc2VzSW5zaWdodHNTZWN0aW9ucz10Lk1lcmxpbkF1dGhFdmVudFR5cGU9dC5NZXJsaW5BdXRoQWNjb3VudFR5cGU9dC5NYXBPcmJpc1VwZGF0ZVR5cGU9dC5NYXBPcmJpc0xvY2F0aW9uVHlwZT10LkxvZ2luU2VydmljZT10LkxvZ2luUm91dGU9dC5Mb2dpblJlc3VsdD10LkxvZ2luSWRlbnRpZmllclR5cGU9dC5Mb2dpbkFQST10LkxlbnNzdHVkaW9TdGFydHNjcmVlblNlY3Rpb25UeXBlPXQuTGVuc3N0dWRpb1N0YXJ0c2NyZWVuRmlsdGVyQWN0aW9uVHlwZT10LkxlbnNzdHVkaW9TdGFydHNjcmVlbkV4aXRUeXBlPXQuTGVuc3N0dWRpb1N0YXJ0c2NyZWVuQWN0aW9uVHlwZT10LkxlbnNzdHVkaW9PbmJvYXJkaW5nUGFnZUFjdGlvblR5cGU9dC5MZW5zc3R1ZGlvT25ib2FyZGluZ0VudHJ5UG9pbnRUeXBlPXQuTGVuc3N0dWRpb09uYm9hcmRpbmdFbnRyeUFjdGlvblR5cGU9dC5MZW5zc3R1ZGlvQXNzZXRsaWJyYXJ5SW1wb3J0U291cmNlVHlwZT10LkxlbnNzdHVkaW9Bc3NldGxpYnJhcnlBY3Rpb25UeXBlPXQuTGVuc1N1Ym1pc3Npb25UeXBlPXQuTGVuc0V2ZW50U291cmNlPXQuS2l0VHlwZT10LktpdFBsdWdpblR5cGU9dC5LaXRFcnJvckNvZGU9dC5LaXREZWVwTGlua1NvdXJjZVR5cGU9dC5JbnZpdGVLaXRTaGFyZVR5cGU9dC5Hcm93dGhOb3RpZmljYXRpb25UYXNrU291cmNlVHlwZT10Lkdyb3d0aE5vdGlmaWNhdGlvblB1c2hDYW1wYWlnbkV2ZW50VHlwZT10Lkdyb3d0aE5vdGlmaWNhdGlvbkNoYW5uZWxUeXBlPXQuRnJpZW5kQWN0aW9uRXZlbnRUeXBlPXQuRmluZEZyaWVuZHNFdmVudFR5cGU9dC5GaW5kRnJpZW5kc0V2ZW50U291cmNlPXQuRmluZEZyaWVuZHNFdmVudFNjZW5hcmlvPXQuRmlsdGVyVmlzdWFsVHlwZT10LkZpbHRlclR5cGU9dC5GaWx0ZXJJbmZvVHlwZT10LkZhbWlseUNlbnRlckVucm9sbG1lbnRTdGF0dXNUeXBlPXZvaWQgMCx0LlRhbGtFeHBlcmllbmNlVHlwZT10LlN1Z2dlc3RlZEZyaWVuZEV2ZW50VHlwZT10LlN1Z2dlc3RlZEZyaWVuZEV2ZW50TG9jYXRpb249dC5TdWdnZXN0ZWRGcmllbmRBY3Rpb25TdWNjZXNzVHlwZXM9dC5TdWdnZXN0ZWRGcmllbmRBY3Rpb25FdmVudFR5cGVzPXQuU3Vic2NyaXB0aW9uQWN0aW9uPXQuU3RyZWFrUmVzdG9yZVNvdXJjZT10LlN0cmVha0FjdGlvblR5cGU9dC5TdG9yeVB1c2hUeXBlPXQuU3RvcnlLaXRQbGF5ZXJUeXBlPXQuU3RvcnlLaXRNZWRpYVR5cGU9dC5TdG9yeUtpdEV4aXRFdmVudD10LlN0b3J5S2l0RW50cnlFdmVudD10LlNwb25zb3JlZFVubG9ja2FibGVUeXBlPXQuU3BlY3RhY2xlc1RyYW5zZmVyVHlwZVNlcnZlcj10LlNwZWN0YWNsZXNUcmFuc2ZlckNoYW5uZWw9dC5TcGVjdGFjbGVzRnJhbWVDb2xvcj10LlNwZWN0YWNsZXNGaWxlVHlwZT10LlNwZWN0YWNsZXNCdXR0b25QcmVzc1R5cGU9dC5Tb3VyY2VUeXBlPXQuU29jaWFsU21zRXJyb3JUeXBlPXQuU29jaWFsQWN0aW9uPXQuU25hcGNvZGVNZXRhZGF0YVVzZUNhc2U9dC5TbmFwYm90VmVuZG9yQ2FsbD10LlNuYXBib3RWZW5kb3I9dC5TbmFwYm90UmVzcG9uc2VTdGF0dXM9dC5TbmFwYm90UmVxdWVzdFN0YXR1cz10LlNuYXBLaXRJbml0VHlwZT10LlNuYXBDYW1lcmFVc2VySW50ZXJhY3Rpb249dC5TbmFwQ2FtZXJhU2Vzc2lvbj10LlNuYXBDYW1lcmFMZW5zU291cmNlPXQuU25hcENhbWVyYUxlbnNFdmVudHM9dC5TbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudFR5cGU9dC5TaG9ydGxpbmtUeXBlPXQuU2hvcnRsaW5rQ2xpY2tTdGF0ZT10LlNob3BLaXRDYW1lcmFFeGl0UmVhc29uPXQuU2Vzc2lvbkVuZD10LlNlcnZlcldhbGxwYXBlclVwZGF0ZVdhbGxwYXBlclNvdXJjZT10LlNlcnZlclRpZXI9dC5TZXJ2ZXJNZXNzYWdlVHlwZT10LlJld2FyZFN0YXR1c1R5cGU9dC5SZWplY3RSZWFzb249dC5SZWdpc3RyYXRpb25SZXN1bHQ9dC5SZWNvbW1lbmRlZEFjdGlvbj10LlJhbmtpbmdNb2RlPXQuUHVzaE5vdGlmaWNhdGlvblJlc3VsdFR5cGU9dC5QcmVmZXJyZWRWZXJpZmljYXRpb25NZXRob2Q9dC5QaG9uZVZlcmlmeVJlc3VsdFR5cGU9dC5QaG9uZVZlcmlmeUVycm9yVHlwZT10LlBob25lVmVyaWZ5QWN0aW9uPXZvaWQgMCx0LkFiQWRzTWFuYWdlckFsbG9jYXRpb25Mb2dFdmVudFNoYWRvdz10LkFiQWRzTWFuYWdlckFsbG9jYXRpb25Mb2dFdmVudD10LlNlcnZlckV2ZW50PXQuU2VydmVyRXZlbnREYXRhPXQuU3RyZWFtaW5nQ2FuYXJ5RGF0YVRlc3Q9dC5TdHJlYW1pbmdDYW5hcnlEYXRhPXQuU3RyZWFtaW5nQXZhaWxhYmlsaXR5Q2FuYXJ5RXZlbnQ9dC5CaWdUYWJsZURhdGE9dC5DZWxsPXQuQXVkaW9TaGFyZWRTdG9yeVN1Ym1pc3Npb25EYXRhPXQuU2hhcmVkU3RvcnlTdWJtaXNzaW9uRGF0YT10LkF1ZGlvRmluZ2VycHJpbnREYXRhPXQuRmVhdHVyZVZlY3RvckRhdGFfVGFnV2l0aENvbmZpZGVuY2VFbnRyeT10LkZlYXR1cmVWZWN0b3JEYXRhPXQuVXNlckZyaWVuZGluZ0V2ZW50RGF0YT10LlN0YXRzRGVsdGFFdmVudERhdGFfR2F1Z2VzRW50cnk9dC5TdGF0c0RlbHRhRXZlbnREYXRhX0NvdW50ZXJzRW50cnk9dC5TdGF0c0RlbHRhRXZlbnREYXRhPXQuQWREZWJ1Z1N0YXRzX1VuaXF1ZXNFbnRyeT10LkFkRGVidWdTdGF0c19IaXN0b2dyYW1zRW50cnk9dC5BZERlYnVnU3RhdHNfQ291bnRlcnNFbnRyeT10LkFkRGVidWdTdGF0c19HYXVnZXNFbnRyeT10LkFkRGVidWdTdGF0cz10LlVubG9ja2FibGVTZXJ2ZVN0YXRzX1VuaXF1ZXNFbnRyeT10LlVubG9ja2FibGVTZXJ2ZVN0YXRzX0hpc3RvZ3JhbXNFbnRyeT10LlVubG9ja2FibGVTZXJ2ZVN0YXRzX0NvdW50ZXJzRW50cnk9dC5VbmxvY2thYmxlU2VydmVTdGF0c19HYXVnZXNFbnRyeT10LlVubG9ja2FibGVTZXJ2ZVN0YXRzPXQuQ2xvc2VkVFNEQlN0YXRzX01ldGFkYXRhRW50cnk9dC5DbG9zZWRUU0RCU3RhdHNfVW5pcXVlc0VudHJ5PXQuQ2xvc2VkVFNEQlN0YXRzX0hpc3RvZ3JhbXNFbnRyeT10LkNsb3NlZFRTREJTdGF0c19Db3VudGVyc0VudHJ5PXQuQ2xvc2VkVFNEQlN0YXRzX0dhdWdlc0VudHJ5PXQuQ2xvc2VkVFNEQlN0YXRzPXQuQml0bW9qaUtpdFNlYXJjaFRlcm09dC5TZXJ2ZXJFdmVudEJhdGNoPXQuV2ViU2hhcmVTdGF0dXM9dC5XZWJTaGFyZVNvdXJjZT10LldlYlNoYXJlRGVzdGluYXRpb249dC5WZXJpZnlLaXRFdmVudFR5cGU9dC5WZXJpZnlDb2RlRW50cnlUeXBlPXQuVmVyaWZpY2F0aW9uTWV0aG9kPXQuVmVuZG9yQmxvY2tsaXN0ZWREZXNjcmlwdGlvbj10LlVzZXJHZW5kZXI9dC5UcmFuc2FjdGlvbj10LlRpdlNlbnRGYWlsdXJlUmVhc29uPXQuVGl2UmVzcG9uc2U9dC5UaXZDaGFubmVscz10LlRhbGtTdHJlYW1lckFjdGl2aXR5VHlwZT10LlRhbGtTZGtUeXBlPXZvaWQgMCx0LkZyaWVuZFN0b3JpZXNSYW5raW5nQ2FuZGlkYXRlRmVhdHVyZXM9dC5GcmllbmROb3RpZmljYXRpb25FdmVudD10LkZyaWVuZEFjdGlvbkV2ZW50PXQuRmluZEZyaWVuZHNFdmVudD10LkZhbWlseUNlbnRlclN0YXR1cz10LkV4YW1wbGVCbGl6emFyZFNlcnZlckV2ZW50PXQuRW1haWxDYW1wYWlnbkV2ZW50PXQuRHVtbXlTZXJ2ZXJFdmVudD10LkRpcmVjdFNuYXBWaWV3U2VydmVyPXQuRGV2aWNlVG9rZW5FdmVudD10LkRhdGFSZXdhcmRTdGF0dXM9dC5EYWlseUN1cnJlbmN5Q29udmVyc2lvblJhdGU9dC5ETURVc2VyQWN0aW9uRXZlbnQ9dC5DcmVhdGl2ZVRvb2xzVFRTUmVxdWVzdFJlY2VpdmU9dC5Db250YWN0U3luY0VuYWJsZWQ9dC5Db250YWN0Qm9va1NlcnZlckRlYnVnPXQuQ29tbXVuaXRpZXNTdGF0dXNVcGRhdGU9dC5Db21tZXJjZVNob3BwaW5nTGlua0ltcHJlc3Npb25FdmVudD10LkNvZ25hY1RyYXlTZXJ2ZXJGZWVkPXQuQ29nbmFjRmVlZEV2ZW50QmFzZT10LkNvZkV0YWdMb2dFdmVudD10LkNoZWVyaW9zQmFzZVNlcnZlckV2ZW50PXQuQ2FudmFzQ3VzdG9tTm90aWZpY2F0aW9uU3RhdHVzPXQuQ2FudmFzQXBpRXZlbnRCYXNlPXQuQ2FtZXJhS2l0V2ViUG9ydGFsRXZlbnRCYXNlPXQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlPXQuQmxvb3BzU3RvcnlTbmFwUG9zdFNlcnZlcj10LkJpdG1vamlBcHBFdmVudEJhc2U9dC5BdXRoZW50aWNhdGlvblNlcnZlckV2ZW50PXQuQXV0aFNlc3Npb25Jbml0aWF0ZWRTZXJ2ZXI9dC5BdXRoU2Vzc2lvbkVuZFNlcnZlcj10LkFzclNlcnZlckxlbnNTZXNzaW9uPXQuQXJlc0V2ZW50QmFzZT10LkFwcEFwcGxpY2F0aW9uTG9naW5GYWlsdXJlU2VydmVyRXZlbnQ9dC5BY3Rpb25tb2ppTWlzbWF0Y2hFdmVudD10LkFjY291bnRzU2VydmVyRXZlbnQ9dC5BYldlYlVzZXJFdmVudFNoYWRvdz10LkFiV2ViVXNlckV2ZW50PXQuQWJXZWJQbGF0Zm9ybVNlcnZlclRyaWdnZXJTaGFkb3c9dC5BYldlYlBsYXRmb3JtU2VydmVyVHJpZ2dlcj10LkFiV2ViUGxhdGZvcm1BbGxvY2F0aW9uRXZlbnRTaGFkb3c9dC5BYldlYlBsYXRmb3JtQWxsb2NhdGlvbkV2ZW50PXQuQWJVc2VyVHJpZ2dlclNoYWRvdz10LkFiVXNlclRyaWdnZXJGYWtlPXQuQWJVc2VyVHJpZ2dlcj10LkFiTWlzY2hpZWZTZXJ2ZXJFdmVudD10LkFiRGV2aWNlVHJpZ2dlclNoYWRvdz10LkFiRGV2aWNlVHJpZ2dlcj10LkFiQWRzTWFuYWdlckxvZ0V2ZW50U2hhZG93PXQuQWJBZHNNYW5hZ2VyTG9nRXZlbnQ9dm9pZCAwLHQuU2VydmVyTWVzc2FnZT10LlNlcnZlcktpY2tQYXJ0aWNpcGFudD10LlNlcnZlckZlZWRTeW5jPXQuU2VuZE1lc3NhZ2VEZWNpc2lvbj10LlNlYXJjaFJldHJpZXZhbD10LlNlYXJjaFJlcXVlc3RTZXJ2ZXI9dC5TY2FuU2Vzc2lvblNlcnZlclJlc3BvbnNlU2VuZD10LlNjYW5TZXNzaW9uU2VydmVyUmVzcG9uc2VSZWFkeT10LlNjYW5TZXNzaW9uU2VydmVyUmVxdWVzdFJlY2VpdmU9dC5SZWdpc3RyYXRpb25TZXJ2ZXJEbnU9dC5SZWdpc3RyYXRpb25TZXJ2ZXJDcmVhdGVBY2NvdW50PXQuUmVnaXN0cmF0aW9uQXR0ZW1wdEJhc2U9dC5RdWVzdGlvbkFuc3dlclJlc3BvbnNlPXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaENhbXBhaWduVXNlclZhbGlkYXRpb25FdmVudD10LlB1c2hDYW1wYWlnblRyYW5zaWVudEV2ZW50PXQuUHVzaENhbXBhaWduVGFza0V2ZW50PXQuUHVzaENhbXBhaWduU2luZ2xlQ2FtcGFpZ25UYXJnZXRpbmdFdmVudD10LlB1c2hDYW1wYWlnblBvc3RQdXNoRXZlbnQ9dC5QdXNoQ2FtcGFpZ25Ob3RpZmljYXRpb25FdmVudD10LlB1c2hDYW1wYWlnbkdyb3VwaW5nRXZlbnQ9dC5QdXNoQ2FtcGFpZ25HbG9iYWxUYXJnZXRpbmdFdmVudD10LlByaXZhdGVDb21wb25lbnRTZXJ2aWNlRXZlbnQ9dC5QaG9uZVZlcmlmeVNlcnZlclN1Y2Nlc3M9dC5QaG9uZVZlcmlmeVNlcnZlclJlc3VsdD10LlBob25lVmVyaWZ5U2VydmVyRmFpbHVyZT10LlBob25lVmVyaWZ5U2VydmVyRGVidWc9dC5QaG9uZVBhcnNpbmdSZXN1bHQ9dC5QaG9uZU1lc3NhZ2VEZWxpdmVyU3RhdHVzPXQuUGhvbmVNZXNzYWdlRGVsaXZlclJhbmtpbmdNZXRhZGF0YT10LlBob25lTG9va3VwU3RhdHVzPXQuT3VyU3RvcnlTaG93TXlOYW1lPXQuTWl4ZXJSZXNwb25zZUV2ZW50PXQuTWluaVNlcnZlckV2ZW50QmFzZT10Lk1lc3NhZ2VTdWJzY3JpcHRpb25BY3Rpb249dC5NYXBPcmJpc1N0b3JpZXNEYXRhPXQuTG9naW5BdHRlbXB0QmFzZT10LkxpdmVMb2NhdGlvblVwZGF0ZVJlY2VpdmU9dC5MaXZlTG9jYXRpb25QdXNoTm90aWZpY2F0aW9uU2VuZD10LkxlbnNzdHVkaW9FdmVudEJhc2U9dC5MYW5ndWFnZURldGVjdGlvblJlc3BvbnNlPXQuS2l0U2VydmVyRXZlbnRCYXNlPXQuS2l0RXZlbnRCYXNlPXQuS2l0QXBwQXBwbGljYXRpb25FdmVudD10Lkhvc3RpbmdTZXJ2ZXJFdmVudEJhc2U9dC5HYWxsZXJ5U25hcERlbGV0ZVNlcnZlcj10LkdhbGxlcnlTbmFwQ3JlYXRlU2VydmVyPXQuR2FsbGVyeUNvbGxlY3Rpb25FbGlnaWJpbGl0eVNlcnZlcj10LkdhbGxlcnlDb2xsZWN0aW9uQ3JlYXRlU2VydmVyPXQuRnJpZW5kU3Rvcmllc1JhbmtpbmdVc2VyRmVhdHVyZXM9dm9pZCAwLHQuU3RyZWFrU2VydmVyRXZlbnQ9dC5TdG9yeVZpZXdzUmVkaXNNaXNtYXRjaD10LlN0b3J5Vmlld3NNaXNtYXRjaD10LlN0b3J5Vmlld2VyTm90VXBkYXRlUmVxdWVzdFVzZXI9dC5TdG9yeVZpZGVvRW5jb2RpbmdUYXNrPXQuU3RvcnlTdXNwaWNpb3VzU3RvcnlWaWV3PXQuU3RvcnlTdHVkaW9MaXRlUGFnZUFjdGlvbj10LlN0b3J5U3R1ZGlvTGl0ZU1lZGlhVXBsb2FkPXQuU3RvcnlTdHVkaW9MaXRlTWVkaWFQb3N0PXQuU3RvcnlTdHVkaW9MaXRlRXJyb3I9dC5TdG9yeVN0b3JpZXNTeW5jRmV0Y2hSZWFkUmVjZWlwdEZhaWx1cmU9dC5TdG9yeVN0YXRlSW5jb25zaXN0ZW50PXQuU3RvcnlTbmFwVmlld1NlcnZlcj10LlN0b3J5U2hhcmVPd25lclNlbmRTdG9yeVNuYXA9dC5TdG9yeVNlcnZpbmdEeW5hbW9GYWlsdXJlPXQuU3RvcnlSZXBvc3RHcm91cFN0b3J5PXQuU3RvcnlQcml2YWN5U2V0dGluZ0NoYW5nZT10LlN0b3J5UG9zdFN0YXJ0PXQuU3RvcnlQb3N0UmVzdWx0PXQuU3RvcnlQb3N0TW9iU3Rvcnk9dC5TdG9yeVBvc3RJbnZhbGlkVGVtcE1lZGlhPXQuU3RvcnlQb3N0QWJzZW50TWVkaWFLZXk9dC5TdG9yeVBvc3Q9dC5TdG9yeU5ld1N0b3JpZXNSZXN1bHRDYXBwZWQ9dC5TdG9yeUxlYXZlTW9iU3Rvcnk9dC5TdG9yeUdhbGxlcnlTZXJ2ZXJHcm91cFN0b3J5QXV0b3NhdmU9dC5TdG9yeUZhaWxlZFVzZXJWaWV3SGlzdG9yeVVwZGF0ZT10LlN0b3J5RmFpbGVkU3RvcnlWaWV3UmVjb3JkaW5nPXQuU3RvcnlGYWlsZWRTYXZlRGVsZXRlZFN0b3J5SWQ9dC5TdG9yeUZhaWxlZFB1YmxpY1Byb2ZpbGVTYXZlU3RvcnlJZD10LlN0b3J5RmFpbGVkUHJpdmF0ZVByb2ZpbGVTYXZlU3RvcnlJZD10LlN0b3J5RW5jcnlwdFN0b3J5SWRFeGNlcHRpb249dC5TdG9yeUVsZW1lbnRXaXRoTG9uZ1R0bD10LlN0b3J5RWRpdE1vYlN0b3J5PXQuU3RvcnlEZWxldGVTdG9yeVVwZGF0ZVByb2ZpbGVGZWVkPXQuU3RvcnlEZWxldGVTdG9yeT10LlN0b3J5RGVsZXRlTW9iU3Rvcnk9dC5TdG9yeUNyZWF0ZU1vYlN0b3J5PXQuU3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudD10LlNvY2lhbFNtc0FjdGlvbj10LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlPXQuU25hcGNhbWVyYUV2ZW50QmFzZT10LlNuYXBTZXNzaW9uU2VydmVyRXZlbnQ9dC5TbmFwS2l0RG9jc1BhZ2VIZWxwZnVsPXQuU21zU3Vic2NyaXB0aW9uUHJlZmVyZW5jZUNoYW5nZWRFdmVudD10LlNrYXRlRXZlbnQ9dC5TaG9ydGxpbmtCYXNlPXQuU2VydmVyV2FsbHBhcGVyVXBkYXRlPXQuU2VydmVyUmVxdWVzdENvZj10LlNlcnZlclJlcXVlc3RBbGxVcGRhdGVzPXZvaWQgMCx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyQXZhdGFyU2F2ZUF0dGVtcHQ9dC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlckF2YXRhclNhdmU9dC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlckF2YXRhckxhdW5jaD10LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyQXZhdGFyRXhpdD10LkJpdG1vamlBcHBBdXRoRXZlbnQ9dC5CaXRtb2ppQXBwQWNjb3VudFBob25lRXZlbnQ9dC5CaXRtb2ppQXBwQWNjb3VudEVtYWlsRXZlbnQ9dC5BcmVzVXBsb2FkUGhvdG9TdGFydD10LkFyZXNVcGxvYWRQaG90b0VuZD10LkFyZXNUcnlPblNoYXJlPXQuQXJlc1RyeU9uU2F2ZT10LkFyZXNUcnlPblJlZG89dC5BcmVzVHJ5T25DYXB0dXJlPXQuQXJlc1Nlc3Npb25UZXJtaW5hdGVkPXQuQXJlc1Nlc3Npb25DcmVhdGVkPXQuQXJlc1B1cmNoYXNlQ29tcGxldGU9dC5BcmVzUHJvZHVjdFZpZXdUaW1lPXQuQXJlc1Byb2R1Y3RUYXA9dC5BcmVzUHJvZHVjdExvYWQ9dC5BcmVzUHJvZHVjdEltcHJlc3Npb249dC5BcmVzUHJvZHVjdEFwcGx5PXQuQXJlc1Bob3Rvc2hvb3RDYXB0dXJlPXQuQXJlc0ZpdFJlY29tbWVuZGF0aW9uPXQuQXJlc0ZlYXR1cmVFeGl0PXQuQXJlc0ZlYXR1cmVFbnRyeT10LkFyZXNFbmdhZ2VtZW50cz10LkFyZXNDdGFSZW5kZXI9dC5BcmVzQ3RhQ2xpY2s9dC5BcmVzQ29udmVyc2lvbnM9dC5BY3F1aXNpdGlvblBsYXRmb3JtU2hvcnRsaW5rUHJldmlldz10LkFjcXVpc2l0aW9uUGxhdGZvcm1TaG9ydGxpbmtDbGljaz10LkFjY291bnRzTG9naW5TZXJ2ZXJFdmVudD10LldlYlNlcnZlckV2ZW50QmFzZT10LldlYk9mZlBsYXRmb3JtU2hhcmU9dC5Wb2ljZU5vdGVzUmVzcG9uc2U9dC5Wb2ljZU5vdGVzUmVxdWVzdFJlY2VpdmU9dC5Vc2VyU2Vzc2lvbkxpZmVjeWNsZVNlcnZlckV2ZW50PXQuVXBkYXRlTG9jYXRpb25TaGFyaW5nU2V0dGluZ0RhdGE9dC5UcmFuc2NyaWJlQW5kQ2xhc3NpZnlTZXJ2ZXJSZXF1ZXN0UmVjZWl2ZT10LlRyYW5zY3JpYmVBbmRDbGFzc2lmeUluZmVycmVkQ2xhc3M9dC5Ub2tlbkxpZmVjeWNsZVNlcnZlckV2ZW50PXQuVGl2U2VudFNlcnZlcj10LlRpdlNlbnRGYWlsdXJlU2VydmVyPXQuVGl2Tm90aWZpY2F0aW9uUmVjZWl2ZWRTZXJ2ZXI9dC5UaXZOb3RpZmljYXRpb25EaXNwbGF5ZWRTZXJ2ZXI9dC5UaXZBY2tub3dsZWRnZWRTZXJ2ZXI9dC5UYWxrU3RyZWFtZXJTZXNzaW9uPXQuVGFsa1N0cmVhbWVyUmVzb2x2ZT10LlN1Z2dlc3RlZEZyaWVuZEV2ZW50PXQuU3VnZ2VzdGVkRnJpZW5kQWN0aW9uRXZlbnQ9dm9pZCAwLHQuQml0bW9qaUFwcFJlZ2lzdHJhdGlvbkV2ZW50PXQuQml0bW9qaUFwcFBlcmNlaXZlZE9wZW49dC5CaXRtb2ppQXBwT3Blbj10LkJpdG1vamlBcHBOb3RpZmljYXRpb25FdmVudD10LkJpdG1vamlBcHBOYXZpZ2F0aW9uQnV0dG9uVGFwPXQuQml0bW9qaUFwcEtleWJvYXJkU3dpdGNoPXQuQml0bW9qaUFwcEtleWJvYXJkU2VuZFRleHQ9dC5CaXRtb2ppQXBwS2V5Ym9hcmRPcGVuRW1vamlQaWNrZXI9dC5CaXRtb2ppQXBwS2V5Ym9hcmRPbmJvYXJkaW5nUGFnZUV2ZW50PXQuQml0bW9qaUFwcEtleWJvYXJkTWFpblZjRGlkQXBwZWFyQ29sZD10LkJpdG1vamlBcHBLZXlib2FyZEV2ZW50PXQuQml0bW9qaUFwcEtleWJvYXJkRW5hYmxlRnVsbEFjY2Vzcz10LkJpdG1vamlBcHBLZXlib2FyZEVtb2ppU2VsZWN0PXQuQml0bW9qaUFwcEluc3RhbGxBdHRyaWJ1dGlvbkV2ZW50PXQuQml0bW9qaUFwcEZyaWVuZG1vamlPbmJvYXJkaW5nRXZlbnQ9dC5CaXRtb2ppQXBwRnJpZW5kbW9qaUZyaWVuZFBpY2tlckV2ZW50PXQuQml0bW9qaUFwcEZyaWVuZFBpY2tlclNlYXJjaFN0YXJ0PXQuQml0bW9qaUFwcEZyaWVuZFBpY2tlclNlYXJjaD10LkJpdG1vamlBcHBGcmllbmRQaWNrZXJPcGVuPXQuQml0bW9qaUFwcEZyaWVuZFBpY2tlckZyaWVuZFNlbGVjdD10LkJpdG1vamlBcHBGcmllbmRQaWNrZXJEaXNtaXNzPXQuQml0bW9qaUFwcEZyaWVuZFBpY2tlckFkZEZyaWVuZHNUYXA9dC5CaXRtb2ppQXBwRnJpZW5kUGVybWlzc2lvbnNPcGVuPXQuQml0bW9qaUFwcEZyaWVuZFBlcm1pc3Npb25zQWNjZXB0PXQuQml0bW9qaUFwcEZvcmdvdFBhc3N3b3JkVGFwPXQuQml0bW9qaUFwcEVtYWlsTG9naW49dC5CaXRtb2ppQXBwRG93bmxvYWRMYXRlbmN5PXQuQml0bW9qaUFwcERpc2tDYWNoZVV0aWxpemF0aW9uPXQuQml0bW9qaUFwcERpcmVjdEF1dGhFdmVudD10LkJpdG1vamlBcHBDb250ZW50UHJvdmlkZXJFdmVudD10LkJpdG1vamlBcHBDb250YWN0RnJpZW5kbW9qaUV2ZW50PXQuQml0bW9qaUFwcENsb3NlPXQuQml0bW9qaUFwcEJpcnRoZGF5U2lnbnVwVmlldz10LkJpdG1vamlBcHBCaXJ0aGRheVNpZ251cFN1Y2Nlc3M9dC5CaXRtb2ppQXBwQlNTaWdudXBUYXA9dC5CaXRtb2ppQXBwQlNTaWdudXBTdWNjZXNzPXQuQml0bW9qaUFwcEJTTG9naW5UYXA9dC5CaXRtb2ppQXBwQlNMb2dpblN1Y2Nlc3M9dC5CaXRtb2ppQXBwQlNMb2dpblBhZ2VWaWV3PXQuQml0bW9qaUFwcEJTTG9naW5BdXRob3JpemVVc2VyU3VjY2Vzcz10LkJpdG1vamlBcHBBdmF0YXJUcmFpdEFjdGlvbj10LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyU2VsZmllQWN0aW9uPXQuQml0bW9qaUFwcEF2YXRhckJ1aWxkZXJQYWdlVmlldz10LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyT3V0Zml0Q2hhbmdlPXQuQml0bW9qaUFwcEF2YXRhckJ1aWxkZXJPdXRmaXRBY3Rpb249dC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlck1pcnJvclByZWRpY3Q9dC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlckdlbmRlclZpZXc9dC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlckdlbmRlclNlbGVjdD10LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyRmFzaGlvbkxhdW5jaD10LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyQXZhdGFyU2F2ZUZyb21DcmVhdGU9dm9pZCAwLHQuQ2FtZXJhS2l0TGVnYWxQcm9tcHQ9dC5DYW1lcmFLaXRFeHRlbnNpb25FdmVudFN0dWI9dC5DYW1lcmFLaXRFeHRlbnNpb25FdmVudEJhc2U9dC5DYW1lcmFLaXRFeGNlcHRpb249dC5DYW1lcmFLaXRFdmVudEJhc2U9dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNNb2RhbFNob3duPXQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzTW9kYWxSZXN1bHQ9dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNKb2luPXQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRmFpbGVkPXQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRW5kPXQuQ2FtZXJhS2l0QXNzZXRWYWxpZGF0aW9uRmFpbGVkPXQuQ2FtZXJhS2l0QXNzZXREb3dubG9hZD10LkNhbWVyYUtpdEFwaUFjY2Vzcz10LkNhbWVyYUtpdEFkanVzdG1lbnRSZW1vdmVkPXQuQ2FtZXJhS2l0QWRqdXN0bWVudENoYW5nZWQ9dC5DYW1lcmFLaXRBZGp1c3RtZW50QXBwbGllZD10LkJpdG1vamlLaXRTdGlja2VyUGlja2VyT3Blbj10LkJpdG1vamlLaXRTdGlja2VyUGlja2VyTW91bnQ9dC5CaXRtb2ppS2l0U3RpY2tlclBpY2tlckNsb3NlPXQuQml0bW9qaUtpdFNuYXBjaGF0TGlua1RhcD10LkJpdG1vamlLaXRTbmFwY2hhdExpbmtTdWNjZXNzPXQuQml0bW9qaUtpdFNoYXJlPXQuQml0bW9qaUtpdFNlYXJjaD10LkJpdG1vamlLaXRQcmV2aWV3SWNvbkNoYW5nZT10LkJpdG1vamlLaXRQZXJtaXNzaW9uVXBkYXRlPXQuQml0bW9qaUtpdEV2ZW50QmFzZT10LkJpdG1vamlLaXRDcmVhdGVBdmF0YXJUYXA9dC5CaXRtb2ppQXBwV2VsY29tZVBhZ2VWaWV3PXQuQml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlPXQuQml0bW9qaUFwcFN0aWNrZXJUYWJPcGVuPXQuQml0bW9qaUFwcFN0aWNrZXJTZWFyY2hTZXF1ZW5jZT10LkJpdG1vamlBcHBTdGlja2VyU2VhcmNoUmVhZHk9dC5CaXRtb2ppQXBwU3RpY2tlclNlYXJjaD10LkJpdG1vamlBcHBTdGlja2VyUHJldmlldz10LkJpdG1vamlBcHBTdGlja2VyUGlja2VyVmlld01vcmVUYXA9dC5CaXRtb2ppQXBwU3RpY2tlclBpY2tlclZpZXc9dC5CaXRtb2ppQXBwU3RpY2tlckltcHJlc3Npb249dC5CaXRtb2ppQXBwU3RpY2tlckF1dG9zdWdnZXN0PXQuQml0bW9qaUFwcFNuYXBjaGF0TGlua2FnZT10LkJpdG1vamlBcHBTaG9wUHJvZHVjdFNlbGVjdD10LkJpdG1vamlBcHBTaG9wT3Blbj10LkJpdG1vamlBcHBTaG9wQ29uZmlybUN1c3RvbWl6YXRpb25zPXQuQml0bW9qaUFwcFNoYXJlTGF0ZW5jeT10LkJpdG1vamlBcHBTaGFyZT10LkJpdG1vamlBcHBTZXR0aW5nc0NvbnRhY3RzRXZlbnQ9dC5CaXRtb2ppQXBwU2VuZEZyaWVuZG1vamlJbnZpdGVFdmVudD10LkJpdG1vamlBcHBTQ0xvZ2luVGFwPXQuQml0bW9qaUFwcFNDTG9naW5TdWNjZXNzPXQuQml0bW9qaUFwcFNDTG9naW5Nb25vVXNlckxvZ2luU3VjY2Vzcz10LkJpdG1vamlBcHBSZXNldFBhc3N3b3JkUGFnZVZpZXc9dm9pZCAwLHQuQ2hlZXJpb3NTdGFiaWxpemVTdWNjZXNzPXQuQ2hlZXJpb3NTdGFiaWxpemVTdGFydD10LkNoZWVyaW9zU3RhYmlsaXplRmFpbHVyZT10LkNoZWVyaW9zTGFuZGluZ1N1Y2Nlc3M9dC5DaGVlcmlvc0xhbmRpbmdTdGFydD10LkNoZWVyaW9zTGFuZGluZ0ZhaWx1cmU9dC5DaGVlcmlvc0Z3VXBkYXRlU3VjY2Vzcz10LkNoZWVyaW9zRndVcGRhdGVTdGFydD10LkNoZWVyaW9zRndVcGRhdGVFcnJvcj10LkNoZWVyaW9zRndDcmFzaD10LkNoZWVyaW9zRmxpZ2h0V2FybmluZz10LkNoZWVyaW9zRmxpZ2h0U3RhcnQ9dC5DaGVlcmlvc0ZsaWdodFJldHVybj10LkNoZWVyaW9zRmxpZ2h0UGF0aFN0YXJ0PXQuQ2hlZXJpb3NGbGlnaHRQYXRoUmVzdD10LkNoZWVyaW9zRmxpZ2h0UGF0aEVuZD10LkNoZWVyaW9zRmxpZ2h0T29jPXQuQ2hlZXJpb3NGbGlnaHRNb2RlU2VsZWN0aW9uPXQuQ2hlZXJpb3NGbGlnaHRFcnJvcj10LkNoZWVyaW9zRmxpZ2h0Q29tcGxldGU9dC5DaGVlcmlvc0ZsaWdodENvbGxpc2lvbj10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NEZXZpY2VCb290PXQuQ2hlZXJpb3NDYXB0dXJlU3VjY2Vzcz10LkNoZWVyaW9zQ2FwdHVyZVN0YXJ0PXQuQ2hlZXJpb3NDYXB0dXJlRXJyb3I9dC5DYXRlZ29yeU1pbmlFdmVudD10LkNhdGVnb3J5TGFiZWxNaW5pRXZlbnQ9dC5DYXJvdXNlbExlbnM9dC5DYW52YXNBcGlTdGlja2VyS2l0UXVlcnk9dC5DYW52YXNBcGlQcml2YXRlQ29tcG9uZW50c0FwaVF1ZXJ5PXQuQ2FudmFzQXBpRGlzY292ZXJhYmxlQXBpUXVlcnk9dC5DYW52YXNBcGlDb25uZWN0aW9uQXBpUXVlcnk9dC5DYW52YXNBcGlCYXNpY0RhdGFRdWVyeT10LkNhbnZhc0FwaUFnZUdhdGVRdWVyeT10LkNhbXBhaWduUHVzaE5vdGlmaWNhdGlvblN1Y2Nlc3M9dC5DYW1wYWlnblB1c2hOb3RpZmljYXRpb25SZWNlaXZlZEluRXh0ZW5zaW9uPXQuQ2FtcGFpZ25QdXNoTm90aWZpY2F0aW9uUmVjZWl2ZWQ9dC5DYW1wYWlnblB1c2hOb3RpZmljYXRpb25GYWlsdXJlPXQuQ2FtcGFpZ25QdXNoTm90aWZpY2F0aW9uRGlzcGxheT10LkNhbWVyYUtpdFdlYkxlbnNTd2lwZT10LkNhbWVyYUtpdFdlYkJlbmNobWFya0NvbXBsZXRlPXQuQ2FtZXJhS2l0U25hcENyZWF0ZT10LkNhbWVyYUtpdFNlc3Npb249dC5DYW1lcmFLaXRQcm9maWxpbmdNZXRyaWNzRXZlbnQ9dC5DYW1lcmFLaXRQb3NzaWJsZUxlbnNDcmFzaD10LkNhbWVyYUtpdExlbnNTd2lwZT10LkNhbWVyYUtpdExlbnNTcGluPXQuQ2FtZXJhS2l0TGVuc0Rvd25sb2FkPXQuQ2FtZXJhS2l0TGVuc0NvbnRlbnRWYWxpZGF0aW9uRmFpbGVkPXZvaWQgMCx0LkxlbnNzdHVkaW9HaXBoeVNob3c9dC5MZW5zc3R1ZGlvR2lwaHlTZWFyY2g9dC5MZW5zc3R1ZGlvR2lwaHlBZGQ9dC5MZW5zc3R1ZGlvRmlsZXBlcm1pc3Npb25zSG9tZT10LkxlbnNzdHVkaW9GaWxlcGVybWlzc2lvbnNGb2xkZXI9dC5MZW5zc3R1ZGlvRG9jdW1lbnRSZWNvdmVyPXQuTGVuc3N0dWRpb0RvY3VtZW50T3Blbj10LkxlbnNzdHVkaW9Eb2N1bWVudE5ldz10LkxlbnNzdHVkaW9Eb2N1bWVudEZyb210ZW1wbGF0ZT10LkxlbnNzdHVkaW9Eb2N1bWVudENsb3NlPXQuTGVuc3N0dWRpb0NvbXBvbmVudEFkZD10LkxlbnNzdHVkaW9DaGVja2ZvcnVwZGF0ZXNQcm9jZWVkPXQuTGVuc3N0dWRpb0NoZWNrZm9ydXBkYXRlc09wZW49dC5MZW5zc3R1ZGlvQXNzZXRsaWJyYXJ5U2VhcmNoPXQuTGVuc3N0dWRpb0Fzc2V0bGlicmFyeU9wZW49dC5MZW5zc3R1ZGlvQXNzZXRsaWJyYXJ5SW1wb3J0PXQuTGVuc3N0dWRpb0Fzc2V0bGlicmFyeUNhdGVnb3J5U2VsZWN0PXQuTGVuc3N0dWRpb0Fzc2V0bGlicmFyeUFjdGlvbj10LkxlbnNzdHVkaW9BcHBsaWNhdGlvblN0YXJ0PXQuTGVuc3N0dWRpb0FwcGxpY2F0aW9uUXVpdD10LkxlbnNzdHVkaW9BcHBsaWNhdGlvbkNyYXNoPXQuS2l0SGVhcnRiZWF0PXQuS2l0RXJyb3JFdmVudD10LktpdEFwcEFwcGxpY2F0aW9uT3Blbj10LktpdEFwcEFwcGxpY2F0aW9uQ2xvc2U9dC5JbnZpdGVLaXRQcm9maWxlU2hhcmVTZW5kU3RhcnQ9dC5JbnZpdGVLaXRQcm9maWxlU2hhcmVBY2NlcHRlZD10Lkludml0ZUtpdEdhbWVJbnZpdGVTZW5kU3RhcnQ9dC5JbnZpdGVLaXRHYW1lSW52aXRlQWNjZXB0ZWQ9dC5Ib3N0aW5nU3RvcmFnZVdyaXRlRXZlbnQ9dC5Ib3N0aW5nU3RvcmFnZVJlYWRFdmVudD10Lkhvc3RpbmdTdG9yYWdlRGVsZXRlRXZlbnQ9dC5Gb3JtTWluaUV2ZW50PXQuRm9ybURhdGFNaW5pRXZlbnQ9dC5FeGFtcGxlQ2xhc3M9dC5FVUxBS2l0VXNlckFjY2VwdFRlcm1zPXQuRVVMQUtpdEV2ZW50QmFzZT10LkNyZWF0b3JNYXJrZXRwbGFjZVVwc2VsbEN0YT10LkNyZWF0aXZlS2l0V2ViU2NhblBhZ2VPcGVuPXQuQ3JlYXRpdmVLaXRTaGFyZVN0YXJ0PXQuQ3JlYXRpdmVLaXRTaGFyZUNvbXBsZXRlPXQuQ3JlYXRpdmVLaXRTaGFyZUJ1dHRvblZpc2libGU9dC5DcmVhdGl2ZUtpdEV2ZW50QmFzZT10LkNvZ25hY0ZlZWRSZXZva2U9dC5Db2duYWNGZWVkQ3JlYXRlPXQuQ2hlZXJpb3NUYWtlT2ZmRmFpbHVyZT10LkNoZWVyaW9zVGFrZU9mZj10LkNoZWVyaW9zU3ViamVjdExvY2tTdWNjZXNzPXQuQ2hlZXJpb3NTdWJqZWN0TG9ja1N0YXJ0PXQuQ2hlZXJpb3NTdWJqZWN0TG9ja0ZhaWx1cmU9dm9pZCAwLHQuTWVybGluQXV0aENoZWNrRW1haWxQYWdlVmlldz10Lk1lcmxpbkF1dGhBY2NvdW50Rm91bmRQYWdlVmlldz10LkxvZ2luV2l0aFBhc3N3b3JkQXR0ZW1wdD10LkxvZ2luV2l0aE9uZXRsdjNBdHRlbXB0PXQuTG9naW5XaXRoT25ldGx2MUF0dGVtcHQ9dC5Mb2dpbktpdEV2ZW50QmFzZT10LkxvZ2luS2l0QXV0aFN0YXJ0PXQuTG9naW5LaXRBdXRoQ29tcGxldGU9dC5MZW5zc3R1ZGlvVXJsT3Blbj10LkxlbnNzdHVkaW9Ub29sdGlwT3Blbj10LkxlbnNzdHVkaW9Ub29sdGlwTGVhcm5Nb3JlT3Blbj10LkxlbnNzdHVkaW9UZW1wbGF0ZUxvYWRmYWlsZWQ9dC5MZW5zc3R1ZGlvU3VibWl0U3RhdHVzPXQuTGVuc3N0dWRpb1N1Ym1pdFN0YXJ0ZWQ9dC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5WaWV3PXQuTGVuc3N0dWRpb1N0YXJ0c2NyZWVuVmlkZW9DbGlja0FjdGlvbj10LkxlbnNzdHVkaW9TdGFydHNjcmVlblNlY3Rpb25GaWx0ZXJBY3Rpb249dC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5QYW5lbEFjdGlvbj10LkxlbnNzdHVkaW9TdGFydHNjcmVlbkd1aWRlQ2xpY2tBY3Rpb249dC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5CYW5uZXJDbGlja0FjdGlvbj10LkxlbnNzdHVkaW9TY3JpcHRub2RlRmF2b3JpdGU9dC5MZW5zc3R1ZGlvU2NyaXB0bm9kZUFkZD10LkxlbnNzdHVkaW9SZXNvdXJjZUV4dGVybmFsZWRpdG9yPXQuTGVuc3N0dWRpb1Jlc291cmNlQWRkPXQuTGVuc3N0dWRpb1Byb2plY3RpbmZvSGludD10LkxlbnNzdHVkaW9Qcm9qZWN0aW5mb0NhbWVyYT10LkxlbnNzdHVkaW9QcmV2aWV3RGV2aWNlU2ltdWxhdGlvblNlbGVjdD10LkxlbnNzdHVkaW9QYW5lbE9wZW49dC5MZW5zc3R1ZGlvUGFuZWxEZXRhY2g9dC5MZW5zc3R1ZGlvUGFuZWxBdHRhY2g9dC5MZW5zc3R1ZGlvUGFpcmluZ1N0YXJ0PXQuTGVuc3N0dWRpb1BhaXJpbmdQdXNoPXQuTGVuc3N0dWRpb1BhaXJpbmdQYWlyPXQuTGVuc3N0dWRpb1BhaXJpbmdGYWlsZWRwdXNoPXQuTGVuc3N0dWRpb1BhaXJpbmdEaXNjb25uZWN0PXQuTGVuc3N0dWRpb09uYm9hcmRpbmdQYWdlVmlldz10LkxlbnNzdHVkaW9PbmJvYXJkaW5nRW50cnlQb2ludD10LkxlbnNzdHVkaW9PbmJvYXJkaW5nQ29tcGxldGU9dC5MZW5zc3R1ZGlvT2JqZWN0SW1wb3J0PXQuTGVuc3N0dWRpb09iamVjdEFkZD10LkxlbnNzdHVkaW9NeWxlbnNlc1VwZGF0ZT10LkxlbnNzdHVkaW9NeWxlbnNlc1N1Ym1pdD10LkxlbnNzdHVkaW9NeWxlbnNlc09wZW49dC5MZW5zc3R1ZGlvTXlsZW5zZXNMb2dpbj10LkxlbnNzdHVkaW9NeWxlbnNlc0ZhaWxzdWJtaXQ9dC5MZW5zc3R1ZGlvTXlsZW5zZXNBZGp1c3Q9dC5MZW5zc3R1ZGlvTWF0ZXJpYWxub2RlRmF2b3JpdGU9dC5MZW5zc3R1ZGlvTWF0ZXJpYWxub2RlQWRkPXQuTGVuc3N0dWRpb0xlbnNwcmV2aWV3VXBsb2FkPXQuTGVuc3N0dWRpb0lzc3VlUmVwb3J0PXZvaWQgMCx0LlB1c2hOb3RpZmljYXRpb25GYWlsdXJlSW5QTlM9dC5QdXNoTm90aWZpY2F0aW9uRmFpbHVyZUluTWVzaD10LlB1c2hOb3RpZmljYXRpb25GYWlsdXJlPXQuUHVzaE5vdGlmaWNhdGlvbkRpc3BsYXk9dC5QdXNoTm90aWZpY2F0aW9uQ2FtcGFpZ249dC5QdXNoTm90aWZpY2F0aW9uQWNjZXB0ZWRJbk1lc2g9dC5QYXltZW50c0tpdE9yZGVyQ29tcGxldGU9dC5QYXltZW50c0tpdE9yZGVyQXR0ZW1wdD10LlBheW1lbnRzS2l0R2V0VW5jb25zdW1lZE9yZGVyc0NvbXBsZXRlPXQuUGF5bWVudHNLaXRHZXRVbmNvbnN1bWVkT3JkZXJzQXR0ZW1wdD10LlBheW1lbnRzS2l0R2V0SXRlbXNDb21wbGV0ZT10LlBheW1lbnRzS2l0R2V0SXRlbXNBdHRlbXB0PXQuUGF5bWVudHNLaXRFdmVudEJhc2U9dC5QYXltZW50c0tpdENvbnN1bWVPcmRlckNvbXBsZXRlPXQuUGF5bWVudHNLaXRDb25zdW1lT3JkZXJBdHRlbXB0PXQuUGF5bWVudHNLaXRCZWdpbk9yZGVyQ29tcGxldGU9dC5QYXltZW50c0tpdEJlZ2luT3JkZXJBdHRlbXB0PXQuTXlsZW5zZXNSYXRpbmdGb3JtQWN0aW9uPXQuTXlsZW5zZXNNYW5hZ2VtZW50UGFnZVZpZXc9dC5NeWxlbnNlc01hbmFnZW1lbnRQYWdlT3Blbj10Lk15bGVuc2VzTWFuYWdlbWVudFBhZ2VBY3Rpb249dC5NeWxlbnNlc0luc2lnaHRzUGFnZVZpZXc9dC5NeWxlbnNlc0NvbW11bml0eUF1ZGllbmNlUGFnZVZpZXc9dC5NaW5pU2VsZWN0aW9uQ2hhbmdlRXZlbnQ9dC5NaW5pU2NyZWVuc2hvdEV2ZW50PXQuTWluaVBhZ2V2aWV3RXZlbnQ9dC5NaW5pT25ib2FyZGluZ1N0YXJ0RXZlbnQ9dC5NaW5pT25ib2FyZGluZ0NvbXBsZXRlRXZlbnQ9dC5NaW5pRm9ybVByb2dyZXNzRXZlbnQ9dC5NaW5pRXJyb3JFdmVudD10Lk1pbmlDbGlja0V2ZW50PXQuTWluaUNsaWNrRGlzdGluY3RVc2VyRXZlbnQ9dC5NaW5pQWRkcmVzc1N0YXJ0RXZlbnQ9dC5NaW5pQWRkcmVzc0NvbXBsZXRlRXZlbnQ9dC5NaW5pQWRkcmVzc0NoYW5nZUV2ZW50PXQuTWVybGluQXV0aFNlbmRFbWFpbFN1Ym1pdD10Lk1lcmxpbkF1dGhQYXNzd29yZFN1Ym1pdD10Lk1lcmxpbkF1dGhOb0FjY291bnRQYWdlVmlldz10Lk1lcmxpbkF1dGhNYWdpY0NvZGVTdWJtaXQ9dC5NZXJsaW5BdXRoTWFnaWNDb2RlUGFnZVZpZXc9dC5NZXJsaW5BdXRoR2VuZXJpY0Vycm9yUGFnZVZpZXc9dC5NZXJsaW5BdXRoRXZlbnQ9dC5NZXJsaW5BdXRoRXJyb3JFdmVudD10Lk1lcmxpbkF1dGhFbnRlclBhc3N3b3JkUGFnZVZpZXc9dC5NZXJsaW5BdXRoRW1haWxTdWJtaXQ9dC5NZXJsaW5BdXRoRW1haWxFbnRyeVBhZ2VWaWV3PXQuTWVybGluQXV0aEVtYWlsQ29kZVN1Ym1pdD10Lk1lcmxpbkF1dGhDb250aW51ZVdpdGhTbmFwY2hhdD10Lk1lcmxpbkF1dGhDb25uZWN0aW9uRXJyb3JQYWdlVmlldz10Lk1lcmxpbkF1dGhDb2RlRXhwaXJlZFBhZ2VWaWV3PXZvaWQgMCx0LlZlcmlmeUxvZ2luQ29kZUF0dGVtcHQ9dC5WZXJpZnlLaXRFdmVudD10LlZlcmlmeUNoYW5uZWxBdHRlbXB0PXQuVGFsa1N0cmVhbWVyUGFydGljaXBhbnQ9dC5UYWxrU3RyZWFtZXJBY3Rpdml0eT10LlN1Z2dlc3Rpb25Db3VudHM9dC5TdG9yeUtpdFNuYXBQbGF5YmFja1BsYXllclNlc3Npb249dC5TdG9yeUtpdFNuYXBQbGF5YmFjaz10LlN0b3J5S2l0RXZlbnRCYXNlPXQuU3BlY3RhY2xlc1RlbXBlcmF0dXJlVHJhY2tlZFNlcnZlckV2ZW50PXQuU3BlY3RhY2xlc0lkbGVTdGF0ZT10LlNwZWN0YWNsZXNGaWxlVHJhbnNmZXJTZXJ2ZXI9dC5TcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZT10LlNwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXJ2ZXJFdmVudEJhc2U9dC5TcGVjdGFjbGVzQ29udGVudENhcHR1cmVTZXJ2ZXI9dC5TbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0U3VjY2Vzcz10LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RSZWNlaXZlPXQuU25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEVycm9yPXQuU25hcGNhbWVyYVVzZXJBY3Rpb249dC5TbmFwY2FtZXJhU2Vzc2lvbkFjdGlvbj10LlNuYXBjYW1lcmFMZW5zQWN0aW9uPXQuU25hcGNhbWVyYUV4dGVudGlvbkFjdGlvbj10LlNuYXBib3RSZXNwb25zZT10LlNuYXBib3RSZXF1ZXN0PXQuU25hcEtpdERhdGFGZXRjaEV2ZW50PXQuU2hvcEtpdFNlc3Npb25UZXJtaW5hdGVkPXQuU2hvcEtpdFNlc3Npb25DcmVhdGVkPXQuU2hvcEtpdFNlc3Npb25DYW1lcmFCaW5kPXQuU2hvcEtpdFByb2R1Y3RWaWV3VGltZT10LlNob3BLaXRQcm9kdWN0SW1wcmVzc2lvbj10LlNob3BLaXRQcm9kdWN0QXBwbHk9dC5TaG9wS2l0RXZlbnRCYXNlPXQuU2hvcEtpdENhbWVyYUV4aXQ9dC5TZXJ2ZXJPdXRib3VuZE1lc3NhZ2U9dC5TZXJ2ZXJJbmJvdW5kTWVzc2FnZT10LlNlbmRUd29mYUNvZGVBdHRlbXB0PXQuU2VuZE9kbHZDb2RlQXR0ZW1wdD10LlNlbmRMb2dpbkNvZGVBdHRlbXB0PXQuU2VuZENoYW5uZWxWZXJpZmljYXRpb25Db2RlQXR0ZW1wdD10LlNhbHRlZElkTWluaVNlcnZlckV2ZW50PXQuUmVnaXN0ZXJXaXRoVXNlcm5hbWVQYXNzd29yZEF0dGVtcHQ9dC5SZWFjdGl2YXRlQWNjb3VudEF0dGVtcHQ9dC5QdXNoTm90aWZpY2F0aW9uU3VjY2Vzc0luUE5TPXQuUHVzaE5vdGlmaWNhdGlvblN1Y2Nlc3NJbk1lc2g9dC5QdXNoTm90aWZpY2F0aW9uU3VjY2Vzcz10LlB1c2hOb3RpZmljYXRpb25TdGFydGVkSW5NZXNoPXQuUHVzaE5vdGlmaWNhdGlvblJlY2VpdmVkSW5QTlM9dC5QdXNoTm90aWZpY2F0aW9uUmVjZWl2ZWRJbk1lc2g9dC5QdXNoTm90aWZpY2F0aW9uUmVjZWl2ZWRJbkV4dGVuc2lvbj10LlB1c2hOb3RpZmljYXRpb25SZWNlaXZlZD12b2lkIDAsdC5XZWJTZXNzaW9uPXQuV2ViU2VydmVyUGVyZm9ybWFuY2U9dC5XZWJQYWdlVmlldz10LldlYlBhZ2VTaGFyZT10LldlYkFjdGlvbj10LlZlcmlmeVR3b2ZhQXR0ZW1wdD10LlZlcmlmeU9kbHZBdHRlbXB0PXZvaWQgMDtjb25zdCBpPXIobig0MTU4MykpLG89cihuKDYyMTAwKSk7ZnVuY3Rpb24gYSgpe3JldHVybntrZXk6XCJcIix2YWx1ZTpuZXcgVWludDhBcnJheX19ZnVuY3Rpb24gcygpe3JldHVybntrZXk6XCJcIix2YWx1ZTpuZXcgVWludDhBcnJheX19ZnVuY3Rpb24gYygpe3JldHVybntrZXk6XCJcIix2YWx1ZTpuZXcgVWludDhBcnJheX19ZnVuY3Rpb24gdSgpe3JldHVybntrZXk6XCJcIix2YWx1ZTpuZXcgVWludDhBcnJheX19ZnVuY3Rpb24gbCgpe3JldHVybntrZXk6XCJcIix2YWx1ZTpuZXcgVWludDhBcnJheX19ZnVuY3Rpb24gZCgpe3JldHVybntrZXk6XCJcIix2YWx1ZTpuZXcgVWludDhBcnJheX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gZS50b1N0cmluZygpfSFmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9UUklHR0VSX1RZUEU9MF09XCJVTktOT1dOX1RSSUdHRVJfVFlQRVwiLGVbZS5TRVJWRVJfVFJJR0dFUj0xXT1cIlNFUlZFUl9UUklHR0VSXCIsZVtlLkFCX0FMTE9DQVRJT049Ml09XCJBQl9BTExPQ0FUSU9OXCIsZVtlLkNMSUVOVF9UUklHR0VSPTNdPVwiQ0xJRU5UX1RSSUdHRVJcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkFiVHJpZ2dlclR5cGV8fCh0LkFiVHJpZ2dlclR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9BQ0NPVU5UX0lORk9fVFlQRT0wXT1cIlVOS05PV05fQUNDT1VOVF9JTkZPX1RZUEVcIixlW2UuRU1BSUw9MV09XCJFTUFJTFwiLGVbZS5QSE9ORT0yXT1cIlBIT05FXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5BY2NvdW50SW5mb1R5cGV8fCh0LkFjY291bnRJbmZvVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0FDQ09VTlRTX0FDVElPTj0wXT1cIlVOS05PV05fQUNDT1VOVFNfQUNUSU9OXCIsZVtlLkxPR0lOX0FDQ09VTlRTX0FDVElPTj0xXT1cIkxPR0lOX0FDQ09VTlRTX0FDVElPTlwiLGVbZS5TSUdOVVBfQUNDT1VOVFNfQUNUSU9OPTJdPVwiU0lHTlVQX0FDQ09VTlRTX0FDVElPTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQWNjb3VudHNBY3Rpb258fCh0LkFjY291bnRzQWN0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQUNDT1VOVFNfUkVTUE9OU0U9MF09XCJVTktOT1dOX0FDQ09VTlRTX1JFU1BPTlNFXCIsZVtlLlNVQ0NFU1NfQUNDT1VOVFNfUkVTUE9OU0U9MV09XCJTVUNDRVNTX0FDQ09VTlRTX1JFU1BPTlNFXCIsZVtlLkZBSUxFRF9BQ0NPVU5UU19SRVNQT05TRT0yXT1cIkZBSUxFRF9BQ0NPVU5UU19SRVNQT05TRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQWNjb3VudHNSZXNwb25zZXx8KHQuQWNjb3VudHNSZXNwb25zZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5JT1NfTkFUSVZFPTBdPVwiSU9TX05BVElWRVwiLGVbZS5JT1NfV0VCX0RFU0tUT1A9MV09XCJJT1NfV0VCX0RFU0tUT1BcIixlW2UuSU9TX1dFQl9NT0JJTEU9Ml09XCJJT1NfV0VCX01PQklMRVwiLGVbZS5BTkRST0lEX05BVElWRT0zXT1cIkFORFJPSURfTkFUSVZFXCIsZVtlLkFORFJPSURfV0VCX0RFU0tUT1A9NF09XCJBTkRST0lEX1dFQl9ERVNLVE9QXCIsZVtlLkFORFJPSURfV0VCX01PQklMRT01XT1cIkFORFJPSURfV0VCX01PQklMRVwiLGVbZS5PU1hfV0VCX0RFU0tUT1A9Nl09XCJPU1hfV0VCX0RFU0tUT1BcIixlW2UuT1NYX1dFQl9NT0JJTEU9N109XCJPU1hfV0VCX01PQklMRVwiLGVbZS5XSU5ET1dTX1dFQl9ERVNLVE9QPThdPVwiV0lORE9XU19XRUJfREVTS1RPUFwiLGVbZS5XSU5ET1dTX1dFQl9NT0JJTEU9OV09XCJXSU5ET1dTX1dFQl9NT0JJTEVcIixlW2UuTElOVVhfV0VCX0RFU0tUT1A9MTBdPVwiTElOVVhfV0VCX0RFU0tUT1BcIixlW2UuTElOVVhfV0VCX01PQklMRT0xMV09XCJMSU5VWF9XRUJfTU9CSUxFXCIsZVtlLkxFTlNTVFVESU89MTJdPVwiTEVOU1NUVURJT1wiLGVbZS5TTkFQQ0FNRVJBPTEzXT1cIlNOQVBDQU1FUkFcIixlW2UuV0VCX0RFU0tUT1A9MTRdPVwiV0VCX0RFU0tUT1BcIixlW2UuV0VCX01PQklMRT0xNV09XCJXRUJfTU9CSUxFXCIsZVtlLkxFTlNTVFVESU9fUkVNQUtFPTE2XT1cIkxFTlNTVFVESU9fUkVNQUtFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5BcHBUeXBlfHwodC5BcHBUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkFSRVNfQ09OTkVDVElWSVRZX1RZUEVfVU5LTk9XTj0wXT1cIkFSRVNfQ09OTkVDVElWSVRZX1RZUEVfVU5LTk9XTlwiLGVbZS5BUkVTX0NPTk5FQ1RJVklUWV9UWVBFX1dJRkk9MV09XCJBUkVTX0NPTk5FQ1RJVklUWV9UWVBFX1dJRklcIixlW2UuQVJFU19DT05ORUNUSVZJVFlfVFlQRV9NT0JJTEU9Ml09XCJBUkVTX0NPTk5FQ1RJVklUWV9UWVBFX01PQklMRVwiLGVbZS5BUkVTX0NPTk5FQ1RJVklUWV9UWVBFX1VOUkVBQ0hBQkxFPTNdPVwiQVJFU19DT05ORUNUSVZJVFlfVFlQRV9VTlJFQUNIQUJMRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQXJlc0Nvbm5lY3Rpdml0eVR5cGV8fCh0LkFyZXNDb25uZWN0aXZpdHlUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkFSRVNfRkVBVFVSRV9FWElUX1JFQVNPTl9VTktOT1dOPTBdPVwiQVJFU19GRUFUVVJFX0VYSVRfUkVBU09OX1VOS05PV05cIixlW2UuQVJFU19GRUFUVVJFX0VYSVRfUkVBU09OX1RBUF9QUk9EVUNUX0NBUkQ9MV09XCJBUkVTX0ZFQVRVUkVfRVhJVF9SRUFTT05fVEFQX1BST0RVQ1RfQ0FSRFwiLGVbZS5BUkVTX0ZFQVRVUkVfRVhJVF9SRUFTT05fQ0xPU0VfQ0FNRVJBX1ZJRVc9Ml09XCJBUkVTX0ZFQVRVUkVfRVhJVF9SRUFTT05fQ0xPU0VfQ0FNRVJBX1ZJRVdcIixlW2UuQVJFU19GRUFUVVJFX0VYSVRfUkVBU09OX0FQUF9CQUNLR1JPVU5EPTNdPVwiQVJFU19GRUFUVVJFX0VYSVRfUkVBU09OX0FQUF9CQUNLR1JPVU5EXCIsZVtlLkFSRVNfRkVBVFVSRV9FWElUX1JFQVNPTl9BUFBfQ1JBU0g9NF09XCJBUkVTX0ZFQVRVUkVfRVhJVF9SRUFTT05fQVBQX0NSQVNIXCIsZVtlLkFSRVNfRkVBVFVSRV9FWElUX1JFQVNPTl9UQVBfRklOSVNIPTVdPVwiQVJFU19GRUFUVVJFX0VYSVRfUkVBU09OX1RBUF9GSU5JU0hcIixlW2UuQVJFU19GRUFUVVJFX0VYSVRfUkVBU09OX0lETEU9Nl09XCJBUkVTX0ZFQVRVUkVfRVhJVF9SRUFTT05fSURMRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQXJlc0ZlYXR1cmVFeGl0UmVhc29ufHwodC5BcmVzRmVhdHVyZUV4aXRSZWFzb249e30pKSxmdW5jdGlvbihlKXtlW2UuQVJFU19GRUFUVVJFX1RZUEVfVU5LTk9XTj0wXT1cIkFSRVNfRkVBVFVSRV9UWVBFX1VOS05PV05cIixlW2UuQVJFU19GRUFUVVJFX1RZUEVfQVJfTEVOU0VTPTFdPVwiQVJFU19GRUFUVVJFX1RZUEVfQVJfTEVOU0VTXCIsZVtlLkFSRVNfRkVBVFVSRV9UWVBFX0lNQUdFX1RSWU9OPTJdPVwiQVJFU19GRUFUVVJFX1RZUEVfSU1BR0VfVFJZT05cIixlW2UuQVJFU19GRUFUVVJFX1RZUEVfUFJPRF9WSVNVQUxJWkFUSU9OPTNdPVwiQVJFU19GRUFUVVJFX1RZUEVfUFJPRF9WSVNVQUxJWkFUSU9OXCIsZVtlLkFSRVNfRkVBVFVSRV9UWVBFX0ZJVF9GSU5ERVI9NF09XCJBUkVTX0ZFQVRVUkVfVFlQRV9GSVRfRklOREVSXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5BcmVzRmVhdHVyZVR5cGV8fCh0LkFyZXNGZWF0dXJlVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5BUkVTX1VOS05PV049MF09XCJBUkVTX1VOS05PV05cIixlW2UuQVJFU19ERUJVRz0xXT1cIkFSRVNfREVCVUdcIixlW2UuQVJFU19SRUxFQVNFPTJdPVwiQVJFU19SRUxFQVNFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5BcmVzRmxhdm9yfHwodC5BcmVzRmxhdm9yPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkFSRVNfTUVESUFfVFlQRV9VTktOT1dOPTBdPVwiQVJFU19NRURJQV9UWVBFX1VOS05PV05cIixlW2UuQVJFU19NRURJQV9UWVBFX0lNQUdFPTFdPVwiQVJFU19NRURJQV9UWVBFX0lNQUdFXCIsZVtlLkFSRVNfTUVESUFfVFlQRV9WSURFTz0yXT1cIkFSRVNfTUVESUFfVFlQRV9WSURFT1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQXJlc01lZGlhVHlwZXx8KHQuQXJlc01lZGlhVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5BUkVTX1BIT1RPU0hPT1RfQ0FQVFVSRV9TT1VSQ0VfVU5LTk9XTj0wXT1cIkFSRVNfUEhPVE9TSE9PVF9DQVBUVVJFX1NPVVJDRV9VTktOT1dOXCIsZVtlLkFSRVNfUEhPVE9TSE9PVF9DQVBUVVJFX1NPVVJDRV9GSVJTVF9USU1FPTFdPVwiQVJFU19QSE9UT1NIT09UX0NBUFRVUkVfU09VUkNFX0ZJUlNUX1RJTUVcIixlW2UuQVJFU19QSE9UT1NIT09UX0NBUFRVUkVfU09VUkNFX1JFVFJZPTJdPVwiQVJFU19QSE9UT1NIT09UX0NBUFRVUkVfU09VUkNFX1JFVFJZXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5BcmVzUGhvdG9zaG9vdENhcHR1cmVTb3VyY2V8fCh0LkFyZXNQaG90b3Nob290Q2FwdHVyZVNvdXJjZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5BUkVTX1BST0RVQ1RfVEFQX1NPVVJDRV9VTktOT1dOPTBdPVwiQVJFU19QUk9EVUNUX1RBUF9TT1VSQ0VfVU5LTk9XTlwiLGVbZS5BUkVTX1BST0RVQ1RfVEFQX1NPVVJDRV9QUk9EVUNUX0NBUkQ9MV09XCJBUkVTX1BST0RVQ1RfVEFQX1NPVVJDRV9QUk9EVUNUX0NBUkRcIixlW2UuQVJFU19QUk9EVUNUX1RBUF9TT1VSQ0VfVFJZT05fQlVUVE9OPTJdPVwiQVJFU19QUk9EVUNUX1RBUF9TT1VSQ0VfVFJZT05fQlVUVE9OXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5BcmVzUHJvZHVjdFRhcFNvdXJjZXx8KHQuQXJlc1Byb2R1Y3RUYXBTb3VyY2U9e30pKSxmdW5jdGlvbihlKXtlW2UuQVJFU19WQVJJQU5UX1VOS05PV049MF09XCJBUkVTX1ZBUklBTlRfVU5LTk9XTlwiLGVbZS5BUkVTX1ZBUklBTlRfV0VCPTFdPVwiQVJFU19WQVJJQU5UX1dFQlwiLGVbZS5BUkVTX1ZBUklBTlRfTU9CSUxFPTJdPVwiQVJFU19WQVJJQU5UX01PQklMRVwiLGVbZS5BUkVTX1ZBUklBTlRfTUlSUk9SPTNdPVwiQVJFU19WQVJJQU5UX01JUlJPUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQXJlc1ZhcmlhbnR8fCh0LkFyZXNWYXJpYW50PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV049MF09XCJVTktOT1dOXCIsZVtlLlBPT1I9MV09XCJQT09SXCIsZVtlLk5PUk1BTD0yXT1cIk5PUk1BTFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQmFuZHdpZHRoQ2xhc3N8fCh0LkJhbmR3aWR0aENsYXNzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQUNDT1VOVF9FTUFJTF9BQ1RJT049MF09XCJVTktOT1dOX0FDQ09VTlRfRU1BSUxfQUNUSU9OXCIsZVtlLkVNQUlMX0VOVFJZX1BBR0VfVklFVz0xXT1cIkVNQUlMX0VOVFJZX1BBR0VfVklFV1wiLGVbZS5FTUFJTF9FTlRSWV9WRVJJRllfVEFQPTJdPVwiRU1BSUxfRU5UUllfVkVSSUZZX1RBUFwiLGVbZS5FTUFJTF9FTlRSWV9TVUNDRVNTPTNdPVwiRU1BSUxfRU5UUllfU1VDQ0VTU1wiLGVbZS5FTUFJTF9WRVJJRllfUEFHRV9WSUVXPTRdPVwiRU1BSUxfVkVSSUZZX1BBR0VfVklFV1wiLGVbZS5FTUFJTF9WRVJJRllfT1BFTl9JTkJPWD01XT1cIkVNQUlMX1ZFUklGWV9PUEVOX0lOQk9YXCIsZVtlLkVNQUlMX0lOX1VTRV9QQUdFX1ZJRVc9Nl09XCJFTUFJTF9JTl9VU0VfUEFHRV9WSUVXXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwQWNjb3VudEVtYWlsQWN0aW9ufHwodC5CaXRtb2ppQXBwQWNjb3VudEVtYWlsQWN0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQUNDT1VOVF9QSE9ORV9BQ1RJT049MF09XCJVTktOT1dOX0FDQ09VTlRfUEhPTkVfQUNUSU9OXCIsZVtlLlBIT05FX0VOVFJZX1BBR0VfVklFVz0yXT1cIlBIT05FX0VOVFJZX1BBR0VfVklFV1wiLGVbZS5QSE9ORV9WRVJJRllfUEFHRV9WSUVXPTVdPVwiUEhPTkVfVkVSSUZZX1BBR0VfVklFV1wiLGVbZS5QSE9ORV9WRVJJRllfU1VDQ0VTUz02XT1cIlBIT05FX1ZFUklGWV9TVUNDRVNTXCIsZVtlLlBIT05FX1NFTkRfQ09ERV9UQVA9N109XCJQSE9ORV9TRU5EX0NPREVfVEFQXCIsZVtlLlBIT05FX1ZFUklGWV9FTlRFUl9DT0RFPThdPVwiUEhPTkVfVkVSSUZZX0VOVEVSX0NPREVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBBY2NvdW50UGhvbmVBY3Rpb258fCh0LkJpdG1vamlBcHBBY2NvdW50UGhvbmVBY3Rpb249e30pKSxmdW5jdGlvbihlKXtlW2UuQklUTU9KSV9BUFBfQVVUSF9VTktOT1dOX0VWRU5UX1RZUEU9MF09XCJCSVRNT0pJX0FQUF9BVVRIX1VOS05PV05fRVZFTlRfVFlQRVwiLGVbZS5CSVRNT0pJX0FQUF9BVVRIX0FVVEhFTlRJQ0FUSU9OX0xPR0lOPTFdPVwiQklUTU9KSV9BUFBfQVVUSF9BVVRIRU5USUNBVElPTl9MT0dJTlwiLGVbZS5CSVRNT0pJX0FQUF9BVVRIX0JJUlRIREFZX1NJR05VUF9TVUNDRVNTPTJdPVwiQklUTU9KSV9BUFBfQVVUSF9CSVJUSERBWV9TSUdOVVBfU1VDQ0VTU1wiLGVbZS5CSVRNT0pJX0FQUF9BVVRIX0JJUlRIREFZX1NJR05VUF9GQUlMRUQ9M109XCJCSVRNT0pJX0FQUF9BVVRIX0JJUlRIREFZX1NJR05VUF9GQUlMRURcIixlW2UuQklUTU9KSV9BUFBfQVVUSF9CSVJUSERBWV9TSUdOVVBfUEFHRV9WSUVXPTRdPVwiQklUTU9KSV9BUFBfQVVUSF9CSVJUSERBWV9TSUdOVVBfUEFHRV9WSUVXXCIsZVtlLkJJVE1PSklfQVBQX0FVVEhfQlNfTE9HSU5fQVVUSE9SSVpFX1VTRVJfU1VDQ0VTUz01XT1cIkJJVE1PSklfQVBQX0FVVEhfQlNfTE9HSU5fQVVUSE9SSVpFX1VTRVJfU1VDQ0VTU1wiLGVbZS5CSVRNT0pJX0FQUF9BVVRIX0JTX0xPR0lOX1BBR0VfVklFVz02XT1cIkJJVE1PSklfQVBQX0FVVEhfQlNfTE9HSU5fUEFHRV9WSUVXXCIsZVtlLkJJVE1PSklfQVBQX0FVVEhfQlNfTE9HSU5fVEFQPTddPVwiQklUTU9KSV9BUFBfQVVUSF9CU19MT0dJTl9UQVBcIixlW2UuQklUTU9KSV9BUFBfQVVUSF9CU19TSUdOVVBfU1VDQ0VTUz04XT1cIkJJVE1PSklfQVBQX0FVVEhfQlNfU0lHTlVQX1NVQ0NFU1NcIixlW2UuQklUTU9KSV9BUFBfQVVUSF9CU19TSUdOVVBfVEFQPTldPVwiQklUTU9KSV9BUFBfQVVUSF9CU19TSUdOVVBfVEFQXCIsZVtlLkJJVE1PSklfQVBQX0FVVEhfRU1BSUxfTE9HSU5fVEFQPTEwXT1cIkJJVE1PSklfQVBQX0FVVEhfRU1BSUxfTE9HSU5fVEFQXCIsZVtlLkJJVE1PSklfQVBQX0FVVEhfRk9SR09UX1BBU1NXT1JEX1RBUD0xMV09XCJCSVRNT0pJX0FQUF9BVVRIX0ZPUkdPVF9QQVNTV09SRF9UQVBcIixlW2UuQklUTU9KSV9BUFBfQVVUSF9SRVNFVF9QQVNTV09SRF9QQUdFX1ZJRVc9MTJdPVwiQklUTU9KSV9BUFBfQVVUSF9SRVNFVF9QQVNTV09SRF9QQUdFX1ZJRVdcIixlW2UuQklUTU9KSV9BUFBfQVVUSF9TQ19MT0dJTl9NT05PX1VTRVJfTE9HSU5fU1VDQ0VTUz0xM109XCJCSVRNT0pJX0FQUF9BVVRIX1NDX0xPR0lOX01PTk9fVVNFUl9MT0dJTl9TVUNDRVNTXCIsZVtlLkJJVE1PSklfQVBQX0FVVEhfU0NfTE9HSU5fU1VDQ0VTUz0xNF09XCJCSVRNT0pJX0FQUF9BVVRIX1NDX0xPR0lOX1NVQ0NFU1NcIixlW2UuQklUTU9KSV9BUFBfQVVUSF9TQ19MT0dJTl9UQVA9MTVdPVwiQklUTU9KSV9BUFBfQVVUSF9TQ19MT0dJTl9UQVBcIixlW2UuQklUTU9KSV9BUFBfQVVUSF9XRUxDT01FX1BBR0VfVklFVz0xNl09XCJCSVRNT0pJX0FQUF9BVVRIX1dFTENPTUVfUEFHRV9WSUVXXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwQXV0aEV2ZW50VHlwZXx8KHQuQml0bW9qaUFwcEF1dGhFdmVudFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9TT1VSQ0U9MF09XCJVTktOT1dOX1NPVVJDRVwiLGVbZS5CSVRNT0pJX0FQUF9BVkFUQVJfQlVJTERFUl9MQVVOQ0g9MV09XCJCSVRNT0pJX0FQUF9BVkFUQVJfQlVJTERFUl9MQVVOQ0hcIixlW2UuQklUTU9KSV9BUFBfQ1JFQVRFX0FWQVRBUj0yXT1cIkJJVE1PSklfQVBQX0NSRUFURV9BVkFUQVJcIixlW2UuQklUTU9KSV9BUFBfUkVTRVRfQVZBVEFSPTNdPVwiQklUTU9KSV9BUFBfUkVTRVRfQVZBVEFSXCIsZVtlLkJJVE1PSklfQVBQX0ZBU0hJT05fTEFVTkNIPTRdPVwiQklUTU9KSV9BUFBfRkFTSElPTl9MQVVOQ0hcIixlW2UuS0VZQk9BUkRfRkFTSElPTl9CVUlMREVSPTVdPVwiS0VZQk9BUkRfRkFTSElPTl9CVUlMREVSXCIsZVtlLlNOQVBDSEFUPTZdPVwiU05BUENIQVRcIixlW2UuQklUTU9KSV9BUFBfU1RZTEVfQ0hBTkdFPTddPVwiQklUTU9KSV9BUFBfU1RZTEVfQ0hBTkdFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlclNvdXJjZXx8KHQuQml0bW9qaUFwcEF2YXRhckJ1aWxkZXJTb3VyY2U9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0FQUF9DTE9TRV9TVEFURT0wXT1cIlVOS05PV05fQklUTU9KSV9BUFBfQ0xPU0VfU1RBVEVcIixlW2UuVU5FWFBFQ1RFRD0xXT1cIlVORVhQRUNURURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBDbG9zZVN0YXRlfHwodC5CaXRtb2ppQXBwQ2xvc2VTdGF0ZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0NPTlRBQ1RfRlJJRU5ETU9KSV9BQ1RJT049MF09XCJVTktOT1dOX0NPTlRBQ1RfRlJJRU5ETU9KSV9BQ1RJT05cIixlW2UuU1lOQ19TVUNDRVNTPTFdPVwiU1lOQ19TVUNDRVNTXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwQ29udGFjdEZyaWVuZG1vamlBY3Rpb258fCh0LkJpdG1vamlBcHBDb250YWN0RnJpZW5kbW9qaUFjdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0NPTlRBQ1RfRlJJRU5ETU9KSV9PTkJPQVJESU5HX0VOVFJZX1BPSU5UPTBdPVwiVU5LTk9XTl9DT05UQUNUX0ZSSUVORE1PSklfT05CT0FSRElOR19FTlRSWV9QT0lOVFwiLGVbZS5TVElDS0VSX1BJQ0tFUl9GUklFTkRNT0pJX09OQk9BUkRJTkdfRU5UUllfUE9JTlQ9MV09XCJTVElDS0VSX1BJQ0tFUl9GUklFTkRNT0pJX09OQk9BUkRJTkdfRU5UUllfUE9JTlRcIixlW2UuSU5WSVRFX0ZMT1dfRlJJRU5ETU9KSV9PTkJPQVJESU5HX0VOVFJZX1BPSU5UPTJdPVwiSU5WSVRFX0ZMT1dfRlJJRU5ETU9KSV9PTkJPQVJESU5HX0VOVFJZX1BPSU5UXCIsZVtlLkNPTlRFTlRfUFJPVklERVJfRlJJRU5ETU9KSV9PTkJPQVJESU5HX0VOVFJZX1BPSU5UPTNdPVwiQ09OVEVOVF9QUk9WSURFUl9GUklFTkRNT0pJX09OQk9BUkRJTkdfRU5UUllfUE9JTlRcIixlW2UuS0VZQk9BUkRfVEFCX0ZSSUVORE1PSklfT05CT0FSRElOR19FTlRSWV9QT0lOVD00XT1cIktFWUJPQVJEX1RBQl9GUklFTkRNT0pJX09OQk9BUkRJTkdfRU5UUllfUE9JTlRcIixlW2UuS0VZQk9BUkRfRVhURU5TSU9OX0ZSSUVORE1PSklfT05CT0FSRElOR19FTlRSWV9QT0lOVD01XT1cIktFWUJPQVJEX0VYVEVOU0lPTl9GUklFTkRNT0pJX09OQk9BUkRJTkdfRU5UUllfUE9JTlRcIixlW2UuTUVSQ0hfRlJJRU5ETU9KSV9PTkJPQVJESU5HX0VOVFJZX1BPSU5UPTZdPVwiTUVSQ0hfRlJJRU5ETU9KSV9PTkJPQVJESU5HX0VOVFJZX1BPSU5UXCIsZVtlLkNPTk5FQ1RFRF9BUFBTX0ZSSUVORE1PSklfT05CT0FSRElOR19FTlRSWV9QT0lOVD03XT1cIkNPTk5FQ1RFRF9BUFBTX0ZSSUVORE1PSklfT05CT0FSRElOR19FTlRSWV9QT0lOVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcENvbnRhY3RGcmllbmRtb2ppT25ib2FyZGluZ0VudHJ5UG9pbnR8fCh0LkJpdG1vamlBcHBDb250YWN0RnJpZW5kbW9qaU9uYm9hcmRpbmdFbnRyeVBvaW50PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQ09OVEVOVF9QUk9WSURFUl9FVkVOVD0wXT1cIlVOS05PV05fQ09OVEVOVF9QUk9WSURFUl9FVkVOVFwiLGVbZS5TRUFSQ0hfQVBJX1VTQUdFPTFdPVwiU0VBUkNIX0FQSV9VU0FHRVwiLGVbZS5TRUxGSUVfQVBJX1VTQUdFPTJdPVwiU0VMRklFX0FQSV9VU0FHRVwiLGVbZS5TVElDS0VSX0FQSV9VU0FHRT0zXT1cIlNUSUNLRVJfQVBJX1VTQUdFXCIsZVtlLlBBQ0tTX0FQSV9VU0FHRT00XT1cIlBBQ0tTX0FQSV9VU0FHRVwiLGVbZS5QQUNLX0FQSV9VU0FHRT01XT1cIlBBQ0tfQVBJX1VTQUdFXCIsZVtlLkFDQ0VTU19HUkFOVEVEPTZdPVwiQUNDRVNTX0dSQU5URURcIixlW2UuQUNDRVNTX1JFVk9LRUQ9N109XCJBQ0NFU1NfUkVWT0tFRFwiLGVbZS5BQ0NFU1NfUkVRVUVTVD04XT1cIkFDQ0VTU19SRVFVRVNUXCIsZVtlLkFDQ0VTU19SRVFVRVNUX0dSQU5URUQ9OV09XCJBQ0NFU1NfUkVRVUVTVF9HUkFOVEVEXCIsZVtlLkFDQ0VTU19SRVFVRVNUX1JFSkVDVEVEPTEwXT1cIkFDQ0VTU19SRVFVRVNUX1JFSkVDVEVEXCIsZVtlLkFDQ0VTU19SRVFVRVNUX0RFTklFRD0xMV09XCJBQ0NFU1NfUkVRVUVTVF9ERU5JRURcIixlW2UuRU5BQkxFX0RFVkVMT1BFUl9NT0RFPTEyXT1cIkVOQUJMRV9ERVZFTE9QRVJfTU9ERVwiLGVbZS5ESVNBQkxFX0RFVkVMT1BFUl9NT0RFPTEzXT1cIkRJU0FCTEVfREVWRUxPUEVSX01PREVcIixlW2UuRlJJRU5EU19BUElfVVNBR0U9MTRdPVwiRlJJRU5EU19BUElfVVNBR0VcIixlW2UuRlJJRU5EX0FQSV9VU0FHRT0xNV09XCJGUklFTkRfQVBJX1VTQUdFXCIsZVtlLkNVU1RPTU9KSV9TVElDS0VSX0FQSV9VU0FHRT0xNl09XCJDVVNUT01PSklfU1RJQ0tFUl9BUElfVVNBR0VcIixlW2UuQ1VTVE9NT0pJX1NFQVJDSF9BUElfVVNBR0U9MTddPVwiQ1VTVE9NT0pJX1NFQVJDSF9BUElfVVNBR0VcIixlW2UuQ1VTVE9NT0pJX01FVEFEQVRBX0FQSV9VU0FHRT0xOF09XCJDVVNUT01PSklfTUVUQURBVEFfQVBJX1VTQUdFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwQ29udGVudFByb3ZpZGVyRXZlbnRUeXBlfHwodC5CaXRtb2ppQXBwQ29udGVudFByb3ZpZGVyRXZlbnRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQ09OVEVOVF9QUk9WSURFUl9QRVJNSVNTSU9OPTBdPVwiVU5LTk9XTl9DT05URU5UX1BST1ZJREVSX1BFUk1JU1NJT05cIixlW2UuRlJJRU5EUz0xXT1cIkZSSUVORFNcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBDb250ZW50UHJvdmlkZXJQZXJtaXNzaW9ufHwodC5CaXRtb2ppQXBwQ29udGVudFByb3ZpZGVyUGVybWlzc2lvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0RJUkVDVF9BVVRIX0VOVFJZX1BPSU5UPTBdPVwiVU5LTk9XTl9ESVJFQ1RfQVVUSF9FTlRSWV9QT0lOVFwiLGVbZS5ESVJFQ1RfQVVUSF9ERUVQTElOSz0xXT1cIkRJUkVDVF9BVVRIX0RFRVBMSU5LXCIsZVtlLkRJUkVDVF9BVVRIX1NDQU5DT0RFPTJdPVwiRElSRUNUX0FVVEhfU0NBTkNPREVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBEaXJlY3RBdXRoRW50cnlQb2ludHx8KHQuQml0bW9qaUFwcERpcmVjdEF1dGhFbnRyeVBvaW50PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fRElSRUNUX0FVVEhfRVZFTlRfVFlQRT0wXT1cIlVOS05PV05fRElSRUNUX0FVVEhfRVZFTlRfVFlQRVwiLGVbZS5BVVRIT1JJWkFUSU9OX1JFUVVFU1RfRVJST1I9MV09XCJBVVRIT1JJWkFUSU9OX1JFUVVFU1RfRVJST1JcIixlW2UuQVVUSE9SSVpBVElPTl9SRVFVRVNUX0lOVkFMSUQ9Ml09XCJBVVRIT1JJWkFUSU9OX1JFUVVFU1RfSU5WQUxJRFwiLGVbZS5BVVRIT1JJWkFUSU9OX1JFUVVFU1RfVklFVz0zXT1cIkFVVEhPUklaQVRJT05fUkVRVUVTVF9WSUVXXCIsZVtlLkFVVEhPUklaQVRJT05fUkVRVUVTVF9ERU5JQUw9NF09XCJBVVRIT1JJWkFUSU9OX1JFUVVFU1RfREVOSUFMXCIsZVtlLkFVVEhPUklaQVRJT05fUkVRVUVTVF9BUFBST1ZBTD01XT1cIkFVVEhPUklaQVRJT05fUkVRVUVTVF9BUFBST1ZBTFwiLGVbZS5BVVRIT1JJWkFUSU9OX1JFUVVFU1RfQVBQUk9WQUxfRVJST1I9Nl09XCJBVVRIT1JJWkFUSU9OX1JFUVVFU1RfQVBQUk9WQUxfRVJST1JcIixlW2UuQVVUSE9SSVpBVElPTl9SRVZPS0VEPTddPVwiQVVUSE9SSVpBVElPTl9SRVZPS0VEXCIsZVtlLkFVVEhPUklaQVRJT05fU1VDQ0VTU19WSUVXPThdPVwiQVVUSE9SSVpBVElPTl9TVUNDRVNTX1ZJRVdcIixlW2UuQVVUSE9SSVpBVElPTl9SRVFVRVNUX0RFRVBMSU5LPTldPVwiQVVUSE9SSVpBVElPTl9SRVFVRVNUX0RFRVBMSU5LXCIsZVtlLkNPTk5FQ1RfUEFHRV9WSUVXPTEwXT1cIkNPTk5FQ1RfUEFHRV9WSUVXXCIsZVtlLlNDQU5DT0RFX0RJU0NPTk5FQ1Q9MTFdPVwiU0NBTkNPREVfRElTQ09OTkVDVFwiLGVbZS5TQ0FOQ09ERV9WSUVXPTEyXT1cIlNDQU5DT0RFX1ZJRVdcIixlW2UuU0NBTkNPREVfUkVUUlk9MTNdPVwiU0NBTkNPREVfUkVUUllcIixlW2UuU0NBTkNPREVfRVhQSVJFPTE0XT1cIlNDQU5DT0RFX0VYUElSRVwiLGVbZS5TQ0FOQ09ERV9FUlJPUj0xNV09XCJTQ0FOQ09ERV9FUlJPUlwiLGVbZS5TQ0FOQ09ERV9TVUNDRVNTPTE2XT1cIlNDQU5DT0RFX1NVQ0NFU1NcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBEaXJlY3RBdXRoRXZlbnRUeXBlfHwodC5CaXRtb2ppQXBwRGlyZWN0QXV0aEV2ZW50VHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5CSVRNT0pJX0FQUF9GUklFTkRfU0VMRUNUSU9OX1NPVVJDRV9VTktOT1dOPTBdPVwiQklUTU9KSV9BUFBfRlJJRU5EX1NFTEVDVElPTl9TT1VSQ0VfVU5LTk9XTlwiLGVbZS5CSVRNT0pJX0FQUF9GUklFTkRfU0VMRUNUSU9OX1NPVVJDRV9QSUNLRVI9MV09XCJCSVRNT0pJX0FQUF9GUklFTkRfU0VMRUNUSU9OX1NPVVJDRV9QSUNLRVJcIixlW2UuQklUTU9KSV9BUFBfRlJJRU5EX1NFTEVDVElPTl9TT1VSQ0VfU1VHR0VTVD0yXT1cIkJJVE1PSklfQVBQX0ZSSUVORF9TRUxFQ1RJT05fU09VUkNFX1NVR0dFU1RcIixlW2UuQklUTU9KSV9BUFBfRlJJRU5EX1NFTEVDVElPTl9TT1VSQ0VfU0VBUkNIPTNdPVwiQklUTU9KSV9BUFBfRlJJRU5EX1NFTEVDVElPTl9TT1VSQ0VfU0VBUkNIXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwRnJpZW5kU2VsZWN0aW9uU291cmNlfHwodC5CaXRtb2ppQXBwRnJpZW5kU2VsZWN0aW9uU291cmNlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fRlJJRU5ETU9KSV9GUklFTkRfUElDS0VSX0FDVElPTj0wXT1cIlVOS05PV05fRlJJRU5ETU9KSV9GUklFTkRfUElDS0VSX0FDVElPTlwiLGVbZS5GUklFTkRfUElDS0VSX1ZJRVc9MV09XCJGUklFTkRfUElDS0VSX1ZJRVdcIixlW2UuRlJJRU5EX1NFTEVDVEVEPTJdPVwiRlJJRU5EX1NFTEVDVEVEXCIsZVtlLkZSSUVORF9ERVNFTEVDVEVEPTNdPVwiRlJJRU5EX0RFU0VMRUNURURcIixlW2UuU0VBUkNIX1NFTEVDVEVEPTRdPVwiU0VBUkNIX1NFTEVDVEVEXCIsZVtlLlNFQVJDSF9TVUNDRVNTPTVdPVwiU0VBUkNIX1NVQ0NFU1NcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBGcmllbmRtb2ppRnJpZW5kUGlja2VyQWN0aW9ufHwodC5CaXRtb2ppQXBwRnJpZW5kbW9qaUZyaWVuZFBpY2tlckFjdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0ZSSUVORE1PSklfRlJJRU5EX1BJQ0tFUl9UWVBFPTBdPVwiVU5LTk9XTl9GUklFTkRNT0pJX0ZSSUVORF9QSUNLRVJfVFlQRVwiLGVbZS5GUklFTkRNT0pJX0ZSSUVORF9QSUNLRVJfQ0FST1VTRUw9MV09XCJGUklFTkRNT0pJX0ZSSUVORF9QSUNLRVJfQ0FST1VTRUxcIixlW2UuRlJJRU5ETU9KSV9GUklFTkRfUElDS0VSX01PREFMPTJdPVwiRlJJRU5ETU9KSV9GUklFTkRfUElDS0VSX01PREFMXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwRnJpZW5kbW9qaUZyaWVuZFBpY2tlclR5cGV8fCh0LkJpdG1vamlBcHBGcmllbmRtb2ppRnJpZW5kUGlja2VyVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0ZSSUVORE1PSklfT05CT0FSRElOR19BQ1RJT049MF09XCJVTktOT1dOX0ZSSUVORE1PSklfT05CT0FSRElOR19BQ1RJT05cIixlW2UuQ09OTkVDVF9DT05UQUNUU19WSUVXPTFdPVwiQ09OTkVDVF9DT05UQUNUU19WSUVXXCIsZVtlLkNPTk5FQ1RfQ09OVEFDVFNfRElTTUlTUz0yXT1cIkNPTk5FQ1RfQ09OVEFDVFNfRElTTUlTU1wiLGVbZS5DT05ORUNUX0NPTlRBQ1RTX1NVQ0NFU1M9M109XCJDT05ORUNUX0NPTlRBQ1RTX1NVQ0NFU1NcIixlW2UuRElTQ09WRVJZX1ZJRVc9NF09XCJESVNDT1ZFUllfVklFV1wiLGVbZS5ESVNDT1ZFUllfRElTTUlTUz01XT1cIkRJU0NPVkVSWV9ESVNNSVNTXCIsZVtlLkRJU0NPVkVSWV9TVUNDRVNTPTZdPVwiRElTQ09WRVJZX1NVQ0NFU1NcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBGcmllbmRtb2ppT25ib2FyZGluZ0FjdGlvbnx8KHQuQml0bW9qaUFwcEZyaWVuZG1vamlPbmJvYXJkaW5nQWN0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fSFRUUF9NRVRIT0Q9MF09XCJVTktOT1dOX0hUVFBfTUVUSE9EXCIsZVtlLkdFVD0xXT1cIkdFVFwiLGVbZS5QT1NUPTJdPVwiUE9TVFwiLGVbZS5ERUxFVEU9M109XCJERUxFVEVcIixlW2UuUFVUPTRdPVwiUFVUXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwSHR0cE1ldGhvZHx8KHQuQml0bW9qaUFwcEh0dHBNZXRob2Q9e30pKSxmdW5jdGlvbihlKXtlW2UuQklUTU9KSV9BUFBfSFRUUF9QUk9UT0NPTF9VTktOT1dOPTBdPVwiQklUTU9KSV9BUFBfSFRUUF9QUk9UT0NPTF9VTktOT1dOXCIsZVtlLkJJVE1PSklfQVBQX0hUVFBfUFJPVE9DT0xfSFRUUF8xXzA9MV09XCJCSVRNT0pJX0FQUF9IVFRQX1BST1RPQ09MX0hUVFBfMV8wXCIsZVtlLkJJVE1PSklfQVBQX0hUVFBfUFJPVE9DT0xfSFRUUF8xXzE9Ml09XCJCSVRNT0pJX0FQUF9IVFRQX1BST1RPQ09MX0hUVFBfMV8xXCIsZVtlLkJJVE1PSklfQVBQX0hUVFBfUFJPVE9DT0xfSFRUUF8yPTNdPVwiQklUTU9KSV9BUFBfSFRUUF9QUk9UT0NPTF9IVFRQXzJcIixlW2UuQklUTU9KSV9BUFBfSFRUUF9QUk9UT0NPTF9IVFRQXzM9NF09XCJCSVRNT0pJX0FQUF9IVFRQX1BST1RPQ09MX0hUVFBfM1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcEh0dHBQcm90b2NvbHx8KHQuQml0bW9qaUFwcEh0dHBQcm90b2NvbD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5BUFBfRElEX0VOVEVSX0JBQ0tHUk9VTkQ9MF09XCJBUFBfRElEX0VOVEVSX0JBQ0tHUk9VTkRcIixlW2UuQVBQX1dJTExfRU5URVJfRk9SRUdST1VORD0xXT1cIkFQUF9XSUxMX0VOVEVSX0ZPUkVHUk9VTkRcIixlW2UuU1RJQ0tFUl9NRVRBREFUQV9ESURfTE9BRF9GUk9NX0RJU0s9Ml09XCJTVElDS0VSX01FVEFEQVRBX0RJRF9MT0FEX0ZST01fRElTS1wiLGVbZS5TVElDS0VSX01FVEFEQVRBX1JFU1BPTlNFX1BBUlNFRD0zXT1cIlNUSUNLRVJfTUVUQURBVEFfUkVTUE9OU0VfUEFSU0VEXCIsZVtlLkZSSUVORE1PSklfT05CT0FSRElOR19ESURfU0hPVz00XT1cIkZSSUVORE1PSklfT05CT0FSRElOR19ESURfU0hPV1wiLGVbZS5GUklFTkRNT0pJX0xJU1RfRElEX0xPQUQ9NV09XCJGUklFTkRNT0pJX0xJU1RfRElEX0xPQURcIixlW2UuRElEX0NPUFlfU1RJQ0tFUl9UT19QQVNURUJPQVJEPTZdPVwiRElEX0NPUFlfU1RJQ0tFUl9UT19QQVNURUJPQVJEXCIsZVtlLlVOS05PV05fQml0bW9qaUFwcEtleWJvYXJkRXZlbnRUeXBlPTddPVwiVU5LTk9XTl9CaXRtb2ppQXBwS2V5Ym9hcmRFdmVudFR5cGVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBLZXlib2FyZEV2ZW50VHlwZXx8KHQuQml0bW9qaUFwcEtleWJvYXJkRXZlbnRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfQUNUSU9OX1VOS05PV049MF09XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX0FDVElPTl9VTktOT1dOXCIsZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfQUNUSU9OX1NLSVA9MV09XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX0FDVElPTl9TS0lQXCIsZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfQUNUSU9OX1RBUF9CVVRUT049Ml09XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX0FDVElPTl9UQVBfQlVUVE9OXCIsZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfQUNUSU9OX1ZJRVc9M109XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX0FDVElPTl9WSUVXXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwS2V5Ym9hcmRPbmJvYXJkaW5nQWN0aW9ufHwodC5CaXRtb2ppQXBwS2V5Ym9hcmRPbmJvYXJkaW5nQWN0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU09VUkNFX1VOS05PV049MF09XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX1NPVVJDRV9VTktOT1dOXCIsZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU09VUkNFX0FQUF9PUEVOPTFdPVwiQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TT1VSQ0VfQVBQX09QRU5cIixlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TT1VSQ0VfTUVOVT0yXT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU09VUkNFX01FTlVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBLZXlib2FyZE9uYm9hcmRpbmdTb3VyY2V8fCh0LkJpdG1vamlBcHBLZXlib2FyZE9uYm9hcmRpbmdTb3VyY2U9e30pKSxmdW5jdGlvbihlKXtlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX1VOS05PV049MF09XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX1NURVBfVU5LTk9XTlwiLGVbZS5CSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX1NURVBfSU5UUk89MV09XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9PTkJPQVJESU5HX1NURVBfSU5UUk9cIixlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX0VOQUJMRT0yXT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU1RFUF9FTkFCTEVcIixlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX0lOU1RSVUNUSU9OUz0zXT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU1RFUF9JTlNUUlVDVElPTlNcIixlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX1NXSVRDSF9LRVlCT0FSRD00XT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU1RFUF9TV0lUQ0hfS0VZQk9BUkRcIixlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX0ZJTklTSD01XT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU1RFUF9GSU5JU0hcIixlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX0dCT0FSRF9MT1dfU1RPUkFHRT02XT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU1RFUF9HQk9BUkRfTE9XX1NUT1JBR0VcIixlW2UuQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX0dCT0FSRF9CQVRURVJZX1NBVkVSPTddPVwiQklUTU9KSV9BUFBfS0VZQk9BUkRfT05CT0FSRElOR19TVEVQX0dCT0FSRF9CQVRURVJZX1NBVkVSXCIsZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU1RFUF9LRVlCT0FSRF9PTj04XT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX09OQk9BUkRJTkdfU1RFUF9LRVlCT0FSRF9PTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcEtleWJvYXJkT25ib2FyZGluZ1N0ZXB8fCh0LkJpdG1vamlBcHBLZXlib2FyZE9uYm9hcmRpbmdTdGVwPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX1RZUEVfVU5LTk9XTj0wXT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX1RZUEVfVU5LTk9XTlwiLGVbZS5CSVRNT0pJX0FQUF9LRVlCT0FSRF9UWVBFX0dCT0FSRD0xXT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX1RZUEVfR0JPQVJEXCIsZVtlLkJJVE1PSklfQVBQX0tFWUJPQVJEX1RZUEVfU0FNU1VOR19LRVlCT0FSRD0yXT1cIkJJVE1PSklfQVBQX0tFWUJPQVJEX1RZUEVfU0FNU1VOR19LRVlCT0FSRFwiLGVbZS5CSVRNT0pJX0FQUF9LRVlCT0FSRF9UWVBFX0JJVE1PSklfS0VZQk9BUkQ9M109XCJCSVRNT0pJX0FQUF9LRVlCT0FSRF9UWVBFX0JJVE1PSklfS0VZQk9BUkRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBLZXlib2FyZFR5cGV8fCh0LkJpdG1vamlBcHBLZXlib2FyZFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0FQUF9OQU1FPTBdPVwiVU5LTk9XTl9CSVRNT0pJX0FQUF9OQU1FXCIsZVtlLktFWUJPQVJEPTFdPVwiS0VZQk9BUkRcIixlW2UuQ09OVEFJTkVSPTJdPVwiQ09OVEFJTkVSXCIsZVtlLklNRVNTQUdFX0VYVEVOU0lPTj0zXT1cIklNRVNTQUdFX0VYVEVOU0lPTlwiLGVbZS5HQk9BUkQ9NF09XCJHQk9BUkRcIixlW2UuQ0hST01FX0VYVEVOU0lPTj01XT1cIkNIUk9NRV9FWFRFTlNJT05cIixlW2UuU0xBQ0s9Nl09XCJTTEFDS1wiLGVbZS5DT05URU5UX1BST1ZJREVSPTddPVwiQ09OVEVOVF9QUk9WSURFUlwiLGVbZS5XV1c9OF09XCJXV1dcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBOYW1lfHwodC5CaXRtb2ppQXBwTmFtZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5CSVRNT0pJX0FQUF9OQVZJR0FUSU9OX0JVVFRPTl9VTktOT1dOPTBdPVwiQklUTU9KSV9BUFBfTkFWSUdBVElPTl9CVVRUT05fVU5LTk9XTlwiLGVbZS5CSVRNT0pJX0FQUF9OQVZJR0FUSU9OX0JVVFRPTl9TVElDS0VSUz0xXT1cIkJJVE1PSklfQVBQX05BVklHQVRJT05fQlVUVE9OX1NUSUNLRVJTXCIsZVtlLkJJVE1PSklfQVBQX05BVklHQVRJT05fQlVUVE9OX0FWQVRBUl9FRElUPTJdPVwiQklUTU9KSV9BUFBfTkFWSUdBVElPTl9CVVRUT05fQVZBVEFSX0VESVRcIixlW2UuQklUTU9KSV9BUFBfTkFWSUdBVElPTl9CVVRUT05fRkFTSElPTj0zXT1cIkJJVE1PSklfQVBQX05BVklHQVRJT05fQlVUVE9OX0ZBU0hJT05cIixlW2UuQklUTU9KSV9BUFBfTkFWSUdBVElPTl9CVVRUT05fQ09OTkVDVD00XT1cIkJJVE1PSklfQVBQX05BVklHQVRJT05fQlVUVE9OX0NPTk5FQ1RcIixlW2UuQklUTU9KSV9BUFBfTkFWSUdBVElPTl9CVVRUT05fTUVSQ0g9NV09XCJCSVRNT0pJX0FQUF9OQVZJR0FUSU9OX0JVVFRPTl9NRVJDSFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcE5hdmlnYXRpb25CdXR0b258fCh0LkJpdG1vamlBcHBOYXZpZ2F0aW9uQnV0dG9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkJJVE1PSklfQVBQX05FVFdPUktfVFlQRV9VTktOT1dOPTBdPVwiQklUTU9KSV9BUFBfTkVUV09SS19UWVBFX1VOS05PV05cIixlW2UuQklUTU9KSV9BUFBfTkVUV09SS19UWVBFX05PTkU9MV09XCJCSVRNT0pJX0FQUF9ORVRXT1JLX1RZUEVfTk9ORVwiLGVbZS5CSVRNT0pJX0FQUF9ORVRXT1JLX1RZUEVfV0lGST0yXT1cIkJJVE1PSklfQVBQX05FVFdPUktfVFlQRV9XSUZJXCIsZVtlLkJJVE1PSklfQVBQX05FVFdPUktfVFlQRV8yRz0zXT1cIkJJVE1PSklfQVBQX05FVFdPUktfVFlQRV8yR1wiLGVbZS5CSVRNT0pJX0FQUF9ORVRXT1JLX1RZUEVfM0c9NF09XCJCSVRNT0pJX0FQUF9ORVRXT1JLX1RZUEVfM0dcIixlW2UuQklUTU9KSV9BUFBfTkVUV09SS19UWVBFXzRHPTVdPVwiQklUTU9KSV9BUFBfTkVUV09SS19UWVBFXzRHXCIsZVtlLkJJVE1PSklfQVBQX05FVFdPUktfVFlQRV81Rz02XT1cIkJJVE1PSklfQVBQX05FVFdPUktfVFlQRV81R1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcE5ldHdvcmtUeXBlfHwodC5CaXRtb2ppQXBwTmV0d29ya1R5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuQklUTU9KSV9BUFBfTk9USUZJQ0FUSU9OX0VWRU5UX1VOS05PV049MF09XCJCSVRNT0pJX0FQUF9OT1RJRklDQVRJT05fRVZFTlRfVU5LTk9XTlwiLGVbZS5CSVRNT0pJX0FQUF9OT1RJRklDQVRJT05fUkVDRUlWRUQ9MV09XCJCSVRNT0pJX0FQUF9OT1RJRklDQVRJT05fUkVDRUlWRURcIixlW2UuQklUTU9KSV9BUFBfTk9USUZJQ0FUSU9OX0NMSUNLRUQ9Ml09XCJCSVRNT0pJX0FQUF9OT1RJRklDQVRJT05fQ0xJQ0tFRFwiLGVbZS5CSVRNT0pJX0FQUF9OT1RJRklDQVRJT05fREVMRVRFRD0zXT1cIkJJVE1PSklfQVBQX05PVElGSUNBVElPTl9ERUxFVEVEXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwTm90aWZpY2F0aW9uRXZlbnRUeXBlfHwodC5CaXRtb2ppQXBwTm90aWZpY2F0aW9uRXZlbnRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQklUTU9KSV9BUFBfT1BFTl9TVEFURT0wXT1cIlVOS05PV05fQklUTU9KSV9BUFBfT1BFTl9TVEFURVwiLGVbZS5XQVJNPTFdPVwiV0FSTVwiLGVbZS5DT0xEPTJdPVwiQ09MRFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcE9wZW5TdGF0ZXx8KHQuQml0bW9qaUFwcE9wZW5TdGF0ZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5CSVRNT0pJX0FQUF9QQVlMT0FEX1RZUEVfVU5LTk9XTj0wXT1cIkJJVE1PSklfQVBQX1BBWUxPQURfVFlQRV9VTktOT1dOXCIsZVtlLkJJVE1PSklfQVBQX1BBWUxPQURfVFlQRV9TVElDS0VSPTFdPVwiQklUTU9KSV9BUFBfUEFZTE9BRF9UWVBFX1NUSUNLRVJcIixlW2UuQklUTU9KSV9BUFBfUEFZTE9BRF9UWVBFX0FQSV9SRVNQT05TRT0yXT1cIkJJVE1PSklfQVBQX1BBWUxPQURfVFlQRV9BUElfUkVTUE9OU0VcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBQYXlsb2FkVHlwZXx8KHQuQml0bW9qaUFwcFBheWxvYWRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkJJVE1PSklfQVBQX1VOS05PV05fUkVGRVJSRVI9MF09XCJCSVRNT0pJX0FQUF9VTktOT1dOX1JFRkVSUkVSXCIsZVtlLkJJVE1PSklfQVBQX05PX1JFRkVSUkVSPTFdPVwiQklUTU9KSV9BUFBfTk9fUkVGRVJSRVJcIixlW2UuQklUTU9KSV9BUFBfU05BUENIQVRfUkVGRVJSRVI9Ml09XCJCSVRNT0pJX0FQUF9TTkFQQ0hBVF9SRUZFUlJFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcFJlZmVycmVyfHwodC5CaXRtb2ppQXBwUmVmZXJyZXI9e30pKSxmdW5jdGlvbihlKXtlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX1VOS05PV05fRVZFTlRfVFlQRT0wXT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9VTktOT1dOX0VWRU5UX1RZUEVcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX0VNQUlMX0VOVFJZX1BBR0VfVklFVz0xXT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9FTUFJTF9FTlRSWV9QQUdFX1ZJRVdcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX1VTRV9QSE9ORV9JTlNURUFEX1RBUD0yXT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9VU0VfUEhPTkVfSU5TVEVBRF9UQVBcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX0VNQUlMX1NVQk1JVD0zXT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9FTUFJTF9TVUJNSVRcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX0JJVE1PSklfQUNDT1VOVF9GT1VORD00XT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9CSVRNT0pJX0FDQ09VTlRfRk9VTkRcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX1NOQVBDSEFUX0FDQ09VTlRfRk9VTkQ9NV09XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fU05BUENIQVRfQUNDT1VOVF9GT1VORFwiLGVbZS5CSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fTk9fQUNDT1VOVF9GT1VORD02XT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9OT19BQ0NPVU5UX0ZPVU5EXCIsZVtlLkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9MT0dfSU5fV0lUSF9TTkFQQ0hBVF9UQVA9N109XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fTE9HX0lOX1dJVEhfU05BUENIQVRfVEFQXCIsZVtlLkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9MT0dfSU5fVEFQPThdPVwiQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX0xPR19JTl9UQVBcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX1BIT05FX0VOVFJZX1BBR0VfVklFVz05XT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9QSE9ORV9FTlRSWV9QQUdFX1ZJRVdcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX1VTRV9FTUFJTF9JTlNURUFEX1RBUD0xMF09XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fVVNFX0VNQUlMX0lOU1RFQURfVEFQXCIsZVtlLkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9QSE9ORV9FTlRSWV9TS0lQPTExXT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9QSE9ORV9FTlRSWV9TS0lQXCIsZVtlLkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9QSE9ORV9TVUJNSVQ9MTJdPVwiQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX1BIT05FX1NVQk1JVFwiLGVbZS5CSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1BBR0VfVklFVz0xM109XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1BBR0VfVklFV1wiLGVbZS5CSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1NFTkRfQ09ERT0xNF09XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1NFTkRfQ09ERVwiLGVbZS5CSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1NVQk1JVD0xNV09XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1NVQk1JVFwiLGVbZS5CSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1NVQ0VTUz0xNl09XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEhPTkVfVkVSSUZZX1NVQ0VTU1wiLGVbZS5CSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEFTU1dPUkRfRU5UUllfUEFHRV9WSUVXPTE3XT1cIkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9QQVNTV09SRF9FTlRSWV9QQUdFX1ZJRVdcIixlW2UuQklUTU9KSV9BUFBfUkVHSVNUUkFUSU9OX1BBU1NXT1JEX1NVQk1JVD0xOF09XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEFTU1dPUkRfU1VCTUlUXCIsZVtlLkJJVE1PSklfQVBQX1JFR0lTVFJBVElPTl9QQVNTV09SRF9TVUJNSVRfU1VDQ0VTUz0xOV09XCJCSVRNT0pJX0FQUF9SRUdJU1RSQVRJT05fUEFTU1dPUkRfU1VCTUlUX1NVQ0NFU1NcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBSZWdpc3RyYXRpb25FdmVudFR5cGV8fCh0LkJpdG1vamlBcHBSZWdpc3RyYXRpb25FdmVudFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9TRVRUSU5HU19DT05UQUNUU19BQ1RJT049MF09XCJVTktOT1dOX1NFVFRJTkdTX0NPTlRBQ1RTX0FDVElPTlwiLGVbZS5DT05UQUNUU19FTkFCTEVEPTFdPVwiQ09OVEFDVFNfRU5BQkxFRFwiLGVbZS5DT05UQUNUU19ESVNBQkxFRD0yXT1cIkNPTlRBQ1RTX0RJU0FCTEVEXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwU2V0dGluZ3NDb250YWN0c0FjdGlvbnx8KHQuQml0bW9qaUFwcFNldHRpbmdzQ29udGFjdHNBY3Rpb249e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0FQUF9TSEFSRV9DQVRFR09SWT0wXT1cIlVOS05PV05fQklUTU9KSV9BUFBfU0hBUkVfQ0FURUdPUllcIixlW2UuRlJPTV9CUk9XU0U9MV09XCJGUk9NX0JST1dTRVwiLGVbZS5GUk9NX1NFQVJDSD0yXT1cIkZST01fU0VBUkNIXCIsZVtlLkZST01fQVVUT1NVR0dFU1Q9M109XCJGUk9NX0FVVE9TVUdHRVNUXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwU2hhcmVDYXRlZ29yeXx8KHQuQml0bW9qaUFwcFNoYXJlQ2F0ZWdvcnk9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9MSU5LQUdFX0FDVElPTj0wXT1cIlVOS05PV05fTElOS0FHRV9BQ1RJT05cIixlW2UuU05BUENIQVRfTElOS0FHRV9PUEVOPTFdPVwiU05BUENIQVRfTElOS0FHRV9PUEVOXCIsZVtlLlNOQVBDSEFUX0xJTktBR0VfQ09OVElOVUU9Ml09XCJTTkFQQ0hBVF9MSU5LQUdFX0NPTlRJTlVFXCIsZVtlLlNOQVBDSEFUX0xJTktBR0VfQUxSRUFEWV9MSU5LRUQ9M109XCJTTkFQQ0hBVF9MSU5LQUdFX0FMUkVBRFlfTElOS0VEXCIsZVtlLlNOQVBDSEFUX0xJTktBR0VfQ09NUExFVEU9NF09XCJTTkFQQ0hBVF9MSU5LQUdFX0NPTVBMRVRFXCIsZVtlLlNOQVBDSEFUX0xJTktBR0VfQ0FOQ0VMPTVdPVwiU05BUENIQVRfTElOS0FHRV9DQU5DRUxcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBTbmFwY2hhdExpbmthZ2VBY3Rpb258fCh0LkJpdG1vamlBcHBTbmFwY2hhdExpbmthZ2VBY3Rpb249e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9MSU5LQUdFX1NPVVJDRT0wXT1cIlVOS05PV05fTElOS0FHRV9TT1VSQ0VcIixlW2UuTElOS0FHRV9TT1VSQ0VfU0VUVElOR1M9MV09XCJMSU5LQUdFX1NPVVJDRV9TRVRUSU5HU1wiLGVbZS5MSU5LQUdFX1NPVVJDRV9CSVRNT0pJX0tJVD0yXT1cIkxJTktBR0VfU09VUkNFX0JJVE1PSklfS0lUXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwU25hcGNoYXRMaW5rYWdlU291cmNlfHwodC5CaXRtb2ppQXBwU25hcGNoYXRMaW5rYWdlU291cmNlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fU1RJQ0tFUl9DQUNIRV9TVEFURT0wXT1cIlVOS05PV05fU1RJQ0tFUl9DQUNIRV9TVEFURVwiLGVbZS5TVElDS0VSX05PVF9DQUNIRUQ9MV09XCJTVElDS0VSX05PVF9DQUNIRURcIixlW2UuU1RJQ0tFUl9OT1RfVFJBTlNDT0RFRD0yXT1cIlNUSUNLRVJfTk9UX1RSQU5TQ09ERURcIixlW2UuU1RJQ0tFUl9DQUNIRUQ9M109XCJTVElDS0VSX0NBQ0hFRFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcFN0aWNrZXJDYWNoZVN0YXRlfHwodC5CaXRtb2ppQXBwU3RpY2tlckNhY2hlU3RhdGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9TVElDS0VSX0ZPUk1BVD0wXT1cIlVOS05PV05fU1RJQ0tFUl9GT1JNQVRcIixlW2UuU1RJQ0tFUl9GT1JNQVRfUE5HPTFdPVwiU1RJQ0tFUl9GT1JNQVRfUE5HXCIsZVtlLlNUSUNLRVJfRk9STUFUX1dFQlA9Ml09XCJTVElDS0VSX0ZPUk1BVF9XRUJQXCIsZVtlLlNUSUNLRVJfRk9STUFUX0dJRj0zXT1cIlNUSUNLRVJfRk9STUFUX0dJRlwiLGVbZS5TVElDS0VSX0ZPUk1BVF9XSEFUU0FQUD00XT1cIlNUSUNLRVJfRk9STUFUX1dIQVRTQVBQXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwU3RpY2tlckZvcm1hdHx8KHQuQml0bW9qaUFwcFN0aWNrZXJGb3JtYXQ9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9TVElDS0VSX1NDQUxFPTBdPVwiVU5LTk9XTl9TVElDS0VSX1NDQUxFXCIsZVtlLlNDQUxFX1BSRVZJRVc9MV09XCJTQ0FMRV9QUkVWSUVXXCIsZVtlLlNDQUxFX05PUk1BTD0yXT1cIlNDQUxFX05PUk1BTFwiLGVbZS5TQ0FMRV9MQVJHRT0zXT1cIlNDQUxFX0xBUkdFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwU3RpY2tlclNjYWxlfHwodC5CaXRtb2ppQXBwU3RpY2tlclNjYWxlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQklUTU9KSV9BUFBfU1RJQ0tFUl9TRUFSQ0hfQ0FURUdPUlk9MF09XCJVTktOT1dOX0JJVE1PSklfQVBQX1NUSUNLRVJfU0VBUkNIX0NBVEVHT1JZXCIsZVtlLkZST01fVEVYVD0xXT1cIkZST01fVEVYVFwiLGVbZS5GUk9NX0FVVE9DT01QTEVURT0yXT1cIkZST01fQVVUT0NPTVBMRVRFXCIsZVtlLkZST01fUFJPR1JBTU1FRF9QSUxMUz0zXT1cIkZST01fUFJPR1JBTU1FRF9QSUxMU1wiLGVbZS5GUk9NX0FVVE9DT01QTEVURV9QUk9CX1NFQVJDSF9UQUc9NF09XCJGUk9NX0FVVE9DT01QTEVURV9QUk9CX1NFQVJDSF9UQUdcIixlW2UuRlJPTV9DVVNUT01PSklfUFJFVFlQRT01XT1cIkZST01fQ1VTVE9NT0pJX1BSRVRZUEVcIixlW2UuRlJPTV9DVVNUT01PSklfUE9TVFRZUEU9Nl09XCJGUk9NX0NVU1RPTU9KSV9QT1NUVFlQRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUFwcFN0aWNrZXJTZWFyY2hDYXRlZ29yeXx8KHQuQml0bW9qaUFwcFN0aWNrZXJTZWFyY2hDYXRlZ29yeT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5OT19SRVNVTFRfUkVBU09OX1VOU0VUPTBdPVwiTk9fUkVTVUxUX1JFQVNPTl9VTlNFVFwiLGVbZS5OT19SRVNVTFRfUkVBU09OX1VOS05PV049MV09XCJOT19SRVNVTFRfUkVBU09OX1VOS05PV05cIixlW2UuREJfTk9UX1JFQURZPTJdPVwiREJfTk9UX1JFQURZXCIsZVtlLkRCX0VNUFRZPTNdPVwiREJfRU1QVFlcIixlW2UuREJfTk9fVEFHUz00XT1cIkRCX05PX1RBR1NcIixlW2UuREJfTk9fQ0FUQUxPRz01XT1cIkRCX05PX0NBVEFMT0dcIixlW2UuTk9UX0ZPVU5EPTZdPVwiTk9UX0ZPVU5EXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwU3RpY2tlclNlYXJjaE5vUmVzdWx0UmVhc29ufHwodC5CaXRtb2ppQXBwU3RpY2tlclNlYXJjaE5vUmVzdWx0UmVhc29uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQklUTU9KSV9BUFBfU1RJQ0tFUl9TSEFSRV9HRVNUVVJFPTBdPVwiVU5LTk9XTl9CSVRNT0pJX0FQUF9TVElDS0VSX1NIQVJFX0dFU1RVUkVcIixlW2UuQ0xJQ0s9MV09XCJDTElDS1wiLGVbZS5SSUdIVF9DTElDSz0yXT1cIlJJR0hUX0NMSUNLXCIsZVtlLkRSQUc9M109XCJEUkFHXCIsZVtlLlRBUD00XT1cIlRBUFwiLGVbZS5QRUVMPTVdPVwiUEVFTFwiLGVbZS5BVFRBQ0g9Nl09XCJBVFRBQ0hcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBTdGlja2VyU2hhcmVHZXN0dXJlfHwodC5CaXRtb2ppQXBwU3RpY2tlclNoYXJlR2VzdHVyZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0JJVE1PSklfQVBQX1NUSUNLRVJfU1VQRVJUQUc9MF09XCJVTktOT1dOX0JJVE1PSklfQVBQX1NUSUNLRVJfU1VQRVJUQUdcIixlW2UuU1VQRVJUQUdfU0VBUkNIPTFdPVwiU1VQRVJUQUdfU0VBUkNIXCIsZVtlLlNVUEVSVEFHX1BPUFVMQVI9Ml09XCJTVVBFUlRBR19QT1BVTEFSXCIsZVtlLlNVUEVSVEFHX0FGRkVDVElPTj0zXT1cIlNVUEVSVEFHX0FGRkVDVElPTlwiLGVbZS5TVVBFUlRBR19HUkVFVElORz00XT1cIlNVUEVSVEFHX0dSRUVUSU5HXCIsZVtlLlNVUEVSVEFHX05FR0FUSVZFPTVdPVwiU1VQRVJUQUdfTkVHQVRJVkVcIixlW2UuU1VQRVJUQUdfUE9TSVRJVkU9Nl09XCJTVVBFUlRBR19QT1NJVElWRVwiLGVbZS5TVVBFUlRBR19SRUNFTlQ9N109XCJTVVBFUlRBR19SRUNFTlRcIixlW2UuU1VQRVJUQUdfT0NDQVNJT05TPThdPVwiU1VQRVJUQUdfT0NDQVNJT05TXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXBwU3RpY2tlclN1cGVydGFnfHwodC5CaXRtb2ppQXBwU3RpY2tlclN1cGVydGFnPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQklUTU9KSV9BUFBfVUlfU1RZTEU9MF09XCJVTktOT1dOX0JJVE1PSklfQVBQX1VJX1NUWUxFXCIsZVtlLkxJR0hUPTFdPVwiTElHSFRcIixlW2UuREFSSz0yXT1cIkRBUktcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBcHBVaVN0eWxlfHwodC5CaXRtb2ppQXBwVWlTdHlsZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX01PREU9MF09XCJVTktOT1dOX01PREVcIixlW2UuQ1JFQVRFPTFdPVwiQ1JFQVRFXCIsZVtlLlJFU0VUPTJdPVwiUkVTRVRcIixlW2UuRURJVD0zXT1cIkVESVRcIixlW2UuSU5WQUxJRD00XT1cIklOVkFMSURcIixlW2UuQ0hBTkdFX09VVEZJVD01XT1cIkNIQU5HRV9PVVRGSVRcIixlW2UuU1RZTEVfVVBEQVRFPTZdPVwiU1RZTEVfVVBEQVRFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlfHwodC5CaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQUNUSU9OPTBdPVwiVU5LTk9XTl9BQ1RJT05cIixlW2UuU1RBUlQ9MV09XCJTVEFSVFwiLGVbZS5TTkFQPTJdPVwiU05BUFwiLGVbZS5DQU5DRUw9M109XCJDQU5DRUxcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBdmF0YXJCdWlsZGVyU2VsZmllQWN0aW9uVHlwZXx8KHQuQml0bW9qaUF2YXRhckJ1aWxkZXJTZWxmaWVBY3Rpb25UeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQ0FURUdPUlk9MF09XCJVTktOT1dOX0NBVEVHT1JZXCIsZVtlLlNLSU5fVE9ORT0xXT1cIlNLSU5fVE9ORVwiLGVbZS5IQUlSX1RPTkU9Ml09XCJIQUlSX1RPTkVcIixlW2UuSEFJUj0zXT1cIkhBSVJcIixlW2UuSEFJUl9UUkVBVE1FTlRfVE9ORT00XT1cIkhBSVJfVFJFQVRNRU5UX1RPTkVcIixlW2UuQkVBUkQ9NV09XCJCRUFSRFwiLGVbZS5CRUFSRF9UT05FPTZdPVwiQkVBUkRfVE9ORVwiLGVbZS5FWUU9N109XCJFWUVcIixlW2UuRVlFTEFTSD04XT1cIkVZRUxBU0hcIixlW2UuRVlFX1NJWkU9OV09XCJFWUVfU0laRVwiLGVbZS5FWUVfU1BBQ0lORz0xMF09XCJFWUVfU1BBQ0lOR1wiLGVbZS5QVVBJTD0xMV09XCJQVVBJTFwiLGVbZS5QVVBJTF9UT05FPTEyXT1cIlBVUElMX1RPTkVcIixlW2UuQlJPVz0xM109XCJCUk9XXCIsZVtlLkJST1dfVE9ORT0xNF09XCJCUk9XX1RPTkVcIixlW2UuTk9TRT0xNV09XCJOT1NFXCIsZVtlLkdMQVNTRVM9MTZdPVwiR0xBU1NFU1wiLGVbZS5KQVc9MTddPVwiSkFXXCIsZVtlLkZBQ0VfUFJPUE9SVElPTj0xOF09XCJGQUNFX1BST1BPUlRJT05cIixlW2UuTU9VVEg9MTldPVwiTU9VVEhcIixlW2UuRUFSPTIwXT1cIkVBUlwiLGVbZS5DSEVFS19ERVRBSUxTPTIxXT1cIkNIRUVLX0RFVEFJTFNcIixlW2UuRkFDRV9MSU5FUz0yMl09XCJGQUNFX0xJTkVTXCIsZVtlLkVZRV9ERVRBSUxTPTIzXT1cIkVZRV9ERVRBSUxTXCIsZVtlLkVZRVNIQURPV19UT05FPTI0XT1cIkVZRVNIQURPV19UT05FXCIsZVtlLkJMVVNIX1RPTkU9MjVdPVwiQkxVU0hfVE9ORVwiLGVbZS5MSVBTVElDS19UT05FPTI2XT1cIkxJUFNUSUNLX1RPTkVcIixlW2UuRUFSUklORz0yN109XCJFQVJSSU5HXCIsZVtlLkhBVD0yOF09XCJIQVRcIixlW2UuQk9EWT0yOV09XCJCT0RZXCIsZVtlLkJSRUFTVD0zMF09XCJCUkVBU1RcIixlW2UuT1VURklUPTMxXT1cIk9VVEZJVFwiLGVbZS5TQVZFPTMyXT1cIlNBVkVcIixlW2UuVE9QPTMzXT1cIlRPUFwiLGVbZS5CT1RUT009MzRdPVwiQk9UVE9NXCIsZVtlLk9VVEVSV0VBUj0zNV09XCJPVVRFUldFQVJcIixlW2UuRk9PVFdFQVI9MzZdPVwiRk9PVFdFQVJcIixlW2UuQ0xPU0VUPTM4XT1cIkNMT1NFVFwiLGVbZS5TT0NLPTM5XT1cIlNPQ0tcIixlW2UuT05FX1BJRUNFPTQwXT1cIk9ORV9QSUVDRVwiLGVbZS5FQVJSSU5HX0RVQUw9NDFdPVwiRUFSUklOR19EVUFMXCIsZVtlLkVBUlJJTkdfTEVGVD00Ml09XCJFQVJSSU5HX0xFRlRcIixlW2UuRUFSUklOR19SSUdIVD00M109XCJFQVJSSU5HX1JJR0hUXCIsZVtlLk5PU0VSSU5HPTQ0XT1cIk5PU0VSSU5HXCIsZVtlLkJST1dSSU5HX0xFRlQ9NDZdPVwiQlJPV1JJTkdfTEVGVFwiLGVbZS5CUk9XUklOR19SSUdIVD00N109XCJCUk9XUklOR19SSUdIVFwiLGVbZS5FQVJBSURfTEVGVD00OF09XCJFQVJBSURfTEVGVFwiLGVbZS5FQVJBSURfUklHSFQ9NDldPVwiRUFSQUlEX1JJR0hUXCIsZVtlLlRPTkdVRVJJTkc9NTFdPVwiVE9OR1VFUklOR1wiLGVbZS5NT1VUSFJJTkc9NTJdPVwiTU9VVEhSSU5HXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnl8fCh0LkJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5CSVRNT0pJX0FQUD0wXT1cIkJJVE1PSklfQVBQXCIsZVtlLldFQj0xXT1cIldFQlwiLGVbZS5MSVZFX01JUlJPUj0yXT1cIkxJVkVfTUlSUk9SXCIsZVtlLlNOQVBDSEFUX0ZBU0hJT049M109XCJTTkFQQ0hBVF9GQVNISU9OXCIsZVtlLkxJVkVfTUlSUk9SX0FVVE9fQ0FQVFVSRT01XT1cIkxJVkVfTUlSUk9SX0FVVE9fQ0FQVFVSRVwiLGVbZS5MSVZFX01JUlJPUl9DUkVBVElPTl9QUk9DRVNTX0lOVEVSU1RJVElBTD02XT1cIkxJVkVfTUlSUk9SX0NSRUFUSU9OX1BST0NFU1NfSU5URVJTVElUSUFMXCIsZVtlLkxJVkVfTUlSUk9SX1VTRV9DQVNFX0lOVEVSU1RJVElBTD03XT1cIkxJVkVfTUlSUk9SX1VTRV9DQVNFX0lOVEVSU1RJVElBTFwiLGVbZS5DT01QT1NFUj04XT1cIkNPTVBPU0VSXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppQXZhdGFyQnVpbGRlclR5cGV8fCh0LkJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0JJVE1PSklfQVZBVEFSX1NUWUxFPTBdPVwiVU5LTk9XTl9CSVRNT0pJX0FWQVRBUl9TVFlMRVwiLGVbZS5CSVRTVFJJUFM9MV09XCJCSVRTVFJJUFNcIixlW2UuQklUTU9KSV9DTEFTU0lDPTJdPVwiQklUTU9KSV9DTEFTU0lDXCIsZVtlLkJJVE1PSklfREVMVVhFPTNdPVwiQklUTU9KSV9ERUxVWEVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBdmF0YXJTdHlsZXx8KHQuQml0bW9qaUF2YXRhclN0eWxlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlRBUF9UUkFJVD0wXT1cIlRBUF9UUkFJVFwiLGVbZS5UQVBfUElFUkNJTkc9MV09XCJUQVBfUElFUkNJTkdcIixlW2UuVEFQX1BJRVJDSU5HX0NPTE9VUj0yXT1cIlRBUF9QSUVSQ0lOR19DT0xPVVJcIixlW2UuVU5LTk9XTl9CSVRNT0pJX0FWQVRBUl9UUkFJVF9BQ1RJT05fVFlQRT0zXT1cIlVOS05PV05fQklUTU9KSV9BVkFUQVJfVFJBSVRfQUNUSU9OX1RZUEVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkJpdG1vamlBdmF0YXJUcmFpdEFjdGlvblR5cGV8fCh0LkJpdG1vamlBdmF0YXJUcmFpdEFjdGlvblR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0ZBU0hJT05fT1VURklUX0FDVElPTl9UWVBFPTBdPVwiVU5LTk9XTl9CSVRNT0pJX0ZBU0hJT05fT1VURklUX0FDVElPTl9UWVBFXCIsZVtlLlRBUF9GVUxMX09VVEZJVD0xXT1cIlRBUF9GVUxMX09VVEZJVFwiLGVbZS5UQVBfTUlYX0FORF9NQVRDSF9JVEVNPTJdPVwiVEFQX01JWF9BTkRfTUFUQ0hfSVRFTVwiLGVbZS5UQVBfQ09MT1VSPTNdPVwiVEFQX0NPTE9VUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUZhc2hpb25PdXRmaXRBY3Rpb25UeXBlfHwodC5CaXRtb2ppRmFzaGlvbk91dGZpdEFjdGlvblR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0tJVF9QRVJNSVNTSU9OX1VQREFURV9TVEFUVVM9MF09XCJVTktOT1dOX0JJVE1PSklfS0lUX1BFUk1JU1NJT05fVVBEQVRFX1NUQVRVU1wiLGVbZS5CSVRNT0pJX1BFUk1JU1NJT05fT049MV09XCJCSVRNT0pJX1BFUk1JU1NJT05fT05cIixlW2UuQklUTU9KSV9QRVJNSVNTSU9OX09GRj0yXT1cIkJJVE1PSklfUEVSTUlTU0lPTl9PRkZcIixlW2UuQklUTU9KSV9SRUFVVEhfRVJST1I9M109XCJCSVRNT0pJX1JFQVVUSF9FUlJPUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUtpdFBlcm1pc3Npb25VcGRhdGVTdGF0dXN8fCh0LkJpdG1vamlLaXRQZXJtaXNzaW9uVXBkYXRlU3RhdHVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlNFQVJDSF9CQVJfVklTSUJMRT0wXT1cIlNFQVJDSF9CQVJfVklTSUJMRVwiLGVbZS5TRUFSQ0hfQkFSX0hJRERFTj0xXT1cIlNFQVJDSF9CQVJfSElEREVOXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppS2l0U2VhcmNoQmFyQ29uZmlndXJhdGlvbnx8KHQuQml0bW9qaUtpdFNlYXJjaEJhckNvbmZpZ3VyYXRpb249e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0tJVF9TRUFSQ0hfQ0FURUdPUlk9MF09XCJVTktOT1dOX0JJVE1PSklfS0lUX1NFQVJDSF9DQVRFR09SWVwiLGVbZS5URVhUPTFdPVwiVEVYVFwiLGVbZS5BVVRPQ09NUExFVEU9Ml09XCJBVVRPQ09NUExFVEVcIixlW2UuUFJPR1JBTU1FRF9QSUxMUz0zXT1cIlBST0dSQU1NRURfUElMTFNcIixlW2UuU0VFRF9TRUFSQ0g9NF09XCJTRUVEX1NFQVJDSFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUtpdFNlYXJjaENhdGVnb3J5fHwodC5CaXRtb2ppS2l0U2VhcmNoQ2F0ZWdvcnk9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0tJVF9TSEFSRV9DQVRFR09SWT0wXT1cIlVOS05PV05fQklUTU9KSV9LSVRfU0hBUkVfQ0FURUdPUllcIixlW2UuUE9QVUxBUj0xXT1cIlBPUFVMQVJcIixlW2UuU0VBUkNIPTJdPVwiU0VBUkNIXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppS2l0U2hhcmVDYXRlZ29yeXx8KHQuQml0bW9qaUtpdFNoYXJlQ2F0ZWdvcnk9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX0tJVF9QSUNLRVJfVklFVz0wXT1cIlVOS05PV05fQklUTU9KSV9LSVRfUElDS0VSX1ZJRVdcIixlW2UuU1RJQ0tFUl9QSUNLRVI9MV09XCJTVElDS0VSX1BJQ0tFUlwiLGVbZS5DUkVBVEVfQVZBVEFSPTJdPVwiQ1JFQVRFX0FWQVRBUlwiLGVbZS5MSU5LX0FDQ09VTlQ9M109XCJMSU5LX0FDQ09VTlRcIixlW2UuTk9UX0FVVEhPUklaRUQ9NF09XCJOT1RfQVVUSE9SSVpFRFwiLGVbZS5FUlJPUl9WSUVXPTVdPVwiRVJST1JfVklFV1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUtpdFN0aWNrZXJQaWNrZXJWaWV3fHwodC5CaXRtb2ppS2l0U3RpY2tlclBpY2tlclZpZXc9e30pKSxmdW5jdGlvbihlKXtlW2UuVEFHX1NFTEVDVE9SX1ZJU0lCTEU9MF09XCJUQUdfU0VMRUNUT1JfVklTSUJMRVwiLGVbZS5UQUdfU0VMRUNUT1JfSElEREVOPTFdPVwiVEFHX1NFTEVDVE9SX0hJRERFTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQml0bW9qaUtpdFRhZ1NlbGVjdG9yQ29uZmlndXJhdGlvbnx8KHQuQml0bW9qaUtpdFRhZ1NlbGVjdG9yQ29uZmlndXJhdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NUQVRVUz0wXT1cIlVOS05PV05fU1RBVFVTXCIsZVtlLk9LPTFdPVwiT0tcIixlW2UuTk9fRkFDRT0yXT1cIk5PX0ZBQ0VcIixlW2UuSU5GRVJFTkNFX0VSUk9SPTNdPVwiSU5GRVJFTkNFX0VSUk9SXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppTGl2ZU1pcnJvckNsYXNzaWZpY2F0aW9uU3RhdHVzVHlwZXx8KHQuQml0bW9qaUxpdmVNaXJyb3JDbGFzc2lmaWNhdGlvblN0YXR1c1R5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CSVRNT0pJX09VVEZJVF9UWVBFPTBdPVwiVU5LTk9XTl9CSVRNT0pJX09VVEZJVF9UWVBFXCIsZVtlLkZVTEw9MV09XCJGVUxMXCIsZVtlLk1JWF9BTkRfTUFUQ0g9Ml09XCJNSVhfQU5EX01BVENIXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5CaXRtb2ppT3V0Zml0VHlwZXx8KHQuQml0bW9qaU91dGZpdFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9CTE9PUF9TTkFQX1NUT1JZX1BPU1RfVFlQRT0wXT1cIlVOS05PV05fQkxPT1BfU05BUF9TVE9SWV9QT1NUX1RZUEVcIixlW2UuQkxPT1BTX1BPU1RfVFlQRV9TUE9UTElHSFQ9MV09XCJCTE9PUFNfUE9TVF9UWVBFX1NQT1RMSUdIVFwiLGVbZS5CTE9PUFNfUE9TVF9UWVBFX0RJU0NPVkVSPTJdPVwiQkxPT1BTX1BPU1RfVFlQRV9ESVNDT1ZFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQmxvb3BzU3RvcnlTbmFwUG9zdFR5cGV8fCh0LkJsb29wc1N0b3J5U25hcFBvc3RUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNBTUVSQV9LSVRfQ0FNRVJBX1RZUEVfVU5LTk9XTj0wXT1cIkNBTUVSQV9LSVRfQ0FNRVJBX1RZUEVfVU5LTk9XTlwiLGVbZS5DQU1FUkFfS0lUX0NBTUVSQV9UWVBFX0ZST05UPTFdPVwiQ0FNRVJBX0tJVF9DQU1FUkFfVFlQRV9GUk9OVFwiLGVbZS5DQU1FUkFfS0lUX0NBTUVSQV9UWVBFX0JBQ0s9Ml09XCJDQU1FUkFfS0lUX0NBTUVSQV9UWVBFX0JBQ0tcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNhbWVyYUtpdENhbWVyYVR5cGV8fCh0LkNhbWVyYUtpdENhbWVyYVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuQ0FNRVJBX0tJVF9DT05ORUNURURfTEVOU0VTX0ZBSUxVUkVfUkVBU09OX0lOVkFMSURfQVVUSD0wXT1cIkNBTUVSQV9LSVRfQ09OTkVDVEVEX0xFTlNFU19GQUlMVVJFX1JFQVNPTl9JTlZBTElEX0FVVEhcIixlW2UuQ0FNRVJBX0tJVF9DT05ORUNURURfTEVOU0VTX0ZBSUxVUkVfUkVBU09OX0lOVkFMSURfR1JPVVA9MV09XCJDQU1FUkFfS0lUX0NPTk5FQ1RFRF9MRU5TRVNfRkFJTFVSRV9SRUFTT05fSU5WQUxJRF9HUk9VUFwiLGVbZS5DQU1FUkFfS0lUX0NPTk5FQ1RFRF9MRU5TRVNfRkFJTFVSRV9SRUFTT05fVU5LTk9XTj0yXT1cIkNBTUVSQV9LSVRfQ09OTkVDVEVEX0xFTlNFU19GQUlMVVJFX1JFQVNPTl9VTktOT1dOXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNGYWlsdXJlUmVhc29ufHwodC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNGYWlsdXJlUmVhc29uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNBTUVSQV9LSVRfQ09OTkVDVEVEX0xFTlNFU19NT0RBTF9SRVNVTFRfU1RBVFVTX0FDQ0VQVEVEPTBdPVwiQ0FNRVJBX0tJVF9DT05ORUNURURfTEVOU0VTX01PREFMX1JFU1VMVF9TVEFUVVNfQUNDRVBURURcIixlW2UuQ0FNRVJBX0tJVF9DT05ORUNURURfTEVOU0VTX01PREFMX1JFU1VMVF9TVEFUVVNfUkVKRUNURUQ9MV09XCJDQU1FUkFfS0lUX0NPTk5FQ1RFRF9MRU5TRVNfTU9EQUxfUkVTVUxUX1NUQVRVU19SRUpFQ1RFRFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzTW9kYWxSZXN1bHRTdGF0dXN8fCh0LkNhbWVyYUtpdENvbm5lY3RlZExlbnNlc01vZGFsUmVzdWx0U3RhdHVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNBTUVSQV9LSVRfQ09OTkVDVElWSVRZX1RZUEVfVU5LTk9XTj0wXT1cIkNBTUVSQV9LSVRfQ09OTkVDVElWSVRZX1RZUEVfVU5LTk9XTlwiLGVbZS5DQU1FUkFfS0lUX0NPTk5FQ1RJVklUWV9UWVBFX1dJRkk9MV09XCJDQU1FUkFfS0lUX0NPTk5FQ1RJVklUWV9UWVBFX1dJRklcIixlW2UuQ0FNRVJBX0tJVF9DT05ORUNUSVZJVFlfVFlQRV9NT0JJTEU9Ml09XCJDQU1FUkFfS0lUX0NPTk5FQ1RJVklUWV9UWVBFX01PQklMRVwiLGVbZS5DQU1FUkFfS0lUX0NPTk5FQ1RJVklUWV9UWVBFX1VOUkVBQ0hBQkxFPTNdPVwiQ0FNRVJBX0tJVF9DT05ORUNUSVZJVFlfVFlQRV9VTlJFQUNIQUJMRVwiLGVbZS5DQU1FUkFfS0lUX0NPTk5FQ1RJVklUWV9UWVBFX0JMVUVUT09USD00XT1cIkNBTUVSQV9LSVRfQ09OTkVDVElWSVRZX1RZUEVfQkxVRVRPT1RIXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5DYW1lcmFLaXRDb25uZWN0aXZpdHlUeXBlfHwodC5DYW1lcmFLaXRDb25uZWN0aXZpdHlUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNBTUVSQV9LSVRfRkxBVk9SX1VOS05PV049MF09XCJDQU1FUkFfS0lUX0ZMQVZPUl9VTktOT1dOXCIsZVtlLkNBTUVSQV9LSVRfRkxBVk9SX0RFQlVHPTFdPVwiQ0FNRVJBX0tJVF9GTEFWT1JfREVCVUdcIixlW2UuQ0FNRVJBX0tJVF9GTEFWT1JfUkVMRUFTRT0yXT1cIkNBTUVSQV9LSVRfRkxBVk9SX1JFTEVBU0VcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNhbWVyYUtpdEZsYXZvcnx8KHQuQ2FtZXJhS2l0Rmxhdm9yPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNBTUVSQV9LSVRfTEVHQUxfUFJPTVBUX01JU1NJTkc9MF09XCJDQU1FUkFfS0lUX0xFR0FMX1BST01QVF9NSVNTSU5HXCIsZVtlLkNBTUVSQV9LSVRfTEVHQUxfUFJPTVBUX0FDQ0VQVEVEPTFdPVwiQ0FNRVJBX0tJVF9MRUdBTF9QUk9NUFRfQUNDRVBURURcIixlW2UuQ0FNRVJBX0tJVF9MRUdBTF9QUk9NUFRfRElTTUlTU0VEPTJdPVwiQ0FNRVJBX0tJVF9MRUdBTF9QUk9NUFRfRElTTUlTU0VEXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5DYW1lcmFLaXRMZWdhbFByb21wdFJlc3VsdHx8KHQuQ2FtZXJhS2l0TGVnYWxQcm9tcHRSZXN1bHQ9e30pKSxmdW5jdGlvbihlKXtlW2UuQ0FNRVJBX0tJVF9NRURJQV9UWVBFX1VOS05PV049MF09XCJDQU1FUkFfS0lUX01FRElBX1RZUEVfVU5LTk9XTlwiLGVbZS5DQU1FUkFfS0lUX01FRElBX1RZUEVfSU1BR0U9MV09XCJDQU1FUkFfS0lUX01FRElBX1RZUEVfSU1BR0VcIixlW2UuQ0FNRVJBX0tJVF9NRURJQV9UWVBFX1ZJREVPPTJdPVwiQ0FNRVJBX0tJVF9NRURJQV9UWVBFX1ZJREVPXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5DYW1lcmFLaXRNZWRpYVR5cGV8fCh0LkNhbWVyYUtpdE1lZGlhVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5DQU1FUkFfS0lUX1ZBUklBTlRfVU5LTk9XTj0wXT1cIkNBTUVSQV9LSVRfVkFSSUFOVF9VTktOT1dOXCIsZVtlLkNBTUVSQV9LSVRfVkFSSUFOVF9QQVJUTkVSPTFdPVwiQ0FNRVJBX0tJVF9WQVJJQU5UX1BBUlRORVJcIixlW2UuQ0FNRVJBX0tJVF9WQVJJQU5UX1BVQkxJQz0yXT1cIkNBTUVSQV9LSVRfVkFSSUFOVF9QVUJMSUNcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNhbWVyYUtpdFZhcmlhbnR8fCh0LkNhbWVyYUtpdFZhcmlhbnQ9e30pKSxmdW5jdGlvbihlKXtlW2UuTEVOU19TQ0hFRFVMRVI9MF09XCJMRU5TX1NDSEVEVUxFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQ2Fta2l0V2ViYXBwTmFtZUVudW18fCh0LkNhbWtpdFdlYmFwcE5hbWVFbnVtPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk5PVElGSUNBVElPTl9GQUlMVVJFPTBdPVwiTk9USUZJQ0FUSU9OX0ZBSUxVUkVcIixlW2UuUkFURV9MSU1JVEVEPTFdPVwiUkFURV9MSU1JVEVEXCIsZVtlLk5PVElGSUNBVElPTl9TVUNDRVNTPTJdPVwiTk9USUZJQ0FUSU9OX1NVQ0NFU1NcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNhbnZhc05vdGlmaWNhdGlvbkFjdGlvblN0YXR1c3x8KHQuQ2FudmFzTm90aWZpY2F0aW9uQWN0aW9uU3RhdHVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkRJQUxfUE9TSVRJT05fVU5LTk9XTj0wXT1cIkRJQUxfUE9TSVRJT05fVU5LTk9XTlwiLGVbZS5ESUFMX1BPU0lUSU9OX09GRj0xXT1cIkRJQUxfUE9TSVRJT05fT0ZGXCIsZVtlLkRJQUxfUE9TSVRJT05fSE9WRVI9Ml09XCJESUFMX1BPU0lUSU9OX0hPVkVSXCIsZVtlLkRJQUxfUE9TSVRJT05fT1JCSVQ9M109XCJESUFMX1BPU0lUSU9OX09SQklUXCIsZVtlLkRJQUxfUE9TSVRJT05fRk9MTE9XPTRdPVwiRElBTF9QT1NJVElPTl9GT0xMT1dcIixlW2UuRElBTF9QT1NJVElPTl9QVUxMQkFDSz01XT1cIkRJQUxfUE9TSVRJT05fUFVMTEJBQ0tcIixlW2UuRElBTF9QT1NJVElPTl9UUkFOU0ZFUj02XT1cIkRJQUxfUE9TSVRJT05fVFJBTlNGRVJcIixlW2UuRElBTF9QT1NJVElPTl9DVVNUT009N109XCJESUFMX1BPU0lUSU9OX0NVU1RPTVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQ2hlZXJpb3NEaWFsUG9zaXRpb258fCh0LkNoZWVyaW9zRGlhbFBvc2l0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNTX0xBTkRJTkdfTk9STUFMPTBdPVwiQ1NfTEFORElOR19OT1JNQUxcIixlW2UuQ1NfTEFORElOR19FTUVSR0VOQ1k9MV09XCJDU19MQU5ESU5HX0VNRVJHRU5DWVwiLGVbZS5DU19MQU5ESU5HX1BSRVBBUklORz0yXT1cIkNTX0xBTkRJTkdfUFJFUEFSSU5HXCIsZVtlLkNTX0xBTkRJTkdfQUlSX0dSQUI9M109XCJDU19MQU5ESU5HX0FJUl9HUkFCXCIsZVtlLkNTX0xBTkRJTkdfSEFORF9HRVNUVVJFPTRdPVwiQ1NfTEFORElOR19IQU5EX0dFU1RVUkVcIixlW2UuQ1NfTEFORElOR19GTElHSFRfRFVSQVRJT05fUkVBQ0hFRD01XT1cIkNTX0xBTkRJTkdfRkxJR0hUX0RVUkFUSU9OX1JFQUNIRURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNoZWVyaW9zTGFuZGluZ1N0YXRlfHwodC5DaGVlcmlvc0xhbmRpbmdTdGF0ZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5NSU5JPTBdPVwiTUlOSVwiLGVbZS5NSU5JU19VUERBVEVfR0VORVJBTD0xXT1cIk1JTklTX1VQREFURV9HRU5FUkFMXCIsZVtlLk1JTklTX1VQREFURV9VU0VSPTJdPVwiTUlOSVNfVVBEQVRFX1VTRVJcIixlW2UuTkVXUz0zXT1cIk5FV1NcIixlW2UuTUFQX1JFQ0VOVF9NT1ZFPTRdPVwiTUFQX1JFQ0VOVF9NT1ZFXCIsZVtlLlNUT1JZX1NDUkVFTlNIT1Q9NV09XCJTVE9SWV9TQ1JFRU5TSE9UXCIsZVtlLkJJVE1PSklfRklUX0NIRUNLPTZdPVwiQklUTU9KSV9GSVRfQ0hFQ0tcIixlW2UuRlJJRU5EX1RSRU5EPTddPVwiRlJJRU5EX1RSRU5EXCIsZVtlLlRSQVlfVFlQRV9VTktOT1dOPThdPVwiVFJBWV9UWVBFX1VOS05PV05cIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNvZ25hY1RyYXlTZXJ2ZXJJdGVtVHlwZXx8KHQuQ29nbmFjVHJheVNlcnZlckl0ZW1UeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNPTExFQ1RJT05fVU5VU0VEPTBdPVwiQ09MTEVDVElPTl9VTlVTRURcIixlW2UuR0FFPTFdPVwiR0FFXCIsZVtlLkdDRV9NPTJdPVwiR0NFX01cIixlW2UuR0NFX1M9M109XCJHQ0VfU1wiLGVbZS5HQ0VfVD00XT1cIkdDRV9UXCIsZVtlLkdLRV9NPTVdPVwiR0tFX01cIixlW2UuR0tFX1M9Nl09XCJHS0VfU1wiLGVbZS5HS0VfVD03XT1cIkdLRV9UXCIsZVtlLkxPQ0FMPThdPVwiTE9DQUxcIixlW2UuR0NFX1NUPTldPVwiR0NFX1NUXCIsZVtlLkdLRV9TVD0xMF09XCJHS0VfU1RcIixlW2UuR0NFX0M9MTFdPVwiR0NFX0NcIixlW2UuR0NFX1NDPTEyXT1cIkdDRV9TQ1wiLGVbZS5HQ0VfVEM9MTNdPVwiR0NFX1RDXCIsZVtlLkdDRV9UU0M9MTRdPVwiR0NFX1RTQ1wiLGVbZS5HS0VfQz0xNV09XCJHS0VfQ1wiLGVbZS5HS0VfU0M9MTZdPVwiR0tFX1NDXCIsZVtlLkdLRV9UQz0xN109XCJHS0VfVENcIixlW2UuR0tFX1RTQz0xOF09XCJHS0VfVFNDXCIsZVtlLkdLRV9XPTE5XT1cIkdLRV9XXCIsZVtlLkdLRV9XVD0yMF09XCJHS0VfV1RcIixlW2UuR0tFX1dDPTIxXT1cIkdLRV9XQ1wiLGVbZS5HS0VfV1NDPTIyXT1cIkdLRV9XU0NcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNvbGxlY3Rpb258fCh0LkNvbGxlY3Rpb249e30pKSxmdW5jdGlvbihlKXtlW2UuQ09NTVVOSVRZX05PVF9GT1VORD0wXT1cIkNPTU1VTklUWV9OT1RfRk9VTkRcIixlW2UuRU1BSUxfTk9UX1ZBTElEPTFdPVwiRU1BSUxfTk9UX1ZBTElEXCIsZVtlLkNPTU1VTklUWV9GVUxMPTJdPVwiQ09NTVVOSVRZX0ZVTExcIixlW2UuRU1BSUxfQ09VTERfTk9UX1ZFUklGWT0zXT1cIkVNQUlMX0NPVUxEX05PVF9WRVJJRllcIixlW2UuU1VDQ0VTU0ZVTExZX1JFUVVFU1RFRF9KT0lOPTRdPVwiU1VDQ0VTU0ZVTExZX1JFUVVFU1RFRF9KT0lOXCIsZVtlLlVOS05PV05fRVJST1I9NV09XCJVTktOT1dOX0VSUk9SXCIsZVtlLkNPTU1VTklUWV9PTkJPQVJESU5HX1JBVEVfTElNSVRFRD02XT1cIkNPTU1VTklUWV9PTkJPQVJESU5HX1JBVEVfTElNSVRFRFwiLGVbZS5TVUNDRVNTRlVMTFlfSk9JTkVEPTddPVwiU1VDQ0VTU0ZVTExZX0pPSU5FRFwiLGVbZS5MRUZUX0NPTU1VTklUWT04XT1cIkxFRlRfQ09NTVVOSVRZXCIsZVtlLlNVQ0NFU1NGVUxMWV9SRVFVRVNURURfSk9JTl9XQUlUTElTVD05XT1cIlNVQ0NFU1NGVUxMWV9SRVFVRVNURURfSk9JTl9XQUlUTElTVFwiLGVbZS5KT0lOX1dBSVRMSVNUX0ZBSUxFRD0xMF09XCJKT0lOX1dBSVRMSVNUX0ZBSUxFRFwiLGVbZS5FTUFJTF9ET0VTX05PVF9NQVRDSF9XSVRIX09SRz0xMV09XCJFTUFJTF9ET0VTX05PVF9NQVRDSF9XSVRIX09SR1wiLGVbZS5DT01NVU5JVFlfUEVORElOR19NRU1CRVJTX0ZVTEw9MTJdPVwiQ09NTVVOSVRZX1BFTkRJTkdfTUVNQkVSU19GVUxMXCIsZVtlLlBVQkxJQ19FTUFJTF9FTlRFUkVEPTEzXT1cIlBVQkxJQ19FTUFJTF9FTlRFUkVEXCIsZVtlLkpPSU5fV0FJVExJU1RfRkFJTEVEX0NPTU1VTklUWV9FWElTVFM9MTRdPVwiSk9JTl9XQUlUTElTVF9GQUlMRURfQ09NTVVOSVRZX0VYSVNUU1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQ29tbXVuaXRpZXNPbmJvYXJkaW5nUmVzcG9uc2VTdGF0dXN8fCh0LkNvbW11bml0aWVzT25ib2FyZGluZ1Jlc3BvbnNlU3RhdHVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNUX1VOS05PV05fQVBQX1NUQVRFPTBdPVwiQ1RfVU5LTk9XTl9BUFBfU1RBVEVcIixlW2UuQ1RfRk9SRUdST1VORD0xXT1cIkNUX0ZPUkVHUk9VTkRcIixlW2UuQ1RfQkFDS0dST1VORD0yXT1cIkNUX0JBQ0tHUk9VTkRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkNvbmZpZ1RhcmdldGluZ0FwcFN0YXRlfHwodC5Db25maWdUYXJnZXRpbmdBcHBTdGF0ZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5ERUZBVUxUX0lOU1RSVU1FTlRBVElPTj0wXT1cIkRFRkFVTFRfSU5TVFJVTUVOVEFUSU9OXCIsZVtlLlVTRVJfQVVUSEVOVElDQVRJT049MV09XCJVU0VSX0FVVEhFTlRJQ0FUSU9OXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5Db25maWdUYXJnZXRpbmdJbnN0cnVtZW50YXRpb258fCh0LkNvbmZpZ1RhcmdldGluZ0luc3RydW1lbnRhdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5DVF9VTktOT1dOX0VWRU5UX1RZUEU9MF09XCJDVF9VTktOT1dOX0VWRU5UX1RZUEVcIixlW2UuQ1RfQ09MRF9TVEFSVD0xXT1cIkNUX0NPTERfU1RBUlRcIixlW2UuQ1RfV0FSTV9TVEFSVD0yXT1cIkNUX1dBUk1fU1RBUlRcIixlW2UuQ1RfRk9SRUdST1VORF9UUklHR0VSPTVdPVwiQ1RfRk9SRUdST1VORF9UUklHR0VSXCIsZVtlLkNUX0JBQ0tHUk9VTkRfVFJJR0dFUj02XT1cIkNUX0JBQ0tHUk9VTkRfVFJJR0dFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuQ29uZmlnVGFyZ2V0aW5nVHJpZ2dlckV2ZW50VHlwZXx8KHQuQ29uZmlnVGFyZ2V0aW5nVHJpZ2dlckV2ZW50VHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5OT19TRVNTSU9OX0JVQ0tFVD0wXT1cIk5PX1NFU1NJT05fQlVDS0VUXCIsZVtlLk9ORV9TRVNTSU9OPTFdPVwiT05FX1NFU1NJT05cIixlW2UuVFdPX1NFU1NJT049Ml09XCJUV09fU0VTU0lPTlwiLGVbZS5USFJFRV9TRVNTSU9OPTNdPVwiVEhSRUVfU0VTU0lPTlwiLGVbZS5GT1VSX1NFU1NJT049NF09XCJGT1VSX1NFU1NJT05cIixlW2UuRklWRV9TRVNTSU9OPTVdPVwiRklWRV9TRVNTSU9OXCIsZVtlLlNJWF9TRVNTSU9OPTZdPVwiU0lYX1NFU1NJT05cIixlW2UuU0VWRU5fU0VTU0lPTj03XT1cIlNFVkVOX1NFU1NJT05cIixlW2UuRUlHSFRfU0VTU0lPTj04XT1cIkVJR0hUX1NFU1NJT05cIixlW2UuTklORV9TRVNTSU9OPTldPVwiTklORV9TRVNTSU9OXCIsZVtlLlRFTl9PUl9NT1JFX1NFU1NJT049MTBdPVwiVEVOX09SX01PUkVfU0VTU0lPTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRGFpbHlTZXNzaW9uQnVja2V0fHwodC5EYWlseVNlc3Npb25CdWNrZXQ9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9ERUxJVkVSWV9DQVRFR09SWT0wXT1cIlVOS05PV05fREVMSVZFUllfQ0FURUdPUllcIixlW2UuUEhPTkVfVkVSSUZJQ0FUSU9OPTFdPVwiUEhPTkVfVkVSSUZJQ0FUSU9OXCIsZVtlLkFQUF9ET1dOTE9BRD0yXT1cIkFQUF9ET1dOTE9BRFwiLGVbZS5TTkFQX1BSTz0zXT1cIlNOQVBfUFJPXCIsZVtlLlNOQVBfQURTX1BIT05FX1ZFUklGSUNBVElPTj00XT1cIlNOQVBfQURTX1BIT05FX1ZFUklGSUNBVElPTlwiLGVbZS5HUk9XVEhfQ0FNUEFJR049NV09XCJHUk9XVEhfQ0FNUEFJR05cIixlW2UuU0VDVVJJVFlfQUxFUlQ9Nl09XCJTRUNVUklUWV9BTEVSVFwiLGVbZS5CSVRNT0pJPTddPVwiQklUTU9KSVwiLGVbZS5JTlZJVEVTPThdPVwiSU5WSVRFU1wiLGVbZS5GUklFTkRJTkc9OV09XCJGUklFTkRJTkdcIixlW2UuU09DSUFMPTEwXT1cIlNPQ0lBTFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRGVsaXZlcnlDYXRlZ29yeXx8KHQuRGVsaXZlcnlDYXRlZ29yeT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0RFTElWRVJZX0NVUlJFTkNZPTBdPVwiVU5LTk9XTl9ERUxJVkVSWV9DVVJSRU5DWVwiLGVbZS5VU0Q9MV09XCJVU0RcIixlW2UuRVVSPTJdPVwiRVVSXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5EZWxpdmVyeUN1cnJlbmN5fHwodC5EZWxpdmVyeUN1cnJlbmN5PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV19ERUxJVkVSWV9GRUFUVVJFX1RZUEU9MF09XCJVTktOT1dfREVMSVZFUllfRkVBVFVSRV9UWVBFXCIsZVtlLk5FV19VU0VSX1BIT05FX1ZFUklGSUNBVElPTj0xXT1cIk5FV19VU0VSX1BIT05FX1ZFUklGSUNBVElPTlwiLGVbZS5ORVdfV0VCX1VTRVJfUEhPTkVfVkVSSUZJQ0FUSU9OPTJdPVwiTkVXX1dFQl9VU0VSX1BIT05FX1ZFUklGSUNBVElPTlwiLGVbZS5FWElTVElOR19VU0VSX1BIT05FX1ZFUklGSUNBVElPTj0zXT1cIkVYSVNUSU5HX1VTRVJfUEhPTkVfVkVSSUZJQ0FUSU9OXCIsZVtlLlRXT19GQUNUT1JfQVVUSEVOVElDQVRJT049NF09XCJUV09fRkFDVE9SX0FVVEhFTlRJQ0FUSU9OXCIsZVtlLk9OX0RFTUFORF9MT0dJTl9WRVJJRklDQVRJT049NV09XCJPTl9ERU1BTkRfTE9HSU5fVkVSSUZJQ0FUSU9OXCIsZVtlLlBBU1NXT1JEX1JFU0VUPTZdPVwiUEFTU1dPUkRfUkVTRVRcIixlW2UuUExBQ0VTPTddPVwiUExBQ0VTXCIsZVtlLlNOQVBDSEFUX0RPV05MT0FEPThdPVwiU05BUENIQVRfRE9XTkxPQURcIixlW2UuQURTX0FQSV9QSE9ORV9WRVJJRklDQVRJT049OV09XCJBRFNfQVBJX1BIT05FX1ZFUklGSUNBVElPTlwiLGVbZS5QRU5ESU5HX0ZSSUVORF9SRVFVRVNUX0NBTVBBSUdOPTEwXT1cIlBFTkRJTkdfRlJJRU5EX1JFUVVFU1RfQ0FNUEFJR05cIixlW2UuVkVSSUZZX0JZX1NOQVBDSEFUPTExXT1cIlZFUklGWV9CWV9TTkFQQ0hBVFwiLGVbZS5WRVJJRllfQllfU05BUENIQVRfUkVWRVJJRlk9MTJdPVwiVkVSSUZZX0JZX1NOQVBDSEFUX1JFVkVSSUZZXCIsZVtlLkZSSUVORF9TVE9SSUVTX0NBTVBBSUdOPTEzXT1cIkZSSUVORF9TVE9SSUVTX0NBTVBBSUdOXCIsZVtlLk1FU1NBR0VfUkVNSU5ERVJfQ0FNUEFJR049MTRdPVwiTUVTU0FHRV9SRU1JTkRFUl9DQU1QQUlHTlwiLGVbZS5JTkRFUEVOREVOQ0VfREFZX0FSR0VOVElOQV9DQU1QQUlHTj0yOV09XCJJTkRFUEVOREVOQ0VfREFZX0FSR0VOVElOQV9DQU1QQUlHTlwiLGVbZS5JTkRFUEVOREVOQ0VfREFZX0JSQVpJTF9DQU1QQUlHTj0zMF09XCJJTkRFUEVOREVOQ0VfREFZX0JSQVpJTF9DQU1QQUlHTlwiLGVbZS5JTkRFUEVOREVOQ0VfREFZX0NISUxFX0NBTVBBSUdOPTMxXT1cIklOREVQRU5ERU5DRV9EQVlfQ0hJTEVfQ0FNUEFJR05cIixlW2UuSU5ERVBFTkRFTkNFX0RBWV9DT0xPTUJJQV9DQU1QQUlHTj0zMl09XCJJTkRFUEVOREVOQ0VfREFZX0NPTE9NQklBX0NBTVBBSUdOXCIsZVtlLklOREVQRU5ERU5DRV9EQVlfRUNVQURPUl9DQU1QQUlHTj0zM109XCJJTkRFUEVOREVOQ0VfREFZX0VDVUFET1JfQ0FNUEFJR05cIixlW2UuSU5ERVBFTkRFTkNFX0RBWV9NRVhJQ09fQ0FNUEFJR049MzRdPVwiSU5ERVBFTkRFTkNFX0RBWV9NRVhJQ09fQ0FNUEFJR05cIixlW2UuSU5ERVBFTkRFTkNFX0RBWV9QQUtJU1RBTl9DQU1QQUlHTj0zNV09XCJJTkRFUEVOREVOQ0VfREFZX1BBS0lTVEFOX0NBTVBBSUdOXCIsZVtlLklOREVQRU5ERU5DRV9EQVlfUEVSVV9DQU1QQUlHTj0zNl09XCJJTkRFUEVOREVOQ0VfREFZX1BFUlVfQ0FNUEFJR05cIixlW2UuQ0FOQURBX0RBWV9DQU1QQUlHTj0zN109XCJDQU5BREFfREFZX0NBTVBBSUdOXCIsZVtlLkRBWV9PRl9USEVfREVBRF9NWF9DQU1QQUlHTj0zOF09XCJEQVlfT0ZfVEhFX0RFQURfTVhfQ0FNUEFJR05cIixlW2UuRElXQUxJX0NBTVBBSUdOPTM5XT1cIkRJV0FMSV9DQU1QQUlHTlwiLGVbZS5IQUxMT1dFRU5fQ0FNUEFJR049NDBdPVwiSEFMTE9XRUVOX0NBTVBBSUdOXCIsZVtlLkNIUklTVE1BU19EQVlfQ0FNUEFJR049NDFdPVwiQ0hSSVNUTUFTX0RBWV9DQU1QQUlHTlwiLGVbZS5ORVdfWUVBUlNfREFZX0NBTVBBSUdOPTQyXT1cIk5FV19ZRUFSU19EQVlfQ0FNUEFJR05cIixlW2UuU1VTUElDSU9VU19MT0dJTl9BUFA9NDNdPVwiU1VTUElDSU9VU19MT0dJTl9BUFBcIixlW2UuU1VTUElDSU9VU19MT0dJTl9XRUI9NDRdPVwiU1VTUElDSU9VU19MT0dJTl9XRUJcIixlW2UuVU5TVUJTQ1JJQkVfU0VDVVJJVFlfQUxFUlQ9NDVdPVwiVU5TVUJTQ1JJQkVfU0VDVVJJVFlfQUxFUlRcIixlW2UuRlJJRU5EX1NVR0dFU1RJT05TX0NBTVBBSUdOPTQ2XT1cIkZSSUVORF9TVUdHRVNUSU9OU19DQU1QQUlHTlwiLGVbZS5NRU1PUklFU19DQU1QQUlHTj00N109XCJNRU1PUklFU19DQU1QQUlHTlwiLGVbZS5UUkVORElOR19MRU5TRVNfQ0FNUEFJR049NDhdPVwiVFJFTkRJTkdfTEVOU0VTX0NBTVBBSUdOXCIsZVtlLlJFVkVSVF9QQVNTV09SRF9DSEFOR0U9NDldPVwiUkVWRVJUX1BBU1NXT1JEX0NIQU5HRVwiLGVbZS5SRVZFUlRfRU1BSUxfQ0hBTkdFPTUwXT1cIlJFVkVSVF9FTUFJTF9DSEFOR0VcIixlW2UuUkVWRVJUX1BIT05FX05VTUJFUl9DSEFOR0U9NTFdPVwiUkVWRVJUX1BIT05FX05VTUJFUl9DSEFOR0VcIixlW2UuQklUTU9KSV9QSE9ORV9WRVJJRklDQVRJT049NTJdPVwiQklUTU9KSV9QSE9ORV9WRVJJRklDQVRJT05cIixlW2UuSU5WSVRFX0NPTlRBQ1RTX1JFR0lTVFJBVElPTj01M109XCJJTlZJVEVfQ09OVEFDVFNfUkVHSVNUUkFUSU9OXCIsZVtlLk1BR0lDX0NPREVfTE9HSU49NTRdPVwiTUFHSUNfQ09ERV9MT0dJTlwiLGVbZS5GUklFTkRfUkVRVUVTVF9OT1RJRklDQVRJT049NTVdPVwiRlJJRU5EX1JFUVVFU1RfTk9USUZJQ0FUSU9OXCIsZVtlLk1FTU9SSUVTX0xJTktfU0hBUkU9NTZdPVwiTUVNT1JJRVNfTElOS19TSEFSRVwiLGVbZS5GUklFTkRfUkVDSVBST0NBVElPTl9DQU1QQUlHTj01N109XCJGUklFTkRfUkVDSVBST0NBVElPTl9DQU1QQUlHTlwiLGVbZS5XRUJfU0VMRl9VTkxPQ0tfUEhPTkVfVkVSSUZJQ0FUSU9OPTU4XT1cIldFQl9TRUxGX1VOTE9DS19QSE9ORV9WRVJJRklDQVRJT05cIixlW2UuTUFQUEVSX1BBU1NXT1JEX1JFU0VUPTU5XT1cIk1BUFBFUl9QQVNTV09SRF9SRVNFVFwiLGVbZS5XRUJfUEFTU1dPUkRfUkVTRVQ9NjBdPVwiV0VCX1BBU1NXT1JEX1JFU0VUXCIsZVtlLldFQl9PRExWPTYxXT1cIldFQl9PRExWXCIsZVtlLldFQl9FWElTVElOR19VU0VSX1BIT05FX1ZFUklGSUNBVElPTj02Ml09XCJXRUJfRVhJU1RJTkdfVVNFUl9QSE9ORV9WRVJJRklDQVRJT05cIixlW2UuUFVCTElDX0xJTktfU1BPVExJR0hUX1NOQVA9NjNdPVwiUFVCTElDX0xJTktfU1BPVExJR0hUX1NOQVBcIixlW2UuUFVCTElDX0xJTktfRElTQ09WRVJfUFJPRklMRT02NF09XCJQVUJMSUNfTElOS19ESVNDT1ZFUl9QUk9GSUxFXCIsZVtlLlBVQkxJQ19MSU5LX0xFTlM9NjVdPVwiUFVCTElDX0xJTktfTEVOU1wiLGVbZS5QVUJMSUNfTElOS19VU0VSX1BST0ZJTEU9NjZdPVwiUFVCTElDX0xJTktfVVNFUl9QUk9GSUxFXCIsZVtlLlBVQkxJQ19MSU5LX0RJU0NPVkVSX0VQSVNPREU9NjddPVwiUFVCTElDX0xJTktfRElTQ09WRVJfRVBJU09ERVwiLGVbZS5QVUJMSUNfTElOS19NQVBfU1RPUlk9NjhdPVwiUFVCTElDX0xJTktfTUFQX1NUT1JZXCIsZVtlLlBVQkxJQ19MSU5LX1BVQkxJQ19QUk9GSUxFPTY5XT1cIlBVQkxJQ19MSU5LX1BVQkxJQ19QUk9GSUxFXCIsZVtlLlBVQkxJQ19MSU5LX1BVQkxJQ19QUk9GSUxFX1NOQVA9NzBdPVwiUFVCTElDX0xJTktfUFVCTElDX1BST0ZJTEVfU05BUFwiLGVbZS5TTkFQX0FOWU9ORV9JTlZJVEU9NzFdPVwiU05BUF9BTllPTkVfSU5WSVRFXCIsZVtlLlNOQVBfQU5ZT05FX0ZSSUVORF9SRVFVRVNUPTcyXT1cIlNOQVBfQU5ZT05FX0ZSSUVORF9SRVFVRVNUXCIsZVtlLlJFR0lTVFJBVElPTl9DT05UQUNUUz03M109XCJSRUdJU1RSQVRJT05fQ09OVEFDVFNcIixlW2UuU09DSUFMX0xJTktfQU5ZPTc0XT1cIlNPQ0lBTF9MSU5LX0FOWVwiLGVbZS5TVUJTQ1JJUFRJT05fU1RPUklFU19DQU1QQUlHTj03NV09XCJTVUJTQ1JJUFRJT05fU1RPUklFU19DQU1QQUlHTlwiLGVbZS5GUklFTkRfSU5WSVRFX1JFR0lTVFJBVElPTj03Nl09XCJGUklFTkRfSU5WSVRFX1JFR0lTVFJBVElPTlwiLGVbZS5GUklFTkRfSU5WSVRFX0FMTF9DT05UQUNUUz03N109XCJGUklFTkRfSU5WSVRFX0FMTF9DT05UQUNUU1wiLGVbZS5GUklFTkRfSU5WSVRFX0ZSSUVORF9GRUVEPTc4XT1cIkZSSUVORF9JTlZJVEVfRlJJRU5EX0ZFRURcIixlW2UuRlJJRU5EX0lOVklURV9BRERfRlJJRU5EUz03OV09XCJGUklFTkRfSU5WSVRFX0FERF9GUklFTkRTXCIsZVtlLkZSSUVORF9JTlZJVEVfVU5JVkVSU0FMX1NFQVJDSD04MF09XCJGUklFTkRfSU5WSVRFX1VOSVZFUlNBTF9TRUFSQ0hcIixlW2UuRlJJRU5EX0lOVklURV9JTlZJVEVfRlJJRU5EU19QQUdFPTgxXT1cIkZSSUVORF9JTlZJVEVfSU5WSVRFX0ZSSUVORFNfUEFHRVwiLGVbZS5GUklFTkRfSU5WSVRFX1NFTkRfVE89ODJdPVwiRlJJRU5EX0lOVklURV9TRU5EX1RPXCIsZVtlLkNMSUVOVF9NRU1PUllfTElOS19TSEFSRT04M109XCJDTElFTlRfTUVNT1JZX0xJTktfU0hBUkVcIixlW2UuQ0xJRU5UX01BSU5fQ0FNRVJBX0xJTktfU0hBUkU9ODRdPVwiQ0xJRU5UX01BSU5fQ0FNRVJBX0xJTktfU0hBUkVcIixlW2UuUEhPTkVfSUFSX05FV19VU0VSPTg1XT1cIlBIT05FX0lBUl9ORVdfVVNFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRGVsaXZlcnlGZWF0dXJlVHlwZXx8KHQuRGVsaXZlcnlGZWF0dXJlVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0RFTElWRVJZX1BST1ZJREVSX1RZUEU9MF09XCJVTktOT1dOX0RFTElWRVJZX1BST1ZJREVSX1RZUEVcIixlW2UuTkVYTU89MV09XCJORVhNT1wiLGVbZS5JTkZPQklQPTJdPVwiSU5GT0JJUFwiLGVbZS5UV0lMSU89M109XCJUV0lMSU9cIixlW2UuVEVMRVNJR049NF09XCJURUxFU0lHTlwiLGVbZS5TSU5DSD01XT1cIlNJTkNIXCIsZVtlLkFXUz04XT1cIkFXU1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRGVsaXZlcnlQcm92aWRlclR5cGV8fCh0LkRlbGl2ZXJ5UHJvdmlkZXJUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkRFTElWRVJZX1NUQVRVU19VTlNFVD0wXT1cIkRFTElWRVJZX1NUQVRVU19VTlNFVFwiLGVbZS5BVFRFTVBURUQ9MV09XCJBVFRFTVBURURcIixlW2UuTk9UX0FUVEVNUFRFRD0yXT1cIk5PVF9BVFRFTVBURURcIixlW2UuSU5WQUxJRF9OVU1CRVI9M109XCJJTlZBTElEX05VTUJFUlwiLGVbZS5VTlJFQUNIQUJMRV9OVU1CRVI9NF09XCJVTlJFQUNIQUJMRV9OVU1CRVJcIixlW2UuVU5TVUJTQ1JJQkVEX05VTUJFUj01XT1cIlVOU1VCU0NSSUJFRF9OVU1CRVJcIixlW2UuUkFURV9MSU1JVD02XT1cIlJBVEVfTElNSVRcIixlW2UuQkxPQ0tFRF9DT1VOVFJZX0NPREU9N109XCJCTE9DS0VEX0NPVU5UUllfQ09ERVwiLGVbZS5TQ0hFRFVMRURfU0VORD04XT1cIlNDSEVEVUxFRF9TRU5EXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5EZWxpdmVyeVN0YXR1c3x8KHQuRGVsaXZlcnlTdGF0dXM9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9ERUxJVkVSWV9TVFJBVEVHWV9UWVBFPTBdPVwiVU5LTk9XTl9ERUxJVkVSWV9TVFJBVEVHWV9UWVBFXCIsZVtlLlNNUz0xXT1cIlNNU1wiLGVbZS5WT0lDRT0yXT1cIlZPSUNFXCIsZVtlLkZMQVNIPTNdPVwiRkxBU0hcIixlW2UuU0VBTUxFU1M9NF09XCJTRUFNTEVTU1wiLGVbZS5XSEFUU0FQUF9ERUxJVkVSWT01XT1cIldIQVRTQVBQX0RFTElWRVJZXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5EZWxpdmVyeVN0cmF0ZWd5VHlwZXx8KHQuRGVsaXZlcnlTdHJhdGVneVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuRU1QVFlfSEFTSD0wXT1cIkVNUFRZX0hBU0hcIixlW2UuVU5LTk9XTl9IQVNIPTFdPVwiVU5LTk9XTl9IQVNIXCIsZVtlLlVOS05PV05fVVNFUj0yXT1cIlVOS05PV05fVVNFUlwiLGVbZS5BTFJFQURZX1ZFUklGSUVEPTNdPVwiQUxSRUFEWV9WRVJJRklFRFwiLGVbZS5FWFBJUkVEX1RPS0VOPTRdPVwiRVhQSVJFRF9UT0tFTlwiLGVbZS5CVVJORURfVE9LRU49NV09XCJCVVJORURfVE9LRU5cIixlW2UuSU5WQUxJRF9FTUFJTD02XT1cIklOVkFMSURfRU1BSUxcIixlW2UuSU5DT1JSRUNUX0VNQUlMPTddPVwiSU5DT1JSRUNUX0VNQUlMXCIsZVtlLkVNQUlMX1RBS0VOPThdPVwiRU1BSUxfVEFLRU5cIixlW2UuQ09ORklSTUFUSU9OX1NVQ0NFU1M9OV09XCJDT05GSVJNQVRJT05fU1VDQ0VTU1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRW1haWxDb25maXJtYXRpb25UeXBlfHwodC5FbWFpbENvbmZpcm1hdGlvblR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9FTUFJTF9FVkVOVF9UWVBFPTBdPVwiVU5LTk9XTl9FTUFJTF9FVkVOVF9UWVBFXCIsZVtlLlBST0NFU1NFRD0xXT1cIlBST0NFU1NFRFwiLGVbZS5EUk9QUEVEPTJdPVwiRFJPUFBFRFwiLGVbZS5ERUxJVkVSRUQ9M109XCJERUxJVkVSRURcIixlW2UuREVGRVJSRUQ9NF09XCJERUZFUlJFRFwiLGVbZS5CT1VOQ0U9NV09XCJCT1VOQ0VcIixlW2UuT1BFTkVEPTZdPVwiT1BFTkVEXCIsZVtlLkNMSUNLRUQ9N109XCJDTElDS0VEXCIsZVtlLlNQQU09OF09XCJTUEFNXCIsZVtlLlVOVVNCQ1JJQkU9OV09XCJVTlVTQkNSSUJFXCIsZVtlLkJMT0NLRUQ9MTBdPVwiQkxPQ0tFRFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRW1haWxFdmVudFR5cGV8fCh0LkVtYWlsRXZlbnRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fRVhBTVBMRV9FTlVNPTBdPVwiVU5LTk9XTl9FWEFNUExFX0VOVU1cIixlW2UuRVhBTVBMRV9PTkU9MV09XCJFWEFNUExFX09ORVwiLGVbZS5FWEFNUExFX1RXTz0yXT1cIkVYQU1QTEVfVFdPXCIsZVtlLkVYQU1QTEVfVEhSRUU9M109XCJFWEFNUExFX1RIUkVFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5FeGFtcGxlRW51bXx8KHQuRXhhbXBsZUVudW09e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9GQU1JTFlfQ0VOVEVSX0VOUk9MTE1FTlRfU1RBVFVTX1RZUEU9MF09XCJVTktOT1dOX0ZBTUlMWV9DRU5URVJfRU5ST0xMTUVOVF9TVEFUVVNfVFlQRVwiLGVbZS5GQU1JTFlfQ0VOVEVSX0VOUk9MTE1FTlRfU1RBVFVTX1RZUEVfSU5WSVRFRD0xXT1cIkZBTUlMWV9DRU5URVJfRU5ST0xMTUVOVF9TVEFUVVNfVFlQRV9JTlZJVEVEXCIsZVtlLkZBTUlMWV9DRU5URVJfRU5ST0xMTUVOVF9TVEFUVVNfVFlQRV9BQ0NFUFRFRD0yXT1cIkZBTUlMWV9DRU5URVJfRU5ST0xMTUVOVF9TVEFUVVNfVFlQRV9BQ0NFUFRFRFwiLGVbZS5GQU1JTFlfQ0VOVEVSX0VOUk9MTE1FTlRfU1RBVFVTX1RZUEVfTEVGVD0zXT1cIkZBTUlMWV9DRU5URVJfRU5ST0xMTUVOVF9TVEFUVVNfVFlQRV9MRUZUXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5GYW1pbHlDZW50ZXJFbnJvbGxtZW50U3RhdHVzVHlwZXx8KHQuRmFtaWx5Q2VudGVyRW5yb2xsbWVudFN0YXR1c1R5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVElNRVNUQU1QPTBdPVwiVElNRVNUQU1QXCIsZVtlLldFQVRIRVI9MV09XCJXRUFUSEVSXCIsZVtlLldFQVRIRVJfRk9SRUNBU1RfRklWRV9IT1VSPTJdPVwiV0VBVEhFUl9GT1JFQ0FTVF9GSVZFX0hPVVJcIixlW2UuV0VBVEhFUl9GT1JFQ0FTVF9USFJFRV9EQVk9M109XCJXRUFUSEVSX0ZPUkVDQVNUX1RIUkVFX0RBWVwiLGVbZS5TUEVFRD00XT1cIlNQRUVEXCIsZVtlLkFMVElUVURFPTVdPVwiQUxUSVRVREVcIixlW2UuQkFUVEVSWT02XT1cIkJBVFRFUllcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkZpbHRlckluZm9UeXBlfHwodC5GaWx0ZXJJbmZvVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5MT0NBVElPTj0wXT1cIkxPQ0FUSU9OXCIsZVtlLkdFTz0xXT1cIkdFT1wiLGVbZS5CUkFORD0yXT1cIkJSQU5EXCIsZVtlLlNUQU5EQVJEPTNdPVwiU1RBTkRBUkRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkZpbHRlclR5cGV8fCh0LkZpbHRlclR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuTUlTU19FVElLQVRFPTBdPVwiTUlTU19FVElLQVRFXCIsZVtlLklOU1RBU05BUD0xXT1cIklOU1RBU05BUFwiLGVbZS5HUkFZU0NBTEU9Ml09XCJHUkFZU0NBTEVcIixlW2UuRkFDRV9TTU9PVEhJTkc9M109XCJGQUNFX1NNT09USElOR1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRmlsdGVyVmlzdWFsVHlwZXx8KHQuRmlsdGVyVmlzdWFsVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0ZJTkRfRlJJRU5EU19FVkVOVF9TQ0VOQVJJTz0wXT1cIlVOS05PV05fRklORF9GUklFTkRTX0VWRU5UX1NDRU5BUklPXCIsZVtlLkNBUFRDSEFfVVNFUj0xXT1cIkNBUFRDSEFfVVNFUlwiLGVbZS5ORVdfQUREUkVTU19CT09LPTJdPVwiTkVXX0FERFJFU1NfQk9PS1wiLGVbZS5PTERfQUREUkVTU19CT09LPTNdPVwiT0xEX0FERFJFU1NfQk9PS1wiLGVbZS5SRVNVUlJFQ1RFRF9VU0VSPTRdPVwiUkVTVVJSRUNURURfVVNFUlwiLGVbZS5MT0dHSU5HPTVdPVwiTE9HR0lOR1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRmluZEZyaWVuZHNFdmVudFNjZW5hcmlvfHwodC5GaW5kRnJpZW5kc0V2ZW50U2NlbmFyaW89e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9GSU5EX0ZSSUVORFNfRVZFTlRfU09VUkNFPTBdPVwiVU5LTk9XTl9GSU5EX0ZSSUVORFNfRVZFTlRfU09VUkNFXCIsZVtlLlJFR0lTVFJBVElPTj0xXT1cIlJFR0lTVFJBVElPTlwiLGVbZS5VTlNFVD0yXT1cIlVOU0VUXCIsZVtlLlVOUkVDT0dOSVpFRF9WQUxVRT0zXT1cIlVOUkVDT0dOSVpFRF9WQUxVRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRmluZEZyaWVuZHNFdmVudFNvdXJjZXx8KHQuRmluZEZyaWVuZHNFdmVudFNvdXJjZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0ZJTkRfRlJJRU5EU19FVkVOVF9UWVBFPTBdPVwiVU5LTk9XTl9GSU5EX0ZSSUVORFNfRVZFTlRfVFlQRVwiLGVbZS5GSU5EX0ZSSUVORFM9MV09XCJGSU5EX0ZSSUVORFNcIixlW2UuRklORF9GUklFTkRTX1JFQUNIX0xJTUlUPTJdPVwiRklORF9GUklFTkRTX1JFQUNIX0xJTUlUXCIsZVtlLkZJTkRfRlJJRU5EU19JTlZBTElEPTNdPVwiRklORF9GUklFTkRTX0lOVkFMSURcIixlW2UuRklORF9GUklFTkRTX0RFTklFRD00XT1cIkZJTkRfRlJJRU5EU19ERU5JRURcIixlW2UuRklORF9GUklFTkRTX0NBUFRDSEE9NV09XCJGSU5EX0ZSSUVORFNfQ0FQVENIQVwiLGVbZS5GSU5EX0ZSSUVORFNfQ09OVEFDVF9CT09LX0RFTEVURV9BTEw9Nl09XCJGSU5EX0ZSSUVORFNfQ09OVEFDVF9CT09LX0RFTEVURV9BTExcIixlW2UuRklORF9GUklFTkRTX0FERFJFU1NfQk9PS19TSVpFPTddPVwiRklORF9GUklFTkRTX0FERFJFU1NfQk9PS19TSVpFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5GaW5kRnJpZW5kc0V2ZW50VHlwZXx8KHQuRmluZEZyaWVuZHNFdmVudFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9GUklFTkRfQUNUSU9OX0VWRU5UX1RZUEU9MF09XCJVTktOT1dOX0ZSSUVORF9BQ1RJT05fRVZFTlRfVFlQRVwiLGVbZS5DT05URU5UX0lOVklURV9BVVRPX0ZSSUVORElORz0xXT1cIkNPTlRFTlRfSU5WSVRFX0FVVE9fRlJJRU5ESU5HXCIsZVtlLkRFTklFRF9GUklFTkRfQUNUSU9OPTJdPVwiREVOSUVEX0ZSSUVORF9BQ1RJT05cIixlW2UuRlJJRU5EX0FDVElPTj0zXT1cIkZSSUVORF9BQ1RJT05cIixlW2UuRlJJRU5EX0FERElUSU9OX1JFQUNIX0xJTUlURVI9NF09XCJGUklFTkRfQURESVRJT05fUkVBQ0hfTElNSVRFUlwiLGVbZS5JREVOVElUWV9GUklFTkRfQURESVRJT05fUFVTSF9OT1RJRklDQVRJT049NV09XCJJREVOVElUWV9GUklFTkRfQURESVRJT05fUFVTSF9OT1RJRklDQVRJT05cIixlW2UuTkVXX1VTRVJfQUREX0ZSSUVORD02XT1cIk5FV19VU0VSX0FERF9GUklFTkRcIixlW2UuRlJJRU5EX0FDVElPTl9TVUNDRVNTPTddPVwiRlJJRU5EX0FDVElPTl9TVUNDRVNTXCIsZVtlLkZSSUVORF9BQ1RJT05fRkFJTFVSRT04XT1cIkZSSUVORF9BQ1RJT05fRkFJTFVSRVwiLGVbZS5GUklFTkRfQUNUSU9OX0lOUFVUPTldPVwiRlJJRU5EX0FDVElPTl9JTlBVVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuRnJpZW5kQWN0aW9uRXZlbnRUeXBlfHwodC5GcmllbmRBY3Rpb25FdmVudFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9OT1RJRklDQVRJT05fQ0hBTk5FTD0wXT1cIlVOS05PV05fTk9USUZJQ0FUSU9OX0NIQU5ORUxcIixlW2UuUFVTSF9OT1RJRklDQVRJT05fQ0hBTk5FTD0xXT1cIlBVU0hfTk9USUZJQ0FUSU9OX0NIQU5ORUxcIixlW2UuRU1BSUxfTk9USUZJQ0FUSU9OX0NIQU5ORUw9Ml09XCJFTUFJTF9OT1RJRklDQVRJT05fQ0hBTk5FTFwiLGVbZS5TTVNfTk9USUZJQ0FUSU9OX0NIQU5ORUw9M109XCJTTVNfTk9USUZJQ0FUSU9OX0NIQU5ORUxcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0Lkdyb3d0aE5vdGlmaWNhdGlvbkNoYW5uZWxUeXBlfHwodC5Hcm93dGhOb3RpZmljYXRpb25DaGFubmVsVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VU0VSX1ZBTElEQVRJT05fRVZFTlQ9MF09XCJVU0VSX1ZBTElEQVRJT05fRVZFTlRcIixlW2UuU0lOR0xFX0NBTVBBSUdOX1RBUkdFVElOR19FVkVOVD0xXT1cIlNJTkdMRV9DQU1QQUlHTl9UQVJHRVRJTkdfRVZFTlRcIixlW2UuUE9TVF9QVVNIX0VWRU5UPTJdPVwiUE9TVF9QVVNIX0VWRU5UXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5Hcm93dGhOb3RpZmljYXRpb25QdXNoQ2FtcGFpZ25FdmVudFR5cGV8fCh0Lkdyb3d0aE5vdGlmaWNhdGlvblB1c2hDYW1wYWlnbkV2ZW50VHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5USU1FX1dJTkRPVz0wXT1cIlRJTUVfV0lORE9XXCIsZVtlLlJFVFJZPTFdPVwiUkVUUllcIixlW2UuREVWSUNFX1RSSUdHRVI9Ml09XCJERVZJQ0VfVFJJR0dFUlwiLGVbZS5VTktOT1dOX1RZUEU9M109XCJVTktOT1dOX1RZUEVcIixlW2UuUFVTSF9CQVNFRD00XT1cIlBVU0hfQkFTRURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0Lkdyb3d0aE5vdGlmaWNhdGlvblRhc2tTb3VyY2VUeXBlfHwodC5Hcm93dGhOb3RpZmljYXRpb25UYXNrU291cmNlVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QUkVWSUVXX1NIQVJFPTBdPVwiUFJFVklFV19TSEFSRVwiLGVbZS5DSEFUX1NIQVJFPTFdPVwiQ0hBVF9TSEFSRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuSW52aXRlS2l0U2hhcmVUeXBlfHwodC5JbnZpdGVLaXRTaGFyZVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuS0lUX0FQUF9PUEVOX05PTkU9MF09XCJLSVRfQVBQX09QRU5fTk9ORVwiLGVbZS5LSVRfQVBQX09QRU5fTE9HSU5fS0lUPTFdPVwiS0lUX0FQUF9PUEVOX0xPR0lOX0tJVFwiLGVbZS5LSVRfQVBQX09QRU5fSU5WSVRFX1BST0ZJTEU9Ml09XCJLSVRfQVBQX09QRU5fSU5WSVRFX1BST0ZJTEVcIixlW2UuS0lUX0FQUF9PUEVOX0lOVklURV9HQU1FPTNdPVwiS0lUX0FQUF9PUEVOX0lOVklURV9HQU1FXCIsZVtlLktJVF9BUFBfT1BFTl9UT0tFTl9QVVJDSEFTRT00XT1cIktJVF9BUFBfT1BFTl9UT0tFTl9QVVJDSEFTRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuS2l0RGVlcExpbmtTb3VyY2VUeXBlfHwodC5LaXREZWVwTGlua1NvdXJjZVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9LSVRfRVJST1JfQ09ERT0wXT1cIlVOS05PV05fS0lUX0VSUk9SX0NPREVcIixlW2UuQ1JFQVRJVkVfS0lUX0ZJTEVfU0laRV9UT09fTEFSR0U9MV09XCJDUkVBVElWRV9LSVRfRklMRV9TSVpFX1RPT19MQVJHRVwiLGVbZS5DUkVBVElWRV9LSVRfSU5WQUxJRF9GT1JNQVQ9Ml09XCJDUkVBVElWRV9LSVRfSU5WQUxJRF9GT1JNQVRcIixlW2UuQ1JFQVRJVkVfS0lUX1ZJREVPX1RPT19MT05HPTNdPVwiQ1JFQVRJVkVfS0lUX1ZJREVPX1RPT19MT05HXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5LaXRFcnJvckNvZGV8fCh0LktpdEVycm9yQ29kZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5OT19QTFVHSU49MF09XCJOT19QTFVHSU5cIixlW2UuVU5JVFk9MV09XCJVTklUWVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuS2l0UGx1Z2luVHlwZXx8KHQuS2l0UGx1Z2luVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0tJVF9UWVBFPTBdPVwiVU5LTk9XTl9LSVRfVFlQRVwiLGVbZS5CSVRNT0pJX0tJVD0xXT1cIkJJVE1PSklfS0lUXCIsZVtlLkNSRUFUSVZFX0tJVD0yXT1cIkNSRUFUSVZFX0tJVFwiLGVbZS5MT0dJTl9LSVQ9M109XCJMT0dJTl9LSVRcIixlW2UuU1RPUllfS0lUPTRdPVwiU1RPUllfS0lUXCIsZVtlLkNBTUVSQV9LSVQ9NV09XCJDQU1FUkFfS0lUXCIsZVtlLlNIT1BfS0lUPTZdPVwiU0hPUF9LSVRcIixlW2UuRVVMQV9LSVQ9N109XCJFVUxBX0tJVFwiLGVbZS5QQVlNRU5UU19LSVQ9OF09XCJQQVlNRU5UU19LSVRcIixlW2UuSU5WSVRFX0tJVD05XT1cIklOVklURV9LSVRcIixlW2UuQ0FNRVJBX0tJVF9XRUI9MTBdPVwiQ0FNRVJBX0tJVF9XRUJcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LktpdFR5cGV8fCh0LktpdFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9MRU5TX0VWRU5UX1NPVVJDRT0wXT1cIlVOS05PV05fTEVOU19FVkVOVF9TT1VSQ0VcIixlW2UuU05BUENIQVRfRVZFTlQ9MV09XCJTTkFQQ0hBVF9FVkVOVFwiLGVbZS5DQU1FUkFfS0lUX0VWRU5UPTJdPVwiQ0FNRVJBX0tJVF9FVkVOVFwiLGVbZS5TUEVDVEFDTEVTX0VWRU5UPTNdPVwiU1BFQ1RBQ0xFU19FVkVOVFwiLGVbZS5MRU5TX0NMT1VEX0FQUF9FVkVOVD00XT1cIkxFTlNfQ0xPVURfQVBQX0VWRU5UXCIsZVtlLkxFTlNfU1RVRElPX0VWRU5UPTVdPVwiTEVOU19TVFVESU9fRVZFTlRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxlbnNFdmVudFNvdXJjZXx8KHQuTGVuc0V2ZW50U291cmNlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkxFTlNfU1VCTUlTU0lPTl9VTktOT1dOPTBdPVwiTEVOU19TVUJNSVNTSU9OX1VOS05PV05cIixlW2UuTEVOU19TVUJNSVNTSU9OX0NPTU1VTklUWT0xXT1cIkxFTlNfU1VCTUlTU0lPTl9DT01NVU5JVFlcIixlW2UuTEVOU19TVUJNSVNTSU9OX0JVU0lORVNTPTJdPVwiTEVOU19TVUJNSVNTSU9OX0JVU0lORVNTXCIsZVtlLkxFTlNfU1VCTUlTU0lPTl9QVUJMSUNfUFJPRklMRT0zXT1cIkxFTlNfU1VCTUlTU0lPTl9QVUJMSUNfUFJPRklMRVwiLGVbZS5MRU5TX1NVQk1JU1NJT05fTEVOU19GT0xERVI9NF09XCJMRU5TX1NVQk1JU1NJT05fTEVOU19GT0xERVJcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxlbnNTdWJtaXNzaW9uVHlwZXx8KHQuTGVuc1N1Ym1pc3Npb25UeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkFTU0VUX0xJQlJBUllfRE9XTkxPQUQ9MF09XCJBU1NFVF9MSUJSQVJZX0RPV05MT0FEXCIsZVtlLkFTU0VUX0xJQlJBUllfSU1QT1JUPTFdPVwiQVNTRVRfTElCUkFSWV9JTVBPUlRcIixlW2UuQVNTRVRfTElCUkFSWV9JTlNUQUxMPTJdPVwiQVNTRVRfTElCUkFSWV9JTlNUQUxMXCIsZVtlLkFTU0VUX0xJQlJBUllfVVBEQVRFPTNdPVwiQVNTRVRfTElCUkFSWV9VUERBVEVcIixlW2UuQVNTRVRfTElCUkFSWV9VUERBVEVfUkVNT1ZFPTRdPVwiQVNTRVRfTElCUkFSWV9VUERBVEVfUkVNT1ZFXCIsZVtlLkFTU0VUX0xJQlJBUllfUkVNT1ZFPTVdPVwiQVNTRVRfTElCUkFSWV9SRU1PVkVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxlbnNzdHVkaW9Bc3NldGxpYnJhcnlBY3Rpb25UeXBlfHwodC5MZW5zc3R1ZGlvQXNzZXRsaWJyYXJ5QWN0aW9uVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5BU1NFVF9MSUJSQVJZX0VYUExPUkU9MF09XCJBU1NFVF9MSUJSQVJZX0VYUExPUkVcIixlW2UuQVNTRVRfTElCUkFSWV9TRUFSQ0g9MV09XCJBU1NFVF9MSUJSQVJZX1NFQVJDSFwiLGVbZS5BU1NFVF9MSUJSQVJZX1NUQVJUX1NDUkVFTj0yXT1cIkFTU0VUX0xJQlJBUllfU1RBUlRfU0NSRUVOXCIsZVtlLkFTU0VUX0xJQlJBUllfUFJFSU5TVEFMTD0zXT1cIkFTU0VUX0xJQlJBUllfUFJFSU5TVEFMTFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTGVuc3N0dWRpb0Fzc2V0bGlicmFyeUltcG9ydFNvdXJjZVR5cGV8fCh0LkxlbnNzdHVkaW9Bc3NldGxpYnJhcnlJbXBvcnRTb3VyY2VUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk9QRU49MF09XCJPUEVOXCIsZVtlLlNLSVA9MV09XCJTS0lQXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5MZW5zc3R1ZGlvT25ib2FyZGluZ0VudHJ5QWN0aW9uVHlwZXx8KHQuTGVuc3N0dWRpb09uYm9hcmRpbmdFbnRyeUFjdGlvblR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuTk9ORT0wXT1cIk5PTkVcIixlW2UuRklSU1RfTEFVTkNIPTFdPVwiRklSU1RfTEFVTkNIXCIsZVtlLkJBTk5FUj0yXT1cIkJBTk5FUlwiLGVbZS5IRUxQX01FTlU9M109XCJIRUxQX01FTlVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxlbnNzdHVkaW9PbmJvYXJkaW5nRW50cnlQb2ludFR5cGV8fCh0LkxlbnNzdHVkaW9PbmJvYXJkaW5nRW50cnlQb2ludFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuQkFDSz0wXT1cIkJBQ0tcIixlW2UuTkVYVD0xXT1cIk5FWFRcIixlW2UuRVhJVD0yXT1cIkVYSVRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxlbnNzdHVkaW9PbmJvYXJkaW5nUGFnZUFjdGlvblR5cGV8fCh0LkxlbnNzdHVkaW9PbmJvYXJkaW5nUGFnZUFjdGlvblR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuRk9SVU09MF09XCJGT1JVTVwiLGVbZS5SRVBPUlQ9MV09XCJSRVBPUlRcIixlW2UuRE9DVU1FTlQ9Ml09XCJET0NVTUVOVFwiLGVbZS5ISURFX1VQREFURVM9M109XCJISURFX1VQREFURVNcIixlW2UuU0hPV19VUERBVEVTPTRdPVwiU0hPV19VUERBVEVTXCIsZVtlLlNXSVBFX0JBTk5FUj01XT1cIlNXSVBFX0JBTk5FUlwiLGVbZS5DTElDS0VEX1RFTVBMQVRFPTddPVwiQ0xJQ0tFRF9URU1QTEFURVwiLGVbZS5DTElDS0VEX1ZJREVPPThdPVwiQ0xJQ0tFRF9WSURFT1wiLGVbZS5DTElDS0VEX0dVSURFPTldPVwiQ0xJQ0tFRF9HVUlERVwiLGVbZS5SRVFVRVNURURfSE9NRV9QQUdFPTEwXT1cIlJFUVVFU1RFRF9IT01FX1BBR0VcIixlW2UuUkVRVUVTVEVEX1RFTVBMQVRFU19QQUdFPTExXT1cIlJFUVVFU1RFRF9URU1QTEFURVNfUEFHRVwiLGVbZS5SRVFVRVNURURfTEVBUk5fUEFHRT0xMl09XCJSRVFVRVNURURfTEVBUk5fUEFHRVwiLGVbZS5SRVFVRVNURURfRE9DVU1FTlRBVElPTl9QQUdFPTEzXT1cIlJFUVVFU1RFRF9ET0NVTUVOVEFUSU9OX1BBR0VcIixlW2UuUkVRVUVTVEVEX0hPTUVfUEFHRV9URU1QTEFURVM9MTRdPVwiUkVRVUVTVEVEX0hPTUVfUEFHRV9URU1QTEFURVNcIixlW2UuUkVRVUVTVEVEX0hPTUVfUEFHRV9WSURFT1NfQU5EX0dVSURFUz0xNV09XCJSRVFVRVNURURfSE9NRV9QQUdFX1ZJREVPU19BTkRfR1VJREVTXCIsZVtlLlJFUVVFU1RFRF9IT01FX1BBR0VfQUxMX1RFTVBMQVRFUz0xNl09XCJSRVFVRVNURURfSE9NRV9QQUdFX0FMTF9URU1QTEFURVNcIixlW2UuUkVRVUVTVEVEX0hPTUVfUEFHRV9BTExfVklERU9TX0FORF9HVUlERVM9MTddPVwiUkVRVUVTVEVEX0hPTUVfUEFHRV9BTExfVklERU9TX0FORF9HVUlERVNcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxlbnNzdHVkaW9TdGFydHNjcmVlbkFjdGlvblR5cGV8fCh0LkxlbnNzdHVkaW9TdGFydHNjcmVlbkFjdGlvblR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuT1BFTl9QUk9KRUNUPTBdPVwiT1BFTl9QUk9KRUNUXCIsZVtlLkVYSVRfQVBQPTFdPVwiRVhJVF9BUFBcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxlbnNzdHVkaW9TdGFydHNjcmVlbkV4aXRUeXBlfHwodC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5FeGl0VHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5GSUxURVJfQUNUSU9OX1RZUEVfVU5LTk9XTj0wXT1cIkZJTFRFUl9BQ1RJT05fVFlQRV9VTktOT1dOXCIsZVtlLkZJTFRFUl9BQ1RJT05fVFlQRV9SRUNFTlRMWV9VU0VEPTFdPVwiRklMVEVSX0FDVElPTl9UWVBFX1JFQ0VOVExZX1VTRURcIixlW2UuRklMVEVSX0FDVElPTl9UWVBFX1JFQ09NTUVOREVEPTJdPVwiRklMVEVSX0FDVElPTl9UWVBFX1JFQ09NTUVOREVEXCIsZVtlLkZJTFRFUl9BQ1RJT05fVFlQRV9QT1BVTEFSPTNdPVwiRklMVEVSX0FDVElPTl9UWVBFX1BPUFVMQVJcIixlW2UuRklMVEVSX0FDVElPTl9UWVBFX0JFR0lOTkVSPTRdPVwiRklMVEVSX0FDVElPTl9UWVBFX0JFR0lOTkVSXCIsZVtlLkZJTFRFUl9BQ1RJT05fVFlQRV9JTlRFUk1FRElBVEU9NV09XCJGSUxURVJfQUNUSU9OX1RZUEVfSU5URVJNRURJQVRFXCIsZVtlLkZJTFRFUl9BQ1RJT05fVFlQRV9BRFZBTkNFRD02XT1cIkZJTFRFUl9BQ1RJT05fVFlQRV9BRFZBTkNFRFwiLGVbZS5GSUxURVJfQUNUSU9OX1RZUEVfQUxMX1RFTVBMQVRFUz03XT1cIkZJTFRFUl9BQ1RJT05fVFlQRV9BTExfVEVNUExBVEVTXCIsZVtlLkZJTFRFUl9BQ1RJT05fVFlQRV9BTExfVklERU9TX0FORF9HVUlERVM9OF09XCJGSUxURVJfQUNUSU9OX1RZUEVfQUxMX1ZJREVPU19BTkRfR1VJREVTXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5GaWx0ZXJBY3Rpb25UeXBlfHwodC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5GaWx0ZXJBY3Rpb25UeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlNFQ1RJT05fVFlQRV9VTktOT1dOPTBdPVwiU0VDVElPTl9UWVBFX1VOS05PV05cIixlW2UuU0VDVElPTl9UWVBFX0hPTUVfUEFHRV9URU1QTEFURVM9MV09XCJTRUNUSU9OX1RZUEVfSE9NRV9QQUdFX1RFTVBMQVRFU1wiLGVbZS5TRUNUSU9OX1RZUEVfSE9NRV9QQUdFX1ZJREVPU19BTkRfR1VJREVTPTJdPVwiU0VDVElPTl9UWVBFX0hPTUVfUEFHRV9WSURFT1NfQU5EX0dVSURFU1wiLGVbZS5TRUNUSU9OX1RZUEVfVEVNUExBVEVTX1BBR0U9M109XCJTRUNUSU9OX1RZUEVfVEVNUExBVEVTX1BBR0VcIixlW2UuU0VDVElPTl9UWVBFX0xFQVJOX1BBR0U9NF09XCJTRUNUSU9OX1RZUEVfTEVBUk5fUEFHRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTGVuc3N0dWRpb1N0YXJ0c2NyZWVuU2VjdGlvblR5cGV8fCh0LkxlbnNzdHVkaW9TdGFydHNjcmVlblNlY3Rpb25UeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkxPR0lOX0FQSV9VTktOT1dOPTBdPVwiTE9HSU5fQVBJX1VOS05PV05cIixlW2UuUEFTU1dPUkQ9MV09XCJQQVNTV09SRFwiLGVbZS5PTkVfVEFQX1YxPTJdPVwiT05FX1RBUF9WMVwiLGVbZS5PTkVfVEFQX1YzPTNdPVwiT05FX1RBUF9WM1wiLGVbZS5WRVJJRllfVFdPX0ZBPTRdPVwiVkVSSUZZX1RXT19GQVwiLGVbZS5WRVJJRllfT0RMVj01XT1cIlZFUklGWV9PRExWXCIsZVtlLlZFUklGWV9NQUdJQ19MT0dJTl9DT0RFPTZdPVwiVkVSSUZZX01BR0lDX0xPR0lOX0NPREVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxvZ2luQVBJfHwodC5Mb2dpbkFQST17fSkpLGZ1bmN0aW9uKGUpe2VbZS5MT0dJTl9JREVOVElGSUVSX1VOU0VUPTBdPVwiTE9HSU5fSURFTlRJRklFUl9VTlNFVFwiLGVbZS5MT0dJTl9JREVOVElGSUVSX1VTRVJOQU1FPTFdPVwiTE9HSU5fSURFTlRJRklFUl9VU0VSTkFNRVwiLGVbZS5MT0dJTl9JREVOVElGSUVSX0VNQUlMPTJdPVwiTE9HSU5fSURFTlRJRklFUl9FTUFJTFwiLGVbZS5MT0dJTl9JREVOVElGSUVSX1BIT05FPTNdPVwiTE9HSU5fSURFTlRJRklFUl9QSE9ORVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTG9naW5JZGVudGlmaWVyVHlwZXx8KHQuTG9naW5JZGVudGlmaWVyVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5MT0dJTl9SRVNVTFRfVU5TRVQ9MF09XCJMT0dJTl9SRVNVTFRfVU5TRVRcIixlW2UuTE9HSU5fUkVTVUxUX1NVQ0NFU1NfTE9HSU49MV09XCJMT0dJTl9SRVNVTFRfU1VDQ0VTU19MT0dJTlwiLGVbZS5MT0dJTl9SRVNVTFRfU1VDQ0VTU19TRU5EPTJdPVwiTE9HSU5fUkVTVUxUX1NVQ0NFU1NfU0VORFwiLGVbZS5MT0dJTl9SRVNVTFRfU1VDQ0VTU19SRUFDVElWQVRFPTNdPVwiTE9HSU5fUkVTVUxUX1NVQ0NFU1NfUkVBQ1RJVkFURVwiLGVbZS5MT0dJTl9SRVNVTFRfVU5FWFBFQ1RFRF9GQUlMVVJFPTRdPVwiTE9HSU5fUkVTVUxUX1VORVhQRUNURURfRkFJTFVSRVwiLGVbZS5MT0dJTl9SRVNVTFRfSU5WQUxJRF9BUkdVTUVOVD01XT1cIkxPR0lOX1JFU1VMVF9JTlZBTElEX0FSR1VNRU5UXCIsZVtlLkxPR0lOX1JFU1VMVF9BUFBfVkVSU0lPTl9VUEdSQURFPTZdPVwiTE9HSU5fUkVTVUxUX0FQUF9WRVJTSU9OX1VQR1JBREVcIixlW2UuTE9HSU5fUkVTVUxUX1VTRVJfTk9UX0ZPVU5EPTddPVwiTE9HSU5fUkVTVUxUX1VTRVJfTk9UX0ZPVU5EXCIsZVtlLkxPR0lOX1JFU1VMVF9VU0VSX0RFQUNUSVZBVEVEPThdPVwiTE9HSU5fUkVTVUxUX1VTRVJfREVBQ1RJVkFURURcIixlW2UuTE9HSU5fUkVTVUxUX1VTRVJfTE9DS0VEPTldPVwiTE9HSU5fUkVTVUxUX1VTRVJfTE9DS0VEXCIsZVtlLkxPR0lOX1JFU1VMVF9JTlZBTElEX1BBU1NXT1JEPTEwXT1cIkxPR0lOX1JFU1VMVF9JTlZBTElEX1BBU1NXT1JEXCIsZVtlLkxPR0lOX1JFU1VMVF9JTlZBTElEX1RPS0VOPTExXT1cIkxPR0lOX1JFU1VMVF9JTlZBTElEX1RPS0VOXCIsZVtlLkxPR0lOX1JFU1VMVF9JTlZBTElEX0NPREU9MTJdPVwiTE9HSU5fUkVTVUxUX0lOVkFMSURfQ09ERVwiLGVbZS5MT0dJTl9SRVNVTFRfTE9HSU5fQ09ERV9TRU5UX1ZJQV9FTUFJTD0xM109XCJMT0dJTl9SRVNVTFRfTE9HSU5fQ09ERV9TRU5UX1ZJQV9FTUFJTFwiLGVbZS5MT0dJTl9SRVNVTFRfTE9HSU5fQ09ERV9TRU5UX1ZJQV9QSE9ORV9TTVM9MTRdPVwiTE9HSU5fUkVTVUxUX0xPR0lOX0NPREVfU0VOVF9WSUFfUEhPTkVfU01TXCIsZVtlLkxPR0lOX1JFU1VMVF9CTE9DS0VEPTE1XT1cIkxPR0lOX1JFU1VMVF9CTE9DS0VEXCIsZVtlLkxPR0lOX1JFU1VMVF9DSEFMTEVOR0VfVFdPX0ZBPTE2XT1cIkxPR0lOX1JFU1VMVF9DSEFMTEVOR0VfVFdPX0ZBXCIsZVtlLkxPR0lOX1JFU1VMVF9DSEFMTEVOR0VfT0RMVj0xN109XCJMT0dJTl9SRVNVTFRfQ0hBTExFTkdFX09ETFZcIixlW2UuTE9HSU5fUkVTVUxUX0NIQUxMRU5HRV9TQUZFVFlORVQ9MThdPVwiTE9HSU5fUkVTVUxUX0NIQUxMRU5HRV9TQUZFVFlORVRcIixlW2UuTE9HSU5fUkVTVUxUX1JBVEVfTElNSVRFRF9JUD0xOV09XCJMT0dJTl9SRVNVTFRfUkFURV9MSU1JVEVEX0lQXCIsZVtlLkxPR0lOX1JFU1VMVF9SQVRFX0xJTUlURURfUEVSU0lTVEVOVF9ERVZJQ0VfSUQ9MjBdPVwiTE9HSU5fUkVTVUxUX1JBVEVfTElNSVRFRF9QRVJTSVNURU5UX0RFVklDRV9JRFwiLGVbZS5MT0dJTl9SRVNVTFRfUkFURV9MSU1JVEVEX0xPR0lOX0lERU5USUZJRVI9MjFdPVwiTE9HSU5fUkVTVUxUX1JBVEVfTElNSVRFRF9MT0dJTl9JREVOVElGSUVSXCIsZVtlLkxPR0lOX1JFU1VMVF9SQVRFX0xJTUlURURfVVNFUl9JRD0yMl09XCJMT0dJTl9SRVNVTFRfUkFURV9MSU1JVEVEX1VTRVJfSURcIixlW2UuTE9HSU5fUkVTVUxUX1JBVEVfTElNSVRFRF9VU0VSX0lEX0ZBSUw9MjNdPVwiTE9HSU5fUkVTVUxUX1JBVEVfTElNSVRFRF9VU0VSX0lEX0ZBSUxcIixlW2UuTE9HSU5fUkVTVUxUX1JBVEVfTElNSVRFRF9TTVNfU0VORD0yNF09XCJMT0dJTl9SRVNVTFRfUkFURV9MSU1JVEVEX1NNU19TRU5EXCIsZVtlLkxPR0lOX1JFU1VMVF9SQVRFX0xJTUlURURfRU1BSUxfU0VORD0yNV09XCJMT0dJTl9SRVNVTFRfUkFURV9MSU1JVEVEX0VNQUlMX1NFTkRcIixlW2UuTE9HSU5fUkVTVUxUX0NIQUxMRU5HRV9DSEFOTkVMX1ZFUklGSUNBVElPTj0yNl09XCJMT0dJTl9SRVNVTFRfQ0hBTExFTkdFX0NIQU5ORUxfVkVSSUZJQ0FUSU9OXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5Mb2dpblJlc3VsdHx8KHQuTG9naW5SZXN1bHQ9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9MT0dJTl9ST1VURT0wXT1cIlVOS05PV05fTE9HSU5fUk9VVEVcIixlW2UuTE9HSU5fUk9VVEU9MV09XCJMT0dJTl9ST1VURVwiLGVbZS5WRVJJRllfUk9VVEU9Ml09XCJWRVJJRllfUk9VVEVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LkxvZ2luUm91dGV8fCh0LkxvZ2luUm91dGU9e30pKSxmdW5jdGlvbihlKXtlW2UuTE9HSU5fU0VSVklDRV9VTktOT1dOPTBdPVwiTE9HSU5fU0VSVklDRV9VTktOT1dOXCIsZVtlLkFVVEhfU0VSVklDRT0xXT1cIkFVVEhfU0VSVklDRVwiLGVbZS5GU049Ml09XCJGU05cIixlW2UuSkFOVVM9M109XCJKQU5VU1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTG9naW5TZXJ2aWNlfHwodC5Mb2dpblNlcnZpY2U9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9PUkJJU19MT0NBVElPTl9UWVBFPTBdPVwiVU5LTk9XTl9PUkJJU19MT0NBVElPTl9UWVBFXCIsZVtlLk9SQklTX0xPQ0FMSVRZPTFdPVwiT1JCSVNfTE9DQUxJVFlcIixlW2UuT1JCSVNfVkVOVUU9Ml09XCJPUkJJU19WRU5VRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTWFwT3JiaXNMb2NhdGlvblR5cGV8fCh0Lk1hcE9yYmlzTG9jYXRpb25UeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fT1JCSVNfVVBEQVRFX1RZUEU9MF09XCJVTktOT1dOX09SQklTX1VQREFURV9UWVBFXCIsZVtlLk9SQklTX1NOQVBfSU5TRVJUPTFdPVwiT1JCSVNfU05BUF9JTlNFUlRcIixlW2UuT1JCSVNfU05BUF9ERUxFVEU9Ml09XCJPUkJJU19TTkFQX0RFTEVURVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTWFwT3JiaXNVcGRhdGVUeXBlfHwodC5NYXBPcmJpc1VwZGF0ZVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuTUVSTElOX0FVVEhfQUNDT1VOVF9UWVBFX1VOS05PV049MF09XCJNRVJMSU5fQVVUSF9BQ0NPVU5UX1RZUEVfVU5LTk9XTlwiLGVbZS5NRVJMSU5fQVVUSF9BQ0NPVU5UX1RZUEVfQlNBVVRIPTFdPVwiTUVSTElOX0FVVEhfQUNDT1VOVF9UWVBFX0JTQVVUSFwiLGVbZS5NRVJMSU5fQVVUSF9BQ0NPVU5UX1RZUEVfU05BUENIQVQ9Ml09XCJNRVJMSU5fQVVUSF9BQ0NPVU5UX1RZUEVfU05BUENIQVRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0Lk1lcmxpbkF1dGhBY2NvdW50VHlwZXx8KHQuTWVybGluQXV0aEFjY291bnRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk1FUkxJTl9BVVRIX1VOS05PV05fRVZFTlRfVFlQRT0wXT1cIk1FUkxJTl9BVVRIX1VOS05PV05fRVZFTlRfVFlQRVwiLGVbZS5NRVJMSU5fQVVUSF9BQ0NPVU5UX0ZPVU5EX1BBR0VfVklFVz0xXT1cIk1FUkxJTl9BVVRIX0FDQ09VTlRfRk9VTkRfUEFHRV9WSUVXXCIsZVtlLk1FUkxJTl9BVVRIX0NIRUNLX0VNQUlMX1BBR0VfVklFVz0yXT1cIk1FUkxJTl9BVVRIX0NIRUNLX0VNQUlMX1BBR0VfVklFV1wiLGVbZS5NRVJMSU5fQVVUSF9DT0RFX0VYUElSRURfUEFHRV9WSUVXPTNdPVwiTUVSTElOX0FVVEhfQ09ERV9FWFBJUkVEX1BBR0VfVklFV1wiLGVbZS5NRVJMSU5fQVVUSF9DT05USU5VRV9XSVRIX1NOQVBDSEFUPTVdPVwiTUVSTElOX0FVVEhfQ09OVElOVUVfV0lUSF9TTkFQQ0hBVFwiLGVbZS5NRVJMSU5fQVVUSF9FTUFJTF9DT0RFX1NVQk1JVD02XT1cIk1FUkxJTl9BVVRIX0VNQUlMX0NPREVfU1VCTUlUXCIsZVtlLk1FUkxJTl9BVVRIX0VNQUlMX0VOVFJZX1BBR0VfVklFVz03XT1cIk1FUkxJTl9BVVRIX0VNQUlMX0VOVFJZX1BBR0VfVklFV1wiLGVbZS5NRVJMSU5fQVVUSF9FTUFJTF9TVUJNSVQ9OF09XCJNRVJMSU5fQVVUSF9FTUFJTF9TVUJNSVRcIixlW2UuTUVSTElOX0FVVEhfRU5URVJfUEFTU1dPUkRfUEFHRV9WSUVXPTldPVwiTUVSTElOX0FVVEhfRU5URVJfUEFTU1dPUkRfUEFHRV9WSUVXXCIsZVtlLk1FUkxJTl9BVVRIX01BR0lDX0NPREVfUEFHRV9WSUVXPTExXT1cIk1FUkxJTl9BVVRIX01BR0lDX0NPREVfUEFHRV9WSUVXXCIsZVtlLk1FUkxJTl9BVVRIX01BR0lDX0NPREVfU1VCTUlUPTEyXT1cIk1FUkxJTl9BVVRIX01BR0lDX0NPREVfU1VCTUlUXCIsZVtlLk1FUkxJTl9BVVRIX05PX0FDQ09VTlRfUEFHRV9WSUVXPTEzXT1cIk1FUkxJTl9BVVRIX05PX0FDQ09VTlRfUEFHRV9WSUVXXCIsZVtlLk1FUkxJTl9BVVRIX0JTQVVUSF9QQVNTV09SRF9TVUJNSVQ9MTRdPVwiTUVSTElOX0FVVEhfQlNBVVRIX1BBU1NXT1JEX1NVQk1JVFwiLGVbZS5NRVJMSU5fQVVUSF9TRU5EX0VNQUlMX1NVQk1JVD0xNV09XCJNRVJMSU5fQVVUSF9TRU5EX0VNQUlMX1NVQk1JVFwiLGVbZS5NRVJMSU5fQVVUSF9DT05ORUNUSU9OX0VSUk9SX1BBR0VfVklFVz0xNl09XCJNRVJMSU5fQVVUSF9DT05ORUNUSU9OX0VSUk9SX1BBR0VfVklFV1wiLGVbZS5NRVJMSU5fQVVUSF9HRU5FUklDX0VSUk9SX1BBR0VfVklFVz0xN109XCJNRVJMSU5fQVVUSF9HRU5FUklDX0VSUk9SX1BBR0VfVklFV1wiLGVbZS5NRVJMSU5fQVVUSF9TRVNTSU9OX0VYUElSRURfUEFHRV9WSUVXPTE4XT1cIk1FUkxJTl9BVVRIX1NFU1NJT05fRVhQSVJFRF9QQUdFX1ZJRVdcIixlW2UuTUVSTElOX0FVVEhfVE9PX01BTllfQVRURU1QVFNfUEFHRV9WSUVXPTE5XT1cIk1FUkxJTl9BVVRIX1RPT19NQU5ZX0FUVEVNUFRTX1BBR0VfVklFV1wiLGVbZS5NRVJMSU5fQVVUSF9OT19BQ0NPVU5UX0ZPVU5EPTIwXT1cIk1FUkxJTl9BVVRIX05PX0FDQ09VTlRfRk9VTkRcIixlW2UuTUVSTElOX0FVVEhfTk9fQUNDT1VOVF9GT1VORF9TSUdOX1VQX1RBUD0yMV09XCJNRVJMSU5fQVVUSF9OT19BQ0NPVU5UX0ZPVU5EX1NJR05fVVBfVEFQXCIsZVtlLk1FUkxJTl9BVVRIX0xPR0lOX1dJVEhfU05BUENIQVRfUEFHRV9WSUVXPTIyXT1cIk1FUkxJTl9BVVRIX0xPR0lOX1dJVEhfU05BUENIQVRfUEFHRV9WSUVXXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5NZXJsaW5BdXRoRXZlbnRUeXBlfHwodC5NZXJsaW5BdXRoRXZlbnRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk1ZX0xFTlNFU19JTlNJR0hUU19BVURJRU5DRT0wXT1cIk1ZX0xFTlNFU19JTlNJR0hUU19BVURJRU5DRVwiLGVbZS5NWV9MRU5TRVNfSU5TSUdIVFNfRU5HQUdFTUVOVD0xXT1cIk1ZX0xFTlNFU19JTlNJR0hUU19FTkdBR0VNRU5UXCIsZVtlLk1ZX0xFTlNFU19JTlNJR0hUU19TTkFQQ0FNRVJBPTJdPVwiTVlfTEVOU0VTX0lOU0lHSFRTX1NOQVBDQU1FUkFcIixlW2UuTVlfTEVOU0VTX0lOU0lHSFRTX0NPTlZFUlNJT049M109XCJNWV9MRU5TRVNfSU5TSUdIVFNfQ09OVkVSU0lPTlwiLGVbZS5NWV9MRU5TRVNfSU5TSUdIVFNfRVZFTlRfSU5TSUdIVFM9NF09XCJNWV9MRU5TRVNfSU5TSUdIVFNfRVZFTlRfSU5TSUdIVFNcIixlW2UuTVlfTEVOU0VTX0lOU0lHSFRTX0ZVTk5FTF9BTkFMWVNJUz01XT1cIk1ZX0xFTlNFU19JTlNJR0hUU19GVU5ORUxfQU5BTFlTSVNcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0Lk15bGVuc2VzSW5zaWdodHNTZWN0aW9uc3x8KHQuTXlsZW5zZXNJbnNpZ2h0c1NlY3Rpb25zPXt9KSksZnVuY3Rpb24oZSl7ZVtlLldFQl9FTlRSWT0wXT1cIldFQl9FTlRSWVwiLGVbZS5MRU5TX1NUVURJT19ERVNLVE9QPTFdPVwiTEVOU19TVFVESU9fREVTS1RPUFwiLGVbZS5NWV9MRU5TRVNfU1VCTUlTU0lPTj0yXT1cIk1ZX0xFTlNFU19TVUJNSVNTSU9OXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5NeWxlbnNlc01hbmFnZW1lbnRFbnRyeVBvaW50VHlwZXN8fCh0Lk15bGVuc2VzTWFuYWdlbWVudEVudHJ5UG9pbnRUeXBlcz17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TRUFSQ0hfTEVOU0VTPTBdPVwiU0VBUkNIX0xFTlNFU1wiLGVbZS5GSUxURVJfTEVOU0VTPTFdPVwiRklMVEVSX0xFTlNFU1wiLGVbZS5ERUxFVEVfTEVOUz0yXT1cIkRFTEVURV9MRU5TXCIsZVtlLlNIQVJFX0xFTlM9M109XCJTSEFSRV9MRU5TXCIsZVtlLkNIQU5HRV9WSVNJQklMSVRZPTRdPVwiQ0hBTkdFX1ZJU0lCSUxJVFlcIixlW2UuRURJVF9UQUdTPTVdPVwiRURJVF9UQUdTXCIsZVtlLkVESVRfU0NBTl9UUklHR0VSUz02XT1cIkVESVRfU0NBTl9UUklHR0VSU1wiLGVbZS5DSEFOR0VfUFJFVklFVz03XT1cIkNIQU5HRV9QUkVWSUVXXCIsZVtlLkVESVRfQ1RBPThdPVwiRURJVF9DVEFcIixlW2UuUkVKRUNUSU9OX1JFQVNPTlNfT1BFTj05XT1cIlJFSkVDVElPTl9SRUFTT05TX09QRU5cIixlW2UuUkVKRUNUSU9OX1JFQVNPTlNfQ0xPU0U9MTBdPVwiUkVKRUNUSU9OX1JFQVNPTlNfQ0xPU0VcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0Lk15bGVuc2VzTWFuYWdlbWVudFBhZ2VBY3Rpb25UeXBlc3x8KHQuTXlsZW5zZXNNYW5hZ2VtZW50UGFnZUFjdGlvblR5cGVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkxFTlNfVEFCTEU9MF09XCJMRU5TX1RBQkxFXCIsZVtlLkxFTlNfREVUQUlMUz0xXT1cIkxFTlNfREVUQUlMU1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTXlsZW5zZXNNYW5hZ2VtZW50UGFnZVR5cGVzfHwodC5NeWxlbnNlc01hbmFnZW1lbnRQYWdlVHlwZXM9e30pKSxmdW5jdGlvbihlKXtlW2UuRElTTUlTU19GT1JNPTBdPVwiRElTTUlTU19GT1JNXCIsZVtlLlNFTEVDVF9SQVRJTkc9MV09XCJTRUxFQ1RfUkFUSU5HXCIsZVtlLkVOVEVSX0NPTU1FTlQ9Ml09XCJFTlRFUl9DT01NRU5UXCIsZVtlLlNVQk1JVD0zXT1cIlNVQk1JVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTXlsZW5zZXNSYXRpbmdGb3JtQWN0aW9uVHlwZXx8KHQuTXlsZW5zZXNSYXRpbmdGb3JtQWN0aW9uVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5NWV9MRU5TRVM9MF09XCJNWV9MRU5TRVNcIixlW2UuU05BUF9ET0NTPTFdPVwiU05BUF9ET0NTXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5NeWxlbnNlc1JhdGluZ0Zvcm1Tb3VyY2VUeXBlfHwodC5NeWxlbnNlc1JhdGluZ0Zvcm1Tb3VyY2VUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlRBR1M9MF09XCJUQUdTXCIsZVtlLlNDQU5fVFJJR0dFUlM9MV09XCJTQ0FOX1RSSUdHRVJTXCIsZVtlLlZJU0lCSUxJVFk9Ml09XCJWSVNJQklMSVRZXCIsZVtlLlBSRVZJRVc9M109XCJQUkVWSUVXXCIsZVtlLkNUQT00XT1cIkNUQVwiLGVbZS5QUklNQVJZX0NBVEVHT1JZX0lEPTVdPVwiUFJJTUFSWV9DQVRFR09SWV9JRFwiLGVbZS5TRUNPTkRBUllfQ0FURUdPUllfSUQ9Nl09XCJTRUNPTkRBUllfQ0FURUdPUllfSURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0Lk15bGVuc2VzU3VibWlzc2lvbkRldGFpbHNTb3VyY2V8fCh0Lk15bGVuc2VzU3VibWlzc2lvbkRldGFpbHNTb3VyY2U9e30pKSxmdW5jdGlvbihlKXtlW2UuUkVDRU5UTFlfSk9JTkVEX1NVR0dFU1RJT049MF09XCJSRUNFTlRMWV9KT0lORURfU1VHR0VTVElPTlwiLGVbZS5BVkFJTEFCTEVfRlJJRU5EX1NVR0dFU1RJT05TPTFdPVwiQVZBSUxBQkxFX0ZSSUVORF9TVUdHRVNUSU9OU1wiLGVbZS5BRERfRlJJRU5EPTJdPVwiQUREX0ZSSUVORFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuTm90aWZpY2F0aW9uVHlwZXx8KHQuTm90aWZpY2F0aW9uVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5PUFRJT05BTF9CT09MRUFOX1VOU0VUPTBdPVwiT1BUSU9OQUxfQk9PTEVBTl9VTlNFVFwiLGVbZS5UUlVFPTFdPVwiVFJVRVwiLGVbZS5GQUxTRT0yXT1cIkZBTFNFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5PcHRpb25hbEJvb2xlYW58fCh0Lk9wdGlvbmFsQm9vbGVhbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QQVlNRU5UU19LSVRfVU5BVVRIT1JJWkVEPTBdPVwiUEFZTUVOVFNfS0lUX1VOQVVUSE9SSVpFRFwiLGVbZS5QQVlNRU5UU19LSVRfTUlTU0lOR19EQVRBPTFdPVwiUEFZTUVOVFNfS0lUX01JU1NJTkdfREFUQVwiLGVbZS5QQVlNRU5UU19LSVRfSU5URVJOQUw9Ml09XCJQQVlNRU5UU19LSVRfSU5URVJOQUxcIixlW2UuUEFZTUVOVFNfS0lUX0RFRVBMSU5LX0ZBSUxVUkU9M109XCJQQVlNRU5UU19LSVRfREVFUExJTktfRkFJTFVSRVwiLGVbZS5QQVlNRU5UU19LSVRfT1JERVJfRkFJTFVSRT00XT1cIlBBWU1FTlRTX0tJVF9PUkRFUl9GQUlMVVJFXCIsZVtlLlBBWU1FTlRTX0tJVF9VTktOT1dOPTVdPVwiUEFZTUVOVFNfS0lUX1VOS05PV05cIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlBheW1lbnRzS2l0RXJyb3JUeXBlfHwodC5QYXltZW50c0tpdEVycm9yVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QSE9ORV9OVU1CRVJfUFJPQ0VTU19TVEFUVVNfVU5TRVQ9MF09XCJQSE9ORV9OVU1CRVJfUFJPQ0VTU19TVEFUVVNfVU5TRVRcIixlW2UuUEhPTkVfTlVNQkVSX1BST0NFU1NfU1RBVFVTX1VOTU9ESUZJRUQ9MV09XCJQSE9ORV9OVU1CRVJfUFJPQ0VTU19TVEFUVVNfVU5NT0RJRklFRFwiLGVbZS5QSE9ORV9OVU1CRVJfUFJPQ0VTU19TVEFUVVNfUFJFVFRJRklFRD0yXT1cIlBIT05FX05VTUJFUl9QUk9DRVNTX1NUQVRVU19QUkVUVElGSUVEXCIsZVtlLlBIT05FX05VTUJFUl9QUk9DRVNTX1NUQVRVU19BRERFRF9BUkVBX0NPREU9M109XCJQSE9ORV9OVU1CRVJfUFJPQ0VTU19TVEFUVVNfQURERURfQVJFQV9DT0RFXCIsZVtlLlBIT05FX05VTUJFUl9QUk9DRVNTX1NUQVRVU19BRERFRF9ESUdJVF9UT19TVUJTQ1JJQkVSX05VTUJFUj00XT1cIlBIT05FX05VTUJFUl9QUk9DRVNTX1NUQVRVU19BRERFRF9ESUdJVF9UT19TVUJTQ1JJQkVSX05VTUJFUlwiLGVbZS5QSE9ORV9OVU1CRVJfUFJPQ0VTU19TVEFUVVNfQURERURfQVJFQV9DT0RFX0FORF9ESUdJVF9UT19TVUJTQ1JJQkVSX05VTUJFUj01XT1cIlBIT05FX05VTUJFUl9QUk9DRVNTX1NUQVRVU19BRERFRF9BUkVBX0NPREVfQU5EX0RJR0lUX1RPX1NVQlNDUklCRVJfTlVNQkVSXCIsZVtlLlBIT05FX05VTUJFUl9QUk9DRVNTX1NUQVRVU19BRERFRF9NT0JJTEVfT1BFUkFUT1JfUFJFRklYPTZdPVwiUEhPTkVfTlVNQkVSX1BST0NFU1NfU1RBVFVTX0FEREVEX01PQklMRV9PUEVSQVRPUl9QUkVGSVhcIixlW2UuUEhPTkVfTlVNQkVSX1BST0NFU1NfU1RBVFVTX1JFTU9WRURfVFJVTktfQ09ERT03XT1cIlBIT05FX05VTUJFUl9QUk9DRVNTX1NUQVRVU19SRU1PVkVEX1RSVU5LX0NPREVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlBob25lTnVtYmVyUHJvY2Vzc1N0YXR1c3x8KHQuUGhvbmVOdW1iZXJQcm9jZXNzU3RhdHVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlBIT05FX05VTUJFUl9UWVBFX1BIT05FX1RZUEVfVU5TRVQ9MF09XCJQSE9ORV9OVU1CRVJfVFlQRV9QSE9ORV9UWVBFX1VOU0VUXCIsZVtlLlBIT05FX05VTUJFUl9UWVBFX0ZJWEVEX0xJTkU9MV09XCJQSE9ORV9OVU1CRVJfVFlQRV9GSVhFRF9MSU5FXCIsZVtlLlBIT05FX05VTUJFUl9UWVBFX01PQklMRT0yXT1cIlBIT05FX05VTUJFUl9UWVBFX01PQklMRVwiLGVbZS5QSE9ORV9OVU1CRVJfVFlQRV9QUkVQQUlEPTNdPVwiUEhPTkVfTlVNQkVSX1RZUEVfUFJFUEFJRFwiLGVbZS5QSE9ORV9OVU1CRVJfVFlQRV9UT0xMX0ZSRUU9NF09XCJQSE9ORV9OVU1CRVJfVFlQRV9UT0xMX0ZSRUVcIixlW2UuUEhPTkVfTlVNQkVSX1RZUEVfVk9JUD01XT1cIlBIT05FX05VTUJFUl9UWVBFX1ZPSVBcIixlW2UuUEhPTkVfTlVNQkVSX1RZUEVfUEFHRVI9Nl09XCJQSE9ORV9OVU1CRVJfVFlQRV9QQUdFUlwiLGVbZS5QSE9ORV9OVU1CRVJfVFlQRV9QQVlQSE9ORT03XT1cIlBIT05FX05VTUJFUl9UWVBFX1BBWVBIT05FXCIsZVtlLlBIT05FX05VTUJFUl9UWVBFX1JFU1RSSUNURURfUFJFTUlVTT04XT1cIlBIT05FX05VTUJFUl9UWVBFX1JFU1RSSUNURURfUFJFTUlVTVwiLGVbZS5QSE9ORV9OVU1CRVJfVFlQRV9QRVJTT05BTD05XT1cIlBIT05FX05VTUJFUl9UWVBFX1BFUlNPTkFMXCIsZVtlLlBIT05FX05VTUJFUl9UWVBFX1ZPSUNFTUFJTD0xMF09XCJQSE9ORV9OVU1CRVJfVFlQRV9WT0lDRU1BSUxcIixlW2UuUEhPTkVfTlVNQkVSX1RZUEVfT1RIRVI9MTFdPVwiUEhPTkVfTlVNQkVSX1RZUEVfT1RIRVJcIixlW2UuUEhPTkVfTlVNQkVSX1RZUEVfSU5WQUxJRD0xMl09XCJQSE9ORV9OVU1CRVJfVFlQRV9JTlZBTElEXCIsZVtlLlBIT05FX05VTUJFUl9UWVBFX0ZJWEVEX0xJTkVfT1JfTU9CSUxFPTEzXT1cIlBIT05FX05VTUJFUl9UWVBFX0ZJWEVEX0xJTkVfT1JfTU9CSUxFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5QaG9uZU51bWJlclR5cGV8fCh0LlBob25lTnVtYmVyVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QSE9ORV9QQVJTSU5HX1VOUkVTT0xWRURfRVJST1JfVU5TRVQ9MF09XCJQSE9ORV9QQVJTSU5HX1VOUkVTT0xWRURfRVJST1JfVU5TRVRcIixlW2UuUEhPTkVfUEFSU0lOR19VTlJFU09MVkVEX0VSUk9SX1RPT19TSE9SVD0xXT1cIlBIT05FX1BBUlNJTkdfVU5SRVNPTFZFRF9FUlJPUl9UT09fU0hPUlRcIixlW2UuUEhPTkVfUEFSU0lOR19VTlJFU09MVkVEX0VSUk9SX1RPT19MT05HPTJdPVwiUEhPTkVfUEFSU0lOR19VTlJFU09MVkVEX0VSUk9SX1RPT19MT05HXCIsZVtlLlBIT05FX1BBUlNJTkdfVU5SRVNPTFZFRF9FUlJPUl9OT05fTlVNRVJJQz0zXT1cIlBIT05FX1BBUlNJTkdfVU5SRVNPTFZFRF9FUlJPUl9OT05fTlVNRVJJQ1wiLGVbZS5QSE9ORV9QQVJTSU5HX1VOUkVTT0xWRURfRVJST1JfTUlTU0lOR19BUkVBX0NPREU9NF09XCJQSE9ORV9QQVJTSU5HX1VOUkVTT0xWRURfRVJST1JfTUlTU0lOR19BUkVBX0NPREVcIixlW2UuUEhPTkVfUEFSU0lOR19VTlJFU09MVkVEX0VSUk9SX1VOS05PV05fQ09VTlRSWT01XT1cIlBIT05FX1BBUlNJTkdfVU5SRVNPTFZFRF9FUlJPUl9VTktOT1dOX0NPVU5UUllcIixlW2UuUEhPTkVfUEFSU0lOR19VTlJFU09MVkVEX0VSUk9SX1VOS05PV05fRVJST1I9Nl09XCJQSE9ORV9QQVJTSU5HX1VOUkVTT0xWRURfRVJST1JfVU5LTk9XTl9FUlJPUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuUGhvbmVQYXJzaW5nVW5yZXNvbHZlZEVycm9yfHwodC5QaG9uZVBhcnNpbmdVbnJlc29sdmVkRXJyb3I9e30pKSxmdW5jdGlvbihlKXtlW2UuUEhPTkVfUEFSU0lOR19VU0VfQ0FTRV9VTlNFVD0wXT1cIlBIT05FX1BBUlNJTkdfVVNFX0NBU0VfVU5TRVRcIixlW2UuUEhPTkVfUEFSU0lOR19VU0VfQ0FTRV9QSE9ORV9WRVJJRklDQVRJT049MV09XCJQSE9ORV9QQVJTSU5HX1VTRV9DQVNFX1BIT05FX1ZFUklGSUNBVElPTlwiLGVbZS5QSE9ORV9QQVJTSU5HX1VTRV9DQVNFX0NPTlRBQ1RfQk9PS19VUExPQUQ9Ml09XCJQSE9ORV9QQVJTSU5HX1VTRV9DQVNFX0NPTlRBQ1RfQk9PS19VUExPQURcIixlW2UuUEhPTkVfUEFSU0lOR19VU0VfQ0FTRV9QQVNTV09SRF9SRVNFVD0zXT1cIlBIT05FX1BBUlNJTkdfVVNFX0NBU0VfUEFTU1dPUkRfUkVTRVRcIixlW2UuUEhPTkVfUEFSU0lOR19VU0VfQ0FTRV9MT0dJTj00XT1cIlBIT05FX1BBUlNJTkdfVVNFX0NBU0VfTE9HSU5cIixlW2UuUEhPTkVfUEFSU0lOR19VU0VfQ0FTRV9JTlZJVEU9NV09XCJQSE9ORV9QQVJTSU5HX1VTRV9DQVNFX0lOVklURVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuUGhvbmVQYXJzaW5nVXNlQ2FzZXx8KHQuUGhvbmVQYXJzaW5nVXNlQ2FzZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1BIT05FX1ZFUklGWV9BQ1RJT049MF09XCJVTktOT1dOX1BIT05FX1ZFUklGWV9BQ1RJT05cIixlW2UuU0VUX1BIT05FPTFdPVwiU0VUX1BIT05FXCIsZVtlLlZFUklGWV9QSE9ORT0yXT1cIlZFUklGWV9QSE9ORVwiLGVbZS5DSEVDS19ERUxJVkVSWV9TVEFUVVM9M109XCJDSEVDS19ERUxJVkVSWV9TVEFUVVNcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlBob25lVmVyaWZ5QWN0aW9ufHwodC5QaG9uZVZlcmlmeUFjdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1BIT05FX1ZFUklGWV9FUlJPUj0wXT1cIlVOS05PV05fUEhPTkVfVkVSSUZZX0VSUk9SXCIsZVtlLklOVkFMSURfUEhPTkVfTlVNQkVSPTFdPVwiSU5WQUxJRF9QSE9ORV9OVU1CRVJcIixlW2UuUEhPTkVfTlVNQkVSX0JMQUNLTElTVEVEPTJdPVwiUEhPTkVfTlVNQkVSX0JMQUNLTElTVEVEXCIsZVtlLlBIT05FX05VTUJFUl9JTlZBTElEX0ZPUl9SRUdJT049M109XCJQSE9ORV9OVU1CRVJfSU5WQUxJRF9GT1JfUkVHSU9OXCIsZVtlLlNNU19DT0RFX1NFTkRfRVJST1I9NF09XCJTTVNfQ09ERV9TRU5EX0VSUk9SXCIsZVtlLlZPSUNFX0FCVVNFX1JBVEVfTElNSVQ9NV09XCJWT0lDRV9BQlVTRV9SQVRFX0xJTUlUXCIsZVtlLkZMQVNIX0NBTExfU0VORF9FUlJPUj02XT1cIkZMQVNIX0NBTExfU0VORF9FUlJPUlwiLGVbZS5DT0RFX1ZFUklGSUNBVElPTl9FWFBJUkVEPTddPVwiQ09ERV9WRVJJRklDQVRJT05fRVhQSVJFRFwiLGVbZS5DT0RFX1ZFUklGSUNBVElPTl9HRU5FUklDX0VSUk9SPThdPVwiQ09ERV9WRVJJRklDQVRJT05fR0VORVJJQ19FUlJPUlwiLGVbZS5OT19DT0RFX1NBVkVEPTldPVwiTk9fQ09ERV9TQVZFRFwiLGVbZS5OT19QSE9ORV9TQVZFRD0xMF09XCJOT19QSE9ORV9TQVZFRFwiLGVbZS5XUk9OR19DT0RFPTExXT1cIldST05HX0NPREVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlBob25lVmVyaWZ5RXJyb3JUeXBlfHwodC5QaG9uZVZlcmlmeUVycm9yVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QSE9ORV9SRVNVTFRfVU5LTk9XTl9QSE9ORV9WRVJJRllfUkVTVUxUX1RZUEU9MF09XCJQSE9ORV9SRVNVTFRfVU5LTk9XTl9QSE9ORV9WRVJJRllfUkVTVUxUX1RZUEVcIixlW2UuUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSPTFdPVwiUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSXCIsZVtlLlBIT05FX1JFU1VMVF9QSE9ORV9OVU1CRVJfQkxPQ0tMSVNURUQ9Ml09XCJQSE9ORV9SRVNVTFRfUEhPTkVfTlVNQkVSX0JMT0NLTElTVEVEXCIsZVtlLlBIT05FX1JFU1VMVF9QSE9ORV9OVU1CRVJfSU5WQUxJRF9GT1JfUkVHSU9OPTNdPVwiUEhPTkVfUkVTVUxUX1BIT05FX05VTUJFUl9JTlZBTElEX0ZPUl9SRUdJT05cIixlW2UuUEhPTkVfUkVTVUxUX1NNU19DT0RFX1NFTkRfRVJST1I9NF09XCJQSE9ORV9SRVNVTFRfU01TX0NPREVfU0VORF9FUlJPUlwiLGVbZS5QSE9ORV9SRVNVTFRfVk9JQ0VfQUJVU0VfUkFURV9MSU1JVD01XT1cIlBIT05FX1JFU1VMVF9WT0lDRV9BQlVTRV9SQVRFX0xJTUlUXCIsZVtlLlBIT05FX1JFU1VMVF9GTEFTSF9DQUxMX1NFTkRfRVJST1I9Nl09XCJQSE9ORV9SRVNVTFRfRkxBU0hfQ0FMTF9TRU5EX0VSUk9SXCIsZVtlLlBIT05FX1JFU1VMVF9DT0RFX1ZFUklGSUNBVElPTl9FWFBJUkVEPTddPVwiUEhPTkVfUkVTVUxUX0NPREVfVkVSSUZJQ0FUSU9OX0VYUElSRURcIixlW2UuUEhPTkVfUkVTVUxUX0NPREVfVkVSSUZJQ0FUSU9OX0dFTkVSSUNfRVJST1I9OF09XCJQSE9ORV9SRVNVTFRfQ09ERV9WRVJJRklDQVRJT05fR0VORVJJQ19FUlJPUlwiLGVbZS5QSE9ORV9SRVNVTFRfTk9fQ09ERV9TQVZFRD05XT1cIlBIT05FX1JFU1VMVF9OT19DT0RFX1NBVkVEXCIsZVtlLlBIT05FX1JFU1VMVF9OT19QSE9ORV9TQVZFRD0xMF09XCJQSE9ORV9SRVNVTFRfTk9fUEhPTkVfU0FWRURcIixlW2UuUEhPTkVfUkVTVUxUX1dST05HX0NPREU9MTFdPVwiUEhPTkVfUkVTVUxUX1dST05HX0NPREVcIixlW2UuUEhPTkVfUkVTVUxUX0FWQUlMQUJJTElUWV9FUlJPUj0xMl09XCJQSE9ORV9SRVNVTFRfQVZBSUxBQklMSVRZX0VSUk9SXCIsZVtlLlBIT05FX1JFU1VMVF9TSElFTERfUEhPTkVfTlVNQkVSX1JBVEVfTElNSVQ9MTNdPVwiUEhPTkVfUkVTVUxUX1NISUVMRF9QSE9ORV9OVU1CRVJfUkFURV9MSU1JVFwiLGVbZS5QSE9ORV9SRVNVTFRfU0VORF9TTVM9MTRdPVwiUEhPTkVfUkVTVUxUX1NFTkRfU01TXCIsZVtlLlBIT05FX1JFU1VMVF9TRU5EX1ZPSUNFX0NBTEw9MTVdPVwiUEhPTkVfUkVTVUxUX1NFTkRfVk9JQ0VfQ0FMTFwiLGVbZS5QSE9ORV9SRVNVTFRfU0VORF9GTEFTSD0xNl09XCJQSE9ORV9SRVNVTFRfU0VORF9GTEFTSFwiLGVbZS5QSE9ORV9SRVNVTFRfUEhPTkVfVkVSSUZJRUQ9MTddPVwiUEhPTkVfUkVTVUxUX1BIT05FX1ZFUklGSUVEXCIsZVtlLlBIT05FX1JFU1VMVF9DSEVDS19ERUxJVkVSWV9TVEFUVVNfQUdBSU49MThdPVwiUEhPTkVfUkVTVUxUX0NIRUNLX0RFTElWRVJZX1NUQVRVU19BR0FJTlwiLGVbZS5QSE9ORV9SRVNVTFRfU1RPUF9ERUxJVkVSWV9TVEFUVVNfQ0hFQ0s9MTldPVwiUEhPTkVfUkVTVUxUX1NUT1BfREVMSVZFUllfU1RBVFVTX0NIRUNLXCIsZVtlLlBIT05FX1JFU1VMVF9SRVZFUklGWV9QSE9ORV9BTFJFQURZX0NMQUlNRUQ9MjBdPVwiUEhPTkVfUkVTVUxUX1JFVkVSSUZZX1BIT05FX0FMUkVBRFlfQ0xBSU1FRFwiLGVbZS5QSE9ORV9SRVNVTFRfVEZBX1BIT05FX0FMUkVBRFlfQ0xBSU1FRD0yMV09XCJQSE9ORV9SRVNVTFRfVEZBX1BIT05FX0FMUkVBRFlfQ0xBSU1FRFwiLGVbZS5QSE9ORV9SRVNVTFRfUkVBVVRIX1JFUVVJUkVEPTIyXT1cIlBIT05FX1JFU1VMVF9SRUFVVEhfUkVRVUlSRURcIixlW2UuUEhPTkVfUkVTVUxUX1RGQV9FTkFCTEVfRkFJTD0yM109XCJQSE9ORV9SRVNVTFRfVEZBX0VOQUJMRV9GQUlMXCIsZVtlLlBIT05FX1JFU1VMVF9URkFfRElTQUJMRV9GQUlMPTI0XT1cIlBIT05FX1JFU1VMVF9URkFfRElTQUJMRV9GQUlMXCIsZVtlLlBIT05FX1JFU1VMVF9DQVJSSUVSX05BTUVfQkxPQ0tMSVNURUQ9MjVdPVwiUEhPTkVfUkVTVUxUX0NBUlJJRVJfTkFNRV9CTE9DS0xJU1RFRFwiLGVbZS5QSE9ORV9SRVNVTFRfQ0FSUklFUl9UWVBFX0JMT0NLTElTVEVEPTI2XT1cIlBIT05FX1JFU1VMVF9DQVJSSUVSX1RZUEVfQkxPQ0tMSVNURURcIixlW2UuUEhPTkVfUkVTVUxUX1BIT05FX05VTUJFUl9DSEFOR0VfUkFURV9MSU1JVD0yN109XCJQSE9ORV9SRVNVTFRfUEhPTkVfTlVNQkVSX0NIQU5HRV9SQVRFX0xJTUlUXCIsZVtlLlBIT05FX1JFU1VMVF9BTFJFQURZX1ZFUklGSUVEPTI4XT1cIlBIT05FX1JFU1VMVF9BTFJFQURZX1ZFUklGSUVEXCIsZVtlLlBIT05FX1JFU1VMVF9MT09LVVBfRkFJTFVSRT0yOV09XCJQSE9ORV9SRVNVTFRfTE9PS1VQX0ZBSUxVUkVcIixlW2UuUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSX1RZUEU9MzBdPVwiUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSX1RZUEVcIixlW2UuUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSX1VOS05PV05fVkFMSURJVFk9MzFdPVwiUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSX1VOS05PV05fVkFMSURJVFlcIixlW2UuUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSX05VTEw9MzJdPVwiUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSX05VTExcIixlW2UuUEhPTkVfUkVTVUxUX0lOVkFMSURfUEhPTkVfTlVNQkVSX05PX1JFR0lPTl9NQVRDSD0zM109XCJQSE9ORV9SRVNVTFRfSU5WQUxJRF9QSE9ORV9OVU1CRVJfTk9fUkVHSU9OX01BVENIXCIsZVtlLlBIT05FX1JFU1VMVF9JTlZBTElEX1BIT05FX05VTUJFUl9VTkFDQ0VQVEFCTEVfVFlQRT0zNF09XCJQSE9ORV9SRVNVTFRfSU5WQUxJRF9QSE9ORV9OVU1CRVJfVU5BQ0NFUFRBQkxFX1RZUEVcIixlW2UuUEhPTkVfUkVTVUxUX1NFQU1MRVNTX1VSTF9SRVRSSUVWRUQ9MzVdPVwiUEhPTkVfUkVTVUxUX1NFQU1MRVNTX1VSTF9SRVRSSUVWRURcIixlW2UuUEhPTkVfUkVTVUxUX1NFQU1MRVNTX1BIT05FX05PVF9FTElHSUJMRT0zNl09XCJQSE9ORV9SRVNVTFRfU0VBTUxFU1NfUEhPTkVfTk9UX0VMSUdJQkxFXCIsZVtlLlBIT05FX1JFU1VMVF9SRVFVRVNUX1NFQU1MRVNTX0ZBSUxVUkU9MzddPVwiUEhPTkVfUkVTVUxUX1JFUVVFU1RfU0VBTUxFU1NfRkFJTFVSRVwiLGVbZS5QSE9ORV9SRVNVTFRfVkVSSUZZX1NFQU1MRVNTX0ZBSUxVUkU9MzhdPVwiUEhPTkVfUkVTVUxUX1ZFUklGWV9TRUFNTEVTU19GQUlMVVJFXCIsZVtlLlBIT05FX1JFU1VMVF9TRVNTSU9OX1NNU19DQVBfRVhDRUVERUQ9MzldPVwiUEhPTkVfUkVTVUxUX1NFU1NJT05fU01TX0NBUF9FWENFRURFRFwiLGVbZS5QSE9ORV9SRVNVTFRfVk9JQ0VfQ09ERV9TRU5EX0VSUk9SPTQwXT1cIlBIT05FX1JFU1VMVF9WT0lDRV9DT0RFX1NFTkRfRVJST1JcIixlW2UuUEhPTkVfUkVTVUxUX1BMQVRGT1JNX0NPVU5UUllfQ09ORklHX0JMT0NLTElTVD00MV09XCJQSE9ORV9SRVNVTFRfUExBVEZPUk1fQ09VTlRSWV9DT05GSUdfQkxPQ0tMSVNUXCIsZVtlLlBIT05FX1JFU1VMVF9QSE9ORV9BTFJFQURZX0VYSVNUU19QUk9NUFRfVE9fTE9HSU49NDJdPVwiUEhPTkVfUkVTVUxUX1BIT05FX0FMUkVBRFlfRVhJU1RTX1BST01QVF9UT19MT0dJTlwiLGVbZS5QSE9ORV9SRVNVTFRfUEhPTkVfQUxSRUFEWV9DTEFJTUVEPTQzXT1cIlBIT05FX1JFU1VMVF9QSE9ORV9BTFJFQURZX0NMQUlNRURcIixlW2UuUEhPTkVfUkVTVUxUX1BIT05FX05VTUJFUl9DSEFOR0VfREVOWT00NF09XCJQSE9ORV9SRVNVTFRfUEhPTkVfTlVNQkVSX0NIQU5HRV9ERU5ZXCIsZVtlLlBIT05FX1JFU1VMVF9QSE9ORV9GRUFUVVJFX01JU01BVENIX0RFTlk9NDVdPVwiUEhPTkVfUkVTVUxUX1BIT05FX0ZFQVRVUkVfTUlTTUFUQ0hfREVOWVwiLGVbZS5QSE9ORV9SRVNVTFRfUFJPTVBUX1RPX0xPR0lOX0lQX1JBVEVfTElNSVRFRD00Nl09XCJQSE9ORV9SRVNVTFRfUFJPTVBUX1RPX0xPR0lOX0lQX1JBVEVfTElNSVRFRFwiLGVbZS5QSE9ORV9WRVJJRllfU0VTU0lPTl9VTkFWQUlMQUJMRT00N109XCJQSE9ORV9WRVJJRllfU0VTU0lPTl9VTkFWQUlMQUJMRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuUGhvbmVWZXJpZnlSZXN1bHRUeXBlfHwodC5QaG9uZVZlcmlmeVJlc3VsdFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuUFJFRkVSUkVEX1ZFUklGSUNBVElPTl9NRVRIT0RfVU5TRVQ9MF09XCJQUkVGRVJSRURfVkVSSUZJQ0FUSU9OX01FVEhPRF9VTlNFVFwiLGVbZS5QUkVGRVJSRURfVkVSSUZJQ0FUSU9OX01FVEhPRF9FTUFJTF9GSVJTVF9QSE9ORV9TS0lQUEFCTEU9MV09XCJQUkVGRVJSRURfVkVSSUZJQ0FUSU9OX01FVEhPRF9FTUFJTF9GSVJTVF9QSE9ORV9TS0lQUEFCTEVcIixlW2UuUFJFRkVSUkVEX1ZFUklGSUNBVElPTl9NRVRIT0RfUEhPTkVfRklSU1RfRU1BSUxfQllQQVNTRUQ9Ml09XCJQUkVGRVJSRURfVkVSSUZJQ0FUSU9OX01FVEhPRF9QSE9ORV9GSVJTVF9FTUFJTF9CWVBBU1NFRFwiLGVbZS5QUkVGRVJSRURfVkVSSUZJQ0FUSU9OX01FVEhPRF9FTUFJTF9GSVJTVF9QSE9ORV9CWVBBU1NFRD0zXT1cIlBSRUZFUlJFRF9WRVJJRklDQVRJT05fTUVUSE9EX0VNQUlMX0ZJUlNUX1BIT05FX0JZUEFTU0VEXCIsZVtlLlBSRUZFUlJFRF9WRVJJRklDQVRJT05fTUVUSE9EX0VNQUlMX09OTFk9NF09XCJQUkVGRVJSRURfVkVSSUZJQ0FUSU9OX01FVEhPRF9FTUFJTF9PTkxZXCIsZVtlLlBSRUZFUlJFRF9WRVJJRklDQVRJT05fTUVUSE9EX1BIT05FX09OTFk9NV09XCJQUkVGRVJSRURfVkVSSUZJQ0FUSU9OX01FVEhPRF9QSE9ORV9PTkxZXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5QcmVmZXJyZWRWZXJpZmljYXRpb25NZXRob2R8fCh0LlByZWZlcnJlZFZlcmlmaWNhdGlvbk1ldGhvZD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1BVU0hfTk9USUZJQ0FUSU9OX1JFU1VMVF9UWVBFPTBdPVwiVU5LTk9XTl9QVVNIX05PVElGSUNBVElPTl9SRVNVTFRfVFlQRVwiLGVbZS5TVUNDRVNTPTFdPVwiU1VDQ0VTU1wiLGVbZS5VTlNVUFBPUlRFRD0yXT1cIlVOU1VQUE9SVEVEXCIsZVtlLlNPRlRfTElNSVQ9M109XCJTT0ZUX0xJTUlUXCIsZVtlLkhBUkRfTElNSVQ9NF09XCJIQVJEX0xJTUlUXCIsZVtlLkZBSUxVUkU9NV09XCJGQUlMVVJFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5QdXNoTm90aWZpY2F0aW9uUmVzdWx0VHlwZXx8KHQuUHVzaE5vdGlmaWNhdGlvblJlc3VsdFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9SQU5LSU5HX01PREU9MF09XCJVTktOT1dOX1JBTktJTkdfTU9ERVwiLGVbZS5OT1RfTkVFREVEPTFdPVwiTk9UX05FRURFRFwiLGVbZS5PTERfUkFOS0lORz0yXT1cIk9MRF9SQU5LSU5HXCIsZVtlLkNIRUVUQUhfUkFOS0lORz0zXT1cIkNIRUVUQUhfUkFOS0lOR1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuUmFua2luZ01vZGV8fCh0LlJhbmtpbmdNb2RlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlJFQ09NTUVOREVEX0FDVElPTl9VTlNFVD0wXT1cIlJFQ09NTUVOREVEX0FDVElPTl9VTlNFVFwiLGVbZS5SRUNPTU1FTkRFRF9BQ1RJT05fUkVKRUNUX0FUVEVNUFQ9MV09XCJSRUNPTU1FTkRFRF9BQ1RJT05fUkVKRUNUX0FUVEVNUFRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlJlY29tbWVuZGVkQWN0aW9ufHwodC5SZWNvbW1lbmRlZEFjdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5SRUdJU1RSQVRJT05fUkVTVUxUX1VOU0VUPTBdPVwiUkVHSVNUUkFUSU9OX1JFU1VMVF9VTlNFVFwiLGVbZS5SRUdJU1RSQVRJT05fUkVTVUxUX1NVQ0NFU1M9MV09XCJSRUdJU1RSQVRJT05fUkVTVUxUX1NVQ0NFU1NcIixlW2UuUkVHSVNUUkFUSU9OX1JFU1VMVF9VTkVYUEVDVEVEX0ZBSUxVUkU9Ml09XCJSRUdJU1RSQVRJT05fUkVTVUxUX1VORVhQRUNURURfRkFJTFVSRVwiLGVbZS5SRUdJU1RSQVRJT05fUkVTVUxUX0lOVkFMSURfQVJHVU1FTlQ9M109XCJSRUdJU1RSQVRJT05fUkVTVUxUX0lOVkFMSURfQVJHVU1FTlRcIixlW2UuUkVHSVNUUkFUSU9OX1JFU1VMVF9BUFBfVkVSU0lPTl9VUEdSQURFPTRdPVwiUkVHSVNUUkFUSU9OX1JFU1VMVF9BUFBfVkVSU0lPTl9VUEdSQURFXCIsZVtlLlJFR0lTVFJBVElPTl9SRVNVTFRfQkxPQ0tFRD01XT1cIlJFR0lTVFJBVElPTl9SRVNVTFRfQkxPQ0tFRFwiLGVbZS5SRUdJU1RSQVRJT05fUkVTVUxUX1dFQUtfUEFTU1dPUkQ9Nl09XCJSRUdJU1RSQVRJT05fUkVTVUxUX1dFQUtfUEFTU1dPUkRcIixlW2UuUkVHSVNUUkFUSU9OX1JFU1VMVF9VU0VSTkFNRV9UQUtFTj03XT1cIlJFR0lTVFJBVElPTl9SRVNVTFRfVVNFUk5BTUVfVEFLRU5cIixlW2UuUkVHSVNUUkFUSU9OX1JFU1VMVF9DSEFMTEVOR0VfU0FGRVRZTkVUPThdPVwiUkVHSVNUUkFUSU9OX1JFU1VMVF9DSEFMTEVOR0VfU0FGRVRZTkVUXCIsZVtlLlJFR0lTVFJBVElPTl9SRVNVTFRfQ0hBTExFTkdFX0NBUFRDSEE9OV09XCJSRUdJU1RSQVRJT05fUkVTVUxUX0NIQUxMRU5HRV9DQVBUQ0hBXCIsZVtlLlJFR0lTVFJBVElPTl9SRVNVTFRfUkFURV9MSU1JVEVEX0lQPTEwXT1cIlJFR0lTVFJBVElPTl9SRVNVTFRfUkFURV9MSU1JVEVEX0lQXCIsZVtlLlJFR0lTVFJBVElPTl9SRVNVTFRfQ0hBTExFTkdFX1BMQVlfSU5URUdSSVRZPTExXT1cIlJFR0lTVFJBVElPTl9SRVNVTFRfQ0hBTExFTkdFX1BMQVlfSU5URUdSSVRZXCIsZVtlLlJFR0lTVFJBVElPTl9SRVNVTFRfQ0hBTExFTkdFX0tFWV9BVFRFU1RBVElPTj0xMl09XCJSRUdJU1RSQVRJT05fUkVTVUxUX0NIQUxMRU5HRV9LRVlfQVRURVNUQVRJT05cIixlW2UuUkVHSVNUUkFUSU9OX1JFU1VMVF9DSEFMTEVOR0VfQVBQX0FUVEVTVD0xM109XCJSRUdJU1RSQVRJT05fUkVTVUxUX0NIQUxMRU5HRV9BUFBfQVRURVNUXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5SZWdpc3RyYXRpb25SZXN1bHR8fCh0LlJlZ2lzdHJhdGlvblJlc3VsdD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5SRUpFQ1RfUkVBU09OX1VOU0VUPTBdPVwiUkVKRUNUX1JFQVNPTl9VTlNFVFwiLGVbZS5SRUpFQ1RfUkVBU09OX1NQQU1fQU5EX0FCVVNFX1JJU0s9MV09XCJSRUpFQ1RfUkVBU09OX1NQQU1fQU5EX0FCVVNFX1JJU0tcIixlW2UuUkVKRUNUX1JFQVNPTl9TUEFNX0FORF9BQlVTRV9SSVNLX1JBVEVfTElNSVQ9Ml09XCJSRUpFQ1RfUkVBU09OX1NQQU1fQU5EX0FCVVNFX1JJU0tfUkFURV9MSU1JVFwiLGVbZS5SRUpFQ1RfUkVBU09OX1ZPTFVNRV9GUkFVRF9SSVNLPTNdPVwiUkVKRUNUX1JFQVNPTl9WT0xVTUVfRlJBVURfUklTS1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuUmVqZWN0UmVhc29ufHwodC5SZWplY3RSZWFzb249e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9SRVdBUkRfU1RBVFVTX1RZUEU9MF09XCJVTktOT1dOX1JFV0FSRF9TVEFUVVNfVFlQRVwiLGVbZS5FTElHSUJMRT0xXT1cIkVMSUdJQkxFXCIsZVtlLkVOR0FHRU1FTlRfVEhSRVNIT0xEX01FVD0yXT1cIkVOR0FHRU1FTlRfVEhSRVNIT0xEX01FVFwiLGVbZS5SRVdBUkRfUEVORElORz0zXT1cIlJFV0FSRF9QRU5ESU5HXCIsZVtlLlJFV0FSRF9HUkFOVEVEPTRdPVwiUkVXQVJEX0dSQU5URURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlJld2FyZFN0YXR1c1R5cGV8fCh0LlJld2FyZFN0YXR1c1R5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9TRVJWRVJfTUVTU0FHRV9UWVBFPTBdPVwiVU5LTk9XTl9TRVJWRVJfTUVTU0FHRV9UWVBFXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfU05BUD0xXT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfU05BUFwiLGVbZS5TRVJWRVJfTUVTU0FHRV9UWVBFX0NIQVQ9Ml09XCJTRVJWRVJfTUVTU0FHRV9UWVBFX0NIQVRcIixlW2UuU0VSVkVSX01FU1NBR0VfVFlQRV9FWFRFUk5BTF9NRURJQT0zXT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfRVhURVJOQUxfTUVESUFcIixlW2UuU0VSVkVSX01FU1NBR0VfVFlQRV9TSEFSRT00XT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfU0hBUkVcIixlW2UuU0VSVkVSX01FU1NBR0VfVFlQRV9OT1RFPTVdPVwiU0VSVkVSX01FU1NBR0VfVFlQRV9OT1RFXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RJQ0tFUj02XT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RJQ0tFUlwiLGVbZS5TRVJWRVJfTUVTU0FHRV9UWVBFX1NUQVRVUz03XT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfTE9DQVRJT049OF09XCJTRVJWRVJfTUVTU0FHRV9UWVBFX0xPQ0FUSU9OXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTX1NBVkVfVE9fQ0FNRVJBX1JPTEw9OV09XCJTRVJWRVJfTUVTU0FHRV9UWVBFX1NUQVRVU19TQVZFX1RPX0NBTUVSQV9ST0xMXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTX0NPTlZFUlNBVElPTl9DQVBUVVJFX1NDUkVFTlNIT1Q9MTBdPVwiU0VSVkVSX01FU1NBR0VfVFlQRV9TVEFUVVNfQ09OVkVSU0FUSU9OX0NBUFRVUkVfU0NSRUVOU0hPVFwiLGVbZS5TRVJWRVJfTUVTU0FHRV9UWVBFX1NUQVRVU19DT05WRVJTQVRJT05fQ0FQVFVSRV9SRUNPUkQ9MTFdPVwiU0VSVkVSX01FU1NBR0VfVFlQRV9TVEFUVVNfQ09OVkVSU0FUSU9OX0NBUFRVUkVfUkVDT1JEXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTX0NBTExfTUlTU0VEX1ZJREVPPTEyXT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTX0NBTExfTUlTU0VEX1ZJREVPXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTX0NBTExfTUlTU0VEX0FVRElPPTEzXT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTX0NBTExfTUlTU0VEX0FVRElPXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfU1RBVFVTX0lOVklURV9MSU5LX0NIQU5HRT0xNF09XCJTRVJWRVJfTUVTU0FHRV9UWVBFX1NUQVRVU19JTlZJVEVfTElOS19DSEFOR0VcIixlW2UuU0VSVkVSX01FU1NBR0VfVFlQRV9DQU5WQVNfQVBQPTE1XT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfQ0FOVkFTX0FQUFwiLGVbZS5TRVJWRVJfTUVTU0FHRV9UWVBFX0xJVkVfTE9DQVRJT05fU0hBUkU9MTZdPVwiU0VSVkVSX01FU1NBR0VfVFlQRV9MSVZFX0xPQ0FUSU9OX1NIQVJFXCIsZVtlLlNFUlZFUl9NRVNTQUdFX1RZUEVfRkFNSUxZX0NFTlRFUj0xN109XCJTRVJWRVJfTUVTU0FHRV9UWVBFX0ZBTUlMWV9DRU5URVJcIixlW2UuU0VSVkVSX01FU1NBR0VfVFlQRV9DUkVBVElWRV9UT09MU19JVEVNPTE4XT1cIlNFUlZFUl9NRVNTQUdFX1RZUEVfQ1JFQVRJVkVfVE9PTFNfSVRFTVwiLGVbZS5TRVJWRVJfTUVTU0FHRV9UWVBFX05PTl9QQVJUSUNJUEFOVF9CT1RfUkVTUE9OU0U9MTldPVwiU0VSVkVSX01FU1NBR0VfVFlQRV9OT05fUEFSVElDSVBBTlRfQk9UX1JFU1BPTlNFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TZXJ2ZXJNZXNzYWdlVHlwZXx8KHQuU2VydmVyTWVzc2FnZVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuT1BTX1RJRVI9MF09XCJPUFNfVElFUlwiLGVbZS5DUklUSUNBTF9USUVSPTFdPVwiQ1JJVElDQUxfVElFUlwiLGVbZS5CVVNJTkVTU19USUVSPTJdPVwiQlVTSU5FU1NfVElFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU2VydmVyVGllcnx8KHQuU2VydmVyVGllcj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5GT1JfVVNfV0FMTFBBUEVSPTBdPVwiRk9SX1VTX1dBTExQQVBFUlwiLGVbZS5DQU1FUkFfUk9MTF9XQUxMUEFQRVI9MV09XCJDQU1FUkFfUk9MTF9XQUxMUEFQRVJcIixlW2UuR0VORVJBVElWRT0yXT1cIkdFTkVSQVRJVkVcIixlW2UuU0FWRURfSU5fQ0hBVD0zXT1cIlNBVkVEX0lOX0NIQVRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNlcnZlcldhbGxwYXBlclVwZGF0ZVdhbGxwYXBlclNvdXJjZXx8KHQuU2VydmVyV2FsbHBhcGVyVXBkYXRlV2FsbHBhcGVyU291cmNlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOU0VUX1NFU1NJT05fRU5EPTBdPVwiVU5TRVRfU0VTU0lPTl9FTkRcIixlW2UuVVNFUl9JTklUSUFURUQ9MV09XCJVU0VSX0lOSVRJQVRFRFwiLGVbZS5FWFBJUkVEPTJdPVwiRVhQSVJFRFwiLGVbZS5ORVdfU0VTU0lPTl9JTklUSUFURUQ9M109XCJORVdfU0VTU0lPTl9JTklUSUFURURcIixlW2UuRk9SQ0VEX0JZX1NFUlZFUj00XT1cIkZPUkNFRF9CWV9TRVJWRVJcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNlc3Npb25FbmR8fCh0LlNlc3Npb25FbmQ9e30pKSxmdW5jdGlvbihlKXtlW2UuU0hPUF9LSVRfQ0FNRVJBX0VYSVRfUkVBU09OX1VOS05PV049MF09XCJTSE9QX0tJVF9DQU1FUkFfRVhJVF9SRUFTT05fVU5LTk9XTlwiLGVbZS5TSE9QX0tJVF9DQU1FUkFfRVhJVF9SRUFTT05fVEFQX1BST0RVQ1RfQ0FSRD0xXT1cIlNIT1BfS0lUX0NBTUVSQV9FWElUX1JFQVNPTl9UQVBfUFJPRFVDVF9DQVJEXCIsZVtlLlNIT1BfS0lUX0NBTUVSQV9FWElUX1JFQVNPTl9DTE9TRV9DQU1FUkFfVklFVz0yXT1cIlNIT1BfS0lUX0NBTUVSQV9FWElUX1JFQVNPTl9DTE9TRV9DQU1FUkFfVklFV1wiLGVbZS5TSE9QX0tJVF9DQU1FUkFfRVhJVF9SRUFTT05fQVBQX0JBQ0tHUk9VTkQ9M109XCJTSE9QX0tJVF9DQU1FUkFfRVhJVF9SRUFTT05fQVBQX0JBQ0tHUk9VTkRcIixlW2UuU0hPUF9LSVRfQ0FNRVJBX0VYSVRfUkVBU09OX0FQUF9DUkFTSD00XT1cIlNIT1BfS0lUX0NBTUVSQV9FWElUX1JFQVNPTl9BUFBfQ1JBU0hcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNob3BLaXRDYW1lcmFFeGl0UmVhc29ufHwodC5TaG9wS2l0Q2FtZXJhRXhpdFJlYXNvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TSE9SVExJTktfQ0xJQ0tfU1RBVEVfVU5TUEVDSUZJRUQ9MF09XCJTSE9SVExJTktfQ0xJQ0tfU1RBVEVfVU5TUEVDSUZJRURcIixlW2UuU0hPUlRMSU5LX0NMSUNLX1NUQVRFX0FQUF9JTlNUQUxMRUQ9MV09XCJTSE9SVExJTktfQ0xJQ0tfU1RBVEVfQVBQX0lOU1RBTExFRFwiLGVbZS5TSE9SVExJTktfQ0xJQ0tfU1RBVEVfQVBQX05PVF9JTlNUQUxMRUQ9Ml09XCJTSE9SVExJTktfQ0xJQ0tfU1RBVEVfQVBQX05PVF9JTlNUQUxMRURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNob3J0bGlua0NsaWNrU3RhdGV8fCh0LlNob3J0bGlua0NsaWNrU3RhdGU9e30pKSxmdW5jdGlvbihlKXtlW2UuU0hPUlRMSU5LX1RZUEVfVU5TUEVDSUZJRUQ9MF09XCJTSE9SVExJTktfVFlQRV9VTlNQRUNJRklFRFwiLGVbZS5TSE9SVExJTktfVFlQRV9ESVJFQ1RfTElOSz0xXT1cIlNIT1JUTElOS19UWVBFX0RJUkVDVF9MSU5LXCIsZVtlLlNIT1JUTElOS19UWVBFX1dFQl9PTkxZPTJdPVwiU0hPUlRMSU5LX1RZUEVfV0VCX09OTFlcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNob3J0bGlua1R5cGV8fCh0LlNob3J0bGlua1R5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9TTVNfU1VCU0NSSVBUSU9OX0NIQU5HRV9FVkVOVF9UWVBFPTBdPVwiVU5LTk9XTl9TTVNfU1VCU0NSSVBUSU9OX0NIQU5HRV9FVkVOVF9UWVBFXCIsZVtlLlVOU1VCU0NSSUJFPTFdPVwiVU5TVUJTQ1JJQkVcIixlW2UuU1VCU0NSSUJFPTJdPVwiU1VCU0NSSUJFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudFR5cGV8fCh0LlNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50VHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NOQVBfQ0FNRVJBX0xFTlNfRVZFTlRTPTBdPVwiVU5LTk9XTl9TTkFQX0NBTUVSQV9MRU5TX0VWRU5UU1wiLGVbZS5MRU5TX0FDVElWQVRJT049MV09XCJMRU5TX0FDVElWQVRJT05cIixlW2UuTEVOU19ET1dOTE9BRD0yXT1cIkxFTlNfRE9XTkxPQURcIixlW2UuTEVOU19BRERfRkFWT1JJVEVTPTNdPVwiTEVOU19BRERfRkFWT1JJVEVTXCIsZVtlLkxFTlNfUkVNT1ZFX0ZBVk9SSVRFUz00XT1cIkxFTlNfUkVNT1ZFX0ZBVk9SSVRFU1wiLGVbZS5MRU5TX0NPUFlfTElOSz01XT1cIkxFTlNfQ09QWV9MSU5LXCIsZVtlLkxFTlNfU0FWRV9TTkFQQ09ERT02XT1cIkxFTlNfU0FWRV9TTkFQQ09ERVwiLGVbZS5MRU5TX1JFUE9SVD03XT1cIkxFTlNfUkVQT1JUXCIsZVtlLkxFTlNfREVBQ1RJVkFUSU9OPThdPVwiTEVOU19ERUFDVElWQVRJT05cIixlW2UuTEVOU19GT0xERVJfT1BFTj05XT1cIkxFTlNfRk9MREVSX09QRU5cIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNuYXBDYW1lcmFMZW5zRXZlbnRzfHwodC5TbmFwQ2FtZXJhTGVuc0V2ZW50cz17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NOQVBfQ0FNRVJBX0xFTlNfU09VUkNFPTBdPVwiVU5LTk9XTl9TTkFQX0NBTUVSQV9MRU5TX1NPVVJDRVwiLGVbZS5TT1VSQ0VfTk9ORT0xXT1cIlNPVVJDRV9OT05FXCIsZVtlLkxFTlNfRVhQTE9SRVI9Ml09XCJMRU5TX0VYUExPUkVSXCIsZVtlLkxFTlNfRkVBVFVSRUQ9M109XCJMRU5TX0ZFQVRVUkVEXCIsZVtlLkxFTlNfUkVDRU5UUz00XT1cIkxFTlNfUkVDRU5UU1wiLGVbZS5MRU5TX1NFQVJDSD01XT1cIkxFTlNfU0VBUkNIXCIsZVtlLkxFTlNfRkFWT1JJVEVTPTZdPVwiTEVOU19GQVZPUklURVNcIixlW2UuU0VBUkNIX0xJTks9N109XCJTRUFSQ0hfTElOS1wiLGVbZS5TSE9SVENVVD04XT1cIlNIT1JUQ1VUXCIsZVtlLkxFTlNfRk9MREVSPTldPVwiTEVOU19GT0xERVJcIixlW2UuU1lTVEVNX1RSQVlfTUVOVT0xMF09XCJTWVNURU1fVFJBWV9NRU5VXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TbmFwQ2FtZXJhTGVuc1NvdXJjZXx8KHQuU25hcENhbWVyYUxlbnNTb3VyY2U9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9TTkFQX0NBTUVSQV9TRVNTSU9OPTBdPVwiVU5LTk9XTl9TTkFQX0NBTUVSQV9TRVNTSU9OXCIsZVtlLlNFU1NJT05fU1RBUlQ9MV09XCJTRVNTSU9OX1NUQVJUXCIsZVtlLlNFU1NJT05fQ09OVElOVUU9Ml09XCJTRVNTSU9OX0NPTlRJTlVFXCIsZVtlLlNFU1NJT05fRU5EPTNdPVwiU0VTU0lPTl9FTkRcIixlW2UuU0VTU0lPTl9DUkFTSD00XT1cIlNFU1NJT05fQ1JBU0hcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNuYXBDYW1lcmFTZXNzaW9ufHwodC5TbmFwQ2FtZXJhU2Vzc2lvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NOQVBfQ0FNRVJBX1VTRVJfSU5URVJBQ1RJT049MF09XCJVTktOT1dOX1NOQVBfQ0FNRVJBX1VTRVJfSU5URVJBQ1RJT05cIixlW2UuU0VUVElOR1NfT1BFTj0xXT1cIlNFVFRJTkdTX09QRU5cIixlW2UuVFdJVENIX1NFVFRJTkdTX09QRU49Ml09XCJUV0lUQ0hfU0VUVElOR1NfT1BFTlwiLGVbZS5TRUFSQ0hfT1BFTj0zXT1cIlNFQVJDSF9PUEVOXCIsZVtlLlJFQ0VOVFNfT1BFTj00XT1cIlJFQ0VOVFNfT1BFTlwiLGVbZS5UV0lUQ0hfTE9HSU49NV09XCJUV0lUQ0hfTE9HSU5cIixlW2UuT1BFTl9DQVBUVVJFX01FTlU9Nl09XCJPUEVOX0NBUFRVUkVfTUVOVVwiLGVbZS5UQUtFX1BIT1RPPTddPVwiVEFLRV9QSE9UT1wiLGVbZS5UQUtFX1ZJREVPPThdPVwiVEFLRV9WSURFT1wiLGVbZS5TQVZFX01FRElBPTldPVwiU0FWRV9NRURJQVwiLGVbZS5GSU5JU0hfT05CT0FSRElORz0xMF09XCJGSU5JU0hfT05CT0FSRElOR1wiLGVbZS5TSE9XX1ZJUlRVQUxfQ0FNRVJBX0lOU1RSVUNUSU9OUz0xMV09XCJTSE9XX1ZJUlRVQUxfQ0FNRVJBX0lOU1RSVUNUSU9OU1wiLGVbZS5ESVNBQkxFX0FVVE9MQVVOQ0g9MTJdPVwiRElTQUJMRV9BVVRPTEFVTkNIXCIsZVtlLk9QRU5fR1VJPTEzXT1cIk9QRU5fR1VJXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TbmFwQ2FtZXJhVXNlckludGVyYWN0aW9ufHwodC5TbmFwQ2FtZXJhVXNlckludGVyYWN0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLklOSVRfVFlQRV9OT05FPTBdPVwiSU5JVF9UWVBFX05PTkVcIixlW2UuSU5JVF9UWVBFX0FVVE89MV09XCJJTklUX1RZUEVfQVVUT1wiLGVbZS5JTklUX1RZUEVfREVGRVJSRUQ9Ml09XCJJTklUX1RZUEVfREVGRVJSRURcIixlW2UuSU5JVF9UWVBFX0ZFQVRVUkU9M109XCJJTklUX1RZUEVfRkVBVFVSRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU25hcEtpdEluaXRUeXBlfHwodC5TbmFwS2l0SW5pdFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuU05BUEJPVF9SRVFVRVNUX1NUQVRVU19VTktOT1dOPTBdPVwiU05BUEJPVF9SRVFVRVNUX1NUQVRVU19VTktOT1dOXCIsZVtlLlNOQVBCT1RfUkVRVUVTVF9TVEFUVVNfUkVTUE9OU0VfR0VORVJBVEVEPTFdPVwiU05BUEJPVF9SRVFVRVNUX1NUQVRVU19SRVNQT05TRV9HRU5FUkFURURcIixlW2UuU05BUEJPVF9SRVFVRVNUX1NUQVRVU19BQlVTRV9MQU5HVUFHRV9ERVRFQ1RFRD0yXT1cIlNOQVBCT1RfUkVRVUVTVF9TVEFUVVNfQUJVU0VfTEFOR1VBR0VfREVURUNURURcIixlW2UuU05BUEJPVF9SRVFVRVNUX1NUQVRVU19VTlNVUFBPUlRFRF9NRVNTQUdFX1RZUEU9M109XCJTTkFQQk9UX1JFUVVFU1RfU1RBVFVTX1VOU1VQUE9SVEVEX01FU1NBR0VfVFlQRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU25hcGJvdFJlcXVlc3RTdGF0dXN8fCh0LlNuYXBib3RSZXF1ZXN0U3RhdHVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlNOQVBCT1RfUkVTUE9OU0VfU1RBVFVTX1VOS05PV049MF09XCJTTkFQQk9UX1JFU1BPTlNFX1NUQVRVU19VTktOT1dOXCIsZVtlLlNOQVBCT1RfUkVTUE9OU0VfU1RBVFVTX1NVQ0NFU1M9MV09XCJTTkFQQk9UX1JFU1BPTlNFX1NUQVRVU19TVUNDRVNTXCIsZVtlLlNOQVBCT1RfUkVTUE9OU0VfU1RBVFVTX0ZBSUxVUkU9Ml09XCJTTkFQQk9UX1JFU1BPTlNFX1NUQVRVU19GQUlMVVJFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TbmFwYm90UmVzcG9uc2VTdGF0dXN8fCh0LlNuYXBib3RSZXNwb25zZVN0YXR1cz17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TTkFQQk9UX1ZFTkRPUl9VTktOT1dOPTBdPVwiU05BUEJPVF9WRU5ET1JfVU5LTk9XTlwiLGVbZS5TTkFQQk9UX1ZFTkRPUl9PUEVOQUk9MV09XCJTTkFQQk9UX1ZFTkRPUl9PUEVOQUlcIixlW2UuU05BUEJPVF9WRU5ET1JfQU5USFJPUElDPTJdPVwiU05BUEJPVF9WRU5ET1JfQU5USFJPUElDXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TbmFwYm90VmVuZG9yfHwodC5TbmFwYm90VmVuZG9yPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlNOQVBCT1RfVkVORE9SX0NBTExfVU5LTk9XTj0wXT1cIlNOQVBCT1RfVkVORE9SX0NBTExfVU5LTk9XTlwiLGVbZS5TTkFQQk9UX1ZFTkRPUl9DQUxMX0NPTVBMRVRJT05TPTFdPVwiU05BUEJPVF9WRU5ET1JfQ0FMTF9DT01QTEVUSU9OU1wiLGVbZS5TTkFQQk9UX1ZFTkRPUl9DQUxMX0VNQkVERElOR1M9Ml09XCJTTkFQQk9UX1ZFTkRPUl9DQUxMX0VNQkVERElOR1NcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNuYXBib3RWZW5kb3JDYWxsfHwodC5TbmFwYm90VmVuZG9yQ2FsbD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NOQVBDT0RFX1VTRV9DQVNFPTBdPVwiVU5LTk9XTl9TTkFQQ09ERV9VU0VfQ0FTRVwiLGVbZS5TTkFQQ09ERV9VU0VSX1BST0ZJTEU9MV09XCJTTkFQQ09ERV9VU0VSX1BST0ZJTEVcIixlW2UuU05BUENPREVfVU5MT0NLQUJMRV9MRU5TPTJdPVwiU05BUENPREVfVU5MT0NLQUJMRV9MRU5TXCIsZVtlLlNOQVBDT0RFX1VSTD0zXT1cIlNOQVBDT0RFX1VSTFwiLGVbZS5TTkFQQ09ERV9ERUVQTElOSz00XT1cIlNOQVBDT0RFX0RFRVBMSU5LXCIsZVtlLlNOQVBDT0RFX01FU1NBR0U9NV09XCJTTkFQQ09ERV9NRVNTQUdFXCIsZVtlLlNOQVBDT0RFX0RJU0NPVkVSPTZdPVwiU05BUENPREVfRElTQ09WRVJcIixlW2UuU05BUENPREVfR0FNRT03XT1cIlNOQVBDT0RFX0dBTUVcIixlW2UuU05BUENPREVfQ09NTUVSQ0VfUFJPRFVDVD04XT1cIlNOQVBDT0RFX0NPTU1FUkNFX1BST0RVQ1RcIixlW2UuU05BUENPREVfQURfQ1JFQVRJVkVfUFJFVklFVz05XT1cIlNOQVBDT0RFX0FEX0NSRUFUSVZFX1BSRVZJRVdcIixlW2UuU05BUENPREVfU0NBTl9UT19BVVRIPTEwXT1cIlNOQVBDT0RFX1NDQU5fVE9fQVVUSFwiLGVbZS5TTkFQQ09ERV9TTkFQS0lUX0RFRVBMSU5LPTExXT1cIlNOQVBDT0RFX1NOQVBLSVRfREVFUExJTktcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNuYXBjb2RlTWV0YWRhdGFVc2VDYXNlfHwodC5TbmFwY29kZU1ldGFkYXRhVXNlQ2FzZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TT0NJQUxfQUNUSU9OX1VOU0VUPTBdPVwiU09DSUFMX0FDVElPTl9VTlNFVFwiLGVbZS5TT0NJQUxfQUNUSU9OX1NNUz0xXT1cIlNPQ0lBTF9BQ1RJT05fU01TXCIsZVtlLlNPQ0lBTF9BQ1RJT05fTElOSz0yXT1cIlNPQ0lBTF9BQ1RJT05fTElOS1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU29jaWFsQWN0aW9ufHwodC5Tb2NpYWxBY3Rpb249e30pKSxmdW5jdGlvbihlKXtlW2UuRVJST1JfVFlQRV9VTlNFVD0wXT1cIkVSUk9SX1RZUEVfVU5TRVRcIixlW2UuUkFURUxJTUlUX1VTRVI9MV09XCJSQVRFTElNSVRfVVNFUlwiLGVbZS5CQURfUkVRVUVTVF9VU0VSSUQ9Ml09XCJCQURfUkVRVUVTVF9VU0VSSURcIixlW2UuQkFEX1JFUVVFU1RfUEhPTkVfTlVNQkVSUz0zXT1cIkJBRF9SRVFVRVNUX1BIT05FX05VTUJFUlNcIixlW2UuQkFEX1JFUVVFU1RfVU5WRVJJRklFRF9QSE9ORV9OVU1CRVI9NF09XCJCQURfUkVRVUVTVF9VTlZFUklGSUVEX1BIT05FX05VTUJFUlwiLGVbZS5CQURfUkVRVUVTVF9JTlZBTElEX0ZFQVRVUkU9NV09XCJCQURfUkVRVUVTVF9JTlZBTElEX0ZFQVRVUkVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNvY2lhbFNtc0Vycm9yVHlwZXx8KHQuU29jaWFsU21zRXJyb3JUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNIQVQ9MF09XCJDSEFUXCIsZVtlLkNBTUVSQT0xXT1cIkNBTUVSQVwiLGVbZS5ESVNDT1ZFUj0yXT1cIkRJU0NPVkVSXCIsZVtlLlBST0ZJTEU9M109XCJQUk9GSUxFXCIsZVtlLlNUT1JZPTRdPVwiU1RPUllcIixlW2UuU1RPUllfRkVFRD01XT1cIlNUT1JZX0ZFRURcIixlW2UuTk9USUZJQ0FUSU9OPTZdPVwiTk9USUZJQ0FUSU9OXCIsZVtlLkVYVEVSTkFMPTddPVwiRVhURVJOQUxcIixlW2UuR0FMTEVSWT04XT1cIkdBTExFUllcIixlW2UuQ0FNRVJBX1FSX1NDQU49OV09XCJDQU1FUkFfUVJfU0NBTlwiLGVbZS5QUk9GSUxFX1JPTExfUVJfU0NBTj0xMF09XCJQUk9GSUxFX1JPTExfUVJfU0NBTlwiLGVbZS5DQU1FUkFfQkFSQ09ERV9TQ0FOPTExXT1cIkNBTUVSQV9CQVJDT0RFX1NDQU5cIixlW2UuQ0FNRVJBX1JPTEw9MTJdPVwiQ0FNRVJBX1JPTExcIixlW2UuU1VQUE9SVD0xM109XCJTVVBQT1JUXCIsZVtlLkRJU0NPVkVSX0xPTkdGT1JNX0FSVElDTEU9MTRdPVwiRElTQ09WRVJfTE9OR0ZPUk1fQVJUSUNMRVwiLGVbZS5ESVNDT1ZFUl9MT05HRk9STV9WSURFTz0xNV09XCJESVNDT1ZFUl9MT05HRk9STV9WSURFT1wiLGVbZS5ESVNDT1ZFUl9FRElUSU9OX0VORD0xNl09XCJESVNDT1ZFUl9FRElUSU9OX0VORFwiLGVbZS5NSU5JX1BST0ZJTEU9MTddPVwiTUlOSV9QUk9GSUxFXCIsZVtlLkNBTUVSQV9TRUFSQ0hfQk9YPTE4XT1cIkNBTUVSQV9TRUFSQ0hfQk9YXCIsZVtlLlNUSUNLRVJfRkVFTElOR19MVUNLWT0xOV09XCJTVElDS0VSX0ZFRUxJTkdfTFVDS1lcIixlW2UuU1RJQ0tFUl9SRUNPTU1FTkRFRD0yMF09XCJTVElDS0VSX1JFQ09NTUVOREVEXCIsZVtlLlNFQVJDSF9RVUlDS19DSEFUPTIxXT1cIlNFQVJDSF9RVUlDS19DSEFUXCIsZVtlLlNFQVJDSF9HUk9VUFM9MjJdPVwiU0VBUkNIX0dST1VQU1wiLGVbZS5TRUFSQ0hfTkVXX0ZSSUVORFM9MjNdPVwiU0VBUkNIX05FV19GUklFTkRTXCIsZVtlLlNFQVJDSF9RVUlDS19BREQ9MjRdPVwiU0VBUkNIX1FVSUNLX0FERFwiLGVbZS5TRUFSQ0hfQ09OVEFDVD0yNV09XCJTRUFSQ0hfQ09OVEFDVFwiLGVbZS5TRUFSQ0hfVU5TUEVDSUZJRUQ9MjZdPVwiU0VBUkNIX1VOU1BFQ0lGSUVEXCIsZVtlLlNFQVJDSF9TVVBFUl9TVE9SWT0yN109XCJTRUFSQ0hfU1VQRVJfU1RPUllcIixlW2UuU05BUF9BVFRBQ0hNRU5UPTI4XT1cIlNOQVBfQVRUQUNITUVOVFwiLGVbZS5NQVA9MjldPVwiTUFQXCIsZVtlLlNBUFM9MzBdPVwiU0FQU1wiLGVbZS5GRUVEPTMxXT1cIkZFRURcIixlW2UuQ09OVEVYVF9DQVJEUz0zMl09XCJDT05URVhUX0NBUkRTXCIsZVtlLkdST1VQX01JTklfUFJPRklMRT0zM109XCJHUk9VUF9NSU5JX1BST0ZJTEVcIixlW2UuU0VBUkNIX0NPTlRFWFRfTUVOVT0zNF09XCJTRUFSQ0hfQ09OVEVYVF9NRU5VXCIsZVtlLlNFQVJDSF9NQVBfQ0FSRD0zNV09XCJTRUFSQ0hfTUFQX0NBUkRcIixlW2UuU0VBUkNIX0xFTlNfRVhQTE9SRVI9MzZdPVwiU0VBUkNIX0xFTlNfRVhQTE9SRVJcIixlW2UuTUFQX0VYUExPUkU9MzddPVwiTUFQX0VYUExPUkVcIixlW2UuTE9DQVRJT05fU0hBUklOR19TRVRUSU5HUz0zOF09XCJMT0NBVElPTl9TSEFSSU5HX1NFVFRJTkdTXCIsZVtlLlNFVFRJTkdTPTM5XT1cIlNFVFRJTkdTXCIsZVtlLk1ZX1NUT1JZX1NJTkdMRV9TTkFQPTQwXT1cIk1ZX1NUT1JZX1NJTkdMRV9TTkFQXCIsZVtlLkxJVkVfU1RPUlk9NDFdPVwiTElWRV9TVE9SWVwiLGVbZS5HUk9VUF9TVE9SWT00Ml09XCJHUk9VUF9TVE9SWVwiLGVbZS5HUk9VUF9DSEFUPTQzXT1cIkdST1VQX0NIQVRcIixlW2UuU0hBUkU9NDRdPVwiU0hBUkVcIixlW2UuRElSRUNUX1NIQVJFPTQ1XT1cIkRJUkVDVF9TSEFSRVwiLGVbZS5TTkFQX0RPTU89NDZdPVwiU05BUF9ET01PXCIsZVtlLkNIQVRfSEFNQlVSR0VSPTQ3XT1cIkNIQVRfSEFNQlVSR0VSXCIsZVtlLkdST1VQX0NIQVRfSEFNQlVSR0VSPTQ4XT1cIkdST1VQX0NIQVRfSEFNQlVSR0VSXCIsZVtlLkNIQVRfUVVJQ0tfQ0hBVD00OV09XCJDSEFUX1FVSUNLX0NIQVRcIixlW2UuR0FMTEVSWV9TRU5EX1RPPTUwXT1cIkdBTExFUllfU0VORF9UT1wiLGVbZS5TTkFQQ09ERT01MV09XCJTTkFQQ09ERVwiLGVbZS5MRU5TPTUyXT1cIkxFTlNcIixlW2UuTEVOU19DVEE9NTNdPVwiTEVOU19DVEFcIixlW2UuQ09NTUVSQ0VfUkVWSUVXX09SREVSX0NBUkQ9NTRdPVwiQ09NTUVSQ0VfUkVWSUVXX09SREVSX0NBUkRcIixlW2UuQ09NTUVSQ0VfQ0hFQ0tPVVQ9NTVdPVwiQ09NTUVSQ0VfQ0hFQ0tPVVRcIixlW2UuQ09NTUVSQ0VfT1JERVJfREVUQUlMUz01Nl09XCJDT01NRVJDRV9PUkRFUl9ERVRBSUxTXCIsZVtlLkNPTU1FUkNFX1NOQVBfU1RPUkVfU0VUVElOR1NfQ0VMTD01N109XCJDT01NRVJDRV9TTkFQX1NUT1JFX1NFVFRJTkdTX0NFTExcIixlW2UuQ09NTUVSQ0VfU1BFQ1RBQ0xFU19TRVRUSU5HU19CVVk9NThdPVwiQ09NTUVSQ0VfU1BFQ1RBQ0xFU19TRVRUSU5HU19CVVlcIixlW2UuV0VCVklFVz01OV09XCJXRUJWSUVXXCIsZVtlLk9OX0RFTUFORF9HRU9GSUxURVI9NjBdPVwiT05fREVNQU5EX0dFT0ZJTFRFUlwiLGVbZS5ORVdfQ0hBVD02MV09XCJORVdfQ0hBVFwiLGVbZS5DQU1FUkFfQkVGT1JFX1JFRz02Ml09XCJDQU1FUkFfQkVGT1JFX1JFR1wiLGVbZS5IT1ZBX05BVl9CQVI9NjNdPVwiSE9WQV9OQVZfQkFSXCIsZVtlLkFERF9GUklFTkRTX1BBR0U9NjRdPVwiQUREX0ZSSUVORFNfUEFHRVwiLGVbZS5DT05UQUNUU19QQUdFPTY1XT1cIkNPTlRBQ1RTX1BBR0VcIixlW2UuU0VORF9UTz02Nl09XCJTRU5EX1RPXCIsZVtlLlBVQkxJQ19QUk9GSUxFPTY3XT1cIlBVQkxJQ19QUk9GSUxFXCIsZVtlLk1BUF9SRVBMWT02OF09XCJNQVBfUkVQTFlcIixlW2UuU0hBWkFNPTY5XT1cIlNIQVpBTVwiLGVbZS5MT0dJTj03MF09XCJMT0dJTlwiLGVbZS5GUklFTkRfUFJPRklMRT03MV09XCJGUklFTkRfUFJPRklMRVwiLGVbZS5HUk9VUF9QUk9GSUxFPTcyXT1cIkdST1VQX1BST0ZJTEVcIixlW2UuR0FNRVM9NzNdPVwiR0FNRVNcIixlW2UuSU5fQ0hBVF9MRUFERVJCT0FSRF9TSEFSRT03NV09XCJJTl9DSEFUX0xFQURFUkJPQVJEX1NIQVJFXCIsZVtlLkNPTlRFWFRfU05BUF9SRVBMWT03Nl09XCJDT05URVhUX1NOQVBfUkVQTFlcIixlW2UuQ09OVEVYVF9TVE9SWV9SRVBMWT03N109XCJDT05URVhUX1NUT1JZX1JFUExZXCIsZVtlLkRFRVBMSU5LPTc4XT1cIkRFRVBMSU5LXCIsZVtlLk1BUF9UUkFZPTc5XT1cIk1BUF9UUkFZXCIsZVtlLlNUSUNLRVJfUFJFVklFVz04MF09XCJTVElDS0VSX1BSRVZJRVdcIixlW2UuQURTPTgxXT1cIkFEU1wiLGVbZS5QQU5FTD04Ml09XCJQQU5FTFwiLGVbZS5QQU5FTF9RVUlDSz04M109XCJQQU5FTF9RVUlDS1wiLGVbZS5QTEFDRV9QUk9GSUxFPTg0XT1cIlBMQUNFX1BST0ZJTEVcIixlW2UuU0hBUkVfU0hFRVQ9ODVdPVwiU0hBUkVfU0hFRVRcIixlW2UuVE9LRU5fU0hPUD04Nl09XCJUT0tFTl9TSE9QXCIsZVtlLkxFX1NFQVJDSD04N109XCJMRV9TRUFSQ0hcIixlW2UuQ0hBVF9QTEFZQkFDSz04OF09XCJDSEFUX1BMQVlCQUNLXCIsZVtlLkZFRURfUExBWUJBQ0s9ODldPVwiRkVFRF9QTEFZQkFDS1wiLGVbZS5QUk9GSUxFX0NBUk9VU0VMX1BMQVlCQUNLPTkwXT1cIlBST0ZJTEVfQ0FST1VTRUxfUExBWUJBQ0tcIixlW2UuUFJPRklMRV9HQUxMRVJZX1BMQVlCQUNLPTkxXT1cIlBST0ZJTEVfR0FMTEVSWV9QTEFZQkFDS1wiLGVbZS5QUk9GSUxFX0dBTExFUlk9OTJdPVwiUFJPRklMRV9HQUxMRVJZXCIsZVtlLlBFUkNFUFRJT05fRkFTSElPTl9TQ0FOPTkzXT1cIlBFUkNFUFRJT05fRkFTSElPTl9TQ0FOXCIsZVtlLlNOQVBfUFJPX1BST0ZJTEU9OTRdPVwiU05BUF9QUk9fUFJPRklMRVwiLGVbZS5TTkFQS0lUPTk1XT1cIlNOQVBLSVRcIixlW2UuTUFQX0ZSSUVORFNfQ0FST1VTRUw9OTZdPVwiTUFQX0ZSSUVORFNfQ0FST1VTRUxcIixlW2UuTUFQX01ZX0JJVE1PSklfQlVUVE9OPTk3XT1cIk1BUF9NWV9CSVRNT0pJX0JVVFRPTlwiLGVbZS5NQVBfU0VMRl9UQVA9OThdPVwiTUFQX1NFTEZfVEFQXCIsZVtlLk1VU0lDX1BJQ0tFUj05OV09XCJNVVNJQ19QSUNLRVJcIixlW2UuSU5fQVBQX05PVElGSUNBVElPTj0xMDBdPVwiSU5fQVBQX05PVElGSUNBVElPTlwiLGVbZS5DT01NRVJDRV9TQ1JFRU5TSE9QX01FTU9SSUVTPTEwMV09XCJDT01NRVJDRV9TQ1JFRU5TSE9QX01FTU9SSUVTXCIsZVtlLlBMQUNFU19UUkFZPTEwMl09XCJQTEFDRVNfVFJBWVwiLGVbZS5QTEFDRVNfUE9JPTEwM109XCJQTEFDRVNfUE9JXCIsZVtlLlNQT1RMSUdIVD0xMDRdPVwiU1BPVExJR0hUXCIsZVtlLkxBWUVSX1BJTj0xMDVdPVwiTEFZRVJfUElOXCIsZVtlLkxBWUVSX1RSQVk9MTA2XT1cIkxBWUVSX1RSQVlcIixlW2UuQ0FMTD0xMDddPVwiQ0FMTFwiLGVbZS5DT01NRVJDRV9QUk9GSUxFX0ZBVk9SSVRFUz0xMDhdPVwiQ09NTUVSQ0VfUFJPRklMRV9GQVZPUklURVNcIixlW2UuUExBQ0VTX1RSQVlfU0VBUkNIPTEwOV09XCJQTEFDRVNfVFJBWV9TRUFSQ0hcIixlW2UuQ0FNRU9TX1NUT1JZPTExMF09XCJDQU1FT1NfU1RPUllcIixlW2UuTE9DS1NDUkVFTj0xMTFdPVwiTE9DS1NDUkVFTlwiLGVbZS5CSVRNT0pJX09VVEZJVF9TSEFSRT0xMTJdPVwiQklUTU9KSV9PVVRGSVRfU0hBUkVcIixlW2UuUVVJQ0tfVEFQPTExM109XCJRVUlDS19UQVBcIixlW2UuQ09NTUVSQ0VfUFJPRFVDVD0xMTRdPVwiQ09NTUVSQ0VfUFJPRFVDVFwiLGVbZS5HQU1FX1NOSVBQRVRfTEVOUz0xMTVdPVwiR0FNRV9TTklQUEVUX0xFTlNcIixlW2UuR0FNRV9TTklQUEVUX1NUSUNLRVI9MTE2XT1cIkdBTUVfU05JUFBFVF9TVElDS0VSXCIsZVtlLlNIT1BQSU5HX0xFTlNfTEFVTkNIRVI9MTE3XT1cIlNIT1BQSU5HX0xFTlNfTEFVTkNIRVJcIixlW2UuV0VCX0JVSUxERVI9MTE4XT1cIldFQl9CVUlMREVSXCIsZVtlLkRJUkVDVF9TTkFQPTExOV09XCJESVJFQ1RfU05BUFwiLGVbZS5TVE9SWV9TTkFQPTEyMF09XCJTVE9SWV9TTkFQXCIsZVtlLkZBTUlMWV9DRU5URVI9MTIxXT1cIkZBTUlMWV9DRU5URVJcIixlW2UuVElWPTEyMl09XCJUSVZcIixlW2UuUVVJQ0tfUE9TVD0xMjNdPVwiUVVJQ0tfUE9TVFwiLGVbZS5TVEFUVVNfQkFSPTEyNF09XCJTVEFUVVNfQkFSXCIsZVtlLk1BUF9GUklFTkRfRk9DVVNfVklFVz0xMjVdPVwiTUFQX0ZSSUVORF9GT0NVU19WSUVXXCIsZVtlLk1BUF9HUk9VUF9GT0NVU19WSUVXPTEyNl09XCJNQVBfR1JPVVBfRk9DVVNfVklFV1wiLGVbZS5MRU5TX0lOVEVST1A9MTI3XT1cIkxFTlNfSU5URVJPUFwiLGVbZS5NWV9QUk9GSUxFX0FDVElWSVRZX0NBUkQ9MTI5XT1cIk1ZX1BST0ZJTEVfQUNUSVZJVFlfQ0FSRFwiLGVbZS5NWV9QUk9GSUxFX0NPTU1VTklUWV9CQURHRT0xMzBdPVwiTVlfUFJPRklMRV9DT01NVU5JVFlfQkFER0VcIixlW2UuRlJJRU5EX1BST0ZJTEVfQ09NTVVOSVRZX0JBREdFPTEzMV09XCJGUklFTkRfUFJPRklMRV9DT01NVU5JVFlfQkFER0VcIixlW2UuTUFQX1BJTj0xMzJdPVwiTUFQX1BJTlwiLGVbZS5NSU5JX0NIQVRfRE9DS19SRUNPTU1FTkRBVElPTj0xMzNdPVwiTUlOSV9DSEFUX0RPQ0tfUkVDT01NRU5EQVRJT05cIixlW2UuTUlOSV9DSEFUX0RSQVdFUl9SRUNPTU1FTkRBVElPTj0xMzRdPVwiTUlOSV9DSEFUX0RSQVdFUl9SRUNPTU1FTkRBVElPTlwiLGVbZS5NQVBfU0hBUklOR19OT1RJRj0xMzVdPVwiTUFQX1NIQVJJTkdfTk9USUZcIixlW2UuTE9DS1NDUkVFTl9XSURHRVRfQ0FNRVJBPTEzNl09XCJMT0NLU0NSRUVOX1dJREdFVF9DQU1FUkFcIixlW2UuTE9DS1NDUkVFTl9XSURHRVRfUE1GPTEzN109XCJMT0NLU0NSRUVOX1dJREdFVF9QTUZcIixlW2UuTE9DS1NDUkVFTl9XSURHRVRfQklSVEhEQVk9MTM4XT1cIkxPQ0tTQ1JFRU5fV0lER0VUX0JJUlRIREFZXCIsZVtlLkNPTU1FUkNFX1NDUkVFTlNIT1BfU0NBTk5FUj0xMzldPVwiQ09NTUVSQ0VfU0NSRUVOU0hPUF9TQ0FOTkVSXCIsZVtlLkZPUk1BPTE0MF09XCJGT1JNQVwiLGVbZS5TSE9QUElOR19MRU5TX1BSRVZJRVc9MTQxXT1cIlNIT1BQSU5HX0xFTlNfUFJFVklFV1wiLGVbZS5DQU1FUkFfTUlOSV9DQVJPVVNFTD0xNDJdPVwiQ0FNRVJBX01JTklfQ0FST1VTRUxcIixlW2UuTUVNT1JJRVNfV0lER0VUPTE0M109XCJNRU1PUklFU19XSURHRVRcIixlW2UuU1RBVFVTX01FU1NBR0U9MTQ0XT1cIlNUQVRVU19NRVNTQUdFXCIsZVtlLk1BREVfRk9SX1VTPTE0NV09XCJNQURFX0ZPUl9VU1wiLGVbZS5DT05TVU1FUl9XRUI9MTQ2XT1cIkNPTlNVTUVSX1dFQlwiLGVbZS5NQVBfUEVSU0lTVEVEX1BJTj0xNDddPVwiTUFQX1BFUlNJU1RFRF9QSU5cIixlW2UuTUFQX0FERFJFU1NfVFJBWT0xNDhdPVwiTUFQX0FERFJFU1NfVFJBWVwiLGVbZS5QTFVTX01BTkFHRU1FTlQ9MTQ5XT1cIlBMVVNfTUFOQUdFTUVOVFwiLGVbZS5DSEFUX0xPQ0FUSU9OPTE1MF09XCJDSEFUX0xPQ0FUSU9OXCIsZVtlLkZFRURfSEVBREVSX1BST01QVD0xNTFdPVwiRkVFRF9IRUFERVJfUFJPTVBUXCIsZVtlLlBST0ZJTEVfQUNUSVZJVFlfQ0FSRD0xNTJdPVwiUFJPRklMRV9BQ1RJVklUWV9DQVJEXCIsZVtlLkZVTExfU0NSRUVOX1RBS0VPVkVSPTE1M109XCJGVUxMX1NDUkVFTl9UQUtFT1ZFUlwiLGVbZS5NQVBfRlJJRU5EX0xPQ0FUSU9OX1dJREdFVD0xNTRdPVwiTUFQX0ZSSUVORF9MT0NBVElPTl9XSURHRVRcIixlW2UuU1BPVExJR0hUX1BMQUNFX1RBRz0xNTVdPVwiU1BPVExJR0hUX1BMQUNFX1RBR1wiLGVbZS5NQVBfQkFOTkVSPTE1Nl09XCJNQVBfQkFOTkVSXCIsZVtlLlNIQVJJTkdfRFJBV0VSPTE1N109XCJTSEFSSU5HX0RSQVdFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU291cmNlVHlwZXx8KHQuU291cmNlVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTkFWQUlMQUJMRT0wXT1cIlVOQVZBSUxBQkxFXCIsZVtlLlNJTkdMRV9UQVA9MV09XCJTSU5HTEVfVEFQXCIsZVtlLkRPVUJMRV9UQVA9Ml09XCJET1VCTEVfVEFQXCIsZVtlLlRSSVBMRV9UQVA9M109XCJUUklQTEVfVEFQXCIsZVtlLlNJTkdMRV9UQVBfSE9MRD00XT1cIlNJTkdMRV9UQVBfSE9MRFwiLGVbZS5ET1VCTEVfVEFQX0hPTEQ9NV09XCJET1VCTEVfVEFQX0hPTERcIixlW2UuVFJJUExFX1RBUF9IT0xEPTZdPVwiVFJJUExFX1RBUF9IT0xEXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TcGVjdGFjbGVzQnV0dG9uUHJlc3NUeXBlfHwodC5TcGVjdGFjbGVzQnV0dG9uUHJlc3NUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fU1BFQ1RBQ0xFU19GSUxFX1RZUEU9MF09XCJVTktOT1dOX1NQRUNUQUNMRVNfRklMRV9UWVBFXCIsZVtlLklNVT0xXT1cIklNVVwiLGVbZS5NRVRBREFUQT0yXT1cIk1FVEFEQVRBXCIsZVtlLlRIVU1CTkFJTD0zXT1cIlRIVU1CTkFJTFwiLGVbZS5TRF9WSURFTz00XT1cIlNEX1ZJREVPXCIsZVtlLkhEX1ZJREVPPTVdPVwiSERfVklERU9cIixlW2UuUEhPVE89Nl09XCJQSE9UT1wiLGVbZS5BTklNQVRFRF9USFVNQk5BSUw9N109XCJBTklNQVRFRF9USFVNQk5BSUxcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlNwZWN0YWNsZXNGaWxlVHlwZXx8KHQuU3BlY3RhY2xlc0ZpbGVUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkJMQUNLPTBdPVwiQkxBQ0tcIixlW2UuVEVBTD0xXT1cIlRFQUxcIixlW2UuQ09SQUw9Ml09XCJDT1JBTFwiLGVbZS5PTllYPTNdPVwiT05ZWFwiLGVbZS5TQVBQSElSRT00XT1cIlNBUFBISVJFXCIsZVtlLlJVQlk9NV09XCJSVUJZXCIsZVtlLk5JQ089Nl09XCJOSUNPXCIsZVtlLlZFUk9OSUNBPTddPVwiVkVST05JQ0FcIixlW2UuQ0FSQk9OPThdPVwiQ0FSQk9OXCIsZVtlLk1JTkVSQUw9OV09XCJNSU5FUkFMXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TcGVjdGFjbGVzRnJhbWVDb2xvcnx8KHQuU3BlY3RhY2xlc0ZyYW1lQ29sb3I9e30pKSxmdW5jdGlvbihlKXtlW2UuVUtOT1dOX1NQRUNUQUNMRVNfVEFOU0ZFUl9DSEFOTkVMPTBdPVwiVUtOT1dOX1NQRUNUQUNMRVNfVEFOU0ZFUl9DSEFOTkVMXCIsZVtlLkJUQz0xXT1cIkJUQ1wiLGVbZS5XSUZJPTJdPVwiV0lGSVwiLGVbZS5XSUZJX0RJUkVDVD0zXT1cIldJRklfRElSRUNUXCIsZVtlLldJRklfQVA9NF09XCJXSUZJX0FQXCIsZVtlLkJMRT01XT1cIkJMRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU3BlY3RhY2xlc1RyYW5zZmVyQ2hhbm5lbHx8KHQuU3BlY3RhY2xlc1RyYW5zZmVyQ2hhbm5lbD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NQRUNUQUNMRVNfVFJBTlNGRVJfVFlQRT0wXT1cIlVOS05PV05fU1BFQ1RBQ0xFU19UUkFOU0ZFUl9UWVBFXCIsZVtlLkZPUkVHUk9VTkQ9MV09XCJGT1JFR1JPVU5EXCIsZVtlLkJBQ0tHUk9VTkQ9Ml09XCJCQUNLR1JPVU5EXCIsZVtlLlNUQVRJT05fTU9ERT0zXT1cIlNUQVRJT05fTU9ERVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU3BlY3RhY2xlc1RyYW5zZmVyVHlwZVNlcnZlcnx8KHQuU3BlY3RhY2xlc1RyYW5zZmVyVHlwZVNlcnZlcj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NQT05TT1JFRF9VTkxPQ0tBQkxFX1RZUEU9MF09XCJVTktOT1dOX1NQT05TT1JFRF9VTkxPQ0tBQkxFX1RZUEVcIixlW2UuQVVESUVOQ0VfRklMVEVSUz0xXT1cIkFVRElFTkNFX0ZJTFRFUlNcIixlW2UuT05fREVNQU5EX1VOTE9DS0FCTEU9Ml09XCJPTl9ERU1BTkRfVU5MT0NLQUJMRVwiLGVbZS5BVURJRU5DRV9MRU5TRVM9M109XCJBVURJRU5DRV9MRU5TRVNcIixlW2UuTkFUSU9OQUxfTEVOU0VTPTRdPVwiTkFUSU9OQUxfTEVOU0VTXCIsZVtlLk1BTkFHRURfRklMVEVSUz01XT1cIk1BTkFHRURfRklMVEVSU1wiLGVbZS5TUE9OU09SRURfQ09NUEFOSU9OX0xFTlNFUz02XT1cIlNQT05TT1JFRF9DT01QQU5JT05fTEVOU0VTXCIsZVtlLlJFQUNIX0FORF9GUkVRVUVOQ1lfTEVOU0VTPTddPVwiUkVBQ0hfQU5EX0ZSRVFVRU5DWV9MRU5TRVNcIixlW2UuQURfVE9fTEVOUz04XT1cIkFEX1RPX0xFTlNcIixlW2UuUExBQ0VTX0ZJTFRFUlM9OV09XCJQTEFDRVNfRklMVEVSU1wiLGVbZS5GSVJTVF9MRU5TRVM9MTBdPVwiRklSU1RfTEVOU0VTXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TcG9uc29yZWRVbmxvY2thYmxlVHlwZXx8KHQuU3BvbnNvcmVkVW5sb2NrYWJsZVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuU1RPUllfS0lUX0VOVFJZX0VWRU5UX1BMQVlFUl9OT05FPTBdPVwiU1RPUllfS0lUX0VOVFJZX0VWRU5UX1BMQVlFUl9OT05FXCIsZVtlLlNUT1JZX0tJVF9FTlRSWV9FVkVOVF9QTEFZRVJfT1BFTj0xXT1cIlNUT1JZX0tJVF9FTlRSWV9FVkVOVF9QTEFZRVJfT1BFTlwiLGVbZS5TVE9SWV9LSVRfRU5UUllfRVZFTlRfVEFQX0xFRlQ9Ml09XCJTVE9SWV9LSVRfRU5UUllfRVZFTlRfVEFQX0xFRlRcIixlW2UuU1RPUllfS0lUX0VOVFJZX0VWRU5UX1RBUF9SSUdIVD0zXT1cIlNUT1JZX0tJVF9FTlRSWV9FVkVOVF9UQVBfUklHSFRcIixlW2UuU1RPUllfS0lUX0VOVFJZX0VWRU5UX0FVVE9fQURWQU5DRT00XT1cIlNUT1JZX0tJVF9FTlRSWV9FVkVOVF9BVVRPX0FEVkFOQ0VcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlN0b3J5S2l0RW50cnlFdmVudHx8KHQuU3RvcnlLaXRFbnRyeUV2ZW50PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlNUT1JZX0tJVF9FWElUX0VWRU5UX1BMQVlFUl9OT05FPTBdPVwiU1RPUllfS0lUX0VYSVRfRVZFTlRfUExBWUVSX05PTkVcIixlW2UuU1RPUllfS0lUX0VYSVRfRVZFTlRfVEFQX0xFRlQ9MV09XCJTVE9SWV9LSVRfRVhJVF9FVkVOVF9UQVBfTEVGVFwiLGVbZS5TVE9SWV9LSVRfRVhJVF9FVkVOVF9UQVBfUklHSFQ9Ml09XCJTVE9SWV9LSVRfRVhJVF9FVkVOVF9UQVBfUklHSFRcIixlW2UuU1RPUllfS0lUX0VYSVRfRVZFTlRfQVVUT19BRFZBTkNFPTNdPVwiU1RPUllfS0lUX0VYSVRfRVZFTlRfQVVUT19BRFZBTkNFXCIsZVtlLlNUT1JZX0tJVF9FWElUX0VWRU5UX1BMQVlFUl9DTE9TRT00XT1cIlNUT1JZX0tJVF9FWElUX0VWRU5UX1BMQVlFUl9DTE9TRVwiLGVbZS5TVE9SWV9LSVRfRVhJVF9FVkVOVF9FWFRFUk5BTF9BUFBfRVZFTlQ9NV09XCJTVE9SWV9LSVRfRVhJVF9FVkVOVF9FWFRFUk5BTF9BUFBfRVZFTlRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlN0b3J5S2l0RXhpdEV2ZW50fHwodC5TdG9yeUtpdEV4aXRFdmVudD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TVE9SWV9LSVRfTUVESUFfVFlQRV9OT05FPTBdPVwiU1RPUllfS0lUX01FRElBX1RZUEVfTk9ORVwiLGVbZS5TVE9SWV9LSVRfTUVESUFfVFlQRV9WSURFTz0xXT1cIlNUT1JZX0tJVF9NRURJQV9UWVBFX1ZJREVPXCIsZVtlLlNUT1JZX0tJVF9NRURJQV9UWVBFX0lNQUdFPTJdPVwiU1RPUllfS0lUX01FRElBX1RZUEVfSU1BR0VcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlN0b3J5S2l0TWVkaWFUeXBlfHwodC5TdG9yeUtpdE1lZGlhVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TVE9SWV9LSVRfUExBWUVSX1RZUEVfTk9ORT0wXT1cIlNUT1JZX0tJVF9QTEFZRVJfVFlQRV9OT05FXCIsZVtlLlNUT1JZX0tJVF9QTEFZRVJfVFlQRV9FTUJFRERFRD0xXT1cIlNUT1JZX0tJVF9QTEFZRVJfVFlQRV9FTUJFRERFRFwiLGVbZS5TVE9SWV9LSVRfUExBWUVSX1RZUEVfRlVMTFNDUkVFTj0yXT1cIlNUT1JZX0tJVF9QTEFZRVJfVFlQRV9GVUxMU0NSRUVOXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5TdG9yeUtpdFBsYXllclR5cGV8fCh0LlN0b3J5S2l0UGxheWVyVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NUT1JZX1BVU0hfVFlQRT0wXT1cIlVOS05PV05fU1RPUllfUFVTSF9UWVBFXCIsZVtlLlRBUF9UT19ESVNDT1ZFUj0xXT1cIlRBUF9UT19ESVNDT1ZFUlwiLGVbZS5UQVBfVE9fUExBWUVSPTJdPVwiVEFQX1RPX1BMQVlFUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU3RvcnlQdXNoVHlwZXx8KHQuU3RvcnlQdXNoVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5TVFJFQUtfRE9fTk9UX1VTRT0wXT1cIlNUUkVBS19ET19OT1RfVVNFXCIsZVtlLlNUUkVBS19JTkNSRUFTRT0xXT1cIlNUUkVBS19JTkNSRUFTRVwiLGVbZS5TVFJFQUtfUkVTRVQ9Ml09XCJTVFJFQUtfUkVTRVRcIixlW2UuU1RSRUFLX1BPU1NJQkxFX1VQREFURV9GQUlMPTNdPVwiU1RSRUFLX1BPU1NJQkxFX1VQREFURV9GQUlMXCIsZVtlLlNUUkVBS19SRVNUT1JFPTRdPVwiU1RSRUFLX1JFU1RPUkVcIixlW2UuU1RSRUFLX1RJTUVSX1NIT1dOPTVdPVwiU1RSRUFLX1RJTUVSX1NIT1dOXCIsZVtlLlNUUkVBS19JTVBSRVNTSU9OPTZdPVwiU1RSRUFLX0lNUFJFU1NJT05cIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlN0cmVha0FjdGlvblR5cGV8fCh0LlN0cmVha0FjdGlvblR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuU09VUkNFX1VOS05PV049MF09XCJTT1VSQ0VfVU5LTk9XTlwiLGVbZS5BVVRPX1JFU1RPUkU9MV09XCJBVVRPX1JFU1RPUkVcIixlW2UuUEFJRF9SRVNUT1JFPTJdPVwiUEFJRF9SRVNUT1JFXCIsZVtlLkNVU1RPTUVSX09QU19SRVNUT1JFPTNdPVwiQ1VTVE9NRVJfT1BTX1JFU1RPUkVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlN0cmVha1Jlc3RvcmVTb3VyY2V8fCh0LlN0cmVha1Jlc3RvcmVTb3VyY2U9e30pKSxmdW5jdGlvbihlKXtlW2UuU1VCU0NSSVBUSU9OX0FDVElPTl9VTlNFVD0wXT1cIlNVQlNDUklQVElPTl9BQ1RJT05fVU5TRVRcIixlW2UuU1VCU0NSSVBUSU9OX0FDVElPTl9VTlNVQlNDUklCRT0xXT1cIlNVQlNDUklQVElPTl9BQ1RJT05fVU5TVUJTQ1JJQkVcIixlW2UuU1VCU0NSSVBUSU9OX0FDVElPTl9SRVNVQlNDUklCRT0yXT1cIlNVQlNDUklQVElPTl9BQ1RJT05fUkVTVUJTQ1JJQkVcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlN1YnNjcmlwdGlvbkFjdGlvbnx8KHQuU3Vic2NyaXB0aW9uQWN0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fU1VHR0VTVEVEX0ZSSUVORF9BQ1RJT05fRVZFTlRfVFlQRT0wXT1cIlVOS05PV05fU1VHR0VTVEVEX0ZSSUVORF9BQ1RJT05fRVZFTlRfVFlQRVwiLGVbZS5VUERBVEVfU1VHR0VTVEVEX0ZSSUVORD0xXT1cIlVQREFURV9TVUdHRVNURURfRlJJRU5EXCIsZVtlLkxJU1RfU1VHR0VTVEVEX0ZSSUVORD0yXT1cIkxJU1RfU1VHR0VTVEVEX0ZSSUVORFwiLGVbZS5MSVNUX1NVR0dFU1RFRF9GUklFTkRfRlJPTV9DQUNIRT0zXT1cIkxJU1RfU1VHR0VTVEVEX0ZSSUVORF9GUk9NX0NBQ0hFXCIsZVtlLkhJREVfUVVJQ0tfQUREX1VOSVQ9NF09XCJISURFX1FVSUNLX0FERF9VTklUXCIsZVtlLklOVkFMSURfQUNUSU9OPTVdPVwiSU5WQUxJRF9BQ1RJT05cIixlW2UuTElTVF9ISURERU49Nl09XCJMSVNUX0hJRERFTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU3VnZ2VzdGVkRnJpZW5kQWN0aW9uRXZlbnRUeXBlc3x8KHQuU3VnZ2VzdGVkRnJpZW5kQWN0aW9uRXZlbnRUeXBlcz17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NVR0dFU1RFRF9GUklFTkRfQUNUSU9OX1NVQ0NFU1NfVFlQRT0wXT1cIlVOS05PV05fU1VHR0VTVEVEX0ZSSUVORF9BQ1RJT05fU1VDQ0VTU19UWVBFXCIsZVtlLlNVQ0NFRURFRD0xXT1cIlNVQ0NFRURFRFwiLGVbZS5GQUlMRUQ9Ml09XCJGQUlMRURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlN1Z2dlc3RlZEZyaWVuZEFjdGlvblN1Y2Nlc3NUeXBlc3x8KHQuU3VnZ2VzdGVkRnJpZW5kQWN0aW9uU3VjY2Vzc1R5cGVzPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fRklORF9GUklFTkRTX0VWRU5UX0xPQ0FUSU9OPTBdPVwiVU5LTk9XTl9GSU5EX0ZSSUVORFNfRVZFTlRfTE9DQVRJT05cIixlW2UuQXBwT3Blbj0xXT1cIkFwcE9wZW5cIixlW2UuUmVnaXN0cmF0aW9uPTJdPVwiUmVnaXN0cmF0aW9uXCIsZVtlLlB1c2hOb3RpZj0zXT1cIlB1c2hOb3RpZlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU3VnZ2VzdGVkRnJpZW5kRXZlbnRMb2NhdGlvbnx8KHQuU3VnZ2VzdGVkRnJpZW5kRXZlbnRMb2NhdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NVR0dFU1RFRF9GUklFTkRfRVZFTlRfVFlQRT0wXT1cIlVOS05PV05fU1VHR0VTVEVEX0ZSSUVORF9FVkVOVF9UWVBFXCIsZVtlLlNVR0dFU1RFRF9GUklFTkRfU0VSVkVEPTFdPVwiU1VHR0VTVEVEX0ZSSUVORF9TRVJWRURcIixlW2UuU1VHR0VTVEVEX0ZSSUVORF9TRUVOX0ZSSUVORF9SRVFVRVNUPTJdPVwiU1VHR0VTVEVEX0ZSSUVORF9TRUVOX0ZSSUVORF9SRVFVRVNUXCIsZVtlLlNVR0dFU1RFRF9GUklFTkRfU0VFTj0zXT1cIlNVR0dFU1RFRF9GUklFTkRfU0VFTlwiLGVbZS5TVUdHRVNURURfRlJJRU5EX1BPUFVMQVRJT049NF09XCJTVUdHRVNURURfRlJJRU5EX1BPUFVMQVRJT05cIixlW2UuU1VHR0VTVEVEX0ZSSUVORF9QVVNIX0hRRj01XT1cIlNVR0dFU1RFRF9GUklFTkRfUFVTSF9IUUZcIixlW2UuU1VHR0VTVEVEX0ZSSUVORF9QVVNIX05FV19VU0VSPTZdPVwiU1VHR0VTVEVEX0ZSSUVORF9QVVNIX05FV19VU0VSXCIsZVtlLlNVR0dFU1RFRF9GUklFTkRfSElERT03XT1cIlNVR0dFU1RFRF9GUklFTkRfSElERVwiLGVbZS5TVUdHRVNURURfRlJJRU5EX0ZFVENIRUQ9OF09XCJTVUdHRVNURURfRlJJRU5EX0ZFVENIRURcIixlW2UuU1VHR0VTVEVEX0ZSSUVORF9TVE9SRUQ9OV09XCJTVUdHRVNURURfRlJJRU5EX1NUT1JFRFwiLGVbZS5TVUdHRVNURURfRlJJRU5EX1JFVFJJRVZBTD0xMF09XCJTVUdHRVNURURfRlJJRU5EX1JFVFJJRVZBTFwiLGVbZS5TVUdHRVNURURfRlJJRU5EX1RPVEFMX1JFVFJJRVZBTD0xMV09XCJTVUdHRVNURURfRlJJRU5EX1RPVEFMX1JFVFJJRVZBTFwiLGVbZS5TVUdHRVNURURfRlJJRU5EX1RPVEFMX0ZFVENIRUQ9MTJdPVwiU1VHR0VTVEVEX0ZSSUVORF9UT1RBTF9GRVRDSEVEXCIsZVtlLlNVR0dFU1RFRF9GUklFTkRfVE9UQUxfU0VSVkVEPTEzXT1cIlNVR0dFU1RFRF9GUklFTkRfVE9UQUxfU0VSVkVEXCIsZVtlLlNVR0dFU1RFRF9GUklFTkRfRVNfUVVFUlk9MTRdPVwiU1VHR0VTVEVEX0ZSSUVORF9FU19RVUVSWVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuU3VnZ2VzdGVkRnJpZW5kRXZlbnRUeXBlfHwodC5TdWdnZXN0ZWRGcmllbmRFdmVudFR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuT05FX09OX09ORV9DQUxMPTBdPVwiT05FX09OX09ORV9DQUxMXCIsZVtlLkdST1VQX0NBTEw9MV09XCJHUk9VUF9DQUxMXCIsZVtlLlZQTD0yXT1cIlZQTFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuVGFsa0V4cGVyaWVuY2VUeXBlfHwodC5UYWxrRXhwZXJpZW5jZVR5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuQU5EUk9JRD0wXT1cIkFORFJPSURcIixlW2UuSU9TPTFdPVwiSU9TXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5UYWxrU2RrVHlwZXx8KHQuVGFsa1Nka1R5cGU9e30pKSxmdW5jdGlvbihlKXtlW2UuSk9JTkVEPTBdPVwiSk9JTkVEXCIsZVtlLkxFRlQ9MV09XCJMRUZUXCIsZVtlLlVQREFURUQ9Ml09XCJVUERBVEVEXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5UYWxrU3RyZWFtZXJBY3Rpdml0eVR5cGV8fCh0LlRhbGtTdHJlYW1lckFjdGl2aXR5VHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5DSEFOTkVMX1VOS05PV049MF09XCJDSEFOTkVMX1VOS05PV05cIixlW2UuSU5fQVBQX1BVU0hfTk9USUZJQ0FUSU9OPTFdPVwiSU5fQVBQX1BVU0hfTk9USUZJQ0FUSU9OXCIsZVtlLklOX0FQUF9EVVBMRVg9Ml09XCJJTl9BUFBfRFVQTEVYXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5UaXZDaGFubmVsc3x8KHQuVGl2Q2hhbm5lbHM9e30pKSxmdW5jdGlvbihlKXtlW2UuQXBwcm92ZT0wXT1cIkFwcHJvdmVcIixlW2UuRGVueT0xXT1cIkRlbnlcIixlW2UuVGltZW91dD0yXT1cIlRpbWVvdXRcIixlW2UuQXBwcm92ZWQ9M109XCJBcHByb3ZlZFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuVGl2UmVzcG9uc2V8fCh0LlRpdlJlc3BvbnNlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOU0VUX0ZBSUxVUkVfUkVBU09OPTBdPVwiVU5TRVRfRkFJTFVSRV9SRUFTT05cIixlW2UuVU5TVVBQT1JURURfTU9CSUxFX0FQUD0xXT1cIlVOU1VQUE9SVEVEX01PQklMRV9BUFBcIixlW2UuUFVTSF9OT1RJRklDQVRJT05fU0VORF9GQUlMVVJFPTJdPVwiUFVTSF9OT1RJRklDQVRJT05fU0VORF9GQUlMVVJFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5UaXZTZW50RmFpbHVyZVJlYXNvbnx8KHQuVGl2U2VudEZhaWx1cmVSZWFzb249e30pKSxmdW5jdGlvbihlKXtlW2UuVU5TRVRfVFJBTlNBQ1RJT049MF09XCJVTlNFVF9UUkFOU0FDVElPTlwiLGVbZS5XRUJfQ0hBVD0xXT1cIldFQl9DSEFUXCIsZVtlLldFQl9MT0dJTj0yXT1cIldFQl9MT0dJTlwiLGVbZS5EV0VCX0xPR0lOPTNdPVwiRFdFQl9MT0dJTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuVHJhbnNhY3Rpb258fCh0LlRyYW5zYWN0aW9uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fR0VOREVSPTBdPVwiVU5LTk9XTl9HRU5ERVJcIixlW2UuTUFMRT0xXT1cIk1BTEVcIixlW2UuRkVNQUxFPTJdPVwiRkVNQUxFXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5Vc2VyR2VuZGVyfHwodC5Vc2VyR2VuZGVyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlBIT05FX05VTUJFUl9OT1RfQkxPQ0tMSVNURUQ9MF09XCJQSE9ORV9OVU1CRVJfTk9UX0JMT0NLTElTVEVEXCIsZVtlLlBIT05FX05VTUJFUl9WRU5ET1JfQkxPQ0tMSVNURURfQllfVEVMRVNJR049MV09XCJQSE9ORV9OVU1CRVJfVkVORE9SX0JMT0NLTElTVEVEX0JZX1RFTEVTSUdOXCIsZVtlLlBIT05FX05VTUJFUl9WRU5ET1JfQkxPQ0tMSVNURURfQllfT1JHQU5JWkFUSU9OPTJdPVwiUEhPTkVfTlVNQkVSX1ZFTkRPUl9CTE9DS0xJU1RFRF9CWV9PUkdBTklaQVRJT05cIixlW2UuUEhPTkVfTlVNQkVSX1ZFTkRPUl9CTE9DS0xJU1RFRF9CWV9BQ0NPVU5UPTNdPVwiUEhPTkVfTlVNQkVSX1ZFTkRPUl9CTE9DS0xJU1RFRF9CWV9BQ0NPVU5UXCIsZVtlLlBIT05FX05VTUJFUl9WRU5ET1JfQkxPQ0tMSVNURURfVU5LTk9XTj00XT1cIlBIT05FX05VTUJFUl9WRU5ET1JfQkxPQ0tMSVNURURfVU5LTk9XTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuVmVuZG9yQmxvY2tsaXN0ZWREZXNjcmlwdGlvbnx8KHQuVmVuZG9yQmxvY2tsaXN0ZWREZXNjcmlwdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5WRVJJRklDQVRJT05fTUVUSE9EX1VOU0VUPTBdPVwiVkVSSUZJQ0FUSU9OX01FVEhPRF9VTlNFVFwiLGVbZS5WRVJJRklDQVRJT05fTUVUSE9EX0FVVEhFTlRJQ0FUT1JfQVBQPTFdPVwiVkVSSUZJQ0FUSU9OX01FVEhPRF9BVVRIRU5USUNBVE9SX0FQUFwiLGVbZS5WRVJJRklDQVRJT05fTUVUSE9EX1NNUz0yXT1cIlZFUklGSUNBVElPTl9NRVRIT0RfU01TXCIsZVtlLlZFUklGSUNBVElPTl9NRVRIT0RfRU1BSUw9M109XCJWRVJJRklDQVRJT05fTUVUSE9EX0VNQUlMXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5WZXJpZmljYXRpb25NZXRob2R8fCh0LlZlcmlmaWNhdGlvbk1ldGhvZD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1ZFUklGWV9DT0RFX0VOVFJZX1RZUEU9MF09XCJVTktOT1dOX1ZFUklGWV9DT0RFX0VOVFJZX1RZUEVcIixlW2UuVVNFUl9JTlBVVD0xXT1cIlVTRVJfSU5QVVRcIixlW2UuREVFUF9MSU5LPTJdPVwiREVFUF9MSU5LXCIsZVtlLkFVVE9GSUxMPTNdPVwiQVVUT0ZJTExcIixlW2UuUEhPTkVfQ0FMTF9JTlRFUkNFUFQ9NF09XCJQSE9ORV9DQUxMX0lOVEVSQ0VQVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuVmVyaWZ5Q29kZUVudHJ5VHlwZXx8KHQuVmVyaWZ5Q29kZUVudHJ5VHlwZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1ZFUklGWV9LSVRfVFlQRT0wXT1cIlVOS05PV05fVkVSSUZZX0tJVF9UWVBFXCIsZVtlLlZFUklGWV9PTl9TSE9XPTFdPVwiVkVSSUZZX09OX1NIT1dcIixlW2UuVkVSSUZZX0hJRERFTj0yXT1cIlZFUklGWV9ISURERU5cIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlZlcmlmeUtpdEV2ZW50VHlwZXx8KHQuVmVyaWZ5S2l0RXZlbnRUeXBlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLldFQl9TSEFSRV9ERVNUSU5BVElPTl9VTktOT1dOPTBdPVwiV0VCX1NIQVJFX0RFU1RJTkFUSU9OX1VOS05PV05cIixlW2UuV0VCX1NIQVJFX0FQST0xXT1cIldFQl9TSEFSRV9BUElcIixlW2UuQ09QWV9MSU5LPTJdPVwiQ09QWV9MSU5LXCIsZVtlLk1FU1NBR0VTPTNdPVwiTUVTU0FHRVNcIixlW2UuRkFDRUJPT0s9NF09XCJGQUNFQk9PS1wiLGVbZS5NRVNTRU5HRVI9NV09XCJNRVNTRU5HRVJcIixlW2UuVElLVE9LPTZdPVwiVElLVE9LXCIsZVtlLlRXSVRURVI9N109XCJUV0lUVEVSXCIsZVtlLldIQVRTQVBQPThdPVwiV0hBVFNBUFBcIixlW2UuSU5TVEFHUkFNPTldPVwiSU5TVEFHUkFNXCIsZVtlLlJFRERJVD0xMF09XCJSRURESVRcIixlW2UuUElOVEVSRVNUPTExXT1cIlBJTlRFUkVTVFwiLGVbZS5NQUlMPTEyXT1cIk1BSUxcIixlW2UuV0VCX1NIQVJFX1RPX1NOQVBDSEFUPTEzXT1cIldFQl9TSEFSRV9UT19TTkFQQ0hBVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHQuV2ViU2hhcmVEZXN0aW5hdGlvbnx8KHQuV2ViU2hhcmVEZXN0aW5hdGlvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5XRUJfU0hBUkVfU0hFRVQ9MF09XCJXRUJfU0hBUkVfU0hFRVRcIixlW2UuV0VCX1NIQVJFX0JBUj0xXT1cIldFQl9TSEFSRV9CQVJcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LldlYlNoYXJlU291cmNlfHwodC5XZWJTaGFyZVNvdXJjZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5XRUJfU0hBUkVfU1RBVFVTX1VOS05PV049MF09XCJXRUJfU0hBUkVfU1RBVFVTX1VOS05PV05cIixlW2UuV0VCX1NIQVJFX1NUQVRVU19TVUNDRVNTPTFdPVwiV0VCX1NIQVJFX1NUQVRVU19TVUNDRVNTXCIsZVtlLldFQl9TSEFSRV9TVEFUVVNfRkFJTEVEPTJdPVwiV0VCX1NIQVJFX1NUQVRVU19GQUlMRURcIixlW2UuV0VCX1NIQVJFX1NUQVRVU19BQk9SVEVEPTNdPVwiV0VCX1NIQVJFX1NUQVRVU19BQk9SVEVEXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odC5XZWJTaGFyZVN0YXR1c3x8KHQuV2ViU2hhcmVTdGF0dXM9e30pKSx0LlNlcnZlckV2ZW50QmF0Y2g9e2VuY29kZShlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSl7MCE9PWUuc2VydmVyVXBsb2FkVHMmJm4udWludDMyKDkpLmRvdWJsZShlLnNlcnZlclVwbG9hZFRzKTtmb3IoY29uc3QgciBvZiBlLnNlcnZlckFsbFVwZGF0ZUV2ZW50cyl0LlNlcnZlclJlcXVlc3RBbGxVcGRhdGVzLmVuY29kZShyLG4udWludDMyKDE4KS5mb3JrKCkpLmxkZWxpbSgpO1wiMFwiIT09ZS5tYXhTZXF1ZW5jZUlkT25JbnN0YW5jZSYmbi51aW50MzIoMjQpLnVpbnQ2NChlLm1heFNlcXVlbmNlSWRPbkluc3RhbmNlKTtmb3IoY29uc3QgciBvZiBlLnNlcnZlckV2ZW50cyl0LlNlcnZlckV2ZW50LmVuY29kZShyLG4udWludDMyKDM0KS5mb3JrKCkpLmxkZWxpbSgpO3JldHVybiBufSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3NlcnZlclVwbG9hZFRzOjAsc2VydmVyQWxsVXBkYXRlRXZlbnRzOltdLG1heFNlcXVlbmNlSWRPbkluc3RhbmNlOlwiMFwiLHNlcnZlckV2ZW50czpbXX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc2VydmVyVXBsb2FkVHM9ci5kb3VibGUoKTticmVhaztjYXNlIDI6YS5zZXJ2ZXJBbGxVcGRhdGVFdmVudHMucHVzaCh0LlNlcnZlclJlcXVlc3RBbGxVcGRhdGVzLmRlY29kZShyLHIudWludDMyKCkpKTticmVhaztjYXNlIDM6YS5tYXhTZXF1ZW5jZUlkT25JbnN0YW5jZT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNDphLnNlcnZlckV2ZW50cy5wdXNoKHQuU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c2VydmVyVXBsb2FkVHM6MCxzZXJ2ZXJBbGxVcGRhdGVFdmVudHM6W10sbWF4U2VxdWVuY2VJZE9uSW5zdGFuY2U6XCIwXCIsc2VydmVyRXZlbnRzOltdfTtyZXR1cm4gbi5zZXJ2ZXJVcGxvYWRUcz1lLnNlcnZlclVwbG9hZFRzPz8wLG4uc2VydmVyQWxsVXBkYXRlRXZlbnRzPWUuc2VydmVyQWxsVXBkYXRlRXZlbnRzPy5tYXAoKGU9PnQuU2VydmVyUmVxdWVzdEFsbFVwZGF0ZXMuZnJvbVBhcnRpYWwoZSkpKXx8W10sbi5tYXhTZXF1ZW5jZUlkT25JbnN0YW5jZT1lLm1heFNlcXVlbmNlSWRPbkluc3RhbmNlPz9cIjBcIixuLnNlcnZlckV2ZW50cz1lLnNlcnZlckV2ZW50cz8ubWFwKChlPT50LlNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUpKSl8fFtdLG59fSx0LkJpdG1vamlLaXRTZWFyY2hUZXJtPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLmNhdGVnb3J5JiZ0LnVpbnQzMig4KS5pbnQzMihlLmNhdGVnb3J5KSxcIlwiIT09ZS52YWx1ZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnZhbHVlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2NhdGVnb3J5OjAsdmFsdWU6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuY2F0ZWdvcnk9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtjYXRlZ29yeTowLHZhbHVlOlwiXCJ9O3JldHVybiB0LmNhdGVnb3J5PWUuY2F0ZWdvcnk/PzAsdC52YWx1ZT1lLnZhbHVlPz9cIlwiLHR9fSx0LkNsb3NlZFRTREJTdGF0cz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5idGNsdXN0ZXImJm4udWludDMyKDEwKS5zdHJpbmcoZS5idGNsdXN0ZXIpLFwiXCIhPT1lLm5hbWVzcGFjZSYmbi51aW50MzIoMTgpLnN0cmluZyhlLm5hbWVzcGFjZSksXCJcIiE9PWUuZW50aXR5SWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5lbnRpdHlJZCksXCIwXCIhPT1lLnRpbWVzdGFtcCYmbi51aW50MzIoMzIpLnVpbnQ2NChlLnRpbWVzdGFtcCksT2JqZWN0LmVudHJpZXMoZS5nYXVnZXMpLmZvckVhY2goKChbZSxyXSk9Pnt0LkNsb3NlZFRTREJTdGF0c19HYXVnZXNFbnRyeS5lbmNvZGUoe2tleTplLHZhbHVlOnJ9LG4udWludDMyKDQyKS5mb3JrKCkpLmxkZWxpbSgpfSkpLE9iamVjdC5lbnRyaWVzKGUuY291bnRlcnMpLmZvckVhY2goKChbZSxyXSk9Pnt0LkNsb3NlZFRTREJTdGF0c19Db3VudGVyc0VudHJ5LmVuY29kZSh7a2V5OmUsdmFsdWU6cn0sbi51aW50MzIoNTApLmZvcmsoKSkubGRlbGltKCl9KSksT2JqZWN0LmVudHJpZXMoZS5oaXN0b2dyYW1zKS5mb3JFYWNoKCgoW2Uscl0pPT57dC5DbG9zZWRUU0RCU3RhdHNfSGlzdG9ncmFtc0VudHJ5LmVuY29kZSh7a2V5OmUsdmFsdWU6cn0sbi51aW50MzIoNTgpLmZvcmsoKSkubGRlbGltKCl9KSksT2JqZWN0LmVudHJpZXMoZS51bmlxdWVzKS5mb3JFYWNoKCgoW2Uscl0pPT57dC5DbG9zZWRUU0RCU3RhdHNfVW5pcXVlc0VudHJ5LmVuY29kZSh7a2V5OmUsdmFsdWU6cn0sbi51aW50MzIoNjYpLmZvcmsoKSkubGRlbGltKCl9KSksT2JqZWN0LmVudHJpZXMoZS5tZXRhZGF0YSkuZm9yRWFjaCgoKFtlLHJdKT0+e3QuQ2xvc2VkVFNEQlN0YXRzX01ldGFkYXRhRW50cnkuZW5jb2RlKHtrZXk6ZSx2YWx1ZTpyfSxuLnVpbnQzMig4MDIpLmZvcmsoKSkubGRlbGltKCl9KSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtidGNsdXN0ZXI6XCJcIixuYW1lc3BhY2U6XCJcIixlbnRpdHlJZDpcIlwiLHRpbWVzdGFtcDpcIjBcIixnYXVnZXM6e30sY291bnRlcnM6e30saGlzdG9ncmFtczp7fSx1bmlxdWVzOnt9LG1ldGFkYXRhOnt9fTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5idGNsdXN0ZXI9ci5zdHJpbmcoKTticmVhaztjYXNlIDI6YS5uYW1lc3BhY2U9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5lbnRpdHlJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLnRpbWVzdGFtcD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNTpjb25zdCBuPXQuQ2xvc2VkVFNEQlN0YXRzX0dhdWdlc0VudHJ5LmRlY29kZShyLHIudWludDMyKCkpO3ZvaWQgMCE9PW4udmFsdWUmJihhLmdhdWdlc1tuLmtleV09bi52YWx1ZSk7YnJlYWs7Y2FzZSA2OmNvbnN0IGk9dC5DbG9zZWRUU0RCU3RhdHNfQ291bnRlcnNFbnRyeS5kZWNvZGUocixyLnVpbnQzMigpKTt2b2lkIDAhPT1pLnZhbHVlJiYoYS5jb3VudGVyc1tpLmtleV09aS52YWx1ZSk7YnJlYWs7Y2FzZSA3OmNvbnN0IG89dC5DbG9zZWRUU0RCU3RhdHNfSGlzdG9ncmFtc0VudHJ5LmRlY29kZShyLHIudWludDMyKCkpO3ZvaWQgMCE9PW8udmFsdWUmJihhLmhpc3RvZ3JhbXNbby5rZXldPW8udmFsdWUpO2JyZWFrO2Nhc2UgODpjb25zdCBzPXQuQ2xvc2VkVFNEQlN0YXRzX1VuaXF1ZXNFbnRyeS5kZWNvZGUocixyLnVpbnQzMigpKTt2b2lkIDAhPT1zLnZhbHVlJiYoYS51bmlxdWVzW3Mua2V5XT1zLnZhbHVlKTticmVhaztjYXNlIDEwMDpjb25zdCBjPXQuQ2xvc2VkVFNEQlN0YXRzX01ldGFkYXRhRW50cnkuZGVjb2RlKHIsci51aW50MzIoKSk7dm9pZCAwIT09Yy52YWx1ZSYmKGEubWV0YWRhdGFbYy5rZXldPWMudmFsdWUpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17YnRjbHVzdGVyOlwiXCIsbmFtZXNwYWNlOlwiXCIsZW50aXR5SWQ6XCJcIix0aW1lc3RhbXA6XCIwXCIsZ2F1Z2VzOnt9LGNvdW50ZXJzOnt9LGhpc3RvZ3JhbXM6e30sdW5pcXVlczp7fSxtZXRhZGF0YTp7fX07cmV0dXJuIHQuYnRjbHVzdGVyPWUuYnRjbHVzdGVyPz9cIlwiLHQubmFtZXNwYWNlPWUubmFtZXNwYWNlPz9cIlwiLHQuZW50aXR5SWQ9ZS5lbnRpdHlJZD8/XCJcIix0LnRpbWVzdGFtcD1lLnRpbWVzdGFtcD8/XCIwXCIsdC5nYXVnZXM9T2JqZWN0LmVudHJpZXMoZS5nYXVnZXM/P3t9KS5yZWR1Y2UoKChlLFt0LG5dKT0+KHZvaWQgMCE9PW4mJihlW3RdPU51bWJlcihuKSksZSkpLHt9KSx0LmNvdW50ZXJzPU9iamVjdC5lbnRyaWVzKGUuY291bnRlcnM/P3t9KS5yZWR1Y2UoKChlLFt0LG5dKT0+KHZvaWQgMCE9PW4mJihlW3RdPVN0cmluZyhuKSksZSkpLHt9KSx0Lmhpc3RvZ3JhbXM9T2JqZWN0LmVudHJpZXMoZS5oaXN0b2dyYW1zPz97fSkucmVkdWNlKCgoZSxbdCxuXSk9Pih2b2lkIDAhPT1uJiYoZVt0XT1uKSxlKSkse30pLHQudW5pcXVlcz1PYmplY3QuZW50cmllcyhlLnVuaXF1ZXM/P3t9KS5yZWR1Y2UoKChlLFt0LG5dKT0+KHZvaWQgMCE9PW4mJihlW3RdPW4pLGUpKSx7fSksdC5tZXRhZGF0YT1PYmplY3QuZW50cmllcyhlLm1ldGFkYXRhPz97fSkucmVkdWNlKCgoZSxbdCxuXSk9Pih2b2lkIDAhPT1uJiYoZVt0XT1TdHJpbmcobikpLGUpKSx7fSksdH19LHQuQ2xvc2VkVFNEQlN0YXRzX0dhdWdlc0VudHJ5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmtleSYmdC51aW50MzIoMTApLnN0cmluZyhlLmtleSksMCE9PWUudmFsdWUmJnQudWludDMyKDE3KS5kb3VibGUoZS52YWx1ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtrZXk6XCJcIix2YWx1ZTowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5rZXk9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS52YWx1ZT1uLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17a2V5OlwiXCIsdmFsdWU6MH07cmV0dXJuIHQua2V5PWUua2V5Pz9cIlwiLHQudmFsdWU9ZS52YWx1ZT8/MCx0fX0sdC5DbG9zZWRUU0RCU3RhdHNfQ291bnRlcnNFbnRyeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5rZXkmJnQudWludDMyKDEwKS5zdHJpbmcoZS5rZXkpLFwiMFwiIT09ZS52YWx1ZSYmdC51aW50MzIoMTYpLmludDY0KGUudmFsdWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17a2V5OlwiXCIsdmFsdWU6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmtleT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPXAobi5pbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2tleTpcIlwiLHZhbHVlOlwiMFwifTtyZXR1cm4gdC5rZXk9ZS5rZXk/P1wiXCIsdC52YWx1ZT1lLnZhbHVlPz9cIjBcIix0fX0sdC5DbG9zZWRUU0RCU3RhdHNfSGlzdG9ncmFtc0VudHJ5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmtleSYmdC51aW50MzIoMTApLnN0cmluZyhlLmtleSksMCE9PWUudmFsdWUubGVuZ3RoJiZ0LnVpbnQzMigxOCkuYnl0ZXMoZS52YWx1ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPWEoKTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5rZXk9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS52YWx1ZT1uLmJ5dGVzKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PWEoKTtyZXR1cm4gdC5rZXk9ZS5rZXk/P1wiXCIsdC52YWx1ZT1lLnZhbHVlPz9uZXcgVWludDhBcnJheSx0fX0sdC5DbG9zZWRUU0RCU3RhdHNfVW5pcXVlc0VudHJ5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmtleSYmdC51aW50MzIoMTApLnN0cmluZyhlLmtleSksMCE9PWUudmFsdWUubGVuZ3RoJiZ0LnVpbnQzMigxOCkuYnl0ZXMoZS52YWx1ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXMoKTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5rZXk9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS52YWx1ZT1uLmJ5dGVzKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXMoKTtyZXR1cm4gdC5rZXk9ZS5rZXk/P1wiXCIsdC52YWx1ZT1lLnZhbHVlPz9uZXcgVWludDhBcnJheSx0fX0sdC5DbG9zZWRUU0RCU3RhdHNfTWV0YWRhdGFFbnRyeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5rZXkmJnQudWludDMyKDEwKS5zdHJpbmcoZS5rZXkpLFwiXCIhPT1lLnZhbHVlJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUudmFsdWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17a2V5OlwiXCIsdmFsdWU6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkua2V5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudmFsdWU9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2tleTpcIlwiLHZhbHVlOlwiXCJ9O3JldHVybiB0LmtleT1lLmtleT8/XCJcIix0LnZhbHVlPWUudmFsdWU/P1wiXCIsdH19LHQuVW5sb2NrYWJsZVNlcnZlU3RhdHM9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuZXZlbnRUeXBlJiZuLnVpbnQzMigxMCkuc3RyaW5nKGUuZXZlbnRUeXBlKSxcIlwiIT09ZS5pZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmlkKSxcIjBcIiE9PWUudGltZXN0YW1wJiZuLnVpbnQzMigyNCkudWludDY0KGUudGltZXN0YW1wKSxPYmplY3QuZW50cmllcyhlLmdhdWdlcykuZm9yRWFjaCgoKFtlLHJdKT0+e3QuVW5sb2NrYWJsZVNlcnZlU3RhdHNfR2F1Z2VzRW50cnkuZW5jb2RlKHtrZXk6ZSx2YWx1ZTpyfSxuLnVpbnQzMigzNCkuZm9yaygpKS5sZGVsaW0oKX0pKSxPYmplY3QuZW50cmllcyhlLmNvdW50ZXJzKS5mb3JFYWNoKCgoW2Uscl0pPT57dC5VbmxvY2thYmxlU2VydmVTdGF0c19Db3VudGVyc0VudHJ5LmVuY29kZSh7a2V5OmUsdmFsdWU6cn0sbi51aW50MzIoNDIpLmZvcmsoKSkubGRlbGltKCl9KSksXCJcIiE9PWUuZW52aXJvbm1lbnQmJm4udWludDMyKDUwKS5zdHJpbmcoZS5lbnZpcm9ubWVudCksXCJcIiE9PWUuc2VydmVyUm9sZSYmbi51aW50MzIoNTgpLnN0cmluZyhlLnNlcnZlclJvbGUpLE9iamVjdC5lbnRyaWVzKGUuaGlzdG9ncmFtcykuZm9yRWFjaCgoKFtlLHJdKT0+e3QuVW5sb2NrYWJsZVNlcnZlU3RhdHNfSGlzdG9ncmFtc0VudHJ5LmVuY29kZSh7a2V5OmUsdmFsdWU6cn0sbi51aW50MzIoNjYpLmZvcmsoKSkubGRlbGltKCl9KSksT2JqZWN0LmVudHJpZXMoZS51bmlxdWVzKS5mb3JFYWNoKCgoW2Uscl0pPT57dC5VbmxvY2thYmxlU2VydmVTdGF0c19VbmlxdWVzRW50cnkuZW5jb2RlKHtrZXk6ZSx2YWx1ZTpyfSxuLnVpbnQzMig3NCkuZm9yaygpKS5sZGVsaW0oKX0pKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2V2ZW50VHlwZTpcIlwiLGlkOlwiXCIsdGltZXN0YW1wOlwiMFwiLGdhdWdlczp7fSxjb3VudGVyczp7fSxlbnZpcm9ubWVudDpcIlwiLHNlcnZlclJvbGU6XCJcIixoaXN0b2dyYW1zOnt9LHVuaXF1ZXM6e319O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmV2ZW50VHlwZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMjphLmlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEudGltZXN0YW1wPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA0OmNvbnN0IG49dC5VbmxvY2thYmxlU2VydmVTdGF0c19HYXVnZXNFbnRyeS5kZWNvZGUocixyLnVpbnQzMigpKTt2b2lkIDAhPT1uLnZhbHVlJiYoYS5nYXVnZXNbbi5rZXldPW4udmFsdWUpO2JyZWFrO2Nhc2UgNTpjb25zdCBpPXQuVW5sb2NrYWJsZVNlcnZlU3RhdHNfQ291bnRlcnNFbnRyeS5kZWNvZGUocixyLnVpbnQzMigpKTt2b2lkIDAhPT1pLnZhbHVlJiYoYS5jb3VudGVyc1tpLmtleV09aS52YWx1ZSk7YnJlYWs7Y2FzZSA2OmEuZW52aXJvbm1lbnQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDc6YS5zZXJ2ZXJSb2xlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA4OmNvbnN0IG89dC5VbmxvY2thYmxlU2VydmVTdGF0c19IaXN0b2dyYW1zRW50cnkuZGVjb2RlKHIsci51aW50MzIoKSk7dm9pZCAwIT09by52YWx1ZSYmKGEuaGlzdG9ncmFtc1tvLmtleV09by52YWx1ZSk7YnJlYWs7Y2FzZSA5OmNvbnN0IHM9dC5VbmxvY2thYmxlU2VydmVTdGF0c19VbmlxdWVzRW50cnkuZGVjb2RlKHIsci51aW50MzIoKSk7dm9pZCAwIT09cy52YWx1ZSYmKGEudW5pcXVlc1tzLmtleV09cy52YWx1ZSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtldmVudFR5cGU6XCJcIixpZDpcIlwiLHRpbWVzdGFtcDpcIjBcIixnYXVnZXM6e30sY291bnRlcnM6e30sZW52aXJvbm1lbnQ6XCJcIixzZXJ2ZXJSb2xlOlwiXCIsaGlzdG9ncmFtczp7fSx1bmlxdWVzOnt9fTtyZXR1cm4gdC5ldmVudFR5cGU9ZS5ldmVudFR5cGU/P1wiXCIsdC5pZD1lLmlkPz9cIlwiLHQudGltZXN0YW1wPWUudGltZXN0YW1wPz9cIjBcIix0LmdhdWdlcz1PYmplY3QuZW50cmllcyhlLmdhdWdlcz8/e30pLnJlZHVjZSgoKGUsW3Qsbl0pPT4odm9pZCAwIT09biYmKGVbdF09TnVtYmVyKG4pKSxlKSkse30pLHQuY291bnRlcnM9T2JqZWN0LmVudHJpZXMoZS5jb3VudGVycz8/e30pLnJlZHVjZSgoKGUsW3Qsbl0pPT4odm9pZCAwIT09biYmKGVbdF09U3RyaW5nKG4pKSxlKSkse30pLHQuZW52aXJvbm1lbnQ9ZS5lbnZpcm9ubWVudD8/XCJcIix0LnNlcnZlclJvbGU9ZS5zZXJ2ZXJSb2xlPz9cIlwiLHQuaGlzdG9ncmFtcz1PYmplY3QuZW50cmllcyhlLmhpc3RvZ3JhbXM/P3t9KS5yZWR1Y2UoKChlLFt0LG5dKT0+KHZvaWQgMCE9PW4mJihlW3RdPW4pLGUpKSx7fSksdC51bmlxdWVzPU9iamVjdC5lbnRyaWVzKGUudW5pcXVlcz8/e30pLnJlZHVjZSgoKGUsW3Qsbl0pPT4odm9pZCAwIT09biYmKGVbdF09biksZSkpLHt9KSx0fX0sdC5VbmxvY2thYmxlU2VydmVTdGF0c19HYXVnZXNFbnRyeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5rZXkmJnQudWludDMyKDEwKS5zdHJpbmcoZS5rZXkpLDAhPT1lLnZhbHVlJiZ0LnVpbnQzMigxNykuZG91YmxlKGUudmFsdWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17a2V5OlwiXCIsdmFsdWU6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkua2V5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudmFsdWU9bi5kb3VibGUoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2tleTpcIlwiLHZhbHVlOjB9O3JldHVybiB0LmtleT1lLmtleT8/XCJcIix0LnZhbHVlPWUudmFsdWU/PzAsdH19LHQuVW5sb2NrYWJsZVNlcnZlU3RhdHNfQ291bnRlcnNFbnRyeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5rZXkmJnQudWludDMyKDEwKS5zdHJpbmcoZS5rZXkpLFwiMFwiIT09ZS52YWx1ZSYmdC51aW50MzIoMTYpLmludDY0KGUudmFsdWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17a2V5OlwiXCIsdmFsdWU6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmtleT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPXAobi5pbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2tleTpcIlwiLHZhbHVlOlwiMFwifTtyZXR1cm4gdC5rZXk9ZS5rZXk/P1wiXCIsdC52YWx1ZT1lLnZhbHVlPz9cIjBcIix0fX0sdC5VbmxvY2thYmxlU2VydmVTdGF0c19IaXN0b2dyYW1zRW50cnk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUua2V5JiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUua2V5KSwwIT09ZS52YWx1ZS5sZW5ndGgmJnQudWludDMyKDE4KS5ieXRlcyhlLnZhbHVlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9YygpO2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmtleT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPW4uYnl0ZXMoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9YygpO3JldHVybiB0LmtleT1lLmtleT8/XCJcIix0LnZhbHVlPWUudmFsdWU/P25ldyBVaW50OEFycmF5LHR9fSx0LlVubG9ja2FibGVTZXJ2ZVN0YXRzX1VuaXF1ZXNFbnRyeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5rZXkmJnQudWludDMyKDEwKS5zdHJpbmcoZS5rZXkpLDAhPT1lLnZhbHVlLmxlbmd0aCYmdC51aW50MzIoMTgpLmJ5dGVzKGUudmFsdWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT11KCk7Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkua2V5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudmFsdWU9bi5ieXRlcygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD11KCk7cmV0dXJuIHQua2V5PWUua2V5Pz9cIlwiLHQudmFsdWU9ZS52YWx1ZT8/bmV3IFVpbnQ4QXJyYXksdH19LHQuQWREZWJ1Z1N0YXRzPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmV2ZW50VHlwZSYmbi51aW50MzIoMTApLnN0cmluZyhlLmV2ZW50VHlwZSksXCJcIiE9PWUuaWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5pZCksXCIwXCIhPT1lLnRpbWVzdGFtcCYmbi51aW50MzIoMjQpLnVpbnQ2NChlLnRpbWVzdGFtcCksT2JqZWN0LmVudHJpZXMoZS5nYXVnZXMpLmZvckVhY2goKChbZSxyXSk9Pnt0LkFkRGVidWdTdGF0c19HYXVnZXNFbnRyeS5lbmNvZGUoe2tleTplLHZhbHVlOnJ9LG4udWludDMyKDM0KS5mb3JrKCkpLmxkZWxpbSgpfSkpLE9iamVjdC5lbnRyaWVzKGUuY291bnRlcnMpLmZvckVhY2goKChbZSxyXSk9Pnt0LkFkRGVidWdTdGF0c19Db3VudGVyc0VudHJ5LmVuY29kZSh7a2V5OmUsdmFsdWU6cn0sbi51aW50MzIoNDIpLmZvcmsoKSkubGRlbGltKCl9KSksXCJcIiE9PWUuZW52aXJvbm1lbnQmJm4udWludDMyKDUwKS5zdHJpbmcoZS5lbnZpcm9ubWVudCksXCJcIiE9PWUuc2VydmVyUm9sZSYmbi51aW50MzIoNTgpLnN0cmluZyhlLnNlcnZlclJvbGUpLE9iamVjdC5lbnRyaWVzKGUuaGlzdG9ncmFtcykuZm9yRWFjaCgoKFtlLHJdKT0+e3QuQWREZWJ1Z1N0YXRzX0hpc3RvZ3JhbXNFbnRyeS5lbmNvZGUoe2tleTplLHZhbHVlOnJ9LG4udWludDMyKDY2KS5mb3JrKCkpLmxkZWxpbSgpfSkpLE9iamVjdC5lbnRyaWVzKGUudW5pcXVlcykuZm9yRWFjaCgoKFtlLHJdKT0+e3QuQWREZWJ1Z1N0YXRzX1VuaXF1ZXNFbnRyeS5lbmNvZGUoe2tleTplLHZhbHVlOnJ9LG4udWludDMyKDc0KS5mb3JrKCkpLmxkZWxpbSgpfSkpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17ZXZlbnRUeXBlOlwiXCIsaWQ6XCJcIix0aW1lc3RhbXA6XCIwXCIsZ2F1Z2VzOnt9LGNvdW50ZXJzOnt9LGVudmlyb25tZW50OlwiXCIsc2VydmVyUm9sZTpcIlwiLGhpc3RvZ3JhbXM6e30sdW5pcXVlczp7fX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuZXZlbnRUeXBlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmEuaWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS50aW1lc3RhbXA9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6Y29uc3Qgbj10LkFkRGVidWdTdGF0c19HYXVnZXNFbnRyeS5kZWNvZGUocixyLnVpbnQzMigpKTt2b2lkIDAhPT1uLnZhbHVlJiYoYS5nYXVnZXNbbi5rZXldPW4udmFsdWUpO2JyZWFrO2Nhc2UgNTpjb25zdCBpPXQuQWREZWJ1Z1N0YXRzX0NvdW50ZXJzRW50cnkuZGVjb2RlKHIsci51aW50MzIoKSk7dm9pZCAwIT09aS52YWx1ZSYmKGEuY291bnRlcnNbaS5rZXldPWkudmFsdWUpO2JyZWFrO2Nhc2UgNjphLmVudmlyb25tZW50PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmEuc2VydmVyUm9sZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgODpjb25zdCBvPXQuQWREZWJ1Z1N0YXRzX0hpc3RvZ3JhbXNFbnRyeS5kZWNvZGUocixyLnVpbnQzMigpKTt2b2lkIDAhPT1vLnZhbHVlJiYoYS5oaXN0b2dyYW1zW28ua2V5XT1vLnZhbHVlKTticmVhaztjYXNlIDk6Y29uc3Qgcz10LkFkRGVidWdTdGF0c19VbmlxdWVzRW50cnkuZGVjb2RlKHIsci51aW50MzIoKSk7dm9pZCAwIT09cy52YWx1ZSYmKGEudW5pcXVlc1tzLmtleV09cy52YWx1ZSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtldmVudFR5cGU6XCJcIixpZDpcIlwiLHRpbWVzdGFtcDpcIjBcIixnYXVnZXM6e30sY291bnRlcnM6e30sZW52aXJvbm1lbnQ6XCJcIixzZXJ2ZXJSb2xlOlwiXCIsaGlzdG9ncmFtczp7fSx1bmlxdWVzOnt9fTtyZXR1cm4gdC5ldmVudFR5cGU9ZS5ldmVudFR5cGU/P1wiXCIsdC5pZD1lLmlkPz9cIlwiLHQudGltZXN0YW1wPWUudGltZXN0YW1wPz9cIjBcIix0LmdhdWdlcz1PYmplY3QuZW50cmllcyhlLmdhdWdlcz8/e30pLnJlZHVjZSgoKGUsW3Qsbl0pPT4odm9pZCAwIT09biYmKGVbdF09TnVtYmVyKG4pKSxlKSkse30pLHQuY291bnRlcnM9T2JqZWN0LmVudHJpZXMoZS5jb3VudGVycz8/e30pLnJlZHVjZSgoKGUsW3Qsbl0pPT4odm9pZCAwIT09biYmKGVbdF09U3RyaW5nKG4pKSxlKSkse30pLHQuZW52aXJvbm1lbnQ9ZS5lbnZpcm9ubWVudD8/XCJcIix0LnNlcnZlclJvbGU9ZS5zZXJ2ZXJSb2xlPz9cIlwiLHQuaGlzdG9ncmFtcz1PYmplY3QuZW50cmllcyhlLmhpc3RvZ3JhbXM/P3t9KS5yZWR1Y2UoKChlLFt0LG5dKT0+KHZvaWQgMCE9PW4mJihlW3RdPW4pLGUpKSx7fSksdC51bmlxdWVzPU9iamVjdC5lbnRyaWVzKGUudW5pcXVlcz8/e30pLnJlZHVjZSgoKGUsW3Qsbl0pPT4odm9pZCAwIT09biYmKGVbdF09biksZSkpLHt9KSx0fX0sdC5BZERlYnVnU3RhdHNfR2F1Z2VzRW50cnk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUua2V5JiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUua2V5KSwwIT09ZS52YWx1ZSYmdC51aW50MzIoMTcpLmRvdWJsZShlLnZhbHVlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2tleTpcIlwiLHZhbHVlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmtleT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPW4uZG91YmxlKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtrZXk6XCJcIix2YWx1ZTowfTtyZXR1cm4gdC5rZXk9ZS5rZXk/P1wiXCIsdC52YWx1ZT1lLnZhbHVlPz8wLHR9fSx0LkFkRGVidWdTdGF0c19Db3VudGVyc0VudHJ5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmtleSYmdC51aW50MzIoMTApLnN0cmluZyhlLmtleSksXCIwXCIhPT1lLnZhbHVlJiZ0LnVpbnQzMigxNikuaW50NjQoZS52YWx1ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtrZXk6XCJcIix2YWx1ZTpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkua2V5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudmFsdWU9cChuLmludDY0KCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17a2V5OlwiXCIsdmFsdWU6XCIwXCJ9O3JldHVybiB0LmtleT1lLmtleT8/XCJcIix0LnZhbHVlPWUudmFsdWU/P1wiMFwiLHR9fSx0LkFkRGVidWdTdGF0c19IaXN0b2dyYW1zRW50cnk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUua2V5JiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUua2V5KSwwIT09ZS52YWx1ZS5sZW5ndGgmJnQudWludDMyKDE4KS5ieXRlcyhlLnZhbHVlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9bCgpO2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmtleT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPW4uYnl0ZXMoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9bCgpO3JldHVybiB0LmtleT1lLmtleT8/XCJcIix0LnZhbHVlPWUudmFsdWU/P25ldyBVaW50OEFycmF5LHR9fSx0LkFkRGVidWdTdGF0c19VbmlxdWVzRW50cnk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUua2V5JiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUua2V5KSwwIT09ZS52YWx1ZS5sZW5ndGgmJnQudWludDMyKDE4KS5ieXRlcyhlLnZhbHVlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9ZCgpO2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmtleT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPW4uYnl0ZXMoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9ZCgpO3JldHVybiB0LmtleT1lLmtleT8/XCJcIix0LnZhbHVlPWUudmFsdWU/P25ldyBVaW50OEFycmF5LHR9fSx0LlN0YXRzRGVsdGFFdmVudERhdGE9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuZXZlbnROYW1lJiZuLnVpbnQzMigxMCkuc3RyaW5nKGUuZXZlbnROYW1lKSxcIjBcIiE9PWUuZXZlbnRUaW1lJiZuLnVpbnQzMigxNikudWludDY0KGUuZXZlbnRUaW1lKSxcIjBcIiE9PWUuc2VydmVyVHMmJm4udWludDMyKDI0KS51aW50NjQoZS5zZXJ2ZXJUcyksXCJcIiE9PWUucHJpbWFyeUtleSYmbi51aW50MzIoMzQpLnN0cmluZyhlLnByaW1hcnlLZXkpLDAhPT1lLnBhcnRpdGlvbklkJiZuLnVpbnQzMig0MCkuaW50MzIoZS5wYXJ0aXRpb25JZCksT2JqZWN0LmVudHJpZXMoZS5jb3VudGVycykuZm9yRWFjaCgoKFtlLHJdKT0+e3QuU3RhdHNEZWx0YUV2ZW50RGF0YV9Db3VudGVyc0VudHJ5LmVuY29kZSh7a2V5OmUsdmFsdWU6cn0sbi51aW50MzIoNTApLmZvcmsoKSkubGRlbGltKCl9KSksT2JqZWN0LmVudHJpZXMoZS5nYXVnZXMpLmZvckVhY2goKChbZSxyXSk9Pnt0LlN0YXRzRGVsdGFFdmVudERhdGFfR2F1Z2VzRW50cnkuZW5jb2RlKHtrZXk6ZSx2YWx1ZTpyfSxuLnVpbnQzMig1OCkuZm9yaygpKS5sZGVsaW0oKX0pKSxcIlwiIT09ZS5yZWdpb24mJm4udWludDMyKDY2KS5zdHJpbmcoZS5yZWdpb24pLDAhPT1lLnNoYXJkJiZuLnVpbnQzMig3MikuaW50MzIoZS5zaGFyZCksITA9PT1lLmlzQmlsbGFibGUmJm4udWludDMyKDgwKS5ib29sKGUuaXNCaWxsYWJsZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtldmVudE5hbWU6XCJcIixldmVudFRpbWU6XCIwXCIsc2VydmVyVHM6XCIwXCIscHJpbWFyeUtleTpcIlwiLHBhcnRpdGlvbklkOjAsY291bnRlcnM6e30sZ2F1Z2VzOnt9LHJlZ2lvbjpcIlwiLHNoYXJkOjAsaXNCaWxsYWJsZTohMX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuZXZlbnROYW1lPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmEuZXZlbnRUaW1lPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmEuc2VydmVyVHM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6YS5wcmltYXJ5S2V5PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEucGFydGl0aW9uSWQ9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNjpjb25zdCBuPXQuU3RhdHNEZWx0YUV2ZW50RGF0YV9Db3VudGVyc0VudHJ5LmRlY29kZShyLHIudWludDMyKCkpO3ZvaWQgMCE9PW4udmFsdWUmJihhLmNvdW50ZXJzW24ua2V5XT1uLnZhbHVlKTticmVhaztjYXNlIDc6Y29uc3QgaT10LlN0YXRzRGVsdGFFdmVudERhdGFfR2F1Z2VzRW50cnkuZGVjb2RlKHIsci51aW50MzIoKSk7dm9pZCAwIT09aS52YWx1ZSYmKGEuZ2F1Z2VzW2kua2V5XT1pLnZhbHVlKTticmVhaztjYXNlIDg6YS5yZWdpb249ci5zdHJpbmcoKTticmVhaztjYXNlIDk6YS5zaGFyZD1yLmludDMyKCk7YnJlYWs7Y2FzZSAxMDphLmlzQmlsbGFibGU9ci5ib29sKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtldmVudE5hbWU6XCJcIixldmVudFRpbWU6XCIwXCIsc2VydmVyVHM6XCIwXCIscHJpbWFyeUtleTpcIlwiLHBhcnRpdGlvbklkOjAsY291bnRlcnM6e30sZ2F1Z2VzOnt9LHJlZ2lvbjpcIlwiLHNoYXJkOjAsaXNCaWxsYWJsZTohMX07cmV0dXJuIHQuZXZlbnROYW1lPWUuZXZlbnROYW1lPz9cIlwiLHQuZXZlbnRUaW1lPWUuZXZlbnRUaW1lPz9cIjBcIix0LnNlcnZlclRzPWUuc2VydmVyVHM/P1wiMFwiLHQucHJpbWFyeUtleT1lLnByaW1hcnlLZXk/P1wiXCIsdC5wYXJ0aXRpb25JZD1lLnBhcnRpdGlvbklkPz8wLHQuY291bnRlcnM9T2JqZWN0LmVudHJpZXMoZS5jb3VudGVycz8/e30pLnJlZHVjZSgoKGUsW3Qsbl0pPT4odm9pZCAwIT09biYmKGVbdF09U3RyaW5nKG4pKSxlKSkse30pLHQuZ2F1Z2VzPU9iamVjdC5lbnRyaWVzKGUuZ2F1Z2VzPz97fSkucmVkdWNlKCgoZSxbdCxuXSk9Pih2b2lkIDAhPT1uJiYoZVt0XT1OdW1iZXIobikpLGUpKSx7fSksdC5yZWdpb249ZS5yZWdpb24/P1wiXCIsdC5zaGFyZD1lLnNoYXJkPz8wLHQuaXNCaWxsYWJsZT1lLmlzQmlsbGFibGU/PyExLHR9fSx0LlN0YXRzRGVsdGFFdmVudERhdGFfQ291bnRlcnNFbnRyeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIjBcIiE9PWUua2V5JiZ0LnVpbnQzMig4KS5zaW50NjQoZS5rZXkpLFwiMFwiIT09ZS52YWx1ZSYmdC51aW50MzIoMTYpLmludDY0KGUudmFsdWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17a2V5OlwiMFwiLHZhbHVlOlwiMFwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5rZXk9cChuLnNpbnQ2NCgpKTticmVhaztjYXNlIDI6aS52YWx1ZT1wKG4uaW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtrZXk6XCIwXCIsdmFsdWU6XCIwXCJ9O3JldHVybiB0LmtleT1lLmtleT8/XCIwXCIsdC52YWx1ZT1lLnZhbHVlPz9cIjBcIix0fX0sdC5TdGF0c0RlbHRhRXZlbnREYXRhX0dhdWdlc0VudHJ5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiMFwiIT09ZS5rZXkmJnQudWludDMyKDgpLnNpbnQ2NChlLmtleSksMCE9PWUudmFsdWUmJnQudWludDMyKDE3KS5kb3VibGUoZS52YWx1ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtrZXk6XCIwXCIsdmFsdWU6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkua2V5PXAobi5zaW50NjQoKSk7YnJlYWs7Y2FzZSAyOmkudmFsdWU9bi5kb3VibGUoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2tleTpcIjBcIix2YWx1ZTowfTtyZXR1cm4gdC5rZXk9ZS5rZXk/P1wiMFwiLHQudmFsdWU9ZS52YWx1ZT8/MCx0fX0sdC5Vc2VyRnJpZW5kaW5nRXZlbnREYXRhPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmV2ZW50TmFtZSYmdC51aW50MzIoMTApLnN0cmluZyhlLmV2ZW50TmFtZSksXCJcIiE9PWUudXNlcklkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUudXNlcklkKSxcIlwiIT09ZS5mcmllbmRJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLmZyaWVuZElkKSxcIlwiIT09ZS5hY3Rpb24mJnQudWludDMyKDM0KS5zdHJpbmcoZS5hY3Rpb24pLFwiXCIhPT1lLnNvdXJjZSYmdC51aW50MzIoNDIpLnN0cmluZyhlLnNvdXJjZSksXCJcIiE9PWUucHJvZmlsZVBhZ2UmJnQudWludDMyKDUwKS5zdHJpbmcoZS5wcm9maWxlUGFnZSksMCE9PWUuY2VsbEluZGV4JiZ0LnVpbnQzMig1NikuaW50MzIoZS5jZWxsSW5kZXgpLFwiMFwiIT09ZS5hY3Rpb25UcyYmdC51aW50MzIoNjQpLnVpbnQ2NChlLmFjdGlvblRzKSxcIlwiIT09ZS51c2VyUGxhdGZvcm0mJnQudWludDMyKDc0KS5zdHJpbmcoZS51c2VyUGxhdGZvcm0pLFwiXCIhPT1lLnVzZXJTbmFwY2hhdFZlcnNpb24mJnQudWludDMyKDgyKS5zdHJpbmcoZS51c2VyU25hcGNoYXRWZXJzaW9uKSwwIT09ZS51c2VyVGVudXJlJiZ0LnVpbnQzMig4OCkuaW50MzIoZS51c2VyVGVudXJlKSxcIlwiIT09ZS51c2VyQ291bnRyeSYmdC51aW50MzIoOTgpLnN0cmluZyhlLnVzZXJDb3VudHJ5KSxcIlwiIT09ZS51c2VyU3RvcnlQcml2YWN5JiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLnVzZXJTdG9yeVByaXZhY3kpLFwiXCIhPT1lLnVzZXJDb250YWN0TWVQcml2YWN5JiZ0LnVpbnQzMigxMTQpLnN0cmluZyhlLnVzZXJDb250YWN0TWVQcml2YWN5KSxcIlwiIT09ZS5mcmllbmRQbGF0Zm9ybSYmdC51aW50MzIoMTIyKS5zdHJpbmcoZS5mcmllbmRQbGF0Zm9ybSksXCJcIiE9PWUuZnJpZW5kU25hcGNoYXRWZXJzaW9uJiZ0LnVpbnQzMigxMzApLnN0cmluZyhlLmZyaWVuZFNuYXBjaGF0VmVyc2lvbiksMCE9PWUuZnJpZW5kVGVudXJlJiZ0LnVpbnQzMigxMzYpLmludDMyKGUuZnJpZW5kVGVudXJlKSxcIlwiIT09ZS5mcmllbmRDb3VudHJ5JiZ0LnVpbnQzMigxNDYpLnN0cmluZyhlLmZyaWVuZENvdW50cnkpLFwiXCIhPT1lLmZyaWVuZFN0b3J5UHJpdmFjeSYmdC51aW50MzIoMTU0KS5zdHJpbmcoZS5mcmllbmRTdG9yeVByaXZhY3kpLFwiXCIhPT1lLmZyaWVuZENvbnRhY3RNZVByaXZhY3kmJnQudWludDMyKDE2Mikuc3RyaW5nKGUuZnJpZW5kQ29udGFjdE1lUHJpdmFjeSksXCJcIiE9PWUuc3VnZ2VzdFJlYXNvbiYmdC51aW50MzIoMTcwKS5zdHJpbmcoZS5zdWdnZXN0UmVhc29uKSwhMD09PWUuZnJpZW5kU2VhcmNoYWJsZUJ5UGhvbmUmJnQudWludDMyKDE3NikuYm9vbChlLmZyaWVuZFNlYXJjaGFibGVCeVBob25lKSwhMD09PWUuZnJpZW5kVmlld2FibGVJblF1aWNrYWRkJiZ0LnVpbnQzMigxODQpLmJvb2woZS5mcmllbmRWaWV3YWJsZUluUXVpY2thZGQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZXZlbnROYW1lOlwiXCIsdXNlcklkOlwiXCIsZnJpZW5kSWQ6XCJcIixhY3Rpb246XCJcIixzb3VyY2U6XCJcIixwcm9maWxlUGFnZTpcIlwiLGNlbGxJbmRleDowLGFjdGlvblRzOlwiMFwiLHVzZXJQbGF0Zm9ybTpcIlwiLHVzZXJTbmFwY2hhdFZlcnNpb246XCJcIix1c2VyVGVudXJlOjAsdXNlckNvdW50cnk6XCJcIix1c2VyU3RvcnlQcml2YWN5OlwiXCIsdXNlckNvbnRhY3RNZVByaXZhY3k6XCJcIixmcmllbmRQbGF0Zm9ybTpcIlwiLGZyaWVuZFNuYXBjaGF0VmVyc2lvbjpcIlwiLGZyaWVuZFRlbnVyZTowLGZyaWVuZENvdW50cnk6XCJcIixmcmllbmRTdG9yeVByaXZhY3k6XCJcIixmcmllbmRDb250YWN0TWVQcml2YWN5OlwiXCIsc3VnZ2VzdFJlYXNvbjpcIlwiLGZyaWVuZFNlYXJjaGFibGVCeVBob25lOiExLGZyaWVuZFZpZXdhYmxlSW5RdWlja2FkZDohMX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuZXZlbnROYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudXNlcklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuZnJpZW5kSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5hY3Rpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5zb3VyY2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5wcm9maWxlUGFnZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLmNlbGxJbmRleD1uLmludDMyKCk7YnJlYWs7Y2FzZSA4OmkuYWN0aW9uVHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6aS51c2VyUGxhdGZvcm09bi5zdHJpbmcoKTticmVhaztjYXNlIDEwOmkudXNlclNuYXBjaGF0VmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6aS51c2VyVGVudXJlPW4uaW50MzIoKTticmVhaztjYXNlIDEyOmkudXNlckNvdW50cnk9bi5zdHJpbmcoKTticmVhaztjYXNlIDEzOmkudXNlclN0b3J5UHJpdmFjeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTQ6aS51c2VyQ29udGFjdE1lUHJpdmFjeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTU6aS5mcmllbmRQbGF0Zm9ybT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTY6aS5mcmllbmRTbmFwY2hhdFZlcnNpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDE3OmkuZnJpZW5kVGVudXJlPW4uaW50MzIoKTticmVhaztjYXNlIDE4OmkuZnJpZW5kQ291bnRyeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTk6aS5mcmllbmRTdG9yeVByaXZhY3k9bi5zdHJpbmcoKTticmVhaztjYXNlIDIwOmkuZnJpZW5kQ29udGFjdE1lUHJpdmFjeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjE6aS5zdWdnZXN0UmVhc29uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMjppLmZyaWVuZFNlYXJjaGFibGVCeVBob25lPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMjM6aS5mcmllbmRWaWV3YWJsZUluUXVpY2thZGQ9bi5ib29sKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtldmVudE5hbWU6XCJcIix1c2VySWQ6XCJcIixmcmllbmRJZDpcIlwiLGFjdGlvbjpcIlwiLHNvdXJjZTpcIlwiLHByb2ZpbGVQYWdlOlwiXCIsY2VsbEluZGV4OjAsYWN0aW9uVHM6XCIwXCIsdXNlclBsYXRmb3JtOlwiXCIsdXNlclNuYXBjaGF0VmVyc2lvbjpcIlwiLHVzZXJUZW51cmU6MCx1c2VyQ291bnRyeTpcIlwiLHVzZXJTdG9yeVByaXZhY3k6XCJcIix1c2VyQ29udGFjdE1lUHJpdmFjeTpcIlwiLGZyaWVuZFBsYXRmb3JtOlwiXCIsZnJpZW5kU25hcGNoYXRWZXJzaW9uOlwiXCIsZnJpZW5kVGVudXJlOjAsZnJpZW5kQ291bnRyeTpcIlwiLGZyaWVuZFN0b3J5UHJpdmFjeTpcIlwiLGZyaWVuZENvbnRhY3RNZVByaXZhY3k6XCJcIixzdWdnZXN0UmVhc29uOlwiXCIsZnJpZW5kU2VhcmNoYWJsZUJ5UGhvbmU6ITEsZnJpZW5kVmlld2FibGVJblF1aWNrYWRkOiExfTtyZXR1cm4gdC5ldmVudE5hbWU9ZS5ldmVudE5hbWU/P1wiXCIsdC51c2VySWQ9ZS51c2VySWQ/P1wiXCIsdC5mcmllbmRJZD1lLmZyaWVuZElkPz9cIlwiLHQuYWN0aW9uPWUuYWN0aW9uPz9cIlwiLHQuc291cmNlPWUuc291cmNlPz9cIlwiLHQucHJvZmlsZVBhZ2U9ZS5wcm9maWxlUGFnZT8/XCJcIix0LmNlbGxJbmRleD1lLmNlbGxJbmRleD8/MCx0LmFjdGlvblRzPWUuYWN0aW9uVHM/P1wiMFwiLHQudXNlclBsYXRmb3JtPWUudXNlclBsYXRmb3JtPz9cIlwiLHQudXNlclNuYXBjaGF0VmVyc2lvbj1lLnVzZXJTbmFwY2hhdFZlcnNpb24/P1wiXCIsdC51c2VyVGVudXJlPWUudXNlclRlbnVyZT8/MCx0LnVzZXJDb3VudHJ5PWUudXNlckNvdW50cnk/P1wiXCIsdC51c2VyU3RvcnlQcml2YWN5PWUudXNlclN0b3J5UHJpdmFjeT8/XCJcIix0LnVzZXJDb250YWN0TWVQcml2YWN5PWUudXNlckNvbnRhY3RNZVByaXZhY3k/P1wiXCIsdC5mcmllbmRQbGF0Zm9ybT1lLmZyaWVuZFBsYXRmb3JtPz9cIlwiLHQuZnJpZW5kU25hcGNoYXRWZXJzaW9uPWUuZnJpZW5kU25hcGNoYXRWZXJzaW9uPz9cIlwiLHQuZnJpZW5kVGVudXJlPWUuZnJpZW5kVGVudXJlPz8wLHQuZnJpZW5kQ291bnRyeT1lLmZyaWVuZENvdW50cnk/P1wiXCIsdC5mcmllbmRTdG9yeVByaXZhY3k9ZS5mcmllbmRTdG9yeVByaXZhY3k/P1wiXCIsdC5mcmllbmRDb250YWN0TWVQcml2YWN5PWUuZnJpZW5kQ29udGFjdE1lUHJpdmFjeT8/XCJcIix0LnN1Z2dlc3RSZWFzb249ZS5zdWdnZXN0UmVhc29uPz9cIlwiLHQuZnJpZW5kU2VhcmNoYWJsZUJ5UGhvbmU9ZS5mcmllbmRTZWFyY2hhYmxlQnlQaG9uZT8/ITEsdC5mcmllbmRWaWV3YWJsZUluUXVpY2thZGQ9ZS5mcmllbmRWaWV3YWJsZUluUXVpY2thZGQ/PyExLHR9fSx0LkZlYXR1cmVWZWN0b3JEYXRhPXtlbmNvZGUoZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpezAhPT1lLm1vZGVsVmVyc2lvbiYmbi51aW50MzIoOCkuaW50MzIoZS5tb2RlbFZlcnNpb24pLDAhPT1lLmZlYXR1cmVWZWN0b3JMZW5ndGgmJm4udWludDMyKDMyKS5pbnQzMihlLmZlYXR1cmVWZWN0b3JMZW5ndGgpLG4udWludDMyKDQyKS5mb3JrKCk7Zm9yKGNvbnN0IHQgb2YgZS5mZWF0dXJlVmVjdG9yKW4uZG91YmxlKHQpO3JldHVybiBuLmxkZWxpbSgpLCEwPT09ZS5pc0FkdWx0Q29udGVudCYmbi51aW50MzIoNDgpLmJvb2woZS5pc0FkdWx0Q29udGVudCksMCE9PWUuYWR1bHRDb250ZW50UHJvYmFiaWxpdHkmJm4udWludDMyKDU3KS5kb3VibGUoZS5hZHVsdENvbnRlbnRQcm9iYWJpbGl0eSksT2JqZWN0LmVudHJpZXMoZS50YWdXaXRoQ29uZmlkZW5jZSkuZm9yRWFjaCgoKFtlLHJdKT0+e3QuRmVhdHVyZVZlY3RvckRhdGFfVGFnV2l0aENvbmZpZGVuY2VFbnRyeS5lbmNvZGUoe2tleTplLHZhbHVlOnJ9LG4udWludDMyKDc0KS5mb3JrKCkpLmxkZWxpbSgpfSkpLG59LGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bW9kZWxWZXJzaW9uOjAsZmVhdHVyZVZlY3Rvckxlbmd0aDowLGZlYXR1cmVWZWN0b3I6W10saXNBZHVsdENvbnRlbnQ6ITEsYWR1bHRDb250ZW50UHJvYmFiaWxpdHk6MCx0YWdXaXRoQ29uZmlkZW5jZTp7fX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubW9kZWxWZXJzaW9uPXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5mZWF0dXJlVmVjdG9yTGVuZ3RoPXIuaW50MzIoKTticmVhaztjYXNlIDU6aWYoMj09PSg3JmUpKXtjb25zdCBlPXIudWludDMyKCkrci5wb3M7Zm9yKDtyLnBvczxlOylhLmZlYXR1cmVWZWN0b3IucHVzaChyLmRvdWJsZSgpKX1lbHNlIGEuZmVhdHVyZVZlY3Rvci5wdXNoKHIuZG91YmxlKCkpO2JyZWFrO2Nhc2UgNjphLmlzQWR1bHRDb250ZW50PXIuYm9vbCgpO2JyZWFrO2Nhc2UgNzphLmFkdWx0Q29udGVudFByb2JhYmlsaXR5PXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA5OmNvbnN0IG49dC5GZWF0dXJlVmVjdG9yRGF0YV9UYWdXaXRoQ29uZmlkZW5jZUVudHJ5LmRlY29kZShyLHIudWludDMyKCkpO3ZvaWQgMCE9PW4udmFsdWUmJihhLnRhZ1dpdGhDb25maWRlbmNlW24ua2V5XT1uLnZhbHVlKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e21vZGVsVmVyc2lvbjowLGZlYXR1cmVWZWN0b3JMZW5ndGg6MCxmZWF0dXJlVmVjdG9yOltdLGlzQWR1bHRDb250ZW50OiExLGFkdWx0Q29udGVudFByb2JhYmlsaXR5OjAsdGFnV2l0aENvbmZpZGVuY2U6e319O3JldHVybiB0Lm1vZGVsVmVyc2lvbj1lLm1vZGVsVmVyc2lvbj8/MCx0LmZlYXR1cmVWZWN0b3JMZW5ndGg9ZS5mZWF0dXJlVmVjdG9yTGVuZ3RoPz8wLHQuZmVhdHVyZVZlY3Rvcj1lLmZlYXR1cmVWZWN0b3I/Lm1hcCgoZT0+ZSkpfHxbXSx0LmlzQWR1bHRDb250ZW50PWUuaXNBZHVsdENvbnRlbnQ/PyExLHQuYWR1bHRDb250ZW50UHJvYmFiaWxpdHk9ZS5hZHVsdENvbnRlbnRQcm9iYWJpbGl0eT8/MCx0LnRhZ1dpdGhDb25maWRlbmNlPU9iamVjdC5lbnRyaWVzKGUudGFnV2l0aENvbmZpZGVuY2U/P3t9KS5yZWR1Y2UoKChlLFt0LG5dKT0+KHZvaWQgMCE9PW4mJihlW3RdPU51bWJlcihuKSksZSkpLHt9KSx0fX0sdC5GZWF0dXJlVmVjdG9yRGF0YV9UYWdXaXRoQ29uZmlkZW5jZUVudHJ5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmtleSYmdC51aW50MzIoMTApLnN0cmluZyhlLmtleSksMCE9PWUudmFsdWUmJnQudWludDMyKDE3KS5kb3VibGUoZS52YWx1ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtrZXk6XCJcIix2YWx1ZTowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5rZXk9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS52YWx1ZT1uLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17a2V5OlwiXCIsdmFsdWU6MH07cmV0dXJuIHQua2V5PWUua2V5Pz9cIlwiLHQudmFsdWU9ZS52YWx1ZT8/MCx0fX0sdC5BdWRpb0ZpbmdlcnByaW50RGF0YT17ZW5jb2RlKGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKXtcIlwiIT09ZS5tb2RlbFZlcnNpb24mJnQudWludDMyKDEwKS5zdHJpbmcoZS5tb2RlbFZlcnNpb24pLHQudWludDMyKDE4KS5mb3JrKCk7Zm9yKGNvbnN0IG4gb2YgZS5maW5nZXJwcmludHMpdC51aW50MzIobik7dC5sZGVsaW0oKSx0LnVpbnQzMigyNikuZm9yaygpO2Zvcihjb25zdCBuIG9mIGUuZnJhbWVzKXQudWludDMyKG4pO3JldHVybiB0LmxkZWxpbSgpLDAhPT1lLnNwZWN0cm9ncmFtTGVuZ3RoJiZ0LnVpbnQzMigzMikudWludDMyKGUuc3BlY3Ryb2dyYW1MZW5ndGgpLDAhPT1lLndhdkxlbmd0aCYmdC51aW50MzIoNDApLnVpbnQzMihlLndhdkxlbmd0aCksdH0sZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXttb2RlbFZlcnNpb246XCJcIixmaW5nZXJwcmludHM6W10sZnJhbWVzOltdLHNwZWN0cm9ncmFtTGVuZ3RoOjAsd2F2TGVuZ3RoOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLm1vZGVsVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppZigyPT09KDcmZSkpe2NvbnN0IGU9bi51aW50MzIoKStuLnBvcztmb3IoO24ucG9zPGU7KWkuZmluZ2VycHJpbnRzLnB1c2gobi51aW50MzIoKSl9ZWxzZSBpLmZpbmdlcnByaW50cy5wdXNoKG4udWludDMyKCkpO2JyZWFrO2Nhc2UgMzppZigyPT09KDcmZSkpe2NvbnN0IGU9bi51aW50MzIoKStuLnBvcztmb3IoO24ucG9zPGU7KWkuZnJhbWVzLnB1c2gobi51aW50MzIoKSl9ZWxzZSBpLmZyYW1lcy5wdXNoKG4udWludDMyKCkpO2JyZWFrO2Nhc2UgNDppLnNwZWN0cm9ncmFtTGVuZ3RoPW4udWludDMyKCk7YnJlYWs7Y2FzZSA1Omkud2F2TGVuZ3RoPW4udWludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXttb2RlbFZlcnNpb246XCJcIixmaW5nZXJwcmludHM6W10sZnJhbWVzOltdLHNwZWN0cm9ncmFtTGVuZ3RoOjAsd2F2TGVuZ3RoOjB9O3JldHVybiB0Lm1vZGVsVmVyc2lvbj1lLm1vZGVsVmVyc2lvbj8/XCJcIix0LmZpbmdlcnByaW50cz1lLmZpbmdlcnByaW50cz8ubWFwKChlPT5lKSl8fFtdLHQuZnJhbWVzPWUuZnJhbWVzPy5tYXAoKGU9PmUpKXx8W10sdC5zcGVjdHJvZ3JhbUxlbmd0aD1lLnNwZWN0cm9ncmFtTGVuZ3RoPz8wLHQud2F2TGVuZ3RoPWUud2F2TGVuZ3RoPz8wLHR9fSx0LlNoYXJlZFN0b3J5U3VibWlzc2lvbkRhdGE9e2VuY29kZShlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSl7XCJcIiE9PWUuc3VibWlzc2lvbklkJiZuLnVpbnQzMigxMCkuc3RyaW5nKGUuc3VibWlzc2lvbklkKSxcIlwiIT09ZS51c2VybmFtZSYmbi51aW50MzIoMTgpLnN0cmluZyhlLnVzZXJuYW1lKSxcIjBcIiE9PWUudXNlclRpbWVzdGFtcCYmbi51aW50MzIoMjQpLnVpbnQ2NChlLnVzZXJUaW1lc3RhbXApLDAhPT1lLmxhdGl0dWRlJiZuLnVpbnQzMigzMykuZG91YmxlKGUubGF0aXR1ZGUpLDAhPT1lLmxvbmdpdHVkZSYmbi51aW50MzIoNDEpLmRvdWJsZShlLmxvbmdpdHVkZSksXCJcIiE9PWUuY2FwdGlvblRleHQmJm4udWludDMyKDUwKS5zdHJpbmcoZS5jYXB0aW9uVGV4dCksXCIwXCIhPT1lLnNuYXBPcmllbnRhdGlvbiYmbi51aW50MzIoNTYpLnVpbnQ2NChlLnNuYXBPcmllbnRhdGlvbiksMCE9PWUuc25hcExlbmd0aCYmbi51aW50MzIoNjUpLmRvdWJsZShlLnNuYXBMZW5ndGgpLCEwPT09ZS5mcm9udENhbWVyYSYmbi51aW50MzIoNzIpLmJvb2woZS5mcm9udENhbWVyYSksMCE9PWUubWVkaWFUeXBlJiZuLnVpbnQzMig4MCkudWludDMyKGUubWVkaWFUeXBlKSx2b2lkIDAhPT1lLmZlYXR1cmVWZWN0b3JEYXRhJiZ0LkZlYXR1cmVWZWN0b3JEYXRhLmVuY29kZShlLmZlYXR1cmVWZWN0b3JEYXRhLG4udWludDMyKDk4KS5mb3JrKCkpLmxkZWxpbSgpO2Zvcihjb25zdCB0IG9mIGUuc3VibWlzc2lvbklkcyluLnVpbnQzMigxMDYpLnN0cmluZyh0KTtyZXR1cm5cIjBcIiE9PWUubWVzc2FnZVRpbWVzdGFtcCYmbi51aW50MzIoMTEyKS51aW50NjQoZS5tZXNzYWdlVGltZXN0YW1wKSxufSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3N1Ym1pc3Npb25JZDpcIlwiLHVzZXJuYW1lOlwiXCIsdXNlclRpbWVzdGFtcDpcIjBcIixsYXRpdHVkZTowLGxvbmdpdHVkZTowLGNhcHRpb25UZXh0OlwiXCIsc25hcE9yaWVudGF0aW9uOlwiMFwiLHNuYXBMZW5ndGg6MCxmcm9udENhbWVyYTohMSxtZWRpYVR5cGU6MCxmZWF0dXJlVmVjdG9yRGF0YTp2b2lkIDAsc3VibWlzc2lvbklkczpbXSxtZXNzYWdlVGltZXN0YW1wOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zdWJtaXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDI6YS51c2VybmFtZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnVzZXJUaW1lc3RhbXA9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6YS5sYXRpdHVkZT1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNTphLmxvbmdpdHVkZT1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNjphLmNhcHRpb25UZXh0PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmEuc25hcE9yaWVudGF0aW9uPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA4OmEuc25hcExlbmd0aD1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgOTphLmZyb250Q2FtZXJhPXIuYm9vbCgpO2JyZWFrO2Nhc2UgMTA6YS5tZWRpYVR5cGU9ci51aW50MzIoKTticmVhaztjYXNlIDEyOmEuZmVhdHVyZVZlY3RvckRhdGE9dC5GZWF0dXJlVmVjdG9yRGF0YS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDEzOmEuc3VibWlzc2lvbklkcy5wdXNoKHIuc3RyaW5nKCkpO2JyZWFrO2Nhc2UgMTQ6YS5tZXNzYWdlVGltZXN0YW1wPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzdWJtaXNzaW9uSWQ6XCJcIix1c2VybmFtZTpcIlwiLHVzZXJUaW1lc3RhbXA6XCIwXCIsbGF0aXR1ZGU6MCxsb25naXR1ZGU6MCxjYXB0aW9uVGV4dDpcIlwiLHNuYXBPcmllbnRhdGlvbjpcIjBcIixzbmFwTGVuZ3RoOjAsZnJvbnRDYW1lcmE6ITEsbWVkaWFUeXBlOjAsZmVhdHVyZVZlY3RvckRhdGE6dm9pZCAwLHN1Ym1pc3Npb25JZHM6W10sbWVzc2FnZVRpbWVzdGFtcDpcIjBcIn07cmV0dXJuIG4uc3VibWlzc2lvbklkPWUuc3VibWlzc2lvbklkPz9cIlwiLG4udXNlcm5hbWU9ZS51c2VybmFtZT8/XCJcIixuLnVzZXJUaW1lc3RhbXA9ZS51c2VyVGltZXN0YW1wPz9cIjBcIixuLmxhdGl0dWRlPWUubGF0aXR1ZGU/PzAsbi5sb25naXR1ZGU9ZS5sb25naXR1ZGU/PzAsbi5jYXB0aW9uVGV4dD1lLmNhcHRpb25UZXh0Pz9cIlwiLG4uc25hcE9yaWVudGF0aW9uPWUuc25hcE9yaWVudGF0aW9uPz9cIjBcIixuLnNuYXBMZW5ndGg9ZS5zbmFwTGVuZ3RoPz8wLG4uZnJvbnRDYW1lcmE9ZS5mcm9udENhbWVyYT8/ITEsbi5tZWRpYVR5cGU9ZS5tZWRpYVR5cGU/PzAsbi5mZWF0dXJlVmVjdG9yRGF0YT12b2lkIDAhPT1lLmZlYXR1cmVWZWN0b3JEYXRhJiZudWxsIT09ZS5mZWF0dXJlVmVjdG9yRGF0YT90LkZlYXR1cmVWZWN0b3JEYXRhLmZyb21QYXJ0aWFsKGUuZmVhdHVyZVZlY3RvckRhdGEpOnZvaWQgMCxuLnN1Ym1pc3Npb25JZHM9ZS5zdWJtaXNzaW9uSWRzPy5tYXAoKGU9PmUpKXx8W10sbi5tZXNzYWdlVGltZXN0YW1wPWUubWVzc2FnZVRpbWVzdGFtcD8/XCIwXCIsbn19LHQuQXVkaW9TaGFyZWRTdG9yeVN1Ym1pc3Npb25EYXRhPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuc2hhcmVkU3RvcnlTdWJtaXNzaW9uRGF0YSYmdC5TaGFyZWRTdG9yeVN1Ym1pc3Npb25EYXRhLmVuY29kZShlLnNoYXJlZFN0b3J5U3VibWlzc2lvbkRhdGEsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksdm9pZCAwIT09ZS5hdWRpb0ZpbmdlcnByaW50RGF0YSYmdC5BdWRpb0ZpbmdlcnByaW50RGF0YS5lbmNvZGUoZS5hdWRpb0ZpbmdlcnByaW50RGF0YSxuLnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3NoYXJlZFN0b3J5U3VibWlzc2lvbkRhdGE6dm9pZCAwLGF1ZGlvRmluZ2VycHJpbnREYXRhOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc2hhcmVkU3RvcnlTdWJtaXNzaW9uRGF0YT10LlNoYXJlZFN0b3J5U3VibWlzc2lvbkRhdGEuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXVkaW9GaW5nZXJwcmludERhdGE9dC5BdWRpb0ZpbmdlcnByaW50RGF0YS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3NoYXJlZFN0b3J5U3VibWlzc2lvbkRhdGE6dm9pZCAwLGF1ZGlvRmluZ2VycHJpbnREYXRhOnZvaWQgMH07cmV0dXJuIG4uc2hhcmVkU3RvcnlTdWJtaXNzaW9uRGF0YT12b2lkIDAhPT1lLnNoYXJlZFN0b3J5U3VibWlzc2lvbkRhdGEmJm51bGwhPT1lLnNoYXJlZFN0b3J5U3VibWlzc2lvbkRhdGE/dC5TaGFyZWRTdG9yeVN1Ym1pc3Npb25EYXRhLmZyb21QYXJ0aWFsKGUuc2hhcmVkU3RvcnlTdWJtaXNzaW9uRGF0YSk6dm9pZCAwLG4uYXVkaW9GaW5nZXJwcmludERhdGE9dm9pZCAwIT09ZS5hdWRpb0ZpbmdlcnByaW50RGF0YSYmbnVsbCE9PWUuYXVkaW9GaW5nZXJwcmludERhdGE/dC5BdWRpb0ZpbmdlcnByaW50RGF0YS5mcm9tUGFydGlhbChlLmF1ZGlvRmluZ2VycHJpbnREYXRhKTp2b2lkIDAsbn19LHQuQ2VsbD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5jb2x1bW5GYW1pbHkmJnQudWludDMyKDEwKS5zdHJpbmcoZS5jb2x1bW5GYW1pbHkpLFwiXCIhPT1lLmNvbHVtbk5hbWUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jb2x1bW5OYW1lKSxcIlwiIT09ZS52YWx1ZSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnZhbHVlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2NvbHVtbkZhbWlseTpcIlwiLGNvbHVtbk5hbWU6XCJcIix2YWx1ZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5jb2x1bW5GYW1pbHk9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5jb2x1bW5OYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkudmFsdWU9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2NvbHVtbkZhbWlseTpcIlwiLGNvbHVtbk5hbWU6XCJcIix2YWx1ZTpcIlwifTtyZXR1cm4gdC5jb2x1bW5GYW1pbHk9ZS5jb2x1bW5GYW1pbHk/P1wiXCIsdC5jb2x1bW5OYW1lPWUuY29sdW1uTmFtZT8/XCJcIix0LnZhbHVlPWUudmFsdWU/P1wiXCIsdH19LHQuQmlnVGFibGVEYXRhPXtlbmNvZGUoZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpe1wiXCIhPT1lLnRhYmxlTmFtZSYmbi51aW50MzIoMTApLnN0cmluZyhlLnRhYmxlTmFtZSksXCJcIiE9PWUucm93a2V5JiZuLnVpbnQzMigxOCkuc3RyaW5nKGUucm93a2V5KTtmb3IoY29uc3QgciBvZiBlLmNlbGxzKXQuQ2VsbC5lbmNvZGUocixuLnVpbnQzMigyNikuZm9yaygpKS5sZGVsaW0oKTtyZXR1cm4gbn0sZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXt0YWJsZU5hbWU6XCJcIixyb3drZXk6XCJcIixjZWxsczpbXX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEudGFibGVOYW1lPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmEucm93a2V5PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuY2VsbHMucHVzaCh0LkNlbGwuZGVjb2RlKHIsci51aW50MzIoKSkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17dGFibGVOYW1lOlwiXCIscm93a2V5OlwiXCIsY2VsbHM6W119O3JldHVybiBuLnRhYmxlTmFtZT1lLnRhYmxlTmFtZT8/XCJcIixuLnJvd2tleT1lLnJvd2tleT8/XCJcIixuLmNlbGxzPWUuY2VsbHM/Lm1hcCgoZT0+dC5DZWxsLmZyb21QYXJ0aWFsKGUpKSl8fFtdLG59fSx0LlN0cmVhbWluZ0F2YWlsYWJpbGl0eUNhbmFyeUV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiMFwiIT09ZS5jbGllbnRUcyYmdC51aW50MzIoOCkudWludDY0KGUuY2xpZW50VHMpLFwiXCIhPT1lLnVzZXJJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnVzZXJJZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjbGllbnRUczpcIjBcIix1c2VySWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuY2xpZW50VHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDI6aS51c2VySWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2NsaWVudFRzOlwiMFwiLHVzZXJJZDpcIlwifTtyZXR1cm4gdC5jbGllbnRUcz1lLmNsaWVudFRzPz9cIjBcIix0LnVzZXJJZD1lLnVzZXJJZD8/XCJcIix0fX0sdC5TdHJlYW1pbmdDYW5hcnlEYXRhPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiMFwiIT09ZS5jbGllbnRUcyYmdC51aW50MzIoOCkudWludDY0KGUuY2xpZW50VHMpLFwiXCIhPT1lLnVzZXJJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnVzZXJJZCksXCJcIiE9PWUua2V5JiZ0LnVpbnQzMigyNikuc3RyaW5nKGUua2V5KSxcIjBcIiE9PWUudmFsdWUmJnQudWludDMyKDMyKS51aW50NjQoZS52YWx1ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjbGllbnRUczpcIjBcIix1c2VySWQ6XCJcIixrZXk6XCJcIix2YWx1ZTpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuY2xpZW50VHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDI6aS51c2VySWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5rZXk9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS52YWx1ZT1wKG4udWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Y2xpZW50VHM6XCIwXCIsdXNlcklkOlwiXCIsa2V5OlwiXCIsdmFsdWU6XCIwXCJ9O3JldHVybiB0LmNsaWVudFRzPWUuY2xpZW50VHM/P1wiMFwiLHQudXNlcklkPWUudXNlcklkPz9cIlwiLHQua2V5PWUua2V5Pz9cIlwiLHQudmFsdWU9ZS52YWx1ZT8/XCIwXCIsdH19LHQuU3RyZWFtaW5nQ2FuYXJ5RGF0YVRlc3Q9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCIwXCIhPT1lLmNsaWVudFRzJiZ0LnVpbnQzMig4KS51aW50NjQoZS5jbGllbnRUcyksXCJcIiE9PWUudXNlcklkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUudXNlcklkKSxcIlwiIT09ZS5rZXkmJnQudWludDMyKDI2KS5zdHJpbmcoZS5rZXkpLFwiMFwiIT09ZS52YWx1ZSYmdC51aW50MzIoMzIpLnVpbnQ2NChlLnZhbHVlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2NsaWVudFRzOlwiMFwiLHVzZXJJZDpcIlwiLGtleTpcIlwiLHZhbHVlOlwiMFwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5jbGllbnRUcz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMjppLnVzZXJJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmtleT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnZhbHVlPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtjbGllbnRUczpcIjBcIix1c2VySWQ6XCJcIixrZXk6XCJcIix2YWx1ZTpcIjBcIn07cmV0dXJuIHQuY2xpZW50VHM9ZS5jbGllbnRUcz8/XCIwXCIsdC51c2VySWQ9ZS51c2VySWQ/P1wiXCIsdC5rZXk9ZS5rZXk/P1wiXCIsdC52YWx1ZT1lLnZhbHVlPz9cIjBcIix0fX0sdC5TZXJ2ZXJFdmVudERhdGE9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT50LGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17fTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7bi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbDplPT4oe30pfSx0LlNlcnZlckV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmV2ZW50TmFtZSYmbi51aW50MzIoMTApLnN0cmluZyhlLmV2ZW50TmFtZSksMCE9PWUuc2VydmVyVHMmJm4udWludDMyKDI1KS5kb3VibGUoZS5zZXJ2ZXJUcyksXCJcIiE9PWUudXNlcklkJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUudXNlcklkKSxcIlwiIT09ZS51c2VyQWdlbnQmJm4udWludDMyKDQyKS5zdHJpbmcoZS51c2VyQWdlbnQpLFwiXCIhPT1lLmNvdW50cnkmJm4udWludDMyKDUwKS5zdHJpbmcoZS5jb3VudHJ5KSxcIlwiIT09ZS5jaXR5JiZuLnVpbnQzMig1OCkuc3RyaW5nKGUuY2l0eSksXCJcIiE9PWUucmVnaW9uJiZuLnVpbnQzMig2Nikuc3RyaW5nKGUucmVnaW9uKSxcIlwiIT09ZS5ldmVudElkJiZuLnVpbnQzMig3NCkuc3RyaW5nKGUuZXZlbnRJZCksXCJcIiE9PWUuaW5zdGFuY2VJZCYmbi51aW50MzIoODIpLnN0cmluZyhlLmluc3RhbmNlSWQpLFwiMFwiIT09ZS5zZXF1ZW5jZUlkJiZuLnVpbnQzMig4OCkudWludDY0KGUuc2VxdWVuY2VJZCksXCJcIiE9PWUub3NUeXBlJiZuLnVpbnQzMig5OCkuc3RyaW5nKGUub3NUeXBlKSxcIlwiIT09ZS5vc1ZlcnNpb24mJm4udWludDMyKDEwNikuc3RyaW5nKGUub3NWZXJzaW9uKSxcIlwiIT09ZS5hcHBWZXJzaW9uJiZuLnVpbnQzMigxMTQpLnN0cmluZyhlLmFwcFZlcnNpb24pLFwiXCIhPT1lLmFwcEJ1aWxkJiZuLnVpbnQzMigxMjIpLnN0cmluZyhlLmFwcEJ1aWxkKSwwIT09ZS5zZXJ2ZXJVcGxvYWRUcyYmbi51aW50MzIoODA5KS5kb3VibGUoZS5zZXJ2ZXJVcGxvYWRUcyksMCE9PWUuZXZlbnRUaW1lJiZuLnVpbnQzMig4MTcpLmRvdWJsZShlLmV2ZW50VGltZSksMCE9PWUuc2VydmVyUmVjZWlwdFRpbWUmJm4udWludDMyKDgyNSkuZG91YmxlKGUuc2VydmVyUmVjZWlwdFRpbWUpLFwiMFwiIT09ZS5tYXhTZXF1ZW5jZUlkT25JbnN0YW5jZSYmbi51aW50MzIoODMyKS51aW50NjQoZS5tYXhTZXF1ZW5jZUlkT25JbnN0YW5jZSksXCJcIiE9PWUudXNlckd1aWQmJm4udWludDMyKDg1MCkuc3RyaW5nKGUudXNlckd1aWQpLDAhPT1lLmNvbGxlY3Rpb24mJm4udWludDMyKDg3MikuaW50MzIoZS5jb2xsZWN0aW9uKSxcIlwiIT09ZS5zZXJ2aWNlSWQmJm4udWludDMyKDg5MCkuc3RyaW5nKGUuc2VydmljZUlkKSwwIT09ZS5hcHBUeXBlJiZuLnVpbnQzMig5MTIpLmludDMyKGUuYXBwVHlwZSksXCJcIiE9PWUuc3BlY3RydW1JbnN0YW5jZUlkJiZuLnVpbnQzMig5MzApLnN0cmluZyhlLnNwZWN0cnVtSW5zdGFuY2VJZCksXCIwXCIhPT1lLnNwZWN0cnVtU2VxdWVuY2VJZCYmbi51aW50MzIoOTQ0KS51aW50NjQoZS5zcGVjdHJ1bVNlcXVlbmNlSWQpLHZvaWQgMCE9PWUuZXZlbnREYXRhJiZ0LlNlcnZlckV2ZW50RGF0YS5lbmNvZGUoZS5ldmVudERhdGEsbi51aW50MzIoODAyKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17ZXZlbnROYW1lOlwiXCIsc2VydmVyVHM6MCx1c2VySWQ6XCJcIix1c2VyQWdlbnQ6XCJcIixjb3VudHJ5OlwiXCIsY2l0eTpcIlwiLHJlZ2lvbjpcIlwiLGV2ZW50SWQ6XCJcIixpbnN0YW5jZUlkOlwiXCIsc2VxdWVuY2VJZDpcIjBcIixvc1R5cGU6XCJcIixvc1ZlcnNpb246XCJcIixhcHBWZXJzaW9uOlwiXCIsYXBwQnVpbGQ6XCJcIixzZXJ2ZXJVcGxvYWRUczowLGV2ZW50VGltZTowLHNlcnZlclJlY2VpcHRUaW1lOjAsbWF4U2VxdWVuY2VJZE9uSW5zdGFuY2U6XCIwXCIsdXNlckd1aWQ6XCJcIixjb2xsZWN0aW9uOjAsc2VydmljZUlkOlwiXCIsYXBwVHlwZTowLHNwZWN0cnVtSW5zdGFuY2VJZDpcIlwiLHNwZWN0cnVtU2VxdWVuY2VJZDpcIjBcIixldmVudERhdGE6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5ldmVudE5hbWU9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5zZXJ2ZXJUcz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNDphLnVzZXJJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLnVzZXJBZ2VudD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNjphLmNvdW50cnk9ci5zdHJpbmcoKTticmVhaztjYXNlIDc6YS5jaXR5PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA4OmEucmVnaW9uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmEuZXZlbnRJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTA6YS5pbnN0YW5jZUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMTphLnNlcXVlbmNlSWQ9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDEyOmEub3NUeXBlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMzphLm9zVmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTQ6YS5hcHBWZXJzaW9uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTphLmFwcEJ1aWxkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDE6YS5zZXJ2ZXJVcGxvYWRUcz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTAyOmEuZXZlbnRUaW1lPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAxMDM6YS5zZXJ2ZXJSZWNlaXB0VGltZT1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTA0OmEubWF4U2VxdWVuY2VJZE9uSW5zdGFuY2U9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDEwNjphLnVzZXJHdWlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDk6YS5jb2xsZWN0aW9uPXIuaW50MzIoKTticmVhaztjYXNlIDExMTphLnNlcnZpY2VJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE0OmEuYXBwVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAxMTY6YS5zcGVjdHJ1bUluc3RhbmNlSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDExODphLnNwZWN0cnVtU2VxdWVuY2VJZD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTAwOmEuZXZlbnREYXRhPXQuU2VydmVyRXZlbnREYXRhLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17ZXZlbnROYW1lOlwiXCIsc2VydmVyVHM6MCx1c2VySWQ6XCJcIix1c2VyQWdlbnQ6XCJcIixjb3VudHJ5OlwiXCIsY2l0eTpcIlwiLHJlZ2lvbjpcIlwiLGV2ZW50SWQ6XCJcIixpbnN0YW5jZUlkOlwiXCIsc2VxdWVuY2VJZDpcIjBcIixvc1R5cGU6XCJcIixvc1ZlcnNpb246XCJcIixhcHBWZXJzaW9uOlwiXCIsYXBwQnVpbGQ6XCJcIixzZXJ2ZXJVcGxvYWRUczowLGV2ZW50VGltZTowLHNlcnZlclJlY2VpcHRUaW1lOjAsbWF4U2VxdWVuY2VJZE9uSW5zdGFuY2U6XCIwXCIsdXNlckd1aWQ6XCJcIixjb2xsZWN0aW9uOjAsc2VydmljZUlkOlwiXCIsYXBwVHlwZTowLHNwZWN0cnVtSW5zdGFuY2VJZDpcIlwiLHNwZWN0cnVtU2VxdWVuY2VJZDpcIjBcIixldmVudERhdGE6dm9pZCAwfTtyZXR1cm4gbi5ldmVudE5hbWU9ZS5ldmVudE5hbWU/P1wiXCIsbi5zZXJ2ZXJUcz1lLnNlcnZlclRzPz8wLG4udXNlcklkPWUudXNlcklkPz9cIlwiLG4udXNlckFnZW50PWUudXNlckFnZW50Pz9cIlwiLG4uY291bnRyeT1lLmNvdW50cnk/P1wiXCIsbi5jaXR5PWUuY2l0eT8/XCJcIixuLnJlZ2lvbj1lLnJlZ2lvbj8/XCJcIixuLmV2ZW50SWQ9ZS5ldmVudElkPz9cIlwiLG4uaW5zdGFuY2VJZD1lLmluc3RhbmNlSWQ/P1wiXCIsbi5zZXF1ZW5jZUlkPWUuc2VxdWVuY2VJZD8/XCIwXCIsbi5vc1R5cGU9ZS5vc1R5cGU/P1wiXCIsbi5vc1ZlcnNpb249ZS5vc1ZlcnNpb24/P1wiXCIsbi5hcHBWZXJzaW9uPWUuYXBwVmVyc2lvbj8/XCJcIixuLmFwcEJ1aWxkPWUuYXBwQnVpbGQ/P1wiXCIsbi5zZXJ2ZXJVcGxvYWRUcz1lLnNlcnZlclVwbG9hZFRzPz8wLG4uZXZlbnRUaW1lPWUuZXZlbnRUaW1lPz8wLG4uc2VydmVyUmVjZWlwdFRpbWU9ZS5zZXJ2ZXJSZWNlaXB0VGltZT8/MCxuLm1heFNlcXVlbmNlSWRPbkluc3RhbmNlPWUubWF4U2VxdWVuY2VJZE9uSW5zdGFuY2U/P1wiMFwiLG4udXNlckd1aWQ9ZS51c2VyR3VpZD8/XCJcIixuLmNvbGxlY3Rpb249ZS5jb2xsZWN0aW9uPz8wLG4uc2VydmljZUlkPWUuc2VydmljZUlkPz9cIlwiLG4uYXBwVHlwZT1lLmFwcFR5cGU/PzAsbi5zcGVjdHJ1bUluc3RhbmNlSWQ9ZS5zcGVjdHJ1bUluc3RhbmNlSWQ/P1wiXCIsbi5zcGVjdHJ1bVNlcXVlbmNlSWQ9ZS5zcGVjdHJ1bVNlcXVlbmNlSWQ/P1wiMFwiLG4uZXZlbnREYXRhPXZvaWQgMCE9PWUuZXZlbnREYXRhJiZudWxsIT09ZS5ldmVudERhdGE/dC5TZXJ2ZXJFdmVudERhdGEuZnJvbVBhcnRpYWwoZS5ldmVudERhdGEpOnZvaWQgMCxufX0sdC5BYkFkc01hbmFnZXJBbGxvY2F0aW9uTG9nRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubG9nZ2luZ0lkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUubG9nZ2luZ0lkKSxcIjBcIiE9PWUubG9nZ2luZ0lkVHlwZSYmdC51aW50MzIoMTYpLnVpbnQ2NChlLmxvZ2dpbmdJZFR5cGUpLFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuZXhwZXJpbWVudElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2xvZ2dpbmdJZDpcIlwiLGxvZ2dpbmdJZFR5cGU6XCIwXCIsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmxvZ2dpbmdJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmxvZ2dpbmdJZFR5cGU9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2xvZ2dpbmdJZDpcIlwiLGxvZ2dpbmdJZFR5cGU6XCIwXCIsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCJ9O3JldHVybiB0LmxvZ2dpbmdJZD1lLmxvZ2dpbmdJZD8/XCJcIix0LmxvZ2dpbmdJZFR5cGU9ZS5sb2dnaW5nSWRUeXBlPz9cIjBcIix0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0fX0sdC5BYkFkc01hbmFnZXJBbGxvY2F0aW9uTG9nRXZlbnRTaGFkb3c9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubG9nZ2luZ0lkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUubG9nZ2luZ0lkKSxcIjBcIiE9PWUubG9nZ2luZ0lkVHlwZSYmdC51aW50MzIoMTYpLnVpbnQ2NChlLmxvZ2dpbmdJZFR5cGUpLFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuZXhwZXJpbWVudElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2xvZ2dpbmdJZDpcIlwiLGxvZ2dpbmdJZFR5cGU6XCIwXCIsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmxvZ2dpbmdJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmxvZ2dpbmdJZFR5cGU9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2xvZ2dpbmdJZDpcIlwiLGxvZ2dpbmdJZFR5cGU6XCIwXCIsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCJ9O3JldHVybiB0LmxvZ2dpbmdJZD1lLmxvZ2dpbmdJZD8/XCJcIix0LmxvZ2dpbmdJZFR5cGU9ZS5sb2dnaW5nSWRUeXBlPz9cIjBcIix0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0fX0sdC5BYkFkc01hbmFnZXJMb2dFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5sb2dnaW5nSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5sb2dnaW5nSWQpLFwiMFwiIT09ZS5sb2dnaW5nSWRUeXBlJiZ0LnVpbnQzMigxNikudWludDY0KGUubG9nZ2luZ0lkVHlwZSksXCJcIiE9PWUuc3R1ZHlOYW1lJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuc3R1ZHlOYW1lKSxcIlwiIT09ZS5leHBlcmltZW50SWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5leHBlcmltZW50SWQpLDAhPT1lLnRyaWdnZXJUeXBlJiZ0LnVpbnQzMig0MCkuaW50MzIoZS50cmlnZ2VyVHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtsb2dnaW5nSWQ6XCJcIixsb2dnaW5nSWRUeXBlOlwiMFwiLHN0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmxvZ2dpbmdJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmxvZ2dpbmdJZFR5cGU9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS50cmlnZ2VyVHlwZT1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtsb2dnaW5nSWQ6XCJcIixsb2dnaW5nSWRUeXBlOlwiMFwiLHN0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjB9O3JldHVybiB0LmxvZ2dpbmdJZD1lLmxvZ2dpbmdJZD8/XCJcIix0LmxvZ2dpbmdJZFR5cGU9ZS5sb2dnaW5nSWRUeXBlPz9cIjBcIix0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LnRyaWdnZXJUeXBlPWUudHJpZ2dlclR5cGU/PzAsdH19LHQuQWJBZHNNYW5hZ2VyTG9nRXZlbnRTaGFkb3c9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubG9nZ2luZ0lkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUubG9nZ2luZ0lkKSxcIjBcIiE9PWUubG9nZ2luZ0lkVHlwZSYmdC51aW50MzIoMjQpLnVpbnQ2NChlLmxvZ2dpbmdJZFR5cGUpLFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMzQpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuZXhwZXJpbWVudElkKSwwIT09ZS50cmlnZ2VyVHlwZSYmdC51aW50MzIoNDgpLmludDMyKGUudHJpZ2dlclR5cGUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bG9nZ2luZ0lkOlwiXCIsbG9nZ2luZ0lkVHlwZTpcIjBcIixzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0cmlnZ2VyVHlwZTowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDI6aS5sb2dnaW5nSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5sb2dnaW5nSWRUeXBlPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA0Omkuc3R1ZHlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuZXhwZXJpbWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkudHJpZ2dlclR5cGU9bi5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17bG9nZ2luZ0lkOlwiXCIsbG9nZ2luZ0lkVHlwZTpcIjBcIixzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0cmlnZ2VyVHlwZTowfTtyZXR1cm4gdC5sb2dnaW5nSWQ9ZS5sb2dnaW5nSWQ/P1wiXCIsdC5sb2dnaW5nSWRUeXBlPWUubG9nZ2luZ0lkVHlwZT8/XCIwXCIsdC5zdHVkeU5hbWU9ZS5zdHVkeU5hbWU/P1wiXCIsdC5leHBlcmltZW50SWQ9ZS5leHBlcmltZW50SWQ/P1wiXCIsdC50cmlnZ2VyVHlwZT1lLnRyaWdnZXJUeXBlPz8wLHR9fSx0LkFiRGV2aWNlVHJpZ2dlcj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdHVkeU5hbWUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zdHVkeU5hbWUpLFwiXCIhPT1lLmV4cGVyaW1lbnRJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmV4cGVyaW1lbnRJZCksMCE9PWUudHJpZ2dlclR5cGUmJnQudWludDMyKDI0KS5pbnQzMihlLnRyaWdnZXJUeXBlKSxcIlwiIT09ZS5jbGllbnRJZCYmdC51aW50MzIoMzQpLnN0cmluZyhlLmNsaWVudElkKSxcIlwiIT09ZS5jb25maWdEZXZpY2VJZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmNvbmZpZ0RldmljZUlkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjAsY2xpZW50SWQ6XCJcIixjb25maWdEZXZpY2VJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS50cmlnZ2VyVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA0OmkuY2xpZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5jb25maWdEZXZpY2VJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsdHJpZ2dlclR5cGU6MCxjbGllbnRJZDpcIlwiLGNvbmZpZ0RldmljZUlkOlwiXCJ9O3JldHVybiB0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LnRyaWdnZXJUeXBlPWUudHJpZ2dlclR5cGU/PzAsdC5jbGllbnRJZD1lLmNsaWVudElkPz9cIlwiLHQuY29uZmlnRGV2aWNlSWQ9ZS5jb25maWdEZXZpY2VJZD8/XCJcIix0fX0sdC5BYkRldmljZVRyaWdnZXJTaGFkb3c9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc3R1ZHlOYW1lJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3R1ZHlOYW1lKSxcIlwiIT09ZS5leHBlcmltZW50SWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5leHBlcmltZW50SWQpLDAhPT1lLnRyaWdnZXJUeXBlJiZ0LnVpbnQzMigyNCkuaW50MzIoZS50cmlnZ2VyVHlwZSksXCJcIiE9PWUuY2xpZW50SWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5jbGllbnRJZCksXCJcIiE9PWUuY29uZmlnRGV2aWNlSWQmJnQudWludDMyKDQyKS5zdHJpbmcoZS5jb25maWdEZXZpY2VJZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0cmlnZ2VyVHlwZTowLGNsaWVudElkOlwiXCIsY29uZmlnRGV2aWNlSWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc3R1ZHlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZXhwZXJpbWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkudHJpZ2dlclR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNDppLmNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuY29uZmlnRGV2aWNlSWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjAsY2xpZW50SWQ6XCJcIixjb25maWdEZXZpY2VJZDpcIlwifTtyZXR1cm4gdC5zdHVkeU5hbWU9ZS5zdHVkeU5hbWU/P1wiXCIsdC5leHBlcmltZW50SWQ9ZS5leHBlcmltZW50SWQ/P1wiXCIsdC50cmlnZ2VyVHlwZT1lLnRyaWdnZXJUeXBlPz8wLHQuY2xpZW50SWQ9ZS5jbGllbnRJZD8/XCJcIix0LmNvbmZpZ0RldmljZUlkPWUuY29uZmlnRGV2aWNlSWQ/P1wiXCIsdH19LHQuQWJNaXNjaGllZlNlcnZlckV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMTApLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZXhwZXJpbWVudElkKSwwIT09ZS50cmlnZ2VyVHlwZSYmdC51aW50MzIoMjQpLmludDMyKGUudHJpZ2dlclR5cGUpLFwiXCIhPT1lLm1pc2NoaWVmSWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5taXNjaGllZklkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjAsbWlzY2hpZWZJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS50cmlnZ2VyVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA0OmkubWlzY2hpZWZJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsdHJpZ2dlclR5cGU6MCxtaXNjaGllZklkOlwiXCJ9O3JldHVybiB0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LnRyaWdnZXJUeXBlPWUudHJpZ2dlclR5cGU/PzAsdC5taXNjaGllZklkPWUubWlzY2hpZWZJZD8/XCJcIix0fX0sdC5BYlVzZXJUcmlnZ2VyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMTApLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZXhwZXJpbWVudElkKSwwIT09ZS50cmlnZ2VyVHlwZSYmdC51aW50MzIoMjQpLmludDMyKGUudHJpZ2dlclR5cGUpLFwiXCIhPT1lLmNvbmZpZ0RldmljZUlkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuY29uZmlnRGV2aWNlSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsdHJpZ2dlclR5cGU6MCxjb25maWdEZXZpY2VJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS50cmlnZ2VyVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA0OmkuY29uZmlnRGV2aWNlSWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjAsY29uZmlnRGV2aWNlSWQ6XCJcIn07cmV0dXJuIHQuc3R1ZHlOYW1lPWUuc3R1ZHlOYW1lPz9cIlwiLHQuZXhwZXJpbWVudElkPWUuZXhwZXJpbWVudElkPz9cIlwiLHQudHJpZ2dlclR5cGU9ZS50cmlnZ2VyVHlwZT8/MCx0LmNvbmZpZ0RldmljZUlkPWUuY29uZmlnRGV2aWNlSWQ/P1wiXCIsdH19LHQuQWJVc2VyVHJpZ2dlckZha2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc3R1ZHlOYW1lJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3R1ZHlOYW1lKSxcIlwiIT09ZS5leHBlcmltZW50SWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5leHBlcmltZW50SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnN0dWR5TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmV4cGVyaW1lbnRJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCJ9O3JldHVybiB0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0fX0sdC5BYlVzZXJUcmlnZ2VyU2hhZG93PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuZXhwZXJpbWVudElkKSwwIT09ZS50cmlnZ2VyVHlwZSYmdC51aW50MzIoMzIpLmludDMyKGUudHJpZ2dlclR5cGUpLFwiXCIhPT1lLmNvbmZpZ0RldmljZUlkJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuY29uZmlnRGV2aWNlSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsdHJpZ2dlclR5cGU6MCxjb25maWdEZXZpY2VJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDI6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS50cmlnZ2VyVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA1OmkuY29uZmlnRGV2aWNlSWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjAsY29uZmlnRGV2aWNlSWQ6XCJcIn07cmV0dXJuIHQuc3R1ZHlOYW1lPWUuc3R1ZHlOYW1lPz9cIlwiLHQuZXhwZXJpbWVudElkPWUuZXhwZXJpbWVudElkPz9cIlwiLHQudHJpZ2dlclR5cGU9ZS50cmlnZ2VyVHlwZT8/MCx0LmNvbmZpZ0RldmljZUlkPWUuY29uZmlnRGV2aWNlSWQ/P1wiXCIsdH19LHQuQWJXZWJQbGF0Zm9ybUFsbG9jYXRpb25FdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS53ZWJDbGllbnRJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLndlYkNsaWVudElkKSxcIlwiIT09ZS5zdHVkeU5hbWUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5zdHVkeU5hbWUpLFwiXCIhPT1lLmV4cGVyaW1lbnRJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLmV4cGVyaW1lbnRJZCksXCJcIiE9PWUuYnJvd3Nlck5hbWUmJnQudWludDMyKDM0KS5zdHJpbmcoZS5icm93c2VyTmFtZSksXCJcIiE9PWUubG9jYWxlJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUubG9jYWxlKSxcIlwiIT09ZS5kZXZpY2VOYW1lJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuZGV2aWNlTmFtZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt3ZWJDbGllbnRJZDpcIlwiLHN0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLGJyb3dzZXJOYW1lOlwiXCIsbG9jYWxlOlwiXCIsZGV2aWNlTmFtZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS53ZWJDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnN0dWR5TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmV4cGVyaW1lbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmJyb3dzZXJOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkubG9jYWxlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkuZGV2aWNlTmFtZT1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17d2ViQ2xpZW50SWQ6XCJcIixzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIixicm93c2VyTmFtZTpcIlwiLGxvY2FsZTpcIlwiLGRldmljZU5hbWU6XCJcIn07cmV0dXJuIHQud2ViQ2xpZW50SWQ9ZS53ZWJDbGllbnRJZD8/XCJcIix0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LmJyb3dzZXJOYW1lPWUuYnJvd3Nlck5hbWU/P1wiXCIsdC5sb2NhbGU9ZS5sb2NhbGU/P1wiXCIsdC5kZXZpY2VOYW1lPWUuZGV2aWNlTmFtZT8/XCJcIix0fX0sdC5BYldlYlBsYXRmb3JtQWxsb2NhdGlvbkV2ZW50U2hhZG93PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLndlYkNsaWVudElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUud2ViQ2xpZW50SWQpLFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuZXhwZXJpbWVudElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3dlYkNsaWVudElkOlwiXCIsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLndlYkNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuc3R1ZHlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuZXhwZXJpbWVudElkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt3ZWJDbGllbnRJZDpcIlwiLHN0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwifTtyZXR1cm4gdC53ZWJDbGllbnRJZD1lLndlYkNsaWVudElkPz9cIlwiLHQuc3R1ZHlOYW1lPWUuc3R1ZHlOYW1lPz9cIlwiLHQuZXhwZXJpbWVudElkPWUuZXhwZXJpbWVudElkPz9cIlwiLHR9fSx0LkFiV2ViUGxhdGZvcm1TZXJ2ZXJUcmlnZ2VyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLndlYkNsaWVudElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUud2ViQ2xpZW50SWQpLFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuZXhwZXJpbWVudElkKSwwIT09ZS50cmlnZ2VyVHlwZSYmdC51aW50MzIoMzIpLmludDMyKGUudHJpZ2dlclR5cGUpLFwiXCIhPT1lLmJyb3dzZXJOYW1lJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuYnJvd3Nlck5hbWUpLFwiXCIhPT1lLmxvY2FsZSYmdC51aW50MzIoNTApLnN0cmluZyhlLmxvY2FsZSksXCJcIiE9PWUuZGV2aWNlTmFtZSYmdC51aW50MzIoNTgpLnN0cmluZyhlLmRldmljZU5hbWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17d2ViQ2xpZW50SWQ6XCJcIixzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0cmlnZ2VyVHlwZTowLGJyb3dzZXJOYW1lOlwiXCIsbG9jYWxlOlwiXCIsZGV2aWNlTmFtZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS53ZWJDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnN0dWR5TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmV4cGVyaW1lbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnRyaWdnZXJUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDU6aS5icm93c2VyTmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLmxvY2FsZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLmRldmljZU5hbWU9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3dlYkNsaWVudElkOlwiXCIsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsdHJpZ2dlclR5cGU6MCxicm93c2VyTmFtZTpcIlwiLGxvY2FsZTpcIlwiLGRldmljZU5hbWU6XCJcIn07cmV0dXJuIHQud2ViQ2xpZW50SWQ9ZS53ZWJDbGllbnRJZD8/XCJcIix0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LnRyaWdnZXJUeXBlPWUudHJpZ2dlclR5cGU/PzAsdC5icm93c2VyTmFtZT1lLmJyb3dzZXJOYW1lPz9cIlwiLHQubG9jYWxlPWUubG9jYWxlPz9cIlwiLHQuZGV2aWNlTmFtZT1lLmRldmljZU5hbWU/P1wiXCIsdH19LHQuQWJXZWJQbGF0Zm9ybVNlcnZlclRyaWdnZXJTaGFkb3c9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUud2ViQ2xpZW50SWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS53ZWJDbGllbnRJZCksXCJcIiE9PWUuc3R1ZHlOYW1lJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuc3R1ZHlOYW1lKSxcIlwiIT09ZS5leHBlcmltZW50SWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5leHBlcmltZW50SWQpLDAhPT1lLnRyaWdnZXJUeXBlJiZ0LnVpbnQzMig0MCkuaW50MzIoZS50cmlnZ2VyVHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt3ZWJDbGllbnRJZDpcIlwiLHN0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMjppLndlYkNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc3R1ZHlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuZXhwZXJpbWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkudHJpZ2dlclR5cGU9bi5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17d2ViQ2xpZW50SWQ6XCJcIixzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0cmlnZ2VyVHlwZTowfTtyZXR1cm4gdC53ZWJDbGllbnRJZD1lLndlYkNsaWVudElkPz9cIlwiLHQuc3R1ZHlOYW1lPWUuc3R1ZHlOYW1lPz9cIlwiLHQuZXhwZXJpbWVudElkPWUuZXhwZXJpbWVudElkPz9cIlwiLHQudHJpZ2dlclR5cGU9ZS50cmlnZ2VyVHlwZT8/MCx0fX0sdC5BYldlYlVzZXJFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdHVkeU5hbWUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zdHVkeU5hbWUpLFwiXCIhPT1lLmV4cGVyaW1lbnRJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmV4cGVyaW1lbnRJZCksMCE9PWUudHJpZ2dlclR5cGUmJnQudWludDMyKDI0KS5pbnQzMihlLnRyaWdnZXJUeXBlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnN0dWR5TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmV4cGVyaW1lbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnRyaWdnZXJUeXBlPW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjB9O3JldHVybiB0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LnRyaWdnZXJUeXBlPWUudHJpZ2dlclR5cGU/PzAsdH19LHQuQWJXZWJVc2VyRXZlbnRTaGFkb3c9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUud2ViQ2xpZW50SWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS53ZWJDbGllbnRJZCksXCJcIiE9PWUuc3R1ZHlOYW1lJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuc3R1ZHlOYW1lKSxcIlwiIT09ZS5leHBlcmltZW50SWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5leHBlcmltZW50SWQpLDAhPT1lLnRyaWdnZXJUeXBlJiZ0LnVpbnQzMig0MCkuaW50MzIoZS50cmlnZ2VyVHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt3ZWJDbGllbnRJZDpcIlwiLHN0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLHRyaWdnZXJUeXBlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMjppLndlYkNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc3R1ZHlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuZXhwZXJpbWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkudHJpZ2dlclR5cGU9bi5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17d2ViQ2xpZW50SWQ6XCJcIixzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0cmlnZ2VyVHlwZTowfTtyZXR1cm4gdC53ZWJDbGllbnRJZD1lLndlYkNsaWVudElkPz9cIlwiLHQuc3R1ZHlOYW1lPWUuc3R1ZHlOYW1lPz9cIlwiLHQuZXhwZXJpbWVudElkPWUuZXhwZXJpbWVudElkPz9cIlwiLHQudHJpZ2dlclR5cGU9ZS50cmlnZ2VyVHlwZT8/MCx0fX0sdC5BY2NvdW50c1NlcnZlckV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiMFwiIT09ZS5lbGFwc2VkQWN0aW9uVGltZU1zJiZ0LnVpbnQzMig4KS51aW50NjQoZS5lbGFwc2VkQWN0aW9uVGltZU1zKSxcIlwiIT09ZS53ZWJDbGllbnRJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLndlYkNsaWVudElkKSwwIT09ZS5hY3Rpb24mJnQudWludDMyKDMyKS5pbnQzMihlLmFjdGlvbiksMCE9PWUucmVzcG9uc2UmJnQudWludDMyKDQwKS5pbnQzMihlLnJlc3BvbnNlKSxcIjBcIiE9PWUuc3RhdHVzQ29kZSYmdC51aW50MzIoNDgpLnVpbnQ2NChlLnN0YXR1c0NvZGUpLFwiXCIhPT1lLmV4cGVyaW1lbnRJZHMmJnQudWludDMyKDU4KS5zdHJpbmcoZS5leHBlcmltZW50SWRzKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2VsYXBzZWRBY3Rpb25UaW1lTXM6XCIwXCIsd2ViQ2xpZW50SWQ6XCJcIixhY3Rpb246MCxyZXNwb25zZTowLHN0YXR1c0NvZGU6XCIwXCIsZXhwZXJpbWVudElkczpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5lbGFwc2VkQWN0aW9uVGltZU1zPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmkud2ViQ2xpZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5hY3Rpb249bi5pbnQzMigpO2JyZWFrO2Nhc2UgNTppLnJlc3BvbnNlPW4uaW50MzIoKTticmVhaztjYXNlIDY6aS5zdGF0dXNDb2RlPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA3OmkuZXhwZXJpbWVudElkcz1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZWxhcHNlZEFjdGlvblRpbWVNczpcIjBcIix3ZWJDbGllbnRJZDpcIlwiLGFjdGlvbjowLHJlc3BvbnNlOjAsc3RhdHVzQ29kZTpcIjBcIixleHBlcmltZW50SWRzOlwiXCJ9O3JldHVybiB0LmVsYXBzZWRBY3Rpb25UaW1lTXM9ZS5lbGFwc2VkQWN0aW9uVGltZU1zPz9cIjBcIix0LndlYkNsaWVudElkPWUud2ViQ2xpZW50SWQ/P1wiXCIsdC5hY3Rpb249ZS5hY3Rpb24/PzAsdC5yZXNwb25zZT1lLnJlc3BvbnNlPz8wLHQuc3RhdHVzQ29kZT1lLnN0YXR1c0NvZGU/P1wiMFwiLHQuZXhwZXJpbWVudElkcz1lLmV4cGVyaW1lbnRJZHM/P1wiXCIsdH19LHQuQWN0aW9ubW9qaU1pc21hdGNoRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUubGF0aXR1ZGUmJnQudWludDMyKDkpLmRvdWJsZShlLmxhdGl0dWRlKSwwIT09ZS5sb25naXR1ZGUmJnQudWludDMyKDE3KS5kb3VibGUoZS5sb25naXR1ZGUpLFwiMFwiIT09ZS5hY3Rpb25UeXBlSWQmJnQudWludDMyKDI0KS51aW50NjQoZS5hY3Rpb25UeXBlSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bGF0aXR1ZGU6MCxsb25naXR1ZGU6MCxhY3Rpb25UeXBlSWQ6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmxhdGl0dWRlPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAyOmkubG9uZ2l0dWRlPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAzOmkuYWN0aW9uVHlwZUlkPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtsYXRpdHVkZTowLGxvbmdpdHVkZTowLGFjdGlvblR5cGVJZDpcIjBcIn07cmV0dXJuIHQubGF0aXR1ZGU9ZS5sYXRpdHVkZT8/MCx0LmxvbmdpdHVkZT1lLmxvbmdpdHVkZT8/MCx0LmFjdGlvblR5cGVJZD1lLmFjdGlvblR5cGVJZD8/XCIwXCIsdH19LHQuQXBwQXBwbGljYXRpb25Mb2dpbkZhaWx1cmVTZXJ2ZXJFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5lcnJvclR5cGUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5lcnJvclR5cGUpLFwiXCIhPT1lLmNsaWVudElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuY2xpZW50SWQpLFwiXCIhPT1lLmxvZ2luUmVxdWVzdElkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUubG9naW5SZXF1ZXN0SWQpLDAhPT1lLmxvZ2luQXBpJiZ0LnVpbnQzMigzMikuaW50MzIoZS5sb2dpbkFwaSksMCE9PWUubG9naW5TZXJ2aWNlJiZ0LnVpbnQzMig0MCkuaW50MzIoZS5sb2dpblNlcnZpY2UpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZXJyb3JUeXBlOlwiXCIsY2xpZW50SWQ6XCJcIixsb2dpblJlcXVlc3RJZDpcIlwiLGxvZ2luQXBpOjAsbG9naW5TZXJ2aWNlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmVycm9yVHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkubG9naW5SZXF1ZXN0SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5sb2dpbkFwaT1uLmludDMyKCk7YnJlYWs7Y2FzZSA1OmkubG9naW5TZXJ2aWNlPW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2Vycm9yVHlwZTpcIlwiLGNsaWVudElkOlwiXCIsbG9naW5SZXF1ZXN0SWQ6XCJcIixsb2dpbkFwaTowLGxvZ2luU2VydmljZTowfTtyZXR1cm4gdC5lcnJvclR5cGU9ZS5lcnJvclR5cGU/P1wiXCIsdC5jbGllbnRJZD1lLmNsaWVudElkPz9cIlwiLHQubG9naW5SZXF1ZXN0SWQ9ZS5sb2dpblJlcXVlc3RJZD8/XCJcIix0LmxvZ2luQXBpPWUubG9naW5BcGk/PzAsdC5sb2dpblNlcnZpY2U9ZS5sb2dpblNlcnZpY2U/PzAsdH19LHQuQXJlc0V2ZW50QmFzZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5hcHBJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLmFwcElkKSxcIlwiIT09ZS5icm93c2VyJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuYnJvd3NlciksXCJcIiE9PWUuYnJvd3NlclZlcnNpb24mJnQudWludDMyKDI2KS5zdHJpbmcoZS5icm93c2VyVmVyc2lvbiksXCJcIiE9PWUuY2t3c1ZlcnNpb24mJnQudWludDMyKDM0KS5zdHJpbmcoZS5ja3dzVmVyc2lvbiksXCJcIiE9PWUuY2xpZW50RXZlbnRJZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmNsaWVudEV2ZW50SWQpLFwiXCIhPT1lLmNsaWVudElkJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuY2xpZW50SWQpLDAhPT1lLmNsaWVudFRzJiZ0LnVpbnQzMig1NykuZG91YmxlKGUuY2xpZW50VHMpLFwiMFwiIT09ZS5jb25uZWN0aW9uRG93bmxvYWRCYW5kd2lkdGhCcHMmJnQudWludDMyKDY0KS51aW50NjQoZS5jb25uZWN0aW9uRG93bmxvYWRCYW5kd2lkdGhCcHMpLDAhPT1lLmRldmljZUNvbm5lY3Rpdml0eSYmdC51aW50MzIoNzIpLmludDMyKGUuZGV2aWNlQ29ubmVjdGl2aXR5KSxcIlwiIT09ZS5kZXZpY2VNb2RlbCYmdC51aW50MzIoODIpLnN0cmluZyhlLmRldmljZU1vZGVsKSxcIlwiIT09ZS5kb21haW4mJnQudWludDMyKDkwKS5zdHJpbmcoZS5kb21haW4pLFwiXCIhPT1lLmVudmlyb25tZW50JiZ0LnVpbnQzMig5OCkuc3RyaW5nKGUuZW52aXJvbm1lbnQpLFwiXCIhPT1lLmV4dGVybmFsUHJvZHVjdElkJiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLmV4dGVybmFsUHJvZHVjdElkKSxcIlwiIT09ZS5leHRlcm5hbFZpc2l0b3JJZCYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5leHRlcm5hbFZpc2l0b3JJZCksMCE9PWUuZmxhdm9yJiZ0LnVpbnQzMigxMjApLmludDMyKGUuZmxhdm9yKSxcIlwiIT09ZS5ob3N0JiZ0LnVpbnQzMigxMzApLnN0cmluZyhlLmhvc3QpLDAhPT1lLmtpdFZhcmlhbnQmJnQudWludDMyKDEzNikuaW50MzIoZS5raXRWYXJpYW50KSxcIlwiIT09ZS5sb2NhbGUmJnQudWludDMyKDE0Nikuc3RyaW5nKGUubG9jYWxlKSxcIjBcIiE9PWUubG9nUXVldWVTZXF1ZW5jZUlkJiZ0LnVpbnQzMigxNTIpLnVpbnQ2NChlLmxvZ1F1ZXVlU2VxdWVuY2VJZCksXCJcIiE9PWUubWlycm9yQXBwVmVyc2lvbiYmdC51aW50MzIoMTYyKS5zdHJpbmcoZS5taXJyb3JBcHBWZXJzaW9uKSxcIlwiIT09ZS5taXJyb3JJZCYmdC51aW50MzIoMTcwKS5zdHJpbmcoZS5taXJyb3JJZCksXCJcIiE9PWUucGxhdGZvcm1DbGllbnRJZCYmdC51aW50MzIoMTc4KS5zdHJpbmcoZS5wbGF0Zm9ybUNsaWVudElkKSxcIlwiIT09ZS5yZWZlcnJlciYmdC51aW50MzIoMTg2KS5zdHJpbmcoZS5yZWZlcnJlciksXCJcIiE9PWUuc2RrVmVyc2lvbiYmdC51aW50MzIoMTk0KS5zdHJpbmcoZS5zZGtWZXJzaW9uKSxcIlwiIT09ZS5zZXNzaW9uSWQmJnQudWludDMyKDIwMikuc3RyaW5nKGUuc2Vzc2lvbklkKSxcIlwiIT09ZS5zbmFwSXRlbUlkJiZ0LnVpbnQzMigyMTApLnN0cmluZyhlLnNuYXBJdGVtSWQpLFwiXCIhPT1lLnNuYXBVc2VySWQmJnQudWludDMyKDIxOCkuc3RyaW5nKGUuc25hcFVzZXJJZCksXCJcIiE9PWUudW5sb2NrYWJsZUlkJiZ0LnVpbnQzMigyMjYpLnN0cmluZyhlLnVubG9ja2FibGVJZCksXCJcIiE9PWUudmlzaXRvclV1aWQmJnQudWludDMyKDI0Mikuc3RyaW5nKGUudmlzaXRvclV1aWQpLFwiXCIhPT1lLndlYkV2ZW50VHlwZSYmdC51aW50MzIoMjUwKS5zdHJpbmcoZS53ZWJFdmVudFR5cGUpLFwiXCIhPT1lLmZlYXR1cmVTZXNzaW9uSWQmJnQudWludDMyKDI1OCkuc3RyaW5nKGUuZmVhdHVyZVNlc3Npb25JZCksMCE9PWUuZmVhdHVyZVR5cGUmJnQudWludDMyKDI2NCkuaW50MzIoZS5mZWF0dXJlVHlwZSksXCJcIiE9PWUuYXJlc1Nlc3Npb25JZCYmdC51aW50MzIoMjc0KS5zdHJpbmcoZS5hcmVzU2Vzc2lvbklkKSxcIlwiIT09ZS5tZXJjaGFudFNlc3Npb25JZCYmdC51aW50MzIoMjkwKS5zdHJpbmcoZS5tZXJjaGFudFNlc3Npb25JZCksXCJcIiE9PWUubWVyY2hhbnRMb2NhbGUmJnQudWludDMyKDI5OCkuc3RyaW5nKGUubWVyY2hhbnRMb2NhbGUpLFwiXCIhPT1lLm1lcmNoYW50Q291bnRyeSYmdC51aW50MzIoMzA2KS5zdHJpbmcoZS5tZXJjaGFudENvdW50cnkpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17YXBwSWQ6XCJcIixicm93c2VyOlwiXCIsYnJvd3NlclZlcnNpb246XCJcIixja3dzVmVyc2lvbjpcIlwiLGNsaWVudEV2ZW50SWQ6XCJcIixjbGllbnRJZDpcIlwiLGNsaWVudFRzOjAsY29ubmVjdGlvbkRvd25sb2FkQmFuZHdpZHRoQnBzOlwiMFwiLGRldmljZUNvbm5lY3Rpdml0eTowLGRldmljZU1vZGVsOlwiXCIsZG9tYWluOlwiXCIsZW52aXJvbm1lbnQ6XCJcIixleHRlcm5hbFByb2R1Y3RJZDpcIlwiLGV4dGVybmFsVmlzaXRvcklkOlwiXCIsZmxhdm9yOjAsaG9zdDpcIlwiLGtpdFZhcmlhbnQ6MCxsb2NhbGU6XCJcIixsb2dRdWV1ZVNlcXVlbmNlSWQ6XCIwXCIsbWlycm9yQXBwVmVyc2lvbjpcIlwiLG1pcnJvcklkOlwiXCIscGxhdGZvcm1DbGllbnRJZDpcIlwiLHJlZmVycmVyOlwiXCIsc2RrVmVyc2lvbjpcIlwiLHNlc3Npb25JZDpcIlwiLHNuYXBJdGVtSWQ6XCJcIixzbmFwVXNlcklkOlwiXCIsdW5sb2NrYWJsZUlkOlwiXCIsdmlzaXRvclV1aWQ6XCJcIix3ZWJFdmVudFR5cGU6XCJcIixmZWF0dXJlU2Vzc2lvbklkOlwiXCIsZmVhdHVyZVR5cGU6MCxhcmVzU2Vzc2lvbklkOlwiXCIsbWVyY2hhbnRTZXNzaW9uSWQ6XCJcIixtZXJjaGFudExvY2FsZTpcIlwiLG1lcmNoYW50Q291bnRyeTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5hcHBJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmJyb3dzZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5icm93c2VyVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmNrd3NWZXJzaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuY2xpZW50RXZlbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLmNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkuY2xpZW50VHM9bi5kb3VibGUoKTticmVhaztjYXNlIDg6aS5jb25uZWN0aW9uRG93bmxvYWRCYW5kd2lkdGhCcHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6aS5kZXZpY2VDb25uZWN0aXZpdHk9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTA6aS5kZXZpY2VNb2RlbD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6aS5kb21haW49bi5zdHJpbmcoKTticmVhaztjYXNlIDEyOmkuZW52aXJvbm1lbnQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDEzOmkuZXh0ZXJuYWxQcm9kdWN0SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDE0OmkuZXh0ZXJuYWxWaXNpdG9ySWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDE1OmkuZmxhdm9yPW4uaW50MzIoKTticmVhaztjYXNlIDE2OmkuaG9zdD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTc6aS5raXRWYXJpYW50PW4uaW50MzIoKTticmVhaztjYXNlIDE4OmkubG9jYWxlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxOTppLmxvZ1F1ZXVlU2VxdWVuY2VJZD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMjA6aS5taXJyb3JBcHBWZXJzaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMTppLm1pcnJvcklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMjppLnBsYXRmb3JtQ2xpZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDIzOmkucmVmZXJyZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDI0Omkuc2RrVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjU6aS5zZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI2Omkuc25hcEl0ZW1JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjc6aS5zbmFwVXNlcklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyODppLnVubG9ja2FibGVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzA6aS52aXNpdG9yVXVpZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzE6aS53ZWJFdmVudFR5cGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDMyOmkuZmVhdHVyZVNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzM6aS5mZWF0dXJlVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAzNDppLmFyZXNTZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM2OmkubWVyY2hhbnRTZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM3OmkubWVyY2hhbnRMb2NhbGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM4OmkubWVyY2hhbnRDb3VudHJ5PW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXthcHBJZDpcIlwiLGJyb3dzZXI6XCJcIixicm93c2VyVmVyc2lvbjpcIlwiLGNrd3NWZXJzaW9uOlwiXCIsY2xpZW50RXZlbnRJZDpcIlwiLGNsaWVudElkOlwiXCIsY2xpZW50VHM6MCxjb25uZWN0aW9uRG93bmxvYWRCYW5kd2lkdGhCcHM6XCIwXCIsZGV2aWNlQ29ubmVjdGl2aXR5OjAsZGV2aWNlTW9kZWw6XCJcIixkb21haW46XCJcIixlbnZpcm9ubWVudDpcIlwiLGV4dGVybmFsUHJvZHVjdElkOlwiXCIsZXh0ZXJuYWxWaXNpdG9ySWQ6XCJcIixmbGF2b3I6MCxob3N0OlwiXCIsa2l0VmFyaWFudDowLGxvY2FsZTpcIlwiLGxvZ1F1ZXVlU2VxdWVuY2VJZDpcIjBcIixtaXJyb3JBcHBWZXJzaW9uOlwiXCIsbWlycm9ySWQ6XCJcIixwbGF0Zm9ybUNsaWVudElkOlwiXCIscmVmZXJyZXI6XCJcIixzZGtWZXJzaW9uOlwiXCIsc2Vzc2lvbklkOlwiXCIsc25hcEl0ZW1JZDpcIlwiLHNuYXBVc2VySWQ6XCJcIix1bmxvY2thYmxlSWQ6XCJcIix2aXNpdG9yVXVpZDpcIlwiLHdlYkV2ZW50VHlwZTpcIlwiLGZlYXR1cmVTZXNzaW9uSWQ6XCJcIixmZWF0dXJlVHlwZTowLGFyZXNTZXNzaW9uSWQ6XCJcIixtZXJjaGFudFNlc3Npb25JZDpcIlwiLG1lcmNoYW50TG9jYWxlOlwiXCIsbWVyY2hhbnRDb3VudHJ5OlwiXCJ9O3JldHVybiB0LmFwcElkPWUuYXBwSWQ/P1wiXCIsdC5icm93c2VyPWUuYnJvd3Nlcj8/XCJcIix0LmJyb3dzZXJWZXJzaW9uPWUuYnJvd3NlclZlcnNpb24/P1wiXCIsdC5ja3dzVmVyc2lvbj1lLmNrd3NWZXJzaW9uPz9cIlwiLHQuY2xpZW50RXZlbnRJZD1lLmNsaWVudEV2ZW50SWQ/P1wiXCIsdC5jbGllbnRJZD1lLmNsaWVudElkPz9cIlwiLHQuY2xpZW50VHM9ZS5jbGllbnRUcz8/MCx0LmNvbm5lY3Rpb25Eb3dubG9hZEJhbmR3aWR0aEJwcz1lLmNvbm5lY3Rpb25Eb3dubG9hZEJhbmR3aWR0aEJwcz8/XCIwXCIsdC5kZXZpY2VDb25uZWN0aXZpdHk9ZS5kZXZpY2VDb25uZWN0aXZpdHk/PzAsdC5kZXZpY2VNb2RlbD1lLmRldmljZU1vZGVsPz9cIlwiLHQuZG9tYWluPWUuZG9tYWluPz9cIlwiLHQuZW52aXJvbm1lbnQ9ZS5lbnZpcm9ubWVudD8/XCJcIix0LmV4dGVybmFsUHJvZHVjdElkPWUuZXh0ZXJuYWxQcm9kdWN0SWQ/P1wiXCIsdC5leHRlcm5hbFZpc2l0b3JJZD1lLmV4dGVybmFsVmlzaXRvcklkPz9cIlwiLHQuZmxhdm9yPWUuZmxhdm9yPz8wLHQuaG9zdD1lLmhvc3Q/P1wiXCIsdC5raXRWYXJpYW50PWUua2l0VmFyaWFudD8/MCx0LmxvY2FsZT1lLmxvY2FsZT8/XCJcIix0LmxvZ1F1ZXVlU2VxdWVuY2VJZD1lLmxvZ1F1ZXVlU2VxdWVuY2VJZD8/XCIwXCIsdC5taXJyb3JBcHBWZXJzaW9uPWUubWlycm9yQXBwVmVyc2lvbj8/XCJcIix0Lm1pcnJvcklkPWUubWlycm9ySWQ/P1wiXCIsdC5wbGF0Zm9ybUNsaWVudElkPWUucGxhdGZvcm1DbGllbnRJZD8/XCJcIix0LnJlZmVycmVyPWUucmVmZXJyZXI/P1wiXCIsdC5zZGtWZXJzaW9uPWUuc2RrVmVyc2lvbj8/XCJcIix0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0LnNuYXBJdGVtSWQ9ZS5zbmFwSXRlbUlkPz9cIlwiLHQuc25hcFVzZXJJZD1lLnNuYXBVc2VySWQ/P1wiXCIsdC51bmxvY2thYmxlSWQ9ZS51bmxvY2thYmxlSWQ/P1wiXCIsdC52aXNpdG9yVXVpZD1lLnZpc2l0b3JVdWlkPz9cIlwiLHQud2ViRXZlbnRUeXBlPWUud2ViRXZlbnRUeXBlPz9cIlwiLHQuZmVhdHVyZVNlc3Npb25JZD1lLmZlYXR1cmVTZXNzaW9uSWQ/P1wiXCIsdC5mZWF0dXJlVHlwZT1lLmZlYXR1cmVUeXBlPz8wLHQuYXJlc1Nlc3Npb25JZD1lLmFyZXNTZXNzaW9uSWQ/P1wiXCIsdC5tZXJjaGFudFNlc3Npb25JZD1lLm1lcmNoYW50U2Vzc2lvbklkPz9cIlwiLHQubWVyY2hhbnRMb2NhbGU9ZS5tZXJjaGFudExvY2FsZT8/XCJcIix0Lm1lcmNoYW50Q291bnRyeT1lLm1lcmNoYW50Q291bnRyeT8/XCJcIix0fX0sdC5Bc3JTZXJ2ZXJMZW5zU2Vzc2lvbj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5sZW5zSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnNlc3Npb25JZCksXCJcIiE9PWUubGFuZ3VhZ2VDb2RlUmVxdWVzdGVkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUubGFuZ3VhZ2VDb2RlUmVxdWVzdGVkKSxcIlwiIT09ZS5sYW5ndWFnZUNvZGVBY3R1YWwmJnQudWludDMyKDM0KS5zdHJpbmcoZS5sYW5ndWFnZUNvZGVBY3R1YWwpLFwiXCIhPT1lLm5scFNlcnZpY2VSZXN1bHRzJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUubmxwU2VydmljZVJlc3VsdHMpLFwiMFwiIT09ZS53b3JkQ291bnQmJnQudWludDMyKDQ4KS51aW50NjQoZS53b3JkQ291bnQpLFwiMFwiIT09ZS51dHRlcmFuY2VDb3VudCYmdC51aW50MzIoNTYpLnVpbnQ2NChlLnV0dGVyYW5jZUNvdW50KSxcIjBcIiE9PWUuY291bnROb1RyYW5zY3JpcHQmJnQudWludDMyKDY0KS51aW50NjQoZS5jb3VudE5vVHJhbnNjcmlwdCksMCE9PWUudHJhbnNjcmliZWRBdWRpb0xlbmd0aFNlYyYmdC51aW50MzIoNzMpLmRvdWJsZShlLnRyYW5zY3JpYmVkQXVkaW9MZW5ndGhTZWMpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bGVuc0lkOlwiXCIsc2Vzc2lvbklkOlwiXCIsbGFuZ3VhZ2VDb2RlUmVxdWVzdGVkOlwiXCIsbGFuZ3VhZ2VDb2RlQWN0dWFsOlwiXCIsbmxwU2VydmljZVJlc3VsdHM6XCJcIix3b3JkQ291bnQ6XCIwXCIsdXR0ZXJhbmNlQ291bnQ6XCIwXCIsY291bnROb1RyYW5zY3JpcHQ6XCIwXCIsdHJhbnNjcmliZWRBdWRpb0xlbmd0aFNlYzowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5sZW5zSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5zZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5sYW5ndWFnZUNvZGVSZXF1ZXN0ZWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5sYW5ndWFnZUNvZGVBY3R1YWw9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5ubHBTZXJ2aWNlUmVzdWx0cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLndvcmRDb3VudD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNzppLnV0dGVyYW5jZUNvdW50PXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA4OmkuY291bnROb1RyYW5zY3JpcHQ9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6aS50cmFuc2NyaWJlZEF1ZGlvTGVuZ3RoU2VjPW4uZG91YmxlKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtsZW5zSWQ6XCJcIixzZXNzaW9uSWQ6XCJcIixsYW5ndWFnZUNvZGVSZXF1ZXN0ZWQ6XCJcIixsYW5ndWFnZUNvZGVBY3R1YWw6XCJcIixubHBTZXJ2aWNlUmVzdWx0czpcIlwiLHdvcmRDb3VudDpcIjBcIix1dHRlcmFuY2VDb3VudDpcIjBcIixjb3VudE5vVHJhbnNjcmlwdDpcIjBcIix0cmFuc2NyaWJlZEF1ZGlvTGVuZ3RoU2VjOjB9O3JldHVybiB0LmxlbnNJZD1lLmxlbnNJZD8/XCJcIix0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0Lmxhbmd1YWdlQ29kZVJlcXVlc3RlZD1lLmxhbmd1YWdlQ29kZVJlcXVlc3RlZD8/XCJcIix0Lmxhbmd1YWdlQ29kZUFjdHVhbD1lLmxhbmd1YWdlQ29kZUFjdHVhbD8/XCJcIix0Lm5scFNlcnZpY2VSZXN1bHRzPWUubmxwU2VydmljZVJlc3VsdHM/P1wiXCIsdC53b3JkQ291bnQ9ZS53b3JkQ291bnQ/P1wiMFwiLHQudXR0ZXJhbmNlQ291bnQ9ZS51dHRlcmFuY2VDb3VudD8/XCIwXCIsdC5jb3VudE5vVHJhbnNjcmlwdD1lLmNvdW50Tm9UcmFuc2NyaXB0Pz9cIjBcIix0LnRyYW5zY3JpYmVkQXVkaW9MZW5ndGhTZWM9ZS50cmFuc2NyaWJlZEF1ZGlvTGVuZ3RoU2VjPz8wLHR9fSx0LkF1dGhTZXNzaW9uRW5kU2VydmVyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnNlc3Npb25JZCksMCE9PWUubGFzdEFjdGl2ZVRzJiZ0LnVpbnQzMigxNykuZG91YmxlKGUubGFzdEFjdGl2ZVRzKSwwIT09ZS5zZXNzaW9uRW5kUmVhc29uJiZ0LnVpbnQzMigyNCkuaW50MzIoZS5zZXNzaW9uRW5kUmVhc29uKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3Nlc3Npb25JZDpcIlwiLGxhc3RBY3RpdmVUczowLHNlc3Npb25FbmRSZWFzb246MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkubGFzdEFjdGl2ZVRzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAzOmkuc2Vzc2lvbkVuZFJlYXNvbj1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXNzaW9uSWQ6XCJcIixsYXN0QWN0aXZlVHM6MCxzZXNzaW9uRW5kUmVhc29uOjB9O3JldHVybiB0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0Lmxhc3RBY3RpdmVUcz1lLmxhc3RBY3RpdmVUcz8/MCx0LnNlc3Npb25FbmRSZWFzb249ZS5zZXNzaW9uRW5kUmVhc29uPz8wLHR9fSx0LkF1dGhTZXNzaW9uSW5pdGlhdGVkU2VydmVyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnNlc3Npb25JZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzZXNzaW9uSWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlpLnNlc3Npb25JZD1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXNzaW9uSWQ6XCJcIn07cmV0dXJuIHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLHR9fSx0LkF1dGhlbnRpY2F0aW9uU2VydmVyRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUudHJhbnNhY3Rpb25UeXBlJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUudHJhbnNhY3Rpb25UeXBlKSxcIlwiIT09ZS50cmFuc2FjdGlvbkRldGFpbHMmJnQudWludDMyKDE4KS5zdHJpbmcoZS50cmFuc2FjdGlvbkRldGFpbHMpLFwiXCIhPT1lLnJlcXVlc3RNZXRhZGF0YSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnJlcXVlc3RNZXRhZGF0YSksXCJcIiE9PWUuYWRkaXRpb25hbE1ldGFkYXRhJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuYWRkaXRpb25hbE1ldGFkYXRhKSxcIlwiIT09ZS5hdXRoZW50aWNhdGlvblNlc3Npb25JZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkKSxcIlwiIT09ZS5jbGllbnRJZCYmdC51aW50MzIoNTApLnN0cmluZyhlLmNsaWVudElkKSxcIlwiIT09ZS5yaXNrU2NvcmUmJnQudWludDMyKDU4KS5zdHJpbmcoZS5yaXNrU2NvcmUpLFwiXCIhPT1lLmRldGVjdGlvblJlc3VsdHMmJnQudWludDMyKDY2KS5zdHJpbmcoZS5kZXRlY3Rpb25SZXN1bHRzKSxcIlwiIT09ZS5kZWNpZGluZ1J1bGVzJiZ0LnVpbnQzMig3NCkuc3RyaW5nKGUuZGVjaWRpbmdSdWxlcyksXCJcIiE9PWUuYWNjb3VudENvbmZpZ3VyYXRpb25TdGF0ZSYmdC51aW50MzIoODIpLnN0cmluZyhlLmFjY291bnRDb25maWd1cmF0aW9uU3RhdGUpLFwiMFwiIT09ZS5hc3N1cmFuY2VMZXZlbCYmdC51aW50MzIoODgpLnVpbnQ2NChlLmFzc3VyYW5jZUxldmVsKSxcIjBcIiE9PWUuYmFzZWxpbmVBc3N1cmFuY2VSZXF1aXJlbWVudCYmdC51aW50MzIoOTYpLnVpbnQ2NChlLmJhc2VsaW5lQXNzdXJhbmNlUmVxdWlyZW1lbnQpLFwiMFwiIT09ZS5lbmZvcmNlZEFzc3VyYW5jZVJlcXVpcmVtZW50JiZ0LnVpbnQzMigxMDQpLnVpbnQ2NChlLmVuZm9yY2VkQXNzdXJhbmNlUmVxdWlyZW1lbnQpLFwiXCIhPT1lLmNoYWxsZW5nZU1ldGhvZCYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5jaGFsbGVuZ2VNZXRob2QpLFwiXCIhPT1lLmRlY2lzaW9uJiZ0LnVpbnQzMigxMjIpLnN0cmluZyhlLmRlY2lzaW9uKSxcIlwiIT09ZS5maW5hbERlY2lzaW9uJiZ0LnVpbnQzMigxMzApLnN0cmluZyhlLmZpbmFsRGVjaXNpb24pLFwiXCIhPT1lLmRlY2lzaW9uUmVhc29uJiZ0LnVpbnQzMigxMzgpLnN0cmluZyhlLmRlY2lzaW9uUmVhc29uKSwhMD09PWUuZGVjaXNpb25TdWNjZXNzZnVsbHlPcmNoZXN0cmF0ZWQmJnQudWludDMyKDE0NCkuYm9vbChlLmRlY2lzaW9uU3VjY2Vzc2Z1bGx5T3JjaGVzdHJhdGVkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3RyYW5zYWN0aW9uVHlwZTpcIlwiLHRyYW5zYWN0aW9uRGV0YWlsczpcIlwiLHJlcXVlc3RNZXRhZGF0YTpcIlwiLGFkZGl0aW9uYWxNZXRhZGF0YTpcIlwiLGF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkOlwiXCIsY2xpZW50SWQ6XCJcIixyaXNrU2NvcmU6XCJcIixkZXRlY3Rpb25SZXN1bHRzOlwiXCIsZGVjaWRpbmdSdWxlczpcIlwiLGFjY291bnRDb25maWd1cmF0aW9uU3RhdGU6XCJcIixhc3N1cmFuY2VMZXZlbDpcIjBcIixiYXNlbGluZUFzc3VyYW5jZVJlcXVpcmVtZW50OlwiMFwiLGVuZm9yY2VkQXNzdXJhbmNlUmVxdWlyZW1lbnQ6XCIwXCIsY2hhbGxlbmdlTWV0aG9kOlwiXCIsZGVjaXNpb246XCJcIixmaW5hbERlY2lzaW9uOlwiXCIsZGVjaXNpb25SZWFzb246XCJcIixkZWNpc2lvblN1Y2Nlc3NmdWxseU9yY2hlc3RyYXRlZDohMX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkudHJhbnNhY3Rpb25UeXBlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudHJhbnNhY3Rpb25EZXRhaWxzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkucmVxdWVzdE1ldGFkYXRhPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuYWRkaXRpb25hbE1ldGFkYXRhPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuYXV0aGVudGljYXRpb25TZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5jbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLnJpc2tTY29yZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgODppLmRldGVjdGlvblJlc3VsdHM9bi5zdHJpbmcoKTticmVhaztjYXNlIDk6aS5kZWNpZGluZ1J1bGVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLmFjY291bnRDb25maWd1cmF0aW9uU3RhdGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDExOmkuYXNzdXJhbmNlTGV2ZWw9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDEyOmkuYmFzZWxpbmVBc3N1cmFuY2VSZXF1aXJlbWVudD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTM6aS5lbmZvcmNlZEFzc3VyYW5jZVJlcXVpcmVtZW50PXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAxNDppLmNoYWxsZW5nZU1ldGhvZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTU6aS5kZWNpc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTY6aS5maW5hbERlY2lzaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNzppLmRlY2lzaW9uUmVhc29uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxODppLmRlY2lzaW9uU3VjY2Vzc2Z1bGx5T3JjaGVzdHJhdGVkPW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17dHJhbnNhY3Rpb25UeXBlOlwiXCIsdHJhbnNhY3Rpb25EZXRhaWxzOlwiXCIscmVxdWVzdE1ldGFkYXRhOlwiXCIsYWRkaXRpb25hbE1ldGFkYXRhOlwiXCIsYXV0aGVudGljYXRpb25TZXNzaW9uSWQ6XCJcIixjbGllbnRJZDpcIlwiLHJpc2tTY29yZTpcIlwiLGRldGVjdGlvblJlc3VsdHM6XCJcIixkZWNpZGluZ1J1bGVzOlwiXCIsYWNjb3VudENvbmZpZ3VyYXRpb25TdGF0ZTpcIlwiLGFzc3VyYW5jZUxldmVsOlwiMFwiLGJhc2VsaW5lQXNzdXJhbmNlUmVxdWlyZW1lbnQ6XCIwXCIsZW5mb3JjZWRBc3N1cmFuY2VSZXF1aXJlbWVudDpcIjBcIixjaGFsbGVuZ2VNZXRob2Q6XCJcIixkZWNpc2lvbjpcIlwiLGZpbmFsRGVjaXNpb246XCJcIixkZWNpc2lvblJlYXNvbjpcIlwiLGRlY2lzaW9uU3VjY2Vzc2Z1bGx5T3JjaGVzdHJhdGVkOiExfTtyZXR1cm4gdC50cmFuc2FjdGlvblR5cGU9ZS50cmFuc2FjdGlvblR5cGU/P1wiXCIsdC50cmFuc2FjdGlvbkRldGFpbHM9ZS50cmFuc2FjdGlvbkRldGFpbHM/P1wiXCIsdC5yZXF1ZXN0TWV0YWRhdGE9ZS5yZXF1ZXN0TWV0YWRhdGE/P1wiXCIsdC5hZGRpdGlvbmFsTWV0YWRhdGE9ZS5hZGRpdGlvbmFsTWV0YWRhdGE/P1wiXCIsdC5hdXRoZW50aWNhdGlvblNlc3Npb25JZD1lLmF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkPz9cIlwiLHQuY2xpZW50SWQ9ZS5jbGllbnRJZD8/XCJcIix0LnJpc2tTY29yZT1lLnJpc2tTY29yZT8/XCJcIix0LmRldGVjdGlvblJlc3VsdHM9ZS5kZXRlY3Rpb25SZXN1bHRzPz9cIlwiLHQuZGVjaWRpbmdSdWxlcz1lLmRlY2lkaW5nUnVsZXM/P1wiXCIsdC5hY2NvdW50Q29uZmlndXJhdGlvblN0YXRlPWUuYWNjb3VudENvbmZpZ3VyYXRpb25TdGF0ZT8/XCJcIix0LmFzc3VyYW5jZUxldmVsPWUuYXNzdXJhbmNlTGV2ZWw/P1wiMFwiLHQuYmFzZWxpbmVBc3N1cmFuY2VSZXF1aXJlbWVudD1lLmJhc2VsaW5lQXNzdXJhbmNlUmVxdWlyZW1lbnQ/P1wiMFwiLHQuZW5mb3JjZWRBc3N1cmFuY2VSZXF1aXJlbWVudD1lLmVuZm9yY2VkQXNzdXJhbmNlUmVxdWlyZW1lbnQ/P1wiMFwiLHQuY2hhbGxlbmdlTWV0aG9kPWUuY2hhbGxlbmdlTWV0aG9kPz9cIlwiLHQuZGVjaXNpb249ZS5kZWNpc2lvbj8/XCJcIix0LmZpbmFsRGVjaXNpb249ZS5maW5hbERlY2lzaW9uPz9cIlwiLHQuZGVjaXNpb25SZWFzb249ZS5kZWNpc2lvblJlYXNvbj8/XCJcIix0LmRlY2lzaW9uU3VjY2Vzc2Z1bGx5T3JjaGVzdHJhdGVkPWUuZGVjaXNpb25TdWNjZXNzZnVsbHlPcmNoZXN0cmF0ZWQ/PyExLHR9fSx0LkJpdG1vamlBcHBFdmVudEJhc2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUuYml0bW9qaUFwcE5hbWUmJnQudWludDMyKDgpLmludDMyKGUuYml0bW9qaUFwcE5hbWUpLFwiXCIhPT1lLmluc3RhbGxhdGlvbklkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuaW5zdGFsbGF0aW9uSWQpLCEwPT09ZS53aXRoU25hcGNoYXRJbnN0YWxsZWQmJnQudWludDMyKDI0KS5ib29sKGUud2l0aFNuYXBjaGF0SW5zdGFsbGVkKSxcIlwiIT09ZS5hdmF0YXJJZCYmdC51aW50MzIoMzQpLnN0cmluZyhlLmF2YXRhcklkKSxcIjBcIiE9PWUuYXZhdGFyVmVyc2lvbiYmdC51aW50MzIoNDApLnVpbnQ2NChlLmF2YXRhclZlcnNpb24pLDAhPT1lLmF2YXRhclN0eWxlJiZ0LnVpbnQzMig0OCkuaW50MzIoZS5hdmF0YXJTdHlsZSksXCJcIiE9PWUuZXhwZXJpbWVudElkcyYmdC51aW50MzIoNTgpLnN0cmluZyhlLmV4cGVyaW1lbnRJZHMpLFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoNjYpLnN0cmluZyhlLnNlc3Npb25JZCksXCIwXCIhPT1lLmNsaWVudFNlcXVlbmNlSWQmJnQudWludDMyKDcyKS51aW50NjQoZS5jbGllbnRTZXF1ZW5jZUlkKSxcIjBcIiE9PWUubWF4Q2xpZW50U2VxdWVuY2VJZE9uSW5zdGFuY2UmJnQudWludDMyKDgwKS51aW50NjQoZS5tYXhDbGllbnRTZXF1ZW5jZUlkT25JbnN0YW5jZSksMCE9PWUuY2xpZW50VHMmJnQudWludDMyKDg5KS5kb3VibGUoZS5jbGllbnRUcyksMCE9PWUuY2xpZW50VXBsb2FkVHMmJnQudWludDMyKDk3KS5kb3VibGUoZS5jbGllbnRVcGxvYWRUcyksMCE9PWUuZmlyc3RVcGxvYWRBdHRlbXB0VHMmJnQudWludDMyKDEwNSkuZG91YmxlKGUuZmlyc3RVcGxvYWRBdHRlbXB0VHMpLFwiXCIhPT1lLmRldmljZU1vZGVsJiZ0LnVpbnQzMigxMTQpLnN0cmluZyhlLmRldmljZU1vZGVsKSxcIlwiIT09ZS5pcEFkZHJlc3MmJnQudWludDMyKDEyMikuc3RyaW5nKGUuaXBBZGRyZXNzKSxcIlwiIT09ZS5sb2NhbGUmJnQudWludDMyKDEzMCkuc3RyaW5nKGUubG9jYWxlKSxcIlwiIT09ZS5yYXdBdmF0YXJJZCYmdC51aW50MzIoMTM4KS5zdHJpbmcoZS5yYXdBdmF0YXJJZCksXCJcIiE9PWUubG9naW5TZXNzaW9uSWQmJnQudWludDMyKDE0Nikuc3RyaW5nKGUubG9naW5TZXNzaW9uSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17Yml0bW9qaUFwcE5hbWU6MCxpbnN0YWxsYXRpb25JZDpcIlwiLHdpdGhTbmFwY2hhdEluc3RhbGxlZDohMSxhdmF0YXJJZDpcIlwiLGF2YXRhclZlcnNpb246XCIwXCIsYXZhdGFyU3R5bGU6MCxleHBlcmltZW50SWRzOlwiXCIsc2Vzc2lvbklkOlwiXCIsY2xpZW50U2VxdWVuY2VJZDpcIjBcIixtYXhDbGllbnRTZXF1ZW5jZUlkT25JbnN0YW5jZTpcIjBcIixjbGllbnRUczowLGNsaWVudFVwbG9hZFRzOjAsZmlyc3RVcGxvYWRBdHRlbXB0VHM6MCxkZXZpY2VNb2RlbDpcIlwiLGlwQWRkcmVzczpcIlwiLGxvY2FsZTpcIlwiLHJhd0F2YXRhcklkOlwiXCIsbG9naW5TZXNzaW9uSWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuYml0bW9qaUFwcE5hbWU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLmluc3RhbGxhdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkud2l0aFNuYXBjaGF0SW5zdGFsbGVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgNDppLmF2YXRhcklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuYXZhdGFyVmVyc2lvbj1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNjppLmF2YXRhclN0eWxlPW4uaW50MzIoKTticmVhaztjYXNlIDc6aS5leHBlcmltZW50SWRzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA4Omkuc2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmkuY2xpZW50U2VxdWVuY2VJZD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTA6aS5tYXhDbGllbnRTZXF1ZW5jZUlkT25JbnN0YW5jZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTE6aS5jbGllbnRUcz1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTI6aS5jbGllbnRVcGxvYWRUcz1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTM6aS5maXJzdFVwbG9hZEF0dGVtcHRUcz1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTQ6aS5kZXZpY2VNb2RlbD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTU6aS5pcEFkZHJlc3M9bi5zdHJpbmcoKTticmVhaztjYXNlIDE2OmkubG9jYWxlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNzppLnJhd0F2YXRhcklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxODppLmxvZ2luU2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtiaXRtb2ppQXBwTmFtZTowLGluc3RhbGxhdGlvbklkOlwiXCIsd2l0aFNuYXBjaGF0SW5zdGFsbGVkOiExLGF2YXRhcklkOlwiXCIsYXZhdGFyVmVyc2lvbjpcIjBcIixhdmF0YXJTdHlsZTowLGV4cGVyaW1lbnRJZHM6XCJcIixzZXNzaW9uSWQ6XCJcIixjbGllbnRTZXF1ZW5jZUlkOlwiMFwiLG1heENsaWVudFNlcXVlbmNlSWRPbkluc3RhbmNlOlwiMFwiLGNsaWVudFRzOjAsY2xpZW50VXBsb2FkVHM6MCxmaXJzdFVwbG9hZEF0dGVtcHRUczowLGRldmljZU1vZGVsOlwiXCIsaXBBZGRyZXNzOlwiXCIsbG9jYWxlOlwiXCIscmF3QXZhdGFySWQ6XCJcIixsb2dpblNlc3Npb25JZDpcIlwifTtyZXR1cm4gdC5iaXRtb2ppQXBwTmFtZT1lLmJpdG1vamlBcHBOYW1lPz8wLHQuaW5zdGFsbGF0aW9uSWQ9ZS5pbnN0YWxsYXRpb25JZD8/XCJcIix0LndpdGhTbmFwY2hhdEluc3RhbGxlZD1lLndpdGhTbmFwY2hhdEluc3RhbGxlZD8/ITEsdC5hdmF0YXJJZD1lLmF2YXRhcklkPz9cIlwiLHQuYXZhdGFyVmVyc2lvbj1lLmF2YXRhclZlcnNpb24/P1wiMFwiLHQuYXZhdGFyU3R5bGU9ZS5hdmF0YXJTdHlsZT8/MCx0LmV4cGVyaW1lbnRJZHM9ZS5leHBlcmltZW50SWRzPz9cIlwiLHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLHQuY2xpZW50U2VxdWVuY2VJZD1lLmNsaWVudFNlcXVlbmNlSWQ/P1wiMFwiLHQubWF4Q2xpZW50U2VxdWVuY2VJZE9uSW5zdGFuY2U9ZS5tYXhDbGllbnRTZXF1ZW5jZUlkT25JbnN0YW5jZT8/XCIwXCIsdC5jbGllbnRUcz1lLmNsaWVudFRzPz8wLHQuY2xpZW50VXBsb2FkVHM9ZS5jbGllbnRVcGxvYWRUcz8/MCx0LmZpcnN0VXBsb2FkQXR0ZW1wdFRzPWUuZmlyc3RVcGxvYWRBdHRlbXB0VHM/PzAsdC5kZXZpY2VNb2RlbD1lLmRldmljZU1vZGVsPz9cIlwiLHQuaXBBZGRyZXNzPWUuaXBBZGRyZXNzPz9cIlwiLHQubG9jYWxlPWUubG9jYWxlPz9cIlwiLHQucmF3QXZhdGFySWQ9ZS5yYXdBdmF0YXJJZD8/XCJcIix0LmxvZ2luU2Vzc2lvbklkPWUubG9naW5TZXNzaW9uSWQ/P1wiXCIsdH19LHQuQmxvb3BzU3RvcnlTbmFwUG9zdFNlcnZlcj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdG9yeUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3RvcnlJZCksMCE9PWUuZGVzdGluYXRpb24mJnQudWludDMyKDE2KS5pbnQzMihlLmRlc3RpbmF0aW9uKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0b3J5SWQ6XCJcIixkZXN0aW5hdGlvbjowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zdG9yeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZGVzdGluYXRpb249bi5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3RvcnlJZDpcIlwiLGRlc3RpbmF0aW9uOjB9O3JldHVybiB0LnN0b3J5SWQ9ZS5zdG9yeUlkPz9cIlwiLHQuZGVzdGluYXRpb249ZS5kZXN0aW5hdGlvbj8/MCx0fX0sdC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc2Vzc2lvbklkKSxcIlwiIT09ZS5kZXZpY2VNb2RlbCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmRldmljZU1vZGVsKSxcIlwiIT09ZS5hcHBJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLmFwcElkKSxcIlwiIT09ZS5sZW5zSWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLmdyb3VwSWQmJnQudWludDMyKDQyKS5zdHJpbmcoZS5ncm91cElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3Nlc3Npb25JZDpcIlwiLGRldmljZU1vZGVsOlwiXCIsYXBwSWQ6XCJcIixsZW5zSWQ6XCJcIixncm91cElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmRldmljZU1vZGVsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuYXBwSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5sZW5zSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5ncm91cElkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXNzaW9uSWQ6XCJcIixkZXZpY2VNb2RlbDpcIlwiLGFwcElkOlwiXCIsbGVuc0lkOlwiXCIsZ3JvdXBJZDpcIlwifTtyZXR1cm4gdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWQ/P1wiXCIsdC5kZXZpY2VNb2RlbD1lLmRldmljZU1vZGVsPz9cIlwiLHQuYXBwSWQ9ZS5hcHBJZD8/XCJcIix0LmxlbnNJZD1lLmxlbnNJZD8/XCJcIix0Lmdyb3VwSWQ9ZS5ncm91cElkPz9cIlwiLHR9fSx0LkNhbWVyYUtpdFdlYlBvcnRhbEV2ZW50QmFzZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PigwIT09ZS5hcHBOYW1lJiZ0LnVpbnQzMig4KS5pbnQzMihlLmFwcE5hbWUpLFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnNlc3Npb25JZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXthcHBOYW1lOjAsc2Vzc2lvbklkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmFwcE5hbWU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLnNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17YXBwTmFtZTowLHNlc3Npb25JZDpcIlwifTtyZXR1cm4gdC5hcHBOYW1lPWUuYXBwTmFtZT8/MCx0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0fX0sdC5DYW52YXNBcGlFdmVudEJhc2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuY2FudmFzQXBpUXVlcnlQYXRoJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuY2FudmFzQXBpUXVlcnlQYXRoKSxcIlwiIT09ZS5hcHBJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmFwcElkKSxcIlwiIT09ZS5jYW52YXNBcGlRdWVyeUZpZWxkcyYmdC51aW50MzIoMjYpLnN0cmluZyhlLmNhbnZhc0FwaVF1ZXJ5RmllbGRzKSxcIlwiIT09ZS5jYW52YXNBcGlBdXRoVHlwZSYmdC51aW50MzIoMzQpLnN0cmluZyhlLmNhbnZhc0FwaUF1dGhUeXBlKSxcIlwiIT09ZS5jYW52YXNBcGlSZXF1ZXN0SWQmJnQudWludDMyKDQyKS5zdHJpbmcoZS5jYW52YXNBcGlSZXF1ZXN0SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17Y2FudmFzQXBpUXVlcnlQYXRoOlwiXCIsYXBwSWQ6XCJcIixjYW52YXNBcGlRdWVyeUZpZWxkczpcIlwiLGNhbnZhc0FwaUF1dGhUeXBlOlwiXCIsY2FudmFzQXBpUmVxdWVzdElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmNhbnZhc0FwaVF1ZXJ5UGF0aD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmFwcElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuY2FudmFzQXBpUXVlcnlGaWVsZHM9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5jYW52YXNBcGlBdXRoVHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLmNhbnZhc0FwaVJlcXVlc3RJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Y2FudmFzQXBpUXVlcnlQYXRoOlwiXCIsYXBwSWQ6XCJcIixjYW52YXNBcGlRdWVyeUZpZWxkczpcIlwiLGNhbnZhc0FwaUF1dGhUeXBlOlwiXCIsY2FudmFzQXBpUmVxdWVzdElkOlwiXCJ9O3JldHVybiB0LmNhbnZhc0FwaVF1ZXJ5UGF0aD1lLmNhbnZhc0FwaVF1ZXJ5UGF0aD8/XCJcIix0LmFwcElkPWUuYXBwSWQ/P1wiXCIsdC5jYW52YXNBcGlRdWVyeUZpZWxkcz1lLmNhbnZhc0FwaVF1ZXJ5RmllbGRzPz9cIlwiLHQuY2FudmFzQXBpQXV0aFR5cGU9ZS5jYW52YXNBcGlBdXRoVHlwZT8/XCJcIix0LmNhbnZhc0FwaVJlcXVlc3RJZD1lLmNhbnZhc0FwaVJlcXVlc3RJZD8/XCJcIix0fX0sdC5DYW52YXNDdXN0b21Ob3RpZmljYXRpb25TdGF0dXM9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubm90aWZpY2F0aW9uSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5ub3RpZmljYXRpb25JZCksXCJcIiE9PWUuY29nbmFjSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jb2duYWNJZCksXCJcIiE9PWUudXBkYXRlSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS51cGRhdGVJZCksXCJcIiE9PWUuc2Vzc2lvbklkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuc2Vzc2lvbklkKSwwIT09ZS5zdGF0dXMmJnQudWludDMyKDQwKS5pbnQzMihlLnN0YXR1cyksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtub3RpZmljYXRpb25JZDpcIlwiLGNvZ25hY0lkOlwiXCIsdXBkYXRlSWQ6XCJcIixzZXNzaW9uSWQ6XCJcIixzdGF0dXM6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubm90aWZpY2F0aW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5jb2duYWNJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnVwZGF0ZUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0Omkuc2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1Omkuc3RhdHVzPW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e25vdGlmaWNhdGlvbklkOlwiXCIsY29nbmFjSWQ6XCJcIix1cGRhdGVJZDpcIlwiLHNlc3Npb25JZDpcIlwiLHN0YXR1czowfTtyZXR1cm4gdC5ub3RpZmljYXRpb25JZD1lLm5vdGlmaWNhdGlvbklkPz9cIlwiLHQuY29nbmFjSWQ9ZS5jb2duYWNJZD8/XCJcIix0LnVwZGF0ZUlkPWUudXBkYXRlSWQ/P1wiXCIsdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWQ/P1wiXCIsdC5zdGF0dXM9ZS5zdGF0dXM/PzAsdH19LHQuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuYm9vdFNlc3Npb25JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLmJvb3RTZXNzaW9uSWQpLFwiXCIhPT1lLmRldmljZUlkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZGV2aWNlSWQpLFwiXCIhPT1lLmZpcm13YXJlVmVyc2lvbiYmdC51aW50MzIoMjYpLnN0cmluZyhlLmZpcm13YXJlVmVyc2lvbiksXCJcIiE9PWUuaGFyZHdhcmVWZXJzaW9uJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuaGFyZHdhcmVWZXJzaW9uKSwwIT09ZS5jbGllbnRUcyYmdC51aW50MzIoNDEpLmRvdWJsZShlLmNsaWVudFRzKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2Jvb3RTZXNzaW9uSWQ6XCJcIixkZXZpY2VJZDpcIlwiLGZpcm13YXJlVmVyc2lvbjpcIlwiLGhhcmR3YXJlVmVyc2lvbjpcIlwiLGNsaWVudFRzOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmJvb3RTZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5kZXZpY2VJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmZpcm13YXJlVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmhhcmR3YXJlVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLmNsaWVudFRzPW4uZG91YmxlKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtib290U2Vzc2lvbklkOlwiXCIsZGV2aWNlSWQ6XCJcIixmaXJtd2FyZVZlcnNpb246XCJcIixoYXJkd2FyZVZlcnNpb246XCJcIixjbGllbnRUczowfTtyZXR1cm4gdC5ib290U2Vzc2lvbklkPWUuYm9vdFNlc3Npb25JZD8/XCJcIix0LmRldmljZUlkPWUuZGV2aWNlSWQ/P1wiXCIsdC5maXJtd2FyZVZlcnNpb249ZS5maXJtd2FyZVZlcnNpb24/P1wiXCIsdC5oYXJkd2FyZVZlcnNpb249ZS5oYXJkd2FyZVZlcnNpb24/P1wiXCIsdC5jbGllbnRUcz1lLmNsaWVudFRzPz8wLHR9fSx0LkNvZkV0YWdMb2dFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5ldGFnJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuZXRhZyksXCJcIiE9PWUucHJldmlvdXNFdGFnJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUucHJldmlvdXNFdGFnKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2V0YWc6XCJcIixwcmV2aW91c0V0YWc6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuZXRhZz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnByZXZpb3VzRXRhZz1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZXRhZzpcIlwiLHByZXZpb3VzRXRhZzpcIlwifTtyZXR1cm4gdC5ldGFnPWUuZXRhZz8/XCJcIix0LnByZXZpb3VzRXRhZz1lLnByZXZpb3VzRXRhZz8/XCJcIix0fX0sdC5Db2duYWNGZWVkRXZlbnRCYXNlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLml0ZW1JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLml0ZW1JZCksXCJcIiE9PWUuY29nbmFjSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jb2duYWNJZCksXCJcIiE9PWUuaXRlbVR5cGUmJnQudWludDMyKDI2KS5zdHJpbmcoZS5pdGVtVHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtpdGVtSWQ6XCJcIixjb2duYWNJZDpcIlwiLGl0ZW1UeXBlOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLml0ZW1JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmNvZ25hY0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuaXRlbVR5cGU9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2l0ZW1JZDpcIlwiLGNvZ25hY0lkOlwiXCIsaXRlbVR5cGU6XCJcIn07cmV0dXJuIHQuaXRlbUlkPWUuaXRlbUlkPz9cIlwiLHQuY29nbmFjSWQ9ZS5jb2duYWNJZD8/XCJcIix0Lml0ZW1UeXBlPWUuaXRlbVR5cGU/P1wiXCIsdH19LHQuQ29nbmFjVHJheVNlcnZlckZlZWQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUuaXRlbVR5cGUmJnQudWludDMyKDgpLmludDMyKGUuaXRlbVR5cGUpLFwiXCIhPT1lLmZlZWRJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmZlZWRJZCksXCIwXCIhPT1lLmZlZWRSZWNlbmN5TWlucyYmdC51aW50MzIoMjQpLnVpbnQ2NChlLmZlZWRSZWNlbmN5TWlucyksXCIwXCIhPT1lLmFwcFJlY2VuY3lNaW5zJiZ0LnVpbnQzMigzMikudWludDY0KGUuYXBwUmVjZW5jeU1pbnMpLFwiXCIhPT1lLmNvZ25hY0lkJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuY29nbmFjSWQpLFwiMFwiIT09ZS5mcmllbmRTY29yZSYmdC51aW50MzIoNTYpLnVpbnQ2NChlLmZyaWVuZFNjb3JlKSwhMD09PWUuaXNCZXN0RnJpZW5kJiZ0LnVpbnQzMig2NCkuYm9vbChlLmlzQmVzdEZyaWVuZCksXCIwXCIhPT1lLmRpc3RhbmNlVG9WaWV3ZXJLaWxvbWV0ZXImJnQudWludDMyKDcyKS51aW50NjQoZS5kaXN0YW5jZVRvVmlld2VyS2lsb21ldGVyKSxcIlwiIT09ZS5mcmllbmRVc2VySWQmJnQudWludDMyKDgyKS5zdHJpbmcoZS5mcmllbmRVc2VySWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17aXRlbVR5cGU6MCxmZWVkSWQ6XCJcIixmZWVkUmVjZW5jeU1pbnM6XCIwXCIsYXBwUmVjZW5jeU1pbnM6XCIwXCIsY29nbmFjSWQ6XCJcIixmcmllbmRTY29yZTpcIjBcIixpc0Jlc3RGcmllbmQ6ITEsZGlzdGFuY2VUb1ZpZXdlcktpbG9tZXRlcjpcIjBcIixmcmllbmRVc2VySWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuaXRlbVR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLmZlZWRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmZlZWRSZWNlbmN5TWlucz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNDppLmFwcFJlY2VuY3lNaW5zPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmkuY29nbmFjSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5mcmllbmRTY29yZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgODppLmlzQmVzdEZyaWVuZD1uLmJvb2woKTticmVhaztjYXNlIDk6aS5kaXN0YW5jZVRvVmlld2VyS2lsb21ldGVyPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAxMDppLmZyaWVuZFVzZXJJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17aXRlbVR5cGU6MCxmZWVkSWQ6XCJcIixmZWVkUmVjZW5jeU1pbnM6XCIwXCIsYXBwUmVjZW5jeU1pbnM6XCIwXCIsY29nbmFjSWQ6XCJcIixmcmllbmRTY29yZTpcIjBcIixpc0Jlc3RGcmllbmQ6ITEsZGlzdGFuY2VUb1ZpZXdlcktpbG9tZXRlcjpcIjBcIixmcmllbmRVc2VySWQ6XCJcIn07cmV0dXJuIHQuaXRlbVR5cGU9ZS5pdGVtVHlwZT8/MCx0LmZlZWRJZD1lLmZlZWRJZD8/XCJcIix0LmZlZWRSZWNlbmN5TWlucz1lLmZlZWRSZWNlbmN5TWlucz8/XCIwXCIsdC5hcHBSZWNlbmN5TWlucz1lLmFwcFJlY2VuY3lNaW5zPz9cIjBcIix0LmNvZ25hY0lkPWUuY29nbmFjSWQ/P1wiXCIsdC5mcmllbmRTY29yZT1lLmZyaWVuZFNjb3JlPz9cIjBcIix0LmlzQmVzdEZyaWVuZD1lLmlzQmVzdEZyaWVuZD8/ITEsdC5kaXN0YW5jZVRvVmlld2VyS2lsb21ldGVyPWUuZGlzdGFuY2VUb1ZpZXdlcktpbG9tZXRlcj8/XCIwXCIsdC5mcmllbmRVc2VySWQ9ZS5mcmllbmRVc2VySWQ/P1wiXCIsdH19LHQuQ29tbWVyY2VTaG9wcGluZ0xpbmtJbXByZXNzaW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUucHJvZmlsZUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUucHJvZmlsZUlkKSxcIlwiIT09ZS5zdG9yZUlkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuc3RvcmVJZCksXCJcIiE9PWUucHJvZHVjdElkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUucHJvZHVjdElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3Byb2ZpbGVJZDpcIlwiLHN0b3JlSWQ6XCJcIixwcm9kdWN0SWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkucHJvZmlsZUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuc3RvcmVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnByb2R1Y3RJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cHJvZmlsZUlkOlwiXCIsc3RvcmVJZDpcIlwiLHByb2R1Y3RJZDpcIlwifTtyZXR1cm4gdC5wcm9maWxlSWQ9ZS5wcm9maWxlSWQ/P1wiXCIsdC5zdG9yZUlkPWUuc3RvcmVJZD8/XCJcIix0LnByb2R1Y3RJZD1lLnByb2R1Y3RJZD8/XCJcIix0fX0sdC5Db21tdW5pdGllc1N0YXR1c1VwZGF0ZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PigwIT09ZS5yZXNwb25zZSYmdC51aW50MzIoOCkuaW50MzIoZS5yZXNwb25zZSksXCJcIiE9PWUuc3RvcnlHcm91cElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuc3RvcnlHcm91cElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3Jlc3BvbnNlOjAsc3RvcnlHcm91cElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnJlc3BvbnNlPW4uaW50MzIoKTticmVhaztjYXNlIDI6aS5zdG9yeUdyb3VwSWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3Jlc3BvbnNlOjAsc3RvcnlHcm91cElkOlwiXCJ9O3JldHVybiB0LnJlc3BvbnNlPWUucmVzcG9uc2U/PzAsdC5zdG9yeUdyb3VwSWQ9ZS5zdG9yeUdyb3VwSWQ/P1wiXCIsdH19LHQuQ29udGFjdEJvb2tTZXJ2ZXJEZWJ1Zz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS51c2VyQ291bnRyeUNvZGUmJnQudWludDMyKDEwKS5zdHJpbmcoZS51c2VyQ291bnRyeUNvZGUpLFwiXCIhPT1lLmNvbnRhY3RNYXNrZWRSYXdQaG9uZU51bWJlciYmdC51aW50MzIoMTgpLnN0cmluZyhlLmNvbnRhY3RNYXNrZWRSYXdQaG9uZU51bWJlciksXCJcIiE9PWUuY29udGFjdFBob25lTnVtYmVyRm9ybWF0U3RhdHVzJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuY29udGFjdFBob25lTnVtYmVyRm9ybWF0U3RhdHVzKSxcIlwiIT09ZS5jb250YWN0Q291bnRyeUNvZGUmJnQudWludDMyKDM0KS5zdHJpbmcoZS5jb250YWN0Q291bnRyeUNvZGUpLFwiXCIhPT1lLmNvbnRhY3RQaG9uZVZhbGlkYXRpb25TdGF0dXMmJnQudWludDMyKDQyKS5zdHJpbmcoZS5jb250YWN0UGhvbmVWYWxpZGF0aW9uU3RhdHVzKSxcIlwiIT09ZS5jb250YWN0TWFza2VkRm9ybWF0dGVkUGhvbmVOdW1iZXImJnQudWludDMyKDUwKS5zdHJpbmcoZS5jb250YWN0TWFza2VkRm9ybWF0dGVkUGhvbmVOdW1iZXIpLFwiXCIhPT1lLmNvbnRhY3RIYXNoZWRGb3JtYXR0ZWRQaG9uZU51bWJlciYmdC51aW50MzIoNTgpLnN0cmluZyhlLmNvbnRhY3RIYXNoZWRGb3JtYXR0ZWRQaG9uZU51bWJlciksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt1c2VyQ291bnRyeUNvZGU6XCJcIixjb250YWN0TWFza2VkUmF3UGhvbmVOdW1iZXI6XCJcIixjb250YWN0UGhvbmVOdW1iZXJGb3JtYXRTdGF0dXM6XCJcIixjb250YWN0Q291bnRyeUNvZGU6XCJcIixjb250YWN0UGhvbmVWYWxpZGF0aW9uU3RhdHVzOlwiXCIsY29udGFjdE1hc2tlZEZvcm1hdHRlZFBob25lTnVtYmVyOlwiXCIsY29udGFjdEhhc2hlZEZvcm1hdHRlZFBob25lTnVtYmVyOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnVzZXJDb3VudHJ5Q29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmNvbnRhY3RNYXNrZWRSYXdQaG9uZU51bWJlcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmNvbnRhY3RQaG9uZU51bWJlckZvcm1hdFN0YXR1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmNvbnRhY3RDb3VudHJ5Q29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLmNvbnRhY3RQaG9uZVZhbGlkYXRpb25TdGF0dXM9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5jb250YWN0TWFza2VkRm9ybWF0dGVkUGhvbmVOdW1iZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5jb250YWN0SGFzaGVkRm9ybWF0dGVkUGhvbmVOdW1iZXI9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3VzZXJDb3VudHJ5Q29kZTpcIlwiLGNvbnRhY3RNYXNrZWRSYXdQaG9uZU51bWJlcjpcIlwiLGNvbnRhY3RQaG9uZU51bWJlckZvcm1hdFN0YXR1czpcIlwiLGNvbnRhY3RDb3VudHJ5Q29kZTpcIlwiLGNvbnRhY3RQaG9uZVZhbGlkYXRpb25TdGF0dXM6XCJcIixjb250YWN0TWFza2VkRm9ybWF0dGVkUGhvbmVOdW1iZXI6XCJcIixjb250YWN0SGFzaGVkRm9ybWF0dGVkUGhvbmVOdW1iZXI6XCJcIn07cmV0dXJuIHQudXNlckNvdW50cnlDb2RlPWUudXNlckNvdW50cnlDb2RlPz9cIlwiLHQuY29udGFjdE1hc2tlZFJhd1Bob25lTnVtYmVyPWUuY29udGFjdE1hc2tlZFJhd1Bob25lTnVtYmVyPz9cIlwiLHQuY29udGFjdFBob25lTnVtYmVyRm9ybWF0U3RhdHVzPWUuY29udGFjdFBob25lTnVtYmVyRm9ybWF0U3RhdHVzPz9cIlwiLHQuY29udGFjdENvdW50cnlDb2RlPWUuY29udGFjdENvdW50cnlDb2RlPz9cIlwiLHQuY29udGFjdFBob25lVmFsaWRhdGlvblN0YXR1cz1lLmNvbnRhY3RQaG9uZVZhbGlkYXRpb25TdGF0dXM/P1wiXCIsdC5jb250YWN0TWFza2VkRm9ybWF0dGVkUGhvbmVOdW1iZXI9ZS5jb250YWN0TWFza2VkRm9ybWF0dGVkUGhvbmVOdW1iZXI/P1wiXCIsdC5jb250YWN0SGFzaGVkRm9ybWF0dGVkUGhvbmVOdW1iZXI9ZS5jb250YWN0SGFzaGVkRm9ybWF0dGVkUGhvbmVOdW1iZXI/P1wiXCIsdH19LHQuQ29udGFjdFN5bmNFbmFibGVkPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KCEwPT09ZS5jb250YWN0U3luY0VuYWJsZWQmJnQudWludDMyKDgpLmJvb2woZS5jb250YWN0U3luY0VuYWJsZWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17Y29udGFjdFN5bmNFbmFibGVkOiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkuY29udGFjdFN5bmNFbmFibGVkPW4uYm9vbCgpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtjb250YWN0U3luY0VuYWJsZWQ6ITF9O3JldHVybiB0LmNvbnRhY3RTeW5jRW5hYmxlZD1lLmNvbnRhY3RTeW5jRW5hYmxlZD8/ITEsdH19LHQuQ3JlYXRpdmVUb29sc1RUU1JlcXVlc3RSZWNlaXZlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnZvaWNlTmFtZSYmdC51aW50MzIoMTApLnN0cmluZyhlLnZvaWNlTmFtZSksXCIwXCIhPT1lLnZvaWNlU3R5bGUmJnQudWludDMyKDE2KS51aW50NjQoZS52b2ljZVN0eWxlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3ZvaWNlTmFtZTpcIlwiLHZvaWNlU3R5bGU6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnZvaWNlTmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZvaWNlU3R5bGU9cChuLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3ZvaWNlTmFtZTpcIlwiLHZvaWNlU3R5bGU6XCIwXCJ9O3JldHVybiB0LnZvaWNlTmFtZT1lLnZvaWNlTmFtZT8/XCJcIix0LnZvaWNlU3R5bGU9ZS52b2ljZVN0eWxlPz9cIjBcIix0fX0sdC5ETURVc2VyQWN0aW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuZG1kRXZlbnRUWXBlJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuZG1kRXZlbnRUWXBlKSwhMD09PWUuaXNNZWRpYUV4cG9ydEVuYWJsZWQmJnQudWludDMyKDE2KS5ib29sKGUuaXNNZWRpYUV4cG9ydEVuYWJsZWQpLCEwPT09ZS5pc0RhdGVGaWx0ZXJFbmFibGVkJiZ0LnVpbnQzMigyNCkuYm9vbChlLmlzRGF0ZUZpbHRlckVuYWJsZWQpLFwiMFwiIT09ZS5wYWNrYWdlU2l6ZSYmdC51aW50MzIoMzIpLnVpbnQ2NChlLnBhY2thZ2VTaXplKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2RtZEV2ZW50VFlwZTpcIlwiLGlzTWVkaWFFeHBvcnRFbmFibGVkOiExLGlzRGF0ZUZpbHRlckVuYWJsZWQ6ITEscGFja2FnZVNpemU6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmRtZEV2ZW50VFlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmlzTWVkaWFFeHBvcnRFbmFibGVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMzppLmlzRGF0ZUZpbHRlckVuYWJsZWQ9bi5ib29sKCk7YnJlYWs7Y2FzZSA0OmkucGFja2FnZVNpemU9cChuLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2RtZEV2ZW50VFlwZTpcIlwiLGlzTWVkaWFFeHBvcnRFbmFibGVkOiExLGlzRGF0ZUZpbHRlckVuYWJsZWQ6ITEscGFja2FnZVNpemU6XCIwXCJ9O3JldHVybiB0LmRtZEV2ZW50VFlwZT1lLmRtZEV2ZW50VFlwZT8/XCJcIix0LmlzTWVkaWFFeHBvcnRFbmFibGVkPWUuaXNNZWRpYUV4cG9ydEVuYWJsZWQ/PyExLHQuaXNEYXRlRmlsdGVyRW5hYmxlZD1lLmlzRGF0ZUZpbHRlckVuYWJsZWQ/PyExLHQucGFja2FnZVNpemU9ZS5wYWNrYWdlU2l6ZT8/XCIwXCIsdH19LHQuRGFpbHlDdXJyZW5jeUNvbnZlcnNpb25SYXRlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmZyb21DdXJyZW5jeSYmdC51aW50MzIoMTApLnN0cmluZyhlLmZyb21DdXJyZW5jeSksXCJcIiE9PWUudG9DdXJyZW5jeSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnRvQ3VycmVuY3kpLFwiXCIhPT1lLmNvbnZlcnNpb25SYXRlJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuY29udmVyc2lvblJhdGUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZnJvbUN1cnJlbmN5OlwiXCIsdG9DdXJyZW5jeTpcIlwiLGNvbnZlcnNpb25SYXRlOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmZyb21DdXJyZW5jeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnRvQ3VycmVuY3k9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5jb252ZXJzaW9uUmF0ZT1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZnJvbUN1cnJlbmN5OlwiXCIsdG9DdXJyZW5jeTpcIlwiLGNvbnZlcnNpb25SYXRlOlwiXCJ9O3JldHVybiB0LmZyb21DdXJyZW5jeT1lLmZyb21DdXJyZW5jeT8/XCJcIix0LnRvQ3VycmVuY3k9ZS50b0N1cnJlbmN5Pz9cIlwiLHQuY29udmVyc2lvblJhdGU9ZS5jb252ZXJzaW9uUmF0ZT8/XCJcIix0fX0sdC5EYXRhUmV3YXJkU3RhdHVzPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnByZWZldGNoZWRHaG9zdFJld2FyZElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUucHJlZmV0Y2hlZEdob3N0UmV3YXJkSWQpLFwiXCIhPT1lLmNhbXBhaWduSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jYW1wYWlnbklkKSwwIT09ZS5zdGF0dXMmJnQudWludDMyKDI0KS5pbnQzMihlLnN0YXR1cyksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtwcmVmZXRjaGVkR2hvc3RSZXdhcmRJZDpcIlwiLGNhbXBhaWduSWQ6XCJcIixzdGF0dXM6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkucHJlZmV0Y2hlZEdob3N0UmV3YXJkSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5jYW1wYWlnbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc3RhdHVzPW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3ByZWZldGNoZWRHaG9zdFJld2FyZElkOlwiXCIsY2FtcGFpZ25JZDpcIlwiLHN0YXR1czowfTtyZXR1cm4gdC5wcmVmZXRjaGVkR2hvc3RSZXdhcmRJZD1lLnByZWZldGNoZWRHaG9zdFJld2FyZElkPz9cIlwiLHQuY2FtcGFpZ25JZD1lLmNhbXBhaWduSWQ/P1wiXCIsdC5zdGF0dXM9ZS5zdGF0dXM/PzAsdH19LHQuRGV2aWNlVG9rZW5FdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5kZXZpY2VUb2tlbkhhc2gmJnQudWludDMyKDEwKS5zdHJpbmcoZS5kZXZpY2VUb2tlbkhhc2gpLFwiXCIhPT1lLnJlYXNvbiYmdC51aW50MzIoMTgpLnN0cmluZyhlLnJlYXNvbiksXCJcIiE9PWUudm9pcERldmljZVRva2VuSGFzaCYmdC51aW50MzIoMjYpLnN0cmluZyhlLnZvaXBEZXZpY2VUb2tlbkhhc2gpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZGV2aWNlVG9rZW5IYXNoOlwiXCIscmVhc29uOlwiXCIsdm9pcERldmljZVRva2VuSGFzaDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5kZXZpY2VUb2tlbkhhc2g9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5yZWFzb249bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS52b2lwRGV2aWNlVG9rZW5IYXNoPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtkZXZpY2VUb2tlbkhhc2g6XCJcIixyZWFzb246XCJcIix2b2lwRGV2aWNlVG9rZW5IYXNoOlwiXCJ9O3JldHVybiB0LmRldmljZVRva2VuSGFzaD1lLmRldmljZVRva2VuSGFzaD8/XCJcIix0LnJlYXNvbj1lLnJlYXNvbj8/XCJcIix0LnZvaXBEZXZpY2VUb2tlbkhhc2g9ZS52b2lwRGV2aWNlVG9rZW5IYXNoPz9cIlwiLHR9fSx0LkRpcmVjdFNuYXBWaWV3U2VydmVyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiMFwiIT09ZS5jYXB0aW9uJiZ0LnVpbnQzMig4KS51aW50NjQoZS5jYXB0aW9uKSxcIjBcIiE9PWUuY2FtZXJhJiZ0LnVpbnQzMigxNikudWludDY0KGUuY2FtZXJhKSwhMD09PWUuZHJhd2luZyYmdC51aW50MzIoMjQpLmJvb2woZS5kcmF3aW5nKSxcIlwiIT09ZS5maWx0ZXImJnQudWludDMyKDM0KS5zdHJpbmcoZS5maWx0ZXIpLDAhPT1lLmZpbHRlclR5cGUmJnQudWludDMyKDQwKS5pbnQzMihlLmZpbHRlclR5cGUpLCEwPT09ZS5mbGFzaCYmdC51aW50MzIoNDgpLmJvb2woZS5mbGFzaCksMCE9PWUuc291cmNlJiZ0LnVpbnQzMig1NikuaW50MzIoZS5zb3VyY2UpLDAhPT1lLnNuYXBUaW1lU2VjJiZ0LnVpbnQzMig2NSkuZG91YmxlKGUuc25hcFRpbWVTZWMpLCEwPT09ZS5zbmFwVGltZUlzTG9vcCYmdC51aW50MzIoNzIpLmJvb2woZS5zbmFwVGltZUlzTG9vcCksMCE9PWUucm9sbE1heERlZ3JlZSYmdC51aW50MzIoODEpLmRvdWJsZShlLnJvbGxNYXhEZWdyZWUpLDAhPT1lLnJvbGxNaW5EZWdyZWUmJnQudWludDMyKDg5KS5kb3VibGUoZS5yb2xsTWluRGVncmVlKSwhMD09PWUuZnVsbFZpZXcmJnQudWludDMyKDk2KS5ib29sKGUuZnVsbFZpZXcpLCEwPT09ZS5pbml0aWFsVmlldyYmdC51aW50MzIoMTA0KS5ib29sKGUuaW5pdGlhbFZpZXcpLDAhPT1lLnZpZXdUaW1lU2VjJiZ0LnVpbnQzMigxMTMpLmRvdWJsZShlLnZpZXdUaW1lU2VjKSxcIlwiIT09ZS5zbmFwSWQmJnQudWludDMyKDEyMikuc3RyaW5nKGUuc25hcElkKSwwIT09ZS5maWx0ZXJWaXN1YWwmJnQudWludDMyKDEyOCkuaW50MzIoZS5maWx0ZXJWaXN1YWwpLDAhPT1lLmZpbHRlckluZm8mJnQudWludDMyKDEzNikuaW50MzIoZS5maWx0ZXJJbmZvKSxcIlwiIT09ZS5maWx0ZXJHZW9GZW5jZSYmdC51aW50MzIoMTQ2KS5zdHJpbmcoZS5maWx0ZXJHZW9GZW5jZSksXCJcIiE9PWUuZmlsdGVyU3BvbnNvciYmdC51aW50MzIoMTU0KS5zdHJpbmcoZS5maWx0ZXJTcG9uc29yKSxcIlwiIT09ZS5maWx0ZXJMZW5zSWQmJnQudWludDMyKDE2Mikuc3RyaW5nKGUuZmlsdGVyTGVuc0lkKSxcIlwiIT09ZS5sZW5zT3B0aW9uSWQmJnQudWludDMyKDE3MCkuc3RyaW5nKGUubGVuc09wdGlvbklkKSwwIT09ZS5hY2tUaW1lU2VjJiZ0LnVpbnQzMigxNzcpLmRvdWJsZShlLmFja1RpbWVTZWMpLDAhPT1lLnJlcGxheUFtb3VudCYmdC51aW50MzIoMTg1KS5kb3VibGUoZS5yZXBsYXlBbW91bnQpLFwiXCIhPT1lLnN0b3J5Vmlld0lkJiZ0LnVpbnQzMigxOTQpLnN0cmluZyhlLnN0b3J5Vmlld0lkKSwwIT09ZS5iYW5kV2lkdGhDbGFzcyYmdC51aW50MzIoMjAwKS5pbnQzMihlLmJhbmRXaWR0aENsYXNzKSwwIT09ZS5wbGF5YmFja1ZvbHVtZSYmdC51aW50MzIoMjA5KS5kb3VibGUoZS5wbGF5YmFja1ZvbHVtZSksXCJcIiE9PWUubWlzY2hpZWZJZCYmdC51aW50MzIoMjE4KS5zdHJpbmcoZS5taXNjaGllZklkKSwhMD09PWUud2l0aEF0dGFjaG1lbnQmJnQudWludDMyKDIyNCkuYm9vbChlLndpdGhBdHRhY2htZW50KSwwIT09ZS5jbGllbnRUcyYmdC51aW50MzIoMjMzKS5kb3VibGUoZS5jbGllbnRUcyksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjYXB0aW9uOlwiMFwiLGNhbWVyYTpcIjBcIixkcmF3aW5nOiExLGZpbHRlcjpcIlwiLGZpbHRlclR5cGU6MCxmbGFzaDohMSxzb3VyY2U6MCxzbmFwVGltZVNlYzowLHNuYXBUaW1lSXNMb29wOiExLHJvbGxNYXhEZWdyZWU6MCxyb2xsTWluRGVncmVlOjAsZnVsbFZpZXc6ITEsaW5pdGlhbFZpZXc6ITEsdmlld1RpbWVTZWM6MCxzbmFwSWQ6XCJcIixmaWx0ZXJWaXN1YWw6MCxmaWx0ZXJJbmZvOjAsZmlsdGVyR2VvRmVuY2U6XCJcIixmaWx0ZXJTcG9uc29yOlwiXCIsZmlsdGVyTGVuc0lkOlwiXCIsbGVuc09wdGlvbklkOlwiXCIsYWNrVGltZVNlYzowLHJlcGxheUFtb3VudDowLHN0b3J5Vmlld0lkOlwiXCIsYmFuZFdpZHRoQ2xhc3M6MCxwbGF5YmFja1ZvbHVtZTowLG1pc2NoaWVmSWQ6XCJcIix3aXRoQXR0YWNobWVudDohMSxjbGllbnRUczowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5jYXB0aW9uPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAyOmkuY2FtZXJhPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmkuZHJhd2luZz1uLmJvb2woKTticmVhaztjYXNlIDQ6aS5maWx0ZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5maWx0ZXJUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDY6aS5mbGFzaD1uLmJvb2woKTticmVhaztjYXNlIDc6aS5zb3VyY2U9bi5pbnQzMigpO2JyZWFrO2Nhc2UgODppLnNuYXBUaW1lU2VjPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA5Omkuc25hcFRpbWVJc0xvb3A9bi5ib29sKCk7YnJlYWs7Y2FzZSAxMDppLnJvbGxNYXhEZWdyZWU9bi5kb3VibGUoKTticmVhaztjYXNlIDExOmkucm9sbE1pbkRlZ3JlZT1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTI6aS5mdWxsVmlldz1uLmJvb2woKTticmVhaztjYXNlIDEzOmkuaW5pdGlhbFZpZXc9bi5ib29sKCk7YnJlYWs7Y2FzZSAxNDppLnZpZXdUaW1lU2VjPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAxNTppLnNuYXBJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTY6aS5maWx0ZXJWaXN1YWw9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTc6aS5maWx0ZXJJbmZvPW4uaW50MzIoKTticmVhaztjYXNlIDE4OmkuZmlsdGVyR2VvRmVuY2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDE5OmkuZmlsdGVyU3BvbnNvcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjA6aS5maWx0ZXJMZW5zSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDIxOmkubGVuc09wdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMjppLmFja1RpbWVTZWM9bi5kb3VibGUoKTticmVhaztjYXNlIDIzOmkucmVwbGF5QW1vdW50PW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAyNDppLnN0b3J5Vmlld0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyNTppLmJhbmRXaWR0aENsYXNzPW4uaW50MzIoKTticmVhaztjYXNlIDI2OmkucGxheWJhY2tWb2x1bWU9bi5kb3VibGUoKTticmVhaztjYXNlIDI3OmkubWlzY2hpZWZJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjg6aS53aXRoQXR0YWNobWVudD1uLmJvb2woKTticmVhaztjYXNlIDI5OmkuY2xpZW50VHM9bi5kb3VibGUoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2NhcHRpb246XCIwXCIsY2FtZXJhOlwiMFwiLGRyYXdpbmc6ITEsZmlsdGVyOlwiXCIsZmlsdGVyVHlwZTowLGZsYXNoOiExLHNvdXJjZTowLHNuYXBUaW1lU2VjOjAsc25hcFRpbWVJc0xvb3A6ITEscm9sbE1heERlZ3JlZTowLHJvbGxNaW5EZWdyZWU6MCxmdWxsVmlldzohMSxpbml0aWFsVmlldzohMSx2aWV3VGltZVNlYzowLHNuYXBJZDpcIlwiLGZpbHRlclZpc3VhbDowLGZpbHRlckluZm86MCxmaWx0ZXJHZW9GZW5jZTpcIlwiLGZpbHRlclNwb25zb3I6XCJcIixmaWx0ZXJMZW5zSWQ6XCJcIixsZW5zT3B0aW9uSWQ6XCJcIixhY2tUaW1lU2VjOjAscmVwbGF5QW1vdW50OjAsc3RvcnlWaWV3SWQ6XCJcIixiYW5kV2lkdGhDbGFzczowLHBsYXliYWNrVm9sdW1lOjAsbWlzY2hpZWZJZDpcIlwiLHdpdGhBdHRhY2htZW50OiExLGNsaWVudFRzOjB9O3JldHVybiB0LmNhcHRpb249ZS5jYXB0aW9uPz9cIjBcIix0LmNhbWVyYT1lLmNhbWVyYT8/XCIwXCIsdC5kcmF3aW5nPWUuZHJhd2luZz8/ITEsdC5maWx0ZXI9ZS5maWx0ZXI/P1wiXCIsdC5maWx0ZXJUeXBlPWUuZmlsdGVyVHlwZT8/MCx0LmZsYXNoPWUuZmxhc2g/PyExLHQuc291cmNlPWUuc291cmNlPz8wLHQuc25hcFRpbWVTZWM9ZS5zbmFwVGltZVNlYz8/MCx0LnNuYXBUaW1lSXNMb29wPWUuc25hcFRpbWVJc0xvb3A/PyExLHQucm9sbE1heERlZ3JlZT1lLnJvbGxNYXhEZWdyZWU/PzAsdC5yb2xsTWluRGVncmVlPWUucm9sbE1pbkRlZ3JlZT8/MCx0LmZ1bGxWaWV3PWUuZnVsbFZpZXc/PyExLHQuaW5pdGlhbFZpZXc9ZS5pbml0aWFsVmlldz8/ITEsdC52aWV3VGltZVNlYz1lLnZpZXdUaW1lU2VjPz8wLHQuc25hcElkPWUuc25hcElkPz9cIlwiLHQuZmlsdGVyVmlzdWFsPWUuZmlsdGVyVmlzdWFsPz8wLHQuZmlsdGVySW5mbz1lLmZpbHRlckluZm8/PzAsdC5maWx0ZXJHZW9GZW5jZT1lLmZpbHRlckdlb0ZlbmNlPz9cIlwiLHQuZmlsdGVyU3BvbnNvcj1lLmZpbHRlclNwb25zb3I/P1wiXCIsdC5maWx0ZXJMZW5zSWQ9ZS5maWx0ZXJMZW5zSWQ/P1wiXCIsdC5sZW5zT3B0aW9uSWQ9ZS5sZW5zT3B0aW9uSWQ/P1wiXCIsdC5hY2tUaW1lU2VjPWUuYWNrVGltZVNlYz8/MCx0LnJlcGxheUFtb3VudD1lLnJlcGxheUFtb3VudD8/MCx0LnN0b3J5Vmlld0lkPWUuc3RvcnlWaWV3SWQ/P1wiXCIsdC5iYW5kV2lkdGhDbGFzcz1lLmJhbmRXaWR0aENsYXNzPz8wLHQucGxheWJhY2tWb2x1bWU9ZS5wbGF5YmFja1ZvbHVtZT8/MCx0Lm1pc2NoaWVmSWQ9ZS5taXNjaGllZklkPz9cIlwiLHQud2l0aEF0dGFjaG1lbnQ9ZS53aXRoQXR0YWNobWVudD8/ITEsdC5jbGllbnRUcz1lLmNsaWVudFRzPz8wLHR9fSx0LkR1bW15U2VydmVyRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oITA9PT1lLmR1bW15Qm9vbEZpZWxkJiZ0LnVpbnQzMig4KS5ib29sKGUuZHVtbXlCb29sRmllbGQpLFwiXCIhPT1lLmR1bW15U3RyaW5nRmllbGQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5kdW1teVN0cmluZ0ZpZWxkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2R1bW15Qm9vbEZpZWxkOiExLGR1bW15U3RyaW5nRmllbGQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuZHVtbXlCb29sRmllbGQ9bi5ib29sKCk7YnJlYWs7Y2FzZSAyOmkuZHVtbXlTdHJpbmdGaWVsZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZHVtbXlCb29sRmllbGQ6ITEsZHVtbXlTdHJpbmdGaWVsZDpcIlwifTtyZXR1cm4gdC5kdW1teUJvb2xGaWVsZD1lLmR1bW15Qm9vbEZpZWxkPz8hMSx0LmR1bW15U3RyaW5nRmllbGQ9ZS5kdW1teVN0cmluZ0ZpZWxkPz9cIlwiLHR9fSx0LkVtYWlsQ2FtcGFpZ25FdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5ldmVudElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuZXZlbnRJZCksXCJcIiE9PWUuZW1haWxEb21haW4mJnQudWludDMyKDI2KS5zdHJpbmcoZS5lbWFpbERvbWFpbiksMCE9PWUudHlwZSYmdC51aW50MzIoMzIpLmludDMyKGUudHlwZSksXCJcIiE9PWUuY2FtcGFpZ25JZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmNhbXBhaWduSWQpLFwiXCIhPT1lLmNhbXBhaWduTmFtZSYmdC51aW50MzIoNTApLnN0cmluZyhlLmNhbXBhaWduTmFtZSksXCJcIiE9PWUuY2F0ZWdvcmllcyYmdC51aW50MzIoNTgpLnN0cmluZyhlLmNhdGVnb3JpZXMpLFwiXCIhPT1lLnJlYXNvbiYmdC51aW50MzIoNjYpLnN0cmluZyhlLnJlYXNvbiksXCJcIiE9PWUudXJsJiZ0LnVpbnQzMig3NCkuc3RyaW5nKGUudXJsKSwwIT09ZS5ldmVudFRpbWVzdGFtcCYmdC51aW50MzIoODEpLmRvdWJsZShlLmV2ZW50VGltZXN0YW1wKSxcIlwiIT09ZS5jb250ZXh0SWQmJnQudWludDMyKDkwKS5zdHJpbmcoZS5jb250ZXh0SWQpLFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoOTgpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLmV4cGVyaW1lbnRJZCksXCJcIiE9PWUubGFzdEtub3duQ291bnRyeSYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5sYXN0S25vd25Db3VudHJ5KSwhMD09PWUud2l0aFVuaXZlcnNhbEhvbGRvdXQmJnQudWludDMyKDEyMCkuYm9vbChlLndpdGhVbml2ZXJzYWxIb2xkb3V0KSxcIlwiIT09ZS50YXJnZXRTdGF0dXMmJnQudWludDMyKDEzMCkuc3RyaW5nKGUudGFyZ2V0U3RhdHVzKSwwIT09ZS5jb25maXJtYXRpb25TdGF0dXMmJnQudWludDMyKDEzNikuaW50MzIoZS5jb25maXJtYXRpb25TdGF0dXMpLFwiXCIhPT1lLnVuc3Vic2NyaWJlZENhdGVnb3J5JiZ0LnVpbnQzMigxNDYpLnN0cmluZyhlLnVuc3Vic2NyaWJlZENhdGVnb3J5KSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2V2ZW50SWQ6XCJcIixlbWFpbERvbWFpbjpcIlwiLHR5cGU6MCxjYW1wYWlnbklkOlwiXCIsY2FtcGFpZ25OYW1lOlwiXCIsY2F0ZWdvcmllczpcIlwiLHJlYXNvbjpcIlwiLHVybDpcIlwiLGV2ZW50VGltZXN0YW1wOjAsY29udGV4dElkOlwiXCIsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsbGFzdEtub3duQ291bnRyeTpcIlwiLHdpdGhVbml2ZXJzYWxIb2xkb3V0OiExLHRhcmdldFN0YXR1czpcIlwiLGNvbmZpcm1hdGlvblN0YXR1czowLHVuc3Vic2NyaWJlZENhdGVnb3J5OlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmV2ZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5lbWFpbERvbWFpbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNTppLmNhbXBhaWduSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5jYW1wYWlnbk5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5jYXRlZ29yaWVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA4OmkucmVhc29uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmkudXJsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLmV2ZW50VGltZXN0YW1wPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAxMTppLmNvbnRleHRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS5zdHVkeU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDEzOmkuZXhwZXJpbWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLmxhc3RLbm93bkNvdW50cnk9bi5zdHJpbmcoKTticmVhaztjYXNlIDE1Omkud2l0aFVuaXZlcnNhbEhvbGRvdXQ9bi5ib29sKCk7YnJlYWs7Y2FzZSAxNjppLnRhcmdldFN0YXR1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTc6aS5jb25maXJtYXRpb25TdGF0dXM9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTg6aS51bnN1YnNjcmliZWRDYXRlZ29yeT1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZXZlbnRJZDpcIlwiLGVtYWlsRG9tYWluOlwiXCIsdHlwZTowLGNhbXBhaWduSWQ6XCJcIixjYW1wYWlnbk5hbWU6XCJcIixjYXRlZ29yaWVzOlwiXCIscmVhc29uOlwiXCIsdXJsOlwiXCIsZXZlbnRUaW1lc3RhbXA6MCxjb250ZXh0SWQ6XCJcIixzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIixsYXN0S25vd25Db3VudHJ5OlwiXCIsd2l0aFVuaXZlcnNhbEhvbGRvdXQ6ITEsdGFyZ2V0U3RhdHVzOlwiXCIsY29uZmlybWF0aW9uU3RhdHVzOjAsdW5zdWJzY3JpYmVkQ2F0ZWdvcnk6XCJcIn07cmV0dXJuIHQuZXZlbnRJZD1lLmV2ZW50SWQ/P1wiXCIsdC5lbWFpbERvbWFpbj1lLmVtYWlsRG9tYWluPz9cIlwiLHQudHlwZT1lLnR5cGU/PzAsdC5jYW1wYWlnbklkPWUuY2FtcGFpZ25JZD8/XCJcIix0LmNhbXBhaWduTmFtZT1lLmNhbXBhaWduTmFtZT8/XCJcIix0LmNhdGVnb3JpZXM9ZS5jYXRlZ29yaWVzPz9cIlwiLHQucmVhc29uPWUucmVhc29uPz9cIlwiLHQudXJsPWUudXJsPz9cIlwiLHQuZXZlbnRUaW1lc3RhbXA9ZS5ldmVudFRpbWVzdGFtcD8/MCx0LmNvbnRleHRJZD1lLmNvbnRleHRJZD8/XCJcIix0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0Lmxhc3RLbm93bkNvdW50cnk9ZS5sYXN0S25vd25Db3VudHJ5Pz9cIlwiLHQud2l0aFVuaXZlcnNhbEhvbGRvdXQ9ZS53aXRoVW5pdmVyc2FsSG9sZG91dD8/ITEsdC50YXJnZXRTdGF0dXM9ZS50YXJnZXRTdGF0dXM/P1wiXCIsdC5jb25maXJtYXRpb25TdGF0dXM9ZS5jb25maXJtYXRpb25TdGF0dXM/PzAsdC51bnN1YnNjcmliZWRDYXRlZ29yeT1lLnVuc3Vic2NyaWJlZENhdGVnb3J5Pz9cIlwiLHR9fSx0LkV4YW1wbGVCbGl6emFyZFNlcnZlckV2ZW50PXtlbmNvZGUoZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpeyEwPT09ZS5leGFtcGxlQm9vbEZpZWxkJiZuLnVpbnQzMig4KS5ib29sKGUuZXhhbXBsZUJvb2xGaWVsZCksMCE9PWUuZXhhbXBsZURvdWJsZUZpZWxkJiZuLnVpbnQzMigxNykuZG91YmxlKGUuZXhhbXBsZURvdWJsZUZpZWxkKSxcIjBcIiE9PWUuZXhhbXBsZUxvbmdGaWVsZCYmbi51aW50MzIoMjQpLnVpbnQ2NChlLmV4YW1wbGVMb25nRmllbGQpLDAhPT1lLmV4YW1wbGVEYXRlRmllbGQmJm4udWludDMyKDMzKS5kb3VibGUoZS5leGFtcGxlRGF0ZUZpZWxkKSxcIlwiIT09ZS5leGFtcGxlU3RyaW5nRmllbGQmJm4udWludDMyKDQyKS5zdHJpbmcoZS5leGFtcGxlU3RyaW5nRmllbGQpLDAhPT1lLmV4YW1wbGVFbnVtRmllbGQmJm4udWludDMyKDQ4KS5pbnQzMihlLmV4YW1wbGVFbnVtRmllbGQpLHZvaWQgMCE9PWUuZXhhbXBsZUNsYXNzRmllbGQmJnQuRXhhbXBsZUNsYXNzLmVuY29kZShlLmV4YW1wbGVDbGFzc0ZpZWxkLG4udWludDMyKDU4KS5mb3JrKCkpLmxkZWxpbSgpO2Zvcihjb25zdCByIG9mIGUuZXhhbXBsZUxpc3RDbGFzc0ZpZWxkKXQuRXhhbXBsZUNsYXNzLmVuY29kZShyLG4udWludDMyKDY2KS5mb3JrKCkpLmxkZWxpbSgpO3JldHVybiBufSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2V4YW1wbGVCb29sRmllbGQ6ITEsZXhhbXBsZURvdWJsZUZpZWxkOjAsZXhhbXBsZUxvbmdGaWVsZDpcIjBcIixleGFtcGxlRGF0ZUZpZWxkOjAsZXhhbXBsZVN0cmluZ0ZpZWxkOlwiXCIsZXhhbXBsZUVudW1GaWVsZDowLGV4YW1wbGVDbGFzc0ZpZWxkOnZvaWQgMCxleGFtcGxlTGlzdENsYXNzRmllbGQ6W119O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmV4YW1wbGVCb29sRmllbGQ9ci5ib29sKCk7YnJlYWs7Y2FzZSAyOmEuZXhhbXBsZURvdWJsZUZpZWxkPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAzOmEuZXhhbXBsZUxvbmdGaWVsZD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNDphLmV4YW1wbGVEYXRlRmllbGQ9ci5kb3VibGUoKTticmVhaztjYXNlIDU6YS5leGFtcGxlU3RyaW5nRmllbGQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS5leGFtcGxlRW51bUZpZWxkPXIuaW50MzIoKTticmVhaztjYXNlIDc6YS5leGFtcGxlQ2xhc3NGaWVsZD10LkV4YW1wbGVDbGFzcy5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDg6YS5leGFtcGxlTGlzdENsYXNzRmllbGQucHVzaCh0LkV4YW1wbGVDbGFzcy5kZWNvZGUocixyLnVpbnQzMigpKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtleGFtcGxlQm9vbEZpZWxkOiExLGV4YW1wbGVEb3VibGVGaWVsZDowLGV4YW1wbGVMb25nRmllbGQ6XCIwXCIsZXhhbXBsZURhdGVGaWVsZDowLGV4YW1wbGVTdHJpbmdGaWVsZDpcIlwiLGV4YW1wbGVFbnVtRmllbGQ6MCxleGFtcGxlQ2xhc3NGaWVsZDp2b2lkIDAsZXhhbXBsZUxpc3RDbGFzc0ZpZWxkOltdfTtyZXR1cm4gbi5leGFtcGxlQm9vbEZpZWxkPWUuZXhhbXBsZUJvb2xGaWVsZD8/ITEsbi5leGFtcGxlRG91YmxlRmllbGQ9ZS5leGFtcGxlRG91YmxlRmllbGQ/PzAsbi5leGFtcGxlTG9uZ0ZpZWxkPWUuZXhhbXBsZUxvbmdGaWVsZD8/XCIwXCIsbi5leGFtcGxlRGF0ZUZpZWxkPWUuZXhhbXBsZURhdGVGaWVsZD8/MCxuLmV4YW1wbGVTdHJpbmdGaWVsZD1lLmV4YW1wbGVTdHJpbmdGaWVsZD8/XCJcIixuLmV4YW1wbGVFbnVtRmllbGQ9ZS5leGFtcGxlRW51bUZpZWxkPz8wLG4uZXhhbXBsZUNsYXNzRmllbGQ9dm9pZCAwIT09ZS5leGFtcGxlQ2xhc3NGaWVsZCYmbnVsbCE9PWUuZXhhbXBsZUNsYXNzRmllbGQ/dC5FeGFtcGxlQ2xhc3MuZnJvbVBhcnRpYWwoZS5leGFtcGxlQ2xhc3NGaWVsZCk6dm9pZCAwLG4uZXhhbXBsZUxpc3RDbGFzc0ZpZWxkPWUuZXhhbXBsZUxpc3RDbGFzc0ZpZWxkPy5tYXAoKGU9PnQuRXhhbXBsZUNsYXNzLmZyb21QYXJ0aWFsKGUpKSl8fFtdLG59fSx0LkZhbWlseUNlbnRlclN0YXR1cz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PigwIT09ZS5mYW1pbHlDZW50ZXJFbnJvbGxtZW50U3RhdHVzJiZ0LnVpbnQzMig4KS5pbnQzMihlLmZhbWlseUNlbnRlckVucm9sbG1lbnRTdGF0dXMpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZmFtaWx5Q2VudGVyRW5yb2xsbWVudFN0YXR1czowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkuZmFtaWx5Q2VudGVyRW5yb2xsbWVudFN0YXR1cz1uLmludDMyKCk7ZWxzZSBuLnNraXBUeXBlKDcmZSl9cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2ZhbWlseUNlbnRlckVucm9sbG1lbnRTdGF0dXM6MH07cmV0dXJuIHQuZmFtaWx5Q2VudGVyRW5yb2xsbWVudFN0YXR1cz1lLmZhbWlseUNlbnRlckVucm9sbG1lbnRTdGF0dXM/PzAsdH19LHQuRmluZEZyaWVuZHNFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PigwIT09ZS5maW5kRnJpZW5kc0V2ZW50VHlwZSYmdC51aW50MzIoOCkuaW50MzIoZS5maW5kRnJpZW5kc0V2ZW50VHlwZSksXCIwXCIhPT1lLmFkZHJlc3NCb29rU2l6ZSYmdC51aW50MzIoMTYpLnVpbnQ2NChlLmFkZHJlc3NCb29rU2l6ZSksXCIwXCIhPT1lLmNvbnRpbnVvdXNOdW1iZXJzJiZ0LnVpbnQzMigyNCkudWludDY0KGUuY29udGludW91c051bWJlcnMpLFwiMFwiIT09ZS5kaWZmZXJlbnROdW1iZXJzJiZ0LnVpbnQzMigzMikudWludDY0KGUuZGlmZmVyZW50TnVtYmVycyksXCIwXCIhPT1lLnNuYXBjaGF0dGVyc0NvdW50JiZ0LnVpbnQzMig0MCkudWludDY0KGUuc25hcGNoYXR0ZXJzQ291bnQpLDAhPT1lLmZpbmRGcmllbmRzRXZlbnRTY2VuYXJpbyYmdC51aW50MzIoNDgpLmludDMyKGUuZmluZEZyaWVuZHNFdmVudFNjZW5hcmlvKSwwIT09ZS5maW5kRnJpZW5kc0V2ZW50U291cmNlJiZ0LnVpbnQzMig1NikuaW50MzIoZS5maW5kRnJpZW5kc0V2ZW50U291cmNlKSxcIjBcIiE9PWUuc2hvd25GcmllbmRTaXplJiZ0LnVpbnQzMig2NCkudWludDY0KGUuc2hvd25GcmllbmRTaXplKSxcIjBcIiE9PWUuZm91bmRGcmllbmRTaXplJiZ0LnVpbnQzMig3MikudWludDY0KGUuZm91bmRGcmllbmRTaXplKSxcIlwiIT09ZS5lbmNyeXB0ZWRJcCYmdC51aW50MzIoODIpLnN0cmluZyhlLmVuY3J5cHRlZElwKSxcIlwiIT09ZS5jb250YWN0c0Ryb3BwZWQmJnQudWludDMyKDkwKS5zdHJpbmcoZS5jb250YWN0c0Ryb3BwZWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZmluZEZyaWVuZHNFdmVudFR5cGU6MCxhZGRyZXNzQm9va1NpemU6XCIwXCIsY29udGludW91c051bWJlcnM6XCIwXCIsZGlmZmVyZW50TnVtYmVyczpcIjBcIixzbmFwY2hhdHRlcnNDb3VudDpcIjBcIixmaW5kRnJpZW5kc0V2ZW50U2NlbmFyaW86MCxmaW5kRnJpZW5kc0V2ZW50U291cmNlOjAsc2hvd25GcmllbmRTaXplOlwiMFwiLGZvdW5kRnJpZW5kU2l6ZTpcIjBcIixlbmNyeXB0ZWRJcDpcIlwiLGNvbnRhY3RzRHJvcHBlZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5maW5kRnJpZW5kc0V2ZW50VHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuYWRkcmVzc0Jvb2tTaXplPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmkuY29udGludW91c051bWJlcnM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6aS5kaWZmZXJlbnROdW1iZXJzPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA1Omkuc25hcGNoYXR0ZXJzQ291bnQ9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6aS5maW5kRnJpZW5kc0V2ZW50U2NlbmFyaW89bi5pbnQzMigpO2JyZWFrO2Nhc2UgNzppLmZpbmRGcmllbmRzRXZlbnRTb3VyY2U9bi5pbnQzMigpO2JyZWFrO2Nhc2UgODppLnNob3duRnJpZW5kU2l6ZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgOTppLmZvdW5kRnJpZW5kU2l6ZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTA6aS5lbmNyeXB0ZWRJcD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6aS5jb250YWN0c0Ryb3BwZWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2ZpbmRGcmllbmRzRXZlbnRUeXBlOjAsYWRkcmVzc0Jvb2tTaXplOlwiMFwiLGNvbnRpbnVvdXNOdW1iZXJzOlwiMFwiLGRpZmZlcmVudE51bWJlcnM6XCIwXCIsc25hcGNoYXR0ZXJzQ291bnQ6XCIwXCIsZmluZEZyaWVuZHNFdmVudFNjZW5hcmlvOjAsZmluZEZyaWVuZHNFdmVudFNvdXJjZTowLHNob3duRnJpZW5kU2l6ZTpcIjBcIixmb3VuZEZyaWVuZFNpemU6XCIwXCIsZW5jcnlwdGVkSXA6XCJcIixjb250YWN0c0Ryb3BwZWQ6XCJcIn07cmV0dXJuIHQuZmluZEZyaWVuZHNFdmVudFR5cGU9ZS5maW5kRnJpZW5kc0V2ZW50VHlwZT8/MCx0LmFkZHJlc3NCb29rU2l6ZT1lLmFkZHJlc3NCb29rU2l6ZT8/XCIwXCIsdC5jb250aW51b3VzTnVtYmVycz1lLmNvbnRpbnVvdXNOdW1iZXJzPz9cIjBcIix0LmRpZmZlcmVudE51bWJlcnM9ZS5kaWZmZXJlbnROdW1iZXJzPz9cIjBcIix0LnNuYXBjaGF0dGVyc0NvdW50PWUuc25hcGNoYXR0ZXJzQ291bnQ/P1wiMFwiLHQuZmluZEZyaWVuZHNFdmVudFNjZW5hcmlvPWUuZmluZEZyaWVuZHNFdmVudFNjZW5hcmlvPz8wLHQuZmluZEZyaWVuZHNFdmVudFNvdXJjZT1lLmZpbmRGcmllbmRzRXZlbnRTb3VyY2U/PzAsdC5zaG93bkZyaWVuZFNpemU9ZS5zaG93bkZyaWVuZFNpemU/P1wiMFwiLHQuZm91bmRGcmllbmRTaXplPWUuZm91bmRGcmllbmRTaXplPz9cIjBcIix0LmVuY3J5cHRlZElwPWUuZW5jcnlwdGVkSXA/P1wiXCIsdC5jb250YWN0c0Ryb3BwZWQ9ZS5jb250YWN0c0Ryb3BwZWQ/P1wiXCIsdH19LHQuRnJpZW5kQWN0aW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUuZnJpZW5kQWN0aW9uRXZlbnRUeXBlJiZ0LnVpbnQzMig4KS5pbnQzMihlLmZyaWVuZEFjdGlvbkV2ZW50VHlwZSksXCIwXCIhPT1lLmZyaWVuZEFjdGlvblRzJiZ0LnVpbnQzMigxNikudWludDY0KGUuZnJpZW5kQWN0aW9uVHMpLFwiXCIhPT1lLmZyb21Vc2VySWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5mcm9tVXNlcklkKSxcIlwiIT09ZS50b1VzZXJJZCYmdC51aW50MzIoMzQpLnN0cmluZyhlLnRvVXNlcklkKSxcIlwiIT09ZS5mcmllbmRBY3Rpb24mJnQudWludDMyKDQyKS5zdHJpbmcoZS5mcmllbmRBY3Rpb24pLFwiXCIhPT1lLmZyaWVuZEFjdGlvblNvdXJjZSYmdC51aW50MzIoNTApLnN0cmluZyhlLmZyaWVuZEFjdGlvblNvdXJjZSksITA9PT1lLmlzRnJvbVVzZXJOZXcmJnQudWludDMyKDU2KS5ib29sKGUuaXNGcm9tVXNlck5ldyksITA9PT1lLmlzVG9Vc2VyTmV3JiZ0LnVpbnQzMig2NCkuYm9vbChlLmlzVG9Vc2VyTmV3KSxcIlwiIT09ZS5mYWlsdXJlUmVhc29ucyYmdC51aW50MzIoNzQpLnN0cmluZyhlLmZhaWx1cmVSZWFzb25zKSwhMD09PWUud2l0aEZyaWVuZEFjdGlvblN1Y2Nlc3MmJnQudWludDMyKDgwKS5ib29sKGUud2l0aEZyaWVuZEFjdGlvblN1Y2Nlc3MpLFwiXCIhPT1lLmNvbnRlbnRUeXBlJiZ0LnVpbnQzMig5MCkuc3RyaW5nKGUuY29udGVudFR5cGUpLCEwPT09ZS53aXRoUmVnaXN0cmF0aW9uJiZ0LnVpbnQzMig5NikuYm9vbChlLndpdGhSZWdpc3RyYXRpb24pLFwiXCIhPT1lLnB1c2hSZWFzb24mJnQudWludDMyKDEwNikuc3RyaW5nKGUucHVzaFJlYXNvbiksITA9PT1lLndpdGhTaWxlbnQmJnQudWludDMyKDExMikuYm9vbChlLndpdGhTaWxlbnQpLFwiXCIhPT1lLmRlbmlhbFJlYXNvbiYmdC51aW50MzIoMTIyKS5zdHJpbmcoZS5kZW5pYWxSZWFzb24pLFwiXCIhPT1lLnBsYWNlbWVudCYmdC51aW50MzIoMTMwKS5zdHJpbmcoZS5wbGFjZW1lbnQpLFwiXCIhPT1lLnN1Z2dlc3RSZWFzb24mJnQudWludDMyKDEzOCkuc3RyaW5nKGUuc3VnZ2VzdFJlYXNvbiksXCIwXCIhPT1lLmZyb21Vc2VyVGVudXJlJiZ0LnVpbnQzMigxNDQpLnVpbnQ2NChlLmZyb21Vc2VyVGVudXJlKSxcIjBcIiE9PWUudG9Vc2VyVGVudXJlJiZ0LnVpbnQzMigxNTIpLnVpbnQ2NChlLnRvVXNlclRlbnVyZSksXCJcIiE9PWUuaW5jb21pbmdMaW5rU291cmNlJiZ0LnVpbnQzMigxNjIpLnN0cmluZyhlLmluY29taW5nTGlua1NvdXJjZSksXCJcIiE9PWUuZnJvbVVzZXJHdWlkJiZ0LnVpbnQzMigxNzgpLnN0cmluZyhlLmZyb21Vc2VyR3VpZCksXCJcIiE9PWUudG9Vc2VyR3VpZCYmdC51aW50MzIoMjAyKS5zdHJpbmcoZS50b1VzZXJHdWlkKSxcIlwiIT09ZS50b1RlbXBvcmFyeVVzZXJJZCYmdC51aW50MzIoMjY2KS5zdHJpbmcoZS50b1RlbXBvcmFyeVVzZXJJZCksXCJcIiE9PWUudG9UZW1wb3JhcnlVc2VyR3VpZCYmdC51aW50MzIoMjgyKS5zdHJpbmcoZS50b1RlbXBvcmFyeVVzZXJHdWlkKSxcIlwiIT09ZS5vdXRnb2luZ0xpbmtUeXBlJiZ0LnVpbnQzMigzMzgpLnN0cmluZyhlLm91dGdvaW5nTGlua1R5cGUpLFwiXCIhPT1lLm5vdGlmaWNhdGlvbklkJiZ0LnVpbnQzMigzOTQpLnN0cmluZyhlLm5vdGlmaWNhdGlvbklkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2ZyaWVuZEFjdGlvbkV2ZW50VHlwZTowLGZyaWVuZEFjdGlvblRzOlwiMFwiLGZyb21Vc2VySWQ6XCJcIix0b1VzZXJJZDpcIlwiLGZyaWVuZEFjdGlvbjpcIlwiLGZyaWVuZEFjdGlvblNvdXJjZTpcIlwiLGlzRnJvbVVzZXJOZXc6ITEsaXNUb1VzZXJOZXc6ITEsZmFpbHVyZVJlYXNvbnM6XCJcIix3aXRoRnJpZW5kQWN0aW9uU3VjY2VzczohMSxjb250ZW50VHlwZTpcIlwiLHdpdGhSZWdpc3RyYXRpb246ITEscHVzaFJlYXNvbjpcIlwiLHdpdGhTaWxlbnQ6ITEsZGVuaWFsUmVhc29uOlwiXCIscGxhY2VtZW50OlwiXCIsc3VnZ2VzdFJlYXNvbjpcIlwiLGZyb21Vc2VyVGVudXJlOlwiMFwiLHRvVXNlclRlbnVyZTpcIjBcIixpbmNvbWluZ0xpbmtTb3VyY2U6XCJcIixmcm9tVXNlckd1aWQ6XCJcIix0b1VzZXJHdWlkOlwiXCIsdG9UZW1wb3JhcnlVc2VySWQ6XCJcIix0b1RlbXBvcmFyeVVzZXJHdWlkOlwiXCIsb3V0Z29pbmdMaW5rVHlwZTpcIlwiLG5vdGlmaWNhdGlvbklkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmZyaWVuZEFjdGlvbkV2ZW50VHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuZnJpZW5kQWN0aW9uVHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6aS5mcm9tVXNlcklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkudG9Vc2VySWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5mcmllbmRBY3Rpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5mcmllbmRBY3Rpb25Tb3VyY2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5pc0Zyb21Vc2VyTmV3PW4uYm9vbCgpO2JyZWFrO2Nhc2UgODppLmlzVG9Vc2VyTmV3PW4uYm9vbCgpO2JyZWFrO2Nhc2UgOTppLmZhaWx1cmVSZWFzb25zPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLndpdGhGcmllbmRBY3Rpb25TdWNjZXNzPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTE6aS5jb250ZW50VHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS53aXRoUmVnaXN0cmF0aW9uPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTM6aS5wdXNoUmVhc29uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLndpdGhTaWxlbnQ9bi5ib29sKCk7YnJlYWs7Y2FzZSAxNTppLmRlbmlhbFJlYXNvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTY6aS5wbGFjZW1lbnQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDE3Omkuc3VnZ2VzdFJlYXNvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTg6aS5mcm9tVXNlclRlbnVyZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTk6aS50b1VzZXJUZW51cmU9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDIwOmkuaW5jb21pbmdMaW5rU291cmNlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMjppLmZyb21Vc2VyR3VpZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjU6aS50b1VzZXJHdWlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzMzppLnRvVGVtcG9yYXJ5VXNlcklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzNTppLnRvVGVtcG9yYXJ5VXNlckd1aWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQyOmkub3V0Z29pbmdMaW5rVHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDk6aS5ub3RpZmljYXRpb25JZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZnJpZW5kQWN0aW9uRXZlbnRUeXBlOjAsZnJpZW5kQWN0aW9uVHM6XCIwXCIsZnJvbVVzZXJJZDpcIlwiLHRvVXNlcklkOlwiXCIsZnJpZW5kQWN0aW9uOlwiXCIsZnJpZW5kQWN0aW9uU291cmNlOlwiXCIsaXNGcm9tVXNlck5ldzohMSxpc1RvVXNlck5ldzohMSxmYWlsdXJlUmVhc29uczpcIlwiLHdpdGhGcmllbmRBY3Rpb25TdWNjZXNzOiExLGNvbnRlbnRUeXBlOlwiXCIsd2l0aFJlZ2lzdHJhdGlvbjohMSxwdXNoUmVhc29uOlwiXCIsd2l0aFNpbGVudDohMSxkZW5pYWxSZWFzb246XCJcIixwbGFjZW1lbnQ6XCJcIixzdWdnZXN0UmVhc29uOlwiXCIsZnJvbVVzZXJUZW51cmU6XCIwXCIsdG9Vc2VyVGVudXJlOlwiMFwiLGluY29taW5nTGlua1NvdXJjZTpcIlwiLGZyb21Vc2VyR3VpZDpcIlwiLHRvVXNlckd1aWQ6XCJcIix0b1RlbXBvcmFyeVVzZXJJZDpcIlwiLHRvVGVtcG9yYXJ5VXNlckd1aWQ6XCJcIixvdXRnb2luZ0xpbmtUeXBlOlwiXCIsbm90aWZpY2F0aW9uSWQ6XCJcIn07cmV0dXJuIHQuZnJpZW5kQWN0aW9uRXZlbnRUeXBlPWUuZnJpZW5kQWN0aW9uRXZlbnRUeXBlPz8wLHQuZnJpZW5kQWN0aW9uVHM9ZS5mcmllbmRBY3Rpb25Ucz8/XCIwXCIsdC5mcm9tVXNlcklkPWUuZnJvbVVzZXJJZD8/XCJcIix0LnRvVXNlcklkPWUudG9Vc2VySWQ/P1wiXCIsdC5mcmllbmRBY3Rpb249ZS5mcmllbmRBY3Rpb24/P1wiXCIsdC5mcmllbmRBY3Rpb25Tb3VyY2U9ZS5mcmllbmRBY3Rpb25Tb3VyY2U/P1wiXCIsdC5pc0Zyb21Vc2VyTmV3PWUuaXNGcm9tVXNlck5ldz8/ITEsdC5pc1RvVXNlck5ldz1lLmlzVG9Vc2VyTmV3Pz8hMSx0LmZhaWx1cmVSZWFzb25zPWUuZmFpbHVyZVJlYXNvbnM/P1wiXCIsdC53aXRoRnJpZW5kQWN0aW9uU3VjY2Vzcz1lLndpdGhGcmllbmRBY3Rpb25TdWNjZXNzPz8hMSx0LmNvbnRlbnRUeXBlPWUuY29udGVudFR5cGU/P1wiXCIsdC53aXRoUmVnaXN0cmF0aW9uPWUud2l0aFJlZ2lzdHJhdGlvbj8/ITEsdC5wdXNoUmVhc29uPWUucHVzaFJlYXNvbj8/XCJcIix0LndpdGhTaWxlbnQ9ZS53aXRoU2lsZW50Pz8hMSx0LmRlbmlhbFJlYXNvbj1lLmRlbmlhbFJlYXNvbj8/XCJcIix0LnBsYWNlbWVudD1lLnBsYWNlbWVudD8/XCJcIix0LnN1Z2dlc3RSZWFzb249ZS5zdWdnZXN0UmVhc29uPz9cIlwiLHQuZnJvbVVzZXJUZW51cmU9ZS5mcm9tVXNlclRlbnVyZT8/XCIwXCIsdC50b1VzZXJUZW51cmU9ZS50b1VzZXJUZW51cmU/P1wiMFwiLHQuaW5jb21pbmdMaW5rU291cmNlPWUuaW5jb21pbmdMaW5rU291cmNlPz9cIlwiLHQuZnJvbVVzZXJHdWlkPWUuZnJvbVVzZXJHdWlkPz9cIlwiLHQudG9Vc2VyR3VpZD1lLnRvVXNlckd1aWQ/P1wiXCIsdC50b1RlbXBvcmFyeVVzZXJJZD1lLnRvVGVtcG9yYXJ5VXNlcklkPz9cIlwiLHQudG9UZW1wb3JhcnlVc2VyR3VpZD1lLnRvVGVtcG9yYXJ5VXNlckd1aWQ/P1wiXCIsdC5vdXRnb2luZ0xpbmtUeXBlPWUub3V0Z29pbmdMaW5rVHlwZT8/XCJcIix0Lm5vdGlmaWNhdGlvbklkPWUubm90aWZpY2F0aW9uSWQ/P1wiXCIsdH19LHQuRnJpZW5kTm90aWZpY2F0aW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUudG9Vc2VyR3VpZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnRvVXNlckd1aWQpLDAhPT1lLm5vdGlmaWNhdGlvblR5cGUmJnQudWludDMyKDI0KS5pbnQzMihlLm5vdGlmaWNhdGlvblR5cGUpLCEwPT09ZS5pc1N1Y2Nlc3MmJnQudWludDMyKDMyKS5ib29sKGUuaXNTdWNjZXNzKSxcIlwiIT09ZS5zbXNDb3B5TGFuZ3VhZ2UmJnQudWludDMyKDQyKS5zdHJpbmcoZS5zbXNDb3B5TGFuZ3VhZ2UpLCEwPT09ZS5pc1NNU0VuYWJsZWQmJnQudWludDMyKDQ4KS5ib29sKGUuaXNTTVNFbmFibGVkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3RvVXNlckd1aWQ6XCJcIixub3RpZmljYXRpb25UeXBlOjAsaXNTdWNjZXNzOiExLHNtc0NvcHlMYW5ndWFnZTpcIlwiLGlzU01TRW5hYmxlZDohMX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkudG9Vc2VyR3VpZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLm5vdGlmaWNhdGlvblR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNDppLmlzU3VjY2Vzcz1uLmJvb2woKTticmVhaztjYXNlIDU6aS5zbXNDb3B5TGFuZ3VhZ2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5pc1NNU0VuYWJsZWQ9bi5ib29sKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt0b1VzZXJHdWlkOlwiXCIsbm90aWZpY2F0aW9uVHlwZTowLGlzU3VjY2VzczohMSxzbXNDb3B5TGFuZ3VhZ2U6XCJcIixpc1NNU0VuYWJsZWQ6ITF9O3JldHVybiB0LnRvVXNlckd1aWQ9ZS50b1VzZXJHdWlkPz9cIlwiLHQubm90aWZpY2F0aW9uVHlwZT1lLm5vdGlmaWNhdGlvblR5cGU/PzAsdC5pc1N1Y2Nlc3M9ZS5pc1N1Y2Nlc3M/PyExLHQuc21zQ29weUxhbmd1YWdlPWUuc21zQ29weUxhbmd1YWdlPz9cIlwiLHQuaXNTTVNFbmFibGVkPWUuaXNTTVNFbmFibGVkPz8hMSx0fX0sdC5GcmllbmRTdG9yaWVzUmFua2luZ0NhbmRpZGF0ZUZlYXR1cmVzPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLm1pc2NoaWVmSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5taXNjaGllZklkKSxcIlwiIT09ZS5ub3RpZmljYXRpb25JZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLm5vdGlmaWNhdGlvbklkKSxcIlwiIT09ZS5jYW5kaWRhdGVGZWF0dXJlc0pzb24mJnQudWludDMyKDM0KS5zdHJpbmcoZS5jYW5kaWRhdGVGZWF0dXJlc0pzb24pLFwiXCIhPT1lLnNlcnZlclJhbmtpbmdJZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLnNlcnZlclJhbmtpbmdJZCksXCJcIiE9PWUuc2NvcmluZ01vZGVsTmFtZSYmdC51aW50MzIoNTApLnN0cmluZyhlLnNjb3JpbmdNb2RlbE5hbWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bWlzY2hpZWZJZDpcIlwiLG5vdGlmaWNhdGlvbklkOlwiXCIsY2FuZGlkYXRlRmVhdHVyZXNKc29uOlwiXCIsc2VydmVyUmFua2luZ0lkOlwiXCIsc2NvcmluZ01vZGVsTmFtZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDI6aS5taXNjaGllZklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkubm90aWZpY2F0aW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5jYW5kaWRhdGVGZWF0dXJlc0pzb249bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5zZXJ2ZXJSYW5raW5nSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5zY29yaW5nTW9kZWxOYW1lPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXttaXNjaGllZklkOlwiXCIsbm90aWZpY2F0aW9uSWQ6XCJcIixjYW5kaWRhdGVGZWF0dXJlc0pzb246XCJcIixzZXJ2ZXJSYW5raW5nSWQ6XCJcIixzY29yaW5nTW9kZWxOYW1lOlwiXCJ9O3JldHVybiB0Lm1pc2NoaWVmSWQ9ZS5taXNjaGllZklkPz9cIlwiLHQubm90aWZpY2F0aW9uSWQ9ZS5ub3RpZmljYXRpb25JZD8/XCJcIix0LmNhbmRpZGF0ZUZlYXR1cmVzSnNvbj1lLmNhbmRpZGF0ZUZlYXR1cmVzSnNvbj8/XCJcIix0LnNlcnZlclJhbmtpbmdJZD1lLnNlcnZlclJhbmtpbmdJZD8/XCJcIix0LnNjb3JpbmdNb2RlbE5hbWU9ZS5zY29yaW5nTW9kZWxOYW1lPz9cIlwiLHR9fSx0LkZyaWVuZFN0b3JpZXNSYW5raW5nVXNlckZlYXR1cmVzPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLm5vdGlmaWNhdGlvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUubm90aWZpY2F0aW9uSWQpLFwiXCIhPT1lLnVzZXJGZWF0dXJlc0pzb24mJnQudWludDMyKDE4KS5zdHJpbmcoZS51c2VyRmVhdHVyZXNKc29uKSxcIlwiIT09ZS5zZXJ2ZXJSYW5raW5nSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zZXJ2ZXJSYW5raW5nSWQpLFwiXCIhPT1lLnNjb3JpbmdNb2RlbE5hbWUmJnQudWludDMyKDM0KS5zdHJpbmcoZS5zY29yaW5nTW9kZWxOYW1lKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e25vdGlmaWNhdGlvbklkOlwiXCIsdXNlckZlYXR1cmVzSnNvbjpcIlwiLHNlcnZlclJhbmtpbmdJZDpcIlwiLHNjb3JpbmdNb2RlbE5hbWU6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubm90aWZpY2F0aW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS51c2VyRmVhdHVyZXNKc29uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc2VydmVyUmFua2luZ0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0Omkuc2NvcmluZ01vZGVsTmFtZT1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17bm90aWZpY2F0aW9uSWQ6XCJcIix1c2VyRmVhdHVyZXNKc29uOlwiXCIsc2VydmVyUmFua2luZ0lkOlwiXCIsc2NvcmluZ01vZGVsTmFtZTpcIlwifTtyZXR1cm4gdC5ub3RpZmljYXRpb25JZD1lLm5vdGlmaWNhdGlvbklkPz9cIlwiLHQudXNlckZlYXR1cmVzSnNvbj1lLnVzZXJGZWF0dXJlc0pzb24/P1wiXCIsdC5zZXJ2ZXJSYW5raW5nSWQ9ZS5zZXJ2ZXJSYW5raW5nSWQ/P1wiXCIsdC5zY29yaW5nTW9kZWxOYW1lPWUuc2NvcmluZ01vZGVsTmFtZT8/XCJcIix0fX0sdC5HYWxsZXJ5Q29sbGVjdGlvbkNyZWF0ZVNlcnZlcj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIjBcIiE9PWUuZ3JvdXBDb3VudCYmdC51aW50MzIoOCkudWludDY0KGUuZ3JvdXBDb3VudCksXCIwXCIhPT1lLnNuYXBDb3VudCYmdC51aW50MzIoMTYpLnVpbnQ2NChlLnNuYXBDb3VudCksXCJcIiE9PWUuZ2FsbGVyeUNvbGxlY3Rpb25DYXRlZ29yeSYmdC51aW50MzIoMjYpLnN0cmluZyhlLmdhbGxlcnlDb2xsZWN0aW9uQ2F0ZWdvcnkpLFwiMFwiIT09ZS5hY3RpdmF0aW9uVGltZVV0YyYmdC51aW50MzIoMzIpLnVpbnQ2NChlLmFjdGl2YXRpb25UaW1lVXRjKSxcIjBcIiE9PWUuZXhwaXJhdGlvblRpbWVVdGMmJnQudWludDMyKDQwKS51aW50NjQoZS5leHBpcmF0aW9uVGltZVV0YyksXCJcIiE9PWUuZ2FsbGVyeUNvbGxlY3Rpb25JZCYmdC51aW50MzIoNTApLnN0cmluZyhlLmdhbGxlcnlDb2xsZWN0aW9uSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17Z3JvdXBDb3VudDpcIjBcIixzbmFwQ291bnQ6XCIwXCIsZ2FsbGVyeUNvbGxlY3Rpb25DYXRlZ29yeTpcIlwiLGFjdGl2YXRpb25UaW1lVXRjOlwiMFwiLGV4cGlyYXRpb25UaW1lVXRjOlwiMFwiLGdhbGxlcnlDb2xsZWN0aW9uSWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuZ3JvdXBDb3VudD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMjppLnNuYXBDb3VudD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMzppLmdhbGxlcnlDb2xsZWN0aW9uQ2F0ZWdvcnk9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5hY3RpdmF0aW9uVGltZVV0Yz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNTppLmV4cGlyYXRpb25UaW1lVXRjPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA2OmkuZ2FsbGVyeUNvbGxlY3Rpb25JZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Z3JvdXBDb3VudDpcIjBcIixzbmFwQ291bnQ6XCIwXCIsZ2FsbGVyeUNvbGxlY3Rpb25DYXRlZ29yeTpcIlwiLGFjdGl2YXRpb25UaW1lVXRjOlwiMFwiLGV4cGlyYXRpb25UaW1lVXRjOlwiMFwiLGdhbGxlcnlDb2xsZWN0aW9uSWQ6XCJcIn07cmV0dXJuIHQuZ3JvdXBDb3VudD1lLmdyb3VwQ291bnQ/P1wiMFwiLHQuc25hcENvdW50PWUuc25hcENvdW50Pz9cIjBcIix0LmdhbGxlcnlDb2xsZWN0aW9uQ2F0ZWdvcnk9ZS5nYWxsZXJ5Q29sbGVjdGlvbkNhdGVnb3J5Pz9cIlwiLHQuYWN0aXZhdGlvblRpbWVVdGM9ZS5hY3RpdmF0aW9uVGltZVV0Yz8/XCIwXCIsdC5leHBpcmF0aW9uVGltZVV0Yz1lLmV4cGlyYXRpb25UaW1lVXRjPz9cIjBcIix0LmdhbGxlcnlDb2xsZWN0aW9uSWQ9ZS5nYWxsZXJ5Q29sbGVjdGlvbklkPz9cIlwiLHR9fSx0LkdhbGxlcnlDb2xsZWN0aW9uRWxpZ2liaWxpdHlTZXJ2ZXI9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oITA9PT1lLndpdGhGbGFzaGJhY2smJnQudWludDMyKDgpLmJvb2woZS53aXRoRmxhc2hiYWNrKSwhMD09PWUud2l0aFRyaXAmJnQudWludDMyKDE2KS5ib29sKGUud2l0aFRyaXApLCEwPT09ZS53aXRoTW9udGhseVJldmlldyYmdC51aW50MzIoMjQpLmJvb2woZS53aXRoTW9udGhseVJldmlldyksITA9PT1lLndpdGhTcGVjcyYmdC51aW50MzIoMzIpLmJvb2woZS53aXRoU3BlY3MpLFwiXCIhPT1lLmdhbGxlcnlDb2xsZWN0aW9uQ2F0ZWdvcnkmJnQudWludDMyKDQyKS5zdHJpbmcoZS5nYWxsZXJ5Q29sbGVjdGlvbkNhdGVnb3J5KSxcIlwiIT09ZS5nYWxsZXJ5Q29sbGVjdGlvbklkJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuZ2FsbGVyeUNvbGxlY3Rpb25JZCksXCIwXCIhPT1lLml0ZW1Qb3MmJnQudWludDMyKDU2KS51aW50NjQoZS5pdGVtUG9zKSxcIjBcIiE9PWUuc3RvcnlDb3VudCYmdC51aW50MzIoNjQpLnVpbnQ2NChlLnN0b3J5Q291bnQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17d2l0aEZsYXNoYmFjazohMSx3aXRoVHJpcDohMSx3aXRoTW9udGhseVJldmlldzohMSx3aXRoU3BlY3M6ITEsZ2FsbGVyeUNvbGxlY3Rpb25DYXRlZ29yeTpcIlwiLGdhbGxlcnlDb2xsZWN0aW9uSWQ6XCJcIixpdGVtUG9zOlwiMFwiLHN0b3J5Q291bnQ6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLndpdGhGbGFzaGJhY2s9bi5ib29sKCk7YnJlYWs7Y2FzZSAyOmkud2l0aFRyaXA9bi5ib29sKCk7YnJlYWs7Y2FzZSAzOmkud2l0aE1vbnRobHlSZXZpZXc9bi5ib29sKCk7YnJlYWs7Y2FzZSA0Omkud2l0aFNwZWNzPW4uYm9vbCgpO2JyZWFrO2Nhc2UgNTppLmdhbGxlcnlDb2xsZWN0aW9uQ2F0ZWdvcnk9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5nYWxsZXJ5Q29sbGVjdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkuaXRlbVBvcz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgODppLnN0b3J5Q291bnQ9cChuLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3dpdGhGbGFzaGJhY2s6ITEsd2l0aFRyaXA6ITEsd2l0aE1vbnRobHlSZXZpZXc6ITEsd2l0aFNwZWNzOiExLGdhbGxlcnlDb2xsZWN0aW9uQ2F0ZWdvcnk6XCJcIixnYWxsZXJ5Q29sbGVjdGlvbklkOlwiXCIsaXRlbVBvczpcIjBcIixzdG9yeUNvdW50OlwiMFwifTtyZXR1cm4gdC53aXRoRmxhc2hiYWNrPWUud2l0aEZsYXNoYmFjaz8/ITEsdC53aXRoVHJpcD1lLndpdGhUcmlwPz8hMSx0LndpdGhNb250aGx5UmV2aWV3PWUud2l0aE1vbnRobHlSZXZpZXc/PyExLHQud2l0aFNwZWNzPWUud2l0aFNwZWNzPz8hMSx0LmdhbGxlcnlDb2xsZWN0aW9uQ2F0ZWdvcnk9ZS5nYWxsZXJ5Q29sbGVjdGlvbkNhdGVnb3J5Pz9cIlwiLHQuZ2FsbGVyeUNvbGxlY3Rpb25JZD1lLmdhbGxlcnlDb2xsZWN0aW9uSWQ/P1wiXCIsdC5pdGVtUG9zPWUuaXRlbVBvcz8/XCIwXCIsdC5zdG9yeUNvdW50PWUuc3RvcnlDb3VudD8/XCIwXCIsdH19LHQuR2FsbGVyeVNuYXBDcmVhdGVTZXJ2ZXI9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT50LGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17fTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7bi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbDplPT4oe30pfSx0LkdhbGxlcnlTbmFwRGVsZXRlU2VydmVyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+dCxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e307Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO24uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWw6ZT0+KHt9KX0sdC5Ib3N0aW5nU2VydmVyRXZlbnRCYXNlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmxlbnNJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLmxlbnNJZCksXCJcIiE9PWUuY29nbmFjQXBwSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jb2duYWNBcHBJZCksMCE9PWUuc291cmNlJiZ0LnVpbnQzMigyNCkuaW50MzIoZS5zb3VyY2UpLFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMzQpLnN0cmluZyhlLnNlc3Npb25JZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtsZW5zSWQ6XCJcIixjb2duYWNBcHBJZDpcIlwiLHNvdXJjZTowLHNlc3Npb25JZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5sZW5zSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5jb2duYWNBcHBJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnNvdXJjZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA0Omkuc2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtsZW5zSWQ6XCJcIixjb2duYWNBcHBJZDpcIlwiLHNvdXJjZTowLHNlc3Npb25JZDpcIlwifTtyZXR1cm4gdC5sZW5zSWQ9ZS5sZW5zSWQ/P1wiXCIsdC5jb2duYWNBcHBJZD1lLmNvZ25hY0FwcElkPz9cIlwiLHQuc291cmNlPWUuc291cmNlPz8wLHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLHR9fSx0LktpdEFwcEFwcGxpY2F0aW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUua2l0QXBwSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5raXRBcHBJZCksXCJcIiE9PWUub2F1dGhDbGllbnRJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLm9hdXRoQ2xpZW50SWQpLFwiXCIhPT1lLm5hdGl2ZUdhbWVJbnN0YWxsSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5uYXRpdmVHYW1lSW5zdGFsbElkKSwhMD09PWUuZmlyc3RPcGVuU2luY2VJbnN0YWxsJiZ0LnVpbnQzMigzMikuYm9vbChlLmZpcnN0T3BlblNpbmNlSW5zdGFsbCksXCJcIiE9PWUua2l0QXBwVmVyc2lvbiYmdC51aW50MzIoNDIpLnN0cmluZyhlLmtpdEFwcFZlcnNpb24pLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17a2l0QXBwSWQ6XCJcIixvYXV0aENsaWVudElkOlwiXCIsbmF0aXZlR2FtZUluc3RhbGxJZDpcIlwiLGZpcnN0T3BlblNpbmNlSW5zdGFsbDohMSxraXRBcHBWZXJzaW9uOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmtpdEFwcElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkub2F1dGhDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLm5hdGl2ZUdhbWVJbnN0YWxsSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5maXJzdE9wZW5TaW5jZUluc3RhbGw9bi5ib29sKCk7YnJlYWs7Y2FzZSA1Omkua2l0QXBwVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17a2l0QXBwSWQ6XCJcIixvYXV0aENsaWVudElkOlwiXCIsbmF0aXZlR2FtZUluc3RhbGxJZDpcIlwiLGZpcnN0T3BlblNpbmNlSW5zdGFsbDohMSxraXRBcHBWZXJzaW9uOlwiXCJ9O3JldHVybiB0LmtpdEFwcElkPWUua2l0QXBwSWQ/P1wiXCIsdC5vYXV0aENsaWVudElkPWUub2F1dGhDbGllbnRJZD8/XCJcIix0Lm5hdGl2ZUdhbWVJbnN0YWxsSWQ9ZS5uYXRpdmVHYW1lSW5zdGFsbElkPz9cIlwiLHQuZmlyc3RPcGVuU2luY2VJbnN0YWxsPWUuZmlyc3RPcGVuU2luY2VJbnN0YWxsPz8hMSx0LmtpdEFwcFZlcnNpb249ZS5raXRBcHBWZXJzaW9uPz9cIlwiLHR9fSx0LktpdEV2ZW50QmFzZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5vYXV0aENsaWVudElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUub2F1dGhDbGllbnRJZCksXCJcIiE9PWUubG9jYWxlJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUubG9jYWxlKSxcIlwiIT09ZS5raXRVc2VyQWdlbnQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5raXRVc2VyQWdlbnQpLFwiXCIhPT1lLmlwQWRkcmVzcyYmdC51aW50MzIoMzQpLnN0cmluZyhlLmlwQWRkcmVzcyksXCJcIiE9PWUub3NNaW5vclZlcnNpb24mJnQudWludDMyKDQyKS5zdHJpbmcoZS5vc01pbm9yVmVyc2lvbiksMCE9PWUua2l0VmFyaWFudCYmdC51aW50MzIoNDgpLmludDMyKGUua2l0VmFyaWFudCksXCJcIiE9PWUua2l0VmFyaWFudFZlcnNpb24mJnQudWludDMyKDU4KS5zdHJpbmcoZS5raXRWYXJpYW50VmVyc2lvbiksXCIwXCIhPT1lLmtpdENsaWVudFRpbWVzdGFtcE1pbGxpcyYmdC51aW50MzIoNjQpLnVpbnQ2NChlLmtpdENsaWVudFRpbWVzdGFtcE1pbGxpcyksXCIwXCIhPT1lLmNsaWVudFNlcXVlbmNlSWQmJnQudWludDMyKDcyKS51aW50NjQoZS5jbGllbnRTZXF1ZW5jZUlkKSxcIjBcIiE9PWUubWF4Q2xpZW50U2VxdWVuY2VJZE9uSW5zdGFuY2UmJnQudWludDMyKDgwKS51aW50NjQoZS5tYXhDbGllbnRTZXF1ZW5jZUlkT25JbnN0YW5jZSksXCJcIiE9PWUudGFyZ2V0QXJjaGl0ZWN0dXJlJiZ0LnVpbnQzMig5MCkuc3RyaW5nKGUudGFyZ2V0QXJjaGl0ZWN0dXJlKSwhMD09PWUucnVubmluZ1dpdGhEZWJ1Z2dlckF0dGFjaGVkJiZ0LnVpbnQzMig5NikuYm9vbChlLnJ1bm5pbmdXaXRoRGVidWdnZXJBdHRhY2hlZCksITA9PT1lLnJ1bm5pbmdJblRlc3RzJiZ0LnVpbnQzMigxMDQpLmJvb2woZS5ydW5uaW5nSW5UZXN0cyksITA9PT1lLnJ1bm5pbmdJblNpbXVsYXRvciYmdC51aW50MzIoMTEyKS5ib29sKGUucnVubmluZ0luU2ltdWxhdG9yKSwhMD09PWUuaXNBcHBQcmVyZWxlYXNlJiZ0LnVpbnQzMigxMjApLmJvb2woZS5pc0FwcFByZXJlbGVhc2UpLFwiXCIhPT1lLmtpdEFwcElkJiZ0LnVpbnQzMigxMzApLnN0cmluZyhlLmtpdEFwcElkKSxcIlwiIT09ZS5raXRTZXNzaW9uSWQmJnQudWludDMyKDEzOCkuc3RyaW5nKGUua2l0U2Vzc2lvbklkKSwwIT09ZS5raXRQbHVnaW5UeXBlJiZ0LnVpbnQzMigxNDQpLmludDMyKGUua2l0UGx1Z2luVHlwZSksITA9PT1lLmlzRnJvbVJlYWN0TmF0aXZlUGx1Z2luJiZ0LnVpbnQzMigxNTIpLmJvb2woZS5pc0Zyb21SZWFjdE5hdGl2ZVBsdWdpbiksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtvYXV0aENsaWVudElkOlwiXCIsbG9jYWxlOlwiXCIsa2l0VXNlckFnZW50OlwiXCIsaXBBZGRyZXNzOlwiXCIsb3NNaW5vclZlcnNpb246XCJcIixraXRWYXJpYW50OjAsa2l0VmFyaWFudFZlcnNpb246XCJcIixraXRDbGllbnRUaW1lc3RhbXBNaWxsaXM6XCIwXCIsY2xpZW50U2VxdWVuY2VJZDpcIjBcIixtYXhDbGllbnRTZXF1ZW5jZUlkT25JbnN0YW5jZTpcIjBcIix0YXJnZXRBcmNoaXRlY3R1cmU6XCJcIixydW5uaW5nV2l0aERlYnVnZ2VyQXR0YWNoZWQ6ITEscnVubmluZ0luVGVzdHM6ITEscnVubmluZ0luU2ltdWxhdG9yOiExLGlzQXBwUHJlcmVsZWFzZTohMSxraXRBcHBJZDpcIlwiLGtpdFNlc3Npb25JZDpcIlwiLGtpdFBsdWdpblR5cGU6MCxpc0Zyb21SZWFjdE5hdGl2ZVBsdWdpbjohMX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkub2F1dGhDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmxvY2FsZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmtpdFVzZXJBZ2VudD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmlwQWRkcmVzcz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLm9zTWlub3JWZXJzaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2Omkua2l0VmFyaWFudD1uLmludDMyKCk7YnJlYWs7Y2FzZSA3Omkua2l0VmFyaWFudFZlcnNpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDg6aS5raXRDbGllbnRUaW1lc3RhbXBNaWxsaXM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6aS5jbGllbnRTZXF1ZW5jZUlkPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAxMDppLm1heENsaWVudFNlcXVlbmNlSWRPbkluc3RhbmNlPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAxMTppLnRhcmdldEFyY2hpdGVjdHVyZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS5ydW5uaW5nV2l0aERlYnVnZ2VyQXR0YWNoZWQ9bi5ib29sKCk7YnJlYWs7Y2FzZSAxMzppLnJ1bm5pbmdJblRlc3RzPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTQ6aS5ydW5uaW5nSW5TaW11bGF0b3I9bi5ib29sKCk7YnJlYWs7Y2FzZSAxNTppLmlzQXBwUHJlcmVsZWFzZT1uLmJvb2woKTticmVhaztjYXNlIDE2Omkua2l0QXBwSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDE3Omkua2l0U2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxODppLmtpdFBsdWdpblR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTk6aS5pc0Zyb21SZWFjdE5hdGl2ZVBsdWdpbj1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e29hdXRoQ2xpZW50SWQ6XCJcIixsb2NhbGU6XCJcIixraXRVc2VyQWdlbnQ6XCJcIixpcEFkZHJlc3M6XCJcIixvc01pbm9yVmVyc2lvbjpcIlwiLGtpdFZhcmlhbnQ6MCxraXRWYXJpYW50VmVyc2lvbjpcIlwiLGtpdENsaWVudFRpbWVzdGFtcE1pbGxpczpcIjBcIixjbGllbnRTZXF1ZW5jZUlkOlwiMFwiLG1heENsaWVudFNlcXVlbmNlSWRPbkluc3RhbmNlOlwiMFwiLHRhcmdldEFyY2hpdGVjdHVyZTpcIlwiLHJ1bm5pbmdXaXRoRGVidWdnZXJBdHRhY2hlZDohMSxydW5uaW5nSW5UZXN0czohMSxydW5uaW5nSW5TaW11bGF0b3I6ITEsaXNBcHBQcmVyZWxlYXNlOiExLGtpdEFwcElkOlwiXCIsa2l0U2Vzc2lvbklkOlwiXCIsa2l0UGx1Z2luVHlwZTowLGlzRnJvbVJlYWN0TmF0aXZlUGx1Z2luOiExfTtyZXR1cm4gdC5vYXV0aENsaWVudElkPWUub2F1dGhDbGllbnRJZD8/XCJcIix0LmxvY2FsZT1lLmxvY2FsZT8/XCJcIix0LmtpdFVzZXJBZ2VudD1lLmtpdFVzZXJBZ2VudD8/XCJcIix0LmlwQWRkcmVzcz1lLmlwQWRkcmVzcz8/XCJcIix0Lm9zTWlub3JWZXJzaW9uPWUub3NNaW5vclZlcnNpb24/P1wiXCIsdC5raXRWYXJpYW50PWUua2l0VmFyaWFudD8/MCx0LmtpdFZhcmlhbnRWZXJzaW9uPWUua2l0VmFyaWFudFZlcnNpb24/P1wiXCIsdC5raXRDbGllbnRUaW1lc3RhbXBNaWxsaXM9ZS5raXRDbGllbnRUaW1lc3RhbXBNaWxsaXM/P1wiMFwiLHQuY2xpZW50U2VxdWVuY2VJZD1lLmNsaWVudFNlcXVlbmNlSWQ/P1wiMFwiLHQubWF4Q2xpZW50U2VxdWVuY2VJZE9uSW5zdGFuY2U9ZS5tYXhDbGllbnRTZXF1ZW5jZUlkT25JbnN0YW5jZT8/XCIwXCIsdC50YXJnZXRBcmNoaXRlY3R1cmU9ZS50YXJnZXRBcmNoaXRlY3R1cmU/P1wiXCIsdC5ydW5uaW5nV2l0aERlYnVnZ2VyQXR0YWNoZWQ9ZS5ydW5uaW5nV2l0aERlYnVnZ2VyQXR0YWNoZWQ/PyExLHQucnVubmluZ0luVGVzdHM9ZS5ydW5uaW5nSW5UZXN0cz8/ITEsdC5ydW5uaW5nSW5TaW11bGF0b3I9ZS5ydW5uaW5nSW5TaW11bGF0b3I/PyExLHQuaXNBcHBQcmVyZWxlYXNlPWUuaXNBcHBQcmVyZWxlYXNlPz8hMSx0LmtpdEFwcElkPWUua2l0QXBwSWQ/P1wiXCIsdC5raXRTZXNzaW9uSWQ9ZS5raXRTZXNzaW9uSWQ/P1wiXCIsdC5raXRQbHVnaW5UeXBlPWUua2l0UGx1Z2luVHlwZT8/MCx0LmlzRnJvbVJlYWN0TmF0aXZlUGx1Z2luPWUuaXNGcm9tUmVhY3ROYXRpdmVQbHVnaW4/PyExLHR9fSx0LktpdFNlcnZlckV2ZW50QmFzZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5vYXV0aENsaWVudElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUub2F1dGhDbGllbnRJZCksXCJcIiE9PWUua2l0QXBwSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5raXRBcHBJZCksXCJcIiE9PWUua2l0U2Vzc2lvbklkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUua2l0U2Vzc2lvbklkKSxcIjBcIiE9PWUucmVzcG9uc2VDb2RlJiZ0LnVpbnQzMigzMikudWludDY0KGUucmVzcG9uc2VDb2RlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e29hdXRoQ2xpZW50SWQ6XCJcIixraXRBcHBJZDpcIlwiLGtpdFNlc3Npb25JZDpcIlwiLHJlc3BvbnNlQ29kZTpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkub2F1dGhDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmtpdEFwcElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkua2l0U2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkucmVzcG9uc2VDb2RlPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtvYXV0aENsaWVudElkOlwiXCIsa2l0QXBwSWQ6XCJcIixraXRTZXNzaW9uSWQ6XCJcIixyZXNwb25zZUNvZGU6XCIwXCJ9O3JldHVybiB0Lm9hdXRoQ2xpZW50SWQ9ZS5vYXV0aENsaWVudElkPz9cIlwiLHQua2l0QXBwSWQ9ZS5raXRBcHBJZD8/XCJcIix0LmtpdFNlc3Npb25JZD1lLmtpdFNlc3Npb25JZD8/XCJcIix0LnJlc3BvbnNlQ29kZT1lLnJlc3BvbnNlQ29kZT8/XCIwXCIsdH19LHQuTGFuZ3VhZ2VEZXRlY3Rpb25SZXNwb25zZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5sYW5nRGV0ZWN0ZWRGcm9tQXVkaW8mJnQudWludDMyKDEwKS5zdHJpbmcoZS5sYW5nRGV0ZWN0ZWRGcm9tQXVkaW8pLFwiXCIhPT1lLmxhbmdEZXRlY3RlZEZyb21UZXh0JiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUubGFuZ0RldGVjdGVkRnJvbVRleHQpLFwiXCIhPT1lLm9yaWdpbmFsQXNzdW1lZExhbmd1YWdlJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUub3JpZ2luYWxBc3N1bWVkTGFuZ3VhZ2UpLFwiXCIhPT1lLnVzZUNhc2UmJnQudWludDMyKDM0KS5zdHJpbmcoZS51c2VDYXNlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2xhbmdEZXRlY3RlZEZyb21BdWRpbzpcIlwiLGxhbmdEZXRlY3RlZEZyb21UZXh0OlwiXCIsb3JpZ2luYWxBc3N1bWVkTGFuZ3VhZ2U6XCJcIix1c2VDYXNlOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmxhbmdEZXRlY3RlZEZyb21BdWRpbz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmxhbmdEZXRlY3RlZEZyb21UZXh0PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkub3JpZ2luYWxBc3N1bWVkTGFuZ3VhZ2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS51c2VDYXNlPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtsYW5nRGV0ZWN0ZWRGcm9tQXVkaW86XCJcIixsYW5nRGV0ZWN0ZWRGcm9tVGV4dDpcIlwiLG9yaWdpbmFsQXNzdW1lZExhbmd1YWdlOlwiXCIsdXNlQ2FzZTpcIlwifTtyZXR1cm4gdC5sYW5nRGV0ZWN0ZWRGcm9tQXVkaW89ZS5sYW5nRGV0ZWN0ZWRGcm9tQXVkaW8/P1wiXCIsdC5sYW5nRGV0ZWN0ZWRGcm9tVGV4dD1lLmxhbmdEZXRlY3RlZEZyb21UZXh0Pz9cIlwiLHQub3JpZ2luYWxBc3N1bWVkTGFuZ3VhZ2U9ZS5vcmlnaW5hbEFzc3VtZWRMYW5ndWFnZT8/XCJcIix0LnVzZUNhc2U9ZS51c2VDYXNlPz9cIlwiLHR9fSx0LkxlbnNzdHVkaW9FdmVudEJhc2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuYXBwU2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuYXBwU2Vzc2lvbklkKSxcIlwiIT09ZS5pbnN0YWxsYXRpb25JZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmluc3RhbGxhdGlvbklkKSxcIjBcIiE9PWUuY2xpZW50VHMmJnQudWludDMyKDI0KS51aW50NjQoZS5jbGllbnRUcyksXCJcIiE9PWUuZXZlbnRWYWx1ZSYmdC51aW50MzIoNDIpLnN0cmluZyhlLmV2ZW50VmFsdWUpLFwiXCIhPT1lLmxlbnNJZCYmdC51aW50MzIoNTApLnN0cmluZyhlLmxlbnNJZCksXCIwXCIhPT1lLmxlbnNTaXplJiZ0LnVpbnQzMig1NikudWludDY0KGUubGVuc1NpemUpLFwiXCIhPT1lLmRvY3VtZW50SWQmJnQudWludDMyKDY2KS5zdHJpbmcoZS5kb2N1bWVudElkKSxcIlwiIT09ZS5vcmlnaW5hbERvY3VtZW50SWQmJnQudWludDMyKDc0KS5zdHJpbmcoZS5vcmlnaW5hbERvY3VtZW50SWQpLFwiXCIhPT1lLmdwdU9wZW5nbFZlcnNpb24mJnQudWludDMyKDgyKS5zdHJpbmcoZS5ncHVPcGVuZ2xWZXJzaW9uKSxcIlwiIT09ZS5ncHVGYW1pbHkmJnQudWludDMyKDkwKS5zdHJpbmcoZS5ncHVGYW1pbHkpLFwiXCIhPT1lLmdwdVZlbmRvciYmdC51aW50MzIoOTgpLnN0cmluZyhlLmdwdVZlbmRvciksMCE9PWUubGVuc1R5cGUmJnQudWludDMyKDEwNCkuaW50MzIoZS5sZW5zVHlwZSksXCJcIiE9PWUuY3VycmVudEdob3N0SWQmJnQudWludDMyKDExNCkuc3RyaW5nKGUuY3VycmVudEdob3N0SWQpLFwiXCIhPT1lLmRvd25sb2FkSWQmJnQudWludDMyKDEyMikuc3RyaW5nKGUuZG93bmxvYWRJZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXthcHBTZXNzaW9uSWQ6XCJcIixpbnN0YWxsYXRpb25JZDpcIlwiLGNsaWVudFRzOlwiMFwiLGV2ZW50VmFsdWU6XCJcIixsZW5zSWQ6XCJcIixsZW5zU2l6ZTpcIjBcIixkb2N1bWVudElkOlwiXCIsb3JpZ2luYWxEb2N1bWVudElkOlwiXCIsZ3B1T3BlbmdsVmVyc2lvbjpcIlwiLGdwdUZhbWlseTpcIlwiLGdwdVZlbmRvcjpcIlwiLGxlbnNUeXBlOjAsY3VycmVudEdob3N0SWQ6XCJcIixkb3dubG9hZElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmFwcFNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmluc3RhbGxhdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuY2xpZW50VHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6aS5ldmVudFZhbHVlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkubGVuc0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkubGVuc1NpemU9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDg6aS5kb2N1bWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA5Omkub3JpZ2luYWxEb2N1bWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLmdwdU9wZW5nbFZlcnNpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDExOmkuZ3B1RmFtaWx5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMjppLmdwdVZlbmRvcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTM6aS5sZW5zVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAxNDppLmN1cnJlbnRHaG9zdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTppLmRvd25sb2FkSWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2FwcFNlc3Npb25JZDpcIlwiLGluc3RhbGxhdGlvbklkOlwiXCIsY2xpZW50VHM6XCIwXCIsZXZlbnRWYWx1ZTpcIlwiLGxlbnNJZDpcIlwiLGxlbnNTaXplOlwiMFwiLGRvY3VtZW50SWQ6XCJcIixvcmlnaW5hbERvY3VtZW50SWQ6XCJcIixncHVPcGVuZ2xWZXJzaW9uOlwiXCIsZ3B1RmFtaWx5OlwiXCIsZ3B1VmVuZG9yOlwiXCIsbGVuc1R5cGU6MCxjdXJyZW50R2hvc3RJZDpcIlwiLGRvd25sb2FkSWQ6XCJcIn07cmV0dXJuIHQuYXBwU2Vzc2lvbklkPWUuYXBwU2Vzc2lvbklkPz9cIlwiLHQuaW5zdGFsbGF0aW9uSWQ9ZS5pbnN0YWxsYXRpb25JZD8/XCJcIix0LmNsaWVudFRzPWUuY2xpZW50VHM/P1wiMFwiLHQuZXZlbnRWYWx1ZT1lLmV2ZW50VmFsdWU/P1wiXCIsdC5sZW5zSWQ9ZS5sZW5zSWQ/P1wiXCIsdC5sZW5zU2l6ZT1lLmxlbnNTaXplPz9cIjBcIix0LmRvY3VtZW50SWQ9ZS5kb2N1bWVudElkPz9cIlwiLHQub3JpZ2luYWxEb2N1bWVudElkPWUub3JpZ2luYWxEb2N1bWVudElkPz9cIlwiLHQuZ3B1T3BlbmdsVmVyc2lvbj1lLmdwdU9wZW5nbFZlcnNpb24/P1wiXCIsdC5ncHVGYW1pbHk9ZS5ncHVGYW1pbHk/P1wiXCIsdC5ncHVWZW5kb3I9ZS5ncHVWZW5kb3I/P1wiXCIsdC5sZW5zVHlwZT1lLmxlbnNUeXBlPz8wLHQuY3VycmVudEdob3N0SWQ9ZS5jdXJyZW50R2hvc3RJZD8/XCJcIix0LmRvd25sb2FkSWQ9ZS5kb3dubG9hZElkPz9cIlwiLHR9fSx0LkxpdmVMb2NhdGlvblB1c2hOb3RpZmljYXRpb25TZW5kPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+dCxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e307Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO24uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWw6ZT0+KHt9KX0sdC5MaXZlTG9jYXRpb25VcGRhdGVSZWNlaXZlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+dCxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e307Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO24uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWw6ZT0+KHt9KX0sdC5Mb2dpbkF0dGVtcHRCYXNlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLmxvZ2luUmVzdWx0JiZ0LnVpbnQzMig4KS5pbnQzMihlLmxvZ2luUmVzdWx0KSxcIlwiIT09ZS5zZXJ2ZXJMb2dpblJlcXVlc3RJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnNlcnZlckxvZ2luUmVxdWVzdElkKSxcIlwiIT09ZS5jbGllbnROZXR3b3JrUmVxdWVzdElkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuY2xpZW50TmV0d29ya1JlcXVlc3RJZCksXCJcIiE9PWUuY2xpZW50TG9naW5GbG93U2Vzc2lvbklkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuY2xpZW50TG9naW5GbG93U2Vzc2lvbklkKSxcIlwiIT09ZS5jbGllbnRBdXRoZW50aWNhdGlvblNlc3Npb25JZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmNsaWVudEF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkKSxcIlwiIT09ZS5jbGllbnRMb2dpbkF0dGVtcHRJZCYmdC51aW50MzIoNTApLnN0cmluZyhlLmNsaWVudExvZ2luQXR0ZW1wdElkKSwwIT09ZS5pc0tub3duRGV2aWNlJiZ0LnVpbnQzMig1NikuaW50MzIoZS5pc0tub3duRGV2aWNlKSwwIT09ZS5pc1Rlc3RVc2VyJiZ0LnVpbnQzMig2NCkuaW50MzIoZS5pc1Rlc3RVc2VyKSxcIlwiIT09ZS5sb2dpbkZhaWx1cmVSZWFzb24mJnQudWludDMyKDc0KS5zdHJpbmcoZS5sb2dpbkZhaWx1cmVSZWFzb24pLFwiXCIhPT1lLmNsaWVudElkJiZ0LnVpbnQzMig4Mikuc3RyaW5nKGUuY2xpZW50SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bG9naW5SZXN1bHQ6MCxzZXJ2ZXJMb2dpblJlcXVlc3RJZDpcIlwiLGNsaWVudE5ldHdvcmtSZXF1ZXN0SWQ6XCJcIixjbGllbnRMb2dpbkZsb3dTZXNzaW9uSWQ6XCJcIixjbGllbnRBdXRoZW50aWNhdGlvblNlc3Npb25JZDpcIlwiLGNsaWVudExvZ2luQXR0ZW1wdElkOlwiXCIsaXNLbm93bkRldmljZTowLGlzVGVzdFVzZXI6MCxsb2dpbkZhaWx1cmVSZWFzb246XCJcIixjbGllbnRJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5sb2dpblJlc3VsdD1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuc2VydmVyTG9naW5SZXF1ZXN0SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5jbGllbnROZXR3b3JrUmVxdWVzdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuY2xpZW50TG9naW5GbG93U2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuY2xpZW50QXV0aGVudGljYXRpb25TZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5jbGllbnRMb2dpbkF0dGVtcHRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLmlzS25vd25EZXZpY2U9bi5pbnQzMigpO2JyZWFrO2Nhc2UgODppLmlzVGVzdFVzZXI9bi5pbnQzMigpO2JyZWFrO2Nhc2UgOTppLmxvZ2luRmFpbHVyZVJlYXNvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTA6aS5jbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17bG9naW5SZXN1bHQ6MCxzZXJ2ZXJMb2dpblJlcXVlc3RJZDpcIlwiLGNsaWVudE5ldHdvcmtSZXF1ZXN0SWQ6XCJcIixjbGllbnRMb2dpbkZsb3dTZXNzaW9uSWQ6XCJcIixjbGllbnRBdXRoZW50aWNhdGlvblNlc3Npb25JZDpcIlwiLGNsaWVudExvZ2luQXR0ZW1wdElkOlwiXCIsaXNLbm93bkRldmljZTowLGlzVGVzdFVzZXI6MCxsb2dpbkZhaWx1cmVSZWFzb246XCJcIixjbGllbnRJZDpcIlwifTtyZXR1cm4gdC5sb2dpblJlc3VsdD1lLmxvZ2luUmVzdWx0Pz8wLHQuc2VydmVyTG9naW5SZXF1ZXN0SWQ9ZS5zZXJ2ZXJMb2dpblJlcXVlc3RJZD8/XCJcIix0LmNsaWVudE5ldHdvcmtSZXF1ZXN0SWQ9ZS5jbGllbnROZXR3b3JrUmVxdWVzdElkPz9cIlwiLHQuY2xpZW50TG9naW5GbG93U2Vzc2lvbklkPWUuY2xpZW50TG9naW5GbG93U2Vzc2lvbklkPz9cIlwiLHQuY2xpZW50QXV0aGVudGljYXRpb25TZXNzaW9uSWQ9ZS5jbGllbnRBdXRoZW50aWNhdGlvblNlc3Npb25JZD8/XCJcIix0LmNsaWVudExvZ2luQXR0ZW1wdElkPWUuY2xpZW50TG9naW5BdHRlbXB0SWQ/P1wiXCIsdC5pc0tub3duRGV2aWNlPWUuaXNLbm93bkRldmljZT8/MCx0LmlzVGVzdFVzZXI9ZS5pc1Rlc3RVc2VyPz8wLHQubG9naW5GYWlsdXJlUmVhc29uPWUubG9naW5GYWlsdXJlUmVhc29uPz9cIlwiLHQuY2xpZW50SWQ9ZS5jbGllbnRJZD8/XCJcIix0fX0sdC5NYXBPcmJpc1N0b3JpZXNEYXRhPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnZlcnJhemFub0lkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUudmVycmF6YW5vSWQpLDAhPT1lLmxvY2F0aW9uVHlwZSYmdC51aW50MzIoMTYpLmludDMyKGUubG9jYXRpb25UeXBlKSxcIjBcIiE9PWUuY3VycmVudFN0b3J5U2l6ZSYmdC51aW50MzIoMjQpLnVpbnQ2NChlLmN1cnJlbnRTdG9yeVNpemUpLFwiMFwiIT09ZS51cGRhdGVUaW1lc3RhbXAmJnQudWludDMyKDMyKS51aW50NjQoZS51cGRhdGVUaW1lc3RhbXApLDAhPT1lLnVwZGF0ZVR5cGUmJnQudWludDMyKDQwKS5pbnQzMihlLnVwZGF0ZVR5cGUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17dmVycmF6YW5vSWQ6XCJcIixsb2NhdGlvblR5cGU6MCxjdXJyZW50U3RvcnlTaXplOlwiMFwiLHVwZGF0ZVRpbWVzdGFtcDpcIjBcIix1cGRhdGVUeXBlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnZlcnJhemFub0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkubG9jYXRpb25UeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDM6aS5jdXJyZW50U3RvcnlTaXplPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA0OmkudXBkYXRlVGltZXN0YW1wPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmkudXBkYXRlVHlwZT1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt2ZXJyYXphbm9JZDpcIlwiLGxvY2F0aW9uVHlwZTowLGN1cnJlbnRTdG9yeVNpemU6XCIwXCIsdXBkYXRlVGltZXN0YW1wOlwiMFwiLHVwZGF0ZVR5cGU6MH07cmV0dXJuIHQudmVycmF6YW5vSWQ9ZS52ZXJyYXphbm9JZD8/XCJcIix0LmxvY2F0aW9uVHlwZT1lLmxvY2F0aW9uVHlwZT8/MCx0LmN1cnJlbnRTdG9yeVNpemU9ZS5jdXJyZW50U3RvcnlTaXplPz9cIjBcIix0LnVwZGF0ZVRpbWVzdGFtcD1lLnVwZGF0ZVRpbWVzdGFtcD8/XCIwXCIsdC51cGRhdGVUeXBlPWUudXBkYXRlVHlwZT8/MCx0fX0sdC5NZXNzYWdlU3Vic2NyaXB0aW9uQWN0aW9uPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLmZlYXR1cmUmJnQudWludDMyKDgpLmludDMyKGUuZmVhdHVyZSksXCJcIiE9PWUucGhvbmVOdW1iZXJDb3VudHJ5Q29kZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnBob25lTnVtYmVyQ291bnRyeUNvZGUpLFwiXCIhPT1lLmhhc2hlZFBob25lTnVtYmVyJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuaGFzaGVkUGhvbmVOdW1iZXIpLFwiXCIhPT1lLmhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXMmJnQudWludDMyKDM0KS5zdHJpbmcoZS5oYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzKSwwIT09ZS5zdHJhdGVneSYmdC51aW50MzIoNDApLmludDMyKGUuc3RyYXRlZ3kpLDAhPT1lLnN1YnNjcmlwdGlvbkFjdGlvbiYmdC51aW50MzIoNDgpLmludDMyKGUuc3Vic2NyaXB0aW9uQWN0aW9uKSxcIlwiIT09ZS5oYXNoZWRJUEFkZHJlc3MmJnQudWludDMyKDU4KS5zdHJpbmcoZS5oYXNoZWRJUEFkZHJlc3MpLFwiXCIhPT1lLmNsaWVudElkJiZ0LnVpbnQzMig2Nikuc3RyaW5nKGUuY2xpZW50SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZmVhdHVyZTowLHBob25lTnVtYmVyQ291bnRyeUNvZGU6XCJcIixoYXNoZWRQaG9uZU51bWJlcjpcIlwiLGhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM6XCJcIixzdHJhdGVneTowLHN1YnNjcmlwdGlvbkFjdGlvbjowLGhhc2hlZElQQWRkcmVzczpcIlwiLGNsaWVudElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmZlYXR1cmU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLnBob25lTnVtYmVyQ291bnRyeUNvZGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5oYXNoZWRQaG9uZU51bWJlcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5zdHJhdGVneT1uLmludDMyKCk7YnJlYWs7Y2FzZSA2Omkuc3Vic2NyaXB0aW9uQWN0aW9uPW4uaW50MzIoKTticmVhaztjYXNlIDc6aS5oYXNoZWRJUEFkZHJlc3M9bi5zdHJpbmcoKTticmVhaztjYXNlIDg6aS5jbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZmVhdHVyZTowLHBob25lTnVtYmVyQ291bnRyeUNvZGU6XCJcIixoYXNoZWRQaG9uZU51bWJlcjpcIlwiLGhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM6XCJcIixzdHJhdGVneTowLHN1YnNjcmlwdGlvbkFjdGlvbjowLGhhc2hlZElQQWRkcmVzczpcIlwiLGNsaWVudElkOlwiXCJ9O3JldHVybiB0LmZlYXR1cmU9ZS5mZWF0dXJlPz8wLHQucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGU/P1wiXCIsdC5oYXNoZWRQaG9uZU51bWJlcj1lLmhhc2hlZFBob25lTnVtYmVyPz9cIlwiLHQuaGFzaGVkUGhvbmVOdW1iZXJXaXRob3V0UGx1cz1lLmhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM/P1wiXCIsdC5zdHJhdGVneT1lLnN0cmF0ZWd5Pz8wLHQuc3Vic2NyaXB0aW9uQWN0aW9uPWUuc3Vic2NyaXB0aW9uQWN0aW9uPz8wLHQuaGFzaGVkSVBBZGRyZXNzPWUuaGFzaGVkSVBBZGRyZXNzPz9cIlwiLHQuY2xpZW50SWQ9ZS5jbGllbnRJZD8/XCJcIix0fX0sdC5NaW5pU2VydmVyRXZlbnRCYXNlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmNvZ25hY0lkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuY29nbmFjSWQpLFwiXCIhPT1lLmNvZ25hY1Nlc3Npb25JZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmNvZ25hY1Nlc3Npb25JZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjb2duYWNJZDpcIlwiLGNvZ25hY1Nlc3Npb25JZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5jb2duYWNJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmNvZ25hY1Nlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Y29nbmFjSWQ6XCJcIixjb2duYWNTZXNzaW9uSWQ6XCJcIn07cmV0dXJuIHQuY29nbmFjSWQ9ZS5jb2duYWNJZD8/XCJcIix0LmNvZ25hY1Nlc3Npb25JZD1lLmNvZ25hY1Nlc3Npb25JZD8/XCJcIix0fX0sdC5NaXhlclJlc3BvbnNlRXZlbnQ9e2VuY29kZShlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSl7XCJcIiE9PWUubWl4ZXJSZXF1ZXN0SWQmJm4udWludDMyKDEwKS5zdHJpbmcoZS5taXhlclJlcXVlc3RJZCk7Zm9yKGNvbnN0IHIgb2YgZS5taXhlckxlbnNlcyl0LkNhcm91c2VsTGVucy5lbmNvZGUocixuLnVpbnQzMigyNikuZm9yaygpKS5sZGVsaW0oKTtyZXR1cm5cIlwiIT09ZS5yZXF1ZXN0ZXJHdWlkJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUucmVxdWVzdGVyR3VpZCksbn0sZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXttaXhlclJlcXVlc3RJZDpcIlwiLG1peGVyTGVuc2VzOltdLHJlcXVlc3Rlckd1aWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubWl4ZXJSZXF1ZXN0SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5taXhlckxlbnNlcy5wdXNoKHQuQ2Fyb3VzZWxMZW5zLmRlY29kZShyLHIudWludDMyKCkpKTticmVhaztjYXNlIDQ6YS5yZXF1ZXN0ZXJHdWlkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXttaXhlclJlcXVlc3RJZDpcIlwiLG1peGVyTGVuc2VzOltdLHJlcXVlc3Rlckd1aWQ6XCJcIn07cmV0dXJuIG4ubWl4ZXJSZXF1ZXN0SWQ9ZS5taXhlclJlcXVlc3RJZD8/XCJcIixuLm1peGVyTGVuc2VzPWUubWl4ZXJMZW5zZXM/Lm1hcCgoZT0+dC5DYXJvdXNlbExlbnMuZnJvbVBhcnRpYWwoZSkpKXx8W10sbi5yZXF1ZXN0ZXJHdWlkPWUucmVxdWVzdGVyR3VpZD8/XCJcIixufX0sdC5PdXJTdG9yeVNob3dNeU5hbWU9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oITA9PT1lLmlzQWN0aW9uRW5hYmxlJiZ0LnVpbnQzMig4KS5ib29sKGUuaXNBY3Rpb25FbmFibGUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17aXNBY3Rpb25FbmFibGU6ITF9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtpZihlPj4+Mz09PTEpaS5pc0FjdGlvbkVuYWJsZT1uLmJvb2woKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17aXNBY3Rpb25FbmFibGU6ITF9O3JldHVybiB0LmlzQWN0aW9uRW5hYmxlPWUuaXNBY3Rpb25FbmFibGU/PyExLHR9fSx0LlBob25lTG9va3VwU3RhdHVzPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnBob25lVmVyaWZ5Q29kZUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUucGhvbmVWZXJpZnlDb2RlSWQpLDAhPT1lLmRlbGl2ZXJ5U3RyYXRlZ3kmJnQudWludDMyKDE2KS5pbnQzMihlLmRlbGl2ZXJ5U3RyYXRlZ3kpLCEwPT09ZS5zaG91bGRTZW5kJiZ0LnVpbnQzMigyNCkuYm9vbChlLnNob3VsZFNlbmQpLFwiXCIhPT1lLm5ldHdvcmtDb2RlJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUubmV0d29ya0NvZGUpLDAhPT1lLnBob25lTnVtYmVyVHlwZSYmdC51aW50MzIoNDApLmludDMyKGUucGhvbmVOdW1iZXJUeXBlKSxcIlwiIT09ZS5jYXJyaWVyJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuY2FycmllciksMCE9PWUuZmVhdHVyZSYmdC51aW50MzIoNTYpLmludDMyKGUuZmVhdHVyZSksMCE9PWUuZGVsaXZlcnlDYXRlZ29yeSYmdC51aW50MzIoNjQpLmludDMyKGUuZGVsaXZlcnlDYXRlZ29yeSksXCJcIiE9PWUucGhvbmVOdW1iZXJDb3VudHJ5Q29kZSYmdC51aW50MzIoNzQpLnN0cmluZyhlLnBob25lTnVtYmVyQ291bnRyeUNvZGUpLCEwPT09ZS52ZW5kb3JCbG9ja2xpc3RlZCYmdC51aW50MzIoODApLmJvb2woZS52ZW5kb3JCbG9ja2xpc3RlZCksMCE9PWUudmVuZG9yQmxvY2tMaXN0ZWREZXNjcmlwdGlvbiYmdC51aW50MzIoODgpLmludDMyKGUudmVuZG9yQmxvY2tMaXN0ZWREZXNjcmlwdGlvbiksXCJcIiE9PWUuY2xpZW50SWQmJnQudWludDMyKDk4KS5zdHJpbmcoZS5jbGllbnRJZCksXCJcIiE9PWUudGVsZXBob255U2Vzc2lvbklkJiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLnRlbGVwaG9ueVNlc3Npb25JZCksITA9PT1lLmxvb2t1cE9jY3VycmVkJiZ0LnVpbnQzMigxMTIpLmJvb2woZS5sb29rdXBPY2N1cnJlZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtwaG9uZVZlcmlmeUNvZGVJZDpcIlwiLGRlbGl2ZXJ5U3RyYXRlZ3k6MCxzaG91bGRTZW5kOiExLG5ldHdvcmtDb2RlOlwiXCIscGhvbmVOdW1iZXJUeXBlOjAsY2FycmllcjpcIlwiLGZlYXR1cmU6MCxkZWxpdmVyeUNhdGVnb3J5OjAscGhvbmVOdW1iZXJDb3VudHJ5Q29kZTpcIlwiLHZlbmRvckJsb2NrbGlzdGVkOiExLHZlbmRvckJsb2NrTGlzdGVkRGVzY3JpcHRpb246MCxjbGllbnRJZDpcIlwiLHRlbGVwaG9ueVNlc3Npb25JZDpcIlwiLGxvb2t1cE9jY3VycmVkOiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5waG9uZVZlcmlmeUNvZGVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmRlbGl2ZXJ5U3RyYXRlZ3k9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMzppLnNob3VsZFNlbmQ9bi5ib29sKCk7YnJlYWs7Y2FzZSA0OmkubmV0d29ya0NvZGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5waG9uZU51bWJlclR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNjppLmNhcnJpZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5mZWF0dXJlPW4uaW50MzIoKTticmVhaztjYXNlIDg6aS5kZWxpdmVyeUNhdGVnb3J5PW4uaW50MzIoKTticmVhaztjYXNlIDk6aS5waG9uZU51bWJlckNvdW50cnlDb2RlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLnZlbmRvckJsb2NrbGlzdGVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTE6aS52ZW5kb3JCbG9ja0xpc3RlZERlc2NyaXB0aW9uPW4uaW50MzIoKTticmVhaztjYXNlIDEyOmkuY2xpZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDEzOmkudGVsZXBob255U2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLmxvb2t1cE9jY3VycmVkPW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cGhvbmVWZXJpZnlDb2RlSWQ6XCJcIixkZWxpdmVyeVN0cmF0ZWd5OjAsc2hvdWxkU2VuZDohMSxuZXR3b3JrQ29kZTpcIlwiLHBob25lTnVtYmVyVHlwZTowLGNhcnJpZXI6XCJcIixmZWF0dXJlOjAsZGVsaXZlcnlDYXRlZ29yeTowLHBob25lTnVtYmVyQ291bnRyeUNvZGU6XCJcIix2ZW5kb3JCbG9ja2xpc3RlZDohMSx2ZW5kb3JCbG9ja0xpc3RlZERlc2NyaXB0aW9uOjAsY2xpZW50SWQ6XCJcIix0ZWxlcGhvbnlTZXNzaW9uSWQ6XCJcIixsb29rdXBPY2N1cnJlZDohMX07cmV0dXJuIHQucGhvbmVWZXJpZnlDb2RlSWQ9ZS5waG9uZVZlcmlmeUNvZGVJZD8/XCJcIix0LmRlbGl2ZXJ5U3RyYXRlZ3k9ZS5kZWxpdmVyeVN0cmF0ZWd5Pz8wLHQuc2hvdWxkU2VuZD1lLnNob3VsZFNlbmQ/PyExLHQubmV0d29ya0NvZGU9ZS5uZXR3b3JrQ29kZT8/XCJcIix0LnBob25lTnVtYmVyVHlwZT1lLnBob25lTnVtYmVyVHlwZT8/MCx0LmNhcnJpZXI9ZS5jYXJyaWVyPz9cIlwiLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5kZWxpdmVyeUNhdGVnb3J5PWUuZGVsaXZlcnlDYXRlZ29yeT8/MCx0LnBob25lTnVtYmVyQ291bnRyeUNvZGU9ZS5waG9uZU51bWJlckNvdW50cnlDb2RlPz9cIlwiLHQudmVuZG9yQmxvY2tsaXN0ZWQ9ZS52ZW5kb3JCbG9ja2xpc3RlZD8/ITEsdC52ZW5kb3JCbG9ja0xpc3RlZERlc2NyaXB0aW9uPWUudmVuZG9yQmxvY2tMaXN0ZWREZXNjcmlwdGlvbj8/MCx0LmNsaWVudElkPWUuY2xpZW50SWQ/P1wiXCIsdC50ZWxlcGhvbnlTZXNzaW9uSWQ9ZS50ZWxlcGhvbnlTZXNzaW9uSWQ/P1wiXCIsdC5sb29rdXBPY2N1cnJlZD1lLmxvb2t1cE9jY3VycmVkPz8hMSx0fX0sdC5QaG9uZU1lc3NhZ2VEZWxpdmVyUmFua2luZ01ldGFkYXRhPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnByaWNlJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUucHJpY2UpLFwiXCIhPT1lLmNvbnZlcnNpb25SYXRlJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuY29udmVyc2lvblJhdGUpLFwiXCIhPT1lLmNvc3RQZXJDb252ZXJzaW9uJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuY29zdFBlckNvbnZlcnNpb24pLFwiMFwiIT09ZS5yYW5rJiZ0LnVpbnQzMigzMikudWludDY0KGUucmFuayksXCJcIiE9PWUucmVxTnVtYmVyJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUucmVxTnVtYmVyKSxcIjBcIiE9PWUuYWxnb3JpdGhtVXNlZCYmdC51aW50MzIoNDgpLnVpbnQ2NChlLmFsZ29yaXRobVVzZWQpLDAhPT1lLmRlbGl2ZXJ5U3RyYXRlZ3kmJnQudWludDMyKDU2KS5pbnQzMihlLmRlbGl2ZXJ5U3RyYXRlZ3kpLFwiXCIhPT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGUmJnQudWludDMyKDY2KS5zdHJpbmcoZS5waG9uZU51bWJlckNvdW50cnlDb2RlKSxcIlwiIT09ZS5waG9uZU51bWJlck5ldHdvcmtDb2RlJiZ0LnVpbnQzMig3NCkuc3RyaW5nKGUucGhvbmVOdW1iZXJOZXR3b3JrQ29kZSksMCE9PWUucHJvdmlkZXImJnQudWludDMyKDgwKS5pbnQzMihlLnByb3ZpZGVyKSxcIlwiIT09ZS5waG9uZVZlcmlmeUNvZGVJZCYmdC51aW50MzIoOTApLnN0cmluZyhlLnBob25lVmVyaWZ5Q29kZUlkKSwwIT09ZS5mZWF0dXJlJiZ0LnVpbnQzMig5NikuaW50MzIoZS5mZWF0dXJlKSwwIT09ZS5kZWxpdmVyeUNhdGVnb3J5JiZ0LnVpbnQzMigxMDQpLmludDMyKGUuZGVsaXZlcnlDYXRlZ29yeSksXCJcIiE9PWUuY2xpZW50SWQmJnQudWludDMyKDExNCkuc3RyaW5nKGUuY2xpZW50SWQpLFwiXCIhPT1lLnRlbGVwaG9ueVNlc3Npb25JZCYmdC51aW50MzIoMTIyKS5zdHJpbmcoZS50ZWxlcGhvbnlTZXNzaW9uSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17cHJpY2U6XCJcIixjb252ZXJzaW9uUmF0ZTpcIlwiLGNvc3RQZXJDb252ZXJzaW9uOlwiXCIscmFuazpcIjBcIixyZXFOdW1iZXI6XCJcIixhbGdvcml0aG1Vc2VkOlwiMFwiLGRlbGl2ZXJ5U3RyYXRlZ3k6MCxwaG9uZU51bWJlckNvdW50cnlDb2RlOlwiXCIscGhvbmVOdW1iZXJOZXR3b3JrQ29kZTpcIlwiLHByb3ZpZGVyOjAscGhvbmVWZXJpZnlDb2RlSWQ6XCJcIixmZWF0dXJlOjAsZGVsaXZlcnlDYXRlZ29yeTowLGNsaWVudElkOlwiXCIsdGVsZXBob255U2Vzc2lvbklkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnByaWNlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuY29udmVyc2lvblJhdGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5jb3N0UGVyQ29udmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnJhbms9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6aS5yZXFOdW1iZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5hbGdvcml0aG1Vc2VkPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA3OmkuZGVsaXZlcnlTdHJhdGVneT1uLmludDMyKCk7YnJlYWs7Y2FzZSA4OmkucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgOTppLnBob25lTnVtYmVyTmV0d29ya0NvZGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDEwOmkucHJvdmlkZXI9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTE6aS5waG9uZVZlcmlmeUNvZGVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS5mZWF0dXJlPW4uaW50MzIoKTticmVhaztjYXNlIDEzOmkuZGVsaXZlcnlDYXRlZ29yeT1uLmludDMyKCk7YnJlYWs7Y2FzZSAxNDppLmNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTppLnRlbGVwaG9ueVNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cHJpY2U6XCJcIixjb252ZXJzaW9uUmF0ZTpcIlwiLGNvc3RQZXJDb252ZXJzaW9uOlwiXCIscmFuazpcIjBcIixyZXFOdW1iZXI6XCJcIixhbGdvcml0aG1Vc2VkOlwiMFwiLGRlbGl2ZXJ5U3RyYXRlZ3k6MCxwaG9uZU51bWJlckNvdW50cnlDb2RlOlwiXCIscGhvbmVOdW1iZXJOZXR3b3JrQ29kZTpcIlwiLHByb3ZpZGVyOjAscGhvbmVWZXJpZnlDb2RlSWQ6XCJcIixmZWF0dXJlOjAsZGVsaXZlcnlDYXRlZ29yeTowLGNsaWVudElkOlwiXCIsdGVsZXBob255U2Vzc2lvbklkOlwiXCJ9O3JldHVybiB0LnByaWNlPWUucHJpY2U/P1wiXCIsdC5jb252ZXJzaW9uUmF0ZT1lLmNvbnZlcnNpb25SYXRlPz9cIlwiLHQuY29zdFBlckNvbnZlcnNpb249ZS5jb3N0UGVyQ29udmVyc2lvbj8/XCJcIix0LnJhbms9ZS5yYW5rPz9cIjBcIix0LnJlcU51bWJlcj1lLnJlcU51bWJlcj8/XCJcIix0LmFsZ29yaXRobVVzZWQ9ZS5hbGdvcml0aG1Vc2VkPz9cIjBcIix0LmRlbGl2ZXJ5U3RyYXRlZ3k9ZS5kZWxpdmVyeVN0cmF0ZWd5Pz8wLHQucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGU/P1wiXCIsdC5waG9uZU51bWJlck5ldHdvcmtDb2RlPWUucGhvbmVOdW1iZXJOZXR3b3JrQ29kZT8/XCJcIix0LnByb3ZpZGVyPWUucHJvdmlkZXI/PzAsdC5waG9uZVZlcmlmeUNvZGVJZD1lLnBob25lVmVyaWZ5Q29kZUlkPz9cIlwiLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5kZWxpdmVyeUNhdGVnb3J5PWUuZGVsaXZlcnlDYXRlZ29yeT8/MCx0LmNsaWVudElkPWUuY2xpZW50SWQ/P1wiXCIsdC50ZWxlcGhvbnlTZXNzaW9uSWQ9ZS50ZWxlcGhvbnlTZXNzaW9uSWQ/P1wiXCIsdH19LHQuUGhvbmVNZXNzYWdlRGVsaXZlclN0YXR1cz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PigwIT09ZS5kZWxpdmVyeVN0cmF0ZWd5JiZ0LnVpbnQzMig4KS5pbnQzMihlLmRlbGl2ZXJ5U3RyYXRlZ3kpLFwiXCIhPT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5waG9uZU51bWJlckNvdW50cnlDb2RlKSxcIlwiIT09ZS5zdGF0dXMmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zdGF0dXMpLFwiXCIhPT1lLnBob25lTnVtYmVyTmV0d29ya0NvZGUmJnQudWludDMyKDM0KS5zdHJpbmcoZS5waG9uZU51bWJlck5ldHdvcmtDb2RlKSxcIlwiIT09ZS5wcm92aWRlckVycm9yJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUucHJvdmlkZXJFcnJvciksXCJcIiE9PWUucHJpY2UmJnQudWludDMyKDUwKS5zdHJpbmcoZS5wcmljZSksXCJcIiE9PWUubWVzc2FnZUlkJiZ0LnVpbnQzMig1OCkuc3RyaW5nKGUubWVzc2FnZUlkKSwwIT09ZS5wcm92aWRlciYmdC51aW50MzIoNjQpLmludDMyKGUucHJvdmlkZXIpLFwiXCIhPT1lLnBob25lVmVyaWZ5Q29kZUlkJiZ0LnVpbnQzMig3NCkuc3RyaW5nKGUucGhvbmVWZXJpZnlDb2RlSWQpLDAhPT1lLmZlYXR1cmUmJnQudWludDMyKDgwKS5pbnQzMihlLmZlYXR1cmUpLDAhPT1lLmNvZGVFbnRyeVR5cGUmJnQudWludDMyKDg4KS5pbnQzMihlLmNvZGVFbnRyeVR5cGUpLFwiXCIhPT1lLnJlcU51bWJlciYmdC51aW50MzIoOTgpLnN0cmluZyhlLnJlcU51bWJlciksXCJcIiE9PWUubWVzc2FnZVNlZ21lbnRzJiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLm1lc3NhZ2VTZWdtZW50cyksXCJcIiE9PWUuY2FsbER1cmF0aW9uU2Vjb25kcyYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5jYWxsRHVyYXRpb25TZWNvbmRzKSwwIT09ZS5kZWxpdmVyeUNhdGVnb3J5JiZ0LnVpbnQzMigxMjApLmludDMyKGUuZGVsaXZlcnlDYXRlZ29yeSksMCE9PWUuZGVsaXZlcnlDdXJyZW5jeSYmdC51aW50MzIoMTI4KS5pbnQzMihlLmRlbGl2ZXJ5Q3VycmVuY3kpLFwiMFwiIT09ZS5hbGdvcml0aG1Vc2VkJiZ0LnVpbnQzMigxMzYpLnVpbnQ2NChlLmFsZ29yaXRobVVzZWQpLFwiXCIhPT1lLnZlbmRvclBob25lTnVtYmVyJiZ0LnVpbnQzMigxNDYpLnN0cmluZyhlLnZlbmRvclBob25lTnVtYmVyKSwwIT09ZS5waG9uZU51bWJlclR5cGUmJnQudWludDMyKDE1MikuaW50MzIoZS5waG9uZU51bWJlclR5cGUpLFwiXCIhPT1lLmNhcnJpZXImJnQudWludDMyKDE2Mikuc3RyaW5nKGUuY2FycmllciksITA9PT1lLmlzVHJhaW5pbmcmJnQudWludDMyKDE2OCkuYm9vbChlLmlzVHJhaW5pbmcpLFwiXCIhPT1lLmNsaWVudElkJiZ0LnVpbnQzMigxNzgpLnN0cmluZyhlLmNsaWVudElkKSxcIlwiIT09ZS50ZWxlcGhvbnlTZXNzaW9uSWQmJnQudWludDMyKDE4Nikuc3RyaW5nKGUudGVsZXBob255U2Vzc2lvbklkKSxcIlwiIT09ZS5tb250aHNTaW5jZUxhc3RQaG9uZVZlcmlmaWNhdGlvbiYmdC51aW50MzIoMTk0KS5zdHJpbmcoZS5tb250aHNTaW5jZUxhc3RQaG9uZVZlcmlmaWNhdGlvbiksMCE9PWUubGFzdFBob25lVmVyaWZpZWRUaW1lc3RhbXAmJnQudWludDMyKDIwMSkuZG91YmxlKGUubGFzdFBob25lVmVyaWZpZWRUaW1lc3RhbXApLFwiXCIhPT1lLnNtc0NvcHlMYW5ndWFnZSYmdC51aW50MzIoMjEwKS5zdHJpbmcoZS5zbXNDb3B5TGFuZ3VhZ2UpLFwiXCIhPT1lLmhhc2hlZFBob25lTnVtYmVyJiZ0LnVpbnQzMigyMTgpLnN0cmluZyhlLmhhc2hlZFBob25lTnVtYmVyKSxcIlwiIT09ZS5oYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzJiZ0LnVpbnQzMigyMjYpLnN0cmluZyhlLmhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXMpLFwiXCIhPT1lLmhhc2hlZElQQWRkcmVzcyYmdC51aW50MzIoMjM0KS5zdHJpbmcoZS5oYXNoZWRJUEFkZHJlc3MpLCEwPT09ZS5pc1NlcnZlclRhcmdldGVkUmV0cnkmJnQudWludDMyKDI0MCkuYm9vbChlLmlzU2VydmVyVGFyZ2V0ZWRSZXRyeSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtkZWxpdmVyeVN0cmF0ZWd5OjAscGhvbmVOdW1iZXJDb3VudHJ5Q29kZTpcIlwiLHN0YXR1czpcIlwiLHBob25lTnVtYmVyTmV0d29ya0NvZGU6XCJcIixwcm92aWRlckVycm9yOlwiXCIscHJpY2U6XCJcIixtZXNzYWdlSWQ6XCJcIixwcm92aWRlcjowLHBob25lVmVyaWZ5Q29kZUlkOlwiXCIsZmVhdHVyZTowLGNvZGVFbnRyeVR5cGU6MCxyZXFOdW1iZXI6XCJcIixtZXNzYWdlU2VnbWVudHM6XCJcIixjYWxsRHVyYXRpb25TZWNvbmRzOlwiXCIsZGVsaXZlcnlDYXRlZ29yeTowLGRlbGl2ZXJ5Q3VycmVuY3k6MCxhbGdvcml0aG1Vc2VkOlwiMFwiLHZlbmRvclBob25lTnVtYmVyOlwiXCIscGhvbmVOdW1iZXJUeXBlOjAsY2FycmllcjpcIlwiLGlzVHJhaW5pbmc6ITEsY2xpZW50SWQ6XCJcIix0ZWxlcGhvbnlTZXNzaW9uSWQ6XCJcIixtb250aHNTaW5jZUxhc3RQaG9uZVZlcmlmaWNhdGlvbjpcIlwiLGxhc3RQaG9uZVZlcmlmaWVkVGltZXN0YW1wOjAsc21zQ29weUxhbmd1YWdlOlwiXCIsaGFzaGVkUGhvbmVOdW1iZXI6XCJcIixoYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzOlwiXCIsaGFzaGVkSVBBZGRyZXNzOlwiXCIsaXNTZXJ2ZXJUYXJnZXRlZFJldHJ5OiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5kZWxpdmVyeVN0cmF0ZWd5PW4uaW50MzIoKTticmVhaztjYXNlIDI6aS5waG9uZU51bWJlckNvdW50cnlDb2RlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkucGhvbmVOdW1iZXJOZXR3b3JrQ29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLnByb3ZpZGVyRXJyb3I9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5wcmljZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLm1lc3NhZ2VJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgODppLnByb3ZpZGVyPW4uaW50MzIoKTticmVhaztjYXNlIDk6aS5waG9uZVZlcmlmeUNvZGVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTA6aS5mZWF0dXJlPW4uaW50MzIoKTticmVhaztjYXNlIDExOmkuY29kZUVudHJ5VHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAxMjppLnJlcU51bWJlcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTM6aS5tZXNzYWdlU2VnbWVudHM9bi5zdHJpbmcoKTticmVhaztjYXNlIDE0OmkuY2FsbER1cmF0aW9uU2Vjb25kcz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTU6aS5kZWxpdmVyeUNhdGVnb3J5PW4uaW50MzIoKTticmVhaztjYXNlIDE2OmkuZGVsaXZlcnlDdXJyZW5jeT1uLmludDMyKCk7YnJlYWs7Y2FzZSAxNzppLmFsZ29yaXRobVVzZWQ9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDE4OmkudmVuZG9yUGhvbmVOdW1iZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDE5OmkucGhvbmVOdW1iZXJUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDIwOmkuY2Fycmllcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjE6aS5pc1RyYWluaW5nPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMjI6aS5jbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjM6aS50ZWxlcGhvbnlTZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI0OmkubW9udGhzU2luY2VMYXN0UGhvbmVWZXJpZmljYXRpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDI1OmkubGFzdFBob25lVmVyaWZpZWRUaW1lc3RhbXA9bi5kb3VibGUoKTticmVhaztjYXNlIDI2Omkuc21zQ29weUxhbmd1YWdlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyNzppLmhhc2hlZFBob25lTnVtYmVyPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyODppLmhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM9bi5zdHJpbmcoKTticmVhaztjYXNlIDI5OmkuaGFzaGVkSVBBZGRyZXNzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzMDppLmlzU2VydmVyVGFyZ2V0ZWRSZXRyeT1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2RlbGl2ZXJ5U3RyYXRlZ3k6MCxwaG9uZU51bWJlckNvdW50cnlDb2RlOlwiXCIsc3RhdHVzOlwiXCIscGhvbmVOdW1iZXJOZXR3b3JrQ29kZTpcIlwiLHByb3ZpZGVyRXJyb3I6XCJcIixwcmljZTpcIlwiLG1lc3NhZ2VJZDpcIlwiLHByb3ZpZGVyOjAscGhvbmVWZXJpZnlDb2RlSWQ6XCJcIixmZWF0dXJlOjAsY29kZUVudHJ5VHlwZTowLHJlcU51bWJlcjpcIlwiLG1lc3NhZ2VTZWdtZW50czpcIlwiLGNhbGxEdXJhdGlvblNlY29uZHM6XCJcIixkZWxpdmVyeUNhdGVnb3J5OjAsZGVsaXZlcnlDdXJyZW5jeTowLGFsZ29yaXRobVVzZWQ6XCIwXCIsdmVuZG9yUGhvbmVOdW1iZXI6XCJcIixwaG9uZU51bWJlclR5cGU6MCxjYXJyaWVyOlwiXCIsaXNUcmFpbmluZzohMSxjbGllbnRJZDpcIlwiLHRlbGVwaG9ueVNlc3Npb25JZDpcIlwiLG1vbnRoc1NpbmNlTGFzdFBob25lVmVyaWZpY2F0aW9uOlwiXCIsbGFzdFBob25lVmVyaWZpZWRUaW1lc3RhbXA6MCxzbXNDb3B5TGFuZ3VhZ2U6XCJcIixoYXNoZWRQaG9uZU51bWJlcjpcIlwiLGhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM6XCJcIixoYXNoZWRJUEFkZHJlc3M6XCJcIixpc1NlcnZlclRhcmdldGVkUmV0cnk6ITF9O3JldHVybiB0LmRlbGl2ZXJ5U3RyYXRlZ3k9ZS5kZWxpdmVyeVN0cmF0ZWd5Pz8wLHQucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGU/P1wiXCIsdC5zdGF0dXM9ZS5zdGF0dXM/P1wiXCIsdC5waG9uZU51bWJlck5ldHdvcmtDb2RlPWUucGhvbmVOdW1iZXJOZXR3b3JrQ29kZT8/XCJcIix0LnByb3ZpZGVyRXJyb3I9ZS5wcm92aWRlckVycm9yPz9cIlwiLHQucHJpY2U9ZS5wcmljZT8/XCJcIix0Lm1lc3NhZ2VJZD1lLm1lc3NhZ2VJZD8/XCJcIix0LnByb3ZpZGVyPWUucHJvdmlkZXI/PzAsdC5waG9uZVZlcmlmeUNvZGVJZD1lLnBob25lVmVyaWZ5Q29kZUlkPz9cIlwiLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5jb2RlRW50cnlUeXBlPWUuY29kZUVudHJ5VHlwZT8/MCx0LnJlcU51bWJlcj1lLnJlcU51bWJlcj8/XCJcIix0Lm1lc3NhZ2VTZWdtZW50cz1lLm1lc3NhZ2VTZWdtZW50cz8/XCJcIix0LmNhbGxEdXJhdGlvblNlY29uZHM9ZS5jYWxsRHVyYXRpb25TZWNvbmRzPz9cIlwiLHQuZGVsaXZlcnlDYXRlZ29yeT1lLmRlbGl2ZXJ5Q2F0ZWdvcnk/PzAsdC5kZWxpdmVyeUN1cnJlbmN5PWUuZGVsaXZlcnlDdXJyZW5jeT8/MCx0LmFsZ29yaXRobVVzZWQ9ZS5hbGdvcml0aG1Vc2VkPz9cIjBcIix0LnZlbmRvclBob25lTnVtYmVyPWUudmVuZG9yUGhvbmVOdW1iZXI/P1wiXCIsdC5waG9uZU51bWJlclR5cGU9ZS5waG9uZU51bWJlclR5cGU/PzAsdC5jYXJyaWVyPWUuY2Fycmllcj8/XCJcIix0LmlzVHJhaW5pbmc9ZS5pc1RyYWluaW5nPz8hMSx0LmNsaWVudElkPWUuY2xpZW50SWQ/P1wiXCIsdC50ZWxlcGhvbnlTZXNzaW9uSWQ9ZS50ZWxlcGhvbnlTZXNzaW9uSWQ/P1wiXCIsdC5tb250aHNTaW5jZUxhc3RQaG9uZVZlcmlmaWNhdGlvbj1lLm1vbnRoc1NpbmNlTGFzdFBob25lVmVyaWZpY2F0aW9uPz9cIlwiLHQubGFzdFBob25lVmVyaWZpZWRUaW1lc3RhbXA9ZS5sYXN0UGhvbmVWZXJpZmllZFRpbWVzdGFtcD8/MCx0LnNtc0NvcHlMYW5ndWFnZT1lLnNtc0NvcHlMYW5ndWFnZT8/XCJcIix0Lmhhc2hlZFBob25lTnVtYmVyPWUuaGFzaGVkUGhvbmVOdW1iZXI/P1wiXCIsdC5oYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzPWUuaGFzaGVkUGhvbmVOdW1iZXJXaXRob3V0UGx1cz8/XCJcIix0Lmhhc2hlZElQQWRkcmVzcz1lLmhhc2hlZElQQWRkcmVzcz8/XCJcIix0LmlzU2VydmVyVGFyZ2V0ZWRSZXRyeT1lLmlzU2VydmVyVGFyZ2V0ZWRSZXRyeT8/ITEsdH19LHQuUGhvbmVQYXJzaW5nUmVzdWx0PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLnVzZUNhc2UmJnQudWludDMyKDgpLmludDMyKGUudXNlQ2FzZSksXCJcIiE9PWUuZXZhbHVhdGVkUGhvbmVOdW1iZXImJnQudWludDMyKDE4KS5zdHJpbmcoZS5ldmFsdWF0ZWRQaG9uZU51bWJlciksXCJcIiE9PWUudXBsb2FkZXJQaG9uZU51bWJlciYmdC51aW50MzIoMjYpLnN0cmluZyhlLnVwbG9hZGVyUGhvbmVOdW1iZXIpLFwiXCIhPT1lLmNvdW50cnlDb2RlRnJvbUNsaWVudERlZmF1bHQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5jb3VudHJ5Q29kZUZyb21DbGllbnREZWZhdWx0KSxcIlwiIT09ZS5jb3VudHJ5Q29kZUZyb21Vc2VyU2VsZWN0aW9uJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuY291bnRyeUNvZGVGcm9tVXNlclNlbGVjdGlvbiksXCJcIiE9PWUuY291bnRyeUNvZGVGcm9tU0lNJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuY291bnRyeUNvZGVGcm9tU0lNKSxcIlwiIT09ZS5jb3VudHJ5Q29kZUZyb21OZXR3b3JrJiZ0LnVpbnQzMig1OCkuc3RyaW5nKGUuY291bnRyeUNvZGVGcm9tTmV0d29yayksXCJcIiE9PWUubG9jYWxlJiZ0LnVpbnQzMig2Nikuc3RyaW5nKGUubG9jYWxlKSxcIlwiIT09ZS5jb3VudHJ5Q29kZSYmdC51aW50MzIoNzQpLnN0cmluZyhlLmNvdW50cnlDb2RlKSxcIlwiIT09ZS5ndWVzc2VkUGhvbmVOdW1iZXImJnQudWludDMyKDgyKS5zdHJpbmcoZS5ndWVzc2VkUGhvbmVOdW1iZXIpLDAhPT1lLnN0YXR1cyYmdC51aW50MzIoODgpLmludDMyKGUuc3RhdHVzKSwwIT09ZS5jb25maWRlbmNlJiZ0LnVpbnQzMig5NykuZG91YmxlKGUuY29uZmlkZW5jZSksMCE9PWUuZXJyb3ImJnQudWludDMyKDEwNCkuaW50MzIoZS5lcnJvciksMCE9PWUucGhvbmVOdW1iZXJUeXBlJiZ0LnVpbnQzMigxMTIpLmludDMyKGUucGhvbmVOdW1iZXJUeXBlKSxcIlwiIT09ZS52YWxpZGF0aW9uUmVzdWx0JiZ0LnVpbnQzMigxMjIpLnN0cmluZyhlLnZhbGlkYXRpb25SZXN1bHQpLFwiXCIhPT1lLmd1ZXNzZVN0YXR1cyYmdC51aW50MzIoMTMwKS5zdHJpbmcoZS5ndWVzc2VTdGF0dXMpLFwiXCIhPT1lLnBob25lUGFyc2luZ1JlcXVlc3RJZCYmdC51aW50MzIoMTM4KS5zdHJpbmcoZS5waG9uZVBhcnNpbmdSZXF1ZXN0SWQpLDAhPT1lLnBob25lTG9va3VwTnVtYmVyVHlwZSYmdC51aW50MzIoMTQ0KS5pbnQzMihlLnBob25lTG9va3VwTnVtYmVyVHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt1c2VDYXNlOjAsZXZhbHVhdGVkUGhvbmVOdW1iZXI6XCJcIix1cGxvYWRlclBob25lTnVtYmVyOlwiXCIsY291bnRyeUNvZGVGcm9tQ2xpZW50RGVmYXVsdDpcIlwiLGNvdW50cnlDb2RlRnJvbVVzZXJTZWxlY3Rpb246XCJcIixjb3VudHJ5Q29kZUZyb21TSU06XCJcIixjb3VudHJ5Q29kZUZyb21OZXR3b3JrOlwiXCIsbG9jYWxlOlwiXCIsY291bnRyeUNvZGU6XCJcIixndWVzc2VkUGhvbmVOdW1iZXI6XCJcIixzdGF0dXM6MCxjb25maWRlbmNlOjAsZXJyb3I6MCxwaG9uZU51bWJlclR5cGU6MCx2YWxpZGF0aW9uUmVzdWx0OlwiXCIsZ3Vlc3NlU3RhdHVzOlwiXCIscGhvbmVQYXJzaW5nUmVxdWVzdElkOlwiXCIscGhvbmVMb29rdXBOdW1iZXJUeXBlOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnVzZUNhc2U9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLmV2YWx1YXRlZFBob25lTnVtYmVyPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkudXBsb2FkZXJQaG9uZU51bWJlcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmNvdW50cnlDb2RlRnJvbUNsaWVudERlZmF1bHQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5jb3VudHJ5Q29kZUZyb21Vc2VyU2VsZWN0aW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkuY291bnRyeUNvZGVGcm9tU0lNPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkuY291bnRyeUNvZGVGcm9tTmV0d29yaz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgODppLmxvY2FsZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgOTppLmNvdW50cnlDb2RlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLmd1ZXNzZWRQaG9uZU51bWJlcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6aS5zdGF0dXM9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTI6aS5jb25maWRlbmNlPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAxMzppLmVycm9yPW4uaW50MzIoKTticmVhaztjYXNlIDE0OmkucGhvbmVOdW1iZXJUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDE1OmkudmFsaWRhdGlvblJlc3VsdD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTY6aS5ndWVzc2VTdGF0dXM9bi5zdHJpbmcoKTticmVhaztjYXNlIDE3OmkucGhvbmVQYXJzaW5nUmVxdWVzdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxODppLnBob25lTG9va3VwTnVtYmVyVHlwZT1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt1c2VDYXNlOjAsZXZhbHVhdGVkUGhvbmVOdW1iZXI6XCJcIix1cGxvYWRlclBob25lTnVtYmVyOlwiXCIsY291bnRyeUNvZGVGcm9tQ2xpZW50RGVmYXVsdDpcIlwiLGNvdW50cnlDb2RlRnJvbVVzZXJTZWxlY3Rpb246XCJcIixjb3VudHJ5Q29kZUZyb21TSU06XCJcIixjb3VudHJ5Q29kZUZyb21OZXR3b3JrOlwiXCIsbG9jYWxlOlwiXCIsY291bnRyeUNvZGU6XCJcIixndWVzc2VkUGhvbmVOdW1iZXI6XCJcIixzdGF0dXM6MCxjb25maWRlbmNlOjAsZXJyb3I6MCxwaG9uZU51bWJlclR5cGU6MCx2YWxpZGF0aW9uUmVzdWx0OlwiXCIsZ3Vlc3NlU3RhdHVzOlwiXCIscGhvbmVQYXJzaW5nUmVxdWVzdElkOlwiXCIscGhvbmVMb29rdXBOdW1iZXJUeXBlOjB9O3JldHVybiB0LnVzZUNhc2U9ZS51c2VDYXNlPz8wLHQuZXZhbHVhdGVkUGhvbmVOdW1iZXI9ZS5ldmFsdWF0ZWRQaG9uZU51bWJlcj8/XCJcIix0LnVwbG9hZGVyUGhvbmVOdW1iZXI9ZS51cGxvYWRlclBob25lTnVtYmVyPz9cIlwiLHQuY291bnRyeUNvZGVGcm9tQ2xpZW50RGVmYXVsdD1lLmNvdW50cnlDb2RlRnJvbUNsaWVudERlZmF1bHQ/P1wiXCIsdC5jb3VudHJ5Q29kZUZyb21Vc2VyU2VsZWN0aW9uPWUuY291bnRyeUNvZGVGcm9tVXNlclNlbGVjdGlvbj8/XCJcIix0LmNvdW50cnlDb2RlRnJvbVNJTT1lLmNvdW50cnlDb2RlRnJvbVNJTT8/XCJcIix0LmNvdW50cnlDb2RlRnJvbU5ldHdvcms9ZS5jb3VudHJ5Q29kZUZyb21OZXR3b3JrPz9cIlwiLHQubG9jYWxlPWUubG9jYWxlPz9cIlwiLHQuY291bnRyeUNvZGU9ZS5jb3VudHJ5Q29kZT8/XCJcIix0Lmd1ZXNzZWRQaG9uZU51bWJlcj1lLmd1ZXNzZWRQaG9uZU51bWJlcj8/XCJcIix0LnN0YXR1cz1lLnN0YXR1cz8/MCx0LmNvbmZpZGVuY2U9ZS5jb25maWRlbmNlPz8wLHQuZXJyb3I9ZS5lcnJvcj8/MCx0LnBob25lTnVtYmVyVHlwZT1lLnBob25lTnVtYmVyVHlwZT8/MCx0LnZhbGlkYXRpb25SZXN1bHQ9ZS52YWxpZGF0aW9uUmVzdWx0Pz9cIlwiLHQuZ3Vlc3NlU3RhdHVzPWUuZ3Vlc3NlU3RhdHVzPz9cIlwiLHQucGhvbmVQYXJzaW5nUmVxdWVzdElkPWUucGhvbmVQYXJzaW5nUmVxdWVzdElkPz9cIlwiLHQucGhvbmVMb29rdXBOdW1iZXJUeXBlPWUucGhvbmVMb29rdXBOdW1iZXJUeXBlPz8wLHR9fSx0LlBob25lVmVyaWZ5U2VydmVyRGVidWc9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUucmVzdWx0VHlwZSYmdC51aW50MzIoOCkuaW50MzIoZS5yZXN1bHRUeXBlKSwhMD09PWUuc3VjY2VzcyYmdC51aW50MzIoMTYpLmJvb2woZS5zdWNjZXNzKSxcIlwiIT09ZS5lbmRwb2ludCYmdC51aW50MzIoMjYpLnN0cmluZyhlLmVuZHBvaW50KSwwIT09ZS5hY3Rpb24mJnQudWludDMyKDMyKS5pbnQzMihlLmFjdGlvbiksMCE9PWUuZmVhdHVyZSYmdC51aW50MzIoNDApLmludDMyKGUuZmVhdHVyZSksXCJcIiE9PWUuY2xpZW50SWQmJnQudWludDMyKDUwKS5zdHJpbmcoZS5jbGllbnRJZCksXCJcIiE9PWUuY291bnRyeUNvZGUmJnQudWludDMyKDU4KS5zdHJpbmcoZS5jb3VudHJ5Q29kZSksXCJcIiE9PWUubWFza2VkUGhvbmVOdW1iZXImJnQudWludDMyKDY2KS5zdHJpbmcoZS5tYXNrZWRQaG9uZU51bWJlciksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtyZXN1bHRUeXBlOjAsc3VjY2VzczohMSxlbmRwb2ludDpcIlwiLGFjdGlvbjowLGZlYXR1cmU6MCxjbGllbnRJZDpcIlwiLGNvdW50cnlDb2RlOlwiXCIsbWFza2VkUGhvbmVOdW1iZXI6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkucmVzdWx0VHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuc3VjY2Vzcz1uLmJvb2woKTticmVhaztjYXNlIDM6aS5lbmRwb2ludD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmFjdGlvbj1uLmludDMyKCk7YnJlYWs7Y2FzZSA1OmkuZmVhdHVyZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA2OmkuY2xpZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5jb3VudHJ5Q29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgODppLm1hc2tlZFBob25lTnVtYmVyPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtyZXN1bHRUeXBlOjAsc3VjY2VzczohMSxlbmRwb2ludDpcIlwiLGFjdGlvbjowLGZlYXR1cmU6MCxjbGllbnRJZDpcIlwiLGNvdW50cnlDb2RlOlwiXCIsbWFza2VkUGhvbmVOdW1iZXI6XCJcIn07cmV0dXJuIHQucmVzdWx0VHlwZT1lLnJlc3VsdFR5cGU/PzAsdC5zdWNjZXNzPWUuc3VjY2Vzcz8/ITEsdC5lbmRwb2ludD1lLmVuZHBvaW50Pz9cIlwiLHQuYWN0aW9uPWUuYWN0aW9uPz8wLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5jbGllbnRJZD1lLmNsaWVudElkPz9cIlwiLHQuY291bnRyeUNvZGU9ZS5jb3VudHJ5Q29kZT8/XCJcIix0Lm1hc2tlZFBob25lTnVtYmVyPWUubWFza2VkUGhvbmVOdW1iZXI/P1wiXCIsdH19LHQuUGhvbmVWZXJpZnlTZXJ2ZXJGYWlsdXJlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLmVycm9yVHlwZSYmdC51aW50MzIoOCkuaW50MzIoZS5lcnJvclR5cGUpLFwiXCIhPT1lLmVuZHBvaW50JiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZW5kcG9pbnQpLDAhPT1lLmFjdGlvbiYmdC51aW50MzIoMjQpLmludDMyKGUuYWN0aW9uKSwwIT09ZS5mZWF0dXJlJiZ0LnVpbnQzMigzMikuaW50MzIoZS5mZWF0dXJlKSxcIlwiIT09ZS5jbGllbnRJZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmNsaWVudElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2Vycm9yVHlwZTowLGVuZHBvaW50OlwiXCIsYWN0aW9uOjAsZmVhdHVyZTowLGNsaWVudElkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmVycm9yVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuZW5kcG9pbnQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5hY3Rpb249bi5pbnQzMigpO2JyZWFrO2Nhc2UgNDppLmZlYXR1cmU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNTppLmNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtlcnJvclR5cGU6MCxlbmRwb2ludDpcIlwiLGFjdGlvbjowLGZlYXR1cmU6MCxjbGllbnRJZDpcIlwifTtyZXR1cm4gdC5lcnJvclR5cGU9ZS5lcnJvclR5cGU/PzAsdC5lbmRwb2ludD1lLmVuZHBvaW50Pz9cIlwiLHQuYWN0aW9uPWUuYWN0aW9uPz8wLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5jbGllbnRJZD1lLmNsaWVudElkPz9cIlwiLHR9fSx0LlBob25lVmVyaWZ5U2VydmVyUmVzdWx0PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLnJlc3VsdFR5cGUmJnQudWludDMyKDgpLmludDMyKGUucmVzdWx0VHlwZSksITA9PT1lLnN1Y2Nlc3MmJnQudWludDMyKDE2KS5ib29sKGUuc3VjY2VzcyksXCJcIiE9PWUuZW5kcG9pbnQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5lbmRwb2ludCksMCE9PWUuYWN0aW9uJiZ0LnVpbnQzMigzMikuaW50MzIoZS5hY3Rpb24pLDAhPT1lLmZlYXR1cmUmJnQudWludDMyKDQwKS5pbnQzMihlLmZlYXR1cmUpLFwiXCIhPT1lLmNsaWVudElkJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuY2xpZW50SWQpLFwiXCIhPT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGUmJnQudWludDMyKDU4KS5zdHJpbmcoZS5waG9uZU51bWJlckNvdW50cnlDb2RlKSwhMD09PWUuaXNTZXJ2ZXJUYXJnZXRlZFJldHJ5JiZ0LnVpbnQzMig2NCkuYm9vbChlLmlzU2VydmVyVGFyZ2V0ZWRSZXRyeSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtyZXN1bHRUeXBlOjAsc3VjY2VzczohMSxlbmRwb2ludDpcIlwiLGFjdGlvbjowLGZlYXR1cmU6MCxjbGllbnRJZDpcIlwiLHBob25lTnVtYmVyQ291bnRyeUNvZGU6XCJcIixpc1NlcnZlclRhcmdldGVkUmV0cnk6ITF9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnJlc3VsdFR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLnN1Y2Nlc3M9bi5ib29sKCk7YnJlYWs7Y2FzZSAzOmkuZW5kcG9pbnQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5hY3Rpb249bi5pbnQzMigpO2JyZWFrO2Nhc2UgNTppLmZlYXR1cmU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNjppLmNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgODppLmlzU2VydmVyVGFyZ2V0ZWRSZXRyeT1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3Jlc3VsdFR5cGU6MCxzdWNjZXNzOiExLGVuZHBvaW50OlwiXCIsYWN0aW9uOjAsZmVhdHVyZTowLGNsaWVudElkOlwiXCIscGhvbmVOdW1iZXJDb3VudHJ5Q29kZTpcIlwiLGlzU2VydmVyVGFyZ2V0ZWRSZXRyeTohMX07cmV0dXJuIHQucmVzdWx0VHlwZT1lLnJlc3VsdFR5cGU/PzAsdC5zdWNjZXNzPWUuc3VjY2Vzcz8/ITEsdC5lbmRwb2ludD1lLmVuZHBvaW50Pz9cIlwiLHQuYWN0aW9uPWUuYWN0aW9uPz8wLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5jbGllbnRJZD1lLmNsaWVudElkPz9cIlwiLHQucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGU/P1wiXCIsdC5pc1NlcnZlclRhcmdldGVkUmV0cnk9ZS5pc1NlcnZlclRhcmdldGVkUmV0cnk/PyExLHR9fSx0LlBob25lVmVyaWZ5U2VydmVyU3VjY2Vzcz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5lbmRwb2ludCYmdC51aW50MzIoMTApLnN0cmluZyhlLmVuZHBvaW50KSwwIT09ZS5hY3Rpb24mJnQudWludDMyKDE2KS5pbnQzMihlLmFjdGlvbiksMCE9PWUuZmVhdHVyZSYmdC51aW50MzIoMjQpLmludDMyKGUuZmVhdHVyZSksXCJcIiE9PWUuY2xpZW50SWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5jbGllbnRJZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtlbmRwb2ludDpcIlwiLGFjdGlvbjowLGZlYXR1cmU6MCxjbGllbnRJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5lbmRwb2ludD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmFjdGlvbj1uLmludDMyKCk7YnJlYWs7Y2FzZSAzOmkuZmVhdHVyZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA0OmkuY2xpZW50SWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2VuZHBvaW50OlwiXCIsYWN0aW9uOjAsZmVhdHVyZTowLGNsaWVudElkOlwiXCJ9O3JldHVybiB0LmVuZHBvaW50PWUuZW5kcG9pbnQ/P1wiXCIsdC5hY3Rpb249ZS5hY3Rpb24/PzAsdC5mZWF0dXJlPWUuZmVhdHVyZT8/MCx0LmNsaWVudElkPWUuY2xpZW50SWQ/P1wiXCIsdH19LHQuUHJpdmF0ZUNvbXBvbmVudFNlcnZpY2VFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5jb2duYWNJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLmNvZ25hY0lkKSxcIlwiIT09ZS5zZXJ2aWNlTmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnNlcnZpY2VOYW1lKSxcIlwiIT09ZS5hcGlOYW1lJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuYXBpTmFtZSksXCIwXCIhPT1lLmJhdGNoQ291bnQmJnQudWludDMyKDMyKS51aW50NjQoZS5iYXRjaENvdW50KSxcIjBcIiE9PWUucGF5bG9hZFNpemUmJnQudWludDMyKDQwKS51aW50NjQoZS5wYXlsb2FkU2l6ZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjb2duYWNJZDpcIlwiLHNlcnZpY2VOYW1lOlwiXCIsYXBpTmFtZTpcIlwiLGJhdGNoQ291bnQ6XCIwXCIscGF5bG9hZFNpemU6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmNvZ25hY0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuc2VydmljZU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5hcGlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuYmF0Y2hDb3VudD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNTppLnBheWxvYWRTaXplPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtjb2duYWNJZDpcIlwiLHNlcnZpY2VOYW1lOlwiXCIsYXBpTmFtZTpcIlwiLGJhdGNoQ291bnQ6XCIwXCIscGF5bG9hZFNpemU6XCIwXCJ9O3JldHVybiB0LmNvZ25hY0lkPWUuY29nbmFjSWQ/P1wiXCIsdC5zZXJ2aWNlTmFtZT1lLnNlcnZpY2VOYW1lPz9cIlwiLHQuYXBpTmFtZT1lLmFwaU5hbWU/P1wiXCIsdC5iYXRjaENvdW50PWUuYmF0Y2hDb3VudD8/XCIwXCIsdC5wYXlsb2FkU2l6ZT1lLnBheWxvYWRTaXplPz9cIjBcIix0fX0sdC5QdXNoQ2FtcGFpZ25HbG9iYWxUYXJnZXRpbmdFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5wdXNoRXZlbnRJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnB1c2hFdmVudElkKSwwIT09ZS5zdGFydEV2ZW50VGltZXN0YW1wJiZ0LnVpbnQzMigxNykuZG91YmxlKGUuc3RhcnRFdmVudFRpbWVzdGFtcCksMCE9PWUubG9nV3JpdHRlblRpbWVzdGFtcCYmdC51aW50MzIoMjUpLmRvdWJsZShlLmxvZ1dyaXR0ZW5UaW1lc3RhbXApLDAhPT1lLm5vdGlmaWNhdGlvbkNoYW5uZWwmJnQudWludDMyKDMyKS5pbnQzMihlLm5vdGlmaWNhdGlvbkNoYW5uZWwpLFwiXCIhPT1lLnRhcmdldGluZ1N0YXR1cyYmdC51aW50MzIoNDIpLnN0cmluZyhlLnRhcmdldGluZ1N0YXR1cyksITA9PT1lLmlzRGF1JiZ0LnVpbnQzMig0OCkuYm9vbChlLmlzRGF1KSwhMD09PWUuaXNMNyYmdC51aW50MzIoNTYpLmJvb2woZS5pc0w3KSxcIlwiIT09ZS51c2VyUXVhbGlmaWNhdGlvbiYmdC51aW50MzIoNjYpLnN0cmluZyhlLnVzZXJRdWFsaWZpY2F0aW9uKSwhMD09PWUuaXNTYW1wbGluZyYmdC51aW50MzIoNzIpLmJvb2woZS5pc1NhbXBsaW5nKSxcIlwiIT09ZS5sb2dpblN0YXR1cyYmdC51aW50MzIoODIpLnN0cmluZyhlLmxvZ2luU3RhdHVzKSwhMD09PWUuaXNQdXNoQmFzZWQmJnQudWludDMyKDg4KS5ib29sKGUuaXNQdXNoQmFzZWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17cHVzaEV2ZW50SWQ6XCJcIixzdGFydEV2ZW50VGltZXN0YW1wOjAsbG9nV3JpdHRlblRpbWVzdGFtcDowLG5vdGlmaWNhdGlvbkNoYW5uZWw6MCx0YXJnZXRpbmdTdGF0dXM6XCJcIixpc0RhdTohMSxpc0w3OiExLHVzZXJRdWFsaWZpY2F0aW9uOlwiXCIsaXNTYW1wbGluZzohMSxsb2dpblN0YXR1czpcIlwiLGlzUHVzaEJhc2VkOiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5wdXNoRXZlbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnN0YXJ0RXZlbnRUaW1lc3RhbXA9bi5kb3VibGUoKTticmVhaztjYXNlIDM6aS5sb2dXcml0dGVuVGltZXN0YW1wPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA0Omkubm90aWZpY2F0aW9uQ2hhbm5lbD1uLmludDMyKCk7YnJlYWs7Y2FzZSA1OmkudGFyZ2V0aW5nU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkuaXNEYXU9bi5ib29sKCk7YnJlYWs7Y2FzZSA3OmkuaXNMNz1uLmJvb2woKTticmVhaztjYXNlIDg6aS51c2VyUXVhbGlmaWNhdGlvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgOTppLmlzU2FtcGxpbmc9bi5ib29sKCk7YnJlYWs7Y2FzZSAxMDppLmxvZ2luU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMTppLmlzUHVzaEJhc2VkPW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cHVzaEV2ZW50SWQ6XCJcIixzdGFydEV2ZW50VGltZXN0YW1wOjAsbG9nV3JpdHRlblRpbWVzdGFtcDowLG5vdGlmaWNhdGlvbkNoYW5uZWw6MCx0YXJnZXRpbmdTdGF0dXM6XCJcIixpc0RhdTohMSxpc0w3OiExLHVzZXJRdWFsaWZpY2F0aW9uOlwiXCIsaXNTYW1wbGluZzohMSxsb2dpblN0YXR1czpcIlwiLGlzUHVzaEJhc2VkOiExfTtyZXR1cm4gdC5wdXNoRXZlbnRJZD1lLnB1c2hFdmVudElkPz9cIlwiLHQuc3RhcnRFdmVudFRpbWVzdGFtcD1lLnN0YXJ0RXZlbnRUaW1lc3RhbXA/PzAsdC5sb2dXcml0dGVuVGltZXN0YW1wPWUubG9nV3JpdHRlblRpbWVzdGFtcD8/MCx0Lm5vdGlmaWNhdGlvbkNoYW5uZWw9ZS5ub3RpZmljYXRpb25DaGFubmVsPz8wLHQudGFyZ2V0aW5nU3RhdHVzPWUudGFyZ2V0aW5nU3RhdHVzPz9cIlwiLHQuaXNEYXU9ZS5pc0RhdT8/ITEsdC5pc0w3PWUuaXNMNz8/ITEsdC51c2VyUXVhbGlmaWNhdGlvbj1lLnVzZXJRdWFsaWZpY2F0aW9uPz9cIlwiLHQuaXNTYW1wbGluZz1lLmlzU2FtcGxpbmc/PyExLHQubG9naW5TdGF0dXM9ZS5sb2dpblN0YXR1cz8/XCJcIix0LmlzUHVzaEJhc2VkPWUuaXNQdXNoQmFzZWQ/PyExLHR9fSx0LlB1c2hDYW1wYWlnbkdyb3VwaW5nRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuY2FtcGFpZ25FdmVudFR5cGUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5jYW1wYWlnbkV2ZW50VHlwZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZXhwZXJpbWVudElkKSxcIlwiIT09ZS5jYW1wYWlnbkxpc3QmJnQudWludDMyKDI2KS5zdHJpbmcoZS5jYW1wYWlnbkxpc3QpLFwiXCIhPT1lLnN0dWR5TGlzdCYmdC51aW50MzIoMzQpLnN0cmluZyhlLnN0dWR5TGlzdCksXCJcIiE9PWUubGFzdEtub3duQ291bnRyeSYmdC51aW50MzIoNDIpLnN0cmluZyhlLmxhc3RLbm93bkNvdW50cnkpLFwiXCIhPT1lLmNhbXBhaWduUmFua2luZ01ldGFkYXRhJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuY2FtcGFpZ25SYW5raW5nTWV0YWRhdGEpLFwiXCIhPT1lLmNoYW5uZWxBdmFpbGFiaWxpdHlCbG9ja2Vyc1N0ciYmdC51aW50MzIoNTgpLnN0cmluZyhlLmNoYW5uZWxBdmFpbGFiaWxpdHlCbG9ja2Vyc1N0ciksXCJcIiE9PWUubG9naW5TdGF0dXMmJnQudWludDMyKDY2KS5zdHJpbmcoZS5sb2dpblN0YXR1cyksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjYW1wYWlnbkV2ZW50VHlwZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLGNhbXBhaWduTGlzdDpcIlwiLHN0dWR5TGlzdDpcIlwiLGxhc3RLbm93bkNvdW50cnk6XCJcIixjYW1wYWlnblJhbmtpbmdNZXRhZGF0YTpcIlwiLGNoYW5uZWxBdmFpbGFiaWxpdHlCbG9ja2Vyc1N0cjpcIlwiLGxvZ2luU3RhdHVzOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmNhbXBhaWduRXZlbnRUeXBlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZXhwZXJpbWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuY2FtcGFpZ25MaXN0PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0Omkuc3R1ZHlMaXN0PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkubGFzdEtub3duQ291bnRyeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLmNhbXBhaWduUmFua2luZ01ldGFkYXRhPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkuY2hhbm5lbEF2YWlsYWJpbGl0eUJsb2NrZXJzU3RyPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA4OmkubG9naW5TdGF0dXM9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2NhbXBhaWduRXZlbnRUeXBlOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsY2FtcGFpZ25MaXN0OlwiXCIsc3R1ZHlMaXN0OlwiXCIsbGFzdEtub3duQ291bnRyeTpcIlwiLGNhbXBhaWduUmFua2luZ01ldGFkYXRhOlwiXCIsY2hhbm5lbEF2YWlsYWJpbGl0eUJsb2NrZXJzU3RyOlwiXCIsbG9naW5TdGF0dXM6XCJcIn07cmV0dXJuIHQuY2FtcGFpZ25FdmVudFR5cGU9ZS5jYW1wYWlnbkV2ZW50VHlwZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LmNhbXBhaWduTGlzdD1lLmNhbXBhaWduTGlzdD8/XCJcIix0LnN0dWR5TGlzdD1lLnN0dWR5TGlzdD8/XCJcIix0Lmxhc3RLbm93bkNvdW50cnk9ZS5sYXN0S25vd25Db3VudHJ5Pz9cIlwiLHQuY2FtcGFpZ25SYW5raW5nTWV0YWRhdGE9ZS5jYW1wYWlnblJhbmtpbmdNZXRhZGF0YT8/XCJcIix0LmNoYW5uZWxBdmFpbGFiaWxpdHlCbG9ja2Vyc1N0cj1lLmNoYW5uZWxBdmFpbGFiaWxpdHlCbG9ja2Vyc1N0cj8/XCJcIix0LmxvZ2luU3RhdHVzPWUubG9naW5TdGF0dXM/P1wiXCIsdH19LHQuUHVzaENhbXBhaWduTm90aWZpY2F0aW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuY2FtcGFpZ25FdmVudFR5cGUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5jYW1wYWlnbkV2ZW50VHlwZSksXCJcIiE9PWUudGFyZ2V0U3RhdHVzJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUudGFyZ2V0U3RhdHVzKSxcIlwiIT09ZS5ub3RpZmljYXRpb25JZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLm5vdGlmaWNhdGlvbklkKSwwIT09ZS5ub3RpZmljYXRpb25SZXN1bHQmJnQudWludDMyKDMyKS5pbnQzMihlLm5vdGlmaWNhdGlvblJlc3VsdCksXCJcIiE9PWUucHVzaFR5cGUmJnQudWludDMyKDQyKS5zdHJpbmcoZS5wdXNoVHlwZSksXCJcIiE9PWUuc2FtcGxpbmdUYWcmJnQudWludDMyKDUwKS5zdHJpbmcoZS5zYW1wbGluZ1RhZyksITA9PT1lLndpdGhVbml2ZXJzYWxIb2xkb3V0JiZ0LnVpbnQzMig1NikuYm9vbChlLndpdGhVbml2ZXJzYWxIb2xkb3V0KSwwIT09ZS5yYW5raW5nTW9kZSYmdC51aW50MzIoNjQpLmludDMyKGUucmFua2luZ01vZGUpLFwiXCIhPT1lLnN0dWR5TmFtZSYmdC51aW50MzIoNzQpLnN0cmluZyhlLnN0dWR5TmFtZSksXCJcIiE9PWUuZXhwZXJpbWVudElkJiZ0LnVpbnQzMig4Mikuc3RyaW5nKGUuZXhwZXJpbWVudElkKSxcIlwiIT09ZS5jYW1wYWlnbk5hbWUmJnQudWludDMyKDkwKS5zdHJpbmcoZS5jYW1wYWlnbk5hbWUpLDAhPT1lLmxhc3RBcHBPcGVuVHMmJnQudWludDMyKDk3KS5kb3VibGUoZS5sYXN0QXBwT3BlblRzKSwwIT09ZS5sYXN0U3RvcnlWaWV3VHMmJnQudWludDMyKDEwNSkuZG91YmxlKGUubGFzdFN0b3J5Vmlld1RzKSxcIlwiIT09ZS5ub3RpZmljYXRpb25NZXRhZGF0YSYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5ub3RpZmljYXRpb25NZXRhZGF0YSksXCJcIiE9PWUudW5pbnN0YWxsZWRBcHBQbGF0Zm9ybSYmdC51aW50MzIoMTIyKS5zdHJpbmcoZS51bmluc3RhbGxlZEFwcFBsYXRmb3JtKSxcIlwiIT09ZS5sYXN0S25vd25Db3VudHJ5JiZ0LnVpbnQzMigxMzApLnN0cmluZyhlLmxhc3RLbm93bkNvdW50cnkpLDAhPT1lLnN0b3J5UHVzaFR5cGUmJnQudWludDMyKDEzNikuaW50MzIoZS5zdG9yeVB1c2hUeXBlKSxcIlwiIT09ZS5zbmFwVGVhbXNuYXBJZCYmdC51aW50MzIoMTQ2KS5zdHJpbmcoZS5zbmFwVGVhbXNuYXBJZCksXCJcIiE9PWUuY2hhdFRlYW1zbmFwSWQmJnQudWludDMyKDE1NCkuc3RyaW5nKGUuY2hhdFRlYW1zbmFwSWQpLFwiXCIhPT1lLmZpbHRlckxlbnNJZCYmdC51aW50MzIoMTYyKS5zdHJpbmcoZS5maWx0ZXJMZW5zSWQpLFwiXCIhPT1lLmZyaWVuZEdob3N0SWRzJiZ0LnVpbnQzMigxNzApLnN0cmluZyhlLmZyaWVuZEdob3N0SWRzKSwwIT09ZS5ncm93dGhOb3RpZmljYXRpb25DaGFubmVsVHlwZSYmdC51aW50MzIoMTc2KS5pbnQzMihlLmdyb3d0aE5vdGlmaWNhdGlvbkNoYW5uZWxUeXBlKSxcIlwiIT09ZS50cmFuc2llbnRFdmVudElkJiZ0LnVpbnQzMigxODYpLnN0cmluZyhlLnRyYW5zaWVudEV2ZW50SWQpLFwiXCIhPT1lLmNvbnRlbnRJZGVudGlmaWVyJiZ0LnVpbnQzMigxOTQpLnN0cmluZyhlLmNvbnRlbnRJZGVudGlmaWVyKSxcIlwiIT09ZS5sb2dpblN0YXR1cyYmdC51aW50MzIoMjAyKS5zdHJpbmcoZS5sb2dpblN0YXR1cyksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjYW1wYWlnbkV2ZW50VHlwZTpcIlwiLHRhcmdldFN0YXR1czpcIlwiLG5vdGlmaWNhdGlvbklkOlwiXCIsbm90aWZpY2F0aW9uUmVzdWx0OjAscHVzaFR5cGU6XCJcIixzYW1wbGluZ1RhZzpcIlwiLHdpdGhVbml2ZXJzYWxIb2xkb3V0OiExLHJhbmtpbmdNb2RlOjAsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOlwiXCIsY2FtcGFpZ25OYW1lOlwiXCIsbGFzdEFwcE9wZW5UczowLGxhc3RTdG9yeVZpZXdUczowLG5vdGlmaWNhdGlvbk1ldGFkYXRhOlwiXCIsdW5pbnN0YWxsZWRBcHBQbGF0Zm9ybTpcIlwiLGxhc3RLbm93bkNvdW50cnk6XCJcIixzdG9yeVB1c2hUeXBlOjAsc25hcFRlYW1zbmFwSWQ6XCJcIixjaGF0VGVhbXNuYXBJZDpcIlwiLGZpbHRlckxlbnNJZDpcIlwiLGZyaWVuZEdob3N0SWRzOlwiXCIsZ3Jvd3RoTm90aWZpY2F0aW9uQ2hhbm5lbFR5cGU6MCx0cmFuc2llbnRFdmVudElkOlwiXCIsY29udGVudElkZW50aWZpZXI6XCJcIixsb2dpblN0YXR1czpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5jYW1wYWlnbkV2ZW50VHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnRhcmdldFN0YXR1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLm5vdGlmaWNhdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0Omkubm90aWZpY2F0aW9uUmVzdWx0PW4uaW50MzIoKTticmVhaztjYXNlIDU6aS5wdXNoVHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLnNhbXBsaW5nVGFnPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3Omkud2l0aFVuaXZlcnNhbEhvbGRvdXQ9bi5ib29sKCk7YnJlYWs7Y2FzZSA4OmkucmFua2luZ01vZGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgOTppLnN0dWR5TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTA6aS5leHBlcmltZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDExOmkuY2FtcGFpZ25OYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMjppLmxhc3RBcHBPcGVuVHM9bi5kb3VibGUoKTticmVhaztjYXNlIDEzOmkubGFzdFN0b3J5Vmlld1RzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAxNDppLm5vdGlmaWNhdGlvbk1ldGFkYXRhPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTppLnVuaW5zdGFsbGVkQXBwUGxhdGZvcm09bi5zdHJpbmcoKTticmVhaztjYXNlIDE2OmkubGFzdEtub3duQ291bnRyeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTc6aS5zdG9yeVB1c2hUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDE4Omkuc25hcFRlYW1zbmFwSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDE5OmkuY2hhdFRlYW1zbmFwSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDIwOmkuZmlsdGVyTGVuc0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMTppLmZyaWVuZEdob3N0SWRzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMjppLmdyb3d0aE5vdGlmaWNhdGlvbkNoYW5uZWxUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDIzOmkudHJhbnNpZW50RXZlbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjQ6aS5jb250ZW50SWRlbnRpZmllcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjU6aS5sb2dpblN0YXR1cz1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Y2FtcGFpZ25FdmVudFR5cGU6XCJcIix0YXJnZXRTdGF0dXM6XCJcIixub3RpZmljYXRpb25JZDpcIlwiLG5vdGlmaWNhdGlvblJlc3VsdDowLHB1c2hUeXBlOlwiXCIsc2FtcGxpbmdUYWc6XCJcIix3aXRoVW5pdmVyc2FsSG9sZG91dDohMSxyYW5raW5nTW9kZTowLHN0dWR5TmFtZTpcIlwiLGV4cGVyaW1lbnRJZDpcIlwiLGNhbXBhaWduTmFtZTpcIlwiLGxhc3RBcHBPcGVuVHM6MCxsYXN0U3RvcnlWaWV3VHM6MCxub3RpZmljYXRpb25NZXRhZGF0YTpcIlwiLHVuaW5zdGFsbGVkQXBwUGxhdGZvcm06XCJcIixsYXN0S25vd25Db3VudHJ5OlwiXCIsc3RvcnlQdXNoVHlwZTowLHNuYXBUZWFtc25hcElkOlwiXCIsY2hhdFRlYW1zbmFwSWQ6XCJcIixmaWx0ZXJMZW5zSWQ6XCJcIixmcmllbmRHaG9zdElkczpcIlwiLGdyb3d0aE5vdGlmaWNhdGlvbkNoYW5uZWxUeXBlOjAsdHJhbnNpZW50RXZlbnRJZDpcIlwiLGNvbnRlbnRJZGVudGlmaWVyOlwiXCIsbG9naW5TdGF0dXM6XCJcIn07cmV0dXJuIHQuY2FtcGFpZ25FdmVudFR5cGU9ZS5jYW1wYWlnbkV2ZW50VHlwZT8/XCJcIix0LnRhcmdldFN0YXR1cz1lLnRhcmdldFN0YXR1cz8/XCJcIix0Lm5vdGlmaWNhdGlvbklkPWUubm90aWZpY2F0aW9uSWQ/P1wiXCIsdC5ub3RpZmljYXRpb25SZXN1bHQ9ZS5ub3RpZmljYXRpb25SZXN1bHQ/PzAsdC5wdXNoVHlwZT1lLnB1c2hUeXBlPz9cIlwiLHQuc2FtcGxpbmdUYWc9ZS5zYW1wbGluZ1RhZz8/XCJcIix0LndpdGhVbml2ZXJzYWxIb2xkb3V0PWUud2l0aFVuaXZlcnNhbEhvbGRvdXQ/PyExLHQucmFua2luZ01vZGU9ZS5yYW5raW5nTW9kZT8/MCx0LnN0dWR5TmFtZT1lLnN0dWR5TmFtZT8/XCJcIix0LmV4cGVyaW1lbnRJZD1lLmV4cGVyaW1lbnRJZD8/XCJcIix0LmNhbXBhaWduTmFtZT1lLmNhbXBhaWduTmFtZT8/XCJcIix0Lmxhc3RBcHBPcGVuVHM9ZS5sYXN0QXBwT3BlblRzPz8wLHQubGFzdFN0b3J5Vmlld1RzPWUubGFzdFN0b3J5Vmlld1RzPz8wLHQubm90aWZpY2F0aW9uTWV0YWRhdGE9ZS5ub3RpZmljYXRpb25NZXRhZGF0YT8/XCJcIix0LnVuaW5zdGFsbGVkQXBwUGxhdGZvcm09ZS51bmluc3RhbGxlZEFwcFBsYXRmb3JtPz9cIlwiLHQubGFzdEtub3duQ291bnRyeT1lLmxhc3RLbm93bkNvdW50cnk/P1wiXCIsdC5zdG9yeVB1c2hUeXBlPWUuc3RvcnlQdXNoVHlwZT8/MCx0LnNuYXBUZWFtc25hcElkPWUuc25hcFRlYW1zbmFwSWQ/P1wiXCIsdC5jaGF0VGVhbXNuYXBJZD1lLmNoYXRUZWFtc25hcElkPz9cIlwiLHQuZmlsdGVyTGVuc0lkPWUuZmlsdGVyTGVuc0lkPz9cIlwiLHQuZnJpZW5kR2hvc3RJZHM9ZS5mcmllbmRHaG9zdElkcz8/XCJcIix0Lmdyb3d0aE5vdGlmaWNhdGlvbkNoYW5uZWxUeXBlPWUuZ3Jvd3RoTm90aWZpY2F0aW9uQ2hhbm5lbFR5cGU/PzAsdC50cmFuc2llbnRFdmVudElkPWUudHJhbnNpZW50RXZlbnRJZD8/XCJcIix0LmNvbnRlbnRJZGVudGlmaWVyPWUuY29udGVudElkZW50aWZpZXI/P1wiXCIsdC5sb2dpblN0YXR1cz1lLmxvZ2luU3RhdHVzPz9cIlwiLHR9fSx0LlB1c2hDYW1wYWlnblBvc3RQdXNoRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUucHVzaEV2ZW50SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5wdXNoRXZlbnRJZCksMCE9PWUubm90aWZpY2F0aW9uQ2hhbm5lbCYmdC51aW50MzIoMTYpLmludDMyKGUubm90aWZpY2F0aW9uQ2hhbm5lbCksMCE9PWUuc3RhcnRFdmVudFRpbWVzdGFtcCYmdC51aW50MzIoMjUpLmRvdWJsZShlLnN0YXJ0RXZlbnRUaW1lc3RhbXApLDAhPT1lLmxvZ1dyaXR0ZW5UaW1lc3RhbXAmJnQudWludDMyKDMzKS5kb3VibGUoZS5sb2dXcml0dGVuVGltZXN0YW1wKSxcIlwiIT09ZS50YXJnZXRpbmdTdGF0dXMmJnQudWludDMyKDUwKS5zdHJpbmcoZS50YXJnZXRpbmdTdGF0dXMpLFwiXCIhPT1lLnRhcmdldGluZ1JlYXNvbiYmdC51aW50MzIoNTgpLnN0cmluZyhlLnRhcmdldGluZ1JlYXNvbiksXCIwXCIhPT1lLmNhbmRpZGF0ZXNOdW1iZXImJnQudWludDMyKDY0KS51aW50NjQoZS5jYW5kaWRhdGVzTnVtYmVyKSxcIlwiIT09ZS5jaG9zZW5DYW1wYWlnbiYmdC51aW50MzIoNzQpLnN0cmluZyhlLmNob3NlbkNhbXBhaWduKSwwIT09ZS5jaG9zZW5DYW5kaWRhdGVTY29yZSYmdC51aW50MzIoODEpLmRvdWJsZShlLmNob3NlbkNhbmRpZGF0ZVNjb3JlKSxcIjBcIiE9PWUuY2hvc2VuQ2FuZGlkYXRlSW5kZXgmJnQudWludDMyKDg4KS51aW50NjQoZS5jaG9zZW5DYW5kaWRhdGVJbmRleCksXCJcIiE9PWUucHVzaFN0YXR1cyYmdC51aW50MzIoOTgpLnN0cmluZyhlLnB1c2hTdGF0dXMpLFwiXCIhPT1lLm5vdGlmaWNhdGlvbklkJiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLm5vdGlmaWNhdGlvbklkKSwwIT09ZS5wdXNoQ2FtcGFpZ25FdmVudE5hbWUmJnQudWludDMyKDExMikuaW50MzIoZS5wdXNoQ2FtcGFpZ25FdmVudE5hbWUpLCEwPT09ZS5pc1NhbXBsaW5nJiZ0LnVpbnQzMigxMjApLmJvb2woZS5pc1NhbXBsaW5nKSxcIlwiIT09ZS5sb2dpblN0YXR1cyYmdC51aW50MzIoMTMwKS5zdHJpbmcoZS5sb2dpblN0YXR1cyksITA9PT1lLmlzUHVzaEJhc2VkJiZ0LnVpbnQzMigxMzYpLmJvb2woZS5pc1B1c2hCYXNlZCksXCJcIiE9PWUuY2hvc2VuQ29weUZyb21Db3B5U2VsZWN0b3ImJnQudWludDMyKDE0Nikuc3RyaW5nKGUuY2hvc2VuQ29weUZyb21Db3B5U2VsZWN0b3IpLDAhPT1lLmludmVudG9yeVRpbWVzdGFtcCYmdC51aW50MzIoMTUzKS5kb3VibGUoZS5pbnZlbnRvcnlUaW1lc3RhbXApLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17cHVzaEV2ZW50SWQ6XCJcIixub3RpZmljYXRpb25DaGFubmVsOjAsc3RhcnRFdmVudFRpbWVzdGFtcDowLGxvZ1dyaXR0ZW5UaW1lc3RhbXA6MCx0YXJnZXRpbmdTdGF0dXM6XCJcIix0YXJnZXRpbmdSZWFzb246XCJcIixjYW5kaWRhdGVzTnVtYmVyOlwiMFwiLGNob3NlbkNhbXBhaWduOlwiXCIsY2hvc2VuQ2FuZGlkYXRlU2NvcmU6MCxjaG9zZW5DYW5kaWRhdGVJbmRleDpcIjBcIixwdXNoU3RhdHVzOlwiXCIsbm90aWZpY2F0aW9uSWQ6XCJcIixwdXNoQ2FtcGFpZ25FdmVudE5hbWU6MCxpc1NhbXBsaW5nOiExLGxvZ2luU3RhdHVzOlwiXCIsaXNQdXNoQmFzZWQ6ITEsY2hvc2VuQ29weUZyb21Db3B5U2VsZWN0b3I6XCJcIixpbnZlbnRvcnlUaW1lc3RhbXA6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkucHVzaEV2ZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5ub3RpZmljYXRpb25DaGFubmVsPW4uaW50MzIoKTticmVhaztjYXNlIDM6aS5zdGFydEV2ZW50VGltZXN0YW1wPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA0OmkubG9nV3JpdHRlblRpbWVzdGFtcD1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNjppLnRhcmdldGluZ1N0YXR1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLnRhcmdldGluZ1JlYXNvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgODppLmNhbmRpZGF0ZXNOdW1iZXI9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6aS5jaG9zZW5DYW1wYWlnbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTA6aS5jaG9zZW5DYW5kaWRhdGVTY29yZT1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTE6aS5jaG9zZW5DYW5kaWRhdGVJbmRleD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTI6aS5wdXNoU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMzppLm5vdGlmaWNhdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLnB1c2hDYW1wYWlnbkV2ZW50TmFtZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAxNTppLmlzU2FtcGxpbmc9bi5ib29sKCk7YnJlYWs7Y2FzZSAxNjppLmxvZ2luU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNzppLmlzUHVzaEJhc2VkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTg6aS5jaG9zZW5Db3B5RnJvbUNvcHlTZWxlY3Rvcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTk6aS5pbnZlbnRvcnlUaW1lc3RhbXA9bi5kb3VibGUoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3B1c2hFdmVudElkOlwiXCIsbm90aWZpY2F0aW9uQ2hhbm5lbDowLHN0YXJ0RXZlbnRUaW1lc3RhbXA6MCxsb2dXcml0dGVuVGltZXN0YW1wOjAsdGFyZ2V0aW5nU3RhdHVzOlwiXCIsdGFyZ2V0aW5nUmVhc29uOlwiXCIsY2FuZGlkYXRlc051bWJlcjpcIjBcIixjaG9zZW5DYW1wYWlnbjpcIlwiLGNob3NlbkNhbmRpZGF0ZVNjb3JlOjAsY2hvc2VuQ2FuZGlkYXRlSW5kZXg6XCIwXCIscHVzaFN0YXR1czpcIlwiLG5vdGlmaWNhdGlvbklkOlwiXCIscHVzaENhbXBhaWduRXZlbnROYW1lOjAsaXNTYW1wbGluZzohMSxsb2dpblN0YXR1czpcIlwiLGlzUHVzaEJhc2VkOiExLGNob3NlbkNvcHlGcm9tQ29weVNlbGVjdG9yOlwiXCIsaW52ZW50b3J5VGltZXN0YW1wOjB9O3JldHVybiB0LnB1c2hFdmVudElkPWUucHVzaEV2ZW50SWQ/P1wiXCIsdC5ub3RpZmljYXRpb25DaGFubmVsPWUubm90aWZpY2F0aW9uQ2hhbm5lbD8/MCx0LnN0YXJ0RXZlbnRUaW1lc3RhbXA9ZS5zdGFydEV2ZW50VGltZXN0YW1wPz8wLHQubG9nV3JpdHRlblRpbWVzdGFtcD1lLmxvZ1dyaXR0ZW5UaW1lc3RhbXA/PzAsdC50YXJnZXRpbmdTdGF0dXM9ZS50YXJnZXRpbmdTdGF0dXM/P1wiXCIsdC50YXJnZXRpbmdSZWFzb249ZS50YXJnZXRpbmdSZWFzb24/P1wiXCIsdC5jYW5kaWRhdGVzTnVtYmVyPWUuY2FuZGlkYXRlc051bWJlcj8/XCIwXCIsdC5jaG9zZW5DYW1wYWlnbj1lLmNob3NlbkNhbXBhaWduPz9cIlwiLHQuY2hvc2VuQ2FuZGlkYXRlU2NvcmU9ZS5jaG9zZW5DYW5kaWRhdGVTY29yZT8/MCx0LmNob3NlbkNhbmRpZGF0ZUluZGV4PWUuY2hvc2VuQ2FuZGlkYXRlSW5kZXg/P1wiMFwiLHQucHVzaFN0YXR1cz1lLnB1c2hTdGF0dXM/P1wiXCIsdC5ub3RpZmljYXRpb25JZD1lLm5vdGlmaWNhdGlvbklkPz9cIlwiLHQucHVzaENhbXBhaWduRXZlbnROYW1lPWUucHVzaENhbXBhaWduRXZlbnROYW1lPz8wLHQuaXNTYW1wbGluZz1lLmlzU2FtcGxpbmc/PyExLHQubG9naW5TdGF0dXM9ZS5sb2dpblN0YXR1cz8/XCJcIix0LmlzUHVzaEJhc2VkPWUuaXNQdXNoQmFzZWQ/PyExLHQuY2hvc2VuQ29weUZyb21Db3B5U2VsZWN0b3I9ZS5jaG9zZW5Db3B5RnJvbUNvcHlTZWxlY3Rvcj8/XCJcIix0LmludmVudG9yeVRpbWVzdGFtcD1lLmludmVudG9yeVRpbWVzdGFtcD8/MCx0fX0sdC5QdXNoQ2FtcGFpZ25TaW5nbGVDYW1wYWlnblRhcmdldGluZ0V2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnB1c2hFdmVudElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUucHVzaEV2ZW50SWQpLDAhPT1lLnN0YXJ0RXZlbnRUaW1lc3RhbXAmJnQudWludDMyKDE3KS5kb3VibGUoZS5zdGFydEV2ZW50VGltZXN0YW1wKSwwIT09ZS5sb2dXcml0dGVuVGltZXN0YW1wJiZ0LnVpbnQzMigyNSkuZG91YmxlKGUubG9nV3JpdHRlblRpbWVzdGFtcCksMCE9PWUubm90aWZpY2F0aW9uQ2hhbm5lbCYmdC51aW50MzIoMzIpLmludDMyKGUubm90aWZpY2F0aW9uQ2hhbm5lbCksXCJcIiE9PWUuY2FtcGFpZ25Db250ZW50SWQmJnQudWludDMyKDUwKS5zdHJpbmcoZS5jYW1wYWlnbkNvbnRlbnRJZCksMCE9PWUuY2FtcGFpZ25Db250ZW50U2NvcmUmJnQudWludDMyKDU3KS5kb3VibGUoZS5jYW1wYWlnbkNvbnRlbnRTY29yZSksMCE9PWUubm90aWZpY2F0aW9uU2NvcmUmJnQudWludDMyKDY1KS5kb3VibGUoZS5ub3RpZmljYXRpb25TY29yZSksXCIwXCIhPT1lLmNhbXBhaWduTm90aWZSYW5rJiZ0LnVpbnQzMig3MikudWludDY0KGUuY2FtcGFpZ25Ob3RpZlJhbmspLFwiXCIhPT1lLmNhbXBhaWduVHlwZSYmdC51aW50MzIoODIpLnN0cmluZyhlLmNhbXBhaWduVHlwZSksMCE9PWUucHVzaENhbXBhaWduRXZlbnROYW1lJiZ0LnVpbnQzMig4OCkuaW50MzIoZS5wdXNoQ2FtcGFpZ25FdmVudE5hbWUpLCEwPT09ZS5pc1NhbXBsaW5nJiZ0LnVpbnQzMig5NikuYm9vbChlLmlzU2FtcGxpbmcpLFwiXCIhPT1lLnNpbmdsZUNhbXBhaWduU3RhdHVzJiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLnNpbmdsZUNhbXBhaWduU3RhdHVzKSxcIlwiIT09ZS5sb2dpblN0YXR1cyYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5sb2dpblN0YXR1cyksITA9PT1lLmlzUHVzaEJhc2VkJiZ0LnVpbnQzMigxMjApLmJvb2woZS5pc1B1c2hCYXNlZCksITA9PT1lLmhhc1ZhbGlkQ2FtcGFnbkludmVudG9yeSYmdC51aW50MzIoMTI4KS5ib29sKGUuaGFzVmFsaWRDYW1wYWduSW52ZW50b3J5KSwhMD09PWUuaXNGZXRjaEJlZm9yZVJhbmsmJnQudWludDMyKDEzNikuYm9vbChlLmlzRmV0Y2hCZWZvcmVSYW5rKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3B1c2hFdmVudElkOlwiXCIsc3RhcnRFdmVudFRpbWVzdGFtcDowLGxvZ1dyaXR0ZW5UaW1lc3RhbXA6MCxub3RpZmljYXRpb25DaGFubmVsOjAsY2FtcGFpZ25Db250ZW50SWQ6XCJcIixjYW1wYWlnbkNvbnRlbnRTY29yZTowLG5vdGlmaWNhdGlvblNjb3JlOjAsY2FtcGFpZ25Ob3RpZlJhbms6XCIwXCIsY2FtcGFpZ25UeXBlOlwiXCIscHVzaENhbXBhaWduRXZlbnROYW1lOjAsaXNTYW1wbGluZzohMSxzaW5nbGVDYW1wYWlnblN0YXR1czpcIlwiLGxvZ2luU3RhdHVzOlwiXCIsaXNQdXNoQmFzZWQ6ITEsaGFzVmFsaWRDYW1wYWduSW52ZW50b3J5OiExLGlzRmV0Y2hCZWZvcmVSYW5rOiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5wdXNoRXZlbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnN0YXJ0RXZlbnRUaW1lc3RhbXA9bi5kb3VibGUoKTticmVhaztjYXNlIDM6aS5sb2dXcml0dGVuVGltZXN0YW1wPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA0Omkubm90aWZpY2F0aW9uQ2hhbm5lbD1uLmludDMyKCk7YnJlYWs7Y2FzZSA2OmkuY2FtcGFpZ25Db250ZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5jYW1wYWlnbkNvbnRlbnRTY29yZT1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgODppLm5vdGlmaWNhdGlvblNjb3JlPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA5OmkuY2FtcGFpZ25Ob3RpZlJhbms9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDEwOmkuY2FtcGFpZ25UeXBlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMTppLnB1c2hDYW1wYWlnbkV2ZW50TmFtZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAxMjppLmlzU2FtcGxpbmc9bi5ib29sKCk7YnJlYWs7Y2FzZSAxMzppLnNpbmdsZUNhbXBhaWduU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLmxvZ2luU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTppLmlzUHVzaEJhc2VkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTY6aS5oYXNWYWxpZENhbXBhZ25JbnZlbnRvcnk9bi5ib29sKCk7YnJlYWs7Y2FzZSAxNzppLmlzRmV0Y2hCZWZvcmVSYW5rPW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cHVzaEV2ZW50SWQ6XCJcIixzdGFydEV2ZW50VGltZXN0YW1wOjAsbG9nV3JpdHRlblRpbWVzdGFtcDowLG5vdGlmaWNhdGlvbkNoYW5uZWw6MCxjYW1wYWlnbkNvbnRlbnRJZDpcIlwiLGNhbXBhaWduQ29udGVudFNjb3JlOjAsbm90aWZpY2F0aW9uU2NvcmU6MCxjYW1wYWlnbk5vdGlmUmFuazpcIjBcIixjYW1wYWlnblR5cGU6XCJcIixwdXNoQ2FtcGFpZ25FdmVudE5hbWU6MCxpc1NhbXBsaW5nOiExLHNpbmdsZUNhbXBhaWduU3RhdHVzOlwiXCIsbG9naW5TdGF0dXM6XCJcIixpc1B1c2hCYXNlZDohMSxoYXNWYWxpZENhbXBhZ25JbnZlbnRvcnk6ITEsaXNGZXRjaEJlZm9yZVJhbms6ITF9O3JldHVybiB0LnB1c2hFdmVudElkPWUucHVzaEV2ZW50SWQ/P1wiXCIsdC5zdGFydEV2ZW50VGltZXN0YW1wPWUuc3RhcnRFdmVudFRpbWVzdGFtcD8/MCx0LmxvZ1dyaXR0ZW5UaW1lc3RhbXA9ZS5sb2dXcml0dGVuVGltZXN0YW1wPz8wLHQubm90aWZpY2F0aW9uQ2hhbm5lbD1lLm5vdGlmaWNhdGlvbkNoYW5uZWw/PzAsdC5jYW1wYWlnbkNvbnRlbnRJZD1lLmNhbXBhaWduQ29udGVudElkPz9cIlwiLHQuY2FtcGFpZ25Db250ZW50U2NvcmU9ZS5jYW1wYWlnbkNvbnRlbnRTY29yZT8/MCx0Lm5vdGlmaWNhdGlvblNjb3JlPWUubm90aWZpY2F0aW9uU2NvcmU/PzAsdC5jYW1wYWlnbk5vdGlmUmFuaz1lLmNhbXBhaWduTm90aWZSYW5rPz9cIjBcIix0LmNhbXBhaWduVHlwZT1lLmNhbXBhaWduVHlwZT8/XCJcIix0LnB1c2hDYW1wYWlnbkV2ZW50TmFtZT1lLnB1c2hDYW1wYWlnbkV2ZW50TmFtZT8/MCx0LmlzU2FtcGxpbmc9ZS5pc1NhbXBsaW5nPz8hMSx0LnNpbmdsZUNhbXBhaWduU3RhdHVzPWUuc2luZ2xlQ2FtcGFpZ25TdGF0dXM/P1wiXCIsdC5sb2dpblN0YXR1cz1lLmxvZ2luU3RhdHVzPz9cIlwiLHQuaXNQdXNoQmFzZWQ9ZS5pc1B1c2hCYXNlZD8/ITEsdC5oYXNWYWxpZENhbXBhZ25JbnZlbnRvcnk9ZS5oYXNWYWxpZENhbXBhZ25JbnZlbnRvcnk/PyExLHQuaXNGZXRjaEJlZm9yZVJhbms9ZS5pc0ZldGNoQmVmb3JlUmFuaz8/ITEsdH19LHQuUHVzaENhbXBhaWduVGFza0V2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnRyYW5zaWVudEV2ZW50SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS50cmFuc2llbnRFdmVudElkKSwwIT09ZS50YXNrU291cmNlJiZ0LnVpbnQzMigxNikuaW50MzIoZS50YXNrU291cmNlKSxcIlwiIT09ZS5sb2dpblN0YXR1cyYmdC51aW50MzIoMjYpLnN0cmluZyhlLmxvZ2luU3RhdHVzKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3RyYW5zaWVudEV2ZW50SWQ6XCJcIix0YXNrU291cmNlOjAsbG9naW5TdGF0dXM6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkudHJhbnNpZW50RXZlbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnRhc2tTb3VyY2U9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMzppLmxvZ2luU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt0cmFuc2llbnRFdmVudElkOlwiXCIsdGFza1NvdXJjZTowLGxvZ2luU3RhdHVzOlwiXCJ9O3JldHVybiB0LnRyYW5zaWVudEV2ZW50SWQ9ZS50cmFuc2llbnRFdmVudElkPz9cIlwiLHQudGFza1NvdXJjZT1lLnRhc2tTb3VyY2U/PzAsdC5sb2dpblN0YXR1cz1lLmxvZ2luU3RhdHVzPz9cIlwiLHR9fSx0LlB1c2hDYW1wYWlnblRyYW5zaWVudEV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnRyYW5zaWVudEV2ZW50SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS50cmFuc2llbnRFdmVudElkKSwwIT09ZS50YXNrU291cmNlJiZ0LnVpbnQzMigxNikuaW50MzIoZS50YXNrU291cmNlKSxcIlwiIT09ZS5wdXNoRXZlbnRJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLnB1c2hFdmVudElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3RyYW5zaWVudEV2ZW50SWQ6XCJcIix0YXNrU291cmNlOjAscHVzaEV2ZW50SWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkudHJhbnNpZW50RXZlbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnRhc2tTb3VyY2U9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMzppLnB1c2hFdmVudElkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt0cmFuc2llbnRFdmVudElkOlwiXCIsdGFza1NvdXJjZTowLHB1c2hFdmVudElkOlwiXCJ9O3JldHVybiB0LnRyYW5zaWVudEV2ZW50SWQ9ZS50cmFuc2llbnRFdmVudElkPz9cIlwiLHQudGFza1NvdXJjZT1lLnRhc2tTb3VyY2U/PzAsdC5wdXNoRXZlbnRJZD1lLnB1c2hFdmVudElkPz9cIlwiLHR9fSx0LlB1c2hDYW1wYWlnblVzZXJWYWxpZGF0aW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUucHVzaEV2ZW50SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5wdXNoRXZlbnRJZCksMCE9PWUuc3RhcnRFdmVudFRpbWVzdGFtcCYmdC51aW50MzIoMTcpLmRvdWJsZShlLnN0YXJ0RXZlbnRUaW1lc3RhbXApLDAhPT1lLmxvZ1dyaXR0ZW5UaW1lc3RhbXAmJnQudWludDMyKDI1KS5kb3VibGUoZS5sb2dXcml0dGVuVGltZXN0YW1wKSxcIlwiIT09ZS5vcmlnaW5hbEV2ZW50SWQmJnQudWludDMyKDQyKS5zdHJpbmcoZS5vcmlnaW5hbEV2ZW50SWQpLFwiXCIhPT1lLnB1c2hSZWFjaGFiaWxpdHlTdGF0dXMmJnQudWludDMyKDUwKS5zdHJpbmcoZS5wdXNoUmVhY2hhYmlsaXR5U3RhdHVzKSxcIlwiIT09ZS5wdXNoUmVhY2hhYmlsaXR5UmVhc29uJiZ0LnVpbnQzMig1OCkuc3RyaW5nKGUucHVzaFJlYWNoYWJpbGl0eVJlYXNvbiksXCJcIiE9PWUuZW1haWxSZWFjaGFiaWxpdHlTdGF0dXMmJnQudWludDMyKDY2KS5zdHJpbmcoZS5lbWFpbFJlYWNoYWJpbGl0eVN0YXR1cyksXCJcIiE9PWUuZW1haWxSZWFjaGFiaWxpdHlSZWFzb24mJnQudWludDMyKDc0KS5zdHJpbmcoZS5lbWFpbFJlYWNoYWJpbGl0eVJlYXNvbiksXCJcIiE9PWUuc21zUmVhY2hhYmlsaXR5U3RhdHVzJiZ0LnVpbnQzMig4Mikuc3RyaW5nKGUuc21zUmVhY2hhYmlsaXR5U3RhdHVzKSxcIlwiIT09ZS5zbXNSZWFjaGFiaWxpdHlSZWFzb24mJnQudWludDMyKDkwKS5zdHJpbmcoZS5zbXNSZWFjaGFiaWxpdHlSZWFzb24pLFwiXCIhPT1lLmluYXBwQ2FtcGFpZ25EaXNhYmxlcyYmdC51aW50MzIoOTgpLnN0cmluZyhlLmluYXBwQ2FtcGFpZ25EaXNhYmxlcyksITA9PT1lLm5vdGlmQXBwQmFkZ2VFbmFibGVkJiZ0LnVpbnQzMigxMDQpLmJvb2woZS5ub3RpZkFwcEJhZGdlRW5hYmxlZCksITA9PT1lLmxvZ2dlZEluJiZ0LnVpbnQzMigxMTIpLmJvb2woZS5sb2dnZWRJbiksITA9PT1lLnVuaW5zdGFsbGVkJiZ0LnVpbnQzMigxMjApLmJvb2woZS51bmluc3RhbGxlZCksXCJcIiE9PWUuY2hhbm5lbHNDaG9zZW4mJnQudWludDMyKDEzMCkuc3RyaW5nKGUuY2hhbm5lbHNDaG9zZW4pLFwiXCIhPT1lLmNoYW5uZWxzQ2hvc2VuUmVhc29uJiZ0LnVpbnQzMigxMzgpLnN0cmluZyhlLmNoYW5uZWxzQ2hvc2VuUmVhc29uKSxcIlwiIT09ZS5hbGxvd2VkQ2hhbm5lbHMmJnQudWludDMyKDE0Nikuc3RyaW5nKGUuYWxsb3dlZENoYW5uZWxzKSxcIlwiIT09ZS5yYW5raW5nUHJvZmlsZUlkJiZ0LnVpbnQzMigxNTQpLnN0cmluZyhlLnJhbmtpbmdQcm9maWxlSWQpLFwiMFwiIT09ZS51c2VyTDcmJnQudWludDMyKDE2MCkudWludDY0KGUudXNlckw3KSxcIjBcIiE9PWUudXNlckwzMCYmdC51aW50MzIoMTY4KS51aW50NjQoZS51c2VyTDMwKSxcIjBcIiE9PWUudXNlckw5MCYmdC51aW50MzIoMTc2KS51aW50NjQoZS51c2VyTDkwKSwwIT09ZS5wdXNoQ2FtcGFpZ25FdmVudE5hbWUmJnQudWludDMyKDE4NCkuaW50MzIoZS5wdXNoQ2FtcGFpZ25FdmVudE5hbWUpLCEwPT09ZS5pc1NhbXBsaW5nJiZ0LnVpbnQzMigxOTIpLmJvb2woZS5pc1NhbXBsaW5nKSxcIjBcIiE9PWUucmV0cnlDb3VudEluZGV4JiZ0LnVpbnQzMigyMDApLnVpbnQ2NChlLnJldHJ5Q291bnRJbmRleCksXCJcIiE9PWUubG9naW5TdGF0dXMmJnQudWludDMyKDIxMCkuc3RyaW5nKGUubG9naW5TdGF0dXMpLCEwPT09ZS5pc1B1c2hCYXNlZCYmdC51aW50MzIoMjE2KS5ib29sKGUuaXNQdXNoQmFzZWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17cHVzaEV2ZW50SWQ6XCJcIixzdGFydEV2ZW50VGltZXN0YW1wOjAsbG9nV3JpdHRlblRpbWVzdGFtcDowLG9yaWdpbmFsRXZlbnRJZDpcIlwiLHB1c2hSZWFjaGFiaWxpdHlTdGF0dXM6XCJcIixwdXNoUmVhY2hhYmlsaXR5UmVhc29uOlwiXCIsZW1haWxSZWFjaGFiaWxpdHlTdGF0dXM6XCJcIixlbWFpbFJlYWNoYWJpbGl0eVJlYXNvbjpcIlwiLHNtc1JlYWNoYWJpbGl0eVN0YXR1czpcIlwiLHNtc1JlYWNoYWJpbGl0eVJlYXNvbjpcIlwiLGluYXBwQ2FtcGFpZ25EaXNhYmxlczpcIlwiLG5vdGlmQXBwQmFkZ2VFbmFibGVkOiExLGxvZ2dlZEluOiExLHVuaW5zdGFsbGVkOiExLGNoYW5uZWxzQ2hvc2VuOlwiXCIsY2hhbm5lbHNDaG9zZW5SZWFzb246XCJcIixhbGxvd2VkQ2hhbm5lbHM6XCJcIixyYW5raW5nUHJvZmlsZUlkOlwiXCIsdXNlckw3OlwiMFwiLHVzZXJMMzA6XCIwXCIsdXNlckw5MDpcIjBcIixwdXNoQ2FtcGFpZ25FdmVudE5hbWU6MCxpc1NhbXBsaW5nOiExLHJldHJ5Q291bnRJbmRleDpcIjBcIixsb2dpblN0YXR1czpcIlwiLGlzUHVzaEJhc2VkOiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5wdXNoRXZlbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnN0YXJ0RXZlbnRUaW1lc3RhbXA9bi5kb3VibGUoKTticmVhaztjYXNlIDM6aS5sb2dXcml0dGVuVGltZXN0YW1wPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA1Omkub3JpZ2luYWxFdmVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkucHVzaFJlYWNoYWJpbGl0eVN0YXR1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLnB1c2hSZWFjaGFiaWxpdHlSZWFzb249bi5zdHJpbmcoKTticmVhaztjYXNlIDg6aS5lbWFpbFJlYWNoYWJpbGl0eVN0YXR1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgOTppLmVtYWlsUmVhY2hhYmlsaXR5UmVhc29uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLnNtc1JlYWNoYWJpbGl0eVN0YXR1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6aS5zbXNSZWFjaGFiaWxpdHlSZWFzb249bi5zdHJpbmcoKTticmVhaztjYXNlIDEyOmkuaW5hcHBDYW1wYWlnbkRpc2FibGVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMzppLm5vdGlmQXBwQmFkZ2VFbmFibGVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTQ6aS5sb2dnZWRJbj1uLmJvb2woKTticmVhaztjYXNlIDE1OmkudW5pbnN0YWxsZWQ9bi5ib29sKCk7YnJlYWs7Y2FzZSAxNjppLmNoYW5uZWxzQ2hvc2VuPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNzppLmNoYW5uZWxzQ2hvc2VuUmVhc29uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxODppLmFsbG93ZWRDaGFubmVscz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTk6aS5yYW5raW5nUHJvZmlsZUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMDppLnVzZXJMNz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMjE6aS51c2VyTDMwPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAyMjppLnVzZXJMOTA9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDIzOmkucHVzaENhbXBhaWduRXZlbnROYW1lPW4uaW50MzIoKTticmVhaztjYXNlIDI0OmkuaXNTYW1wbGluZz1uLmJvb2woKTticmVhaztjYXNlIDI1OmkucmV0cnlDb3VudEluZGV4PXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAyNjppLmxvZ2luU3RhdHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyNzppLmlzUHVzaEJhc2VkPW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cHVzaEV2ZW50SWQ6XCJcIixzdGFydEV2ZW50VGltZXN0YW1wOjAsbG9nV3JpdHRlblRpbWVzdGFtcDowLG9yaWdpbmFsRXZlbnRJZDpcIlwiLHB1c2hSZWFjaGFiaWxpdHlTdGF0dXM6XCJcIixwdXNoUmVhY2hhYmlsaXR5UmVhc29uOlwiXCIsZW1haWxSZWFjaGFiaWxpdHlTdGF0dXM6XCJcIixlbWFpbFJlYWNoYWJpbGl0eVJlYXNvbjpcIlwiLHNtc1JlYWNoYWJpbGl0eVN0YXR1czpcIlwiLHNtc1JlYWNoYWJpbGl0eVJlYXNvbjpcIlwiLGluYXBwQ2FtcGFpZ25EaXNhYmxlczpcIlwiLG5vdGlmQXBwQmFkZ2VFbmFibGVkOiExLGxvZ2dlZEluOiExLHVuaW5zdGFsbGVkOiExLGNoYW5uZWxzQ2hvc2VuOlwiXCIsY2hhbm5lbHNDaG9zZW5SZWFzb246XCJcIixhbGxvd2VkQ2hhbm5lbHM6XCJcIixyYW5raW5nUHJvZmlsZUlkOlwiXCIsdXNlckw3OlwiMFwiLHVzZXJMMzA6XCIwXCIsdXNlckw5MDpcIjBcIixwdXNoQ2FtcGFpZ25FdmVudE5hbWU6MCxpc1NhbXBsaW5nOiExLHJldHJ5Q291bnRJbmRleDpcIjBcIixsb2dpblN0YXR1czpcIlwiLGlzUHVzaEJhc2VkOiExfTtyZXR1cm4gdC5wdXNoRXZlbnRJZD1lLnB1c2hFdmVudElkPz9cIlwiLHQuc3RhcnRFdmVudFRpbWVzdGFtcD1lLnN0YXJ0RXZlbnRUaW1lc3RhbXA/PzAsdC5sb2dXcml0dGVuVGltZXN0YW1wPWUubG9nV3JpdHRlblRpbWVzdGFtcD8/MCx0Lm9yaWdpbmFsRXZlbnRJZD1lLm9yaWdpbmFsRXZlbnRJZD8/XCJcIix0LnB1c2hSZWFjaGFiaWxpdHlTdGF0dXM9ZS5wdXNoUmVhY2hhYmlsaXR5U3RhdHVzPz9cIlwiLHQucHVzaFJlYWNoYWJpbGl0eVJlYXNvbj1lLnB1c2hSZWFjaGFiaWxpdHlSZWFzb24/P1wiXCIsdC5lbWFpbFJlYWNoYWJpbGl0eVN0YXR1cz1lLmVtYWlsUmVhY2hhYmlsaXR5U3RhdHVzPz9cIlwiLHQuZW1haWxSZWFjaGFiaWxpdHlSZWFzb249ZS5lbWFpbFJlYWNoYWJpbGl0eVJlYXNvbj8/XCJcIix0LnNtc1JlYWNoYWJpbGl0eVN0YXR1cz1lLnNtc1JlYWNoYWJpbGl0eVN0YXR1cz8/XCJcIix0LnNtc1JlYWNoYWJpbGl0eVJlYXNvbj1lLnNtc1JlYWNoYWJpbGl0eVJlYXNvbj8/XCJcIix0LmluYXBwQ2FtcGFpZ25EaXNhYmxlcz1lLmluYXBwQ2FtcGFpZ25EaXNhYmxlcz8/XCJcIix0Lm5vdGlmQXBwQmFkZ2VFbmFibGVkPWUubm90aWZBcHBCYWRnZUVuYWJsZWQ/PyExLHQubG9nZ2VkSW49ZS5sb2dnZWRJbj8/ITEsdC51bmluc3RhbGxlZD1lLnVuaW5zdGFsbGVkPz8hMSx0LmNoYW5uZWxzQ2hvc2VuPWUuY2hhbm5lbHNDaG9zZW4/P1wiXCIsdC5jaGFubmVsc0Nob3NlblJlYXNvbj1lLmNoYW5uZWxzQ2hvc2VuUmVhc29uPz9cIlwiLHQuYWxsb3dlZENoYW5uZWxzPWUuYWxsb3dlZENoYW5uZWxzPz9cIlwiLHQucmFua2luZ1Byb2ZpbGVJZD1lLnJhbmtpbmdQcm9maWxlSWQ/P1wiXCIsdC51c2VyTDc9ZS51c2VyTDc/P1wiMFwiLHQudXNlckwzMD1lLnVzZXJMMzA/P1wiMFwiLHQudXNlckw5MD1lLnVzZXJMOTA/P1wiMFwiLHQucHVzaENhbXBhaWduRXZlbnROYW1lPWUucHVzaENhbXBhaWduRXZlbnROYW1lPz8wLHQuaXNTYW1wbGluZz1lLmlzU2FtcGxpbmc/PyExLHQucmV0cnlDb3VudEluZGV4PWUucmV0cnlDb3VudEluZGV4Pz9cIjBcIix0LmxvZ2luU3RhdHVzPWUubG9naW5TdGF0dXM/P1wiXCIsdC5pc1B1c2hCYXNlZD1lLmlzUHVzaEJhc2VkPz8hMSx0fX0sdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubm90aWZpY2F0aW9uSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5ub3RpZmljYXRpb25JZCksXCJcIiE9PWUubm90aWZpY2F0aW9uVHlwZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLm5vdGlmaWNhdGlvblR5cGUpLFwiXCIhPT1lLm5vdGlmaWNhdGlvblNvdXJjZSYmdC51aW50MzIoMjYpLnN0cmluZyhlLm5vdGlmaWNhdGlvblNvdXJjZSksMCE9PWUubm90aWZpY2F0aW9uU2VuZFRzJiZ0LnVpbnQzMigzMykuZG91YmxlKGUubm90aWZpY2F0aW9uU2VuZFRzKSwwIT09ZS5ub3RpZmljYXRpb25SZWNpZXZlVHMmJnQudWludDMyKDQxKS5kb3VibGUoZS5ub3RpZmljYXRpb25SZWNpZXZlVHMpLDAhPT1lLm5vdGlmaWNhdGlvbkRpc3BsYXlUcyYmdC51aW50MzIoNDkpLmRvdWJsZShlLm5vdGlmaWNhdGlvbkRpc3BsYXlUcyksXCJcIiE9PWUuc2VuZGVyR2hvc3RJZCYmdC51aW50MzIoNTgpLnN0cmluZyhlLnNlbmRlckdob3N0SWQpLFwiXCIhPT1lLnJlY2lwaWVudEdob3N0SWQmJnQudWludDMyKDY2KS5zdHJpbmcoZS5yZWNpcGllbnRHaG9zdElkKSwhMD09PWUud2l0aFNlbmRlcklzVGVhbXNuYXBjaGF0JiZ0LnVpbnQzMig3MikuYm9vbChlLndpdGhTZW5kZXJJc1RlYW1zbmFwY2hhdCksITA9PT1lLndpdGhTZW5kZXJJc0VtcGxveWVlJiZ0LnVpbnQzMig4MCkuYm9vbChlLndpdGhTZW5kZXJJc0VtcGxveWVlKSwhMD09PWUud2l0aFJlY2lwaWVudElzRW1wbG95ZWUmJnQudWludDMyKDg4KS5ib29sKGUud2l0aFJlY2lwaWVudElzRW1wbG95ZWUpLFwiXCIhPT1lLnJlY2lwaWVudEFwcFZlcnNpb24mJnQudWludDMyKDk4KS5zdHJpbmcoZS5yZWNpcGllbnRBcHBWZXJzaW9uKSxcIlwiIT09ZS5yZWNpcGllbnRBcHBQbGF0Zm9ybSYmdC51aW50MzIoMTA2KS5zdHJpbmcoZS5yZWNpcGllbnRBcHBQbGF0Zm9ybSksXCJcIiE9PWUucmVjaXBpZW50Q291bnRyeSYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5yZWNpcGllbnRDb3VudHJ5KSxcIlwiIT09ZS5yZWNpcGllbnRSZWdpb24mJnQudWludDMyKDEyMikuc3RyaW5nKGUucmVjaXBpZW50UmVnaW9uKSxcIjBcIiE9PWUuc2VuZFN0YXR1c0NvZGUmJnQudWludDMyKDEyOCkudWludDY0KGUuc2VuZFN0YXR1c0NvZGUpLFwiXCIhPT1lLnNlbmRFcnJvckNvZGUmJnQudWludDMyKDEzOCkuc3RyaW5nKGUuc2VuZEVycm9yQ29kZSksXCIwXCIhPT1lLnBheWxvYWRTaXplJiZ0LnVpbnQzMigxNDQpLnVpbnQ2NChlLnBheWxvYWRTaXplKSwhMD09PWUud2l0aFJldHJ5YWJsZSYmdC51aW50MzIoMTUyKS5ib29sKGUud2l0aFJldHJ5YWJsZSksXCIwXCIhPT1lLnJldHJ5Q291bnQmJnQudWludDMyKDE2MCkudWludDY0KGUucmV0cnlDb3VudCksITA9PT1lLndpdGhIYWRNZW1jYWNoZVRva2VuJiZ0LnVpbnQzMigxNjgpLmJvb2woZS53aXRoSGFkTWVtY2FjaGVUb2tlbiksITA9PT1lLndpdGhTeXN0ZW1Ob3RpZmljYXRpb25FbmFibGVkJiZ0LnVpbnQzMigxNzYpLmJvb2woZS53aXRoU3lzdGVtTm90aWZpY2F0aW9uRW5hYmxlZCksITA9PT1lLndpdGhJbmFwcE5vdGlmaWNhdGlvbkVuYWJsZWQmJnQudWludDMyKDE4NCkuYm9vbChlLndpdGhJbmFwcE5vdGlmaWNhdGlvbkVuYWJsZWQpLCEwPT09ZS53aXRoU291bmRPbiYmdC51aW50MzIoMTkyKS5ib29sKGUud2l0aFNvdW5kT24pLCEwPT09ZS53aXRoVmlicmF0ZU9uJiZ0LnVpbnQzMigyMDApLmJvb2woZS53aXRoVmlicmF0ZU9uKSxcIlwiIT09ZS5zdHVkeU5hbWUmJnQudWludDMyKDIxMCkuc3RyaW5nKGUuc3R1ZHlOYW1lKSxcIlwiIT09ZS5leHBlcmltZW50SWQmJnQudWludDMyKDIxOCkuc3RyaW5nKGUuZXhwZXJpbWVudElkKSxcIlwiIT09ZS50YXJnZXRTdGF0dXMmJnQudWludDMyKDIyNikuc3RyaW5nKGUudGFyZ2V0U3RhdHVzKSxcIlwiIT09ZS5wdXNoUmVzdWx0JiZ0LnVpbnQzMigyMzQpLnN0cmluZyhlLnB1c2hSZXN1bHQpLDAhPT1lLmxhc3RBcHBPcGVuVHMmJnQudWludDMyKDI0MSkuZG91YmxlKGUubGFzdEFwcE9wZW5UcyksXCJcIiE9PWUuY2FtcGFpZ25OYW1lJiZ0LnVpbnQzMigyNTApLnN0cmluZyhlLmNhbXBhaWduTmFtZSksITA9PT1lLndpdGhJbmNsdWRlSW5CaWdRdWVyeSYmdC51aW50MzIoMjU2KS5ib29sKGUud2l0aEluY2x1ZGVJbkJpZ1F1ZXJ5KSwhMD09PWUud2l0aENhbXBhaWduU3VjY2VzcyYmdC51aW50MzIoMjY0KS5ib29sKGUud2l0aENhbXBhaWduU3VjY2VzcyksITA9PT1lLndpdGhCb3RoVGVzdGluZyYmdC51aW50MzIoMjcyKS5ib29sKGUud2l0aEJvdGhUZXN0aW5nKSwhMD09PWUud2l0aENsaWVudFNob3VsZEFjayYmdC51aW50MzIoMjgwKS5ib29sKGUud2l0aENsaWVudFNob3VsZEFjayksXCJcIiE9PWUuc2VuZFJlc3VsdEVhcmx5VGVybWluYXRpb25SZWFzb24mJnQudWludDMyKDI5MCkuc3RyaW5nKGUuc2VuZFJlc3VsdEVhcmx5VGVybWluYXRpb25SZWFzb24pLCEwPT09ZS53aXRoUmVjZWl2ZWRJbkJhY2tncm91bmQmJnQudWludDMyKDI5NikuYm9vbChlLndpdGhSZWNlaXZlZEluQmFja2dyb3VuZCksXCJcIiE9PWUucHVzaE5vdGlmaWNhdGlvblJldHJ5VmVyc2lvbiYmdC51aW50MzIoMzA2KS5zdHJpbmcoZS5wdXNoTm90aWZpY2F0aW9uUmV0cnlWZXJzaW9uKSxcIlwiIT09ZS5wdXNoTm90aWZpY2F0aW9uUmV0cnlJbmZvJiZ0LnVpbnQzMigzMTQpLnN0cmluZyhlLnB1c2hOb3RpZmljYXRpb25SZXRyeUluZm8pLCEwPT09ZS53aXRoU2lsZW50JiZ0LnVpbnQzMigzMzYpLmJvb2woZS53aXRoU2lsZW50KSwwIT09ZS5sb2dTYW1wbGVSYXRlJiZ0LnVpbnQzMigzNjEpLmRvdWJsZShlLmxvZ1NhbXBsZVJhdGUpLFwiXCIhPT1lLmNvbnRlbnRJZGVudGlmaWVyJiZ0LnVpbnQzMigzODYpLnN0cmluZyhlLmNvbnRlbnRJZGVudGlmaWVyKSxcIlwiIT09ZS5zZW5kZXJPcmlnaW4mJnQudWludDMyKDQxMCkuc3RyaW5nKGUuc2VuZGVyT3JpZ2luKSxcIlwiIT09ZS5zZW5kZXJHaG9zdEd1aWQmJnQudWludDMyKDQyNikuc3RyaW5nKGUuc2VuZGVyR2hvc3RHdWlkKSxcIlwiIT09ZS5yZWNpcGllbnRHaG9zdEd1aWQmJnQudWludDMyKDQ1MCkuc3RyaW5nKGUucmVjaXBpZW50R2hvc3RHdWlkKSxcIlwiIT09ZS5zYW1wbGVSZWFzb24mJnQudWludDMyKDQ5MCkuc3RyaW5nKGUuc2FtcGxlUmVhc29uKSwwIT09ZS5kaXNwbGF5RGVsYXlMYXRlbmN5TXMmJnQudWludDMyKDUyOSkuZG91YmxlKGUuZGlzcGxheURlbGF5TGF0ZW5jeU1zKSxcIlwiIT09ZS5ub3RpZmljYXRpb25EZWxheWVkQnkmJnQudWludDMyKDUzOCkuc3RyaW5nKGUubm90aWZpY2F0aW9uRGVsYXllZEJ5KSxcIlwiIT09ZS5saW5raW5nTm90aWZpY2F0aW9uSUQmJnQudWludDMyKDU3OCkuc3RyaW5nKGUubGlua2luZ05vdGlmaWNhdGlvbklEKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e25vdGlmaWNhdGlvbklkOlwiXCIsbm90aWZpY2F0aW9uVHlwZTpcIlwiLG5vdGlmaWNhdGlvblNvdXJjZTpcIlwiLG5vdGlmaWNhdGlvblNlbmRUczowLG5vdGlmaWNhdGlvblJlY2lldmVUczowLG5vdGlmaWNhdGlvbkRpc3BsYXlUczowLHNlbmRlckdob3N0SWQ6XCJcIixyZWNpcGllbnRHaG9zdElkOlwiXCIsd2l0aFNlbmRlcklzVGVhbXNuYXBjaGF0OiExLHdpdGhTZW5kZXJJc0VtcGxveWVlOiExLHdpdGhSZWNpcGllbnRJc0VtcGxveWVlOiExLHJlY2lwaWVudEFwcFZlcnNpb246XCJcIixyZWNpcGllbnRBcHBQbGF0Zm9ybTpcIlwiLHJlY2lwaWVudENvdW50cnk6XCJcIixyZWNpcGllbnRSZWdpb246XCJcIixzZW5kU3RhdHVzQ29kZTpcIjBcIixzZW5kRXJyb3JDb2RlOlwiXCIscGF5bG9hZFNpemU6XCIwXCIsd2l0aFJldHJ5YWJsZTohMSxyZXRyeUNvdW50OlwiMFwiLHdpdGhIYWRNZW1jYWNoZVRva2VuOiExLHdpdGhTeXN0ZW1Ob3RpZmljYXRpb25FbmFibGVkOiExLHdpdGhJbmFwcE5vdGlmaWNhdGlvbkVuYWJsZWQ6ITEsd2l0aFNvdW5kT246ITEsd2l0aFZpYnJhdGVPbjohMSxzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0YXJnZXRTdGF0dXM6XCJcIixwdXNoUmVzdWx0OlwiXCIsbGFzdEFwcE9wZW5UczowLGNhbXBhaWduTmFtZTpcIlwiLHdpdGhJbmNsdWRlSW5CaWdRdWVyeTohMSx3aXRoQ2FtcGFpZ25TdWNjZXNzOiExLHdpdGhCb3RoVGVzdGluZzohMSx3aXRoQ2xpZW50U2hvdWxkQWNrOiExLHNlbmRSZXN1bHRFYXJseVRlcm1pbmF0aW9uUmVhc29uOlwiXCIsd2l0aFJlY2VpdmVkSW5CYWNrZ3JvdW5kOiExLHB1c2hOb3RpZmljYXRpb25SZXRyeVZlcnNpb246XCJcIixwdXNoTm90aWZpY2F0aW9uUmV0cnlJbmZvOlwiXCIsd2l0aFNpbGVudDohMSxsb2dTYW1wbGVSYXRlOjAsY29udGVudElkZW50aWZpZXI6XCJcIixzZW5kZXJPcmlnaW46XCJcIixzZW5kZXJHaG9zdEd1aWQ6XCJcIixyZWNpcGllbnRHaG9zdEd1aWQ6XCJcIixzYW1wbGVSZWFzb246XCJcIixkaXNwbGF5RGVsYXlMYXRlbmN5TXM6MCxub3RpZmljYXRpb25EZWxheWVkQnk6XCJcIixsaW5raW5nTm90aWZpY2F0aW9uSUQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubm90aWZpY2F0aW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5ub3RpZmljYXRpb25UeXBlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkubm90aWZpY2F0aW9uU291cmNlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0Omkubm90aWZpY2F0aW9uU2VuZFRzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA1Omkubm90aWZpY2F0aW9uUmVjaWV2ZVRzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA2Omkubm90aWZpY2F0aW9uRGlzcGxheVRzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA3Omkuc2VuZGVyR2hvc3RJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgODppLnJlY2lwaWVudEdob3N0SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDk6aS53aXRoU2VuZGVySXNUZWFtc25hcGNoYXQ9bi5ib29sKCk7YnJlYWs7Y2FzZSAxMDppLndpdGhTZW5kZXJJc0VtcGxveWVlPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTE6aS53aXRoUmVjaXBpZW50SXNFbXBsb3llZT1uLmJvb2woKTticmVhaztjYXNlIDEyOmkucmVjaXBpZW50QXBwVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTM6aS5yZWNpcGllbnRBcHBQbGF0Zm9ybT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTQ6aS5yZWNpcGllbnRDb3VudHJ5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTppLnJlY2lwaWVudFJlZ2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTY6aS5zZW5kU3RhdHVzQ29kZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTc6aS5zZW5kRXJyb3JDb2RlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxODppLnBheWxvYWRTaXplPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAxOTppLndpdGhSZXRyeWFibGU9bi5ib29sKCk7YnJlYWs7Y2FzZSAyMDppLnJldHJ5Q291bnQ9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDIxOmkud2l0aEhhZE1lbWNhY2hlVG9rZW49bi5ib29sKCk7YnJlYWs7Y2FzZSAyMjppLndpdGhTeXN0ZW1Ob3RpZmljYXRpb25FbmFibGVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMjM6aS53aXRoSW5hcHBOb3RpZmljYXRpb25FbmFibGVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMjQ6aS53aXRoU291bmRPbj1uLmJvb2woKTticmVhaztjYXNlIDI1Omkud2l0aFZpYnJhdGVPbj1uLmJvb2woKTticmVhaztjYXNlIDI2Omkuc3R1ZHlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyNzppLmV4cGVyaW1lbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjg6aS50YXJnZXRTdGF0dXM9bi5zdHJpbmcoKTticmVhaztjYXNlIDI5OmkucHVzaFJlc3VsdD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzA6aS5sYXN0QXBwT3BlblRzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAzMTppLmNhbXBhaWduTmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzI6aS53aXRoSW5jbHVkZUluQmlnUXVlcnk9bi5ib29sKCk7YnJlYWs7Y2FzZSAzMzppLndpdGhDYW1wYWlnblN1Y2Nlc3M9bi5ib29sKCk7YnJlYWs7Y2FzZSAzNDppLndpdGhCb3RoVGVzdGluZz1uLmJvb2woKTticmVhaztjYXNlIDM1Omkud2l0aENsaWVudFNob3VsZEFjaz1uLmJvb2woKTticmVhaztjYXNlIDM2Omkuc2VuZFJlc3VsdEVhcmx5VGVybWluYXRpb25SZWFzb249bi5zdHJpbmcoKTticmVhaztjYXNlIDM3Omkud2l0aFJlY2VpdmVkSW5CYWNrZ3JvdW5kPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMzg6aS5wdXNoTm90aWZpY2F0aW9uUmV0cnlWZXJzaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOTppLnB1c2hOb3RpZmljYXRpb25SZXRyeUluZm89bi5zdHJpbmcoKTticmVhaztjYXNlIDQyOmkud2l0aFNpbGVudD1uLmJvb2woKTticmVhaztjYXNlIDQ1OmkubG9nU2FtcGxlUmF0ZT1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNDg6aS5jb250ZW50SWRlbnRpZmllcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTE6aS5zZW5kZXJPcmlnaW49bi5zdHJpbmcoKTticmVhaztjYXNlIDUzOmkuc2VuZGVyR2hvc3RHdWlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1NjppLnJlY2lwaWVudEdob3N0R3VpZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjE6aS5zYW1wbGVSZWFzb249bi5zdHJpbmcoKTticmVhaztjYXNlIDY2OmkuZGlzcGxheURlbGF5TGF0ZW5jeU1zPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA2NzppLm5vdGlmaWNhdGlvbkRlbGF5ZWRCeT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzI6aS5saW5raW5nTm90aWZpY2F0aW9uSUQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e25vdGlmaWNhdGlvbklkOlwiXCIsbm90aWZpY2F0aW9uVHlwZTpcIlwiLG5vdGlmaWNhdGlvblNvdXJjZTpcIlwiLG5vdGlmaWNhdGlvblNlbmRUczowLG5vdGlmaWNhdGlvblJlY2lldmVUczowLG5vdGlmaWNhdGlvbkRpc3BsYXlUczowLHNlbmRlckdob3N0SWQ6XCJcIixyZWNpcGllbnRHaG9zdElkOlwiXCIsd2l0aFNlbmRlcklzVGVhbXNuYXBjaGF0OiExLHdpdGhTZW5kZXJJc0VtcGxveWVlOiExLHdpdGhSZWNpcGllbnRJc0VtcGxveWVlOiExLHJlY2lwaWVudEFwcFZlcnNpb246XCJcIixyZWNpcGllbnRBcHBQbGF0Zm9ybTpcIlwiLHJlY2lwaWVudENvdW50cnk6XCJcIixyZWNpcGllbnRSZWdpb246XCJcIixzZW5kU3RhdHVzQ29kZTpcIjBcIixzZW5kRXJyb3JDb2RlOlwiXCIscGF5bG9hZFNpemU6XCIwXCIsd2l0aFJldHJ5YWJsZTohMSxyZXRyeUNvdW50OlwiMFwiLHdpdGhIYWRNZW1jYWNoZVRva2VuOiExLHdpdGhTeXN0ZW1Ob3RpZmljYXRpb25FbmFibGVkOiExLHdpdGhJbmFwcE5vdGlmaWNhdGlvbkVuYWJsZWQ6ITEsd2l0aFNvdW5kT246ITEsd2l0aFZpYnJhdGVPbjohMSxzdHVkeU5hbWU6XCJcIixleHBlcmltZW50SWQ6XCJcIix0YXJnZXRTdGF0dXM6XCJcIixwdXNoUmVzdWx0OlwiXCIsbGFzdEFwcE9wZW5UczowLGNhbXBhaWduTmFtZTpcIlwiLHdpdGhJbmNsdWRlSW5CaWdRdWVyeTohMSx3aXRoQ2FtcGFpZ25TdWNjZXNzOiExLHdpdGhCb3RoVGVzdGluZzohMSx3aXRoQ2xpZW50U2hvdWxkQWNrOiExLHNlbmRSZXN1bHRFYXJseVRlcm1pbmF0aW9uUmVhc29uOlwiXCIsd2l0aFJlY2VpdmVkSW5CYWNrZ3JvdW5kOiExLHB1c2hOb3RpZmljYXRpb25SZXRyeVZlcnNpb246XCJcIixwdXNoTm90aWZpY2F0aW9uUmV0cnlJbmZvOlwiXCIsd2l0aFNpbGVudDohMSxsb2dTYW1wbGVSYXRlOjAsY29udGVudElkZW50aWZpZXI6XCJcIixzZW5kZXJPcmlnaW46XCJcIixzZW5kZXJHaG9zdEd1aWQ6XCJcIixyZWNpcGllbnRHaG9zdEd1aWQ6XCJcIixzYW1wbGVSZWFzb246XCJcIixkaXNwbGF5RGVsYXlMYXRlbmN5TXM6MCxub3RpZmljYXRpb25EZWxheWVkQnk6XCJcIixsaW5raW5nTm90aWZpY2F0aW9uSUQ6XCJcIn07cmV0dXJuIHQubm90aWZpY2F0aW9uSWQ9ZS5ub3RpZmljYXRpb25JZD8/XCJcIix0Lm5vdGlmaWNhdGlvblR5cGU9ZS5ub3RpZmljYXRpb25UeXBlPz9cIlwiLHQubm90aWZpY2F0aW9uU291cmNlPWUubm90aWZpY2F0aW9uU291cmNlPz9cIlwiLHQubm90aWZpY2F0aW9uU2VuZFRzPWUubm90aWZpY2F0aW9uU2VuZFRzPz8wLHQubm90aWZpY2F0aW9uUmVjaWV2ZVRzPWUubm90aWZpY2F0aW9uUmVjaWV2ZVRzPz8wLHQubm90aWZpY2F0aW9uRGlzcGxheVRzPWUubm90aWZpY2F0aW9uRGlzcGxheVRzPz8wLHQuc2VuZGVyR2hvc3RJZD1lLnNlbmRlckdob3N0SWQ/P1wiXCIsdC5yZWNpcGllbnRHaG9zdElkPWUucmVjaXBpZW50R2hvc3RJZD8/XCJcIix0LndpdGhTZW5kZXJJc1RlYW1zbmFwY2hhdD1lLndpdGhTZW5kZXJJc1RlYW1zbmFwY2hhdD8/ITEsdC53aXRoU2VuZGVySXNFbXBsb3llZT1lLndpdGhTZW5kZXJJc0VtcGxveWVlPz8hMSx0LndpdGhSZWNpcGllbnRJc0VtcGxveWVlPWUud2l0aFJlY2lwaWVudElzRW1wbG95ZWU/PyExLHQucmVjaXBpZW50QXBwVmVyc2lvbj1lLnJlY2lwaWVudEFwcFZlcnNpb24/P1wiXCIsdC5yZWNpcGllbnRBcHBQbGF0Zm9ybT1lLnJlY2lwaWVudEFwcFBsYXRmb3JtPz9cIlwiLHQucmVjaXBpZW50Q291bnRyeT1lLnJlY2lwaWVudENvdW50cnk/P1wiXCIsdC5yZWNpcGllbnRSZWdpb249ZS5yZWNpcGllbnRSZWdpb24/P1wiXCIsdC5zZW5kU3RhdHVzQ29kZT1lLnNlbmRTdGF0dXNDb2RlPz9cIjBcIix0LnNlbmRFcnJvckNvZGU9ZS5zZW5kRXJyb3JDb2RlPz9cIlwiLHQucGF5bG9hZFNpemU9ZS5wYXlsb2FkU2l6ZT8/XCIwXCIsdC53aXRoUmV0cnlhYmxlPWUud2l0aFJldHJ5YWJsZT8/ITEsdC5yZXRyeUNvdW50PWUucmV0cnlDb3VudD8/XCIwXCIsdC53aXRoSGFkTWVtY2FjaGVUb2tlbj1lLndpdGhIYWRNZW1jYWNoZVRva2VuPz8hMSx0LndpdGhTeXN0ZW1Ob3RpZmljYXRpb25FbmFibGVkPWUud2l0aFN5c3RlbU5vdGlmaWNhdGlvbkVuYWJsZWQ/PyExLHQud2l0aEluYXBwTm90aWZpY2F0aW9uRW5hYmxlZD1lLndpdGhJbmFwcE5vdGlmaWNhdGlvbkVuYWJsZWQ/PyExLHQud2l0aFNvdW5kT249ZS53aXRoU291bmRPbj8/ITEsdC53aXRoVmlicmF0ZU9uPWUud2l0aFZpYnJhdGVPbj8/ITEsdC5zdHVkeU5hbWU9ZS5zdHVkeU5hbWU/P1wiXCIsdC5leHBlcmltZW50SWQ9ZS5leHBlcmltZW50SWQ/P1wiXCIsdC50YXJnZXRTdGF0dXM9ZS50YXJnZXRTdGF0dXM/P1wiXCIsdC5wdXNoUmVzdWx0PWUucHVzaFJlc3VsdD8/XCJcIix0Lmxhc3RBcHBPcGVuVHM9ZS5sYXN0QXBwT3BlblRzPz8wLHQuY2FtcGFpZ25OYW1lPWUuY2FtcGFpZ25OYW1lPz9cIlwiLHQud2l0aEluY2x1ZGVJbkJpZ1F1ZXJ5PWUud2l0aEluY2x1ZGVJbkJpZ1F1ZXJ5Pz8hMSx0LndpdGhDYW1wYWlnblN1Y2Nlc3M9ZS53aXRoQ2FtcGFpZ25TdWNjZXNzPz8hMSx0LndpdGhCb3RoVGVzdGluZz1lLndpdGhCb3RoVGVzdGluZz8/ITEsdC53aXRoQ2xpZW50U2hvdWxkQWNrPWUud2l0aENsaWVudFNob3VsZEFjaz8/ITEsdC5zZW5kUmVzdWx0RWFybHlUZXJtaW5hdGlvblJlYXNvbj1lLnNlbmRSZXN1bHRFYXJseVRlcm1pbmF0aW9uUmVhc29uPz9cIlwiLHQud2l0aFJlY2VpdmVkSW5CYWNrZ3JvdW5kPWUud2l0aFJlY2VpdmVkSW5CYWNrZ3JvdW5kPz8hMSx0LnB1c2hOb3RpZmljYXRpb25SZXRyeVZlcnNpb249ZS5wdXNoTm90aWZpY2F0aW9uUmV0cnlWZXJzaW9uPz9cIlwiLHQucHVzaE5vdGlmaWNhdGlvblJldHJ5SW5mbz1lLnB1c2hOb3RpZmljYXRpb25SZXRyeUluZm8/P1wiXCIsdC53aXRoU2lsZW50PWUud2l0aFNpbGVudD8/ITEsdC5sb2dTYW1wbGVSYXRlPWUubG9nU2FtcGxlUmF0ZT8/MCx0LmNvbnRlbnRJZGVudGlmaWVyPWUuY29udGVudElkZW50aWZpZXI/P1wiXCIsdC5zZW5kZXJPcmlnaW49ZS5zZW5kZXJPcmlnaW4/P1wiXCIsdC5zZW5kZXJHaG9zdEd1aWQ9ZS5zZW5kZXJHaG9zdEd1aWQ/P1wiXCIsdC5yZWNpcGllbnRHaG9zdEd1aWQ9ZS5yZWNpcGllbnRHaG9zdEd1aWQ/P1wiXCIsdC5zYW1wbGVSZWFzb249ZS5zYW1wbGVSZWFzb24/P1wiXCIsdC5kaXNwbGF5RGVsYXlMYXRlbmN5TXM9ZS5kaXNwbGF5RGVsYXlMYXRlbmN5TXM/PzAsdC5ub3RpZmljYXRpb25EZWxheWVkQnk9ZS5ub3RpZmljYXRpb25EZWxheWVkQnk/P1wiXCIsdC5saW5raW5nTm90aWZpY2F0aW9uSUQ9ZS5saW5raW5nTm90aWZpY2F0aW9uSUQ/P1wiXCIsdH19LHQuUXVlc3Rpb25BbnN3ZXJSZXNwb25zZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5sZW5zSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnNlc3Npb25JZCksXCJcIiE9PWUucmVzcG9uc2UmJnQudWludDMyKDI2KS5zdHJpbmcoZS5yZXNwb25zZSksXCIwXCIhPT1lLmNvbnRleHRDaGFyQ291bnQmJnQudWludDMyKDMyKS51aW50NjQoZS5jb250ZXh0Q2hhckNvdW50KSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2xlbnNJZDpcIlwiLHNlc3Npb25JZDpcIlwiLHJlc3BvbnNlOlwiXCIsY29udGV4dENoYXJDb3VudDpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubGVuc0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuc2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkucmVzcG9uc2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5jb250ZXh0Q2hhckNvdW50PXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtsZW5zSWQ6XCJcIixzZXNzaW9uSWQ6XCJcIixyZXNwb25zZTpcIlwiLGNvbnRleHRDaGFyQ291bnQ6XCIwXCJ9O3JldHVybiB0LmxlbnNJZD1lLmxlbnNJZD8/XCJcIix0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0LnJlc3BvbnNlPWUucmVzcG9uc2U/P1wiXCIsdC5jb250ZXh0Q2hhckNvdW50PWUuY29udGV4dENoYXJDb3VudD8/XCIwXCIsdH19LHQuUmVnaXN0cmF0aW9uQXR0ZW1wdEJhc2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUucmVnaXN0cmF0aW9uUmVzdWx0JiZ0LnVpbnQzMig4KS5pbnQzMihlLnJlZ2lzdHJhdGlvblJlc3VsdCksXCJcIiE9PWUuc2VydmVyUmVnaXN0cmF0aW9uUmVxdWVzdElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuc2VydmVyUmVnaXN0cmF0aW9uUmVxdWVzdElkKSxcIlwiIT09ZS5jbGllbnRJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLmNsaWVudElkKSxcIlwiIT09ZS5jbGllbnROZXR3b3JrUmVxdWVzdElkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuY2xpZW50TmV0d29ya1JlcXVlc3RJZCksXCJcIiE9PWUuY2xpZW50UmVnaXN0cmF0aW9uRmxvd1Nlc3Npb25JZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmNsaWVudFJlZ2lzdHJhdGlvbkZsb3dTZXNzaW9uSWQpLFwiXCIhPT1lLmNsaWVudEF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuY2xpZW50QXV0aGVudGljYXRpb25TZXNzaW9uSWQpLDAhPT1lLmlzVGVzdFVzZXImJnQudWludDMyKDU2KS5pbnQzMihlLmlzVGVzdFVzZXIpLFwiXCIhPT1lLnJlZ2lzdHJhdGlvbkZhaWx1cmVSZWFzb24mJnQudWludDMyKDY2KS5zdHJpbmcoZS5yZWdpc3RyYXRpb25GYWlsdXJlUmVhc29uKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3JlZ2lzdHJhdGlvblJlc3VsdDowLHNlcnZlclJlZ2lzdHJhdGlvblJlcXVlc3RJZDpcIlwiLGNsaWVudElkOlwiXCIsY2xpZW50TmV0d29ya1JlcXVlc3RJZDpcIlwiLGNsaWVudFJlZ2lzdHJhdGlvbkZsb3dTZXNzaW9uSWQ6XCJcIixjbGllbnRBdXRoZW50aWNhdGlvblNlc3Npb25JZDpcIlwiLGlzVGVzdFVzZXI6MCxyZWdpc3RyYXRpb25GYWlsdXJlUmVhc29uOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnJlZ2lzdHJhdGlvblJlc3VsdD1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuc2VydmVyUmVnaXN0cmF0aW9uUmVxdWVzdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuY2xpZW50SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5jbGllbnROZXR3b3JrUmVxdWVzdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuY2xpZW50UmVnaXN0cmF0aW9uRmxvd1Nlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLmNsaWVudEF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkuaXNUZXN0VXNlcj1uLmludDMyKCk7YnJlYWs7Y2FzZSA4OmkucmVnaXN0cmF0aW9uRmFpbHVyZVJlYXNvbj1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cmVnaXN0cmF0aW9uUmVzdWx0OjAsc2VydmVyUmVnaXN0cmF0aW9uUmVxdWVzdElkOlwiXCIsY2xpZW50SWQ6XCJcIixjbGllbnROZXR3b3JrUmVxdWVzdElkOlwiXCIsY2xpZW50UmVnaXN0cmF0aW9uRmxvd1Nlc3Npb25JZDpcIlwiLGNsaWVudEF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkOlwiXCIsaXNUZXN0VXNlcjowLHJlZ2lzdHJhdGlvbkZhaWx1cmVSZWFzb246XCJcIn07cmV0dXJuIHQucmVnaXN0cmF0aW9uUmVzdWx0PWUucmVnaXN0cmF0aW9uUmVzdWx0Pz8wLHQuc2VydmVyUmVnaXN0cmF0aW9uUmVxdWVzdElkPWUuc2VydmVyUmVnaXN0cmF0aW9uUmVxdWVzdElkPz9cIlwiLHQuY2xpZW50SWQ9ZS5jbGllbnRJZD8/XCJcIix0LmNsaWVudE5ldHdvcmtSZXF1ZXN0SWQ9ZS5jbGllbnROZXR3b3JrUmVxdWVzdElkPz9cIlwiLHQuY2xpZW50UmVnaXN0cmF0aW9uRmxvd1Nlc3Npb25JZD1lLmNsaWVudFJlZ2lzdHJhdGlvbkZsb3dTZXNzaW9uSWQ/P1wiXCIsdC5jbGllbnRBdXRoZW50aWNhdGlvblNlc3Npb25JZD1lLmNsaWVudEF1dGhlbnRpY2F0aW9uU2Vzc2lvbklkPz9cIlwiLHQuaXNUZXN0VXNlcj1lLmlzVGVzdFVzZXI/PzAsdC5yZWdpc3RyYXRpb25GYWlsdXJlUmVhc29uPWUucmVnaXN0cmF0aW9uRmFpbHVyZVJlYXNvbj8/XCJcIix0fX0sdC5SZWdpc3RyYXRpb25TZXJ2ZXJDcmVhdGVBY2NvdW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmNsaWVudElkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuY2xpZW50SWQpLFwiXCIhPT1lLmNsaWVudE5ldHdvcmtSZXF1ZXN0SWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jbGllbnROZXR3b3JrUmVxdWVzdElkKSxcIlwiIT09ZS5jbGllbnRSZWdpc3RyYXRpb25TZXNzaW9uSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5jbGllbnRSZWdpc3RyYXRpb25TZXNzaW9uSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17Y2xpZW50SWQ6XCJcIixjbGllbnROZXR3b3JrUmVxdWVzdElkOlwiXCIsY2xpZW50UmVnaXN0cmF0aW9uU2Vzc2lvbklkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmNsaWVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuY2xpZW50TmV0d29ya1JlcXVlc3RJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmNsaWVudFJlZ2lzdHJhdGlvblNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Y2xpZW50SWQ6XCJcIixjbGllbnROZXR3b3JrUmVxdWVzdElkOlwiXCIsY2xpZW50UmVnaXN0cmF0aW9uU2Vzc2lvbklkOlwiXCJ9O3JldHVybiB0LmNsaWVudElkPWUuY2xpZW50SWQ/P1wiXCIsdC5jbGllbnROZXR3b3JrUmVxdWVzdElkPWUuY2xpZW50TmV0d29ya1JlcXVlc3RJZD8/XCJcIix0LmNsaWVudFJlZ2lzdHJhdGlvblNlc3Npb25JZD1lLmNsaWVudFJlZ2lzdHJhdGlvblNlc3Npb25JZD8/XCJcIix0fX0sdC5SZWdpc3RyYXRpb25TZXJ2ZXJEbnU9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT50LGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17fTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7bi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbDplPT4oe30pfSx0LlNjYW5TZXNzaW9uU2VydmVyUmVxdWVzdFJlY2VpdmU9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc2NhblF1ZXJ5SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zY2FuUXVlcnlJZCksXCIwXCIhPT1lLnJlcXVlc3RUaW1lc3RhbXBNcyYmdC51aW50MzIoMTYpLnVpbnQ2NChlLnJlcXVlc3RUaW1lc3RhbXBNcyksXCIwXCIhPT1lLnRpbWVzdGFtcE1zJiZ0LnVpbnQzMigyNCkudWludDY0KGUudGltZXN0YW1wTXMpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2NhblF1ZXJ5SWQ6XCJcIixyZXF1ZXN0VGltZXN0YW1wTXM6XCIwXCIsdGltZXN0YW1wTXM6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNjYW5RdWVyeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkucmVxdWVzdFRpbWVzdGFtcE1zPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmkudGltZXN0YW1wTXM9cChuLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3NjYW5RdWVyeUlkOlwiXCIscmVxdWVzdFRpbWVzdGFtcE1zOlwiMFwiLHRpbWVzdGFtcE1zOlwiMFwifTtyZXR1cm4gdC5zY2FuUXVlcnlJZD1lLnNjYW5RdWVyeUlkPz9cIlwiLHQucmVxdWVzdFRpbWVzdGFtcE1zPWUucmVxdWVzdFRpbWVzdGFtcE1zPz9cIjBcIix0LnRpbWVzdGFtcE1zPWUudGltZXN0YW1wTXM/P1wiMFwiLHR9fSx0LlNjYW5TZXNzaW9uU2VydmVyUmVzcG9uc2VSZWFkeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zY2FuUXVlcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnNjYW5RdWVyeUlkKSxcIjBcIiE9PWUucmVxdWVzdFRpbWVzdGFtcE1zJiZ0LnVpbnQzMigxNikudWludDY0KGUucmVxdWVzdFRpbWVzdGFtcE1zKSxcIlwiIT09ZS5zY2FuUmVzdWx0SWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zY2FuUmVzdWx0SWQpLFwiMFwiIT09ZS50aW1lc3RhbXBNcyYmdC51aW50MzIoMzIpLnVpbnQ2NChlLnRpbWVzdGFtcE1zKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3NjYW5RdWVyeUlkOlwiXCIscmVxdWVzdFRpbWVzdGFtcE1zOlwiMFwiLHNjYW5SZXN1bHRJZDpcIlwiLHRpbWVzdGFtcE1zOlwiMFwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zY2FuUXVlcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnJlcXVlc3RUaW1lc3RhbXBNcz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMzppLnNjYW5SZXN1bHRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnRpbWVzdGFtcE1zPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzY2FuUXVlcnlJZDpcIlwiLHJlcXVlc3RUaW1lc3RhbXBNczpcIjBcIixzY2FuUmVzdWx0SWQ6XCJcIix0aW1lc3RhbXBNczpcIjBcIn07cmV0dXJuIHQuc2NhblF1ZXJ5SWQ9ZS5zY2FuUXVlcnlJZD8/XCJcIix0LnJlcXVlc3RUaW1lc3RhbXBNcz1lLnJlcXVlc3RUaW1lc3RhbXBNcz8/XCIwXCIsdC5zY2FuUmVzdWx0SWQ9ZS5zY2FuUmVzdWx0SWQ/P1wiXCIsdC50aW1lc3RhbXBNcz1lLnRpbWVzdGFtcE1zPz9cIjBcIix0fX0sdC5TY2FuU2Vzc2lvblNlcnZlclJlc3BvbnNlU2VuZD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zY2FuUXVlcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnNjYW5RdWVyeUlkKSxcIjBcIiE9PWUucmVxdWVzdFRpbWVzdGFtcE1zJiZ0LnVpbnQzMigxNikudWludDY0KGUucmVxdWVzdFRpbWVzdGFtcE1zKSxcIlwiIT09ZS5zY2FuUmVzdWx0SWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zY2FuUmVzdWx0SWQpLFwiMFwiIT09ZS50aW1lc3RhbXBNcyYmdC51aW50MzIoMzIpLnVpbnQ2NChlLnRpbWVzdGFtcE1zKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3NjYW5RdWVyeUlkOlwiXCIscmVxdWVzdFRpbWVzdGFtcE1zOlwiMFwiLHNjYW5SZXN1bHRJZDpcIlwiLHRpbWVzdGFtcE1zOlwiMFwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zY2FuUXVlcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnJlcXVlc3RUaW1lc3RhbXBNcz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMzppLnNjYW5SZXN1bHRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnRpbWVzdGFtcE1zPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzY2FuUXVlcnlJZDpcIlwiLHJlcXVlc3RUaW1lc3RhbXBNczpcIjBcIixzY2FuUmVzdWx0SWQ6XCJcIix0aW1lc3RhbXBNczpcIjBcIn07cmV0dXJuIHQuc2NhblF1ZXJ5SWQ9ZS5zY2FuUXVlcnlJZD8/XCJcIix0LnJlcXVlc3RUaW1lc3RhbXBNcz1lLnJlcXVlc3RUaW1lc3RhbXBNcz8/XCIwXCIsdC5zY2FuUmVzdWx0SWQ9ZS5zY2FuUmVzdWx0SWQ/P1wiXCIsdC50aW1lc3RhbXBNcz1lLnRpbWVzdGFtcE1zPz9cIjBcIix0fX0sdC5TZWFyY2hSZXF1ZXN0U2VydmVyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnVzZXJJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnVzZXJJZCksXCJcIiE9PWUuc2VhcmNoU2Vzc2lvbklkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuc2VhcmNoU2Vzc2lvbklkKSxcIlwiIT09ZS5xdWVyeUlkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUucXVlcnlJZCksXCJcIiE9PWUuc2VjdGlvbk5hbWUmJnQudWludDMyKDM0KS5zdHJpbmcoZS5zZWN0aW9uTmFtZSksXCIwXCIhPT1lLnNlY3Rpb25Qb3NpdGlvbiYmdC51aW50MzIoNDApLnVpbnQ2NChlLnNlY3Rpb25Qb3NpdGlvbiksXCJcIiE9PWUuaXRlbUlkJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuaXRlbUlkKSxcIjBcIiE9PWUuaXRlbVBvc2l0aW9uJiZ0LnVpbnQzMig1NikudWludDY0KGUuaXRlbVBvc2l0aW9uKSxcIlwiIT09ZS5wcm9wZXJ0aWVzJiZ0LnVpbnQzMig2Nikuc3RyaW5nKGUucHJvcGVydGllcyksXCJcIiE9PWUuY29ycmVzcG9uZGVudElkJiZ0LnVpbnQzMig3NCkuc3RyaW5nKGUuY29ycmVzcG9uZGVudElkKSxcIlwiIT09ZS5jb3JyZXNwb25kZW50R3VpZCYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5jb3JyZXNwb25kZW50R3VpZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt1c2VySWQ6XCJcIixzZWFyY2hTZXNzaW9uSWQ6XCJcIixxdWVyeUlkOlwiXCIsc2VjdGlvbk5hbWU6XCJcIixzZWN0aW9uUG9zaXRpb246XCIwXCIsaXRlbUlkOlwiXCIsaXRlbVBvc2l0aW9uOlwiMFwiLHByb3BlcnRpZXM6XCJcIixjb3JyZXNwb25kZW50SWQ6XCJcIixjb3JyZXNwb25kZW50R3VpZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS51c2VySWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5zZWFyY2hTZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5xdWVyeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0Omkuc2VjdGlvbk5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5zZWN0aW9uUG9zaXRpb249cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6aS5pdGVtSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5pdGVtUG9zaXRpb249cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDg6aS5wcm9wZXJ0aWVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmkuY29ycmVzcG9uZGVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLmNvcnJlc3BvbmRlbnRHdWlkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt1c2VySWQ6XCJcIixzZWFyY2hTZXNzaW9uSWQ6XCJcIixxdWVyeUlkOlwiXCIsc2VjdGlvbk5hbWU6XCJcIixzZWN0aW9uUG9zaXRpb246XCIwXCIsaXRlbUlkOlwiXCIsaXRlbVBvc2l0aW9uOlwiMFwiLHByb3BlcnRpZXM6XCJcIixjb3JyZXNwb25kZW50SWQ6XCJcIixjb3JyZXNwb25kZW50R3VpZDpcIlwifTtyZXR1cm4gdC51c2VySWQ9ZS51c2VySWQ/P1wiXCIsdC5zZWFyY2hTZXNzaW9uSWQ9ZS5zZWFyY2hTZXNzaW9uSWQ/P1wiXCIsdC5xdWVyeUlkPWUucXVlcnlJZD8/XCJcIix0LnNlY3Rpb25OYW1lPWUuc2VjdGlvbk5hbWU/P1wiXCIsdC5zZWN0aW9uUG9zaXRpb249ZS5zZWN0aW9uUG9zaXRpb24/P1wiMFwiLHQuaXRlbUlkPWUuaXRlbUlkPz9cIlwiLHQuaXRlbVBvc2l0aW9uPWUuaXRlbVBvc2l0aW9uPz9cIjBcIix0LnByb3BlcnRpZXM9ZS5wcm9wZXJ0aWVzPz9cIlwiLHQuY29ycmVzcG9uZGVudElkPWUuY29ycmVzcG9uZGVudElkPz9cIlwiLHQuY29ycmVzcG9uZGVudEd1aWQ9ZS5jb3JyZXNwb25kZW50R3VpZD8/XCJcIix0fX0sdC5TZWFyY2hSZXRyaWV2YWw9e2VuY29kZShlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSl7XCJcIiE9PWUuc2VhcmNoU2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc2VhcmNoU2Vzc2lvbklkKSxcIlwiIT09ZS5xdWVyeUlkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUucXVlcnlJZCksXCJcIiE9PWUuc2VjdGlvbk5hbWUmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zZWN0aW9uTmFtZSk7Zm9yKGNvbnN0IG4gb2YgZS5pdGVtSWRzKXQudWludDMyKDM0KS5zdHJpbmcobik7cmV0dXJuIHR9LGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2VhcmNoU2Vzc2lvbklkOlwiXCIscXVlcnlJZDpcIlwiLHNlY3Rpb25OYW1lOlwiXCIsaXRlbUlkczpbXX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc2VhcmNoU2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkucXVlcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnNlY3Rpb25OYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuaXRlbUlkcy5wdXNoKG4uc3RyaW5nKCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c2VhcmNoU2Vzc2lvbklkOlwiXCIscXVlcnlJZDpcIlwiLHNlY3Rpb25OYW1lOlwiXCIsaXRlbUlkczpbXX07cmV0dXJuIHQuc2VhcmNoU2Vzc2lvbklkPWUuc2VhcmNoU2Vzc2lvbklkPz9cIlwiLHQucXVlcnlJZD1lLnF1ZXJ5SWQ/P1wiXCIsdC5zZWN0aW9uTmFtZT1lLnNlY3Rpb25OYW1lPz9cIlwiLHQuaXRlbUlkcz1lLml0ZW1JZHM/Lm1hcCgoZT0+ZSkpfHxbXSx0fX0sdC5TZW5kTWVzc2FnZURlY2lzaW9uPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnNoYXJlSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zaGFyZUlkKSxcIlwiIT09ZS5oYXNoZWRQaG9uZU51bWJlciYmdC51aW50MzIoMTgpLnN0cmluZyhlLmhhc2hlZFBob25lTnVtYmVyKSxcIlwiIT09ZS5oYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuaGFzaGVkUGhvbmVOdW1iZXJXaXRob3V0UGx1cyksXCJcIiE9PWUuaGFzaGVkSXBBZGRyZXNzJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuaGFzaGVkSXBBZGRyZXNzKSxcIlwiIT09ZS5waG9uZU51bWJlckNvdW50cnlDb2RlJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUucGhvbmVOdW1iZXJDb3VudHJ5Q29kZSksMCE9PWUuZmVhdHVyZSYmdC51aW50MzIoNDgpLmludDMyKGUuZmVhdHVyZSksMCE9PWUuZGVsaXZlcnlTdHJhdGVneSYmdC51aW50MzIoNTYpLmludDMyKGUuZGVsaXZlcnlTdHJhdGVneSksMCE9PWUucmVjb21tZW5kZWRBY3Rpb24mJnQudWludDMyKDY0KS5pbnQzMihlLnJlY29tbWVuZGVkQWN0aW9uKSwwIT09ZS5yZWplY3RSZWFzb24mJnQudWludDMyKDcyKS5pbnQzMihlLnJlamVjdFJlYXNvbiksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzaGFyZUlkOlwiXCIsaGFzaGVkUGhvbmVOdW1iZXI6XCJcIixoYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzOlwiXCIsaGFzaGVkSXBBZGRyZXNzOlwiXCIscGhvbmVOdW1iZXJDb3VudHJ5Q29kZTpcIlwiLGZlYXR1cmU6MCxkZWxpdmVyeVN0cmF0ZWd5OjAscmVjb21tZW5kZWRBY3Rpb246MCxyZWplY3RSZWFzb246MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc2hhcmVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmhhc2hlZFBob25lTnVtYmVyPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuaGFzaGVkUGhvbmVOdW1iZXJXaXRob3V0UGx1cz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmhhc2hlZElwQWRkcmVzcz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLnBob25lTnVtYmVyQ291bnRyeUNvZGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5mZWF0dXJlPW4uaW50MzIoKTticmVhaztjYXNlIDc6aS5kZWxpdmVyeVN0cmF0ZWd5PW4uaW50MzIoKTticmVhaztjYXNlIDg6aS5yZWNvbW1lbmRlZEFjdGlvbj1uLmludDMyKCk7YnJlYWs7Y2FzZSA5OmkucmVqZWN0UmVhc29uPW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3NoYXJlSWQ6XCJcIixoYXNoZWRQaG9uZU51bWJlcjpcIlwiLGhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM6XCJcIixoYXNoZWRJcEFkZHJlc3M6XCJcIixwaG9uZU51bWJlckNvdW50cnlDb2RlOlwiXCIsZmVhdHVyZTowLGRlbGl2ZXJ5U3RyYXRlZ3k6MCxyZWNvbW1lbmRlZEFjdGlvbjowLHJlamVjdFJlYXNvbjowfTtyZXR1cm4gdC5zaGFyZUlkPWUuc2hhcmVJZD8/XCJcIix0Lmhhc2hlZFBob25lTnVtYmVyPWUuaGFzaGVkUGhvbmVOdW1iZXI/P1wiXCIsdC5oYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzPWUuaGFzaGVkUGhvbmVOdW1iZXJXaXRob3V0UGx1cz8/XCJcIix0Lmhhc2hlZElwQWRkcmVzcz1lLmhhc2hlZElwQWRkcmVzcz8/XCJcIix0LnBob25lTnVtYmVyQ291bnRyeUNvZGU9ZS5waG9uZU51bWJlckNvdW50cnlDb2RlPz9cIlwiLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5kZWxpdmVyeVN0cmF0ZWd5PWUuZGVsaXZlcnlTdHJhdGVneT8/MCx0LnJlY29tbWVuZGVkQWN0aW9uPWUucmVjb21tZW5kZWRBY3Rpb24/PzAsdC5yZWplY3RSZWFzb249ZS5yZWplY3RSZWFzb24/PzAsdH19LHQuU2VydmVyRmVlZFN5bmM9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUudGl2VHJhbnNhY3Rpb25JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnRpdlRyYW5zYWN0aW9uSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17dGl2VHJhbnNhY3Rpb25JZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkudGl2VHJhbnNhY3Rpb25JZD1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt0aXZUcmFuc2FjdGlvbklkOlwiXCJ9O3JldHVybiB0LnRpdlRyYW5zYWN0aW9uSWQ9ZS50aXZUcmFuc2FjdGlvbklkPz9cIlwiLHR9fSx0LlNlcnZlcktpY2tQYXJ0aWNpcGFudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5taXNjaGllZklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUubWlzY2hpZWZJZCksXCJcIiE9PWUuY29ycmVzcG9uZGVudEd1aWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jb3JyZXNwb25kZW50R3VpZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXttaXNjaGllZklkOlwiXCIsY29ycmVzcG9uZGVudEd1aWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubWlzY2hpZWZJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmNvcnJlc3BvbmRlbnRHdWlkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXttaXNjaGllZklkOlwiXCIsY29ycmVzcG9uZGVudEd1aWQ6XCJcIn07cmV0dXJuIHQubWlzY2hpZWZJZD1lLm1pc2NoaWVmSWQ/P1wiXCIsdC5jb3JyZXNwb25kZW50R3VpZD1lLmNvcnJlc3BvbmRlbnRHdWlkPz9cIlwiLHR9fSx0LlNlcnZlck1lc3NhZ2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc2VydmVyTWVzc2FnZUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc2VydmVyTWVzc2FnZUlkKSxcIlwiIT09ZS5tZXNzYWdlVHJhY2tpbmdJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLm1lc3NhZ2VUcmFja2luZ0lkKSwhMD09PWUuaXNHcm91cCYmdC51aW50MzIoMjQpLmJvb2woZS5pc0dyb3VwKSwhMD09PWUuaXNBcnJveW8mJnQudWludDMyKDMyKS5ib29sKGUuaXNBcnJveW8pLFwiXCIhPT1lLnNlbmRlcklkJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuc2VuZGVySWQpLDAhPT1lLnNlcnZlck1lc3NhZ2VUeXBlJiZ0LnVpbnQzMig1NikuaW50MzIoZS5zZXJ2ZXJNZXNzYWdlVHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzZXJ2ZXJNZXNzYWdlSWQ6XCJcIixtZXNzYWdlVHJhY2tpbmdJZDpcIlwiLGlzR3JvdXA6ITEsaXNBcnJveW86ITEsc2VuZGVySWQ6XCJcIixzZXJ2ZXJNZXNzYWdlVHlwZTowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zZXJ2ZXJNZXNzYWdlSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5tZXNzYWdlVHJhY2tpbmdJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmlzR3JvdXA9bi5ib29sKCk7YnJlYWs7Y2FzZSA0OmkuaXNBcnJveW89bi5ib29sKCk7YnJlYWs7Y2FzZSA1Omkuc2VuZGVySWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5zZXJ2ZXJNZXNzYWdlVHlwZT1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXJ2ZXJNZXNzYWdlSWQ6XCJcIixtZXNzYWdlVHJhY2tpbmdJZDpcIlwiLGlzR3JvdXA6ITEsaXNBcnJveW86ITEsc2VuZGVySWQ6XCJcIixzZXJ2ZXJNZXNzYWdlVHlwZTowfTtyZXR1cm4gdC5zZXJ2ZXJNZXNzYWdlSWQ9ZS5zZXJ2ZXJNZXNzYWdlSWQ/P1wiXCIsdC5tZXNzYWdlVHJhY2tpbmdJZD1lLm1lc3NhZ2VUcmFja2luZ0lkPz9cIlwiLHQuaXNHcm91cD1lLmlzR3JvdXA/PyExLHQuaXNBcnJveW89ZS5pc0Fycm95bz8/ITEsdC5zZW5kZXJJZD1lLnNlbmRlcklkPz9cIlwiLHQuc2VydmVyTWVzc2FnZVR5cGU9ZS5zZXJ2ZXJNZXNzYWdlVHlwZT8/MCx0fX0sdC5TZXJ2ZXJSZXF1ZXN0QWxsVXBkYXRlcz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PnQsZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtuLnNraXBUeXBlKDcmZSl9cmV0dXJuIGl9LGZyb21QYXJ0aWFsOmU9Pih7fSl9LHQuU2VydmVyUmVxdWVzdENvZj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PigwIT09ZS5hcHBTdGF0ZSYmdC51aW50MzIoOCkuaW50MzIoZS5hcHBTdGF0ZSksMCE9PWUudHJpZ2dlckV2ZW50VHlwZSYmdC51aW50MzIoMTYpLmludDMyKGUudHJpZ2dlckV2ZW50VHlwZSksMCE9PWUuaW5zdHJ1bWVudGF0aW9uJiZ0LnVpbnQzMigyNCkuaW50MzIoZS5pbnN0cnVtZW50YXRpb24pLFwiXCIhPT1lLnN5bmNUcmlnZ2VyQmxpenphcmRTZXNzaW9uSWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5zeW5jVHJpZ2dlckJsaXp6YXJkU2Vzc2lvbklkKSxcIlwiIT09ZS5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQmJnQudWludDMyKDQyKS5zdHJpbmcoZS5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQpLFwiMFwiIT09ZS5jb2ZTeW5jVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNcyYmdC51aW50MzIoNDgpLnVpbnQ2NChlLmNvZlN5bmNUcmlnZ2VyRGVsYXlGcm9tU3RhcnR1cE1zKSxcIjBcIiE9PWUuY29mRXhlY3V0aW9uVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNcyYmdC51aW50MzIoNTYpLnVpbnQ2NChlLmNvZkV4ZWN1dGlvblRyaWdnZXJEZWxheUZyb21TdGFydHVwTXMpLFwiMFwiIT09ZS5nZXRTeW5jVHJpZ2dlclRpbWVTZWMmJnQudWludDMyKDY0KS51aW50NjQoZS5nZXRTeW5jVHJpZ2dlclRpbWVTZWMpLFwiXCIhPT1lLnB1bHNlQ291bnRyeSYmdC51aW50MzIoNzQpLnN0cmluZyhlLnB1bHNlQ291bnRyeSksXCJcIiE9PWUucHVsc2VDaXR5JiZ0LnVpbnQzMig4Mikuc3RyaW5nKGUucHVsc2VDaXR5KSxcIlwiIT09ZS5wdWxzZVJlZ2lvbiYmdC51aW50MzIoOTApLnN0cmluZyhlLnB1bHNlUmVnaW9uKSxcIlwiIT09ZS5wdWxzZU1ldHJvQ29kZSYmdC51aW50MzIoOTgpLnN0cmluZyhlLnB1bHNlTWV0cm9Db2RlKSxcIlwiIT09ZS5wdWxzZVBvc3RhbENvZGUmJnQudWludDMyKDEwNikuc3RyaW5nKGUucHVsc2VQb3N0YWxDb2RlKSxcIlwiIT09ZS5lZGdlTWV0cm9Db2RlJiZ0LnVpbnQzMigxMTQpLnN0cmluZyhlLmVkZ2VNZXRyb0NvZGUpLFwiXCIhPT1lLmVkZ2VQb3N0YWxDb2RlJiZ0LnVpbnQzMigxMjIpLnN0cmluZyhlLmVkZ2VQb3N0YWxDb2RlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2FwcFN0YXRlOjAsdHJpZ2dlckV2ZW50VHlwZTowLGluc3RydW1lbnRhdGlvbjowLHN5bmNUcmlnZ2VyQmxpenphcmRTZXNzaW9uSWQ6XCJcIixzeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQ6XCJcIixjb2ZTeW5jVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNczpcIjBcIixjb2ZFeGVjdXRpb25UcmlnZ2VyRGVsYXlGcm9tU3RhcnR1cE1zOlwiMFwiLGdldFN5bmNUcmlnZ2VyVGltZVNlYzpcIjBcIixwdWxzZUNvdW50cnk6XCJcIixwdWxzZUNpdHk6XCJcIixwdWxzZVJlZ2lvbjpcIlwiLHB1bHNlTWV0cm9Db2RlOlwiXCIscHVsc2VQb3N0YWxDb2RlOlwiXCIsZWRnZU1ldHJvQ29kZTpcIlwiLGVkZ2VQb3N0YWxDb2RlOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmFwcFN0YXRlPW4uaW50MzIoKTticmVhaztjYXNlIDI6aS50cmlnZ2VyRXZlbnRUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDM6aS5pbnN0cnVtZW50YXRpb249bi5pbnQzMigpO2JyZWFrO2Nhc2UgNDppLnN5bmNUcmlnZ2VyQmxpenphcmRTZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5jb2ZTeW5jVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNcz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNzppLmNvZkV4ZWN1dGlvblRyaWdnZXJEZWxheUZyb21TdGFydHVwTXM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDg6aS5nZXRTeW5jVHJpZ2dlclRpbWVTZWM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6aS5wdWxzZUNvdW50cnk9bi5zdHJpbmcoKTticmVhaztjYXNlIDEwOmkucHVsc2VDaXR5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMTppLnB1bHNlUmVnaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMjppLnB1bHNlTWV0cm9Db2RlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMzppLnB1bHNlUG9zdGFsQ29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTQ6aS5lZGdlTWV0cm9Db2RlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTppLmVkZ2VQb3N0YWxDb2RlPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXthcHBTdGF0ZTowLHRyaWdnZXJFdmVudFR5cGU6MCxpbnN0cnVtZW50YXRpb246MCxzeW5jVHJpZ2dlckJsaXp6YXJkU2Vzc2lvbklkOlwiXCIsc3luY0V4ZWN1dGlvbkJsaXp6YXJkU2Vzc2lvbklkOlwiXCIsY29mU3luY1RyaWdnZXJEZWxheUZyb21TdGFydHVwTXM6XCIwXCIsY29mRXhlY3V0aW9uVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNczpcIjBcIixnZXRTeW5jVHJpZ2dlclRpbWVTZWM6XCIwXCIscHVsc2VDb3VudHJ5OlwiXCIscHVsc2VDaXR5OlwiXCIscHVsc2VSZWdpb246XCJcIixwdWxzZU1ldHJvQ29kZTpcIlwiLHB1bHNlUG9zdGFsQ29kZTpcIlwiLGVkZ2VNZXRyb0NvZGU6XCJcIixlZGdlUG9zdGFsQ29kZTpcIlwifTtyZXR1cm4gdC5hcHBTdGF0ZT1lLmFwcFN0YXRlPz8wLHQudHJpZ2dlckV2ZW50VHlwZT1lLnRyaWdnZXJFdmVudFR5cGU/PzAsdC5pbnN0cnVtZW50YXRpb249ZS5pbnN0cnVtZW50YXRpb24/PzAsdC5zeW5jVHJpZ2dlckJsaXp6YXJkU2Vzc2lvbklkPWUuc3luY1RyaWdnZXJCbGl6emFyZFNlc3Npb25JZD8/XCJcIix0LnN5bmNFeGVjdXRpb25CbGl6emFyZFNlc3Npb25JZD1lLnN5bmNFeGVjdXRpb25CbGl6emFyZFNlc3Npb25JZD8/XCJcIix0LmNvZlN5bmNUcmlnZ2VyRGVsYXlGcm9tU3RhcnR1cE1zPWUuY29mU3luY1RyaWdnZXJEZWxheUZyb21TdGFydHVwTXM/P1wiMFwiLHQuY29mRXhlY3V0aW9uVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNcz1lLmNvZkV4ZWN1dGlvblRyaWdnZXJEZWxheUZyb21TdGFydHVwTXM/P1wiMFwiLHQuZ2V0U3luY1RyaWdnZXJUaW1lU2VjPWUuZ2V0U3luY1RyaWdnZXJUaW1lU2VjPz9cIjBcIix0LnB1bHNlQ291bnRyeT1lLnB1bHNlQ291bnRyeT8/XCJcIix0LnB1bHNlQ2l0eT1lLnB1bHNlQ2l0eT8/XCJcIix0LnB1bHNlUmVnaW9uPWUucHVsc2VSZWdpb24/P1wiXCIsdC5wdWxzZU1ldHJvQ29kZT1lLnB1bHNlTWV0cm9Db2RlPz9cIlwiLHQucHVsc2VQb3N0YWxDb2RlPWUucHVsc2VQb3N0YWxDb2RlPz9cIlwiLHQuZWRnZU1ldHJvQ29kZT1lLmVkZ2VNZXRyb0NvZGU/P1wiXCIsdC5lZGdlUG9zdGFsQ29kZT1lLmVkZ2VQb3N0YWxDb2RlPz9cIlwiLHR9fSx0LlNlcnZlcldhbGxwYXBlclVwZGF0ZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PighMD09PWUuZGlkUmVtb3ZlV2FsbHBhcGVyJiZ0LnVpbnQzMig4KS5ib29sKGUuZGlkUmVtb3ZlV2FsbHBhcGVyKSxcIlwiIT09ZS5jb3JyZXNwb25kZW50R3VpZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmNvcnJlc3BvbmRlbnRHdWlkKSxcIlwiIT09ZS5taXNjaGllZklkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUubWlzY2hpZWZJZCksMCE9PWUuc291cmNlJiZ0LnVpbnQzMig0OCkuaW50MzIoZS5zb3VyY2UpLDAhPT1lLndhbGxwYXBlclNvdXJjZSYmdC51aW50MzIoNTYpLmludDMyKGUud2FsbHBhcGVyU291cmNlKSwhMD09PWUuaXNXYWxscGFwZXJCbHVycmVkJiZ0LnVpbnQzMig2NCkuYm9vbChlLmlzV2FsbHBhcGVyQmx1cnJlZCksXCJcIiE9PWUud2FsbHBhcGVySWRTdHImJnQudWludDMyKDgyKS5zdHJpbmcoZS53YWxscGFwZXJJZFN0ciksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtkaWRSZW1vdmVXYWxscGFwZXI6ITEsY29ycmVzcG9uZGVudEd1aWQ6XCJcIixtaXNjaGllZklkOlwiXCIsc291cmNlOjAsd2FsbHBhcGVyU291cmNlOjAsaXNXYWxscGFwZXJCbHVycmVkOiExLHdhbGxwYXBlcklkU3RyOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmRpZFJlbW92ZVdhbGxwYXBlcj1uLmJvb2woKTticmVhaztjYXNlIDI6aS5jb3JyZXNwb25kZW50R3VpZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLm1pc2NoaWVmSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5zb3VyY2U9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNzppLndhbGxwYXBlclNvdXJjZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA4OmkuaXNXYWxscGFwZXJCbHVycmVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTA6aS53YWxscGFwZXJJZFN0cj1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZGlkUmVtb3ZlV2FsbHBhcGVyOiExLGNvcnJlc3BvbmRlbnRHdWlkOlwiXCIsbWlzY2hpZWZJZDpcIlwiLHNvdXJjZTowLHdhbGxwYXBlclNvdXJjZTowLGlzV2FsbHBhcGVyQmx1cnJlZDohMSx3YWxscGFwZXJJZFN0cjpcIlwifTtyZXR1cm4gdC5kaWRSZW1vdmVXYWxscGFwZXI9ZS5kaWRSZW1vdmVXYWxscGFwZXI/PyExLHQuY29ycmVzcG9uZGVudEd1aWQ9ZS5jb3JyZXNwb25kZW50R3VpZD8/XCJcIix0Lm1pc2NoaWVmSWQ9ZS5taXNjaGllZklkPz9cIlwiLHQuc291cmNlPWUuc291cmNlPz8wLHQud2FsbHBhcGVyU291cmNlPWUud2FsbHBhcGVyU291cmNlPz8wLHQuaXNXYWxscGFwZXJCbHVycmVkPWUuaXNXYWxscGFwZXJCbHVycmVkPz8hMSx0LndhbGxwYXBlcklkU3RyPWUud2FsbHBhcGVySWRTdHI/P1wiXCIsdH19LHQuU2hvcnRsaW5rQmFzZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5kZXZpY2VNb2RlbCYmdC51aW50MzIoMTApLnN0cmluZyhlLmRldmljZU1vZGVsKSxcIjBcIiE9PWUuZXZlbnRUaW1lc3RhbXBTZWMmJnQudWludDMyKDE2KS51aW50NjQoZS5ldmVudFRpbWVzdGFtcFNlYyksXCJcIiE9PWUuc2hhMjU2SXB2NCYmdC51aW50MzIoMjYpLnN0cmluZyhlLnNoYTI1NklwdjQpLFwiXCIhPT1lLmxpbmtJZCYmdC51aW50MzIoMzQpLnN0cmluZyhlLmxpbmtJZCksMCE9PWUubGlua1R5cGUmJnQudWludDMyKDQwKS5pbnQzMihlLmxpbmtUeXBlKSxcIjBcIiE9PWUub3NWZXJzaW9uTWFqb3ImJnQudWludDMyKDQ4KS51aW50NjQoZS5vc1ZlcnNpb25NYWpvciksXCIwXCIhPT1lLm9zVmVyc2lvbk1pbm9yJiZ0LnVpbnQzMig1NikudWludDY0KGUub3NWZXJzaW9uTWlub3IpLFwiMFwiIT09ZS5vc1ZlcnNpb25QYXRjaCYmdC51aW50MzIoNjQpLnVpbnQ2NChlLm9zVmVyc2lvblBhdGNoKSxcIjBcIiE9PWUub3NWZXJzaW9uUGF0Y2hNaW5vciYmdC51aW50MzIoNzIpLnVpbnQ2NChlLm9zVmVyc2lvblBhdGNoTWlub3IpLFwiXCIhPT1lLnBsYXlSZWZlcnJhbCYmdC51aW50MzIoODIpLnN0cmluZyhlLnBsYXlSZWZlcnJhbCksXCJcIiE9PWUucmF3VXJsJiZ0LnVpbnQzMig5MCkuc3RyaW5nKGUucmF3VXJsKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2RldmljZU1vZGVsOlwiXCIsZXZlbnRUaW1lc3RhbXBTZWM6XCIwXCIsc2hhMjU2SXB2NDpcIlwiLGxpbmtJZDpcIlwiLGxpbmtUeXBlOjAsb3NWZXJzaW9uTWFqb3I6XCIwXCIsb3NWZXJzaW9uTWlub3I6XCIwXCIsb3NWZXJzaW9uUGF0Y2g6XCIwXCIsb3NWZXJzaW9uUGF0Y2hNaW5vcjpcIjBcIixwbGF5UmVmZXJyYWw6XCJcIixyYXdVcmw6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuZGV2aWNlTW9kZWw9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5ldmVudFRpbWVzdGFtcFNlYz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMzppLnNoYTI1NklwdjQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5saW5rSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5saW5rVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA2Omkub3NWZXJzaW9uTWFqb3I9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDc6aS5vc1ZlcnNpb25NaW5vcj1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgODppLm9zVmVyc2lvblBhdGNoPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA5Omkub3NWZXJzaW9uUGF0Y2hNaW5vcj1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMTA6aS5wbGF5UmVmZXJyYWw9bi5zdHJpbmcoKTticmVhaztjYXNlIDExOmkucmF3VXJsPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtkZXZpY2VNb2RlbDpcIlwiLGV2ZW50VGltZXN0YW1wU2VjOlwiMFwiLHNoYTI1NklwdjQ6XCJcIixsaW5rSWQ6XCJcIixsaW5rVHlwZTowLG9zVmVyc2lvbk1ham9yOlwiMFwiLG9zVmVyc2lvbk1pbm9yOlwiMFwiLG9zVmVyc2lvblBhdGNoOlwiMFwiLG9zVmVyc2lvblBhdGNoTWlub3I6XCIwXCIscGxheVJlZmVycmFsOlwiXCIscmF3VXJsOlwiXCJ9O3JldHVybiB0LmRldmljZU1vZGVsPWUuZGV2aWNlTW9kZWw/P1wiXCIsdC5ldmVudFRpbWVzdGFtcFNlYz1lLmV2ZW50VGltZXN0YW1wU2VjPz9cIjBcIix0LnNoYTI1NklwdjQ9ZS5zaGEyNTZJcHY0Pz9cIlwiLHQubGlua0lkPWUubGlua0lkPz9cIlwiLHQubGlua1R5cGU9ZS5saW5rVHlwZT8/MCx0Lm9zVmVyc2lvbk1ham9yPWUub3NWZXJzaW9uTWFqb3I/P1wiMFwiLHQub3NWZXJzaW9uTWlub3I9ZS5vc1ZlcnNpb25NaW5vcj8/XCIwXCIsdC5vc1ZlcnNpb25QYXRjaD1lLm9zVmVyc2lvblBhdGNoPz9cIjBcIix0Lm9zVmVyc2lvblBhdGNoTWlub3I9ZS5vc1ZlcnNpb25QYXRjaE1pbm9yPz9cIjBcIix0LnBsYXlSZWZlcnJhbD1lLnBsYXlSZWZlcnJhbD8/XCJcIix0LnJhd1VybD1lLnJhd1VybD8/XCJcIix0fX0sdC5Ta2F0ZUV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLmRhaWx5U2Vzc2lvbkJ1Y2tldCYmdC51aW50MzIoOCkuaW50MzIoZS5kYWlseVNlc3Npb25CdWNrZXQpLCEwPT09ZS5pc0ZpcnN0V2l0aGluTW9udGgmJnQudWludDMyKDE2KS5ib29sKGUuaXNGaXJzdFdpdGhpbk1vbnRoKSwwIT09ZS5sb2dpblJvdXRlJiZ0LnVpbnQzMigyNCkuaW50MzIoZS5sb2dpblJvdXRlKSwwIT09ZS5zYW1wbGVSYXRlJiZ0LnVpbnQzMigzMykuZG91YmxlKGUuc2FtcGxlUmF0ZSksXCJcIiE9PWUua2l0VmFyaWFudHNTdHJpbmdMaXN0JiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUua2l0VmFyaWFudHNTdHJpbmdMaXN0KSxcIjBcIiE9PWUuZGF5JiZ0LnVpbnQzMig0OCkudWludDY0KGUuZGF5KSxcIjBcIiE9PWUubW9udGgmJnQudWludDMyKDU2KS51aW50NjQoZS5tb250aCksXCIwXCIhPT1lLnllYXImJnQudWludDMyKDY0KS51aW50NjQoZS55ZWFyKSxcIlwiIT09ZS5vYXV0aENsaWVudElkJiZ0LnVpbnQzMig3NCkuc3RyaW5nKGUub2F1dGhDbGllbnRJZCksXCJcIiE9PWUua2l0QXBwSWQmJnQudWludDMyKDgyKS5zdHJpbmcoZS5raXRBcHBJZCksMCE9PWUuc25hcEtpdEluaXRUeXBlJiZ0LnVpbnQzMig4OCkuaW50MzIoZS5zbmFwS2l0SW5pdFR5cGUpLDAhPT1lLmtpdFBsdWdpblR5cGUmJnQudWludDMyKDk2KS5pbnQzMihlLmtpdFBsdWdpblR5cGUpLFwiXCIhPT1lLmNvcmVWZXJzaW9uJiZ0LnVpbnQzMigxMDYpLnN0cmluZyhlLmNvcmVWZXJzaW9uKSxcIlwiIT09ZS5raXRWZXJzaW9uU3RyaW5nTGlzdCYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5raXRWZXJzaW9uU3RyaW5nTGlzdCksITA9PT1lLmlzRnJvbVJlYWN0TmF0aXZlUGx1Z2luJiZ0LnVpbnQzMigxMjApLmJvb2woZS5pc0Zyb21SZWFjdE5hdGl2ZVBsdWdpbiksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtkYWlseVNlc3Npb25CdWNrZXQ6MCxpc0ZpcnN0V2l0aGluTW9udGg6ITEsbG9naW5Sb3V0ZTowLHNhbXBsZVJhdGU6MCxraXRWYXJpYW50c1N0cmluZ0xpc3Q6XCJcIixkYXk6XCIwXCIsbW9udGg6XCIwXCIseWVhcjpcIjBcIixvYXV0aENsaWVudElkOlwiXCIsa2l0QXBwSWQ6XCJcIixzbmFwS2l0SW5pdFR5cGU6MCxraXRQbHVnaW5UeXBlOjAsY29yZVZlcnNpb246XCJcIixraXRWZXJzaW9uU3RyaW5nTGlzdDpcIlwiLGlzRnJvbVJlYWN0TmF0aXZlUGx1Z2luOiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5kYWlseVNlc3Npb25CdWNrZXQ9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLmlzRmlyc3RXaXRoaW5Nb250aD1uLmJvb2woKTticmVhaztjYXNlIDM6aS5sb2dpblJvdXRlPW4uaW50MzIoKTticmVhaztjYXNlIDQ6aS5zYW1wbGVSYXRlPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA1Omkua2l0VmFyaWFudHNTdHJpbmdMaXN0PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkuZGF5PXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA3OmkubW9udGg9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDg6aS55ZWFyPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA5Omkub2F1dGhDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTA6aS5raXRBcHBJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6aS5zbmFwS2l0SW5pdFR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTI6aS5raXRQbHVnaW5UeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDEzOmkuY29yZVZlcnNpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDE0Omkua2l0VmVyc2lvblN0cmluZ0xpc3Q9bi5zdHJpbmcoKTticmVhaztjYXNlIDE1OmkuaXNGcm9tUmVhY3ROYXRpdmVQbHVnaW49bi5ib29sKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtkYWlseVNlc3Npb25CdWNrZXQ6MCxpc0ZpcnN0V2l0aGluTW9udGg6ITEsbG9naW5Sb3V0ZTowLHNhbXBsZVJhdGU6MCxraXRWYXJpYW50c1N0cmluZ0xpc3Q6XCJcIixkYXk6XCIwXCIsbW9udGg6XCIwXCIseWVhcjpcIjBcIixvYXV0aENsaWVudElkOlwiXCIsa2l0QXBwSWQ6XCJcIixzbmFwS2l0SW5pdFR5cGU6MCxraXRQbHVnaW5UeXBlOjAsY29yZVZlcnNpb246XCJcIixraXRWZXJzaW9uU3RyaW5nTGlzdDpcIlwiLGlzRnJvbVJlYWN0TmF0aXZlUGx1Z2luOiExfTtyZXR1cm4gdC5kYWlseVNlc3Npb25CdWNrZXQ9ZS5kYWlseVNlc3Npb25CdWNrZXQ/PzAsdC5pc0ZpcnN0V2l0aGluTW9udGg9ZS5pc0ZpcnN0V2l0aGluTW9udGg/PyExLHQubG9naW5Sb3V0ZT1lLmxvZ2luUm91dGU/PzAsdC5zYW1wbGVSYXRlPWUuc2FtcGxlUmF0ZT8/MCx0LmtpdFZhcmlhbnRzU3RyaW5nTGlzdD1lLmtpdFZhcmlhbnRzU3RyaW5nTGlzdD8/XCJcIix0LmRheT1lLmRheT8/XCIwXCIsdC5tb250aD1lLm1vbnRoPz9cIjBcIix0LnllYXI9ZS55ZWFyPz9cIjBcIix0Lm9hdXRoQ2xpZW50SWQ9ZS5vYXV0aENsaWVudElkPz9cIlwiLHQua2l0QXBwSWQ9ZS5raXRBcHBJZD8/XCJcIix0LnNuYXBLaXRJbml0VHlwZT1lLnNuYXBLaXRJbml0VHlwZT8/MCx0LmtpdFBsdWdpblR5cGU9ZS5raXRQbHVnaW5UeXBlPz8wLHQuY29yZVZlcnNpb249ZS5jb3JlVmVyc2lvbj8/XCJcIix0LmtpdFZlcnNpb25TdHJpbmdMaXN0PWUua2l0VmVyc2lvblN0cmluZ0xpc3Q/P1wiXCIsdC5pc0Zyb21SZWFjdE5hdGl2ZVBsdWdpbj1lLmlzRnJvbVJlYWN0TmF0aXZlUGx1Z2luPz8hMSx0fX0sdC5TbXNTdWJzY3JpcHRpb25QcmVmZXJlbmNlQ2hhbmdlZEV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudElkKSxcIlwiIT09ZS5zbXNTdWJzY3JpcHRpb25DaGFuZ2VDYW1wYWlnbk5hbWUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5zbXNTdWJzY3JpcHRpb25DaGFuZ2VDYW1wYWlnbk5hbWUpLDAhPT1lLnNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50VHMmJnQudWludDMyKDI1KS5kb3VibGUoZS5zbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudFRzKSwwIT09ZS5zbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudFR5cGUmJnQudWludDMyKDMyKS5pbnQzMihlLnNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50VHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudElkOlwiXCIsc21zU3Vic2NyaXB0aW9uQ2hhbmdlQ2FtcGFpZ25OYW1lOlwiXCIsc21zU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnRUczowLHNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50VHlwZTowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuc21zU3Vic2NyaXB0aW9uQ2hhbmdlQ2FtcGFpZ25OYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc21zU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnRUcz1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNDppLnNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50VHlwZT1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudElkOlwiXCIsc21zU3Vic2NyaXB0aW9uQ2hhbmdlQ2FtcGFpZ25OYW1lOlwiXCIsc21zU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnRUczowLHNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50VHlwZTowfTtyZXR1cm4gdC5zbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudElkPWUuc21zU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnRJZD8/XCJcIix0LnNtc1N1YnNjcmlwdGlvbkNoYW5nZUNhbXBhaWduTmFtZT1lLnNtc1N1YnNjcmlwdGlvbkNoYW5nZUNhbXBhaWduTmFtZT8/XCJcIix0LnNtc1N1YnNjcmlwdGlvbkNoYW5nZUV2ZW50VHM9ZS5zbXNTdWJzY3JpcHRpb25DaGFuZ2VFdmVudFRzPz8wLHQuc21zU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnRUeXBlPWUuc21zU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnRUeXBlPz8wLHR9fSx0LlNuYXBLaXREb2NzUGFnZUhlbHBmdWw9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUucGFnZUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUucGFnZUlkKSwhMD09PWUuaXNIZWxwZnVsJiZ0LnVpbnQzMigxNikuYm9vbChlLmlzSGVscGZ1bCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtwYWdlSWQ6XCJcIixpc0hlbHBmdWw6ITF9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnBhZ2VJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmlzSGVscGZ1bD1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3BhZ2VJZDpcIlwiLGlzSGVscGZ1bDohMX07cmV0dXJuIHQucGFnZUlkPWUucGFnZUlkPz9cIlwiLHQuaXNIZWxwZnVsPWUuaXNIZWxwZnVsPz8hMSx0fX0sdC5TbmFwU2Vzc2lvblNlcnZlckV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnNlc3Npb25JZCksXCJcIiE9PWUuc2Vzc2lvbkV2ZW50TmFtZSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnNlc3Npb25FdmVudE5hbWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvbklkOlwiXCIsc2Vzc2lvbkV2ZW50TmFtZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5zZXNzaW9uRXZlbnROYW1lPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXNzaW9uSWQ6XCJcIixzZXNzaW9uRXZlbnROYW1lOlwiXCJ9O3JldHVybiB0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0LnNlc3Npb25FdmVudE5hbWU9ZS5zZXNzaW9uRXZlbnROYW1lPz9cIlwiLHR9fSx0LlNuYXBjYW1lcmFFdmVudEJhc2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuYXBwU2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuYXBwU2Vzc2lvbklkKSxcIlwiIT09ZS5zdHJlYW1TZXNzaW9uSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5zdHJlYW1TZXNzaW9uSWQpLFwiXCIhPT1lLmluc3RhbGxhdGlvbklkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuaW5zdGFsbGF0aW9uSWQpLDAhPT1lLmNsaWVudFRzJiZ0LnVpbnQzMigzMykuZG91YmxlKGUuY2xpZW50VHMpLFwiXCIhPT1lLmxlbnNJZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmxlbnNJZCksITA9PT1lLndpdGhTdHJlYW1Db25zdW1lZCYmdC51aW50MzIoNDgpLmJvb2woZS53aXRoU3RyZWFtQ29uc3VtZWQpLFwiXCIhPT1lLnN0cmVhbUNvbnN1bWVyTmFtZSYmdC51aW50MzIoNTgpLnN0cmluZyhlLnN0cmVhbUNvbnN1bWVyTmFtZSksMCE9PWUudXNlVGltZSYmdC51aW50MzIoNzMpLmRvdWJsZShlLnVzZVRpbWUpLFwiXCIhPT1lLmdwdUZhbWlseSYmdC51aW50MzIoODIpLnN0cmluZyhlLmdwdUZhbWlseSksXCJcIiE9PWUuZ3B1VmVuZG9yJiZ0LnVpbnQzMig5MCkuc3RyaW5nKGUuZ3B1VmVuZG9yKSxcIlwiIT09ZS5ncHVEcml2ZXJWZXJzaW9uJiZ0LnVpbnQzMig5OCkuc3RyaW5nKGUuZ3B1RHJpdmVyVmVyc2lvbiksXCJcIiE9PWUuZ3B1T3BlbmdsVmVyc2lvbiYmdC51aW50MzIoMTA2KS5zdHJpbmcoZS5ncHVPcGVuZ2xWZXJzaW9uKSxcIlwiIT09ZS5jcHVOYW1lJiZ0LnVpbnQzMigxMTQpLnN0cmluZyhlLmNwdU5hbWUpLFwiXCIhPT1lLndlYmNhbU5hbWUmJnQudWludDMyKDEyMikuc3RyaW5nKGUud2ViY2FtTmFtZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXthcHBTZXNzaW9uSWQ6XCJcIixzdHJlYW1TZXNzaW9uSWQ6XCJcIixpbnN0YWxsYXRpb25JZDpcIlwiLGNsaWVudFRzOjAsbGVuc0lkOlwiXCIsd2l0aFN0cmVhbUNvbnN1bWVkOiExLHN0cmVhbUNvbnN1bWVyTmFtZTpcIlwiLHVzZVRpbWU6MCxncHVGYW1pbHk6XCJcIixncHVWZW5kb3I6XCJcIixncHVEcml2ZXJWZXJzaW9uOlwiXCIsZ3B1T3BlbmdsVmVyc2lvbjpcIlwiLGNwdU5hbWU6XCJcIix3ZWJjYW1OYW1lOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmFwcFNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnN0cmVhbVNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmluc3RhbGxhdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuY2xpZW50VHM9bi5kb3VibGUoKTticmVhaztjYXNlIDU6aS5sZW5zSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS53aXRoU3RyZWFtQ29uc3VtZWQ9bi5ib29sKCk7YnJlYWs7Y2FzZSA3Omkuc3RyZWFtQ29uc3VtZXJOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmkudXNlVGltZT1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTA6aS5ncHVGYW1pbHk9bi5zdHJpbmcoKTticmVhaztjYXNlIDExOmkuZ3B1VmVuZG9yPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMjppLmdwdURyaXZlclZlcnNpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDEzOmkuZ3B1T3BlbmdsVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTQ6aS5jcHVOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNTppLndlYmNhbU5hbWU9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2FwcFNlc3Npb25JZDpcIlwiLHN0cmVhbVNlc3Npb25JZDpcIlwiLGluc3RhbGxhdGlvbklkOlwiXCIsY2xpZW50VHM6MCxsZW5zSWQ6XCJcIix3aXRoU3RyZWFtQ29uc3VtZWQ6ITEsc3RyZWFtQ29uc3VtZXJOYW1lOlwiXCIsdXNlVGltZTowLGdwdUZhbWlseTpcIlwiLGdwdVZlbmRvcjpcIlwiLGdwdURyaXZlclZlcnNpb246XCJcIixncHVPcGVuZ2xWZXJzaW9uOlwiXCIsY3B1TmFtZTpcIlwiLHdlYmNhbU5hbWU6XCJcIn07cmV0dXJuIHQuYXBwU2Vzc2lvbklkPWUuYXBwU2Vzc2lvbklkPz9cIlwiLHQuc3RyZWFtU2Vzc2lvbklkPWUuc3RyZWFtU2Vzc2lvbklkPz9cIlwiLHQuaW5zdGFsbGF0aW9uSWQ9ZS5pbnN0YWxsYXRpb25JZD8/XCJcIix0LmNsaWVudFRzPWUuY2xpZW50VHM/PzAsdC5sZW5zSWQ9ZS5sZW5zSWQ/P1wiXCIsdC53aXRoU3RyZWFtQ29uc3VtZWQ9ZS53aXRoU3RyZWFtQ29uc3VtZWQ/PyExLHQuc3RyZWFtQ29uc3VtZXJOYW1lPWUuc3RyZWFtQ29uc3VtZXJOYW1lPz9cIlwiLHQudXNlVGltZT1lLnVzZVRpbWU/PzAsdC5ncHVGYW1pbHk9ZS5ncHVGYW1pbHk/P1wiXCIsdC5ncHVWZW5kb3I9ZS5ncHVWZW5kb3I/P1wiXCIsdC5ncHVEcml2ZXJWZXJzaW9uPWUuZ3B1RHJpdmVyVmVyc2lvbj8/XCJcIix0LmdwdU9wZW5nbFZlcnNpb249ZS5ncHVPcGVuZ2xWZXJzaW9uPz9cIlwiLHQuY3B1TmFtZT1lLmNwdU5hbWU/P1wiXCIsdC53ZWJjYW1OYW1lPWUud2ViY2FtTmFtZT8/XCJcIix0fX0sdC5TbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zY2FuU2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc2NhblNlc3Npb25JZCksXCJcIiE9PWUuc2NhblF1ZXJ5SWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5zY2FuUXVlcnlJZCksXCJcIiE9PWUuc25hcGNvZGVTZXNzaW9uSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zbmFwY29kZVNlc3Npb25JZCksXCJcIiE9PWUuZGVjb2RlZFNuYXBjb2RlSWQmJnQudWludDMyKDM0KS5zdHJpbmcoZS5kZWNvZGVkU25hcGNvZGVJZCksXCJcIiE9PWUuc291cmNlJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuc291cmNlKSxcIjBcIiE9PWUudGltZXN0YW1wTXMmJnQudWludDMyKDQ4KS51aW50NjQoZS50aW1lc3RhbXBNcyksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzY2FuU2Vzc2lvbklkOlwiXCIsc2NhblF1ZXJ5SWQ6XCJcIixzbmFwY29kZVNlc3Npb25JZDpcIlwiLGRlY29kZWRTbmFwY29kZUlkOlwiXCIsc291cmNlOlwiXCIsdGltZXN0YW1wTXM6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNjYW5TZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5zY2FuUXVlcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnNuYXBjb2RlU2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuZGVjb2RlZFNuYXBjb2RlSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5zb3VyY2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS50aW1lc3RhbXBNcz1wKG4udWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c2NhblNlc3Npb25JZDpcIlwiLHNjYW5RdWVyeUlkOlwiXCIsc25hcGNvZGVTZXNzaW9uSWQ6XCJcIixkZWNvZGVkU25hcGNvZGVJZDpcIlwiLHNvdXJjZTpcIlwiLHRpbWVzdGFtcE1zOlwiMFwifTtyZXR1cm4gdC5zY2FuU2Vzc2lvbklkPWUuc2NhblNlc3Npb25JZD8/XCJcIix0LnNjYW5RdWVyeUlkPWUuc2NhblF1ZXJ5SWQ/P1wiXCIsdC5zbmFwY29kZVNlc3Npb25JZD1lLnNuYXBjb2RlU2Vzc2lvbklkPz9cIlwiLHQuZGVjb2RlZFNuYXBjb2RlSWQ9ZS5kZWNvZGVkU25hcGNvZGVJZD8/XCJcIix0LnNvdXJjZT1lLnNvdXJjZT8/XCJcIix0LnRpbWVzdGFtcE1zPWUudGltZXN0YW1wTXM/P1wiMFwiLHR9fSx0LlNvY2lhbFNtc0FjdGlvbj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIjBcIiE9PWUucmVzcG9uc2VDb2RlJiZ0LnVpbnQzMig4KS51aW50NjQoZS5yZXNwb25zZUNvZGUpLDAhPT1lLmVycm9yVHlwZSYmdC51aW50MzIoMTYpLmludDMyKGUuZXJyb3JUeXBlKSwwIT09ZS5mZWF0dXJlJiZ0LnVpbnQzMigyNCkuaW50MzIoZS5mZWF0dXJlKSxcIlwiIT09ZS5jb3JyZWxhdGlvbklkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuY29ycmVsYXRpb25JZCksXCJcIiE9PWUuc2hhcmVJZCYmdC51aW50MzIoNDIpLnN0cmluZyhlLnNoYXJlSWQpLFwiXCIhPT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGUmJnQudWludDMyKDUwKS5zdHJpbmcoZS5waG9uZU51bWJlckNvdW50cnlDb2RlKSxcIlwiIT09ZS5zbXNDb3B5TGFuZ3VhZ2UmJnQudWludDMyKDU4KS5zdHJpbmcoZS5zbXNDb3B5TGFuZ3VhZ2UpLFwiXCIhPT1lLnRvVXNlckd1aWQmJnQudWludDMyKDY2KS5zdHJpbmcoZS50b1VzZXJHdWlkKSxcIlwiIT09ZS5tZXNzYWdlSWQmJnQudWludDMyKDgyKS5zdHJpbmcoZS5tZXNzYWdlSWQpLFwiXCIhPT1lLmRlZXBsaW5rVXJsJiZ0LnVpbnQzMig5MCkuc3RyaW5nKGUuZGVlcGxpbmtVcmwpLFwiXCIhPT1lLmRlZXBsaW5rU291cmNlJiZ0LnVpbnQzMig5OCkuc3RyaW5nKGUuZGVlcGxpbmtTb3VyY2UpLFwiXCIhPT1lLmRlZXBsaW5rSWQmJnQudWludDMyKDEwNikuc3RyaW5nKGUuZGVlcGxpbmtJZCksXCJcIiE9PWUuc2hvcnRsaW5rVXJsJiZ0LnVpbnQzMigxMTQpLnN0cmluZyhlLnNob3J0bGlua1VybCksXCJcIiE9PWUuaGFzaGVkUGhvbmVOdW1iZXImJnQudWludDMyKDEzMCkuc3RyaW5nKGUuaGFzaGVkUGhvbmVOdW1iZXIpLFwiXCIhPT1lLmhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXMmJnQudWludDMyKDE0Nikuc3RyaW5nKGUuaGFzaGVkUGhvbmVOdW1iZXJXaXRob3V0UGx1cyksMCE9PWUuc29jaWFsQWN0aW9uJiZ0LnVpbnQzMigxNTIpLmludDMyKGUuc29jaWFsQWN0aW9uKSwwIT09ZS5kZWxpdmVyeVN0YXR1cyYmdC51aW50MzIoMTY4KS5pbnQzMihlLmRlbGl2ZXJ5U3RhdHVzKSxcIlwiIT09ZS5tZXNzYWdlU2VnbWVudHMmJnQudWludDMyKDE4Nikuc3RyaW5nKGUubWVzc2FnZVNlZ21lbnRzKSxcIlwiIT09ZS5oYXNoZWRJUEFkZHJlc3MmJnQudWludDMyKDIwMikuc3RyaW5nKGUuaGFzaGVkSVBBZGRyZXNzKSxcIlwiIT09ZS5jbGllbnRJZCYmdC51aW50MzIoMjEwKS5zdHJpbmcoZS5jbGllbnRJZCksXCJcIiE9PWUuZGVzdGluYXRpb24mJnQudWludDMyKDIyNikuc3RyaW5nKGUuZGVzdGluYXRpb24pLFwiXCIhPT1lLnVuc3Vic2NyaWJlTGlua0lkJiZ0LnVpbnQzMigyNDIpLnN0cmluZyhlLnVuc3Vic2NyaWJlTGlua0lkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3Jlc3BvbnNlQ29kZTpcIjBcIixlcnJvclR5cGU6MCxmZWF0dXJlOjAsY29ycmVsYXRpb25JZDpcIlwiLHNoYXJlSWQ6XCJcIixwaG9uZU51bWJlckNvdW50cnlDb2RlOlwiXCIsc21zQ29weUxhbmd1YWdlOlwiXCIsdG9Vc2VyR3VpZDpcIlwiLG1lc3NhZ2VJZDpcIlwiLGRlZXBsaW5rVXJsOlwiXCIsZGVlcGxpbmtTb3VyY2U6XCJcIixkZWVwbGlua0lkOlwiXCIsc2hvcnRsaW5rVXJsOlwiXCIsaGFzaGVkUGhvbmVOdW1iZXI6XCJcIixoYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzOlwiXCIsc29jaWFsQWN0aW9uOjAsZGVsaXZlcnlTdGF0dXM6MCxtZXNzYWdlU2VnbWVudHM6XCJcIixoYXNoZWRJUEFkZHJlc3M6XCJcIixjbGllbnRJZDpcIlwiLGRlc3RpbmF0aW9uOlwiXCIsdW5zdWJzY3JpYmVMaW5rSWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkucmVzcG9uc2VDb2RlPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAyOmkuZXJyb3JUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDM6aS5mZWF0dXJlPW4uaW50MzIoKTticmVhaztjYXNlIDQ6aS5jb3JyZWxhdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1Omkuc2hhcmVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLnBob25lTnVtYmVyQ291bnRyeUNvZGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDc6aS5zbXNDb3B5TGFuZ3VhZ2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDg6aS50b1VzZXJHdWlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDppLm1lc3NhZ2VJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6aS5kZWVwbGlua1VybD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS5kZWVwbGlua1NvdXJjZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTM6aS5kZWVwbGlua0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLnNob3J0bGlua1VybD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTY6aS5oYXNoZWRQaG9uZU51bWJlcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTg6aS5oYXNoZWRQaG9uZU51bWJlcldpdGhvdXRQbHVzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxOTppLnNvY2lhbEFjdGlvbj1uLmludDMyKCk7YnJlYWs7Y2FzZSAyMTppLmRlbGl2ZXJ5U3RhdHVzPW4uaW50MzIoKTticmVhaztjYXNlIDIzOmkubWVzc2FnZVNlZ21lbnRzPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyNTppLmhhc2hlZElQQWRkcmVzcz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjY6aS5jbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjg6aS5kZXN0aW5hdGlvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzA6aS51bnN1YnNjcmliZUxpbmtJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17cmVzcG9uc2VDb2RlOlwiMFwiLGVycm9yVHlwZTowLGZlYXR1cmU6MCxjb3JyZWxhdGlvbklkOlwiXCIsc2hhcmVJZDpcIlwiLHBob25lTnVtYmVyQ291bnRyeUNvZGU6XCJcIixzbXNDb3B5TGFuZ3VhZ2U6XCJcIix0b1VzZXJHdWlkOlwiXCIsbWVzc2FnZUlkOlwiXCIsZGVlcGxpbmtVcmw6XCJcIixkZWVwbGlua1NvdXJjZTpcIlwiLGRlZXBsaW5rSWQ6XCJcIixzaG9ydGxpbmtVcmw6XCJcIixoYXNoZWRQaG9uZU51bWJlcjpcIlwiLGhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM6XCJcIixzb2NpYWxBY3Rpb246MCxkZWxpdmVyeVN0YXR1czowLG1lc3NhZ2VTZWdtZW50czpcIlwiLGhhc2hlZElQQWRkcmVzczpcIlwiLGNsaWVudElkOlwiXCIsZGVzdGluYXRpb246XCJcIix1bnN1YnNjcmliZUxpbmtJZDpcIlwifTtyZXR1cm4gdC5yZXNwb25zZUNvZGU9ZS5yZXNwb25zZUNvZGU/P1wiMFwiLHQuZXJyb3JUeXBlPWUuZXJyb3JUeXBlPz8wLHQuZmVhdHVyZT1lLmZlYXR1cmU/PzAsdC5jb3JyZWxhdGlvbklkPWUuY29ycmVsYXRpb25JZD8/XCJcIix0LnNoYXJlSWQ9ZS5zaGFyZUlkPz9cIlwiLHQucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT1lLnBob25lTnVtYmVyQ291bnRyeUNvZGU/P1wiXCIsdC5zbXNDb3B5TGFuZ3VhZ2U9ZS5zbXNDb3B5TGFuZ3VhZ2U/P1wiXCIsdC50b1VzZXJHdWlkPWUudG9Vc2VyR3VpZD8/XCJcIix0Lm1lc3NhZ2VJZD1lLm1lc3NhZ2VJZD8/XCJcIix0LmRlZXBsaW5rVXJsPWUuZGVlcGxpbmtVcmw/P1wiXCIsdC5kZWVwbGlua1NvdXJjZT1lLmRlZXBsaW5rU291cmNlPz9cIlwiLHQuZGVlcGxpbmtJZD1lLmRlZXBsaW5rSWQ/P1wiXCIsdC5zaG9ydGxpbmtVcmw9ZS5zaG9ydGxpbmtVcmw/P1wiXCIsdC5oYXNoZWRQaG9uZU51bWJlcj1lLmhhc2hlZFBob25lTnVtYmVyPz9cIlwiLHQuaGFzaGVkUGhvbmVOdW1iZXJXaXRob3V0UGx1cz1lLmhhc2hlZFBob25lTnVtYmVyV2l0aG91dFBsdXM/P1wiXCIsdC5zb2NpYWxBY3Rpb249ZS5zb2NpYWxBY3Rpb24/PzAsdC5kZWxpdmVyeVN0YXR1cz1lLmRlbGl2ZXJ5U3RhdHVzPz8wLHQubWVzc2FnZVNlZ21lbnRzPWUubWVzc2FnZVNlZ21lbnRzPz9cIlwiLHQuaGFzaGVkSVBBZGRyZXNzPWUuaGFzaGVkSVBBZGRyZXNzPz9cIlwiLHQuY2xpZW50SWQ9ZS5jbGllbnRJZD8/XCJcIix0LmRlc3RpbmF0aW9uPWUuZGVzdGluYXRpb24/P1wiXCIsdC51bnN1YnNjcmliZUxpbmtJZD1lLnVuc3Vic2NyaWJlTGlua0lkPz9cIlwiLHR9fSx0LlNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuZGV2aWNlSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5kZXZpY2VJZCksXCJcIiE9PWUuZmlybXdhcmVWZXJzaW9uJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZmlybXdhcmVWZXJzaW9uKSxcIlwiIT09ZS5oYXJkd2FyZVZlcnNpb24mJnQudWludDMyKDI2KS5zdHJpbmcoZS5oYXJkd2FyZVZlcnNpb24pLDAhPT1lLmZyYW1lQ29sb3ImJnQudWludDMyKDMyKS5pbnQzMihlLmZyYW1lQ29sb3IpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZGV2aWNlSWQ6XCJcIixmaXJtd2FyZVZlcnNpb246XCJcIixoYXJkd2FyZVZlcnNpb246XCJcIixmcmFtZUNvbG9yOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmRldmljZUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZmlybXdhcmVWZXJzaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuaGFyZHdhcmVWZXJzaW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuZnJhbWVDb2xvcj1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtkZXZpY2VJZDpcIlwiLGZpcm13YXJlVmVyc2lvbjpcIlwiLGhhcmR3YXJlVmVyc2lvbjpcIlwiLGZyYW1lQ29sb3I6MH07cmV0dXJuIHQuZGV2aWNlSWQ9ZS5kZXZpY2VJZD8/XCJcIix0LmZpcm13YXJlVmVyc2lvbj1lLmZpcm13YXJlVmVyc2lvbj8/XCJcIix0LmhhcmR3YXJlVmVyc2lvbj1lLmhhcmR3YXJlVmVyc2lvbj8/XCJcIix0LmZyYW1lQ29sb3I9ZS5mcmFtZUNvbG9yPz8wLHR9fSx0LlN0b3J5Q3JlYXRlTW9iU3Rvcnk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubW9iU3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLm1vYlN0b3J5SWQpLFwiXCIhPT1lLmRpc3BsYXlOYW1lJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuZGlzcGxheU5hbWUpLFwiXCIhPT1lLm1vYlN0b3J5VHlwZSYmdC51aW50MzIoMjYpLnN0cmluZyhlLm1vYlN0b3J5VHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXttb2JTdG9yeUlkOlwiXCIsZGlzcGxheU5hbWU6XCJcIixtb2JTdG9yeVR5cGU6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubW9iU3RvcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmRpc3BsYXlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkubW9iU3RvcnlUeXBlPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXttb2JTdG9yeUlkOlwiXCIsZGlzcGxheU5hbWU6XCJcIixtb2JTdG9yeVR5cGU6XCJcIn07cmV0dXJuIHQubW9iU3RvcnlJZD1lLm1vYlN0b3J5SWQ/P1wiXCIsdC5kaXNwbGF5TmFtZT1lLmRpc3BsYXlOYW1lPz9cIlwiLHQubW9iU3RvcnlUeXBlPWUubW9iU3RvcnlUeXBlPz9cIlwiLHR9fSx0LlN0b3J5RGVsZXRlTW9iU3Rvcnk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubW9iU3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLm1vYlN0b3J5SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bW9iU3RvcnlJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkubW9iU3RvcnlJZD1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXttb2JTdG9yeUlkOlwiXCJ9O3JldHVybiB0Lm1vYlN0b3J5SWQ9ZS5tb2JTdG9yeUlkPz9cIlwiLHR9fSx0LlN0b3J5RGVsZXRlU3Rvcnk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnN0b3J5SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3RvcnlJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkuc3RvcnlJZD1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzdG9yeUlkOlwiXCJ9O3JldHVybiB0LnN0b3J5SWQ9ZS5zdG9yeUlkPz9cIlwiLHR9fSx0LlN0b3J5RGVsZXRlU3RvcnlVcGRhdGVQcm9maWxlRmVlZD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdG9yeUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3RvcnlJZCksXCJcIiE9PWUudXBkYXRlUmVzdWx0JiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUudXBkYXRlUmVzdWx0KSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0b3J5SWQ6XCJcIix1cGRhdGVSZXN1bHQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc3RvcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnVwZGF0ZVJlc3VsdD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3RvcnlJZDpcIlwiLHVwZGF0ZVJlc3VsdDpcIlwifTtyZXR1cm4gdC5zdG9yeUlkPWUuc3RvcnlJZD8/XCJcIix0LnVwZGF0ZVJlc3VsdD1lLnVwZGF0ZVJlc3VsdD8/XCJcIix0fX0sdC5TdG9yeUVkaXRNb2JTdG9yeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5tb2JTdG9yeUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUubW9iU3RvcnlJZCksXCJcIiE9PWUuZGlzcGxheU5hbWUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5kaXNwbGF5TmFtZSksXCJcIiE9PWUubW9iU3RvcnlUeXBlJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUubW9iU3RvcnlUeXBlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e21vYlN0b3J5SWQ6XCJcIixkaXNwbGF5TmFtZTpcIlwiLG1vYlN0b3J5VHlwZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5tb2JTdG9yeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZGlzcGxheU5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5tb2JTdG9yeVR5cGU9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e21vYlN0b3J5SWQ6XCJcIixkaXNwbGF5TmFtZTpcIlwiLG1vYlN0b3J5VHlwZTpcIlwifTtyZXR1cm4gdC5tb2JTdG9yeUlkPWUubW9iU3RvcnlJZD8/XCJcIix0LmRpc3BsYXlOYW1lPWUuZGlzcGxheU5hbWU/P1wiXCIsdC5tb2JTdG9yeVR5cGU9ZS5tb2JTdG9yeVR5cGU/P1wiXCIsdH19LHQuU3RvcnlFbGVtZW50V2l0aExvbmdUdGw9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnN0b3J5SWQpLFwiMFwiIT09ZS50aW1lTGVmdE1pbGxpcyYmdC51aW50MzIoMTYpLnVpbnQ2NChlLnRpbWVMZWZ0TWlsbGlzKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0b3J5SWQ6XCJcIix0aW1lTGVmdE1pbGxpczpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc3RvcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnRpbWVMZWZ0TWlsbGlzPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzdG9yeUlkOlwiXCIsdGltZUxlZnRNaWxsaXM6XCIwXCJ9O3JldHVybiB0LnN0b3J5SWQ9ZS5zdG9yeUlkPz9cIlwiLHQudGltZUxlZnRNaWxsaXM9ZS50aW1lTGVmdE1pbGxpcz8/XCIwXCIsdH19LHQuU3RvcnlFbmNyeXB0U3RvcnlJZEV4Y2VwdGlvbj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdG9yeUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3RvcnlJZCksXCJcIiE9PWUuZmFpbFJlYXNvbiYmdC51aW50MzIoMTgpLnN0cmluZyhlLmZhaWxSZWFzb24pLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3RvcnlJZDpcIlwiLGZhaWxSZWFzb246XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc3RvcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmZhaWxSZWFzb249bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0b3J5SWQ6XCJcIixmYWlsUmVhc29uOlwiXCJ9O3JldHVybiB0LnN0b3J5SWQ9ZS5zdG9yeUlkPz9cIlwiLHQuZmFpbFJlYXNvbj1lLmZhaWxSZWFzb24/P1wiXCIsdH19LHQuU3RvcnlGYWlsZWRQcml2YXRlUHJvZmlsZVNhdmVTdG9yeUlkPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmZhaWxSZWFzb24mJnQudWludDMyKDEwKS5zdHJpbmcoZS5mYWlsUmVhc29uKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2ZhaWxSZWFzb246XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlpLmZhaWxSZWFzb249bi5zdHJpbmcoKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZmFpbFJlYXNvbjpcIlwifTtyZXR1cm4gdC5mYWlsUmVhc29uPWUuZmFpbFJlYXNvbj8/XCJcIix0fX0sdC5TdG9yeUZhaWxlZFB1YmxpY1Byb2ZpbGVTYXZlU3RvcnlJZD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5mYWlsUmVhc29uJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuZmFpbFJlYXNvbiksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtmYWlsUmVhc29uOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtpZihlPj4+Mz09PTEpaS5mYWlsUmVhc29uPW4uc3RyaW5nKCk7ZWxzZSBuLnNraXBUeXBlKDcmZSl9cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2ZhaWxSZWFzb246XCJcIn07cmV0dXJuIHQuZmFpbFJlYXNvbj1lLmZhaWxSZWFzb24/P1wiXCIsdH19LHQuU3RvcnlGYWlsZWRTYXZlRGVsZXRlZFN0b3J5SWQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuZmFpbFJlYXNvbiYmdC51aW50MzIoMTApLnN0cmluZyhlLmZhaWxSZWFzb24pLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17ZmFpbFJlYXNvbjpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkuZmFpbFJlYXNvbj1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtmYWlsUmVhc29uOlwiXCJ9O3JldHVybiB0LmZhaWxSZWFzb249ZS5mYWlsUmVhc29uPz9cIlwiLHR9fSx0LlN0b3J5RmFpbGVkU3RvcnlWaWV3UmVjb3JkaW5nPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiMFwiIT09ZS50aW1lc3RhbXAmJnQudWludDMyKDgpLnVpbnQ2NChlLnRpbWVzdGFtcCksXCJcIiE9PWUuc3RvcnlJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnN0b3J5SWQpLFwiMFwiIT09ZS5zY3JlZW5zaG90Q291bnQmJnQudWludDMyKDI0KS51aW50NjQoZS5zY3JlZW5zaG90Q291bnQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17dGltZXN0YW1wOlwiMFwiLHN0b3J5SWQ6XCJcIixzY3JlZW5zaG90Q291bnQ6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnRpbWVzdGFtcD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMjppLnN0b3J5SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5zY3JlZW5zaG90Q291bnQ9cChuLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3RpbWVzdGFtcDpcIjBcIixzdG9yeUlkOlwiXCIsc2NyZWVuc2hvdENvdW50OlwiMFwifTtyZXR1cm4gdC50aW1lc3RhbXA9ZS50aW1lc3RhbXA/P1wiMFwiLHQuc3RvcnlJZD1lLnN0b3J5SWQ/P1wiXCIsdC5zY3JlZW5zaG90Q291bnQ9ZS5zY3JlZW5zaG90Q291bnQ/P1wiMFwiLHR9fSx0LlN0b3J5RmFpbGVkVXNlclZpZXdIaXN0b3J5VXBkYXRlPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLmZhaWxSZWFzb24mJnQudWludDMyKDEwKS5zdHJpbmcoZS5mYWlsUmVhc29uKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2ZhaWxSZWFzb246XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlpLmZhaWxSZWFzb249bi5zdHJpbmcoKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZmFpbFJlYXNvbjpcIlwifTtyZXR1cm4gdC5mYWlsUmVhc29uPWUuZmFpbFJlYXNvbj8/XCJcIix0fX0sdC5TdG9yeUdhbGxlcnlTZXJ2ZXJHcm91cFN0b3J5QXV0b3NhdmU9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubW9iU3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLm1vYlN0b3J5SWQpLCEwPT09ZS5pc0Zyb21DcmVhdG9yJiZ0LnVpbnQzMigxNikuYm9vbChlLmlzRnJvbUNyZWF0b3IpLCEwPT09ZS5hdXRvU2F2ZUVuYWJsZWQmJnQudWludDMyKDI0KS5ib29sKGUuYXV0b1NhdmVFbmFibGVkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e21vYlN0b3J5SWQ6XCJcIixpc0Zyb21DcmVhdG9yOiExLGF1dG9TYXZlRW5hYmxlZDohMX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubW9iU3RvcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmlzRnJvbUNyZWF0b3I9bi5ib29sKCk7YnJlYWs7Y2FzZSAzOmkuYXV0b1NhdmVFbmFibGVkPW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17bW9iU3RvcnlJZDpcIlwiLGlzRnJvbUNyZWF0b3I6ITEsYXV0b1NhdmVFbmFibGVkOiExfTtyZXR1cm4gdC5tb2JTdG9yeUlkPWUubW9iU3RvcnlJZD8/XCJcIix0LmlzRnJvbUNyZWF0b3I9ZS5pc0Zyb21DcmVhdG9yPz8hMSx0LmF1dG9TYXZlRW5hYmxlZD1lLmF1dG9TYXZlRW5hYmxlZD8/ITEsdH19LHQuU3RvcnlMZWF2ZU1vYlN0b3J5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLm1vYlN0b3J5SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5tb2JTdG9yeUlkKSwhMD09PWUuaXNCbG9jayYmdC51aW50MzIoMTYpLmJvb2woZS5pc0Jsb2NrKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e21vYlN0b3J5SWQ6XCJcIixpc0Jsb2NrOiExfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5tb2JTdG9yeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuaXNCbG9jaz1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e21vYlN0b3J5SWQ6XCJcIixpc0Jsb2NrOiExfTtyZXR1cm4gdC5tb2JTdG9yeUlkPWUubW9iU3RvcnlJZD8/XCJcIix0LmlzQmxvY2s9ZS5pc0Jsb2NrPz8hMSx0fX0sdC5TdG9yeU5ld1N0b3JpZXNSZXN1bHRDYXBwZWQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCIwXCIhPT1lLm9yaWdpbmFsQ291bnQmJnQudWludDMyKDgpLnVpbnQ2NChlLm9yaWdpbmFsQ291bnQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17b3JpZ2luYWxDb3VudDpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlpLm9yaWdpbmFsQ291bnQ9cChuLnVpbnQ2NCgpKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17b3JpZ2luYWxDb3VudDpcIjBcIn07cmV0dXJuIHQub3JpZ2luYWxDb3VudD1lLm9yaWdpbmFsQ291bnQ/P1wiMFwiLHR9fSx0LlN0b3J5UG9zdD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdG9yeUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3RvcnlJZCksXCJcIiE9PWUuc3RvcnlDbGllbnRJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnN0b3J5Q2xpZW50SWQpLFwiXCIhPT1lLm1lZGlhSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5tZWRpYUlkKSxcIlwiIT09ZS5tZWRpYVR5cGUmJnQudWludDMyKDM0KS5zdHJpbmcoZS5tZWRpYVR5cGUpLFwiMFwiIT09ZS5wb3N0VHMmJnQudWludDMyKDQwKS51aW50NjQoZS5wb3N0VHMpLFwiXCIhPT1lLnByaXZhY3kmJnQudWludDMyKDUwKS5zdHJpbmcoZS5wcml2YWN5KSxcIjBcIiE9PWUuY2FwdHVyZWRBdCYmdC51aW50MzIoNTYpLnVpbnQ2NChlLmNhcHR1cmVkQXQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3RvcnlJZDpcIlwiLHN0b3J5Q2xpZW50SWQ6XCJcIixtZWRpYUlkOlwiXCIsbWVkaWFUeXBlOlwiXCIscG9zdFRzOlwiMFwiLHByaXZhY3k6XCJcIixjYXB0dXJlZEF0OlwiMFwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zdG9yeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuc3RvcnlDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLm1lZGlhSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5tZWRpYVR5cGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5wb3N0VHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6aS5wcml2YWN5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkuY2FwdHVyZWRBdD1wKG4udWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3RvcnlJZDpcIlwiLHN0b3J5Q2xpZW50SWQ6XCJcIixtZWRpYUlkOlwiXCIsbWVkaWFUeXBlOlwiXCIscG9zdFRzOlwiMFwiLHByaXZhY3k6XCJcIixjYXB0dXJlZEF0OlwiMFwifTtyZXR1cm4gdC5zdG9yeUlkPWUuc3RvcnlJZD8/XCJcIix0LnN0b3J5Q2xpZW50SWQ9ZS5zdG9yeUNsaWVudElkPz9cIlwiLHQubWVkaWFJZD1lLm1lZGlhSWQ/P1wiXCIsdC5tZWRpYVR5cGU9ZS5tZWRpYVR5cGU/P1wiXCIsdC5wb3N0VHM9ZS5wb3N0VHM/P1wiMFwiLHQucHJpdmFjeT1lLnByaXZhY3k/P1wiXCIsdC5jYXB0dXJlZEF0PWUuY2FwdHVyZWRBdD8/XCIwXCIsdH19LHQuU3RvcnlQb3N0QWJzZW50TWVkaWFLZXk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnN0b3J5SWQpLCEwPT09ZS5hYnNlbnRLZXkmJnQudWludDMyKDE2KS5ib29sKGUuYWJzZW50S2V5KSwhMD09PWUuYWJzZW50SXYmJnQudWludDMyKDI0KS5ib29sKGUuYWJzZW50SXYpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3RvcnlJZDpcIlwiLGFic2VudEtleTohMSxhYnNlbnRJdjohMX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc3RvcnlJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmFic2VudEtleT1uLmJvb2woKTticmVhaztjYXNlIDM6aS5hYnNlbnRJdj1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0b3J5SWQ6XCJcIixhYnNlbnRLZXk6ITEsYWJzZW50SXY6ITF9O3JldHVybiB0LnN0b3J5SWQ9ZS5zdG9yeUlkPz9cIlwiLHQuYWJzZW50S2V5PWUuYWJzZW50S2V5Pz8hMSx0LmFic2VudEl2PWUuYWJzZW50SXY/PyExLHR9fSx0LlN0b3J5UG9zdEludmFsaWRUZW1wTWVkaWE9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubWVkaWFJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLm1lZGlhSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bWVkaWFJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkubWVkaWFJZD1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXttZWRpYUlkOlwiXCJ9O3JldHVybiB0Lm1lZGlhSWQ9ZS5tZWRpYUlkPz9cIlwiLHR9fSx0LlN0b3J5UG9zdE1vYlN0b3J5PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnN0b3J5SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zdG9yeUlkKSxcIlwiIT09ZS5tb2JTdG9yeUlkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUubW9iU3RvcnlJZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzdG9yeUlkOlwiXCIsbW9iU3RvcnlJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zdG9yeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkubW9iU3RvcnlJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3RvcnlJZDpcIlwiLG1vYlN0b3J5SWQ6XCJcIn07cmV0dXJuIHQuc3RvcnlJZD1lLnN0b3J5SWQ/P1wiXCIsdC5tb2JTdG9yeUlkPWUubW9iU3RvcnlJZD8/XCJcIix0fX0sdC5TdG9yeVBvc3RSZXN1bHQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc2VuZE1lc3NhZ2VBdHRlbXB0SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zZW5kTWVzc2FnZUF0dGVtcHRJZCksITA9PT1lLndpdGhTdWNjZXNzJiZ0LnVpbnQzMigxNikuYm9vbChlLndpdGhTdWNjZXNzKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3NlbmRNZXNzYWdlQXR0ZW1wdElkOlwiXCIsd2l0aFN1Y2Nlc3M6ITF9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNlbmRNZXNzYWdlQXR0ZW1wdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkud2l0aFN1Y2Nlc3M9bi5ib29sKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZW5kTWVzc2FnZUF0dGVtcHRJZDpcIlwiLHdpdGhTdWNjZXNzOiExfTtyZXR1cm4gdC5zZW5kTWVzc2FnZUF0dGVtcHRJZD1lLnNlbmRNZXNzYWdlQXR0ZW1wdElkPz9cIlwiLHQud2l0aFN1Y2Nlc3M9ZS53aXRoU3VjY2Vzcz8/ITEsdH19LHQuU3RvcnlQb3N0U3RhcnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCIwXCIhPT1lLmNhcHR1cmVkQXQmJnQudWludDMyKDgpLnVpbnQ2NChlLmNhcHR1cmVkQXQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17Y2FwdHVyZWRBdDpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlpLmNhcHR1cmVkQXQ9cChuLnVpbnQ2NCgpKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Y2FwdHVyZWRBdDpcIjBcIn07cmV0dXJuIHQuY2FwdHVyZWRBdD1lLmNhcHR1cmVkQXQ/P1wiMFwiLHR9fSx0LlN0b3J5UHJpdmFjeVNldHRpbmdDaGFuZ2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuY3VycmVudFNldHRpbmcmJnQudWludDMyKDEwKS5zdHJpbmcoZS5jdXJyZW50U2V0dGluZyksXCJcIiE9PWUudGFyZ2V0U2V0dGluZyYmdC51aW50MzIoMTgpLnN0cmluZyhlLnRhcmdldFNldHRpbmcpLFwiXCIhPT1lLmJsb2NrZWRVc2VycyYmdC51aW50MzIoMjYpLnN0cmluZyhlLmJsb2NrZWRVc2VycyksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtjdXJyZW50U2V0dGluZzpcIlwiLHRhcmdldFNldHRpbmc6XCJcIixibG9ja2VkVXNlcnM6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuY3VycmVudFNldHRpbmc9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS50YXJnZXRTZXR0aW5nPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuYmxvY2tlZFVzZXJzPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtjdXJyZW50U2V0dGluZzpcIlwiLHRhcmdldFNldHRpbmc6XCJcIixibG9ja2VkVXNlcnM6XCJcIn07cmV0dXJuIHQuY3VycmVudFNldHRpbmc9ZS5jdXJyZW50U2V0dGluZz8/XCJcIix0LnRhcmdldFNldHRpbmc9ZS50YXJnZXRTZXR0aW5nPz9cIlwiLHQuYmxvY2tlZFVzZXJzPWUuYmxvY2tlZFVzZXJzPz9cIlwiLHR9fSx0LlN0b3J5UmVwb3N0R3JvdXBTdG9yeT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdG9yeUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3RvcnlJZCksXCJcIiE9PWUuZW50aXR5TmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLmVudGl0eU5hbWUpLFwiXCIhPT1lLmVudGl0eVR5cGUmJnQudWludDMyKDI2KS5zdHJpbmcoZS5lbnRpdHlUeXBlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0b3J5SWQ6XCJcIixlbnRpdHlOYW1lOlwiXCIsZW50aXR5VHlwZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zdG9yeUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZW50aXR5TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmVudGl0eVR5cGU9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0b3J5SWQ6XCJcIixlbnRpdHlOYW1lOlwiXCIsZW50aXR5VHlwZTpcIlwifTtyZXR1cm4gdC5zdG9yeUlkPWUuc3RvcnlJZD8/XCJcIix0LmVudGl0eU5hbWU9ZS5lbnRpdHlOYW1lPz9cIlwiLHQuZW50aXR5VHlwZT1lLmVudGl0eVR5cGU/P1wiXCIsdH19LHQuU3RvcnlTZXJ2aW5nRHluYW1vRmFpbHVyZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5leGNlcHRpb25NZXNzYWdlJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuZXhjZXB0aW9uTWVzc2FnZSksXCJcIiE9PWUuY2FjaGVkSWREZXRhaWxzJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuY2FjaGVkSWREZXRhaWxzKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2V4Y2VwdGlvbk1lc3NhZ2U6XCJcIixjYWNoZWRJZERldGFpbHM6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuZXhjZXB0aW9uTWVzc2FnZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmNhY2hlZElkRGV0YWlscz1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZXhjZXB0aW9uTWVzc2FnZTpcIlwiLGNhY2hlZElkRGV0YWlsczpcIlwifTtyZXR1cm4gdC5leGNlcHRpb25NZXNzYWdlPWUuZXhjZXB0aW9uTWVzc2FnZT8/XCJcIix0LmNhY2hlZElkRGV0YWlscz1lLmNhY2hlZElkRGV0YWlscz8/XCJcIix0fX0sdC5TdG9yeVNoYXJlT3duZXJTZW5kU3RvcnlTbmFwPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnN0b3J5SWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zdG9yeUlkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3N0b3J5SWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlpLnN0b3J5SWQ9bi5zdHJpbmcoKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3RvcnlJZDpcIlwifTtyZXR1cm4gdC5zdG9yeUlkPWUuc3RvcnlJZD8/XCJcIix0fX0sdC5TdG9yeVNuYXBWaWV3U2VydmVyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLmNsaWVudFRzJiZ0LnVpbnQzMig5KS5kb3VibGUoZS5jbGllbnRUcyksXCJcIiE9PWUuc3RvcnlTbmFwSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zdG9yeVNuYXBJZCksITA9PT1lLmlzRnJpZW5kVmlldyYmdC51aW50MzIoMzIpLmJvb2woZS5pc0ZyaWVuZFZpZXcpLCEwPT09ZS5pc1B1YmxpY1N0b3J5JiZ0LnVpbnQzMig0MCkuYm9vbChlLmlzUHVibGljU3RvcnkpLCEwPT09ZS5pc09mZmljaWFsU3RvcnkmJnQudWludDMyKDQ4KS5ib29sKGUuaXNPZmZpY2lhbFN0b3J5KSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2NsaWVudFRzOjAsc3RvcnlTbmFwSWQ6XCJcIixpc0ZyaWVuZFZpZXc6ITEsaXNQdWJsaWNTdG9yeTohMSxpc09mZmljaWFsU3Rvcnk6ITF9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmNsaWVudFRzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSAzOmkuc3RvcnlTbmFwSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5pc0ZyaWVuZFZpZXc9bi5ib29sKCk7YnJlYWs7Y2FzZSA1OmkuaXNQdWJsaWNTdG9yeT1uLmJvb2woKTticmVhaztjYXNlIDY6aS5pc09mZmljaWFsU3Rvcnk9bi5ib29sKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtjbGllbnRUczowLHN0b3J5U25hcElkOlwiXCIsaXNGcmllbmRWaWV3OiExLGlzUHVibGljU3Rvcnk6ITEsaXNPZmZpY2lhbFN0b3J5OiExfTtyZXR1cm4gdC5jbGllbnRUcz1lLmNsaWVudFRzPz8wLHQuc3RvcnlTbmFwSWQ9ZS5zdG9yeVNuYXBJZD8/XCJcIix0LmlzRnJpZW5kVmlldz1lLmlzRnJpZW5kVmlldz8/ITEsdC5pc1B1YmxpY1N0b3J5PWUuaXNQdWJsaWNTdG9yeT8/ITEsdC5pc09mZmljaWFsU3Rvcnk9ZS5pc09mZmljaWFsU3Rvcnk/PyExLHR9fSx0LlN0b3J5U3RhdGVJbmNvbnNpc3RlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnN0b3J5SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3RvcnlJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7aWYoZT4+PjM9PT0xKWkuc3RvcnlJZD1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmUpfXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzdG9yeUlkOlwiXCJ9O3JldHVybiB0LnN0b3J5SWQ9ZS5zdG9yeUlkPz9cIlwiLHR9fSx0LlN0b3J5U3Rvcmllc1N5bmNGZXRjaFJlYWRSZWNlaXB0RmFpbHVyZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdG9yeVR5cGUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zdG9yeVR5cGUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3RvcnlUeXBlOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtpZihlPj4+Mz09PTEpaS5zdG9yeVR5cGU9bi5zdHJpbmcoKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3RvcnlUeXBlOlwiXCJ9O3JldHVybiB0LnN0b3J5VHlwZT1lLnN0b3J5VHlwZT8/XCJcIix0fX0sdC5TdG9yeVN0dWRpb0xpdGVFcnJvcj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zZXNzaW9uSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zZXNzaW9uSWQpLFwiXCIhPT1lLmVycm9yVHlwZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLmVycm9yVHlwZSksXCJcIiE9PWUuZXJyb3JEZXRhaWwmJnQudWludDMyKDI2KS5zdHJpbmcoZS5lcnJvckRldGFpbCksMCE9PWUuZXJyb3JUcyYmdC51aW50MzIoMzMpLmRvdWJsZShlLmVycm9yVHMpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvbklkOlwiXCIsZXJyb3JUeXBlOlwiXCIsZXJyb3JEZXRhaWw6XCJcIixlcnJvclRzOjB9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmVycm9yVHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmVycm9yRGV0YWlsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkuZXJyb3JUcz1uLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c2Vzc2lvbklkOlwiXCIsZXJyb3JUeXBlOlwiXCIsZXJyb3JEZXRhaWw6XCJcIixlcnJvclRzOjB9O3JldHVybiB0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0LmVycm9yVHlwZT1lLmVycm9yVHlwZT8/XCJcIix0LmVycm9yRGV0YWlsPWUuZXJyb3JEZXRhaWw/P1wiXCIsdC5lcnJvclRzPWUuZXJyb3JUcz8/MCx0fX0sdC5TdG9yeVN0dWRpb0xpdGVNZWRpYVBvc3Q9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc2Vzc2lvbklkKSxcIlwiIT09ZS5zbmFwSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5zbmFwSWQpLFwiXCIhPT1lLmNvbnRlbnRPYmplY3RJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLmNvbnRlbnRPYmplY3RJZCksXCJcIiE9PWUucG9zdERlc3RpbmF0aW9ucyYmdC51aW50MzIoMzQpLnN0cmluZyhlLnBvc3REZXN0aW5hdGlvbnMpLFwiXCIhPT1lLmJ1c2luZXNzUHJvZmlsZUlkJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuYnVzaW5lc3NQcm9maWxlSWQpLFwiXCIhPT1lLnNwb3RsaWdodERlc2NyaXB0aW9uJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuc3BvdGxpZ2h0RGVzY3JpcHRpb24pLFwiMFwiIT09ZS5udW1iZXJPZlRvcGljcyYmdC51aW50MzIoNTYpLnVpbnQ2NChlLm51bWJlck9mVG9waWNzKSxcIjBcIiE9PWUuZ29MaXZlRGF0ZSYmdC51aW50MzIoNjQpLnVpbnQ2NChlLmdvTGl2ZURhdGUpLFwiXCIhPT1lLnJvbGVzJiZ0LnVpbnQzMig3NCkuc3RyaW5nKGUucm9sZXMpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvbklkOlwiXCIsc25hcElkOlwiXCIsY29udGVudE9iamVjdElkOlwiXCIscG9zdERlc3RpbmF0aW9uczpcIlwiLGJ1c2luZXNzUHJvZmlsZUlkOlwiXCIsc3BvdGxpZ2h0RGVzY3JpcHRpb246XCJcIixudW1iZXJPZlRvcGljczpcIjBcIixnb0xpdmVEYXRlOlwiMFwiLHJvbGVzOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnNuYXBJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmNvbnRlbnRPYmplY3RJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnBvc3REZXN0aW5hdGlvbnM9bi5zdHJpbmcoKTticmVhaztjYXNlIDU6aS5idXNpbmVzc1Byb2ZpbGVJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLnNwb3RsaWdodERlc2NyaXB0aW9uPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkubnVtYmVyT2ZUb3BpY3M9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDg6aS5nb0xpdmVEYXRlPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA5Omkucm9sZXM9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3Nlc3Npb25JZDpcIlwiLHNuYXBJZDpcIlwiLGNvbnRlbnRPYmplY3RJZDpcIlwiLHBvc3REZXN0aW5hdGlvbnM6XCJcIixidXNpbmVzc1Byb2ZpbGVJZDpcIlwiLHNwb3RsaWdodERlc2NyaXB0aW9uOlwiXCIsbnVtYmVyT2ZUb3BpY3M6XCIwXCIsZ29MaXZlRGF0ZTpcIjBcIixyb2xlczpcIlwifTtyZXR1cm4gdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWQ/P1wiXCIsdC5zbmFwSWQ9ZS5zbmFwSWQ/P1wiXCIsdC5jb250ZW50T2JqZWN0SWQ9ZS5jb250ZW50T2JqZWN0SWQ/P1wiXCIsdC5wb3N0RGVzdGluYXRpb25zPWUucG9zdERlc3RpbmF0aW9ucz8/XCJcIix0LmJ1c2luZXNzUHJvZmlsZUlkPWUuYnVzaW5lc3NQcm9maWxlSWQ/P1wiXCIsdC5zcG90bGlnaHREZXNjcmlwdGlvbj1lLnNwb3RsaWdodERlc2NyaXB0aW9uPz9cIlwiLHQubnVtYmVyT2ZUb3BpY3M9ZS5udW1iZXJPZlRvcGljcz8/XCIwXCIsdC5nb0xpdmVEYXRlPWUuZ29MaXZlRGF0ZT8/XCIwXCIsdC5yb2xlcz1lLnJvbGVzPz9cIlwiLHR9fSx0LlN0b3J5U3R1ZGlvTGl0ZU1lZGlhVXBsb2FkPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnNlc3Npb25JZCksXCJcIiE9PWUuYnJvd3Nlck5hbWUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5icm93c2VyTmFtZSksMCE9PWUudXBsb2FkU3RhcnRUcyYmdC51aW50MzIoMjUpLmRvdWJsZShlLnVwbG9hZFN0YXJ0VHMpLFwiMFwiIT09ZS51cGxvYWREdXJhdGlvbk1zJiZ0LnVpbnQzMigzMikudWludDY0KGUudXBsb2FkRHVyYXRpb25NcyksXCIwXCIhPT1lLmZpbGVTaXplQnl0ZXMmJnQudWludDMyKDQwKS51aW50NjQoZS5maWxlU2l6ZUJ5dGVzKSxcIjBcIiE9PWUuYml0cmF0ZSYmdC51aW50MzIoNDgpLnVpbnQ2NChlLmJpdHJhdGUpLFwiMFwiIT09ZS5kdXJhdGlvbk1zJiZ0LnVpbnQzMig1NikudWludDY0KGUuZHVyYXRpb25NcyksXCIwXCIhPT1lLndpZHRoUHgmJnQudWludDMyKDY0KS51aW50NjQoZS53aWR0aFB4KSxcIjBcIiE9PWUuaGVpZ2h0UHgmJnQudWludDMyKDcyKS51aW50NjQoZS5oZWlnaHRQeCksXCJcIiE9PWUuZW5jb2RpbmdMaWJyYXJ5JiZ0LnVpbnQzMig4Mikuc3RyaW5nKGUuZW5jb2RpbmdMaWJyYXJ5KSxcIlwiIT09ZS5jb250YWluZXJGb3JtYXQmJnQudWludDMyKDkwKS5zdHJpbmcoZS5jb250YWluZXJGb3JtYXQpLFwiXCIhPT1lLmNvZGVjJiZ0LnVpbnQzMig5OCkuc3RyaW5nKGUuY29kZWMpLFwiXCIhPT1lLmNvbnRlbnRPYmplY3RJZCYmdC51aW50MzIoMTA2KS5zdHJpbmcoZS5jb250ZW50T2JqZWN0SWQpLFwiXCIhPT1lLmV4dGVuc2lvbkZvcm1hdCYmdC51aW50MzIoMTE0KS5zdHJpbmcoZS5leHRlbnNpb25Gb3JtYXQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvbklkOlwiXCIsYnJvd3Nlck5hbWU6XCJcIix1cGxvYWRTdGFydFRzOjAsdXBsb2FkRHVyYXRpb25NczpcIjBcIixmaWxlU2l6ZUJ5dGVzOlwiMFwiLGJpdHJhdGU6XCIwXCIsZHVyYXRpb25NczpcIjBcIix3aWR0aFB4OlwiMFwiLGhlaWdodFB4OlwiMFwiLGVuY29kaW5nTGlicmFyeTpcIlwiLGNvbnRhaW5lckZvcm1hdDpcIlwiLGNvZGVjOlwiXCIsY29udGVudE9iamVjdElkOlwiXCIsZXh0ZW5zaW9uRm9ybWF0OlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmJyb3dzZXJOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkudXBsb2FkU3RhcnRUcz1uLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNDppLnVwbG9hZER1cmF0aW9uTXM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6aS5maWxlU2l6ZUJ5dGVzPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA2OmkuYml0cmF0ZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNzppLmR1cmF0aW9uTXM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDg6aS53aWR0aFB4PXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA5OmkuaGVpZ2h0UHg9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDEwOmkuZW5jb2RpbmdMaWJyYXJ5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMTppLmNvbnRhaW5lckZvcm1hdD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS5jb2RlYz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTM6aS5jb250ZW50T2JqZWN0SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDE0OmkuZXh0ZW5zaW9uRm9ybWF0PW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXNzaW9uSWQ6XCJcIixicm93c2VyTmFtZTpcIlwiLHVwbG9hZFN0YXJ0VHM6MCx1cGxvYWREdXJhdGlvbk1zOlwiMFwiLGZpbGVTaXplQnl0ZXM6XCIwXCIsYml0cmF0ZTpcIjBcIixkdXJhdGlvbk1zOlwiMFwiLHdpZHRoUHg6XCIwXCIsaGVpZ2h0UHg6XCIwXCIsZW5jb2RpbmdMaWJyYXJ5OlwiXCIsY29udGFpbmVyRm9ybWF0OlwiXCIsY29kZWM6XCJcIixjb250ZW50T2JqZWN0SWQ6XCJcIixleHRlbnNpb25Gb3JtYXQ6XCJcIn07cmV0dXJuIHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLHQuYnJvd3Nlck5hbWU9ZS5icm93c2VyTmFtZT8/XCJcIix0LnVwbG9hZFN0YXJ0VHM9ZS51cGxvYWRTdGFydFRzPz8wLHQudXBsb2FkRHVyYXRpb25Ncz1lLnVwbG9hZER1cmF0aW9uTXM/P1wiMFwiLHQuZmlsZVNpemVCeXRlcz1lLmZpbGVTaXplQnl0ZXM/P1wiMFwiLHQuYml0cmF0ZT1lLmJpdHJhdGU/P1wiMFwiLHQuZHVyYXRpb25Ncz1lLmR1cmF0aW9uTXM/P1wiMFwiLHQud2lkdGhQeD1lLndpZHRoUHg/P1wiMFwiLHQuaGVpZ2h0UHg9ZS5oZWlnaHRQeD8/XCIwXCIsdC5lbmNvZGluZ0xpYnJhcnk9ZS5lbmNvZGluZ0xpYnJhcnk/P1wiXCIsdC5jb250YWluZXJGb3JtYXQ9ZS5jb250YWluZXJGb3JtYXQ/P1wiXCIsdC5jb2RlYz1lLmNvZGVjPz9cIlwiLHQuY29udGVudE9iamVjdElkPWUuY29udGVudE9iamVjdElkPz9cIlwiLHQuZXh0ZW5zaW9uRm9ybWF0PWUuZXh0ZW5zaW9uRm9ybWF0Pz9cIlwiLHR9fSx0LlN0b3J5U3R1ZGlvTGl0ZVBhZ2VBY3Rpb249e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc2Vzc2lvbklkKSxcIlwiIT09ZS5wYWdlTmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnBhZ2VOYW1lKSwwIT09ZS5hY3Rpb25UcyYmdC51aW50MzIoMjUpLmRvdWJsZShlLmFjdGlvblRzKSxcIlwiIT09ZS5hY3Rpb25UeXBlJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuYWN0aW9uVHlwZSksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzZXNzaW9uSWQ6XCJcIixwYWdlTmFtZTpcIlwiLGFjdGlvblRzOjAsYWN0aW9uVHlwZTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5wYWdlTmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmFjdGlvblRzPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA0OmkuYWN0aW9uVHlwZT1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c2Vzc2lvbklkOlwiXCIscGFnZU5hbWU6XCJcIixhY3Rpb25UczowLGFjdGlvblR5cGU6XCJcIn07cmV0dXJuIHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLHQucGFnZU5hbWU9ZS5wYWdlTmFtZT8/XCJcIix0LmFjdGlvblRzPWUuYWN0aW9uVHM/PzAsdC5hY3Rpb25UeXBlPWUuYWN0aW9uVHlwZT8/XCJcIix0fX0sdC5TdG9yeVN1c3BpY2lvdXNTdG9yeVZpZXc9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCIwXCIhPT1lLnRpbWVzdGFtcCYmdC51aW50MzIoOCkudWludDY0KGUudGltZXN0YW1wKSxcIlwiIT09ZS5zdG9yeUlkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuc3RvcnlJZCksXCJcIiE9PWUucHJpdmFjeSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnByaXZhY3kpLFwiMFwiIT09ZS5zY3JlZW5zaG90Q291bnQmJnQudWludDMyKDMyKS51aW50NjQoZS5zY3JlZW5zaG90Q291bnQpLFwiXCIhPT1lLnBhdGgmJnQudWludDMyKDQyKS5zdHJpbmcoZS5wYXRoKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3RpbWVzdGFtcDpcIjBcIixzdG9yeUlkOlwiXCIscHJpdmFjeTpcIlwiLHNjcmVlbnNob3RDb3VudDpcIjBcIixwYXRoOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnRpbWVzdGFtcD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMjppLnN0b3J5SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5wcml2YWN5PW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0Omkuc2NyZWVuc2hvdENvdW50PXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmkucGF0aD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17dGltZXN0YW1wOlwiMFwiLHN0b3J5SWQ6XCJcIixwcml2YWN5OlwiXCIsc2NyZWVuc2hvdENvdW50OlwiMFwiLHBhdGg6XCJcIn07cmV0dXJuIHQudGltZXN0YW1wPWUudGltZXN0YW1wPz9cIjBcIix0LnN0b3J5SWQ9ZS5zdG9yeUlkPz9cIlwiLHQucHJpdmFjeT1lLnByaXZhY3k/P1wiXCIsdC5zY3JlZW5zaG90Q291bnQ9ZS5zY3JlZW5zaG90Q291bnQ/P1wiMFwiLHQucGF0aD1lLnBhdGg/P1wiXCIsdH19LHQuU3RvcnlWaWRlb0VuY29kaW5nVGFzaz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5tZWRpYUlkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUubWVkaWFJZCksXCJcIiE9PWUuZmFpbFJlYXNvbiYmdC51aW50MzIoMTgpLnN0cmluZyhlLmZhaWxSZWFzb24pLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bWVkaWFJZDpcIlwiLGZhaWxSZWFzb246XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubWVkaWFJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmZhaWxSZWFzb249bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e21lZGlhSWQ6XCJcIixmYWlsUmVhc29uOlwiXCJ9O3JldHVybiB0Lm1lZGlhSWQ9ZS5tZWRpYUlkPz9cIlwiLHQuZmFpbFJlYXNvbj1lLmZhaWxSZWFzb24/P1wiXCIsdH19LHQuU3RvcnlWaWV3ZXJOb3RVcGRhdGVSZXF1ZXN0VXNlcj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIjBcIiE9PWUudGltZXN0YW1wJiZ0LnVpbnQzMig4KS51aW50NjQoZS50aW1lc3RhbXApLFwiXCIhPT1lLnN0b3J5SWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS5zdG9yeUlkKSwhMD09PWUuaXNGcmllbmQmJnQudWludDMyKDMyKS5ib29sKGUuaXNGcmllbmQpLCEwPT09ZS5pc1B1YmxpYyYmdC51aW50MzIoNDApLmJvb2woZS5pc1B1YmxpYyksITA9PT1lLmlzT2ZmaWNpYWwmJnQudWludDMyKDQ4KS5ib29sKGUuaXNPZmZpY2lhbCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt0aW1lc3RhbXA6XCIwXCIsc3RvcnlJZDpcIlwiLGlzRnJpZW5kOiExLGlzUHVibGljOiExLGlzT2ZmaWNpYWw6ITF9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnRpbWVzdGFtcD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMjppLnN0b3J5SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5pc0ZyaWVuZD1uLmJvb2woKTticmVhaztjYXNlIDU6aS5pc1B1YmxpYz1uLmJvb2woKTticmVhaztjYXNlIDY6aS5pc09mZmljaWFsPW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17dGltZXN0YW1wOlwiMFwiLHN0b3J5SWQ6XCJcIixpc0ZyaWVuZDohMSxpc1B1YmxpYzohMSxpc09mZmljaWFsOiExfTtyZXR1cm4gdC50aW1lc3RhbXA9ZS50aW1lc3RhbXA/P1wiMFwiLHQuc3RvcnlJZD1lLnN0b3J5SWQ/P1wiXCIsdC5pc0ZyaWVuZD1lLmlzRnJpZW5kPz8hMSx0LmlzUHVibGljPWUuaXNQdWJsaWM/PyExLHQuaXNPZmZpY2lhbD1lLmlzT2ZmaWNpYWw/PyExLHR9fSx0LlN0b3J5Vmlld3NNaXNtYXRjaD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zb3VyY2UmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zb3VyY2UpLFwiXCIhPT1lLmV4dHJhTG9ncyYmdC51aW50MzIoMTgpLnN0cmluZyhlLmV4dHJhTG9ncyksXCJcIiE9PWUuZXh0cmFIaXN0b3J5JiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuZXh0cmFIaXN0b3J5KSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e3NvdXJjZTpcIlwiLGV4dHJhTG9nczpcIlwiLGV4dHJhSGlzdG9yeTpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zb3VyY2U9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5leHRyYUxvZ3M9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5leHRyYUhpc3Rvcnk9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3NvdXJjZTpcIlwiLGV4dHJhTG9nczpcIlwiLGV4dHJhSGlzdG9yeTpcIlwifTtyZXR1cm4gdC5zb3VyY2U9ZS5zb3VyY2U/P1wiXCIsdC5leHRyYUxvZ3M9ZS5leHRyYUxvZ3M/P1wiXCIsdC5leHRyYUhpc3Rvcnk9ZS5leHRyYUhpc3Rvcnk/P1wiXCIsdH19LHQuU3RvcnlWaWV3c1JlZGlzTWlzbWF0Y2g9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc3RvcnlJZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnN0b3J5SWQpLFwiMFwiIT09ZS5mcmllbmRTdG9yeU5vdGVzU2l6ZSYmdC51aW50MzIoMTYpLnVpbnQ2NChlLmZyaWVuZFN0b3J5Tm90ZXNTaXplKSxcIjBcIiE9PWUub3RoZXJTdG9yeU5vdGVzU2l6ZSYmdC51aW50MzIoMjQpLnVpbnQ2NChlLm90aGVyU3RvcnlOb3Rlc1NpemUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3RvcnlJZDpcIlwiLGZyaWVuZFN0b3J5Tm90ZXNTaXplOlwiMFwiLG90aGVyU3RvcnlOb3Rlc1NpemU6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnN0b3J5SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5mcmllbmRTdG9yeU5vdGVzU2l6ZT1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMzppLm90aGVyU3RvcnlOb3Rlc1NpemU9cChuLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3N0b3J5SWQ6XCJcIixmcmllbmRTdG9yeU5vdGVzU2l6ZTpcIjBcIixvdGhlclN0b3J5Tm90ZXNTaXplOlwiMFwifTtyZXR1cm4gdC5zdG9yeUlkPWUuc3RvcnlJZD8/XCJcIix0LmZyaWVuZFN0b3J5Tm90ZXNTaXplPWUuZnJpZW5kU3RvcnlOb3Rlc1NpemU/P1wiMFwiLHQub3RoZXJTdG9yeU5vdGVzU2l6ZT1lLm90aGVyU3RvcnlOb3Rlc1NpemU/P1wiMFwiLHR9fSx0LlN0cmVha1NlcnZlckV2ZW50PXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KDAhPT1lLmFjdGlvblR5cGUmJnQudWludDMyKDgpLmludDMyKGUuYWN0aW9uVHlwZSksXCJcIiE9PWUuY29ycmVzcG9uZGVudElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuY29ycmVzcG9uZGVudElkKSxcIjBcIiE9PWUuc25hcFNlbnRUcyYmdC51aW50MzIoMjQpLnVpbnQ2NChlLnNuYXBTZW50VHMpLFwiMFwiIT09ZS5zdHJlYWtMYXN0VXBkYXRlZFRzJiZ0LnVpbnQzMigzMikudWludDY0KGUuc3RyZWFrTGFzdFVwZGF0ZWRUcyksXCIwXCIhPT1lLmN1cnJlbnRTdHJlYWtFeHBlY3RlZEV4cGlyZWRUcyYmdC51aW50MzIoNDApLnVpbnQ2NChlLmN1cnJlbnRTdHJlYWtFeHBlY3RlZEV4cGlyZWRUcyksXCIwXCIhPT1lLmN1cnJlbnRTdHJlYWtDb3VudCYmdC51aW50MzIoNDgpLnVpbnQ2NChlLmN1cnJlbnRTdHJlYWtDb3VudCksXCJcIiE9PWUuYXBwbGljYXRpb25WYXJpYW50JiZ0LnVpbnQzMig1OCkuc3RyaW5nKGUuYXBwbGljYXRpb25WYXJpYW50KSxcIlwiIT09ZS5jb3JyZXNwb25kZW50R3VpZCYmdC51aW50MzIoNzQpLnN0cmluZyhlLmNvcnJlc3BvbmRlbnRHdWlkKSwwIT09ZS5yZXN0b3JlU291cmNlJiZ0LnVpbnQzMig5NikuaW50MzIoZS5yZXN0b3JlU291cmNlKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2FjdGlvblR5cGU6MCxjb3JyZXNwb25kZW50SWQ6XCJcIixzbmFwU2VudFRzOlwiMFwiLHN0cmVha0xhc3RVcGRhdGVkVHM6XCIwXCIsY3VycmVudFN0cmVha0V4cGVjdGVkRXhwaXJlZFRzOlwiMFwiLGN1cnJlbnRTdHJlYWtDb3VudDpcIjBcIixhcHBsaWNhdGlvblZhcmlhbnQ6XCJcIixjb3JyZXNwb25kZW50R3VpZDpcIlwiLHJlc3RvcmVTb3VyY2U6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuYWN0aW9uVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuY29ycmVzcG9uZGVudElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc25hcFNlbnRUcz1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNDppLnN0cmVha0xhc3RVcGRhdGVkVHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6aS5jdXJyZW50U3RyZWFrRXhwZWN0ZWRFeHBpcmVkVHM9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6aS5jdXJyZW50U3RyZWFrQ291bnQ9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDc6aS5hcHBsaWNhdGlvblZhcmlhbnQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDk6aS5jb3JyZXNwb25kZW50R3VpZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS5yZXN0b3JlU291cmNlPW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2FjdGlvblR5cGU6MCxjb3JyZXNwb25kZW50SWQ6XCJcIixzbmFwU2VudFRzOlwiMFwiLHN0cmVha0xhc3RVcGRhdGVkVHM6XCIwXCIsY3VycmVudFN0cmVha0V4cGVjdGVkRXhwaXJlZFRzOlwiMFwiLGN1cnJlbnRTdHJlYWtDb3VudDpcIjBcIixhcHBsaWNhdGlvblZhcmlhbnQ6XCJcIixjb3JyZXNwb25kZW50R3VpZDpcIlwiLHJlc3RvcmVTb3VyY2U6MH07cmV0dXJuIHQuYWN0aW9uVHlwZT1lLmFjdGlvblR5cGU/PzAsdC5jb3JyZXNwb25kZW50SWQ9ZS5jb3JyZXNwb25kZW50SWQ/P1wiXCIsdC5zbmFwU2VudFRzPWUuc25hcFNlbnRUcz8/XCIwXCIsdC5zdHJlYWtMYXN0VXBkYXRlZFRzPWUuc3RyZWFrTGFzdFVwZGF0ZWRUcz8/XCIwXCIsdC5jdXJyZW50U3RyZWFrRXhwZWN0ZWRFeHBpcmVkVHM9ZS5jdXJyZW50U3RyZWFrRXhwZWN0ZWRFeHBpcmVkVHM/P1wiMFwiLHQuY3VycmVudFN0cmVha0NvdW50PWUuY3VycmVudFN0cmVha0NvdW50Pz9cIjBcIix0LmFwcGxpY2F0aW9uVmFyaWFudD1lLmFwcGxpY2F0aW9uVmFyaWFudD8/XCJcIix0LmNvcnJlc3BvbmRlbnRHdWlkPWUuY29ycmVzcG9uZGVudEd1aWQ/P1wiXCIsdC5yZXN0b3JlU291cmNlPWUucmVzdG9yZVNvdXJjZT8/MCx0fX0sdC5TdWdnZXN0ZWRGcmllbmRBY3Rpb25FdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PigwIT09ZS5zdWdnZXN0ZWRGcmllbmRBY3Rpb25FdmVudFR5cGUmJnQudWludDMyKDgpLmludDMyKGUuc3VnZ2VzdGVkRnJpZW5kQWN0aW9uRXZlbnRUeXBlKSwwIT09ZS5zdWdnZXN0ZWRGcmllbmRBY3Rpb25TdWNjZXNzVHlwZSYmdC51aW50MzIoMTYpLmludDMyKGUuc3VnZ2VzdGVkRnJpZW5kQWN0aW9uU3VjY2Vzc1R5cGUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c3VnZ2VzdGVkRnJpZW5kQWN0aW9uRXZlbnRUeXBlOjAsc3VnZ2VzdGVkRnJpZW5kQWN0aW9uU3VjY2Vzc1R5cGU6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc3VnZ2VzdGVkRnJpZW5kQWN0aW9uRXZlbnRUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDI6aS5zdWdnZXN0ZWRGcmllbmRBY3Rpb25TdWNjZXNzVHlwZT1uLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzdWdnZXN0ZWRGcmllbmRBY3Rpb25FdmVudFR5cGU6MCxzdWdnZXN0ZWRGcmllbmRBY3Rpb25TdWNjZXNzVHlwZTowfTtyZXR1cm4gdC5zdWdnZXN0ZWRGcmllbmRBY3Rpb25FdmVudFR5cGU9ZS5zdWdnZXN0ZWRGcmllbmRBY3Rpb25FdmVudFR5cGU/PzAsdC5zdWdnZXN0ZWRGcmllbmRBY3Rpb25TdWNjZXNzVHlwZT1lLnN1Z2dlc3RlZEZyaWVuZEFjdGlvblN1Y2Nlc3NUeXBlPz8wLHR9fSx0LlN1Z2dlc3RlZEZyaWVuZEV2ZW50PXtlbmNvZGUoZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpezAhPT1lLnN1Z2dlc3RlZEZyaWVuZEV2ZW50VHlwZSYmbi51aW50MzIoOCkuaW50MzIoZS5zdWdnZXN0ZWRGcmllbmRFdmVudFR5cGUpLFwiXCIhPT1lLnN1Z2dlc3RSZWFzb24mJm4udWludDMyKDI2KS5zdHJpbmcoZS5zdWdnZXN0UmVhc29uKSxcIlwiIT09ZS5mZWF0dXJlSnNvbiYmbi51aW50MzIoMzQpLnN0cmluZyhlLmZlYXR1cmVKc29uKSxcIlwiIT09ZS5tb2RlbElkJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUubW9kZWxJZCksXCIwXCIhPT1lLmV4cGVyaW1lbnRJZCYmbi51aW50MzIoNDgpLnVpbnQ2NChlLmV4cGVyaW1lbnRJZCksXCIwXCIhPT1lLm1vZGVsRGVwbG95bWVudFRzJiZuLnVpbnQzMig1NikudWludDY0KGUubW9kZWxEZXBsb3ltZW50VHMpLFwiMFwiIT09ZS5yYW5raW5nR2VuZXJhdGlvblRzJiZuLnVpbnQzMig2NCkudWludDY0KGUucmFua2luZ0dlbmVyYXRpb25UcyksXCIwXCIhPT1lLmltcHJlc3Npb25JZCYmbi51aW50MzIoNzIpLnVpbnQ2NChlLmltcHJlc3Npb25JZCksITA9PT1lLndpdGhBZGRlZCYmbi51aW50MzIoODApLmJvb2woZS53aXRoQWRkZWQpLCEwPT09ZS53aXRoUmVuZGVyZWRCZWZvcmVMYXN0QWRkZWRTdWdnZXN0aW9uJiZuLnVpbnQzMig4OCkuYm9vbChlLndpdGhSZW5kZXJlZEJlZm9yZUxhc3RBZGRlZFN1Z2dlc3Rpb24pLCEwPT09ZS53aXRoRmlyc3RUaW1lU2VlbiYmbi51aW50MzIoOTYpLmJvb2woZS53aXRoRmlyc3RUaW1lU2VlbiksXCIwXCIhPT1lLmluZGV4JiZuLnVpbnQzMigxMDQpLnVpbnQ2NChlLmluZGV4KSxcIlwiIT09ZS5wbGFjZW1lbnQmJm4udWludDMyKDExNCkuc3RyaW5nKGUucGxhY2VtZW50KSwwIT09ZS5sb2NhdGlvbiYmbi51aW50MzIoMTIwKS5pbnQzMihlLmxvY2F0aW9uKSxcIlwiIT09ZS50cmVhdG1lbnQmJm4udWludDMyKDEzMCkuc3RyaW5nKGUudHJlYXRtZW50KSwhMD09PWUud2l0aEwzMFVzZXImJm4udWludDMyKDEzNikuYm9vbChlLndpdGhMMzBVc2VyKSwhMD09PWUud2l0aFNhbXBsZWRVc2VyJiZuLnVpbnQzMigxNDQpLmJvb2woZS53aXRoU2FtcGxlZFVzZXIpLFwiXCIhPT1lLm90aGVyUGFyYW1zJiZuLnVpbnQzMigxNTQpLnN0cmluZyhlLm90aGVyUGFyYW1zKSxcIlwiIT09ZS5wYWdlTWFwJiZuLnVpbnQzMigxNjIpLnN0cmluZyhlLnBhZ2VNYXApLCEwPT09ZS53aXRoSW5Db250YWN0JiZuLnVpbnQzMigxNjgpLmJvb2woZS53aXRoSW5Db250YWN0KSwwIT09ZS5zY29yZSYmbi51aW50MzIoMTc3KS5kb3VibGUoZS5zY29yZSksXCJcIiE9PWUuYWxnb3JpdGhtJiZuLnVpbnQzMigxODYpLnN0cmluZyhlLmFsZ29yaXRobSksXCJcIiE9PWUuZnJpZW5kVXNlcklkJiZuLnVpbnQzMigxOTQpLnN0cmluZyhlLmZyaWVuZFVzZXJJZCksXCJcIiE9PWUuZnJpZW5kVXNlckd1aWQmJm4udWludDMyKDIxMCkuc3RyaW5nKGUuZnJpZW5kVXNlckd1aWQpLFwiXCIhPT1lLmluZmVyZW5jZUlkJiZuLnVpbnQzMigyMzQpLnN0cmluZyhlLmluZmVyZW5jZUlkKSxcIlwiIT09ZS5xdWVyeVR5cGUmJm4udWludDMyKDI1OCkuc3RyaW5nKGUucXVlcnlUeXBlKSwhMD09PWUuaXNRdWVyeUluUmVnJiZuLnVpbnQzMigyNjQpLmJvb2woZS5pc1F1ZXJ5SW5SZWcpLFwiMFwiIT09ZS50b3RhbEhpdHMmJm4udWludDMyKDI3MikudWludDY0KGUudG90YWxIaXRzKSxcIjBcIiE9PWUubnVtSG9wJiZuLnVpbnQzMigyODApLnVpbnQ2NChlLm51bUhvcCksITA9PT1lLmlzUmFuZG9tJiZuLnVpbnQzMigzMDQpLmJvb2woZS5pc1JhbmRvbSksITA9PT1lLmlzQWNjZXB0ZWQmJm4udWludDMyKDMyOCkuYm9vbChlLmlzQWNjZXB0ZWQpLCEwPT09ZS5pc0JhZGdlZCYmbi51aW50MzIoMzUyKS5ib29sKGUuaXNCYWRnZWQpLFwiMFwiIT09ZS5sYXRlbmN5JiZuLnVpbnQzMigzNzYpLnVpbnQ2NChlLmxhdGVuY3kpLFwiMFwiIT09ZS50b3RhbFN1Z2dlc3Rpb25zJiZuLnVpbnQzMig0MTYpLnVpbnQ2NChlLnRvdGFsU3VnZ2VzdGlvbnMpLFwiMFwiIT09ZS51bmlxdWVTdWdnZXN0aW9ucyYmbi51aW50MzIoNDI0KS51aW50NjQoZS51bmlxdWVTdWdnZXN0aW9ucyk7Zm9yKGNvbnN0IHIgb2YgZS5zdWdnZXN0aW9uQ291bnRzKXQuU3VnZ2VzdGlvbkNvdW50cy5lbmNvZGUocixuLnVpbnQzMig0MzQpLmZvcmsoKSkubGRlbGltKCk7cmV0dXJuIG59LGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c3VnZ2VzdGVkRnJpZW5kRXZlbnRUeXBlOjAsc3VnZ2VzdFJlYXNvbjpcIlwiLGZlYXR1cmVKc29uOlwiXCIsbW9kZWxJZDpcIlwiLGV4cGVyaW1lbnRJZDpcIjBcIixtb2RlbERlcGxveW1lbnRUczpcIjBcIixyYW5raW5nR2VuZXJhdGlvblRzOlwiMFwiLGltcHJlc3Npb25JZDpcIjBcIix3aXRoQWRkZWQ6ITEsd2l0aFJlbmRlcmVkQmVmb3JlTGFzdEFkZGVkU3VnZ2VzdGlvbjohMSx3aXRoRmlyc3RUaW1lU2VlbjohMSxpbmRleDpcIjBcIixwbGFjZW1lbnQ6XCJcIixsb2NhdGlvbjowLHRyZWF0bWVudDpcIlwiLHdpdGhMMzBVc2VyOiExLHdpdGhTYW1wbGVkVXNlcjohMSxvdGhlclBhcmFtczpcIlwiLHBhZ2VNYXA6XCJcIix3aXRoSW5Db250YWN0OiExLHNjb3JlOjAsYWxnb3JpdGhtOlwiXCIsZnJpZW5kVXNlcklkOlwiXCIsZnJpZW5kVXNlckd1aWQ6XCJcIixpbmZlcmVuY2VJZDpcIlwiLHF1ZXJ5VHlwZTpcIlwiLGlzUXVlcnlJblJlZzohMSx0b3RhbEhpdHM6XCIwXCIsbnVtSG9wOlwiMFwiLGlzUmFuZG9tOiExLGlzQWNjZXB0ZWQ6ITEsaXNCYWRnZWQ6ITEsbGF0ZW5jeTpcIjBcIix0b3RhbFN1Z2dlc3Rpb25zOlwiMFwiLHVuaXF1ZVN1Z2dlc3Rpb25zOlwiMFwiLHN1Z2dlc3Rpb25Db3VudHM6W119O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnN1Z2dlc3RlZEZyaWVuZEV2ZW50VHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuc3VnZ2VzdFJlYXNvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmZlYXR1cmVKc29uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEubW9kZWxJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNjphLmV4cGVyaW1lbnRJZD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNzphLm1vZGVsRGVwbG95bWVudFRzPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA4OmEucmFua2luZ0dlbmVyYXRpb25Ucz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgOTphLmltcHJlc3Npb25JZD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTA6YS53aXRoQWRkZWQ9ci5ib29sKCk7YnJlYWs7Y2FzZSAxMTphLndpdGhSZW5kZXJlZEJlZm9yZUxhc3RBZGRlZFN1Z2dlc3Rpb249ci5ib29sKCk7YnJlYWs7Y2FzZSAxMjphLndpdGhGaXJzdFRpbWVTZWVuPXIuYm9vbCgpO2JyZWFrO2Nhc2UgMTM6YS5pbmRleD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTQ6YS5wbGFjZW1lbnQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDE1OmEubG9jYXRpb249ci5pbnQzMigpO2JyZWFrO2Nhc2UgMTY6YS50cmVhdG1lbnQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDE3OmEud2l0aEwzMFVzZXI9ci5ib29sKCk7YnJlYWs7Y2FzZSAxODphLndpdGhTYW1wbGVkVXNlcj1yLmJvb2woKTticmVhaztjYXNlIDE5OmEub3RoZXJQYXJhbXM9ci5zdHJpbmcoKTticmVhaztjYXNlIDIwOmEucGFnZU1hcD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMjE6YS53aXRoSW5Db250YWN0PXIuYm9vbCgpO2JyZWFrO2Nhc2UgMjI6YS5zY29yZT1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMjM6YS5hbGdvcml0aG09ci5zdHJpbmcoKTticmVhaztjYXNlIDI0OmEuZnJpZW5kVXNlcklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAyNjphLmZyaWVuZFVzZXJHdWlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOTphLmluZmVyZW5jZUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzMjphLnF1ZXJ5VHlwZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzM6YS5pc1F1ZXJ5SW5SZWc9ci5ib29sKCk7YnJlYWs7Y2FzZSAzNDphLnRvdGFsSGl0cz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzU6YS5udW1Ib3A9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDM4OmEuaXNSYW5kb209ci5ib29sKCk7YnJlYWs7Y2FzZSA0MTphLmlzQWNjZXB0ZWQ9ci5ib29sKCk7YnJlYWs7Y2FzZSA0NDphLmlzQmFkZ2VkPXIuYm9vbCgpO2JyZWFrO2Nhc2UgNDc6YS5sYXRlbmN5PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA1MjphLnRvdGFsU3VnZ2VzdGlvbnM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDUzOmEudW5pcXVlU3VnZ2VzdGlvbnM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDU0OmEuc3VnZ2VzdGlvbkNvdW50cy5wdXNoKHQuU3VnZ2VzdGlvbkNvdW50cy5kZWNvZGUocixyLnVpbnQzMigpKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzdWdnZXN0ZWRGcmllbmRFdmVudFR5cGU6MCxzdWdnZXN0UmVhc29uOlwiXCIsZmVhdHVyZUpzb246XCJcIixtb2RlbElkOlwiXCIsZXhwZXJpbWVudElkOlwiMFwiLG1vZGVsRGVwbG95bWVudFRzOlwiMFwiLHJhbmtpbmdHZW5lcmF0aW9uVHM6XCIwXCIsaW1wcmVzc2lvbklkOlwiMFwiLHdpdGhBZGRlZDohMSx3aXRoUmVuZGVyZWRCZWZvcmVMYXN0QWRkZWRTdWdnZXN0aW9uOiExLHdpdGhGaXJzdFRpbWVTZWVuOiExLGluZGV4OlwiMFwiLHBsYWNlbWVudDpcIlwiLGxvY2F0aW9uOjAsdHJlYXRtZW50OlwiXCIsd2l0aEwzMFVzZXI6ITEsd2l0aFNhbXBsZWRVc2VyOiExLG90aGVyUGFyYW1zOlwiXCIscGFnZU1hcDpcIlwiLHdpdGhJbkNvbnRhY3Q6ITEsc2NvcmU6MCxhbGdvcml0aG06XCJcIixmcmllbmRVc2VySWQ6XCJcIixmcmllbmRVc2VyR3VpZDpcIlwiLGluZmVyZW5jZUlkOlwiXCIscXVlcnlUeXBlOlwiXCIsaXNRdWVyeUluUmVnOiExLHRvdGFsSGl0czpcIjBcIixudW1Ib3A6XCIwXCIsaXNSYW5kb206ITEsaXNBY2NlcHRlZDohMSxpc0JhZGdlZDohMSxsYXRlbmN5OlwiMFwiLHRvdGFsU3VnZ2VzdGlvbnM6XCIwXCIsdW5pcXVlU3VnZ2VzdGlvbnM6XCIwXCIsc3VnZ2VzdGlvbkNvdW50czpbXX07cmV0dXJuIG4uc3VnZ2VzdGVkRnJpZW5kRXZlbnRUeXBlPWUuc3VnZ2VzdGVkRnJpZW5kRXZlbnRUeXBlPz8wLG4uc3VnZ2VzdFJlYXNvbj1lLnN1Z2dlc3RSZWFzb24/P1wiXCIsbi5mZWF0dXJlSnNvbj1lLmZlYXR1cmVKc29uPz9cIlwiLG4ubW9kZWxJZD1lLm1vZGVsSWQ/P1wiXCIsbi5leHBlcmltZW50SWQ9ZS5leHBlcmltZW50SWQ/P1wiMFwiLG4ubW9kZWxEZXBsb3ltZW50VHM9ZS5tb2RlbERlcGxveW1lbnRUcz8/XCIwXCIsbi5yYW5raW5nR2VuZXJhdGlvblRzPWUucmFua2luZ0dlbmVyYXRpb25Ucz8/XCIwXCIsbi5pbXByZXNzaW9uSWQ9ZS5pbXByZXNzaW9uSWQ/P1wiMFwiLG4ud2l0aEFkZGVkPWUud2l0aEFkZGVkPz8hMSxuLndpdGhSZW5kZXJlZEJlZm9yZUxhc3RBZGRlZFN1Z2dlc3Rpb249ZS53aXRoUmVuZGVyZWRCZWZvcmVMYXN0QWRkZWRTdWdnZXN0aW9uPz8hMSxuLndpdGhGaXJzdFRpbWVTZWVuPWUud2l0aEZpcnN0VGltZVNlZW4/PyExLG4uaW5kZXg9ZS5pbmRleD8/XCIwXCIsbi5wbGFjZW1lbnQ9ZS5wbGFjZW1lbnQ/P1wiXCIsbi5sb2NhdGlvbj1lLmxvY2F0aW9uPz8wLG4udHJlYXRtZW50PWUudHJlYXRtZW50Pz9cIlwiLG4ud2l0aEwzMFVzZXI9ZS53aXRoTDMwVXNlcj8/ITEsbi53aXRoU2FtcGxlZFVzZXI9ZS53aXRoU2FtcGxlZFVzZXI/PyExLG4ub3RoZXJQYXJhbXM9ZS5vdGhlclBhcmFtcz8/XCJcIixuLnBhZ2VNYXA9ZS5wYWdlTWFwPz9cIlwiLG4ud2l0aEluQ29udGFjdD1lLndpdGhJbkNvbnRhY3Q/PyExLG4uc2NvcmU9ZS5zY29yZT8/MCxuLmFsZ29yaXRobT1lLmFsZ29yaXRobT8/XCJcIixuLmZyaWVuZFVzZXJJZD1lLmZyaWVuZFVzZXJJZD8/XCJcIixuLmZyaWVuZFVzZXJHdWlkPWUuZnJpZW5kVXNlckd1aWQ/P1wiXCIsbi5pbmZlcmVuY2VJZD1lLmluZmVyZW5jZUlkPz9cIlwiLG4ucXVlcnlUeXBlPWUucXVlcnlUeXBlPz9cIlwiLG4uaXNRdWVyeUluUmVnPWUuaXNRdWVyeUluUmVnPz8hMSxuLnRvdGFsSGl0cz1lLnRvdGFsSGl0cz8/XCIwXCIsbi5udW1Ib3A9ZS5udW1Ib3A/P1wiMFwiLG4uaXNSYW5kb209ZS5pc1JhbmRvbT8/ITEsbi5pc0FjY2VwdGVkPWUuaXNBY2NlcHRlZD8/ITEsbi5pc0JhZGdlZD1lLmlzQmFkZ2VkPz8hMSxuLmxhdGVuY3k9ZS5sYXRlbmN5Pz9cIjBcIixuLnRvdGFsU3VnZ2VzdGlvbnM9ZS50b3RhbFN1Z2dlc3Rpb25zPz9cIjBcIixuLnVuaXF1ZVN1Z2dlc3Rpb25zPWUudW5pcXVlU3VnZ2VzdGlvbnM/P1wiMFwiLG4uc3VnZ2VzdGlvbkNvdW50cz1lLnN1Z2dlc3Rpb25Db3VudHM/Lm1hcCgoZT0+dC5TdWdnZXN0aW9uQ291bnRzLmZyb21QYXJ0aWFsKGUpKSl8fFtdLG59fSx0LlRhbGtTdHJlYW1lclJlc29sdmU9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oMCE9PWUuZXhwZXJpZW5jZVR5cGUmJnQudWludDMyKDgpLmludDMyKGUuZXhwZXJpZW5jZVR5cGUpLFwiMFwiIT09ZS5hc2gmJnQudWludDMyKDE2KS51aW50NjQoZS5hc2gpLFwiMFwiIT09ZS5zdHJlYW1lcklwJiZ0LnVpbnQzMigyNCkudWludDY0KGUuc3RyZWFtZXJJcCksXCJcIiE9PWUuc2NvcGVJZCYmdC51aW50MzIoMzQpLnN0cmluZyhlLnNjb3BlSWQpLFwiMFwiIT09ZS5wYXJ0aWNpcGFudElkJiZ0LnVpbnQzMig0MCkudWludDY0KGUucGFydGljaXBhbnRJZCksXCIwXCIhPT1lLmF0dGVtcHRJZCYmdC51aW50MzIoNDgpLnVpbnQ2NChlLmF0dGVtcHRJZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtleHBlcmllbmNlVHlwZTowLGFzaDpcIjBcIixzdHJlYW1lcklwOlwiMFwiLHNjb3BlSWQ6XCJcIixwYXJ0aWNpcGFudElkOlwiMFwiLGF0dGVtcHRJZDpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuZXhwZXJpZW5jZVR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLmFzaD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgMzppLnN0cmVhbWVySXA9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6aS5zY29wZUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkucGFydGljaXBhbnRJZD1wKG4udWludDY0KCkpO2JyZWFrO2Nhc2UgNjppLmF0dGVtcHRJZD1wKG4udWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17ZXhwZXJpZW5jZVR5cGU6MCxhc2g6XCIwXCIsc3RyZWFtZXJJcDpcIjBcIixzY29wZUlkOlwiXCIscGFydGljaXBhbnRJZDpcIjBcIixhdHRlbXB0SWQ6XCIwXCJ9O3JldHVybiB0LmV4cGVyaWVuY2VUeXBlPWUuZXhwZXJpZW5jZVR5cGU/PzAsdC5hc2g9ZS5hc2g/P1wiMFwiLHQuc3RyZWFtZXJJcD1lLnN0cmVhbWVySXA/P1wiMFwiLHQuc2NvcGVJZD1lLnNjb3BlSWQ/P1wiXCIsdC5wYXJ0aWNpcGFudElkPWUucGFydGljaXBhbnRJZD8/XCIwXCIsdC5hdHRlbXB0SWQ9ZS5hdHRlbXB0SWQ/P1wiMFwiLHR9fSx0LlRhbGtTdHJlYW1lclNlc3Npb249e2VuY29kZShlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSl7MCE9PWUuZXhwZXJpZW5jZVR5cGUmJm4udWludDMyKDgpLmludDMyKGUuZXhwZXJpZW5jZVR5cGUpLFwiMFwiIT09ZS5hc2gmJm4udWludDMyKDE2KS51aW50NjQoZS5hc2gpLFwiMFwiIT09ZS5zdHJlYW1lcklwJiZuLnVpbnQzMigyNCkudWludDY0KGUuc3RyZWFtZXJJcCksXCJcIiE9PWUuc2NvcGVJZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLnNjb3BlSWQpLFwiMFwiIT09ZS5zdGFydFRpbWVNcyYmbi51aW50MzIoNDApLnVpbnQ2NChlLnN0YXJ0VGltZU1zKSxcIjBcIiE9PWUuZW5kVGltZU1zJiZuLnVpbnQzMig0OCkudWludDY0KGUuZW5kVGltZU1zKSxcIjBcIiE9PWUudGltZUNvbm5lY3RlZE1zJiZuLnVpbnQzMig1NikudWludDY0KGUudGltZUNvbm5lY3RlZE1zKSxcIjBcIiE9PWUudGltZUF1ZGlvU3RyZWFtZWRNcyYmbi51aW50MzIoNjQpLnVpbnQ2NChlLnRpbWVBdWRpb1N0cmVhbWVkTXMpLFwiMFwiIT09ZS50aW1lVmlkZW9TdHJlYW1lZE1zJiZuLnVpbnQzMig3MikudWludDY0KGUudGltZVZpZGVvU3RyZWFtZWRNcyksXCIwXCIhPT1lLmF0dGVtcHRJZCYmbi51aW50MzIoODApLnVpbnQ2NChlLmF0dGVtcHRJZCk7Zm9yKGNvbnN0IHIgb2YgZS5wYXJ0aWNpcGFudHMpdC5UYWxrU3RyZWFtZXJQYXJ0aWNpcGFudC5lbmNvZGUocixuLnVpbnQzMig5MCkuZm9yaygpKS5sZGVsaW0oKTtmb3IoY29uc3QgciBvZiBlLmFjdGl2aXR5KXQuVGFsa1N0cmVhbWVyQWN0aXZpdHkuZW5jb2RlKHIsbi51aW50MzIoOTgpLmZvcmsoKSkubGRlbGltKCk7cmV0dXJuIG59LGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17ZXhwZXJpZW5jZVR5cGU6MCxhc2g6XCIwXCIsc3RyZWFtZXJJcDpcIjBcIixzY29wZUlkOlwiXCIsc3RhcnRUaW1lTXM6XCIwXCIsZW5kVGltZU1zOlwiMFwiLHRpbWVDb25uZWN0ZWRNczpcIjBcIix0aW1lQXVkaW9TdHJlYW1lZE1zOlwiMFwiLHRpbWVWaWRlb1N0cmVhbWVkTXM6XCIwXCIsYXR0ZW1wdElkOlwiMFwiLHBhcnRpY2lwYW50czpbXSxhY3Rpdml0eTpbXX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuZXhwZXJpZW5jZVR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMjphLmFzaD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLnN0cmVhbWVySXA9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6YS5zY29wZUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEuc3RhcnRUaW1lTXM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6YS5lbmRUaW1lTXM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDc6YS50aW1lQ29ubmVjdGVkTXM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDg6YS50aW1lQXVkaW9TdHJlYW1lZE1zPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA5OmEudGltZVZpZGVvU3RyZWFtZWRNcz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTA6YS5hdHRlbXB0SWQ9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDExOmEucGFydGljaXBhbnRzLnB1c2godC5UYWxrU3RyZWFtZXJQYXJ0aWNpcGFudC5kZWNvZGUocixyLnVpbnQzMigpKSk7YnJlYWs7Y2FzZSAxMjphLmFjdGl2aXR5LnB1c2godC5UYWxrU3RyZWFtZXJBY3Rpdml0eS5kZWNvZGUocixyLnVpbnQzMigpKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtleHBlcmllbmNlVHlwZTowLGFzaDpcIjBcIixzdHJlYW1lcklwOlwiMFwiLHNjb3BlSWQ6XCJcIixzdGFydFRpbWVNczpcIjBcIixlbmRUaW1lTXM6XCIwXCIsdGltZUNvbm5lY3RlZE1zOlwiMFwiLHRpbWVBdWRpb1N0cmVhbWVkTXM6XCIwXCIsdGltZVZpZGVvU3RyZWFtZWRNczpcIjBcIixhdHRlbXB0SWQ6XCIwXCIscGFydGljaXBhbnRzOltdLGFjdGl2aXR5OltdfTtyZXR1cm4gbi5leHBlcmllbmNlVHlwZT1lLmV4cGVyaWVuY2VUeXBlPz8wLG4uYXNoPWUuYXNoPz9cIjBcIixuLnN0cmVhbWVySXA9ZS5zdHJlYW1lcklwPz9cIjBcIixuLnNjb3BlSWQ9ZS5zY29wZUlkPz9cIlwiLG4uc3RhcnRUaW1lTXM9ZS5zdGFydFRpbWVNcz8/XCIwXCIsbi5lbmRUaW1lTXM9ZS5lbmRUaW1lTXM/P1wiMFwiLG4udGltZUNvbm5lY3RlZE1zPWUudGltZUNvbm5lY3RlZE1zPz9cIjBcIixuLnRpbWVBdWRpb1N0cmVhbWVkTXM9ZS50aW1lQXVkaW9TdHJlYW1lZE1zPz9cIjBcIixuLnRpbWVWaWRlb1N0cmVhbWVkTXM9ZS50aW1lVmlkZW9TdHJlYW1lZE1zPz9cIjBcIixuLmF0dGVtcHRJZD1lLmF0dGVtcHRJZD8/XCIwXCIsbi5wYXJ0aWNpcGFudHM9ZS5wYXJ0aWNpcGFudHM/Lm1hcCgoZT0+dC5UYWxrU3RyZWFtZXJQYXJ0aWNpcGFudC5mcm9tUGFydGlhbChlKSkpfHxbXSxuLmFjdGl2aXR5PWUuYWN0aXZpdHk/Lm1hcCgoZT0+dC5UYWxrU3RyZWFtZXJBY3Rpdml0eS5mcm9tUGFydGlhbChlKSkpfHxbXSxufX0sdC5UaXZBY2tub3dsZWRnZWRTZXJ2ZXI9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuc2Vzc2lvbklkJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc2Vzc2lvbklkKSxcIlwiIT09ZS50cmFuc2FjdGlvbklkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUudHJhbnNhY3Rpb25JZCksXCJcIiE9PWUuYnJvYWRjYXN0SWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5icm9hZGNhc3RJZCksMCE9PWUudGl2UmVzcG9uc2UmJnQudWludDMyKDMyKS5pbnQzMihlLnRpdlJlc3BvbnNlKSwwIT09ZS50cmFuc2FjdGlvbiYmdC51aW50MzIoNDApLmludDMyKGUudHJhbnNhY3Rpb24pLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvbklkOlwiXCIsdHJhbnNhY3Rpb25JZDpcIlwiLGJyb2FkY2FzdElkOlwiXCIsdGl2UmVzcG9uc2U6MCx0cmFuc2FjdGlvbjowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS50cmFuc2FjdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuYnJvYWRjYXN0SWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS50aXZSZXNwb25zZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA1OmkudHJhbnNhY3Rpb249bi5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c2Vzc2lvbklkOlwiXCIsdHJhbnNhY3Rpb25JZDpcIlwiLGJyb2FkY2FzdElkOlwiXCIsdGl2UmVzcG9uc2U6MCx0cmFuc2FjdGlvbjowfTtyZXR1cm4gdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWQ/P1wiXCIsdC50cmFuc2FjdGlvbklkPWUudHJhbnNhY3Rpb25JZD8/XCJcIix0LmJyb2FkY2FzdElkPWUuYnJvYWRjYXN0SWQ/P1wiXCIsdC50aXZSZXNwb25zZT1lLnRpdlJlc3BvbnNlPz8wLHQudHJhbnNhY3Rpb249ZS50cmFuc2FjdGlvbj8/MCx0fX0sdC5UaXZOb3RpZmljYXRpb25EaXNwbGF5ZWRTZXJ2ZXI9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUudHJhbnNhY3Rpb25JZCYmdC51aW50MzIoMTApLnN0cmluZyhlLnRyYW5zYWN0aW9uSWQpLFwiXCIhPT1lLmJyb2FkY2FzdElkJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuYnJvYWRjYXN0SWQpLFwiXCIhPT1lLnNlc3Npb25JZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLnNlc3Npb25JZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt0cmFuc2FjdGlvbklkOlwiXCIsYnJvYWRjYXN0SWQ6XCJcIixzZXNzaW9uSWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkudHJhbnNhY3Rpb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmJyb2FkY2FzdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuc2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt0cmFuc2FjdGlvbklkOlwiXCIsYnJvYWRjYXN0SWQ6XCJcIixzZXNzaW9uSWQ6XCJcIn07cmV0dXJuIHQudHJhbnNhY3Rpb25JZD1lLnRyYW5zYWN0aW9uSWQ/P1wiXCIsdC5icm9hZGNhc3RJZD1lLmJyb2FkY2FzdElkPz9cIlwiLHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLHR9fSx0LlRpdk5vdGlmaWNhdGlvblJlY2VpdmVkU2VydmVyPXtlbmNvZGU6KGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KFwiXCIhPT1lLnRyYW5zYWN0aW9uSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS50cmFuc2FjdGlvbklkKSxcIlwiIT09ZS5icm9hZGNhc3RJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmJyb2FkY2FzdElkKSxcIlwiIT09ZS5zZXNzaW9uSWQmJnQudWludDMyKDI2KS5zdHJpbmcoZS5zZXNzaW9uSWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17dHJhbnNhY3Rpb25JZDpcIlwiLGJyb2FkY2FzdElkOlwiXCIsc2Vzc2lvbklkOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnRyYW5zYWN0aW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5icm9hZGNhc3RJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17dHJhbnNhY3Rpb25JZDpcIlwiLGJyb2FkY2FzdElkOlwiXCIsc2Vzc2lvbklkOlwiXCJ9O3JldHVybiB0LnRyYW5zYWN0aW9uSWQ9ZS50cmFuc2FjdGlvbklkPz9cIlwiLHQuYnJvYWRjYXN0SWQ9ZS5icm9hZGNhc3RJZD8/XCJcIix0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0fX0sdC5UaXZTZW50RmFpbHVyZVNlcnZlcj17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zZXNzaW9uSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zZXNzaW9uSWQpLFwiXCIhPT1lLnRyYW5zYWN0aW9uSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS50cmFuc2FjdGlvbklkKSwwIT09ZS50cmFuc2FjdGlvbiYmdC51aW50MzIoMjQpLmludDMyKGUudHJhbnNhY3Rpb24pLDAhPT1lLnRpdlNlbnRGYWlsdXJlUmVhc29uJiZ0LnVpbnQzMigzMikuaW50MzIoZS50aXZTZW50RmFpbHVyZVJlYXNvbiksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzZXNzaW9uSWQ6XCJcIix0cmFuc2FjdGlvbklkOlwiXCIsdHJhbnNhY3Rpb246MCx0aXZTZW50RmFpbHVyZVJlYXNvbjowfTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS50cmFuc2FjdGlvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkudHJhbnNhY3Rpb249bi5pbnQzMigpO2JyZWFrO2Nhc2UgNDppLnRpdlNlbnRGYWlsdXJlUmVhc29uPW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3Nlc3Npb25JZDpcIlwiLHRyYW5zYWN0aW9uSWQ6XCJcIix0cmFuc2FjdGlvbjowLHRpdlNlbnRGYWlsdXJlUmVhc29uOjB9O3JldHVybiB0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0LnRyYW5zYWN0aW9uSWQ9ZS50cmFuc2FjdGlvbklkPz9cIlwiLHQudHJhbnNhY3Rpb249ZS50cmFuc2FjdGlvbj8/MCx0LnRpdlNlbnRGYWlsdXJlUmVhc29uPWUudGl2U2VudEZhaWx1cmVSZWFzb24/PzAsdH19LHQuVGl2U2VudFNlcnZlcj17ZW5jb2RlKGUsdD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKXtcIlwiIT09ZS5zZXNzaW9uSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zZXNzaW9uSWQpLFwiXCIhPT1lLnRyYW5zYWN0aW9uSWQmJnQudWludDMyKDE4KS5zdHJpbmcoZS50cmFuc2FjdGlvbklkKSxcIlwiIT09ZS5icm9hZGNhc3RJZCYmdC51aW50MzIoMjYpLnN0cmluZyhlLmJyb2FkY2FzdElkKSwwIT09ZS50cmFuc2FjdGlvbiYmdC51aW50MzIoMzIpLmludDMyKGUudHJhbnNhY3Rpb24pLHQudWludDMyKDQyKS5mb3JrKCk7Zm9yKGNvbnN0IG4gb2YgZS5jaGFubmVscyl0LmludDMyKG4pO3JldHVybiB0LmxkZWxpbSgpLHR9LGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvbklkOlwiXCIsdHJhbnNhY3Rpb25JZDpcIlwiLGJyb2FkY2FzdElkOlwiXCIsdHJhbnNhY3Rpb246MCxjaGFubmVsczpbXX07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuc2Vzc2lvbklkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudHJhbnNhY3Rpb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLmJyb2FkY2FzdElkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmkudHJhbnNhY3Rpb249bi5pbnQzMigpO2JyZWFrO2Nhc2UgNTppZigyPT09KDcmZSkpe2NvbnN0IGU9bi51aW50MzIoKStuLnBvcztmb3IoO24ucG9zPGU7KWkuY2hhbm5lbHMucHVzaChuLmludDMyKCkpfWVsc2UgaS5jaGFubmVscy5wdXNoKG4uaW50MzIoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXNzaW9uSWQ6XCJcIix0cmFuc2FjdGlvbklkOlwiXCIsYnJvYWRjYXN0SWQ6XCJcIix0cmFuc2FjdGlvbjowLGNoYW5uZWxzOltdfTtyZXR1cm4gdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWQ/P1wiXCIsdC50cmFuc2FjdGlvbklkPWUudHJhbnNhY3Rpb25JZD8/XCJcIix0LmJyb2FkY2FzdElkPWUuYnJvYWRjYXN0SWQ/P1wiXCIsdC50cmFuc2FjdGlvbj1lLnRyYW5zYWN0aW9uPz8wLHQuY2hhbm5lbHM9ZS5jaGFubmVscz8ubWFwKChlPT5lKSl8fFtdLHR9fSx0LlRva2VuTGlmZWN5Y2xlU2VydmVyRXZlbnQ9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUudG9rZW5IYXNoJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUudG9rZW5IYXNoKSxcIlwiIT09ZS50b2tlbkV2ZW50TmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnRva2VuRXZlbnROYW1lKSxcIlwiIT09ZS50b2tlblR5cGUmJnQudWludDMyKDI2KS5zdHJpbmcoZS50b2tlblR5cGUpLFwiXCIhPT1lLnNlcnZlckxvZ2luUmVxdWVzdElkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuc2VydmVyTG9naW5SZXF1ZXN0SWQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17dG9rZW5IYXNoOlwiXCIsdG9rZW5FdmVudE5hbWU6XCJcIix0b2tlblR5cGU6XCJcIixzZXJ2ZXJMb2dpblJlcXVlc3RJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS50b2tlbkhhc2g9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS50b2tlbkV2ZW50TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnRva2VuVHlwZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnNlcnZlckxvZ2luUmVxdWVzdElkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXt0b2tlbkhhc2g6XCJcIix0b2tlbkV2ZW50TmFtZTpcIlwiLHRva2VuVHlwZTpcIlwiLHNlcnZlckxvZ2luUmVxdWVzdElkOlwiXCJ9O3JldHVybiB0LnRva2VuSGFzaD1lLnRva2VuSGFzaD8/XCJcIix0LnRva2VuRXZlbnROYW1lPWUudG9rZW5FdmVudE5hbWU/P1wiXCIsdC50b2tlblR5cGU9ZS50b2tlblR5cGU/P1wiXCIsdC5zZXJ2ZXJMb2dpblJlcXVlc3RJZD1lLnNlcnZlckxvZ2luUmVxdWVzdElkPz9cIlwiLHR9fSx0LlRyYW5zY3JpYmVBbmRDbGFzc2lmeUluZmVycmVkQ2xhc3M9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUuY2F0ZWdvcnlOYW1lJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuY2F0ZWdvcnlOYW1lKSxcIlwiIT09ZS5jbGFzc05hbWUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jbGFzc05hbWUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17Y2F0ZWdvcnlOYW1lOlwiXCIsY2xhc3NOYW1lOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmNhdGVnb3J5TmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLmNsYXNzTmFtZT1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17Y2F0ZWdvcnlOYW1lOlwiXCIsY2xhc3NOYW1lOlwiXCJ9O3JldHVybiB0LmNhdGVnb3J5TmFtZT1lLmNhdGVnb3J5TmFtZT8/XCJcIix0LmNsYXNzTmFtZT1lLmNsYXNzTmFtZT8/XCJcIix0fX0sdC5UcmFuc2NyaWJlQW5kQ2xhc3NpZnlTZXJ2ZXJSZXF1ZXN0UmVjZWl2ZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5sYW5ndWFnZUNvZGUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5sYW5ndWFnZUNvZGUpLDAhPT1lLmF1ZGlvRHVyYXRpb25TZWMmJnQudWludDMyKDE3KS5kb3VibGUoZS5hdWRpb0R1cmF0aW9uU2VjKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2xhbmd1YWdlQ29kZTpcIlwiLGF1ZGlvRHVyYXRpb25TZWM6MH07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkubGFuZ3VhZ2VDb2RlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuYXVkaW9EdXJhdGlvblNlYz1uLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17bGFuZ3VhZ2VDb2RlOlwiXCIsYXVkaW9EdXJhdGlvblNlYzowfTtyZXR1cm4gdC5sYW5ndWFnZUNvZGU9ZS5sYW5ndWFnZUNvZGU/P1wiXCIsdC5hdWRpb0R1cmF0aW9uU2VjPWUuYXVkaW9EdXJhdGlvblNlYz8/MCx0fX0sdC5VcGRhdGVMb2NhdGlvblNoYXJpbmdTZXR0aW5nRGF0YT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIjBcIiE9PWUubGFzdFVwZGF0ZVRpbWVzdGFtcCYmdC51aW50MzIoOCkudWludDY0KGUubGFzdFVwZGF0ZVRpbWVzdGFtcCksXCJcIiE9PWUuY3VycmVudEF1ZGllbmNlJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuY3VycmVudEF1ZGllbmNlKSxcIjBcIiE9PWUuY3VycmVudEF1ZGllbmNlU2l6ZSYmdC51aW50MzIoMjQpLnVpbnQ2NChlLmN1cnJlbnRBdWRpZW5jZVNpemUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bGFzdFVwZGF0ZVRpbWVzdGFtcDpcIjBcIixjdXJyZW50QXVkaWVuY2U6XCJcIixjdXJyZW50QXVkaWVuY2VTaXplOlwiMFwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5sYXN0VXBkYXRlVGltZXN0YW1wPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAyOmkuY3VycmVudEF1ZGllbmNlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmkuY3VycmVudEF1ZGllbmNlU2l6ZT1wKG4udWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17bGFzdFVwZGF0ZVRpbWVzdGFtcDpcIjBcIixjdXJyZW50QXVkaWVuY2U6XCJcIixjdXJyZW50QXVkaWVuY2VTaXplOlwiMFwifTtyZXR1cm4gdC5sYXN0VXBkYXRlVGltZXN0YW1wPWUubGFzdFVwZGF0ZVRpbWVzdGFtcD8/XCIwXCIsdC5jdXJyZW50QXVkaWVuY2U9ZS5jdXJyZW50QXVkaWVuY2U/P1wiXCIsdC5jdXJyZW50QXVkaWVuY2VTaXplPWUuY3VycmVudEF1ZGllbmNlU2l6ZT8/XCIwXCIsdH19LHQuVXNlclNlc3Npb25MaWZlY3ljbGVTZXJ2ZXJFdmVudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zZXNzaW9uSWQmJnQudWludDMyKDEwKS5zdHJpbmcoZS5zZXNzaW9uSWQpLFwiXCIhPT1lLmxpZmVjeWNsZUV2ZW50TmFtZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLmxpZmVjeWNsZUV2ZW50TmFtZSksXCJcIiE9PWUuaXBBZGRyZXNzJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuaXBBZGRyZXNzKSxcIlwiIT09ZS5jbGllbnRJZCYmdC51aW50MzIoMzQpLnN0cmluZyhlLmNsaWVudElkKSxcIlwiIT09ZS5yZWFzb24mJnQudWludDMyKDQyKS5zdHJpbmcoZS5yZWFzb24pLFwiXCIhPT1lLmRldGFpbGVkUmVhc29uJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuZGV0YWlsZWRSZWFzb24pLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvbklkOlwiXCIsbGlmZWN5Y2xlRXZlbnROYW1lOlwiXCIsaXBBZGRyZXNzOlwiXCIsY2xpZW50SWQ6XCJcIixyZWFzb246XCJcIixkZXRhaWxlZFJlYXNvbjpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6aS5zZXNzaW9uSWQ9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5saWZlY3ljbGVFdmVudE5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5pcEFkZHJlc3M9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5jbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLnJlYXNvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLmRldGFpbGVkUmVhc29uPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtzZXNzaW9uSWQ6XCJcIixsaWZlY3ljbGVFdmVudE5hbWU6XCJcIixpcEFkZHJlc3M6XCJcIixjbGllbnRJZDpcIlwiLHJlYXNvbjpcIlwiLGRldGFpbGVkUmVhc29uOlwiXCJ9O3JldHVybiB0LnNlc3Npb25JZD1lLnNlc3Npb25JZD8/XCJcIix0LmxpZmVjeWNsZUV2ZW50TmFtZT1lLmxpZmVjeWNsZUV2ZW50TmFtZT8/XCJcIix0LmlwQWRkcmVzcz1lLmlwQWRkcmVzcz8/XCJcIix0LmNsaWVudElkPWUuY2xpZW50SWQ/P1wiXCIsdC5yZWFzb249ZS5yZWFzb24/P1wiXCIsdC5kZXRhaWxlZFJlYXNvbj1lLmRldGFpbGVkUmVhc29uPz9cIlwiLHR9fSx0LlZvaWNlTm90ZXNSZXF1ZXN0UmVjZWl2ZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5sYW5ndWFnZUNvZGUmJnQudWludDMyKDEwKS5zdHJpbmcoZS5sYW5ndWFnZUNvZGUpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bGFuZ3VhZ2VDb2RlOlwiXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtpZihlPj4+Mz09PTEpaS5sYW5ndWFnZUNvZGU9bi5zdHJpbmcoKTtlbHNlIG4uc2tpcFR5cGUoNyZlKX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17bGFuZ3VhZ2VDb2RlOlwiXCJ9O3JldHVybiB0Lmxhbmd1YWdlQ29kZT1lLmxhbmd1YWdlQ29kZT8/XCJcIix0fX0sdC5Wb2ljZU5vdGVzUmVzcG9uc2U9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCJcIiE9PWUubGFuZ3VhZ2VDb2RlJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUubGFuZ3VhZ2VDb2RlKSwhMD09PWUubm9UcmFuc2NyaXB0QXZhaWxhYmxlJiZ0LnVpbnQzMigxNikuYm9vbChlLm5vVHJhbnNjcmlwdEF2YWlsYWJsZSksMCE9PWUuYXVkaW9EdXJhdGlvblNlYyYmdC51aW50MzIoMjUpLmRvdWJsZShlLmF1ZGlvRHVyYXRpb25TZWMpLFwiMFwiIT09ZS53b3JkQ291bnQmJnQudWludDMyKDMyKS51aW50NjQoZS53b3JkQ291bnQpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17bGFuZ3VhZ2VDb2RlOlwiXCIsbm9UcmFuc2NyaXB0QXZhaWxhYmxlOiExLGF1ZGlvRHVyYXRpb25TZWM6MCx3b3JkQ291bnQ6XCIwXCJ9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLmxhbmd1YWdlQ29kZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLm5vVHJhbnNjcmlwdEF2YWlsYWJsZT1uLmJvb2woKTticmVhaztjYXNlIDM6aS5hdWRpb0R1cmF0aW9uU2VjPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA0Omkud29yZENvdW50PXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtsYW5ndWFnZUNvZGU6XCJcIixub1RyYW5zY3JpcHRBdmFpbGFibGU6ITEsYXVkaW9EdXJhdGlvblNlYzowLHdvcmRDb3VudDpcIjBcIn07cmV0dXJuIHQubGFuZ3VhZ2VDb2RlPWUubGFuZ3VhZ2VDb2RlPz9cIlwiLHQubm9UcmFuc2NyaXB0QXZhaWxhYmxlPWUubm9UcmFuc2NyaXB0QXZhaWxhYmxlPz8hMSx0LmF1ZGlvRHVyYXRpb25TZWM9ZS5hdWRpb0R1cmF0aW9uU2VjPz8wLHQud29yZENvdW50PWUud29yZENvdW50Pz9cIjBcIix0fX0sdC5XZWJPZmZQbGF0Zm9ybVNoYXJlPXtlbmNvZGUoZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpe1wiMFwiIT09ZS5zZXNzaW9uVGltZVNlYyYmdC51aW50MzIoOCkudWludDY0KGUuc2Vzc2lvblRpbWVTZWMpLDAhPT1lLnNvdXJjZSYmdC51aW50MzIoMTYpLmludDMyKGUuc291cmNlKSwwIT09ZS5kZXN0aW5hdGlvblNlbGVjdGVkJiZ0LnVpbnQzMigyNCkuaW50MzIoZS5kZXN0aW5hdGlvblNlbGVjdGVkKSxcIlwiIT09ZS5kZWVwTGlua1VybCYmdC51aW50MzIoMzQpLnN0cmluZyhlLmRlZXBMaW5rVXJsKSxcIlwiIT09ZS53ZWJQYWdlVXJsJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUud2ViUGFnZVVybCksMCE9PWUuc2hhcmVTdGF0dXMmJnQudWludDMyKDQ4KS5pbnQzMihlLnNoYXJlU3RhdHVzKSx0LnVpbnQzMig1OCkuZm9yaygpO2Zvcihjb25zdCBuIG9mIGUuZGVzdGluYXRpb25zQXZhaWxhYmxlKXQuaW50MzIobik7dC5sZGVsaW0oKSx0LnVpbnQzMig2NikuZm9yaygpO2Zvcihjb25zdCBuIG9mIGUuZGVzdGluYXRpb25zU2Vlbil0LmludDMyKG4pO3JldHVybiB0LmxkZWxpbSgpLHR9LGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17c2Vzc2lvblRpbWVTZWM6XCIwXCIsc291cmNlOjAsZGVzdGluYXRpb25TZWxlY3RlZDowLGRlZXBMaW5rVXJsOlwiXCIsd2ViUGFnZVVybDpcIlwiLHNoYXJlU3RhdHVzOjAsZGVzdGluYXRpb25zQXZhaWxhYmxlOltdLGRlc3RpbmF0aW9uc1NlZW46W119O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTppLnNlc3Npb25UaW1lU2VjPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAyOmkuc291cmNlPW4uaW50MzIoKTticmVhaztjYXNlIDM6aS5kZXN0aW5hdGlvblNlbGVjdGVkPW4uaW50MzIoKTticmVhaztjYXNlIDQ6aS5kZWVwTGlua1VybD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLndlYlBhZ2VVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5zaGFyZVN0YXR1cz1uLmludDMyKCk7YnJlYWs7Y2FzZSA3OmlmKDI9PT0oNyZlKSl7Y29uc3QgZT1uLnVpbnQzMigpK24ucG9zO2Zvcig7bi5wb3M8ZTspaS5kZXN0aW5hdGlvbnNBdmFpbGFibGUucHVzaChuLmludDMyKCkpfWVsc2UgaS5kZXN0aW5hdGlvbnNBdmFpbGFibGUucHVzaChuLmludDMyKCkpO2JyZWFrO2Nhc2UgODppZigyPT09KDcmZSkpe2NvbnN0IGU9bi51aW50MzIoKStuLnBvcztmb3IoO24ucG9zPGU7KWkuZGVzdGluYXRpb25zU2Vlbi5wdXNoKG4uaW50MzIoKSl9ZWxzZSBpLmRlc3RpbmF0aW9uc1NlZW4ucHVzaChuLmludDMyKCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c2Vzc2lvblRpbWVTZWM6XCIwXCIsc291cmNlOjAsZGVzdGluYXRpb25TZWxlY3RlZDowLGRlZXBMaW5rVXJsOlwiXCIsd2ViUGFnZVVybDpcIlwiLHNoYXJlU3RhdHVzOjAsZGVzdGluYXRpb25zQXZhaWxhYmxlOltdLGRlc3RpbmF0aW9uc1NlZW46W119O3JldHVybiB0LnNlc3Npb25UaW1lU2VjPWUuc2Vzc2lvblRpbWVTZWM/P1wiMFwiLHQuc291cmNlPWUuc291cmNlPz8wLHQuZGVzdGluYXRpb25TZWxlY3RlZD1lLmRlc3RpbmF0aW9uU2VsZWN0ZWQ/PzAsdC5kZWVwTGlua1VybD1lLmRlZXBMaW5rVXJsPz9cIlwiLHQud2ViUGFnZVVybD1lLndlYlBhZ2VVcmw/P1wiXCIsdC5zaGFyZVN0YXR1cz1lLnNoYXJlU3RhdHVzPz8wLHQuZGVzdGluYXRpb25zQXZhaWxhYmxlPWUuZGVzdGluYXRpb25zQXZhaWxhYmxlPy5tYXAoKGU9PmUpKXx8W10sdC5kZXN0aW5hdGlvbnNTZWVuPWUuZGVzdGluYXRpb25zU2Vlbj8ubWFwKChlPT5lKSl8fFtdLHR9fSx0LldlYlNlcnZlckV2ZW50QmFzZT17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5icm93c2VyTmFtZSYmdC51aW50MzIoMTApLnN0cmluZyhlLmJyb3dzZXJOYW1lKSxcIlwiIT09ZS5jYW5vbmljYWxVcmwmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jYW5vbmljYWxVcmwpLFwiXCIhPT1lLmRldmljZU1hbnVmYWN0dXJlciYmdC51aW50MzIoMjYpLnN0cmluZyhlLmRldmljZU1hbnVmYWN0dXJlciksXCJcIiE9PWUuZGV2aWNlTmFtZSYmdC51aW50MzIoMzQpLnN0cmluZyhlLmRldmljZU5hbWUpLFwiMFwiIT09ZS5kZXZpY2VTY3JlZW5IZWlnaHQmJnQudWludDMyKDQwKS51aW50NjQoZS5kZXZpY2VTY3JlZW5IZWlnaHQpLFwiMFwiIT09ZS5kZXZpY2VTY3JlZW5XaWR0aCYmdC51aW50MzIoNDgpLnVpbnQ2NChlLmRldmljZVNjcmVlbldpZHRoKSxcIlwiIT09ZS5kZXZpY2VUeXBlJiZ0LnVpbnQzMig1OCkuc3RyaW5nKGUuZGV2aWNlVHlwZSksXCJcIiE9PWUubG9jYWxlJiZ0LnVpbnQzMig2Nikuc3RyaW5nKGUubG9jYWxlKSxcIlwiIT09ZS5vcyYmdC51aW50MzIoNzQpLnN0cmluZyhlLm9zKSxcIlwiIT09ZS5wYWdlSWQmJnQudWludDMyKDgyKS5zdHJpbmcoZS5wYWdlSWQpLFwiXCIhPT1lLnF1ZXJ5UGFyYW1ldGVycyYmdC51aW50MzIoOTApLnN0cmluZyhlLnF1ZXJ5UGFyYW1ldGVycyksXCJcIiE9PWUucmVmZXJyZXImJnQudWludDMyKDk4KS5zdHJpbmcoZS5yZWZlcnJlciksXCJcIiE9PWUuc2NSZWZlcnJlciYmdC51aW50MzIoMTA2KS5zdHJpbmcoZS5zY1JlZmVycmVyKSxcIlwiIT09ZS5zZXNzaW9uSWQmJnQudWludDMyKDExNCkuc3RyaW5nKGUuc2Vzc2lvbklkKSxcIlwiIT09ZS5zaGFyZUlkJiZ0LnVpbnQzMigxMjIpLnN0cmluZyhlLnNoYXJlSWQpLFwiXCIhPT1lLnNvdXJjZSYmdC51aW50MzIoMTMwKS5zdHJpbmcoZS5zb3VyY2UpLFwiXCIhPT1lLndlYkNsaWVudElkJiZ0LnVpbnQzMigxMzgpLnN0cmluZyhlLndlYkNsaWVudElkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e2Jyb3dzZXJOYW1lOlwiXCIsY2Fub25pY2FsVXJsOlwiXCIsZGV2aWNlTWFudWZhY3R1cmVyOlwiXCIsZGV2aWNlTmFtZTpcIlwiLGRldmljZVNjcmVlbkhlaWdodDpcIjBcIixkZXZpY2VTY3JlZW5XaWR0aDpcIjBcIixkZXZpY2VUeXBlOlwiXCIsbG9jYWxlOlwiXCIsb3M6XCJcIixwYWdlSWQ6XCJcIixxdWVyeVBhcmFtZXRlcnM6XCJcIixyZWZlcnJlcjpcIlwiLHNjUmVmZXJyZXI6XCJcIixzZXNzaW9uSWQ6XCJcIixzaGFyZUlkOlwiXCIsc291cmNlOlwiXCIsd2ViQ2xpZW50SWQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmkuYnJvd3Nlck5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5jYW5vbmljYWxVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5kZXZpY2VNYW51ZmFjdHVyZXI9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5kZXZpY2VOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuZGV2aWNlU2NyZWVuSGVpZ2h0PXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA2OmkuZGV2aWNlU2NyZWVuV2lkdGg9cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDc6aS5kZXZpY2VUeXBlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA4OmkubG9jYWxlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA5Omkub3M9bi5zdHJpbmcoKTticmVhaztjYXNlIDEwOmkucGFnZUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMTppLnF1ZXJ5UGFyYW1ldGVycz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6aS5yZWZlcnJlcj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTM6aS5zY1JlZmVycmVyPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDppLnNlc3Npb25JZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTU6aS5zaGFyZUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNjppLnNvdXJjZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMTc6aS53ZWJDbGllbnRJZD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17YnJvd3Nlck5hbWU6XCJcIixjYW5vbmljYWxVcmw6XCJcIixkZXZpY2VNYW51ZmFjdHVyZXI6XCJcIixkZXZpY2VOYW1lOlwiXCIsZGV2aWNlU2NyZWVuSGVpZ2h0OlwiMFwiLGRldmljZVNjcmVlbldpZHRoOlwiMFwiLGRldmljZVR5cGU6XCJcIixsb2NhbGU6XCJcIixvczpcIlwiLHBhZ2VJZDpcIlwiLHF1ZXJ5UGFyYW1ldGVyczpcIlwiLHJlZmVycmVyOlwiXCIsc2NSZWZlcnJlcjpcIlwiLHNlc3Npb25JZDpcIlwiLHNoYXJlSWQ6XCJcIixzb3VyY2U6XCJcIix3ZWJDbGllbnRJZDpcIlwifTtyZXR1cm4gdC5icm93c2VyTmFtZT1lLmJyb3dzZXJOYW1lPz9cIlwiLHQuY2Fub25pY2FsVXJsPWUuY2Fub25pY2FsVXJsPz9cIlwiLHQuZGV2aWNlTWFudWZhY3R1cmVyPWUuZGV2aWNlTWFudWZhY3R1cmVyPz9cIlwiLHQuZGV2aWNlTmFtZT1lLmRldmljZU5hbWU/P1wiXCIsdC5kZXZpY2VTY3JlZW5IZWlnaHQ9ZS5kZXZpY2VTY3JlZW5IZWlnaHQ/P1wiMFwiLHQuZGV2aWNlU2NyZWVuV2lkdGg9ZS5kZXZpY2VTY3JlZW5XaWR0aD8/XCIwXCIsdC5kZXZpY2VUeXBlPWUuZGV2aWNlVHlwZT8/XCJcIix0LmxvY2FsZT1lLmxvY2FsZT8/XCJcIix0Lm9zPWUub3M/P1wiXCIsdC5wYWdlSWQ9ZS5wYWdlSWQ/P1wiXCIsdC5xdWVyeVBhcmFtZXRlcnM9ZS5xdWVyeVBhcmFtZXRlcnM/P1wiXCIsdC5yZWZlcnJlcj1lLnJlZmVycmVyPz9cIlwiLHQuc2NSZWZlcnJlcj1lLnNjUmVmZXJyZXI/P1wiXCIsdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWQ/P1wiXCIsdC5zaGFyZUlkPWUuc2hhcmVJZD8/XCJcIix0LnNvdXJjZT1lLnNvdXJjZT8/XCJcIix0LndlYkNsaWVudElkPWUud2ViQ2xpZW50SWQ/P1wiXCIsdH19LHQuQWNjb3VudHNMb2dpblNlcnZlckV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYWNjb3VudHNTZXJ2ZXJFdmVudCYmdC5BY2NvdW50c1NlcnZlckV2ZW50LmVuY29kZShlLmFjY291bnRzU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthY2NvdW50c1NlcnZlckV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmFjY291bnRzU2VydmVyRXZlbnQ9dC5BY2NvdW50c1NlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXthY2NvdW50c1NlcnZlckV2ZW50OnZvaWQgMH07cmV0dXJuIG4uYWNjb3VudHNTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmFjY291bnRzU2VydmVyRXZlbnQmJm51bGwhPT1lLmFjY291bnRzU2VydmVyRXZlbnQ/dC5BY2NvdW50c1NlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuYWNjb3VudHNTZXJ2ZXJFdmVudCk6dm9pZCAwLG59fSx0LkFjcXVpc2l0aW9uUGxhdGZvcm1TaG9ydGxpbmtDbGljaz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNob3J0bGlua0Jhc2UmJnQuU2hvcnRsaW5rQmFzZS5lbmNvZGUoZS5zaG9ydGxpbmtCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmxvY2FsZSYmbi51aW50MzIoMjYpLnN0cmluZyhlLmxvY2FsZSksXCJcIiE9PWUuYXBwVmFyaWFudCYmbi51aW50MzIoMzQpLnN0cmluZyhlLmFwcFZhcmlhbnQpLDAhPT1lLmNsaWNrU3RhdGUmJm4udWludDMyKDQwKS5pbnQzMihlLmNsaWNrU3RhdGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c2hvcnRsaW5rQmFzZTp2b2lkIDAsbG9jYWxlOlwiXCIsYXBwVmFyaWFudDpcIlwiLGNsaWNrU3RhdGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc2hvcnRsaW5rQmFzZT10LlNob3J0bGlua0Jhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAzOmEubG9jYWxlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuYXBwVmFyaWFudD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmNsaWNrU3RhdGU9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c2hvcnRsaW5rQmFzZTp2b2lkIDAsbG9jYWxlOlwiXCIsYXBwVmFyaWFudDpcIlwiLGNsaWNrU3RhdGU6MH07cmV0dXJuIG4uc2hvcnRsaW5rQmFzZT12b2lkIDAhPT1lLnNob3J0bGlua0Jhc2UmJm51bGwhPT1lLnNob3J0bGlua0Jhc2U/dC5TaG9ydGxpbmtCYXNlLmZyb21QYXJ0aWFsKGUuc2hvcnRsaW5rQmFzZSk6dm9pZCAwLG4ubG9jYWxlPWUubG9jYWxlPz9cIlwiLG4uYXBwVmFyaWFudD1lLmFwcFZhcmlhbnQ/P1wiXCIsbi5jbGlja1N0YXRlPWUuY2xpY2tTdGF0ZT8/MCxufX0sdC5BY3F1aXNpdGlvblBsYXRmb3JtU2hvcnRsaW5rUHJldmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNob3J0bGlua0Jhc2UmJnQuU2hvcnRsaW5rQmFzZS5lbmNvZGUoZS5zaG9ydGxpbmtCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c2hvcnRsaW5rQmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5zaG9ydGxpbmtCYXNlPXQuU2hvcnRsaW5rQmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c2hvcnRsaW5rQmFzZTp2b2lkIDB9O3JldHVybiBuLnNob3J0bGlua0Jhc2U9dm9pZCAwIT09ZS5zaG9ydGxpbmtCYXNlJiZudWxsIT09ZS5zaG9ydGxpbmtCYXNlP3QuU2hvcnRsaW5rQmFzZS5mcm9tUGFydGlhbChlLnNob3J0bGlua0Jhc2UpOnZvaWQgMCxufX0sdC5BcmVzQ29udmVyc2lvbnM9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZ0LkFyZXNFdmVudEJhc2UuZW5jb2RlKGUuYXJlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS50cmFuc2FjdGlvbkFmZmlsaWF0aW9uJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUudHJhbnNhY3Rpb25BZmZpbGlhdGlvbiksXCJcIiE9PWUudHJhbnNhY3Rpb25DYXRlZ29yeSYmbi51aW50MzIoMjYpLnN0cmluZyhlLnRyYW5zYWN0aW9uQ2F0ZWdvcnkpLFwiXCIhPT1lLnRyYW5zYWN0aW9uQ3VycmVuY3kmJm4udWludDMyKDM0KS5zdHJpbmcoZS50cmFuc2FjdGlvbkN1cnJlbmN5KSxcIlwiIT09ZS50cmFuc2FjdGlvbklkJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUudHJhbnNhY3Rpb25JZCksXCJcIiE9PWUudHJhbnNhY3Rpb25OYW1lJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUudHJhbnNhY3Rpb25OYW1lKSxcIlwiIT09ZS50cmFuc2FjdGlvblByaWNlJiZuLnVpbnQzMig1OCkuc3RyaW5nKGUudHJhbnNhY3Rpb25QcmljZSksXCJcIiE9PWUudHJhbnNhY3Rpb25Qcm9kdWN0SWQmJm4udWludDMyKDY2KS5zdHJpbmcoZS50cmFuc2FjdGlvblByb2R1Y3RJZCksXCJcIiE9PWUudHJhbnNhY3Rpb25RdWFudGl0eSYmbi51aW50MzIoNzQpLnN0cmluZyhlLnRyYW5zYWN0aW9uUXVhbnRpdHkpLFwiXCIhPT1lLnRyYW5zYWN0aW9uUmV2ZW51ZSYmbi51aW50MzIoODIpLnN0cmluZyhlLnRyYW5zYWN0aW9uUmV2ZW51ZSksXCJcIiE9PWUudHJhbnNhY3Rpb25TaGlwcGluZyYmbi51aW50MzIoOTApLnN0cmluZyhlLnRyYW5zYWN0aW9uU2hpcHBpbmcpLFwiXCIhPT1lLnRyYW5zYWN0aW9uVGF4JiZuLnVpbnQzMig5OCkuc3RyaW5nKGUudHJhbnNhY3Rpb25UYXgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAsdHJhbnNhY3Rpb25BZmZpbGlhdGlvbjpcIlwiLHRyYW5zYWN0aW9uQ2F0ZWdvcnk6XCJcIix0cmFuc2FjdGlvbkN1cnJlbmN5OlwiXCIsdHJhbnNhY3Rpb25JZDpcIlwiLHRyYW5zYWN0aW9uTmFtZTpcIlwiLHRyYW5zYWN0aW9uUHJpY2U6XCJcIix0cmFuc2FjdGlvblByb2R1Y3RJZDpcIlwiLHRyYW5zYWN0aW9uUXVhbnRpdHk6XCJcIix0cmFuc2FjdGlvblJldmVudWU6XCJcIix0cmFuc2FjdGlvblNoaXBwaW5nOlwiXCIsdHJhbnNhY3Rpb25UYXg6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudHJhbnNhY3Rpb25BZmZpbGlhdGlvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnRyYW5zYWN0aW9uQ2F0ZWdvcnk9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS50cmFuc2FjdGlvbkN1cnJlbmN5PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEudHJhbnNhY3Rpb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNjphLnRyYW5zYWN0aW9uTmFtZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNzphLnRyYW5zYWN0aW9uUHJpY2U9ci5zdHJpbmcoKTticmVhaztjYXNlIDg6YS50cmFuc2FjdGlvblByb2R1Y3RJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgOTphLnRyYW5zYWN0aW9uUXVhbnRpdHk9ci5zdHJpbmcoKTticmVhaztjYXNlIDEwOmEudHJhbnNhY3Rpb25SZXZlbnVlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMTphLnRyYW5zYWN0aW9uU2hpcHBpbmc9ci5zdHJpbmcoKTticmVhaztjYXNlIDEyOmEudHJhbnNhY3Rpb25UYXg9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLHRyYW5zYWN0aW9uQWZmaWxpYXRpb246XCJcIix0cmFuc2FjdGlvbkNhdGVnb3J5OlwiXCIsdHJhbnNhY3Rpb25DdXJyZW5jeTpcIlwiLHRyYW5zYWN0aW9uSWQ6XCJcIix0cmFuc2FjdGlvbk5hbWU6XCJcIix0cmFuc2FjdGlvblByaWNlOlwiXCIsdHJhbnNhY3Rpb25Qcm9kdWN0SWQ6XCJcIix0cmFuc2FjdGlvblF1YW50aXR5OlwiXCIsdHJhbnNhY3Rpb25SZXZlbnVlOlwiXCIsdHJhbnNhY3Rpb25TaGlwcGluZzpcIlwiLHRyYW5zYWN0aW9uVGF4OlwiXCJ9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLnRyYW5zYWN0aW9uQWZmaWxpYXRpb249ZS50cmFuc2FjdGlvbkFmZmlsaWF0aW9uPz9cIlwiLG4udHJhbnNhY3Rpb25DYXRlZ29yeT1lLnRyYW5zYWN0aW9uQ2F0ZWdvcnk/P1wiXCIsbi50cmFuc2FjdGlvbkN1cnJlbmN5PWUudHJhbnNhY3Rpb25DdXJyZW5jeT8/XCJcIixuLnRyYW5zYWN0aW9uSWQ9ZS50cmFuc2FjdGlvbklkPz9cIlwiLG4udHJhbnNhY3Rpb25OYW1lPWUudHJhbnNhY3Rpb25OYW1lPz9cIlwiLG4udHJhbnNhY3Rpb25QcmljZT1lLnRyYW5zYWN0aW9uUHJpY2U/P1wiXCIsbi50cmFuc2FjdGlvblByb2R1Y3RJZD1lLnRyYW5zYWN0aW9uUHJvZHVjdElkPz9cIlwiLG4udHJhbnNhY3Rpb25RdWFudGl0eT1lLnRyYW5zYWN0aW9uUXVhbnRpdHk/P1wiXCIsbi50cmFuc2FjdGlvblJldmVudWU9ZS50cmFuc2FjdGlvblJldmVudWU/P1wiXCIsbi50cmFuc2FjdGlvblNoaXBwaW5nPWUudHJhbnNhY3Rpb25TaGlwcGluZz8/XCJcIixuLnRyYW5zYWN0aW9uVGF4PWUudHJhbnNhY3Rpb25UYXg/P1wiXCIsbn19LHQuQXJlc0N0YUNsaWNrPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthcmVzRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXthcmVzRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYXJlc0V2ZW50QmFzZT12b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJm51bGwhPT1lLmFyZXNFdmVudEJhc2U/dC5BcmVzRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYXJlc0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkFyZXNDdGFSZW5kZXI9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZ0LkFyZXNFdmVudEJhc2UuZW5jb2RlKGUuYXJlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2FyZXNFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5hcmVzRXZlbnRCYXNlPXZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmbnVsbCE9PWUuYXJlc0V2ZW50QmFzZT90LkFyZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5hcmVzRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQXJlc0VuZ2FnZW1lbnRzPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUudmFsdWUmJm4udWludDMyKDE4KS5zdHJpbmcoZS52YWx1ZSksXCJcIiE9PWUuZXZlbnRUeXBlJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuZXZlbnRUeXBlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2FyZXNFdmVudEJhc2U6dm9pZCAwLHZhbHVlOlwiXCIsZXZlbnRUeXBlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnZhbHVlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuZXZlbnRUeXBlPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXthcmVzRXZlbnRCYXNlOnZvaWQgMCx2YWx1ZTpcIlwiLGV2ZW50VHlwZTpcIlwifTtyZXR1cm4gbi5hcmVzRXZlbnRCYXNlPXZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmbnVsbCE9PWUuYXJlc0V2ZW50QmFzZT90LkFyZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5hcmVzRXZlbnRCYXNlKTp2b2lkIDAsbi52YWx1ZT1lLnZhbHVlPz9cIlwiLG4uZXZlbnRUeXBlPWUuZXZlbnRUeXBlPz9cIlwiLG59fSx0LkFyZXNGZWF0dXJlRW50cnk9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZ0LkFyZXNFdmVudEJhc2UuZW5jb2RlKGUuYXJlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2FyZXNFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5hcmVzRXZlbnRCYXNlPXZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmbnVsbCE9PWUuYXJlc0V2ZW50QmFzZT90LkFyZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5hcmVzRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQXJlc0ZlYXR1cmVFeGl0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuZmVhdHVyZUV4aXRSZWFzb24mJm4udWludDMyKDE2KS5pbnQzMihlLmZlYXR1cmVFeGl0UmVhc29uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2FyZXNFdmVudEJhc2U6dm9pZCAwLGZlYXR1cmVFeGl0UmVhc29uOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmZlYXR1cmVFeGl0UmVhc29uPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLGZlYXR1cmVFeGl0UmVhc29uOjB9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLmZlYXR1cmVFeGl0UmVhc29uPWUuZmVhdHVyZUV4aXRSZWFzb24/PzAsbn19LHQuQXJlc0ZpdFJlY29tbWVuZGF0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUucmVjb21tZW5kYXRpb25UeXBlJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUucmVjb21tZW5kYXRpb25UeXBlKSxcIlwiIT09ZS5yZWNvbW1lbmRhdGlvblNjcmVlbiYmbi51aW50MzIoMjYpLnN0cmluZyhlLnJlY29tbWVuZGF0aW9uU2NyZWVuKSwhMD09PWUuaGFzUmVzdWx0JiZuLnVpbnQzMigzMikuYm9vbChlLmhhc1Jlc3VsdCksXCJcIiE9PWUucHJpbWFyeVNpemVMYWJlbCYmbi51aW50MzIoNDIpLnN0cmluZyhlLnByaW1hcnlTaXplTGFiZWwpLFwiXCIhPT1lLnByaW1hcnlTbmFwSXRlbUlkJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUucHJpbWFyeVNuYXBJdGVtSWQpLFwiMFwiIT09ZS5wcmltYXJ5U2l6ZVNjb3JlJiZuLnVpbnQzMig1NikudWludDY0KGUucHJpbWFyeVNpemVTY29yZSksITA9PT1lLmlzUHJpbWFyeVNpemVBdmFpbGFibGUmJm4udWludDMyKDY0KS5ib29sKGUuaXNQcmltYXJ5U2l6ZUF2YWlsYWJsZSksXCJcIiE9PWUuc2Vjb25kYXJ5U2l6ZUxhYmVsJiZuLnVpbnQzMig4Mikuc3RyaW5nKGUuc2Vjb25kYXJ5U2l6ZUxhYmVsKSxcIlwiIT09ZS5zZWNvbmRhcnlTbmFwSXRlbUlkJiZuLnVpbnQzMig5MCkuc3RyaW5nKGUuc2Vjb25kYXJ5U25hcEl0ZW1JZCksXCIwXCIhPT1lLnNlY29uZGFyeVNpemVTY29yZSYmbi51aW50MzIoOTYpLnVpbnQ2NChlLnNlY29uZGFyeVNpemVTY29yZSksITA9PT1lLmlzU2Vjb25kYXJ5U2l6ZUF2YWlsYWJsZSYmbi51aW50MzIoMTA0KS5ib29sKGUuaXNTZWNvbmRhcnlTaXplQXZhaWxhYmxlKSwhMD09PWUuaXNQcmltYXJ5U2l6ZU91dE9mU2NhbGUmJm4udWludDMyKDEyMCkuYm9vbChlLmlzUHJpbWFyeVNpemVPdXRPZlNjYWxlKSwhMD09PWUuaXNTZWNvbmRhcnlTaXplT3V0T2ZTY2FsZSYmbi51aW50MzIoMTI4KS5ib29sKGUuaXNTZWNvbmRhcnlTaXplT3V0T2ZTY2FsZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthcmVzRXZlbnRCYXNlOnZvaWQgMCxyZWNvbW1lbmRhdGlvblR5cGU6XCJcIixyZWNvbW1lbmRhdGlvblNjcmVlbjpcIlwiLGhhc1Jlc3VsdDohMSxwcmltYXJ5U2l6ZUxhYmVsOlwiXCIscHJpbWFyeVNuYXBJdGVtSWQ6XCJcIixwcmltYXJ5U2l6ZVNjb3JlOlwiMFwiLGlzUHJpbWFyeVNpemVBdmFpbGFibGU6ITEsc2Vjb25kYXJ5U2l6ZUxhYmVsOlwiXCIsc2Vjb25kYXJ5U25hcEl0ZW1JZDpcIlwiLHNlY29uZGFyeVNpemVTY29yZTpcIjBcIixpc1NlY29uZGFyeVNpemVBdmFpbGFibGU6ITEsaXNQcmltYXJ5U2l6ZU91dE9mU2NhbGU6ITEsaXNTZWNvbmRhcnlTaXplT3V0T2ZTY2FsZTohMX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEucmVjb21tZW5kYXRpb25UeXBlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEucmVjb21tZW5kYXRpb25TY3JlZW49ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5oYXNSZXN1bHQ9ci5ib29sKCk7YnJlYWs7Y2FzZSA1OmEucHJpbWFyeVNpemVMYWJlbD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNjphLnByaW1hcnlTbmFwSXRlbUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmEucHJpbWFyeVNpemVTY29yZT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgODphLmlzUHJpbWFyeVNpemVBdmFpbGFibGU9ci5ib29sKCk7YnJlYWs7Y2FzZSAxMDphLnNlY29uZGFyeVNpemVMYWJlbD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6YS5zZWNvbmRhcnlTbmFwSXRlbUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMjphLnNlY29uZGFyeVNpemVTY29yZT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTM6YS5pc1NlY29uZGFyeVNpemVBdmFpbGFibGU9ci5ib29sKCk7YnJlYWs7Y2FzZSAxNTphLmlzUHJpbWFyeVNpemVPdXRPZlNjYWxlPXIuYm9vbCgpO2JyZWFrO2Nhc2UgMTY6YS5pc1NlY29uZGFyeVNpemVPdXRPZlNjYWxlPXIuYm9vbCgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17YXJlc0V2ZW50QmFzZTp2b2lkIDAscmVjb21tZW5kYXRpb25UeXBlOlwiXCIscmVjb21tZW5kYXRpb25TY3JlZW46XCJcIixoYXNSZXN1bHQ6ITEscHJpbWFyeVNpemVMYWJlbDpcIlwiLHByaW1hcnlTbmFwSXRlbUlkOlwiXCIscHJpbWFyeVNpemVTY29yZTpcIjBcIixpc1ByaW1hcnlTaXplQXZhaWxhYmxlOiExLHNlY29uZGFyeVNpemVMYWJlbDpcIlwiLHNlY29uZGFyeVNuYXBJdGVtSWQ6XCJcIixzZWNvbmRhcnlTaXplU2NvcmU6XCIwXCIsaXNTZWNvbmRhcnlTaXplQXZhaWxhYmxlOiExLGlzUHJpbWFyeVNpemVPdXRPZlNjYWxlOiExLGlzU2Vjb25kYXJ5U2l6ZU91dE9mU2NhbGU6ITF9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLnJlY29tbWVuZGF0aW9uVHlwZT1lLnJlY29tbWVuZGF0aW9uVHlwZT8/XCJcIixuLnJlY29tbWVuZGF0aW9uU2NyZWVuPWUucmVjb21tZW5kYXRpb25TY3JlZW4/P1wiXCIsbi5oYXNSZXN1bHQ9ZS5oYXNSZXN1bHQ/PyExLG4ucHJpbWFyeVNpemVMYWJlbD1lLnByaW1hcnlTaXplTGFiZWw/P1wiXCIsbi5wcmltYXJ5U25hcEl0ZW1JZD1lLnByaW1hcnlTbmFwSXRlbUlkPz9cIlwiLG4ucHJpbWFyeVNpemVTY29yZT1lLnByaW1hcnlTaXplU2NvcmU/P1wiMFwiLG4uaXNQcmltYXJ5U2l6ZUF2YWlsYWJsZT1lLmlzUHJpbWFyeVNpemVBdmFpbGFibGU/PyExLG4uc2Vjb25kYXJ5U2l6ZUxhYmVsPWUuc2Vjb25kYXJ5U2l6ZUxhYmVsPz9cIlwiLG4uc2Vjb25kYXJ5U25hcEl0ZW1JZD1lLnNlY29uZGFyeVNuYXBJdGVtSWQ/P1wiXCIsbi5zZWNvbmRhcnlTaXplU2NvcmU9ZS5zZWNvbmRhcnlTaXplU2NvcmU/P1wiMFwiLG4uaXNTZWNvbmRhcnlTaXplQXZhaWxhYmxlPWUuaXNTZWNvbmRhcnlTaXplQXZhaWxhYmxlPz8hMSxuLmlzUHJpbWFyeVNpemVPdXRPZlNjYWxlPWUuaXNQcmltYXJ5U2l6ZU91dE9mU2NhbGU/PyExLG4uaXNTZWNvbmRhcnlTaXplT3V0T2ZTY2FsZT1lLmlzU2Vjb25kYXJ5U2l6ZU91dE9mU2NhbGU/PyExLG59fSx0LkFyZXNQaG90b3Nob290Q2FwdHVyZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJnQuQXJlc0V2ZW50QmFzZS5lbmNvZGUoZS5hcmVzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmZhaWx1cmVSZWFzb24mJm4udWludDMyKDE4KS5zdHJpbmcoZS5mYWlsdXJlUmVhc29uKSwwIT09ZS5jYXB0dXJlU291cmNlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5jYXB0dXJlU291cmNlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2FyZXNFdmVudEJhc2U6dm9pZCAwLGZhaWx1cmVSZWFzb246XCJcIixjYXB0dXJlU291cmNlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmZhaWx1cmVSZWFzb249ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5jYXB0dXJlU291cmNlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLGZhaWx1cmVSZWFzb246XCJcIixjYXB0dXJlU291cmNlOjB9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLmZhaWx1cmVSZWFzb249ZS5mYWlsdXJlUmVhc29uPz9cIlwiLG4uY2FwdHVyZVNvdXJjZT1lLmNhcHR1cmVTb3VyY2U/PzAsbn19LHQuQXJlc1Byb2R1Y3RBcHBseT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJnQuQXJlc0V2ZW50QmFzZS5lbmNvZGUoZS5hcmVzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnRyYWNraW5nSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS50cmFja2luZ0lkKSxcIlwiIT09ZS5mYWlsdXJlUmVhc29uJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuZmFpbHVyZVJlYXNvbiksMCE9PWUubGF0ZW5jeVNlYyYmbi51aW50MzIoMzMpLmRvdWJsZShlLmxhdGVuY3lTZWMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAsdHJhY2tpbmdJZDpcIlwiLGZhaWx1cmVSZWFzb246XCJcIixsYXRlbmN5U2VjOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnRyYWNraW5nSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5mYWlsdXJlUmVhc29uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEubGF0ZW5jeVNlYz1yLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17YXJlc0V2ZW50QmFzZTp2b2lkIDAsdHJhY2tpbmdJZDpcIlwiLGZhaWx1cmVSZWFzb246XCJcIixsYXRlbmN5U2VjOjB9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLnRyYWNraW5nSWQ9ZS50cmFja2luZ0lkPz9cIlwiLG4uZmFpbHVyZVJlYXNvbj1lLmZhaWx1cmVSZWFzb24/P1wiXCIsbi5sYXRlbmN5U2VjPWUubGF0ZW5jeVNlYz8/MCxufX0sdC5BcmVzUHJvZHVjdEltcHJlc3Npb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZ0LkFyZXNFdmVudEJhc2UuZW5jb2RlKGUuYXJlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS50cmFja2luZ0lkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUudHJhY2tpbmdJZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthcmVzRXZlbnRCYXNlOnZvaWQgMCx0cmFja2luZ0lkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnRyYWNraW5nSWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLHRyYWNraW5nSWQ6XCJcIn07cmV0dXJuIG4uYXJlc0V2ZW50QmFzZT12b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJm51bGwhPT1lLmFyZXNFdmVudEJhc2U/dC5BcmVzRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYXJlc0V2ZW50QmFzZSk6dm9pZCAwLG4udHJhY2tpbmdJZD1lLnRyYWNraW5nSWQ/P1wiXCIsbn19LHQuQXJlc1Byb2R1Y3RMb2FkPXtlbmNvZGUoZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpe3ZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCk7Zm9yKGNvbnN0IHQgb2YgZS5lbGlnaWJsZUZlYXR1cmVzKW4udWludDMyKDI2KS5zdHJpbmcodCk7cmV0dXJuIG59LGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAsZWxpZ2libGVGZWF0dXJlczpbXX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAzOmEuZWxpZ2libGVGZWF0dXJlcy5wdXNoKHIuc3RyaW5nKCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17YXJlc0V2ZW50QmFzZTp2b2lkIDAsZWxpZ2libGVGZWF0dXJlczpbXX07cmV0dXJuIG4uYXJlc0V2ZW50QmFzZT12b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJm51bGwhPT1lLmFyZXNFdmVudEJhc2U/dC5BcmVzRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYXJlc0V2ZW50QmFzZSk6dm9pZCAwLG4uZWxpZ2libGVGZWF0dXJlcz1lLmVsaWdpYmxlRmVhdHVyZXM/Lm1hcCgoZT0+ZSkpfHxbXSxufX0sdC5BcmVzUHJvZHVjdFRhcD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJnQuQXJlc0V2ZW50QmFzZS5lbmNvZGUoZS5hcmVzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnB0b2R1Y3RUYXBTb3VyY2UmJm4udWludDMyKDE2KS5pbnQzMihlLnB0b2R1Y3RUYXBTb3VyY2UpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAscHRvZHVjdFRhcFNvdXJjZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5hcmVzRXZlbnRCYXNlPXQuQXJlc0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5wdG9kdWN0VGFwU291cmNlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLHB0b2R1Y3RUYXBTb3VyY2U6MH07cmV0dXJuIG4uYXJlc0V2ZW50QmFzZT12b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJm51bGwhPT1lLmFyZXNFdmVudEJhc2U/dC5BcmVzRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYXJlc0V2ZW50QmFzZSk6dm9pZCAwLG4ucHRvZHVjdFRhcFNvdXJjZT1lLnB0b2R1Y3RUYXBTb3VyY2U/PzAsbn19LHQuQXJlc1Byb2R1Y3RWaWV3VGltZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJnQuQXJlc0V2ZW50QmFzZS5lbmNvZGUoZS5hcmVzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnByb2R1Y3RWaWV3VGltZVNlYyYmbi51aW50MzIoMTcpLmRvdWJsZShlLnByb2R1Y3RWaWV3VGltZVNlYyksXCJcIiE9PWUudHJhY2tpbmdJZCYmbi51aW50MzIoMjYpLnN0cmluZyhlLnRyYWNraW5nSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAscHJvZHVjdFZpZXdUaW1lU2VjOjAsdHJhY2tpbmdJZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5hcmVzRXZlbnRCYXNlPXQuQXJlc0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5wcm9kdWN0Vmlld1RpbWVTZWM9ci5kb3VibGUoKTticmVhaztjYXNlIDM6YS50cmFja2luZ0lkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXthcmVzRXZlbnRCYXNlOnZvaWQgMCxwcm9kdWN0Vmlld1RpbWVTZWM6MCx0cmFja2luZ0lkOlwiXCJ9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLnByb2R1Y3RWaWV3VGltZVNlYz1lLnByb2R1Y3RWaWV3VGltZVNlYz8/MCxuLnRyYWNraW5nSWQ9ZS50cmFja2luZ0lkPz9cIlwiLG59fSx0LkFyZXNQdXJjaGFzZUNvbXBsZXRlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUucHJvZHVjdFByaWNlJiZuLnVpbnQzMigxNykuZG91YmxlKGUucHJvZHVjdFByaWNlKSxcIlwiIT09ZS5wcm9kdWN0Q3VycmVuY3kmJm4udWludDMyKDI2KS5zdHJpbmcoZS5wcm9kdWN0Q3VycmVuY3kpLDAhPT1lLm9yZGVyVG90YWxQcmljZSYmbi51aW50MzIoMzMpLmRvdWJsZShlLm9yZGVyVG90YWxQcmljZSksXCJcIiE9PWUub3JkZXJJZCYmbi51aW50MzIoNTApLnN0cmluZyhlLm9yZGVySWQpLDAhPT1lLnBvc2l0aW9uUHJpY2UmJm4udWludDMyKDU3KS5kb3VibGUoZS5wb3NpdGlvblByaWNlKSxcIjBcIiE9PWUucXVhbnRpdHkmJm4udWludDMyKDY0KS51aW50NjQoZS5xdWFudGl0eSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthcmVzRXZlbnRCYXNlOnZvaWQgMCxwcm9kdWN0UHJpY2U6MCxwcm9kdWN0Q3VycmVuY3k6XCJcIixvcmRlclRvdGFsUHJpY2U6MCxvcmRlcklkOlwiXCIscG9zaXRpb25QcmljZTowLHF1YW50aXR5OlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5hcmVzRXZlbnRCYXNlPXQuQXJlc0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5wcm9kdWN0UHJpY2U9ci5kb3VibGUoKTticmVhaztjYXNlIDM6YS5wcm9kdWN0Q3VycmVuY3k9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5vcmRlclRvdGFsUHJpY2U9ci5kb3VibGUoKTticmVhaztjYXNlIDY6YS5vcmRlcklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmEucG9zaXRpb25QcmljZT1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgODphLnF1YW50aXR5PXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXthcmVzRXZlbnRCYXNlOnZvaWQgMCxwcm9kdWN0UHJpY2U6MCxwcm9kdWN0Q3VycmVuY3k6XCJcIixvcmRlclRvdGFsUHJpY2U6MCxvcmRlcklkOlwiXCIscG9zaXRpb25QcmljZTowLHF1YW50aXR5OlwiMFwifTtyZXR1cm4gbi5hcmVzRXZlbnRCYXNlPXZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmbnVsbCE9PWUuYXJlc0V2ZW50QmFzZT90LkFyZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5hcmVzRXZlbnRCYXNlKTp2b2lkIDAsbi5wcm9kdWN0UHJpY2U9ZS5wcm9kdWN0UHJpY2U/PzAsbi5wcm9kdWN0Q3VycmVuY3k9ZS5wcm9kdWN0Q3VycmVuY3k/P1wiXCIsbi5vcmRlclRvdGFsUHJpY2U9ZS5vcmRlclRvdGFsUHJpY2U/PzAsbi5vcmRlcklkPWUub3JkZXJJZD8/XCJcIixuLnBvc2l0aW9uUHJpY2U9ZS5wb3NpdGlvblByaWNlPz8wLG4ucXVhbnRpdHk9ZS5xdWFudGl0eT8/XCIwXCIsbn19LHQuQXJlc1Nlc3Npb25DcmVhdGVkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuZGFpbHlTZXNzaW9uQnVja2V0JiZuLnVpbnQzMigxNikuaW50MzIoZS5kYWlseVNlc3Npb25CdWNrZXQpLCEwPT09ZS5pc0ZpcnN0V2l0aGluTW9udGgmJm4udWludDMyKDI0KS5ib29sKGUuaXNGaXJzdFdpdGhpbk1vbnRoKSxcIjBcIiE9PWUuZGF5JiZuLnVpbnQzMigzMikudWludDY0KGUuZGF5KSxcIjBcIiE9PWUubW9udGgmJm4udWludDMyKDQwKS51aW50NjQoZS5tb250aCksXCIwXCIhPT1lLnllYXImJm4udWludDMyKDQ4KS51aW50NjQoZS55ZWFyKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2FyZXNFdmVudEJhc2U6dm9pZCAwLGRhaWx5U2Vzc2lvbkJ1Y2tldDowLGlzRmlyc3RXaXRoaW5Nb250aDohMSxkYXk6XCIwXCIsbW9udGg6XCIwXCIseWVhcjpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZGFpbHlTZXNzaW9uQnVja2V0PXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5pc0ZpcnN0V2l0aGluTW9udGg9ci5ib29sKCk7YnJlYWs7Y2FzZSA0OmEuZGF5PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmEubW9udGg9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6YS55ZWFyPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXthcmVzRXZlbnRCYXNlOnZvaWQgMCxkYWlseVNlc3Npb25CdWNrZXQ6MCxpc0ZpcnN0V2l0aGluTW9udGg6ITEsZGF5OlwiMFwiLG1vbnRoOlwiMFwiLHllYXI6XCIwXCJ9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLmRhaWx5U2Vzc2lvbkJ1Y2tldD1lLmRhaWx5U2Vzc2lvbkJ1Y2tldD8/MCxuLmlzRmlyc3RXaXRoaW5Nb250aD1lLmlzRmlyc3RXaXRoaW5Nb250aD8/ITEsbi5kYXk9ZS5kYXk/P1wiMFwiLG4ubW9udGg9ZS5tb250aD8/XCIwXCIsbi55ZWFyPWUueWVhcj8/XCIwXCIsbn19LHQuQXJlc1Nlc3Npb25UZXJtaW5hdGVkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmdC5BcmVzRXZlbnRCYXNlLmVuY29kZShlLmFyZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthcmVzRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXthcmVzRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYXJlc0V2ZW50QmFzZT12b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJm51bGwhPT1lLmFyZXNFdmVudEJhc2U/dC5BcmVzRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYXJlc0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkFyZXNUcnlPbkNhcHR1cmU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZ0LkFyZXNFdmVudEJhc2UuZW5jb2RlKGUuYXJlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5tZWRpYVR5cGUmJm4udWludDMyKDE2KS5pbnQzMihlLm1lZGlhVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthcmVzRXZlbnRCYXNlOnZvaWQgMCxtZWRpYVR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubWVkaWFUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLG1lZGlhVHlwZTowfTtyZXR1cm4gbi5hcmVzRXZlbnRCYXNlPXZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmbnVsbCE9PWUuYXJlc0V2ZW50QmFzZT90LkFyZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5hcmVzRXZlbnRCYXNlKTp2b2lkIDAsbi5tZWRpYVR5cGU9ZS5tZWRpYVR5cGU/PzAsbn19LHQuQXJlc1RyeU9uUmVkbz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJnQuQXJlc0V2ZW50QmFzZS5lbmNvZGUoZS5hcmVzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmF2YXRhcklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuYXZhdGFySWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAsYXZhdGFySWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXZhdGFySWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLGF2YXRhcklkOlwiXCJ9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLmF2YXRhcklkPWUuYXZhdGFySWQ/P1wiXCIsbn19LHQuQXJlc1RyeU9uU2F2ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJnQuQXJlc0V2ZW50QmFzZS5lbmNvZGUoZS5hcmVzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLm1lZGlhVHlwZSYmbi51aW50MzIoMTYpLmludDMyKGUubWVkaWFUeXBlKSxcIlwiIT09ZS5hdmF0YXJJZCYmbi51aW50MzIoMjYpLnN0cmluZyhlLmF2YXRhcklkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2FyZXNFdmVudEJhc2U6dm9pZCAwLG1lZGlhVHlwZTowLGF2YXRhcklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm1lZGlhVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuYXZhdGFySWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLG1lZGlhVHlwZTowLGF2YXRhcklkOlwiXCJ9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLm1lZGlhVHlwZT1lLm1lZGlhVHlwZT8/MCxuLmF2YXRhcklkPWUuYXZhdGFySWQ/P1wiXCIsbn19LHQuQXJlc1RyeU9uU2hhcmU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZ0LkFyZXNFdmVudEJhc2UuZW5jb2RlKGUuYXJlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5tZWRpYVR5cGUmJm4udWludDMyKDE2KS5pbnQzMihlLm1lZGlhVHlwZSksXCJcIiE9PWUuYXZhdGFySWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5hdmF0YXJJZCksXCJcIiE9PWUuZGVzdGluYXRpb24mJm4udWludDMyKDM0KS5zdHJpbmcoZS5kZXN0aW5hdGlvbiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXthcmVzRXZlbnRCYXNlOnZvaWQgMCxtZWRpYVR5cGU6MCxhdmF0YXJJZDpcIlwiLGRlc3RpbmF0aW9uOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmFyZXNFdmVudEJhc2U9dC5BcmVzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm1lZGlhVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuYXZhdGFySWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5kZXN0aW5hdGlvbj1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17YXJlc0V2ZW50QmFzZTp2b2lkIDAsbWVkaWFUeXBlOjAsYXZhdGFySWQ6XCJcIixkZXN0aW5hdGlvbjpcIlwifTtyZXR1cm4gbi5hcmVzRXZlbnRCYXNlPXZvaWQgMCE9PWUuYXJlc0V2ZW50QmFzZSYmbnVsbCE9PWUuYXJlc0V2ZW50QmFzZT90LkFyZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5hcmVzRXZlbnRCYXNlKTp2b2lkIDAsbi5tZWRpYVR5cGU9ZS5tZWRpYVR5cGU/PzAsbi5hdmF0YXJJZD1lLmF2YXRhcklkPz9cIlwiLG4uZGVzdGluYXRpb249ZS5kZXN0aW5hdGlvbj8/XCJcIixufX0sdC5BcmVzVXBsb2FkUGhvdG9FbmQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZ0LkFyZXNFdmVudEJhc2UuZW5jb2RlKGUuYXJlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS51cGxvYWRJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLnVwbG9hZElkKSwhMD09PWUuc3VjY2VzcyYmbi51aW50MzIoMjQpLmJvb2woZS5zdWNjZXNzKSxcIlwiIT09ZS5hdmF0YXJJZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLmF2YXRhcklkKSxcIlwiIT09ZS5mYWlsdXJlUmVhc29uJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUuZmFpbHVyZVJlYXNvbiksMCE9PWUudXBsb2FkTGF0ZW5jeVNlYyYmbi51aW50MzIoNDkpLmRvdWJsZShlLnVwbG9hZExhdGVuY3lTZWMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAsdXBsb2FkSWQ6XCJcIixzdWNjZXNzOiExLGF2YXRhcklkOlwiXCIsZmFpbHVyZVJlYXNvbjpcIlwiLHVwbG9hZExhdGVuY3lTZWM6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudXBsb2FkSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5zdWNjZXNzPXIuYm9vbCgpO2JyZWFrO2Nhc2UgNDphLmF2YXRhcklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEuZmFpbHVyZVJlYXNvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNjphLnVwbG9hZExhdGVuY3lTZWM9ci5kb3VibGUoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLHVwbG9hZElkOlwiXCIsc3VjY2VzczohMSxhdmF0YXJJZDpcIlwiLGZhaWx1cmVSZWFzb246XCJcIix1cGxvYWRMYXRlbmN5U2VjOjB9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLnVwbG9hZElkPWUudXBsb2FkSWQ/P1wiXCIsbi5zdWNjZXNzPWUuc3VjY2Vzcz8/ITEsbi5hdmF0YXJJZD1lLmF2YXRhcklkPz9cIlwiLG4uZmFpbHVyZVJlYXNvbj1lLmZhaWx1cmVSZWFzb24/P1wiXCIsbi51cGxvYWRMYXRlbmN5U2VjPWUudXBsb2FkTGF0ZW5jeVNlYz8/MCxufX0sdC5BcmVzVXBsb2FkUGhvdG9TdGFydD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmFyZXNFdmVudEJhc2UmJnQuQXJlc0V2ZW50QmFzZS5lbmNvZGUoZS5hcmVzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnVwbG9hZElkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUudXBsb2FkSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17YXJlc0V2ZW50QmFzZTp2b2lkIDAsdXBsb2FkSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYXJlc0V2ZW50QmFzZT10LkFyZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudXBsb2FkSWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2FyZXNFdmVudEJhc2U6dm9pZCAwLHVwbG9hZElkOlwiXCJ9O3JldHVybiBuLmFyZXNFdmVudEJhc2U9dm9pZCAwIT09ZS5hcmVzRXZlbnRCYXNlJiZudWxsIT09ZS5hcmVzRXZlbnRCYXNlP3QuQXJlc0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmFyZXNFdmVudEJhc2UpOnZvaWQgMCxuLnVwbG9hZElkPWUudXBsb2FkSWQ/P1wiXCIsbn19LHQuQml0bW9qaUFwcEFjY291bnRFbWFpbEV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuYWNjb3VudEVtYWlsQWN0aW9uJiZuLnVpbnQzMigxNikuaW50MzIoZS5hY2NvdW50RW1haWxBY3Rpb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsYWNjb3VudEVtYWlsQWN0aW9uOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmFjY291bnRFbWFpbEFjdGlvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhY2NvdW50RW1haWxBY3Rpb246MH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uYWNjb3VudEVtYWlsQWN0aW9uPWUuYWNjb3VudEVtYWlsQWN0aW9uPz8wLG59fSx0LkJpdG1vamlBcHBBY2NvdW50UGhvbmVFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmFjY291bnRQaG9uZUFjdGlvbiYmbi51aW50MzIoMTYpLmludDMyKGUuYWNjb3VudFBob25lQWN0aW9uKSwwIT09ZS5lbnRyeVBvaW50JiZuLnVpbnQzMigyNCkuaW50MzIoZS5lbnRyeVBvaW50KSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGFjY291bnRQaG9uZUFjdGlvbjowLGVudHJ5UG9pbnQ6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYWNjb3VudFBob25lQWN0aW9uPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5lbnRyeVBvaW50PXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGFjY291bnRQaG9uZUFjdGlvbjowLGVudHJ5UG9pbnQ6MH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uYWNjb3VudFBob25lQWN0aW9uPWUuYWNjb3VudFBob25lQWN0aW9uPz8wLG4uZW50cnlQb2ludD1lLmVudHJ5UG9pbnQ/PzAsbn19LHQuQml0bW9qaUFwcEF1dGhFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmJpdG1vamlBcHBBdXRoRXZlbnRUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5iaXRtb2ppQXBwQXV0aEV2ZW50VHlwZSksMCE9PWUuYml0bW9qaUFwcFJlZmVycmVyJiZuLnVpbnQzMigyNCkuaW50MzIoZS5iaXRtb2ppQXBwUmVmZXJyZXIpLFwiXCIhPT1lLmRpcmVjdEF1dGhTZXNzaW9uSWQmJm4udWludDMyKDM0KS5zdHJpbmcoZS5kaXJlY3RBdXRoU2Vzc2lvbklkKSwwIT09ZS5hY2NvdW50SW5mb1R5cGUmJm4udWludDMyKDQwKS5pbnQzMihlLmFjY291bnRJbmZvVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppQXBwQXV0aEV2ZW50VHlwZTowLGJpdG1vamlBcHBSZWZlcnJlcjowLGRpcmVjdEF1dGhTZXNzaW9uSWQ6XCJcIixhY2NvdW50SW5mb1R5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYml0bW9qaUFwcEF1dGhFdmVudFR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmJpdG1vamlBcHBSZWZlcnJlcj1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEuZGlyZWN0QXV0aFNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmFjY291bnRJbmZvVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppQXBwQXV0aEV2ZW50VHlwZTowLGJpdG1vamlBcHBSZWZlcnJlcjowLGRpcmVjdEF1dGhTZXNzaW9uSWQ6XCJcIixhY2NvdW50SW5mb1R5cGU6MH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uYml0bW9qaUFwcEF1dGhFdmVudFR5cGU9ZS5iaXRtb2ppQXBwQXV0aEV2ZW50VHlwZT8/MCxuLmJpdG1vamlBcHBSZWZlcnJlcj1lLmJpdG1vamlBcHBSZWZlcnJlcj8/MCxuLmRpcmVjdEF1dGhTZXNzaW9uSWQ9ZS5kaXJlY3RBdXRoU2Vzc2lvbklkPz9cIlwiLG4uYWNjb3VudEluZm9UeXBlPWUuYWNjb3VudEluZm9UeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyQXZhdGFyRXhpdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmF2YXRhckdlbmRlciYmbi51aW50MzIoMTYpLmludDMyKGUuYXZhdGFyR2VuZGVyKSwwIT09ZS5hdmF0YXJCdWlsZGVyRmxvd01vZGUmJm4udWludDMyKDI0KS5pbnQzMihlLmF2YXRhckJ1aWxkZXJGbG93TW9kZSksMCE9PWUuZXhpdFRyYWl0JiZuLnVpbnQzMigzMikuaW50MzIoZS5leGl0VHJhaXQpLDAhPT1lLmF2YXRhckJ1aWxkZXJTb3VyY2UmJm4udWludDMyKDQwKS5pbnQzMihlLmF2YXRhckJ1aWxkZXJTb3VyY2UpLDAhPT1lLmF2YXRhckJ1aWxkZXJUeXBlJiZuLnVpbnQzMig0OCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJHZW5kZXI6MCxhdmF0YXJCdWlsZGVyRmxvd01vZGU6MCxleGl0VHJhaXQ6MCxhdmF0YXJCdWlsZGVyU291cmNlOjAsYXZhdGFyQnVpbGRlclR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXZhdGFyR2VuZGVyPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLmV4aXRUcmFpdD1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEuYXZhdGFyQnVpbGRlclNvdXJjZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuYXZhdGFyQnVpbGRlclR5cGU9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsYXZhdGFyR2VuZGVyOjAsYXZhdGFyQnVpbGRlckZsb3dNb2RlOjAsZXhpdFRyYWl0OjAsYXZhdGFyQnVpbGRlclNvdXJjZTowLGF2YXRhckJ1aWxkZXJUeXBlOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmF2YXRhckdlbmRlcj1lLmF2YXRhckdlbmRlcj8/MCxuLmF2YXRhckJ1aWxkZXJGbG93TW9kZT1lLmF2YXRhckJ1aWxkZXJGbG93TW9kZT8/MCxuLmV4aXRUcmFpdD1lLmV4aXRUcmFpdD8/MCxuLmF2YXRhckJ1aWxkZXJTb3VyY2U9ZS5hdmF0YXJCdWlsZGVyU291cmNlPz8wLG4uYXZhdGFyQnVpbGRlclR5cGU9ZS5hdmF0YXJCdWlsZGVyVHlwZT8/MCxufX0sdC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlckF2YXRhckxhdW5jaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmF2YXRhckJ1aWxkZXJGbG93TW9kZSYmbi51aW50MzIoMTYpLmludDMyKGUuYXZhdGFyQnVpbGRlckZsb3dNb2RlKSwwIT09ZS5hdmF0YXJCdWlsZGVyU291cmNlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyU291cmNlKSwwIT09ZS5hdmF0YXJCdWlsZGVyVHlwZSYmbi51aW50MzIoMzIpLmludDMyKGUuYXZhdGFyQnVpbGRlclR5cGUpLDAhPT1lLmF2YXRhckdlbmRlciYmbi51aW50MzIoNDApLmludDMyKGUuYXZhdGFyR2VuZGVyKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGF2YXRhckJ1aWxkZXJTb3VyY2U6MCxhdmF0YXJCdWlsZGVyVHlwZTowLGF2YXRhckdlbmRlcjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmF2YXRhckJ1aWxkZXJTb3VyY2U9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLmF2YXRhckJ1aWxkZXJUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDU6YS5hdmF0YXJHZW5kZXI9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsYXZhdGFyQnVpbGRlckZsb3dNb2RlOjAsYXZhdGFyQnVpbGRlclNvdXJjZTowLGF2YXRhckJ1aWxkZXJUeXBlOjAsYXZhdGFyR2VuZGVyOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmF2YXRhckJ1aWxkZXJGbG93TW9kZT1lLmF2YXRhckJ1aWxkZXJGbG93TW9kZT8/MCxuLmF2YXRhckJ1aWxkZXJTb3VyY2U9ZS5hdmF0YXJCdWlsZGVyU291cmNlPz8wLG4uYXZhdGFyQnVpbGRlclR5cGU9ZS5hdmF0YXJCdWlsZGVyVHlwZT8/MCxuLmF2YXRhckdlbmRlcj1lLmF2YXRhckdlbmRlcj8/MCxufX0sdC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlckF2YXRhclNhdmU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5hdmF0YXJHZW5kZXImJm4udWludDMyKDE2KS5pbnQzMihlLmF2YXRhckdlbmRlciksMCE9PWUuYXZhdGFyQnVpbGRlckZsb3dNb2RlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyRmxvd01vZGUpLDAhPT1lLmV4aXRUcmFpdCYmbi51aW50MzIoMzIpLmludDMyKGUuZXhpdFRyYWl0KSxcIlwiIT09ZS5vdXRmaXRJZCYmbi51aW50MzIoNDIpLnN0cmluZyhlLm91dGZpdElkKSwwIT09ZS5hdmF0YXJCdWlsZGVyU291cmNlJiZuLnVpbnQzMig0OCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyU291cmNlKSxcIlwiIT09ZS5hdmF0YXJPcHRpb25JZHMmJm4udWludDMyKDU4KS5zdHJpbmcoZS5hdmF0YXJPcHRpb25JZHMpLCEwPT09ZS53aXRoU2VsZmllJiZuLnVpbnQzMig2NCkuYm9vbChlLndpdGhTZWxmaWUpLCEwPT09ZS53aXRoTWlycm9yJiZuLnVpbnQzMig3MikuYm9vbChlLndpdGhNaXJyb3IpLDAhPT1lLmF2YXRhckJ1aWxkZXJUeXBlJiZuLnVpbnQzMig4MCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJHZW5kZXI6MCxhdmF0YXJCdWlsZGVyRmxvd01vZGU6MCxleGl0VHJhaXQ6MCxvdXRmaXRJZDpcIlwiLGF2YXRhckJ1aWxkZXJTb3VyY2U6MCxhdmF0YXJPcHRpb25JZHM6XCJcIix3aXRoU2VsZmllOiExLHdpdGhNaXJyb3I6ITEsYXZhdGFyQnVpbGRlclR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXZhdGFyR2VuZGVyPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLmV4aXRUcmFpdD1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEub3V0Zml0SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS5hdmF0YXJCdWlsZGVyU291cmNlPXIuaW50MzIoKTticmVhaztjYXNlIDc6YS5hdmF0YXJPcHRpb25JZHM9ci5zdHJpbmcoKTticmVhaztjYXNlIDg6YS53aXRoU2VsZmllPXIuYm9vbCgpO2JyZWFrO2Nhc2UgOTphLndpdGhNaXJyb3I9ci5ib29sKCk7YnJlYWs7Y2FzZSAxMDphLmF2YXRhckJ1aWxkZXJUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGF2YXRhckdlbmRlcjowLGF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGV4aXRUcmFpdDowLG91dGZpdElkOlwiXCIsYXZhdGFyQnVpbGRlclNvdXJjZTowLGF2YXRhck9wdGlvbklkczpcIlwiLHdpdGhTZWxmaWU6ITEsd2l0aE1pcnJvcjohMSxhdmF0YXJCdWlsZGVyVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5hdmF0YXJHZW5kZXI9ZS5hdmF0YXJHZW5kZXI/PzAsbi5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ZS5hdmF0YXJCdWlsZGVyRmxvd01vZGU/PzAsbi5leGl0VHJhaXQ9ZS5leGl0VHJhaXQ/PzAsbi5vdXRmaXRJZD1lLm91dGZpdElkPz9cIlwiLG4uYXZhdGFyQnVpbGRlclNvdXJjZT1lLmF2YXRhckJ1aWxkZXJTb3VyY2U/PzAsbi5hdmF0YXJPcHRpb25JZHM9ZS5hdmF0YXJPcHRpb25JZHM/P1wiXCIsbi53aXRoU2VsZmllPWUud2l0aFNlbGZpZT8/ITEsbi53aXRoTWlycm9yPWUud2l0aE1pcnJvcj8/ITEsbi5hdmF0YXJCdWlsZGVyVHlwZT1lLmF2YXRhckJ1aWxkZXJUeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyQXZhdGFyU2F2ZUF0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5hdmF0YXJHZW5kZXImJm4udWludDMyKDE2KS5pbnQzMihlLmF2YXRhckdlbmRlciksMCE9PWUuYXZhdGFyQnVpbGRlckZsb3dNb2RlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyRmxvd01vZGUpLDAhPT1lLmV4aXRUcmFpdCYmbi51aW50MzIoMzIpLmludDMyKGUuZXhpdFRyYWl0KSxcIlwiIT09ZS5vdXRmaXRJZCYmbi51aW50MzIoNDIpLnN0cmluZyhlLm91dGZpdElkKSwwIT09ZS5hdmF0YXJCdWlsZGVyU291cmNlJiZuLnVpbnQzMig0OCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyU291cmNlKSxcIlwiIT09ZS5hdmF0YXJPcHRpb25JZHMmJm4udWludDMyKDU4KS5zdHJpbmcoZS5hdmF0YXJPcHRpb25JZHMpLCEwPT09ZS53aXRoU2VsZmllJiZuLnVpbnQzMig2NCkuYm9vbChlLndpdGhTZWxmaWUpLCEwPT09ZS53aXRoTWlycm9yJiZuLnVpbnQzMig3MikuYm9vbChlLndpdGhNaXJyb3IpLDAhPT1lLmF2YXRhckJ1aWxkZXJUeXBlJiZuLnVpbnQzMig4MCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJHZW5kZXI6MCxhdmF0YXJCdWlsZGVyRmxvd01vZGU6MCxleGl0VHJhaXQ6MCxvdXRmaXRJZDpcIlwiLGF2YXRhckJ1aWxkZXJTb3VyY2U6MCxhdmF0YXJPcHRpb25JZHM6XCJcIix3aXRoU2VsZmllOiExLHdpdGhNaXJyb3I6ITEsYXZhdGFyQnVpbGRlclR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXZhdGFyR2VuZGVyPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLmV4aXRUcmFpdD1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEub3V0Zml0SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS5hdmF0YXJCdWlsZGVyU291cmNlPXIuaW50MzIoKTticmVhaztjYXNlIDc6YS5hdmF0YXJPcHRpb25JZHM9ci5zdHJpbmcoKTticmVhaztjYXNlIDg6YS53aXRoU2VsZmllPXIuYm9vbCgpO2JyZWFrO2Nhc2UgOTphLndpdGhNaXJyb3I9ci5ib29sKCk7YnJlYWs7Y2FzZSAxMDphLmF2YXRhckJ1aWxkZXJUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGF2YXRhckdlbmRlcjowLGF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGV4aXRUcmFpdDowLG91dGZpdElkOlwiXCIsYXZhdGFyQnVpbGRlclNvdXJjZTowLGF2YXRhck9wdGlvbklkczpcIlwiLHdpdGhTZWxmaWU6ITEsd2l0aE1pcnJvcjohMSxhdmF0YXJCdWlsZGVyVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5hdmF0YXJHZW5kZXI9ZS5hdmF0YXJHZW5kZXI/PzAsbi5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ZS5hdmF0YXJCdWlsZGVyRmxvd01vZGU/PzAsbi5leGl0VHJhaXQ9ZS5leGl0VHJhaXQ/PzAsbi5vdXRmaXRJZD1lLm91dGZpdElkPz9cIlwiLG4uYXZhdGFyQnVpbGRlclNvdXJjZT1lLmF2YXRhckJ1aWxkZXJTb3VyY2U/PzAsbi5hdmF0YXJPcHRpb25JZHM9ZS5hdmF0YXJPcHRpb25JZHM/P1wiXCIsbi53aXRoU2VsZmllPWUud2l0aFNlbGZpZT8/ITEsbi53aXRoTWlycm9yPWUud2l0aE1pcnJvcj8/ITEsbi5hdmF0YXJCdWlsZGVyVHlwZT1lLmF2YXRhckJ1aWxkZXJUeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyQXZhdGFyU2F2ZUZyb21DcmVhdGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5hdmF0YXJHZW5kZXImJm4udWludDMyKDE2KS5pbnQzMihlLmF2YXRhckdlbmRlciksMCE9PWUuYXZhdGFyQnVpbGRlckZsb3dNb2RlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyRmxvd01vZGUpLDAhPT1lLmV4aXRUcmFpdCYmbi51aW50MzIoMzIpLmludDMyKGUuZXhpdFRyYWl0KSxcIlwiIT09ZS5vdXRmaXRJZCYmbi51aW50MzIoNDIpLnN0cmluZyhlLm91dGZpdElkKSwwIT09ZS5hdmF0YXJCdWlsZGVyU291cmNlJiZuLnVpbnQzMig0OCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyU291cmNlKSxcIlwiIT09ZS5hdmF0YXJPcHRpb25JZHMmJm4udWludDMyKDU4KS5zdHJpbmcoZS5hdmF0YXJPcHRpb25JZHMpLCEwPT09ZS53aXRoU2VsZmllJiZuLnVpbnQzMig2NCkuYm9vbChlLndpdGhTZWxmaWUpLCEwPT09ZS53aXRoTWlycm9yJiZuLnVpbnQzMig3MikuYm9vbChlLndpdGhNaXJyb3IpLDAhPT1lLmF2YXRhckJ1aWxkZXJUeXBlJiZuLnVpbnQzMig4MCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJHZW5kZXI6MCxhdmF0YXJCdWlsZGVyRmxvd01vZGU6MCxleGl0VHJhaXQ6MCxvdXRmaXRJZDpcIlwiLGF2YXRhckJ1aWxkZXJTb3VyY2U6MCxhdmF0YXJPcHRpb25JZHM6XCJcIix3aXRoU2VsZmllOiExLHdpdGhNaXJyb3I6ITEsYXZhdGFyQnVpbGRlclR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXZhdGFyR2VuZGVyPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLmV4aXRUcmFpdD1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEub3V0Zml0SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS5hdmF0YXJCdWlsZGVyU291cmNlPXIuaW50MzIoKTticmVhaztjYXNlIDc6YS5hdmF0YXJPcHRpb25JZHM9ci5zdHJpbmcoKTticmVhaztjYXNlIDg6YS53aXRoU2VsZmllPXIuYm9vbCgpO2JyZWFrO2Nhc2UgOTphLndpdGhNaXJyb3I9ci5ib29sKCk7YnJlYWs7Y2FzZSAxMDphLmF2YXRhckJ1aWxkZXJUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGF2YXRhckdlbmRlcjowLGF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGV4aXRUcmFpdDowLG91dGZpdElkOlwiXCIsYXZhdGFyQnVpbGRlclNvdXJjZTowLGF2YXRhck9wdGlvbklkczpcIlwiLHdpdGhTZWxmaWU6ITEsd2l0aE1pcnJvcjohMSxhdmF0YXJCdWlsZGVyVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5hdmF0YXJHZW5kZXI9ZS5hdmF0YXJHZW5kZXI/PzAsbi5hdmF0YXJCdWlsZGVyRmxvd01vZGU9ZS5hdmF0YXJCdWlsZGVyRmxvd01vZGU/PzAsbi5leGl0VHJhaXQ9ZS5leGl0VHJhaXQ/PzAsbi5vdXRmaXRJZD1lLm91dGZpdElkPz9cIlwiLG4uYXZhdGFyQnVpbGRlclNvdXJjZT1lLmF2YXRhckJ1aWxkZXJTb3VyY2U/PzAsbi5hdmF0YXJPcHRpb25JZHM9ZS5hdmF0YXJPcHRpb25JZHM/P1wiXCIsbi53aXRoU2VsZmllPWUud2l0aFNlbGZpZT8/ITEsbi53aXRoTWlycm9yPWUud2l0aE1pcnJvcj8/ITEsbi5hdmF0YXJCdWlsZGVyVHlwZT1lLmF2YXRhckJ1aWxkZXJUeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyRmFzaGlvbkxhdW5jaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmF2YXRhckdlbmRlciYmbi51aW50MzIoMTYpLmludDMyKGUuYXZhdGFyR2VuZGVyKSwwIT09ZS5hdmF0YXJCdWlsZGVyRmxvd01vZGUmJm4udWludDMyKDI0KS5pbnQzMihlLmF2YXRhckJ1aWxkZXJGbG93TW9kZSksMCE9PWUuYXZhdGFyQnVpbGRlclNvdXJjZSYmbi51aW50MzIoMzIpLmludDMyKGUuYXZhdGFyQnVpbGRlclNvdXJjZSksMCE9PWUuYXZhdGFyQnVpbGRlclR5cGUmJm4udWludDMyKDQwKS5pbnQzMihlLmF2YXRhckJ1aWxkZXJUeXBlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGF2YXRhckdlbmRlcjowLGF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGF2YXRhckJ1aWxkZXJTb3VyY2U6MCxhdmF0YXJCdWlsZGVyVHlwZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5hdmF0YXJHZW5kZXI9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmF2YXRhckJ1aWxkZXJGbG93TW9kZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEuYXZhdGFyQnVpbGRlclNvdXJjZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEuYXZhdGFyQnVpbGRlclR5cGU9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsYXZhdGFyR2VuZGVyOjAsYXZhdGFyQnVpbGRlckZsb3dNb2RlOjAsYXZhdGFyQnVpbGRlclNvdXJjZTowLGF2YXRhckJ1aWxkZXJUeXBlOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmF2YXRhckdlbmRlcj1lLmF2YXRhckdlbmRlcj8/MCxuLmF2YXRhckJ1aWxkZXJGbG93TW9kZT1lLmF2YXRhckJ1aWxkZXJGbG93TW9kZT8/MCxuLmF2YXRhckJ1aWxkZXJTb3VyY2U9ZS5hdmF0YXJCdWlsZGVyU291cmNlPz8wLG4uYXZhdGFyQnVpbGRlclR5cGU9ZS5hdmF0YXJCdWlsZGVyVHlwZT8/MCxufX0sdC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlckdlbmRlclNlbGVjdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmF2YXRhckdlbmRlciYmbi51aW50MzIoMTYpLmludDMyKGUuYXZhdGFyR2VuZGVyKSwwIT09ZS5hdmF0YXJCdWlsZGVyVHlwZSYmbi51aW50MzIoMjQpLmludDMyKGUuYXZhdGFyQnVpbGRlclR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsYXZhdGFyR2VuZGVyOjAsYXZhdGFyQnVpbGRlclR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXZhdGFyR2VuZGVyPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5hdmF0YXJCdWlsZGVyVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJHZW5kZXI6MCxhdmF0YXJCdWlsZGVyVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5hdmF0YXJHZW5kZXI9ZS5hdmF0YXJHZW5kZXI/PzAsbi5hdmF0YXJCdWlsZGVyVHlwZT1lLmF2YXRhckJ1aWxkZXJUeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyR2VuZGVyVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmF2YXRhckJ1aWxkZXJUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5hdmF0YXJCdWlsZGVyVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJCdWlsZGVyVHlwZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5hdmF0YXJCdWlsZGVyVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJCdWlsZGVyVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5hdmF0YXJCdWlsZGVyVHlwZT1lLmF2YXRhckJ1aWxkZXJUeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyTWlycm9yUHJlZGljdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm1pcnJvclBlcmZvcm1hbmNlTG9nJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubWlycm9yUGVyZm9ybWFuY2VMb2cpLFwiXCIhPT1lLmF2YXRhck9wdGlvbklkcyYmbi51aW50MzIoMjYpLnN0cmluZyhlLmF2YXRhck9wdGlvbklkcyksMCE9PWUubWlycm9yQ2xhc3NpZmljYXRpb25TdGF0dXMmJm4udWludDMyKDMyKS5pbnQzMihlLm1pcnJvckNsYXNzaWZpY2F0aW9uU3RhdHVzKSwwIT09ZS5hdmF0YXJCdWlsZGVyU291cmNlJiZuLnVpbnQzMig0MCkuaW50MzIoZS5hdmF0YXJCdWlsZGVyU291cmNlKSwwIT09ZS5hdmF0YXJCdWlsZGVyVHlwZSYmbi51aW50MzIoNDgpLmludDMyKGUuYXZhdGFyQnVpbGRlclR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsbWlycm9yUGVyZm9ybWFuY2VMb2c6XCJcIixhdmF0YXJPcHRpb25JZHM6XCJcIixtaXJyb3JDbGFzc2lmaWNhdGlvblN0YXR1czowLGF2YXRhckJ1aWxkZXJTb3VyY2U6MCxhdmF0YXJCdWlsZGVyVHlwZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5taXJyb3JQZXJmb3JtYW5jZUxvZz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmF2YXRhck9wdGlvbklkcz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLm1pcnJvckNsYXNzaWZpY2F0aW9uU3RhdHVzPXIuaW50MzIoKTticmVhaztjYXNlIDU6YS5hdmF0YXJCdWlsZGVyU291cmNlPXIuaW50MzIoKTticmVhaztjYXNlIDY6YS5hdmF0YXJCdWlsZGVyVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxtaXJyb3JQZXJmb3JtYW5jZUxvZzpcIlwiLGF2YXRhck9wdGlvbklkczpcIlwiLG1pcnJvckNsYXNzaWZpY2F0aW9uU3RhdHVzOjAsYXZhdGFyQnVpbGRlclNvdXJjZTowLGF2YXRhckJ1aWxkZXJUeXBlOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLm1pcnJvclBlcmZvcm1hbmNlTG9nPWUubWlycm9yUGVyZm9ybWFuY2VMb2c/P1wiXCIsbi5hdmF0YXJPcHRpb25JZHM9ZS5hdmF0YXJPcHRpb25JZHM/P1wiXCIsbi5taXJyb3JDbGFzc2lmaWNhdGlvblN0YXR1cz1lLm1pcnJvckNsYXNzaWZpY2F0aW9uU3RhdHVzPz8wLG4uYXZhdGFyQnVpbGRlclNvdXJjZT1lLmF2YXRhckJ1aWxkZXJTb3VyY2U/PzAsbi5hdmF0YXJCdWlsZGVyVHlwZT1lLmF2YXRhckJ1aWxkZXJUeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyT3V0Zml0QWN0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuYml0bW9qaUZhc2hpb25PdXRmaXRBY3Rpb25UeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5iaXRtb2ppRmFzaGlvbk91dGZpdEFjdGlvblR5cGUpLFwiXCIhPT1lLmJpdG1vamlPdXRmaXQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5iaXRtb2ppT3V0Zml0KSwwIT09ZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlJiZuLnVpbnQzMigzMikuaW50MzIoZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlKSwwIT09ZS5iaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnkmJm4udWludDMyKDQwKS5pbnQzMihlLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeSksMCE9PWUuYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlJiZuLnVpbnQzMig0OCkuaW50MzIoZS5iaXRtb2ppQXZhdGFyQnVpbGRlclR5cGUpLFwiMFwiIT09ZS5iaXRtb2ppQXZhdGFyR2VuZGVyJiZuLnVpbnQzMig1NikudWludDY0KGUuYml0bW9qaUF2YXRhckdlbmRlciksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppRmFzaGlvbk91dGZpdEFjdGlvblR5cGU6MCxiaXRtb2ppT3V0Zml0OlwiXCIsYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeTowLGJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZTowLGJpdG1vamlBdmF0YXJHZW5kZXI6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmJpdG1vamlGYXNoaW9uT3V0Zml0QWN0aW9uVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuYml0bW9qaU91dGZpdD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNTphLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeT1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDc6YS5iaXRtb2ppQXZhdGFyR2VuZGVyPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppRmFzaGlvbk91dGZpdEFjdGlvblR5cGU6MCxiaXRtb2ppT3V0Zml0OlwiXCIsYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeTowLGJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZTowLGJpdG1vamlBdmF0YXJHZW5kZXI6XCIwXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmJpdG1vamlGYXNoaW9uT3V0Zml0QWN0aW9uVHlwZT1lLmJpdG1vamlGYXNoaW9uT3V0Zml0QWN0aW9uVHlwZT8/MCxuLmJpdG1vamlPdXRmaXQ9ZS5iaXRtb2ppT3V0Zml0Pz9cIlwiLG4uYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZT1lLmJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGU/PzAsbi5iaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnk9ZS5iaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnk/PzAsbi5iaXRtb2ppQXZhdGFyQnVpbGRlclR5cGU9ZS5iaXRtb2ppQXZhdGFyQnVpbGRlclR5cGU/PzAsbi5iaXRtb2ppQXZhdGFyR2VuZGVyPWUuYml0bW9qaUF2YXRhckdlbmRlcj8/XCIwXCIsbn19LHQuQml0bW9qaUFwcEF2YXRhckJ1aWxkZXJPdXRmaXRDaGFuZ2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5iaXRtb2ppT3V0Zml0VHlwZSYmbi51aW50MzIoMTYpLmludDMyKGUuYml0bW9qaU91dGZpdFR5cGUpLFwiXCIhPT1lLmJpdG1vamlPdXRmaXQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5iaXRtb2ppT3V0Zml0KSwhMD09PWUuYml0bW9qaUhhc1RhcHBlZE1peEFuZE1hdGNoSXRlbUluU2Vzc2lvbiYmbi51aW50MzIoMzIpLmJvb2woZS5iaXRtb2ppSGFzVGFwcGVkTWl4QW5kTWF0Y2hJdGVtSW5TZXNzaW9uKSwwIT09ZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlJiZuLnVpbnQzMig0MCkuaW50MzIoZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlKSwwIT09ZS5iaXRtb2ppQXZhdGFyQnVpbGRlclR5cGUmJm4udWludDMyKDQ4KS5pbnQzMihlLmJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZSksXCIwXCIhPT1lLmJpdG1vamlBdmF0YXJHZW5kZXImJm4udWludDMyKDU2KS51aW50NjQoZS5iaXRtb2ppQXZhdGFyR2VuZGVyKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGJpdG1vamlPdXRmaXRUeXBlOjAsYml0bW9qaU91dGZpdDpcIlwiLGJpdG1vamlIYXNUYXBwZWRNaXhBbmRNYXRjaEl0ZW1JblNlc3Npb246ITEsYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZTowLGJpdG1vamlBdmF0YXJHZW5kZXI6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmJpdG1vamlPdXRmaXRUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5iaXRtb2ppT3V0Zml0PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuYml0bW9qaUhhc1RhcHBlZE1peEFuZE1hdGNoSXRlbUluU2Vzc2lvbj1yLmJvb2woKTticmVhaztjYXNlIDU6YS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlPXIuaW50MzIoKTticmVhaztjYXNlIDY6YS5iaXRtb2ppQXZhdGFyQnVpbGRlclR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNzphLmJpdG1vamlBdmF0YXJHZW5kZXI9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGJpdG1vamlPdXRmaXRUeXBlOjAsYml0bW9qaU91dGZpdDpcIlwiLGJpdG1vamlIYXNUYXBwZWRNaXhBbmRNYXRjaEl0ZW1JblNlc3Npb246ITEsYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZTowLGJpdG1vamlBdmF0YXJHZW5kZXI6XCIwXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmJpdG1vamlPdXRmaXRUeXBlPWUuYml0bW9qaU91dGZpdFR5cGU/PzAsbi5iaXRtb2ppT3V0Zml0PWUuYml0bW9qaU91dGZpdD8/XCJcIixuLmJpdG1vamlIYXNUYXBwZWRNaXhBbmRNYXRjaEl0ZW1JblNlc3Npb249ZS5iaXRtb2ppSGFzVGFwcGVkTWl4QW5kTWF0Y2hJdGVtSW5TZXNzaW9uPz8hMSxuLmJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGU9ZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlPz8wLG4uYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlPWUuYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlPz8wLG4uYml0bW9qaUF2YXRhckdlbmRlcj1lLmJpdG1vamlBdmF0YXJHZW5kZXI/P1wiMFwiLG59fSx0LkJpdG1vamlBcHBBdmF0YXJCdWlsZGVyUGFnZVZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUuYml0bW9qaUF2YXRhckdlbmRlciYmbi51aW50MzIoMTYpLnVpbnQ2NChlLmJpdG1vamlBdmF0YXJHZW5kZXIpLDAhPT1lLmJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZSYmbi51aW50MzIoMjQpLmludDMyKGUuYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlKSwwIT09ZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlJiZuLnVpbnQzMigzMikuaW50MzIoZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlKSwwIT09ZS5iaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnkmJm4udWludDMyKDQwKS5pbnQzMihlLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppQXZhdGFyR2VuZGVyOlwiMFwiLGJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZTowLGJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGU6MCxiaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnk6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYml0bW9qaUF2YXRhckdlbmRlcj1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLmJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEuYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEuYml0bW9qaUF2YXRhckJ1aWxkZXJUcmFpdENhdGVnb3J5PXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGJpdG1vamlBdmF0YXJHZW5kZXI6XCIwXCIsYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlOjAsYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZTowLGJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5iaXRtb2ppQXZhdGFyR2VuZGVyPWUuYml0bW9qaUF2YXRhckdlbmRlcj8/XCIwXCIsbi5iaXRtb2ppQXZhdGFyQnVpbGRlclR5cGU9ZS5iaXRtb2ppQXZhdGFyQnVpbGRlclR5cGU/PzAsbi5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlPWUuYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZT8/MCxuLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeT1lLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeT8/MCxufX0sdC5CaXRtb2ppQXBwQXZhdGFyQnVpbGRlclNlbGZpZUFjdGlvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmF2YXRhckdlbmRlciYmbi51aW50MzIoMTYpLmludDMyKGUuYXZhdGFyR2VuZGVyKSwwIT09ZS5zZWxmaWVBY3Rpb24mJm4udWludDMyKDI0KS5pbnQzMihlLnNlbGZpZUFjdGlvbiksMCE9PWUuYXZhdGFyQnVpbGRlclR5cGUmJm4udWludDMyKDMyKS5pbnQzMihlLmF2YXRhckJ1aWxkZXJUeXBlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGF2YXRhckdlbmRlcjowLHNlbGZpZUFjdGlvbjowLGF2YXRhckJ1aWxkZXJUeXBlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmF2YXRhckdlbmRlcj1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuc2VsZmllQWN0aW9uPXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5hdmF0YXJCdWlsZGVyVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxhdmF0YXJHZW5kZXI6MCxzZWxmaWVBY3Rpb246MCxhdmF0YXJCdWlsZGVyVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5hdmF0YXJHZW5kZXI9ZS5hdmF0YXJHZW5kZXI/PzAsbi5zZWxmaWVBY3Rpb249ZS5zZWxmaWVBY3Rpb24/PzAsbi5hdmF0YXJCdWlsZGVyVHlwZT1lLmF2YXRhckJ1aWxkZXJUeXBlPz8wLG59fSx0LkJpdG1vamlBcHBBdmF0YXJUcmFpdEFjdGlvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGUmJm4udWludDMyKDE2KS5pbnQzMihlLmJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGUpLDAhPT1lLmJpdG1vamlBdmF0YXJCdWlsZGVyVHlwZSYmbi51aW50MzIoMjQpLmludDMyKGUuYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlKSxcIlwiIT09ZS5vbGRBdmF0YXJPcHRpb25JZHMmJm4udWludDMyKDQyKS5zdHJpbmcoZS5vbGRBdmF0YXJPcHRpb25JZHMpLFwiXCIhPT1lLmF2YXRhck9wdGlvbklkJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUuYXZhdGFyT3B0aW9uSWQpLDAhPT1lLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeSYmbi51aW50MzIoNjQpLmludDMyKGUuYml0bW9qaUF2YXRhckJ1aWxkZXJUcmFpdENhdGVnb3J5KSwwIT09ZS5iaXRtb2ppQXZhdGFyVHJhaXRBY3Rpb25UeXBlJiZuLnVpbnQzMig3MikuaW50MzIoZS5iaXRtb2ppQXZhdGFyVHJhaXRBY3Rpb25UeXBlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGU6MCxiaXRtb2ppQXZhdGFyQnVpbGRlclR5cGU6MCxvbGRBdmF0YXJPcHRpb25JZHM6XCJcIixhdmF0YXJPcHRpb25JZDpcIlwiLGJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeTowLGJpdG1vamlBdmF0YXJUcmFpdEFjdGlvblR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYml0bW9qaUF2YXRhckJ1aWxkZXJGbG93TW9kZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDU6YS5vbGRBdmF0YXJPcHRpb25JZHM9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS5hdmF0YXJPcHRpb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgODphLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeT1yLmludDMyKCk7YnJlYWs7Y2FzZSA5OmEuYml0bW9qaUF2YXRhclRyYWl0QWN0aW9uVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlOjAsYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlOjAsb2xkQXZhdGFyT3B0aW9uSWRzOlwiXCIsYXZhdGFyT3B0aW9uSWQ6XCJcIixiaXRtb2ppQXZhdGFyQnVpbGRlclRyYWl0Q2F0ZWdvcnk6MCxiaXRtb2ppQXZhdGFyVHJhaXRBY3Rpb25UeXBlOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmJpdG1vamlBdmF0YXJCdWlsZGVyRmxvd01vZGU9ZS5iaXRtb2ppQXZhdGFyQnVpbGRlckZsb3dNb2RlPz8wLG4uYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlPWUuYml0bW9qaUF2YXRhckJ1aWxkZXJUeXBlPz8wLG4ub2xkQXZhdGFyT3B0aW9uSWRzPWUub2xkQXZhdGFyT3B0aW9uSWRzPz9cIlwiLG4uYXZhdGFyT3B0aW9uSWQ9ZS5hdmF0YXJPcHRpb25JZD8/XCJcIixuLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeT1lLmJpdG1vamlBdmF0YXJCdWlsZGVyVHJhaXRDYXRlZ29yeT8/MCxuLmJpdG1vamlBdmF0YXJUcmFpdEFjdGlvblR5cGU9ZS5iaXRtb2ppQXZhdGFyVHJhaXRBY3Rpb25UeXBlPz8wLG59fSx0LkJpdG1vamlBcHBCU0xvZ2luQXV0aG9yaXplVXNlclN1Y2Nlc3M9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcEJTTG9naW5QYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwQlNMb2dpblN1Y2Nlc3M9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcEJTTG9naW5UYXA9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcEJTU2lnbnVwU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwQlNTaWdudXBUYXA9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcEJpcnRoZGF5U2lnbnVwU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwQmlydGhkYXlTaWdudXBWaWV3PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkJpdG1vamlBcHBDbG9zZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwQ29udGFjdEZyaWVuZG1vamlFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmNvbnRhY3RGcmllbmRtb2ppQWN0aW9uJiZuLnVpbnQzMigxNikuaW50MzIoZS5jb250YWN0RnJpZW5kbW9qaUFjdGlvbiksXCIwXCIhPT1lLmZyaWVuZENvdW50JiZuLnVpbnQzMigyNCkudWludDY0KGUuZnJpZW5kQ291bnQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsY29udGFjdEZyaWVuZG1vamlBY3Rpb246MCxmcmllbmRDb3VudDpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuY29udGFjdEZyaWVuZG1vamlBY3Rpb249ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmZyaWVuZENvdW50PXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxjb250YWN0RnJpZW5kbW9qaUFjdGlvbjowLGZyaWVuZENvdW50OlwiMFwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5jb250YWN0RnJpZW5kbW9qaUFjdGlvbj1lLmNvbnRhY3RGcmllbmRtb2ppQWN0aW9uPz8wLG4uZnJpZW5kQ291bnQ9ZS5mcmllbmRDb3VudD8/XCIwXCIsbn19LHQuQml0bW9qaUFwcENvbnRlbnRQcm92aWRlckV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuY29udGVudFByb3ZpZGVyRXZlbnRUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5jb250ZW50UHJvdmlkZXJFdmVudFR5cGUpLFwiXCIhPT1lLmNvbnRlbnRQcm92aWRlckNhbGxpbmdQYWNrYWdlJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuY29udGVudFByb3ZpZGVyQ2FsbGluZ1BhY2thZ2UpLFwiXCIhPT1lLmNvbnRlbnRQcm92aWRlclRhcmdldFBhY2thZ2UmJm4udWludDMyKDM0KS5zdHJpbmcoZS5jb250ZW50UHJvdmlkZXJUYXJnZXRQYWNrYWdlKSwwIT09ZS5jb250ZW50UHJvdmlkZXJQZXJtaXNzaW9uJiZuLnVpbnQzMig0MCkuaW50MzIoZS5jb250ZW50UHJvdmlkZXJQZXJtaXNzaW9uKSwwIT09ZS5zdGlja2VyRm9ybWF0JiZuLnVpbnQzMig0OCkuaW50MzIoZS5zdGlja2VyRm9ybWF0KSxcIlwiIT09ZS5jb250ZW50UHJvdmlkZXJNZXRhR3JvdXBJZCYmbi51aW50MzIoNTgpLnN0cmluZyhlLmNvbnRlbnRQcm92aWRlck1ldGFHcm91cElkKSxcIlwiIT09ZS5jb250ZW50UHJvdmlkZXJTZWFyY2hDb250ZXh0JiZuLnVpbnQzMig2Nikuc3RyaW5nKGUuY29udGVudFByb3ZpZGVyU2VhcmNoQ29udGV4dCksXCJcIiE9PWUuY29udGVudExvY2FsZSYmbi51aW50MzIoNzQpLnN0cmluZyhlLmNvbnRlbnRMb2NhbGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsY29udGVudFByb3ZpZGVyRXZlbnRUeXBlOjAsY29udGVudFByb3ZpZGVyQ2FsbGluZ1BhY2thZ2U6XCJcIixjb250ZW50UHJvdmlkZXJUYXJnZXRQYWNrYWdlOlwiXCIsY29udGVudFByb3ZpZGVyUGVybWlzc2lvbjowLHN0aWNrZXJGb3JtYXQ6MCxjb250ZW50UHJvdmlkZXJNZXRhR3JvdXBJZDpcIlwiLGNvbnRlbnRQcm92aWRlclNlYXJjaENvbnRleHQ6XCJcIixjb250ZW50TG9jYWxlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmNvbnRlbnRQcm92aWRlckV2ZW50VHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuY29udGVudFByb3ZpZGVyQ2FsbGluZ1BhY2thZ2U9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5jb250ZW50UHJvdmlkZXJUYXJnZXRQYWNrYWdlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEuY29udGVudFByb3ZpZGVyUGVybWlzc2lvbj1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuc3RpY2tlckZvcm1hdD1yLmludDMyKCk7YnJlYWs7Y2FzZSA3OmEuY29udGVudFByb3ZpZGVyTWV0YUdyb3VwSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDg6YS5jb250ZW50UHJvdmlkZXJTZWFyY2hDb250ZXh0PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmEuY29udGVudExvY2FsZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsY29udGVudFByb3ZpZGVyRXZlbnRUeXBlOjAsY29udGVudFByb3ZpZGVyQ2FsbGluZ1BhY2thZ2U6XCJcIixjb250ZW50UHJvdmlkZXJUYXJnZXRQYWNrYWdlOlwiXCIsY29udGVudFByb3ZpZGVyUGVybWlzc2lvbjowLHN0aWNrZXJGb3JtYXQ6MCxjb250ZW50UHJvdmlkZXJNZXRhR3JvdXBJZDpcIlwiLGNvbnRlbnRQcm92aWRlclNlYXJjaENvbnRleHQ6XCJcIixjb250ZW50TG9jYWxlOlwiXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmNvbnRlbnRQcm92aWRlckV2ZW50VHlwZT1lLmNvbnRlbnRQcm92aWRlckV2ZW50VHlwZT8/MCxuLmNvbnRlbnRQcm92aWRlckNhbGxpbmdQYWNrYWdlPWUuY29udGVudFByb3ZpZGVyQ2FsbGluZ1BhY2thZ2U/P1wiXCIsbi5jb250ZW50UHJvdmlkZXJUYXJnZXRQYWNrYWdlPWUuY29udGVudFByb3ZpZGVyVGFyZ2V0UGFja2FnZT8/XCJcIixuLmNvbnRlbnRQcm92aWRlclBlcm1pc3Npb249ZS5jb250ZW50UHJvdmlkZXJQZXJtaXNzaW9uPz8wLG4uc3RpY2tlckZvcm1hdD1lLnN0aWNrZXJGb3JtYXQ/PzAsbi5jb250ZW50UHJvdmlkZXJNZXRhR3JvdXBJZD1lLmNvbnRlbnRQcm92aWRlck1ldGFHcm91cElkPz9cIlwiLG4uY29udGVudFByb3ZpZGVyU2VhcmNoQ29udGV4dD1lLmNvbnRlbnRQcm92aWRlclNlYXJjaENvbnRleHQ/P1wiXCIsbi5jb250ZW50TG9jYWxlPWUuY29udGVudExvY2FsZT8/XCJcIixufX0sdC5CaXRtb2ppQXBwRGlyZWN0QXV0aEV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuZXZlbnRUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5ldmVudFR5cGUpLDAhPT1lLmVudHJ5UG9pbnQmJm4udWludDMyKDI0KS5pbnQzMihlLmVudHJ5UG9pbnQpLFwiXCIhPT1lLm9hdXRoQ2xpZW50SWQmJm4udWludDMyKDM0KS5zdHJpbmcoZS5vYXV0aENsaWVudElkKSxcIlwiIT09ZS5kaXJlY3RBdXRoU2Vzc2lvbklkJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUuZGlyZWN0QXV0aFNlc3Npb25JZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxldmVudFR5cGU6MCxlbnRyeVBvaW50OjAsb2F1dGhDbGllbnRJZDpcIlwiLGRpcmVjdEF1dGhTZXNzaW9uSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZXZlbnRUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5lbnRyeVBvaW50PXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5vYXV0aENsaWVudElkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEuZGlyZWN0QXV0aFNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsZXZlbnRUeXBlOjAsZW50cnlQb2ludDowLG9hdXRoQ2xpZW50SWQ6XCJcIixkaXJlY3RBdXRoU2Vzc2lvbklkOlwiXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmV2ZW50VHlwZT1lLmV2ZW50VHlwZT8/MCxuLmVudHJ5UG9pbnQ9ZS5lbnRyeVBvaW50Pz8wLG4ub2F1dGhDbGllbnRJZD1lLm9hdXRoQ2xpZW50SWQ/P1wiXCIsbi5kaXJlY3RBdXRoU2Vzc2lvbklkPWUuZGlyZWN0QXV0aFNlc3Npb25JZD8/XCJcIixufX0sdC5CaXRtb2ppQXBwRGlza0NhY2hlVXRpbGl6YXRpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUuZGlza0NhY2hlU2l6ZUJ5dGVzJiZuLnVpbnQzMigxNikudWludDY0KGUuZGlza0NhY2hlU2l6ZUJ5dGVzKSxcIjBcIiE9PWUuZGlza0NhY2hlQ2FwYWNpdHlCeXRlcyYmbi51aW50MzIoMjQpLnVpbnQ2NChlLmRpc2tDYWNoZUNhcGFjaXR5Qnl0ZXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsZGlza0NhY2hlU2l6ZUJ5dGVzOlwiMFwiLGRpc2tDYWNoZUNhcGFjaXR5Qnl0ZXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmRpc2tDYWNoZVNpemVCeXRlcz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLmRpc2tDYWNoZUNhcGFjaXR5Qnl0ZXM9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGRpc2tDYWNoZVNpemVCeXRlczpcIjBcIixkaXNrQ2FjaGVDYXBhY2l0eUJ5dGVzOlwiMFwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5kaXNrQ2FjaGVTaXplQnl0ZXM9ZS5kaXNrQ2FjaGVTaXplQnl0ZXM/P1wiMFwiLG4uZGlza0NhY2hlQ2FwYWNpdHlCeXRlcz1lLmRpc2tDYWNoZUNhcGFjaXR5Qnl0ZXM/P1wiMFwiLG59fSx0LkJpdG1vamlBcHBEb3dubG9hZExhdGVuY3k9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2UmJnQuQml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBUaW1lckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5wYXlsb2FkVHlwZSYmbi51aW50MzIoMTYpLmludDMyKGUucGF5bG9hZFR5cGUpLFwiXCIhPT1lLmRvd25sb2FkSG9zdG5hbWUmJm4udWludDMyKDI2KS5zdHJpbmcoZS5kb3dubG9hZEhvc3RuYW1lKSxcIlwiIT09ZS5jZlBvcCYmbi51aW50MzIoMzQpLnN0cmluZyhlLmNmUG9wKSwhMD09PWUuaXNDZkNhY2hlSGl0JiZuLnVpbnQzMig0MCkuYm9vbChlLmlzQ2ZDYWNoZUhpdCksXCIwXCIhPT1lLmh0dHBTdGF0dXNDb2RlJiZuLnVpbnQzMig0OCkudWludDY0KGUuaHR0cFN0YXR1c0NvZGUpLDAhPT1lLmh0dHBQcm90b2NvbCYmbi51aW50MzIoNTYpLmludDMyKGUuaHR0cFByb3RvY29sKSxcIjBcIiE9PWUucGF5bG9hZFNpemVCeXRlcyYmbi51aW50MzIoNjQpLnVpbnQ2NChlLnBheWxvYWRTaXplQnl0ZXMpLDAhPT1lLmh0dHBNZXRob2QmJm4udWludDMyKDcyKS5pbnQzMihlLmh0dHBNZXRob2QpLFwiXCIhPT1lLnBhdGgmJm4udWludDMyKDgyKS5zdHJpbmcoZS5wYXRoKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBUaW1lckV2ZW50QmFzZTp2b2lkIDAscGF5bG9hZFR5cGU6MCxkb3dubG9hZEhvc3RuYW1lOlwiXCIsY2ZQb3A6XCJcIixpc0NmQ2FjaGVIaXQ6ITEsaHR0cFN0YXR1c0NvZGU6XCIwXCIsaHR0cFByb3RvY29sOjAscGF5bG9hZFNpemVCeXRlczpcIjBcIixodHRwTWV0aG9kOjAscGF0aDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2U9dC5CaXRtb2ppQXBwVGltZXJFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEucGF5bG9hZFR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmRvd25sb2FkSG9zdG5hbWU9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5jZlBvcD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmlzQ2ZDYWNoZUhpdD1yLmJvb2woKTticmVhaztjYXNlIDY6YS5odHRwU3RhdHVzQ29kZT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNzphLmh0dHBQcm90b2NvbD1yLmludDMyKCk7YnJlYWs7Y2FzZSA4OmEucGF5bG9hZFNpemVCeXRlcz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgOTphLmh0dHBNZXRob2Q9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMTA6YS5wYXRoPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwVGltZXJFdmVudEJhc2U6dm9pZCAwLHBheWxvYWRUeXBlOjAsZG93bmxvYWRIb3N0bmFtZTpcIlwiLGNmUG9wOlwiXCIsaXNDZkNhY2hlSGl0OiExLGh0dHBTdGF0dXNDb2RlOlwiMFwiLGh0dHBQcm90b2NvbDowLHBheWxvYWRTaXplQnl0ZXM6XCIwXCIsaHR0cE1ldGhvZDowLHBhdGg6XCJcIn07cmV0dXJuIG4uYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2U/dC5CaXRtb2ppQXBwVGltZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2UpOnZvaWQgMCxuLnBheWxvYWRUeXBlPWUucGF5bG9hZFR5cGU/PzAsbi5kb3dubG9hZEhvc3RuYW1lPWUuZG93bmxvYWRIb3N0bmFtZT8/XCJcIixuLmNmUG9wPWUuY2ZQb3A/P1wiXCIsbi5pc0NmQ2FjaGVIaXQ9ZS5pc0NmQ2FjaGVIaXQ/PyExLG4uaHR0cFN0YXR1c0NvZGU9ZS5odHRwU3RhdHVzQ29kZT8/XCIwXCIsbi5odHRwUHJvdG9jb2w9ZS5odHRwUHJvdG9jb2w/PzAsbi5wYXlsb2FkU2l6ZUJ5dGVzPWUucGF5bG9hZFNpemVCeXRlcz8/XCIwXCIsbi5odHRwTWV0aG9kPWUuaHR0cE1ldGhvZD8/MCxuLnBhdGg9ZS5wYXRoPz9cIlwiLG59fSx0LkJpdG1vamlBcHBFbWFpbExvZ2luPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkJpdG1vamlBcHBGb3Jnb3RQYXNzd29yZFRhcD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwRnJpZW5kUGVybWlzc2lvbnNBY2NlcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcEZyaWVuZFBlcm1pc3Npb25zT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwRnJpZW5kUGlja2VyQWRkRnJpZW5kc1RhcD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwRnJpZW5kUGlja2VyRGlzbWlzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS5mcmllbmRDb3VudCYmbi51aW50MzIoMTYpLnVpbnQ2NChlLmZyaWVuZENvdW50KSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGZyaWVuZENvdW50OlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mcmllbmRDb3VudD1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsZnJpZW5kQ291bnQ6XCIwXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmZyaWVuZENvdW50PWUuZnJpZW5kQ291bnQ/P1wiMFwiLG59fSx0LkJpdG1vamlBcHBGcmllbmRQaWNrZXJGcmllbmRTZWxlY3Q9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5mcmllbmRIYXNoJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuZnJpZW5kSGFzaCksMCE9PWUuZnJpZW5kU2VsZWN0aW9uU291cmNlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5mcmllbmRTZWxlY3Rpb25Tb3VyY2UpLCEwPT09ZS5pc1JlY2VudEZyaWVuZCYmbi51aW50MzIoMzIpLmJvb2woZS5pc1JlY2VudEZyaWVuZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxmcmllbmRIYXNoOlwiXCIsZnJpZW5kU2VsZWN0aW9uU291cmNlOjAsaXNSZWNlbnRGcmllbmQ6ITF9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmZyaWVuZEhhc2g9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5mcmllbmRTZWxlY3Rpb25Tb3VyY2U9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLmlzUmVjZW50RnJpZW5kPXIuYm9vbCgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsZnJpZW5kSGFzaDpcIlwiLGZyaWVuZFNlbGVjdGlvblNvdXJjZTowLGlzUmVjZW50RnJpZW5kOiExfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5mcmllbmRIYXNoPWUuZnJpZW5kSGFzaD8/XCJcIixuLmZyaWVuZFNlbGVjdGlvblNvdXJjZT1lLmZyaWVuZFNlbGVjdGlvblNvdXJjZT8/MCxuLmlzUmVjZW50RnJpZW5kPWUuaXNSZWNlbnRGcmllbmQ/PyExLG59fSx0LkJpdG1vamlBcHBGcmllbmRQaWNrZXJPcGVuPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLmZyaWVuZENvdW50JiZuLnVpbnQzMigxNikudWludDY0KGUuZnJpZW5kQ291bnQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsZnJpZW5kQ291bnQ6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmZyaWVuZENvdW50PXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxmcmllbmRDb3VudDpcIjBcIn07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uZnJpZW5kQ291bnQ9ZS5mcmllbmRDb3VudD8/XCIwXCIsbn19LHQuQml0bW9qaUFwcEZyaWVuZFBpY2tlclNlYXJjaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwRnJpZW5kUGlja2VyU2VhcmNoU3RhcnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcEZyaWVuZG1vamlGcmllbmRQaWNrZXJFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmZyaWVuZG1vamlGcmllbmRQaWNrZXJBY3Rpb24mJm4udWludDMyKDE2KS5pbnQzMihlLmZyaWVuZG1vamlGcmllbmRQaWNrZXJBY3Rpb24pLDAhPT1lLmZyaWVuZFBpY2tlclR5cGUmJm4udWludDMyKDI0KS5pbnQzMihlLmZyaWVuZFBpY2tlclR5cGUpLFwiMFwiIT09ZS5mcmllbmRDb3VudCYmbi51aW50MzIoMzIpLnVpbnQ2NChlLmZyaWVuZENvdW50KSxcIjBcIiE9PWUuZnJpZW5kSW5kZXgmJm4udWludDMyKDQwKS51aW50NjQoZS5mcmllbmRJbmRleCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxmcmllbmRtb2ppRnJpZW5kUGlja2VyQWN0aW9uOjAsZnJpZW5kUGlja2VyVHlwZTowLGZyaWVuZENvdW50OlwiMFwiLGZyaWVuZEluZGV4OlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mcmllbmRtb2ppRnJpZW5kUGlja2VyQWN0aW9uPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5mcmllbmRQaWNrZXJUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5mcmllbmRDb3VudD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNTphLmZyaWVuZEluZGV4PXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxmcmllbmRtb2ppRnJpZW5kUGlja2VyQWN0aW9uOjAsZnJpZW5kUGlja2VyVHlwZTowLGZyaWVuZENvdW50OlwiMFwiLGZyaWVuZEluZGV4OlwiMFwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5mcmllbmRtb2ppRnJpZW5kUGlja2VyQWN0aW9uPWUuZnJpZW5kbW9qaUZyaWVuZFBpY2tlckFjdGlvbj8/MCxuLmZyaWVuZFBpY2tlclR5cGU9ZS5mcmllbmRQaWNrZXJUeXBlPz8wLG4uZnJpZW5kQ291bnQ9ZS5mcmllbmRDb3VudD8/XCIwXCIsbi5mcmllbmRJbmRleD1lLmZyaWVuZEluZGV4Pz9cIjBcIixufX0sdC5CaXRtb2ppQXBwRnJpZW5kbW9qaU9uYm9hcmRpbmdFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmZyaWVuZG1vamlPbmJvYXJkaW5nQWN0aW9uJiZuLnVpbnQzMigxNikuaW50MzIoZS5mcmllbmRtb2ppT25ib2FyZGluZ0FjdGlvbiksMCE9PWUuZW50cnlQb2ludCYmbi51aW50MzIoMjQpLmludDMyKGUuZW50cnlQb2ludCksXCJcIiE9PWUuaW52aXRlVmFyaWFudElkJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUuaW52aXRlVmFyaWFudElkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGZyaWVuZG1vamlPbmJvYXJkaW5nQWN0aW9uOjAsZW50cnlQb2ludDowLGludml0ZVZhcmlhbnRJZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mcmllbmRtb2ppT25ib2FyZGluZ0FjdGlvbj1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuZW50cnlQb2ludD1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEuaW52aXRlVmFyaWFudElkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxmcmllbmRtb2ppT25ib2FyZGluZ0FjdGlvbjowLGVudHJ5UG9pbnQ6MCxpbnZpdGVWYXJpYW50SWQ6XCJcIn07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uZnJpZW5kbW9qaU9uYm9hcmRpbmdBY3Rpb249ZS5mcmllbmRtb2ppT25ib2FyZGluZ0FjdGlvbj8/MCxuLmVudHJ5UG9pbnQ9ZS5lbnRyeVBvaW50Pz8wLG4uaW52aXRlVmFyaWFudElkPWUuaW52aXRlVmFyaWFudElkPz9cIlwiLG59fSx0LkJpdG1vamlBcHBJbnN0YWxsQXR0cmlidXRpb25FdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnJlZmVycmVyJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUucmVmZXJyZXIpLFwiXCIhPT1lLnNvdXJjZSYmbi51aW50MzIoMjYpLnN0cmluZyhlLnNvdXJjZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxyZWZlcnJlcjpcIlwiLHNvdXJjZTpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5yZWZlcnJlcj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnNvdXJjZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAscmVmZXJyZXI6XCJcIixzb3VyY2U6XCJcIn07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4ucmVmZXJyZXI9ZS5yZWZlcnJlcj8/XCJcIixuLnNvdXJjZT1lLnNvdXJjZT8/XCJcIixufX0sdC5CaXRtb2ppQXBwS2V5Ym9hcmRFbW9qaVNlbGVjdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwS2V5Ym9hcmRFbmFibGVGdWxsQWNjZXNzPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkJpdG1vamlBcHBLZXlib2FyZEV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUua2V5Ym9hcmRBcHBFdmVudCYmbi51aW50MzIoMTYpLmludDMyKGUua2V5Ym9hcmRBcHBFdmVudCksXCIwXCIhPT1lLm1lbW9yeUtiJiZuLnVpbnQzMigyNCkudWludDY0KGUubWVtb3J5S2IpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsa2V5Ym9hcmRBcHBFdmVudDowLG1lbW9yeUtiOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5rZXlib2FyZEFwcEV2ZW50PXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5tZW1vcnlLYj1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsa2V5Ym9hcmRBcHBFdmVudDowLG1lbW9yeUtiOlwiMFwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5rZXlib2FyZEFwcEV2ZW50PWUua2V5Ym9hcmRBcHBFdmVudD8/MCxuLm1lbW9yeUtiPWUubWVtb3J5S2I/P1wiMFwiLG59fSx0LkJpdG1vamlBcHBLZXlib2FyZE1haW5WY0RpZEFwcGVhckNvbGQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUubWVtb3J5S2ImJm4udWludDMyKDE2KS51aW50NjQoZS5tZW1vcnlLYiksXCIwXCIhPT1lLnN0YXJ0dXBUaW1lTXMmJm4udWludDMyKDI0KS51aW50NjQoZS5zdGFydHVwVGltZU1zKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLG1lbW9yeUtiOlwiMFwiLHN0YXJ0dXBUaW1lTXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm1lbW9yeUtiPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmEuc3RhcnR1cFRpbWVNcz1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsbWVtb3J5S2I6XCIwXCIsc3RhcnR1cFRpbWVNczpcIjBcIn07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4ubWVtb3J5S2I9ZS5tZW1vcnlLYj8/XCIwXCIsbi5zdGFydHVwVGltZU1zPWUuc3RhcnR1cFRpbWVNcz8/XCIwXCIsbn19LHQuQml0bW9qaUFwcEtleWJvYXJkT25ib2FyZGluZ1BhZ2VFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmtleWJvYXJkT25ib2FyZGluZ1NvdXJjZSYmbi51aW50MzIoMTYpLmludDMyKGUua2V5Ym9hcmRPbmJvYXJkaW5nU291cmNlKSwwIT09ZS5rZXlib2FyZFR5cGUmJm4udWludDMyKDI0KS5pbnQzMihlLmtleWJvYXJkVHlwZSksMCE9PWUua2V5Ym9hcmRPbmJvYXJkaW5nU3RlcCYmbi51aW50MzIoMzIpLmludDMyKGUua2V5Ym9hcmRPbmJvYXJkaW5nU3RlcCksMCE9PWUua2V5Ym9hcmRPbmJvYXJkaW5nQWN0aW9uJiZuLnVpbnQzMig0MCkuaW50MzIoZS5rZXlib2FyZE9uYm9hcmRpbmdBY3Rpb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsa2V5Ym9hcmRPbmJvYXJkaW5nU291cmNlOjAsa2V5Ym9hcmRUeXBlOjAsa2V5Ym9hcmRPbmJvYXJkaW5nU3RlcDowLGtleWJvYXJkT25ib2FyZGluZ0FjdGlvbjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5rZXlib2FyZE9uYm9hcmRpbmdTb3VyY2U9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmtleWJvYXJkVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEua2V5Ym9hcmRPbmJvYXJkaW5nU3RlcD1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEua2V5Ym9hcmRPbmJvYXJkaW5nQWN0aW9uPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGtleWJvYXJkT25ib2FyZGluZ1NvdXJjZTowLGtleWJvYXJkVHlwZTowLGtleWJvYXJkT25ib2FyZGluZ1N0ZXA6MCxrZXlib2FyZE9uYm9hcmRpbmdBY3Rpb246MH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4ua2V5Ym9hcmRPbmJvYXJkaW5nU291cmNlPWUua2V5Ym9hcmRPbmJvYXJkaW5nU291cmNlPz8wLG4ua2V5Ym9hcmRUeXBlPWUua2V5Ym9hcmRUeXBlPz8wLG4ua2V5Ym9hcmRPbmJvYXJkaW5nU3RlcD1lLmtleWJvYXJkT25ib2FyZGluZ1N0ZXA/PzAsbi5rZXlib2FyZE9uYm9hcmRpbmdBY3Rpb249ZS5rZXlib2FyZE9uYm9hcmRpbmdBY3Rpb24/PzAsbn19LHQuQml0bW9qaUFwcEtleWJvYXJkT3BlbkVtb2ppUGlja2VyPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkJpdG1vamlBcHBLZXlib2FyZFNlbmRUZXh0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkJpdG1vamlBcHBLZXlib2FyZFN3aXRjaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnRhcmdldEtleWJvYXJkUGFja2FnZU5hbWUmJm4udWludDMyKDE4KS5zdHJpbmcoZS50YXJnZXRLZXlib2FyZFBhY2thZ2VOYW1lKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHRhcmdldEtleWJvYXJkUGFja2FnZU5hbWU6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudGFyZ2V0S2V5Ym9hcmRQYWNrYWdlTmFtZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsdGFyZ2V0S2V5Ym9hcmRQYWNrYWdlTmFtZTpcIlwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi50YXJnZXRLZXlib2FyZFBhY2thZ2VOYW1lPWUudGFyZ2V0S2V5Ym9hcmRQYWNrYWdlTmFtZT8/XCJcIixufX0sdC5CaXRtb2ppQXBwTmF2aWdhdGlvbkJ1dHRvblRhcD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLm5hdmlnYXRpb25CdXR0b24mJm4udWludDMyKDE2KS5pbnQzMihlLm5hdmlnYXRpb25CdXR0b24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsbmF2aWdhdGlvbkJ1dHRvbjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5uYXZpZ2F0aW9uQnV0dG9uPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLG5hdmlnYXRpb25CdXR0b246MH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4ubmF2aWdhdGlvbkJ1dHRvbj1lLm5hdmlnYXRpb25CdXR0b24/PzAsbn19LHQuQml0bW9qaUFwcE5vdGlmaWNhdGlvbkV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUubm90aWZpY2F0aW9uRXZlbnRUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5ub3RpZmljYXRpb25FdmVudFR5cGUpLFwiXCIhPT1lLm5vdGlmaWNhdGlvbklkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubm90aWZpY2F0aW9uSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsbm90aWZpY2F0aW9uRXZlbnRUeXBlOjAsbm90aWZpY2F0aW9uSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubm90aWZpY2F0aW9uRXZlbnRUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5ub3RpZmljYXRpb25JZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsbm90aWZpY2F0aW9uRXZlbnRUeXBlOjAsbm90aWZpY2F0aW9uSWQ6XCJcIn07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4ubm90aWZpY2F0aW9uRXZlbnRUeXBlPWUubm90aWZpY2F0aW9uRXZlbnRUeXBlPz8wLG4ubm90aWZpY2F0aW9uSWQ9ZS5ub3RpZmljYXRpb25JZD8/XCJcIixufX0sdC5CaXRtb2ppQXBwT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLCEwPT09ZS53aXRoVm9pY2VPdmVyJiZuLnVpbnQzMigxNikuYm9vbChlLndpdGhWb2ljZU92ZXIpLDAhPT1lLmFwcE9wZW5TdGF0ZSYmbi51aW50MzIoMjQpLmludDMyKGUuYXBwT3BlblN0YXRlKSwwIT09ZS5sYXN0QXBwQ2xvc2VTdGF0ZSYmbi51aW50MzIoMzIpLmludDMyKGUubGFzdEFwcENsb3NlU3RhdGUpLFwiXCIhPT1lLmxhc3RTZXNzaW9uSWQmJm4udWludDMyKDQyKS5zdHJpbmcoZS5sYXN0U2Vzc2lvbklkKSwwIT09ZS51aVN0eWxlJiZuLnVpbnQzMig0OCkuaW50MzIoZS51aVN0eWxlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHdpdGhWb2ljZU92ZXI6ITEsYXBwT3BlblN0YXRlOjAsbGFzdEFwcENsb3NlU3RhdGU6MCxsYXN0U2Vzc2lvbklkOlwiXCIsdWlTdHlsZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS53aXRoVm9pY2VPdmVyPXIuYm9vbCgpO2JyZWFrO2Nhc2UgMzphLmFwcE9wZW5TdGF0ZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEubGFzdEFwcENsb3NlU3RhdGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNTphLmxhc3RTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS51aVN0eWxlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHdpdGhWb2ljZU92ZXI6ITEsYXBwT3BlblN0YXRlOjAsbGFzdEFwcENsb3NlU3RhdGU6MCxsYXN0U2Vzc2lvbklkOlwiXCIsdWlTdHlsZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi53aXRoVm9pY2VPdmVyPWUud2l0aFZvaWNlT3Zlcj8/ITEsbi5hcHBPcGVuU3RhdGU9ZS5hcHBPcGVuU3RhdGU/PzAsbi5sYXN0QXBwQ2xvc2VTdGF0ZT1lLmxhc3RBcHBDbG9zZVN0YXRlPz8wLG4ubGFzdFNlc3Npb25JZD1lLmxhc3RTZXNzaW9uSWQ/P1wiXCIsbi51aVN0eWxlPWUudWlTdHlsZT8/MCxufX0sdC5CaXRtb2ppQXBwUGVyY2VpdmVkT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBUaW1lckV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwVGltZXJFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBUaW1lckV2ZW50QmFzZT10LkJpdG1vamlBcHBUaW1lckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2U/dC5CaXRtb2ppQXBwVGltZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwUmVnaXN0cmF0aW9uRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5iaXRtb2ppQXBwUmVnaXN0cmF0aW9uRXZlbnRUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5iaXRtb2ppQXBwUmVnaXN0cmF0aW9uRXZlbnRUeXBlKSwwIT09ZS5iaXRtb2ppQXBwUmVmZXJyZXImJm4udWludDMyKDI0KS5pbnQzMihlLmJpdG1vamlBcHBSZWZlcnJlciksXCJcIiE9PWUuZGlyZWN0QXV0aFNlc3Npb25JZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLmRpcmVjdEF1dGhTZXNzaW9uSWQpLDAhPT1lLmFjY291bnRJbmZvVHlwZSYmbi51aW50MzIoNDApLmludDMyKGUuYWNjb3VudEluZm9UeXBlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGJpdG1vamlBcHBSZWdpc3RyYXRpb25FdmVudFR5cGU6MCxiaXRtb2ppQXBwUmVmZXJyZXI6MCxkaXJlY3RBdXRoU2Vzc2lvbklkOlwiXCIsYWNjb3VudEluZm9UeXBlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmJpdG1vamlBcHBSZWdpc3RyYXRpb25FdmVudFR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmJpdG1vamlBcHBSZWZlcnJlcj1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEuZGlyZWN0QXV0aFNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmFjY291bnRJbmZvVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppQXBwUmVnaXN0cmF0aW9uRXZlbnRUeXBlOjAsYml0bW9qaUFwcFJlZmVycmVyOjAsZGlyZWN0QXV0aFNlc3Npb25JZDpcIlwiLGFjY291bnRJbmZvVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5iaXRtb2ppQXBwUmVnaXN0cmF0aW9uRXZlbnRUeXBlPWUuYml0bW9qaUFwcFJlZ2lzdHJhdGlvbkV2ZW50VHlwZT8/MCxuLmJpdG1vamlBcHBSZWZlcnJlcj1lLmJpdG1vamlBcHBSZWZlcnJlcj8/MCxuLmRpcmVjdEF1dGhTZXNzaW9uSWQ9ZS5kaXJlY3RBdXRoU2Vzc2lvbklkPz9cIlwiLG4uYWNjb3VudEluZm9UeXBlPWUuYWNjb3VudEluZm9UeXBlPz8wLG59fSx0LkJpdG1vamlBcHBSZXNldFBhc3N3b3JkUGFnZVZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5iaXRtb2ppQXBwUmVmZXJyZXImJm4udWludDMyKDI0KS5pbnQzMihlLmJpdG1vamlBcHBSZWZlcnJlciksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppQXBwUmVmZXJyZXI6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAzOmEuYml0bW9qaUFwcFJlZmVycmVyPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGJpdG1vamlBcHBSZWZlcnJlcjowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5iaXRtb2ppQXBwUmVmZXJyZXI9ZS5iaXRtb2ppQXBwUmVmZXJyZXI/PzAsbn19LHQuQml0bW9qaUFwcFNDTG9naW5Nb25vVXNlckxvZ2luU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppQXBwU0NMb2dpblN1Y2Nlc3M9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcFNDTG9naW5UYXA9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUFwcFNlbmRGcmllbmRtb2ppSW52aXRlRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5pbnZpdGVWYXJpYW50SWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5pbnZpdGVWYXJpYW50SWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsaW52aXRlVmFyaWFudElkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmludml0ZVZhcmlhbnRJZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsaW52aXRlVmFyaWFudElkOlwiXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmludml0ZVZhcmlhbnRJZD1lLmludml0ZVZhcmlhbnRJZD8/XCJcIixufX0sdC5CaXRtb2ppQXBwU2V0dGluZ3NDb250YWN0c0V2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuY29udGFjdHNBY3Rpb24mJm4udWludDMyKDE2KS5pbnQzMihlLmNvbnRhY3RzQWN0aW9uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGNvbnRhY3RzQWN0aW9uOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmNvbnRhY3RzQWN0aW9uPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGNvbnRhY3RzQWN0aW9uOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmNvbnRhY3RzQWN0aW9uPWUuY29udGFjdHNBY3Rpb24/PzAsbn19LHQuQml0bW9qaUFwcFNoYXJlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuc3RpY2tlcklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuc3RpY2tlcklkKSwwIT09ZS5zaGFyZUNhdGVnb3J5JiZuLnVpbnQzMigyNCkuaW50MzIoZS5zaGFyZUNhdGVnb3J5KSwwIT09ZS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnkmJm4udWludDMyKDMyKS5pbnQzMihlLnN0aWNrZXJTZWFyY2hDYXRlZ29yeSksMCE9PWUuc3RpY2tlclN1cGVydGFnJiZuLnVpbnQzMig0MCkuaW50MzIoZS5zdGlja2VyU3VwZXJ0YWcpLFwiXCIhPT1lLnRlbXBsYXRlSWQmJm4udWludDMyKDUwKS5zdHJpbmcoZS50ZW1wbGF0ZUlkKSxcIlwiIT09ZS5zdGlja2VyU2hhcmVBZ2VudCYmbi51aW50MzIoNTgpLnN0cmluZyhlLnN0aWNrZXJTaGFyZUFnZW50KSwwIT09ZS5zdGlja2VyU2hhcmVHZXN0dXJlJiZuLnVpbnQzMig2NCkuaW50MzIoZS5zdGlja2VyU2hhcmVHZXN0dXJlKSxcIlwiIT09ZS5mcmllbmRIYXNoJiZuLnVpbnQzMig3NCkuc3RyaW5nKGUuZnJpZW5kSGFzaCksITA9PT1lLmlzU2hhcmVkT25GaXJzdERheSYmbi51aW50MzIoODApLmJvb2woZS5pc1NoYXJlZE9uRmlyc3REYXkpLFwiXCIhPT1lLnN0aWNrZXJTZWFyY2hUZXJtJiZuLnVpbnQzMig5MCkuc3RyaW5nKGUuc3RpY2tlclNlYXJjaFRlcm0pLFwiMFwiIT09ZS5wb3NpdGlvbiYmbi51aW50MzIoOTYpLnVpbnQ2NChlLnBvc2l0aW9uKSxcIlwiIT09ZS5zdGlja2VyVXVpZCYmbi51aW50MzIoMTA2KS5zdHJpbmcoZS5zdGlja2VyVXVpZCksITA9PT1lLmlzQ2xpZW50bW9qaSYmbi51aW50MzIoMTEyKS5ib29sKGUuaXNDbGllbnRtb2ppKSxcIjBcIiE9PWUuY2xpZW50bW9qaVdvcmRDb3VudCYmbi51aW50MzIoMTIwKS51aW50NjQoZS5jbGllbnRtb2ppV29yZENvdW50KSxcIjBcIiE9PWUuY2xpZW50bW9qaUNoYXJDb3VudCYmbi51aW50MzIoMTI4KS51aW50NjQoZS5jbGllbnRtb2ppQ2hhckNvdW50KSxcIlwiIT09ZS5jb250ZW50UHJvdmlkZXJDYWxsaW5nUGFja2FnZSYmbi51aW50MzIoMTM4KS5zdHJpbmcoZS5jb250ZW50UHJvdmlkZXJDYWxsaW5nUGFja2FnZSksXCIwXCIhPT1lLm1lbW9yeUtiJiZuLnVpbnQzMigxNDQpLnVpbnQ2NChlLm1lbW9yeUtiKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJJZDpcIlwiLHNoYXJlQ2F0ZWdvcnk6MCxzdGlja2VyU2VhcmNoQ2F0ZWdvcnk6MCxzdGlja2VyU3VwZXJ0YWc6MCx0ZW1wbGF0ZUlkOlwiXCIsc3RpY2tlclNoYXJlQWdlbnQ6XCJcIixzdGlja2VyU2hhcmVHZXN0dXJlOjAsZnJpZW5kSGFzaDpcIlwiLGlzU2hhcmVkT25GaXJzdERheTohMSxzdGlja2VyU2VhcmNoVGVybTpcIlwiLHBvc2l0aW9uOlwiMFwiLHN0aWNrZXJVdWlkOlwiXCIsaXNDbGllbnRtb2ppOiExLGNsaWVudG1vamlXb3JkQ291bnQ6XCIwXCIsY2xpZW50bW9qaUNoYXJDb3VudDpcIjBcIixjb250ZW50UHJvdmlkZXJDYWxsaW5nUGFja2FnZTpcIlwiLG1lbW9yeUtiOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zdGlja2VySWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5zaGFyZUNhdGVnb3J5PXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNTphLnN0aWNrZXJTdXBlcnRhZz1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEudGVtcGxhdGVJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNzphLnN0aWNrZXJTaGFyZUFnZW50PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA4OmEuc3RpY2tlclNoYXJlR2VzdHVyZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA5OmEuZnJpZW5kSGFzaD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTA6YS5pc1NoYXJlZE9uRmlyc3REYXk9ci5ib29sKCk7YnJlYWs7Y2FzZSAxMTphLnN0aWNrZXJTZWFyY2hUZXJtPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMjphLnBvc2l0aW9uPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAxMzphLnN0aWNrZXJVdWlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxNDphLmlzQ2xpZW50bW9qaT1yLmJvb2woKTticmVhaztjYXNlIDE1OmEuY2xpZW50bW9qaVdvcmRDb3VudD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTY6YS5jbGllbnRtb2ppQ2hhckNvdW50PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAxNzphLmNvbnRlbnRQcm92aWRlckNhbGxpbmdQYWNrYWdlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxODphLm1lbW9yeUtiPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzdGlja2VySWQ6XCJcIixzaGFyZUNhdGVnb3J5OjAsc3RpY2tlclNlYXJjaENhdGVnb3J5OjAsc3RpY2tlclN1cGVydGFnOjAsdGVtcGxhdGVJZDpcIlwiLHN0aWNrZXJTaGFyZUFnZW50OlwiXCIsc3RpY2tlclNoYXJlR2VzdHVyZTowLGZyaWVuZEhhc2g6XCJcIixpc1NoYXJlZE9uRmlyc3REYXk6ITEsc3RpY2tlclNlYXJjaFRlcm06XCJcIixwb3NpdGlvbjpcIjBcIixzdGlja2VyVXVpZDpcIlwiLGlzQ2xpZW50bW9qaTohMSxjbGllbnRtb2ppV29yZENvdW50OlwiMFwiLGNsaWVudG1vamlDaGFyQ291bnQ6XCIwXCIsY29udGVudFByb3ZpZGVyQ2FsbGluZ1BhY2thZ2U6XCJcIixtZW1vcnlLYjpcIjBcIn07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uc3RpY2tlcklkPWUuc3RpY2tlcklkPz9cIlwiLG4uc2hhcmVDYXRlZ29yeT1lLnNoYXJlQ2F0ZWdvcnk/PzAsbi5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk9ZS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk/PzAsbi5zdGlja2VyU3VwZXJ0YWc9ZS5zdGlja2VyU3VwZXJ0YWc/PzAsbi50ZW1wbGF0ZUlkPWUudGVtcGxhdGVJZD8/XCJcIixuLnN0aWNrZXJTaGFyZUFnZW50PWUuc3RpY2tlclNoYXJlQWdlbnQ/P1wiXCIsbi5zdGlja2VyU2hhcmVHZXN0dXJlPWUuc3RpY2tlclNoYXJlR2VzdHVyZT8/MCxuLmZyaWVuZEhhc2g9ZS5mcmllbmRIYXNoPz9cIlwiLG4uaXNTaGFyZWRPbkZpcnN0RGF5PWUuaXNTaGFyZWRPbkZpcnN0RGF5Pz8hMSxuLnN0aWNrZXJTZWFyY2hUZXJtPWUuc3RpY2tlclNlYXJjaFRlcm0/P1wiXCIsbi5wb3NpdGlvbj1lLnBvc2l0aW9uPz9cIjBcIixuLnN0aWNrZXJVdWlkPWUuc3RpY2tlclV1aWQ/P1wiXCIsbi5pc0NsaWVudG1vamk9ZS5pc0NsaWVudG1vamk/PyExLG4uY2xpZW50bW9qaVdvcmRDb3VudD1lLmNsaWVudG1vamlXb3JkQ291bnQ/P1wiMFwiLG4uY2xpZW50bW9qaUNoYXJDb3VudD1lLmNsaWVudG1vamlDaGFyQ291bnQ/P1wiMFwiLG4uY29udGVudFByb3ZpZGVyQ2FsbGluZ1BhY2thZ2U9ZS5jb250ZW50UHJvdmlkZXJDYWxsaW5nUGFja2FnZT8/XCJcIixuLm1lbW9yeUtiPWUubWVtb3J5S2I/P1wiMFwiLG59fSx0LkJpdG1vamlBcHBTaGFyZUxhdGVuY3k9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2UmJnQuQml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBUaW1lckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5zaGFyZUF0dHJpYnV0aW9uJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuc2hhcmVBdHRyaWJ1dGlvbiksMCE9PWUuc3RpY2tlckZvcm1hdCYmbi51aW50MzIoMjQpLmludDMyKGUuc3RpY2tlckZvcm1hdCksMCE9PWUuc3RpY2tlclNjYWxlJiZuLnVpbnQzMigzMikuaW50MzIoZS5zdGlja2VyU2NhbGUpLDAhPT1lLmNhY2hlU3RhdGUmJm4udWludDMyKDQwKS5pbnQzMihlLmNhY2hlU3RhdGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlOnZvaWQgMCxzaGFyZUF0dHJpYnV0aW9uOlwiXCIsc3RpY2tlckZvcm1hdDowLHN0aWNrZXJTY2FsZTowLGNhY2hlU3RhdGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlPXQuQml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnNoYXJlQXR0cmlidXRpb249ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5zdGlja2VyRm9ybWF0PXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5zdGlja2VyU2NhbGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNTphLmNhY2hlU3RhdGU9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlOnZvaWQgMCxzaGFyZUF0dHJpYnV0aW9uOlwiXCIsc3RpY2tlckZvcm1hdDowLHN0aWNrZXJTY2FsZTowLGNhY2hlU3RhdGU6MH07cmV0dXJuIG4uYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcFRpbWVyRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2U/dC5CaXRtb2ppQXBwVGltZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwVGltZXJFdmVudEJhc2UpOnZvaWQgMCxuLnNoYXJlQXR0cmlidXRpb249ZS5zaGFyZUF0dHJpYnV0aW9uPz9cIlwiLG4uc3RpY2tlckZvcm1hdD1lLnN0aWNrZXJGb3JtYXQ/PzAsbi5zdGlja2VyU2NhbGU9ZS5zdGlja2VyU2NhbGU/PzAsbi5jYWNoZVN0YXRlPWUuY2FjaGVTdGF0ZT8/MCxufX0sdC5CaXRtb2ppQXBwU2hvcENvbmZpcm1DdXN0b21pemF0aW9ucz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnNob3BTZXNzaW9uSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5zaG9wU2Vzc2lvbklkKSxcIlwiIT09ZS5wcm9kdWN0SWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5wcm9kdWN0SWQpLFwiXCIhPT1lLnN0aWNrZXJJZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLnN0aWNrZXJJZCksXCJcIiE9PWUucHJpbWFyeUZyaWVuZEhhc2gmJm4udWludDMyKDQyKS5zdHJpbmcoZS5wcmltYXJ5RnJpZW5kSGFzaCksXCJcIiE9PWUuc2Vjb25kYXJ5RnJpZW5kSGFzaCYmbi51aW50MzIoNTApLnN0cmluZyhlLnNlY29uZGFyeUZyaWVuZEhhc2gpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc2hvcFNlc3Npb25JZDpcIlwiLHByb2R1Y3RJZDpcIlwiLHN0aWNrZXJJZDpcIlwiLHByaW1hcnlGcmllbmRIYXNoOlwiXCIsc2Vjb25kYXJ5RnJpZW5kSGFzaDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zaG9wU2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEucHJvZHVjdElkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuc3RpY2tlcklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEucHJpbWFyeUZyaWVuZEhhc2g9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS5zZWNvbmRhcnlGcmllbmRIYXNoPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzaG9wU2Vzc2lvbklkOlwiXCIscHJvZHVjdElkOlwiXCIsc3RpY2tlcklkOlwiXCIscHJpbWFyeUZyaWVuZEhhc2g6XCJcIixzZWNvbmRhcnlGcmllbmRIYXNoOlwiXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLnNob3BTZXNzaW9uSWQ9ZS5zaG9wU2Vzc2lvbklkPz9cIlwiLG4ucHJvZHVjdElkPWUucHJvZHVjdElkPz9cIlwiLG4uc3RpY2tlcklkPWUuc3RpY2tlcklkPz9cIlwiLG4ucHJpbWFyeUZyaWVuZEhhc2g9ZS5wcmltYXJ5RnJpZW5kSGFzaD8/XCJcIixuLnNlY29uZGFyeUZyaWVuZEhhc2g9ZS5zZWNvbmRhcnlGcmllbmRIYXNoPz9cIlwiLG59fSx0LkJpdG1vamlBcHBTaG9wT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnNob3BTZXNzaW9uSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5zaG9wU2Vzc2lvbklkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHNob3BTZXNzaW9uSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc2hvcFNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc2hvcFNlc3Npb25JZDpcIlwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5zaG9wU2Vzc2lvbklkPWUuc2hvcFNlc3Npb25JZD8/XCJcIixufX0sdC5CaXRtb2ppQXBwU2hvcFByb2R1Y3RTZWxlY3Q9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5zaG9wU2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuc2hvcFNlc3Npb25JZCksXCJcIiE9PWUucHJvZHVjdElkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUucHJvZHVjdElkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHNob3BTZXNzaW9uSWQ6XCJcIixwcm9kdWN0SWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc2hvcFNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnByb2R1Y3RJZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc2hvcFNlc3Npb25JZDpcIlwiLHByb2R1Y3RJZDpcIlwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5zaG9wU2Vzc2lvbklkPWUuc2hvcFNlc3Npb25JZD8/XCJcIixuLnByb2R1Y3RJZD1lLnByb2R1Y3RJZD8/XCJcIixufX0sdC5CaXRtb2ppQXBwU25hcGNoYXRMaW5rYWdlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuc291cmNlJiZuLnVpbnQzMigxNikuaW50MzIoZS5zb3VyY2UpLDAhPT1lLmFjdGlvbiYmbi51aW50MzIoMjQpLmludDMyKGUuYWN0aW9uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHNvdXJjZTowLGFjdGlvbjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zb3VyY2U9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmFjdGlvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzb3VyY2U6MCxhY3Rpb246MH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uc291cmNlPWUuc291cmNlPz8wLG4uYWN0aW9uPWUuYWN0aW9uPz8wLG59fSx0LkJpdG1vamlBcHBTdGlja2VyQXV0b3N1Z2dlc3Q9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUuc3RpY2tlckF1dG9zdWdnZXN0UmVzdWx0Q291bnQmJm4udWludDMyKDE2KS51aW50NjQoZS5zdGlja2VyQXV0b3N1Z2dlc3RSZXN1bHRDb3VudCksXCIwXCIhPT1lLmF1dG9zdWdnZXN0VXBkYXRlZFRpbWVzJiZuLnVpbnQzMigyNCkudWludDY0KGUuYXV0b3N1Z2dlc3RVcGRhdGVkVGltZXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc3RpY2tlckF1dG9zdWdnZXN0UmVzdWx0Q291bnQ6XCIwXCIsYXV0b3N1Z2dlc3RVcGRhdGVkVGltZXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnN0aWNrZXJBdXRvc3VnZ2VzdFJlc3VsdENvdW50PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmEuYXV0b3N1Z2dlc3RVcGRhdGVkVGltZXM9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJBdXRvc3VnZ2VzdFJlc3VsdENvdW50OlwiMFwiLGF1dG9zdWdnZXN0VXBkYXRlZFRpbWVzOlwiMFwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5zdGlja2VyQXV0b3N1Z2dlc3RSZXN1bHRDb3VudD1lLnN0aWNrZXJBdXRvc3VnZ2VzdFJlc3VsdENvdW50Pz9cIjBcIixuLmF1dG9zdWdnZXN0VXBkYXRlZFRpbWVzPWUuYXV0b3N1Z2dlc3RVcGRhdGVkVGltZXM/P1wiMFwiLG59fSx0LkJpdG1vamlBcHBTdGlja2VySW1wcmVzc2lvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnN0aWNrZXJJZHMmJm4udWludDMyKDE4KS5zdHJpbmcoZS5zdGlja2VySWRzKSwwIT09ZS5pbXByZXNzaW9uQ2F0ZWdvcnkmJm4udWludDMyKDI0KS5pbnQzMihlLmltcHJlc3Npb25DYXRlZ29yeSksXCIwXCIhPT1lLnJvd1NpemUmJm4udWludDMyKDMyKS51aW50NjQoZS5yb3dTaXplKSxcIlwiIT09ZS5wcm9ncmFtbWVkT3JkZXJJbmRpY2VzJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUucHJvZ3JhbW1lZE9yZGVySW5kaWNlcyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzdGlja2VySWRzOlwiXCIsaW1wcmVzc2lvbkNhdGVnb3J5OjAscm93U2l6ZTpcIjBcIixwcm9ncmFtbWVkT3JkZXJJbmRpY2VzOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnN0aWNrZXJJZHM9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5pbXByZXNzaW9uQ2F0ZWdvcnk9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLnJvd1NpemU9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6YS5wcm9ncmFtbWVkT3JkZXJJbmRpY2VzPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzdGlja2VySWRzOlwiXCIsaW1wcmVzc2lvbkNhdGVnb3J5OjAscm93U2l6ZTpcIjBcIixwcm9ncmFtbWVkT3JkZXJJbmRpY2VzOlwiXCJ9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLnN0aWNrZXJJZHM9ZS5zdGlja2VySWRzPz9cIlwiLG4uaW1wcmVzc2lvbkNhdGVnb3J5PWUuaW1wcmVzc2lvbkNhdGVnb3J5Pz8wLG4ucm93U2l6ZT1lLnJvd1NpemU/P1wiMFwiLG4ucHJvZ3JhbW1lZE9yZGVySW5kaWNlcz1lLnByb2dyYW1tZWRPcmRlckluZGljZXM/P1wiXCIsbn19LHQuQml0bW9qaUFwcFN0aWNrZXJQaWNrZXJWaWV3PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksITA9PT1lLmlzRmlyc3RUaW1lU2VlbiYmbi51aW50MzIoMTYpLmJvb2woZS5pc0ZpcnN0VGltZVNlZW4pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsaXNGaXJzdFRpbWVTZWVuOiExfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5pc0ZpcnN0VGltZVNlZW49ci5ib29sKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxpc0ZpcnN0VGltZVNlZW46ITF9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLmlzRmlyc3RUaW1lU2Vlbj1lLmlzRmlyc3RUaW1lU2Vlbj8/ITEsbn19LHQuQml0bW9qaUFwcFN0aWNrZXJQaWNrZXJWaWV3TW9yZVRhcD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnN0aWNrZXJTZWFyY2hDYXRlZ29yeSYmbi51aW50MzIoMTYpLmludDMyKGUuc3RpY2tlclNlYXJjaENhdGVnb3J5KSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJTZWFyY2hDYXRlZ29yeTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc3RpY2tlclNlYXJjaENhdGVnb3J5OjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLnN0aWNrZXJTZWFyY2hDYXRlZ29yeT1lLnN0aWNrZXJTZWFyY2hDYXRlZ29yeT8/MCxufX0sdC5CaXRtb2ppQXBwU3RpY2tlclByZXZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5zdGlja2VySWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5zdGlja2VySWQpLFwiXCIhPT1lLnRlbXBsYXRlSWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS50ZW1wbGF0ZUlkKSwwIT09ZS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnkmJm4udWludDMyKDMyKS5pbnQzMihlLnN0aWNrZXJTZWFyY2hDYXRlZ29yeSksMCE9PWUuc3RpY2tlclN1cGVydGFnJiZuLnVpbnQzMig0MCkuaW50MzIoZS5zdGlja2VyU3VwZXJ0YWcpLFwiXCIhPT1lLnN0aWNrZXJTZWFyY2hUZXJtJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUuc3RpY2tlclNlYXJjaFRlcm0pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc3RpY2tlcklkOlwiXCIsdGVtcGxhdGVJZDpcIlwiLHN0aWNrZXJTZWFyY2hDYXRlZ29yeTowLHN0aWNrZXJTdXBlcnRhZzowLHN0aWNrZXJTZWFyY2hUZXJtOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnN0aWNrZXJJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnRlbXBsYXRlSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNTphLnN0aWNrZXJTdXBlcnRhZz1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuc3RpY2tlclNlYXJjaFRlcm09ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJJZDpcIlwiLHRlbXBsYXRlSWQ6XCJcIixzdGlja2VyU2VhcmNoQ2F0ZWdvcnk6MCxzdGlja2VyU3VwZXJ0YWc6MCxzdGlja2VyU2VhcmNoVGVybTpcIlwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5zdGlja2VySWQ9ZS5zdGlja2VySWQ/P1wiXCIsbi50ZW1wbGF0ZUlkPWUudGVtcGxhdGVJZD8/XCJcIixuLnN0aWNrZXJTZWFyY2hDYXRlZ29yeT1lLnN0aWNrZXJTZWFyY2hDYXRlZ29yeT8/MCxuLnN0aWNrZXJTdXBlcnRhZz1lLnN0aWNrZXJTdXBlcnRhZz8/MCxuLnN0aWNrZXJTZWFyY2hUZXJtPWUuc3RpY2tlclNlYXJjaFRlcm0/P1wiXCIsbn19LHQuQml0bW9qaUFwcFN0aWNrZXJTZWFyY2g9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnkmJm4udWludDMyKDE2KS5pbnQzMihlLnN0aWNrZXJTZWFyY2hDYXRlZ29yeSksXCJcIiE9PWUuc3RpY2tlclNlYXJjaFRlcm0mJm4udWludDMyKDI2KS5zdHJpbmcoZS5zdGlja2VyU2VhcmNoVGVybSksXCIwXCIhPT1lLnN0aWNrZXJTZWFyY2hSZXN1bHRDb3VudCYmbi51aW50MzIoMzIpLnVpbnQ2NChlLnN0aWNrZXJTZWFyY2hSZXN1bHRDb3VudCksXCIwXCIhPT1lLm1lbW9yeUtiJiZuLnVpbnQzMig0MCkudWludDY0KGUubWVtb3J5S2IpLDAhPT1lLm5vUmVzdWx0UmVhc29uJiZuLnVpbnQzMig0OCkuaW50MzIoZS5ub1Jlc3VsdFJlYXNvbiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzdGlja2VyU2VhcmNoQ2F0ZWdvcnk6MCxzdGlja2VyU2VhcmNoVGVybTpcIlwiLHN0aWNrZXJTZWFyY2hSZXN1bHRDb3VudDpcIjBcIixtZW1vcnlLYjpcIjBcIixub1Jlc3VsdFJlYXNvbjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLnN0aWNrZXJTZWFyY2hUZXJtPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuc3RpY2tlclNlYXJjaFJlc3VsdENvdW50PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmEubWVtb3J5S2I9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6YS5ub1Jlc3VsdFJlYXNvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzdGlja2VyU2VhcmNoQ2F0ZWdvcnk6MCxzdGlja2VyU2VhcmNoVGVybTpcIlwiLHN0aWNrZXJTZWFyY2hSZXN1bHRDb3VudDpcIjBcIixtZW1vcnlLYjpcIjBcIixub1Jlc3VsdFJlYXNvbjowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk9ZS5zdGlja2VyU2VhcmNoQ2F0ZWdvcnk/PzAsbi5zdGlja2VyU2VhcmNoVGVybT1lLnN0aWNrZXJTZWFyY2hUZXJtPz9cIlwiLG4uc3RpY2tlclNlYXJjaFJlc3VsdENvdW50PWUuc3RpY2tlclNlYXJjaFJlc3VsdENvdW50Pz9cIjBcIixuLm1lbW9yeUtiPWUubWVtb3J5S2I/P1wiMFwiLG4ubm9SZXN1bHRSZWFzb249ZS5ub1Jlc3VsdFJlYXNvbj8/MCxufX0sdC5CaXRtb2ppQXBwU3RpY2tlclNlYXJjaFJlYWR5PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLnNlYXJjaEluaXRpYWxpemF0aW9uVGltZU1zJiZuLnVpbnQzMigxNikudWludDY0KGUuc2VhcmNoSW5pdGlhbGl6YXRpb25UaW1lTXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc2VhcmNoSW5pdGlhbGl6YXRpb25UaW1lTXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnNlYXJjaEluaXRpYWxpemF0aW9uVGltZU1zPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxzZWFyY2hJbml0aWFsaXphdGlvblRpbWVNczpcIjBcIn07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uc2VhcmNoSW5pdGlhbGl6YXRpb25UaW1lTXM9ZS5zZWFyY2hJbml0aWFsaXphdGlvblRpbWVNcz8/XCIwXCIsbn19LHQuQml0bW9qaUFwcFN0aWNrZXJTZWFyY2hTZXF1ZW5jZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmxhc3RTaGFyZWRTdGlja2VyU2VhcmNoJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubGFzdFNoYXJlZFN0aWNrZXJTZWFyY2gpLFwiXCIhPT1lLnN0aWNrZXJTZWFyY2hTZXF1ZW5jZSYmbi51aW50MzIoMjYpLnN0cmluZyhlLnN0aWNrZXJTZWFyY2hTZXF1ZW5jZSksXCJcIiE9PWUuZXhpdFN0YXRlJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUuZXhpdFN0YXRlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLGxhc3RTaGFyZWRTdGlja2VyU2VhcmNoOlwiXCIsc3RpY2tlclNlYXJjaFNlcXVlbmNlOlwiXCIsZXhpdFN0YXRlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmxhc3RTaGFyZWRTdGlja2VyU2VhcmNoPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuc3RpY2tlclNlYXJjaFNlcXVlbmNlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuZXhpdFN0YXRlPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxsYXN0U2hhcmVkU3RpY2tlclNlYXJjaDpcIlwiLHN0aWNrZXJTZWFyY2hTZXF1ZW5jZTpcIlwiLGV4aXRTdGF0ZTpcIlwifTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5sYXN0U2hhcmVkU3RpY2tlclNlYXJjaD1lLmxhc3RTaGFyZWRTdGlja2VyU2VhcmNoPz9cIlwiLG4uc3RpY2tlclNlYXJjaFNlcXVlbmNlPWUuc3RpY2tlclNlYXJjaFNlcXVlbmNlPz9cIlwiLG4uZXhpdFN0YXRlPWUuZXhpdFN0YXRlPz9cIlwiLG59fSx0LkJpdG1vamlBcHBTdGlja2VyVGFiT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnN0aWNrZXJTdXBlcnRhZyYmbi51aW50MzIoMTYpLmludDMyKGUuc3RpY2tlclN1cGVydGFnKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJTdXBlcnRhZzowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zdGlja2VyU3VwZXJ0YWc9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsc3RpY2tlclN1cGVydGFnOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLnN0aWNrZXJTdXBlcnRhZz1lLnN0aWNrZXJTdXBlcnRhZz8/MCxufX0sdC5CaXRtb2ppQXBwVGltZXJFdmVudEJhc2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUudGltZXJEdXJhdGlvbk1zJiZuLnVpbnQzMigxNikudWludDY0KGUudGltZXJEdXJhdGlvbk1zKSwwIT09ZS5uZXR3b3JrVHlwZSYmbi51aW50MzIoMjQpLmludDMyKGUubmV0d29ya1R5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsdGltZXJEdXJhdGlvbk1zOlwiMFwiLG5ldHdvcmtUeXBlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnRpbWVyRHVyYXRpb25Ncz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLm5ldHdvcmtUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLHRpbWVyRHVyYXRpb25NczpcIjBcIixuZXR3b3JrVHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi50aW1lckR1cmF0aW9uTXM9ZS50aW1lckR1cmF0aW9uTXM/P1wiMFwiLG4ubmV0d29ya1R5cGU9ZS5uZXR3b3JrVHlwZT8/MCxufX0sdC5CaXRtb2ppQXBwV2VsY29tZVBhZ2VWaWV3PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuYml0bW9qaUFwcFJlZmVycmVyJiZuLnVpbnQzMigyNCkuaW50MzIoZS5iaXRtb2ppQXBwUmVmZXJyZXIpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsYml0bW9qaUFwcFJlZmVycmVyOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMzphLmJpdG1vamlBcHBSZWZlcnJlcj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxiaXRtb2ppQXBwUmVmZXJyZXI6MH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG4uYml0bW9qaUFwcFJlZmVycmVyPWUuYml0bW9qaUFwcFJlZmVycmVyPz8wLG59fSx0LkJpdG1vamlLaXRDcmVhdGVBdmF0YXJUYXA9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlJiZ0LkJpdG1vamlLaXRFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUtpdEV2ZW50QmFzZT10LkJpdG1vamlLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZT90LkJpdG1vamlLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppS2l0RXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUtpdEV2ZW50QmFzZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmdC5LaXRFdmVudEJhc2UuZW5jb2RlKGUua2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnN0aWNrZXJQaWNrZXJTZXNzaW9uSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5zdGlja2VyUGlja2VyU2Vzc2lvbklkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2tpdEV2ZW50QmFzZTp2b2lkIDAsc3RpY2tlclBpY2tlclNlc3Npb25JZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5raXRFdmVudEJhc2U9dC5LaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc3RpY2tlclBpY2tlclNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17a2l0RXZlbnRCYXNlOnZvaWQgMCxzdGlja2VyUGlja2VyU2Vzc2lvbklkOlwiXCJ9O3JldHVybiBuLmtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmbnVsbCE9PWUua2l0RXZlbnRCYXNlP3QuS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUua2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5zdGlja2VyUGlja2VyU2Vzc2lvbklkPWUuc3RpY2tlclBpY2tlclNlc3Npb25JZD8/XCJcIixufX0sdC5CaXRtb2ppS2l0UGVybWlzc2lvblVwZGF0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlLaXRFdmVudEJhc2UmJnQuQml0bW9qaUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnN0YXR1cyYmbi51aW50MzIoMTYpLmludDMyKGUuc3RhdHVzKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwLHN0YXR1czowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppS2l0RXZlbnRCYXNlPXQuQml0bW9qaUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zdGF0dXM9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUtpdEV2ZW50QmFzZTp2b2lkIDAsc3RhdHVzOjB9O3JldHVybiBuLmJpdG1vamlLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlP3QuQml0bW9qaUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnN0YXR1cz1lLnN0YXR1cz8/MCxufX0sdC5CaXRtb2ppS2l0UHJldmlld0ljb25DaGFuZ2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlJiZ0LkJpdG1vamlLaXRFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5wcmV2aWV3U3RpY2tlcklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUucHJldmlld1N0aWNrZXJJZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppS2l0RXZlbnRCYXNlOnZvaWQgMCxwcmV2aWV3U3RpY2tlcklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlLaXRFdmVudEJhc2U9dC5CaXRtb2ppS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnByZXZpZXdTdGlja2VySWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwLHByZXZpZXdTdGlja2VySWQ6XCJcIn07cmV0dXJuIG4uYml0bW9qaUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlLaXRFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlLaXRFdmVudEJhc2U/dC5CaXRtb2ppS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUtpdEV2ZW50QmFzZSk6dm9pZCAwLG4ucHJldmlld1N0aWNrZXJJZD1lLnByZXZpZXdTdGlja2VySWQ/P1wiXCIsbn19LHQuQml0bW9qaUtpdFNlYXJjaD17ZW5jb2RlKGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKXt2b2lkIDAhPT1lLmJpdG1vamlLaXRFdmVudEJhc2UmJnQuQml0bW9qaUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpO2Zvcihjb25zdCByIG9mIGUuc2VhcmNoVGVybXMpdC5CaXRtb2ppS2l0U2VhcmNoVGVybS5lbmNvZGUocixuLnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKTtyZXR1cm4gbn0sZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppS2l0RXZlbnRCYXNlOnZvaWQgMCxzZWFyY2hUZXJtczpbXX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUtpdEV2ZW50QmFzZT10LkJpdG1vamlLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc2VhcmNoVGVybXMucHVzaCh0LkJpdG1vamlLaXRTZWFyY2hUZXJtLmRlY29kZShyLHIudWludDMyKCkpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwLHNlYXJjaFRlcm1zOltdfTtyZXR1cm4gbi5iaXRtb2ppS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZT90LkJpdG1vamlLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5zZWFyY2hUZXJtcz1lLnNlYXJjaFRlcm1zPy5tYXAoKGU9PnQuQml0bW9qaUtpdFNlYXJjaFRlcm0uZnJvbVBhcnRpYWwoZSkpKXx8W10sbn19LHQuQml0bW9qaUtpdFNoYXJlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZSYmdC5CaXRtb2ppS2l0RXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuc3RpY2tlcklkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuc3RpY2tlcklkKSwwIT09ZS5zaGFyZUNhdGVnb3J5JiZuLnVpbnQzMigzMikuaW50MzIoZS5zaGFyZUNhdGVnb3J5KSwwIT09ZS5zZWFyY2hDYXRlZ29yeSYmbi51aW50MzIoNDApLmludDMyKGUuc2VhcmNoQ2F0ZWdvcnkpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUtpdEV2ZW50QmFzZTp2b2lkIDAsc3RpY2tlcklkOlwiXCIsc2hhcmVDYXRlZ29yeTowLHNlYXJjaENhdGVnb3J5OjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlLaXRFdmVudEJhc2U9dC5CaXRtb2ppS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMzphLnN0aWNrZXJJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLnNoYXJlQ2F0ZWdvcnk9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNTphLnNlYXJjaENhdGVnb3J5PXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJJZDpcIlwiLHNoYXJlQ2F0ZWdvcnk6MCxzZWFyY2hDYXRlZ29yeTowfTtyZXR1cm4gbi5iaXRtb2ppS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZT90LkJpdG1vamlLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5zdGlja2VySWQ9ZS5zdGlja2VySWQ/P1wiXCIsbi5zaGFyZUNhdGVnb3J5PWUuc2hhcmVDYXRlZ29yeT8/MCxuLnNlYXJjaENhdGVnb3J5PWUuc2VhcmNoQ2F0ZWdvcnk/PzAsbn19LHQuQml0bW9qaUtpdFNuYXBjaGF0TGlua1N1Y2Nlc3M9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlJiZ0LkJpdG1vamlLaXRFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUtpdEV2ZW50QmFzZT10LkJpdG1vamlLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZT90LkJpdG1vamlLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppS2l0RXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQml0bW9qaUtpdFNuYXBjaGF0TGlua1RhcD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlLaXRFdmVudEJhc2UmJnQuQml0bW9qaUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUtpdEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppS2l0RXZlbnRCYXNlPXQuQml0bW9qaUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUtpdEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlP3QuQml0bW9qaUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlLaXRFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5CaXRtb2ppS2l0U3RpY2tlclBpY2tlckNsb3NlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZSYmdC5CaXRtb2ppS2l0RXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLnN0aWNrZXJQaWNrZXJTZXNzaW9uRHVyYXRpb25NaWxsaXMmJm4udWludDMyKDE2KS51aW50NjQoZS5zdGlja2VyUGlja2VyU2Vzc2lvbkR1cmF0aW9uTWlsbGlzKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJQaWNrZXJTZXNzaW9uRHVyYXRpb25NaWxsaXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmJpdG1vamlLaXRFdmVudEJhc2U9dC5CaXRtb2ppS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnN0aWNrZXJQaWNrZXJTZXNzaW9uRHVyYXRpb25NaWxsaXM9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJQaWNrZXJTZXNzaW9uRHVyYXRpb25NaWxsaXM6XCIwXCJ9O3JldHVybiBuLmJpdG1vamlLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlP3QuQml0bW9qaUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnN0aWNrZXJQaWNrZXJTZXNzaW9uRHVyYXRpb25NaWxsaXM9ZS5zdGlja2VyUGlja2VyU2Vzc2lvbkR1cmF0aW9uTWlsbGlzPz9cIjBcIixufX0sdC5CaXRtb2ppS2l0U3RpY2tlclBpY2tlck1vdW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUtpdEV2ZW50QmFzZSYmdC5CaXRtb2ppS2l0RXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppS2l0RXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlLaXRFdmVudEJhc2U9dC5CaXRtb2ppS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppS2l0RXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlLaXRFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlLaXRFdmVudEJhc2U/dC5CaXRtb2ppS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUtpdEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkJpdG1vamlLaXRTdGlja2VyUGlja2VyT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlLaXRFdmVudEJhc2UmJnQuQml0bW9qaUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnN0aWNrZXJQaWNrZXJWaWV3JiZuLnVpbnQzMigxNikuaW50MzIoZS5zdGlja2VyUGlja2VyVmlldyksMCE9PWUuc2VhcmNoQmFyQ29uZmlndXJhdGlvbiYmbi51aW50MzIoMjQpLmludDMyKGUuc2VhcmNoQmFyQ29uZmlndXJhdGlvbiksMCE9PWUudGFnU2VsZWN0b3JDb25maWd1cmF0aW9uJiZuLnVpbnQzMigzMikuaW50MzIoZS50YWdTZWxlY3RvckNvbmZpZ3VyYXRpb24pLFwiXCIhPT1lLnByZXZpZXdJY29uU3RpY2tlcklkJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUucHJldmlld0ljb25TdGlja2VySWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUtpdEV2ZW50QmFzZTp2b2lkIDAsc3RpY2tlclBpY2tlclZpZXc6MCxzZWFyY2hCYXJDb25maWd1cmF0aW9uOjAsdGFnU2VsZWN0b3JDb25maWd1cmF0aW9uOjAscHJldmlld0ljb25TdGlja2VySWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUtpdEV2ZW50QmFzZT10LkJpdG1vamlLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc3RpY2tlclBpY2tlclZpZXc9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLnNlYXJjaEJhckNvbmZpZ3VyYXRpb249ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLnRhZ1NlbGVjdG9yQ29uZmlndXJhdGlvbj1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEucHJldmlld0ljb25TdGlja2VySWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlLaXRFdmVudEJhc2U6dm9pZCAwLHN0aWNrZXJQaWNrZXJWaWV3OjAsc2VhcmNoQmFyQ29uZmlndXJhdGlvbjowLHRhZ1NlbGVjdG9yQ29uZmlndXJhdGlvbjowLHByZXZpZXdJY29uU3RpY2tlcklkOlwiXCJ9O3JldHVybiBuLmJpdG1vamlLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppS2l0RXZlbnRCYXNlP3QuQml0bW9qaUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnN0aWNrZXJQaWNrZXJWaWV3PWUuc3RpY2tlclBpY2tlclZpZXc/PzAsbi5zZWFyY2hCYXJDb25maWd1cmF0aW9uPWUuc2VhcmNoQmFyQ29uZmlndXJhdGlvbj8/MCxuLnRhZ1NlbGVjdG9yQ29uZmlndXJhdGlvbj1lLnRhZ1NlbGVjdG9yQ29uZmlndXJhdGlvbj8/MCxuLnByZXZpZXdJY29uU3RpY2tlcklkPWUucHJldmlld0ljb25TdGlja2VySWQ/P1wiXCIsbn19LHQuQ2FtZXJhS2l0QWRqdXN0bWVudEFwcGxpZWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJnQuQ2FtZXJhS2l0RXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5uYW1lJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubmFtZSksXCJcIiE9PWUubGVuc0lkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubGVuc0lkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsbmFtZTpcIlwiLGxlbnNJZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jYW1lcmFLaXRFdmVudEJhc2U9dC5DYW1lcmFLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubmFtZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmxlbnNJZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxuYW1lOlwiXCIsbGVuc0lkOlwiXCJ9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5uYW1lPWUubmFtZT8/XCJcIixuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixufX0sdC5DYW1lcmFLaXRBZGp1c3RtZW50Q2hhbmdlZD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm5hbWUmJm4udWludDMyKDE4KS5zdHJpbmcoZS5uYW1lKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLnByb3BlcnR5S2V5JiZuLnVpbnQzMigzNCkuc3RyaW5nKGUucHJvcGVydHlLZXkpLFwiXCIhPT1lLnByb3BlcnR5VmFsdWUmJm4udWludDMyKDQyKS5zdHJpbmcoZS5wcm9wZXJ0eVZhbHVlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsbmFtZTpcIlwiLGxlbnNJZDpcIlwiLHByb3BlcnR5S2V5OlwiXCIscHJvcGVydHlWYWx1ZTpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jYW1lcmFLaXRFdmVudEJhc2U9dC5DYW1lcmFLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubmFtZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmxlbnNJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLnByb3BlcnR5S2V5PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEucHJvcGVydHlWYWx1ZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxuYW1lOlwiXCIsbGVuc0lkOlwiXCIscHJvcGVydHlLZXk6XCJcIixwcm9wZXJ0eVZhbHVlOlwiXCJ9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5uYW1lPWUubmFtZT8/XCJcIixuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixuLnByb3BlcnR5S2V5PWUucHJvcGVydHlLZXk/P1wiXCIsbi5wcm9wZXJ0eVZhbHVlPWUucHJvcGVydHlWYWx1ZT8/XCJcIixufX0sdC5DYW1lcmFLaXRBZGp1c3RtZW50UmVtb3ZlZD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm5hbWUmJm4udWludDMyKDE4KS5zdHJpbmcoZS5uYW1lKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5sZW5zSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxuYW1lOlwiXCIsbGVuc0lkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5uYW1lPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEubGVuc0lkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLG5hbWU6XCJcIixsZW5zSWQ6XCJcIn07cmV0dXJuIG4uY2FtZXJhS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRFdmVudEJhc2U/dC5DYW1lcmFLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLm5hbWU9ZS5uYW1lPz9cIlwiLG4ubGVuc0lkPWUubGVuc0lkPz9cIlwiLG59fSx0LkNhbWVyYUtpdEFwaUFjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmFwaVRva2VuU3ViamVjdCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmFwaVRva2VuU3ViamVjdCksXCJcIiE9PWUuYXBpVG9rZW5TdWJqZWN0RW5jJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuYXBpVG9rZW5TdWJqZWN0RW5jKSxcIlwiIT09ZS51c2VyQWdlbnRFbmMmJm4udWludDMyKDM0KS5zdHJpbmcoZS51c2VyQWdlbnRFbmMpLFwiXCIhPT1lLmFwcGxpY2F0aW9uSWRFbmMmJm4udWludDMyKDQyKS5zdHJpbmcoZS5hcHBsaWNhdGlvbklkRW5jKSxcIlwiIT09ZS5jb25maWd1cmF0aW9uRGF0YUVuYyYmbi51aW50MzIoNTApLnN0cmluZyhlLmNvbmZpZ3VyYXRpb25EYXRhRW5jKSxcIlwiIT09ZS5wcm9jZXNzTmFtZUVuYyYmbi51aW50MzIoNTgpLnN0cmluZyhlLnByb2Nlc3NOYW1lRW5jKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsYXBpVG9rZW5TdWJqZWN0OlwiXCIsYXBpVG9rZW5TdWJqZWN0RW5jOlwiXCIsdXNlckFnZW50RW5jOlwiXCIsYXBwbGljYXRpb25JZEVuYzpcIlwiLGNvbmZpZ3VyYXRpb25EYXRhRW5jOlwiXCIscHJvY2Vzc05hbWVFbmM6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FtZXJhS2l0RXZlbnRCYXNlPXQuQ2FtZXJhS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmFwaVRva2VuU3ViamVjdD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmFwaVRva2VuU3ViamVjdEVuYz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLnVzZXJBZ2VudEVuYz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmFwcGxpY2F0aW9uSWRFbmM9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS5jb25maWd1cmF0aW9uRGF0YUVuYz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNzphLnByb2Nlc3NOYW1lRW5jPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGFwaVRva2VuU3ViamVjdDpcIlwiLGFwaVRva2VuU3ViamVjdEVuYzpcIlwiLHVzZXJBZ2VudEVuYzpcIlwiLGFwcGxpY2F0aW9uSWRFbmM6XCJcIixjb25maWd1cmF0aW9uRGF0YUVuYzpcIlwiLHByb2Nlc3NOYW1lRW5jOlwiXCJ9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5hcGlUb2tlblN1YmplY3Q9ZS5hcGlUb2tlblN1YmplY3Q/P1wiXCIsbi5hcGlUb2tlblN1YmplY3RFbmM9ZS5hcGlUb2tlblN1YmplY3RFbmM/P1wiXCIsbi51c2VyQWdlbnRFbmM9ZS51c2VyQWdlbnRFbmM/P1wiXCIsbi5hcHBsaWNhdGlvbklkRW5jPWUuYXBwbGljYXRpb25JZEVuYz8/XCJcIixuLmNvbmZpZ3VyYXRpb25EYXRhRW5jPWUuY29uZmlndXJhdGlvbkRhdGFFbmM/P1wiXCIsbi5wcm9jZXNzTmFtZUVuYz1lLnByb2Nlc3NOYW1lRW5jPz9cIlwiLG59fSx0LkNhbWVyYUtpdEFzc2V0RG93bmxvYWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJnQuQ2FtZXJhS2l0RXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwhMD09PWUuYXV0b21hdGljRG93bmxvYWQmJm4udWludDMyKDI0KS5ib29sKGUuYXV0b21hdGljRG93bmxvYWQpLDAhPT1lLmRvd25sb2FkVGltZVNlYyYmbi51aW50MzIoMzMpLmRvdWJsZShlLmRvd25sb2FkVGltZVNlYyksXCIwXCIhPT1lLnNpemVCeXRlJiZuLnVpbnQzMig0MCkudWludDY0KGUuc2l6ZUJ5dGUpLFwiXCIhPT1lLmFzc2V0SWQmJm4udWludDMyKDUwKS5zdHJpbmcoZS5hc3NldElkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsYXV0b21hdGljRG93bmxvYWQ6ITEsZG93bmxvYWRUaW1lU2VjOjAsc2l6ZUJ5dGU6XCIwXCIsYXNzZXRJZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jYW1lcmFLaXRFdmVudEJhc2U9dC5DYW1lcmFLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAzOmEuYXV0b21hdGljRG93bmxvYWQ9ci5ib29sKCk7YnJlYWs7Y2FzZSA0OmEuZG93bmxvYWRUaW1lU2VjPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA1OmEuc2l6ZUJ5dGU9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6YS5hc3NldElkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGF1dG9tYXRpY0Rvd25sb2FkOiExLGRvd25sb2FkVGltZVNlYzowLHNpemVCeXRlOlwiMFwiLGFzc2V0SWQ6XCJcIn07cmV0dXJuIG4uY2FtZXJhS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRFdmVudEJhc2U/dC5DYW1lcmFLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLmF1dG9tYXRpY0Rvd25sb2FkPWUuYXV0b21hdGljRG93bmxvYWQ/PyExLG4uZG93bmxvYWRUaW1lU2VjPWUuZG93bmxvYWRUaW1lU2VjPz8wLG4uc2l6ZUJ5dGU9ZS5zaXplQnl0ZT8/XCIwXCIsbi5hc3NldElkPWUuYXNzZXRJZD8/XCJcIixufX0sdC5DYW1lcmFLaXRBc3NldFZhbGlkYXRpb25GYWlsZWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJnQuQ2FtZXJhS2l0RXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5hc3NldElkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuYXNzZXRJZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGFzc2V0SWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FtZXJhS2l0RXZlbnRCYXNlPXQuQ2FtZXJhS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMzphLmFzc2V0SWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsYXNzZXRJZDpcIlwifTtyZXR1cm4gbi5jYW1lcmFLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJm51bGwhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZT90LkNhbWVyYUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNhbWVyYUtpdEV2ZW50QmFzZSk6dm9pZCAwLG4uYXNzZXRJZD1lLmFzc2V0SWQ/P1wiXCIsbn19LHQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRW5kPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlJiZ0LkNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZS5lbmNvZGUoZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuc2Vzc2lvblN0YXJ0VGltZU1zJiZuLnVpbnQzMigxNykuZG91YmxlKGUuc2Vzc2lvblN0YXJ0VGltZU1zKSwwIT09ZS5zZXNzaW9uVG90YWxUaW1lTXMmJm4udWludDMyKDI1KS5kb3VibGUoZS5zZXNzaW9uVG90YWxUaW1lTXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlOnZvaWQgMCxzZXNzaW9uU3RhcnRUaW1lTXM6MCxzZXNzaW9uVG90YWxUaW1lTXM6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlPXQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnNlc3Npb25TdGFydFRpbWVNcz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMzphLnNlc3Npb25Ub3RhbFRpbWVNcz1yLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlOnZvaWQgMCxzZXNzaW9uU3RhcnRUaW1lTXM6MCxzZXNzaW9uVG90YWxUaW1lTXM6MH07cmV0dXJuIG4uY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U/dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UpOnZvaWQgMCxuLnNlc3Npb25TdGFydFRpbWVNcz1lLnNlc3Npb25TdGFydFRpbWVNcz8/MCxuLnNlc3Npb25Ub3RhbFRpbWVNcz1lLnNlc3Npb25Ub3RhbFRpbWVNcz8/MCxufX0sdC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNGYWlsZWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UmJnQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5mYWlsdXJlUmVhc29uJiZuLnVpbnQzMigxNikuaW50MzIoZS5mYWlsdXJlUmVhc29uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZTp2b2lkIDAsZmFpbHVyZVJlYXNvbjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U9dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZmFpbHVyZVJlYXNvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U6dm9pZCAwLGZhaWx1cmVSZWFzb246MH07cmV0dXJuIG4uY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U/dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UpOnZvaWQgMCxuLmZhaWx1cmVSZWFzb249ZS5mYWlsdXJlUmVhc29uPz8wLG59fSx0LkNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0pvaW49e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UmJnQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U9dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlP3QuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzTW9kYWxSZXN1bHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UmJnQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5zdGF0dXMmJm4udWludDMyKDE2KS5pbnQzMihlLnN0YXR1cyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U6dm9pZCAwLHN0YXR1czowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U9dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc3RhdHVzPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZTp2b2lkIDAsc3RhdHVzOjB9O3JldHVybiBuLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlP3QuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlKTp2b2lkIDAsbi5zdGF0dXM9ZS5zdGF0dXM/PzAsbn19LHQuQ2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzTW9kYWxTaG93bj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZSYmdC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZT10LkNhbWVyYUtpdENvbm5lY3RlZExlbnNlc0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0Q29ubmVjdGVkTGVuc2VzRXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2U/dC5DYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRDb25uZWN0ZWRMZW5zZXNFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5DYW1lcmFLaXRFdmVudEJhc2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJnQuS2l0RXZlbnRCYXNlLmVuY29kZShlLmtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUuZGV2aWNlQ2x1c3RlciYmbi51aW50MzIoMTYpLnVpbnQ2NChlLmRldmljZUNsdXN0ZXIpLFwiXCIhPT1lLmNhbWVyYUtpdFZlcnNpb24mJm4udWludDMyKDI2KS5zdHJpbmcoZS5jYW1lcmFLaXRWZXJzaW9uKSxcIlwiIT09ZS5sZW5zQ29yZVZlcnNpb24mJm4udWludDMyKDM0KS5zdHJpbmcoZS5sZW5zQ29yZVZlcnNpb24pLFwiXCIhPT1lLmRldmljZU1vZGVsJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUuZGV2aWNlTW9kZWwpLDAhPT1lLmNhbWVyYUtpdFZhcmlhbnQmJm4udWludDMyKDQ4KS5pbnQzMihlLmNhbWVyYUtpdFZhcmlhbnQpLDAhPT1lLmNhbWVyYUtpdEZsYXZvciYmbi51aW50MzIoNTYpLmludDMyKGUuY2FtZXJhS2l0Rmxhdm9yKSxcIlwiIT09ZS5hcHBJZCYmbi51aW50MzIoNjYpLnN0cmluZyhlLmFwcElkKSwwIT09ZS5kZXZpY2VDb25uZWN0aXZpdHkmJm4udWludDMyKDcyKS5pbnQzMihlLmRldmljZUNvbm5lY3Rpdml0eSksXCJcIiE9PWUuc2Vzc2lvbklkJiZuLnVpbnQzMig4Mikuc3RyaW5nKGUuc2Vzc2lvbklkKSxcIlwiIT09ZS5hcHBWZW5kb3JVdWlkJiZuLnVpbnQzMig5MCkuc3RyaW5nKGUuYXBwVmVuZG9yVXVpZCksXCJcIiE9PWUucmFua2luZ1JlcXVlc3RJZCYmbi51aW50MzIoOTgpLnN0cmluZyhlLnJhbmtpbmdSZXF1ZXN0SWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17a2l0RXZlbnRCYXNlOnZvaWQgMCxkZXZpY2VDbHVzdGVyOlwiMFwiLGNhbWVyYUtpdFZlcnNpb246XCJcIixsZW5zQ29yZVZlcnNpb246XCJcIixkZXZpY2VNb2RlbDpcIlwiLGNhbWVyYUtpdFZhcmlhbnQ6MCxjYW1lcmFLaXRGbGF2b3I6MCxhcHBJZDpcIlwiLGRldmljZUNvbm5lY3Rpdml0eTowLHNlc3Npb25JZDpcIlwiLGFwcFZlbmRvclV1aWQ6XCJcIixyYW5raW5nUmVxdWVzdElkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEV2ZW50QmFzZT10LktpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5kZXZpY2VDbHVzdGVyPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmEuY2FtZXJhS2l0VmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmxlbnNDb3JlVmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmRldmljZU1vZGVsPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmEuY2FtZXJhS2l0VmFyaWFudD1yLmludDMyKCk7YnJlYWs7Y2FzZSA3OmEuY2FtZXJhS2l0Rmxhdm9yPXIuaW50MzIoKTticmVhaztjYXNlIDg6YS5hcHBJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgOTphLmRldmljZUNvbm5lY3Rpdml0eT1yLmludDMyKCk7YnJlYWs7Y2FzZSAxMDphLnNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTE6YS5hcHBWZW5kb3JVdWlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMjphLnJhbmtpbmdSZXF1ZXN0SWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEV2ZW50QmFzZTp2b2lkIDAsZGV2aWNlQ2x1c3RlcjpcIjBcIixjYW1lcmFLaXRWZXJzaW9uOlwiXCIsbGVuc0NvcmVWZXJzaW9uOlwiXCIsZGV2aWNlTW9kZWw6XCJcIixjYW1lcmFLaXRWYXJpYW50OjAsY2FtZXJhS2l0Rmxhdm9yOjAsYXBwSWQ6XCJcIixkZXZpY2VDb25uZWN0aXZpdHk6MCxzZXNzaW9uSWQ6XCJcIixhcHBWZW5kb3JVdWlkOlwiXCIscmFua2luZ1JlcXVlc3RJZDpcIlwifTtyZXR1cm4gbi5raXRFdmVudEJhc2U9dm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJm51bGwhPT1lLmtpdEV2ZW50QmFzZT90LktpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmtpdEV2ZW50QmFzZSk6dm9pZCAwLG4uZGV2aWNlQ2x1c3Rlcj1lLmRldmljZUNsdXN0ZXI/P1wiMFwiLG4uY2FtZXJhS2l0VmVyc2lvbj1lLmNhbWVyYUtpdFZlcnNpb24/P1wiXCIsbi5sZW5zQ29yZVZlcnNpb249ZS5sZW5zQ29yZVZlcnNpb24/P1wiXCIsbi5kZXZpY2VNb2RlbD1lLmRldmljZU1vZGVsPz9cIlwiLG4uY2FtZXJhS2l0VmFyaWFudD1lLmNhbWVyYUtpdFZhcmlhbnQ/PzAsbi5jYW1lcmFLaXRGbGF2b3I9ZS5jYW1lcmFLaXRGbGF2b3I/PzAsbi5hcHBJZD1lLmFwcElkPz9cIlwiLG4uZGV2aWNlQ29ubmVjdGl2aXR5PWUuZGV2aWNlQ29ubmVjdGl2aXR5Pz8wLG4uc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLG4uYXBwVmVuZG9yVXVpZD1lLmFwcFZlbmRvclV1aWQ/P1wiXCIsbi5yYW5raW5nUmVxdWVzdElkPWUucmFua2luZ1JlcXVlc3RJZD8/XCJcIixufX0sdC5DYW1lcmFLaXRFeGNlcHRpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJnQuQ2FtZXJhS2l0RXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLnR5cGUmJm4udWludDMyKDI2KS5zdHJpbmcoZS50eXBlKSxcIlwiIT09ZS5yZWFzb24mJm4udWludDMyKDM0KS5zdHJpbmcoZS5yZWFzb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxsZW5zSWQ6XCJcIix0eXBlOlwiXCIscmVhc29uOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS50eXBlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEucmVhc29uPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGxlbnNJZDpcIlwiLHR5cGU6XCJcIixyZWFzb246XCJcIn07cmV0dXJuIG4uY2FtZXJhS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRFdmVudEJhc2U/dC5DYW1lcmFLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixuLnR5cGU9ZS50eXBlPz9cIlwiLG4ucmVhc29uPWUucmVhc29uPz9cIlwiLG59fSx0LkNhbWVyYUtpdEV4dGVuc2lvbkV2ZW50QmFzZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmdC5LaXRFdmVudEJhc2UuZW5jb2RlKGUua2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmV4dGVuc2lvbk5hbWUmJm4udWludDMyKDE4KS5zdHJpbmcoZS5leHRlbnNpb25OYW1lKSxcIlwiIT09ZS5leHRlbnNpb25WZXJzaW9uJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuZXh0ZW5zaW9uVmVyc2lvbiksXCIwXCIhPT1lLmRldmljZUNsdXN0ZXImJm4udWludDMyKDMyKS51aW50NjQoZS5kZXZpY2VDbHVzdGVyKSxcIlwiIT09ZS5jYW1lcmFLaXRWZXJzaW9uJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUuY2FtZXJhS2l0VmVyc2lvbiksXCJcIiE9PWUubGVuc0NvcmVWZXJzaW9uJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUubGVuc0NvcmVWZXJzaW9uKSxcIlwiIT09ZS5kZXZpY2VNb2RlbCYmbi51aW50MzIoNTgpLnN0cmluZyhlLmRldmljZU1vZGVsKSwwIT09ZS5jYW1lcmFLaXRGbGF2b3ImJm4udWludDMyKDY0KS5pbnQzMihlLmNhbWVyYUtpdEZsYXZvciksXCJcIiE9PWUuYXBwSWQmJm4udWludDMyKDc0KS5zdHJpbmcoZS5hcHBJZCksMCE9PWUuZGV2aWNlQ29ubmVjdGl2aXR5JiZuLnVpbnQzMig4MCkuaW50MzIoZS5kZXZpY2VDb25uZWN0aXZpdHkpLFwiXCIhPT1lLnNlc3Npb25JZCYmbi51aW50MzIoOTApLnN0cmluZyhlLnNlc3Npb25JZCksXCJcIiE9PWUuYXBwVmVuZG9yVXVpZCYmbi51aW50MzIoOTgpLnN0cmluZyhlLmFwcFZlbmRvclV1aWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17a2l0RXZlbnRCYXNlOnZvaWQgMCxleHRlbnNpb25OYW1lOlwiXCIsZXh0ZW5zaW9uVmVyc2lvbjpcIlwiLGRldmljZUNsdXN0ZXI6XCIwXCIsY2FtZXJhS2l0VmVyc2lvbjpcIlwiLGxlbnNDb3JlVmVyc2lvbjpcIlwiLGRldmljZU1vZGVsOlwiXCIsY2FtZXJhS2l0Rmxhdm9yOjAsYXBwSWQ6XCJcIixkZXZpY2VDb25uZWN0aXZpdHk6MCxzZXNzaW9uSWQ6XCJcIixhcHBWZW5kb3JVdWlkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEV2ZW50QmFzZT10LktpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5leHRlbnNpb25OYW1lPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuZXh0ZW5zaW9uVmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmRldmljZUNsdXN0ZXI9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6YS5jYW1lcmFLaXRWZXJzaW9uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmEubGVuc0NvcmVWZXJzaW9uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmEuZGV2aWNlTW9kZWw9ci5zdHJpbmcoKTticmVhaztjYXNlIDg6YS5jYW1lcmFLaXRGbGF2b3I9ci5pbnQzMigpO2JyZWFrO2Nhc2UgOTphLmFwcElkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDphLmRldmljZUNvbm5lY3Rpdml0eT1yLmludDMyKCk7YnJlYWs7Y2FzZSAxMTphLnNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTI6YS5hcHBWZW5kb3JVdWlkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtraXRFdmVudEJhc2U6dm9pZCAwLGV4dGVuc2lvbk5hbWU6XCJcIixleHRlbnNpb25WZXJzaW9uOlwiXCIsZGV2aWNlQ2x1c3RlcjpcIjBcIixjYW1lcmFLaXRWZXJzaW9uOlwiXCIsbGVuc0NvcmVWZXJzaW9uOlwiXCIsZGV2aWNlTW9kZWw6XCJcIixjYW1lcmFLaXRGbGF2b3I6MCxhcHBJZDpcIlwiLGRldmljZUNvbm5lY3Rpdml0eTowLHNlc3Npb25JZDpcIlwiLGFwcFZlbmRvclV1aWQ6XCJcIn07cmV0dXJuIG4ua2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZudWxsIT09ZS5raXRFdmVudEJhc2U/dC5LaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5raXRFdmVudEJhc2UpOnZvaWQgMCxuLmV4dGVuc2lvbk5hbWU9ZS5leHRlbnNpb25OYW1lPz9cIlwiLG4uZXh0ZW5zaW9uVmVyc2lvbj1lLmV4dGVuc2lvblZlcnNpb24/P1wiXCIsbi5kZXZpY2VDbHVzdGVyPWUuZGV2aWNlQ2x1c3Rlcj8/XCIwXCIsbi5jYW1lcmFLaXRWZXJzaW9uPWUuY2FtZXJhS2l0VmVyc2lvbj8/XCJcIixuLmxlbnNDb3JlVmVyc2lvbj1lLmxlbnNDb3JlVmVyc2lvbj8/XCJcIixuLmRldmljZU1vZGVsPWUuZGV2aWNlTW9kZWw/P1wiXCIsbi5jYW1lcmFLaXRGbGF2b3I9ZS5jYW1lcmFLaXRGbGF2b3I/PzAsbi5hcHBJZD1lLmFwcElkPz9cIlwiLG4uZGV2aWNlQ29ubmVjdGl2aXR5PWUuZGV2aWNlQ29ubmVjdGl2aXR5Pz8wLG4uc2Vzc2lvbklkPWUuc2Vzc2lvbklkPz9cIlwiLG4uYXBwVmVuZG9yVXVpZD1lLmFwcFZlbmRvclV1aWQ/P1wiXCIsbn19LHQuQ2FtZXJhS2l0RXh0ZW5zaW9uRXZlbnRTdHViPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FtZXJhS2l0RXh0ZW5zaW9uRXZlbnRCYXNlJiZ0LkNhbWVyYUtpdEV4dGVuc2lvbkV2ZW50QmFzZS5lbmNvZGUoZS5jYW1lcmFLaXRFeHRlbnNpb25FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW1lcmFLaXRFeHRlbnNpb25FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuY2FtZXJhS2l0RXh0ZW5zaW9uRXZlbnRCYXNlPXQuQ2FtZXJhS2l0RXh0ZW5zaW9uRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFeHRlbnNpb25FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5jYW1lcmFLaXRFeHRlbnNpb25FdmVudEJhc2U9dm9pZCAwIT09ZS5jYW1lcmFLaXRFeHRlbnNpb25FdmVudEJhc2UmJm51bGwhPT1lLmNhbWVyYUtpdEV4dGVuc2lvbkV2ZW50QmFzZT90LkNhbWVyYUtpdEV4dGVuc2lvbkV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNhbWVyYUtpdEV4dGVuc2lvbkV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkNhbWVyYUtpdExlZ2FsUHJvbXB0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZ0LkNhbWVyYUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5jYW1lcmFLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUubGVnYWxQcm9tcHRJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmxlZ2FsUHJvbXB0SWQpLDAhPT1lLmxlZ2FsUHJvbXB0UmVzdWx0JiZuLnVpbnQzMigyNCkuaW50MzIoZS5sZWdhbFByb21wdFJlc3VsdCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGxlZ2FsUHJvbXB0SWQ6XCJcIixsZWdhbFByb21wdFJlc3VsdDowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jYW1lcmFLaXRFdmVudEJhc2U9dC5DYW1lcmFLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubGVnYWxQcm9tcHRJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmxlZ2FsUHJvbXB0UmVzdWx0PXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsbGVnYWxQcm9tcHRJZDpcIlwiLGxlZ2FsUHJvbXB0UmVzdWx0OjB9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5sZWdhbFByb21wdElkPWUubGVnYWxQcm9tcHRJZD8/XCJcIixuLmxlZ2FsUHJvbXB0UmVzdWx0PWUubGVnYWxQcm9tcHRSZXN1bHQ/PzAsbn19LHQuQ2FtZXJhS2l0TGVuc0NvbnRlbnRWYWxpZGF0aW9uRmFpbGVkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZ0LkNhbWVyYUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5jYW1lcmFLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUubGVuc0lkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubGVuc0lkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsbGVuc0lkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsbGVuc0lkOlwiXCJ9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5sZW5zSWQ9ZS5sZW5zSWQ/P1wiXCIsbn19LHQuQ2FtZXJhS2l0TGVuc0Rvd25sb2FkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZ0LkNhbWVyYUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5jYW1lcmFLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUubGVuc0lkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubGVuc0lkKSwhMD09PWUuYXV0b21hdGljRG93bmxvYWQmJm4udWludDMyKDI0KS5ib29sKGUuYXV0b21hdGljRG93bmxvYWQpLDAhPT1lLmRvd25sb2FkVGltZVNlYyYmbi51aW50MzIoMzMpLmRvdWJsZShlLmRvd25sb2FkVGltZVNlYyksXCIwXCIhPT1lLnNpemVCeXRlJiZuLnVpbnQzMig0MCkudWludDY0KGUuc2l6ZUJ5dGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxsZW5zSWQ6XCJcIixhdXRvbWF0aWNEb3dubG9hZDohMSxkb3dubG9hZFRpbWVTZWM6MCxzaXplQnl0ZTpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FtZXJhS2l0RXZlbnRCYXNlPXQuQ2FtZXJhS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmxlbnNJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmF1dG9tYXRpY0Rvd25sb2FkPXIuYm9vbCgpO2JyZWFrO2Nhc2UgNDphLmRvd25sb2FkVGltZVNlYz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNTphLnNpemVCeXRlPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGxlbnNJZDpcIlwiLGF1dG9tYXRpY0Rvd25sb2FkOiExLGRvd25sb2FkVGltZVNlYzowLHNpemVCeXRlOlwiMFwifTtyZXR1cm4gbi5jYW1lcmFLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJm51bGwhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZT90LkNhbWVyYUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNhbWVyYUtpdEV2ZW50QmFzZSk6dm9pZCAwLG4ubGVuc0lkPWUubGVuc0lkPz9cIlwiLG4uYXV0b21hdGljRG93bmxvYWQ9ZS5hdXRvbWF0aWNEb3dubG9hZD8/ITEsbi5kb3dubG9hZFRpbWVTZWM9ZS5kb3dubG9hZFRpbWVTZWM/PzAsbi5zaXplQnl0ZT1lLnNpemVCeXRlPz9cIjBcIixufX0sdC5DYW1lcmFLaXRMZW5zU3Bpbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmxlbnNJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmxlbnNJZCksMCE9PWUudmlld1RpbWVTZWMmJm4udWludDMyKDI1KS5kb3VibGUoZS52aWV3VGltZVNlYyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGxlbnNJZDpcIlwiLHZpZXdUaW1lU2VjOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS52aWV3VGltZVNlYz1yLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxsZW5zSWQ6XCJcIix2aWV3VGltZVNlYzowfTtyZXR1cm4gbi5jYW1lcmFLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJm51bGwhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZT90LkNhbWVyYUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNhbWVyYUtpdEV2ZW50QmFzZSk6dm9pZCAwLG4ubGVuc0lkPWUubGVuc0lkPz9cIlwiLG4udmlld1RpbWVTZWM9ZS52aWV3VGltZVNlYz8/MCxufX0sdC5DYW1lcmFLaXRMZW5zU3dpcGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJnQuQ2FtZXJhS2l0RXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5sZW5zSWQpLDAhPT1lLmxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNBdmcmJm4udWludDMyKDI1KS5kb3VibGUoZS5sZW5zRnJhbWVQcm9jZXNzaW5nVGltZU1zQXZnKSwwIT09ZS5sZW5zRnJhbWVQcm9jZXNzaW5nVGltZU1zU3RkJiZuLnVpbnQzMigzMykuZG91YmxlKGUubGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc1N0ZCksMCE9PWUudmlld1RpbWVTZWMmJm4udWludDMyKDQxKS5kb3VibGUoZS52aWV3VGltZVNlYyksMCE9PWUucmVjb3JkaW5nVGltZVNlYyYmbi51aW50MzIoNDkpLmRvdWJsZShlLnJlY29yZGluZ1RpbWVTZWMpLDAhPT1lLmFwcGx5RGVsYXlTZWMmJm4udWludDMyKDU3KS5kb3VibGUoZS5hcHBseURlbGF5U2VjKSwwIT09ZS5hdmdGcHMmJm4udWludDMyKDY1KS5kb3VibGUoZS5hdmdGcHMpLCEwPT09ZS5pc0xlbnNGaXJzdFdpdGhpbkRheSYmbi51aW50MzIoNzIpLmJvb2woZS5pc0xlbnNGaXJzdFdpdGhpbkRheSksITA9PT1lLmlzTGVuc0ZpcnN0V2l0aGluTW9udGgmJm4udWludDMyKDgwKS5ib29sKGUuaXNMZW5zRmlyc3RXaXRoaW5Nb250aCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGxlbnNJZDpcIlwiLGxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNBdmc6MCxsZW5zRnJhbWVQcm9jZXNzaW5nVGltZU1zU3RkOjAsdmlld1RpbWVTZWM6MCxyZWNvcmRpbmdUaW1lU2VjOjAsYXBwbHlEZWxheVNlYzowLGF2Z0ZwczowLGlzTGVuc0ZpcnN0V2l0aGluRGF5OiExLGlzTGVuc0ZpcnN0V2l0aGluTW9udGg6ITF9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5sZW5zRnJhbWVQcm9jZXNzaW5nVGltZU1zQXZnPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA0OmEubGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc1N0ZD1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNTphLnZpZXdUaW1lU2VjPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA2OmEucmVjb3JkaW5nVGltZVNlYz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNzphLmFwcGx5RGVsYXlTZWM9ci5kb3VibGUoKTticmVhaztjYXNlIDg6YS5hdmdGcHM9ci5kb3VibGUoKTticmVhaztjYXNlIDk6YS5pc0xlbnNGaXJzdFdpdGhpbkRheT1yLmJvb2woKTticmVhaztjYXNlIDEwOmEuaXNMZW5zRmlyc3RXaXRoaW5Nb250aD1yLmJvb2woKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsbGVuc0lkOlwiXCIsbGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc0F2ZzowLGxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNTdGQ6MCx2aWV3VGltZVNlYzowLHJlY29yZGluZ1RpbWVTZWM6MCxhcHBseURlbGF5U2VjOjAsYXZnRnBzOjAsaXNMZW5zRmlyc3RXaXRoaW5EYXk6ITEsaXNMZW5zRmlyc3RXaXRoaW5Nb250aDohMX07cmV0dXJuIG4uY2FtZXJhS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRFdmVudEJhc2U/dC5DYW1lcmFLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixuLmxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNBdmc9ZS5sZW5zRnJhbWVQcm9jZXNzaW5nVGltZU1zQXZnPz8wLG4ubGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc1N0ZD1lLmxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNTdGQ/PzAsbi52aWV3VGltZVNlYz1lLnZpZXdUaW1lU2VjPz8wLG4ucmVjb3JkaW5nVGltZVNlYz1lLnJlY29yZGluZ1RpbWVTZWM/PzAsbi5hcHBseURlbGF5U2VjPWUuYXBwbHlEZWxheVNlYz8/MCxuLmF2Z0Zwcz1lLmF2Z0Zwcz8/MCxuLmlzTGVuc0ZpcnN0V2l0aGluRGF5PWUuaXNMZW5zRmlyc3RXaXRoaW5EYXk/PyExLG4uaXNMZW5zRmlyc3RXaXRoaW5Nb250aD1lLmlzTGVuc0ZpcnN0V2l0aGluTW9udGg/PyExLG59fSx0LkNhbWVyYUtpdFBvc3NpYmxlTGVuc0NyYXNoPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZ0LkNhbWVyYUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5jYW1lcmFLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUubGVuc0lkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubGVuc0lkKSxcIlwiIT09ZS51cGNvbWluZ0xlbnNJZCYmbi51aW50MzIoMjYpLnN0cmluZyhlLnVwY29taW5nTGVuc0lkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsbGVuc0lkOlwiXCIsdXBjb21pbmdMZW5zSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FtZXJhS2l0RXZlbnRCYXNlPXQuQ2FtZXJhS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmxlbnNJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnVwY29taW5nTGVuc0lkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGxlbnNJZDpcIlwiLHVwY29taW5nTGVuc0lkOlwiXCJ9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5sZW5zSWQ9ZS5sZW5zSWQ/P1wiXCIsbi51cGNvbWluZ0xlbnNJZD1lLnVwY29taW5nTGVuc0lkPz9cIlwiLG59fSx0LkNhbWVyYUtpdFByb2ZpbGluZ01ldHJpY3NFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmxlbnNJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmxlbnNJZCksITA9PT1lLndpdGhSZWNvcmRpbmdPY2N1cmluZyYmbi51aW50MzIoMjQpLmJvb2woZS53aXRoUmVjb3JkaW5nT2NjdXJpbmcpLDAhPT1lLmxlbnNGcmFtZVRpbWVNcyYmbi51aW50MzIoMzMpLmRvdWJsZShlLmxlbnNGcmFtZVRpbWVNcyksMCE9PWUubGVuc0ZyYW1lVGltZVdhcm1NcyYmbi51aW50MzIoNDEpLmRvdWJsZShlLmxlbnNGcmFtZVRpbWVXYXJtTXMpLDAhPT1lLmxlbnNUcmFja2luZ1RpbWVNcyYmbi51aW50MzIoNDkpLmRvdWJsZShlLmxlbnNUcmFja2luZ1RpbWVNcyksMCE9PWUubGVuc0VuZ2luZVRpbWVNcyYmbi51aW50MzIoNTcpLmRvdWJsZShlLmxlbnNFbmdpbmVUaW1lTXMpLDAhPT1lLmxlbnNTY3JpcHRUaW1lTXMmJm4udWludDMyKDY1KS5kb3VibGUoZS5sZW5zU2NyaXB0VGltZU1zKSwwIT09ZS5sZW5zQmFkRnJhbWVzJiZuLnVpbnQzMig3MykuZG91YmxlKGUubGVuc0JhZEZyYW1lcyksMCE9PWUubGVuc0ZpcnN0RnJhbWVNcyYmbi51aW50MzIoODEpLmRvdWJsZShlLmxlbnNGaXJzdEZyYW1lTXMpLDAhPT1lLmxlbnNTdGFydEZyYW1lUmF0aW8mJm4udWludDMyKDg5KS5kb3VibGUoZS5sZW5zU3RhcnRGcmFtZVJhdGlvKSwwIT09ZS5sZW5zTG9hZFRpbWVNcyYmbi51aW50MzIoOTcpLmRvdWJsZShlLmxlbnNMb2FkVGltZU1zKSwwIT09ZS5sZW5zVW5sb2FkVGltZU1zJiZuLnVpbnQzMigxMDUpLmRvdWJsZShlLmxlbnNVbmxvYWRUaW1lTXMpLDAhPT1lLmxlbnNTdGRGcmFtZVRpbWVNcyYmbi51aW50MzIoMTEzKS5kb3VibGUoZS5sZW5zU3RkRnJhbWVUaW1lTXMpLDAhPT1lLmxlbnNTdGRGcmFtZVRpbWVXYXJtTXMmJm4udWludDMyKDEyMSkuZG91YmxlKGUubGVuc1N0ZEZyYW1lVGltZVdhcm1NcyksMCE9PWUubGVuc0dwdVRpbWVNcyYmbi51aW50MzIoMTI5KS5kb3VibGUoZS5sZW5zR3B1VGltZU1zKSwwIT09ZS5sZW5zR3B1VGltZVdhcm1NcyYmbi51aW50MzIoMTM3KS5kb3VibGUoZS5sZW5zR3B1VGltZVdhcm1NcyksMCE9PWUubGVuc0ZwcyYmbi51aW50MzIoMTQ1KS5kb3VibGUoZS5sZW5zRnBzKSwwIT09ZS5sZW5zRnBzV2FybSYmbi51aW50MzIoMTUzKS5kb3VibGUoZS5sZW5zRnBzV2FybSksMCE9PWUubGVuc0xvYWRUaW1lQW5kRml2ZUZyYW1lc01zJiZuLnVpbnQzMigxNjEpLmRvdWJsZShlLmxlbnNMb2FkVGltZUFuZEZpdmVGcmFtZXNNcyksMCE9PWUubGVuc0xvYWRUaW1lQW5kVHdlbnR5RnJhbWVzTXMmJm4udWludDMyKDE2OSkuZG91YmxlKGUubGVuc0xvYWRUaW1lQW5kVHdlbnR5RnJhbWVzTXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxsZW5zSWQ6XCJcIix3aXRoUmVjb3JkaW5nT2NjdXJpbmc6ITEsbGVuc0ZyYW1lVGltZU1zOjAsbGVuc0ZyYW1lVGltZVdhcm1NczowLGxlbnNUcmFja2luZ1RpbWVNczowLGxlbnNFbmdpbmVUaW1lTXM6MCxsZW5zU2NyaXB0VGltZU1zOjAsbGVuc0JhZEZyYW1lczowLGxlbnNGaXJzdEZyYW1lTXM6MCxsZW5zU3RhcnRGcmFtZVJhdGlvOjAsbGVuc0xvYWRUaW1lTXM6MCxsZW5zVW5sb2FkVGltZU1zOjAsbGVuc1N0ZEZyYW1lVGltZU1zOjAsbGVuc1N0ZEZyYW1lVGltZVdhcm1NczowLGxlbnNHcHVUaW1lTXM6MCxsZW5zR3B1VGltZVdhcm1NczowLGxlbnNGcHM6MCxsZW5zRnBzV2FybTowLGxlbnNMb2FkVGltZUFuZEZpdmVGcmFtZXNNczowLGxlbnNMb2FkVGltZUFuZFR3ZW50eUZyYW1lc01zOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS53aXRoUmVjb3JkaW5nT2NjdXJpbmc9ci5ib29sKCk7YnJlYWs7Y2FzZSA0OmEubGVuc0ZyYW1lVGltZU1zPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA1OmEubGVuc0ZyYW1lVGltZVdhcm1Ncz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNjphLmxlbnNUcmFja2luZ1RpbWVNcz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNzphLmxlbnNFbmdpbmVUaW1lTXM9ci5kb3VibGUoKTticmVhaztjYXNlIDg6YS5sZW5zU2NyaXB0VGltZU1zPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA5OmEubGVuc0JhZEZyYW1lcz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTA6YS5sZW5zRmlyc3RGcmFtZU1zPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAxMTphLmxlbnNTdGFydEZyYW1lUmF0aW89ci5kb3VibGUoKTticmVhaztjYXNlIDEyOmEubGVuc0xvYWRUaW1lTXM9ci5kb3VibGUoKTticmVhaztjYXNlIDEzOmEubGVuc1VubG9hZFRpbWVNcz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTQ6YS5sZW5zU3RkRnJhbWVUaW1lTXM9ci5kb3VibGUoKTticmVhaztjYXNlIDE1OmEubGVuc1N0ZEZyYW1lVGltZVdhcm1Ncz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTY6YS5sZW5zR3B1VGltZU1zPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAxNzphLmxlbnNHcHVUaW1lV2FybU1zPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAxODphLmxlbnNGcHM9ci5kb3VibGUoKTticmVhaztjYXNlIDE5OmEubGVuc0Zwc1dhcm09ci5kb3VibGUoKTticmVhaztjYXNlIDIwOmEubGVuc0xvYWRUaW1lQW5kRml2ZUZyYW1lc01zPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAyMTphLmxlbnNMb2FkVGltZUFuZFR3ZW50eUZyYW1lc01zPXIuZG91YmxlKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGxlbnNJZDpcIlwiLHdpdGhSZWNvcmRpbmdPY2N1cmluZzohMSxsZW5zRnJhbWVUaW1lTXM6MCxsZW5zRnJhbWVUaW1lV2FybU1zOjAsbGVuc1RyYWNraW5nVGltZU1zOjAsbGVuc0VuZ2luZVRpbWVNczowLGxlbnNTY3JpcHRUaW1lTXM6MCxsZW5zQmFkRnJhbWVzOjAsbGVuc0ZpcnN0RnJhbWVNczowLGxlbnNTdGFydEZyYW1lUmF0aW86MCxsZW5zTG9hZFRpbWVNczowLGxlbnNVbmxvYWRUaW1lTXM6MCxsZW5zU3RkRnJhbWVUaW1lTXM6MCxsZW5zU3RkRnJhbWVUaW1lV2FybU1zOjAsbGVuc0dwdVRpbWVNczowLGxlbnNHcHVUaW1lV2FybU1zOjAsbGVuc0ZwczowLGxlbnNGcHNXYXJtOjAsbGVuc0xvYWRUaW1lQW5kRml2ZUZyYW1lc01zOjAsbGVuc0xvYWRUaW1lQW5kVHdlbnR5RnJhbWVzTXM6MH07cmV0dXJuIG4uY2FtZXJhS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRFdmVudEJhc2U/dC5DYW1lcmFLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixuLndpdGhSZWNvcmRpbmdPY2N1cmluZz1lLndpdGhSZWNvcmRpbmdPY2N1cmluZz8/ITEsbi5sZW5zRnJhbWVUaW1lTXM9ZS5sZW5zRnJhbWVUaW1lTXM/PzAsbi5sZW5zRnJhbWVUaW1lV2FybU1zPWUubGVuc0ZyYW1lVGltZVdhcm1Ncz8/MCxuLmxlbnNUcmFja2luZ1RpbWVNcz1lLmxlbnNUcmFja2luZ1RpbWVNcz8/MCxuLmxlbnNFbmdpbmVUaW1lTXM9ZS5sZW5zRW5naW5lVGltZU1zPz8wLG4ubGVuc1NjcmlwdFRpbWVNcz1lLmxlbnNTY3JpcHRUaW1lTXM/PzAsbi5sZW5zQmFkRnJhbWVzPWUubGVuc0JhZEZyYW1lcz8/MCxuLmxlbnNGaXJzdEZyYW1lTXM9ZS5sZW5zRmlyc3RGcmFtZU1zPz8wLG4ubGVuc1N0YXJ0RnJhbWVSYXRpbz1lLmxlbnNTdGFydEZyYW1lUmF0aW8/PzAsbi5sZW5zTG9hZFRpbWVNcz1lLmxlbnNMb2FkVGltZU1zPz8wLG4ubGVuc1VubG9hZFRpbWVNcz1lLmxlbnNVbmxvYWRUaW1lTXM/PzAsbi5sZW5zU3RkRnJhbWVUaW1lTXM9ZS5sZW5zU3RkRnJhbWVUaW1lTXM/PzAsbi5sZW5zU3RkRnJhbWVUaW1lV2FybU1zPWUubGVuc1N0ZEZyYW1lVGltZVdhcm1Ncz8/MCxuLmxlbnNHcHVUaW1lTXM9ZS5sZW5zR3B1VGltZU1zPz8wLG4ubGVuc0dwdVRpbWVXYXJtTXM9ZS5sZW5zR3B1VGltZVdhcm1Ncz8/MCxuLmxlbnNGcHM9ZS5sZW5zRnBzPz8wLG4ubGVuc0Zwc1dhcm09ZS5sZW5zRnBzV2FybT8/MCxuLmxlbnNMb2FkVGltZUFuZEZpdmVGcmFtZXNNcz1lLmxlbnNMb2FkVGltZUFuZEZpdmVGcmFtZXNNcz8/MCxuLmxlbnNMb2FkVGltZUFuZFR3ZW50eUZyYW1lc01zPWUubGVuc0xvYWRUaW1lQW5kVHdlbnR5RnJhbWVzTXM/PzAsbn19LHQuQ2FtZXJhS2l0U2Vzc2lvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmRhaWx5U2Vzc2lvbkJ1Y2tldCYmbi51aW50MzIoMTYpLmludDMyKGUuZGFpbHlTZXNzaW9uQnVja2V0KSwhMD09PWUuaXNGaXJzdFdpdGhpbk1vbnRoJiZuLnVpbnQzMigyNCkuYm9vbChlLmlzRmlyc3RXaXRoaW5Nb250aCksXCIwXCIhPT1lLmRheSYmbi51aW50MzIoMzIpLnVpbnQ2NChlLmRheSksXCIwXCIhPT1lLm1vbnRoJiZuLnVpbnQzMig0MCkudWludDY0KGUubW9udGgpLFwiMFwiIT09ZS55ZWFyJiZuLnVpbnQzMig0OCkudWludDY0KGUueWVhciksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW1lcmFLaXRFdmVudEJhc2U6dm9pZCAwLGRhaWx5U2Vzc2lvbkJ1Y2tldDowLGlzRmlyc3RXaXRoaW5Nb250aDohMSxkYXk6XCIwXCIsbW9udGg6XCIwXCIseWVhcjpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FtZXJhS2l0RXZlbnRCYXNlPXQuQ2FtZXJhS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmRhaWx5U2Vzc2lvbkJ1Y2tldD1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEuaXNGaXJzdFdpdGhpbk1vbnRoPXIuYm9vbCgpO2JyZWFrO2Nhc2UgNDphLmRheT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNTphLm1vbnRoPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA2OmEueWVhcj1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxkYWlseVNlc3Npb25CdWNrZXQ6MCxpc0ZpcnN0V2l0aGluTW9udGg6ITEsZGF5OlwiMFwiLG1vbnRoOlwiMFwiLHllYXI6XCIwXCJ9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5kYWlseVNlc3Npb25CdWNrZXQ9ZS5kYWlseVNlc3Npb25CdWNrZXQ/PzAsbi5pc0ZpcnN0V2l0aGluTW9udGg9ZS5pc0ZpcnN0V2l0aGluTW9udGg/PyExLG4uZGF5PWUuZGF5Pz9cIjBcIixuLm1vbnRoPWUubW9udGg/P1wiMFwiLG4ueWVhcj1lLnllYXI/P1wiMFwiLG59fSx0LkNhbWVyYUtpdFNuYXBDcmVhdGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW1lcmFLaXRFdmVudEJhc2UmJnQuQ2FtZXJhS2l0RXZlbnRCYXNlLmVuY29kZShlLmNhbWVyYUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5sZW5zSWQpLDAhPT1lLmNhbWVyYSYmbi51aW50MzIoMjQpLmludDMyKGUuY2FtZXJhKSwwIT09ZS5tZWRpYVR5cGUmJm4udWludDMyKDMyKS5pbnQzMihlLm1lZGlhVHlwZSksMCE9PWUucmVjb3JkaW5nVGltZVNlYyYmbi51aW50MzIoNDEpLmRvdWJsZShlLnJlY29yZGluZ1RpbWVTZWMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxsZW5zSWQ6XCJcIixjYW1lcmE6MCxtZWRpYVR5cGU6MCxyZWNvcmRpbmdUaW1lU2VjOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5jYW1lcmE9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLm1lZGlhVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEucmVjb3JkaW5nVGltZVNlYz1yLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxsZW5zSWQ6XCJcIixjYW1lcmE6MCxtZWRpYVR5cGU6MCxyZWNvcmRpbmdUaW1lU2VjOjB9O3JldHVybiBuLmNhbWVyYUtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlP3QuQ2FtZXJhS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5sZW5zSWQ9ZS5sZW5zSWQ/P1wiXCIsbi5jYW1lcmE9ZS5jYW1lcmE/PzAsbi5tZWRpYVR5cGU9ZS5tZWRpYVR5cGU/PzAsbi5yZWNvcmRpbmdUaW1lU2VjPWUucmVjb3JkaW5nVGltZVNlYz8/MCxufX0sdC5DYW1lcmFLaXRXZWJCZW5jaG1hcmtDb21wbGV0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmJlbmNobWFya05hbWUmJm4udWludDMyKDE4KS5zdHJpbmcoZS5iZW5jaG1hcmtOYW1lKSwwIT09ZS5iZW5jaG1hcmtWYWx1ZSYmbi51aW50MzIoMjUpLmRvdWJsZShlLmJlbmNobWFya1ZhbHVlKSxcIjBcIiE9PWUucGVyZm9ybWFuY2VDbHVzdGVyJiZuLnVpbnQzMigzMikudWludDY0KGUucGVyZm9ybWFuY2VDbHVzdGVyKSxcIlwiIT09ZS53ZWJnbFJlbmRlcmVySW5mbyYmbi51aW50MzIoNDIpLnN0cmluZyhlLndlYmdsUmVuZGVyZXJJbmZvKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAsYmVuY2htYXJrTmFtZTpcIlwiLGJlbmNobWFya1ZhbHVlOjAscGVyZm9ybWFuY2VDbHVzdGVyOlwiMFwiLHdlYmdsUmVuZGVyZXJJbmZvOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbWVyYUtpdEV2ZW50QmFzZT10LkNhbWVyYUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5iZW5jaG1hcmtOYW1lPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuYmVuY2htYXJrVmFsdWU9ci5kb3VibGUoKTticmVhaztjYXNlIDQ6YS5wZXJmb3JtYW5jZUNsdXN0ZXI9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6YS53ZWJnbFJlbmRlcmVySW5mbz1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0RXZlbnRCYXNlOnZvaWQgMCxiZW5jaG1hcmtOYW1lOlwiXCIsYmVuY2htYXJrVmFsdWU6MCxwZXJmb3JtYW5jZUNsdXN0ZXI6XCIwXCIsd2ViZ2xSZW5kZXJlckluZm86XCJcIn07cmV0dXJuIG4uY2FtZXJhS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRFdmVudEJhc2U/dC5DYW1lcmFLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLmJlbmNobWFya05hbWU9ZS5iZW5jaG1hcmtOYW1lPz9cIlwiLG4uYmVuY2htYXJrVmFsdWU9ZS5iZW5jaG1hcmtWYWx1ZT8/MCxuLnBlcmZvcm1hbmNlQ2x1c3Rlcj1lLnBlcmZvcm1hbmNlQ2x1c3Rlcj8/XCIwXCIsbi53ZWJnbFJlbmRlcmVySW5mbz1lLndlYmdsUmVuZGVyZXJJbmZvPz9cIlwiLG59fSx0LkNhbWVyYUtpdFdlYkxlbnNTd2lwZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS5wZXJmb3JtYW5jZUNsdXN0ZXImJm4udWludDMyKDE2KS51aW50NjQoZS5wZXJmb3JtYW5jZUNsdXN0ZXIpLFwiXCIhPT1lLndlYmdsUmVuZGVyZXJJbmZvJiZuLnVpbnQzMigyNikuc3RyaW5nKGUud2ViZ2xSZW5kZXJlckluZm8pLFwiXCIhPT1lLmxlbnNJZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLmxlbnNJZCksMCE9PWUubGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc0F2ZyYmbi51aW50MzIoNDEpLmRvdWJsZShlLmxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNBdmcpLDAhPT1lLmxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNTdGQmJm4udWludDMyKDQ5KS5kb3VibGUoZS5sZW5zRnJhbWVQcm9jZXNzaW5nVGltZU1zU3RkKSwwIT09ZS52aWV3VGltZVNlYyYmbi51aW50MzIoNTcpLmRvdWJsZShlLnZpZXdUaW1lU2VjKSwwIT09ZS5yZWNvcmRpbmdUaW1lU2VjJiZuLnVpbnQzMig2NSkuZG91YmxlKGUucmVjb3JkaW5nVGltZVNlYyksMCE9PWUuYXBwbHlEZWxheVNlYyYmbi51aW50MzIoNzMpLmRvdWJsZShlLmFwcGx5RGVsYXlTZWMpLDAhPT1lLmF2Z0ZwcyYmbi51aW50MzIoODEpLmRvdWJsZShlLmF2Z0ZwcyksITA9PT1lLmlzTGVuc0ZpcnN0V2l0aGluRGF5JiZuLnVpbnQzMig4OCkuYm9vbChlLmlzTGVuc0ZpcnN0V2l0aGluRGF5KSwhMD09PWUuaXNMZW5zRmlyc3RXaXRoaW5Nb250aCYmbi51aW50MzIoOTYpLmJvb2woZS5pc0xlbnNGaXJzdFdpdGhpbk1vbnRoKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAscGVyZm9ybWFuY2VDbHVzdGVyOlwiMFwiLHdlYmdsUmVuZGVyZXJJbmZvOlwiXCIsbGVuc0lkOlwiXCIsbGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc0F2ZzowLGxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNTdGQ6MCx2aWV3VGltZVNlYzowLHJlY29yZGluZ1RpbWVTZWM6MCxhcHBseURlbGF5U2VjOjAsYXZnRnBzOjAsaXNMZW5zRmlyc3RXaXRoaW5EYXk6ITEsaXNMZW5zRmlyc3RXaXRoaW5Nb250aDohMX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FtZXJhS2l0RXZlbnRCYXNlPXQuQ2FtZXJhS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnBlcmZvcm1hbmNlQ2x1c3Rlcj1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLndlYmdsUmVuZGVyZXJJbmZvPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEubGVuc0lkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEubGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc0F2Zz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNjphLmxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNTdGQ9ci5kb3VibGUoKTticmVhaztjYXNlIDc6YS52aWV3VGltZVNlYz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgODphLnJlY29yZGluZ1RpbWVTZWM9ci5kb3VibGUoKTticmVhaztjYXNlIDk6YS5hcHBseURlbGF5U2VjPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAxMDphLmF2Z0Zwcz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTE6YS5pc0xlbnNGaXJzdFdpdGhpbkRheT1yLmJvb2woKTticmVhaztjYXNlIDEyOmEuaXNMZW5zRmlyc3RXaXRoaW5Nb250aD1yLmJvb2woKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbWVyYUtpdEV2ZW50QmFzZTp2b2lkIDAscGVyZm9ybWFuY2VDbHVzdGVyOlwiMFwiLHdlYmdsUmVuZGVyZXJJbmZvOlwiXCIsbGVuc0lkOlwiXCIsbGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc0F2ZzowLGxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNTdGQ6MCx2aWV3VGltZVNlYzowLHJlY29yZGluZ1RpbWVTZWM6MCxhcHBseURlbGF5U2VjOjAsYXZnRnBzOjAsaXNMZW5zRmlyc3RXaXRoaW5EYXk6ITEsaXNMZW5zRmlyc3RXaXRoaW5Nb250aDohMX07cmV0dXJuIG4uY2FtZXJhS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FtZXJhS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5jYW1lcmFLaXRFdmVudEJhc2U/dC5DYW1lcmFLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW1lcmFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnBlcmZvcm1hbmNlQ2x1c3Rlcj1lLnBlcmZvcm1hbmNlQ2x1c3Rlcj8/XCIwXCIsbi53ZWJnbFJlbmRlcmVySW5mbz1lLndlYmdsUmVuZGVyZXJJbmZvPz9cIlwiLG4ubGVuc0lkPWUubGVuc0lkPz9cIlwiLG4ubGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc0F2Zz1lLmxlbnNGcmFtZVByb2Nlc3NpbmdUaW1lTXNBdmc/PzAsbi5sZW5zRnJhbWVQcm9jZXNzaW5nVGltZU1zU3RkPWUubGVuc0ZyYW1lUHJvY2Vzc2luZ1RpbWVNc1N0ZD8/MCxuLnZpZXdUaW1lU2VjPWUudmlld1RpbWVTZWM/PzAsbi5yZWNvcmRpbmdUaW1lU2VjPWUucmVjb3JkaW5nVGltZVNlYz8/MCxuLmFwcGx5RGVsYXlTZWM9ZS5hcHBseURlbGF5U2VjPz8wLG4uYXZnRnBzPWUuYXZnRnBzPz8wLG4uaXNMZW5zRmlyc3RXaXRoaW5EYXk9ZS5pc0xlbnNGaXJzdFdpdGhpbkRheT8/ITEsbi5pc0xlbnNGaXJzdFdpdGhpbk1vbnRoPWUuaXNMZW5zRmlyc3RXaXRoaW5Nb250aD8/ITEsbn19LHQuQ2FtcGFpZ25QdXNoTm90aWZpY2F0aW9uRGlzcGxheT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZW5jb2RlKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnB1c2hOb3RpZmljYXRpb25FdmVudD10LlB1c2hOb3RpZmljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07cmV0dXJuIG4ucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZudWxsIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ/dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQpOnZvaWQgMCxufX0sdC5DYW1wYWlnblB1c2hOb3RpZmljYXRpb25GYWlsdXJlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LkNhbXBhaWduUHVzaE5vdGlmaWNhdGlvblJlY2VpdmVkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LkNhbXBhaWduUHVzaE5vdGlmaWNhdGlvblJlY2VpdmVkSW5FeHRlbnNpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJnQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmVuY29kZShlLnB1c2hOb3RpZmljYXRpb25FdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3B1c2hOb3RpZmljYXRpb25FdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3B1c2hOb3RpZmljYXRpb25FdmVudDp2b2lkIDB9O3JldHVybiBuLnB1c2hOb3RpZmljYXRpb25FdmVudD12b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmbnVsbCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50P3QuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmZyb21QYXJ0aWFsKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50KTp2b2lkIDAsbn19LHQuQ2FtcGFpZ25QdXNoTm90aWZpY2F0aW9uU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZW5jb2RlKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnB1c2hOb3RpZmljYXRpb25FdmVudD10LlB1c2hOb3RpZmljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07cmV0dXJuIG4ucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZudWxsIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ/dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQpOnZvaWQgMCxufX0sdC5DYW52YXNBcGlBZ2VHYXRlUXVlcnk9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW52YXNBcGlFdmVudEJhc2UmJnQuQ2FudmFzQXBpRXZlbnRCYXNlLmVuY29kZShlLmNhbnZhc0FwaUV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5jYW52YXNBcGlRdWVyeVJlc3BvbnNlJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuY2FudmFzQXBpUXVlcnlSZXNwb25zZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW52YXNBcGlFdmVudEJhc2U6dm9pZCAwLGNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2U6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2FudmFzQXBpRXZlbnRCYXNlPXQuQ2FudmFzQXBpRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2U9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbnZhc0FwaUV2ZW50QmFzZTp2b2lkIDAsY2FudmFzQXBpUXVlcnlSZXNwb25zZTpcIlwifTtyZXR1cm4gbi5jYW52YXNBcGlFdmVudEJhc2U9dm9pZCAwIT09ZS5jYW52YXNBcGlFdmVudEJhc2UmJm51bGwhPT1lLmNhbnZhc0FwaUV2ZW50QmFzZT90LkNhbnZhc0FwaUV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNhbnZhc0FwaUV2ZW50QmFzZSk6dm9pZCAwLG4uY2FudmFzQXBpUXVlcnlSZXNwb25zZT1lLmNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2U/P1wiXCIsbn19LHQuQ2FudmFzQXBpQmFzaWNEYXRhUXVlcnk9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW52YXNBcGlFdmVudEJhc2UmJnQuQ2FudmFzQXBpRXZlbnRCYXNlLmVuY29kZShlLmNhbnZhc0FwaUV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbnZhc0FwaUV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jYW52YXNBcGlFdmVudEJhc2U9dC5DYW52YXNBcGlFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbnZhc0FwaUV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmNhbnZhc0FwaUV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbnZhc0FwaUV2ZW50QmFzZSYmbnVsbCE9PWUuY2FudmFzQXBpRXZlbnRCYXNlP3QuQ2FudmFzQXBpRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FudmFzQXBpRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQ2FudmFzQXBpQ29ubmVjdGlvbkFwaVF1ZXJ5PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FudmFzQXBpRXZlbnRCYXNlJiZ0LkNhbnZhc0FwaUV2ZW50QmFzZS5lbmNvZGUoZS5jYW52YXNBcGlFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuY2FudmFzQXBpUXVlcnlSZXNwb25zZSYmbi51aW50MzIoMTgpLnN0cmluZyhlLmNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2UpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FudmFzQXBpRXZlbnRCYXNlOnZvaWQgMCxjYW52YXNBcGlRdWVyeVJlc3BvbnNlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbnZhc0FwaUV2ZW50QmFzZT10LkNhbnZhc0FwaUV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5jYW52YXNBcGlRdWVyeVJlc3BvbnNlPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW52YXNBcGlFdmVudEJhc2U6dm9pZCAwLGNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2U6XCJcIn07cmV0dXJuIG4uY2FudmFzQXBpRXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FudmFzQXBpRXZlbnRCYXNlJiZudWxsIT09ZS5jYW52YXNBcGlFdmVudEJhc2U/dC5DYW52YXNBcGlFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW52YXNBcGlFdmVudEJhc2UpOnZvaWQgMCxuLmNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2U9ZS5jYW52YXNBcGlRdWVyeVJlc3BvbnNlPz9cIlwiLG59fSx0LkNhbnZhc0FwaURpc2NvdmVyYWJsZUFwaVF1ZXJ5PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FudmFzQXBpRXZlbnRCYXNlJiZ0LkNhbnZhc0FwaUV2ZW50QmFzZS5lbmNvZGUoZS5jYW52YXNBcGlFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuY2FudmFzQXBpUXVlcnlSZXNwb25zZSYmbi51aW50MzIoMTgpLnN0cmluZyhlLmNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2UpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2FudmFzQXBpRXZlbnRCYXNlOnZvaWQgMCxjYW52YXNBcGlRdWVyeVJlc3BvbnNlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhbnZhc0FwaUV2ZW50QmFzZT10LkNhbnZhc0FwaUV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5jYW52YXNBcGlRdWVyeVJlc3BvbnNlPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW52YXNBcGlFdmVudEJhc2U6dm9pZCAwLGNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2U6XCJcIn07cmV0dXJuIG4uY2FudmFzQXBpRXZlbnRCYXNlPXZvaWQgMCE9PWUuY2FudmFzQXBpRXZlbnRCYXNlJiZudWxsIT09ZS5jYW52YXNBcGlFdmVudEJhc2U/dC5DYW52YXNBcGlFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jYW52YXNBcGlFdmVudEJhc2UpOnZvaWQgMCxuLmNhbnZhc0FwaVF1ZXJ5UmVzcG9uc2U9ZS5jYW52YXNBcGlRdWVyeVJlc3BvbnNlPz9cIlwiLG59fSx0LkNhbnZhc0FwaVByaXZhdGVDb21wb25lbnRzQXBpUXVlcnk9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jYW52YXNBcGlFdmVudEJhc2UmJnQuQ2FudmFzQXBpRXZlbnRCYXNlLmVuY29kZShlLmNhbnZhc0FwaUV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbnZhc0FwaUV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jYW52YXNBcGlFdmVudEJhc2U9dC5DYW52YXNBcGlFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NhbnZhc0FwaUV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmNhbnZhc0FwaUV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbnZhc0FwaUV2ZW50QmFzZSYmbnVsbCE9PWUuY2FudmFzQXBpRXZlbnRCYXNlP3QuQ2FudmFzQXBpRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FudmFzQXBpRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQ2FudmFzQXBpU3RpY2tlcktpdFF1ZXJ5PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2FudmFzQXBpRXZlbnRCYXNlJiZ0LkNhbnZhc0FwaUV2ZW50QmFzZS5lbmNvZGUoZS5jYW52YXNBcGlFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYW52YXNBcGlFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuY2FudmFzQXBpRXZlbnRCYXNlPXQuQ2FudmFzQXBpRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYW52YXNBcGlFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5jYW52YXNBcGlFdmVudEJhc2U9dm9pZCAwIT09ZS5jYW52YXNBcGlFdmVudEJhc2UmJm51bGwhPT1lLmNhbnZhc0FwaUV2ZW50QmFzZT90LkNhbnZhc0FwaUV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNhbnZhc0FwaUV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkNhcm91c2VsTGVucz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5uYW1lc3BhY2VJZCYmdC51aW50MzIoMTgpLnN0cmluZyhlLm5hbWVzcGFjZUlkKSxcIjBcIiE9PWUucG9zaXRpb24mJnQudWludDMyKDI0KS51aW50NjQoZS5wb3NpdGlvbiksXCJcIiE9PWUubGVuc0lkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUubGVuc0lkKSxcIlwiIT09ZS5hZElkJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuYWRJZCksXCJcIiE9PWUuc2VydmVJdGVtSWQmJnQudWludDMyKDUwKS5zdHJpbmcoZS5zZXJ2ZUl0ZW1JZCksMCE9PWUuc3BvbnNvcmVkVHlwZSYmdC51aW50MzIoNTYpLmludDMyKGUuc3BvbnNvcmVkVHlwZSksXCJcIiE9PWUubWl4ZXJSZXNwb25zZUlkJiZ0LnVpbnQzMig2Nikuc3RyaW5nKGUubWl4ZXJSZXNwb25zZUlkKSx0KSxkZWNvZGUoZSx0KXtjb25zdCBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0O2NvbnN0IGk9e25hbWVzcGFjZUlkOlwiXCIscG9zaXRpb246XCIwXCIsbGVuc0lkOlwiXCIsYWRJZDpcIlwiLHNlcnZlSXRlbUlkOlwiXCIsc3BvbnNvcmVkVHlwZTowLG1peGVyUmVzcG9uc2VJZDpcIlwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDI6aS5uYW1lc3BhY2VJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnBvc2l0aW9uPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA0OmkubGVuc0lkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuYWRJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLnNlcnZlSXRlbUlkPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3Omkuc3BvbnNvcmVkVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA4OmkubWl4ZXJSZXNwb25zZUlkPW4uc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtuYW1lc3BhY2VJZDpcIlwiLHBvc2l0aW9uOlwiMFwiLGxlbnNJZDpcIlwiLGFkSWQ6XCJcIixzZXJ2ZUl0ZW1JZDpcIlwiLHNwb25zb3JlZFR5cGU6MCxtaXhlclJlc3BvbnNlSWQ6XCJcIn07cmV0dXJuIHQubmFtZXNwYWNlSWQ9ZS5uYW1lc3BhY2VJZD8/XCJcIix0LnBvc2l0aW9uPWUucG9zaXRpb24/P1wiMFwiLHQubGVuc0lkPWUubGVuc0lkPz9cIlwiLHQuYWRJZD1lLmFkSWQ/P1wiXCIsdC5zZXJ2ZUl0ZW1JZD1lLnNlcnZlSXRlbUlkPz9cIlwiLHQuc3BvbnNvcmVkVHlwZT1lLnNwb25zb3JlZFR5cGU/PzAsdC5taXhlclJlc3BvbnNlSWQ9ZS5taXhlclJlc3BvbnNlSWQ/P1wiXCIsdH19LHQuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhdGVnb3J5TWluaUV2ZW50JiZ0LkNhdGVnb3J5TWluaUV2ZW50LmVuY29kZShlLmNhdGVnb3J5TWluaUV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmV2ZW50TGFiZWwmJm4udWludDMyKDE4KS5zdHJpbmcoZS5ldmVudExhYmVsKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhdGVnb3J5TWluaUV2ZW50OnZvaWQgMCxldmVudExhYmVsOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNhdGVnb3J5TWluaUV2ZW50PXQuQ2F0ZWdvcnlNaW5pRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZXZlbnRMYWJlbD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2F0ZWdvcnlNaW5pRXZlbnQ6dm9pZCAwLGV2ZW50TGFiZWw6XCJcIn07cmV0dXJuIG4uY2F0ZWdvcnlNaW5pRXZlbnQ9dm9pZCAwIT09ZS5jYXRlZ29yeU1pbmlFdmVudCYmbnVsbCE9PWUuY2F0ZWdvcnlNaW5pRXZlbnQ/dC5DYXRlZ29yeU1pbmlFdmVudC5mcm9tUGFydGlhbChlLmNhdGVnb3J5TWluaUV2ZW50KTp2b2lkIDAsbi5ldmVudExhYmVsPWUuZXZlbnRMYWJlbD8/XCJcIixufX0sdC5DYXRlZ29yeU1pbmlFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLm1pbmlTZXJ2ZXJFdmVudEJhc2UmJnQuTWluaVNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS5taW5pU2VydmVyRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmV2ZW50Q2F0ZWdvcnkmJm4udWludDMyKDE4KS5zdHJpbmcoZS5ldmVudENhdGVnb3J5KSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e21pbmlTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLGV2ZW50Q2F0ZWdvcnk6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubWluaVNlcnZlckV2ZW50QmFzZT10Lk1pbmlTZXJ2ZXJFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZXZlbnRDYXRlZ29yeT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bWluaVNlcnZlckV2ZW50QmFzZTp2b2lkIDAsZXZlbnRDYXRlZ29yeTpcIlwifTtyZXR1cm4gbi5taW5pU2VydmVyRXZlbnRCYXNlPXZvaWQgMCE9PWUubWluaVNlcnZlckV2ZW50QmFzZSYmbnVsbCE9PWUubWluaVNlcnZlckV2ZW50QmFzZT90Lk1pbmlTZXJ2ZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5taW5pU2VydmVyRXZlbnRCYXNlKTp2b2lkIDAsbi5ldmVudENhdGVnb3J5PWUuZXZlbnRDYXRlZ29yeT8/XCJcIixufX0sdC5DaGVlcmlvc0NhcHR1cmVFcnJvcj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm1lc3NhZ2UmJm4udWludDMyKDE4KS5zdHJpbmcoZS5tZXNzYWdlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxtZXNzYWdlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubWVzc2FnZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLG1lc3NhZ2U6XCJcIn07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbi5tZXNzYWdlPWUubWVzc2FnZT8/XCJcIixufX0sdC5DaGVlcmlvc0NhcHR1cmVTdGFydD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmNvbnRlbnRJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmNvbnRlbnRJZCksXCJcIiE9PWUubWVkaWFUeXBlJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubWVkaWFUeXBlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxjb250ZW50SWQ6XCJcIixtZWRpYVR5cGU6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5jb250ZW50SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5tZWRpYVR5cGU9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxjb250ZW50SWQ6XCJcIixtZWRpYVR5cGU6XCJcIn07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbi5jb250ZW50SWQ9ZS5jb250ZW50SWQ/P1wiXCIsbi5tZWRpYVR5cGU9ZS5tZWRpYVR5cGU/P1wiXCIsbn19LHQuQ2hlZXJpb3NDYXB0dXJlU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmNvbnRlbnRJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmNvbnRlbnRJZCksXCJcIiE9PWUubWVkaWFUeXBlJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubWVkaWFUeXBlKSxcIjBcIiE9PWUubWVkaWFEdXJhdGlvbk1zJiZuLnVpbnQzMigzMikudWludDY0KGUubWVkaWFEdXJhdGlvbk1zKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxjb250ZW50SWQ6XCJcIixtZWRpYVR5cGU6XCJcIixtZWRpYUR1cmF0aW9uTXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuY29udGVudElkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEubWVkaWFUeXBlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEubWVkaWFEdXJhdGlvbk1zPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsY29udGVudElkOlwiXCIsbWVkaWFUeXBlOlwiXCIsbWVkaWFEdXJhdGlvbk1zOlwiMFwifTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLmNvbnRlbnRJZD1lLmNvbnRlbnRJZD8/XCJcIixuLm1lZGlhVHlwZT1lLm1lZGlhVHlwZT8/XCJcIixuLm1lZGlhRHVyYXRpb25Ncz1lLm1lZGlhRHVyYXRpb25Ncz8/XCIwXCIsbn19LHQuQ2hlZXJpb3NEZXZpY2VCb290PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLmRldmljZUJhdHRlcnkmJm4udWludDMyKDE2KS51aW50NjQoZS5kZXZpY2VCYXR0ZXJ5KSwwIT09ZS5kaWFsUG9zaXRpb24mJm4udWludDMyKDI0KS5pbnQzMihlLmRpYWxQb3NpdGlvbiksXCJcIiE9PWUuc3BsaXRzJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUuc3BsaXRzKSxcIjBcIiE9PWUudG90YWxMYXRlbmN5TXMmJm4udWludDMyKDQwKS51aW50NjQoZS50b3RhbExhdGVuY3lNcyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsZGV2aWNlQmF0dGVyeTpcIjBcIixkaWFsUG9zaXRpb246MCxzcGxpdHM6XCJcIix0b3RhbExhdGVuY3lNczpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5kZXZpY2VCYXR0ZXJ5PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmEuZGlhbFBvc2l0aW9uPXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5zcGxpdHM9ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS50b3RhbExhdGVuY3lNcz1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGRldmljZUJhdHRlcnk6XCIwXCIsZGlhbFBvc2l0aW9uOjAsc3BsaXRzOlwiXCIsdG90YWxMYXRlbmN5TXM6XCIwXCJ9O3JldHVybiBuLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4uZGV2aWNlQmF0dGVyeT1lLmRldmljZUJhdHRlcnk/P1wiMFwiLG4uZGlhbFBvc2l0aW9uPWUuZGlhbFBvc2l0aW9uPz8wLG4uc3BsaXRzPWUuc3BsaXRzPz9cIlwiLG4udG90YWxMYXRlbmN5TXM9ZS50b3RhbExhdGVuY3lNcz8/XCIwXCIsbn19LHQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCYmdC5DaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudC5lbmNvZGUoZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5mbGlnaHRTZXNzaW9uSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5mbGlnaHRTZXNzaW9uSWQpLDAhPT1lLmZsaWdodE1vZGUmJm4udWludDMyKDI0KS5pbnQzMihlLmZsaWdodE1vZGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGZsaWdodFNlc3Npb25JZDpcIlwiLGZsaWdodE1vZGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mbGlnaHRTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5mbGlnaHRNb2RlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zQmFzZVNlcnZlckV2ZW50OnZvaWQgMCxmbGlnaHRTZXNzaW9uSWQ6XCJcIixmbGlnaHRNb2RlOjB9O3JldHVybiBuLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4uZmxpZ2h0U2Vzc2lvbklkPWUuZmxpZ2h0U2Vzc2lvbklkPz9cIlwiLG4uZmxpZ2h0TW9kZT1lLmZsaWdodE1vZGU/PzAsbn19LHQuQ2hlZXJpb3NGbGlnaHRDb2xsaXNpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmdC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5lbmNvZGUoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbn19LHQuQ2hlZXJpb3NGbGlnaHRDb21wbGV0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS5iYXR0ZXJ5VXNhZ2UmJm4udWludDMyKDE2KS51aW50NjQoZS5iYXR0ZXJ5VXNhZ2UpLFwiMFwiIT09ZS5kZXZpY2VCYXR0ZXJ5JiZuLnVpbnQzMigyNCkudWludDY0KGUuZGV2aWNlQmF0dGVyeSksMCE9PWUuY29tcGxldGlvblJlYXNvbiYmbi51aW50MzIoMzIpLmludDMyKGUuY29tcGxldGlvblJlYXNvbiksXCIwXCIhPT1lLmZsaWdodER1cmF0aW9uJiZuLnVpbnQzMig0MCkudWludDY0KGUuZmxpZ2h0RHVyYXRpb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGJhdHRlcnlVc2FnZTpcIjBcIixkZXZpY2VCYXR0ZXJ5OlwiMFwiLGNvbXBsZXRpb25SZWFzb246MCxmbGlnaHREdXJhdGlvbjpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5iYXR0ZXJ5VXNhZ2U9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6YS5kZXZpY2VCYXR0ZXJ5PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA0OmEuY29tcGxldGlvblJlYXNvbj1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEuZmxpZ2h0RHVyYXRpb249cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxiYXR0ZXJ5VXNhZ2U6XCIwXCIsZGV2aWNlQmF0dGVyeTpcIjBcIixjb21wbGV0aW9uUmVhc29uOjAsZmxpZ2h0RHVyYXRpb246XCIwXCJ9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4uYmF0dGVyeVVzYWdlPWUuYmF0dGVyeVVzYWdlPz9cIjBcIixuLmRldmljZUJhdHRlcnk9ZS5kZXZpY2VCYXR0ZXJ5Pz9cIjBcIixuLmNvbXBsZXRpb25SZWFzb249ZS5jb21wbGV0aW9uUmVhc29uPz8wLG4uZmxpZ2h0RHVyYXRpb249ZS5mbGlnaHREdXJhdGlvbj8/XCIwXCIsbn19LHQuQ2hlZXJpb3NGbGlnaHRFcnJvcj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm1lc3NhZ2UmJm4udWludDMyKDE4KS5zdHJpbmcoZS5tZXNzYWdlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxtZXNzYWdlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubWVzc2FnZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLG1lc3NhZ2U6XCJcIn07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbi5tZXNzYWdlPWUubWVzc2FnZT8/XCJcIixufX0sdC5DaGVlcmlvc0ZsaWdodE1vZGVTZWxlY3Rpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmdC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5lbmNvZGUoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbn19LHQuQ2hlZXJpb3NGbGlnaHRPb2M9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmdC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5lbmNvZGUoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbn19LHQuQ2hlZXJpb3NGbGlnaHRQYXRoRW5kPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG59fSx0LkNoZWVyaW9zRmxpZ2h0UGF0aFJlc3Q9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmdC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5lbmNvZGUoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUuZHVyYXRpb25NcyYmbi51aW50MzIoMTYpLnVpbnQ2NChlLmR1cmF0aW9uTXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGR1cmF0aW9uTXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZHVyYXRpb25Ncz1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGR1cmF0aW9uTXM6XCIwXCJ9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4uZHVyYXRpb25Ncz1lLmR1cmF0aW9uTXM/P1wiMFwiLG59fSx0LkNoZWVyaW9zRmxpZ2h0UGF0aFN0YXJ0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG59fSx0LkNoZWVyaW9zRmxpZ2h0UmV0dXJuPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG59fSx0LkNoZWVyaW9zRmxpZ2h0U3RhcnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmdC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5lbmNvZGUoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMH07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbn19LHQuQ2hlZXJpb3NGbGlnaHRXYXJuaW5nPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUubWVzc2FnZSYmbi51aW50MzIoMTgpLnN0cmluZyhlLm1lc3NhZ2UpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLG1lc3NhZ2U6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5tZXNzYWdlPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsbWVzc2FnZTpcIlwifTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLm1lc3NhZ2U9ZS5tZXNzYWdlPz9cIlwiLG59fSx0LkNoZWVyaW9zRndDcmFzaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmNyYXNoSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5jcmFzaElkKSxcIlwiIT09ZS5jcmFzaERldGFpbCYmbi51aW50MzIoMjYpLnN0cmluZyhlLmNyYXNoRGV0YWlsKSxcIlwiIT09ZS5jcmFzaERlYnVnSW5mbyYmbi51aW50MzIoMzQpLnN0cmluZyhlLmNyYXNoRGVidWdJbmZvKSxcIlwiIT09ZS5jcmFzaFR5cGUmJm4udWludDMyKDQyKS5zdHJpbmcoZS5jcmFzaFR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGNyYXNoSWQ6XCJcIixjcmFzaERldGFpbDpcIlwiLGNyYXNoRGVidWdJbmZvOlwiXCIsY3Jhc2hUeXBlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuY3Jhc2hJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmNyYXNoRGV0YWlsPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuY3Jhc2hEZWJ1Z0luZm89ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS5jcmFzaFR5cGU9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxjcmFzaElkOlwiXCIsY3Jhc2hEZXRhaWw6XCJcIixjcmFzaERlYnVnSW5mbzpcIlwiLGNyYXNoVHlwZTpcIlwifTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLmNyYXNoSWQ9ZS5jcmFzaElkPz9cIlwiLG4uY3Jhc2hEZXRhaWw9ZS5jcmFzaERldGFpbD8/XCJcIixuLmNyYXNoRGVidWdJbmZvPWUuY3Jhc2hEZWJ1Z0luZm8/P1wiXCIsbi5jcmFzaFR5cGU9ZS5jcmFzaFR5cGU/P1wiXCIsbn19LHQuQ2hlZXJpb3NGd1VwZGF0ZUVycm9yPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUudGFyZ2V0RndWZXJzaW9uJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUudGFyZ2V0RndWZXJzaW9uKSxcIlwiIT09ZS51cGRhdGVUeXBlJiZuLnVpbnQzMigyNikuc3RyaW5nKGUudXBkYXRlVHlwZSksXCJcIiE9PWUubWVzc2FnZSYmbi51aW50MzIoMzQpLnN0cmluZyhlLm1lc3NhZ2UpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLHRhcmdldEZ3VmVyc2lvbjpcIlwiLHVwZGF0ZVR5cGU6XCJcIixtZXNzYWdlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudGFyZ2V0RndWZXJzaW9uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEudXBkYXRlVHlwZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLm1lc3NhZ2U9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zQmFzZVNlcnZlckV2ZW50OnZvaWQgMCx0YXJnZXRGd1ZlcnNpb246XCJcIix1cGRhdGVUeXBlOlwiXCIsbWVzc2FnZTpcIlwifTtyZXR1cm4gbi5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zQmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLnRhcmdldEZ3VmVyc2lvbj1lLnRhcmdldEZ3VmVyc2lvbj8/XCJcIixuLnVwZGF0ZVR5cGU9ZS51cGRhdGVUeXBlPz9cIlwiLG4ubWVzc2FnZT1lLm1lc3NhZ2U/P1wiXCIsbn19LHQuQ2hlZXJpb3NGd1VwZGF0ZVN0YXJ0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUudGFyZ2V0RndWZXJzaW9uJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUudGFyZ2V0RndWZXJzaW9uKSxcIlwiIT09ZS51cGRhdGVUeXBlJiZuLnVpbnQzMigyNikuc3RyaW5nKGUudXBkYXRlVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsdGFyZ2V0RndWZXJzaW9uOlwiXCIsdXBkYXRlVHlwZTpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zQmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnRhcmdldEZ3VmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnVwZGF0ZVR5cGU9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zQmFzZVNlcnZlckV2ZW50OnZvaWQgMCx0YXJnZXRGd1ZlcnNpb246XCJcIix1cGRhdGVUeXBlOlwiXCJ9O3JldHVybiBuLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4udGFyZ2V0RndWZXJzaW9uPWUudGFyZ2V0RndWZXJzaW9uPz9cIlwiLG4udXBkYXRlVHlwZT1lLnVwZGF0ZVR5cGU/P1wiXCIsbn19LHQuQ2hlZXJpb3NGd1VwZGF0ZVN1Y2Nlc3M9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCYmdC5DaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudC5lbmNvZGUoZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS50YXJnZXRGd1ZlcnNpb24mJm4udWludDMyKDE4KS5zdHJpbmcoZS50YXJnZXRGd1ZlcnNpb24pLFwiXCIhPT1lLnVwZGF0ZVR5cGUmJm4udWludDMyKDI2KS5zdHJpbmcoZS51cGRhdGVUeXBlKSxcIjBcIiE9PWUuZHVyYXRpb25NcyYmbi51aW50MzIoMzIpLnVpbnQ2NChlLmR1cmF0aW9uTXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLHRhcmdldEZ3VmVyc2lvbjpcIlwiLHVwZGF0ZVR5cGU6XCJcIixkdXJhdGlvbk1zOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zQmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnRhcmdldEZ3VmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnVwZGF0ZVR5cGU9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5kdXJhdGlvbk1zPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsdGFyZ2V0RndWZXJzaW9uOlwiXCIsdXBkYXRlVHlwZTpcIlwiLGR1cmF0aW9uTXM6XCIwXCJ9O3JldHVybiBuLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zQmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0Jhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4udGFyZ2V0RndWZXJzaW9uPWUudGFyZ2V0RndWZXJzaW9uPz9cIlwiLG4udXBkYXRlVHlwZT1lLnVwZGF0ZVR5cGU/P1wiXCIsbi5kdXJhdGlvbk1zPWUuZHVyYXRpb25Ncz8/XCIwXCIsbn19LHQuQ2hlZXJpb3NMYW5kaW5nRmFpbHVyZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmxhbmRpbmdUcmlnZ2VyJiZuLnVpbnQzMigxNikuaW50MzIoZS5sYW5kaW5nVHJpZ2dlciksXCJcIiE9PWUuZmFpbHVyZVJlYXNvbiYmbi51aW50MzIoMjYpLnN0cmluZyhlLmZhaWx1cmVSZWFzb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGxhbmRpbmdUcmlnZ2VyOjAsZmFpbHVyZVJlYXNvbjpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmxhbmRpbmdUcmlnZ2VyPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5mYWlsdXJlUmVhc29uPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsbGFuZGluZ1RyaWdnZXI6MCxmYWlsdXJlUmVhc29uOlwiXCJ9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4ubGFuZGluZ1RyaWdnZXI9ZS5sYW5kaW5nVHJpZ2dlcj8/MCxuLmZhaWx1cmVSZWFzb249ZS5mYWlsdXJlUmVhc29uPz9cIlwiLG59fSx0LkNoZWVyaW9zTGFuZGluZ1N0YXJ0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUubGFuZGluZ1RyaWdnZXImJm4udWludDMyKDE2KS5pbnQzMihlLmxhbmRpbmdUcmlnZ2VyKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxsYW5kaW5nVHJpZ2dlcjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmxhbmRpbmdUcmlnZ2VyPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxsYW5kaW5nVHJpZ2dlcjowfTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLmxhbmRpbmdUcmlnZ2VyPWUubGFuZGluZ1RyaWdnZXI/PzAsbn19LHQuQ2hlZXJpb3NMYW5kaW5nU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmxhbmRpbmdUcmlnZ2VyJiZuLnVpbnQzMigxNikuaW50MzIoZS5sYW5kaW5nVHJpZ2dlciksXCIwXCIhPT1lLmR1cmF0aW9uTXMmJm4udWludDMyKDI0KS51aW50NjQoZS5kdXJhdGlvbk1zKSxcIjBcIiE9PWUudG90YWxMYXRlbmN5TXMmJm4udWludDMyKDMyKS51aW50NjQoZS50b3RhbExhdGVuY3lNcyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsbGFuZGluZ1RyaWdnZXI6MCxkdXJhdGlvbk1zOlwiMFwiLHRvdGFsTGF0ZW5jeU1zOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmxhbmRpbmdUcmlnZ2VyPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5kdXJhdGlvbk1zPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA0OmEudG90YWxMYXRlbmN5TXM9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxsYW5kaW5nVHJpZ2dlcjowLGR1cmF0aW9uTXM6XCIwXCIsdG90YWxMYXRlbmN5TXM6XCIwXCJ9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG4ubGFuZGluZ1RyaWdnZXI9ZS5sYW5kaW5nVHJpZ2dlcj8/MCxuLmR1cmF0aW9uTXM9ZS5kdXJhdGlvbk1zPz9cIjBcIixuLnRvdGFsTGF0ZW5jeU1zPWUudG90YWxMYXRlbmN5TXM/P1wiMFwiLG59fSx0LkNoZWVyaW9zU3RhYmlsaXplRmFpbHVyZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmZhaWx1cmVSZWFzb24mJm4udWludDMyKDE4KS5zdHJpbmcoZS5mYWlsdXJlUmVhc29uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCxmYWlsdXJlUmVhc29uOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZmFpbHVyZVJlYXNvbj1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGZhaWx1cmVSZWFzb246XCJcIn07cmV0dXJuIG4uY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCYmbnVsbCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ/dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50KTp2b2lkIDAsbi5mYWlsdXJlUmVhc29uPWUuZmFpbHVyZVJlYXNvbj8/XCJcIixufX0sdC5DaGVlcmlvc1N0YWJpbGl6ZVN0YXJ0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD10LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDB9O3JldHVybiBuLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJm51bGwhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50P3QuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudCk6dm9pZCAwLG59fSx0LkNoZWVyaW9zU3RhYmlsaXplU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS50b3RhbExhdGVuY3lNcyYmbi51aW50MzIoMTYpLnVpbnQ2NChlLnRvdGFsTGF0ZW5jeU1zKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCx0b3RhbExhdGVuY3lNczpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS50b3RhbExhdGVuY3lNcz1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLHRvdGFsTGF0ZW5jeU1zOlwiMFwifTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLnRvdGFsTGF0ZW5jeU1zPWUudG90YWxMYXRlbmN5TXM/P1wiMFwiLG59fSx0LkNoZWVyaW9zU3ViamVjdExvY2tGYWlsdXJlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuZmFpbHVyZVJlYXNvbiYmbi51aW50MzIoMTgpLnN0cmluZyhlLmZhaWx1cmVSZWFzb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGZhaWx1cmVSZWFzb246XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mYWlsdXJlUmVhc29uPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsZmFpbHVyZVJlYXNvbjpcIlwifTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLmZhaWx1cmVSZWFzb249ZS5mYWlsdXJlUmVhc29uPz9cIlwiLG59fSx0LkNoZWVyaW9zU3ViamVjdExvY2tTdGFydD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxufX0sdC5DaGVlcmlvc1N1YmplY3RMb2NrU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS50b3RhbExhdGVuY3lNcyYmbi51aW50MzIoMTYpLnVpbnQ2NChlLnRvdGFsTGF0ZW5jeU1zKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50OnZvaWQgMCx0b3RhbExhdGVuY3lNczpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS50b3RhbExhdGVuY3lNcz1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLHRvdGFsTGF0ZW5jeU1zOlwiMFwifTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLnRvdGFsTGF0ZW5jeU1zPWUudG90YWxMYXRlbmN5TXM/P1wiMFwiLG59fSx0LkNoZWVyaW9zVGFrZU9mZj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZ0LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmVuY29kZShlLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxufX0sdC5DaGVlcmlvc1Rha2VPZmZGYWlsdXJlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQmJnQuQ2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQuZW5jb2RlKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuZmFpbHVyZVJlYXNvbiYmbi51aW50MzIoMTgpLnN0cmluZyhlLmZhaWx1cmVSZWFzb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ6dm9pZCAwLGZhaWx1cmVSZWFzb246XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQ9dC5DaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mYWlsdXJlUmVhc29uPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudDp2b2lkIDAsZmFpbHVyZVJlYXNvbjpcIlwifTtyZXR1cm4gbi5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLmNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50JiZudWxsIT09ZS5jaGVlcmlvc0ZsaWdodEJhc2VTZXJ2ZXJFdmVudD90LkNoZWVyaW9zRmxpZ2h0QmFzZVNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuY2hlZXJpb3NGbGlnaHRCYXNlU2VydmVyRXZlbnQpOnZvaWQgMCxuLmZhaWx1cmVSZWFzb249ZS5mYWlsdXJlUmVhc29uPz9cIlwiLG59fSx0LkNvZ25hY0ZlZWRDcmVhdGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jb2duYWNGZWVkRXZlbnRCYXNlJiZ0LkNvZ25hY0ZlZWRFdmVudEJhc2UuZW5jb2RlKGUuY29nbmFjRmVlZEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NvZ25hY0ZlZWRFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuY29nbmFjRmVlZEV2ZW50QmFzZT10LkNvZ25hY0ZlZWRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NvZ25hY0ZlZWRFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5jb2duYWNGZWVkRXZlbnRCYXNlPXZvaWQgMCE9PWUuY29nbmFjRmVlZEV2ZW50QmFzZSYmbnVsbCE9PWUuY29nbmFjRmVlZEV2ZW50QmFzZT90LkNvZ25hY0ZlZWRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jb2duYWNGZWVkRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQ29nbmFjRmVlZFJldm9rZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNvZ25hY0ZlZWRFdmVudEJhc2UmJnQuQ29nbmFjRmVlZEV2ZW50QmFzZS5lbmNvZGUoZS5jb2duYWNGZWVkRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y29nbmFjRmVlZEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jb2duYWNGZWVkRXZlbnRCYXNlPXQuQ29nbmFjRmVlZEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y29nbmFjRmVlZEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmNvZ25hY0ZlZWRFdmVudEJhc2U9dm9pZCAwIT09ZS5jb2duYWNGZWVkRXZlbnRCYXNlJiZudWxsIT09ZS5jb2duYWNGZWVkRXZlbnRCYXNlP3QuQ29nbmFjRmVlZEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNvZ25hY0ZlZWRFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5DcmVhdGl2ZUtpdEV2ZW50QmFzZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmdC5LaXRFdmVudEJhc2UuZW5jb2RlKGUua2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnNvdXJjZVVybCYmbi51aW50MzIoMTgpLnN0cmluZyhlLnNvdXJjZVVybCksXCJcIiE9PWUuYXR0YWNobWVudFVybCYmbi51aW50MzIoMjYpLnN0cmluZyhlLmF0dGFjaG1lbnRVcmwpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17a2l0RXZlbnRCYXNlOnZvaWQgMCxzb3VyY2VVcmw6XCJcIixhdHRhY2htZW50VXJsOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEV2ZW50QmFzZT10LktpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zb3VyY2VVcmw9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5hdHRhY2htZW50VXJsPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtraXRFdmVudEJhc2U6dm9pZCAwLHNvdXJjZVVybDpcIlwiLGF0dGFjaG1lbnRVcmw6XCJcIn07cmV0dXJuIG4ua2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZudWxsIT09ZS5raXRFdmVudEJhc2U/dC5LaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5raXRFdmVudEJhc2UpOnZvaWQgMCxuLnNvdXJjZVVybD1lLnNvdXJjZVVybD8/XCJcIixuLmF0dGFjaG1lbnRVcmw9ZS5hdHRhY2htZW50VXJsPz9cIlwiLG59fSx0LkNyZWF0aXZlS2l0U2hhcmVCdXR0b25WaXNpYmxlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY3JlYXRpdmVLaXRFdmVudEJhc2UmJnQuQ3JlYXRpdmVLaXRFdmVudEJhc2UuZW5jb2RlKGUuY3JlYXRpdmVLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksITA9PT1lLmlzQ3VzdG9tQnV0dG9uJiZuLnVpbnQzMigxNikuYm9vbChlLmlzQ3VzdG9tQnV0dG9uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NyZWF0aXZlS2l0RXZlbnRCYXNlOnZvaWQgMCxpc0N1c3RvbUJ1dHRvbjohMX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuY3JlYXRpdmVLaXRFdmVudEJhc2U9dC5DcmVhdGl2ZUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5pc0N1c3RvbUJ1dHRvbj1yLmJvb2woKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NyZWF0aXZlS2l0RXZlbnRCYXNlOnZvaWQgMCxpc0N1c3RvbUJ1dHRvbjohMX07cmV0dXJuIG4uY3JlYXRpdmVLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY3JlYXRpdmVLaXRFdmVudEJhc2U/dC5DcmVhdGl2ZUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNyZWF0aXZlS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5pc0N1c3RvbUJ1dHRvbj1lLmlzQ3VzdG9tQnV0dG9uPz8hMSxufX0sdC5DcmVhdGl2ZUtpdFNoYXJlQ29tcGxldGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSYmdC5DcmVhdGl2ZUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwhMD09PWUuaXNTdWNjZXNzJiZuLnVpbnQzMigxNikuYm9vbChlLmlzU3VjY2VzcyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjcmVhdGl2ZUtpdEV2ZW50QmFzZTp2b2lkIDAsaXNTdWNjZXNzOiExfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jcmVhdGl2ZUtpdEV2ZW50QmFzZT10LkNyZWF0aXZlS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmlzU3VjY2Vzcz1yLmJvb2woKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NyZWF0aXZlS2l0RXZlbnRCYXNlOnZvaWQgMCxpc1N1Y2Nlc3M6ITF9O3JldHVybiBuLmNyZWF0aXZlS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuY3JlYXRpdmVLaXRFdmVudEJhc2UmJm51bGwhPT1lLmNyZWF0aXZlS2l0RXZlbnRCYXNlP3QuQ3JlYXRpdmVLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSk6dm9pZCAwLG4uaXNTdWNjZXNzPWUuaXNTdWNjZXNzPz8hMSxufX0sdC5DcmVhdGl2ZUtpdFNoYXJlU3RhcnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSYmdC5DcmVhdGl2ZUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NyZWF0aXZlS2l0RXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmNyZWF0aXZlS2l0RXZlbnRCYXNlPXQuQ3JlYXRpdmVLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2NyZWF0aXZlS2l0RXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uY3JlYXRpdmVLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY3JlYXRpdmVLaXRFdmVudEJhc2U/dC5DcmVhdGl2ZUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNyZWF0aXZlS2l0RXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuQ3JlYXRpdmVLaXRXZWJTY2FuUGFnZU9wZW49e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSYmdC5DcmVhdGl2ZUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5zbmFwS2l0UmVmZXJyZXImJm4udWludDMyKDI2KS5zdHJpbmcoZS5zbmFwS2l0UmVmZXJyZXIpLCEwPT09ZS5pc1N1Y2Nlc3MmJm4udWludDMyKDMyKS5ib29sKGUuaXNTdWNjZXNzKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NyZWF0aXZlS2l0RXZlbnRCYXNlOnZvaWQgMCxzbmFwS2l0UmVmZXJyZXI6XCJcIixpc1N1Y2Nlc3M6ITF9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmNyZWF0aXZlS2l0RXZlbnRCYXNlPXQuQ3JlYXRpdmVLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAzOmEuc25hcEtpdFJlZmVycmVyPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuaXNTdWNjZXNzPXIuYm9vbCgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y3JlYXRpdmVLaXRFdmVudEJhc2U6dm9pZCAwLHNuYXBLaXRSZWZlcnJlcjpcIlwiLGlzU3VjY2VzczohMX07cmV0dXJuIG4uY3JlYXRpdmVLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5jcmVhdGl2ZUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuY3JlYXRpdmVLaXRFdmVudEJhc2U/dC5DcmVhdGl2ZUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmNyZWF0aXZlS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5zbmFwS2l0UmVmZXJyZXI9ZS5zbmFwS2l0UmVmZXJyZXI/P1wiXCIsbi5pc1N1Y2Nlc3M9ZS5pc1N1Y2Nlc3M/PyExLG59fSx0LkNyZWF0b3JNYXJrZXRwbGFjZVVwc2VsbEN0YT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhbWVyYUtpdFdlYlBvcnRhbEV2ZW50QmFzZSYmdC5DYW1lcmFLaXRXZWJQb3J0YWxFdmVudEJhc2UuZW5jb2RlKGUuY2FtZXJhS2l0V2ViUG9ydGFsRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmN0YVRleHQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5jdGFUZXh0KSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2NhbWVyYUtpdFdlYlBvcnRhbEV2ZW50QmFzZTp2b2lkIDAsY3RhVGV4dDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5jYW1lcmFLaXRXZWJQb3J0YWxFdmVudEJhc2U9dC5DYW1lcmFLaXRXZWJQb3J0YWxFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuY3RhVGV4dD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2FtZXJhS2l0V2ViUG9ydGFsRXZlbnRCYXNlOnZvaWQgMCxjdGFUZXh0OlwiXCJ9O3JldHVybiBuLmNhbWVyYUtpdFdlYlBvcnRhbEV2ZW50QmFzZT12b2lkIDAhPT1lLmNhbWVyYUtpdFdlYlBvcnRhbEV2ZW50QmFzZSYmbnVsbCE9PWUuY2FtZXJhS2l0V2ViUG9ydGFsRXZlbnRCYXNlP3QuQ2FtZXJhS2l0V2ViUG9ydGFsRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuY2FtZXJhS2l0V2ViUG9ydGFsRXZlbnRCYXNlKTp2b2lkIDAsbi5jdGFUZXh0PWUuY3RhVGV4dD8/XCJcIixufX0sdC5FVUxBS2l0RXZlbnRCYXNlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZ0LktpdEV2ZW50QmFzZS5lbmNvZGUoZS5raXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtraXRFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEua2l0RXZlbnRCYXNlPXQuS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtraXRFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5raXRFdmVudEJhc2U9dm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJm51bGwhPT1lLmtpdEV2ZW50QmFzZT90LktpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmtpdEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkVVTEFLaXRVc2VyQWNjZXB0VGVybXM9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5lVUxBS2l0RXZlbnRCYXNlJiZ0LkVVTEFLaXRFdmVudEJhc2UuZW5jb2RlKGUuZVVMQUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS50ZXJtc1ZlcnNpb24mJm4udWludDMyKDE4KS5zdHJpbmcoZS50ZXJtc1ZlcnNpb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17ZVVMQUtpdEV2ZW50QmFzZTp2b2lkIDAsdGVybXNWZXJzaW9uOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmVVTEFLaXRFdmVudEJhc2U9dC5FVUxBS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnRlcm1zVmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17ZVVMQUtpdEV2ZW50QmFzZTp2b2lkIDAsdGVybXNWZXJzaW9uOlwiXCJ9O3JldHVybiBuLmVVTEFLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5lVUxBS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5lVUxBS2l0RXZlbnRCYXNlP3QuRVVMQUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmVVTEFLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnRlcm1zVmVyc2lvbj1lLnRlcm1zVmVyc2lvbj8/XCJcIixufX0sdC5FeGFtcGxlQ2xhc3M9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oITA9PT1lLmV4YW1wbGVDbGFzc0Jvb2xGaWVsZCYmdC51aW50MzIoMTYpLmJvb2woZS5leGFtcGxlQ2xhc3NCb29sRmllbGQpLDAhPT1lLmV4YW1wbGVDbGFzc0RvdWJsZUZpZWxkJiZ0LnVpbnQzMigyNSkuZG91YmxlKGUuZXhhbXBsZUNsYXNzRG91YmxlRmllbGQpLFwiMFwiIT09ZS5leGFtcGxlQ2xhc3NMb25nRmllbGQmJnQudWludDMyKDMyKS51aW50NjQoZS5leGFtcGxlQ2xhc3NMb25nRmllbGQpLDAhPT1lLmV4YW1wbGVDbGFzc0RhdGVGaWVsZCYmdC51aW50MzIoNDEpLmRvdWJsZShlLmV4YW1wbGVDbGFzc0RhdGVGaWVsZCksXCJcIiE9PWUuZXhhbXBsZUNsYXNzU3RyaW5nRmllbGQmJnQudWludDMyKDUwKS5zdHJpbmcoZS5leGFtcGxlQ2xhc3NTdHJpbmdGaWVsZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtleGFtcGxlQ2xhc3NCb29sRmllbGQ6ITEsZXhhbXBsZUNsYXNzRG91YmxlRmllbGQ6MCxleGFtcGxlQ2xhc3NMb25nRmllbGQ6XCIwXCIsZXhhbXBsZUNsYXNzRGF0ZUZpZWxkOjAsZXhhbXBsZUNsYXNzU3RyaW5nRmllbGQ6XCJcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAyOmkuZXhhbXBsZUNsYXNzQm9vbEZpZWxkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMzppLmV4YW1wbGVDbGFzc0RvdWJsZUZpZWxkPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA0OmkuZXhhbXBsZUNsYXNzTG9uZ0ZpZWxkPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmkuZXhhbXBsZUNsYXNzRGF0ZUZpZWxkPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA2OmkuZXhhbXBsZUNsYXNzU3RyaW5nRmllbGQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e2V4YW1wbGVDbGFzc0Jvb2xGaWVsZDohMSxleGFtcGxlQ2xhc3NEb3VibGVGaWVsZDowLGV4YW1wbGVDbGFzc0xvbmdGaWVsZDpcIjBcIixleGFtcGxlQ2xhc3NEYXRlRmllbGQ6MCxleGFtcGxlQ2xhc3NTdHJpbmdGaWVsZDpcIlwifTtyZXR1cm4gdC5leGFtcGxlQ2xhc3NCb29sRmllbGQ9ZS5leGFtcGxlQ2xhc3NCb29sRmllbGQ/PyExLHQuZXhhbXBsZUNsYXNzRG91YmxlRmllbGQ9ZS5leGFtcGxlQ2xhc3NEb3VibGVGaWVsZD8/MCx0LmV4YW1wbGVDbGFzc0xvbmdGaWVsZD1lLmV4YW1wbGVDbGFzc0xvbmdGaWVsZD8/XCIwXCIsdC5leGFtcGxlQ2xhc3NEYXRlRmllbGQ9ZS5leGFtcGxlQ2xhc3NEYXRlRmllbGQ/PzAsdC5leGFtcGxlQ2xhc3NTdHJpbmdGaWVsZD1lLmV4YW1wbGVDbGFzc1N0cmluZ0ZpZWxkPz9cIlwiLHR9fSx0LkZvcm1EYXRhTWluaUV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuZm9ybU1pbmlFdmVudCYmdC5Gb3JtTWluaUV2ZW50LmVuY29kZShlLmZvcm1NaW5pRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuZm9ybURhdGEmJm4udWludDMyKDE4KS5zdHJpbmcoZS5mb3JtRGF0YSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtmb3JtTWluaUV2ZW50OnZvaWQgMCxmb3JtRGF0YTpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5mb3JtTWluaUV2ZW50PXQuRm9ybU1pbmlFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mb3JtRGF0YT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Zm9ybU1pbmlFdmVudDp2b2lkIDAsZm9ybURhdGE6XCJcIn07cmV0dXJuIG4uZm9ybU1pbmlFdmVudD12b2lkIDAhPT1lLmZvcm1NaW5pRXZlbnQmJm51bGwhPT1lLmZvcm1NaW5pRXZlbnQ/dC5Gb3JtTWluaUV2ZW50LmZyb21QYXJ0aWFsKGUuZm9ybU1pbmlFdmVudCk6dm9pZCAwLG4uZm9ybURhdGE9ZS5mb3JtRGF0YT8/XCJcIixufX0sdC5Gb3JtTWluaUV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubWluaVNlcnZlckV2ZW50QmFzZSYmdC5NaW5pU2VydmVyRXZlbnRCYXNlLmVuY29kZShlLm1pbmlTZXJ2ZXJFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuZm9ybSYmbi51aW50MzIoMTgpLnN0cmluZyhlLmZvcm0pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bWluaVNlcnZlckV2ZW50QmFzZTp2b2lkIDAsZm9ybTpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5taW5pU2VydmVyRXZlbnRCYXNlPXQuTWluaVNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5mb3JtPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXttaW5pU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxmb3JtOlwiXCJ9O3JldHVybiBuLm1pbmlTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlP3QuTWluaVNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLm1pbmlTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxuLmZvcm09ZS5mb3JtPz9cIlwiLG59fSx0Lkhvc3RpbmdTdG9yYWdlRGVsZXRlRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlJiZ0Lkhvc3RpbmdTZXJ2ZXJFdmVudEJhc2UuZW5jb2RlKGUuaG9zdGluZ1NlcnZlckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5rZXkmJm4udWludDMyKDE4KS5zdHJpbmcoZS5rZXkpLFwiXCIhPT1lLnN0b3JhZ2VDb2xsZWN0aW9uJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuc3RvcmFnZUNvbGxlY3Rpb24pLCEwPT09ZS50aHJvdHRsZWQmJm4udWludDMyKDMyKS5ib29sKGUudGhyb3R0bGVkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2hvc3RpbmdTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLGtleTpcIlwiLHN0b3JhZ2VDb2xsZWN0aW9uOlwiXCIsdGhyb3R0bGVkOiExfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlPXQuSG9zdGluZ1NlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5rZXk9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5zdG9yYWdlQ29sbGVjdGlvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLnRocm90dGxlZD1yLmJvb2woKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2hvc3RpbmdTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLGtleTpcIlwiLHN0b3JhZ2VDb2xsZWN0aW9uOlwiXCIsdGhyb3R0bGVkOiExfTtyZXR1cm4gbi5ob3N0aW5nU2VydmVyRXZlbnRCYXNlPXZvaWQgMCE9PWUuaG9zdGluZ1NlcnZlckV2ZW50QmFzZSYmbnVsbCE9PWUuaG9zdGluZ1NlcnZlckV2ZW50QmFzZT90Lkhvc3RpbmdTZXJ2ZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlKTp2b2lkIDAsbi5rZXk9ZS5rZXk/P1wiXCIsbi5zdG9yYWdlQ29sbGVjdGlvbj1lLnN0b3JhZ2VDb2xsZWN0aW9uPz9cIlwiLG4udGhyb3R0bGVkPWUudGhyb3R0bGVkPz8hMSxufX0sdC5Ib3N0aW5nU3RvcmFnZVJlYWRFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmhvc3RpbmdTZXJ2ZXJFdmVudEJhc2UmJnQuSG9zdGluZ1NlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmtleSYmbi51aW50MzIoMTgpLnN0cmluZyhlLmtleSksXCJcIiE9PWUuc3RvcmFnZUNvbGxlY3Rpb24mJm4udWludDMyKDI2KS5zdHJpbmcoZS5zdG9yYWdlQ29sbGVjdGlvbiksXCIwXCIhPT1lLnZhbHVlU2l6ZUJ5dGVzJiZuLnVpbnQzMigzMikudWludDY0KGUudmFsdWVTaXplQnl0ZXMpLDAhPT1lLmV4cGlyYXRpb25UcyYmbi51aW50MzIoNDEpLmRvdWJsZShlLmV4cGlyYXRpb25UcyksITA9PT1lLnRocm90dGxlZCYmbi51aW50MzIoNDgpLmJvb2woZS50aHJvdHRsZWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17aG9zdGluZ1NlcnZlckV2ZW50QmFzZTp2b2lkIDAsa2V5OlwiXCIsc3RvcmFnZUNvbGxlY3Rpb246XCJcIix2YWx1ZVNpemVCeXRlczpcIjBcIixleHBpcmF0aW9uVHM6MCx0aHJvdHRsZWQ6ITF9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmhvc3RpbmdTZXJ2ZXJFdmVudEJhc2U9dC5Ib3N0aW5nU2VydmVyRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmtleT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnN0b3JhZ2VDb2xsZWN0aW9uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEudmFsdWVTaXplQnl0ZXM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6YS5leHBpcmF0aW9uVHM9ci5kb3VibGUoKTticmVhaztjYXNlIDY6YS50aHJvdHRsZWQ9ci5ib29sKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtob3N0aW5nU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxrZXk6XCJcIixzdG9yYWdlQ29sbGVjdGlvbjpcIlwiLHZhbHVlU2l6ZUJ5dGVzOlwiMFwiLGV4cGlyYXRpb25UczowLHRocm90dGxlZDohMX07cmV0dXJuIG4uaG9zdGluZ1NlcnZlckV2ZW50QmFzZT12b2lkIDAhPT1lLmhvc3RpbmdTZXJ2ZXJFdmVudEJhc2UmJm51bGwhPT1lLmhvc3RpbmdTZXJ2ZXJFdmVudEJhc2U/dC5Ib3N0aW5nU2VydmVyRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuaG9zdGluZ1NlcnZlckV2ZW50QmFzZSk6dm9pZCAwLG4ua2V5PWUua2V5Pz9cIlwiLG4uc3RvcmFnZUNvbGxlY3Rpb249ZS5zdG9yYWdlQ29sbGVjdGlvbj8/XCJcIixuLnZhbHVlU2l6ZUJ5dGVzPWUudmFsdWVTaXplQnl0ZXM/P1wiMFwiLG4uZXhwaXJhdGlvblRzPWUuZXhwaXJhdGlvblRzPz8wLG4udGhyb3R0bGVkPWUudGhyb3R0bGVkPz8hMSxufX0sdC5Ib3N0aW5nU3RvcmFnZVdyaXRlRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlJiZ0Lkhvc3RpbmdTZXJ2ZXJFdmVudEJhc2UuZW5jb2RlKGUuaG9zdGluZ1NlcnZlckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5rZXkmJm4udWludDMyKDE4KS5zdHJpbmcoZS5rZXkpLFwiXCIhPT1lLnN0b3JhZ2VDb2xsZWN0aW9uJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuc3RvcmFnZUNvbGxlY3Rpb24pLFwiMFwiIT09ZS52YWx1ZVNpemVCeXRlcyYmbi51aW50MzIoMzIpLnVpbnQ2NChlLnZhbHVlU2l6ZUJ5dGVzKSwwIT09ZS5leHBpcmF0aW9uVHMmJm4udWludDMyKDQxKS5kb3VibGUoZS5leHBpcmF0aW9uVHMpLCEwPT09ZS50aHJvdHRsZWQmJm4udWludDMyKDQ4KS5ib29sKGUudGhyb3R0bGVkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2hvc3RpbmdTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLGtleTpcIlwiLHN0b3JhZ2VDb2xsZWN0aW9uOlwiXCIsdmFsdWVTaXplQnl0ZXM6XCIwXCIsZXhwaXJhdGlvblRzOjAsdGhyb3R0bGVkOiExfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlPXQuSG9zdGluZ1NlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5rZXk9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5zdG9yYWdlQ29sbGVjdGlvbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLnZhbHVlU2l6ZUJ5dGVzPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmEuZXhwaXJhdGlvblRzPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA2OmEudGhyb3R0bGVkPXIuYm9vbCgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17aG9zdGluZ1NlcnZlckV2ZW50QmFzZTp2b2lkIDAsa2V5OlwiXCIsc3RvcmFnZUNvbGxlY3Rpb246XCJcIix2YWx1ZVNpemVCeXRlczpcIjBcIixleHBpcmF0aW9uVHM6MCx0aHJvdHRsZWQ6ITF9O3JldHVybiBuLmhvc3RpbmdTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS5ob3N0aW5nU2VydmVyRXZlbnRCYXNlP3QuSG9zdGluZ1NlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmhvc3RpbmdTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxuLmtleT1lLmtleT8/XCJcIixuLnN0b3JhZ2VDb2xsZWN0aW9uPWUuc3RvcmFnZUNvbGxlY3Rpb24/P1wiXCIsbi52YWx1ZVNpemVCeXRlcz1lLnZhbHVlU2l6ZUJ5dGVzPz9cIjBcIixuLmV4cGlyYXRpb25Ucz1lLmV4cGlyYXRpb25Ucz8/MCxuLnRocm90dGxlZD1lLnRocm90dGxlZD8/ITEsbn19LHQuSW52aXRlS2l0R2FtZUludml0ZUFjY2VwdGVkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZ0LktpdEV2ZW50QmFzZS5lbmNvZGUoZS5raXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuaW52aXRlVXVpZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmludml0ZVV1aWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17a2l0RXZlbnRCYXNlOnZvaWQgMCxpbnZpdGVVdWlkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEV2ZW50QmFzZT10LktpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5pbnZpdGVVdWlkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtraXRFdmVudEJhc2U6dm9pZCAwLGludml0ZVV1aWQ6XCJcIn07cmV0dXJuIG4ua2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZudWxsIT09ZS5raXRFdmVudEJhc2U/dC5LaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5raXRFdmVudEJhc2UpOnZvaWQgMCxuLmludml0ZVV1aWQ9ZS5pbnZpdGVVdWlkPz9cIlwiLG59fSx0Lkludml0ZUtpdEdhbWVJbnZpdGVTZW5kU3RhcnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJnQuS2l0RXZlbnRCYXNlLmVuY29kZShlLmtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5pbnZpdGVVdWlkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuaW52aXRlVXVpZCksMCE9PWUuaW52aXRlS2l0U2hhcmVUeXBlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5pbnZpdGVLaXRTaGFyZVR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17a2l0RXZlbnRCYXNlOnZvaWQgMCxpbnZpdGVVdWlkOlwiXCIsaW52aXRlS2l0U2hhcmVUeXBlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEV2ZW50QmFzZT10LktpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5pbnZpdGVVdWlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuaW52aXRlS2l0U2hhcmVUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEV2ZW50QmFzZTp2b2lkIDAsaW52aXRlVXVpZDpcIlwiLGludml0ZUtpdFNoYXJlVHlwZTowfTtyZXR1cm4gbi5raXRFdmVudEJhc2U9dm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJm51bGwhPT1lLmtpdEV2ZW50QmFzZT90LktpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmtpdEV2ZW50QmFzZSk6dm9pZCAwLG4uaW52aXRlVXVpZD1lLmludml0ZVV1aWQ/P1wiXCIsbi5pbnZpdGVLaXRTaGFyZVR5cGU9ZS5pbnZpdGVLaXRTaGFyZVR5cGU/PzAsbn19LHQuSW52aXRlS2l0UHJvZmlsZVNoYXJlQWNjZXB0ZWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJnQuS2l0RXZlbnRCYXNlLmVuY29kZShlLmtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5pbnZpdGVVdWlkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuaW52aXRlVXVpZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtraXRFdmVudEJhc2U6dm9pZCAwLGludml0ZVV1aWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEua2l0RXZlbnRCYXNlPXQuS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmludml0ZVV1aWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEV2ZW50QmFzZTp2b2lkIDAsaW52aXRlVXVpZDpcIlwifTtyZXR1cm4gbi5raXRFdmVudEJhc2U9dm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJm51bGwhPT1lLmtpdEV2ZW50QmFzZT90LktpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmtpdEV2ZW50QmFzZSk6dm9pZCAwLG4uaW52aXRlVXVpZD1lLmludml0ZVV1aWQ/P1wiXCIsbn19LHQuSW52aXRlS2l0UHJvZmlsZVNoYXJlU2VuZFN0YXJ0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZ0LktpdEV2ZW50QmFzZS5lbmNvZGUoZS5raXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuaW52aXRlVXVpZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmludml0ZVV1aWQpLDAhPT1lLmludml0ZUtpdFNoYXJlVHlwZSYmbi51aW50MzIoMjQpLmludDMyKGUuaW52aXRlS2l0U2hhcmVUeXBlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2tpdEV2ZW50QmFzZTp2b2lkIDAsaW52aXRlVXVpZDpcIlwiLGludml0ZUtpdFNoYXJlVHlwZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5raXRFdmVudEJhc2U9dC5LaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuaW52aXRlVXVpZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmludml0ZUtpdFNoYXJlVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtraXRFdmVudEJhc2U6dm9pZCAwLGludml0ZVV1aWQ6XCJcIixpbnZpdGVLaXRTaGFyZVR5cGU6MH07cmV0dXJuIG4ua2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZudWxsIT09ZS5raXRFdmVudEJhc2U/dC5LaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5raXRFdmVudEJhc2UpOnZvaWQgMCxuLmludml0ZVV1aWQ9ZS5pbnZpdGVVdWlkPz9cIlwiLG4uaW52aXRlS2l0U2hhcmVUeXBlPWUuaW52aXRlS2l0U2hhcmVUeXBlPz8wLG59fSx0LktpdEFwcEFwcGxpY2F0aW9uQ2xvc2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRBcHBBcHBsaWNhdGlvbkV2ZW50JiZ0LktpdEFwcEFwcGxpY2F0aW9uRXZlbnQuZW5jb2RlKGUua2l0QXBwQXBwbGljYXRpb25FdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUua2l0QXBwT3BlblRzJiZuLnVpbnQzMigzMikudWludDY0KGUua2l0QXBwT3BlblRzKSxcIjBcIiE9PWUua2l0QXBwQ2xvc2VUcyYmbi51aW50MzIoNDApLnVpbnQ2NChlLmtpdEFwcENsb3NlVHMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17a2l0QXBwQXBwbGljYXRpb25FdmVudDp2b2lkIDAsa2l0QXBwT3BlblRzOlwiMFwiLGtpdEFwcENsb3NlVHM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEFwcEFwcGxpY2F0aW9uRXZlbnQ9dC5LaXRBcHBBcHBsaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgNDphLmtpdEFwcE9wZW5Ucz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNTphLmtpdEFwcENsb3NlVHM9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEFwcEFwcGxpY2F0aW9uRXZlbnQ6dm9pZCAwLGtpdEFwcE9wZW5UczpcIjBcIixraXRBcHBDbG9zZVRzOlwiMFwifTtyZXR1cm4gbi5raXRBcHBBcHBsaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUua2l0QXBwQXBwbGljYXRpb25FdmVudCYmbnVsbCE9PWUua2l0QXBwQXBwbGljYXRpb25FdmVudD90LktpdEFwcEFwcGxpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5raXRBcHBBcHBsaWNhdGlvbkV2ZW50KTp2b2lkIDAsbi5raXRBcHBPcGVuVHM9ZS5raXRBcHBPcGVuVHM/P1wiMFwiLG4ua2l0QXBwQ2xvc2VUcz1lLmtpdEFwcENsb3NlVHM/P1wiMFwiLG59fSx0LktpdEFwcEFwcGxpY2F0aW9uT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmtpdEFwcEFwcGxpY2F0aW9uRXZlbnQmJnQuS2l0QXBwQXBwbGljYXRpb25FdmVudC5lbmNvZGUoZS5raXRBcHBBcHBsaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmRlZXBMaW5rVXJsJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuZGVlcExpbmtVcmwpLDAhPT1lLmRlZXBMaW5rU291cmNlVHlwZSYmbi51aW50MzIoMzIpLmludDMyKGUuZGVlcExpbmtTb3VyY2VUeXBlKSxcIjBcIiE9PWUua2l0QXBwT3BlblRzJiZuLnVpbnQzMig0MCkudWludDY0KGUua2l0QXBwT3BlblRzKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2tpdEFwcEFwcGxpY2F0aW9uRXZlbnQ6dm9pZCAwLGRlZXBMaW5rVXJsOlwiXCIsZGVlcExpbmtTb3VyY2VUeXBlOjAsa2l0QXBwT3BlblRzOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5raXRBcHBBcHBsaWNhdGlvbkV2ZW50PXQuS2l0QXBwQXBwbGljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDM6YS5kZWVwTGlua1VybD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmRlZXBMaW5rU291cmNlVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEua2l0QXBwT3BlblRzPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtraXRBcHBBcHBsaWNhdGlvbkV2ZW50OnZvaWQgMCxkZWVwTGlua1VybDpcIlwiLGRlZXBMaW5rU291cmNlVHlwZTowLGtpdEFwcE9wZW5UczpcIjBcIn07cmV0dXJuIG4ua2l0QXBwQXBwbGljYXRpb25FdmVudD12b2lkIDAhPT1lLmtpdEFwcEFwcGxpY2F0aW9uRXZlbnQmJm51bGwhPT1lLmtpdEFwcEFwcGxpY2F0aW9uRXZlbnQ/dC5LaXRBcHBBcHBsaWNhdGlvbkV2ZW50LmZyb21QYXJ0aWFsKGUua2l0QXBwQXBwbGljYXRpb25FdmVudCk6dm9pZCAwLG4uZGVlcExpbmtVcmw9ZS5kZWVwTGlua1VybD8/XCJcIixuLmRlZXBMaW5rU291cmNlVHlwZT1lLmRlZXBMaW5rU291cmNlVHlwZT8/MCxuLmtpdEFwcE9wZW5Ucz1lLmtpdEFwcE9wZW5Ucz8/XCIwXCIsbn19LHQuS2l0RXJyb3JFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmdC5LaXRFdmVudEJhc2UuZW5jb2RlKGUua2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmtpdEVycm9yQ29kZSYmbi51aW50MzIoMTYpLmludDMyKGUua2l0RXJyb3JDb2RlKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2tpdEV2ZW50QmFzZTp2b2lkIDAsa2l0RXJyb3JDb2RlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEV2ZW50QmFzZT10LktpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5raXRFcnJvckNvZGU9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17a2l0RXZlbnRCYXNlOnZvaWQgMCxraXRFcnJvckNvZGU6MH07cmV0dXJuIG4ua2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZudWxsIT09ZS5raXRFdmVudEJhc2U/dC5LaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5raXRFdmVudEJhc2UpOnZvaWQgMCxuLmtpdEVycm9yQ29kZT1lLmtpdEVycm9yQ29kZT8/MCxufX0sdC5LaXRIZWFydGJlYXQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJnQuS2l0RXZlbnRCYXNlLmVuY29kZShlLmtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5pbnN0YWxsYXRpb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmluc3RhbGxhdGlvbklkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2tpdEV2ZW50QmFzZTp2b2lkIDAsaW5zdGFsbGF0aW9uSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEua2l0RXZlbnRCYXNlPXQuS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmluc3RhbGxhdGlvbklkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtraXRFdmVudEJhc2U6dm9pZCAwLGluc3RhbGxhdGlvbklkOlwiXCJ9O3JldHVybiBuLmtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmbnVsbCE9PWUua2l0RXZlbnRCYXNlP3QuS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUua2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5pbnN0YWxsYXRpb25JZD1lLmluc3RhbGxhdGlvbklkPz9cIlwiLG59fSx0LkxlbnNzdHVkaW9BcHBsaWNhdGlvbkNyYXNoPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9BcHBsaWNhdGlvblF1aXQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb0FwcGxpY2F0aW9uU3RhcnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb0Fzc2V0bGlicmFyeUFjdGlvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmFzc2V0TGlicmFyeVNlc3Npb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmFzc2V0TGlicmFyeVNlc3Npb25JZCksXCJcIiE9PWUuYXNzZXRJZCYmbi51aW50MzIoMjYpLnN0cmluZyhlLmFzc2V0SWQpLFwiXCIhPT1lLmFzc2V0TmFtZSYmbi51aW50MzIoMzQpLnN0cmluZyhlLmFzc2V0TmFtZSksMCE9PWUuYWN0aW9uU291cmNlJiZuLnVpbnQzMig0MCkuaW50MzIoZS5hY3Rpb25Tb3VyY2UpLDAhPT1lLmFjdGlvblR5cGUmJm4udWludDMyKDQ4KS5pbnQzMihlLmFjdGlvblR5cGUpLFwiMFwiIT09ZS5hc3NldFNpemUmJm4udWludDMyKDU2KS51aW50NjQoZS5hc3NldFNpemUpLFwiXCIhPT1lLmFzc2V0VmVyc2lvbiYmbi51aW50MzIoNjYpLnN0cmluZyhlLmFzc2V0VmVyc2lvbiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxhc3NldExpYnJhcnlTZXNzaW9uSWQ6XCJcIixhc3NldElkOlwiXCIsYXNzZXROYW1lOlwiXCIsYWN0aW9uU291cmNlOjAsYWN0aW9uVHlwZTowLGFzc2V0U2l6ZTpcIjBcIixhc3NldFZlcnNpb246XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuYXNzZXRJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmFzc2V0TmFtZT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmFjdGlvblNvdXJjZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuYWN0aW9uVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA3OmEuYXNzZXRTaXplPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA4OmEuYXNzZXRWZXJzaW9uPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxhc3NldExpYnJhcnlTZXNzaW9uSWQ6XCJcIixhc3NldElkOlwiXCIsYXNzZXROYW1lOlwiXCIsYWN0aW9uU291cmNlOjAsYWN0aW9uVHlwZTowLGFzc2V0U2l6ZTpcIjBcIixhc3NldFZlcnNpb246XCJcIn07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4uYXNzZXRMaWJyYXJ5U2Vzc2lvbklkPWUuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkPz9cIlwiLG4uYXNzZXRJZD1lLmFzc2V0SWQ/P1wiXCIsbi5hc3NldE5hbWU9ZS5hc3NldE5hbWU/P1wiXCIsbi5hY3Rpb25Tb3VyY2U9ZS5hY3Rpb25Tb3VyY2U/PzAsbi5hY3Rpb25UeXBlPWUuYWN0aW9uVHlwZT8/MCxuLmFzc2V0U2l6ZT1lLmFzc2V0U2l6ZT8/XCIwXCIsbi5hc3NldFZlcnNpb249ZS5hc3NldFZlcnNpb24/P1wiXCIsbn19LHQuTGVuc3N0dWRpb0Fzc2V0bGlicmFyeUNhdGVnb3J5U2VsZWN0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkKSxcIlwiIT09ZS5jYXRlZ29yeUlkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuY2F0ZWdvcnlJZCksXCJcIiE9PWUuY2F0ZWdvcnlOYW1lJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUuY2F0ZWdvcnlOYW1lKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLGFzc2V0TGlicmFyeVNlc3Npb25JZDpcIlwiLGNhdGVnb3J5SWQ6XCJcIixjYXRlZ29yeU5hbWU6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuY2F0ZWdvcnlJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmNhdGVnb3J5TmFtZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsYXNzZXRMaWJyYXJ5U2Vzc2lvbklkOlwiXCIsY2F0ZWdvcnlJZDpcIlwiLGNhdGVnb3J5TmFtZTpcIlwifTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5hc3NldExpYnJhcnlTZXNzaW9uSWQ9ZS5hc3NldExpYnJhcnlTZXNzaW9uSWQ/P1wiXCIsbi5jYXRlZ29yeUlkPWUuY2F0ZWdvcnlJZD8/XCJcIixuLmNhdGVnb3J5TmFtZT1lLmNhdGVnb3J5TmFtZT8/XCJcIixufX0sdC5MZW5zc3R1ZGlvQXNzZXRsaWJyYXJ5SW1wb3J0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkKSxcIlwiIT09ZS5hc3NldElkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuYXNzZXRJZCksXCJcIiE9PWUuYXNzZXROYW1lJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUuYXNzZXROYW1lKSwwIT09ZS5pbXBvcnRTb3VyY2UmJm4udWludDMyKDQwKS5pbnQzMihlLmltcG9ydFNvdXJjZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxhc3NldExpYnJhcnlTZXNzaW9uSWQ6XCJcIixhc3NldElkOlwiXCIsYXNzZXROYW1lOlwiXCIsaW1wb3J0U291cmNlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmFzc2V0TGlicmFyeVNlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmFzc2V0SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5hc3NldE5hbWU9ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS5pbXBvcnRTb3VyY2U9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsYXNzZXRMaWJyYXJ5U2Vzc2lvbklkOlwiXCIsYXNzZXRJZDpcIlwiLGFzc2V0TmFtZTpcIlwiLGltcG9ydFNvdXJjZTowfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5hc3NldExpYnJhcnlTZXNzaW9uSWQ9ZS5hc3NldExpYnJhcnlTZXNzaW9uSWQ/P1wiXCIsbi5hc3NldElkPWUuYXNzZXRJZD8/XCJcIixuLmFzc2V0TmFtZT1lLmFzc2V0TmFtZT8/XCJcIixuLmltcG9ydFNvdXJjZT1lLmltcG9ydFNvdXJjZT8/MCxufX0sdC5MZW5zc3R1ZGlvQXNzZXRsaWJyYXJ5T3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmFzc2V0TGlicmFyeVNlc3Npb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmFzc2V0TGlicmFyeVNlc3Npb25JZCksXCJcIiE9PWUuYXNzZXRMaWJyYXJ5T3BlblNvdXJjZSYmbi51aW50MzIoMjYpLnN0cmluZyhlLmFzc2V0TGlicmFyeU9wZW5Tb3VyY2UpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsYXNzZXRMaWJyYXJ5U2Vzc2lvbklkOlwiXCIsYXNzZXRMaWJyYXJ5T3BlblNvdXJjZTpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5hc3NldExpYnJhcnlTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5hc3NldExpYnJhcnlPcGVuU291cmNlPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxhc3NldExpYnJhcnlTZXNzaW9uSWQ6XCJcIixhc3NldExpYnJhcnlPcGVuU291cmNlOlwiXCJ9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxuLmFzc2V0TGlicmFyeVNlc3Npb25JZD1lLmFzc2V0TGlicmFyeVNlc3Npb25JZD8/XCJcIixuLmFzc2V0TGlicmFyeU9wZW5Tb3VyY2U9ZS5hc3NldExpYnJhcnlPcGVuU291cmNlPz9cIlwiLG59fSx0LkxlbnNzdHVkaW9Bc3NldGxpYnJhcnlTZWFyY2g9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5zZWFyY2hUZXh0JiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuc2VhcmNoVGV4dCksITA9PT1lLmhhc1Jlc3VsdHMmJm4udWludDMyKDI0KS5ib29sKGUuaGFzUmVzdWx0cyksXCJcIiE9PWUuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkKSwhMD09PWUuaXNQdWJsaWNTcGFjZVNlYXJjaCYmbi51aW50MzIoNDApLmJvb2woZS5pc1B1YmxpY1NwYWNlU2VhcmNoKSxcIlwiIT09ZS5zZWFyY2hUeXBlJiZuLnVpbnQzMig1OCkuc3RyaW5nKGUuc2VhcmNoVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxzZWFyY2hUZXh0OlwiXCIsaGFzUmVzdWx0czohMSxhc3NldExpYnJhcnlTZXNzaW9uSWQ6XCJcIixpc1B1YmxpY1NwYWNlU2VhcmNoOiExLHNlYXJjaFR5cGU6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc2VhcmNoVGV4dD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmhhc1Jlc3VsdHM9ci5ib29sKCk7YnJlYWs7Y2FzZSA0OmEuYXNzZXRMaWJyYXJ5U2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEuaXNQdWJsaWNTcGFjZVNlYXJjaD1yLmJvb2woKTticmVhaztjYXNlIDc6YS5zZWFyY2hUeXBlPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxzZWFyY2hUZXh0OlwiXCIsaGFzUmVzdWx0czohMSxhc3NldExpYnJhcnlTZXNzaW9uSWQ6XCJcIixpc1B1YmxpY1NwYWNlU2VhcmNoOiExLHNlYXJjaFR5cGU6XCJcIn07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4uc2VhcmNoVGV4dD1lLnNlYXJjaFRleHQ/P1wiXCIsbi5oYXNSZXN1bHRzPWUuaGFzUmVzdWx0cz8/ITEsbi5hc3NldExpYnJhcnlTZXNzaW9uSWQ9ZS5hc3NldExpYnJhcnlTZXNzaW9uSWQ/P1wiXCIsbi5pc1B1YmxpY1NwYWNlU2VhcmNoPWUuaXNQdWJsaWNTcGFjZVNlYXJjaD8/ITEsbi5zZWFyY2hUeXBlPWUuc2VhcmNoVHlwZT8/XCJcIixufX0sdC5MZW5zc3R1ZGlvQ2hlY2tmb3J1cGRhdGVzT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvQ2hlY2tmb3J1cGRhdGVzUHJvY2VlZD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvQ29tcG9uZW50QWRkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuYXNzZXRJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmFzc2V0SWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsYXNzZXRJZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5hc3NldElkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxhc3NldElkOlwiXCJ9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxuLmFzc2V0SWQ9ZS5hc3NldElkPz9cIlwiLG59fSx0LkxlbnNzdHVkaW9Eb2N1bWVudENsb3NlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9Eb2N1bWVudEZyb210ZW1wbGF0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS5kb3dubG9hZFRpbWVNcyYmbi51aW50MzIoMTYpLnVpbnQ2NChlLmRvd25sb2FkVGltZU1zKSxcIlwiIT09ZS5hc3NldElkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuYXNzZXRJZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxkb3dubG9hZFRpbWVNczpcIjBcIixhc3NldElkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmRvd25sb2FkVGltZU1zPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmEuYXNzZXRJZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsZG93bmxvYWRUaW1lTXM6XCIwXCIsYXNzZXRJZDpcIlwifTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5kb3dubG9hZFRpbWVNcz1lLmRvd25sb2FkVGltZU1zPz9cIjBcIixuLmFzc2V0SWQ9ZS5hc3NldElkPz9cIlwiLG59fSx0LkxlbnNzdHVkaW9Eb2N1bWVudE5ldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvRG9jdW1lbnRPcGVuPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9Eb2N1bWVudFJlY292ZXI9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb0ZpbGVwZXJtaXNzaW9uc0ZvbGRlcj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvRmlsZXBlcm1pc3Npb25zSG9tZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvR2lwaHlBZGQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb0dpcGh5U2VhcmNoPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9HaXBoeVNob3c9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb0lzc3VlUmVwb3J0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9MZW5zcHJldmlld1VwbG9hZD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvTWF0ZXJpYWxub2RlQWRkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9NYXRlcmlhbG5vZGVGYXZvcml0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvTXlsZW5zZXNBZGp1c3Q9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5zb3VyY2UmJm4udWludDMyKDE2KS5pbnQzMihlLnNvdXJjZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxzb3VyY2U6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc291cmNlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLHNvdXJjZTowfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5zb3VyY2U9ZS5zb3VyY2U/PzAsbn19LHQuTGVuc3N0dWRpb015bGVuc2VzRmFpbHN1Ym1pdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvTXlsZW5zZXNMb2dpbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvTXlsZW5zZXNPcGVuPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9NeWxlbnNlc1N1Ym1pdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmxlbnNzdHVkaW9CdWlsZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmxlbnNzdHVkaW9CdWlsZCksXCJcIiE9PWUubGVuc3N0dWRpb1ZlcnNpb24mJm4udWludDMyKDI2KS5zdHJpbmcoZS5sZW5zc3R1ZGlvVmVyc2lvbiksXCJcIiE9PWUubGVuc3N0dWRpb09zVHlwZSYmbi51aW50MzIoMzQpLnN0cmluZyhlLmxlbnNzdHVkaW9Pc1R5cGUpLFwiXCIhPT1lLmxlbnNzdHVkaW9Pc1ZlcnNpb24mJm4udWludDMyKDQyKS5zdHJpbmcoZS5sZW5zc3R1ZGlvT3NWZXJzaW9uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLGxlbnNzdHVkaW9CdWlsZDpcIlwiLGxlbnNzdHVkaW9WZXJzaW9uOlwiXCIsbGVuc3N0dWRpb09zVHlwZTpcIlwiLGxlbnNzdHVkaW9Pc1ZlcnNpb246XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubGVuc3N0dWRpb0J1aWxkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEubGVuc3N0dWRpb1ZlcnNpb249ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5sZW5zc3R1ZGlvT3NUeXBlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEubGVuc3N0dWRpb09zVmVyc2lvbj1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsbGVuc3N0dWRpb0J1aWxkOlwiXCIsbGVuc3N0dWRpb1ZlcnNpb246XCJcIixsZW5zc3R1ZGlvT3NUeXBlOlwiXCIsbGVuc3N0dWRpb09zVmVyc2lvbjpcIlwifTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5sZW5zc3R1ZGlvQnVpbGQ9ZS5sZW5zc3R1ZGlvQnVpbGQ/P1wiXCIsbi5sZW5zc3R1ZGlvVmVyc2lvbj1lLmxlbnNzdHVkaW9WZXJzaW9uPz9cIlwiLG4ubGVuc3N0dWRpb09zVHlwZT1lLmxlbnNzdHVkaW9Pc1R5cGU/P1wiXCIsbi5sZW5zc3R1ZGlvT3NWZXJzaW9uPWUubGVuc3N0dWRpb09zVmVyc2lvbj8/XCJcIixufX0sdC5MZW5zc3R1ZGlvTXlsZW5zZXNVcGRhdGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5zb3VyY2UmJm4udWludDMyKDE2KS5pbnQzMihlLnNvdXJjZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxzb3VyY2U6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc291cmNlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLHNvdXJjZTowfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5zb3VyY2U9ZS5zb3VyY2U/PzAsbn19LHQuTGVuc3N0dWRpb09iamVjdEFkZD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvT2JqZWN0SW1wb3J0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9PbmJvYXJkaW5nQ29tcGxldGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5vbmJvYXJkaW5nU2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUub25ib2FyZGluZ1Nlc3Npb25JZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxvbmJvYXJkaW5nU2Vzc2lvbklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm9uYm9hcmRpbmdTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG9uYm9hcmRpbmdTZXNzaW9uSWQ6XCJcIn07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4ub25ib2FyZGluZ1Nlc3Npb25JZD1lLm9uYm9hcmRpbmdTZXNzaW9uSWQ/P1wiXCIsbn19LHQuTGVuc3N0dWRpb09uYm9hcmRpbmdFbnRyeVBvaW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUub25ib2FyZGluZ1Nlc3Npb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLm9uYm9hcmRpbmdTZXNzaW9uSWQpLDAhPT1lLmVudHJ5UG9pbnQmJm4udWludDMyKDI0KS5pbnQzMihlLmVudHJ5UG9pbnQpLDAhPT1lLmFjdGlvblR5cGUmJm4udWludDMyKDMyKS5pbnQzMihlLmFjdGlvblR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsb25ib2FyZGluZ1Nlc3Npb25JZDpcIlwiLGVudHJ5UG9pbnQ6MCxhY3Rpb25UeXBlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm9uYm9hcmRpbmdTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5lbnRyeVBvaW50PXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5hY3Rpb25UeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG9uYm9hcmRpbmdTZXNzaW9uSWQ6XCJcIixlbnRyeVBvaW50OjAsYWN0aW9uVHlwZTowfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5vbmJvYXJkaW5nU2Vzc2lvbklkPWUub25ib2FyZGluZ1Nlc3Npb25JZD8/XCJcIixuLmVudHJ5UG9pbnQ9ZS5lbnRyeVBvaW50Pz8wLG4uYWN0aW9uVHlwZT1lLmFjdGlvblR5cGU/PzAsbn19LHQuTGVuc3N0dWRpb09uYm9hcmRpbmdQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm9uYm9hcmRpbmdTZXNzaW9uSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5vbmJvYXJkaW5nU2Vzc2lvbklkKSxcIlwiIT09ZS5wYWdlTmFtZSYmbi51aW50MzIoMjYpLnN0cmluZyhlLnBhZ2VOYW1lKSwwIT09ZS5hY3Rpb25UeXBlJiZuLnVpbnQzMigzMikuaW50MzIoZS5hY3Rpb25UeXBlKSwwIT09ZS5wYWdlVmlld1RpbWUmJm4udWludDMyKDQxKS5kb3VibGUoZS5wYWdlVmlld1RpbWUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsb25ib2FyZGluZ1Nlc3Npb25JZDpcIlwiLHBhZ2VOYW1lOlwiXCIsYWN0aW9uVHlwZTowLHBhZ2VWaWV3VGltZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5vbmJvYXJkaW5nU2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEucGFnZU5hbWU9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5hY3Rpb25UeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDU6YS5wYWdlVmlld1RpbWU9ci5kb3VibGUoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG9uYm9hcmRpbmdTZXNzaW9uSWQ6XCJcIixwYWdlTmFtZTpcIlwiLGFjdGlvblR5cGU6MCxwYWdlVmlld1RpbWU6MH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4ub25ib2FyZGluZ1Nlc3Npb25JZD1lLm9uYm9hcmRpbmdTZXNzaW9uSWQ/P1wiXCIsbi5wYWdlTmFtZT1lLnBhZ2VOYW1lPz9cIlwiLG4uYWN0aW9uVHlwZT1lLmFjdGlvblR5cGU/PzAsbi5wYWdlVmlld1RpbWU9ZS5wYWdlVmlld1RpbWU/PzAsbn19LHQuTGVuc3N0dWRpb1BhaXJpbmdEaXNjb25uZWN0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9QYWlyaW5nRmFpbGVkcHVzaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvUGFpcmluZ1BhaXI9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb1BhaXJpbmdQdXNoPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9QYWlyaW5nU3RhcnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb1BhbmVsQXR0YWNoPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9QYW5lbERldGFjaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvUGFuZWxPcGVuPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9QcmV2aWV3RGV2aWNlU2ltdWxhdGlvblNlbGVjdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvUHJvamVjdGluZm9DYW1lcmE9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb1Byb2plY3RpbmZvSGludD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvUmVzb3VyY2VBZGQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb1Jlc291cmNlRXh0ZXJuYWxlZGl0b3I9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb1NjcmlwdG5vZGVBZGQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb1NjcmlwdG5vZGVGYXZvcml0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5CYW5uZXJDbGlja0FjdGlvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmJhbm5lcklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuYmFubmVySWQpLFwiXCIhPT1lLmFjdGlvbiYmbi51aW50MzIoMjYpLnN0cmluZyhlLmFjdGlvbiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxiYW5uZXJJZDpcIlwiLGFjdGlvbjpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5iYW5uZXJJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmFjdGlvbj1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsYmFubmVySWQ6XCJcIixhY3Rpb246XCJcIn07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4uYmFubmVySWQ9ZS5iYW5uZXJJZD8/XCJcIixuLmFjdGlvbj1lLmFjdGlvbj8/XCJcIixufX0sdC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5HdWlkZUNsaWNrQWN0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuZ3VpZGVJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmd1aWRlSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsZ3VpZGVJZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5ndWlkZUlkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxndWlkZUlkOlwiXCJ9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxuLmd1aWRlSWQ9ZS5ndWlkZUlkPz9cIlwiLG59fSx0LkxlbnNzdHVkaW9TdGFydHNjcmVlblBhbmVsQWN0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuYWN0aW9uVHlwZVNwZWNpZmljJiZuLnVpbnQzMigxNikuaW50MzIoZS5hY3Rpb25UeXBlU3BlY2lmaWMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsYWN0aW9uVHlwZVNwZWNpZmljOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmFjdGlvblR5cGVTcGVjaWZpYz1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxhY3Rpb25UeXBlU3BlY2lmaWM6MH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4uYWN0aW9uVHlwZVNwZWNpZmljPWUuYWN0aW9uVHlwZVNwZWNpZmljPz8wLG59fSx0LkxlbnNzdHVkaW9TdGFydHNjcmVlblNlY3Rpb25GaWx0ZXJBY3Rpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5zZWN0aW9uVHlwZSYmbi51aW50MzIoMTYpLmludDMyKGUuc2VjdGlvblR5cGUpLDAhPT1lLmZpbHRlclR5cGUmJm4udWludDMyKDI0KS5pbnQzMihlLmZpbHRlclR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsc2VjdGlvblR5cGU6MCxmaWx0ZXJUeXBlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnNlY3Rpb25UeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5maWx0ZXJUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLHNlY3Rpb25UeXBlOjAsZmlsdGVyVHlwZTowfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5zZWN0aW9uVHlwZT1lLnNlY3Rpb25UeXBlPz8wLG4uZmlsdGVyVHlwZT1lLmZpbHRlclR5cGU/PzAsbn19LHQuTGVuc3N0dWRpb1N0YXJ0c2NyZWVuVmlkZW9DbGlja0FjdGlvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnZpZGVvSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS52aWRlb0lkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLHZpZGVvSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudmlkZW9JZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsdmlkZW9JZDpcIlwifTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi52aWRlb0lkPWUudmlkZW9JZD8/XCJcIixufX0sdC5MZW5zc3R1ZGlvU3RhcnRzY3JlZW5WaWV3PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUucGFnZVZpZXdUaW1lJiZuLnVpbnQzMigxNykuZG91YmxlKGUucGFnZVZpZXdUaW1lKSwwIT09ZS5leGl0VHlwZSYmbi51aW50MzIoMjQpLmludDMyKGUuZXhpdFR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAscGFnZVZpZXdUaW1lOjAsZXhpdFR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEucGFnZVZpZXdUaW1lPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSAzOmEuZXhpdFR5cGU9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAscGFnZVZpZXdUaW1lOjAsZXhpdFR5cGU6MH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4ucGFnZVZpZXdUaW1lPWUucGFnZVZpZXdUaW1lPz8wLG4uZXhpdFR5cGU9ZS5leGl0VHlwZT8/MCxufX0sdC5MZW5zc3R1ZGlvU3VibWl0U3RhcnRlZD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvU3VibWl0U3RhdHVzPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9UZW1wbGF0ZUxvYWRmYWlsZWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTGVuc3N0dWRpb1Rvb2x0aXBMZWFybk1vcmVPcGVuPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG59fSx0LkxlbnNzdHVkaW9Ub29sdGlwT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5MZW5zc3R1ZGlvVXJsT3Blbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxufX0sdC5Mb2dpbktpdEF1dGhDb21wbGV0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxvZ0tpdEV2ZW50QmFzZSYmdC5Mb2dpbktpdEV2ZW50QmFzZS5lbmNvZGUoZS5sb2dLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksITA9PT1lLmlzU3VjY2VzcyYmbi51aW50MzIoMTYpLmJvb2woZS5pc1N1Y2Nlc3MpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bG9nS2l0RXZlbnRCYXNlOnZvaWQgMCxpc1N1Y2Nlc3M6ITF9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxvZ0tpdEV2ZW50QmFzZT10LkxvZ2luS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmlzU3VjY2Vzcz1yLmJvb2woKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xvZ0tpdEV2ZW50QmFzZTp2b2lkIDAsaXNTdWNjZXNzOiExfTtyZXR1cm4gbi5sb2dLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5sb2dLaXRFdmVudEJhc2UmJm51bGwhPT1lLmxvZ0tpdEV2ZW50QmFzZT90LkxvZ2luS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubG9nS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5pc1N1Y2Nlc3M9ZS5pc1N1Y2Nlc3M/PyExLG59fSx0LkxvZ2luS2l0QXV0aFN0YXJ0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubG9nS2l0RXZlbnRCYXNlJiZ0LkxvZ2luS2l0RXZlbnRCYXNlLmVuY29kZShlLmxvZ0tpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5mZWF0dXJlc1JlcXVlc3RlZFN0cmluZ0xpc3QmJm4udWludDMyKDE4KS5zdHJpbmcoZS5mZWF0dXJlc1JlcXVlc3RlZFN0cmluZ0xpc3QpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bG9nS2l0RXZlbnRCYXNlOnZvaWQgMCxmZWF0dXJlc1JlcXVlc3RlZFN0cmluZ0xpc3Q6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9nS2l0RXZlbnRCYXNlPXQuTG9naW5LaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuZmVhdHVyZXNSZXF1ZXN0ZWRTdHJpbmdMaXN0PXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsb2dLaXRFdmVudEJhc2U6dm9pZCAwLGZlYXR1cmVzUmVxdWVzdGVkU3RyaW5nTGlzdDpcIlwifTtyZXR1cm4gbi5sb2dLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5sb2dLaXRFdmVudEJhc2UmJm51bGwhPT1lLmxvZ0tpdEV2ZW50QmFzZT90LkxvZ2luS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubG9nS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5mZWF0dXJlc1JlcXVlc3RlZFN0cmluZ0xpc3Q9ZS5mZWF0dXJlc1JlcXVlc3RlZFN0cmluZ0xpc3Q/P1wiXCIsbn19LHQuTG9naW5LaXRFdmVudEJhc2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJnQuS2l0RXZlbnRCYXNlLmVuY29kZShlLmtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwhMD09PWUuaXNGb3JGaXJlYmFzZUF1dGhlbnRpY2F0aW9uJiZuLnVpbnQzMigxNikuYm9vbChlLmlzRm9yRmlyZWJhc2VBdXRoZW50aWNhdGlvbiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtraXRFdmVudEJhc2U6dm9pZCAwLGlzRm9yRmlyZWJhc2VBdXRoZW50aWNhdGlvbjohMX07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEua2l0RXZlbnRCYXNlPXQuS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmlzRm9yRmlyZWJhc2VBdXRoZW50aWNhdGlvbj1yLmJvb2woKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEV2ZW50QmFzZTp2b2lkIDAsaXNGb3JGaXJlYmFzZUF1dGhlbnRpY2F0aW9uOiExfTtyZXR1cm4gbi5raXRFdmVudEJhc2U9dm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJm51bGwhPT1lLmtpdEV2ZW50QmFzZT90LktpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmtpdEV2ZW50QmFzZSk6dm9pZCAwLG4uaXNGb3JGaXJlYmFzZUF1dGhlbnRpY2F0aW9uPWUuaXNGb3JGaXJlYmFzZUF1dGhlbnRpY2F0aW9uPz8hMSxufX0sdC5Mb2dpbldpdGhPbmV0bHYxQXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxvZ2luQXR0ZW1wdEJhc2UmJnQuTG9naW5BdHRlbXB0QmFzZS5lbmNvZGUoZS5sb2dpbkF0dGVtcHRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sb2dpbkF0dGVtcHRCYXNlPXQuTG9naW5BdHRlbXB0QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDB9O3JldHVybiBuLmxvZ2luQXR0ZW1wdEJhc2U9dm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZudWxsIT09ZS5sb2dpbkF0dGVtcHRCYXNlP3QuTG9naW5BdHRlbXB0QmFzZS5mcm9tUGFydGlhbChlLmxvZ2luQXR0ZW1wdEJhc2UpOnZvaWQgMCxufX0sdC5Mb2dpbldpdGhPbmV0bHYzQXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxvZ2luQXR0ZW1wdEJhc2UmJnQuTG9naW5BdHRlbXB0QmFzZS5lbmNvZGUoZS5sb2dpbkF0dGVtcHRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sb2dpbkF0dGVtcHRCYXNlPXQuTG9naW5BdHRlbXB0QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDB9O3JldHVybiBuLmxvZ2luQXR0ZW1wdEJhc2U9dm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZudWxsIT09ZS5sb2dpbkF0dGVtcHRCYXNlP3QuTG9naW5BdHRlbXB0QmFzZS5mcm9tUGFydGlhbChlLmxvZ2luQXR0ZW1wdEJhc2UpOnZvaWQgMCxufX0sdC5Mb2dpbldpdGhQYXNzd29yZEF0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZ0LkxvZ2luQXR0ZW1wdEJhc2UuZW5jb2RlKGUubG9naW5BdHRlbXB0QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5sb2dpbklkZW50aWZpZXJUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5sb2dpbklkZW50aWZpZXJUeXBlKSxcIlwiIT09ZS5sb2dpbklkZW50aWZpZXJIYXNoJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubG9naW5JZGVudGlmaWVySGFzaCksMCE9PWUuaXNMb2dpbklkZW50aWZpZXJWZXJpZmllZCYmbi51aW50MzIoMzIpLmludDMyKGUuaXNMb2dpbklkZW50aWZpZXJWZXJpZmllZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsb2dpbkF0dGVtcHRCYXNlOnZvaWQgMCxsb2dpbklkZW50aWZpZXJUeXBlOjAsbG9naW5JZGVudGlmaWVySGFzaDpcIlwiLGlzTG9naW5JZGVudGlmaWVyVmVyaWZpZWQ6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9naW5BdHRlbXB0QmFzZT10LkxvZ2luQXR0ZW1wdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubG9naW5JZGVudGlmaWVyVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEubG9naW5JZGVudGlmaWVySGFzaD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLmlzTG9naW5JZGVudGlmaWVyVmVyaWZpZWQ9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDAsbG9naW5JZGVudGlmaWVyVHlwZTowLGxvZ2luSWRlbnRpZmllckhhc2g6XCJcIixpc0xvZ2luSWRlbnRpZmllclZlcmlmaWVkOjB9O3JldHVybiBuLmxvZ2luQXR0ZW1wdEJhc2U9dm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZudWxsIT09ZS5sb2dpbkF0dGVtcHRCYXNlP3QuTG9naW5BdHRlbXB0QmFzZS5mcm9tUGFydGlhbChlLmxvZ2luQXR0ZW1wdEJhc2UpOnZvaWQgMCxuLmxvZ2luSWRlbnRpZmllclR5cGU9ZS5sb2dpbklkZW50aWZpZXJUeXBlPz8wLG4ubG9naW5JZGVudGlmaWVySGFzaD1lLmxvZ2luSWRlbnRpZmllckhhc2g/P1wiXCIsbi5pc0xvZ2luSWRlbnRpZmllclZlcmlmaWVkPWUuaXNMb2dpbklkZW50aWZpZXJWZXJpZmllZD8/MCxufX0sdC5NZXJsaW5BdXRoQWNjb3VudEZvdW5kUGFnZVZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5tZXJsaW5BdXRoQWNjb3VudFR5cGUmJm4udWludDMyKDMyKS5pbnQzMihlLm1lcmxpbkF1dGhBY2NvdW50VHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxtZXJsaW5BdXRoQWNjb3VudFR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSA0OmEubWVybGluQXV0aEFjY291bnRUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwLG1lcmxpbkF1dGhBY2NvdW50VHlwZTowfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbi5tZXJsaW5BdXRoQWNjb3VudFR5cGU9ZS5tZXJsaW5BdXRoQWNjb3VudFR5cGU/PzAsbn19LHQuTWVybGluQXV0aENoZWNrRW1haWxQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NZXJsaW5BdXRoQ29kZUV4cGlyZWRQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NZXJsaW5BdXRoQ29ubmVjdGlvbkVycm9yUGFnZVZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTWVybGluQXV0aENvbnRpbnVlV2l0aFNuYXBjaGF0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0Lk1lcmxpbkF1dGhFbWFpbENvZGVTdWJtaXQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTWVybGluQXV0aEVtYWlsRW50cnlQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NZXJsaW5BdXRoRW1haWxTdWJtaXQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTWVybGluQXV0aEVudGVyUGFzc3dvcmRQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NZXJsaW5BdXRoRXJyb3JFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NZXJsaW5BdXRoRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5tZXJsaW5BdXRoRXZlbnRUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5tZXJsaW5BdXRoRXZlbnRUeXBlKSwwIT09ZS5tZXJsaW5BdXRoQWNjb3VudFR5cGUmJm4udWludDMyKDI0KS5pbnQzMihlLm1lcmxpbkF1dGhBY2NvdW50VHlwZSksMCE9PWUuYWNjb3VudEluZm9UeXBlJiZuLnVpbnQzMigzMikuaW50MzIoZS5hY2NvdW50SW5mb1R5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDAsbWVybGluQXV0aEV2ZW50VHlwZTowLG1lcmxpbkF1dGhBY2NvdW50VHlwZTowLGFjY291bnRJbmZvVHlwZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5tZXJsaW5BdXRoRXZlbnRUeXBlPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5tZXJsaW5BdXRoQWNjb3VudFR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLmFjY291bnRJbmZvVHlwZT1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMCxtZXJsaW5BdXRoRXZlbnRUeXBlOjAsbWVybGluQXV0aEFjY291bnRUeXBlOjAsYWNjb3VudEluZm9UeXBlOjB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxuLm1lcmxpbkF1dGhFdmVudFR5cGU9ZS5tZXJsaW5BdXRoRXZlbnRUeXBlPz8wLG4ubWVybGluQXV0aEFjY291bnRUeXBlPWUubWVybGluQXV0aEFjY291bnRUeXBlPz8wLG4uYWNjb3VudEluZm9UeXBlPWUuYWNjb3VudEluZm9UeXBlPz8wLG59fSx0Lk1lcmxpbkF1dGhHZW5lcmljRXJyb3JQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NZXJsaW5BdXRoTWFnaWNDb2RlUGFnZVZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTWVybGluQXV0aE1hZ2ljQ29kZVN1Ym1pdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJnQuQml0bW9qaUFwcEV2ZW50QmFzZS5lbmNvZGUoZS5iaXRtb2ppQXBwRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5iaXRtb2ppQXBwRXZlbnRCYXNlPXQuQml0bW9qaUFwcEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Yml0bW9qaUFwcEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmJpdG1vamlBcHBFdmVudEJhc2U9dm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZudWxsIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlP3QuQml0bW9qaUFwcEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmJpdG1vamlBcHBFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NZXJsaW5BdXRoTm9BY2NvdW50UGFnZVZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTWVybGluQXV0aFBhc3N3b3JkU3VibWl0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmdC5CaXRtb2ppQXBwRXZlbnRCYXNlLmVuY29kZShlLmJpdG1vamlBcHBFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmJpdG1vamlBcHBFdmVudEJhc2U9dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtiaXRtb2ppQXBwRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4uYml0bW9qaUFwcEV2ZW50QmFzZT12b2lkIDAhPT1lLmJpdG1vamlBcHBFdmVudEJhc2UmJm51bGwhPT1lLmJpdG1vamlBcHBFdmVudEJhc2U/dC5CaXRtb2ppQXBwRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuYml0bW9qaUFwcEV2ZW50QmFzZSk6dm9pZCAwLG59fSx0Lk1lcmxpbkF1dGhTZW5kRW1haWxTdWJtaXQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5iaXRtb2ppQXBwRXZlbnRCYXNlJiZ0LkJpdG1vamlBcHBFdmVudEJhc2UuZW5jb2RlKGUuYml0bW9qaUFwcEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuYml0bW9qaUFwcEV2ZW50QmFzZT10LkJpdG1vamlBcHBFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2JpdG1vamlBcHBFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5iaXRtb2ppQXBwRXZlbnRCYXNlPXZvaWQgMCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZSYmbnVsbCE9PWUuYml0bW9qaUFwcEV2ZW50QmFzZT90LkJpdG1vamlBcHBFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5iaXRtb2ppQXBwRXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuTWluaUFkZHJlc3NDaGFuZ2VFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLm1pbmlBZGRyZXNzQ29tcGxldGVFdmVudCYmdC5NaW5pQWRkcmVzc0NvbXBsZXRlRXZlbnQuZW5jb2RlKGUubWluaUFkZHJlc3NDb21wbGV0ZUV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bWluaUFkZHJlc3NDb21wbGV0ZUV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLm1pbmlBZGRyZXNzQ29tcGxldGVFdmVudD10Lk1pbmlBZGRyZXNzQ29tcGxldGVFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bWluaUFkZHJlc3NDb21wbGV0ZUV2ZW50OnZvaWQgMH07cmV0dXJuIG4ubWluaUFkZHJlc3NDb21wbGV0ZUV2ZW50PXZvaWQgMCE9PWUubWluaUFkZHJlc3NDb21wbGV0ZUV2ZW50JiZudWxsIT09ZS5taW5pQWRkcmVzc0NvbXBsZXRlRXZlbnQ/dC5NaW5pQWRkcmVzc0NvbXBsZXRlRXZlbnQuZnJvbVBhcnRpYWwoZS5taW5pQWRkcmVzc0NvbXBsZXRlRXZlbnQpOnZvaWQgMCxufX0sdC5NaW5pQWRkcmVzc0NvbXBsZXRlRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlJiZ0Lk1pbmlTZXJ2ZXJFdmVudEJhc2UuZW5jb2RlKGUubWluaVNlcnZlckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5mb3JtRGF0YSYmbi51aW50MzIoMTgpLnN0cmluZyhlLmZvcm1EYXRhKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e21pbmlTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLGZvcm1EYXRhOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLm1pbmlTZXJ2ZXJFdmVudEJhc2U9dC5NaW5pU2VydmVyRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmZvcm1EYXRhPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXttaW5pU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxmb3JtRGF0YTpcIlwifTtyZXR1cm4gbi5taW5pU2VydmVyRXZlbnRCYXNlPXZvaWQgMCE9PWUubWluaVNlcnZlckV2ZW50QmFzZSYmbnVsbCE9PWUubWluaVNlcnZlckV2ZW50QmFzZT90Lk1pbmlTZXJ2ZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5taW5pU2VydmVyRXZlbnRCYXNlKTp2b2lkIDAsbi5mb3JtRGF0YT1lLmZvcm1EYXRhPz9cIlwiLG59fSx0Lk1pbmlBZGRyZXNzU3RhcnRFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLm1pbmlTZXJ2ZXJFdmVudEJhc2UmJnQuTWluaVNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS5taW5pU2VydmVyRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bWluaVNlcnZlckV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5taW5pU2VydmVyRXZlbnRCYXNlPXQuTWluaVNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bWluaVNlcnZlckV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLm1pbmlTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlP3QuTWluaVNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLm1pbmlTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NaW5pQ2xpY2tEaXN0aW5jdFVzZXJFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNhbHRlZElkTWluaVNlcnZlckV2ZW50JiZ0LlNhbHRlZElkTWluaVNlcnZlckV2ZW50LmVuY29kZShlLnNhbHRlZElkTWluaVNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmV2ZW50Q2F0ZWdvcnkmJm4udWludDMyKDE4KS5zdHJpbmcoZS5ldmVudENhdGVnb3J5KSxcIlwiIT09ZS5ldmVudExhYmVsJiZuLnVpbnQzMigyNikuc3RyaW5nKGUuZXZlbnRMYWJlbCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzYWx0ZWRJZE1pbmlTZXJ2ZXJFdmVudDp2b2lkIDAsZXZlbnRDYXRlZ29yeTpcIlwiLGV2ZW50TGFiZWw6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc2FsdGVkSWRNaW5pU2VydmVyRXZlbnQ9dC5TYWx0ZWRJZE1pbmlTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5ldmVudENhdGVnb3J5PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuZXZlbnRMYWJlbD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c2FsdGVkSWRNaW5pU2VydmVyRXZlbnQ6dm9pZCAwLGV2ZW50Q2F0ZWdvcnk6XCJcIixldmVudExhYmVsOlwiXCJ9O3JldHVybiBuLnNhbHRlZElkTWluaVNlcnZlckV2ZW50PXZvaWQgMCE9PWUuc2FsdGVkSWRNaW5pU2VydmVyRXZlbnQmJm51bGwhPT1lLnNhbHRlZElkTWluaVNlcnZlckV2ZW50P3QuU2FsdGVkSWRNaW5pU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5zYWx0ZWRJZE1pbmlTZXJ2ZXJFdmVudCk6dm9pZCAwLG4uZXZlbnRDYXRlZ29yeT1lLmV2ZW50Q2F0ZWdvcnk/P1wiXCIsbi5ldmVudExhYmVsPWUuZXZlbnRMYWJlbD8/XCJcIixufX0sdC5NaW5pQ2xpY2tFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQmJnQuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5lbmNvZGUoZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2F0ZWdvcnlMYWJlbE1pbmlFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50PXQuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2F0ZWdvcnlMYWJlbE1pbmlFdmVudDp2b2lkIDB9O3JldHVybiBuLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQ9dm9pZCAwIT09ZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50JiZudWxsIT09ZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50P3QuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5mcm9tUGFydGlhbChlLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQpOnZvaWQgMCxufX0sdC5NaW5pRXJyb3JFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhdGVnb3J5TWluaUV2ZW50JiZ0LkNhdGVnb3J5TWluaUV2ZW50LmVuY29kZShlLmNhdGVnb3J5TWluaUV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2F0ZWdvcnlNaW5pRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuY2F0ZWdvcnlNaW5pRXZlbnQ9dC5DYXRlZ29yeU1pbmlFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2F0ZWdvcnlNaW5pRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5jYXRlZ29yeU1pbmlFdmVudD12b2lkIDAhPT1lLmNhdGVnb3J5TWluaUV2ZW50JiZudWxsIT09ZS5jYXRlZ29yeU1pbmlFdmVudD90LkNhdGVnb3J5TWluaUV2ZW50LmZyb21QYXJ0aWFsKGUuY2F0ZWdvcnlNaW5pRXZlbnQpOnZvaWQgMCxufX0sdC5NaW5pRm9ybVByb2dyZXNzRXZlbnQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5mb3JtRGF0YU1pbmlFdmVudCYmdC5Gb3JtRGF0YU1pbmlFdmVudC5lbmNvZGUoZS5mb3JtRGF0YU1pbmlFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2Zvcm1EYXRhTWluaUV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLmZvcm1EYXRhTWluaUV2ZW50PXQuRm9ybURhdGFNaW5pRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2Zvcm1EYXRhTWluaUV2ZW50OnZvaWQgMH07cmV0dXJuIG4uZm9ybURhdGFNaW5pRXZlbnQ9dm9pZCAwIT09ZS5mb3JtRGF0YU1pbmlFdmVudCYmbnVsbCE9PWUuZm9ybURhdGFNaW5pRXZlbnQ/dC5Gb3JtRGF0YU1pbmlFdmVudC5mcm9tUGFydGlhbChlLmZvcm1EYXRhTWluaUV2ZW50KTp2b2lkIDAsbn19LHQuTWluaU9uYm9hcmRpbmdDb21wbGV0ZUV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubWluaVNlcnZlckV2ZW50QmFzZSYmdC5NaW5pU2VydmVyRXZlbnRCYXNlLmVuY29kZShlLm1pbmlTZXJ2ZXJFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXttaW5pU2VydmVyRXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLm1pbmlTZXJ2ZXJFdmVudEJhc2U9dC5NaW5pU2VydmVyRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXttaW5pU2VydmVyRXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ubWluaVNlcnZlckV2ZW50QmFzZT12b2lkIDAhPT1lLm1pbmlTZXJ2ZXJFdmVudEJhc2UmJm51bGwhPT1lLm1pbmlTZXJ2ZXJFdmVudEJhc2U/dC5NaW5pU2VydmVyRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubWluaVNlcnZlckV2ZW50QmFzZSk6dm9pZCAwLG59fSx0Lk1pbmlPbmJvYXJkaW5nU3RhcnRFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLm1pbmlTZXJ2ZXJFdmVudEJhc2UmJnQuTWluaVNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS5taW5pU2VydmVyRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bWluaVNlcnZlckV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5taW5pU2VydmVyRXZlbnRCYXNlPXQuTWluaVNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bWluaVNlcnZlckV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLm1pbmlTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlP3QuTWluaVNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLm1pbmlTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5NaW5pUGFnZXZpZXdFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQmJnQuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5lbmNvZGUoZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2F0ZWdvcnlMYWJlbE1pbmlFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50PXQuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2F0ZWdvcnlMYWJlbE1pbmlFdmVudDp2b2lkIDB9O3JldHVybiBuLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQ9dm9pZCAwIT09ZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50JiZudWxsIT09ZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50P3QuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5mcm9tUGFydGlhbChlLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQpOnZvaWQgMCxufX0sdC5NaW5pU2NyZWVuc2hvdEV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuY2F0ZWdvcnlNaW5pRXZlbnQmJnQuQ2F0ZWdvcnlNaW5pRXZlbnQuZW5jb2RlKGUuY2F0ZWdvcnlNaW5pRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtjYXRlZ29yeU1pbmlFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jYXRlZ29yeU1pbmlFdmVudD10LkNhdGVnb3J5TWluaUV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtjYXRlZ29yeU1pbmlFdmVudDp2b2lkIDB9O3JldHVybiBuLmNhdGVnb3J5TWluaUV2ZW50PXZvaWQgMCE9PWUuY2F0ZWdvcnlNaW5pRXZlbnQmJm51bGwhPT1lLmNhdGVnb3J5TWluaUV2ZW50P3QuQ2F0ZWdvcnlNaW5pRXZlbnQuZnJvbVBhcnRpYWwoZS5jYXRlZ29yeU1pbmlFdmVudCk6dm9pZCAwLG59fSx0Lk1pbmlTZWxlY3Rpb25DaGFuZ2VFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQmJnQuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5lbmNvZGUoZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17Y2F0ZWdvcnlMYWJlbE1pbmlFdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50PXQuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17Y2F0ZWdvcnlMYWJlbE1pbmlFdmVudDp2b2lkIDB9O3JldHVybiBuLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQ9dm9pZCAwIT09ZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50JiZudWxsIT09ZS5jYXRlZ29yeUxhYmVsTWluaUV2ZW50P3QuQ2F0ZWdvcnlMYWJlbE1pbmlFdmVudC5mcm9tUGFydGlhbChlLmNhdGVnb3J5TGFiZWxNaW5pRXZlbnQpOnZvaWQgMCxufX0sdC5NeWxlbnNlc0NvbW11bml0eUF1ZGllbmNlUGFnZVZpZXc9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5teWxlbnNlc1Nlc3Npb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLm15bGVuc2VzU2Vzc2lvbklkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG15bGVuc2VzU2Vzc2lvbklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm15bGVuc2VzU2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxteWxlbnNlc1Nlc3Npb25JZDpcIlwifTtyZXR1cm4gbi5sZW5zU3R1ZGlvRXZlbnRCYXNlPXZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmbnVsbCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZT90LkxlbnNzdHVkaW9FdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlKTp2b2lkIDAsbi5teWxlbnNlc1Nlc3Npb25JZD1lLm15bGVuc2VzU2Vzc2lvbklkPz9cIlwiLG59fSx0Lk15bGVuc2VzSW5zaWdodHNQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm15bGVuc2VzU2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubXlsZW5zZXNTZXNzaW9uSWQpLDAhPT1lLnNlY3Rpb24mJm4udWludDMyKDMyKS5pbnQzMihlLnNlY3Rpb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsbXlsZW5zZXNTZXNzaW9uSWQ6XCJcIixzZWN0aW9uOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm15bGVuc2VzU2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEuc2VjdGlvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxteWxlbnNlc1Nlc3Npb25JZDpcIlwiLHNlY3Rpb246MH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4ubXlsZW5zZXNTZXNzaW9uSWQ9ZS5teWxlbnNlc1Nlc3Npb25JZD8/XCJcIixuLnNlY3Rpb249ZS5zZWN0aW9uPz8wLG59fSx0Lk15bGVuc2VzTWFuYWdlbWVudFBhZ2VBY3Rpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5teWxlbnNlc1Nlc3Npb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLm15bGVuc2VzU2Vzc2lvbklkKSwwIT09ZS5wYWdlVHlwZSYmbi51aW50MzIoMjQpLmludDMyKGUucGFnZVR5cGUpLDAhPT1lLmFjdGlvbiYmbi51aW50MzIoMzIpLmludDMyKGUuYWN0aW9uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG15bGVuc2VzU2Vzc2lvbklkOlwiXCIscGFnZVR5cGU6MCxhY3Rpb246MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubXlsZW5zZXNTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5wYWdlVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEuYWN0aW9uPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG15bGVuc2VzU2Vzc2lvbklkOlwiXCIscGFnZVR5cGU6MCxhY3Rpb246MH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4ubXlsZW5zZXNTZXNzaW9uSWQ9ZS5teWxlbnNlc1Nlc3Npb25JZD8/XCJcIixuLnBhZ2VUeXBlPWUucGFnZVR5cGU/PzAsbi5hY3Rpb249ZS5hY3Rpb24/PzAsbn19LHQuTXlsZW5zZXNNYW5hZ2VtZW50UGFnZU9wZW49e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZ0LkxlbnNzdHVkaW9FdmVudEJhc2UuZW5jb2RlKGUubGVuc1N0dWRpb0V2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5teWxlbnNlc1Nlc3Npb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLm15bGVuc2VzU2Vzc2lvbklkKSwwIT09ZS5lbnRyeVBvaW50JiZuLnVpbnQzMigyNCkuaW50MzIoZS5lbnRyeVBvaW50KSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG15bGVuc2VzU2Vzc2lvbklkOlwiXCIsZW50cnlQb2ludDowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sZW5zU3R1ZGlvRXZlbnRCYXNlPXQuTGVuc3N0dWRpb0V2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5teWxlbnNlc1Nlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLmVudHJ5UG9pbnQ9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsbXlsZW5zZXNTZXNzaW9uSWQ6XCJcIixlbnRyeVBvaW50OjB9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxuLm15bGVuc2VzU2Vzc2lvbklkPWUubXlsZW5zZXNTZXNzaW9uSWQ/P1wiXCIsbi5lbnRyeVBvaW50PWUuZW50cnlQb2ludD8/MCxufX0sdC5NeWxlbnNlc01hbmFnZW1lbnRQYWdlVmlldz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJnQuTGVuc3N0dWRpb0V2ZW50QmFzZS5lbmNvZGUoZS5sZW5zU3R1ZGlvRXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm15bGVuc2VzU2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUubXlsZW5zZXNTZXNzaW9uSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bGVuc1N0dWRpb0V2ZW50QmFzZTp2b2lkIDAsbXlsZW5zZXNTZXNzaW9uSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubGVuc1N0dWRpb0V2ZW50QmFzZT10LkxlbnNzdHVkaW9FdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubXlsZW5zZXNTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLG15bGVuc2VzU2Vzc2lvbklkOlwiXCJ9O3JldHVybiBuLmxlbnNTdHVkaW9FdmVudEJhc2U9dm9pZCAwIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlJiZudWxsIT09ZS5sZW5zU3R1ZGlvRXZlbnRCYXNlP3QuTGVuc3N0dWRpb0V2ZW50QmFzZS5mcm9tUGFydGlhbChlLmxlbnNTdHVkaW9FdmVudEJhc2UpOnZvaWQgMCxuLm15bGVuc2VzU2Vzc2lvbklkPWUubXlsZW5zZXNTZXNzaW9uSWQ/P1wiXCIsbn19LHQuTXlsZW5zZXNSYXRpbmdGb3JtQWN0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubGVuc1N0dWRpb0V2ZW50QmFzZSYmdC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmVuY29kZShlLmxlbnNTdHVkaW9FdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLnJhdGluZyYmbi51aW50MzIoMTYpLnVpbnQ2NChlLnJhdGluZyksXCJcIiE9PWUuY29tbWVudCYmbi51aW50MzIoMjYpLnN0cmluZyhlLmNvbW1lbnQpLFwiXCIhPT1lLm15bGVuc2VzU2Vzc2lvbklkJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUubXlsZW5zZXNTZXNzaW9uSWQpLDAhPT1lLmFjdGlvbiYmbi51aW50MzIoNDApLmludDMyKGUuYWN0aW9uKSwwIT09ZS5zb3VyY2UmJm4udWludDMyKDQ4KS5pbnQzMihlLnNvdXJjZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsZW5zU3R1ZGlvRXZlbnRCYXNlOnZvaWQgMCxyYXRpbmc6XCIwXCIsY29tbWVudDpcIlwiLG15bGVuc2VzU2Vzc2lvbklkOlwiXCIsYWN0aW9uOjAsc291cmNlOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxlbnNTdHVkaW9FdmVudEJhc2U9dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnJhdGluZz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLmNvbW1lbnQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5teWxlbnNlc1Nlc3Npb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLmFjdGlvbj1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuc291cmNlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xlbnNTdHVkaW9FdmVudEJhc2U6dm9pZCAwLHJhdGluZzpcIjBcIixjb21tZW50OlwiXCIsbXlsZW5zZXNTZXNzaW9uSWQ6XCJcIixhY3Rpb246MCxzb3VyY2U6MH07cmV0dXJuIG4ubGVuc1N0dWRpb0V2ZW50QmFzZT12b2lkIDAhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2UmJm51bGwhPT1lLmxlbnNTdHVkaW9FdmVudEJhc2U/dC5MZW5zc3R1ZGlvRXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUubGVuc1N0dWRpb0V2ZW50QmFzZSk6dm9pZCAwLG4ucmF0aW5nPWUucmF0aW5nPz9cIjBcIixuLmNvbW1lbnQ9ZS5jb21tZW50Pz9cIlwiLG4ubXlsZW5zZXNTZXNzaW9uSWQ9ZS5teWxlbnNlc1Nlc3Npb25JZD8/XCJcIixuLmFjdGlvbj1lLmFjdGlvbj8/MCxuLnNvdXJjZT1lLnNvdXJjZT8/MCxufX0sdC5QYXltZW50c0tpdEJlZ2luT3JkZXJBdHRlbXB0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2UmJnQuUGF5bWVudHNLaXRFdmVudEJhc2UuZW5jb2RlKGUucGF5bWVudHNLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuaXRlbUlkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuaXRlbUlkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3BheW1lbnRzS2l0RXZlbnRCYXNlOnZvaWQgMCxpdGVtSWQ6XCJcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEucGF5bWVudHNLaXRFdmVudEJhc2U9dC5QYXltZW50c0tpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5pdGVtSWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3BheW1lbnRzS2l0RXZlbnRCYXNlOnZvaWQgMCxpdGVtSWQ6XCJcIn07cmV0dXJuIG4ucGF5bWVudHNLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmbnVsbCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2U/dC5QYXltZW50c0tpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnBheW1lbnRzS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5pdGVtSWQ9ZS5pdGVtSWQ/P1wiXCIsbn19LHQuUGF5bWVudHNLaXRCZWdpbk9yZGVyQ29tcGxldGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmdC5QYXltZW50c0tpdEV2ZW50QmFzZS5lbmNvZGUoZS5wYXltZW50c0tpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwhMD09PWUucGF5bWVudHNLaXRTdGF0dXMmJm4udWludDMyKDE2KS5ib29sKGUucGF5bWVudHNLaXRTdGF0dXMpLDAhPT1lLmZhaWx1cmVSZWFzb24mJm4udWludDMyKDI0KS5pbnQzMihlLmZhaWx1cmVSZWFzb24pLFwiXCIhPT1lLml0ZW1JZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLml0ZW1JZCksXCJcIiE9PWUudHJhbnNhY3Rpb25JZCYmbi51aW50MzIoNDIpLnN0cmluZyhlLnRyYW5zYWN0aW9uSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cGF5bWVudHNLaXRFdmVudEJhc2U6dm9pZCAwLHBheW1lbnRzS2l0U3RhdHVzOiExLGZhaWx1cmVSZWFzb246MCxpdGVtSWQ6XCJcIix0cmFuc2FjdGlvbklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnBheW1lbnRzS2l0RXZlbnRCYXNlPXQuUGF5bWVudHNLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEucGF5bWVudHNLaXRTdGF0dXM9ci5ib29sKCk7YnJlYWs7Y2FzZSAzOmEuZmFpbHVyZVJlYXNvbj1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEuaXRlbUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEudHJhbnNhY3Rpb25JZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cGF5bWVudHNLaXRFdmVudEJhc2U6dm9pZCAwLHBheW1lbnRzS2l0U3RhdHVzOiExLGZhaWx1cmVSZWFzb246MCxpdGVtSWQ6XCJcIix0cmFuc2FjdGlvbklkOlwiXCJ9O3JldHVybiBuLnBheW1lbnRzS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2UmJm51bGwhPT1lLnBheW1lbnRzS2l0RXZlbnRCYXNlP3QuUGF5bWVudHNLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5wYXltZW50c0tpdEV2ZW50QmFzZSk6dm9pZCAwLG4ucGF5bWVudHNLaXRTdGF0dXM9ZS5wYXltZW50c0tpdFN0YXR1cz8/ITEsbi5mYWlsdXJlUmVhc29uPWUuZmFpbHVyZVJlYXNvbj8/MCxuLml0ZW1JZD1lLml0ZW1JZD8/XCJcIixuLnRyYW5zYWN0aW9uSWQ9ZS50cmFuc2FjdGlvbklkPz9cIlwiLG59fSx0LlBheW1lbnRzS2l0Q29uc3VtZU9yZGVyQXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnBheW1lbnRzS2l0RXZlbnRCYXNlJiZ0LlBheW1lbnRzS2l0RXZlbnRCYXNlLmVuY29kZShlLnBheW1lbnRzS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm9yZGVySWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5vcmRlcklkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3BheW1lbnRzS2l0RXZlbnRCYXNlOnZvaWQgMCxvcmRlcklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnBheW1lbnRzS2l0RXZlbnRCYXNlPXQuUGF5bWVudHNLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEub3JkZXJJZD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cGF5bWVudHNLaXRFdmVudEJhc2U6dm9pZCAwLG9yZGVySWQ6XCJcIn07cmV0dXJuIG4ucGF5bWVudHNLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmbnVsbCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2U/dC5QYXltZW50c0tpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnBheW1lbnRzS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5vcmRlcklkPWUub3JkZXJJZD8/XCJcIixufX0sdC5QYXltZW50c0tpdENvbnN1bWVPcmRlckNvbXBsZXRlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2UmJnQuUGF5bWVudHNLaXRFdmVudEJhc2UuZW5jb2RlKGUucGF5bWVudHNLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUub3JkZXJJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLm9yZGVySWQpLCEwPT09ZS5wYXltZW50c0tpdFN0YXR1cyYmbi51aW50MzIoMjQpLmJvb2woZS5wYXltZW50c0tpdFN0YXR1cyksMCE9PWUuZmFpbHVyZVJlYXNvbiYmbi51aW50MzIoMzIpLmludDMyKGUuZmFpbHVyZVJlYXNvbiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwYXltZW50c0tpdEV2ZW50QmFzZTp2b2lkIDAsb3JkZXJJZDpcIlwiLHBheW1lbnRzS2l0U3RhdHVzOiExLGZhaWx1cmVSZWFzb246MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEucGF5bWVudHNLaXRFdmVudEJhc2U9dC5QYXltZW50c0tpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5vcmRlcklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEucGF5bWVudHNLaXRTdGF0dXM9ci5ib29sKCk7YnJlYWs7Y2FzZSA0OmEuZmFpbHVyZVJlYXNvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwYXltZW50c0tpdEV2ZW50QmFzZTp2b2lkIDAsb3JkZXJJZDpcIlwiLHBheW1lbnRzS2l0U3RhdHVzOiExLGZhaWx1cmVSZWFzb246MH07cmV0dXJuIG4ucGF5bWVudHNLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmbnVsbCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2U/dC5QYXltZW50c0tpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnBheW1lbnRzS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5vcmRlcklkPWUub3JkZXJJZD8/XCJcIixuLnBheW1lbnRzS2l0U3RhdHVzPWUucGF5bWVudHNLaXRTdGF0dXM/PyExLG4uZmFpbHVyZVJlYXNvbj1lLmZhaWx1cmVSZWFzb24/PzAsbn19LHQuUGF5bWVudHNLaXRFdmVudEJhc2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJnQuS2l0RXZlbnRCYXNlLmVuY29kZShlLmtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2tpdEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5raXRFdmVudEJhc2U9dC5LaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmbnVsbCE9PWUua2l0RXZlbnRCYXNlP3QuS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUua2l0RXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuUGF5bWVudHNLaXRHZXRJdGVtc0F0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmdC5QYXltZW50c0tpdEV2ZW50QmFzZS5lbmNvZGUoZS5wYXltZW50c0tpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3BheW1lbnRzS2l0RXZlbnRCYXNlOnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnBheW1lbnRzS2l0RXZlbnRCYXNlPXQuUGF5bWVudHNLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3BheW1lbnRzS2l0RXZlbnRCYXNlOnZvaWQgMH07cmV0dXJuIG4ucGF5bWVudHNLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmbnVsbCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2U/dC5QYXltZW50c0tpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnBheW1lbnRzS2l0RXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuUGF5bWVudHNLaXRHZXRJdGVtc0NvbXBsZXRlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2UmJnQuUGF5bWVudHNLaXRFdmVudEJhc2UuZW5jb2RlKGUucGF5bWVudHNLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksITA9PT1lLnBheW1lbnRzS2l0U3RhdHVzJiZuLnVpbnQzMigxNikuYm9vbChlLnBheW1lbnRzS2l0U3RhdHVzKSwwIT09ZS5mYWlsdXJlUmVhc29uJiZuLnVpbnQzMigyNCkuaW50MzIoZS5mYWlsdXJlUmVhc29uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3BheW1lbnRzS2l0RXZlbnRCYXNlOnZvaWQgMCxwYXltZW50c0tpdFN0YXR1czohMSxmYWlsdXJlUmVhc29uOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnBheW1lbnRzS2l0RXZlbnRCYXNlPXQuUGF5bWVudHNLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEucGF5bWVudHNLaXRTdGF0dXM9ci5ib29sKCk7YnJlYWs7Y2FzZSAzOmEuZmFpbHVyZVJlYXNvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwYXltZW50c0tpdEV2ZW50QmFzZTp2b2lkIDAscGF5bWVudHNLaXRTdGF0dXM6ITEsZmFpbHVyZVJlYXNvbjowfTtyZXR1cm4gbi5wYXltZW50c0tpdEV2ZW50QmFzZT12b2lkIDAhPT1lLnBheW1lbnRzS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZT90LlBheW1lbnRzS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUucGF5bWVudHNLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnBheW1lbnRzS2l0U3RhdHVzPWUucGF5bWVudHNLaXRTdGF0dXM/PyExLG4uZmFpbHVyZVJlYXNvbj1lLmZhaWx1cmVSZWFzb24/PzAsbn19LHQuUGF5bWVudHNLaXRHZXRVbmNvbnN1bWVkT3JkZXJzQXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnBheW1lbnRzS2l0RXZlbnRCYXNlJiZ0LlBheW1lbnRzS2l0RXZlbnRCYXNlLmVuY29kZShlLnBheW1lbnRzS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cGF5bWVudHNLaXRFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucGF5bWVudHNLaXRFdmVudEJhc2U9dC5QYXltZW50c0tpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cGF5bWVudHNLaXRFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5wYXltZW50c0tpdEV2ZW50QmFzZT12b2lkIDAhPT1lLnBheW1lbnRzS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZT90LlBheW1lbnRzS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUucGF5bWVudHNLaXRFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5QYXltZW50c0tpdEdldFVuY29uc3VtZWRPcmRlcnNDb21wbGV0ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnBheW1lbnRzS2l0RXZlbnRCYXNlJiZ0LlBheW1lbnRzS2l0RXZlbnRCYXNlLmVuY29kZShlLnBheW1lbnRzS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLCEwPT09ZS5wYXltZW50c0tpdFN0YXR1cyYmbi51aW50MzIoMTYpLmJvb2woZS5wYXltZW50c0tpdFN0YXR1cyksMCE9PWUuZmFpbHVyZVJlYXNvbiYmbi51aW50MzIoMjQpLmludDMyKGUuZmFpbHVyZVJlYXNvbiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwYXltZW50c0tpdEV2ZW50QmFzZTp2b2lkIDAscGF5bWVudHNLaXRTdGF0dXM6ITEsZmFpbHVyZVJlYXNvbjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5wYXltZW50c0tpdEV2ZW50QmFzZT10LlBheW1lbnRzS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnBheW1lbnRzS2l0U3RhdHVzPXIuYm9vbCgpO2JyZWFrO2Nhc2UgMzphLmZhaWx1cmVSZWFzb249ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cGF5bWVudHNLaXRFdmVudEJhc2U6dm9pZCAwLHBheW1lbnRzS2l0U3RhdHVzOiExLGZhaWx1cmVSZWFzb246MH07cmV0dXJuIG4ucGF5bWVudHNLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmbnVsbCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2U/dC5QYXltZW50c0tpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnBheW1lbnRzS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5wYXltZW50c0tpdFN0YXR1cz1lLnBheW1lbnRzS2l0U3RhdHVzPz8hMSxuLmZhaWx1cmVSZWFzb249ZS5mYWlsdXJlUmVhc29uPz8wLG59fSx0LlBheW1lbnRzS2l0T3JkZXJBdHRlbXB0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2UmJnQuUGF5bWVudHNLaXRFdmVudEJhc2UuZW5jb2RlKGUucGF5bWVudHNLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuaXRlbUlkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuaXRlbUlkKSxcIlwiIT09ZS50cmFuc2FjdGlvbklkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUudHJhbnNhY3Rpb25JZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwYXltZW50c0tpdEV2ZW50QmFzZTp2b2lkIDAsaXRlbUlkOlwiXCIsdHJhbnNhY3Rpb25JZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5wYXltZW50c0tpdEV2ZW50QmFzZT10LlBheW1lbnRzS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLml0ZW1JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnRyYW5zYWN0aW9uSWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3BheW1lbnRzS2l0RXZlbnRCYXNlOnZvaWQgMCxpdGVtSWQ6XCJcIix0cmFuc2FjdGlvbklkOlwiXCJ9O3JldHVybiBuLnBheW1lbnRzS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2UmJm51bGwhPT1lLnBheW1lbnRzS2l0RXZlbnRCYXNlP3QuUGF5bWVudHNLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5wYXltZW50c0tpdEV2ZW50QmFzZSk6dm9pZCAwLG4uaXRlbUlkPWUuaXRlbUlkPz9cIlwiLG4udHJhbnNhY3Rpb25JZD1lLnRyYW5zYWN0aW9uSWQ/P1wiXCIsbn19LHQuUGF5bWVudHNLaXRPcmRlckNvbXBsZXRlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2UmJnQuUGF5bWVudHNLaXRFdmVudEJhc2UuZW5jb2RlKGUucGF5bWVudHNLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuaXRlbUlkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUuaXRlbUlkKSxcIlwiIT09ZS50cmFuc2FjdGlvbklkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUudHJhbnNhY3Rpb25JZCksXCJcIiE9PWUub3JkZXJJZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLm9yZGVySWQpLFwiXCIhPT1lLnNrdSYmbi51aW50MzIoNDIpLnN0cmluZyhlLnNrdSksXCIwXCIhPT1lLnRva2VuUXVhbnRpdHkmJm4udWludDMyKDQ4KS51aW50NjQoZS50b2tlblF1YW50aXR5KSwhMD09PWUucGF5bWVudHNLaXRTdGF0dXMmJm4udWludDMyKDU2KS5ib29sKGUucGF5bWVudHNLaXRTdGF0dXMpLDAhPT1lLmZhaWx1cmVSZWFzb24mJm4udWludDMyKDY0KS5pbnQzMihlLmZhaWx1cmVSZWFzb24pLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cGF5bWVudHNLaXRFdmVudEJhc2U6dm9pZCAwLGl0ZW1JZDpcIlwiLHRyYW5zYWN0aW9uSWQ6XCJcIixvcmRlcklkOlwiXCIsc2t1OlwiXCIsdG9rZW5RdWFudGl0eTpcIjBcIixwYXltZW50c0tpdFN0YXR1czohMSxmYWlsdXJlUmVhc29uOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnBheW1lbnRzS2l0RXZlbnRCYXNlPXQuUGF5bWVudHNLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuaXRlbUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEudHJhbnNhY3Rpb25JZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLm9yZGVySWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS5za3U9ci5zdHJpbmcoKTticmVhaztjYXNlIDY6YS50b2tlblF1YW50aXR5PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA3OmEucGF5bWVudHNLaXRTdGF0dXM9ci5ib29sKCk7YnJlYWs7Y2FzZSA4OmEuZmFpbHVyZVJlYXNvbj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwYXltZW50c0tpdEV2ZW50QmFzZTp2b2lkIDAsaXRlbUlkOlwiXCIsdHJhbnNhY3Rpb25JZDpcIlwiLG9yZGVySWQ6XCJcIixza3U6XCJcIix0b2tlblF1YW50aXR5OlwiMFwiLHBheW1lbnRzS2l0U3RhdHVzOiExLGZhaWx1cmVSZWFzb246MH07cmV0dXJuIG4ucGF5bWVudHNLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5wYXltZW50c0tpdEV2ZW50QmFzZSYmbnVsbCE9PWUucGF5bWVudHNLaXRFdmVudEJhc2U/dC5QYXltZW50c0tpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnBheW1lbnRzS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5pdGVtSWQ9ZS5pdGVtSWQ/P1wiXCIsbi50cmFuc2FjdGlvbklkPWUudHJhbnNhY3Rpb25JZD8/XCJcIixuLm9yZGVySWQ9ZS5vcmRlcklkPz9cIlwiLG4uc2t1PWUuc2t1Pz9cIlwiLG4udG9rZW5RdWFudGl0eT1lLnRva2VuUXVhbnRpdHk/P1wiMFwiLG4ucGF5bWVudHNLaXRTdGF0dXM9ZS5wYXltZW50c0tpdFN0YXR1cz8/ITEsbi5mYWlsdXJlUmVhc29uPWUuZmFpbHVyZVJlYXNvbj8/MCxufX0sdC5QdXNoTm90aWZpY2F0aW9uQWNjZXB0ZWRJbk1lc2g9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJnQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmVuY29kZShlLnB1c2hOb3RpZmljYXRpb25FdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3B1c2hOb3RpZmljYXRpb25FdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3B1c2hOb3RpZmljYXRpb25FdmVudDp2b2lkIDB9O3JldHVybiBuLnB1c2hOb3RpZmljYXRpb25FdmVudD12b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmbnVsbCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50P3QuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmZyb21QYXJ0aWFsKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50KTp2b2lkIDAsbn19LHQuUHVzaE5vdGlmaWNhdGlvbkNhbXBhaWduPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LlB1c2hOb3RpZmljYXRpb25EaXNwbGF5PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LlB1c2hOb3RpZmljYXRpb25GYWlsdXJlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LlB1c2hOb3RpZmljYXRpb25GYWlsdXJlSW5NZXNoPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LlB1c2hOb3RpZmljYXRpb25GYWlsdXJlSW5QTlM9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJnQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmVuY29kZShlLnB1c2hOb3RpZmljYXRpb25FdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3B1c2hOb3RpZmljYXRpb25FdmVudDp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3B1c2hOb3RpZmljYXRpb25FdmVudDp2b2lkIDB9O3JldHVybiBuLnB1c2hOb3RpZmljYXRpb25FdmVudD12b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmbnVsbCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50P3QuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmZyb21QYXJ0aWFsKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50KTp2b2lkIDAsbn19LHQuUHVzaE5vdGlmaWNhdGlvblJlY2VpdmVkPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LlB1c2hOb3RpZmljYXRpb25SZWNlaXZlZEluRXh0ZW5zaW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LlB1c2hOb3RpZmljYXRpb25SZWNlaXZlZEluTWVzaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZW5jb2RlKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnB1c2hOb3RpZmljYXRpb25FdmVudD10LlB1c2hOb3RpZmljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07cmV0dXJuIG4ucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZudWxsIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ/dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQpOnZvaWQgMCxufX0sdC5QdXNoTm90aWZpY2F0aW9uUmVjZWl2ZWRJblBOUz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZW5jb2RlKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnB1c2hOb3RpZmljYXRpb25FdmVudD10LlB1c2hOb3RpZmljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07cmV0dXJuIG4ucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZudWxsIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ/dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQpOnZvaWQgMCxufX0sdC5QdXNoTm90aWZpY2F0aW9uU3RhcnRlZEluTWVzaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZW5jb2RlKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnB1c2hOb3RpZmljYXRpb25FdmVudD10LlB1c2hOb3RpZmljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07cmV0dXJuIG4ucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZudWxsIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ/dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQpOnZvaWQgMCxufX0sdC5QdXNoTm90aWZpY2F0aW9uU3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZW5jb2RlKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnB1c2hOb3RpZmljYXRpb25FdmVudD10LlB1c2hOb3RpZmljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07cmV0dXJuIG4ucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZudWxsIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ/dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQpOnZvaWQgMCxufX0sdC5QdXNoTm90aWZpY2F0aW9uU3VjY2Vzc0luTWVzaD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudCYmdC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZW5jb2RlKGUucHVzaE5vdGlmaWNhdGlvbkV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO2lmKGU+Pj4zPT09MSlhLnB1c2hOb3RpZmljYXRpb25FdmVudD10LlB1c2hOb3RpZmljYXRpb25FdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17cHVzaE5vdGlmaWNhdGlvbkV2ZW50OnZvaWQgMH07cmV0dXJuIG4ucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZudWxsIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQ/dC5QdXNoTm90aWZpY2F0aW9uRXZlbnQuZnJvbVBhcnRpYWwoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQpOnZvaWQgMCxufX0sdC5QdXNoTm90aWZpY2F0aW9uU3VjY2Vzc0luUE5TPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUucHVzaE5vdGlmaWNhdGlvbkV2ZW50JiZ0LlB1c2hOb3RpZmljYXRpb25FdmVudC5lbmNvZGUoZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQsbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEucHVzaE5vdGlmaWNhdGlvbkV2ZW50PXQuUHVzaE5vdGlmaWNhdGlvbkV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2Vsc2Ugci5za2lwVHlwZSg3JmUpfXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtwdXNoTm90aWZpY2F0aW9uRXZlbnQ6dm9pZCAwfTtyZXR1cm4gbi5wdXNoTm90aWZpY2F0aW9uRXZlbnQ9dm9pZCAwIT09ZS5wdXNoTm90aWZpY2F0aW9uRXZlbnQmJm51bGwhPT1lLnB1c2hOb3RpZmljYXRpb25FdmVudD90LlB1c2hOb3RpZmljYXRpb25FdmVudC5mcm9tUGFydGlhbChlLnB1c2hOb3RpZmljYXRpb25FdmVudCk6dm9pZCAwLG59fSx0LlJlYWN0aXZhdGVBY2NvdW50QXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxvZ2luQXR0ZW1wdEJhc2UmJnQuTG9naW5BdHRlbXB0QmFzZS5lbmNvZGUoZS5sb2dpbkF0dGVtcHRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5sb2dpbkF0dGVtcHRCYXNlPXQuTG9naW5BdHRlbXB0QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDB9O3JldHVybiBuLmxvZ2luQXR0ZW1wdEJhc2U9dm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZudWxsIT09ZS5sb2dpbkF0dGVtcHRCYXNlP3QuTG9naW5BdHRlbXB0QmFzZS5mcm9tUGFydGlhbChlLmxvZ2luQXR0ZW1wdEJhc2UpOnZvaWQgMCxufX0sdC5SZWdpc3RlcldpdGhVc2VybmFtZVBhc3N3b3JkQXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnJlZ2lzdHJhdGlvbkF0dGVtcHRCYXNlJiZ0LlJlZ2lzdHJhdGlvbkF0dGVtcHRCYXNlLmVuY29kZShlLnJlZ2lzdHJhdGlvbkF0dGVtcHRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnByZWZlcnJlZFZlcmlmaWNhdGlvbk1ldGhvZCYmbi51aW50MzIoMTYpLmludDMyKGUucHJlZmVycmVkVmVyaWZpY2F0aW9uTWV0aG9kKSxcIlwiIT09ZS5waG9uZU51bWJlckNvdW50cnlDb2RlJiZuLnVpbnQzMigyNikuc3RyaW5nKGUucGhvbmVOdW1iZXJDb3VudHJ5Q29kZSksXCJcIiE9PWUucmVjZW50VXNlckRldmljZUFzc29jaWF0aW9uQ291bnQmJm4udWludDMyKDM0KS5zdHJpbmcoZS5yZWNlbnRVc2VyRGV2aWNlQXNzb2NpYXRpb25Db3VudCksMCE9PWUuZW1haWxPbmx5RGV2aWNlVGhyZXNob2xkRXhjZWVkZWQmJm4udWludDMyKDQwKS5pbnQzMihlLmVtYWlsT25seURldmljZVRocmVzaG9sZEV4Y2VlZGVkKSxcIlwiIT09ZS5hcmtvc2VTZXNzaW9uSUQmJm4udWludDMyKDUwKS5zdHJpbmcoZS5hcmtvc2VTZXNzaW9uSUQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17cmVnaXN0cmF0aW9uQXR0ZW1wdEJhc2U6dm9pZCAwLHByZWZlcnJlZFZlcmlmaWNhdGlvbk1ldGhvZDowLHBob25lTnVtYmVyQ291bnRyeUNvZGU6XCJcIixyZWNlbnRVc2VyRGV2aWNlQXNzb2NpYXRpb25Db3VudDpcIlwiLGVtYWlsT25seURldmljZVRocmVzaG9sZEV4Y2VlZGVkOjAsYXJrb3NlU2Vzc2lvbklEOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnJlZ2lzdHJhdGlvbkF0dGVtcHRCYXNlPXQuUmVnaXN0cmF0aW9uQXR0ZW1wdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEucHJlZmVycmVkVmVyaWZpY2F0aW9uTWV0aG9kPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5waG9uZU51bWJlckNvdW50cnlDb2RlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEucmVjZW50VXNlckRldmljZUFzc29jaWF0aW9uQ291bnQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS5lbWFpbE9ubHlEZXZpY2VUaHJlc2hvbGRFeGNlZWRlZD1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuYXJrb3NlU2Vzc2lvbklEPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtyZWdpc3RyYXRpb25BdHRlbXB0QmFzZTp2b2lkIDAscHJlZmVycmVkVmVyaWZpY2F0aW9uTWV0aG9kOjAscGhvbmVOdW1iZXJDb3VudHJ5Q29kZTpcIlwiLHJlY2VudFVzZXJEZXZpY2VBc3NvY2lhdGlvbkNvdW50OlwiXCIsZW1haWxPbmx5RGV2aWNlVGhyZXNob2xkRXhjZWVkZWQ6MCxhcmtvc2VTZXNzaW9uSUQ6XCJcIn07cmV0dXJuIG4ucmVnaXN0cmF0aW9uQXR0ZW1wdEJhc2U9dm9pZCAwIT09ZS5yZWdpc3RyYXRpb25BdHRlbXB0QmFzZSYmbnVsbCE9PWUucmVnaXN0cmF0aW9uQXR0ZW1wdEJhc2U/dC5SZWdpc3RyYXRpb25BdHRlbXB0QmFzZS5mcm9tUGFydGlhbChlLnJlZ2lzdHJhdGlvbkF0dGVtcHRCYXNlKTp2b2lkIDAsbi5wcmVmZXJyZWRWZXJpZmljYXRpb25NZXRob2Q9ZS5wcmVmZXJyZWRWZXJpZmljYXRpb25NZXRob2Q/PzAsbi5waG9uZU51bWJlckNvdW50cnlDb2RlPWUucGhvbmVOdW1iZXJDb3VudHJ5Q29kZT8/XCJcIixuLnJlY2VudFVzZXJEZXZpY2VBc3NvY2lhdGlvbkNvdW50PWUucmVjZW50VXNlckRldmljZUFzc29jaWF0aW9uQ291bnQ/P1wiXCIsbi5lbWFpbE9ubHlEZXZpY2VUaHJlc2hvbGRFeGNlZWRlZD1lLmVtYWlsT25seURldmljZVRocmVzaG9sZEV4Y2VlZGVkPz8wLG4uYXJrb3NlU2Vzc2lvbklEPWUuYXJrb3NlU2Vzc2lvbklEPz9cIlwiLG59fSx0LlNhbHRlZElkTWluaVNlcnZlckV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubWluaVNlcnZlckV2ZW50QmFzZSYmdC5NaW5pU2VydmVyRXZlbnRCYXNlLmVuY29kZShlLm1pbmlTZXJ2ZXJFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuY2xpZW50U2FsdGVkRXh0ZXJuYWxJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmNsaWVudFNhbHRlZEV4dGVybmFsSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bWluaVNlcnZlckV2ZW50QmFzZTp2b2lkIDAsY2xpZW50U2FsdGVkRXh0ZXJuYWxJZDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5taW5pU2VydmVyRXZlbnRCYXNlPXQuTWluaVNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5jbGllbnRTYWx0ZWRFeHRlcm5hbElkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXttaW5pU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxjbGllbnRTYWx0ZWRFeHRlcm5hbElkOlwiXCJ9O3JldHVybiBuLm1pbmlTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS5taW5pU2VydmVyRXZlbnRCYXNlP3QuTWluaVNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLm1pbmlTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxuLmNsaWVudFNhbHRlZEV4dGVybmFsSWQ9ZS5jbGllbnRTYWx0ZWRFeHRlcm5hbElkPz9cIlwiLG59fSx0LlNlbmRDaGFubmVsVmVyaWZpY2F0aW9uQ29kZUF0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZ0LkxvZ2luQXR0ZW1wdEJhc2UuZW5jb2RlKGUubG9naW5BdHRlbXB0QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS52ZXJpZmljYXRpb25NZXRob2QmJm4udWludDMyKDE2KS5pbnQzMihlLnZlcmlmaWNhdGlvbk1ldGhvZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsb2dpbkF0dGVtcHRCYXNlOnZvaWQgMCx2ZXJpZmljYXRpb25NZXRob2Q6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9naW5BdHRlbXB0QmFzZT10LkxvZ2luQXR0ZW1wdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudmVyaWZpY2F0aW9uTWV0aG9kPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xvZ2luQXR0ZW1wdEJhc2U6dm9pZCAwLHZlcmlmaWNhdGlvbk1ldGhvZDowfTtyZXR1cm4gbi5sb2dpbkF0dGVtcHRCYXNlPXZvaWQgMCE9PWUubG9naW5BdHRlbXB0QmFzZSYmbnVsbCE9PWUubG9naW5BdHRlbXB0QmFzZT90LkxvZ2luQXR0ZW1wdEJhc2UuZnJvbVBhcnRpYWwoZS5sb2dpbkF0dGVtcHRCYXNlKTp2b2lkIDAsbi52ZXJpZmljYXRpb25NZXRob2Q9ZS52ZXJpZmljYXRpb25NZXRob2Q/PzAsbn19LHQuU2VuZExvZ2luQ29kZUF0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZ0LkxvZ2luQXR0ZW1wdEJhc2UuZW5jb2RlKGUubG9naW5BdHRlbXB0QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5sb2dpbklkZW50aWZpZXJUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS5sb2dpbklkZW50aWZpZXJUeXBlKSxcIlwiIT09ZS5sb2dpbklkZW50aWZpZXJIYXNoJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubG9naW5JZGVudGlmaWVySGFzaCksMCE9PWUudmVyaWZpY2F0aW9uTWV0aG9kJiZuLnVpbnQzMigzMikuaW50MzIoZS52ZXJpZmljYXRpb25NZXRob2QpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDAsbG9naW5JZGVudGlmaWVyVHlwZTowLGxvZ2luSWRlbnRpZmllckhhc2g6XCJcIix2ZXJpZmljYXRpb25NZXRob2Q6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9naW5BdHRlbXB0QmFzZT10LkxvZ2luQXR0ZW1wdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEubG9naW5JZGVudGlmaWVyVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEubG9naW5JZGVudGlmaWVySGFzaD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLnZlcmlmaWNhdGlvbk1ldGhvZD1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtsb2dpbkF0dGVtcHRCYXNlOnZvaWQgMCxsb2dpbklkZW50aWZpZXJUeXBlOjAsbG9naW5JZGVudGlmaWVySGFzaDpcIlwiLHZlcmlmaWNhdGlvbk1ldGhvZDowfTtyZXR1cm4gbi5sb2dpbkF0dGVtcHRCYXNlPXZvaWQgMCE9PWUubG9naW5BdHRlbXB0QmFzZSYmbnVsbCE9PWUubG9naW5BdHRlbXB0QmFzZT90LkxvZ2luQXR0ZW1wdEJhc2UuZnJvbVBhcnRpYWwoZS5sb2dpbkF0dGVtcHRCYXNlKTp2b2lkIDAsbi5sb2dpbklkZW50aWZpZXJUeXBlPWUubG9naW5JZGVudGlmaWVyVHlwZT8/MCxuLmxvZ2luSWRlbnRpZmllckhhc2g9ZS5sb2dpbklkZW50aWZpZXJIYXNoPz9cIlwiLG4udmVyaWZpY2F0aW9uTWV0aG9kPWUudmVyaWZpY2F0aW9uTWV0aG9kPz8wLG59fSx0LlNlbmRPZGx2Q29kZUF0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZ0LkxvZ2luQXR0ZW1wdEJhc2UuZW5jb2RlKGUubG9naW5BdHRlbXB0QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS52ZXJpZmljYXRpb25NZXRob2QmJm4udWludDMyKDE2KS5pbnQzMihlLnZlcmlmaWNhdGlvbk1ldGhvZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsb2dpbkF0dGVtcHRCYXNlOnZvaWQgMCx2ZXJpZmljYXRpb25NZXRob2Q6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9naW5BdHRlbXB0QmFzZT10LkxvZ2luQXR0ZW1wdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudmVyaWZpY2F0aW9uTWV0aG9kPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xvZ2luQXR0ZW1wdEJhc2U6dm9pZCAwLHZlcmlmaWNhdGlvbk1ldGhvZDowfTtyZXR1cm4gbi5sb2dpbkF0dGVtcHRCYXNlPXZvaWQgMCE9PWUubG9naW5BdHRlbXB0QmFzZSYmbnVsbCE9PWUubG9naW5BdHRlbXB0QmFzZT90LkxvZ2luQXR0ZW1wdEJhc2UuZnJvbVBhcnRpYWwoZS5sb2dpbkF0dGVtcHRCYXNlKTp2b2lkIDAsbi52ZXJpZmljYXRpb25NZXRob2Q9ZS52ZXJpZmljYXRpb25NZXRob2Q/PzAsbn19LHQuU2VuZFR3b2ZhQ29kZUF0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZ0LkxvZ2luQXR0ZW1wdEJhc2UuZW5jb2RlKGUubG9naW5BdHRlbXB0QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS52ZXJpZmljYXRpb25NZXRob2QmJm4udWludDMyKDE2KS5pbnQzMihlLnZlcmlmaWNhdGlvbk1ldGhvZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsb2dpbkF0dGVtcHRCYXNlOnZvaWQgMCx2ZXJpZmljYXRpb25NZXRob2Q6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9naW5BdHRlbXB0QmFzZT10LkxvZ2luQXR0ZW1wdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudmVyaWZpY2F0aW9uTWV0aG9kPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xvZ2luQXR0ZW1wdEJhc2U6dm9pZCAwLHZlcmlmaWNhdGlvbk1ldGhvZDowfTtyZXR1cm4gbi5sb2dpbkF0dGVtcHRCYXNlPXZvaWQgMCE9PWUubG9naW5BdHRlbXB0QmFzZSYmbnVsbCE9PWUubG9naW5BdHRlbXB0QmFzZT90LkxvZ2luQXR0ZW1wdEJhc2UuZnJvbVBhcnRpYWwoZS5sb2dpbkF0dGVtcHRCYXNlKTp2b2lkIDAsbi52ZXJpZmljYXRpb25NZXRob2Q9ZS52ZXJpZmljYXRpb25NZXRob2Q/PzAsbn19LHQuU2VydmVySW5ib3VuZE1lc3NhZ2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zZXJ2ZXJNZXNzYWdlJiZ0LlNlcnZlck1lc3NhZ2UuZW5jb2RlKGUuc2VydmVyTWVzc2FnZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5jbGllbnRNZXNzYWdlSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5jbGllbnRNZXNzYWdlSWQpLFwiMFwiIT09ZS5udW1iZXJPZlJlY2lwaWVudHMmJm4udWludDMyKDI0KS51aW50NjQoZS5udW1iZXJPZlJlY2lwaWVudHMpLFwiXCIhPT1lLmNvbnZlcnNhdGlvbklkJiZuLnVpbnQzMigzNCkuc3RyaW5nKGUuY29udmVyc2F0aW9uSWQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c2VydmVyTWVzc2FnZTp2b2lkIDAsY2xpZW50TWVzc2FnZUlkOlwiXCIsbnVtYmVyT2ZSZWNpcGllbnRzOlwiMFwiLGNvbnZlcnNhdGlvbklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNlcnZlck1lc3NhZ2U9dC5TZXJ2ZXJNZXNzYWdlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmNsaWVudE1lc3NhZ2VJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLm51bWJlck9mUmVjaXBpZW50cz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNDphLmNvbnZlcnNhdGlvbklkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzZXJ2ZXJNZXNzYWdlOnZvaWQgMCxjbGllbnRNZXNzYWdlSWQ6XCJcIixudW1iZXJPZlJlY2lwaWVudHM6XCIwXCIsY29udmVyc2F0aW9uSWQ6XCJcIn07cmV0dXJuIG4uc2VydmVyTWVzc2FnZT12b2lkIDAhPT1lLnNlcnZlck1lc3NhZ2UmJm51bGwhPT1lLnNlcnZlck1lc3NhZ2U/dC5TZXJ2ZXJNZXNzYWdlLmZyb21QYXJ0aWFsKGUuc2VydmVyTWVzc2FnZSk6dm9pZCAwLG4uY2xpZW50TWVzc2FnZUlkPWUuY2xpZW50TWVzc2FnZUlkPz9cIlwiLG4ubnVtYmVyT2ZSZWNpcGllbnRzPWUubnVtYmVyT2ZSZWNpcGllbnRzPz9cIjBcIixuLmNvbnZlcnNhdGlvbklkPWUuY29udmVyc2F0aW9uSWQ/P1wiXCIsbn19LHQuU2VydmVyT3V0Ym91bmRNZXNzYWdlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuc2VydmVyTWVzc2FnZSYmdC5TZXJ2ZXJNZXNzYWdlLmVuY29kZShlLnNlcnZlck1lc3NhZ2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUucmVjaXBpZW50SUQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5yZWNpcGllbnRJRCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzZXJ2ZXJNZXNzYWdlOnZvaWQgMCxyZWNpcGllbnRJRDpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zZXJ2ZXJNZXNzYWdlPXQuU2VydmVyTWVzc2FnZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5yZWNpcGllbnRJRD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c2VydmVyTWVzc2FnZTp2b2lkIDAscmVjaXBpZW50SUQ6XCJcIn07cmV0dXJuIG4uc2VydmVyTWVzc2FnZT12b2lkIDAhPT1lLnNlcnZlck1lc3NhZ2UmJm51bGwhPT1lLnNlcnZlck1lc3NhZ2U/dC5TZXJ2ZXJNZXNzYWdlLmZyb21QYXJ0aWFsKGUuc2VydmVyTWVzc2FnZSk6dm9pZCAwLG4ucmVjaXBpZW50SUQ9ZS5yZWNpcGllbnRJRD8/XCJcIixufX0sdC5TaG9wS2l0Q2FtZXJhRXhpdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNob3BLaXRFdmVudEJhc2UmJnQuU2hvcEtpdEV2ZW50QmFzZS5lbmNvZGUoZS5zaG9wS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnJlYXNvbiYmbi51aW50MzIoMTYpLmludDMyKGUucmVhc29uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3Nob3BLaXRFdmVudEJhc2U6dm9pZCAwLHJlYXNvbjowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zaG9wS2l0RXZlbnRCYXNlPXQuU2hvcEtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5yZWFzb249ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c2hvcEtpdEV2ZW50QmFzZTp2b2lkIDAscmVhc29uOjB9O3JldHVybiBuLnNob3BLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5zaG9wS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5zaG9wS2l0RXZlbnRCYXNlP3QuU2hvcEtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnNob3BLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnJlYXNvbj1lLnJlYXNvbj8/MCxufX0sdC5TaG9wS2l0RXZlbnRCYXNlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZ0LktpdEV2ZW50QmFzZS5lbmNvZGUoZS5raXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuZGV2aWNlTW9kZWwmJm4udWludDMyKDE4KS5zdHJpbmcoZS5kZXZpY2VNb2RlbCksMCE9PWUuc2hvcEtpdEZsYXZvciYmbi51aW50MzIoMjQpLmludDMyKGUuc2hvcEtpdEZsYXZvciksXCJcIiE9PWUucGxhdGZvcm1DbGllbnRJZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLnBsYXRmb3JtQ2xpZW50SWQpLDAhPT1lLmRldmljZUNvbm5lY3Rpdml0eSYmbi51aW50MzIoNDApLmludDMyKGUuZGV2aWNlQ29ubmVjdGl2aXR5KSxcIlwiIT09ZS5jbGllbnRFdmVudElkJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUuY2xpZW50RXZlbnRJZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtraXRFdmVudEJhc2U6dm9pZCAwLGRldmljZU1vZGVsOlwiXCIsc2hvcEtpdEZsYXZvcjowLHBsYXRmb3JtQ2xpZW50SWQ6XCJcIixkZXZpY2VDb25uZWN0aXZpdHk6MCxjbGllbnRFdmVudElkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdEV2ZW50QmFzZT10LktpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5kZXZpY2VNb2RlbD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnNob3BLaXRGbGF2b3I9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLnBsYXRmb3JtQ2xpZW50SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS5kZXZpY2VDb25uZWN0aXZpdHk9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNjphLmNsaWVudEV2ZW50SWQ9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEV2ZW50QmFzZTp2b2lkIDAsZGV2aWNlTW9kZWw6XCJcIixzaG9wS2l0Rmxhdm9yOjAscGxhdGZvcm1DbGllbnRJZDpcIlwiLGRldmljZUNvbm5lY3Rpdml0eTowLGNsaWVudEV2ZW50SWQ6XCJcIn07cmV0dXJuIG4ua2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUua2l0RXZlbnRCYXNlJiZudWxsIT09ZS5raXRFdmVudEJhc2U/dC5LaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5raXRFdmVudEJhc2UpOnZvaWQgMCxuLmRldmljZU1vZGVsPWUuZGV2aWNlTW9kZWw/P1wiXCIsbi5zaG9wS2l0Rmxhdm9yPWUuc2hvcEtpdEZsYXZvcj8/MCxuLnBsYXRmb3JtQ2xpZW50SWQ9ZS5wbGF0Zm9ybUNsaWVudElkPz9cIlwiLG4uZGV2aWNlQ29ubmVjdGl2aXR5PWUuZGV2aWNlQ29ubmVjdGl2aXR5Pz8wLG4uY2xpZW50RXZlbnRJZD1lLmNsaWVudEV2ZW50SWQ/P1wiXCIsbn19LHQuU2hvcEtpdFByb2R1Y3RBcHBseT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNob3BLaXRFdmVudEJhc2UmJnQuU2hvcEtpdEV2ZW50QmFzZS5lbmNvZGUoZS5zaG9wS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnNuYXBJdGVtSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5zbmFwSXRlbUlkKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLnRyYWNraW5nSWQmJm4udWludDMyKDM0KS5zdHJpbmcoZS50cmFja2luZ0lkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3Nob3BLaXRFdmVudEJhc2U6dm9pZCAwLHNuYXBJdGVtSWQ6XCJcIixsZW5zSWQ6XCJcIix0cmFja2luZ0lkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNob3BLaXRFdmVudEJhc2U9dC5TaG9wS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnNuYXBJdGVtSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS50cmFja2luZ0lkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzaG9wS2l0RXZlbnRCYXNlOnZvaWQgMCxzbmFwSXRlbUlkOlwiXCIsbGVuc0lkOlwiXCIsdHJhY2tpbmdJZDpcIlwifTtyZXR1cm4gbi5zaG9wS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuc2hvcEtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuc2hvcEtpdEV2ZW50QmFzZT90LlNob3BLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zaG9wS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5zbmFwSXRlbUlkPWUuc25hcEl0ZW1JZD8/XCJcIixuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixuLnRyYWNraW5nSWQ9ZS50cmFja2luZ0lkPz9cIlwiLG59fSx0LlNob3BLaXRQcm9kdWN0SW1wcmVzc2lvbj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNob3BLaXRFdmVudEJhc2UmJnQuU2hvcEtpdEV2ZW50QmFzZS5lbmNvZGUoZS5zaG9wS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnNuYXBJdGVtSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5zbmFwSXRlbUlkKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLnRyYWNraW5nSWQmJm4udWludDMyKDM0KS5zdHJpbmcoZS50cmFja2luZ0lkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3Nob3BLaXRFdmVudEJhc2U6dm9pZCAwLHNuYXBJdGVtSWQ6XCJcIixsZW5zSWQ6XCJcIix0cmFja2luZ0lkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNob3BLaXRFdmVudEJhc2U9dC5TaG9wS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnNuYXBJdGVtSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS50cmFja2luZ0lkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzaG9wS2l0RXZlbnRCYXNlOnZvaWQgMCxzbmFwSXRlbUlkOlwiXCIsbGVuc0lkOlwiXCIsdHJhY2tpbmdJZDpcIlwifTtyZXR1cm4gbi5zaG9wS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuc2hvcEtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuc2hvcEtpdEV2ZW50QmFzZT90LlNob3BLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zaG9wS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5zbmFwSXRlbUlkPWUuc25hcEl0ZW1JZD8/XCJcIixuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixuLnRyYWNraW5nSWQ9ZS50cmFja2luZ0lkPz9cIlwiLG59fSx0LlNob3BLaXRQcm9kdWN0Vmlld1RpbWU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zaG9wS2l0RXZlbnRCYXNlJiZ0LlNob3BLaXRFdmVudEJhc2UuZW5jb2RlKGUuc2hvcEtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5wcm9kdWN0Vmlld1RpbWVTZWMmJm4udWludDMyKDE3KS5kb3VibGUoZS5wcm9kdWN0Vmlld1RpbWVTZWMpLFwiXCIhPT1lLnNuYXBJdGVtSWQmJm4udWludDMyKDI2KS5zdHJpbmcoZS5zbmFwSXRlbUlkKSxcIlwiIT09ZS5sZW5zSWQmJm4udWludDMyKDM0KS5zdHJpbmcoZS5sZW5zSWQpLFwiXCIhPT1lLnRyYWNraW5nSWQmJm4udWludDMyKDQyKS5zdHJpbmcoZS50cmFja2luZ0lkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3Nob3BLaXRFdmVudEJhc2U6dm9pZCAwLHByb2R1Y3RWaWV3VGltZVNlYzowLHNuYXBJdGVtSWQ6XCJcIixsZW5zSWQ6XCJcIix0cmFja2luZ0lkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNob3BLaXRFdmVudEJhc2U9dC5TaG9wS2l0RXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnByb2R1Y3RWaWV3VGltZVNlYz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMzphLnNuYXBJdGVtSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5sZW5zSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS50cmFja2luZ0lkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzaG9wS2l0RXZlbnRCYXNlOnZvaWQgMCxwcm9kdWN0Vmlld1RpbWVTZWM6MCxzbmFwSXRlbUlkOlwiXCIsbGVuc0lkOlwiXCIsdHJhY2tpbmdJZDpcIlwifTtyZXR1cm4gbi5zaG9wS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuc2hvcEtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuc2hvcEtpdEV2ZW50QmFzZT90LlNob3BLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zaG9wS2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5wcm9kdWN0Vmlld1RpbWVTZWM9ZS5wcm9kdWN0Vmlld1RpbWVTZWM/PzAsbi5zbmFwSXRlbUlkPWUuc25hcEl0ZW1JZD8/XCJcIixuLmxlbnNJZD1lLmxlbnNJZD8/XCJcIixuLnRyYWNraW5nSWQ9ZS50cmFja2luZ0lkPz9cIlwiLG59fSx0LlNob3BLaXRTZXNzaW9uQ2FtZXJhQmluZD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNob3BLaXRFdmVudEJhc2UmJnQuU2hvcEtpdEV2ZW50QmFzZS5lbmNvZGUoZS5zaG9wS2l0RXZlbnRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c2hvcEtpdEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5zaG9wS2l0RXZlbnRCYXNlPXQuU2hvcEtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c2hvcEtpdEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLnNob3BLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5zaG9wS2l0RXZlbnRCYXNlJiZudWxsIT09ZS5zaG9wS2l0RXZlbnRCYXNlP3QuU2hvcEtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnNob3BLaXRFdmVudEJhc2UpOnZvaWQgMCxufX0sdC5TaG9wS2l0U2Vzc2lvbkNyZWF0ZWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zaG9wS2l0RXZlbnRCYXNlJiZ0LlNob3BLaXRFdmVudEJhc2UuZW5jb2RlKGUuc2hvcEtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5kYWlseVNlc3Npb25CdWNrZXQmJm4udWludDMyKDE2KS5pbnQzMihlLmRhaWx5U2Vzc2lvbkJ1Y2tldCksITA9PT1lLmlzRmlyc3RXaXRoaW5Nb250aCYmbi51aW50MzIoMjQpLmJvb2woZS5pc0ZpcnN0V2l0aGluTW9udGgpLFwiMFwiIT09ZS5kYXkmJm4udWludDMyKDMyKS51aW50NjQoZS5kYXkpLFwiMFwiIT09ZS5tb250aCYmbi51aW50MzIoNDApLnVpbnQ2NChlLm1vbnRoKSxcIjBcIiE9PWUueWVhciYmbi51aW50MzIoNDgpLnVpbnQ2NChlLnllYXIpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c2hvcEtpdEV2ZW50QmFzZTp2b2lkIDAsZGFpbHlTZXNzaW9uQnVja2V0OjAsaXNGaXJzdFdpdGhpbk1vbnRoOiExLGRheTpcIjBcIixtb250aDpcIjBcIix5ZWFyOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zaG9wS2l0RXZlbnRCYXNlPXQuU2hvcEtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5kYWlseVNlc3Npb25CdWNrZXQ9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmlzRmlyc3RXaXRoaW5Nb250aD1yLmJvb2woKTticmVhaztjYXNlIDQ6YS5kYXk9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6YS5tb250aD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNjphLnllYXI9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3Nob3BLaXRFdmVudEJhc2U6dm9pZCAwLGRhaWx5U2Vzc2lvbkJ1Y2tldDowLGlzRmlyc3RXaXRoaW5Nb250aDohMSxkYXk6XCIwXCIsbW9udGg6XCIwXCIseWVhcjpcIjBcIn07cmV0dXJuIG4uc2hvcEtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLnNob3BLaXRFdmVudEJhc2UmJm51bGwhPT1lLnNob3BLaXRFdmVudEJhc2U/dC5TaG9wS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUuc2hvcEtpdEV2ZW50QmFzZSk6dm9pZCAwLG4uZGFpbHlTZXNzaW9uQnVja2V0PWUuZGFpbHlTZXNzaW9uQnVja2V0Pz8wLG4uaXNGaXJzdFdpdGhpbk1vbnRoPWUuaXNGaXJzdFdpdGhpbk1vbnRoPz8hMSxuLmRheT1lLmRheT8/XCIwXCIsbi5tb250aD1lLm1vbnRoPz9cIjBcIixuLnllYXI9ZS55ZWFyPz9cIjBcIixufX0sdC5TaG9wS2l0U2Vzc2lvblRlcm1pbmF0ZWQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zaG9wS2l0RXZlbnRCYXNlJiZ0LlNob3BLaXRFdmVudEJhc2UuZW5jb2RlKGUuc2hvcEtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3Nob3BLaXRFdmVudEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuc2hvcEtpdEV2ZW50QmFzZT10LlNob3BLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3Nob3BLaXRFdmVudEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5zaG9wS2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuc2hvcEtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuc2hvcEtpdEV2ZW50QmFzZT90LlNob3BLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zaG9wS2l0RXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuU25hcEtpdERhdGFGZXRjaEV2ZW50PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUua2l0U2VydmVyRXZlbnRCYXNlJiZ0LktpdFNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS5raXRTZXJ2ZXJFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUucmVxdWVzdFBhdGgmJm4udWludDMyKDE4KS5zdHJpbmcoZS5yZXF1ZXN0UGF0aCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtraXRTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLHJlcXVlc3RQYXRoOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmtpdFNlcnZlckV2ZW50QmFzZT10LktpdFNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5yZXF1ZXN0UGF0aD1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17a2l0U2VydmVyRXZlbnRCYXNlOnZvaWQgMCxyZXF1ZXN0UGF0aDpcIlwifTtyZXR1cm4gbi5raXRTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS5raXRTZXJ2ZXJFdmVudEJhc2UmJm51bGwhPT1lLmtpdFNlcnZlckV2ZW50QmFzZT90LktpdFNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLmtpdFNlcnZlckV2ZW50QmFzZSk6dm9pZCAwLG4ucmVxdWVzdFBhdGg9ZS5yZXF1ZXN0UGF0aD8/XCJcIixufX0sdC5TbmFwYm90UmVxdWVzdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNlcnZlck1lc3NhZ2UmJnQuU2VydmVyTWVzc2FnZS5lbmNvZGUoZS5zZXJ2ZXJNZXNzYWdlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS5udW1Ub2tlbnMmJm4udWludDMyKDE2KS51aW50NjQoZS5udW1Ub2tlbnMpLDAhPT1lLnN0YXR1cyYmbi51aW50MzIoMjQpLmludDMyKGUuc3RhdHVzKSwwIT09ZS5tZXNzYWdlU2VuZGluZ1RpbWVzdGFtcCYmbi51aW50MzIoMzMpLmRvdWJsZShlLm1lc3NhZ2VTZW5kaW5nVGltZXN0YW1wKSwwIT09ZS5zbmFwYm90VmVuZG9yQ2FsbCYmbi51aW50MzIoNDApLmludDMyKGUuc25hcGJvdFZlbmRvckNhbGwpLDAhPT1lLnNuYXBib3RWZW5kb3ImJm4udWludDMyKDQ4KS5pbnQzMihlLnNuYXBib3RWZW5kb3IpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c2VydmVyTWVzc2FnZTp2b2lkIDAsbnVtVG9rZW5zOlwiMFwiLHN0YXR1czowLG1lc3NhZ2VTZW5kaW5nVGltZXN0YW1wOjAsc25hcGJvdFZlbmRvckNhbGw6MCxzbmFwYm90VmVuZG9yOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNlcnZlck1lc3NhZ2U9dC5TZXJ2ZXJNZXNzYWdlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm51bVRva2Vucz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLnN0YXR1cz1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEubWVzc2FnZVNlbmRpbmdUaW1lc3RhbXA9ci5kb3VibGUoKTticmVhaztjYXNlIDU6YS5zbmFwYm90VmVuZG9yQ2FsbD1yLmludDMyKCk7YnJlYWs7Y2FzZSA2OmEuc25hcGJvdFZlbmRvcj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzZXJ2ZXJNZXNzYWdlOnZvaWQgMCxudW1Ub2tlbnM6XCIwXCIsc3RhdHVzOjAsbWVzc2FnZVNlbmRpbmdUaW1lc3RhbXA6MCxzbmFwYm90VmVuZG9yQ2FsbDowLHNuYXBib3RWZW5kb3I6MH07cmV0dXJuIG4uc2VydmVyTWVzc2FnZT12b2lkIDAhPT1lLnNlcnZlck1lc3NhZ2UmJm51bGwhPT1lLnNlcnZlck1lc3NhZ2U/dC5TZXJ2ZXJNZXNzYWdlLmZyb21QYXJ0aWFsKGUuc2VydmVyTWVzc2FnZSk6dm9pZCAwLG4ubnVtVG9rZW5zPWUubnVtVG9rZW5zPz9cIjBcIixuLnN0YXR1cz1lLnN0YXR1cz8/MCxuLm1lc3NhZ2VTZW5kaW5nVGltZXN0YW1wPWUubWVzc2FnZVNlbmRpbmdUaW1lc3RhbXA/PzAsbi5zbmFwYm90VmVuZG9yQ2FsbD1lLnNuYXBib3RWZW5kb3JDYWxsPz8wLG4uc25hcGJvdFZlbmRvcj1lLnNuYXBib3RWZW5kb3I/PzAsbn19LHQuU25hcGJvdFJlc3BvbnNlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuc2VydmVyTWVzc2FnZSYmdC5TZXJ2ZXJNZXNzYWdlLmVuY29kZShlLnNlcnZlck1lc3NhZ2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLm51bVRva2VucyYmbi51aW50MzIoMTYpLnVpbnQ2NChlLm51bVRva2VucyksMCE9PWUuc3RhdHVzJiZuLnVpbnQzMigyNCkuaW50MzIoZS5zdGF0dXMpLDAhPT1lLm1lc3NhZ2VSZWNlaXZpbmdUaW1lc3RhbXAmJm4udWludDMyKDMzKS5kb3VibGUoZS5tZXNzYWdlUmVjZWl2aW5nVGltZXN0YW1wKSxcIjBcIiE9PWUud2FpdGluZ1RpbWUmJm4udWludDMyKDQwKS51aW50NjQoZS53YWl0aW5nVGltZSksXCIwXCIhPT1lLm51bVByb21wdFRva2VuJiZuLnVpbnQzMig0OCkudWludDY0KGUubnVtUHJvbXB0VG9rZW4pLFwiMFwiIT09ZS5udW1Db21wbGV0aW9uc1Rva2VuJiZuLnVpbnQzMig1NikudWludDY0KGUubnVtQ29tcGxldGlvbnNUb2tlbiksXCIwXCIhPT1lLm51bVRvdGFsVG9rZW4mJm4udWludDMyKDY0KS51aW50NjQoZS5udW1Ub3RhbFRva2VuKSwwIT09ZS5zbmFwYm90VmVuZG9yQ2FsbCYmbi51aW50MzIoNzIpLmludDMyKGUuc25hcGJvdFZlbmRvckNhbGwpLDAhPT1lLnNuYXBib3RWZW5kb3ImJm4udWludDMyKDgwKS5pbnQzMihlLnNuYXBib3RWZW5kb3IpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c2VydmVyTWVzc2FnZTp2b2lkIDAsbnVtVG9rZW5zOlwiMFwiLHN0YXR1czowLG1lc3NhZ2VSZWNlaXZpbmdUaW1lc3RhbXA6MCx3YWl0aW5nVGltZTpcIjBcIixudW1Qcm9tcHRUb2tlbjpcIjBcIixudW1Db21wbGV0aW9uc1Rva2VuOlwiMFwiLG51bVRvdGFsVG9rZW46XCIwXCIsc25hcGJvdFZlbmRvckNhbGw6MCxzbmFwYm90VmVuZG9yOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNlcnZlck1lc3NhZ2U9dC5TZXJ2ZXJNZXNzYWdlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLm51bVRva2Vucz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLnN0YXR1cz1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEubWVzc2FnZVJlY2VpdmluZ1RpbWVzdGFtcD1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgNTphLndhaXRpbmdUaW1lPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA2OmEubnVtUHJvbXB0VG9rZW49cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDc6YS5udW1Db21wbGV0aW9uc1Rva2VuPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA4OmEubnVtVG90YWxUb2tlbj1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgOTphLnNuYXBib3RWZW5kb3JDYWxsPXIuaW50MzIoKTticmVhaztjYXNlIDEwOmEuc25hcGJvdFZlbmRvcj1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzZXJ2ZXJNZXNzYWdlOnZvaWQgMCxudW1Ub2tlbnM6XCIwXCIsc3RhdHVzOjAsbWVzc2FnZVJlY2VpdmluZ1RpbWVzdGFtcDowLHdhaXRpbmdUaW1lOlwiMFwiLG51bVByb21wdFRva2VuOlwiMFwiLG51bUNvbXBsZXRpb25zVG9rZW46XCIwXCIsbnVtVG90YWxUb2tlbjpcIjBcIixzbmFwYm90VmVuZG9yQ2FsbDowLHNuYXBib3RWZW5kb3I6MH07cmV0dXJuIG4uc2VydmVyTWVzc2FnZT12b2lkIDAhPT1lLnNlcnZlck1lc3NhZ2UmJm51bGwhPT1lLnNlcnZlck1lc3NhZ2U/dC5TZXJ2ZXJNZXNzYWdlLmZyb21QYXJ0aWFsKGUuc2VydmVyTWVzc2FnZSk6dm9pZCAwLG4ubnVtVG9rZW5zPWUubnVtVG9rZW5zPz9cIjBcIixuLnN0YXR1cz1lLnN0YXR1cz8/MCxuLm1lc3NhZ2VSZWNlaXZpbmdUaW1lc3RhbXA9ZS5tZXNzYWdlUmVjZWl2aW5nVGltZXN0YW1wPz8wLG4ud2FpdGluZ1RpbWU9ZS53YWl0aW5nVGltZT8/XCIwXCIsbi5udW1Qcm9tcHRUb2tlbj1lLm51bVByb21wdFRva2VuPz9cIjBcIixuLm51bUNvbXBsZXRpb25zVG9rZW49ZS5udW1Db21wbGV0aW9uc1Rva2VuPz9cIjBcIixuLm51bVRvdGFsVG9rZW49ZS5udW1Ub3RhbFRva2VuPz9cIjBcIixuLnNuYXBib3RWZW5kb3JDYWxsPWUuc25hcGJvdFZlbmRvckNhbGw/PzAsbi5zbmFwYm90VmVuZG9yPWUuc25hcGJvdFZlbmRvcj8/MCxufX0sdC5TbmFwY2FtZXJhRXh0ZW50aW9uQWN0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZSYmdC5TbmFwY2FtZXJhRXZlbnRCYXNlLmVuY29kZShlLnNuYXBjYW1lcmFFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLnZpZXdDb3VudCYmbi51aW50MzIoMTYpLnVpbnQ2NChlLnZpZXdDb3VudCksMCE9PWUuZXh0ZW50aW9uU3RhcnRTdHJlYW1UcyYmbi51aW50MzIoMjUpLmRvdWJsZShlLmV4dGVudGlvblN0YXJ0U3RyZWFtVHMpLDAhPT1lLmV4dGVudGlvbkN1cnJlbnRTdHJlYW1UcyYmbi51aW50MzIoMzMpLmRvdWJsZShlLmV4dGVudGlvbkN1cnJlbnRTdHJlYW1UcyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzbmFwY2FtZXJhRXZlbnRCYXNlOnZvaWQgMCx2aWV3Q291bnQ6XCIwXCIsZXh0ZW50aW9uU3RhcnRTdHJlYW1UczowLGV4dGVudGlvbkN1cnJlbnRTdHJlYW1UczowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zbmFwY2FtZXJhRXZlbnRCYXNlPXQuU25hcGNhbWVyYUV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS52aWV3Q291bnQ9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6YS5leHRlbnRpb25TdGFydFN0cmVhbVRzPXIuZG91YmxlKCk7YnJlYWs7Y2FzZSA0OmEuZXh0ZW50aW9uQ3VycmVudFN0cmVhbVRzPXIuZG91YmxlKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzbmFwY2FtZXJhRXZlbnRCYXNlOnZvaWQgMCx2aWV3Q291bnQ6XCIwXCIsZXh0ZW50aW9uU3RhcnRTdHJlYW1UczowLGV4dGVudGlvbkN1cnJlbnRTdHJlYW1UczowfTtyZXR1cm4gbi5zbmFwY2FtZXJhRXZlbnRCYXNlPXZvaWQgMCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZSYmbnVsbCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZT90LlNuYXBjYW1lcmFFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zbmFwY2FtZXJhRXZlbnRCYXNlKTp2b2lkIDAsbi52aWV3Q291bnQ9ZS52aWV3Q291bnQ/P1wiMFwiLG4uZXh0ZW50aW9uU3RhcnRTdHJlYW1Ucz1lLmV4dGVudGlvblN0YXJ0U3RyZWFtVHM/PzAsbi5leHRlbnRpb25DdXJyZW50U3RyZWFtVHM9ZS5leHRlbnRpb25DdXJyZW50U3RyZWFtVHM/PzAsbn19LHQuU25hcGNhbWVyYUxlbnNBY3Rpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zbmFwY2FtZXJhRXZlbnRCYXNlJiZ0LlNuYXBjYW1lcmFFdmVudEJhc2UuZW5jb2RlKGUuc25hcGNhbWVyYUV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5zbmFwQ2FtZXJhTGVuc0V2ZW50cyYmbi51aW50MzIoMTYpLmludDMyKGUuc25hcENhbWVyYUxlbnNFdmVudHMpLDAhPT1lLnNuYXBDYW1lcmFMZW5zU291cmNlJiZuLnVpbnQzMigyNCkuaW50MzIoZS5zbmFwQ2FtZXJhTGVuc1NvdXJjZSksXCIwXCIhPT1lLm51bUxlbnNJbkZhdm9yaXRlcyYmbi51aW50MzIoMzIpLnVpbnQ2NChlLm51bUxlbnNJbkZhdm9yaXRlcyksXCJcIiE9PWUubGVuc0ZvbGRlcklkJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUubGVuc0ZvbGRlcklkKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3NuYXBjYW1lcmFFdmVudEJhc2U6dm9pZCAwLHNuYXBDYW1lcmFMZW5zRXZlbnRzOjAsc25hcENhbWVyYUxlbnNTb3VyY2U6MCxudW1MZW5zSW5GYXZvcml0ZXM6XCIwXCIsbGVuc0ZvbGRlcklkOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNuYXBjYW1lcmFFdmVudEJhc2U9dC5TbmFwY2FtZXJhRXZlbnRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnNuYXBDYW1lcmFMZW5zRXZlbnRzPXIuaW50MzIoKTticmVhaztjYXNlIDM6YS5zbmFwQ2FtZXJhTGVuc1NvdXJjZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA0OmEubnVtTGVuc0luRmF2b3JpdGVzPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmEubGVuc0ZvbGRlcklkPXIuc3RyaW5nKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzbmFwY2FtZXJhRXZlbnRCYXNlOnZvaWQgMCxzbmFwQ2FtZXJhTGVuc0V2ZW50czowLHNuYXBDYW1lcmFMZW5zU291cmNlOjAsbnVtTGVuc0luRmF2b3JpdGVzOlwiMFwiLGxlbnNGb2xkZXJJZDpcIlwifTtyZXR1cm4gbi5zbmFwY2FtZXJhRXZlbnRCYXNlPXZvaWQgMCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZSYmbnVsbCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZT90LlNuYXBjYW1lcmFFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zbmFwY2FtZXJhRXZlbnRCYXNlKTp2b2lkIDAsbi5zbmFwQ2FtZXJhTGVuc0V2ZW50cz1lLnNuYXBDYW1lcmFMZW5zRXZlbnRzPz8wLG4uc25hcENhbWVyYUxlbnNTb3VyY2U9ZS5zbmFwQ2FtZXJhTGVuc1NvdXJjZT8/MCxuLm51bUxlbnNJbkZhdm9yaXRlcz1lLm51bUxlbnNJbkZhdm9yaXRlcz8/XCIwXCIsbi5sZW5zRm9sZGVySWQ9ZS5sZW5zRm9sZGVySWQ/P1wiXCIsbn19LHQuU25hcGNhbWVyYVNlc3Npb25BY3Rpb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zbmFwY2FtZXJhRXZlbnRCYXNlJiZ0LlNuYXBjYW1lcmFFdmVudEJhc2UuZW5jb2RlKGUuc25hcGNhbWVyYUV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS5zbmFwQ2FtZXJhU2Vzc2lvbiYmbi51aW50MzIoMTYpLmludDMyKGUuc25hcENhbWVyYVNlc3Npb24pLCEwPT09ZS53aXRoT25TdGFydHVwJiZuLnVpbnQzMigyNCkuYm9vbChlLndpdGhPblN0YXJ0dXApLCEwPT09ZS53aXRoU25hcGNvZGVFbmFibGVkJiZuLnVpbnQzMigzMikuYm9vbChlLndpdGhTbmFwY29kZUVuYWJsZWQpLDAhPT1lLmZyYW1lUmF0ZSYmbi51aW50MzIoNDEpLmRvdWJsZShlLmZyYW1lUmF0ZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzbmFwY2FtZXJhRXZlbnRCYXNlOnZvaWQgMCxzbmFwQ2FtZXJhU2Vzc2lvbjowLHdpdGhPblN0YXJ0dXA6ITEsd2l0aFNuYXBjb2RlRW5hYmxlZDohMSxmcmFtZVJhdGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc25hcGNhbWVyYUV2ZW50QmFzZT10LlNuYXBjYW1lcmFFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc25hcENhbWVyYVNlc3Npb249ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLndpdGhPblN0YXJ0dXA9ci5ib29sKCk7YnJlYWs7Y2FzZSA0OmEud2l0aFNuYXBjb2RlRW5hYmxlZD1yLmJvb2woKTticmVhaztjYXNlIDU6YS5mcmFtZVJhdGU9ci5kb3VibGUoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3NuYXBjYW1lcmFFdmVudEJhc2U6dm9pZCAwLHNuYXBDYW1lcmFTZXNzaW9uOjAsd2l0aE9uU3RhcnR1cDohMSx3aXRoU25hcGNvZGVFbmFibGVkOiExLGZyYW1lUmF0ZTowfTtyZXR1cm4gbi5zbmFwY2FtZXJhRXZlbnRCYXNlPXZvaWQgMCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZSYmbnVsbCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZT90LlNuYXBjYW1lcmFFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zbmFwY2FtZXJhRXZlbnRCYXNlKTp2b2lkIDAsbi5zbmFwQ2FtZXJhU2Vzc2lvbj1lLnNuYXBDYW1lcmFTZXNzaW9uPz8wLG4ud2l0aE9uU3RhcnR1cD1lLndpdGhPblN0YXJ0dXA/PyExLG4ud2l0aFNuYXBjb2RlRW5hYmxlZD1lLndpdGhTbmFwY29kZUVuYWJsZWQ/PyExLG4uZnJhbWVSYXRlPWUuZnJhbWVSYXRlPz8wLG59fSx0LlNuYXBjYW1lcmFVc2VyQWN0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuc25hcGNhbWVyYUV2ZW50QmFzZSYmdC5TbmFwY2FtZXJhRXZlbnRCYXNlLmVuY29kZShlLnNuYXBjYW1lcmFFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUuc25hcENhbWVyYVVzZXJJbnRlcmFjdGlvbiYmbi51aW50MzIoMTYpLmludDMyKGUuc25hcENhbWVyYVVzZXJJbnRlcmFjdGlvbiksMCE9PWUucmVjb3JkZWRWaWRlb0R1cmF0aW9uJiZuLnVpbnQzMigyNSkuZG91YmxlKGUucmVjb3JkZWRWaWRlb0R1cmF0aW9uKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3NuYXBjYW1lcmFFdmVudEJhc2U6dm9pZCAwLHNuYXBDYW1lcmFVc2VySW50ZXJhY3Rpb246MCxyZWNvcmRlZFZpZGVvRHVyYXRpb246MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc25hcGNhbWVyYUV2ZW50QmFzZT10LlNuYXBjYW1lcmFFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuc25hcENhbWVyYVVzZXJJbnRlcmFjdGlvbj1yLmludDMyKCk7YnJlYWs7Y2FzZSAzOmEucmVjb3JkZWRWaWRlb0R1cmF0aW9uPXIuZG91YmxlKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzbmFwY2FtZXJhRXZlbnRCYXNlOnZvaWQgMCxzbmFwQ2FtZXJhVXNlckludGVyYWN0aW9uOjAscmVjb3JkZWRWaWRlb0R1cmF0aW9uOjB9O3JldHVybiBuLnNuYXBjYW1lcmFFdmVudEJhc2U9dm9pZCAwIT09ZS5zbmFwY2FtZXJhRXZlbnRCYXNlJiZudWxsIT09ZS5zbmFwY2FtZXJhRXZlbnRCYXNlP3QuU25hcGNhbWVyYUV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnNuYXBjYW1lcmFFdmVudEJhc2UpOnZvaWQgMCxuLnNuYXBDYW1lcmFVc2VySW50ZXJhY3Rpb249ZS5zbmFwQ2FtZXJhVXNlckludGVyYWN0aW9uPz8wLG4ucmVjb3JkZWRWaWRlb0R1cmF0aW9uPWUucmVjb3JkZWRWaWRlb0R1cmF0aW9uPz8wLG59fSx0LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RFcnJvcj17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlJiZ0LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLmVuY29kZShlLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmludGVybmFsU25hcGNvZGVJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmludGVybmFsU25hcGNvZGVJZCksXCIwXCIhPT1lLmh0dHBTdGF0dXNDb2RlJiZuLnVpbnQzMigyNCkudWludDY0KGUuaHR0cFN0YXR1c0NvZGUpLFwiXCIhPT1lLmVycm9yTWVzc2FnZSYmbi51aW50MzIoMzQpLnN0cmluZyhlLmVycm9yTWVzc2FnZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZTp2b2lkIDAsaW50ZXJuYWxTbmFwY29kZUlkOlwiXCIsaHR0cFN0YXR1c0NvZGU6XCIwXCIsZXJyb3JNZXNzYWdlOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlPXQuU25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEuaW50ZXJuYWxTbmFwY29kZUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEuaHR0cFN0YXR1c0NvZGU9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6YS5lcnJvck1lc3NhZ2U9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3NuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlOnZvaWQgMCxpbnRlcm5hbFNuYXBjb2RlSWQ6XCJcIixodHRwU3RhdHVzQ29kZTpcIjBcIixlcnJvck1lc3NhZ2U6XCJcIn07cmV0dXJuIG4uc25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U9dm9pZCAwIT09ZS5zbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZSYmbnVsbCE9PWUuc25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U/dC5TbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZS5mcm9tUGFydGlhbChlLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlKTp2b2lkIDAsbi5pbnRlcm5hbFNuYXBjb2RlSWQ9ZS5pbnRlcm5hbFNuYXBjb2RlSWQ/P1wiXCIsbi5odHRwU3RhdHVzQ29kZT1lLmh0dHBTdGF0dXNDb2RlPz9cIjBcIixuLmVycm9yTWVzc2FnZT1lLmVycm9yTWVzc2FnZT8/XCJcIixufX0sdC5TbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0UmVjZWl2ZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlJiZ0LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLmVuY29kZShlLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U6dm9pZCAwfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7aWYoZT4+PjM9PT0xKWEuc25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U9dC5TbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTtlbHNlIHIuc2tpcFR5cGUoNyZlKX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U6dm9pZCAwfTtyZXR1cm4gbi5zbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZT12b2lkIDAhPT1lLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlJiZudWxsIT09ZS5zbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZT90LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLmZyb21QYXJ0aWFsKGUuc25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2UpOnZvaWQgMCxufX0sdC5TbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0U3VjY2Vzcz17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlJiZ0LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLmVuY29kZShlLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLmludGVybmFsU25hcGNvZGVJZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLmludGVybmFsU25hcGNvZGVJZCksMCE9PWUudXNlQ2FzZSYmbi51aW50MzIoMjQpLmludDMyKGUudXNlQ2FzZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZTp2b2lkIDAsaW50ZXJuYWxTbmFwY29kZUlkOlwiXCIsdXNlQ2FzZTowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZT10LlNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmludGVybmFsU25hcGNvZGVJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMzphLnVzZUNhc2U9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U6dm9pZCAwLGludGVybmFsU25hcGNvZGVJZDpcIlwiLHVzZUNhc2U6MH07cmV0dXJuIG4uc25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U9dm9pZCAwIT09ZS5zbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZSYmbnVsbCE9PWUuc25hcGNvZGVNZXRhZGF0YUZldGNoUmVxdWVzdEJhc2U/dC5TbmFwY29kZU1ldGFkYXRhRmV0Y2hSZXF1ZXN0QmFzZS5mcm9tUGFydGlhbChlLnNuYXBjb2RlTWV0YWRhdGFGZXRjaFJlcXVlc3RCYXNlKTp2b2lkIDAsbi5pbnRlcm5hbFNuYXBjb2RlSWQ9ZS5pbnRlcm5hbFNuYXBjb2RlSWQ/P1wiXCIsbi51c2VDYXNlPWUudXNlQ2FzZT8/MCxufX0sdC5TcGVjdGFjbGVzQ29udGVudENhcHR1cmVTZXJ2ZXI9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZSYmdC5TcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS5zcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5jb250ZW50SWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5jb250ZW50SWQpLFwiXCIhPT1lLm11bHRpU25hcElkJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubXVsdGlTbmFwSWQpLFwiMFwiIT09ZS5tdWx0aVNuYXBDb3VudCYmbi51aW50MzIoMzIpLnVpbnQ2NChlLm11bHRpU25hcENvdW50KSxcIjBcIiE9PWUubXVsdGlTbmFwSW5kZXgmJm4udWludDMyKDQwKS51aW50NjQoZS5tdWx0aVNuYXBJbmRleCksXCIwXCIhPT1lLmFtYmllbnRMaWdodEludGVuc2l0eSYmbi51aW50MzIoNDgpLnVpbnQ2NChlLmFtYmllbnRMaWdodEludGVuc2l0eSksXCIwXCIhPT1lLnNlbnNvckJlZ2luVGVtcGVyYXR1cmUmJm4udWludDMyKDU2KS51aW50NjQoZS5zZW5zb3JCZWdpblRlbXBlcmF0dXJlKSxcIjBcIiE9PWUuc2Vuc29yRW5kVGVtcGVyYXR1cmUmJm4udWludDMyKDY0KS51aW50NjQoZS5zZW5zb3JFbmRUZW1wZXJhdHVyZSksXCIwXCIhPT1lLmltYWdlU2Vuc29yQ3VycmVudERnYyYmbi51aW50MzIoNzIpLnVpbnQ2NChlLmltYWdlU2Vuc29yQ3VycmVudERnYyksXCIwXCIhPT1lLmltYWdlU2Vuc29yQ3VycmVudEFnYyYmbi51aW50MzIoODApLnVpbnQ2NChlLmltYWdlU2Vuc29yQ3VycmVudEFnYyksXCIwXCIhPT1lLmV2SW5kZXhTdGFydCYmbi51aW50MzIoODgpLnVpbnQ2NChlLmV2SW5kZXhTdGFydCksXCIwXCIhPT1lLmV2SW5kZXhFbmQmJm4udWludDMyKDk2KS51aW50NjQoZS5ldkluZGV4RW5kKSxcIjBcIiE9PWUubm9yZGljTGFzdEJvb3RTZXNzaW9uJiZuLnVpbnQzMigxMDQpLnVpbnQ2NChlLm5vcmRpY0xhc3RCb290U2Vzc2lvbiksXCIwXCIhPT1lLnRpbWVPZkNhcHR1cmUmJm4udWludDMyKDExMikudWludDY0KGUudGltZU9mQ2FwdHVyZSksMCE9PWUuYnV0dG9uUHJlc3NUeXBlJiZuLnVpbnQzMigxMjApLmludDMyKGUuYnV0dG9uUHJlc3NUeXBlKSwhMD09PWUuYmxlQ29ubmVjdGVkJiZuLnVpbnQzMigxMjgpLmJvb2woZS5ibGVDb25uZWN0ZWQpLDAhPT1lLmZpbGVUeXBlJiZuLnVpbnQzMigxMzYpLmludDMyKGUuZmlsZVR5cGUpLDAhPT1lLnNuYXBUaW1lU2VjJiZuLnVpbnQzMigxNDUpLmRvdWJsZShlLnNuYXBUaW1lU2VjKSwhMD09PWUuaGV2Y01vZGUmJm4udWludDMyKDE1MikuYm9vbChlLmhldmNNb2RlKSxcIjBcIiE9PWUudXRjT2Zmc2V0U2Vjb25kcyYmbi51aW50MzIoMTYwKS51aW50NjQoZS51dGNPZmZzZXRTZWNvbmRzKSxcIjBcIiE9PWUuZHJvcHBlZEZyYW1lc1ZpbjAmJm4udWludDMyKDE2OCkudWludDY0KGUuZHJvcHBlZEZyYW1lc1ZpbjApLFwiMFwiIT09ZS5kcm9wcGVkRnJhbWVzVmluMSYmbi51aW50MzIoMTc2KS51aW50NjQoZS5kcm9wcGVkRnJhbWVzVmluMSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZTp2b2lkIDAsY29udGVudElkOlwiXCIsbXVsdGlTbmFwSWQ6XCJcIixtdWx0aVNuYXBDb3VudDpcIjBcIixtdWx0aVNuYXBJbmRleDpcIjBcIixhbWJpZW50TGlnaHRJbnRlbnNpdHk6XCIwXCIsc2Vuc29yQmVnaW5UZW1wZXJhdHVyZTpcIjBcIixzZW5zb3JFbmRUZW1wZXJhdHVyZTpcIjBcIixpbWFnZVNlbnNvckN1cnJlbnREZ2M6XCIwXCIsaW1hZ2VTZW5zb3JDdXJyZW50QWdjOlwiMFwiLGV2SW5kZXhTdGFydDpcIjBcIixldkluZGV4RW5kOlwiMFwiLG5vcmRpY0xhc3RCb290U2Vzc2lvbjpcIjBcIix0aW1lT2ZDYXB0dXJlOlwiMFwiLGJ1dHRvblByZXNzVHlwZTowLGJsZUNvbm5lY3RlZDohMSxmaWxlVHlwZTowLHNuYXBUaW1lU2VjOjAsaGV2Y01vZGU6ITEsdXRjT2Zmc2V0U2Vjb25kczpcIjBcIixkcm9wcGVkRnJhbWVzVmluMDpcIjBcIixkcm9wcGVkRnJhbWVzVmluMTpcIjBcIn07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc3BlY3RhY2xlc0NvbnRlbnRUcmFuc2ZlclNlc3Npb25TZXJ2ZXJFdmVudEJhc2U9dC5TcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5jb250ZW50SWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5tdWx0aVNuYXBJZD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNDphLm11bHRpU25hcENvdW50PXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmEubXVsdGlTbmFwSW5kZXg9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6YS5hbWJpZW50TGlnaHRJbnRlbnNpdHk9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDc6YS5zZW5zb3JCZWdpblRlbXBlcmF0dXJlPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA4OmEuc2Vuc29yRW5kVGVtcGVyYXR1cmU9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6YS5pbWFnZVNlbnNvckN1cnJlbnREZ2M9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDEwOmEuaW1hZ2VTZW5zb3JDdXJyZW50QWdjPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAxMTphLmV2SW5kZXhTdGFydD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTI6YS5ldkluZGV4RW5kPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAxMzphLm5vcmRpY0xhc3RCb290U2Vzc2lvbj1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMTQ6YS50aW1lT2ZDYXB0dXJlPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAxNTphLmJ1dHRvblByZXNzVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSAxNjphLmJsZUNvbm5lY3RlZD1yLmJvb2woKTticmVhaztjYXNlIDE3OmEuZmlsZVR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMTg6YS5zbmFwVGltZVNlYz1yLmRvdWJsZSgpO2JyZWFrO2Nhc2UgMTk6YS5oZXZjTW9kZT1yLmJvb2woKTticmVhaztjYXNlIDIwOmEudXRjT2Zmc2V0U2Vjb25kcz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMjE6YS5kcm9wcGVkRnJhbWVzVmluMD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMjI6YS5kcm9wcGVkRnJhbWVzVmluMT1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c3BlY3RhY2xlc0NvbnRlbnRUcmFuc2ZlclNlc3Npb25TZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLGNvbnRlbnRJZDpcIlwiLG11bHRpU25hcElkOlwiXCIsbXVsdGlTbmFwQ291bnQ6XCIwXCIsbXVsdGlTbmFwSW5kZXg6XCIwXCIsYW1iaWVudExpZ2h0SW50ZW5zaXR5OlwiMFwiLHNlbnNvckJlZ2luVGVtcGVyYXR1cmU6XCIwXCIsc2Vuc29yRW5kVGVtcGVyYXR1cmU6XCIwXCIsaW1hZ2VTZW5zb3JDdXJyZW50RGdjOlwiMFwiLGltYWdlU2Vuc29yQ3VycmVudEFnYzpcIjBcIixldkluZGV4U3RhcnQ6XCIwXCIsZXZJbmRleEVuZDpcIjBcIixub3JkaWNMYXN0Qm9vdFNlc3Npb246XCIwXCIsdGltZU9mQ2FwdHVyZTpcIjBcIixidXR0b25QcmVzc1R5cGU6MCxibGVDb25uZWN0ZWQ6ITEsZmlsZVR5cGU6MCxzbmFwVGltZVNlYzowLGhldmNNb2RlOiExLHV0Y09mZnNldFNlY29uZHM6XCIwXCIsZHJvcHBlZEZyYW1lc1ZpbjA6XCIwXCIsZHJvcHBlZEZyYW1lc1ZpbjE6XCIwXCJ9O3JldHVybiBuLnNwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXNzaW9uU2VydmVyRXZlbnRCYXNlPXZvaWQgMCE9PWUuc3BlY3RhY2xlc0NvbnRlbnRUcmFuc2ZlclNlc3Npb25TZXJ2ZXJFdmVudEJhc2UmJm51bGwhPT1lLnNwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXNzaW9uU2VydmVyRXZlbnRCYXNlP3QuU3BlY3RhY2xlc0NvbnRlbnRUcmFuc2ZlclNlc3Npb25TZXJ2ZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZSk6dm9pZCAwLG4uY29udGVudElkPWUuY29udGVudElkPz9cIlwiLG4ubXVsdGlTbmFwSWQ9ZS5tdWx0aVNuYXBJZD8/XCJcIixuLm11bHRpU25hcENvdW50PWUubXVsdGlTbmFwQ291bnQ/P1wiMFwiLG4ubXVsdGlTbmFwSW5kZXg9ZS5tdWx0aVNuYXBJbmRleD8/XCIwXCIsbi5hbWJpZW50TGlnaHRJbnRlbnNpdHk9ZS5hbWJpZW50TGlnaHRJbnRlbnNpdHk/P1wiMFwiLG4uc2Vuc29yQmVnaW5UZW1wZXJhdHVyZT1lLnNlbnNvckJlZ2luVGVtcGVyYXR1cmU/P1wiMFwiLG4uc2Vuc29yRW5kVGVtcGVyYXR1cmU9ZS5zZW5zb3JFbmRUZW1wZXJhdHVyZT8/XCIwXCIsbi5pbWFnZVNlbnNvckN1cnJlbnREZ2M9ZS5pbWFnZVNlbnNvckN1cnJlbnREZ2M/P1wiMFwiLG4uaW1hZ2VTZW5zb3JDdXJyZW50QWdjPWUuaW1hZ2VTZW5zb3JDdXJyZW50QWdjPz9cIjBcIixuLmV2SW5kZXhTdGFydD1lLmV2SW5kZXhTdGFydD8/XCIwXCIsbi5ldkluZGV4RW5kPWUuZXZJbmRleEVuZD8/XCIwXCIsbi5ub3JkaWNMYXN0Qm9vdFNlc3Npb249ZS5ub3JkaWNMYXN0Qm9vdFNlc3Npb24/P1wiMFwiLG4udGltZU9mQ2FwdHVyZT1lLnRpbWVPZkNhcHR1cmU/P1wiMFwiLG4uYnV0dG9uUHJlc3NUeXBlPWUuYnV0dG9uUHJlc3NUeXBlPz8wLG4uYmxlQ29ubmVjdGVkPWUuYmxlQ29ubmVjdGVkPz8hMSxuLmZpbGVUeXBlPWUuZmlsZVR5cGU/PzAsbi5zbmFwVGltZVNlYz1lLnNuYXBUaW1lU2VjPz8wLG4uaGV2Y01vZGU9ZS5oZXZjTW9kZT8/ITEsbi51dGNPZmZzZXRTZWNvbmRzPWUudXRjT2Zmc2V0U2Vjb25kcz8/XCIwXCIsbi5kcm9wcGVkRnJhbWVzVmluMD1lLmRyb3BwZWRGcmFtZXNWaW4wPz9cIjBcIixuLmRyb3BwZWRGcmFtZXNWaW4xPWUuZHJvcHBlZEZyYW1lc1ZpbjE/P1wiMFwiLG59fSx0LlNwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXJ2ZXJFdmVudEJhc2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50JiZ0LlNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQuZW5jb2RlKGUuc3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS50cmFuc2ZlclNlc3Npb25JZCYmbi51aW50MzIoMTgpLnN0cmluZyhlLnRyYW5zZmVyU2Vzc2lvbklkKSwwIT09ZS50cmFuc2ZlckNoYW5uZWwmJm4udWludDMyKDI0KS5pbnQzMihlLnRyYW5zZmVyQ2hhbm5lbCksMCE9PWUudHJhbnNmZXJUeXBlJiZuLnVpbnQzMigzMikuaW50MzIoZS50cmFuc2ZlclR5cGUpLFwiMFwiIT09ZS53aWZpRnJlcXVlbmN5TWh6JiZuLnVpbnQzMig0MCkudWludDY0KGUud2lmaUZyZXF1ZW5jeU1oeiksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50OnZvaWQgMCx0cmFuc2ZlclNlc3Npb25JZDpcIlwiLHRyYW5zZmVyQ2hhbm5lbDowLHRyYW5zZmVyVHlwZTowLHdpZmlGcmVxdWVuY3lNaHo6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ9dC5TcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLnRyYW5zZmVyU2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEudHJhbnNmZXJDaGFubmVsPXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS50cmFuc2ZlclR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNTphLndpZmlGcmVxdWVuY3lNaHo9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3NwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ6dm9pZCAwLHRyYW5zZmVyU2Vzc2lvbklkOlwiXCIsdHJhbnNmZXJDaGFubmVsOjAsdHJhbnNmZXJUeXBlOjAsd2lmaUZyZXF1ZW5jeU1oejpcIjBcIn07cmV0dXJuIG4uc3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQmJm51bGwhPT1lLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ/dC5TcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuc3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudCk6dm9pZCAwLG4udHJhbnNmZXJTZXNzaW9uSWQ9ZS50cmFuc2ZlclNlc3Npb25JZD8/XCJcIixuLnRyYW5zZmVyQ2hhbm5lbD1lLnRyYW5zZmVyQ2hhbm5lbD8/MCxuLnRyYW5zZmVyVHlwZT1lLnRyYW5zZmVyVHlwZT8/MCxuLndpZmlGcmVxdWVuY3lNaHo9ZS53aWZpRnJlcXVlbmN5TWh6Pz9cIjBcIixufX0sdC5TcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2Vzc2lvblNlcnZlckV2ZW50QmFzZT17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNwZWN0YWNsZXNUZW1wZXJhdHVyZVRyYWNrZWRTZXJ2ZXJFdmVudCYmdC5TcGVjdGFjbGVzVGVtcGVyYXR1cmVUcmFja2VkU2VydmVyRXZlbnQuZW5jb2RlKGUuc3BlY3RhY2xlc1RlbXBlcmF0dXJlVHJhY2tlZFNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnRyYW5zZmVyU2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUudHJhbnNmZXJTZXNzaW9uSWQpLDAhPT1lLnRyYW5zZmVyQ2hhbm5lbCYmbi51aW50MzIoMjQpLmludDMyKGUudHJhbnNmZXJDaGFubmVsKSwwIT09ZS50cmFuc2ZlclR5cGUmJm4udWludDMyKDMyKS5pbnQzMihlLnRyYW5zZmVyVHlwZSksXCIwXCIhPT1lLndpZmlGcmVxdWVuY3lNaHomJm4udWludDMyKDQwKS51aW50NjQoZS53aWZpRnJlcXVlbmN5TWh6KSwhMD09PWUuaXNDaGFyZ2luZyYmbi51aW50MzIoNDgpLmJvb2woZS5pc0NoYXJnaW5nKSxcIjBcIiE9PWUuZGV2aWNlQmF0dGVyeSYmbi51aW50MzIoNTYpLnVpbnQ2NChlLmRldmljZUJhdHRlcnkpLFwiMFwiIT09ZS5kZXZpY2VTdG9yYWdlJiZuLnVpbnQzMig2NCkudWludDY0KGUuZGV2aWNlU3RvcmFnZSksMCE9PWUuZHVyYXRpb25TZWMmJm4udWludDMyKDczKS5kb3VibGUoZS5kdXJhdGlvblNlYyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzcGVjdGFjbGVzVGVtcGVyYXR1cmVUcmFja2VkU2VydmVyRXZlbnQ6dm9pZCAwLHRyYW5zZmVyU2Vzc2lvbklkOlwiXCIsdHJhbnNmZXJDaGFubmVsOjAsdHJhbnNmZXJUeXBlOjAsd2lmaUZyZXF1ZW5jeU1oejpcIjBcIixpc0NoYXJnaW5nOiExLGRldmljZUJhdHRlcnk6XCIwXCIsZGV2aWNlU3RvcmFnZTpcIjBcIixkdXJhdGlvblNlYzowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zcGVjdGFjbGVzVGVtcGVyYXR1cmVUcmFja2VkU2VydmVyRXZlbnQ9dC5TcGVjdGFjbGVzVGVtcGVyYXR1cmVUcmFja2VkU2VydmVyRXZlbnQuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudHJhbnNmZXJTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS50cmFuc2ZlckNoYW5uZWw9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNDphLnRyYW5zZmVyVHlwZT1yLmludDMyKCk7YnJlYWs7Y2FzZSA1OmEud2lmaUZyZXF1ZW5jeU1oej1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNjphLmlzQ2hhcmdpbmc9ci5ib29sKCk7YnJlYWs7Y2FzZSA3OmEuZGV2aWNlQmF0dGVyeT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgODphLmRldmljZVN0b3JhZ2U9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDk6YS5kdXJhdGlvblNlYz1yLmRvdWJsZSgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c3BlY3RhY2xlc1RlbXBlcmF0dXJlVHJhY2tlZFNlcnZlckV2ZW50OnZvaWQgMCx0cmFuc2ZlclNlc3Npb25JZDpcIlwiLHRyYW5zZmVyQ2hhbm5lbDowLHRyYW5zZmVyVHlwZTowLHdpZmlGcmVxdWVuY3lNaHo6XCIwXCIsaXNDaGFyZ2luZzohMSxkZXZpY2VCYXR0ZXJ5OlwiMFwiLGRldmljZVN0b3JhZ2U6XCIwXCIsZHVyYXRpb25TZWM6MH07cmV0dXJuIG4uc3BlY3RhY2xlc1RlbXBlcmF0dXJlVHJhY2tlZFNlcnZlckV2ZW50PXZvaWQgMCE9PWUuc3BlY3RhY2xlc1RlbXBlcmF0dXJlVHJhY2tlZFNlcnZlckV2ZW50JiZudWxsIT09ZS5zcGVjdGFjbGVzVGVtcGVyYXR1cmVUcmFja2VkU2VydmVyRXZlbnQ/dC5TcGVjdGFjbGVzVGVtcGVyYXR1cmVUcmFja2VkU2VydmVyRXZlbnQuZnJvbVBhcnRpYWwoZS5zcGVjdGFjbGVzVGVtcGVyYXR1cmVUcmFja2VkU2VydmVyRXZlbnQpOnZvaWQgMCxuLnRyYW5zZmVyU2Vzc2lvbklkPWUudHJhbnNmZXJTZXNzaW9uSWQ/P1wiXCIsbi50cmFuc2ZlckNoYW5uZWw9ZS50cmFuc2ZlckNoYW5uZWw/PzAsbi50cmFuc2ZlclR5cGU9ZS50cmFuc2ZlclR5cGU/PzAsbi53aWZpRnJlcXVlbmN5TWh6PWUud2lmaUZyZXF1ZW5jeU1oej8/XCIwXCIsbi5pc0NoYXJnaW5nPWUuaXNDaGFyZ2luZz8/ITEsbi5kZXZpY2VCYXR0ZXJ5PWUuZGV2aWNlQmF0dGVyeT8/XCIwXCIsbi5kZXZpY2VTdG9yYWdlPWUuZGV2aWNlU3RvcmFnZT8/XCIwXCIsbi5kdXJhdGlvblNlYz1lLmR1cmF0aW9uU2VjPz8wLG59fSx0LlNwZWN0YWNsZXNGaWxlVHJhbnNmZXJTZXJ2ZXI9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2VydmVyRXZlbnRCYXNlJiZ0LlNwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXJ2ZXJFdmVudEJhc2UuZW5jb2RlKGUuc3BlY3RhY2xlc0NvbnRlbnRUcmFuc2ZlclNlcnZlckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwhMD09PWUuaXNDaGFyZ2luZyYmbi51aW50MzIoMTYpLmJvb2woZS5pc0NoYXJnaW5nKSxcIjBcIiE9PWUuZGV2aWNlQmF0dGVyeSYmbi51aW50MzIoMjQpLnVpbnQ2NChlLmRldmljZUJhdHRlcnkpLFwiMFwiIT09ZS53aWZpVGVtcGVyYXR1cmUmJm4udWludDMyKDMyKS51aW50NjQoZS53aWZpVGVtcGVyYXR1cmUpLFwiMFwiIT09ZS50cmFuc2ZlclNwZWVkQnBzJiZuLnVpbnQzMig0MCkudWludDY0KGUudHJhbnNmZXJTcGVlZEJwcyksXCJcIiE9PWUuY29udGVudElkJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUuY29udGVudElkKSwwIT09ZS5maWxlVHlwZSYmbi51aW50MzIoNTYpLmludDMyKGUuZmlsZVR5cGUpLFwiMFwiIT09ZS5maWxlU2l6ZUJ5dGVzJiZuLnVpbnQzMig2NCkudWludDY0KGUuZmlsZVNpemVCeXRlcyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxpc0NoYXJnaW5nOiExLGRldmljZUJhdHRlcnk6XCIwXCIsd2lmaVRlbXBlcmF0dXJlOlwiMFwiLHRyYW5zZmVyU3BlZWRCcHM6XCIwXCIsY29udGVudElkOlwiXCIsZmlsZVR5cGU6MCxmaWxlU2l6ZUJ5dGVzOlwiMFwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2VydmVyRXZlbnRCYXNlPXQuU3BlY3RhY2xlc0NvbnRlbnRUcmFuc2ZlclNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5pc0NoYXJnaW5nPXIuYm9vbCgpO2JyZWFrO2Nhc2UgMzphLmRldmljZUJhdHRlcnk9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6YS53aWZpVGVtcGVyYXR1cmU9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDU6YS50cmFuc2ZlclNwZWVkQnBzPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA2OmEuY29udGVudElkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmEuZmlsZVR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgODphLmZpbGVTaXplQnl0ZXM9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3NwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLGlzQ2hhcmdpbmc6ITEsZGV2aWNlQmF0dGVyeTpcIjBcIix3aWZpVGVtcGVyYXR1cmU6XCIwXCIsdHJhbnNmZXJTcGVlZEJwczpcIjBcIixjb250ZW50SWQ6XCJcIixmaWxlVHlwZTowLGZpbGVTaXplQnl0ZXM6XCIwXCJ9O3JldHVybiBuLnNwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS5zcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS5zcGVjdGFjbGVzQ29udGVudFRyYW5zZmVyU2VydmVyRXZlbnRCYXNlP3QuU3BlY3RhY2xlc0NvbnRlbnRUcmFuc2ZlclNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnNwZWN0YWNsZXNDb250ZW50VHJhbnNmZXJTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxuLmlzQ2hhcmdpbmc9ZS5pc0NoYXJnaW5nPz8hMSxuLmRldmljZUJhdHRlcnk9ZS5kZXZpY2VCYXR0ZXJ5Pz9cIjBcIixuLndpZmlUZW1wZXJhdHVyZT1lLndpZmlUZW1wZXJhdHVyZT8/XCIwXCIsbi50cmFuc2ZlclNwZWVkQnBzPWUudHJhbnNmZXJTcGVlZEJwcz8/XCIwXCIsbi5jb250ZW50SWQ9ZS5jb250ZW50SWQ/P1wiXCIsbi5maWxlVHlwZT1lLmZpbGVUeXBlPz8wLG4uZmlsZVNpemVCeXRlcz1lLmZpbGVTaXplQnl0ZXM/P1wiMFwiLG59fSx0LlNwZWN0YWNsZXNJZGxlU3RhdGU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50JiZ0LlNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQuZW5jb2RlKGUuc3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudCxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUudGltZU9mQ2FwdHVyZSYmbi51aW50MzIoMTYpLnVpbnQ2NChlLnRpbWVPZkNhcHR1cmUpLFwiMFwiIT09ZS51dGNPZmZzZXRTZWNvbmRzJiZuLnVpbnQzMigyNCkudWludDY0KGUudXRjT2Zmc2V0U2Vjb25kcyksXCJcIiE9PWUuYWN0aXZpdHlMb2cmJm4udWludDMyKDM0KS5zdHJpbmcoZS5hY3Rpdml0eUxvZyksXCJcIiE9PWUuYWxzTG9nJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUuYWxzTG9nKSxcIlwiIT09ZS5iYXR0ZXJ5TG9nJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUuYmF0dGVyeUxvZyksXCJcIiE9PWUuY2hhcmdlTG9nJiZuLnVpbnQzMig1OCkuc3RyaW5nKGUuY2hhcmdlTG9nKSxcIlwiIT09ZS53ZWFyTG9nJiZuLnVpbnQzMig2Nikuc3RyaW5nKGUud2VhckxvZyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50OnZvaWQgMCx0aW1lT2ZDYXB0dXJlOlwiMFwiLHV0Y09mZnNldFNlY29uZHM6XCIwXCIsYWN0aXZpdHlMb2c6XCJcIixhbHNMb2c6XCJcIixiYXR0ZXJ5TG9nOlwiXCIsY2hhcmdlTG9nOlwiXCIsd2VhckxvZzpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5zcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50PXQuU3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudC5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS50aW1lT2ZDYXB0dXJlPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmEudXRjT2Zmc2V0U2Vjb25kcz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNDphLmFjdGl2aXR5TG9nPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEuYWxzTG9nPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmEuYmF0dGVyeUxvZz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNzphLmNoYXJnZUxvZz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgODphLndlYXJMb2c9ci5zdHJpbmcoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3NwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ6dm9pZCAwLHRpbWVPZkNhcHR1cmU6XCIwXCIsdXRjT2Zmc2V0U2Vjb25kczpcIjBcIixhY3Rpdml0eUxvZzpcIlwiLGFsc0xvZzpcIlwiLGJhdHRlcnlMb2c6XCJcIixjaGFyZ2VMb2c6XCJcIix3ZWFyTG9nOlwiXCJ9O3JldHVybiBuLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ9dm9pZCAwIT09ZS5zcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50JiZudWxsIT09ZS5zcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50P3QuU3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudC5mcm9tUGFydGlhbChlLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQpOnZvaWQgMCxuLnRpbWVPZkNhcHR1cmU9ZS50aW1lT2ZDYXB0dXJlPz9cIjBcIixuLnV0Y09mZnNldFNlY29uZHM9ZS51dGNPZmZzZXRTZWNvbmRzPz9cIjBcIixuLmFjdGl2aXR5TG9nPWUuYWN0aXZpdHlMb2c/P1wiXCIsbi5hbHNMb2c9ZS5hbHNMb2c/P1wiXCIsbi5iYXR0ZXJ5TG9nPWUuYmF0dGVyeUxvZz8/XCJcIixuLmNoYXJnZUxvZz1lLmNoYXJnZUxvZz8/XCJcIixuLndlYXJMb2c9ZS53ZWFyTG9nPz9cIlwiLG59fSx0LlNwZWN0YWNsZXNUZW1wZXJhdHVyZVRyYWNrZWRTZXJ2ZXJFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQmJnQuU3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudC5lbmNvZGUoZS5zcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50LG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS5hbWJhVGVtcGVyYXR1cmUmJm4udWludDMyKDE2KS51aW50NjQoZS5hbWJhVGVtcGVyYXR1cmUpLFwiMFwiIT09ZS5ub3JkaWNUZW1wZXJhdHVyZSYmbi51aW50MzIoMjQpLnVpbnQ2NChlLm5vcmRpY1RlbXBlcmF0dXJlKSxcIjBcIiE9PWUuY291bG9tYkN0cmxUZW1wZXJhdHVyZSYmbi51aW50MzIoMzIpLnVpbnQ2NChlLmNvdWxvbWJDdHJsVGVtcGVyYXR1cmUpLFwiMFwiIT09ZS53aWZpVGVtcGVyYXR1cmUmJm4udWludDMyKDQwKS51aW50NjQoZS53aWZpVGVtcGVyYXR1cmUpLFwiMFwiIT09ZS5xY2FUZW1wZXJhdHVyZSYmbi51aW50MzIoNDgpLnVpbnQ2NChlLnFjYVRlbXBlcmF0dXJlKSxcIjBcIiE9PWUudGVtcGVyYXR1cmVSZXBvcnRVdGMmJm4udWludDMyKDU2KS51aW50NjQoZS50ZW1wZXJhdHVyZVJlcG9ydFV0YyksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50OnZvaWQgMCxhbWJhVGVtcGVyYXR1cmU6XCIwXCIsbm9yZGljVGVtcGVyYXR1cmU6XCIwXCIsY291bG9tYkN0cmxUZW1wZXJhdHVyZTpcIjBcIix3aWZpVGVtcGVyYXR1cmU6XCIwXCIscWNhVGVtcGVyYXR1cmU6XCIwXCIsdGVtcGVyYXR1cmVSZXBvcnRVdGM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ9dC5TcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50LmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmFtYmFUZW1wZXJhdHVyZT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLm5vcmRpY1RlbXBlcmF0dXJlPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA0OmEuY291bG9tYkN0cmxUZW1wZXJhdHVyZT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNTphLndpZmlUZW1wZXJhdHVyZT1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNjphLnFjYVRlbXBlcmF0dXJlPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA3OmEudGVtcGVyYXR1cmVSZXBvcnRVdGM9cChyLnVpbnQ2NCgpKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e3NwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ6dm9pZCAwLGFtYmFUZW1wZXJhdHVyZTpcIjBcIixub3JkaWNUZW1wZXJhdHVyZTpcIjBcIixjb3Vsb21iQ3RybFRlbXBlcmF0dXJlOlwiMFwiLHdpZmlUZW1wZXJhdHVyZTpcIjBcIixxY2FUZW1wZXJhdHVyZTpcIjBcIix0ZW1wZXJhdHVyZVJlcG9ydFV0YzpcIjBcIn07cmV0dXJuIG4uc3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudD12b2lkIDAhPT1lLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQmJm51bGwhPT1lLnNwZWN0YWNsZXNUcmFja2VkU2VydmVyRXZlbnQ/dC5TcGVjdGFjbGVzVHJhY2tlZFNlcnZlckV2ZW50LmZyb21QYXJ0aWFsKGUuc3BlY3RhY2xlc1RyYWNrZWRTZXJ2ZXJFdmVudCk6dm9pZCAwLG4uYW1iYVRlbXBlcmF0dXJlPWUuYW1iYVRlbXBlcmF0dXJlPz9cIjBcIixuLm5vcmRpY1RlbXBlcmF0dXJlPWUubm9yZGljVGVtcGVyYXR1cmU/P1wiMFwiLG4uY291bG9tYkN0cmxUZW1wZXJhdHVyZT1lLmNvdWxvbWJDdHJsVGVtcGVyYXR1cmU/P1wiMFwiLG4ud2lmaVRlbXBlcmF0dXJlPWUud2lmaVRlbXBlcmF0dXJlPz9cIjBcIixuLnFjYVRlbXBlcmF0dXJlPWUucWNhVGVtcGVyYXR1cmU/P1wiMFwiLG4udGVtcGVyYXR1cmVSZXBvcnRVdGM9ZS50ZW1wZXJhdHVyZVJlcG9ydFV0Yz8/XCIwXCIsbn19LHQuU3RvcnlLaXRFdmVudEJhc2U9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5raXRFdmVudEJhc2UmJnQuS2l0RXZlbnRCYXNlLmVuY29kZShlLmtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2tpdEV2ZW50QmFzZTp2b2lkIDB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtpZihlPj4+Mz09PTEpYS5raXRFdmVudEJhc2U9dC5LaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7ZWxzZSByLnNraXBUeXBlKDcmZSl9cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2tpdEV2ZW50QmFzZTp2b2lkIDB9O3JldHVybiBuLmtpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmtpdEV2ZW50QmFzZSYmbnVsbCE9PWUua2l0RXZlbnRCYXNlP3QuS2l0RXZlbnRCYXNlLmZyb21QYXJ0aWFsKGUua2l0RXZlbnRCYXNlKTp2b2lkIDAsbn19LHQuU3RvcnlLaXRTbmFwUGxheWJhY2s9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5zdG9yeUtpdEV2ZW50QmFzZSYmdC5TdG9yeUtpdEV2ZW50QmFzZS5lbmNvZGUoZS5zdG9yeUtpdEV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5wbGF5ZXJTZXNzaW9uSWQmJm4udWludDMyKDE4KS5zdHJpbmcoZS5wbGF5ZXJTZXNzaW9uSWQpLFwiXCIhPT1lLm1lZGlhVXJsJiZuLnVpbnQzMigyNikuc3RyaW5nKGUubWVkaWFVcmwpLFwiXCIhPT1lLnNuYXBJZFVuY2hlY2tlZCYmbi51aW50MzIoMzQpLnN0cmluZyhlLnNuYXBJZFVuY2hlY2tlZCksMCE9PWUubWVkaWFUeXBlJiZuLnVpbnQzMig0MCkuaW50MzIoZS5tZWRpYVR5cGUpLFwiMFwiIT09ZS5tZWRpYUR1cmF0aW9uVW5jaGVja2VkTXMmJm4udWludDMyKDQ4KS51aW50NjQoZS5tZWRpYUR1cmF0aW9uVW5jaGVja2VkTXMpLFwiMFwiIT09ZS5pbml0aWFsU3RhbGxNcyYmbi51aW50MzIoNTYpLnVpbnQ2NChlLmluaXRpYWxTdGFsbE1zKSxcIjBcIiE9PWUuc25hcFZpZXdJbmRleCYmbi51aW50MzIoNjQpLnVpbnQ2NChlLnNuYXBWaWV3SW5kZXgpLFwiMFwiIT09ZS52aWV3VGltZU1zJiZuLnVpbnQzMig3MikudWludDY0KGUudmlld1RpbWVNcyksMCE9PWUuZW50cnlFdmVudCYmbi51aW50MzIoODApLmludDMyKGUuZW50cnlFdmVudCksMCE9PWUuZXhpdEV2ZW50JiZuLnVpbnQzMig4OCkuaW50MzIoZS5leGl0RXZlbnQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17c3RvcnlLaXRFdmVudEJhc2U6dm9pZCAwLHBsYXllclNlc3Npb25JZDpcIlwiLG1lZGlhVXJsOlwiXCIsc25hcElkVW5jaGVja2VkOlwiXCIsbWVkaWFUeXBlOjAsbWVkaWFEdXJhdGlvblVuY2hlY2tlZE1zOlwiMFwiLGluaXRpYWxTdGFsbE1zOlwiMFwiLHNuYXBWaWV3SW5kZXg6XCIwXCIsdmlld1RpbWVNczpcIjBcIixlbnRyeUV2ZW50OjAsZXhpdEV2ZW50OjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLnN0b3J5S2l0RXZlbnRCYXNlPXQuU3RvcnlLaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEucGxheWVyU2Vzc2lvbklkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAzOmEubWVkaWFVcmw9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS5zbmFwSWRVbmNoZWNrZWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDU6YS5tZWRpYVR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgNjphLm1lZGlhRHVyYXRpb25VbmNoZWNrZWRNcz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNzphLmluaXRpYWxTdGFsbE1zPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA4OmEuc25hcFZpZXdJbmRleD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgOTphLnZpZXdUaW1lTXM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDEwOmEuZW50cnlFdmVudD1yLmludDMyKCk7YnJlYWs7Y2FzZSAxMTphLmV4aXRFdmVudD1yLmludDMyKCk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXtzdG9yeUtpdEV2ZW50QmFzZTp2b2lkIDAscGxheWVyU2Vzc2lvbklkOlwiXCIsbWVkaWFVcmw6XCJcIixzbmFwSWRVbmNoZWNrZWQ6XCJcIixtZWRpYVR5cGU6MCxtZWRpYUR1cmF0aW9uVW5jaGVja2VkTXM6XCIwXCIsaW5pdGlhbFN0YWxsTXM6XCIwXCIsc25hcFZpZXdJbmRleDpcIjBcIix2aWV3VGltZU1zOlwiMFwiLGVudHJ5RXZlbnQ6MCxleGl0RXZlbnQ6MH07cmV0dXJuIG4uc3RvcnlLaXRFdmVudEJhc2U9dm9pZCAwIT09ZS5zdG9yeUtpdEV2ZW50QmFzZSYmbnVsbCE9PWUuc3RvcnlLaXRFdmVudEJhc2U/dC5TdG9yeUtpdEV2ZW50QmFzZS5mcm9tUGFydGlhbChlLnN0b3J5S2l0RXZlbnRCYXNlKTp2b2lkIDAsbi5wbGF5ZXJTZXNzaW9uSWQ9ZS5wbGF5ZXJTZXNzaW9uSWQ/P1wiXCIsbi5tZWRpYVVybD1lLm1lZGlhVXJsPz9cIlwiLG4uc25hcElkVW5jaGVja2VkPWUuc25hcElkVW5jaGVja2VkPz9cIlwiLG4ubWVkaWFUeXBlPWUubWVkaWFUeXBlPz8wLG4ubWVkaWFEdXJhdGlvblVuY2hlY2tlZE1zPWUubWVkaWFEdXJhdGlvblVuY2hlY2tlZE1zPz9cIjBcIixuLmluaXRpYWxTdGFsbE1zPWUuaW5pdGlhbFN0YWxsTXM/P1wiMFwiLG4uc25hcFZpZXdJbmRleD1lLnNuYXBWaWV3SW5kZXg/P1wiMFwiLG4udmlld1RpbWVNcz1lLnZpZXdUaW1lTXM/P1wiMFwiLG4uZW50cnlFdmVudD1lLmVudHJ5RXZlbnQ/PzAsbi5leGl0RXZlbnQ9ZS5leGl0RXZlbnQ/PzAsbn19LHQuU3RvcnlLaXRTbmFwUGxheWJhY2tQbGF5ZXJTZXNzaW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUuc3RvcnlLaXRFdmVudEJhc2UmJnQuU3RvcnlLaXRFdmVudEJhc2UuZW5jb2RlKGUuc3RvcnlLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUucGxheWVyU2Vzc2lvbklkJiZuLnVpbnQzMigxOCkuc3RyaW5nKGUucGxheWVyU2Vzc2lvbklkKSxcIjBcIiE9PWUuc25hcENvdW50JiZuLnVpbnQzMigyNCkudWludDY0KGUuc25hcENvdW50KSxcIjBcIiE9PWUuc2Vzc2lvbkR1cmF0aW9uTXMmJm4udWludDMyKDMyKS51aW50NjQoZS5zZXNzaW9uRHVyYXRpb25NcyksMCE9PWUucGxheWVyVHlwZSYmbi51aW50MzIoNDApLmludDMyKGUucGxheWVyVHlwZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtzdG9yeUtpdEV2ZW50QmFzZTp2b2lkIDAscGxheWVyU2Vzc2lvbklkOlwiXCIsc25hcENvdW50OlwiMFwiLHNlc3Npb25EdXJhdGlvbk1zOlwiMFwiLHBsYXllclR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEuc3RvcnlLaXRFdmVudEJhc2U9dC5TdG9yeUtpdEV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5wbGF5ZXJTZXNzaW9uSWQ9ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS5zbmFwQ291bnQ9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6YS5zZXNzaW9uRHVyYXRpb25Ncz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNTphLnBsYXllclR5cGU9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17c3RvcnlLaXRFdmVudEJhc2U6dm9pZCAwLHBsYXllclNlc3Npb25JZDpcIlwiLHNuYXBDb3VudDpcIjBcIixzZXNzaW9uRHVyYXRpb25NczpcIjBcIixwbGF5ZXJUeXBlOjB9O3JldHVybiBuLnN0b3J5S2l0RXZlbnRCYXNlPXZvaWQgMCE9PWUuc3RvcnlLaXRFdmVudEJhc2UmJm51bGwhPT1lLnN0b3J5S2l0RXZlbnRCYXNlP3QuU3RvcnlLaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5zdG9yeUtpdEV2ZW50QmFzZSk6dm9pZCAwLG4ucGxheWVyU2Vzc2lvbklkPWUucGxheWVyU2Vzc2lvbklkPz9cIlwiLG4uc25hcENvdW50PWUuc25hcENvdW50Pz9cIjBcIixuLnNlc3Npb25EdXJhdGlvbk1zPWUuc2Vzc2lvbkR1cmF0aW9uTXM/P1wiMFwiLG4ucGxheWVyVHlwZT1lLnBsYXllclR5cGU/PzAsbn19LHQuU3VnZ2VzdGlvbkNvdW50cz17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIlwiIT09ZS5zdWdnZXN0UmVhc29uJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuc3VnZ2VzdFJlYXNvbiksXCIwXCIhPT1lLnRvdGFsU3VnZ2VzdGlvbnNGb3JSZWFzb24mJnQudWludDMyKDI0KS51aW50NjQoZS50b3RhbFN1Z2dlc3Rpb25zRm9yUmVhc29uKSxcIjBcIiE9PWUudW5pcXVlQ29udHJpYnV0aW9uU3VnZ2VzdGlvbnNGb3JSZWFzb24mJnQudWludDMyKDMyKS51aW50NjQoZS51bmlxdWVDb250cmlidXRpb25TdWdnZXN0aW9uc0ZvclJlYXNvbiksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXtzdWdnZXN0UmVhc29uOlwiXCIsdG90YWxTdWdnZXN0aW9uc0ZvclJlYXNvbjpcIjBcIix1bmlxdWVDb250cmlidXRpb25TdWdnZXN0aW9uc0ZvclJlYXNvbjpcIjBcIn07Zm9yKDtuLnBvczxyOyl7Y29uc3QgZT1uLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAyOmkuc3VnZ2VzdFJlYXNvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnRvdGFsU3VnZ2VzdGlvbnNGb3JSZWFzb249cChuLnVpbnQ2NCgpKTticmVhaztjYXNlIDQ6aS51bmlxdWVDb250cmlidXRpb25TdWdnZXN0aW9uc0ZvclJlYXNvbj1wKG4udWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmUpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWwoZSl7Y29uc3QgdD17c3VnZ2VzdFJlYXNvbjpcIlwiLHRvdGFsU3VnZ2VzdGlvbnNGb3JSZWFzb246XCIwXCIsdW5pcXVlQ29udHJpYnV0aW9uU3VnZ2VzdGlvbnNGb3JSZWFzb246XCIwXCJ9O3JldHVybiB0LnN1Z2dlc3RSZWFzb249ZS5zdWdnZXN0UmVhc29uPz9cIlwiLHQudG90YWxTdWdnZXN0aW9uc0ZvclJlYXNvbj1lLnRvdGFsU3VnZ2VzdGlvbnNGb3JSZWFzb24/P1wiMFwiLHQudW5pcXVlQ29udHJpYnV0aW9uU3VnZ2VzdGlvbnNGb3JSZWFzb249ZS51bmlxdWVDb250cmlidXRpb25TdWdnZXN0aW9uc0ZvclJlYXNvbj8/XCIwXCIsdH19LHQuVGFsa1N0cmVhbWVyQWN0aXZpdHk9e2VuY29kZTooZSx0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4oXCIwXCIhPT1lLnRpbWVzdGFtcE1zJiZ0LnVpbnQzMigxNikudWludDY0KGUudGltZXN0YW1wTXMpLDAhPT1lLmFjdGl2aXR5VHlwZSYmdC51aW50MzIoMjQpLmludDMyKGUuYWN0aXZpdHlUeXBlKSxcIjBcIiE9PWUucGFydGljaXBhbnRJZCYmdC51aW50MzIoMzIpLnVpbnQ2NChlLnBhcnRpY2lwYW50SWQpLCEwPT09ZS53aXRoQXVkaW9QdWJsaXNoZWQmJnQudWludDMyKDQwKS5ib29sKGUud2l0aEF1ZGlvUHVibGlzaGVkKSwhMD09PWUud2l0aFZpZGVvUHVibGlzaGVkJiZ0LnVpbnQzMig0OCkuYm9vbChlLndpdGhWaWRlb1B1Ymxpc2hlZCksdCksZGVjb2RlKGUsdCl7Y29uc3Qgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCByPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdDtjb25zdCBpPXt0aW1lc3RhbXBNczpcIjBcIixhY3Rpdml0eVR5cGU6MCxwYXJ0aWNpcGFudElkOlwiMFwiLHdpdGhBdWRpb1B1Ymxpc2hlZDohMSx3aXRoVmlkZW9QdWJsaXNoZWQ6ITF9O2Zvcig7bi5wb3M8cjspe2NvbnN0IGU9bi51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMjppLnRpbWVzdGFtcE1zPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmkuYWN0aXZpdHlUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDQ6aS5wYXJ0aWNpcGFudElkPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSA1Omkud2l0aEF1ZGlvUHVibGlzaGVkPW4uYm9vbCgpO2JyZWFrO2Nhc2UgNjppLndpdGhWaWRlb1B1Ymxpc2hlZD1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZlKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IHQ9e3RpbWVzdGFtcE1zOlwiMFwiLGFjdGl2aXR5VHlwZTowLHBhcnRpY2lwYW50SWQ6XCIwXCIsd2l0aEF1ZGlvUHVibGlzaGVkOiExLHdpdGhWaWRlb1B1Ymxpc2hlZDohMX07cmV0dXJuIHQudGltZXN0YW1wTXM9ZS50aW1lc3RhbXBNcz8/XCIwXCIsdC5hY3Rpdml0eVR5cGU9ZS5hY3Rpdml0eVR5cGU/PzAsdC5wYXJ0aWNpcGFudElkPWUucGFydGljaXBhbnRJZD8/XCIwXCIsdC53aXRoQXVkaW9QdWJsaXNoZWQ9ZS53aXRoQXVkaW9QdWJsaXNoZWQ/PyExLHQud2l0aFZpZGVvUHVibGlzaGVkPWUud2l0aFZpZGVvUHVibGlzaGVkPz8hMSx0fX0sdC5UYWxrU3RyZWFtZXJQYXJ0aWNpcGFudD17ZW5jb2RlOihlLHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9PihcIjBcIiE9PWUucGFydGljaXBhbnRJZCYmdC51aW50MzIoMTYpLnVpbnQ2NChlLnBhcnRpY2lwYW50SWQpLDAhPT1lLnNka1R5cGUmJnQudWludDMyKDI0KS5pbnQzMihlLnNka1R5cGUpLFwiXCIhPT1lLnNka1ZlcnNpb24mJnQudWludDMyKDM0KS5zdHJpbmcoZS5zZGtWZXJzaW9uKSxcIlwiIT09ZS5vc1ZlcnNpb24mJnQudWludDMyKDQyKS5zdHJpbmcoZS5vc1ZlcnNpb24pLFwiXCIhPT1lLmRldmljZU1vZGVsJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuZGV2aWNlTW9kZWwpLFwiMFwiIT09ZS5qb2luVGltZXN0YW1wTXMmJnQudWludDMyKDU2KS51aW50NjQoZS5qb2luVGltZXN0YW1wTXMpLHQpLGRlY29kZShlLHQpe2NvbnN0IG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgcj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3Q7Y29uc3QgaT17cGFydGljaXBhbnRJZDpcIjBcIixzZGtUeXBlOjAsc2RrVmVyc2lvbjpcIlwiLG9zVmVyc2lvbjpcIlwiLGRldmljZU1vZGVsOlwiXCIsam9pblRpbWVzdGFtcE1zOlwiMFwifTtmb3IoO24ucG9zPHI7KXtjb25zdCBlPW4udWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDI6aS5wYXJ0aWNpcGFudElkPXAobi51aW50NjQoKSk7YnJlYWs7Y2FzZSAzOmkuc2RrVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA0Omkuc2RrVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNTppLm9zVmVyc2lvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLmRldmljZU1vZGVsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3Omkuam9pblRpbWVzdGFtcE1zPXAobi51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmZSl9fXJldHVybiBpfSxmcm9tUGFydGlhbChlKXtjb25zdCB0PXtwYXJ0aWNpcGFudElkOlwiMFwiLHNka1R5cGU6MCxzZGtWZXJzaW9uOlwiXCIsb3NWZXJzaW9uOlwiXCIsZGV2aWNlTW9kZWw6XCJcIixqb2luVGltZXN0YW1wTXM6XCIwXCJ9O3JldHVybiB0LnBhcnRpY2lwYW50SWQ9ZS5wYXJ0aWNpcGFudElkPz9cIjBcIix0LnNka1R5cGU9ZS5zZGtUeXBlPz8wLHQuc2RrVmVyc2lvbj1lLnNka1ZlcnNpb24/P1wiXCIsdC5vc1ZlcnNpb249ZS5vc1ZlcnNpb24/P1wiXCIsdC5kZXZpY2VNb2RlbD1lLmRldmljZU1vZGVsPz9cIlwiLHQuam9pblRpbWVzdGFtcE1zPWUuam9pblRpbWVzdGFtcE1zPz9cIjBcIix0fX0sdC5WZXJpZnlDaGFubmVsQXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxvZ2luQXR0ZW1wdEJhc2UmJnQuTG9naW5BdHRlbXB0QmFzZS5lbmNvZGUoZS5sb2dpbkF0dGVtcHRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnZlcmlmaWNhdGlvbk1ldGhvZCYmbi51aW50MzIoMTYpLmludDMyKGUudmVyaWZpY2F0aW9uTWV0aG9kKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xvZ2luQXR0ZW1wdEJhc2U6dm9pZCAwLHZlcmlmaWNhdGlvbk1ldGhvZDowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sb2dpbkF0dGVtcHRCYXNlPXQuTG9naW5BdHRlbXB0QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS52ZXJpZmljYXRpb25NZXRob2Q9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDAsdmVyaWZpY2F0aW9uTWV0aG9kOjB9O3JldHVybiBuLmxvZ2luQXR0ZW1wdEJhc2U9dm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZudWxsIT09ZS5sb2dpbkF0dGVtcHRCYXNlP3QuTG9naW5BdHRlbXB0QmFzZS5mcm9tUGFydGlhbChlLmxvZ2luQXR0ZW1wdEJhc2UpOnZvaWQgMCxuLnZlcmlmaWNhdGlvbk1ldGhvZD1lLnZlcmlmaWNhdGlvbk1ldGhvZD8/MCxufX0sdC5WZXJpZnlLaXRFdmVudD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxvZ0tpdEV2ZW50QmFzZSYmdC5Mb2dpbktpdEV2ZW50QmFzZS5lbmNvZGUoZS5sb2dLaXRFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUudmVyaWZ5S2l0RXZlbnRUeXBlJiZuLnVpbnQzMigxNikuaW50MzIoZS52ZXJpZnlLaXRFdmVudFR5cGUpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17bG9nS2l0RXZlbnRCYXNlOnZvaWQgMCx2ZXJpZnlLaXRFdmVudFR5cGU6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9nS2l0RXZlbnRCYXNlPXQuTG9naW5LaXRFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudmVyaWZ5S2l0RXZlbnRUeXBlPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xvZ0tpdEV2ZW50QmFzZTp2b2lkIDAsdmVyaWZ5S2l0RXZlbnRUeXBlOjB9O3JldHVybiBuLmxvZ0tpdEV2ZW50QmFzZT12b2lkIDAhPT1lLmxvZ0tpdEV2ZW50QmFzZSYmbnVsbCE9PWUubG9nS2l0RXZlbnRCYXNlP3QuTG9naW5LaXRFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS5sb2dLaXRFdmVudEJhc2UpOnZvaWQgMCxuLnZlcmlmeUtpdEV2ZW50VHlwZT1lLnZlcmlmeUtpdEV2ZW50VHlwZT8/MCxufX0sdC5WZXJpZnlMb2dpbkNvZGVBdHRlbXB0PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUubG9naW5BdHRlbXB0QmFzZSYmdC5Mb2dpbkF0dGVtcHRCYXNlLmVuY29kZShlLmxvZ2luQXR0ZW1wdEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksMCE9PWUubG9naW5JZGVudGlmaWVyVHlwZSYmbi51aW50MzIoMTYpLmludDMyKGUubG9naW5JZGVudGlmaWVyVHlwZSksXCJcIiE9PWUubG9naW5JZGVudGlmaWVySGFzaCYmbi51aW50MzIoMjYpLnN0cmluZyhlLmxvZ2luSWRlbnRpZmllckhhc2gpLDAhPT1lLnZlcmlmaWNhdGlvbk1ldGhvZCYmbi51aW50MzIoMzIpLmludDMyKGUudmVyaWZpY2F0aW9uTWV0aG9kKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xvZ2luQXR0ZW1wdEJhc2U6dm9pZCAwLGxvZ2luSWRlbnRpZmllclR5cGU6MCxsb2dpbklkZW50aWZpZXJIYXNoOlwiXCIsdmVyaWZpY2F0aW9uTWV0aG9kOjB9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLmxvZ2luQXR0ZW1wdEJhc2U9dC5Mb2dpbkF0dGVtcHRCYXNlLmRlY29kZShyLHIudWludDMyKCkpO2JyZWFrO2Nhc2UgMjphLmxvZ2luSWRlbnRpZmllclR5cGU9ci5pbnQzMigpO2JyZWFrO2Nhc2UgMzphLmxvZ2luSWRlbnRpZmllckhhc2g9ci5zdHJpbmcoKTticmVhaztjYXNlIDQ6YS52ZXJpZmljYXRpb25NZXRob2Q9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDAsbG9naW5JZGVudGlmaWVyVHlwZTowLGxvZ2luSWRlbnRpZmllckhhc2g6XCJcIix2ZXJpZmljYXRpb25NZXRob2Q6MH07cmV0dXJuIG4ubG9naW5BdHRlbXB0QmFzZT12b2lkIDAhPT1lLmxvZ2luQXR0ZW1wdEJhc2UmJm51bGwhPT1lLmxvZ2luQXR0ZW1wdEJhc2U/dC5Mb2dpbkF0dGVtcHRCYXNlLmZyb21QYXJ0aWFsKGUubG9naW5BdHRlbXB0QmFzZSk6dm9pZCAwLG4ubG9naW5JZGVudGlmaWVyVHlwZT1lLmxvZ2luSWRlbnRpZmllclR5cGU/PzAsbi5sb2dpbklkZW50aWZpZXJIYXNoPWUubG9naW5JZGVudGlmaWVySGFzaD8/XCJcIixuLnZlcmlmaWNhdGlvbk1ldGhvZD1lLnZlcmlmaWNhdGlvbk1ldGhvZD8/MCxufX07dC5WZXJpZnlPZGx2QXR0ZW1wdD17ZW5jb2RlOihlLG49by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk9Pih2b2lkIDAhPT1lLmxvZ2luQXR0ZW1wdEJhc2UmJnQuTG9naW5BdHRlbXB0QmFzZS5lbmNvZGUoZS5sb2dpbkF0dGVtcHRCYXNlLG4udWludDMyKDEwKS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLnZlcmlmaWNhdGlvbk1ldGhvZCYmbi51aW50MzIoMTYpLmludDMyKGUudmVyaWZpY2F0aW9uTWV0aG9kKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e2xvZ2luQXR0ZW1wdEJhc2U6dm9pZCAwLHZlcmlmaWNhdGlvbk1ldGhvZDowfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS5sb2dpbkF0dGVtcHRCYXNlPXQuTG9naW5BdHRlbXB0QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS52ZXJpZmljYXRpb25NZXRob2Q9ci5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17bG9naW5BdHRlbXB0QmFzZTp2b2lkIDAsdmVyaWZpY2F0aW9uTWV0aG9kOjB9O3JldHVybiBuLmxvZ2luQXR0ZW1wdEJhc2U9dm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZudWxsIT09ZS5sb2dpbkF0dGVtcHRCYXNlP3QuTG9naW5BdHRlbXB0QmFzZS5mcm9tUGFydGlhbChlLmxvZ2luQXR0ZW1wdEJhc2UpOnZvaWQgMCxuLnZlcmlmaWNhdGlvbk1ldGhvZD1lLnZlcmlmaWNhdGlvbk1ldGhvZD8/MCxufX0sdC5WZXJpZnlUd29mYUF0dGVtcHQ9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS5sb2dpbkF0dGVtcHRCYXNlJiZ0LkxvZ2luQXR0ZW1wdEJhc2UuZW5jb2RlKGUubG9naW5BdHRlbXB0QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSwwIT09ZS52ZXJpZmljYXRpb25NZXRob2QmJm4udWludDMyKDE2KS5pbnQzMihlLnZlcmlmaWNhdGlvbk1ldGhvZCksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXtsb2dpbkF0dGVtcHRCYXNlOnZvaWQgMCx2ZXJpZmljYXRpb25NZXRob2Q6MH07Zm9yKDtyLnBvczxpOyl7Y29uc3QgZT1yLnVpbnQzMigpO3N3aXRjaChlPj4+Myl7Y2FzZSAxOmEubG9naW5BdHRlbXB0QmFzZT10LkxvZ2luQXR0ZW1wdEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudmVyaWZpY2F0aW9uTWV0aG9kPXIuaW50MzIoKTticmVhaztkZWZhdWx0OnIuc2tpcFR5cGUoNyZlKX19cmV0dXJuIGF9LGZyb21QYXJ0aWFsKGUpe2NvbnN0IG49e2xvZ2luQXR0ZW1wdEJhc2U6dm9pZCAwLHZlcmlmaWNhdGlvbk1ldGhvZDowfTtyZXR1cm4gbi5sb2dpbkF0dGVtcHRCYXNlPXZvaWQgMCE9PWUubG9naW5BdHRlbXB0QmFzZSYmbnVsbCE9PWUubG9naW5BdHRlbXB0QmFzZT90LkxvZ2luQXR0ZW1wdEJhc2UuZnJvbVBhcnRpYWwoZS5sb2dpbkF0dGVtcHRCYXNlKTp2b2lkIDAsbi52ZXJpZmljYXRpb25NZXRob2Q9ZS52ZXJpZmljYXRpb25NZXRob2Q/PzAsbn19LHQuV2ViQWN0aW9uPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUud2ViU2VydmVyRXZlbnRCYXNlJiZ0LldlYlNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS53ZWJTZXJ2ZXJFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUudXRtQ2FtcGFpZ24mJm4udWludDMyKDE4KS5zdHJpbmcoZS51dG1DYW1wYWlnbiksXCJcIiE9PWUudXRtQ29udGVudCYmbi51aW50MzIoMjYpLnN0cmluZyhlLnV0bUNvbnRlbnQpLFwiXCIhPT1lLnV0bU1lZGl1bSYmbi51aW50MzIoMzQpLnN0cmluZyhlLnV0bU1lZGl1bSksXCJcIiE9PWUudXRtU291cmNlJiZuLnVpbnQzMig0Mikuc3RyaW5nKGUudXRtU291cmNlKSxcIlwiIT09ZS51dG1UZXJtJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUudXRtVGVybSksXCJcIiE9PWUuYWN0aW9uTmFtZSYmbi51aW50MzIoNTgpLnN0cmluZyhlLmFjdGlvbk5hbWUpLFwiXCIhPT1lLmRlZXBMaW5rVXJsJiZuLnVpbnQzMig2Nikuc3RyaW5nKGUuZGVlcExpbmtVcmwpLFwiXCIhPT1lLmRlc3RpbmF0aW9uJiZuLnVpbnQzMig3NCkuc3RyaW5nKGUuZGVzdGluYXRpb24pLFwiXCIhPT1lLmFjdGlvblNvdXJjZSYmbi51aW50MzIoODIpLnN0cmluZyhlLmFjdGlvblNvdXJjZSksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXt3ZWJTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLHV0bUNhbXBhaWduOlwiXCIsdXRtQ29udGVudDpcIlwiLHV0bU1lZGl1bTpcIlwiLHV0bVNvdXJjZTpcIlwiLHV0bVRlcm06XCJcIixhY3Rpb25OYW1lOlwiXCIsZGVlcExpbmtVcmw6XCJcIixkZXN0aW5hdGlvbjpcIlwiLGFjdGlvblNvdXJjZTpcIlwifTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS53ZWJTZXJ2ZXJFdmVudEJhc2U9dC5XZWJTZXJ2ZXJFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAyOmEudXRtQ2FtcGFpZ249ci5zdHJpbmcoKTticmVhaztjYXNlIDM6YS51dG1Db250ZW50PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA0OmEudXRtTWVkaXVtPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmEudXRtU291cmNlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmEudXRtVGVybT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNzphLmFjdGlvbk5hbWU9ci5zdHJpbmcoKTticmVhaztjYXNlIDg6YS5kZWVwTGlua1VybD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgOTphLmRlc3RpbmF0aW9uPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAxMDphLmFjdGlvblNvdXJjZT1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17d2ViU2VydmVyRXZlbnRCYXNlOnZvaWQgMCx1dG1DYW1wYWlnbjpcIlwiLHV0bUNvbnRlbnQ6XCJcIix1dG1NZWRpdW06XCJcIix1dG1Tb3VyY2U6XCJcIix1dG1UZXJtOlwiXCIsYWN0aW9uTmFtZTpcIlwiLGRlZXBMaW5rVXJsOlwiXCIsZGVzdGluYXRpb246XCJcIixhY3Rpb25Tb3VyY2U6XCJcIn07cmV0dXJuIG4ud2ViU2VydmVyRXZlbnRCYXNlPXZvaWQgMCE9PWUud2ViU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS53ZWJTZXJ2ZXJFdmVudEJhc2U/dC5XZWJTZXJ2ZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS53ZWJTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxuLnV0bUNhbXBhaWduPWUudXRtQ2FtcGFpZ24/P1wiXCIsbi51dG1Db250ZW50PWUudXRtQ29udGVudD8/XCJcIixuLnV0bU1lZGl1bT1lLnV0bU1lZGl1bT8/XCJcIixuLnV0bVNvdXJjZT1lLnV0bVNvdXJjZT8/XCJcIixuLnV0bVRlcm09ZS51dG1UZXJtPz9cIlwiLG4uYWN0aW9uTmFtZT1lLmFjdGlvbk5hbWU/P1wiXCIsbi5kZWVwTGlua1VybD1lLmRlZXBMaW5rVXJsPz9cIlwiLG4uZGVzdGluYXRpb249ZS5kZXN0aW5hdGlvbj8/XCJcIixuLmFjdGlvblNvdXJjZT1lLmFjdGlvblNvdXJjZT8/XCJcIixufX0sdC5XZWJQYWdlU2hhcmU9e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS53ZWJTZXJ2ZXJFdmVudEJhc2UmJnQuV2ViU2VydmVyRXZlbnRCYXNlLmVuY29kZShlLndlYlNlcnZlckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUuc2Vzc2lvblRpbWVTZWMmJm4udWludDMyKDE2KS51aW50NjQoZS5zZXNzaW9uVGltZVNlYyksMCE9PWUuc2hhcmVTb3VyY2UmJm4udWludDMyKDI0KS5pbnQzMihlLnNoYXJlU291cmNlKSwwIT09ZS5kZXN0aW5hdGlvblNlbGVjdGVkJiZuLnVpbnQzMigzMikuaW50MzIoZS5kZXN0aW5hdGlvblNlbGVjdGVkKSxcIlwiIT09ZS5kZWVwTGlua1VybCYmbi51aW50MzIoNDIpLnN0cmluZyhlLmRlZXBMaW5rVXJsKSxcIlwiIT09ZS53ZWJQYWdlVXJsJiZuLnVpbnQzMig1MCkuc3RyaW5nKGUud2ViUGFnZVVybCksMCE9PWUuc2hhcmVTdGF0dXMmJm4udWludDMyKDU2KS5pbnQzMihlLnNoYXJlU3RhdHVzKSxcIlwiIT09ZS53ZWJEZXN0aW5hdGlvbnNBdmFpbGFibGUmJm4udWludDMyKDY2KS5zdHJpbmcoZS53ZWJEZXN0aW5hdGlvbnNBdmFpbGFibGUpLFwiXCIhPT1lLndlYkRlc3RpbmF0aW9uc1NlZW4mJm4udWludDMyKDc0KS5zdHJpbmcoZS53ZWJEZXN0aW5hdGlvbnNTZWVuKSxuKSxkZWNvZGUoZSxuKXtjb25zdCByPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSk7bGV0IGk9dm9pZCAwPT09bj9yLmxlbjpyLnBvcytuO2NvbnN0IGE9e3dlYlNlcnZlckV2ZW50QmFzZTp2b2lkIDAsc2Vzc2lvblRpbWVTZWM6XCIwXCIsc2hhcmVTb3VyY2U6MCxkZXN0aW5hdGlvblNlbGVjdGVkOjAsZGVlcExpbmtVcmw6XCJcIix3ZWJQYWdlVXJsOlwiXCIsc2hhcmVTdGF0dXM6MCx3ZWJEZXN0aW5hdGlvbnNBdmFpbGFibGU6XCJcIix3ZWJEZXN0aW5hdGlvbnNTZWVuOlwiXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLndlYlNlcnZlckV2ZW50QmFzZT10LldlYlNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5zZXNzaW9uVGltZVNlYz1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgMzphLnNoYXJlU291cmNlPXIuaW50MzIoKTticmVhaztjYXNlIDQ6YS5kZXN0aW5hdGlvblNlbGVjdGVkPXIuaW50MzIoKTticmVhaztjYXNlIDU6YS5kZWVwTGlua1VybD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNjphLndlYlBhZ2VVcmw9ci5zdHJpbmcoKTticmVhaztjYXNlIDc6YS5zaGFyZVN0YXR1cz1yLmludDMyKCk7YnJlYWs7Y2FzZSA4OmEud2ViRGVzdGluYXRpb25zQXZhaWxhYmxlPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmEud2ViRGVzdGluYXRpb25zU2Vlbj1yLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17d2ViU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxzZXNzaW9uVGltZVNlYzpcIjBcIixzaGFyZVNvdXJjZTowLGRlc3RpbmF0aW9uU2VsZWN0ZWQ6MCxkZWVwTGlua1VybDpcIlwiLHdlYlBhZ2VVcmw6XCJcIixzaGFyZVN0YXR1czowLHdlYkRlc3RpbmF0aW9uc0F2YWlsYWJsZTpcIlwiLHdlYkRlc3RpbmF0aW9uc1NlZW46XCJcIn07cmV0dXJuIG4ud2ViU2VydmVyRXZlbnRCYXNlPXZvaWQgMCE9PWUud2ViU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS53ZWJTZXJ2ZXJFdmVudEJhc2U/dC5XZWJTZXJ2ZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS53ZWJTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxuLnNlc3Npb25UaW1lU2VjPWUuc2Vzc2lvblRpbWVTZWM/P1wiMFwiLG4uc2hhcmVTb3VyY2U9ZS5zaGFyZVNvdXJjZT8/MCxuLmRlc3RpbmF0aW9uU2VsZWN0ZWQ9ZS5kZXN0aW5hdGlvblNlbGVjdGVkPz8wLG4uZGVlcExpbmtVcmw9ZS5kZWVwTGlua1VybD8/XCJcIixuLndlYlBhZ2VVcmw9ZS53ZWJQYWdlVXJsPz9cIlwiLG4uc2hhcmVTdGF0dXM9ZS5zaGFyZVN0YXR1cz8/MCxuLndlYkRlc3RpbmF0aW9uc0F2YWlsYWJsZT1lLndlYkRlc3RpbmF0aW9uc0F2YWlsYWJsZT8/XCJcIixuLndlYkRlc3RpbmF0aW9uc1NlZW49ZS53ZWJEZXN0aW5hdGlvbnNTZWVuPz9cIlwiLG59fSx0LldlYlBhZ2VWaWV3PXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUud2ViU2VydmVyRXZlbnRCYXNlJiZ0LldlYlNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS53ZWJTZXJ2ZXJFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuZW5jcnlwdGVkSXBBZGRyZXNzJiZuLnVpbnQzMigxMjIpLnN0cmluZyhlLmVuY3J5cHRlZElwQWRkcmVzcyksXCJcIiE9PWUudXRtQ2FtcGFpZ24mJm4udWludDMyKDE0Nikuc3RyaW5nKGUudXRtQ2FtcGFpZ24pLFwiXCIhPT1lLnV0bUNvbnRlbnQmJm4udWludDMyKDE1NCkuc3RyaW5nKGUudXRtQ29udGVudCksXCJcIiE9PWUudXRtTWVkaXVtJiZuLnVpbnQzMigxNjIpLnN0cmluZyhlLnV0bU1lZGl1bSksXCJcIiE9PWUudXRtU291cmNlJiZuLnVpbnQzMigxNzApLnN0cmluZyhlLnV0bVNvdXJjZSksXCJcIiE9PWUudXRtVGVybSYmbi51aW50MzIoMTc4KS5zdHJpbmcoZS51dG1UZXJtKSxcIlwiIT09ZS50cmFjZUlkJiZuLnVpbnQzMigxODYpLnN0cmluZyhlLnRyYWNlSWQpLCEwPT09ZS5oYXNOb25jZUNvb2tpZVNldCYmbi51aW50MzIoMTkyKS5ib29sKGUuaGFzTm9uY2VDb29raWVTZXQpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17d2ViU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxlbmNyeXB0ZWRJcEFkZHJlc3M6XCJcIix1dG1DYW1wYWlnbjpcIlwiLHV0bUNvbnRlbnQ6XCJcIix1dG1NZWRpdW06XCJcIix1dG1Tb3VyY2U6XCJcIix1dG1UZXJtOlwiXCIsdHJhY2VJZDpcIlwiLGhhc05vbmNlQ29va2llU2V0OiExfTtmb3IoO3IucG9zPGk7KXtjb25zdCBlPXIudWludDMyKCk7c3dpdGNoKGU+Pj4zKXtjYXNlIDE6YS53ZWJTZXJ2ZXJFdmVudEJhc2U9dC5XZWJTZXJ2ZXJFdmVudEJhc2UuZGVjb2RlKHIsci51aW50MzIoKSk7YnJlYWs7Y2FzZSAxNTphLmVuY3J5cHRlZElwQWRkcmVzcz1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTg6YS51dG1DYW1wYWlnbj1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMTk6YS51dG1Db250ZW50PXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAyMDphLnV0bU1lZGl1bT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMjE6YS51dG1Tb3VyY2U9ci5zdHJpbmcoKTticmVhaztjYXNlIDIyOmEudXRtVGVybT1yLnN0cmluZygpO2JyZWFrO2Nhc2UgMjM6YS50cmFjZUlkPXIuc3RyaW5nKCk7YnJlYWs7Y2FzZSAyNDphLmhhc05vbmNlQ29va2llU2V0PXIuYm9vbCgpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17d2ViU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxlbmNyeXB0ZWRJcEFkZHJlc3M6XCJcIix1dG1DYW1wYWlnbjpcIlwiLHV0bUNvbnRlbnQ6XCJcIix1dG1NZWRpdW06XCJcIix1dG1Tb3VyY2U6XCJcIix1dG1UZXJtOlwiXCIsdHJhY2VJZDpcIlwiLGhhc05vbmNlQ29va2llU2V0OiExfTtyZXR1cm4gbi53ZWJTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS53ZWJTZXJ2ZXJFdmVudEJhc2UmJm51bGwhPT1lLndlYlNlcnZlckV2ZW50QmFzZT90LldlYlNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLndlYlNlcnZlckV2ZW50QmFzZSk6dm9pZCAwLG4uZW5jcnlwdGVkSXBBZGRyZXNzPWUuZW5jcnlwdGVkSXBBZGRyZXNzPz9cIlwiLG4udXRtQ2FtcGFpZ249ZS51dG1DYW1wYWlnbj8/XCJcIixuLnV0bUNvbnRlbnQ9ZS51dG1Db250ZW50Pz9cIlwiLG4udXRtTWVkaXVtPWUudXRtTWVkaXVtPz9cIlwiLG4udXRtU291cmNlPWUudXRtU291cmNlPz9cIlwiLG4udXRtVGVybT1lLnV0bVRlcm0/P1wiXCIsbi50cmFjZUlkPWUudHJhY2VJZD8/XCJcIixuLmhhc05vbmNlQ29va2llU2V0PWUuaGFzTm9uY2VDb29raWVTZXQ/PyExLG59fSx0LldlYlNlcnZlclBlcmZvcm1hbmNlPXtlbmNvZGU6KGUsbj1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKT0+KHZvaWQgMCE9PWUud2ViU2VydmVyRXZlbnRCYXNlJiZ0LldlYlNlcnZlckV2ZW50QmFzZS5lbmNvZGUoZS53ZWJTZXJ2ZXJFdmVudEJhc2Usbi51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCksXCIwXCIhPT1lLnJlcXVlc3RTdGFydFRpbWVzdGFtcCYmbi51aW50MzIoMTYpLnVpbnQ2NChlLnJlcXVlc3RTdGFydFRpbWVzdGFtcCksXCIwXCIhPT1lLnJlcXVlc3RFbmRUaW1lc3RhbXAmJm4udWludDMyKDI0KS51aW50NjQoZS5yZXF1ZXN0RW5kVGltZXN0YW1wKSxcIlwiIT09ZS5yZXF1ZXN0RW5kUmVzdWx0JiZuLnVpbnQzMigzNCkuc3RyaW5nKGUucmVxdWVzdEVuZFJlc3VsdCksXCIwXCIhPT1lLnJlcXVlc3RQcm9jZXNzaW5nVGltZU1zJiZuLnVpbnQzMig0MCkudWludDY0KGUucmVxdWVzdFByb2Nlc3NpbmdUaW1lTXMpLG4pLGRlY29kZShlLG4pe2NvbnN0IHI9ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKTtsZXQgaT12b2lkIDA9PT1uP3IubGVuOnIucG9zK247Y29uc3QgYT17d2ViU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxyZXF1ZXN0U3RhcnRUaW1lc3RhbXA6XCIwXCIscmVxdWVzdEVuZFRpbWVzdGFtcDpcIjBcIixyZXF1ZXN0RW5kUmVzdWx0OlwiXCIscmVxdWVzdFByb2Nlc3NpbmdUaW1lTXM6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLndlYlNlcnZlckV2ZW50QmFzZT10LldlYlNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5yZXF1ZXN0U3RhcnRUaW1lc3RhbXA9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6YS5yZXF1ZXN0RW5kVGltZXN0YW1wPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA0OmEucmVxdWVzdEVuZFJlc3VsdD1yLnN0cmluZygpO2JyZWFrO2Nhc2UgNTphLnJlcXVlc3RQcm9jZXNzaW5nVGltZU1zPXAoci51aW50NjQoKSk7YnJlYWs7ZGVmYXVsdDpyLnNraXBUeXBlKDcmZSl9fXJldHVybiBhfSxmcm9tUGFydGlhbChlKXtjb25zdCBuPXt3ZWJTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLHJlcXVlc3RTdGFydFRpbWVzdGFtcDpcIjBcIixyZXF1ZXN0RW5kVGltZXN0YW1wOlwiMFwiLHJlcXVlc3RFbmRSZXN1bHQ6XCJcIixyZXF1ZXN0UHJvY2Vzc2luZ1RpbWVNczpcIjBcIn07cmV0dXJuIG4ud2ViU2VydmVyRXZlbnRCYXNlPXZvaWQgMCE9PWUud2ViU2VydmVyRXZlbnRCYXNlJiZudWxsIT09ZS53ZWJTZXJ2ZXJFdmVudEJhc2U/dC5XZWJTZXJ2ZXJFdmVudEJhc2UuZnJvbVBhcnRpYWwoZS53ZWJTZXJ2ZXJFdmVudEJhc2UpOnZvaWQgMCxuLnJlcXVlc3RTdGFydFRpbWVzdGFtcD1lLnJlcXVlc3RTdGFydFRpbWVzdGFtcD8/XCIwXCIsbi5yZXF1ZXN0RW5kVGltZXN0YW1wPWUucmVxdWVzdEVuZFRpbWVzdGFtcD8/XCIwXCIsbi5yZXF1ZXN0RW5kUmVzdWx0PWUucmVxdWVzdEVuZFJlc3VsdD8/XCJcIixuLnJlcXVlc3RQcm9jZXNzaW5nVGltZU1zPWUucmVxdWVzdFByb2Nlc3NpbmdUaW1lTXM/P1wiMFwiLG59fSx0LldlYlNlc3Npb249e2VuY29kZTooZSxuPW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpPT4odm9pZCAwIT09ZS53ZWJTZXJ2ZXJFdmVudEJhc2UmJnQuV2ViU2VydmVyRXZlbnRCYXNlLmVuY29kZShlLndlYlNlcnZlckV2ZW50QmFzZSxuLnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxcIjBcIiE9PWUucGFnZUxvYWRUdGZiJiZuLnVpbnQzMigxNikudWludDY0KGUucGFnZUxvYWRUdGZiKSxcIjBcIiE9PWUucGFnZUxvYWRGY3AmJm4udWludDMyKDI0KS51aW50NjQoZS5wYWdlTG9hZEZjcCksXCIwXCIhPT1lLnBhZ2VMb2FkTGNwJiZuLnVpbnQzMigzMikudWludDY0KGUucGFnZUxvYWRMY3ApLFwiMFwiIT09ZS5wYWdlTG9hZENscyYmbi51aW50MzIoNDApLnVpbnQ2NChlLnBhZ2VMb2FkQ2xzKSxcIjBcIiE9PWUucGFnZUxvYWRGaWQmJm4udWludDMyKDQ4KS51aW50NjQoZS5wYWdlTG9hZEZpZCksXCIwXCIhPT1lLnNlc3Npb25MZW5ndGhUaW1lciYmbi51aW50MzIoNTYpLnVpbnQ2NChlLnNlc3Npb25MZW5ndGhUaW1lciksbiksZGVjb2RlKGUsbil7Y29uc3Qgcj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpO2xldCBpPXZvaWQgMD09PW4/ci5sZW46ci5wb3Mrbjtjb25zdCBhPXt3ZWJTZXJ2ZXJFdmVudEJhc2U6dm9pZCAwLHBhZ2VMb2FkVHRmYjpcIjBcIixwYWdlTG9hZEZjcDpcIjBcIixwYWdlTG9hZExjcDpcIjBcIixwYWdlTG9hZENsczpcIjBcIixwYWdlTG9hZEZpZDpcIjBcIixzZXNzaW9uTGVuZ3RoVGltZXI6XCIwXCJ9O2Zvcig7ci5wb3M8aTspe2NvbnN0IGU9ci51aW50MzIoKTtzd2l0Y2goZT4+PjMpe2Nhc2UgMTphLndlYlNlcnZlckV2ZW50QmFzZT10LldlYlNlcnZlckV2ZW50QmFzZS5kZWNvZGUocixyLnVpbnQzMigpKTticmVhaztjYXNlIDI6YS5wYWdlTG9hZFR0ZmI9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDM6YS5wYWdlTG9hZEZjcD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNDphLnBhZ2VMb2FkTGNwPXAoci51aW50NjQoKSk7YnJlYWs7Y2FzZSA1OmEucGFnZUxvYWRDbHM9cChyLnVpbnQ2NCgpKTticmVhaztjYXNlIDY6YS5wYWdlTG9hZEZpZD1wKHIudWludDY0KCkpO2JyZWFrO2Nhc2UgNzphLnNlc3Npb25MZW5ndGhUaW1lcj1wKHIudWludDY0KCkpO2JyZWFrO2RlZmF1bHQ6ci5za2lwVHlwZSg3JmUpfX1yZXR1cm4gYX0sZnJvbVBhcnRpYWwoZSl7Y29uc3Qgbj17d2ViU2VydmVyRXZlbnRCYXNlOnZvaWQgMCxwYWdlTG9hZFR0ZmI6XCIwXCIscGFnZUxvYWRGY3A6XCIwXCIscGFnZUxvYWRMY3A6XCIwXCIscGFnZUxvYWRDbHM6XCIwXCIscGFnZUxvYWRGaWQ6XCIwXCIsc2Vzc2lvbkxlbmd0aFRpbWVyOlwiMFwifTtyZXR1cm4gbi53ZWJTZXJ2ZXJFdmVudEJhc2U9dm9pZCAwIT09ZS53ZWJTZXJ2ZXJFdmVudEJhc2UmJm51bGwhPT1lLndlYlNlcnZlckV2ZW50QmFzZT90LldlYlNlcnZlckV2ZW50QmFzZS5mcm9tUGFydGlhbChlLndlYlNlcnZlckV2ZW50QmFzZSk6dm9pZCAwLG4ucGFnZUxvYWRUdGZiPWUucGFnZUxvYWRUdGZiPz9cIjBcIixuLnBhZ2VMb2FkRmNwPWUucGFnZUxvYWRGY3A/P1wiMFwiLG4ucGFnZUxvYWRMY3A9ZS5wYWdlTG9hZExjcD8/XCIwXCIsbi5wYWdlTG9hZENscz1lLnBhZ2VMb2FkQ2xzPz9cIjBcIixuLnBhZ2VMb2FkRmlkPWUucGFnZUxvYWRGaWQ/P1wiMFwiLG4uc2Vzc2lvbkxlbmd0aFRpbWVyPWUuc2Vzc2lvbkxlbmd0aFRpbWVyPz9cIjBcIixufX0sby5kZWZhdWx0LnV0aWwuTG9uZyE9PWkuZGVmYXVsdCYmKG8uZGVmYXVsdC51dGlsLkxvbmc9aS5kZWZhdWx0LG8uZGVmYXVsdC5jb25maWd1cmUoKSl9LDc0NTQxOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnVzZVdlYlBhZ2VPcGVuPXZvaWQgMDtjb25zdCByPW4oNzgxNDApLGk9big2NzI5NCk7dC51c2VXZWJQYWdlT3Blbj1mdW5jdGlvbigpeygwLGkudXNlRWZmZWN0KSgoKCk9PnsoMCxyLm9uUGFnZU9wZW4pKCk7Y29uc3QgZT0oKT0+KDAsci5vblBhZ2VPcGVuKSgpO3JldHVybiBhZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIixlKSxhZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLHIub25QYWdlQ2xvc2UpLCgpPT57cmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsZSkscmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIixyLm9uUGFnZUNsb3NlKX19KSxbXSl9fSw4NTUyMjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC51c2VXZWJTZXNzaW9uPXZvaWQgMDtjb25zdCByPW4oODg5NDYpLGk9big2NzI5NCk7ZnVuY3Rpb24gbyhlLHQsbil7KDAsci5yZXBvcnRXZWJTZXNzaW9uKSh7cGFnZUxvYWRUdGZiOnQuY3VycmVudC5UVEZCLHBhZ2VMb2FkRmNwOnQuY3VycmVudC5GQ1AscGFnZUxvYWRDbHM6dC5jdXJyZW50LkNMUyxwYWdlTG9hZEZpZDp0LmN1cnJlbnQuRklELHBhZ2VMb2FkTGNwOnQuY3VycmVudC5MQ1AscGFnZVR5cGU6ZSx3ZWJDbGllbnRJZDpufSl9dC51c2VXZWJTZXNzaW9uPWZ1bmN0aW9uKGUsdCxuPVwiXCIpeygwLGkudXNlRWZmZWN0KSgoKCk9PntpZighbilyZXR1cm47bGV0IHI9ITE7YWRkRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIiwoKCk9PntcImhpZGRlblwiIT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlfHxyfHwocj0hMCxvKGUsdCxuKSl9KSksYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VIaWRlXCIsKCgpPT57cnx8KHI9ITAsbyhlLHQsbikpfSkpfSksW25dKX19LDIyNjk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaW5pdEJsaXp6YXJkV2ViQ2xpZW50PXQuc2V0QmxpenphcmRIYXNCZWVuSW5pdGlhbGl6ZWQ9dC5oYXNCbGl6emFyZEJlZW5Jbml0aWFsaXplZD12b2lkIDA7Y29uc3QgaT1uKDc4MTQwKSxvPW4oMTMwMDQpLGE9bigyNzAwMikscz1yKG4oNDQ4NTgpKSxjPW4oMjc0MjUpLHU9big3OTY2MSksbD1uKDg5Mzk5KSxkPW4oNjczNjEpO2Z1bmN0aW9uIHAoZSl7dC5oYXNCbGl6emFyZEJlZW5Jbml0aWFsaXplZD1lfXQuaGFzQmxpenphcmRCZWVuSW5pdGlhbGl6ZWQ9ITEsdC5zZXRCbGl6emFyZEhhc0JlZW5Jbml0aWFsaXplZD1wO2NvbnN0IGY9bmV3IGMuT2JzZXJ2YWJsZSh1LlVOU0VUX0FVVEhfU1RBVEUpO2Z1bmN0aW9uIGgoKXtpZighKDAsZC5oYXNOb25jZUNvb2tpZVNldCkoKSlyZXR1cm4gcy5kZWZhdWx0LmlzUmVhZHkoKSYmcy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6XCJCbGl6emFyZEV2ZW50cy5Jbml0QmxpenphcmQuTm9uY2VDb29raWVOb3RTZXRcIix2YWx1ZToxfSksdm9pZCBmLm5leHQodS5VTkFVVEhfU1RBVEUpO2ZldGNoKFwiaHR0cHM6Ly9hY2NvdW50cy5zbmFwY2hhdC5jb20vYWNjb3VudHMvc3NvP2NsaWVudF9pZD1zbmFwY2hhdC1jb20tbWV0cmljc1wiLHttZXRob2Q6XCJQT1NUXCIsY3JlZGVudGlhbHM6XCJpbmNsdWRlXCIsa2VlcGFsaXZlOiEwLHJlZGlyZWN0OlwibWFudWFsXCJ9KS50aGVuKChlPT57MjAwPT09ZS5zdGF0dXM/ZS50ZXh0KCkudGhlbigoZT0+e2YubmV4dCh7YXV0aFN0YXR1czp1LkF1dGhTdGF0dXMuQVVUSEVOVElDQVRFRCxzc29Ub2tlbjplfSl9KSk6Zi5uZXh0KHUuVU5BVVRIX1NUQVRFKX0pKS5jYXRjaCgoZT0+e2YubmV4dCh1LlVOQVVUSF9TVEFURSkscy5kZWZhdWx0LmlzUmVhZHkoKSYmcy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6XCJCbGl6emFyZEV2ZW50cy5Jbml0QmxpenphcmQuQXV0aFRva2VuRmV0Y2hGYWlsZWRcIix2YWx1ZToxfSksYS5sb2cuZXJyb3IoZSl9KSl9dC5pbml0QmxpenphcmRXZWJDbGllbnQ9ZnVuY3Rpb24oZSl7aWYoIXQuaGFzQmxpenphcmRCZWVuSW5pdGlhbGl6ZWQpe2NvbnN0IHQ9KDAsby5pc0Rlc2t0b3BVQSkoKTsoMCxpLmluaXRCbGl6emFyZCkoe2FwcEVudmlyb25tZW50OnthcHBUeXBlOnQ/XCJXRUJfREVTS1RPUFwiOlwiV0VCX01PQklMRVwiLGFwcEJ1aWxkOlwiUFJPRFwifSxjbGllbnRBdXRoUHJvdmlkZXI6e3Nzb0NsaWVudElkOmwuU3NvQ2xpZW50SWQuU05BUENIQVRfQ09NLGF1dGhTdGF0ZTpmfSxtb2RlOmkuQ29sbGVjdGlvbk1vZGUuUFJPRCxsaWZlY3ljbGVDb25maWc6e3JlcG9ydFdlYlBhZ2VPcGVuOmUud2l0aFdlYlBhZ2VPcGVufX0pLGUud2l0aFdlYlBhZ2VPcGVuJiYocy5kZWZhdWx0LmlzUmVhZHkoKSYmcy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6XCJCbGl6emFyZEV2ZW50cy5Jbml0QmxpenphcmQuV2l0aFdlYlBhZ2VPcGVuXCIsdmFsdWU6MX0pLGgoKSxzZXRJbnRlcnZhbCgoKCk9PmgoKSksMTJlNCkpLHAoITApfX19LDU0ODQ3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmluaXRCbGl6emFyZFdlYkNsaWVudD10LnVzZVdlYlBhZ2VPcGVuPXQudXNlV2ViU2Vzc2lvbj12b2lkIDA7dmFyIHI9big4NTUyMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ1c2VXZWJTZXNzaW9uXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIudXNlV2ViU2Vzc2lvbn19KTt2YXIgaT1uKDc0NTQxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInVzZVdlYlBhZ2VPcGVuXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkudXNlV2ViUGFnZU9wZW59fSk7dmFyIG89bigyMjY5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImluaXRCbGl6emFyZFdlYkNsaWVudFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmluaXRCbGl6emFyZFdlYkNsaWVudH19KX0sMjc0MjU6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lk9ic2VydmFibGU9dC5FdmVudEJ1cz12b2lkIDA7Y2xhc3Mgbntfc3Vic2NyaXB0aW9ucz1uZXcgU2V0O25leHQoZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fc3Vic2NyaXB0aW9ucyl0KGUpfXN1YnNjcmliZShlKXtyZXR1cm4gdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoZSksKCk9PnRoaXMuX3N1YnNjcmlwdGlvbnMuZGVsZXRlKGUpfX10LkV2ZW50QnVzPW47dC5PYnNlcnZhYmxlPWNsYXNze192YWx1ZTtfZXZlbnQ9bmV3IG47Y29uc3RydWN0b3IoZSl7dGhpcy5fdmFsdWU9ZX1uZXh0KGUpe3RoaXMuX3ZhbHVlPWUsdGhpcy5fZXZlbnQubmV4dChlKX1nZXRDdXJyZW50VmFsdWU9KCk9PnRoaXMuX3ZhbHVlO3N1YnNjcmliZT1lPT50aGlzLl9ldmVudC5zdWJzY3JpYmUoZSl9fSw3OTY2MTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIGEoZSl7dHJ5e2Moci5uZXh0KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBzKGUpe3RyeXtjKHIudGhyb3coZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGEscyl9Yygocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfSxpPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZpWzBdKXRocm93IGlbMV07cmV0dXJuIGlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gbz17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhzKXtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKHMpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtvJiYobz0wLHNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihpPTImc1swXT9yLnJldHVybjpzWzBdP3IudGhyb3d8fCgoaT1yLnJldHVybikmJmkuY2FsbChyKSwwKTpyLm5leHQpJiYhKGk9aS5jYWxsKHIsc1sxXSkpLmRvbmUpcmV0dXJuIGk7c3dpdGNoKHI9MCxpJiYocz1bMiZzWzBdLGkudmFsdWVdKSxzWzBdKXtjYXNlIDA6Y2FzZSAxOmk9czticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6c1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9c1sxXSxzPVswXTtjb250aW51ZTtjYXNlIDc6cz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKGk9KGk9YS50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSkmJig2PT09c1swXXx8Mj09PXNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PXNbMF0mJighaXx8c1sxXT5pWzBdJiZzWzFdPGlbM10pKXthLmxhYmVsPXNbMV07YnJlYWt9aWYoNj09PXNbMF0mJmEubGFiZWw8aVsxXSl7YS5sYWJlbD1pWzFdLGk9czticmVha31pZihpJiZhLmxhYmVsPGlbMl0pe2EubGFiZWw9aVsyXSxhLm9wcy5wdXNoKHMpO2JyZWFrfWlbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLGEpfWNhdGNoKGMpe3M9WzYsY10scj0wfWZpbmFsbHl7bj1pPTB9aWYoNSZzWzBdKXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19KFtzLGNdKX19fTt0Ll9fZXNNb2R1bGU9ITAsdC5nZXRTc29DbGllbnRJZD10LmdldEF1dGhTdGF0ZT10LmluaXRpYWxpemVBdXRoU3RhdGU9dC5VTkFVVEhfU1RBVEU9dC5VTlNFVF9BVVRIX1NUQVRFPXQuQXV0aFN0YXR1cz12b2lkIDA7dmFyIG8sYT0oMCxuKDQ1MTExKS5nZXRMb2dnZXIpKFwiYXV0aFN0YXRlXCIpOyFmdW5jdGlvbihlKXtlW2UuQVVUSEVOVElDQVRFRD0wXT1cIkFVVEhFTlRJQ0FURURcIixlW2UuVU5BVVRIRU5USUNBVEVEPTFdPVwiVU5BVVRIRU5USUNBVEVEXCIsZVtlLlVOS05PV049Ml09XCJVTktOT1dOXCJ9KG89dC5BdXRoU3RhdHVzfHwodC5BdXRoU3RhdHVzPXt9KSksdC5VTlNFVF9BVVRIX1NUQVRFPU9iamVjdC5mcmVlemUoe2F1dGhTdGF0dXM6by5VTktOT1dOfSksdC5VTkFVVEhfU1RBVEU9T2JqZWN0LmZyZWV6ZSh7YXV0aFN0YXR1czpvLlVOQVVUSEVOVElDQVRFRH0pO3ZhciBzPXZvaWQgMCxjPXZvaWQgMDt0LmluaXRpYWxpemVBdXRoU3RhdGU9ZnVuY3Rpb24oZSl7aWYobnVsbD09PWUpcmV0dXJuIGEuZGVidWcoXCJTZXR0aW5nIG5vLW9wIHVuYXV0aGVudGljYXRlZCBjbGllbnRBdXRoUHJvdmlkZXJcIiksYz1Qcm9taXNlLnJlc29sdmUodC5VTkFVVEhfU1RBVEUpLHZvaWQocz1udWxsKTtzPWUuc3NvQ2xpZW50SWQsYz1uZXcgUHJvbWlzZSgoZnVuY3Rpb24obil7ZS5hdXRoU3RhdGUuc3Vic2NyaWJlKChmdW5jdGlvbihlKXthLmRlYnVnKFwiR290IG5ldyBhdXRoU3RhdGU6XCIsZSksZSE9PXQuVU5TRVRfQVVUSF9TVEFURSYmKG4oZSksYz1Qcm9taXNlLnJlc29sdmUoZSkpfSkpfSkpfSx0LmdldEF1dGhTdGF0ZT1mdW5jdGlvbigpe3JldHVybiByKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLChmdW5jdGlvbihlKXtpZighYyl0aHJvdyBuZXcgRXJyb3IoXCJnZXRBdXRoU3RhdGUgY2FsbGVkIGJlZm9yZSBzZXRDbGllbnRBdXRoUHJvdmlkZXIsIHdhcyBpbml0QmxpenphcmQgY2FsbGVkP1wiKTtyZXR1cm5bMixjXX0pKX0pKX0sdC5nZXRTc29DbGllbnRJZD1mdW5jdGlvbigpe2lmKHZvaWQgMD09PXMpdGhyb3cgbmV3IEVycm9yKFwiZ2V0U3NvQ2xpZW50SWQgY2FsbGVkIGJlZm9yZSBzZXRDbGllbnRBdXRoUHJvdmlkZXIsIHdhcyBpbml0QmxpenphcmQgY2FsbGVkP1wiKTtyZXR1cm4gc319LDU1NDczOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKGksbyl7ZnVuY3Rpb24gYShlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gYyhlKXt2YXIgdDtlLmRvbmU/aShlLnZhbHVlKToodD1lLnZhbHVlLHQgaW5zdGFuY2VvZiBuP3Q6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodCl9KSkpLnRoZW4oYSxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9LGk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKHMpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO28mJihvPTAsc1swXSYmKGE9MCkpLGE7KXRyeXtpZihuPTEsciYmKGk9MiZzWzBdP3IucmV0dXJuOnNbMF0/ci50aHJvd3x8KChpPXIucmV0dXJuKSYmaS5jYWxsKHIpLDApOnIubmV4dCkmJiEoaT1pLmNhbGwocixzWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gocj0wLGkmJihzPVsyJnNbMF0saS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6aT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoaT0oaT1hLnRyeXMpLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdKSYmKDY9PT1zWzBdfHwyPT09c1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09c1swXSYmKCFpfHxzWzFdPmlbMF0mJnNbMV08aVszXSkpe2EubGFiZWw9c1sxXTticmVha31pZig2PT09c1swXSYmYS5sYWJlbDxpWzFdKXthLmxhYmVsPWlbMV0saT1zO2JyZWFrfWlmKGkmJmEubGFiZWw8aVsyXSl7YS5sYWJlbD1pWzJdLGEub3BzLnB1c2gocyk7YnJlYWt9aVsyXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfXM9dC5jYWxsKGUsYSl9Y2F0Y2goYyl7cz1bNixjXSxyPTB9ZmluYWxseXtuPWk9MH1pZig1JnNbMF0pdGhyb3cgc1sxXTtyZXR1cm57dmFsdWU6c1swXT9zWzFdOnZvaWQgMCxkb25lOiEwfX0oW3MsY10pfX19O3QuX19lc01vZHVsZT0hMCx0LmdldFNjYVRva2VuPXZvaWQgMDt2YXIgbz1uKDU0OTMpLGE9big3NjA4NSkscz1uKDY2Njg1KSxjPW4oNDUxMTEpO3QuZ2V0U2NhVG9rZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0LG47cmV0dXJuIGkodGhpcywoZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbCYmIWU/WzIsbF06KHUuZGVidWcoXCJSZXRyaWV2aW5nIG5ldyBTQ0EgdG9rZW5cIiksWzQsKDAscy5mZXRjaFJldHJ5KShcIlwiLmNvbmNhdCgoMCxvLmdldFVuYXV0aGVudGljYXRlZEJhc2VVcmwpKCksXCIvaW5pdF9jbGllbnRcIikse21ldGhvZDpcIlBPU1RcIixoZWFkZXJzOntcIkNvbnRlbnQtVHlwZVwiOmEuQ09OVEVOVF9UWVBFX0pTT059fSldKTtjYXNlIDE6aWYoISh0PXIuc2VudCgpKSl0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gcmV0cmlldmUgYXV0aGVudGljYXRpb24gdG9rZW5cIik7cmV0dXJuWzQsdC5qc29uKCldO2Nhc2UgMjppZighKG49ci5zZW50KCkudG9rZW4pKXRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdG9rbGVuIGluIHJlc3BvbnNlXCIpO3JldHVybiB1LmRlYnVnKFwiUmV0cmlldmVkIFNDQSB0b2tlblwiKSxsPW4sWzIsbl19fSkpfSkpfTt2YXIgdT0oMCxjLmdldExvZ2dlcikoXCJnZXRTY2FUb2tlblwiKSxsPXZvaWQgMH0sODkzOTk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByO3QuX19lc01vZHVsZT0hMCx0LmdldEF1dGhCYXNlVXJsPXQuU3NvQ2xpZW50SWQ9dm9pZCAwO3ZhciBpLG89big4MDEwMSksYT1uKDQwNjg5KTshZnVuY3Rpb24oZSl7ZS5ERVNLVE9QX1dFQj1cIndlYi1jYWxsaW5nLWNvcnAtLXByb2RcIixlLlNOQVBDSEFUX0NPTT1cInNuYXBjaGF0LWNvbS1tZXRyaWNzXCJ9KGk9dC5Tc29DbGllbnRJZHx8KHQuU3NvQ2xpZW50SWQ9e30pKTt2YXIgcz0oKHI9e30pW2kuREVTS1RPUF9XRUJdPXtzdGFnaW5nVXJsOlwiaHR0cHM6Ly9zdGFnaW5nLXdlYi1nY3Auc25hcC1kZXYubmV0L3dlYi1hbmFseXRpY3MtdjIvd2ViXCIscHJvZFVybDpcImh0dHBzOi8vd2ViLnNuYXBjaGF0LmNvbS93ZWItYW5hbHl0aWNzLXYyL3dlYlwifSxyW2kuU05BUENIQVRfQ09NXT17c3RhZ2luZ1VybDpcImh0dHBzOi8vc3RhZ2luZy1nY3AuYXBpLnNuYXBjaGF0LmNvbS93ZWItYW5hbHl0aWNzLXYyL3dlYlwiLHByb2RVcmw6XCJodHRwczovL2djcC5hcGkuc25hcGNoYXQuY29tL3dlYi1hbmFseXRpY3MtdjIvd2ViXCJ9LHIpO3QuZ2V0QXV0aEJhc2VVcmw9ZnVuY3Rpb24oZSl7dmFyIHQ9c1tlXTtyZXR1cm4oMCxhLmdldENvbGxlY3Rpb25Nb2RlKSgpPT09by5Db2xsZWN0aW9uTW9kZS5TVEFHRT90LnN0YWdpbmdVcmw6dC5wcm9kVXJsfX0sMzAzMDM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O3QuX19lc01vZHVsZT0hMCx0LnNldENvb2tpZXNFbmFibGVkPXQuZ2V0Q2xpZW50SWQ9dm9pZCAwO3ZhciBpPW4oNDUxMTEpLG89big0NjU3OCksYT1yKG4oNjQ5MzApKSxzPSgwLGkuZ2V0TG9nZ2VyKShcImNsaWVudElkXCIpLGM9bnVsbDt0LmdldENsaWVudElkPWZ1bmN0aW9uKCl7dmFyIGU7aWYobnVsbD09PWMpe3ZhciB0PWw/YS5kZWZhdWx0LmdldChmKTp2b2lkIDA7bnVsbCE9PShjPXQ/dS5wYXJzZSh0KTpudWxsKSYmcy5kZWJ1ZyhcIkxvYWRlZCBjbGllbnQgSURcIixjKX1pZigobnVsbD09PShlPW51bGw9PT1jfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmlzRXhwaXJlZCgpKXx8dm9pZCAwPT09ZXx8ZSkmJihzLmluZm8oXCJHZW5lcmF0aW5nIG5ldyBjbGllbnRJZFwiKSxjPXUuZ2VuZXJhdGUoKSxsJiYoYS5kZWZhdWx0LnNldChmLGMuaWQse2V4cGlyZXM6cCxkb21haW46ZH0pLHMuaW5mbyhcImNsaWVudElkIGlzIHNldCBpbiBDb29raWVzXCIpKSksbnVsbD09PWMpdGhyb3dcIlVuZXhwZWN0ZWQgbnVsbCBjbGllbnRJZFwiO3JldHVybiBjLmlkfTt2YXIgdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7T2JqZWN0LmFzc2lnbih0aGlzLGUpfXJldHVybiBlLmdlbmVyYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHtpZDooMCxvLnY0KSgpLHRpbWVzdGFtcDoobmV3IERhdGUpLmdldFRpbWUoKX0pfSxlLnBhcnNlPWZ1bmN0aW9uKHQpe3ZhciBuPXQuc3BsaXQoXCI6XCIpO2lmKDIhPT1uLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgcj17aWQ6blswXSx0aW1lc3RhbXA6cGFyc2VJbnQoblsxXSwxMCl9O3JldHVybigwLG8udmFsaWRhdGUpKHIuaWQpP2lzTmFOKHIudGltZXN0YW1wKT9udWxsOm5ldyBlKHIpOm51bGx9LGUucHJvdG90eXBlLmlzRXhwaXJlZD1mdW5jdGlvbigpe3ZhciBlPW5ldyBEYXRlO3JldHVybiBlPm5ldyBEYXRlKHRoaXMudGltZXN0YW1wK2gpfHxlPG5ldyBEYXRlKHRoaXMudGltZXN0YW1wKX0sZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuXCJcIi5jb25jYXQodGhpcy5pZCxcIjpcIikuY29uY2F0KHRoaXMudGltZXN0YW1wKX0sZX0oKSxsPSEwLGQ9XCJ3d3cuc25hcGNoYXQuY29tXCIscD0zMDt0LnNldENvb2tpZXNFbmFibGVkPWZ1bmN0aW9uKGUsdCxuKXt2b2lkIDA9PT10JiYodD1cInd3dy5zbmFwY2hhdC5jb21cIiksdm9pZCAwPT09biYmKG49MzApLGw9ZSxkPXQscD1ufTt2YXIgZj1cImJsaXp6YXJkX2NsaWVudF9pZFwiLGg9MjU5MmU2fSw1MDAyMzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMCx0LmxvZ0RlYnVnQWN0aW9uPXQucmVnaXN0ZXJEZWJ1Z09ic2VydmVyPXZvaWQgMDt2YXIgbj1bXTt0LnJlZ2lzdGVyRGVidWdPYnNlcnZlcj1mdW5jdGlvbihlLHQpe3ZhciByPXtvYnNlcnZlcjplLHR5cGVzOnR9O3JldHVybiBuLnB1c2gociksZnVuY3Rpb24oKXtuLnNwbGljZShuLmluZGV4T2YociksMSl9fSx0LmxvZ0RlYnVnQWN0aW9uPWZ1bmN0aW9uKGUpe24uZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG4scj10Lm9ic2VydmVyLGk9dC50eXBlczsobnVsbD09PShuPW51bGw9PT1pfHx2b2lkIDA9PT1pP3ZvaWQgMDppLmluY2x1ZGVzKGUudHlwZSkpfHx2b2lkIDA9PT1ufHxuKSYmcihlKX0pKX19LDQwNjg5OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG4scjt0Ll9fZXNNb2R1bGU9ITAsdC5nZXRDb2xsZWN0aW9uTW9kZT10LnNldENvbGxlY3Rpb25Nb2RlPXQuZ2V0QXBwRW52aXJvbm1lbnQ9dC5zZXRBcHBFbnZpcm9ubWVudD12b2lkIDAsdC5zZXRBcHBFbnZpcm9ubWVudD1mdW5jdGlvbihlKXtuPWV9LHQuZ2V0QXBwRW52aXJvbm1lbnQ9ZnVuY3Rpb24oKXtpZighbil0aHJvdyBuZXcgRXJyb3IoXCJhcHBFbnZpcm9ubWVudCBub3Qgc2V0OiB3YXMgQmxpenphcmQgaW5pdGlhbGl6ZWQ/XCIpO3JldHVybiBufSx0LnNldENvbGxlY3Rpb25Nb2RlPWZ1bmN0aW9uKGUpe3I9ZX0sdC5nZXRDb2xsZWN0aW9uTW9kZT1mdW5jdGlvbigpe2lmKCFyKXRocm93IG5ldyBFcnJvcihcImNvbGxlY3Rpb25Nb2RlIG5vdCBzZXQ6IHdhcyBCbGl6emFyZCBpbml0aWFsaXplZD9cIik7cmV0dXJuIHJ9fSw5MDY1MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwLHQuaW5pdEdyYXBoZW5lPXQuYmxpenphcmRHcmFwaGVuZT10LlNVQ0NFU1M9dC5GT0NVU0VEPXQuU1RBUlRVUF9UWVBFPXQuT05fQ0xPU0U9dC5PTl9PUEVOPXQuTkVUV09SS19SRVFVRVNUX0FUVEVNUFRTX0NPVU5UPXQuTkVUV09SS19SRVFVRVNUX0xBVEVOQ1lfTVM9dC5ORVRXT1JLX1JFUVVFU1Q9dC5MT0dfRVZFTlRfQlVGRkVSX1NJWkU9dC5MT0dfRlJBTUVfU1RBUlQ9dC5MT0dfRVZFTlQ9dC5JTklUX0RVUkFUSU9OX01JTExJUz12b2lkIDA7dmFyIGk9bigxODc3OCksbz1yKG4oODc5MDMpKSxhPXIobigyNTMxMykpLHM9big0MDY4OSksYz1yKG4oOTY0ODYpKTt0LklOSVRfRFVSQVRJT05fTUlMTElTPVwiaW5pdF9kdXJhdGlvbl9taWxsaXNcIix0LkxPR19FVkVOVD1cImxvZ19ldmVudFwiLHQuTE9HX0ZSQU1FX1NUQVJUPVwibG9nX2ZyYW1lX3N0YXJ0XCIsdC5MT0dfRVZFTlRfQlVGRkVSX1NJWkU9XCJsb2dfZXZlbnRfYnVmZmVyX3NpemVcIix0Lk5FVFdPUktfUkVRVUVTVD1cIm5ldHdvcmtfcmVxdWVzdFwiLHQuTkVUV09SS19SRVFVRVNUX0xBVEVOQ1lfTVM9XCJuZXR3b3JrX3JlcXVlc3RfbGF0ZW5jeV9tc1wiLHQuTkVUV09SS19SRVFVRVNUX0FUVEVNUFRTX0NPVU5UPVwibmV0d29ya19yZXF1ZXN0X2F0dGVtcHRzX2NvdW50XCIsdC5PTl9PUEVOPVwib25fb3BlblwiLHQuT05fQ0xPU0U9XCJvbl9jbG9zZVwiLHQuU1RBUlRVUF9UWVBFPVwic3RhcnR1cF90eXBlXCIsdC5GT0NVU0VEPVwiZm9jdXNlZFwiLHQuU1VDQ0VTUz1cInN1Y2Nlc3NcIix0LmJsaXp6YXJkR3JhcGhlbmU9bmV3IGkuR3JhcGhlbmUsdC5pbml0R3JhcGhlbmU9ZnVuY3Rpb24oKXt2YXIgZSxuPSgwLHMuZ2V0QXBwRW52aXJvbm1lbnQpKCk7dC5ibGl6emFyZEdyYXBoZW5lLmluaXRpYWxpemUoe25ldHdvcmtIYW5kbGVyOm5ldyBvLmRlZmF1bHQoKDAsYS5kZWZhdWx0KSh7cGFydGl0aW9uTmFtZTppLlBBUlRJVElPTi5CTElaWkFSRCxmbGF2b3I6bnVsbCE9PShlPW4uYXBwQnVpbGQpJiZ2b2lkIDAhPT1lP2U6XCJ1bmtub3duXCIsZGVmYXVsdERpbWVuc2lvbnM6Yy5kZWZhdWx0Lm9taXRCeSh7YXBwOm4uYXBwbGljYXRpb24sYXBwVHlwZTpuLmFwcFR5cGUsYXBwVmVyc2lvbjpuLmFwcFZlcnNpb259LGMuZGVmYXVsdC5pc05pbCl9KSl9KX19LDc4MTQwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pO2kmJiEoXCJnZXRcImluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSl8fChpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9OmZ1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pLGVbcl09dFtuXX0pO3QuX19lc01vZHVsZT0hMCx0LnJlZ2lzdGVyRGVidWdPYnNlcnZlcj10LmxvZ1R5cGVkRXZlbnQ9dC5sb2dFdmVudD10Lm9uUGFnZUNsb3NlPXQub25QYWdlT3Blbj10LkNvbGxlY3Rpb25Nb2RlPXQuaW5pdEJsaXp6YXJkPXZvaWQgMDt2YXIgaT1uKDgwMTAxKTtyKHQsaSxcImluaXRCbGl6emFyZFwiKSxyKHQsaSxcIkNvbGxlY3Rpb25Nb2RlXCIpO3ZhciBvPW4oOTA4MDMpO3IodCxvLFwib25QYWdlT3BlblwiKSxyKHQsbyxcIm9uUGFnZUNsb3NlXCIpO3ZhciBhPW4oNzg2NTMpO3IodCxhLFwibG9nRXZlbnRcIikscih0LGEsXCJsb2dUeXBlZEV2ZW50XCIpLHIodCxuKDUwMDIzKSxcInJlZ2lzdGVyRGVidWdPYnNlcnZlclwiKX0sODAxMDE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBjKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOih0PWUudmFsdWUsdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKSkudGhlbihhLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pKX0saT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaVswXSl0aHJvdyBpWzFdO3JldHVybiBpWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMocyl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihzKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7byYmKG89MCxzWzBdJiYoYT0wKSksYTspdHJ5e2lmKG49MSxyJiYoaT0yJnNbMF0/ci5yZXR1cm46c1swXT9yLnRocm93fHwoKGk9ci5yZXR1cm4pJiZpLmNhbGwociksMCk6ci5uZXh0KSYmIShpPWkuY2FsbChyLHNbMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChyPTAsaSYmKHM9WzImc1swXSxpLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTppPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPShpPWEudHJ5cykubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pJiYoNj09PXNbMF18fDI9PT1zWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1zWzBdJiYoIWl8fHNbMV0+aVswXSYmc1sxXTxpWzNdKSl7YS5sYWJlbD1zWzFdO2JyZWFrfWlmKDY9PT1zWzBdJiZhLmxhYmVsPGlbMV0pe2EubGFiZWw9aVsxXSxpPXM7YnJlYWt9aWYoaSYmYS5sYWJlbDxpWzJdKXthLmxhYmVsPWlbMl0sYS5vcHMucHVzaChzKTticmVha31pWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxhKX1jYXRjaChjKXtzPVs2LGNdLHI9MH1maW5hbGx5e249aT0wfWlmKDUmc1swXSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fShbcyxjXSl9fX07dC5fX2VzTW9kdWxlPSEwLHQuQ29sbGVjdGlvbk1vZGU9dC5pbml0QmxpenphcmQ9dm9pZCAwO3ZhciBvLGE9big0MDY4OSkscz1uKDQ1MTExKSxjPW4oOTA4MDMpLHU9big3ODY1MyksbD1uKDc2MyksZD1uKDkwNjUyKSxwPW4oNjg1MzEpLGY9big3OTY2MSksaD1uKDU2NDYwKSxnPW4oNTQ5MyksbT1uKDMwMzAzKSx2PSgwLHMuZ2V0TG9nZ2VyKShcImluaXRCbGl6emFyZFwiKTt0LmluaXRCbGl6emFyZD1mdW5jdGlvbihlKXt2YXIgdCxuLF8sRSxiPXRoaXM7aWYodS5pbml0Q2FsbGVkKXRocm93IG5ldyBFcnJvcihcImluaXRCbGl6emFyZCBzaG91bGQgbm90IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lc1wiKTt2LmluZm8oXCJJbml0aWFsaXppbmcgQmxpenphcmRcIixlKSwoMCx1LnNldEluaXRDYWxsZWQpKCksKDAscy5zZXRBbmFseXRpY3NMb2dnaW5nRW5hYmxlZCkoQm9vbGVhbihlLmRlYnVnTG9nZ2luZ0VuYWJsZWQpKSwoMCxtLnNldENvb2tpZXNFbmFibGVkKSghZS5jb29raWVzRGlzYWJsZWQsbnVsbD09PSh0PWUuY29va2llc0FyZ3MpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmN1c3RvbURvbWFpbixudWxsPT09KG49ZS5jb29raWVzQXJncyl8fHZvaWQgMD09PW4/dm9pZCAwOm4uZXhwaXJlRGF5cyksKDAsYS5zZXRBcHBFbnZpcm9ubWVudCkoZS5hcHBFbnZpcm9ubWVudCksKDAsYS5zZXRDb2xsZWN0aW9uTW9kZSkobnVsbCE9PShfPWUubW9kZSkmJnZvaWQgMCE9PV8/XzpvLlBST0QpLCgwLGYuaW5pdGlhbGl6ZUF1dGhTdGF0ZSkobnVsbCE9PShFPWUuY2xpZW50QXV0aFByb3ZpZGVyKSYmdm9pZCAwIT09RT9FOm51bGwpLCgwLGQuaW5pdEdyYXBoZW5lKSgpLGUubGlmZWN5Y2xlQ29uZmlnJiYoMCxjLnNldExpZmVjeWNsZUNvbmZpZykoZS5saWZlY3ljbGVDb25maWcpLGUudXNlckd1aWQmJigwLGwuc2V0VXNlckd1aWRQcm9taXNlKShlLnVzZXJHdWlkKSxlLnRpdlRyYW5zYWN0aW9uSWQmJigwLHAuc2V0VGl2VHJhbnNhY3Rpb25JZFByb21pc2UpKGUudGl2VHJhbnNhY3Rpb25JZCksKDAsaC50aW1lZCkoKGZ1bmN0aW9uKCl7cmV0dXJuIHIoYix2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBpKHRoaXMsKGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsZS50aXZUcmFuc2FjdGlvbklkXTtjYXNlIDE6cmV0dXJuIHQuc2VudCgpLFs0LGUudXNlckd1aWRdO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzQsKDAsZy5nZXRVcGxvYWRDb25maWcpKCldO2Nhc2UgMzpyZXR1cm4gdC5zZW50KCksdi5pbmZvKFwiQmxpenphcmQgaW5pdGlhbGl6ZWRcIiksWzJdfX0pKX0pKX0pLHttZXRyaWNzTmFtZTpkLklOSVRfRFVSQVRJT05fTUlMTElTfSl9LGZ1bmN0aW9uKGUpe2UuU1RBR0U9XCJTVEFHRVwiLGUuUFJPRD1cIlBST0RcIn0obz10LkNvbGxlY3Rpb25Nb2RlfHwodC5Db2xsZWN0aW9uTW9kZT17fSkpfSw5MDgwMzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwLHQuc2V0TGlmZWN5Y2xlQ29uZmlnPXQub25QYWdlQ2xvc2U9dC5vblBhZ2VPcGVuPXZvaWQgMDt2YXIgcj1uKDQ1MTExKSxpPW4oMTA1NjgpLG89big2ODUzMSksYT1uKDkwNjUyKSxzPSgwLHIuZ2V0TG9nZ2VyKShcImxpZmVjeWNsZVwiKSxjPSEwO3Qub25QYWdlT3Blbj1mdW5jdGlvbihlKXt2YXIgdCxuLHI9bnVsbCE9PShuPW51bGw9PT1lfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmhhc0ZvY3VzKSYmdm9pZCAwIT09bj9uOmRvY3VtZW50Lmhhc0ZvY3VzKCk7cy5pbmZvKFwiQmxpenphcmQgLSAjb25PcGVuXCIsYz9cIihjb2xkIHN0YXJ0KVwiOlwiKHdhcm0gc3RhcnQpXCIscj9cIihmb3JlZ3JvdW5kKVwiOlwiKGJhY2tncm91bmQpXCIpLGEuYmxpenphcmRHcmFwaGVuZS5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOmEuT05fT1BFTixkaW1lbnNpb25zOih0PXt9LHRbYS5TVEFSVFVQX1RZUEVdPWM/XCJjb2xkXCI6XCJ3YXJtXCIsdFthLkZPQ1VTRURdPVwiXCIuY29uY2F0KHIpLHQpfSksYz9jPSExOigwLGkuc3RhcnROZXdTZXNzaW9uKShcIldBUk1cIiksdS5yZXBvcnRXZWJQYWdlT3BlbiYmciYmKDAsby5yZXBvcnRXZWJQYWdlT3BlbikoZXx8e30pfSx0Lm9uUGFnZUNsb3NlPWZ1bmN0aW9uKCl7dmFyIGUsdCxuO3MuaW5mbyhcIkJsaXp6YXJkIC0gI29uQ2xvc2VcIiksYS5ibGl6emFyZEdyYXBoZW5lLmluY3JlbWVudCh7bWV0cmljc05hbWU6YS5PTl9DTE9TRSxkaW1lbnNpb25zOihlPXt9LGVbYS5TVEFSVFVQX1RZUEVdPW51bGwhPT0obj1udWxsPT09KHQ9KDAsaS5nZXRTZXNzaW9uUHJvcGVydGllcykoKSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYXBwU3RhcnR1cFR5cGUpJiZ2b2lkIDAhPT1uP246XCJcIixlKX0pfTt2YXIgdT17fTt0LnNldExpZmVjeWNsZUNvbmZpZz1mdW5jdGlvbihlKXt1PWV9fSw2ODUzMTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIGEoZSl7dHJ5e2Moci5uZXh0KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBzKGUpe3RyeXtjKHIudGhyb3coZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGEscyl9Yygocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfSxpPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZpWzBdKXRocm93IGlbMV07cmV0dXJuIGlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gbz17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhzKXtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKHMpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtvJiYobz0wLHNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihpPTImc1swXT9yLnJldHVybjpzWzBdP3IudGhyb3d8fCgoaT1yLnJldHVybikmJmkuY2FsbChyKSwwKTpyLm5leHQpJiYhKGk9aS5jYWxsKHIsc1sxXSkpLmRvbmUpcmV0dXJuIGk7c3dpdGNoKHI9MCxpJiYocz1bMiZzWzBdLGkudmFsdWVdKSxzWzBdKXtjYXNlIDA6Y2FzZSAxOmk9czticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6c1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9c1sxXSxzPVswXTtjb250aW51ZTtjYXNlIDc6cz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKGk9KGk9YS50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSkmJig2PT09c1swXXx8Mj09PXNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PXNbMF0mJighaXx8c1sxXT5pWzBdJiZzWzFdPGlbM10pKXthLmxhYmVsPXNbMV07YnJlYWt9aWYoNj09PXNbMF0mJmEubGFiZWw8aVsxXSl7YS5sYWJlbD1pWzFdLGk9czticmVha31pZihpJiZhLmxhYmVsPGlbMl0pe2EubGFiZWw9aVsyXSxhLm9wcy5wdXNoKHMpO2JyZWFrfWlbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLGEpfWNhdGNoKGMpe3M9WzYsY10scj0wfWZpbmFsbHl7bj1pPTB9aWYoNSZzWzBdKXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19KFtzLGNdKX19fTt0Ll9fZXNNb2R1bGU9ITAsdC5yZXBvcnRXZWJQYWdlT3Blbj10LnNldFRpdlRyYW5zYWN0aW9uSWRQcm9taXNlPXZvaWQgMDt2YXIgbz1uKDQ1MTExKSxhPW4oNzgxNDApLHM9KDAsby5nZXRMb2dnZXIpKFwicmVwb3J0V2ViUGFnZU9wZW5cIiksYz1Qcm9taXNlLnJlc29sdmUodm9pZCAwKTt0LnNldFRpdlRyYW5zYWN0aW9uSWRQcm9taXNlPWZ1bmN0aW9uKGUpe2M9ZX0sdC5yZXBvcnRXZWJQYWdlT3Blbj1mdW5jdGlvbihlKXt2YXIgdCxuLG8sdSxsLGQ7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciByLHAsZjtyZXR1cm4gaSh0aGlzLChmdW5jdGlvbihpKXtzd2l0Y2goaS5sYWJlbCl7Y2FzZSAwOnJldHVybiByPW5ldyBVUkxTZWFyY2hQYXJhbXMoc2VsZi5sb2NhdGlvbi5zZWFyY2gpLGY9e2V2ZW50X25hbWU6XCJXRUJfUEFHRV9PUEVOXCIsY2Fub25pY2FsX3VybDpzZWxmLmxvY2F0aW9uLmhvc3RuYW1lLHF1ZXJ5X3BhcmFtZXRlcnM6c2VsZi5sb2NhdGlvbi5zZWFyY2gucmVwbGFjZSgvXlxcPy8sXCJcIiksZGV2aWNlX3NjcmVlbl93aWR0aDpzY3JlZW4ud2lkdGgsZGV2aWNlX3NjcmVlbl9oZWlnaHQ6c2NyZWVuLmhlaWdodCxzY19yZWZlcnJlcjpudWxsIT09KHQ9ci5nZXQoXCJzY19yZWZlcnJlclwiKSkmJnZvaWQgMCE9PXQ/dDp2b2lkIDAsdXRtX2NhbXBhaWduOm51bGwhPT0obj1yLmdldChcInV0bV9jYW1wYWlnblwiKSkmJnZvaWQgMCE9PW4/bjp2b2lkIDAsdXRtX2NvbnRlbnQ6bnVsbCE9PShvPXIuZ2V0KFwidXRtX2NvbnRlbnRcIikpJiZ2b2lkIDAhPT1vP286dm9pZCAwLHV0bV9tZWRpdW06bnVsbCE9PSh1PXIuZ2V0KFwidXRtX21lZGl1bVwiKSkmJnZvaWQgMCE9PXU/dTp2b2lkIDAsdXRtX3NvdXJjZTpudWxsIT09KGw9ci5nZXQoXCJ1dG1fc291cmNlXCIpKSYmdm9pZCAwIT09bD9sOnZvaWQgMCx1dG1fdGVybTpudWxsIT09KGQ9ci5nZXQoXCJ1dG1fdGVybVwiKSkmJnZvaWQgMCE9PWQ/ZDp2b2lkIDB9LFs0LGNdO2Nhc2UgMTpyZXR1cm4gZi50aXZfdHJhbnNhY3Rpb25faWQ9aS5zZW50KCksZi53ZWJfYXBwX2Zvcm1hdD1lLmFwcEZvcm1hdCxmLm5vdGlmaWNhdGlvbl9pZD1lLm5vdGlmaWNhdGlvbklkLGYubm90aWZpY2F0aW9uX3R5cGU9ZS5ub3RpZmljYXRpb25UeXBlLGYuc291cmNlPWUuc291cmNlLHA9ZixzLmluZm8oXCJMb2dnaW5nIFdFQl9QQUdFX09QRU5cIixwKSwoMCxhLmxvZ0V2ZW50KShwKSxbMl19fSkpfSkpfX0sMTA1Njg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19yZWFkfHxmdW5jdGlvbihlLHQpe3ZhciBuPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gZTt2YXIgcixpLG89bi5jYWxsKGUpLGE9W107dHJ5e2Zvcig7KHZvaWQgMD09PXR8fHQtLSA+MCkmJiEocj1vLm5leHQoKSkuZG9uZTspYS5wdXNoKHIudmFsdWUpfWNhdGNoKHMpe2k9e2Vycm9yOnN9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihuPW8ucmV0dXJuKSYmbi5jYWxsKG8pfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gYX0saT10aGlzJiZ0aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKGUsdCxuKXtpZihufHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIHIsaT0wLG89dC5sZW5ndGg7aTxvO2krKykhciYmaSBpbiB0fHwocnx8KHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLGkpKSxyW2ldPXRbaV0pO3JldHVybiBlLmNvbmNhdChyfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSl9O3QuX19lc01vZHVsZT0hMCx0LnN0YXJ0TmV3U2Vzc2lvbj10LmdldFNlc3Npb25Qcm9wZXJ0aWVzPXZvaWQgMDt2YXIgbyxhPSgwLG4oNDUxMTEpLmdldExvZ2dlcikoXCJzZXNzaW9uXCIpO2Z1bmN0aW9uIHMoZSl7dmFyIHQ9e3Nlc3Npb25JZDpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGkoW10scihzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMTIpKSksITEpKSksYXBwU3RhcnR1cFR5cGU6ZX07YS5kZWJ1ZyhcIlN0YXJ0ZWQgbmV3IEJsaXp6YXJkIHNlc3Npb246XCIsdCksbz10fXQuZ2V0U2Vzc2lvblByb3BlcnRpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09byYmcyhcIkNPTERcIiksb30sdC5zdGFydE5ld1Nlc3Npb249c30sNjI4ODk6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt0Ll9fZXNNb2R1bGU9ITAsdC5pc0V2ZW50PXZvaWQgMCx0LmlzRXZlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuXCJldmVudE5hbWVcImluIGV9fSw3ODY1MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIGEoZSl7dHJ5e2Moci5uZXh0KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBzKGUpe3RyeXtjKHIudGhyb3coZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGEscyl9Yygocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfSxpPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZpWzBdKXRocm93IGlbMV07cmV0dXJuIGlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gbz17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhzKXtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKHMpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtvJiYobz0wLHNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihpPTImc1swXT9yLnJldHVybjpzWzBdP3IudGhyb3d8fCgoaT1yLnJldHVybikmJmkuY2FsbChyKSwwKTpyLm5leHQpJiYhKGk9aS5jYWxsKHIsc1sxXSkpLmRvbmUpcmV0dXJuIGk7c3dpdGNoKHI9MCxpJiYocz1bMiZzWzBdLGkudmFsdWVdKSxzWzBdKXtjYXNlIDA6Y2FzZSAxOmk9czticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6c1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9c1sxXSxzPVswXTtjb250aW51ZTtjYXNlIDc6cz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKGk9KGk9YS50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSkmJig2PT09c1swXXx8Mj09PXNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PXNbMF0mJighaXx8c1sxXT5pWzBdJiZzWzFdPGlbM10pKXthLmxhYmVsPXNbMV07YnJlYWt9aWYoNj09PXNbMF0mJmEubGFiZWw8aVsxXSl7YS5sYWJlbD1pWzFdLGk9czticmVha31pZihpJiZhLmxhYmVsPGlbMl0pe2EubGFiZWw9aVsyXSxhLm9wcy5wdXNoKHMpO2JyZWFrfWlbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLGEpfWNhdGNoKGMpe3M9WzYsY10scj0wfWZpbmFsbHl7bj1pPTB9aWYoNSZzWzBdKXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19KFtzLGNdKX19fSxvPXRoaXMmJnRoaXMuX192YWx1ZXN8fGZ1bmN0aW9uKGUpe3ZhciB0PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcixuPXQmJmVbdF0scj0wO2lmKG4pcmV0dXJuIG4uY2FsbChlKTtpZihlJiZcIm51bWJlclwiPT09dHlwZW9mIGUubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGUmJnI+PWUubGVuZ3RoJiYoZT12b2lkIDApLHt2YWx1ZTplJiZlW3IrK10sZG9uZTohZX19fTt0aHJvdyBuZXcgVHlwZUVycm9yKHQ/XCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiOlwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKX07dC5fX2VzTW9kdWxlPSEwLHQuc2V0SW5pdENhbGxlZD10LmluaXRDYWxsZWQ9dC5sb2dFdmVudD10LmxvZ1R5cGVkRXZlbnQ9dm9pZCAwO3ZhciBhPW4oNzYzKSxzPW4oMjA4MTMpLGM9big2Mjg4OSksdT1uKDQ1MTExKSxsPW4oNDQ1NzApLGQ9big5MDY1MikscD1uKDQwNjg5KSxmPW4oNTAwMjMpLGg9KDAsdS5nZXRMb2dnZXIpKFwibG9nRXZlbnRcIik7dC5sb2dUeXBlZEV2ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIG19O3ZhciBnPTA7ZnVuY3Rpb24gbShlKXtpZighdC5pbml0Q2FsbGVkKXRocm93IG5ldyBFcnJvcihcImluaXRCbGl6emFyZCBtdXN0IGJlIGNhbGxlZCBwcmlvciB0byBjYWxsaW5nIGxvZ0V2ZW50XCIpO3ZhciBuPVtdLHU9bmV3IERhdGU7aC5pbmZvKFwiTG9nZ2luZyBldmVudFwiLGUuZXZlbnRfbmFtZSxlKTt2YXIgbT0oMCxhLmdldEZyYW1lU3RhcnQpKCk7bi5wdXNoKG0pO3ZhciB2PSgwLHMuZ2V0RXZlbnRNZXRhZGF0YSkoZS5ldmVudF9uYW1lLHUpLF89e2V2ZW50TmFtZTplLmV2ZW50X25hbWUsbWV0YWRhdGE6dixkYXRhOmV9O24ucHVzaChfKSwoMCxmLmxvZ0RlYnVnQWN0aW9uKSh7dHlwZTpcIkV2ZW50TG9nZ2VkXCIsZXZlbnQ6X30pLGcrPW4ubGVuZ3RoLGQuYmxpenphcmRHcmFwaGVuZS5hZGRIaXN0b2dyYW0oe21ldHJpY3NOYW1lOmQuTE9HX0VWRU5UX0JVRkZFUl9TSVpFLHZhbHVlOmd9KSxnPm4ubGVuZ3RoJiZoLmRlYnVnKFwiI2xvZ0V2ZW50OiBQZW5kaW5nIGl0ZW1zOiBcIi5jb25jYXQoZykpLGZ1bmN0aW9uKGUpe3ZhciB0LG47cih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIHIscyx1LG0sdixfO3JldHVybiBpKHRoaXMsKGZ1bmN0aW9uKGkpe3N3aXRjaChpLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsUHJvbWlzZS5hbGwoZSldO2Nhc2UgMTpyPWkuc2VudCgpO3RyeXtmb3Iocz1vKHIpLHU9cy5uZXh0KCk7IXUuZG9uZTt1PXMubmV4dCgpKW09dS52YWx1ZSxnLS0sbnVsbCE9PW0mJigoMCxhLmlzRnJhbWVTdGFydCkobSk/KGguaW5mbyhcIkVucXVldWluZyBhIG5ldyBGcmFtZVN0YXJ0XCIsbSksKDAsZi5sb2dEZWJ1Z0FjdGlvbikoe3R5cGU6XCJGcmFtZVN0YXJ0RW5xdWV1ZWRcIixmcmFtZVN0YXJ0Om19KSxkLmJsaXp6YXJkR3JhcGhlbmUuaW5jcmVtZW50KHttZXRyaWNzTmFtZTpkLkxPR19GUkFNRV9TVEFSVCxkaW1lbnNpb25zOnthcHA6bnVsbCE9PSh0PSgwLHAuZ2V0QXBwRW52aXJvbm1lbnQpKCkuYXBwbGljYXRpb24pJiZ2b2lkIDAhPT10P3Q6XCJcIn19KSk6KDAsYy5pc0V2ZW50KShtKSYmKGguZGVidWcoXCJFbnF1ZXVpbmcgYW4gZXZlbnRcIixtKSwoMCxmLmxvZ0RlYnVnQWN0aW9uKSh7dHlwZTpcIkV2ZW50RW5xdWV1ZWRcIixldmVudDptfSksZC5ibGl6emFyZEdyYXBoZW5lLmluY3JlbWVudCh7bWV0cmljc05hbWU6ZC5MT0dfRVZFTlQsZGltZW5zaW9uczp7bmFtZTptLmV2ZW50TmFtZSxhcHA6bnVsbCE9PShuPSgwLHAuZ2V0QXBwRW52aXJvbm1lbnQpKCkuYXBwbGljYXRpb24pJiZ2b2lkIDAhPT1uP246XCJcIn19KSksbC5kZWZhdWx0TG9nUXVldWUuYXBwZW5kKG0pLGguZGVidWcoXCIjZW5xdWV1ZUl0ZW1zOiBcIi5jb25jYXQoZyxcIiByZW1haW5pbmdcIikpKX1jYXRjaChFKXt2PXtlcnJvcjpFfX1maW5hbGx5e3RyeXt1JiYhdS5kb25lJiYoXz1zLnJldHVybikmJl8uY2FsbChzKX1maW5hbGx5e2lmKHYpdGhyb3cgdi5lcnJvcn19cmV0dXJuWzJdfX0pKX0pKX0obil9dC5sb2dFdmVudD1tLHQuaW5pdENhbGxlZD0hMSx0LnNldEluaXRDYWxsZWQ9ZnVuY3Rpb24oKXt0LmluaXRDYWxsZWQ9ITB9fSw5ODQ4NzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMCx0LnN0cmluZ2lmeUJsaXp6YXJkSnNvbj12b2lkIDAsdC5zdHJpbmdpZnlCbGl6emFyZEpzb249ZnVuY3Rpb24oZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUsKGZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9PXQpcmV0dXJuXCJiaWdpbnRcIj09PXR5cGVvZiB0P3QudG9TdHJpbmcoKTp0fSkpfX0sNDQ1NzA6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIHI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdExvZ1F1ZXVlPXQuSnNvbkxvZ1F1ZXVlPXZvaWQgMDt2YXIgaT1uKDYyODg5KSxvPW4oNzYzKSxhPW4oNDUxMTEpLHM9big2MTI5OCksYz0oMCxhLmdldExvZ2dlcikoXCJxdWV1ZVwiKSx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLnNlcXVlbmNlSWQ9MSx0aGlzLmxvZ1F1ZXVlTmFtZT1lfXJldHVybiBlLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24oZSl7aWYoKDAsby5pc0ZyYW1lU3RhcnQpKGUpKWMudHJhY2UoXCJTYXcgbmV3IEZyYW1lU3RhcnQsIGNvcHlpbmcgZm9yIHRoaXMgcXVldWVcIiksdGhpcy5sYXN0RnJhbWVTdGFydD1yKHIoe30sZSkse2xvZ19xdWV1ZV9uYW1lOnRoaXMubG9nUXVldWVOYW1lfSk7ZWxzZXtpZighKDAsaS5pc0V2ZW50KShlKSl0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIGl0ZW06IFwiK2UpO2lmKHZvaWQgMD09PXRoaXMubGFzdEZyYW1lU3RhcnQpdGhyb3cgbmV3IEVycm9yKFwiRXZlbnQgYmVmb3JlIEZyYW1lU3RhcnRcIik7dmFyIHQ9cihyKHIocih7fSxlLmRhdGEpLGUubWV0YWRhdGEpLHRoaXMubGFzdEZyYW1lU3RhcnQpLHtsb2dfcXVldWVfc2VxdWVuY2VfaWQ6dGhpcy5zZXF1ZW5jZUlkKyt9KTsoMCxzLnRyYW5zbWl0SnNvbkV2ZW50cykoW3RdKX19LGV9KCk7dC5Kc29uTG9nUXVldWU9dSx0LmRlZmF1bHRMb2dRdWV1ZT1uZXcgdShcIndcIil9LDQ1MTExOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fdmFsdWVzfHxmdW5jdGlvbihlKXt2YXIgdD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3Isbj10JiZlW3RdLHI9MDtpZihuKXJldHVybiBuLmNhbGwoZSk7aWYoZSYmXCJudW1iZXJcIj09PXR5cGVvZiBlLmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiBlJiZyPj1lLmxlbmd0aCYmKGU9dm9pZCAwKSx7dmFsdWU6ZSYmZVtyKytdLGRvbmU6IWV9fX07dGhyb3cgbmV3IFR5cGVFcnJvcih0P1wiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIjpcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIil9LGk9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwLHQuc2V0QW5hbHl0aWNzTG9nZ2luZ0VuYWJsZWQ9dC5nZXRMb2dnZXI9dm9pZCAwO3ZhciBvPWkobigyMDQzKSksYT0hMSxzPW5ldyBNYXA7dC5nZXRMb2dnZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9cy5nZXQoZSk7cmV0dXJuIHZvaWQgMD09PXQmJigodD1vLmRlZmF1bHQuZ2V0TG9nZ2VyKGMrZSkpLnNldERlZmF1bHRMZXZlbChvLmRlZmF1bHQubGV2ZWxzLlNJTEVOVCksYSYmdC5zZXRMZXZlbChvLmRlZmF1bHQubGV2ZWxzLkRFQlVHKSxzLnNldChlLHQpKSx0fSx0LnNldEFuYWx5dGljc0xvZ2dpbmdFbmFibGVkPWZ1bmN0aW9uKGUpe3ZhciB0LG47YT1lO3RyeXtmb3IodmFyIGk9cihzLnZhbHVlcygpKSxjPWkubmV4dCgpOyFjLmRvbmU7Yz1pLm5leHQoKSl7dmFyIHU9Yy52YWx1ZTthP3Uuc2V0TGV2ZWwoby5kZWZhdWx0LmxldmVscy5ERUJVRyk6dS5yZXNldExldmVsKCl9fWNhdGNoKGwpe3Q9e2Vycm9yOmx9fWZpbmFsbHl7dHJ5e2MmJiFjLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX19O3ZhciBjPVwiQW5hbHl0aWNzLlwifSwyMDgxMzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwLHQuZ2V0RXZlbnRNZXRhZGF0YT12b2lkIDA7dmFyIHI9big5NjEzOSk7ZnVuY3Rpb24gaSgpe3ZhciBlLHQ7c3dpdGNoKG51bGw9PT0odD1udWxsPT09KGU9c2VsZi5uYXZpZ2F0b3IpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNvbm5lY3Rpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnR5cGUpe2Nhc2VcImJsdWV0b290aFwiOnJldHVyblwiQkxVRVRPT1RIXCI7Y2FzZVwiY2VsbHVsYXJcIjpyZXR1cm5cIk1PQklMRVwiO2Nhc2VcIndpZmlcIjpyZXR1cm5cIldJRklcIjtjYXNlXCJldGhlcm5ldFwiOnJldHVyblwiRVRIRVJORVRcIjtjYXNlXCJub25lXCI6cmV0dXJuXCJVTlJFQUNIQUJMRVwiO2RlZmF1bHQ6cmV0dXJufX1mdW5jdGlvbiBvKCl7dmFyIGUsdDtpZihudWxsPT09KHQ9bnVsbD09PShlPXNlbGYubmF2aWdhdG9yKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb25uZWN0aW9uKXx8dm9pZCAwPT09dD92b2lkIDA6dC5kb3dubGluaylyZXR1cm4gMTAyNCpzZWxmLm5hdmlnYXRvci5jb25uZWN0aW9uLmRvd25saW5rKjEwMjR9dC5nZXRFdmVudE1ldGFkYXRhPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2V2ZW50X25hbWU6ZSxjbGllbnRfdHM6KDAsci5hc1RpbWVzdGFtcCkodCksZGV2aWNlX2Nvbm5lY3Rpdml0eTppKCksY29ubmVjdGlvbl9kb3dubG9hZF9iYW5kd2lkdGhfYnBzOm8oKX19fSw3NjM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIHI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKGksbyl7ZnVuY3Rpb24gYShlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gYyhlKXt2YXIgdDtlLmRvbmU/aShlLnZhbHVlKToodD1lLnZhbHVlLHQgaW5zdGFuY2VvZiBuP3Q6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodCl9KSkpLnRoZW4oYSxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9LG89dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKHMpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO28mJihvPTAsc1swXSYmKGE9MCkpLGE7KXRyeXtpZihuPTEsciYmKGk9MiZzWzBdP3IucmV0dXJuOnNbMF0/ci50aHJvd3x8KChpPXIucmV0dXJuKSYmaS5jYWxsKHIpLDApOnIubmV4dCkmJiEoaT1pLmNhbGwocixzWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gocj0wLGkmJihzPVsyJnNbMF0saS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6aT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoaT0oaT1hLnRyeXMpLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdKSYmKDY9PT1zWzBdfHwyPT09c1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09c1swXSYmKCFpfHxzWzFdPmlbMF0mJnNbMV08aVszXSkpe2EubGFiZWw9c1sxXTticmVha31pZig2PT09c1swXSYmYS5sYWJlbDxpWzFdKXthLmxhYmVsPWlbMV0saT1zO2JyZWFrfWlmKGkmJmEubGFiZWw8aVsyXSl7YS5sYWJlbD1pWzJdLGEub3BzLnB1c2gocyk7YnJlYWt9aVsyXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfXM9dC5jYWxsKGUsYSl9Y2F0Y2goYyl7cz1bNixjXSxyPTB9ZmluYWxseXtuPWk9MH1pZig1JnNbMF0pdGhyb3cgc1sxXTtyZXR1cm57dmFsdWU6c1swXT9zWzFdOnZvaWQgMCxkb25lOiEwfX0oW3MsY10pfX19LGE9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwLHQuc2V0VXNlckd1aWRQcm9taXNlPXQuZ2V0RnJhbWVTdGFydD10LmlzRnJhbWVTdGFydD12b2lkIDA7dmFyIHMsYz1hKG4oODczNTQpKSx1PW4oMzc4NyksbD1uKDQ1MTExKSxkPW4oNDA2ODkpLHA9bigxMDU2OCksZj1uKDk2NDg2KSxoPW4oMzAzMDMpLGc9KDAsbC5nZXRMb2dnZXIpKFwiZnJhbWVTdGFydFwiKTt0LmlzRnJhbWVTdGFydD1mdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09ZS51c2VyX2FnZW50fSx0LmdldEZyYW1lU3RhcnQ9ZnVuY3Rpb24oKXt2YXIgZSx0O3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgbixpO3JldHVybiBvKHRoaXMsKGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsX107Y2FzZSAxOnJldHVybiBuPW8uc2VudCgpLGk9cihyKHt9LG51bGwhPT1tJiZ2b2lkIDAhPT1tP206bT1mdW5jdGlvbigpe3ZhciBlLHQsbixyPW5ldyBjLmRlZmF1bHQsaT1udWxsPT09KGU9ci5nZXRPUygpLm5hbWUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnRvVXBwZXJDYXNlKCksbz1pP3ZbaV18fGk6dm9pZCAwO2lmKGRvY3VtZW50LnJlZmVycmVyKXRyeXtuPW5ldyBVUkwoZG9jdW1lbnQucmVmZXJyZXIpLm9yaWdpbn1jYXRjaChhKXtnLndhcm4oXCJGYWlsZWQgdG8gcGFyc2UgcmVmZXJyZXI6IFwiLGRvY3VtZW50LnJlZmVycmVyLGEpfXJldHVybnt1c2VyX2FnZW50OnIuZ2V0VUEoKSxsb2NhbGU6KDAsdS5nZXRMb2NhbGUpKCksb3NfdHlwZTpvLG9zX3ZlcnNpb246byxhcHBfdHlwZTooMCxkLmdldEFwcEVudmlyb25tZW50KSgpLmFwcFR5cGUsYXBwX2J1aWxkOlwiUFJPRFwiPT09KDAsZC5nZXRBcHBFbnZpcm9ubWVudCkoKS5hcHBCdWlsZD9cIlwiOm51bGw9PT0odD0oMCxkLmdldEFwcEVudmlyb25tZW50KSgpKXx8dm9pZCAwPT09dD92b2lkIDA6dC5hcHBCdWlsZCxhcHBfdmVyc2lvbjooMCxkLmdldEFwcEVudmlyb25tZW50KSgpLmFwcFZlcnNpb24sYnJvd3NlcjpyLmdldEJyb3dzZXIoKS5uYW1lLGJyb3dzZXJfdmVyc2lvbjpyLmdldEJyb3dzZXIoKS52ZXJzaW9uLGRldmljZV9tb2RlbDpyLmdldERldmljZSgpLm1vZGVsLGRvbWFpbjpzZWxmLmxvY2F0aW9uLmhvc3RuYW1lLHJlZmVycmVyOm59fSgpKSx7Y2xpZW50X2lkOigwLGguZ2V0Q2xpZW50SWQpKCksc2Vzc2lvbl9pZDpudWxsPT09KGU9KDAscC5nZXRTZXNzaW9uUHJvcGVydGllcykoKSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuc2Vzc2lvbklkLGFwcF9zdGFydHVwX3R5cGU6bnVsbD09PSh0PSgwLHAuZ2V0U2Vzc2lvblByb3BlcnRpZXMpKCkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmFwcFN0YXJ0dXBUeXBlLHVzZXJfZ3VpZDpudWxsIT09biYmdm9pZCAwIT09bj9uOnZvaWQgMH0pLCgwLGYuaXNFcXVhbCkocyxpKT9bMixudWxsXToocz1pLFsyLGldKX19KSl9KSl9O3ZhciBtLHY9e1wiTUFDIE9TXCI6XCJPU1hcIn07dmFyIF89UHJvbWlzZS5yZXNvbHZlKG51bGwpO3Quc2V0VXNlckd1aWRQcm9taXNlPWZ1bmN0aW9uKGUpe189ZX19LDc2MDg1OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwLHQuU1RBVFVTRVNfUE9TU0lCTEVfQVVUSF9GQUlMVVJFPXQuU1RBVFVTX09LPXQuQ09OVEVOVF9UWVBFX0pTT049dC5ERUZBVUxUX0JBU0VfVVJMPXQuREVGQVVMVF9CQVNFX1VSTF9TVEFHSU5HPXZvaWQgMCx0LkRFRkFVTFRfQkFTRV9VUkxfU1RBR0lORz1cImh0dHBzOi8vc3RhZ2luZy11cy1jZW50cmFsMS1nY3AuYXBpLnNuYXBjaGF0LmNvbS93ZWItYW5hbHl0aWNzL3dlYlwiLHQuREVGQVVMVF9CQVNFX1VSTD1cImh0dHBzOi8vdXMtY2VudHJhbDEtZ2NwLmFwaS5zbmFwY2hhdC5jb20vd2ViLWFuYWx5dGljcy93ZWJcIix0LkNPTlRFTlRfVFlQRV9KU09OPVwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOFwiLHQuU1RBVFVTX09LPTIwMCx0LlNUQVRVU0VTX1BPU1NJQkxFX0FVVEhfRkFJTFVSRT1bNDAwLDQwMSw0MDNdfSw2NjY4NTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gcj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWZvcih2YXIgaSBpbiB0PWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9LHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxpPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBjKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOih0PWUudmFsdWUsdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKSkudGhlbihhLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pKX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaVswXSl0aHJvdyBpWzFdO3JldHVybiBpWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMocyl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihzKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7byYmKG89MCxzWzBdJiYoYT0wKSksYTspdHJ5e2lmKG49MSxyJiYoaT0yJnNbMF0/ci5yZXR1cm46c1swXT9yLnRocm93fHwoKGk9ci5yZXR1cm4pJiZpLmNhbGwociksMCk6ci5uZXh0KSYmIShpPWkuY2FsbChyLHNbMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChyPTAsaSYmKHM9WzImc1swXSxpLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTppPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPShpPWEudHJ5cykubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pJiYoNj09PXNbMF18fDI9PT1zWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1zWzBdJiYoIWl8fHNbMV0+aVswXSYmc1sxXTxpWzNdKSl7YS5sYWJlbD1zWzFdO2JyZWFrfWlmKDY9PT1zWzBdJiZhLmxhYmVsPGlbMV0pe2EubGFiZWw9aVsxXSxpPXM7YnJlYWt9aWYoaSYmYS5sYWJlbDxpWzJdKXthLmxhYmVsPWlbMl0sYS5vcHMucHVzaChzKTticmVha31pWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxhKX1jYXRjaChjKXtzPVs2LGNdLHI9MH1maW5hbGx5e249aT0wfWlmKDUmc1swXSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fShbcyxjXSl9fX0sYT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTt0Ll9fZXNNb2R1bGU9ITAsdC5mZXRjaFJldHJ5PXZvaWQgMDt2YXIgcz1uKDQwNDY3KSxjPW4oNDUxMTEpLHU9big1NjQ2MCksbD1uKDkwNjUyKSxkPWEobig5NjQ4NikpO3QuZmV0Y2hSZXRyeT1mdW5jdGlvbihlLHQpe3ZhciBuO3JldHVybiB2b2lkIDA9PT10JiYodD17fSksaSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIGksYSxjLG07cmV0dXJuIG8odGhpcywoZnVuY3Rpb24oXyl7c3dpdGNoKF8ubGFiZWwpe2Nhc2UgMDppPTEsYT0hMSxjPWZ1bmN0aW9uKCl7dmFyIGMsbSxfLEUsYixTLHk7cmV0dXJuIG8odGhpcywoZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpjPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB0P3QoKTp0LGEmJihjLmtlZXBhbGl2ZT0hMSksbT12b2lkIDAsYy5zaWduYWx8fChfPW5ldyBBYm9ydENvbnRyb2xsZXIsbT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBfLmFib3J0KCl9KSx2KSxjLnNpZ25hbD1fLnNpZ25hbCksRT1cIlwiLG8ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG8udHJ5cy5wdXNoKFsxLDQsNSw2XSksWzQsKDAsdS50aW1lZCkoKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKGUsZC5kZWZhdWx0Lm9taXQoYyxbXCJvblN0YXR1c1wiXSkpfSkse21ldHJpY3NOYW1lOmwuTkVUV09SS19SRVFVRVNUX0xBVEVOQ1lfTVN9KV07Y2FzZSAyOnJldHVybiBiPW8uc2VudCgpLEU9Yi5zdGF0dXMudG9TdHJpbmcoKSxbNCxudWxsPT09KG49bnVsbD09PWN8fHZvaWQgMD09PWM/dm9pZCAwOmMub25TdGF0dXMpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmNhbGwoYyxiLnN0YXR1cyldO2Nhc2UgMzpyZXR1cm4gby5zZW50KCksYi5vaz8obC5ibGl6emFyZEdyYXBoZW5lLmFkZEhpc3RvZ3JhbSh7bWV0cmljc05hbWU6bC5ORVRXT1JLX1JFUVVFU1RfQVRURU1QVFNfQ09VTlQsZGltZW5zaW9uczpoKGUpLHZhbHVlOml9KSxbMix7dmFsdWU6Yn1dKToocC53YXJuKFwiUmVxdWVzdCBmYWlsZWRcIixiLnN0YXR1cyxiLnN0YXR1c1RleHQpLFszLDZdKTtjYXNlIDQ6cmV0dXJuIFM9by5zZW50KCkscC53YXJuKFwiZmV0Y2ggZXJyb3JcIixTKSxFPVwiZXJyb3JfXCIuY29uY2F0KFMgaW5zdGFuY2VvZiBFcnJvcj9TLm5hbWU6dHlwZW9mIFMpLGMua2VlcGFsaXZlJiYocC5kZWJ1ZyhcIlJlY2VpdmVkIGFuIGVycm9yIHdoaWxlIGtlZXBhbGl2ZSB3YXMgZW5hYmxlZCwgcmV0cnlpbmcgd2l0aG91dCBrZWVwYWxpdmVcIixTKSxhPSEwKSxbMyw2XTtjYXNlIDU6cmV0dXJuIG0mJmNsZWFyVGltZW91dChtKSxsLmJsaXp6YXJkR3JhcGhlbmUuaW5jcmVtZW50KHttZXRyaWNzTmFtZTpsLk5FVFdPUktfUkVRVUVTVCxkaW1lbnNpb25zOnIocih7fSxoKGUpKSx7c3RhdHVzOkV9KX0pLFs3XTtjYXNlIDY6cmV0dXJuIGk8Zz8oeT1mKGkpLHAuZGVidWcoXCJSZXRyeWluZyBhZnRlciBcIi5jb25jYXQoeSxcIm1zLi4uXCIpKSxbNCwoMCxzLnNsZWVwKSh5KV0pOlszLDhdO2Nhc2UgNzpvLnNlbnQoKSxvLmxhYmVsPTg7Y2FzZSA4OnJldHVyblsyXX19KSl9LF8ubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzUsYygpXTtjYXNlIDI6aWYoXCJvYmplY3RcIj09PXR5cGVvZihtPV8uc2VudCgpKSlyZXR1cm5bMixtLnZhbHVlXTtfLmxhYmVsPTM7Y2FzZSAzOmlmKGkrKzxnKXJldHVyblszLDFdO18ubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzIsbnVsbF19fSkpfSkpfTt2YXIgcD0oMCxjLmdldExvZ2dlcikoXCJmZXRjaFJldHJ5XCIpLGY9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lPzA6ZC5kZWZhdWx0LnJhbmRvbSgwLG0qTWF0aC5wb3coMixlLTIpKX07ZnVuY3Rpb24gaChlKXt0cnl7dmFyIHQ9bmV3IFVSTChlKTtyZXR1cm57aG9zdDp0Lmhvc3RuYW1lLnN1YnN0cmluZygwLDY0KSxwYXRoOnQucGF0aG5hbWUucmVwbGFjZSgvXlxcLy8sXCJcIikuc3Vic3RyaW5nKDAsNjQpfX1jYXRjaChuKXtpZihuIGluc3RhbmNlb2YgVHlwZUVycm9yKXJldHVybntob3N0OlwiaW52YWxpZFwiLHBhdGg6XCJpbnZhbGlkXCJ9O3Rocm93IG59fXZhciBnPTEwLG09MjUwLHY9MTVlNH0sNTQ5MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIGEoZSl7dHJ5e2Moci5uZXh0KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBzKGUpe3RyeXtjKHIudGhyb3coZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGEscyl9Yygocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfSxpPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZpWzBdKXRocm93IGlbMV07cmV0dXJuIGlbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gbz17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LFwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhzKXtyZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKHMpe2lmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtvJiYobz0wLHNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihpPTImc1swXT9yLnJldHVybjpzWzBdP3IudGhyb3d8fCgoaT1yLnJldHVybikmJmkuY2FsbChyKSwwKTpyLm5leHQpJiYhKGk9aS5jYWxsKHIsc1sxXSkpLmRvbmUpcmV0dXJuIGk7c3dpdGNoKHI9MCxpJiYocz1bMiZzWzBdLGkudmFsdWVdKSxzWzBdKXtjYXNlIDA6Y2FzZSAxOmk9czticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6c1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9c1sxXSxzPVswXTtjb250aW51ZTtjYXNlIDc6cz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKGk9KGk9YS50cnlzKS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXSkmJig2PT09c1swXXx8Mj09PXNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PXNbMF0mJighaXx8c1sxXT5pWzBdJiZzWzFdPGlbM10pKXthLmxhYmVsPXNbMV07YnJlYWt9aWYoNj09PXNbMF0mJmEubGFiZWw8aVsxXSl7YS5sYWJlbD1pWzFdLGk9czticmVha31pZihpJiZhLmxhYmVsPGlbMl0pe2EubGFiZWw9aVsyXSxhLm9wcy5wdXNoKHMpO2JyZWFrfWlbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLGEpfWNhdGNoKGMpe3M9WzYsY10scj0wfWZpbmFsbHl7bj1pPTB9aWYoNSZzWzBdKXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19KFtzLGNdKX19fTt0Ll9fZXNNb2R1bGU9ITAsdC5nZXRVbmF1dGhlbnRpY2F0ZWRCYXNlVXJsPXQuZ2V0VXBsb2FkQ29uZmlnPXZvaWQgMDt2YXIgbz1uKDU1NDczKSxhPW4oODkzOTkpLHM9big3NjA4NSksYz1uKDc5NjYxKSx1PW4oNDA2ODkpLGw9big4MDEwMSksZD1uKDQ1MTExKTtmdW5jdGlvbiBwKCl7cmV0dXJuKDAsdS5nZXRDb2xsZWN0aW9uTW9kZSkoKT09PWwuQ29sbGVjdGlvbk1vZGUuU1RBR0U/cy5ERUZBVUxUX0JBU0VfVVJMX1NUQUdJTkc6cy5ERUZBVUxUX0JBU0VfVVJMfXQuZ2V0VXBsb2FkQ29uZmlnPWZ1bmN0aW9uKGUpe3JldHVybiByKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgdCxuLHIscyx1LGw7cmV0dXJuIGkodGhpcywoZnVuY3Rpb24oaSl7c3dpdGNoKGkubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxjLmdldEF1dGhTdGF0ZSkoKV07Y2FzZSAxOnJldHVybiB0PWkuc2VudCgpLG49KDAsYy5nZXRTc29DbGllbnRJZCkoKSxyPW4mJnQuc3NvVG9rZW4mJnQuYXV0aFN0YXR1cz09PWMuQXV0aFN0YXR1cy5BVVRIRU5USUNBVEVELGUmJnI/KGYuaW5mbyhcIlNTTyB0b2tlbnMgY2Fubm90IGJlIHJlZnJlc2hlZCAtIGlmIHByb3ZpZGVyIGRvZXMgbm90IHByb3ZpZGUgYSBuZXcgb25lIGFzeW5jaHJvbm91c2x5IHRoaXMgbWF5IGJlIGFuIGlzc3VlIHdpdGggdGhlIHByb3ZpZGVyXCIpLFsyLGVdKTpyPyh1PVwiQmVhcmVyIFwiLmNvbmNhdCh0LnNzb1Rva2VuKSxbMyw0XSk6WzMsMl07Y2FzZSAyOnJldHVybiBsPVwiU0NBIFwiLmNvbmNhdCxbNCwoMCxvLmdldFNjYVRva2VuKShCb29sZWFuKGUpKV07Y2FzZSAzOnU9bC5hcHBseShcIlNDQSBcIixbaS5zZW50KCldKSxpLmxhYmVsPTQ7Y2FzZSA0OnJldHVybiBzPXUsWzIse2Jhc2VVcmw6cj8oMCxhLmdldEF1dGhCYXNlVXJsKShuKTpwKCksY3JlZGVudGlhbHM6cj9cImluY2x1ZGVcIjpcInNhbWUtb3JpZ2luXCIsYXV0aG9yaXphdGlvbkhlYWRlcjpzfV19fSkpfSkpfSx0LmdldFVuYXV0aGVudGljYXRlZEJhc2VVcmw9cDt2YXIgZj0oMCxkLmdldExvZ2dlcikoXCJ1cGxvYWRDb25maWdcIil9LDYxMjk4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKGksbyl7ZnVuY3Rpb24gYShlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gYyhlKXt2YXIgdDtlLmRvbmU/aShlLnZhbHVlKToodD1lLnZhbHVlLHQgaW5zdGFuY2VvZiBuP3Q6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodCl9KSkpLnRoZW4oYSxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9LGk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKHMpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO28mJihvPTAsc1swXSYmKGE9MCkpLGE7KXRyeXtpZihuPTEsciYmKGk9MiZzWzBdP3IucmV0dXJuOnNbMF0/ci50aHJvd3x8KChpPXIucmV0dXJuKSYmaS5jYWxsKHIpLDApOnIubmV4dCkmJiEoaT1pLmNhbGwocixzWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gocj0wLGkmJihzPVsyJnNbMF0saS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6aT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoaT0oaT1hLnRyeXMpLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdKSYmKDY9PT1zWzBdfHwyPT09c1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09c1swXSYmKCFpfHxzWzFdPmlbMF0mJnNbMV08aVszXSkpe2EubGFiZWw9c1sxXTticmVha31pZig2PT09c1swXSYmYS5sYWJlbDxpWzFdKXthLmxhYmVsPWlbMV0saT1zO2JyZWFrfWlmKGkmJmEubGFiZWw8aVsyXSl7YS5sYWJlbD1pWzJdLGEub3BzLnB1c2gocyk7YnJlYWt9aVsyXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfXM9dC5jYWxsKGUsYSl9Y2F0Y2goYyl7cz1bNixjXSxyPTB9ZmluYWxseXtuPWk9MH1pZig1JnNbMF0pdGhyb3cgc1sxXTtyZXR1cm57dmFsdWU6c1swXT9zWzFdOnZvaWQgMCxkb25lOiEwfX0oW3MsY10pfX19O3QuX19lc01vZHVsZT0hMCx0LnRyYW5zbWl0SnNvbkV2ZW50cz12b2lkIDA7dmFyIG89big5ODQ4NyksYT1uKDU0OTMpLHM9big3NjA4NSksYz1uKDQ1MTExKSx1PW4oNjY2ODUpLGw9big1MDAyMyk7dC50cmFuc21pdEpzb25FdmVudHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciB0LG4sYz10aGlzO3JldHVybiBpKHRoaXMsKGZ1bmN0aW9uKHApe3N3aXRjaChwLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAsYS5nZXRVcGxvYWRDb25maWcpKCldO2Nhc2UgMTpyZXR1cm4gdD1wLnNlbnQoKSxuPSgwLG8uc3RyaW5naWZ5QmxpenphcmRKc29uKShlKSxkLmRlYnVnKFwiVXBsb2FkaW5nIFwiLmNvbmNhdChlLmxlbmd0aCxcIiBldmVudChzKS4uLlwiKSksWzQsKDAsdS5mZXRjaFJldHJ5KShcIlwiLmNvbmNhdCh0LmJhc2VVcmwsXCIvZXZlbnRzXCIpLChmdW5jdGlvbigpe3JldHVybnttZXRob2Q6XCJQT1NUXCIsaGVhZGVyczp7XCJDb250ZW50LVR5cGVcIjpzLkNPTlRFTlRfVFlQRV9KU09OLEF1dGhvcml6YXRpb246dC5hdXRob3JpemF0aW9uSGVhZGVyLFwiWC1CbGl6emFyZC1VcGxvYWQtVGltZXN0YW1wXCI6XCJcIi5jb25jYXQoKG5ldyBEYXRlKS5nZXRUaW1lKCkpfSxib2R5Om4sY3JlZGVudGlhbHM6dC5jcmVkZW50aWFscyxrZWVwYWxpdmU6ITAsb25TdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIHIoYyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBpKHRoaXMsKGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHMuU1RBVFVTRVNfUE9TU0lCTEVfQVVUSF9GQUlMVVJFLmluY2x1ZGVzKGUpPyhkLmluZm8oXCJBdXRoIGZhaWx1cmUsIGF0dGVtcHRpbmcgdG8gcmVmcmVzaCBhdXRoZW50aWNhdGlvbi4uLlwiKSxbNCwoMCxhLmdldFVwbG9hZENvbmZpZykodCldKTpbMywyXTtjYXNlIDE6dD1uLnNlbnQoKSxuLmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KSl9KSl9fX0pKV07Y2FzZSAyOnJldHVybiBwLnNlbnQoKT8oZC5kZWJ1ZyhcIlVwbG9hZGVkIFwiLmNvbmNhdChlLmxlbmd0aCxcIiBldmVudChzKVwiKSxlKSwoMCxsLmxvZ0RlYnVnQWN0aW9uKSh7dHlwZTpcIkV2ZW50c1VwbG9hZGVkXCIsZXZlbnRzOmV9KSk6ZC5lcnJvcihcIkZhaWxlZCB0byB1cGxvYWQgZXZlbnRzIGFmdGVyIHJldHJpZXMsIGRpc2NhcmRpbmdcIiksWzJdfX0pKX0pKX07dmFyIGQ9KDAsYy5nZXRMb2dnZXIpKFwidHJhbnNtaXRcIil9LDQwNDY3OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwLHQuc2xlZXA9dm9pZCAwO3Quc2xlZXA9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtyZXR1cm4gc2V0VGltZW91dCh0LGUpfSkpfX0sNTY0NjA6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIHI9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoKGZ1bmN0aW9uKGksbyl7ZnVuY3Rpb24gYShlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKHQpe28odCl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gYyhlKXt2YXIgdDtlLmRvbmU/aShlLnZhbHVlKToodD1lLnZhbHVlLHQgaW5zdGFuY2VvZiBuP3Q6bmV3IG4oKGZ1bmN0aW9uKGUpe2UodCl9KSkpLnRoZW4oYSxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9LG89dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sXCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKHMpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO28mJihvPTAsc1swXSYmKGE9MCkpLGE7KXRyeXtpZihuPTEsciYmKGk9MiZzWzBdP3IucmV0dXJuOnNbMF0/ci50aHJvd3x8KChpPXIucmV0dXJuKSYmaS5jYWxsKHIpLDApOnIubmV4dCkmJiEoaT1pLmNhbGwocixzWzFdKSkuZG9uZSlyZXR1cm4gaTtzd2l0Y2gocj0wLGkmJihzPVsyJnNbMF0saS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6aT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoaT0oaT1hLnRyeXMpLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdKSYmKDY9PT1zWzBdfHwyPT09c1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09c1swXSYmKCFpfHxzWzFdPmlbMF0mJnNbMV08aVszXSkpe2EubGFiZWw9c1sxXTticmVha31pZig2PT09c1swXSYmYS5sYWJlbDxpWzFdKXthLmxhYmVsPWlbMV0saT1zO2JyZWFrfWlmKGkmJmEubGFiZWw8aVsyXSl7YS5sYWJlbD1pWzJdLGEub3BzLnB1c2gocyk7YnJlYWt9aVsyXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfXM9dC5jYWxsKGUsYSl9Y2F0Y2goYyl7cz1bNixjXSxyPTB9ZmluYWxseXtuPWk9MH1pZig1JnNbMF0pdGhyb3cgc1sxXTtyZXR1cm57dmFsdWU6c1swXT9zWzFdOnZvaWQgMCxkb25lOiEwfX0oW3MsY10pfX19O3QuX19lc01vZHVsZT0hMCx0LnRpbWVkPXZvaWQgMDt2YXIgYT1uKDkwNjUyKTt0LnRpbWVkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBuO3JldHVybiBvKHRoaXMsKGZ1bmN0aW9uKGkpe3N3aXRjaChpLmxhYmVsKXtjYXNlIDA6bj1wZXJmb3JtYW5jZS5ub3coKSxpLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBpLnRyeXMucHVzaChbMSwsMyw0XSksWzQsZSgpXTtjYXNlIDI6cmV0dXJuWzIsaS5zZW50KCldO2Nhc2UgMzpyZXR1cm4gYS5ibGl6emFyZEdyYXBoZW5lLmFkZFRpbWVyKHIocih7fSx0KSx7bWlsbGlTZWM6TWF0aC5yb3VuZChwZXJmb3JtYW5jZS5ub3coKS1uKX0pKSxbN107Y2FzZSA0OnJldHVyblsyXX19KSl9KSl9fSw5NjEzOTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMCx0LmFzVGltZXN0YW1wPXZvaWQgMCx0LmFzVGltZXN0YW1wPWZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFRpbWUoKS8xZTN9fSw0OTI3MjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMDt2YXIgbj1bXCJtb3VzZWRvd25cIixcIm1vdXNlbW92ZVwiLFwia2V5ZG93blwiLFwic2Nyb2xsXCIsXCJ0b3VjaHN0YXJ0XCJdLHI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtuLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Lm9uQWN0aXZpdHksITApfSkpfSx0aGlzLm9uQWN0aXZpdHk9ZnVuY3Rpb24oKXt0Lmxhc3RBY3Rpdml0eVRpbWVzdGFtcD1EYXRlLm5vdygpfSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzPWZ1bmN0aW9uKCl7bi5mb3JFYWNoKChmdW5jdGlvbihlKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsdC5vbkFjdGl2aXR5LCEwKX0pKX0sdGhpcy5nZXRTZWNvbmRzU2luY2VMYXN0QWN0aXZpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yb3VuZCgoRGF0ZS5ub3coKS10Lmxhc3RBY3Rpdml0eVRpbWVzdGFtcCkvMWUzKX0sdGhpcy5nZXRJc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0LmdldFNlY29uZHNTaW5jZUxhc3RBY3Rpdml0eSgpPHQuaW5hY3RpdmVUaHJlc2hvbGRJblNlY29uZH0sdGhpcy5sYXN0QWN0aXZpdHlUaW1lc3RhbXA9RGF0ZS5ub3coKSx0aGlzLmluYWN0aXZlVGhyZXNob2xkSW5TZWNvbmQ9ZSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCl9O3QuZGVmYXVsdD1yfSw0MjI2MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9LGUodCxuKX07cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIG4mJm51bGwhPT1uKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiK1N0cmluZyhuKStcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9ZSh0LG4pLHQucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksaT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBpPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0saS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG89dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwLHQuV0VCX0FUVEVTVEFUSU9OX0hFQURFUj12b2lkIDA7dmFyIGE9big1OTYwMikscz1vKG4oNTM1OTQpKTt0LldFQl9BVFRFU1RBVElPTl9IRUFERVI9XCJYLVNuYXBjaGF0LVdlYi1DbGllbnQtQXV0aFwiO3ZhciBjPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gbnVsbCE9PWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKG4sZSksbi5wcm90b3R5cGUuYXV0aFJlcXVlc3Q9ZnVuY3Rpb24oZSxuLHIpe3ZhciBvO3N3aXRjaChlKXtjYXNlIGEuQXV0aFR5cGUuTm9uZTpyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIpO2Nhc2UgYS5BdXRoVHlwZS5XZWJBdHRlc3RhdGlvbjp2YXIgYz1zLmRlZmF1bHQobik7cmV0dXJuIFByb21pc2UucmVzb2x2ZShpKGkoe30sciksKChvPXt9KVt0LldFQl9BVFRFU1RBVElPTl9IRUFERVJdPWMsbykpKTtkZWZhdWx0OnJldHVybiBQcm9taXNlLnJlamVjdChcIlVuc3VwcG9ydGVkIGF1dGggdHlwZTogXCIrZSl9fSxufShhLkF1dGhlbnRpY2F0b3IpO3QuZGVmYXVsdD1jfSw1MzU5NDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwO3ZhciBpPXIobig1MjU3KSksbz1uKDc2Mjc1KSxhPXIobig4Njc1KSk7dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChlLChmdW5jdGlvbihlKXtyZXR1cm4oXCIwXCIrZS50b1N0cmluZygxNikpLnNsaWNlKC0yKX0pKS5qb2luKFwiXCIpLG49YS5kZWZhdWx0Lmhhc2godCx7bXNnRm9ybWF0OlwiaGV4LWJ5dGVzXCJ9KStcIjpcIitEYXRlLm5vdygpO3JldHVybiBvLmlzSW5Ccm93c2VyKCk/YnRvYShuKTppLmRlZmF1bHQobil9fSw1OTI1MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9LGUodCxuKX07cmV0dXJuIGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIG4mJm51bGwhPT1uKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiK1N0cmluZyhuKStcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9ZSh0LG4pLHQucHJvdG90eXBlPW51bGw9PT1uP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksaT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBpPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0saS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG89dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwO3ZhciBhPW8obigxNzI0NSkpLHM9big1OTYwMiksYz1vKG4oNzExOTUpKSx1PW8obig4MzU3MCkpLGw9byhuKDk5ODg1KSksZD1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztpZighdC5wYXJ0aXRpb25OYW1lfHwhYS5kZWZhdWx0W3QucGFydGl0aW9uTmFtZS50b1VwcGVyQ2FzZSgpXSl0aHJvdyBuZXcgRXJyb3IoXCJQYXJ0aXRpb24gaXMgbm90IGRlZmluZWQhXCIpO3JldHVybiBuLnBhcnRpdGlvbk5hbWU9dC5wYXJ0aXRpb25OYW1lLG4uZmxhdm9yPXQuZmxhdm9yLG4udmFyaWFudD10LnZhcmlhbnQsbi52ZXJzaW9uTnVtYmVyPXQudmVyc2lvbk51bWJlcixuLm1heFNpemVQZXJNZXRyaWM9dC5tYXhTaXplUGVyTWV0cmljfHw1MCxuLmRlZmF1bHREaW1lbnNpb25zPXQuZGVmYXVsdERpbWVuc2lvbnMsbn1yZXR1cm4gcih0LGUpLHQucHJvdG90eXBlLmluY3JlbWVudD1mdW5jdGlvbihlKXt2YXIgdD1lLm1ldHJpY3NOYW1lLG49ZS5kaW1lbnNpb25zLHI9ZS52YWx1ZSxpPWMuZGVmYXVsdCh7bWV0cmljc05hbWU6dCxkaW1lbnNpb25zOm59KSxvPXRoaXMubWV0cmljcy5jb3VudGVyc1tpXTt0aGlzLm1ldHJpY3MuY291bnRlcnNbaV09dGhpcy51cGRhdGVNZXRyaWNPYmplY3Qoe3ByZXZNZXRyaWNPYmplY3Q6byxtZXRyaWNzTmFtZTp0LGRpbWVuc2lvbnM6dGhpcy5fZGVjb3JhdGVEaW1lbnNpb25zKG4pLHZhbHVlOnIsc2hvdWxkQWdncmVnYXRlOiEwfSl9LHQucHJvdG90eXBlLmFkZEhpc3RvZ3JhbT1mdW5jdGlvbihlKXt2YXIgdD1lLm1ldHJpY3NOYW1lLG49ZS5kaW1lbnNpb25zLHI9ZS52YWx1ZSxpPWMuZGVmYXVsdCh7bWV0cmljc05hbWU6dCxkaW1lbnNpb25zOm59KSxvPXRoaXMubWV0cmljcy5sZXZlbHNbaV07dGhpcy5tZXRyaWNzLmxldmVsc1tpXT10aGlzLnVwZGF0ZU1ldHJpY09iamVjdCh7cHJldk1ldHJpY09iamVjdDpvLG1ldHJpY3NOYW1lOnQsZGltZW5zaW9uczp0aGlzLl9kZWNvcmF0ZURpbWVuc2lvbnMobiksdmFsdWU6cixzaG91bGRBZ2dyZWdhdGU6ITF9KX0sdC5wcm90b3R5cGUuYWRkVGltZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tZXRyaWNzTmFtZSxuPWUuZGltZW5zaW9ucyxyPWUubWlsbGlTZWMsaT1jLmRlZmF1bHQoe21ldHJpY3NOYW1lOnQsZGltZW5zaW9uczpufSksbz10aGlzLm1ldHJpY3MudGltZXJzW2ldO3RoaXMubWV0cmljcy50aW1lcnNbaV09dGhpcy51cGRhdGVNZXRyaWNPYmplY3Qoe3ByZXZNZXRyaWNPYmplY3Q6byxtZXRyaWNzTmFtZTp0LGRpbWVuc2lvbnM6dGhpcy5fZGVjb3JhdGVEaW1lbnNpb25zKG4pLHZhbHVlOnIsc2hvdWxkQWdncmVnYXRlOiExfSl9LHQucHJvdG90eXBlLmdldFBheWxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnZlcnRUb01ldHJpY0ZyYW1lKHRoaXMubWV0cmljcyk7cmV0dXJuIGwuZGVmYXVsdC5NZXRyaWNGcmFtZS5lbmNvZGUoZSkuZmluaXNoKCl9LHQucHJvdG90eXBlLnVwZGF0ZU1ldHJpY09iamVjdD1mdW5jdGlvbihlKXt2YXIgdD1lLnByZXZNZXRyaWNPYmplY3Qsbj1lLm1ldHJpY3NOYW1lLHI9ZS5kaW1lbnNpb25zLGk9dm9pZCAwPT09cj97fTpyLG89ZS52YWx1ZSxhPWUuc2hvdWxkQWdncmVnYXRlLHM9dm9pZCAwIT09YSYmYSxjPXQ7aWYoY3x8KGM9bmV3IGwuZGVmYXVsdC5NZXRyaWMoe3BhcnRpdGlvbk5hbWU6dGhpcy5wYXJ0aXRpb25OYW1lLG1ldHJpY05hbWU6bixjdXN0b21EaW1lbnNpb25zOml9KSkscyl7dmFyIHU9Yy52YWx1ZXMsZD1vKyhOdW1iZXIodVswXSl8fDApO2MudmFsdWVzPVtkXX1lbHNlIGMudmFsdWVzLnB1c2gobyk7cmV0dXJuIGN9LHQucHJvdG90eXBlLmNvbnZlcnRUb01ldHJpY0ZyYW1lPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1uZXcgbC5kZWZhdWx0Lk1ldHJpY0ZyYW1lO2lmKG4uY2xpZW50T3NUeXBlPWwuZGVmYXVsdC5Pc1R5cGUuT1NfV0VCLHRoaXMuZmxhdm9yfHx0aGlzLnZhcmlhbnR8fHRoaXMudmVyc2lvbk51bWJlcil7dmFyIHI9bmV3IGwuZGVmYXVsdC5BcHBWZXJzaW9uO3RoaXMuZmxhdm9yJiYoci5mbGF2b3I9dGhpcy5mbGF2b3IpLHRoaXMudmFyaWFudCYmKHIudmFyaWFudD10aGlzLnZhcmlhbnQpLHRoaXMudmVyc2lvbk51bWJlciYmKHIudmVyc2lvbk51bWJlcj10aGlzLnZlcnNpb25OdW1iZXIpLG4uYXBwVmVyc2lvbj1yfXJldHVybiBPYmplY3Qua2V5cyhlLmNvdW50ZXJzKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1lLmNvdW50ZXJzW3RdO24uY291bnRlcnMucHVzaChyKX0pKSxPYmplY3Qua2V5cyhlLnRpbWVycykuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIGk9dC5zYW1wbGVNZXRyaWNWYWx1ZXMoZS50aW1lcnNbcl0pO24udGltZXJzLnB1c2goaSl9KSksT2JqZWN0LmtleXMoZS5sZXZlbHMpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBpPXQuc2FtcGxlTWV0cmljVmFsdWVzKGUubGV2ZWxzW3JdKTtuLmxldmVscy5wdXNoKGkpfSkpLG59LHQucHJvdG90eXBlLnNhbXBsZU1ldHJpY1ZhbHVlcz1mdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZXM9dS5kZWZhdWx0KGUudmFsdWVzLHRoaXMubWF4U2l6ZVBlck1ldHJpYyksZX0sdC5wcm90b3R5cGUuX2RlY29yYXRlRGltZW5zaW9ucz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kZWZhdWx0RGltZW5zaW9ucz9pKGkoe30sdGhpcy5kZWZhdWx0RGltZW5zaW9ucyksZXx8e30pOmV9LHR9KHMuTWV0cmljQ29sbGVjdG9yKTt0LmRlZmF1bHQ9ZH0sMjUzMTM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O3QuX19lc01vZHVsZT0hMCx0LmdldFdlYkNvbmZpZz12b2lkIDA7dmFyIGk9big1OTYwMiksbz1yKG4oNDIyNjMpKSxhPXIobig1OTI1MCkpO3QuZ2V0V2ViQ29uZmlnPWZ1bmN0aW9uKGUpe3JldHVybntwcm90b2NvbDpcImh0dHBzOlwiLGhvc3Q6XCJnY3AuYXBpLnNuYXBjaGF0LmNvbVwiLHBhdGg6XCIvd2ViL21ldHJpY3NcIixoZWFkZXJzOntcIkNvbnRlbnQtVHlwZVwiOlwiYXBwbGljYXRpb24veC1wcm90b2J1ZlwifSxhdXRoVHlwZTppLkF1dGhUeXBlLldlYkF0dGVzdGF0aW9uLGF1dGhlbnRpY2F0b3I6bmV3IG8uZGVmYXVsdCxjb2xsZWN0b3I6bmV3IGEuZGVmYXVsdChlKX19LHQuZGVmYXVsdD10LmdldFdlYkNvbmZpZ30sOTQ1ODc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19leHRlbmRzfHxmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBuJiZudWxsIT09bil0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIitTdHJpbmcobikrXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWUodCxuKSx0LnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpLGk9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07dC5fX2VzTW9kdWxlPSEwLHQuR3JhcGhlbmU9dC5ERUZBVUxUX0lOQUNUSVZFX1RIUkVTSE9MRD12b2lkIDA7dmFyIG89big1OTYwMiksYT1uKDc2Mjc1KSxzPWkobig0OTI3MikpO3QuREVGQVVMVF9JTkFDVElWRV9USFJFU0hPTEQ9NjA7dmFyIGM9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbigpe3ZhciB0PW51bGwhPT1lJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gdC5zZW5kSGVhcnRCZWF0Q291bnRlcj1mdW5jdGlvbihlKXtpZih0LmlzSW5pdGlhbGl6ZWQpe3ZhciBuPWZ1bmN0aW9uKCl7dmFyIG4scj0obnVsbD09PShuPXQuYWN0aXZpdHlEZXRlY3Rvcil8fHZvaWQgMD09PW4/dm9pZCAwOm4uZ2V0SXNBY3RpdmUoKSk/XCJhY3RpdmVcIjpcImluYWN0aXZlXCI7dC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOlwiaGVhcnRfYmVhdFwiLGRpbWVuc2lvbnM6e3ZlcnNpb246ZSxhY3RpdmU6cn19KX07bigpLHQuaGVhcnRCZWF0SWQ9c2V0SW50ZXJ2YWwobiw2ZTQpfX0sdH1yZXR1cm4gcihuLGUpLG4ucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24obil7aWYodGhpcy5pc0luaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcihcInRoaXMgaW5zdGFuY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuIENhbid0IHJlLWluaXRpYWxpemUgaXQuXCIpO2UucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLG4pO3ZhciByPW4uaW5hY3RpdmVUaHJlc2hvbGRJblNlY29uZCxpPXZvaWQgMD09PXI/dC5ERUZBVUxUX0lOQUNUSVZFX1RIUkVTSE9MRDpyO2EuaXNJbldpbmRvdygpJiYodGhpcy5hY3Rpdml0eURldGVjdG9yPW5ldyBzLmRlZmF1bHQoaSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIix0aGlzLmZsdXNoKSl9LG4ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtlLnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyksYS5pc0luV2luZG93KCkmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsdGhpcy5mbHVzaCksdGhpcy5hY3Rpdml0eURldGVjdG9yJiZ0aGlzLmFjdGl2aXR5RGV0ZWN0b3IuZGVzdHJveSgpfSxufShvLkJhc2VDbGllbnQpO3QuR3JhcGhlbmU9Yzt2YXIgdT1uZXcgYzt0LmRlZmF1bHQ9dX0sMTg3Nzg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxpPXRoaXMmJnRoaXMuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX06ZnVuY3Rpb24oZSx0KXtlLmRlZmF1bHQ9dH0pLG89dGhpcyYmdGhpcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiIT09biYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJnIodCxlLG4pO3JldHVybiBpKHQsZSksdH0sYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIj09PW58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfHxyKHQsZSxuKX07dC5fX2VzTW9kdWxlPSEwLHQuR3JhcGhlbmU9dC5ncmFwaGVuZT10LlBBUlRJVElPTj12b2lkIDA7dmFyIHM9byhuKDk0NTg3KSk7dC5ncmFwaGVuZT1zLmRlZmF1bHQsdC5HcmFwaGVuZT1zLkdyYXBoZW5lO3ZhciBjPW4oMTcyNDUpO3IodCxjLFwiUEFSVElUSU9OXCIpLGEobig1OTYwMiksdCksdC5kZWZhdWx0PXMuZGVmYXVsdH0sODc5MDM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KTt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PXQuQnJvd3Nlck5ldHdvcmtIYW5kbGVyPXZvaWQgMDt2YXIgaT1uKDcxNjE3KTtyKHQsaSxcIkJyb3dzZXJOZXR3b3JrSGFuZGxlclwiKSxyKHQsaSxcImRlZmF1bHRcIil9LDE3MjQ1OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG47dC5fX2VzTW9kdWxlPSEwLHQuUEFSVElUSU9OPXZvaWQgMCxmdW5jdGlvbihlKXtlLlVOREVGSU5FRD1cInVuZGVmaW5lZFwiLGUuQURTX01BTkFHRVI9XCJhZHNfbWFuYWdlclwiLGUuQlVTSU5FU1NfTUFOQUdFUj1cImJ1c2luZXNzX21hbmFnZXJcIixlLlBST0ZJTEVfTUFOQUdFUj1cInByb2ZpbGVfbWFuYWdlclwiLGUuUkVWSUVXX1RPT0w9XCJyZXZpZXdfdG9vbFwiLGUuU05BUF9NQVBTPVwic25hcF9tYXBzXCIsZS5GT1JfQlVTSU5FU1M9XCJmb3JfYnVzaW5lc3NcIixlLkFERk9STUFUU19XRUI9XCJhZGZvcm1hdHNfd2ViXCIsZS5ESVNDT1ZFUl9DTVM9XCJkaXNjb3Zlcl9jbXNcIixlLlNOQVBfV0VCPVwic25hcF93ZWJcIixlLk5FV1NST09NPVwibmV3c3Jvb21cIixlLllFTExPV19MQT1cInllbGxvd19sYVwiLGUuQ0lUSVpFTl9TTkFQPVwiY2l0aXplbl9zbmFwXCIsZS5TTkFQX0ZPVU5EQVRJT049XCJzbmFwX2ZvdW5kYXRpb25cIixlLkVOR19CTE9HPVwiZW5nX2Jsb2dcIixlLlJFU0VBUkNIX1NOQVA9XCJyZXNlYXJjaF9zbmFwXCIsZS5NWV9MRU5TRVM9XCJteV9sZW5zZXNcIixlLlBMQVlDQU5WQVM9XCJwbGF5Y2FudmFzXCIsZS5NRUFTVVJFTUVOVF9QT1JUQUw9XCJtZWFzdXJlbWVudF9wb3J0YWxcIixlLlRSVVNUPVwidHJ1c3RcIixlLkNIRUVSSU9TPVwiY2hlZXJpb3NcIixlLlNQUz1cInNwc1wiLGUuQVJfU05BUD1cImFyX3NuYXBcIixlLkRFVkVMT1BFUl9TTkFQPVwiZGV2ZWxvcGVyX3NuYXBcIixlLkRBTkRFTElPTj1cImRhbmRlbGlvblwiLGUuQ1JFQVRPUlNfU05BUD1cImNyZWF0b3JzX3NuYXBcIixlLkRJVkVSU0lUWT1cImRpdmVyc2l0eVwiLGUuU05BUENIQVRfV0VCPVwic25hcGNoYXRfd2ViXCIsZS5FTUJFRERFRF9XRUJWSUVXX0FEUz1cImVtYmVkZGVkX3dlYnZpZXdfYWRzXCIsZS5NRVRSSUNTX01PTklUT1I9XCJtZXRyaWNzX21vbml0b3JcIixlLlNOQVBHUkFQSD1cInNuYXBncmFwaFwiLGUuTUVBU1VSRU1FTlRfUkVTT05BTkNFX1NVUlZFWT1cIm1lYXN1cmVtZW50X3Jlc29uYW5jZV9zdXJ2ZXlcIixlLk1FQVNVUkVNRU5UX01SX1NVUlZFWT1cIm1lYXN1cmVtZW50X21yX3N1cnZleVwiLGUuTUVBU1VSRU1FTlRfQ09MTEVDVElPTl9TVVJWRVk9XCJtZWFzdXJlbWVudF9jb2xsZWN0aW9uX3N1cnZleVwiLGUuU1RPUllfU1RVRElPX0xJVEU9XCJzdG9yeV9zdHVkaW9fbGl0ZVwiLGUuV0VCX1NFTEZfU0VSVkVfQURTPVwid2ViX3NlbGZfc2VydmVfYWRzXCIsZS5BUkNBRElBPVwiYXJjYWRpYVwiLGUuU05BUF81MjM9XCJzbmFwXzUyM1wiLGUuT1JJR0lOQUxTPVwib3JpZ2luYWxzXCIsZS5MRU9fV0VCPVwibGVvX3dlYlwiLGUuRFdFQj1cImR3ZWJcIixlLlNDTl9DT05URU5UX01BTkFHRVI9XCJzY25fY29udGVudF9tYW5hZ2VyXCIsZS5BRFZFUlRJU0VSXzM2MD1cImFkdmVydGlzZXJfMzYwXCIsZS5DQVJFRVJTPVwiY2FyZWVyc1wiLGUuUFJJVkFDWV9JTkZSQT1cInByaXZhY3lfaW5mcmFcIixlLkJMSVpaQVJEPVwiYmxpenphcmRcIixlLkNPT0tJRV9NT0RBTF9DT01QT05FTlRTPVwiY29va2llX21vZGFsX2NvbXBvbmVudHNcIixlLkNPTlRFTlRfVE9PTFM9XCJjb250ZW50X3Rvb2xzXCIsZS5XRUJfQUNDT1VOVFM9XCJ3ZWJfYWNjb3VudHNcIixlLk1BUktFVElOR19XRUJfUExBVEZPUk09XCJtYXJrZXRpbmdfd2ViX3BsYXRmb3JtXCIsZS5BUkVTX1NESz1cImFyZXNfc2RrXCIsZS5TTkFQX09SQ0E9XCJzbmFwX29yY2FcIn0obj10LlBBUlRJVElPTnx8KHQuUEFSVElUSU9OPXt9KSksdC5kZWZhdWx0PW59LDk5ODg1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDYyMTAwKSxpPXIuV3JpdGVyLG89ci51dGlsLGE9ci5yb290cy5kZWZhdWx0fHwoci5yb290cy5kZWZhdWx0PXt9KTthLk9zVHlwZT1mdW5jdGlvbigpe3ZhciBlPXt9LHQ9T2JqZWN0LmNyZWF0ZShlKTtyZXR1cm4gdFtlWzBdPVwiVU5LTk9XTl9PU19UWVBFXCJdPTAsdFtlWzFdPVwiT1NfSU9TXCJdPTEsdFtlWzJdPVwiT1NfQU5EUk9JRFwiXT0yLHRbZVszXT1cIk9TX1dFQlwiXT0zLHR9KCksYS5BcHBWZXJzaW9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXtpZihlKWZvcih2YXIgdD1PYmplY3Qua2V5cyhlKSxuPTA7bjx0Lmxlbmd0aDsrK24pbnVsbCE9ZVt0W25dXSYmKHRoaXNbdFtuXV09ZVt0W25dXSl9cmV0dXJuIGUucHJvdG90eXBlLnZlcnNpb25OdW1iZXI9bnVsbCxlLnByb3RvdHlwZS5mbGF2b3I9XCJcIixlLnByb3RvdHlwZS52YXJpYW50PVwiXCIsZS5lbmNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8KHQ9aS5jcmVhdGUoKSksbnVsbCE9ZS52ZXJzaW9uTnVtYmVyJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwidmVyc2lvbk51bWJlclwiKSYmYS5BcHBWZXJzaW9uLlZlcnNpb25OdW1iZXIuZW5jb2RlKGUudmVyc2lvbk51bWJlcix0LnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSxudWxsIT1lLmZsYXZvciYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcImZsYXZvclwiKSYmdC51aW50MzIoMTgpLnN0cmluZyhlLmZsYXZvciksbnVsbCE9ZS52YXJpYW50JiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwidmFyaWFudFwiKSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnZhcmlhbnQpLHR9LGUuZnJvbU9iamVjdD1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgYS5BcHBWZXJzaW9uKXJldHVybiBlO3ZhciB0PW5ldyBhLkFwcFZlcnNpb247aWYobnVsbCE9ZS52ZXJzaW9uTnVtYmVyKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUudmVyc2lvbk51bWJlcil0aHJvdyBUeXBlRXJyb3IoXCIuQXBwVmVyc2lvbi52ZXJzaW9uTnVtYmVyOiBvYmplY3QgZXhwZWN0ZWRcIik7dC52ZXJzaW9uTnVtYmVyPWEuQXBwVmVyc2lvbi5WZXJzaW9uTnVtYmVyLmZyb21PYmplY3QoZS52ZXJzaW9uTnVtYmVyKX1yZXR1cm4gbnVsbCE9ZS5mbGF2b3ImJih0LmZsYXZvcj1TdHJpbmcoZS5mbGF2b3IpKSxudWxsIT1lLnZhcmlhbnQmJih0LnZhcmlhbnQ9U3RyaW5nKGUudmFyaWFudCkpLHR9LGUudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt0fHwodD17fSk7dmFyIG49e307cmV0dXJuIHQuZGVmYXVsdHMmJihuLnZlcnNpb25OdW1iZXI9bnVsbCxuLmZsYXZvcj1cIlwiLG4udmFyaWFudD1cIlwiKSxudWxsIT1lLnZlcnNpb25OdW1iZXImJmUuaGFzT3duUHJvcGVydHkoXCJ2ZXJzaW9uTnVtYmVyXCIpJiYobi52ZXJzaW9uTnVtYmVyPWEuQXBwVmVyc2lvbi5WZXJzaW9uTnVtYmVyLnRvT2JqZWN0KGUudmVyc2lvbk51bWJlcix0KSksbnVsbCE9ZS5mbGF2b3ImJmUuaGFzT3duUHJvcGVydHkoXCJmbGF2b3JcIikmJihuLmZsYXZvcj1lLmZsYXZvciksbnVsbCE9ZS52YXJpYW50JiZlLmhhc093blByb3BlcnR5KFwidmFyaWFudFwiKSYmKG4udmFyaWFudD1lLnZhcmlhbnQpLG59LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvT2JqZWN0KHRoaXMsci51dGlsLnRvSlNPTk9wdGlvbnMpfSxlLlZlcnNpb25OdW1iZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2lmKGUpZm9yKHZhciB0PU9iamVjdC5rZXlzKGUpLG49MDtuPHQubGVuZ3RoOysrbiludWxsIT1lW3Rbbl1dJiYodGhpc1t0W25dXT1lW3Rbbl1dKX1yZXR1cm4gZS5wcm90b3R5cGUubWFqb3I9MCxlLnByb3RvdHlwZS5taW5vcj0wLGUucHJvdG90eXBlLnBhdGNoPTAsZS5wcm90b3R5cGUuYnVpbGQ9MCxlLmVuY29kZT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHwodD1pLmNyZWF0ZSgpKSxudWxsIT1lLm1ham9yJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwibWFqb3JcIikmJnQudWludDMyKDgpLmludDMyKGUubWFqb3IpLG51bGwhPWUubWlub3ImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJtaW5vclwiKSYmdC51aW50MzIoMTYpLmludDMyKGUubWlub3IpLG51bGwhPWUucGF0Y2gmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJwYXRjaFwiKSYmdC51aW50MzIoMjQpLmludDMyKGUucGF0Y2gpLG51bGwhPWUuYnVpbGQmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJidWlsZFwiKSYmdC51aW50MzIoMzIpLmludDMyKGUuYnVpbGQpLHR9LGUuZnJvbU9iamVjdD1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgYS5BcHBWZXJzaW9uLlZlcnNpb25OdW1iZXIpcmV0dXJuIGU7dmFyIHQ9bmV3IGEuQXBwVmVyc2lvbi5WZXJzaW9uTnVtYmVyO3JldHVybiBudWxsIT1lLm1ham9yJiYodC5tYWpvcj0wfGUubWFqb3IpLG51bGwhPWUubWlub3ImJih0Lm1pbm9yPTB8ZS5taW5vciksbnVsbCE9ZS5wYXRjaCYmKHQucGF0Y2g9MHxlLnBhdGNoKSxudWxsIT1lLmJ1aWxkJiYodC5idWlsZD0wfGUuYnVpbGQpLHR9LGUudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt0fHwodD17fSk7dmFyIG49e307cmV0dXJuIHQuZGVmYXVsdHMmJihuLm1ham9yPTAsbi5taW5vcj0wLG4ucGF0Y2g9MCxuLmJ1aWxkPTApLG51bGwhPWUubWFqb3ImJmUuaGFzT3duUHJvcGVydHkoXCJtYWpvclwiKSYmKG4ubWFqb3I9ZS5tYWpvciksbnVsbCE9ZS5taW5vciYmZS5oYXNPd25Qcm9wZXJ0eShcIm1pbm9yXCIpJiYobi5taW5vcj1lLm1pbm9yKSxudWxsIT1lLnBhdGNoJiZlLmhhc093blByb3BlcnR5KFwicGF0Y2hcIikmJihuLnBhdGNoPWUucGF0Y2gpLG51bGwhPWUuYnVpbGQmJmUuaGFzT3duUHJvcGVydHkoXCJidWlsZFwiKSYmKG4uYnVpbGQ9ZS5idWlsZCksbn0sZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IudG9PYmplY3QodGhpcyxyLnV0aWwudG9KU09OT3B0aW9ucyl9LGV9KCksZX0oKSxhLk1ldHJpYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7aWYodGhpcy5jdXN0b21EaW1lbnNpb25zPXt9LHRoaXMudmFsdWVzPVtdLGUpZm9yKHZhciB0PU9iamVjdC5rZXlzKGUpLG49MDtuPHQubGVuZ3RoOysrbiludWxsIT1lW3Rbbl1dJiYodGhpc1t0W25dXT1lW3Rbbl1dKX1yZXR1cm4gZS5wcm90b3R5cGUucGFydGl0aW9uTmFtZT1cIlwiLGUucHJvdG90eXBlLm1ldHJpY05hbWU9XCJcIixlLnByb3RvdHlwZS5jdXN0b21EaW1lbnNpb25zPW8uZW1wdHlPYmplY3QsZS5wcm90b3R5cGUudmFsdWVzPW8uZW1wdHlBcnJheSxlLmVuY29kZT1mdW5jdGlvbihlLHQpe2lmKHR8fCh0PWkuY3JlYXRlKCkpLG51bGwhPWUucGFydGl0aW9uTmFtZSYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcInBhcnRpdGlvbk5hbWVcIikmJnQudWludDMyKDEwKS5zdHJpbmcoZS5wYXJ0aXRpb25OYW1lKSxudWxsIT1lLm1ldHJpY05hbWUmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJtZXRyaWNOYW1lXCIpJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUubWV0cmljTmFtZSksbnVsbCE9ZS5jdXN0b21EaW1lbnNpb25zJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiY3VzdG9tRGltZW5zaW9uc1wiKSlmb3IodmFyIG49T2JqZWN0LmtleXMoZS5jdXN0b21EaW1lbnNpb25zKSxyPTA7cjxuLmxlbmd0aDsrK3IpdC51aW50MzIoMjYpLmZvcmsoKS51aW50MzIoMTApLnN0cmluZyhuW3JdKS51aW50MzIoMTgpLnN0cmluZyhlLmN1c3RvbURpbWVuc2lvbnNbbltyXV0pLmxkZWxpbSgpO2lmKG51bGwhPWUudmFsdWVzJiZlLnZhbHVlcy5sZW5ndGgpe3QudWludDMyKDM0KS5mb3JrKCk7Zm9yKHI9MDtyPGUudmFsdWVzLmxlbmd0aDsrK3IpdC5pbnQ2NChlLnZhbHVlc1tyXSk7dC5sZGVsaW0oKX1yZXR1cm4gdH0sZS5mcm9tT2JqZWN0PWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBhLk1ldHJpYylyZXR1cm4gZTt2YXIgdD1uZXcgYS5NZXRyaWM7aWYobnVsbCE9ZS5wYXJ0aXRpb25OYW1lJiYodC5wYXJ0aXRpb25OYW1lPVN0cmluZyhlLnBhcnRpdGlvbk5hbWUpKSxudWxsIT1lLm1ldHJpY05hbWUmJih0Lm1ldHJpY05hbWU9U3RyaW5nKGUubWV0cmljTmFtZSkpLGUuY3VzdG9tRGltZW5zaW9ucyl7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlLmN1c3RvbURpbWVuc2lvbnMpdGhyb3cgVHlwZUVycm9yKFwiLk1ldHJpYy5jdXN0b21EaW1lbnNpb25zOiBvYmplY3QgZXhwZWN0ZWRcIik7dC5jdXN0b21EaW1lbnNpb25zPXt9O2Zvcih2YXIgbj1PYmplY3Qua2V5cyhlLmN1c3RvbURpbWVuc2lvbnMpLHI9MDtyPG4ubGVuZ3RoOysrcil0LmN1c3RvbURpbWVuc2lvbnNbbltyXV09U3RyaW5nKGUuY3VzdG9tRGltZW5zaW9uc1tuW3JdXSl9aWYoZS52YWx1ZXMpe2lmKCFBcnJheS5pc0FycmF5KGUudmFsdWVzKSl0aHJvdyBUeXBlRXJyb3IoXCIuTWV0cmljLnZhbHVlczogYXJyYXkgZXhwZWN0ZWRcIik7dC52YWx1ZXM9W107Zm9yKHI9MDtyPGUudmFsdWVzLmxlbmd0aDsrK3Ipby5Mb25nPyh0LnZhbHVlc1tyXT1vLkxvbmcuZnJvbVZhbHVlKGUudmFsdWVzW3JdKSkudW5zaWduZWQ9ITE6XCJzdHJpbmdcIj09PXR5cGVvZiBlLnZhbHVlc1tyXT90LnZhbHVlc1tyXT1wYXJzZUludChlLnZhbHVlc1tyXSwxMCk6XCJudW1iZXJcIj09PXR5cGVvZiBlLnZhbHVlc1tyXT90LnZhbHVlc1tyXT1lLnZhbHVlc1tyXTpcIm9iamVjdFwiPT09dHlwZW9mIGUudmFsdWVzW3JdJiYodC52YWx1ZXNbcl09bmV3IG8uTG9uZ0JpdHMoZS52YWx1ZXNbcl0ubG93Pj4+MCxlLnZhbHVlc1tyXS5oaWdoPj4+MCkudG9OdW1iZXIoKSl9cmV0dXJuIHR9LGUudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt0fHwodD17fSk7dmFyIG4scj17fTtpZigodC5hcnJheXN8fHQuZGVmYXVsdHMpJiYoci52YWx1ZXM9W10pLCh0Lm9iamVjdHN8fHQuZGVmYXVsdHMpJiYoci5jdXN0b21EaW1lbnNpb25zPXt9KSx0LmRlZmF1bHRzJiYoci5wYXJ0aXRpb25OYW1lPVwiXCIsci5tZXRyaWNOYW1lPVwiXCIpLG51bGwhPWUucGFydGl0aW9uTmFtZSYmZS5oYXNPd25Qcm9wZXJ0eShcInBhcnRpdGlvbk5hbWVcIikmJihyLnBhcnRpdGlvbk5hbWU9ZS5wYXJ0aXRpb25OYW1lKSxudWxsIT1lLm1ldHJpY05hbWUmJmUuaGFzT3duUHJvcGVydHkoXCJtZXRyaWNOYW1lXCIpJiYoci5tZXRyaWNOYW1lPWUubWV0cmljTmFtZSksZS5jdXN0b21EaW1lbnNpb25zJiYobj1PYmplY3Qua2V5cyhlLmN1c3RvbURpbWVuc2lvbnMpKS5sZW5ndGgpe3IuY3VzdG9tRGltZW5zaW9ucz17fTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoOysraSlyLmN1c3RvbURpbWVuc2lvbnNbbltpXV09ZS5jdXN0b21EaW1lbnNpb25zW25baV1dfWlmKGUudmFsdWVzJiZlLnZhbHVlcy5sZW5ndGgpe3IudmFsdWVzPVtdO2ZvcihpPTA7aTxlLnZhbHVlcy5sZW5ndGg7KytpKVwibnVtYmVyXCI9PT10eXBlb2YgZS52YWx1ZXNbaV0/ci52YWx1ZXNbaV09dC5sb25ncz09PVN0cmluZz9TdHJpbmcoZS52YWx1ZXNbaV0pOmUudmFsdWVzW2ldOnIudmFsdWVzW2ldPXQubG9uZ3M9PT1TdHJpbmc/by5Mb25nLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUudmFsdWVzW2ldKTp0LmxvbmdzPT09TnVtYmVyP25ldyBvLkxvbmdCaXRzKGUudmFsdWVzW2ldLmxvdz4+PjAsZS52YWx1ZXNbaV0uaGlnaD4+PjApLnRvTnVtYmVyKCk6ZS52YWx1ZXNbaV19cmV0dXJuIHJ9LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnRvT2JqZWN0KHRoaXMsci51dGlsLnRvSlNPTk9wdGlvbnMpfSxlfSgpLGEuTWV0cmljRnJhbWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe2lmKHRoaXMudGltZXJzPVtdLHRoaXMuY291bnRlcnM9W10sdGhpcy5sZXZlbHM9W10sZSlmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7KytuKW51bGwhPWVbdFtuXV0mJih0aGlzW3Rbbl1dPWVbdFtuXV0pfXJldHVybiBlLnByb3RvdHlwZS50aW1lcnM9by5lbXB0eUFycmF5LGUucHJvdG90eXBlLmNvdW50ZXJzPW8uZW1wdHlBcnJheSxlLnByb3RvdHlwZS5sZXZlbHM9by5lbXB0eUFycmF5LGUucHJvdG90eXBlLnByb3RvY29sVmVyc2lvbj0wLGUucHJvdG90eXBlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzPW8uTG9uZz9vLkxvbmcuZnJvbUJpdHMoMCwwLCEwKTowLGUucHJvdG90eXBlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcz1vLkxvbmc/by5Mb25nLmZyb21CaXRzKDAsMCwhMCk6MCxlLnByb3RvdHlwZS5hcHBWZXJzaW9uPW51bGwsZS5wcm90b3R5cGUuY2xpZW50T3NUeXBlPTAsZS5wcm90b3R5cGUudXNlcklkPVwiXCIsZS5lbmNvZGU9ZnVuY3Rpb24oZSx0KXtpZih0fHwodD1pLmNyZWF0ZSgpKSxudWxsIT1lLnRpbWVycyYmZS50aW1lcnMubGVuZ3RoKWZvcih2YXIgbj0wO248ZS50aW1lcnMubGVuZ3RoOysrbilhLk1ldHJpYy5lbmNvZGUoZS50aW1lcnNbbl0sdC51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCk7aWYobnVsbCE9ZS5jb3VudGVycyYmZS5jb3VudGVycy5sZW5ndGgpZm9yKG49MDtuPGUuY291bnRlcnMubGVuZ3RoOysrbilhLk1ldHJpYy5lbmNvZGUoZS5jb3VudGVyc1tuXSx0LnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKTtpZihudWxsIT1lLmxldmVscyYmZS5sZXZlbHMubGVuZ3RoKWZvcihuPTA7bjxlLmxldmVscy5sZW5ndGg7KytuKWEuTWV0cmljLmVuY29kZShlLmxldmVsc1tuXSx0LnVpbnQzMigyNikuZm9yaygpKS5sZGVsaW0oKTtyZXR1cm4gbnVsbCE9ZS5wcm90b2NvbFZlcnNpb24mJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJwcm90b2NvbFZlcnNpb25cIikmJnQudWludDMyKDMyKS51aW50MzIoZS5wcm90b2NvbFZlcnNpb24pLG51bGwhPWUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJidWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpc1wiKSYmdC51aW50MzIoNDApLnVpbnQ2NChlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzKSxudWxsIT1lLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcyYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxcImJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpc1wiKSYmdC51aW50MzIoNDgpLnVpbnQ2NChlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcyksbnVsbCE9ZS5hcHBWZXJzaW9uJiZPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiYXBwVmVyc2lvblwiKSYmYS5BcHBWZXJzaW9uLmVuY29kZShlLmFwcFZlcnNpb24sdC51aW50MzIoNTgpLmZvcmsoKSkubGRlbGltKCksbnVsbCE9ZS5jbGllbnRPc1R5cGUmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJjbGllbnRPc1R5cGVcIikmJnQudWludDMyKDY0KS5pbnQzMihlLmNsaWVudE9zVHlwZSksbnVsbCE9ZS51c2VySWQmJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJ1c2VySWRcIikmJnQudWludDMyKDc0KS5zdHJpbmcoZS51c2VySWQpLHR9LGUuZnJvbU9iamVjdD1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgYS5NZXRyaWNGcmFtZSlyZXR1cm4gZTt2YXIgdD1uZXcgYS5NZXRyaWNGcmFtZTtpZihlLnRpbWVycyl7aWYoIUFycmF5LmlzQXJyYXkoZS50aW1lcnMpKXRocm93IFR5cGVFcnJvcihcIi5NZXRyaWNGcmFtZS50aW1lcnM6IGFycmF5IGV4cGVjdGVkXCIpO3QudGltZXJzPVtdO2Zvcih2YXIgbj0wO248ZS50aW1lcnMubGVuZ3RoOysrbil7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlLnRpbWVyc1tuXSl0aHJvdyBUeXBlRXJyb3IoXCIuTWV0cmljRnJhbWUudGltZXJzOiBvYmplY3QgZXhwZWN0ZWRcIik7dC50aW1lcnNbbl09YS5NZXRyaWMuZnJvbU9iamVjdChlLnRpbWVyc1tuXSl9fWlmKGUuY291bnRlcnMpe2lmKCFBcnJheS5pc0FycmF5KGUuY291bnRlcnMpKXRocm93IFR5cGVFcnJvcihcIi5NZXRyaWNGcmFtZS5jb3VudGVyczogYXJyYXkgZXhwZWN0ZWRcIik7dC5jb3VudGVycz1bXTtmb3Iobj0wO248ZS5jb3VudGVycy5sZW5ndGg7KytuKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUuY291bnRlcnNbbl0pdGhyb3cgVHlwZUVycm9yKFwiLk1ldHJpY0ZyYW1lLmNvdW50ZXJzOiBvYmplY3QgZXhwZWN0ZWRcIik7dC5jb3VudGVyc1tuXT1hLk1ldHJpYy5mcm9tT2JqZWN0KGUuY291bnRlcnNbbl0pfX1pZihlLmxldmVscyl7aWYoIUFycmF5LmlzQXJyYXkoZS5sZXZlbHMpKXRocm93IFR5cGVFcnJvcihcIi5NZXRyaWNGcmFtZS5sZXZlbHM6IGFycmF5IGV4cGVjdGVkXCIpO3QubGV2ZWxzPVtdO2ZvcihuPTA7bjxlLmxldmVscy5sZW5ndGg7KytuKXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGUubGV2ZWxzW25dKXRocm93IFR5cGVFcnJvcihcIi5NZXRyaWNGcmFtZS5sZXZlbHM6IG9iamVjdCBleHBlY3RlZFwiKTt0LmxldmVsc1tuXT1hLk1ldHJpYy5mcm9tT2JqZWN0KGUubGV2ZWxzW25dKX19aWYobnVsbCE9ZS5wcm90b2NvbFZlcnNpb24mJih0LnByb3RvY29sVmVyc2lvbj1lLnByb3RvY29sVmVyc2lvbj4+PjApLG51bGwhPWUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMmJihvLkxvbmc/KHQuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9by5Mb25nLmZyb21WYWx1ZShlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzKSkudW5zaWduZWQ9ITA6XCJzdHJpbmdcIj09PXR5cGVvZiBlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzP3QuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9cGFyc2VJbnQoZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcywxMCk6XCJudW1iZXJcIj09PXR5cGVvZiBlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzP3QuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9ZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpczpcIm9iamVjdFwiPT09dHlwZW9mIGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMmJih0LmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzPW5ldyBvLkxvbmdCaXRzKGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMubG93Pj4+MCxlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzLmhpZ2g+Pj4wKS50b051bWJlcighMCkpKSxudWxsIT1lLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcyYmKG8uTG9uZz8odC5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9by5Mb25nLmZyb21WYWx1ZShlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcykpLnVuc2lnbmVkPSEwOlwic3RyaW5nXCI9PT10eXBlb2YgZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM/dC5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9cGFyc2VJbnQoZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXMsMTApOlwibnVtYmVyXCI9PT10eXBlb2YgZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM/dC5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9ZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM6XCJvYmplY3RcIj09PXR5cGVvZiBlLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcyYmKHQuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzPW5ldyBvLkxvbmdCaXRzKGUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzLmxvdz4+PjAsZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXMuaGlnaD4+PjApLnRvTnVtYmVyKCEwKSkpLG51bGwhPWUuYXBwVmVyc2lvbil7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlLmFwcFZlcnNpb24pdGhyb3cgVHlwZUVycm9yKFwiLk1ldHJpY0ZyYW1lLmFwcFZlcnNpb246IG9iamVjdCBleHBlY3RlZFwiKTt0LmFwcFZlcnNpb249YS5BcHBWZXJzaW9uLmZyb21PYmplY3QoZS5hcHBWZXJzaW9uKX1zd2l0Y2goZS5jbGllbnRPc1R5cGUpe2Nhc2VcIlVOS05PV05fT1NfVFlQRVwiOmNhc2UgMDp0LmNsaWVudE9zVHlwZT0wO2JyZWFrO2Nhc2VcIk9TX0lPU1wiOmNhc2UgMTp0LmNsaWVudE9zVHlwZT0xO2JyZWFrO2Nhc2VcIk9TX0FORFJPSURcIjpjYXNlIDI6dC5jbGllbnRPc1R5cGU9MjticmVhaztjYXNlXCJPU19XRUJcIjpjYXNlIDM6dC5jbGllbnRPc1R5cGU9M31yZXR1cm4gbnVsbCE9ZS51c2VySWQmJih0LnVzZXJJZD1TdHJpbmcoZS51c2VySWQpKSx0fSxlLnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dHx8KHQ9e30pO3ZhciBuPXt9O2lmKCh0LmFycmF5c3x8dC5kZWZhdWx0cykmJihuLnRpbWVycz1bXSxuLmNvdW50ZXJzPVtdLG4ubGV2ZWxzPVtdKSx0LmRlZmF1bHRzKXtpZihuLnByb3RvY29sVmVyc2lvbj0wLG8uTG9uZyl7dmFyIHI9bmV3IG8uTG9uZygwLDAsITApO24uYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9yLnRvU3RyaW5nKCk6dC5sb25ncz09PU51bWJlcj9yLnRvTnVtYmVyKCk6cn1lbHNlIG4uYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9cIjBcIjowO2lmKG8uTG9uZyl7cj1uZXcgby5Mb25nKDAsMCwhMCk7bi5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9yLnRvU3RyaW5nKCk6dC5sb25ncz09PU51bWJlcj9yLnRvTnVtYmVyKCk6cn1lbHNlIG4uYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzPXQubG9uZ3M9PT1TdHJpbmc/XCIwXCI6MDtuLmFwcFZlcnNpb249bnVsbCxuLmNsaWVudE9zVHlwZT10LmVudW1zPT09U3RyaW5nP1wiVU5LTk9XTl9PU19UWVBFXCI6MCxuLnVzZXJJZD1cIlwifWlmKGUudGltZXJzJiZlLnRpbWVycy5sZW5ndGgpe24udGltZXJzPVtdO2Zvcih2YXIgaT0wO2k8ZS50aW1lcnMubGVuZ3RoOysraSluLnRpbWVyc1tpXT1hLk1ldHJpYy50b09iamVjdChlLnRpbWVyc1tpXSx0KX1pZihlLmNvdW50ZXJzJiZlLmNvdW50ZXJzLmxlbmd0aCl7bi5jb3VudGVycz1bXTtmb3IoaT0wO2k8ZS5jb3VudGVycy5sZW5ndGg7KytpKW4uY291bnRlcnNbaV09YS5NZXRyaWMudG9PYmplY3QoZS5jb3VudGVyc1tpXSx0KX1pZihlLmxldmVscyYmZS5sZXZlbHMubGVuZ3RoKXtuLmxldmVscz1bXTtmb3IoaT0wO2k8ZS5sZXZlbHMubGVuZ3RoOysraSluLmxldmVsc1tpXT1hLk1ldHJpYy50b09iamVjdChlLmxldmVsc1tpXSx0KX1yZXR1cm4gbnVsbCE9ZS5wcm90b2NvbFZlcnNpb24mJmUuaGFzT3duUHJvcGVydHkoXCJwcm90b2NvbFZlcnNpb25cIikmJihuLnByb3RvY29sVmVyc2lvbj1lLnByb3RvY29sVmVyc2lvbiksbnVsbCE9ZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcyYmZS5oYXNPd25Qcm9wZXJ0eShcImJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzXCIpJiYoXCJudW1iZXJcIj09PXR5cGVvZiBlLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzP24uYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9TdHJpbmcoZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcyk6ZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpczpuLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzPXQubG9uZ3M9PT1TdHJpbmc/by5Mb25nLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMpOnQubG9uZ3M9PT1OdW1iZXI/bmV3IG8uTG9uZ0JpdHMoZS5idWZmZXJTdGFydFRpbWVzdGFtcE1pbGxpcy5sb3c+Pj4wLGUuYnVmZmVyU3RhcnRUaW1lc3RhbXBNaWxsaXMuaGlnaD4+PjApLnRvTnVtYmVyKCEwKTplLmJ1ZmZlclN0YXJ0VGltZXN0YW1wTWlsbGlzKSxudWxsIT1lLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcyYmZS5oYXNPd25Qcm9wZXJ0eShcImJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpc1wiKSYmKFwibnVtYmVyXCI9PT10eXBlb2YgZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM/bi5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXM9dC5sb25ncz09PVN0cmluZz9TdHJpbmcoZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXMpOmUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzOm4uYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzPXQubG9uZ3M9PT1TdHJpbmc/by5Mb25nLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzKTp0LmxvbmdzPT09TnVtYmVyP25ldyBvLkxvbmdCaXRzKGUuYnVmZmVyRW5kVGltZXN0YW1wTWlsbGlzLmxvdz4+PjAsZS5idWZmZXJFbmRUaW1lc3RhbXBNaWxsaXMuaGlnaD4+PjApLnRvTnVtYmVyKCEwKTplLmJ1ZmZlckVuZFRpbWVzdGFtcE1pbGxpcyksbnVsbCE9ZS5hcHBWZXJzaW9uJiZlLmhhc093blByb3BlcnR5KFwiYXBwVmVyc2lvblwiKSYmKG4uYXBwVmVyc2lvbj1hLkFwcFZlcnNpb24udG9PYmplY3QoZS5hcHBWZXJzaW9uLHQpKSxudWxsIT1lLmNsaWVudE9zVHlwZSYmZS5oYXNPd25Qcm9wZXJ0eShcImNsaWVudE9zVHlwZVwiKSYmKG4uY2xpZW50T3NUeXBlPXQuZW51bXM9PT1TdHJpbmc/YS5Pc1R5cGVbZS5jbGllbnRPc1R5cGVdOmUuY2xpZW50T3NUeXBlKSxudWxsIT1lLnVzZXJJZCYmZS5oYXNPd25Qcm9wZXJ0eShcInVzZXJJZFwiKSYmKG4udXNlcklkPWUudXNlcklkKSxufSxlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci50b09iamVjdCh0aGlzLHIudXRpbC50b0pTT05PcHRpb25zKX0sZX0oKSxlLmV4cG9ydHM9YX0sNjQ5MzA6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gZShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pZVtyXT1uW3JdfXJldHVybiBlfWZ1bmN0aW9uIHQobixyKXtmdW5jdGlvbiBpKHQsaSxvKXtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50KXtcIm51bWJlclwiPT09dHlwZW9mKG89ZSh7fSxyLG8pKS5leHBpcmVzJiYoby5leHBpcmVzPW5ldyBEYXRlKERhdGUubm93KCkrODY0ZTUqby5leHBpcmVzKSksby5leHBpcmVzJiYoby5leHBpcmVzPW8uZXhwaXJlcy50b1VUQ1N0cmluZygpKSx0PWVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgYT1cIlwiO2Zvcih2YXIgcyBpbiBvKW9bc10mJihhKz1cIjsgXCIrcywhMCE9PW9bc10mJihhKz1cIj1cIitvW3NdLnNwbGl0KFwiO1wiKVswXSkpO3JldHVybiBkb2N1bWVudC5jb29raWU9dCtcIj1cIituLndyaXRlKGksdCkrYX19ZnVuY3Rpb24gbyhlKXtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50JiYoIWFyZ3VtZW50cy5sZW5ndGh8fGUpKXtmb3IodmFyIHQ9ZG9jdW1lbnQuY29va2llP2RvY3VtZW50LmNvb2tpZS5zcGxpdChcIjsgXCIpOltdLHI9e30saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz10W2ldLnNwbGl0KFwiPVwiKSxhPW8uc2xpY2UoMSkuam9pbihcIj1cIik7dHJ5e3ZhciBzPWRlY29kZVVSSUNvbXBvbmVudChvWzBdKTtpZihyW3NdPW4ucmVhZChhLHMpLGU9PT1zKWJyZWFrfWNhdGNoKGMpe319cmV0dXJuIGU/cltlXTpyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0OmksZ2V0Om8scmVtb3ZlOmZ1bmN0aW9uKHQsbil7aSh0LFwiXCIsZSh7fSxuLHtleHBpcmVzOi0xfSkpfSx3aXRoQXR0cmlidXRlczpmdW5jdGlvbihuKXtyZXR1cm4gdCh0aGlzLmNvbnZlcnRlcixlKHt9LHRoaXMuYXR0cmlidXRlcyxuKSl9LHdpdGhDb252ZXJ0ZXI6ZnVuY3Rpb24obil7cmV0dXJuIHQoZSh7fSx0aGlzLmNvbnZlcnRlcixuKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUocil9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KX1yZXR1cm4gdCh7cmVhZDpmdW5jdGlvbihlKXtyZXR1cm4nXCInPT09ZVswXSYmKGU9ZS5zbGljZSgxLC0xKSksZS5yZXBsYWNlKC8oJVtcXGRBLUZdezJ9KSsvZ2ksZGVjb2RlVVJJQ29tcG9uZW50KX0sd3JpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lKDJbMzQ2QkZdfDNbQUMtRl18NDB8NVtCREVdfDYwfDdbQkNEXSkvZyxkZWNvZGVVUklDb21wb25lbnQpfX0se3BhdGg6XCIvXCJ9KX0oKX0sODczNTQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByOyFmdW5jdGlvbihpLG8pe1widXNlIHN0cmljdFwiO3ZhciBhPVwiZnVuY3Rpb25cIixzPVwidW5kZWZpbmVkXCIsYz1cIm9iamVjdFwiLHU9XCJzdHJpbmdcIixsPVwibWFqb3JcIixkPVwibW9kZWxcIixwPVwibmFtZVwiLGY9XCJ0eXBlXCIsaD1cInZlbmRvclwiLGc9XCJ2ZXJzaW9uXCIsbT1cImFyY2hpdGVjdHVyZVwiLHY9XCJjb25zb2xlXCIsXz1cIm1vYmlsZVwiLEU9XCJ0YWJsZXRcIixiPVwic21hcnR0dlwiLFM9XCJ3ZWFyYWJsZVwiLHk9XCJlbWJlZGRlZFwiLFQ9XCJBbWF6b25cIixJPVwiQXBwbGVcIixPPVwiQVNVU1wiLEE9XCJCbGFja0JlcnJ5XCIsQz1cIkZpcmVmb3hcIixOPVwiR29vZ2xlXCIsaz1cIkh1YXdlaVwiLFA9XCJMR1wiLFI9XCJNaWNyb3NvZnRcIix3PVwiTW90b3JvbGFcIixMPVwiT3BlcmFcIixCPVwiU2Ftc3VuZ1wiLE09XCJTaGFycFwiLEQ9XCJTb255XCIsaj1cIlhpYW9taVwiLHg9XCJaZWJyYVwiLFU9XCJGYWNlYm9va1wiLEY9XCJDaHJvbWl1bSBPU1wiLEg9XCJNYWMgT1NcIixHPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxuPTA7bjxlLmxlbmd0aDtuKyspdFtlW25dLnRvVXBwZXJDYXNlKCldPWVbbl07cmV0dXJuIHR9LFc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHlwZW9mIGU9PT11JiYtMSE9PVYodCkuaW5kZXhPZihWKGUpKX0sVj1mdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfSx6PWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGU9PT11KXJldHVybiBlPWUucmVwbGFjZSgvXlxcc1xccyovLFwiXCIpLHR5cGVvZiB0PT09cz9lOmUuc3Vic3RyaW5nKDAsMzUwKX0sSz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLGkscyx1LGwsZD0wO2Q8dC5sZW5ndGgmJiF1Oyl7dmFyIHA9dFtkXSxmPXRbZCsxXTtmb3Iobj1yPTA7bjxwLmxlbmd0aCYmIXUmJnBbbl07KWlmKHU9cFtuKytdLmV4ZWMoZSkpZm9yKGk9MDtpPGYubGVuZ3RoO2krKylsPXVbKytyXSx0eXBlb2Yocz1mW2ldKT09PWMmJnMubGVuZ3RoPjA/Mj09PXMubGVuZ3RoP3R5cGVvZiBzWzFdPT1hP3RoaXNbc1swXV09c1sxXS5jYWxsKHRoaXMsbCk6dGhpc1tzWzBdXT1zWzFdOjM9PT1zLmxlbmd0aD90eXBlb2Ygc1sxXSE9PWF8fHNbMV0uZXhlYyYmc1sxXS50ZXN0P3RoaXNbc1swXV09bD9sLnJlcGxhY2Uoc1sxXSxzWzJdKTpvOnRoaXNbc1swXV09bD9zWzFdLmNhbGwodGhpcyxsLHNbMl0pOm86ND09PXMubGVuZ3RoJiYodGhpc1tzWzBdXT1sP3NbM10uY2FsbCh0aGlzLGwucmVwbGFjZShzWzFdLHNbMl0pKTpvKTp0aGlzW3NdPWx8fG87ZCs9Mn19LFk9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdClpZih0eXBlb2YgdFtuXT09PWMmJnRbbl0ubGVuZ3RoPjApe2Zvcih2YXIgcj0wO3I8dFtuXS5sZW5ndGg7cisrKWlmKFcodFtuXVtyXSxlKSlyZXR1cm5cIj9cIj09PW4/bzpufWVsc2UgaWYoVyh0W25dLGUpKXJldHVyblwiP1wiPT09bj9vOm47cmV0dXJuIGV9LHE9e01FOlwiNC45MFwiLFwiTlQgMy4xMVwiOlwiTlQzLjUxXCIsXCJOVCA0LjBcIjpcIk5UNC4wXCIsMmUzOlwiTlQgNS4wXCIsWFA6W1wiTlQgNS4xXCIsXCJOVCA1LjJcIl0sVmlzdGE6XCJOVCA2LjBcIiw3OlwiTlQgNi4xXCIsODpcIk5UIDYuMlwiLDguMTpcIk5UIDYuM1wiLDEwOltcIk5UIDYuNFwiLFwiTlQgMTAuMFwiXSxSVDpcIkFSTVwifSxaPXticm93c2VyOltbL1xcYig/OmNybW98Y3Jpb3MpXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJDaHJvbWVcIl1dLFsvZWRnKD86ZXxpb3N8YSk/XFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJFZGdlXCJdXSxbLyhvcGVyYSBtaW5pKVxcLyhbLVxcd1xcLl0rKS9pLC8ob3BlcmEgW21vYmlsZXRhYl17Myw2fSlcXGIuK3ZlcnNpb25cXC8oWy1cXHdcXC5dKykvaSwvKG9wZXJhKSg/Oi4rdmVyc2lvblxcL3xbXFwvIF0rKShbXFx3XFwuXSspL2ldLFtwLGddLFsvb3Bpb3NbXFwvIF0rKFtcXHdcXC5dKykvaV0sW2csW3AsXCJPcGVyYSBNaW5pXCJdXSxbL1xcYm9wclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLExdXSxbLyhraW5kbGUpXFwvKFtcXHdcXC5dKykvaSwvKGx1bmFzY2FwZXxtYXh0aG9ufG5ldGZyb250fGphc21pbmV8YmxhemVyKVtcXC8gXT8oW1xcd1xcLl0qKS9pLC8oYXZhbnQgfGllbW9iaWxlfHNsaW0pKD86YnJvd3Nlcik/W1xcLyBdPyhbXFx3XFwuXSopL2ksLyhiYT9pZHVicm93c2VyKVtcXC8gXT8oW1xcd1xcLl0rKS9pLC8oPzptc3xcXCgpKGllKSAoW1xcd1xcLl0rKS9pLC8oZmxvY2t8cm9ja21lbHR8bWlkb3JpfGVwaXBoYW55fHNpbGt8c2t5ZmlyZXxib2x0fGlyb258dml2YWxkaXxpcmlkaXVtfHBoYW50b21qc3xib3dzZXJ8cXVhcmt8cXVwemlsbGF8ZmFsa29ufHJla29ucXxwdWZmaW58YnJhdmV8d2hhbGUoPyEuK25hdmVyKXxxcWJyb3dzZXJsaXRlfHFxfGR1Y2tkdWNrZ28pXFwvKFstXFx3XFwuXSspL2ksLyhoZXl0YXB8b3ZpKWJyb3dzZXJcXC8oW1xcZFxcLl0rKS9pLC8od2VpYm8pX18oW1xcZFxcLl0rKS9pXSxbcCxnXSxbLyg/OlxcYnVjPyA/YnJvd3NlcnwoPzpqdWMuKyl1Y3dlYilbXFwvIF0/KFtcXHdcXC5dKykvaV0sW2csW3AsXCJVQ0Jyb3dzZXJcIl1dLFsvbWljcm9tLitcXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS9pLC9cXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS4rbWljcm9tL2ldLFtnLFtwLFwiV2VDaGF0KFdpbikgRGVza3RvcFwiXV0sWy9taWNyb21lc3NlbmdlclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiV2VDaGF0XCJdXSxbL2tvbnF1ZXJvclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiS29ucXVlcm9yXCJdXSxbL3RyaWRlbnQuK3J2WzogXShbXFx3XFwuXXsxLDl9KVxcYi4rbGlrZSBnZWNrby9pXSxbZyxbcCxcIklFXCJdXSxbL3lhKD86c2VhcmNoKT9icm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJZYW5kZXhcIl1dLFsvKGF2YXN0fGF2ZylcXC8oW1xcd1xcLl0rKS9pXSxbW3AsLyguKykvLFwiJDEgU2VjdXJlIEJyb3dzZXJcIl0sZ10sWy9cXGJmb2N1c1xcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiRmlyZWZveCBGb2N1c1wiXV0sWy9cXGJvcHRcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIk9wZXJhIFRvdWNoXCJdXSxbL2NvY19jb2NcXHcrXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJDb2MgQ29jXCJdXSxbL2RvbGZpblxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiRG9scGhpblwiXV0sWy9jb2FzdFxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiT3BlcmEgQ29hc3RcIl1dLFsvbWl1aWJyb3dzZXJcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIk1JVUkgQnJvd3NlclwiXV0sWy9meGlvc1xcLyhbLVxcd1xcLl0rKS9pXSxbZyxbcCxDXV0sWy9cXGJxaWh1fChxaT9obz9vP3wzNjApYnJvd3Nlci9pXSxbW3AsXCIzNjAgQnJvd3NlclwiXV0sWy8ob2N1bHVzfHNhbXN1bmd8c2FpbGZpc2h8aHVhd2VpKWJyb3dzZXJcXC8oW1xcd1xcLl0rKS9pXSxbW3AsLyguKykvLFwiJDEgQnJvd3NlclwiXSxnXSxbLyhjb21vZG9fZHJhZ29uKVxcLyhbXFx3XFwuXSspL2ldLFtbcCwvXy9nLFwiIFwiXSxnXSxbLyhlbGVjdHJvbilcXC8oW1xcd1xcLl0rKSBzYWZhcmkvaSwvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XFwvKDIwXFxkXFxkXFwuWy1cXHdcXC5dKykpL2ksL20/KHFxYnJvd3NlcnxiYWlkdWJveGFwcHwyMzQ1RXhwbG9yZXIpW1xcLyBdPyhbXFx3XFwuXSspL2ldLFtwLGddLFsvKG1ldGFzcilbXFwvIF0/KFtcXHdcXC5dKykvaSwvKGxiYnJvd3NlcikvaSwvXFxbKGxpbmtlZGluKWFwcFxcXS9pXSxbcF0sWy8oKD86ZmJhblxcL2ZiaW9zfGZiX2lhYlxcL2ZiNGEpKD8hLitmYmF2KXw7ZmJhdlxcLyhbXFx3XFwuXSspOykvaV0sW1twLFVdLGddLFsvKGtha2FvKD86dGFsa3xzdG9yeSkpW1xcLyBdKFtcXHdcXC5dKykvaSwvKG5hdmVyKVxcKC4qPyhcXGQrXFwuW1xcd1xcLl0rKS4qXFwpL2ksL3NhZmFyaSAobGluZSlcXC8oW1xcd1xcLl0rKS9pLC9cXGIobGluZSlcXC8oW1xcd1xcLl0rKVxcL2lhYi9pLC8oY2hyb21pdW18aW5zdGFncmFtKVtcXC8gXShbLVxcd1xcLl0rKS9pXSxbcCxnXSxbL1xcYmdzYVxcLyhbXFx3XFwuXSspIC4qc2FmYXJpXFwvL2ldLFtnLFtwLFwiR1NBXCJdXSxbL211c2ljYWxfbHkoPzouK2FwcF8/dmVyc2lvblxcL3xfKShbXFx3XFwuXSspL2ldLFtnLFtwLFwiVGlrVG9rXCJdXSxbL2hlYWRsZXNzY2hyb21lKD86XFwvKFtcXHdcXC5dKyl8ICkvaV0sW2csW3AsXCJDaHJvbWUgSGVhZGxlc3NcIl1dLFsvIHd2XFwpLisoY2hyb21lKVxcLyhbXFx3XFwuXSspL2ldLFtbcCxcIkNocm9tZSBXZWJWaWV3XCJdLGddLFsvZHJvaWQuKyB2ZXJzaW9uXFwvKFtcXHdcXC5dKylcXGIuKyg/Om1vYmlsZSBzYWZhcml8c2FmYXJpKS9pXSxbZyxbcCxcIkFuZHJvaWQgQnJvd3NlclwiXV0sWy8oY2hyb21lfG9tbml3ZWJ8YXJvcmF8W3RpemVub2thXXs1fSA/YnJvd3NlcilcXC92PyhbXFx3XFwuXSspL2ldLFtwLGddLFsvdmVyc2lvblxcLyhbXFx3XFwuXFwsXSspIC4qbW9iaWxlXFwvXFx3KyAoc2FmYXJpKS9pXSxbZyxbcCxcIk1vYmlsZSBTYWZhcmlcIl1dLFsvdmVyc2lvblxcLyhbXFx3KFxcLnxcXCwpXSspIC4qKG1vYmlsZSA/c2FmYXJpfHNhZmFyaSkvaV0sW2cscF0sWy93ZWJraXQuKz8obW9iaWxlID9zYWZhcml8c2FmYXJpKShcXC9bXFx3XFwuXSspL2ldLFtwLFtnLFkse1wiMS4wXCI6XCIvOFwiLDEuMjpcIi8xXCIsMS4zOlwiLzNcIixcIjIuMFwiOlwiLzQxMlwiLFwiMi4wLjJcIjpcIi80MTZcIixcIjIuMC4zXCI6XCIvNDE3XCIsXCIyLjAuNFwiOlwiLzQxOVwiLFwiP1wiOlwiL1wifV1dLFsvKHdlYmtpdHxraHRtbClcXC8oW1xcd1xcLl0rKS9pXSxbcCxnXSxbLyhuYXZpZ2F0b3J8bmV0c2NhcGVcXGQ/KVxcLyhbLVxcd1xcLl0rKS9pXSxbW3AsXCJOZXRzY2FwZVwiXSxnXSxbL21vYmlsZSB2cjsgcnY6KFtcXHdcXC5dKylcXCkuK2ZpcmVmb3gvaV0sW2csW3AsXCJGaXJlZm94IFJlYWxpdHlcIl1dLFsvZWtpb2hmLisoZmxvdylcXC8oW1xcd1xcLl0rKS9pLC8oc3dpZnRmb3gpL2ksLyhpY2VkcmFnb258aWNld2Vhc2VsfGNhbWlub3xjaGltZXJhfGZlbm5lY3xtYWVtbyBicm93c2VyfG1pbmltb3xjb25rZXJvcnxrbGFyKVtcXC8gXT8oW1xcd1xcLlxcK10rKS9pLC8oc2VhbW9ua2V5fGstbWVsZW9ufGljZWNhdHxpY2VhcGV8ZmlyZWJpcmR8cGhvZW5peHxwYWxlbW9vbnxiYXNpbGlza3x3YXRlcmZveClcXC8oWy1cXHdcXC5dKykkL2ksLyhmaXJlZm94KVxcLyhbXFx3XFwuXSspL2ksLyhtb3ppbGxhKVxcLyhbXFx3XFwuXSspIC4rcnZcXDouK2dlY2tvXFwvXFxkKy9pLC8ocG9sYXJpc3xseW54fGRpbGxvfGljYWJ8ZG9yaXN8YW1heWF8dzNtfG5ldHN1cmZ8c2xlaXBuaXJ8b2JpZ298bW9zYWljfCg/OmdvfGljZXx1cClbXFwuIF0/YnJvd3NlcilbLVxcLyBdP3Y/KFtcXHdcXC5dKykvaSwvKGxpbmtzKSBcXCgoW1xcd1xcLl0rKS9pLC9wYW5hc29uaWM7KHZpZXJhKS9pXSxbcCxnXSxbLyhjb2JhbHQpXFwvKFtcXHdcXC5dKykvaV0sW3AsW2csL21hc3Rlci58bHRzLi8sXCJcIl1dXSxjcHU6W1svKD86KGFtZHx4KD86KD86ODZ8NjQpWy1fXSk/fHdvd3x3aW4pNjQpWztcXCldL2ldLFtbbSxcImFtZDY0XCJdXSxbLyhpYTMyKD89OykpL2ldLFtbbSxWXV0sWy8oKD86aVszNDZdfHgpODYpWztcXCldL2ldLFtbbSxcImlhMzJcIl1dLFsvXFxiKGFhcmNoNjR8YXJtKHY/OGU/bD98Xz82NCkpXFxiL2ldLFtbbSxcImFybTY0XCJdXSxbL1xcYihhcm0oPzp2WzY3XSk/aHQ/bj9bZmxdcD8pXFxiL2ldLFtbbSxcImFybWhmXCJdXSxbL3dpbmRvd3MgKGNlfG1vYmlsZSk7IHBwYzsvaV0sW1ttLFwiYXJtXCJdXSxbLygoPzpwcGN8cG93ZXJwYykoPzo2NCk/KSg/OiBtYWN8O3xcXCkpL2ldLFtbbSwvb3dlci8sXCJcIixWXV0sWy8oc3VuNFxcdylbO1xcKV0vaV0sW1ttLFwic3BhcmNcIl1dLFsvKCg/OmF2cjMyfGlhNjQoPz07KSl8NjhrKD89XFwpKXxcXGJhcm0oPz12KD86WzEtN118WzUtN10xKWw/fDt8ZWFiaSl8KD89YXRtZWwgKWF2cnwoPzppcml4fG1pcHN8c3BhcmMpKD86NjQpP1xcYnxwYS1yaXNjKS9pXSxbW20sVl1dXSxkZXZpY2U6W1svXFxiKHNjaC1pWzg5XTBcXGR8c2h3LW0zODBzfHNtLVtwdHhdXFx3ezIsNH18Z3QtW3BuXVxcZHsyLDR9fHNnaC10OFs1Nl05fG5leHVzIDEwKS9pXSxbZCxbaCxCXSxbZixFXV0sWy9cXGIoKD86c1tjZ3BdaHxndHxzbSktXFx3K3xzY1tnLV0/W1xcZF0rYT98Z2FsYXh5IG5leHVzKS9pLC9zYW1zdW5nWy0gXShbLVxcd10rKS9pLC9zZWMtKHNnaFxcdyspL2ldLFtkLFtoLEJdLFtmLF9dXSxbLyg/OlxcL3xcXCgpKGlwKD86aG9uZXxvZClbXFx3LCBdKikoPzpcXC98OykvaV0sW2QsW2gsSV0sW2YsX11dLFsvXFwoKGlwYWQpO1stXFx3XFwpLDsgXSthcHBsZS9pLC9hcHBsZWNvcmVtZWRpYVxcL1tcXHdcXC5dKyBcXCgoaXBhZCkvaSwvXFxiKGlwYWQpXFxkXFxkPyxcXGRcXGQ/WztcXF1dLitpb3MvaV0sW2QsW2gsSV0sW2YsRV1dLFsvKG1hY2ludG9zaCk7L2ldLFtkLFtoLEldXSxbL1xcYihzaC0/W2FsdHZ6XT9cXGRcXGRbYS1la21dPykvaV0sW2QsW2gsTV0sW2YsX11dLFsvXFxiKCg/OmFnW3JzXVsyM10/fGJhaDI/fHNodD98YnR2KS1hP1tsd11cXGR7Mn0pXFxiKD8hLitkXFwvcykvaV0sW2QsW2gsa10sW2YsRV1dLFsvKD86aHVhd2VpfGhvbm9yKShbLVxcdyBdKylbO1xcKV0vaSwvXFxiKG5leHVzIDZwfFxcd3syLDR9ZT8tW2F0dV0/W2xuXVtcXGR4XVswMTIzNTljXVthZG5dPylcXGIoPyEuK2RcXC9zKS9pXSxbZCxbaCxrXSxbZixfXV0sWy9cXGIocG9jb1tcXHcgXSspKD86IGJ1aXxcXCkpL2ksL1xcYjsgKFxcdyspIGJ1aWxkXFwvaG1cXDEvaSwvXFxiKGhtWy1fIF0/bm90ZT9bXyBdPyg/OlxcZFxcdyk/KSBidWkvaSwvXFxiKHJlZG1pW1xcLV8gXT8oPzpub3RlfGspP1tcXHdfIF0rKSg/OiBidWl8XFwpKS9pLC9cXGIobWlbLV8gXT8oPzphXFxkfG9uZXxvbmVbXyBdcGx1c3xub3RlIGx0ZXxtYXh8Y2MpP1tfIF0/KD86XFxkP1xcdz8pW18gXT8oPzpwbHVzfHNlfGxpdGUpPykoPzogYnVpfFxcKSkvaV0sW1tkLC9fL2csXCIgXCJdLFtoLGpdLFtmLF9dXSxbL1xcYihtaVstXyBdPyg/OnBhZCkoPzpbXFx3XyBdKykpKD86IGJ1aXxcXCkpL2ldLFtbZCwvXy9nLFwiIFwiXSxbaCxqXSxbZixFXV0sWy87IChcXHcrKSBidWkuKyBvcHBvL2ksL1xcYihjcGhbMTJdXFxkezN9fHAoPzphZnxjW2FsXXxkXFx3fGVbYXJdKVttdF1cXGQwfHg5MDA3fGExMDFvcClcXGIvaV0sW2QsW2gsXCJPUFBPXCJdLFtmLF9dXSxbL3Zpdm8gKFxcdyspKD86IGJ1aXxcXCkpL2ksL1xcYih2WzEyXVxcZHszfVxcdz9bYXRdKSg/OiBidWl8OykvaV0sW2QsW2gsXCJWaXZvXCJdLFtmLF9dXSxbL1xcYihybXhbMTJdXFxkezN9KSg/OiBidWl8O3xcXCkpL2ldLFtkLFtoLFwiUmVhbG1lXCJdLFtmLF9dXSxbL1xcYihtaWxlc3RvbmV8ZHJvaWQoPzpbMi00eF18ICg/OmJpb25pY3x4Mnxwcm98cmF6cikpPzo/KCA0Zyk/KVxcYltcXHcgXStidWlsZFxcLy9pLC9cXGJtb3QoPzpvcm9sYSk/Wy0gXShcXHcqKS9pLC8oKD86bW90b1tcXHdcXChcXCkgXSt8eHRcXGR7Myw0fXxuZXh1cyA2KSg/PSBidWl8XFwpKSkvaV0sW2QsW2gsd10sW2YsX11dLFsvXFxiKG16NjBcXGR8eG9vbVsyIF17MCwyfSkgYnVpbGRcXC8vaV0sW2QsW2gsd10sW2YsRV1dLFsvKCg/PWxnKT9bdmxda1xcLT9cXGR7M30pIGJ1aXwgM1xcLlstXFx3OyBdezEwfWxnPy0oWzA2Y3Y5XXszLDR9KS9pXSxbZCxbaCxQXSxbZixFXV0sWy8obG0oPzotP2YxMDBbbnZdP3wtW1xcd1xcLl0rKSg/PSBidWl8XFwpKXxuZXh1cyBbNDVdKS9pLC9cXGJsZ1stZTtcXC8gXSsoKD8hYnJvd3NlcnxuZXRjYXN0fGFuZHJvaWQgdHYpXFx3KykvaSwvXFxibGctPyhbXFxkXFx3XSspIGJ1aS9pXSxbZCxbaCxQXSxbZixfXV0sWy8oaWRlYXRhYlstXFx3IF0rKS9pLC9sZW5vdm8gPyhzWzU2XTAwMFstXFx3XSt8dGFiKD86W1xcdyBdKyl8eXRbLVxcZFxcd117Nn18dGJbLVxcZFxcd117Nn0pL2ldLFtkLFtoLFwiTGVub3ZvXCJdLFtmLEVdXSxbLyg/Om1hZW1vfG5va2lhKS4qKG45MDB8bHVtaWEgXFxkKykvaSwvbm9raWFbLV8gXT8oWy1cXHdcXC5dKikvaV0sW1tkLC9fL2csXCIgXCJdLFtoLFwiTm9raWFcIl0sW2YsX11dLFsvKHBpeGVsIGMpXFxiL2ldLFtkLFtoLE5dLFtmLEVdXSxbL2Ryb2lkLis7IChwaXhlbFtcXGRheGwgXXswLDZ9KSg/OiBidWl8XFwpKS9pXSxbZCxbaCxOXSxbZixfXV0sWy9kcm9pZC4rIChhP1xcZFswLTJdezJ9c298W2MtZ11cXGR7NH18c29bLWdsXVxcdyt8eHEtYVxcd1s0LTddWzEyXSkoPz0gYnVpfFxcKS4rY2hyb21lXFwvKD8hWzEtNl17MCwxfVxcZFxcLikpL2ldLFtkLFtoLERdLFtmLF9dXSxbL3NvbnkgdGFibGV0IFtwc10vaSwvXFxiKD86c29ueSk/c2dwXFx3Kyg/OiBidWl8XFwpKS9pXSxbW2QsXCJYcGVyaWEgVGFibGV0XCJdLFtoLERdLFtmLEVdXSxbLyAoa2IyMDA1fGluMjBbMTJdNXxiZTIwWzEyXVs1OV0pXFxiL2ksLyg/Om9uZSk/KD86cGx1cyk/IChhXFxkMFxcZFxcZCkoPzogYnxcXCkpL2ldLFtkLFtoLFwiT25lUGx1c1wiXSxbZixfXV0sWy8oYWxleGEpd2VibS9pLC8oa2ZbYS16XXsyfXdpfGFlb1tjLXJdezJ9KSggYnVpfFxcKSkvaSwvKGtmW2Etel0rKSggYnVpfFxcKSkuK3NpbGtcXC8vaV0sW2QsW2gsVF0sW2YsRV1dLFsvKCg/OnNkfGtmKVswMzQ5aGlqb3JzdHV3XSspKCBidWl8XFwpKS4rc2lsa1xcLy9pXSxbW2QsLyguKykvZyxcIkZpcmUgUGhvbmUgJDFcIl0sW2gsVF0sW2YsX11dLFsvKHBsYXlib29rKTtbLVxcd1xcKSw7IF0rKHJpbSkvaV0sW2QsaCxbZixFXV0sWy9cXGIoKD86YmJbYS1mXXxzdFtodl0pMTAwLVxcZCkvaSwvXFwoYmIxMDsgKFxcdyspL2ldLFtkLFtoLEFdLFtmLF9dXSxbLyg/OlxcYnxhc3VzXykodHJhbnNmb1twcmltZSBdezQsMTB9IFxcdyt8ZWVlcGN8c2xpZGVyIFxcdyt8bmV4dXMgN3xwYWRmb25lfHAwMFtjal0pL2ldLFtkLFtoLE9dLFtmLEVdXSxbLyAoeltiZXNdNlswMjddWzAxMl1ba21dW2xzXXx6ZW5mb25lIFxcZFxcdz8pXFxiL2ldLFtkLFtoLE9dLFtmLF9dXSxbLyhuZXh1cyA5KS9pXSxbZCxbaCxcIkhUQ1wiXSxbZixFXV0sWy8oaHRjKVstO18gXXsxLDJ9KFtcXHcgXSsoPz1cXCl8IGJ1aSl8XFx3KykvaSwvKHp0ZSlbLSBdKFtcXHcgXSs/KSg/OiBidWl8XFwvfFxcKSkvaSwvKGFsY2F0ZWx8Z2Vla3NwaG9uZXxuZXhpYW58cGFuYXNvbmljKD8hKD86O3xcXC4pKXxzb255KD8hLWJyYSkpWy1fIF0/KFstXFx3XSopL2ldLFtoLFtkLC9fL2csXCIgXCJdLFtmLF9dXSxbL2Ryb2lkLis7IChbYWJdWzEtN10tP1swMTc4YV1cXGRcXGQ/KS9pXSxbZCxbaCxcIkFjZXJcIl0sW2YsRV1dLFsvZHJvaWQuKzsgKG1bMS01XSBub3RlKSBidWkvaSwvXFxibXotKFstXFx3XXsyLH0pL2ldLFtkLFtoLFwiTWVpenVcIl0sW2YsX11dLFsvKGJsYWNrYmVycnl8YmVucXxwYWxtKD89XFwtKXxzb255ZXJpY3Nzb258YWNlcnxhc3VzfGRlbGx8bWVpenV8bW90b3JvbGF8cG9seXRyb24pWy1fIF0/KFstXFx3XSopL2ksLyhocCkgKFtcXHcgXStcXHcpL2ksLyhhc3VzKS0/KFxcdyspL2ksLyhtaWNyb3NvZnQpOyAobHVtaWFbXFx3IF0rKS9pLC8obGVub3ZvKVstXyBdPyhbLVxcd10rKS9pLC8oam9sbGEpL2ksLyhvcHBvKSA/KFtcXHcgXSspIGJ1aS9pXSxbaCxkLFtmLF9dXSxbLyhrb2JvKVxccyhlcmVhZGVyfHRvdWNoKS9pLC8oYXJjaG9zKSAoZ2FtZXBhZDI/KS9pLC8oaHApLisodG91Y2hwYWQoPyEuK3RhYmxldCl8dGFibGV0KS9pLC8oa2luZGxlKVxcLyhbXFx3XFwuXSspL2ksLyhub29rKVtcXHcgXStidWlsZFxcLyhcXHcrKS9pLC8oZGVsbCkgKHN0cmVhW2twclxcZCBdKltcXGRrb10pL2ksLyhsZVstIF0rcGFuKVstIF0rKFxcd3sxLDl9KSBidWkvaSwvKHRyaW5pdHkpWy0gXSoodFxcZHszfSkgYnVpL2ksLyhnaWdhc2V0KVstIF0rKHFcXHd7MSw5fSkgYnVpL2ksLyh2b2RhZm9uZSkgKFtcXHcgXSspKD86XFwpfCBidWkpL2ldLFtoLGQsW2YsRV1dLFsvKHN1cmZhY2UgZHVvKS9pXSxbZCxbaCxSXSxbZixFXV0sWy9kcm9pZCBbXFxkXFwuXSs7IChmcFxcZHU/KSg/OiBifFxcKSkvaV0sW2QsW2gsXCJGYWlycGhvbmVcIl0sW2YsX11dLFsvKHUzMDRhYSkvaV0sW2QsW2gsXCJBVCZUXCJdLFtmLF9dXSxbL1xcYnNpZS0oXFx3KikvaV0sW2QsW2gsXCJTaWVtZW5zXCJdLFtmLF9dXSxbL1xcYihyY3RcXHcrKSBiL2ldLFtkLFtoLFwiUkNBXCJdLFtmLEVdXSxbL1xcYih2ZW51ZVtcXGQgXXsyLDd9KSBiL2ldLFtkLFtoLFwiRGVsbFwiXSxbZixFXV0sWy9cXGIocSg/Om12fHRhKVxcdyspIGIvaV0sW2QsW2gsXCJWZXJpem9uXCJdLFtmLEVdXSxbL1xcYig/OmJhcm5lc1smIF0rbm9ibGUgfGJuW3J0XSkoW1xcd1xcKyBdKikgYi9pXSxbZCxbaCxcIkJhcm5lcyAmIE5vYmxlXCJdLFtmLEVdXSxbL1xcYih0bVxcZHszfVxcdyspIGIvaV0sW2QsW2gsXCJOdVZpc2lvblwiXSxbZixFXV0sWy9cXGIoazg4KSBiL2ldLFtkLFtoLFwiWlRFXCJdLFtmLEVdXSxbL1xcYihueFxcZHszfWopIGIvaV0sW2QsW2gsXCJaVEVcIl0sW2YsX11dLFsvXFxiKGdlblxcZHszfSkgYi4rNDloL2ldLFtkLFtoLFwiU3dpc3NcIl0sW2YsX11dLFsvXFxiKHp1clxcZHszfSkgYi9pXSxbZCxbaCxcIlN3aXNzXCJdLFtmLEVdXSxbL1xcYigoemVraSk/dGIuKlxcYikgYi9pXSxbZCxbaCxcIlpla2lcIl0sW2YsRV1dLFsvXFxiKFt5cl1cXGR7Mn0pIGIvaSwvXFxiKGRyYWdvblstIF0rdG91Y2ggfGR0KShcXHd7NX0pIGIvaV0sW1toLFwiRHJhZ29uIFRvdWNoXCJdLGQsW2YsRV1dLFsvXFxiKG5zLT9cXHd7MCw5fSkgYi9pXSxbZCxbaCxcIkluc2lnbmlhXCJdLFtmLEVdXSxbL1xcYigobnhhfG5leHQpLT9cXHd7MCw5fSkgYi9pXSxbZCxbaCxcIk5leHRCb29rXCJdLFtmLEVdXSxbL1xcYih4dHJlbWVcXF8pPyh2KDFbMDQ1XXwyWzAxNV18WzM0NjldMHw3WzA1XSkpIGIvaV0sW1toLFwiVm9pY2VcIl0sZCxbZixfXV0sWy9cXGIobHZ0ZWxcXC0pPyh2MVsxMl0pIGIvaV0sW1toLFwiTHZUZWxcIl0sZCxbZixfXV0sWy9cXGIocGgtMSkgL2ldLFtkLFtoLFwiRXNzZW50aWFsXCJdLFtmLF9dXSxbL1xcYih2KDEwMG1kfDcwMG5hfDcwMTF8OTE3ZykuKlxcYikgYi9pXSxbZCxbaCxcIkVudml6ZW5cIl0sW2YsRV1dLFsvXFxiKHRyaW9bLVxcd1xcLiBdKykgYi9pXSxbZCxbaCxcIk1hY2hTcGVlZFwiXSxbZixFXV0sWy9cXGJ0dV8oMTQ5MSkgYi9pXSxbZCxbaCxcIlJvdG9yXCJdLFtmLEVdXSxbLyhzaGllbGRbXFx3IF0rKSBiL2ldLFtkLFtoLFwiTnZpZGlhXCJdLFtmLEVdXSxbLyhzcHJpbnQpIChcXHcrKS9pXSxbaCxkLFtmLF9dXSxbLyhraW5cXC5bb25ldHddezN9KS9pXSxbW2QsL1xcLi9nLFwiIFwiXSxbaCxSXSxbZixfXV0sWy9kcm9pZC4rOyAoY2M2NjY2P3xldDVbMTZdfG1jWzIzOV1bMjNdeD98dmM4WzAzXXg/KVxcKS9pXSxbZCxbaCx4XSxbZixFXV0sWy9kcm9pZC4rOyAoZWMzMHxwczIwfHRjWzItOF1cXGRba3hdKVxcKS9pXSxbZCxbaCx4XSxbZixfXV0sWy9zbWFydC10di4rKHNhbXN1bmcpL2ldLFtoLFtmLGJdXSxbL2hiYnR2LittYXBsZTsoXFxkKykvaV0sW1tkLC9eLyxcIlNtYXJ0VFZcIl0sW2gsQl0sW2YsYl1dLFsvKG51eDsgbmV0Y2FzdC4rc21hcnR0dnxsZyAobmV0Y2FzdFxcLnR2LTIwMVxcZHxhbmRyb2lkIHR2KSkvaV0sW1toLFBdLFtmLGJdXSxbLyhhcHBsZSkgP3R2L2ldLFtoLFtkLFwiQXBwbGUgVFZcIl0sW2YsYl1dLFsvY3JrZXkvaV0sW1tkLFwiQ2hyb21lY2FzdFwiXSxbaCxOXSxbZixiXV0sWy9kcm9pZC4rYWZ0KFxcdykoIGJ1aXxcXCkpL2ldLFtkLFtoLFRdLFtmLGJdXSxbL1xcKGR0dltcXCk7XS4rKGFxdW9zKS9pLC8oYXF1b3MtdHZbXFx3IF0rKVxcKS9pXSxbZCxbaCxNXSxbZixiXV0sWy8oYnJhdmlhW1xcdyBdKykoIGJ1aXxcXCkpL2ldLFtkLFtoLERdLFtmLGJdXSxbLyhtaXR2LVxcd3s1fSkgYnVpL2ldLFtkLFtoLGpdLFtmLGJdXSxbL0hiYnR2LioodGVjaG5pc2F0KSAoLiopOy9pXSxbaCxkLFtmLGJdXSxbL1xcYihyb2t1KVtcXGR4XSpbXFwpXFwvXSgoPzpkdnAtKT9bXFxkXFwuXSopL2ksL2hiYnR2XFwvXFxkK1xcLlxcZCtcXC5cXGQrICtcXChbXFx3XFwrIF0qOyAqKFtcXHdcXGRdW147XSopOyhbXjtdKikvaV0sW1toLHpdLFtkLHpdLFtmLGJdXSxbL1xcYihhbmRyb2lkIHR2fHNtYXJ0Wy0gXT90dnxvcGVyYSB0dnx0djsgcnY6KVxcYi9pXSxbW2YsYl1dLFsvKG91eWEpL2ksLyhuaW50ZW5kbykgKFt3aWRzM3V0Y2hdKykvaV0sW2gsZCxbZix2XV0sWy9kcm9pZC4rOyAoc2hpZWxkKSBidWkvaV0sW2QsW2gsXCJOdmlkaWFcIl0sW2Ysdl1dLFsvKHBsYXlzdGF0aW9uIFszNDVwb3J0YWJsZXZpXSspL2ldLFtkLFtoLERdLFtmLHZdXSxbL1xcYih4Ym94KD86IG9uZSk/KD8hOyB4Ym94KSlbXFwpOyBdL2ldLFtkLFtoLFJdLFtmLHZdXSxbLygocGViYmxlKSlhcHAvaV0sW2gsZCxbZixTXV0sWy8od2F0Y2gpKD86ID9vc1ssXFwvXXxcXGQsXFxkXFwvKVtcXGRcXC5dKy9pXSxbZCxbaCxJXSxbZixTXV0sWy9kcm9pZC4rOyAoZ2xhc3MpIFxcZC9pXSxbZCxbaCxOXSxbZixTXV0sWy9kcm9pZC4rOyAod3Q2Mz8wezIsM30pXFwpL2ldLFtkLFtoLHhdLFtmLFNdXSxbLyhxdWVzdCggMnwgcHJvKT8pL2ldLFtkLFtoLFVdLFtmLFNdXSxbLyh0ZXNsYSkoPzogcXRjYXJicm93c2VyfFxcL1stXFx3XFwuXSspL2ldLFtoLFtmLHldXSxbLyhhZW9iYylcXGIvaV0sW2QsW2gsVF0sW2YseV1dLFsvZHJvaWQgLis/OyAoW147XSs/KSg/OiBidWl8XFwpIGFwcGxldykuKz8gbW9iaWxlIHNhZmFyaS9pXSxbZCxbZixfXV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXxcXCkgYXBwbGV3KS4rPyg/ISBtb2JpbGUpIHNhZmFyaS9pXSxbZCxbZixFXV0sWy9cXGIoKHRhYmxldHx0YWIpWztcXC9dfGZvY3VzXFwvXFxkKD8hLittb2JpbGUpKS9pXSxbW2YsRV1dLFsvKHBob25lfG1vYmlsZSg/Ols7XFwvXXwgWyBcXHdcXC9cXC5dKnNhZmFyaSl8cGRhKD89Lit3aW5kb3dzIGNlKSkvaV0sW1tmLF9dXSxbLyhhbmRyb2lkWy1cXHdcXC4gXXswLDl9KTsuK2J1aWwvaV0sW2QsW2gsXCJHZW5lcmljXCJdXV0sZW5naW5lOltbL3dpbmRvd3MuKyBlZGdlXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJFZGdlSFRNTFwiXV0sWy93ZWJraXRcXC81MzdcXC4zNi4rY2hyb21lXFwvKD8hMjcpKFtcXHdcXC5dKykvaV0sW2csW3AsXCJCbGlua1wiXV0sWy8ocHJlc3RvKVxcLyhbXFx3XFwuXSspL2ksLyh3ZWJraXR8dHJpZGVudHxuZXRmcm9udHxuZXRzdXJmfGFtYXlhfGx5bnh8dzNtfGdvYW5uYSlcXC8oW1xcd1xcLl0rKS9pLC9la2lvaChmbG93KVxcLyhbXFx3XFwuXSspL2ksLyhraHRtbHx0YXNtYW58bGlua3MpW1xcLyBdXFwoPyhbXFx3XFwuXSspL2ksLyhpY2FiKVtcXC8gXShbMjNdXFwuW1xcZFxcLl0rKS9pLC9cXGIobGlid2ViKS9pXSxbcCxnXSxbL3J2XFw6KFtcXHdcXC5dezEsOX0pXFxiLisoZ2Vja28pL2ldLFtnLHBdXSxvczpbWy9taWNyb3NvZnQgKHdpbmRvd3MpICh2aXN0YXx4cCkvaV0sW3AsZ10sWy8od2luZG93cykgbnQgNlxcLjI7IChhcm0pL2ksLyh3aW5kb3dzICg/OnBob25lKD86IG9zKT98bW9iaWxlKSlbXFwvIF0/KFtcXGRcXC5cXHcgXSopL2ksLyh3aW5kb3dzKVtcXC8gXT8oW250Y2VcXGRcXC4gXStcXHcpKD8hLit4Ym94KS9pXSxbcCxbZyxZLHFdXSxbLyh3aW4oPz0zfDl8bil8d2luIDl4ICkoW250XFxkXFwuXSspL2ldLFtbcCxcIldpbmRvd3NcIl0sW2csWSxxXV0sWy9pcFtob25lYWRdezIsNH1cXGIoPzouKm9zIChbXFx3XSspIGxpa2UgbWFjfDsgb3BlcmEpL2ksL2lvcztmYnN2XFwvKFtcXGRcXC5dKykvaSwvY2ZuZXR3b3JrXFwvLitkYXJ3aW4vaV0sW1tnLC9fL2csXCIuXCJdLFtwLFwiaU9TXCJdXSxbLyhtYWMgb3MgeCkgPyhbXFx3XFwuIF0qKS9pLC8obWFjaW50b3NofG1hY19wb3dlcnBjXFxiKSg/IS4raGFpa3UpL2ldLFtbcCxIXSxbZywvXy9nLFwiLlwiXV0sWy9kcm9pZCAoW1xcd1xcLl0rKVxcYi4rKGFuZHJvaWRbLSBdeDg2fGhhcm1vbnlvcykvaV0sW2cscF0sWy8oYW5kcm9pZHx3ZWJvc3xxbnh8YmFkYXxyaW0gdGFibGV0IG9zfG1hZW1vfG1lZWdvfHNhaWxmaXNoKVstXFwvIF0/KFtcXHdcXC5dKikvaSwvKGJsYWNrYmVycnkpXFx3KlxcLyhbXFx3XFwuXSopL2ksLyh0aXplbnxrYWlvcylbXFwvIF0oW1xcd1xcLl0rKS9pLC9cXCgoc2VyaWVzNDApOy9pXSxbcCxnXSxbL1xcKGJiKDEwKTsvaV0sW2csW3AsQV1dLFsvKD86c3ltYmlhbiA/b3N8c3ltYm9zfHM2MCg/PTspfHNlcmllczYwKVstXFwvIF0/KFtcXHdcXC5dKikvaV0sW2csW3AsXCJTeW1iaWFuXCJdXSxbL21vemlsbGFcXC9bXFxkXFwuXSsgXFwoKD86bW9iaWxlfHRhYmxldHx0dnxtb2JpbGU7IFtcXHcgXSspOyBydjouKyBnZWNrb1xcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiRmlyZWZveCBPU1wiXV0sWy93ZWIwczsuK3J0KHR2KS9pLC9cXGIoPzpocCk/d29zKD86YnJvd3Nlcik/XFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJ3ZWJPU1wiXV0sWy93YXRjaCg/OiA/b3NbLFxcL118XFxkLFxcZFxcLykoW1xcZFxcLl0rKS9pXSxbZyxbcCxcIndhdGNoT1NcIl1dLFsvY3JrZXlcXC8oW1xcZFxcLl0rKS9pXSxbZyxbcCxcIkNocm9tZWNhc3RcIl1dLFsvKGNyb3MpIFtcXHddKyg/OlxcKXwgKFtcXHdcXC5dKylcXGIpL2ldLFtbcCxGXSxnXSxbL3BhbmFzb25pYzsodmllcmEpL2ksLyhuZXRyYW5nZSltbWgvaSwvKG5ldHR2KVxcLyhcXGQrXFwuW1xcd1xcLl0rKS9pLC8obmludGVuZG98cGxheXN0YXRpb24pIChbd2lkczM0NXBvcnRhYmxldnVjaF0rKS9pLC8oeGJveCk7ICt4Ym94IChbXlxcKTtdKykvaSwvXFxiKGpvbGl8cGFsbSlcXGIgPyg/Om9zKT9cXC8/KFtcXHdcXC5dKikvaSwvKG1pbnQpW1xcL1xcKFxcKSBdPyhcXHcqKS9pLC8obWFnZWlhfHZlY3RvcmxpbnV4KVs7IF0vaSwvKFtreGxuXT91YnVudHV8ZGViaWFufHN1c2V8b3BlbnN1c2V8Z2VudG9vfGFyY2goPz0gbGludXgpfHNsYWNrd2FyZXxmZWRvcmF8bWFuZHJpdmF8Y2VudG9zfHBjbGludXhvc3xyZWQgP2hhdHx6ZW53YWxrfGxpbnB1c3xyYXNwYmlhbnxwbGFuIDl8bWluaXh8cmlzYyBvc3xjb250aWtpfGRlZXBpbnxtYW5qYXJvfGVsZW1lbnRhcnkgb3N8c2FiYXlvbnxsaW5zcGlyZSkoPzogZ251XFwvbGludXgpPyg/OiBlbnRlcnByaXNlKT8oPzpbLSBdbGludXgpPyg/Oi1nbnUpP1stXFwvIF0/KD8hY2hyb218cGFja2FnZSkoWy1cXHdcXC5dKikvaSwvKGh1cmR8bGludXgpID8oW1xcd1xcLl0qKS9pLC8oZ251KSA/KFtcXHdcXC5dKikvaSwvXFxiKFstZnJlbnRvcGNnaHNdezAsNX1ic2R8ZHJhZ29uZmx5KVtcXC8gXT8oPyFhbWR8W2l4MzQ2XXsxLDJ9ODYpKFtcXHdcXC5dKikvaSwvKGhhaWt1KSAoXFx3KykvaV0sW3AsZ10sWy8oc3Vub3MpID8oW1xcd1xcLlxcZF0qKS9pXSxbW3AsXCJTb2xhcmlzXCJdLGddLFsvKCg/Om9wZW4pP3NvbGFyaXMpWy1cXC8gXT8oW1xcd1xcLl0qKS9pLC8oYWl4KSAoKFxcZCkoPz1cXC58XFwpfCApW1xcd1xcLl0pKi9pLC9cXGIoYmVvc3xvc1xcLzJ8YW1pZ2Fvc3xtb3JwaG9zfG9wZW52bXN8ZnVjaHNpYXxocC11eHxzZXJlbml0eW9zKS9pLC8odW5peCkgPyhbXFx3XFwuXSopL2ldLFtwLGddXX0sSj1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiBlPT09YyYmKHQ9ZSxlPW8pLCEodGhpcyBpbnN0YW5jZW9mIEopKXJldHVybiBuZXcgSihlLHQpLmdldFJlc3VsdCgpO3ZhciBuPXR5cGVvZiBpIT09cyYmaS5uYXZpZ2F0b3I/aS5uYXZpZ2F0b3I6byxyPWV8fChuJiZuLnVzZXJBZ2VudD9uLnVzZXJBZ2VudDpcIlwiKSxsPW4mJm4udXNlckFnZW50RGF0YT9uLnVzZXJBZ2VudERhdGE6byxkPXQ/ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSl0W3JdJiZ0W3JdLmxlbmd0aCUyPT09MD9uW3JdPXRbcl0uY29uY2F0KGVbcl0pOm5bcl09ZVtyXTtyZXR1cm4gbn0oWix0KTpaLHA9biYmbi51c2VyQWdlbnQ9PXI7cmV0dXJuIHRoaXMuZ2V0QnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBlLHQ9e307cmV0dXJuIHQubmFtZT1vLHQudmVyc2lvbj1vLEsuY2FsbCh0LHIsZC5icm93c2VyKSx0Lm1ham9yPXR5cGVvZihlPXQudmVyc2lvbik9PT11P2UucmVwbGFjZSgvW15cXGRcXC5dL2csXCJcIikuc3BsaXQoXCIuXCIpWzBdOm8scCYmbiYmbi5icmF2ZSYmdHlwZW9mIG4uYnJhdmUuaXNCcmF2ZT09YSYmKHQubmFtZT1cIkJyYXZlXCIpLHR9LHRoaXMuZ2V0Q1BVPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGUuYXJjaGl0ZWN0dXJlPW8sSy5jYWxsKGUscixkLmNwdSksZX0sdGhpcy5nZXREZXZpY2U9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS52ZW5kb3I9byxlLm1vZGVsPW8sZS50eXBlPW8sSy5jYWxsKGUscixkLmRldmljZSkscCYmIWUudHlwZSYmbCYmbC5tb2JpbGUmJihlLnR5cGU9XykscCYmXCJNYWNpbnRvc2hcIj09ZS5tb2RlbCYmbiYmdHlwZW9mIG4uc3RhbmRhbG9uZSE9PXMmJm4ubWF4VG91Y2hQb2ludHMmJm4ubWF4VG91Y2hQb2ludHM+MiYmKGUubW9kZWw9XCJpUGFkXCIsZS50eXBlPUUpLGV9LHRoaXMuZ2V0RW5naW5lPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGUubmFtZT1vLGUudmVyc2lvbj1vLEsuY2FsbChlLHIsZC5lbmdpbmUpLGV9LHRoaXMuZ2V0T1M9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS5uYW1lPW8sZS52ZXJzaW9uPW8sSy5jYWxsKGUscixkLm9zKSxwJiYhZS5uYW1lJiZsJiZcIlVua25vd25cIiE9bC5wbGF0Zm9ybSYmKGUubmFtZT1sLnBsYXRmb3JtLnJlcGxhY2UoL2Nocm9tZSBvcy9pLEYpLnJlcGxhY2UoL21hY29zL2ksSCkpLGV9LHRoaXMuZ2V0UmVzdWx0PWZ1bmN0aW9uKCl7cmV0dXJue3VhOnRoaXMuZ2V0VUEoKSxicm93c2VyOnRoaXMuZ2V0QnJvd3NlcigpLGVuZ2luZTp0aGlzLmdldEVuZ2luZSgpLG9zOnRoaXMuZ2V0T1MoKSxkZXZpY2U6dGhpcy5nZXREZXZpY2UoKSxjcHU6dGhpcy5nZXRDUFUoKX19LHRoaXMuZ2V0VUE9ZnVuY3Rpb24oKXtyZXR1cm4gcn0sdGhpcy5zZXRVQT1mdW5jdGlvbihlKXtyZXR1cm4gcj10eXBlb2YgZT09PXUmJmUubGVuZ3RoPjM1MD96KGUsMzUwKTplLHRoaXN9LHRoaXMuc2V0VUEociksdGhpc307Si5WRVJTSU9OPVwiMS4wLjM1XCIsSi5CUk9XU0VSPUcoW3AsZyxsXSksSi5DUFU9RyhbbV0pLEouREVWSUNFPUcoW2QsaCxmLHYsXyxiLEUsUyx5XSksSi5FTkdJTkU9Si5PUz1HKFtwLGddKSx0eXBlb2YgdCE9PXM/KGUuZXhwb3J0cyYmKHQ9ZS5leHBvcnRzPUopLHQuVUFQYXJzZXI9Sik6bi5hbWRPPyhyPWZ1bmN0aW9uKCl7cmV0dXJuIEp9LmNhbGwodCxuLHQsZSkpPT09b3x8KGUuZXhwb3J0cz1yKTp0eXBlb2YgaSE9PXMmJihpLlVBUGFyc2VyPUopO3ZhciBYPXR5cGVvZiBpIT09cyYmKGkualF1ZXJ5fHxpLlplcHRvKTtpZihYJiYhWC51YSl7dmFyIFE9bmV3IEo7WC51YT1RLmdldFJlc3VsdCgpLFgudWEuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIFEuZ2V0VUEoKX0sWC51YS5zZXQ9ZnVuY3Rpb24oZSl7US5zZXRVQShlKTt2YXIgdD1RLmdldFJlc3VsdCgpO2Zvcih2YXIgbiBpbiB0KVgudWFbbl09dFtuXX19fShcIm9iamVjdFwiPT09dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyl9LDY1OTYxOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlcG9ydFdlYkFjdGlvbj12b2lkIDA7Y29uc3QgaT1uKDM1ODUzKSxvPW4oODQ3OTkpLGE9bigyMjc4OCkscz1yKG4oNDQ4NTgpKSxjPW4oOTg4MjUpLHU9bigzMDY3MiksbD0oKT0+e2lmKCgwLHUuaXNSdW5uaW5nT25TZXJ2ZXIpKCkpcmV0dXJue3V0bUNhbXBhaWduOlwiXCIsdXRtQ29udGVudDpcIlwiLHV0bU1lZGl1bTpcIlwiLHV0bVNvdXJjZTpcIlwiLHV0bVRlcm06XCJcIn07Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO3JldHVybnt1dG1DYW1wYWlnbjplLmdldChcInV0bV9jYW1wYWlnblwiKXx8XCJcIix1dG1Db250ZW50OmUuZ2V0KFwidXRtX2NvbnRlbnRcIil8fFwiXCIsdXRtTWVkaXVtOmUuZ2V0KFwidXRtX21lZGl1bVwiKXx8XCJcIix1dG1Tb3VyY2U6ZS5nZXQoXCJ1dG1fc291cmNlXCIpfHxcIlwiLHV0bVRlcm06ZS5nZXQoXCJ1dG1fdGVybVwiKXx8XCJcIn19O3QucmVwb3J0V2ViQWN0aW9uPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZnVuY3Rpb24oe3BhZ2VUeXBlOmUsYWN0aW9uTmFtZTp0LGRlZXBMaW5rVXJsOm49XCJcIixkZXN0aW5hdGlvbjpyPVwiXCIsYWN0aW9uU291cmNlOm89XCJcIix3ZWJDbGllbnRJZDpkfSl7cmV0dXJuIGQ/KHMuZGVmYXVsdC5pc1JlYWR5KCkmJnMuZGVmYXVsdC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOmBCbGl6emFyZEV2ZW50cy5XZWJBY3Rpb24uU3VjY2Vzcy4ke2EuUGFnZVR5cGVbZV19LiR7dH1gLHZhbHVlOjF9KSx7d2ViU2VydmVyRXZlbnRCYXNlOigwLGkuZXh0cmFjdFdlYlNlcnZlckV2ZW50QmFzZSkoZSxkKSxhY3Rpb25OYW1lOnQsZGVlcExpbmtVcmw6bixkZXN0aW5hdGlvbjpyLGFjdGlvblNvdXJjZTpvLC4uLmwoKX0pOigoMCx1LmlzUnVubmluZ09uRGV2RW52KSgpJiZjb25zb2xlLmVycm9yKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYkFjdGlvbiBldmVudFwiKSxzLmRlZmF1bHQuaXNSZWFkeSgpJiZzLmRlZmF1bHQuaW5jcmVtZW50KHttZXRyaWNzTmFtZTpgQmxpenphcmRFdmVudHMuV2ViQWN0aW9uLk1pc3NpbmdQYXJhbXMuJHthLlBhZ2VUeXBlW2VdfS4ke3R9YCx2YWx1ZToxfSksdm9pZCgwLGMubG9nU2VudHJ5RXJyb3IpKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYkFjdGlvbiBCbGl6emFyZCBFdmVudFwiKSl9KGUpO3QmJigwLG8ucmVwb3J0U2VydmVyRXZlbnQpKFwiL3dlYi1hY3Rpb25cIix0KX19LDY3Njg4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlcG9ydFdlYlBhZ2VTaGFyZT12b2lkIDA7Y29uc3QgaT1uKDM1ODUzKSxvPW4oODQ3OTkpLGE9bigyMjc4OCkscz1yKG4oNDQ4NTgpKSxjPW4oOTg4MjUpLHU9bigzMDY3Mik7dC5yZXBvcnRXZWJQYWdlU2hhcmU9ZnVuY3Rpb24oZSl7Y29uc3QgdD1mdW5jdGlvbih7c2Vzc2lvblRpbWVTZWM6ZSxzaGFyZVNvdXJjZTp0LHdlYkRlc3RpbmF0aW9uc0F2YWlsYWJsZTpuLHdlYkRlc3RpbmF0aW9uc1NlZW46cixkZXN0aW5hdGlvblNlbGVjdGVkOm8sc2hhcmVTdGF0dXM6bCxkZWVwTGlua1VybDpkPVwiXCIsd2ViUGFnZVVybDpwPVwiXCIscGFnZVR5cGU6Zix3ZWJDbGllbnRJZDpoPVwiXCJ9KXtyZXR1cm4gaD97d2ViU2VydmVyRXZlbnRCYXNlOigwLGkuZXh0cmFjdFdlYlNlcnZlckV2ZW50QmFzZSkoZixoKSxzZXNzaW9uVGltZVNlYzplLnRvU3RyaW5nKCksc2hhcmVTb3VyY2U6dCx3ZWJEZXN0aW5hdGlvbnNBdmFpbGFibGU6bix3ZWJEZXN0aW5hdGlvbnNTZWVuOnIsZGVzdGluYXRpb25TZWxlY3RlZDpvLHNoYXJlU3RhdHVzOmwsZGVlcExpbmtVcmw6ZCx3ZWJQYWdlVXJsOnB9OigoMCx1LmlzUnVubmluZ09uRGV2RW52KSgpJiZjb25zb2xlLmVycm9yKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYlBhZ2VTaGFyZSBldmVudFwiKSxzLmRlZmF1bHQuaXNSZWFkeSgpJiZzLmRlZmF1bHQuaW5jcmVtZW50KHttZXRyaWNzTmFtZTpgQmxpenphcmRFdmVudHMuV2ViUGFnZVNoYXJlLk1pc3NpbmdQYXJhbXMuJHthLlBhZ2VUeXBlW2ZdfWAsdmFsdWU6MX0pLHZvaWQoMCxjLmxvZ1NlbnRyeUVycm9yKShcIk1pc3NpbmcgcGFyYW1zIGZvciBXZWJQYWdlU2hhcmUgQmxpenphcmQgRXZlbnRcIikpfShlKTt0JiYoMCxvLnJlcG9ydFNlcnZlckV2ZW50KShcIi93ZWItcGFnZS1zaGFyZVwiLHQpfX0sODQ5Mzk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucmVwb3J0V2ViUGFnZVZpZXc9dC5nZXRNaXNzaW5nUHJvcGVydGllcz10LkJMSVpaQVJEX0lEPXZvaWQgMDtjb25zdCBpPW4oMzU4NTMpLG89big4NDc5OSksYT1uKDIyNzg4KSxzPW4oOTg4MjUpLGM9cihuKDQ0ODU4KSksdT1uKDMwNjcyKSxsPW4oNjczNjEpO3QuQkxJWlpBUkRfSUQ9e1RSQUNFSUQ6XCJ0cmFjZWlkXCIsV0VCQ0xJRU5USUQ6XCJ3ZWJjbGllbnRpZFwiLEVNUFRZOlwiXCJ9O3QuZ2V0TWlzc2luZ1Byb3BlcnRpZXM9KGUsbik9PntsZXQgcj10LkJMSVpaQVJEX0lELkVNUFRZO3JldHVybiBufHwocj10LkJMSVpaQVJEX0lELlRSQUNFSUQpLGV8fChyKz1cIlwiPT09cj90LkJMSVpaQVJEX0lELldFQkNMSUVOVElEOlwiX1wiK3QuQkxJWlpBUkRfSUQuV0VCQ0xJRU5USUQpLHJ9LHQucmVwb3J0V2ViUGFnZVZpZXc9ZnVuY3Rpb24oZSl7Y29uc3Qgbj1mdW5jdGlvbih7d2ViQ2xpZW50SWQ6ZSx0cmFjZUlkOm4scGFnZVR5cGU6cn0pe2lmKGUmJm4pcmV0dXJue3dlYlNlcnZlckV2ZW50QmFzZTooMCxpLmV4dHJhY3RXZWJTZXJ2ZXJFdmVudEJhc2UpKHIsZSksdHJhY2VJZDpuLGVuY3J5cHRlZElwQWRkcmVzczpcIlwiLHV0bUNhbXBhaWduOlwiXCIsdXRtQ29udGVudDpcIlwiLHV0bU1lZGl1bTpcIlwiLHV0bVNvdXJjZTpcIlwiLHV0bVRlcm06XCJcIixoYXNOb25jZUNvb2tpZVNldDooMCxsLmhhc05vbmNlQ29va2llU2V0KSgpfTtpZigoMCx1LmlzUnVubmluZ09uRGV2RW52KSgpJiZjb25zb2xlLmVycm9yKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYlBhZ2VWaWV3IGV2ZW50XCIpLGMuZGVmYXVsdC5pc1JlYWR5KCkpe2MuZGVmYXVsdC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOmBCbGl6emFyZEV2ZW50cy5XZWJQYWdlVmlldy5NaXNzaW5nUGFyYW1zLiR7YS5QYWdlVHlwZVtyXX1gLHZhbHVlOjF9KTtjb25zdCBpPSgwLHQuZ2V0TWlzc2luZ1Byb3BlcnRpZXMpKGUsbik7Yy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6XCJ3cHYubWlzc2luZ19wcm9wZXJ0eVwiLGRpbWVuc2lvbnM6e3BhZ2U6YS5QYWdlVHlwZVtyXSxtaXNzaW5nUHJvcGVydGllczppfX0pfSgwLHMubG9nU2VudHJ5RXJyb3IpKGBNaXNzaW5nIHBhcmFtcyBmb3IgV2ViUGFnZVZpZXcgQmxpenphcmQgRXZlbnQsIFdDSUQgJHtlfSwgVHJhY2VJRCAke259YCl9KGUpO24mJigwLG8ucmVwb3J0U2VydmVyRXZlbnQpKFwiL3dlYi1wYWdlLXZpZXdcIixuKX19LDM3MzI5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlcG9ydFdlYlNlc3Npb249dm9pZCAwO2NvbnN0IGk9bigzNTg1Myksbz1uKDg0Nzk5KSxhPW4oMjI3ODgpLHM9cihuKDQ0ODU4KSksYz1uKDk4ODI1KSx1PW4oMzA2NzIpO3QucmVwb3J0V2ViU2Vzc2lvbj1mdW5jdGlvbihlKXtjb25zdCB0PWZ1bmN0aW9uKHtwYWdlTG9hZFR0ZmI6ZT0wLHBhZ2VMb2FkRmNwOnQ9MCxwYWdlTG9hZENsczpuPTAscGFnZUxvYWRGaWQ6cj0wLHBhZ2VMb2FkTGNwOm89MCxwYWdlVHlwZTpsLHdlYkNsaWVudElkOmR9KXtyZXR1cm4gZD97d2ViU2VydmVyRXZlbnRCYXNlOigwLGkuZXh0cmFjdFdlYlNlcnZlckV2ZW50QmFzZSkobCxkKSxwYWdlTG9hZFR0ZmI6TWF0aC5yb3VuZChlKS50b1N0cmluZygpLHBhZ2VMb2FkRmNwOk1hdGgucm91bmQodCkudG9TdHJpbmcoKSxwYWdlTG9hZENsczpNYXRoLnJvdW5kKDFlMypuKS50b1N0cmluZygpLHBhZ2VMb2FkRmlkOk1hdGgucm91bmQocikudG9TdHJpbmcoKSxwYWdlTG9hZExjcDpNYXRoLnJvdW5kKG8pLnRvU3RyaW5nKCksc2Vzc2lvbkxlbmd0aFRpbWVyOk1hdGgucm91bmQocGVyZm9ybWFuY2Uubm93KCkpLnRvU3RyaW5nKCl9OigoMCx1LmlzUnVubmluZ09uRGV2RW52KSgpJiZjb25zb2xlLmVycm9yKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYlNlc3Npb24gZXZlbnRcIikscy5kZWZhdWx0LmlzUmVhZHkoKSYmcy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6YEJsaXp6YXJkRXZlbnRzLldlYlNlc3Npb24uTWlzc2luZ1BhcmFtcy4ke2EuUGFnZVR5cGVbbF19YCx2YWx1ZToxfSksdm9pZCgwLGMubG9nU2VudHJ5RXJyb3IpKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYlNlc3Npb24gQmxpenphcmQgRXZlbnRcIikpfShlKTt0JiYoMCxvLnJlcG9ydFNlcnZlckV2ZW50KShcIi93ZWItc2Vzc2lvblwiLHQpfX0sMzU4NTM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZXh0cmFjdFdlYlNlcnZlckV2ZW50QmFzZT12b2lkIDA7Y29uc3Qgcj1uKDY3MzYxKSxpPW4oMTMwMDQpLG89bigyMjc4OCk7dC5leHRyYWN0V2ViU2VydmVyRXZlbnRCYXNlPWZ1bmN0aW9uKGUsdD1cIlwiKXtjb25zdHtjYW5vbmljYWxVcmw6bixyZWZlcnJlcjphLGRldmljZVNjcmVlbldpZHRoOnMsZGV2aWNlU2NyZWVuSGVpZ2h0OmN9PSgwLGkuZXh0cmFjdEJyb3dzZXIpKCkse2Jyb3dzZXJOYW1lOnU9XCJcIixvczpsPVwiXCIsZGV2aWNlTWFudWZhY3R1cmVyOmQ9XCJcIixkZXZpY2VOYW1lOnA9XCJcIixkZXZpY2VUeXBlOmY9XCJcIn09KDAsaS5leHRyYWN0VUEpKCksaD0oMCxyLnRyeUdldEFjdGl2ZVNlc3Npb24pKCl8fFwiXCI7cmV0dXJue2Jyb3dzZXJOYW1lOnUsY2Fub25pY2FsVXJsOm4sZGV2aWNlTWFudWZhY3R1cmVyOmQsZGV2aWNlTmFtZTpwLGRldmljZVNjcmVlbkhlaWdodDpjLGRldmljZVNjcmVlbldpZHRoOnMsZGV2aWNlVHlwZTpmLGxvY2FsZTpcIlwiLG9zOmwscGFnZUlkOm8uUGFnZVR5cGVbZV0scXVlcnlQYXJhbWV0ZXJzOlwiXCIscmVmZXJyZXI6YSxzY1JlZmVycmVyOlwiXCIsc2Vzc2lvbklkOmgsc2hhcmVJZDpcIlwiLHNvdXJjZTpcIlwiLHdlYkNsaWVudElkOnR9fX0sODg5NDY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7aSYmIShcImdldFwiaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKXx8KGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX06ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9biksZVtyXT10W25dfSksaT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIj09PW58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfHxyKHQsZSxuKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5yZXBvcnRTZXJ2ZXJFdmVudD12b2lkIDA7dmFyIG89big4NDc5OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJyZXBvcnRTZXJ2ZXJFdmVudFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLnJlcG9ydFNlcnZlckV2ZW50fX0pLGkobigyMjc4OCksdCksaShuKDY1OTYxKSx0KSxpKG4oNjU5NjEpLHQpLGkobig2NzY4OCksdCksaShuKDg0OTM5KSx0KSxpKG4oMzczMjkpLHQpLGkobig5OTY1NyksdCl9LDg0Nzk5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlcG9ydFNlcnZlckV2ZW50PXZvaWQgMDtjb25zdCByPW4oMzA2NzIpLGk9bigyNzAwMik7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhlKS5maWx0ZXIoKChbZSx0XSk9Pm51bGwhPT10KSkpfShlKSl9dC5yZXBvcnRTZXJ2ZXJFdmVudD1mdW5jdGlvbihlLHQpe2lmKCgwLHIuaXNSdW5uaW5nT25EZXZFbnYpKCl8fCgwLHIuaXNTZWNwcm94eURvbWFpbikoKXx8KDAsci5pc1J1bm5pbmdPbkJTTG9jYWwpKCl8fCgwLHIuaXNSdW5uaW5nT25TdGFnaW5nKSgpKXJldHVybiB2b2lkIGNvbnNvbGUubG9nKFwiUmVwb3J0aW5nIEJsaXp6YXJkIEV2ZW50XCIsdCxlKTtjb25zdCBuPW8odCk7ZmV0Y2goYGh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tL3JlcG9ydC1tZXRyaWNzJHtlfWAse21ldGhvZDpcInBvc3RcIixib2R5Om4sY3JlZGVudGlhbHM6XCJpbmNsdWRlXCIsa2VlcGFsaXZlOiEwfSkuY2F0Y2goKGU9PntpLmxvZy5lcnJvcihlKX0pKX19LDk5NjU3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnVzZUdlbmVyYXRlV2ViUGFnZVZpZXdUcmFjZUlkPXQuZ2VuZXJhdGVUcmFjZUlkPXZvaWQgMDtjb25zdCByPW4oNjcyOTQpLGk9big0NjU3OCk7ZnVuY3Rpb24gbygpe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2Ygd2luZG93KXJldHVybigwLGkudjQpKCl9dC5nZW5lcmF0ZVRyYWNlSWQ9byx0LnVzZUdlbmVyYXRlV2ViUGFnZVZpZXdUcmFjZUlkPWZ1bmN0aW9uKCl7Y29uc3RbZSx0XT0oMCxyLnVzZVN0YXRlKShvKTtyZXR1cm57dHJhY2VJZDplLGdlbmVyYXRlTmV3VHJhY2VJZDooMCxyLnVzZUNhbGxiYWNrKSgoKCk9Pnt0KG8oKSl9KSxbXSl9fX0sMjI3ODg6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LldlYkFjdGlvbkRlc3RpbmF0aW9uPXQuV2ViQWN0aW9uU291cmNlPXQuV2ViQWN0aW9uTmFtZT10LkJsaXp6YXJkRXZlbnQ9dC5QYWdlVHlwZT12b2lkIDAsZnVuY3Rpb24oZSl7ZVtlLlVOU0VUPTBdPVwiVU5TRVRcIixlW2UuTk9UX0ZPVU5EPTFdPVwiTk9UX0ZPVU5EXCIsZVtlLk5PVF9BVkFJTEFCTEU9Ml09XCJOT1RfQVZBSUxBQkxFXCIsZVtlLlBSRU1JVU1fUFJPRklMRT0zXT1cIlBSRU1JVU1fUFJPRklMRVwiLGVbZS5QUkVNSVVNX1NUT1JZPTRdPVwiUFJFTUlVTV9TVE9SWVwiLGVbZS5QUkVNSVVNX1BSRVZJRVc9NV09XCJQUkVNSVVNX1BSRVZJRVdcIixlW2UuTEVOU19QUk9GSUxFPTZdPVwiTEVOU19QUk9GSUxFXCIsZVtlLkxFTlNfUFJFVklFVz03XT1cIkxFTlNfUFJFVklFV1wiLGVbZS5BRERfVVNFUj04XT1cIkFERF9VU0VSXCIsZVtlLlVTRVJfUFJPRklMRT05XT1cIlVTRVJfUFJPRklMRVwiLGVbZS5PVVJfU1RPUllfU05BUD0xMF09XCJPVVJfU1RPUllfU05BUFwiLGVbZS5TUE9UTElHSFQ9MTFdPVwiU1BPVExJR0hUXCIsZVtlLkxFTlNfSE9NRV9QQUdFPTEyXT1cIkxFTlNfSE9NRV9QQUdFXCIsZVtlLkRJU0NPVkVSX0hPTUVfUEFHRT0xM109XCJESVNDT1ZFUl9IT01FX1BBR0VcIixlW2UuTUVESUFfU0hBUkU9MTRdPVwiTUVESUFfU0hBUkVcIixlW2UuTUFQPTE1XT1cIk1BUFwiLGVbZS5DSEFUPTE2XT1cIkNIQVRcIixlW2UuUFJJVkFURV9VU0VSX1BST0ZJTEU9MTddPVwiUFJJVkFURV9VU0VSX1BST0ZJTEVcIixlW2UuUFVCTElDX1VTRVJfUFJPRklMRT0xOF09XCJQVUJMSUNfVVNFUl9QUk9GSUxFXCIsZVtlLlNFQVJDSD0xOV09XCJTRUFSQ0hcIixlW2UuU05BUENIQVRfRE9UX0NPTT0yMF09XCJTTkFQQ0hBVF9ET1RfQ09NXCIsZVtlLlNJR05fSU49MjFdPVwiU0lHTl9JTlwiLGVbZS5TSUdOX1VQPTIyXT1cIlNJR05fVVBcIixlW2UuUEFTU1dPUkRfUkVTRVQ9MjNdPVwiUEFTU1dPUkRfUkVTRVRcIixlW2UuRE9XTkxPQURfTVlfREFUQT0yNF09XCJET1dOTE9BRF9NWV9EQVRBXCIsZVtlLlVOTE9DS19BQ0NPVU5UPTI1XT1cIlVOTE9DS19BQ0NPVU5UXCIsZVtlLldFQl9BQ0NPVU5UUz0yNl09XCJXRUJfQUNDT1VOVFNcIixlW2UuU05BUENIQVRfSE9NRV9QQUdFPTI3XT1cIlNOQVBDSEFUX0hPTUVfUEFHRVwiLGVbZS5ET1dOTE9BRF9QQUdFPTI4XT1cIkRPV05MT0FEX1BBR0VcIixlW2UuU0lHTklOX0FDQ09VTlRfSURFTlRJRklFUj0yOV09XCJTSUdOSU5fQUNDT1VOVF9JREVOVElGSUVSXCIsZVtlLlNJR05JTl9QQVNTV09SRF9DSEFMTEVOR0U9MzBdPVwiU0lHTklOX1BBU1NXT1JEX0NIQUxMRU5HRVwiLGVbZS5TSUdOSU5fT1RQX0NIQUxMRU5HRT0zMV09XCJTSUdOSU5fT1RQX0NIQUxMRU5HRVwiLGVbZS5TSUdOSU5fVEZBX0NIQUxMRU5HRT0zMl09XCJTSUdOSU5fVEZBX0NIQUxMRU5HRVwiLGVbZS5TSUdOSU5fVElWX0NIQUxMRU5HRT0zM109XCJTSUdOSU5fVElWX0NIQUxMRU5HRVwiLGVbZS5WT1RFPTM0XT1cIlZPVEVcIixlW2UuU05BUENIQVRfUExVU19TVUJTQ1JJUFRJT05fU0lHTlVQPTM1XT1cIlNOQVBDSEFUX1BMVVNfU1VCU0NSSVBUSU9OX1NJR05VUFwiLGVbZS5CRVRBPTM2XT1cIkJFVEFcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0LlBhZ2VUeXBlfHwodC5QYWdlVHlwZT17fSkpLGZ1bmN0aW9uKGUpe2UuV0VCX1BBR0VfVklFV19FVkVOVD1cIldFQl9QQUdFX1ZJRVdfRVZFTlRcIixlLldFQl9QQUdFX1NIQVJFX0VWRU5UPVwiV0VCX1BBR0VfU0hBUkVfRVZFTlRcIixlLlNUT1JZX1NOQVBfVklFV19XRUI9XCJTVE9SWV9TTkFQX1ZJRVdfV0VCXCIsZS5TVE9SWV9TVE9SWV9WSUVXX1dFQj1cIlNUT1JZX1NUT1JZX1ZJRVdfV0VCXCIsZS5XRUJfU0VTU0lPTj1cIldFQl9TRVNTSU9OX0VWRU5UXCIsZS5XRUJfQUNUSU9OPVwiV0VCX0FDVElPTlwifSh0LkJsaXp6YXJkRXZlbnR8fCh0LkJsaXp6YXJkRXZlbnQ9e30pKSxmdW5jdGlvbihlKXtlLk9wZW5JblNuYXBjaGF0Q3RhPVwib3Blbl9pbl9zbmFwY2hhdF9jdGFcIixlLkZpbmRNb3JlTGVuc2VzQ2xpY2s9XCJmaW5kX21vcmVfbGVuc2VzXCIsZS5PcGVuV2ViQ2hhdEN0YT1cIm9wZW5fd2ViX2NoYXRfY3RhXCIsZS5PcGVuV2ViQ2hhdEhlYWRlcj1cIm9wZW5fd2ViX2NoYXRfaGVhZGVyXCIsZS5OYXZpZ2F0aW9uQ2xpY2s9XCJuYXZpZ2F0aW9uX2NsaWNrXCIsZS5UcnlPbkxpdmVMZW5zZXM9XCJ0cnlfb25fbGl2ZV9sZW5zZXNcIixlLkNhbUFjY2Vzc0dyYW50ZWQ9XCJjYW1lcmFfYWNjZXNzX2dyYW50ZWRcIixlLkNhbUFjY2Vzc0RlbmllZD1cImNhbWVyYV9hY2Nlc3NfZGVuaWVkXCIsZS5SZXF1ZXN0Q2FtQWNjZXNzRmFpbGVkPVwicmVxdWVzdF9jYW1lcmFfYWNjZXNzX2ZhaWxlZFwiLGUuU2VhcmNoQ2xpY2s9XCJzZWFyY2hfY2xpY2tcIixlLkV4cGxvcmVNb3JlTGVuc2VzQ2xpY2s9XCJleHBsb3JlX21vcmVfbGVuc2VzX2NsaWNrXCIsZS5TZWFyY2hSZXN1bHRPcGVuPVwic2VhcmNoX3Jlc3VsdF9vcGVuXCIsZS5BZHZlcnRpc2Vyc0NUQT1cImFkdmVydGlzZXJzX2N0YVwiLGUuTGVuc1RhZ3NDVEE9XCJsZW5zX3RhZ3NfY3RhXCIsZS5TY2FuUXJDb2RlPVwic2Nhbl9xcl9jb2RlXCIsZS5TaGFyZVdlYkNoYXRDbGljaz1cInNoYXJlX3dlYl9jaGF0X2NsaWNrXCIsZS5CdXR0b25DbGljaz1cImJ1dHRvbl9jbGlja1wifSh0LldlYkFjdGlvbk5hbWV8fCh0LldlYkFjdGlvbk5hbWU9e30pKSxmdW5jdGlvbihlKXtlLkRvd25sb2FkUGFnZUNhcmQ9XCJkb3dubG9hZF9wYWdlX2NhcmRcIixlLk9wZW5BcHBTdG9yZT1cIm9wZW5fYXBwX3N0b3JlXCIsZS5WaWV3TW9yZVNlYXJjaFJlc3VsdD1cInZpZXdfbW9yZV9zZWFyY2hfcmVzdWx0XCIsZS5Ib21lUGFnZT1cImhvbWVwYWdlXCIsZS5Eb3dubG9hZFFSQ29kZT1cImRvd25sb2FkX3FyX2NvZGVcIixlLlRyeU5vd0xpbms9XCJ0cnlfbm93X2xpbmtcIixlLkNUQUZvb3Rlcj1cImN0YV9mb290ZXJcIixlLlBvcHVwQ1RBTW9kYWw9XCJwb3B1cF9jdGFfbW9kYWxcIixlLk1vYmlsZU5hdj1cIm1vYmlsZV9uYXZcIixlLkRlc2t0b3BOYXY9XCJkZXNrdG9wX25hdlwiLGUuTW9iaWxlTmF2SWNvbj1cIm1vYmlsZV9uYXZfaWNvblwiLGUuRGVza3RvcE5hdkljb249XCJuYXZfaWNvblwiLGUuVXBzZWxsVG9hc3Q9XCJ1cHNlbGxfdG9hc3RcIixlLkxpdmVMZW5zPVwibGl2ZV9sZW5zXCIsZS5OYXRpdmVEb3dubG9hZENUQT1cIm5hdGl2ZV9kb3dubG9hZF9jdGFcIixlLk1vYmlsZUxlbnNQcmV2aWV3PVwibW9iaWxlX2xlbnNfcHJldmlld1wiLGUuQWNjb3VudHNXZWxjb21lUGFnZT1cIndlYl9hY2NvdW50c193ZWxjb21lX3BhZ2VcIixlLkRvd25sb2FkUGFnZUhlYWRlckN0YT1cImRvd25sb2FkX3BhZ2VfaGVhZGVyX2N0YVwiLGUuRG93bmxvYWRNeURhdGFMaW5rPVwiZG93bmxvYWRfbXlfZGF0YV9saW5rXCIsZS5QbHVzU2lnbnVwU3Vic2NyaXB0aW9uPVwicGx1c19zaWdudXBfc3Vic2NyaWJlXCIsZS5QbHVzU2lnbnVwU3Vic2NyaXB0aW9uQ29tcGxldGU9XCJwbHVzX3NpZ251cF9zdWJzY3JpcHRpb25fY29tcGxldGVcIn0odC5XZWJBY3Rpb25Tb3VyY2V8fCh0LldlYkFjdGlvblNvdXJjZT17fSkpLGZ1bmN0aW9uKGUpe2UuSU9TQXBwU3RvcmU9XCJpb3NfYXBwX3N0b3JlXCIsZS5BbmRyb2lkR29vZ2xlUGxheVN0b3JlPVwiYW5kcm9pZF9nb29nbGVfcGxheV9zdG9yZVwifSh0LldlYkFjdGlvbkRlc3RpbmF0aW9ufHwodC5XZWJBY3Rpb25EZXN0aW5hdGlvbj17fSkpfSw3ODg5MTpmdW5jdGlvbihlLHQsbil7dmFyIHI7IWZ1bmN0aW9uKGksbyl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGE9XCJmdW5jdGlvblwiLHM9XCJ1bmRlZmluZWRcIixjPVwib2JqZWN0XCIsdT1cInN0cmluZ1wiLGw9XCJtYWpvclwiLGQ9XCJtb2RlbFwiLHA9XCJuYW1lXCIsZj1cInR5cGVcIixoPVwidmVuZG9yXCIsZz1cInZlcnNpb25cIixtPVwiYXJjaGl0ZWN0dXJlXCIsdj1cImNvbnNvbGVcIixfPVwibW9iaWxlXCIsRT1cInRhYmxldFwiLGI9XCJzbWFydHR2XCIsUz1cIndlYXJhYmxlXCIseT1cImVtYmVkZGVkXCIsVD1cIkFtYXpvblwiLEk9XCJBcHBsZVwiLE89XCJBU1VTXCIsQT1cIkJsYWNrQmVycnlcIixDPVwiRmlyZWZveFwiLE49XCJHb29nbGVcIixrPVwiSHVhd2VpXCIsUD1cIkxHXCIsUj1cIk1pY3Jvc29mdFwiLHc9XCJNb3Rvcm9sYVwiLEw9XCJPcGVyYVwiLEI9XCJTYW1zdW5nXCIsTT1cIlNoYXJwXCIsRD1cIlNvbnlcIixqPVwiWGlhb21pXCIseD1cIlplYnJhXCIsVT1cIkZhY2Vib29rXCIsRj1cIkNocm9taXVtIE9TXCIsSD1cIk1hYyBPU1wiLEc9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MDtuPGUubGVuZ3RoO24rKyl0W2Vbbl0udG9VcHBlckNhc2UoKV09ZVtuXTtyZXR1cm4gdH0sVz1mdW5jdGlvbihlLHQpe3JldHVybiB0eXBlb2YgZT09PXUmJi0xIT09Vih0KS5pbmRleE9mKFYoZSkpfSxWPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9LHo9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09PXUpcmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxzXFxzKi8sXCJcIiksdHlwZW9mIHQ9PT1zP2U6ZS5zdWJzdHJpbmcoMCwzNTApfSxLPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHIsaSxzLHUsbCxkPTA7ZDx0Lmxlbmd0aCYmIXU7KXt2YXIgcD10W2RdLGY9dFtkKzFdO2ZvcihuPXI9MDtuPHAubGVuZ3RoJiYhdSYmcFtuXTspaWYodT1wW24rK10uZXhlYyhlKSlmb3IoaT0wO2k8Zi5sZW5ndGg7aSsrKWw9dVsrK3JdLHR5cGVvZihzPWZbaV0pPT09YyYmcy5sZW5ndGg+MD8yPT09cy5sZW5ndGg/dHlwZW9mIHNbMV09PWE/dGhpc1tzWzBdXT1zWzFdLmNhbGwodGhpcyxsKTp0aGlzW3NbMF1dPXNbMV06Mz09PXMubGVuZ3RoP3R5cGVvZiBzWzFdIT09YXx8c1sxXS5leGVjJiZzWzFdLnRlc3Q/dGhpc1tzWzBdXT1sP2wucmVwbGFjZShzWzFdLHNbMl0pOm86dGhpc1tzWzBdXT1sP3NbMV0uY2FsbCh0aGlzLGwsc1syXSk6bzo0PT09cy5sZW5ndGgmJih0aGlzW3NbMF1dPWw/c1szXS5jYWxsKHRoaXMsbC5yZXBsYWNlKHNbMV0sc1syXSkpOm8pOnRoaXNbc109bHx8bztkKz0yfX0sWT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KWlmKHR5cGVvZiB0W25dPT09YyYmdFtuXS5sZW5ndGg+MCl7Zm9yKHZhciByPTA7cjx0W25dLmxlbmd0aDtyKyspaWYoVyh0W25dW3JdLGUpKXJldHVyblwiP1wiPT09bj9vOm59ZWxzZSBpZihXKHRbbl0sZSkpcmV0dXJuXCI/XCI9PT1uP286bjtyZXR1cm4gZX0scT17TUU6XCI0LjkwXCIsXCJOVCAzLjExXCI6XCJOVDMuNTFcIixcIk5UIDQuMFwiOlwiTlQ0LjBcIiwyZTM6XCJOVCA1LjBcIixYUDpbXCJOVCA1LjFcIixcIk5UIDUuMlwiXSxWaXN0YTpcIk5UIDYuMFwiLDc6XCJOVCA2LjFcIiw4OlwiTlQgNi4yXCIsOC4xOlwiTlQgNi4zXCIsMTA6W1wiTlQgNi40XCIsXCJOVCAxMC4wXCJdLFJUOlwiQVJNXCJ9LFo9e2Jyb3dzZXI6W1svXFxiKD86Y3Jtb3xjcmlvcylcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkNocm9tZVwiXV0sWy9lZGcoPzplfGlvc3xhKT9cXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkVkZ2VcIl1dLFsvKG9wZXJhIG1pbmkpXFwvKFstXFx3XFwuXSspL2ksLyhvcGVyYSBbbW9iaWxldGFiXXszLDZ9KVxcYi4rdmVyc2lvblxcLyhbLVxcd1xcLl0rKS9pLC8ob3BlcmEpKD86Lit2ZXJzaW9uXFwvfFtcXC8gXSspKFtcXHdcXC5dKykvaV0sW3AsZ10sWy9vcGlvc1tcXC8gXSsoW1xcd1xcLl0rKS9pXSxbZyxbcCxcIk9wZXJhIE1pbmlcIl1dLFsvXFxib3ByXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsTF1dLFsvKGtpbmRsZSlcXC8oW1xcd1xcLl0rKS9pLC8obHVuYXNjYXBlfG1heHRob258bmV0ZnJvbnR8amFzbWluZXxibGF6ZXIpW1xcLyBdPyhbXFx3XFwuXSopL2ksLyhhdmFudCB8aWVtb2JpbGV8c2xpbSkoPzpicm93c2VyKT9bXFwvIF0/KFtcXHdcXC5dKikvaSwvKGJhP2lkdWJyb3dzZXIpW1xcLyBdPyhbXFx3XFwuXSspL2ksLyg/Om1zfFxcKCkoaWUpIChbXFx3XFwuXSspL2ksLyhmbG9ja3xyb2NrbWVsdHxtaWRvcml8ZXBpcGhhbnl8c2lsa3xza3lmaXJlfG92aWJyb3dzZXJ8Ym9sdHxpcm9ufHZpdmFsZGl8aXJpZGl1bXxwaGFudG9tanN8Ym93c2VyfHF1YXJrfHF1cHppbGxhfGZhbGtvbnxyZWtvbnF8cHVmZmlufGJyYXZlfHdoYWxlKD8hLituYXZlcil8cXFicm93c2VybGl0ZXxxcXxkdWNrZHVja2dvKVxcLyhbLVxcd1xcLl0rKS9pLC8od2VpYm8pX18oW1xcZFxcLl0rKS9pXSxbcCxnXSxbLyg/OlxcYnVjPyA/YnJvd3NlcnwoPzpqdWMuKyl1Y3dlYilbXFwvIF0/KFtcXHdcXC5dKykvaV0sW2csW3AsXCJVQ0Jyb3dzZXJcIl1dLFsvbWljcm9tLitcXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS9pLC9cXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS4rbWljcm9tL2ldLFtnLFtwLFwiV2VDaGF0KFdpbikgRGVza3RvcFwiXV0sWy9taWNyb21lc3NlbmdlclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiV2VDaGF0XCJdXSxbL2tvbnF1ZXJvclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiS29ucXVlcm9yXCJdXSxbL3RyaWRlbnQuK3J2WzogXShbXFx3XFwuXXsxLDl9KVxcYi4rbGlrZSBnZWNrby9pXSxbZyxbcCxcIklFXCJdXSxbL3lhYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiWWFuZGV4XCJdXSxbLyhhdmFzdHxhdmcpXFwvKFtcXHdcXC5dKykvaV0sW1twLC8oLispLyxcIiQxIFNlY3VyZSBCcm93c2VyXCJdLGddLFsvXFxiZm9jdXNcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkZpcmVmb3ggRm9jdXNcIl1dLFsvXFxib3B0XFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJPcGVyYSBUb3VjaFwiXV0sWy9jb2NfY29jXFx3K1xcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiQ29jIENvY1wiXV0sWy9kb2xmaW5cXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkRvbHBoaW5cIl1dLFsvY29hc3RcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIk9wZXJhIENvYXN0XCJdXSxbL21pdWlicm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJNSVVJIEJyb3dzZXJcIl1dLFsvZnhpb3NcXC8oWy1cXHdcXC5dKykvaV0sW2csW3AsQ11dLFsvXFxicWlodXwocWk/aG8/bz98MzYwKWJyb3dzZXIvaV0sW1twLFwiMzYwIEJyb3dzZXJcIl1dLFsvKG9jdWx1c3xzYW1zdW5nfHNhaWxmaXNofGh1YXdlaSlicm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW1twLC8oLispLyxcIiQxIEJyb3dzZXJcIl0sZ10sWy8oY29tb2RvX2RyYWdvbilcXC8oW1xcd1xcLl0rKS9pXSxbW3AsL18vZyxcIiBcIl0sZ10sWy8oZWxlY3Ryb24pXFwvKFtcXHdcXC5dKykgc2FmYXJpL2ksLyh0ZXNsYSkoPzogcXRjYXJicm93c2VyfFxcLygyMFxcZFxcZFxcLlstXFx3XFwuXSspKS9pLC9tPyhxcWJyb3dzZXJ8YmFpZHVib3hhcHB8MjM0NUV4cGxvcmVyKVtcXC8gXT8oW1xcd1xcLl0rKS9pXSxbcCxnXSxbLyhtZXRhc3IpW1xcLyBdPyhbXFx3XFwuXSspL2ksLyhsYmJyb3dzZXIpL2ksL1xcWyhsaW5rZWRpbilhcHBcXF0vaV0sW3BdLFsvKCg/OmZiYW5cXC9mYmlvc3xmYl9pYWJcXC9mYjRhKSg/IS4rZmJhdil8O2ZiYXZcXC8oW1xcd1xcLl0rKTspL2ldLFtbcCxVXSxnXSxbLyhrYWthbyg/OnRhbGt8c3RvcnkpKVtcXC8gXShbXFx3XFwuXSspL2ksLyhuYXZlcilcXCguKj8oXFxkK1xcLltcXHdcXC5dKykuKlxcKS9pLC9zYWZhcmkgKGxpbmUpXFwvKFtcXHdcXC5dKykvaSwvXFxiKGxpbmUpXFwvKFtcXHdcXC5dKylcXC9pYWIvaSwvKGNocm9taXVtfGluc3RhZ3JhbSlbXFwvIF0oWy1cXHdcXC5dKykvaV0sW3AsZ10sWy9cXGJnc2FcXC8oW1xcd1xcLl0rKSAuKnNhZmFyaVxcLy9pXSxbZyxbcCxcIkdTQVwiXV0sWy9oZWFkbGVzc2Nocm9tZSg/OlxcLyhbXFx3XFwuXSspfCApL2ldLFtnLFtwLFwiQ2hyb21lIEhlYWRsZXNzXCJdXSxbLyB3dlxcKS4rKGNocm9tZSlcXC8oW1xcd1xcLl0rKS9pXSxbW3AsXCJDaHJvbWUgV2ViVmlld1wiXSxnXSxbL2Ryb2lkLisgdmVyc2lvblxcLyhbXFx3XFwuXSspXFxiLisoPzptb2JpbGUgc2FmYXJpfHNhZmFyaSkvaV0sW2csW3AsXCJBbmRyb2lkIEJyb3dzZXJcIl1dLFsvKGNocm9tZXxvbW5pd2VifGFyb3JhfFt0aXplbm9rYV17NX0gP2Jyb3dzZXIpXFwvdj8oW1xcd1xcLl0rKS9pXSxbcCxnXSxbL3ZlcnNpb25cXC8oW1xcd1xcLlxcLF0rKSAuKm1vYmlsZVxcL1xcdysgKHNhZmFyaSkvaV0sW2csW3AsXCJNb2JpbGUgU2FmYXJpXCJdXSxbL3ZlcnNpb25cXC8oW1xcdyhcXC58XFwsKV0rKSAuKihtb2JpbGUgP3NhZmFyaXxzYWZhcmkpL2ldLFtnLHBdLFsvd2Via2l0Lis/KG1vYmlsZSA/c2FmYXJpfHNhZmFyaSkoXFwvW1xcd1xcLl0rKS9pXSxbcCxbZyxZLHtcIjEuMFwiOlwiLzhcIiwxLjI6XCIvMVwiLDEuMzpcIi8zXCIsXCIyLjBcIjpcIi80MTJcIixcIjIuMC4yXCI6XCIvNDE2XCIsXCIyLjAuM1wiOlwiLzQxN1wiLFwiMi4wLjRcIjpcIi80MTlcIixcIj9cIjpcIi9cIn1dXSxbLyh3ZWJraXR8a2h0bWwpXFwvKFtcXHdcXC5dKykvaV0sW3AsZ10sWy8obmF2aWdhdG9yfG5ldHNjYXBlXFxkPylcXC8oWy1cXHdcXC5dKykvaV0sW1twLFwiTmV0c2NhcGVcIl0sZ10sWy9tb2JpbGUgdnI7IHJ2OihbXFx3XFwuXSspXFwpLitmaXJlZm94L2ldLFtnLFtwLFwiRmlyZWZveCBSZWFsaXR5XCJdXSxbL2VraW9oZi4rKGZsb3cpXFwvKFtcXHdcXC5dKykvaSwvKHN3aWZ0Zm94KS9pLC8oaWNlZHJhZ29ufGljZXdlYXNlbHxjYW1pbm98Y2hpbWVyYXxmZW5uZWN8bWFlbW8gYnJvd3NlcnxtaW5pbW98Y29ua2Vyb3J8a2xhcilbXFwvIF0/KFtcXHdcXC5cXCtdKykvaSwvKHNlYW1vbmtleXxrLW1lbGVvbnxpY2VjYXR8aWNlYXBlfGZpcmViaXJkfHBob2VuaXh8cGFsZW1vb258YmFzaWxpc2t8d2F0ZXJmb3gpXFwvKFstXFx3XFwuXSspJC9pLC8oZmlyZWZveClcXC8oW1xcd1xcLl0rKS9pLC8obW96aWxsYSlcXC8oW1xcd1xcLl0rKSAuK3J2XFw6LitnZWNrb1xcL1xcZCsvaSwvKHBvbGFyaXN8bHlueHxkaWxsb3xpY2FifGRvcmlzfGFtYXlhfHczbXxuZXRzdXJmfHNsZWlwbmlyfG9iaWdvfG1vc2FpY3woPzpnb3xpY2V8dXApW1xcLiBdP2Jyb3dzZXIpWy1cXC8gXT92PyhbXFx3XFwuXSspL2ksLyhsaW5rcykgXFwoKFtcXHdcXC5dKykvaSwvcGFuYXNvbmljOyh2aWVyYSkvaV0sW3AsZ10sWy8oY29iYWx0KVxcLyhbXFx3XFwuXSspL2ldLFtwLFtnLC9tYXN0ZXIufGx0cy4vLFwiXCJdXV0sY3B1OltbLyg/OihhbWR8eCg/Oig/Ojg2fDY0KVstX10pP3x3b3d8d2luKTY0KVs7XFwpXS9pXSxbW20sXCJhbWQ2NFwiXV0sWy8oaWEzMig/PTspKS9pXSxbW20sVl1dLFsvKCg/OmlbMzQ2XXx4KTg2KVs7XFwpXS9pXSxbW20sXCJpYTMyXCJdXSxbL1xcYihhYXJjaDY0fGFybSh2PzhlP2w/fF8/NjQpKVxcYi9pXSxbW20sXCJhcm02NFwiXV0sWy9cXGIoYXJtKD86dls2N10pP2h0P24/W2ZsXXA/KVxcYi9pXSxbW20sXCJhcm1oZlwiXV0sWy93aW5kb3dzIChjZXxtb2JpbGUpOyBwcGM7L2ldLFtbbSxcImFybVwiXV0sWy8oKD86cHBjfHBvd2VycGMpKD86NjQpPykoPzogbWFjfDt8XFwpKS9pXSxbW20sL293ZXIvLFwiXCIsVl1dLFsvKHN1bjRcXHcpWztcXCldL2ldLFtbbSxcInNwYXJjXCJdXSxbLygoPzphdnIzMnxpYTY0KD89OykpfDY4ayg/PVxcKSl8XFxiYXJtKD89dig/OlsxLTddfFs1LTddMSlsP3w7fGVhYmkpfCg/PWF0bWVsIClhdnJ8KD86aXJpeHxtaXBzfHNwYXJjKSg/OjY0KT9cXGJ8cGEtcmlzYykvaV0sW1ttLFZdXV0sZGV2aWNlOltbL1xcYihzY2gtaVs4OV0wXFxkfHNody1tMzgwc3xzbS1bcHR4XVxcd3syLDR9fGd0LVtwbl1cXGR7Miw0fXxzZ2gtdDhbNTZdOXxuZXh1cyAxMCkvaV0sW2QsW2gsQl0sW2YsRV1dLFsvXFxiKCg/OnNbY2dwXWh8Z3R8c20pLVxcdyt8c2NbZy1dP1tcXGRdK2E/fGdhbGF4eSBuZXh1cykvaSwvc2Ftc3VuZ1stIF0oWy1cXHddKykvaSwvc2VjLShzZ2hcXHcrKS9pXSxbZCxbaCxCXSxbZixfXV0sWy9cXCgoaXAoPzpob25lfG9kKVtcXHcgXSopOy9pXSxbZCxbaCxJXSxbZixfXV0sWy9cXCgoaXBhZCk7Wy1cXHdcXCksOyBdK2FwcGxlL2ksL2FwcGxlY29yZW1lZGlhXFwvW1xcd1xcLl0rIFxcKChpcGFkKS9pLC9cXGIoaXBhZClcXGRcXGQ/LFxcZFxcZD9bO1xcXV0uK2lvcy9pXSxbZCxbaCxJXSxbZixFXV0sWy8obWFjaW50b3NoKTsvaV0sW2QsW2gsSV1dLFsvXFxiKHNoLT9bYWx0dnpdP1xcZFxcZFthLWVrbV0/KS9pXSxbZCxbaCxNXSxbZixfXV0sWy9cXGIoKD86YWdbcnNdWzIzXT98YmFoMj98c2h0P3xidHYpLWE/W2x3XVxcZHsyfSlcXGIoPyEuK2RcXC9zKS9pXSxbZCxbaCxrXSxbZixFXV0sWy8oPzpodWF3ZWl8aG9ub3IpKFstXFx3IF0rKVs7XFwpXS9pLC9cXGIobmV4dXMgNnB8XFx3ezIsNH1lPy1bYXR1XT9bbG5dW1xcZHhdWzAxMjM1OWNdW2Fkbl0/KVxcYig/IS4rZFxcL3MpL2ldLFtkLFtoLGtdLFtmLF9dXSxbL1xcYihwb2NvW1xcdyBdKykoPzogYnVpfFxcKSkvaSwvXFxiOyAoXFx3KykgYnVpbGRcXC9obVxcMS9pLC9cXGIoaG1bLV8gXT9ub3RlP1tfIF0/KD86XFxkXFx3KT8pIGJ1aS9pLC9cXGIocmVkbWlbXFwtXyBdPyg/Om5vdGV8ayk/W1xcd18gXSspKD86IGJ1aXxcXCkpL2ksL1xcYihtaVstXyBdPyg/OmFcXGR8b25lfG9uZVtfIF1wbHVzfG5vdGUgbHRlfG1heHxjYyk/W18gXT8oPzpcXGQ/XFx3PylbXyBdPyg/OnBsdXN8c2V8bGl0ZSk/KSg/OiBidWl8XFwpKS9pXSxbW2QsL18vZyxcIiBcIl0sW2gsal0sW2YsX11dLFsvXFxiKG1pWy1fIF0/KD86cGFkKSg/OltcXHdfIF0rKSkoPzogYnVpfFxcKSkvaV0sW1tkLC9fL2csXCIgXCJdLFtoLGpdLFtmLEVdXSxbLzsgKFxcdyspIGJ1aS4rIG9wcG8vaSwvXFxiKGNwaFsxMl1cXGR7M318cCg/OmFmfGNbYWxdfGRcXHd8ZVthcl0pW210XVxcZDB8eDkwMDd8YTEwMW9wKVxcYi9pXSxbZCxbaCxcIk9QUE9cIl0sW2YsX11dLFsvdml2byAoXFx3KykoPzogYnVpfFxcKSkvaSwvXFxiKHZbMTJdXFxkezN9XFx3P1thdF0pKD86IGJ1aXw7KS9pXSxbZCxbaCxcIlZpdm9cIl0sW2YsX11dLFsvXFxiKHJteFsxMl1cXGR7M30pKD86IGJ1aXw7fFxcKSkvaV0sW2QsW2gsXCJSZWFsbWVcIl0sW2YsX11dLFsvXFxiKG1pbGVzdG9uZXxkcm9pZCg/OlsyLTR4XXwgKD86YmlvbmljfHgyfHByb3xyYXpyKSk/Oj8oIDRnKT8pXFxiW1xcdyBdK2J1aWxkXFwvL2ksL1xcYm1vdCg/Om9yb2xhKT9bLSBdKFxcdyopL2ksLygoPzptb3RvW1xcd1xcKFxcKSBdK3x4dFxcZHszLDR9fG5leHVzIDYpKD89IGJ1aXxcXCkpKS9pXSxbZCxbaCx3XSxbZixfXV0sWy9cXGIobXo2MFxcZHx4b29tWzIgXXswLDJ9KSBidWlsZFxcLy9pXSxbZCxbaCx3XSxbZixFXV0sWy8oKD89bGcpP1t2bF1rXFwtP1xcZHszfSkgYnVpfCAzXFwuWy1cXHc7IF17MTB9bGc/LShbMDZjdjldezMsNH0pL2ldLFtkLFtoLFBdLFtmLEVdXSxbLyhsbSg/Oi0/ZjEwMFtudl0/fC1bXFx3XFwuXSspKD89IGJ1aXxcXCkpfG5leHVzIFs0NV0pL2ksL1xcYmxnWy1lO1xcLyBdKygoPyFicm93c2VyfG5ldGNhc3R8YW5kcm9pZCB0dilcXHcrKS9pLC9cXGJsZy0/KFtcXGRcXHddKykgYnVpL2ldLFtkLFtoLFBdLFtmLF9dXSxbLyhpZGVhdGFiWy1cXHcgXSspL2ksL2xlbm92byA/KHNbNTZdMDAwWy1cXHddK3x0YWIoPzpbXFx3IF0rKXx5dFstXFxkXFx3XXs2fXx0YlstXFxkXFx3XXs2fSkvaV0sW2QsW2gsXCJMZW5vdm9cIl0sW2YsRV1dLFsvKD86bWFlbW98bm9raWEpLioobjkwMHxsdW1pYSBcXGQrKS9pLC9ub2tpYVstXyBdPyhbLVxcd1xcLl0qKS9pXSxbW2QsL18vZyxcIiBcIl0sW2gsXCJOb2tpYVwiXSxbZixfXV0sWy8ocGl4ZWwgYylcXGIvaV0sW2QsW2gsTl0sW2YsRV1dLFsvZHJvaWQuKzsgKHBpeGVsW1xcZGF4bCBdezAsNn0pKD86IGJ1aXxcXCkpL2ldLFtkLFtoLE5dLFtmLF9dXSxbL2Ryb2lkLisgKGE/XFxkWzAtMl17Mn1zb3xbYy1nXVxcZHs0fXxzb1stZ2xdXFx3K3x4cS1hXFx3WzQtN11bMTJdKSg/PSBidWl8XFwpLitjaHJvbWVcXC8oPyFbMS02XXswLDF9XFxkXFwuKSkvaV0sW2QsW2gsRF0sW2YsX11dLFsvc29ueSB0YWJsZXQgW3BzXS9pLC9cXGIoPzpzb255KT9zZ3BcXHcrKD86IGJ1aXxcXCkpL2ldLFtbZCxcIlhwZXJpYSBUYWJsZXRcIl0sW2gsRF0sW2YsRV1dLFsvIChrYjIwMDV8aW4yMFsxMl01fGJlMjBbMTJdWzU5XSlcXGIvaSwvKD86b25lKT8oPzpwbHVzKT8gKGFcXGQwXFxkXFxkKSg/OiBifFxcKSkvaV0sW2QsW2gsXCJPbmVQbHVzXCJdLFtmLF9dXSxbLyhhbGV4YSl3ZWJtL2ksLyhrZlthLXpdezJ9d2kpKCBidWl8XFwpKS9pLC8oa2ZbYS16XSspKCBidWl8XFwpKS4rc2lsa1xcLy9pXSxbZCxbaCxUXSxbZixFXV0sWy8oKD86c2R8a2YpWzAzNDloaWpvcnN0dXddKykoIGJ1aXxcXCkpLitzaWxrXFwvL2ldLFtbZCwvKC4rKS9nLFwiRmlyZSBQaG9uZSAkMVwiXSxbaCxUXSxbZixfXV0sWy8ocGxheWJvb2spO1stXFx3XFwpLDsgXSsocmltKS9pXSxbZCxoLFtmLEVdXSxbL1xcYigoPzpiYlthLWZdfHN0W2h2XSkxMDAtXFxkKS9pLC9cXChiYjEwOyAoXFx3KykvaV0sW2QsW2gsQV0sW2YsX11dLFsvKD86XFxifGFzdXNfKSh0cmFuc2ZvW3ByaW1lIF17NCwxMH0gXFx3K3xlZWVwY3xzbGlkZXIgXFx3K3xuZXh1cyA3fHBhZGZvbmV8cDAwW2NqXSkvaV0sW2QsW2gsT10sW2YsRV1dLFsvICh6W2Jlc102WzAyN11bMDEyXVtrbV1bbHNdfHplbmZvbmUgXFxkXFx3PylcXGIvaV0sW2QsW2gsT10sW2YsX11dLFsvKG5leHVzIDkpL2ldLFtkLFtoLFwiSFRDXCJdLFtmLEVdXSxbLyhodGMpWy07XyBdezEsMn0oW1xcdyBdKyg/PVxcKXwgYnVpKXxcXHcrKS9pLC8oenRlKVstIF0oW1xcdyBdKz8pKD86IGJ1aXxcXC98XFwpKS9pLC8oYWxjYXRlbHxnZWVrc3Bob25lfG5leGlhbnxwYW5hc29uaWMoPyEoPzo7fFxcLikpfHNvbnkoPyEtYnJhKSlbLV8gXT8oWy1cXHddKikvaV0sW2gsW2QsL18vZyxcIiBcIl0sW2YsX11dLFsvZHJvaWQuKzsgKFthYl1bMS03XS0/WzAxNzhhXVxcZFxcZD8pL2ldLFtkLFtoLFwiQWNlclwiXSxbZixFXV0sWy9kcm9pZC4rOyAobVsxLTVdIG5vdGUpIGJ1aS9pLC9cXGJtei0oWy1cXHddezIsfSkvaV0sW2QsW2gsXCJNZWl6dVwiXSxbZixfXV0sWy8oYmxhY2tiZXJyeXxiZW5xfHBhbG0oPz1cXC0pfHNvbnllcmljc3NvbnxhY2VyfGFzdXN8ZGVsbHxtZWl6dXxtb3Rvcm9sYXxwb2x5dHJvbilbLV8gXT8oWy1cXHddKikvaSwvKGhwKSAoW1xcdyBdK1xcdykvaSwvKGFzdXMpLT8oXFx3KykvaSwvKG1pY3Jvc29mdCk7IChsdW1pYVtcXHcgXSspL2ksLyhsZW5vdm8pWy1fIF0/KFstXFx3XSspL2ksLyhqb2xsYSkvaSwvKG9wcG8pID8oW1xcdyBdKykgYnVpL2ldLFtoLGQsW2YsX11dLFsvKGtvYm8pXFxzKGVyZWFkZXJ8dG91Y2gpL2ksLyhhcmNob3MpIChnYW1lcGFkMj8pL2ksLyhocCkuKyh0b3VjaHBhZCg/IS4rdGFibGV0KXx0YWJsZXQpL2ksLyhraW5kbGUpXFwvKFtcXHdcXC5dKykvaSwvKG5vb2spW1xcdyBdK2J1aWxkXFwvKFxcdyspL2ksLyhkZWxsKSAoc3RyZWFba3ByXFxkIF0qW1xcZGtvXSkvaSwvKGxlWy0gXStwYW4pWy0gXSsoXFx3ezEsOX0pIGJ1aS9pLC8odHJpbml0eSlbLSBdKih0XFxkezN9KSBidWkvaSwvKGdpZ2FzZXQpWy0gXSsocVxcd3sxLDl9KSBidWkvaSwvKHZvZGFmb25lKSAoW1xcdyBdKykoPzpcXCl8IGJ1aSkvaV0sW2gsZCxbZixFXV0sWy8oc3VyZmFjZSBkdW8pL2ldLFtkLFtoLFJdLFtmLEVdXSxbL2Ryb2lkIFtcXGRcXC5dKzsgKGZwXFxkdT8pKD86IGJ8XFwpKS9pXSxbZCxbaCxcIkZhaXJwaG9uZVwiXSxbZixfXV0sWy8odTMwNGFhKS9pXSxbZCxbaCxcIkFUJlRcIl0sW2YsX11dLFsvXFxic2llLShcXHcqKS9pXSxbZCxbaCxcIlNpZW1lbnNcIl0sW2YsX11dLFsvXFxiKHJjdFxcdyspIGIvaV0sW2QsW2gsXCJSQ0FcIl0sW2YsRV1dLFsvXFxiKHZlbnVlW1xcZCBdezIsN30pIGIvaV0sW2QsW2gsXCJEZWxsXCJdLFtmLEVdXSxbL1xcYihxKD86bXZ8dGEpXFx3KykgYi9pXSxbZCxbaCxcIlZlcml6b25cIl0sW2YsRV1dLFsvXFxiKD86YmFybmVzWyYgXStub2JsZSB8Ym5bcnRdKShbXFx3XFwrIF0qKSBiL2ldLFtkLFtoLFwiQmFybmVzICYgTm9ibGVcIl0sW2YsRV1dLFsvXFxiKHRtXFxkezN9XFx3KykgYi9pXSxbZCxbaCxcIk51VmlzaW9uXCJdLFtmLEVdXSxbL1xcYihrODgpIGIvaV0sW2QsW2gsXCJaVEVcIl0sW2YsRV1dLFsvXFxiKG54XFxkezN9aikgYi9pXSxbZCxbaCxcIlpURVwiXSxbZixfXV0sWy9cXGIoZ2VuXFxkezN9KSBiLis0OWgvaV0sW2QsW2gsXCJTd2lzc1wiXSxbZixfXV0sWy9cXGIoenVyXFxkezN9KSBiL2ldLFtkLFtoLFwiU3dpc3NcIl0sW2YsRV1dLFsvXFxiKCh6ZWtpKT90Yi4qXFxiKSBiL2ldLFtkLFtoLFwiWmVraVwiXSxbZixFXV0sWy9cXGIoW3lyXVxcZHsyfSkgYi9pLC9cXGIoZHJhZ29uWy0gXSt0b3VjaCB8ZHQpKFxcd3s1fSkgYi9pXSxbW2gsXCJEcmFnb24gVG91Y2hcIl0sZCxbZixFXV0sWy9cXGIobnMtP1xcd3swLDl9KSBiL2ldLFtkLFtoLFwiSW5zaWduaWFcIl0sW2YsRV1dLFsvXFxiKChueGF8bmV4dCktP1xcd3swLDl9KSBiL2ldLFtkLFtoLFwiTmV4dEJvb2tcIl0sW2YsRV1dLFsvXFxiKHh0cmVtZVxcXyk/KHYoMVswNDVdfDJbMDE1XXxbMzQ2OV0wfDdbMDVdKSkgYi9pXSxbW2gsXCJWb2ljZVwiXSxkLFtmLF9dXSxbL1xcYihsdnRlbFxcLSk/KHYxWzEyXSkgYi9pXSxbW2gsXCJMdlRlbFwiXSxkLFtmLF9dXSxbL1xcYihwaC0xKSAvaV0sW2QsW2gsXCJFc3NlbnRpYWxcIl0sW2YsX11dLFsvXFxiKHYoMTAwbWR8NzAwbmF8NzAxMXw5MTdnKS4qXFxiKSBiL2ldLFtkLFtoLFwiRW52aXplblwiXSxbZixFXV0sWy9cXGIodHJpb1stXFx3XFwuIF0rKSBiL2ldLFtkLFtoLFwiTWFjaFNwZWVkXCJdLFtmLEVdXSxbL1xcYnR1XygxNDkxKSBiL2ldLFtkLFtoLFwiUm90b3JcIl0sW2YsRV1dLFsvKHNoaWVsZFtcXHcgXSspIGIvaV0sW2QsW2gsXCJOdmlkaWFcIl0sW2YsRV1dLFsvKHNwcmludCkgKFxcdyspL2ldLFtoLGQsW2YsX11dLFsvKGtpblxcLltvbmV0d117M30pL2ldLFtbZCwvXFwuL2csXCIgXCJdLFtoLFJdLFtmLF9dXSxbL2Ryb2lkLis7IChjYzY2NjY/fGV0NVsxNl18bWNbMjM5XVsyM114P3x2YzhbMDNdeD8pXFwpL2ldLFtkLFtoLHhdLFtmLEVdXSxbL2Ryb2lkLis7IChlYzMwfHBzMjB8dGNbMi04XVxcZFtreF0pXFwpL2ldLFtkLFtoLHhdLFtmLF9dXSxbL3NtYXJ0LXR2Lisoc2Ftc3VuZykvaV0sW2gsW2YsYl1dLFsvaGJidHYuK21hcGxlOyhcXGQrKS9pXSxbW2QsL14vLFwiU21hcnRUVlwiXSxbaCxCXSxbZixiXV0sWy8obnV4OyBuZXRjYXN0LitzbWFydHR2fGxnIChuZXRjYXN0XFwudHYtMjAxXFxkfGFuZHJvaWQgdHYpKS9pXSxbW2gsUF0sW2YsYl1dLFsvKGFwcGxlKSA/dHYvaV0sW2gsW2QsXCJBcHBsZSBUVlwiXSxbZixiXV0sWy9jcmtleS9pXSxbW2QsXCJDaHJvbWVjYXN0XCJdLFtoLE5dLFtmLGJdXSxbL2Ryb2lkLithZnQoXFx3KSggYnVpfFxcKSkvaV0sW2QsW2gsVF0sW2YsYl1dLFsvXFwoZHR2W1xcKTtdLisoYXF1b3MpL2ksLyhhcXVvcy10dltcXHcgXSspXFwpL2ldLFtkLFtoLE1dLFtmLGJdXSxbLyhicmF2aWFbXFx3IF0rKSggYnVpfFxcKSkvaV0sW2QsW2gsRF0sW2YsYl1dLFsvKG1pdHYtXFx3ezV9KSBidWkvaV0sW2QsW2gsal0sW2YsYl1dLFsvSGJidHYuKih0ZWNobmlzYXQpICguKik7L2ldLFtoLGQsW2YsYl1dLFsvXFxiKHJva3UpW1xcZHhdKltcXClcXC9dKCg/OmR2cC0pP1tcXGRcXC5dKikvaSwvaGJidHZcXC9cXGQrXFwuXFxkK1xcLlxcZCsgK1xcKFtcXHdcXCsgXSo7ICooW1xcd1xcZF1bXjtdKik7KFteO10qKS9pXSxbW2gsel0sW2Qsel0sW2YsYl1dLFsvXFxiKGFuZHJvaWQgdHZ8c21hcnRbLSBdP3R2fG9wZXJhIHR2fHR2OyBydjopXFxiL2ldLFtbZixiXV0sWy8ob3V5YSkvaSwvKG5pbnRlbmRvKSAoW3dpZHMzdXRjaF0rKS9pXSxbaCxkLFtmLHZdXSxbL2Ryb2lkLis7IChzaGllbGQpIGJ1aS9pXSxbZCxbaCxcIk52aWRpYVwiXSxbZix2XV0sWy8ocGxheXN0YXRpb24gWzM0NXBvcnRhYmxldmldKykvaV0sW2QsW2gsRF0sW2Ysdl1dLFsvXFxiKHhib3goPzogb25lKT8oPyE7IHhib3gpKVtcXCk7IF0vaV0sW2QsW2gsUl0sW2Ysdl1dLFsvKChwZWJibGUpKWFwcC9pXSxbaCxkLFtmLFNdXSxbLyh3YXRjaCkoPzogP29zWyxcXC9dfFxcZCxcXGRcXC8pW1xcZFxcLl0rL2ldLFtkLFtoLEldLFtmLFNdXSxbL2Ryb2lkLis7IChnbGFzcykgXFxkL2ldLFtkLFtoLE5dLFtmLFNdXSxbL2Ryb2lkLis7ICh3dDYzPzB7MiwzfSlcXCkvaV0sW2QsW2gseF0sW2YsU11dLFsvKHF1ZXN0KCAyfCBwcm8pPykvaV0sW2QsW2gsVV0sW2YsU11dLFsvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XFwvWy1cXHdcXC5dKykvaV0sW2gsW2YseV1dLFsvZHJvaWQgLis/OyAoW147XSs/KSg/OiBidWl8XFwpIGFwcGxldykuKz8gbW9iaWxlIHNhZmFyaS9pXSxbZCxbZixfXV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXxcXCkgYXBwbGV3KS4rPyg/ISBtb2JpbGUpIHNhZmFyaS9pXSxbZCxbZixFXV0sWy9cXGIoKHRhYmxldHx0YWIpWztcXC9dfGZvY3VzXFwvXFxkKD8hLittb2JpbGUpKS9pXSxbW2YsRV1dLFsvKHBob25lfG1vYmlsZSg/Ols7XFwvXXwgWyBcXHdcXC9cXC5dKnNhZmFyaSl8cGRhKD89Lit3aW5kb3dzIGNlKSkvaV0sW1tmLF9dXSxbLyhhbmRyb2lkWy1cXHdcXC4gXXswLDl9KTsuK2J1aWwvaV0sW2QsW2gsXCJHZW5lcmljXCJdXV0sZW5naW5lOltbL3dpbmRvd3MuKyBlZGdlXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJFZGdlSFRNTFwiXV0sWy93ZWJraXRcXC81MzdcXC4zNi4rY2hyb21lXFwvKD8hMjcpKFtcXHdcXC5dKykvaV0sW2csW3AsXCJCbGlua1wiXV0sWy8ocHJlc3RvKVxcLyhbXFx3XFwuXSspL2ksLyh3ZWJraXR8dHJpZGVudHxuZXRmcm9udHxuZXRzdXJmfGFtYXlhfGx5bnh8dzNtfGdvYW5uYSlcXC8oW1xcd1xcLl0rKS9pLC9la2lvaChmbG93KVxcLyhbXFx3XFwuXSspL2ksLyhraHRtbHx0YXNtYW58bGlua3MpW1xcLyBdXFwoPyhbXFx3XFwuXSspL2ksLyhpY2FiKVtcXC8gXShbMjNdXFwuW1xcZFxcLl0rKS9pXSxbcCxnXSxbL3J2XFw6KFtcXHdcXC5dezEsOX0pXFxiLisoZ2Vja28pL2ldLFtnLHBdXSxvczpbWy9taWNyb3NvZnQgKHdpbmRvd3MpICh2aXN0YXx4cCkvaV0sW3AsZ10sWy8od2luZG93cykgbnQgNlxcLjI7IChhcm0pL2ksLyh3aW5kb3dzICg/OnBob25lKD86IG9zKT98bW9iaWxlKSlbXFwvIF0/KFtcXGRcXC5cXHcgXSopL2ksLyh3aW5kb3dzKVtcXC8gXT8oW250Y2VcXGRcXC4gXStcXHcpKD8hLit4Ym94KS9pXSxbcCxbZyxZLHFdXSxbLyh3aW4oPz0zfDl8bil8d2luIDl4ICkoW250XFxkXFwuXSspL2ldLFtbcCxcIldpbmRvd3NcIl0sW2csWSxxXV0sWy9pcFtob25lYWRdezIsNH1cXGIoPzouKm9zIChbXFx3XSspIGxpa2UgbWFjfDsgb3BlcmEpL2ksL2NmbmV0d29ya1xcLy4rZGFyd2luL2ldLFtbZywvXy9nLFwiLlwiXSxbcCxcImlPU1wiXV0sWy8obWFjIG9zIHgpID8oW1xcd1xcLiBdKikvaSwvKG1hY2ludG9zaHxtYWNfcG93ZXJwY1xcYikoPyEuK2hhaWt1KS9pXSxbW3AsSF0sW2csL18vZyxcIi5cIl1dLFsvZHJvaWQgKFtcXHdcXC5dKylcXGIuKyhhbmRyb2lkWy0gXXg4NnxoYXJtb255b3MpL2ldLFtnLHBdLFsvKGFuZHJvaWR8d2Vib3N8cW54fGJhZGF8cmltIHRhYmxldCBvc3xtYWVtb3xtZWVnb3xzYWlsZmlzaClbLVxcLyBdPyhbXFx3XFwuXSopL2ksLyhibGFja2JlcnJ5KVxcdypcXC8oW1xcd1xcLl0qKS9pLC8odGl6ZW58a2Fpb3MpW1xcLyBdKFtcXHdcXC5dKykvaSwvXFwoKHNlcmllczQwKTsvaV0sW3AsZ10sWy9cXChiYigxMCk7L2ldLFtnLFtwLEFdXSxbLyg/OnN5bWJpYW4gP29zfHN5bWJvc3xzNjAoPz07KXxzZXJpZXM2MClbLVxcLyBdPyhbXFx3XFwuXSopL2ldLFtnLFtwLFwiU3ltYmlhblwiXV0sWy9tb3ppbGxhXFwvW1xcZFxcLl0rIFxcKCg/Om1vYmlsZXx0YWJsZXR8dHZ8bW9iaWxlOyBbXFx3IF0rKTsgcnY6LisgZ2Vja29cXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkZpcmVmb3ggT1NcIl1dLFsvd2ViMHM7LitydCh0dikvaSwvXFxiKD86aHApP3dvcyg/OmJyb3dzZXIpP1xcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwid2ViT1NcIl1dLFsvd2F0Y2goPzogP29zWyxcXC9dfFxcZCxcXGRcXC8pKFtcXGRcXC5dKykvaV0sW2csW3AsXCJ3YXRjaE9TXCJdXSxbL2Nya2V5XFwvKFtcXGRcXC5dKykvaV0sW2csW3AsXCJDaHJvbWVjYXN0XCJdXSxbLyhjcm9zKSBbXFx3XSsoPzpcXCl8IChbXFx3XFwuXSspXFxiKS9pXSxbW3AsRl0sZ10sWy9wYW5hc29uaWM7KHZpZXJhKS9pLC8obmV0cmFuZ2UpbW1oL2ksLyhuZXR0dilcXC8oXFxkK1xcLltcXHdcXC5dKykvaSwvKG5pbnRlbmRvfHBsYXlzdGF0aW9uKSAoW3dpZHMzNDVwb3J0YWJsZXZ1Y2hdKykvaSwvKHhib3gpOyAreGJveCAoW15cXCk7XSspL2ksL1xcYihqb2xpfHBhbG0pXFxiID8oPzpvcyk/XFwvPyhbXFx3XFwuXSopL2ksLyhtaW50KVtcXC9cXChcXCkgXT8oXFx3KikvaSwvKG1hZ2VpYXx2ZWN0b3JsaW51eClbOyBdL2ksLyhba3hsbl0/dWJ1bnR1fGRlYmlhbnxzdXNlfG9wZW5zdXNlfGdlbnRvb3xhcmNoKD89IGxpbnV4KXxzbGFja3dhcmV8ZmVkb3JhfG1hbmRyaXZhfGNlbnRvc3xwY2xpbnV4b3N8cmVkID9oYXR8emVud2Fsa3xsaW5wdXN8cmFzcGJpYW58cGxhbiA5fG1pbml4fHJpc2Mgb3N8Y29udGlraXxkZWVwaW58bWFuamFyb3xlbGVtZW50YXJ5IG9zfHNhYmF5b258bGluc3BpcmUpKD86IGdudVxcL2xpbnV4KT8oPzogZW50ZXJwcmlzZSk/KD86Wy0gXWxpbnV4KT8oPzotZ251KT9bLVxcLyBdPyg/IWNocm9tfHBhY2thZ2UpKFstXFx3XFwuXSopL2ksLyhodXJkfGxpbnV4KSA/KFtcXHdcXC5dKikvaSwvKGdudSkgPyhbXFx3XFwuXSopL2ksL1xcYihbLWZyZW50b3BjZ2hzXXswLDV9YnNkfGRyYWdvbmZseSlbXFwvIF0/KD8hYW1kfFtpeDM0Nl17MSwyfTg2KShbXFx3XFwuXSopL2ksLyhoYWlrdSkgKFxcdyspL2ldLFtwLGddLFsvKHN1bm9zKSA/KFtcXHdcXC5cXGRdKikvaV0sW1twLFwiU29sYXJpc1wiXSxnXSxbLygoPzpvcGVuKT9zb2xhcmlzKVstXFwvIF0/KFtcXHdcXC5dKikvaSwvKGFpeCkgKChcXGQpKD89XFwufFxcKXwgKVtcXHdcXC5dKSovaSwvXFxiKGJlb3N8b3NcXC8yfGFtaWdhb3N8bW9ycGhvc3xvcGVudm1zfGZ1Y2hzaWF8aHAtdXgpL2ksLyh1bml4KSA/KFtcXHdcXC5dKikvaV0sW3AsZ11dfSxKPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGU9PT1jJiYodD1lLGU9byksISh0aGlzIGluc3RhbmNlb2YgSikpcmV0dXJuIG5ldyBKKGUsdCkuZ2V0UmVzdWx0KCk7dmFyIG49dHlwZW9mIGkhPT1zJiZpLm5hdmlnYXRvcj9pLm5hdmlnYXRvcjpvLHI9ZXx8KG4mJm4udXNlckFnZW50P24udXNlckFnZW50OlwiXCIpLGw9biYmbi51c2VyQWdlbnREYXRhP24udXNlckFnZW50RGF0YTpvLGQ9dD9mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKXRbcl0mJnRbcl0ubGVuZ3RoJTI9PT0wP25bcl09dFtyXS5jb25jYXQoZVtyXSk6bltyXT1lW3JdO3JldHVybiBufShaLHQpOlo7cmV0dXJuIHRoaXMuZ2V0QnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBlLHQ9e307cmV0dXJuIHQubmFtZT1vLHQudmVyc2lvbj1vLEsuY2FsbCh0LHIsZC5icm93c2VyKSx0Lm1ham9yPXR5cGVvZihlPXQudmVyc2lvbik9PT11P2UucmVwbGFjZSgvW15cXGRcXC5dL2csXCJcIikuc3BsaXQoXCIuXCIpWzBdOm8sbiYmbi5icmF2ZSYmdHlwZW9mIG4uYnJhdmUuaXNCcmF2ZT09YSYmKHQubmFtZT1cIkJyYXZlXCIpLHR9LHRoaXMuZ2V0Q1BVPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGUuYXJjaGl0ZWN0dXJlPW8sSy5jYWxsKGUscixkLmNwdSksZX0sdGhpcy5nZXREZXZpY2U9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS52ZW5kb3I9byxlLm1vZGVsPW8sZS50eXBlPW8sSy5jYWxsKGUscixkLmRldmljZSksIWUudHlwZSYmbCYmbC5tb2JpbGUmJihlLnR5cGU9XyksXCJNYWNpbnRvc2hcIj09ZS5tb2RlbCYmbiYmdHlwZW9mIG4uc3RhbmRhbG9uZSE9PXMmJm4ubWF4VG91Y2hQb2ludHMmJm4ubWF4VG91Y2hQb2ludHM+MiYmKGUubW9kZWw9XCJpUGFkXCIsZS50eXBlPUUpLGV9LHRoaXMuZ2V0RW5naW5lPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGUubmFtZT1vLGUudmVyc2lvbj1vLEsuY2FsbChlLHIsZC5lbmdpbmUpLGV9LHRoaXMuZ2V0T1M9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS5uYW1lPW8sZS52ZXJzaW9uPW8sSy5jYWxsKGUscixkLm9zKSwhZS5uYW1lJiZsJiZcIlVua25vd25cIiE9bC5wbGF0Zm9ybSYmKGUubmFtZT1sLnBsYXRmb3JtLnJlcGxhY2UoL2Nocm9tZSBvcy9pLEYpLnJlcGxhY2UoL21hY29zL2ksSCkpLGV9LHRoaXMuZ2V0UmVzdWx0PWZ1bmN0aW9uKCl7cmV0dXJue3VhOnRoaXMuZ2V0VUEoKSxicm93c2VyOnRoaXMuZ2V0QnJvd3NlcigpLGVuZ2luZTp0aGlzLmdldEVuZ2luZSgpLG9zOnRoaXMuZ2V0T1MoKSxkZXZpY2U6dGhpcy5nZXREZXZpY2UoKSxjcHU6dGhpcy5nZXRDUFUoKX19LHRoaXMuZ2V0VUE9ZnVuY3Rpb24oKXtyZXR1cm4gcn0sdGhpcy5zZXRVQT1mdW5jdGlvbihlKXtyZXR1cm4gcj10eXBlb2YgZT09PXUmJmUubGVuZ3RoPjM1MD96KGUsMzUwKTplLHRoaXN9LHRoaXMuc2V0VUEociksdGhpc307Si5WRVJTSU9OPVwiMS4wLjM0XCIsSi5CUk9XU0VSPUcoW3AsZyxsXSksSi5DUFU9RyhbbV0pLEouREVWSUNFPUcoW2QsaCxmLHYsXyxiLEUsUyx5XSksSi5FTkdJTkU9Si5PUz1HKFtwLGddKSx0eXBlb2YgdCE9PXM/KGUuZXhwb3J0cyYmKHQ9ZS5leHBvcnRzPUopLHQuVUFQYXJzZXI9Sik6bi5hbWRPPyhyPWZ1bmN0aW9uKCl7cmV0dXJuIEp9LmNhbGwodCxuLHQsZSkpPT09b3x8KGUuZXhwb3J0cz1yKTp0eXBlb2YgaSE9PXMmJihpLlVBUGFyc2VyPUopO3ZhciBYPXR5cGVvZiBpIT09cyYmKGkualF1ZXJ5fHxpLlplcHRvKTtpZihYJiYhWC51YSl7dmFyIFE9bmV3IEo7WC51YT1RLmdldFJlc3VsdCgpLFgudWEuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIFEuZ2V0VUEoKX0sWC51YS5zZXQ9ZnVuY3Rpb24oZSl7US5zZXRVQShlKTt2YXIgdD1RLmdldFJlc3VsdCgpO2Zvcih2YXIgbiBpbiB0KVgudWFbbl09dFtuXX19fShcIm9iamVjdFwiPT09dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyl9LDIwOTg4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmNyZWF0ZUNvbmZpZ0NvbnRleHQ9dC5jb25maWdDb250ZXh0PXQuZGVmYXVsdENvbnRleHQ9dm9pZCAwO2NvbnN0IHI9big4NTg5MyksaT1uKDY3Mjk0KSxvPW4oNTA5OTkpLGE9big0MDIwOCkscz1uKDI3MDAyKSxjPW4oNzI1MjgpLHU9big2NzM2MSksbD1uKDc1NTUxKSxkPW4oMTMwMDQpO3QuZGVmYXVsdENvbnRleHQ9e2NvbmZpZ3M6W10saXNMb2FkaW5nOiExLGhhc0ZldGNoZWRDb25maWdzOiExLHVzZXJIYXNPcHRlZE91dE9mRXhwZXJpbWVudHM6ITEsY291bnRyeUNvZGU6XCJaWlwifSx0LmNvbmZpZ0NvbnRleHQ9KDAsaS5jcmVhdGVDb250ZXh0KSh0LmRlZmF1bHRDb250ZXh0KSx0LmNyZWF0ZUNvbmZpZ0NvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJue1Byb3ZpZGVyOmZ1bmN0aW9uKG4pe2NvbnN0IGE9KDAsaS51c2VDb250ZXh0KSh0LmNvbmZpZ0NvbnRleHQpLHtleHBlcmltZW50TmFtZXNwYWNlczpjLHdlYkNsaWVudElkOmwsY291bnRyeUNvZGU6cH09bixbZixoXT0oMCxpLnVzZVN0YXRlKSh2b2lkIDApLFtnLG1dPSgwLGkudXNlU3RhdGUpKCExKTsoMCxpLnVzZUVmZmVjdCkoKCgpPT57bSgoKCk9PigwLHUudXNlck9wdGVkT3V0T2ZFc3NlbnRpYWxDb29raWVzKSgpPz8hMCkpfSksW10pLCgwLGkudXNlRWZmZWN0KSgoKCk9PntsZXQgdD0hMDtyZXR1cm4gbCYmISgwLGQuaXNUaWt0b2spKCkmJihoKChlPT4oe2NvbmZpZ3M6W10saXNMb2FkaW5nOiEwLGhhc0ZldGNoZWRDb25maWdzOmU/Lmhhc0ZldGNoZWRDb25maWdzfHwhMX0pKSksYS5oYXNGZXRjaGVkQ29uZmlnc3x8KDAsby5mZXRjaENvbmZpZ3MpKHt3ZWJDbGllbnRJZDpsLG5hbWVzcGFjZXM6QXJyYXkuZnJvbShuZXcgU2V0KFsuLi5lLC4uLmN8fFtdXSkpfSkudGhlbigoZT0+e3QmJmgoe2lzTG9hZGluZzohMSxjb25maWdzOmUsaGFzRmV0Y2hlZENvbmZpZ3M6ITB9KX0pKS5jYXRjaCgoZT0+e3QmJihzLmxvZy5lcnJvcihcIkNvdWxkIG5vdCBmZXRjaCBjb25maWdzOlwiLGUpLGgoe2NvbmZpZ3M6W10saXNMb2FkaW5nOiExLGhhc0ZldGNoZWRDb25maWdzOiEwfSkpfSkpKSwoKT0+e3Q9ITF9fSksW3AsYyxsLGEuaGFzRmV0Y2hlZENvbmZpZ3NdKTtjb25zdCB2PSgwLGkudXNlTWVtbykoKCgpPT4oey4uLmY/P3QuZGVmYXVsdENvbnRleHQsdXNlckhhc09wdGVkT3V0T2ZFeHBlcmltZW50czpnLGNvdW50cnlDb2RlOnB9KSksW2YsZyxwXSk7cmV0dXJuKDAsci5qc3gpKHQuY29uZmlnQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6dixjaGlsZHJlbjpuLmNoaWxkcmVufSl9LHVzZUNvbmZpZ3M6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLnVzZUNvbnRleHQpKHQuY29uZmlnQ29udGV4dCkuY29uZmlnc30sRXhwZXJpbWVudDpmdW5jdGlvbihlKXtjb25zdHtjaGlsZHJlbjpuLGNvbmZpZ0lkOnIsd2ViQ2xpZW50SWQ6cyxvbkxvZ0V4cG9zdXJlOnUscGFnZVR5cGVOYW1lOnB9PWUse2lzTG9hZGluZzpmLGNvbmZpZ3M6aCxoYXNGZXRjaGVkQ29uZmlnczpnLHVzZXJIYXNPcHRlZE91dE9mRXhwZXJpbWVudHM6bSxjb3VudHJ5Q29kZTp2fT0oMCxpLnVzZUNvbnRleHQpKHQuY29uZmlnQ29udGV4dCksXz0oMCxpLnVzZU1lbW8pKCgoKT0+aHx8W10pLFtoXSksRT0oMCxjLnVzZVVybENvbmZpZ092ZXJyaWRlKShyLF8pLGI9KDAsYS51c2VVcmxFeHBlcmltZW50T3ZlcnJpZGUpKHIsXyksUz0oMCxpLnVzZVJlZikodSk7cmV0dXJuIFMuY3VycmVudD11LCgwLGkudXNlRWZmZWN0KSgoKCk9PntpZighKDAsZC5pc1Rpa3RvaykoKSYmcyYmRSl7Y29uc3QgZT17Y291bnRyeUNvZGU6dn07KDAsby5sb2dFeHBvc3VyZSkoRSxzLHAsZSkuZmluYWxseSgoKCk9PntTLmN1cnJlbnQ/LihiKX0pKX19KSxbdixFLHMscCxiXSksKDAsZC5pc1Rpa3RvaykoKT9uKHt0cmVhdG1lbnRWYWx1ZTpsLlRyZWF0bWVudFZhbHVlLkNvbnRyb2wsaXNMb2FkaW5nOiExLGhhc0ZldGNoZWRDb25maWdzOiExLHVzZXJIYXNPcHRlZE91dE9mRXhwZXJpbWVudHM6ITB9KTpuKHt0cmVhdG1lbnRWYWx1ZTpiLGlzTG9hZGluZzpmLGhhc0ZldGNoZWRDb25maWdzOmcsdXNlckhhc09wdGVkT3V0T2ZFeHBlcmltZW50czptfSl9LHVzZVRyZWF0bWVudDpmdW5jdGlvbihlKXtjb25zdHtjb25maWdzOm59PSgwLGkudXNlQ29udGV4dCkodC5jb25maWdDb250ZXh0KSxyPSgwLGkudXNlTWVtbykoKCgpPT5ufHxbXSksW25dKTtyZXR1cm4oMCxhLnVzZVVybEV4cGVyaW1lbnRPdmVycmlkZSkoZSxyKX19fX0sNTA5OTk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZmV0Y2hDb25maWdzPXQubG9nRXhwb3N1cmU9dC5jcmVhdGVFeHBvc3VyZUxvZ2dlcj12b2lkIDA7Y29uc3QgaT1uKDM0ODQ5KSxvPXIobig0NDg1OCkpLGE9bigzMzM5OCkscz1uKDE4MDE1KTtmdW5jdGlvbiBjKCl7Y29uc3QgZT1uZXcgU2V0O3JldHVybiBhc3luYyBmdW5jdGlvbih0LG4scixjKXtpZighKDAscy5pc0FsbG93ZWRIb3N0KSgpfHxlLmhhcyh0LmNvbmZpZ0lkKSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dHJ5e2UuYWRkKHQuY29uZmlnSWQpLGF3YWl0KDAsaS5iYXRjaFVwZGF0ZUFiRXhwb3N1cmUpKHthYkV4cG9zdXJlRGF0YTpbe2lkOnt0eXBlOmkuSWRUeXBlLldFQl9DTElFTlQsdmFsdWU6bn0sc3R1ZHlUcmVhdG1lbnRJbmZvOlt7c3R1ZHlOYW1lOnQuc3R1ZHlOYW1lLHRyZWF0bWVudElkOnQuZXhwZXJpbWVudElkfV0sbG9nZ2luZ1R5cGU6aS5Mb2dnaW5nVHlwZS5TRVJWRVJfVFJJR0dFUixwcm9wZXJ0aWVzOntnZW9EYXRhOntjb3VudHJ5Q29kZTpjLmNvdW50cnlDb2RlLnRvTG93ZXJDYXNlKCl9fX1dfSksKDAsYS5pbmNyZW1lbnRDb3VudGVyKSh0LmNvbmZpZ0lkLHIpLGF3YWl0IG8uZGVmYXVsdC5mbHVzaCgpfWNhdGNoKHUpe2UuZGVsZXRlKHQuY29uZmlnSWQpfX19dC5jcmVhdGVFeHBvc3VyZUxvZ2dlcj1jLHQubG9nRXhwb3N1cmU9YygpLHQuZmV0Y2hDb25maWdzPWFzeW5jIGZ1bmN0aW9uKHt3ZWJDbGllbnRJZDplLG5hbWVzcGFjZXM6dH0pe3JldHVybihhd2FpdCgwLGkudGFyZ2V0aW5nUXVlcnkpKHtuYW1lc3BhY2VzOnQscnVpZDp7c3RyaW5nVmFsdWU6ZSx0eXBlOmkuUnVpZFR5cGUuV0VCX0NMSUVOVH19KSkuY29uZmlnUmVzdWx0c319LDMzMzk4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmluY3JlbWVudENvdW50ZXI9dm9pZCAwO2NvbnN0IGk9cihuKDQ0ODU4KSk7dC5pbmNyZW1lbnRDb3VudGVyPWZ1bmN0aW9uKGUsdCxuPTEscil7Y29uc3Qgbz1gV2ViU3Rvcmllcy5FeHBlcmltZW50LiR7ZX0uJHt0fS5FeHBvc3VyZUxvZ2dlZGA7aS5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6byxkaW1lbnNpb25zOnIsdmFsdWU6bn0pfX0sMTgwMTU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaXNBbGxvd2VkSG9zdD12b2lkIDA7Y29uc3Qgcj1uKDMwNjcyKSxpPVtcImxvY2FsaG9zdFwiLFwibWVzaC5zYy1jb3JwXCIsXCJicy1sb2NhbC5jb21cIl07dC5pc0FsbG93ZWRIb3N0PWZ1bmN0aW9uKCl7cmV0dXJuIWkuc29tZSgoZT0+d2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhvc3QuaW5jbHVkZXMoZSkpKSYmISgwLHIuaXNSdW5uaW5nT25TZXJ2ZXIpKCl9fSw1OTgxMTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5UcmVhdG1lbnRWYWx1ZT10LmRlZmF1bHRDb250ZXh0PXQuY29uZmlnQ29udGV4dD10LmNyZWF0ZUNvbmZpZ0NvbnRleHQ9dC5mZXRjaENvbmZpZ3M9dC5OYW1lc3BhY2U9dC5pbml0Q29uZmlnc0NsaWVudD12b2lkIDA7dmFyIHI9bigzNDg0OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJpbml0Q29uZmlnc0NsaWVudFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLmluaXRDb25maWdzQ2xpZW50fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiTmFtZXNwYWNlXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuTmFtZXNwYWNlfX0pO3ZhciBpPW4oNTA5OTkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiZmV0Y2hDb25maWdzXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuZmV0Y2hDb25maWdzfX0pO3ZhciBvPW4oMjA5ODgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiY3JlYXRlQ29uZmlnQ29udGV4dFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmNyZWF0ZUNvbmZpZ0NvbnRleHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJjb25maWdDb250ZXh0XCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uY29uZmlnQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImRlZmF1bHRDb250ZXh0XCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uZGVmYXVsdENvbnRleHR9fSk7dmFyIGE9big3NTU1MSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJUcmVhdG1lbnRWYWx1ZVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLlRyZWF0bWVudFZhbHVlfX0pfSw2MTUwMDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5nZXRVcmxPdmVycmlkZUNvbmZpZz12b2lkIDA7Y29uc3Qgcj1uKDMwNjcyKTt0LmdldFVybE92ZXJyaWRlQ29uZmlnPWZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93KXJldHVybjtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KGBDT05GSUc6JHtlfWApO3JldHVybiB0JiYoKDAsci5pc1J1bm5pbmdPbkRldkVudikoKXx8KDAsci5pc1NlY3Byb3h5RG9tYWluKSgpfHwoMCxyLmlzUnVubmluZ09uQlNMb2NhbCkoKXx8KDAsci5pc1J1bm5pbmdPblN0YWdpbmcpKCl8fCgwLHIuaXNSdW5uaW5nT25DbG91ZGZyb250KSgpKT97Y29uZmlnSWQ6ZSx2YWx1ZTp7c3RyaW5nVmFsdWU6U3RyaW5nKHQpfX06dm9pZCAwfX0sNzU1NTE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQudXNlRXhwZXJpbWVudFRyZWF0bWVudD10LlRyZWF0bWVudFZhbHVlPXZvaWQgMDtjb25zdCByPW4oNjcyOTQpO3ZhciBpOyFmdW5jdGlvbihlKXtlLkNvbnRyb2w9XCJjb250cm9sXCIsZS5UcmVhdG1lbnQwPVwidHJlYXRtZW50XzBcIixlLlRyZWF0bWVudDE9XCJ0cmVhdG1lbnRfMVwiLGUuVHJlYXRtZW50Mj1cInRyZWF0bWVudF8yXCIsZS5UcmVhdG1lbnQzPVwidHJlYXRtZW50XzNcIn0oaT10LlRyZWF0bWVudFZhbHVlfHwodC5UcmVhdG1lbnRWYWx1ZT17fSkpLHQudXNlRXhwZXJpbWVudFRyZWF0bWVudD1mdW5jdGlvbihlLHQ9W10pe2NvbnN0IG49KDAsci51c2VNZW1vKSgoKCk9PnQuZmluZCgodD0+dC5jb25maWdJZD09PWUpKSksW3QsZV0pO3JldHVybiB0Lmxlbmd0aDwxP2kuQ29udHJvbDpuJiZuLnZhbHVlJiZuLnZhbHVlLnN0cmluZ1ZhbHVlP24udmFsdWUuc3RyaW5nVmFsdWU6aS5Db250cm9sfX0sNzI1Mjg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQudXNlVXJsQ29uZmlnT3ZlcnJpZGU9dm9pZCAwO2NvbnN0IHI9big2NzI5NCksaT1uKDYxNTAwKTt0LnVzZVVybENvbmZpZ092ZXJyaWRlPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj0oMCxyLnVzZU1lbW8pKCgoKT0+dC5maW5kKCh0PT50LmNvbmZpZ0lkPT09ZSkpKSxbdCxlXSksbz0oMCxyLnVzZU1lbW8pKCgoKT0+KDAsaS5nZXRVcmxPdmVycmlkZUNvbmZpZykoZSkpLFtlXSk7cmV0dXJuIG98fG59fSw0MDIwODpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC51c2VVcmxFeHBlcmltZW50T3ZlcnJpZGU9dm9pZCAwO2NvbnN0IHI9big2NzI5NCksaT1uKDYxNTAwKSxvPW4oNzU1NTEpO3QudXNlVXJsRXhwZXJpbWVudE92ZXJyaWRlPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj0oMCxvLnVzZUV4cGVyaW1lbnRUcmVhdG1lbnQpKGUsdCksYT0oMCxyLnVzZU1lbW8pKCgoKT0+KDAsaS5nZXRVcmxPdmVycmlkZUNvbmZpZykoZSkpLFtlXSk7cmV0dXJuIGE/YS52YWx1ZS5zdHJpbmdWYWx1ZTpufX0sNDE4NTE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaXNEZXNrdG9wVUE9dC5pc1Rpa3Rvaz10LmV4dHJhY3RCcm93c2VyPXQuZXh0cmFjdERldmljZURhdGE9dC5leHRyYWN0QnJvd3Nlck5hbWU9dC5leHRyYWN0VUE9dm9pZCAwO2NvbnN0IHI9big4MzQyMiksaT1bXCJ3aW5kb3dzXCIsXCJtYWNcIixcImxpbnV4XCJdO2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZS5pbmNsdWRlcyhcImJ5dGVkYW5jZVwiKXx8ZS5pbmNsdWRlcyhcInRpa3Rva1wiKXx8ZS5pbmNsdWRlcyhcIm11c2ljYWxfbHlcIik/XCJUaWtUb2tcIjplLmluY2x1ZGVzKFwic25hcGNoYXRcIik/XCJTbmFwY2hhdFwiOnR9ZnVuY3Rpb24gYShlKXtjb25zdCB0PWU/P25ldyByLlVBUGFyc2VyLG49dC5nZXREZXZpY2UoKSxvPXQuZ2V0T1MoKS5uYW1lO3JldHVybiFuLnR5cGUmJm8mJmkuZmlsdGVyKChlPT5vLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZSkpKS5sZW5ndGgmJihuLnR5cGU9XCJkZXNrdG9wXCIsbi5tb2RlbD1vKSxcIm1vYmlsZVwiPT09bi50eXBlJiYhbi5tb2RlbCYmbyYmby50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYW5kcm9pZFwiKSYmKG4ubW9kZWw9XCJBbmRyb2lkXCIpLG59dC5leHRyYWN0VUE9ZnVuY3Rpb24oKXtjb25zdCBlPW5ldyByLlVBUGFyc2VyLHQ9ZS5nZXRCcm93c2VyKCksbj1hKGUpLGk9ZS5nZXRPUygpLm5hbWU7cmV0dXJue2Jyb3dzZXJOYW1lOm8oZS5nZXRVQSgpLnRvTG93ZXJDYXNlKCksdC5uYW1lKSxvczppLGRldmljZU1hbnVmYWN0dXJlcjpuLnZlbmRvcixkZXZpY2VOYW1lOm4ubW9kZWwsZGV2aWNlVHlwZTpuLnR5cGV9fSx0LmV4dHJhY3RCcm93c2VyTmFtZT1vLHQuZXh0cmFjdERldmljZURhdGE9YSx0LmV4dHJhY3RCcm93c2VyPWZ1bmN0aW9uKCl7cmV0dXJue2Nhbm9uaWNhbFVybDp3aW5kb3cubG9jYXRpb24uaHJlZixyZWZlcnJlcjpkb2N1bWVudC5yZWZlcnJlcixkZXZpY2VTY3JlZW5XaWR0aDp3aW5kb3cuc2NyZWVuLndpZHRoLnRvU3RyaW5nKCksZGV2aWNlU2NyZWVuSGVpZ2h0OndpbmRvdy5zY3JlZW4uaGVpZ2h0LnRvU3RyaW5nKCl9fSx0LmlzVGlrdG9rPWZ1bmN0aW9uKCl7Y29uc3QgZT1uZXcgci5VQVBhcnNlcix0PWUuZ2V0QnJvd3NlcigpO3JldHVyblwiVGlrVG9rXCI9PT1vKGUuZ2V0VUEoKS50b0xvd2VyQ2FzZSgpLHQubmFtZSl9LHQuaXNEZXNrdG9wVUE9ZnVuY3Rpb24oZSl7cmV0dXJuXCJkZXNrdG9wXCI9PT1hKGUpLnR5cGV9fSwxMzAwNDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTtpJiYhKFwiZ2V0XCJpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpfHwoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLGkpfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxpPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiPT09bnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbil8fHIodCxlLG4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxpKG4oNDE4NTEpLHQpfSw4MzQyMjpmdW5jdGlvbihlLHQsbil7dmFyIHI7IWZ1bmN0aW9uKGksbyl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGE9XCJmdW5jdGlvblwiLHM9XCJ1bmRlZmluZWRcIixjPVwib2JqZWN0XCIsdT1cInN0cmluZ1wiLGw9XCJtYWpvclwiLGQ9XCJtb2RlbFwiLHA9XCJuYW1lXCIsZj1cInR5cGVcIixoPVwidmVuZG9yXCIsZz1cInZlcnNpb25cIixtPVwiYXJjaGl0ZWN0dXJlXCIsdj1cImNvbnNvbGVcIixfPVwibW9iaWxlXCIsRT1cInRhYmxldFwiLGI9XCJzbWFydHR2XCIsUz1cIndlYXJhYmxlXCIseT1cImVtYmVkZGVkXCIsVD1cIkFtYXpvblwiLEk9XCJBcHBsZVwiLE89XCJBU1VTXCIsQT1cIkJsYWNrQmVycnlcIixDPVwiRmlyZWZveFwiLE49XCJHb29nbGVcIixrPVwiSHVhd2VpXCIsUD1cIkxHXCIsUj1cIk1pY3Jvc29mdFwiLHc9XCJNb3Rvcm9sYVwiLEw9XCJPcGVyYVwiLEI9XCJTYW1zdW5nXCIsTT1cIlNoYXJwXCIsRD1cIlNvbnlcIixqPVwiWGlhb21pXCIseD1cIlplYnJhXCIsVT1cIkZhY2Vib29rXCIsRj1cIkNocm9taXVtIE9TXCIsSD1cIk1hYyBPU1wiLEc9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MDtuPGUubGVuZ3RoO24rKyl0W2Vbbl0udG9VcHBlckNhc2UoKV09ZVtuXTtyZXR1cm4gdH0sVz1mdW5jdGlvbihlLHQpe3JldHVybiB0eXBlb2YgZT09PXUmJi0xIT09Vih0KS5pbmRleE9mKFYoZSkpfSxWPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9LHo9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09PXUpcmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxzXFxzKi8sXCJcIiksdHlwZW9mIHQ9PT1zP2U6ZS5zdWJzdHJpbmcoMCwzNTApfSxLPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHIsaSxzLHUsbCxkPTA7ZDx0Lmxlbmd0aCYmIXU7KXt2YXIgcD10W2RdLGY9dFtkKzFdO2ZvcihuPXI9MDtuPHAubGVuZ3RoJiYhdSYmcFtuXTspaWYodT1wW24rK10uZXhlYyhlKSlmb3IoaT0wO2k8Zi5sZW5ndGg7aSsrKWw9dVsrK3JdLHR5cGVvZihzPWZbaV0pPT09YyYmcy5sZW5ndGg+MD8yPT09cy5sZW5ndGg/dHlwZW9mIHNbMV09PWE/dGhpc1tzWzBdXT1zWzFdLmNhbGwodGhpcyxsKTp0aGlzW3NbMF1dPXNbMV06Mz09PXMubGVuZ3RoP3R5cGVvZiBzWzFdIT09YXx8c1sxXS5leGVjJiZzWzFdLnRlc3Q/dGhpc1tzWzBdXT1sP2wucmVwbGFjZShzWzFdLHNbMl0pOm86dGhpc1tzWzBdXT1sP3NbMV0uY2FsbCh0aGlzLGwsc1syXSk6bzo0PT09cy5sZW5ndGgmJih0aGlzW3NbMF1dPWw/c1szXS5jYWxsKHRoaXMsbC5yZXBsYWNlKHNbMV0sc1syXSkpOm8pOnRoaXNbc109bHx8bztkKz0yfX0sWT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KWlmKHR5cGVvZiB0W25dPT09YyYmdFtuXS5sZW5ndGg+MCl7Zm9yKHZhciByPTA7cjx0W25dLmxlbmd0aDtyKyspaWYoVyh0W25dW3JdLGUpKXJldHVyblwiP1wiPT09bj9vOm59ZWxzZSBpZihXKHRbbl0sZSkpcmV0dXJuXCI/XCI9PT1uP286bjtyZXR1cm4gZX0scT17TUU6XCI0LjkwXCIsXCJOVCAzLjExXCI6XCJOVDMuNTFcIixcIk5UIDQuMFwiOlwiTlQ0LjBcIiwyZTM6XCJOVCA1LjBcIixYUDpbXCJOVCA1LjFcIixcIk5UIDUuMlwiXSxWaXN0YTpcIk5UIDYuMFwiLDc6XCJOVCA2LjFcIiw4OlwiTlQgNi4yXCIsOC4xOlwiTlQgNi4zXCIsMTA6W1wiTlQgNi40XCIsXCJOVCAxMC4wXCJdLFJUOlwiQVJNXCJ9LFo9e2Jyb3dzZXI6W1svXFxiKD86Y3Jtb3xjcmlvcylcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkNocm9tZVwiXV0sWy9lZGcoPzplfGlvc3xhKT9cXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkVkZ2VcIl1dLFsvKG9wZXJhIG1pbmkpXFwvKFstXFx3XFwuXSspL2ksLyhvcGVyYSBbbW9iaWxldGFiXXszLDZ9KVxcYi4rdmVyc2lvblxcLyhbLVxcd1xcLl0rKS9pLC8ob3BlcmEpKD86Lit2ZXJzaW9uXFwvfFtcXC8gXSspKFtcXHdcXC5dKykvaV0sW3AsZ10sWy9vcGlvc1tcXC8gXSsoW1xcd1xcLl0rKS9pXSxbZyxbcCxcIk9wZXJhIE1pbmlcIl1dLFsvXFxib3ByXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsTF1dLFsvKGtpbmRsZSlcXC8oW1xcd1xcLl0rKS9pLC8obHVuYXNjYXBlfG1heHRob258bmV0ZnJvbnR8amFzbWluZXxibGF6ZXIpW1xcLyBdPyhbXFx3XFwuXSopL2ksLyhhdmFudCB8aWVtb2JpbGV8c2xpbSkoPzpicm93c2VyKT9bXFwvIF0/KFtcXHdcXC5dKikvaSwvKGJhP2lkdWJyb3dzZXIpW1xcLyBdPyhbXFx3XFwuXSspL2ksLyg/Om1zfFxcKCkoaWUpIChbXFx3XFwuXSspL2ksLyhmbG9ja3xyb2NrbWVsdHxtaWRvcml8ZXBpcGhhbnl8c2lsa3xza3lmaXJlfGJvbHR8aXJvbnx2aXZhbGRpfGlyaWRpdW18cGhhbnRvbWpzfGJvd3NlcnxxdWFya3xxdXB6aWxsYXxmYWxrb258cmVrb25xfHB1ZmZpbnxicmF2ZXx3aGFsZSg/IS4rbmF2ZXIpfHFxYnJvd3NlcmxpdGV8cXF8ZHVja2R1Y2tnbylcXC8oWy1cXHdcXC5dKykvaSwvKGhleXRhcHxvdmkpYnJvd3NlclxcLyhbXFxkXFwuXSspL2ksLyh3ZWlibylfXyhbXFxkXFwuXSspL2ldLFtwLGddLFsvKD86XFxidWM/ID9icm93c2VyfCg/Omp1Yy4rKXVjd2ViKVtcXC8gXT8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIlVDQnJvd3NlclwiXV0sWy9taWNyb20uK1xcYnFiY29yZVxcLyhbXFx3XFwuXSspL2ksL1xcYnFiY29yZVxcLyhbXFx3XFwuXSspLittaWNyb20vaV0sW2csW3AsXCJXZUNoYXQoV2luKSBEZXNrdG9wXCJdXSxbL21pY3JvbWVzc2VuZ2VyXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJXZUNoYXRcIl1dLFsva29ucXVlcm9yXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJLb25xdWVyb3JcIl1dLFsvdHJpZGVudC4rcnZbOiBdKFtcXHdcXC5dezEsOX0pXFxiLitsaWtlIGdlY2tvL2ldLFtnLFtwLFwiSUVcIl1dLFsveWEoPzpzZWFyY2gpP2Jyb3dzZXJcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIllhbmRleFwiXV0sWy8oYXZhc3R8YXZnKVxcLyhbXFx3XFwuXSspL2ldLFtbcCwvKC4rKS8sXCIkMSBTZWN1cmUgQnJvd3NlclwiXSxnXSxbL1xcYmZvY3VzXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJGaXJlZm94IEZvY3VzXCJdXSxbL1xcYm9wdFxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiT3BlcmEgVG91Y2hcIl1dLFsvY29jX2NvY1xcdytcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkNvYyBDb2NcIl1dLFsvZG9sZmluXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJEb2xwaGluXCJdXSxbL2NvYXN0XFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJPcGVyYSBDb2FzdFwiXV0sWy9taXVpYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiTUlVSSBCcm93c2VyXCJdXSxbL2Z4aW9zXFwvKFstXFx3XFwuXSspL2ldLFtnLFtwLENdXSxbL1xcYnFpaHV8KHFpP2hvP28/fDM2MClicm93c2VyL2ldLFtbcCxcIjM2MCBCcm93c2VyXCJdXSxbLyhvY3VsdXN8c2Ftc3VuZ3xzYWlsZmlzaHxodWF3ZWkpYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtbcCwvKC4rKS8sXCIkMSBCcm93c2VyXCJdLGddLFsvKGNvbW9kb19kcmFnb24pXFwvKFtcXHdcXC5dKykvaV0sW1twLC9fL2csXCIgXCJdLGddLFsvKGVsZWN0cm9uKVxcLyhbXFx3XFwuXSspIHNhZmFyaS9pLC8odGVzbGEpKD86IHF0Y2FyYnJvd3NlcnxcXC8oMjBcXGRcXGRcXC5bLVxcd1xcLl0rKSkvaSwvbT8ocXFicm93c2VyfGJhaWR1Ym94YXBwfDIzNDVFeHBsb3JlcilbXFwvIF0/KFtcXHdcXC5dKykvaV0sW3AsZ10sWy8obWV0YXNyKVtcXC8gXT8oW1xcd1xcLl0rKS9pLC8obGJicm93c2VyKS9pLC9cXFsobGlua2VkaW4pYXBwXFxdL2ldLFtwXSxbLygoPzpmYmFuXFwvZmJpb3N8ZmJfaWFiXFwvZmI0YSkoPyEuK2ZiYXYpfDtmYmF2XFwvKFtcXHdcXC5dKyk7KS9pXSxbW3AsVV0sZ10sWy8oa2FrYW8oPzp0YWxrfHN0b3J5KSlbXFwvIF0oW1xcd1xcLl0rKS9pLC8obmF2ZXIpXFwoLio/KFxcZCtcXC5bXFx3XFwuXSspLipcXCkvaSwvc2FmYXJpIChsaW5lKVxcLyhbXFx3XFwuXSspL2ksL1xcYihsaW5lKVxcLyhbXFx3XFwuXSspXFwvaWFiL2ksLyhjaHJvbWl1bXxpbnN0YWdyYW0pW1xcLyBdKFstXFx3XFwuXSspL2ldLFtwLGddLFsvXFxiZ3NhXFwvKFtcXHdcXC5dKykgLipzYWZhcmlcXC8vaV0sW2csW3AsXCJHU0FcIl1dLFsvbXVzaWNhbF9seSg/Oi4rYXBwXz92ZXJzaW9uXFwvfF8pKFtcXHdcXC5dKykvaV0sW2csW3AsXCJUaWtUb2tcIl1dLFsvaGVhZGxlc3NjaHJvbWUoPzpcXC8oW1xcd1xcLl0rKXwgKS9pXSxbZyxbcCxcIkNocm9tZSBIZWFkbGVzc1wiXV0sWy8gd3ZcXCkuKyhjaHJvbWUpXFwvKFtcXHdcXC5dKykvaV0sW1twLFwiQ2hyb21lIFdlYlZpZXdcIl0sZ10sWy9kcm9pZC4rIHZlcnNpb25cXC8oW1xcd1xcLl0rKVxcYi4rKD86bW9iaWxlIHNhZmFyaXxzYWZhcmkpL2ldLFtnLFtwLFwiQW5kcm9pZCBCcm93c2VyXCJdXSxbLyhjaHJvbWV8b21uaXdlYnxhcm9yYXxbdGl6ZW5va2FdezV9ID9icm93c2VyKVxcL3Y/KFtcXHdcXC5dKykvaV0sW3AsZ10sWy92ZXJzaW9uXFwvKFtcXHdcXC5cXCxdKykgLiptb2JpbGVcXC9cXHcrIChzYWZhcmkpL2ldLFtnLFtwLFwiTW9iaWxlIFNhZmFyaVwiXV0sWy92ZXJzaW9uXFwvKFtcXHcoXFwufFxcLCldKykgLioobW9iaWxlID9zYWZhcml8c2FmYXJpKS9pXSxbZyxwXSxbL3dlYmtpdC4rPyhtb2JpbGUgP3NhZmFyaXxzYWZhcmkpKFxcL1tcXHdcXC5dKykvaV0sW3AsW2csWSx7XCIxLjBcIjpcIi84XCIsMS4yOlwiLzFcIiwxLjM6XCIvM1wiLFwiMi4wXCI6XCIvNDEyXCIsXCIyLjAuMlwiOlwiLzQxNlwiLFwiMi4wLjNcIjpcIi80MTdcIixcIjIuMC40XCI6XCIvNDE5XCIsXCI/XCI6XCIvXCJ9XV0sWy8od2Via2l0fGtodG1sKVxcLyhbXFx3XFwuXSspL2ldLFtwLGddLFsvKG5hdmlnYXRvcnxuZXRzY2FwZVxcZD8pXFwvKFstXFx3XFwuXSspL2ldLFtbcCxcIk5ldHNjYXBlXCJdLGddLFsvbW9iaWxlIHZyOyBydjooW1xcd1xcLl0rKVxcKS4rZmlyZWZveC9pXSxbZyxbcCxcIkZpcmVmb3ggUmVhbGl0eVwiXV0sWy9la2lvaGYuKyhmbG93KVxcLyhbXFx3XFwuXSspL2ksLyhzd2lmdGZveCkvaSwvKGljZWRyYWdvbnxpY2V3ZWFzZWx8Y2FtaW5vfGNoaW1lcmF8ZmVubmVjfG1hZW1vIGJyb3dzZXJ8bWluaW1vfGNvbmtlcm9yfGtsYXIpW1xcLyBdPyhbXFx3XFwuXFwrXSspL2ksLyhzZWFtb25rZXl8ay1tZWxlb258aWNlY2F0fGljZWFwZXxmaXJlYmlyZHxwaG9lbml4fHBhbGVtb29ufGJhc2lsaXNrfHdhdGVyZm94KVxcLyhbLVxcd1xcLl0rKSQvaSwvKGZpcmVmb3gpXFwvKFtcXHdcXC5dKykvaSwvKG1vemlsbGEpXFwvKFtcXHdcXC5dKykgLitydlxcOi4rZ2Vja29cXC9cXGQrL2ksLyhwb2xhcmlzfGx5bnh8ZGlsbG98aWNhYnxkb3Jpc3xhbWF5YXx3M218bmV0c3VyZnxzbGVpcG5pcnxvYmlnb3xtb3NhaWN8KD86Z298aWNlfHVwKVtcXC4gXT9icm93c2VyKVstXFwvIF0/dj8oW1xcd1xcLl0rKS9pLC8obGlua3MpIFxcKChbXFx3XFwuXSspL2ksL3BhbmFzb25pYzsodmllcmEpL2ldLFtwLGddLFsvKGNvYmFsdClcXC8oW1xcd1xcLl0rKS9pXSxbcCxbZywvbWFzdGVyLnxsdHMuLyxcIlwiXV1dLGNwdTpbWy8oPzooYW1kfHgoPzooPzo4Nnw2NClbLV9dKT98d293fHdpbik2NClbO1xcKV0vaV0sW1ttLFwiYW1kNjRcIl1dLFsvKGlhMzIoPz07KSkvaV0sW1ttLFZdXSxbLygoPzppWzM0Nl18eCk4NilbO1xcKV0vaV0sW1ttLFwiaWEzMlwiXV0sWy9cXGIoYWFyY2g2NHxhcm0odj84ZT9sP3xfPzY0KSlcXGIvaV0sW1ttLFwiYXJtNjRcIl1dLFsvXFxiKGFybSg/OnZbNjddKT9odD9uP1tmbF1wPylcXGIvaV0sW1ttLFwiYXJtaGZcIl1dLFsvd2luZG93cyAoY2V8bW9iaWxlKTsgcHBjOy9pXSxbW20sXCJhcm1cIl1dLFsvKCg/OnBwY3xwb3dlcnBjKSg/OjY0KT8pKD86IG1hY3w7fFxcKSkvaV0sW1ttLC9vd2VyLyxcIlwiLFZdXSxbLyhzdW40XFx3KVs7XFwpXS9pXSxbW20sXCJzcGFyY1wiXV0sWy8oKD86YXZyMzJ8aWE2NCg/PTspKXw2OGsoPz1cXCkpfFxcYmFybSg/PXYoPzpbMS03XXxbNS03XTEpbD98O3xlYWJpKXwoPz1hdG1lbCApYXZyfCg/OmlyaXh8bWlwc3xzcGFyYykoPzo2NCk/XFxifHBhLXJpc2MpL2ldLFtbbSxWXV1dLGRldmljZTpbWy9cXGIoc2NoLWlbODldMFxcZHxzaHctbTM4MHN8c20tW3B0eF1cXHd7Miw0fXxndC1bcG5dXFxkezIsNH18c2doLXQ4WzU2XTl8bmV4dXMgMTApL2ldLFtkLFtoLEJdLFtmLEVdXSxbL1xcYigoPzpzW2NncF1ofGd0fHNtKS1cXHcrfHNjW2ctXT9bXFxkXSthP3xnYWxheHkgbmV4dXMpL2ksL3NhbXN1bmdbLSBdKFstXFx3XSspL2ksL3NlYy0oc2doXFx3KykvaV0sW2QsW2gsQl0sW2YsX11dLFsvKD86XFwvfFxcKCkoaXAoPzpob25lfG9kKVtcXHcsIF0qKSg/OlxcL3w7KS9pXSxbZCxbaCxJXSxbZixfXV0sWy9cXCgoaXBhZCk7Wy1cXHdcXCksOyBdK2FwcGxlL2ksL2FwcGxlY29yZW1lZGlhXFwvW1xcd1xcLl0rIFxcKChpcGFkKS9pLC9cXGIoaXBhZClcXGRcXGQ/LFxcZFxcZD9bO1xcXV0uK2lvcy9pXSxbZCxbaCxJXSxbZixFXV0sWy8obWFjaW50b3NoKTsvaV0sW2QsW2gsSV1dLFsvXFxiKHNoLT9bYWx0dnpdP1xcZFxcZFthLWVrbV0/KS9pXSxbZCxbaCxNXSxbZixfXV0sWy9cXGIoKD86YWdbcnNdWzIzXT98YmFoMj98c2h0P3xidHYpLWE/W2x3XVxcZHsyfSlcXGIoPyEuK2RcXC9zKS9pXSxbZCxbaCxrXSxbZixFXV0sWy8oPzpodWF3ZWl8aG9ub3IpKFstXFx3IF0rKVs7XFwpXS9pLC9cXGIobmV4dXMgNnB8XFx3ezIsNH1lPy1bYXR1XT9bbG5dW1xcZHhdWzAxMjM1OWNdW2Fkbl0/KVxcYig/IS4rZFxcL3MpL2ldLFtkLFtoLGtdLFtmLF9dXSxbL1xcYihwb2NvW1xcdyBdKykoPzogYnVpfFxcKSkvaSwvXFxiOyAoXFx3KykgYnVpbGRcXC9obVxcMS9pLC9cXGIoaG1bLV8gXT9ub3RlP1tfIF0/KD86XFxkXFx3KT8pIGJ1aS9pLC9cXGIocmVkbWlbXFwtXyBdPyg/Om5vdGV8ayk/W1xcd18gXSspKD86IGJ1aXxcXCkpL2ksL1xcYihtaVstXyBdPyg/OmFcXGR8b25lfG9uZVtfIF1wbHVzfG5vdGUgbHRlfG1heHxjYyk/W18gXT8oPzpcXGQ/XFx3PylbXyBdPyg/OnBsdXN8c2V8bGl0ZSk/KSg/OiBidWl8XFwpKS9pXSxbW2QsL18vZyxcIiBcIl0sW2gsal0sW2YsX11dLFsvXFxiKG1pWy1fIF0/KD86cGFkKSg/OltcXHdfIF0rKSkoPzogYnVpfFxcKSkvaV0sW1tkLC9fL2csXCIgXCJdLFtoLGpdLFtmLEVdXSxbLzsgKFxcdyspIGJ1aS4rIG9wcG8vaSwvXFxiKGNwaFsxMl1cXGR7M318cCg/OmFmfGNbYWxdfGRcXHd8ZVthcl0pW210XVxcZDB8eDkwMDd8YTEwMW9wKVxcYi9pXSxbZCxbaCxcIk9QUE9cIl0sW2YsX11dLFsvdml2byAoXFx3KykoPzogYnVpfFxcKSkvaSwvXFxiKHZbMTJdXFxkezN9XFx3P1thdF0pKD86IGJ1aXw7KS9pXSxbZCxbaCxcIlZpdm9cIl0sW2YsX11dLFsvXFxiKHJteFsxMl1cXGR7M30pKD86IGJ1aXw7fFxcKSkvaV0sW2QsW2gsXCJSZWFsbWVcIl0sW2YsX11dLFsvXFxiKG1pbGVzdG9uZXxkcm9pZCg/OlsyLTR4XXwgKD86YmlvbmljfHgyfHByb3xyYXpyKSk/Oj8oIDRnKT8pXFxiW1xcdyBdK2J1aWxkXFwvL2ksL1xcYm1vdCg/Om9yb2xhKT9bLSBdKFxcdyopL2ksLygoPzptb3RvW1xcd1xcKFxcKSBdK3x4dFxcZHszLDR9fG5leHVzIDYpKD89IGJ1aXxcXCkpKS9pXSxbZCxbaCx3XSxbZixfXV0sWy9cXGIobXo2MFxcZHx4b29tWzIgXXswLDJ9KSBidWlsZFxcLy9pXSxbZCxbaCx3XSxbZixFXV0sWy8oKD89bGcpP1t2bF1rXFwtP1xcZHszfSkgYnVpfCAzXFwuWy1cXHc7IF17MTB9bGc/LShbMDZjdjldezMsNH0pL2ldLFtkLFtoLFBdLFtmLEVdXSxbLyhsbSg/Oi0/ZjEwMFtudl0/fC1bXFx3XFwuXSspKD89IGJ1aXxcXCkpfG5leHVzIFs0NV0pL2ksL1xcYmxnWy1lO1xcLyBdKygoPyFicm93c2VyfG5ldGNhc3R8YW5kcm9pZCB0dilcXHcrKS9pLC9cXGJsZy0/KFtcXGRcXHddKykgYnVpL2ldLFtkLFtoLFBdLFtmLF9dXSxbLyhpZGVhdGFiWy1cXHcgXSspL2ksL2xlbm92byA/KHNbNTZdMDAwWy1cXHddK3x0YWIoPzpbXFx3IF0rKXx5dFstXFxkXFx3XXs2fXx0YlstXFxkXFx3XXs2fSkvaV0sW2QsW2gsXCJMZW5vdm9cIl0sW2YsRV1dLFsvKD86bWFlbW98bm9raWEpLioobjkwMHxsdW1pYSBcXGQrKS9pLC9ub2tpYVstXyBdPyhbLVxcd1xcLl0qKS9pXSxbW2QsL18vZyxcIiBcIl0sW2gsXCJOb2tpYVwiXSxbZixfXV0sWy8ocGl4ZWwgYylcXGIvaV0sW2QsW2gsTl0sW2YsRV1dLFsvZHJvaWQuKzsgKHBpeGVsW1xcZGF4bCBdezAsNn0pKD86IGJ1aXxcXCkpL2ldLFtkLFtoLE5dLFtmLF9dXSxbL2Ryb2lkLisgKGE/XFxkWzAtMl17Mn1zb3xbYy1nXVxcZHs0fXxzb1stZ2xdXFx3K3x4cS1hXFx3WzQtN11bMTJdKSg/PSBidWl8XFwpLitjaHJvbWVcXC8oPyFbMS02XXswLDF9XFxkXFwuKSkvaV0sW2QsW2gsRF0sW2YsX11dLFsvc29ueSB0YWJsZXQgW3BzXS9pLC9cXGIoPzpzb255KT9zZ3BcXHcrKD86IGJ1aXxcXCkpL2ldLFtbZCxcIlhwZXJpYSBUYWJsZXRcIl0sW2gsRF0sW2YsRV1dLFsvIChrYjIwMDV8aW4yMFsxMl01fGJlMjBbMTJdWzU5XSlcXGIvaSwvKD86b25lKT8oPzpwbHVzKT8gKGFcXGQwXFxkXFxkKSg/OiBifFxcKSkvaV0sW2QsW2gsXCJPbmVQbHVzXCJdLFtmLF9dXSxbLyhhbGV4YSl3ZWJtL2ksLyhrZlthLXpdezJ9d2l8YWVvW2Mtcl17Mn0pKCBidWl8XFwpKS9pLC8oa2ZbYS16XSspKCBidWl8XFwpKS4rc2lsa1xcLy9pXSxbZCxbaCxUXSxbZixFXV0sWy8oKD86c2R8a2YpWzAzNDloaWpvcnN0dXddKykoIGJ1aXxcXCkpLitzaWxrXFwvL2ldLFtbZCwvKC4rKS9nLFwiRmlyZSBQaG9uZSAkMVwiXSxbaCxUXSxbZixfXV0sWy8ocGxheWJvb2spO1stXFx3XFwpLDsgXSsocmltKS9pXSxbZCxoLFtmLEVdXSxbL1xcYigoPzpiYlthLWZdfHN0W2h2XSkxMDAtXFxkKS9pLC9cXChiYjEwOyAoXFx3KykvaV0sW2QsW2gsQV0sW2YsX11dLFsvKD86XFxifGFzdXNfKSh0cmFuc2ZvW3ByaW1lIF17NCwxMH0gXFx3K3xlZWVwY3xzbGlkZXIgXFx3K3xuZXh1cyA3fHBhZGZvbmV8cDAwW2NqXSkvaV0sW2QsW2gsT10sW2YsRV1dLFsvICh6W2Jlc102WzAyN11bMDEyXVtrbV1bbHNdfHplbmZvbmUgXFxkXFx3PylcXGIvaV0sW2QsW2gsT10sW2YsX11dLFsvKG5leHVzIDkpL2ldLFtkLFtoLFwiSFRDXCJdLFtmLEVdXSxbLyhodGMpWy07XyBdezEsMn0oW1xcdyBdKyg/PVxcKXwgYnVpKXxcXHcrKS9pLC8oenRlKVstIF0oW1xcdyBdKz8pKD86IGJ1aXxcXC98XFwpKS9pLC8oYWxjYXRlbHxnZWVrc3Bob25lfG5leGlhbnxwYW5hc29uaWMoPyEoPzo7fFxcLikpfHNvbnkoPyEtYnJhKSlbLV8gXT8oWy1cXHddKikvaV0sW2gsW2QsL18vZyxcIiBcIl0sW2YsX11dLFsvZHJvaWQuKzsgKFthYl1bMS03XS0/WzAxNzhhXVxcZFxcZD8pL2ldLFtkLFtoLFwiQWNlclwiXSxbZixFXV0sWy9kcm9pZC4rOyAobVsxLTVdIG5vdGUpIGJ1aS9pLC9cXGJtei0oWy1cXHddezIsfSkvaV0sW2QsW2gsXCJNZWl6dVwiXSxbZixfXV0sWy8oYmxhY2tiZXJyeXxiZW5xfHBhbG0oPz1cXC0pfHNvbnllcmljc3NvbnxhY2VyfGFzdXN8ZGVsbHxtZWl6dXxtb3Rvcm9sYXxwb2x5dHJvbilbLV8gXT8oWy1cXHddKikvaSwvKGhwKSAoW1xcdyBdK1xcdykvaSwvKGFzdXMpLT8oXFx3KykvaSwvKG1pY3Jvc29mdCk7IChsdW1pYVtcXHcgXSspL2ksLyhsZW5vdm8pWy1fIF0/KFstXFx3XSspL2ksLyhqb2xsYSkvaSwvKG9wcG8pID8oW1xcdyBdKykgYnVpL2ldLFtoLGQsW2YsX11dLFsvKGtvYm8pXFxzKGVyZWFkZXJ8dG91Y2gpL2ksLyhhcmNob3MpIChnYW1lcGFkMj8pL2ksLyhocCkuKyh0b3VjaHBhZCg/IS4rdGFibGV0KXx0YWJsZXQpL2ksLyhraW5kbGUpXFwvKFtcXHdcXC5dKykvaSwvKG5vb2spW1xcdyBdK2J1aWxkXFwvKFxcdyspL2ksLyhkZWxsKSAoc3RyZWFba3ByXFxkIF0qW1xcZGtvXSkvaSwvKGxlWy0gXStwYW4pWy0gXSsoXFx3ezEsOX0pIGJ1aS9pLC8odHJpbml0eSlbLSBdKih0XFxkezN9KSBidWkvaSwvKGdpZ2FzZXQpWy0gXSsocVxcd3sxLDl9KSBidWkvaSwvKHZvZGFmb25lKSAoW1xcdyBdKykoPzpcXCl8IGJ1aSkvaV0sW2gsZCxbZixFXV0sWy8oc3VyZmFjZSBkdW8pL2ldLFtkLFtoLFJdLFtmLEVdXSxbL2Ryb2lkIFtcXGRcXC5dKzsgKGZwXFxkdT8pKD86IGJ8XFwpKS9pXSxbZCxbaCxcIkZhaXJwaG9uZVwiXSxbZixfXV0sWy8odTMwNGFhKS9pXSxbZCxbaCxcIkFUJlRcIl0sW2YsX11dLFsvXFxic2llLShcXHcqKS9pXSxbZCxbaCxcIlNpZW1lbnNcIl0sW2YsX11dLFsvXFxiKHJjdFxcdyspIGIvaV0sW2QsW2gsXCJSQ0FcIl0sW2YsRV1dLFsvXFxiKHZlbnVlW1xcZCBdezIsN30pIGIvaV0sW2QsW2gsXCJEZWxsXCJdLFtmLEVdXSxbL1xcYihxKD86bXZ8dGEpXFx3KykgYi9pXSxbZCxbaCxcIlZlcml6b25cIl0sW2YsRV1dLFsvXFxiKD86YmFybmVzWyYgXStub2JsZSB8Ym5bcnRdKShbXFx3XFwrIF0qKSBiL2ldLFtkLFtoLFwiQmFybmVzICYgTm9ibGVcIl0sW2YsRV1dLFsvXFxiKHRtXFxkezN9XFx3KykgYi9pXSxbZCxbaCxcIk51VmlzaW9uXCJdLFtmLEVdXSxbL1xcYihrODgpIGIvaV0sW2QsW2gsXCJaVEVcIl0sW2YsRV1dLFsvXFxiKG54XFxkezN9aikgYi9pXSxbZCxbaCxcIlpURVwiXSxbZixfXV0sWy9cXGIoZ2VuXFxkezN9KSBiLis0OWgvaV0sW2QsW2gsXCJTd2lzc1wiXSxbZixfXV0sWy9cXGIoenVyXFxkezN9KSBiL2ldLFtkLFtoLFwiU3dpc3NcIl0sW2YsRV1dLFsvXFxiKCh6ZWtpKT90Yi4qXFxiKSBiL2ldLFtkLFtoLFwiWmVraVwiXSxbZixFXV0sWy9cXGIoW3lyXVxcZHsyfSkgYi9pLC9cXGIoZHJhZ29uWy0gXSt0b3VjaCB8ZHQpKFxcd3s1fSkgYi9pXSxbW2gsXCJEcmFnb24gVG91Y2hcIl0sZCxbZixFXV0sWy9cXGIobnMtP1xcd3swLDl9KSBiL2ldLFtkLFtoLFwiSW5zaWduaWFcIl0sW2YsRV1dLFsvXFxiKChueGF8bmV4dCktP1xcd3swLDl9KSBiL2ldLFtkLFtoLFwiTmV4dEJvb2tcIl0sW2YsRV1dLFsvXFxiKHh0cmVtZVxcXyk/KHYoMVswNDVdfDJbMDE1XXxbMzQ2OV0wfDdbMDVdKSkgYi9pXSxbW2gsXCJWb2ljZVwiXSxkLFtmLF9dXSxbL1xcYihsdnRlbFxcLSk/KHYxWzEyXSkgYi9pXSxbW2gsXCJMdlRlbFwiXSxkLFtmLF9dXSxbL1xcYihwaC0xKSAvaV0sW2QsW2gsXCJFc3NlbnRpYWxcIl0sW2YsX11dLFsvXFxiKHYoMTAwbWR8NzAwbmF8NzAxMXw5MTdnKS4qXFxiKSBiL2ldLFtkLFtoLFwiRW52aXplblwiXSxbZixFXV0sWy9cXGIodHJpb1stXFx3XFwuIF0rKSBiL2ldLFtkLFtoLFwiTWFjaFNwZWVkXCJdLFtmLEVdXSxbL1xcYnR1XygxNDkxKSBiL2ldLFtkLFtoLFwiUm90b3JcIl0sW2YsRV1dLFsvKHNoaWVsZFtcXHcgXSspIGIvaV0sW2QsW2gsXCJOdmlkaWFcIl0sW2YsRV1dLFsvKHNwcmludCkgKFxcdyspL2ldLFtoLGQsW2YsX11dLFsvKGtpblxcLltvbmV0d117M30pL2ldLFtbZCwvXFwuL2csXCIgXCJdLFtoLFJdLFtmLF9dXSxbL2Ryb2lkLis7IChjYzY2NjY/fGV0NVsxNl18bWNbMjM5XVsyM114P3x2YzhbMDNdeD8pXFwpL2ldLFtkLFtoLHhdLFtmLEVdXSxbL2Ryb2lkLis7IChlYzMwfHBzMjB8dGNbMi04XVxcZFtreF0pXFwpL2ldLFtkLFtoLHhdLFtmLF9dXSxbL3NtYXJ0LXR2Lisoc2Ftc3VuZykvaV0sW2gsW2YsYl1dLFsvaGJidHYuK21hcGxlOyhcXGQrKS9pXSxbW2QsL14vLFwiU21hcnRUVlwiXSxbaCxCXSxbZixiXV0sWy8obnV4OyBuZXRjYXN0LitzbWFydHR2fGxnIChuZXRjYXN0XFwudHYtMjAxXFxkfGFuZHJvaWQgdHYpKS9pXSxbW2gsUF0sW2YsYl1dLFsvKGFwcGxlKSA/dHYvaV0sW2gsW2QsXCJBcHBsZSBUVlwiXSxbZixiXV0sWy9jcmtleS9pXSxbW2QsXCJDaHJvbWVjYXN0XCJdLFtoLE5dLFtmLGJdXSxbL2Ryb2lkLithZnQoXFx3KSggYnVpfFxcKSkvaV0sW2QsW2gsVF0sW2YsYl1dLFsvXFwoZHR2W1xcKTtdLisoYXF1b3MpL2ksLyhhcXVvcy10dltcXHcgXSspXFwpL2ldLFtkLFtoLE1dLFtmLGJdXSxbLyhicmF2aWFbXFx3IF0rKSggYnVpfFxcKSkvaV0sW2QsW2gsRF0sW2YsYl1dLFsvKG1pdHYtXFx3ezV9KSBidWkvaV0sW2QsW2gsal0sW2YsYl1dLFsvSGJidHYuKih0ZWNobmlzYXQpICguKik7L2ldLFtoLGQsW2YsYl1dLFsvXFxiKHJva3UpW1xcZHhdKltcXClcXC9dKCg/OmR2cC0pP1tcXGRcXC5dKikvaSwvaGJidHZcXC9cXGQrXFwuXFxkK1xcLlxcZCsgK1xcKFtcXHdcXCsgXSo7ICooW1xcd1xcZF1bXjtdKik7KFteO10qKS9pXSxbW2gsel0sW2Qsel0sW2YsYl1dLFsvXFxiKGFuZHJvaWQgdHZ8c21hcnRbLSBdP3R2fG9wZXJhIHR2fHR2OyBydjopXFxiL2ldLFtbZixiXV0sWy8ob3V5YSkvaSwvKG5pbnRlbmRvKSAoW3dpZHMzdXRjaF0rKS9pXSxbaCxkLFtmLHZdXSxbL2Ryb2lkLis7IChzaGllbGQpIGJ1aS9pXSxbZCxbaCxcIk52aWRpYVwiXSxbZix2XV0sWy8ocGxheXN0YXRpb24gWzM0NXBvcnRhYmxldmldKykvaV0sW2QsW2gsRF0sW2Ysdl1dLFsvXFxiKHhib3goPzogb25lKT8oPyE7IHhib3gpKVtcXCk7IF0vaV0sW2QsW2gsUl0sW2Ysdl1dLFsvKChwZWJibGUpKWFwcC9pXSxbaCxkLFtmLFNdXSxbLyh3YXRjaCkoPzogP29zWyxcXC9dfFxcZCxcXGRcXC8pW1xcZFxcLl0rL2ldLFtkLFtoLEldLFtmLFNdXSxbL2Ryb2lkLis7IChnbGFzcykgXFxkL2ldLFtkLFtoLE5dLFtmLFNdXSxbL2Ryb2lkLis7ICh3dDYzPzB7MiwzfSlcXCkvaV0sW2QsW2gseF0sW2YsU11dLFsvKHF1ZXN0KCAyfCBwcm8pPykvaV0sW2QsW2gsVV0sW2YsU11dLFsvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XFwvWy1cXHdcXC5dKykvaV0sW2gsW2YseV1dLFsvKGFlb2JjKVxcYi9pXSxbZCxbaCxUXSxbZix5XV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXxcXCkgYXBwbGV3KS4rPyBtb2JpbGUgc2FmYXJpL2ldLFtkLFtmLF9dXSxbL2Ryb2lkIC4rPzsgKFteO10rPykoPzogYnVpfFxcKSBhcHBsZXcpLis/KD8hIG1vYmlsZSkgc2FmYXJpL2ldLFtkLFtmLEVdXSxbL1xcYigodGFibGV0fHRhYilbO1xcL118Zm9jdXNcXC9cXGQoPyEuK21vYmlsZSkpL2ldLFtbZixFXV0sWy8ocGhvbmV8bW9iaWxlKD86WztcXC9dfCBbIFxcd1xcL1xcLl0qc2FmYXJpKXxwZGEoPz0uK3dpbmRvd3MgY2UpKS9pXSxbW2YsX11dLFsvKGFuZHJvaWRbLVxcd1xcLiBdezAsOX0pOy4rYnVpbC9pXSxbZCxbaCxcIkdlbmVyaWNcIl1dXSxlbmdpbmU6W1svd2luZG93cy4rIGVkZ2VcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkVkZ2VIVE1MXCJdXSxbL3dlYmtpdFxcLzUzN1xcLjM2LitjaHJvbWVcXC8oPyEyNykoW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkJsaW5rXCJdXSxbLyhwcmVzdG8pXFwvKFtcXHdcXC5dKykvaSwvKHdlYmtpdHx0cmlkZW50fG5ldGZyb250fG5ldHN1cmZ8YW1heWF8bHlueHx3M218Z29hbm5hKVxcLyhbXFx3XFwuXSspL2ksL2VraW9oKGZsb3cpXFwvKFtcXHdcXC5dKykvaSwvKGtodG1sfHRhc21hbnxsaW5rcylbXFwvIF1cXCg/KFtcXHdcXC5dKykvaSwvKGljYWIpW1xcLyBdKFsyM11cXC5bXFxkXFwuXSspL2ksL1xcYihsaWJ3ZWIpL2ldLFtwLGddLFsvcnZcXDooW1xcd1xcLl17MSw5fSlcXGIuKyhnZWNrbykvaV0sW2cscF1dLG9zOltbL21pY3Jvc29mdCAod2luZG93cykgKHZpc3RhfHhwKS9pXSxbcCxnXSxbLyh3aW5kb3dzKSBudCA2XFwuMjsgKGFybSkvaSwvKHdpbmRvd3MgKD86cGhvbmUoPzogb3MpP3xtb2JpbGUpKVtcXC8gXT8oW1xcZFxcLlxcdyBdKikvaSwvKHdpbmRvd3MpW1xcLyBdPyhbbnRjZVxcZFxcLiBdK1xcdykoPyEuK3hib3gpL2ldLFtwLFtnLFkscV1dLFsvKHdpbig/PTN8OXxuKXx3aW4gOXggKShbbnRcXGRcXC5dKykvaV0sW1twLFwiV2luZG93c1wiXSxbZyxZLHFdXSxbL2lwW2hvbmVhZF17Miw0fVxcYig/Oi4qb3MgKFtcXHddKykgbGlrZSBtYWN8OyBvcGVyYSkvaSwvaW9zO2Zic3ZcXC8oW1xcZFxcLl0rKS9pLC9jZm5ldHdvcmtcXC8uK2Rhcndpbi9pXSxbW2csL18vZyxcIi5cIl0sW3AsXCJpT1NcIl1dLFsvKG1hYyBvcyB4KSA/KFtcXHdcXC4gXSopL2ksLyhtYWNpbnRvc2h8bWFjX3Bvd2VycGNcXGIpKD8hLitoYWlrdSkvaV0sW1twLEhdLFtnLC9fL2csXCIuXCJdXSxbL2Ryb2lkIChbXFx3XFwuXSspXFxiLisoYW5kcm9pZFstIF14ODZ8aGFybW9ueW9zKS9pXSxbZyxwXSxbLyhhbmRyb2lkfHdlYm9zfHFueHxiYWRhfHJpbSB0YWJsZXQgb3N8bWFlbW98bWVlZ298c2FpbGZpc2gpWy1cXC8gXT8oW1xcd1xcLl0qKS9pLC8oYmxhY2tiZXJyeSlcXHcqXFwvKFtcXHdcXC5dKikvaSwvKHRpemVufGthaW9zKVtcXC8gXShbXFx3XFwuXSspL2ksL1xcKChzZXJpZXM0MCk7L2ldLFtwLGddLFsvXFwoYmIoMTApOy9pXSxbZyxbcCxBXV0sWy8oPzpzeW1iaWFuID9vc3xzeW1ib3N8czYwKD89Oyl8c2VyaWVzNjApWy1cXC8gXT8oW1xcd1xcLl0qKS9pXSxbZyxbcCxcIlN5bWJpYW5cIl1dLFsvbW96aWxsYVxcL1tcXGRcXC5dKyBcXCgoPzptb2JpbGV8dGFibGV0fHR2fG1vYmlsZTsgW1xcdyBdKyk7IHJ2Oi4rIGdlY2tvXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJGaXJlZm94IE9TXCJdXSxbL3dlYjBzOy4rcnQodHYpL2ksL1xcYig/OmhwKT93b3MoPzpicm93c2VyKT9cXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIndlYk9TXCJdXSxbL3dhdGNoKD86ID9vc1ssXFwvXXxcXGQsXFxkXFwvKShbXFxkXFwuXSspL2ldLFtnLFtwLFwid2F0Y2hPU1wiXV0sWy9jcmtleVxcLyhbXFxkXFwuXSspL2ldLFtnLFtwLFwiQ2hyb21lY2FzdFwiXV0sWy8oY3JvcykgW1xcd10rKD86XFwpfCAoW1xcd1xcLl0rKVxcYikvaV0sW1twLEZdLGddLFsvcGFuYXNvbmljOyh2aWVyYSkvaSwvKG5ldHJhbmdlKW1taC9pLC8obmV0dHYpXFwvKFxcZCtcXC5bXFx3XFwuXSspL2ksLyhuaW50ZW5kb3xwbGF5c3RhdGlvbikgKFt3aWRzMzQ1cG9ydGFibGV2dWNoXSspL2ksLyh4Ym94KTsgK3hib3ggKFteXFwpO10rKS9pLC9cXGIoam9saXxwYWxtKVxcYiA/KD86b3MpP1xcLz8oW1xcd1xcLl0qKS9pLC8obWludClbXFwvXFwoXFwpIF0/KFxcdyopL2ksLyhtYWdlaWF8dmVjdG9ybGludXgpWzsgXS9pLC8oW2t4bG5dP3VidW50dXxkZWJpYW58c3VzZXxvcGVuc3VzZXxnZW50b298YXJjaCg/PSBsaW51eCl8c2xhY2t3YXJlfGZlZG9yYXxtYW5kcml2YXxjZW50b3N8cGNsaW51eG9zfHJlZCA/aGF0fHplbndhbGt8bGlucHVzfHJhc3BiaWFufHBsYW4gOXxtaW5peHxyaXNjIG9zfGNvbnRpa2l8ZGVlcGlufG1hbmphcm98ZWxlbWVudGFyeSBvc3xzYWJheW9ufGxpbnNwaXJlKSg/OiBnbnVcXC9saW51eCk/KD86IGVudGVycHJpc2UpPyg/OlstIF1saW51eCk/KD86LWdudSk/Wy1cXC8gXT8oPyFjaHJvbXxwYWNrYWdlKShbLVxcd1xcLl0qKS9pLC8oaHVyZHxsaW51eCkgPyhbXFx3XFwuXSopL2ksLyhnbnUpID8oW1xcd1xcLl0qKS9pLC9cXGIoWy1mcmVudG9wY2doc117MCw1fWJzZHxkcmFnb25mbHkpW1xcLyBdPyg/IWFtZHxbaXgzNDZdezEsMn04NikoW1xcd1xcLl0qKS9pLC8oaGFpa3UpIChcXHcrKS9pXSxbcCxnXSxbLyhzdW5vcykgPyhbXFx3XFwuXFxkXSopL2ldLFtbcCxcIlNvbGFyaXNcIl0sZ10sWy8oKD86b3Blbik/c29sYXJpcylbLVxcLyBdPyhbXFx3XFwuXSopL2ksLyhhaXgpICgoXFxkKSg/PVxcLnxcXCl8IClbXFx3XFwuXSkqL2ksL1xcYihiZW9zfG9zXFwvMnxhbWlnYW9zfG1vcnBob3N8b3BlbnZtc3xmdWNoc2lhfGhwLXV4fHNlcmVuaXR5b3MpL2ksLyh1bml4KSA/KFtcXHdcXC5dKikvaV0sW3AsZ11dfSxKPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGU9PT1jJiYodD1lLGU9byksISh0aGlzIGluc3RhbmNlb2YgSikpcmV0dXJuIG5ldyBKKGUsdCkuZ2V0UmVzdWx0KCk7dmFyIG49dHlwZW9mIGkhPT1zJiZpLm5hdmlnYXRvcj9pLm5hdmlnYXRvcjpvLHI9ZXx8KG4mJm4udXNlckFnZW50P24udXNlckFnZW50OlwiXCIpLGw9biYmbi51c2VyQWdlbnREYXRhP24udXNlckFnZW50RGF0YTpvLGQ9dD9mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKXRbcl0mJnRbcl0ubGVuZ3RoJTI9PT0wP25bcl09dFtyXS5jb25jYXQoZVtyXSk6bltyXT1lW3JdO3JldHVybiBufShaLHQpOloscD1uJiZuLnVzZXJBZ2VudD09cjtyZXR1cm4gdGhpcy5nZXRCcm93c2VyPWZ1bmN0aW9uKCl7dmFyIGUsdD17fTtyZXR1cm4gdC5uYW1lPW8sdC52ZXJzaW9uPW8sSy5jYWxsKHQscixkLmJyb3dzZXIpLHQubWFqb3I9dHlwZW9mKGU9dC52ZXJzaW9uKT09PXU/ZS5yZXBsYWNlKC9bXlxcZFxcLl0vZyxcIlwiKS5zcGxpdChcIi5cIilbMF06byxwJiZuJiZuLmJyYXZlJiZ0eXBlb2Ygbi5icmF2ZS5pc0JyYXZlPT1hJiYodC5uYW1lPVwiQnJhdmVcIiksdH0sdGhpcy5nZXRDUFU9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS5hcmNoaXRlY3R1cmU9byxLLmNhbGwoZSxyLGQuY3B1KSxlfSx0aGlzLmdldERldmljZT1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlLnZlbmRvcj1vLGUubW9kZWw9byxlLnR5cGU9byxLLmNhbGwoZSxyLGQuZGV2aWNlKSxwJiYhZS50eXBlJiZsJiZsLm1vYmlsZSYmKGUudHlwZT1fKSxwJiZcIk1hY2ludG9zaFwiPT1lLm1vZGVsJiZuJiZ0eXBlb2Ygbi5zdGFuZGFsb25lIT09cyYmbi5tYXhUb3VjaFBvaW50cyYmbi5tYXhUb3VjaFBvaW50cz4yJiYoZS5tb2RlbD1cImlQYWRcIixlLnR5cGU9RSksZX0sdGhpcy5nZXRFbmdpbmU9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS5uYW1lPW8sZS52ZXJzaW9uPW8sSy5jYWxsKGUscixkLmVuZ2luZSksZX0sdGhpcy5nZXRPUz1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlLm5hbWU9byxlLnZlcnNpb249byxLLmNhbGwoZSxyLGQub3MpLHAmJiFlLm5hbWUmJmwmJlwiVW5rbm93blwiIT1sLnBsYXRmb3JtJiYoZS5uYW1lPWwucGxhdGZvcm0ucmVwbGFjZSgvY2hyb21lIG9zL2ksRikucmVwbGFjZSgvbWFjb3MvaSxIKSksZX0sdGhpcy5nZXRSZXN1bHQ9ZnVuY3Rpb24oKXtyZXR1cm57dWE6dGhpcy5nZXRVQSgpLGJyb3dzZXI6dGhpcy5nZXRCcm93c2VyKCksZW5naW5lOnRoaXMuZ2V0RW5naW5lKCksb3M6dGhpcy5nZXRPUygpLGRldmljZTp0aGlzLmdldERldmljZSgpLGNwdTp0aGlzLmdldENQVSgpfX0sdGhpcy5nZXRVQT1mdW5jdGlvbigpe3JldHVybiByfSx0aGlzLnNldFVBPWZ1bmN0aW9uKGUpe3JldHVybiByPXR5cGVvZiBlPT09dSYmZS5sZW5ndGg+MzUwP3ooZSwzNTApOmUsdGhpc30sdGhpcy5zZXRVQShyKSx0aGlzfTtKLlZFUlNJT049XCIxLjAuMzVcIixKLkJST1dTRVI9RyhbcCxnLGxdKSxKLkNQVT1HKFttXSksSi5ERVZJQ0U9RyhbZCxoLGYsdixfLGIsRSxTLHldKSxKLkVOR0lORT1KLk9TPUcoW3AsZ10pLHR5cGVvZiB0IT09cz8oZS5leHBvcnRzJiYodD1lLmV4cG9ydHM9SiksdC5VQVBhcnNlcj1KKTpuLmFtZE8/KHI9ZnVuY3Rpb24oKXtyZXR1cm4gSn0uY2FsbCh0LG4sdCxlKSk9PT1vfHwoZS5leHBvcnRzPXIpOnR5cGVvZiBpIT09cyYmKGkuVUFQYXJzZXI9Sik7dmFyIFg9dHlwZW9mIGkhPT1zJiYoaS5qUXVlcnl8fGkuWmVwdG8pO2lmKFgmJiFYLnVhKXt2YXIgUT1uZXcgSjtYLnVhPVEuZ2V0UmVzdWx0KCksWC51YS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gUS5nZXRVQSgpfSxYLnVhLnNldD1mdW5jdGlvbihlKXtRLnNldFVBKGUpO3ZhciB0PVEuZ2V0UmVzdWx0KCk7Zm9yKHZhciBuIGluIHQpWC51YVtuXT10W25dfX19KFwib2JqZWN0XCI9PT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzKX0sNDg4MTQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7aSYmIShcImdldFwiaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKXx8KGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX06ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9biksZVtyXT10W25dfSksaT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIj09PW58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfHxyKHQsZSxuKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksaShuKDc3NTI5KSx0KX0sNzc1Mjk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7aSYmIShcImdldFwiaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKXx8KGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX06ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9biksZVtyXT10W25dfSksaT10aGlzJiZ0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxvPXRoaXMmJnRoaXMuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIiE9PW4mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiZyKHQsZSxuKTtyZXR1cm4gaSh0LGUpLHR9LGE9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5hZGRUaW1lcj10LnJlcG9ydEhpc3RvZ3JhbT10LmluY3JlbWVudENvdW50ZXI9dC5yZXBvcnROYXZpZ2F0aW9uVGltZXJCeVBhZ2U9dC5yZXBvcnRUaW1lckJ5UGFnZT10LmluY3JlbWVudERhdUNvdW50ZXJzPXQuaW5jcmVtZW50UHVibGlzaGVyVmlld0NvdW50c0J5UGFnZT10LmluY3JlbWVudENvdW50c0J5UGFnZUFuZENvdW50cnk9dC5pbml0TWV0cmljcz10LmdldERldmljZU5hbWU9dm9pZCAwO2NvbnN0IHM9byhuKDQ0ODU4KSksYz1hKG4oMjE3NTgpKSx1PWEobigyNzk4NikpLGw9bigzMDY3MiksZD1uKDI3MDAyKSxwPW4oMzUwMDcpLGY9bmV3IHAuVUFQYXJzZXIsaD0vW15hLXpBLVowLTktXS9nLGc9NDgwO2xldCBtO3QuZ2V0RGV2aWNlTmFtZT1mdW5jdGlvbihlKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIGU/ZT9cIk1vYmlsZVwiOlwiRGVza3RvcFwiOndpbmRvdy5zY3JlZW4ud2lkdGg8Zz9cIk1vYmlsZVwiOlwiRGVza3RvcFwifTtjb25zdCB2PW5ldyBQcm9taXNlKChlPT57bT1lfSkpO2Z1bmN0aW9uIF8oZSl7Y29uc3QgdD1mLmdldEJyb3dzZXIoKSxuPWYuZ2V0RGV2aWNlKCk7cmV0dXJuIG4ubW9kZWw/UyhuLm1vZGVsKTpcIk1vYmlsZVwiPT09ZT9cIlVua25vd25fTW9iaWxlXCI6dC5uYW1lP1ModC5uYW1lKTpcIlVua25vd25fRGVza3RvcFwifWZ1bmN0aW9uIEUoZSx0KXtyZXR1cm5gJHtlfS5Ub3RhbHMuYnlQYWdlLiR7dH1gfWZ1bmN0aW9uIGIoZSx0PTEpe2Zvcihjb25zdCBuIG9mIGUpcy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6bix2YWx1ZTp0fSl9ZnVuY3Rpb24gUyhlKXtyZXR1cm4gZT9lLnJlcGxhY2UoaCxcIl9cIik6XCJfXCJ9dC5pbml0TWV0cmljcz1mdW5jdGlvbihlKXtpZihzLmRlZmF1bHQuaXNSZWFkeSgpKXJldHVybjtjb25zdCB0PSgwLGwuaXNSdW5uaW5nT25TZXJ2ZXIpKCl8fHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5lbmRzV2l0aChcIi5zbmFwY2hhdC5jb21cIik/XCJwcm9kdWN0aW9uXCI6XCJkZXZlbG9wbWVudFwiO3MuZGVmYXVsdC5pbml0aWFsaXplKHtuZXR3b3JrSGFuZGxlcjpuZXcgdS5kZWZhdWx0KCgwLGMuZGVmYXVsdCkoe3BhcnRpdGlvbk5hbWU6cy5QQVJUSVRJT04uU05BUENIQVRfV0VCLGZsYXZvcjp0fSkpLGRlYnVnTW9kZTpkLmxvZy5nZXRMb2dnZXIoXCJbTWV0cmljcyBTREtdXCIpLmdldExldmVsKCk9PT1kLmxldmVscy5ERUJVRyxpbmFjdGl2ZVRocmVzaG9sZEluU2Vjb25kOjYwLGxvZ1RpbWVJbnRlcnZhbDo1ZTN9KSxtKCEwKSxlJiZlKCl9LHQuaW5jcmVtZW50Q291bnRzQnlQYWdlQW5kQ291bnRyeT1hc3luYyBmdW5jdGlvbihlLHQsbixyKXthd2FpdCB2O2NvbnN0IGk9d2luZG93LnNjcmVlbi53aWR0aDxnP1wiTW9iaWxlXCI6XCJEZXNrdG9wXCIsbz1fKGkpLGE9RShlLHQpLHM9YGJ5Vmlldy4ke2l9YCxjPWBieURldmljZS4ke299YCx1PWBieUNvdW50cnkuJHtyfWA7YihbYSxgJHthfS4ke3N9YCxgJHthfS4ke3N9LiR7dX1gLGAke2F9LiR7Y31gLGAke2F9LiR7Y30uJHt1fWBdLG4pfSx0LmluY3JlbWVudFB1Ymxpc2hlclZpZXdDb3VudHNCeVBhZ2U9YXN5bmMgZnVuY3Rpb24oZSx0LG4scil7YXdhaXQgdjtjb25zdHtidXNpbmVzc1Byb2ZpbGVJZDppLGNvdW50cnk6byxtdXRhYmxlTmFtZTphLHB1Ymxpc2hlclR5cGU6c309cixjPVMoYSksdT13aW5kb3cuc2NyZWVuLndpZHRoPGc/XCJNb2JpbGVcIjpcIkRlc2t0b3BcIixsPV8odSksZD1FKGUsdCkscD1gYnlWaWV3LiR7dX1gLGY9YGJ5RGV2aWNlLiR7bH1gLGg9YGJ5UHVibGlzaGVyTmFtZS4ke2N9YCxtPWBieUNvdW50cnkuJHtvfWA7bGV0IHksVDtjb25zdCBJPVtdO2lmKHMpe2NvbnN0IGU9YGJ5VHlwZS4ke3N9YDt5PWAke2R9LiR7cH0uJHtlfWAsVD1gJHtkfS4ke2Z9LiR7ZX1gLEkucHVzaCh5LFQpfWxldCBPLEEsQyxOLGs7aSYmKE89YGJ5Qml6SWQuJHtpfWAsQT1gJHtkfS4ke3B9LiR7T31gLEM9YCR7ZH0uJHtwfS4ke219LiR7T31gLE49YCR7ZH0uJHtmfS4ke099YCxrPWAke2R9LiR7Zn0uJHttfS4ke099YCxJLnB1c2goQSxDLE4saykpO2NvbnN0IFA9ZCxSPWAke2R9LiR7cH1gLHc9YCR7ZH0uJHtwfS4ke219YCxMPWAke2R9LiR7cH0uJHtofWAsQj1gJHtkfS4ke3B9LiR7bX0uJHtofWAsTT1gJHtkfS4ke2Z9YCxEPWAke2R9LiR7Zn0uJHttfWAsaj1gJHtkfS4ke2Z9LiR7aH1gLHg9YCR7ZH0uJHtmfS4ke219LiR7aH1gO0kucHVzaChQLFIsdyxMLEIsTSxELGoseCksYihJLG4pfSx0LmluY3JlbWVudERhdUNvdW50ZXJzPWFzeW5jIGZ1bmN0aW9uKGUsdCxuKXthd2FpdCB2O2NvbnN0IHI9d2luZG93LnNjcmVlbi53aWR0aDxnP1wiTW9iaWxlXCI6XCJEZXNrdG9wXCIsaT1gJHtlfS5EQVUuYnlQYWdlLiR7dH1gLG89YGJ5Vmlldy4ke3J9YCxhPWBieURldmljZS4ke18ocil9YCxzPWBieUNvdW50cnkuJHtufWA7YihbaSxgJHtpfS4ke299YCxgJHtpfS4ke299LiR7c31gLGAke2l9LiR7YX1gLGAke2l9LiR7YX0uJHtzfWBdLDEpfSx0LnJlcG9ydFRpbWVyQnlQYWdlPWFzeW5jIGZ1bmN0aW9uKGUsdCxuLHIpe2F3YWl0IHY7Y29uc3QgaT1gJHtlfS5ieVBhZ2UuJHt0fS4ke259YCxvPXdpbmRvdy5zY3JlZW4ud2lkdGg8Zz9cIk1vYmlsZVwiOlwiRGVza3RvcFwiLGE9YCR7aX1gLGM9YCR7aX0uJHtgYnlWaWV3LiR7b31gfWAsdT1gJHtpfS4ke2BieURldmljZS4ke18obyl9YH1gO3MuZGVmYXVsdC5hZGRUaW1lcih7bWV0cmljc05hbWU6YSxtaWxsaVNlYzpyfSkscy5kZWZhdWx0LmFkZFRpbWVyKHttZXRyaWNzTmFtZTpjLG1pbGxpU2VjOnJ9KSxzLmRlZmF1bHQuYWRkVGltZXIoe21ldHJpY3NOYW1lOnUsbWlsbGlTZWM6cn0pfSx0LnJlcG9ydE5hdmlnYXRpb25UaW1lckJ5UGFnZT1hc3luYyBmdW5jdGlvbihlLHQsbixyKXthd2FpdCB2O2NvbnN0IGk9YCR7YCR7ZX0uYnlQYWdlLiR7dH1gfS5ieU5hdmlnYXRpb24uJHtufWA7cy5kZWZhdWx0LmFkZFRpbWVyKHttZXRyaWNzTmFtZTppLG1pbGxpU2VjOnJ9KX0sdC5pbmNyZW1lbnRDb3VudGVyPWFzeW5jIGZ1bmN0aW9uKGUsdD0xLG4pe2F3YWl0IHYscy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6ZSxkaW1lbnNpb25zOm4sdmFsdWU6dH0pfSx0LnJlcG9ydEhpc3RvZ3JhbT1hc3luYyBmdW5jdGlvbihlLHQsbil7YXdhaXQgdixzLmRlZmF1bHQuYWRkSGlzdG9ncmFtKHttZXRyaWNzTmFtZTplLGRpbWVuc2lvbnM6bix2YWx1ZTp0fSl9LHQuYWRkVGltZXI9ZnVuY3Rpb24oe21ldHJpY3NQcmVmaXg6ZSxwYWdlTmFtZTp0LG1pbGxpczpuLG5hbWU6cn0pe2lmKCFzLmRlZmF1bHQuaXNSZWFkeSgpKXJldHVybiB2b2lkIGQubG9nLmVycm9yKGAke3R9IC0gR3JhcGhlbmUgbm90IGluaXRpYWxpemVkYCk7Y29uc3QgaT1gJHtlfS5ieVBhZ2UuJHt0fS5ieVRpbWVyLiR7cn1gO3MuZGVmYXVsdC5hZGRUaW1lcih7bWV0cmljc05hbWU6aSxtaWxsaVNlYzpufSl9fSwzNTAwNzpmdW5jdGlvbihlLHQsbil7dmFyIHI7IWZ1bmN0aW9uKGksbyl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGE9XCJmdW5jdGlvblwiLHM9XCJ1bmRlZmluZWRcIixjPVwib2JqZWN0XCIsdT1cInN0cmluZ1wiLGw9XCJtYWpvclwiLGQ9XCJtb2RlbFwiLHA9XCJuYW1lXCIsZj1cInR5cGVcIixoPVwidmVuZG9yXCIsZz1cInZlcnNpb25cIixtPVwiYXJjaGl0ZWN0dXJlXCIsdj1cImNvbnNvbGVcIixfPVwibW9iaWxlXCIsRT1cInRhYmxldFwiLGI9XCJzbWFydHR2XCIsUz1cIndlYXJhYmxlXCIseT1cImVtYmVkZGVkXCIsVD1cIkFtYXpvblwiLEk9XCJBcHBsZVwiLE89XCJBU1VTXCIsQT1cIkJsYWNrQmVycnlcIixDPVwiRmlyZWZveFwiLE49XCJHb29nbGVcIixrPVwiSHVhd2VpXCIsUD1cIkxHXCIsUj1cIk1pY3Jvc29mdFwiLHc9XCJNb3Rvcm9sYVwiLEw9XCJPcGVyYVwiLEI9XCJTYW1zdW5nXCIsTT1cIlNoYXJwXCIsRD1cIlNvbnlcIixqPVwiWGlhb21pXCIseD1cIlplYnJhXCIsVT1cIkZhY2Vib29rXCIsRj1cIkNocm9taXVtIE9TXCIsSD1cIk1hYyBPU1wiLEc9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MDtuPGUubGVuZ3RoO24rKyl0W2Vbbl0udG9VcHBlckNhc2UoKV09ZVtuXTtyZXR1cm4gdH0sVz1mdW5jdGlvbihlLHQpe3JldHVybiB0eXBlb2YgZT09PXUmJi0xIT09Vih0KS5pbmRleE9mKFYoZSkpfSxWPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9LHo9ZnVuY3Rpb24oZSx0KXtpZih0eXBlb2YgZT09PXUpcmV0dXJuIGU9ZS5yZXBsYWNlKC9eXFxzXFxzKi8sXCJcIiksdHlwZW9mIHQ9PT1zP2U6ZS5zdWJzdHJpbmcoMCwzNTApfSxLPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHIsaSxzLHUsbCxkPTA7ZDx0Lmxlbmd0aCYmIXU7KXt2YXIgcD10W2RdLGY9dFtkKzFdO2ZvcihuPXI9MDtuPHAubGVuZ3RoJiYhdSYmcFtuXTspaWYodT1wW24rK10uZXhlYyhlKSlmb3IoaT0wO2k8Zi5sZW5ndGg7aSsrKWw9dVsrK3JdLHR5cGVvZihzPWZbaV0pPT09YyYmcy5sZW5ndGg+MD8yPT09cy5sZW5ndGg/dHlwZW9mIHNbMV09PWE/dGhpc1tzWzBdXT1zWzFdLmNhbGwodGhpcyxsKTp0aGlzW3NbMF1dPXNbMV06Mz09PXMubGVuZ3RoP3R5cGVvZiBzWzFdIT09YXx8c1sxXS5leGVjJiZzWzFdLnRlc3Q/dGhpc1tzWzBdXT1sP2wucmVwbGFjZShzWzFdLHNbMl0pOm86dGhpc1tzWzBdXT1sP3NbMV0uY2FsbCh0aGlzLGwsc1syXSk6bzo0PT09cy5sZW5ndGgmJih0aGlzW3NbMF1dPWw/c1szXS5jYWxsKHRoaXMsbC5yZXBsYWNlKHNbMV0sc1syXSkpOm8pOnRoaXNbc109bHx8bztkKz0yfX0sWT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KWlmKHR5cGVvZiB0W25dPT09YyYmdFtuXS5sZW5ndGg+MCl7Zm9yKHZhciByPTA7cjx0W25dLmxlbmd0aDtyKyspaWYoVyh0W25dW3JdLGUpKXJldHVyblwiP1wiPT09bj9vOm59ZWxzZSBpZihXKHRbbl0sZSkpcmV0dXJuXCI/XCI9PT1uP286bjtyZXR1cm4gZX0scT17TUU6XCI0LjkwXCIsXCJOVCAzLjExXCI6XCJOVDMuNTFcIixcIk5UIDQuMFwiOlwiTlQ0LjBcIiwyZTM6XCJOVCA1LjBcIixYUDpbXCJOVCA1LjFcIixcIk5UIDUuMlwiXSxWaXN0YTpcIk5UIDYuMFwiLDc6XCJOVCA2LjFcIiw4OlwiTlQgNi4yXCIsOC4xOlwiTlQgNi4zXCIsMTA6W1wiTlQgNi40XCIsXCJOVCAxMC4wXCJdLFJUOlwiQVJNXCJ9LFo9e2Jyb3dzZXI6W1svXFxiKD86Y3Jtb3xjcmlvcylcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkNocm9tZVwiXV0sWy9lZGcoPzplfGlvc3xhKT9cXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkVkZ2VcIl1dLFsvKG9wZXJhIG1pbmkpXFwvKFstXFx3XFwuXSspL2ksLyhvcGVyYSBbbW9iaWxldGFiXXszLDZ9KVxcYi4rdmVyc2lvblxcLyhbLVxcd1xcLl0rKS9pLC8ob3BlcmEpKD86Lit2ZXJzaW9uXFwvfFtcXC8gXSspKFtcXHdcXC5dKykvaV0sW3AsZ10sWy9vcGlvc1tcXC8gXSsoW1xcd1xcLl0rKS9pXSxbZyxbcCxcIk9wZXJhIE1pbmlcIl1dLFsvXFxib3ByXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsTF1dLFsvKGtpbmRsZSlcXC8oW1xcd1xcLl0rKS9pLC8obHVuYXNjYXBlfG1heHRob258bmV0ZnJvbnR8amFzbWluZXxibGF6ZXIpW1xcLyBdPyhbXFx3XFwuXSopL2ksLyhhdmFudCB8aWVtb2JpbGV8c2xpbSkoPzpicm93c2VyKT9bXFwvIF0/KFtcXHdcXC5dKikvaSwvKGJhP2lkdWJyb3dzZXIpW1xcLyBdPyhbXFx3XFwuXSspL2ksLyg/Om1zfFxcKCkoaWUpIChbXFx3XFwuXSspL2ksLyhmbG9ja3xyb2NrbWVsdHxtaWRvcml8ZXBpcGhhbnl8c2lsa3xza3lmaXJlfGJvbHR8aXJvbnx2aXZhbGRpfGlyaWRpdW18cGhhbnRvbWpzfGJvd3NlcnxxdWFya3xxdXB6aWxsYXxmYWxrb258cmVrb25xfHB1ZmZpbnxicmF2ZXx3aGFsZSg/IS4rbmF2ZXIpfHFxYnJvd3NlcmxpdGV8cXF8ZHVja2R1Y2tnbylcXC8oWy1cXHdcXC5dKykvaSwvKGhleXRhcHxvdmkpYnJvd3NlclxcLyhbXFxkXFwuXSspL2ksLyh3ZWlibylfXyhbXFxkXFwuXSspL2ldLFtwLGddLFsvKD86XFxidWM/ID9icm93c2VyfCg/Omp1Yy4rKXVjd2ViKVtcXC8gXT8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIlVDQnJvd3NlclwiXV0sWy9taWNyb20uK1xcYnFiY29yZVxcLyhbXFx3XFwuXSspL2ksL1xcYnFiY29yZVxcLyhbXFx3XFwuXSspLittaWNyb20vaV0sW2csW3AsXCJXZUNoYXQoV2luKSBEZXNrdG9wXCJdXSxbL21pY3JvbWVzc2VuZ2VyXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJXZUNoYXRcIl1dLFsva29ucXVlcm9yXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJLb25xdWVyb3JcIl1dLFsvdHJpZGVudC4rcnZbOiBdKFtcXHdcXC5dezEsOX0pXFxiLitsaWtlIGdlY2tvL2ldLFtnLFtwLFwiSUVcIl1dLFsveWEoPzpzZWFyY2gpP2Jyb3dzZXJcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIllhbmRleFwiXV0sWy8oYXZhc3R8YXZnKVxcLyhbXFx3XFwuXSspL2ldLFtbcCwvKC4rKS8sXCIkMSBTZWN1cmUgQnJvd3NlclwiXSxnXSxbL1xcYmZvY3VzXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJGaXJlZm94IEZvY3VzXCJdXSxbL1xcYm9wdFxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiT3BlcmEgVG91Y2hcIl1dLFsvY29jX2NvY1xcdytcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkNvYyBDb2NcIl1dLFsvZG9sZmluXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJEb2xwaGluXCJdXSxbL2NvYXN0XFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJPcGVyYSBDb2FzdFwiXV0sWy9taXVpYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtnLFtwLFwiTUlVSSBCcm93c2VyXCJdXSxbL2Z4aW9zXFwvKFstXFx3XFwuXSspL2ldLFtnLFtwLENdXSxbL1xcYnFpaHV8KHFpP2hvP28/fDM2MClicm93c2VyL2ldLFtbcCxcIjM2MCBCcm93c2VyXCJdXSxbLyhvY3VsdXN8c2Ftc3VuZ3xzYWlsZmlzaHxodWF3ZWkpYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtbcCwvKC4rKS8sXCIkMSBCcm93c2VyXCJdLGddLFsvKGNvbW9kb19kcmFnb24pXFwvKFtcXHdcXC5dKykvaV0sW1twLC9fL2csXCIgXCJdLGddLFsvKGVsZWN0cm9uKVxcLyhbXFx3XFwuXSspIHNhZmFyaS9pLC8odGVzbGEpKD86IHF0Y2FyYnJvd3NlcnxcXC8oMjBcXGRcXGRcXC5bLVxcd1xcLl0rKSkvaSwvbT8ocXFicm93c2VyfGJhaWR1Ym94YXBwfDIzNDVFeHBsb3JlcilbXFwvIF0/KFtcXHdcXC5dKykvaV0sW3AsZ10sWy8obWV0YXNyKVtcXC8gXT8oW1xcd1xcLl0rKS9pLC8obGJicm93c2VyKS9pLC9cXFsobGlua2VkaW4pYXBwXFxdL2ldLFtwXSxbLygoPzpmYmFuXFwvZmJpb3N8ZmJfaWFiXFwvZmI0YSkoPyEuK2ZiYXYpfDtmYmF2XFwvKFtcXHdcXC5dKyk7KS9pXSxbW3AsVV0sZ10sWy8oa2FrYW8oPzp0YWxrfHN0b3J5KSlbXFwvIF0oW1xcd1xcLl0rKS9pLC8obmF2ZXIpXFwoLio/KFxcZCtcXC5bXFx3XFwuXSspLipcXCkvaSwvc2FmYXJpIChsaW5lKVxcLyhbXFx3XFwuXSspL2ksL1xcYihsaW5lKVxcLyhbXFx3XFwuXSspXFwvaWFiL2ksLyhjaHJvbWl1bXxpbnN0YWdyYW0pW1xcLyBdKFstXFx3XFwuXSspL2ldLFtwLGddLFsvXFxiZ3NhXFwvKFtcXHdcXC5dKykgLipzYWZhcmlcXC8vaV0sW2csW3AsXCJHU0FcIl1dLFsvbXVzaWNhbF9seSg/Oi4rYXBwXz92ZXJzaW9uXFwvfF8pKFtcXHdcXC5dKykvaV0sW2csW3AsXCJUaWtUb2tcIl1dLFsvaGVhZGxlc3NjaHJvbWUoPzpcXC8oW1xcd1xcLl0rKXwgKS9pXSxbZyxbcCxcIkNocm9tZSBIZWFkbGVzc1wiXV0sWy8gd3ZcXCkuKyhjaHJvbWUpXFwvKFtcXHdcXC5dKykvaV0sW1twLFwiQ2hyb21lIFdlYlZpZXdcIl0sZ10sWy9kcm9pZC4rIHZlcnNpb25cXC8oW1xcd1xcLl0rKVxcYi4rKD86bW9iaWxlIHNhZmFyaXxzYWZhcmkpL2ldLFtnLFtwLFwiQW5kcm9pZCBCcm93c2VyXCJdXSxbLyhjaHJvbWV8b21uaXdlYnxhcm9yYXxbdGl6ZW5va2FdezV9ID9icm93c2VyKVxcL3Y/KFtcXHdcXC5dKykvaV0sW3AsZ10sWy92ZXJzaW9uXFwvKFtcXHdcXC5cXCxdKykgLiptb2JpbGVcXC9cXHcrIChzYWZhcmkpL2ldLFtnLFtwLFwiTW9iaWxlIFNhZmFyaVwiXV0sWy92ZXJzaW9uXFwvKFtcXHcoXFwufFxcLCldKykgLioobW9iaWxlID9zYWZhcml8c2FmYXJpKS9pXSxbZyxwXSxbL3dlYmtpdC4rPyhtb2JpbGUgP3NhZmFyaXxzYWZhcmkpKFxcL1tcXHdcXC5dKykvaV0sW3AsW2csWSx7XCIxLjBcIjpcIi84XCIsMS4yOlwiLzFcIiwxLjM6XCIvM1wiLFwiMi4wXCI6XCIvNDEyXCIsXCIyLjAuMlwiOlwiLzQxNlwiLFwiMi4wLjNcIjpcIi80MTdcIixcIjIuMC40XCI6XCIvNDE5XCIsXCI/XCI6XCIvXCJ9XV0sWy8od2Via2l0fGtodG1sKVxcLyhbXFx3XFwuXSspL2ldLFtwLGddLFsvKG5hdmlnYXRvcnxuZXRzY2FwZVxcZD8pXFwvKFstXFx3XFwuXSspL2ldLFtbcCxcIk5ldHNjYXBlXCJdLGddLFsvbW9iaWxlIHZyOyBydjooW1xcd1xcLl0rKVxcKS4rZmlyZWZveC9pXSxbZyxbcCxcIkZpcmVmb3ggUmVhbGl0eVwiXV0sWy9la2lvaGYuKyhmbG93KVxcLyhbXFx3XFwuXSspL2ksLyhzd2lmdGZveCkvaSwvKGljZWRyYWdvbnxpY2V3ZWFzZWx8Y2FtaW5vfGNoaW1lcmF8ZmVubmVjfG1hZW1vIGJyb3dzZXJ8bWluaW1vfGNvbmtlcm9yfGtsYXIpW1xcLyBdPyhbXFx3XFwuXFwrXSspL2ksLyhzZWFtb25rZXl8ay1tZWxlb258aWNlY2F0fGljZWFwZXxmaXJlYmlyZHxwaG9lbml4fHBhbGVtb29ufGJhc2lsaXNrfHdhdGVyZm94KVxcLyhbLVxcd1xcLl0rKSQvaSwvKGZpcmVmb3gpXFwvKFtcXHdcXC5dKykvaSwvKG1vemlsbGEpXFwvKFtcXHdcXC5dKykgLitydlxcOi4rZ2Vja29cXC9cXGQrL2ksLyhwb2xhcmlzfGx5bnh8ZGlsbG98aWNhYnxkb3Jpc3xhbWF5YXx3M218bmV0c3VyZnxzbGVpcG5pcnxvYmlnb3xtb3NhaWN8KD86Z298aWNlfHVwKVtcXC4gXT9icm93c2VyKVstXFwvIF0/dj8oW1xcd1xcLl0rKS9pLC8obGlua3MpIFxcKChbXFx3XFwuXSspL2ksL3BhbmFzb25pYzsodmllcmEpL2ldLFtwLGddLFsvKGNvYmFsdClcXC8oW1xcd1xcLl0rKS9pXSxbcCxbZywvbWFzdGVyLnxsdHMuLyxcIlwiXV1dLGNwdTpbWy8oPzooYW1kfHgoPzooPzo4Nnw2NClbLV9dKT98d293fHdpbik2NClbO1xcKV0vaV0sW1ttLFwiYW1kNjRcIl1dLFsvKGlhMzIoPz07KSkvaV0sW1ttLFZdXSxbLygoPzppWzM0Nl18eCk4NilbO1xcKV0vaV0sW1ttLFwiaWEzMlwiXV0sWy9cXGIoYWFyY2g2NHxhcm0odj84ZT9sP3xfPzY0KSlcXGIvaV0sW1ttLFwiYXJtNjRcIl1dLFsvXFxiKGFybSg/OnZbNjddKT9odD9uP1tmbF1wPylcXGIvaV0sW1ttLFwiYXJtaGZcIl1dLFsvd2luZG93cyAoY2V8bW9iaWxlKTsgcHBjOy9pXSxbW20sXCJhcm1cIl1dLFsvKCg/OnBwY3xwb3dlcnBjKSg/OjY0KT8pKD86IG1hY3w7fFxcKSkvaV0sW1ttLC9vd2VyLyxcIlwiLFZdXSxbLyhzdW40XFx3KVs7XFwpXS9pXSxbW20sXCJzcGFyY1wiXV0sWy8oKD86YXZyMzJ8aWE2NCg/PTspKXw2OGsoPz1cXCkpfFxcYmFybSg/PXYoPzpbMS03XXxbNS03XTEpbD98O3xlYWJpKXwoPz1hdG1lbCApYXZyfCg/OmlyaXh8bWlwc3xzcGFyYykoPzo2NCk/XFxifHBhLXJpc2MpL2ldLFtbbSxWXV1dLGRldmljZTpbWy9cXGIoc2NoLWlbODldMFxcZHxzaHctbTM4MHN8c20tW3B0eF1cXHd7Miw0fXxndC1bcG5dXFxkezIsNH18c2doLXQ4WzU2XTl8bmV4dXMgMTApL2ldLFtkLFtoLEJdLFtmLEVdXSxbL1xcYigoPzpzW2NncF1ofGd0fHNtKS1cXHcrfHNjW2ctXT9bXFxkXSthP3xnYWxheHkgbmV4dXMpL2ksL3NhbXN1bmdbLSBdKFstXFx3XSspL2ksL3NlYy0oc2doXFx3KykvaV0sW2QsW2gsQl0sW2YsX11dLFsvKD86XFwvfFxcKCkoaXAoPzpob25lfG9kKVtcXHcsIF0qKSg/OlxcL3w7KS9pXSxbZCxbaCxJXSxbZixfXV0sWy9cXCgoaXBhZCk7Wy1cXHdcXCksOyBdK2FwcGxlL2ksL2FwcGxlY29yZW1lZGlhXFwvW1xcd1xcLl0rIFxcKChpcGFkKS9pLC9cXGIoaXBhZClcXGRcXGQ/LFxcZFxcZD9bO1xcXV0uK2lvcy9pXSxbZCxbaCxJXSxbZixFXV0sWy8obWFjaW50b3NoKTsvaV0sW2QsW2gsSV1dLFsvXFxiKHNoLT9bYWx0dnpdP1xcZFxcZFthLWVrbV0/KS9pXSxbZCxbaCxNXSxbZixfXV0sWy9cXGIoKD86YWdbcnNdWzIzXT98YmFoMj98c2h0P3xidHYpLWE/W2x3XVxcZHsyfSlcXGIoPyEuK2RcXC9zKS9pXSxbZCxbaCxrXSxbZixFXV0sWy8oPzpodWF3ZWl8aG9ub3IpKFstXFx3IF0rKVs7XFwpXS9pLC9cXGIobmV4dXMgNnB8XFx3ezIsNH1lPy1bYXR1XT9bbG5dW1xcZHhdWzAxMjM1OWNdW2Fkbl0/KVxcYig/IS4rZFxcL3MpL2ldLFtkLFtoLGtdLFtmLF9dXSxbL1xcYihwb2NvW1xcdyBdKykoPzogYnVpfFxcKSkvaSwvXFxiOyAoXFx3KykgYnVpbGRcXC9obVxcMS9pLC9cXGIoaG1bLV8gXT9ub3RlP1tfIF0/KD86XFxkXFx3KT8pIGJ1aS9pLC9cXGIocmVkbWlbXFwtXyBdPyg/Om5vdGV8ayk/W1xcd18gXSspKD86IGJ1aXxcXCkpL2ksL1xcYihtaVstXyBdPyg/OmFcXGR8b25lfG9uZVtfIF1wbHVzfG5vdGUgbHRlfG1heHxjYyk/W18gXT8oPzpcXGQ/XFx3PylbXyBdPyg/OnBsdXN8c2V8bGl0ZSk/KSg/OiBidWl8XFwpKS9pXSxbW2QsL18vZyxcIiBcIl0sW2gsal0sW2YsX11dLFsvXFxiKG1pWy1fIF0/KD86cGFkKSg/OltcXHdfIF0rKSkoPzogYnVpfFxcKSkvaV0sW1tkLC9fL2csXCIgXCJdLFtoLGpdLFtmLEVdXSxbLzsgKFxcdyspIGJ1aS4rIG9wcG8vaSwvXFxiKGNwaFsxMl1cXGR7M318cCg/OmFmfGNbYWxdfGRcXHd8ZVthcl0pW210XVxcZDB8eDkwMDd8YTEwMW9wKVxcYi9pXSxbZCxbaCxcIk9QUE9cIl0sW2YsX11dLFsvdml2byAoXFx3KykoPzogYnVpfFxcKSkvaSwvXFxiKHZbMTJdXFxkezN9XFx3P1thdF0pKD86IGJ1aXw7KS9pXSxbZCxbaCxcIlZpdm9cIl0sW2YsX11dLFsvXFxiKHJteFsxMl1cXGR7M30pKD86IGJ1aXw7fFxcKSkvaV0sW2QsW2gsXCJSZWFsbWVcIl0sW2YsX11dLFsvXFxiKG1pbGVzdG9uZXxkcm9pZCg/OlsyLTR4XXwgKD86YmlvbmljfHgyfHByb3xyYXpyKSk/Oj8oIDRnKT8pXFxiW1xcdyBdK2J1aWxkXFwvL2ksL1xcYm1vdCg/Om9yb2xhKT9bLSBdKFxcdyopL2ksLygoPzptb3RvW1xcd1xcKFxcKSBdK3x4dFxcZHszLDR9fG5leHVzIDYpKD89IGJ1aXxcXCkpKS9pXSxbZCxbaCx3XSxbZixfXV0sWy9cXGIobXo2MFxcZHx4b29tWzIgXXswLDJ9KSBidWlsZFxcLy9pXSxbZCxbaCx3XSxbZixFXV0sWy8oKD89bGcpP1t2bF1rXFwtP1xcZHszfSkgYnVpfCAzXFwuWy1cXHc7IF17MTB9bGc/LShbMDZjdjldezMsNH0pL2ldLFtkLFtoLFBdLFtmLEVdXSxbLyhsbSg/Oi0/ZjEwMFtudl0/fC1bXFx3XFwuXSspKD89IGJ1aXxcXCkpfG5leHVzIFs0NV0pL2ksL1xcYmxnWy1lO1xcLyBdKygoPyFicm93c2VyfG5ldGNhc3R8YW5kcm9pZCB0dilcXHcrKS9pLC9cXGJsZy0/KFtcXGRcXHddKykgYnVpL2ldLFtkLFtoLFBdLFtmLF9dXSxbLyhpZGVhdGFiWy1cXHcgXSspL2ksL2xlbm92byA/KHNbNTZdMDAwWy1cXHddK3x0YWIoPzpbXFx3IF0rKXx5dFstXFxkXFx3XXs2fXx0YlstXFxkXFx3XXs2fSkvaV0sW2QsW2gsXCJMZW5vdm9cIl0sW2YsRV1dLFsvKD86bWFlbW98bm9raWEpLioobjkwMHxsdW1pYSBcXGQrKS9pLC9ub2tpYVstXyBdPyhbLVxcd1xcLl0qKS9pXSxbW2QsL18vZyxcIiBcIl0sW2gsXCJOb2tpYVwiXSxbZixfXV0sWy8ocGl4ZWwgYylcXGIvaV0sW2QsW2gsTl0sW2YsRV1dLFsvZHJvaWQuKzsgKHBpeGVsW1xcZGF4bCBdezAsNn0pKD86IGJ1aXxcXCkpL2ldLFtkLFtoLE5dLFtmLF9dXSxbL2Ryb2lkLisgKGE/XFxkWzAtMl17Mn1zb3xbYy1nXVxcZHs0fXxzb1stZ2xdXFx3K3x4cS1hXFx3WzQtN11bMTJdKSg/PSBidWl8XFwpLitjaHJvbWVcXC8oPyFbMS02XXswLDF9XFxkXFwuKSkvaV0sW2QsW2gsRF0sW2YsX11dLFsvc29ueSB0YWJsZXQgW3BzXS9pLC9cXGIoPzpzb255KT9zZ3BcXHcrKD86IGJ1aXxcXCkpL2ldLFtbZCxcIlhwZXJpYSBUYWJsZXRcIl0sW2gsRF0sW2YsRV1dLFsvIChrYjIwMDV8aW4yMFsxMl01fGJlMjBbMTJdWzU5XSlcXGIvaSwvKD86b25lKT8oPzpwbHVzKT8gKGFcXGQwXFxkXFxkKSg/OiBifFxcKSkvaV0sW2QsW2gsXCJPbmVQbHVzXCJdLFtmLF9dXSxbLyhhbGV4YSl3ZWJtL2ksLyhrZlthLXpdezJ9d2l8YWVvW2Mtcl17Mn0pKCBidWl8XFwpKS9pLC8oa2ZbYS16XSspKCBidWl8XFwpKS4rc2lsa1xcLy9pXSxbZCxbaCxUXSxbZixFXV0sWy8oKD86c2R8a2YpWzAzNDloaWpvcnN0dXddKykoIGJ1aXxcXCkpLitzaWxrXFwvL2ldLFtbZCwvKC4rKS9nLFwiRmlyZSBQaG9uZSAkMVwiXSxbaCxUXSxbZixfXV0sWy8ocGxheWJvb2spO1stXFx3XFwpLDsgXSsocmltKS9pXSxbZCxoLFtmLEVdXSxbL1xcYigoPzpiYlthLWZdfHN0W2h2XSkxMDAtXFxkKS9pLC9cXChiYjEwOyAoXFx3KykvaV0sW2QsW2gsQV0sW2YsX11dLFsvKD86XFxifGFzdXNfKSh0cmFuc2ZvW3ByaW1lIF17NCwxMH0gXFx3K3xlZWVwY3xzbGlkZXIgXFx3K3xuZXh1cyA3fHBhZGZvbmV8cDAwW2NqXSkvaV0sW2QsW2gsT10sW2YsRV1dLFsvICh6W2Jlc102WzAyN11bMDEyXVtrbV1bbHNdfHplbmZvbmUgXFxkXFx3PylcXGIvaV0sW2QsW2gsT10sW2YsX11dLFsvKG5leHVzIDkpL2ldLFtkLFtoLFwiSFRDXCJdLFtmLEVdXSxbLyhodGMpWy07XyBdezEsMn0oW1xcdyBdKyg/PVxcKXwgYnVpKXxcXHcrKS9pLC8oenRlKVstIF0oW1xcdyBdKz8pKD86IGJ1aXxcXC98XFwpKS9pLC8oYWxjYXRlbHxnZWVrc3Bob25lfG5leGlhbnxwYW5hc29uaWMoPyEoPzo7fFxcLikpfHNvbnkoPyEtYnJhKSlbLV8gXT8oWy1cXHddKikvaV0sW2gsW2QsL18vZyxcIiBcIl0sW2YsX11dLFsvZHJvaWQuKzsgKFthYl1bMS03XS0/WzAxNzhhXVxcZFxcZD8pL2ldLFtkLFtoLFwiQWNlclwiXSxbZixFXV0sWy9kcm9pZC4rOyAobVsxLTVdIG5vdGUpIGJ1aS9pLC9cXGJtei0oWy1cXHddezIsfSkvaV0sW2QsW2gsXCJNZWl6dVwiXSxbZixfXV0sWy8oYmxhY2tiZXJyeXxiZW5xfHBhbG0oPz1cXC0pfHNvbnllcmljc3NvbnxhY2VyfGFzdXN8ZGVsbHxtZWl6dXxtb3Rvcm9sYXxwb2x5dHJvbilbLV8gXT8oWy1cXHddKikvaSwvKGhwKSAoW1xcdyBdK1xcdykvaSwvKGFzdXMpLT8oXFx3KykvaSwvKG1pY3Jvc29mdCk7IChsdW1pYVtcXHcgXSspL2ksLyhsZW5vdm8pWy1fIF0/KFstXFx3XSspL2ksLyhqb2xsYSkvaSwvKG9wcG8pID8oW1xcdyBdKykgYnVpL2ldLFtoLGQsW2YsX11dLFsvKGtvYm8pXFxzKGVyZWFkZXJ8dG91Y2gpL2ksLyhhcmNob3MpIChnYW1lcGFkMj8pL2ksLyhocCkuKyh0b3VjaHBhZCg/IS4rdGFibGV0KXx0YWJsZXQpL2ksLyhraW5kbGUpXFwvKFtcXHdcXC5dKykvaSwvKG5vb2spW1xcdyBdK2J1aWxkXFwvKFxcdyspL2ksLyhkZWxsKSAoc3RyZWFba3ByXFxkIF0qW1xcZGtvXSkvaSwvKGxlWy0gXStwYW4pWy0gXSsoXFx3ezEsOX0pIGJ1aS9pLC8odHJpbml0eSlbLSBdKih0XFxkezN9KSBidWkvaSwvKGdpZ2FzZXQpWy0gXSsocVxcd3sxLDl9KSBidWkvaSwvKHZvZGFmb25lKSAoW1xcdyBdKykoPzpcXCl8IGJ1aSkvaV0sW2gsZCxbZixFXV0sWy8oc3VyZmFjZSBkdW8pL2ldLFtkLFtoLFJdLFtmLEVdXSxbL2Ryb2lkIFtcXGRcXC5dKzsgKGZwXFxkdT8pKD86IGJ8XFwpKS9pXSxbZCxbaCxcIkZhaXJwaG9uZVwiXSxbZixfXV0sWy8odTMwNGFhKS9pXSxbZCxbaCxcIkFUJlRcIl0sW2YsX11dLFsvXFxic2llLShcXHcqKS9pXSxbZCxbaCxcIlNpZW1lbnNcIl0sW2YsX11dLFsvXFxiKHJjdFxcdyspIGIvaV0sW2QsW2gsXCJSQ0FcIl0sW2YsRV1dLFsvXFxiKHZlbnVlW1xcZCBdezIsN30pIGIvaV0sW2QsW2gsXCJEZWxsXCJdLFtmLEVdXSxbL1xcYihxKD86bXZ8dGEpXFx3KykgYi9pXSxbZCxbaCxcIlZlcml6b25cIl0sW2YsRV1dLFsvXFxiKD86YmFybmVzWyYgXStub2JsZSB8Ym5bcnRdKShbXFx3XFwrIF0qKSBiL2ldLFtkLFtoLFwiQmFybmVzICYgTm9ibGVcIl0sW2YsRV1dLFsvXFxiKHRtXFxkezN9XFx3KykgYi9pXSxbZCxbaCxcIk51VmlzaW9uXCJdLFtmLEVdXSxbL1xcYihrODgpIGIvaV0sW2QsW2gsXCJaVEVcIl0sW2YsRV1dLFsvXFxiKG54XFxkezN9aikgYi9pXSxbZCxbaCxcIlpURVwiXSxbZixfXV0sWy9cXGIoZ2VuXFxkezN9KSBiLis0OWgvaV0sW2QsW2gsXCJTd2lzc1wiXSxbZixfXV0sWy9cXGIoenVyXFxkezN9KSBiL2ldLFtkLFtoLFwiU3dpc3NcIl0sW2YsRV1dLFsvXFxiKCh6ZWtpKT90Yi4qXFxiKSBiL2ldLFtkLFtoLFwiWmVraVwiXSxbZixFXV0sWy9cXGIoW3lyXVxcZHsyfSkgYi9pLC9cXGIoZHJhZ29uWy0gXSt0b3VjaCB8ZHQpKFxcd3s1fSkgYi9pXSxbW2gsXCJEcmFnb24gVG91Y2hcIl0sZCxbZixFXV0sWy9cXGIobnMtP1xcd3swLDl9KSBiL2ldLFtkLFtoLFwiSW5zaWduaWFcIl0sW2YsRV1dLFsvXFxiKChueGF8bmV4dCktP1xcd3swLDl9KSBiL2ldLFtkLFtoLFwiTmV4dEJvb2tcIl0sW2YsRV1dLFsvXFxiKHh0cmVtZVxcXyk/KHYoMVswNDVdfDJbMDE1XXxbMzQ2OV0wfDdbMDVdKSkgYi9pXSxbW2gsXCJWb2ljZVwiXSxkLFtmLF9dXSxbL1xcYihsdnRlbFxcLSk/KHYxWzEyXSkgYi9pXSxbW2gsXCJMdlRlbFwiXSxkLFtmLF9dXSxbL1xcYihwaC0xKSAvaV0sW2QsW2gsXCJFc3NlbnRpYWxcIl0sW2YsX11dLFsvXFxiKHYoMTAwbWR8NzAwbmF8NzAxMXw5MTdnKS4qXFxiKSBiL2ldLFtkLFtoLFwiRW52aXplblwiXSxbZixFXV0sWy9cXGIodHJpb1stXFx3XFwuIF0rKSBiL2ldLFtkLFtoLFwiTWFjaFNwZWVkXCJdLFtmLEVdXSxbL1xcYnR1XygxNDkxKSBiL2ldLFtkLFtoLFwiUm90b3JcIl0sW2YsRV1dLFsvKHNoaWVsZFtcXHcgXSspIGIvaV0sW2QsW2gsXCJOdmlkaWFcIl0sW2YsRV1dLFsvKHNwcmludCkgKFxcdyspL2ldLFtoLGQsW2YsX11dLFsvKGtpblxcLltvbmV0d117M30pL2ldLFtbZCwvXFwuL2csXCIgXCJdLFtoLFJdLFtmLF9dXSxbL2Ryb2lkLis7IChjYzY2NjY/fGV0NVsxNl18bWNbMjM5XVsyM114P3x2YzhbMDNdeD8pXFwpL2ldLFtkLFtoLHhdLFtmLEVdXSxbL2Ryb2lkLis7IChlYzMwfHBzMjB8dGNbMi04XVxcZFtreF0pXFwpL2ldLFtkLFtoLHhdLFtmLF9dXSxbL3NtYXJ0LXR2Lisoc2Ftc3VuZykvaV0sW2gsW2YsYl1dLFsvaGJidHYuK21hcGxlOyhcXGQrKS9pXSxbW2QsL14vLFwiU21hcnRUVlwiXSxbaCxCXSxbZixiXV0sWy8obnV4OyBuZXRjYXN0LitzbWFydHR2fGxnIChuZXRjYXN0XFwudHYtMjAxXFxkfGFuZHJvaWQgdHYpKS9pXSxbW2gsUF0sW2YsYl1dLFsvKGFwcGxlKSA/dHYvaV0sW2gsW2QsXCJBcHBsZSBUVlwiXSxbZixiXV0sWy9jcmtleS9pXSxbW2QsXCJDaHJvbWVjYXN0XCJdLFtoLE5dLFtmLGJdXSxbL2Ryb2lkLithZnQoXFx3KSggYnVpfFxcKSkvaV0sW2QsW2gsVF0sW2YsYl1dLFsvXFwoZHR2W1xcKTtdLisoYXF1b3MpL2ksLyhhcXVvcy10dltcXHcgXSspXFwpL2ldLFtkLFtoLE1dLFtmLGJdXSxbLyhicmF2aWFbXFx3IF0rKSggYnVpfFxcKSkvaV0sW2QsW2gsRF0sW2YsYl1dLFsvKG1pdHYtXFx3ezV9KSBidWkvaV0sW2QsW2gsal0sW2YsYl1dLFsvSGJidHYuKih0ZWNobmlzYXQpICguKik7L2ldLFtoLGQsW2YsYl1dLFsvXFxiKHJva3UpW1xcZHhdKltcXClcXC9dKCg/OmR2cC0pP1tcXGRcXC5dKikvaSwvaGJidHZcXC9cXGQrXFwuXFxkK1xcLlxcZCsgK1xcKFtcXHdcXCsgXSo7ICooW1xcd1xcZF1bXjtdKik7KFteO10qKS9pXSxbW2gsel0sW2Qsel0sW2YsYl1dLFsvXFxiKGFuZHJvaWQgdHZ8c21hcnRbLSBdP3R2fG9wZXJhIHR2fHR2OyBydjopXFxiL2ldLFtbZixiXV0sWy8ob3V5YSkvaSwvKG5pbnRlbmRvKSAoW3dpZHMzdXRjaF0rKS9pXSxbaCxkLFtmLHZdXSxbL2Ryb2lkLis7IChzaGllbGQpIGJ1aS9pXSxbZCxbaCxcIk52aWRpYVwiXSxbZix2XV0sWy8ocGxheXN0YXRpb24gWzM0NXBvcnRhYmxldmldKykvaV0sW2QsW2gsRF0sW2Ysdl1dLFsvXFxiKHhib3goPzogb25lKT8oPyE7IHhib3gpKVtcXCk7IF0vaV0sW2QsW2gsUl0sW2Ysdl1dLFsvKChwZWJibGUpKWFwcC9pXSxbaCxkLFtmLFNdXSxbLyh3YXRjaCkoPzogP29zWyxcXC9dfFxcZCxcXGRcXC8pW1xcZFxcLl0rL2ldLFtkLFtoLEldLFtmLFNdXSxbL2Ryb2lkLis7IChnbGFzcykgXFxkL2ldLFtkLFtoLE5dLFtmLFNdXSxbL2Ryb2lkLis7ICh3dDYzPzB7MiwzfSlcXCkvaV0sW2QsW2gseF0sW2YsU11dLFsvKHF1ZXN0KCAyfCBwcm8pPykvaV0sW2QsW2gsVV0sW2YsU11dLFsvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XFwvWy1cXHdcXC5dKykvaV0sW2gsW2YseV1dLFsvKGFlb2JjKVxcYi9pXSxbZCxbaCxUXSxbZix5XV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXxcXCkgYXBwbGV3KS4rPyBtb2JpbGUgc2FmYXJpL2ldLFtkLFtmLF9dXSxbL2Ryb2lkIC4rPzsgKFteO10rPykoPzogYnVpfFxcKSBhcHBsZXcpLis/KD8hIG1vYmlsZSkgc2FmYXJpL2ldLFtkLFtmLEVdXSxbL1xcYigodGFibGV0fHRhYilbO1xcL118Zm9jdXNcXC9cXGQoPyEuK21vYmlsZSkpL2ldLFtbZixFXV0sWy8ocGhvbmV8bW9iaWxlKD86WztcXC9dfCBbIFxcd1xcL1xcLl0qc2FmYXJpKXxwZGEoPz0uK3dpbmRvd3MgY2UpKS9pXSxbW2YsX11dLFsvKGFuZHJvaWRbLVxcd1xcLiBdezAsOX0pOy4rYnVpbC9pXSxbZCxbaCxcIkdlbmVyaWNcIl1dXSxlbmdpbmU6W1svd2luZG93cy4rIGVkZ2VcXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkVkZ2VIVE1MXCJdXSxbL3dlYmtpdFxcLzUzN1xcLjM2LitjaHJvbWVcXC8oPyEyNykoW1xcd1xcLl0rKS9pXSxbZyxbcCxcIkJsaW5rXCJdXSxbLyhwcmVzdG8pXFwvKFtcXHdcXC5dKykvaSwvKHdlYmtpdHx0cmlkZW50fG5ldGZyb250fG5ldHN1cmZ8YW1heWF8bHlueHx3M218Z29hbm5hKVxcLyhbXFx3XFwuXSspL2ksL2VraW9oKGZsb3cpXFwvKFtcXHdcXC5dKykvaSwvKGtodG1sfHRhc21hbnxsaW5rcylbXFwvIF1cXCg/KFtcXHdcXC5dKykvaSwvKGljYWIpW1xcLyBdKFsyM11cXC5bXFxkXFwuXSspL2ksL1xcYihsaWJ3ZWIpL2ldLFtwLGddLFsvcnZcXDooW1xcd1xcLl17MSw5fSlcXGIuKyhnZWNrbykvaV0sW2cscF1dLG9zOltbL21pY3Jvc29mdCAod2luZG93cykgKHZpc3RhfHhwKS9pXSxbcCxnXSxbLyh3aW5kb3dzKSBudCA2XFwuMjsgKGFybSkvaSwvKHdpbmRvd3MgKD86cGhvbmUoPzogb3MpP3xtb2JpbGUpKVtcXC8gXT8oW1xcZFxcLlxcdyBdKikvaSwvKHdpbmRvd3MpW1xcLyBdPyhbbnRjZVxcZFxcLiBdK1xcdykoPyEuK3hib3gpL2ldLFtwLFtnLFkscV1dLFsvKHdpbig/PTN8OXxuKXx3aW4gOXggKShbbnRcXGRcXC5dKykvaV0sW1twLFwiV2luZG93c1wiXSxbZyxZLHFdXSxbL2lwW2hvbmVhZF17Miw0fVxcYig/Oi4qb3MgKFtcXHddKykgbGlrZSBtYWN8OyBvcGVyYSkvaSwvaW9zO2Zic3ZcXC8oW1xcZFxcLl0rKS9pLC9jZm5ldHdvcmtcXC8uK2Rhcndpbi9pXSxbW2csL18vZyxcIi5cIl0sW3AsXCJpT1NcIl1dLFsvKG1hYyBvcyB4KSA/KFtcXHdcXC4gXSopL2ksLyhtYWNpbnRvc2h8bWFjX3Bvd2VycGNcXGIpKD8hLitoYWlrdSkvaV0sW1twLEhdLFtnLC9fL2csXCIuXCJdXSxbL2Ryb2lkIChbXFx3XFwuXSspXFxiLisoYW5kcm9pZFstIF14ODZ8aGFybW9ueW9zKS9pXSxbZyxwXSxbLyhhbmRyb2lkfHdlYm9zfHFueHxiYWRhfHJpbSB0YWJsZXQgb3N8bWFlbW98bWVlZ298c2FpbGZpc2gpWy1cXC8gXT8oW1xcd1xcLl0qKS9pLC8oYmxhY2tiZXJyeSlcXHcqXFwvKFtcXHdcXC5dKikvaSwvKHRpemVufGthaW9zKVtcXC8gXShbXFx3XFwuXSspL2ksL1xcKChzZXJpZXM0MCk7L2ldLFtwLGddLFsvXFwoYmIoMTApOy9pXSxbZyxbcCxBXV0sWy8oPzpzeW1iaWFuID9vc3xzeW1ib3N8czYwKD89Oyl8c2VyaWVzNjApWy1cXC8gXT8oW1xcd1xcLl0qKS9pXSxbZyxbcCxcIlN5bWJpYW5cIl1dLFsvbW96aWxsYVxcL1tcXGRcXC5dKyBcXCgoPzptb2JpbGV8dGFibGV0fHR2fG1vYmlsZTsgW1xcdyBdKyk7IHJ2Oi4rIGdlY2tvXFwvKFtcXHdcXC5dKykvaV0sW2csW3AsXCJGaXJlZm94IE9TXCJdXSxbL3dlYjBzOy4rcnQodHYpL2ksL1xcYig/OmhwKT93b3MoPzpicm93c2VyKT9cXC8oW1xcd1xcLl0rKS9pXSxbZyxbcCxcIndlYk9TXCJdXSxbL3dhdGNoKD86ID9vc1ssXFwvXXxcXGQsXFxkXFwvKShbXFxkXFwuXSspL2ldLFtnLFtwLFwid2F0Y2hPU1wiXV0sWy9jcmtleVxcLyhbXFxkXFwuXSspL2ldLFtnLFtwLFwiQ2hyb21lY2FzdFwiXV0sWy8oY3JvcykgW1xcd10rKD86XFwpfCAoW1xcd1xcLl0rKVxcYikvaV0sW1twLEZdLGddLFsvcGFuYXNvbmljOyh2aWVyYSkvaSwvKG5ldHJhbmdlKW1taC9pLC8obmV0dHYpXFwvKFxcZCtcXC5bXFx3XFwuXSspL2ksLyhuaW50ZW5kb3xwbGF5c3RhdGlvbikgKFt3aWRzMzQ1cG9ydGFibGV2dWNoXSspL2ksLyh4Ym94KTsgK3hib3ggKFteXFwpO10rKS9pLC9cXGIoam9saXxwYWxtKVxcYiA/KD86b3MpP1xcLz8oW1xcd1xcLl0qKS9pLC8obWludClbXFwvXFwoXFwpIF0/KFxcdyopL2ksLyhtYWdlaWF8dmVjdG9ybGludXgpWzsgXS9pLC8oW2t4bG5dP3VidW50dXxkZWJpYW58c3VzZXxvcGVuc3VzZXxnZW50b298YXJjaCg/PSBsaW51eCl8c2xhY2t3YXJlfGZlZG9yYXxtYW5kcml2YXxjZW50b3N8cGNsaW51eG9zfHJlZCA/aGF0fHplbndhbGt8bGlucHVzfHJhc3BiaWFufHBsYW4gOXxtaW5peHxyaXNjIG9zfGNvbnRpa2l8ZGVlcGlufG1hbmphcm98ZWxlbWVudGFyeSBvc3xzYWJheW9ufGxpbnNwaXJlKSg/OiBnbnVcXC9saW51eCk/KD86IGVudGVycHJpc2UpPyg/OlstIF1saW51eCk/KD86LWdudSk/Wy1cXC8gXT8oPyFjaHJvbXxwYWNrYWdlKShbLVxcd1xcLl0qKS9pLC8oaHVyZHxsaW51eCkgPyhbXFx3XFwuXSopL2ksLyhnbnUpID8oW1xcd1xcLl0qKS9pLC9cXGIoWy1mcmVudG9wY2doc117MCw1fWJzZHxkcmFnb25mbHkpW1xcLyBdPyg/IWFtZHxbaXgzNDZdezEsMn04NikoW1xcd1xcLl0qKS9pLC8oaGFpa3UpIChcXHcrKS9pXSxbcCxnXSxbLyhzdW5vcykgPyhbXFx3XFwuXFxkXSopL2ldLFtbcCxcIlNvbGFyaXNcIl0sZ10sWy8oKD86b3Blbik/c29sYXJpcylbLVxcLyBdPyhbXFx3XFwuXSopL2ksLyhhaXgpICgoXFxkKSg/PVxcLnxcXCl8IClbXFx3XFwuXSkqL2ksL1xcYihiZW9zfG9zXFwvMnxhbWlnYW9zfG1vcnBob3N8b3BlbnZtc3xmdWNoc2lhfGhwLXV4fHNlcmVuaXR5b3MpL2ksLyh1bml4KSA/KFtcXHdcXC5dKikvaV0sW3AsZ11dfSxKPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGU9PT1jJiYodD1lLGU9byksISh0aGlzIGluc3RhbmNlb2YgSikpcmV0dXJuIG5ldyBKKGUsdCkuZ2V0UmVzdWx0KCk7dmFyIG49dHlwZW9mIGkhPT1zJiZpLm5hdmlnYXRvcj9pLm5hdmlnYXRvcjpvLHI9ZXx8KG4mJm4udXNlckFnZW50P24udXNlckFnZW50OlwiXCIpLGw9biYmbi51c2VyQWdlbnREYXRhP24udXNlckFnZW50RGF0YTpvLGQ9dD9mdW5jdGlvbihlLHQpe3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKXRbcl0mJnRbcl0ubGVuZ3RoJTI9PT0wP25bcl09dFtyXS5jb25jYXQoZVtyXSk6bltyXT1lW3JdO3JldHVybiBufShaLHQpOloscD1uJiZuLnVzZXJBZ2VudD09cjtyZXR1cm4gdGhpcy5nZXRCcm93c2VyPWZ1bmN0aW9uKCl7dmFyIGUsdD17fTtyZXR1cm4gdC5uYW1lPW8sdC52ZXJzaW9uPW8sSy5jYWxsKHQscixkLmJyb3dzZXIpLHQubWFqb3I9dHlwZW9mKGU9dC52ZXJzaW9uKT09PXU/ZS5yZXBsYWNlKC9bXlxcZFxcLl0vZyxcIlwiKS5zcGxpdChcIi5cIilbMF06byxwJiZuJiZuLmJyYXZlJiZ0eXBlb2Ygbi5icmF2ZS5pc0JyYXZlPT1hJiYodC5uYW1lPVwiQnJhdmVcIiksdH0sdGhpcy5nZXRDUFU9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS5hcmNoaXRlY3R1cmU9byxLLmNhbGwoZSxyLGQuY3B1KSxlfSx0aGlzLmdldERldmljZT1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlLnZlbmRvcj1vLGUubW9kZWw9byxlLnR5cGU9byxLLmNhbGwoZSxyLGQuZGV2aWNlKSxwJiYhZS50eXBlJiZsJiZsLm1vYmlsZSYmKGUudHlwZT1fKSxwJiZcIk1hY2ludG9zaFwiPT1lLm1vZGVsJiZuJiZ0eXBlb2Ygbi5zdGFuZGFsb25lIT09cyYmbi5tYXhUb3VjaFBvaW50cyYmbi5tYXhUb3VjaFBvaW50cz4yJiYoZS5tb2RlbD1cImlQYWRcIixlLnR5cGU9RSksZX0sdGhpcy5nZXRFbmdpbmU9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZS5uYW1lPW8sZS52ZXJzaW9uPW8sSy5jYWxsKGUscixkLmVuZ2luZSksZX0sdGhpcy5nZXRPUz1mdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlLm5hbWU9byxlLnZlcnNpb249byxLLmNhbGwoZSxyLGQub3MpLHAmJiFlLm5hbWUmJmwmJlwiVW5rbm93blwiIT1sLnBsYXRmb3JtJiYoZS5uYW1lPWwucGxhdGZvcm0ucmVwbGFjZSgvY2hyb21lIG9zL2ksRikucmVwbGFjZSgvbWFjb3MvaSxIKSksZX0sdGhpcy5nZXRSZXN1bHQ9ZnVuY3Rpb24oKXtyZXR1cm57dWE6dGhpcy5nZXRVQSgpLGJyb3dzZXI6dGhpcy5nZXRCcm93c2VyKCksZW5naW5lOnRoaXMuZ2V0RW5naW5lKCksb3M6dGhpcy5nZXRPUygpLGRldmljZTp0aGlzLmdldERldmljZSgpLGNwdTp0aGlzLmdldENQVSgpfX0sdGhpcy5nZXRVQT1mdW5jdGlvbigpe3JldHVybiByfSx0aGlzLnNldFVBPWZ1bmN0aW9uKGUpe3JldHVybiByPXR5cGVvZiBlPT09dSYmZS5sZW5ndGg+MzUwP3ooZSwzNTApOmUsdGhpc30sdGhpcy5zZXRVQShyKSx0aGlzfTtKLlZFUlNJT049XCIxLjAuMzVcIixKLkJST1dTRVI9RyhbcCxnLGxdKSxKLkNQVT1HKFttXSksSi5ERVZJQ0U9RyhbZCxoLGYsdixfLGIsRSxTLHldKSxKLkVOR0lORT1KLk9TPUcoW3AsZ10pLHR5cGVvZiB0IT09cz8oZS5leHBvcnRzJiYodD1lLmV4cG9ydHM9SiksdC5VQVBhcnNlcj1KKTpuLmFtZE8/KHI9ZnVuY3Rpb24oKXtyZXR1cm4gSn0uY2FsbCh0LG4sdCxlKSk9PT1vfHwoZS5leHBvcnRzPXIpOnR5cGVvZiBpIT09cyYmKGkuVUFQYXJzZXI9Sik7dmFyIFg9dHlwZW9mIGkhPT1zJiYoaS5qUXVlcnl8fGkuWmVwdG8pO2lmKFgmJiFYLnVhKXt2YXIgUT1uZXcgSjtYLnVhPVEuZ2V0UmVzdWx0KCksWC51YS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gUS5nZXRVQSgpfSxYLnVhLnNldD1mdW5jdGlvbihlKXtRLnNldFVBKGUpO3ZhciB0PVEuZ2V0UmVzdWx0KCk7Zm9yKHZhciBuIGluIHQpWC51YVtuXT10W25dfX19KFwib2JqZWN0XCI9PT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzKX0sODQwMjA6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuUHJldmlld1BhZ2VIZWFkTWV0YT10LkxpbmtQcmV2aWV3SGVhZE1ldGE9dC5hcHBlbmRDb250ZW50U2VjdXJpdHlQb2xpY3lNZXRhPXQuSGVhZE1ldGE9dm9pZCAwO3ZhciByPW4oMzkyMzYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiSGVhZE1ldGFcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5IZWFkTWV0YX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImFwcGVuZENvbnRlbnRTZWN1cml0eVBvbGljeU1ldGFcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBlbmRDb250ZW50U2VjdXJpdHlQb2xpY3lNZXRhfX0pO3ZhciBpPW4oNTAxNzcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiTGlua1ByZXZpZXdIZWFkTWV0YVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLkxpbmtQcmV2aWV3SGVhZE1ldGF9fSk7dmFyIG89bigzNzM4OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJQcmV2aWV3UGFnZUhlYWRNZXRhXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uUHJldmlld1BhZ2VIZWFkTWV0YX19KX0sMzkyMzY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuYXBwZW5kQ29udGVudFNlY3VyaXR5UG9saWN5TWV0YT10LkhlYWRNZXRhPXZvaWQgMDtjb25zdCByPW4oODU4OTMpLGk9big2NDU5Myksbz1uKDcyMTQ2KSxhPW4oMzc4Nykscz1uKDg2MTg5KTtmdW5jdGlvbiBjKGUpe2NvbnN0IHQ9T2JqZWN0LmtleXMoZSkucmVkdWNlKCgodCxuKT0+KHsuLi50LC4uLlwiZnJhbWUtYW5jZXN0b3JzXCIhPT1uJiZ7W25dOmVbbl19fSkpLHt9KTtyZXR1cm4oMCxyLmpzeCkoXCJtZXRhXCIse2h0dHBFcXVpdjpcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsY29udGVudDooMCxvLmdlbmVyYXRlQ1NQSGVhZGVyVmFsdWUpKHQpfSl9ZnVuY3Rpb24gdShlKXtpZihlPy5VQUlkKXJldHVybigwLHIuanN4KShcInNjcmlwdFwiLHthc3luYzohMCxzcmM6XCJodHRwczovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanNcIn0pfWZ1bmN0aW9uIGwoZSl7aWYoZT8ubWVhc3VyZW1lbnRJZCl7Y29uc3QgdD1gaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD0ke2UubWVhc3VyZW1lbnRJZH1gO3JldHVybigwLHIuanN4KShcInNjcmlwdFwiLHthc3luYzohMCxzcmM6dH0pfX1mdW5jdGlvbiBkKGUsdCl7cmV0dXJuKDAsci5qc3gpKFwibGlua1wiLHtyZWw6XCJwcmVjb25uZWN0XCIsaHJlZjplfSxgJHtlfSske3R9YCl9ZnVuY3Rpb24gcChlKXtyZXR1cm4oMCxyLmpzeCkoXCJsaW5rXCIse3JlbDpcInByZWxvYWRcIiwuLi5lfSxlLmhyZWYpfWZ1bmN0aW9uIGYoe2RpcmVjdGl2ZTplLG5hbWU6dD1cInJvYm90c1wifSxuKXtyZXR1cm4oMCxyLmpzeCkoXCJtZXRhXCIse25hbWU6dCxjb250ZW50OmV9LGAke2V9KyR7bn1gKX1mdW5jdGlvbiBoKGUpe2lmKGUpcmV0dXJuKDAsci5qc3gpKFwibGlua1wiLHtyZWw6XCJtYW5pZmVzdFwiLGhyZWY6ZX0pfWZ1bmN0aW9uIGcoe3RlbXBsYXRlOmUsbG9jYWxlczp0PWEuQUxMX0xPQ0FMRVMsZGVmYXVsdFZhbHVlOm59KXtjb25zdCBpPVtdO2lmKC97bG9jYWxlfS9nLnRlc3QoZSkpe2NvbnN0IG49QXJyYXkuZnJvbShuZXcgU2V0KHQubWFwKChlPT4oMCxhLmdldExvY2FsZSkoZSkpKSkpO2kucHVzaChuLm1hcCgodD0+e2NvbnN0IG49ZS5yZXBsYWNlKC97bG9jYWxlfS9nLHQpO3JldHVybigwLHIuanN4KShcImxpbmtcIix7cmVsOlwiYWx0ZXJuYXRlXCIsaHJlZjpuLGhyZWZMYW5nOnR9LG4pfSkpKX1yZXR1cm4gbiYmaS5wdXNoKCgwLHIuanN4KShcImxpbmtcIix7cmVsOlwiYWx0ZXJuYXRlXCIsaHJlZjpuLGhyZWZMYW5nOlwieC1kZWZhdWx0XCJ9LFwiaHJlZmxhbmcteC1kZWZhdWx0XCIpKSxpfWZ1bmN0aW9uIG0oZSl7Y29uc3QgdD1cImFwcC1pZD00NDcxODgzNzBcIixuPWU/YCR7dH0sIGFwcC1hcmd1bWVudD0ke2V9YDp0O3JldHVybigwLHIuanN4KShcIm1ldGFcIix7bmFtZTpcImFwcGxlLWl0dW5lcy1hcHBcIixjb250ZW50Om59KX1mdW5jdGlvbiB2KGUpe2lmKGUpcmV0dXJuKDAsci5qc3gpKFwic2NyaXB0XCIse3R5cGU6XCJhcHBsaWNhdGlvbi9sZCtqc29uXCIsY2hpbGRyZW46KDAscy5nZXRWaWRlb09iamVjdFdpdGhDb250ZXh0KShlKX0pfWZ1bmN0aW9uIF8oZSl7aWYoZT8uVUFJZCl7Y29uc3QgdD1gXFxuICAgIHdpbmRvdy5nYT13aW5kb3cuZ2F8fGZ1bmN0aW9uKCl7KGdhLnEgPSBnYS5xIHx8IFtdKS5wdXNoKGFyZ3VtZW50cyl9O1xcbiAgICBnYS5sPStuZXcgRGF0ZTtcXG4gICAgZ2EoJ2NyZWF0ZScsJyR7ZS5VQUlkfScsICdhdXRvJyk7XFxuICAgIGdhKCdzZW5kJywncGFnZXZpZXcnLCBsb2NhdGlvbi5wYXRobmFtZSk7XFxuICBgO3JldHVybigwLHIuanN4KShcInNjcmlwdFwiLHtjaGlsZHJlbjp0fSl9fWZ1bmN0aW9uIEUoZSl7aWYoZT8ubWVhc3VyZW1lbnRJZCl7Y29uc3QgdD1gXFxuICAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdO1xcbiAgICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9XFxuICAgIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7XFxuICAgIGd0YWcoJ2NvbmZpZycsICcke2UubWVhc3VyZW1lbnRJZH0nKTtcXG4gIGA7cmV0dXJuKDAsci5qc3gpKFwic2NyaXB0XCIse2NoaWxkcmVuOnR9KX19dC5IZWFkTWV0YT1mdW5jdGlvbih7bGFuZzplLGRpcmVjdGlvbjp0LHRpdGxlOm49XCJTbmFwY2hhdFwiLHBvbGljeURpcmVjdGl2ZXM6byxocmVmTGFuZ1RhZ09wdGlvbnM6cyxkZXNjcmlwdGlvbjpiLG1ldHJpY3NQYWdlTmFtZTpTLGNhbm9uaWNhbFVybDp5LHJvYm90c01ldGE6VD1bXSxnYWlkOkkscHJlY29ubmVjdHM6Tz1bXSxwcmVsb2FkczpBPVtdLG1hbmlmZXN0UGF0aDpDLHNuYXBjaGF0RGVlcExpbmtVcmw6Tix0aGVtZTprLHZpZGVvTWV0YWRhdGE6UH0pe2NvbnN0IFI9e3ByZWZpeDpcIm9nOiBodHRwczovL29ncC5tZS9ucyNcIixsYW5nOmUsXCJkYXRhLXRoZW1lLW92ZXJyaWRlXCI6XCJsaWdodFwiPT09a3x8XCJkYXJrXCI9PT1rP2s6XCJcIixkaXI6dD8/YS5MYW5ndWFnZURpcmVjdGlvbi5MVFJ9O3JldHVybigwLHIuanN4cykoaS5IZWxtZXQse2h0bWxBdHRyaWJ1dGVzOlIsY2hpbGRyZW46WygwLHIuanN4KShcIm1ldGFcIix7Y2hhclNldDpcIlVURi04XCJ9KSwoMCxyLmpzeCkoXCJ0aXRsZVwiLHtjaGlsZHJlbjpufSksKDAsci5qc3gpKFwibWV0YVwiLHtuYW1lOlwidmlld3BvcnRcIixjb250ZW50Olwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPTBcIn0pLFMmJigwLHIuanN4KShcIm1ldGFcIix7bmFtZTpcIm1ldHJpY3MtcGFnZS1uYW1lXCIsY29udGVudDpTfSksbyYmYyhvKSx1KEkpLGwoSSksTy5tYXAoZCksQS5tYXAocCksYiYmKDAsci5qc3gpKFwibWV0YVwiLHtuYW1lOlwiZGVzY3JpcHRpb25cIixjb250ZW50OmJ9KSx5JiYoMCxyLmpzeCkoXCJsaW5rXCIse3JlbDpcImNhbm9uaWNhbFwiLGhyZWY6eX0pLHMmJmcocyksVC5tYXAoZiksaChDKSxtKE4pLCgwLHIuanN4KShcImxpbmtcIix7cmVsOlwic2hvcnRjdXQgaWNvblwiLGhyZWY6XCJodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb20vZmF2aWNvbi5pY29cIn0pLHYoUCksXyhJKSxFKEkpLCgwLHIuanN4KShcInNjcmlwdFwiLHtjaGlsZHJlbjonXFxuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZShcXG4gICAgICAgIFwiZGF0YS10aGVtZVwiLFxcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtdGhlbWUtb3ZlcnJpZGVcIikgfHxcXG4gICAgICAgICAgKHdpbmRvdy5tYXRjaE1lZGlhKFwiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKVwiKS5tYXRjaGVzID8gXCJkYXJrXCIgOiBcImxpZ2h0XCIpKVxcbiAgICAnfSldfSl9LHQuYXBwZW5kQ29udGVudFNlY3VyaXR5UG9saWN5TWV0YT1jfSwzNzM4OTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5QcmV2aWV3UGFnZUhlYWRNZXRhPXZvaWQgMDtjb25zdCByPW4oODU4OTMpLGk9big2NDU5Myk7dC5QcmV2aWV3UGFnZUhlYWRNZXRhPWZ1bmN0aW9uKHtwYWdlVGl0bGU6ZSxwYWdlRGVzY3JpcHRpb246dH0pe3JldHVybigwLHIuanN4cykoaS5IZWxtZXQse2NoaWxkcmVuOltlJiYoMCxyLmpzeCkoXCJ0aXRsZVwiLHtjaGlsZHJlbjplfSksdCYmKDAsci5qc3gpKFwibWV0YVwiLHtuYW1lOlwiZGVzY3JpcHRpb25cIixjb250ZW50OnR9KSwoMCxyLmpzeCkoXCJsaW5rXCIse3JlbDpcImljb25cIixocmVmOlwiZGF0YTosXCJ9KSwoMCxyLmpzeCkoXCJzdHlsZVwiLHtjaGlsZHJlbjpcImh0bWwge1xcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgYm9keSB7XFxuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXByaW1hcnkpO1xcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAjX19uZXh0LCAjcm9vdCB7XFxuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICAgICAgICAgICAgfVwifSldfSl9fSw1MDE3NzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5MaW5rUHJldmlld0hlYWRNZXRhPXZvaWQgMDtjb25zdCByPW4oODU4OTMpLGk9big2OTc0NCksbz1uKDk0MDExKTt0LkxpbmtQcmV2aWV3SGVhZE1ldGE9ZnVuY3Rpb24oe2xpbmtQcmV2aWV3OmV9KXtjb25zdCB0PWUuZmFjZWJvb2tJbWFnZSxuPWUudHdpdHRlckltYWdlO3JldHVybigwLHIuanN4cykoci5GcmFnbWVudCx7Y2hpbGRyZW46W3QmJigwLHIuanN4KShpLk9wZW5HcmFwaEhlYWQse3RpdGxlOmUudGl0bGUsZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbix1cmw6ZS5jYW5vbmljYWxVcmwsaW1hZ2U6dH0pLG4mJigwLHIuanN4KShvLlR3aXR0ZXJDYXJkSGVhZCx7dGl0bGU6ZS50aXRsZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLGltYWdlOm59KV19KX19LDY5NzQ0OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lk9wZW5HcmFwaEhlYWQ9dm9pZCAwO2NvbnN0IHI9big4NTg5MyksaT1uKDY0NTkzKTt0Lk9wZW5HcmFwaEhlYWQ9ZnVuY3Rpb24oe2Rlc2NyaXB0aW9uOmUsdGl0bGU6dCx0eXBlOm49XCJ3ZWJzaXRlXCIsdXJsOm8saW1hZ2U6YX0pe2NvbnN0IHM9YS5zaXplO3JldHVybigwLHIuanN4cykoaS5IZWxtZXQse2NoaWxkcmVuOlsoMCxyLmpzeCkoXCJtZXRhXCIse3Byb3BlcnR5Olwib2c6dGl0bGVcIixjb250ZW50OnR9KSwoMCxyLmpzeCkoXCJtZXRhXCIse3Byb3BlcnR5Olwib2c6dHlwZVwiLGNvbnRlbnQ6bn0pLCgwLHIuanN4KShcIm1ldGFcIix7cHJvcGVydHk6XCJvZzp1cmxcIixjb250ZW50Om99KSwoMCxyLmpzeCkoXCJtZXRhXCIse3Byb3BlcnR5Olwib2c6aW1hZ2VcIixjb250ZW50OmEudXJsfSkscyYmKDAsci5qc3gpKFwibWV0YVwiLHtwcm9wZXJ0eTpcIm9nOmltYWdlOndpZHRoXCIsY29udGVudDpzLndpZHRoLnRvU3RyaW5nKCl9KSxzJiYoMCxyLmpzeCkoXCJtZXRhXCIse3Byb3BlcnR5Olwib2c6aW1hZ2U6aGVpZ2h0XCIsY29udGVudDpzLmhlaWdodC50b1N0cmluZygpfSksKDAsci5qc3gpKFwibWV0YVwiLHtwcm9wZXJ0eTpcIm9nOnNpdGVfbmFtZVwiLGNvbnRlbnQ6XCJTbmFwY2hhdFwifSksKDAsci5qc3gpKFwibWV0YVwiLHtwcm9wZXJ0eTpcIm9nOmRlc2NyaXB0aW9uXCIsY29udGVudDplfSldfSl9fSw5NDAxMTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5Ud2l0dGVyQ2FyZEhlYWQ9dm9pZCAwO2NvbnN0IHI9big4NTg5MyksaT1uKDY0NTkzKTt0LlR3aXR0ZXJDYXJkSGVhZD1mdW5jdGlvbih7dGl0bGU6ZSxkZXNjcmlwdGlvbjp0LGltYWdlOm59KXtyZXR1cm4oMCxyLmpzeHMpKGkuSGVsbWV0LHtjaGlsZHJlbjpbKDAsci5qc3gpKFwibWV0YVwiLHtwcm9wZXJ0eTpcInR3aXR0ZXI6Y2FyZFwiLGNvbnRlbnQ6XCJzdW1tYXJ5X2xhcmdlX2ltYWdlXCJ9KSwoMCxyLmpzeCkoXCJtZXRhXCIse3Byb3BlcnR5OlwidHdpdHRlcjpzaXRlXCIsY29udGVudDpcIkBTbmFwY2hhdFwifSksKDAsci5qc3gpKFwibWV0YVwiLHtwcm9wZXJ0eTpcInR3aXR0ZXI6dGl0bGVcIixjb250ZW50OmV9KSwoMCxyLmpzeCkoXCJtZXRhXCIse3Byb3BlcnR5OlwidHdpdHRlcjppbWFnZVwiLGNvbnRlbnQ6bi51cmx9KSx0JiYoMCxyLmpzeCkoXCJtZXRhXCIse3Byb3BlcnR5OlwidHdpdHRlcjpkZXNjcmlwdGlvblwiLGNvbnRlbnQ6dH0pXX0pfX0sODYxODk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZ2V0VmlkZW9PYmplY3RXaXRoQ29udGV4dD12b2lkIDA7Y29uc3QgaT1yKG4oMjc0ODQpKSxvPXIobigxNjQ2KSk7aS5kZWZhdWx0LmV4dGVuZChvLmRlZmF1bHQpO2NvbnN0IGE9e1wiJlwiOlwiXFxcXHUwMDI2XCIsXCI+XCI6XCJcXFxcdTAwM2VcIixcIjxcIjpcIlxcXFx1MDAzY1wiLFwiXFx1MjAyOFwiOlwiXFxcXHUyMDI4XCIsXCJcXHUyMDI5XCI6XCJcXFxcdTIwMjlcIn0scz0vWyY+PFxcdTIwMjhcXHUyMDI5XS9nLGM9ZT0+ZS52aWV3Q291bnQ/e2ludGVyYWN0aW9uU3RhdGlzdGljOntcIkB0eXBlXCI6XCJJbnRlcmFjdGlvbkNvdW50ZXJcIixpbnRlcmFjdGlvblR5cGU6e1wiQHR5cGVcIjpcIldhdGNoQWN0aW9uXCJ9LHVzZXJJbnRlcmFjdGlvbkNvdW50OnBhcnNlSW50KGUudmlld0NvdW50KX19Ont9LHU9ZT0+e2lmKFwicGVyc29uQ3JlYXRvclwiPT09ZS5jcmVhdG9yPy4kY2FzZSl7Y29uc3QgdD1lLmNyZWF0b3IucGVyc29uQ3JlYXRvcjtyZXR1cm57Y3JlYXRvcjp7XCJAdHlwZVwiOlwiUGVyc29uXCIsYWx0ZXJuYXRlTmFtZTp0LnVzZXJuYW1lLHVybDp0LnVybH19fXJldHVybnt9fSxsPWU9PmUuZHVyYXRpb25Ncz97ZHVyYXRpb246aS5kZWZhdWx0LmR1cmF0aW9uKHBhcnNlSW50KGUuZHVyYXRpb25NcyksXCJtc1wiKS50b0lTT1N0cmluZygpfTp7fSxkPWU9PmUud2lkdGgmJmUuaGVpZ2h0P3t3aWR0aDpgJHtlLndpZHRofSBweGAsaGVpZ2h0OmAke2UuaGVpZ2h0fSBweGB9Ont9O3QuZ2V0VmlkZW9PYmplY3RXaXRoQ29udGV4dD1lPT57Y29uc3QgdD17XCJAY29udGV4dFwiOlwiaHR0cHM6Ly9zY2hlbWEub3JnXCIsXCJAdHlwZVwiOlwiVmlkZW9PYmplY3RcIixuYW1lOmUubmFtZSxkZXNjcmlwdGlvbjplLmRlc2NyaXB0aW9uLHRodW1ibmFpbFVybDplLnRodW1ibmFpbFVybCx1cGxvYWREYXRlOm5ldyBEYXRlKHBhcnNlSW50KGUudXBsb2FkRGF0ZU1zKSkudG9JU09TdHJpbmcoKSwuLi5jKGUpLGNvbnRlbnRVcmw6ZS5jb250ZW50VXJsLC4uLnUoZSksLi4ubChlKSwuLi5kKGUpLGVuY29kaW5nRm9ybWF0OlwidmlkZW8vbXA0XCJ9O3JldHVybiBKU09OLnN0cmluZ2lmeSh0KS5yZXBsYWNlKHMsKGU9PmFbZV0pKX19LDcyMTQ2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pO2kmJiEoXCJnZXRcImluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSl8fChpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9OmZ1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pLGVbcl09dFtuXX0pLGk9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIGUpXCJkZWZhdWx0XCI9PT1ufHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKXx8cih0LGUsbil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQudHJhbnNmb3JtPXQuZ2VuZXJhdGVDU1BIZWFkZXJWYWx1ZT12b2lkIDAsaShuKDg4ODEpLHQpLGkobig4NzQ5MyksdCk7dmFyIG89big2NzApO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiZ2VuZXJhdGVDU1BIZWFkZXJWYWx1ZVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmdlbmVyYXRlQ1NQSGVhZGVyVmFsdWV9fSk7dmFyIGE9big3NzM1MSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ0cmFuc2Zvcm1cIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS50cmFuc2Zvcm19fSl9LDY3MDpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZ2VuZXJhdGVDU1BIZWFkZXJWYWx1ZT12b2lkIDAsdC5nZW5lcmF0ZUNTUEhlYWRlclZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZW50cmllcyhlKS5tYXAoKChbZSx0XSk9PmAke2V9ICR7dC5qb2luKFwiIFwiKX1gKSkuam9pbihcIjsgXCIpfX0sODg4MTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuQ09NTU9OX0ZSQU1FX0FOQ0VTVE9SU19WQUxVRVM9dC5DT01NT05fRk9OVF9TUkNfVkFMVUVTPXQuQ09NTU9OX0RFRkFVTFRfU1JDX1ZBTFVFUz10LkNPTU1PTl9TVFlMRV9TUkNfVkFMVUVTPXQuQ09NTU9OX1NDUklQVF9TUkNfVkFMVUVTPXQuQ09NTU9OX01FRElBX1NSQ19WQUxVRVM9dC5DT01NT05fSU1BR0VfU1JDX1ZBTFVFUz10LkNPTU1PTl9DT05ORUNUX1NSQ19WQUxVRVM9dm9pZCAwLHQuQ09NTU9OX0NPTk5FQ1RfU1JDX1ZBTFVFUz1bXCInc2VsZidcIixcImJsb2I6XCIsXCJodHRwczovL2djcC5hcGkuc25hcGNoYXQuY29tXCIsXCJodHRwczovL3dlYi1mcm9udGVuZC1kb3Qtc2MtYW5hbHl0aWNzLmFwcHNwb3QuY29tXCIsXCJodHRwczovL2F3cy5hcGkuc25hcGNoYXQuY29tXCIsXCJodHRwczovLyouZ29vZ2xlLWFuYWx5dGljcy5jb21cIixcImh0dHBzOi8vKi5hbmFseXRpY3MuZ29vZ2xlLmNvbVwiLFwiaHR0cHM6Ly9zdGF0cy5nLmRvdWJsZWNsaWNrLm5ldFwiLFwiaHR0cHM6Ly8qLmdvb2dsZXRhZ21hbmFnZXIuY29tXCIsXCJodHRwczovL3d3dy5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vYXBwLnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9zZW50cnkuc2MtcHJvZC5uZXRcIixcImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tXCIsXCJodHRwczovL3VzLWNlbnRyYWwxLWdjcC5hcGkuc25hcGNoYXQuY29tXCIsXCJodHRwczovL3N0YWdpbmctdXMtY2VudHJhbDEtZ2NwLmFwaS5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vc3RhZ2luZy13ZWItZ2NwLnNuYXAtZGV2Lm5ldFwiLFwiaHR0cHM6Ly93ZWIuc25hcGNoYXQuY29tXCIsXCJodHRwczovL2FjY291bnRzLnNuYXBjaGF0LmNvbVwiLFwid3M6XCIsXCJ3c3M6XCIsXCJodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vc2VudHJ5LnNjLXByb2QubmV0XCIsXCJodHRwczovL2Nkbi5jb250ZW50ZnVsLmNvbVwiXSx0LkNPTU1PTl9JTUFHRV9TUkNfVkFMVUVTPVtcIidzZWxmJyBibG9iOiBkYXRhOlwiLFwiaHR0cHM6Ly9zdXBwb3J0LXRvb2xzLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb21cIixcImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9jZi1zdC5zYy1jZG4ubmV0XCIsXCJodHRwczovLyouZ29vZ2xlLWFuYWx5dGljcy5jb21cIixcImh0dHBzOi8vKi5nb29nbGV0YWdtYW5hZ2VyLmNvbVwiLFwiZGF0YTpcIixcImh0dHBzOi8vd3d3Lmdvb2dsZS5jb21cIixcImh0dHBzOi8vd3d3Lmdvb2dsZS5jby51a1wiLFwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS5zYVwiLFwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNhXCIsXCJodHRwczovL3d3dy5nb29nbGUuZnJcIixcImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20ubm9cIixcImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20uYXVcIixcImh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9pbWFnZXMuYml0bW9qaS5jb21cIixcImh0dHBzOi8vaW1wYWxhLW1lZGlhLXByb2R1Y3Rpb24uczMuYW1hem9uYXdzLmNvbVwiXSx0LkNPTU1PTl9NRURJQV9TUkNfVkFMVUVTPVtcImh0dHBzOi8vYm9sdC1nY2RuLnNjLWNkbi5uZXRcIixcImh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9zLnNjLWNkbi5uZXRcIixcImh0dHBzOi8vY2Ytc3Quc2MtY2RuLm5ldFwiLFwiYmxvYjpcIl0sdC5DT01NT05fU0NSSVBUX1NSQ19WQUxVRVM9W1wiJ3NlbGYnXCIsXCJodHRwczovL3N0YXRpYy5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tXCIsXCJodHRwczovLyouZ29vZ2xldGFnbWFuYWdlci5jb21cIixcIidzaGEyNTYtZFFKUXNncmwzdU1WdnkyQkpZc2FOS2I1YVB3d1pQMUh4bS9oOG5QTVlVOD0nXCIsXCInc2hhMjU2LVcxODBMdzRnTWl6eEVVSG1FVGhSN1FGbkFXdG1GZ2NGblhhZmJHT2UyN0k9J1wiLFwiJ3NoYTI1Ni1UK21KcHprc3BZYlMyYzlqMnFyZ3llengwK2J4dWVhWU5Kd1ZCNzVwZTNZPSdcIixcIidzaGEyNTYtNXJNeGgxVTZzSURsVmptb2JCUVk4OVFUQzluTmVLM2hkOWRzWHBEMkFZRT0nXCIsXCInc2hhMjU2LVNseVhxTnBkZEZZOWx4Ymd1U1Q1bTIySGlmR0VMWVYxRlllYzhYaEhVa2s9J1wiLFwiJ3NoYTI1Ni1GaFV2bFN6MEJYajRyOE0xblhBa1ZYbWJjeGlXclVYQjZ2TmJDWjhBMFprPSdcIixcIidzaGEyNTYtMkxtT0lMTTJISVM5cEpDMzgwb3dSbE9ZbytjNVdPdXVOTDdvRU1Mc3MyST0nXCIsXCInc2hhMjU2LU1ObjBIeUp4dXlLbnluMGxQTTFoQ3pQenljcmFUbTBUWEVxWDFraGgvN2s9J1wiXSx0LkNPTU1PTl9TVFlMRV9TUkNfVkFMVUVTPVtcIidzZWxmJ1wiLFwiaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tXCIsXCIndW5zYWZlLWlubGluZSdcIl0sdC5DT01NT05fREVGQVVMVF9TUkNfVkFMVUVTPVtcIidzZWxmJ1wiXSx0LkNPTU1PTl9GT05UX1NSQ19WQUxVRVM9W1wiJ3NlbGYnXCIsXCJodHRwczovL3NuYXAtZGVzaWduLXN5c3RlbS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tXCIsXCJodHRwczovL2Fkcy1pbnRlcmZhY2VzLnNjLWNkbi5uZXRcIixcImh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbVwiXSx0LkNPTU1PTl9GUkFNRV9BTkNFU1RPUlNfVkFMVUVTPVtcIidub25lJ1wiXX0sODc0OTM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNDg3NjQpLmxXLGk9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTtpJiYhKFwiZ2V0XCJpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpfHwoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLGkpfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxvPXRoaXMmJnRoaXMuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX06ZnVuY3Rpb24oZSx0KXtlLmRlZmF1bHQ9dH0pLGE9dGhpcyYmdGhpcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiIT09biYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJmkodCxlLG4pO3JldHVybiBvKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5leHRyYWN0Q291bnRyeUZyb21IZWFkZXJzPXQuZXh0cmFjdElzR0RQUkZyb21HQ1BIZWFkZXI9dC5leHRyYWN0Q291bnRyeUZyb21BUElHV0hlYWRlcj10LmV4dHJhY3RJc0dEUFJGcm9tQVBJR1dIZWFkZXI9dC5DT05USU5FTlRTPXQuSU5WQUxJRF9DT05USU5FTlRfQ09ERT10LklOVkFMSURfQ09VTlRSWV9DT0RFPXQuQVBQRU5HSU5FX0NPVU5UUllfSEVBREVSPXQuQVBJR1dfR0VPX0hFQURFUl9LRVk9dm9pZCAwO2NvbnN0IHM9bigzMDY3MiksYz1uKDI3MDAyKTthc3luYyBmdW5jdGlvbiB1KGUsdCl7cmV0dXJuKDAscy5pc1J1bm5pbmdPblNlcnZlcikoKT9Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgoKT0+YShuKDc5Mjg3KSkpKS50aGVuKChlPT5lLkdlb0hlYWRlcikpLnRoZW4oKHQ9PnQuZGVzZXJpYWxpemVCaW5hcnkoci5mcm9tKGUsXCJiYXNlNjRcIikpKSkuY2F0Y2goKGU9Pih0KGBGYWlsZWQgdG8gZGVzZXJpYWxpemUgZ2VvIGhlYWRlciAke2V9YCksbnVsbCkpKToodChcIkF0dGVtcHRlZCB0byBkZXNlcmlhbGl6ZSBBUElHVyBIZWFkZXIgZnJvbSB0aGUgY2xpZW50LXNpZGVcIiksbnVsbCl9dC5BUElHV19HRU9fSEVBREVSX0tFWT1cIngtc25hcC1nZW9cIix0LkFQUEVOR0lORV9DT1VOVFJZX0hFQURFUj1cIngtYXBwZW5naW5lLWNvdW50cnlcIix0LklOVkFMSURfQ09VTlRSWV9DT0RFPVwiWlpcIix0LklOVkFMSURfQ09OVElORU5UX0NPREU9dC5JTlZBTElEX0NPVU5UUllfQ09ERSx0LkNPTlRJTkVOVFM9W1wiXCIsXCJBRlwiLFwiQU5cIixcIk9DXCIsXCJBU1wiLFwiRVVcIixcIk5BXCIsXCJTQVwiXTtjb25zdCBsPW5ldyBTZXQoW1wiQVRcIixcIkJFXCIsXCJCR1wiLFwiSFJcIixcIkNZXCIsXCJDWlwiLFwiQ1NcIixcIkRLXCIsXCJFRVwiLFwiRVdcIixcIkFYXCIsXCJGSVwiLFwiU0ZcIixcIkZSXCIsXCJDUFwiLFwiRlhcIixcIkRFXCIsXCJERFwiLFwiR1JcIixcIkhVXCIsXCJJRVwiLFwiSVRcIixcIkxWXCIsXCJMVFwiLFwiTFVcIixcIk1UXCIsXCJOTFwiLFwiQU5cIixcIlBMXCIsXCJQVFwiLFwiUk9cIixcIlNLXCIsXCJDU1wiLFwiU0lcIixcIkVTXCIsXCJFQVwiLFwiSUNcIixcIlNFXCIsXCJHQlwiLFwiQUNcIixcIkNRXCIsXCJER1wiLFwiVEFcIixcIlVLXCIsdC5JTlZBTElEX0NPTlRJTkVOVF9DT0RFXSk7YXN5bmMgZnVuY3Rpb24gZChlLHQpe3JldHVybiBlP3UoZSx0KS50aGVuKChlPT57aWYoIWUpcmV0dXJuIG51bGw7cmV0dXJuIGUuZ2V0TG9jYXRpb24oKT8uZ2V0Q291bnRyeSgpPz9udWxsfSkpOm51bGx9dC5leHRyYWN0SXNHRFBSRnJvbUFQSUdXSGVhZGVyPWFzeW5jIGZ1bmN0aW9uKGUsbil7cmV0dXJuIGU/dShlLG4pLnRoZW4oKGU9PntpZighZSlyZXR1cm4hMDtjb25zdCBuPWUuZ2V0TG9jYXRpb24oKTtpZighbnx8IW4uZ2V0Q291bnRyeSgpfHwhbi5nZXRDb250aW5lbnQoKSlyZXR1cm4hMDtjb25zdCByPXQuQ09OVElORU5UU1tuLmdldENvbnRpbmVudCgpXTtyZXR1cm5cIkVVXCI9PT1yfHwhcn0pKToobihcIkdlb0hlYWRlciBub3QgZm91bmRcIiksITApfSx0LmV4dHJhY3RDb3VudHJ5RnJvbUFQSUdXSGVhZGVyPWQsdC5leHRyYWN0SXNHRFBSRnJvbUdDUEhlYWRlcj1mdW5jdGlvbihlLHQpe3JldHVybiBlP2wuaGFzKGUudG9VcHBlckNhc2UoKSk6KHQoXCJHZW9IZWFkZXIgbm90IGZvdW5kXCIpLCEwKX0sdC5leHRyYWN0Q291bnRyeUZyb21IZWFkZXJzPWFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0IG49ZT8uW3QuQVBJR1dfR0VPX0hFQURFUl9LRVldLHI9YXdhaXQgZChuLGMubG9nLmVycm9yKTtpZihyKXJldHVybiByLnRvVXBwZXJDYXNlKCk7Y29uc3QgaT1lPy5bXCJjbG91ZGZyb250LXZpZXdlci1jb3VudHJ5XCJdO3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgaT9pLnRvVXBwZXJDYXNlKCk6XCJcIn19LDc3MzUxOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC50cmFuc2Zvcm09dm9pZCAwO2NvbnN0IG49e2FjY2VwdDpcImFwcGxpY2F0aW9uL2pzb25cIn07dC50cmFuc2Zvcm09ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlP2Z1bmN0aW9uKGUsdCxyKXtjb25zdCBpPU9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhlKS5maWx0ZXIoKChbZSxuXSk9PnQuaW5jbHVkZXMoZSkmJlwic3RyaW5nXCI9PT10eXBlb2YgbikpKSxvPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1lW1wieC1mb3J3YXJkZWQtaG9zdFwiXXx8ZS5ob3N0O3JldHVybiBuJiZcInN0cmluZ1wiPT09dHlwZW9mIG4/bi5pbmNsdWRlcyhcImxvY2FsaG9zdFwiKT9gaHR0cDovLyR7bn1gOmBodHRwczovLyR7bn1gOnR9KGUsciksYT1lLm9yaWdpbnx8bztyZXR1cm57aGVhZGVyczp7Li4ubiwuLi5pLG9yaWdpbjphfX19KGUsdCxyKTp7aGVhZGVyczp7Li4ubixvcmlnaW46cn19fX0sNjEyNDU6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt0LnBhcnNlPWZ1bmN0aW9uKGUsdCl7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCBzdHIgbXVzdCBiZSBhIHN0cmluZ1wiKTt2YXIgbj17fSxyPSh0fHx7fSkuZGVjb2RlfHxpLG89MDtmb3IoO288ZS5sZW5ndGg7KXt2YXIgcz1lLmluZGV4T2YoXCI9XCIsbyk7aWYoLTE9PT1zKWJyZWFrO3ZhciBjPWUuaW5kZXhPZihcIjtcIixvKTtpZigtMT09PWMpYz1lLmxlbmd0aDtlbHNlIGlmKGM8cyl7bz1lLmxhc3RJbmRleE9mKFwiO1wiLHMtMSkrMTtjb250aW51ZX12YXIgdT1lLnNsaWNlKG8scykudHJpbSgpO2lmKHZvaWQgMD09PW5bdV0pe3ZhciBsPWUuc2xpY2UocysxLGMpLnRyaW0oKTszND09PWwuY2hhckNvZGVBdCgwKSYmKGw9bC5zbGljZSgxLC0xKSksblt1XT1hKGwscil9bz1jKzF9cmV0dXJuIG59LHQuc2VyaWFsaXplPWZ1bmN0aW9uKGUsdCxpKXt2YXIgYT1pfHx7fSxzPWEuZW5jb2RlfHxvO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBzKXRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZW5jb2RlIGlzIGludmFsaWRcIik7aWYoIXIudGVzdChlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgbmFtZSBpcyBpbnZhbGlkXCIpO3ZhciBjPXModCk7aWYoYyYmIXIudGVzdChjKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgdmFsIGlzIGludmFsaWRcIik7dmFyIHU9ZStcIj1cIitjO2lmKG51bGwhPWEubWF4QWdlKXt2YXIgbD1hLm1heEFnZS0wO2lmKGlzTmFOKGwpfHwhaXNGaW5pdGUobCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBtYXhBZ2UgaXMgaW52YWxpZFwiKTt1Kz1cIjsgTWF4LUFnZT1cIitNYXRoLmZsb29yKGwpfWlmKGEuZG9tYWluKXtpZighci50ZXN0KGEuZG9tYWluKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGRvbWFpbiBpcyBpbnZhbGlkXCIpO3UrPVwiOyBEb21haW49XCIrYS5kb21haW59aWYoYS5wYXRoKXtpZighci50ZXN0KGEucGF0aCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBwYXRoIGlzIGludmFsaWRcIik7dSs9XCI7IFBhdGg9XCIrYS5wYXRofWlmKGEuZXhwaXJlcyl7dmFyIGQ9YS5leHBpcmVzO2lmKCFmdW5jdGlvbihlKXtyZXR1cm5cIltvYmplY3QgRGF0ZV1cIj09PW4uY2FsbChlKXx8ZSBpbnN0YW5jZW9mIERhdGV9KGQpfHxpc05hTihkLnZhbHVlT2YoKSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBleHBpcmVzIGlzIGludmFsaWRcIik7dSs9XCI7IEV4cGlyZXM9XCIrZC50b1VUQ1N0cmluZygpfWEuaHR0cE9ubHkmJih1Kz1cIjsgSHR0cE9ubHlcIik7YS5zZWN1cmUmJih1Kz1cIjsgU2VjdXJlXCIpO2lmKGEucHJpb3JpdHkpe3N3aXRjaChcInN0cmluZ1wiPT09dHlwZW9mIGEucHJpb3JpdHk/YS5wcmlvcml0eS50b0xvd2VyQ2FzZSgpOmEucHJpb3JpdHkpe2Nhc2VcImxvd1wiOnUrPVwiOyBQcmlvcml0eT1Mb3dcIjticmVhaztjYXNlXCJtZWRpdW1cIjp1Kz1cIjsgUHJpb3JpdHk9TWVkaXVtXCI7YnJlYWs7Y2FzZVwiaGlnaFwiOnUrPVwiOyBQcmlvcml0eT1IaWdoXCI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHByaW9yaXR5IGlzIGludmFsaWRcIil9fWlmKGEuc2FtZVNpdGUpe3N3aXRjaChcInN0cmluZ1wiPT09dHlwZW9mIGEuc2FtZVNpdGU/YS5zYW1lU2l0ZS50b0xvd2VyQ2FzZSgpOmEuc2FtZVNpdGUpe2Nhc2UhMDp1Kz1cIjsgU2FtZVNpdGU9U3RyaWN0XCI7YnJlYWs7Y2FzZVwibGF4XCI6dSs9XCI7IFNhbWVTaXRlPUxheFwiO2JyZWFrO2Nhc2VcInN0cmljdFwiOnUrPVwiOyBTYW1lU2l0ZT1TdHJpY3RcIjticmVhaztjYXNlXCJub25lXCI6dSs9XCI7IFNhbWVTaXRlPU5vbmVcIjticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gc2FtZVNpdGUgaXMgaW52YWxpZFwiKX19cmV0dXJuIHV9O3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcscj0vXltcXHUwMDA5XFx1MDAyMC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXSskLztmdW5jdGlvbiBpKGUpe3JldHVybi0xIT09ZS5pbmRleE9mKFwiJVwiKT9kZWNvZGVVUklDb21wb25lbnQoZSk6ZX1mdW5jdGlvbiBvKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSl9ZnVuY3Rpb24gYShlLHQpe3RyeXtyZXR1cm4gdChlKX1jYXRjaChuKXtyZXR1cm4gZX19fSwzNTc4OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbigpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXX1yZXR1cm4gZX1mdW5jdGlvbiB0KG4scil7ZnVuY3Rpb24gaSh0LGksbyl7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudCl7XCJudW1iZXJcIj09PXR5cGVvZihvPWUoe30scixvKSkuZXhwaXJlcyYmKG8uZXhwaXJlcz1uZXcgRGF0ZShEYXRlLm5vdygpKzg2NGU1Km8uZXhwaXJlcykpLG8uZXhwaXJlcyYmKG8uZXhwaXJlcz1vLmV4cGlyZXMudG9VVENTdHJpbmcoKSksdD1lbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZSgvJSgyWzM0NkJdfDVFfDYwfDdDKS9nLGRlY29kZVVSSUNvbXBvbmVudCkucmVwbGFjZSgvWygpXS9nLGVzY2FwZSk7dmFyIGE9XCJcIjtmb3IodmFyIHMgaW4gbylvW3NdJiYoYSs9XCI7IFwiK3MsITAhPT1vW3NdJiYoYSs9XCI9XCIrb1tzXS5zcGxpdChcIjtcIilbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPXQrXCI9XCIrbi53cml0ZShpLHQpK2F9fWZ1bmN0aW9uIG8oZSl7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudCYmKCFhcmd1bWVudHMubGVuZ3RofHxlKSl7Zm9yKHZhciB0PWRvY3VtZW50LmNvb2tpZT9kb2N1bWVudC5jb29raWUuc3BsaXQoXCI7IFwiKTpbXSxyPXt9LGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG89dFtpXS5zcGxpdChcIj1cIiksYT1vLnNsaWNlKDEpLmpvaW4oXCI9XCIpO3RyeXt2YXIgcz1kZWNvZGVVUklDb21wb25lbnQob1swXSk7aWYocltzXT1uLnJlYWQoYSxzKSxlPT09cylicmVha31jYXRjaChjKXt9fXJldHVybiBlP3JbZV06cn19cmV0dXJuIE9iamVjdC5jcmVhdGUoe3NldDppLGdldDpvLHJlbW92ZTpmdW5jdGlvbih0LG4pe2kodCxcIlwiLGUoe30sbix7ZXhwaXJlczotMX0pKX0sd2l0aEF0dHJpYnV0ZXM6ZnVuY3Rpb24obil7cmV0dXJuIHQodGhpcy5jb252ZXJ0ZXIsZSh7fSx0aGlzLmF0dHJpYnV0ZXMsbikpfSx3aXRoQ29udmVydGVyOmZ1bmN0aW9uKG4pe3JldHVybiB0KGUoe30sdGhpcy5jb252ZXJ0ZXIsbiksdGhpcy5hdHRyaWJ1dGVzKX19LHthdHRyaWJ1dGVzOnt2YWx1ZTpPYmplY3QuZnJlZXplKHIpfSxjb252ZXJ0ZXI6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSl9cmV0dXJuIHQoe3JlYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuJ1wiJz09PWVbMF0mJihlPWUuc2xpY2UoMSwtMSkpLGUucmVwbGFjZSgvKCVbXFxkQS1GXXsyfSkrL2dpLGRlY29kZVVSSUNvbXBvbmVudCl9LHdyaXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJSgyWzM0NkJGXXwzW0FDLUZdfDQwfDVbQkRFXXw2MHw3W0JDRF0pL2csZGVjb2RlVVJJQ29tcG9uZW50KX19LHtwYXRoOlwiL1wifSl9KCl9LDI3MDAyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pO2kmJiEoXCJnZXRcImluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSl8fChpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9OmZ1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pLGVbcl09dFtuXX0pLGk9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIGUpXCJkZWZhdWx0XCI9PT1ufHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKXx8cih0LGUsbil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGkobig4MzA1OCksdCksaShuKDYyODAzKSx0KX0sODMwNTg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7aSYmIShcImdldFwiaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKXx8KGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX06ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9biksZVtyXT10W25dfSksaT10aGlzJiZ0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxvPXRoaXMmJnRoaXMuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIiE9PW4mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiZyKHQsZSxuKTtyZXR1cm4gaSh0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQubGV2ZWxzPXQubG9nPXQud2l0aFJlcXVlc3Q9dm9pZCAwO2NvbnN0IGE9byhuKDIwNDMpKTt2YXIgcztmdW5jdGlvbiBjKGUsdCxuLHIsLi4uaSl7Y29uc3Qgbz17bWVzc2FnZTppLm1hcCgoZT0+XCJvYmplY3RcIj09PXR5cGVvZiBlP0pTT04uc3RyaW5naWZ5KGUpOlN0cmluZyhlKSkpLmpvaW4oXCIgXCIpLHNldmVyaXR5OmUsaHR0cFJlcXVlc3Q6e3JlcXVlc3RNZXRob2Q6bixyZXF1ZXN0VXJsOnJ9LFwibG9nZ2luZy5nb29nbGVhcGlzLmNvbS90cmFjZVwiOnR9O3JldHVybiBKU09OLnN0cmluZ2lmeShvKX10LmxvZz1hLmRlZmF1bHQsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJsZXZlbHNcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5sZXZlbHN9fSksYS5kZWZhdWx0LnNldExldmVsKGEuZGVmYXVsdC5sZXZlbHMuSU5GTyksZnVuY3Rpb24oZSl7ZVtlLkRFRkFVTFQ9MF09XCJERUZBVUxUXCIsZVtlLkRFQlVHPTEwMF09XCJERUJVR1wiLGVbZS5JTkZPPTIwMF09XCJJTkZPXCIsZVtlLk5PVElDRT0zMDBdPVwiTk9USUNFXCIsZVtlLldBUk5JTkc9NDAwXT1cIldBUk5JTkdcIixlW2UuRVJST1I9NTAwXT1cIkVSUk9SXCIsZVtlLkNSSVRJQ0FMPTYwMF09XCJDUklUSUNBTFwiLGVbZS5BTEVSVD03MDBdPVwiQUxFUlRcIixlW2UuRU1FUkdFTkNZPTgwMF09XCJFTUVSR0VOQ1lcIn0oc3x8KHM9e30pKSx0LndpdGhSZXF1ZXN0PWZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWEuZGVmYXVsdDtyZXR1cm57bGV2ZWxzOnIubGV2ZWxzLG1ldGhvZEZhY3Rvcnk6ci5tZXRob2RGYWN0b3J5LHRyYWNlKC4uLmkpe3IudHJhY2UoYyhzLkRFQlVHLGUsdCxuLC4uLmkpKX0sZGVidWcoLi4uaSl7ci5kZWJ1ZyhjKHMuREVCVUcsZSx0LG4sLi4uaSkpfSxsb2coLi4uaSl7ci5sb2coYyhzLkRFRkFVTFQsZSx0LG4sLi4uaSkpfSxpbmZvKC4uLmkpe3IuaW5mbyhjKHMuSU5GTyxlLHQsbiwuLi5pKSl9LHdhcm4oLi4uaSl7ci53YXJuKGMocy5XQVJOSU5HLGUsdCxuLC4uLmkpKX0sZXJyb3IoLi4uaSl7ci5lcnJvcihjKHMuRVJST1IsZSx0LG4sLi4uaSkpfSxzZXRMZXZlbChlLHQpe3Iuc2V0TGV2ZWwoZSx0KX0sZ2V0TGV2ZWw6KCk9PnIuZ2V0TGV2ZWwoKSxzZXREZWZhdWx0TGV2ZWwoZSl7ci5zZXREZWZhdWx0TGV2ZWwoZSl9LGVuYWJsZUFsbChlKXtyLmVuYWJsZUFsbChlKX0sZGlzYWJsZUFsbChlKXtyLmRpc2FibGVBbGwoZSl9LHJlc2V0TGV2ZWwoKXtyLnJlc2V0TGV2ZWwoKX19fX0sNjI4MDM6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt2YXIgbjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmxvZ1dhcm5pbmc9dC5FcnJvcldpdGhTdGF0dXM9dC5TdGF0dXM9dm9pZCAwLGZ1bmN0aW9uKGUpe2VbZS5Paz0wXT1cIk9rXCIsZVtlLkJhZFJlcXVlc3Q9MV09XCJCYWRSZXF1ZXN0XCIsZVtlLk5vdEZvdW5kPTJdPVwiTm90Rm91bmRcIixlW2UuVW5hdmFpbGFibGU9M109XCJVbmF2YWlsYWJsZVwiLGVbZS5VbmF1dGhvcml6ZWQ9NF09XCJVbmF1dGhvcml6ZWRcIixlW2UuR29uZT01XT1cIkdvbmVcIixlW2UuVXJpVG9vTG9uZz02XT1cIlVyaVRvb0xvbmdcIn0obj10LlN0YXR1c3x8KHQuU3RhdHVzPXt9KSk7Y2xhc3MgciBleHRlbmRzIEVycm9ye3N0YXR1cztwcm9wcztjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIoZSksdGhpcy5uYW1lPVwiRXJyb3JXaXRoU3RhdHVzXCIsRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsciksdGhpcy5zdGF0dXM9dCx0aGlzLnByb3BzPW59fXQuRXJyb3JXaXRoU3RhdHVzPXIsdC5sb2dXYXJuaW5nPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlIG4uQmFkUmVxdWVzdDp0Lndhcm4oXCJfYXBwLnRzeCBCYWRSZXF1ZXN0OlwiLGUuc3RhY2t8fGUpO2JyZWFrO2Nhc2Ugbi5Ob3RGb3VuZDp0Lndhcm4oXCJfYXBwLnRzeCBOb3RGb3VuZDpcIixlLnN0YWNrfHxlKTticmVhaztjYXNlIG4uVW5hdmFpbGFibGU6dC53YXJuKFwiX2FwcC50c3ggVW5hdmFpbGFibGU6XCIsZS5zdGFja3x8ZSk7YnJlYWs7Y2FzZSBuLlVuYXV0aG9yaXplZDp0Lndhcm4oXCJfYXBwLnRzeCBVbmF1dGhvcml6ZWQ6XCIsZS5zdGFja3x8ZSk7YnJlYWs7Y2FzZSBuLkdvbmU6dC53YXJuKFwiX2FwcC50c3ggR29uZTpcIixlLnN0YWNrfHxlKTticmVhaztjYXNlIG4uVXJpVG9vTG9uZzp0Lndhcm4oXCJfYXBwLnRzeCBVcmlUb29Mb25nOlwiLGUuc3RhY2t8fGUpO2Nhc2Ugbi5Pazp9fX0sNDY1MTM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3QuQyQ9dC5qbD12b2lkIDA7Y29uc3Qgcj1uKDI3MDAyKTt0LmpsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/KDAsci53aXRoUmVxdWVzdCkoZSx0Lm1ldGhvZHx8XCJcIix0LnVybHx8XCJcIik6ci5sb2d9LHQuQyQ9ZnVuY3Rpb24oZSx0LG4scil7Y29uc3R7ZXJyOml9PW4uY3R4O2lmKGUpe2NvbnN0IG89bi5Db21wb25lbnQsYT1lLmhlYWRlcnNbXCJzYy1wYWdlLW5hbWVcIl0scz1cInN0cmluZ1wiPT09dHlwZW9mIGEmJmF8fG8uZGlzcGxheU5hbWV8fG8ubmFtZTtlLmhlYWRlcnNbXCJzYy1wYWdlLW5hbWVcIl09cztjb25zdCBjPXQ/LnN0YXR1c0NvZGV8fDA7Yz49NTAwP2Z1bmN0aW9uKGUsdCxuLHIpe2UuZXJyb3IodC5tZXRob2QsdC51cmwsXCJwYWdlXCIsbixcInN0YXR1c1wiLHIsdC5oZWFkZXJzKX0ocixlLHMsYyk6aXx8Yz49NDAwP2Z1bmN0aW9uKGUsdCxuLHIpe2Uud2Fybih0Lm1ldGhvZCx0LnVybCxcInBhZ2VcIixuLFwic3RhdHVzXCIscix0LmhlYWRlcnMpfShyLGUscyxjKTpmdW5jdGlvbihlLHQsbil7ZS5pbmZvKHQubWV0aG9kLHQudXJsLFwicGFnZVwiLG4sdC5oZWFkZXJzW1widXNlci1hZ2VudFwiXSl9KHIsZSxzKX19fSw3NDQ1NDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5Qb3B1cD10LlBvcHVwUHJvdmlkZXI9dm9pZCAwO2NvbnN0IGk9big4NTg5Myksbz1yKG4oNzM5MzUpKSxhPW4oMjcwMDIpLHM9XCJQb3B1cFByb3ZpZGVyXCI7dC5Qb3B1cFByb3ZpZGVyPWZ1bmN0aW9uKHtjaGlsZHJlbjplfSl7cmV0dXJuKDAsaS5qc3hzKShpLkZyYWdtZW50LHtjaGlsZHJlbjpbZSwoMCxpLmpzeCkoXCJkaXZcIix7aWQ6c30pXX0pfSx0LlBvcHVwPWZ1bmN0aW9uKHtjaGlsZHJlbjplfSl7Y29uc3QgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChzKTtyZXR1cm4gdD9vLmRlZmF1bHQuY3JlYXRlUG9ydGFsKGUsdCk6KGEubG9nLmVycm9yKFwiUG9wdXAgUHJvdmlkZXIgbm90IGZvdW5kXCIpLG51bGwpfX0sMTgxNTI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQudXNlT3V0c2lkZUNsaWNrSGFuZGxlcj12b2lkIDA7Y29uc3Qgcj1uKDY3Mjk0KTt0LnVzZU91dHNpZGVDbGlja0hhbmRsZXI9ZnVuY3Rpb24oZSl7Y29uc3QgdD0oMCxyLnVzZVJlZikobnVsbCk7cmV0dXJuKDAsci51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IG49bj0+e2NvbnN0IHI9bi50YXJnZXQ7dC5jdXJyZW50JiZyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0LmN1cnJlbnQ9PT1yfHx0LmN1cnJlbnQuY29udGFpbnMocil8fGUoKSl9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixuKSwoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLG4pfX0pLFtlXSksdH19LDU5ODkyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pO2kmJiEoXCJnZXRcImluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSl8fChpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9OmZ1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pLGVbcl09dFtuXX0pLGk9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIGUpXCJkZWZhdWx0XCI9PT1ufHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKXx8cih0LGUsbil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQudXNlT3V0c2lkZUNsaWNrSGFuZGxlcj12b2lkIDAsaShuKDc0NDU0KSx0KTt2YXIgbz1uKDE4MTUyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInVzZU91dHNpZGVDbGlja0hhbmRsZXJcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby51c2VPdXRzaWRlQ2xpY2tIYW5kbGVyfX0pfSw3OTE0MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9ZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGYpcmV0dXJuIHNlbGY7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvdztpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIG4uZylyZXR1cm4gbi5nO3Rocm93IG5ldyBFcnJvcihcInVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdFwiKX0oKTtlLmV4cG9ydHM9dD1yLmZldGNoLHIuZmV0Y2gmJih0LmRlZmF1bHQ9ci5mZXRjaC5iaW5kKHIpKSx0LkhlYWRlcnM9ci5IZWFkZXJzLHQuUmVxdWVzdD1yLlJlcXVlc3QsdC5SZXNwb25zZT1yLlJlc3BvbnNlfSw3NjI5NTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC51c2VFc3NlbnRpYWxTZXNzaW9uPXZvaWQgMDtjb25zdCBpPXIobig0NzIxMSkpLG89big2NzI5NCksYT1uKDc4NDk2KTt0LnVzZUVzc2VudGlhbFNlc3Npb249KCk9PnsoMCxvLnVzZUVmZmVjdCkoKCgpPT57Y29uc3QgZT0oMCxhLmdldE5ld0Vzc2VudGlhbFNlc3Npb25Db29raWUpKGRvY3VtZW50LmNvb2tpZSxkb2N1bWVudC5sb2NhdGlvbi5ob3N0KTtpZighZSlyZXR1cm47Y29uc3R7a2V5OnQsdmFsdWU6bixvcHRpb25zOnJ9PWU7aS5kZWZhdWx0LnNldCh0LG4scil9KSxbXSl9fSw0ODMxNDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC51c2VHZXRXZWJDbGllbnRJZD10LnVzZUNyZWF0ZU9yVXBkYXRlV2ViQ2xpZW50SWQ9dC51c2VXZWJDbGllbnRJZD12b2lkIDA7Y29uc3QgaT1yKG4oNDcyMTEpKSxvPW4oNjcyOTQpLGE9big3ODQ5Nik7dC51c2VXZWJDbGllbnRJZD1lPT57Y29uc3RbdCxuXT0oMCxvLnVzZVN0YXRlKSgpLHtpc0dkcHI6cj0hMH09ZT8/e307cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KDAsYS5nZXRVcGRhdGVkV2ViQ2xpZW50SWRDb29raWUpKGRvY3VtZW50LmNvb2tpZSxkb2N1bWVudC5sb2NhdGlvbi5ob3N0LHIpO2lmKCFlKXJldHVybjtjb25zdHtrZXk6dCx2YWx1ZTpvLG9wdGlvbnM6c309ZTtpLmRlZmF1bHQuc2V0KHQsbyxzKSxuKG8pfSksW10pLHR9O3QudXNlQ3JlYXRlT3JVcGRhdGVXZWJDbGllbnRJZD1lPT57Y29uc3RbdCxuXT0oMCxvLnVzZVN0YXRlKSgpLHtpc0dkcHI6cj0hMH09ZT8/e307cmV0dXJuKDAsby51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IGU9KDAsYS5nZXRVcGRhdGVkV2ViQ2xpZW50SWRDb29raWUpKGRvY3VtZW50LmNvb2tpZSxkb2N1bWVudC5sb2NhdGlvbi5ob3N0LHIpO2lmKCFlKXJldHVybjtjb25zdHtrZXk6dCx2YWx1ZTpvLG9wdGlvbnM6c309ZTtpLmRlZmF1bHQuc2V0KHQsbyxzKSxuKG8pfSksW10pLHR9O3QudXNlR2V0V2ViQ2xpZW50SWQ9KCk9PntpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIHdpbmRvdylyZXR1cm4oMCxhLmdldFdlYkNsaWVudElkKShkb2N1bWVudC5jb29raWUpfX0sNjczNjE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuYWRkV2ViQ2xpZW50SWRUb1VSTD10LnVzZVNDV2ViU2Vzc2lvbj10LnRyeUdldEFjdGl2ZVNlc3Npb249dC50cnlDcmVhdGVPclVwZGF0ZVNlc3Npb249dC5TQ19XRUJfQ0xJRU5UX0lEX05BTUU9dC50cnlHZXRDb29raWU9dC51c2VyT3B0ZWRPdXRPZkVzc2VudGlhbENvb2tpZXM9dC5oYXNOb25jZUNvb2tpZVNldD10Lmhhc0FjY2VwdGVkU0NDb29raWVzPXQuZ2V0VXBkYXRlZFdlYkNsaWVudElkU2V0Q29va2llU3RyaW5nPXQuZ2V0VXBkYXRlZFdlYkNsaWVudElkQ29va2llPXQuZ2V0TmV3RXNzZW50aWFsU2Vzc2lvbkNvb2tpZVN0cmluZz10LmdldE5ld0Vzc2VudGlhbFNlc3Npb25Db29raWU9dC51c2VHZXRXZWJDbGllbnRJZD10LnVzZUNyZWF0ZU9yVXBkYXRlV2ViQ2xpZW50SWQ9dC51c2VXZWJDbGllbnRJZD10LnVzZUVzc2VudGlhbFNlc3Npb249dm9pZCAwO3ZhciByPW4oNzYyOTUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwidXNlRXNzZW50aWFsU2Vzc2lvblwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnVzZUVzc2VudGlhbFNlc3Npb259fSk7dmFyIGk9big0ODMxNCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ1c2VXZWJDbGllbnRJZFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLnVzZVdlYkNsaWVudElkfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwidXNlQ3JlYXRlT3JVcGRhdGVXZWJDbGllbnRJZFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLnVzZUNyZWF0ZU9yVXBkYXRlV2ViQ2xpZW50SWR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ1c2VHZXRXZWJDbGllbnRJZFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLnVzZUdldFdlYkNsaWVudElkfX0pO3ZhciBvPW4oNzg0OTYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiZ2V0TmV3RXNzZW50aWFsU2Vzc2lvbkNvb2tpZVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmdldE5ld0Vzc2VudGlhbFNlc3Npb25Db29raWV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJnZXROZXdFc3NlbnRpYWxTZXNzaW9uQ29va2llU3RyaW5nXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uZ2V0TmV3RXNzZW50aWFsU2Vzc2lvbkNvb2tpZVN0cmluZ319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImdldFVwZGF0ZWRXZWJDbGllbnRJZENvb2tpZVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmdldFVwZGF0ZWRXZWJDbGllbnRJZENvb2tpZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImdldFVwZGF0ZWRXZWJDbGllbnRJZFNldENvb2tpZVN0cmluZ1wiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmdldFVwZGF0ZWRXZWJDbGllbnRJZFNldENvb2tpZVN0cmluZ319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImhhc0FjY2VwdGVkU0NDb29raWVzXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uaGFzQWNjZXB0ZWRTQ0Nvb2tpZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJoYXNOb25jZUNvb2tpZVNldFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmhhc05vbmNlQ29va2llU2V0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwidXNlck9wdGVkT3V0T2ZFc3NlbnRpYWxDb29raWVzXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8udXNlck9wdGVkT3V0T2ZFc3NlbnRpYWxDb29raWVzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwidHJ5R2V0Q29va2llXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8udHJ5R2V0Q29va2llfX0pO3ZhciBhPW4oNzg0OTYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiU0NfV0VCX0NMSUVOVF9JRF9OQU1FXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuU0NfV0VCX0NMSUVOVF9JRF9OQU1FfX0pO3ZhciBzPW4oMTQyMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ0cnlDcmVhdGVPclVwZGF0ZVNlc3Npb25cIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy50cnlDcmVhdGVPclVwZGF0ZVNlc3Npb259fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ0cnlHZXRBY3RpdmVTZXNzaW9uXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMudHJ5R2V0QWN0aXZlU2Vzc2lvbn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInVzZVNDV2ViU2Vzc2lvblwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLnVzZVNDV2ViU2Vzc2lvbn19KTt2YXIgYz1uKDM4MzA4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImFkZFdlYkNsaWVudElkVG9VUkxcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5hZGRXZWJDbGllbnRJZFRvVVJMfX0pfSw3ODQ5NjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC51c2VyT3B0ZWRPdXRPZkVzc2VudGlhbENvb2tpZXM9dC5nZXRVcGRhdGVkV2ViQ2xpZW50SWRTZXRDb29raWVTdHJpbmc9dC5nZXROZXdFc3NlbnRpYWxTZXNzaW9uQ29va2llU3RyaW5nPXQuZ2V0TmV3RXNzZW50aWFsU2Vzc2lvbkNvb2tpZT10LmdldFVwZGF0ZWRXZWJDbGllbnRJZENvb2tpZT10LmdldFdlYkNsaWVudElkPXQuaGFzT3B0ZWRPdXRGcm9tRXNzZW50aWFsU2Vzc2lvbj10LmdldFNjb3BlZENvb2tpZURvbWFpbj10LnRyeUdldENvb2tpZT10Lmhhc05vbmNlQ29va2llU2V0PXQuaGFzQWNjZXB0ZWRTQ0Nvb2tpZXM9dC5TQ19XRUJfQ0xJRU5UX0lEX05BTUU9dC5FU1NFTlRJQUxfU0VTU0lPTl9DT09LSUVfTkFNRT12b2lkIDA7Y29uc3QgaT1yKG4oNDQ4NTgpKSxvPW4oNTUwNjUpLGE9cihuKDQ3MjExKSkscz1uKDQ2NTc4KSxjPW5ldyBTZXQoW1wiLnNuYXBjaGF0LmNvbVwiLFwiLnNuYXAtZGV2Lm5ldFwiLFwibG9jYWxob3N0XCJdKTt0LkVTU0VOVElBTF9TRVNTSU9OX0NPT0tJRV9OQU1FPVwiRXNzZW50aWFsU2Vzc2lvblwiLHQuU0NfV0VCX0NMSUVOVF9JRF9OQU1FPVwic2Mtd2NpZFwiO3QuaGFzQWNjZXB0ZWRTQ0Nvb2tpZXM9KCk9PlwidHJ1ZVwiPT09YS5kZWZhdWx0LmdldChcInNjLWNvb2tpZXMtYWNjZXB0ZWRcIik7ZnVuY3Rpb24gdShlLHQpe2lmKCFlfHxcInN0cmluZ1wiIT09dHlwZW9mIGUpcmV0dXJuO3JldHVybigwLG8ucGFyc2UpKGUpW3RdfWZ1bmN0aW9uIGwoZSl7Y29uc3QgdD1lLnN1YnN0cmluZyhlLmluZGV4T2YoXCIuXCIpKTtyZXR1cm4gdC5zdWJzdHJpbmcoMCx0LmluY2x1ZGVzKFwiOlwiKT90LmluZGV4T2YoXCI6XCIpOnQubGVuZ3RoKX10Lmhhc05vbmNlQ29va2llU2V0PSgpPT52b2lkIDAhPT1hLmRlZmF1bHQuZ2V0KFwic2MtYS1ub25jZVwiKSx0LnRyeUdldENvb2tpZT11LHQuZ2V0U2NvcGVkQ29va2llRG9tYWluPWw7ZnVuY3Rpb24gZChlLHQsbil7Y29uc3Qgcj17ZXhwaXJlczpuZXcgRGF0ZSh0KSxwYXRoOm4sc2VjdXJlOiEwLGh0dHBPbmx5OiExLGNyZWRlbnRpYWxzOlwic2FtZS1vcmlnaW5cIn07aWYoZSYmXCJzdHJpbmdcIj09PXR5cGVvZiBlKXtjb25zdCB0PWwoZSk7aWYoYy5oYXModCkpcmV0dXJuey4uLnIsZG9tYWluOnR9fXJldHVybiByfXQuaGFzT3B0ZWRPdXRGcm9tRXNzZW50aWFsU2Vzc2lvbj1lPT5cImZhbHNlXCI9PT11KGUsdC5FU1NFTlRJQUxfU0VTU0lPTl9DT09LSUVfTkFNRSk7dC5nZXRXZWJDbGllbnRJZD1lPT57aWYoISgwLHQuaGFzT3B0ZWRPdXRGcm9tRXNzZW50aWFsU2Vzc2lvbikoZSkpcmV0dXJuIHUoZSx0LlNDX1dFQl9DTElFTlRfSURfTkFNRSk7YS5kZWZhdWx0LnJlbW92ZSh0LlNDX1dFQl9DTElFTlRfSURfTkFNRSl9O2Z1bmN0aW9uIHAoZSxuKXtpZigoMCx0Lmhhc09wdGVkT3V0RnJvbUVzc2VudGlhbFNlc3Npb24pKGUpKXJldHVybiB2b2lkKGkuZGVmYXVsdC5pc1JlYWR5KCkmJmkuZGVmYXVsdC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOlwiQ29va2llcy5Fc3NlbnRpYWxTZXNzaW9uLk9wdE91dFwiLHZhbHVlOjF9KSk7aWYoIXUoZSx0LkVTU0VOVElBTF9TRVNTSU9OX0NPT0tJRV9OQU1FKSl7Y29uc3QgZT1uZXcgRGF0ZTtyZXR1cm4gZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrMSkse2tleTp0LkVTU0VOVElBTF9TRVNTSU9OX0NPT0tJRV9OQU1FLHZhbHVlOlwidHJ1ZVwiLG9wdGlvbnM6ZChuLGUsXCIvXCIpfX19dC5nZXRVcGRhdGVkV2ViQ2xpZW50SWRDb29raWU9KGUsbixyPSEwKT0+e2lmKCgwLHQuaGFzT3B0ZWRPdXRGcm9tRXNzZW50aWFsU2Vzc2lvbikoZSkpcmV0dXJuIHZvaWQgYS5kZWZhdWx0LnJlbW92ZSh0LlNDX1dFQl9DTElFTlRfSURfTkFNRSk7Y29uc3QgaT11KGUsdC5TQ19XRUJfQ0xJRU5UX0lEX05BTUUpLG89aXx8KDAscy52NCkoKSxjPWZ1bmN0aW9uKGUsdCl7bGV0IG47cmV0dXJuIHQ/KG49bmV3IERhdGUsbi5zZXREYXRlKG4uZ2V0RGF0ZSgpKzEpKToobj1uZXcgRGF0ZSxuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSsxKSksZChlLG4sXCIvXCIpfShuLHIpO3JldHVybntrZXk6dC5TQ19XRUJfQ0xJRU5UX0lEX05BTUUsdmFsdWU6byxvcHRpb25zOmN9fSx0LmdldE5ld0Vzc2VudGlhbFNlc3Npb25Db29raWU9cCx0LmdldE5ld0Vzc2VudGlhbFNlc3Npb25Db29raWVTdHJpbmc9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXAoZSx0KTtpZihuKXtjb25zdHtrZXk6ZSx2YWx1ZTp0LG9wdGlvbnM6cn09bjtyZXR1cm4oMCxvLnNlcmlhbGl6ZSkoZSx0LHIpfX0sdC5nZXRVcGRhdGVkV2ViQ2xpZW50SWRTZXRDb29raWVTdHJpbmc9ZnVuY3Rpb24oZSxuKXtjb25zdCByPSgwLHQuZ2V0VXBkYXRlZFdlYkNsaWVudElkQ29va2llKShlLG4pO2lmKCFyKXJldHVybjtjb25zdHtrZXk6aSx2YWx1ZTphLG9wdGlvbnM6c309cjtyZXR1cm4oMCxvLnNlcmlhbGl6ZSkoaSxhLHMpfTt0LnVzZXJPcHRlZE91dE9mRXNzZW50aWFsQ29va2llcz0oKT0+e2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgZG9jdW1lbnQpcmV0dXJuO2NvbnN0IGU9ZG9jdW1lbnQuY29va2llO3JldHVybigwLHQuaGFzT3B0ZWRPdXRGcm9tRXNzZW50aWFsU2Vzc2lvbikoZSl9fSwxNDIyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnVzZVNDV2ViU2Vzc2lvbj10LnRyeUNyZWF0ZU9yVXBkYXRlU2Vzc2lvbj10LnRyeUdldEFjdGl2ZVNlc3Npb249dC5TQ19XRUJfU0VTU0lPTl9JRD12b2lkIDA7Y29uc3QgaT1yKG4oMjc0ODQpKSxvPXIobig3MDE3OCkpLGE9cihuKDQ3MjExKSkscz1uKDY3Mjk0KSxjPW4oNDY1NzgpLHU9big3ODQ5Nik7ZnVuY3Rpb24gbCgpe2lmKCgwLHUuaGFzT3B0ZWRPdXRGcm9tRXNzZW50aWFsU2Vzc2lvbikoZG9jdW1lbnQuY29va2llKSl7Y29uc3QgZT0oMCx1LmdldFNjb3BlZENvb2tpZURvbWFpbikoZG9jdW1lbnQubG9jYXRpb24uaG9zdCk7cmV0dXJuIGEuZGVmYXVsdC5nZXQodC5TQ19XRUJfU0VTU0lPTl9JRCkmJmEuZGVmYXVsdC5yZW1vdmUodC5TQ19XRUJfU0VTU0lPTl9JRCx7ZG9tYWluOmV9KSwhMX1yZXR1cm4hMH1pLmRlZmF1bHQuZXh0ZW5kKG8uZGVmYXVsdCksdC5TQ19XRUJfU0VTU0lPTl9JRD1cIl9zYy1zaWRcIjt0LnRyeUdldEFjdGl2ZVNlc3Npb249KCk9PntpZihsKCkpcmV0dXJuIGEuZGVmYXVsdC5nZXQodC5TQ19XRUJfU0VTU0lPTl9JRCl9O2Z1bmN0aW9uIGQoKXtcInZpc2libGVcIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSYmKDAsdC50cnlDcmVhdGVPclVwZGF0ZVNlc3Npb24pKCl9dC50cnlDcmVhdGVPclVwZGF0ZVNlc3Npb249KCk9PntpZighbCgpKXJldHVybjtjb25zdCBlPSgwLHQudHJ5R2V0QWN0aXZlU2Vzc2lvbikoKXx8KDAsYy52NCkoKSxuPWkuZGVmYXVsdC51dGMoKSxyPSgwLGkuZGVmYXVsdCkobikuZW5kT2YoXCJkYXlcIiksbz0oMCxpLmRlZmF1bHQpKG4pLmFkZCgzMCxcIm1pbnV0ZXNcIikscz1yLmRpZmYobik8by5kaWZmKG4pP3IudG9EYXRlKCk6by50b0RhdGUoKSxkPSgwLHUuZ2V0U2NvcGVkQ29va2llRG9tYWluKShkb2N1bWVudC5sb2NhdGlvbi5ob3N0KTtyZXR1cm4gYS5kZWZhdWx0LnNldCh0LlNDX1dFQl9TRVNTSU9OX0lELGUse2V4cGlyZXM6cyxkb21haW46ZCxzZWN1cmU6ITB9KSxlfSx0LnVzZVNDV2ViU2Vzc2lvbj1mdW5jdGlvbigpeygwLHMudXNlRWZmZWN0KSgoKCk9PigoMCx0LnRyeUNyZWF0ZU9yVXBkYXRlU2Vzc2lvbikoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLGQsITEpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZCl9KSksW10pfX0sMzgzMDg6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmFkZFdlYkNsaWVudElkVG9VUkw9dm9pZCAwO3QuYWRkV2ViQ2xpZW50SWRUb1VSTD0oZSx0KT0+e2NvbnN0IG49bmV3IFVSTChlKTtyZXR1cm4gbi5zZWFyY2hQYXJhbXMuc2V0KFwid2ViX2NsaWVudF9pZFwiLHQpLG4udG9TdHJpbmcoKX19LDU1MDY1OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5wYXJzZT1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCIhPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXJndW1lbnQgc3RyIG11c3QgYmUgYSBzdHJpbmdcIik7dmFyIG49e30scj0odHx8e30pLmRlY29kZXx8aSxvPTA7Zm9yKDtvPGUubGVuZ3RoOyl7dmFyIHM9ZS5pbmRleE9mKFwiPVwiLG8pO2lmKC0xPT09cylicmVhazt2YXIgYz1lLmluZGV4T2YoXCI7XCIsbyk7aWYoLTE9PT1jKWM9ZS5sZW5ndGg7ZWxzZSBpZihjPHMpe289ZS5sYXN0SW5kZXhPZihcIjtcIixzLTEpKzE7Y29udGludWV9dmFyIHU9ZS5zbGljZShvLHMpLnRyaW0oKTtpZih2b2lkIDA9PT1uW3VdKXt2YXIgbD1lLnNsaWNlKHMrMSxjKS50cmltKCk7MzQ9PT1sLmNoYXJDb2RlQXQoMCkmJihsPWwuc2xpY2UoMSwtMSkpLG5bdV09YShsLHIpfW89YysxfXJldHVybiBufSx0LnNlcmlhbGl6ZT1mdW5jdGlvbihlLHQsaSl7dmFyIGE9aXx8e30scz1hLmVuY29kZXx8bztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2Ygcyl0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGVuY29kZSBpcyBpbnZhbGlkXCIpO2lmKCFyLnRlc3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZFwiKTt2YXIgYz1zKHQpO2lmKGMmJiFyLnRlc3QoYykpdGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHZhbCBpcyBpbnZhbGlkXCIpO3ZhciB1PWUrXCI9XCIrYztpZihudWxsIT1hLm1heEFnZSl7dmFyIGw9YS5tYXhBZ2UtMDtpZihpc05hTihsKXx8IWlzRmluaXRlKGwpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gbWF4QWdlIGlzIGludmFsaWRcIik7dSs9XCI7IE1heC1BZ2U9XCIrTWF0aC5mbG9vcihsKX1pZihhLmRvbWFpbil7aWYoIXIudGVzdChhLmRvbWFpbikpdGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBkb21haW4gaXMgaW52YWxpZFwiKTt1Kz1cIjsgRG9tYWluPVwiK2EuZG9tYWlufWlmKGEucGF0aCl7aWYoIXIudGVzdChhLnBhdGgpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gcGF0aCBpcyBpbnZhbGlkXCIpO3UrPVwiOyBQYXRoPVwiK2EucGF0aH1pZihhLmV4cGlyZXMpe3ZhciBkPWEuZXhwaXJlcztpZighZnVuY3Rpb24oZSl7cmV0dXJuXCJbb2JqZWN0IERhdGVdXCI9PT1uLmNhbGwoZSl8fGUgaW5zdGFuY2VvZiBEYXRlfShkKXx8aXNOYU4oZC52YWx1ZU9mKCkpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZXhwaXJlcyBpcyBpbnZhbGlkXCIpO3UrPVwiOyBFeHBpcmVzPVwiK2QudG9VVENTdHJpbmcoKX1hLmh0dHBPbmx5JiYodSs9XCI7IEh0dHBPbmx5XCIpO2Euc2VjdXJlJiYodSs9XCI7IFNlY3VyZVwiKTtpZihhLnByaW9yaXR5KXtzd2l0Y2goXCJzdHJpbmdcIj09PXR5cGVvZiBhLnByaW9yaXR5P2EucHJpb3JpdHkudG9Mb3dlckNhc2UoKTphLnByaW9yaXR5KXtjYXNlXCJsb3dcIjp1Kz1cIjsgUHJpb3JpdHk9TG93XCI7YnJlYWs7Y2FzZVwibWVkaXVtXCI6dSs9XCI7IFByaW9yaXR5PU1lZGl1bVwiO2JyZWFrO2Nhc2VcImhpZ2hcIjp1Kz1cIjsgUHJpb3JpdHk9SGlnaFwiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBwcmlvcml0eSBpcyBpbnZhbGlkXCIpfX1pZihhLnNhbWVTaXRlKXtzd2l0Y2goXCJzdHJpbmdcIj09PXR5cGVvZiBhLnNhbWVTaXRlP2Euc2FtZVNpdGUudG9Mb3dlckNhc2UoKTphLnNhbWVTaXRlKXtjYXNlITA6dSs9XCI7IFNhbWVTaXRlPVN0cmljdFwiO2JyZWFrO2Nhc2VcImxheFwiOnUrPVwiOyBTYW1lU2l0ZT1MYXhcIjticmVhaztjYXNlXCJzdHJpY3RcIjp1Kz1cIjsgU2FtZVNpdGU9U3RyaWN0XCI7YnJlYWs7Y2FzZVwibm9uZVwiOnUrPVwiOyBTYW1lU2l0ZT1Ob25lXCI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHNhbWVTaXRlIGlzIGludmFsaWRcIil9fXJldHVybiB1fTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHI9L15bXFx1MDAwOVxcdTAwMjAtXFx1MDA3ZVxcdTAwODAtXFx1MDBmZl0rJC87ZnVuY3Rpb24gaShlKXtyZXR1cm4tMSE9PWUuaW5kZXhPZihcIiVcIik/ZGVjb2RlVVJJQ29tcG9uZW50KGUpOmV9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpfWZ1bmN0aW9uIGEoZSx0KXt0cnl7cmV0dXJuIHQoZSl9Y2F0Y2gobil7cmV0dXJuIGV9fX0sNDcyMTE6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gZShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pZVtyXT1uW3JdfXJldHVybiBlfWZ1bmN0aW9uIHQobixyKXtmdW5jdGlvbiBpKHQsaSxvKXtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50KXtcIm51bWJlclwiPT09dHlwZW9mKG89ZSh7fSxyLG8pKS5leHBpcmVzJiYoby5leHBpcmVzPW5ldyBEYXRlKERhdGUubm93KCkrODY0ZTUqby5leHBpcmVzKSksby5leHBpcmVzJiYoby5leHBpcmVzPW8uZXhwaXJlcy50b1VUQ1N0cmluZygpKSx0PWVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgYT1cIlwiO2Zvcih2YXIgcyBpbiBvKW9bc10mJihhKz1cIjsgXCIrcywhMCE9PW9bc10mJihhKz1cIj1cIitvW3NdLnNwbGl0KFwiO1wiKVswXSkpO3JldHVybiBkb2N1bWVudC5jb29raWU9dCtcIj1cIituLndyaXRlKGksdCkrYX19ZnVuY3Rpb24gbyhlKXtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50JiYoIWFyZ3VtZW50cy5sZW5ndGh8fGUpKXtmb3IodmFyIHQ9ZG9jdW1lbnQuY29va2llP2RvY3VtZW50LmNvb2tpZS5zcGxpdChcIjsgXCIpOltdLHI9e30saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz10W2ldLnNwbGl0KFwiPVwiKSxhPW8uc2xpY2UoMSkuam9pbihcIj1cIik7dHJ5e3ZhciBzPWRlY29kZVVSSUNvbXBvbmVudChvWzBdKTtpZihyW3NdPW4ucmVhZChhLHMpLGU9PT1zKWJyZWFrfWNhdGNoKGMpe319cmV0dXJuIGU/cltlXTpyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0OmksZ2V0Om8scmVtb3ZlOmZ1bmN0aW9uKHQsbil7aSh0LFwiXCIsZSh7fSxuLHtleHBpcmVzOi0xfSkpfSx3aXRoQXR0cmlidXRlczpmdW5jdGlvbihuKXtyZXR1cm4gdCh0aGlzLmNvbnZlcnRlcixlKHt9LHRoaXMuYXR0cmlidXRlcyxuKSl9LHdpdGhDb252ZXJ0ZXI6ZnVuY3Rpb24obil7cmV0dXJuIHQoZSh7fSx0aGlzLmNvbnZlcnRlcixuKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUocil9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KX1yZXR1cm4gdCh7cmVhZDpmdW5jdGlvbihlKXtyZXR1cm4nXCInPT09ZVswXSYmKGU9ZS5zbGljZSgxLC0xKSksZS5yZXBsYWNlKC8oJVtcXGRBLUZdezJ9KSsvZ2ksZGVjb2RlVVJJQ29tcG9uZW50KX0sd3JpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lKDJbMzQ2QkZdfDNbQUMtRl18NDB8NVtCREVdfDYwfDdbQkNEXSkvZyxkZWNvZGVVUklDb21wb25lbnQpfX0se3BhdGg6XCIvXCJ9KX0oKX0sOTg4MjU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7aSYmIShcImdldFwiaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKXx8KGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX06ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9biksZVtyXT10W25dfSksaT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIj09PW58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfHxyKHQsZSxuKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5pbml0U2VudHJ5PXZvaWQgMDt2YXIgbz1uKDc2MSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJpbml0U2VudHJ5XCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uaW5pdFNlbnRyeX19KSxpKG4oMTU5NzQpLHQpfSwxNTk3NDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5sb2dTZW50cnlFcnJvcj10LmxvZ1NlbnRyeVdhcm5pbmc9dm9pZCAwO2NvbnN0IGk9cihuKDM3NzIwKSk7dC5sb2dTZW50cnlXYXJuaW5nPShlLHQpPT57aS5kZWZhdWx0LmNhcHR1cmVNZXNzYWdlKGUsbyhcIndhcm5pbmdcIix0KSl9O2Z1bmN0aW9uIG8oZSx0KXtjb25zdCBuPXtsZXZlbDplfTtyZXR1cm4gdCYmKG4uY29udGV4dHM9e2RhdGE6e2NvbnRleHQ6dH19KSxufXQubG9nU2VudHJ5RXJyb3I9KGUsdCk9PntpLmRlZmF1bHQuY2FwdHVyZUV4Y2VwdGlvbihuZXcgRXJyb3IoZSksbyhcImVycm9yXCIsdCkpfX0sNzYxOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDM0MTU1KSxpPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7aSYmIShcImdldFwiaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKXx8KGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX06ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9biksZVtyXT10W25dfSksbz10aGlzJiZ0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxhPXRoaXMmJnRoaXMuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIiE9PW4mJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiZpKHQsZSxuKTtyZXR1cm4gbyh0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaW5pdFNlbnRyeT12b2lkIDA7Y29uc3Qgcz1uKDMwNjcyKTtjb25zdCBjPVsvd2ViXFwvbWV0cmljcy8sL2dvb2dsZS1hbmFseXRpY3MvLC9eYmxvYi9dO2Z1bmN0aW9uIHUoZSl7cmV0dXJuXCJmZXRjaFwiIT09ZS5jYXRlZ29yeSYmXCJ4aHJcIiE9PWUuY2F0ZWdvcnl8fCFjLnNvbWUoKHQ9PmUuZGF0YT8udXJsPy5tYXRjaD8uKHQpKSk/ZTpudWxsfXQuaW5pdFNlbnRyeT1hc3luYyBmdW5jdGlvbihlLHQpe2lmKCgwLHMuaXNSdW5uaW5nT25TZXJ2ZXIpKCl8fHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4hPT1lKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtjb25zdHtTZW50cnk6aSxDYXB0dXJlQ29uc29sZTpvfT1hd2FpdCBhc3luYyBmdW5jdGlvbigpe2NvbnN0W3tkZWZhdWx0OmV9LHtDYXB0dXJlQ29uc29sZTp0fV09YXdhaXQgUHJvbWlzZS5hbGwoW1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT5hKG4oMzc3MjApKSkpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCgpPT5hKG4oOTk0MzUpKSkpXSk7cmV0dXJue1NlbnRyeTplLENhcHR1cmVDb25zb2xlOnR9fSgpO2kuaW5pdCh7ZHNuOnQsYmVmb3JlQnJlYWRjcnVtYjp1LGFsbG93VXJsczpbZV0scmVsZWFzZTpyLmVudi5ORVhUX1BVQkxJQ19TRU5UUllfVkVSU0lPTixtYXhCcmVhZGNydW1iczo1MCxlbnZpcm9ubWVudDpcInByb2RcIixzYW1wbGVSYXRlOjEsdHJhY2VzU2FtcGxlUmF0ZToxLGRlZmF1bHRJbnRlZ3JhdGlvbnM6W25ldyBpLkludGVncmF0aW9ucy5JbmJvdW5kRmlsdGVycyxuZXcgaS5JbnRlZ3JhdGlvbnMuRnVuY3Rpb25Ub1N0cmluZyxuZXcgaS5JbnRlZ3JhdGlvbnMuVHJ5Q2F0Y2gsbmV3IGkuSW50ZWdyYXRpb25zLkJyZWFkY3J1bWJzLG5ldyBpLkludGVncmF0aW9ucy5MaW5rZWRFcnJvcnMsbmV3IGkuSW50ZWdyYXRpb25zLkh0dHBDb250ZXh0LG5ldyBvKHtsZXZlbHM6W1wiZXJyb3JcIl19KV19KX19LDU3MTE4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCksbi5kKHQse0JyZWFkY3J1bWJzOmZ1bmN0aW9uKCl7cmV0dXJuIHFlfSxCcm93c2VyQ2xpZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGV0fSxCcm93c2VyUHJvZmlsaW5nSW50ZWdyYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gZXV9LEJyb3dzZXJUcmFjaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIE5jfSxEZWR1cGU6ZnVuY3Rpb24oKXtyZXR1cm4geHR9LEZ1bmN0aW9uVG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gc30sR2xvYmFsSGFuZGxlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gVHR9LEh0dHBDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGp0fSxIdWI6ZnVuY3Rpb24oKXtyZXR1cm4gT30sSW5ib3VuZEZpbHRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sSW50ZWdyYXRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIG51fSxMaW5rZWRFcnJvcnM6ZnVuY3Rpb24oKXtyZXR1cm4gTXR9LFJlcGxheTpmdW5jdGlvbigpe3JldHVybiBSYX0sU0RLX1ZFUlNJT046ZnVuY3Rpb24oKXtyZXR1cm4gTH0sU2NvcGU6ZnVuY3Rpb24oKXtyZXR1cm4gU30sVHJ5Q2F0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gUHR9LFdJTkRPVzpmdW5jdGlvbigpe3JldHVybiB2ZX0sYWRkQnJlYWRjcnVtYjpmdW5jdGlvbigpe3JldHVybiB4fSxhZGRHbG9iYWxFdmVudFByb2Nlc3NvcjpmdW5jdGlvbigpe3JldHVybiBUfSxhZGRUcmFjaW5nRXh0ZW5zaW9uczpmdW5jdGlvbigpe3JldHVybiBpZX0sY2FwdHVyZUV2ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIER9LGNhcHR1cmVFeGNlcHRpb246ZnVuY3Rpb24oKXtyZXR1cm4gQn0sY2FwdHVyZU1lc3NhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gTX0sY2FwdHVyZVVzZXJGZWVkYmFjazpmdW5jdGlvbigpe3JldHVybiAkdH0sY2hyb21lU3RhY2tMaW5lUGFyc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIGx0fSxjbG9zZTpmdW5jdGlvbigpe3JldHVybiBKdH0sY29uZmlndXJlU2NvcGU6ZnVuY3Rpb24oKXtyZXR1cm4gan0sY3JlYXRlVHJhbnNwb3J0OmZ1bmN0aW9uKCl7cmV0dXJuIHVlfSxjcmVhdGVVc2VyRmVlZGJhY2tFbnZlbG9wZTpmdW5jdGlvbigpe3JldHVybiAkZX0sZGVmYXVsdEludGVncmF0aW9uczpmdW5jdGlvbigpe3JldHVybiBXdH0sZGVmYXVsdFJlcXVlc3RJbnN0cnVtZW50YXRpb25PcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIE9jfSxkZWZhdWx0U3RhY2tMaW5lUGFyc2VyczpmdW5jdGlvbigpe3JldHVybiBidH0sZGVmYXVsdFN0YWNrUGFyc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIFN0fSxldmVudEZyb21FeGNlcHRpb246ZnVuY3Rpb24oKXtyZXR1cm4gVWV9LGV2ZW50RnJvbU1lc3NhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gRmV9LGV4dHJhY3RUcmFjZXBhcmVudERhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gbWUucX0sZmx1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gWnR9LGZvcmNlTG9hZDpmdW5jdGlvbigpe3JldHVybiBZdH0sZ2Vja29TdGFja0xpbmVQYXJzZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZnR9LGdldEFjdGl2ZVRyYW5zYWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHF9LGdldEN1cnJlbnRIdWI6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sZ2V0SHViRnJvbUNhcnJpZXI6ZnVuY3Rpb24oKXtyZXR1cm4gUn0saW5pdDpmdW5jdGlvbigpe3JldHVybiBWdH0saW5zdHJ1bWVudE91dGdvaW5nUmVxdWVzdHM6ZnVuY3Rpb24oKXtyZXR1cm4gQWN9LGxhc3RFdmVudElkOmZ1bmN0aW9uKCl7cmV0dXJuIEt0fSxtYWtlQnJvd3Nlck9mZmxpbmVUcmFuc3BvcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWN9LG1ha2VGZXRjaFRyYW5zcG9ydDpmdW5jdGlvbigpe3JldHVybiBydH0sbWFrZU1haW46ZnVuY3Rpb24oKXtyZXR1cm4gQ30sbWFrZU11bHRpcGxleGVkVHJhbnNwb3J0OmZ1bmN0aW9uKCl7cmV0dXJuIGhlfSxtYWtlWEhSVHJhbnNwb3J0OmZ1bmN0aW9uKCl7cmV0dXJuIGl0fSxvbkxvYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gcXR9LG9uUHJvZmlsaW5nU3RhcnRSb3V0ZVRyYW5zYWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIFhjfSxvcGVyYTEwU3RhY2tMaW5lUGFyc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHZ0fSxvcGVyYTExU3RhY2tMaW5lUGFyc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIEV0fSxzZXRDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIFV9LHNldEV4dHJhOmZ1bmN0aW9uKCl7cmV0dXJuIEh9LHNldEV4dHJhczpmdW5jdGlvbigpe3JldHVybiBGfSxzZXRUYWc6ZnVuY3Rpb24oKXtyZXR1cm4gV30sc2V0VGFnczpmdW5jdGlvbigpe3JldHVybiBHfSxzZXRVc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIFZ9LHNob3dSZXBvcnREaWFsb2c6ZnVuY3Rpb24oKXtyZXR1cm4genR9LHNwYW5TdGF0dXNmcm9tSHR0cENvZGU6ZnVuY3Rpb24oKXtyZXR1cm4gJH0sc3RhcnRUcmFuc2FjdGlvbjpmdW5jdGlvbigpe3JldHVybiBLfSx0cmFjZTpmdW5jdGlvbigpe3JldHVybiBnZX0sd2luanNTdGFja0xpbmVQYXJzZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZ3R9LHdpdGhTY29wZTpmdW5jdGlvbigpe3JldHVybiB6fSx3cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIFh0fX0pO3ZhciByPXt9O24ucihyKSxuLmQocix7RnVuY3Rpb25Ub1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBzfSxJbmJvdW5kRmlsdGVyczpmdW5jdGlvbigpe3JldHVybiBwfX0pO3ZhciBpPXt9O24ucihpKSxuLmQoaSx7QnJlYWRjcnVtYnM6ZnVuY3Rpb24oKXtyZXR1cm4gcWV9LERlZHVwZTpmdW5jdGlvbigpe3JldHVybiB4dH0sR2xvYmFsSGFuZGxlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gVHR9LEh0dHBDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGp0fSxMaW5rZWRFcnJvcnM6ZnVuY3Rpb24oKXtyZXR1cm4gTXR9LFRyeUNhdGNoOmZ1bmN0aW9uKCl7cmV0dXJuIFB0fX0pO3ZhciBvPW4oNzIxNDgpO2xldCBhO2NsYXNzIHN7Y29uc3RydWN0b3IoKXtzLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKX1zdGF0aWMgX19pbml0U3RhdGljKCl7dGhpcy5pZD1cIkZ1bmN0aW9uVG9TdHJpbmdcIn1fX2luaXQoKXt0aGlzLm5hbWU9cy5pZH1zZXR1cE9uY2UoKXthPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt0cnl7RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKC4uLmUpe2NvbnN0IHQ9KDAsby5ISykodGhpcyl8fHRoaXM7cmV0dXJuIGEuYXBwbHkodCxlKX19Y2F0Y2goZSl7fX19cy5fX2luaXRTdGF0aWMoKTt2YXIgYz1uKDMyOTQ4KSx1PW4oMTcxNCksbD1uKDM0NzA2KTtjb25zdCBkPVsvXlNjcmlwdCBlcnJvclxcLj8kLywvXkphdmFzY3JpcHQgZXJyb3I6IFNjcmlwdCBlcnJvclxcLj8gb24gbGluZSAwJC9dO2NsYXNzIHB7c3RhdGljIF9faW5pdFN0YXRpYygpe3RoaXMuaWQ9XCJJbmJvdW5kRmlsdGVyc1wifV9faW5pdCgpe3RoaXMubmFtZT1wLmlkfWNvbnN0cnVjdG9yKGU9e30pe3RoaXMuX29wdGlvbnM9ZSxwLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKX1zZXR1cE9uY2UoZSx0KXtjb25zdCBuPWU9Pntjb25zdCBuPXQoKTtpZihuKXtjb25zdCB0PW4uZ2V0SW50ZWdyYXRpb24ocCk7aWYodCl7Y29uc3Qgcj1uLmdldENsaWVudCgpLGk9cj9yLmdldE9wdGlvbnMoKTp7fSxvPWZ1bmN0aW9uKGU9e30sdD17fSl7cmV0dXJue2FsbG93VXJsczpbLi4uZS5hbGxvd1VybHN8fFtdLC4uLnQuYWxsb3dVcmxzfHxbXV0sZGVueVVybHM6Wy4uLmUuZGVueVVybHN8fFtdLC4uLnQuZGVueVVybHN8fFtdXSxpZ25vcmVFcnJvcnM6Wy4uLmUuaWdub3JlRXJyb3JzfHxbXSwuLi50Lmlnbm9yZUVycm9yc3x8W10sLi4uZF0saWdub3JlVHJhbnNhY3Rpb25zOlsuLi5lLmlnbm9yZVRyYW5zYWN0aW9uc3x8W10sLi4udC5pZ25vcmVUcmFuc2FjdGlvbnN8fFtdXSxpZ25vcmVJbnRlcm5hbDp2b2lkIDA9PT1lLmlnbm9yZUludGVybmFsfHxlLmlnbm9yZUludGVybmFsfX0odC5fb3B0aW9ucyxpKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZih0Lmlnbm9yZUludGVybmFsJiZmdW5jdGlvbihlKXt0cnl7cmV0dXJuXCJTZW50cnlFcnJvclwiPT09ZS5leGNlcHRpb24udmFsdWVzWzBdLnR5cGV9Y2F0Y2godCl7fXJldHVybiExfShlKSlyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKGBFdmVudCBkcm9wcGVkIGR1ZSB0byBiZWluZyBpbnRlcm5hbCBTZW50cnkgRXJyb3IuXFxuRXZlbnQ6ICR7KDAsdS5qSCkoZSl9YCksITA7aWYoZnVuY3Rpb24oZSx0KXtpZihlLnR5cGV8fCF0fHwhdC5sZW5ndGgpcmV0dXJuITE7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKGUubWVzc2FnZSlyZXR1cm5bZS5tZXNzYWdlXTtpZihlLmV4Y2VwdGlvbil0cnl7Y29uc3R7dHlwZTp0PVwiXCIsdmFsdWU6bj1cIlwifT1lLmV4Y2VwdGlvbi52YWx1ZXMmJmUuZXhjZXB0aW9uLnZhbHVlc1swXXx8e307cmV0dXJuW2Ake259YCxgJHt0fTogJHtufWBdfWNhdGNoKHQpe3JldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmVycm9yKGBDYW5ub3QgZXh0cmFjdCBtZXNzYWdlIGZvciBldmVudCAkeygwLHUuakgpKGUpfWApLFtdfXJldHVybltdfShlKS5zb21lKChlPT4oMCxsLlUwKShlLHQpKSl9KGUsdC5pZ25vcmVFcnJvcnMpKXJldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLndhcm4oYEV2ZW50IGRyb3BwZWQgZHVlIHRvIGJlaW5nIG1hdGNoZWQgYnkgXFxgaWdub3JlRXJyb3JzXFxgIG9wdGlvbi5cXG5FdmVudDogJHsoMCx1LmpIKShlKX1gKSwhMDtpZihmdW5jdGlvbihlLHQpe2lmKFwidHJhbnNhY3Rpb25cIiE9PWUudHlwZXx8IXR8fCF0Lmxlbmd0aClyZXR1cm4hMTtjb25zdCBuPWUudHJhbnNhY3Rpb247cmV0dXJuISFuJiYoMCxsLlUwKShuLHQpfShlLHQuaWdub3JlVHJhbnNhY3Rpb25zKSlyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKGBFdmVudCBkcm9wcGVkIGR1ZSB0byBiZWluZyBtYXRjaGVkIGJ5IFxcYGlnbm9yZVRyYW5zYWN0aW9uc1xcYCBvcHRpb24uXFxuRXZlbnQ6ICR7KDAsdS5qSCkoZSl9YCksITA7aWYoZnVuY3Rpb24oZSx0KXtpZighdHx8IXQubGVuZ3RoKXJldHVybiExO2NvbnN0IG49ZihlKTtyZXR1cm4hIW4mJigwLGwuVTApKG4sdCl9KGUsdC5kZW55VXJscykpcmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihgRXZlbnQgZHJvcHBlZCBkdWUgdG8gYmVpbmcgbWF0Y2hlZCBieSBcXGBkZW55VXJsc1xcYCBvcHRpb24uXFxuRXZlbnQ6ICR7KDAsdS5qSCkoZSl9LlxcblVybDogJHtmKGUpfWApLCEwO2lmKCFmdW5jdGlvbihlLHQpe2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuITA7Y29uc3Qgbj1mKGUpO3JldHVybiFufHwoMCxsLlUwKShuLHQpfShlLHQuYWxsb3dVcmxzKSlyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKGBFdmVudCBkcm9wcGVkIGR1ZSB0byBub3QgYmVpbmcgbWF0Y2hlZCBieSBcXGBhbGxvd1VybHNcXGAgb3B0aW9uLlxcbkV2ZW50OiAkeygwLHUuakgpKGUpfS5cXG5Vcmw6ICR7ZihlKX1gKSwhMDtyZXR1cm4hMX0oZSxvKT9udWxsOmV9fXJldHVybiBlfTtuLmlkPXRoaXMubmFtZSxlKG4pfX1mdW5jdGlvbiBmKGUpe3RyeXtsZXQgbjt0cnl7bj1lLmV4Y2VwdGlvbi52YWx1ZXNbMF0uc3RhY2t0cmFjZS5mcmFtZXN9Y2F0Y2godCl7fXJldHVybiBuP2Z1bmN0aW9uKGU9W10pe2ZvcihsZXQgdD1lLmxlbmd0aC0xO3Q+PTA7dC0tKXtjb25zdCBuPWVbdF07aWYobiYmXCI8YW5vbnltb3VzPlwiIT09bi5maWxlbmFtZSYmXCJbbmF0aXZlIGNvZGVdXCIhPT1uLmZpbGVuYW1lKXJldHVybiBuLmZpbGVuYW1lfHxudWxsfXJldHVybiBudWxsfShuKTpudWxsfWNhdGNoKG4pe3JldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmVycm9yKGBDYW5ub3QgZXh0cmFjdCB1cmwgZm9yIGV2ZW50ICR7KDAsdS5qSCkoZSl9YCksbnVsbH19cC5fX2luaXRTdGF0aWMoKTt2YXIgaD1uKDE4NjM1KSxnPW4oOTEyNDgpO2NvbnN0IG09XCJwcm9kdWN0aW9uXCI7dmFyIHY9bigyMjc5OSksXz1uKDkxNjE5KTtmdW5jdGlvbiBFKGUpe2NvbnN0IHQ9KDAsaC5waCkoKSxuPXtzaWQ6KDAsdS5ETSkoKSxpbml0OiEwLHRpbWVzdGFtcDp0LHN0YXJ0ZWQ6dCxkdXJhdGlvbjowLHN0YXR1czpcIm9rXCIsZXJyb3JzOjAsaWdub3JlRHVyYXRpb246ITEsdG9KU09OOigpPT5mdW5jdGlvbihlKXtyZXR1cm4oMCxvLkpyKSh7c2lkOmAke2Uuc2lkfWAsaW5pdDplLmluaXQsc3RhcnRlZDpuZXcgRGF0ZSgxZTMqZS5zdGFydGVkKS50b0lTT1N0cmluZygpLHRpbWVzdGFtcDpuZXcgRGF0ZSgxZTMqZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksc3RhdHVzOmUuc3RhdHVzLGVycm9yczplLmVycm9ycyxkaWQ6XCJudW1iZXJcIj09PXR5cGVvZiBlLmRpZHx8XCJzdHJpbmdcIj09PXR5cGVvZiBlLmRpZD9gJHtlLmRpZH1gOnZvaWQgMCxkdXJhdGlvbjplLmR1cmF0aW9uLGF0dHJzOntyZWxlYXNlOmUucmVsZWFzZSxlbnZpcm9ubWVudDplLmVudmlyb25tZW50LGlwX2FkZHJlc3M6ZS5pcEFkZHJlc3MsdXNlcl9hZ2VudDplLnVzZXJBZ2VudH19KX0obil9O3JldHVybiBlJiZiKG4sZSksbn1mdW5jdGlvbiBiKGUsdD17fSl7aWYodC51c2VyJiYoIWUuaXBBZGRyZXNzJiZ0LnVzZXIuaXBfYWRkcmVzcyYmKGUuaXBBZGRyZXNzPXQudXNlci5pcF9hZGRyZXNzKSxlLmRpZHx8dC5kaWR8fChlLmRpZD10LnVzZXIuaWR8fHQudXNlci5lbWFpbHx8dC51c2VyLnVzZXJuYW1lKSksZS50aW1lc3RhbXA9dC50aW1lc3RhbXB8fCgwLGgucGgpKCksdC5pZ25vcmVEdXJhdGlvbiYmKGUuaWdub3JlRHVyYXRpb249dC5pZ25vcmVEdXJhdGlvbiksdC5zaWQmJihlLnNpZD0zMj09PXQuc2lkLmxlbmd0aD90LnNpZDooMCx1LkRNKSgpKSx2b2lkIDAhPT10LmluaXQmJihlLmluaXQ9dC5pbml0KSwhZS5kaWQmJnQuZGlkJiYoZS5kaWQ9YCR7dC5kaWR9YCksXCJudW1iZXJcIj09PXR5cGVvZiB0LnN0YXJ0ZWQmJihlLnN0YXJ0ZWQ9dC5zdGFydGVkKSxlLmlnbm9yZUR1cmF0aW9uKWUuZHVyYXRpb249dm9pZCAwO2Vsc2UgaWYoXCJudW1iZXJcIj09PXR5cGVvZiB0LmR1cmF0aW9uKWUuZHVyYXRpb249dC5kdXJhdGlvbjtlbHNle2NvbnN0IHQ9ZS50aW1lc3RhbXAtZS5zdGFydGVkO2UuZHVyYXRpb249dD49MD90OjB9dC5yZWxlYXNlJiYoZS5yZWxlYXNlPXQucmVsZWFzZSksdC5lbnZpcm9ubWVudCYmKGUuZW52aXJvbm1lbnQ9dC5lbnZpcm9ubWVudCksIWUuaXBBZGRyZXNzJiZ0LmlwQWRkcmVzcyYmKGUuaXBBZGRyZXNzPXQuaXBBZGRyZXNzKSwhZS51c2VyQWdlbnQmJnQudXNlckFnZW50JiYoZS51c2VyQWdlbnQ9dC51c2VyQWdlbnQpLFwibnVtYmVyXCI9PT10eXBlb2YgdC5lcnJvcnMmJihlLmVycm9ycz10LmVycm9ycyksdC5zdGF0dXMmJihlLnN0YXR1cz10LnN0YXR1cyl9Y2xhc3MgU3tjb25zdHJ1Y3Rvcigpe3RoaXMuX25vdGlmeWluZ0xpc3RlbmVycz0hMSx0aGlzLl9zY29wZUxpc3RlbmVycz1bXSx0aGlzLl9ldmVudFByb2Nlc3NvcnM9W10sdGhpcy5fYnJlYWRjcnVtYnM9W10sdGhpcy5fYXR0YWNobWVudHM9W10sdGhpcy5fdXNlcj17fSx0aGlzLl90YWdzPXt9LHRoaXMuX2V4dHJhPXt9LHRoaXMuX2NvbnRleHRzPXt9LHRoaXMuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YT17fX1zdGF0aWMgY2xvbmUoZSl7Y29uc3QgdD1uZXcgUztyZXR1cm4gZSYmKHQuX2JyZWFkY3J1bWJzPVsuLi5lLl9icmVhZGNydW1ic10sdC5fdGFncz17Li4uZS5fdGFnc30sdC5fZXh0cmE9ey4uLmUuX2V4dHJhfSx0Ll9jb250ZXh0cz17Li4uZS5fY29udGV4dHN9LHQuX3VzZXI9ZS5fdXNlcix0Ll9sZXZlbD1lLl9sZXZlbCx0Ll9zcGFuPWUuX3NwYW4sdC5fc2Vzc2lvbj1lLl9zZXNzaW9uLHQuX3RyYW5zYWN0aW9uTmFtZT1lLl90cmFuc2FjdGlvbk5hbWUsdC5fZmluZ2VycHJpbnQ9ZS5fZmluZ2VycHJpbnQsdC5fZXZlbnRQcm9jZXNzb3JzPVsuLi5lLl9ldmVudFByb2Nlc3NvcnNdLHQuX3JlcXVlc3RTZXNzaW9uPWUuX3JlcXVlc3RTZXNzaW9uLHQuX2F0dGFjaG1lbnRzPVsuLi5lLl9hdHRhY2htZW50c10sdC5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhPXsuLi5lLl9zZGtQcm9jZXNzaW5nTWV0YWRhdGF9KSx0fWFkZFNjb3BlTGlzdGVuZXIoZSl7dGhpcy5fc2NvcGVMaXN0ZW5lcnMucHVzaChlKX1hZGRFdmVudFByb2Nlc3NvcihlKXtyZXR1cm4gdGhpcy5fZXZlbnRQcm9jZXNzb3JzLnB1c2goZSksdGhpc31zZXRVc2VyKGUpe3JldHVybiB0aGlzLl91c2VyPWV8fHt9LHRoaXMuX3Nlc3Npb24mJmIodGhpcy5fc2Vzc2lvbix7dXNlcjplfSksdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWdldFVzZXIoKXtyZXR1cm4gdGhpcy5fdXNlcn1nZXRSZXF1ZXN0U2Vzc2lvbigpe3JldHVybiB0aGlzLl9yZXF1ZXN0U2Vzc2lvbn1zZXRSZXF1ZXN0U2Vzc2lvbihlKXtyZXR1cm4gdGhpcy5fcmVxdWVzdFNlc3Npb249ZSx0aGlzfXNldFRhZ3MoZSl7cmV0dXJuIHRoaXMuX3RhZ3M9ey4uLnRoaXMuX3RhZ3MsLi4uZX0sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldFRhZyhlLHQpe3JldHVybiB0aGlzLl90YWdzPXsuLi50aGlzLl90YWdzLFtlXTp0fSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0RXh0cmFzKGUpe3JldHVybiB0aGlzLl9leHRyYT17Li4udGhpcy5fZXh0cmEsLi4uZX0sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldEV4dHJhKGUsdCl7cmV0dXJuIHRoaXMuX2V4dHJhPXsuLi50aGlzLl9leHRyYSxbZV06dH0sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldEZpbmdlcnByaW50KGUpe3JldHVybiB0aGlzLl9maW5nZXJwcmludD1lLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31zZXRMZXZlbChlKXtyZXR1cm4gdGhpcy5fbGV2ZWw9ZSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0VHJhbnNhY3Rpb25OYW1lKGUpe3JldHVybiB0aGlzLl90cmFuc2FjdGlvbk5hbWU9ZSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0Q29udGV4dChlLHQpe3JldHVybiBudWxsPT09dD9kZWxldGUgdGhpcy5fY29udGV4dHNbZV06dGhpcy5fY29udGV4dHNbZV09dCx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0U3BhbihlKXtyZXR1cm4gdGhpcy5fc3Bhbj1lLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31nZXRTcGFuKCl7cmV0dXJuIHRoaXMuX3NwYW59Z2V0VHJhbnNhY3Rpb24oKXtjb25zdCBlPXRoaXMuZ2V0U3BhbigpO3JldHVybiBlJiZlLnRyYW5zYWN0aW9ufXNldFNlc3Npb24oZSl7cmV0dXJuIGU/dGhpcy5fc2Vzc2lvbj1lOmRlbGV0ZSB0aGlzLl9zZXNzaW9uLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31nZXRTZXNzaW9uKCl7cmV0dXJuIHRoaXMuX3Nlc3Npb259dXBkYXRlKGUpe2lmKCFlKXJldHVybiB0aGlzO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXtjb25zdCB0PWUodGhpcyk7cmV0dXJuIHQgaW5zdGFuY2VvZiBTP3Q6dGhpc31yZXR1cm4gZSBpbnN0YW5jZW9mIFM/KHRoaXMuX3RhZ3M9ey4uLnRoaXMuX3RhZ3MsLi4uZS5fdGFnc30sdGhpcy5fZXh0cmE9ey4uLnRoaXMuX2V4dHJhLC4uLmUuX2V4dHJhfSx0aGlzLl9jb250ZXh0cz17Li4udGhpcy5fY29udGV4dHMsLi4uZS5fY29udGV4dHN9LGUuX3VzZXImJk9iamVjdC5rZXlzKGUuX3VzZXIpLmxlbmd0aCYmKHRoaXMuX3VzZXI9ZS5fdXNlciksZS5fbGV2ZWwmJih0aGlzLl9sZXZlbD1lLl9sZXZlbCksZS5fZmluZ2VycHJpbnQmJih0aGlzLl9maW5nZXJwcmludD1lLl9maW5nZXJwcmludCksZS5fcmVxdWVzdFNlc3Npb24mJih0aGlzLl9yZXF1ZXN0U2Vzc2lvbj1lLl9yZXF1ZXN0U2Vzc2lvbikpOigwLHYuUE8pKGUpJiYodGhpcy5fdGFncz17Li4udGhpcy5fdGFncywuLi5lLnRhZ3N9LHRoaXMuX2V4dHJhPXsuLi50aGlzLl9leHRyYSwuLi5lLmV4dHJhfSx0aGlzLl9jb250ZXh0cz17Li4udGhpcy5fY29udGV4dHMsLi4uZS5jb250ZXh0c30sZS51c2VyJiYodGhpcy5fdXNlcj1lLnVzZXIpLGUubGV2ZWwmJih0aGlzLl9sZXZlbD1lLmxldmVsKSxlLmZpbmdlcnByaW50JiYodGhpcy5fZmluZ2VycHJpbnQ9ZS5maW5nZXJwcmludCksZS5yZXF1ZXN0U2Vzc2lvbiYmKHRoaXMuX3JlcXVlc3RTZXNzaW9uPWUucmVxdWVzdFNlc3Npb24pKSx0aGlzfWNsZWFyKCl7cmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzPVtdLHRoaXMuX3RhZ3M9e30sdGhpcy5fZXh0cmE9e30sdGhpcy5fdXNlcj17fSx0aGlzLl9jb250ZXh0cz17fSx0aGlzLl9sZXZlbD12b2lkIDAsdGhpcy5fdHJhbnNhY3Rpb25OYW1lPXZvaWQgMCx0aGlzLl9maW5nZXJwcmludD12b2lkIDAsdGhpcy5fcmVxdWVzdFNlc3Npb249dm9pZCAwLHRoaXMuX3NwYW49dm9pZCAwLHRoaXMuX3Nlc3Npb249dm9pZCAwLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpcy5fYXR0YWNobWVudHM9W10sdGhpc31hZGRCcmVhZGNydW1iKGUsdCl7Y29uc3Qgbj1cIm51bWJlclwiPT09dHlwZW9mIHQ/dDoxMDA7aWYobjw9MClyZXR1cm4gdGhpcztjb25zdCByPXt0aW1lc3RhbXA6KDAsaC55VykoKSwuLi5lfTtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnM9Wy4uLnRoaXMuX2JyZWFkY3J1bWJzLHJdLnNsaWNlKC1uKSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9Z2V0TGFzdEJyZWFkY3J1bWIoKXtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnNbdGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoLTFdfWNsZWFyQnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnM9W10sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWFkZEF0dGFjaG1lbnQoZSl7cmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRzLnB1c2goZSksdGhpc31nZXRBdHRhY2htZW50cygpe3JldHVybiB0aGlzLl9hdHRhY2htZW50c31jbGVhckF0dGFjaG1lbnRzKCl7cmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRzPVtdLHRoaXN9YXBwbHlUb0V2ZW50KGUsdD17fSl7aWYodGhpcy5fZXh0cmEmJk9iamVjdC5rZXlzKHRoaXMuX2V4dHJhKS5sZW5ndGgmJihlLmV4dHJhPXsuLi50aGlzLl9leHRyYSwuLi5lLmV4dHJhfSksdGhpcy5fdGFncyYmT2JqZWN0LmtleXModGhpcy5fdGFncykubGVuZ3RoJiYoZS50YWdzPXsuLi50aGlzLl90YWdzLC4uLmUudGFnc30pLHRoaXMuX3VzZXImJk9iamVjdC5rZXlzKHRoaXMuX3VzZXIpLmxlbmd0aCYmKGUudXNlcj17Li4udGhpcy5fdXNlciwuLi5lLnVzZXJ9KSx0aGlzLl9jb250ZXh0cyYmT2JqZWN0LmtleXModGhpcy5fY29udGV4dHMpLmxlbmd0aCYmKGUuY29udGV4dHM9ey4uLnRoaXMuX2NvbnRleHRzLC4uLmUuY29udGV4dHN9KSx0aGlzLl9sZXZlbCYmKGUubGV2ZWw9dGhpcy5fbGV2ZWwpLHRoaXMuX3RyYW5zYWN0aW9uTmFtZSYmKGUudHJhbnNhY3Rpb249dGhpcy5fdHJhbnNhY3Rpb25OYW1lKSx0aGlzLl9zcGFuKXtlLmNvbnRleHRzPXt0cmFjZTp0aGlzLl9zcGFuLmdldFRyYWNlQ29udGV4dCgpLC4uLmUuY29udGV4dHN9O2NvbnN0IHQ9dGhpcy5fc3Bhbi50cmFuc2FjdGlvbjtpZih0KXtlLnNka1Byb2Nlc3NpbmdNZXRhZGF0YT17ZHluYW1pY1NhbXBsaW5nQ29udGV4dDp0LmdldER5bmFtaWNTYW1wbGluZ0NvbnRleHQoKSwuLi5lLnNka1Byb2Nlc3NpbmdNZXRhZGF0YX07Y29uc3Qgbj10Lm5hbWU7biYmKGUudGFncz17dHJhbnNhY3Rpb246biwuLi5lLnRhZ3N9KX19cmV0dXJuIHRoaXMuX2FwcGx5RmluZ2VycHJpbnQoZSksZS5icmVhZGNydW1icz1bLi4uZS5icmVhZGNydW1ic3x8W10sLi4udGhpcy5fYnJlYWRjcnVtYnNdLGUuYnJlYWRjcnVtYnM9ZS5icmVhZGNydW1icy5sZW5ndGg+MD9lLmJyZWFkY3J1bWJzOnZvaWQgMCxlLnNka1Byb2Nlc3NpbmdNZXRhZGF0YT17Li4uZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGEsLi4udGhpcy5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhfSx0aGlzLl9ub3RpZnlFdmVudFByb2Nlc3NvcnMoWy4uLnkoKSwuLi50aGlzLl9ldmVudFByb2Nlc3NvcnNdLGUsdCl9c2V0U0RLUHJvY2Vzc2luZ01ldGFkYXRhKGUpe3JldHVybiB0aGlzLl9zZGtQcm9jZXNzaW5nTWV0YWRhdGE9ey4uLnRoaXMuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YSwuLi5lfSx0aGlzfV9ub3RpZnlFdmVudFByb2Nlc3NvcnMoZSx0LG4scj0wKXtyZXR1cm4gbmV3IF8uY1coKChpLG8pPT57Y29uc3QgYT1lW3JdO2lmKG51bGw9PT10fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSlpKHQpO2Vsc2V7Y29uc3Qgcz1hKHsuLi50fSxuKTsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYS5pZCYmbnVsbD09PXMmJmMua2cubG9nKGBFdmVudCBwcm9jZXNzb3IgXCIke2EuaWR9XCIgZHJvcHBlZCBldmVudGApLCgwLHYuSjgpKHMpP3MudGhlbigodD0+dGhpcy5fbm90aWZ5RXZlbnRQcm9jZXNzb3JzKGUsdCxuLHIrMSkudGhlbihpKSkpLnRoZW4obnVsbCxvKTp0aGlzLl9ub3RpZnlFdmVudFByb2Nlc3NvcnMoZSxzLG4scisxKS50aGVuKGkpLnRoZW4obnVsbCxvKX19KSl9X25vdGlmeVNjb3BlTGlzdGVuZXJzKCl7dGhpcy5fbm90aWZ5aW5nTGlzdGVuZXJzfHwodGhpcy5fbm90aWZ5aW5nTGlzdGVuZXJzPSEwLHRoaXMuX3Njb3BlTGlzdGVuZXJzLmZvckVhY2goKGU9PntlKHRoaXMpfSkpLHRoaXMuX25vdGlmeWluZ0xpc3RlbmVycz0hMSl9X2FwcGx5RmluZ2VycHJpbnQoZSl7ZS5maW5nZXJwcmludD1lLmZpbmdlcnByaW50PygwLHUubEUpKGUuZmluZ2VycHJpbnQpOltdLHRoaXMuX2ZpbmdlcnByaW50JiYoZS5maW5nZXJwcmludD1lLmZpbmdlcnByaW50LmNvbmNhdCh0aGlzLl9maW5nZXJwcmludCkpLGUuZmluZ2VycHJpbnQmJiFlLmZpbmdlcnByaW50Lmxlbmd0aCYmZGVsZXRlIGUuZmluZ2VycHJpbnR9fWZ1bmN0aW9uIHkoKXtyZXR1cm4oMCxnLllPKShcImdsb2JhbEV2ZW50UHJvY2Vzc29yc1wiLCgoKT0+W10pKX1mdW5jdGlvbiBUKGUpe3koKS5wdXNoKGUpfWNvbnN0IEk9MTAwO2NsYXNzIE97Y29uc3RydWN0b3IoZSx0PW5ldyBTLG49NCl7dGhpcy5fdmVyc2lvbj1uLHRoaXMuX3N0YWNrPVt7c2NvcGU6dH1dLGUmJnRoaXMuYmluZENsaWVudChlKX1pc09sZGVyVGhhbihlKXtyZXR1cm4gdGhpcy5fdmVyc2lvbjxlfWJpbmRDbGllbnQoZSl7dGhpcy5nZXRTdGFja1RvcCgpLmNsaWVudD1lLGUmJmUuc2V0dXBJbnRlZ3JhdGlvbnMmJmUuc2V0dXBJbnRlZ3JhdGlvbnMoKX1wdXNoU2NvcGUoKXtjb25zdCBlPVMuY2xvbmUodGhpcy5nZXRTY29wZSgpKTtyZXR1cm4gdGhpcy5nZXRTdGFjaygpLnB1c2goe2NsaWVudDp0aGlzLmdldENsaWVudCgpLHNjb3BlOmV9KSxlfXBvcFNjb3BlKCl7cmV0dXJuISh0aGlzLmdldFN0YWNrKCkubGVuZ3RoPD0xKSYmISF0aGlzLmdldFN0YWNrKCkucG9wKCl9d2l0aFNjb3BlKGUpe2NvbnN0IHQ9dGhpcy5wdXNoU2NvcGUoKTt0cnl7ZSh0KX1maW5hbGx5e3RoaXMucG9wU2NvcGUoKX19Z2V0Q2xpZW50KCl7cmV0dXJuIHRoaXMuZ2V0U3RhY2tUb3AoKS5jbGllbnR9Z2V0U2NvcGUoKXtyZXR1cm4gdGhpcy5nZXRTdGFja1RvcCgpLnNjb3BlfWdldFN0YWNrKCl7cmV0dXJuIHRoaXMuX3N0YWNrfWdldFN0YWNrVG9wKCl7cmV0dXJuIHRoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXX1jYXB0dXJlRXhjZXB0aW9uKGUsdCl7Y29uc3Qgbj10aGlzLl9sYXN0RXZlbnRJZD10JiZ0LmV2ZW50X2lkP3QuZXZlbnRfaWQ6KDAsdS5ETSkoKSxyPW5ldyBFcnJvcihcIlNlbnRyeSBzeW50aGV0aWNFeGNlcHRpb25cIik7cmV0dXJuIHRoaXMuX3dpdGhDbGllbnQoKChpLG8pPT57aS5jYXB0dXJlRXhjZXB0aW9uKGUse29yaWdpbmFsRXhjZXB0aW9uOmUsc3ludGhldGljRXhjZXB0aW9uOnIsLi4udCxldmVudF9pZDpufSxvKX0pKSxufWNhcHR1cmVNZXNzYWdlKGUsdCxuKXtjb25zdCByPXRoaXMuX2xhc3RFdmVudElkPW4mJm4uZXZlbnRfaWQ/bi5ldmVudF9pZDooMCx1LkRNKSgpLGk9bmV3IEVycm9yKGUpO3JldHVybiB0aGlzLl93aXRoQ2xpZW50KCgobyxhKT0+e28uY2FwdHVyZU1lc3NhZ2UoZSx0LHtvcmlnaW5hbEV4Y2VwdGlvbjplLHN5bnRoZXRpY0V4Y2VwdGlvbjppLC4uLm4sZXZlbnRfaWQ6cn0sYSl9KSkscn1jYXB0dXJlRXZlbnQoZSx0KXtjb25zdCBuPXQmJnQuZXZlbnRfaWQ/dC5ldmVudF9pZDooMCx1LkRNKSgpO3JldHVybiBlLnR5cGV8fCh0aGlzLl9sYXN0RXZlbnRJZD1uKSx0aGlzLl93aXRoQ2xpZW50KCgocixpKT0+e3IuY2FwdHVyZUV2ZW50KGUsey4uLnQsZXZlbnRfaWQ6bn0saSl9KSksbn1sYXN0RXZlbnRJZCgpe3JldHVybiB0aGlzLl9sYXN0RXZlbnRJZH1hZGRCcmVhZGNydW1iKGUsdCl7Y29uc3R7c2NvcGU6bixjbGllbnQ6cn09dGhpcy5nZXRTdGFja1RvcCgpO2lmKCFyKXJldHVybjtjb25zdHtiZWZvcmVCcmVhZGNydW1iOmk9bnVsbCxtYXhCcmVhZGNydW1iczpvPUl9PXIuZ2V0T3B0aW9ucyYmci5nZXRPcHRpb25zKCl8fHt9O2lmKG88PTApcmV0dXJuO2NvbnN0IGE9e3RpbWVzdGFtcDooMCxoLnlXKSgpLC4uLmV9LHM9aT8oMCxjLkNmKSgoKCk9PmkoYSx0KSkpOmE7bnVsbCE9PXMmJihyLmVtaXQmJnIuZW1pdChcImJlZm9yZUFkZEJyZWFkY3J1bWJcIixzLHQpLG4uYWRkQnJlYWRjcnVtYihzLG8pKX1zZXRVc2VyKGUpe3RoaXMuZ2V0U2NvcGUoKS5zZXRVc2VyKGUpfXNldFRhZ3MoZSl7dGhpcy5nZXRTY29wZSgpLnNldFRhZ3MoZSl9c2V0RXh0cmFzKGUpe3RoaXMuZ2V0U2NvcGUoKS5zZXRFeHRyYXMoZSl9c2V0VGFnKGUsdCl7dGhpcy5nZXRTY29wZSgpLnNldFRhZyhlLHQpfXNldEV4dHJhKGUsdCl7dGhpcy5nZXRTY29wZSgpLnNldEV4dHJhKGUsdCl9c2V0Q29udGV4dChlLHQpe3RoaXMuZ2V0U2NvcGUoKS5zZXRDb250ZXh0KGUsdCl9Y29uZmlndXJlU2NvcGUoZSl7Y29uc3R7c2NvcGU6dCxjbGllbnQ6bn09dGhpcy5nZXRTdGFja1RvcCgpO24mJmUodCl9cnVuKGUpe2NvbnN0IHQ9Qyh0aGlzKTt0cnl7ZSh0aGlzKX1maW5hbGx5e0ModCl9fWdldEludGVncmF0aW9uKGUpe2NvbnN0IHQ9dGhpcy5nZXRDbGllbnQoKTtpZighdClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIHQuZ2V0SW50ZWdyYXRpb24oZSl9Y2F0Y2gobil7cmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihgQ2Fubm90IHJldHJpZXZlIGludGVncmF0aW9uICR7ZS5pZH0gZnJvbSB0aGUgY3VycmVudCBIdWJgKSxudWxsfX1zdGFydFRyYW5zYWN0aW9uKGUsdCl7Y29uc3Qgbj10aGlzLl9jYWxsRXh0ZW5zaW9uTWV0aG9kKFwic3RhcnRUcmFuc2FjdGlvblwiLGUsdCk7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19fJiYhX19TRU5UUllfREVCVUdfX3x8bnx8Y29uc29sZS53YXJuKFwiVHJhY2luZyBleHRlbnNpb24gJ3N0YXJ0VHJhbnNhY3Rpb24nIGhhcyBub3QgYmVlbiBhZGRlZC4gQ2FsbCAnYWRkVHJhY2luZ0V4dGVuc2lvbnMnIGJlZm9yZSBjYWxsaW5nICdpbml0JzpcXG5TZW50cnkuYWRkVHJhY2luZ0V4dGVuc2lvbnMoKTtcXG5TZW50cnkuaW5pdCh7Li4ufSk7XFxuXCIpLG59dHJhY2VIZWFkZXJzKCl7cmV0dXJuIHRoaXMuX2NhbGxFeHRlbnNpb25NZXRob2QoXCJ0cmFjZUhlYWRlcnNcIil9Y2FwdHVyZVNlc3Npb24oZT0hMSl7aWYoZSlyZXR1cm4gdGhpcy5lbmRTZXNzaW9uKCk7dGhpcy5fc2VuZFNlc3Npb25VcGRhdGUoKX1lbmRTZXNzaW9uKCl7Y29uc3QgZT10aGlzLmdldFN0YWNrVG9wKCkuc2NvcGUsdD1lLmdldFNlc3Npb24oKTt0JiZmdW5jdGlvbihlLHQpe2xldCBuPXt9O3Q/bj17c3RhdHVzOnR9Olwib2tcIj09PWUuc3RhdHVzJiYobj17c3RhdHVzOlwiZXhpdGVkXCJ9KSxiKGUsbil9KHQpLHRoaXMuX3NlbmRTZXNzaW9uVXBkYXRlKCksZS5zZXRTZXNzaW9uKCl9c3RhcnRTZXNzaW9uKGUpe2NvbnN0e3Njb3BlOnQsY2xpZW50Om59PXRoaXMuZ2V0U3RhY2tUb3AoKSx7cmVsZWFzZTpyLGVudmlyb25tZW50Omk9bX09biYmbi5nZXRPcHRpb25zKCl8fHt9LHt1c2VyQWdlbnQ6b309Zy5uMi5uYXZpZ2F0b3J8fHt9LGE9RSh7cmVsZWFzZTpyLGVudmlyb25tZW50OmksdXNlcjp0LmdldFVzZXIoKSwuLi5vJiZ7dXNlckFnZW50Om99LC4uLmV9KSxzPXQuZ2V0U2Vzc2lvbiYmdC5nZXRTZXNzaW9uKCk7cmV0dXJuIHMmJlwib2tcIj09PXMuc3RhdHVzJiZiKHMse3N0YXR1czpcImV4aXRlZFwifSksdGhpcy5lbmRTZXNzaW9uKCksdC5zZXRTZXNzaW9uKGEpLGF9c2hvdWxkU2VuZERlZmF1bHRQaWkoKXtjb25zdCBlPXRoaXMuZ2V0Q2xpZW50KCksdD1lJiZlLmdldE9wdGlvbnMoKTtyZXR1cm4gQm9vbGVhbih0JiZ0LnNlbmREZWZhdWx0UGlpKX1fc2VuZFNlc3Npb25VcGRhdGUoKXtjb25zdHtzY29wZTplLGNsaWVudDp0fT10aGlzLmdldFN0YWNrVG9wKCksbj1lLmdldFNlc3Npb24oKTtuJiZ0JiZ0LmNhcHR1cmVTZXNzaW9uJiZ0LmNhcHR1cmVTZXNzaW9uKG4pfV93aXRoQ2xpZW50KGUpe2NvbnN0e3Njb3BlOnQsY2xpZW50Om59PXRoaXMuZ2V0U3RhY2tUb3AoKTtuJiZlKG4sdCl9X2NhbGxFeHRlbnNpb25NZXRob2QoZSwuLi50KXtjb25zdCBuPUEoKS5fX1NFTlRSWV9fO2lmKG4mJm4uZXh0ZW5zaW9ucyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIG4uZXh0ZW5zaW9uc1tlXSlyZXR1cm4gbi5leHRlbnNpb25zW2VdLmFwcGx5KHRoaXMsdCk7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihgRXh0ZW5zaW9uIG1ldGhvZCAke2V9IGNvdWxkbid0IGJlIGZvdW5kLCBkb2luZyBub3RoaW5nLmApfX1mdW5jdGlvbiBBKCl7cmV0dXJuIGcubjIuX19TRU5UUllfXz1nLm4yLl9fU0VOVFJZX198fHtleHRlbnNpb25zOnt9LGh1Yjp2b2lkIDB9LGcubjJ9ZnVuY3Rpb24gQyhlKXtjb25zdCB0PUEoKSxuPVIodCk7cmV0dXJuIHcodCxlKSxufWZ1bmN0aW9uIE4oKXtjb25zdCBlPUEoKTtpZihlLl9fU0VOVFJZX18mJmUuX19TRU5UUllfXy5hY3Mpe2NvbnN0IHQ9ZS5fX1NFTlRSWV9fLmFjcy5nZXRDdXJyZW50SHViKCk7aWYodClyZXR1cm4gdH1yZXR1cm4gayhlKX1mdW5jdGlvbiBrKGU9QSgpKXtyZXR1cm4gUChlKSYmIVIoZSkuaXNPbGRlclRoYW4oNCl8fHcoZSxuZXcgTyksUihlKX1mdW5jdGlvbiBQKGUpe3JldHVybiEhKGUmJmUuX19TRU5UUllfXyYmZS5fX1NFTlRSWV9fLmh1Yil9ZnVuY3Rpb24gUihlKXtyZXR1cm4oMCxnLllPKShcImh1YlwiLCgoKT0+bmV3IE8pLGUpfWZ1bmN0aW9uIHcoZSx0KXtpZighZSlyZXR1cm4hMTtyZXR1cm4oZS5fX1NFTlRSWV9fPWUuX19TRU5UUllfX3x8e30pLmh1Yj10LCEwfWNvbnN0IEw9XCI3LjUxLjJcIjtmdW5jdGlvbiBCKGUsdCl7cmV0dXJuIE4oKS5jYXB0dXJlRXhjZXB0aW9uKGUse2NhcHR1cmVDb250ZXh0OnR9KX1mdW5jdGlvbiBNKGUsdCl7Y29uc3Qgbj1cInN0cmluZ1wiPT09dHlwZW9mIHQ/dDp2b2lkIDAscj1cInN0cmluZ1wiIT09dHlwZW9mIHQ/e2NhcHR1cmVDb250ZXh0OnR9OnZvaWQgMDtyZXR1cm4gTigpLmNhcHR1cmVNZXNzYWdlKGUsbixyKX1mdW5jdGlvbiBEKGUsdCl7cmV0dXJuIE4oKS5jYXB0dXJlRXZlbnQoZSx0KX1mdW5jdGlvbiBqKGUpe04oKS5jb25maWd1cmVTY29wZShlKX1mdW5jdGlvbiB4KGUpe04oKS5hZGRCcmVhZGNydW1iKGUpfWZ1bmN0aW9uIFUoZSx0KXtOKCkuc2V0Q29udGV4dChlLHQpfWZ1bmN0aW9uIEYoZSl7TigpLnNldEV4dHJhcyhlKX1mdW5jdGlvbiBIKGUsdCl7TigpLnNldEV4dHJhKGUsdCl9ZnVuY3Rpb24gRyhlKXtOKCkuc2V0VGFncyhlKX1mdW5jdGlvbiBXKGUsdCl7TigpLnNldFRhZyhlLHQpfWZ1bmN0aW9uIFYoZSl7TigpLnNldFVzZXIoZSl9ZnVuY3Rpb24geihlKXtOKCkud2l0aFNjb3BlKGUpfWZ1bmN0aW9uIEsoZSx0KXtyZXR1cm4gTigpLnN0YXJ0VHJhbnNhY3Rpb24oey4uLmV9LHQpfXZhciBZPW4oMzQyMzMpO2Z1bmN0aW9uIHEoZSl7cmV0dXJuKGV8fE4oKSkuZ2V0U2NvcGUoKS5nZXRUcmFuc2FjdGlvbigpfWxldCBaPSExO2Z1bmN0aW9uIEooKXtjb25zdCBlPXEoKTtpZihlKXtjb25zdCB0PVwiaW50ZXJuYWxfZXJyb3JcIjsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coYFtUcmFjaW5nXSBUcmFuc2FjdGlvbjogJHt0fSAtPiBHbG9iYWwgZXJyb3Igb2NjdXJlZGApLGUuc2V0U3RhdHVzKHQpfX1KLnRhZz1cInNlbnRyeV90cmFjaW5nRXJyb3JDYWxsYmFja1wiO2NsYXNzIFh7X19pbml0KCl7dGhpcy5zcGFucz1bXX1jb25zdHJ1Y3RvcihlPTFlMyl7WC5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksdGhpcy5fbWF4bGVuPWV9YWRkKGUpe3RoaXMuc3BhbnMubGVuZ3RoPnRoaXMuX21heGxlbj9lLnNwYW5SZWNvcmRlcj12b2lkIDA6dGhpcy5zcGFucy5wdXNoKGUpfX1jbGFzcyBRe19faW5pdDIoKXt0aGlzLnRyYWNlSWQ9KDAsdS5ETSkoKX1fX2luaXQzKCl7dGhpcy5zcGFuSWQ9KDAsdS5ETSkoKS5zdWJzdHJpbmcoMTYpfV9faW5pdDQoKXt0aGlzLnN0YXJ0VGltZXN0YW1wPSgwLGgucGgpKCl9X19pbml0NSgpe3RoaXMudGFncz17fX1fX2luaXQ2KCl7dGhpcy5kYXRhPXt9fV9faW5pdDcoKXt0aGlzLmluc3RydW1lbnRlcj1cInNlbnRyeVwifWNvbnN0cnVjdG9yKGUpe2lmKFEucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKSxRLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyksUS5wcm90b3R5cGUuX19pbml0NC5jYWxsKHRoaXMpLFEucHJvdG90eXBlLl9faW5pdDUuY2FsbCh0aGlzKSxRLnByb3RvdHlwZS5fX2luaXQ2LmNhbGwodGhpcyksUS5wcm90b3R5cGUuX19pbml0Ny5jYWxsKHRoaXMpLCFlKXJldHVybiB0aGlzO2UudHJhY2VJZCYmKHRoaXMudHJhY2VJZD1lLnRyYWNlSWQpLGUuc3BhbklkJiYodGhpcy5zcGFuSWQ9ZS5zcGFuSWQpLGUucGFyZW50U3BhbklkJiYodGhpcy5wYXJlbnRTcGFuSWQ9ZS5wYXJlbnRTcGFuSWQpLFwic2FtcGxlZFwiaW4gZSYmKHRoaXMuc2FtcGxlZD1lLnNhbXBsZWQpLGUub3AmJih0aGlzLm9wPWUub3ApLGUuZGVzY3JpcHRpb24mJih0aGlzLmRlc2NyaXB0aW9uPWUuZGVzY3JpcHRpb24pLGUuZGF0YSYmKHRoaXMuZGF0YT1lLmRhdGEpLGUudGFncyYmKHRoaXMudGFncz1lLnRhZ3MpLGUuc3RhdHVzJiYodGhpcy5zdGF0dXM9ZS5zdGF0dXMpLGUuc3RhcnRUaW1lc3RhbXAmJih0aGlzLnN0YXJ0VGltZXN0YW1wPWUuc3RhcnRUaW1lc3RhbXApLGUuZW5kVGltZXN0YW1wJiYodGhpcy5lbmRUaW1lc3RhbXA9ZS5lbmRUaW1lc3RhbXApLGUuaW5zdHJ1bWVudGVyJiYodGhpcy5pbnN0cnVtZW50ZXI9ZS5pbnN0cnVtZW50ZXIpfXN0YXJ0Q2hpbGQoZSl7Y29uc3QgdD1uZXcgUSh7Li4uZSxwYXJlbnRTcGFuSWQ6dGhpcy5zcGFuSWQsc2FtcGxlZDp0aGlzLnNhbXBsZWQsdHJhY2VJZDp0aGlzLnRyYWNlSWR9KTtpZih0LnNwYW5SZWNvcmRlcj10aGlzLnNwYW5SZWNvcmRlcix0LnNwYW5SZWNvcmRlciYmdC5zcGFuUmVjb3JkZXIuYWRkKHQpLHQudHJhbnNhY3Rpb249dGhpcy50cmFuc2FjdGlvbiwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmdC50cmFuc2FjdGlvbil7Y29uc3Qgbj1gW1RyYWNpbmddIFN0YXJ0aW5nICcke2UmJmUub3B8fFwiPCB1bmtub3duIG9wID5cIn0nIHNwYW4gb24gdHJhbnNhY3Rpb24gJyR7dC50cmFuc2FjdGlvbi5uYW1lfHxcIjwgdW5rbm93biBuYW1lID5cIn0nICgke3QudHJhbnNhY3Rpb24uc3BhbklkfSkuYDt0LnRyYW5zYWN0aW9uLm1ldGFkYXRhLnNwYW5NZXRhZGF0YVt0LnNwYW5JZF09e2xvZ01lc3NhZ2U6bn0sYy5rZy5sb2cobil9cmV0dXJuIHR9c2V0VGFnKGUsdCl7cmV0dXJuIHRoaXMudGFncz17Li4udGhpcy50YWdzLFtlXTp0fSx0aGlzfXNldERhdGEoZSx0KXtyZXR1cm4gdGhpcy5kYXRhPXsuLi50aGlzLmRhdGEsW2VdOnR9LHRoaXN9c2V0U3RhdHVzKGUpe3JldHVybiB0aGlzLnN0YXR1cz1lLHRoaXN9c2V0SHR0cFN0YXR1cyhlKXt0aGlzLnNldFRhZyhcImh0dHAuc3RhdHVzX2NvZGVcIixTdHJpbmcoZSkpO2NvbnN0IHQ9JChlKTtyZXR1cm5cInVua25vd25fZXJyb3JcIiE9PXQmJnRoaXMuc2V0U3RhdHVzKHQpLHRoaXN9aXNTdWNjZXNzKCl7cmV0dXJuXCJva1wiPT09dGhpcy5zdGF0dXN9ZmluaXNoKGUpe2lmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ0aGlzLnRyYW5zYWN0aW9uJiZ0aGlzLnRyYW5zYWN0aW9uLnNwYW5JZCE9PXRoaXMuc3BhbklkKXtjb25zdHtsb2dNZXNzYWdlOmV9PXRoaXMudHJhbnNhY3Rpb24ubWV0YWRhdGEuc3Bhbk1ldGFkYXRhW3RoaXMuc3BhbklkXTtlJiZjLmtnLmxvZyhlLnJlcGxhY2UoXCJTdGFydGluZ1wiLFwiRmluaXNoaW5nXCIpKX10aGlzLmVuZFRpbWVzdGFtcD1cIm51bWJlclwiPT09dHlwZW9mIGU/ZTooMCxoLnBoKSgpfXRvVHJhY2VwYXJlbnQoKXtsZXQgZT1cIlwiO3JldHVybiB2b2lkIDAhPT10aGlzLnNhbXBsZWQmJihlPXRoaXMuc2FtcGxlZD9cIi0xXCI6XCItMFwiKSxgJHt0aGlzLnRyYWNlSWR9LSR7dGhpcy5zcGFuSWR9JHtlfWB9dG9Db250ZXh0KCl7cmV0dXJuKDAsby5Kcikoe2RhdGE6dGhpcy5kYXRhLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sZW5kVGltZXN0YW1wOnRoaXMuZW5kVGltZXN0YW1wLG9wOnRoaXMub3AscGFyZW50U3BhbklkOnRoaXMucGFyZW50U3BhbklkLHNhbXBsZWQ6dGhpcy5zYW1wbGVkLHNwYW5JZDp0aGlzLnNwYW5JZCxzdGFydFRpbWVzdGFtcDp0aGlzLnN0YXJ0VGltZXN0YW1wLHN0YXR1czp0aGlzLnN0YXR1cyx0YWdzOnRoaXMudGFncyx0cmFjZUlkOnRoaXMudHJhY2VJZH0pfXVwZGF0ZVdpdGhDb250ZXh0KGUpe3JldHVybiB0aGlzLmRhdGE9ZS5kYXRhfHx7fSx0aGlzLmRlc2NyaXB0aW9uPWUuZGVzY3JpcHRpb24sdGhpcy5lbmRUaW1lc3RhbXA9ZS5lbmRUaW1lc3RhbXAsdGhpcy5vcD1lLm9wLHRoaXMucGFyZW50U3BhbklkPWUucGFyZW50U3BhbklkLHRoaXMuc2FtcGxlZD1lLnNhbXBsZWQsdGhpcy5zcGFuSWQ9ZS5zcGFuSWR8fHRoaXMuc3BhbklkLHRoaXMuc3RhcnRUaW1lc3RhbXA9ZS5zdGFydFRpbWVzdGFtcHx8dGhpcy5zdGFydFRpbWVzdGFtcCx0aGlzLnN0YXR1cz1lLnN0YXR1cyx0aGlzLnRhZ3M9ZS50YWdzfHx7fSx0aGlzLnRyYWNlSWQ9ZS50cmFjZUlkfHx0aGlzLnRyYWNlSWQsdGhpc31nZXRUcmFjZUNvbnRleHQoKXtyZXR1cm4oMCxvLkpyKSh7ZGF0YTpPYmplY3Qua2V5cyh0aGlzLmRhdGEpLmxlbmd0aD4wP3RoaXMuZGF0YTp2b2lkIDAsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixvcDp0aGlzLm9wLHBhcmVudF9zcGFuX2lkOnRoaXMucGFyZW50U3BhbklkLHNwYW5faWQ6dGhpcy5zcGFuSWQsc3RhdHVzOnRoaXMuc3RhdHVzLHRhZ3M6T2JqZWN0LmtleXModGhpcy50YWdzKS5sZW5ndGg+MD90aGlzLnRhZ3M6dm9pZCAwLHRyYWNlX2lkOnRoaXMudHJhY2VJZH0pfXRvSlNPTigpe3JldHVybigwLG8uSnIpKHtkYXRhOk9iamVjdC5rZXlzKHRoaXMuZGF0YSkubGVuZ3RoPjA/dGhpcy5kYXRhOnZvaWQgMCxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG9wOnRoaXMub3AscGFyZW50X3NwYW5faWQ6dGhpcy5wYXJlbnRTcGFuSWQsc3Bhbl9pZDp0aGlzLnNwYW5JZCxzdGFydF90aW1lc3RhbXA6dGhpcy5zdGFydFRpbWVzdGFtcCxzdGF0dXM6dGhpcy5zdGF0dXMsdGFnczpPYmplY3Qua2V5cyh0aGlzLnRhZ3MpLmxlbmd0aD4wP3RoaXMudGFnczp2b2lkIDAsdGltZXN0YW1wOnRoaXMuZW5kVGltZXN0YW1wLHRyYWNlX2lkOnRoaXMudHJhY2VJZH0pfX1mdW5jdGlvbiAkKGUpe2lmKGU8NDAwJiZlPj0xMDApcmV0dXJuXCJva1wiO2lmKGU+PTQwMCYmZTw1MDApc3dpdGNoKGUpe2Nhc2UgNDAxOnJldHVyblwidW5hdXRoZW50aWNhdGVkXCI7Y2FzZSA0MDM6cmV0dXJuXCJwZXJtaXNzaW9uX2RlbmllZFwiO2Nhc2UgNDA0OnJldHVyblwibm90X2ZvdW5kXCI7Y2FzZSA0MDk6cmV0dXJuXCJhbHJlYWR5X2V4aXN0c1wiO2Nhc2UgNDEzOnJldHVyblwiZmFpbGVkX3ByZWNvbmRpdGlvblwiO2Nhc2UgNDI5OnJldHVyblwicmVzb3VyY2VfZXhoYXVzdGVkXCI7ZGVmYXVsdDpyZXR1cm5cImludmFsaWRfYXJndW1lbnRcIn1pZihlPj01MDAmJmU8NjAwKXN3aXRjaChlKXtjYXNlIDUwMTpyZXR1cm5cInVuaW1wbGVtZW50ZWRcIjtjYXNlIDUwMzpyZXR1cm5cInVuYXZhaWxhYmxlXCI7Y2FzZSA1MDQ6cmV0dXJuXCJkZWFkbGluZV9leGNlZWRlZFwiO2RlZmF1bHQ6cmV0dXJuXCJpbnRlcm5hbF9lcnJvclwifXJldHVyblwidW5rbm93bl9lcnJvclwifWNsYXNzIGVlIGV4dGVuZHMgUXtfX2luaXQoKXt0aGlzLl9tZWFzdXJlbWVudHM9e319X19pbml0Migpe3RoaXMuX2NvbnRleHRzPXt9fV9faW5pdDMoKXt0aGlzLl9mcm96ZW5EeW5hbWljU2FtcGxpbmdDb250ZXh0PXZvaWQgMH1jb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUpLGVlLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSxlZS5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpLGVlLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyksdGhpcy5faHViPXR8fE4oKSx0aGlzLl9uYW1lPWUubmFtZXx8XCJcIix0aGlzLm1ldGFkYXRhPXtzb3VyY2U6XCJjdXN0b21cIiwuLi5lLm1ldGFkYXRhLHNwYW5NZXRhZGF0YTp7fX0sdGhpcy5fdHJpbUVuZD1lLnRyaW1FbmQsdGhpcy50cmFuc2FjdGlvbj10aGlzO2NvbnN0IG49dGhpcy5tZXRhZGF0YS5keW5hbWljU2FtcGxpbmdDb250ZXh0O24mJih0aGlzLl9mcm96ZW5EeW5hbWljU2FtcGxpbmdDb250ZXh0PXsuLi5ufSl9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5fbmFtZX1zZXQgbmFtZShlKXt0aGlzLnNldE5hbWUoZSl9c2V0TmFtZShlLHQ9XCJjdXN0b21cIil7dGhpcy5fbmFtZT1lLHRoaXMubWV0YWRhdGEuc291cmNlPXR9aW5pdFNwYW5SZWNvcmRlcihlPTFlMyl7dGhpcy5zcGFuUmVjb3JkZXJ8fCh0aGlzLnNwYW5SZWNvcmRlcj1uZXcgWChlKSksdGhpcy5zcGFuUmVjb3JkZXIuYWRkKHRoaXMpfXNldENvbnRleHQoZSx0KXtudWxsPT09dD9kZWxldGUgdGhpcy5fY29udGV4dHNbZV06dGhpcy5fY29udGV4dHNbZV09dH1zZXRNZWFzdXJlbWVudChlLHQsbj1cIlwiKXt0aGlzLl9tZWFzdXJlbWVudHNbZV09e3ZhbHVlOnQsdW5pdDpufX1zZXRNZXRhZGF0YShlKXt0aGlzLm1ldGFkYXRhPXsuLi50aGlzLm1ldGFkYXRhLC4uLmV9fWZpbmlzaChlKXtpZih2b2lkIDAhPT10aGlzLmVuZFRpbWVzdGFtcClyZXR1cm47dGhpcy5uYW1lfHwoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihcIlRyYW5zYWN0aW9uIGhhcyBubyBuYW1lLCBmYWxsaW5nIGJhY2sgdG8gYDx1bmxhYmVsZWQgdHJhbnNhY3Rpb24+YC5cIiksdGhpcy5uYW1lPVwiPHVubGFiZWxlZCB0cmFuc2FjdGlvbj5cIiksc3VwZXIuZmluaXNoKGUpO2NvbnN0IHQ9dGhpcy5faHViLmdldENsaWVudCgpO2lmKHQmJnQuZW1pdCYmdC5lbWl0KFwiZmluaXNoVHJhbnNhY3Rpb25cIix0aGlzKSwhMCE9PXRoaXMuc2FtcGxlZClyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbVHJhY2luZ10gRGlzY2FyZGluZyB0cmFuc2FjdGlvbiBiZWNhdXNlIGl0cyB0cmFjZSB3YXMgbm90IGNob3NlbiB0byBiZSBzYW1wbGVkLlwiKSx2b2lkKHQmJnQucmVjb3JkRHJvcHBlZEV2ZW50KFwic2FtcGxlX3JhdGVcIixcInRyYW5zYWN0aW9uXCIpKTtjb25zdCBuPXRoaXMuc3BhblJlY29yZGVyP3RoaXMuc3BhblJlY29yZGVyLnNwYW5zLmZpbHRlcigoZT0+ZSE9PXRoaXMmJmUuZW5kVGltZXN0YW1wKSk6W107dGhpcy5fdHJpbUVuZCYmbi5sZW5ndGg+MCYmKHRoaXMuZW5kVGltZXN0YW1wPW4ucmVkdWNlKCgoZSx0KT0+ZS5lbmRUaW1lc3RhbXAmJnQuZW5kVGltZXN0YW1wP2UuZW5kVGltZXN0YW1wPnQuZW5kVGltZXN0YW1wP2U6dDplKSkuZW5kVGltZXN0YW1wKTtjb25zdCByPXRoaXMubWV0YWRhdGEsaT17Y29udGV4dHM6ey4uLnRoaXMuX2NvbnRleHRzLHRyYWNlOnRoaXMuZ2V0VHJhY2VDb250ZXh0KCl9LHNwYW5zOm4sc3RhcnRfdGltZXN0YW1wOnRoaXMuc3RhcnRUaW1lc3RhbXAsdGFnczp0aGlzLnRhZ3MsdGltZXN0YW1wOnRoaXMuZW5kVGltZXN0YW1wLHRyYW5zYWN0aW9uOnRoaXMubmFtZSx0eXBlOlwidHJhbnNhY3Rpb25cIixzZGtQcm9jZXNzaW5nTWV0YWRhdGE6ey4uLnIsZHluYW1pY1NhbXBsaW5nQ29udGV4dDp0aGlzLmdldER5bmFtaWNTYW1wbGluZ0NvbnRleHQoKX0sLi4uci5zb3VyY2UmJnt0cmFuc2FjdGlvbl9pbmZvOntzb3VyY2U6ci5zb3VyY2V9fX07cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX21lYXN1cmVtZW50cykubGVuZ3RoPjAmJigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbTWVhc3VyZW1lbnRzXSBBZGRpbmcgbWVhc3VyZW1lbnRzIHRvIHRyYW5zYWN0aW9uXCIsSlNPTi5zdHJpbmdpZnkodGhpcy5fbWVhc3VyZW1lbnRzLHZvaWQgMCwyKSksaS5tZWFzdXJlbWVudHM9dGhpcy5fbWVhc3VyZW1lbnRzKSwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coYFtUcmFjaW5nXSBGaW5pc2hpbmcgJHt0aGlzLm9wfSB0cmFuc2FjdGlvbjogJHt0aGlzLm5hbWV9LmApLHRoaXMuX2h1Yi5jYXB0dXJlRXZlbnQoaSl9dG9Db250ZXh0KCl7Y29uc3QgZT1zdXBlci50b0NvbnRleHQoKTtyZXR1cm4oMCxvLkpyKSh7Li4uZSxuYW1lOnRoaXMubmFtZSx0cmltRW5kOnRoaXMuX3RyaW1FbmR9KX11cGRhdGVXaXRoQ29udGV4dChlKXtyZXR1cm4gc3VwZXIudXBkYXRlV2l0aENvbnRleHQoZSksdGhpcy5uYW1lPWUubmFtZXx8XCJcIix0aGlzLl90cmltRW5kPWUudHJpbUVuZCx0aGlzfWdldER5bmFtaWNTYW1wbGluZ0NvbnRleHQoKXtpZih0aGlzLl9mcm96ZW5EeW5hbWljU2FtcGxpbmdDb250ZXh0KXJldHVybiB0aGlzLl9mcm96ZW5EeW5hbWljU2FtcGxpbmdDb250ZXh0O2NvbnN0IGU9dGhpcy5faHVifHxOKCksdD1lJiZlLmdldENsaWVudCgpO2lmKCF0KXJldHVybnt9O2NvbnN0e2Vudmlyb25tZW50Om4scmVsZWFzZTpyfT10LmdldE9wdGlvbnMoKXx8e30se3B1YmxpY0tleTppfT10LmdldERzbigpfHx7fSxhPXRoaXMubWV0YWRhdGEuc2FtcGxlUmF0ZSxzPXZvaWQgMCE9PWE/YS50b1N0cmluZygpOnZvaWQgMCx7c2VnbWVudDpjfT1lLmdldFNjb3BlKCkuZ2V0VXNlcigpfHx7fSx1PXRoaXMubWV0YWRhdGEuc291cmNlLGw9dSYmXCJ1cmxcIiE9PXU/dGhpcy5uYW1lOnZvaWQgMCxkPSgwLG8uSnIpKHtlbnZpcm9ubWVudDpufHxtLHJlbGVhc2U6cix0cmFuc2FjdGlvbjpsLHVzZXJfc2VnbWVudDpjLHB1YmxpY19rZXk6aSx0cmFjZV9pZDp0aGlzLnRyYWNlSWQsc2FtcGxlX3JhdGU6c30pO3JldHVybiB0LmVtaXQmJnQuZW1pdChcImNyZWF0ZURzY1wiLGQpLGR9c2V0SHViKGUpe3RoaXMuX2h1Yj1lfX1mdW5jdGlvbiB0ZSgpe2NvbnN0IGU9dGhpcy5nZXRTY29wZSgpLmdldFNwYW4oKTtyZXR1cm4gZT97XCJzZW50cnktdHJhY2VcIjplLnRvVHJhY2VwYXJlbnQoKX06e319ZnVuY3Rpb24gbmUoZSx0LG4pe2lmKCFmdW5jdGlvbihlKXtpZihcImJvb2xlYW5cIj09PXR5cGVvZiBfX1NFTlRSWV9UUkFDSU5HX18mJiFfX1NFTlRSWV9UUkFDSU5HX18pcmV0dXJuITE7Y29uc3QgdD1OKCkuZ2V0Q2xpZW50KCksbj1lfHx0JiZ0LmdldE9wdGlvbnMoKTtyZXR1cm4hIW4mJihuLmVuYWJsZVRyYWNpbmd8fFwidHJhY2VzU2FtcGxlUmF0ZVwiaW4gbnx8XCJ0cmFjZXNTYW1wbGVyXCJpbiBuKX0odCkpcmV0dXJuIGUuc2FtcGxlZD0hMSxlO2lmKHZvaWQgMCE9PWUuc2FtcGxlZClyZXR1cm4gZS5zZXRNZXRhZGF0YSh7c2FtcGxlUmF0ZTpOdW1iZXIoZS5zYW1wbGVkKX0pLGU7bGV0IHI7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIHQudHJhY2VzU2FtcGxlcj8ocj10LnRyYWNlc1NhbXBsZXIobiksZS5zZXRNZXRhZGF0YSh7c2FtcGxlUmF0ZTpOdW1iZXIocil9KSk6dm9pZCAwIT09bi5wYXJlbnRTYW1wbGVkP3I9bi5wYXJlbnRTYW1wbGVkOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgdC50cmFjZXNTYW1wbGVSYXRlPyhyPXQudHJhY2VzU2FtcGxlUmF0ZSxlLnNldE1ldGFkYXRhKHtzYW1wbGVSYXRlOk51bWJlcihyKX0pKToocj0xLGUuc2V0TWV0YWRhdGEoe3NhbXBsZVJhdGU6cn0pKSxmdW5jdGlvbihlKXtpZigoMCx2LmkyKShlKXx8XCJudW1iZXJcIiE9PXR5cGVvZiBlJiZcImJvb2xlYW5cIiE9PXR5cGVvZiBlKXJldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLndhcm4oYFtUcmFjaW5nXSBHaXZlbiBzYW1wbGUgcmF0ZSBpcyBpbnZhbGlkLiBTYW1wbGUgcmF0ZSBtdXN0IGJlIGEgYm9vbGVhbiBvciBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuIEdvdCAke0pTT04uc3RyaW5naWZ5KGUpfSBvZiB0eXBlICR7SlNPTi5zdHJpbmdpZnkodHlwZW9mIGUpfS5gKSwhMTtpZihlPDB8fGU+MSlyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKGBbVHJhY2luZ10gR2l2ZW4gc2FtcGxlIHJhdGUgaXMgaW52YWxpZC4gU2FtcGxlIHJhdGUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEuIEdvdCAke2V9LmApLCExO3JldHVybiEwfShyKT9yPyhlLnNhbXBsZWQ9TWF0aC5yYW5kb20oKTxyLGUuc2FtcGxlZD8oKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKGBbVHJhY2luZ10gc3RhcnRpbmcgJHtlLm9wfSB0cmFuc2FjdGlvbiAtICR7ZS5uYW1lfWApLGUpOigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coYFtUcmFjaW5nXSBEaXNjYXJkaW5nIHRyYW5zYWN0aW9uIGJlY2F1c2UgaXQncyBub3QgaW5jbHVkZWQgaW4gdGhlIHJhbmRvbSBzYW1wbGUgKHNhbXBsaW5nIHJhdGUgPSAke051bWJlcihyKX0pYCksZSkpOigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbVHJhY2luZ10gRGlzY2FyZGluZyB0cmFuc2FjdGlvbiBiZWNhdXNlIFwiKyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC50cmFjZXNTYW1wbGVyP1widHJhY2VzU2FtcGxlciByZXR1cm5lZCAwIG9yIGZhbHNlXCI6XCJhIG5lZ2F0aXZlIHNhbXBsaW5nIGRlY2lzaW9uIHdhcyBpbmhlcml0ZWQgb3IgdHJhY2VzU2FtcGxlUmF0ZSBpcyBzZXQgdG8gMFwiKSksZS5zYW1wbGVkPSExLGUpOigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKFwiW1RyYWNpbmddIERpc2NhcmRpbmcgdHJhbnNhY3Rpb24gYmVjYXVzZSBvZiBpbnZhbGlkIHNhbXBsZSByYXRlLlwiKSxlLnNhbXBsZWQ9ITEsZSl9ZnVuY3Rpb24gcmUoZSx0KXtjb25zdCBuPXRoaXMuZ2V0Q2xpZW50KCkscj1uJiZuLmdldE9wdGlvbnMoKXx8e30saT1yLmluc3RydW1lbnRlcnx8XCJzZW50cnlcIixvPWUuaW5zdHJ1bWVudGVyfHxcInNlbnRyeVwiO2khPT1vJiYoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cuZXJyb3IoYEEgdHJhbnNhY3Rpb24gd2FzIHN0YXJ0ZWQgd2l0aCBpbnN0cnVtZW50ZXI9XFxgJHtvfVxcYCwgYnV0IHRoZSBTREsgaXMgY29uZmlndXJlZCB3aXRoIHRoZSBcXGAke2l9XFxgIGluc3RydW1lbnRlci5cXG5UaGUgdHJhbnNhY3Rpb24gd2lsbCBub3QgYmUgc2FtcGxlZC4gUGxlYXNlIHVzZSB0aGUgJHtpfSBpbnN0cnVtZW50YXRpb24gdG8gc3RhcnQgdHJhbnNhY3Rpb25zLmApLGUuc2FtcGxlZD0hMSk7bGV0IGE9bmV3IGVlKGUsdGhpcyk7cmV0dXJuIGE9bmUoYSxyLHtwYXJlbnRTYW1wbGVkOmUucGFyZW50U2FtcGxlZCx0cmFuc2FjdGlvbkNvbnRleHQ6ZSwuLi50fSksYS5zYW1wbGVkJiZhLmluaXRTcGFuUmVjb3JkZXIoci5fZXhwZXJpbWVudHMmJnIuX2V4cGVyaW1lbnRzLm1heFNwYW5zKSxuJiZuLmVtaXQmJm4uZW1pdChcInN0YXJ0VHJhbnNhY3Rpb25cIixhKSxhfWZ1bmN0aW9uIGllKCl7Y29uc3QgZT1BKCk7ZS5fX1NFTlRSWV9fJiYoZS5fX1NFTlRSWV9fLmV4dGVuc2lvbnM9ZS5fX1NFTlRSWV9fLmV4dGVuc2lvbnN8fHt9LGUuX19TRU5UUllfXy5leHRlbnNpb25zLnN0YXJ0VHJhbnNhY3Rpb258fChlLl9fU0VOVFJZX18uZXh0ZW5zaW9ucy5zdGFydFRyYW5zYWN0aW9uPXJlKSxlLl9fU0VOVFJZX18uZXh0ZW5zaW9ucy50cmFjZUhlYWRlcnN8fChlLl9fU0VOVFJZX18uZXh0ZW5zaW9ucy50cmFjZUhlYWRlcnM9dGUpLFp8fChaPSEwLCgwLFkub3EpKFwiZXJyb3JcIixKKSwoMCxZLm9xKShcInVuaGFuZGxlZHJlamVjdGlvblwiLEopKSl9dmFyIG9lPW4oNzk3NDEpLGFlPW4oMjM4NDUpLHNlPW4oNTk0MTcpLGNlPW4oNjA1OTMpO2Z1bmN0aW9uIHVlKGUsdCxuPSgwLG9lLngpKGUuYnVmZmVyU2l6ZXx8MzApKXtsZXQgcj17fTtmdW5jdGlvbiBpKGkpe2NvbnN0IG89W107aWYoKDAsYWUuZ3YpKGksKCh0LG4pPT57Y29uc3QgaT0oMCxhZS5tTCkobik7aWYoKDAsc2UuUSkocixpKSl7Y29uc3Qgcj1sZSh0LG4pO2UucmVjb3JkRHJvcHBlZEV2ZW50KFwicmF0ZWxpbWl0X2JhY2tvZmZcIixpLHIpfWVsc2Ugby5wdXNoKHQpfSkpLDA9PT1vLmxlbmd0aClyZXR1cm4oMCxfLldEKSgpO2NvbnN0IGE9KDAsYWUuSmQpKGlbMF0sbykscz10PT57KDAsYWUuZ3YpKGEsKChuLHIpPT57Y29uc3QgaT1sZShuLHIpO2UucmVjb3JkRHJvcHBlZEV2ZW50KHQsKDAsYWUubUwpKHIpLGkpfSkpfTtyZXR1cm4gbi5hZGQoKCgpPT50KHtib2R5OigwLGFlLlYkKShhLGUudGV4dEVuY29kZXIpfSkudGhlbigoZT0+KHZvaWQgMCE9PWUuc3RhdHVzQ29kZSYmKGUuc3RhdHVzQ29kZTwyMDB8fGUuc3RhdHVzQ29kZT49MzAwKSYmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihgU2VudHJ5IHJlc3BvbmRlZCB3aXRoIHN0YXR1cyBjb2RlICR7ZS5zdGF0dXNDb2RlfSB0byBzZW50IGV2ZW50LmApLHI9KDAsc2UuV0cpKHIsZSksZSkpLChlPT57dGhyb3cgcyhcIm5ldHdvcmtfZXJyb3JcIiksZX0pKSkpLnRoZW4oKGU9PmUpLChlPT57aWYoZSBpbnN0YW5jZW9mIGNlLmIpcmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cuZXJyb3IoXCJTa2lwcGVkIHNlbmRpbmcgZXZlbnQgYmVjYXVzZSBidWZmZXIgaXMgZnVsbC5cIikscyhcInF1ZXVlX292ZXJmbG93XCIpLCgwLF8uV0QpKCk7dGhyb3cgZX0pKX1yZXR1cm4gaS5fX3NlbnRyeV9fYmFzZVRyYW5zcG9ydF9fPSEwLHtzZW5kOmksZmx1c2g6ZT0+bi5kcmFpbihlKX19ZnVuY3Rpb24gbGUoZSx0KXtpZihcImV2ZW50XCI9PT10fHxcInRyYW5zYWN0aW9uXCI9PT10KXJldHVybiBBcnJheS5pc0FycmF5KGUpP2VbMV06dm9pZCAwfXZhciBkZT1uKDc0ODE5KTtmdW5jdGlvbiBwZShlKXtjb25zdCB0PWUucHJvdG9jb2w/YCR7ZS5wcm90b2NvbH06YDpcIlwiLG49ZS5wb3J0P2A6JHtlLnBvcnR9YDpcIlwiO3JldHVybmAke3R9Ly8ke2UuaG9zdH0ke259JHtlLnBhdGg/YC8ke2UucGF0aH1gOlwiXCJ9L2FwaS9gfWZ1bmN0aW9uIGZlKGUsdD17fSl7Y29uc3Qgbj1cInN0cmluZ1wiPT09dHlwZW9mIHQ/dDp0LnR1bm5lbCxyPVwic3RyaW5nXCIhPT10eXBlb2YgdCYmdC5fbWV0YWRhdGE/dC5fbWV0YWRhdGEuc2RrOnZvaWQgMDtyZXR1cm4gbnx8YCR7ZnVuY3Rpb24oZSl7cmV0dXJuYCR7cGUoZSl9JHtlLnByb2plY3RJZH0vZW52ZWxvcGUvYH0oZSl9PyR7ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxvLl9qKSh7c2VudHJ5X2tleTplLnB1YmxpY0tleSxzZW50cnlfdmVyc2lvbjpcIjdcIiwuLi50JiZ7c2VudHJ5X2NsaWVudDpgJHt0Lm5hbWV9LyR7dC52ZXJzaW9ufWB9fSl9KGUscil9YH1mdW5jdGlvbiBoZShlLHQpe3JldHVybiBuPT57Y29uc3Qgcj1lKG4pLGk9e307cmV0dXJue3NlbmQ6YXN5bmMgZnVuY3Rpb24obyl7Y29uc3QgYT10KHtlbnZlbG9wZTpvLGdldEV2ZW50OmZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZSYmZS5sZW5ndGg/ZTpbXCJldmVudFwiXTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtsZXQgbjtyZXR1cm4oMCxhZS5ndikoZSwoKGUscik9Pih0LmluY2x1ZGVzKHIpJiYobj1BcnJheS5pc0FycmF5KGUpP2VbMV06dm9pZCAwKSwhIW4pKSksbn0obyx0KX19KS5tYXAoKHQ9PmZ1bmN0aW9uKHQpe2lmKCFpW3RdKXtjb25zdCByPWZlKCgwLGRlLlU0KSh0KSk7aVt0XT1lKHsuLi5uLHVybDpyfSl9cmV0dXJuIGlbdF19KHQpKSk7cmV0dXJuIDA9PT1hLmxlbmd0aCYmYS5wdXNoKHIpLChhd2FpdCBQcm9taXNlLmFsbChhLm1hcCgoZT0+ZS5zZW5kKG8pKSkpKVswXX0sZmx1c2g6YXN5bmMgZnVuY3Rpb24oZSl7Y29uc3QgdD1bLi4uT2JqZWN0LmtleXMoaSkubWFwKChlPT5pW2VdKSkscl07cmV0dXJuKGF3YWl0IFByb21pc2UuYWxsKHQubWFwKCh0PT50LmZsdXNoKGUpKSkpKS5ldmVyeSgoZT0+ZSkpfX19fWZ1bmN0aW9uIGdlKGUsdCxuPSgoKT0+e30pKXtjb25zdCByPXsuLi5lfTt2b2lkIDAhPT1yLm5hbWUmJnZvaWQgMD09PXIuZGVzY3JpcHRpb24mJihyLmRlc2NyaXB0aW9uPXIubmFtZSk7Y29uc3QgaT1OKCksbz1pLmdldFNjb3BlKCksYT1vLmdldFNwYW4oKSxzPWE/YS5zdGFydENoaWxkKHIpOmkuc3RhcnRUcmFuc2FjdGlvbihyKTtmdW5jdGlvbiBjKCl7cyYmcy5maW5pc2goKSxpLmdldFNjb3BlKCkuc2V0U3BhbihhKX1sZXQgdTtvLnNldFNwYW4ocyk7dHJ5e3U9dChzKX1jYXRjaChsKXt0aHJvdyBzJiZzLnNldFN0YXR1cyhcImludGVybmFsX2Vycm9yXCIpLG4obCksYygpLGx9cmV0dXJuKDAsdi5KOCkodSk/UHJvbWlzZS5yZXNvbHZlKHUpLnRoZW4oKCgpPT57YygpfSksKGU9PntzJiZzLnNldFN0YXR1cyhcImludGVybmFsX2Vycm9yXCIpLG4oZSksYygpfSkpOmMoKSx1fXZhciBtZT1uKDE2MTM4KTtjb25zdCB2ZT1nLm4yO2xldCBfZT0wO2Z1bmN0aW9uIEVlKCl7cmV0dXJuIF9lPjB9ZnVuY3Rpb24gYmUoKXtfZSsrLHNldFRpbWVvdXQoKCgpPT57X2UtLX0pKX1mdW5jdGlvbiBTZShlLHQ9e30sbil7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpcmV0dXJuIGU7dHJ5e2NvbnN0IHQ9ZS5fX3NlbnRyeV93cmFwcGVkX187aWYodClyZXR1cm4gdDtpZigoMCxvLkhLKShlKSlyZXR1cm4gZX1jYXRjaChpKXtyZXR1cm4gZX1jb25zdCByPWZ1bmN0aW9uKCl7Y29uc3Qgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3RyeXtuJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgbiYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Y29uc3QgaT1yLm1hcCgoZT0+U2UoZSx0KSkpO3JldHVybiBlLmFwcGx5KHRoaXMsaSl9Y2F0Y2goaSl7dGhyb3cgYmUoKSx6KChlPT57ZS5hZGRFdmVudFByb2Nlc3NvcigoZT0+KHQubWVjaGFuaXNtJiYoKDAsdS5EYikoZSx2b2lkIDAsdm9pZCAwKSwoMCx1LkVHKShlLHQubWVjaGFuaXNtKSksZS5leHRyYT17Li4uZS5leHRyYSxhcmd1bWVudHM6cn0sZSkpKSxCKGkpfSkpLGl9fTt0cnl7Zm9yKGNvbnN0IHQgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmKHJbdF09ZVt0XSl9Y2F0Y2goYSl7fSgwLG8uJFEpKHIsZSksKDAsby54cCkoZSxcIl9fc2VudHJ5X3dyYXBwZWRfX1wiLHIpO3RyeXtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsXCJuYW1lXCIpLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJuYW1lXCIse2dldDooKT0+ZS5uYW1lfSl9Y2F0Y2goYSl7fXJldHVybiByfWNvbnN0IHllPVtdO2Z1bmN0aW9uIFRlKGUpe2NvbnN0IHQ9ZS5kZWZhdWx0SW50ZWdyYXRpb25zfHxbXSxuPWUuaW50ZWdyYXRpb25zO2xldCByO3QuZm9yRWFjaCgoZT0+e2UuaXNEZWZhdWx0SW5zdGFuY2U9ITB9KSkscj1BcnJheS5pc0FycmF5KG4pP1suLi50LC4uLm5dOlwiZnVuY3Rpb25cIj09PXR5cGVvZiBuPygwLHUubEUpKG4odCkpOnQ7Y29uc3QgaT1mdW5jdGlvbihlKXtjb25zdCB0PXt9O3JldHVybiBlLmZvckVhY2goKGU9Pntjb25zdHtuYW1lOm59PWUscj10W25dO3ImJiFyLmlzRGVmYXVsdEluc3RhbmNlJiZlLmlzRGVmYXVsdEluc3RhbmNlfHwodFtuXT1lKX0pKSxPYmplY3Qua2V5cyh0KS5tYXAoKGU9PnRbZV0pKX0ociksbz1mdW5jdGlvbihlLHQpe2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKWlmKCEwPT09dChlW25dKSlyZXR1cm4gbjtyZXR1cm4tMX0oaSwoZT0+XCJEZWJ1Z1wiPT09ZS5uYW1lKSk7aWYoLTEhPT1vKXtjb25zdFtlXT1pLnNwbGljZShvLDEpO2kucHVzaChlKX1yZXR1cm4gaX1mdW5jdGlvbiBJZShlLHQpe3RbZS5uYW1lXT1lLC0xPT09eWUuaW5kZXhPZihlLm5hbWUpJiYoZS5zZXR1cE9uY2UoVCxOKSx5ZS5wdXNoKGUubmFtZSksKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKGBJbnRlZ3JhdGlvbiBpbnN0YWxsZWQ6ICR7ZS5uYW1lfWApKX12YXIgT2U9big1MjcwMSk7ZnVuY3Rpb24gQWUoZSx0LG4scil7Y29uc3R7bm9ybWFsaXplRGVwdGg6aT0zLG5vcm1hbGl6ZU1heEJyZWFkdGg6bz0xZTN9PWUsYT17Li4udCxldmVudF9pZDp0LmV2ZW50X2lkfHxuLmV2ZW50X2lkfHwoMCx1LkRNKSgpLHRpbWVzdGFtcDp0LnRpbWVzdGFtcHx8KDAsaC55VykoKX0scz1uLmludGVncmF0aW9uc3x8ZS5pbnRlZ3JhdGlvbnMubWFwKChlPT5lLm5hbWUpKTshZnVuY3Rpb24oZSx0KXtjb25zdHtlbnZpcm9ubWVudDpuLHJlbGVhc2U6cixkaXN0OmksbWF4VmFsdWVMZW5ndGg6bz0yNTB9PXQ7XCJlbnZpcm9ubWVudFwiaW4gZXx8KGUuZW52aXJvbm1lbnQ9XCJlbnZpcm9ubWVudFwiaW4gdD9uOm0pO3ZvaWQgMD09PWUucmVsZWFzZSYmdm9pZCAwIT09ciYmKGUucmVsZWFzZT1yKTt2b2lkIDA9PT1lLmRpc3QmJnZvaWQgMCE9PWkmJihlLmRpc3Q9aSk7ZS5tZXNzYWdlJiYoZS5tZXNzYWdlPSgwLGwuJEcpKGUubWVzc2FnZSxvKSk7Y29uc3QgYT1lLmV4Y2VwdGlvbiYmZS5leGNlcHRpb24udmFsdWVzJiZlLmV4Y2VwdGlvbi52YWx1ZXNbMF07YSYmYS52YWx1ZSYmKGEudmFsdWU9KDAsbC4kRykoYS52YWx1ZSxvKSk7Y29uc3Qgcz1lLnJlcXVlc3Q7cyYmcy51cmwmJihzLnVybD0oMCxsLiRHKShzLnVybCxvKSl9KGEsZSksZnVuY3Rpb24oZSx0KXt0Lmxlbmd0aD4wJiYoZS5zZGs9ZS5zZGt8fHt9LGUuc2RrLmludGVncmF0aW9ucz1bLi4uZS5zZGsuaW50ZWdyYXRpb25zfHxbXSwuLi50XSl9KGEscyksdm9pZCAwPT09dC50eXBlJiZmdW5jdGlvbihlLHQpe2NvbnN0IG49Zy5uMi5fc2VudHJ5RGVidWdJZHM7aWYoIW4pcmV0dXJuO2xldCByO2NvbnN0IGk9Q2UuZ2V0KHQpO2k/cj1pOihyPW5ldyBNYXAsQ2Uuc2V0KHQscikpO2NvbnN0IG89T2JqZWN0LmtleXMobikucmVkdWNlKCgoZSxpKT0+e2xldCBvO2NvbnN0IGE9ci5nZXQoaSk7YT9vPWE6KG89dChpKSxyLnNldChpLG8pKTtmb3IobGV0IHQ9by5sZW5ndGgtMTt0Pj0wO3QtLSl7Y29uc3Qgcj1vW3RdO2lmKHIuZmlsZW5hbWUpe2Vbci5maWxlbmFtZV09bltpXTticmVha319cmV0dXJuIGV9KSx7fSksYT1uZXcgU2V0O3RyeXtlLmV4Y2VwdGlvbi52YWx1ZXMuZm9yRWFjaCgoZT0+e2Uuc3RhY2t0cmFjZS5mcmFtZXMuZm9yRWFjaCgoZT0+e2UuZmlsZW5hbWUmJmEuYWRkKGUuZmlsZW5hbWUpfSkpfSkpfWNhdGNoKGMpe31lLmRlYnVnX21ldGE9ZS5kZWJ1Z19tZXRhfHx7fSxlLmRlYnVnX21ldGEuaW1hZ2VzPWUuZGVidWdfbWV0YS5pbWFnZXN8fFtdO2NvbnN0IHM9ZS5kZWJ1Z19tZXRhLmltYWdlczthLmZvckVhY2goKGU9PntvW2VdJiZzLnB1c2goe3R5cGU6XCJzb3VyY2VtYXBcIixjb2RlX2ZpbGU6ZSxkZWJ1Z19pZDpvW2VdfSl9KSl9KGEsZS5zdGFja1BhcnNlcik7bGV0IGM9cjtuLmNhcHR1cmVDb250ZXh0JiYoYz1TLmNsb25lKGMpLnVwZGF0ZShuLmNhcHR1cmVDb250ZXh0KSk7bGV0IGQ9KDAsXy5XRCkoYSk7aWYoYyl7aWYoYy5nZXRBdHRhY2htZW50cyl7Y29uc3QgZT1bLi4ubi5hdHRhY2htZW50c3x8W10sLi4uYy5nZXRBdHRhY2htZW50cygpXTtlLmxlbmd0aCYmKG4uYXR0YWNobWVudHM9ZSl9ZD1jLmFwcGx5VG9FdmVudChhLG4pfXJldHVybiBkLnRoZW4oKGU9PlwibnVtYmVyXCI9PT10eXBlb2YgaSYmaT4wP2Z1bmN0aW9uKGUsdCxuKXtpZighZSlyZXR1cm4gbnVsbDtjb25zdCByPXsuLi5lLC4uLmUuYnJlYWRjcnVtYnMmJnticmVhZGNydW1iczplLmJyZWFkY3J1bWJzLm1hcCgoZT0+KHsuLi5lLC4uLmUuZGF0YSYme2RhdGE6KDAsT2UuRnYpKGUuZGF0YSx0LG4pfX0pKSl9LC4uLmUudXNlciYme3VzZXI6KDAsT2UuRnYpKGUudXNlcix0LG4pfSwuLi5lLmNvbnRleHRzJiZ7Y29udGV4dHM6KDAsT2UuRnYpKGUuY29udGV4dHMsdCxuKX0sLi4uZS5leHRyYSYme2V4dHJhOigwLE9lLkZ2KShlLmV4dHJhLHQsbil9fTtlLmNvbnRleHRzJiZlLmNvbnRleHRzLnRyYWNlJiZyLmNvbnRleHRzJiYoci5jb250ZXh0cy50cmFjZT1lLmNvbnRleHRzLnRyYWNlLGUuY29udGV4dHMudHJhY2UuZGF0YSYmKHIuY29udGV4dHMudHJhY2UuZGF0YT0oMCxPZS5GdikoZS5jb250ZXh0cy50cmFjZS5kYXRhLHQsbikpKTtlLnNwYW5zJiYoci5zcGFucz1lLnNwYW5zLm1hcCgoZT0+KGUuZGF0YSYmKGUuZGF0YT0oMCxPZS5GdikoZS5kYXRhLHQsbikpLGUpKSkpO3JldHVybiByfShlLGksbyk6ZSkpfWNvbnN0IENlPW5ldyBXZWFrTWFwO2NvbnN0IE5lPVwiTm90IGNhcHR1cmluZyBleGNlcHRpb24gYmVjYXVzZSBpdCdzIGFscmVhZHkgYmVlbiBjYXB0dXJlZC5cIjtjbGFzcyBrZXtfX2luaXQoKXt0aGlzLl9pbnRlZ3JhdGlvbnM9e319X19pbml0Migpe3RoaXMuX2ludGVncmF0aW9uc0luaXRpYWxpemVkPSExfV9faW5pdDMoKXt0aGlzLl9udW1Qcm9jZXNzaW5nPTB9X19pbml0NCgpe3RoaXMuX291dGNvbWVzPXt9fV9faW5pdDUoKXt0aGlzLl9ob29rcz17fX1jb25zdHJ1Y3RvcihlKXtpZihrZS5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksa2UucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKSxrZS5wcm90b3R5cGUuX19pbml0My5jYWxsKHRoaXMpLGtlLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyksa2UucHJvdG90eXBlLl9faW5pdDUuY2FsbCh0aGlzKSx0aGlzLl9vcHRpb25zPWUsZS5kc24pe3RoaXMuX2Rzbj0oMCxkZS52SykoZS5kc24pO2NvbnN0IHQ9ZmUodGhpcy5fZHNuLGUpO3RoaXMuX3RyYW5zcG9ydD1lLnRyYW5zcG9ydCh7cmVjb3JkRHJvcHBlZEV2ZW50OnRoaXMucmVjb3JkRHJvcHBlZEV2ZW50LmJpbmQodGhpcyksLi4uZS50cmFuc3BvcnRPcHRpb25zLHVybDp0fSl9ZWxzZShcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLndhcm4oXCJObyBEU04gcHJvdmlkZWQsIGNsaWVudCB3aWxsIG5vdCBkbyBhbnl0aGluZy5cIil9Y2FwdHVyZUV4Y2VwdGlvbihlLHQsbil7aWYoKDAsdS5ZTykoZSkpcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKE5lKSk7bGV0IHI9dCYmdC5ldmVudF9pZDtyZXR1cm4gdGhpcy5fcHJvY2Vzcyh0aGlzLmV2ZW50RnJvbUV4Y2VwdGlvbihlLHQpLnRoZW4oKGU9PnRoaXMuX2NhcHR1cmVFdmVudChlLHQsbikpKS50aGVuKChlPT57cj1lfSkpKSxyfWNhcHR1cmVNZXNzYWdlKGUsdCxuLHIpe2xldCBpPW4mJm4uZXZlbnRfaWQ7Y29uc3Qgbz0oMCx2LnB0KShlKT90aGlzLmV2ZW50RnJvbU1lc3NhZ2UoU3RyaW5nKGUpLHQsbik6dGhpcy5ldmVudEZyb21FeGNlcHRpb24oZSxuKTtyZXR1cm4gdGhpcy5fcHJvY2VzcyhvLnRoZW4oKGU9PnRoaXMuX2NhcHR1cmVFdmVudChlLG4scikpKS50aGVuKChlPT57aT1lfSkpKSxpfWNhcHR1cmVFdmVudChlLHQsbil7aWYodCYmdC5vcmlnaW5hbEV4Y2VwdGlvbiYmKDAsdS5ZTykodC5vcmlnaW5hbEV4Y2VwdGlvbikpcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKE5lKSk7bGV0IHI9dCYmdC5ldmVudF9pZDtyZXR1cm4gdGhpcy5fcHJvY2Vzcyh0aGlzLl9jYXB0dXJlRXZlbnQoZSx0LG4pLnRoZW4oKGU9PntyPWV9KSkpLHJ9Y2FwdHVyZVNlc3Npb24oZSl7dGhpcy5faXNFbmFibGVkKCk/XCJzdHJpbmdcIiE9PXR5cGVvZiBlLnJlbGVhc2U/KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihcIkRpc2NhcmRlZCBzZXNzaW9uIGJlY2F1c2Ugb2YgbWlzc2luZyBvciBub24tc3RyaW5nIHJlbGVhc2VcIik6KHRoaXMuc2VuZFNlc3Npb24oZSksYihlLHtpbml0OiExfSkpOihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLndhcm4oXCJTREsgbm90IGVuYWJsZWQsIHdpbGwgbm90IGNhcHR1cmUgc2Vzc2lvbi5cIil9Z2V0RHNuKCl7cmV0dXJuIHRoaXMuX2Rzbn1nZXRPcHRpb25zKCl7cmV0dXJuIHRoaXMuX29wdGlvbnN9Z2V0U2RrTWV0YWRhdGEoKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5fbWV0YWRhdGF9Z2V0VHJhbnNwb3J0KCl7cmV0dXJuIHRoaXMuX3RyYW5zcG9ydH1mbHVzaChlKXtjb25zdCB0PXRoaXMuX3RyYW5zcG9ydDtyZXR1cm4gdD90aGlzLl9pc0NsaWVudERvbmVQcm9jZXNzaW5nKGUpLnRoZW4oKG49PnQuZmx1c2goZSkudGhlbigoZT0+biYmZSkpKSk6KDAsXy5XRCkoITApfWNsb3NlKGUpe3JldHVybiB0aGlzLmZsdXNoKGUpLnRoZW4oKGU9Pih0aGlzLmdldE9wdGlvbnMoKS5lbmFibGVkPSExLGUpKSl9c2V0dXBJbnRlZ3JhdGlvbnMoKXt0aGlzLl9pc0VuYWJsZWQoKSYmIXRoaXMuX2ludGVncmF0aW9uc0luaXRpYWxpemVkJiYodGhpcy5faW50ZWdyYXRpb25zPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9e307cmV0dXJuIGUuZm9yRWFjaCgoZT0+e2UmJkllKGUsdCl9KSksdH0odGhpcy5fb3B0aW9ucy5pbnRlZ3JhdGlvbnMpLHRoaXMuX2ludGVncmF0aW9uc0luaXRpYWxpemVkPSEwKX1nZXRJbnRlZ3JhdGlvbkJ5SWQoZSl7cmV0dXJuIHRoaXMuX2ludGVncmF0aW9uc1tlXX1nZXRJbnRlZ3JhdGlvbihlKXt0cnl7cmV0dXJuIHRoaXMuX2ludGVncmF0aW9uc1tlLmlkXXx8bnVsbH1jYXRjaCh0KXtyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKGBDYW5ub3QgcmV0cmlldmUgaW50ZWdyYXRpb24gJHtlLmlkfSBmcm9tIHRoZSBjdXJyZW50IENsaWVudGApLG51bGx9fWFkZEludGVncmF0aW9uKGUpe0llKGUsdGhpcy5faW50ZWdyYXRpb25zKX1zZW5kRXZlbnQoZSx0PXt9KXtpZih0aGlzLl9kc24pe2xldCBuPWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IGk9KDAsYWUuSFkpKG4pLG89ZS50eXBlJiZcInJlcGxheV9ldmVudFwiIT09ZS50eXBlP2UudHlwZTpcImV2ZW50XCI7IWZ1bmN0aW9uKGUsdCl7dCYmKGUuc2RrPWUuc2RrfHx7fSxlLnNkay5uYW1lPWUuc2RrLm5hbWV8fHQubmFtZSxlLnNkay52ZXJzaW9uPWUuc2RrLnZlcnNpb258fHQudmVyc2lvbixlLnNkay5pbnRlZ3JhdGlvbnM9Wy4uLmUuc2RrLmludGVncmF0aW9uc3x8W10sLi4udC5pbnRlZ3JhdGlvbnN8fFtdXSxlLnNkay5wYWNrYWdlcz1bLi4uZS5zZGsucGFja2FnZXN8fFtdLC4uLnQucGFja2FnZXN8fFtdXSl9KGUsbiYmbi5zZGspO2NvbnN0IGE9KDAsYWUuQ2QpKGUsaSxyLHQpO2RlbGV0ZSBlLnNka1Byb2Nlc3NpbmdNZXRhZGF0YTtjb25zdCBzPVt7dHlwZTpvfSxlXTtyZXR1cm4oMCxhZS5KZCkoYSxbc10pfShlLHRoaXMuX2Rzbix0aGlzLl9vcHRpb25zLl9tZXRhZGF0YSx0aGlzLl9vcHRpb25zLnR1bm5lbCk7Zm9yKGNvbnN0IGUgb2YgdC5hdHRhY2htZW50c3x8W10pbj0oMCxhZS5CTykobiwoMCxhZS56USkoZSx0aGlzLl9vcHRpb25zLnRyYW5zcG9ydE9wdGlvbnMmJnRoaXMuX29wdGlvbnMudHJhbnNwb3J0T3B0aW9ucy50ZXh0RW5jb2RlcikpO2NvbnN0IHI9dGhpcy5fc2VuZEVudmVsb3BlKG4pO3ImJnIudGhlbigodD0+dGhpcy5lbWl0KFwiYWZ0ZXJTZW5kRXZlbnRcIixlLHQpKSxudWxsKX19c2VuZFNlc3Npb24oZSl7aWYodGhpcy5fZHNuKXtjb25zdCB0PWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IGk9KDAsYWUuSFkpKG4pLG89e3NlbnRfYXQ6KG5ldyBEYXRlKS50b0lTT1N0cmluZygpLC4uLmkmJntzZGs6aX0sLi4uISFyJiZ7ZHNuOigwLGRlLlJBKSh0KX19LGE9XCJhZ2dyZWdhdGVzXCJpbiBlP1t7dHlwZTpcInNlc3Npb25zXCJ9LGVdOlt7dHlwZTpcInNlc3Npb25cIn0sZV07cmV0dXJuKDAsYWUuSmQpKG8sW2FdKX0oZSx0aGlzLl9kc24sdGhpcy5fb3B0aW9ucy5fbWV0YWRhdGEsdGhpcy5fb3B0aW9ucy50dW5uZWwpO3RoaXMuX3NlbmRFbnZlbG9wZSh0KX19cmVjb3JkRHJvcHBlZEV2ZW50KGUsdCxuKXtpZih0aGlzLl9vcHRpb25zLnNlbmRDbGllbnRSZXBvcnRzKXtjb25zdCBuPWAke2V9OiR7dH1gOyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhgQWRkaW5nIG91dGNvbWU6IFwiJHtufVwiYCksdGhpcy5fb3V0Y29tZXNbbl09dGhpcy5fb3V0Y29tZXNbbl0rMXx8MX19b24oZSx0KXt0aGlzLl9ob29rc1tlXXx8KHRoaXMuX2hvb2tzW2VdPVtdKSx0aGlzLl9ob29rc1tlXS5wdXNoKHQpfWVtaXQoZSwuLi50KXt0aGlzLl9ob29rc1tlXSYmdGhpcy5faG9va3NbZV0uZm9yRWFjaCgoZT0+ZSguLi50KSkpfV91cGRhdGVTZXNzaW9uRnJvbUV2ZW50KGUsdCl7bGV0IG49ITEscj0hMTtjb25zdCBpPXQuZXhjZXB0aW9uJiZ0LmV4Y2VwdGlvbi52YWx1ZXM7aWYoaSl7cj0hMDtmb3IoY29uc3QgZSBvZiBpKXtjb25zdCB0PWUubWVjaGFuaXNtO2lmKHQmJiExPT09dC5oYW5kbGVkKXtuPSEwO2JyZWFrfX19Y29uc3Qgbz1cIm9rXCI9PT1lLnN0YXR1czsobyYmMD09PWUuZXJyb3JzfHxvJiZuKSYmKGIoZSx7Li4ubiYme3N0YXR1czpcImNyYXNoZWRcIn0sZXJyb3JzOmUuZXJyb3JzfHxOdW1iZXIocnx8bil9KSx0aGlzLmNhcHR1cmVTZXNzaW9uKGUpKX1faXNDbGllbnREb25lUHJvY2Vzc2luZyhlKXtyZXR1cm4gbmV3IF8uY1coKHQ9PntsZXQgbj0wO2NvbnN0IHI9c2V0SW50ZXJ2YWwoKCgpPT57MD09dGhpcy5fbnVtUHJvY2Vzc2luZz8oY2xlYXJJbnRlcnZhbChyKSx0KCEwKSk6KG4rPTEsZSYmbj49ZSYmKGNsZWFySW50ZXJ2YWwociksdCghMSkpKX0pLDEpfSkpfV9pc0VuYWJsZWQoKXtyZXR1cm4hMSE9PXRoaXMuZ2V0T3B0aW9ucygpLmVuYWJsZWQmJnZvaWQgMCE9PXRoaXMuX2Rzbn1fcHJlcGFyZUV2ZW50KGUsdCxuKXtjb25zdCByPXRoaXMuZ2V0T3B0aW9ucygpLGk9T2JqZWN0LmtleXModGhpcy5faW50ZWdyYXRpb25zKTtyZXR1cm4hdC5pbnRlZ3JhdGlvbnMmJmkubGVuZ3RoPjAmJih0LmludGVncmF0aW9ucz1pKSxBZShyLGUsdCxuKX1fY2FwdHVyZUV2ZW50KGUsdD17fSxuKXtyZXR1cm4gdGhpcy5fcHJvY2Vzc0V2ZW50KGUsdCxuKS50aGVuKChlPT5lLmV2ZW50X2lkKSwoZT0+e2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXyl7Y29uc3QgdD1lO1wibG9nXCI9PT10LmxvZ0xldmVsP2Mua2cubG9nKHQubWVzc2FnZSk6Yy5rZy53YXJuKHQpfX0pKX1fcHJvY2Vzc0V2ZW50KGUsdCxuKXtjb25zdCByPXRoaXMuZ2V0T3B0aW9ucygpLHtzYW1wbGVSYXRlOml9PXI7aWYoIXRoaXMuX2lzRW5hYmxlZCgpKXJldHVybigwLF8uJDIpKG5ldyBjZS5iKFwiU0RLIG5vdCBlbmFibGVkLCB3aWxsIG5vdCBjYXB0dXJlIGV2ZW50LlwiLFwibG9nXCIpKTtjb25zdCBvPVJlKGUpLGE9UGUoZSkscz1lLnR5cGV8fFwiZXJyb3JcIixjPWBiZWZvcmUgc2VuZCBmb3IgdHlwZSBcXGAke3N9XFxgYDtpZihhJiZcIm51bWJlclwiPT09dHlwZW9mIGkmJk1hdGgucmFuZG9tKCk+aSlyZXR1cm4gdGhpcy5yZWNvcmREcm9wcGVkRXZlbnQoXCJzYW1wbGVfcmF0ZVwiLFwiZXJyb3JcIixlKSwoMCxfLiQyKShuZXcgY2UuYihgRGlzY2FyZGluZyBldmVudCBiZWNhdXNlIGl0J3Mgbm90IGluY2x1ZGVkIGluIHRoZSByYW5kb20gc2FtcGxlIChzYW1wbGluZyByYXRlID0gJHtpfSlgLFwibG9nXCIpKTtjb25zdCB1PVwicmVwbGF5X2V2ZW50XCI9PT1zP1wicmVwbGF5XCI6cztyZXR1cm4gdGhpcy5fcHJlcGFyZUV2ZW50KGUsdCxuKS50aGVuKChuPT57aWYobnVsbD09PW4pdGhyb3cgdGhpcy5yZWNvcmREcm9wcGVkRXZlbnQoXCJldmVudF9wcm9jZXNzb3JcIix1LGUpLG5ldyBjZS5iKFwiQW4gZXZlbnQgcHJvY2Vzc29yIHJldHVybmVkIGBudWxsYCwgd2lsbCBub3Qgc2VuZCBldmVudC5cIixcImxvZ1wiKTtpZih0LmRhdGEmJiEwPT09dC5kYXRhLl9fc2VudHJ5X18pcmV0dXJuIG47Y29uc3QgaT1mdW5jdGlvbihlLHQsbil7Y29uc3R7YmVmb3JlU2VuZDpyLGJlZm9yZVNlbmRUcmFuc2FjdGlvbjppfT1lO2lmKFBlKHQpJiZyKXJldHVybiByKHQsbik7aWYoUmUodCkmJmkpcmV0dXJuIGkodCxuKTtyZXR1cm4gdH0ocixuLHQpO3JldHVybiBmdW5jdGlvbihlLHQpe2NvbnN0IG49YCR7dH0gbXVzdCByZXR1cm4gXFxgbnVsbFxcYCBvciBhIHZhbGlkIGV2ZW50LmA7aWYoKDAsdi5KOCkoZSkpcmV0dXJuIGUudGhlbigoZT0+e2lmKCEoMCx2LlBPKShlKSYmbnVsbCE9PWUpdGhyb3cgbmV3IGNlLmIobik7cmV0dXJuIGV9KSwoZT0+e3Rocm93IG5ldyBjZS5iKGAke3R9IHJlamVjdGVkIHdpdGggJHtlfWApfSkpO2lmKCEoMCx2LlBPKShlKSYmbnVsbCE9PWUpdGhyb3cgbmV3IGNlLmIobik7cmV0dXJuIGV9KGksYyl9KSkudGhlbigocj0+e2lmKG51bGw9PT1yKXRocm93IHRoaXMucmVjb3JkRHJvcHBlZEV2ZW50KFwiYmVmb3JlX3NlbmRcIix1LGUpLG5ldyBjZS5iKGAke2N9IHJldHVybmVkIFxcYG51bGxcXGAsIHdpbGwgbm90IHNlbmQgZXZlbnQuYCxcImxvZ1wiKTtjb25zdCBpPW4mJm4uZ2V0U2Vzc2lvbigpOyFvJiZpJiZ0aGlzLl91cGRhdGVTZXNzaW9uRnJvbUV2ZW50KGkscik7Y29uc3QgYT1yLnRyYW5zYWN0aW9uX2luZm87aWYobyYmYSYmci50cmFuc2FjdGlvbiE9PWUudHJhbnNhY3Rpb24pe2NvbnN0IGU9XCJjdXN0b21cIjtyLnRyYW5zYWN0aW9uX2luZm89ey4uLmEsc291cmNlOmV9fXJldHVybiB0aGlzLnNlbmRFdmVudChyLHQpLHJ9KSkudGhlbihudWxsLChlPT57aWYoZSBpbnN0YW5jZW9mIGNlLmIpdGhyb3cgZTt0aHJvdyB0aGlzLmNhcHR1cmVFeGNlcHRpb24oZSx7ZGF0YTp7X19zZW50cnlfXzohMH0sb3JpZ2luYWxFeGNlcHRpb246ZX0pLG5ldyBjZS5iKGBFdmVudCBwcm9jZXNzaW5nIHBpcGVsaW5lIHRocmV3IGFuIGVycm9yLCBvcmlnaW5hbCBldmVudCB3aWxsIG5vdCBiZSBzZW50LiBEZXRhaWxzIGhhdmUgYmVlbiBzZW50IGFzIGEgbmV3IGV2ZW50LlxcblJlYXNvbjogJHtlfWApfSkpfV9wcm9jZXNzKGUpe3RoaXMuX251bVByb2Nlc3NpbmcrKyxlLnRoZW4oKGU9Pih0aGlzLl9udW1Qcm9jZXNzaW5nLS0sZSkpLChlPT4odGhpcy5fbnVtUHJvY2Vzc2luZy0tLGUpKSl9X3NlbmRFbnZlbG9wZShlKXtpZih0aGlzLl90cmFuc3BvcnQmJnRoaXMuX2RzbilyZXR1cm4gdGhpcy5lbWl0KFwiYmVmb3JlRW52ZWxvcGVcIixlKSx0aGlzLl90cmFuc3BvcnQuc2VuZChlKS50aGVuKG51bGwsKGU9PnsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5lcnJvcihcIkVycm9yIHdoaWxlIHNlbmRpbmcgZXZlbnQ6XCIsZSl9KSk7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cuZXJyb3IoXCJUcmFuc3BvcnQgZGlzYWJsZWRcIil9X2NsZWFyT3V0Y29tZXMoKXtjb25zdCBlPXRoaXMuX291dGNvbWVzO3JldHVybiB0aGlzLl9vdXRjb21lcz17fSxPYmplY3Qua2V5cyhlKS5tYXAoKHQ9Pntjb25zdFtuLHJdPXQuc3BsaXQoXCI6XCIpO3JldHVybntyZWFzb246bixjYXRlZ29yeTpyLHF1YW50aXR5OmVbdF19fSkpfX1mdW5jdGlvbiBQZShlKXtyZXR1cm4gdm9pZCAwPT09ZS50eXBlfWZ1bmN0aW9uIFJlKGUpe3JldHVyblwidHJhbnNhY3Rpb25cIj09PWUudHlwZX12YXIgd2U9big0OTQyMSksTGU9big4OTI5Nik7ZnVuY3Rpb24gQmUoZSx0KXtjb25zdCBuPURlKGUsdCkscj17dHlwZTp0JiZ0Lm5hbWUsdmFsdWU6eGUodCl9O3JldHVybiBuLmxlbmd0aCYmKHIuc3RhY2t0cmFjZT17ZnJhbWVzOm59KSx2b2lkIDA9PT1yLnR5cGUmJlwiXCI9PT1yLnZhbHVlJiYoci52YWx1ZT1cIlVucmVjb3ZlcmFibGUgZXJyb3IgY2F1Z2h0XCIpLHJ9ZnVuY3Rpb24gTWUoZSx0KXtyZXR1cm57ZXhjZXB0aW9uOnt2YWx1ZXM6W0JlKGUsdCldfX19ZnVuY3Rpb24gRGUoZSx0KXtjb25zdCBuPXQuc3RhY2t0cmFjZXx8dC5zdGFja3x8XCJcIixyPWZ1bmN0aW9uKGUpe2lmKGUpe2lmKFwibnVtYmVyXCI9PT10eXBlb2YgZS5mcmFtZXNUb1BvcClyZXR1cm4gZS5mcmFtZXNUb1BvcDtpZihqZS50ZXN0KGUubWVzc2FnZSkpcmV0dXJuIDF9cmV0dXJuIDB9KHQpO3RyeXtyZXR1cm4gZShuLHIpfWNhdGNoKGkpe31yZXR1cm5bXX1jb25zdCBqZT0vTWluaWZpZWQgUmVhY3QgZXJyb3IgI1xcZCs7L2k7ZnVuY3Rpb24geGUoZSl7Y29uc3QgdD1lJiZlLm1lc3NhZ2U7cmV0dXJuIHQ/dC5lcnJvciYmXCJzdHJpbmdcIj09PXR5cGVvZiB0LmVycm9yLm1lc3NhZ2U/dC5lcnJvci5tZXNzYWdlOnQ6XCJObyBlcnJvciBtZXNzYWdlXCJ9ZnVuY3Rpb24gVWUoZSx0LG4scil7Y29uc3QgaT1IZShlLHQsbiYmbi5zeW50aGV0aWNFeGNlcHRpb258fHZvaWQgMCxyKTtyZXR1cm4oMCx1LkVHKShpKSxpLmxldmVsPVwiZXJyb3JcIixuJiZuLmV2ZW50X2lkJiYoaS5ldmVudF9pZD1uLmV2ZW50X2lkKSwoMCxfLldEKShpKX1mdW5jdGlvbiBGZShlLHQsbj1cImluZm9cIixyLGkpe2NvbnN0IG89R2UoZSx0LHImJnIuc3ludGhldGljRXhjZXB0aW9ufHx2b2lkIDAsaSk7cmV0dXJuIG8ubGV2ZWw9bixyJiZyLmV2ZW50X2lkJiYoby5ldmVudF9pZD1yLmV2ZW50X2lkKSwoMCxfLldEKShvKX1mdW5jdGlvbiBIZShlLHQsbixyLGkpe2xldCBhO2lmKCgwLHYuVlcpKHQpJiZ0LmVycm9yKXtyZXR1cm4gTWUoZSx0LmVycm9yKX1pZigoMCx2LlRYKSh0KXx8KDAsdi5mbSkodCkpe2NvbnN0IGk9dDtpZihcInN0YWNrXCJpbiB0KWE9TWUoZSx0KTtlbHNle2NvbnN0IHQ9aS5uYW1lfHwoKDAsdi5UWCkoaSk/XCJET01FcnJvclwiOlwiRE9NRXhjZXB0aW9uXCIpLG89aS5tZXNzYWdlP2Ake3R9OiAke2kubWVzc2FnZX1gOnQ7YT1HZShlLG8sbixyKSwoMCx1LkRiKShhLG8pfXJldHVyblwiY29kZVwiaW4gaSYmKGEudGFncz17Li4uYS50YWdzLFwiRE9NRXhjZXB0aW9uLmNvZGVcIjpgJHtpLmNvZGV9YH0pLGF9aWYoKDAsdi5WWikodCkpcmV0dXJuIE1lKGUsdCk7aWYoKDAsdi5QTykodCl8fCgwLHYuY08pKHQpKXtyZXR1cm4gYT1mdW5jdGlvbihlLHQsbixyKXtjb25zdCBpPU4oKS5nZXRDbGllbnQoKSxhPWkmJmkuZ2V0T3B0aW9ucygpLm5vcm1hbGl6ZURlcHRoLHM9e2V4Y2VwdGlvbjp7dmFsdWVzOlt7dHlwZTooMCx2LmNPKSh0KT90LmNvbnN0cnVjdG9yLm5hbWU6cj9cIlVuaGFuZGxlZFJlamVjdGlvblwiOlwiRXJyb3JcIix2YWx1ZTpgTm9uLUVycm9yICR7cj9cInByb21pc2UgcmVqZWN0aW9uXCI6XCJleGNlcHRpb25cIn0gY2FwdHVyZWQgd2l0aCBrZXlzOiAkeygwLG8uemYpKHQpfWB9XX0sZXh0cmE6e19fc2VyaWFsaXplZF9fOigwLE9lLlF5KSh0LGEpfX07aWYobil7Y29uc3QgdD1EZShlLG4pO3QubGVuZ3RoJiYocy5leGNlcHRpb24udmFsdWVzWzBdLnN0YWNrdHJhY2U9e2ZyYW1lczp0fSl9cmV0dXJuIHN9KGUsdCxuLGkpLCgwLHUuRUcpKGEse3N5bnRoZXRpYzohMH0pLGF9cmV0dXJuIGE9R2UoZSx0LG4sciksKDAsdS5EYikoYSxgJHt0fWAsdm9pZCAwKSwoMCx1LkVHKShhLHtzeW50aGV0aWM6ITB9KSxhfWZ1bmN0aW9uIEdlKGUsdCxuLHIpe2NvbnN0IGk9e21lc3NhZ2U6dH07aWYociYmbil7Y29uc3Qgcj1EZShlLG4pO3IubGVuZ3RoJiYoaS5leGNlcHRpb249e3ZhbHVlczpbe3ZhbHVlOnQsc3RhY2t0cmFjZTp7ZnJhbWVzOnJ9fV19KX1yZXR1cm4gaX12YXIgV2U9bigzMDM2MyksVmU9big5NTQ5NCksemU9big2NDEyKTtjb25zdCBLZT0xMDI0LFllPVwiQnJlYWRjcnVtYnNcIjtjbGFzcyBxZXtzdGF0aWMgX19pbml0U3RhdGljKCl7dGhpcy5pZD1ZZX1fX2luaXQoKXt0aGlzLm5hbWU9cWUuaWR9Y29uc3RydWN0b3IoZSl7cWUucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpLHRoaXMub3B0aW9ucz17Y29uc29sZTohMCxkb206ITAsZmV0Y2g6ITAsaGlzdG9yeTohMCxzZW50cnk6ITAseGhyOiEwLC4uLmV9fXNldHVwT25jZSgpe3RoaXMub3B0aW9ucy5jb25zb2xlJiYoMCxZLm9xKShcImNvbnNvbGVcIixaZSksdGhpcy5vcHRpb25zLmRvbSYmKDAsWS5vcSkoXCJkb21cIixmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe2xldCBuLHI9XCJvYmplY3RcIj09PXR5cGVvZiBlP2Uuc2VyaWFsaXplQXR0cmlidXRlOnZvaWQgMCxpPVwib2JqZWN0XCI9PT10eXBlb2YgZSYmXCJudW1iZXJcIj09PXR5cGVvZiBlLm1heFN0cmluZ0xlbmd0aD9lLm1heFN0cmluZ0xlbmd0aDp2b2lkIDA7aSYmaT5LZSYmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLndhcm4oYFxcYGRvbS5tYXhTdHJpbmdMZW5ndGhcXGAgY2Fubm90IGV4Y2VlZCAxMDI0LCBidXQgYSB2YWx1ZSBvZiAke2l9IHdhcyBjb25maWd1cmVkLiBTZW50cnkgd2lsbCB1c2UgMTAyNCBpbnN0ZWFkLmApLGk9S2UpLFwic3RyaW5nXCI9PT10eXBlb2YgciYmKHI9W3JdKTt0cnl7Y29uc3QgZT10LmV2ZW50O249ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiEhZS50YXJnZXR9KGUpPygwLFdlLlJ0KShlLnRhcmdldCx7a2V5QXR0cnM6cixtYXhTdHJpbmdMZW5ndGg6aX0pOigwLFdlLlJ0KShlLHtrZXlBdHRyczpyLG1heFN0cmluZ0xlbmd0aDppfSl9Y2F0Y2gobyl7bj1cIjx1bmtub3duPlwifTAhPT1uLmxlbmd0aCYmTigpLmFkZEJyZWFkY3J1bWIoe2NhdGVnb3J5OmB1aS4ke3QubmFtZX1gLG1lc3NhZ2U6bn0se2V2ZW50OnQuZXZlbnQsbmFtZTp0Lm5hbWUsZ2xvYmFsOnQuZ2xvYmFsfSl9cmV0dXJuIHR9KHRoaXMub3B0aW9ucy5kb20pKSx0aGlzLm9wdGlvbnMueGhyJiYoMCxZLm9xKShcInhoclwiLEplKSx0aGlzLm9wdGlvbnMuZmV0Y2gmJigwLFkub3EpKFwiZmV0Y2hcIixYZSksdGhpcy5vcHRpb25zLmhpc3RvcnkmJigwLFkub3EpKFwiaGlzdG9yeVwiLFFlKX1hZGRTZW50cnlCcmVhZGNydW1iKGUpe3RoaXMub3B0aW9ucy5zZW50cnkmJk4oKS5hZGRCcmVhZGNydW1iKHtjYXRlZ29yeTpcInNlbnRyeS5cIisoXCJ0cmFuc2FjdGlvblwiPT09ZS50eXBlP1widHJhbnNhY3Rpb25cIjpcImV2ZW50XCIpLGV2ZW50X2lkOmUuZXZlbnRfaWQsbGV2ZWw6ZS5sZXZlbCxtZXNzYWdlOigwLHUuakgpKGUpfSx7ZXZlbnQ6ZX0pfX1mdW5jdGlvbiBaZShlKXtmb3IobGV0IG49MDtuPGUuYXJncy5sZW5ndGg7bisrKWlmKFwicmVmPVJlZjxcIj09PWUuYXJnc1tuXSl7ZS5hcmdzW24rMV09XCJ2aWV3UmVmXCI7YnJlYWt9Y29uc3QgdD17Y2F0ZWdvcnk6XCJjb25zb2xlXCIsZGF0YTp7YXJndW1lbnRzOmUuYXJncyxsb2dnZXI6XCJjb25zb2xlXCJ9LGxldmVsOigwLFZlLlZUKShlLmxldmVsKSxtZXNzYWdlOigwLGwubkspKGUuYXJncyxcIiBcIil9O2lmKFwiYXNzZXJ0XCI9PT1lLmxldmVsKXtpZighMSE9PWUuYXJnc1swXSlyZXR1cm47dC5tZXNzYWdlPWBBc3NlcnRpb24gZmFpbGVkOiAkeygwLGwubkspKGUuYXJncy5zbGljZSgxKSxcIiBcIil8fFwiY29uc29sZS5hc3NlcnRcIn1gLHQuZGF0YS5hcmd1bWVudHM9ZS5hcmdzLnNsaWNlKDEpfU4oKS5hZGRCcmVhZGNydW1iKHQse2lucHV0OmUuYXJncyxsZXZlbDplLmxldmVsfSl9ZnVuY3Rpb24gSmUoZSl7Y29uc3R7c3RhcnRUaW1lc3RhbXA6dCxlbmRUaW1lc3RhbXA6bn09ZSxyPWUueGhyW1kueFVdO2lmKCF0fHwhbnx8IXIpcmV0dXJuO2NvbnN0e21ldGhvZDppLHVybDpvLHN0YXR1c19jb2RlOmEsYm9keTpzfT1yLGM9e21ldGhvZDppLHVybDpvLHN0YXR1c19jb2RlOmF9LHU9e3hocjplLnhocixpbnB1dDpzLHN0YXJ0VGltZXN0YW1wOnQsZW5kVGltZXN0YW1wOm59O04oKS5hZGRCcmVhZGNydW1iKHtjYXRlZ29yeTpcInhoclwiLGRhdGE6Yyx0eXBlOlwiaHR0cFwifSx1KX1mdW5jdGlvbiBYZShlKXtjb25zdHtzdGFydFRpbWVzdGFtcDp0LGVuZFRpbWVzdGFtcDpufT1lO2lmKG4mJighZS5mZXRjaERhdGEudXJsLm1hdGNoKC9zZW50cnlfa2V5Lyl8fFwiUE9TVFwiIT09ZS5mZXRjaERhdGEubWV0aG9kKSlpZihlLmVycm9yKXtjb25zdCByPWUuZmV0Y2hEYXRhLGk9e2RhdGE6ZS5lcnJvcixpbnB1dDplLmFyZ3Msc3RhcnRUaW1lc3RhbXA6dCxlbmRUaW1lc3RhbXA6bn07TigpLmFkZEJyZWFkY3J1bWIoe2NhdGVnb3J5OlwiZmV0Y2hcIixkYXRhOnIsbGV2ZWw6XCJlcnJvclwiLHR5cGU6XCJodHRwXCJ9LGkpfWVsc2V7Y29uc3Qgcj17Li4uZS5mZXRjaERhdGEsc3RhdHVzX2NvZGU6ZS5yZXNwb25zZSYmZS5yZXNwb25zZS5zdGF0dXN9LGk9e2lucHV0OmUuYXJncyxyZXNwb25zZTplLnJlc3BvbnNlLHN0YXJ0VGltZXN0YW1wOnQsZW5kVGltZXN0YW1wOm59O04oKS5hZGRCcmVhZGNydW1iKHtjYXRlZ29yeTpcImZldGNoXCIsZGF0YTpyLHR5cGU6XCJodHRwXCJ9LGkpfX1mdW5jdGlvbiBRZShlKXtsZXQgdD1lLmZyb20sbj1lLnRvO2NvbnN0IHI9KDAsemUuZW4pKHZlLmxvY2F0aW9uLmhyZWYpO2xldCBpPSgwLHplLmVuKSh0KTtjb25zdCBvPSgwLHplLmVuKShuKTtpLnBhdGh8fChpPXIpLHIucHJvdG9jb2w9PT1vLnByb3RvY29sJiZyLmhvc3Q9PT1vLmhvc3QmJihuPW8ucmVsYXRpdmUpLHIucHJvdG9jb2w9PT1pLnByb3RvY29sJiZyLmhvc3Q9PT1pLmhvc3QmJih0PWkucmVsYXRpdmUpLE4oKS5hZGRCcmVhZGNydW1iKHtjYXRlZ29yeTpcIm5hdmlnYXRpb25cIixkYXRhOntmcm9tOnQsdG86bn19KX1mdW5jdGlvbiAkZShlLHttZXRhZGF0YTp0LHR1bm5lbDpuLGRzbjpyfSl7Y29uc3QgaT17ZXZlbnRfaWQ6ZS5ldmVudF9pZCxzZW50X2F0OihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSwuLi50JiZ0LnNkayYme3Nkazp7bmFtZTp0LnNkay5uYW1lLHZlcnNpb246dC5zZGsudmVyc2lvbn19LC4uLiEhbiYmISFyJiZ7ZHNuOigwLGRlLlJBKShyKX19LG89ZnVuY3Rpb24oZSl7cmV0dXJuW3t0eXBlOlwidXNlcl9yZXBvcnRcIn0sZV19KGUpO3JldHVybigwLGFlLkpkKShpLFtvXSl9cWUuX19pbml0U3RhdGljKCk7Y2xhc3MgZXQgZXh0ZW5kcyBrZXtjb25zdHJ1Y3RvcihlKXtjb25zdCB0PXZlLlNFTlRSWV9TREtfU09VUkNFfHwoMCx3ZS5TKSgpO2UuX21ldGFkYXRhPWUuX21ldGFkYXRhfHx7fSxlLl9tZXRhZGF0YS5zZGs9ZS5fbWV0YWRhdGEuc2RrfHx7bmFtZTpcInNlbnRyeS5qYXZhc2NyaXB0LmJyb3dzZXJcIixwYWNrYWdlczpbe25hbWU6YCR7dH06QHNlbnRyeS9icm93c2VyYCx2ZXJzaW9uOkx9XSx2ZXJzaW9uOkx9LHN1cGVyKGUpLGUuc2VuZENsaWVudFJlcG9ydHMmJnZlLmRvY3VtZW50JiZ2ZS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCgoKT0+e1wiaGlkZGVuXCI9PT12ZS5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGUmJnRoaXMuX2ZsdXNoT3V0Y29tZXMoKX0pKX1ldmVudEZyb21FeGNlcHRpb24oZSx0KXtyZXR1cm4gVWUodGhpcy5fb3B0aW9ucy5zdGFja1BhcnNlcixlLHQsdGhpcy5fb3B0aW9ucy5hdHRhY2hTdGFja3RyYWNlKX1ldmVudEZyb21NZXNzYWdlKGUsdD1cImluZm9cIixuKXtyZXR1cm4gRmUodGhpcy5fb3B0aW9ucy5zdGFja1BhcnNlcixlLHQsbix0aGlzLl9vcHRpb25zLmF0dGFjaFN0YWNrdHJhY2UpfXNlbmRFdmVudChlLHQpe2NvbnN0IG49dGhpcy5nZXRJbnRlZ3JhdGlvbkJ5SWQoWWUpO24mJm4uYWRkU2VudHJ5QnJlYWRjcnVtYiYmbi5hZGRTZW50cnlCcmVhZGNydW1iKGUpLHN1cGVyLnNlbmRFdmVudChlLHQpfWNhcHR1cmVVc2VyRmVlZGJhY2soZSl7aWYoIXRoaXMuX2lzRW5hYmxlZCgpKXJldHVybiB2b2lkKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLndhcm4oXCJTREsgbm90IGVuYWJsZWQsIHdpbGwgbm90IGNhcHR1cmUgdXNlciBmZWVkYmFjay5cIikpO2NvbnN0IHQ9JGUoZSx7bWV0YWRhdGE6dGhpcy5nZXRTZGtNZXRhZGF0YSgpLGRzbjp0aGlzLmdldERzbigpLHR1bm5lbDp0aGlzLmdldE9wdGlvbnMoKS50dW5uZWx9KTt0aGlzLl9zZW5kRW52ZWxvcGUodCl9X3ByZXBhcmVFdmVudChlLHQsbil7cmV0dXJuIGUucGxhdGZvcm09ZS5wbGF0Zm9ybXx8XCJqYXZhc2NyaXB0XCIsc3VwZXIuX3ByZXBhcmVFdmVudChlLHQsbil9X2ZsdXNoT3V0Y29tZXMoKXtjb25zdCBlPXRoaXMuX2NsZWFyT3V0Y29tZXMoKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKFwiTm8gb3V0Y29tZXMgdG8gc2VuZFwiKSk7aWYoIXRoaXMuX2RzbilyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJObyBkc24gcHJvdmlkZWQsIHdpbGwgbm90IHNlbmQgb3V0Y29tZXNcIikpOyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIlNlbmRpbmcgb3V0Y29tZXM6XCIsZSk7Y29uc3QgdD0oMCxMZS55KShlLHRoaXMuX29wdGlvbnMudHVubmVsJiYoMCxkZS5SQSkodGhpcy5fZHNuKSk7dGhpcy5fc2VuZEVudmVsb3BlKHQpfX12YXIgdHQ9bigyMDA5Nyk7bGV0IG50O2Z1bmN0aW9uIHJ0KGUsdD1mdW5jdGlvbigpe2lmKG50KXJldHVybiBudDtpZigoMCx0dC5EdSkodmUuZmV0Y2gpKXJldHVybiBudD12ZS5mZXRjaC5iaW5kKHZlKTtjb25zdCBlPXZlLmRvY3VtZW50O2xldCB0PXZlLmZldGNoO2lmKGUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNyZWF0ZUVsZW1lbnQpdHJ5e2NvbnN0IG49ZS5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO24uaGlkZGVuPSEwLGUuaGVhZC5hcHBlbmRDaGlsZChuKTtjb25zdCByPW4uY29udGVudFdpbmRvdztyJiZyLmZldGNoJiYodD1yLmZldGNoKSxlLmhlYWQucmVtb3ZlQ2hpbGQobil9Y2F0Y2gobil7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihcIkNvdWxkIG5vdCBjcmVhdGUgc2FuZGJveCBpZnJhbWUgZm9yIHB1cmUgZmV0Y2ggY2hlY2ssIGJhaWxpbmcgdG8gd2luZG93LmZldGNoOiBcIixuKX1yZXR1cm4gbnQ9dC5iaW5kKHZlKX0oKSl7bGV0IG49MCxyPTA7cmV0dXJuIHVlKGUsKGZ1bmN0aW9uKGkpe2NvbnN0IG89aS5ib2R5Lmxlbmd0aDtuKz1vLHIrKztjb25zdCBhPXtib2R5OmkuYm9keSxtZXRob2Q6XCJQT1NUXCIscmVmZXJyZXJQb2xpY3k6XCJvcmlnaW5cIixoZWFkZXJzOmUuaGVhZGVycyxrZWVwYWxpdmU6bjw9NmU0JiZyPDE1LC4uLmUuZmV0Y2hPcHRpb25zfTt0cnl7cmV0dXJuIHQoZS51cmwsYSkudGhlbigoZT0+KG4tPW8sci0tLHtzdGF0dXNDb2RlOmUuc3RhdHVzLGhlYWRlcnM6e1wieC1zZW50cnktcmF0ZS1saW1pdHNcIjplLmhlYWRlcnMuZ2V0KFwiWC1TZW50cnktUmF0ZS1MaW1pdHNcIiksXCJyZXRyeS1hZnRlclwiOmUuaGVhZGVycy5nZXQoXCJSZXRyeS1BZnRlclwiKX19KSkpfWNhdGNoKHMpe3JldHVybiBudD12b2lkIDAsbi09byxyLS0sKDAsXy4kMikocyl9fSkpfWZ1bmN0aW9uIGl0KGUpe3JldHVybiB1ZShlLChmdW5jdGlvbih0KXtyZXR1cm4gbmV3IF8uY1coKChuLHIpPT57Y29uc3QgaT1uZXcgWE1MSHR0cFJlcXVlc3Q7aS5vbmVycm9yPXIsaS5vbnJlYWR5c3RhdGVjaGFuZ2U9KCk9Pns0PT09aS5yZWFkeVN0YXRlJiZuKHtzdGF0dXNDb2RlOmkuc3RhdHVzLGhlYWRlcnM6e1wieC1zZW50cnktcmF0ZS1saW1pdHNcIjppLmdldFJlc3BvbnNlSGVhZGVyKFwiWC1TZW50cnktUmF0ZS1MaW1pdHNcIiksXCJyZXRyeS1hZnRlclwiOmkuZ2V0UmVzcG9uc2VIZWFkZXIoXCJSZXRyeS1BZnRlclwiKX19KX0saS5vcGVuKFwiUE9TVFwiLGUudXJsKTtmb3IoY29uc3QgdCBpbiBlLmhlYWRlcnMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuaGVhZGVycyx0KSYmaS5zZXRSZXF1ZXN0SGVhZGVyKHQsZS5oZWFkZXJzW3RdKTtpLnNlbmQodC5ib2R5KX0pKX0pKX12YXIgb3Q9big5OTMyMSk7Y29uc3QgYXQ9XCI/XCI7ZnVuY3Rpb24gc3QoZSx0LG4scil7Y29uc3QgaT17ZmlsZW5hbWU6ZSxmdW5jdGlvbjp0LGluX2FwcDohMH07cmV0dXJuIHZvaWQgMCE9PW4mJihpLmxpbmVubz1uKSx2b2lkIDAhPT1yJiYoaS5jb2xubz1yKSxpfWNvbnN0IGN0PS9eXFxzKmF0ICg/OiguKz9cXCkoPzogXFxbLitcXF0pP3wuKj8pID9cXCgoPzphZGRyZXNzIGF0ICk/KT8oPzphc3luYyApPygoPzo8YW5vbnltb3VzPnxbLWEtel0rOnwuKmJ1bmRsZXxcXC8pPy4qPykoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXCk/XFxzKiQvaSx1dD0vXFwoKFxcUyopKD86OihcXGQrKSkoPzo6KFxcZCspKVxcKS8sbHQ9WzMwLGU9Pntjb25zdCB0PWN0LmV4ZWMoZSk7aWYodCl7aWYodFsyXSYmMD09PXRbMl0uaW5kZXhPZihcImV2YWxcIikpe2NvbnN0IGU9dXQuZXhlYyh0WzJdKTtlJiYodFsyXT1lWzFdLHRbM109ZVsyXSx0WzRdPWVbM10pfWNvbnN0W2Usbl09eXQodFsxXXx8YXQsdFsyXSk7cmV0dXJuIHN0KG4sZSx0WzNdPyt0WzNdOnZvaWQgMCx0WzRdPyt0WzRdOnZvaWQgMCl9fV0sZHQ9L15cXHMqKC4qPykoPzpcXCgoLio/KVxcKSk/KD86XnxAKT8oKD86Wy1hLXpdKyk/OlxcLy4qP3xcXFtuYXRpdmUgY29kZVxcXXxbXkBdKig/OmJ1bmRsZXxcXGQrXFwuanMpfFxcL1tcXHdcXC0uIC89XSspKD86OihcXGQrKSk/KD86OihcXGQrKSk/XFxzKiQvaSxwdD0vKFxcUyspIGxpbmUgKFxcZCspKD86ID4gZXZhbCBsaW5lIFxcZCspKiA+IGV2YWwvaSxmdD1bNTAsZT0+e2NvbnN0IHQ9ZHQuZXhlYyhlKTtpZih0KXtpZih0WzNdJiZ0WzNdLmluZGV4T2YoXCIgPiBldmFsXCIpPi0xKXtjb25zdCBlPXB0LmV4ZWModFszXSk7ZSYmKHRbMV09dFsxXXx8XCJldmFsXCIsdFszXT1lWzFdLHRbNF09ZVsyXSx0WzVdPVwiXCIpfWxldCBlPXRbM10sbj10WzFdfHxhdDtyZXR1cm5bbixlXT15dChuLGUpLHN0KGUsbix0WzRdPyt0WzRdOnZvaWQgMCx0WzVdPyt0WzVdOnZvaWQgMCl9fV0saHQ9L15cXHMqYXQgKD86KCg/OlxcW29iamVjdCBvYmplY3RcXF0pPy4rKSApP1xcKD8oKD86Wy1hLXpdKyk6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxndD1bNDAsZT0+e2NvbnN0IHQ9aHQuZXhlYyhlKTtyZXR1cm4gdD9zdCh0WzJdLHRbMV18fGF0LCt0WzNdLHRbNF0/K3RbNF06dm9pZCAwKTp2b2lkIDB9XSxtdD0vIGxpbmUgKFxcZCspLipzY3JpcHQgKD86aW4gKT8oXFxTKykoPzo6IGluIGZ1bmN0aW9uIChcXFMrKSk/JC9pLHZ0PVsxMCxlPT57Y29uc3QgdD1tdC5leGVjKGUpO3JldHVybiB0P3N0KHRbMl0sdFszXXx8YXQsK3RbMV0pOnZvaWQgMH1dLF90PS8gbGluZSAoXFxkKyksIGNvbHVtbiAoXFxkKylcXHMqKD86aW4gKD86PGFub255bW91cyBmdW5jdGlvbjogKFtePl0rKT58KFteKV0rKSlcXCguKlxcKSk/IGluICguKik6XFxzKiQvaSxFdD1bMjAsZT0+e2NvbnN0IHQ9X3QuZXhlYyhlKTtyZXR1cm4gdD9zdCh0WzVdLHRbM118fHRbNF18fGF0LCt0WzFdLCt0WzJdKTp2b2lkIDB9XSxidD1bbHQsZnQsZ3RdLFN0PSgwLG90LnBFKSguLi5idCkseXQ9KGUsdCk9Pntjb25zdCBuPS0xIT09ZS5pbmRleE9mKFwic2FmYXJpLWV4dGVuc2lvblwiKSxyPS0xIT09ZS5pbmRleE9mKFwic2FmYXJpLXdlYi1leHRlbnNpb25cIik7cmV0dXJuIG58fHI/Wy0xIT09ZS5pbmRleE9mKFwiQFwiKT9lLnNwbGl0KFwiQFwiKVswXTphdCxuP2BzYWZhcmktZXh0ZW5zaW9uOiR7dH1gOmBzYWZhcmktd2ViLWV4dGVuc2lvbjoke3R9YF06W2UsdF19O2NsYXNzIFR0e3N0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiR2xvYmFsSGFuZGxlcnNcIn1fX2luaXQoKXt0aGlzLm5hbWU9VHQuaWR9X19pbml0Migpe3RoaXMuX2luc3RhbGxGdW5jPXtvbmVycm9yOkl0LG9udW5oYW5kbGVkcmVqZWN0aW9uOk90fX1jb25zdHJ1Y3RvcihlKXtUdC5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksVHQucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKSx0aGlzLl9vcHRpb25zPXtvbmVycm9yOiEwLG9udW5oYW5kbGVkcmVqZWN0aW9uOiEwLC4uLmV9fXNldHVwT25jZSgpe0Vycm9yLnN0YWNrVHJhY2VMaW1pdD01MDtjb25zdCBlPXRoaXMuX29wdGlvbnM7Zm9yKGNvbnN0IG4gaW4gZSl7Y29uc3Qgcj10aGlzLl9pbnN0YWxsRnVuY1tuXTtyJiZlW25dJiYodD1uLChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhgR2xvYmFsIEhhbmRsZXIgYXR0YWNoZWQ6ICR7dH1gKSxyKCksdGhpcy5faW5zdGFsbEZ1bmNbbl09dm9pZCAwKX12YXIgdH19ZnVuY3Rpb24gSXQoKXsoMCxZLm9xKShcImVycm9yXCIsKGU9Pntjb25zdFt0LG4scl09TnQoKTtpZighdC5nZXRJbnRlZ3JhdGlvbihUdCkpcmV0dXJuO2NvbnN0e21zZzppLHVybDpvLGxpbmU6YSxjb2x1bW46cyxlcnJvcjpjfT1lO2lmKEVlKCl8fGMmJmMuX19zZW50cnlfb3duX3JlcXVlc3RfXylyZXR1cm47Y29uc3QgdT12b2lkIDA9PT1jJiYoMCx2LkhEKShpKT9mdW5jdGlvbihlLHQsbixyKXtjb25zdCBpPS9eKD86W1V1XW5jYXVnaHQgKD86ZXhjZXB0aW9uOiApPyk/KD86KCg/OkV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSXwpRXJyb3IpOiApPyguKikkL2k7bGV0IG89KDAsdi5WVykoZSk/ZS5tZXNzYWdlOmUsYT1cIkVycm9yXCI7Y29uc3Qgcz1vLm1hdGNoKGkpO3MmJihhPXNbMV0sbz1zWzJdKTtyZXR1cm4gQXQoe2V4Y2VwdGlvbjp7dmFsdWVzOlt7dHlwZTphLHZhbHVlOm99XX19LHQsbixyKX0oaSxvLGEscyk6QXQoSGUobixjfHxpLHZvaWQgMCxyLCExKSxvLGEscyk7dS5sZXZlbD1cImVycm9yXCIsQ3QodCxjLHUsXCJvbmVycm9yXCIpfSkpfWZ1bmN0aW9uIE90KCl7KDAsWS5vcSkoXCJ1bmhhbmRsZWRyZWplY3Rpb25cIiwoZT0+e2NvbnN0W3QsbixyXT1OdCgpO2lmKCF0LmdldEludGVncmF0aW9uKFR0KSlyZXR1cm47bGV0IGk9ZTt0cnl7XCJyZWFzb25cImluIGU/aT1lLnJlYXNvbjpcImRldGFpbFwiaW4gZSYmXCJyZWFzb25cImluIGUuZGV0YWlsJiYoaT1lLmRldGFpbC5yZWFzb24pfWNhdGNoKGEpe31pZihFZSgpfHxpJiZpLl9fc2VudHJ5X293bl9yZXF1ZXN0X18pcmV0dXJuITA7Y29uc3Qgbz0oMCx2LnB0KShpKT97ZXhjZXB0aW9uOnt2YWx1ZXM6W3t0eXBlOlwiVW5oYW5kbGVkUmVqZWN0aW9uXCIsdmFsdWU6YE5vbi1FcnJvciBwcm9taXNlIHJlamVjdGlvbiBjYXB0dXJlZCB3aXRoIHZhbHVlOiAke1N0cmluZyhpKX1gfV19fTpIZShuLGksdm9pZCAwLHIsITApO28ubGV2ZWw9XCJlcnJvclwiLEN0KHQsaSxvLFwib251bmhhbmRsZWRyZWplY3Rpb25cIil9KSl9ZnVuY3Rpb24gQXQoZSx0LG4scil7Y29uc3QgaT1lLmV4Y2VwdGlvbj1lLmV4Y2VwdGlvbnx8e30sbz1pLnZhbHVlcz1pLnZhbHVlc3x8W10sYT1vWzBdPW9bMF18fHt9LHM9YS5zdGFja3RyYWNlPWEuc3RhY2t0cmFjZXx8e30sYz1zLmZyYW1lcz1zLmZyYW1lc3x8W10sdT1pc05hTihwYXJzZUludChyLDEwKSk/dm9pZCAwOnIsbD1pc05hTihwYXJzZUludChuLDEwKSk/dm9pZCAwOm4sZD0oMCx2LkhEKSh0KSYmdC5sZW5ndGg+MD90OigwLFdlLmw0KSgpO3JldHVybiAwPT09Yy5sZW5ndGgmJmMucHVzaCh7Y29sbm86dSxmaWxlbmFtZTpkLGZ1bmN0aW9uOlwiP1wiLGluX2FwcDohMCxsaW5lbm86bH0pLGV9ZnVuY3Rpb24gQ3QoZSx0LG4scil7KDAsdS5FRykobix7aGFuZGxlZDohMSx0eXBlOnJ9KSxlLmNhcHR1cmVFdmVudChuLHtvcmlnaW5hbEV4Y2VwdGlvbjp0fSl9ZnVuY3Rpb24gTnQoKXtjb25zdCBlPU4oKSx0PWUuZ2V0Q2xpZW50KCksbj10JiZ0LmdldE9wdGlvbnMoKXx8e3N0YWNrUGFyc2VyOigpPT5bXSxhdHRhY2hTdGFja3RyYWNlOiExfTtyZXR1cm5bZSxuLnN0YWNrUGFyc2VyLG4uYXR0YWNoU3RhY2t0cmFjZV19VHQuX19pbml0U3RhdGljKCk7Y29uc3Qga3Q9W1wiRXZlbnRUYXJnZXRcIixcIldpbmRvd1wiLFwiTm9kZVwiLFwiQXBwbGljYXRpb25DYWNoZVwiLFwiQXVkaW9UcmFja0xpc3RcIixcIkNoYW5uZWxNZXJnZXJOb2RlXCIsXCJDcnlwdG9PcGVyYXRpb25cIixcIkV2ZW50U291cmNlXCIsXCJGaWxlUmVhZGVyXCIsXCJIVE1MVW5rbm93bkVsZW1lbnRcIixcIklEQkRhdGFiYXNlXCIsXCJJREJSZXF1ZXN0XCIsXCJJREJUcmFuc2FjdGlvblwiLFwiS2V5T3BlcmF0aW9uXCIsXCJNZWRpYUNvbnRyb2xsZXJcIixcIk1lc3NhZ2VQb3J0XCIsXCJNb2RhbFdpbmRvd1wiLFwiTm90aWZpY2F0aW9uXCIsXCJTVkdFbGVtZW50SW5zdGFuY2VcIixcIlNjcmVlblwiLFwiVGV4dFRyYWNrXCIsXCJUZXh0VHJhY2tDdWVcIixcIlRleHRUcmFja0xpc3RcIixcIldlYlNvY2tldFwiLFwiV2ViU29ja2V0V29ya2VyXCIsXCJXb3JrZXJcIixcIlhNTEh0dHBSZXF1ZXN0XCIsXCJYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0XCIsXCJYTUxIdHRwUmVxdWVzdFVwbG9hZFwiXTtjbGFzcyBQdHtzdGF0aWMgX19pbml0U3RhdGljKCl7dGhpcy5pZD1cIlRyeUNhdGNoXCJ9X19pbml0KCl7dGhpcy5uYW1lPVB0LmlkfWNvbnN0cnVjdG9yKGUpe1B0LnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSx0aGlzLl9vcHRpb25zPXtYTUxIdHRwUmVxdWVzdDohMCxldmVudFRhcmdldDohMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWU6ITAsc2V0SW50ZXJ2YWw6ITAsc2V0VGltZW91dDohMCwuLi5lfX1zZXR1cE9uY2UoKXt0aGlzLl9vcHRpb25zLnNldFRpbWVvdXQmJigwLG8uaGwpKHZlLFwic2V0VGltZW91dFwiLFJ0KSx0aGlzLl9vcHRpb25zLnNldEludGVydmFsJiYoMCxvLmhsKSh2ZSxcInNldEludGVydmFsXCIsUnQpLHRoaXMuX29wdGlvbnMucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiYoMCxvLmhsKSh2ZSxcInJlcXVlc3RBbmltYXRpb25GcmFtZVwiLHd0KSx0aGlzLl9vcHRpb25zLlhNTEh0dHBSZXF1ZXN0JiZcIlhNTEh0dHBSZXF1ZXN0XCJpbiB2ZSYmKDAsby5obCkoWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLFwic2VuZFwiLEx0KTtjb25zdCBlPXRoaXMuX29wdGlvbnMuZXZlbnRUYXJnZXQ7aWYoZSl7KEFycmF5LmlzQXJyYXkoZSk/ZTprdCkuZm9yRWFjaChCdCl9fX1mdW5jdGlvbiBSdChlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3Qgbj10WzBdO3JldHVybiB0WzBdPVNlKG4se21lY2hhbmlzbTp7ZGF0YTp7ZnVuY3Rpb246KDAsb3QuJFApKGUpfSxoYW5kbGVkOiEwLHR5cGU6XCJpbnN0cnVtZW50XCJ9fSksZS5hcHBseSh0aGlzLHQpfX1mdW5jdGlvbiB3dChlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxbU2UodCx7bWVjaGFuaXNtOntkYXRhOntmdW5jdGlvbjpcInJlcXVlc3RBbmltYXRpb25GcmFtZVwiLGhhbmRsZXI6KDAsb3QuJFApKGUpfSxoYW5kbGVkOiEwLHR5cGU6XCJpbnN0cnVtZW50XCJ9fSldKX19ZnVuY3Rpb24gTHQoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0IG49dGhpcztyZXR1cm5bXCJvbmxvYWRcIixcIm9uZXJyb3JcIixcIm9ucHJvZ3Jlc3NcIixcIm9ucmVhZHlzdGF0ZWNoYW5nZVwiXS5mb3JFYWNoKChlPT57ZSBpbiBuJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgbltlXSYmKDAsby5obCkobixlLChmdW5jdGlvbih0KXtjb25zdCBuPXttZWNoYW5pc206e2RhdGE6e2Z1bmN0aW9uOmUsaGFuZGxlcjooMCxvdC4kUCkodCl9LGhhbmRsZWQ6ITAsdHlwZTpcImluc3RydW1lbnRcIn19LHI9KDAsby5ISykodCk7cmV0dXJuIHImJihuLm1lY2hhbmlzbS5kYXRhLmhhbmRsZXI9KDAsb3QuJFApKHIpKSxTZSh0LG4pfSkpfSkpLGUuYXBwbHkodGhpcyx0KX19ZnVuY3Rpb24gQnQoZSl7Y29uc3QgdD12ZSxuPXRbZV0mJnRbZV0ucHJvdG90eXBlO24mJm4uaGFzT3duUHJvcGVydHkmJm4uaGFzT3duUHJvcGVydHkoXCJhZGRFdmVudExpc3RlbmVyXCIpJiYoKDAsby5obCkobixcImFkZEV2ZW50TGlzdGVuZXJcIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4scixpKXt0cnl7XCJmdW5jdGlvblwiPT09dHlwZW9mIHIuaGFuZGxlRXZlbnQmJihyLmhhbmRsZUV2ZW50PVNlKHIuaGFuZGxlRXZlbnQse21lY2hhbmlzbTp7ZGF0YTp7ZnVuY3Rpb246XCJoYW5kbGVFdmVudFwiLGhhbmRsZXI6KDAsb3QuJFApKHIpLHRhcmdldDplfSxoYW5kbGVkOiEwLHR5cGU6XCJpbnN0cnVtZW50XCJ9fSkpfWNhdGNoKG8pe31yZXR1cm4gdC5hcHBseSh0aGlzLFtuLFNlKHIse21lY2hhbmlzbTp7ZGF0YTp7ZnVuY3Rpb246XCJhZGRFdmVudExpc3RlbmVyXCIsaGFuZGxlcjooMCxvdC4kUCkociksdGFyZ2V0OmV9LGhhbmRsZWQ6ITAsdHlwZTpcImluc3RydW1lbnRcIn19KSxpXSl9fSkpLCgwLG8uaGwpKG4sXCJyZW1vdmVFdmVudExpc3RlbmVyXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4scil7Y29uc3QgaT1uO3RyeXtjb25zdCBuPWkmJmkuX19zZW50cnlfd3JhcHBlZF9fO24mJmUuY2FsbCh0aGlzLHQsbixyKX1jYXRjaChvKXt9cmV0dXJuIGUuY2FsbCh0aGlzLHQsaSxyKX19KSkpfVB0Ll9faW5pdFN0YXRpYygpO2NsYXNzIE10e3N0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiTGlua2VkRXJyb3JzXCJ9X19pbml0KCl7dGhpcy5uYW1lPU10LmlkfWNvbnN0cnVjdG9yKGU9e30pe010LnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSx0aGlzLl9rZXk9ZS5rZXl8fFwiY2F1c2VcIix0aGlzLl9saW1pdD1lLmxpbWl0fHw1fXNldHVwT25jZSgpe2NvbnN0IGU9TigpLmdldENsaWVudCgpO2UmJlQoKCh0LG4pPT57Y29uc3Qgcj1OKCkuZ2V0SW50ZWdyYXRpb24oTXQpO3JldHVybiByP2Z1bmN0aW9uKGUsdCxuLHIsaSl7aWYoIXIuZXhjZXB0aW9ufHwhci5leGNlcHRpb24udmFsdWVzfHwhaXx8ISgwLHYuVjkpKGkub3JpZ2luYWxFeGNlcHRpb24sRXJyb3IpKXJldHVybiByO2NvbnN0IG89RHQoZSxuLGkub3JpZ2luYWxFeGNlcHRpb24sdCk7cmV0dXJuIHIuZXhjZXB0aW9uLnZhbHVlcz1bLi4ubywuLi5yLmV4Y2VwdGlvbi52YWx1ZXNdLHJ9KGUuZ2V0T3B0aW9ucygpLnN0YWNrUGFyc2VyLHIuX2tleSxyLl9saW1pdCx0LG4pOnR9KSl9fWZ1bmN0aW9uIER0KGUsdCxuLHIsaT1bXSl7aWYoISgwLHYuVjkpKG5bcl0sRXJyb3IpfHxpLmxlbmd0aCsxPj10KXJldHVybiBpO2NvbnN0IG89QmUoZSxuW3JdKTtyZXR1cm4gRHQoZSx0LG5bcl0scixbbywuLi5pXSl9TXQuX19pbml0U3RhdGljKCk7Y2xhc3MganR7Y29uc3RydWN0b3IoKXtqdC5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyl9c3RhdGljIF9faW5pdFN0YXRpYygpe3RoaXMuaWQ9XCJIdHRwQ29udGV4dFwifV9faW5pdCgpe3RoaXMubmFtZT1qdC5pZH1zZXR1cE9uY2UoKXtUKChlPT57aWYoTigpLmdldEludGVncmF0aW9uKGp0KSl7aWYoIXZlLm5hdmlnYXRvciYmIXZlLmxvY2F0aW9uJiYhdmUuZG9jdW1lbnQpcmV0dXJuIGU7Y29uc3QgdD1lLnJlcXVlc3QmJmUucmVxdWVzdC51cmx8fHZlLmxvY2F0aW9uJiZ2ZS5sb2NhdGlvbi5ocmVmLHtyZWZlcnJlcjpufT12ZS5kb2N1bWVudHx8e30se3VzZXJBZ2VudDpyfT12ZS5uYXZpZ2F0b3J8fHt9LGk9ey4uLmUucmVxdWVzdCYmZS5yZXF1ZXN0LmhlYWRlcnMsLi4ubiYme1JlZmVyZXI6bn0sLi4uciYme1wiVXNlci1BZ2VudFwiOnJ9fSxvPXsuLi5lLnJlcXVlc3QsLi4udCYme3VybDp0fSxoZWFkZXJzOml9O3JldHVybnsuLi5lLHJlcXVlc3Q6b319cmV0dXJuIGV9KSl9fWp0Ll9faW5pdFN0YXRpYygpO2NsYXNzIHh0e2NvbnN0cnVjdG9yKCl7eHQucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpfXN0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiRGVkdXBlXCJ9X19pbml0KCl7dGhpcy5uYW1lPXh0LmlkfXNldHVwT25jZShlLHQpe2NvbnN0IG49ZT0+e2lmKGUudHlwZSlyZXR1cm4gZTtjb25zdCBuPXQoKS5nZXRJbnRlZ3JhdGlvbih4dCk7aWYobil7dHJ5e2lmKGZ1bmN0aW9uKGUsdCl7aWYoIXQpcmV0dXJuITE7aWYoZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUubWVzc2FnZSxyPXQubWVzc2FnZTtpZighbiYmIXIpcmV0dXJuITE7aWYobiYmIXJ8fCFuJiZyKXJldHVybiExO2lmKG4hPT1yKXJldHVybiExO2lmKCFGdChlLHQpKXJldHVybiExO2lmKCFVdChlLHQpKXJldHVybiExO3JldHVybiEwfShlLHQpKXJldHVybiEwO2lmKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1IdCh0KSxyPUh0KGUpO2lmKCFufHwhcilyZXR1cm4hMTtpZihuLnR5cGUhPT1yLnR5cGV8fG4udmFsdWUhPT1yLnZhbHVlKXJldHVybiExO2lmKCFGdChlLHQpKXJldHVybiExO2lmKCFVdChlLHQpKXJldHVybiExO3JldHVybiEwfShlLHQpKXJldHVybiEwO3JldHVybiExfShlLG4uX3ByZXZpb3VzRXZlbnQpKXJldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLndhcm4oXCJFdmVudCBkcm9wcGVkIGR1ZSB0byBiZWluZyBhIGR1cGxpY2F0ZSBvZiBwcmV2aW91c2x5IGNhcHR1cmVkIGV2ZW50LlwiKSxudWxsfWNhdGNoKHIpe3JldHVybiBuLl9wcmV2aW91c0V2ZW50PWV9cmV0dXJuIG4uX3ByZXZpb3VzRXZlbnQ9ZX1yZXR1cm4gZX07bi5pZD10aGlzLm5hbWUsZShuKX19ZnVuY3Rpb24gVXQoZSx0KXtsZXQgbj1HdChlKSxyPUd0KHQpO2lmKCFuJiYhcilyZXR1cm4hMDtpZihuJiYhcnx8IW4mJnIpcmV0dXJuITE7aWYoci5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGk9MDtpPHIubGVuZ3RoO2krKyl7Y29uc3QgZT1yW2ldLHQ9bltpXTtpZihlLmZpbGVuYW1lIT09dC5maWxlbmFtZXx8ZS5saW5lbm8hPT10LmxpbmVub3x8ZS5jb2xubyE9PXQuY29sbm98fGUuZnVuY3Rpb24hPT10LmZ1bmN0aW9uKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIEZ0KGUsdCl7bGV0IG49ZS5maW5nZXJwcmludCxyPXQuZmluZ2VycHJpbnQ7aWYoIW4mJiFyKXJldHVybiEwO2lmKG4mJiFyfHwhbiYmcilyZXR1cm4hMTt0cnl7cmV0dXJuIShuLmpvaW4oXCJcIikhPT1yLmpvaW4oXCJcIikpfWNhdGNoKGkpe3JldHVybiExfX1mdW5jdGlvbiBIdChlKXtyZXR1cm4gZS5leGNlcHRpb24mJmUuZXhjZXB0aW9uLnZhbHVlcyYmZS5leGNlcHRpb24udmFsdWVzWzBdfWZ1bmN0aW9uIEd0KGUpe2NvbnN0IHQ9ZS5leGNlcHRpb247aWYodCl0cnl7cmV0dXJuIHQudmFsdWVzWzBdLnN0YWNrdHJhY2UuZnJhbWVzfWNhdGNoKG4pe3JldHVybn19eHQuX19pbml0U3RhdGljKCk7Y29uc3QgV3Q9W25ldyBwLG5ldyBzLG5ldyBQdCxuZXcgcWUsbmV3IFR0LG5ldyBNdCxuZXcgeHQsbmV3IGp0XTtmdW5jdGlvbiBWdChlPXt9KXt2b2lkIDA9PT1lLmRlZmF1bHRJbnRlZ3JhdGlvbnMmJihlLmRlZmF1bHRJbnRlZ3JhdGlvbnM9V3QpLHZvaWQgMD09PWUucmVsZWFzZSYmKFwic3RyaW5nXCI9PT10eXBlb2YgX19TRU5UUllfUkVMRUFTRV9fJiYoZS5yZWxlYXNlPV9fU0VOVFJZX1JFTEVBU0VfXyksdmUuU0VOVFJZX1JFTEVBU0UmJnZlLlNFTlRSWV9SRUxFQVNFLmlkJiYoZS5yZWxlYXNlPXZlLlNFTlRSWV9SRUxFQVNFLmlkKSksdm9pZCAwPT09ZS5hdXRvU2Vzc2lvblRyYWNraW5nJiYoZS5hdXRvU2Vzc2lvblRyYWNraW5nPSEwKSx2b2lkIDA9PT1lLnNlbmRDbGllbnRSZXBvcnRzJiYoZS5zZW5kQ2xpZW50UmVwb3J0cz0hMCk7Y29uc3QgdD17Li4uZSxzdGFja1BhcnNlcjooMCxvdC5TcSkoZS5zdGFja1BhcnNlcnx8U3QpLGludGVncmF0aW9uczpUZShlKSx0cmFuc3BvcnQ6ZS50cmFuc3BvcnR8fCgoMCx0dC5BaykoKT9ydDppdCl9OyFmdW5jdGlvbihlLHQpeyEwPT09dC5kZWJ1ZyYmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXz9jLmtnLmVuYWJsZSgpOmNvbnNvbGUud2FybihcIltTZW50cnldIENhbm5vdCBpbml0aWFsaXplIFNESyB3aXRoIGBkZWJ1Z2Agb3B0aW9uIHVzaW5nIGEgbm9uLWRlYnVnIGJ1bmRsZS5cIikpO2NvbnN0IG49TigpO24uZ2V0U2NvcGUoKS51cGRhdGUodC5pbml0aWFsU2NvcGUpO2NvbnN0IHI9bmV3IGUodCk7bi5iaW5kQ2xpZW50KHIpfShldCx0KSxlLmF1dG9TZXNzaW9uVHJhY2tpbmcmJmZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB2ZS5kb2N1bWVudClyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKFwiU2Vzc2lvbiB0cmFja2luZyBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudCB3aXRoIEBzZW50cnkvYnJvd3NlciBpcyBub3Qgc3VwcG9ydGVkLlwiKSk7Y29uc3QgZT1OKCk7aWYoIWUuY2FwdHVyZVNlc3Npb24pcmV0dXJuO1F0KGUpLCgwLFkub3EpKFwiaGlzdG9yeVwiLCgoe2Zyb206ZSx0bzp0fSk9Pnt2b2lkIDAhPT1lJiZlIT09dCYmUXQoTigpKX0pKX0oKX1mdW5jdGlvbiB6dChlPXt9LHQ9TigpKXtpZighdmUuZG9jdW1lbnQpcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cuZXJyb3IoXCJHbG9iYWwgZG9jdW1lbnQgbm90IGRlZmluZWQgaW4gc2hvd1JlcG9ydERpYWxvZyBjYWxsXCIpKTtjb25zdHtjbGllbnQ6bixzY29wZTpyfT10LmdldFN0YWNrVG9wKCksaT1lLmRzbnx8biYmbi5nZXREc24oKTtpZighaSlyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5lcnJvcihcIkRTTiBub3QgY29uZmlndXJlZCBmb3Igc2hvd1JlcG9ydERpYWxvZyBjYWxsXCIpKTtyJiYoZS51c2VyPXsuLi5yLmdldFVzZXIoKSwuLi5lLnVzZXJ9KSxlLmV2ZW50SWR8fChlLmV2ZW50SWQ9dC5sYXN0RXZlbnRJZCgpKTtjb25zdCBvPXZlLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7by5hc3luYz0hMCxvLnNyYz1mdW5jdGlvbihlLHQpe2NvbnN0IG49KDAsZGUudkspKGUpLHI9YCR7cGUobil9ZW1iZWQvZXJyb3ItcGFnZS9gO2xldCBpPWBkc249JHsoMCxkZS5SQSkobil9YDtmb3IoY29uc3QgbyBpbiB0KWlmKFwiZHNuXCIhPT1vKWlmKFwidXNlclwiPT09byl7Y29uc3QgZT10LnVzZXI7aWYoIWUpY29udGludWU7ZS5uYW1lJiYoaSs9YCZuYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGUubmFtZSl9YCksZS5lbWFpbCYmKGkrPWAmZW1haWw9JHtlbmNvZGVVUklDb21wb25lbnQoZS5lbWFpbCl9YCl9ZWxzZSBpKz1gJiR7ZW5jb2RlVVJJQ29tcG9uZW50KG8pfT0ke2VuY29kZVVSSUNvbXBvbmVudCh0W29dKX1gO3JldHVybmAke3J9PyR7aX1gfShpLGUpLGUub25Mb2FkJiYoby5vbmxvYWQ9ZS5vbkxvYWQpO2NvbnN0IGE9dmUuZG9jdW1lbnQuaGVhZHx8dmUuZG9jdW1lbnQuYm9keTthP2EuYXBwZW5kQ2hpbGQobyk6KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cuZXJyb3IoXCJOb3QgaW5qZWN0aW5nIHJlcG9ydCBkaWFsb2cuIE5vIGluamVjdGlvbiBwb2ludCBmb3VuZCBpbiBIVE1MXCIpfWZ1bmN0aW9uIEt0KCl7cmV0dXJuIE4oKS5sYXN0RXZlbnRJZCgpfWZ1bmN0aW9uIFl0KCl7fWZ1bmN0aW9uIHF0KGUpe2UoKX1mdW5jdGlvbiBadChlKXtjb25zdCB0PU4oKS5nZXRDbGllbnQoKTtyZXR1cm4gdD90LmZsdXNoKGUpOigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy53YXJuKFwiQ2Fubm90IGZsdXNoIGV2ZW50cy4gTm8gY2xpZW50IGRlZmluZWQuXCIpLCgwLF8uV0QpKCExKSl9ZnVuY3Rpb24gSnQoZSl7Y29uc3QgdD1OKCkuZ2V0Q2xpZW50KCk7cmV0dXJuIHQ/dC5jbG9zZShlKTooKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cud2FybihcIkNhbm5vdCBmbHVzaCBldmVudHMgYW5kIGRpc2FibGUgU0RLLiBObyBjbGllbnQgZGVmaW5lZC5cIiksKDAsXy5XRCkoITEpKX1mdW5jdGlvbiBYdChlKXtyZXR1cm4gU2UoZSkoKX1mdW5jdGlvbiBRdChlKXtlLnN0YXJ0U2Vzc2lvbih7aWdub3JlRHVyYXRpb246ITB9KSxlLmNhcHR1cmVTZXNzaW9uKCl9ZnVuY3Rpb24gJHQoZSl7Y29uc3QgdD1OKCkuZ2V0Q2xpZW50KCk7dCYmdC5jYXB0dXJlVXNlckZlZWRiYWNrKGUpfXZhciBlbj1uKDkxOTc5KTtmdW5jdGlvbiB0bigpe2NvbnN0IGU9ZW4ubjIsdD1lLmNyeXB0b3x8ZS5tc0NyeXB0bztpZih0JiZ0LnJhbmRvbVVVSUQpcmV0dXJuIHQucmFuZG9tVVVJRCgpLnJlcGxhY2UoLy0vZyxcIlwiKTtjb25zdCBuPXQmJnQuZ2V0UmFuZG9tVmFsdWVzPygpPT50LmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgxKSlbMF06KCk9PjE2Kk1hdGgucmFuZG9tKCk7cmV0dXJuKFsxZTddKzFlMys0ZTMrOGUzKzFlMTEpLnJlcGxhY2UoL1swMThdL2csKGU9PihlXigxNSZuKCkpPj5lLzQpLnRvU3RyaW5nKDE2KSkpfXZhciBubj1uKDQzOTYyKTtjb25zdCBybj1bXCJkZWJ1Z1wiLFwiaW5mb1wiLFwid2FyblwiLFwiZXJyb3JcIixcImxvZ1wiLFwiYXNzZXJ0XCIsXCJ0cmFjZVwiXTtmdW5jdGlvbiBvbihlKXtpZighKFwiY29uc29sZVwiaW4gZW4ubjIpKXJldHVybiBlKCk7Y29uc3QgdD1lbi5uMi5jb25zb2xlLG49e307cm4uZm9yRWFjaCgoZT0+e2NvbnN0IHI9dFtlXSYmdFtlXS5fX3NlbnRyeV9vcmlnaW5hbF9fO2UgaW4gdCYmciYmKG5bZV09dFtlXSx0W2VdPXIpfSkpO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7T2JqZWN0LmtleXMobikuZm9yRWFjaCgoZT0+e3RbZV09bltlXX0pKX19ZnVuY3Rpb24gYW4oKXtsZXQgZT0hMTtjb25zdCB0PXtlbmFibGU6KCk9PntlPSEwfSxkaXNhYmxlOigpPT57ZT0hMX19O3JldHVyblwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXz9ybi5mb3JFYWNoKChuPT57dFtuXT0oLi4udCk9PntlJiZvbigoKCk9Pntlbi5uMi5jb25zb2xlW25dKGBTZW50cnkgTG9nZ2VyIFske259XTpgLC4uLnQpfSkpfX0pKTpybi5mb3JFYWNoKChlPT57dFtlXT0oKT0+e319KSksdH1sZXQgc247c249XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fPygwLGVuLllPKShcImxvZ2dlclwiLGFuKTphbigpO2NvbnN0IGNuPVwicHJvZHVjdGlvblwiLHVuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gbG4oZSx0KXtyZXR1cm4gdW4uY2FsbChlKT09PWBbb2JqZWN0ICR7dH1dYH1mdW5jdGlvbiBkbihlKXtyZXR1cm4gbG4oZSxcIlN0cmluZ1wiKX1mdW5jdGlvbiBwbihlKXtyZXR1cm4gbG4oZSxcIk9iamVjdFwiKX1mdW5jdGlvbiBmbihlKXtyZXR1cm4gQm9vbGVhbihlJiZlLnRoZW4mJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnRoZW4pfWZ1bmN0aW9uIGhuKGUsdCl7dHJ5e3JldHVybiBlIGluc3RhbmNlb2YgdH1jYXRjaChuKXtyZXR1cm4hMX19dmFyIGduOyFmdW5jdGlvbihlKXtlW2UuUEVORElORz0wXT1cIlBFTkRJTkdcIjtlW2UuUkVTT0xWRUQ9MV09XCJSRVNPTFZFRFwiO2VbZS5SRUpFQ1RFRD0yXT1cIlJFSkVDVEVEXCJ9KGdufHwoZ249e30pKTtjbGFzcyBtbntfX2luaXQoKXt0aGlzLl9zdGF0ZT1nbi5QRU5ESU5HfV9faW5pdDIoKXt0aGlzLl9oYW5kbGVycz1bXX1jb25zdHJ1Y3RvcihlKXttbi5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksbW4ucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKSxtbi5wcm90b3R5cGUuX19pbml0My5jYWxsKHRoaXMpLG1uLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyksbW4ucHJvdG90eXBlLl9faW5pdDUuY2FsbCh0aGlzKSxtbi5wcm90b3R5cGUuX19pbml0Ni5jYWxsKHRoaXMpO3RyeXtlKHRoaXMuX3Jlc29sdmUsdGhpcy5fcmVqZWN0KX1jYXRjaCh0KXt0aGlzLl9yZWplY3QodCl9fXRoZW4oZSx0KXtyZXR1cm4gbmV3IG1uKCgobixyKT0+e3RoaXMuX2hhbmRsZXJzLnB1c2goWyExLHQ9PntpZihlKXRyeXtuKGUodCkpfWNhdGNoKGkpe3IoaSl9ZWxzZSBuKHQpfSxlPT57aWYodCl0cnl7bih0KGUpKX1jYXRjaChpKXtyKGkpfWVsc2UgcihlKX1dKSx0aGlzLl9leGVjdXRlSGFuZGxlcnMoKX0pKX1jYXRjaChlKXtyZXR1cm4gdGhpcy50aGVuKChlPT5lKSxlKX1maW5hbGx5KGUpe3JldHVybiBuZXcgbW4oKCh0LG4pPT57bGV0IHIsaTtyZXR1cm4gdGhpcy50aGVuKCh0PT57aT0hMSxyPXQsZSYmZSgpfSksKHQ9PntpPSEwLHI9dCxlJiZlKCl9KSkudGhlbigoKCk9PntpP24ocik6dChyKX0pKX0pKX1fX2luaXQzKCl7dGhpcy5fcmVzb2x2ZT1lPT57dGhpcy5fc2V0UmVzdWx0KGduLlJFU09MVkVELGUpfX1fX2luaXQ0KCl7dGhpcy5fcmVqZWN0PWU9Pnt0aGlzLl9zZXRSZXN1bHQoZ24uUkVKRUNURUQsZSl9fV9faW5pdDUoKXt0aGlzLl9zZXRSZXN1bHQ9KGUsdCk9Pnt0aGlzLl9zdGF0ZT09PWduLlBFTkRJTkcmJihmbih0KT90LnRoZW4odGhpcy5fcmVzb2x2ZSx0aGlzLl9yZWplY3QpOih0aGlzLl9zdGF0ZT1lLHRoaXMuX3ZhbHVlPXQsdGhpcy5fZXhlY3V0ZUhhbmRsZXJzKCkpKX19X19pbml0Nigpe3RoaXMuX2V4ZWN1dGVIYW5kbGVycz0oKT0+e2lmKHRoaXMuX3N0YXRlPT09Z24uUEVORElORylyZXR1cm47Y29uc3QgZT10aGlzLl9oYW5kbGVycy5zbGljZSgpO3RoaXMuX2hhbmRsZXJzPVtdLGUuZm9yRWFjaCgoZT0+e2VbMF18fCh0aGlzLl9zdGF0ZT09PWduLlJFU09MVkVEJiZlWzFdKHRoaXMuX3ZhbHVlKSx0aGlzLl9zdGF0ZT09PWduLlJFSkVDVEVEJiZlWzJdKHRoaXMuX3ZhbHVlKSxlWzBdPSEwKX0pKX19fSgwLGVuLlJmKSgpO2Z1bmN0aW9uIHZuKGUsdD17fSl7dHJ5e2xldCBuPWU7Y29uc3Qgcj01LGk9W107bGV0IG89MCxhPTA7Y29uc3Qgcz1cIiA+IFwiLGM9cy5sZW5ndGg7bGV0IHU7Y29uc3QgbD1BcnJheS5pc0FycmF5KHQpP3Q6dC5rZXlBdHRycyxkPSFBcnJheS5pc0FycmF5KHQpJiZ0Lm1heFN0cmluZ0xlbmd0aHx8ODA7Zm9yKDtuJiZvKys8ciYmKHU9X24obixsKSwhKFwiaHRtbFwiPT09dXx8bz4xJiZhK2kubGVuZ3RoKmMrdS5sZW5ndGg+PWQpKTspaS5wdXNoKHUpLGErPXUubGVuZ3RoLG49bi5wYXJlbnROb2RlO3JldHVybiBpLnJldmVyc2UoKS5qb2luKHMpfWNhdGNoKG4pe3JldHVyblwiPHVua25vd24+XCJ9fWZ1bmN0aW9uIF9uKGUsdCl7Y29uc3Qgbj1lLHI9W107bGV0IGksbyxhLHMsYztpZighbnx8IW4udGFnTmFtZSlyZXR1cm5cIlwiO3IucHVzaChuLnRhZ05hbWUudG9Mb3dlckNhc2UoKSk7Y29uc3QgdT10JiZ0Lmxlbmd0aD90LmZpbHRlcigoZT0+bi5nZXRBdHRyaWJ1dGUoZSkpKS5tYXAoKGU9PltlLG4uZ2V0QXR0cmlidXRlKGUpXSkpOm51bGw7aWYodSYmdS5sZW5ndGgpdS5mb3JFYWNoKChlPT57ci5wdXNoKGBbJHtlWzBdfT1cIiR7ZVsxXX1cIl1gKX0pKTtlbHNlIGlmKG4uaWQmJnIucHVzaChgIyR7bi5pZH1gKSxpPW4uY2xhc3NOYW1lLGkmJmRuKGkpKWZvcihvPWkuc3BsaXQoL1xccysvKSxjPTA7YzxvLmxlbmd0aDtjKyspci5wdXNoKGAuJHtvW2NdfWApO2NvbnN0IGw9W1wiYXJpYS1sYWJlbFwiLFwidHlwZVwiLFwibmFtZVwiLFwidGl0bGVcIixcImFsdFwiXTtmb3IoYz0wO2M8bC5sZW5ndGg7YysrKWE9bFtjXSxzPW4uZ2V0QXR0cmlidXRlKGEpLHMmJnIucHVzaChgWyR7YX09XCIke3N9XCJdYCk7cmV0dXJuIHIuam9pbihcIlwiKX1mdW5jdGlvbiBFbihlLHQsbil7aWYoISh0IGluIGUpKXJldHVybjtjb25zdCByPWVbdF0saT1uKHIpO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBpKXRyeXshZnVuY3Rpb24oZSx0KXtjb25zdCBuPXQucHJvdG90eXBlfHx7fTtlLnByb3RvdHlwZT10LnByb3RvdHlwZT1uLGZ1bmN0aW9uKGUsdCxuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfShlLFwiX19zZW50cnlfb3JpZ2luYWxfX1wiLHQpfShpLHIpfWNhdGNoKG8pe31lW3RdPWl9ZnVuY3Rpb24gYm4oZSl7aWYoZnVuY3Rpb24oZSl7c3dpdGNoKHVuLmNhbGwoZSkpe2Nhc2VcIltvYmplY3QgRXJyb3JdXCI6Y2FzZVwiW29iamVjdCBFeGNlcHRpb25dXCI6Y2FzZVwiW29iamVjdCBET01FeGNlcHRpb25dXCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4gaG4oZSxFcnJvcil9fShlKSlyZXR1cm57bWVzc2FnZTplLm1lc3NhZ2UsbmFtZTplLm5hbWUsc3RhY2s6ZS5zdGFjaywuLi55bihlKX07aWYodD1lLFwidW5kZWZpbmVkXCIhPT10eXBlb2YgRXZlbnQmJmhuKHQsRXZlbnQpKXtjb25zdCB0PXt0eXBlOmUudHlwZSx0YXJnZXQ6U24oZS50YXJnZXQpLGN1cnJlbnRUYXJnZXQ6U24oZS5jdXJyZW50VGFyZ2V0KSwuLi55bihlKX07cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBDdXN0b21FdmVudCYmaG4oZSxDdXN0b21FdmVudCkmJih0LmRldGFpbD1lLmRldGFpbCksdH1yZXR1cm4gZTt2YXIgdH1mdW5jdGlvbiBTbihlKXt0cnl7cmV0dXJuIHQ9ZSxcInVuZGVmaW5lZFwiIT09dHlwZW9mIEVsZW1lbnQmJmhuKHQsRWxlbWVudCk/dm4oZSk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfWNhdGNoKG4pe3JldHVyblwiPHVua25vd24+XCJ9dmFyIHR9ZnVuY3Rpb24geW4oZSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlJiZudWxsIT09ZSl7Y29uc3QgdD17fTtmb3IoY29uc3QgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKTtyZXR1cm4gdH1yZXR1cm57fX1mdW5jdGlvbiBUbihlKXtyZXR1cm4gSW4oZSxuZXcgTWFwKX1mdW5jdGlvbiBJbihlLHQpe2lmKHBuKGUpKXtjb25zdCBuPXQuZ2V0KGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47Y29uc3Qgcj17fTt0LnNldChlLHIpO2Zvcihjb25zdCBpIG9mIE9iamVjdC5rZXlzKGUpKVwidW5kZWZpbmVkXCIhPT10eXBlb2YgZVtpXSYmKHJbaV09SW4oZVtpXSx0KSk7cmV0dXJuIHJ9aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3Qgbj10LmdldChlKTtpZih2b2lkIDAhPT1uKXJldHVybiBuO2NvbnN0IHI9W107cmV0dXJuIHQuc2V0KGUsciksZS5mb3JFYWNoKChlPT57ci5wdXNoKEluKGUsdCkpfSkpLHJ9cmV0dXJuIGV9ZnVuY3Rpb24gT24oZSl7Y29uc3QgdD0oMCxubi5waCkoKSxuPXtzaWQ6dG4oKSxpbml0OiEwLHRpbWVzdGFtcDp0LHN0YXJ0ZWQ6dCxkdXJhdGlvbjowLHN0YXR1czpcIm9rXCIsZXJyb3JzOjAsaWdub3JlRHVyYXRpb246ITEsdG9KU09OOigpPT5mdW5jdGlvbihlKXtyZXR1cm4gVG4oe3NpZDpgJHtlLnNpZH1gLGluaXQ6ZS5pbml0LHN0YXJ0ZWQ6bmV3IERhdGUoMWUzKmUuc3RhcnRlZCkudG9JU09TdHJpbmcoKSx0aW1lc3RhbXA6bmV3IERhdGUoMWUzKmUudGltZXN0YW1wKS50b0lTT1N0cmluZygpLHN0YXR1czplLnN0YXR1cyxlcnJvcnM6ZS5lcnJvcnMsZGlkOlwibnVtYmVyXCI9PT10eXBlb2YgZS5kaWR8fFwic3RyaW5nXCI9PT10eXBlb2YgZS5kaWQ/YCR7ZS5kaWR9YDp2b2lkIDAsZHVyYXRpb246ZS5kdXJhdGlvbixhdHRyczp7cmVsZWFzZTplLnJlbGVhc2UsZW52aXJvbm1lbnQ6ZS5lbnZpcm9ubWVudCxpcF9hZGRyZXNzOmUuaXBBZGRyZXNzLHVzZXJfYWdlbnQ6ZS51c2VyQWdlbnR9fSl9KG4pfTtyZXR1cm4gZSYmQW4obixlKSxufWZ1bmN0aW9uIEFuKGUsdD17fSl7aWYodC51c2VyJiYoIWUuaXBBZGRyZXNzJiZ0LnVzZXIuaXBfYWRkcmVzcyYmKGUuaXBBZGRyZXNzPXQudXNlci5pcF9hZGRyZXNzKSxlLmRpZHx8dC5kaWR8fChlLmRpZD10LnVzZXIuaWR8fHQudXNlci5lbWFpbHx8dC51c2VyLnVzZXJuYW1lKSksZS50aW1lc3RhbXA9dC50aW1lc3RhbXB8fCgwLG5uLnBoKSgpLHQuaWdub3JlRHVyYXRpb24mJihlLmlnbm9yZUR1cmF0aW9uPXQuaWdub3JlRHVyYXRpb24pLHQuc2lkJiYoZS5zaWQ9MzI9PT10LnNpZC5sZW5ndGg/dC5zaWQ6dG4oKSksdm9pZCAwIT09dC5pbml0JiYoZS5pbml0PXQuaW5pdCksIWUuZGlkJiZ0LmRpZCYmKGUuZGlkPWAke3QuZGlkfWApLFwibnVtYmVyXCI9PT10eXBlb2YgdC5zdGFydGVkJiYoZS5zdGFydGVkPXQuc3RhcnRlZCksZS5pZ25vcmVEdXJhdGlvbillLmR1cmF0aW9uPXZvaWQgMDtlbHNlIGlmKFwibnVtYmVyXCI9PT10eXBlb2YgdC5kdXJhdGlvbillLmR1cmF0aW9uPXQuZHVyYXRpb247ZWxzZXtjb25zdCB0PWUudGltZXN0YW1wLWUuc3RhcnRlZDtlLmR1cmF0aW9uPXQ+PTA/dDowfXQucmVsZWFzZSYmKGUucmVsZWFzZT10LnJlbGVhc2UpLHQuZW52aXJvbm1lbnQmJihlLmVudmlyb25tZW50PXQuZW52aXJvbm1lbnQpLCFlLmlwQWRkcmVzcyYmdC5pcEFkZHJlc3MmJihlLmlwQWRkcmVzcz10LmlwQWRkcmVzcyksIWUudXNlckFnZW50JiZ0LnVzZXJBZ2VudCYmKGUudXNlckFnZW50PXQudXNlckFnZW50KSxcIm51bWJlclwiPT09dHlwZW9mIHQuZXJyb3JzJiYoZS5lcnJvcnM9dC5lcnJvcnMpLHQuc3RhdHVzJiYoZS5zdGF0dXM9dC5zdGF0dXMpfWNsYXNzIENue2NvbnN0cnVjdG9yKCl7dGhpcy5fbm90aWZ5aW5nTGlzdGVuZXJzPSExLHRoaXMuX3Njb3BlTGlzdGVuZXJzPVtdLHRoaXMuX2V2ZW50UHJvY2Vzc29ycz1bXSx0aGlzLl9icmVhZGNydW1icz1bXSx0aGlzLl9hdHRhY2htZW50cz1bXSx0aGlzLl91c2VyPXt9LHRoaXMuX3RhZ3M9e30sdGhpcy5fZXh0cmE9e30sdGhpcy5fY29udGV4dHM9e30sdGhpcy5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhPXt9fXN0YXRpYyBjbG9uZShlKXtjb25zdCB0PW5ldyBDbjtyZXR1cm4gZSYmKHQuX2JyZWFkY3J1bWJzPVsuLi5lLl9icmVhZGNydW1ic10sdC5fdGFncz17Li4uZS5fdGFnc30sdC5fZXh0cmE9ey4uLmUuX2V4dHJhfSx0Ll9jb250ZXh0cz17Li4uZS5fY29udGV4dHN9LHQuX3VzZXI9ZS5fdXNlcix0Ll9sZXZlbD1lLl9sZXZlbCx0Ll9zcGFuPWUuX3NwYW4sdC5fc2Vzc2lvbj1lLl9zZXNzaW9uLHQuX3RyYW5zYWN0aW9uTmFtZT1lLl90cmFuc2FjdGlvbk5hbWUsdC5fZmluZ2VycHJpbnQ9ZS5fZmluZ2VycHJpbnQsdC5fZXZlbnRQcm9jZXNzb3JzPVsuLi5lLl9ldmVudFByb2Nlc3NvcnNdLHQuX3JlcXVlc3RTZXNzaW9uPWUuX3JlcXVlc3RTZXNzaW9uLHQuX2F0dGFjaG1lbnRzPVsuLi5lLl9hdHRhY2htZW50c10sdC5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhPXsuLi5lLl9zZGtQcm9jZXNzaW5nTWV0YWRhdGF9KSx0fWFkZFNjb3BlTGlzdGVuZXIoZSl7dGhpcy5fc2NvcGVMaXN0ZW5lcnMucHVzaChlKX1hZGRFdmVudFByb2Nlc3NvcihlKXtyZXR1cm4gdGhpcy5fZXZlbnRQcm9jZXNzb3JzLnB1c2goZSksdGhpc31zZXRVc2VyKGUpe3JldHVybiB0aGlzLl91c2VyPWV8fHt9LHRoaXMuX3Nlc3Npb24mJkFuKHRoaXMuX3Nlc3Npb24se3VzZXI6ZX0pLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31nZXRVc2VyKCl7cmV0dXJuIHRoaXMuX3VzZXJ9Z2V0UmVxdWVzdFNlc3Npb24oKXtyZXR1cm4gdGhpcy5fcmVxdWVzdFNlc3Npb259c2V0UmVxdWVzdFNlc3Npb24oZSl7cmV0dXJuIHRoaXMuX3JlcXVlc3RTZXNzaW9uPWUsdGhpc31zZXRUYWdzKGUpe3JldHVybiB0aGlzLl90YWdzPXsuLi50aGlzLl90YWdzLC4uLmV9LHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31zZXRUYWcoZSx0KXtyZXR1cm4gdGhpcy5fdGFncz17Li4udGhpcy5fdGFncyxbZV06dH0sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldEV4dHJhcyhlKXtyZXR1cm4gdGhpcy5fZXh0cmE9ey4uLnRoaXMuX2V4dHJhLC4uLmV9LHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31zZXRFeHRyYShlLHQpe3JldHVybiB0aGlzLl9leHRyYT17Li4udGhpcy5fZXh0cmEsW2VdOnR9LHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31zZXRGaW5nZXJwcmludChlKXtyZXR1cm4gdGhpcy5fZmluZ2VycHJpbnQ9ZSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0TGV2ZWwoZSl7cmV0dXJuIHRoaXMuX2xldmVsPWUsdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldFRyYW5zYWN0aW9uTmFtZShlKXtyZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25OYW1lPWUsdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldENvbnRleHQoZSx0KXtyZXR1cm4gbnVsbD09PXQ/ZGVsZXRlIHRoaXMuX2NvbnRleHRzW2VdOnRoaXMuX2NvbnRleHRzW2VdPXQsdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldFNwYW4oZSl7cmV0dXJuIHRoaXMuX3NwYW49ZSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9Z2V0U3Bhbigpe3JldHVybiB0aGlzLl9zcGFufWdldFRyYW5zYWN0aW9uKCl7Y29uc3QgZT10aGlzLmdldFNwYW4oKTtyZXR1cm4gZSYmZS50cmFuc2FjdGlvbn1zZXRTZXNzaW9uKGUpe3JldHVybiBlP3RoaXMuX3Nlc3Npb249ZTpkZWxldGUgdGhpcy5fc2Vzc2lvbix0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9Z2V0U2Vzc2lvbigpe3JldHVybiB0aGlzLl9zZXNzaW9ufXVwZGF0ZShlKXtpZighZSlyZXR1cm4gdGhpcztpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl7Y29uc3QgdD1lKHRoaXMpO3JldHVybiB0IGluc3RhbmNlb2YgQ24/dDp0aGlzfXJldHVybiBlIGluc3RhbmNlb2YgQ24/KHRoaXMuX3RhZ3M9ey4uLnRoaXMuX3RhZ3MsLi4uZS5fdGFnc30sdGhpcy5fZXh0cmE9ey4uLnRoaXMuX2V4dHJhLC4uLmUuX2V4dHJhfSx0aGlzLl9jb250ZXh0cz17Li4udGhpcy5fY29udGV4dHMsLi4uZS5fY29udGV4dHN9LGUuX3VzZXImJk9iamVjdC5rZXlzKGUuX3VzZXIpLmxlbmd0aCYmKHRoaXMuX3VzZXI9ZS5fdXNlciksZS5fbGV2ZWwmJih0aGlzLl9sZXZlbD1lLl9sZXZlbCksZS5fZmluZ2VycHJpbnQmJih0aGlzLl9maW5nZXJwcmludD1lLl9maW5nZXJwcmludCksZS5fcmVxdWVzdFNlc3Npb24mJih0aGlzLl9yZXF1ZXN0U2Vzc2lvbj1lLl9yZXF1ZXN0U2Vzc2lvbikpOnBuKGUpJiYodGhpcy5fdGFncz17Li4udGhpcy5fdGFncywuLi5lLnRhZ3N9LHRoaXMuX2V4dHJhPXsuLi50aGlzLl9leHRyYSwuLi5lLmV4dHJhfSx0aGlzLl9jb250ZXh0cz17Li4udGhpcy5fY29udGV4dHMsLi4uZS5jb250ZXh0c30sZS51c2VyJiYodGhpcy5fdXNlcj1lLnVzZXIpLGUubGV2ZWwmJih0aGlzLl9sZXZlbD1lLmxldmVsKSxlLmZpbmdlcnByaW50JiYodGhpcy5fZmluZ2VycHJpbnQ9ZS5maW5nZXJwcmludCksZS5yZXF1ZXN0U2Vzc2lvbiYmKHRoaXMuX3JlcXVlc3RTZXNzaW9uPWUucmVxdWVzdFNlc3Npb24pKSx0aGlzfWNsZWFyKCl7cmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzPVtdLHRoaXMuX3RhZ3M9e30sdGhpcy5fZXh0cmE9e30sdGhpcy5fdXNlcj17fSx0aGlzLl9jb250ZXh0cz17fSx0aGlzLl9sZXZlbD12b2lkIDAsdGhpcy5fdHJhbnNhY3Rpb25OYW1lPXZvaWQgMCx0aGlzLl9maW5nZXJwcmludD12b2lkIDAsdGhpcy5fcmVxdWVzdFNlc3Npb249dm9pZCAwLHRoaXMuX3NwYW49dm9pZCAwLHRoaXMuX3Nlc3Npb249dm9pZCAwLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpcy5fYXR0YWNobWVudHM9W10sdGhpc31hZGRCcmVhZGNydW1iKGUsdCl7Y29uc3Qgbj1cIm51bWJlclwiPT09dHlwZW9mIHQ/dDoxMDA7aWYobjw9MClyZXR1cm4gdGhpcztjb25zdCByPXt0aW1lc3RhbXA6KDAsbm4ueVcpKCksLi4uZX07cmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzPVsuLi50aGlzLl9icmVhZGNydW1icyxyXS5zbGljZSgtbiksdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWdldExhc3RCcmVhZGNydW1iKCl7cmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzW3RoaXMuX2JyZWFkY3J1bWJzLmxlbmd0aC0xXX1jbGVhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzPVtdLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31hZGRBdHRhY2htZW50KGUpe3JldHVybiB0aGlzLl9hdHRhY2htZW50cy5wdXNoKGUpLHRoaXN9Z2V0QXR0YWNobWVudHMoKXtyZXR1cm4gdGhpcy5fYXR0YWNobWVudHN9Y2xlYXJBdHRhY2htZW50cygpe3JldHVybiB0aGlzLl9hdHRhY2htZW50cz1bXSx0aGlzfWFwcGx5VG9FdmVudChlLHQ9e30pe2lmKHRoaXMuX2V4dHJhJiZPYmplY3Qua2V5cyh0aGlzLl9leHRyYSkubGVuZ3RoJiYoZS5leHRyYT17Li4udGhpcy5fZXh0cmEsLi4uZS5leHRyYX0pLHRoaXMuX3RhZ3MmJk9iamVjdC5rZXlzKHRoaXMuX3RhZ3MpLmxlbmd0aCYmKGUudGFncz17Li4udGhpcy5fdGFncywuLi5lLnRhZ3N9KSx0aGlzLl91c2VyJiZPYmplY3Qua2V5cyh0aGlzLl91c2VyKS5sZW5ndGgmJihlLnVzZXI9ey4uLnRoaXMuX3VzZXIsLi4uZS51c2VyfSksdGhpcy5fY29udGV4dHMmJk9iamVjdC5rZXlzKHRoaXMuX2NvbnRleHRzKS5sZW5ndGgmJihlLmNvbnRleHRzPXsuLi50aGlzLl9jb250ZXh0cywuLi5lLmNvbnRleHRzfSksdGhpcy5fbGV2ZWwmJihlLmxldmVsPXRoaXMuX2xldmVsKSx0aGlzLl90cmFuc2FjdGlvbk5hbWUmJihlLnRyYW5zYWN0aW9uPXRoaXMuX3RyYW5zYWN0aW9uTmFtZSksdGhpcy5fc3Bhbil7ZS5jb250ZXh0cz17dHJhY2U6dGhpcy5fc3Bhbi5nZXRUcmFjZUNvbnRleHQoKSwuLi5lLmNvbnRleHRzfTtjb25zdCB0PXRoaXMuX3NwYW4udHJhbnNhY3Rpb247aWYodCl7ZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGE9e2R5bmFtaWNTYW1wbGluZ0NvbnRleHQ6dC5nZXREeW5hbWljU2FtcGxpbmdDb250ZXh0KCksLi4uZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGF9O2NvbnN0IG49dC5uYW1lO24mJihlLnRhZ3M9e3RyYW5zYWN0aW9uOm4sLi4uZS50YWdzfSl9fXJldHVybiB0aGlzLl9hcHBseUZpbmdlcnByaW50KGUpLGUuYnJlYWRjcnVtYnM9Wy4uLmUuYnJlYWRjcnVtYnN8fFtdLC4uLnRoaXMuX2JyZWFkY3J1bWJzXSxlLmJyZWFkY3J1bWJzPWUuYnJlYWRjcnVtYnMubGVuZ3RoPjA/ZS5icmVhZGNydW1iczp2b2lkIDAsZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGE9ey4uLmUuc2RrUHJvY2Vzc2luZ01ldGFkYXRhLC4uLnRoaXMuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YX0sdGhpcy5fbm90aWZ5RXZlbnRQcm9jZXNzb3JzKFsuLi5ObigpLC4uLnRoaXMuX2V2ZW50UHJvY2Vzc29yc10sZSx0KX1zZXRTREtQcm9jZXNzaW5nTWV0YWRhdGEoZSl7cmV0dXJuIHRoaXMuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YT17Li4udGhpcy5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhLC4uLmV9LHRoaXN9X25vdGlmeUV2ZW50UHJvY2Vzc29ycyhlLHQsbixyPTApe3JldHVybiBuZXcgbW4oKChpLG8pPT57Y29uc3QgYT1lW3JdO2lmKG51bGw9PT10fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSlpKHQpO2Vsc2V7Y29uc3Qgcz1hKHsuLi50fSxuKTsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYS5pZCYmbnVsbD09PXMmJnNuLmxvZyhgRXZlbnQgcHJvY2Vzc29yIFwiJHthLmlkfVwiIGRyb3BwZWQgZXZlbnRgKSxmbihzKT9zLnRoZW4oKHQ9PnRoaXMuX25vdGlmeUV2ZW50UHJvY2Vzc29ycyhlLHQsbixyKzEpLnRoZW4oaSkpKS50aGVuKG51bGwsbyk6dGhpcy5fbm90aWZ5RXZlbnRQcm9jZXNzb3JzKGUscyxuLHIrMSkudGhlbihpKS50aGVuKG51bGwsbyl9fSkpfV9ub3RpZnlTY29wZUxpc3RlbmVycygpe3RoaXMuX25vdGlmeWluZ0xpc3RlbmVyc3x8KHRoaXMuX25vdGlmeWluZ0xpc3RlbmVycz0hMCx0aGlzLl9zY29wZUxpc3RlbmVycy5mb3JFYWNoKChlPT57ZSh0aGlzKX0pKSx0aGlzLl9ub3RpZnlpbmdMaXN0ZW5lcnM9ITEpfV9hcHBseUZpbmdlcnByaW50KGUpe3ZhciB0O2UuZmluZ2VycHJpbnQ9ZS5maW5nZXJwcmludD8odD1lLmZpbmdlcnByaW50LEFycmF5LmlzQXJyYXkodCk/dDpbdF0pOltdLHRoaXMuX2ZpbmdlcnByaW50JiYoZS5maW5nZXJwcmludD1lLmZpbmdlcnByaW50LmNvbmNhdCh0aGlzLl9maW5nZXJwcmludCkpLGUuZmluZ2VycHJpbnQmJiFlLmZpbmdlcnByaW50Lmxlbmd0aCYmZGVsZXRlIGUuZmluZ2VycHJpbnR9fWZ1bmN0aW9uIE5uKCl7cmV0dXJuKDAsZW4uWU8pKFwiZ2xvYmFsRXZlbnRQcm9jZXNzb3JzXCIsKCgpPT5bXSkpfWNvbnN0IGtuPTEwMDtjbGFzcyBQbntjb25zdHJ1Y3RvcihlLHQ9bmV3IENuLG49NCl7dGhpcy5fdmVyc2lvbj1uLHRoaXMuX3N0YWNrPVt7c2NvcGU6dH1dLGUmJnRoaXMuYmluZENsaWVudChlKX1pc09sZGVyVGhhbihlKXtyZXR1cm4gdGhpcy5fdmVyc2lvbjxlfWJpbmRDbGllbnQoZSl7dGhpcy5nZXRTdGFja1RvcCgpLmNsaWVudD1lLGUmJmUuc2V0dXBJbnRlZ3JhdGlvbnMmJmUuc2V0dXBJbnRlZ3JhdGlvbnMoKX1wdXNoU2NvcGUoKXtjb25zdCBlPUNuLmNsb25lKHRoaXMuZ2V0U2NvcGUoKSk7cmV0dXJuIHRoaXMuZ2V0U3RhY2soKS5wdXNoKHtjbGllbnQ6dGhpcy5nZXRDbGllbnQoKSxzY29wZTplfSksZX1wb3BTY29wZSgpe3JldHVybiEodGhpcy5nZXRTdGFjaygpLmxlbmd0aDw9MSkmJiEhdGhpcy5nZXRTdGFjaygpLnBvcCgpfXdpdGhTY29wZShlKXtjb25zdCB0PXRoaXMucHVzaFNjb3BlKCk7dHJ5e2UodCl9ZmluYWxseXt0aGlzLnBvcFNjb3BlKCl9fWdldENsaWVudCgpe3JldHVybiB0aGlzLmdldFN0YWNrVG9wKCkuY2xpZW50fWdldFNjb3BlKCl7cmV0dXJuIHRoaXMuZ2V0U3RhY2tUb3AoKS5zY29wZX1nZXRTdGFjaygpe3JldHVybiB0aGlzLl9zdGFja31nZXRTdGFja1RvcCgpe3JldHVybiB0aGlzLl9zdGFja1t0aGlzLl9zdGFjay5sZW5ndGgtMV19Y2FwdHVyZUV4Y2VwdGlvbihlLHQpe2NvbnN0IG49dGhpcy5fbGFzdEV2ZW50SWQ9dCYmdC5ldmVudF9pZD90LmV2ZW50X2lkOnRuKCkscj1uZXcgRXJyb3IoXCJTZW50cnkgc3ludGhldGljRXhjZXB0aW9uXCIpO3JldHVybiB0aGlzLl93aXRoQ2xpZW50KCgoaSxvKT0+e2kuY2FwdHVyZUV4Y2VwdGlvbihlLHtvcmlnaW5hbEV4Y2VwdGlvbjplLHN5bnRoZXRpY0V4Y2VwdGlvbjpyLC4uLnQsZXZlbnRfaWQ6bn0sbyl9KSksbn1jYXB0dXJlTWVzc2FnZShlLHQsbil7Y29uc3Qgcj10aGlzLl9sYXN0RXZlbnRJZD1uJiZuLmV2ZW50X2lkP24uZXZlbnRfaWQ6dG4oKSxpPW5ldyBFcnJvcihlKTtyZXR1cm4gdGhpcy5fd2l0aENsaWVudCgoKG8sYSk9PntvLmNhcHR1cmVNZXNzYWdlKGUsdCx7b3JpZ2luYWxFeGNlcHRpb246ZSxzeW50aGV0aWNFeGNlcHRpb246aSwuLi5uLGV2ZW50X2lkOnJ9LGEpfSkpLHJ9Y2FwdHVyZUV2ZW50KGUsdCl7Y29uc3Qgbj10JiZ0LmV2ZW50X2lkP3QuZXZlbnRfaWQ6dG4oKTtyZXR1cm4gZS50eXBlfHwodGhpcy5fbGFzdEV2ZW50SWQ9biksdGhpcy5fd2l0aENsaWVudCgoKHIsaSk9PntyLmNhcHR1cmVFdmVudChlLHsuLi50LGV2ZW50X2lkOm59LGkpfSkpLG59bGFzdEV2ZW50SWQoKXtyZXR1cm4gdGhpcy5fbGFzdEV2ZW50SWR9YWRkQnJlYWRjcnVtYihlLHQpe2NvbnN0e3Njb3BlOm4sY2xpZW50OnJ9PXRoaXMuZ2V0U3RhY2tUb3AoKTtpZighcilyZXR1cm47Y29uc3R7YmVmb3JlQnJlYWRjcnVtYjppPW51bGwsbWF4QnJlYWRjcnVtYnM6bz1rbn09ci5nZXRPcHRpb25zJiZyLmdldE9wdGlvbnMoKXx8e307aWYobzw9MClyZXR1cm47Y29uc3QgYT17dGltZXN0YW1wOigwLG5uLnlXKSgpLC4uLmV9LHM9aT9vbigoKCk9PmkoYSx0KSkpOmE7bnVsbCE9PXMmJihyLmVtaXQmJnIuZW1pdChcImJlZm9yZUFkZEJyZWFkY3J1bWJcIixzLHQpLG4uYWRkQnJlYWRjcnVtYihzLG8pKX1zZXRVc2VyKGUpe3RoaXMuZ2V0U2NvcGUoKS5zZXRVc2VyKGUpfXNldFRhZ3MoZSl7dGhpcy5nZXRTY29wZSgpLnNldFRhZ3MoZSl9c2V0RXh0cmFzKGUpe3RoaXMuZ2V0U2NvcGUoKS5zZXRFeHRyYXMoZSl9c2V0VGFnKGUsdCl7dGhpcy5nZXRTY29wZSgpLnNldFRhZyhlLHQpfXNldEV4dHJhKGUsdCl7dGhpcy5nZXRTY29wZSgpLnNldEV4dHJhKGUsdCl9c2V0Q29udGV4dChlLHQpe3RoaXMuZ2V0U2NvcGUoKS5zZXRDb250ZXh0KGUsdCl9Y29uZmlndXJlU2NvcGUoZSl7Y29uc3R7c2NvcGU6dCxjbGllbnQ6bn09dGhpcy5nZXRTdGFja1RvcCgpO24mJmUodCl9cnVuKGUpe2NvbnN0IHQ9d24odGhpcyk7dHJ5e2UodGhpcyl9ZmluYWxseXt3bih0KX19Z2V0SW50ZWdyYXRpb24oZSl7Y29uc3QgdD10aGlzLmdldENsaWVudCgpO2lmKCF0KXJldHVybiBudWxsO3RyeXtyZXR1cm4gdC5nZXRJbnRlZ3JhdGlvbihlKX1jYXRjaChuKXtyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmc24ud2FybihgQ2Fubm90IHJldHJpZXZlIGludGVncmF0aW9uICR7ZS5pZH0gZnJvbSB0aGUgY3VycmVudCBIdWJgKSxudWxsfX1zdGFydFRyYW5zYWN0aW9uKGUsdCl7Y29uc3Qgbj10aGlzLl9jYWxsRXh0ZW5zaW9uTWV0aG9kKFwic3RhcnRUcmFuc2FjdGlvblwiLGUsdCk7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19fJiYhX19TRU5UUllfREVCVUdfX3x8bnx8Y29uc29sZS53YXJuKFwiVHJhY2luZyBleHRlbnNpb24gJ3N0YXJ0VHJhbnNhY3Rpb24nIGhhcyBub3QgYmVlbiBhZGRlZC4gQ2FsbCAnYWRkVHJhY2luZ0V4dGVuc2lvbnMnIGJlZm9yZSBjYWxsaW5nICdpbml0JzpcXG5TZW50cnkuYWRkVHJhY2luZ0V4dGVuc2lvbnMoKTtcXG5TZW50cnkuaW5pdCh7Li4ufSk7XFxuXCIpLG59dHJhY2VIZWFkZXJzKCl7cmV0dXJuIHRoaXMuX2NhbGxFeHRlbnNpb25NZXRob2QoXCJ0cmFjZUhlYWRlcnNcIil9Y2FwdHVyZVNlc3Npb24oZT0hMSl7aWYoZSlyZXR1cm4gdGhpcy5lbmRTZXNzaW9uKCk7dGhpcy5fc2VuZFNlc3Npb25VcGRhdGUoKX1lbmRTZXNzaW9uKCl7Y29uc3QgZT10aGlzLmdldFN0YWNrVG9wKCkuc2NvcGUsdD1lLmdldFNlc3Npb24oKTt0JiZmdW5jdGlvbihlLHQpe2xldCBuPXt9O3Q/bj17c3RhdHVzOnR9Olwib2tcIj09PWUuc3RhdHVzJiYobj17c3RhdHVzOlwiZXhpdGVkXCJ9KSxBbihlLG4pfSh0KSx0aGlzLl9zZW5kU2Vzc2lvblVwZGF0ZSgpLGUuc2V0U2Vzc2lvbigpfXN0YXJ0U2Vzc2lvbihlKXtjb25zdHtzY29wZTp0LGNsaWVudDpufT10aGlzLmdldFN0YWNrVG9wKCkse3JlbGVhc2U6cixlbnZpcm9ubWVudDppPWNufT1uJiZuLmdldE9wdGlvbnMoKXx8e30se3VzZXJBZ2VudDpvfT1lbi5uMi5uYXZpZ2F0b3J8fHt9LGE9T24oe3JlbGVhc2U6cixlbnZpcm9ubWVudDppLHVzZXI6dC5nZXRVc2VyKCksLi4ubyYme3VzZXJBZ2VudDpvfSwuLi5lfSkscz10LmdldFNlc3Npb24mJnQuZ2V0U2Vzc2lvbigpO3JldHVybiBzJiZcIm9rXCI9PT1zLnN0YXR1cyYmQW4ocyx7c3RhdHVzOlwiZXhpdGVkXCJ9KSx0aGlzLmVuZFNlc3Npb24oKSx0LnNldFNlc3Npb24oYSksYX1zaG91bGRTZW5kRGVmYXVsdFBpaSgpe2NvbnN0IGU9dGhpcy5nZXRDbGllbnQoKSx0PWUmJmUuZ2V0T3B0aW9ucygpO3JldHVybiBCb29sZWFuKHQmJnQuc2VuZERlZmF1bHRQaWkpfV9zZW5kU2Vzc2lvblVwZGF0ZSgpe2NvbnN0e3Njb3BlOmUsY2xpZW50OnR9PXRoaXMuZ2V0U3RhY2tUb3AoKSxuPWUuZ2V0U2Vzc2lvbigpO24mJnQmJnQuY2FwdHVyZVNlc3Npb24mJnQuY2FwdHVyZVNlc3Npb24obil9X3dpdGhDbGllbnQoZSl7Y29uc3R7c2NvcGU6dCxjbGllbnQ6bn09dGhpcy5nZXRTdGFja1RvcCgpO24mJmUobix0KX1fY2FsbEV4dGVuc2lvbk1ldGhvZChlLC4uLnQpe2NvbnN0IG49Um4oKS5fX1NFTlRSWV9fO2lmKG4mJm4uZXh0ZW5zaW9ucyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIG4uZXh0ZW5zaW9uc1tlXSlyZXR1cm4gbi5leHRlbnNpb25zW2VdLmFwcGx5KHRoaXMsdCk7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLndhcm4oYEV4dGVuc2lvbiBtZXRob2QgJHtlfSBjb3VsZG4ndCBiZSBmb3VuZCwgZG9pbmcgbm90aGluZy5gKX19ZnVuY3Rpb24gUm4oKXtyZXR1cm4gZW4ubjIuX19TRU5UUllfXz1lbi5uMi5fX1NFTlRSWV9ffHx7ZXh0ZW5zaW9uczp7fSxodWI6dm9pZCAwfSxlbi5uMn1mdW5jdGlvbiB3bihlKXtjb25zdCB0PVJuKCksbj1Ebih0KTtyZXR1cm4gam4odCxlKSxufWZ1bmN0aW9uIExuKCl7Y29uc3QgZT1SbigpO2lmKGUuX19TRU5UUllfXyYmZS5fX1NFTlRSWV9fLmFjcyl7Y29uc3QgdD1lLl9fU0VOVFJZX18uYWNzLmdldEN1cnJlbnRIdWIoKTtpZih0KXJldHVybiB0fXJldHVybiBCbihlKX1mdW5jdGlvbiBCbihlPVJuKCkpe3JldHVybiBNbihlKSYmIURuKGUpLmlzT2xkZXJUaGFuKDQpfHxqbihlLG5ldyBQbiksRG4oZSl9ZnVuY3Rpb24gTW4oZSl7cmV0dXJuISEoZSYmZS5fX1NFTlRSWV9fJiZlLl9fU0VOVFJZX18uaHViKX1mdW5jdGlvbiBEbihlKXtyZXR1cm4oMCxlbi5ZTykoXCJodWJcIiwoKCk9Pm5ldyBQbiksZSl9ZnVuY3Rpb24gam4oZSx0KXtpZighZSlyZXR1cm4hMTtyZXR1cm4oZS5fX1NFTlRSWV9fPWUuX19TRU5UUllfX3x8e30pLmh1Yj10LCEwfWZ1bmN0aW9uIHhuKGUsdCl7cmV0dXJuIExuKCkuY2FwdHVyZUV4Y2VwdGlvbihlLHtjYXB0dXJlQ29udGV4dDp0fSl9ZnVuY3Rpb24gVW4oZSx0PTApe3JldHVyblwic3RyaW5nXCIhPT10eXBlb2YgZXx8MD09PXR8fGUubGVuZ3RoPD10P2U6YCR7ZS5zbGljZSgwLHQpfS4uLmB9ZnVuY3Rpb24gRm4oZSx0LG49ITEpe3JldHVybiEhZG4oZSkmJihsbih0LFwiUmVnRXhwXCIpP3QudGVzdChlKTohIWRuKHQpJiYobj9lPT09dDplLmluY2x1ZGVzKHQpKSl9Y29uc3QgSG49XCI8YW5vbnltb3VzPlwiO2Z1bmN0aW9uIEduKGUpe3RyeXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGUmJmUubmFtZXx8SG59Y2F0Y2godCl7cmV0dXJuIEhufX1mdW5jdGlvbiBXbihlLHQ9MTAwLG49MS8wKXt0cnl7cmV0dXJuIFZuKFwiXCIsZSx0LG4pfWNhdGNoKHIpe3JldHVybntFUlJPUjpgKipub24tc2VyaWFsaXphYmxlKiogKCR7cn0pYH19fWZ1bmN0aW9uIFZuKGUsdCxyPTEvMCxpPTEvMCxvPWZ1bmN0aW9uKCl7Y29uc3QgZT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha1NldCx0PWU/bmV3IFdlYWtTZXQ6W107cmV0dXJuW2Z1bmN0aW9uKG4pe2lmKGUpcmV0dXJuISF0LmhhcyhuKXx8KHQuYWRkKG4pLCExKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpZih0W2VdPT09bilyZXR1cm4hMDtyZXR1cm4gdC5wdXNoKG4pLCExfSxmdW5jdGlvbihuKXtpZihlKXQuZGVsZXRlKG4pO2Vsc2UgZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXT09PW4pe3Quc3BsaWNlKGUsMSk7YnJlYWt9fV19KCkpe2NvbnN0W2Esc109bztpZihudWxsPT10fHxbXCJudW1iZXJcIixcImJvb2xlYW5cIixcInN0cmluZ1wiXS5pbmNsdWRlcyh0eXBlb2YgdCkmJihcIm51bWJlclwiIT09dHlwZW9mKGM9dCl8fGM9PT1jKSlyZXR1cm4gdDt2YXIgYztjb25zdCB1PWZ1bmN0aW9uKGUsdCl7dHJ5e2lmKFwiZG9tYWluXCI9PT1lJiZ0JiZcIm9iamVjdFwiPT09dHlwZW9mIHQmJnQuX2V2ZW50cylyZXR1cm5cIltEb21haW5dXCI7aWYoXCJkb21haW5FbWl0dGVyXCI9PT1lKXJldHVyblwiW0RvbWFpbkVtaXR0ZXJdXCI7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBuLmcmJnQ9PT1uLmcpcmV0dXJuXCJbR2xvYmFsXVwiO2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2Ygd2luZG93JiZ0PT09d2luZG93KXJldHVyblwiW1dpbmRvd11cIjtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50JiZ0PT09ZG9jdW1lbnQpcmV0dXJuXCJbRG9jdW1lbnRdXCI7aWYoZnVuY3Rpb24oZSl7cmV0dXJuIHBuKGUpJiZcIm5hdGl2ZUV2ZW50XCJpbiBlJiZcInByZXZlbnREZWZhdWx0XCJpbiBlJiZcInN0b3BQcm9wYWdhdGlvblwiaW4gZX0odCkpcmV0dXJuXCJbU3ludGhldGljRXZlbnRdXCI7aWYoXCJudW1iZXJcIj09PXR5cGVvZiB0JiZ0IT09dClyZXR1cm5cIltOYU5dXCI7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQpcmV0dXJuYFtGdW5jdGlvbjogJHtHbih0KX1dYDtpZihcInN5bWJvbFwiPT09dHlwZW9mIHQpcmV0dXJuYFske1N0cmluZyh0KX1dYDtpZihcImJpZ2ludFwiPT09dHlwZW9mIHQpcmV0dXJuYFtCaWdJbnQ6ICR7U3RyaW5nKHQpfV1gO2NvbnN0IHI9ZnVuY3Rpb24oZSl7Y29uc3QgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIHQ/dC5jb25zdHJ1Y3Rvci5uYW1lOlwibnVsbCBwcm90b3R5cGVcIn0odCk7cmV0dXJuL15IVE1MKFxcdyopRWxlbWVudCQvLnRlc3Qocik/YFtIVE1MRWxlbWVudDogJHtyfV1gOmBbb2JqZWN0ICR7cn1dYH1jYXRjaChyKXtyZXR1cm5gKipub24tc2VyaWFsaXphYmxlKiogKCR7cn0pYH19KGUsdCk7aWYoIXUuc3RhcnRzV2l0aChcIltvYmplY3QgXCIpKXJldHVybiB1O2lmKHQuX19zZW50cnlfc2tpcF9ub3JtYWxpemF0aW9uX18pcmV0dXJuIHQ7Y29uc3QgbD1cIm51bWJlclwiPT09dHlwZW9mIHQuX19zZW50cnlfb3ZlcnJpZGVfbm9ybWFsaXphdGlvbl9kZXB0aF9fP3QuX19zZW50cnlfb3ZlcnJpZGVfbm9ybWFsaXphdGlvbl9kZXB0aF9fOnI7aWYoMD09PWwpcmV0dXJuIHUucmVwbGFjZShcIm9iamVjdCBcIixcIlwiKTtpZihhKHQpKXJldHVyblwiW0NpcmN1bGFyIH5dXCI7Y29uc3QgZD10O2lmKGQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLnRvSlNPTil0cnl7cmV0dXJuIFZuKFwiXCIsZC50b0pTT04oKSxsLTEsaSxvKX1jYXRjaChnKXt9Y29uc3QgcD1BcnJheS5pc0FycmF5KHQpP1tdOnt9O2xldCBmPTA7Y29uc3QgaD1ibih0KTtmb3IoY29uc3QgbiBpbiBoKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGgsbikpY29udGludWU7aWYoZj49aSl7cFtuXT1cIltNYXhQcm9wZXJ0aWVzIH5dXCI7YnJlYWt9Y29uc3QgZT1oW25dO3Bbbl09Vm4obixlLGwtMSxpLG8pLGYrK31yZXR1cm4gcyh0KSxwfWZ1bmN0aW9uIHpuKGUsdCxuLHIpe2NvbnN0e25vcm1hbGl6ZURlcHRoOmk9Myxub3JtYWxpemVNYXhCcmVhZHRoOm89MWUzfT1lLGE9ey4uLnQsZXZlbnRfaWQ6dC5ldmVudF9pZHx8bi5ldmVudF9pZHx8dG4oKSx0aW1lc3RhbXA6dC50aW1lc3RhbXB8fCgwLG5uLnlXKSgpfSxzPW4uaW50ZWdyYXRpb25zfHxlLmludGVncmF0aW9ucy5tYXAoKGU9PmUubmFtZSkpOyFmdW5jdGlvbihlLHQpe2NvbnN0e2Vudmlyb25tZW50Om4scmVsZWFzZTpyLGRpc3Q6aSxtYXhWYWx1ZUxlbmd0aDpvPTI1MH09dDtcImVudmlyb25tZW50XCJpbiBlfHwoZS5lbnZpcm9ubWVudD1cImVudmlyb25tZW50XCJpbiB0P246Y24pO3ZvaWQgMD09PWUucmVsZWFzZSYmdm9pZCAwIT09ciYmKGUucmVsZWFzZT1yKTt2b2lkIDA9PT1lLmRpc3QmJnZvaWQgMCE9PWkmJihlLmRpc3Q9aSk7ZS5tZXNzYWdlJiYoZS5tZXNzYWdlPVVuKGUubWVzc2FnZSxvKSk7Y29uc3QgYT1lLmV4Y2VwdGlvbiYmZS5leGNlcHRpb24udmFsdWVzJiZlLmV4Y2VwdGlvbi52YWx1ZXNbMF07YSYmYS52YWx1ZSYmKGEudmFsdWU9VW4oYS52YWx1ZSxvKSk7Y29uc3Qgcz1lLnJlcXVlc3Q7cyYmcy51cmwmJihzLnVybD1VbihzLnVybCxvKSl9KGEsZSksZnVuY3Rpb24oZSx0KXt0Lmxlbmd0aD4wJiYoZS5zZGs9ZS5zZGt8fHt9LGUuc2RrLmludGVncmF0aW9ucz1bLi4uZS5zZGsuaW50ZWdyYXRpb25zfHxbXSwuLi50XSl9KGEscyksdm9pZCAwPT09dC50eXBlJiZmdW5jdGlvbihlLHQpe2NvbnN0IG49ZW4ubjIuX3NlbnRyeURlYnVnSWRzO2lmKCFuKXJldHVybjtsZXQgcjtjb25zdCBpPUtuLmdldCh0KTtpP3I9aToocj1uZXcgTWFwLEtuLnNldCh0LHIpKTtjb25zdCBvPU9iamVjdC5rZXlzKG4pLnJlZHVjZSgoKGUsaSk9PntsZXQgbztjb25zdCBhPXIuZ2V0KGkpO2E/bz1hOihvPXQoaSksci5zZXQoaSxvKSk7Zm9yKGxldCB0PW8ubGVuZ3RoLTE7dD49MDt0LS0pe2NvbnN0IHI9b1t0XTtpZihyLmZpbGVuYW1lKXtlW3IuZmlsZW5hbWVdPW5baV07YnJlYWt9fXJldHVybiBlfSkse30pLGE9bmV3IFNldDt0cnl7ZS5leGNlcHRpb24udmFsdWVzLmZvckVhY2goKGU9PntlLnN0YWNrdHJhY2UuZnJhbWVzLmZvckVhY2goKGU9PntlLmZpbGVuYW1lJiZhLmFkZChlLmZpbGVuYW1lKX0pKX0pKX1jYXRjaChjKXt9ZS5kZWJ1Z19tZXRhPWUuZGVidWdfbWV0YXx8e30sZS5kZWJ1Z19tZXRhLmltYWdlcz1lLmRlYnVnX21ldGEuaW1hZ2VzfHxbXTtjb25zdCBzPWUuZGVidWdfbWV0YS5pbWFnZXM7YS5mb3JFYWNoKChlPT57b1tlXSYmcy5wdXNoKHt0eXBlOlwic291cmNlbWFwXCIsY29kZV9maWxlOmUsZGVidWdfaWQ6b1tlXX0pfSkpfShhLGUuc3RhY2tQYXJzZXIpO2xldCBjPXI7bi5jYXB0dXJlQ29udGV4dCYmKGM9Q24uY2xvbmUoYykudXBkYXRlKG4uY2FwdHVyZUNvbnRleHQpKTtsZXQgdT0obD1hLG5ldyBtbigoZT0+e2UobCl9KSkpO3ZhciBsO2lmKGMpe2lmKGMuZ2V0QXR0YWNobWVudHMpe2NvbnN0IGU9Wy4uLm4uYXR0YWNobWVudHN8fFtdLC4uLmMuZ2V0QXR0YWNobWVudHMoKV07ZS5sZW5ndGgmJihuLmF0dGFjaG1lbnRzPWUpfXU9Yy5hcHBseVRvRXZlbnQoYSxuKX1yZXR1cm4gdS50aGVuKChlPT5cIm51bWJlclwiPT09dHlwZW9mIGkmJmk+MD9mdW5jdGlvbihlLHQsbil7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3Qgcj17Li4uZSwuLi5lLmJyZWFkY3J1bWJzJiZ7YnJlYWRjcnVtYnM6ZS5icmVhZGNydW1icy5tYXAoKGU9Pih7Li4uZSwuLi5lLmRhdGEmJntkYXRhOlduKGUuZGF0YSx0LG4pfX0pKSl9LC4uLmUudXNlciYme3VzZXI6V24oZS51c2VyLHQsbil9LC4uLmUuY29udGV4dHMmJntjb250ZXh0czpXbihlLmNvbnRleHRzLHQsbil9LC4uLmUuZXh0cmEmJntleHRyYTpXbihlLmV4dHJhLHQsbil9fTtlLmNvbnRleHRzJiZlLmNvbnRleHRzLnRyYWNlJiZyLmNvbnRleHRzJiYoci5jb250ZXh0cy50cmFjZT1lLmNvbnRleHRzLnRyYWNlLGUuY29udGV4dHMudHJhY2UuZGF0YSYmKHIuY29udGV4dHMudHJhY2UuZGF0YT1XbihlLmNvbnRleHRzLnRyYWNlLmRhdGEsdCxuKSkpO2Uuc3BhbnMmJihyLnNwYW5zPWUuc3BhbnMubWFwKChlPT4oZS5kYXRhJiYoZS5kYXRhPVduKGUuZGF0YSx0LG4pKSxlKSkpKTtyZXR1cm4gcn0oZSxpLG8pOmUpKX1jb25zdCBLbj1uZXcgV2Vha01hcDtjb25zdCBZbj0oMCxlbi5SZikoKTtmdW5jdGlvbiBxbigpe2lmKCEoXCJmZXRjaFwiaW4gWW4pKXJldHVybiExO3RyeXtyZXR1cm4gbmV3IEhlYWRlcnMsbmV3IFJlcXVlc3QoXCJodHRwOi8vd3d3LmV4YW1wbGUuY29tXCIpLG5ldyBSZXNwb25zZSwhMH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gWm4oZSl7cmV0dXJuIGUmJi9eZnVuY3Rpb24gZmV0Y2hcXChcXClcXHMrXFx7XFxzK1xcW25hdGl2ZSBjb2RlXFxdXFxzK1xcfSQvLnRlc3QoZS50b1N0cmluZygpKX1jb25zdCBKbj0oMCxlbi5SZikoKTtjb25zdCBYbj0oMCxlbi5SZikoKSxRbj17fSwkbj17fTtmdW5jdGlvbiBlcihlKXtpZighJG5bZV0pc3dpdGNoKCRuW2VdPSEwLGUpe2Nhc2VcImNvbnNvbGVcIjohZnVuY3Rpb24oKXtpZighKFwiY29uc29sZVwiaW4gWG4pKXJldHVybjtybi5mb3JFYWNoKChmdW5jdGlvbihlKXtlIGluIFhuLmNvbnNvbGUmJkVuKFhuLmNvbnNvbGUsZSwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKC4uLm4pe25yKFwiY29uc29sZVwiLHthcmdzOm4sbGV2ZWw6ZX0pLHQmJnQuYXBwbHkoWG4uY29uc29sZSxuKX19KSl9KSl9KCk7YnJlYWs7Y2FzZVwiZG9tXCI6IWZ1bmN0aW9uKCl7aWYoIShcImRvY3VtZW50XCJpbiBYbikpcmV0dXJuO2NvbnN0IGU9bnIuYmluZChudWxsLFwiZG9tXCIpLHQ9Y3IoZSwhMCk7WG4uZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdCwhMSksWG4uZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXByZXNzXCIsdCwhMSksW1wiRXZlbnRUYXJnZXRcIixcIk5vZGVcIl0uZm9yRWFjaCgodD0+e2NvbnN0IG49WG5bdF0mJlhuW3RdLnByb3RvdHlwZTtuJiZuLmhhc093blByb3BlcnR5JiZuLmhhc093blByb3BlcnR5KFwiYWRkRXZlbnRMaXN0ZW5lclwiKSYmKEVuKG4sXCJhZGRFdmVudExpc3RlbmVyXCIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLHIsaSl7aWYoXCJjbGlja1wiPT09bnx8XCJrZXlwcmVzc1wiPT1uKXRyeXtjb25zdCByPXRoaXMsbz1yLl9fc2VudHJ5X2luc3RydW1lbnRhdGlvbl9oYW5kbGVyc19fPXIuX19zZW50cnlfaW5zdHJ1bWVudGF0aW9uX2hhbmRsZXJzX198fHt9LGE9b1tuXT1vW25dfHx7cmVmQ291bnQ6MH07aWYoIWEuaGFuZGxlcil7Y29uc3Qgcj1jcihlKTthLmhhbmRsZXI9cix0LmNhbGwodGhpcyxuLHIsaSl9YS5yZWZDb3VudCsrfWNhdGNoKG8pe31yZXR1cm4gdC5jYWxsKHRoaXMsbixyLGkpfX0pKSxFbihuLFwicmVtb3ZlRXZlbnRMaXN0ZW5lclwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2lmKFwiY2xpY2tcIj09PXR8fFwia2V5cHJlc3NcIj09dCl0cnl7Y29uc3Qgbj10aGlzLGk9bi5fX3NlbnRyeV9pbnN0cnVtZW50YXRpb25faGFuZGxlcnNfX3x8e30sbz1pW3RdO28mJihvLnJlZkNvdW50LS0sby5yZWZDb3VudDw9MCYmKGUuY2FsbCh0aGlzLHQsby5oYW5kbGVyLHIpLG8uaGFuZGxlcj12b2lkIDAsZGVsZXRlIGlbdF0pLDA9PT1PYmplY3Qua2V5cyhpKS5sZW5ndGgmJmRlbGV0ZSBuLl9fc2VudHJ5X2luc3RydW1lbnRhdGlvbl9oYW5kbGVyc19fKX1jYXRjaChpKXt9cmV0dXJuIGUuY2FsbCh0aGlzLHQsbixyKX19KSkpfSkpfSgpO2JyZWFrO2Nhc2VcInhoclwiOiFmdW5jdGlvbigpe2lmKCEoXCJYTUxIdHRwUmVxdWVzdFwiaW4gWG4pKXJldHVybjtjb25zdCBlPVhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZTtFbihlLFwib3BlblwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3Qgbj10WzFdLHI9dGhpcy5fX3NlbnRyeV94aHJfdjJfXz17bWV0aG9kOmRuKHRbMF0pP3RbMF0udG9VcHBlckNhc2UoKTp0WzBdLHVybDp0WzFdLHJlcXVlc3RfaGVhZGVyczp7fX07ZG4obikmJlwiUE9TVFwiPT09ci5tZXRob2QmJm4ubWF0Y2goL3NlbnRyeV9rZXkvKSYmKHRoaXMuX19zZW50cnlfb3duX3JlcXVlc3RfXz0hMCk7Y29uc3QgaT0oKT0+e2NvbnN0IGU9dGhpcy5fX3NlbnRyeV94aHJfdjJfXztpZihlJiY0PT09dGhpcy5yZWFkeVN0YXRlKXt0cnl7ZS5zdGF0dXNfY29kZT10aGlzLnN0YXR1c31jYXRjaChuKXt9bnIoXCJ4aHJcIix7YXJnczp0LGVuZFRpbWVzdGFtcDpEYXRlLm5vdygpLHN0YXJ0VGltZXN0YW1wOkRhdGUubm93KCkseGhyOnRoaXN9KX19O3JldHVyblwib25yZWFkeXN0YXRlY2hhbmdlXCJpbiB0aGlzJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U/RW4odGhpcyxcIm9ucmVhZHlzdGF0ZWNoYW5nZVwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7cmV0dXJuIGkoKSxlLmFwcGx5KHRoaXMsdCl9fSkpOnRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcInJlYWR5c3RhdGVjaGFuZ2VcIixpKSxFbih0aGlzLFwic2V0UmVxdWVzdEhlYWRlclwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3RbbixyXT10LGk9dGhpcy5fX3NlbnRyeV94aHJfdjJfXztyZXR1cm4gaSYmKGkucmVxdWVzdF9oZWFkZXJzW24udG9Mb3dlckNhc2UoKV09ciksZS5hcHBseSh0aGlzLHQpfX0pKSxlLmFwcGx5KHRoaXMsdCl9fSkpLEVuKGUsXCJzZW5kXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCBuPXRoaXMuX19zZW50cnlfeGhyX3YyX187cmV0dXJuIG4mJnZvaWQgMCE9PXRbMF0mJihuLmJvZHk9dFswXSksbnIoXCJ4aHJcIix7YXJnczp0LHN0YXJ0VGltZXN0YW1wOkRhdGUubm93KCkseGhyOnRoaXN9KSxlLmFwcGx5KHRoaXMsdCl9fSkpfSgpO2JyZWFrO2Nhc2VcImZldGNoXCI6IWZ1bmN0aW9uKCl7aWYoIWZ1bmN0aW9uKCl7aWYoIXFuKCkpcmV0dXJuITE7aWYoWm4oWW4uZmV0Y2gpKXJldHVybiEwO2xldCBlPSExO2NvbnN0IHQ9WW4uZG9jdW1lbnQ7aWYodCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuY3JlYXRlRWxlbWVudCl0cnl7Y29uc3Qgbj10LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7bi5oaWRkZW49ITAsdC5oZWFkLmFwcGVuZENoaWxkKG4pLG4uY29udGVudFdpbmRvdyYmbi5jb250ZW50V2luZG93LmZldGNoJiYoZT1abihuLmNvbnRlbnRXaW5kb3cuZmV0Y2gpKSx0LmhlYWQucmVtb3ZlQ2hpbGQobil9Y2F0Y2gobil7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLndhcm4oXCJDb3VsZCBub3QgY3JlYXRlIHNhbmRib3ggaWZyYW1lIGZvciBwdXJlIGZldGNoIGNoZWNrLCBiYWlsaW5nIHRvIHdpbmRvdy5mZXRjaDogXCIsbil9cmV0dXJuIGV9KCkpcmV0dXJuO0VuKFhuLFwiZmV0Y2hcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0e21ldGhvZDpuLHVybDpyfT1mdW5jdGlvbihlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJue21ldGhvZDpcIkdFVFwiLHVybDpcIlwifTtpZigyPT09ZS5sZW5ndGgpe2NvbnN0W3Qsbl09ZTtyZXR1cm57dXJsOmlyKHQpLG1ldGhvZDpycihuLFwibWV0aG9kXCIpP1N0cmluZyhuLm1ldGhvZCkudG9VcHBlckNhc2UoKTpcIkdFVFwifX1jb25zdCB0PWVbMF07cmV0dXJue3VybDppcih0KSxtZXRob2Q6cnIodCxcIm1ldGhvZFwiKT9TdHJpbmcodC5tZXRob2QpLnRvVXBwZXJDYXNlKCk6XCJHRVRcIn19KHQpLGk9e2FyZ3M6dCxmZXRjaERhdGE6e21ldGhvZDpuLHVybDpyfSxzdGFydFRpbWVzdGFtcDpEYXRlLm5vdygpfTtyZXR1cm4gbnIoXCJmZXRjaFwiLHsuLi5pfSksZS5hcHBseShYbix0KS50aGVuKChlPT4obnIoXCJmZXRjaFwiLHsuLi5pLGVuZFRpbWVzdGFtcDpEYXRlLm5vdygpLHJlc3BvbnNlOmV9KSxlKSksKGU9Pnt0aHJvdyBucihcImZldGNoXCIsey4uLmksZW5kVGltZXN0YW1wOkRhdGUubm93KCksZXJyb3I6ZX0pLGV9KSl9fSkpfSgpO2JyZWFrO2Nhc2VcImhpc3RvcnlcIjohZnVuY3Rpb24oKXtpZighZnVuY3Rpb24oKXtjb25zdCBlPUpuLmNocm9tZSx0PWUmJmUuYXBwJiZlLmFwcC5ydW50aW1lLG49XCJoaXN0b3J5XCJpbiBKbiYmISFKbi5oaXN0b3J5LnB1c2hTdGF0ZSYmISFKbi5oaXN0b3J5LnJlcGxhY2VTdGF0ZTtyZXR1cm4hdCYmbn0oKSlyZXR1cm47Y29uc3QgZT1Ybi5vbnBvcHN0YXRlO2Z1bmN0aW9uIHQoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0IG49dC5sZW5ndGg+Mj90WzJdOnZvaWQgMDtpZihuKXtjb25zdCBlPW9yLHQ9U3RyaW5nKG4pO29yPXQsbnIoXCJoaXN0b3J5XCIse2Zyb206ZSx0bzp0fSl9cmV0dXJuIGUuYXBwbHkodGhpcyx0KX19WG4ub25wb3BzdGF0ZT1mdW5jdGlvbiguLi50KXtjb25zdCBuPVhuLmxvY2F0aW9uLmhyZWYscj1vcjtpZihvcj1uLG5yKFwiaGlzdG9yeVwiLHtmcm9tOnIsdG86bn0pLGUpdHJ5e3JldHVybiBlLmFwcGx5KHRoaXMsdCl9Y2F0Y2goaSl7fX0sRW4oWG4uaGlzdG9yeSxcInB1c2hTdGF0ZVwiLHQpLEVuKFhuLmhpc3RvcnksXCJyZXBsYWNlU3RhdGVcIix0KX0oKTticmVhaztjYXNlXCJlcnJvclwiOnVyPVhuLm9uZXJyb3IsWG4ub25lcnJvcj1mdW5jdGlvbihlLHQsbixyLGkpe3JldHVybiBucihcImVycm9yXCIse2NvbHVtbjpyLGVycm9yOmksbGluZTpuLG1zZzplLHVybDp0fSksISghdXJ8fHVyLl9fU0VOVFJZX0xPQURFUl9fKSYmdXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxYbi5vbmVycm9yLl9fU0VOVFJZX0lOU1RSVU1FTlRFRF9fPSEwO2JyZWFrO2Nhc2VcInVuaGFuZGxlZHJlamVjdGlvblwiOmxyPVhuLm9udW5oYW5kbGVkcmVqZWN0aW9uLFhuLm9udW5oYW5kbGVkcmVqZWN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBucihcInVuaGFuZGxlZHJlamVjdGlvblwiLGUpLCEobHImJiFsci5fX1NFTlRSWV9MT0FERVJfXyl8fGxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sWG4ub251bmhhbmRsZWRyZWplY3Rpb24uX19TRU5UUllfSU5TVFJVTUVOVEVEX189ITA7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmc24ud2FybihcInVua25vd24gaW5zdHJ1bWVudGF0aW9uIHR5cGU6XCIsZSkpfX1mdW5jdGlvbiB0cihlLHQpe1FuW2VdPVFuW2VdfHxbXSxRbltlXS5wdXNoKHQpLGVyKGUpfWZ1bmN0aW9uIG5yKGUsdCl7aWYoZSYmUW5bZV0pZm9yKGNvbnN0IHIgb2YgUW5bZV18fFtdKXRyeXtyKHQpfWNhdGNoKG4peyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5lcnJvcihgRXJyb3Igd2hpbGUgdHJpZ2dlcmluZyBpbnN0cnVtZW50YXRpb24gaGFuZGxlci5cXG5UeXBlOiAke2V9XFxuTmFtZTogJHtHbihyKX1cXG5FcnJvcjpgLG4pfX1mdW5jdGlvbiBycihlLHQpe3JldHVybiEhZSYmXCJvYmplY3RcIj09PXR5cGVvZiBlJiYhIWVbdF19ZnVuY3Rpb24gaXIoZSl7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBlP2U6ZT9ycihlLFwidXJsXCIpP2UudXJsOmUudG9TdHJpbmc/ZS50b1N0cmluZygpOlwiXCI6XCJcIn1sZXQgb3I7bGV0IGFyLHNyO2Z1bmN0aW9uIGNyKGUsdD0hMSl7cmV0dXJuIG49PntpZighbnx8c3I9PT1uKXJldHVybjtpZihmdW5jdGlvbihlKXtpZihcImtleXByZXNzXCIhPT1lLnR5cGUpcmV0dXJuITE7dHJ5e2NvbnN0IHQ9ZS50YXJnZXQ7aWYoIXR8fCF0LnRhZ05hbWUpcmV0dXJuITA7aWYoXCJJTlBVVFwiPT09dC50YWdOYW1lfHxcIlRFWFRBUkVBXCI9PT10LnRhZ05hbWV8fHQuaXNDb250ZW50RWRpdGFibGUpcmV0dXJuITF9Y2F0Y2godCl7fXJldHVybiEwfShuKSlyZXR1cm47Y29uc3Qgcj1cImtleXByZXNzXCI9PT1uLnR5cGU/XCJpbnB1dFwiOm4udHlwZTsodm9pZCAwPT09YXJ8fGZ1bmN0aW9uKGUsdCl7aWYoIWUpcmV0dXJuITA7aWYoZS50eXBlIT09dC50eXBlKXJldHVybiEwO3RyeXtpZihlLnRhcmdldCE9PXQudGFyZ2V0KXJldHVybiEwfWNhdGNoKG4pe31yZXR1cm4hMX0oc3IsbikpJiYoZSh7ZXZlbnQ6bixuYW1lOnIsZ2xvYmFsOnR9KSxzcj1uKSxjbGVhclRpbWVvdXQoYXIpLGFyPVhuLnNldFRpbWVvdXQoKCgpPT57YXI9dm9pZCAwfSksMWUzKX19bGV0IHVyPW51bGw7bGV0IGxyPW51bGw7ZnVuY3Rpb24gZHIoZSx0PSExKXtjb25zdHtob3N0Om4scGF0aDpyLHBhc3M6aSxwb3J0Om8scHJvamVjdElkOmEscHJvdG9jb2w6cyxwdWJsaWNLZXk6Y309ZTtyZXR1cm5gJHtzfTovLyR7Y30ke3QmJmk/YDoke2l9YDpcIlwifUAke259JHtvP2A6JHtvfWA6XCJcIn0vJHtyP2Ake3J9L2A6cn0ke2F9YH12YXIgcHI9big3OTYyMSksZnI9bigzNDE1NSk7Y29uc3QgaHI9ZW4ubjIsZ3I9XCJzZW50cnlSZXBsYXlTZXNzaW9uXCIsbXI9XCJVbmFibGUgdG8gc2VuZCBSZXBsYXlcIix2cj0xNWU0LF9yPTVlMzt2YXIgRXI7ZnVuY3Rpb24gYnIoZSl7Y29uc3QgdD1udWxsPT09ZXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5ob3N0O3JldHVybiBCb29sZWFuKHQmJnQuc2hhZG93Um9vdCYmdC5zaGFkb3dSb290PT09ZSl9ZnVuY3Rpb24gU3Ioe21hc2tJbnB1dE9wdGlvbnM6ZSx0YWdOYW1lOnQsdHlwZTpufSl7XCJvcHRpb25cIj09PXQudG9Mb3dlckNhc2UoKSYmKHQ9XCJzZWxlY3RcIik7Y29uc3Qgcj1cInN0cmluZ1wiPT09dHlwZW9mIG4/bi50b0xvd2VyQ2FzZSgpOnZvaWQgMDtyZXR1cm4gZVt0LnRvTG93ZXJDYXNlKCldfHxyJiZlW3JdfHxcInBhc3N3b3JkXCI9PT1yfHxcImlucHV0XCI9PT10JiYhbiYmZS50ZXh0fWZ1bmN0aW9uIHlyKHtpbnB1dDplLG1hc2tJbnB1dFNlbGVjdG9yOnQsdW5tYXNrSW5wdXRTZWxlY3RvcjpuLG1hc2tJbnB1dE9wdGlvbnM6cix0YWdOYW1lOmksdHlwZTpvLHZhbHVlOmEsbWFza0lucHV0Rm46c30pe2xldCBjPWF8fFwiXCI7cmV0dXJuIG4mJmUubWF0Y2hlcyhuKXx8KGUuaGFzQXR0cmlidXRlKFwiZGF0YS1yci1pcy1wYXNzd29yZFwiKSYmKG89XCJwYXNzd29yZFwiKSwoU3Ioe21hc2tJbnB1dE9wdGlvbnM6cix0YWdOYW1lOmksdHlwZTpvfSl8fHQmJmUubWF0Y2hlcyh0KSkmJihjPXM/cyhjKTpcIipcIi5yZXBlYXQoYy5sZW5ndGgpKSksY30hZnVuY3Rpb24oZSl7ZVtlLkRvY3VtZW50PTBdPVwiRG9jdW1lbnRcIixlW2UuRG9jdW1lbnRUeXBlPTFdPVwiRG9jdW1lbnRUeXBlXCIsZVtlLkVsZW1lbnQ9Ml09XCJFbGVtZW50XCIsZVtlLlRleHQ9M109XCJUZXh0XCIsZVtlLkNEQVRBPTRdPVwiQ0RBVEFcIixlW2UuQ29tbWVudD01XT1cIkNvbW1lbnRcIn0oRXJ8fChFcj17fSkpO2NvbnN0IFRyPVwiX19ycndlYl9vcmlnaW5hbF9fXCI7ZnVuY3Rpb24gSXIoZSl7Y29uc3QgdD1lLnR5cGU7cmV0dXJuIGUuaGFzQXR0cmlidXRlKFwiZGF0YS1yci1pcy1wYXNzd29yZFwiKT9cInBhc3N3b3JkXCI6dD90LnRvTG93ZXJDYXNlKCk6bnVsbH1mdW5jdGlvbiBPcihlLHQsbil7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBuJiZuLnRvTG93ZXJDYXNlKCksXCJJTlBVVFwiIT09dHx8XCJyYWRpb1wiIT09biYmXCJjaGVja2JveFwiIT09bj9lLnZhbHVlOmUuZ2V0QXR0cmlidXRlKFwidmFsdWVcIil8fFwiXCJ9bGV0IEFyPTE7Y29uc3QgQ3I9bmV3IFJlZ0V4cChcIlteYS16MC05LV86XVwiKTtmdW5jdGlvbiBOcihlKXtyZXR1cm4gZT9lLnJlcGxhY2UoL1tcXFNdL2csXCIqXCIpOlwiXCJ9ZnVuY3Rpb24ga3IoZSl7dHJ5e2NvbnN0IHQ9ZS5ydWxlc3x8ZS5jc3NSdWxlcztyZXR1cm4gdD9BcnJheS5mcm9tKHQpLm1hcChQcikuam9pbihcIlwiKTpudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfX1mdW5jdGlvbiBQcihlKXtsZXQgdD1lLmNzc1RleHQ7aWYoZnVuY3Rpb24oZSl7cmV0dXJuXCJzdHlsZVNoZWV0XCJpbiBlfShlKSl0cnl7dD1rcihlLnN0eWxlU2hlZXQpfHx0fWNhdGNoKG4pe31yZXR1cm4gUnIodCl9ZnVuY3Rpb24gUnIoZSl7aWYoZS5pbmRleE9mKFwiOlwiKT4tMSl7Y29uc3QgdD0vKFxcWyg/OltcXHctXSspW15cXFxcXSkoOig/OltcXHctXSspXFxdKS9nbTtyZXR1cm4gZS5yZXBsYWNlKHQsXCIkMVxcXFwkMlwiKX1yZXR1cm4gZX1sZXQgd3IsTHI7Y29uc3QgQnI9L3VybFxcKCg/OignKShbXiddKiknfChcIikoLio/KVwifChbXildKikpXFwpL2dtLE1yPS9eKD8hd3d3XFwufCg/Omh0dHB8ZnRwKXM/OlxcL1xcL3xbQS1aYS16XTpcXFxcfFxcL1xcL3wjKS4qLyxEcj0vXihkYXRhOikoW14sXSopLCguKikvaTtmdW5jdGlvbiBqcihlLHQpe3JldHVybihlfHxcIlwiKS5yZXBsYWNlKEJyLCgoZSxuLHIsaSxvLGEpPT57Y29uc3Qgcz1yfHxvfHxhLGM9bnx8aXx8XCJcIjtpZighcylyZXR1cm4gZTtpZighTXIudGVzdChzKSlyZXR1cm5gdXJsKCR7Y30ke3N9JHtjfSlgO2lmKERyLnRlc3QocykpcmV0dXJuYHVybCgke2N9JHtzfSR7Y30pYDtpZihcIi9cIj09PXNbMF0pcmV0dXJuYHVybCgke2N9JHtmdW5jdGlvbihlKXtsZXQgdD1cIlwiO3JldHVybiB0PWUuaW5kZXhPZihcIi8vXCIpPi0xP2Uuc3BsaXQoXCIvXCIpLnNsaWNlKDAsMykuam9pbihcIi9cIik6ZS5zcGxpdChcIi9cIilbMF0sdD10LnNwbGl0KFwiP1wiKVswXSx0fSh0KStzfSR7Y30pYDtjb25zdCB1PXQuc3BsaXQoXCIvXCIpLGw9cy5zcGxpdChcIi9cIik7dS5wb3AoKTtmb3IoY29uc3QgdCBvZiBsKVwiLlwiIT09dCYmKFwiLi5cIj09PXQ/dS5wb3AoKTp1LnB1c2godCkpO3JldHVybmB1cmwoJHtjfSR7dS5qb2luKFwiL1wiKX0ke2N9KWB9KSl9Y29uc3QgeHI9L15bXiBcXHRcXG5cXHJcXHUwMDBjXSsvLFVyPS9eWywgXFx0XFxuXFxyXFx1MDAwY10rLztmdW5jdGlvbiBGcihlLHQpe2lmKCF0fHxcIlwiPT09dC50cmltKCkpcmV0dXJuIHQ7Y29uc3Qgbj1lLmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3JldHVybiBuLmhyZWY9dCxuLmhyZWZ9ZnVuY3Rpb24gSHIoKXtjb25zdCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3JldHVybiBlLmhyZWY9XCJcIixlLmhyZWZ9ZnVuY3Rpb24gR3IoZSx0LG4scixpLG8sYSxzKXtpZighaSlyZXR1cm4gaTtjb25zdCBjPXIudG9Mb3dlckNhc2UoKSx1PW4udG9Mb3dlckNhc2UoKTtyZXR1cm5cInNyY1wiPT09Y3x8XCJocmVmXCI9PT1jfHxcInhsaW5rOmhyZWZcIj09PWMmJlwiI1wiIT09aVswXT9GcihlLGkpOlwiYmFja2dyb3VuZFwiIT09Y3x8XCJ0YWJsZVwiIT09dSYmXCJ0ZFwiIT09dSYmXCJ0aFwiIT09dT9cInNyY3NldFwiPT09Yz9mdW5jdGlvbihlLHQpe2lmKFwiXCI9PT10LnRyaW0oKSlyZXR1cm4gdDtsZXQgbj0wO2Z1bmN0aW9uIHIoZSl7bGV0IHIsaT1lLmV4ZWModC5zdWJzdHJpbmcobikpO3JldHVybiBpPyhyPWlbMF0sbis9ci5sZW5ndGgscik6XCJcIn1sZXQgaT1bXTtmb3IoO3IoVXIpLCEobj49dC5sZW5ndGgpOyl7bGV0IG89cih4cik7aWYoXCIsXCI9PT1vLnNsaWNlKC0xKSlvPUZyKGUsby5zdWJzdHJpbmcoMCxvLmxlbmd0aC0xKSksaS5wdXNoKG8pO2Vsc2V7bGV0IHI9XCJcIjtvPUZyKGUsbyk7bGV0IGE9ITE7Zm9yKDs7KXtsZXQgZT10LmNoYXJBdChuKTtpZihcIlwiPT09ZSl7aS5wdXNoKChvK3IpLnRyaW0oKSk7YnJlYWt9aWYoYSlcIilcIj09PWUmJihhPSExKTtlbHNle2lmKFwiLFwiPT09ZSl7bis9MSxpLnB1c2goKG8rcikudHJpbSgpKTticmVha31cIihcIj09PWUmJihhPSEwKX1yKz1lLG4rPTF9fX1yZXR1cm4gaS5qb2luKFwiLCBcIil9KGUsaSk6XCJzdHlsZVwiPT09Yz9qcihpLEhyKCkpOlwib2JqZWN0XCI9PT11JiZcImRhdGFcIj09PWM/RnIoZSxpKTpvJiZmdW5jdGlvbihlLHQsbixyKXtpZihyJiZlLm1hdGNoZXMocikpcmV0dXJuITE7cmV0dXJuW1wicGxhY2Vob2xkZXJcIixcInRpdGxlXCIsXCJhcmlhLWxhYmVsXCJdLmluZGV4T2YodCk+LTF8fFwiaW5wdXRcIj09PW4mJlwidmFsdWVcIj09PXQmJmUuaGFzQXR0cmlidXRlKFwidHlwZVwiKSYmW1wic3VibWl0XCIsXCJidXR0b25cIl0uaW5kZXhPZihlLmdldEF0dHJpYnV0ZShcInR5cGVcIikudG9Mb3dlckNhc2UoKSk+LTF9KHQsYyx1LGEpP3M/cyhpKTpOcihpKTppOkZyKGUsaSl9ZnVuY3Rpb24gV3IoZSx0LG4scixpKXtpZighZSlyZXR1cm4hMTtpZihlLm5vZGVUeXBlIT09ZS5FTEVNRU5UX05PREUpcmV0dXJuIFdyKGUucGFyZW50Tm9kZSx0LG4scixpKTtpZihyJiYoZS5tYXRjaGVzKHIpfHxlLmNsb3Nlc3QocikpKXJldHVybiExO2lmKGkpcmV0dXJuITA7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiB0KXtpZihlLmNsYXNzTGlzdC5jb250YWlucyh0KSlyZXR1cm4hMH1lbHNlIGZvcihsZXQgbz0wO288ZS5jbGFzc0xpc3QubGVuZ3RoO28rKyl7Y29uc3Qgbj1lLmNsYXNzTGlzdFtvXTtpZih0LnRlc3QobikpcmV0dXJuITB9cmV0dXJuISghbnx8IWUubWF0Y2hlcyhuKSl8fFdyKGUucGFyZW50Tm9kZSx0LG4scixpKX1mdW5jdGlvbiBWcihlLHQpe3ZhciBuO2NvbnN0e2RvYzpyLGJsb2NrQ2xhc3M6aSxibG9ja1NlbGVjdG9yOm8sdW5ibG9ja1NlbGVjdG9yOmEsbWFza1RleHRDbGFzczpzLG1hc2tUZXh0U2VsZWN0b3I6Yyx1bm1hc2tUZXh0U2VsZWN0b3I6dSxpbmxpbmVTdHlsZXNoZWV0OmwsbWFza0lucHV0U2VsZWN0b3I6ZCx1bm1hc2tJbnB1dFNlbGVjdG9yOnAsbWFza0FsbFRleHQ6ZixtYXNrSW5wdXRPcHRpb25zOmg9e30sbWFza1RleHRGbjpnLG1hc2tJbnB1dEZuOm0sZGF0YVVSTE9wdGlvbnM6dj17fSxpbmxpbmVJbWFnZXM6XyxyZWNvcmRDYW52YXM6RSxrZWVwSWZyYW1lU3JjRm46Yn09dDtsZXQgUztpZihyLl9fc24pe2NvbnN0IGU9ci5fX3NuLmlkO1M9MT09PWU/dm9pZCAwOmV9c3dpdGNoKGUubm9kZVR5cGUpe2Nhc2UgZS5ET0NVTUVOVF9OT0RFOnJldHVyblwiQ1NTMUNvbXBhdFwiIT09ZS5jb21wYXRNb2RlP3t0eXBlOkVyLkRvY3VtZW50LGNoaWxkTm9kZXM6W10sY29tcGF0TW9kZTplLmNvbXBhdE1vZGUscm9vdElkOlN9Ont0eXBlOkVyLkRvY3VtZW50LGNoaWxkTm9kZXM6W10scm9vdElkOlN9O2Nhc2UgZS5ET0NVTUVOVF9UWVBFX05PREU6cmV0dXJue3R5cGU6RXIuRG9jdW1lbnRUeXBlLG5hbWU6ZS5uYW1lLHB1YmxpY0lkOmUucHVibGljSWQsc3lzdGVtSWQ6ZS5zeXN0ZW1JZCxyb290SWQ6U307Y2FzZSBlLkVMRU1FTlRfTk9ERTpjb25zdCB0PWZ1bmN0aW9uKGUsdCxuLHIpe2lmKHImJmUubWF0Y2hlcyhyKSlyZXR1cm4hMTtpZihcInN0cmluZ1wiPT09dHlwZW9mIHQpe2lmKGUuY2xhc3NMaXN0LmNvbnRhaW5zKHQpKXJldHVybiEwfWVsc2UgZm9yKGxldCBpPTA7aTxlLmNsYXNzTGlzdC5sZW5ndGg7aSsrKXtjb25zdCBuPWUuY2xhc3NMaXN0W2ldO2lmKHQudGVzdChuKSlyZXR1cm4hMH1yZXR1cm4hIW4mJmUubWF0Y2hlcyhuKX0oZSxpLG8sYSksTz1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgSFRNTEZvcm1FbGVtZW50KXJldHVyblwiZm9ybVwiO2NvbnN0IHQ9ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkudHJpbSgpO3JldHVybiBDci50ZXN0KHQpP1wiZGl2XCI6dH0oZSk7bGV0IEE9e307Zm9yKGNvbnN0e25hbWU6bix2YWx1ZTppfW9mIEFycmF5LmZyb20oZS5hdHRyaWJ1dGVzKSlZcihPLG4pfHwoQVtuXT1HcihyLGUsTyxuLGksZix1LGcpKTtpZihcImxpbmtcIj09PU8mJmwpe2NvbnN0IHQ9QXJyYXkuZnJvbShyLnN0eWxlU2hlZXRzKS5maW5kKCh0PT50LmhyZWY9PT1lLmhyZWYpKTtsZXQgbj1udWxsO3QmJihuPWtyKHQpKSxuJiYoZGVsZXRlIEEucmVsLGRlbGV0ZSBBLmhyZWYsQS5fY3NzVGV4dD1qcihuLHQuaHJlZikpfWlmKFwic3R5bGVcIj09PU8mJmUuc2hlZXQmJiEoZS5pbm5lclRleHR8fGUudGV4dENvbnRlbnR8fFwiXCIpLnRyaW0oKS5sZW5ndGgpe2NvbnN0IHQ9a3IoZS5zaGVldCk7dCYmKEEuX2Nzc1RleHQ9anIodCxIcigpKSl9aWYoXCJpbnB1dFwiPT09T3x8XCJ0ZXh0YXJlYVwiPT09T3x8XCJzZWxlY3RcIj09PU98fFwib3B0aW9uXCI9PT1PKXtjb25zdCB0PWUsbj1Jcih0KSxyPU9yKHQsTy50b1VwcGVyQ2FzZSgpLG4pLGk9ZS5jaGVja2VkO1wic3VibWl0XCIhPT1uJiZcImJ1dHRvblwiIT09biYmciYmKEEudmFsdWU9eXIoe2lucHV0OnQsdHlwZTpuLHRhZ05hbWU6Tyx2YWx1ZTpyLG1hc2tJbnB1dFNlbGVjdG9yOmQsdW5tYXNrSW5wdXRTZWxlY3RvcjpwLG1hc2tJbnB1dE9wdGlvbnM6aCxtYXNrSW5wdXRGbjptfSkpLGkmJihBLmNoZWNrZWQ9aSl9aWYoXCJvcHRpb25cIj09PU8mJihlLnNlbGVjdGVkJiYhaC5zZWxlY3Q/QS5zZWxlY3RlZD0hMDpkZWxldGUgQS5zZWxlY3RlZCksXCJjYW52YXNcIj09PU8mJkUpaWYoXCIyZFwiPT09ZS5fX2NvbnRleHQpKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5nZXRDb250ZXh0KFwiMmRcIik7aWYoIXQpcmV0dXJuITA7Zm9yKGxldCBuPTA7bjxlLndpZHRoO24rPTUwKWZvcihsZXQgcj0wO3I8ZS5oZWlnaHQ7cis9NTApe2NvbnN0IGk9dC5nZXRJbWFnZURhdGEsbz1UciBpbiBpP2kuX19ycndlYl9vcmlnaW5hbF9fOmk7aWYobmV3IFVpbnQzMkFycmF5KG8uY2FsbCh0LG4scixNYXRoLm1pbig1MCxlLndpZHRoLW4pLE1hdGgubWluKDUwLGUuaGVpZ2h0LXIpKS5kYXRhLmJ1ZmZlcikuc29tZSgoZT0+MCE9PWUpKSlyZXR1cm4hMX1yZXR1cm4hMH0pKGUpfHwoQS5ycl9kYXRhVVJMPWUudG9EYXRhVVJMKHYudHlwZSx2LnF1YWxpdHkpKTtlbHNlIGlmKCEoXCJfX2NvbnRleHRcImluIGUpKXtjb25zdCB0PWUudG9EYXRhVVJMKHYudHlwZSx2LnF1YWxpdHkpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtuLndpZHRoPWUud2lkdGgsbi5oZWlnaHQ9ZS5oZWlnaHQ7dCE9PW4udG9EYXRhVVJMKHYudHlwZSx2LnF1YWxpdHkpJiYoQS5ycl9kYXRhVVJMPXQpfWlmKFwiaW1nXCI9PT1PJiZfKXt3cnx8KHdyPXIuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKSxMcj13ci5nZXRDb250ZXh0KFwiMmRcIikpO2NvbnN0IHQ9ZSxuPXQuY3Jvc3NPcmlnaW47dC5jcm9zc09yaWdpbj1cImFub255bW91c1wiO2NvbnN0IGk9KCk9Pnt0cnl7d3Iud2lkdGg9dC5uYXR1cmFsV2lkdGgsd3IuaGVpZ2h0PXQubmF0dXJhbEhlaWdodCxMci5kcmF3SW1hZ2UodCwwLDApLEEucnJfZGF0YVVSTD13ci50b0RhdGFVUkwodi50eXBlLHYucXVhbGl0eSl9Y2F0Y2goZSl7Y29uc29sZS53YXJuKGBDYW5ub3QgaW5saW5lIGltZyBzcmM9JHt0LmN1cnJlbnRTcmN9ISBFcnJvcjogJHtlfWApfW4/QS5jcm9zc09yaWdpbj1uOmRlbGV0ZSBBLmNyb3NzT3JpZ2lufTt0LmNvbXBsZXRlJiYwIT09dC5uYXR1cmFsV2lkdGg/aSgpOnQub25sb2FkPWl9aWYoXCJhdWRpb1wiIT09TyYmXCJ2aWRlb1wiIT09T3x8KEEucnJfbWVkaWFTdGF0ZT1lLnBhdXNlZD9cInBhdXNlZFwiOlwicGxheWVkXCIsQS5ycl9tZWRpYUN1cnJlbnRUaW1lPWUuY3VycmVudFRpbWUpLGUuc2Nyb2xsTGVmdCYmKEEucnJfc2Nyb2xsTGVmdD1lLnNjcm9sbExlZnQpLGUuc2Nyb2xsVG9wJiYoQS5ycl9zY3JvbGxUb3A9ZS5zY3JvbGxUb3ApLHQpe2NvbnN0e3dpZHRoOnQsaGVpZ2h0Om59PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7QT17Y2xhc3M6QS5jbGFzcyxycl93aWR0aDpgJHt0fXB4YCxycl9oZWlnaHQ6YCR7bn1weGB9fXJldHVyblwiaWZyYW1lXCIhPT1PfHxiKEEuc3JjKXx8KGUuY29udGVudERvY3VtZW50fHwoQS5ycl9zcmM9QS5zcmMpLGRlbGV0ZSBBLnNyYykse3R5cGU6RXIuRWxlbWVudCx0YWdOYW1lOk8sYXR0cmlidXRlczpBLGNoaWxkTm9kZXM6W10saXNTVkc6KFQ9ZSxCb29sZWFuKFwic3ZnXCI9PT1ULnRhZ05hbWV8fFQub3duZXJTVkdFbGVtZW50KXx8dm9pZCAwKSxuZWVkQmxvY2s6dCxyb290SWQ6U307Y2FzZSBlLlRFWFRfTk9ERTpjb25zdCBDPWUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnRhZ05hbWU7bGV0IE49ZS50ZXh0Q29udGVudDtjb25zdCBrPVwiU1RZTEVcIj09PUN8fHZvaWQgMCxQPVwiU0NSSVBUXCI9PT1DfHx2b2lkIDA7aWYoayYmTil7dHJ5e2UubmV4dFNpYmxpbmd8fGUucHJldmlvdXNTaWJsaW5nfHwobnVsbD09PShuPWUucGFyZW50Tm9kZS5zaGVldCl8fHZvaWQgMD09PW4/dm9pZCAwOm4uY3NzUnVsZXMpJiYoTj0oeT1lLnBhcmVudE5vZGUuc2hlZXQpLmNzc1J1bGVzP0FycmF5LmZyb20oeS5jc3NSdWxlcykubWFwKChlPT5lLmNzc1RleHQ/UnIoZS5jc3NUZXh0KTpcIlwiKSkuam9pbihcIlwiKTpcIlwiKX1jYXRjaChJKXtjb25zb2xlLndhcm4oYENhbm5vdCBnZXQgQ1NTIHN0eWxlcyBmcm9tIHRleHQncyBwYXJlbnROb2RlLiBFcnJvcjogJHtJfWAsZSl9Tj1qcihOLEhyKCkpfWlmKFAmJihOPVwiU0NSSVBUX1BMQUNFSE9MREVSXCIpLFwiVEVYVEFSRUFcIj09PUMmJk4pTj1cIlwiO2Vsc2UgaWYoXCJPUFRJT05cIj09PUMmJk4pe049eXIoe2lucHV0OmUucGFyZW50Tm9kZSx0eXBlOm51bGwsdGFnTmFtZTpDLHZhbHVlOk4sbWFza0lucHV0U2VsZWN0b3I6ZCx1bm1hc2tJbnB1dFNlbGVjdG9yOnAsbWFza0lucHV0T3B0aW9uczpoLG1hc2tJbnB1dEZuOm19KX1lbHNlIWsmJiFQJiZXcihlLHMsYyx1LGYpJiZOJiYoTj1nP2coTik6TnIoTikpO3JldHVybnt0eXBlOkVyLlRleHQsdGV4dENvbnRlbnQ6Tnx8XCJcIixpc1N0eWxlOmsscm9vdElkOlN9O2Nhc2UgZS5DREFUQV9TRUNUSU9OX05PREU6cmV0dXJue3R5cGU6RXIuQ0RBVEEsdGV4dENvbnRlbnQ6XCJcIixyb290SWQ6U307Y2FzZSBlLkNPTU1FTlRfTk9ERTpyZXR1cm57dHlwZTpFci5Db21tZW50LHRleHRDb250ZW50OmUudGV4dENvbnRlbnR8fFwiXCIscm9vdElkOlN9O2RlZmF1bHQ6cmV0dXJuITF9dmFyIHksVH1mdW5jdGlvbiB6cihlKXtyZXR1cm4gdm9pZCAwPT09ZXx8bnVsbD09PWU/XCJcIjplLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gS3IoZSx0KXtjb25zdHtkb2M6bixtYXA6cixibG9ja0NsYXNzOmksYmxvY2tTZWxlY3RvcjpvLHVuYmxvY2tTZWxlY3RvcjphLG1hc2tUZXh0Q2xhc3M6cyxtYXNrVGV4dFNlbGVjdG9yOmMsdW5tYXNrVGV4dFNlbGVjdG9yOnUsc2tpcENoaWxkOmw9ITEsaW5saW5lU3R5bGVzaGVldDpkPSEwLG1hc2tJbnB1dFNlbGVjdG9yOnAsdW5tYXNrSW5wdXRTZWxlY3RvcjpmLG1hc2tBbGxUZXh0OmgsbWFza0lucHV0T3B0aW9uczpnPXt9LG1hc2tUZXh0Rm46bSxtYXNrSW5wdXRGbjp2LHNsaW1ET01PcHRpb25zOl8sZGF0YVVSTE9wdGlvbnM6RT17fSxpbmxpbmVJbWFnZXM6Yj0hMSxyZWNvcmRDYW52YXM6Uz0hMSxvblNlcmlhbGl6ZTp5LG9uSWZyYW1lTG9hZDpULGlmcmFtZUxvYWRUaW1lb3V0Okk9NWUzLGtlZXBJZnJhbWVTcmNGbjpPPSgoKT0+ITEpfT10O2xldHtwcmVzZXJ2ZVdoaXRlU3BhY2U6QT0hMH09dDtjb25zdCBDPVZyKGUse2RvYzpuLGJsb2NrQ2xhc3M6aSxibG9ja1NlbGVjdG9yOm8sdW5ibG9ja1NlbGVjdG9yOmEsbWFza1RleHRDbGFzczpzLG1hc2tUZXh0U2VsZWN0b3I6Yyx1bm1hc2tUZXh0U2VsZWN0b3I6dSxpbmxpbmVTdHlsZXNoZWV0OmQsbWFza0lucHV0U2VsZWN0b3I6cCx1bm1hc2tJbnB1dFNlbGVjdG9yOmYsbWFza0FsbFRleHQ6aCxtYXNrSW5wdXRPcHRpb25zOmcsbWFza1RleHRGbjptLG1hc2tJbnB1dEZuOnYsZGF0YVVSTE9wdGlvbnM6RSxpbmxpbmVJbWFnZXM6YixyZWNvcmRDYW52YXM6UyxrZWVwSWZyYW1lU3JjRm46T30pO2lmKCFDKXJldHVybiBjb25zb2xlLndhcm4oZSxcIm5vdCBzZXJpYWxpemVkXCIpLG51bGw7bGV0IE47Tj1cIl9fc25cImluIGU/ZS5fX3NuLmlkOiFmdW5jdGlvbihlLHQpe2lmKHQuY29tbWVudCYmZS50eXBlPT09RXIuQ29tbWVudClyZXR1cm4hMDtpZihlLnR5cGU9PT1Fci5FbGVtZW50KXtpZih0LnNjcmlwdCYmKFwic2NyaXB0XCI9PT1lLnRhZ05hbWV8fFwibGlua1wiPT09ZS50YWdOYW1lJiYoXCJwcmVsb2FkXCI9PT1lLmF0dHJpYnV0ZXMucmVsfHxcIm1vZHVsZXByZWxvYWRcIj09PWUuYXR0cmlidXRlcy5yZWwpJiZcInNjcmlwdFwiPT09ZS5hdHRyaWJ1dGVzLmFzfHxcImxpbmtcIj09PWUudGFnTmFtZSYmXCJwcmVmZXRjaFwiPT09ZS5hdHRyaWJ1dGVzLnJlbCYmXCJzdHJpbmdcIj09PXR5cGVvZiBlLmF0dHJpYnV0ZXMuaHJlZiYmZS5hdHRyaWJ1dGVzLmhyZWYuZW5kc1dpdGgoXCIuanNcIikpKXJldHVybiEwO2lmKHQuaGVhZEZhdmljb24mJihcImxpbmtcIj09PWUudGFnTmFtZSYmXCJzaG9ydGN1dCBpY29uXCI9PT1lLmF0dHJpYnV0ZXMucmVsfHxcIm1ldGFcIj09PWUudGFnTmFtZSYmKHpyKGUuYXR0cmlidXRlcy5uYW1lKS5tYXRjaCgvXm1zYXBwbGljYXRpb24tdGlsZShpbWFnZXxjb2xvcikkLyl8fFwiYXBwbGljYXRpb24tbmFtZVwiPT09enIoZS5hdHRyaWJ1dGVzLm5hbWUpfHxcImljb25cIj09PXpyKGUuYXR0cmlidXRlcy5yZWwpfHxcImFwcGxlLXRvdWNoLWljb25cIj09PXpyKGUuYXR0cmlidXRlcy5yZWwpfHxcInNob3J0Y3V0IGljb25cIj09PXpyKGUuYXR0cmlidXRlcy5yZWwpKSkpcmV0dXJuITA7aWYoXCJtZXRhXCI9PT1lLnRhZ05hbWUpe2lmKHQuaGVhZE1ldGFEZXNjS2V5d29yZHMmJnpyKGUuYXR0cmlidXRlcy5uYW1lKS5tYXRjaCgvXmRlc2NyaXB0aW9ufGtleXdvcmRzJC8pKXJldHVybiEwO2lmKHQuaGVhZE1ldGFTb2NpYWwmJih6cihlLmF0dHJpYnV0ZXMucHJvcGVydHkpLm1hdGNoKC9eKG9nfHR3aXR0ZXJ8ZmIpOi8pfHx6cihlLmF0dHJpYnV0ZXMubmFtZSkubWF0Y2goL14ob2d8dHdpdHRlcik6Lyl8fFwicGludGVyZXN0XCI9PT16cihlLmF0dHJpYnV0ZXMubmFtZSkpKXJldHVybiEwO2lmKHQuaGVhZE1ldGFSb2JvdHMmJihcInJvYm90c1wiPT09enIoZS5hdHRyaWJ1dGVzLm5hbWUpfHxcImdvb2dsZWJvdFwiPT09enIoZS5hdHRyaWJ1dGVzLm5hbWUpfHxcImJpbmdib3RcIj09PXpyKGUuYXR0cmlidXRlcy5uYW1lKSkpcmV0dXJuITA7aWYodC5oZWFkTWV0YUh0dHBFcXVpdiYmdm9pZCAwIT09ZS5hdHRyaWJ1dGVzW1wiaHR0cC1lcXVpdlwiXSlyZXR1cm4hMDtpZih0LmhlYWRNZXRhQXV0aG9yc2hpcCYmKFwiYXV0aG9yXCI9PT16cihlLmF0dHJpYnV0ZXMubmFtZSl8fFwiZ2VuZXJhdG9yXCI9PT16cihlLmF0dHJpYnV0ZXMubmFtZSl8fFwiZnJhbWV3b3JrXCI9PT16cihlLmF0dHJpYnV0ZXMubmFtZSl8fFwicHVibGlzaGVyXCI9PT16cihlLmF0dHJpYnV0ZXMubmFtZSl8fFwicHJvZ2lkXCI9PT16cihlLmF0dHJpYnV0ZXMubmFtZSl8fHpyKGUuYXR0cmlidXRlcy5wcm9wZXJ0eSkubWF0Y2goL15hcnRpY2xlOi8pfHx6cihlLmF0dHJpYnV0ZXMucHJvcGVydHkpLm1hdGNoKC9ecHJvZHVjdDovKSkpcmV0dXJuITA7aWYodC5oZWFkTWV0YVZlcmlmaWNhdGlvbiYmKFwiZ29vZ2xlLXNpdGUtdmVyaWZpY2F0aW9uXCI9PT16cihlLmF0dHJpYnV0ZXMubmFtZSl8fFwieWFuZGV4LXZlcmlmaWNhdGlvblwiPT09enIoZS5hdHRyaWJ1dGVzLm5hbWUpfHxcImNzcmYtdG9rZW5cIj09PXpyKGUuYXR0cmlidXRlcy5uYW1lKXx8XCJwOmRvbWFpbl92ZXJpZnlcIj09PXpyKGUuYXR0cmlidXRlcy5uYW1lKXx8XCJ2ZXJpZnktdjFcIj09PXpyKGUuYXR0cmlidXRlcy5uYW1lKXx8XCJ2ZXJpZmljYXRpb25cIj09PXpyKGUuYXR0cmlidXRlcy5uYW1lKXx8XCJzaG9waWZ5LWNoZWNrb3V0LWFwaS10b2tlblwiPT09enIoZS5hdHRyaWJ1dGVzLm5hbWUpKSlyZXR1cm4hMH19cmV0dXJuITF9KEMsXykmJihBfHxDLnR5cGUhPT1Fci5UZXh0fHxDLmlzU3R5bGV8fEMudGV4dENvbnRlbnQucmVwbGFjZSgvXlxccyt8XFxzKyQvZ20sXCJcIikubGVuZ3RoKT9BcisrOi0yO2NvbnN0IGs9T2JqZWN0LmFzc2lnbihDLHtpZDpOfSk7aWYoZS5fX3NuPWssLTI9PT1OKXJldHVybiBudWxsO3JbTl09ZSx5JiZ5KGUpO2xldCBQPSFsO2lmKGsudHlwZT09PUVyLkVsZW1lbnQmJihQPVAmJiFrLm5lZWRCbG9jayxkZWxldGUgay5uZWVkQmxvY2ssZS5zaGFkb3dSb290JiYoay5pc1NoYWRvd0hvc3Q9ITApKSwoay50eXBlPT09RXIuRG9jdW1lbnR8fGsudHlwZT09PUVyLkVsZW1lbnQpJiZQKXtfLmhlYWRXaGl0ZXNwYWNlJiZDLnR5cGU9PT1Fci5FbGVtZW50JiZcImhlYWRcIj09PUMudGFnTmFtZSYmKEE9ITEpO2NvbnN0IHQ9e2RvYzpuLG1hcDpyLGJsb2NrQ2xhc3M6aSxibG9ja1NlbGVjdG9yOm8sdW5ibG9ja1NlbGVjdG9yOmEsbWFza1RleHRDbGFzczpzLG1hc2tUZXh0U2VsZWN0b3I6Yyx1bm1hc2tUZXh0U2VsZWN0b3I6dSxza2lwQ2hpbGQ6bCxpbmxpbmVTdHlsZXNoZWV0OmQsbWFza0lucHV0U2VsZWN0b3I6cCx1bm1hc2tJbnB1dFNlbGVjdG9yOmYsbWFza0FsbFRleHQ6aCxtYXNrSW5wdXRPcHRpb25zOmcsbWFza1RleHRGbjptLG1hc2tJbnB1dEZuOnYsc2xpbURPTU9wdGlvbnM6XyxkYXRhVVJMT3B0aW9uczpFLGlubGluZUltYWdlczpiLHJlY29yZENhbnZhczpTLHByZXNlcnZlV2hpdGVTcGFjZTpBLG9uU2VyaWFsaXplOnksb25JZnJhbWVMb2FkOlQsaWZyYW1lTG9hZFRpbWVvdXQ6SSxrZWVwSWZyYW1lU3JjRm46T307Zm9yKGNvbnN0IG4gb2YgQXJyYXkuZnJvbShlLmNoaWxkTm9kZXMpKXtjb25zdCBlPUtyKG4sdCk7ZSYmay5jaGlsZE5vZGVzLnB1c2goZSl9aWYoZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZVR5cGU9PT1lLkVMRU1FTlRfTk9ERX0oZSkmJmUuc2hhZG93Um9vdClmb3IoY29uc3QgbiBvZiBBcnJheS5mcm9tKGUuc2hhZG93Um9vdC5jaGlsZE5vZGVzKSl7Y29uc3QgZT1LcihuLHQpO2UmJihlLmlzU2hhZG93PSEwLGsuY2hpbGROb2Rlcy5wdXNoKGUpKX19cmV0dXJuIGUucGFyZW50Tm9kZSYmYnIoZS5wYXJlbnROb2RlKSYmKGsuaXNTaGFkb3c9ITApLGsudHlwZT09PUVyLkVsZW1lbnQmJlwiaWZyYW1lXCI9PT1rLnRhZ05hbWUmJmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuY29udGVudFdpbmRvdztpZighcilyZXR1cm47bGV0IGksbz0hMTt0cnl7aT1yLmRvY3VtZW50LnJlYWR5U3RhdGV9Y2F0Y2gocyl7cmV0dXJufWlmKFwiY29tcGxldGVcIiE9PWkpe2NvbnN0IHI9c2V0VGltZW91dCgoKCk9PntvfHwodCgpLG89ITApfSksbik7cmV0dXJuIHZvaWQgZS5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCgoKT0+e2NsZWFyVGltZW91dChyKSxvPSEwLHQoKX0pKX1jb25zdCBhPVwiYWJvdXQ6YmxhbmtcIjtyLmxvY2F0aW9uLmhyZWY9PT1hJiZlLnNyYyE9PWEmJlwiXCIhPT1lLnNyYz9lLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsdCk6c2V0VGltZW91dCh0LDApfShlLCgoKT0+e2NvbnN0IHQ9ZS5jb250ZW50RG9jdW1lbnQ7aWYodCYmVCl7Y29uc3Qgbj1Lcih0LHtkb2M6dCxtYXA6cixibG9ja0NsYXNzOmksYmxvY2tTZWxlY3RvcjpvLHVuYmxvY2tTZWxlY3RvcjphLG1hc2tUZXh0Q2xhc3M6cyxtYXNrVGV4dFNlbGVjdG9yOmMsdW5tYXNrVGV4dFNlbGVjdG9yOnUsc2tpcENoaWxkOiExLGlubGluZVN0eWxlc2hlZXQ6ZCxtYXNrSW5wdXRTZWxlY3RvcjpwLHVubWFza0lucHV0U2VsZWN0b3I6ZixtYXNrQWxsVGV4dDpoLG1hc2tJbnB1dE9wdGlvbnM6ZyxtYXNrVGV4dEZuOm0sbWFza0lucHV0Rm46dixzbGltRE9NT3B0aW9uczpfLGRhdGFVUkxPcHRpb25zOkUsaW5saW5lSW1hZ2VzOmIscmVjb3JkQ2FudmFzOlMscHJlc2VydmVXaGl0ZVNwYWNlOkEsb25TZXJpYWxpemU6eSxvbklmcmFtZUxvYWQ6VCxpZnJhbWVMb2FkVGltZW91dDpJLGtlZXBJZnJhbWVTcmNGbjpPfSk7biYmVChlLG4pfX0pLEkpLGt9ZnVuY3Rpb24gWXIoZSx0LG4pe3JldHVybihcInZpZGVvXCI9PT1lfHxcImF1ZGlvXCI9PT1lKSYmXCJhdXRvcGxheVwiPT09dH12YXIgcXIsWnIsSnIsWHIsUXIsJHI7ZnVuY3Rpb24gZWkoZSx0LG49ZG9jdW1lbnQpe2NvbnN0IHI9e2NhcHR1cmU6ITAscGFzc2l2ZTohMH07cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcihlLHQsciksKCk9Pm4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQscil9IWZ1bmN0aW9uKGUpe2VbZS5Eb21Db250ZW50TG9hZGVkPTBdPVwiRG9tQ29udGVudExvYWRlZFwiLGVbZS5Mb2FkPTFdPVwiTG9hZFwiLGVbZS5GdWxsU25hcHNob3Q9Ml09XCJGdWxsU25hcHNob3RcIixlW2UuSW5jcmVtZW50YWxTbmFwc2hvdD0zXT1cIkluY3JlbWVudGFsU25hcHNob3RcIixlW2UuTWV0YT00XT1cIk1ldGFcIixlW2UuQ3VzdG9tPTVdPVwiQ3VzdG9tXCIsZVtlLlBsdWdpbj02XT1cIlBsdWdpblwifShxcnx8KHFyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk11dGF0aW9uPTBdPVwiTXV0YXRpb25cIixlW2UuTW91c2VNb3ZlPTFdPVwiTW91c2VNb3ZlXCIsZVtlLk1vdXNlSW50ZXJhY3Rpb249Ml09XCJNb3VzZUludGVyYWN0aW9uXCIsZVtlLlNjcm9sbD0zXT1cIlNjcm9sbFwiLGVbZS5WaWV3cG9ydFJlc2l6ZT00XT1cIlZpZXdwb3J0UmVzaXplXCIsZVtlLklucHV0PTVdPVwiSW5wdXRcIixlW2UuVG91Y2hNb3ZlPTZdPVwiVG91Y2hNb3ZlXCIsZVtlLk1lZGlhSW50ZXJhY3Rpb249N109XCJNZWRpYUludGVyYWN0aW9uXCIsZVtlLlN0eWxlU2hlZXRSdWxlPThdPVwiU3R5bGVTaGVldFJ1bGVcIixlW2UuQ2FudmFzTXV0YXRpb249OV09XCJDYW52YXNNdXRhdGlvblwiLGVbZS5Gb250PTEwXT1cIkZvbnRcIixlW2UuTG9nPTExXT1cIkxvZ1wiLGVbZS5EcmFnPTEyXT1cIkRyYWdcIixlW2UuU3R5bGVEZWNsYXJhdGlvbj0xM109XCJTdHlsZURlY2xhcmF0aW9uXCJ9KFpyfHwoWnI9e30pKSxmdW5jdGlvbihlKXtlW2UuTW91c2VVcD0wXT1cIk1vdXNlVXBcIixlW2UuTW91c2VEb3duPTFdPVwiTW91c2VEb3duXCIsZVtlLkNsaWNrPTJdPVwiQ2xpY2tcIixlW2UuQ29udGV4dE1lbnU9M109XCJDb250ZXh0TWVudVwiLGVbZS5EYmxDbGljaz00XT1cIkRibENsaWNrXCIsZVtlLkZvY3VzPTVdPVwiRm9jdXNcIixlW2UuQmx1cj02XT1cIkJsdXJcIixlW2UuVG91Y2hTdGFydD03XT1cIlRvdWNoU3RhcnRcIixlW2UuVG91Y2hNb3ZlX0RlcGFydGVkPThdPVwiVG91Y2hNb3ZlX0RlcGFydGVkXCIsZVtlLlRvdWNoRW5kPTldPVwiVG91Y2hFbmRcIixlW2UuVG91Y2hDYW5jZWw9MTBdPVwiVG91Y2hDYW5jZWxcIn0oSnJ8fChKcj17fSkpLGZ1bmN0aW9uKGUpe2VbZVtcIjJEXCJdPTBdPVwiMkRcIixlW2UuV2ViR0w9MV09XCJXZWJHTFwiLGVbZS5XZWJHTDI9Ml09XCJXZWJHTDJcIn0oWHJ8fChYcj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QbGF5PTBdPVwiUGxheVwiLGVbZS5QYXVzZT0xXT1cIlBhdXNlXCIsZVtlLlNlZWtlZD0yXT1cIlNlZWtlZFwiLGVbZS5Wb2x1bWVDaGFuZ2U9M109XCJWb2x1bWVDaGFuZ2VcIn0oUXJ8fChRcj17fSkpLGZ1bmN0aW9uKGUpe2UuU3RhcnQ9XCJzdGFydFwiLGUuUGF1c2U9XCJwYXVzZVwiLGUuUmVzdW1lPVwicmVzdW1lXCIsZS5SZXNpemU9XCJyZXNpemVcIixlLkZpbmlzaD1cImZpbmlzaFwiLGUuRnVsbHNuYXBzaG90UmVidWlsZGVkPVwiZnVsbHNuYXBzaG90LXJlYnVpbGRlZFwiLGUuTG9hZFN0eWxlc2hlZXRTdGFydD1cImxvYWQtc3R5bGVzaGVldC1zdGFydFwiLGUuTG9hZFN0eWxlc2hlZXRFbmQ9XCJsb2FkLXN0eWxlc2hlZXQtZW5kXCIsZS5Ta2lwU3RhcnQ9XCJza2lwLXN0YXJ0XCIsZS5Ta2lwRW5kPVwic2tpcC1lbmRcIixlLk1vdXNlSW50ZXJhY3Rpb249XCJtb3VzZS1pbnRlcmFjdGlvblwiLGUuRXZlbnRDYXN0PVwiZXZlbnQtY2FzdFwiLGUuQ3VzdG9tRXZlbnQ9XCJjdXN0b20tZXZlbnRcIixlLkZsdXNoPVwiZmx1c2hcIixlLlN0YXRlQ2hhbmdlPVwic3RhdGUtY2hhbmdlXCIsZS5QbGF5QmFjaz1cInBsYXktYmFja1wifSgkcnx8KCRyPXt9KSk7Y29uc3QgdGk9XCJQbGVhc2Ugc3RvcCBpbXBvcnQgbWlycm9yIGRpcmVjdGx5LiBJbnN0ZWFkIG9mIHRoYXQsXFxyXFxubm93IHlvdSBjYW4gdXNlIHJlcGxheWVyLmdldE1pcnJvcigpIHRvIGFjY2VzcyB0aGUgbWlycm9yIGluc3RhbmNlIG9mIGEgcmVwbGF5ZXIsXFxyXFxub3IgeW91IGNhbiB1c2UgcmVjb3JkLm1pcnJvciB0byBhY2Nlc3MgdGhlIG1pcnJvciBpbnN0YW5jZSBkdXJpbmcgcmVjb3JkaW5nLlwiO2xldCBuaT17bWFwOnt9LGdldElkOigpPT4oY29uc29sZS5lcnJvcih0aSksLTEpLGdldE5vZGU6KCk9Pihjb25zb2xlLmVycm9yKHRpKSxudWxsKSxyZW1vdmVOb2RlRnJvbU1hcCgpe2NvbnNvbGUuZXJyb3IodGkpfSxoYXM6KCk9Pihjb25zb2xlLmVycm9yKHRpKSwhMSkscmVzZXQoKXtjb25zb2xlLmVycm9yKHRpKX19O2Z1bmN0aW9uIHJpKGUsdCxuPXt9KXtsZXQgcj1udWxsLGk9MDtyZXR1cm4gZnVuY3Rpb24obyl7bGV0IGE9RGF0ZS5ub3coKTtpfHwhMSE9PW4ubGVhZGluZ3x8KGk9YSk7bGV0IHM9dC0oYS1pKSxjPXRoaXMsdT1hcmd1bWVudHM7czw9MHx8cz50PyhyJiYoY2xlYXJUaW1lb3V0KHIpLHI9bnVsbCksaT1hLGUuYXBwbHkoYyx1KSk6cnx8ITE9PT1uLnRyYWlsaW5nfHwocj1zZXRUaW1lb3V0KCgoKT0+e2k9ITE9PT1uLmxlYWRpbmc/MDpEYXRlLm5vdygpLHI9bnVsbCxlLmFwcGx5KGMsdSl9KSxzKSl9fWZ1bmN0aW9uIGlpKGUsdCxuLHIsaT13aW5kb3cpe2NvbnN0IG89aS5PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7cmV0dXJuIGkuT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxyP246e3NldChlKXtzZXRUaW1lb3V0KCgoKT0+e24uc2V0LmNhbGwodGhpcyxlKX0pLDApLG8mJm8uc2V0JiZvLnNldC5jYWxsKHRoaXMsZSl9fSksKCk9PmlpKGUsdCxvfHx7fSwhMCl9ZnVuY3Rpb24gb2koZSx0LG4pe3RyeXtpZighKHQgaW4gZSkpcmV0dXJuKCk9Pnt9O2NvbnN0IHI9ZVt0XSxpPW4ocik7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGkmJihpLnByb3RvdHlwZT1pLnByb3RvdHlwZXx8e30sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoaSx7X19ycndlYl9vcmlnaW5hbF9fOntlbnVtZXJhYmxlOiExLHZhbHVlOnJ9fSkpLGVbdF09aSwoKT0+e2VbdF09cn19Y2F0Y2gocil7cmV0dXJuKCk9Pnt9fX1mdW5jdGlvbiBhaSgpe3JldHVybiB3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8ZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHR9ZnVuY3Rpb24gc2koKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRofHxkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRofWZ1bmN0aW9uIGNpKGUsdCxuLHIpe2lmKCFlKXJldHVybiExO2lmKGUubm9kZVR5cGU9PT1lLkVMRU1FTlRfTk9ERSl7bGV0IGk9ITE7Y29uc3Qgbz1yJiZlLm1hdGNoZXMocik7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiB0P2k9dm9pZCAwIT09ZS5jbG9zZXN0PyFvJiZudWxsIT09ZS5jbG9zZXN0KFwiLlwiK3QpOiFvJiZlLmNsYXNzTGlzdC5jb250YWlucyh0KTohbyYmZS5jbGFzc0xpc3QuZm9yRWFjaCgoZT0+e3QudGVzdChlKSYmKGk9ITApfSkpLCFpJiZuJiYoaT1lLm1hdGNoZXMobikpLCFvJiZpfHxjaShlLnBhcmVudE5vZGUsdCxuLHIpfXJldHVybiBlLm5vZGVUeXBlLGUuVEVYVF9OT0RFLGNpKGUucGFyZW50Tm9kZSx0LG4scil9ZnVuY3Rpb24gdWkoZSl7cmV0dXJuXCJfX3NuXCJpbiBlJiYtMj09PWUuX19zbi5pZH1mdW5jdGlvbiBsaShlLHQpe2lmKGJyKGUpKXJldHVybiExO2NvbnN0IG49dC5nZXRJZChlKTtyZXR1cm4hdC5oYXMobil8fCghZS5wYXJlbnROb2RlfHxlLnBhcmVudE5vZGUubm9kZVR5cGUhPT1lLkRPQ1VNRU5UX05PREUpJiYoIWUucGFyZW50Tm9kZXx8bGkoZS5wYXJlbnROb2RlLHQpKX1mdW5jdGlvbiBkaShlKXtyZXR1cm4gQm9vbGVhbihlLmNoYW5nZWRUb3VjaGVzKX1mdW5jdGlvbiBwaShlKXtyZXR1cm5cIl9fc25cImluIGUmJihlLl9fc24udHlwZT09PUVyLkVsZW1lbnQmJlwiaWZyYW1lXCI9PT1lLl9fc24udGFnTmFtZSl9ZnVuY3Rpb24gZmkoZSl7cmV0dXJuIEJvb2xlYW4obnVsbD09PWV8fHZvaWQgMD09PWU/dm9pZCAwOmUuc2hhZG93Um9vdCl9ZnVuY3Rpb24gaGkoZSl7cmV0dXJuXCJfX2xuXCJpbiBlfVwidW5kZWZpbmVkXCIhPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuUHJveHkmJndpbmRvdy5SZWZsZWN0JiYobmk9bmV3IFByb3h5KG5pLHtnZXQ6KGUsdCxuKT0+KFwibWFwXCI9PT10JiZjb25zb2xlLmVycm9yKHRpKSxSZWZsZWN0LmdldChlLHQsbikpfSkpO2NsYXNzIGdpe2NvbnN0cnVjdG9yKCl7dGhpcy5sZW5ndGg9MCx0aGlzLmhlYWQ9bnVsbH1nZXQoZSl7aWYoZT49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiUG9zaXRpb24gb3V0c2lkZSBvZiBsaXN0IHJhbmdlXCIpO2xldCB0PXRoaXMuaGVhZDtmb3IobGV0IG49MDtuPGU7bisrKXQ9KG51bGw9PT10fHx2b2lkIDA9PT10P3ZvaWQgMDp0Lm5leHQpfHxudWxsO3JldHVybiB0fWFkZE5vZGUoZSl7Y29uc3QgdD17dmFsdWU6ZSxwcmV2aW91czpudWxsLG5leHQ6bnVsbH07aWYoZS5fX2xuPXQsZS5wcmV2aW91c1NpYmxpbmcmJmhpKGUucHJldmlvdXNTaWJsaW5nKSl7Y29uc3Qgbj1lLnByZXZpb3VzU2libGluZy5fX2xuLm5leHQ7dC5uZXh0PW4sdC5wcmV2aW91cz1lLnByZXZpb3VzU2libGluZy5fX2xuLGUucHJldmlvdXNTaWJsaW5nLl9fbG4ubmV4dD10LG4mJihuLnByZXZpb3VzPXQpfWVsc2UgaWYoZS5uZXh0U2libGluZyYmaGkoZS5uZXh0U2libGluZykmJmUubmV4dFNpYmxpbmcuX19sbi5wcmV2aW91cyl7Y29uc3Qgbj1lLm5leHRTaWJsaW5nLl9fbG4ucHJldmlvdXM7dC5wcmV2aW91cz1uLHQubmV4dD1lLm5leHRTaWJsaW5nLl9fbG4sZS5uZXh0U2libGluZy5fX2xuLnByZXZpb3VzPXQsbiYmKG4ubmV4dD10KX1lbHNlIHRoaXMuaGVhZCYmKHRoaXMuaGVhZC5wcmV2aW91cz10KSx0Lm5leHQ9dGhpcy5oZWFkLHRoaXMuaGVhZD10O3RoaXMubGVuZ3RoKyt9cmVtb3ZlTm9kZShlKXtjb25zdCB0PWUuX19sbjt0aGlzLmhlYWQmJih0LnByZXZpb3VzPyh0LnByZXZpb3VzLm5leHQ9dC5uZXh0LHQubmV4dCYmKHQubmV4dC5wcmV2aW91cz10LnByZXZpb3VzKSk6KHRoaXMuaGVhZD10Lm5leHQsdGhpcy5oZWFkJiYodGhpcy5oZWFkLnByZXZpb3VzPW51bGwpKSxlLl9fbG4mJmRlbGV0ZSBlLl9fbG4sdGhpcy5sZW5ndGgtLSl9fWNvbnN0IG1pPShlLHQpPT5gJHtlfUAke3R9YDtmdW5jdGlvbiB2aShlKXtyZXR1cm5cIl9fc25cImluIGV9Y2xhc3MgX2l7Y29uc3RydWN0b3IoKXt0aGlzLmZyb3plbj0hMSx0aGlzLmxvY2tlZD0hMSx0aGlzLnRleHRzPVtdLHRoaXMuYXR0cmlidXRlcz1bXSx0aGlzLnJlbW92ZXM9W10sdGhpcy5tYXBSZW1vdmVzPVtdLHRoaXMubW92ZWRNYXA9e30sdGhpcy5hZGRlZFNldD1uZXcgU2V0LHRoaXMubW92ZWRTZXQ9bmV3IFNldCx0aGlzLmRyb3BwZWRTZXQ9bmV3IFNldCx0aGlzLnByb2Nlc3NNdXRhdGlvbnM9ZT0+e2UuZm9yRWFjaCh0aGlzLnByb2Nlc3NNdXRhdGlvbiksdGhpcy5lbWl0KCl9LHRoaXMuZW1pdD0oKT0+e2lmKHRoaXMuZnJvemVufHx0aGlzLmxvY2tlZClyZXR1cm47Y29uc3QgZT1bXSx0PW5ldyBnaSxuPWU9PntsZXQgdD1lLG49LTI7Zm9yKDstMj09PW47KXQ9dCYmdC5uZXh0U2libGluZyxuPXQmJnRoaXMubWlycm9yLmdldElkKHQpO3JldHVybiBufSxyPXI9Pnt2YXIgaSxvLGEscyxjO2NvbnN0IHU9ci5nZXRSb290Tm9kZT9udWxsPT09KGk9ci5nZXRSb290Tm9kZSgpKXx8dm9pZCAwPT09aT92b2lkIDA6aS5ob3N0Om51bGw7bGV0IGw9dTtmb3IoO251bGw9PT0oYT1udWxsPT09KG89bnVsbD09PWx8fHZvaWQgMD09PWw/dm9pZCAwOmwuZ2V0Um9vdE5vZGUpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmNhbGwobCkpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmhvc3Q7KWw9KG51bGw9PT0oYz1udWxsPT09KHM9bnVsbD09PWx8fHZvaWQgMD09PWw/dm9pZCAwOmwuZ2V0Um9vdE5vZGUpfHx2b2lkIDA9PT1zP3ZvaWQgMDpzLmNhbGwobCkpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmhvc3QpfHxudWxsO2NvbnN0IGQ9IXRoaXMuZG9jLmNvbnRhaW5zKHIpJiYoIWx8fCF0aGlzLmRvYy5jb250YWlucyhsKSk7aWYoIXIucGFyZW50Tm9kZXx8ZClyZXR1cm47Y29uc3QgcD1icihyLnBhcmVudE5vZGUpP3RoaXMubWlycm9yLmdldElkKHUpOnRoaXMubWlycm9yLmdldElkKHIucGFyZW50Tm9kZSksZj1uKHIpO2lmKC0xPT09cHx8LTE9PT1mKXJldHVybiB0LmFkZE5vZGUocik7bGV0IGg9S3Iocix7ZG9jOnRoaXMuZG9jLG1hcDp0aGlzLm1pcnJvci5tYXAsYmxvY2tDbGFzczp0aGlzLmJsb2NrQ2xhc3MsYmxvY2tTZWxlY3Rvcjp0aGlzLmJsb2NrU2VsZWN0b3IsdW5ibG9ja1NlbGVjdG9yOnRoaXMudW5ibG9ja1NlbGVjdG9yLG1hc2tUZXh0Q2xhc3M6dGhpcy5tYXNrVGV4dENsYXNzLG1hc2tUZXh0U2VsZWN0b3I6dGhpcy5tYXNrVGV4dFNlbGVjdG9yLHVubWFza1RleHRTZWxlY3Rvcjp0aGlzLnVubWFza1RleHRTZWxlY3RvcixtYXNrSW5wdXRTZWxlY3Rvcjp0aGlzLm1hc2tJbnB1dFNlbGVjdG9yLHVubWFza0lucHV0U2VsZWN0b3I6dGhpcy51bm1hc2tJbnB1dFNlbGVjdG9yLHNraXBDaGlsZDohMCxpbmxpbmVTdHlsZXNoZWV0OnRoaXMuaW5saW5lU3R5bGVzaGVldCxtYXNrQWxsVGV4dDp0aGlzLm1hc2tBbGxUZXh0LG1hc2tJbnB1dE9wdGlvbnM6dGhpcy5tYXNrSW5wdXRPcHRpb25zLG1hc2tUZXh0Rm46dGhpcy5tYXNrVGV4dEZuLG1hc2tJbnB1dEZuOnRoaXMubWFza0lucHV0Rm4sc2xpbURPTU9wdGlvbnM6dGhpcy5zbGltRE9NT3B0aW9ucyxyZWNvcmRDYW52YXM6dGhpcy5yZWNvcmRDYW52YXMsaW5saW5lSW1hZ2VzOnRoaXMuaW5saW5lSW1hZ2VzLG9uU2VyaWFsaXplOmU9PntwaShlKSYmdGhpcy5pZnJhbWVNYW5hZ2VyLmFkZElmcmFtZShlKSxmaShyKSYmdGhpcy5zaGFkb3dEb21NYW5hZ2VyLmFkZFNoYWRvd1Jvb3Qoci5zaGFkb3dSb290LGRvY3VtZW50KX0sb25JZnJhbWVMb2FkOihlLHQpPT57dGhpcy5pZnJhbWVNYW5hZ2VyLmF0dGFjaElmcmFtZShlLHQpLHRoaXMuc2hhZG93RG9tTWFuYWdlci5vYnNlcnZlQXR0YWNoU2hhZG93KGUpfX0pO2gmJmUucHVzaCh7cGFyZW50SWQ6cCxuZXh0SWQ6Zixub2RlOmh9KX07Zm9yKDt0aGlzLm1hcFJlbW92ZXMubGVuZ3RoOyl0aGlzLm1pcnJvci5yZW1vdmVOb2RlRnJvbU1hcCh0aGlzLm1hcFJlbW92ZXMuc2hpZnQoKSk7Zm9yKGNvbnN0IGEgb2YgdGhpcy5tb3ZlZFNldCliaSh0aGlzLnJlbW92ZXMsYSx0aGlzLm1pcnJvcikmJiF0aGlzLm1vdmVkU2V0LmhhcyhhLnBhcmVudE5vZGUpfHxyKGEpO2Zvcihjb25zdCBhIG9mIHRoaXMuYWRkZWRTZXQpU2kodGhpcy5kcm9wcGVkU2V0LGEpfHxiaSh0aGlzLnJlbW92ZXMsYSx0aGlzLm1pcnJvcik/U2kodGhpcy5tb3ZlZFNldCxhKT9yKGEpOnRoaXMuZHJvcHBlZFNldC5hZGQoYSk6cihhKTtsZXQgaT1udWxsO2Zvcig7dC5sZW5ndGg7KXtsZXQgZT1udWxsO2lmKGkpe2NvbnN0IHQ9dGhpcy5taXJyb3IuZ2V0SWQoaS52YWx1ZS5wYXJlbnROb2RlKSxyPW4oaS52YWx1ZSk7LTEhPT10JiYtMSE9PXImJihlPWkpfWlmKCFlKWZvcihsZXQgcj10Lmxlbmd0aC0xO3I+PTA7ci0tKXtjb25zdCBpPXQuZ2V0KHIpO2lmKGkpe2NvbnN0IHQ9dGhpcy5taXJyb3IuZ2V0SWQoaS52YWx1ZS5wYXJlbnROb2RlKSxyPW4oaS52YWx1ZSk7aWYoLTEhPT10JiYtMSE9PXIpe2U9aTticmVha319fWlmKCFlKXtmb3IoO3QuaGVhZDspdC5yZW1vdmVOb2RlKHQuaGVhZC52YWx1ZSk7YnJlYWt9aT1lLnByZXZpb3VzLHQucmVtb3ZlTm9kZShlLnZhbHVlKSxyKGUudmFsdWUpfWNvbnN0IG89e3RleHRzOnRoaXMudGV4dHMubWFwKChlPT4oe2lkOnRoaXMubWlycm9yLmdldElkKGUubm9kZSksdmFsdWU6ZS52YWx1ZX0pKSkuZmlsdGVyKChlPT50aGlzLm1pcnJvci5oYXMoZS5pZCkpKSxhdHRyaWJ1dGVzOnRoaXMuYXR0cmlidXRlcy5tYXAoKGU9Pih7aWQ6dGhpcy5taXJyb3IuZ2V0SWQoZS5ub2RlKSxhdHRyaWJ1dGVzOmUuYXR0cmlidXRlc30pKSkuZmlsdGVyKChlPT50aGlzLm1pcnJvci5oYXMoZS5pZCkpKSxyZW1vdmVzOnRoaXMucmVtb3ZlcyxhZGRzOmV9OyhvLnRleHRzLmxlbmd0aHx8by5hdHRyaWJ1dGVzLmxlbmd0aHx8by5yZW1vdmVzLmxlbmd0aHx8by5hZGRzLmxlbmd0aCkmJih0aGlzLnRleHRzPVtdLHRoaXMuYXR0cmlidXRlcz1bXSx0aGlzLnJlbW92ZXM9W10sdGhpcy5hZGRlZFNldD1uZXcgU2V0LHRoaXMubW92ZWRTZXQ9bmV3IFNldCx0aGlzLmRyb3BwZWRTZXQ9bmV3IFNldCx0aGlzLm1vdmVkTWFwPXt9LHRoaXMubXV0YXRpb25DYihvKSl9LHRoaXMucHJvY2Vzc011dGF0aW9uPWU9PntpZighdWkoZS50YXJnZXQpKXN3aXRjaChlLnR5cGUpe2Nhc2VcImNoYXJhY3RlckRhdGFcIjp7Y29uc3QgdD1lLnRhcmdldC50ZXh0Q29udGVudDtjaShlLnRhcmdldCx0aGlzLmJsb2NrQ2xhc3MsdGhpcy5ibG9ja1NlbGVjdG9yLHRoaXMudW5ibG9ja1NlbGVjdG9yKXx8dD09PWUub2xkVmFsdWV8fHRoaXMudGV4dHMucHVzaCh7dmFsdWU6V3IoZS50YXJnZXQsdGhpcy5tYXNrVGV4dENsYXNzLHRoaXMubWFza1RleHRTZWxlY3Rvcix0aGlzLnVubWFza1RleHRTZWxlY3Rvcix0aGlzLm1hc2tBbGxUZXh0KSYmdD90aGlzLm1hc2tUZXh0Rm4/dGhpcy5tYXNrVGV4dEZuKHQpOnQucmVwbGFjZSgvW1xcU10vZyxcIipcIik6dCxub2RlOmUudGFyZ2V0fSk7YnJlYWt9Y2FzZVwiYXR0cmlidXRlc1wiOntjb25zdCBuPWUudGFyZ2V0O2xldCByPW4uZ2V0QXR0cmlidXRlKGUuYXR0cmlidXRlTmFtZSk7aWYoXCJ2YWx1ZVwiPT09ZS5hdHRyaWJ1dGVOYW1lJiYocj15cih7aW5wdXQ6bixtYXNrSW5wdXRTZWxlY3Rvcjp0aGlzLm1hc2tJbnB1dFNlbGVjdG9yLHVubWFza0lucHV0U2VsZWN0b3I6dGhpcy51bm1hc2tJbnB1dFNlbGVjdG9yLG1hc2tJbnB1dE9wdGlvbnM6dGhpcy5tYXNrSW5wdXRPcHRpb25zLHRhZ05hbWU6bi50YWdOYW1lLHR5cGU6bi5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpLHZhbHVlOnIsbWFza0lucHV0Rm46dGhpcy5tYXNrSW5wdXRGbn0pKSxjaShlLnRhcmdldCx0aGlzLmJsb2NrQ2xhc3MsdGhpcy5ibG9ja1NlbGVjdG9yLHRoaXMudW5ibG9ja1NlbGVjdG9yKXx8cj09PWUub2xkVmFsdWUpcmV0dXJuO2xldCBpPXRoaXMuYXR0cmlidXRlcy5maW5kKCh0PT50Lm5vZGU9PT1lLnRhcmdldCkpO2lmKGl8fChpPXtub2RlOmUudGFyZ2V0LGF0dHJpYnV0ZXM6e319LHRoaXMuYXR0cmlidXRlcy5wdXNoKGkpKSxcInR5cGVcIj09PWUuYXR0cmlidXRlTmFtZSYmXCJJTlBVVFwiPT09bi50YWdOYW1lJiZcInBhc3N3b3JkXCI9PT0oZS5vbGRWYWx1ZXx8XCJcIikudG9Mb3dlckNhc2UoKSYmbi5zZXRBdHRyaWJ1dGUoXCJkYXRhLXJyLWlzLXBhc3N3b3JkXCIsXCJ0cnVlXCIpLFwic3R5bGVcIj09PWUuYXR0cmlidXRlTmFtZSl7Y29uc3Qgcj10aGlzLmRvYy5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtlLm9sZFZhbHVlJiZyLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsZS5vbGRWYWx1ZSksdm9pZCAwIT09aS5hdHRyaWJ1dGVzLnN0eWxlJiZudWxsIT09aS5hdHRyaWJ1dGVzLnN0eWxlfHwoaS5hdHRyaWJ1dGVzLnN0eWxlPXt9KTt0cnl7Y29uc3QgZT1pLmF0dHJpYnV0ZXMuc3R5bGU7Zm9yKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShuLnN0eWxlKSl7Y29uc3QgaT1uLnN0eWxlLmdldFByb3BlcnR5VmFsdWUodCksbz1uLnN0eWxlLmdldFByb3BlcnR5UHJpb3JpdHkodCk7aT09PXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0KSYmbz09PXIuc3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eSh0KXx8KGVbdF09XCJcIj09PW8/aTpbaSxvXSl9Zm9yKGNvbnN0IHQgb2YgQXJyYXkuZnJvbShyLnN0eWxlKSlcIlwiPT09bi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHQpJiYoZVt0XT0hMSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKFwiW3Jyd2ViXSBFcnJvciB3aGVuIHBhcnNpbmcgdXBkYXRlIHRvIHN0eWxlIGF0dHJpYnV0ZTpcIix0KX19ZWxzZXtjb25zdCB0PWUudGFyZ2V0O2kuYXR0cmlidXRlc1tlLmF0dHJpYnV0ZU5hbWVdPUdyKHRoaXMuZG9jLHQsdC50YWdOYW1lLGUuYXR0cmlidXRlTmFtZSxyLHRoaXMubWFza0FsbFRleHQsdGhpcy51bm1hc2tUZXh0U2VsZWN0b3IsdGhpcy5tYXNrVGV4dEZuKX1icmVha31jYXNlXCJjaGlsZExpc3RcIjplLmFkZGVkTm9kZXMuZm9yRWFjaCgodD0+dGhpcy5nZW5BZGRzKHQsZS50YXJnZXQpKSksZS5yZW1vdmVkTm9kZXMuZm9yRWFjaCgodD0+e2NvbnN0IG49dGhpcy5taXJyb3IuZ2V0SWQodCkscj1icihlLnRhcmdldCk/dGhpcy5taXJyb3IuZ2V0SWQoZS50YXJnZXQuaG9zdCk6dGhpcy5taXJyb3IuZ2V0SWQoZS50YXJnZXQpO2NpKGUudGFyZ2V0LHRoaXMuYmxvY2tDbGFzcyx0aGlzLmJsb2NrU2VsZWN0b3IsdGhpcy51bmJsb2NrU2VsZWN0b3IpfHx1aSh0KXx8KHRoaXMuYWRkZWRTZXQuaGFzKHQpPyhFaSh0aGlzLmFkZGVkU2V0LHQpLHRoaXMuZHJvcHBlZFNldC5hZGQodCkpOnRoaXMuYWRkZWRTZXQuaGFzKGUudGFyZ2V0KSYmLTE9PT1ufHxsaShlLnRhcmdldCx0aGlzLm1pcnJvcil8fCh0aGlzLm1vdmVkU2V0Lmhhcyh0KSYmdGhpcy5tb3ZlZE1hcFttaShuLHIpXT9FaSh0aGlzLm1vdmVkU2V0LHQpOnRoaXMucmVtb3Zlcy5wdXNoKHtwYXJlbnRJZDpyLGlkOm4saXNTaGFkb3c6ISFicihlLnRhcmdldCl8fHZvaWQgMH0pKSx0aGlzLm1hcFJlbW92ZXMucHVzaCh0KSl9KSl9fSx0aGlzLmdlbkFkZHM9KGUsdCk9PntpZighdHx8IWNpKHQsdGhpcy5ibG9ja0NsYXNzLHRoaXMuYmxvY2tTZWxlY3Rvcix0aGlzLnVuYmxvY2tTZWxlY3Rvcikpe2lmKHZpKGUpKXtpZih1aShlKSlyZXR1cm47dGhpcy5tb3ZlZFNldC5hZGQoZSk7bGV0IG49bnVsbDt0JiZ2aSh0KSYmKG49dC5fX3NuLmlkKSxuJiYodGhpcy5tb3ZlZE1hcFttaShlLl9fc24uaWQsbildPSEwKX1lbHNlIHRoaXMuYWRkZWRTZXQuYWRkKGUpLHRoaXMuZHJvcHBlZFNldC5kZWxldGUoZSk7Y2koZSx0aGlzLmJsb2NrQ2xhc3MsdGhpcy5ibG9ja1NlbGVjdG9yLHRoaXMudW5ibG9ja1NlbGVjdG9yKXx8ZS5jaGlsZE5vZGVzLmZvckVhY2goKGU9PnRoaXMuZ2VuQWRkcyhlKSkpfX19aW5pdChlKXtbXCJtdXRhdGlvbkNiXCIsXCJibG9ja0NsYXNzXCIsXCJibG9ja1NlbGVjdG9yXCIsXCJ1bmJsb2NrU2VsZWN0b3JcIixcIm1hc2tUZXh0Q2xhc3NcIixcIm1hc2tUZXh0U2VsZWN0b3JcIixcInVubWFza1RleHRTZWxlY3RvclwiLFwibWFza0lucHV0U2VsZWN0b3JcIixcInVubWFza0lucHV0U2VsZWN0b3JcIixcImlubGluZVN0eWxlc2hlZXRcIixcIm1hc2tBbGxUZXh0XCIsXCJtYXNrSW5wdXRPcHRpb25zXCIsXCJtYXNrVGV4dEZuXCIsXCJtYXNrSW5wdXRGblwiLFwicmVjb3JkQ2FudmFzXCIsXCJpbmxpbmVJbWFnZXNcIixcInNsaW1ET01PcHRpb25zXCIsXCJkb2NcIixcIm1pcnJvclwiLFwiaWZyYW1lTWFuYWdlclwiLFwic2hhZG93RG9tTWFuYWdlclwiLFwiY2FudmFzTWFuYWdlclwiXS5mb3JFYWNoKCh0PT57dGhpc1t0XT1lW3RdfSkpfWZyZWV6ZSgpe3RoaXMuZnJvemVuPSEwLHRoaXMuY2FudmFzTWFuYWdlci5mcmVlemUoKX11bmZyZWV6ZSgpe3RoaXMuZnJvemVuPSExLHRoaXMuY2FudmFzTWFuYWdlci51bmZyZWV6ZSgpLHRoaXMuZW1pdCgpfWlzRnJvemVuKCl7cmV0dXJuIHRoaXMuZnJvemVufWxvY2soKXt0aGlzLmxvY2tlZD0hMCx0aGlzLmNhbnZhc01hbmFnZXIubG9jaygpfXVubG9jaygpe3RoaXMubG9ja2VkPSExLHRoaXMuY2FudmFzTWFuYWdlci51bmxvY2soKSx0aGlzLmVtaXQoKX1yZXNldCgpe3RoaXMuc2hhZG93RG9tTWFuYWdlci5yZXNldCgpLHRoaXMuY2FudmFzTWFuYWdlci5yZXNldCgpfX1mdW5jdGlvbiBFaShlLHQpe2UuZGVsZXRlKHQpLHQuY2hpbGROb2Rlcy5mb3JFYWNoKCh0PT5FaShlLHQpKSl9ZnVuY3Rpb24gYmkoZSx0LG4pe2NvbnN0e3BhcmVudE5vZGU6cn09dDtpZighcilyZXR1cm4hMTtjb25zdCBpPW4uZ2V0SWQocik7cmV0dXJuISFlLnNvbWUoKGU9PmUuaWQ9PT1pKSl8fGJpKGUscixuKX1mdW5jdGlvbiBTaShlLHQpe2NvbnN0e3BhcmVudE5vZGU6bn09dDtyZXR1cm4hIW4mJighIWUuaGFzKG4pfHxTaShlLG4pKX1jb25zdCB5aT1lPT4oLi4udCk9Pnt0cnl7cmV0dXJuIGUoLi4udCl9Y2F0Y2gobil7dHJ5e24uX19ycndlYl9fPSEwfWNhdGNoKHIpe310aHJvdyBufX0sVGk9W107ZnVuY3Rpb24gSWkoZSl7dHJ5e2lmKFwiY29tcG9zZWRQYXRoXCJpbiBlKXtjb25zdCB0PWUuY29tcG9zZWRQYXRoKCk7aWYodC5sZW5ndGgpcmV0dXJuIHRbMF19ZWxzZSBpZihcInBhdGhcImluIGUmJmUucGF0aC5sZW5ndGgpcmV0dXJuIGUucGF0aFswXX1jYXRjaCh0KXt9cmV0dXJuIGUmJmUudGFyZ2V0fWZ1bmN0aW9uIE9pKGUsdCl7dmFyIG4scjtjb25zdCBpPW5ldyBfaTtUaS5wdXNoKGkpLGkuaW5pdChlKTtsZXQgbz13aW5kb3cuTXV0YXRpb25PYnNlcnZlcnx8d2luZG93Ll9fcnJNdXRhdGlvbk9ic2VydmVyO2NvbnN0IGE9bnVsbD09PShyPW51bGw9PT0obj1udWxsPT09d2luZG93fHx2b2lkIDA9PT13aW5kb3c/dm9pZCAwOndpbmRvdy5ab25lKXx8dm9pZCAwPT09bj92b2lkIDA6bi5fX3N5bWJvbF9fKXx8dm9pZCAwPT09cj92b2lkIDA6ci5jYWxsKG4sXCJNdXRhdGlvbk9ic2VydmVyXCIpO2EmJndpbmRvd1thXSYmKG89d2luZG93W2FdKTtjb25zdCBzPW5ldyBvKHlpKCh0PT57ZS5vbk11dGF0aW9uJiYhMT09PWUub25NdXRhdGlvbih0KXx8aS5wcm9jZXNzTXV0YXRpb25zKHQpfSkpKTtyZXR1cm4gcy5vYnNlcnZlKHQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlT2xkVmFsdWU6ITAsY2hhcmFjdGVyRGF0YTohMCxjaGFyYWN0ZXJEYXRhT2xkVmFsdWU6ITAsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KSxzfWZ1bmN0aW9uIEFpKHttb3VzZUludGVyYWN0aW9uQ2I6ZSxkb2M6dCxtaXJyb3I6bixibG9ja0NsYXNzOnIsYmxvY2tTZWxlY3RvcjppLHVuYmxvY2tTZWxlY3RvcjpvLHNhbXBsaW5nOmF9KXtpZighMT09PWEubW91c2VJbnRlcmFjdGlvbilyZXR1cm4oKT0+e307Y29uc3Qgcz0hMD09PWEubW91c2VJbnRlcmFjdGlvbnx8dm9pZCAwPT09YS5tb3VzZUludGVyYWN0aW9uP3t9OmEubW91c2VJbnRlcmFjdGlvbixjPVtdO3JldHVybiBPYmplY3Qua2V5cyhKcikuZmlsdGVyKChlPT5OdW1iZXIuaXNOYU4oTnVtYmVyKGUpKSYmIWUuZW5kc1dpdGgoXCJfRGVwYXJ0ZWRcIikmJiExIT09c1tlXSkpLmZvckVhY2goKGE9Pntjb25zdCBzPWEudG9Mb3dlckNhc2UoKSx1PXlpKCh0PT5hPT57Y29uc3Qgcz1JaShhKTtpZihjaShzLHIsaSxvKSlyZXR1cm47Y29uc3QgYz1kaShhKT9hLmNoYW5nZWRUb3VjaGVzWzBdOmE7aWYoIWMpcmV0dXJuO2NvbnN0IHU9bi5nZXRJZChzKSx7Y2xpZW50WDpsLGNsaWVudFk6ZH09Yzt5aShlKSh7dHlwZTpKclt0XSxpZDp1LHg6bCx5OmR9KX0pKGEpKTtjLnB1c2goZWkocyx1LHQpKX0pKSx5aSgoKCk9PntjLmZvckVhY2goKGU9PmUoKSkpfSkpfWZ1bmN0aW9uIENpKHtzY3JvbGxDYjplLGRvYzp0LG1pcnJvcjpuLGJsb2NrQ2xhc3M6cixibG9ja1NlbGVjdG9yOmksdW5ibG9ja1NlbGVjdG9yOm8sc2FtcGxpbmc6YX0pe2NvbnN0IHM9cmkoKGE9Pntjb25zdCBzPUlpKGEpO2lmKCFzfHxjaShzLHIsaSxvKSlyZXR1cm47Y29uc3QgYz1uLmdldElkKHMpO2lmKHM9PT10KXtjb25zdCBuPXQuc2Nyb2xsaW5nRWxlbWVudHx8dC5kb2N1bWVudEVsZW1lbnQ7eWkoZSkoe2lkOmMseDpuLnNjcm9sbExlZnQseTpuLnNjcm9sbFRvcH0pfWVsc2UgeWkoZSkoe2lkOmMseDpzLnNjcm9sbExlZnQseTpzLnNjcm9sbFRvcH0pfSksYS5zY3JvbGx8fDEwMCk7cmV0dXJuIGVpKFwic2Nyb2xsXCIseWkocyksdCl9ZnVuY3Rpb24gTmkoZSx0KXtjb25zdCBuPU9iamVjdC5hc3NpZ24oe30sZSk7cmV0dXJuIHR8fGRlbGV0ZSBuLnVzZXJUcmlnZ2VyZWQsbn1jb25zdCBraT1bXCJJTlBVVFwiLFwiVEVYVEFSRUFcIixcIlNFTEVDVFwiXSxQaT1uZXcgV2Vha01hcDtmdW5jdGlvbiBSaSh7aW5wdXRDYjplLGRvYzp0LG1pcnJvcjpuLGJsb2NrQ2xhc3M6cixibG9ja1NlbGVjdG9yOmksdW5ibG9ja1NlbGVjdG9yOm8saWdub3JlQ2xhc3M6YSxpZ25vcmVTZWxlY3RvcjpzLG1hc2tJbnB1dFNlbGVjdG9yOmMsdW5tYXNrSW5wdXRTZWxlY3Rvcjp1LG1hc2tJbnB1dE9wdGlvbnM6bCxtYXNrSW5wdXRGbjpkLHNhbXBsaW5nOnAsdXNlclRyaWdnZXJlZE9uSW5wdXQ6Zn0pe2Z1bmN0aW9uIGgoZSl7bGV0IG49SWkoZSk7Y29uc3QgcD1uJiZuLnRhZ05hbWUsaD1lLmlzVHJ1c3RlZDtpZihcIk9QVElPTlwiPT09cCYmKG49bi5wYXJlbnRFbGVtZW50KSwhbnx8IXB8fGtpLmluZGV4T2YocCk8MHx8Y2kobixyLGksbykpcmV0dXJuO2NvbnN0IG09bix2PUlyKG0pO2lmKG0uY2xhc3NMaXN0LmNvbnRhaW5zKGEpfHxzJiZtLm1hdGNoZXMocykpcmV0dXJuO2xldCBfPU9yKG0scCx2KSxFPSExO1wicmFkaW9cIiE9PXYmJlwiY2hlY2tib3hcIiE9PXZ8fChFPW4uY2hlY2tlZCksZnVuY3Rpb24oe3RhZ05hbWU6ZSx0eXBlOnQsbWFza0lucHV0T3B0aW9uczpuLG1hc2tJbnB1dFNlbGVjdG9yOnJ9KXtyZXR1cm4gcnx8U3Ioe21hc2tJbnB1dE9wdGlvbnM6bix0YWdOYW1lOmUsdHlwZTp0fSl9KHttYXNrSW5wdXRPcHRpb25zOmwsbWFza0lucHV0U2VsZWN0b3I6Yyx0YWdOYW1lOnAsdHlwZTp2fSkmJihfPXlyKHtpbnB1dDptLG1hc2tJbnB1dE9wdGlvbnM6bCxtYXNrSW5wdXRTZWxlY3RvcjpjLHVubWFza0lucHV0U2VsZWN0b3I6dSx0YWdOYW1lOnAsdHlwZTp2LHZhbHVlOl8sbWFza0lucHV0Rm46ZH0pKSxnKG4seWkoTmkpKHt0ZXh0Ol8saXNDaGVja2VkOkUsdXNlclRyaWdnZXJlZDpofSxmKSk7Y29uc3QgYj1uLm5hbWU7XCJyYWRpb1wiPT09diYmYiYmRSYmdC5xdWVyeVNlbGVjdG9yQWxsKGBpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIiR7Yn1cIl1gKS5mb3JFYWNoKChlPT57aWYoZSE9PW4pe2NvbnN0IHQ9eXIoe2lucHV0OmUsbWFza0lucHV0T3B0aW9uczpsLG1hc2tJbnB1dFNlbGVjdG9yOmMsdW5tYXNrSW5wdXRTZWxlY3Rvcjp1LHRhZ05hbWU6cCx0eXBlOnYsdmFsdWU6T3IoZSxwLHYpLG1hc2tJbnB1dEZuOmR9KTtnKGUseWkoTmkpKHt0ZXh0OnQsaXNDaGVja2VkOiFFLHVzZXJUcmlnZ2VyZWQ6ITF9LGYpKX19KSl9ZnVuY3Rpb24gZyh0LHIpe2NvbnN0IGk9UGkuZ2V0KHQpO2lmKCFpfHxpLnRleHQhPT1yLnRleHR8fGkuaXNDaGVja2VkIT09ci5pc0NoZWNrZWQpe1BpLnNldCh0LHIpO2NvbnN0IGk9bi5nZXRJZCh0KTtlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7aWQ6aX0pKX19Y29uc3QgbT0oXCJsYXN0XCI9PT1wLmlucHV0P1tcImNoYW5nZVwiXTpbXCJpbnB1dFwiLFwiY2hhbmdlXCJdKS5tYXAoKGU9PmVpKGUseWkoaCksdCkpKSx2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTElucHV0RWxlbWVudC5wcm90b3R5cGUsXCJ2YWx1ZVwiKSxfPVtbSFRNTElucHV0RWxlbWVudC5wcm90b3R5cGUsXCJ2YWx1ZVwiXSxbSFRNTElucHV0RWxlbWVudC5wcm90b3R5cGUsXCJjaGVja2VkXCJdLFtIVE1MU2VsZWN0RWxlbWVudC5wcm90b3R5cGUsXCJ2YWx1ZVwiXSxbSFRNTFRleHRBcmVhRWxlbWVudC5wcm90b3R5cGUsXCJ2YWx1ZVwiXSxbSFRNTFNlbGVjdEVsZW1lbnQucHJvdG90eXBlLFwic2VsZWN0ZWRJbmRleFwiXSxbSFRNTE9wdGlvbkVsZW1lbnQucHJvdG90eXBlLFwic2VsZWN0ZWRcIl1dO3JldHVybiB2JiZ2LnNldCYmbS5wdXNoKC4uLl8ubWFwKChlPT5paShlWzBdLGVbMV0se3NldCgpe3lpKGgpKHt0YXJnZXQ6dGhpc30pfX0pKSkpLHlpKCgoKT0+e20uZm9yRWFjaCgoZT0+ZSgpKSl9KSl9ZnVuY3Rpb24gd2koZSl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoQmkoXCJDU1NHcm91cGluZ1J1bGVcIikmJmUucGFyZW50UnVsZSBpbnN0YW5jZW9mIENTU0dyb3VwaW5nUnVsZXx8QmkoXCJDU1NNZWRpYVJ1bGVcIikmJmUucGFyZW50UnVsZSBpbnN0YW5jZW9mIENTU01lZGlhUnVsZXx8QmkoXCJDU1NTdXBwb3J0c1J1bGVcIikmJmUucGFyZW50UnVsZSBpbnN0YW5jZW9mIENTU1N1cHBvcnRzUnVsZXx8QmkoXCJDU1NDb25kaXRpb25SdWxlXCIpJiZlLnBhcmVudFJ1bGUgaW5zdGFuY2VvZiBDU1NDb25kaXRpb25SdWxlKXtjb25zdCBuPUFycmF5LmZyb20oZS5wYXJlbnRSdWxlLmNzc1J1bGVzKS5pbmRleE9mKGUpO3QudW5zaGlmdChuKX1lbHNle2NvbnN0IG49QXJyYXkuZnJvbShlLnBhcmVudFN0eWxlU2hlZXQuY3NzUnVsZXMpLmluZGV4T2YoZSk7dC51bnNoaWZ0KG4pfXJldHVybiB0fShlLFtdKX1mdW5jdGlvbiBMaShlLHQ9e30pe2NvbnN0IG49ZS5kb2MuZGVmYXVsdFZpZXc7aWYoIW4pcmV0dXJuKCk9Pnt9OyFmdW5jdGlvbihlLHQpe2NvbnN0e211dGF0aW9uQ2I6bixtb3VzZW1vdmVDYjpyLG1vdXNlSW50ZXJhY3Rpb25DYjppLHNjcm9sbENiOm8sdmlld3BvcnRSZXNpemVDYjphLGlucHV0Q2I6cyxtZWRpYUludGVyYWN0aW9uQ2I6YyxzdHlsZVNoZWV0UnVsZUNiOnUsc3R5bGVEZWNsYXJhdGlvbkNiOmwsY2FudmFzTXV0YXRpb25DYjpkLGZvbnRDYjpwfT1lO2UubXV0YXRpb25DYj0oLi4uZSk9Pnt0Lm11dGF0aW9uJiZ0Lm11dGF0aW9uKC4uLmUpLG4oLi4uZSl9LGUubW91c2Vtb3ZlQ2I9KC4uLmUpPT57dC5tb3VzZW1vdmUmJnQubW91c2Vtb3ZlKC4uLmUpLHIoLi4uZSl9LGUubW91c2VJbnRlcmFjdGlvbkNiPSguLi5lKT0+e3QubW91c2VJbnRlcmFjdGlvbiYmdC5tb3VzZUludGVyYWN0aW9uKC4uLmUpLGkoLi4uZSl9LGUuc2Nyb2xsQ2I9KC4uLmUpPT57dC5zY3JvbGwmJnQuc2Nyb2xsKC4uLmUpLG8oLi4uZSl9LGUudmlld3BvcnRSZXNpemVDYj0oLi4uZSk9Pnt0LnZpZXdwb3J0UmVzaXplJiZ0LnZpZXdwb3J0UmVzaXplKC4uLmUpLGEoLi4uZSl9LGUuaW5wdXRDYj0oLi4uZSk9Pnt0LmlucHV0JiZ0LmlucHV0KC4uLmUpLHMoLi4uZSl9LGUubWVkaWFJbnRlcmFjdGlvbkNiPSguLi5lKT0+e3QubWVkaWFJbnRlYWN0aW9uJiZ0Lm1lZGlhSW50ZWFjdGlvbiguLi5lKSxjKC4uLmUpfSxlLnN0eWxlU2hlZXRSdWxlQ2I9KC4uLmUpPT57dC5zdHlsZVNoZWV0UnVsZSYmdC5zdHlsZVNoZWV0UnVsZSguLi5lKSx1KC4uLmUpfSxlLnN0eWxlRGVjbGFyYXRpb25DYj0oLi4uZSk9Pnt0LnN0eWxlRGVjbGFyYXRpb24mJnQuc3R5bGVEZWNsYXJhdGlvbiguLi5lKSxsKC4uLmUpfSxlLmNhbnZhc011dGF0aW9uQ2I9KC4uLmUpPT57dC5jYW52YXNNdXRhdGlvbiYmdC5jYW52YXNNdXRhdGlvbiguLi5lKSxkKC4uLmUpfSxlLmZvbnRDYj0oLi4uZSk9Pnt0LmZvbnQmJnQuZm9udCguLi5lKSxwKC4uLmUpfX0oZSx0KTtjb25zdCByPU9pKGUsZS5kb2MpLGk9ZnVuY3Rpb24oe21vdXNlbW92ZUNiOmUsc2FtcGxpbmc6dCxkb2M6bixtaXJyb3I6cn0pe2lmKCExPT09dC5tb3VzZW1vdmUpcmV0dXJuKCk9Pnt9O2NvbnN0IGk9XCJudW1iZXJcIj09PXR5cGVvZiB0Lm1vdXNlbW92ZT90Lm1vdXNlbW92ZTo1MCxvPVwibnVtYmVyXCI9PT10eXBlb2YgdC5tb3VzZW1vdmVDYWxsYmFjaz90Lm1vdXNlbW92ZUNhbGxiYWNrOjUwMDtsZXQgYSxzPVtdO2NvbnN0IGM9cmkoKHQ9Pntjb25zdCBuPURhdGUubm93KCktYTt5aShlKShzLm1hcCgoZT0+KGUudGltZU9mZnNldC09bixlKSkpLHQpLHM9W10sYT1udWxsfSksbyksdT1yaSgoZT0+e2NvbnN0IHQ9SWkoZSkse2NsaWVudFg6bixjbGllbnRZOml9PWRpKGUpP2UuY2hhbmdlZFRvdWNoZXNbMF06ZTthfHwoYT1EYXRlLm5vdygpKSxzLnB1c2goe3g6bix5OmksaWQ6ci5nZXRJZCh0KSx0aW1lT2Zmc2V0OkRhdGUubm93KCktYX0pLGMoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBEcmFnRXZlbnQmJmUgaW5zdGFuY2VvZiBEcmFnRXZlbnQ/WnIuRHJhZzplIGluc3RhbmNlb2YgTW91c2VFdmVudD9aci5Nb3VzZU1vdmU6WnIuVG91Y2hNb3ZlKX0pLGkse3RyYWlsaW5nOiExfSksbD1bZWkoXCJtb3VzZW1vdmVcIix5aSh1KSxuKSxlaShcInRvdWNobW92ZVwiLHlpKHUpLG4pLGVpKFwiZHJhZ1wiLHlpKHUpLG4pXTtyZXR1cm4geWkoKCgpPT57bC5mb3JFYWNoKChlPT5lKCkpKX0pKX0oZSksbz1BaShlKSxhPUNpKGUpLHM9ZnVuY3Rpb24oe3ZpZXdwb3J0UmVzaXplQ2I6ZX0pe2xldCB0PS0xLG49LTE7Y29uc3Qgcj1yaSgoKCk9Pntjb25zdCByPWFpKCksaT1zaSgpO3Q9PT1yJiZuPT09aXx8KHlpKGUpKHt3aWR0aDpOdW1iZXIoaSksaGVpZ2h0Ok51bWJlcihyKX0pLHQ9cixuPWkpfSksMjAwKTtyZXR1cm4gZWkoXCJyZXNpemVcIix5aShyKSx3aW5kb3cpfShlKSxjPVJpKGUpLHU9ZnVuY3Rpb24oe21lZGlhSW50ZXJhY3Rpb25DYjplLGJsb2NrQ2xhc3M6dCxibG9ja1NlbGVjdG9yOm4sdW5ibG9ja1NlbGVjdG9yOnIsbWlycm9yOmksc2FtcGxpbmc6b30pe2NvbnN0IGE9YT0+cmkoeWkoKG89Pntjb25zdCBzPUlpKG8pO2lmKCFzfHxjaShzLHQsbixyKSlyZXR1cm47Y29uc3R7Y3VycmVudFRpbWU6Yyx2b2x1bWU6dSxtdXRlZDpsfT1zO2Uoe3R5cGU6YSxpZDppLmdldElkKHMpLGN1cnJlbnRUaW1lOmMsdm9sdW1lOnUsbXV0ZWQ6bH0pfSkpLG8ubWVkaWF8fDUwMCkscz1bZWkoXCJwbGF5XCIsYSgwKSksZWkoXCJwYXVzZVwiLGEoMSkpLGVpKFwic2Vla2VkXCIsYSgyKSksZWkoXCJ2b2x1bWVjaGFuZ2VcIixhKDMpKV07cmV0dXJuIHlpKCgoKT0+e3MuZm9yRWFjaCgoZT0+ZSgpKSl9KSl9KGUpLGw9ZnVuY3Rpb24oe3N0eWxlU2hlZXRSdWxlQ2I6ZSxtaXJyb3I6dH0se3dpbjpufSl7aWYoIW4uQ1NTU3R5bGVTaGVldHx8IW4uQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUpcmV0dXJuKCk9Pnt9O2NvbnN0IHI9bi5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5pbnNlcnRSdWxlO24uQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUuaW5zZXJ0UnVsZT1uZXcgUHJveHkocix7YXBwbHk6eWkoKChuLHIsaSk9Pntjb25zdFtvLGFdPWkscz10LmdldElkKHIub3duZXJOb2RlKTtyZXR1cm4tMSE9PXMmJmUoe2lkOnMsYWRkczpbe3J1bGU6byxpbmRleDphfV19KSxuLmFwcGx5KHIsaSl9KSl9KTtjb25zdCBpPW4uQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUuZGVsZXRlUnVsZTtuLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLmRlbGV0ZVJ1bGU9bmV3IFByb3h5KGkse2FwcGx5OnlpKCgobixyLGkpPT57Y29uc3Rbb109aSxhPXQuZ2V0SWQoci5vd25lck5vZGUpO3JldHVybi0xIT09YSYmZSh7aWQ6YSxyZW1vdmVzOlt7aW5kZXg6b31dfSksbi5hcHBseShyLGkpfSkpfSk7Y29uc3Qgbz17fTtNaShcIkNTU0dyb3VwaW5nUnVsZVwiKT9vLkNTU0dyb3VwaW5nUnVsZT1uLkNTU0dyb3VwaW5nUnVsZTooTWkoXCJDU1NNZWRpYVJ1bGVcIikmJihvLkNTU01lZGlhUnVsZT1uLkNTU01lZGlhUnVsZSksTWkoXCJDU1NDb25kaXRpb25SdWxlXCIpJiYoby5DU1NDb25kaXRpb25SdWxlPW4uQ1NTQ29uZGl0aW9uUnVsZSksTWkoXCJDU1NTdXBwb3J0c1J1bGVcIikmJihvLkNTU1N1cHBvcnRzUnVsZT1uLkNTU1N1cHBvcnRzUnVsZSkpO2NvbnN0IGE9e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKG8pLmZvckVhY2goKChbbixyXSk9PnthW25dPXtpbnNlcnRSdWxlOnIucHJvdG90eXBlLmluc2VydFJ1bGUsZGVsZXRlUnVsZTpyLnByb3RvdHlwZS5kZWxldGVSdWxlfSxyLnByb3RvdHlwZS5pbnNlcnRSdWxlPW5ldyBQcm94eShhW25dLmluc2VydFJ1bGUse2FwcGx5OnlpKCgobixyLGkpPT57Y29uc3RbbyxhXT1pLHM9dC5nZXRJZChyLnBhcmVudFN0eWxlU2hlZXQub3duZXJOb2RlKTtyZXR1cm4tMSE9PXMmJmUoe2lkOnMsYWRkczpbe3J1bGU6byxpbmRleDpbLi4ud2kociksYXx8MF19XX0pLG4uYXBwbHkocixpKX0pKX0pLHIucHJvdG90eXBlLmRlbGV0ZVJ1bGU9bmV3IFByb3h5KGFbbl0uZGVsZXRlUnVsZSx7YXBwbHk6eWkoKChuLHIsaSk9Pntjb25zdFtvXT1pLGE9dC5nZXRJZChyLnBhcmVudFN0eWxlU2hlZXQub3duZXJOb2RlKTtyZXR1cm4tMSE9PWEmJmUoe2lkOmEscmVtb3Zlczpbe2luZGV4OlsuLi53aShyKSxvXX1dfSksbi5hcHBseShyLGkpfSkpfSl9KSkseWkoKCgpPT57bi5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5pbnNlcnRSdWxlPXIsbi5DU1NTdHlsZVNoZWV0LnByb3RvdHlwZS5kZWxldGVSdWxlPWksT2JqZWN0LmVudHJpZXMobykuZm9yRWFjaCgoKFtlLHRdKT0+e3QucHJvdG90eXBlLmluc2VydFJ1bGU9YVtlXS5pbnNlcnRSdWxlLHQucHJvdG90eXBlLmRlbGV0ZVJ1bGU9YVtlXS5kZWxldGVSdWxlfSkpfSkpfShlLHt3aW46bn0pLGQ9ZnVuY3Rpb24oe3N0eWxlRGVjbGFyYXRpb25DYjplLG1pcnJvcjp0fSx7d2luOm59KXtjb25zdCByPW4uQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuc2V0UHJvcGVydHk7bi5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5zZXRQcm9wZXJ0eT1uZXcgUHJveHkocix7YXBwbHk6eWkoKChuLHIsaSk9Pnt2YXIgbyxhO2NvbnN0W3MsYyx1XT1pLGw9dC5nZXRJZChudWxsPT09KGE9bnVsbD09PShvPXIucGFyZW50UnVsZSl8fHZvaWQgMD09PW8/dm9pZCAwOm8ucGFyZW50U3R5bGVTaGVldCl8fHZvaWQgMD09PWE/dm9pZCAwOmEub3duZXJOb2RlKTtyZXR1cm4tMSE9PWwmJmUoe2lkOmwsc2V0Ontwcm9wZXJ0eTpzLHZhbHVlOmMscHJpb3JpdHk6dX0saW5kZXg6d2koci5wYXJlbnRSdWxlKX0pLG4uYXBwbHkocixpKX0pKX0pO2NvbnN0IGk9bi5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5yZW1vdmVQcm9wZXJ0eTtyZXR1cm4gbi5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5yZW1vdmVQcm9wZXJ0eT1uZXcgUHJveHkoaSx7YXBwbHk6eWkoKChuLHIsaSk9Pnt2YXIgbyxhO2NvbnN0W3NdPWksYz10LmdldElkKG51bGw9PT0oYT1udWxsPT09KG89ci5wYXJlbnRSdWxlKXx8dm9pZCAwPT09bz92b2lkIDA6by5wYXJlbnRTdHlsZVNoZWV0KXx8dm9pZCAwPT09YT92b2lkIDA6YS5vd25lck5vZGUpO3JldHVybi0xIT09YyYmZSh7aWQ6YyxyZW1vdmU6e3Byb3BlcnR5OnN9LGluZGV4OndpKHIucGFyZW50UnVsZSl9KSxuLmFwcGx5KHIsaSl9KSl9KSx5aSgoKCk9PntuLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnNldFByb3BlcnR5PXIsbi5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5yZW1vdmVQcm9wZXJ0eT1pfSkpfShlLHt3aW46bn0pLHA9ZS5jb2xsZWN0Rm9udHM/ZnVuY3Rpb24oe2ZvbnRDYjplLGRvYzp0fSl7Y29uc3Qgbj10LmRlZmF1bHRWaWV3O2lmKCFuKXJldHVybigpPT57fTtjb25zdCByPVtdLGk9bmV3IFdlYWtNYXAsbz1uLkZvbnRGYWNlO24uRm9udEZhY2U9ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9bmV3IG8oZSx0LG4pO3JldHVybiBpLnNldChyLHtmYW1pbHk6ZSxidWZmZXI6XCJzdHJpbmdcIiE9PXR5cGVvZiB0LGRlc2NyaXB0b3JzOm4sZm9udFNvdXJjZTpcInN0cmluZ1wiPT09dHlwZW9mIHQ/dDpKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KHQpKSl9KSxyfTtjb25zdCBhPW9pKHQuZm9udHMsXCJhZGRcIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBzZXRUaW1lb3V0KCgoKT0+e2NvbnN0IHQ9aS5nZXQobik7dCYmKGUodCksaS5kZWxldGUobikpfSksMCksdC5hcHBseSh0aGlzLFtuXSl9fSkpO3JldHVybiByLnB1c2goKCgpPT57bi5Gb250RmFjZT1vfSkpLHIucHVzaChhKSx5aSgoKCk9PntyLmZvckVhY2goKGU9PmUoKSkpfSkpfShlKTooKT0+e30sZj1bXTtmb3IoY29uc3QgaCBvZiBlLnBsdWdpbnMpZi5wdXNoKGgub2JzZXJ2ZXIoaC5jYWxsYmFjayxuLGgub3B0aW9ucykpO3JldHVybiB5aSgoKCk9PntUaS5mb3JFYWNoKChlPT5lLnJlc2V0KCkpKSxyLmRpc2Nvbm5lY3QoKSxpKCksbygpLGEoKSxzKCksYygpLHUoKTt0cnl7bCgpLGQoKX1jYXRjaChlKXt9cCgpLGYuZm9yRWFjaCgoZT0+ZSgpKSl9KSl9ZnVuY3Rpb24gQmkoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3dbZV19ZnVuY3Rpb24gTWkoZSl7cmV0dXJuIEJvb2xlYW4oXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3dbZV0mJndpbmRvd1tlXS5wcm90b3R5cGUmJlwiaW5zZXJ0UnVsZVwiaW4gd2luZG93W2VdLnByb3RvdHlwZSYmXCJkZWxldGVSdWxlXCJpbiB3aW5kb3dbZV0ucHJvdG90eXBlKX1jbGFzcyBEaXtjb25zdHJ1Y3RvcihlKXt0aGlzLmlmcmFtZXM9bmV3IFdlYWtNYXAsdGhpcy5tdXRhdGlvbkNiPWUubXV0YXRpb25DYn1hZGRJZnJhbWUoZSl7dGhpcy5pZnJhbWVzLnNldChlLCEwKX1hZGRMb2FkTGlzdGVuZXIoZSl7dGhpcy5sb2FkTGlzdGVuZXI9ZX1hdHRhY2hJZnJhbWUoZSx0KXt2YXIgbjt0aGlzLm11dGF0aW9uQ2Ioe2FkZHM6W3twYXJlbnRJZDplLl9fc24uaWQsbmV4dElkOm51bGwsbm9kZTp0fV0scmVtb3ZlczpbXSx0ZXh0czpbXSxhdHRyaWJ1dGVzOltdLGlzQXR0YWNoSWZyYW1lOiEwfSksbnVsbD09PShuPXRoaXMubG9hZExpc3RlbmVyKXx8dm9pZCAwPT09bnx8bi5jYWxsKHRoaXMsZSl9fWNsYXNzIGppe2NvbnN0cnVjdG9yKGUpe3RoaXMucmVzdG9yZVBhdGNoZXM9W10sdGhpcy5tdXRhdGlvbkNiPWUubXV0YXRpb25DYix0aGlzLnNjcm9sbENiPWUuc2Nyb2xsQ2IsdGhpcy5ieXBhc3NPcHRpb25zPWUuYnlwYXNzT3B0aW9ucyx0aGlzLm1pcnJvcj1lLm1pcnJvcjtjb25zdCB0PXRoaXM7dGhpcy5yZXN0b3JlUGF0Y2hlcy5wdXNoKG9pKEhUTUxFbGVtZW50LnByb3RvdHlwZSxcImF0dGFjaFNoYWRvd1wiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdCBuPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aGlzLnNoYWRvd1Jvb3QmJnQuYWRkU2hhZG93Um9vdCh0aGlzLnNoYWRvd1Jvb3QsdGhpcy5vd25lckRvY3VtZW50KSxufX0pKSl9YWRkU2hhZG93Um9vdChlLHQpe09pKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmJ5cGFzc09wdGlvbnMpLHtkb2M6dCxtdXRhdGlvbkNiOnRoaXMubXV0YXRpb25DYixtaXJyb3I6dGhpcy5taXJyb3Isc2hhZG93RG9tTWFuYWdlcjp0aGlzfSksZSksQ2koT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuYnlwYXNzT3B0aW9ucykse3Njcm9sbENiOnRoaXMuc2Nyb2xsQ2IsZG9jOmUsbWlycm9yOnRoaXMubWlycm9yfSkpfW9ic2VydmVBdHRhY2hTaGFkb3coZSl7aWYoZS5jb250ZW50V2luZG93KXtjb25zdCB0PXRoaXM7dGhpcy5yZXN0b3JlUGF0Y2hlcy5wdXNoKG9pKGUuY29udGVudFdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUsXCJhdHRhY2hTaGFkb3dcIiwoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKCl7Y29uc3Qgcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5zaGFkb3dSb290JiZ0LmFkZFNoYWRvd1Jvb3QodGhpcy5zaGFkb3dSb290LGUuY29udGVudERvY3VtZW50KSxyfX0pKSl9fXJlc2V0KCl7dGhpcy5yZXN0b3JlUGF0Y2hlcy5mb3JFYWNoKChlPT5lKCkpKX19Zm9yKHZhciB4aT1cIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9cIixVaT1cInVuZGVmaW5lZFwiPT09dHlwZW9mIFVpbnQ4QXJyYXk/W106bmV3IFVpbnQ4QXJyYXkoMjU2KSxGaT0wO0ZpPHhpLmxlbmd0aDtGaSsrKVVpW3hpLmNoYXJDb2RlQXQoRmkpXT1GaTtjb25zdCBIaT1uZXcgTWFwO2NvbnN0IEdpPShlLHQsbik9PntpZighZXx8IXppKGUsdCkmJlwib2JqZWN0XCIhPT10eXBlb2YgZSlyZXR1cm47Y29uc3Qgcj1mdW5jdGlvbihlLHQpe2xldCBuPUhpLmdldChlKTtyZXR1cm4gbnx8KG49bmV3IE1hcCxIaS5zZXQoZSxuKSksbi5oYXModCl8fG4uc2V0KHQsW10pLG4uZ2V0KHQpfShuLGUuY29uc3RydWN0b3IubmFtZSk7bGV0IGk9ci5pbmRleE9mKGUpO3JldHVybi0xPT09aSYmKGk9ci5sZW5ndGgsci5wdXNoKGUpKSxpfTtmdW5jdGlvbiBXaShlLHQsbil7aWYoZSBpbnN0YW5jZW9mIEFycmF5KXJldHVybiBlLm1hcCgoZT0+V2koZSx0LG4pKSk7aWYobnVsbD09PWUpcmV0dXJuIGU7aWYoZSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8ZSBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheXx8ZSBpbnN0YW5jZW9mIEludDMyQXJyYXl8fGUgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fGUgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8ZSBpbnN0YW5jZW9mIEludDE2QXJyYXl8fGUgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fGUgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSl7cmV0dXJue3JyX3R5cGU6ZS5jb25zdHJ1Y3Rvci5uYW1lLGFyZ3M6W09iamVjdC52YWx1ZXMoZSldfX1pZihlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe2NvbnN0IHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lLG49ZnVuY3Rpb24oZSl7dmFyIHQsbj1uZXcgVWludDhBcnJheShlKSxyPW4ubGVuZ3RoLGk9XCJcIjtmb3IodD0wO3Q8cjt0Kz0zKWkrPXhpW25bdF0+PjJdLGkrPXhpWygzJm5bdF0pPDw0fG5bdCsxXT4+NF0saSs9eGlbKDE1Jm5bdCsxXSk8PDJ8blt0KzJdPj42XSxpKz14aVs2MyZuW3QrMl1dO3JldHVybiByJTM9PT0yP2k9aS5zdWJzdHJpbmcoMCxpLmxlbmd0aC0xKStcIj1cIjpyJTM9PT0xJiYoaT1pLnN1YnN0cmluZygwLGkubGVuZ3RoLTIpK1wiPT1cIiksaX0oZSk7cmV0dXJue3JyX3R5cGU6dCxiYXNlNjQ6bn19aWYoZSBpbnN0YW5jZW9mIERhdGFWaWV3KXtyZXR1cm57cnJfdHlwZTplLmNvbnN0cnVjdG9yLm5hbWUsYXJnczpbV2koZS5idWZmZXIsdCxuKSxlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoXX19aWYoZSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQpe2NvbnN0IHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lLHtzcmM6bn09ZTtyZXR1cm57cnJfdHlwZTp0LHNyYzpufX1pZihlIGluc3RhbmNlb2YgSW1hZ2VEYXRhKXtyZXR1cm57cnJfdHlwZTplLmNvbnN0cnVjdG9yLm5hbWUsYXJnczpbV2koZS5kYXRhLHQsbiksZS53aWR0aCxlLmhlaWdodF19fWlmKHppKGUsdCl8fFwib2JqZWN0XCI9PT10eXBlb2YgZSl7cmV0dXJue3JyX3R5cGU6ZS5jb25zdHJ1Y3Rvci5uYW1lLGluZGV4OkdpKGUsdCxuKX19cmV0dXJuIGV9Y29uc3QgVmk9KGUsdCxuKT0+Wy4uLmVdLm1hcCgoZT0+V2koZSx0LG4pKSksemk9KGUsdCk9Pntjb25zdCBuPVtcIldlYkdMQWN0aXZlSW5mb1wiLFwiV2ViR0xCdWZmZXJcIixcIldlYkdMRnJhbWVidWZmZXJcIixcIldlYkdMUHJvZ3JhbVwiLFwiV2ViR0xSZW5kZXJidWZmZXJcIixcIldlYkdMU2hhZGVyXCIsXCJXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdFwiLFwiV2ViR0xUZXh0dXJlXCIsXCJXZWJHTFVuaWZvcm1Mb2NhdGlvblwiLFwiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdFwiLFwiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FU1wiXS5maWx0ZXIoKGU9PlwiZnVuY3Rpb25cIj09PXR5cGVvZiB0W2VdKSk7cmV0dXJuIEJvb2xlYW4obi5maW5kKChuPT5lIGluc3RhbmNlb2YgdFtuXSkpKX07ZnVuY3Rpb24gS2koZSx0LG4scixpLG8sYSxzKXtjb25zdCBjPVtdLHU9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk7Zm9yKGNvbnN0IGQgb2YgdSl0cnl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGVbZF0pY29udGludWU7Y29uc3QgdT1vaShlLGQsKGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbiguLi51KXtjb25zdCBsPWMuYXBwbHkodGhpcyx1KTtpZihHaShsLHMsZSksIWNpKHRoaXMuY2FudmFzLHIsbyxpKSl7YS5nZXRJZCh0aGlzLmNhbnZhcyk7Y29uc3Qgcj1WaShbLi4udV0scyxlKSxpPXt0eXBlOnQscHJvcGVydHk6ZCxhcmdzOnJ9O24odGhpcy5jYW52YXMsaSl9cmV0dXJuIGx9fSkpO2MucHVzaCh1KX1jYXRjaChsKXtjb25zdCByPWlpKGUsZCx7c2V0KGUpe24odGhpcy5jYW52YXMse3R5cGU6dCxwcm9wZXJ0eTpkLGFyZ3M6W2VdLHNldHRlcjohMH0pfX0pO2MucHVzaChyKX1yZXR1cm4gY31jbGFzcyBZaXtyZXNldCgpe3RoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5jbGVhcigpLHRoaXMucmVzZXRPYnNlcnZlcnMmJnRoaXMucmVzZXRPYnNlcnZlcnMoKX1mcmVlemUoKXt0aGlzLmZyb3plbj0hMH11bmZyZWV6ZSgpe3RoaXMuZnJvemVuPSExfWxvY2soKXt0aGlzLmxvY2tlZD0hMH11bmxvY2soKXt0aGlzLmxvY2tlZD0hMX1jb25zdHJ1Y3RvcihlKXt0aGlzLnBlbmRpbmdDYW52YXNNdXRhdGlvbnM9bmV3IE1hcCx0aGlzLnJhZlN0YW1wcz17bGF0ZXN0SWQ6MCxpbnZva2VJZDpudWxsfSx0aGlzLmZyb3plbj0hMSx0aGlzLmxvY2tlZD0hMSx0aGlzLnByb2Nlc3NNdXRhdGlvbj1mdW5jdGlvbihlLHQpeyEodGhpcy5yYWZTdGFtcHMuaW52b2tlSWQmJnRoaXMucmFmU3RhbXBzLmxhdGVzdElkIT09dGhpcy5yYWZTdGFtcHMuaW52b2tlSWQpJiZ0aGlzLnJhZlN0YW1wcy5pbnZva2VJZHx8KHRoaXMucmFmU3RhbXBzLmludm9rZUlkPXRoaXMucmFmU3RhbXBzLmxhdGVzdElkKSx0aGlzLnBlbmRpbmdDYW52YXNNdXRhdGlvbnMuaGFzKGUpfHx0aGlzLnBlbmRpbmdDYW52YXNNdXRhdGlvbnMuc2V0KGUsW10pLHRoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5nZXQoZSkucHVzaCh0KX0sdGhpcy5tdXRhdGlvbkNiPWUubXV0YXRpb25DYix0aGlzLm1pcnJvcj1lLm1pcnJvciwhMD09PWUucmVjb3JkQ2FudmFzJiZ0aGlzLmluaXRDYW52YXNNdXRhdGlvbk9ic2VydmVyKGUud2luLGUuYmxvY2tDbGFzcyxlLmJsb2NrU2VsZWN0b3IsZS51bmJsb2NrU2VsZWN0b3IpfWluaXRDYW52YXNNdXRhdGlvbk9ic2VydmVyKGUsdCxuLHIpe3RoaXMuc3RhcnRSQUZUaW1lc3RhbXBpbmcoKSx0aGlzLnN0YXJ0UGVuZGluZ0NhbnZhc011dGF0aW9uRmx1c2hlcigpO2NvbnN0IGk9ZnVuY3Rpb24oZSx0LG4scil7Y29uc3QgaT1bXTt0cnl7Y29uc3Qgbz1vaShlLkhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZSxcImdldENvbnRleHRcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGksLi4ubyl7cmV0dXJuIGNpKHRoaXMsdCxuLHIpfHxcIl9fY29udGV4dFwiaW4gdGhpc3x8KHRoaXMuX19jb250ZXh0PWkpLGUuYXBwbHkodGhpcyxbaSwuLi5vXSl9fSkpO2kucHVzaChvKX1jYXRjaChvKXtjb25zb2xlLmVycm9yKFwiZmFpbGVkIHRvIHBhdGNoIEhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDb250ZXh0XCIpfXJldHVybigpPT57aS5mb3JFYWNoKChlPT5lKCkpKX19KGUsdCxyLG4pLG89ZnVuY3Rpb24oZSx0LG4scixpLG8pe2NvbnN0IGE9W10scz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGUpO2Zvcihjb25zdCB1IG9mIHMpdHJ5e2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGVbdV0pY29udGludWU7Y29uc3Qgbz1vaSh0LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGUsdSwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKC4uLm8pe3JldHVybiBjaSh0aGlzLmNhbnZhcyxuLGkscil8fHNldFRpbWVvdXQoKCgpPT57Y29uc3QgdD1bLi4ub107aWYoXCJkcmF3SW1hZ2VcIj09PXUmJnRbMF0mJnRbMF1pbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50KXtjb25zdCBlPXRbMF0sbj1lLmdldENvbnRleHQoXCIyZFwiKTtsZXQgcj1udWxsPT09bnx8dm9pZCAwPT09bj92b2lkIDA6bi5nZXRJbWFnZURhdGEoMCwwLGUud2lkdGgsZS5oZWlnaHQpLGk9bnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuZGF0YTt0WzBdPUpTT04uc3RyaW5naWZ5KGkpfWUodGhpcy5jYW52YXMse3R5cGU6WHJbXCIyRFwiXSxwcm9wZXJ0eTp1LGFyZ3M6dH0pfSksMCksdC5hcHBseSh0aGlzLG8pfX0pKTthLnB1c2gobyl9Y2F0Y2goYyl7Y29uc3Qgbj1paSh0LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGUsdSx7c2V0KHQpe2UodGhpcy5jYW52YXMse3R5cGU6WHJbXCIyRFwiXSxwcm9wZXJ0eTp1LGFyZ3M6W3RdLHNldHRlcjohMH0pfX0pO2EucHVzaChuKX1yZXR1cm4oKT0+e2EuZm9yRWFjaCgoZT0+ZSgpKSl9fSh0aGlzLnByb2Nlc3NNdXRhdGlvbi5iaW5kKHRoaXMpLGUsdCxyLG4sdGhpcy5taXJyb3IpLGE9ZnVuY3Rpb24oZSx0LG4scixpLG8pe2NvbnN0IGE9W107cmV0dXJuIGEucHVzaCguLi5LaSh0LldlYkdMUmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUsWHIuV2ViR0wsZSxuLHIsaSxvLHQpKSxcInVuZGVmaW5lZFwiIT09dHlwZW9mIHQuV2ViR0wyUmVuZGVyaW5nQ29udGV4dCYmYS5wdXNoKC4uLktpKHQuV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5wcm90b3R5cGUsWHIuV2ViR0wyLGUsbixyLGksbyx0KSksKCk9PnthLmZvckVhY2goKGU9PmUoKSkpfX0odGhpcy5wcm9jZXNzTXV0YXRpb24uYmluZCh0aGlzKSxlLHQscixuLHRoaXMubWlycm9yKTt0aGlzLnJlc2V0T2JzZXJ2ZXJzPSgpPT57aSgpLG8oKSxhKCl9fXN0YXJ0UGVuZGluZ0NhbnZhc011dGF0aW9uRmx1c2hlcigpe3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKCk9PnRoaXMuZmx1c2hQZW5kaW5nQ2FudmFzTXV0YXRpb25zKCkpKX1zdGFydFJBRlRpbWVzdGFtcGluZygpe2NvbnN0IGU9dD0+e3RoaXMucmFmU3RhbXBzLmxhdGVzdElkPXQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpfTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSl9Zmx1c2hQZW5kaW5nQ2FudmFzTXV0YXRpb25zKCl7dGhpcy5wZW5kaW5nQ2FudmFzTXV0YXRpb25zLmZvckVhY2goKChlLHQpPT57Y29uc3Qgbj10aGlzLm1pcnJvci5nZXRJZCh0KTt0aGlzLmZsdXNoUGVuZGluZ0NhbnZhc011dGF0aW9uRm9yKHQsbil9KSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgoKT0+dGhpcy5mbHVzaFBlbmRpbmdDYW52YXNNdXRhdGlvbnMoKSkpfWZsdXNoUGVuZGluZ0NhbnZhc011dGF0aW9uRm9yKGUsdCl7aWYodGhpcy5mcm96ZW58fHRoaXMubG9ja2VkKXJldHVybjtjb25zdCBuPXRoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5nZXQoZSk7aWYoIW58fC0xPT09dClyZXR1cm47Y29uc3Qgcj1uLm1hcCgoZT0+e2NvbnN0IHQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5pbmRleE9mKHIpPDAmJihuW3JdPWVbcl0pO2lmKG51bGwhPWUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT0wO2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7aTxyLmxlbmd0aDtpKyspdC5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHJbaV0pJiYobltyW2ldXT1lW3JbaV1dKX1yZXR1cm4gbn0oZSxbXCJ0eXBlXCJdKTtyZXR1cm4gdH0pKSx7dHlwZTppfT1uWzBdO3RoaXMubXV0YXRpb25DYih7aWQ6dCx0eXBlOmksY29tbWFuZHM6cn0pLHRoaXMucGVuZGluZ0NhbnZhc011dGF0aW9ucy5kZWxldGUoZSl9fWZ1bmN0aW9uIHFpKGUpe3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse3RpbWVzdGFtcDpEYXRlLm5vdygpfSl9bGV0IFppLEppO2NvbnN0IFhpPXttYXA6e30sZ2V0SWQ6ZT0+ZSYmZS5fX3NuP2UuX19zbi5pZDotMSxnZXROb2RlKGUpe3JldHVybiB0aGlzLm1hcFtlXXx8bnVsbH0scmVtb3ZlTm9kZUZyb21NYXAoZSl7Y29uc3QgdD1lLl9fc24mJmUuX19zbi5pZDtkZWxldGUgdGhpcy5tYXBbdF0sZS5jaGlsZE5vZGVzJiZlLmNoaWxkTm9kZXMuZm9yRWFjaCgoZT0+dGhpcy5yZW1vdmVOb2RlRnJvbU1hcChlKSkpfSxoYXMoZSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KGUpfSxyZXNldCgpe3RoaXMubWFwPXt9fX07ZnVuY3Rpb24gUWkoZT17fSl7Y29uc3R7ZW1pdDp0LGNoZWNrb3V0RXZlcnlObXM6bixjaGVja291dEV2ZXJ5TnRoOnIsYmxvY2tDbGFzczppPVwicnItYmxvY2tcIixibG9ja1NlbGVjdG9yOm89bnVsbCx1bmJsb2NrU2VsZWN0b3I6YT1udWxsLGlnbm9yZUNsYXNzOnM9XCJyci1pZ25vcmVcIixpZ25vcmVTZWxlY3RvcjpjPW51bGwsbWFza1RleHRDbGFzczp1PVwicnItbWFza1wiLG1hc2tUZXh0U2VsZWN0b3I6bD1udWxsLG1hc2tJbnB1dFNlbGVjdG9yOmQ9bnVsbCx1bm1hc2tUZXh0U2VsZWN0b3I6cD1udWxsLHVubWFza0lucHV0U2VsZWN0b3I6Zj1udWxsLGlubGluZVN0eWxlc2hlZXQ6aD0hMCxtYXNrQWxsVGV4dDpnPSExLG1hc2tBbGxJbnB1dHM6bSxtYXNrSW5wdXRPcHRpb25zOnYsc2xpbURPTU9wdGlvbnM6XyxtYXNrSW5wdXRGbjpFLG1hc2tUZXh0Rm46Yixob29rczpTLHBhY2tGbjp5LHNhbXBsaW5nOlQ9e30sbW91c2Vtb3ZlV2FpdDpJLHJlY29yZENhbnZhczpPPSExLHVzZXJUcmlnZ2VyZWRPbklucHV0OkE9ITEsY29sbGVjdEZvbnRzOkM9ITEsaW5saW5lSW1hZ2VzOk49ITEscGx1Z2luczprLGtlZXBJZnJhbWVTcmNGbjpQPSgoKT0+ITEpLG9uTXV0YXRpb246Un09ZTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJlbWl0IGZ1bmN0aW9uIGlzIHJlcXVpcmVkXCIpO3ZvaWQgMCE9PUkmJnZvaWQgMD09PVQubW91c2Vtb3ZlJiYoVC5tb3VzZW1vdmU9SSk7Y29uc3Qgdz0hMD09PW0/e2NvbG9yOiEwLGRhdGU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMCx0ZXh0YXJlYTohMCxzZWxlY3Q6ITAscmFkaW86ITAsY2hlY2tib3g6ITB9OnZvaWQgMCE9PXY/djp7fSxMPSEwPT09X3x8XCJhbGxcIj09PV8/e3NjcmlwdDohMCxjb21tZW50OiEwLGhlYWRGYXZpY29uOiEwLGhlYWRXaGl0ZXNwYWNlOiEwLGhlYWRNZXRhU29jaWFsOiEwLGhlYWRNZXRhUm9ib3RzOiEwLGhlYWRNZXRhSHR0cEVxdWl2OiEwLGhlYWRNZXRhVmVyaWZpY2F0aW9uOiEwLGhlYWRNZXRhQXV0aG9yc2hpcDpcImFsbFwiPT09XyxoZWFkTWV0YURlc2NLZXl3b3JkczpcImFsbFwiPT09X306X3x8e307bGV0IEI7IWZ1bmN0aW9uKGU9d2luZG93KXtcIk5vZGVMaXN0XCJpbiBlJiYhZS5Ob2RlTGlzdC5wcm90b3R5cGUuZm9yRWFjaCYmKGUuTm9kZUxpc3QucHJvdG90eXBlLmZvckVhY2g9QXJyYXkucHJvdG90eXBlLmZvckVhY2gpLFwiRE9NVG9rZW5MaXN0XCJpbiBlJiYhZS5ET01Ub2tlbkxpc3QucHJvdG90eXBlLmZvckVhY2gmJihlLkRPTVRva2VuTGlzdC5wcm90b3R5cGUuZm9yRWFjaD1BcnJheS5wcm90b3R5cGUuZm9yRWFjaCksTm9kZS5wcm90b3R5cGUuY29udGFpbnN8fChOb2RlLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihlKXtpZighKDAgaW4gYXJndW1lbnRzKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiMSBhcmd1bWVudCBpcyByZXF1aXJlZFwiKTtkb3tpZih0aGlzPT09ZSlyZXR1cm4hMH13aGlsZShlPWUmJmUucGFyZW50Tm9kZSk7cmV0dXJuITF9KX0oKTtsZXQgTT0wO1ppPShlLGkpPT57dmFyIG87aWYoIShudWxsPT09KG89VGlbMF0pfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmlzRnJvemVuKCkpfHxlLnR5cGU9PT1xci5GdWxsU25hcHNob3R8fGUudHlwZT09PXFyLkluY3JlbWVudGFsU25hcHNob3QmJmUuZGF0YS5zb3VyY2U9PT1aci5NdXRhdGlvbnx8VGkuZm9yRWFjaCgoZT0+ZS51bmZyZWV6ZSgpKSksdCgoZT0+e2Zvcihjb25zdCB0IG9mIGt8fFtdKXQuZXZlbnRQcm9jZXNzb3ImJihlPXQuZXZlbnRQcm9jZXNzb3IoZSkpO3JldHVybiB5JiYoZT15KGUpKSxlfSkoZSksaSksZS50eXBlPT09cXIuRnVsbFNuYXBzaG90KUI9ZSxNPTA7ZWxzZSBpZihlLnR5cGU9PT1xci5JbmNyZW1lbnRhbFNuYXBzaG90KXtpZihlLmRhdGEuc291cmNlPT09WnIuTXV0YXRpb24mJmUuZGF0YS5pc0F0dGFjaElmcmFtZSlyZXR1cm47TSsrO2NvbnN0IHQ9ciYmTT49cixpPW4mJmUudGltZXN0YW1wLUIudGltZXN0YW1wPm47KHR8fGkpJiZKaSghMCl9fTtjb25zdCBEPWU9PntaaShxaSh7dHlwZTpxci5JbmNyZW1lbnRhbFNuYXBzaG90LGRhdGE6T2JqZWN0LmFzc2lnbih7c291cmNlOlpyLk11dGF0aW9ufSxlKX0pKX0saj1lPT5aaShxaSh7dHlwZTpxci5JbmNyZW1lbnRhbFNuYXBzaG90LGRhdGE6T2JqZWN0LmFzc2lnbih7c291cmNlOlpyLlNjcm9sbH0sZSl9KSkseD1lPT5aaShxaSh7dHlwZTpxci5JbmNyZW1lbnRhbFNuYXBzaG90LGRhdGE6T2JqZWN0LmFzc2lnbih7c291cmNlOlpyLkNhbnZhc011dGF0aW9ufSxlKX0pKSxVPW5ldyBEaSh7bXV0YXRpb25DYjpEfSksRj1uZXcgWWkoe3JlY29yZENhbnZhczpPLG11dGF0aW9uQ2I6eCx3aW46d2luZG93LGJsb2NrQ2xhc3M6aSxibG9ja1NlbGVjdG9yOm8sdW5ibG9ja1NlbGVjdG9yOmEsbWlycm9yOlhpfSksSD1uZXcgamkoe211dGF0aW9uQ2I6RCxzY3JvbGxDYjpqLGJ5cGFzc09wdGlvbnM6e29uTXV0YXRpb246UixibG9ja0NsYXNzOmksYmxvY2tTZWxlY3RvcjpvLHVuYmxvY2tTZWxlY3RvcjphLG1hc2tUZXh0Q2xhc3M6dSxtYXNrVGV4dFNlbGVjdG9yOmwsdW5tYXNrVGV4dFNlbGVjdG9yOnAsbWFza0lucHV0U2VsZWN0b3I6ZCx1bm1hc2tJbnB1dFNlbGVjdG9yOmYsaW5saW5lU3R5bGVzaGVldDpoLG1hc2tBbGxUZXh0OmcsbWFza0lucHV0T3B0aW9uczp3LG1hc2tUZXh0Rm46YixtYXNrSW5wdXRGbjpFLHJlY29yZENhbnZhczpPLGlubGluZUltYWdlczpOLHNhbXBsaW5nOlQsc2xpbURPTU9wdGlvbnM6TCxpZnJhbWVNYW5hZ2VyOlUsY2FudmFzTWFuYWdlcjpGfSxtaXJyb3I6WGl9KTtKaT0oZT0hMSk9Pnt2YXIgdCxuLHIscztaaShxaSh7dHlwZTpxci5NZXRhLGRhdGE6e2hyZWY6d2luZG93LmxvY2F0aW9uLmhyZWYsd2lkdGg6c2koKSxoZWlnaHQ6YWkoKX19KSxlKSxUaS5mb3JFYWNoKChlPT5lLmxvY2soKSkpO2NvbnN0W2MsbV09ZnVuY3Rpb24oZSx0KXtjb25zdHtibG9ja0NsYXNzOm49XCJyci1ibG9ja1wiLGJsb2NrU2VsZWN0b3I6cj1udWxsLHVuYmxvY2tTZWxlY3RvcjppPW51bGwsbWFza1RleHRDbGFzczpvPVwicnItbWFza1wiLG1hc2tUZXh0U2VsZWN0b3I6YT1udWxsLHVubWFza1RleHRTZWxlY3RvcjpzPW51bGwsaW5saW5lU3R5bGVzaGVldDpjPSEwLGlubGluZUltYWdlczp1PSExLHJlY29yZENhbnZhczpsPSExLG1hc2tJbnB1dFNlbGVjdG9yOmQ9bnVsbCx1bm1hc2tJbnB1dFNlbGVjdG9yOnA9bnVsbCxtYXNrQWxsVGV4dDpmPSExLG1hc2tBbGxJbnB1dHM6aD0hMSxtYXNrVGV4dEZuOmcsbWFza0lucHV0Rm46bSxzbGltRE9NOnY9ITEsZGF0YVVSTE9wdGlvbnM6XyxwcmVzZXJ2ZVdoaXRlU3BhY2U6RSxvblNlcmlhbGl6ZTpiLG9uSWZyYW1lTG9hZDpTLGlmcmFtZUxvYWRUaW1lb3V0Onksa2VlcElmcmFtZVNyY0ZuOlQ9KCgpPT4hMSl9PXR8fHt9LEk9e307cmV0dXJuW0tyKGUse2RvYzplLG1hcDpJLGJsb2NrQ2xhc3M6bixibG9ja1NlbGVjdG9yOnIsdW5ibG9ja1NlbGVjdG9yOmksbWFza1RleHRDbGFzczpvLG1hc2tUZXh0U2VsZWN0b3I6YSx1bm1hc2tUZXh0U2VsZWN0b3I6cyxza2lwQ2hpbGQ6ITEsaW5saW5lU3R5bGVzaGVldDpjLG1hc2tJbnB1dFNlbGVjdG9yOmQsdW5tYXNrSW5wdXRTZWxlY3RvcjpwLG1hc2tBbGxUZXh0OmYsbWFza0lucHV0T3B0aW9uczohMD09PWg/e2NvbG9yOiEwLGRhdGU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMCx0ZXh0YXJlYTohMCxzZWxlY3Q6ITB9OiExPT09aD97fTpoLG1hc2tUZXh0Rm46ZyxtYXNrSW5wdXRGbjptLHNsaW1ET01PcHRpb25zOiEwPT09dnx8XCJhbGxcIj09PXY/e3NjcmlwdDohMCxjb21tZW50OiEwLGhlYWRGYXZpY29uOiEwLGhlYWRXaGl0ZXNwYWNlOiEwLGhlYWRNZXRhRGVzY0tleXdvcmRzOlwiYWxsXCI9PT12LGhlYWRNZXRhU29jaWFsOiEwLGhlYWRNZXRhUm9ib3RzOiEwLGhlYWRNZXRhSHR0cEVxdWl2OiEwLGhlYWRNZXRhQXV0aG9yc2hpcDohMCxoZWFkTWV0YVZlcmlmaWNhdGlvbjohMH06ITE9PT12P3t9OnYsZGF0YVVSTE9wdGlvbnM6XyxpbmxpbmVJbWFnZXM6dSxyZWNvcmRDYW52YXM6bCxwcmVzZXJ2ZVdoaXRlU3BhY2U6RSxvblNlcmlhbGl6ZTpiLG9uSWZyYW1lTG9hZDpTLGlmcmFtZUxvYWRUaW1lb3V0Onksa2VlcElmcmFtZVNyY0ZuOlR9KSxJXX0oZG9jdW1lbnQse2Jsb2NrQ2xhc3M6aSxibG9ja1NlbGVjdG9yOm8sdW5ibG9ja1NlbGVjdG9yOmEsbWFza1RleHRDbGFzczp1LG1hc2tUZXh0U2VsZWN0b3I6bCx1bm1hc2tUZXh0U2VsZWN0b3I6cCxtYXNrSW5wdXRTZWxlY3RvcjpkLHVubWFza0lucHV0U2VsZWN0b3I6ZixpbmxpbmVTdHlsZXNoZWV0OmgsbWFza0FsbFRleHQ6ZyxtYXNrQWxsSW5wdXRzOncsbWFza1RleHRGbjpiLHNsaW1ET006TCxyZWNvcmRDYW52YXM6TyxpbmxpbmVJbWFnZXM6TixvblNlcmlhbGl6ZTplPT57cGkoZSkmJlUuYWRkSWZyYW1lKGUpLGZpKGUpJiZILmFkZFNoYWRvd1Jvb3QoZS5zaGFkb3dSb290LGRvY3VtZW50KX0sb25JZnJhbWVMb2FkOihlLHQpPT57VS5hdHRhY2hJZnJhbWUoZSx0KSxILm9ic2VydmVBdHRhY2hTaGFkb3coZSl9LGtlZXBJZnJhbWVTcmNGbjpQfSk7aWYoIWMpcmV0dXJuIGNvbnNvbGUud2FybihcIkZhaWxlZCB0byBzbmFwc2hvdCB0aGUgZG9jdW1lbnRcIik7WGkubWFwPW0sWmkocWkoe3R5cGU6cXIuRnVsbFNuYXBzaG90LGRhdGE6e25vZGU6Yyxpbml0aWFsT2Zmc2V0OntsZWZ0OnZvaWQgMCE9PXdpbmRvdy5wYWdlWE9mZnNldD93aW5kb3cucGFnZVhPZmZzZXQ6KG51bGw9PT1kb2N1bWVudHx8dm9pZCAwPT09ZG9jdW1lbnQ/dm9pZCAwOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0KXx8KG51bGw9PT0obj1udWxsPT09KHQ9bnVsbD09PWRvY3VtZW50fHx2b2lkIDA9PT1kb2N1bWVudD92b2lkIDA6ZG9jdW1lbnQuYm9keSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQucGFyZW50RWxlbWVudCl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc2Nyb2xsTGVmdCl8fChudWxsPT09ZG9jdW1lbnR8fHZvaWQgMD09PWRvY3VtZW50P3ZvaWQgMDpkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQpfHwwLHRvcDp2b2lkIDAhPT13aW5kb3cucGFnZVlPZmZzZXQ/d2luZG93LnBhZ2VZT2Zmc2V0OihudWxsPT09ZG9jdW1lbnR8fHZvaWQgMD09PWRvY3VtZW50P3ZvaWQgMDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKXx8KG51bGw9PT0ocz1udWxsPT09KHI9bnVsbD09PWRvY3VtZW50fHx2b2lkIDA9PT1kb2N1bWVudD92b2lkIDA6ZG9jdW1lbnQuYm9keSl8fHZvaWQgMD09PXI/dm9pZCAwOnIucGFyZW50RWxlbWVudCl8fHZvaWQgMD09PXM/dm9pZCAwOnMuc2Nyb2xsVG9wKXx8KG51bGw9PT1kb2N1bWVudHx8dm9pZCAwPT09ZG9jdW1lbnQ/dm9pZCAwOmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKXx8MH19fSkpLFRpLmZvckVhY2goKGU9PmUudW5sb2NrKCkpKX07dHJ5e2NvbnN0IGU9W107ZS5wdXNoKGVpKFwiRE9NQ29udGVudExvYWRlZFwiLCgoKT0+e1ppKHFpKHt0eXBlOnFyLkRvbUNvbnRlbnRMb2FkZWQsZGF0YTp7fX0pKX0pKSk7Y29uc3QgdD1lPT57dmFyIHQ7cmV0dXJuIHlpKExpKSh7b25NdXRhdGlvbjpSLG11dGF0aW9uQ2I6RCxtb3VzZW1vdmVDYjooZSx0KT0+WmkocWkoe3R5cGU6cXIuSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOntzb3VyY2U6dCxwb3NpdGlvbnM6ZX19KSksbW91c2VJbnRlcmFjdGlvbkNiOmU9PlppKHFpKHt0eXBlOnFyLkluY3JlbWVudGFsU25hcHNob3QsZGF0YTpPYmplY3QuYXNzaWduKHtzb3VyY2U6WnIuTW91c2VJbnRlcmFjdGlvbn0sZSl9KSksc2Nyb2xsQ2I6aix2aWV3cG9ydFJlc2l6ZUNiOmU9PlppKHFpKHt0eXBlOnFyLkluY3JlbWVudGFsU25hcHNob3QsZGF0YTpPYmplY3QuYXNzaWduKHtzb3VyY2U6WnIuVmlld3BvcnRSZXNpemV9LGUpfSkpLGlucHV0Q2I6ZT0+WmkocWkoe3R5cGU6cXIuSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOk9iamVjdC5hc3NpZ24oe3NvdXJjZTpaci5JbnB1dH0sZSl9KSksbWVkaWFJbnRlcmFjdGlvbkNiOmU9PlppKHFpKHt0eXBlOnFyLkluY3JlbWVudGFsU25hcHNob3QsZGF0YTpPYmplY3QuYXNzaWduKHtzb3VyY2U6WnIuTWVkaWFJbnRlcmFjdGlvbn0sZSl9KSksc3R5bGVTaGVldFJ1bGVDYjplPT5aaShxaSh7dHlwZTpxci5JbmNyZW1lbnRhbFNuYXBzaG90LGRhdGE6T2JqZWN0LmFzc2lnbih7c291cmNlOlpyLlN0eWxlU2hlZXRSdWxlfSxlKX0pKSxzdHlsZURlY2xhcmF0aW9uQ2I6ZT0+WmkocWkoe3R5cGU6cXIuSW5jcmVtZW50YWxTbmFwc2hvdCxkYXRhOk9iamVjdC5hc3NpZ24oe3NvdXJjZTpaci5TdHlsZURlY2xhcmF0aW9ufSxlKX0pKSxjYW52YXNNdXRhdGlvbkNiOngsZm9udENiOmU9PlppKHFpKHt0eXBlOnFyLkluY3JlbWVudGFsU25hcHNob3QsZGF0YTpPYmplY3QuYXNzaWduKHtzb3VyY2U6WnIuRm9udH0sZSl9KSksYmxvY2tDbGFzczppLGlnbm9yZUNsYXNzOnMsaWdub3JlU2VsZWN0b3I6YyxtYXNrVGV4dENsYXNzOnUsbWFza1RleHRTZWxlY3RvcjpsLHVubWFza1RleHRTZWxlY3RvcjpwLG1hc2tJbnB1dFNlbGVjdG9yOmQsdW5tYXNrSW5wdXRTZWxlY3RvcjpmLG1hc2tJbnB1dE9wdGlvbnM6dyxpbmxpbmVTdHlsZXNoZWV0Omgsc2FtcGxpbmc6VCxyZWNvcmRDYW52YXM6TyxpbmxpbmVJbWFnZXM6Tix1c2VyVHJpZ2dlcmVkT25JbnB1dDpBLGNvbGxlY3RGb250czpDLGRvYzplLG1hc2tBbGxUZXh0OmcsbWFza0lucHV0Rm46RSxtYXNrVGV4dEZuOmIsYmxvY2tTZWxlY3RvcjpvLHVuYmxvY2tTZWxlY3RvcjphLHNsaW1ET01PcHRpb25zOkwsbWlycm9yOlhpLGlmcmFtZU1hbmFnZXI6VSxzaGFkb3dEb21NYW5hZ2VyOkgsY2FudmFzTWFuYWdlcjpGLHBsdWdpbnM6KG51bGw9PT0odD1udWxsPT09a3x8dm9pZCAwPT09az92b2lkIDA6ay5maWx0ZXIoKGU9PmUub2JzZXJ2ZXIpKSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQubWFwKChlPT4oe29ic2VydmVyOmUub2JzZXJ2ZXIsb3B0aW9uczplLm9wdGlvbnMsY2FsbGJhY2s6dD0+WmkocWkoe3R5cGU6cXIuUGx1Z2luLGRhdGE6e3BsdWdpbjplLm5hbWUscGF5bG9hZDp0fX0pKX0pKSkpfHxbXX0sUyl9O1UuYWRkTG9hZExpc3RlbmVyKChuPT57dHJ5e2UucHVzaCh0KG4uY29udGVudERvY3VtZW50KSl9Y2F0Y2gocil7Y29uc29sZS53YXJuKHIpfX0pKTtjb25zdCBuPSgpPT57SmkoKSxlLnB1c2godChkb2N1bWVudCkpfTtyZXR1cm5cImludGVyYWN0aXZlXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlfHxcImNvbXBsZXRlXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlP24oKTplLnB1c2goZWkoXCJsb2FkXCIsKCgpPT57WmkocWkoe3R5cGU6cXIuTG9hZCxkYXRhOnt9fSkpLG4oKX0pLHdpbmRvdykpLCgpPT57ZS5mb3JFYWNoKChlPT5lKCkpKX19Y2F0Y2goRyl7Y29uc29sZS53YXJuKEcpfX1RaS5hZGRDdXN0b21FdmVudD0oZSx0KT0+e2lmKCFaaSl0aHJvdyBuZXcgRXJyb3IoXCJwbGVhc2UgYWRkIGN1c3RvbSBldmVudCBhZnRlciBzdGFydCByZWNvcmRpbmdcIik7WmkocWkoe3R5cGU6cXIuQ3VzdG9tLGRhdGE6e3RhZzplLHBheWxvYWQ6dH19KSl9LFFpLmZyZWV6ZVBhZ2U9KCk9PntUaS5mb3JFYWNoKChlPT5lLmZyZWV6ZSgpKSl9LFFpLnRha2VGdWxsU25hcHNob3Q9ZT0+e2lmKCFKaSl0aHJvdyBuZXcgRXJyb3IoXCJwbGVhc2UgdGFrZSBmdWxsIHNuYXBzaG90IGFmdGVyIHN0YXJ0IHJlY29yZGluZ1wiKTtKaShlKX0sUWkubWlycm9yPVhpO2NvbnN0ICRpPVtcIm5hbWVcIixcInR5cGVcIixcInN0YXJ0VGltZVwiLFwidHJhbnNmZXJTaXplXCIsXCJkdXJhdGlvblwiXTtmdW5jdGlvbiBlbyhlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuICRpLmV2ZXJ5KChuPT5lW25dPT09dFtuXSkpfX1mdW5jdGlvbiB0byhlKXtjb25zdCB0PW5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKCh0PT57Y29uc3Qgbj1mdW5jdGlvbihlLHQpe2NvbnN0W24scixpXT1lLnJlZHVjZSgoKGUsdCk9PihcIm5hdmlnYXRpb25cIj09PXQuZW50cnlUeXBlP2VbMF0ucHVzaCh0KTpcImxhcmdlc3QtY29udGVudGZ1bC1wYWludFwiPT09dC5lbnRyeVR5cGU/ZVsxXS5wdXNoKHQpOmVbMl0ucHVzaCh0KSxlKSksW1tdLFtdLFtdXSksbz1bXSxhPVtdO2xldCBzPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06dm9pZCAwO3JldHVybiB0LmZvckVhY2goKGU9PntpZihcImxhcmdlc3QtY29udGVudGZ1bC1wYWludFwiIT09ZS5lbnRyeVR5cGUpaWYoXCJuYXZpZ2F0aW9uXCIhPT1lLmVudHJ5VHlwZSlvLnB1c2goZSk7ZWxzZXtjb25zdCB0PWU7ZS5kdXJhdGlvbj4wJiYhbi5maW5kKGVvKHQpKSYmIWEuZmluZChlbyh0KSkmJmEucHVzaCh0KX1lbHNlKCFzfHxzLnN0YXJ0VGltZTxlLnN0YXJ0VGltZSkmJihzPWUpfSkpLFsuLi5zP1tzXTpbXSwuLi5uLC4uLmksLi4ubywuLi5hXS5zb3J0KCgoZSx0KT0+ZS5zdGFydFRpbWUtdC5zdGFydFRpbWUpKX0oZS5wZXJmb3JtYW5jZUV2ZW50cyx0LmdldEVudHJpZXMoKSk7ZS5wZXJmb3JtYW5jZUV2ZW50cz1ufSkpO3JldHVybltcImVsZW1lbnRcIixcImV2ZW50XCIsXCJmaXJzdC1pbnB1dFwiLFwibGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50XCIsXCJsYXlvdXQtc2hpZnRcIixcImxvbmd0YXNrXCIsXCJuYXZpZ2F0aW9uXCIsXCJwYWludFwiLFwicmVzb3VyY2VcIl0uZm9yRWFjaCgoZT0+e3RyeXt0Lm9ic2VydmUoe3R5cGU6ZSxidWZmZXJlZDohMH0pfWNhdGNoKG4pe319KSksdH1mdW5jdGlvbiBubyhlKXtyZXR1cm4gZT45OTk5OTk5OTk5P2U6MWUzKmV9Y2xhc3Mgcm97Y29uc3RydWN0b3IoKXt0aGlzLmV2ZW50cz1bXX1nZXQgaGFzRXZlbnRzKCl7cmV0dXJuIHRoaXMuZXZlbnRzLmxlbmd0aD4wfWdldCB0eXBlKCl7cmV0dXJuXCJzeW5jXCJ9ZGVzdHJveSgpe3RoaXMuZXZlbnRzPVtdfWFzeW5jIGFkZEV2ZW50KGUpe3RoaXMuZXZlbnRzLnB1c2goZSl9ZmluaXNoKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlPT57Y29uc3QgdD10aGlzLmV2ZW50czt0aGlzLmV2ZW50cz1bXSxlKEpTT04uc3RyaW5naWZ5KHQpKX0pKX1jbGVhcigpe3RoaXMuZXZlbnRzPVtdfWdldEVhcmxpZXN0VGltZXN0YW1wKCl7Y29uc3QgZT10aGlzLmV2ZW50cy5tYXAoKGU9PmUudGltZXN0YW1wKSkuc29ydCgpWzBdO3JldHVybiBlP25vKGUpOm51bGx9fWNsYXNzIGlve2NvbnN0cnVjdG9yKGUpe3RoaXMuX3dvcmtlcj1lLHRoaXMuX2lkPTB9ZW5zdXJlUmVhZHkoKXtyZXR1cm4gdGhpcy5fZW5zdXJlUmVhZHlQcm9taXNlfHwodGhpcy5fZW5zdXJlUmVhZHlQcm9taXNlPW5ldyBQcm9taXNlKCgoZSx0KT0+e3RoaXMuX3dvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCgoe2RhdGE6bn0pPT57bi5zdWNjZXNzP2UoKTp0KCl9KSx7b25jZTohMH0pLHRoaXMuX3dvcmtlci5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwoZT0+e3QoZSl9KSx7b25jZTohMH0pfSkpKSx0aGlzLl9lbnN1cmVSZWFkeVByb21pc2V9ZGVzdHJveSgpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5sb2coXCJbUmVwbGF5XSBEZXN0cm95aW5nIGNvbXByZXNzaW9uIHdvcmtlclwiKSx0aGlzLl93b3JrZXIudGVybWluYXRlKCl9cG9zdE1lc3NhZ2UoZSx0KXtjb25zdCBuPXRoaXMuX2dldEFuZEluY3JlbWVudElkKCk7cmV0dXJuIG5ldyBQcm9taXNlKCgocixpKT0+e2NvbnN0IG89KHtkYXRhOnR9KT0+e2NvbnN0IGE9dDtpZihhLm1ldGhvZD09PWUmJmEuaWQ9PT1uKXtpZih0aGlzLl93b3JrZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIixvKSwhYS5zdWNjZXNzKXJldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5lcnJvcihcIltSZXBsYXldXCIsYS5yZXNwb25zZSksdm9pZCBpKG5ldyBFcnJvcihcIkVycm9yIGluIGNvbXByZXNzaW9uIHdvcmtlclwiKSk7cihhLnJlc3BvbnNlKX19O3RoaXMuX3dvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLG8pLHRoaXMuX3dvcmtlci5wb3N0TWVzc2FnZSh7aWQ6bixtZXRob2Q6ZSxhcmc6dH0pfSkpfV9nZXRBbmRJbmNyZW1lbnRJZCgpe3JldHVybiB0aGlzLl9pZCsrfX1jbGFzcyBvb3tjb25zdHJ1Y3RvcihlKXt0aGlzLl93b3JrZXI9bmV3IGlvKGUpLHRoaXMuX2VhcmxpZXN0VGltZXN0YW1wPW51bGx9Z2V0IGhhc0V2ZW50cygpe3JldHVybiEhdGhpcy5fZWFybGllc3RUaW1lc3RhbXB9Z2V0IHR5cGUoKXtyZXR1cm5cIndvcmtlclwifWVuc3VyZVJlYWR5KCl7cmV0dXJuIHRoaXMuX3dvcmtlci5lbnN1cmVSZWFkeSgpfWRlc3Ryb3koKXt0aGlzLl93b3JrZXIuZGVzdHJveSgpfWFkZEV2ZW50KGUpe2NvbnN0IHQ9bm8oZS50aW1lc3RhbXApO3JldHVybighdGhpcy5fZWFybGllc3RUaW1lc3RhbXB8fHQ8dGhpcy5fZWFybGllc3RUaW1lc3RhbXApJiYodGhpcy5fZWFybGllc3RUaW1lc3RhbXA9dCksdGhpcy5fc2VuZEV2ZW50VG9Xb3JrZXIoZSl9ZmluaXNoKCl7cmV0dXJuIHRoaXMuX2ZpbmlzaFJlcXVlc3QoKX1jbGVhcigpe3RoaXMuX2VhcmxpZXN0VGltZXN0YW1wPW51bGwsdGhpcy5fd29ya2VyLnBvc3RNZXNzYWdlKFwiY2xlYXJcIil9Z2V0RWFybGllc3RUaW1lc3RhbXAoKXtyZXR1cm4gdGhpcy5fZWFybGllc3RUaW1lc3RhbXB9X3NlbmRFdmVudFRvV29ya2VyKGUpe3JldHVybiB0aGlzLl93b3JrZXIucG9zdE1lc3NhZ2UoXCJhZGRFdmVudFwiLEpTT04uc3RyaW5naWZ5KGUpKX1hc3luYyBfZmluaXNoUmVxdWVzdCgpe2NvbnN0IGU9YXdhaXQgdGhpcy5fd29ya2VyLnBvc3RNZXNzYWdlKFwiZmluaXNoXCIpO3JldHVybiB0aGlzLl9lYXJsaWVzdFRpbWVzdGFtcD1udWxsLGV9fWNsYXNzIGFve2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ZhbGxiYWNrPW5ldyBybyx0aGlzLl9jb21wcmVzc2lvbj1uZXcgb28oZSksdGhpcy5fdXNlZD10aGlzLl9mYWxsYmFjayx0aGlzLl9lbnN1cmVXb3JrZXJJc0xvYWRlZFByb21pc2U9dGhpcy5fZW5zdXJlV29ya2VySXNMb2FkZWQoKX1nZXQgdHlwZSgpe3JldHVybiB0aGlzLl91c2VkLnR5cGV9Z2V0IGhhc0V2ZW50cygpe3JldHVybiB0aGlzLl91c2VkLmhhc0V2ZW50c31kZXN0cm95KCl7dGhpcy5fZmFsbGJhY2suZGVzdHJveSgpLHRoaXMuX2NvbXByZXNzaW9uLmRlc3Ryb3koKX1jbGVhcigpe3JldHVybiB0aGlzLl91c2VkLmNsZWFyKCl9Z2V0RWFybGllc3RUaW1lc3RhbXAoKXtyZXR1cm4gdGhpcy5fdXNlZC5nZXRFYXJsaWVzdFRpbWVzdGFtcCgpfWFkZEV2ZW50KGUpe3JldHVybiB0aGlzLl91c2VkLmFkZEV2ZW50KGUpfWFzeW5jIGZpbmlzaCgpe3JldHVybiBhd2FpdCB0aGlzLmVuc3VyZVdvcmtlcklzTG9hZGVkKCksdGhpcy5fdXNlZC5maW5pc2goKX1lbnN1cmVXb3JrZXJJc0xvYWRlZCgpe3JldHVybiB0aGlzLl9lbnN1cmVXb3JrZXJJc0xvYWRlZFByb21pc2V9YXN5bmMgX2Vuc3VyZVdvcmtlcklzTG9hZGVkKCl7dHJ5e2F3YWl0IHRoaXMuX2NvbXByZXNzaW9uLmVuc3VyZVJlYWR5KCl9Y2F0Y2goZSl7cmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLmxvZyhcIltSZXBsYXldIEZhaWxlZCB0byBsb2FkIHRoZSBjb21wcmVzc2lvbiB3b3JrZXIsIGZhbGxpbmcgYmFjayB0byBzaW1wbGUgYnVmZmVyXCIpKX1hd2FpdCB0aGlzLl9zd2l0Y2hUb0NvbXByZXNzaW9uV29ya2VyKCl9YXN5bmMgX3N3aXRjaFRvQ29tcHJlc3Npb25Xb3JrZXIoKXtjb25zdHtldmVudHM6ZX09dGhpcy5fZmFsbGJhY2ssdD1bXTtmb3IoY29uc3QgciBvZiBlKXQucHVzaCh0aGlzLl9jb21wcmVzc2lvbi5hZGRFdmVudChyKSk7dGhpcy5fdXNlZD10aGlzLl9jb21wcmVzc2lvbjt0cnl7YXdhaXQgUHJvbWlzZS5hbGwodCl9Y2F0Y2gobil7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLndhcm4oXCJbUmVwbGF5XSBGYWlsZWQgdG8gYWRkIGV2ZW50cyB3aGVuIHN3aXRjaGluZyBidWZmZXJzLlwiLG4pfX19ZnVuY3Rpb24gc28oe3VzZUNvbXByZXNzaW9uOmV9KXtpZihlJiZ3aW5kb3cuV29ya2VyKXRyeXtjb25zdCBlPWZ1bmN0aW9uKCl7Y29uc3QgZT1uZXcgQmxvYihbJy8qISBwYWtvIDIuMS4wIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrbyBAbGljZW5zZSAoTUlUIEFORCBabGliKSAqL1xcbmZ1bmN0aW9uIHQodCl7bGV0IGU9dC5sZW5ndGg7Zm9yKDstLWU+PTA7KXRbZV09MH1jb25zdCBlPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDBdKSxhPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDEsMSwyLDIsMywzLDQsNCw1LDUsNiw2LDcsNyw4LDgsOSw5LDEwLDEwLDExLDExLDEyLDEyLDEzLDEzXSksaT1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10pLG49bmV3IFVpbnQ4QXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKSxzPW5ldyBBcnJheSg1NzYpO3Qocyk7Y29uc3Qgcj1uZXcgQXJyYXkoNjApO3Qocik7Y29uc3Qgbz1uZXcgQXJyYXkoNTEyKTt0KG8pO2NvbnN0IGw9bmV3IEFycmF5KDI1Nik7dChsKTtjb25zdCBoPW5ldyBBcnJheSgyOSk7dChoKTtjb25zdCBkPW5ldyBBcnJheSgzMCk7ZnVuY3Rpb24gXyh0LGUsYSxpLG4pe3RoaXMuc3RhdGljX3RyZWU9dCx0aGlzLmV4dHJhX2JpdHM9ZSx0aGlzLmV4dHJhX2Jhc2U9YSx0aGlzLmVsZW1zPWksdGhpcy5tYXhfbGVuZ3RoPW4sdGhpcy5oYXNfc3RyZWU9dCYmdC5sZW5ndGh9bGV0IGYsYyx1O2Z1bmN0aW9uIHcodCxlKXt0aGlzLmR5bl90cmVlPXQsdGhpcy5tYXhfY29kZT0wLHRoaXMuc3RhdF9kZXNjPWV9dChkKTtjb25zdCBtPXQ9PnQ8MjU2P29bdF06b1syNTYrKHQ+Pj43KV0sYj0odCxlKT0+e3QucGVuZGluZ19idWZbdC5wZW5kaW5nKytdPTI1NSZlLHQucGVuZGluZ19idWZbdC5wZW5kaW5nKytdPWU+Pj44JjI1NX0sZz0odCxlLGEpPT57dC5iaV92YWxpZD4xNi1hPyh0LmJpX2J1Znw9ZTw8dC5iaV92YWxpZCY2NTUzNSxiKHQsdC5iaV9idWYpLHQuYmlfYnVmPWU+PjE2LXQuYmlfdmFsaWQsdC5iaV92YWxpZCs9YS0xNik6KHQuYmlfYnVmfD1lPDx0LmJpX3ZhbGlkJjY1NTM1LHQuYmlfdmFsaWQrPWEpfSxwPSh0LGUsYSk9PntnKHQsYVsyKmVdLGFbMiplKzFdKX0saz0odCxlKT0+e2xldCBhPTA7ZG97YXw9MSZ0LHQ+Pj49MSxhPDw9MX13aGlsZSgtLWU+MCk7cmV0dXJuIGE+Pj4xfSx2PSh0LGUsYSk9Pntjb25zdCBpPW5ldyBBcnJheSgxNik7bGV0IG4scyxyPTA7Zm9yKG49MTtuPD0xNTtuKyspcj1yK2Fbbi0xXTw8MSxpW25dPXI7Zm9yKHM9MDtzPD1lO3MrKyl7bGV0IGU9dFsyKnMrMV07MCE9PWUmJih0WzIqc109ayhpW2VdKyssZSkpfX0seT10PT57bGV0IGU7Zm9yKGU9MDtlPDI4NjtlKyspdC5keW5fbHRyZWVbMiplXT0wO2ZvcihlPTA7ZTwzMDtlKyspdC5keW5fZHRyZWVbMiplXT0wO2ZvcihlPTA7ZTwxOTtlKyspdC5ibF90cmVlWzIqZV09MDt0LmR5bl9sdHJlZVs1MTJdPTEsdC5vcHRfbGVuPXQuc3RhdGljX2xlbj0wLHQuc3ltX25leHQ9dC5tYXRjaGVzPTB9LHg9dD0+e3QuYmlfdmFsaWQ+OD9iKHQsdC5iaV9idWYpOnQuYmlfdmFsaWQ+MCYmKHQucGVuZGluZ19idWZbdC5wZW5kaW5nKytdPXQuYmlfYnVmKSx0LmJpX2J1Zj0wLHQuYmlfdmFsaWQ9MH0sej0odCxlLGEsaSk9Pntjb25zdCBuPTIqZSxzPTIqYTtyZXR1cm4gdFtuXTx0W3NdfHx0W25dPT09dFtzXSYmaVtlXTw9aVthXX0sQT0odCxlLGEpPT57Y29uc3QgaT10LmhlYXBbYV07bGV0IG49YTw8MTtmb3IoO248PXQuaGVhcF9sZW4mJihuPHQuaGVhcF9sZW4mJnooZSx0LmhlYXBbbisxXSx0LmhlYXBbbl0sdC5kZXB0aCkmJm4rKywheihlLGksdC5oZWFwW25dLHQuZGVwdGgpKTspdC5oZWFwW2FdPXQuaGVhcFtuXSxhPW4sbjw8PTE7dC5oZWFwW2FdPWl9LEU9KHQsaSxuKT0+e2xldCBzLHIsbyxfLGY9MDtpZigwIT09dC5zeW1fbmV4dClkb3tzPTI1NSZ0LnBlbmRpbmdfYnVmW3Quc3ltX2J1ZitmKytdLHMrPSgyNTUmdC5wZW5kaW5nX2J1Zlt0LnN5bV9idWYrZisrXSk8PDgscj10LnBlbmRpbmdfYnVmW3Quc3ltX2J1ZitmKytdLDA9PT1zP3AodCxyLGkpOihvPWxbcl0scCh0LG8rMjU2KzEsaSksXz1lW29dLDAhPT1fJiYoci09aFtvXSxnKHQscixfKSkscy0tLG89bShzKSxwKHQsbyxuKSxfPWFbb10sMCE9PV8mJihzLT1kW29dLGcodCxzLF8pKSl9d2hpbGUoZjx0LnN5bV9uZXh0KTtwKHQsMjU2LGkpfSxSPSh0LGUpPT57Y29uc3QgYT1lLmR5bl90cmVlLGk9ZS5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsbj1lLnN0YXRfZGVzYy5oYXNfc3RyZWUscz1lLnN0YXRfZGVzYy5lbGVtcztsZXQgcixvLGwsaD0tMTtmb3IodC5oZWFwX2xlbj0wLHQuaGVhcF9tYXg9NTczLHI9MDtyPHM7cisrKTAhPT1hWzIqcl0/KHQuaGVhcFsrK3QuaGVhcF9sZW5dPWg9cix0LmRlcHRoW3JdPTApOmFbMipyKzFdPTA7Zm9yKDt0LmhlYXBfbGVuPDI7KWw9dC5oZWFwWysrdC5oZWFwX2xlbl09aDwyPysraDowLGFbMipsXT0xLHQuZGVwdGhbbF09MCx0Lm9wdF9sZW4tLSxuJiYodC5zdGF0aWNfbGVuLT1pWzIqbCsxXSk7Zm9yKGUubWF4X2NvZGU9aCxyPXQuaGVhcF9sZW4+PjE7cj49MTtyLS0pQSh0LGEscik7bD1zO2Rve3I9dC5oZWFwWzFdLHQuaGVhcFsxXT10LmhlYXBbdC5oZWFwX2xlbi0tXSxBKHQsYSwxKSxvPXQuaGVhcFsxXSx0LmhlYXBbLS10LmhlYXBfbWF4XT1yLHQuaGVhcFstLXQuaGVhcF9tYXhdPW8sYVsyKmxdPWFbMipyXSthWzIqb10sdC5kZXB0aFtsXT0odC5kZXB0aFtyXT49dC5kZXB0aFtvXT90LmRlcHRoW3JdOnQuZGVwdGhbb10pKzEsYVsyKnIrMV09YVsyKm8rMV09bCx0LmhlYXBbMV09bCsrLEEodCxhLDEpfXdoaWxlKHQuaGVhcF9sZW4+PTIpO3QuaGVhcFstLXQuaGVhcF9tYXhdPXQuaGVhcFsxXSwoKHQsZSk9Pntjb25zdCBhPWUuZHluX3RyZWUsaT1lLm1heF9jb2RlLG49ZS5zdGF0X2Rlc2Muc3RhdGljX3RyZWUscz1lLnN0YXRfZGVzYy5oYXNfc3RyZWUscj1lLnN0YXRfZGVzYy5leHRyYV9iaXRzLG89ZS5zdGF0X2Rlc2MuZXh0cmFfYmFzZSxsPWUuc3RhdF9kZXNjLm1heF9sZW5ndGg7bGV0IGgsZCxfLGYsYyx1LHc9MDtmb3IoZj0wO2Y8PTE1O2YrKyl0LmJsX2NvdW50W2ZdPTA7Zm9yKGFbMip0LmhlYXBbdC5oZWFwX21heF0rMV09MCxoPXQuaGVhcF9tYXgrMTtoPDU3MztoKyspZD10LmhlYXBbaF0sZj1hWzIqYVsyKmQrMV0rMV0rMSxmPmwmJihmPWwsdysrKSxhWzIqZCsxXT1mLGQ+aXx8KHQuYmxfY291bnRbZl0rKyxjPTAsZD49byYmKGM9cltkLW9dKSx1PWFbMipkXSx0Lm9wdF9sZW4rPXUqKGYrYykscyYmKHQuc3RhdGljX2xlbis9dSooblsyKmQrMV0rYykpKTtpZigwIT09dyl7ZG97Zm9yKGY9bC0xOzA9PT10LmJsX2NvdW50W2ZdOylmLS07dC5ibF9jb3VudFtmXS0tLHQuYmxfY291bnRbZisxXSs9Mix0LmJsX2NvdW50W2xdLS0sdy09Mn13aGlsZSh3PjApO2ZvcihmPWw7MCE9PWY7Zi0tKWZvcihkPXQuYmxfY291bnRbZl07MCE9PWQ7KV89dC5oZWFwWy0taF0sXz5pfHwoYVsyKl8rMV0hPT1mJiYodC5vcHRfbGVuKz0oZi1hWzIqXysxXSkqYVsyKl9dLGFbMipfKzFdPWYpLGQtLSl9fSkodCxlKSx2KGEsaCx0LmJsX2NvdW50KX0sWj0odCxlLGEpPT57bGV0IGksbixzPS0xLHI9ZVsxXSxvPTAsbD03LGg9NDtmb3IoMD09PXImJihsPTEzOCxoPTMpLGVbMiooYSsxKSsxXT02NTUzNSxpPTA7aTw9YTtpKyspbj1yLHI9ZVsyKihpKzEpKzFdLCsrbzxsJiZuPT09cnx8KG88aD90LmJsX3RyZWVbMipuXSs9bzowIT09bj8obiE9PXMmJnQuYmxfdHJlZVsyKm5dKyssdC5ibF90cmVlWzMyXSsrKTpvPD0xMD90LmJsX3RyZWVbMzRdKys6dC5ibF90cmVlWzM2XSsrLG89MCxzPW4sMD09PXI/KGw9MTM4LGg9Myk6bj09PXI/KGw9NixoPTMpOihsPTcsaD00KSl9LFU9KHQsZSxhKT0+e2xldCBpLG4scz0tMSxyPWVbMV0sbz0wLGw9NyxoPTQ7Zm9yKDA9PT1yJiYobD0xMzgsaD0zKSxpPTA7aTw9YTtpKyspaWYobj1yLHI9ZVsyKihpKzEpKzFdLCEoKytvPGwmJm49PT1yKSl7aWYobzxoKWRve3AodCxuLHQuYmxfdHJlZSl9d2hpbGUoMCE9LS1vKTtlbHNlIDAhPT1uPyhuIT09cyYmKHAodCxuLHQuYmxfdHJlZSksby0tKSxwKHQsMTYsdC5ibF90cmVlKSxnKHQsby0zLDIpKTpvPD0xMD8ocCh0LDE3LHQuYmxfdHJlZSksZyh0LG8tMywzKSk6KHAodCwxOCx0LmJsX3RyZWUpLGcodCxvLTExLDcpKTtvPTAscz1uLDA9PT1yPyhsPTEzOCxoPTMpOm49PT1yPyhsPTYsaD0zKToobD03LGg9NCl9fTtsZXQgUz0hMTtjb25zdCBEPSh0LGUsYSxpKT0+e2codCwwKyhpPzE6MCksMykseCh0KSxiKHQsYSksYih0LH5hKSxhJiZ0LnBlbmRpbmdfYnVmLnNldCh0LndpbmRvdy5zdWJhcnJheShlLGUrYSksdC5wZW5kaW5nKSx0LnBlbmRpbmcrPWF9O3ZhciBUPSh0LGUsYSxpKT0+e2xldCBvLGwsaD0wO3QubGV2ZWw+MD8oMj09PXQuc3RybS5kYXRhX3R5cGUmJih0LnN0cm0uZGF0YV90eXBlPSh0PT57bGV0IGUsYT00MDkzNjI0NDQ3O2ZvcihlPTA7ZTw9MzE7ZSsrLGE+Pj49MSlpZigxJmEmJjAhPT10LmR5bl9sdHJlZVsyKmVdKXJldHVybiAwO2lmKDAhPT10LmR5bl9sdHJlZVsxOF18fDAhPT10LmR5bl9sdHJlZVsyMF18fDAhPT10LmR5bl9sdHJlZVsyNl0pcmV0dXJuIDE7Zm9yKGU9MzI7ZTwyNTY7ZSsrKWlmKDAhPT10LmR5bl9sdHJlZVsyKmVdKXJldHVybiAxO3JldHVybiAwfSkodCkpLFIodCx0LmxfZGVzYyksUih0LHQuZF9kZXNjKSxoPSh0PT57bGV0IGU7Zm9yKFoodCx0LmR5bl9sdHJlZSx0LmxfZGVzYy5tYXhfY29kZSksWih0LHQuZHluX2R0cmVlLHQuZF9kZXNjLm1heF9jb2RlKSxSKHQsdC5ibF9kZXNjKSxlPTE4O2U+PTMmJjA9PT10LmJsX3RyZWVbMipuW2VdKzFdO2UtLSk7cmV0dXJuIHQub3B0X2xlbis9MyooZSsxKSs1KzUrNCxlfSkodCksbz10Lm9wdF9sZW4rMys3Pj4+MyxsPXQuc3RhdGljX2xlbiszKzc+Pj4zLGw8PW8mJihvPWwpKTpvPWw9YSs1LGErNDw9byYmLTEhPT1lP0QodCxlLGEsaSk6ND09PXQuc3RyYXRlZ3l8fGw9PT1vPyhnKHQsMisoaT8xOjApLDMpLEUodCxzLHIpKTooZyh0LDQrKGk/MTowKSwzKSwoKHQsZSxhLGkpPT57bGV0IHM7Zm9yKGcodCxlLTI1Nyw1KSxnKHQsYS0xLDUpLGcodCxpLTQsNCkscz0wO3M8aTtzKyspZyh0LHQuYmxfdHJlZVsyKm5bc10rMV0sMyk7VSh0LHQuZHluX2x0cmVlLGUtMSksVSh0LHQuZHluX2R0cmVlLGEtMSl9KSh0LHQubF9kZXNjLm1heF9jb2RlKzEsdC5kX2Rlc2MubWF4X2NvZGUrMSxoKzEpLEUodCx0LmR5bl9sdHJlZSx0LmR5bl9kdHJlZSkpLHkodCksaSYmeCh0KX0sTz17X3RyX2luaXQ6dD0+e1N8fCgoKCk9PntsZXQgdCxuLHcsbSxiO2NvbnN0IGc9bmV3IEFycmF5KDE2KTtmb3Iodz0wLG09MDttPDI4O20rKylmb3IoaFttXT13LHQ9MDt0PDE8PGVbbV07dCsrKWxbdysrXT1tO2ZvcihsW3ctMV09bSxiPTAsbT0wO208MTY7bSsrKWZvcihkW21dPWIsdD0wO3Q8MTw8YVttXTt0Kyspb1tiKytdPW07Zm9yKGI+Pj03O208MzA7bSsrKWZvcihkW21dPWI8PDcsdD0wO3Q8MTw8YVttXS03O3QrKylvWzI1NitiKytdPW07Zm9yKG49MDtuPD0xNTtuKyspZ1tuXT0wO2Zvcih0PTA7dDw9MTQzOylzWzIqdCsxXT04LHQrKyxnWzhdKys7Zm9yKDt0PD0yNTU7KXNbMip0KzFdPTksdCsrLGdbOV0rKztmb3IoO3Q8PTI3OTspc1syKnQrMV09Nyx0KyssZ1s3XSsrO2Zvcig7dDw9Mjg3OylzWzIqdCsxXT04LHQrKyxnWzhdKys7Zm9yKHYocywyODcsZyksdD0wO3Q8MzA7dCsrKXJbMip0KzFdPTUsclsyKnRdPWsodCw1KTtmPW5ldyBfKHMsZSwyNTcsMjg2LDE1KSxjPW5ldyBfKHIsYSwwLDMwLDE1KSx1PW5ldyBfKG5ldyBBcnJheSgwKSxpLDAsMTksNyl9KSgpLFM9ITApLHQubF9kZXNjPW5ldyB3KHQuZHluX2x0cmVlLGYpLHQuZF9kZXNjPW5ldyB3KHQuZHluX2R0cmVlLGMpLHQuYmxfZGVzYz1uZXcgdyh0LmJsX3RyZWUsdSksdC5iaV9idWY9MCx0LmJpX3ZhbGlkPTAseSh0KX0sX3RyX3N0b3JlZF9ibG9jazpELF90cl9mbHVzaF9ibG9jazpULF90cl90YWxseToodCxlLGEpPT4odC5wZW5kaW5nX2J1Zlt0LnN5bV9idWYrdC5zeW1fbmV4dCsrXT1lLHQucGVuZGluZ19idWZbdC5zeW1fYnVmK3Quc3ltX25leHQrK109ZT4+OCx0LnBlbmRpbmdfYnVmW3Quc3ltX2J1Zit0LnN5bV9uZXh0KytdPWEsMD09PWU/dC5keW5fbHRyZWVbMiphXSsrOih0Lm1hdGNoZXMrKyxlLS0sdC5keW5fbHRyZWVbMioobFthXSsyNTYrMSldKyssdC5keW5fZHRyZWVbMiptKGUpXSsrKSx0LnN5bV9uZXh0PT09dC5zeW1fZW5kKSxfdHJfYWxpZ246dD0+e2codCwyLDMpLHAodCwyNTYscyksKHQ9PnsxNj09PXQuYmlfdmFsaWQ/KGIodCx0LmJpX2J1ZiksdC5iaV9idWY9MCx0LmJpX3ZhbGlkPTApOnQuYmlfdmFsaWQ+PTgmJih0LnBlbmRpbmdfYnVmW3QucGVuZGluZysrXT0yNTUmdC5iaV9idWYsdC5iaV9idWY+Pj04LHQuYmlfdmFsaWQtPTgpfSkodCl9fTt2YXIgRj0odCxlLGEsaSk9PntsZXQgbj02NTUzNSZ0fDAscz10Pj4+MTYmNjU1MzV8MCxyPTA7Zm9yKDswIT09YTspe3I9YT4yZTM/MmUzOmEsYS09cjtkb3tuPW4rZVtpKytdfDAscz1zK258MH13aGlsZSgtLXIpO24lPTY1NTIxLHMlPTY1NTIxfXJldHVybiBufHM8PDE2fDB9O2NvbnN0IEw9bmV3IFVpbnQzMkFycmF5KCgoKT0+e2xldCB0LGU9W107Zm9yKHZhciBhPTA7YTwyNTY7YSsrKXt0PWE7Zm9yKHZhciBpPTA7aTw4O2krKyl0PTEmdD8zOTg4MjkyMzg0XnQ+Pj4xOnQ+Pj4xO2VbYV09dH1yZXR1cm4gZX0pKCkpO3ZhciBOPSh0LGUsYSxpKT0+e2NvbnN0IG49TCxzPWkrYTt0Xj0tMTtmb3IobGV0IGE9aTthPHM7YSsrKXQ9dD4+PjheblsyNTUmKHReZVthXSldO3JldHVybi0xXnR9LEk9ezI6XCJuZWVkIGRpY3Rpb25hcnlcIiwxOlwic3RyZWFtIGVuZFwiLDA6XCJcIixcIi0xXCI6XCJmaWxlIGVycm9yXCIsXCItMlwiOlwic3RyZWFtIGVycm9yXCIsXCItM1wiOlwiZGF0YSBlcnJvclwiLFwiLTRcIjpcImluc3VmZmljaWVudCBtZW1vcnlcIixcIi01XCI6XCJidWZmZXIgZXJyb3JcIixcIi02XCI6XCJpbmNvbXBhdGlibGUgdmVyc2lvblwifSxCPXtaX05PX0ZMVVNIOjAsWl9QQVJUSUFMX0ZMVVNIOjEsWl9TWU5DX0ZMVVNIOjIsWl9GVUxMX0ZMVVNIOjMsWl9GSU5JU0g6NCxaX0JMT0NLOjUsWl9UUkVFUzo2LFpfT0s6MCxaX1NUUkVBTV9FTkQ6MSxaX05FRURfRElDVDoyLFpfRVJSTk86LTEsWl9TVFJFQU1fRVJST1I6LTIsWl9EQVRBX0VSUk9SOi0zLFpfTUVNX0VSUk9SOi00LFpfQlVGX0VSUk9SOi01LFpfTk9fQ09NUFJFU1NJT046MCxaX0JFU1RfU1BFRUQ6MSxaX0JFU1RfQ09NUFJFU1NJT046OSxaX0RFRkFVTFRfQ09NUFJFU1NJT046LTEsWl9GSUxURVJFRDoxLFpfSFVGRk1BTl9PTkxZOjIsWl9STEU6MyxaX0ZJWEVEOjQsWl9ERUZBVUxUX1NUUkFURUdZOjAsWl9CSU5BUlk6MCxaX1RFWFQ6MSxaX1VOS05PV046MixaX0RFRkxBVEVEOjh9O2NvbnN0e190cl9pbml0OkMsX3RyX3N0b3JlZF9ibG9jazpILF90cl9mbHVzaF9ibG9jazpNLF90cl90YWxseTpqLF90cl9hbGlnbjpLfT1PLHtaX05PX0ZMVVNIOlAsWl9QQVJUSUFMX0ZMVVNIOlksWl9GVUxMX0ZMVVNIOkcsWl9GSU5JU0g6WCxaX0JMT0NLOlcsWl9PSzpxLFpfU1RSRUFNX0VORDpKLFpfU1RSRUFNX0VSUk9SOlEsWl9EQVRBX0VSUk9SOlYsWl9CVUZfRVJST1I6JCxaX0RFRkFVTFRfQ09NUFJFU1NJT046dHQsWl9GSUxURVJFRDpldCxaX0hVRkZNQU5fT05MWTphdCxaX1JMRTppdCxaX0ZJWEVEOm50LFpfREVGQVVMVF9TVFJBVEVHWTpzdCxaX1VOS05PV046cnQsWl9ERUZMQVRFRDpvdH09QixsdD0odCxlKT0+KHQubXNnPUlbZV0sZSksaHQ9dD0+Mip0LSh0PjQ/OTowKSxkdD10PT57bGV0IGU9dC5sZW5ndGg7Zm9yKDstLWU+PTA7KXRbZV09MH0sX3Q9dD0+e2xldCBlLGEsaSxuPXQud19zaXplO2U9dC5oYXNoX3NpemUsaT1lO2Rve2E9dC5oZWFkWy0taV0sdC5oZWFkW2ldPWE+PW4/YS1uOjB9d2hpbGUoLS1lKTtlPW4saT1lO2Rve2E9dC5wcmV2Wy0taV0sdC5wcmV2W2ldPWE+PW4/YS1uOjB9d2hpbGUoLS1lKX07bGV0IGZ0PSh0LGUsYSk9PihlPDx0Lmhhc2hfc2hpZnReYSkmdC5oYXNoX21hc2s7Y29uc3QgY3Q9dD0+e2NvbnN0IGU9dC5zdGF0ZTtsZXQgYT1lLnBlbmRpbmc7YT50LmF2YWlsX291dCYmKGE9dC5hdmFpbF9vdXQpLDAhPT1hJiYodC5vdXRwdXQuc2V0KGUucGVuZGluZ19idWYuc3ViYXJyYXkoZS5wZW5kaW5nX291dCxlLnBlbmRpbmdfb3V0K2EpLHQubmV4dF9vdXQpLHQubmV4dF9vdXQrPWEsZS5wZW5kaW5nX291dCs9YSx0LnRvdGFsX291dCs9YSx0LmF2YWlsX291dC09YSxlLnBlbmRpbmctPWEsMD09PWUucGVuZGluZyYmKGUucGVuZGluZ19vdXQ9MCkpfSx1dD0odCxlKT0+e00odCx0LmJsb2NrX3N0YXJ0Pj0wP3QuYmxvY2tfc3RhcnQ6LTEsdC5zdHJzdGFydC10LmJsb2NrX3N0YXJ0LGUpLHQuYmxvY2tfc3RhcnQ9dC5zdHJzdGFydCxjdCh0LnN0cm0pfSx3dD0odCxlKT0+e3QucGVuZGluZ19idWZbdC5wZW5kaW5nKytdPWV9LG10PSh0LGUpPT57dC5wZW5kaW5nX2J1Zlt0LnBlbmRpbmcrK109ZT4+PjgmMjU1LHQucGVuZGluZ19idWZbdC5wZW5kaW5nKytdPTI1NSZlfSxidD0odCxlLGEsaSk9PntsZXQgbj10LmF2YWlsX2luO3JldHVybiBuPmkmJihuPWkpLDA9PT1uPzA6KHQuYXZhaWxfaW4tPW4sZS5zZXQodC5pbnB1dC5zdWJhcnJheSh0Lm5leHRfaW4sdC5uZXh0X2luK24pLGEpLDE9PT10LnN0YXRlLndyYXA/dC5hZGxlcj1GKHQuYWRsZXIsZSxuLGEpOjI9PT10LnN0YXRlLndyYXAmJih0LmFkbGVyPU4odC5hZGxlcixlLG4sYSkpLHQubmV4dF9pbis9bix0LnRvdGFsX2luKz1uLG4pfSxndD0odCxlKT0+e2xldCBhLGksbj10Lm1heF9jaGFpbl9sZW5ndGgscz10LnN0cnN0YXJ0LHI9dC5wcmV2X2xlbmd0aCxvPXQubmljZV9tYXRjaDtjb25zdCBsPXQuc3Ryc3RhcnQ+dC53X3NpemUtMjYyP3Quc3Ryc3RhcnQtKHQud19zaXplLTI2Mik6MCxoPXQud2luZG93LGQ9dC53X21hc2ssXz10LnByZXYsZj10LnN0cnN0YXJ0KzI1ODtsZXQgYz1oW3Mrci0xXSx1PWhbcytyXTt0LnByZXZfbGVuZ3RoPj10Lmdvb2RfbWF0Y2gmJihuPj49Miksbz50Lmxvb2thaGVhZCYmKG89dC5sb29rYWhlYWQpO2Rve2lmKGE9ZSxoW2Ercl09PT11JiZoW2Erci0xXT09PWMmJmhbYV09PT1oW3NdJiZoWysrYV09PT1oW3MrMV0pe3MrPTIsYSsrO2Rve313aGlsZShoWysrc109PT1oWysrYV0mJmhbKytzXT09PWhbKythXSYmaFsrK3NdPT09aFsrK2FdJiZoWysrc109PT1oWysrYV0mJmhbKytzXT09PWhbKythXSYmaFsrK3NdPT09aFsrK2FdJiZoWysrc109PT1oWysrYV0mJmhbKytzXT09PWhbKythXSYmczxmKTtpZihpPTI1OC0oZi1zKSxzPWYtMjU4LGk+cil7aWYodC5tYXRjaF9zdGFydD1lLHI9aSxpPj1vKWJyZWFrO2M9aFtzK3ItMV0sdT1oW3Mrcl19fX13aGlsZSgoZT1fW2UmZF0pPmwmJjAhPS0tbik7cmV0dXJuIHI8PXQubG9va2FoZWFkP3I6dC5sb29rYWhlYWR9LHB0PXQ9Pntjb25zdCBlPXQud19zaXplO2xldCBhLGksbjtkb3tpZihpPXQud2luZG93X3NpemUtdC5sb29rYWhlYWQtdC5zdHJzdGFydCx0LnN0cnN0YXJ0Pj1lKyhlLTI2MikmJih0LndpbmRvdy5zZXQodC53aW5kb3cuc3ViYXJyYXkoZSxlK2UtaSksMCksdC5tYXRjaF9zdGFydC09ZSx0LnN0cnN0YXJ0LT1lLHQuYmxvY2tfc3RhcnQtPWUsdC5pbnNlcnQ+dC5zdHJzdGFydCYmKHQuaW5zZXJ0PXQuc3Ryc3RhcnQpLF90KHQpLGkrPWUpLDA9PT10LnN0cm0uYXZhaWxfaW4pYnJlYWs7aWYoYT1idCh0LnN0cm0sdC53aW5kb3csdC5zdHJzdGFydCt0Lmxvb2thaGVhZCxpKSx0Lmxvb2thaGVhZCs9YSx0Lmxvb2thaGVhZCt0Lmluc2VydD49Mylmb3Iobj10LnN0cnN0YXJ0LXQuaW5zZXJ0LHQuaW5zX2g9dC53aW5kb3dbbl0sdC5pbnNfaD1mdCh0LHQuaW5zX2gsdC53aW5kb3dbbisxXSk7dC5pbnNlcnQmJih0Lmluc19oPWZ0KHQsdC5pbnNfaCx0LndpbmRvd1tuKzMtMV0pLHQucHJldltuJnQud19tYXNrXT10LmhlYWRbdC5pbnNfaF0sdC5oZWFkW3QuaW5zX2hdPW4sbisrLHQuaW5zZXJ0LS0sISh0Lmxvb2thaGVhZCt0Lmluc2VydDwzKSk7KTt9d2hpbGUodC5sb29rYWhlYWQ8MjYyJiYwIT09dC5zdHJtLmF2YWlsX2luKX0sa3Q9KHQsZSk9PntsZXQgYSxpLG4scz10LnBlbmRpbmdfYnVmX3NpemUtNT50Lndfc2l6ZT90Lndfc2l6ZTp0LnBlbmRpbmdfYnVmX3NpemUtNSxyPTAsbz10LnN0cm0uYXZhaWxfaW47ZG97aWYoYT02NTUzNSxuPXQuYmlfdmFsaWQrNDI+PjMsdC5zdHJtLmF2YWlsX291dDxuKWJyZWFrO2lmKG49dC5zdHJtLmF2YWlsX291dC1uLGk9dC5zdHJzdGFydC10LmJsb2NrX3N0YXJ0LGE+aSt0LnN0cm0uYXZhaWxfaW4mJihhPWkrdC5zdHJtLmF2YWlsX2luKSxhPm4mJihhPW4pLGE8cyYmKDA9PT1hJiZlIT09WHx8ZT09PVB8fGEhPT1pK3Quc3RybS5hdmFpbF9pbikpYnJlYWs7cj1lPT09WCYmYT09PWkrdC5zdHJtLmF2YWlsX2luPzE6MCxIKHQsMCwwLHIpLHQucGVuZGluZ19idWZbdC5wZW5kaW5nLTRdPWEsdC5wZW5kaW5nX2J1Zlt0LnBlbmRpbmctM109YT4+OCx0LnBlbmRpbmdfYnVmW3QucGVuZGluZy0yXT1+YSx0LnBlbmRpbmdfYnVmW3QucGVuZGluZy0xXT1+YT4+OCxjdCh0LnN0cm0pLGkmJihpPmEmJihpPWEpLHQuc3RybS5vdXRwdXQuc2V0KHQud2luZG93LnN1YmFycmF5KHQuYmxvY2tfc3RhcnQsdC5ibG9ja19zdGFydCtpKSx0LnN0cm0ubmV4dF9vdXQpLHQuc3RybS5uZXh0X291dCs9aSx0LnN0cm0uYXZhaWxfb3V0LT1pLHQuc3RybS50b3RhbF9vdXQrPWksdC5ibG9ja19zdGFydCs9aSxhLT1pKSxhJiYoYnQodC5zdHJtLHQuc3RybS5vdXRwdXQsdC5zdHJtLm5leHRfb3V0LGEpLHQuc3RybS5uZXh0X291dCs9YSx0LnN0cm0uYXZhaWxfb3V0LT1hLHQuc3RybS50b3RhbF9vdXQrPWEpfXdoaWxlKDA9PT1yKTtyZXR1cm4gby09dC5zdHJtLmF2YWlsX2luLG8mJihvPj10Lndfc2l6ZT8odC5tYXRjaGVzPTIsdC53aW5kb3cuc2V0KHQuc3RybS5pbnB1dC5zdWJhcnJheSh0LnN0cm0ubmV4dF9pbi10Lndfc2l6ZSx0LnN0cm0ubmV4dF9pbiksMCksdC5zdHJzdGFydD10Lndfc2l6ZSx0Lmluc2VydD10LnN0cnN0YXJ0KToodC53aW5kb3dfc2l6ZS10LnN0cnN0YXJ0PD1vJiYodC5zdHJzdGFydC09dC53X3NpemUsdC53aW5kb3cuc2V0KHQud2luZG93LnN1YmFycmF5KHQud19zaXplLHQud19zaXplK3Quc3Ryc3RhcnQpLDApLHQubWF0Y2hlczwyJiZ0Lm1hdGNoZXMrKyx0Lmluc2VydD50LnN0cnN0YXJ0JiYodC5pbnNlcnQ9dC5zdHJzdGFydCkpLHQud2luZG93LnNldCh0LnN0cm0uaW5wdXQuc3ViYXJyYXkodC5zdHJtLm5leHRfaW4tbyx0LnN0cm0ubmV4dF9pbiksdC5zdHJzdGFydCksdC5zdHJzdGFydCs9byx0Lmluc2VydCs9bz50Lndfc2l6ZS10Lmluc2VydD90Lndfc2l6ZS10Lmluc2VydDpvKSx0LmJsb2NrX3N0YXJ0PXQuc3Ryc3RhcnQpLHQuaGlnaF93YXRlcjx0LnN0cnN0YXJ0JiYodC5oaWdoX3dhdGVyPXQuc3Ryc3RhcnQpLHI/NDplIT09UCYmZSE9PVgmJjA9PT10LnN0cm0uYXZhaWxfaW4mJnQuc3Ryc3RhcnQ9PT10LmJsb2NrX3N0YXJ0PzI6KG49dC53aW5kb3dfc2l6ZS10LnN0cnN0YXJ0LHQuc3RybS5hdmFpbF9pbj5uJiZ0LmJsb2NrX3N0YXJ0Pj10Lndfc2l6ZSYmKHQuYmxvY2tfc3RhcnQtPXQud19zaXplLHQuc3Ryc3RhcnQtPXQud19zaXplLHQud2luZG93LnNldCh0LndpbmRvdy5zdWJhcnJheSh0Lndfc2l6ZSx0Lndfc2l6ZSt0LnN0cnN0YXJ0KSwwKSx0Lm1hdGNoZXM8MiYmdC5tYXRjaGVzKyssbis9dC53X3NpemUsdC5pbnNlcnQ+dC5zdHJzdGFydCYmKHQuaW5zZXJ0PXQuc3Ryc3RhcnQpKSxuPnQuc3RybS5hdmFpbF9pbiYmKG49dC5zdHJtLmF2YWlsX2luKSxuJiYoYnQodC5zdHJtLHQud2luZG93LHQuc3Ryc3RhcnQsbiksdC5zdHJzdGFydCs9bix0Lmluc2VydCs9bj50Lndfc2l6ZS10Lmluc2VydD90Lndfc2l6ZS10Lmluc2VydDpuKSx0LmhpZ2hfd2F0ZXI8dC5zdHJzdGFydCYmKHQuaGlnaF93YXRlcj10LnN0cnN0YXJ0KSxuPXQuYmlfdmFsaWQrNDI+PjMsbj10LnBlbmRpbmdfYnVmX3NpemUtbj42NTUzNT82NTUzNTp0LnBlbmRpbmdfYnVmX3NpemUtbixzPW4+dC53X3NpemU/dC53X3NpemU6bixpPXQuc3Ryc3RhcnQtdC5ibG9ja19zdGFydCwoaT49c3x8KGl8fGU9PT1YKSYmZSE9PVAmJjA9PT10LnN0cm0uYXZhaWxfaW4mJmk8PW4pJiYoYT1pPm4/bjppLHI9ZT09PVgmJjA9PT10LnN0cm0uYXZhaWxfaW4mJmE9PT1pPzE6MCxIKHQsdC5ibG9ja19zdGFydCxhLHIpLHQuYmxvY2tfc3RhcnQrPWEsY3QodC5zdHJtKSkscj8zOjEpfSx2dD0odCxlKT0+e2xldCBhLGk7Zm9yKDs7KXtpZih0Lmxvb2thaGVhZDwyNjIpe2lmKHB0KHQpLHQubG9va2FoZWFkPDI2MiYmZT09PVApcmV0dXJuIDE7aWYoMD09PXQubG9va2FoZWFkKWJyZWFrfWlmKGE9MCx0Lmxvb2thaGVhZD49MyYmKHQuaW5zX2g9ZnQodCx0Lmluc19oLHQud2luZG93W3Quc3Ryc3RhcnQrMy0xXSksYT10LnByZXZbdC5zdHJzdGFydCZ0LndfbWFza109dC5oZWFkW3QuaW5zX2hdLHQuaGVhZFt0Lmluc19oXT10LnN0cnN0YXJ0KSwwIT09YSYmdC5zdHJzdGFydC1hPD10Lndfc2l6ZS0yNjImJih0Lm1hdGNoX2xlbmd0aD1ndCh0LGEpKSx0Lm1hdGNoX2xlbmd0aD49MylpZihpPWoodCx0LnN0cnN0YXJ0LXQubWF0Y2hfc3RhcnQsdC5tYXRjaF9sZW5ndGgtMyksdC5sb29rYWhlYWQtPXQubWF0Y2hfbGVuZ3RoLHQubWF0Y2hfbGVuZ3RoPD10Lm1heF9sYXp5X21hdGNoJiZ0Lmxvb2thaGVhZD49Myl7dC5tYXRjaF9sZW5ndGgtLTtkb3t0LnN0cnN0YXJ0KyssdC5pbnNfaD1mdCh0LHQuaW5zX2gsdC53aW5kb3dbdC5zdHJzdGFydCszLTFdKSxhPXQucHJldlt0LnN0cnN0YXJ0JnQud19tYXNrXT10LmhlYWRbdC5pbnNfaF0sdC5oZWFkW3QuaW5zX2hdPXQuc3Ryc3RhcnR9d2hpbGUoMCE9LS10Lm1hdGNoX2xlbmd0aCk7dC5zdHJzdGFydCsrfWVsc2UgdC5zdHJzdGFydCs9dC5tYXRjaF9sZW5ndGgsdC5tYXRjaF9sZW5ndGg9MCx0Lmluc19oPXQud2luZG93W3Quc3Ryc3RhcnRdLHQuaW5zX2g9ZnQodCx0Lmluc19oLHQud2luZG93W3Quc3Ryc3RhcnQrMV0pO2Vsc2UgaT1qKHQsMCx0LndpbmRvd1t0LnN0cnN0YXJ0XSksdC5sb29rYWhlYWQtLSx0LnN0cnN0YXJ0Kys7aWYoaSYmKHV0KHQsITEpLDA9PT10LnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gMX1yZXR1cm4gdC5pbnNlcnQ9dC5zdHJzdGFydDwyP3Quc3Ryc3RhcnQ6MixlPT09WD8odXQodCwhMCksMD09PXQuc3RybS5hdmFpbF9vdXQ/Mzo0KTp0LnN5bV9uZXh0JiYodXQodCwhMSksMD09PXQuc3RybS5hdmFpbF9vdXQpPzE6Mn0seXQ9KHQsZSk9PntsZXQgYSxpLG47Zm9yKDs7KXtpZih0Lmxvb2thaGVhZDwyNjIpe2lmKHB0KHQpLHQubG9va2FoZWFkPDI2MiYmZT09PVApcmV0dXJuIDE7aWYoMD09PXQubG9va2FoZWFkKWJyZWFrfWlmKGE9MCx0Lmxvb2thaGVhZD49MyYmKHQuaW5zX2g9ZnQodCx0Lmluc19oLHQud2luZG93W3Quc3Ryc3RhcnQrMy0xXSksYT10LnByZXZbdC5zdHJzdGFydCZ0LndfbWFza109dC5oZWFkW3QuaW5zX2hdLHQuaGVhZFt0Lmluc19oXT10LnN0cnN0YXJ0KSx0LnByZXZfbGVuZ3RoPXQubWF0Y2hfbGVuZ3RoLHQucHJldl9tYXRjaD10Lm1hdGNoX3N0YXJ0LHQubWF0Y2hfbGVuZ3RoPTIsMCE9PWEmJnQucHJldl9sZW5ndGg8dC5tYXhfbGF6eV9tYXRjaCYmdC5zdHJzdGFydC1hPD10Lndfc2l6ZS0yNjImJih0Lm1hdGNoX2xlbmd0aD1ndCh0LGEpLHQubWF0Y2hfbGVuZ3RoPD01JiYodC5zdHJhdGVneT09PWV0fHwzPT09dC5tYXRjaF9sZW5ndGgmJnQuc3Ryc3RhcnQtdC5tYXRjaF9zdGFydD40MDk2KSYmKHQubWF0Y2hfbGVuZ3RoPTIpKSx0LnByZXZfbGVuZ3RoPj0zJiZ0Lm1hdGNoX2xlbmd0aDw9dC5wcmV2X2xlbmd0aCl7bj10LnN0cnN0YXJ0K3QubG9va2FoZWFkLTMsaT1qKHQsdC5zdHJzdGFydC0xLXQucHJldl9tYXRjaCx0LnByZXZfbGVuZ3RoLTMpLHQubG9va2FoZWFkLT10LnByZXZfbGVuZ3RoLTEsdC5wcmV2X2xlbmd0aC09Mjtkb3srK3Quc3Ryc3RhcnQ8PW4mJih0Lmluc19oPWZ0KHQsdC5pbnNfaCx0LndpbmRvd1t0LnN0cnN0YXJ0KzMtMV0pLGE9dC5wcmV2W3Quc3Ryc3RhcnQmdC53X21hc2tdPXQuaGVhZFt0Lmluc19oXSx0LmhlYWRbdC5pbnNfaF09dC5zdHJzdGFydCl9d2hpbGUoMCE9LS10LnByZXZfbGVuZ3RoKTtpZih0Lm1hdGNoX2F2YWlsYWJsZT0wLHQubWF0Y2hfbGVuZ3RoPTIsdC5zdHJzdGFydCsrLGkmJih1dCh0LCExKSwwPT09dC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9ZWxzZSBpZih0Lm1hdGNoX2F2YWlsYWJsZSl7aWYoaT1qKHQsMCx0LndpbmRvd1t0LnN0cnN0YXJ0LTFdKSxpJiZ1dCh0LCExKSx0LnN0cnN0YXJ0KyssdC5sb29rYWhlYWQtLSwwPT09dC5zdHJtLmF2YWlsX291dClyZXR1cm4gMX1lbHNlIHQubWF0Y2hfYXZhaWxhYmxlPTEsdC5zdHJzdGFydCsrLHQubG9va2FoZWFkLS19cmV0dXJuIHQubWF0Y2hfYXZhaWxhYmxlJiYoaT1qKHQsMCx0LndpbmRvd1t0LnN0cnN0YXJ0LTFdKSx0Lm1hdGNoX2F2YWlsYWJsZT0wKSx0Lmluc2VydD10LnN0cnN0YXJ0PDI/dC5zdHJzdGFydDoyLGU9PT1YPyh1dCh0LCEwKSwwPT09dC5zdHJtLmF2YWlsX291dD8zOjQpOnQuc3ltX25leHQmJih1dCh0LCExKSwwPT09dC5zdHJtLmF2YWlsX291dCk/MToyfTtmdW5jdGlvbiB4dCh0LGUsYSxpLG4pe3RoaXMuZ29vZF9sZW5ndGg9dCx0aGlzLm1heF9sYXp5PWUsdGhpcy5uaWNlX2xlbmd0aD1hLHRoaXMubWF4X2NoYWluPWksdGhpcy5mdW5jPW59Y29uc3QgenQ9W25ldyB4dCgwLDAsMCwwLGt0KSxuZXcgeHQoNCw0LDgsNCx2dCksbmV3IHh0KDQsNSwxNiw4LHZ0KSxuZXcgeHQoNCw2LDMyLDMyLHZ0KSxuZXcgeHQoNCw0LDE2LDE2LHl0KSxuZXcgeHQoOCwxNiwzMiwzMix5dCksbmV3IHh0KDgsMTYsMTI4LDEyOCx5dCksbmV3IHh0KDgsMzIsMTI4LDI1Nix5dCksbmV3IHh0KDMyLDEyOCwyNTgsMTAyNCx5dCksbmV3IHh0KDMyLDI1OCwyNTgsNDA5Nix5dCldO2Z1bmN0aW9uIEF0KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5zdGF0dXM9MCx0aGlzLnBlbmRpbmdfYnVmPW51bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291dD0wLHRoaXMucGVuZGluZz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRob2Q9b3QsdGhpcy5sYXN0X2ZsdXNoPS0xLHRoaXMud19zaXplPTAsdGhpcy53X2JpdHM9MCx0aGlzLndfbWFzaz0wLHRoaXMud2luZG93PW51bGwsdGhpcy53aW5kb3dfc2l6ZT0wLHRoaXMucHJldj1udWxsLHRoaXMuaGVhZD1udWxsLHRoaXMuaW5zX2g9MCx0aGlzLmhhc2hfc2l6ZT0wLHRoaXMuaGFzaF9iaXRzPTAsdGhpcy5oYXNoX21hc2s9MCx0aGlzLmhhc2hfc2hpZnQ9MCx0aGlzLmJsb2NrX3N0YXJ0PTAsdGhpcy5tYXRjaF9sZW5ndGg9MCx0aGlzLnByZXZfbWF0Y2g9MCx0aGlzLm1hdGNoX2F2YWlsYWJsZT0wLHRoaXMuc3Ryc3RhcnQ9MCx0aGlzLm1hdGNoX3N0YXJ0PTAsdGhpcy5sb29rYWhlYWQ9MCx0aGlzLnByZXZfbGVuZ3RoPTAsdGhpcy5tYXhfY2hhaW5fbGVuZ3RoPTAsdGhpcy5tYXhfbGF6eV9tYXRjaD0wLHRoaXMubGV2ZWw9MCx0aGlzLnN0cmF0ZWd5PTAsdGhpcy5nb29kX21hdGNoPTAsdGhpcy5uaWNlX21hdGNoPTAsdGhpcy5keW5fbHRyZWU9bmV3IFVpbnQxNkFycmF5KDExNDYpLHRoaXMuZHluX2R0cmVlPW5ldyBVaW50MTZBcnJheSgxMjIpLHRoaXMuYmxfdHJlZT1uZXcgVWludDE2QXJyYXkoNzgpLGR0KHRoaXMuZHluX2x0cmVlKSxkdCh0aGlzLmR5bl9kdHJlZSksZHQodGhpcy5ibF90cmVlKSx0aGlzLmxfZGVzYz1udWxsLHRoaXMuZF9kZXNjPW51bGwsdGhpcy5ibF9kZXNjPW51bGwsdGhpcy5ibF9jb3VudD1uZXcgVWludDE2QXJyYXkoMTYpLHRoaXMuaGVhcD1uZXcgVWludDE2QXJyYXkoNTczKSxkdCh0aGlzLmhlYXApLHRoaXMuaGVhcF9sZW49MCx0aGlzLmhlYXBfbWF4PTAsdGhpcy5kZXB0aD1uZXcgVWludDE2QXJyYXkoNTczKSxkdCh0aGlzLmRlcHRoKSx0aGlzLnN5bV9idWY9MCx0aGlzLmxpdF9idWZzaXplPTAsdGhpcy5zeW1fbmV4dD0wLHRoaXMuc3ltX2VuZD0wLHRoaXMub3B0X2xlbj0wLHRoaXMuc3RhdGljX2xlbj0wLHRoaXMubWF0Y2hlcz0wLHRoaXMuaW5zZXJ0PTAsdGhpcy5iaV9idWY9MCx0aGlzLmJpX3ZhbGlkPTB9Y29uc3QgRXQ9dD0+e2lmKCF0KXJldHVybiAxO2NvbnN0IGU9dC5zdGF0ZTtyZXR1cm4hZXx8ZS5zdHJtIT09dHx8NDIhPT1lLnN0YXR1cyYmNTchPT1lLnN0YXR1cyYmNjkhPT1lLnN0YXR1cyYmNzMhPT1lLnN0YXR1cyYmOTEhPT1lLnN0YXR1cyYmMTAzIT09ZS5zdGF0dXMmJjExMyE9PWUuc3RhdHVzJiY2NjYhPT1lLnN0YXR1cz8xOjB9LFJ0PXQ9PntpZihFdCh0KSlyZXR1cm4gbHQodCxRKTt0LnRvdGFsX2luPXQudG90YWxfb3V0PTAsdC5kYXRhX3R5cGU9cnQ7Y29uc3QgZT10LnN0YXRlO3JldHVybiBlLnBlbmRpbmc9MCxlLnBlbmRpbmdfb3V0PTAsZS53cmFwPDAmJihlLndyYXA9LWUud3JhcCksZS5zdGF0dXM9Mj09PWUud3JhcD81NzplLndyYXA/NDI6MTEzLHQuYWRsZXI9Mj09PWUud3JhcD8wOjEsZS5sYXN0X2ZsdXNoPS0yLEMoZSkscX0sWnQ9dD0+e2NvbnN0IGU9UnQodCk7dmFyIGE7cmV0dXJuIGU9PT1xJiYoKGE9dC5zdGF0ZSkud2luZG93X3NpemU9MiphLndfc2l6ZSxkdChhLmhlYWQpLGEubWF4X2xhenlfbWF0Y2g9enRbYS5sZXZlbF0ubWF4X2xhenksYS5nb29kX21hdGNoPXp0W2EubGV2ZWxdLmdvb2RfbGVuZ3RoLGEubmljZV9tYXRjaD16dFthLmxldmVsXS5uaWNlX2xlbmd0aCxhLm1heF9jaGFpbl9sZW5ndGg9enRbYS5sZXZlbF0ubWF4X2NoYWluLGEuc3Ryc3RhcnQ9MCxhLmJsb2NrX3N0YXJ0PTAsYS5sb29rYWhlYWQ9MCxhLmluc2VydD0wLGEubWF0Y2hfbGVuZ3RoPWEucHJldl9sZW5ndGg9MixhLm1hdGNoX2F2YWlsYWJsZT0wLGEuaW5zX2g9MCksZX0sVXQ9KHQsZSxhLGksbixzKT0+e2lmKCF0KXJldHVybiBRO2xldCByPTE7aWYoZT09PXR0JiYoZT02KSxpPDA/KHI9MCxpPS1pKTppPjE1JiYocj0yLGktPTE2KSxuPDF8fG4+OXx8YSE9PW90fHxpPDh8fGk+MTV8fGU8MHx8ZT45fHxzPDB8fHM+bnR8fDg9PT1pJiYxIT09cilyZXR1cm4gbHQodCxRKTs4PT09aSYmKGk9OSk7Y29uc3Qgbz1uZXcgQXQ7cmV0dXJuIHQuc3RhdGU9byxvLnN0cm09dCxvLnN0YXR1cz00MixvLndyYXA9cixvLmd6aGVhZD1udWxsLG8ud19iaXRzPWksby53X3NpemU9MTw8by53X2JpdHMsby53X21hc2s9by53X3NpemUtMSxvLmhhc2hfYml0cz1uKzcsby5oYXNoX3NpemU9MTw8by5oYXNoX2JpdHMsby5oYXNoX21hc2s9by5oYXNoX3NpemUtMSxvLmhhc2hfc2hpZnQ9fn4oKG8uaGFzaF9iaXRzKzMtMSkvMyksby53aW5kb3c9bmV3IFVpbnQ4QXJyYXkoMipvLndfc2l6ZSksby5oZWFkPW5ldyBVaW50MTZBcnJheShvLmhhc2hfc2l6ZSksby5wcmV2PW5ldyBVaW50MTZBcnJheShvLndfc2l6ZSksby5saXRfYnVmc2l6ZT0xPDxuKzYsby5wZW5kaW5nX2J1Zl9zaXplPTQqby5saXRfYnVmc2l6ZSxvLnBlbmRpbmdfYnVmPW5ldyBVaW50OEFycmF5KG8ucGVuZGluZ19idWZfc2l6ZSksby5zeW1fYnVmPW8ubGl0X2J1ZnNpemUsby5zeW1fZW5kPTMqKG8ubGl0X2J1ZnNpemUtMSksby5sZXZlbD1lLG8uc3RyYXRlZ3k9cyxvLm1ldGhvZD1hLFp0KHQpfTt2YXIgU3Q9e2RlZmxhdGVJbml0Oih0LGUpPT5VdCh0LGUsb3QsMTUsOCxzdCksZGVmbGF0ZUluaXQyOlV0LGRlZmxhdGVSZXNldDpadCxkZWZsYXRlUmVzZXRLZWVwOlJ0LGRlZmxhdGVTZXRIZWFkZXI6KHQsZSk9PkV0KHQpfHwyIT09dC5zdGF0ZS53cmFwP1E6KHQuc3RhdGUuZ3poZWFkPWUscSksZGVmbGF0ZToodCxlKT0+e2lmKEV0KHQpfHxlPld8fGU8MClyZXR1cm4gdD9sdCh0LFEpOlE7Y29uc3QgYT10LnN0YXRlO2lmKCF0Lm91dHB1dHx8MCE9PXQuYXZhaWxfaW4mJiF0LmlucHV0fHw2NjY9PT1hLnN0YXR1cyYmZSE9PVgpcmV0dXJuIGx0KHQsMD09PXQuYXZhaWxfb3V0PyQ6USk7Y29uc3QgaT1hLmxhc3RfZmx1c2g7aWYoYS5sYXN0X2ZsdXNoPWUsMCE9PWEucGVuZGluZyl7aWYoY3QodCksMD09PXQuYXZhaWxfb3V0KXJldHVybiBhLmxhc3RfZmx1c2g9LTEscX1lbHNlIGlmKDA9PT10LmF2YWlsX2luJiZodChlKTw9aHQoaSkmJmUhPT1YKXJldHVybiBsdCh0LCQpO2lmKDY2Nj09PWEuc3RhdHVzJiYwIT09dC5hdmFpbF9pbilyZXR1cm4gbHQodCwkKTtpZig0Mj09PWEuc3RhdHVzJiYwPT09YS53cmFwJiYoYS5zdGF0dXM9MTEzKSw0Mj09PWEuc3RhdHVzKXtsZXQgZT1vdCsoYS53X2JpdHMtODw8NCk8PDgsaT0tMTtpZihpPWEuc3RyYXRlZ3k+PWF0fHxhLmxldmVsPDI/MDphLmxldmVsPDY/MTo2PT09YS5sZXZlbD8yOjMsZXw9aTw8NiwwIT09YS5zdHJzdGFydCYmKGV8PTMyKSxlKz0zMS1lJTMxLG10KGEsZSksMCE9PWEuc3Ryc3RhcnQmJihtdChhLHQuYWRsZXI+Pj4xNiksbXQoYSw2NTUzNSZ0LmFkbGVyKSksdC5hZGxlcj0xLGEuc3RhdHVzPTExMyxjdCh0KSwwIT09YS5wZW5kaW5nKXJldHVybiBhLmxhc3RfZmx1c2g9LTEscX1pZig1Nz09PWEuc3RhdHVzKWlmKHQuYWRsZXI9MCx3dChhLDMxKSx3dChhLDEzOSksd3QoYSw4KSxhLmd6aGVhZCl3dChhLChhLmd6aGVhZC50ZXh0PzE6MCkrKGEuZ3poZWFkLmhjcmM/MjowKSsoYS5nemhlYWQuZXh0cmE/NDowKSsoYS5nemhlYWQubmFtZT84OjApKyhhLmd6aGVhZC5jb21tZW50PzE2OjApKSx3dChhLDI1NSZhLmd6aGVhZC50aW1lKSx3dChhLGEuZ3poZWFkLnRpbWU+PjgmMjU1KSx3dChhLGEuZ3poZWFkLnRpbWU+PjE2JjI1NSksd3QoYSxhLmd6aGVhZC50aW1lPj4yNCYyNTUpLHd0KGEsOT09PWEubGV2ZWw/MjphLnN0cmF0ZWd5Pj1hdHx8YS5sZXZlbDwyPzQ6MCksd3QoYSwyNTUmYS5nemhlYWQub3MpLGEuZ3poZWFkLmV4dHJhJiZhLmd6aGVhZC5leHRyYS5sZW5ndGgmJih3dChhLDI1NSZhLmd6aGVhZC5leHRyYS5sZW5ndGgpLHd0KGEsYS5nemhlYWQuZXh0cmEubGVuZ3RoPj44JjI1NSkpLGEuZ3poZWFkLmhjcmMmJih0LmFkbGVyPU4odC5hZGxlcixhLnBlbmRpbmdfYnVmLGEucGVuZGluZywwKSksYS5nemluZGV4PTAsYS5zdGF0dXM9Njk7ZWxzZSBpZih3dChhLDApLHd0KGEsMCksd3QoYSwwKSx3dChhLDApLHd0KGEsMCksd3QoYSw5PT09YS5sZXZlbD8yOmEuc3RyYXRlZ3k+PWF0fHxhLmxldmVsPDI/NDowKSx3dChhLDMpLGEuc3RhdHVzPTExMyxjdCh0KSwwIT09YS5wZW5kaW5nKXJldHVybiBhLmxhc3RfZmx1c2g9LTEscTtpZig2OT09PWEuc3RhdHVzKXtpZihhLmd6aGVhZC5leHRyYSl7bGV0IGU9YS5wZW5kaW5nLGk9KDY1NTM1JmEuZ3poZWFkLmV4dHJhLmxlbmd0aCktYS5nemluZGV4O2Zvcig7YS5wZW5kaW5nK2k+YS5wZW5kaW5nX2J1Zl9zaXplOyl7bGV0IG49YS5wZW5kaW5nX2J1Zl9zaXplLWEucGVuZGluZztpZihhLnBlbmRpbmdfYnVmLnNldChhLmd6aGVhZC5leHRyYS5zdWJhcnJheShhLmd6aW5kZXgsYS5nemluZGV4K24pLGEucGVuZGluZyksYS5wZW5kaW5nPWEucGVuZGluZ19idWZfc2l6ZSxhLmd6aGVhZC5oY3JjJiZhLnBlbmRpbmc+ZSYmKHQuYWRsZXI9Tih0LmFkbGVyLGEucGVuZGluZ19idWYsYS5wZW5kaW5nLWUsZSkpLGEuZ3ppbmRleCs9bixjdCh0KSwwIT09YS5wZW5kaW5nKXJldHVybiBhLmxhc3RfZmx1c2g9LTEscTtlPTAsaS09bn1sZXQgbj1uZXcgVWludDhBcnJheShhLmd6aGVhZC5leHRyYSk7YS5wZW5kaW5nX2J1Zi5zZXQobi5zdWJhcnJheShhLmd6aW5kZXgsYS5nemluZGV4K2kpLGEucGVuZGluZyksYS5wZW5kaW5nKz1pLGEuZ3poZWFkLmhjcmMmJmEucGVuZGluZz5lJiYodC5hZGxlcj1OKHQuYWRsZXIsYS5wZW5kaW5nX2J1ZixhLnBlbmRpbmctZSxlKSksYS5nemluZGV4PTB9YS5zdGF0dXM9NzN9aWYoNzM9PT1hLnN0YXR1cyl7aWYoYS5nemhlYWQubmFtZSl7bGV0IGUsaT1hLnBlbmRpbmc7ZG97aWYoYS5wZW5kaW5nPT09YS5wZW5kaW5nX2J1Zl9zaXplKXtpZihhLmd6aGVhZC5oY3JjJiZhLnBlbmRpbmc+aSYmKHQuYWRsZXI9Tih0LmFkbGVyLGEucGVuZGluZ19idWYsYS5wZW5kaW5nLWksaSkpLGN0KHQpLDAhPT1hLnBlbmRpbmcpcmV0dXJuIGEubGFzdF9mbHVzaD0tMSxxO2k9MH1lPWEuZ3ppbmRleDxhLmd6aGVhZC5uYW1lLmxlbmd0aD8yNTUmYS5nemhlYWQubmFtZS5jaGFyQ29kZUF0KGEuZ3ppbmRleCsrKTowLHd0KGEsZSl9d2hpbGUoMCE9PWUpO2EuZ3poZWFkLmhjcmMmJmEucGVuZGluZz5pJiYodC5hZGxlcj1OKHQuYWRsZXIsYS5wZW5kaW5nX2J1ZixhLnBlbmRpbmctaSxpKSksYS5nemluZGV4PTB9YS5zdGF0dXM9OTF9aWYoOTE9PT1hLnN0YXR1cyl7aWYoYS5nemhlYWQuY29tbWVudCl7bGV0IGUsaT1hLnBlbmRpbmc7ZG97aWYoYS5wZW5kaW5nPT09YS5wZW5kaW5nX2J1Zl9zaXplKXtpZihhLmd6aGVhZC5oY3JjJiZhLnBlbmRpbmc+aSYmKHQuYWRsZXI9Tih0LmFkbGVyLGEucGVuZGluZ19idWYsYS5wZW5kaW5nLWksaSkpLGN0KHQpLDAhPT1hLnBlbmRpbmcpcmV0dXJuIGEubGFzdF9mbHVzaD0tMSxxO2k9MH1lPWEuZ3ppbmRleDxhLmd6aGVhZC5jb21tZW50Lmxlbmd0aD8yNTUmYS5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KGEuZ3ppbmRleCsrKTowLHd0KGEsZSl9d2hpbGUoMCE9PWUpO2EuZ3poZWFkLmhjcmMmJmEucGVuZGluZz5pJiYodC5hZGxlcj1OKHQuYWRsZXIsYS5wZW5kaW5nX2J1ZixhLnBlbmRpbmctaSxpKSl9YS5zdGF0dXM9MTAzfWlmKDEwMz09PWEuc3RhdHVzKXtpZihhLmd6aGVhZC5oY3JjKXtpZihhLnBlbmRpbmcrMj5hLnBlbmRpbmdfYnVmX3NpemUmJihjdCh0KSwwIT09YS5wZW5kaW5nKSlyZXR1cm4gYS5sYXN0X2ZsdXNoPS0xLHE7d3QoYSwyNTUmdC5hZGxlciksd3QoYSx0LmFkbGVyPj44JjI1NSksdC5hZGxlcj0wfWlmKGEuc3RhdHVzPTExMyxjdCh0KSwwIT09YS5wZW5kaW5nKXJldHVybiBhLmxhc3RfZmx1c2g9LTEscX1pZigwIT09dC5hdmFpbF9pbnx8MCE9PWEubG9va2FoZWFkfHxlIT09UCYmNjY2IT09YS5zdGF0dXMpe2xldCBpPTA9PT1hLmxldmVsP2t0KGEsZSk6YS5zdHJhdGVneT09PWF0PygodCxlKT0+e2xldCBhO2Zvcig7Oyl7aWYoMD09PXQubG9va2FoZWFkJiYocHQodCksMD09PXQubG9va2FoZWFkKSl7aWYoZT09PVApcmV0dXJuIDE7YnJlYWt9aWYodC5tYXRjaF9sZW5ndGg9MCxhPWoodCwwLHQud2luZG93W3Quc3Ryc3RhcnRdKSx0Lmxvb2thaGVhZC0tLHQuc3Ryc3RhcnQrKyxhJiYodXQodCwhMSksMD09PXQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiB0Lmluc2VydD0wLGU9PT1YPyh1dCh0LCEwKSwwPT09dC5zdHJtLmF2YWlsX291dD8zOjQpOnQuc3ltX25leHQmJih1dCh0LCExKSwwPT09dC5zdHJtLmF2YWlsX291dCk/MToyfSkoYSxlKTphLnN0cmF0ZWd5PT09aXQ/KCh0LGUpPT57bGV0IGEsaSxuLHM7Y29uc3Qgcj10LndpbmRvdztmb3IoOzspe2lmKHQubG9va2FoZWFkPD0yNTgpe2lmKHB0KHQpLHQubG9va2FoZWFkPD0yNTgmJmU9PT1QKXJldHVybiAxO2lmKDA9PT10Lmxvb2thaGVhZClicmVha31pZih0Lm1hdGNoX2xlbmd0aD0wLHQubG9va2FoZWFkPj0zJiZ0LnN0cnN0YXJ0PjAmJihuPXQuc3Ryc3RhcnQtMSxpPXJbbl0saT09PXJbKytuXSYmaT09PXJbKytuXSYmaT09PXJbKytuXSkpe3M9dC5zdHJzdGFydCsyNTg7ZG97fXdoaWxlKGk9PT1yWysrbl0mJmk9PT1yWysrbl0mJmk9PT1yWysrbl0mJmk9PT1yWysrbl0mJmk9PT1yWysrbl0mJmk9PT1yWysrbl0mJmk9PT1yWysrbl0mJmk9PT1yWysrbl0mJm48cyk7dC5tYXRjaF9sZW5ndGg9MjU4LShzLW4pLHQubWF0Y2hfbGVuZ3RoPnQubG9va2FoZWFkJiYodC5tYXRjaF9sZW5ndGg9dC5sb29rYWhlYWQpfWlmKHQubWF0Y2hfbGVuZ3RoPj0zPyhhPWoodCwxLHQubWF0Y2hfbGVuZ3RoLTMpLHQubG9va2FoZWFkLT10Lm1hdGNoX2xlbmd0aCx0LnN0cnN0YXJ0Kz10Lm1hdGNoX2xlbmd0aCx0Lm1hdGNoX2xlbmd0aD0wKTooYT1qKHQsMCx0LndpbmRvd1t0LnN0cnN0YXJ0XSksdC5sb29rYWhlYWQtLSx0LnN0cnN0YXJ0KyspLGEmJih1dCh0LCExKSwwPT09dC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9cmV0dXJuIHQuaW5zZXJ0PTAsZT09PVg/KHV0KHQsITApLDA9PT10LnN0cm0uYXZhaWxfb3V0PzM6NCk6dC5zeW1fbmV4dCYmKHV0KHQsITEpLDA9PT10LnN0cm0uYXZhaWxfb3V0KT8xOjJ9KShhLGUpOnp0W2EubGV2ZWxdLmZ1bmMoYSxlKTtpZigzIT09aSYmNCE9PWl8fChhLnN0YXR1cz02NjYpLDE9PT1pfHwzPT09aSlyZXR1cm4gMD09PXQuYXZhaWxfb3V0JiYoYS5sYXN0X2ZsdXNoPS0xKSxxO2lmKDI9PT1pJiYoZT09PVk/SyhhKTplIT09VyYmKEgoYSwwLDAsITEpLGU9PT1HJiYoZHQoYS5oZWFkKSwwPT09YS5sb29rYWhlYWQmJihhLnN0cnN0YXJ0PTAsYS5ibG9ja19zdGFydD0wLGEuaW5zZXJ0PTApKSksY3QodCksMD09PXQuYXZhaWxfb3V0KSlyZXR1cm4gYS5sYXN0X2ZsdXNoPS0xLHF9cmV0dXJuIGUhPT1YP3E6YS53cmFwPD0wP0o6KDI9PT1hLndyYXA/KHd0KGEsMjU1JnQuYWRsZXIpLHd0KGEsdC5hZGxlcj4+OCYyNTUpLHd0KGEsdC5hZGxlcj4+MTYmMjU1KSx3dChhLHQuYWRsZXI+PjI0JjI1NSksd3QoYSwyNTUmdC50b3RhbF9pbiksd3QoYSx0LnRvdGFsX2luPj44JjI1NSksd3QoYSx0LnRvdGFsX2luPj4xNiYyNTUpLHd0KGEsdC50b3RhbF9pbj4+MjQmMjU1KSk6KG10KGEsdC5hZGxlcj4+PjE2KSxtdChhLDY1NTM1JnQuYWRsZXIpKSxjdCh0KSxhLndyYXA+MCYmKGEud3JhcD0tYS53cmFwKSwwIT09YS5wZW5kaW5nP3E6Sil9LGRlZmxhdGVFbmQ6dD0+e2lmKEV0KHQpKXJldHVybiBRO2NvbnN0IGU9dC5zdGF0ZS5zdGF0dXM7cmV0dXJuIHQuc3RhdGU9bnVsbCwxMTM9PT1lP2x0KHQsVik6cX0sZGVmbGF0ZVNldERpY3Rpb25hcnk6KHQsZSk9PntsZXQgYT1lLmxlbmd0aDtpZihFdCh0KSlyZXR1cm4gUTtjb25zdCBpPXQuc3RhdGUsbj1pLndyYXA7aWYoMj09PW58fDE9PT1uJiY0MiE9PWkuc3RhdHVzfHxpLmxvb2thaGVhZClyZXR1cm4gUTtpZigxPT09biYmKHQuYWRsZXI9Rih0LmFkbGVyLGUsYSwwKSksaS53cmFwPTAsYT49aS53X3NpemUpezA9PT1uJiYoZHQoaS5oZWFkKSxpLnN0cnN0YXJ0PTAsaS5ibG9ja19zdGFydD0wLGkuaW5zZXJ0PTApO2xldCB0PW5ldyBVaW50OEFycmF5KGkud19zaXplKTt0LnNldChlLnN1YmFycmF5KGEtaS53X3NpemUsYSksMCksZT10LGE9aS53X3NpemV9Y29uc3Qgcz10LmF2YWlsX2luLHI9dC5uZXh0X2luLG89dC5pbnB1dDtmb3IodC5hdmFpbF9pbj1hLHQubmV4dF9pbj0wLHQuaW5wdXQ9ZSxwdChpKTtpLmxvb2thaGVhZD49Mzspe2xldCB0PWkuc3Ryc3RhcnQsZT1pLmxvb2thaGVhZC0yO2Rve2kuaW5zX2g9ZnQoaSxpLmluc19oLGkud2luZG93W3QrMy0xXSksaS5wcmV2W3QmaS53X21hc2tdPWkuaGVhZFtpLmluc19oXSxpLmhlYWRbaS5pbnNfaF09dCx0Kyt9d2hpbGUoLS1lKTtpLnN0cnN0YXJ0PXQsaS5sb29rYWhlYWQ9MixwdChpKX1yZXR1cm4gaS5zdHJzdGFydCs9aS5sb29rYWhlYWQsaS5ibG9ja19zdGFydD1pLnN0cnN0YXJ0LGkuaW5zZXJ0PWkubG9va2FoZWFkLGkubG9va2FoZWFkPTAsaS5tYXRjaF9sZW5ndGg9aS5wcmV2X2xlbmd0aD0yLGkubWF0Y2hfYXZhaWxhYmxlPTAsdC5uZXh0X2luPXIsdC5pbnB1dD1vLHQuYXZhaWxfaW49cyxpLndyYXA9bixxfSxkZWZsYXRlSW5mbzpcInBha28gZGVmbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdClcIn07Y29uc3QgRHQ9KHQsZSk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpO3ZhciBUdD1mdW5jdGlvbih0KXtjb25zdCBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtmb3IoO2UubGVuZ3RoOyl7Y29uc3QgYT1lLnNoaWZ0KCk7aWYoYSl7aWYoXCJvYmplY3RcIiE9dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhK1wibXVzdCBiZSBub24tb2JqZWN0XCIpO2Zvcihjb25zdCBlIGluIGEpRHQoYSxlKSYmKHRbZV09YVtlXSl9fXJldHVybiB0fSxPdD10PT57bGV0IGU9MDtmb3IobGV0IGE9MCxpPXQubGVuZ3RoO2E8aTthKyspZSs9dFthXS5sZW5ndGg7Y29uc3QgYT1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGU9MCxpPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXtsZXQgbj10W2VdO2Euc2V0KG4saSksaSs9bi5sZW5ndGh9cmV0dXJuIGF9O2xldCBGdD0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaCh0KXtGdD0hMX1jb25zdCBMdD1uZXcgVWludDhBcnJheSgyNTYpO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKylMdFt0XT10Pj0yNTI/Njp0Pj0yNDg/NTp0Pj0yNDA/NDp0Pj0yMjQ/Mzp0Pj0xOTI/MjoxO0x0WzI1NF09THRbMjU0XT0xO3ZhciBOdD10PT57aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgVGV4dEVuY29kZXImJlRleHRFbmNvZGVyLnByb3RvdHlwZS5lbmNvZGUpcmV0dXJuKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKHQpO2xldCBlLGEsaSxuLHMscj10Lmxlbmd0aCxvPTA7Zm9yKG49MDtuPHI7bisrKWE9dC5jaGFyQ29kZUF0KG4pLDU1Mjk2PT0oNjQ1MTImYSkmJm4rMTxyJiYoaT10LmNoYXJDb2RlQXQobisxKSw1NjMyMD09KDY0NTEyJmkpJiYoYT02NTUzNisoYS01NTI5Njw8MTApKyhpLTU2MzIwKSxuKyspKSxvKz1hPDEyOD8xOmE8MjA0OD8yOmE8NjU1MzY/Mzo0O2ZvcihlPW5ldyBVaW50OEFycmF5KG8pLHM9MCxuPTA7czxvO24rKylhPXQuY2hhckNvZGVBdChuKSw1NTI5Nj09KDY0NTEyJmEpJiZuKzE8ciYmKGk9dC5jaGFyQ29kZUF0KG4rMSksNTYzMjA9PSg2NDUxMiZpKSYmKGE9NjU1MzYrKGEtNTUyOTY8PDEwKSsoaS01NjMyMCksbisrKSksYTwxMjg/ZVtzKytdPWE6YTwyMDQ4PyhlW3MrK109MTkyfGE+Pj42LGVbcysrXT0xMjh8NjMmYSk6YTw2NTUzNj8oZVtzKytdPTIyNHxhPj4+MTIsZVtzKytdPTEyOHxhPj4+NiY2MyxlW3MrK109MTI4fDYzJmEpOihlW3MrK109MjQwfGE+Pj4xOCxlW3MrK109MTI4fGE+Pj4xMiY2MyxlW3MrK109MTI4fGE+Pj42JjYzLGVbcysrXT0xMjh8NjMmYSk7cmV0dXJuIGV9LEl0PSh0LGUpPT57Y29uc3QgYT1lfHx0Lmxlbmd0aDtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBUZXh0RGVjb2RlciYmVGV4dERlY29kZXIucHJvdG90eXBlLmRlY29kZSlyZXR1cm4obmV3IFRleHREZWNvZGVyKS5kZWNvZGUodC5zdWJhcnJheSgwLGUpKTtsZXQgaSxuO2NvbnN0IHM9bmV3IEFycmF5KDIqYSk7Zm9yKG49MCxpPTA7aTxhOyl7bGV0IGU9dFtpKytdO2lmKGU8MTI4KXtzW24rK109ZTtjb250aW51ZX1sZXQgcj1MdFtlXTtpZihyPjQpc1tuKytdPTY1NTMzLGkrPXItMTtlbHNle2ZvcihlJj0yPT09cj8zMTozPT09cj8xNTo3O3I+MSYmaTxhOyllPWU8PDZ8NjMmdFtpKytdLHItLTtyPjE/c1tuKytdPTY1NTMzOmU8NjU1MzY/c1tuKytdPWU6KGUtPTY1NTM2LHNbbisrXT01NTI5NnxlPj4xMCYxMDIzLHNbbisrXT01NjMyMHwxMDIzJmUpfX1yZXR1cm4oKHQsZSk9PntpZihlPDY1NTM0JiZ0LnN1YmFycmF5JiZGdClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHQubGVuZ3RoPT09ZT90OnQuc3ViYXJyYXkoMCxlKSk7bGV0IGE9XCJcIjtmb3IobGV0IGk9MDtpPGU7aSsrKWErPVN0cmluZy5mcm9tQ2hhckNvZGUodFtpXSk7cmV0dXJuIGF9KShzLG4pfSxCdD0odCxlKT0+eyhlPWV8fHQubGVuZ3RoKT50Lmxlbmd0aCYmKGU9dC5sZW5ndGgpO2xldCBhPWUtMTtmb3IoO2E+PTAmJjEyOD09KDE5MiZ0W2FdKTspYS0tO3JldHVybiBhPDB8fDA9PT1hP2U6YStMdFt0W2FdXT5lP2E6ZX07dmFyIEN0PWZ1bmN0aW9uKCl7dGhpcy5pbnB1dD1udWxsLHRoaXMubmV4dF9pbj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5vdXRwdXQ9bnVsbCx0aGlzLm5leHRfb3V0PTAsdGhpcy5hdmFpbF9vdXQ9MCx0aGlzLnRvdGFsX291dD0wLHRoaXMubXNnPVwiXCIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxlcj0wfTtjb25zdCBIdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHtaX05PX0ZMVVNIOk10LFpfU1lOQ19GTFVTSDpqdCxaX0ZVTExfRkxVU0g6S3QsWl9GSU5JU0g6UHQsWl9PSzpZdCxaX1NUUkVBTV9FTkQ6R3QsWl9ERUZBVUxUX0NPTVBSRVNTSU9OOlh0LFpfREVGQVVMVF9TVFJBVEVHWTpXdCxaX0RFRkxBVEVEOnF0fT1CO2Z1bmN0aW9uIEp0KHQpe3RoaXMub3B0aW9ucz1UdCh7bGV2ZWw6WHQsbWV0aG9kOnF0LGNodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjE1LG1lbUxldmVsOjgsc3RyYXRlZ3k6V3R9LHR8fHt9KTtsZXQgZT10aGlzLm9wdGlvbnM7ZS5yYXcmJmUud2luZG93Qml0cz4wP2Uud2luZG93Qml0cz0tZS53aW5kb3dCaXRzOmUuZ3ppcCYmZS53aW5kb3dCaXRzPjAmJmUud2luZG93Qml0czwxNiYmKGUud2luZG93Qml0cys9MTYpLHRoaXMuZXJyPTAsdGhpcy5tc2c9XCJcIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgQ3QsdGhpcy5zdHJtLmF2YWlsX291dD0wO2xldCBhPVN0LmRlZmxhdGVJbml0Mih0aGlzLnN0cm0sZS5sZXZlbCxlLm1ldGhvZCxlLndpbmRvd0JpdHMsZS5tZW1MZXZlbCxlLnN0cmF0ZWd5KTtpZihhIT09WXQpdGhyb3cgbmV3IEVycm9yKElbYV0pO2lmKGUuaGVhZGVyJiZTdC5kZWZsYXRlU2V0SGVhZGVyKHRoaXMuc3RybSxlLmhlYWRlciksZS5kaWN0aW9uYXJ5KXtsZXQgdDtpZih0PVwic3RyaW5nXCI9PXR5cGVvZiBlLmRpY3Rpb25hcnk/TnQoZS5kaWN0aW9uYXJ5KTpcIltvYmplY3QgQXJyYXlCdWZmZXJdXCI9PT1IdC5jYWxsKGUuZGljdGlvbmFyeSk/bmV3IFVpbnQ4QXJyYXkoZS5kaWN0aW9uYXJ5KTplLmRpY3Rpb25hcnksYT1TdC5kZWZsYXRlU2V0RGljdGlvbmFyeSh0aGlzLnN0cm0sdCksYSE9PVl0KXRocm93IG5ldyBFcnJvcihJW2FdKTt0aGlzLl9kaWN0X3NldD0hMH19ZnVuY3Rpb24gUXQodCxlKXtjb25zdCBhPW5ldyBKdChlKTtpZihhLnB1c2godCwhMCksYS5lcnIpdGhyb3cgYS5tc2d8fElbYS5lcnJdO3JldHVybiBhLnJlc3VsdH1KdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe2NvbnN0IGE9dGhpcy5zdHJtLGk9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtsZXQgbixzO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7Zm9yKHM9ZT09PX5+ZT9lOiEwPT09ZT9QdDpNdCxcInN0cmluZ1wiPT10eXBlb2YgdD9hLmlucHV0PU50KHQpOlwiW29iamVjdCBBcnJheUJ1ZmZlcl1cIj09PUh0LmNhbGwodCk/YS5pbnB1dD1uZXcgVWludDhBcnJheSh0KTphLmlucHV0PXQsYS5uZXh0X2luPTAsYS5hdmFpbF9pbj1hLmlucHV0Lmxlbmd0aDs7KWlmKDA9PT1hLmF2YWlsX291dCYmKGEub3V0cHV0PW5ldyBVaW50OEFycmF5KGkpLGEubmV4dF9vdXQ9MCxhLmF2YWlsX291dD1pKSwocz09PWp0fHxzPT09S3QpJiZhLmF2YWlsX291dDw9Nil0aGlzLm9uRGF0YShhLm91dHB1dC5zdWJhcnJheSgwLGEubmV4dF9vdXQpKSxhLmF2YWlsX291dD0wO2Vsc2V7aWYobj1TdC5kZWZsYXRlKGEscyksbj09PUd0KXJldHVybiBhLm5leHRfb3V0PjAmJnRoaXMub25EYXRhKGEub3V0cHV0LnN1YmFycmF5KDAsYS5uZXh0X291dCkpLG49U3QuZGVmbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQobiksdGhpcy5lbmRlZD0hMCxuPT09WXQ7aWYoMCE9PWEuYXZhaWxfb3V0KXtpZihzPjAmJmEubmV4dF9vdXQ+MCl0aGlzLm9uRGF0YShhLm91dHB1dC5zdWJhcnJheSgwLGEubmV4dF9vdXQpKSxhLmF2YWlsX291dD0wO2Vsc2UgaWYoMD09PWEuYXZhaWxfaW4pYnJlYWt9ZWxzZSB0aGlzLm9uRGF0YShhLm91dHB1dCl9cmV0dXJuITB9LEp0LnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24odCl7dGhpcy5jaHVua3MucHVzaCh0KX0sSnQucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKHQpe3Q9PT1ZdCYmKHRoaXMucmVzdWx0PU90KHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9dCx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfTt2YXIgVnQ9e0RlZmxhdGU6SnQsZGVmbGF0ZTpRdCxkZWZsYXRlUmF3OmZ1bmN0aW9uKHQsZSl7cmV0dXJuKGU9ZXx8e30pLnJhdz0hMCxRdCh0LGUpfSxnemlwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKGU9ZXx8e30pLmd6aXA9ITAsUXQodCxlKX0sY29uc3RhbnRzOkJ9O3ZhciAkdD1mdW5jdGlvbih0LGUpe2xldCBhLGksbixzLHIsbyxsLGgsZCxfLGYsYyx1LHcsbSxiLGcscCxrLHYseSx4LHosQTtjb25zdCBFPXQuc3RhdGU7YT10Lm5leHRfaW4sej10LmlucHV0LGk9YSsodC5hdmFpbF9pbi01KSxuPXQubmV4dF9vdXQsQT10Lm91dHB1dCxzPW4tKGUtdC5hdmFpbF9vdXQpLHI9bisodC5hdmFpbF9vdXQtMjU3KSxvPUUuZG1heCxsPUUud3NpemUsaD1FLndoYXZlLGQ9RS53bmV4dCxfPUUud2luZG93LGY9RS5ob2xkLGM9RS5iaXRzLHU9RS5sZW5jb2RlLHc9RS5kaXN0Y29kZSxtPSgxPDxFLmxlbmJpdHMpLTEsYj0oMTw8RS5kaXN0Yml0cyktMTt0OmRve2M8MTUmJihmKz16W2ErK108PGMsYys9OCxmKz16W2ErK108PGMsYys9OCksZz11W2YmbV07ZTpmb3IoOzspe2lmKHA9Zz4+PjI0LGY+Pj49cCxjLT1wLHA9Zz4+PjE2JjI1NSwwPT09cClBW24rK109NjU1MzUmZztlbHNle2lmKCEoMTYmcCkpe2lmKDA9PSg2NCZwKSl7Zz11Wyg2NTUzNSZnKSsoZiYoMTw8cCktMSldO2NvbnRpbnVlIGV9aWYoMzImcCl7RS5tb2RlPTE2MTkxO2JyZWFrIHR9dC5tc2c9XCJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGVcIixFLm1vZGU9MTYyMDk7YnJlYWsgdH1rPTY1NTM1JmcscCY9MTUscCYmKGM8cCYmKGYrPXpbYSsrXTw8YyxjKz04KSxrKz1mJigxPDxwKS0xLGY+Pj49cCxjLT1wKSxjPDE1JiYoZis9elthKytdPDxjLGMrPTgsZis9elthKytdPDxjLGMrPTgpLGc9d1tmJmJdO2E6Zm9yKDs7KXtpZihwPWc+Pj4yNCxmPj4+PXAsYy09cCxwPWc+Pj4xNiYyNTUsISgxNiZwKSl7aWYoMD09KDY0JnApKXtnPXdbKDY1NTM1JmcpKyhmJigxPDxwKS0xKV07Y29udGludWUgYX10Lm1zZz1cImludmFsaWQgZGlzdGFuY2UgY29kZVwiLEUubW9kZT0xNjIwOTticmVhayB0fWlmKHY9NjU1MzUmZyxwJj0xNSxjPHAmJihmKz16W2ErK108PGMsYys9OCxjPHAmJihmKz16W2ErK108PGMsYys9OCkpLHYrPWYmKDE8PHApLTEsdj5vKXt0Lm1zZz1cImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrXCIsRS5tb2RlPTE2MjA5O2JyZWFrIHR9aWYoZj4+Pj1wLGMtPXAscD1uLXMsdj5wKXtpZihwPXYtcCxwPmgmJkUuc2FuZSl7dC5tc2c9XCJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFja1wiLEUubW9kZT0xNjIwOTticmVhayB0fWlmKHk9MCx4PV8sMD09PWQpe2lmKHkrPWwtcCxwPGspe2stPXA7ZG97QVtuKytdPV9beSsrXX13aGlsZSgtLXApO3k9bi12LHg9QX19ZWxzZSBpZihkPHApe2lmKHkrPWwrZC1wLHAtPWQscDxrKXtrLT1wO2Rve0FbbisrXT1fW3krK119d2hpbGUoLS1wKTtpZih5PTAsZDxrKXtwPWQsay09cDtkb3tBW24rK109X1t5KytdfXdoaWxlKC0tcCk7eT1uLXYseD1BfX19ZWxzZSBpZih5Kz1kLXAscDxrKXtrLT1wO2Rve0FbbisrXT1fW3krK119d2hpbGUoLS1wKTt5PW4tdix4PUF9Zm9yKDtrPjI7KUFbbisrXT14W3krK10sQVtuKytdPXhbeSsrXSxBW24rK109eFt5KytdLGstPTM7ayYmKEFbbisrXT14W3krK10saz4xJiYoQVtuKytdPXhbeSsrXSkpfWVsc2V7eT1uLXY7ZG97QVtuKytdPUFbeSsrXSxBW24rK109QVt5KytdLEFbbisrXT1BW3krK10say09M313aGlsZShrPjIpO2smJihBW24rK109QVt5KytdLGs+MSYmKEFbbisrXT1BW3krK10pKX1icmVha319YnJlYWt9fXdoaWxlKGE8aSYmbjxyKTtrPWM+PjMsYS09ayxjLT1rPDwzLGYmPSgxPDxjKS0xLHQubmV4dF9pbj1hLHQubmV4dF9vdXQ9bix0LmF2YWlsX2luPWE8aT9pLWErNTo1LShhLWkpLHQuYXZhaWxfb3V0PW48cj9yLW4rMjU3OjI1Ny0obi1yKSxFLmhvbGQ9ZixFLmJpdHM9Y307Y29uc3QgdGU9bmV3IFVpbnQxNkFycmF5KFszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0pLGVlPW5ldyBVaW50OEFycmF5KFsxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNywxNywxNywxNywxOCwxOCwxOCwxOCwxOSwxOSwxOSwxOSwyMCwyMCwyMCwyMCwyMSwyMSwyMSwyMSwxNiw3Miw3OF0pLGFlPW5ldyBVaW50MTZBcnJheShbMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3LDAsMF0pLGllPW5ldyBVaW50OEFycmF5KFsxNiwxNiwxNiwxNiwxNywxNywxOCwxOCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywyOCwyOCwyOSwyOSw2NCw2NF0pO3ZhciBuZT0odCxlLGEsaSxuLHMscixvKT0+e2NvbnN0IGw9by5iaXRzO2xldCBoLGQsXyxmLGMsdSx3PTAsbT0wLGI9MCxnPTAscD0wLGs9MCx2PTAseT0wLHg9MCx6PTAsQT1udWxsO2NvbnN0IEU9bmV3IFVpbnQxNkFycmF5KDE2KSxSPW5ldyBVaW50MTZBcnJheSgxNik7bGV0IFosVSxTLEQ9bnVsbDtmb3Iodz0wO3c8PTE1O3crKylFW3ddPTA7Zm9yKG09MDttPGk7bSsrKUVbZVthK21dXSsrO2ZvcihwPWwsZz0xNTtnPj0xJiYwPT09RVtnXTtnLS0pO2lmKHA+ZyYmKHA9ZyksMD09PWcpcmV0dXJuIG5bcysrXT0yMDk3MTUyMCxuW3MrK109MjA5NzE1MjAsby5iaXRzPTEsMDtmb3IoYj0xO2I8ZyYmMD09PUVbYl07YisrKTtmb3IocDxiJiYocD1iKSx5PTEsdz0xO3c8PTE1O3crKylpZih5PDw9MSx5LT1FW3ddLHk8MClyZXR1cm4tMTtpZih5PjAmJigwPT09dHx8MSE9PWcpKXJldHVybi0xO2ZvcihSWzFdPTAsdz0xO3c8MTU7dysrKVJbdysxXT1SW3ddK0Vbd107Zm9yKG09MDttPGk7bSsrKTAhPT1lW2ErbV0mJihyW1JbZVthK21dXSsrXT1tKTtpZigwPT09dD8oQT1EPXIsdT0yMCk6MT09PXQ/KEE9dGUsRD1lZSx1PTI1Nyk6KEE9YWUsRD1pZSx1PTApLHo9MCxtPTAsdz1iLGM9cyxrPXAsdj0wLF89LTEseD0xPDxwLGY9eC0xLDE9PT10JiZ4Pjg1Mnx8Mj09PXQmJng+NTkyKXJldHVybiAxO2Zvcig7Oyl7Wj13LXYsclttXSsxPHU/KFU9MCxTPXJbbV0pOnJbbV0+PXU/KFU9RFtyW21dLXVdLFM9QVtyW21dLXVdKTooVT05NixTPTApLGg9MTw8dy12LGQ9MTw8ayxiPWQ7ZG97ZC09aCxuW2MrKHo+PnYpK2RdPVo8PDI0fFU8PDE2fFN8MH13aGlsZSgwIT09ZCk7Zm9yKGg9MTw8dy0xO3omaDspaD4+PTE7aWYoMCE9PWg/KHomPWgtMSx6Kz1oKTp6PTAsbSsrLDA9PS0tRVt3XSl7aWYodz09PWcpYnJlYWs7dz1lW2ErclttXV19aWYodz5wJiYoeiZmKSE9PV8pe2ZvcigwPT09diYmKHY9cCksYys9YixrPXctdix5PTE8PGs7ayt2PGcmJih5LT1FW2srdl0sISh5PD0wKSk7KWsrKyx5PDw9MTtpZih4Kz0xPDxrLDE9PT10JiZ4Pjg1Mnx8Mj09PXQmJng+NTkyKXJldHVybiAxO189eiZmLG5bX109cDw8MjR8azw8MTZ8Yy1zfDB9fXJldHVybiAwIT09eiYmKG5bYyt6XT13LXY8PDI0fDY0PDwxNnwwKSxvLmJpdHM9cCwwfTtjb25zdHtaX0ZJTklTSDpzZSxaX0JMT0NLOnJlLFpfVFJFRVM6b2UsWl9PSzpsZSxaX1NUUkVBTV9FTkQ6aGUsWl9ORUVEX0RJQ1Q6ZGUsWl9TVFJFQU1fRVJST1I6X2UsWl9EQVRBX0VSUk9SOmZlLFpfTUVNX0VSUk9SOmNlLFpfQlVGX0VSUk9SOnVlLFpfREVGTEFURUQ6d2V9PUIsbWU9MTYyMDksYmU9dD0+KHQ+Pj4yNCYyNTUpKyh0Pj4+OCY2NTI4MCkrKCg2NTI4MCZ0KTw8OCkrKCgyNTUmdCk8PDI0KTtmdW5jdGlvbiBnZSgpe3RoaXMuc3RybT1udWxsLHRoaXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5kaXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgVWludDE2QXJyYXkoMzIwKSx0aGlzLndvcms9bmV3IFVpbnQxNkFycmF5KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWNvbnN0IHBlPXQ9PntpZighdClyZXR1cm4gMTtjb25zdCBlPXQuc3RhdGU7cmV0dXJuIWV8fGUuc3RybSE9PXR8fGUubW9kZTwxNjE4MHx8ZS5tb2RlPjE2MjExPzE6MH0sa2U9dD0+e2lmKHBlKHQpKXJldHVybiBfZTtjb25zdCBlPXQuc3RhdGU7cmV0dXJuIHQudG90YWxfaW49dC50b3RhbF9vdXQ9ZS50b3RhbD0wLHQubXNnPVwiXCIsZS53cmFwJiYodC5hZGxlcj0xJmUud3JhcCksZS5tb2RlPTE2MTgwLGUubGFzdD0wLGUuaGF2ZWRpY3Q9MCxlLmZsYWdzPS0xLGUuZG1heD0zMjc2OCxlLmhlYWQ9bnVsbCxlLmhvbGQ9MCxlLmJpdHM9MCxlLmxlbmNvZGU9ZS5sZW5keW49bmV3IEludDMyQXJyYXkoODUyKSxlLmRpc3Rjb2RlPWUuZGlzdGR5bj1uZXcgSW50MzJBcnJheSg1OTIpLGUuc2FuZT0xLGUuYmFjaz0tMSxsZX0sdmU9dD0+e2lmKHBlKHQpKXJldHVybiBfZTtjb25zdCBlPXQuc3RhdGU7cmV0dXJuIGUud3NpemU9MCxlLndoYXZlPTAsZS53bmV4dD0wLGtlKHQpfSx5ZT0odCxlKT0+e2xldCBhO2lmKHBlKHQpKXJldHVybiBfZTtjb25zdCBpPXQuc3RhdGU7cmV0dXJuIGU8MD8oYT0wLGU9LWUpOihhPTUrKGU+PjQpLGU8NDgmJihlJj0xNSkpLGUmJihlPDh8fGU+MTUpP19lOihudWxsIT09aS53aW5kb3cmJmkud2JpdHMhPT1lJiYoaS53aW5kb3c9bnVsbCksaS53cmFwPWEsaS53Yml0cz1lLHZlKHQpKX0seGU9KHQsZSk9PntpZighdClyZXR1cm4gX2U7Y29uc3QgYT1uZXcgZ2U7dC5zdGF0ZT1hLGEuc3RybT10LGEud2luZG93PW51bGwsYS5tb2RlPTE2MTgwO2NvbnN0IGk9eWUodCxlKTtyZXR1cm4gaSE9PWxlJiYodC5zdGF0ZT1udWxsKSxpfTtsZXQgemUsQWUsRWU9ITA7Y29uc3QgUmU9dD0+e2lmKEVlKXt6ZT1uZXcgSW50MzJBcnJheSg1MTIpLEFlPW5ldyBJbnQzMkFycmF5KDMyKTtsZXQgZT0wO2Zvcig7ZTwxNDQ7KXQubGVuc1tlKytdPTg7Zm9yKDtlPDI1NjspdC5sZW5zW2UrK109OTtmb3IoO2U8MjgwOyl0LmxlbnNbZSsrXT03O2Zvcig7ZTwyODg7KXQubGVuc1tlKytdPTg7Zm9yKG5lKDEsdC5sZW5zLDAsMjg4LHplLDAsdC53b3JrLHtiaXRzOjl9KSxlPTA7ZTwzMjspdC5sZW5zW2UrK109NTtuZSgyLHQubGVucywwLDMyLEFlLDAsdC53b3JrLHtiaXRzOjV9KSxFZT0hMX10LmxlbmNvZGU9emUsdC5sZW5iaXRzPTksdC5kaXN0Y29kZT1BZSx0LmRpc3RiaXRzPTV9LFplPSh0LGUsYSxpKT0+e2xldCBuO2NvbnN0IHM9dC5zdGF0ZTtyZXR1cm4gbnVsbD09PXMud2luZG93JiYocy53c2l6ZT0xPDxzLndiaXRzLHMud25leHQ9MCxzLndoYXZlPTAscy53aW5kb3c9bmV3IFVpbnQ4QXJyYXkocy53c2l6ZSkpLGk+PXMud3NpemU/KHMud2luZG93LnNldChlLnN1YmFycmF5KGEtcy53c2l6ZSxhKSwwKSxzLnduZXh0PTAscy53aGF2ZT1zLndzaXplKToobj1zLndzaXplLXMud25leHQsbj5pJiYobj1pKSxzLndpbmRvdy5zZXQoZS5zdWJhcnJheShhLWksYS1pK24pLHMud25leHQpLChpLT1uKT8ocy53aW5kb3cuc2V0KGUuc3ViYXJyYXkoYS1pLGEpLDApLHMud25leHQ9aSxzLndoYXZlPXMud3NpemUpOihzLnduZXh0Kz1uLHMud25leHQ9PT1zLndzaXplJiYocy53bmV4dD0wKSxzLndoYXZlPHMud3NpemUmJihzLndoYXZlKz1uKSkpLDB9O3ZhciBVZT17aW5mbGF0ZVJlc2V0OnZlLGluZmxhdGVSZXNldDI6eWUsaW5mbGF0ZVJlc2V0S2VlcDprZSxpbmZsYXRlSW5pdDp0PT54ZSh0LDE1KSxpbmZsYXRlSW5pdDI6eGUsaW5mbGF0ZToodCxlKT0+e2xldCBhLGksbixzLHIsbyxsLGgsZCxfLGYsYyx1LHcsbSxiLGcscCxrLHYseSx4LHo9MDtjb25zdCBBPW5ldyBVaW50OEFycmF5KDQpO2xldCBFLFI7Y29uc3QgWj1uZXcgVWludDhBcnJheShbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0pO2lmKHBlKHQpfHwhdC5vdXRwdXR8fCF0LmlucHV0JiYwIT09dC5hdmFpbF9pbilyZXR1cm4gX2U7YT10LnN0YXRlLDE2MTkxPT09YS5tb2RlJiYoYS5tb2RlPTE2MTkyKSxyPXQubmV4dF9vdXQsbj10Lm91dHB1dCxsPXQuYXZhaWxfb3V0LHM9dC5uZXh0X2luLGk9dC5pbnB1dCxvPXQuYXZhaWxfaW4saD1hLmhvbGQsZD1hLmJpdHMsXz1vLGY9bCx4PWxlO3Q6Zm9yKDs7KXN3aXRjaChhLm1vZGUpe2Nhc2UgMTYxODA6aWYoMD09PWEud3JhcCl7YS5tb2RlPTE2MTkyO2JyZWFrfWZvcig7ZDwxNjspe2lmKDA9PT1vKWJyZWFrIHQ7by0tLGgrPWlbcysrXTw8ZCxkKz04fWlmKDImYS53cmFwJiYzNTYxNT09PWgpezA9PT1hLndiaXRzJiYoYS53Yml0cz0xNSksYS5jaGVjaz0wLEFbMF09MjU1JmgsQVsxXT1oPj4+OCYyNTUsYS5jaGVjaz1OKGEuY2hlY2ssQSwyLDApLGg9MCxkPTAsYS5tb2RlPTE2MTgxO2JyZWFrfWlmKGEuaGVhZCYmKGEuaGVhZC5kb25lPSExKSwhKDEmYS53cmFwKXx8KCgoMjU1JmgpPDw4KSsoaD4+OCkpJTMxKXt0Lm1zZz1cImluY29ycmVjdCBoZWFkZXIgY2hlY2tcIixhLm1vZGU9bWU7YnJlYWt9aWYoKDE1JmgpIT09d2Upe3QubXNnPVwidW5rbm93biBjb21wcmVzc2lvbiBtZXRob2RcIixhLm1vZGU9bWU7YnJlYWt9aWYoaD4+Pj00LGQtPTQseT04KygxNSZoKSwwPT09YS53Yml0cyYmKGEud2JpdHM9eSkseT4xNXx8eT5hLndiaXRzKXt0Lm1zZz1cImludmFsaWQgd2luZG93IHNpemVcIixhLm1vZGU9bWU7YnJlYWt9YS5kbWF4PTE8PGEud2JpdHMsYS5mbGFncz0wLHQuYWRsZXI9YS5jaGVjaz0xLGEubW9kZT01MTImaD8xNjE4OToxNjE5MSxoPTAsZD0wO2JyZWFrO2Nhc2UgMTYxODE6Zm9yKDtkPDE2Oyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aWYoYS5mbGFncz1oLCgyNTUmYS5mbGFncykhPT13ZSl7dC5tc2c9XCJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZFwiLGEubW9kZT1tZTticmVha31pZig1NzM0NCZhLmZsYWdzKXt0Lm1zZz1cInVua25vd24gaGVhZGVyIGZsYWdzIHNldFwiLGEubW9kZT1tZTticmVha31hLmhlYWQmJihhLmhlYWQudGV4dD1oPj44JjEpLDUxMiZhLmZsYWdzJiY0JmEud3JhcCYmKEFbMF09MjU1JmgsQVsxXT1oPj4+OCYyNTUsYS5jaGVjaz1OKGEuY2hlY2ssQSwyLDApKSxoPTAsZD0wLGEubW9kZT0xNjE4MjtjYXNlIDE2MTgyOmZvcig7ZDwzMjspe2lmKDA9PT1vKWJyZWFrIHQ7by0tLGgrPWlbcysrXTw8ZCxkKz04fWEuaGVhZCYmKGEuaGVhZC50aW1lPWgpLDUxMiZhLmZsYWdzJiY0JmEud3JhcCYmKEFbMF09MjU1JmgsQVsxXT1oPj4+OCYyNTUsQVsyXT1oPj4+MTYmMjU1LEFbM109aD4+PjI0JjI1NSxhLmNoZWNrPU4oYS5jaGVjayxBLDQsMCkpLGg9MCxkPTAsYS5tb2RlPTE2MTgzO2Nhc2UgMTYxODM6Zm9yKDtkPDE2Oyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9YS5oZWFkJiYoYS5oZWFkLnhmbGFncz0yNTUmaCxhLmhlYWQub3M9aD4+OCksNTEyJmEuZmxhZ3MmJjQmYS53cmFwJiYoQVswXT0yNTUmaCxBWzFdPWg+Pj44JjI1NSxhLmNoZWNrPU4oYS5jaGVjayxBLDIsMCkpLGg9MCxkPTAsYS5tb2RlPTE2MTg0O2Nhc2UgMTYxODQ6aWYoMTAyNCZhLmZsYWdzKXtmb3IoO2Q8MTY7KXtpZigwPT09bylicmVhayB0O28tLSxoKz1pW3MrK108PGQsZCs9OH1hLmxlbmd0aD1oLGEuaGVhZCYmKGEuaGVhZC5leHRyYV9sZW49aCksNTEyJmEuZmxhZ3MmJjQmYS53cmFwJiYoQVswXT0yNTUmaCxBWzFdPWg+Pj44JjI1NSxhLmNoZWNrPU4oYS5jaGVjayxBLDIsMCkpLGg9MCxkPTB9ZWxzZSBhLmhlYWQmJihhLmhlYWQuZXh0cmE9bnVsbCk7YS5tb2RlPTE2MTg1O2Nhc2UgMTYxODU6aWYoMTAyNCZhLmZsYWdzJiYoYz1hLmxlbmd0aCxjPm8mJihjPW8pLGMmJihhLmhlYWQmJih5PWEuaGVhZC5leHRyYV9sZW4tYS5sZW5ndGgsYS5oZWFkLmV4dHJhfHwoYS5oZWFkLmV4dHJhPW5ldyBVaW50OEFycmF5KGEuaGVhZC5leHRyYV9sZW4pKSxhLmhlYWQuZXh0cmEuc2V0KGkuc3ViYXJyYXkocyxzK2MpLHkpKSw1MTImYS5mbGFncyYmNCZhLndyYXAmJihhLmNoZWNrPU4oYS5jaGVjayxpLGMscykpLG8tPWMscys9YyxhLmxlbmd0aC09YyksYS5sZW5ndGgpKWJyZWFrIHQ7YS5sZW5ndGg9MCxhLm1vZGU9MTYxODY7Y2FzZSAxNjE4NjppZigyMDQ4JmEuZmxhZ3Mpe2lmKDA9PT1vKWJyZWFrIHQ7Yz0wO2Rve3k9aVtzK2MrK10sYS5oZWFkJiZ5JiZhLmxlbmd0aDw2NTUzNiYmKGEuaGVhZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHkpKX13aGlsZSh5JiZjPG8pO2lmKDUxMiZhLmZsYWdzJiY0JmEud3JhcCYmKGEuY2hlY2s9TihhLmNoZWNrLGksYyxzKSksby09YyxzKz1jLHkpYnJlYWsgdH1lbHNlIGEuaGVhZCYmKGEuaGVhZC5uYW1lPW51bGwpO2EubGVuZ3RoPTAsYS5tb2RlPTE2MTg3O2Nhc2UgMTYxODc6aWYoNDA5NiZhLmZsYWdzKXtpZigwPT09bylicmVhayB0O2M9MDtkb3t5PWlbcytjKytdLGEuaGVhZCYmeSYmYS5sZW5ndGg8NjU1MzYmJihhLmhlYWQuY29tbWVudCs9U3RyaW5nLmZyb21DaGFyQ29kZSh5KSl9d2hpbGUoeSYmYzxvKTtpZig1MTImYS5mbGFncyYmNCZhLndyYXAmJihhLmNoZWNrPU4oYS5jaGVjayxpLGMscykpLG8tPWMscys9Yyx5KWJyZWFrIHR9ZWxzZSBhLmhlYWQmJihhLmhlYWQuY29tbWVudD1udWxsKTthLm1vZGU9MTYxODg7Y2FzZSAxNjE4ODppZig1MTImYS5mbGFncyl7Zm9yKDtkPDE2Oyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aWYoNCZhLndyYXAmJmghPT0oNjU1MzUmYS5jaGVjaykpe3QubXNnPVwiaGVhZGVyIGNyYyBtaXNtYXRjaFwiLGEubW9kZT1tZTticmVha31oPTAsZD0wfWEuaGVhZCYmKGEuaGVhZC5oY3JjPWEuZmxhZ3M+PjkmMSxhLmhlYWQuZG9uZT0hMCksdC5hZGxlcj1hLmNoZWNrPTAsYS5tb2RlPTE2MTkxO2JyZWFrO2Nhc2UgMTYxODk6Zm9yKDtkPDMyOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9dC5hZGxlcj1hLmNoZWNrPWJlKGgpLGg9MCxkPTAsYS5tb2RlPTE2MTkwO2Nhc2UgMTYxOTA6aWYoMD09PWEuaGF2ZWRpY3QpcmV0dXJuIHQubmV4dF9vdXQ9cix0LmF2YWlsX291dD1sLHQubmV4dF9pbj1zLHQuYXZhaWxfaW49byxhLmhvbGQ9aCxhLmJpdHM9ZCxkZTt0LmFkbGVyPWEuY2hlY2s9MSxhLm1vZGU9MTYxOTE7Y2FzZSAxNjE5MTppZihlPT09cmV8fGU9PT1vZSlicmVhayB0O2Nhc2UgMTYxOTI6aWYoYS5sYXN0KXtoPj4+PTcmZCxkLT03JmQsYS5tb2RlPTE2MjA2O2JyZWFrfWZvcig7ZDwzOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9c3dpdGNoKGEubGFzdD0xJmgsaD4+Pj0xLGQtPTEsMyZoKXtjYXNlIDA6YS5tb2RlPTE2MTkzO2JyZWFrO2Nhc2UgMTppZihSZShhKSxhLm1vZGU9MTYxOTksZT09PW9lKXtoPj4+PTIsZC09MjticmVhayB0fWJyZWFrO2Nhc2UgMjphLm1vZGU9MTYxOTY7YnJlYWs7Y2FzZSAzOnQubXNnPVwiaW52YWxpZCBibG9jayB0eXBlXCIsYS5tb2RlPW1lfWg+Pj49MixkLT0yO2JyZWFrO2Nhc2UgMTYxOTM6Zm9yKGg+Pj49NyZkLGQtPTcmZDtkPDMyOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aWYoKDY1NTM1JmgpIT0oaD4+PjE2XjY1NTM1KSl7dC5tc2c9XCJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzXCIsYS5tb2RlPW1lO2JyZWFrfWlmKGEubGVuZ3RoPTY1NTM1JmgsaD0wLGQ9MCxhLm1vZGU9MTYxOTQsZT09PW9lKWJyZWFrIHQ7Y2FzZSAxNjE5NDphLm1vZGU9MTYxOTU7Y2FzZSAxNjE5NTppZihjPWEubGVuZ3RoLGMpe2lmKGM+byYmKGM9byksYz5sJiYoYz1sKSwwPT09YylicmVhayB0O24uc2V0KGkuc3ViYXJyYXkocyxzK2MpLHIpLG8tPWMscys9YyxsLT1jLHIrPWMsYS5sZW5ndGgtPWM7YnJlYWt9YS5tb2RlPTE2MTkxO2JyZWFrO2Nhc2UgMTYxOTY6Zm9yKDtkPDE0Oyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aWYoYS5ubGVuPTI1NysoMzEmaCksaD4+Pj01LGQtPTUsYS5uZGlzdD0xKygzMSZoKSxoPj4+PTUsZC09NSxhLm5jb2RlPTQrKDE1JmgpLGg+Pj49NCxkLT00LGEubmxlbj4yODZ8fGEubmRpc3Q+MzApe3QubXNnPVwidG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHNcIixhLm1vZGU9bWU7YnJlYWt9YS5oYXZlPTAsYS5tb2RlPTE2MTk3O2Nhc2UgMTYxOTc6Zm9yKDthLmhhdmU8YS5uY29kZTspe2Zvcig7ZDwzOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9YS5sZW5zW1pbYS5oYXZlKytdXT03JmgsaD4+Pj0zLGQtPTN9Zm9yKDthLmhhdmU8MTk7KWEubGVuc1taW2EuaGF2ZSsrXV09MDtpZihhLmxlbmNvZGU9YS5sZW5keW4sYS5sZW5iaXRzPTcsRT17Yml0czphLmxlbmJpdHN9LHg9bmUoMCxhLmxlbnMsMCwxOSxhLmxlbmNvZGUsMCxhLndvcmssRSksYS5sZW5iaXRzPUUuYml0cyx4KXt0Lm1zZz1cImludmFsaWQgY29kZSBsZW5ndGhzIHNldFwiLGEubW9kZT1tZTticmVha31hLmhhdmU9MCxhLm1vZGU9MTYxOTg7Y2FzZSAxNjE5ODpmb3IoO2EuaGF2ZTxhLm5sZW4rYS5uZGlzdDspe2Zvcig7ej1hLmxlbmNvZGVbaCYoMTw8YS5sZW5iaXRzKS0xXSxtPXo+Pj4yNCxiPXo+Pj4xNiYyNTUsZz02NTUzNSZ6LCEobTw9ZCk7KXtpZigwPT09bylicmVhayB0O28tLSxoKz1pW3MrK108PGQsZCs9OH1pZihnPDE2KWg+Pj49bSxkLT1tLGEubGVuc1thLmhhdmUrK109ZztlbHNle2lmKDE2PT09Zyl7Zm9yKFI9bSsyO2Q8Ujspe2lmKDA9PT1vKWJyZWFrIHQ7by0tLGgrPWlbcysrXTw8ZCxkKz04fWlmKGg+Pj49bSxkLT1tLDA9PT1hLmhhdmUpe3QubXNnPVwiaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdFwiLGEubW9kZT1tZTticmVha315PWEubGVuc1thLmhhdmUtMV0sYz0zKygzJmgpLGg+Pj49MixkLT0yfWVsc2UgaWYoMTc9PT1nKXtmb3IoUj1tKzM7ZDxSOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aD4+Pj1tLGQtPW0seT0wLGM9MysoNyZoKSxoPj4+PTMsZC09M31lbHNle2ZvcihSPW0rNztkPFI7KXtpZigwPT09bylicmVhayB0O28tLSxoKz1pW3MrK108PGQsZCs9OH1oPj4+PW0sZC09bSx5PTAsYz0xMSsoMTI3JmgpLGg+Pj49NyxkLT03fWlmKGEuaGF2ZStjPmEubmxlbithLm5kaXN0KXt0Lm1zZz1cImludmFsaWQgYml0IGxlbmd0aCByZXBlYXRcIixhLm1vZGU9bWU7YnJlYWt9Zm9yKDtjLS07KWEubGVuc1thLmhhdmUrK109eX19aWYoYS5tb2RlPT09bWUpYnJlYWs7aWYoMD09PWEubGVuc1syNTZdKXt0Lm1zZz1cImludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9ja1wiLGEubW9kZT1tZTticmVha31pZihhLmxlbmJpdHM9OSxFPXtiaXRzOmEubGVuYml0c30seD1uZSgxLGEubGVucywwLGEubmxlbixhLmxlbmNvZGUsMCxhLndvcmssRSksYS5sZW5iaXRzPUUuYml0cyx4KXt0Lm1zZz1cImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldFwiLGEubW9kZT1tZTticmVha31pZihhLmRpc3RiaXRzPTYsYS5kaXN0Y29kZT1hLmRpc3RkeW4sRT17Yml0czphLmRpc3RiaXRzfSx4PW5lKDIsYS5sZW5zLGEubmxlbixhLm5kaXN0LGEuZGlzdGNvZGUsMCxhLndvcmssRSksYS5kaXN0Yml0cz1FLmJpdHMseCl7dC5tc2c9XCJpbnZhbGlkIGRpc3RhbmNlcyBzZXRcIixhLm1vZGU9bWU7YnJlYWt9aWYoYS5tb2RlPTE2MTk5LGU9PT1vZSlicmVhayB0O2Nhc2UgMTYxOTk6YS5tb2RlPTE2MjAwO2Nhc2UgMTYyMDA6aWYobz49NiYmbD49MjU4KXt0Lm5leHRfb3V0PXIsdC5hdmFpbF9vdXQ9bCx0Lm5leHRfaW49cyx0LmF2YWlsX2luPW8sYS5ob2xkPWgsYS5iaXRzPWQsJHQodCxmKSxyPXQubmV4dF9vdXQsbj10Lm91dHB1dCxsPXQuYXZhaWxfb3V0LHM9dC5uZXh0X2luLGk9dC5pbnB1dCxvPXQuYXZhaWxfaW4saD1hLmhvbGQsZD1hLmJpdHMsMTYxOTE9PT1hLm1vZGUmJihhLmJhY2s9LTEpO2JyZWFrfWZvcihhLmJhY2s9MDt6PWEubGVuY29kZVtoJigxPDxhLmxlbmJpdHMpLTFdLG09ej4+PjI0LGI9ej4+PjE2JjI1NSxnPTY1NTM1JnosIShtPD1kKTspe2lmKDA9PT1vKWJyZWFrIHQ7by0tLGgrPWlbcysrXTw8ZCxkKz04fWlmKGImJjA9PSgyNDAmYikpe2ZvcihwPW0saz1iLHY9Zzt6PWEubGVuY29kZVt2KygoaCYoMTw8cCtrKS0xKT4+cCldLG09ej4+PjI0LGI9ej4+PjE2JjI1NSxnPTY1NTM1JnosIShwK208PWQpOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aD4+Pj1wLGQtPXAsYS5iYWNrKz1wfWlmKGg+Pj49bSxkLT1tLGEuYmFjays9bSxhLmxlbmd0aD1nLDA9PT1iKXthLm1vZGU9MTYyMDU7YnJlYWt9aWYoMzImYil7YS5iYWNrPS0xLGEubW9kZT0xNjE5MTticmVha31pZig2NCZiKXt0Lm1zZz1cImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZVwiLGEubW9kZT1tZTticmVha31hLmV4dHJhPTE1JmIsYS5tb2RlPTE2MjAxO2Nhc2UgMTYyMDE6aWYoYS5leHRyYSl7Zm9yKFI9YS5leHRyYTtkPFI7KXtpZigwPT09bylicmVhayB0O28tLSxoKz1pW3MrK108PGQsZCs9OH1hLmxlbmd0aCs9aCYoMTw8YS5leHRyYSktMSxoPj4+PWEuZXh0cmEsZC09YS5leHRyYSxhLmJhY2srPWEuZXh0cmF9YS53YXM9YS5sZW5ndGgsYS5tb2RlPTE2MjAyO2Nhc2UgMTYyMDI6Zm9yKDt6PWEuZGlzdGNvZGVbaCYoMTw8YS5kaXN0Yml0cyktMV0sbT16Pj4+MjQsYj16Pj4+MTYmMjU1LGc9NjU1MzUmeiwhKG08PWQpOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aWYoMD09KDI0MCZiKSl7Zm9yKHA9bSxrPWIsdj1nO3o9YS5kaXN0Y29kZVt2KygoaCYoMTw8cCtrKS0xKT4+cCldLG09ej4+PjI0LGI9ej4+PjE2JjI1NSxnPTY1NTM1JnosIShwK208PWQpOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aD4+Pj1wLGQtPXAsYS5iYWNrKz1wfWlmKGg+Pj49bSxkLT1tLGEuYmFjays9bSw2NCZiKXt0Lm1zZz1cImludmFsaWQgZGlzdGFuY2UgY29kZVwiLGEubW9kZT1tZTticmVha31hLm9mZnNldD1nLGEuZXh0cmE9MTUmYixhLm1vZGU9MTYyMDM7Y2FzZSAxNjIwMzppZihhLmV4dHJhKXtmb3IoUj1hLmV4dHJhO2Q8Ujspe2lmKDA9PT1vKWJyZWFrIHQ7by0tLGgrPWlbcysrXTw8ZCxkKz04fWEub2Zmc2V0Kz1oJigxPDxhLmV4dHJhKS0xLGg+Pj49YS5leHRyYSxkLT1hLmV4dHJhLGEuYmFjays9YS5leHRyYX1pZihhLm9mZnNldD5hLmRtYXgpe3QubXNnPVwiaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2tcIixhLm1vZGU9bWU7YnJlYWt9YS5tb2RlPTE2MjA0O2Nhc2UgMTYyMDQ6aWYoMD09PWwpYnJlYWsgdDtpZihjPWYtbCxhLm9mZnNldD5jKXtpZihjPWEub2Zmc2V0LWMsYz5hLndoYXZlJiZhLnNhbmUpe3QubXNnPVwiaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2tcIixhLm1vZGU9bWU7YnJlYWt9Yz5hLnduZXh0PyhjLT1hLnduZXh0LHU9YS53c2l6ZS1jKTp1PWEud25leHQtYyxjPmEubGVuZ3RoJiYoYz1hLmxlbmd0aCksdz1hLndpbmRvd31lbHNlIHc9bix1PXItYS5vZmZzZXQsYz1hLmxlbmd0aDtjPmwmJihjPWwpLGwtPWMsYS5sZW5ndGgtPWM7ZG97bltyKytdPXdbdSsrXX13aGlsZSgtLWMpOzA9PT1hLmxlbmd0aCYmKGEubW9kZT0xNjIwMCk7YnJlYWs7Y2FzZSAxNjIwNTppZigwPT09bClicmVhayB0O25bcisrXT1hLmxlbmd0aCxsLS0sYS5tb2RlPTE2MjAwO2JyZWFrO2Nhc2UgMTYyMDY6aWYoYS53cmFwKXtmb3IoO2Q8MzI7KXtpZigwPT09bylicmVhayB0O28tLSxofD1pW3MrK108PGQsZCs9OH1pZihmLT1sLHQudG90YWxfb3V0Kz1mLGEudG90YWwrPWYsNCZhLndyYXAmJmYmJih0LmFkbGVyPWEuY2hlY2s9YS5mbGFncz9OKGEuY2hlY2ssbixmLHItZik6RihhLmNoZWNrLG4sZixyLWYpKSxmPWwsNCZhLndyYXAmJihhLmZsYWdzP2g6YmUoaCkpIT09YS5jaGVjayl7dC5tc2c9XCJpbmNvcnJlY3QgZGF0YSBjaGVja1wiLGEubW9kZT1tZTticmVha31oPTAsZD0wfWEubW9kZT0xNjIwNztjYXNlIDE2MjA3OmlmKGEud3JhcCYmYS5mbGFncyl7Zm9yKDtkPDMyOyl7aWYoMD09PW8pYnJlYWsgdDtvLS0saCs9aVtzKytdPDxkLGQrPTh9aWYoNCZhLndyYXAmJmghPT0oNDI5NDk2NzI5NSZhLnRvdGFsKSl7dC5tc2c9XCJpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrXCIsYS5tb2RlPW1lO2JyZWFrfWg9MCxkPTB9YS5tb2RlPTE2MjA4O2Nhc2UgMTYyMDg6eD1oZTticmVhayB0O2Nhc2UgbWU6eD1mZTticmVhayB0O2Nhc2UgMTYyMTA6cmV0dXJuIGNlO2RlZmF1bHQ6cmV0dXJuIF9lfXJldHVybiB0Lm5leHRfb3V0PXIsdC5hdmFpbF9vdXQ9bCx0Lm5leHRfaW49cyx0LmF2YWlsX2luPW8sYS5ob2xkPWgsYS5iaXRzPWQsKGEud3NpemV8fGYhPT10LmF2YWlsX291dCYmYS5tb2RlPG1lJiYoYS5tb2RlPDE2MjA2fHxlIT09c2UpKSYmWmUodCx0Lm91dHB1dCx0Lm5leHRfb3V0LGYtdC5hdmFpbF9vdXQpLF8tPXQuYXZhaWxfaW4sZi09dC5hdmFpbF9vdXQsdC50b3RhbF9pbis9Xyx0LnRvdGFsX291dCs9ZixhLnRvdGFsKz1mLDQmYS53cmFwJiZmJiYodC5hZGxlcj1hLmNoZWNrPWEuZmxhZ3M/TihhLmNoZWNrLG4sZix0Lm5leHRfb3V0LWYpOkYoYS5jaGVjayxuLGYsdC5uZXh0X291dC1mKSksdC5kYXRhX3R5cGU9YS5iaXRzKyhhLmxhc3Q/NjQ6MCkrKDE2MTkxPT09YS5tb2RlPzEyODowKSsoMTYxOTk9PT1hLm1vZGV8fDE2MTk0PT09YS5tb2RlPzI1NjowKSwoMD09PV8mJjA9PT1mfHxlPT09c2UpJiZ4PT09bGUmJih4PXVlKSx4fSxpbmZsYXRlRW5kOnQ9PntpZihwZSh0KSlyZXR1cm4gX2U7bGV0IGU9dC5zdGF0ZTtyZXR1cm4gZS53aW5kb3cmJihlLndpbmRvdz1udWxsKSx0LnN0YXRlPW51bGwsbGV9LGluZmxhdGVHZXRIZWFkZXI6KHQsZSk9PntpZihwZSh0KSlyZXR1cm4gX2U7Y29uc3QgYT10LnN0YXRlO3JldHVybiAwPT0oMiZhLndyYXApP19lOihhLmhlYWQ9ZSxlLmRvbmU9ITEsbGUpfSxpbmZsYXRlU2V0RGljdGlvbmFyeToodCxlKT0+e2NvbnN0IGE9ZS5sZW5ndGg7bGV0IGksbixzO3JldHVybiBwZSh0KT9fZTooaT10LnN0YXRlLDAhPT1pLndyYXAmJjE2MTkwIT09aS5tb2RlP19lOjE2MTkwPT09aS5tb2RlJiYobj0xLG49RihuLGUsYSwwKSxuIT09aS5jaGVjayk/ZmU6KHM9WmUodCxlLGEsYSkscz8oaS5tb2RlPTE2MjEwLGNlKTooaS5oYXZlZGljdD0xLGxlKSkpfSxpbmZsYXRlSW5mbzpcInBha28gaW5mbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdClcIn07dmFyIFNlPWZ1bmN0aW9uKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPVwiXCIsdGhpcy5jb21tZW50PVwiXCIsdGhpcy5oY3JjPTAsdGhpcy5kb25lPSExfTtjb25zdCBEZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHtaX05PX0ZMVVNIOlRlLFpfRklOSVNIOk9lLFpfT0s6RmUsWl9TVFJFQU1fRU5EOkxlLFpfTkVFRF9ESUNUOk5lLFpfU1RSRUFNX0VSUk9SOkllLFpfREFUQV9FUlJPUjpCZSxaX01FTV9FUlJPUjpDZX09QjtmdW5jdGlvbiBIZSh0KXt0aGlzLm9wdGlvbnM9VHQoe2NodW5rU2l6ZTo2NTUzNix3aW5kb3dCaXRzOjE1LHRvOlwiXCJ9LHR8fHt9KTtjb25zdCBlPXRoaXMub3B0aW9ucztlLnJhdyYmZS53aW5kb3dCaXRzPj0wJiZlLndpbmRvd0JpdHM8MTYmJihlLndpbmRvd0JpdHM9LWUud2luZG93Qml0cywwPT09ZS53aW5kb3dCaXRzJiYoZS53aW5kb3dCaXRzPS0xNSkpLCEoZS53aW5kb3dCaXRzPj0wJiZlLndpbmRvd0JpdHM8MTYpfHx0JiZ0LndpbmRvd0JpdHN8fChlLndpbmRvd0JpdHMrPTMyKSxlLndpbmRvd0JpdHM+MTUmJmUud2luZG93Qml0czw0OCYmMD09KDE1JmUud2luZG93Qml0cykmJihlLndpbmRvd0JpdHN8PTE1KSx0aGlzLmVycj0wLHRoaXMubXNnPVwiXCIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IEN0LHRoaXMuc3RybS5hdmFpbF9vdXQ9MDtsZXQgYT1VZS5pbmZsYXRlSW5pdDIodGhpcy5zdHJtLGUud2luZG93Qml0cyk7aWYoYSE9PUZlKXRocm93IG5ldyBFcnJvcihJW2FdKTtpZih0aGlzLmhlYWRlcj1uZXcgU2UsVWUuaW5mbGF0ZUdldEhlYWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpLGUuZGljdGlvbmFyeSYmKFwic3RyaW5nXCI9PXR5cGVvZiBlLmRpY3Rpb25hcnk/ZS5kaWN0aW9uYXJ5PU50KGUuZGljdGlvbmFyeSk6XCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiPT09RGUuY2FsbChlLmRpY3Rpb25hcnkpJiYoZS5kaWN0aW9uYXJ5PW5ldyBVaW50OEFycmF5KGUuZGljdGlvbmFyeSkpLGUucmF3JiYoYT1VZS5pbmZsYXRlU2V0RGljdGlvbmFyeSh0aGlzLnN0cm0sZS5kaWN0aW9uYXJ5KSxhIT09RmUpKSl0aHJvdyBuZXcgRXJyb3IoSVthXSl9SGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCxlKXtjb25zdCBhPXRoaXMuc3RybSxpPXRoaXMub3B0aW9ucy5jaHVua1NpemUsbj10aGlzLm9wdGlvbnMuZGljdGlvbmFyeTtsZXQgcyxyLG87aWYodGhpcy5lbmRlZClyZXR1cm4hMTtmb3Iocj1lPT09fn5lP2U6ITA9PT1lP09lOlRlLFwiW29iamVjdCBBcnJheUJ1ZmZlcl1cIj09PURlLmNhbGwodCk/YS5pbnB1dD1uZXcgVWludDhBcnJheSh0KTphLmlucHV0PXQsYS5uZXh0X2luPTAsYS5hdmFpbF9pbj1hLmlucHV0Lmxlbmd0aDs7KXtmb3IoMD09PWEuYXZhaWxfb3V0JiYoYS5vdXRwdXQ9bmV3IFVpbnQ4QXJyYXkoaSksYS5uZXh0X291dD0wLGEuYXZhaWxfb3V0PWkpLHM9VWUuaW5mbGF0ZShhLHIpLHM9PT1OZSYmbiYmKHM9VWUuaW5mbGF0ZVNldERpY3Rpb25hcnkoYSxuKSxzPT09RmU/cz1VZS5pbmZsYXRlKGEscik6cz09PUJlJiYocz1OZSkpO2EuYXZhaWxfaW4+MCYmcz09PUxlJiZhLnN0YXRlLndyYXA+MCYmMCE9PXRbYS5uZXh0X2luXTspVWUuaW5mbGF0ZVJlc2V0KGEpLHM9VWUuaW5mbGF0ZShhLHIpO3N3aXRjaChzKXtjYXNlIEllOmNhc2UgQmU6Y2FzZSBOZTpjYXNlIENlOnJldHVybiB0aGlzLm9uRW5kKHMpLHRoaXMuZW5kZWQ9ITAsITF9aWYobz1hLmF2YWlsX291dCxhLm5leHRfb3V0JiYoMD09PWEuYXZhaWxfb3V0fHxzPT09TGUpKWlmKFwic3RyaW5nXCI9PT10aGlzLm9wdGlvbnMudG8pe2xldCB0PUJ0KGEub3V0cHV0LGEubmV4dF9vdXQpLGU9YS5uZXh0X291dC10LG49SXQoYS5vdXRwdXQsdCk7YS5uZXh0X291dD1lLGEuYXZhaWxfb3V0PWktZSxlJiZhLm91dHB1dC5zZXQoYS5vdXRwdXQuc3ViYXJyYXkodCx0K2UpLDApLHRoaXMub25EYXRhKG4pfWVsc2UgdGhpcy5vbkRhdGEoYS5vdXRwdXQubGVuZ3RoPT09YS5uZXh0X291dD9hLm91dHB1dDphLm91dHB1dC5zdWJhcnJheSgwLGEubmV4dF9vdXQpKTtpZihzIT09RmV8fDAhPT1vKXtpZihzPT09TGUpcmV0dXJuIHM9VWUuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQocyksdGhpcy5lbmRlZD0hMCwhMDtpZigwPT09YS5hdmFpbF9pbilicmVha319cmV0dXJuITB9LEhlLnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24odCl7dGhpcy5jaHVua3MucHVzaCh0KX0sSGUucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKHQpe3Q9PT1GZSYmKFwic3RyaW5nXCI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5yZXN1bHQ9dGhpcy5jaHVua3Muam9pbihcIlwiKTp0aGlzLnJlc3VsdD1PdCh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPXQsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ307Y29uc3R7RGVmbGF0ZTpNZSxkZWZsYXRlOmplLGRlZmxhdGVSYXc6S2UsZ3ppcDpQZX09VnQ7dmFyIFllPU1lLEdlPWplLFhlPUI7Y29uc3QgV2U9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5faW5pdCgpfWNsZWFyKCl7dGhpcy5faW5pdCgpfWFkZEV2ZW50KHQpe2lmKCF0KXRocm93IG5ldyBFcnJvcihcIkFkZGluZyBpbnZhbGlkIGV2ZW50XCIpO2NvbnN0IGU9dGhpcy5faGFzRXZlbnRzP1wiLFwiOlwiXCI7dGhpcy5kZWZsYXRlLnB1c2goZSt0LFhlLlpfU1lOQ19GTFVTSCksdGhpcy5faGFzRXZlbnRzPSEwfWZpbmlzaCgpe2lmKHRoaXMuZGVmbGF0ZS5wdXNoKFwiXVwiLFhlLlpfRklOSVNIKSx0aGlzLmRlZmxhdGUuZXJyKXRocm93IHRoaXMuZGVmbGF0ZS5lcnI7Y29uc3QgdD10aGlzLmRlZmxhdGUucmVzdWx0O3JldHVybiB0aGlzLl9pbml0KCksdH1faW5pdCgpe3RoaXMuX2hhc0V2ZW50cz0hMSx0aGlzLmRlZmxhdGU9bmV3IFllLHRoaXMuZGVmbGF0ZS5wdXNoKFwiW1wiLFhlLlpfTk9fRkxVU0gpfX0scWU9e2NsZWFyOigpPT57V2UuY2xlYXIoKX0sYWRkRXZlbnQ6dD0+V2UuYWRkRXZlbnQodCksZmluaXNoOigpPT5XZS5maW5pc2goKSxjb21wcmVzczp0PT5mdW5jdGlvbih0KXtyZXR1cm4gR2UodCl9KHQpfTthZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLChmdW5jdGlvbih0KXtjb25zdCBlPXQuZGF0YS5tZXRob2QsYT10LmRhdGEuaWQsaT10LmRhdGEuYXJnO2lmKGUgaW4gcWUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHFlW2VdKXRyeXtjb25zdCB0PXFlW2VdKGkpO3Bvc3RNZXNzYWdlKHtpZDphLG1ldGhvZDplLHN1Y2Nlc3M6ITAscmVzcG9uc2U6dH0pfWNhdGNoKHQpe3Bvc3RNZXNzYWdlKHtpZDphLG1ldGhvZDplLHN1Y2Nlc3M6ITEscmVzcG9uc2U6dC5tZXNzYWdlfSksY29uc29sZS5lcnJvcih0KX19KSkscG9zdE1lc3NhZ2Uoe2lkOnZvaWQgMCxtZXRob2Q6XCJpbml0XCIsc3VjY2VzczohMCxyZXNwb25zZTp2b2lkIDB9KTsnXSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwoZSl9KCk7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLmxvZyhcIltSZXBsYXldIFVzaW5nIGNvbXByZXNzaW9uIHdvcmtlclwiKTtjb25zdCB0PW5ldyBXb3JrZXIoZSk7cmV0dXJuIG5ldyBhbyh0KX1jYXRjaCh0KXsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmc24ubG9nKFwiW1JlcGxheV0gRmFpbGVkIHRvIGNyZWF0ZSBjb21wcmVzc2lvbiB3b3JrZXJcIil9cmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLmxvZyhcIltSZXBsYXldIFVzaW5nIHNpbXBsZSBidWZmZXJcIiksbmV3IHJvfWZ1bmN0aW9uIGNvKGUpeyFmdW5jdGlvbigpe2lmKCEoXCJzZXNzaW9uU3RvcmFnZVwiaW4gaHIpKXJldHVybjt0cnl7aHIuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShncil9Y2F0Y2goZSl7fX0oKSxlLnNlc3Npb249dm9pZCAwfWZ1bmN0aW9uIHVvKGUsdCxuPStuZXcgRGF0ZSl7cmV0dXJuIG51bGw9PT1lfHx2b2lkIDA9PT10fHx0PDB8fDAhPT10JiZlK3Q8PW59ZnVuY3Rpb24gbG8oZSx0LG49K25ldyBEYXRlKXtyZXR1cm4gdW8oZS5zdGFydGVkLHQubWF4U2Vzc2lvbkxpZmUsbil8fHVvKGUubGFzdEFjdGl2aXR5LHQuc2Vzc2lvbklkbGVFeHBpcmUsbil9ZnVuY3Rpb24gcG8oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJk1hdGgucmFuZG9tKCk8ZX1mdW5jdGlvbiBmbyhlKXtpZihcInNlc3Npb25TdG9yYWdlXCJpbiBocil0cnl7aHIuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShncixKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2godCl7fX1mdW5jdGlvbiBobyhlKXtjb25zdCB0PURhdGUubm93KCk7cmV0dXJue2lkOmUuaWR8fHRuKCksc3RhcnRlZDplLnN0YXJ0ZWR8fHQsbGFzdEFjdGl2aXR5OmUubGFzdEFjdGl2aXR5fHx0LHNlZ21lbnRJZDplLnNlZ21lbnRJZHx8MCxzYW1wbGVkOmUuc2FtcGxlZCxzaG91bGRSZWZyZXNoOiEwfX1mdW5jdGlvbiBnbyh7c2Vzc2lvblNhbXBsZVJhdGU6ZSxhbGxvd0J1ZmZlcmluZzp0LHN0aWNreVNlc3Npb246bj0hMX0pe2NvbnN0IHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcG8oZSk/XCJzZXNzaW9uXCI6ISF0JiZcImJ1ZmZlclwifShlLHQpLGk9aG8oe3NhbXBsZWQ6cn0pO3JldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5sb2coYFtSZXBsYXldIENyZWF0aW5nIG5ldyBzZXNzaW9uOiAke2kuaWR9YCksbiYmZm8oaSksaX1mdW5jdGlvbiBtbyh7dGltZW91dHM6ZSxjdXJyZW50U2Vzc2lvbjp0LHN0aWNreVNlc3Npb246bixzZXNzaW9uU2FtcGxlUmF0ZTpyLGFsbG93QnVmZmVyaW5nOml9KXtjb25zdCBvPXR8fG4mJmZ1bmN0aW9uKCl7aWYoIShcInNlc3Npb25TdG9yYWdlXCJpbiBocikpcmV0dXJuIG51bGw7dHJ5e2NvbnN0IGU9aHIuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShncik7cmV0dXJuIGU/aG8oSlNPTi5wYXJzZShlKSk6bnVsbH1jYXRjaChlKXtyZXR1cm4gbnVsbH19KCk7aWYobyl7aWYoIWxvKG8sZSkpcmV0dXJue3R5cGU6XCJzYXZlZFwiLHNlc3Npb246b307aWYoIW8uc2hvdWxkUmVmcmVzaCl7cmV0dXJue3R5cGU6XCJuZXdcIixzZXNzaW9uOmhvKHtzYW1wbGVkOiExfSl9fShcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5sb2coXCJbUmVwbGF5XSBTZXNzaW9uIGhhcyBleHBpcmVkXCIpfXJldHVybnt0eXBlOlwibmV3XCIsc2Vzc2lvbjpnbyh7c3RpY2t5U2Vzc2lvbjpuLHNlc3Npb25TYW1wbGVSYXRlOnIsYWxsb3dCdWZmZXJpbmc6aX0pfX1hc3luYyBmdW5jdGlvbiB2byhlLHQsbil7aWYoIWUuZXZlbnRCdWZmZXIpcmV0dXJuIG51bGw7aWYoZS5pc1BhdXNlZCgpKXJldHVybiBudWxsO2lmKG5vKHQudGltZXN0YW1wKStlLnRpbWVvdXRzLnNlc3Npb25JZGxlUGF1c2U8RGF0ZS5ub3coKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIG4mJmUuZXZlbnRCdWZmZXIuY2xlYXIoKSxhd2FpdCBlLmV2ZW50QnVmZmVyLmFkZEV2ZW50KHQpfWNhdGNoKHIpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5lcnJvcihyKSxhd2FpdCBlLnN0b3AoXCJhZGRFdmVudFwiKTtjb25zdCB0PUxuKCkuZ2V0Q2xpZW50KCk7dCYmdC5yZWNvcmREcm9wcGVkRXZlbnQoXCJpbnRlcm5hbF9zZGtfZXJyb3JcIixcInJlcGxheVwiKX19ZnVuY3Rpb24gX28oZSl7cmV0dXJuIWUudHlwZX1mdW5jdGlvbiBFbyhlKXtyZXR1cm5cInRyYW5zYWN0aW9uXCI9PT1lLnR5cGV9ZnVuY3Rpb24gYm8oZSl7Y29uc3QgdD1mdW5jdGlvbigpe2NvbnN0IGU9TG4oKS5nZXRDbGllbnQoKTtpZighZSlyZXR1cm4hMTtjb25zdCB0PWUuZ2V0VHJhbnNwb3J0KCk7aWYoIXQpcmV0dXJuITE7cmV0dXJuIHQuc2VuZC5fX3NlbnRyeV9fYmFzZVRyYW5zcG9ydF9ffHwhMX0oKTtyZXR1cm4obixyKT0+e2lmKCFfbyhuKSYmIUVvKG4pKXJldHVybjtjb25zdCBpPXImJnIuc3RhdHVzQ29kZTt0JiYoIWl8fGk8MjAwfHxpPj0zMDApfHwoRW8obikmJm4uY29udGV4dHMmJm4uY29udGV4dHMudHJhY2UmJm4uY29udGV4dHMudHJhY2UudHJhY2VfaWQ/ZS5nZXRDb250ZXh0KCkudHJhY2VJZHMuYWRkKG4uY29udGV4dHMudHJhY2UudHJhY2VfaWQpOl9vKG4pJiYobi5ldmVudF9pZCYmZS5nZXRDb250ZXh0KCkuZXJyb3JJZHMuYWRkKG4uZXZlbnRfaWQpLFwiYnVmZmVyXCI9PT1lLnJlY29yZGluZ01vZGUmJm4udGFncyYmbi50YWdzLnJlcGxheUlkJiZzZXRUaW1lb3V0KCgoKT0+e2Uuc2VuZEJ1ZmZlcmVkUmVwbGF5T3JGbHVzaCgpfSkpKSl9fXZhciBTbztmdW5jdGlvbiB5byhlKXtyZXR1cm57dGltZXN0YW1wOkRhdGUubm93KCkvMWUzLHR5cGU6XCJkZWZhdWx0XCIsLi4uZX19ZnVuY3Rpb24gVG8oZSx0KXtcInNlbnRyeS50cmFuc2FjdGlvblwiIT09dC5jYXRlZ29yeSYmKFtcInVpLmNsaWNrXCIsXCJ1aS5pbnB1dFwiXS5pbmNsdWRlcyh0LmNhdGVnb3J5KT9lLnRyaWdnZXJVc2VyQWN0aXZpdHkoKTplLmNoZWNrQW5kSGFuZGxlRXhwaXJlZFNlc3Npb24oKSxlLmFkZFVwZGF0ZSgoKCk9Pih2byhlLHt0eXBlOnFyLkN1c3RvbSx0aW1lc3RhbXA6MWUzKih0LnRpbWVzdGFtcHx8MCksZGF0YTp7dGFnOlwiYnJlYWRjcnVtYlwiLHBheWxvYWQ6V24odCwxMCwxZTMpfX0pLFwiY29uc29sZVwiPT09dC5jYXRlZ29yeSkpKSl9IWZ1bmN0aW9uKGUpe2VbZS5Eb2N1bWVudD0wXT1cIkRvY3VtZW50XCIsZVtlLkRvY3VtZW50VHlwZT0xXT1cIkRvY3VtZW50VHlwZVwiLGVbZS5FbGVtZW50PTJdPVwiRWxlbWVudFwiLGVbZS5UZXh0PTNdPVwiVGV4dFwiLGVbZS5DREFUQT00XT1cIkNEQVRBXCIsZVtlLkNvbW1lbnQ9NV09XCJDb21tZW50XCJ9KFNvfHwoU289e30pKTtjb25zdCBJbz1uZXcgU2V0KFtcImlkXCIsXCJjbGFzc1wiLFwiYXJpYS1sYWJlbFwiLFwicm9sZVwiLFwibmFtZVwiLFwiYWx0XCIsXCJ0aXRsZVwiLFwiZGF0YS10ZXN0LWlkXCIsXCJkYXRhLXRlc3RpZFwiXSk7ZnVuY3Rpb24gT28oZSl7Y29uc3QgdD17fTtmb3IoY29uc3QgbiBpbiBlKWlmKElvLmhhcyhuKSl7bGV0IHI9bjtcImRhdGEtdGVzdGlkXCIhPT1uJiZcImRhdGEtdGVzdC1pZFwiIT09bnx8KHI9XCJ0ZXN0SWRcIiksdFtyXT1lW25dfXJldHVybiB0fWNvbnN0IEFvPWU9PnQ9PntpZighZS5pc0VuYWJsZWQoKSlyZXR1cm47Y29uc3Qgbj1mdW5jdGlvbihlKXtsZXQgdCxuO2NvbnN0IHI9XCJjbGlja1wiPT09ZS5uYW1lO3RyeXtuPXI/ZnVuY3Rpb24oZSl7Y29uc3QgdD1DbyhlKTtpZighdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpcmV0dXJuIHQ7cmV0dXJuIHQuY2xvc2VzdChObyl8fHR9KGUuZXZlbnQpOkNvKGUuZXZlbnQpLHQ9dm4obix7bWF4U3RyaW5nTGVuZ3RoOjIwMH0pfWNhdGNoKG8pe3Q9XCI8dW5rbm93bj5cIn1jb25zdCBpPW4mJlwiX19zblwiaW4gbiYmbi5fX3NuLnR5cGU9PT1Tby5FbGVtZW50P24uX19zbjpudWxsO3JldHVybiB5byh7Y2F0ZWdvcnk6YHVpLiR7ZS5uYW1lfWAsbWVzc2FnZTp0LGRhdGE6aT97bm9kZUlkOmkuaWQsbm9kZTp7aWQ6aS5pZCx0YWdOYW1lOmkudGFnTmFtZSx0ZXh0Q29udGVudDpuP0FycmF5LmZyb20obi5jaGlsZE5vZGVzKS5tYXAoKGU9PlwiX19zblwiaW4gZSYmZS5fX3NuLnR5cGU9PT1Tby5UZXh0JiZlLl9fc24udGV4dENvbnRlbnQpKS5maWx0ZXIoQm9vbGVhbikubWFwKChlPT5lLnRyaW0oKSkpLmpvaW4oXCJcIik6XCJcIixhdHRyaWJ1dGVzOk9vKGkuYXR0cmlidXRlcyl9fTp7fX0pfSh0KTtuJiZUbyhlLG4pfTtmdW5jdGlvbiBDbyhlKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuISFlLnRhcmdldH0oZSk/ZS50YXJnZXQ6ZX1jb25zdCBObz1cImJ1dHRvbixhXCI7ZnVuY3Rpb24ga28oZSx0PSExKXtjb25zdCBuPXQ/Ym8oZSk6dm9pZCAwO3JldHVybih0LHIpPT57aWYoZnVuY3Rpb24oZSl7cmV0dXJuXCJyZXBsYXlfZXZlbnRcIj09PWUudHlwZX0odCkpcmV0dXJuIGRlbGV0ZSB0LmJyZWFkY3J1bWJzLHQ7aWYoIV9vKHQpJiYhRW8odCkpcmV0dXJuIHQ7aWYoZnVuY3Rpb24oZSx0KXtyZXR1cm4hKGUudHlwZXx8IWUuZXhjZXB0aW9ufHwhZS5leGNlcHRpb24udmFsdWVzfHwhZS5leGNlcHRpb24udmFsdWVzLmxlbmd0aCkmJighKCF0Lm9yaWdpbmFsRXhjZXB0aW9ufHwhdC5vcmlnaW5hbEV4Y2VwdGlvbi5fX3Jyd2ViX18pfHxlLmV4Y2VwdGlvbi52YWx1ZXMuc29tZSgoZT0+ISEoZS5zdGFja3RyYWNlJiZlLnN0YWNrdHJhY2UuZnJhbWVzJiZlLnN0YWNrdHJhY2UuZnJhbWVzLmxlbmd0aCkmJmUuc3RhY2t0cmFjZS5mcmFtZXMuc29tZSgoZT0+ZS5maWxlbmFtZSYmZS5maWxlbmFtZS5pbmNsdWRlcyhcIi9ycndlYi9zcmMvXCIpKSkpKSl9KHQscikmJiFlLmdldE9wdGlvbnMoKS5fZXhwZXJpbWVudHMuY2FwdHVyZUV4Y2VwdGlvbnMpcmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLmxvZyhcIltSZXBsYXldIElnbm9yaW5nIGVycm9yIGZyb20gcnJ3ZWIgaW50ZXJuYWxzXCIsdCksbnVsbDtjb25zdCBpPWZ1bmN0aW9uKGUsdCl7cmV0dXJuXCJidWZmZXJcIj09PWUucmVjb3JkaW5nTW9kZSYmdC5tZXNzYWdlIT09bXImJiEoIXQuZXhjZXB0aW9ufHx0LnR5cGUpJiZwbyhlLmdldE9wdGlvbnMoKS5lcnJvclNhbXBsZVJhdGUpfShlLHQpO2lmKChpfHxcInNlc3Npb25cIj09PWUucmVjb3JkaW5nTW9kZSkmJih0LnRhZ3M9ey4uLnQudGFncyxyZXBsYXlJZDplLmdldFNlc3Npb25JZCgpfSksKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmUuZ2V0T3B0aW9ucygpLl9leHBlcmltZW50cy50cmFjZUludGVybmFscyYmX28odCkpe2NvbnN0IGU9ZnVuY3Rpb24oZSl7cmV0dXJue3R5cGU6XCJVbmtub3duXCIsdmFsdWU6XCJuL2FcIiwuLi5lLmV4Y2VwdGlvbiYmZS5leGNlcHRpb24udmFsdWVzJiZlLmV4Y2VwdGlvbi52YWx1ZXNbMF19fSh0KTshZnVuY3Rpb24oZSl7Y29uc3R7Y2F0ZWdvcnk6dCxsZXZlbDpuLG1lc3NhZ2U6ciwuLi5pfT1lO289e2NhdGVnb3J5OnR8fFwiY29uc29sZVwiLGxldmVsOm58fFwiZGVidWdcIixtZXNzYWdlOmBbZGVidWddOiAke3J9YCwuLi5pfSxMbigpLmFkZEJyZWFkY3J1bWIobyk7dmFyIG99KHttZXNzYWdlOmBUYWdnaW5nIGV2ZW50ICgke3QuZXZlbnRfaWR9KSAtICR7dC5tZXNzYWdlfSAtICR7ZS50eXBlfTogJHtlLnZhbHVlfWB9KX1yZXR1cm4gbiYmbih0LHtzdGF0dXNDb2RlOjIwMH0pLHR9fWZ1bmN0aW9uIFBvKGUsdCl7cmV0dXJuIHQubWFwKCgoe3R5cGU6dCxzdGFydDpuLGVuZDpyLG5hbWU6aSxkYXRhOm99KT0+dm8oZSx7dHlwZTpxci5DdXN0b20sdGltZXN0YW1wOm4sZGF0YTp7dGFnOlwicGVyZm9ybWFuY2VTcGFuXCIscGF5bG9hZDp7b3A6dCxkZXNjcmlwdGlvbjppLHN0YXJ0VGltZXN0YW1wOm4sZW5kVGltZXN0YW1wOnIsZGF0YTpvfX19KSkpfWZ1bmN0aW9uIFJvKGUpe3JldHVybiB0PT57aWYoIWUuaXNFbmFibGVkKCkpcmV0dXJuO2NvbnN0IG49ZnVuY3Rpb24oZSl7Y29uc3R7ZnJvbTp0LHRvOm59PWUscj1EYXRlLm5vdygpLzFlMztyZXR1cm57dHlwZTpcIm5hdmlnYXRpb24ucHVzaFwiLHN0YXJ0OnIsZW5kOnIsbmFtZTpuLGRhdGE6e3ByZXZpb3VzOnR9fX0odCk7bnVsbCE9PW4mJihlLmdldENvbnRleHQoKS51cmxzLnB1c2gobi5uYW1lKSxlLnRyaWdnZXJVc2VyQWN0aXZpdHkoKSxlLmFkZFVwZGF0ZSgoKCk9PihQbyhlLFtuXSksITEpKSkpfX1mdW5jdGlvbiB3byhlLHQpe3JldHVybihcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX18mJiFfX1NFTlRSWV9ERUJVR19ffHwhZS5nZXRPcHRpb25zKCkuX2V4cGVyaW1lbnRzLnRyYWNlSW50ZXJuYWxzKSYmZnVuY3Rpb24oZSl7Y29uc3QgdD1MbigpLmdldENsaWVudCgpLG49dCYmdC5nZXREc24oKTtyZXR1cm4hIW4mJmUuaW5jbHVkZXMobi5ob3N0KX0odCl9ZnVuY3Rpb24gTG8oZSx0KXtlLmlzRW5hYmxlZCgpJiZudWxsIT09dCYmKHdvKGUsdC5uYW1lKXx8ZS5hZGRVcGRhdGUoKCgpPT4oUG8oZSxbdF0pLCEwKSkpKX1jb25zdCBCbz0xMCxNbz0xMSxEbz0xMixqbz0xMyx4bz0xNCxVbz0xNSxGbz0yMCxIbz0yMSxHbz0yMixXbz0yMyxWbz1bXCJ0cnVlXCIsXCJmYWxzZVwiLFwibnVsbFwiXTtmdW5jdGlvbiB6byhlLHQpe2lmKCF0Lmxlbmd0aClyZXR1cm4gZTtsZXQgbj1lO2NvbnN0IHI9dC5sZW5ndGgtMTtuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2UgQm86cmV0dXJuYCR7ZX1cIn5+XCI6XCJ+flwiYDtjYXNlIDExOnJldHVybmAke2V9Olwifn5cImA7Y2FzZSAxMjpyZXR1cm5gJHtlfX5+XCI6XCJ+flwiYDtjYXNlIGpvOnJldHVybiBmdW5jdGlvbihlKXtjb25zdCB0PWUubGFzdEluZGV4T2YoXCI6XCIpLG49ZS5zbGljZSh0KzEpO2lmKFZvLmluY2x1ZGVzKG4udHJpbSgpKSlyZXR1cm5gJHtlfSxcIn5+XCI6XCJ+flwiYDtyZXR1cm5gJHtlLnNsaWNlKDAsdCsxKX1cIn5+XCJgfShlKTtjYXNlIDE0OnJldHVybmAke2V9fn5cImA7Y2FzZSBVbzpyZXR1cm5gJHtlfSxcIn5+XCI6XCJ+flwiYDtjYXNlIEZvOnJldHVybmAke2V9XCJ+flwiYDtjYXNlIEhvOnJldHVybiBmdW5jdGlvbihlKXtjb25zdCB0PWZ1bmN0aW9uKGUpe2ZvcihsZXQgdD1lLmxlbmd0aC0xO3Q+PTA7dC0tKXtjb25zdCBuPWVbdF07aWYoXCIsXCI9PT1ufHxcIltcIj09PW4pcmV0dXJuIHR9cmV0dXJuLTF9KGUpO2lmKHQ+LTEpe2NvbnN0IG49ZS5zbGljZSh0KzEpO3JldHVybiBWby5pbmNsdWRlcyhuLnRyaW0oKSk/YCR7ZX0sXCJ+flwiYDpgJHtlLnNsaWNlKDAsdCsxKX1cIn5+XCJgfXJldHVybiBlfShlKTtjYXNlIDIyOnJldHVybmAke2V9fn5cImA7Y2FzZSBXbzpyZXR1cm5gJHtlfSxcIn5+XCJgfXJldHVybiBlfShuLHRbcl0pO2ZvcihsZXQgaT1yO2k+PTA7aS0tKXtzd2l0Y2godFtpXSl7Y2FzZSBCbzpuPWAke259fWA7YnJlYWs7Y2FzZSBGbzpuPWAke259XWB9fXJldHVybiBufWZ1bmN0aW9uIEtvKGUsdCxuKXtjb25zdCByPWVbZS5sZW5ndGgtMV0saT10W25dO2lmKCEvXFxzLy50ZXN0KGkpKWlmKCdcIichPT1pfHxZbyh0LG4pKXN3aXRjaChpKXtjYXNlXCJ7XCI6IWZ1bmN0aW9uKGUsdCl7aWYoIXQpcmV0dXJuIHZvaWQgZS5wdXNoKEJvKTtpZih0PT09am8pcmV0dXJuIHZvaWQgZS5wdXNoKEJvKTt0PT09SG8mJmUucHVzaChCbyk7aWYodD09PUZvKWUucHVzaChCbyl9KGUscik7YnJlYWs7Y2FzZVwiW1wiOiFmdW5jdGlvbihlLHQpe2lmKCF0KXJldHVybiBlLnB1c2goRm8pLHZvaWQgZS5wdXNoKEhvKTtpZih0PT09am8pcmV0dXJuIGUucHVzaChGbyksdm9pZCBlLnB1c2goSG8pO3Q9PT1IbyYmKGUucHVzaChGbyksZS5wdXNoKEhvKSk7aWYodD09PUZvKWUucHVzaChGbyksZS5wdXNoKEhvKX0oZSxyKTticmVhaztjYXNlXCI6XCI6IWZ1bmN0aW9uKGUsdCl7dD09PU1vJiYoZS5wb3AoKSxlLnB1c2goam8pKX0oZSxyKTticmVhaztjYXNlXCIsXCI6IWZ1bmN0aW9uKGUsdCl7aWYodD09PWpvKXJldHVybiB2b2lkIGUucG9wKCk7aWYodD09PVVvKXJldHVybiBlLnBvcCgpLHZvaWQgZS5wb3AoKTtpZih0PT09SG8pcmV0dXJuO2lmKHQ9PT1XbyllLnBvcCgpfShlLHIpO2JyZWFrO2Nhc2VcIn1cIjohZnVuY3Rpb24oZSx0KXt0PT09Qm8mJmUucG9wKCk7dD09PWpvJiYoZS5wb3AoKSxlLnBvcCgpKTt0PT09VW8mJihlLnBvcCgpLGUucG9wKCksZS5wb3AoKSk7ZVtlLmxlbmd0aC0xXT09PWpvJiZlLnB1c2goVW8pO2VbZS5sZW5ndGgtMV09PT1IbyYmZS5wdXNoKFdvKX0oZSxyKTticmVhaztjYXNlXCJdXCI6IWZ1bmN0aW9uKGUsdCl7dD09PUZvJiZlLnBvcCgpO3Q9PT1IbyYmKGUucG9wKCksZS5wb3AoKSk7dD09PVdvJiYoZS5wb3AoKSxlLnBvcCgpLGUucG9wKCkpO2VbZS5sZW5ndGgtMV09PT1qbyYmZS5wdXNoKFVvKTtlW2UubGVuZ3RoLTFdPT09SG8mJmUucHVzaChXbyl9KGUscil9ZWxzZSFmdW5jdGlvbihlLHQpe2lmKHQ9PT14bylyZXR1cm4gZS5wb3AoKSx2b2lkIGUucHVzaChVbyk7aWYodD09PUdvKXJldHVybiBlLnBvcCgpLHZvaWQgZS5wdXNoKFdvKTtpZih0PT09am8pcmV0dXJuIHZvaWQgZS5wdXNoKHhvKTtpZih0PT09SG8pcmV0dXJuIHZvaWQgZS5wdXNoKEdvKTtpZih0PT09Qm8pcmV0dXJuIHZvaWQgZS5wdXNoKERvKTtpZih0PT09RG8pZS5wb3AoKSxlLnB1c2goMTEpfShlLHIpfWZ1bmN0aW9uIFlvKGUsdCl7cmV0dXJuXCJcXFxcXCI9PT1lW3QtMV0mJiFZbyhlLHQtMSl9ZnVuY3Rpb24gcW8oZSl7cmV0dXJuIHpvKGUsZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKylLbyh0LGUsbik7cmV0dXJuIHR9KGUpKX1mdW5jdGlvbiBabyhlLHQpe2lmKGUpdHJ5e2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZSlyZXR1cm4gdC5lbmNvZGUoZSkubGVuZ3RoO2lmKGUgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpcmV0dXJuIHQuZW5jb2RlKGUudG9TdHJpbmcoKSkubGVuZ3RoO2lmKGUgaW5zdGFuY2VvZiBGb3JtRGF0YSl7Y29uc3Qgbj1uYShlKTtyZXR1cm4gdC5lbmNvZGUobikubGVuZ3RofWlmKGUgaW5zdGFuY2VvZiBCbG9iKXJldHVybiBlLnNpemU7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBlLmJ5dGVMZW5ndGh9Y2F0Y2gobil7fX1mdW5jdGlvbiBKbyhlKXtpZighZSlyZXR1cm47Y29uc3QgdD1wYXJzZUludChlLDEwKTtyZXR1cm4gaXNOYU4odCk/dm9pZCAwOnR9ZnVuY3Rpb24gWG8oZSl7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBlP2U6ZSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcz9lLnRvU3RyaW5nKCk6ZSBpbnN0YW5jZW9mIEZvcm1EYXRhP25hKGUpOnZvaWQgMH1mdW5jdGlvbiBRbyhlLHQpe2lmKCF0KXJldHVybiBudWxsO2NvbnN0e3N0YXJ0VGltZXN0YW1wOm4sZW5kVGltZXN0YW1wOnIsdXJsOmksbWV0aG9kOm8sc3RhdHVzQ29kZTphLHJlcXVlc3Q6cyxyZXNwb25zZTpjfT10O3JldHVybnt0eXBlOmUsc3RhcnQ6bi8xZTMsZW5kOnIvMWUzLG5hbWU6aSxkYXRhOlRuKHttZXRob2Q6byxzdGF0dXNDb2RlOmEscmVxdWVzdDpzLHJlc3BvbnNlOmN9KX19ZnVuY3Rpb24gJG8oZSl7cmV0dXJue2hlYWRlcnM6e30sc2l6ZTplLF9tZXRhOnt3YXJuaW5nczpbXCJVUkxfU0tJUFBFRFwiXX19fWZ1bmN0aW9uIGVhKGUsdCxuKXtpZighdCYmMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm47aWYoIXQpcmV0dXJue2hlYWRlcnM6ZX07aWYoIW4pcmV0dXJue2hlYWRlcnM6ZSxzaXplOnR9O2NvbnN0IHI9e2hlYWRlcnM6ZSxzaXplOnR9LHtib2R5Omksd2FybmluZ3M6b309ZnVuY3Rpb24oZSl7aWYoIWV8fFwic3RyaW5nXCIhPT10eXBlb2YgZSlyZXR1cm57Ym9keTplLHdhcm5pbmdzOltdfTtjb25zdCB0PWUubGVuZ3RoPnZyO2lmKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZVswXSxuPWVbZS5sZW5ndGgtMV07cmV0dXJuXCJbXCI9PT10JiZcIl1cIj09PW58fFwie1wiPT09dCYmXCJ9XCI9PT1ufShlKSl0cnl7Y29uc3Qgbj10P3FvKGUuc2xpY2UoMCx2cikpOmU7cmV0dXJue2JvZHk6SlNPTi5wYXJzZShuKSx3YXJuaW5nczp0P1tcIkpTT05fVFJVTkNBVEVEXCJdOltdfX1jYXRjaChuKXtyZXR1cm57Ym9keTp0P2Ake2Uuc2xpY2UoMCx2cil9XFx1MjAyNmA6ZSx3YXJuaW5nczp0P1tcIklOVkFMSURfSlNPTlwiLFwiVEVYVF9UUlVOQ0FURURcIl06W1wiSU5WQUxJRF9KU09OXCJdfX1yZXR1cm57Ym9keTp0P2Ake2Uuc2xpY2UoMCx2cil9XFx1MjAyNmA6ZSx3YXJuaW5nczp0P1tcIlRFWFRfVFJVTkNBVEVEXCJdOltdfX0obik7cmV0dXJuIHIuYm9keT1pLG8ubGVuZ3RoPjAmJihyLl9tZXRhPXt3YXJuaW5nczpvfSkscn1mdW5jdGlvbiB0YShlLHQpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKChuLHIpPT57Y29uc3QgaT1yLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQuaW5jbHVkZXMoaSkmJmVbcl0mJihuW2ldPWVbcl0pLG59KSx7fSl9ZnVuY3Rpb24gbmEoZSl7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoZSkudG9TdHJpbmcoKX1mdW5jdGlvbiByYShlLHQpe3JldHVybiBmdW5jdGlvbihlLHQ9W10sbj0hMSl7cmV0dXJuIHQuc29tZSgodD0+Rm4oZSx0LG4pKSl9KGUsdCl9YXN5bmMgZnVuY3Rpb24gaWEoZSx0LG4pe3RyeXtjb25zdCByPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUsdCxuKXtjb25zdHtzdGFydFRpbWVzdGFtcDpyLGVuZFRpbWVzdGFtcDppfT10LHt1cmw6byxtZXRob2Q6YSxzdGF0dXNfY29kZTpzPTAscmVxdWVzdF9ib2R5X3NpemU6YyxyZXNwb25zZV9ib2R5X3NpemU6dX09ZS5kYXRhLGw9cmEobyxuLm5ldHdvcmtEZXRhaWxBbGxvd1VybHMpLGQ9bD9mdW5jdGlvbih7bmV0d29ya0NhcHR1cmVCb2RpZXM6ZSxuZXR3b3JrUmVxdWVzdEhlYWRlcnM6dH0sbixyKXtjb25zdCBpPWZ1bmN0aW9uKGUsdCl7aWYoMT09PWUubGVuZ3RoJiZcInN0cmluZ1wiIT09dHlwZW9mIGVbMF0pcmV0dXJuIHNhKGVbMF0sdCk7aWYoMj09PWUubGVuZ3RoKXJldHVybiBzYShlWzFdLHQpO3JldHVybnt9fShuLHQpO2lmKCFlKXJldHVybiBlYShpLHIsdm9pZCAwKTtjb25zdCBvPVhvKG9hKG4pKTtyZXR1cm4gZWEoaSxyLG8pfShuLHQuaW5wdXQsYyk6JG8oYykscD1hd2FpdCBhc3luYyBmdW5jdGlvbihlLHtuZXR3b3JrQ2FwdHVyZUJvZGllczp0LHRleHRFbmNvZGVyOm4sbmV0d29ya1Jlc3BvbnNlSGVhZGVyczpyfSxpLG8pe2lmKCFlJiZ2b2lkIDAhPT1vKXJldHVybiAkbyhvKTtjb25zdCBhPWFhKGkuaGVhZGVycyxyKTtpZighdCYmdm9pZCAwIT09bylyZXR1cm4gZWEoYSxvLHZvaWQgMCk7dHJ5e2NvbnN0IHI9aS5jbG9uZSgpLHM9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBhd2FpdCBlLnRleHQoKX1jYXRjaCh0KXtyZXR1cm59fShyKSxjPXMmJnMubGVuZ3RoJiZ2b2lkIDA9PT1vP1pvKHMsbik6bztyZXR1cm4gZT9lYShhLGMsdD9zOnZvaWQgMCk6JG8oYyl9Y2F0Y2gocyl7cmV0dXJuIGVhKGEsbyx2b2lkIDApfX0obCxuLHQucmVzcG9uc2UsdSk7cmV0dXJue3N0YXJ0VGltZXN0YW1wOnIsZW5kVGltZXN0YW1wOmksdXJsOm8sbWV0aG9kOmEsc3RhdHVzQ29kZTpzLHJlcXVlc3Q6ZCxyZXNwb25zZTpwfX0oZSx0LG4pLGk9UW8oXCJyZXNvdXJjZS5mZXRjaFwiLHIpO0xvKG4ucmVwbGF5LGkpfWNhdGNoKHIpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5lcnJvcihcIltSZXBsYXldIEZhaWxlZCB0byBjYXB0dXJlIGZldGNoIGJyZWFkY3J1bWJcIixyKX19ZnVuY3Rpb24gb2EoZT1bXSl7aWYoMj09PWUubGVuZ3RoJiZcIm9iamVjdFwiPT09dHlwZW9mIGVbMV0pcmV0dXJuIGVbMV0uYm9keX1mdW5jdGlvbiBhYShlLHQpe2NvbnN0IG49e307cmV0dXJuIHQuZm9yRWFjaCgodD0+e2UuZ2V0KHQpJiYoblt0XT1lLmdldCh0KSl9KSksbn1mdW5jdGlvbiBzYShlLHQpe2lmKCFlKXJldHVybnt9O2NvbnN0IG49ZS5oZWFkZXJzO3JldHVybiBuP24gaW5zdGFuY2VvZiBIZWFkZXJzP2FhKG4sdCk6QXJyYXkuaXNBcnJheShuKT97fTp0YShuLHQpOnt9fWFzeW5jIGZ1bmN0aW9uIGNhKGUsdCxuKXt0cnl7Y29uc3Qgcj1mdW5jdGlvbihlLHQsbil7Y29uc3R7c3RhcnRUaW1lc3RhbXA6cixlbmRUaW1lc3RhbXA6aSxpbnB1dDpvLHhocjphfT10LHt1cmw6cyxtZXRob2Q6YyxzdGF0dXNfY29kZTp1PTAscmVxdWVzdF9ib2R5X3NpemU6bCxyZXNwb25zZV9ib2R5X3NpemU6ZH09ZS5kYXRhO2lmKCFzKXJldHVybiBudWxsO2lmKCFyYShzLG4ubmV0d29ya0RldGFpbEFsbG93VXJscykpe3JldHVybntzdGFydFRpbWVzdGFtcDpyLGVuZFRpbWVzdGFtcDppLHVybDpzLG1ldGhvZDpjLHN0YXR1c0NvZGU6dSxyZXF1ZXN0OiRvKGwpLHJlc3BvbnNlOiRvKGQpfX1jb25zdCBwPWEuX19zZW50cnlfeGhyX3YyX18sZj1wP3RhKHAucmVxdWVzdF9oZWFkZXJzLG4ubmV0d29ya1JlcXVlc3RIZWFkZXJzKTp7fSxoPXRhKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTtpZighdClyZXR1cm57fTtyZXR1cm4gdC5zcGxpdChcIlxcclxcblwiKS5yZWR1Y2UoKChlLHQpPT57Y29uc3RbbixyXT10LnNwbGl0KFwiOiBcIik7cmV0dXJuIGVbbi50b0xvd2VyQ2FzZSgpXT1yLGV9KSx7fSl9KGEpLG4ubmV0d29ya1Jlc3BvbnNlSGVhZGVycyksZz1lYShmLGwsbi5uZXR3b3JrQ2FwdHVyZUJvZGllcz9YbyhvKTp2b2lkIDApLG09ZWEoaCxkLG4ubmV0d29ya0NhcHR1cmVCb2RpZXM/dC54aHIucmVzcG9uc2VUZXh0OnZvaWQgMCk7cmV0dXJue3N0YXJ0VGltZXN0YW1wOnIsZW5kVGltZXN0YW1wOmksdXJsOnMsbWV0aG9kOmMsc3RhdHVzQ29kZTp1LHJlcXVlc3Q6ZyxyZXNwb25zZTptfX0oZSx0LG4pLGk9UW8oXCJyZXNvdXJjZS54aHJcIixyKTtMbyhuLnJlcGxheSxpKX1jYXRjaChyKXsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmc24uZXJyb3IoXCJbUmVwbGF5XSBGYWlsZWQgdG8gY2FwdHVyZSBmZXRjaCBicmVhZGNydW1iXCIscil9fWZ1bmN0aW9uIHVhKGUpe2NvbnN0IHQ9TG4oKS5nZXRDbGllbnQoKTt0cnl7Y29uc3Qgbj1uZXcgVGV4dEVuY29kZXIse25ldHdvcmtEZXRhaWxBbGxvd1VybHM6cixuZXR3b3JrQ2FwdHVyZUJvZGllczppLG5ldHdvcmtSZXF1ZXN0SGVhZGVyczpvLG5ldHdvcmtSZXNwb25zZUhlYWRlcnM6YX09ZS5nZXRPcHRpb25zKCkscz17cmVwbGF5OmUsdGV4dEVuY29kZXI6bixuZXR3b3JrRGV0YWlsQWxsb3dVcmxzOnIsbmV0d29ya0NhcHR1cmVCb2RpZXM6aSxuZXR3b3JrUmVxdWVzdEhlYWRlcnM6byxuZXR3b3JrUmVzcG9uc2VIZWFkZXJzOmF9O3QmJnQub24/dC5vbihcImJlZm9yZUFkZEJyZWFkY3J1bWJcIiwoKGUsdCk9PmZ1bmN0aW9uKGUsdCxuKXtpZighdC5kYXRhKXJldHVybjt0cnl7KGZ1bmN0aW9uKGUpe3JldHVyblwieGhyXCI9PT1lLmNhdGVnb3J5fSkodCkmJmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLnhocn0obikmJighZnVuY3Rpb24oZSx0LG4pe2NvbnN0e3hocjpyLGlucHV0Oml9PXQsbz1abyhpLG4udGV4dEVuY29kZXIpLGE9ci5nZXRSZXNwb25zZUhlYWRlcihcImNvbnRlbnQtbGVuZ3RoXCIpP0pvKHIuZ2V0UmVzcG9uc2VIZWFkZXIoXCJjb250ZW50LWxlbmd0aFwiKSk6Wm8oci5yZXNwb25zZSxuLnRleHRFbmNvZGVyKTt2b2lkIDAhPT1vJiYoZS5kYXRhLnJlcXVlc3RfYm9keV9zaXplPW8pLHZvaWQgMCE9PWEmJihlLmRhdGEucmVzcG9uc2VfYm9keV9zaXplPWEpfSh0LG4sZSksY2EodCxuLGUpKSxmdW5jdGlvbihlKXtyZXR1cm5cImZldGNoXCI9PT1lLmNhdGVnb3J5fSh0KSYmZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUucmVzcG9uc2V9KG4pJiYoIWZ1bmN0aW9uKGUsdCxuKXtjb25zdHtpbnB1dDpyLHJlc3BvbnNlOml9PXQsbz1abyhvYShyKSxuLnRleHRFbmNvZGVyKSxhPWk/Sm8oaS5oZWFkZXJzLmdldChcImNvbnRlbnQtbGVuZ3RoXCIpKTp2b2lkIDA7dm9pZCAwIT09byYmKGUuZGF0YS5yZXF1ZXN0X2JvZHlfc2l6ZT1vKSx2b2lkIDAhPT1hJiYoZS5kYXRhLnJlc3BvbnNlX2JvZHlfc2l6ZT1hKX0odCxuLGUpLGlhKHQsbixlKSl9Y2F0Y2gocil7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLndhcm4oXCJFcnJvciB3aGVuIGVucmljaGluZyBuZXR3b3JrIGJyZWFkY3J1bWJcIil9fShzLGUsdCkpKToodHIoXCJmZXRjaFwiLGZ1bmN0aW9uKGUpe3JldHVybiB0PT57aWYoIWUuaXNFbmFibGVkKCkpcmV0dXJuO2NvbnN0IG49ZnVuY3Rpb24oZSl7Y29uc3R7c3RhcnRUaW1lc3RhbXA6dCxlbmRUaW1lc3RhbXA6bixmZXRjaERhdGE6cixyZXNwb25zZTppfT1lO2lmKCFuKXJldHVybiBudWxsO2NvbnN0e21ldGhvZDpvLHVybDphfT1yO3JldHVybnt0eXBlOlwicmVzb3VyY2UuZmV0Y2hcIixzdGFydDp0LzFlMyxlbmQ6bi8xZTMsbmFtZTphLGRhdGE6e21ldGhvZDpvLHN0YXR1c0NvZGU6aSYmaS5zdGF0dXN9fX0odCk7TG8oZSxuKX19KGUpKSx0cihcInhoclwiLGZ1bmN0aW9uKGUpe3JldHVybiB0PT57aWYoIWUuaXNFbmFibGVkKCkpcmV0dXJuO2NvbnN0IG49ZnVuY3Rpb24oZSl7Y29uc3R7c3RhcnRUaW1lc3RhbXA6dCxlbmRUaW1lc3RhbXA6bix4aHI6cn09ZSxpPXIuX19zZW50cnlfeGhyX3YyX187aWYoIXR8fCFufHwhaSlyZXR1cm4gbnVsbDtjb25zdHttZXRob2Q6byx1cmw6YSxzdGF0dXNfY29kZTpzfT1pO3JldHVybiB2b2lkIDA9PT1hP251bGw6e3R5cGU6XCJyZXNvdXJjZS54aHJcIixuYW1lOmEsc3RhcnQ6dC8xZTMsZW5kOm4vMWUzLGRhdGE6e21ldGhvZDpvLHN0YXR1c0NvZGU6c319fSh0KTtMbyhlLG4pfX0oZSkpKX1jYXRjaChuKXt9fWxldCBsYT1udWxsO2NvbnN0IGRhPWU9PnQ9PntpZighZS5pc0VuYWJsZWQoKSlyZXR1cm47Y29uc3Qgbj1mdW5jdGlvbihlKXtjb25zdCB0PWUuZ2V0TGFzdEJyZWFkY3J1bWImJmUuZ2V0TGFzdEJyZWFkY3J1bWIoKTtpZihsYT09PXR8fCF0KXJldHVybiBudWxsO2lmKGxhPXQsdC5jYXRlZ29yeSYmKFtcImZldGNoXCIsXCJ4aHJcIixcInNlbnRyeS5ldmVudFwiLFwic2VudHJ5LnRyYW5zYWN0aW9uXCJdLmluY2x1ZGVzKHQuY2F0ZWdvcnkpfHx0LmNhdGVnb3J5LnN0YXJ0c1dpdGgoXCJ1aS5cIikpKXJldHVybiBudWxsO2lmKFwiY29uc29sZVwiPT09dC5jYXRlZ29yeSlyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmRhdGEmJmUuZGF0YS5hcmd1bWVudHM7aWYoIUFycmF5LmlzQXJyYXkodCl8fDA9PT10Lmxlbmd0aClyZXR1cm4geW8oZSk7bGV0IG49ITE7Y29uc3Qgcj10Lm1hcCgoZT0+e2lmKCFlKXJldHVybiBlO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZSlyZXR1cm4gZS5sZW5ndGg+X3I/KG49ITAsYCR7ZS5zbGljZSgwLF9yKX1cXHUyMDI2YCk6ZTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGUpdHJ5e2NvbnN0IHQ9V24oZSw3KSxyPUpTT04uc3RyaW5naWZ5KHQpO2lmKHIubGVuZ3RoPl9yKXtjb25zdCBlPXFvKHIuc2xpY2UoMCxfcikpLHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gbj0hMCx0fXJldHVybiB0fWNhdGNoKHQpe31yZXR1cm4gZX0pKTtyZXR1cm4geW8oey4uLmUsZGF0YTp7Li4uZS5kYXRhLGFyZ3VtZW50czpyLC4uLm4/e19tZXRhOnt3YXJuaW5nczpbXCJDT05TT0xFX0FSR19UUlVOQ0FURURcIl19fTp7fX19KX0odCk7cmV0dXJuIHlvKHQpfSh0KTtuJiZUbyhlLG4pfTtmdW5jdGlvbiBwYShlKXtjb25zdCB0PUxuKCkuZ2V0U2NvcGUoKSxuPUxuKCkuZ2V0Q2xpZW50KCk7dmFyIHI7dCYmdC5hZGRTY29wZUxpc3RlbmVyKGRhKGUpKSx0cihcImRvbVwiLEFvKGUpKSx0cihcImhpc3RvcnlcIixSbyhlKSksdWEoZSkscj1rbyhlLCFmYShuKSksTm4oKS5wdXNoKHIpLGZhKG4pJiYobi5vbihcImFmdGVyU2VuZEV2ZW50XCIsYm8oZSkpLG4ub24oXCJjcmVhdGVEc2NcIiwodD0+e2NvbnN0IG49ZS5nZXRTZXNzaW9uSWQoKTtuJiZlLmlzRW5hYmxlZCgpJiZcInNlc3Npb25cIj09PWUucmVjb3JkaW5nTW9kZSYmKHQucmVwbGF5X2lkPW4pfSkpKX1mdW5jdGlvbiBmYShlKXtyZXR1cm4hKCFlfHwhZS5vbil9ZnVuY3Rpb24gaGEoZSl7Y29uc3R7anNIZWFwU2l6ZUxpbWl0OnQsdG90YWxKU0hlYXBTaXplOm4sdXNlZEpTSGVhcFNpemU6cn09ZSxpPURhdGUubm93KCkvMWUzO3JldHVybnt0eXBlOlwibWVtb3J5XCIsbmFtZTpcIm1lbW9yeVwiLHN0YXJ0OmksZW5kOmksZGF0YTp7bWVtb3J5Ontqc0hlYXBTaXplTGltaXQ6dCx0b3RhbEpTSGVhcFNpemU6bix1c2VkSlNIZWFwU2l6ZTpyfX19fWNvbnN0IGdhPXtyZXNvdXJjZTpmdW5jdGlvbihlKXtjb25zdHtlbnRyeVR5cGU6dCxpbml0aWF0b3JUeXBlOm4sbmFtZTpyLHJlc3BvbnNlRW5kOmksc3RhcnRUaW1lOm8sZGVjb2RlZEJvZHlTaXplOmEsZW5jb2RlZEJvZHlTaXplOnMscmVzcG9uc2VTdGF0dXM6Yyx0cmFuc2ZlclNpemU6dX09ZTtpZihbXCJmZXRjaFwiLFwieG1saHR0cHJlcXVlc3RcIl0uaW5jbHVkZXMobikpcmV0dXJuIG51bGw7cmV0dXJue3R5cGU6YCR7dH0uJHtufWAsc3RhcnQ6dmEobyksZW5kOnZhKGkpLG5hbWU6cixkYXRhOntzaXplOnUsc3RhdHVzQ29kZTpjLGRlY29kZWRCb2R5U2l6ZTphLGVuY29kZWRCb2R5U2l6ZTpzfX19LHBhaW50OmZ1bmN0aW9uKGUpe2NvbnN0e2R1cmF0aW9uOnQsZW50cnlUeXBlOm4sbmFtZTpyLHN0YXJ0VGltZTppfT1lLG89dmEoaSk7cmV0dXJue3R5cGU6bixuYW1lOnIsc3RhcnQ6byxlbmQ6byt0LGRhdGE6dm9pZCAwfX0sbmF2aWdhdGlvbjpmdW5jdGlvbihlKXtjb25zdHtlbnRyeVR5cGU6dCxuYW1lOm4sZGVjb2RlZEJvZHlTaXplOnIsZHVyYXRpb246aSxkb21Db21wbGV0ZTpvLGVuY29kZWRCb2R5U2l6ZTphLGRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0OnMsZG9tQ29udGVudExvYWRlZEV2ZW50RW5kOmMsZG9tSW50ZXJhY3RpdmU6dSxsb2FkRXZlbnRTdGFydDpsLGxvYWRFdmVudEVuZDpkLHJlZGlyZWN0Q291bnQ6cCxzdGFydFRpbWU6Zix0cmFuc2ZlclNpemU6aCx0eXBlOmd9PWU7aWYoMD09PWkpcmV0dXJuIG51bGw7cmV0dXJue3R5cGU6YCR7dH0uJHtnfWAsc3RhcnQ6dmEoZiksZW5kOnZhKG8pLG5hbWU6bixkYXRhOntzaXplOmgsZGVjb2RlZEJvZHlTaXplOnIsZW5jb2RlZEJvZHlTaXplOmEsZHVyYXRpb246aSxkb21JbnRlcmFjdGl2ZTp1LGRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0OnMsZG9tQ29udGVudExvYWRlZEV2ZW50RW5kOmMsbG9hZEV2ZW50U3RhcnQ6bCxsb2FkRXZlbnRFbmQ6ZCxkb21Db21wbGV0ZTpvLHJlZGlyZWN0Q291bnQ6cH19fSxcImxhcmdlc3QtY29udGVudGZ1bC1wYWludFwiOmZ1bmN0aW9uKGUpe2NvbnN0e2VudHJ5VHlwZTp0LHN0YXJ0VGltZTpuLHNpemU6cn09ZTtsZXQgaT0wO2lmKGhyLnBlcmZvcm1hbmNlKXtjb25zdCBlPWhyLnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoXCJuYXZpZ2F0aW9uXCIpWzBdO2k9ZSYmZS5hY3RpdmF0aW9uU3RhcnR8fDB9Y29uc3Qgbz1NYXRoLm1heChuLWksMCksYT12YShpKStvLzFlMztyZXR1cm57dHlwZTp0LG5hbWU6dCxzdGFydDphLGVuZDphLGRhdGE6e3ZhbHVlOm8sc2l6ZTpyLG5vZGVJZDpRaS5taXJyb3IuZ2V0SWQoZS5lbGVtZW50KX19fX07ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIHZvaWQgMD09PWdhW2UuZW50cnlUeXBlXT9udWxsOmdhW2UuZW50cnlUeXBlXShlKX1mdW5jdGlvbiB2YShlKXtyZXR1cm4oKG5uLloxfHxoci5wZXJmb3JtYW5jZS50aW1lT3JpZ2luKStlKS8xZTN9dmFyIF9hO2Z1bmN0aW9uIEVhKGUpe2xldCB0PSExO3JldHVybihuLHIpPT57aWYoIWUuY2hlY2tBbmRIYW5kbGVFeHBpcmVkU2Vzc2lvbigpKXJldHVybiB2b2lkKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi53YXJuKFwiW1JlcGxheV0gUmVjZWl2ZWQgcmVwbGF5IGV2ZW50IGFmdGVyIHNlc3Npb24gZXhwaXJlZC5cIikpO2NvbnN0IGk9cnx8IXQ7dD0hMCxlLmFkZFVwZGF0ZSgoKCk9PntpZihcImJ1ZmZlclwiPT09ZS5yZWNvcmRpbmdNb2RlJiZpJiZlLnNldEluaXRpYWxTdGF0ZSgpLHZvKGUsbixpKSwhaSlyZXR1cm4hMTtpZihmdW5jdGlvbihlLHQpe2lmKCF0fHwhZS5zZXNzaW9ufHwwIT09ZS5zZXNzaW9uLnNlZ21lbnRJZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO3ZvKGUsZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmdldE9wdGlvbnMoKTtyZXR1cm57dHlwZTpfYS5DdXN0b20sdGltZXN0YW1wOkRhdGUubm93KCksZGF0YTp7dGFnOlwib3B0aW9uc1wiLHBheWxvYWQ6e3Nlc3Npb25TYW1wbGVSYXRlOnQuc2Vzc2lvblNhbXBsZVJhdGUsZXJyb3JTYW1wbGVSYXRlOnQuZXJyb3JTYW1wbGVSYXRlLHVzZUNvbXByZXNzaW9uT3B0aW9uOnQudXNlQ29tcHJlc3Npb24sYmxvY2tBbGxNZWRpYTp0LmJsb2NrQWxsTWVkaWEsbWFza0FsbFRleHQ6dC5tYXNrQWxsVGV4dCxtYXNrQWxsSW5wdXRzOnQubWFza0FsbElucHV0cyx1c2VDb21wcmVzc2lvbjohIWUuZXZlbnRCdWZmZXImJlwid29ya2VyXCI9PT1lLmV2ZW50QnVmZmVyLnR5cGUsbmV0d29ya0RldGFpbEhhc1VybHM6dC5uZXR3b3JrRGV0YWlsQWxsb3dVcmxzLmxlbmd0aD4wLG5ldHdvcmtDYXB0dXJlQm9kaWVzOnQubmV0d29ya0NhcHR1cmVCb2RpZXMsbmV0d29ya1JlcXVlc3RIYXNIZWFkZXJzOnQubmV0d29ya1JlcXVlc3RIZWFkZXJzLmxlbmd0aD4wLG5ldHdvcmtSZXNwb25zZUhhc0hlYWRlcnM6dC5uZXR3b3JrUmVzcG9uc2VIZWFkZXJzLmxlbmd0aD4wfX19fShlKSwhMSl9KGUsaSksZS5zZXNzaW9uJiZlLnNlc3Npb24ucHJldmlvdXNTZXNzaW9uSWQpcmV0dXJuITA7aWYoXCJidWZmZXJcIj09PWUucmVjb3JkaW5nTW9kZSYmZS5zZXNzaW9uJiZlLmV2ZW50QnVmZmVyKXtjb25zdCB0PWUuZXZlbnRCdWZmZXIuZ2V0RWFybGllc3RUaW1lc3RhbXAoKTt0JiYoZS5zZXNzaW9uLnN0YXJ0ZWQ9dCxlLmdldE9wdGlvbnMoKS5zdGlja3lTZXNzaW9uJiZmbyhlLnNlc3Npb24pKX1yZXR1cm5cInNlc3Npb25cIj09PWUucmVjb3JkaW5nTW9kZSYmZS5mbHVzaEltbWVkaWF0ZSgpLCEwfSkpfX1mdW5jdGlvbiBiYShlLHQsbixyKXtyZXR1cm4gZnVuY3Rpb24oZSx0PVtdKXtyZXR1cm5bZSx0XX0oZnVuY3Rpb24oZSx0LG4scil7Y29uc3QgaT1lLnNka1Byb2Nlc3NpbmdNZXRhZGF0YSYmZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGEuZHluYW1pY1NhbXBsaW5nQ29udGV4dDtyZXR1cm57ZXZlbnRfaWQ6ZS5ldmVudF9pZCxzZW50X2F0OihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSwuLi50JiZ7c2RrOnR9LC4uLiEhbiYme2RzbjpkcihyKX0sLi4uaSYme3RyYWNlOlRuKHsuLi5pfSl9fX0oZSxmdW5jdGlvbihlKXtpZighZXx8IWUuc2RrKXJldHVybjtjb25zdHtuYW1lOnQsdmVyc2lvbjpufT1lLnNkaztyZXR1cm57bmFtZTp0LHZlcnNpb246bn19KGUpLHIsbiksW1t7dHlwZTpcInJlcGxheV9ldmVudFwifSxlXSxbe3R5cGU6XCJyZXBsYXlfcmVjb3JkaW5nXCIsbGVuZ3RoOlwic3RyaW5nXCI9PT10eXBlb2YgdD8obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUodCkubGVuZ3RoOnQubGVuZ3RofSx0XV0pfWFzeW5jIGZ1bmN0aW9uIFNhKHtyZWNvcmRpbmdEYXRhOmUscmVwbGF5SWQ6dCxzZWdtZW50SWQ6bixldmVudENvbnRleHQ6cix0aW1lc3RhbXA6aSxzZXNzaW9uOm99KXtjb25zdCBhPWZ1bmN0aW9uKHtyZWNvcmRpbmdEYXRhOmUsaGVhZGVyczp0fSl7bGV0IG47Y29uc3Qgcj1gJHtKU09OLnN0cmluZ2lmeSh0KX1cXG5gO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZSluPWAke3J9JHtlfWA7ZWxzZXtjb25zdCB0PShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShyKTtuPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoK2UubGVuZ3RoKSxuLnNldCh0KSxuLnNldChlLHQubGVuZ3RoKX1yZXR1cm4gbn0oe3JlY29yZGluZ0RhdGE6ZSxoZWFkZXJzOntzZWdtZW50X2lkOm59fSkse3VybHM6cyxlcnJvcklkczpjLHRyYWNlSWRzOnUsaW5pdGlhbFRpbWVzdGFtcDpsfT1yLGQ9TG4oKSxwPWQuZ2V0Q2xpZW50KCksZj1kLmdldFNjb3BlKCksaD1wJiZwLmdldFRyYW5zcG9ydCgpLGc9cCYmcC5nZXREc24oKTtpZighcHx8IWZ8fCFofHwhZ3x8IW8uc2FtcGxlZClyZXR1cm47Y29uc3QgbT17dHlwZTpcInJlcGxheV9ldmVudFwiLHJlcGxheV9zdGFydF90aW1lc3RhbXA6bC8xZTMsdGltZXN0YW1wOmkvMWUzLGVycm9yX2lkczpjLHRyYWNlX2lkczp1LHVybHM6cyxyZXBsYXlfaWQ6dCxzZWdtZW50X2lkOm4scmVwbGF5X3R5cGU6by5zYW1wbGVkfSx2PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKHtjbGllbnQ6ZSxzY29wZTp0LHJlcGxheUlkOm4sZXZlbnQ6cn0pe2NvbnN0IGk9XCJvYmplY3RcIiE9PXR5cGVvZiBlLl9pbnRlZ3JhdGlvbnN8fG51bGw9PT1lLl9pbnRlZ3JhdGlvbnN8fEFycmF5LmlzQXJyYXkoZS5faW50ZWdyYXRpb25zKT92b2lkIDA6T2JqZWN0LmtleXMoZS5faW50ZWdyYXRpb25zKSxvPWF3YWl0IHpuKGUuZ2V0T3B0aW9ucygpLHIse2V2ZW50X2lkOm4saW50ZWdyYXRpb25zOml9LHQpO2lmKCFvKXJldHVybiBudWxsO28ucGxhdGZvcm09by5wbGF0Zm9ybXx8XCJqYXZhc2NyaXB0XCI7Y29uc3QgYT1lLmdldFNka01ldGFkYXRhJiZlLmdldFNka01ldGFkYXRhKCkse25hbWU6cyx2ZXJzaW9uOmN9PWEmJmEuc2RrfHx7fTtyZXR1cm4gby5zZGs9ey4uLm8uc2RrLG5hbWU6c3x8XCJzZW50cnkuamF2YXNjcmlwdC51bmtub3duXCIsdmVyc2lvbjpjfHxcIjAuMC4wXCJ9LG99KHtzY29wZTpmLGNsaWVudDpwLHJlcGxheUlkOnQsZXZlbnQ6bX0pO2lmKCF2KXJldHVybiBwLnJlY29yZERyb3BwZWRFdmVudChcImV2ZW50X3Byb2Nlc3NvclwiLFwicmVwbGF5XCIsbSksdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmc24ubG9nKFwiQW4gZXZlbnQgcHJvY2Vzc29yIHJldHVybmVkIGBudWxsYCwgd2lsbCBub3Qgc2VuZCBldmVudC5cIikpO2NvbnN0IF89YmEodixhLGcscC5nZXRPcHRpb25zKCkudHVubmVsKTtsZXQgRTt0cnl7RT1hd2FpdCBoLnNlbmQoXyl9Y2F0Y2goYil7Y29uc3QgZT1uZXcgRXJyb3IobXIpO3RyeXtlLmNhdXNlPWJ9Y2F0Y2goUyl7fXRocm93IGV9aWYoIUUpcmV0dXJuIEU7aWYoXCJudW1iZXJcIj09PXR5cGVvZiBFLnN0YXR1c0NvZGUmJihFLnN0YXR1c0NvZGU8MjAwfHxFLnN0YXR1c0NvZGU+PTMwMCkpdGhyb3cgbmV3IHlhKEUuc3RhdHVzQ29kZSk7cmV0dXJuIEV9IWZ1bmN0aW9uKGUpe2VbZS5Eb21Db250ZW50TG9hZGVkPTBdPVwiRG9tQ29udGVudExvYWRlZFwiO2VbZS5Mb2FkPTFdPVwiTG9hZFwiO2VbZS5GdWxsU25hcHNob3Q9Ml09XCJGdWxsU25hcHNob3RcIjtlW2UuSW5jcmVtZW50YWxTbmFwc2hvdD0zXT1cIkluY3JlbWVudGFsU25hcHNob3RcIjtlW2UuTWV0YT00XT1cIk1ldGFcIjtlW2UuQ3VzdG9tPTVdPVwiQ3VzdG9tXCI7ZVtlLlBsdWdpbj02XT1cIlBsdWdpblwifShfYXx8KF9hPXt9KSk7Y2xhc3MgeWEgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihgVHJhbnNwb3J0IHJldHVybmVkIHN0YXR1cyBjb2RlICR7ZX1gKX19YXN5bmMgZnVuY3Rpb24gVGEoZSx0PXtjb3VudDowLGludGVydmFsOjVlM30pe2NvbnN0e3JlY29yZGluZ0RhdGE6bixvcHRpb25zOnJ9PWU7dmFyIGksbztpZihuLmxlbmd0aCl0cnl7cmV0dXJuIGF3YWl0IFNhKGUpLCEwfWNhdGNoKGEpe2lmKGEgaW5zdGFuY2VvZiB5YSl0aHJvdyBhO2lmKGk9XCJSZXBsYXlzXCIsbz17X3JldHJ5Q291bnQ6dC5jb3VudH0sTG4oKS5zZXRDb250ZXh0KGksbyksKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnIuX2V4cGVyaW1lbnRzJiZyLl9leHBlcmltZW50cy5jYXB0dXJlRXhjZXB0aW9ucyYmeG4oYSksdC5jb3VudD49Myl7Y29uc3QgZT1uZXcgRXJyb3IoXCJVbmFibGUgdG8gc2VuZCBSZXBsYXkgLSBtYXggcmV0cmllcyBleGNlZWRlZFwiKTt0cnl7ZS5jYXVzZT1hfWNhdGNoKHMpe310aHJvdyBlfXJldHVybiB0LmludGVydmFsKj0rK3QuY291bnQsYXdhaXQgbmV3IFByb21pc2UoKChuLHIpPT57c2V0VGltZW91dCgoYXN5bmMoKT0+e3RyeXthd2FpdCBUYShlLHQpLG4oITApfWNhdGNoKGEpe3IoYSl9fSksdC5pbnRlcnZhbCl9KSl9fWNsYXNzIElhe19faW5pdCgpe3RoaXMuZXZlbnRCdWZmZXI9bnVsbH1fX2luaXQyKCl7dGhpcy5wZXJmb3JtYW5jZUV2ZW50cz1bXX1fX2luaXQzKCl7dGhpcy5yZWNvcmRpbmdNb2RlPVwic2Vzc2lvblwifV9faW5pdDQoKXt0aGlzLnRpbWVvdXRzPXtzZXNzaW9uSWRsZVBhdXNlOjNlNSxzZXNzaW9uSWRsZUV4cGlyZTo5ZTUsbWF4U2Vzc2lvbkxpZmU6MzZlNX19X19pbml0NSgpe3RoaXMuX3BlcmZvcm1hbmNlT2JzZXJ2ZXI9bnVsbH1fX2luaXQ2KCl7dGhpcy5fZmx1c2hMb2NrPW51bGx9X19pbml0Nygpe3RoaXMuX2xhc3RBY3Rpdml0eT1EYXRlLm5vdygpfV9faW5pdDgoKXt0aGlzLl9pc0VuYWJsZWQ9ITF9X19pbml0OSgpe3RoaXMuX2lzUGF1c2VkPSExfV9faW5pdDEwKCl7dGhpcy5faGFzSW5pdGlhbGl6ZWRDb3JlTGlzdGVuZXJzPSExfV9faW5pdDExKCl7dGhpcy5fc3RvcFJlY29yZGluZz1udWxsfV9faW5pdDEyKCl7dGhpcy5fY29udGV4dD17ZXJyb3JJZHM6bmV3IFNldCx0cmFjZUlkczpuZXcgU2V0LHVybHM6W10saW5pdGlhbFRpbWVzdGFtcDpEYXRlLm5vdygpLGluaXRpYWxVcmw6XCJcIn19Y29uc3RydWN0b3Ioe29wdGlvbnM6ZSxyZWNvcmRpbmdPcHRpb25zOnR9KXtJYS5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksSWEucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKSxJYS5wcm90b3R5cGUuX19pbml0My5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyksSWEucHJvdG90eXBlLl9faW5pdDUuY2FsbCh0aGlzKSxJYS5wcm90b3R5cGUuX19pbml0Ni5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQ3LmNhbGwodGhpcyksSWEucHJvdG90eXBlLl9faW5pdDguY2FsbCh0aGlzKSxJYS5wcm90b3R5cGUuX19pbml0OS5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxMC5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxMS5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxMi5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxMy5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxNC5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxNS5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxNi5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxNy5jYWxsKHRoaXMpLElhLnByb3RvdHlwZS5fX2luaXQxOC5jYWxsKHRoaXMpLHRoaXMuX3JlY29yZGluZ09wdGlvbnM9dCx0aGlzLl9vcHRpb25zPWUsdGhpcy5fZGVib3VuY2VkRmx1c2g9ZnVuY3Rpb24oZSx0LG4pe2xldCByLGksbztjb25zdCBhPW4mJm4ubWF4V2FpdD9NYXRoLm1heChuLm1heFdhaXQsdCk6MDtmdW5jdGlvbiBzKCl7cmV0dXJuIGMoKSxyPWUoKSxyfWZ1bmN0aW9uIGMoKXt2b2lkIDAhPT1pJiZjbGVhclRpbWVvdXQoaSksdm9pZCAwIT09byYmY2xlYXJUaW1lb3V0KG8pLGk9bz12b2lkIDB9ZnVuY3Rpb24gdSgpe3JldHVybiBpJiZjbGVhclRpbWVvdXQoaSksaT1zZXRUaW1lb3V0KHMsdCksYSYmdm9pZCAwPT09byYmKG89c2V0VGltZW91dChzLGEpKSxyfXJldHVybiB1LmNhbmNlbD1jLHUuZmx1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09aXx8dm9pZCAwIT09bz9zKCk6cn0sdX0oKCgpPT50aGlzLl9mbHVzaCgpKSx0aGlzLl9vcHRpb25zLmZsdXNoTWluRGVsYXkse21heFdhaXQ6dGhpcy5fb3B0aW9ucy5mbHVzaE1heERlbGF5fSl9Z2V0Q29udGV4dCgpe3JldHVybiB0aGlzLl9jb250ZXh0fWlzRW5hYmxlZCgpe3JldHVybiB0aGlzLl9pc0VuYWJsZWR9aXNQYXVzZWQoKXtyZXR1cm4gdGhpcy5faXNQYXVzZWR9Z2V0T3B0aW9ucygpe3JldHVybiB0aGlzLl9vcHRpb25zfWluaXRpYWxpemVTYW1wbGluZygpe2NvbnN0e2Vycm9yU2FtcGxlUmF0ZTplLHNlc3Npb25TYW1wbGVSYXRlOnR9PXRoaXMuX29wdGlvbnM7aWYoZTw9MCYmdDw9MClyZXR1cm47dGhpcy5fbG9hZEFuZENoZWNrU2Vzc2lvbigpJiYodGhpcy5zZXNzaW9uPyh0aGlzLnNlc3Npb24uc2FtcGxlZCYmXCJzZXNzaW9uXCIhPT10aGlzLnNlc3Npb24uc2FtcGxlZCYmKHRoaXMucmVjb3JkaW5nTW9kZT1cImJ1ZmZlclwiKSx0aGlzLl9pbml0aWFsaXplUmVjb3JkaW5nKCkpOnRoaXMuX2hhbmRsZUV4Y2VwdGlvbihuZXcgRXJyb3IoXCJVbmFibGUgdG8gaW5pdGlhbGl6ZSBhbmQgY3JlYXRlIHNlc3Npb25cIikpKX1zdGFydCgpe2lmKHRoaXMuX2lzRW5hYmxlZCYmXCJzZXNzaW9uXCI9PT10aGlzLnJlY29yZGluZ01vZGUpdGhyb3cgbmV3IEVycm9yKFwiUmVwbGF5IHJlY29yZGluZyBpcyBhbHJlYWR5IGluIHByb2dyZXNzXCIpO2lmKHRoaXMuX2lzRW5hYmxlZCYmXCJidWZmZXJcIj09PXRoaXMucmVjb3JkaW5nTW9kZSl0aHJvdyBuZXcgRXJyb3IoXCJSZXBsYXkgYnVmZmVyaW5nIGlzIGluIHByb2dyZXNzLCBjYWxsIGBmbHVzaCgpYCB0byBzYXZlIHRoZSByZXBsYXlcIik7Y29uc3QgZT10aGlzLnNlc3Npb24mJnRoaXMuc2Vzc2lvbi5pZCx7c2Vzc2lvbjp0fT1tbyh7dGltZW91dHM6dGhpcy50aW1lb3V0cyxzdGlja3lTZXNzaW9uOkJvb2xlYW4odGhpcy5fb3B0aW9ucy5zdGlja3lTZXNzaW9uKSxjdXJyZW50U2Vzc2lvbjp0aGlzLnNlc3Npb24sc2Vzc2lvblNhbXBsZVJhdGU6MSxhbGxvd0J1ZmZlcmluZzohMX0pO3QucHJldmlvdXNTZXNzaW9uSWQ9ZSx0aGlzLnNlc3Npb249dCx0aGlzLl9pbml0aWFsaXplUmVjb3JkaW5nKCl9c3RhcnRCdWZmZXJpbmcoKXtpZih0aGlzLl9pc0VuYWJsZWQpdGhyb3cgbmV3IEVycm9yKFwiUmVwbGF5IHJlY29yZGluZyBpcyBhbHJlYWR5IGluIHByb2dyZXNzXCIpO2NvbnN0IGU9dGhpcy5zZXNzaW9uJiZ0aGlzLnNlc3Npb24uaWQse3Nlc3Npb246dH09bW8oe3RpbWVvdXRzOnRoaXMudGltZW91dHMsc3RpY2t5U2Vzc2lvbjpCb29sZWFuKHRoaXMuX29wdGlvbnMuc3RpY2t5U2Vzc2lvbiksY3VycmVudFNlc3Npb246dGhpcy5zZXNzaW9uLHNlc3Npb25TYW1wbGVSYXRlOjAsYWxsb3dCdWZmZXJpbmc6ITB9KTt0LnByZXZpb3VzU2Vzc2lvbklkPWUsdGhpcy5zZXNzaW9uPXQsdGhpcy5yZWNvcmRpbmdNb2RlPVwiYnVmZmVyXCIsdGhpcy5faW5pdGlhbGl6ZVJlY29yZGluZygpfXN0YXJ0UmVjb3JkaW5nKCl7dHJ5e3RoaXMuX3N0b3BSZWNvcmRpbmc9UWkoey4uLnRoaXMuX3JlY29yZGluZ09wdGlvbnMsLi4uXCJidWZmZXJcIj09PXRoaXMucmVjb3JkaW5nTW9kZSYme2NoZWNrb3V0RXZlcnlObXM6NmU0fSxlbWl0OkVhKHRoaXMpLG9uTXV0YXRpb246dGhpcy5fb25NdXRhdGlvbkhhbmRsZXJ9KX1jYXRjaChlKXt0aGlzLl9oYW5kbGVFeGNlcHRpb24oZSl9fXN0b3BSZWNvcmRpbmcoKXt0cnl7cmV0dXJuIHRoaXMuX3N0b3BSZWNvcmRpbmcmJih0aGlzLl9zdG9wUmVjb3JkaW5nKCksdGhpcy5fc3RvcFJlY29yZGluZz12b2lkIDApLCEwfWNhdGNoKGUpe3JldHVybiB0aGlzLl9oYW5kbGVFeGNlcHRpb24oZSksITF9fWFzeW5jIHN0b3AoZSl7aWYodGhpcy5faXNFbmFibGVkKXRyeXtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pe2NvbnN0IHQ9XCJbUmVwbGF5XSBTdG9wcGluZyBSZXBsYXlcIisoZT9gIHRyaWdnZXJlZCBieSAke2V9YDpcIlwiKTsodGhpcy5nZXRPcHRpb25zKCkuX2V4cGVyaW1lbnRzLnRyYWNlSW50ZXJuYWxzP2NvbnNvbGUud2Fybjpzbi5sb2cpKHQpfXRoaXMuX2lzRW5hYmxlZD0hMSx0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlzLnN0b3BSZWNvcmRpbmcoKSx0aGlzLl9kZWJvdW5jZWRGbHVzaC5jYW5jZWwoKSxhd2FpdCB0aGlzLl9mbHVzaCh7Zm9yY2U6ITB9KSx0aGlzLmV2ZW50QnVmZmVyJiZ0aGlzLmV2ZW50QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmV2ZW50QnVmZmVyPW51bGwsY28odGhpcyl9Y2F0Y2godCl7dGhpcy5faGFuZGxlRXhjZXB0aW9uKHQpfX1wYXVzZSgpe3RoaXMuX2lzUGF1c2VkPSEwLHRoaXMuc3RvcFJlY29yZGluZygpfXJlc3VtZSgpe3RoaXMuX2xvYWRBbmRDaGVja1Nlc3Npb24oKSYmKHRoaXMuX2lzUGF1c2VkPSExLHRoaXMuc3RhcnRSZWNvcmRpbmcoKSl9YXN5bmMgc2VuZEJ1ZmZlcmVkUmVwbGF5T3JGbHVzaCh7Y29udGludWVSZWNvcmRpbmc6ZT0hMH09e30pe2lmKFwic2Vzc2lvblwiPT09dGhpcy5yZWNvcmRpbmdNb2RlKXJldHVybiB0aGlzLmZsdXNoSW1tZWRpYXRlKCk7YXdhaXQgdGhpcy5mbHVzaEltbWVkaWF0ZSgpO2NvbnN0IHQ9dGhpcy5zdG9wUmVjb3JkaW5nKCk7ZSYmdCYmKHRoaXMucmVjb3JkaW5nTW9kZT1cInNlc3Npb25cIix0aGlzLnNlc3Npb24mJih0aGlzLnNlc3Npb24uc2hvdWxkUmVmcmVzaD0hMSx0aGlzLl9tYXliZVNhdmVTZXNzaW9uKCkpLHRoaXMuc3RhcnRSZWNvcmRpbmcoKSl9YWRkVXBkYXRlKGUpe2NvbnN0IHQ9ZSgpO1wiYnVmZmVyXCIhPT10aGlzLnJlY29yZGluZ01vZGUmJiEwIT09dCYmdGhpcy5fZGVib3VuY2VkRmx1c2goKX10cmlnZ2VyVXNlckFjdGl2aXR5KCl7aWYodGhpcy5fdXBkYXRlVXNlckFjdGl2aXR5KCksdGhpcy5fc3RvcFJlY29yZGluZyl0aGlzLmNoZWNrQW5kSGFuZGxlRXhwaXJlZFNlc3Npb24oKSx0aGlzLl91cGRhdGVTZXNzaW9uQWN0aXZpdHkoKTtlbHNle2lmKCF0aGlzLl9sb2FkQW5kQ2hlY2tTZXNzaW9uKCkpcmV0dXJuO3RoaXMucmVzdW1lKCl9fWZsdXNoSW1tZWRpYXRlKCl7cmV0dXJuIHRoaXMuX2RlYm91bmNlZEZsdXNoKCksdGhpcy5fZGVib3VuY2VkRmx1c2guZmx1c2goKX1nZXRTZXNzaW9uSWQoKXtyZXR1cm4gdGhpcy5zZXNzaW9uJiZ0aGlzLnNlc3Npb24uaWR9Y2hlY2tBbmRIYW5kbGVFeHBpcmVkU2Vzc2lvbigpe2NvbnN0IGU9dGhpcy5nZXRTZXNzaW9uSWQoKTtpZih0aGlzLl9sYXN0QWN0aXZpdHkmJnVvKHRoaXMuX2xhc3RBY3Rpdml0eSx0aGlzLnRpbWVvdXRzLnNlc3Npb25JZGxlUGF1c2UpJiZ0aGlzLnNlc3Npb24mJlwic2Vzc2lvblwiPT09dGhpcy5zZXNzaW9uLnNhbXBsZWQpcmV0dXJuIHZvaWQgdGhpcy5wYXVzZSgpO2lmKCF0aGlzLl9sb2FkQW5kQ2hlY2tTZXNzaW9uKCkpcmV0dXJuO3JldHVybiBlPT09dGhpcy5nZXRTZXNzaW9uSWQoKXx8KHRoaXMuX3RyaWdnZXJGdWxsU25hcHNob3QoKSwhMSl9c2V0SW5pdGlhbFN0YXRlKCl7Y29uc3QgZT1gJHtoci5sb2NhdGlvbi5wYXRobmFtZX0ke2hyLmxvY2F0aW9uLmhhc2h9JHtoci5sb2NhdGlvbi5zZWFyY2h9YCx0PWAke2hyLmxvY2F0aW9uLm9yaWdpbn0ke2V9YDt0aGlzLnBlcmZvcm1hbmNlRXZlbnRzPVtdLHRoaXMuX2NsZWFyQ29udGV4dCgpLHRoaXMuX2NvbnRleHQuaW5pdGlhbFVybD10LHRoaXMuX2NvbnRleHQuaW5pdGlhbFRpbWVzdGFtcD1EYXRlLm5vdygpLHRoaXMuX2NvbnRleHQudXJscy5wdXNoKHQpfV9pbml0aWFsaXplUmVjb3JkaW5nKCl7dGhpcy5zZXRJbml0aWFsU3RhdGUoKSx0aGlzLl91cGRhdGVTZXNzaW9uQWN0aXZpdHkoKSx0aGlzLmV2ZW50QnVmZmVyPXNvKHt1c2VDb21wcmVzc2lvbjp0aGlzLl9vcHRpb25zLnVzZUNvbXByZXNzaW9ufSksdGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCksdGhpcy5fYWRkTGlzdGVuZXJzKCksdGhpcy5faXNFbmFibGVkPSEwLHRoaXMuc3RhcnRSZWNvcmRpbmcoKX1faGFuZGxlRXhjZXB0aW9uKGUpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5lcnJvcihcIltSZXBsYXldXCIsZSksKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnRoaXMuX29wdGlvbnMuX2V4cGVyaW1lbnRzJiZ0aGlzLl9vcHRpb25zLl9leHBlcmltZW50cy5jYXB0dXJlRXhjZXB0aW9ucyYmeG4oZSl9X2xvYWRBbmRDaGVja1Nlc3Npb24oKXtjb25zdHt0eXBlOmUsc2Vzc2lvbjp0fT1tbyh7dGltZW91dHM6dGhpcy50aW1lb3V0cyxzdGlja3lTZXNzaW9uOkJvb2xlYW4odGhpcy5fb3B0aW9ucy5zdGlja3lTZXNzaW9uKSxjdXJyZW50U2Vzc2lvbjp0aGlzLnNlc3Npb24sc2Vzc2lvblNhbXBsZVJhdGU6dGhpcy5fb3B0aW9ucy5zZXNzaW9uU2FtcGxlUmF0ZSxhbGxvd0J1ZmZlcmluZzp0aGlzLl9vcHRpb25zLmVycm9yU2FtcGxlUmF0ZT4wfSk7XCJuZXdcIj09PWUmJnRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7Y29uc3Qgbj10aGlzLmdldFNlc3Npb25JZCgpO3JldHVybiB0LmlkIT09biYmKHQucHJldmlvdXNTZXNzaW9uSWQ9biksdGhpcy5zZXNzaW9uPXQsISF0aGlzLnNlc3Npb24uc2FtcGxlZHx8KHRoaXMuc3RvcChcInNlc3Npb24gdW5zYW1wbGVkXCIpLCExKX1fYWRkTGlzdGVuZXJzKCl7dHJ5e2hyLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsdGhpcy5faGFuZGxlVmlzaWJpbGl0eUNoYW5nZSksaHIuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0aGlzLl9oYW5kbGVXaW5kb3dCbHVyKSxoci5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0aGlzLl9oYW5kbGVXaW5kb3dGb2N1cyksaHIuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIix0aGlzLl9oYW5kbGVLZXlib2FyZEV2ZW50KSx0aGlzLl9oYXNJbml0aWFsaXplZENvcmVMaXN0ZW5lcnN8fChwYSh0aGlzKSx0aGlzLl9oYXNJbml0aWFsaXplZENvcmVMaXN0ZW5lcnM9ITApfWNhdGNoKGUpe3RoaXMuX2hhbmRsZUV4Y2VwdGlvbihlKX1cIlBlcmZvcm1hbmNlT2JzZXJ2ZXJcImluIGhyJiYodGhpcy5fcGVyZm9ybWFuY2VPYnNlcnZlcj10byh0aGlzKSl9X3JlbW92ZUxpc3RlbmVycygpe3RyeXtoci5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLHRoaXMuX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2UpLGhyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdGhpcy5faGFuZGxlV2luZG93Qmx1ciksaHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdGhpcy5faGFuZGxlV2luZG93Rm9jdXMpLGhyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdGhpcy5faGFuZGxlS2V5Ym9hcmRFdmVudCksdGhpcy5fcGVyZm9ybWFuY2VPYnNlcnZlciYmKHRoaXMuX3BlcmZvcm1hbmNlT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuX3BlcmZvcm1hbmNlT2JzZXJ2ZXI9bnVsbCl9Y2F0Y2goZSl7dGhpcy5faGFuZGxlRXhjZXB0aW9uKGUpfX1fX2luaXQxMygpe3RoaXMuX2hhbmRsZVZpc2liaWxpdHlDaGFuZ2U9KCk9PntcInZpc2libGVcIj09PWhyLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT90aGlzLl9kb0NoYW5nZVRvRm9yZWdyb3VuZFRhc2tzKCk6dGhpcy5fZG9DaGFuZ2VUb0JhY2tncm91bmRUYXNrcygpfX1fX2luaXQxNCgpe3RoaXMuX2hhbmRsZVdpbmRvd0JsdXI9KCk9Pntjb25zdCBlPXlvKHtjYXRlZ29yeTpcInVpLmJsdXJcIn0pO3RoaXMuX2RvQ2hhbmdlVG9CYWNrZ3JvdW5kVGFza3MoZSl9fV9faW5pdDE1KCl7dGhpcy5faGFuZGxlV2luZG93Rm9jdXM9KCk9Pntjb25zdCBlPXlvKHtjYXRlZ29yeTpcInVpLmZvY3VzXCJ9KTt0aGlzLl9kb0NoYW5nZVRvRm9yZWdyb3VuZFRhc2tzKGUpfX1fX2luaXQxNigpe3RoaXMuX2hhbmRsZUtleWJvYXJkRXZlbnQ9KCk9Pnt0aGlzLnRyaWdnZXJVc2VyQWN0aXZpdHkoKX19X2RvQ2hhbmdlVG9CYWNrZ3JvdW5kVGFza3MoZSl7aWYoIXRoaXMuc2Vzc2lvbilyZXR1cm47Y29uc3QgdD1sbyh0aGlzLnNlc3Npb24sdGhpcy50aW1lb3V0cyk7ZSYmIXQmJnRoaXMuX2NyZWF0ZUN1c3RvbUJyZWFkY3J1bWIoZSksdGhpcy5fY29uZGl0aW9uYWxGbHVzaCgpfV9kb0NoYW5nZVRvRm9yZWdyb3VuZFRhc2tzKGUpe2lmKCF0aGlzLnNlc3Npb24pcmV0dXJuO3RoaXMuY2hlY2tBbmRIYW5kbGVFeHBpcmVkU2Vzc2lvbigpP2UmJnRoaXMuX2NyZWF0ZUN1c3RvbUJyZWFkY3J1bWIoZSk6KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLmxvZyhcIltSZXBsYXldIERvY3VtZW50IGhhcyBiZWNvbWUgYWN0aXZlLCBidXQgc2Vzc2lvbiBoYXMgZXhwaXJlZFwiKX1fdHJpZ2dlckZ1bGxTbmFwc2hvdChlPSEwKXt0cnl7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLmxvZyhcIltSZXBsYXldIFRha2luZyBmdWxsIHJyd2ViIHNuYXBzaG90XCIpLFFpLnRha2VGdWxsU25hcHNob3QoZSl9Y2F0Y2godCl7dGhpcy5faGFuZGxlRXhjZXB0aW9uKHQpfX1fdXBkYXRlVXNlckFjdGl2aXR5KGU9RGF0ZS5ub3coKSl7dGhpcy5fbGFzdEFjdGl2aXR5PWV9X3VwZGF0ZVNlc3Npb25BY3Rpdml0eShlPURhdGUubm93KCkpe3RoaXMuc2Vzc2lvbiYmKHRoaXMuc2Vzc2lvbi5sYXN0QWN0aXZpdHk9ZSx0aGlzLl9tYXliZVNhdmVTZXNzaW9uKCkpfV9jcmVhdGVDdXN0b21CcmVhZGNydW1iKGUpe3RoaXMuYWRkVXBkYXRlKCgoKT0+e3ZvKHRoaXMse3R5cGU6cXIuQ3VzdG9tLHRpbWVzdGFtcDplLnRpbWVzdGFtcHx8MCxkYXRhOnt0YWc6XCJicmVhZGNydW1iXCIscGF5bG9hZDplfX0pfSkpfV9hZGRQZXJmb3JtYW5jZUVudHJpZXMoKXtjb25zdCBlPVsuLi50aGlzLnBlcmZvcm1hbmNlRXZlbnRzXTtyZXR1cm4gdGhpcy5wZXJmb3JtYW5jZUV2ZW50cz1bXSxQcm9taXNlLmFsbChQbyh0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiBlLm1hcChtYSkuZmlsdGVyKEJvb2xlYW4pfShlKSkpfV9jb25kaXRpb25hbEZsdXNoKCl7XCJidWZmZXJcIiE9PXRoaXMucmVjb3JkaW5nTW9kZSYmdGhpcy5mbHVzaEltbWVkaWF0ZSgpfV9jbGVhckNvbnRleHQoKXt0aGlzLl9jb250ZXh0LmVycm9ySWRzLmNsZWFyKCksdGhpcy5fY29udGV4dC50cmFjZUlkcy5jbGVhcigpLHRoaXMuX2NvbnRleHQudXJscz1bXX1fdXBkYXRlSW5pdGlhbFRpbWVzdGFtcEZyb21FdmVudEJ1ZmZlcigpe2NvbnN0e3Nlc3Npb246ZSxldmVudEJ1ZmZlcjp0fT10aGlzO2lmKCFlfHwhdClyZXR1cm47aWYoZS5zZWdtZW50SWQpcmV0dXJuO2NvbnN0IG49dC5nZXRFYXJsaWVzdFRpbWVzdGFtcCgpO24mJm48dGhpcy5fY29udGV4dC5pbml0aWFsVGltZXN0YW1wJiYodGhpcy5fY29udGV4dC5pbml0aWFsVGltZXN0YW1wPW4pfV9wb3BFdmVudENvbnRleHQoKXtjb25zdCBlPXtpbml0aWFsVGltZXN0YW1wOnRoaXMuX2NvbnRleHQuaW5pdGlhbFRpbWVzdGFtcCxpbml0aWFsVXJsOnRoaXMuX2NvbnRleHQuaW5pdGlhbFVybCxlcnJvcklkczpBcnJheS5mcm9tKHRoaXMuX2NvbnRleHQuZXJyb3JJZHMpLHRyYWNlSWRzOkFycmF5LmZyb20odGhpcy5fY29udGV4dC50cmFjZUlkcyksdXJsczp0aGlzLl9jb250ZXh0LnVybHN9O3JldHVybiB0aGlzLl9jbGVhckNvbnRleHQoKSxlfWFzeW5jIF9ydW5GbHVzaCgpe2lmKHRoaXMuc2Vzc2lvbiYmdGhpcy5ldmVudEJ1ZmZlcil7aWYoYXdhaXQgdGhpcy5fYWRkUGVyZm9ybWFuY2VFbnRyaWVzKCksdGhpcy5ldmVudEJ1ZmZlciYmdGhpcy5ldmVudEJ1ZmZlci5oYXNFdmVudHMmJihhd2FpdCBhc3luYyBmdW5jdGlvbihlKXt0cnl7cmV0dXJuIFByb21pc2UuYWxsKFBvKGUsW2hhKGhyLnBlcmZvcm1hbmNlLm1lbW9yeSldKSl9Y2F0Y2godCl7cmV0dXJuW119fSh0aGlzKSx0aGlzLmV2ZW50QnVmZmVyKSl0cnl7dGhpcy5fdXBkYXRlSW5pdGlhbFRpbWVzdGFtcEZyb21FdmVudEJ1ZmZlcigpO2NvbnN0IGU9YXdhaXQgdGhpcy5ldmVudEJ1ZmZlci5maW5pc2goKSx0PXRoaXMuc2Vzc2lvbi5pZCxuPXRoaXMuX3BvcEV2ZW50Q29udGV4dCgpLHI9dGhpcy5zZXNzaW9uLnNlZ21lbnRJZCsrO3RoaXMuX21heWJlU2F2ZVNlc3Npb24oKSxhd2FpdCBUYSh7cmVwbGF5SWQ6dCxyZWNvcmRpbmdEYXRhOmUsc2VnbWVudElkOnIsZXZlbnRDb250ZXh0Om4sc2Vzc2lvbjp0aGlzLnNlc3Npb24sb3B0aW9uczp0aGlzLmdldE9wdGlvbnMoKSx0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfWNhdGNoKGUpe3RoaXMuX2hhbmRsZUV4Y2VwdGlvbihlKSx0aGlzLnN0b3AoXCJzZW5kUmVwbGF5XCIpO2NvbnN0IHQ9TG4oKS5nZXRDbGllbnQoKTt0JiZ0LnJlY29yZERyb3BwZWRFdmVudChcInNlbmRfZXJyb3JcIixcInJlcGxheVwiKX19ZWxzZShcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5lcnJvcihcIltSZXBsYXldIE5vIHNlc3Npb24gb3IgZXZlbnRCdWZmZXIgZm91bmQgdG8gZmx1c2guXCIpfV9faW5pdDE3KCl7dGhpcy5fZmx1c2g9YXN5bmMoe2ZvcmNlOmU9ITF9PXt9KT0+e2lmKHRoaXMuX2lzRW5hYmxlZHx8ZSlpZih0aGlzLmNoZWNrQW5kSGFuZGxlRXhwaXJlZFNlc3Npb24oKSlpZih0aGlzLnNlc3Npb24pe2lmKHRoaXMuX2RlYm91bmNlZEZsdXNoLmNhbmNlbCgpLCF0aGlzLl9mbHVzaExvY2spcmV0dXJuIHRoaXMuX2ZsdXNoTG9jaz10aGlzLl9ydW5GbHVzaCgpLGF3YWl0IHRoaXMuX2ZsdXNoTG9jayx2b2lkKHRoaXMuX2ZsdXNoTG9jaz1udWxsKTt0cnl7YXdhaXQgdGhpcy5fZmx1c2hMb2NrfWNhdGNoKHQpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZzbi5lcnJvcih0KX1maW5hbGx5e3RoaXMuX2RlYm91bmNlZEZsdXNoKCl9fWVsc2UoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmc24uZXJyb3IoXCJbUmVwbGF5XSBObyBzZXNzaW9uIGZvdW5kIHRvIGZsdXNoLlwiKTtlbHNlKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnNuLmVycm9yKFwiW1JlcGxheV0gQXR0ZW1wdGluZyB0byBmaW5pc2ggcmVwbGF5IGV2ZW50IGFmdGVyIHNlc3Npb24gZXhwaXJlZC5cIil9fV9tYXliZVNhdmVTZXNzaW9uKCl7dGhpcy5zZXNzaW9uJiZ0aGlzLl9vcHRpb25zLnN0aWNreVNlc3Npb24mJmZvKHRoaXMuc2Vzc2lvbil9X19pbml0MTgoKXt0aGlzLl9vbk11dGF0aW9uSGFuZGxlcj1lPT57Y29uc3QgdD1lLmxlbmd0aCxuPXRoaXMuX29wdGlvbnMuX2V4cGVyaW1lbnRzLm11dGF0aW9uTGltaXR8fDAscj1uJiZ0Pm47aWYodD4odGhpcy5fb3B0aW9ucy5fZXhwZXJpbWVudHMubXV0YXRpb25CcmVhZGNydW1iTGltaXR8fDFlMyl8fHIpe2NvbnN0IGU9eW8oe2NhdGVnb3J5OlwicmVwbGF5Lm11dGF0aW9uc1wiLGRhdGE6e2NvdW50OnR9fSk7dGhpcy5fY3JlYXRlQ3VzdG9tQnJlYWRjcnVtYihlKX1yZXR1cm4hcnx8KHRoaXMuX3RyaWdnZXJGdWxsU25hcHNob3QoITEpLCExKX19fWZ1bmN0aW9uIE9hKGUsdCxuLHIpe2NvbnN0IGk9Wy4uLmUsLi4uXCJzdHJpbmdcIj09PXR5cGVvZiByP3Iuc3BsaXQoXCIsXCIpOltdLC4uLnRdO3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgbiYmKFwic3RyaW5nXCI9PT10eXBlb2YgbiYmaS5wdXNoKGAuJHtufWApLGNvbnNvbGUud2FybihcIltSZXBsYXldIFlvdSBhcmUgdXNpbmcgYSBkZXByZWNhdGVkIGNvbmZpZ3VyYXRpb24gaXRlbSBmb3IgcHJpdmFjeS4gUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gdXNlIHRoZSBuZXcgcHJpdmFjeSBjb25maWd1cmF0aW9uLlwiKSksaS5qb2luKFwiLFwiKX1mdW5jdGlvbiBBYSh7bWFzazplLHVubWFzazp0LGJsb2NrOm4sdW5ibG9jazpyLGlnbm9yZTppLGJsb2NrQ2xhc3M6byxibG9ja1NlbGVjdG9yOmEsbWFza1RleHRDbGFzczpzLG1hc2tUZXh0U2VsZWN0b3I6YyxpZ25vcmVDbGFzczp1fSl7Y29uc3QgbD1PYShlLFtcIi5zZW50cnktbWFza1wiLFwiW2RhdGEtc2VudHJ5LW1hc2tdXCJdLHMsYyksZD1PYSh0LFtcIi5zZW50cnktdW5tYXNrXCIsXCJbZGF0YS1zZW50cnktdW5tYXNrXVwiXSkscD17bWFza1RleHRTZWxlY3RvcjpsLHVubWFza1RleHRTZWxlY3RvcjpkLG1hc2tJbnB1dFNlbGVjdG9yOmwsdW5tYXNrSW5wdXRTZWxlY3RvcjpkLGJsb2NrU2VsZWN0b3I6T2EobixbXCIuc2VudHJ5LWJsb2NrXCIsXCJbZGF0YS1zZW50cnktYmxvY2tdXCIsJ2Jhc2VbaHJlZj1cIi9cIl0nXSxvLGEpLHVuYmxvY2tTZWxlY3RvcjpPYShyLFtcIi5zZW50cnktdW5ibG9ja1wiLFwiW2RhdGEtc2VudHJ5LXVuYmxvY2tdXCJdKSxpZ25vcmVTZWxlY3RvcjpPYShpLFtcIi5zZW50cnktaWdub3JlXCIsXCJbZGF0YS1zZW50cnktaWdub3JlXVwiLCdpbnB1dFt0eXBlPVwiZmlsZVwiXSddLHUpfTtyZXR1cm4gbyBpbnN0YW5jZW9mIFJlZ0V4cCYmKHAuYmxvY2tDbGFzcz1vKSxzIGluc3RhbmNlb2YgUmVnRXhwJiYocC5tYXNrVGV4dENsYXNzPXMpLHB9ZnVuY3Rpb24gQ2EoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIHdpbmRvdyYmKCEoMCxwci5LVikoKXx8XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBmciYmXCJyZW5kZXJlclwiPT09ZnIudHlwZSl9Y29uc3QgTmE9J2ltZyxpbWFnZSxzdmcsdmlkZW8sb2JqZWN0LHBpY3R1cmUsZW1iZWQsbWFwLGF1ZGlvLGxpbmtbcmVsPVwiaWNvblwiXSxsaW5rW3JlbD1cImFwcGxlLXRvdWNoLWljb25cIl0nLGthPVtcImNvbnRlbnQtbGVuZ3RoXCIsXCJjb250ZW50LXR5cGVcIixcImFjY2VwdFwiXTtsZXQgUGE9ITE7Y2xhc3MgUmF7c3RhdGljIF9faW5pdFN0YXRpYygpe3RoaXMuaWQ9XCJSZXBsYXlcIn1fX2luaXQoKXt0aGlzLm5hbWU9UmEuaWR9Y29uc3RydWN0b3Ioe2ZsdXNoTWluRGVsYXk6ZT01ZTMsZmx1c2hNYXhEZWxheTp0PTU1MDAsc3RpY2t5U2Vzc2lvbjpuPSEwLHVzZUNvbXByZXNzaW9uOnI9ITAsX2V4cGVyaW1lbnRzOmk9e30sc2Vzc2lvblNhbXBsZVJhdGU6byxlcnJvclNhbXBsZVJhdGU6YSxtYXNrQWxsVGV4dDpzPSEwLG1hc2tBbGxJbnB1dHM6Yz0hMCxibG9ja0FsbE1lZGlhOnU9ITAsbmV0d29ya0RldGFpbEFsbG93VXJsczpsPVtdLG5ldHdvcmtDYXB0dXJlQm9kaWVzOmQ9ITAsbmV0d29ya1JlcXVlc3RIZWFkZXJzOnA9W10sbmV0d29ya1Jlc3BvbnNlSGVhZGVyczpmPVtdLG1hc2s6aD1bXSx1bm1hc2s6Zz1bXSxibG9jazptPVtdLHVuYmxvY2s6dj1bXSxpZ25vcmU6Xz1bXSxtYXNrRm46RSxibG9ja0NsYXNzOmIsYmxvY2tTZWxlY3RvcjpTLG1hc2tJbnB1dE9wdGlvbnM6eSxtYXNrVGV4dENsYXNzOlQsbWFza1RleHRTZWxlY3RvcjpJLGlnbm9yZUNsYXNzOk99PXt9KXtpZihSYS5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksdGhpcy5fcmVjb3JkaW5nT3B0aW9ucz17bWFza0FsbElucHV0czpjLG1hc2tBbGxUZXh0OnMsbWFza0lucHV0T3B0aW9uczp7Li4ueXx8e30scGFzc3dvcmQ6ITB9LG1hc2tUZXh0Rm46RSxtYXNrSW5wdXRGbjpFLC4uLkFhKHttYXNrOmgsdW5tYXNrOmcsYmxvY2s6bSx1bmJsb2NrOnYsaWdub3JlOl8sYmxvY2tDbGFzczpiLGJsb2NrU2VsZWN0b3I6UyxtYXNrVGV4dENsYXNzOlQsbWFza1RleHRTZWxlY3RvcjpJLGlnbm9yZUNsYXNzOk99KSxzbGltRE9NT3B0aW9uczpcImFsbFwiLGlubGluZVN0eWxlc2hlZXQ6ITAsaW5saW5lSW1hZ2VzOiExLGNvbGxlY3RGb250czohMH0sdGhpcy5faW5pdGlhbE9wdGlvbnM9e2ZsdXNoTWluRGVsYXk6ZSxmbHVzaE1heERlbGF5OnQsc3RpY2t5U2Vzc2lvbjpuLHNlc3Npb25TYW1wbGVSYXRlOm8sZXJyb3JTYW1wbGVSYXRlOmEsdXNlQ29tcHJlc3Npb246cixibG9ja0FsbE1lZGlhOnUsbWFza0FsbElucHV0czpjLG1hc2tBbGxUZXh0OnMsbmV0d29ya0RldGFpbEFsbG93VXJsczpsLG5ldHdvcmtDYXB0dXJlQm9kaWVzOmQsbmV0d29ya1JlcXVlc3RIZWFkZXJzOndhKHApLG5ldHdvcmtSZXNwb25zZUhlYWRlcnM6d2EoZiksX2V4cGVyaW1lbnRzOml9LFwibnVtYmVyXCI9PT10eXBlb2YgbyYmKGNvbnNvbGUud2FybihgW1JlcGxheV0gWW91IGFyZSBwYXNzaW5nIFxcYHNlc3Npb25TYW1wbGVSYXRlXFxgIHRvIHRoZSBSZXBsYXkgaW50ZWdyYXRpb24uXFxuVGhpcyBvcHRpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIHNvb24uXFxuSW5zdGVhZCwgY29uZmlndXJlIFxcYHJlcGxheXNTZXNzaW9uU2FtcGxlUmF0ZVxcYCBkaXJlY3RseSBpbiB0aGUgU0RLIGluaXQgb3B0aW9ucywgZS5nLjpcXG5TZW50cnkuaW5pdCh7IHJlcGxheXNTZXNzaW9uU2FtcGxlUmF0ZTogJHtvfSB9KWApLHRoaXMuX2luaXRpYWxPcHRpb25zLnNlc3Npb25TYW1wbGVSYXRlPW8pLFwibnVtYmVyXCI9PT10eXBlb2YgYSYmKGNvbnNvbGUud2FybihgW1JlcGxheV0gWW91IGFyZSBwYXNzaW5nIFxcYGVycm9yU2FtcGxlUmF0ZVxcYCB0byB0aGUgUmVwbGF5IGludGVncmF0aW9uLlxcblRoaXMgb3B0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBzb29uLlxcbkluc3RlYWQsIGNvbmZpZ3VyZSBcXGByZXBsYXlzT25FcnJvclNhbXBsZVJhdGVcXGAgZGlyZWN0bHkgaW4gdGhlIFNESyBpbml0IG9wdGlvbnMsIGUuZy46XFxuU2VudHJ5LmluaXQoeyByZXBsYXlzT25FcnJvclNhbXBsZVJhdGU6ICR7YX0gfSlgKSx0aGlzLl9pbml0aWFsT3B0aW9ucy5lcnJvclNhbXBsZVJhdGU9YSksdGhpcy5faW5pdGlhbE9wdGlvbnMuYmxvY2tBbGxNZWRpYSYmKHRoaXMuX3JlY29yZGluZ09wdGlvbnMuYmxvY2tTZWxlY3Rvcj10aGlzLl9yZWNvcmRpbmdPcHRpb25zLmJsb2NrU2VsZWN0b3I/YCR7dGhpcy5fcmVjb3JkaW5nT3B0aW9ucy5ibG9ja1NlbGVjdG9yfSwke05hfWA6TmEpLHRoaXMuX2lzSW5pdGlhbGl6ZWQmJkNhKCkpdGhyb3cgbmV3IEVycm9yKFwiTXVsdGlwbGUgU2VudHJ5IFNlc3Npb24gUmVwbGF5IGluc3RhbmNlcyBhcmUgbm90IHN1cHBvcnRlZFwiKTt0aGlzLl9pc0luaXRpYWxpemVkPSEwfWdldCBfaXNJbml0aWFsaXplZCgpe3JldHVybiBQYX1zZXQgX2lzSW5pdGlhbGl6ZWQoZSl7UGE9ZX1zZXR1cE9uY2UoKXtDYSgpJiYodGhpcy5fc2V0dXAoKSxzZXRUaW1lb3V0KCgoKT0+dGhpcy5faW5pdGlhbGl6ZSgpKSkpfXN0YXJ0KCl7dGhpcy5fcmVwbGF5JiZ0aGlzLl9yZXBsYXkuc3RhcnQoKX1zdGFydEJ1ZmZlcmluZygpe3RoaXMuX3JlcGxheSYmdGhpcy5fcmVwbGF5LnN0YXJ0QnVmZmVyaW5nKCl9c3RvcCgpe3JldHVybiB0aGlzLl9yZXBsYXk/dGhpcy5fcmVwbGF5LnN0b3AoKTpQcm9taXNlLnJlc29sdmUoKX1mbHVzaChlKXtyZXR1cm4gdGhpcy5fcmVwbGF5JiZ0aGlzLl9yZXBsYXkuaXNFbmFibGVkKCk/dGhpcy5fcmVwbGF5LnNlbmRCdWZmZXJlZFJlcGxheU9yRmx1c2goZSk6UHJvbWlzZS5yZXNvbHZlKCl9Z2V0UmVwbGF5SWQoKXtpZih0aGlzLl9yZXBsYXkmJnRoaXMuX3JlcGxheS5pc0VuYWJsZWQoKSlyZXR1cm4gdGhpcy5fcmVwbGF5LmdldFNlc3Npb25JZCgpfV9pbml0aWFsaXplKCl7dGhpcy5fcmVwbGF5JiZ0aGlzLl9yZXBsYXkuaW5pdGlhbGl6ZVNhbXBsaW5nKCl9X3NldHVwKCl7Y29uc3QgZT1mdW5jdGlvbihlKXtjb25zdCB0PUxuKCkuZ2V0Q2xpZW50KCksbj10JiZ0LmdldE9wdGlvbnMoKSxyPXtzZXNzaW9uU2FtcGxlUmF0ZTowLGVycm9yU2FtcGxlUmF0ZTowLC4uLlRuKGUpfTtpZighbilyZXR1cm4gY29uc29sZS53YXJuKFwiU0RLIGNsaWVudCBpcyBub3QgYXZhaWxhYmxlLlwiKSxyO251bGw9PWUuc2Vzc2lvblNhbXBsZVJhdGUmJm51bGw9PWUuZXJyb3JTYW1wbGVSYXRlJiZudWxsPT1uLnJlcGxheXNTZXNzaW9uU2FtcGxlUmF0ZSYmbnVsbD09bi5yZXBsYXlzT25FcnJvclNhbXBsZVJhdGUmJmNvbnNvbGUud2FybihcIlJlcGxheSBpcyBkaXNhYmxlZCBiZWNhdXNlIG5laXRoZXIgYHJlcGxheXNTZXNzaW9uU2FtcGxlUmF0ZWAgbm9yIGByZXBsYXlzT25FcnJvclNhbXBsZVJhdGVgIGFyZSBzZXQuXCIpO1wibnVtYmVyXCI9PT10eXBlb2Ygbi5yZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGUmJihyLnNlc3Npb25TYW1wbGVSYXRlPW4ucmVwbGF5c1Nlc3Npb25TYW1wbGVSYXRlKTtcIm51bWJlclwiPT09dHlwZW9mIG4ucmVwbGF5c09uRXJyb3JTYW1wbGVSYXRlJiYoci5lcnJvclNhbXBsZVJhdGU9bi5yZXBsYXlzT25FcnJvclNhbXBsZVJhdGUpO3JldHVybiByfSh0aGlzLl9pbml0aWFsT3B0aW9ucyk7dGhpcy5fcmVwbGF5PW5ldyBJYSh7b3B0aW9uczplLHJlY29yZGluZ09wdGlvbnM6dGhpcy5fcmVjb3JkaW5nT3B0aW9uc30pfX1mdW5jdGlvbiB3YShlKXtyZXR1cm5bLi4ua2EsLi4uZS5tYXAoKGU9PmUudG9Mb3dlckNhc2UoKSkpXX1SYS5fX2luaXRTdGF0aWMoKTt2YXIgTGE9big5MzgwOSksQmE9bigzODM4MCk7Y29uc3QgTWE9W1wiZGVidWdcIixcImluZm9cIixcIndhcm5cIixcImVycm9yXCIsXCJsb2dcIixcImFzc2VydFwiLFwidHJhY2VcIl07ZnVuY3Rpb24gRGEoZSl7aWYoIShcImNvbnNvbGVcImluIEJhLm4yKSlyZXR1cm4gZSgpO2NvbnN0IHQ9QmEubjIuY29uc29sZSxuPXt9O01hLmZvckVhY2goKGU9Pntjb25zdCByPXRbZV0mJnRbZV0uX19zZW50cnlfb3JpZ2luYWxfXztlIGluIHQmJnImJihuW2VdPXRbZV0sdFtlXT1yKX0pKTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e09iamVjdC5rZXlzKG4pLmZvckVhY2goKGU9Pnt0W2VdPW5bZV19KSl9fWZ1bmN0aW9uIGphKCl7bGV0IGU9ITE7Y29uc3QgdD17ZW5hYmxlOigpPT57ZT0hMH0sZGlzYWJsZTooKT0+e2U9ITF9fTtyZXR1cm5cInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18/TWEuZm9yRWFjaCgobj0+e3Rbbl09KC4uLnQpPT57ZSYmRGEoKCgpPT57QmEubjIuY29uc29sZVtuXShgU2VudHJ5IExvZ2dlciBbJHtufV06YCwuLi50KX0pKX19KSk6TWEuZm9yRWFjaCgoZT0+e3RbZV09KCk9Pnt9fSkpLHR9bGV0IHhhO2Z1bmN0aW9uIFVhKCl7Y29uc3QgZT1CYS5uMix0PWUuY3J5cHRvfHxlLm1zQ3J5cHRvO2lmKHQmJnQucmFuZG9tVVVJRClyZXR1cm4gdC5yYW5kb21VVUlEKCkucmVwbGFjZSgvLS9nLFwiXCIpO2NvbnN0IG49dCYmdC5nZXRSYW5kb21WYWx1ZXM/KCk9PnQuZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDEpKVswXTooKT0+MTYqTWF0aC5yYW5kb20oKTtyZXR1cm4oWzFlN10rMWUzKzRlMys4ZTMrMWUxMSkucmVwbGFjZSgvWzAxOF0vZywoZT0+KGVeKDE1Jm4oKSk+PmUvNCkudG9TdHJpbmcoMTYpKSl9eGE9XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fPygwLEJhLllPKShcImxvZ2dlclwiLGphKTpqYSgpO2NvbnN0IEZhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gSGEoZSx0KXtyZXR1cm4gRmEuY2FsbChlKT09PWBbb2JqZWN0ICR7dH1dYH1mdW5jdGlvbiBHYShlKXtyZXR1cm4gSGEoZSxcIlN0cmluZ1wiKX1mdW5jdGlvbiBXYShlKXtyZXR1cm4gSGEoZSxcIk9iamVjdFwiKX1mdW5jdGlvbiBWYShlKXtyZXR1cm4gQm9vbGVhbihlJiZlLnRoZW4mJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnRoZW4pfWZ1bmN0aW9uIHphKGUsdCl7dHJ5e3JldHVybiBlIGluc3RhbmNlb2YgdH1jYXRjaChuKXtyZXR1cm4hMX19ZnVuY3Rpb24gS2EoZSx0LG4pe2lmKCEodCBpbiBlKSlyZXR1cm47Y29uc3Qgcj1lW3RdLGk9bihyKTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaSl0cnl7IWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LnByb3RvdHlwZXx8e307ZS5wcm90b3R5cGU9dC5wcm90b3R5cGU9bixmdW5jdGlvbihlLHQsbil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bix3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX0oZSxcIl9fc2VudHJ5X29yaWdpbmFsX19cIix0KX0oaSxyKX1jYXRjaChvKXt9ZVt0XT1pfWZ1bmN0aW9uIFlhKGUpe3JldHVybiBxYShlLG5ldyBNYXApfWZ1bmN0aW9uIHFhKGUsdCl7aWYoV2EoZSkpe2NvbnN0IG49dC5nZXQoZSk7aWYodm9pZCAwIT09bilyZXR1cm4gbjtjb25zdCByPXt9O3Quc2V0KGUscik7Zm9yKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoZSkpXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBlW2ldJiYocltpXT1xYShlW2ldLHQpKTtyZXR1cm4gcn1pZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCBuPXQuZ2V0KGUpO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG47Y29uc3Qgcj1bXTtyZXR1cm4gdC5zZXQoZSxyKSxlLmZvckVhY2goKGU9PntyLnB1c2gocWEoZSx0KSl9KSkscn1yZXR1cm4gZX1jbGFzcyBaYXtfX2luaXQoKXt0aGlzLnNwYW5zPVtdfWNvbnN0cnVjdG9yKGU9MWUzKXtaYS5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksdGhpcy5fbWF4bGVuPWV9YWRkKGUpe3RoaXMuc3BhbnMubGVuZ3RoPnRoaXMuX21heGxlbj9lLnNwYW5SZWNvcmRlcj12b2lkIDA6dGhpcy5zcGFucy5wdXNoKGUpfX1jbGFzcyBKYXtfX2luaXQyKCl7dGhpcy50cmFjZUlkPVVhKCl9X19pbml0Mygpe3RoaXMuc3BhbklkPVVhKCkuc3Vic3RyaW5nKDE2KX1fX2luaXQ0KCl7dGhpcy5zdGFydFRpbWVzdGFtcD0oMCxMYS5waCkoKX1fX2luaXQ1KCl7dGhpcy50YWdzPXt9fV9faW5pdDYoKXt0aGlzLmRhdGE9e319X19pbml0Nygpe3RoaXMuaW5zdHJ1bWVudGVyPVwic2VudHJ5XCJ9Y29uc3RydWN0b3IoZSl7aWYoSmEucHJvdG90eXBlLl9faW5pdDIuY2FsbCh0aGlzKSxKYS5wcm90b3R5cGUuX19pbml0My5jYWxsKHRoaXMpLEphLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcyksSmEucHJvdG90eXBlLl9faW5pdDUuY2FsbCh0aGlzKSxKYS5wcm90b3R5cGUuX19pbml0Ni5jYWxsKHRoaXMpLEphLnByb3RvdHlwZS5fX2luaXQ3LmNhbGwodGhpcyksIWUpcmV0dXJuIHRoaXM7ZS50cmFjZUlkJiYodGhpcy50cmFjZUlkPWUudHJhY2VJZCksZS5zcGFuSWQmJih0aGlzLnNwYW5JZD1lLnNwYW5JZCksZS5wYXJlbnRTcGFuSWQmJih0aGlzLnBhcmVudFNwYW5JZD1lLnBhcmVudFNwYW5JZCksXCJzYW1wbGVkXCJpbiBlJiYodGhpcy5zYW1wbGVkPWUuc2FtcGxlZCksZS5vcCYmKHRoaXMub3A9ZS5vcCksZS5kZXNjcmlwdGlvbiYmKHRoaXMuZGVzY3JpcHRpb249ZS5kZXNjcmlwdGlvbiksZS5kYXRhJiYodGhpcy5kYXRhPWUuZGF0YSksZS50YWdzJiYodGhpcy50YWdzPWUudGFncyksZS5zdGF0dXMmJih0aGlzLnN0YXR1cz1lLnN0YXR1cyksZS5zdGFydFRpbWVzdGFtcCYmKHRoaXMuc3RhcnRUaW1lc3RhbXA9ZS5zdGFydFRpbWVzdGFtcCksZS5lbmRUaW1lc3RhbXAmJih0aGlzLmVuZFRpbWVzdGFtcD1lLmVuZFRpbWVzdGFtcCksZS5pbnN0cnVtZW50ZXImJih0aGlzLmluc3RydW1lbnRlcj1lLmluc3RydW1lbnRlcil9c3RhcnRDaGlsZChlKXtjb25zdCB0PW5ldyBKYSh7Li4uZSxwYXJlbnRTcGFuSWQ6dGhpcy5zcGFuSWQsc2FtcGxlZDp0aGlzLnNhbXBsZWQsdHJhY2VJZDp0aGlzLnRyYWNlSWR9KTtpZih0LnNwYW5SZWNvcmRlcj10aGlzLnNwYW5SZWNvcmRlcix0LnNwYW5SZWNvcmRlciYmdC5zcGFuUmVjb3JkZXIuYWRkKHQpLHQudHJhbnNhY3Rpb249dGhpcy50cmFuc2FjdGlvbiwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmdC50cmFuc2FjdGlvbil7Y29uc3Qgbj1gW1RyYWNpbmddIFN0YXJ0aW5nICcke2UmJmUub3B8fFwiPCB1bmtub3duIG9wID5cIn0nIHNwYW4gb24gdHJhbnNhY3Rpb24gJyR7dC50cmFuc2FjdGlvbi5uYW1lfHxcIjwgdW5rbm93biBuYW1lID5cIn0nICgke3QudHJhbnNhY3Rpb24uc3BhbklkfSkuYDt0LnRyYW5zYWN0aW9uLm1ldGFkYXRhLnNwYW5NZXRhZGF0YVt0LnNwYW5JZF09e2xvZ01lc3NhZ2U6bn0seGEubG9nKG4pfXJldHVybiB0fXNldFRhZyhlLHQpe3JldHVybiB0aGlzLnRhZ3M9ey4uLnRoaXMudGFncyxbZV06dH0sdGhpc31zZXREYXRhKGUsdCl7cmV0dXJuIHRoaXMuZGF0YT17Li4udGhpcy5kYXRhLFtlXTp0fSx0aGlzfXNldFN0YXR1cyhlKXtyZXR1cm4gdGhpcy5zdGF0dXM9ZSx0aGlzfXNldEh0dHBTdGF0dXMoZSl7dGhpcy5zZXRUYWcoXCJodHRwLnN0YXR1c19jb2RlXCIsU3RyaW5nKGUpKTtjb25zdCB0PWZ1bmN0aW9uKGUpe2lmKGU8NDAwJiZlPj0xMDApcmV0dXJuXCJva1wiO2lmKGU+PTQwMCYmZTw1MDApc3dpdGNoKGUpe2Nhc2UgNDAxOnJldHVyblwidW5hdXRoZW50aWNhdGVkXCI7Y2FzZSA0MDM6cmV0dXJuXCJwZXJtaXNzaW9uX2RlbmllZFwiO2Nhc2UgNDA0OnJldHVyblwibm90X2ZvdW5kXCI7Y2FzZSA0MDk6cmV0dXJuXCJhbHJlYWR5X2V4aXN0c1wiO2Nhc2UgNDEzOnJldHVyblwiZmFpbGVkX3ByZWNvbmRpdGlvblwiO2Nhc2UgNDI5OnJldHVyblwicmVzb3VyY2VfZXhoYXVzdGVkXCI7ZGVmYXVsdDpyZXR1cm5cImludmFsaWRfYXJndW1lbnRcIn1pZihlPj01MDAmJmU8NjAwKXN3aXRjaChlKXtjYXNlIDUwMTpyZXR1cm5cInVuaW1wbGVtZW50ZWRcIjtjYXNlIDUwMzpyZXR1cm5cInVuYXZhaWxhYmxlXCI7Y2FzZSA1MDQ6cmV0dXJuXCJkZWFkbGluZV9leGNlZWRlZFwiO2RlZmF1bHQ6cmV0dXJuXCJpbnRlcm5hbF9lcnJvclwifXJldHVyblwidW5rbm93bl9lcnJvclwifShlKTtyZXR1cm5cInVua25vd25fZXJyb3JcIiE9PXQmJnRoaXMuc2V0U3RhdHVzKHQpLHRoaXN9aXNTdWNjZXNzKCl7cmV0dXJuXCJva1wiPT09dGhpcy5zdGF0dXN9ZmluaXNoKGUpe2lmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ0aGlzLnRyYW5zYWN0aW9uJiZ0aGlzLnRyYW5zYWN0aW9uLnNwYW5JZCE9PXRoaXMuc3BhbklkKXtjb25zdHtsb2dNZXNzYWdlOmV9PXRoaXMudHJhbnNhY3Rpb24ubWV0YWRhdGEuc3Bhbk1ldGFkYXRhW3RoaXMuc3BhbklkXTtlJiZ4YS5sb2coZS5yZXBsYWNlKFwiU3RhcnRpbmdcIixcIkZpbmlzaGluZ1wiKSl9dGhpcy5lbmRUaW1lc3RhbXA9XCJudW1iZXJcIj09PXR5cGVvZiBlP2U6KDAsTGEucGgpKCl9dG9UcmFjZXBhcmVudCgpe2xldCBlPVwiXCI7cmV0dXJuIHZvaWQgMCE9PXRoaXMuc2FtcGxlZCYmKGU9dGhpcy5zYW1wbGVkP1wiLTFcIjpcIi0wXCIpLGAke3RoaXMudHJhY2VJZH0tJHt0aGlzLnNwYW5JZH0ke2V9YH10b0NvbnRleHQoKXtyZXR1cm4gWWEoe2RhdGE6dGhpcy5kYXRhLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sZW5kVGltZXN0YW1wOnRoaXMuZW5kVGltZXN0YW1wLG9wOnRoaXMub3AscGFyZW50U3BhbklkOnRoaXMucGFyZW50U3BhbklkLHNhbXBsZWQ6dGhpcy5zYW1wbGVkLHNwYW5JZDp0aGlzLnNwYW5JZCxzdGFydFRpbWVzdGFtcDp0aGlzLnN0YXJ0VGltZXN0YW1wLHN0YXR1czp0aGlzLnN0YXR1cyx0YWdzOnRoaXMudGFncyx0cmFjZUlkOnRoaXMudHJhY2VJZH0pfXVwZGF0ZVdpdGhDb250ZXh0KGUpe3JldHVybiB0aGlzLmRhdGE9ZS5kYXRhfHx7fSx0aGlzLmRlc2NyaXB0aW9uPWUuZGVzY3JpcHRpb24sdGhpcy5lbmRUaW1lc3RhbXA9ZS5lbmRUaW1lc3RhbXAsdGhpcy5vcD1lLm9wLHRoaXMucGFyZW50U3BhbklkPWUucGFyZW50U3BhbklkLHRoaXMuc2FtcGxlZD1lLnNhbXBsZWQsdGhpcy5zcGFuSWQ9ZS5zcGFuSWR8fHRoaXMuc3BhbklkLHRoaXMuc3RhcnRUaW1lc3RhbXA9ZS5zdGFydFRpbWVzdGFtcHx8dGhpcy5zdGFydFRpbWVzdGFtcCx0aGlzLnN0YXR1cz1lLnN0YXR1cyx0aGlzLnRhZ3M9ZS50YWdzfHx7fSx0aGlzLnRyYWNlSWQ9ZS50cmFjZUlkfHx0aGlzLnRyYWNlSWQsdGhpc31nZXRUcmFjZUNvbnRleHQoKXtyZXR1cm4gWWEoe2RhdGE6T2JqZWN0LmtleXModGhpcy5kYXRhKS5sZW5ndGg+MD90aGlzLmRhdGE6dm9pZCAwLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sb3A6dGhpcy5vcCxwYXJlbnRfc3Bhbl9pZDp0aGlzLnBhcmVudFNwYW5JZCxzcGFuX2lkOnRoaXMuc3BhbklkLHN0YXR1czp0aGlzLnN0YXR1cyx0YWdzOk9iamVjdC5rZXlzKHRoaXMudGFncykubGVuZ3RoPjA/dGhpcy50YWdzOnZvaWQgMCx0cmFjZV9pZDp0aGlzLnRyYWNlSWR9KX10b0pTT04oKXtyZXR1cm4gWWEoe2RhdGE6T2JqZWN0LmtleXModGhpcy5kYXRhKS5sZW5ndGg+MD90aGlzLmRhdGE6dm9pZCAwLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sb3A6dGhpcy5vcCxwYXJlbnRfc3Bhbl9pZDp0aGlzLnBhcmVudFNwYW5JZCxzcGFuX2lkOnRoaXMuc3BhbklkLHN0YXJ0X3RpbWVzdGFtcDp0aGlzLnN0YXJ0VGltZXN0YW1wLHN0YXR1czp0aGlzLnN0YXR1cyx0YWdzOk9iamVjdC5rZXlzKHRoaXMudGFncykubGVuZ3RoPjA/dGhpcy50YWdzOnZvaWQgMCx0aW1lc3RhbXA6dGhpcy5lbmRUaW1lc3RhbXAsdHJhY2VfaWQ6dGhpcy50cmFjZUlkfSl9fWNvbnN0IFhhPVwicHJvZHVjdGlvblwiO3ZhciBRYTshZnVuY3Rpb24oZSl7ZVtlLlBFTkRJTkc9MF09XCJQRU5ESU5HXCI7ZVtlLlJFU09MVkVEPTFdPVwiUkVTT0xWRURcIjtlW2UuUkVKRUNURUQ9Ml09XCJSRUpFQ1RFRFwifShRYXx8KFFhPXt9KSk7Y2xhc3MgJGF7X19pbml0KCl7dGhpcy5fc3RhdGU9UWEuUEVORElOR31fX2luaXQyKCl7dGhpcy5faGFuZGxlcnM9W119Y29uc3RydWN0b3IoZSl7JGEucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpLCRhLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyksJGEucHJvdG90eXBlLl9faW5pdDMuY2FsbCh0aGlzKSwkYS5wcm90b3R5cGUuX19pbml0NC5jYWxsKHRoaXMpLCRhLnByb3RvdHlwZS5fX2luaXQ1LmNhbGwodGhpcyksJGEucHJvdG90eXBlLl9faW5pdDYuY2FsbCh0aGlzKTt0cnl7ZSh0aGlzLl9yZXNvbHZlLHRoaXMuX3JlamVjdCl9Y2F0Y2godCl7dGhpcy5fcmVqZWN0KHQpfX10aGVuKGUsdCl7cmV0dXJuIG5ldyAkYSgoKG4scik9Pnt0aGlzLl9oYW5kbGVycy5wdXNoKFshMSx0PT57aWYoZSl0cnl7bihlKHQpKX1jYXRjaChpKXtyKGkpfWVsc2Ugbih0KX0sZT0+e2lmKHQpdHJ5e24odChlKSl9Y2F0Y2goaSl7cihpKX1lbHNlIHIoZSl9XSksdGhpcy5fZXhlY3V0ZUhhbmRsZXJzKCl9KSl9Y2F0Y2goZSl7cmV0dXJuIHRoaXMudGhlbigoZT0+ZSksZSl9ZmluYWxseShlKXtyZXR1cm4gbmV3ICRhKCgodCxuKT0+e2xldCByLGk7cmV0dXJuIHRoaXMudGhlbigodD0+e2k9ITEscj10LGUmJmUoKX0pLCh0PT57aT0hMCxyPXQsZSYmZSgpfSkpLnRoZW4oKCgpPT57aT9uKHIpOnQocil9KSl9KSl9X19pbml0Mygpe3RoaXMuX3Jlc29sdmU9ZT0+e3RoaXMuX3NldFJlc3VsdChRYS5SRVNPTFZFRCxlKX19X19pbml0NCgpe3RoaXMuX3JlamVjdD1lPT57dGhpcy5fc2V0UmVzdWx0KFFhLlJFSkVDVEVELGUpfX1fX2luaXQ1KCl7dGhpcy5fc2V0UmVzdWx0PShlLHQpPT57dGhpcy5fc3RhdGU9PT1RYS5QRU5ESU5HJiYoVmEodCk/dC50aGVuKHRoaXMuX3Jlc29sdmUsdGhpcy5fcmVqZWN0KToodGhpcy5fc3RhdGU9ZSx0aGlzLl92YWx1ZT10LHRoaXMuX2V4ZWN1dGVIYW5kbGVycygpKSl9fV9faW5pdDYoKXt0aGlzLl9leGVjdXRlSGFuZGxlcnM9KCk9PntpZih0aGlzLl9zdGF0ZT09PVFhLlBFTkRJTkcpcmV0dXJuO2NvbnN0IGU9dGhpcy5faGFuZGxlcnMuc2xpY2UoKTt0aGlzLl9oYW5kbGVycz1bXSxlLmZvckVhY2goKGU9PntlWzBdfHwodGhpcy5fc3RhdGU9PT1RYS5SRVNPTFZFRCYmZVsxXSh0aGlzLl92YWx1ZSksdGhpcy5fc3RhdGU9PT1RYS5SRUpFQ1RFRCYmZVsyXSh0aGlzLl92YWx1ZSksZVswXT0hMCl9KSl9fX1mdW5jdGlvbiBlcyhlKXtjb25zdCB0PSgwLExhLnBoKSgpLG49e3NpZDpVYSgpLGluaXQ6ITAsdGltZXN0YW1wOnQsc3RhcnRlZDp0LGR1cmF0aW9uOjAsc3RhdHVzOlwib2tcIixlcnJvcnM6MCxpZ25vcmVEdXJhdGlvbjohMSx0b0pTT046KCk9PmZ1bmN0aW9uKGUpe3JldHVybiBZYSh7c2lkOmAke2Uuc2lkfWAsaW5pdDplLmluaXQsc3RhcnRlZDpuZXcgRGF0ZSgxZTMqZS5zdGFydGVkKS50b0lTT1N0cmluZygpLHRpbWVzdGFtcDpuZXcgRGF0ZSgxZTMqZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksc3RhdHVzOmUuc3RhdHVzLGVycm9yczplLmVycm9ycyxkaWQ6XCJudW1iZXJcIj09PXR5cGVvZiBlLmRpZHx8XCJzdHJpbmdcIj09PXR5cGVvZiBlLmRpZD9gJHtlLmRpZH1gOnZvaWQgMCxkdXJhdGlvbjplLmR1cmF0aW9uLGF0dHJzOntyZWxlYXNlOmUucmVsZWFzZSxlbnZpcm9ubWVudDplLmVudmlyb25tZW50LGlwX2FkZHJlc3M6ZS5pcEFkZHJlc3MsdXNlcl9hZ2VudDplLnVzZXJBZ2VudH19KX0obil9O3JldHVybiBlJiZ0cyhuLGUpLG59ZnVuY3Rpb24gdHMoZSx0PXt9KXtpZih0LnVzZXImJighZS5pcEFkZHJlc3MmJnQudXNlci5pcF9hZGRyZXNzJiYoZS5pcEFkZHJlc3M9dC51c2VyLmlwX2FkZHJlc3MpLGUuZGlkfHx0LmRpZHx8KGUuZGlkPXQudXNlci5pZHx8dC51c2VyLmVtYWlsfHx0LnVzZXIudXNlcm5hbWUpKSxlLnRpbWVzdGFtcD10LnRpbWVzdGFtcHx8KDAsTGEucGgpKCksdC5pZ25vcmVEdXJhdGlvbiYmKGUuaWdub3JlRHVyYXRpb249dC5pZ25vcmVEdXJhdGlvbiksdC5zaWQmJihlLnNpZD0zMj09PXQuc2lkLmxlbmd0aD90LnNpZDpVYSgpKSx2b2lkIDAhPT10LmluaXQmJihlLmluaXQ9dC5pbml0KSwhZS5kaWQmJnQuZGlkJiYoZS5kaWQ9YCR7dC5kaWR9YCksXCJudW1iZXJcIj09PXR5cGVvZiB0LnN0YXJ0ZWQmJihlLnN0YXJ0ZWQ9dC5zdGFydGVkKSxlLmlnbm9yZUR1cmF0aW9uKWUuZHVyYXRpb249dm9pZCAwO2Vsc2UgaWYoXCJudW1iZXJcIj09PXR5cGVvZiB0LmR1cmF0aW9uKWUuZHVyYXRpb249dC5kdXJhdGlvbjtlbHNle2NvbnN0IHQ9ZS50aW1lc3RhbXAtZS5zdGFydGVkO2UuZHVyYXRpb249dD49MD90OjB9dC5yZWxlYXNlJiYoZS5yZWxlYXNlPXQucmVsZWFzZSksdC5lbnZpcm9ubWVudCYmKGUuZW52aXJvbm1lbnQ9dC5lbnZpcm9ubWVudCksIWUuaXBBZGRyZXNzJiZ0LmlwQWRkcmVzcyYmKGUuaXBBZGRyZXNzPXQuaXBBZGRyZXNzKSwhZS51c2VyQWdlbnQmJnQudXNlckFnZW50JiYoZS51c2VyQWdlbnQ9dC51c2VyQWdlbnQpLFwibnVtYmVyXCI9PT10eXBlb2YgdC5lcnJvcnMmJihlLmVycm9ycz10LmVycm9ycyksdC5zdGF0dXMmJihlLnN0YXR1cz10LnN0YXR1cyl9Y2xhc3MgbnN7Y29uc3RydWN0b3IoKXt0aGlzLl9ub3RpZnlpbmdMaXN0ZW5lcnM9ITEsdGhpcy5fc2NvcGVMaXN0ZW5lcnM9W10sdGhpcy5fZXZlbnRQcm9jZXNzb3JzPVtdLHRoaXMuX2JyZWFkY3J1bWJzPVtdLHRoaXMuX2F0dGFjaG1lbnRzPVtdLHRoaXMuX3VzZXI9e30sdGhpcy5fdGFncz17fSx0aGlzLl9leHRyYT17fSx0aGlzLl9jb250ZXh0cz17fSx0aGlzLl9zZGtQcm9jZXNzaW5nTWV0YWRhdGE9e319c3RhdGljIGNsb25lKGUpe2NvbnN0IHQ9bmV3IG5zO3JldHVybiBlJiYodC5fYnJlYWRjcnVtYnM9Wy4uLmUuX2JyZWFkY3J1bWJzXSx0Ll90YWdzPXsuLi5lLl90YWdzfSx0Ll9leHRyYT17Li4uZS5fZXh0cmF9LHQuX2NvbnRleHRzPXsuLi5lLl9jb250ZXh0c30sdC5fdXNlcj1lLl91c2VyLHQuX2xldmVsPWUuX2xldmVsLHQuX3NwYW49ZS5fc3Bhbix0Ll9zZXNzaW9uPWUuX3Nlc3Npb24sdC5fdHJhbnNhY3Rpb25OYW1lPWUuX3RyYW5zYWN0aW9uTmFtZSx0Ll9maW5nZXJwcmludD1lLl9maW5nZXJwcmludCx0Ll9ldmVudFByb2Nlc3NvcnM9Wy4uLmUuX2V2ZW50UHJvY2Vzc29yc10sdC5fcmVxdWVzdFNlc3Npb249ZS5fcmVxdWVzdFNlc3Npb24sdC5fYXR0YWNobWVudHM9Wy4uLmUuX2F0dGFjaG1lbnRzXSx0Ll9zZGtQcm9jZXNzaW5nTWV0YWRhdGE9ey4uLmUuX3Nka1Byb2Nlc3NpbmdNZXRhZGF0YX0pLHR9YWRkU2NvcGVMaXN0ZW5lcihlKXt0aGlzLl9zY29wZUxpc3RlbmVycy5wdXNoKGUpfWFkZEV2ZW50UHJvY2Vzc29yKGUpe3JldHVybiB0aGlzLl9ldmVudFByb2Nlc3NvcnMucHVzaChlKSx0aGlzfXNldFVzZXIoZSl7cmV0dXJuIHRoaXMuX3VzZXI9ZXx8e30sdGhpcy5fc2Vzc2lvbiYmdHModGhpcy5fc2Vzc2lvbix7dXNlcjplfSksdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWdldFVzZXIoKXtyZXR1cm4gdGhpcy5fdXNlcn1nZXRSZXF1ZXN0U2Vzc2lvbigpe3JldHVybiB0aGlzLl9yZXF1ZXN0U2Vzc2lvbn1zZXRSZXF1ZXN0U2Vzc2lvbihlKXtyZXR1cm4gdGhpcy5fcmVxdWVzdFNlc3Npb249ZSx0aGlzfXNldFRhZ3MoZSl7cmV0dXJuIHRoaXMuX3RhZ3M9ey4uLnRoaXMuX3RhZ3MsLi4uZX0sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldFRhZyhlLHQpe3JldHVybiB0aGlzLl90YWdzPXsuLi50aGlzLl90YWdzLFtlXTp0fSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0RXh0cmFzKGUpe3JldHVybiB0aGlzLl9leHRyYT17Li4udGhpcy5fZXh0cmEsLi4uZX0sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldEV4dHJhKGUsdCl7cmV0dXJuIHRoaXMuX2V4dHJhPXsuLi50aGlzLl9leHRyYSxbZV06dH0sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfXNldEZpbmdlcnByaW50KGUpe3JldHVybiB0aGlzLl9maW5nZXJwcmludD1lLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31zZXRMZXZlbChlKXtyZXR1cm4gdGhpcy5fbGV2ZWw9ZSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0VHJhbnNhY3Rpb25OYW1lKGUpe3JldHVybiB0aGlzLl90cmFuc2FjdGlvbk5hbWU9ZSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0Q29udGV4dChlLHQpe3JldHVybiBudWxsPT09dD9kZWxldGUgdGhpcy5fY29udGV4dHNbZV06dGhpcy5fY29udGV4dHNbZV09dCx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9c2V0U3BhbihlKXtyZXR1cm4gdGhpcy5fc3Bhbj1lLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31nZXRTcGFuKCl7cmV0dXJuIHRoaXMuX3NwYW59Z2V0VHJhbnNhY3Rpb24oKXtjb25zdCBlPXRoaXMuZ2V0U3BhbigpO3JldHVybiBlJiZlLnRyYW5zYWN0aW9ufXNldFNlc3Npb24oZSl7cmV0dXJuIGU/dGhpcy5fc2Vzc2lvbj1lOmRlbGV0ZSB0aGlzLl9zZXNzaW9uLHRoaXMuX25vdGlmeVNjb3BlTGlzdGVuZXJzKCksdGhpc31nZXRTZXNzaW9uKCl7cmV0dXJuIHRoaXMuX3Nlc3Npb259dXBkYXRlKGUpe2lmKCFlKXJldHVybiB0aGlzO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXtjb25zdCB0PWUodGhpcyk7cmV0dXJuIHQgaW5zdGFuY2VvZiBucz90OnRoaXN9cmV0dXJuIGUgaW5zdGFuY2VvZiBucz8odGhpcy5fdGFncz17Li4udGhpcy5fdGFncywuLi5lLl90YWdzfSx0aGlzLl9leHRyYT17Li4udGhpcy5fZXh0cmEsLi4uZS5fZXh0cmF9LHRoaXMuX2NvbnRleHRzPXsuLi50aGlzLl9jb250ZXh0cywuLi5lLl9jb250ZXh0c30sZS5fdXNlciYmT2JqZWN0LmtleXMoZS5fdXNlcikubGVuZ3RoJiYodGhpcy5fdXNlcj1lLl91c2VyKSxlLl9sZXZlbCYmKHRoaXMuX2xldmVsPWUuX2xldmVsKSxlLl9maW5nZXJwcmludCYmKHRoaXMuX2ZpbmdlcnByaW50PWUuX2ZpbmdlcnByaW50KSxlLl9yZXF1ZXN0U2Vzc2lvbiYmKHRoaXMuX3JlcXVlc3RTZXNzaW9uPWUuX3JlcXVlc3RTZXNzaW9uKSk6V2EoZSkmJih0aGlzLl90YWdzPXsuLi50aGlzLl90YWdzLC4uLmUudGFnc30sdGhpcy5fZXh0cmE9ey4uLnRoaXMuX2V4dHJhLC4uLmUuZXh0cmF9LHRoaXMuX2NvbnRleHRzPXsuLi50aGlzLl9jb250ZXh0cywuLi5lLmNvbnRleHRzfSxlLnVzZXImJih0aGlzLl91c2VyPWUudXNlciksZS5sZXZlbCYmKHRoaXMuX2xldmVsPWUubGV2ZWwpLGUuZmluZ2VycHJpbnQmJih0aGlzLl9maW5nZXJwcmludD1lLmZpbmdlcnByaW50KSxlLnJlcXVlc3RTZXNzaW9uJiYodGhpcy5fcmVxdWVzdFNlc3Npb249ZS5yZXF1ZXN0U2Vzc2lvbikpLHRoaXN9Y2xlYXIoKXtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnM9W10sdGhpcy5fdGFncz17fSx0aGlzLl9leHRyYT17fSx0aGlzLl91c2VyPXt9LHRoaXMuX2NvbnRleHRzPXt9LHRoaXMuX2xldmVsPXZvaWQgMCx0aGlzLl90cmFuc2FjdGlvbk5hbWU9dm9pZCAwLHRoaXMuX2ZpbmdlcnByaW50PXZvaWQgMCx0aGlzLl9yZXF1ZXN0U2Vzc2lvbj12b2lkIDAsdGhpcy5fc3Bhbj12b2lkIDAsdGhpcy5fc2Vzc2lvbj12b2lkIDAsdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzLl9hdHRhY2htZW50cz1bXSx0aGlzfWFkZEJyZWFkY3J1bWIoZSx0KXtjb25zdCBuPVwibnVtYmVyXCI9PT10eXBlb2YgdD90OjEwMDtpZihuPD0wKXJldHVybiB0aGlzO2NvbnN0IHI9e3RpbWVzdGFtcDooMCxMYS55VykoKSwuLi5lfTtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnM9Wy4uLnRoaXMuX2JyZWFkY3J1bWJzLHJdLnNsaWNlKC1uKSx0aGlzLl9ub3RpZnlTY29wZUxpc3RlbmVycygpLHRoaXN9Z2V0TGFzdEJyZWFkY3J1bWIoKXtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnNbdGhpcy5fYnJlYWRjcnVtYnMubGVuZ3RoLTFdfWNsZWFyQnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy5fYnJlYWRjcnVtYnM9W10sdGhpcy5fbm90aWZ5U2NvcGVMaXN0ZW5lcnMoKSx0aGlzfWFkZEF0dGFjaG1lbnQoZSl7cmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRzLnB1c2goZSksdGhpc31nZXRBdHRhY2htZW50cygpe3JldHVybiB0aGlzLl9hdHRhY2htZW50c31jbGVhckF0dGFjaG1lbnRzKCl7cmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRzPVtdLHRoaXN9YXBwbHlUb0V2ZW50KGUsdD17fSl7aWYodGhpcy5fZXh0cmEmJk9iamVjdC5rZXlzKHRoaXMuX2V4dHJhKS5sZW5ndGgmJihlLmV4dHJhPXsuLi50aGlzLl9leHRyYSwuLi5lLmV4dHJhfSksdGhpcy5fdGFncyYmT2JqZWN0LmtleXModGhpcy5fdGFncykubGVuZ3RoJiYoZS50YWdzPXsuLi50aGlzLl90YWdzLC4uLmUudGFnc30pLHRoaXMuX3VzZXImJk9iamVjdC5rZXlzKHRoaXMuX3VzZXIpLmxlbmd0aCYmKGUudXNlcj17Li4udGhpcy5fdXNlciwuLi5lLnVzZXJ9KSx0aGlzLl9jb250ZXh0cyYmT2JqZWN0LmtleXModGhpcy5fY29udGV4dHMpLmxlbmd0aCYmKGUuY29udGV4dHM9ey4uLnRoaXMuX2NvbnRleHRzLC4uLmUuY29udGV4dHN9KSx0aGlzLl9sZXZlbCYmKGUubGV2ZWw9dGhpcy5fbGV2ZWwpLHRoaXMuX3RyYW5zYWN0aW9uTmFtZSYmKGUudHJhbnNhY3Rpb249dGhpcy5fdHJhbnNhY3Rpb25OYW1lKSx0aGlzLl9zcGFuKXtlLmNvbnRleHRzPXt0cmFjZTp0aGlzLl9zcGFuLmdldFRyYWNlQ29udGV4dCgpLC4uLmUuY29udGV4dHN9O2NvbnN0IHQ9dGhpcy5fc3Bhbi50cmFuc2FjdGlvbjtpZih0KXtlLnNka1Byb2Nlc3NpbmdNZXRhZGF0YT17ZHluYW1pY1NhbXBsaW5nQ29udGV4dDp0LmdldER5bmFtaWNTYW1wbGluZ0NvbnRleHQoKSwuLi5lLnNka1Byb2Nlc3NpbmdNZXRhZGF0YX07Y29uc3Qgbj10Lm5hbWU7biYmKGUudGFncz17dHJhbnNhY3Rpb246biwuLi5lLnRhZ3N9KX19cmV0dXJuIHRoaXMuX2FwcGx5RmluZ2VycHJpbnQoZSksZS5icmVhZGNydW1icz1bLi4uZS5icmVhZGNydW1ic3x8W10sLi4udGhpcy5fYnJlYWRjcnVtYnNdLGUuYnJlYWRjcnVtYnM9ZS5icmVhZGNydW1icy5sZW5ndGg+MD9lLmJyZWFkY3J1bWJzOnZvaWQgMCxlLnNka1Byb2Nlc3NpbmdNZXRhZGF0YT17Li4uZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGEsLi4udGhpcy5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhfSx0aGlzLl9ub3RpZnlFdmVudFByb2Nlc3NvcnMoWy4uLnJzKCksLi4udGhpcy5fZXZlbnRQcm9jZXNzb3JzXSxlLHQpfXNldFNES1Byb2Nlc3NpbmdNZXRhZGF0YShlKXtyZXR1cm4gdGhpcy5fc2RrUHJvY2Vzc2luZ01ldGFkYXRhPXsuLi50aGlzLl9zZGtQcm9jZXNzaW5nTWV0YWRhdGEsLi4uZX0sdGhpc31fbm90aWZ5RXZlbnRQcm9jZXNzb3JzKGUsdCxuLHI9MCl7cmV0dXJuIG5ldyAkYSgoKGksbyk9Pntjb25zdCBhPWVbcl07aWYobnVsbD09PXR8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhKWkodCk7ZWxzZXtjb25zdCBzPWEoey4uLnR9LG4pOyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZhLmlkJiZudWxsPT09cyYmeGEubG9nKGBFdmVudCBwcm9jZXNzb3IgXCIke2EuaWR9XCIgZHJvcHBlZCBldmVudGApLFZhKHMpP3MudGhlbigodD0+dGhpcy5fbm90aWZ5RXZlbnRQcm9jZXNzb3JzKGUsdCxuLHIrMSkudGhlbihpKSkpLnRoZW4obnVsbCxvKTp0aGlzLl9ub3RpZnlFdmVudFByb2Nlc3NvcnMoZSxzLG4scisxKS50aGVuKGkpLnRoZW4obnVsbCxvKX19KSl9X25vdGlmeVNjb3BlTGlzdGVuZXJzKCl7dGhpcy5fbm90aWZ5aW5nTGlzdGVuZXJzfHwodGhpcy5fbm90aWZ5aW5nTGlzdGVuZXJzPSEwLHRoaXMuX3Njb3BlTGlzdGVuZXJzLmZvckVhY2goKGU9PntlKHRoaXMpfSkpLHRoaXMuX25vdGlmeWluZ0xpc3RlbmVycz0hMSl9X2FwcGx5RmluZ2VycHJpbnQoZSl7dmFyIHQ7ZS5maW5nZXJwcmludD1lLmZpbmdlcnByaW50Pyh0PWUuZmluZ2VycHJpbnQsQXJyYXkuaXNBcnJheSh0KT90Olt0XSk6W10sdGhpcy5fZmluZ2VycHJpbnQmJihlLmZpbmdlcnByaW50PWUuZmluZ2VycHJpbnQuY29uY2F0KHRoaXMuX2ZpbmdlcnByaW50KSksZS5maW5nZXJwcmludCYmIWUuZmluZ2VycHJpbnQubGVuZ3RoJiZkZWxldGUgZS5maW5nZXJwcmludH19ZnVuY3Rpb24gcnMoKXtyZXR1cm4oMCxCYS5ZTykoXCJnbG9iYWxFdmVudFByb2Nlc3NvcnNcIiwoKCk9PltdKSl9Y29uc3QgaXM9MTAwO2NsYXNzIG9ze2NvbnN0cnVjdG9yKGUsdD1uZXcgbnMsbj00KXt0aGlzLl92ZXJzaW9uPW4sdGhpcy5fc3RhY2s9W3tzY29wZTp0fV0sZSYmdGhpcy5iaW5kQ2xpZW50KGUpfWlzT2xkZXJUaGFuKGUpe3JldHVybiB0aGlzLl92ZXJzaW9uPGV9YmluZENsaWVudChlKXt0aGlzLmdldFN0YWNrVG9wKCkuY2xpZW50PWUsZSYmZS5zZXR1cEludGVncmF0aW9ucyYmZS5zZXR1cEludGVncmF0aW9ucygpfXB1c2hTY29wZSgpe2NvbnN0IGU9bnMuY2xvbmUodGhpcy5nZXRTY29wZSgpKTtyZXR1cm4gdGhpcy5nZXRTdGFjaygpLnB1c2goe2NsaWVudDp0aGlzLmdldENsaWVudCgpLHNjb3BlOmV9KSxlfXBvcFNjb3BlKCl7cmV0dXJuISh0aGlzLmdldFN0YWNrKCkubGVuZ3RoPD0xKSYmISF0aGlzLmdldFN0YWNrKCkucG9wKCl9d2l0aFNjb3BlKGUpe2NvbnN0IHQ9dGhpcy5wdXNoU2NvcGUoKTt0cnl7ZSh0KX1maW5hbGx5e3RoaXMucG9wU2NvcGUoKX19Z2V0Q2xpZW50KCl7cmV0dXJuIHRoaXMuZ2V0U3RhY2tUb3AoKS5jbGllbnR9Z2V0U2NvcGUoKXtyZXR1cm4gdGhpcy5nZXRTdGFja1RvcCgpLnNjb3BlfWdldFN0YWNrKCl7cmV0dXJuIHRoaXMuX3N0YWNrfWdldFN0YWNrVG9wKCl7cmV0dXJuIHRoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXX1jYXB0dXJlRXhjZXB0aW9uKGUsdCl7Y29uc3Qgbj10aGlzLl9sYXN0RXZlbnRJZD10JiZ0LmV2ZW50X2lkP3QuZXZlbnRfaWQ6VWEoKSxyPW5ldyBFcnJvcihcIlNlbnRyeSBzeW50aGV0aWNFeGNlcHRpb25cIik7cmV0dXJuIHRoaXMuX3dpdGhDbGllbnQoKChpLG8pPT57aS5jYXB0dXJlRXhjZXB0aW9uKGUse29yaWdpbmFsRXhjZXB0aW9uOmUsc3ludGhldGljRXhjZXB0aW9uOnIsLi4udCxldmVudF9pZDpufSxvKX0pKSxufWNhcHR1cmVNZXNzYWdlKGUsdCxuKXtjb25zdCByPXRoaXMuX2xhc3RFdmVudElkPW4mJm4uZXZlbnRfaWQ/bi5ldmVudF9pZDpVYSgpLGk9bmV3IEVycm9yKGUpO3JldHVybiB0aGlzLl93aXRoQ2xpZW50KCgobyxhKT0+e28uY2FwdHVyZU1lc3NhZ2UoZSx0LHtvcmlnaW5hbEV4Y2VwdGlvbjplLHN5bnRoZXRpY0V4Y2VwdGlvbjppLC4uLm4sZXZlbnRfaWQ6cn0sYSl9KSkscn1jYXB0dXJlRXZlbnQoZSx0KXtjb25zdCBuPXQmJnQuZXZlbnRfaWQ/dC5ldmVudF9pZDpVYSgpO3JldHVybiBlLnR5cGV8fCh0aGlzLl9sYXN0RXZlbnRJZD1uKSx0aGlzLl93aXRoQ2xpZW50KCgocixpKT0+e3IuY2FwdHVyZUV2ZW50KGUsey4uLnQsZXZlbnRfaWQ6bn0saSl9KSksbn1sYXN0RXZlbnRJZCgpe3JldHVybiB0aGlzLl9sYXN0RXZlbnRJZH1hZGRCcmVhZGNydW1iKGUsdCl7Y29uc3R7c2NvcGU6bixjbGllbnQ6cn09dGhpcy5nZXRTdGFja1RvcCgpO2lmKCFyKXJldHVybjtjb25zdHtiZWZvcmVCcmVhZGNydW1iOmk9bnVsbCxtYXhCcmVhZGNydW1iczpvPWlzfT1yLmdldE9wdGlvbnMmJnIuZ2V0T3B0aW9ucygpfHx7fTtpZihvPD0wKXJldHVybjtjb25zdCBhPXt0aW1lc3RhbXA6KDAsTGEueVcpKCksLi4uZX0scz1pP0RhKCgoKT0+aShhLHQpKSk6YTtudWxsIT09cyYmKHIuZW1pdCYmci5lbWl0KFwiYmVmb3JlQWRkQnJlYWRjcnVtYlwiLHMsdCksbi5hZGRCcmVhZGNydW1iKHMsbykpfXNldFVzZXIoZSl7dGhpcy5nZXRTY29wZSgpLnNldFVzZXIoZSl9c2V0VGFncyhlKXt0aGlzLmdldFNjb3BlKCkuc2V0VGFncyhlKX1zZXRFeHRyYXMoZSl7dGhpcy5nZXRTY29wZSgpLnNldEV4dHJhcyhlKX1zZXRUYWcoZSx0KXt0aGlzLmdldFNjb3BlKCkuc2V0VGFnKGUsdCl9c2V0RXh0cmEoZSx0KXt0aGlzLmdldFNjb3BlKCkuc2V0RXh0cmEoZSx0KX1zZXRDb250ZXh0KGUsdCl7dGhpcy5nZXRTY29wZSgpLnNldENvbnRleHQoZSx0KX1jb25maWd1cmVTY29wZShlKXtjb25zdHtzY29wZTp0LGNsaWVudDpufT10aGlzLmdldFN0YWNrVG9wKCk7biYmZSh0KX1ydW4oZSl7Y29uc3QgdD1zcyh0aGlzKTt0cnl7ZSh0aGlzKX1maW5hbGx5e3NzKHQpfX1nZXRJbnRlZ3JhdGlvbihlKXtjb25zdCB0PXRoaXMuZ2V0Q2xpZW50KCk7aWYoIXQpcmV0dXJuIG51bGw7dHJ5e3JldHVybiB0LmdldEludGVncmF0aW9uKGUpfWNhdGNoKG4pe3JldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS53YXJuKGBDYW5ub3QgcmV0cmlldmUgaW50ZWdyYXRpb24gJHtlLmlkfSBmcm9tIHRoZSBjdXJyZW50IEh1YmApLG51bGx9fXN0YXJ0VHJhbnNhY3Rpb24oZSx0KXtjb25zdCBuPXRoaXMuX2NhbGxFeHRlbnNpb25NZXRob2QoXCJzdGFydFRyYW5zYWN0aW9uXCIsZSx0KTtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX18mJiFfX1NFTlRSWV9ERUJVR19ffHxufHxjb25zb2xlLndhcm4oXCJUcmFjaW5nIGV4dGVuc2lvbiAnc3RhcnRUcmFuc2FjdGlvbicgaGFzIG5vdCBiZWVuIGFkZGVkLiBDYWxsICdhZGRUcmFjaW5nRXh0ZW5zaW9ucycgYmVmb3JlIGNhbGxpbmcgJ2luaXQnOlxcblNlbnRyeS5hZGRUcmFjaW5nRXh0ZW5zaW9ucygpO1xcblNlbnRyeS5pbml0KHsuLi59KTtcXG5cIiksbn10cmFjZUhlYWRlcnMoKXtyZXR1cm4gdGhpcy5fY2FsbEV4dGVuc2lvbk1ldGhvZChcInRyYWNlSGVhZGVyc1wiKX1jYXB0dXJlU2Vzc2lvbihlPSExKXtpZihlKXJldHVybiB0aGlzLmVuZFNlc3Npb24oKTt0aGlzLl9zZW5kU2Vzc2lvblVwZGF0ZSgpfWVuZFNlc3Npb24oKXtjb25zdCBlPXRoaXMuZ2V0U3RhY2tUb3AoKS5zY29wZSx0PWUuZ2V0U2Vzc2lvbigpO3QmJmZ1bmN0aW9uKGUsdCl7bGV0IG49e307dD9uPXtzdGF0dXM6dH06XCJva1wiPT09ZS5zdGF0dXMmJihuPXtzdGF0dXM6XCJleGl0ZWRcIn0pLHRzKGUsbil9KHQpLHRoaXMuX3NlbmRTZXNzaW9uVXBkYXRlKCksZS5zZXRTZXNzaW9uKCl9c3RhcnRTZXNzaW9uKGUpe2NvbnN0e3Njb3BlOnQsY2xpZW50Om59PXRoaXMuZ2V0U3RhY2tUb3AoKSx7cmVsZWFzZTpyLGVudmlyb25tZW50Omk9WGF9PW4mJm4uZ2V0T3B0aW9ucygpfHx7fSx7dXNlckFnZW50Om99PUJhLm4yLm5hdmlnYXRvcnx8e30sYT1lcyh7cmVsZWFzZTpyLGVudmlyb25tZW50OmksdXNlcjp0LmdldFVzZXIoKSwuLi5vJiZ7dXNlckFnZW50Om99LC4uLmV9KSxzPXQuZ2V0U2Vzc2lvbiYmdC5nZXRTZXNzaW9uKCk7cmV0dXJuIHMmJlwib2tcIj09PXMuc3RhdHVzJiZ0cyhzLHtzdGF0dXM6XCJleGl0ZWRcIn0pLHRoaXMuZW5kU2Vzc2lvbigpLHQuc2V0U2Vzc2lvbihhKSxhfXNob3VsZFNlbmREZWZhdWx0UGlpKCl7Y29uc3QgZT10aGlzLmdldENsaWVudCgpLHQ9ZSYmZS5nZXRPcHRpb25zKCk7cmV0dXJuIEJvb2xlYW4odCYmdC5zZW5kRGVmYXVsdFBpaSl9X3NlbmRTZXNzaW9uVXBkYXRlKCl7Y29uc3R7c2NvcGU6ZSxjbGllbnQ6dH09dGhpcy5nZXRTdGFja1RvcCgpLG49ZS5nZXRTZXNzaW9uKCk7biYmdCYmdC5jYXB0dXJlU2Vzc2lvbiYmdC5jYXB0dXJlU2Vzc2lvbihuKX1fd2l0aENsaWVudChlKXtjb25zdHtzY29wZTp0LGNsaWVudDpufT10aGlzLmdldFN0YWNrVG9wKCk7biYmZShuLHQpfV9jYWxsRXh0ZW5zaW9uTWV0aG9kKGUsLi4udCl7Y29uc3Qgbj1hcygpLl9fU0VOVFJZX187aWYobiYmbi5leHRlbnNpb25zJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5leHRlbnNpb25zW2VdKXJldHVybiBuLmV4dGVuc2lvbnNbZV0uYXBwbHkodGhpcyx0KTsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEud2FybihgRXh0ZW5zaW9uIG1ldGhvZCAke2V9IGNvdWxkbid0IGJlIGZvdW5kLCBkb2luZyBub3RoaW5nLmApfX1mdW5jdGlvbiBhcygpe3JldHVybiBCYS5uMi5fX1NFTlRSWV9fPUJhLm4yLl9fU0VOVFJZX198fHtleHRlbnNpb25zOnt9LGh1Yjp2b2lkIDB9LEJhLm4yfWZ1bmN0aW9uIHNzKGUpe2NvbnN0IHQ9YXMoKSxuPWRzKHQpO3JldHVybiBwcyh0LGUpLG59ZnVuY3Rpb24gY3MoKXtjb25zdCBlPWFzKCk7aWYoZS5fX1NFTlRSWV9fJiZlLl9fU0VOVFJZX18uYWNzKXtjb25zdCB0PWUuX19TRU5UUllfXy5hY3MuZ2V0Q3VycmVudEh1YigpO2lmKHQpcmV0dXJuIHR9cmV0dXJuIHVzKGUpfWZ1bmN0aW9uIHVzKGU9YXMoKSl7cmV0dXJuIGxzKGUpJiYhZHMoZSkuaXNPbGRlclRoYW4oNCl8fHBzKGUsbmV3IG9zKSxkcyhlKX1mdW5jdGlvbiBscyhlKXtyZXR1cm4hIShlJiZlLl9fU0VOVFJZX18mJmUuX19TRU5UUllfXy5odWIpfWZ1bmN0aW9uIGRzKGUpe3JldHVybigwLEJhLllPKShcImh1YlwiLCgoKT0+bmV3IG9zKSxlKX1mdW5jdGlvbiBwcyhlLHQpe2lmKCFlKXJldHVybiExO3JldHVybihlLl9fU0VOVFJZX189ZS5fX1NFTlRSWV9ffHx7fSkuaHViPXQsITB9Y2xhc3MgZnMgZXh0ZW5kcyBKYXtfX2luaXQoKXt0aGlzLl9tZWFzdXJlbWVudHM9e319X19pbml0Migpe3RoaXMuX2NvbnRleHRzPXt9fV9faW5pdDMoKXt0aGlzLl9mcm96ZW5EeW5hbWljU2FtcGxpbmdDb250ZXh0PXZvaWQgMH1jb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUpLGZzLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSxmcy5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpLGZzLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyksdGhpcy5faHViPXR8fGNzKCksdGhpcy5fbmFtZT1lLm5hbWV8fFwiXCIsdGhpcy5tZXRhZGF0YT17c291cmNlOlwiY3VzdG9tXCIsLi4uZS5tZXRhZGF0YSxzcGFuTWV0YWRhdGE6e319LHRoaXMuX3RyaW1FbmQ9ZS50cmltRW5kLHRoaXMudHJhbnNhY3Rpb249dGhpcztjb25zdCBuPXRoaXMubWV0YWRhdGEuZHluYW1pY1NhbXBsaW5nQ29udGV4dDtuJiYodGhpcy5fZnJvemVuRHluYW1pY1NhbXBsaW5nQ29udGV4dD17Li4ubn0pfWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9c2V0IG5hbWUoZSl7dGhpcy5zZXROYW1lKGUpfXNldE5hbWUoZSx0PVwiY3VzdG9tXCIpe3RoaXMuX25hbWU9ZSx0aGlzLm1ldGFkYXRhLnNvdXJjZT10fWluaXRTcGFuUmVjb3JkZXIoZT0xZTMpe3RoaXMuc3BhblJlY29yZGVyfHwodGhpcy5zcGFuUmVjb3JkZXI9bmV3IFphKGUpKSx0aGlzLnNwYW5SZWNvcmRlci5hZGQodGhpcyl9c2V0Q29udGV4dChlLHQpe251bGw9PT10P2RlbGV0ZSB0aGlzLl9jb250ZXh0c1tlXTp0aGlzLl9jb250ZXh0c1tlXT10fXNldE1lYXN1cmVtZW50KGUsdCxuPVwiXCIpe3RoaXMuX21lYXN1cmVtZW50c1tlXT17dmFsdWU6dCx1bml0Om59fXNldE1ldGFkYXRhKGUpe3RoaXMubWV0YWRhdGE9ey4uLnRoaXMubWV0YWRhdGEsLi4uZX19ZmluaXNoKGUpe2lmKHZvaWQgMCE9PXRoaXMuZW5kVGltZXN0YW1wKXJldHVybjt0aGlzLm5hbWV8fCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEud2FybihcIlRyYW5zYWN0aW9uIGhhcyBubyBuYW1lLCBmYWxsaW5nIGJhY2sgdG8gYDx1bmxhYmVsZWQgdHJhbnNhY3Rpb24+YC5cIiksdGhpcy5uYW1lPVwiPHVubGFiZWxlZCB0cmFuc2FjdGlvbj5cIiksc3VwZXIuZmluaXNoKGUpO2NvbnN0IHQ9dGhpcy5faHViLmdldENsaWVudCgpO2lmKHQmJnQuZW1pdCYmdC5lbWl0KFwiZmluaXNoVHJhbnNhY3Rpb25cIix0aGlzKSwhMCE9PXRoaXMuc2FtcGxlZClyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW1RyYWNpbmddIERpc2NhcmRpbmcgdHJhbnNhY3Rpb24gYmVjYXVzZSBpdHMgdHJhY2Ugd2FzIG5vdCBjaG9zZW4gdG8gYmUgc2FtcGxlZC5cIiksdm9pZCh0JiZ0LnJlY29yZERyb3BwZWRFdmVudChcInNhbXBsZV9yYXRlXCIsXCJ0cmFuc2FjdGlvblwiKSk7Y29uc3Qgbj10aGlzLnNwYW5SZWNvcmRlcj90aGlzLnNwYW5SZWNvcmRlci5zcGFucy5maWx0ZXIoKGU9PmUhPT10aGlzJiZlLmVuZFRpbWVzdGFtcCkpOltdO3RoaXMuX3RyaW1FbmQmJm4ubGVuZ3RoPjAmJih0aGlzLmVuZFRpbWVzdGFtcD1uLnJlZHVjZSgoKGUsdCk9PmUuZW5kVGltZXN0YW1wJiZ0LmVuZFRpbWVzdGFtcD9lLmVuZFRpbWVzdGFtcD50LmVuZFRpbWVzdGFtcD9lOnQ6ZSkpLmVuZFRpbWVzdGFtcCk7Y29uc3Qgcj10aGlzLm1ldGFkYXRhLGk9e2NvbnRleHRzOnsuLi50aGlzLl9jb250ZXh0cyx0cmFjZTp0aGlzLmdldFRyYWNlQ29udGV4dCgpfSxzcGFuczpuLHN0YXJ0X3RpbWVzdGFtcDp0aGlzLnN0YXJ0VGltZXN0YW1wLHRhZ3M6dGhpcy50YWdzLHRpbWVzdGFtcDp0aGlzLmVuZFRpbWVzdGFtcCx0cmFuc2FjdGlvbjp0aGlzLm5hbWUsdHlwZTpcInRyYW5zYWN0aW9uXCIsc2RrUHJvY2Vzc2luZ01ldGFkYXRhOnsuLi5yLGR5bmFtaWNTYW1wbGluZ0NvbnRleHQ6dGhpcy5nZXREeW5hbWljU2FtcGxpbmdDb250ZXh0KCl9LC4uLnIuc291cmNlJiZ7dHJhbnNhY3Rpb25faW5mbzp7c291cmNlOnIuc291cmNlfX19O3JldHVybiBPYmplY3Qua2V5cyh0aGlzLl9tZWFzdXJlbWVudHMpLmxlbmd0aD4wJiYoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhcIltNZWFzdXJlbWVudHNdIEFkZGluZyBtZWFzdXJlbWVudHMgdG8gdHJhbnNhY3Rpb25cIixKU09OLnN0cmluZ2lmeSh0aGlzLl9tZWFzdXJlbWVudHMsdm9pZCAwLDIpKSxpLm1lYXN1cmVtZW50cz10aGlzLl9tZWFzdXJlbWVudHMpLChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coYFtUcmFjaW5nXSBGaW5pc2hpbmcgJHt0aGlzLm9wfSB0cmFuc2FjdGlvbjogJHt0aGlzLm5hbWV9LmApLHRoaXMuX2h1Yi5jYXB0dXJlRXZlbnQoaSl9dG9Db250ZXh0KCl7cmV0dXJuIFlhKHsuLi5zdXBlci50b0NvbnRleHQoKSxuYW1lOnRoaXMubmFtZSx0cmltRW5kOnRoaXMuX3RyaW1FbmR9KX11cGRhdGVXaXRoQ29udGV4dChlKXtyZXR1cm4gc3VwZXIudXBkYXRlV2l0aENvbnRleHQoZSksdGhpcy5uYW1lPWUubmFtZXx8XCJcIix0aGlzLl90cmltRW5kPWUudHJpbUVuZCx0aGlzfWdldER5bmFtaWNTYW1wbGluZ0NvbnRleHQoKXtpZih0aGlzLl9mcm96ZW5EeW5hbWljU2FtcGxpbmdDb250ZXh0KXJldHVybiB0aGlzLl9mcm96ZW5EeW5hbWljU2FtcGxpbmdDb250ZXh0O2NvbnN0IGU9dGhpcy5faHVifHxjcygpLHQ9ZSYmZS5nZXRDbGllbnQoKTtpZighdClyZXR1cm57fTtjb25zdHtlbnZpcm9ubWVudDpuLHJlbGVhc2U6cn09dC5nZXRPcHRpb25zKCl8fHt9LHtwdWJsaWNLZXk6aX09dC5nZXREc24oKXx8e30sbz10aGlzLm1ldGFkYXRhLnNhbXBsZVJhdGUsYT12b2lkIDAhPT1vP28udG9TdHJpbmcoKTp2b2lkIDAse3NlZ21lbnQ6c309ZS5nZXRTY29wZSgpLmdldFVzZXIoKXx8e30sYz10aGlzLm1ldGFkYXRhLnNvdXJjZSx1PWMmJlwidXJsXCIhPT1jP3RoaXMubmFtZTp2b2lkIDAsbD1ZYSh7ZW52aXJvbm1lbnQ6bnx8WGEscmVsZWFzZTpyLHRyYW5zYWN0aW9uOnUsdXNlcl9zZWdtZW50OnMscHVibGljX2tleTppLHRyYWNlX2lkOnRoaXMudHJhY2VJZCxzYW1wbGVfcmF0ZTphfSk7cmV0dXJuIHQuZW1pdCYmdC5lbWl0KFwiY3JlYXRlRHNjXCIsbCksbH1zZXRIdWIoZSl7dGhpcy5faHViPWV9fWNvbnN0IGhzPXtpZGxlVGltZW91dDoxZTMsZmluYWxUaW1lb3V0OjNlNCxoZWFydGJlYXRJbnRlcnZhbDo1ZTN9LGdzPVtcImhlYXJ0YmVhdEZhaWxlZFwiLFwiaWRsZVRpbWVvdXRcIixcImRvY3VtZW50SGlkZGVuXCIsXCJmaW5hbFRpbWVvdXRcIixcImV4dGVybmFsRmluaXNoXCIsXCJjYW5jZWxsZWRcIl07Y2xhc3MgbXMgZXh0ZW5kcyBaYXtjb25zdHJ1Y3RvcihlLHQsbixyKXtzdXBlcihyKSx0aGlzLl9wdXNoQWN0aXZpdHk9ZSx0aGlzLl9wb3BBY3Rpdml0eT10LHRoaXMudHJhbnNhY3Rpb25TcGFuSWQ9bn1hZGQoZSl7ZS5zcGFuSWQhPT10aGlzLnRyYW5zYWN0aW9uU3BhbklkJiYoZS5maW5pc2g9dD0+e2UuZW5kVGltZXN0YW1wPVwibnVtYmVyXCI9PT10eXBlb2YgdD90OigwLExhLnBoKSgpLHRoaXMuX3BvcEFjdGl2aXR5KGUuc3BhbklkKX0sdm9pZCAwPT09ZS5lbmRUaW1lc3RhbXAmJnRoaXMuX3B1c2hBY3Rpdml0eShlLnNwYW5JZCkpLHN1cGVyLmFkZChlKX19Y2xhc3MgdnMgZXh0ZW5kcyBmc3tfX2luaXQoKXt0aGlzLmFjdGl2aXRpZXM9e319X19pbml0Migpe3RoaXMuX2hlYXJ0YmVhdENvdW50ZXI9MH1fX2luaXQzKCl7dGhpcy5fZmluaXNoZWQ9ITF9X19pbml0NCgpe3RoaXMuX2lkbGVUaW1lb3V0Q2FuY2VsZWRQZXJtYW5lbnRseT0hMX1fX2luaXQ1KCl7dGhpcy5fYmVmb3JlRmluaXNoQ2FsbGJhY2tzPVtdfV9faW5pdDYoKXt0aGlzLl9maW5pc2hSZWFzb249Z3NbNF19Y29uc3RydWN0b3IoZSx0LG49aHMuaWRsZVRpbWVvdXQscj1ocy5maW5hbFRpbWVvdXQsaT1ocy5oZWFydGJlYXRJbnRlcnZhbCxvPSExKXtzdXBlcihlLHQpLHRoaXMuX2lkbGVIdWI9dCx0aGlzLl9pZGxlVGltZW91dD1uLHRoaXMuX2ZpbmFsVGltZW91dD1yLHRoaXMuX2hlYXJ0YmVhdEludGVydmFsPWksdGhpcy5fb25TY29wZT1vLHZzLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSx2cy5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpLHZzLnByb3RvdHlwZS5fX2luaXQzLmNhbGwodGhpcyksdnMucHJvdG90eXBlLl9faW5pdDQuY2FsbCh0aGlzKSx2cy5wcm90b3R5cGUuX19pbml0NS5jYWxsKHRoaXMpLHZzLnByb3RvdHlwZS5fX2luaXQ2LmNhbGwodGhpcyksbyYmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coYFNldHRpbmcgaWRsZSB0cmFuc2FjdGlvbiBvbiBzY29wZS4gU3BhbiBJRDogJHt0aGlzLnNwYW5JZH1gKSx0LmNvbmZpZ3VyZVNjb3BlKChlPT5lLnNldFNwYW4odGhpcykpKSksdGhpcy5fcmVzdGFydElkbGVUaW1lb3V0KCksc2V0VGltZW91dCgoKCk9Pnt0aGlzLl9maW5pc2hlZHx8KHRoaXMuc2V0U3RhdHVzKFwiZGVhZGxpbmVfZXhjZWVkZWRcIiksdGhpcy5fZmluaXNoUmVhc29uPWdzWzNdLHRoaXMuZmluaXNoKCkpfSksdGhpcy5fZmluYWxUaW1lb3V0KX1maW5pc2goZT0oMCxMYS5waCkoKSl7aWYodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5hY3Rpdml0aWVzPXt9LFwidWkuYWN0aW9uLmNsaWNrXCI9PT10aGlzLm9wJiZ0aGlzLnNldFRhZyhcImZpbmlzaFJlYXNvblwiLHRoaXMuX2ZpbmlzaFJlYXNvbiksdGhpcy5zcGFuUmVjb3JkZXIpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coXCJbVHJhY2luZ10gZmluaXNoaW5nIElkbGVUcmFuc2FjdGlvblwiLG5ldyBEYXRlKDFlMyplKS50b0lTT1N0cmluZygpLHRoaXMub3ApO2Zvcihjb25zdCB0IG9mIHRoaXMuX2JlZm9yZUZpbmlzaENhbGxiYWNrcyl0KHRoaXMsZSk7dGhpcy5zcGFuUmVjb3JkZXIuc3BhbnM9dGhpcy5zcGFuUmVjb3JkZXIuc3BhbnMuZmlsdGVyKCh0PT57aWYodC5zcGFuSWQ9PT10aGlzLnNwYW5JZClyZXR1cm4hMDt0LmVuZFRpbWVzdGFtcHx8KHQuZW5kVGltZXN0YW1wPWUsdC5zZXRTdGF0dXMoXCJjYW5jZWxsZWRcIiksKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhcIltUcmFjaW5nXSBjYW5jZWxsaW5nIHNwYW4gc2luY2UgdHJhbnNhY3Rpb24gZW5kZWQgZWFybHlcIixKU09OLnN0cmluZ2lmeSh0LHZvaWQgMCwyKSkpO2NvbnN0IG49dC5zdGFydFRpbWVzdGFtcDxlO3JldHVybiBufHwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW1RyYWNpbmddIGRpc2NhcmRpbmcgU3BhbiBzaW5jZSBpdCBoYXBwZW5lZCBhZnRlciBUcmFuc2FjdGlvbiB3YXMgZmluaXNoZWRcIixKU09OLnN0cmluZ2lmeSh0LHZvaWQgMCwyKSksbn0pKSwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW1RyYWNpbmddIGZsdXNoaW5nIElkbGVUcmFuc2FjdGlvblwiKX1lbHNlKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhcIltUcmFjaW5nXSBObyBhY3RpdmUgSWRsZVRyYW5zYWN0aW9uXCIpO2lmKHRoaXMuX29uU2NvcGUpe2NvbnN0IGU9dGhpcy5faWRsZUh1Yi5nZXRTY29wZSgpO2UuZ2V0VHJhbnNhY3Rpb24oKT09PXRoaXMmJmUuc2V0U3Bhbih2b2lkIDApfXJldHVybiBzdXBlci5maW5pc2goZSl9cmVnaXN0ZXJCZWZvcmVGaW5pc2hDYWxsYmFjayhlKXt0aGlzLl9iZWZvcmVGaW5pc2hDYWxsYmFja3MucHVzaChlKX1pbml0U3BhblJlY29yZGVyKGUpe2lmKCF0aGlzLnNwYW5SZWNvcmRlcil7Y29uc3QgdD1lPT57dGhpcy5fZmluaXNoZWR8fHRoaXMuX3B1c2hBY3Rpdml0eShlKX0sbj1lPT57dGhpcy5fZmluaXNoZWR8fHRoaXMuX3BvcEFjdGl2aXR5KGUpfTt0aGlzLnNwYW5SZWNvcmRlcj1uZXcgbXModCxuLHRoaXMuc3BhbklkLGUpLChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coXCJTdGFydGluZyBoZWFydGJlYXRcIiksdGhpcy5fcGluZ0hlYXJ0YmVhdCgpfXRoaXMuc3BhblJlY29yZGVyLmFkZCh0aGlzKX1jYW5jZWxJZGxlVGltZW91dChlLHtyZXN0YXJ0T25DaGlsZFNwYW5DaGFuZ2U6dH09e3Jlc3RhcnRPbkNoaWxkU3BhbkNoYW5nZTohMH0pe3RoaXMuX2lkbGVUaW1lb3V0Q2FuY2VsZWRQZXJtYW5lbnRseT0hMT09PXQsdGhpcy5faWRsZVRpbWVvdXRJRCYmKGNsZWFyVGltZW91dCh0aGlzLl9pZGxlVGltZW91dElEKSx0aGlzLl9pZGxlVGltZW91dElEPXZvaWQgMCwwPT09T2JqZWN0LmtleXModGhpcy5hY3Rpdml0aWVzKS5sZW5ndGgmJnRoaXMuX2lkbGVUaW1lb3V0Q2FuY2VsZWRQZXJtYW5lbnRseSYmKHRoaXMuX2ZpbmlzaFJlYXNvbj1nc1s1XSx0aGlzLmZpbmlzaChlKSkpfXNldEZpbmlzaFJlYXNvbihlKXt0aGlzLl9maW5pc2hSZWFzb249ZX1fcmVzdGFydElkbGVUaW1lb3V0KGUpe3RoaXMuY2FuY2VsSWRsZVRpbWVvdXQoKSx0aGlzLl9pZGxlVGltZW91dElEPXNldFRpbWVvdXQoKCgpPT57dGhpcy5fZmluaXNoZWR8fDAhPT1PYmplY3Qua2V5cyh0aGlzLmFjdGl2aXRpZXMpLmxlbmd0aHx8KHRoaXMuX2ZpbmlzaFJlYXNvbj1nc1sxXSx0aGlzLmZpbmlzaChlKSl9KSx0aGlzLl9pZGxlVGltZW91dCl9X3B1c2hBY3Rpdml0eShlKXt0aGlzLmNhbmNlbElkbGVUaW1lb3V0KHZvaWQgMCx7cmVzdGFydE9uQ2hpbGRTcGFuQ2hhbmdlOiF0aGlzLl9pZGxlVGltZW91dENhbmNlbGVkUGVybWFuZW50bHl9KSwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKGBbVHJhY2luZ10gcHVzaEFjdGl2aXR5OiAke2V9YCksdGhpcy5hY3Rpdml0aWVzW2VdPSEwLChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coXCJbVHJhY2luZ10gbmV3IGFjdGl2aXRpZXMgY291bnRcIixPYmplY3Qua2V5cyh0aGlzLmFjdGl2aXRpZXMpLmxlbmd0aCl9X3BvcEFjdGl2aXR5KGUpe2lmKHRoaXMuYWN0aXZpdGllc1tlXSYmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coYFtUcmFjaW5nXSBwb3BBY3Rpdml0eSAke2V9YCksZGVsZXRlIHRoaXMuYWN0aXZpdGllc1tlXSwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW1RyYWNpbmddIG5ldyBhY3Rpdml0aWVzIGNvdW50XCIsT2JqZWN0LmtleXModGhpcy5hY3Rpdml0aWVzKS5sZW5ndGgpKSwwPT09T2JqZWN0LmtleXModGhpcy5hY3Rpdml0aWVzKS5sZW5ndGgpe2NvbnN0IGU9KDAsTGEucGgpKCk7dGhpcy5faWRsZVRpbWVvdXRDYW5jZWxlZFBlcm1hbmVudGx5Pyh0aGlzLl9maW5pc2hSZWFzb249Z3NbNV0sdGhpcy5maW5pc2goZSkpOnRoaXMuX3Jlc3RhcnRJZGxlVGltZW91dChlK3RoaXMuX2lkbGVUaW1lb3V0LzFlMyl9fV9iZWF0KCl7aWYodGhpcy5fZmluaXNoZWQpcmV0dXJuO2NvbnN0IGU9T2JqZWN0LmtleXModGhpcy5hY3Rpdml0aWVzKS5qb2luKFwiXCIpO2U9PT10aGlzLl9wcmV2SGVhcnRiZWF0U3RyaW5nP3RoaXMuX2hlYXJ0YmVhdENvdW50ZXIrKzp0aGlzLl9oZWFydGJlYXRDb3VudGVyPTEsdGhpcy5fcHJldkhlYXJ0YmVhdFN0cmluZz1lLHRoaXMuX2hlYXJ0YmVhdENvdW50ZXI+PTM/KChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coXCJbVHJhY2luZ10gVHJhbnNhY3Rpb24gZmluaXNoZWQgYmVjYXVzZSBvZiBubyBjaGFuZ2UgZm9yIDMgaGVhcnQgYmVhdHNcIiksdGhpcy5zZXRTdGF0dXMoXCJkZWFkbGluZV9leGNlZWRlZFwiKSx0aGlzLl9maW5pc2hSZWFzb249Z3NbMF0sdGhpcy5maW5pc2goKSk6dGhpcy5fcGluZ0hlYXJ0YmVhdCgpfV9waW5nSGVhcnRiZWF0KCl7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhgcGluZ2luZyBIZWFydGJlYXQgLT4gY3VycmVudCBjb3VudGVyOiAke3RoaXMuX2hlYXJ0YmVhdENvdW50ZXJ9YCksc2V0VGltZW91dCgoKCk9Pnt0aGlzLl9iZWF0KCl9KSx0aGlzLl9oZWFydGJlYXRJbnRlcnZhbCl9fWZ1bmN0aW9uIF9zKGUpe2lmKFwiYm9vbGVhblwiPT09dHlwZW9mIF9fU0VOVFJZX1RSQUNJTkdfXyYmIV9fU0VOVFJZX1RSQUNJTkdfXylyZXR1cm4hMTtjb25zdCB0PWNzKCkuZ2V0Q2xpZW50KCksbj1lfHx0JiZ0LmdldE9wdGlvbnMoKTtyZXR1cm4hIW4mJihuLmVuYWJsZVRyYWNpbmd8fFwidHJhY2VzU2FtcGxlUmF0ZVwiaW4gbnx8XCJ0cmFjZXNTYW1wbGVyXCJpbiBuKX1jb25zdCBFcz1cIjxhbm9ueW1vdXM+XCI7ZnVuY3Rpb24gYnMoZSl7dHJ5e3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSYmZS5uYW1lfHxFc31jYXRjaCh0KXtyZXR1cm4gRXN9fWNvbnN0IFNzPSgwLEJhLlJmKSgpO2Z1bmN0aW9uIHlzKCl7aWYoIShcImZldGNoXCJpbiBTcykpcmV0dXJuITE7dHJ5e3JldHVybiBuZXcgSGVhZGVycyxuZXcgUmVxdWVzdChcImh0dHA6Ly93d3cuZXhhbXBsZS5jb21cIiksbmV3IFJlc3BvbnNlLCEwfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBUcyhlKXtyZXR1cm4gZSYmL15mdW5jdGlvbiBmZXRjaFxcKFxcKVxccytcXHtcXHMrXFxbbmF0aXZlIGNvZGVcXF1cXHMrXFx9JC8udGVzdChlLnRvU3RyaW5nKCkpfWNvbnN0IElzPSgwLEJhLlJmKSgpO2NvbnN0IE9zPSgwLEJhLlJmKSgpLEFzPXt9LENzPXt9O2Z1bmN0aW9uIE5zKGUpe2lmKCFDc1tlXSlzd2l0Y2goQ3NbZV09ITAsZSl7Y2FzZVwiY29uc29sZVwiOiFmdW5jdGlvbigpe2lmKCEoXCJjb25zb2xlXCJpbiBPcykpcmV0dXJuO01hLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UgaW4gT3MuY29uc29sZSYmS2EoT3MuY29uc29sZSxlLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oLi4ubil7UHMoXCJjb25zb2xlXCIse2FyZ3M6bixsZXZlbDplfSksdCYmdC5hcHBseShPcy5jb25zb2xlLG4pfX0pKX0pKX0oKTticmVhaztjYXNlXCJkb21cIjohZnVuY3Rpb24oKXtpZighKFwiZG9jdW1lbnRcImluIE9zKSlyZXR1cm47Y29uc3QgZT1Qcy5iaW5kKG51bGwsXCJkb21cIiksdD1EcyhlLCEwKTtPcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0LCExKSxPcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5cHJlc3NcIix0LCExKSxbXCJFdmVudFRhcmdldFwiLFwiTm9kZVwiXS5mb3JFYWNoKCh0PT57Y29uc3Qgbj1Pc1t0XSYmT3NbdF0ucHJvdG90eXBlO24mJm4uaGFzT3duUHJvcGVydHkmJm4uaGFzT3duUHJvcGVydHkoXCJhZGRFdmVudExpc3RlbmVyXCIpJiYoS2EobixcImFkZEV2ZW50TGlzdGVuZXJcIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4scixpKXtpZihcImNsaWNrXCI9PT1ufHxcImtleXByZXNzXCI9PW4pdHJ5e2NvbnN0IHI9dGhpcyxvPXIuX19zZW50cnlfaW5zdHJ1bWVudGF0aW9uX2hhbmRsZXJzX189ci5fX3NlbnRyeV9pbnN0cnVtZW50YXRpb25faGFuZGxlcnNfX3x8e30sYT1vW25dPW9bbl18fHtyZWZDb3VudDowfTtpZighYS5oYW5kbGVyKXtjb25zdCByPURzKGUpO2EuaGFuZGxlcj1yLHQuY2FsbCh0aGlzLG4scixpKX1hLnJlZkNvdW50Kyt9Y2F0Y2gobyl7fXJldHVybiB0LmNhbGwodGhpcyxuLHIsaSl9fSkpLEthKG4sXCJyZW1vdmVFdmVudExpc3RlbmVyXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4scil7aWYoXCJjbGlja1wiPT09dHx8XCJrZXlwcmVzc1wiPT10KXRyeXtjb25zdCBuPXRoaXMsaT1uLl9fc2VudHJ5X2luc3RydW1lbnRhdGlvbl9oYW5kbGVyc19ffHx7fSxvPWlbdF07byYmKG8ucmVmQ291bnQtLSxvLnJlZkNvdW50PD0wJiYoZS5jYWxsKHRoaXMsdCxvLmhhbmRsZXIsciksby5oYW5kbGVyPXZvaWQgMCxkZWxldGUgaVt0XSksMD09PU9iamVjdC5rZXlzKGkpLmxlbmd0aCYmZGVsZXRlIG4uX19zZW50cnlfaW5zdHJ1bWVudGF0aW9uX2hhbmRsZXJzX18pfWNhdGNoKGkpe31yZXR1cm4gZS5jYWxsKHRoaXMsdCxuLHIpfX0pKSl9KSl9KCk7YnJlYWs7Y2FzZVwieGhyXCI6IWZ1bmN0aW9uKCl7aWYoIShcIlhNTEh0dHBSZXF1ZXN0XCJpbiBPcykpcmV0dXJuO2NvbnN0IGU9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlO0thKGUsXCJvcGVuXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCBuPXRbMV0scj10aGlzLl9fc2VudHJ5X3hocl92Ml9fPXttZXRob2Q6R2EodFswXSk/dFswXS50b1VwcGVyQ2FzZSgpOnRbMF0sdXJsOnRbMV0scmVxdWVzdF9oZWFkZXJzOnt9fTtHYShuKSYmXCJQT1NUXCI9PT1yLm1ldGhvZCYmbi5tYXRjaCgvc2VudHJ5X2tleS8pJiYodGhpcy5fX3NlbnRyeV9vd25fcmVxdWVzdF9fPSEwKTtjb25zdCBpPSgpPT57Y29uc3QgZT10aGlzLl9fc2VudHJ5X3hocl92Ml9fO2lmKGUmJjQ9PT10aGlzLnJlYWR5U3RhdGUpe3RyeXtlLnN0YXR1c19jb2RlPXRoaXMuc3RhdHVzfWNhdGNoKG4pe31QcyhcInhoclwiLHthcmdzOnQsZW5kVGltZXN0YW1wOkRhdGUubm93KCksc3RhcnRUaW1lc3RhbXA6RGF0ZS5ub3coKSx4aHI6dGhpc30pfX07cmV0dXJuXCJvbnJlYWR5c3RhdGVjaGFuZ2VcImluIHRoaXMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiB0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZT9LYSh0aGlzLFwib25yZWFkeXN0YXRlY2hhbmdlXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtyZXR1cm4gaSgpLGUuYXBwbHkodGhpcyx0KX19KSk6dGhpcy5hZGRFdmVudExpc3RlbmVyKFwicmVhZHlzdGF0ZWNoYW5nZVwiLGkpLEthKHRoaXMsXCJzZXRSZXF1ZXN0SGVhZGVyXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdFtuLHJdPXQsaT10aGlzLl9fc2VudHJ5X3hocl92Ml9fO3JldHVybiBpJiYoaS5yZXF1ZXN0X2hlYWRlcnNbbi50b0xvd2VyQ2FzZSgpXT1yKSxlLmFwcGx5KHRoaXMsdCl9fSkpLGUuYXBwbHkodGhpcyx0KX19KSksS2EoZSxcInNlbmRcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0IG49dGhpcy5fX3NlbnRyeV94aHJfdjJfXztyZXR1cm4gbiYmdm9pZCAwIT09dFswXSYmKG4uYm9keT10WzBdKSxQcyhcInhoclwiLHthcmdzOnQsc3RhcnRUaW1lc3RhbXA6RGF0ZS5ub3coKSx4aHI6dGhpc30pLGUuYXBwbHkodGhpcyx0KX19KSl9KCk7YnJlYWs7Y2FzZVwiZmV0Y2hcIjohZnVuY3Rpb24oKXtpZighZnVuY3Rpb24oKXtpZigheXMoKSlyZXR1cm4hMTtpZihUcyhTcy5mZXRjaCkpcmV0dXJuITA7bGV0IGU9ITE7Y29uc3QgdD1Tcy5kb2N1bWVudDtpZih0JiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5jcmVhdGVFbGVtZW50KXRyeXtjb25zdCBuPXQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtuLmhpZGRlbj0hMCx0LmhlYWQuYXBwZW5kQ2hpbGQobiksbi5jb250ZW50V2luZG93JiZuLmNvbnRlbnRXaW5kb3cuZmV0Y2gmJihlPVRzKG4uY29udGVudFdpbmRvdy5mZXRjaCkpLHQuaGVhZC5yZW1vdmVDaGlsZChuKX1jYXRjaChuKXsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEud2FybihcIkNvdWxkIG5vdCBjcmVhdGUgc2FuZGJveCBpZnJhbWUgZm9yIHB1cmUgZmV0Y2ggY2hlY2ssIGJhaWxpbmcgdG8gd2luZG93LmZldGNoOiBcIixuKX1yZXR1cm4gZX0oKSlyZXR1cm47S2EoT3MsXCJmZXRjaFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3R7bWV0aG9kOm4sdXJsOnJ9PWZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm57bWV0aG9kOlwiR0VUXCIsdXJsOlwiXCJ9O2lmKDI9PT1lLmxlbmd0aCl7Y29uc3RbdCxuXT1lO3JldHVybnt1cmw6d3ModCksbWV0aG9kOlJzKG4sXCJtZXRob2RcIik/U3RyaW5nKG4ubWV0aG9kKS50b1VwcGVyQ2FzZSgpOlwiR0VUXCJ9fWNvbnN0IHQ9ZVswXTtyZXR1cm57dXJsOndzKHQpLG1ldGhvZDpScyh0LFwibWV0aG9kXCIpP1N0cmluZyh0Lm1ldGhvZCkudG9VcHBlckNhc2UoKTpcIkdFVFwifX0odCksaT17YXJnczp0LGZldGNoRGF0YTp7bWV0aG9kOm4sdXJsOnJ9LHN0YXJ0VGltZXN0YW1wOkRhdGUubm93KCl9O3JldHVybiBQcyhcImZldGNoXCIsey4uLml9KSxlLmFwcGx5KE9zLHQpLnRoZW4oKGU9PihQcyhcImZldGNoXCIsey4uLmksZW5kVGltZXN0YW1wOkRhdGUubm93KCkscmVzcG9uc2U6ZX0pLGUpKSwoZT0+e3Rocm93IFBzKFwiZmV0Y2hcIix7Li4uaSxlbmRUaW1lc3RhbXA6RGF0ZS5ub3coKSxlcnJvcjplfSksZX0pKX19KSl9KCk7YnJlYWs7Y2FzZVwiaGlzdG9yeVwiOiFmdW5jdGlvbigpe2lmKCFmdW5jdGlvbigpe2NvbnN0IGU9SXMuY2hyb21lLHQ9ZSYmZS5hcHAmJmUuYXBwLnJ1bnRpbWUsbj1cImhpc3RvcnlcImluIElzJiYhIUlzLmhpc3RvcnkucHVzaFN0YXRlJiYhIUlzLmhpc3RvcnkucmVwbGFjZVN0YXRlO3JldHVybiF0JiZufSgpKXJldHVybjtjb25zdCBlPU9zLm9ucG9wc3RhdGU7ZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3Qgbj10Lmxlbmd0aD4yP3RbMl06dm9pZCAwO2lmKG4pe2NvbnN0IGU9THMsdD1TdHJpbmcobik7THM9dCxQcyhcImhpc3RvcnlcIix7ZnJvbTplLHRvOnR9KX1yZXR1cm4gZS5hcHBseSh0aGlzLHQpfX1Pcy5vbnBvcHN0YXRlPWZ1bmN0aW9uKC4uLnQpe2NvbnN0IG49T3MubG9jYXRpb24uaHJlZixyPUxzO2lmKExzPW4sUHMoXCJoaXN0b3J5XCIse2Zyb206cix0bzpufSksZSl0cnl7cmV0dXJuIGUuYXBwbHkodGhpcyx0KX1jYXRjaChpKXt9fSxLYShPcy5oaXN0b3J5LFwicHVzaFN0YXRlXCIsdCksS2EoT3MuaGlzdG9yeSxcInJlcGxhY2VTdGF0ZVwiLHQpfSgpO2JyZWFrO2Nhc2VcImVycm9yXCI6anM9T3Mub25lcnJvcixPcy5vbmVycm9yPWZ1bmN0aW9uKGUsdCxuLHIsaSl7cmV0dXJuIFBzKFwiZXJyb3JcIix7Y29sdW1uOnIsZXJyb3I6aSxsaW5lOm4sbXNnOmUsdXJsOnR9KSwhKCFqc3x8anMuX19TRU5UUllfTE9BREVSX18pJiZqcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LE9zLm9uZXJyb3IuX19TRU5UUllfSU5TVFJVTUVOVEVEX189ITA7YnJlYWs7Y2FzZVwidW5oYW5kbGVkcmVqZWN0aW9uXCI6eHM9T3Mub251bmhhbmRsZWRyZWplY3Rpb24sT3Mub251bmhhbmRsZWRyZWplY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIFBzKFwidW5oYW5kbGVkcmVqZWN0aW9uXCIsZSksISh4cyYmIXhzLl9fU0VOVFJZX0xPQURFUl9fKXx8eHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxPcy5vbnVuaGFuZGxlZHJlamVjdGlvbi5fX1NFTlRSWV9JTlNUUlVNRU5URURfXz0hMDticmVhaztkZWZhdWx0OnJldHVybiB2b2lkKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS53YXJuKFwidW5rbm93biBpbnN0cnVtZW50YXRpb24gdHlwZTpcIixlKSl9fWZ1bmN0aW9uIGtzKGUsdCl7QXNbZV09QXNbZV18fFtdLEFzW2VdLnB1c2godCksTnMoZSl9ZnVuY3Rpb24gUHMoZSx0KXtpZihlJiZBc1tlXSlmb3IoY29uc3QgciBvZiBBc1tlXXx8W10pdHJ5e3IodCl9Y2F0Y2gobil7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmVycm9yKGBFcnJvciB3aGlsZSB0cmlnZ2VyaW5nIGluc3RydW1lbnRhdGlvbiBoYW5kbGVyLlxcblR5cGU6ICR7ZX1cXG5OYW1lOiAke2JzKHIpfVxcbkVycm9yOmAsbil9fWZ1bmN0aW9uIFJzKGUsdCl7cmV0dXJuISFlJiZcIm9iamVjdFwiPT09dHlwZW9mIGUmJiEhZVt0XX1mdW5jdGlvbiB3cyhlKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGU/ZTplP1JzKGUsXCJ1cmxcIik/ZS51cmw6ZS50b1N0cmluZz9lLnRvU3RyaW5nKCk6XCJcIjpcIlwifWxldCBMcztsZXQgQnMsTXM7ZnVuY3Rpb24gRHMoZSx0PSExKXtyZXR1cm4gbj0+e2lmKCFufHxNcz09PW4pcmV0dXJuO2lmKGZ1bmN0aW9uKGUpe2lmKFwia2V5cHJlc3NcIiE9PWUudHlwZSlyZXR1cm4hMTt0cnl7Y29uc3QgdD1lLnRhcmdldDtpZighdHx8IXQudGFnTmFtZSlyZXR1cm4hMDtpZihcIklOUFVUXCI9PT10LnRhZ05hbWV8fFwiVEVYVEFSRUFcIj09PXQudGFnTmFtZXx8dC5pc0NvbnRlbnRFZGl0YWJsZSlyZXR1cm4hMX1jYXRjaCh0KXt9cmV0dXJuITB9KG4pKXJldHVybjtjb25zdCByPVwia2V5cHJlc3NcIj09PW4udHlwZT9cImlucHV0XCI6bi50eXBlOyh2b2lkIDA9PT1Cc3x8ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm4hMDtpZihlLnR5cGUhPT10LnR5cGUpcmV0dXJuITA7dHJ5e2lmKGUudGFyZ2V0IT09dC50YXJnZXQpcmV0dXJuITB9Y2F0Y2gobil7fXJldHVybiExfShNcyxuKSkmJihlKHtldmVudDpuLG5hbWU6cixnbG9iYWw6dH0pLE1zPW4pLGNsZWFyVGltZW91dChCcyksQnM9T3Muc2V0VGltZW91dCgoKCk9PntCcz12b2lkIDB9KSwxZTMpfX1sZXQganM9bnVsbDtsZXQgeHM9bnVsbDtmdW5jdGlvbiBVcyhlKXtyZXR1cm4oZXx8Y3MoKSkuZ2V0U2NvcGUoKS5nZXRUcmFuc2FjdGlvbigpfWxldCBGcz0hMTtmdW5jdGlvbiBIcygpe2NvbnN0IGU9VXMoKTtpZihlKXtjb25zdCB0PVwiaW50ZXJuYWxfZXJyb3JcIjsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKGBbVHJhY2luZ10gVHJhbnNhY3Rpb246ICR7dH0gLT4gR2xvYmFsIGVycm9yIG9jY3VyZWRgKSxlLnNldFN0YXR1cyh0KX19ZnVuY3Rpb24gR3MoKXtjb25zdCBlPXRoaXMuZ2V0U2NvcGUoKS5nZXRTcGFuKCk7cmV0dXJuIGU/e1wic2VudHJ5LXRyYWNlXCI6ZS50b1RyYWNlcGFyZW50KCl9Ont9fWZ1bmN0aW9uIFdzKGUsdCxuKXtpZighX3ModCkpcmV0dXJuIGUuc2FtcGxlZD0hMSxlO2lmKHZvaWQgMCE9PWUuc2FtcGxlZClyZXR1cm4gZS5zZXRNZXRhZGF0YSh7c2FtcGxlUmF0ZTpOdW1iZXIoZS5zYW1wbGVkKX0pLGU7bGV0IHI7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIHQudHJhY2VzU2FtcGxlcj8ocj10LnRyYWNlc1NhbXBsZXIobiksZS5zZXRNZXRhZGF0YSh7c2FtcGxlUmF0ZTpOdW1iZXIocil9KSk6dm9pZCAwIT09bi5wYXJlbnRTYW1wbGVkP3I9bi5wYXJlbnRTYW1wbGVkOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgdC50cmFjZXNTYW1wbGVSYXRlPyhyPXQudHJhY2VzU2FtcGxlUmF0ZSxlLnNldE1ldGFkYXRhKHtzYW1wbGVSYXRlOk51bWJlcihyKX0pKToocj0xLGUuc2V0TWV0YWRhdGEoe3NhbXBsZVJhdGU6cn0pKSxmdW5jdGlvbihlKXtpZih0PWUsXCJudW1iZXJcIj09PXR5cGVvZiB0JiZ0IT09dHx8XCJudW1iZXJcIiE9PXR5cGVvZiBlJiZcImJvb2xlYW5cIiE9PXR5cGVvZiBlKXJldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS53YXJuKGBbVHJhY2luZ10gR2l2ZW4gc2FtcGxlIHJhdGUgaXMgaW52YWxpZC4gU2FtcGxlIHJhdGUgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLiBHb3QgJHtKU09OLnN0cmluZ2lmeShlKX0gb2YgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cGVvZiBlKX0uYCksITE7dmFyIHQ7aWYoZTwwfHxlPjEpcmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLndhcm4oYFtUcmFjaW5nXSBHaXZlbiBzYW1wbGUgcmF0ZSBpcyBpbnZhbGlkLiBTYW1wbGUgcmF0ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMS4gR290ICR7ZX0uYCksITE7cmV0dXJuITB9KHIpP3I/KGUuc2FtcGxlZD1NYXRoLnJhbmRvbSgpPHIsZS5zYW1wbGVkPygoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKGBbVHJhY2luZ10gc3RhcnRpbmcgJHtlLm9wfSB0cmFuc2FjdGlvbiAtICR7ZS5uYW1lfWApLGUpOigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKGBbVHJhY2luZ10gRGlzY2FyZGluZyB0cmFuc2FjdGlvbiBiZWNhdXNlIGl0J3Mgbm90IGluY2x1ZGVkIGluIHRoZSByYW5kb20gc2FtcGxlIChzYW1wbGluZyByYXRlID0gJHtOdW1iZXIocil9KWApLGUpKTooKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhcIltUcmFjaW5nXSBEaXNjYXJkaW5nIHRyYW5zYWN0aW9uIGJlY2F1c2UgXCIrKFwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LnRyYWNlc1NhbXBsZXI/XCJ0cmFjZXNTYW1wbGVyIHJldHVybmVkIDAgb3IgZmFsc2VcIjpcImEgbmVnYXRpdmUgc2FtcGxpbmcgZGVjaXNpb24gd2FzIGluaGVyaXRlZCBvciB0cmFjZXNTYW1wbGVSYXRlIGlzIHNldCB0byAwXCIpKSxlLnNhbXBsZWQ9ITEsZSk6KChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS53YXJuKFwiW1RyYWNpbmddIERpc2NhcmRpbmcgdHJhbnNhY3Rpb24gYmVjYXVzZSBvZiBpbnZhbGlkIHNhbXBsZSByYXRlLlwiKSxlLnNhbXBsZWQ9ITEsZSl9ZnVuY3Rpb24gVnMoZSx0KXtjb25zdCBuPXRoaXMuZ2V0Q2xpZW50KCkscj1uJiZuLmdldE9wdGlvbnMoKXx8e30saT1yLmluc3RydW1lbnRlcnx8XCJzZW50cnlcIixvPWUuaW5zdHJ1bWVudGVyfHxcInNlbnRyeVwiO2khPT1vJiYoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmVycm9yKGBBIHRyYW5zYWN0aW9uIHdhcyBzdGFydGVkIHdpdGggaW5zdHJ1bWVudGVyPVxcYCR7b31cXGAsIGJ1dCB0aGUgU0RLIGlzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgXFxgJHtpfVxcYCBpbnN0cnVtZW50ZXIuXFxuVGhlIHRyYW5zYWN0aW9uIHdpbGwgbm90IGJlIHNhbXBsZWQuIFBsZWFzZSB1c2UgdGhlICR7aX0gaW5zdHJ1bWVudGF0aW9uIHRvIHN0YXJ0IHRyYW5zYWN0aW9ucy5gKSxlLnNhbXBsZWQ9ITEpO2xldCBhPW5ldyBmcyhlLHRoaXMpO3JldHVybiBhPVdzKGEscix7cGFyZW50U2FtcGxlZDplLnBhcmVudFNhbXBsZWQsdHJhbnNhY3Rpb25Db250ZXh0OmUsLi4udH0pLGEuc2FtcGxlZCYmYS5pbml0U3BhblJlY29yZGVyKHIuX2V4cGVyaW1lbnRzJiZyLl9leHBlcmltZW50cy5tYXhTcGFucyksbiYmbi5lbWl0JiZuLmVtaXQoXCJzdGFydFRyYW5zYWN0aW9uXCIsYSksYX1mdW5jdGlvbiB6cyhlLHQsbixyLGksbyxhKXtjb25zdCBzPWUuZ2V0Q2xpZW50KCksYz1zJiZzLmdldE9wdGlvbnMoKXx8e307bGV0IHU9bmV3IHZzKHQsZSxuLHIsYSxpKTtyZXR1cm4gdT1Xcyh1LGMse3BhcmVudFNhbXBsZWQ6dC5wYXJlbnRTYW1wbGVkLHRyYW5zYWN0aW9uQ29udGV4dDp0LC4uLm99KSx1LnNhbXBsZWQmJnUuaW5pdFNwYW5SZWNvcmRlcihjLl9leHBlcmltZW50cyYmYy5fZXhwZXJpbWVudHMubWF4U3BhbnMpLHMmJnMuZW1pdCYmcy5lbWl0KFwic3RhcnRUcmFuc2FjdGlvblwiLHUpLHV9ZnVuY3Rpb24gS3MoKXtjb25zdCBlPWFzKCk7ZS5fX1NFTlRSWV9fJiYoZS5fX1NFTlRSWV9fLmV4dGVuc2lvbnM9ZS5fX1NFTlRSWV9fLmV4dGVuc2lvbnN8fHt9LGUuX19TRU5UUllfXy5leHRlbnNpb25zLnN0YXJ0VHJhbnNhY3Rpb258fChlLl9fU0VOVFJZX18uZXh0ZW5zaW9ucy5zdGFydFRyYW5zYWN0aW9uPVZzKSxlLl9fU0VOVFJZX18uZXh0ZW5zaW9ucy50cmFjZUhlYWRlcnN8fChlLl9fU0VOVFJZX18uZXh0ZW5zaW9ucy50cmFjZUhlYWRlcnM9R3MpLEZzfHwoRnM9ITAsa3MoXCJlcnJvclwiLEhzKSxrcyhcInVuaGFuZGxlZHJlamVjdGlvblwiLEhzKSkpfUhzLnRhZz1cInNlbnRyeV90cmFjaW5nRXJyb3JDYWxsYmFja1wiO2NvbnN0IFlzPW5ldyBSZWdFeHAoXCJeWyBcXFxcdF0qKFswLTlhLWZdezMyfSk/LT8oWzAtOWEtZl17MTZ9KT8tPyhbMDFdKT9bIFxcXFx0XSokXCIpO2NvbnN0IHFzPVwiYmFnZ2FnZVwiLFpzPVwic2VudHJ5LVwiLEpzPS9ec2VudHJ5LS87ZnVuY3Rpb24gWHMoZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKDA9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuO3JldHVybiBPYmplY3QuZW50cmllcyhlKS5yZWR1Y2UoKChlLFt0LG5dLHIpPT57Y29uc3QgaT1gJHtlbmNvZGVVUklDb21wb25lbnQodCl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KG4pfWAsbz0wPT09cj9pOmAke2V9LCR7aX1gO3JldHVybiBvLmxlbmd0aD44MTkyPygoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEud2FybihgTm90IGFkZGluZyBrZXk6ICR7dH0gd2l0aCB2YWw6ICR7bn0gdG8gYmFnZ2FnZSBoZWFkZXIgZHVlIHRvIGV4Y2VlZGluZyBiYWdnYWdlIHNpemUgbGltaXRzLmApLGUpOm99KSxcIlwiKX0oT2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKCgoZSxbdCxuXSk9PihuJiYoZVtgc2VudHJ5LSR7dH1gXT1uKSxlKSkse30pKX1mdW5jdGlvbiBRcyhlKXtyZXR1cm4gZS5zcGxpdChcIixcIikubWFwKChlPT5lLnNwbGl0KFwiPVwiKS5tYXAoKGU9PmRlY29kZVVSSUNvbXBvbmVudChlLnRyaW0oKSkpKSkpLnJlZHVjZSgoKGUsW3Qsbl0pPT4oZVt0XT1uLGUpKSx7fSl9Y29uc3QgJHM9KDAsQmEuUmYpKCk7ZnVuY3Rpb24gZWMoZSx0PXt9KXt0cnl7bGV0IG49ZTtjb25zdCByPTUsaT1bXTtsZXQgbz0wLGE9MDtjb25zdCBzPVwiID4gXCIsYz1zLmxlbmd0aDtsZXQgdTtjb25zdCBsPUFycmF5LmlzQXJyYXkodCk/dDp0LmtleUF0dHJzLGQ9IUFycmF5LmlzQXJyYXkodCkmJnQubWF4U3RyaW5nTGVuZ3RofHw4MDtmb3IoO24mJm8rKzxyJiYodT10YyhuLGwpLCEoXCJodG1sXCI9PT11fHxvPjEmJmEraS5sZW5ndGgqYyt1Lmxlbmd0aD49ZCkpOylpLnB1c2godSksYSs9dS5sZW5ndGgsbj1uLnBhcmVudE5vZGU7cmV0dXJuIGkucmV2ZXJzZSgpLmpvaW4ocyl9Y2F0Y2gobil7cmV0dXJuXCI8dW5rbm93bj5cIn19ZnVuY3Rpb24gdGMoZSx0KXtjb25zdCBuPWUscj1bXTtsZXQgaSxvLGEscyxjO2lmKCFufHwhbi50YWdOYW1lKXJldHVyblwiXCI7ci5wdXNoKG4udGFnTmFtZS50b0xvd2VyQ2FzZSgpKTtjb25zdCB1PXQmJnQubGVuZ3RoP3QuZmlsdGVyKChlPT5uLmdldEF0dHJpYnV0ZShlKSkpLm1hcCgoZT0+W2Usbi5nZXRBdHRyaWJ1dGUoZSldKSk6bnVsbDtpZih1JiZ1Lmxlbmd0aCl1LmZvckVhY2goKGU9PntyLnB1c2goYFske2VbMF19PVwiJHtlWzFdfVwiXWApfSkpO2Vsc2UgaWYobi5pZCYmci5wdXNoKGAjJHtuLmlkfWApLGk9bi5jbGFzc05hbWUsaSYmR2EoaSkpZm9yKG89aS5zcGxpdCgvXFxzKy8pLGM9MDtjPG8ubGVuZ3RoO2MrKylyLnB1c2goYC4ke29bY119YCk7Y29uc3QgbD1bXCJhcmlhLWxhYmVsXCIsXCJ0eXBlXCIsXCJuYW1lXCIsXCJ0aXRsZVwiLFwiYWx0XCJdO2ZvcihjPTA7YzxsLmxlbmd0aDtjKyspYT1sW2NdLHM9bi5nZXRBdHRyaWJ1dGUoYSkscyYmci5wdXNoKGBbJHthfT1cIiR7c31cIl1gKTtyZXR1cm4gci5qb2luKFwiXCIpfWNvbnN0IG5jPUJhLm4yO2NvbnN0IHJjPShlLHQsbik9PntsZXQgcixpO3JldHVybiBvPT57dC52YWx1ZT49MCYmKG98fG4pJiYoaT10LnZhbHVlLShyfHwwKSwoaXx8dm9pZCAwPT09cikmJihyPXQudmFsdWUsdC5kZWx0YT1pLGUodCkpKX19LGljPSgpPT5uYy5fX1dFQl9WSVRBTFNfUE9MWUZJTExfXz9uYy5wZXJmb3JtYW5jZSYmKHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUmJnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoXCJuYXZpZ2F0aW9uXCIpWzBdfHwoKCk9Pntjb25zdCBlPW5jLnBlcmZvcm1hbmNlLnRpbWluZyx0PW5jLnBlcmZvcm1hbmNlLm5hdmlnYXRpb24udHlwZSxuPXtlbnRyeVR5cGU6XCJuYXZpZ2F0aW9uXCIsc3RhcnRUaW1lOjAsdHlwZToyPT10P1wiYmFja19mb3J3YXJkXCI6MT09PXQ/XCJyZWxvYWRcIjpcIm5hdmlnYXRlXCJ9O2Zvcihjb25zdCByIGluIGUpXCJuYXZpZ2F0aW9uU3RhcnRcIiE9PXImJlwidG9KU09OXCIhPT1yJiYobltyXT1NYXRoLm1heChlW3JdLWUubmF2aWdhdGlvblN0YXJ0LDApKTtyZXR1cm4gbn0pKCkpOm5jLnBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlJiZwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwibmF2aWdhdGlvblwiKVswXSxvYz0oKT0+e2NvbnN0IGU9aWMoKTtyZXR1cm4gZSYmZS5hY3RpdmF0aW9uU3RhcnR8fDB9LGFjPShlLHQpPT57Y29uc3Qgbj1pYygpO2xldCByPVwibmF2aWdhdGVcIjtyZXR1cm4gbiYmKHI9bmMuZG9jdW1lbnQucHJlcmVuZGVyaW5nfHxvYygpPjA/XCJwcmVyZW5kZXJcIjpuLnR5cGUucmVwbGFjZSgvXy9nLFwiLVwiKSkse25hbWU6ZSx2YWx1ZTpcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQ/LTE6dCxyYXRpbmc6XCJnb29kXCIsZGVsdGE6MCxlbnRyaWVzOltdLGlkOmB2My0ke0RhdGUubm93KCl9LSR7TWF0aC5mbG9vcig4OTk5OTk5OTk5OTk5Kk1hdGgucmFuZG9tKCkpKzFlMTJ9YCxuYXZpZ2F0aW9uVHlwZTpyfX0sc2M9KGUsdCxuKT0+e3RyeXtpZihQZXJmb3JtYW5jZU9ic2VydmVyLnN1cHBvcnRlZEVudHJ5VHlwZXMuaW5jbHVkZXMoZSkpe2NvbnN0IHI9bmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGU9Pnt0KGUuZ2V0RW50cmllcygpKX0pKTtyZXR1cm4gci5vYnNlcnZlKE9iamVjdC5hc3NpZ24oe3R5cGU6ZSxidWZmZXJlZDohMH0sbnx8e30pKSxyfX1jYXRjaChyKXt9fSxjYz0oZSx0KT0+e2NvbnN0IG49cj0+e1wicGFnZWhpZGVcIiE9PXIudHlwZSYmXCJoaWRkZW5cIiE9PW5jLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZXx8KGUociksdCYmKHJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsbiwhMCkscmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsbiwhMCkpKX07YWRkRXZlbnRMaXN0ZW5lcihcInZpc2liaWxpdHljaGFuZ2VcIixuLCEwKSxhZGRFdmVudExpc3RlbmVyKFwicGFnZWhpZGVcIixuLCEwKX07bGV0IHVjPS0xO2NvbnN0IGxjPSgpPT4odWM8MCYmKHVjPVwiaGlkZGVuXCIhPT1uYy5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGV8fG5jLmRvY3VtZW50LnByZXJlbmRlcmluZz8xLzA6MCxjYygoKHt0aW1lU3RhbXA6ZX0pPT57dWM9ZX0pLCEwKSkse2dldCBmaXJzdEhpZGRlblRpbWUoKXtyZXR1cm4gdWN9fSksZGM9e307ZnVuY3Rpb24gcGMoZSl7cmV0dXJuXCJudW1iZXJcIj09PXR5cGVvZiBlJiZpc0Zpbml0ZShlKX1mdW5jdGlvbiBmYyhlLHtzdGFydFRpbWVzdGFtcDp0LC4uLm59KXtyZXR1cm4gdCYmZS5zdGFydFRpbWVzdGFtcD50JiYoZS5zdGFydFRpbWVzdGFtcD10KSxlLnN0YXJ0Q2hpbGQoe3N0YXJ0VGltZXN0YW1wOnQsLi4ubn0pfWZ1bmN0aW9uIGhjKGUpe3JldHVybiBlLzFlM31mdW5jdGlvbiBnYygpe3JldHVybiBuYyYmbmMuYWRkRXZlbnRMaXN0ZW5lciYmbmMucGVyZm9ybWFuY2V9bGV0IG1jLHZjLF9jPTAsRWM9e307ZnVuY3Rpb24gYmMoKXtjb25zdCBlPWdjKCk7aWYoZSYmTGEuWjEpe2UubWFyayYmbmMucGVyZm9ybWFuY2UubWFyayhcInNlbnRyeS10cmFjaW5nLWluaXRcIiksKGU9Pntjb25zdCB0PWxjKCksbj1hYyhcIkZJRFwiKTtsZXQgcjtjb25zdCBpPWU9PntlLnN0YXJ0VGltZTx0LmZpcnN0SGlkZGVuVGltZSYmKG4udmFsdWU9ZS5wcm9jZXNzaW5nU3RhcnQtZS5zdGFydFRpbWUsbi5lbnRyaWVzLnB1c2goZSkscighMCkpfSxvPWU9PntlLmZvckVhY2goaSl9LGE9c2MoXCJmaXJzdC1pbnB1dFwiLG8pO3I9cmMoZSxuKSxhJiZjYygoKCk9PntvKGEudGFrZVJlY29yZHMoKSksYS5kaXNjb25uZWN0KCl9KSwhMCl9KSgoZT0+e2NvbnN0IHQ9ZS5lbnRyaWVzLnBvcCgpO2lmKCF0KXJldHVybjtjb25zdCBuPWhjKExhLloxKSxyPWhjKHQuc3RhcnRUaW1lKTsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW01lYXN1cmVtZW50c10gQWRkaW5nIEZJRFwiKSxFYy5maWQ9e3ZhbHVlOmUudmFsdWUsdW5pdDpcIm1pbGxpc2Vjb25kXCJ9LEVjW1wibWFyay5maWRcIl09e3ZhbHVlOm4rcix1bml0Olwic2Vjb25kXCJ9fSkpO2NvbnN0IHQ9KGU9Pntjb25zdCB0PWFjKFwiQ0xTXCIsMCk7bGV0IG4scj0wLGk9W107Y29uc3Qgbz1lPT57ZS5mb3JFYWNoKChlPT57aWYoIWUuaGFkUmVjZW50SW5wdXQpe2NvbnN0IG89aVswXSxhPWlbaS5sZW5ndGgtMV07ciYmMCE9PWkubGVuZ3RoJiZlLnN0YXJ0VGltZS1hLnN0YXJ0VGltZTwxZTMmJmUuc3RhcnRUaW1lLW8uc3RhcnRUaW1lPDVlMz8ocis9ZS52YWx1ZSxpLnB1c2goZSkpOihyPWUudmFsdWUsaT1bZV0pLHI+dC52YWx1ZSYmKHQudmFsdWU9cix0LmVudHJpZXM9aSxuJiZuKCkpfX0pKX0sYT1zYyhcImxheW91dC1zaGlmdFwiLG8pO2lmKGEpe249cmMoZSx0KTtjb25zdCByPSgpPT57byhhLnRha2VSZWNvcmRzKCkpLG4oITApfTtyZXR1cm4gY2Mocikscn19KSgoZT0+e2NvbnN0IHQ9ZS5lbnRyaWVzLnBvcCgpO3QmJigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW01lYXN1cmVtZW50c10gQWRkaW5nIENMU1wiKSxFYy5jbHM9e3ZhbHVlOmUudmFsdWUsdW5pdDpcIlwifSx2Yz10KX0pKSxuPShlPT57Y29uc3QgdD1sYygpLG49YWMoXCJMQ1BcIik7bGV0IHI7Y29uc3QgaT1lPT57Y29uc3QgaT1lW2UubGVuZ3RoLTFdO2lmKGkpe2NvbnN0IGU9TWF0aC5tYXgoaS5zdGFydFRpbWUtb2MoKSwwKTtlPHQuZmlyc3RIaWRkZW5UaW1lJiYobi52YWx1ZT1lLG4uZW50cmllcz1baV0scigpKX19LG89c2MoXCJsYXJnZXN0LWNvbnRlbnRmdWwtcGFpbnRcIixpKTtpZihvKXtyPXJjKGUsbik7Y29uc3QgdD0oKT0+e2RjW24uaWRdfHwoaShvLnRha2VSZWNvcmRzKCkpLG8uZGlzY29ubmVjdCgpLGRjW24uaWRdPSEwLHIoITApKX07cmV0dXJuW1wia2V5ZG93blwiLFwiY2xpY2tcIl0uZm9yRWFjaCgoZT0+e2FkZEV2ZW50TGlzdGVuZXIoZSx0LHtvbmNlOiEwLGNhcHR1cmU6ITB9KX0pKSxjYyh0LCEwKSx0fX0pKChlPT57Y29uc3QgdD1lLmVudHJpZXMucG9wKCk7dCYmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coXCJbTWVhc3VyZW1lbnRzXSBBZGRpbmcgTENQXCIpLEVjLmxjcD17dmFsdWU6ZS52YWx1ZSx1bml0OlwibWlsbGlzZWNvbmRcIn0sbWM9dCl9KSk7cmV0dXJuKCk9Pnt0JiZ0KCksbiYmbigpfX1yZXR1cm4oKT0+e319ZnVuY3Rpb24gU2MoZSl7Y29uc3QgdD1nYygpO2lmKCF0fHwhbmMucGVyZm9ybWFuY2UuZ2V0RW50cmllc3x8IUxhLloxKXJldHVybjsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW1RyYWNpbmddIEFkZGluZyAmIGFkanVzdGluZyBzcGFucyB1c2luZyBQZXJmb3JtYW5jZSBBUElcIik7Y29uc3Qgbj1oYyhMYS5aMSkscj10LmdldEVudHJpZXMoKTtsZXQgaSxvO2lmKHIuc2xpY2UoX2MpLmZvckVhY2goKHQ9Pntjb25zdCByPWhjKHQuc3RhcnRUaW1lKSxhPWhjKHQuZHVyYXRpb24pO2lmKCEoXCJuYXZpZ2F0aW9uXCI9PT1lLm9wJiZuK3I8ZS5zdGFydFRpbWVzdGFtcCkpc3dpdGNoKHQuZW50cnlUeXBlKXtjYXNlXCJuYXZpZ2F0aW9uXCI6IWZ1bmN0aW9uKGUsdCxuKXtbXCJ1bmxvYWRFdmVudFwiLFwicmVkaXJlY3RcIixcImRvbUNvbnRlbnRMb2FkZWRFdmVudFwiLFwibG9hZEV2ZW50XCIsXCJjb25uZWN0XCJdLmZvckVhY2goKHI9Pnt5YyhlLHQscixuKX0pKSx5YyhlLHQsXCJzZWN1cmVDb25uZWN0aW9uXCIsbixcIlRMUy9TU0xcIixcImNvbm5lY3RFbmRcIikseWMoZSx0LFwiZmV0Y2hcIixuLFwiY2FjaGVcIixcImRvbWFpbkxvb2t1cFN0YXJ0XCIpLHljKGUsdCxcImRvbWFpbkxvb2t1cFwiLG4sXCJETlNcIiksZnVuY3Rpb24oZSx0LG4pe2ZjKGUse29wOlwiYnJvd3NlclwiLGRlc2NyaXB0aW9uOlwicmVxdWVzdFwiLHN0YXJ0VGltZXN0YW1wOm4raGModC5yZXF1ZXN0U3RhcnQpLGVuZFRpbWVzdGFtcDpuK2hjKHQucmVzcG9uc2VFbmQpfSksZmMoZSx7b3A6XCJicm93c2VyXCIsZGVzY3JpcHRpb246XCJyZXNwb25zZVwiLHN0YXJ0VGltZXN0YW1wOm4raGModC5yZXNwb25zZVN0YXJ0KSxlbmRUaW1lc3RhbXA6bitoYyh0LnJlc3BvbnNlRW5kKX0pfShlLHQsbil9KGUsdCxuKSxpPW4raGModC5yZXNwb25zZVN0YXJ0KSxvPW4raGModC5yZXF1ZXN0U3RhcnQpO2JyZWFrO2Nhc2VcIm1hcmtcIjpjYXNlXCJwYWludFwiOmNhc2VcIm1lYXN1cmVcIjp7IWZ1bmN0aW9uKGUsdCxuLHIsaSl7Y29uc3Qgbz1pK24sYT1vK3I7ZmMoZSx7ZGVzY3JpcHRpb246dC5uYW1lLGVuZFRpbWVzdGFtcDphLG9wOnQuZW50cnlUeXBlLHN0YXJ0VGltZXN0YW1wOm99KX0oZSx0LHIsYSxuKTtjb25zdCBpPWxjKCksbz10LnN0YXJ0VGltZTxpLmZpcnN0SGlkZGVuVGltZTtcImZpcnN0LXBhaW50XCI9PT10Lm5hbWUmJm8mJigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW01lYXN1cmVtZW50c10gQWRkaW5nIEZQXCIpLEVjLmZwPXt2YWx1ZTp0LnN0YXJ0VGltZSx1bml0OlwibWlsbGlzZWNvbmRcIn0pLFwiZmlyc3QtY29udGVudGZ1bC1wYWludFwiPT09dC5uYW1lJiZvJiYoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhcIltNZWFzdXJlbWVudHNdIEFkZGluZyBGQ1BcIiksRWMuZmNwPXt2YWx1ZTp0LnN0YXJ0VGltZSx1bml0OlwibWlsbGlzZWNvbmRcIn0pO2JyZWFrfWNhc2VcInJlc291cmNlXCI6e2NvbnN0IGk9dC5uYW1lLnJlcGxhY2UobmMubG9jYXRpb24ub3JpZ2luLFwiXCIpOyFmdW5jdGlvbihlLHQsbixyLGksbyl7aWYoXCJ4bWxodHRwcmVxdWVzdFwiPT09dC5pbml0aWF0b3JUeXBlfHxcImZldGNoXCI9PT10LmluaXRpYXRvclR5cGUpcmV0dXJuO2NvbnN0IGE9e307XCJ0cmFuc2ZlclNpemVcImluIHQmJihhW1wiaHR0cC5yZXNwb25zZV90cmFuc2Zlcl9zaXplXCJdPXQudHJhbnNmZXJTaXplKTtcImVuY29kZWRCb2R5U2l6ZVwiaW4gdCYmKGFbXCJodHRwLnJlc3BvbnNlX2NvbnRlbnRfbGVuZ3RoXCJdPXQuZW5jb2RlZEJvZHlTaXplKTtcImRlY29kZWRCb2R5U2l6ZVwiaW4gdCYmKGFbXCJodHRwLmRlY29kZWRfcmVzcG9uc2VfY29udGVudF9sZW5ndGhcIl09dC5kZWNvZGVkQm9keVNpemUpO1wicmVuZGVyQmxvY2tpbmdTdGF0dXNcImluIHQmJihhW1wicmVzb3VyY2UucmVuZGVyX2Jsb2NraW5nX3N0YXR1c1wiXT10LnJlbmRlckJsb2NraW5nU3RhdHVzKTtjb25zdCBzPW8rcjtmYyhlLHtkZXNjcmlwdGlvbjpuLGVuZFRpbWVzdGFtcDpzK2ksb3A6dC5pbml0aWF0b3JUeXBlP2ByZXNvdXJjZS4ke3QuaW5pdGlhdG9yVHlwZX1gOlwicmVzb3VyY2Uub3RoZXJcIixzdGFydFRpbWVzdGFtcDpzLGRhdGE6YX0pfShlLHQsaSxyLGEsbik7YnJlYWt9fX0pKSxfYz1NYXRoLm1heChyLmxlbmd0aC0xLDApLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmMubmF2aWdhdG9yO2lmKCF0KXJldHVybjtjb25zdCBuPXQuY29ubmVjdGlvbjtuJiYobi5lZmZlY3RpdmVUeXBlJiZlLnNldFRhZyhcImVmZmVjdGl2ZUNvbm5lY3Rpb25UeXBlXCIsbi5lZmZlY3RpdmVUeXBlKSxuLnR5cGUmJmUuc2V0VGFnKFwiY29ubmVjdGlvblR5cGVcIixuLnR5cGUpLHBjKG4ucnR0KSYmKEVjW1wiY29ubmVjdGlvbi5ydHRcIl09e3ZhbHVlOm4ucnR0LHVuaXQ6XCJtaWxsaXNlY29uZFwifSkpO3BjKHQuZGV2aWNlTWVtb3J5KSYmZS5zZXRUYWcoXCJkZXZpY2VNZW1vcnlcIixgJHt0LmRldmljZU1lbW9yeX0gR0JgKTtwYyh0LmhhcmR3YXJlQ29uY3VycmVuY3kpJiZlLnNldFRhZyhcImhhcmR3YXJlQ29uY3VycmVuY3lcIixTdHJpbmcodC5oYXJkd2FyZUNvbmN1cnJlbmN5KSl9KGUpLFwicGFnZWxvYWRcIj09PWUub3Ape1wibnVtYmVyXCI9PT10eXBlb2YgaSYmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coXCJbTWVhc3VyZW1lbnRzXSBBZGRpbmcgVFRGQlwiKSxFYy50dGZiPXt2YWx1ZToxZTMqKGktZS5zdGFydFRpbWVzdGFtcCksdW5pdDpcIm1pbGxpc2Vjb25kXCJ9LFwibnVtYmVyXCI9PT10eXBlb2YgbyYmbzw9aSYmKEVjW1widHRmYi5yZXF1ZXN0VGltZVwiXT17dmFsdWU6MWUzKihpLW8pLHVuaXQ6XCJtaWxsaXNlY29uZFwifSkpLFtcImZjcFwiLFwiZnBcIixcImxjcFwiXS5mb3JFYWNoKCh0PT57aWYoIUVjW3RdfHxuPj1lLnN0YXJ0VGltZXN0YW1wKXJldHVybjtjb25zdCByPUVjW3RdLnZhbHVlLGk9bitoYyhyKSxvPU1hdGguYWJzKDFlMyooaS1lLnN0YXJ0VGltZXN0YW1wKSksYT1vLXI7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhgW01lYXN1cmVtZW50c10gTm9ybWFsaXplZCAke3R9IGZyb20gJHtyfSB0byAke299ICgke2F9KWApLEVjW3RdLnZhbHVlPW99KSk7Y29uc3QgdD1FY1tcIm1hcmsuZmlkXCJdO3QmJkVjLmZpZCYmKGZjKGUse2Rlc2NyaXB0aW9uOlwiZmlyc3QgaW5wdXQgZGVsYXlcIixlbmRUaW1lc3RhbXA6dC52YWx1ZStoYyhFYy5maWQudmFsdWUpLG9wOlwidWkuYWN0aW9uXCIsc3RhcnRUaW1lc3RhbXA6dC52YWx1ZX0pLGRlbGV0ZSBFY1tcIm1hcmsuZmlkXCJdKSxcImZjcFwiaW4gRWN8fGRlbGV0ZSBFYy5jbHMsT2JqZWN0LmtleXMoRWMpLmZvckVhY2goKHQ9PntlLnNldE1lYXN1cmVtZW50KHQsRWNbdF0udmFsdWUsRWNbdF0udW5pdCl9KSksZnVuY3Rpb24oZSl7bWMmJigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW01lYXN1cmVtZW50c10gQWRkaW5nIExDUCBEYXRhXCIpLG1jLmVsZW1lbnQmJmUuc2V0VGFnKFwibGNwLmVsZW1lbnRcIixlYyhtYy5lbGVtZW50KSksbWMuaWQmJmUuc2V0VGFnKFwibGNwLmlkXCIsbWMuaWQpLG1jLnVybCYmZS5zZXRUYWcoXCJsY3AudXJsXCIsbWMudXJsLnRyaW0oKS5zbGljZSgwLDIwMCkpLGUuc2V0VGFnKFwibGNwLnNpemVcIixtYy5zaXplKSk7dmMmJnZjLnNvdXJjZXMmJigoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKFwiW01lYXN1cmVtZW50c10gQWRkaW5nIENMUyBEYXRhXCIpLHZjLnNvdXJjZXMuZm9yRWFjaCgoKHQsbik9PmUuc2V0VGFnKGBjbHMuc291cmNlLiR7bisxfWAsZWModC5ub2RlKSkpKSl9KGUpfW1jPXZvaWQgMCx2Yz12b2lkIDAsRWM9e319ZnVuY3Rpb24geWMoZSx0LG4scixpLG8pe2NvbnN0IGE9bz90W29dOnRbYCR7bn1FbmRgXSxzPXRbYCR7bn1TdGFydGBdO3MmJmEmJmZjKGUse29wOlwiYnJvd3NlclwiLGRlc2NyaXB0aW9uOml8fG4sc3RhcnRUaW1lc3RhbXA6citoYyhzKSxlbmRUaW1lc3RhbXA6citoYyhhKX0pfWZ1bmN0aW9uIFRjKGUsdCxuPSExKXtyZXR1cm4hIUdhKGUpJiYoSGEodCxcIlJlZ0V4cFwiKT90LnRlc3QoZSk6ISFHYSh0KSYmKG4/ZT09PXQ6ZS5pbmNsdWRlcyh0KSkpfWNvbnN0IEljPVtcImxvY2FsaG9zdFwiLC9eXFwvL10sT2M9e3RyYWNlRmV0Y2g6ITAsdHJhY2VYSFI6ITAsdHJhY2luZ09yaWdpbnM6SWMsdHJhY2VQcm9wYWdhdGlvblRhcmdldHM6SWN9O2Z1bmN0aW9uIEFjKGUpe2NvbnN0e3RyYWNlRmV0Y2g6dCx0cmFjZVhIUjpuLHRyYWNlUHJvcGFnYXRpb25UYXJnZXRzOnIsdHJhY2luZ09yaWdpbnM6aSxzaG91bGRDcmVhdGVTcGFuRm9yUmVxdWVzdDpvfT17dHJhY2VGZXRjaDpPYy50cmFjZUZldGNoLHRyYWNlWEhSOk9jLnRyYWNlWEhSLC4uLmV9LGE9XCJmdW5jdGlvblwiPT09dHlwZW9mIG8/bzplPT4hMCxzPWU9PmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdD1bXSxuPSExKXtyZXR1cm4gdC5zb21lKCh0PT5UYyhlLHQsbikpKX0oZSx0fHxJYyl9KGUscnx8aSksYz17fTt0JiZrcyhcImZldGNoXCIsKGU9PnshZnVuY3Rpb24oZSx0LG4scil7aWYoIV9zKCl8fCFlLmZldGNoRGF0YXx8IXQoZS5mZXRjaERhdGEudXJsKSlyZXR1cm47aWYoZS5lbmRUaW1lc3RhbXApe2NvbnN0IHQ9ZS5mZXRjaERhdGEuX19zcGFuO2lmKCF0KXJldHVybjtjb25zdCBuPXJbdF07cmV0dXJuIHZvaWQobiYmKGUucmVzcG9uc2U/bi5zZXRIdHRwU3RhdHVzKGUucmVzcG9uc2Uuc3RhdHVzKTplLmVycm9yJiZuLnNldFN0YXR1cyhcImludGVybmFsX2Vycm9yXCIpLG4uZmluaXNoKCksZGVsZXRlIHJbdF0pKX1jb25zdCBpPWUucmVzcG9uc2UmJmUucmVzcG9uc2UuaGVhZGVycyYmZS5yZXNwb25zZS5oZWFkZXJzLmdldChcImNvbnRlbnQtbGVuZ3RoXCIpLG89Y3MoKS5nZXRTY29wZSgpLGE9byYmby5nZXRTcGFuKCkscz1hJiZhLnRyYW5zYWN0aW9uO2lmKGEmJnMpe2NvbnN0e21ldGhvZDp0LHVybDpvfT1lLmZldGNoRGF0YSxjPWEuc3RhcnRDaGlsZCh7ZGF0YTp7dXJsOm8sdHlwZTpcImZldGNoXCIsLi4uaT97XCJodHRwLnJlc3BvbnNlX2NvbnRlbnRfbGVuZ3RoXCI6aX06e30sXCJodHRwLm1ldGhvZFwiOnR9LGRlc2NyaXB0aW9uOmAke3R9ICR7b31gLG9wOlwiaHR0cC5jbGllbnRcIn0pO2UuZmV0Y2hEYXRhLl9fc3Bhbj1jLnNwYW5JZCxyW2Muc3BhbklkXT1jO2NvbnN0IHU9ZS5hcmdzWzBdO2UuYXJnc1sxXT1lLmFyZ3NbMV18fHt9O2NvbnN0IGw9ZS5hcmdzWzFdO24oZS5mZXRjaERhdGEudXJsKSYmKGwuaGVhZGVycz1mdW5jdGlvbihlLHQsbixyKXtjb25zdCBpPVhzKHQpLG89bi50b1RyYWNlcGFyZW50KCksYT1cInVuZGVmaW5lZFwiIT09dHlwZW9mIFJlcXVlc3QmJnphKGUsUmVxdWVzdCk/ZS5oZWFkZXJzOnIuaGVhZGVycztpZihhKXtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIEhlYWRlcnMmJnphKGEsSGVhZGVycykpe2NvbnN0IGU9bmV3IEhlYWRlcnMoYSk7cmV0dXJuIGUuYXBwZW5kKFwic2VudHJ5LXRyYWNlXCIsbyksaSYmZS5hcHBlbmQocXMsaSksZX1pZihBcnJheS5pc0FycmF5KGEpKXtjb25zdCBlPVsuLi5hLFtcInNlbnRyeS10cmFjZVwiLG9dXTtyZXR1cm4gaSYmZS5wdXNoKFtxcyxpXSksZX17Y29uc3QgZT1cImJhZ2dhZ2VcImluIGE/YS5iYWdnYWdlOnZvaWQgMCx0PVtdO3JldHVybiBBcnJheS5pc0FycmF5KGUpP3QucHVzaCguLi5lKTplJiZ0LnB1c2goZSksaSYmdC5wdXNoKGkpLHsuLi5hLFwic2VudHJ5LXRyYWNlXCI6byxiYWdnYWdlOnQubGVuZ3RoPjA/dC5qb2luKFwiLFwiKTp2b2lkIDB9fX1yZXR1cm57XCJzZW50cnktdHJhY2VcIjpvLGJhZ2dhZ2U6aX19KHUscy5nZXREeW5hbWljU2FtcGxpbmdDb250ZXh0KCksYyxsKSl9fShlLGEscyxjKX0pKSxuJiZrcyhcInhoclwiLChlPT57IWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IGk9ZS54aHIsbz1pJiZpLl9fc2VudHJ5X3hocl92Ml9fO2lmKCFfcygpfHxpJiZpLl9fc2VudHJ5X293bl9yZXF1ZXN0X198fCEoaSYmbyYmdChvLnVybCkpKXJldHVybjtpZihlLmVuZFRpbWVzdGFtcCl7Y29uc3QgZT1pLl9fc2VudHJ5X3hocl9zcGFuX2lkX187aWYoIWUpcmV0dXJuO2NvbnN0IHQ9cltlXTtyZXR1cm4gdm9pZCh0JiYodC5zZXRIdHRwU3RhdHVzKG8uc3RhdHVzX2NvZGUpLHQuZmluaXNoKCksZGVsZXRlIHJbZV0pKX1jb25zdCBhPWNzKCkuZ2V0U2NvcGUoKSxzPWEmJmEuZ2V0U3BhbigpLGM9cyYmcy50cmFuc2FjdGlvbjtpZihzJiZjKXtjb25zdCBlPXMuc3RhcnRDaGlsZCh7ZGF0YTp7Li4uby5kYXRhLHR5cGU6XCJ4aHJcIixcImh0dHAubWV0aG9kXCI6by5tZXRob2QsdXJsOm8udXJsfSxkZXNjcmlwdGlvbjpgJHtvLm1ldGhvZH0gJHtvLnVybH1gLG9wOlwiaHR0cC5jbGllbnRcIn0pO2lmKGkuX19zZW50cnlfeGhyX3NwYW5faWRfXz1lLnNwYW5JZCxyW2kuX19zZW50cnlfeGhyX3NwYW5faWRfX109ZSxpLnNldFJlcXVlc3RIZWFkZXImJm4oby51cmwpKXRyeXtpLnNldFJlcXVlc3RIZWFkZXIoXCJzZW50cnktdHJhY2VcIixlLnRvVHJhY2VwYXJlbnQoKSk7Y29uc3QgdD1YcyhjLmdldER5bmFtaWNTYW1wbGluZ0NvbnRleHQoKSk7dCYmaS5zZXRSZXF1ZXN0SGVhZGVyKHFzLHQpfWNhdGNoKHUpe319fShlLGEscyxjKX0pKX1jb25zdCBDYz17Li4uaHMsbWFya0JhY2tncm91bmRUcmFuc2FjdGlvbnM6ITAscm91dGluZ0luc3RydW1lbnRhdGlvbjpmdW5jdGlvbihlLHQ9ITAsbj0hMCl7aWYoIW5jfHwhbmMubG9jYXRpb24pcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLndhcm4oXCJDb3VsZCBub3QgaW5pdGlhbGl6ZSByb3V0aW5nIGluc3RydW1lbnRhdGlvbiBkdWUgdG8gaW52YWxpZCBsb2NhdGlvblwiKSk7bGV0IHIsaT1uYy5sb2NhdGlvbi5ocmVmO3QmJihyPWUoe25hbWU6bmMubG9jYXRpb24ucGF0aG5hbWUsc3RhcnRUaW1lc3RhbXA6TGEuWjE/TGEuWjEvMWUzOnZvaWQgMCxvcDpcInBhZ2Vsb2FkXCIsbWV0YWRhdGE6e3NvdXJjZTpcInVybFwifX0pKSxuJiZrcyhcImhpc3RvcnlcIiwoKHt0bzp0LGZyb206bn0pPT57dm9pZCAwPT09biYmaSYmLTEhPT1pLmluZGV4T2YodCk/aT12b2lkIDA6biE9PXQmJihpPXZvaWQgMCxyJiYoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLmxvZyhgW1RyYWNpbmddIEZpbmlzaGluZyBjdXJyZW50IHRyYW5zYWN0aW9uIHdpdGggb3A6ICR7ci5vcH1gKSxyLmZpbmlzaCgpKSxyPWUoe25hbWU6bmMubG9jYXRpb24ucGF0aG5hbWUsb3A6XCJuYXZpZ2F0aW9uXCIsbWV0YWRhdGE6e3NvdXJjZTpcInVybFwifX0pKX0pKX0sc3RhcnRUcmFuc2FjdGlvbk9uTG9jYXRpb25DaGFuZ2U6ITAsc3RhcnRUcmFuc2FjdGlvbk9uUGFnZUxvYWQ6ITAsZW5hYmxlTG9uZ1Rhc2s6ITAsX2V4cGVyaW1lbnRzOnt9LC4uLk9jfTtjbGFzcyBOY3tfX2luaXQoKXt0aGlzLm5hbWU9XCJCcm93c2VyVHJhY2luZ1wifWNvbnN0cnVjdG9yKGUpe05jLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSxLcygpLHRoaXMub3B0aW9ucz17Li4uQ2MsLi4uZX0sdm9pZCAwIT09dGhpcy5vcHRpb25zLl9leHBlcmltZW50cy5lbmFibGVMb25nVGFzayYmKHRoaXMub3B0aW9ucy5lbmFibGVMb25nVGFzaz10aGlzLm9wdGlvbnMuX2V4cGVyaW1lbnRzLmVuYWJsZUxvbmdUYXNrKSxlJiYhZS50cmFjZVByb3BhZ2F0aW9uVGFyZ2V0cyYmZS50cmFjaW5nT3JpZ2lucyYmKHRoaXMub3B0aW9ucy50cmFjZVByb3BhZ2F0aW9uVGFyZ2V0cz1lLnRyYWNpbmdPcmlnaW5zKSx0aGlzLl9jb2xsZWN0V2ViVml0YWxzPWJjKCksdGhpcy5vcHRpb25zLmVuYWJsZUxvbmdUYXNrJiZzYyhcImxvbmd0YXNrXCIsKGU9Pntmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPVVzKCk7aWYoIWUpcmV0dXJuO2NvbnN0IG49aGMoTGEuWjErdC5zdGFydFRpbWUpLHI9aGModC5kdXJhdGlvbik7ZS5zdGFydENoaWxkKHtkZXNjcmlwdGlvbjpcIk1haW4gVUkgdGhyZWFkIGJsb2NrZWRcIixvcDpcInVpLmxvbmctdGFza1wiLHN0YXJ0VGltZXN0YW1wOm4sZW5kVGltZXN0YW1wOm4rcn0pfX0pKSx0aGlzLm9wdGlvbnMuX2V4cGVyaW1lbnRzLmVuYWJsZUludGVyYWN0aW9ucyYmc2MoXCJldmVudFwiLChlPT57Zm9yKGNvbnN0IHQgb2YgZSl7Y29uc3QgZT1VcygpO2lmKCFlKXJldHVybjtpZihcImNsaWNrXCI9PT10Lm5hbWUpe2NvbnN0IG49aGMoTGEuWjErdC5zdGFydFRpbWUpLHI9aGModC5kdXJhdGlvbik7ZS5zdGFydENoaWxkKHtkZXNjcmlwdGlvbjplYyh0LnRhcmdldCksb3A6YHVpLmludGVyYWN0aW9uLiR7dC5uYW1lfWAsc3RhcnRUaW1lc3RhbXA6bixlbmRUaW1lc3RhbXA6bityfSl9fX0pLHtkdXJhdGlvblRocmVzaG9sZDowfSl9c2V0dXBPbmNlKGUsdCl7dGhpcy5fZ2V0Q3VycmVudEh1Yj10O2NvbnN0e3JvdXRpbmdJbnN0cnVtZW50YXRpb246bixzdGFydFRyYW5zYWN0aW9uT25Mb2NhdGlvbkNoYW5nZTpyLHN0YXJ0VHJhbnNhY3Rpb25PblBhZ2VMb2FkOmksbWFya0JhY2tncm91bmRUcmFuc2FjdGlvbnM6byx0cmFjZUZldGNoOmEsdHJhY2VYSFI6cyx0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0czpjLHNob3VsZENyZWF0ZVNwYW5Gb3JSZXF1ZXN0OnUsX2V4cGVyaW1lbnRzOmx9PXRoaXMub3B0aW9ucztuKChlPT57Y29uc3Qgbj10aGlzLl9jcmVhdGVSb3V0ZVRyYW5zYWN0aW9uKGUpO3JldHVybiB0aGlzLm9wdGlvbnMuX2V4cGVyaW1lbnRzLm9uU3RhcnRSb3V0ZVRyYW5zYWN0aW9uJiZ0aGlzLm9wdGlvbnMuX2V4cGVyaW1lbnRzLm9uU3RhcnRSb3V0ZVRyYW5zYWN0aW9uKG4sZSx0KSxufSksaSxyKSxvJiYobmMmJm5jLmRvY3VtZW50P25jLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsKCgpPT57Y29uc3QgZT1VcygpO2lmKG5jLmRvY3VtZW50LmhpZGRlbiYmZSl7Y29uc3QgdD1cImNhbmNlbGxlZFwiOyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coYFtUcmFjaW5nXSBUcmFuc2FjdGlvbjogJHt0fSAtPiBzaW5jZSB0YWIgbW92ZWQgdG8gdGhlIGJhY2tncm91bmQsIG9wOiAke2Uub3B9YCksZS5zdGF0dXN8fGUuc2V0U3RhdHVzKHQpLGUuc2V0VGFnKFwidmlzaWJpbGl0eWNoYW5nZVwiLFwiZG9jdW1lbnQuaGlkZGVuXCIpLGUuZmluaXNoKCl9fSkpOihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS53YXJuKFwiW1RyYWNpbmddIENvdWxkIG5vdCBzZXQgdXAgYmFja2dyb3VuZCB0YWIgZGV0ZWN0aW9uIGR1ZSB0byBsYWNrIG9mIGdsb2JhbCBkb2N1bWVudFwiKSksbC5lbmFibGVJbnRlcmFjdGlvbnMmJnRoaXMuX3JlZ2lzdGVySW50ZXJhY3Rpb25MaXN0ZW5lcigpLEFjKHt0cmFjZUZldGNoOmEsdHJhY2VYSFI6cyx0cmFjZVByb3BhZ2F0aW9uVGFyZ2V0czpjLHNob3VsZENyZWF0ZVNwYW5Gb3JSZXF1ZXN0OnV9KX1fY3JlYXRlUm91dGVUcmFuc2FjdGlvbihlKXtpZighdGhpcy5fZ2V0Q3VycmVudEh1YilyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEud2FybihgW1RyYWNpbmddIERpZCBub3QgY3JlYXRlICR7ZS5vcH0gdHJhbnNhY3Rpb24gYmVjYXVzZSBfZ2V0Q3VycmVudEh1YiBpcyBpbnZhbGlkLmApKTtjb25zdHtiZWZvcmVOYXZpZ2F0ZTp0LGlkbGVUaW1lb3V0Om4sZmluYWxUaW1lb3V0OnIsaGVhcnRiZWF0SW50ZXJ2YWw6aX09dGhpcy5vcHRpb25zLG89XCJwYWdlbG9hZFwiPT09ZS5vcCxhPW8/a2MoXCJzZW50cnktdHJhY2VcIik6bnVsbCxzPW8/a2MoXCJiYWdnYWdlXCIpOm51bGwsYz1hP2Z1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5tYXRjaChZcyk7aWYoIWV8fCF0KXJldHVybjtsZXQgbjtyZXR1cm5cIjFcIj09PXRbM10/bj0hMDpcIjBcIj09PXRbM10mJihuPSExKSx7dHJhY2VJZDp0WzFdLHBhcmVudFNhbXBsZWQ6bixwYXJlbnRTcGFuSWQ6dFsyXX19KGEpOnZvaWQgMCx1PXM/ZnVuY3Rpb24oZSl7aWYoIUdhKGUpJiYhQXJyYXkuaXNBcnJheShlKSlyZXR1cm47bGV0IHQ9e307aWYoQXJyYXkuaXNBcnJheShlKSl0PWUucmVkdWNlKCgoZSx0KT0+KHsuLi5lLC4uLlFzKHQpfSkpLHt9KTtlbHNle2lmKCFlKXJldHVybjt0PVFzKGUpfWNvbnN0IG49T2JqZWN0LmVudHJpZXModCkucmVkdWNlKCgoZSxbdCxuXSk9Pih0Lm1hdGNoKEpzKSYmKGVbdC5zbGljZShacy5sZW5ndGgpXT1uKSxlKSkse30pO3JldHVybiBPYmplY3Qua2V5cyhuKS5sZW5ndGg+MD9uOnZvaWQgMH0ocyk6dm9pZCAwLGw9ey4uLmUsLi4uYyxtZXRhZGF0YTp7Li4uZS5tZXRhZGF0YSxkeW5hbWljU2FtcGxpbmdDb250ZXh0OmMmJiF1P3t9OnV9LHRyaW1FbmQ6ITB9LGQ9XCJmdW5jdGlvblwiPT09dHlwZW9mIHQ/dChsKTpsLHA9dm9pZCAwPT09ZD97Li4ubCxzYW1wbGVkOiExfTpkO3AubWV0YWRhdGE9cC5uYW1lIT09bC5uYW1lP3suLi5wLm1ldGFkYXRhLHNvdXJjZTpcImN1c3RvbVwifTpwLm1ldGFkYXRhLHRoaXMuX2xhdGVzdFJvdXRlTmFtZT1wLm5hbWUsdGhpcy5fbGF0ZXN0Um91dGVTb3VyY2U9cC5tZXRhZGF0YSYmcC5tZXRhZGF0YS5zb3VyY2UsITE9PT1wLnNhbXBsZWQmJihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS5sb2coYFtUcmFjaW5nXSBXaWxsIG5vdCBzZW5kICR7cC5vcH0gdHJhbnNhY3Rpb24gYmVjYXVzZSBvZiBiZWZvcmVOYXZpZ2F0ZS5gKSwoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmeGEubG9nKGBbVHJhY2luZ10gU3RhcnRpbmcgJHtwLm9wfSB0cmFuc2FjdGlvbiBvbiBzY29wZWApO2NvbnN0IGY9dGhpcy5fZ2V0Q3VycmVudEh1YigpLHtsb2NhdGlvbjpofT1uYyxnPXpzKGYscCxuLHIsITAse2xvY2F0aW9uOmh9LGkpO3JldHVybiBnLnJlZ2lzdGVyQmVmb3JlRmluaXNoQ2FsbGJhY2soKGU9Pnt0aGlzLl9jb2xsZWN0V2ViVml0YWxzKCksU2MoZSl9KSksZ31fcmVnaXN0ZXJJbnRlcmFjdGlvbkxpc3RlbmVyKCl7bGV0IGU7Y29uc3QgdD0oKT0+e2NvbnN0e2lkbGVUaW1lb3V0OnQsZmluYWxUaW1lb3V0Om4saGVhcnRiZWF0SW50ZXJ2YWw6cn09dGhpcy5vcHRpb25zLGk9XCJ1aS5hY3Rpb24uY2xpY2tcIixvPVVzKCk7aWYobyYmby5vcCYmW1wibmF2aWdhdGlvblwiLFwicGFnZWxvYWRcIl0uaW5jbHVkZXMoby5vcCkpcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLndhcm4oYFtUcmFjaW5nXSBEaWQgbm90IGNyZWF0ZSAke2l9IHRyYW5zYWN0aW9uIGJlY2F1c2UgYSBwYWdlbG9hZCBvciBuYXZpZ2F0aW9uIHRyYW5zYWN0aW9uIGlzIGluIHByb2dyZXNzLmApKTtpZihlJiYoZS5zZXRGaW5pc2hSZWFzb24oXCJpbnRlcmFjdGlvbkludGVycnVwdGVkXCIpLGUuZmluaXNoKCksZT12b2lkIDApLCF0aGlzLl9nZXRDdXJyZW50SHViKXJldHVybiB2b2lkKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ4YS53YXJuKGBbVHJhY2luZ10gRGlkIG5vdCBjcmVhdGUgJHtpfSB0cmFuc2FjdGlvbiBiZWNhdXNlIF9nZXRDdXJyZW50SHViIGlzIGludmFsaWQuYCkpO2lmKCF0aGlzLl9sYXRlc3RSb3V0ZU5hbWUpcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnhhLndhcm4oYFtUcmFjaW5nXSBEaWQgbm90IGNyZWF0ZSAke2l9IHRyYW5zYWN0aW9uIGJlY2F1c2UgX2xhdGVzdFJvdXRlTmFtZSBpcyBtaXNzaW5nLmApKTtjb25zdCBhPXRoaXMuX2dldEN1cnJlbnRIdWIoKSx7bG9jYXRpb246c309bmMsYz17bmFtZTp0aGlzLl9sYXRlc3RSb3V0ZU5hbWUsb3A6aSx0cmltRW5kOiEwLG1ldGFkYXRhOntzb3VyY2U6dGhpcy5fbGF0ZXN0Um91dGVTb3VyY2V8fFwidXJsXCJ9fTtlPXpzKGEsYyx0LG4sITAse2xvY2F0aW9uOnN9LHIpfTtbXCJjbGlja1wiXS5mb3JFYWNoKChlPT57YWRkRXZlbnRMaXN0ZW5lcihlLHQse29uY2U6ITEsY2FwdHVyZTohMH0pfSkpfX1mdW5jdGlvbiBrYyhlKXtjb25zdCB0PShuPWBtZXRhW25hbWU9JHtlfV1gLCRzLmRvY3VtZW50JiYkcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yPyRzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iobik6bnVsbCk7dmFyIG47cmV0dXJuIHQ/dC5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpOm51bGx9ZnVuY3Rpb24gUGMoZSx0KXsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5pbmZvKGBbT2ZmbGluZV06ICR7ZX1gLHQpfWZ1bmN0aW9uIFJjKGUpe3JldHVybiB0PT57Y29uc3Qgbj1lKHQpLHI9dC5jcmVhdGVTdG9yZT90LmNyZWF0ZVN0b3JlKHQpOnZvaWQgMDtsZXQgaSxvPTVlMztmdW5jdGlvbiBhKGUpe3ImJihpJiZjbGVhclRpbWVvdXQoaSksaT1zZXRUaW1lb3V0KChhc3luYygpPT57aT12b2lkIDA7Y29uc3QgZT1hd2FpdCByLnBvcCgpO2UmJihQYyhcIkF0dGVtcHRpbmcgdG8gc2VuZCBwcmV2aW91c2x5IHF1ZXVlZCBldmVudFwiKSxjKGUpLmNhdGNoKChlPT57UGMoXCJGYWlsZWQgdG8gcmV0cnkgc2VuZGluZ1wiLGUpfSkpKX0pLGUpLFwibnVtYmVyXCIhPT10eXBlb2YgaSYmaS51bnJlZiYmaS51bnJlZigpKX1mdW5jdGlvbiBzKCl7aXx8KGEobyksbz1NYXRoLm1pbigyKm8sMzZlNSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSl7dHJ5e2NvbnN0IHQ9YXdhaXQgbi5zZW5kKGUpO2xldCByPTEwMDtpZih0KWlmKHQuaGVhZGVycyYmdC5oZWFkZXJzW1wicmV0cnktYWZ0ZXJcIl0pcj0oMCxzZS5KWSkodC5oZWFkZXJzW1wicmV0cnktYWZ0ZXJcIl0pO2Vsc2UgaWYoKHQuc3RhdHVzQ29kZXx8MCk+PTQwMClyZXR1cm4gdDtyZXR1cm4gYShyKSxvPTVlMyx0fWNhdGNoKGkpe2lmKHImJmF3YWl0IGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4hKDAsYWUuUikoZSxbXCJyZXBsYXlfZXZlbnRcIixcInJlcGxheV9yZWNvcmRpbmdcIixcImNsaWVudF9yZXBvcnRcIl0pJiYoIXQuc2hvdWxkU3RvcmV8fHQuc2hvdWxkU3RvcmUoZSxuLHIpKX0oZSxpLG8pKXJldHVybiBhd2FpdCByLmluc2VydChlKSxzKCksUGMoXCJFcnJvciBzZW5kaW5nLiBFdmVudCBxdWV1ZWRcIixpKSx7fTt0aHJvdyBpfX1yZXR1cm4gdC5mbHVzaEF0U3RhcnR1cCYmcygpLHtzZW5kOmMsZmx1c2g6ZT0+bi5mbHVzaChlKX19fWZ1bmN0aW9uIHdjKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoKHQsbik9PntlLm9uY29tcGxldGU9ZS5vbnN1Y2Nlc3M9KCk9PnQoZS5yZXN1bHQpLGUub25hYm9ydD1lLm9uZXJyb3I9KCk9Pm4oZS5lcnJvcil9KSl9ZnVuY3Rpb24gTGMoZSl7cmV0dXJuIHdjKGUuZ2V0QWxsS2V5cygpKX1mdW5jdGlvbiBCYyhlKXtsZXQgdDtmdW5jdGlvbiBuKCl7cmV0dXJuIHZvaWQgMD09dCYmKHQ9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWluZGV4ZWREQi5vcGVuKGUpO24ub251cGdyYWRlbmVlZGVkPSgpPT5uLnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSh0KTtjb25zdCByPXdjKG4pO3JldHVybiBlPT5yLnRoZW4oKG49PmUobi50cmFuc2FjdGlvbih0LFwicmVhZHdyaXRlXCIpLm9iamVjdFN0b3JlKHQpKSkpfShlLmRiTmFtZXx8XCJzZW50cnktb2ZmbGluZVwiLGUuc3RvcmVOYW1lfHxcInF1ZXVlXCIpKSx0fXJldHVybntpbnNlcnQ6YXN5bmMgdD0+e3RyeXtjb25zdCByPWF3YWl0KDAsYWUuViQpKHQsZS50ZXh0RW5jb2Rlcik7YXdhaXQgZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlKChlPT5MYyhlKS50aGVuKChyPT57aWYoIShyLmxlbmd0aD49bikpcmV0dXJuIGUucHV0KHQsTWF0aC5tYXgoLi4uciwwKSsxKSx3YyhlLnRyYW5zYWN0aW9uKX0pKSkpfShuKCkscixlLm1heFF1ZXVlU2l6ZXx8MzApfWNhdGNoKHIpe319LHBvcDphc3luYygpPT57dHJ5e2NvbnN0IHQ9YXdhaXQgZnVuY3Rpb24oZSl7cmV0dXJuIGUoKGU9PkxjKGUpLnRoZW4oKHQ9PntpZigwIT09dC5sZW5ndGgpcmV0dXJuIHdjKGUuZ2V0KHRbMF0pKS50aGVuKChuPT4oZS5kZWxldGUodFswXSksd2MoZS50cmFuc2FjdGlvbikudGhlbigoKCk9Pm4pKSkpKX0pKSkpfShuKCkpO2lmKHQpcmV0dXJuKDAsYWUuZjQpKHQsZS50ZXh0RW5jb2Rlcnx8bmV3IFRleHRFbmNvZGVyLGUudGV4dERlY29kZXJ8fG5ldyBUZXh0RGVjb2Rlcil9Y2F0Y2godCl7fX19fWZ1bmN0aW9uIE1jKGUpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdD0+ZSh7Li4udCxjcmVhdGVTdG9yZTpCY30pfShSYyhlKSl9Y29uc3QgRGM9ZnVuY3Rpb24oZSl7bGV0IHQ9W10sbj17fTtyZXR1cm57YWRkKHIsaSl7Zm9yKDt0Lmxlbmd0aD49ZTspe2NvbnN0IGU9dC5zaGlmdCgpO3ZvaWQgMCE9PWUmJmRlbGV0ZSBuW2VdfW5bcl0mJnRoaXMuZGVsZXRlKHIpLHQucHVzaChyKSxuW3JdPWl9LGNsZWFyKCl7bj17fSx0PVtdfSxnZXQ6ZT0+bltlXSxzaXplOigpPT50Lmxlbmd0aCxkZWxldGUoZSl7aWYoIW5bZV0pcmV0dXJuITE7ZGVsZXRlIG5bZV07Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXT09PWUpe3Quc3BsaWNlKG4sMSk7YnJlYWt9cmV0dXJuITB9fX0oMjApLGpjPTFlNix4Yz1TdHJpbmcoMCksVWM9XCJtYWluXCI7bGV0IEZjPVwiXCIsSGM9XCJcIixHYz1cIlwiLFdjPXZlLm5hdmlnYXRvciYmdmUubmF2aWdhdG9yLnVzZXJBZ2VudHx8XCJcIixWYz1cIlwiO2NvbnN0IHpjPXZlLm5hdmlnYXRvciYmdmUubmF2aWdhdG9yLmxhbmd1YWdlfHx2ZS5uYXZpZ2F0b3ImJnZlLm5hdmlnYXRvci5sYW5ndWFnZXMmJnZlLm5hdmlnYXRvci5sYW5ndWFnZXNbMF18fFwiXCI7Y29uc3QgS2M9dmUubmF2aWdhdG9yJiZ2ZS5uYXZpZ2F0b3IudXNlckFnZW50RGF0YTt2YXIgWWM7ZnVuY3Rpb24gcWMoZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiEoXCJ0aHJlYWRfbWV0YWRhdGFcImluIGUpfShlKT9mdW5jdGlvbihlKXtsZXQgdCxuPTA7Y29uc3Qgcj17c2FtcGxlczpbXSxzdGFja3M6W10sZnJhbWVzOltdLHRocmVhZF9tZXRhZGF0YTp7W3hjXTp7bmFtZTpVY319fTtpZighZS5zYW1wbGVzLmxlbmd0aClyZXR1cm4gcjtjb25zdCBpPWUuc2FtcGxlc1swXS50aW1lc3RhbXA7Zm9yKGxldCBvPTA7bzxlLnNhbXBsZXMubGVuZ3RoO28rKyl7Y29uc3QgYT1lLnNhbXBsZXNbb107aWYodm9pZCAwPT09YS5zdGFja0lkKXt2b2lkIDA9PT10JiYodD1uLHIuc3RhY2tzW3RdPVtdLG4rKyksci5zYW1wbGVzW29dPXtlbGFwc2VkX3NpbmNlX3N0YXJ0X25zOigoYS50aW1lc3RhbXAtaSkqamMpLnRvRml4ZWQoMCksc3RhY2tfaWQ6dCx0aHJlYWRfaWQ6eGN9O2NvbnRpbnVlfWxldCBzPWUuc3RhY2tzW2Euc3RhY2tJZF07Y29uc3QgYz1bXTtmb3IoO3M7KXtjLnB1c2gocy5mcmFtZUlkKTtjb25zdCB0PWUuZnJhbWVzW3MuZnJhbWVJZF07dm9pZCAwPT09ci5mcmFtZXNbcy5mcmFtZUlkXSYmKHIuZnJhbWVzW3MuZnJhbWVJZF09e2Z1bmN0aW9uOnQubmFtZSxmaWxlOnQucmVzb3VyY2VJZD9lLnJlc291cmNlc1t0LnJlc291cmNlSWRdOnZvaWQgMCxsaW5lOnQubGluZSxjb2x1bW46dC5jb2x1bW59KSxzPXZvaWQgMD09PXMucGFyZW50SWQ/dm9pZCAwOmUuc3RhY2tzW3MucGFyZW50SWRdfWNvbnN0IHU9e2VsYXBzZWRfc2luY2Vfc3RhcnRfbnM6KChhLnRpbWVzdGFtcC1pKSpqYykudG9GaXhlZCgwKSxzdGFja19pZDpuLHRocmVhZF9pZDp4Y307ci5zdGFja3Nbbl09YyxyLnNhbXBsZXNbb109dSxuKyt9cmV0dXJuIHJ9KGUpOmV9ZnVuY3Rpb24gWmMoZSx0LG4scil7aWYoXCJ0cmFuc2FjdGlvblwiIT09ZS50eXBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJQcm9maWxpbmcgZXZlbnRzIG1heSBvbmx5IGJlIGF0dGFjaGVkIHRvIHRyYW5zYWN0aW9ucywgdGhpcyBzaG91bGQgbmV2ZXIgb2NjdXIuXCIpO2NvbnN0IGk9ZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGEucHJvZmlsZTtpZih2b2lkIDA9PT1pfHxudWxsPT09aSl0aHJvdyBuZXcgVHlwZUVycm9yKGBDYW5ub3QgY29uc3RydWN0IHByb2ZpbGluZyBldmVudCBlbnZlbG9wZSB3aXRob3V0IGEgdmFsaWQgcHJvZmlsZS4gR290ICR7aX0gaW5zdGVhZC5gKTtpZighaS5wcm9maWxlX2lkKXRocm93IG5ldyBUeXBlRXJyb3IoXCJQcm9maWxlIGlzIG1pc3NpbmcgcHJvZmlsZV9pZFwiKTtpZihpLnNhbXBsZXMubGVuZ3RoPD0xKXJldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIERpc2NhcmRpbmcgcHJvZmlsZSBiZWNhdXNlIGl0IGNvbnRhaW5zIGxlc3MgdGhhbiAyIHNhbXBsZXNcIiksbnVsbDtjb25zdCBhPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZSYmZS5jb250ZXh0cyYmZS5jb250ZXh0cy50cmFjZSYmZS5jb250ZXh0cy50cmFjZS50cmFjZV9pZDtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIHQmJjMyIT09dC5sZW5ndGgmJihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhgW1Byb2ZpbGluZ10gSW52YWxpZCB0cmFjZUlkOiAke3R9IG9uIHByb2ZpbGVkIGV2ZW50YCksXCJzdHJpbmdcIiE9PXR5cGVvZiB0P1wiXCI6dH0oZSkscz1mdW5jdGlvbihlKXtpZihlJiZlLnNkaylyZXR1cm57bmFtZTplLnNkay5uYW1lLHZlcnNpb246ZS5zZGsudmVyc2lvbn19KG4pOyFmdW5jdGlvbihlLHQpe3QmJihlLnNkaz1lLnNka3x8e30sZS5zZGsubmFtZT1lLnNkay5uYW1lfHx0Lm5hbWV8fFwidW5rbm93biBzZGtcIixlLnNkay52ZXJzaW9uPWUuc2RrLnZlcnNpb258fHQudmVyc2lvbnx8XCJ1bmtub3duIHNkayB2ZXJzaW9uXCIsZS5zZGsuaW50ZWdyYXRpb25zPVsuLi5lLnNkay5pbnRlZ3JhdGlvbnN8fFtdLC4uLnQuaW50ZWdyYXRpb25zfHxbXV0sZS5zZGsucGFja2FnZXM9Wy4uLmUuc2RrLnBhY2thZ2VzfHxbXSwuLi50LnBhY2thZ2VzfHxbXV0pfShlLG4mJm4uc2RrKTtjb25zdCBsPWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IGk9ZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGEmJmUuc2RrUHJvY2Vzc2luZ01ldGFkYXRhLmR5bmFtaWNTYW1wbGluZ0NvbnRleHQ7cmV0dXJue2V2ZW50X2lkOmUuZXZlbnRfaWQsc2VudF9hdDoobmV3IERhdGUpLnRvSVNPU3RyaW5nKCksLi4udCYme3Nkazp0fSwuLi4hIW4mJntkc246KDAsZGUuUkEpKHIpfSwuLi5cInRyYW5zYWN0aW9uXCI9PT1lLnR5cGUmJmkmJnt0cmFjZTooMCxvLkpyKSh7Li4uaX0pfX19KGUscyxyLHQpLGQ9cWMoaSkscD1cIm51bWJlclwiPT09dHlwZW9mIGUuc3RhcnRfdGltZXN0YW1wPzFlMyplLnN0YXJ0X3RpbWVzdGFtcDpEYXRlLm5vdygpLGY9XCJudW1iZXJcIj09PXR5cGVvZiBlLnRpbWVzdGFtcD8xZTMqZS50aW1lc3RhbXA6RGF0ZS5ub3coKSxoPVt7dHlwZTpcInByb2ZpbGVcIn0se2V2ZW50X2lkOmkucHJvZmlsZV9pZCx0aW1lc3RhbXA6bmV3IERhdGUocCkudG9JU09TdHJpbmcoKSxwbGF0Zm9ybTpcImphdmFzY3JpcHRcIix2ZXJzaW9uOlwiMVwiLHJlbGVhc2U6ZS5yZWxlYXNlfHxcIlwiLGVudmlyb25tZW50OmUuZW52aXJvbm1lbnR8fG0scnVudGltZTp7bmFtZTpcImphdmFzY3JpcHRcIix2ZXJzaW9uOnZlLm5hdmlnYXRvci51c2VyQWdlbnR9LG9zOntuYW1lOkZjLHZlcnNpb246SGMsYnVpbGRfbnVtYmVyOldjfSxkZXZpY2U6e2xvY2FsZTp6Yyxtb2RlbDpWYyxtYW51ZmFjdHVyZXI6V2MsYXJjaGl0ZWN0dXJlOkdjLGlzX2VtdWxhdG9yOiExfSxwcm9maWxlOmQsdHJhbnNhY3Rpb25zOlt7bmFtZTplLnRyYW5zYWN0aW9ufHxcIlwiLGlkOmUuZXZlbnRfaWR8fCgwLHUuRE0pKCksdHJhY2VfaWQ6YSxhY3RpdmVfdGhyZWFkX2lkOnhjLHJlbGF0aXZlX3N0YXJ0X25zOlwiMFwiLHJlbGF0aXZlX2VuZF9uczooMWU2KihmLXApKS50b0ZpeGVkKDApfV19XTtyZXR1cm4oMCxhZS5KZCkobCxbaF0pfVwib2JqZWN0XCI9PT10eXBlb2YoWWM9S2MpJiZudWxsIT09WWMmJlwiZ2V0SGlnaEVudHJvcHlWYWx1ZXNcImluIFljJiZLYy5nZXRIaWdoRW50cm9weVZhbHVlcyhbXCJhcmNoaXRlY3R1cmVcIixcIm1vZGVsXCIsXCJwbGF0Zm9ybVwiLFwicGxhdGZvcm1WZXJzaW9uXCIsXCJmdWxsVmVyc2lvbkxpc3RcIl0pLnRoZW4oKGU9PntpZihGYz1lLnBsYXRmb3JtfHxcIlwiLEdjPWUuYXJjaGl0ZWN0dXJlfHxcIlwiLFZjPWUubW9kZWx8fFwiXCIsSGM9ZS5wbGF0Zm9ybVZlcnNpb258fFwiXCIsZS5mdWxsVmVyc2lvbkxpc3QmJmUuZnVsbFZlcnNpb25MaXN0Lmxlbmd0aD4wKXtjb25zdCB0PWUuZnVsbFZlcnNpb25MaXN0W2UuZnVsbFZlcnNpb25MaXN0Lmxlbmd0aC0xXTtXYz1gJHt0LmJyYW5kfSAke3QudmVyc2lvbn1gfX0pKS5jYXRjaCgoZT0+e30pKTtsZXQgSmM9ITE7ZnVuY3Rpb24gWGMoZSl7cmV0dXJuIGU/UWMoZSk6KChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIFRyYW5zYWN0aW9uIGlzIHVuZGVmaW5lZCwgc2tpcHBpbmcgcHJvZmlsaW5nXCIpLGUpfWZ1bmN0aW9uIFFjKGUpe2NvbnN0IHQ9dmUuUHJvZmlsZXI7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIHQpcmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKFwiW1Byb2ZpbGluZ10gUHJvZmlsaW5nIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLCBQcm9maWxlciBpbnRlcmZhY2UgbWlzc2luZyBvbiB3aW5kb3cgb2JqZWN0LlwiKSxlO2lmKCFlLnNhbXBsZWQpcmV0dXJuKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKFwiW1Byb2ZpbGluZ10gVHJhbnNhY3Rpb24gaXMgbm90IHNhbXBsZWQsIHNraXBwaW5nIHByb2ZpbGluZ1wiKSxlO2lmKEpjKXJldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIFByb2ZpbGluZyBoYXMgYmVlbiBkaXNhYmxlZCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjdXJyZW50IHVzZXIgc2Vzc2lvbi5cIiksZTtjb25zdCBuPU4oKS5nZXRDbGllbnQoKSxyPW4mJm4uZ2V0T3B0aW9ucygpLGk9ciYmci5wcm9maWxlc1NhbXBsZVJhdGV8fDA7aWYodm9pZCAwPT09aSlyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBQcm9maWxpbmcgZGlzYWJsZWQsIGVuYWJsZSBpdCBieSBzZXR0aW5nIGBwcm9maWxlc1NhbXBsZVJhdGVgIG9wdGlvbiB0byBTREsgaW5pdCBjYWxsLlwiKSxlO2lmKE1hdGgucmFuZG9tKCk+aSlyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBTa2lwIHByb2ZpbGluZyB0cmFuc2FjdGlvbiBkdWUgdG8gc2FtcGxpbmcuXCIpLGU7Y29uc3Qgbz1NYXRoLmZsb29yKDNlMyk7bGV0IGE7dHJ5e2E9bmV3IHQoe3NhbXBsZUludGVydmFsOjEwLG1heEJ1ZmZlclNpemU6b30pfWNhdGNoKGgpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiYoYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHJvZmlsaW5nIGNvbnN0cnVjdG9yLCB0aGlzIGlzIGxpa2VseSBkdWUgdG8gYSBtaXNzaW5nICdEb2N1bWVudC1Qb2xpY3knOiAnanMtcHJvZmlsaW5nJyBoZWFkZXIuXCIpLGMua2cubG9nKFwiW1Byb2ZpbGluZ10gRGlzYWJsaW5nIHByb2ZpbGluZyBmb3IgY3VycmVudCB1c2VyIHNlc3Npb24uXCIpKSxKYz0hMH1pZighYSlyZXR1cm4gZTsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coYFtQcm9maWxpbmddIHN0YXJ0ZWQgcHJvZmlsaW5nIHRyYW5zYWN0aW9uOiAke2UubmFtZXx8ZS5kZXNjcmlwdGlvbn1gKTtjb25zdCBzPSgwLHUuRE0pKCk7bGV0IGw9bnVsbDtmdW5jdGlvbiBkKCl7ZSYmYSYmKGw/KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKFwiW1Byb2ZpbGluZ10gcHJvZmlsZSBmb3I6XCIsZS5uYW1lfHxlLmRlc2NyaXB0aW9uLFwiYWxyZWFkeSBleGlzdHMsIHJldHVybmluZyBlYXJseVwiKTphLnN0b3AoKS50aGVuKCh0PT57cCYmKHZlLmNsZWFyVGltZW91dChwKSxwPXZvaWQgMCksKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKGBbUHJvZmlsaW5nXSBzdG9wcGVkIHByb2ZpbGluZyBvZiB0cmFuc2FjdGlvbjogJHtlLm5hbWV8fGUuZGVzY3JpcHRpb259YCksdD90LnNhbXBsZXMubGVuZ3RoPDJ8fChsPXsuLi50LHByb2ZpbGVfaWQ6c30sZnVuY3Rpb24oZSx0KXtjb25zdCBuPURjLmdldChlKTtpZighbilyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBDb3VsZG4ndCBmaW5kIGEgdHJhbnNhY3Rpb24gZXZlbnQgZm9yIHRoaXMgcHJvZmlsZSwgZHJvcHBpbmcgaXQuXCIpKTtuLnNka1Byb2Nlc3NpbmdNZXRhZGF0YT1uLnNka1Byb2Nlc3NpbmdNZXRhZGF0YXx8e30sbi5zZGtQcm9jZXNzaW5nTWV0YWRhdGEmJiFuLnNka1Byb2Nlc3NpbmdNZXRhZGF0YS5wcm9maWxlJiYobi5zZGtQcm9jZXNzaW5nTWV0YWRhdGEucHJvZmlsZT10KTtjb25zdCByPU4oKS5nZXRDbGllbnQoKTtpZighcilyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBnZXRDbGllbnQgZGlkIG5vdCByZXR1cm4gYSBDbGllbnQsIHJlbW92aW5nIHByb2ZpbGUgZnJvbSBldmVudCBhbmQgZm9yd2FyZGluZyB0byBuZXh0IGV2ZW50IHByb2Nlc3NvcnMuXCIpKTtjb25zdCBpPXIuZ2V0RHNuKCk7aWYoIWkpcmV0dXJuIHZvaWQoKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKFwiW1Byb2ZpbGluZ10gZ2V0RHNuIGRpZCBub3QgcmV0dXJuIGEgRHNuLCByZW1vdmluZyBwcm9maWxlIGZyb20gZXZlbnQgYW5kIGZvcndhcmRpbmcgdG8gbmV4dCBldmVudCBwcm9jZXNzb3JzLlwiKSk7Y29uc3Qgbz1yLmdldFRyYW5zcG9ydCgpO2lmKCFvKXJldHVybiB2b2lkKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIGdldFRyYW5zcG9ydCBkaWQgbm90IHJldHVybiBhIFRyYW5zcG9ydCwgcmVtb3ZpbmcgcHJvZmlsZSBmcm9tIGV2ZW50IGFuZCBmb3J3YXJkaW5nIHRvIG5leHQgZXZlbnQgcHJvY2Vzc29ycy5cIikpOyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIFByZXBhcmluZyBlbnZlbG9wZSBhbmQgc2VuZGluZyBhIHByb2ZpbGluZyBldmVudFwiKTtjb25zdCBhPVpjKG4saSk7RGMuZGVsZXRlKGUpLGE/KChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIEVudmVsb3BlIGNvbnN0cnVjdGVkLCBzZW5kaW5nIGl0XCIpLG8uc2VuZChhKS50aGVuKG51bGwsKGU9PnsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBFcnJvciB3aGlsZSBzZW5kaW5nIGV2ZW50OlwiLGUpfSkpKTooXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBGYWlsZWQgdG8gY29uc3RydWN0IGVudmVsb3BlXCIpfShzLGwpKTooXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coYFtQcm9maWxpbmddIHByb2ZpbGVyIHJldHVybmVkIG51bGwgcHJvZmlsZSBmb3I6ICR7ZS5uYW1lfHxlLmRlc2NyaXB0aW9ufWAsXCJ0aGlzIG1heSBpbmRpY2F0ZSBhbiBvdmVybGFwcGluZyB0cmFuc2FjdGlvbiBvciBhIGNhbGwgdG8gc3RvcFByb2ZpbGluZyB3aXRoIGEgcHJvZmlsZSB0aXRsZSB0aGF0IHdhcyBuZXZlciBzdGFydGVkXCIpfSkpLmNhdGNoKChlPT4oKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKFwiW1Byb2ZpbGluZ10gZXJyb3Igd2hpbGUgc3RvcHBpbmcgcHJvZmlsZXI6XCIsZSksbnVsbCkpKSl9bGV0IHA9dmUuc2V0VGltZW91dCgoKCk9PnsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBtYXggcHJvZmlsZSBkdXJhdGlvbiBlbGFwc2VkLCBzdG9wcGluZyBwcm9maWxpbmcgZm9yOlwiLGUubmFtZXx8ZS5kZXNjcmlwdGlvbiksZCgpfSksM2U0KTtjb25zdCBmPWUuZmluaXNoLmJpbmQoZSk7cmV0dXJuIGUuZmluaXNoPWZ1bmN0aW9uKCl7cmV0dXJuIGU/KGQoKSxlLnNldENvbnRleHQoXCJwcm9maWxlXCIse3Byb2ZpbGVfaWQ6c30pLGYoKSk6ZigpfSxlfWZ1bmN0aW9uICRjKCl7Y29uc3QgZT1BKCk7ZS5fX1NFTlRSWV9fPyhlLl9fU0VOVFJZX18uZXh0ZW5zaW9ucz1lLl9fU0VOVFJZX18uZXh0ZW5zaW9uc3x8e30sZS5fX1NFTlRSWV9fLmV4dGVuc2lvbnMuc3RhcnRUcmFuc2FjdGlvbj8oKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJmMua2cubG9nKFwiW1Byb2ZpbGluZ10gc3RhcnRUcmFuc2FjdGlvbiBleGlzdHMsIHBhdGNoaW5nIGl0IHdpdGggcHJvZmlsaW5nIGZ1bmN0aW9uYWxpdHkuLi5cIiksZS5fX1NFTlRSWV9fLmV4dGVuc2lvbnMuc3RhcnRUcmFuc2FjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXtjb25zdCByPWUuY2FsbCh0aGlzLHQsbik7cmV0dXJuIHZvaWQgMD09PXI/KChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIFRyYW5zYWN0aW9uIGlzIHVuZGVmaW5lZCwgc2tpcHBpbmcgcHJvZmlsaW5nXCIpLHIpOlFjKHIpfX0oZS5fX1NFTlRSWV9fLmV4dGVuc2lvbnMuc3RhcnRUcmFuc2FjdGlvbikpOihcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIHN0YXJ0VHJhbnNhY3Rpb24gZG9lcyBub3QgZXhpc3RzLCBwcm9maWxpbmcgd2lsbCBub3Qgd29yay4gTWFrZSBzdXJlIHlvdSBpbXBvcnQgQHNlbnRyeS90cmFjaW5nIHBhY2thZ2UgYmVmb3JlIEBzZW50cnkvcHJvZmlsaW5nLW5vZGUgYXMgaW1wb3J0IG9yZGVyIG1hdHRlcnMuXCIpKTooXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmYy5rZy5sb2coXCJbUHJvZmlsaW5nXSBDYW4ndCBmaW5kIG1haW4gY2FycmllciwgcHJvZmlsaW5nIHdvbid0IHdvcmsuXCIpfWNsYXNzIGV1e2NvbnN0cnVjdG9yKCl7ZXUucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpfV9faW5pdCgpe3RoaXMubmFtZT1cIkJyb3dzZXJQcm9maWxpbmdJbnRlZ3JhdGlvblwifXNldHVwT25jZShlKXskYygpLGUodGhpcy5oYW5kbGVHbG9iYWxFdmVudC5iaW5kKHRoaXMpKX1oYW5kbGVHbG9iYWxFdmVudChlKXtjb25zdCB0PWUuY29udGV4dHMmJmUuY29udGV4dHMucHJvZmlsZSYmZS5jb250ZXh0cy5wcm9maWxlLnByb2ZpbGVfaWQ7cmV0dXJuIHQmJlwic3RyaW5nXCI9PT10eXBlb2YgdCYmKChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZjLmtnLmxvZyhcIltQcm9maWxpbmddIFByb2ZpbGluZyBldmVudCBmb3VuZCwgY2FjaGluZyBpdC5cIiksRGMuYWRkKHQsZSkpLGV9fWxldCB0dT17fTt2ZS5TZW50cnkmJnZlLlNlbnRyeS5JbnRlZ3JhdGlvbnMmJih0dT12ZS5TZW50cnkuSW50ZWdyYXRpb25zKTtjb25zdCBudT17Li4udHUsLi4uciwuLi5pfX0sOTk0MzU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KSxuLmQodCx7Q2FwdHVyZUNvbnNvbGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sRGVidWc6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sRGVkdXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LEV4dHJhRXJyb3JEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LEh0dHBDbGllbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gUn0sT2ZmbGluZTpmdW5jdGlvbigpe3JldHVybiB5fSxSZXBvcnRpbmdPYnNlcnZlcjpmdW5jdGlvbigpe3JldHVybiBPfSxSZXdyaXRlRnJhbWVzOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LFNlc3Npb25UaW1pbmc6ZnVuY3Rpb24oKXtyZXR1cm4gTn0sVHJhbnNhY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4ga319KTt2YXIgcj1uKDMyOTQ4KSxpPW4oOTEyNDgpLG89big3MjE0OCksYT1uKDk1NDk0KSxzPW4oMzQ3MDYpO2NsYXNzIGN7c3RhdGljIF9faW5pdFN0YXRpYygpe3RoaXMuaWQ9XCJDYXB0dXJlQ29uc29sZVwifV9faW5pdCgpe3RoaXMubmFtZT1jLmlkfV9faW5pdDIoKXt0aGlzLl9sZXZlbHM9ci5SVX1jb25zdHJ1Y3RvcihlPXt9KXtjLnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSxjLnByb3RvdHlwZS5fX2luaXQyLmNhbGwodGhpcyksZS5sZXZlbHMmJih0aGlzLl9sZXZlbHM9ZS5sZXZlbHMpfXNldHVwT25jZShlLHQpe1wiY29uc29sZVwiaW4gaS5uMiYmdGhpcy5fbGV2ZWxzLmZvckVhY2goKGU9PntlIGluIGkubjIuY29uc29sZSYmKDAsby5obCkoaS5uMi5jb25zb2xlLGUsKG49PiguLi5yKT0+e2NvbnN0IG89dCgpO28uZ2V0SW50ZWdyYXRpb24oYykmJm8ud2l0aFNjb3BlKCh0PT57dC5zZXRMZXZlbCgoMCxhLlZUKShlKSksdC5zZXRFeHRyYShcImFyZ3VtZW50c1wiLHIpLHQuYWRkRXZlbnRQcm9jZXNzb3IoKGU9PihlLmxvZ2dlcj1cImNvbnNvbGVcIixlKSkpO2xldCBuPSgwLHMubkspKHIsXCIgXCIpO1wiYXNzZXJ0XCI9PT1lPyExPT09clswXSYmKG49YEFzc2VydGlvbiBmYWlsZWQ6ICR7KDAscy5uSykoci5zbGljZSgxKSxcIiBcIil8fFwiY29uc29sZS5hc3NlcnRcIn1gLHQuc2V0RXh0cmEoXCJhcmd1bWVudHNcIixyLnNsaWNlKDEpKSxvLmNhcHR1cmVNZXNzYWdlKG4pKTpcImVycm9yXCI9PT1lJiZyWzBdaW5zdGFuY2VvZiBFcnJvcj9vLmNhcHR1cmVFeGNlcHRpb24oclswXSk6by5jYXB0dXJlTWVzc2FnZShuKX0pKSxuJiZuLmFwcGx5KGkubjIuY29uc29sZSxyKX0pKX0pKX19Yy5fX2luaXRTdGF0aWMoKTtjbGFzcyB1e3N0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiRGVidWdcIn1fX2luaXQoKXt0aGlzLm5hbWU9dS5pZH1jb25zdHJ1Y3RvcihlKXt1LnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSx0aGlzLl9vcHRpb25zPXtkZWJ1Z2dlcjohMSxzdHJpbmdpZnk6ITEsLi4uZX19c2V0dXBPbmNlKGUsdCl7ZSgoKGUsbik9Pntjb25zdCBpPXQoKS5nZXRJbnRlZ3JhdGlvbih1KTtyZXR1cm4gaSYmKGkuX29wdGlvbnMuZGVidWdnZXIsKDAsci5DZikoKCgpPT57aS5fb3B0aW9ucy5zdHJpbmdpZnk/KGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGUsbnVsbCwyKSksT2JqZWN0LmtleXMobikubGVuZ3RoJiZjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShuLG51bGwsMikpKTooY29uc29sZS5sb2coZSksT2JqZWN0LmtleXMobikubGVuZ3RoJiZjb25zb2xlLmxvZyhuKSl9KSkpLGV9KSl9fXUuX19pbml0U3RhdGljKCk7Y2xhc3MgbHtjb25zdHJ1Y3Rvcigpe2wucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpfXN0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiRGVkdXBlXCJ9X19pbml0KCl7dGhpcy5uYW1lPWwuaWR9c2V0dXBPbmNlKGUsdCl7Y29uc3Qgbj1lPT57aWYoZS50eXBlKXJldHVybiBlO2NvbnN0IG49dCgpLmdldEludGVncmF0aW9uKGwpO2lmKG4pe3RyeXtpZihmdW5jdGlvbihlLHQpe2lmKCF0KXJldHVybiExO2lmKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1lLm1lc3NhZ2Uscj10Lm1lc3NhZ2U7aWYoIW4mJiFyKXJldHVybiExO2lmKG4mJiFyfHwhbiYmcilyZXR1cm4hMTtpZihuIT09cilyZXR1cm4hMTtpZighcChlLHQpKXJldHVybiExO2lmKCFkKGUsdCkpcmV0dXJuITE7cmV0dXJuITB9KGUsdCkpcmV0dXJuITA7aWYoZnVuY3Rpb24oZSx0KXtjb25zdCBuPWYodCkscj1mKGUpO2lmKCFufHwhcilyZXR1cm4hMTtpZihuLnR5cGUhPT1yLnR5cGV8fG4udmFsdWUhPT1yLnZhbHVlKXJldHVybiExO2lmKCFwKGUsdCkpcmV0dXJuITE7aWYoIWQoZSx0KSlyZXR1cm4hMTtyZXR1cm4hMH0oZSx0KSlyZXR1cm4hMDtyZXR1cm4hMX0oZSxuLl9wcmV2aW91c0V2ZW50KSlyZXR1cm4oXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmci5rZy53YXJuKFwiRXZlbnQgZHJvcHBlZCBkdWUgdG8gYmVpbmcgYSBkdXBsaWNhdGUgb2YgcHJldmlvdXNseSBjYXB0dXJlZCBldmVudC5cIiksbnVsbH1jYXRjaChpKXtyZXR1cm4gbi5fcHJldmlvdXNFdmVudD1lfXJldHVybiBuLl9wcmV2aW91c0V2ZW50PWV9cmV0dXJuIGV9O24uaWQ9dGhpcy5uYW1lLGUobil9fWZ1bmN0aW9uIGQoZSx0KXtsZXQgbj1oKGUpLHI9aCh0KTtpZighbiYmIXIpcmV0dXJuITA7aWYobiYmIXJ8fCFuJiZyKXJldHVybiExO2lmKHIubGVuZ3RoIT09bi5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspe2NvbnN0IGU9cltpXSx0PW5baV07aWYoZS5maWxlbmFtZSE9PXQuZmlsZW5hbWV8fGUubGluZW5vIT09dC5saW5lbm98fGUuY29sbm8hPT10LmNvbG5vfHxlLmZ1bmN0aW9uIT09dC5mdW5jdGlvbilyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBwKGUsdCl7bGV0IG49ZS5maW5nZXJwcmludCxyPXQuZmluZ2VycHJpbnQ7aWYoIW4mJiFyKXJldHVybiEwO2lmKG4mJiFyfHwhbiYmcilyZXR1cm4hMTt0cnl7cmV0dXJuIShuLmpvaW4oXCJcIikhPT1yLmpvaW4oXCJcIikpfWNhdGNoKGkpe3JldHVybiExfX1mdW5jdGlvbiBmKGUpe3JldHVybiBlLmV4Y2VwdGlvbiYmZS5leGNlcHRpb24udmFsdWVzJiZlLmV4Y2VwdGlvbi52YWx1ZXNbMF19ZnVuY3Rpb24gaChlKXtjb25zdCB0PWUuZXhjZXB0aW9uO2lmKHQpdHJ5e3JldHVybiB0LnZhbHVlc1swXS5zdGFja3RyYWNlLmZyYW1lc31jYXRjaChuKXtyZXR1cm59fWwuX19pbml0U3RhdGljKCk7dmFyIGc9bigyMjc5OSksbT1uKDUyNzAxKTtjbGFzcyB2e3N0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiRXh0cmFFcnJvckRhdGFcIn1fX2luaXQoKXt0aGlzLm5hbWU9di5pZH1jb25zdHJ1Y3RvcihlKXt2LnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSx0aGlzLl9vcHRpb25zPXtkZXB0aDozLC4uLmV9fXNldHVwT25jZShlLHQpe2UoKChlLG4pPT57Y29uc3Qgcj10KCkuZ2V0SW50ZWdyYXRpb24odik7cmV0dXJuIHI/ci5lbmhhbmNlRXZlbnRXaXRoRXJyb3JEYXRhKGUsbik6ZX0pKX1lbmhhbmNlRXZlbnRXaXRoRXJyb3JEYXRhKGUsdD17fSl7aWYoIXQub3JpZ2luYWxFeGNlcHRpb258fCEoMCxnLlZaKSh0Lm9yaWdpbmFsRXhjZXB0aW9uKSlyZXR1cm4gZTtjb25zdCBuPXQub3JpZ2luYWxFeGNlcHRpb24ubmFtZXx8dC5vcmlnaW5hbEV4Y2VwdGlvbi5jb25zdHJ1Y3Rvci5uYW1lLHI9dGhpcy5fZXh0cmFjdEVycm9yRGF0YSh0Lm9yaWdpbmFsRXhjZXB0aW9uKTtpZihyKXtjb25zdCB0PXsuLi5lLmNvbnRleHRzfSxpPSgwLG0uRnYpKHIsdGhpcy5fb3B0aW9ucy5kZXB0aCk7cmV0dXJuKDAsZy5QTykoaSkmJigoMCxvLnhwKShpLFwiX19zZW50cnlfc2tpcF9ub3JtYWxpemF0aW9uX19cIiwhMCksdFtuXT1pKSx7Li4uZSxjb250ZXh0czp0fX1yZXR1cm4gZX1fZXh0cmFjdEVycm9yRGF0YShlKXt0cnl7Y29uc3QgdD1bXCJuYW1lXCIsXCJtZXNzYWdlXCIsXCJzdGFja1wiLFwibGluZVwiLFwiY29sdW1uXCIsXCJmaWxlTmFtZVwiLFwibGluZU51bWJlclwiLFwiY29sdW1uTnVtYmVyXCIsXCJ0b0pTT05cIl0sbj17fTtmb3IoY29uc3QgciBvZiBPYmplY3Qua2V5cyhlKSl7aWYoLTEhPT10LmluZGV4T2YocikpY29udGludWU7Y29uc3QgaT1lW3JdO25bcl09KDAsZy5WWikoaSk/aS50b1N0cmluZygpOml9aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUudG9KU09OKXtjb25zdCB0PWUudG9KU09OKCk7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXModCkpe2NvbnN0IHI9dFtlXTtuW2VdPSgwLGcuVlopKHIpP3IudG9TdHJpbmcoKTpyfX1yZXR1cm4gbn1jYXRjaCh0KXsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmci5rZy5lcnJvcihcIlVuYWJsZSB0byBleHRyYWN0IGV4dHJhIGRhdGEgZnJvbSB0aGUgRXJyb3Igb2JqZWN0OlwiLHQpfXJldHVybiBudWxsfX12Ll9faW5pdFN0YXRpYygpO3ZhciBfPW4oMTcxNCksRT1uKDY5NDgzKSxiPW4ubihFKTtjb25zdCBTPWkubjI7Y2xhc3MgeXtzdGF0aWMgX19pbml0U3RhdGljKCl7dGhpcy5pZD1cIk9mZmxpbmVcIn1fX2luaXQoKXt0aGlzLm5hbWU9eS5pZH1jb25zdHJ1Y3RvcihlPXt9KXt5LnByb3RvdHlwZS5fX2luaXQuY2FsbCh0aGlzKSx0aGlzLm1heFN0b3JlZEV2ZW50cz1lLm1heFN0b3JlZEV2ZW50c3x8MzAsdGhpcy5vZmZsaW5lRXZlbnRTdG9yZT1iKCkuY3JlYXRlSW5zdGFuY2Uoe25hbWU6XCJzZW50cnkvb2ZmbGluZUV2ZW50U3RvcmVcIn0pfXNldHVwT25jZShlLHQpe3RoaXMuaHViPXQoKSxcImFkZEV2ZW50TGlzdGVuZXJcImluIFMmJlMuYWRkRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCgoKT0+e3RoaXMuX3NlbmRFdmVudHMoKS5jYXRjaCgoKCk9PnsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmci5rZy53YXJuKFwiY291bGQgbm90IHNlbmQgY2FjaGVkIGV2ZW50c1wiKX0pKX0pKTtjb25zdCBuPWU9PnRoaXMuaHViJiZ0aGlzLmh1Yi5nZXRJbnRlZ3JhdGlvbih5KSYmXCJuYXZpZ2F0b3JcImluIFMmJlwib25MaW5lXCJpbiBTLm5hdmlnYXRvciYmIVMubmF2aWdhdG9yLm9uTGluZT8oKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnIua2cubG9nKFwiRXZlbnQgZHJvcHBlZCBkdWUgdG8gYmVpbmcgYSBvZmZsaW5lIC0gY2FjaGluZyBpbnN0ZWFkXCIpLHRoaXMuX2NhY2hlRXZlbnQoZSkudGhlbigoZT0+dGhpcy5fZW5mb3JjZU1heEV2ZW50cygpKSkuY2F0Y2goKGU9PnsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmci5rZy53YXJuKFwiY291bGQgbm90IGNhY2hlIGV2ZW50IHdoaWxlIG9mZmxpbmVcIil9KSksbnVsbCk6ZTtuLmlkPXRoaXMubmFtZSxlKG4pLFwibmF2aWdhdG9yXCJpbiBTJiZcIm9uTGluZVwiaW4gUy5uYXZpZ2F0b3ImJlMubmF2aWdhdG9yLm9uTGluZSYmdGhpcy5fc2VuZEV2ZW50cygpLmNhdGNoKCgoKT0+eyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZyLmtnLndhcm4oXCJjb3VsZCBub3Qgc2VuZCBjYWNoZWQgZXZlbnRzXCIpfSkpfWFzeW5jIF9jYWNoZUV2ZW50KGUpe3JldHVybiB0aGlzLm9mZmxpbmVFdmVudFN0b3JlLnNldEl0ZW0oKDAsXy5ETSkoKSwoMCxtLkZ2KShlKSl9YXN5bmMgX2VuZm9yY2VNYXhFdmVudHMoKXtjb25zdCBlPVtdO3JldHVybiB0aGlzLm9mZmxpbmVFdmVudFN0b3JlLml0ZXJhdGUoKCh0LG4scik9PntlLnB1c2goe2NhY2hlS2V5Om4sZXZlbnQ6dH0pfSkpLnRoZW4oKCgpPT50aGlzLl9wdXJnZUV2ZW50cyhlLnNvcnQoKChlLHQpPT4odC5ldmVudC50aW1lc3RhbXB8fDApLShlLmV2ZW50LnRpbWVzdGFtcHx8MCkpKS5zbGljZSh0aGlzLm1heFN0b3JlZEV2ZW50czxlLmxlbmd0aD90aGlzLm1heFN0b3JlZEV2ZW50czplLmxlbmd0aCkubWFwKChlPT5lLmNhY2hlS2V5KSkpKSkuY2F0Y2goKGU9PnsoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmci5rZy53YXJuKFwiY291bGQgbm90IGVuZm9yY2UgbWF4IGV2ZW50c1wiKX0pKX1hc3luYyBfcHVyZ2VFdmVudChlKXtyZXR1cm4gdGhpcy5vZmZsaW5lRXZlbnRTdG9yZS5yZW1vdmVJdGVtKGUpfWFzeW5jIF9wdXJnZUV2ZW50cyhlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoKGU9PnRoaXMuX3B1cmdlRXZlbnQoZSkpKSkudGhlbigpfWFzeW5jIF9zZW5kRXZlbnRzKCl7cmV0dXJuIHRoaXMub2ZmbGluZUV2ZW50U3RvcmUuaXRlcmF0ZSgoKGUsdCxuKT0+e3RoaXMuaHViPyh0aGlzLmh1Yi5jYXB0dXJlRXZlbnQoZSksdGhpcy5fcHVyZ2VFdmVudCh0KS5jYXRjaCgoZT0+eyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZyLmtnLndhcm4oXCJjb3VsZCBub3QgcHVyZ2UgZXZlbnQgZnJvbSBjYWNoZVwiKX0pKSk6KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnIua2cud2FybihcIm5vIGh1YiBmb3VuZCAtIGNvdWxkIG5vdCBzZW5kIGNhY2hlZCBldmVudFwiKX0pKX19eS5fX2luaXRTdGF0aWMoKTt2YXIgVD1uKDIwMDk3KTtjb25zdCBJPWkubjI7Y2xhc3MgT3tzdGF0aWMgX19pbml0U3RhdGljKCl7dGhpcy5pZD1cIlJlcG9ydGluZ09ic2VydmVyXCJ9X19pbml0KCl7dGhpcy5uYW1lPU8uaWR9Y29uc3RydWN0b3IoZT17dHlwZXM6W1wiY3Jhc2hcIixcImRlcHJlY2F0aW9uXCIsXCJpbnRlcnZlbnRpb25cIl19KXt0aGlzLl9vcHRpb25zPWUsTy5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyl9c2V0dXBPbmNlKGUsdCl7aWYoISgwLFQuemIpKCkpcmV0dXJuO3RoaXMuX2dldEN1cnJlbnRIdWI9dDtuZXcgSS5SZXBvcnRpbmdPYnNlcnZlcih0aGlzLmhhbmRsZXIuYmluZCh0aGlzKSx7YnVmZmVyZWQ6ITAsdHlwZXM6dGhpcy5fb3B0aW9ucy50eXBlc30pLm9ic2VydmUoKX1oYW5kbGVyKGUpe2NvbnN0IHQ9dGhpcy5fZ2V0Q3VycmVudEh1YiYmdGhpcy5fZ2V0Q3VycmVudEh1YigpO2lmKHQmJnQuZ2V0SW50ZWdyYXRpb24oTykpZm9yKGNvbnN0IG4gb2YgZSl0LndpdGhTY29wZSgoZT0+e2Uuc2V0RXh0cmEoXCJ1cmxcIixuLnVybCk7Y29uc3Qgcj1gUmVwb3J0aW5nT2JzZXJ2ZXIgWyR7bi50eXBlfV1gO2xldCBpPVwiTm8gZGV0YWlscyBhdmFpbGFibGVcIjtpZihuLmJvZHkpe2NvbnN0IHQ9e307Zm9yKGNvbnN0IGUgaW4gbi5ib2R5KXRbZV09bi5ib2R5W2VdO2lmKGUuc2V0RXh0cmEoXCJib2R5XCIsdCksXCJjcmFzaFwiPT09bi50eXBlKXtjb25zdCBlPW4uYm9keTtpPVtlLmNyYXNoSWR8fFwiXCIsZS5yZWFzb258fFwiXCJdLmpvaW4oXCIgXCIpLnRyaW0oKXx8aX1lbHNle2k9bi5ib2R5Lm1lc3NhZ2V8fGl9fXQuY2FwdHVyZU1lc3NhZ2UoYCR7cn06ICR7aX1gKX0pKX19Ty5fX2luaXRTdGF0aWMoKTt2YXIgQT1uKDkzMjA5KTtjbGFzcyBDe3N0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiUmV3cml0ZUZyYW1lc1wifV9faW5pdCgpe3RoaXMubmFtZT1DLmlkfV9faW5pdDIoKXt0aGlzLl9wcmVmaXg9XCJhcHA6Ly8vXCJ9Y29uc3RydWN0b3IoZT17fSl7Qy5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksQy5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpLEMucHJvdG90eXBlLl9faW5pdDMuY2FsbCh0aGlzKSxlLnJvb3QmJih0aGlzLl9yb290PWUucm9vdCksZS5wcmVmaXgmJih0aGlzLl9wcmVmaXg9ZS5wcmVmaXgpLGUuaXRlcmF0ZWUmJih0aGlzLl9pdGVyYXRlZT1lLml0ZXJhdGVlKX1zZXR1cE9uY2UoZSx0KXtlKChlPT57Y29uc3Qgbj10KCkuZ2V0SW50ZWdyYXRpb24oQyk7cmV0dXJuIG4/bi5wcm9jZXNzKGUpOmV9KSl9cHJvY2VzcyhlKXtsZXQgdD1lO3JldHVybiBlLmV4Y2VwdGlvbiYmQXJyYXkuaXNBcnJheShlLmV4Y2VwdGlvbi52YWx1ZXMpJiYodD10aGlzLl9wcm9jZXNzRXhjZXB0aW9uc0V2ZW50KHQpKSx0fV9faW5pdDMoKXt0aGlzLl9pdGVyYXRlZT1lPT57aWYoIWUuZmlsZW5hbWUpcmV0dXJuIGU7Y29uc3QgdD0vXlthLXpBLVpdOlxcXFwvLnRlc3QoZS5maWxlbmFtZSl8fGUuZmlsZW5hbWUuaW5jbHVkZXMoXCJcXFxcXCIpJiYhZS5maWxlbmFtZS5pbmNsdWRlcyhcIi9cIiksbj0vXlxcLy8udGVzdChlLmZpbGVuYW1lKTtpZih0fHxuKXtjb25zdCBuPXQ/ZS5maWxlbmFtZS5yZXBsYWNlKC9eW2EtekEtWl06LyxcIlwiKS5yZXBsYWNlKC9cXFxcL2csXCIvXCIpOmUuZmlsZW5hbWUscj10aGlzLl9yb290PygwLEEuR2YpKHRoaXMuX3Jvb3Qsbik6KDAsQS5FWikobik7ZS5maWxlbmFtZT1gJHt0aGlzLl9wcmVmaXh9JHtyfWB9cmV0dXJuIGV9fV9wcm9jZXNzRXhjZXB0aW9uc0V2ZW50KGUpe3RyeXtyZXR1cm57Li4uZSxleGNlcHRpb246ey4uLmUuZXhjZXB0aW9uLHZhbHVlczplLmV4Y2VwdGlvbi52YWx1ZXMubWFwKChlPT4oey4uLmUsLi4uZS5zdGFja3RyYWNlJiZ7c3RhY2t0cmFjZTp0aGlzLl9wcm9jZXNzU3RhY2t0cmFjZShlLnN0YWNrdHJhY2UpfX0pKSl9fX1jYXRjaCh0KXtyZXR1cm4gZX19X3Byb2Nlc3NTdGFja3RyYWNlKGUpe3JldHVybnsuLi5lLGZyYW1lczplJiZlLmZyYW1lcyYmZS5mcmFtZXMubWFwKChlPT50aGlzLl9pdGVyYXRlZShlKSkpfX19Qy5fX2luaXRTdGF0aWMoKTtjbGFzcyBOe2NvbnN0cnVjdG9yKCl7Ti5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksTi5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpfXN0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiU2Vzc2lvblRpbWluZ1wifV9faW5pdCgpe3RoaXMubmFtZT1OLmlkfV9faW5pdDIoKXt0aGlzLl9zdGFydFRpbWU9RGF0ZS5ub3coKX1zZXR1cE9uY2UoZSx0KXtlKChlPT57Y29uc3Qgbj10KCkuZ2V0SW50ZWdyYXRpb24oTik7cmV0dXJuIG4/bi5wcm9jZXNzKGUpOmV9KSl9cHJvY2VzcyhlKXtjb25zdCB0PURhdGUubm93KCk7cmV0dXJuey4uLmUsZXh0cmE6ey4uLmUuZXh0cmEsXCJzZXNzaW9uOnN0YXJ0XCI6dGhpcy5fc3RhcnRUaW1lLFwic2Vzc2lvbjpkdXJhdGlvblwiOnQtdGhpcy5fc3RhcnRUaW1lLFwic2Vzc2lvbjplbmRcIjp0fX19fU4uX19pbml0U3RhdGljKCk7Y2xhc3Mga3tjb25zdHJ1Y3Rvcigpe2sucHJvdG90eXBlLl9faW5pdC5jYWxsKHRoaXMpfXN0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLmlkPVwiVHJhbnNhY3Rpb25cIn1fX2luaXQoKXt0aGlzLm5hbWU9ay5pZH1zZXR1cE9uY2UoZSx0KXtlKChlPT57Y29uc3Qgbj10KCkuZ2V0SW50ZWdyYXRpb24oayk7cmV0dXJuIG4/bi5wcm9jZXNzKGUpOmV9KSl9cHJvY2VzcyhlKXtjb25zdCB0PXRoaXMuX2dldEZyYW1lc0Zyb21FdmVudChlKTtmb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wO24tLSl7Y29uc3Qgcj10W25dO2lmKCEwPT09ci5pbl9hcHApe2UudHJhbnNhY3Rpb249dGhpcy5fZ2V0VHJhbnNhY3Rpb24ocik7YnJlYWt9fXJldHVybiBlfV9nZXRGcmFtZXNGcm9tRXZlbnQoZSl7Y29uc3QgdD1lLmV4Y2VwdGlvbiYmZS5leGNlcHRpb24udmFsdWVzJiZlLmV4Y2VwdGlvbi52YWx1ZXNbMF07cmV0dXJuIHQmJnQuc3RhY2t0cmFjZSYmdC5zdGFja3RyYWNlLmZyYW1lc3x8W119X2dldFRyYW5zYWN0aW9uKGUpe3JldHVybiBlLm1vZHVsZXx8ZS5mdW5jdGlvbj9gJHtlLm1vZHVsZXx8XCI/XCJ9LyR7ZS5mdW5jdGlvbnx8XCI/XCJ9YDpcIjx1bmtub3duPlwifX1rLl9faW5pdFN0YXRpYygpO3ZhciBQPW4oMzQyMzMpO2NsYXNzIFJ7c3RhdGljIF9faW5pdFN0YXRpYygpe3RoaXMuaWQ9XCJIdHRwQ2xpZW50XCJ9X19pbml0KCl7dGhpcy5uYW1lPVIuaWR9Y29uc3RydWN0b3IoZSl7Ui5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcyksdGhpcy5fb3B0aW9ucz17ZmFpbGVkUmVxdWVzdFN0YXR1c0NvZGVzOltbNTAwLDU5OV1dLGZhaWxlZFJlcXVlc3RUYXJnZXRzOlsvLiovXSwuLi5lfX1zZXR1cE9uY2UoZSx0KXt0aGlzLl9nZXRDdXJyZW50SHViPXQsdGhpcy5fd3JhcEZldGNoKCksdGhpcy5fd3JhcFhIUigpfV9mZXRjaFJlc3BvbnNlSGFuZGxlcihlLHQsbil7aWYodGhpcy5fZ2V0Q3VycmVudEh1YiYmdGhpcy5fc2hvdWxkQ2FwdHVyZVJlc3BvbnNlKHQuc3RhdHVzLHQudXJsKSl7Y29uc3QgaT1mdW5jdGlvbihlLHQpe2lmKCF0JiZlIGluc3RhbmNlb2YgUmVxdWVzdClyZXR1cm4gZTtpZihlIGluc3RhbmNlb2YgUmVxdWVzdCYmZS5ib2R5VXNlZClyZXR1cm4gZTtyZXR1cm4gbmV3IFJlcXVlc3QoZSx0KX0oZSxuKSxvPXRoaXMuX2dldEN1cnJlbnRIdWIoKTtsZXQgYSxzLGMsdTtvLnNob3VsZFNlbmREZWZhdWx0UGlpKCkmJihbe2hlYWRlcnM6YSxjb29raWVzOmN9LHtoZWFkZXJzOnMsY29va2llczp1fV09W3tjb29raWVIZWFkZXI6XCJDb29raWVcIixvYmo6aX0se2Nvb2tpZUhlYWRlcjpcIlNldC1Db29raWVcIixvYmo6dH1dLm1hcCgoKHtjb29raWVIZWFkZXI6ZSxvYmo6dH0pPT57Y29uc3Qgbj10aGlzLl9leHRyYWN0RmV0Y2hIZWFkZXJzKHQuaGVhZGVycyk7bGV0IGk7dHJ5e2NvbnN0IHQ9bltlXXx8bltlLnRvTG93ZXJDYXNlKCldfHx2b2lkIDA7dCYmKGk9dGhpcy5fcGFyc2VDb29raWVTdHJpbmcodCkpfWNhdGNoKG8peyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZyLmtnLmxvZyhgQ291bGQgbm90IGV4dHJhY3QgY29va2llcyBmcm9tIGhlYWRlciAke2V9YCl9cmV0dXJue2hlYWRlcnM6bixjb29raWVzOml9fSkpKTtjb25zdCBsPXRoaXMuX2NyZWF0ZUV2ZW50KHt1cmw6aS51cmwsbWV0aG9kOmkubWV0aG9kLHN0YXR1czp0LnN0YXR1cyxyZXF1ZXN0SGVhZGVyczphLHJlc3BvbnNlSGVhZGVyczpzLHJlcXVlc3RDb29raWVzOmMscmVzcG9uc2VDb29raWVzOnV9KTtvLmNhcHR1cmVFdmVudChsKX19X3hoclJlc3BvbnNlSGFuZGxlcihlLHQsbil7aWYodGhpcy5fZ2V0Q3VycmVudEh1YiYmdGhpcy5fc2hvdWxkQ2FwdHVyZVJlc3BvbnNlKGUuc3RhdHVzLGUucmVzcG9uc2VVUkwpKXtsZXQgbyxhLHM7Y29uc3QgYz10aGlzLl9nZXRDdXJyZW50SHViKCk7aWYoYy5zaG91bGRTZW5kRGVmYXVsdFBpaSgpKXt0cnl7Y29uc3QgdD1lLmdldFJlc3BvbnNlSGVhZGVyKFwiU2V0LUNvb2tpZVwiKXx8ZS5nZXRSZXNwb25zZUhlYWRlcihcInNldC1jb29raWVcIil8fHZvaWQgMDt0JiYoYT10aGlzLl9wYXJzZUNvb2tpZVN0cmluZyh0KSl9Y2F0Y2goaSl7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnIua2cubG9nKFwiQ291bGQgbm90IGV4dHJhY3QgY29va2llcyBmcm9tIHJlc3BvbnNlIGhlYWRlcnNcIil9dHJ5e3M9dGhpcy5fZ2V0WEhSUmVzcG9uc2VIZWFkZXJzKGUpfWNhdGNoKGkpeyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZyLmtnLmxvZyhcIkNvdWxkIG5vdCBleHRyYWN0IGhlYWRlcnMgZnJvbSByZXNwb25zZVwiKX1vPW59Y29uc3QgdT10aGlzLl9jcmVhdGVFdmVudCh7dXJsOmUucmVzcG9uc2VVUkwsbWV0aG9kOnQsc3RhdHVzOmUuc3RhdHVzLHJlcXVlc3RIZWFkZXJzOm8scmVzcG9uc2VIZWFkZXJzOnMscmVzcG9uc2VDb29raWVzOmF9KTtjLmNhcHR1cmVFdmVudCh1KX19X2dldFJlc3BvbnNlU2l6ZUZyb21IZWFkZXJzKGUpe2lmKGUpe2NvbnN0IHQ9ZVtcIkNvbnRlbnQtTGVuZ3RoXCJdfHxlW1wiY29udGVudC1sZW5ndGhcIl07aWYodClyZXR1cm4gcGFyc2VJbnQodCwxMCl9fV9wYXJzZUNvb2tpZVN0cmluZyhlKXtyZXR1cm4gZS5zcGxpdChcIjsgXCIpLnJlZHVjZSgoKGUsdCk9Pntjb25zdFtuLHJdPXQuc3BsaXQoXCI9XCIpO3JldHVybiBlW25dPXIsZX0pLHt9KX1fZXh0cmFjdEZldGNoSGVhZGVycyhlKXtjb25zdCB0PXt9O3JldHVybiBlLmZvckVhY2goKChlLG4pPT57dFtuXT1lfSkpLHR9X2dldFhIUlJlc3BvbnNlSGVhZGVycyhlKXtjb25zdCB0PWUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7cmV0dXJuIHQ/dC5zcGxpdChcIlxcclxcblwiKS5yZWR1Y2UoKChlLHQpPT57Y29uc3RbbixyXT10LnNwbGl0KFwiOiBcIik7cmV0dXJuIGVbbl09cixlfSkse30pOnt9fV9pc0luR2l2ZW5SZXF1ZXN0VGFyZ2V0cyhlKXtyZXR1cm4hIXRoaXMuX29wdGlvbnMuZmFpbGVkUmVxdWVzdFRhcmdldHMmJnRoaXMuX29wdGlvbnMuZmFpbGVkUmVxdWVzdFRhcmdldHMuc29tZSgodD0+XCJzdHJpbmdcIj09PXR5cGVvZiB0P2UuaW5jbHVkZXModCk6dC50ZXN0KGUpKSl9X2lzSW5HaXZlblN0YXR1c1JhbmdlcyhlKXtyZXR1cm4hIXRoaXMuX29wdGlvbnMuZmFpbGVkUmVxdWVzdFN0YXR1c0NvZGVzJiZ0aGlzLl9vcHRpb25zLmZhaWxlZFJlcXVlc3RTdGF0dXNDb2Rlcy5zb21lKCh0PT5cIm51bWJlclwiPT09dHlwZW9mIHQ/dD09PWU6ZT49dFswXSYmZTw9dFsxXSkpfV93cmFwRmV0Y2goKXsoMCxULnQkKSgpJiYoMCxQLm9xKShcImZldGNoXCIsKGU9Pntjb25zdHtyZXNwb25zZTp0LGFyZ3M6bn09ZSxbcixpXT1uO3QmJnRoaXMuX2ZldGNoUmVzcG9uc2VIYW5kbGVyKHIsdCxpKX0pKX1fd3JhcFhIUigpe1wiWE1MSHR0cFJlcXVlc3RcImluIGkubjImJigwLFAub3EpKFwieGhyXCIsKGU9Pntjb25zdHt4aHI6dH09ZSxuPXRbUC54VV07aWYoIW4pcmV0dXJuO2NvbnN0e21ldGhvZDppLHJlcXVlc3RfaGVhZGVyczpvfT1uO2lmKGkpdHJ5e3RoaXMuX3hoclJlc3BvbnNlSGFuZGxlcih0LGksbyl9Y2F0Y2goYSl7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnIua2cud2FybihcIkVycm9yIHdoaWxlIGV4dHJhY3RpbmcgcmVzcG9uc2UgZXZlbnQgZm9ybSBYSFIgcmVzcG9uc2VcIixhKX19KSl9X2lzU2VudHJ5UmVxdWVzdChlKXtjb25zdCB0PXRoaXMuX2dldEN1cnJlbnRIdWImJnRoaXMuX2dldEN1cnJlbnRIdWIoKS5nZXRDbGllbnQoKTtpZighdClyZXR1cm4hMTtjb25zdCBuPXQuZ2V0RHNuKCk7cmV0dXJuISFuJiZlLmluY2x1ZGVzKG4uaG9zdCl9X3Nob3VsZENhcHR1cmVSZXNwb25zZShlLHQpe3JldHVybiB0aGlzLl9pc0luR2l2ZW5TdGF0dXNSYW5nZXMoZSkmJnRoaXMuX2lzSW5HaXZlblJlcXVlc3RUYXJnZXRzKHQpJiYhdGhpcy5faXNTZW50cnlSZXF1ZXN0KHQpfV9jcmVhdGVFdmVudChlKXtjb25zdCB0PWBIVFRQIENsaWVudCBFcnJvciB3aXRoIHN0YXR1cyBjb2RlOiAke2Uuc3RhdHVzfWAsbj17bWVzc2FnZTp0LGV4Y2VwdGlvbjp7dmFsdWVzOlt7dHlwZTpcIkVycm9yXCIsdmFsdWU6dH1dfSxyZXF1ZXN0Ont1cmw6ZS51cmwsbWV0aG9kOmUubWV0aG9kLGhlYWRlcnM6ZS5yZXF1ZXN0SGVhZGVycyxjb29raWVzOmUucmVxdWVzdENvb2tpZXN9LGNvbnRleHRzOntyZXNwb25zZTp7c3RhdHVzX2NvZGU6ZS5zdGF0dXMsaGVhZGVyczplLnJlc3BvbnNlSGVhZGVycyxjb29raWVzOmUucmVzcG9uc2VDb29raWVzLGJvZHlfc2l6ZTp0aGlzLl9nZXRSZXNwb25zZVNpemVGcm9tSGVhZGVycyhlLnJlc3BvbnNlSGVhZGVycyl9fX07cmV0dXJuKDAsXy5FRykobix7dHlwZTpcImh0dHAuY2xpZW50XCJ9KSxufX1SLl9faW5pdFN0YXRpYygpfSwzMDM2MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1J0OmZ1bmN0aW9uKCl7cmV0dXJuIG99LGw0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHFUOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9bigyMjc5OSk7Y29uc3QgaT0oMCxuKDkxMjQ4KS5SZikoKTtmdW5jdGlvbiBvKGUsdD17fSl7dHJ5e2xldCBuPWU7Y29uc3Qgcj01LGk9W107bGV0IG89MCxzPTA7Y29uc3QgYz1cIiA+IFwiLHU9Yy5sZW5ndGg7bGV0IGw7Y29uc3QgZD1BcnJheS5pc0FycmF5KHQpP3Q6dC5rZXlBdHRycyxwPSFBcnJheS5pc0FycmF5KHQpJiZ0Lm1heFN0cmluZ0xlbmd0aHx8ODA7Zm9yKDtuJiZvKys8ciYmKGw9YShuLGQpLCEoXCJodG1sXCI9PT1sfHxvPjEmJnMraS5sZW5ndGgqdStsLmxlbmd0aD49cCkpOylpLnB1c2gobCkscys9bC5sZW5ndGgsbj1uLnBhcmVudE5vZGU7cmV0dXJuIGkucmV2ZXJzZSgpLmpvaW4oYyl9Y2F0Y2gobil7cmV0dXJuXCI8dW5rbm93bj5cIn19ZnVuY3Rpb24gYShlLHQpe2NvbnN0IG49ZSxpPVtdO2xldCBvLGEscyxjLHU7aWYoIW58fCFuLnRhZ05hbWUpcmV0dXJuXCJcIjtpLnB1c2gobi50YWdOYW1lLnRvTG93ZXJDYXNlKCkpO2NvbnN0IGw9dCYmdC5sZW5ndGg/dC5maWx0ZXIoKGU9Pm4uZ2V0QXR0cmlidXRlKGUpKSkubWFwKChlPT5bZSxuLmdldEF0dHJpYnV0ZShlKV0pKTpudWxsO2lmKGwmJmwubGVuZ3RoKWwuZm9yRWFjaCgoZT0+e2kucHVzaChgWyR7ZVswXX09XCIke2VbMV19XCJdYCl9KSk7ZWxzZSBpZihuLmlkJiZpLnB1c2goYCMke24uaWR9YCksbz1uLmNsYXNzTmFtZSxvJiYoMCxyLkhEKShvKSlmb3IoYT1vLnNwbGl0KC9cXHMrLyksdT0wO3U8YS5sZW5ndGg7dSsrKWkucHVzaChgLiR7YVt1XX1gKTtjb25zdCBkPVtcImFyaWEtbGFiZWxcIixcInR5cGVcIixcIm5hbWVcIixcInRpdGxlXCIsXCJhbHRcIl07Zm9yKHU9MDt1PGQubGVuZ3RoO3UrKylzPWRbdV0sYz1uLmdldEF0dHJpYnV0ZShzKSxjJiZpLnB1c2goYFske3N9PVwiJHtjfVwiXWApO3JldHVybiBpLmpvaW4oXCJcIil9ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gaS5kb2N1bWVudC5sb2NhdGlvbi5ocmVmfWNhdGNoKGUpe3JldHVyblwiXCJ9fWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGkuZG9jdW1lbnQmJmkuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcj9pLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk6bnVsbH19LDg5Mjk2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7eTpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByPW4oMjM4NDUpLGk9bigxODYzNSk7ZnVuY3Rpb24gbyhlLHQsbil7Y29uc3Qgbz1be3R5cGU6XCJjbGllbnRfcmVwb3J0XCJ9LHt0aW1lc3RhbXA6bnx8KDAsaS55VykoKSxkaXNjYXJkZWRfZXZlbnRzOmV9XTtyZXR1cm4oMCxyLkpkKSh0P3tkc246dH06e30sW29dKX19LDc0ODE5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7UkE6ZnVuY3Rpb24oKXtyZXR1cm4gb30sVTQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sdks6ZnVuY3Rpb24oKXtyZXR1cm4gY319KTt2YXIgcj1uKDYwNTkzKTtjb25zdCBpPS9eKD86KFxcdyspOilcXC9cXC8oPzooXFx3KykoPzo6KFxcdyspPyk/QCkoW1xcdy4tXSspKD86OihcXGQrKSk/XFwvKC4rKS87ZnVuY3Rpb24gbyhlLHQ9ITEpe2NvbnN0e2hvc3Q6bixwYXRoOnIscGFzczppLHBvcnQ6byxwcm9qZWN0SWQ6YSxwcm90b2NvbDpzLHB1YmxpY0tleTpjfT1lO3JldHVybmAke3N9Oi8vJHtjfSR7dCYmaT9gOiR7aX1gOlwiXCJ9QCR7bn0ke28/YDoke299YDpcIlwifS8ke3I/YCR7cn0vYDpyfSR7YX1gfWZ1bmN0aW9uIGEoZSl7Y29uc3QgdD1pLmV4ZWMoZSk7aWYoIXQpdGhyb3cgbmV3IHIuYihgSW52YWxpZCBTZW50cnkgRHNuOiAke2V9YCk7Y29uc3RbbixvLGE9XCJcIixjLHU9XCJcIixsXT10LnNsaWNlKDEpO2xldCBkPVwiXCIscD1sO2NvbnN0IGY9cC5zcGxpdChcIi9cIik7aWYoZi5sZW5ndGg+MSYmKGQ9Zi5zbGljZSgwLC0xKS5qb2luKFwiL1wiKSxwPWYucG9wKCkpLHApe2NvbnN0IGU9cC5tYXRjaCgvXlxcZCsvKTtlJiYocD1lWzBdKX1yZXR1cm4gcyh7aG9zdDpjLHBhc3M6YSxwYXRoOmQscHJvamVjdElkOnAscG9ydDp1LHByb3RvY29sOm4scHVibGljS2V5Om99KX1mdW5jdGlvbiBzKGUpe3JldHVybntwcm90b2NvbDplLnByb3RvY29sLHB1YmxpY0tleTplLnB1YmxpY0tleXx8XCJcIixwYXNzOmUucGFzc3x8XCJcIixob3N0OmUuaG9zdCxwb3J0OmUucG9ydHx8XCJcIixwYXRoOmUucGF0aHx8XCJcIixwcm9qZWN0SWQ6ZS5wcm9qZWN0SWR9fWZ1bmN0aW9uIGMoZSl7Y29uc3QgdD1cInN0cmluZ1wiPT09dHlwZW9mIGU/YShlKTpzKGUpO3JldHVybiBmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX18mJiFfX1NFTlRSWV9ERUJVR19fKXJldHVybjtjb25zdHtwb3J0OnQscHJvamVjdElkOm4scHJvdG9jb2w6aX09ZTtpZihbXCJwcm90b2NvbFwiLFwicHVibGljS2V5XCIsXCJob3N0XCIsXCJwcm9qZWN0SWRcIl0uZm9yRWFjaCgodD0+e2lmKCFlW3RdKXRocm93IG5ldyByLmIoYEludmFsaWQgU2VudHJ5IERzbjogJHt0fSBtaXNzaW5nYCl9KSksIW4ubWF0Y2goL15cXGQrJC8pKXRocm93IG5ldyByLmIoYEludmFsaWQgU2VudHJ5IERzbjogSW52YWxpZCBwcm9qZWN0SWQgJHtufWApO2lmKCFmdW5jdGlvbihlKXtyZXR1cm5cImh0dHBcIj09PWV8fFwiaHR0cHNcIj09PWV9KGkpKXRocm93IG5ldyByLmIoYEludmFsaWQgU2VudHJ5IERzbjogSW52YWxpZCBwcm90b2NvbCAke2l9YCk7aWYodCYmaXNOYU4ocGFyc2VJbnQodCwxMCkpKXRocm93IG5ldyByLmIoYEludmFsaWQgU2VudHJ5IERzbjogSW52YWxpZCBwb3J0ICR7dH1gKX0odCksdH19LDQ5NDIxOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKCl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1NFTlRSWV9CUk9XU0VSX0JVTkRMRV9fJiYhIV9fU0VOVFJZX0JST1dTRVJfQlVORExFX199ZnVuY3Rpb24gaSgpe3JldHVyblwibnBtXCJ9bi5kKHQse1M6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sbjpmdW5jdGlvbigpe3JldHVybiByfX0pfSwyMzg0NTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0JPOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LENkOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LEhZOmZ1bmN0aW9uKCl7cmV0dXJuIG19LEpkOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFI6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sViQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZjQ6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sZ3Y6ZnVuY3Rpb24oKXtyZXR1cm4gY30sbUw6ZnVuY3Rpb24oKXtyZXR1cm4gZ30selE6ZnVuY3Rpb24oKXtyZXR1cm4gZn19KTt2YXIgcj1uKDc0ODE5KSxpPW4oNTI3MDEpLG89big3MjE0OCk7ZnVuY3Rpb24gYShlLHQ9W10pe3JldHVybltlLHRdfWZ1bmN0aW9uIHMoZSx0KXtjb25zdFtuLHJdPWU7cmV0dXJuW24sWy4uLnIsdF1dfWZ1bmN0aW9uIGMoZSx0KXtjb25zdCBuPWVbMV07Zm9yKGNvbnN0IHIgb2Ygbil7aWYodChyLHJbMF0udHlwZSkpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gdShlLHQpe3JldHVybiBjKGUsKChlLG4pPT50LmluY2x1ZGVzKG4pKSl9ZnVuY3Rpb24gbChlLHQpe3JldHVybih0fHxuZXcgVGV4dEVuY29kZXIpLmVuY29kZShlKX1mdW5jdGlvbiBkKGUsdCl7Y29uc3RbbixyXT1lO2xldCBvPUpTT04uc3RyaW5naWZ5KG4pO2Z1bmN0aW9uIGEoZSl7XCJzdHJpbmdcIj09PXR5cGVvZiBvP289XCJzdHJpbmdcIj09PXR5cGVvZiBlP28rZTpbbChvLHQpLGVdOm8ucHVzaChcInN0cmluZ1wiPT09dHlwZW9mIGU/bChlLHQpOmUpfWZvcihjb25zdCBjIG9mIHIpe2NvbnN0W2UsdF09YztpZihhKGBcXG4ke0pTT04uc3RyaW5naWZ5KGUpfVxcbmApLFwic3RyaW5nXCI9PT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpYSh0KTtlbHNle2xldCBlO3RyeXtlPUpTT04uc3RyaW5naWZ5KHQpfWNhdGNoKHMpe2U9SlNPTi5zdHJpbmdpZnkoKDAsaS5GdikodCkpfWEoZSl9fXJldHVyblwic3RyaW5nXCI9PT10eXBlb2Ygbz9vOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5yZWR1Y2UoKChlLHQpPT5lK3QubGVuZ3RoKSwwKSxuPW5ldyBVaW50OEFycmF5KHQpO2xldCByPTA7Zm9yKGNvbnN0IGkgb2YgZSluLnNldChpLHIpLHIrPWkubGVuZ3RoO3JldHVybiBufShvKX1mdW5jdGlvbiBwKGUsdCxuKXtsZXQgcj1cInN0cmluZ1wiPT09dHlwZW9mIGU/dC5lbmNvZGUoZSk6ZTtmdW5jdGlvbiBpKGUpe2NvbnN0IHQ9ci5zdWJhcnJheSgwLGUpO3JldHVybiByPXIuc3ViYXJyYXkoZSsxKSx0fWZ1bmN0aW9uIG8oKXtsZXQgZT1yLmluZGV4T2YoMTApO3JldHVybiBlPDAmJihlPXIubGVuZ3RoKSxKU09OLnBhcnNlKG4uZGVjb2RlKGkoZSkpKX1jb25zdCBhPW8oKSxzPVtdO2Zvcig7ci5sZW5ndGg7KXtjb25zdCBlPW8oKSx0PVwibnVtYmVyXCI9PT10eXBlb2YgZS5sZW5ndGg/ZS5sZW5ndGg6dm9pZCAwO3MucHVzaChbZSx0P2kodCk6bygpXSl9cmV0dXJuW2Esc119ZnVuY3Rpb24gZihlLHQpe2NvbnN0IG49XCJzdHJpbmdcIj09PXR5cGVvZiBlLmRhdGE/bChlLmRhdGEsdCk6ZS5kYXRhO3JldHVyblsoMCxvLkpyKSh7dHlwZTpcImF0dGFjaG1lbnRcIixsZW5ndGg6bi5sZW5ndGgsZmlsZW5hbWU6ZS5maWxlbmFtZSxjb250ZW50X3R5cGU6ZS5jb250ZW50VHlwZSxhdHRhY2htZW50X3R5cGU6ZS5hdHRhY2htZW50VHlwZX0pLG5dfWNvbnN0IGg9e3Nlc3Npb246XCJzZXNzaW9uXCIsc2Vzc2lvbnM6XCJzZXNzaW9uXCIsYXR0YWNobWVudDpcImF0dGFjaG1lbnRcIix0cmFuc2FjdGlvbjpcInRyYW5zYWN0aW9uXCIsZXZlbnQ6XCJlcnJvclwiLGNsaWVudF9yZXBvcnQ6XCJpbnRlcm5hbFwiLHVzZXJfcmVwb3J0OlwiZGVmYXVsdFwiLHByb2ZpbGU6XCJwcm9maWxlXCIscmVwbGF5X2V2ZW50OlwicmVwbGF5XCIscmVwbGF5X3JlY29yZGluZzpcInJlcGxheVwiLGNoZWNrX2luOlwibW9uaXRvclwifTtmdW5jdGlvbiBnKGUpe3JldHVybiBoW2VdfWZ1bmN0aW9uIG0oZSl7aWYoIWV8fCFlLnNkaylyZXR1cm47Y29uc3R7bmFtZTp0LHZlcnNpb246bn09ZS5zZGs7cmV0dXJue25hbWU6dCx2ZXJzaW9uOm59fWZ1bmN0aW9uIHYoZSx0LG4saSl7Y29uc3QgYT1lLnNka1Byb2Nlc3NpbmdNZXRhZGF0YSYmZS5zZGtQcm9jZXNzaW5nTWV0YWRhdGEuZHluYW1pY1NhbXBsaW5nQ29udGV4dDtyZXR1cm57ZXZlbnRfaWQ6ZS5ldmVudF9pZCxzZW50X2F0OihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSwuLi50JiZ7c2RrOnR9LC4uLiEhbiYme2RzbjooMCxyLlJBKShpKX0sLi4uYSYme3RyYWNlOigwLG8uSnIpKHsuLi5hfSl9fX19LDYwNTkzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7YjpmdW5jdGlvbigpe3JldHVybiByfX0pO2NsYXNzIHIgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQ9XCJ3YXJuXCIpe3N1cGVyKGUpLHRoaXMubWVzc2FnZT1lLHRoaXMubmFtZT1uZXcudGFyZ2V0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKSx0aGlzLmxvZ0xldmVsPXR9fX0sOTgwMDg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KSxuLmQodCx7QkFHR0FHRV9IRUFERVJfTkFNRTpmdW5jdGlvbigpe3JldHVybiBqfSxDT05TT0xFX0xFVkVMUzpmdW5jdGlvbigpe3JldHVybiB1LlJVfSxERUZBVUxUX1JFVFJZX0FGVEVSOmZ1bmN0aW9uKCl7cmV0dXJuIEQuQjF9LEdMT0JBTF9PQko6ZnVuY3Rpb24oKXtyZXR1cm4gYS5uMn0sTUFYX0JBR0dBR0VfU1RSSU5HX0xFTkdUSDpmdW5jdGlvbigpe3JldHVybiBGfSxTRU5UUllfQkFHR0FHRV9LRVlfUFJFRklYOmZ1bmN0aW9uKCl7cmV0dXJuIHh9LFNFTlRSWV9CQUdHQUdFX0tFWV9QUkVGSVhfUkVHRVg6ZnVuY3Rpb24oKXtyZXR1cm4gVX0sU0VOVFJZX1hIUl9EQVRBX0tFWTpmdW5jdGlvbigpe3JldHVybiBzLnhVfSxTZW50cnlFcnJvcjpmdW5jdGlvbigpe3JldHVybiBvLmJ9LFN5bmNQcm9taXNlOmZ1bmN0aW9uKCl7cmV0dXJuIFAuY1d9LFRSQUNFUEFSRU5UX1JFR0VYUDpmdW5jdGlvbigpe3JldHVybiB3Lkt9LF9icm93c2VyUGVyZm9ybWFuY2VUaW1lT3JpZ2luTW9kZTpmdW5jdGlvbigpe3JldHVybiBSLm1MfSxhZGRDb250ZXh0VG9GcmFtZTpmdW5jdGlvbigpe3JldHVybiBkLmdvfSxhZGRFeGNlcHRpb25NZWNoYW5pc206ZnVuY3Rpb24oKXtyZXR1cm4gZC5FR30sYWRkRXhjZXB0aW9uVHlwZVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGQuRGJ9LGFkZEluc3RydW1lbnRhdGlvbkhhbmRsZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcy5vcX0sYWRkSXRlbVRvRW52ZWxvcGU6ZnVuY3Rpb24oKXtyZXR1cm4gQi5CT30sYWRkTm9uRW51bWVyYWJsZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIGgueHB9LGFkZE9yVXBkYXRlSW50ZWdyYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gen0sYWRkUmVxdWVzdERhdGFUb0V2ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIEl9LGFkZFJlcXVlc3REYXRhVG9UcmFuc2FjdGlvbjpmdW5jdGlvbigpe3JldHVybiBTfSxhcnJheWlmeTpmdW5jdGlvbigpe3JldHVybiBkLmxFfSxiYWdnYWdlSGVhZGVyVG9EeW5hbWljU2FtcGxpbmdDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIEh9LGJhc2VuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGcuRVp9LGJyb3dzZXJQZXJmb3JtYW5jZVRpbWVPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gUi5aMX0sY2hlY2tPclNldEFscmVhZHlDYXVnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC5ZT30sY29uc29sZVNhbmRib3g6ZnVuY3Rpb24oKXtyZXR1cm4gdS5DZn0sY29udmVydFRvUGxhaW5PYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gaC5TaH0sY3JlYXRlQXR0YWNobWVudEVudmVsb3BlSXRlbTpmdW5jdGlvbigpe3JldHVybiBCLnpRfSxjcmVhdGVDbGllbnRSZXBvcnRFbnZlbG9wZTpmdW5jdGlvbigpe3JldHVybiBNLnl9LGNyZWF0ZUVudmVsb3BlOmZ1bmN0aW9uKCl7cmV0dXJuIEIuSmR9LGNyZWF0ZUV2ZW50RW52ZWxvcGVIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIEIuQ2R9LGNyZWF0ZVN0YWNrUGFyc2VyOmZ1bmN0aW9uKCl7cmV0dXJuIEMucEV9LGRhdGVUaW1lc3RhbXBJblNlY29uZHM6ZnVuY3Rpb24oKXtyZXR1cm4gUi55V30sZGlybmFtZTpmdW5jdGlvbigpe3JldHVybiBnLlhYfSxkaXNhYmxlZFVudGlsOmZ1bmN0aW9uKCl7cmV0dXJuIEQubnN9LGRyb3BVbmRlZmluZWRLZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGguSnJ9LGRzbkZyb21TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaS5VNH0sZHNuVG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaS5SQX0sZHluYW1pY1JlcXVpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gcC5sJH0sZHluYW1pY1NhbXBsaW5nQ29udGV4dFRvU2VudHJ5QmFnZ2FnZUhlYWRlcjpmdW5jdGlvbigpe3JldHVybiBHfSxlbnZlbG9wZUNvbnRhaW5zSXRlbVR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gQi5SfSxlbnZlbG9wZUl0ZW1UeXBlVG9EYXRhQ2F0ZWdvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gQi5tTH0sZXNjYXBlU3RyaW5nRm9yUmVnZXg6ZnVuY3Rpb24oKXtyZXR1cm4gWX0sZXh0cmFjdEV4Y2VwdGlvbktleXNGb3JNZXNzYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIGguemZ9LGV4dHJhY3RQYXRoRm9yVHJhbnNhY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4geX0sZXh0cmFjdFJlcXVlc3REYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIFR9LGV4dHJhY3RUcmFjZXBhcmVudERhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdy5xfSxmaWxsOmZ1bmN0aW9uKCl7cmV0dXJuIGguaGx9LGZvckVhY2hFbnZlbG9wZUl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gQi5ndn0sZ2V0RG9tRWxlbWVudDpmdW5jdGlvbigpe3JldHVybiByLnFUfSxnZXRFdmVudERlc2NyaXB0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGQuakh9LGdldEZ1bmN0aW9uTmFtZTpmdW5jdGlvbigpe3JldHVybiBDLiRQfSxnZXRHbG9iYWxPYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gYS5SZn0sZ2V0R2xvYmFsU2luZ2xldG9uOmZ1bmN0aW9uKCl7cmV0dXJuIGEuWU99LGdldExvY2F0aW9uSHJlZjpmdW5jdGlvbigpe3JldHVybiByLmw0fSxnZXROdW1iZXJPZlVybFNlZ21lbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIHYuJEF9LGdldE9yaWdpbmFsRnVuY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gaC5IS30sZ2V0U0RLU291cmNlOmZ1bmN0aW9uKCl7cmV0dXJuIEwuU30sZ2V0U2FuaXRpemVkVXJsU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHYudEZ9LGdldFNka01ldGFkYXRhRm9yRW52ZWxvcGVIZWFkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gQi5IWX0saHRtbFRyZWVBc1N0cmluZzpmdW5jdGlvbigpe3JldHVybiByLlJ0fSxpc0Fic29sdXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGcuWVB9LGlzQnJvd3NlckJ1bmRsZTpmdW5jdGlvbigpe3JldHVybiBMLm59LGlzRE9NRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gYy5UWH0saXNET01FeGNlcHRpb246ZnVuY3Rpb24oKXtyZXR1cm4gYy5mbX0saXNFbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGMua0t9LGlzRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gYy5WWn0saXNFcnJvckV2ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGMuVld9LGlzRXZlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5jT30saXNJbnN0YW5jZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIGMuVjl9LGlzTWF0Y2hpbmdQYXR0ZXJuOmZ1bmN0aW9uKCl7cmV0dXJuIE4uekN9LGlzTmFOOmZ1bmN0aW9uKCl7cmV0dXJuIGMuaTJ9LGlzTmF0aXZlRmV0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gay5EdX0saXNOb2RlRW52OmZ1bmN0aW9uKCl7cmV0dXJuIHAuS1Z9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gYy5QT30saXNQcmltaXRpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gYy5wdH0saXNSYXRlTGltaXRlZDpmdW5jdGlvbigpe3JldHVybiBELlF9LGlzUmVnRXhwOmZ1bmN0aW9uKCl7cmV0dXJuIGMuS2p9LGlzU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGMuSER9LGlzU3ludGhldGljRXZlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5DeX0saXNUaGVuYWJsZTpmdW5jdGlvbigpe3JldHVybiBjLko4fSxqb2luOmZ1bmN0aW9uKCl7cmV0dXJuIGcudl99LGxvYWRNb2R1bGU6ZnVuY3Rpb24oKXtyZXR1cm4gcC4keX0sbG9nZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHUua2d9LG1ha2VEc246ZnVuY3Rpb24oKXtyZXR1cm4gaS52S30sbWFrZVByb21pc2VCdWZmZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbS54fSxtYXJrRnVuY3Rpb25XcmFwcGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGguJFF9LG1lbW9CdWlsZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGwuaX0sbm9kZVN0YWNrTGluZVBhcnNlcjpmdW5jdGlvbigpe3JldHVybiBDLkVwfSxub3JtYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5Gdn0sbm9ybWFsaXplUGF0aDpmdW5jdGlvbigpe3JldHVybiBnLkFIfSxub3JtYWxpemVUb1NpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5ReX0sb2JqZWN0aWZ5OmZ1bmN0aW9uKCl7cmV0dXJuIGgubXp9LHBhcnNlRW52ZWxvcGU6ZnVuY3Rpb24oKXtyZXR1cm4gQi5mNH0scGFyc2VGZXRjaEFyZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gcy5WaH0scGFyc2VSZXRyeUFmdGVySGVhZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIEQuSll9LHBhcnNlU2VtdmVyOmZ1bmN0aW9uKCl7cmV0dXJuIGQuSjR9LHBhcnNlVXJsOmZ1bmN0aW9uKCl7cmV0dXJuIHYuZW59LHJlamVjdGVkU3luY1Byb21pc2U6ZnVuY3Rpb24oKXtyZXR1cm4gUC4kMn0scmVsYXRpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5HZn0scmVzb2x2ZTpmdW5jdGlvbigpe3JldHVybiBnLkRCfSxyZXNvbHZlZFN5bmNQcm9taXNlOmZ1bmN0aW9uKCl7cmV0dXJuIFAuV0R9LHNhZmVKb2luOmZ1bmN0aW9uKCl7cmV0dXJuIE4ubkt9LHNlcmlhbGl6ZUVudmVsb3BlOmZ1bmN0aW9uKCl7cmV0dXJuIEIuViR9LHNldmVyaXR5RnJvbVN0cmluZzpmdW5jdGlvbigpe3JldHVybiBBLkVufSxzZXZlcml0eUxldmVsRnJvbVN0cmluZzpmdW5jdGlvbigpe3JldHVybiBBLlZUfSxzbmlwTGluZTpmdW5jdGlvbigpe3JldHVybiBOLkpNfSxzdGFja1BhcnNlckZyb21TdGFja1BhcnNlck9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gQy5TcX0sc3RyaW5nTWF0Y2hlc1NvbWVQYXR0ZXJuOmZ1bmN0aW9uKCl7cmV0dXJuIE4uVTB9LHN0cmlwU2VudHJ5RnJhbWVzQW5kUmV2ZXJzZTpmdW5jdGlvbigpe3JldHVybiBDLlVWfSxzdHJpcFVybFF1ZXJ5QW5kRnJhZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5ydH0sc3VwcG9ydHNET01FcnJvcjpmdW5jdGlvbigpe3JldHVybiBrLnpPfSxzdXBwb3J0c0RPTUV4Y2VwdGlvbjpmdW5jdGlvbigpe3JldHVybiBrLmZMfSxzdXBwb3J0c0Vycm9yRXZlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gay5TJH0sc3VwcG9ydHNGZXRjaDpmdW5jdGlvbigpe3JldHVybiBrLkFrfSxzdXBwb3J0c0hpc3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gcS5CfSxzdXBwb3J0c05hdGl2ZUZldGNoOmZ1bmN0aW9uKCl7cmV0dXJuIGsudCR9LHN1cHBvcnRzUmVmZXJyZXJQb2xpY3k6ZnVuY3Rpb24oKXtyZXR1cm4gay5odn0sc3VwcG9ydHNSZXBvcnRpbmdPYnNlcnZlcjpmdW5jdGlvbigpe3JldHVybiBrLnpifSx0aW1lc3RhbXBJblNlY29uZHM6ZnVuY3Rpb24oKXtyZXR1cm4gUi5waH0sdGltZXN0YW1wV2l0aE1zOmZ1bmN0aW9uKCl7cmV0dXJuIFIuX0l9LHRydW5jYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIE4uJEd9LHVwZGF0ZVJhdGVMaW1pdHM6ZnVuY3Rpb24oKXtyZXR1cm4gRC5XR30sdXJsRW5jb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIGguX2p9LHVzaW5nUGVyZm9ybWFuY2VBUEk6ZnVuY3Rpb24oKXtyZXR1cm4gUi5zVn0sdXVpZDQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC5ETX0sdmFsaWRTZXZlcml0eUxldmVsczpmdW5jdGlvbigpe3JldHVybiBBLlR4fSx3YWxrOmZ1bmN0aW9uKCl7cmV0dXJuIGYuX3B9fSk7dmFyIHI9bigzMDM2MyksaT1uKDc0ODE5KSxvPW4oNjA1OTMpLGE9big5MTI0OCkscz1uKDM0MjMzKSxjPW4oMjI3OTkpLHU9bigzMjk0OCksbD1uKDcyOTMxKSxkPW4oMTcxNCkscD1uKDY0ODUpLGY9big1MjcwMSksaD1uKDcyMTQ4KSxnPW4oOTMyMDkpLG09big3OTc0MSksdj1uKDY0MTIpO2NvbnN0IF89e2lwOiExLHJlcXVlc3Q6ITAsdHJhbnNhY3Rpb246ITAsdXNlcjohMH0sRT1bXCJjb29raWVzXCIsXCJkYXRhXCIsXCJoZWFkZXJzXCIsXCJtZXRob2RcIixcInF1ZXJ5X3N0cmluZ1wiLFwidXJsXCJdLGI9W1wiaWRcIixcInVzZXJuYW1lXCIsXCJlbWFpbFwiXTtmdW5jdGlvbiBTKGUsdCxuKXtlJiYoZS5tZXRhZGF0YS5zb3VyY2UmJlwidXJsXCIhPT1lLm1ldGFkYXRhLnNvdXJjZXx8ZS5zZXROYW1lKC4uLnkodCx7cGF0aDohMCxtZXRob2Q6ITB9KSksZS5zZXREYXRhKFwidXJsXCIsdC5vcmlnaW5hbFVybHx8dC51cmwpLHQuYmFzZVVybCYmZS5zZXREYXRhKFwiYmFzZVVybFwiLHQuYmFzZVVybCksZS5zZXREYXRhKFwicXVlcnlcIixPKHQsbikpKX1mdW5jdGlvbiB5KGUsdD17fSl7Y29uc3Qgbj1lLm1ldGhvZCYmZS5tZXRob2QudG9VcHBlckNhc2UoKTtsZXQgcj1cIlwiLGk9XCJ1cmxcIjt0LmN1c3RvbVJvdXRlfHxlLnJvdXRlPyhyPXQuY3VzdG9tUm91dGV8fGAke2UuYmFzZVVybHx8XCJcIn0ke2Uucm91dGUmJmUucm91dGUucGF0aH1gLGk9XCJyb3V0ZVwiKTooZS5vcmlnaW5hbFVybHx8ZS51cmwpJiYocj0oMCx2LnJ0KShlLm9yaWdpbmFsVXJsfHxlLnVybHx8XCJcIikpO2xldCBvPVwiXCI7cmV0dXJuIHQubWV0aG9kJiZuJiYobys9biksdC5tZXRob2QmJnQucGF0aCYmKG8rPVwiIFwiKSx0LnBhdGgmJnImJihvKz1yKSxbbyxpXX1mdW5jdGlvbiBUKGUsdCl7Y29uc3R7aW5jbHVkZTpuPUUsZGVwczpyfT10fHx7fSxpPXt9LG89ZS5oZWFkZXJzfHx7fSxhPWUubWV0aG9kLHM9ZS5ob3N0bmFtZXx8ZS5ob3N0fHxvLmhvc3R8fFwiPG5vIGhvc3Q+XCIsdT1gJHtcImh0dHBzXCI9PT1lLnByb3RvY29sfHxlLnNvY2tldCYmZS5zb2NrZXQuZW5jcnlwdGVkP1wiaHR0cHNcIjpcImh0dHBcIn06Ly8ke3N9JHtlLm9yaWdpbmFsVXJsfHxlLnVybHx8XCJcIn1gO3JldHVybiBuLmZvckVhY2goKHQ9Pntzd2l0Y2godCl7Y2FzZVwiaGVhZGVyc1wiOmkuaGVhZGVycz1vO2JyZWFrO2Nhc2VcIm1ldGhvZFwiOmkubWV0aG9kPWE7YnJlYWs7Y2FzZVwidXJsXCI6aS51cmw9dTticmVhaztjYXNlXCJjb29raWVzXCI6aS5jb29raWVzPWUuY29va2llc3x8by5jb29raWUmJnImJnIuY29va2llJiZyLmNvb2tpZS5wYXJzZShvLmNvb2tpZSl8fHt9O2JyZWFrO2Nhc2VcInF1ZXJ5X3N0cmluZ1wiOmkucXVlcnlfc3RyaW5nPU8oZSxyKTticmVhaztjYXNlXCJkYXRhXCI6aWYoXCJHRVRcIj09PWF8fFwiSEVBRFwiPT09YSlicmVhazt2b2lkIDAhPT1lLmJvZHkmJihpLmRhdGE9KDAsYy5IRCkoZS5ib2R5KT9lLmJvZHk6SlNPTi5zdHJpbmdpZnkoKDAsZi5GdikoZS5ib2R5KSkpO2JyZWFrO2RlZmF1bHQ6KHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJihpW3RdPWVbdF0pfX0pKSxpfWZ1bmN0aW9uIEkoZSx0LG4pe2NvbnN0IHI9ey4uLl8sLi4ubiYmbi5pbmNsdWRlfTtpZihyLnJlcXVlc3Qpe2NvbnN0IGk9QXJyYXkuaXNBcnJheShyLnJlcXVlc3QpP1QodCx7aW5jbHVkZTpyLnJlcXVlc3QsZGVwczpuJiZuLmRlcHN9KTpUKHQse2RlcHM6biYmbi5kZXBzfSk7ZS5yZXF1ZXN0PXsuLi5lLnJlcXVlc3QsLi4uaX19aWYoci51c2VyKXtjb25zdCBuPXQudXNlciYmKDAsYy5QTykodC51c2VyKT9mdW5jdGlvbihlLHQpe2NvbnN0IG49e307cmV0dXJuKEFycmF5LmlzQXJyYXkodCk/dDpiKS5mb3JFYWNoKCh0PT57ZSYmdCBpbiBlJiYoblt0XT1lW3RdKX0pKSxufSh0LnVzZXIsci51c2VyKTp7fTtPYmplY3Qua2V5cyhuKS5sZW5ndGgmJihlLnVzZXI9ey4uLmUudXNlciwuLi5ufSl9aWYoci5pcCl7Y29uc3Qgbj10LmlwfHx0LnNvY2tldCYmdC5zb2NrZXQucmVtb3RlQWRkcmVzcztuJiYoZS51c2VyPXsuLi5lLnVzZXIsaXBfYWRkcmVzczpufSl9cmV0dXJuIHIudHJhbnNhY3Rpb24mJiFlLnRyYW5zYWN0aW9uJiYoZS50cmFuc2FjdGlvbj1mdW5jdGlvbihlLHQpe3N3aXRjaCh0KXtjYXNlXCJwYXRoXCI6cmV0dXJuIHkoZSx7cGF0aDohMH0pWzBdO2Nhc2VcImhhbmRsZXJcIjpyZXR1cm4gZS5yb3V0ZSYmZS5yb3V0ZS5zdGFjayYmZS5yb3V0ZS5zdGFja1swXSYmZS5yb3V0ZS5zdGFja1swXS5uYW1lfHxcIjxhbm9ueW1vdXM+XCI7ZGVmYXVsdDpyZXR1cm4geShlLHtwYXRoOiEwLG1ldGhvZDohMH0pWzBdfX0odCxyLnRyYW5zYWN0aW9uKSksZX1mdW5jdGlvbiBPKGUsdCl7bGV0IG49ZS5vcmlnaW5hbFVybHx8ZS51cmx8fFwiXCI7aWYobilyZXR1cm4gbi5zdGFydHNXaXRoKFwiL1wiKSYmKG49YGh0dHA6Ly9kb2dzLmFyZS5ncmVhdCR7bn1gKSxlLnF1ZXJ5fHx2b2lkIDAhPT10eXBlb2YgVVJMJiZuZXcgVVJMKG4pLnNlYXJjaC5yZXBsYWNlKFwiP1wiLFwiXCIpfHx0JiZ0LnVybCYmdC51cmwucGFyc2UobikucXVlcnl8fHZvaWQgMH12YXIgQT1uKDk1NDk0KSxDPW4oOTkzMjEpLE49bigzNDcwNiksaz1uKDIwMDk3KSxQPW4oOTE2MTkpLFI9bigxODYzNSksdz1uKDE2MTM4KSxMPW4oNDk0MjEpLEI9bigyMzg0NSksTT1uKDg5Mjk2KSxEPW4oNTk0MTcpO2NvbnN0IGo9XCJiYWdnYWdlXCIseD1cInNlbnRyeS1cIixVPS9ec2VudHJ5LS8sRj04MTkyO2Z1bmN0aW9uIEgoZSl7aWYoISgwLGMuSEQpKGUpJiYhQXJyYXkuaXNBcnJheShlKSlyZXR1cm47bGV0IHQ9e307aWYoQXJyYXkuaXNBcnJheShlKSl0PWUucmVkdWNlKCgoZSx0KT0+KHsuLi5lLC4uLlcodCl9KSkse30pO2Vsc2V7aWYoIWUpcmV0dXJuO3Q9VyhlKX1jb25zdCBuPU9iamVjdC5lbnRyaWVzKHQpLnJlZHVjZSgoKGUsW3Qsbl0pPT57aWYodC5tYXRjaChVKSl7ZVt0LnNsaWNlKHgubGVuZ3RoKV09bn1yZXR1cm4gZX0pLHt9KTtyZXR1cm4gT2JqZWN0LmtleXMobikubGVuZ3RoPjA/bjp2b2lkIDB9ZnVuY3Rpb24gRyhlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm47cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgoKGUsW3Qsbl0scik9Pntjb25zdCBpPWAke2VuY29kZVVSSUNvbXBvbmVudCh0KX09JHtlbmNvZGVVUklDb21wb25lbnQobil9YCxvPTA9PT1yP2k6YCR7ZX0sJHtpfWA7cmV0dXJuIG8ubGVuZ3RoPkY/KChcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZ1LmtnLndhcm4oYE5vdCBhZGRpbmcga2V5OiAke3R9IHdpdGggdmFsOiAke259IHRvIGJhZ2dhZ2UgaGVhZGVyIGR1ZSB0byBleGNlZWRpbmcgYmFnZ2FnZSBzaXplIGxpbWl0cy5gKSxlKTpvfSksXCJcIil9KE9iamVjdC5lbnRyaWVzKGUpLnJlZHVjZSgoKGUsW3Qsbl0pPT4obiYmKGVbYCR7eH0ke3R9YF09biksZSkpLHt9KSl9ZnVuY3Rpb24gVyhlKXtyZXR1cm4gZS5zcGxpdChcIixcIikubWFwKChlPT5lLnNwbGl0KFwiPVwiKS5tYXAoKGU9PmRlY29kZVVSSUNvbXBvbmVudChlLnRyaW0oKSkpKSkpLnJlZHVjZSgoKGUsW3Qsbl0pPT4oZVt0XT1uLGUpKSx7fSl9ZnVuY3Rpb24gVihlLHQsbil7Y29uc3Qgcj10Lm1hdGNoKC8oW2Etel9dKylcXC4oLiopL2kpO2lmKG51bGw9PT1yKWVbdF09bjtlbHNle1YoZVtyWzFdXSxyWzJdLG4pfX1mdW5jdGlvbiB6KGUsdCxuPXt9KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9LKGUsdCxuKTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHI9Pntjb25zdCBpPXQocik7aWYoZS5hbGxvd0V4Y2x1c2lvbkJ5VXNlcil7aWYoIWkuZmluZCgodD0+dC5uYW1lPT09ZS5uYW1lKSkpcmV0dXJuIGl9cmV0dXJuIEsoZSxpLG4pfX0oZSx0LG4pfWZ1bmN0aW9uIEsoZSx0LG4pe2NvbnN0IHI9dC5maW5kKCh0PT50Lm5hbWU9PT1lLm5hbWUpKTtpZihyKXtmb3IoY29uc3RbZSx0XW9mIE9iamVjdC5lbnRyaWVzKG4pKVYocixlLHQpO3JldHVybiB0fXJldHVyblsuLi50LGVdfWZ1bmN0aW9uIFkoZSl7cmV0dXJuIGUucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy5dL2csXCJcXFxcJCZcIikucmVwbGFjZSgvLS9nLFwiXFxcXHgyZFwiKX12YXIgcT1uKDUxMzgpfSwzNDIzMzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1ZoOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LG9xOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LHhVOmZ1bmN0aW9uKCl7cmV0dXJuIGR9fSk7dmFyIHI9bigyMjc5OSksaT1uKDMyOTQ4KSxvPW4oNzIxNDgpLGE9big5OTMyMSkscz1uKDIwMDk3KSxjPW4oOTEyNDgpLHU9big1MTM4KTtjb25zdCBsPSgwLGMuUmYpKCksZD1cIl9fc2VudHJ5X3hocl92Ml9fXCIscD17fSxmPXt9O2Z1bmN0aW9uIGgoZSl7aWYoIWZbZV0pc3dpdGNoKGZbZV09ITAsZSl7Y2FzZVwiY29uc29sZVwiOiFmdW5jdGlvbigpe2lmKCEoXCJjb25zb2xlXCJpbiBsKSlyZXR1cm47aS5SVS5mb3JFYWNoKChmdW5jdGlvbihlKXtlIGluIGwuY29uc29sZSYmKDAsby5obCkobC5jb25zb2xlLGUsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiguLi5uKXttKFwiY29uc29sZVwiLHthcmdzOm4sbGV2ZWw6ZX0pLHQmJnQuYXBwbHkobC5jb25zb2xlLG4pfX0pKX0pKX0oKTticmVhaztjYXNlXCJkb21cIjohZnVuY3Rpb24oKXtpZighKFwiZG9jdW1lbnRcImluIGwpKXJldHVybjtjb25zdCBlPW0uYmluZChudWxsLFwiZG9tXCIpLHQ9VChlLCEwKTtsLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHQsITEpLGwuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXByZXNzXCIsdCwhMSksW1wiRXZlbnRUYXJnZXRcIixcIk5vZGVcIl0uZm9yRWFjaCgodD0+e2NvbnN0IG49bFt0XSYmbFt0XS5wcm90b3R5cGU7biYmbi5oYXNPd25Qcm9wZXJ0eSYmbi5oYXNPd25Qcm9wZXJ0eShcImFkZEV2ZW50TGlzdGVuZXJcIikmJigoMCxvLmhsKShuLFwiYWRkRXZlbnRMaXN0ZW5lclwiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obixyLGkpe2lmKFwiY2xpY2tcIj09PW58fFwia2V5cHJlc3NcIj09bil0cnl7Y29uc3Qgcj10aGlzLG89ci5fX3NlbnRyeV9pbnN0cnVtZW50YXRpb25faGFuZGxlcnNfXz1yLl9fc2VudHJ5X2luc3RydW1lbnRhdGlvbl9oYW5kbGVyc19ffHx7fSxhPW9bbl09b1tuXXx8e3JlZkNvdW50OjB9O2lmKCFhLmhhbmRsZXIpe2NvbnN0IHI9VChlKTthLmhhbmRsZXI9cix0LmNhbGwodGhpcyxuLHIsaSl9YS5yZWZDb3VudCsrfWNhdGNoKG8pe31yZXR1cm4gdC5jYWxsKHRoaXMsbixyLGkpfX0pKSwoMCxvLmhsKShuLFwicmVtb3ZlRXZlbnRMaXN0ZW5lclwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2lmKFwiY2xpY2tcIj09PXR8fFwia2V5cHJlc3NcIj09dCl0cnl7Y29uc3Qgbj10aGlzLGk9bi5fX3NlbnRyeV9pbnN0cnVtZW50YXRpb25faGFuZGxlcnNfX3x8e30sbz1pW3RdO28mJihvLnJlZkNvdW50LS0sby5yZWZDb3VudDw9MCYmKGUuY2FsbCh0aGlzLHQsby5oYW5kbGVyLHIpLG8uaGFuZGxlcj12b2lkIDAsZGVsZXRlIGlbdF0pLDA9PT1PYmplY3Qua2V5cyhpKS5sZW5ndGgmJmRlbGV0ZSBuLl9fc2VudHJ5X2luc3RydW1lbnRhdGlvbl9oYW5kbGVyc19fKX1jYXRjaChpKXt9cmV0dXJuIGUuY2FsbCh0aGlzLHQsbixyKX19KSkpfSkpfSgpO2JyZWFrO2Nhc2VcInhoclwiOiFmdW5jdGlvbigpe2lmKCEoXCJYTUxIdHRwUmVxdWVzdFwiaW4gbCkpcmV0dXJuO2NvbnN0IGU9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlOygwLG8uaGwpKGUsXCJvcGVuXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCBuPXRbMV0saT10aGlzW2RdPXttZXRob2Q6KDAsci5IRCkodFswXSk/dFswXS50b1VwcGVyQ2FzZSgpOnRbMF0sdXJsOnRbMV0scmVxdWVzdF9oZWFkZXJzOnt9fTsoMCxyLkhEKShuKSYmXCJQT1NUXCI9PT1pLm1ldGhvZCYmbi5tYXRjaCgvc2VudHJ5X2tleS8pJiYodGhpcy5fX3NlbnRyeV9vd25fcmVxdWVzdF9fPSEwKTtjb25zdCBhPSgpPT57Y29uc3QgZT10aGlzW2RdO2lmKGUmJjQ9PT10aGlzLnJlYWR5U3RhdGUpe3RyeXtlLnN0YXR1c19jb2RlPXRoaXMuc3RhdHVzfWNhdGNoKG4pe31tKFwieGhyXCIse2FyZ3M6dCxlbmRUaW1lc3RhbXA6RGF0ZS5ub3coKSxzdGFydFRpbWVzdGFtcDpEYXRlLm5vdygpLHhocjp0aGlzfSl9fTtyZXR1cm5cIm9ucmVhZHlzdGF0ZWNoYW5nZVwiaW4gdGhpcyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHRoaXMub25yZWFkeXN0YXRlY2hhbmdlPygwLG8uaGwpKHRoaXMsXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe3JldHVybiBhKCksZS5hcHBseSh0aGlzLHQpfX0pKTp0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJyZWFkeXN0YXRlY2hhbmdlXCIsYSksKDAsby5obCkodGhpcyxcInNldFJlcXVlc3RIZWFkZXJcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0W24scl09dCxpPXRoaXNbZF07cmV0dXJuIGkmJihpLnJlcXVlc3RfaGVhZGVyc1tuLnRvTG93ZXJDYXNlKCldPXIpLGUuYXBwbHkodGhpcyx0KX19KSksZS5hcHBseSh0aGlzLHQpfX0pKSwoMCxvLmhsKShlLFwic2VuZFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3Qgbj10aGlzW2RdO3JldHVybiBuJiZ2b2lkIDAhPT10WzBdJiYobi5ib2R5PXRbMF0pLG0oXCJ4aHJcIix7YXJnczp0LHN0YXJ0VGltZXN0YW1wOkRhdGUubm93KCkseGhyOnRoaXN9KSxlLmFwcGx5KHRoaXMsdCl9fSkpfSgpO2JyZWFrO2Nhc2VcImZldGNoXCI6IWZ1bmN0aW9uKCl7aWYoISgwLHMudCQpKCkpcmV0dXJuOygwLG8uaGwpKGwsXCJmZXRjaFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3R7bWV0aG9kOm4sdXJsOnJ9PUUodCksaT17YXJnczp0LGZldGNoRGF0YTp7bWV0aG9kOm4sdXJsOnJ9LHN0YXJ0VGltZXN0YW1wOkRhdGUubm93KCl9O3JldHVybiBtKFwiZmV0Y2hcIix7Li4uaX0pLGUuYXBwbHkobCx0KS50aGVuKChlPT4obShcImZldGNoXCIsey4uLmksZW5kVGltZXN0YW1wOkRhdGUubm93KCkscmVzcG9uc2U6ZX0pLGUpKSwoZT0+e3Rocm93IG0oXCJmZXRjaFwiLHsuLi5pLGVuZFRpbWVzdGFtcDpEYXRlLm5vdygpLGVycm9yOmV9KSxlfSkpfX0pKX0oKTticmVhaztjYXNlXCJoaXN0b3J5XCI6IWZ1bmN0aW9uKCl7aWYoISgwLHUuQikoKSlyZXR1cm47Y29uc3QgZT1sLm9ucG9wc3RhdGU7ZnVuY3Rpb24gdChlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3Qgbj10Lmxlbmd0aD4yP3RbMl06dm9pZCAwO2lmKG4pe2NvbnN0IGU9Yix0PVN0cmluZyhuKTtiPXQsbShcImhpc3RvcnlcIix7ZnJvbTplLHRvOnR9KX1yZXR1cm4gZS5hcHBseSh0aGlzLHQpfX1sLm9ucG9wc3RhdGU9ZnVuY3Rpb24oLi4udCl7Y29uc3Qgbj1sLmxvY2F0aW9uLmhyZWYscj1iO2lmKGI9bixtKFwiaGlzdG9yeVwiLHtmcm9tOnIsdG86bn0pLGUpdHJ5e3JldHVybiBlLmFwcGx5KHRoaXMsdCl9Y2F0Y2goaSl7fX0sKDAsby5obCkobC5oaXN0b3J5LFwicHVzaFN0YXRlXCIsdCksKDAsby5obCkobC5oaXN0b3J5LFwicmVwbGFjZVN0YXRlXCIsdCl9KCk7YnJlYWs7Y2FzZVwiZXJyb3JcIjpJPWwub25lcnJvcixsLm9uZXJyb3I9ZnVuY3Rpb24oZSx0LG4scixpKXtyZXR1cm4gbShcImVycm9yXCIse2NvbHVtbjpyLGVycm9yOmksbGluZTpuLG1zZzplLHVybDp0fSksISghSXx8SS5fX1NFTlRSWV9MT0FERVJfXykmJkkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxsLm9uZXJyb3IuX19TRU5UUllfSU5TVFJVTUVOVEVEX189ITA7YnJlYWs7Y2FzZVwidW5oYW5kbGVkcmVqZWN0aW9uXCI6Tz1sLm9udW5oYW5kbGVkcmVqZWN0aW9uLGwub251bmhhbmRsZWRyZWplY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuIG0oXCJ1bmhhbmRsZWRyZWplY3Rpb25cIixlKSwhKE8mJiFPLl9fU0VOVFJZX0xPQURFUl9fKXx8Ty5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGwub251bmhhbmRsZWRyZWplY3Rpb24uX19TRU5UUllfSU5TVFJVTUVOVEVEX189ITA7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdm9pZCgoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fKSYmaS5rZy53YXJuKFwidW5rbm93biBpbnN0cnVtZW50YXRpb24gdHlwZTpcIixlKSl9fWZ1bmN0aW9uIGcoZSx0KXtwW2VdPXBbZV18fFtdLHBbZV0ucHVzaCh0KSxoKGUpfWZ1bmN0aW9uIG0oZSx0KXtpZihlJiZwW2VdKWZvcihjb25zdCByIG9mIHBbZV18fFtdKXRyeXtyKHQpfWNhdGNoKG4peyhcInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18pJiZpLmtnLmVycm9yKGBFcnJvciB3aGlsZSB0cmlnZ2VyaW5nIGluc3RydW1lbnRhdGlvbiBoYW5kbGVyLlxcblR5cGU6ICR7ZX1cXG5OYW1lOiAkeygwLGEuJFApKHIpfVxcbkVycm9yOmAsbil9fWZ1bmN0aW9uIHYoZSx0KXtyZXR1cm4hIWUmJlwib2JqZWN0XCI9PT10eXBlb2YgZSYmISFlW3RdfWZ1bmN0aW9uIF8oZSl7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBlP2U6ZT92KGUsXCJ1cmxcIik/ZS51cmw6ZS50b1N0cmluZz9lLnRvU3RyaW5nKCk6XCJcIjpcIlwifWZ1bmN0aW9uIEUoZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybnttZXRob2Q6XCJHRVRcIix1cmw6XCJcIn07aWYoMj09PWUubGVuZ3RoKXtjb25zdFt0LG5dPWU7cmV0dXJue3VybDpfKHQpLG1ldGhvZDp2KG4sXCJtZXRob2RcIik/U3RyaW5nKG4ubWV0aG9kKS50b1VwcGVyQ2FzZSgpOlwiR0VUXCJ9fWNvbnN0IHQ9ZVswXTtyZXR1cm57dXJsOl8odCksbWV0aG9kOnYodCxcIm1ldGhvZFwiKT9TdHJpbmcodC5tZXRob2QpLnRvVXBwZXJDYXNlKCk6XCJHRVRcIn19bGV0IGI7bGV0IFMseTtmdW5jdGlvbiBUKGUsdD0hMSl7cmV0dXJuIG49PntpZighbnx8eT09PW4pcmV0dXJuO2lmKGZ1bmN0aW9uKGUpe2lmKFwia2V5cHJlc3NcIiE9PWUudHlwZSlyZXR1cm4hMTt0cnl7Y29uc3QgdD1lLnRhcmdldDtpZighdHx8IXQudGFnTmFtZSlyZXR1cm4hMDtpZihcIklOUFVUXCI9PT10LnRhZ05hbWV8fFwiVEVYVEFSRUFcIj09PXQudGFnTmFtZXx8dC5pc0NvbnRlbnRFZGl0YWJsZSlyZXR1cm4hMX1jYXRjaCh0KXt9cmV0dXJuITB9KG4pKXJldHVybjtjb25zdCByPVwia2V5cHJlc3NcIj09PW4udHlwZT9cImlucHV0XCI6bi50eXBlOyh2b2lkIDA9PT1TfHxmdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiEwO2lmKGUudHlwZSE9PXQudHlwZSlyZXR1cm4hMDt0cnl7aWYoZS50YXJnZXQhPT10LnRhcmdldClyZXR1cm4hMH1jYXRjaChuKXt9cmV0dXJuITF9KHksbikpJiYoZSh7ZXZlbnQ6bixuYW1lOnIsZ2xvYmFsOnR9KSx5PW4pLGNsZWFyVGltZW91dChTKSxTPWwuc2V0VGltZW91dCgoKCk9PntTPXZvaWQgMH0pLDFlMyl9fWxldCBJPW51bGw7bGV0IE89bnVsbH0sMjI3OTk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtDeTpmdW5jdGlvbigpe3JldHVybiBtfSxIRDpmdW5jdGlvbigpe3JldHVybiB1fSxKODpmdW5jdGlvbigpe3JldHVybiBnfSxLajpmdW5jdGlvbigpe3JldHVybiBofSxQTzpmdW5jdGlvbigpe3JldHVybiBkfSxUWDpmdW5jdGlvbigpe3JldHVybiBzfSxWOTpmdW5jdGlvbigpe3JldHVybiBffSxWVzpmdW5jdGlvbigpe3JldHVybiBhfSxWWjpmdW5jdGlvbigpe3JldHVybiBpfSxjTzpmdW5jdGlvbigpe3JldHVybiBwfSxmbTpmdW5jdGlvbigpe3JldHVybiBjfSxpMjpmdW5jdGlvbigpe3JldHVybiB2fSxrSzpmdW5jdGlvbigpe3JldHVybiBmfSxwdDpmdW5jdGlvbigpe3JldHVybiBsfX0pO2NvbnN0IHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBpKGUpe3N3aXRjaChyLmNhbGwoZSkpe2Nhc2VcIltvYmplY3QgRXJyb3JdXCI6Y2FzZVwiW29iamVjdCBFeGNlcHRpb25dXCI6Y2FzZVwiW29iamVjdCBET01FeGNlcHRpb25dXCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4gXyhlLEVycm9yKX19ZnVuY3Rpb24gbyhlLHQpe3JldHVybiByLmNhbGwoZSk9PT1gW29iamVjdCAke3R9XWB9ZnVuY3Rpb24gYShlKXtyZXR1cm4gbyhlLFwiRXJyb3JFdmVudFwiKX1mdW5jdGlvbiBzKGUpe3JldHVybiBvKGUsXCJET01FcnJvclwiKX1mdW5jdGlvbiBjKGUpe3JldHVybiBvKGUsXCJET01FeGNlcHRpb25cIil9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbyhlLFwiU3RyaW5nXCIpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG51bGw9PT1lfHxcIm9iamVjdFwiIT09dHlwZW9mIGUmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIG8oZSxcIk9iamVjdFwiKX1mdW5jdGlvbiBwKGUpe3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgRXZlbnQmJl8oZSxFdmVudCl9ZnVuY3Rpb24gZihlKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIEVsZW1lbnQmJl8oZSxFbGVtZW50KX1mdW5jdGlvbiBoKGUpe3JldHVybiBvKGUsXCJSZWdFeHBcIil9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gQm9vbGVhbihlJiZlLnRoZW4mJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnRoZW4pfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIGQoZSkmJlwibmF0aXZlRXZlbnRcImluIGUmJlwicHJldmVudERlZmF1bHRcImluIGUmJlwic3RvcFByb3BhZ2F0aW9uXCJpbiBlfWZ1bmN0aW9uIHYoZSl7cmV0dXJuXCJudW1iZXJcIj09PXR5cGVvZiBlJiZlIT09ZX1mdW5jdGlvbiBfKGUsdCl7dHJ5e3JldHVybiBlIGluc3RhbmNlb2YgdH1jYXRjaChuKXtyZXR1cm4hMX19fSwzMjk0ODpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0NmOmZ1bmN0aW9uKCl7cmV0dXJuIG99LFJVOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGtnOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHI9big5MTI0OCk7Y29uc3QgaT1bXCJkZWJ1Z1wiLFwiaW5mb1wiLFwid2FyblwiLFwiZXJyb3JcIixcImxvZ1wiLFwiYXNzZXJ0XCIsXCJ0cmFjZVwiXTtmdW5jdGlvbiBvKGUpe2lmKCEoXCJjb25zb2xlXCJpbiByLm4yKSlyZXR1cm4gZSgpO2NvbnN0IHQ9ci5uMi5jb25zb2xlLG49e307aS5mb3JFYWNoKChlPT57Y29uc3Qgcj10W2VdJiZ0W2VdLl9fc2VudHJ5X29yaWdpbmFsX187ZSBpbiB0JiZyJiYobltlXT10W2VdLHRbZV09cil9KSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChlPT57dFtlXT1uW2VdfSkpfX1mdW5jdGlvbiBhKCl7bGV0IGU9ITE7Y29uc3QgdD17ZW5hYmxlOigpPT57ZT0hMH0sZGlzYWJsZTooKT0+e2U9ITF9fTtyZXR1cm5cInVuZGVmaW5lZFwiPT09dHlwZW9mIF9fU0VOVFJZX0RFQlVHX198fF9fU0VOVFJZX0RFQlVHX18/aS5mb3JFYWNoKChuPT57dFtuXT0oLi4udCk9PntlJiZvKCgoKT0+e3IubjIuY29uc29sZVtuXShgU2VudHJ5IExvZ2dlciBbJHtufV06YCwuLi50KX0pKX19KSk6aS5mb3JFYWNoKChlPT57dFtlXT0oKT0+e319KSksdH1sZXQgcztzPVwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXz8oMCxyLllPKShcImxvZ2dlclwiLGEpOmEoKX0sNzI5MzE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHIoKXtjb25zdCBlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrU2V0LHQ9ZT9uZXcgV2Vha1NldDpbXTtyZXR1cm5bZnVuY3Rpb24obil7aWYoZSlyZXR1cm4hIXQuaGFzKG4pfHwodC5hZGQobiksITEpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtpZih0W2VdPT09bilyZXR1cm4hMH1yZXR1cm4gdC5wdXNoKG4pLCExfSxmdW5jdGlvbihuKXtpZihlKXQuZGVsZXRlKG4pO2Vsc2UgZm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXT09PW4pe3Quc3BsaWNlKGUsMSk7YnJlYWt9fV19bi5kKHQse2k6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KX0sMTcxNDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0RNOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LERiOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LEVHOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LEo0OmZ1bmN0aW9uKCl7cmV0dXJuIHB9LFlPOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LGdvOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGpIOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGxFOmZ1bmN0aW9uKCl7cmV0dXJuIGd9fSk7dmFyIHI9big3MjE0OCksaT1uKDM0NzA2KSxvPW4oOTEyNDgpO2Z1bmN0aW9uIGEoKXtjb25zdCBlPW8ubjIsdD1lLmNyeXB0b3x8ZS5tc0NyeXB0bztpZih0JiZ0LnJhbmRvbVVVSUQpcmV0dXJuIHQucmFuZG9tVVVJRCgpLnJlcGxhY2UoLy0vZyxcIlwiKTtjb25zdCBuPXQmJnQuZ2V0UmFuZG9tVmFsdWVzPygpPT50LmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgxKSlbMF06KCk9PjE2Kk1hdGgucmFuZG9tKCk7cmV0dXJuKFsxZTddKzFlMys0ZTMrOGUzKzFlMTEpLnJlcGxhY2UoL1swMThdL2csKGU9PihlXigxNSZuKCkpPj5lLzQpLnRvU3RyaW5nKDE2KSkpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIGUuZXhjZXB0aW9uJiZlLmV4Y2VwdGlvbi52YWx1ZXM/ZS5leGNlcHRpb24udmFsdWVzWzBdOnZvaWQgMH1mdW5jdGlvbiBjKGUpe2NvbnN0e21lc3NhZ2U6dCxldmVudF9pZDpufT1lO2lmKHQpcmV0dXJuIHQ7Y29uc3Qgcj1zKGUpO3JldHVybiByP3IudHlwZSYmci52YWx1ZT9gJHtyLnR5cGV9OiAke3IudmFsdWV9YDpyLnR5cGV8fHIudmFsdWV8fG58fFwiPHVua25vd24+XCI6bnx8XCI8dW5rbm93bj5cIn1mdW5jdGlvbiB1KGUsdCxuKXtjb25zdCByPWUuZXhjZXB0aW9uPWUuZXhjZXB0aW9ufHx7fSxpPXIudmFsdWVzPXIudmFsdWVzfHxbXSxvPWlbMF09aVswXXx8e307by52YWx1ZXx8KG8udmFsdWU9dHx8XCJcIiksby50eXBlfHwoby50eXBlPW58fFwiRXJyb3JcIil9ZnVuY3Rpb24gbChlLHQpe2NvbnN0IG49cyhlKTtpZighbilyZXR1cm47Y29uc3Qgcj1uLm1lY2hhbmlzbTtpZihuLm1lY2hhbmlzbT17dHlwZTpcImdlbmVyaWNcIixoYW5kbGVkOiEwLC4uLnIsLi4udH0sdCYmXCJkYXRhXCJpbiB0KXtjb25zdCBlPXsuLi5yJiZyLmRhdGEsLi4udC5kYXRhfTtuLm1lY2hhbmlzbS5kYXRhPWV9fWNvbnN0IGQ9L14oMHxbMS05XVxcZCopXFwuKDB8WzEtOV1cXGQqKVxcLigwfFsxLTldXFxkKikoPzotKCg/OjB8WzEtOV1cXGQqfFxcZCpbYS16QS1aLV1bMC05YS16QS1aLV0qKSg/OlxcLig/OjB8WzEtOV1cXGQqfFxcZCpbYS16QS1aLV1bMC05YS16QS1aLV0qKSkqKSk/KD86XFwrKFswLTlhLXpBLVotXSsoPzpcXC5bMC05YS16QS1aLV0rKSopKT8kLztmdW5jdGlvbiBwKGUpe2NvbnN0IHQ9ZS5tYXRjaChkKXx8W10sbj1wYXJzZUludCh0WzFdLDEwKSxyPXBhcnNlSW50KHRbMl0sMTApLGk9cGFyc2VJbnQodFszXSwxMCk7cmV0dXJue2J1aWxkbWV0YWRhdGE6dFs1XSxtYWpvcjppc05hTihuKT92b2lkIDA6bixtaW5vcjppc05hTihyKT92b2lkIDA6cixwYXRjaDppc05hTihpKT92b2lkIDA6aSxwcmVyZWxlYXNlOnRbNF19fWZ1bmN0aW9uIGYoZSx0LG49NSl7aWYodm9pZCAwPT09dC5saW5lbm8pcmV0dXJuO2NvbnN0IHI9ZS5sZW5ndGgsbz1NYXRoLm1heChNYXRoLm1pbihyLHQubGluZW5vLTEpLDApO3QucHJlX2NvbnRleHQ9ZS5zbGljZShNYXRoLm1heCgwLG8tbiksbykubWFwKChlPT4oMCxpLkpNKShlLDApKSksdC5jb250ZXh0X2xpbmU9KDAsaS5KTSkoZVtNYXRoLm1pbihyLTEsbyldLHQuY29sbm98fDApLHQucG9zdF9jb250ZXh0PWUuc2xpY2UoTWF0aC5taW4obysxLHIpLG8rMStuKS5tYXAoKGU9PigwLGkuSk0pKGUsMCkpKX1mdW5jdGlvbiBoKGUpe2lmKGUmJmUuX19zZW50cnlfY2FwdHVyZWRfXylyZXR1cm4hMDt0cnl7KDAsci54cCkoZSxcIl9fc2VudHJ5X2NhcHR1cmVkX19cIiwhMCl9Y2F0Y2godCl7fXJldHVybiExfWZ1bmN0aW9uIGcoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpbZV19fSw2NDg1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7JHk6ZnVuY3Rpb24oKXtyZXR1cm4gc30sS1Y6ZnVuY3Rpb24oKXtyZXR1cm4gb30sbCQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt2YXIgcj1uKDQ5NDIxKTtlPW4uaG1kKGUpO3ZhciBpPW4oMzQxNTUpO2Z1bmN0aW9uIG8oKXtyZXR1cm4hKDAsci5uKSgpJiZcIltvYmplY3QgcHJvY2Vzc11cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChcInVuZGVmaW5lZFwiIT09dHlwZW9mIGk/aTowKX1mdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGUucmVxdWlyZSh0KX1mdW5jdGlvbiBzKHQpe2xldCBuO3RyeXtuPWEoZSx0KX1jYXRjaChyKXt9dHJ5e2NvbnN0e2N3ZDpyfT1hKGUsXCJwcm9jZXNzXCIpO249YShlLGAke3IoKX0vbm9kZV9tb2R1bGVzLyR7dH1gKX1jYXRjaChyKXt9cmV0dXJuIG59fSw1MjcwMTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0Z2OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LFF5OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LF9wOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9bigyMjc5OSksaT1uKDcyOTMxKSxvPW4oNzIxNDgpLGE9big5OTMyMSk7ZnVuY3Rpb24gcyhlLHQ9MTAwLG49MS8wKXt0cnl7cmV0dXJuIHUoXCJcIixlLHQsbil9Y2F0Y2gocil7cmV0dXJue0VSUk9SOmAqKm5vbi1zZXJpYWxpemFibGUqKiAoJHtyfSlgfX19ZnVuY3Rpb24gYyhlLHQ9MyxuPTEwMjQwMCl7Y29uc3Qgcj1zKGUsdCk7cmV0dXJuIGk9cixmdW5jdGlvbihlKXtyZXR1cm5+LWVuY29kZVVSSShlKS5zcGxpdCgvJS4ufC4vKS5sZW5ndGh9KEpTT04uc3RyaW5naWZ5KGkpKT5uP2MoZSx0LTEsbik6cjt2YXIgaX1mdW5jdGlvbiB1KGUsdCxzPTEvMCxjPTEvMCxsPSgwLGkuaSkoKSl7Y29uc3RbZCxwXT1sO2lmKG51bGw9PXR8fFtcIm51bWJlclwiLFwiYm9vbGVhblwiLFwic3RyaW5nXCJdLmluY2x1ZGVzKHR5cGVvZiB0KSYmISgwLHIuaTIpKHQpKXJldHVybiB0O2NvbnN0IGY9ZnVuY3Rpb24oZSx0KXt0cnl7aWYoXCJkb21haW5cIj09PWUmJnQmJlwib2JqZWN0XCI9PT10eXBlb2YgdCYmdC5fZXZlbnRzKXJldHVyblwiW0RvbWFpbl1cIjtpZihcImRvbWFpbkVtaXR0ZXJcIj09PWUpcmV0dXJuXCJbRG9tYWluRW1pdHRlcl1cIjtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIG4uZyYmdD09PW4uZylyZXR1cm5cIltHbG9iYWxdXCI7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3cmJnQ9PT13aW5kb3cpcmV0dXJuXCJbV2luZG93XVwiO2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQmJnQ9PT1kb2N1bWVudClyZXR1cm5cIltEb2N1bWVudF1cIjtpZigoMCxyLkN5KSh0KSlyZXR1cm5cIltTeW50aGV0aWNFdmVudF1cIjtpZihcIm51bWJlclwiPT09dHlwZW9mIHQmJnQhPT10KXJldHVyblwiW05hTl1cIjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgdClyZXR1cm5gW0Z1bmN0aW9uOiAkeygwLGEuJFApKHQpfV1gO2lmKFwic3ltYm9sXCI9PT10eXBlb2YgdClyZXR1cm5gWyR7U3RyaW5nKHQpfV1gO2lmKFwiYmlnaW50XCI9PT10eXBlb2YgdClyZXR1cm5gW0JpZ0ludDogJHtTdHJpbmcodCl9XWA7Y29uc3QgaT1mdW5jdGlvbihlKXtjb25zdCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gdD90LmNvbnN0cnVjdG9yLm5hbWU6XCJudWxsIHByb3RvdHlwZVwifSh0KTtyZXR1cm4vXkhUTUwoXFx3KilFbGVtZW50JC8udGVzdChpKT9gW0hUTUxFbGVtZW50OiAke2l9XWA6YFtvYmplY3QgJHtpfV1gfWNhdGNoKGkpe3JldHVybmAqKm5vbi1zZXJpYWxpemFibGUqKiAoJHtpfSlgfX0oZSx0KTtpZighZi5zdGFydHNXaXRoKFwiW29iamVjdCBcIikpcmV0dXJuIGY7aWYodC5fX3NlbnRyeV9za2lwX25vcm1hbGl6YXRpb25fXylyZXR1cm4gdDtjb25zdCBoPVwibnVtYmVyXCI9PT10eXBlb2YgdC5fX3NlbnRyeV9vdmVycmlkZV9ub3JtYWxpemF0aW9uX2RlcHRoX18/dC5fX3NlbnRyeV9vdmVycmlkZV9ub3JtYWxpemF0aW9uX2RlcHRoX186cztpZigwPT09aClyZXR1cm4gZi5yZXBsYWNlKFwib2JqZWN0IFwiLFwiXCIpO2lmKGQodCkpcmV0dXJuXCJbQ2lyY3VsYXIgfl1cIjtjb25zdCBnPXQ7aWYoZyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGcudG9KU09OKXRyeXtyZXR1cm4gdShcIlwiLGcudG9KU09OKCksaC0xLGMsbCl9Y2F0Y2goRSl7fWNvbnN0IG09QXJyYXkuaXNBcnJheSh0KT9bXTp7fTtsZXQgdj0wO2NvbnN0IF89KDAsby5TaCkodCk7Zm9yKGNvbnN0IG4gaW4gXyl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfLG4pKWNvbnRpbnVlO2lmKHY+PWMpe21bbl09XCJbTWF4UHJvcGVydGllcyB+XVwiO2JyZWFrfWNvbnN0IGU9X1tuXTttW25dPXUobixlLGgtMSxjLGwpLHYrK31yZXR1cm4gcCh0KSxtfX0sNzIxNDg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHskUTpmdW5jdGlvbigpe3JldHVybiBjfSxISzpmdW5jdGlvbigpe3JldHVybiB1fSxKcjpmdW5jdGlvbigpe3JldHVybiBnfSxTaDpmdW5jdGlvbigpe3JldHVybiBkfSxfajpmdW5jdGlvbigpe3JldHVybiBsfSxobDpmdW5jdGlvbigpe3JldHVybiBhfSxtejpmdW5jdGlvbigpe3JldHVybiB2fSx4cDpmdW5jdGlvbigpe3JldHVybiBzfSx6ZjpmdW5jdGlvbigpe3JldHVybiBofX0pO3ZhciByPW4oMzAzNjMpLGk9bigyMjc5OSksbz1uKDM0NzA2KTtmdW5jdGlvbiBhKGUsdCxuKXtpZighKHQgaW4gZSkpcmV0dXJuO2NvbnN0IHI9ZVt0XSxpPW4ocik7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGkpdHJ5e2MoaSxyKX1jYXRjaChvKXt9ZVt0XT1pfWZ1bmN0aW9uIHMoZSx0LG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9ZnVuY3Rpb24gYyhlLHQpe2NvbnN0IG49dC5wcm90b3R5cGV8fHt9O2UucHJvdG90eXBlPXQucHJvdG90eXBlPW4scyhlLFwiX19zZW50cnlfb3JpZ2luYWxfX1wiLHQpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGUuX19zZW50cnlfb3JpZ2luYWxfX31mdW5jdGlvbiBsKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5tYXAoKHQ9PmAke2VuY29kZVVSSUNvbXBvbmVudCh0KX09JHtlbmNvZGVVUklDb21wb25lbnQoZVt0XSl9YCkpLmpvaW4oXCImXCIpfWZ1bmN0aW9uIGQoZSl7aWYoKDAsaS5WWikoZSkpcmV0dXJue21lc3NhZ2U6ZS5tZXNzYWdlLG5hbWU6ZS5uYW1lLHN0YWNrOmUuc3RhY2ssLi4uZihlKX07aWYoKDAsaS5jTykoZSkpe2NvbnN0IHQ9e3R5cGU6ZS50eXBlLHRhcmdldDpwKGUudGFyZ2V0KSxjdXJyZW50VGFyZ2V0OnAoZS5jdXJyZW50VGFyZ2V0KSwuLi5mKGUpfTtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIEN1c3RvbUV2ZW50JiYoMCxpLlY5KShlLEN1c3RvbUV2ZW50KSYmKHQuZGV0YWlsPWUuZGV0YWlsKSx0fXJldHVybiBlfWZ1bmN0aW9uIHAoZSl7dHJ5e3JldHVybigwLGkua0spKGUpPygwLHIuUnQpKGUpOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1jYXRjaCh0KXtyZXR1cm5cIjx1bmtub3duPlwifX1mdW5jdGlvbiBmKGUpe2lmKFwib2JqZWN0XCI9PT10eXBlb2YgZSYmbnVsbCE9PWUpe2NvbnN0IHQ9e307Zm9yKGNvbnN0IG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9cmV0dXJue319ZnVuY3Rpb24gaChlLHQ9NDApe2NvbnN0IG49T2JqZWN0LmtleXMoZChlKSk7aWYobi5zb3J0KCksIW4ubGVuZ3RoKXJldHVyblwiW29iamVjdCBoYXMgbm8ga2V5c11cIjtpZihuWzBdLmxlbmd0aD49dClyZXR1cm4oMCxvLiRHKShuWzBdLHQpO2ZvcihsZXQgcj1uLmxlbmd0aDtyPjA7ci0tKXtjb25zdCBlPW4uc2xpY2UoMCxyKS5qb2luKFwiLCBcIik7aWYoIShlLmxlbmd0aD50KSlyZXR1cm4gcj09PW4ubGVuZ3RoP2U6KDAsby4kRykoZSx0KX1yZXR1cm5cIlwifWZ1bmN0aW9uIGcoZSl7cmV0dXJuIG0oZSxuZXcgTWFwKX1mdW5jdGlvbiBtKGUsdCl7aWYoKDAsaS5QTykoZSkpe2NvbnN0IG49dC5nZXQoZSk7aWYodm9pZCAwIT09bilyZXR1cm4gbjtjb25zdCByPXt9O3Quc2V0KGUscik7Zm9yKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoZSkpXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBlW2ldJiYocltpXT1tKGVbaV0sdCkpO3JldHVybiByfWlmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IG49dC5nZXQoZSk7aWYodm9pZCAwIT09bilyZXR1cm4gbjtjb25zdCByPVtdO3JldHVybiB0LnNldChlLHIpLGUuZm9yRWFjaCgoZT0+e3IucHVzaChtKGUsdCkpfSkpLHJ9cmV0dXJuIGV9ZnVuY3Rpb24gdihlKXtsZXQgdDtzd2l0Y2goITApe2Nhc2Ugdm9pZCAwPT09ZXx8bnVsbD09PWU6dD1uZXcgU3RyaW5nKGUpO2JyZWFrO2Nhc2VcInN5bWJvbFwiPT09dHlwZW9mIGV8fFwiYmlnaW50XCI9PT10eXBlb2YgZTp0PU9iamVjdChlKTticmVhaztjYXNlKDAsaS5wdCkoZSk6dD1uZXcgZS5jb25zdHJ1Y3RvcihlKTticmVhaztkZWZhdWx0OnQ9ZX1yZXR1cm4gdH19LDkzMjA5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUsdCl7bGV0IG49MDtmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSl7Y29uc3QgdD1lW3JdO1wiLlwiPT09dD9lLnNwbGljZShyLDEpOlwiLi5cIj09PXQ/KGUuc3BsaWNlKHIsMSksbisrKTpuJiYoZS5zcGxpY2UociwxKSxuLS0pfWlmKHQpZm9yKDtuLS07billLnVuc2hpZnQoXCIuLlwiKTtyZXR1cm4gZX1uLmQodCx7QUg6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sREI6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sRVo6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sR2Y6ZnVuY3Rpb24oKXtyZXR1cm4gY30sWFg6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sWVA6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sdl86ZnVuY3Rpb24oKXtyZXR1cm4gZH19KTtjb25zdCBpPS9eKFxcLz98KShbXFxzXFxTXSo/KSgoPzpcXC57MSwyfXxbXi9dKz98KShcXC5bXi4vXSp8KSkoPzpbL10qKSQvO2Z1bmN0aW9uIG8oZSl7Y29uc3QgdD1pLmV4ZWMoZSk7cmV0dXJuIHQ/dC5zbGljZSgxKTpbXX1mdW5jdGlvbiBhKC4uLmUpe2xldCB0PVwiXCIsbj0hMTtmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0tMSYmIW47ci0tKXtjb25zdCBpPXI+PTA/ZVtyXTpcIi9cIjtpJiYodD1gJHtpfS8ke3R9YCxuPVwiL1wiPT09aS5jaGFyQXQoMCkpfXJldHVybiB0PXIodC5zcGxpdChcIi9cIikuZmlsdGVyKChlPT4hIWUpKSwhbikuam9pbihcIi9cIiksKG4/XCIvXCI6XCJcIikrdHx8XCIuXCJ9ZnVuY3Rpb24gcyhlKXtsZXQgdD0wO2Zvcig7dDxlLmxlbmd0aCYmXCJcIj09PWVbdF07dCsrKTtsZXQgbj1lLmxlbmd0aC0xO2Zvcig7bj49MCYmXCJcIj09PWVbbl07bi0tKTtyZXR1cm4gdD5uP1tdOmUuc2xpY2UodCxuLXQrMSl9ZnVuY3Rpb24gYyhlLHQpe2U9YShlKS5zbGljZSgxKSx0PWEodCkuc2xpY2UoMSk7Y29uc3Qgbj1zKGUuc3BsaXQoXCIvXCIpKSxyPXModC5zcGxpdChcIi9cIikpLGk9TWF0aC5taW4obi5sZW5ndGgsci5sZW5ndGgpO2xldCBvPWk7Zm9yKGxldCBhPTA7YTxpO2ErKylpZihuW2FdIT09clthXSl7bz1hO2JyZWFrfWxldCBjPVtdO2ZvcihsZXQgYT1vO2E8bi5sZW5ndGg7YSsrKWMucHVzaChcIi4uXCIpO3JldHVybiBjPWMuY29uY2F0KHIuc2xpY2UobykpLGMuam9pbihcIi9cIil9ZnVuY3Rpb24gdShlKXtjb25zdCB0PWwoZSksbj1cIi9cIj09PWUuc2xpY2UoLTEpO2xldCBpPXIoZS5zcGxpdChcIi9cIikuZmlsdGVyKChlPT4hIWUpKSwhdCkuam9pbihcIi9cIik7cmV0dXJuIGl8fHR8fChpPVwiLlwiKSxpJiZuJiYoaSs9XCIvXCIpLCh0P1wiL1wiOlwiXCIpK2l9ZnVuY3Rpb24gbChlKXtyZXR1cm5cIi9cIj09PWUuY2hhckF0KDApfWZ1bmN0aW9uIGQoLi4uZSl7cmV0dXJuIHUoZS5qb2luKFwiL1wiKSl9ZnVuY3Rpb24gcChlKXtjb25zdCB0PW8oZSksbj10WzBdO2xldCByPXRbMV07cmV0dXJuIG58fHI/KHImJihyPXIuc2xpY2UoMCxyLmxlbmd0aC0xKSksbityKTpcIi5cIn1mdW5jdGlvbiBmKGUsdCl7bGV0IG49byhlKVsyXTtyZXR1cm4gdCYmbi5zbGljZSgtMSp0Lmxlbmd0aCk9PT10JiYobj1uLnNsaWNlKDAsbi5sZW5ndGgtdC5sZW5ndGgpKSxufX0sNzk3NDE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHt4OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7dmFyIHI9big2MDU5MyksaT1uKDkxNjE5KTtmdW5jdGlvbiBvKGUpe2NvbnN0IHQ9W107ZnVuY3Rpb24gbihlKXtyZXR1cm4gdC5zcGxpY2UodC5pbmRleE9mKGUpLDEpWzBdfXJldHVybnskOnQsYWRkOmZ1bmN0aW9uKG8pe2lmKCEodm9pZCAwPT09ZXx8dC5sZW5ndGg8ZSkpcmV0dXJuKDAsaS4kMikobmV3IHIuYihcIk5vdCBhZGRpbmcgUHJvbWlzZSBiZWNhdXNlIGJ1ZmZlciBsaW1pdCB3YXMgcmVhY2hlZC5cIikpO2NvbnN0IGE9bygpO3JldHVybi0xPT09dC5pbmRleE9mKGEpJiZ0LnB1c2goYSksYS50aGVuKCgoKT0+bihhKSkpLnRoZW4obnVsbCwoKCk9Pm4oYSkudGhlbihudWxsLCgoKT0+e30pKSkpLGF9LGRyYWluOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgaS5jVygoKG4scik9PntsZXQgbz10Lmxlbmd0aDtpZighbylyZXR1cm4gbighMCk7Y29uc3QgYT1zZXRUaW1lb3V0KCgoKT0+e2UmJmU+MCYmbighMSl9KSxlKTt0LmZvckVhY2goKGU9PnsoMCxpLldEKShlKS50aGVuKCgoKT0+ey0tb3x8KGNsZWFyVGltZW91dChhKSxuKCEwKSl9KSxyKX0pKX0pKX19fX0sNTk0MTc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtCMTpmdW5jdGlvbigpe3JldHVybiByfSxKWTpmdW5jdGlvbigpe3JldHVybiBpfSxROmZ1bmN0aW9uKCl7cmV0dXJuIGF9LFdHOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LG5zOmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7Y29uc3Qgcj02ZTQ7ZnVuY3Rpb24gaShlLHQ9RGF0ZS5ub3coKSl7Y29uc3Qgbj1wYXJzZUludChgJHtlfWAsMTApO2lmKCFpc05hTihuKSlyZXR1cm4gMWUzKm47Y29uc3QgaT1EYXRlLnBhcnNlKGAke2V9YCk7cmV0dXJuIGlzTmFOKGkpP3I6aS10fWZ1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZVt0XXx8ZS5hbGx8fDB9ZnVuY3Rpb24gYShlLHQsbj1EYXRlLm5vdygpKXtyZXR1cm4gbyhlLHQpPm59ZnVuY3Rpb24gcyhlLHtzdGF0dXNDb2RlOnQsaGVhZGVyczpufSxyPURhdGUubm93KCkpe2NvbnN0IG89ey4uLmV9LGE9biYmbltcIngtc2VudHJ5LXJhdGUtbGltaXRzXCJdLHM9biYmbltcInJldHJ5LWFmdGVyXCJdO2lmKGEpZm9yKGNvbnN0IGkgb2YgYS50cmltKCkuc3BsaXQoXCIsXCIpKXtjb25zdFtlLHRdPWkuc3BsaXQoXCI6XCIsMiksbj1wYXJzZUludChlLDEwKSxhPTFlMyooaXNOYU4obik/NjA6bik7aWYodClmb3IoY29uc3QgaSBvZiB0LnNwbGl0KFwiO1wiKSlvW2ldPXIrYTtlbHNlIG8uYWxsPXIrYX1lbHNlIHM/by5hbGw9citpKHMscik6NDI5PT09dCYmKG8uYWxsPXIrNmU0KTtyZXR1cm4gb319LDk1NDk0OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7RW46ZnVuY3Rpb24oKXtyZXR1cm4gaX0sVHg6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sVlQ6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTtjb25zdCByPVtcImZhdGFsXCIsXCJlcnJvclwiLFwid2FybmluZ1wiLFwibG9nXCIsXCJpbmZvXCIsXCJkZWJ1Z1wiXTtmdW5jdGlvbiBpKGUpe3JldHVybiBvKGUpfWZ1bmN0aW9uIG8oZSl7cmV0dXJuXCJ3YXJuXCI9PT1lP1wid2FybmluZ1wiOnIuaW5jbHVkZXMoZSk/ZTpcImxvZ1wifX0sOTkzMjE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHIoZSl7Y29uc3QgdD0vXlxccypbLV17NCx9JC8sbj0vYXQgKD86YXN5bmMgKT8oPzooLis/KVxccytcXCgpPyg/OiguKyk6KFxcZCspOihcXGQrKT98KFteKV0rKSlcXCk/LztyZXR1cm4gcj0+e2NvbnN0IGk9ci5tYXRjaChuKTtpZihpKXtsZXQgdCxuLHIsbyxhO2lmKGlbMV0pe3I9aVsxXTtsZXQgZT1yLmxhc3RJbmRleE9mKFwiLlwiKTtpZihcIi5cIj09PXJbZS0xXSYmZS0tLGU+MCl7dD1yLnNsaWNlKDAsZSksbj1yLnNsaWNlKGUrMSk7Y29uc3QgaT10LmluZGV4T2YoXCIuTW9kdWxlXCIpO2k+MCYmKHI9ci5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKX1vPXZvaWQgMH1uJiYobz10LGE9biksXCI8YW5vbnltb3VzPlwiPT09biYmKGE9dm9pZCAwLHI9dm9pZCAwKSx2b2lkIDA9PT1yJiYoYT1hfHxcIjxhbm9ueW1vdXM+XCIscj1vP2Ake299LiR7YX1gOmEpO2xldCBzPWlbMl0mJmlbMl0uc3RhcnRzV2l0aChcImZpbGU6Ly9cIik/aVsyXS5zbGljZSg3KTppWzJdO2NvbnN0IGM9XCJuYXRpdmVcIj09PWlbNV07c3x8IWlbNV18fGN8fChzPWlbNV0pO2NvbnN0IHU9IShjfHxzJiYhcy5zdGFydHNXaXRoKFwiL1wiKSYmIXMuaW5jbHVkZXMoXCI6XFxcXFwiKSYmIXMuc3RhcnRzV2l0aChcIi5cIikmJiFzLm1hdGNoKC9eW2EtekEtWl0oW2EtekEtWjAtOS5cXC0rXSkqOlxcL1xcLy8pKSYmdm9pZCAwIT09cyYmIXMuaW5jbHVkZXMoXCJub2RlX21vZHVsZXMvXCIpO3JldHVybntmaWxlbmFtZTpzLG1vZHVsZTplP2Uocyk6dm9pZCAwLGZ1bmN0aW9uOnIsbGluZW5vOnBhcnNlSW50KGlbM10sMTApfHx2b2lkIDAsY29sbm86cGFyc2VJbnQoaVs0XSwxMCl8fHZvaWQgMCxpbl9hcHA6dX19aWYoci5tYXRjaCh0KSlyZXR1cm57ZmlsZW5hbWU6cn19fW4uZCh0LHtwRTpmdW5jdGlvbigpe3JldHVybiBvfSwkUDpmdW5jdGlvbigpe3JldHVybiB1fSxFcDpmdW5jdGlvbigpe3JldHVybiBsfSxTcTpmdW5jdGlvbigpe3JldHVybiBhfSxVVjpmdW5jdGlvbigpe3JldHVybiBzfX0pO2NvbnN0IGk9L1xcKGVycm9yOiAoLiopXFwpLztmdW5jdGlvbiBvKC4uLmUpe2NvbnN0IHQ9ZS5zb3J0KCgoZSx0KT0+ZVswXS10WzBdKSkubWFwKChlPT5lWzFdKSk7cmV0dXJuKGUsbj0wKT0+e2NvbnN0IHI9W10sbz1lLnNwbGl0KFwiXFxuXCIpO2ZvcihsZXQgYT1uO2E8by5sZW5ndGg7YSsrKXtjb25zdCBlPW9bYV07aWYoZS5sZW5ndGg+MTAyNCljb250aW51ZTtjb25zdCBuPWkudGVzdChlKT9lLnJlcGxhY2UoaSxcIiQxXCIpOmU7aWYoIW4ubWF0Y2goL1xcUypFcnJvcjogLykpe2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0IHQ9ZShuKTtpZih0KXtyLnB1c2godCk7YnJlYWt9fWlmKHIubGVuZ3RoPj01MClicmVha319cmV0dXJuIHMocil9fWZ1bmN0aW9uIGEoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/byguLi5lKTplfWZ1bmN0aW9uIHMoZSl7aWYoIWUubGVuZ3RoKXJldHVybltdO2NvbnN0IHQ9ZS5zbGljZSgwLDUwKSxuPXRbdC5sZW5ndGgtMV0uZnVuY3Rpb247biYmL3NlbnRyeVdyYXBwZWQvLnRlc3QobikmJnQucG9wKCksdC5yZXZlcnNlKCk7Y29uc3Qgcj10W3QubGVuZ3RoLTFdLmZ1bmN0aW9uO3JldHVybiByJiYvY2FwdHVyZU1lc3NhZ2V8Y2FwdHVyZUV4Y2VwdGlvbi8udGVzdChyKSYmdC5wb3AoKSx0Lm1hcCgoZT0+KHsuLi5lLGZpbGVuYW1lOmUuZmlsZW5hbWV8fHRbdC5sZW5ndGgtMV0uZmlsZW5hbWUsZnVuY3Rpb246ZS5mdW5jdGlvbnx8XCI/XCJ9KSkpfWNvbnN0IGM9XCI8YW5vbnltb3VzPlwiO2Z1bmN0aW9uIHUoZSl7dHJ5e3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSYmZS5uYW1lfHxjfWNhdGNoKHQpe3JldHVybiBjfX1mdW5jdGlvbiBsKGUpe3JldHVybls5MCxyKGUpXX19LDM0NzA2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7JEc6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sSk06ZnVuY3Rpb24oKXtyZXR1cm4gb30sVTA6ZnVuY3Rpb24oKXtyZXR1cm4gY30sbks6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sekM6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTt2YXIgcj1uKDIyNzk5KTtmdW5jdGlvbiBpKGUsdD0wKXtyZXR1cm5cInN0cmluZ1wiIT09dHlwZW9mIGV8fDA9PT10fHxlLmxlbmd0aDw9dD9lOmAke2Uuc2xpY2UoMCx0KX0uLi5gfWZ1bmN0aW9uIG8oZSx0KXtsZXQgbj1lO2NvbnN0IHI9bi5sZW5ndGg7aWYocjw9MTUwKXJldHVybiBuO3Q+ciYmKHQ9cik7bGV0IGk9TWF0aC5tYXgodC02MCwwKTtpPDUmJihpPTApO2xldCBvPU1hdGgubWluKGkrMTQwLHIpO3JldHVybiBvPnItNSYmKG89ciksbz09PXImJihpPU1hdGgubWF4KG8tMTQwLDApKSxuPW4uc2xpY2UoaSxvKSxpPjAmJihuPWAne3NuaXB9ICR7bn1gKSxvPHImJihuKz1cIiB7c25pcH1cIiksbn1mdW5jdGlvbiBhKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuXCJcIjtjb25zdCBuPVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtjb25zdCB0PWVbaV07dHJ5e24ucHVzaChTdHJpbmcodCkpfWNhdGNoKHIpe24ucHVzaChcIlt2YWx1ZSBjYW5ub3QgYmUgc2VyaWFsaXplZF1cIil9fXJldHVybiBuLmpvaW4odCl9ZnVuY3Rpb24gcyhlLHQsbj0hMSl7cmV0dXJuISEoMCxyLkhEKShlKSYmKCgwLHIuS2opKHQpP3QudGVzdChlKTohISgwLHIuSEQpKHQpJiYobj9lPT09dDplLmluY2x1ZGVzKHQpKSl9ZnVuY3Rpb24gYyhlLHQ9W10sbj0hMSl7cmV0dXJuIHQuc29tZSgodD0+cyhlLHQsbikpKX19LDIwMDk3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7QWs6ZnVuY3Rpb24oKXtyZXR1cm4gY30sRHU6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sUyQ6ZnVuY3Rpb24oKXtyZXR1cm4gb30sZkw6ZnVuY3Rpb24oKXtyZXR1cm4gc30saHY6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sdCQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sek86ZnVuY3Rpb24oKXtyZXR1cm4gYX0semI6ZnVuY3Rpb24oKXtyZXR1cm4gZH19KTt2YXIgcj1uKDMyOTQ4KTtjb25zdCBpPSgwLG4oOTEyNDgpLlJmKSgpO2Z1bmN0aW9uIG8oKXt0cnl7cmV0dXJuIG5ldyBFcnJvckV2ZW50KFwiXCIpLCEwfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBhKCl7dHJ5e3JldHVybiBuZXcgRE9NRXJyb3IoXCJcIiksITB9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIHMoKXt0cnl7cmV0dXJuIG5ldyBET01FeGNlcHRpb24oXCJcIiksITB9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGMoKXtpZighKFwiZmV0Y2hcImluIGkpKXJldHVybiExO3RyeXtyZXR1cm4gbmV3IEhlYWRlcnMsbmV3IFJlcXVlc3QoXCJodHRwOi8vd3d3LmV4YW1wbGUuY29tXCIpLG5ldyBSZXNwb25zZSwhMH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gdShlKXtyZXR1cm4gZSYmL15mdW5jdGlvbiBmZXRjaFxcKFxcKVxccytcXHtcXHMrXFxbbmF0aXZlIGNvZGVcXF1cXHMrXFx9JC8udGVzdChlLnRvU3RyaW5nKCkpfWZ1bmN0aW9uIGwoKXtpZighYygpKXJldHVybiExO2lmKHUoaS5mZXRjaCkpcmV0dXJuITA7bGV0IGU9ITE7Y29uc3QgdD1pLmRvY3VtZW50O2lmKHQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiB0LmNyZWF0ZUVsZW1lbnQpdHJ5e2NvbnN0IG49dC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO24uaGlkZGVuPSEwLHQuaGVhZC5hcHBlbmRDaGlsZChuKSxuLmNvbnRlbnRXaW5kb3cmJm4uY29udGVudFdpbmRvdy5mZXRjaCYmKGU9dShuLmNvbnRlbnRXaW5kb3cuZmV0Y2gpKSx0LmhlYWQucmVtb3ZlQ2hpbGQobil9Y2F0Y2gobil7KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgX19TRU5UUllfREVCVUdfX3x8X19TRU5UUllfREVCVUdfXykmJnIua2cud2FybihcIkNvdWxkIG5vdCBjcmVhdGUgc2FuZGJveCBpZnJhbWUgZm9yIHB1cmUgZmV0Y2ggY2hlY2ssIGJhaWxpbmcgdG8gd2luZG93LmZldGNoOiBcIixuKX1yZXR1cm4gZX1mdW5jdGlvbiBkKCl7cmV0dXJuXCJSZXBvcnRpbmdPYnNlcnZlclwiaW4gaX1mdW5jdGlvbiBwKCl7aWYoIWMoKSlyZXR1cm4hMTt0cnl7cmV0dXJuIG5ldyBSZXF1ZXN0KFwiX1wiLHtyZWZlcnJlclBvbGljeTpcIm9yaWdpblwifSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fX0sOTE2MTk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHskMjpmdW5jdGlvbigpe3JldHVybiBhfSxXRDpmdW5jdGlvbigpe3JldHVybiBvfSxjVzpmdW5jdGlvbigpe3JldHVybiBzfX0pO3ZhciByLGk9bigyMjc5OSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbmV3IHMoKHQ9Pnt0KGUpfSkpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIG5ldyBzKCgodCxuKT0+e24oZSl9KSl9IWZ1bmN0aW9uKGUpe2VbZS5QRU5ESU5HPTBdPVwiUEVORElOR1wiO2VbZS5SRVNPTFZFRD0xXT1cIlJFU09MVkVEXCI7ZVtlLlJFSkVDVEVEPTJdPVwiUkVKRUNURURcIn0ocnx8KHI9e30pKTtjbGFzcyBze19faW5pdCgpe3RoaXMuX3N0YXRlPXIuUEVORElOR31fX2luaXQyKCl7dGhpcy5faGFuZGxlcnM9W119Y29uc3RydWN0b3IoZSl7cy5wcm90b3R5cGUuX19pbml0LmNhbGwodGhpcykscy5wcm90b3R5cGUuX19pbml0Mi5jYWxsKHRoaXMpLHMucHJvdG90eXBlLl9faW5pdDMuY2FsbCh0aGlzKSxzLnByb3RvdHlwZS5fX2luaXQ0LmNhbGwodGhpcykscy5wcm90b3R5cGUuX19pbml0NS5jYWxsKHRoaXMpLHMucHJvdG90eXBlLl9faW5pdDYuY2FsbCh0aGlzKTt0cnl7ZSh0aGlzLl9yZXNvbHZlLHRoaXMuX3JlamVjdCl9Y2F0Y2godCl7dGhpcy5fcmVqZWN0KHQpfX10aGVuKGUsdCl7cmV0dXJuIG5ldyBzKCgobixyKT0+e3RoaXMuX2hhbmRsZXJzLnB1c2goWyExLHQ9PntpZihlKXRyeXtuKGUodCkpfWNhdGNoKGkpe3IoaSl9ZWxzZSBuKHQpfSxlPT57aWYodCl0cnl7bih0KGUpKX1jYXRjaChpKXtyKGkpfWVsc2UgcihlKX1dKSx0aGlzLl9leGVjdXRlSGFuZGxlcnMoKX0pKX1jYXRjaChlKXtyZXR1cm4gdGhpcy50aGVuKChlPT5lKSxlKX1maW5hbGx5KGUpe3JldHVybiBuZXcgcygoKHQsbik9PntsZXQgcixpO3JldHVybiB0aGlzLnRoZW4oKHQ9PntpPSExLHI9dCxlJiZlKCl9KSwodD0+e2k9ITAscj10LGUmJmUoKX0pKS50aGVuKCgoKT0+e2k/bihyKTp0KHIpfSkpfSkpfV9faW5pdDMoKXt0aGlzLl9yZXNvbHZlPWU9Pnt0aGlzLl9zZXRSZXN1bHQoci5SRVNPTFZFRCxlKX19X19pbml0NCgpe3RoaXMuX3JlamVjdD1lPT57dGhpcy5fc2V0UmVzdWx0KHIuUkVKRUNURUQsZSl9fV9faW5pdDUoKXt0aGlzLl9zZXRSZXN1bHQ9KGUsdCk9Pnt0aGlzLl9zdGF0ZT09PXIuUEVORElORyYmKCgwLGkuSjgpKHQpP3QudGhlbih0aGlzLl9yZXNvbHZlLHRoaXMuX3JlamVjdCk6KHRoaXMuX3N0YXRlPWUsdGhpcy5fdmFsdWU9dCx0aGlzLl9leGVjdXRlSGFuZGxlcnMoKSkpfX1fX2luaXQ2KCl7dGhpcy5fZXhlY3V0ZUhhbmRsZXJzPSgpPT57aWYodGhpcy5fc3RhdGU9PT1yLlBFTkRJTkcpcmV0dXJuO2NvbnN0IGU9dGhpcy5faGFuZGxlcnMuc2xpY2UoKTt0aGlzLl9oYW5kbGVycz1bXSxlLmZvckVhY2goKGU9PntlWzBdfHwodGhpcy5fc3RhdGU9PT1yLlJFU09MVkVEJiZlWzFdKHRoaXMuX3ZhbHVlKSx0aGlzLl9zdGF0ZT09PXIuUkVKRUNURUQmJmVbMl0odGhpcy5fdmFsdWUpLGVbMF09ITApfSkpfX19fSwxODYzNTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1oxOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LF9JOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LG1MOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHBoOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHNWOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LHlXOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fSk7dmFyIHI9big2NDg1KSxpPW4oOTEyNDgpO2U9bi5obWQoZSk7Y29uc3Qgbz0oMCxpLlJmKSgpLGE9e25vd1NlY29uZHM6KCk9PkRhdGUubm93KCkvMWUzfTtjb25zdCBzPSgwLHIuS1YpKCk/ZnVuY3Rpb24oKXt0cnl7cmV0dXJuKDAsci5sJCkoZSxcInBlcmZfaG9va3NcIikucGVyZm9ybWFuY2V9Y2F0Y2godCl7cmV0dXJufX0oKTpmdW5jdGlvbigpe2NvbnN0e3BlcmZvcm1hbmNlOmV9PW87aWYoIWV8fCFlLm5vdylyZXR1cm47cmV0dXJue25vdzooKT0+ZS5ub3coKSx0aW1lT3JpZ2luOkRhdGUubm93KCktZS5ub3coKX19KCksYz12b2lkIDA9PT1zP2E6e25vd1NlY29uZHM6KCk9PihzLnRpbWVPcmlnaW4rcy5ub3coKSkvMWUzfSx1PWEubm93U2Vjb25kcy5iaW5kKGEpLGw9Yy5ub3dTZWNvbmRzLmJpbmQoYyksZD1sLHA9dm9pZCAwIT09cztsZXQgZjtjb25zdCBoPSgoKT0+e2NvbnN0e3BlcmZvcm1hbmNlOmV9PW87aWYoIWV8fCFlLm5vdylyZXR1cm4gdm9pZChmPVwibm9uZVwiKTtjb25zdCB0PTM2ZTUsbj1lLm5vdygpLHI9RGF0ZS5ub3coKSxpPWUudGltZU9yaWdpbj9NYXRoLmFicyhlLnRpbWVPcmlnaW4rbi1yKTp0LGE9aTx0LHM9ZS50aW1pbmcmJmUudGltaW5nLm5hdmlnYXRpb25TdGFydCxjPVwibnVtYmVyXCI9PT10eXBlb2Ygcz9NYXRoLmFicyhzK24tcik6dDtyZXR1cm4gYXx8Yzx0P2k8PWM/KGY9XCJ0aW1lT3JpZ2luXCIsZS50aW1lT3JpZ2luKTooZj1cIm5hdmlnYXRpb25TdGFydFwiLHMpOihmPVwiZGF0ZU5vd1wiLHIpfSkoKX0sMTYxMzg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtLOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHE6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTtjb25zdCByPW5ldyBSZWdFeHAoXCJeWyBcXFxcdF0qKFswLTlhLWZdezMyfSk/LT8oWzAtOWEtZl17MTZ9KT8tPyhbMDFdKT9bIFxcXFx0XSokXCIpO2Z1bmN0aW9uIGkoZSl7Y29uc3QgdD1lLm1hdGNoKHIpO2lmKCFlfHwhdClyZXR1cm47bGV0IG47cmV0dXJuXCIxXCI9PT10WzNdP249ITA6XCIwXCI9PT10WzNdJiYobj0hMSkse3RyYWNlSWQ6dFsxXSxwYXJlbnRTYW1wbGVkOm4scGFyZW50U3BhbklkOnRbMl19fX0sNjQxMjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcihlKXtpZighZSlyZXR1cm57fTtjb25zdCB0PWUubWF0Y2goL14oKFteOi8/I10rKTopPyhcXC9cXC8oW14vPyNdKikpPyhbXj8jXSopKFxcPyhbXiNdKikpPygjKC4qKSk/JC8pO2lmKCF0KXJldHVybnt9O2NvbnN0IG49dFs2XXx8XCJcIixyPXRbOF18fFwiXCI7cmV0dXJue2hvc3Q6dFs0XSxwYXRoOnRbNV0scHJvdG9jb2w6dFsyXSxzZWFyY2g6bixoYXNoOnIscmVsYXRpdmU6dFs1XStuK3J9fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIGUuc3BsaXQoL1tcXD8jXS8sMSlbMF19ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5zcGxpdCgvXFxcXD9cXC8vKS5maWx0ZXIoKGU9PmUubGVuZ3RoPjAmJlwiLFwiIT09ZSkpLmxlbmd0aH1mdW5jdGlvbiBhKGUpe2NvbnN0e3Byb3RvY29sOnQsaG9zdDpuLHBhdGg6cn09ZTtyZXR1cm5gJHt0P2Ake3R9Oi8vYDpcIlwifSR7biYmbi5yZXBsYWNlKC9eLipALyxcIltmaWx0ZXJlZF06W2ZpbHRlcmVkXUBcIikucmVwbGFjZShcIjo4MFwiLFwiXCIpLnJlcGxhY2UoXCI6NDQzXCIsXCJcIil8fFwiXCJ9JHtyfWB9bi5kKHQseyRBOmZ1bmN0aW9uKCl7cmV0dXJuIG99LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHRGOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSl9LDUxMzg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtCOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7Y29uc3Qgcj0oMCxuKDkxMjQ4KS5SZikoKTtmdW5jdGlvbiBpKCl7Y29uc3QgZT1yLmNocm9tZSx0PWUmJmUuYXBwJiZlLmFwcC5ydW50aW1lLG49XCJoaXN0b3J5XCJpbiByJiYhIXIuaGlzdG9yeS5wdXNoU3RhdGUmJiEhci5oaXN0b3J5LnJlcGxhY2VTdGF0ZTtyZXR1cm4hdCYmbn19LDkxMjQ4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUpe3JldHVybiBlJiZlLk1hdGg9PU1hdGg/ZTp2b2lkIDB9bi5kKHQse1JmOmZ1bmN0aW9uKCl7cmV0dXJuIG99LFlPOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LG4yOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7Y29uc3QgaT1cIm9iamVjdFwiPT10eXBlb2YgZ2xvYmFsVGhpcyYmcihnbG9iYWxUaGlzKXx8XCJvYmplY3RcIj09dHlwZW9mIHdpbmRvdyYmcih3aW5kb3cpfHxcIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmcihzZWxmKXx8XCJvYmplY3RcIj09dHlwZW9mIG4uZyYmcihuLmcpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHx7fTtmdW5jdGlvbiBvKCl7cmV0dXJuIGl9ZnVuY3Rpb24gYShlLHQsbil7Y29uc3Qgcj1ufHxpLG89ci5fX1NFTlRSWV9fPXIuX19TRU5UUllfX3x8e307cmV0dXJuIG9bZV18fChvW2VdPXQoKSl9fSw0NjA0NDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gcj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWZvcih2YXIgaSBpbiB0PWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9LHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxpPXRoaXMmJnRoaXMuX19yZWFkfHxmdW5jdGlvbihlLHQpe3ZhciBuPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighbilyZXR1cm4gZTt2YXIgcixpLG89bi5jYWxsKGUpLGE9W107dHJ5e2Zvcig7KHZvaWQgMD09PXR8fHQtLSA+MCkmJiEocj1vLm5leHQoKSkuZG9uZTspYS5wdXNoKHIudmFsdWUpfWNhdGNoKHMpe2k9e2Vycm9yOnN9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihuPW8ucmV0dXJuKSYmbi5jYWxsKG8pfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gYX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIG89big5ODAwOCksYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dGhpcy5uYW1lPWUubmFtZSx0aGlzLl9vcHRpb25zPXIoe3Nhbml0aXplS2V5czpbXX0sdCksdGhpcy5fc2FuaXRpemVNYXNrPVwiKioqKioqXCJ9cmV0dXJuIGUucHJvdG90eXBlLnNldHVwT25jZT1mdW5jdGlvbih0LG4pe3QoKGZ1bmN0aW9uKHQscil7dmFyIGk9bigpLmdldEludGVncmF0aW9uKGUpO3JldHVybiBpP2kucHJvY2Vzcyh0KTp0fSkpfSxlLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKGUpe3JldHVybiAwPT09dGhpcy5fb3B0aW9ucy5zYW5pdGl6ZUtleXMubGVuZ3RoP2U6dGhpcy5fc2FuaXRpemUoZSl9LGUucHJvdG90eXBlLl9zYW5pdGl6ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7dm9pZCAwPT09dCYmKHQ9by5tZW1vQnVpbGRlcigpKTt2YXIgcj1BcnJheS5pc0FycmF5KGUpLGE9by5pc1BsYWluT2JqZWN0KGUpO2lmKCFyJiYhYSlyZXR1cm4gZTt2YXIgcyxjPWkodCwyKSx1PWNbMF0sbD1jWzFdO2lmKHUoZSkpcmV0dXJuIGU7aWYociYmQXJyYXkuaXNBcnJheShlKSlzPWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5fc2FuaXRpemUoZSx0KX0pKTtlbHNlIGlmKGEpe3ZhciBkPWU7cz1PYmplY3Qua2V5cyhkKS5yZWR1Y2UoKGZ1bmN0aW9uKGUscil7cmV0dXJuIGVbcl09bi5fc2FuaXRpemVSZWdFeHAoKS50ZXN0KHIpP24uX3Nhbml0aXplTWFzazpuLl9zYW5pdGl6ZShkW3JdLHQpLGV9KSx7fSl9cmV0dXJuIGwoZSksc30sZS5wcm90b3R5cGUuX3Nhbml0aXplUmVnRXhwPWZ1bmN0aW9uKCl7aWYodGhpcy5fbGF6eVNhbml0aXplUmVnRXhwKXJldHVybiB0aGlzLl9sYXp5U2FuaXRpemVSZWdFeHA7dmFyIGU9dGhpcy5fb3B0aW9ucy5zYW5pdGl6ZUtleXMucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVyblwic3RyaW5nXCI9PT10eXBlb2YgdD9lLnB1c2godC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZyxcIlxcXFwkJlwiKSk6by5pc1JlZ0V4cCh0KSYmZS5wdXNoKHQuc291cmNlKSxlfSksW10pO3JldHVybiB0aGlzLl9sYXp5U2FuaXRpemVSZWdFeHA9UmVnRXhwKGUuam9pbihcInxcIiksXCJpXCIpfSxlLmlkPVwiRGF0YVNjcnViYmVySW50ZWdyYXRpb25cIixlfSgpO3QuZGVmYXVsdD1hfSw1NjE5OTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdEVycm9yc1RvSWdub3JlPXQuZGVmYXVsdEtleXNUb1Nhbml0aXplPXZvaWQgMCx0LmRlZmF1bHRLZXlzVG9TYW5pdGl6ZT1bL3Bhc3N3b3JkL2ksL3Rva2VuL2ksL3NlY3JldC9pLC9wYXNzd2QvaSwvYXV0aG9yaXphdGlvbi9pLC9hcGlfa2V5L2ksL2FwaWtleS9pLC9zZW50cnlfZHNuL2ksL2FjY2Vzc190b2tlbi9pXSx0LmRlZmF1bHRFcnJvcnNUb0lnbm9yZT1bXCJ0b3AuR0xPQkFMU1wiLFwib3JpZ2luYWxDcmVhdGVOb3RpZmljYXRpb25cIixcImNhbnZhcy5jb250ZW50RG9jdW1lbnRcIixcIk15QXBwX1JlbW92ZUFsbEhpZ2hsaWdodHNcIixcImh0dHA6Ly90dC5lcGljcGxheS5jb21cIixcIkNhbid0IGZpbmQgdmFyaWFibGU6IFppdGVSZWFkZXJcIixcImppZ3NhdyBpcyBub3QgZGVmaW5lZFwiLFwiQ29tYm9TZWFyY2ggaXMgbm90IGRlZmluZWRcIixcImh0dHA6Ly9sb2FkaW5nLnJldHJ5LndpZGRpdC5jb20vXCIsXCJhdG9taWNGaW5kQ2xvc2VcIixcImZiX3hkX2ZyYWdtZW50XCIsXCJibWlfU2FmZUFkZE9ubG9hZFwiLFwiRUJDYWxsQmFja01lc3NhZ2VSZWNlaXZlZFwiLFwiY29uZHVpdFBhZ2VcIl19LDM3NzIwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiByPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYoZVtpXT10W2ldKTtyZXR1cm4gZX0sci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuU2VudHJ5PXZvaWQgMDt2YXIgaT1uKDU3MTE4KSxvPW4oNDYwNDQpLGE9big5OTQzNSkscz1uKDU2MTk5KSxjPWkuaW5pdCx1PXIocih7fSxpKSx7aW5pdDpmdW5jdGlvbihlKXt2YXIgdDtpZih2b2lkIDA9PT0obnVsbD09PWV8fHZvaWQgMD09PWU/dm9pZCAwOmUuYWxsb3dVcmxzKSl0aHJvdyBuZXcgRXJyb3IoXCJTZW50cnkuaW5pdDogTWlzc2luZyAnYWxsb3dVcmxzJyBvcHRpb25cIik7dmFyIG49bnVsbD09PWV8fHZvaWQgMD09PWU/dm9pZCAwOmUuaW50ZWdyYXRpb25zO3JldHVybiBjLmNhbGwoaSxyKHIoe2FsbG93VXJsczpbXCJibG9ja19hbGxcIl19LGUpLHtpbnRlZ3JhdGlvbnM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWUhPT1pLkludGVncmF0aW9ucy5CcmVhZGNydW1icy5uYW1lfSkpO3JldHVybiB0LnB1c2gobmV3IGEuRGVkdXBlKSx0LnB1c2gobmV3IG8uZGVmYXVsdCh7c2FuaXRpemVLZXlzOnMuZGVmYXVsdEtleXNUb1Nhbml0aXplfSkpLEFycmF5LmlzQXJyYXkobikmJih0PXQuY29uY2F0KG4pKSxuIGluc3RhbmNlb2YgRnVuY3Rpb24mJih0PW4odCkpLHR9LGF1dG9TZXNzaW9uVHJhY2tpbmc6ITEsaWdub3JlRXJyb3JzOnMuZGVmYXVsdEVycm9yc1RvSWdub3JlLmNvbmNhdChudWxsIT09KHQ9bnVsbD09PWV8fHZvaWQgMD09PWU/dm9pZCAwOmUuaWdub3JlRXJyb3JzKSYmdm9pZCAwIT09dD90OltdKX0pKX19KTt0LlNlbnRyeT11LHQuZGVmYXVsdD11fSwzOTg1MjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucHJvdG9idWZQYWNrYWdlPXQuU2hhcmVTdGF0dXM9dC5TaGFyZVNvdXJjZT10LlNoYXJlRGVzdGluYXRpb249dm9pZCAwLHQuc2hhcmVEZXN0aW5hdGlvbkZyb21KU09OPWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIDA6Y2FzZVwiV0VCX1NIQVJFX0RFU1RJTkFUSU9OX1VOS05PV05cIjpyZXR1cm4gci5XRUJfU0hBUkVfREVTVElOQVRJT05fVU5LTk9XTjtjYXNlIDE6Y2FzZVwiV0VCX1NIQVJFX0FQSVwiOnJldHVybiByLldFQl9TSEFSRV9BUEk7Y2FzZSAyOmNhc2VcIkNPUFlfTElOS1wiOnJldHVybiByLkNPUFlfTElOSztjYXNlIDM6Y2FzZVwiTUVTU0FHRVNcIjpyZXR1cm4gci5NRVNTQUdFUztjYXNlIDQ6Y2FzZVwiRkFDRUJPT0tcIjpyZXR1cm4gci5GQUNFQk9PSztjYXNlIDU6Y2FzZVwiTUVTU0VOR0VSXCI6cmV0dXJuIHIuTUVTU0VOR0VSO2Nhc2UgNjpjYXNlXCJUSUtUT0tcIjpyZXR1cm4gci5USUtUT0s7Y2FzZSA3OmNhc2VcIlRXSVRURVJcIjpyZXR1cm4gci5UV0lUVEVSO2Nhc2UgODpjYXNlXCJXSEFUU0FQUFwiOnJldHVybiByLldIQVRTQVBQO2Nhc2UgOTpjYXNlXCJJTlNUQUdSQU1cIjpyZXR1cm4gci5JTlNUQUdSQU07Y2FzZSAxMDpjYXNlXCJSRURESVRcIjpyZXR1cm4gci5SRURESVQ7Y2FzZSAxMTpjYXNlXCJQSU5URVJFU1RcIjpyZXR1cm4gci5QSU5URVJFU1Q7Y2FzZSAxMjpjYXNlXCJNQUlMXCI6cmV0dXJuIHIuTUFJTDtjYXNlIDEzOmNhc2VcIldFQl9TSEFSRV9UT19TTkFQQ0hBVFwiOnJldHVybiByLldFQl9TSEFSRV9UT19TTkFQQ0hBVDtkZWZhdWx0OnJldHVybiByLlVOUkVDT0dOSVpFRH19LHQuc2hhcmVEZXN0aW5hdGlvblRvSlNPTj1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSByLldFQl9TSEFSRV9ERVNUSU5BVElPTl9VTktOT1dOOnJldHVyblwiV0VCX1NIQVJFX0RFU1RJTkFUSU9OX1VOS05PV05cIjtjYXNlIHIuV0VCX1NIQVJFX0FQSTpyZXR1cm5cIldFQl9TSEFSRV9BUElcIjtjYXNlIHIuQ09QWV9MSU5LOnJldHVyblwiQ09QWV9MSU5LXCI7Y2FzZSByLk1FU1NBR0VTOnJldHVyblwiTUVTU0FHRVNcIjtjYXNlIHIuRkFDRUJPT0s6cmV0dXJuXCJGQUNFQk9PS1wiO2Nhc2Ugci5NRVNTRU5HRVI6cmV0dXJuXCJNRVNTRU5HRVJcIjtjYXNlIHIuVElLVE9LOnJldHVyblwiVElLVE9LXCI7Y2FzZSByLlRXSVRURVI6cmV0dXJuXCJUV0lUVEVSXCI7Y2FzZSByLldIQVRTQVBQOnJldHVyblwiV0hBVFNBUFBcIjtjYXNlIHIuSU5TVEFHUkFNOnJldHVyblwiSU5TVEFHUkFNXCI7Y2FzZSByLlJFRERJVDpyZXR1cm5cIlJFRERJVFwiO2Nhc2Ugci5QSU5URVJFU1Q6cmV0dXJuXCJQSU5URVJFU1RcIjtjYXNlIHIuTUFJTDpyZXR1cm5cIk1BSUxcIjtjYXNlIHIuV0VCX1NIQVJFX1RPX1NOQVBDSEFUOnJldHVyblwiV0VCX1NIQVJFX1RPX1NOQVBDSEFUXCI7Y2FzZSByLlVOUkVDT0dOSVpFRDpkZWZhdWx0OnJldHVyblwiVU5SRUNPR05JWkVEXCJ9fSx0LnNoYXJlU291cmNlRnJvbUpTT049ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UgMDpjYXNlXCJXRUJfU0hBUkVfU0hFRVRcIjpyZXR1cm4gbi5XRUJfU0hBUkVfU0hFRVQ7Y2FzZSAxOmNhc2VcIldFQl9TSEFSRV9CQVJcIjpyZXR1cm4gbi5XRUJfU0hBUkVfQkFSO2RlZmF1bHQ6cmV0dXJuIG4uVU5SRUNPR05JWkVEfX0sdC5zaGFyZVNvdXJjZVRvSlNPTj1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBuLldFQl9TSEFSRV9TSEVFVDpyZXR1cm5cIldFQl9TSEFSRV9TSEVFVFwiO2Nhc2Ugbi5XRUJfU0hBUkVfQkFSOnJldHVyblwiV0VCX1NIQVJFX0JBUlwiO2Nhc2Ugbi5VTlJFQ09HTklaRUQ6ZGVmYXVsdDpyZXR1cm5cIlVOUkVDT0dOSVpFRFwifX0sdC5zaGFyZVN0YXR1c0Zyb21KU09OPWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIDA6Y2FzZVwiVU5LTk9XTlwiOnJldHVybiBpLlVOS05PV047Y2FzZSAxOmNhc2VcIlNVQ0NFU1NcIjpyZXR1cm4gaS5TVUNDRVNTO2Nhc2UgMjpjYXNlXCJGQUlMRURcIjpyZXR1cm4gaS5GQUlMRUQ7Y2FzZSAzOmNhc2VcIkFCT1JURURcIjpyZXR1cm4gaS5BQk9SVEVEO2RlZmF1bHQ6cmV0dXJuIGkuVU5SRUNPR05JWkVEfX0sdC5zaGFyZVN0YXR1c1RvSlNPTj1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBpLlVOS05PV046cmV0dXJuXCJVTktOT1dOXCI7Y2FzZSBpLlNVQ0NFU1M6cmV0dXJuXCJTVUNDRVNTXCI7Y2FzZSBpLkZBSUxFRDpyZXR1cm5cIkZBSUxFRFwiO2Nhc2UgaS5BQk9SVEVEOnJldHVyblwiQUJPUlRFRFwiO2Nhc2UgaS5VTlJFQ09HTklaRUQ6ZGVmYXVsdDpyZXR1cm5cIlVOUkVDT0dOSVpFRFwifX07dmFyIG4scixpO3QucHJvdG9idWZQYWNrYWdlPVwic25hcGNoYXQud2ViLnN0b3JpZXNcIix0LlNoYXJlU291cmNlPW4sZnVuY3Rpb24oZSl7ZVtlLldFQl9TSEFSRV9TSEVFVD0wXT1cIldFQl9TSEFSRV9TSEVFVFwiLGVbZS5XRUJfU0hBUkVfQkFSPTFdPVwiV0VCX1NIQVJFX0JBUlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KG58fCh0LlNoYXJlU291cmNlPW49e30pKSx0LlNoYXJlRGVzdGluYXRpb249cixmdW5jdGlvbihlKXtlW2UuV0VCX1NIQVJFX0RFU1RJTkFUSU9OX1VOS05PV049MF09XCJXRUJfU0hBUkVfREVTVElOQVRJT05fVU5LTk9XTlwiLGVbZS5XRUJfU0hBUkVfQVBJPTFdPVwiV0VCX1NIQVJFX0FQSVwiLGVbZS5DT1BZX0xJTks9Ml09XCJDT1BZX0xJTktcIixlW2UuTUVTU0FHRVM9M109XCJNRVNTQUdFU1wiLGVbZS5GQUNFQk9PSz00XT1cIkZBQ0VCT09LXCIsZVtlLk1FU1NFTkdFUj01XT1cIk1FU1NFTkdFUlwiLGVbZS5USUtUT0s9Nl09XCJUSUtUT0tcIixlW2UuVFdJVFRFUj03XT1cIlRXSVRURVJcIixlW2UuV0hBVFNBUFA9OF09XCJXSEFUU0FQUFwiLGVbZS5JTlNUQUdSQU09OV09XCJJTlNUQUdSQU1cIixlW2UuUkVERElUPTEwXT1cIlJFRERJVFwiLGVbZS5QSU5URVJFU1Q9MTFdPVwiUElOVEVSRVNUXCIsZVtlLk1BSUw9MTJdPVwiTUFJTFwiLGVbZS5XRUJfU0hBUkVfVE9fU05BUENIQVQ9MTNdPVwiV0VCX1NIQVJFX1RPX1NOQVBDSEFUXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0ocnx8KHQuU2hhcmVEZXN0aW5hdGlvbj1yPXt9KSksdC5TaGFyZVN0YXR1cz1pLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOPTBdPVwiVU5LTk9XTlwiLGVbZS5TVUNDRVNTPTFdPVwiU1VDQ0VTU1wiLGVbZS5GQUlMRUQ9Ml09XCJGQUlMRURcIixlW2UuQUJPUlRFRD0zXT1cIkFCT1JURURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShpfHwodC5TaGFyZVN0YXR1cz1pPXt9KSl9LDQ4MDAxOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvPW4oNjcyOTQpO2Z1bmN0aW9uIGEoKXtyZXR1cm4gYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwic3ZnXCIsYSh7d2lkdGg6NDAyLGhlaWdodDozOTUsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0zODguOTYzIDI5Mi42OTRjLTEuNjMzLTUuNDQ2LTkuNTI5LTkuMjU3LTkuNTI5LTkuMjU3LS43MDgtLjQzNi0xLjQxNi0uNzYzLTEuOTYxLTEuMDM1LTEzLjEyMy02LjMxNy0yNC43MjItMTMuOTQtMzQuNDY5LTIyLjU5OC03Ljg0MS02Ljk3MS0xNC41OTQtMTQuNTk0LTE5Ljk4NS0yMi43NjItNi41ODktOS45MTEtOS42OTItMTguMjQyLTEwLjk5OS0yMi43MDgtLjc2My0yLjk0LS41OTktNC4wODQgMC01LjYwOC41NDQtMS4yNTMgMi4wMTQtMi41MDUgMi43NzctMy4wNSA0LjQxMS0zLjEwNCAxMS41NDQtNy43MzIgMTUuOS0xMC41NjQgMy43NTgtMi40NSA3LjAyNS00LjU3NCA4LjkzMS01Ljg4MSA2LjE1My00LjMwMiAxMC4zNDYtOC42NTggMTIuODUxLTEzLjM5NiAzLjIxMy02LjA5OCAzLjU5NC0xMi44NTEgMS4wODktMTkuNDQtMy4zNzYtOC45My0xMS43MDctMTQuMjY3LTIyLjI3Mi0xNC4yNjctMi4zNDEgMC00Ljc5Mi4yNzMtNy4xODcuNzYzLTYuMDQ1IDEuMzA3LTExLjgxNyAzLjQ4NS0xNi42MDkgNS4zMzYtLjMyNy4xNjQtLjcwOC0uMTA5LS43MDgtLjQ5LjQ5LTExLjkyNSAxLjA4OS0yNy45MzUtLjIxOC00My4xODItMS4xOTgtMTMuNzc3LTQuMDI5LTI1LjM3Ni04LjY1OC0zNS41MDQtNC42ODMtMTAuMTgzLTEwLjY3My0xNy42OTgtMTUuNDY1LTIzLjA4OS00LjUyLTUuMTczLTEyLjQxNS0xMi43OTYtMjQuMzk1LTE5LjY1Ny0xNi44MjctOS42MzktMzUuOTk0LTE0LjU0LTU2Ljk1OS0xNC41NC0yMC45MTEgMC00MC4wMjQgNC45MDEtNTYuOTA1IDE0LjQ4NS0xMi42MzMgNy4yNDItMjAuNzQ3IDE1LjQxLTI0LjQ1IDE5LjY1OC00LjczNyA1LjQ0NS0xMC43ODIgMTIuOTYtMTUuNDY1IDIzLjA4OS00LjYyOCAxMC4xMjgtNy40NiAyMS43MjctOC42NTggMzUuNTA0LTEuMzA3IDE1LjI0Ny0uNzYyIDMwLjAwNC0uMjE4IDQzLjE4MiAwIC4zODEtLjM4LjY1My0uNzA3LjQ5LTQuNzkyLTEuODUyLTEwLjU2NS00LjAzLTE2LjYwOS01LjMzNy0yLjM5Ni0uNTQ0LTQuNzkyLS43NjItNy4xODgtLjc2Mi0xMC41NjQgMC0xOC44OTYgNS4zMzYtMjIuMjcyIDE0LjI2Ny0yLjUwNSA2LjY0My0yLjEyMyAxMy4zNDEgMS4wOSAxOS40NCAyLjUwNCA0LjczNyA2LjY5NyA5LjA5NCAxMi44NSAxMy4zOTYgMS45MDcgMS4zMDcgNS4xNzQgMy40MyA4LjkzMSA1Ljg4MSA0LjMwMiAyLjc3NyAxMS4yMTggNy4yNDIgMTUuNjI4IDEwLjQuNTQ1LjM4MiAyLjM5NiAxLjc5NyAyLjk5NSAzLjI2OC42NTQgMS41NzkuNzYzIDIuNzIyLS4wNTQgNS44MjYtMS4zNjEgNC41Mi00LjQ2NSAxMi43NDMtMTAuOTQ1IDIyLjQ5LTUuMzkxIDguMTY4LTEyLjE0NCAxNS43OTEtMTkuOTg1IDIyLjc2Mi05LjgwMiA4LjY1OC0yMS40IDE2LjI4MS0zNC40NyAyMi41OThhMjEuNjQgMjEuNjQgMCAwIDAtMi4xNzggMS4xNDRjLS44MTYuNDktNy44NCAzLjk3NS05LjMxMSA5LjE0OC0yLjE3OCA3LjYyMyAzLjU5NCAxNC43NTcgOS41ODQgMTguNjIzIDkuNjkyIDYuMjYyIDIxLjUxIDkuNjM4IDI4LjM3IDExLjQzNSAxLjkwNi40OTEgMy42NDkuOTgxIDUuMjI4IDEuNDcxLjk4LjMyNiAzLjQzIDEuMjUyIDQuNTIgMi42MTQgMS4zMDYgMS42ODggMS40NyAzLjgxMSAxLjk2IDYuMjA3Ljc2MiA0LjAzIDIuNDUgOC45ODUgNy40MDYgMTIuNDE2IDUuNDQ1IDMuNzU3IDEyLjQxNSA0LjAyOSAyMS4xODIgNC4zNTYgOS4yMDMuMzI3IDIwLjYzOC44MTcgMzMuNzA3IDUuMTE5IDYuMDQ1IDIuMDE1IDExLjU0NSA1LjM5MSAxNy45MTYgOS4zMTEgMTMuMjg3IDguMTY5IDI5Ljg0MSAxOC4zNTEgNTguMTAyIDE4LjM1MSAyOC4yNjIgMCA0NC45MjUtMTAuMjM3IDU4LjMyMS0xOC40MDUgNi4zMTYtMy44NjYgMTEuNzYyLTcuMjQyIDE3LjY5Ny05LjIwMyAxMy4wNjktNC4zMDIgMjQuNTA0LTQuNzM3IDMzLjcwNy01LjExOCA4Ljc2Ny0uMzI3IDE1LjczNy0uNTk5IDIxLjE4My00LjM1NyA1LjMzNi0zLjY0OCA2Ljg2MS05LjE0OCA3LjU2OS0xMy4yODcuMzgxLTIuMDE0LjY1My0zLjg2NiAxLjc5Ny01LjM5Ljk4LTEuMzA3IDMuMjY3LTIuMTc5IDQuMzU2LTIuNTYgMS42MzQtLjQ5IDMuMzc2LS45OCA1LjM5MS0xLjUyNSA2Ljg2MS0xLjg1MSAxNS40MTEtMy45NzUgMjUuODY2LTkuOTEgMTIuMzYxLTcuMDc5IDEzLjIzMi0xNS44NDYgMTEuOTI1LTIwLjE0OFpcIixmaWxsOlwiI2ZmZlwifSkpLGl8fChpPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zODUuNjk2IDI3My40NjhjNi4wNDQgMy4zNzYgMTEuMzI2IDcuNDA2IDE0LjEwMyAxNC45NzUgMy4xNTkgOC40NDEgMS4yNTMgMTguMDc5LTYuMzcxIDI2LjI0N2wtLjEwOS4xMDljLTIuNzIyIDMuMTA0LTYuMjYyIDUuODI3LTEwLjcyNyA4LjI3Ny0xMC4xMjggNS42MDktMTguNjc4IDguMjc3LTI1LjM3NiAxMC4xMjgtMS4yNTIuMzgyLTMuNjQ4IDEuMjUzLTQuNzM3IDIuMTc5LTEuNTI0IDEuMzA2LTIuMTYgMi45ODUtMi45NTIgNS4wNzctLjU5NSAxLjU3Mi0xLjI3OSAzLjM3Ny0yLjQ5MyA1LjQzMi0yLjYxNCA0LjQ2NS01LjgyNyA3LjQwNi04LjQ0MSA5LjIwMy04LjIyOSA1LjY4NS0xNy40MjggNi4wNC0yNy4yMjEgNi40MTlsLS4xNjkuMDA3Yy04LjkzMS4zMjYtMTkuMDA1LjcwNy0zMC40OTUgNC41MTktNC40MjQgMS40NTgtOS4wOTcgNC4zMDktMTQuNDk1IDcuNjAxbC0uNzUyLjQ1OGMtMTMuODMxIDguNDk1LTMyLjgzNSAyMC4xNDgtNjQuNDE5IDIwLjE0OC0zMS41MzkgMC01MC4zNzItMTEuNTY2LTY0LjE5OC0yMC4wNThsLS4wNTgtLjAzNWMtNS43MTctMy41NC0xMC42NzMtNi41ODktMTUuNDY1LTguMTY4LTExLjU0NC0zLjgxMi0yMS42MTgtNC4xOTMtMzAuNDk0LTQuNTJsLS4xNy0uMDA3Yy05Ljc5Mi0uMzc4LTE4Ljk5LS43MzQtMjcuMjItNi40MTktMi4yODctMS41MjQtNS4wMS0zLjk3NS03LjQwNi03LjUxNC0xLjk0OS0yLjgwMy0yLjgzNy01LjE3NC0zLjU4My03LjE2NS0uNzc2LTIuMDctMS4zOTgtMy43MjgtMi44OTctNS4wMzMtMS4xOTgtMS4wMzUtMy45Mi0xLjkwNi01LjA2NC0yLjIzMy02LjY0NC0xLjg1MS0xNS4xMzgtNC41MTktMjUuMDUtMTAuMDE5LTQuMTkyLTIuMzQyLTcuNTY4LTQuODQ2LTEwLjIzNi03LjczMy04LjExNC04LjMzMS0xMC4yMzgtMTguMTg3LTcuMDI1LTI2LjkgMy42MjYtOS44MDggMTEuNDU3LTEzLjc0MyAxOS42NjctMTcuODY5YTIwOS44MjIgMjA5LjgyMiAwIDAgMCA0LjIzOC0yLjE3YzE4LjE4OC05Ljg1NiAzMi40NTUtMjIuMjE3IDQyLjQyLTM2LjgxMSAzLjMyMi00LjkwMSA1LjcxOC05LjM2NiA3LjM1MS0xMy4wMTQuOTI2LTIuNjY5LjkyNi00LjA4NC4yNzMtNS40NDYtLjU0NS0xLjE0My0yLjIzMy0yLjM5Ni0yLjcyMy0yLjcyMy0yLjQ5LTEuNjU5LTUuMDUtMy4zMTktNy4wOS00LjY0MmwtMS40MDUtLjkxMmMtNC4wMy0yLjYxNC03LjE4OC00LjY4My05LjI1Ny02LjA5OS03LjczMy01LjM5MS0xMy4xMjMtMTEuMTA4LTE2LjUtMTcuNTM0LTQuNzM3LTkuMDM5LTUuMzM2LTE5LjM4Ni0xLjY4OC0yOS4wNzggNS4xMTktMTMuNDUxIDE3Ljg2MS0yMS44MzYgMzMuMjcyLTIxLjgzNiAzLjIxMiAwIDYuNDguMzI2IDkuNjkzIDEuMDM0LjQwOC4xMDkuODMuMjA0IDEuMjUyLjMuNDIyLjA5NS44NDQuMTkgMS4yNTIuMjk5LS4xNjMtOS4xNDguMDU1LTE4Ljg5NS44NzItMjguNDc5IDIuODg2LTMzLjU5OCAxNC42NDgtNTEuMjQyIDI2Ljk1NC02NS4yOSA1LjExOS01LjgyNyAxMy45OTUtMTQuNDMxIDI3LjQ0NS0yMi4xMUMxNTYuODggNS4zOTIgMTc3Ljk1NCAwIDIwMC45MzMgMGMyMy4wMzQgMCA0NC4xNjMgNS4zOTEgNjIuNzg2IDE2LjA2NCAxMy4zNDEgNy42NzggMjIuMjcyIDE2LjIyNyAyNy4zOSAyMi4xMDggMTIuMzA3IDE0LjA1IDI0LjA2OSAzMS42MzggMjYuOTU1IDY1LjI5MS44MTcgOS41MjkgMS4wMzUgMTkuMzMxLjg3MSAyOC40NzkuODE3LS4yMTggMS42MzQtLjQzNSAyLjUwNS0uNTk5IDMuMjY3LS42NTMgNi40OC0xLjAzNCA5LjY5My0xLjAzNCAxNS40NjUgMCAyOC4xNTMgOC4zODUgMzMuMjcxIDIxLjgzNiAzLjY0OSA5Ljc0NyAzLjA1IDIwLjAzOS0xLjY4OCAyOS4wNzgtMy4zNzYgNi40MjYtOC43NjcgMTIuMTQzLTE2LjQ5OSAxNy41MzQtMS43OTUgMS4yNjItNC41NDIgMy4wNDItNy45NjkgNS4yNjRsLTEuMjg4LjgzNWMtLjkzMi42MTMtMi4wNjIgMS4zNS0zLjI5NiAyLjE1NC0xLjcyNSAxLjEyNC0zLjY1MyAyLjM4LTUuNTI2IDMuNjE4LS42NTQuNDktMS45MDYgMS41MjUtMi4zOTYgMi41MDUtLjU5OSAxLjI1My0uNjUzIDIuNjY4LjIxOCA1LjE3M2E4OC4yODQgODguMjg0IDAgMCAwIDcuNTE0IDEzLjI4N2MxMC4xODMgMTQuOTIxIDI0LjgzMSAyNy40OTkgNDMuNjczIDM3LjQ2NCAxLjg1MS45MjYgMy43MDIgMS44NTIgNS40OTkgMi43NzguODcyLjQzNSAxLjkwNi45OCAzLjA1IDEuNjMzWm0tMzcuMzY2IDM4LjkxOWM2LjQ1MS0xLjcyNiAxNC4wODYtMy43NjggMjMuNDI2LTguOTE0IDEwLjg5MS02LjA0NSA0LjczOC05Ljc0OC45ODEtMTEuNDktNjEuOTY5LTMwLjAwNC03MS44OC03Ni4zNDUtNzIuMzE1LTc5LjgzbC0uMDU4LS40NzhjLS40NzEtMy45MTYtLjg1NC03LjA5MyAzLjU0My0xMS4xNzUgMi45NzctMi43NTcgMTIuOTAyLTkuMTg2IDIwLjcxMy0xNC4yNDYgMy43Ni0yLjQzNiA3LjAzMS00LjU1NCA4LjgwMS01Ljc5MyA5LjAzOS02LjI2MiAxMy4wMTQtMTIuNTc5IDEwLjA3NC0yMC4zMTEtMi4wMTUtNS4zMzctNy4wMjUtNy4zNTItMTIuMzA3LTcuMzUyLTEuNjM0IDAtMy4yNjcuMjE4LTQuOTAxLjU0NS01Ljg5OCAxLjI2NC0xMS43MDEgMy41MzEtMTYuNjAzIDUuNDQ2LTMuMzM0IDEuMzAzLTYuMjUyIDIuNDQzLTguNSAyLjk5NC0uNzYyLjE2NC0xLjQ3LjI3Mi0yLjA2OS4yNzItMi45NDEgMC00LjAzLTEuMzA2LTMuODEyLTQuOWwuMDYxLS45MjljLjcyNi0xMS4wODMgMi4wNy0zMS41ODUuNDI5LTUwLjc0OC0yLjM0Mi0yNy4xMTgtMTEuMTA5LTQwLjU2OS0yMS41MDktNTIuNDk0LTQuOTU2LTUuNzE4LTI4LjMxNy0zMC40OTQtNzMuMjk2LTMwLjQ5NC00NC44NyAwLTY4LjI4NSAyNC43NzYtNzMuMjk1IDMwLjQ5NC0xMC40IDExLjg3LTE5LjE2OCAyNS4zNzYtMjEuNTA5IDUyLjQ5NC0xLjU3IDE4LjMzMy0uMzYxIDM3Ljg5Mi4zNDIgNDkuMjU2bC4xNDggMi40MjFjLjIxOCAzLjQzLS44NzEgNC45LTMuODEyIDQuOS0uNjUzIDAtMS4zMDctLjEwOC0yLjA2OS0uMjcyLTIuMzEzLS41NDQtNS4zMzQtMS43MjEtOC43ODktMy4wNjctNC44NC0xLjg4NS0xMC41My00LjEwMi0xNi4zMTQtNS4zNzMtMS41OC0uMzI3LTMuMjY4LS41NDUtNC45MDEtLjU0NS01LjI4MiAwLTEwLjI5MiAyLjAxNS0xMi4zMDcgNy4zNTItMi45NCA3LjczMiAxLjAzNSAxMy45OTQgMTAuMDc0IDIwLjMxMSAxLjY0OCAxLjEzNyA0LjU5NiAzLjA0NiA4LjAyOSA1LjI2OSA3LjkxNSA1LjEyNiAxOC40MDkgMTEuOTIxIDIxLjQ4NSAxNC43NyA0LjQ5MiA0LjA2OSA0LjA2MSA3LjMxNyAzLjUzNCAxMS4yODhsLS4wNDkuMzY1Yy0uNDM1IDMuNDg1LTEwLjI5MiA0OS44MjYtNzIuMzE1IDc5LjgzLTMuNjQ4IDEuNzQyLTkuODAxIDUuNDQ1IDEuMDkgMTEuNDkgOS4zNTcgNS4xODUgMTcuMDE5IDcuMjIzIDIzLjQ4NCA4Ljk0MiA1LjM0OCAxLjQyMyA5Ljg3NyAyLjYyNyAxMy44NyA1LjIxNiA0LjA2NiAyLjYyMiA0LjY0MSA2Ljg4NSA1LjE3NSAxMC44NDIuNDUzIDMuMzU2Ljg3NiA2LjQ5MiAzLjM3NSA4LjIxNyAyLjkwNCAyLjAwNiA4LjI4NSAyLjIxMiAxNS41MzUgMi40ODggOS40NzMuMzYxIDIyLjEzNS44NDQgMzYuNjMyIDUuNjI1IDcuMjE5IDIuMzg4IDEzLjQ5NyA2LjI0NSAyMC4xMDkgMTAuMzA4IDEyLjk5IDcuOTggMjcuMjc0IDE2Ljc1NiA1Mi41MzMgMTYuNzU2IDI1LjIyNSAwIDM5LjY1Ny04Ljg1IDUyLjY4OC0xNi44NDEgNi42MDQtNC4wNSAxMi44NDctNy44NzggMTkuOTU0LTEwLjIyMyAxNC40OTctNC43ODEgMjcuMTU5LTUuMjY0IDM2LjYzMS01LjYyNSA3LjI1MS0uMjc2IDEyLjYzMi0uNDgyIDE1LjUzNi0yLjQ4OCAyLjUzMS0xLjc1NSAyLjk1MS00LjkwNCAzLjQtOC4yNjUuNTI3LTMuOTQzIDEuMDkyLTguMTc4IDUuMTQ5LTEwLjc5NCA0LjAyNy0yLjU5NSA4LjU3LTMuODEgMTMuOTI5LTUuMjQ0WlwiLGZpbGw6XCIjMDAwXCJ9KSkpfX0sMzIxNzE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt3aWR0aDo5MCxoZWlnaHQ6OTAsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7Y2xpcFJ1bGU6XCJldmVub2RkXCIsc3Ryb2tlV2lkdGg6MTIsc3Ryb2tlOlwiIzAwMFwiLGQ6XCJNNDUgNmMyMS41NCAwIDM5IDE3LjQ2IDM5IDM5UzY2LjU0IDg0IDQ1IDg0IDYgNjYuNTQgNiA0NSAyMy40NiA2IDQ1IDZaXCJ9KSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtzdHJva2U6XCIjMDAwXCIsZmlsbDpcIiMwMDBcIixkOlwiTTI0LjY5NSA0Ni45MzVoNDAuNjFjLjM2MSAwIC43Mi4wNSAxLjA2Ny4xNDUgMS45NTMuNTQgMy4wNTkgMi40MjcgMi40NyA0LjIxNmwtLjI1My43MjFjLS4xNzYuNDc3LS4zNy45NDgtLjU3OSAxLjQxLTEuMjYyIDIuNzg3LTMuMTEgNS4yOTUtNS40MDQgNy4zOTVDNTguMSA2NC45NDggNTEuODc2IDY3LjUgNDUgNjcuNWMtNi44NzUgMC0xMy4xLTIuNTUyLTE3LjYwNi02LjY3OC0yLjI5NC0yLjEtNC4xNDItNC42MDgtNS40MDQtNy4zOTVhMjEuMzk3IDIxLjM5NyAwIDAgMS0uODMyLTIuMTMybC0uMDg3LS4zMmEzLjExMSAzLjExMSAwIDAgMS0uMDctLjY1N2MwLTEuODY4IDEuNjU0LTMuMzgzIDMuNjk1LTMuMzgzWk01Mi44NjMgMzYuM2MwLTIuNjUxIDIuMzQ3LTQuOCA1LjI0Mi00LjhzNS4yNDIgMi4xNDkgNS4yNDIgNC44LTIuMzQ3IDQuOC01LjI0MiA0LjgtNS4yNDItMi4xNDktNS4yNDItNC44Wk0yNi42NTIgMzYuM2MwLTIuNjUxIDIuMzQ3LTQuOCA1LjI0Mi00LjhzNS4yNDIgMi4xNDkgNS4yNDIgNC44LTIuMzQ3IDQuOC01LjI0MiA0LjgtNS4yNDItMi4xNDktNS4yNDItNC44WlwifSkpKX19LDE1MzE4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjI0LGhlaWdodDoyNCxmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTE2IDIxLjAwNmMtMi4xNTUgMC0zLjkwOC0xLjc0My0zLjkwOC0zLjg4NnMxLjc1My0zLjg4NiAzLjkwOC0zLjg4NmMyLjE1NSAwIDMuOTA4IDEuNzQzIDMuOTA4IDMuODg2UzE4LjE1NSAyMS4wMDYgMTYgMjEuMDA2Wk05LjUzNCAxNy4xMmMwLTMuNTQ1IDIuOS02LjQzIDYuNDY2LTYuNDMgMy41NjYgMCA2LjQ2NiAyLjg4NSA2LjQ2NiA2LjQzIDAgMy41NDQtMi45IDYuNDI5LTYuNDY2IDYuNDI5LTMuNTY2IDAtNi40NjYtMi44ODUtNi40NjYtNi40MjlaTTI2LjA2IDguN2MtLjk3LS40MDgtMi4wNzktLjc1My0zLjMwNS0xLjA0MWE4LjQzNyA4LjQzNyAwIDAgMC0uMzItLjk3NyAyLjM0MSAyLjM0MSAwIDAgMC0xLjI4NC0xLjI5NWMtLjk2NC0uNDA0LTIuNjQxLS44ODctNS4xNS0uODg3LTIuNTEgMC00LjE4Ny40ODMtNS4xNTIuODg3LS41OTQuMjUtMS4wNS43MS0xLjI4NCAxLjI5NS0uMTIyLjMwNi0uMjMuNjM0LS4zMy45OS0xLjIxNi4yNzUtMi4zMjUuNjItMy4yOTUgMS4wMjdhNC4wNzMgNC4wNzMgMCAwIDAtMi4yMzIgMi4yNUMzLjE1OCAxMi4zMjYgMi41IDE0LjU4IDIuNSAxNy40ODZjMCAyLjk5Ny42OTUgNS4zMDEgMS4yNzYgNi43MDZhNC4xMTYgNC4xMTYgMCAwIDAgMi4wNjggMi4xN0M3LjQ1NCAyNy4xMSAxMC41MjQgMjggMTYuMDAxIDI4YzUuNDc2IDAgOC41NDQtLjg5IDEwLjE1NS0xLjYzN2E0LjExNyA0LjExNyAwIDAgMCAyLjA2OC0yLjE3Yy41ODItMS40MDUgMS4yNzYtMy43MDkgMS4yNzYtNi43MDYgMC0yLjkwNi0uNjU3LTUuMTYtMS4yMDgtNi41MzhhNC4wNjggNC4wNjggMCAwIDAtMi4yMzItMi4yNVpcIixmaWxsOlwiIzJDMzEzN1wifSkpKX19LDg0MTEzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjE2LGhlaWdodDoxNixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTE2IDIxLjAwNmMtMi4xNTUgMC0zLjkwOC0xLjc0My0zLjkwOC0zLjg4NnMxLjc1My0zLjg4NiAzLjkwOC0zLjg4NmMyLjE1NSAwIDMuOTA4IDEuNzQzIDMuOTA4IDMuODg2UzE4LjE1NSAyMS4wMDYgMTYgMjEuMDA2Wk05LjUzNCAxNy4xMmMwLTMuNTQ1IDIuOS02LjQzIDYuNDY2LTYuNDMgMy41NjYgMCA2LjQ2NiAyLjg4NSA2LjQ2NiA2LjQzIDAgMy41NDQtMi45IDYuNDI5LTYuNDY2IDYuNDI5LTMuNTY2IDAtNi40NjYtMi44ODUtNi40NjYtNi40MjlaTTI2LjA2IDguN2MtLjk3LS40MDgtMi4wNzktLjc1My0zLjMwNS0xLjA0MWE4LjQzNyA4LjQzNyAwIDAgMC0uMzItLjk3NyAyLjM0MSAyLjM0MSAwIDAgMC0xLjI4NC0xLjI5NWMtLjk2NC0uNDA0LTIuNjQxLS44ODctNS4xNS0uODg3LTIuNTEgMC00LjE4Ny40ODMtNS4xNTIuODg3LS41OTQuMjUtMS4wNS43MS0xLjI4NCAxLjI5NS0uMTIyLjMwNi0uMjMuNjM0LS4zMy45OS0xLjIxNi4yNzUtMi4zMjUuNjItMy4yOTUgMS4wMjdhNC4wNzMgNC4wNzMgMCAwIDAtMi4yMzIgMi4yNUMzLjE1OCAxMi4zMjYgMi41IDE0LjU4IDIuNSAxNy40ODZjMCAyLjk5Ny42OTUgNS4zMDEgMS4yNzYgNi43MDZhNC4xMTYgNC4xMTYgMCAwIDAgMi4wNjggMi4xN0M3LjQ1NCAyNy4xMSAxMC41MjQgMjggMTYuMDAxIDI4YzUuNDc2IDAgOC41NDQtLjg5IDEwLjE1NS0xLjYzN2E0LjExNyA0LjExNyAwIDAgMCAyLjA2OC0yLjE3Yy41ODItMS40MDUgMS4yNzYtMy43MDkgMS4yNzYtNi43MDYgMC0yLjkwNi0uNjU3LTUuMTYtMS4yMDgtNi41MzhhNC4wNjggNC4wNjggMCAwIDAtMi4yMzItMi4yNVpcIixmaWxsOlwiIzJDMzEzN1wifSkpKX19LDkzMTk0OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjEyLGhlaWdodDoxMixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTE2IDIxLjAwNmMtMi4xNTUgMC0zLjkwOC0xLjc0My0zLjkwOC0zLjg4NnMxLjc1My0zLjg4NiAzLjkwOC0zLjg4NmMyLjE1NSAwIDMuOTA4IDEuNzQzIDMuOTA4IDMuODg2UzE4LjE1NSAyMS4wMDYgMTYgMjEuMDA2Wk05LjUzNCAxNy4xMmMwLTMuNTQ1IDIuOS02LjQzIDYuNDY2LTYuNDMgMy41NjYgMCA2LjQ2NiAyLjg4NSA2LjQ2NiA2LjQzIDAgMy41NDQtMi45IDYuNDI5LTYuNDY2IDYuNDI5LTMuNTY2IDAtNi40NjYtMi44ODUtNi40NjYtNi40MjlaTTI2LjA2IDguN2MtLjk3LS40MDgtMi4wNzktLjc1My0zLjMwNS0xLjA0MWE4LjQzNyA4LjQzNyAwIDAgMC0uMzItLjk3NyAyLjM0MSAyLjM0MSAwIDAgMC0xLjI4NC0xLjI5NWMtLjk2NC0uNDA0LTIuNjQxLS44ODctNS4xNS0uODg3LTIuNTEgMC00LjE4Ny40ODMtNS4xNTIuODg3LS41OTQuMjUtMS4wNS43MS0xLjI4NCAxLjI5NS0uMTIyLjMwNi0uMjMuNjM0LS4zMy45OS0xLjIxNi4yNzUtMi4zMjUuNjItMy4yOTUgMS4wMjdhNC4wNzMgNC4wNzMgMCAwIDAtMi4yMzIgMi4yNUMzLjE1OCAxMi4zMjYgMi41IDE0LjU4IDIuNSAxNy40ODZjMCAyLjk5Ny42OTUgNS4zMDEgMS4yNzYgNi43MDZhNC4xMTYgNC4xMTYgMCAwIDAgMi4wNjggMi4xN0M3LjQ1NCAyNy4xMSAxMC41MjQgMjggMTYuMDAxIDI4YzUuNDc2IDAgOC41NDQtLjg5IDEwLjE1NS0xLjYzN2E0LjExNyA0LjExNyAwIDAgMCAyLjA2OC0yLjE3Yy41ODItMS40MDUgMS4yNzYtMy43MDkgMS4yNzYtNi43MDYgMC0yLjkwNi0uNjU3LTUuMTYtMS4yMDgtNi41MzhhNC4wNjggNC4wNjggMCAwIDAtMi4yMzItMi4yNVpcIixmaWxsOlwiIzJDMzEzN1wifSkpKX19LDEzNzUwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvLGE9big2NzI5NCk7ZnVuY3Rpb24gcygpe3JldHVybiBzPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0scy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixzKHt3aWR0aDozNSxoZWlnaHQ6MzAsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWEuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk03LjU3IDUuNUE3LjA1OSA3LjA1OSAwIDAgMCA3LjY2MiA4aC0uODI4QzUuMTcxIDggNCA5LjI2OCA0IDEwLjYxOXYxMC4yMzdjMCAxLjM1IDEuMTcgMi42MTggMi44MzMgMi42MThoMTAuMTEybC42MzIuNDI1IDIuNzU2IDEuODUyVjEzLjVoMi41VjI4LjQ3NmMwIC41NjYtLjQ3NyAxLjAyNC0xLjA2NiAxLjAyNC0uMjIgMC0uNDMzLS4wNjUtLjYxMi0uMTg1bC00Ljk3Mi0zLjM0aC05LjM1Yy0yLjk0NSAwLTUuMzMzLTIuMjkyLTUuMzMzLTUuMTJWMTAuNjJDMS41IDcuNzkyIDMuODg4IDUuNSA2LjgzMyA1LjVoLjczOFpcIixmaWxsOlwiIzEyMTMxNFwifSkpLGl8fChpPWEuY3JlYXRlRWxlbWVudChcInJlY3RcIix7eDo4LjUseTouNSx3aWR0aDoyNixoZWlnaHQ6MTIscng6NixmaWxsOlwiIzBGQURGRlwifSkpLG98fChvPWEuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0xMi41MDkgOS41aDEuNDRWNS45MDhMMTYuMDM3IDkuNWgxLjU4NFYzLjc4aC0xLjQzMnYzLjIyNEwxNC4zNTcgMy43OGgtMS44NDhWOS41Wm02LjIxOSAwaDQuMDhWOC4yMzZIMjAuMzZ2LTEuMDRoMS44NDhWNi4wMjhIMjAuMzZ2LS45ODRoMi4zMlYzLjc4aC0zLjk1MlY5LjVabTUuNzg2IDBoMS42bC44ODgtMy42MzIuODggMy42MzJoMS43MTJsMS4zMzYtNS43MmgtMS41MmwtLjc3NiAzLjYtLjgzMi0zLjZoLTEuNDU2bC0uNzY4IDMuNTY4LS43MzYtMy41NjhoLTEuNjU2bDEuMzI4IDUuNzJaXCIsZmlsbDpcIiNmZmZcIn0pKSl9fSwxOTU0NzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0yMCA3IDkgMThsLTUtNVwiLHN0cm9rZTpcIiMxMjEzMTRcIixzdHJva2VXaWR0aDoyLHN0cm9rZU1pdGVybGltaXQ6MTB9KSkpfX0sMjU0NTI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTMuMzMzIDQuNjY3IDYgMTIgMi42NjcgOC42NjdcIixzdHJva2U6XCIjMTIxMzE0XCIsc3Ryb2tlV2lkdGg6MS41LHN0cm9rZU1pdGVybGltaXQ6MTB9KSkpfX0sMjExMzU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJtNC41IDguMjA0IDUuMTAyLTUuMTAyLjc5Ni43OTZMNC41IDkuNzk1IDEuNjAyIDYuODk4bC43OTYtLjc5Nkw0LjUgOC4yMDRaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSl9fSw1MTg0NjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbyxhPW4oNjcyOTQpO2Z1bmN0aW9uIHMoKXtyZXR1cm4gcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwic3ZnXCIscyh7dmlld0JveDpcIjAgMCA4MCA4MFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1hLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMCA0MEMwIDE3LjkwOSAxNy45MDkgMCA0MCAwczQwIDE3LjkwOSA0MCA0MC0xNy45MDkgNDAtNDAgNDBTMCA2Mi4wOTEgMCA0MFpcIixmaWxsOlwiI0I5QzBDN1wifSkpLGl8fChpPWEuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk00OS4yNjQgNDIuMTkyYTIgMiAwIDAgMSAwLTIuODI4bDIuMTItMi4xMjFhNiA2IDAgMCAwLTguNDg0LTguNDg2bC0yLjEyMiAyLjEyMmEyIDIgMCAxIDEtMi44MjgtMi44MjlsMi4xMjEtMi4xMjFjMy45MDUtMy45MDUgMTAuMjM3LTMuOTA1IDE0LjE0MiAwIDMuOTA1IDMuOTA1IDMuOTA1IDEwLjIzNyAwIDE0LjE0MmwtMi4xMjEgMi4xMjFhMiAyIDAgMCAxLTIuODI4IDBaTTQwLjA3MSA0OC41NTZhMiAyIDAgMCAxIDIuODI5IDIuODI5bC0yLjgyOSAyLjgyOGMtMy45MDUgMy45MDUtMTAuMjM3IDMuOTA1LTE0LjE0MiAwLTMuOTA1LTMuOTA1LTMuOTA1LTEwLjIzNyAwLTE0LjE0MmwyLjgyOC0yLjgyOGEyIDIgMCAwIDEgMi44MjkgMi44MjhMMjguNzU3IDQyLjlhNiA2IDAgMSAwIDguNDg2IDguNDg1bDIuODI4LTIuODI5WlwiLGZpbGw6XCIjZmZmXCJ9KSksb3x8KG89YS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTQ2LjQzNSAzMy43MDdhMiAyIDAgMCAwLTIuODI5IDBsLTkuOSA5LjlhMiAyIDAgMCAwIDIuODMgMi44MjhsOS44OTktOS45YTIgMiAwIDAgMCAwLTIuODI4WlwiLGZpbGw6XCIjZmZmXCJ9KSkpfX0sMzAwNDY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MjQsaGVpZ2h0OjI0LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTkuMDcxIDE5LjA3MWMzLjkwNS0zLjkwNSAzLjkwNS0xMC4yMzcgMC0xNC4xNDItMy45MDUtMy45MDUtMTAuMjM3LTMuOTA1LTE0LjE0MiAwLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MiAzLjkwNSAzLjkwNSAxMC4yMzcgMy45MDUgMTQuMTQyIDBaTTguMTExIDguMTExYTEgMSAwIDAgMSAxLjQxNCAwTDEyIDEwLjU4NmwyLjQ3NS0yLjQ3NWExIDEgMCAxIDEgMS40MTQgMS40MTRMMTMuNDE0IDEybDIuNDc1IDIuNDc1YTEgMSAwIDAgMS0xLjQxNCAxLjQxNEwxMiAxMy40MTQgOS41MjUgMTUuODlhMSAxIDAgMCAxLTEuNDE0LTEuNDE0TDEwLjU4NiAxMiA4LjExIDkuNTI1YTEgMSAwIDAgMSAwLTEuNDE0WlwiLGZpbGw6XCIjMkMzMTM3XCJ9KSkpfX0sMzUyODY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI01lZGl1bV9zdmdfX2EpXCJ9LG8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zLjI4NiAxMi43MTRhNi42NjcgNi42NjcgMCAxIDAgOS40MjgtOS40MjggNi42NjcgNi42NjcgMCAwIDAtOS40MjggOS40MjhabTcuMzY2LTcuMzY2YS43NS43NSAwIDAgMSAwIDEuMDYxTDkuMDYgOGwxLjU5IDEuNTkxYS43NS43NSAwIDEgMS0xLjA2IDEuMDZMOCA5LjA2MmwtMS41OTEgMS41OWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDEuNTktMS41OS0xLjU5LTEuNTkyYS43NS43NSAwIDAgMSAxLjA2LTEuMDZMOCA2LjkzOGwxLjU5MS0xLjU5YS43NS43NSAwIDAgMSAxLjA2IDBaXCIsZmlsbDpcIiMyQzMxMzdcIn0pKSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLG51bGwsby5jcmVhdGVFbGVtZW50KFwiY2xpcFBhdGhcIix7aWQ6XCJNZWRpdW1fc3ZnX19hXCJ9LG8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbDpcIiNmZmZcIixkOlwiTTAgMGgxNnYxNkgwelwifSkpKSkpfX0sNTUzNzQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt3aWR0aDoxMixoZWlnaHQ6MTIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI1NtYWxsX3N2Z19fYSlcIn0sby5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTIuNDY0IDkuNTM2YTUgNSAwIDEgMCA3LjA3Mi03LjA3MiA1IDUgMCAwIDAtNy4wNzIgNy4wNzJabTUuNDgtNS40OGEuNS41IDAgMCAxIDAgLjcwN0w2LjcwOCA2bDEuMjM4IDEuMjM3YS41LjUgMCAxIDEtLjcwOC43MDhMNiA2LjcwNyA0Ljc2MyA3Ljk0NWEuNS41IDAgMSAxLS43MDgtLjcwOEw1LjI5MyA2IDQuMDU1IDQuNzYzYS41LjUgMCAxIDEgLjcwOC0uNzA4TDYgNS4yOTNsMS4yMzctMS4yMzhhLjUuNSAwIDAgMSAuNzA4IDBaXCIsZmlsbDpcIiMyQzMxMzdcIn0pKSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLG51bGwsby5jcmVhdGVFbGVtZW50KFwiY2xpcFBhdGhcIix7aWQ6XCJTbWFsbF9zdmdfX2FcIn0sby5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsOlwiI2ZmZlwiLGQ6XCJNMCAwaDEydjEySDB6XCJ9KSkpKSl9fSw0NjAyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjI0LGhlaWdodDoyNCxmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTEwLjUxOSAxNy42NTMgMTYuMTcyIDEybC01LjY1My01LjY1MyAxLjQxNC0xLjQxNEwxOSAxMmwtNy4wNjcgNy4wNjctMS40MTQtMS40MTRabS01LjQ3IDBMMTAuNzA0IDEyIDUuMDUgNi4zNDdsMS40MTQtMS40MTRMMTMuNTMxIDEybC03LjA2NyA3LjA2Ny0xLjQxNC0xLjQxNFpcIixmaWxsOlwiIzEyMTMxNFwifSkpKX19LDc1MTY0OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjE2LGhlaWdodDoxNixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTcuMDEyIDExLjc2OSAxMC43ODEgOCA3LjAxMiA0LjIzMWwuOTQzLS45NDJMMTIuNjY3IDhsLTQuNzEyIDQuNzExLS45NDMtLjk0MlptLTMuNjQ1IDBMNy4xMzUgOCAzLjM2NyA0LjIzMWwuOTQyLS45NDJMOS4wMjEgOGwtNC43MTIgNC43MTEtLjk0Mi0uOTQyWlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sNjcyODY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS4yNiA4LjgyNiA4LjA4NSA2IDUuMjU5IDMuMTc0bC43MDctLjcwOEw5LjUgNiA1Ljk2NiA5LjUzNGwtLjcwNy0uNzA4Wm0tMi43MzUgMEw1LjM1MSA2IDIuNTI1IDMuMTc0bC43MDctLjcwOEw2Ljc2NiA2IDMuMjMyIDkuNTM0bC0uNzA3LS43MDhaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSl9fSwyNDA0NTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zIDE5LjIwN2EyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTVoLTJ2NUg1di01SDN2NVptMTIuMjIzLTcuOTkxLTIuMTYzIDIuMTYzVjIuNzkzaC0ydjEwLjU4NmwtMi4xNjMtMi4xNjMtMS40MTQgMS40MTQgNC41NzcgNC41NzcgNC41NzctNC41NzctMS40MTQtMS40MTRaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSl9fSwzNzE5MTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xMC4xNDkgNy4zNCA4LjcwNyA4Ljc4VjEuNzI0SDcuMzczVjguNzhMNS45MzEgNy4zMzlsLS45NDIuOTQzIDMuMDUxIDMuMDUxIDMuMDUxLTMuMDUxLS45NDItLjk0M1pNMiAxMi42NjZBMS4zMzMgMS4zMzMgMCAwIDAgMy4zMzMgMTRoOS4zMzRBMS4zMzQgMS4zMzQgMCAwIDAgMTQgMTIuNjY3VjkuMzMzaC0xLjMzM3YzLjMzNEgzLjMzM1Y5LjMzM0gydjMuMzM0WlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sMjg1Mjc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNy42MTEgNS41MDQgNi41MyA2LjU4NlYxLjI5M2gtMXY1LjI5M0w0LjQ0OSA1LjUwNGwtLjcwOC43MDdMNi4wMyA4LjVsMi4yODktMi4yODktLjcwOC0uNzA3Wk0xLjUgOS41YTEgMSAwIDAgMCAxIDFoN2ExIDEgMCAwIDAgMS0xVjdoLTF2Mi41aC03VjdoLTF2Mi41WlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sNDE2ODU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xMC41NCAzLjYwMmEyLjg3NSAyLjg3NSAwIDAgMSAzLjk3NiAxLjA4NHYuMDAybDYuNjA2IDExLjk5M2EyLjg3NSAyLjg3NSAwIDAgMS0yLjUxNSA0LjMwNEg1LjM5M2EyLjg3NCAyLjg3NCAwIDAgMS0yLjUxNi00LjMwNEw5LjQ4NCA0LjY4NmMuMjQ5LS40NDkuNjEzLS44MjQgMS4wNTYtMS4wODRaTTEyIDQuOTUzYTEuMTI1IDEuMTI1IDAgMCAwLS45ODQuNThsLTYuNjEgMTItLjAwOC4wMTRhMS4xMjUgMS4xMjUgMCAwIDAgLjk4NCAxLjY4OEgxOC42MThhMS4xMjUgMS4xMjUgMCAwIDAgLjk4NC0xLjY4OGwtLjAwOS0uMDE1LTYuNjA5LTExLjk5OGExLjEyOCAxLjEyOCAwIDAgMC0uOTg0LS41OFpcIixmaWxsOlwiIzEyMTMxNFwifSkpLGl8fChpPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0xMC43NSAxNy41MzlhMS4yNSAxLjI1IDAgMSAxIC43NzIgMS4xNDggMS4yMzkgMS4yMzkgMCAwIDEtLjc3Mi0xLjE0OFpNMTIgNy4xOWExLjI2IDEuMjYgMCAwIDEgMS4yNSAxLjMybC0uNSA2LjU1aC0xLjUxbC0uNDktNi41NUExLjI3MSAxLjI3MSAwIDAgMSAxMiA3LjE5WlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sOTM4OTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbz1uKDY3Mjk0KTtmdW5jdGlvbiBhKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInN2Z1wiLGEoe3dpZHRoOjE2LGhlaWdodDoxNixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTcuMDI3IDIuNDAxYTEuOTE3IDEuOTE3IDAgMCAxIDIuNjUuNzIzdi4wMDFsNC40MDUgNy45OTVhMS45MTcgMS45MTcgMCAwIDEtMS42NzggMi44N0gzLjU5NmExLjkxNyAxLjkxNyAwIDAgMS0xLjY3OC0yLjg3bDQuNDA1LTcuOTk2Yy4xNjYtLjMuNDA5LS41NDkuNzA0LS43MjNaTTggMy4zMDJhLjc1Ljc1IDAgMCAwLS42NTYuMzg3bC00LjQwNiA4LS4wMDYuMDFhLjc1Ljc1IDAgMCAwIC42NTYgMS4xMjRIMTIuNDEyYS43NS43NSAwIDAgMCAuNjU2LTEuMTI1bC0uMDA2LS4wMUw4LjY1NiAzLjY5QS43NTIuNzUyIDAgMCAwIDggMy4zMDJaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSxpfHwoaT1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNNy4xNjcgMTEuNTk5YS44MzMuODMzIDAgMSAxIC41MTUuNzY1LjgyNy44MjcgMCAwIDEtLjUxNS0uNzY1Wk04IDQuNzkzYS44NC44NCAwIDAgMSAuODMzLjg4TDguNSAxMC4wNEg3LjQ5M2wtLjMyNi00LjM2N0EuODQ3Ljg0NyAwIDAgMSA4IDQuNzkzWlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sMTU5MjM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS4yNyAxLjhhMS40MzggMS40MzggMCAwIDEgMS45ODguNTQzbDMuMzAzIDUuOTk3YTEuNDM4IDEuNDM4IDAgMCAxLTEuMjU4IDIuMTUySDIuNjk3QTEuNDM4IDEuNDM4IDAgMCAxIDEuNDM5IDguMzRsMy4zMDMtNS45OTdjLjEyNC0uMjI0LjMwNy0uNDEyLjUyOC0uNTQyWk02IDMuNTk2YS42My42MyAwIDAgMSAuNjI1LjY2bC0uMjUgMy4yNzVINS42MmwtLjI0NS0zLjI3NUEuNjM1LjYzNSAwIDAgMSA2IDMuNTk1Wm0tLjYyNSA1LjIyMWEuNjI1LjYyNSAwIDEgMSAxLjI1LS4wMS42MjUuNjI1IDAgMCAxLTEuMjUuMDFaXCIsZmlsbDpcIiNDNTBBMzNcIn0pKSl9fSw0NDQ5NjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDozMixoZWlnaHQ6MzAsdmlld0JveDpcIjAgMCA5NiAxMDBcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTk1LjMzNyA3My4xMzJjLS42NjQtMS45My0xLjkxNS0yLjk0NS0zLjMzNy0zLjc5OGE5LjAxIDkuMDEgMCAwIDAtLjcyLS40MDZjLS40MTgtLjI0NC0uODU0LS40NjctMS4yOS0uNzExLTQuNDU2LTIuNTM5LTcuOTI3LTUuNzI3LTEwLjM1NC05LjUwNWEyMy4xNzcgMjMuMTc3IDAgMCAxLTEuNzgyLTMuMzdjLS4yMDktLjYzLS4xOS0uOTk2LS4wNTctMS4zMi4xMTQtLjI0NS40MTctLjUwOS41NjktLjYzLjc1OC0uNTQ5IDEuNTU1LTEuMDk3IDIuMDg1LTEuNDYzLjk0OS0uNjcgMS43MDctMS4xNzggMi4yLTEuNTQzIDEuODItMS4zNiAzLjExLTIuODIzIDMuOTA3LTQuNDQ4IDEuMTE4LTIuMjk1IDEuMjctNC45MTQuMzk4LTcuMzcyLTEuMjE0LTMuNDEyLTQuMjI5LTUuNTQ0LTcuODctNS41NDQtLjc1OCAwLTEuNTE3LjA4MS0yLjI5NC4yNjQtLjIwOS4wNC0uMzk4LjEwMi0uNTg4LjE0MmE3Ny44ODEgNzcuODgxIDAgMCAwLS4yMDktNy4yM2MtLjY4Mi04LjUzLTMuNDctMTIuOTk3LTYuMzktMTYuNTcyLTEuMjE0LTEuNDgyLTMuMzE5LTMuNjU1LTYuNDg1LTUuNjA1QzU4LjcyIDEuMzYxIDUzLjczMyAwIDQ4LjI3MiAwYy01LjQ0MiAwLTEwLjQzIDEuMzYtMTQuODQ3IDQuMDYyLTMuMTg2IDEuOTUtNS4yOTEgNC4xMjItNi41MDUgNS42MDUtMi45IDMuNTU0LTUuNjg4IDguMDQyLTYuMzkgMTYuNTcyYTc3LjQ1IDc3LjQ1IDAgMCAwLS4yMDkgNy4yM2MtLjE5LS4wNjEtLjM5OC0uMTAyLS41ODgtLjE0MmE5LjgyNCA5LjgyNCAwIDAgMC0yLjI5NC0uMjY0Yy0zLjY2IDAtNi42NzUgMi4xMTItNy44NyA1LjU0NC0uODcyIDIuNDU3LS43MiA1LjA3Ny4zOTkgNy4zNzIuNzk2IDEuNjI1IDIuMDg2IDMuMDg3IDMuOTA2IDQuNDQ3YTgxLjkzIDgxLjkzIDAgMCAwIDIuMiAxLjU0NGMuNTEyLjM2NiAxLjI3Ljg3MyAyLjAxIDEuNDAxLjExNC4wODEuNTEyLjM4Ni42NDUuNjkuMTUxLjM0Ni4xNTEuNzEyLS4wNzYgMS4zODJhMjMuMDggMjMuMDggMCAwIDEtMS43NDUgMy4zMWMtMi4zNTEgMy42OTYtNS43NDYgNi44MjQtMTAuMDUgOS4zNDItMi4yNzYgMS4zLTQuNjY1IDIuMTUzLTUuNjcgNS4wNzctLjc1OCAyLjIxNC0uMjY1IDQuNzEyIDEuNjY5IDYuODI0LjYyNi43MzEgMS40MjIgMS4zOCAyLjQyNyAxLjk3IDIuMzUxIDEuNDAxIDQuMzYxIDIuMDcxIDUuOTM1IDIuNTM4LjI4NS4wODIuOTEuMzA1IDEuMTk1LjU3LjcwMi42NDkuNjA3IDEuNjQ0IDEuNTM2IDMuMDg2YTcuMzc2IDcuMzc2IDAgMCAwIDEuNzQ1IDEuOTFjMS45NTMgMS40NDEgNC4xNTIgMS41NDMgNi40ODUgMS42MjQgMi4xMDUuMDgxIDQuNDk0LjE4MiA3LjIyNCAxLjE1NyAxLjEzOC40MDYgMi4yOTUgMS4xNzggMy42NiAyLjA3MkMzNi4zMjYgOTcuMDc2IDQwLjgwMSAxMDAgNDguMjcyIDEwMHMxMS45NjUtMi45NDUgMTUuMjY1LTUuMTE4YzEuMzQ2LS44OTMgMi41MjItMS42NDUgMy42MDMtMi4wMyAyLjczLS45NTUgNS4xMi0xLjA1NyA3LjIyNS0xLjE1OCAyLjMzMi0uMTAyIDQuNTMyLS4xODMgNi40ODUtMS42MjVhNi45OCA2Ljk4IDAgMCAwIDEuOTktMi4zMzVjLjY2NC0xLjIxOS42NDUtMi4wNzIgMS4yOS0yLjY4MS4yNjYtLjI0NC44MTYtLjQ0NyAxLjExOS0uNTQ5IDEuNTkzLS40NjcgMy42MjItMS4xNTcgNi4wMTEtMi41NTggMS4wNjItLjYzIDEuODk2LTEuMzIgMi41NDEtMi4wOTJsLjAyLS4wMmMxLjgtMi4xMTMgMi4yNTYtNC41NSAxLjUxNi02LjcwMlpNODguNyA3Ni45NWMtNC4wNTggMi4zOTYtNi43NSAyLjEzMi04LjgzNiAzLjU5NC0xLjc4MyAxLjIxOS0uNzIgMy44OC0yLjAzIDQuODM0LTEuNTkyIDEuMTc4LTYuMjk1LS4wODItMTIuMzQ0IDIuMDcxLTUuMDA2IDEuNzY3LTguMTkyIDYuODY1LTE3LjE5OSA2Ljg2NS05LjAyNiAwLTEyLjEzNi01LjA3OC0xNy4xOTktNi44NjUtNi4wNjgtMi4xNTMtMTAuNzctLjg5My0xMi4zNDUtMi4wNzEtMS4yODktLjk1NS0uMjQ2LTMuNTk1LTIuMDI5LTQuODM0LTIuMDg1LTEuNDQyLTQuNzk3LTEuMTk4LTguODM2LTMuNTk0LTIuNTc5LTEuNTIzLTEuMTE5LTIuNDc4LS4yNjYtMi45MjVDMjIuMjk0IDY2LjQxIDI0LjY0NSA1NC42NTEgMjQuNzQgNTMuNzc3Yy4xMzItMS4wNTYuMjY1LTEuODg4LS44MTYtMi45NjUtMS4wNDMtMS4wMzUtNS43MDctNC4xMjItNi45OTctNS4wNzctMi4xNDMtMS42MDQtMy4wNzItMy4xODgtMi4zOS01LjE1OC40NzUtMS4zNiAxLjY3LTEuODY5IDIuOTIxLTEuODY5LjM4IDAgLjc3Ny4wNDEgMS4xNTcuMTQyIDIuMzUxLjU0OSA0LjYyNyAxLjgwOCA1LjkzNSAyLjE1My4xOS4wNC4zNDEuMDYxLjQ5My4wNjEuNzAyIDAgLjk0OC0uMzg2LjkxLTEuMjM5LS4xNTEtMi43NDEtLjUxMi04LjEwMy0uMTEzLTEzLjA5OS41NS02Ljg4NCAyLjYzNS0xMC4yOTYgNS4xLTEzLjMyMiAxLjE3Ni0xLjQ0MiA2LjczMi03LjczOCAxNy4zNy03LjczOCAxMC42NTcgMCAxNi4xNzUgNi4yNzUgMTcuMzcgNy43MzggMi40NjUgMy4wMjYgNC41MzIgNi40MzggNS4xIDEzLjMyMi4zOTkgNC45OTYuMDU4IDEwLjM1OC0uMTEzIDEzLjEtLjA1Ny45MTMuMjA5IDEuMjM4LjkxIDEuMjM4LjE1MiAwIC4zMDMtLjAyLjQ5My0uMDYgMS4zMDktLjM0NiAzLjYwMy0xLjYwNSA1LjkzNS0yLjE1NC4zOC0uMDguNzc4LS4xNDIgMS4xNTctLjE0MiAxLjI1MiAwIDIuNDI3LjUwOCAyLjkyIDEuODY5LjcwMiAxLjk3LS4yNDYgMy41NTQtMi4zODkgNS4xNTgtMS4yOS45NTUtNS45MzUgNC4wNDItNi45OTcgNS4wNzctMS4wODEgMS4wNzctLjk0OCAxLjkxLS44MTYgMi45NjUuMTE0Ljg5NCAyLjQ0NyAxMi42MzIgMTcuMTI0IDIwLjI0OC44MTUuNDQ3IDIuMjc1IDEuNDAxLS4zMDQgMi45MjVaXCIsZmlsbDpcIiMwMDBcIn0pKSl9fSw3NDAxMDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk00IDZoMTZ2Mkg0VjZabTE2IDVINHYyaDE2di0yWm0wIDVINHYyaDE2di0yWlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sODYyMzA6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMi42NjcgNGgxMC42NjZ2MS4zMzNIMi42NjdWNFptMTAuNjY2IDMuMzMzSDIuNjY3djEuMzM0aDEwLjY2NlY3LjMzM1ptMCAzLjMzNEgyLjY2N1YxMmgxMC42NjZ2LTEuMzMzWlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sMTQ1Mjg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMiAzaDh2MUgyVjNabTggMi41SDJ2MWg4di0xWk0xMCA4SDJ2MWg4VjhaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSl9fSwyMDc0MDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7Y2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xNC44MDggNS42MDYgMTIuMzI0IDguMDlsLjU0My41NDMtMS40MTQgMS40MTQtMS4yNS0xLjI1YTEgMSAwIDAgMSAwLTEuNDE0bDMuMi0zLjIuMDE2LS4wMTZhNC40NiA0LjQ2IDAgMCAxIDYuMjg4LjEyNiA0LjQ2IDQuNDYgMCAwIDEgLjEyNiA2LjI4OGwtLjAxNi4wMTYtMy4yIDMuMmExIDEgMCAwIDEtMS40MTQgMGwtMS4yNS0xLjI1IDEuNDE0LTEuNDE0LjU0My41NDMgMi40ODQtMi40ODRhMi40NiAyLjQ2IDAgMCAwLS4wODUtMy40N0wxOSA1bC0uNzIzLjY5MWEyLjQ2IDIuNDYgMCAwIDAtMy40NjktLjA4NVptLjkgNC4xMDEtNiA2LTEuNDE1LTEuNDE0IDYtNiAxLjQxNCAxLjQxNFptLTYuOTEuNDk2YTEgMSAwIDAgMC0xLjQxNSAwbC0zLjIgMy4yLS4wMTYuMDE2YTQuNDYgNC40NiAwIDAgMCAuMTI2IDYuMjg4IDQuNDYgNC40NiAwIDAgMCA2LjI4OC4xMjZsLjAxNi0uMDE2IDMuMi0zLjJhMSAxIDAgMCAwIDAtMS40MTRsLTEuMjUtMS4yNS0xLjQxNCAxLjQxNC41NDMuNTQzLTIuNDg0IDIuNDg0YTIuNDYgMi40NiAwIDAgMS0zLjQ3LS4wODVMNSAxOWwuNjkxLS43MjNhMi40NiAyLjQ2IDAgMCAxLS4wODUtMy40NjlsMi40ODQtMi40ODQuNTQzLjU0MyAxLjQxNC0xLjQxNC0xLjI1LTEuMjVaXCJ9KSkpfX0sMzQxODg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2NsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOS44NzIgMy43MzcgOC4yMTYgNS4zOTNsLjM2Mi4zNjItLjk0My45NDMtLjgzMy0uODMzYS42NjcuNjY3IDAgMCAxIDAtLjk0M2wyLjEzMy0yLjEzMy4wMTEtLjAxMWEyLjk3MyAyLjk3MyAwIDAgMSA0LjE5Mi4wODQgMi45NzMgMi45NzMgMCAwIDEgLjA4NCA0LjE5MmwtLjAxLjAxLTIuMTM0IDIuMTM0YS42NjcuNjY3IDAgMCAxLS45NDMgMGwtLjgzMy0uODMzLjk0My0uOTQzLjM2Mi4zNjIgMS42NTYtMS42NTZhMS42NCAxLjY0IDAgMCAwLS4wNTctMi4zMTNsLjQ2LS40ODItLjQ4MS40NjFhMS42NCAxLjY0IDAgMCAwLTIuMzEzLS4wNTdabS42IDIuNzM0LTQgNC0uOTQzLS45NDIgNC00IC45NDIuOTQyWm0tNC42MDcuMzNhLjY2Ny42NjcgMCAwIDAtLjk0MyAwTDIuNzg5IDguOTM2bC0uMDExLjAxMWEyLjk3MyAyLjk3MyAwIDAgMCAuMDg0IDQuMTkyIDIuOTc0IDIuOTc0IDAgMCAwIDQuMTkyLjA4NGwuMDEtLjAxIDIuMTM0LTIuMTM0YS42NjcuNjY3IDAgMCAwIDAtLjk0M2wtLjgzMy0uODMzLS45NDMuOTQzLjM2Mi4zNjItMS42NTYgMS42NTZhMS42NCAxLjY0IDAgMCAxLTIuMzEzLS4wNTdsLS40ODIuNDYuNDYxLS40ODFhMS42NCAxLjY0IDAgMCAxLS4wNTctMi4zMTNsMS42NTYtMS42NTYuMzYyLjM2Mi45NDMtLjk0My0uODMzLS44MzNaXCJ9KSkpfX0sNzU1OTk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2NsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNy40MDQgMi44MDMgNi4xNjIgNC4wNDVsLjI3Mi4yNzEtLjcwOC43MDgtLjYyNS0uNjI1YS41LjUgMCAwIDEgMC0uNzA4bDEuNi0xLjYuMDA5LS4wMDhhMi4yMyAyLjIzIDAgMCAxIDMuMTQ0LjA2MyAyLjIzIDIuMjMgMCAwIDEgLjA2MyAzLjE0NGwtLjAwOC4wMDktMS42IDEuNmEuNS41IDAgMCAxLS43MDggMGwtLjYyNS0uNjI1LjcwOC0uNzA4LjI3MS4yNzIgMS4yNDItMS4yNDJhMS4yMyAxLjIzIDAgMCAwLS4wNDMtMS43MzVMOS41IDIuNWwtLjM2MS4zNDZhMS4yMyAxLjIzIDAgMCAwLTEuNzM1LS4wNDNabS40NSAyLjA1LTMgMy0uNzA4LS43MDcgMy0zIC43MDguNzA4Wm0tMy40NTUuMjQ4YS41LjUgMCAwIDAtLjcwOCAwbC0xLjYgMS42LS4wMDguMDA5YTIuMjMgMi4yMyAwIDAgMCAuMDYzIDMuMTQ0IDIuMjMgMi4yMyAwIDAgMCAzLjE0NC4wNjNsLjAwOS0uMDA4IDEuNi0xLjZhLjUuNSAwIDAgMCAwLS43MDhsLS42MjUtLjYyNS0uNzA4LjcwOC4yNzIuMjcxLTEuMjQyIDEuMjQyYTEuMjMgMS4yMyAwIDAgMS0xLjczNS0uMDQzTDIuNSA5LjVsLjM0Ni0uMzYxYTEuMjMgMS4yMyAwIDAgMS0uMDQzLTEuNzM1bDEuMjQyLTEuMjQyLjI3MS4yNzIuNzA4LS43MDgtLjYyNS0uNjI1WlwifSkpKX19LDI4MzI3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjI0LGhlaWdodDoxNyxmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIxLjg0NyAxLjYyOGMuMDcxLjE3My4xMDguMzU4LjEwOC41NDZoLjAxdjExLjY0MkgyLjA0NVYyLjE3NEExLjQyNiAxLjQyNiAwIDAgMSAzLjQ3Ljc0OEgyMC41M2ExLjQyNiAxLjQyNiAwIDAgMSAxLjMxNy44OFpNMy43MDggMTIuMTUzaDE2LjU4NFYyLjQxSDMuNzA4djkuNzQyWm0xMC40MyAyLjM3OGEuNTI4LjUyOCAwIDAgMC0uMDU3LS4yNEgyNGMwIDEuMDgzLS45NzcgMS45NjEtMi4xNzcgMS45NjFIMi4xNzdDLjk3NCAxNi4yNTIgMCAxNS4zNzQgMCAxNC4yOTJoOS45MmEuNTI4LjUyOCAwIDAgMCAuMDk4LjYxOGMuMS4xLjIzNy4xNTYuMzc5LjE1NmgzLjIwNmEuNTM1LjUzNSAwIDAgMCAuNTM1LS41MzVaXCIsZmlsbDpcIiNGN0Y4RjlcIn0pKSl9fSw3NDQzNTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbyxhPW4oNjcyOTQpO2Z1bmN0aW9uIHMoKXtyZXR1cm4gcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwic3ZnXCIscyh7dmlld0JveDpcIjAgMCAzMyAzMlwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHhtbG5zWGxpbms6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJ9LGUpLHJ8fChyPWEuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0uNDI5IDE2YzAtOC44MzcgNy4xNjMtMTYgMTYtMTYgOC44MzYgMCAxNiA3LjE2MyAxNiAxNnMtNy4xNjQgMTYtMTYgMTZjLTguODM3IDAtMTYtNy4xNjMtMTYtMTZaXCIsZmlsbDpcIiNGMEYxRjJcIn0pKSxpfHwoaT1hLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGw6XCJ1cmwoI0VudmVsb3BlSWNvbl9zdmdfX2EpXCIsZDpcIk02LjQyOSA2aDIwdjIwaC0yMHpcIn0pKSxvfHwobz1hLmNyZWF0ZUVsZW1lbnQoXCJkZWZzXCIsbnVsbCxhLmNyZWF0ZUVsZW1lbnQoXCJwYXR0ZXJuXCIse2lkOlwiRW52ZWxvcGVJY29uX3N2Z19fYVwiLHBhdHRlcm5Db250ZW50VW5pdHM6XCJvYmplY3RCb3VuZGluZ0JveFwiLHdpZHRoOjEsaGVpZ2h0OjF9LGEuY3JlYXRlRWxlbWVudChcInVzZVwiLHt4bGlua0hyZWY6XCIjRW52ZWxvcGVJY29uX3N2Z19fYlwiLHRyYW5zZm9ybTpcInNjYWxlKC4wMDgzMylcIn0pKSxhLmNyZWF0ZUVsZW1lbnQoXCJpbWFnZVwiLHtpZDpcIkVudmVsb3BlSWNvbl9zdmdfX2JcIix3aWR0aDoxMjAsaGVpZ2h0OjEyMCx4bGlua0hyZWY6XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUhnQUFBQjRDQVlBQUFBNVpEYlNBQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFCM1JKVFVVSDVRUWNGVFlYZFRBYlh3QUFBQVppUzBkRUFQOEEvd0Qvb0wybmt3QUFGL0ZKUkVGVWVOcnRYZGx5M0VoMnZZVUM5MDBpUlltVVJGS2lLSXJhMnoxdE8velNUMzZZY0lRZkhPRVA4QmY1Q3h6K0M0Y2p4bzU1R0hlUFJpdWJFdmVtcEpZNFdyaUxpMnBmbk9jQ1dRSkJKSkNKS2sxcnV2TkdJS29LaFNXUkorOStNNUVoUzc5SXFuc2ZaeksySzM3UkFGdXlaTW1TSlV1V0xGbXlaTW1TSlV1V0xGbXlaTW1TSlV1V0xGbXlaTW1TSlV1V0xGbXlaT2t2UzQyYXJQMjlQY3BtS0ZPbzFydXpUcWJiY1RKWng4bG1CQjA3b1Y2dkUvYmhNL0tDRWNkSC9SZmNMNitwdWtiVU1WOEtxWjR2M09hbzU1WDlLRCtEKzNYN0cxU3JWZXZWR2lpVDYyeHZ6K0ZiLzBEZko0QmZ2WDVMZmIzZFhibDg0YmZpY3YvWTVtYlBkM1cydFhsdDVvdmI0cnd2aytyK0lLam5pK1ZLc1ZUWkZNejUrNzZlcnYvNnNIOTBlR25pQXJseWhLei8rYzAvVlNyMWY4KzZiV1BsU2kzalZxb2tnQmFqbzJhNzhRdW5TcVZHeFZLVndPVEZVdm1mcStWU3o4VEUySDhDZUtkWUxKTFlla3ZGd3IvazhybHhvRjBUUithTEZhcFVhMlJaOTh1bWFxMU91VUpKZk5ZZ2IrbmdZSDhrbC8vNHI0VkNjYWhRS0pBRWVLaTl2ZTFLUG5lRUE1aWpxd0xjZktITUY3RDA4K2gydVIzLy9VazZRN3JtOGtVcUMybnJaQnc2Mk4rbncvMDk2dXJzdUZnbzVNL2w4M2x5cTlVcWp1N0padDNlbnU0dTJ0eDZ6d2YzOVBaU3FWd1JGNnhSZDJjN1piTVpxdGQvUFozYkNvTXViQmlGRGE0b1l5cnF2T1A3Nm13NmdXTS81a3RVS2xVRU5sbktDZVo4cy80VGpZNmNwWTZPem81U3FkU05vMTMvckt6WW5ON2VIc3JuYzdRdURoeWJtQlFqb1pNdmdJc0RaR0ZVLzJwSzV1dWZZVFNIcjVuMFc3Vy9JcGp5WTY1RXdxNmlySk9sZ3BEQ2E2dkxkRXBZemtORFEyd1VTOFBZOFVkUzNSczlHUm9jSEtMZTdrNTY5ZUpIS2tLR093NXpNa1lMeFBhWExiN3FrZjhGanpHNWh1bCsxYkhoZXlidGk3cytNUGdFcmlNTXJES3RMaTJRbTNWb2JPeWl3Q3ZUa0E3WW5MRC9DVUJIUjBlb3ZTMUx6OWRXQmJobHNTOUxKU0huZ3lDbmVWaWREWHBGdDlQaVFBdGZNdzZzNEQyRHgrbTBSZWYrcWpiSTYrc01KTStnZ2xnV05wT1Fxc0FKNTY4c0xWS2xWS0NwcVN2VTF0Yk9UQnJFMUFtQ0t6ZWhqMmw4YkV5Z1g2UFZsU1V4U3J6UlVpNTdJRmNDbkt3YWdUcWlTQVdXQ1hlb3VDWHErcXBCWVNxYWRia3c2cmwwQitZeFhTM0JGWnhiWUhDaEt1dTB0REJQaHdkN05ITjlocnE2dWlMYjUwUkZvakE2MmpzNjZOS2xTMVNyRkdsMWVaRkJ6a0JjQzA2RzVRWk9qbXFNamdpTWUxaExKME9OVmRFL1Vpd0RHL1RXc2hETE85c2JkT1BHZGVycjYxTkdDaDFWeUEwYlJnVll2NUEvWWs2dWkxSGs2ZVFxKzE2MVdqeW9YN0xyWWNyRlA5Y3plZUQ2WWxsNE44QmxkWG1KM3Z6NUZZTTdPRGg0RE55Z0pGWnljUERBN3U0ZXVucjFLaDBKVVFCNXorWThRQzRKY1EyUVcvemdKbnJOVlArZmpPSFdZaVZNbW51cDFFMlNpanJSQmhoVW9uMUhQcmdaSjhPaUdZejI2dVdQZE9QNmRUcDM3bHhENG9aajJBMFJyWHI0NEVqb0ZUNHhRUDZ3dThYaW1oamtESE15RzE0d0lPcnBPVW5IZ0VycmR1aUFvVE80ZE51bGtneEpLdXJUZi9WR2hJckZNc0JsYTlpaHRSOVhhVTBBZk8zYU5GMjRjRjRKYXBEY1dQbnZqdzdjK05TcFV6UXRMankvc0NEMk8rTDdETE0vUUVhYmVqcmJHUFJXWldYU2lrU1Q4MVNaR2gwUmJkbytuV2NLZ3A3TCsrQ0svbmV5V1hyeGZJMFc1K2NFdUZkcGZIeUNQUnRWNWlrVzRLaEdTSkFoNzJlbXAybHhhWmt2ZEZXQW5CSGNDejhaS0hkMXREWDhzTThWWk5DSkFvWFRjSEdkSEQ0dTZwaW9hNGZia05STzFYM0QxbktOWTh2bEJ1Y2lrUEhUaStmMGJPNHhYWm1jcEN0WHBzaDEzV1BnUnFVcDVUWGRwSkVtVDBZNERIUm1lSmltcTFWYVdsNW1NQ2Vucm5ITGl1QmtCcm1kSEkyQVYxS25OaE1WaXROeEptSlZSK3kyWXJBMmJBSndidkVUdU9EYzE2OStvcm5aaHpRbTNOWnB3Vnp0N2UwTm5hdXluNHhFZEJBRUtiS2gzTXZsTXEyc3JBZ1JrcVhKeVNsaFlkZEZ3K0FmbDZtcjA0VzdyZjNnMWszeWtnamdYUGk1NkR2RUl0YlhYOUhqaC9mby9Qa1J1aTZNcXM3T3poTldjaW9kck9Jb2dDdnB3b1VMN0J1dkxzL3piNEJjclZkNDlLSEJuZTJ0RWRjbWVqdE9yeVk5WDVUb2pSU2ptaUphbjVzOWNKR2VMWWdOZk9HNldlRUd2YVpIOS85SVo4NE0wYzJidDRRMzAzM2lmbkVWSkNjQVRpckJDWmFUQUdpSWJJZ05nTHl5K0l4MXhmakVKVUoyQ2czRjVibzYzR1A2c0JYWkhWWG5xaXpkSkxEbHRXVW9NWHk4cm91VDJxQVRXMEdJWlFaWG9BdjkrdTdkVzNvZ3dEMTFxcDl1M2JyRlhvd1V5M0V1VWRSOVhGMTlFUVRLQzJkbStmZkV4QVNEUFA5MGxxM29zVEh4dTFyM09WbUEzQTZRbXhmRGFhMVlVNHZZMUFwdmlvUEZ6MEtwek53TGFoUGdicngvVDMvNjQvOVJkMWVuQVBjMmV5OXg0amlLZVlMM2NVMGZJRGg2QURLVS9xU3c3Z0R5MHg4ZXNlYTlPRGJPdjZXNEJzaVVzYlVoNFQ0RjErYUtGZTRhY083bTVvWUE5dy9VM3ViUzNidDNPZlVIamcxeWJaVDZpTlhCU1Z5ckNwZ2ZpMXNMa0tlbXBoalV1ZGxIRFB6bytRcyt5RnhRSUhTeUczc1BIWGNvYnI4dWQrbUtOaDFYUzZlRFZkSUJnejlmOUR3UEdGUTcyOXNNTHN5V08zZnVDTjE3NWdTNE9pck15SXBXUlc2T3BhTjhIN21qbzRPalhRRDE4YVA3OU0zZi9RT2RHeG5sMzZ4ZmNFd0V5RWtqc2RrQVE3TUJqTGhRWXlyL0haeGI5dTBVOGpoM2IzZVg3bjMvQjZwV3l2VFZWMSt4bDRMOVlYQ1RTb3VqeU5GNWVOV0Z3MFlYTEwyWm1Sa2FQRDFBang3Y284Mk45K1JDVjR0ajg0S1RDMXo1RjUwcmJXWHUxVFIyclJOYVREcEd0OTBBTis4Ym9hN2czQSs3ZXd4dXNaQ2oyN2R2QzVmb1BMVzF0VVZ5YmRJQWlucE9SeWZib2dJMnlNVVNhSUFNbjYyL3I1Y2VDa3R3YTN2TE44ZzhnOElMaUpqSHFEL1hwaFBETmtrMHhEd2NwL3NrdU9pVC9mMTl1aWZFY3U3am9YQ0ZickxyS1FNWjRXQkdYTFFxVHBJNE9nMU1TcTlKa09YVzI5dEhOMjdjWUV2d3diM3ZoUWphWWQrT1FTNTZ4cGR1NnU3blNDV2FXc3VxUVJDVVNoalkrVUtGQTBMb2k2T2pRN2FXRC9iM0JFUE0wUGo0T0FjeTRuU3V5b3FPRzJpT0NralQzRzVRWEdQcjcvZDh1STcyTE4wSHlIdDdMSkk4cDc3S0Q1eFdUSnVJYjkwc1VWTDJLRTJwa1R3ZnNYcUVJQkdLekFyZGVuUjR4T0R1N215d1NydDA2VExuM3FNNHQ5bUI3elRyQzZwME1yYUJnUUgyNVZ4eGx3ZjN2aE1pNlVNanBsMFVJSmZLdFphSzZuQW42MXhMbmhOVmwyVnFGMFFSYXBaemduTVJSOEd6NTNNZjZjR2Z2cU90emZjY1c3NTgrVEtyTlJYbkJnMHNFOS8vaEE1dVRkanRKTWluVDUrbW03ZHVDdEZVRmcvMlBZdW1MS2JFQ05NTFJsZlpUMUlrNmNVMDdkTE41WnJVV0prTXhySXZscEVoZ3JGWnlCZTREOTY5WGVmWXdlVGtsV05ScWpnUTAxYkxPQ1luNmh3WEJCY2pGaHNjOXR1MzcxQ3BtQmZpK2pzQjhoSHZCNGZBdWtaT3VVNG5PY2Vrd3ZKejZXUVZpR0dWRW00ck9CY0dWZFhYdWNWaWdZM085ZGMvQ2E2ZDVMZ0IxQmo2SVNuMGFES29sQ0phMTVvMDRlUlBRTHNNTWl4RlRJOTVLRVp4UHBmelFSYWNMTVIxcFJ5dGc1UEFia1p2UjEwN2ZEM1ZmeXBkRHlNRGs4RmdaMVNyZGE1R0xaVks5UGpoZlhyOTZnV0hkZ0V1UXBBU1hKWGVUU3RaSTBWMG5IRVY1d3ZHK2NqU3VzYUR3SEUvZS9Zc1c5ZjdIM1k1bUk3SlVkbXN3Nk1jNGhvZFltS2xocmtwYXRQUjE1eUxEUnl2T2s5SFZGWllLbFU4Y01WelZ3UW56ejUrU0MvV1Z1aml4WXNjRElMYVVuR3VpcHZUdW11T0R1dW4xUUhIYTYyOXVQWEl5QWhiMTd2Ym14d013ZVEzNkNjSmNxVmFhNWsrVG5vbVUzMGJKNjd4V2VFSmV6N25pb0ZicVZab2R2WWhyU3d2MG5uaDR3SmNTREpaa1pIazY1cEcwcUtPVDZXRGt5b0pvd0FPeHExSFIwZVprN2MyMzlHVFIvZTVlQUQvZVNEWHVJT2l4S2l1SzZVVGxVcXFnRFNKdHNuQ2RKWkNOYS9xdEZxcjB0d1BqMmxsYVY0TTZuTU1MdUxMTWdRWnpLM3Iyam82YlEwZjcwWXRMZENxZUcrNEdpUUlzaXdZV0ZoWTRBS3lyNy81ZStaeXppZWpZS0JOaUhZbkUxbjZrM2IyUVRqMkRjQ0N5eWVrOVRsNVlBb2JBaHlNNmtmbzRmbW5jN1R3Ykk2R2g4K3d6aDBlSG80dHR6SEpFT24waGN4dnU4MG1zblhQRFZabzRoUEpDVmt3c0xTMHhLUCtiMzd6dCtSQUo0dU9LdFJyMU5udXBLb0tTV3BQTTNWVllSQVF2SURVUVE1Y2N1WEMvQnhuMVlhR0JwbHpvWmJ3dkNhbE5ta0JOOG9IdHlMcGZVTHArNTJBL1FqTklVUUhFYjI2NmxWcUFtUVVEbFI4cnVnUW5Nd1k0em9KdVZCVHp0Q1JXSEYrTXkrWlVQYkI5Y0ZibkgvS1JsVi9meDl6YmhqYzhPSXJTVzFOV3g1a2xDN1VqYVRvMURvRnZ3TnNoT2pnT3BTRXNiWHdkSmJkSnVaazhiODB1RHJhTWo3SXBNeEx4KzFUdFQxdDdKbkxXK2tUdUtnVHg4NzVwejl3SUdOZ29KL0JoYTBoQytXYXpYbW5qUzY2S2lNcHFUWXBxaUU2NWFWUmhoZHpzZ0I1WjNlWFk3VDRmZlBXSGE0dXJQaXVFMERPVU4yWXk4SmMwVXlwN2lleExNQ3RTSEF6YkRHdkxDL1IvLzdQZjFOUGR6ZUhINFBnaHFzeGRFV3lxcUltanZ1MU9kZ2tzSkdteGluY1FCZ0Y4Sk9obHcvM2QybE4rSTFYcHFhWlc3enBxaG5xY0ozVWxUKzZzeGZpcEpEMytZbHp5UitnTDE4OHA1ZlBWK2szWDMvTnZqMW0rNFhGY2xMRlRDdnRuZUQvcm9sb1NtdEZ4em5zc0pwenVSeDkvUGlSNDdPb1p0alkyS0RGeFNXdTFMdzBPY1VDa1R0VUdGN3Ria1liWkpPRWVaVFlEZ01BOVZHcTFLbk1uRXNjcFZwLy9ZcVdoRkUxT1htWlhiOFBIejV3KzdFQUNxem00QUpuVVFOSk5TT2pWV0ZXdHhWV20rN0lDdnVWRXR5RGd3TUdGZ1lKOXNHbG1KbkI3SWtWNXBEeFM1T2ZRQmJVbmlYU1dkOHBxcjdLdE1RbVNCSmMzQnlENzgyYmRhRjNuOUNsaVhHNmR1MWF3OGVIcnd1UThRbHVsdDVEWEJ0VUtxTlpzTjFXY0tvdUowZUJpNm9HQkFBQWJ0RDRPbnYySEIrenR2YUNwM0NnSExlYXFUWkFic3ZxYzdCcU1UZWRaL0J0TzBMU2k4RkZOWWFiNWRybGhXZXpkRkg0OHpQWHI3TklsdWRBMVlDMnRyeHFscDZlbmtaN3BPK3RNZ1pWTm9PdXBBb1BJbGNWK1VsclhjZDlsOUVnQ1M3RUdZTHVHUFh5bUtBYk5USXl5c2V2cmEzNWxab1hxU2JPbFZ5VUJISXJDdllZM0lyZ1huL1pDaVJPdGpZM3VFUjQ1Tnd3aStWZ0pZWWtnSXo3N1FyRDBadG4zZDBZdkdrTUpwTmpqL25CcG5IT3BCa0ZLcEV0QVVaZ0Evb0o0S0lnSUFodTBNcVdoUUhuejEvZzg1NExvd3Z1Q0VESEFDbFg5RURXRFNhb3VFWVl5d0pjbjNPNXZIV0w1cDQ4cExQRHg2ZVVSTlVzUSszZ082cFpKTWpCV01CSkEwNnRVdUpVb0dyQzRJbElWak1oUUozTUI0Y2hoWlVKY0pIb0JyaHl0Wmdva1NOMTE0VUxGL25jbDJ1ZVRoNzJ4WGZaRjlldTQ2dmtGRmFwK3RtUlBQRDBidDNuM0wyOUhjRzVqK24wNllFR3VLb3NtZ1FJcWtlQ0RBcURITFhTcmdwTUZaQnhHTGhKRTRoTmZjZW9vTC9rWEdTT0FDNkNHeWdQbFFDcUdob1VhV05qNHh6Q1hGdGRZdTRlSEJxaXFrQ2dCT2JLK3B3Y1hwMG1wck9TT3FqS0ZqTTFLaUFQaFNHSThDUFdFSlB6aGNJWklWVjBEUU1aZllCbmwydWZTSkRqQWtITnFKeklSVmgwVW10eEYxVFZOWUhiQUM1R01mUVZFZzJ5b2lQcHVzSHFFRVM4c0ZRZk1qUWZ4TFVjdnh3WDRocGIwdnBYU1p3cmY4T1FDNEo3OVBHSWZuanlnR2RuM0w1emh5M2pLSDJxNmhNUVFJYXhoVDZBRkVPZkJOY0lpY29RdFlLY1prdGY0dGFlQ0lLTDBRczNBcHdMOXlFTXJrNmlBdWRoYWFmaE00TzBzb3cxb3ZiWkYrVVNtYW9IVExNZEJGc0tGak9pVlJoQXVYeU94YkxqMU9uTzNidGNacE9VbEkvYTd5MHdOOHJjQzhNTElFT3FCWUdPV3dBbU5jQ3RTcUtId1VMRHNhRmNoVXRtQlRqZ1hGVHQ2NjVCSFZXeGlmTVJFRG5WMzB0TGk4ODRRQ0lMNndGTWNMVkYwM0pibkF1ZFcvTUJ3Y0FFdUZoSjdzN3RPMnp4cTVMME9sTncwRTcwQWFRWStnVFhSeDhsbFI3cFZKaW9udGRKNHNpNEVhVnFqQnlWQUJlakZRK0djaFZ3Y0JLNGNURnNLYTdoYzA1TlhXVjl1TFF3eHk0WHVBMWNCOUhhNEdTRG1RMmVXSzd6TldDdGwwWGJuODA5b2Z6SFE1NE1oa3FNcU5DamlWZ05nb3krQU1qb295QVhoNWQyMHZGUTRyNDdTUlg5S21ERCtpTmNlWUdHUzZOQ2gzUGpPaXFLa3dIeTlOV3JQS0Z0V2Vqa2duQzlrSUVDOXhWOW5heXoxSFhORis4NEI0WVZaN0ZRaURBL1J3Y2ZkaGhjUk5iQ3dLcStKeTFHaWo0SVNyTWdKNGZYczR3Q1RtZGRyNmFNckRpd0piakk3eUpDaFgzZ1hJQVJwWE9UN3FjU2VaS1R1NFRMZ1RXanNwa2FpK3VpR0ZSc21kYzhUc1pXRFN6aGxRbEZPRmtrbDcwTjUrQmNMTldMNVlwMnR6Zm8xczJiN01zbVdjcHg3bGFVb1JjRUdkZU80bVNUa3FTNFNKMWpZakVueVg4SkxocU14a3A5b3dJM3p2eVBBdnZZRW4wK3lGaUpEOU0vSEtweVBwbDFzcHRsSkZFMFVDeWpjRUNJWC9pMFZTOW9nUTM3OEYvRlozT2NnNXcwVmlyWTNud25YS0diWENnWHJuN1VyWlZLbXR5R1BnRUhvNDl3YlVnNzlKM1V5YXFaR3FwK1ZOM1BNVzJzeWkwS2NpNUVIS3hsZ0J0c2NOSXFiMXBXWStZa0o4UDl3SXpHTmpkRDgzT1BhZVA5VzE5bmUxTlhrUVdDeUM1VlBQZW5IT0JzNWs2eElVSTErK1ErcitZSFB4ZkJsYWoxcUhTSzFIVUwvOUJuMHJQQS9qRElhVnluRXhVMFNhTlRCWDZRS3ptcUpCcUdyQkQwQ1JvTWQ4Qi9YVUJpbE11RU1uUnk2cW8zbzdHWEMrdUhCay94b2pDb3J0amYzMjJFUGIzampzOW54dStqd3dOYVhrU1p6WDN4VUZWZU9nRTU2YVRGeGt5eWEwbWlGb3lBUGtOL1NRYUpBOWtrN2VtYXpzRlJ4WmVENElLamRJSVl6VkF3WGl2RG5ZMEo2SU9uNmNXTGwvUjA5aUgxOVorbW9UUEQxTnZYejl3Q21EQVlNVWRxWjJ0VFdQbmJYQTZFbEIvcXcrRG54czJzYnlVRit4RU1BWEg5NXMyYlJwemVTMjVrVDd3NHl5VHZiYnlFUXh5NGlMdUNrMXI1cmlYZDRMb01lMEt2alk2ZTU5a0RtNXRiOVA3OWUxci9hWTNEbkEyUlhhM3dYS2l1emc0YUg3dkk3Y2J4UWE2TjY4aG1DK0VpclhuUlp3QVp3WkMzYjk5eW4wcVFWWlBUZEpaWWRPUDBoa29rQk1FOVBEems3QkE2Q1NFOFUzQ2JLZE5WUFpTM25FUVBUVXgwYzRkaHNoczJSSStrY2RQVDA4MFQxZEdwYWNXeHlkeHBuWUVocFZBUVpFZ1VXU3lmcHN4SFdkR1JaQUVDWEhRYWdneklmUUpjcVhOYk9ZSFo1RHBSN3dPRWZzUG12NDNrMkhHbWtiUld0VG5PejBmZlFzV0JZU0I5OEI5QWprc3p4dldMYXhJcGFRVGpCYmh3UjdDaEdnTU5DSEp1V0dTa3laWTBVL1dvcWl1T0U3czZ5d1FtY2FUdWtsU3FQSEFRWktnNldaK0dZK1N5L1VrSmpoUHB3aVJUUHd3dXVCUWlHZHdMcm9DZTBLMDVOcWthTWEwRE5sa1hLKzV0cHlick9xZXBnTkZKNE12OUFCV2ZFbVNBSHN5VGE0bm9wRTRQdTBPeVNBNUdDWUx2elM3QXJjUEpPbGFvTHJpNjVTOXhyOFZOR2pTNkJYNUpNeGpROTlLdTJkN2VWb0ljOXh4YVN4bEt2UXZPQmJnQUZnQUhGL0JNMGpHbWF6aTNXbmZyZ3Q4TXg3WnFMZW53ZGFBQ2cvVmRzb2hQVlJWeWpJUGpYa1ljakZMQkFwV21PMVorLzF6aTl0ZE9LblVucFNWQWxsTitkRllGY0pNaU1CSmNSRmdnTHFCM0xmM2xDVGdBWkh5QzBRQ2lyT1lNbGo1RnJoY2RGNlZDbGdNWGhGaVE3K2l4SE5sYWp0WDFrL0UvVkNNK0pjakJLVEtSYzVQaWtzWXl2Z3h4SUJQZTRjSnRsWUdSRkhHSkt3MDFtYVNsWTdERkZmWHAza2QzLytmeWs0TjlJKzBmcVRJQmNyQ0FMM0pCOERBWFMzQVJ2NVhnMWpXckZzT3o2WlBxcFUyREdTYVdhcHI5clRyWFpORG90a0YrbDZvU2tVUmNMN2g2UUdLNkVPNFFUa1NJTEF5dWprRVE1UThuVlNhWUJPYmpNalltbktHN1RtZVNmNitLMmNmNXZtbFh4ZzMrRDVVSjdrVk1Bc0ducUh1ZWlHU0I5WEVDUm9OY2NienBwZXZKN0hVMXpWampKaURyemdGU3JlOFI1VmZIcVR5VG1mM2hkMGlvUXBNUTF6czdPNHlaakZzZjg0UDlMeGw1VVFReThCa0d0eFVUcDVzeHpuUmVjcFgyL1V1bTYwQ2FCRngwM3Vka2N1MHdEc0FJbkF6M0NhRmpXYk10TVhWOUN3ekRwWTZVSDFoZHJzS21LNExUdkN4Q0ZjbUpDNXpvZGt5YUxJL0pPVHB2WHpPNVJqTU1JeXMxZ1JueXlBaEdDWStuOFJKRTExOWR2Q0QwYmg0dUVVSmgyQWM5blBZQjByNmVOV3FVSnVsZjAzdUVEVVBUem03MjVkTGgrNllaV09GN0FTczVGeG1pV3Z5dUNOMWNaSUQ5c05lMjJMa3VnUDBtcWdMeWMxbXB6WFJtcXlKRlA5ZGk1SzJ3YThLQkVGalNmaDNjcHNCMWk2MW83QkRJSDRqUDN3bUFEMndRNDY4N2FDSjBja0VBL1R1aGx6ZFpIK09QZS9mdW9kQnNhR05qNDkvRVNQaXRPR2hjaUlTZWpIM1gwVjlMN0xvdWNDdUl6M1d4L1g1Z1lPQS8zcjE3OS83YmI3LzFBRWFjR1JHUjJkbFpWeGhhcDRXWUhoSGMzQzFPeXVoV1AveWFxZG5sSDFYaTJHUU5hU0dXY3dLN0RXRnM3VTVQVDVkaGNNR0ZzbVRKa2lWTGxpeFpzbVRKa2lWTGxpeFpzbVRKa2lWTGxpeFpzbVRKa2lWTGxpeFpzdlRGVWFPQTF0SXZrakEzNll6dGhsOHUvVDhBT0xSUGJ5ODRCQUFBQUNWMFJWaDBaR0YwWlRwamNtVmhkR1VBTWpBeU1TMHdOQzB5T0ZReU1UbzFORG94TkNzd01Eb3dNQ2xTTmNVQUFBQWxkRVZZZEdSaGRHVTZiVzlrYVdaNUFESXdNakV0TURRdE1qaFVNakU2TlRRNk1UUXJNREE2TURCWUQ0MTVBQUFBQUVsRlRrU3VRbUNDXCJ9KSkpKX19LDI1NTU4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvPW4oNjcyOTQpO2Z1bmN0aW9uIGEoKXtyZXR1cm4gYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwic3ZnXCIsYSh7dmlld0JveDpcIjAgMCA4MCA4MFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMCA0MEMwIDE3LjkwOSAxNy45MDkgMCA0MCAwczQwIDE3LjkwOSA0MCA0MC0xNy45MDkgNDAtNDAgNDBTMCA2Mi4wOTEgMCA0MFpcIixmaWxsOlwiIzJBNjRERVwifSkpLGl8fChpPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIm01MS4zMyAyNi4xMzgtNC4wNDcuMDAzYy0zLjE3NCAwLTMuNzkgMS41MDctMy43OSAzLjcydjQuODhoNy41NzFsLS45ODYgNy42NDZoLTYuNTg0VjYySDM1LjZWNDIuMzg3SDI5VjM0Ljc0aDYuNnYtNS42MzZDMzUuNiAyMi41NjEgMzkuNTk3IDE5IDQ1LjQzMSAxOWMyLjc5NSAwIDUuMTk4LjIwNyA1LjkuMzAxdjYuODM3WlwiLGZpbGw6XCIjZmZmXCJ9KSkpfX0sNDMwODI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt2aWV3Qm94OlwiMCAwIDgwIDgwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0wIDQwQzAgMTcuOTA5IDE3LjkwOSAwIDQwIDBzNDAgMTcuOTA5IDQwIDQwLTE3LjkwOSA0MC00MCA0MFMwIDYyLjA5MSAwIDQwWlwiLGZpbGw6XCIjMzNDNUNFXCJ9KSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTM5LjUgNjJDNTMuMDMxIDYyIDY0IDUxLjkyNiA2NCAzOS41UzUzLjAzMSAxNyAzOS41IDE3QzI1Ljk3IDE3IDE1IDI3LjA3NCAxNSAzOS41YzAgNC4xMzYgMS4yMTUgOC4wMTEgMy4zMzUgMTEuMzQxTDE1IDU4LjczNWw5LjQ3NS0xLjQ2MkMyOC42MjQgNjAuMjM2IDMzLjgzOCA2MiAzOS41IDYyWlwiLGZpbGw6XCIjZmZmXCJ9KSkpfX0sNjIwNTU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG8sYT1uKDY3Mjk0KTtmdW5jdGlvbiBzKCl7cmV0dXJuIHM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxzLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcInN2Z1wiLHMoe3ZpZXdCb3g6XCIwIDAgODAgODBcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9YS5jcmVhdGVFbGVtZW50KFwicmVjdFwiLHt3aWR0aDo4MCxoZWlnaHQ6ODAscng6NDAsZmlsbDpcInVybCgjTWVzc2VuZ2VyX3N2Z19fYSlcIn0pKSxpfHwoaT1hLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMjQuODQgNjV2LTguNTQ5QzE5LjQ0NSA1Mi4zNzcgMTYgNDYuMTcxIDE2IDM5LjIyMiAxNiAyNi45NSAyNi43NDUgMTcgNDAgMTdjMTMuMjU2IDAgMjQgOS45NSAyNCAyMi4yMjIgMCAxMi4yNzItMTAuNzQ0IDIyLjIyMi0yNCAyMi4yMjItMi40NzMgMC00Ljg2LS4zNDYtNy4xMDUtLjk4OEwyNC44NCA2NVptLS4zNDYtMTguMjY1IDEyLjk0My0xMy42IDYuMjEyIDYuMzAyIDExLjY0OS02LjMwMS0xMi44NyAxMy42LTYuMTU1LTYuNDE0LTExLjc3OSA2LjQxM1pcIixmaWxsOlwiI2ZmZlwifSkpLG98fChvPWEuY3JlYXRlRWxlbWVudChcImRlZnNcIixudWxsLGEuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIse2lkOlwiTWVzc2VuZ2VyX3N2Z19fYVwiLHgxOjQwLHkxOjUuNDA4LHgyOjQwLHkyOjc2LjQ4LGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwifSxhLmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIse3N0b3BDb2xvcjpcIiMwMEM2RkZcIn0pLGEuY3JlYXRlRWxlbWVudChcInN0b3BcIix7b2Zmc2V0OjEsc3RvcENvbG9yOlwiIzAwNjhGRlwifSkpKSkpfX0sNTU5Mjc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt2aWV3Qm94OlwiMCAwIDMyIDMyXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInJlY3RcIix7d2lkdGg6MzIsaGVpZ2h0OjMyLHJ4OjE2LGZpbGw6XCIjZmZmXCJ9KSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTE1Ljk4NyAwQzcuMTU3IDAgMCA3LjE1OCAwIDE1Ljk4N2MwIDYuNzc2IDQuMjEgMTIuNTY2IDEwLjE1OCAxNC44OTUtLjE0NS0xLjI2NC0uMjYzLTMuMjEuMDUzLTQuNTkzLjI4OS0xLjI1IDEuODY4LTcuOTQ3IDEuODY4LTcuOTQ3cy0uNDc0LS45Ni0uNDc0LTIuMzY4YzAtMi4yMjQgMS4yOS0zLjg4MiAyLjg5NS0zLjg4MiAxLjM2OCAwIDIuMDI2IDEuMDI2IDIuMDI2IDIuMjUgMCAxLjM2OC0uODY4IDMuNDIxLTEuMzI5IDUuMzMtLjM4MSAxLjU5MS44MDMgMi44OTQgMi4zNjkgMi44OTQgMi44NDIgMCA1LjAyNi0zIDUuMDI2LTcuMzE2IDAtMy44MjktMi43NS02LjUtNi42ODQtNi41LTQuNTUzIDAtNy4yMjQgMy40MDgtNy4yMjQgNi45MzQgMCAxLjM2OS41MjcgMi44NDIgMS4xODQgMy42NDVhLjQ3Ni40NzYgMCAwIDEgLjEwNi40NmMtLjExOS41LS4zOTUgMS41OTMtLjQ0OCAxLjgxNi0uMDY1LjI5LS4yMzcuMzU1LS41NC4yMS0yLS45MzMtMy4yNS0zLjg0MS0zLjI1LTYuMTk3IDAtNS4wNCAzLjY1OS05LjY3IDEwLjU2Ny05LjY3IDUuNTQgMCA5Ljg1NSAzLjk0NyA5Ljg1NSA5LjIzNiAwIDUuNTEzLTMuNDc0IDkuOTQ4LTguMjkgOS45NDgtMS42MTggMC0zLjE0NC0uODQzLTMuNjU3LTEuODQzbC0xIDMuODAzYy0uMzU2IDEuMzk1LTEuMzMgMy4xMzItMS45ODcgNC4xOTggMS41LjQ2IDMuMDc5LjcxIDQuNzM2LjcxIDguODMgMCAxNS45ODctNy4xNTggMTUuOTg3LTE1Ljk4N0MzMS45NzQgNy4xNTggMjQuODE2IDAgMTUuOTg3IDBaXCIsZmlsbDpcIiNFNjAwMjNcIn0pKSl9fSwxMTYwNzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbz1uKDY3Mjk0KTtmdW5jdGlvbiBhKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInN2Z1wiLGEoe3ZpZXdCb3g6XCIwIDAgMzIgMzJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9by5jcmVhdGVFbGVtZW50KFwicmVjdFwiLHt3aWR0aDozMixoZWlnaHQ6MzIscng6MTYsZmlsbDpcIiNGRjQ1MDBcIn0pKSxpfHwoaT1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMjYuNjczIDE2YzAtMS4yOTgtMS4wNS0yLjMzLTIuMzMtMi4zMy0uNjMgMC0xLjIwMi4yNDktMS42MjIuNjUtMS42MDQtMS4xNDYtMy44LTEuODktNi4yNDQtMS45ODZsMS4wNy01LjAwMiAzLjQ3NC43NDRhMS42NjIgMS42NjIgMCAxIDAgMS42NjEtMS43MzcgMS42NiAxLjY2IDAgMCAwLTEuNDg5LjkzNmwtMy44NzUtLjgyMmEuNDA2LjQwNiAwIDAgMC0uMzA2LjA1OC4zNy4zNyAwIDAgMC0uMTcyLjI2N2wtMS4xODQgNS41NzVjLTIuNDgyLjA3Ny00LjcxNi44MjEtNi4zMzkgMS45ODZhMi4zNDUgMi4zNDUgMCAwIDAtMS42MjItLjY1IDIuMzI2IDIuMzI2IDAgMCAwLS45NTUgNC40NSA0LjIwNSA0LjIwNSAwIDAgMC0uMDU3LjcwNmMwIDMuNTkgNC4xODEgNi41MSA5LjMzNiA2LjUxczkuMzM3LTIuOTAyIDkuMzM3LTYuNTFjMC0uMjMtLjAyLS40NzctLjA1Ny0uNzA2QTIuMzUyIDIuMzUyIDAgMCAwIDI2LjY3MyAxNlptLTE2IDEuNjYxYTEuNjYyIDEuNjYyIDAgMCAxIDMuMzIyIDBjMCAuOTE2LS43NDQgMS42NjEtMS42NiAxLjY2MS0uOTE3LjAyLTEuNjYyLS43NDUtMS42NjItMS42NjFabTkuMjk4IDQuNDFjLTEuMTQ1IDEuMTQ2LTMuMzIyIDEuMjIzLTMuOTUyIDEuMjIzLS42NDkgMC0yLjgyNS0uMDk2LTMuOTUyLTEuMjIyYS40MjcuNDI3IDAgMCAxIDAtLjYxMS40MjcuNDI3IDAgMCAxIC42MSAwYy43MjYuNzI1IDIuMjU0Ljk3MyAzLjM0Mi45NzMgMS4wODkgMCAyLjYzNS0uMjQ4IDMuMzQxLS45NzRhLjQyNy40MjcgMCAwIDEgLjYxMSAwIC40NjUuNDY1IDAgMCAxIDAgLjYxMlptLS4zMDUtMi43M2ExLjY2MiAxLjY2MiAwIDAgMSAwLTMuMzIyYy45MTcgMCAxLjY2MS43NDUgMS42NjEgMS42NjEgMCAuODk3LS43NDQgMS42NjEtMS42NjEgMS42NjFaXCIsZmlsbDpcIiNmZmZcIn0pKSl9fSwxNzA0NjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbyxhLHMsYyx1PW4oNjcyOTQpO2Z1bmN0aW9uIGwoKXtyZXR1cm4gbD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gdS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbCh7dmlld0JveDpcIjAgMCA4MCA4MFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj11LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMCA0MEMwIDE3LjkwOSAxNy45MDkgMCA0MCAwczQwIDE3LjkwOSA0MCA0MC0xNy45MDkgNDAtNDAgNDBTMCA2Mi4wOTEgMCA0MFpcIixmaWxsOlwiIzAxMDEwMVwifSkpLGl8fChpPXUuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zNi4xNjUgMzUuMzN2LTEuNzE1YTEyLjYzIDEyLjYzIDAgMCAwLTEuNzk5LS4xNTUgMTMuMzM3IDEzLjMzNyAwIDAgMC03LjY0NSAyNC4yODUgMTMuMzIzIDEzLjMyMyAwIDAgMSA5LjQ0NC0yMi40MTZaXCIsZmlsbDpcIiM2OUM5RDFcIn0pKSxvfHwobz11LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMzYuNDg4IDU0Ljc1YTYuMSA2LjEgMCAwIDAgNi4wODYtNS44MzJWMTkuODQxaDUuMzEyQTkuOTczIDkuOTczIDAgMCAxIDQ3LjczIDE4aC03LjI2NXYyOS4wNWE2LjEgNi4xIDAgMCAxLTYuMDg2IDUuODczIDYuMTgzIDYuMTgzIDAgMCAxLTIuODEtLjcwMiA2LjA5OSA2LjA5OSAwIDAgMCA0LjkxOCAyLjUzWk01Ny44MDcgMjkuNzA2VjI4LjA5YTkuOTIxIDkuOTIxIDAgMCAxLTUuNDk1LTEuNjU4IDEwLjA3NiAxMC4wNzYgMCAwIDAgNS40OTUgMy4yNzRaXCIsZmlsbDpcIiM2OUM5RDFcIn0pKSxhfHwoYT11LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNTIuMzEzIDI2LjQzMmExMC4wMDcgMTAuMDA3IDAgMCAxLTIuNDg4LTYuNjA1aC0xLjk0YTEwLjA2MiAxMC4wNjIgMCAwIDAgNC40MjggNi42MDVaTTM0LjM2NiA0MC43MjVhNi4xIDYuMSAwIDAgMC0yLjgxIDExLjQ5NiA2LjA4NiA2LjA4NiAwIDAgMSA0LjkzMi05LjY1NWMuNjEuMDA4IDEuMjE2LjEwMiAxLjguMjgxdi03LjM5MmExMi43NDMgMTIuNzQzIDAgMCAwLTEuOC0uMTRoLS4zMjN2NS42MjFhNi4yNTIgNi4yNTIgMCAwIDAtMS43OTktLjIxWlwiLGZpbGw6XCIjRUUxQzUxXCJ9KSksc3x8KHM9dS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTU3LjgwOCAyOS43MDd2NS42MjFhMTcuMjQ1IDE3LjI0NSAwIDAgMS0xMC4wNzctMy4yNzR2MTQuNzdjLS4wMTUgNy4zNy01Ljk5NSAxMy4zMzctMTMuMzY1IDEzLjMzN2ExMy4yMjUgMTMuMjI1IDAgMCAxLTcuNjQ1LTIuNDE3IDEzLjMzNyAxMy4zMzcgMCAwIDAgMjMuMTA0LTkuMDc4VjMzLjkzN2ExNy4yNzMgMTcuMjczIDAgMCAwIDEwLjA5IDMuMjMzdi03LjIzOGExMC4yOTQgMTAuMjk0IDAgMCAxLTIuMTA3LS4yMjVaXCIsZmlsbDpcIiNFRTFDNTFcIn0pKSxjfHwoYz11LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNDcuNzMxIDQ2LjgyNHYtMTQuNzdhMTcuMjQ0IDE3LjI0NCAwIDAgMCAxMC4wOSAzLjIzMnYtNS42MjFhMTAuMDc3IDEwLjA3NyAwIDAgMS01LjUwOC0zLjIzM2MtMi4zMi0xLjUtMy45Mi0zLjg4OS00LjQyNy02LjYwNWgtNS4zMTJ2MjkuMDkxQTYuMDk5IDYuMDk5IDAgMCAxIDMxLjU0IDUyLjI1YTYuMSA2LjEgMCAwIDEgMi44MTEtMTEuNDk2Yy42MS4wMDUgMS4yMTYuMSAxLjguMjgxdi01LjYyMWExMy4zMjMgMTMuMzIzIDAgMCAwLTkuNDQ1IDIyLjQ4NiAxMy4yMjQgMTMuMjI0IDAgMCAwIDcuNjYgMi4yNjJjNy4zNyAwIDEzLjM0OS01Ljk2NiAxMy4zNjQtMTMuMzM3WlwiLGZpbGw6XCIjRkVGRUZFXCJ9KSkpfX0sNDEwMzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbz1uKDY3Mjk0KTtmdW5jdGlvbiBhKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInN2Z1wiLGEoe3ZpZXdCb3g6XCIwIDAgODAgODBcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTAgNDBDMCAxNy45MDkgMTcuOTA5IDAgNDAgMHM0MCAxNy45MDkgNDAgNDAtMTcuOTA5IDQwLTQwIDQwUzAgNjIuMDkxIDAgNDBaXCIsZmlsbDpcIiMzMUE2RkZcIn0pKSxpfHwoaT1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNjAgMjguNjdhMTUuNTU1IDE1LjU1NSAwIDAgMS00LjQ3OCAxLjIzMiA3Ljg0MiA3Ljg0MiAwIDAgMCAzLjQyOC00LjMzIDE1LjYgMTUuNiAwIDAgMS00Ljk1IDEuOUE3Ljc3MyA3Ljc3MyAwIDAgMCA0OC4zMSAyNWMtNC4zMDcgMC03Ljc5NyAzLjUwMy03Ljc5NyA3LjgyNiAwIC42MTMuMDY5IDEuMjEuMjAyIDEuNzgzLTYuNDgtLjMyNi0xMi4yMjQtMy40NDItMTYuMDctOC4xNzdhNy44MTcgNy44MTcgMCAwIDAtMS4wNTUgMy45MzUgNy44MzEgNy44MzEgMCAwIDAgMy40NjggNi41MTMgNy43MzUgNy43MzUgMCAwIDEtMy41My0uOTc4Yy0uMDAyLjAzMy0uMDAyLjA2NS0uMDAyLjA5OWE3LjgyMyA3LjgyMyAwIDAgMCA2LjI1NSA3LjY3MyA3Ljc4MyA3Ljc4MyAwIDAgMS0zLjUyMS4xMzVjLjk5MSAzLjEwOSAzLjg3IDUuMzcxIDcuMjgyIDUuNDM0YTE1LjYwNCAxNS42MDQgMCAwIDEtOS42ODIgMy4zNWMtLjYzIDAtMS4yNS0uMDM3LTEuODYtLjEwOEEyMi4wMSAyMi4wMSAwIDAgMCAzMy45NTEgNTZjMTQuMzQgMCAyMi4xODEtMTEuOTI2IDIyLjE4MS0yMi4yNjcgMC0uMzQtLjAwNy0uNjc3LS4wMjItMS4wMTNBMTUuODQ1IDE1Ljg0NSAwIDAgMCA2MCAyOC42N1pcIixmaWxsOlwiI2ZmZlwifSkpKX19LDMxMjI5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvPW4oNjcyOTQpO2Z1bmN0aW9uIGEoKXtyZXR1cm4gYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwic3ZnXCIsYSh7dmlld0JveDpcIjAgMCA4MCA4MFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMCA0MEMwIDE3LjkwOSAxNy45MDkgMCA0MCAwczQwIDE3LjkwOSA0MCA0MC0xNy45MDkgNDAtNDAgNDBTMCA2Mi4wOTEgMCA0MFpcIixmaWxsOlwiIzI1RDM2NlwifSkpLGl8fChpPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk00MC4zMTggNjMuMjU0aC0uMDFjLTMuOTgtLjAwMi03Ljg5Mi0xLTExLjM2Ni0yLjg5NmwtMTIuNjA5IDMuMzA4IDMuMzc1LTEyLjMyNWEyMy43NDIgMjMuNzQyIDAgMCAxLTMuMTc1LTExLjg5MWMuMDA1LTEzLjExNSAxMC42NzUtMjMuNzg0IDIzLjc4NS0yMy43ODQgNi4zNjMuMDAzIDEyLjMzNSAyLjQ4IDE2LjgyNiA2Ljk3NmEyMy42NDEgMjMuNjQxIDAgMCAxIDYuOTYgMTYuODI2Yy0uMDA2IDEzLjExMi0xMC42NzIgMjMuNzgtMjMuNzg2IDIzLjc4NVptLTEwLjc5Mi03LjIwMS43MjIuNDI4YTE5Ljc0IDE5Ljc0IDAgMCAwIDEwLjA2MiAyLjc1NmguMDA4YzEwLjg5NyAwIDE5Ljc2NS04Ljg3IDE5Ljc3LTE5Ljc3YTE5LjY1IDE5LjY1IDAgMCAwLTUuNzg1LTEzLjk4NiAxOS42MzQgMTkuNjM0IDAgMCAwLTEzLjk3Ny01Ljc5OGMtMTAuOTA0IDAtMTkuNzczIDguODY4LTE5Ljc3NyAxOS43NjhhMTkuNzIzIDE5LjcyMyAwIDAgMCAzLjAyMiAxMC41MjFsLjQ3Ljc0OC0xLjk5NyA3LjI5NSA3LjQ4Mi0xLjk2MlptMjIuNzc1LTEwLjkyOGMtLjE0OC0uMjQ4LS41NDQtLjM5Ny0xLjEzOS0uNjk1LS41OTQtLjI5Ny0zLjUxNi0xLjczNS00LjA2LTEuOTMzLS41NDUtLjE5OS0uOTQyLS4yOTctMS4zMzguMjk3LS4zOTYuNTk1LTEuNTM1IDEuOTM0LTEuODgyIDIuMzMtLjM0Ni4zOTctLjY5My40NDctMS4yODcuMTUtLjU5NS0uMjk4LTIuNTEtLjkyNi00Ljc4LTIuOTUtMS43NjctMS41NzYtMi45Ni0zLjUyMy0zLjMwNi00LjExOC0uMzQ3LS41OTUtLjAzNy0uOTE2LjI2LTEuMjEzLjI2OC0uMjY2LjU5NS0uNjk0Ljg5Mi0xLjA0LjI5Ny0uMzQ4LjM5Ni0uNTk2LjU5NC0uOTkyLjE5OS0uMzk3LjEtLjc0NC0uMDUtMS4wNDEtLjE0OC0uMjk4LTEuMzM2LTMuMjIzLTEuODMxLTQuNDEzLS40ODMtMS4xNTktLjk3My0xLjAwMi0xLjMzOC0xLjAyYTIzLjU5NCAyMy41OTQgMCAwIDAtMS4xMzktLjAyMWMtLjM5NiAwLTEuMDQuMTQ4LTEuNTg0Ljc0My0uNTQ1LjU5NS0yLjA4IDIuMDMzLTIuMDggNC45NTggMCAyLjkyNiAyLjEyOSA1Ljc1MiAyLjQyNiA2LjE0OC4yOTcuMzk3IDQuMTkgNi40IDEwLjE1MyA4Ljk3NGEzNC4xNiAzNC4xNiAwIDAgMCAzLjM4OCAxLjI1MmMxLjQyMy40NTMgMi43Mi4zODkgMy43NDMuMjM2IDEuMTQyLS4xNzEgMy41MTYtMS40MzggNC4wMTItMi44MjYuNDk1LTEuMzg5LjQ5NS0yLjU3OS4zNDYtMi44MjZaXCIsZmlsbDpcIiNGREZERkRcIn0pKSl9fSw1NjIyMDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbyxhPW4oNjcyOTQpO2Z1bmN0aW9uIHMoKXtyZXR1cm4gcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwic3ZnXCIscyh7dmlld0JveDpcIjAgMCA4MCA4MFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1hLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMCA0MEMwIDE3LjkwOSAxNy45MDkgMCA0MCAwczQwIDE3LjkwOSA0MCA0MC0xNy45MDkgNDAtNDAgNDBTMCA2Mi4wOTEgMCA0MFpcIixmaWxsOlwidXJsKCNpTWVzc2FnZXNfc3ZnX19hKVwifSkpLGl8fChpPWEuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xNSAzOC41NjJDMTUgMjYuNjQyIDI2LjI1MSAxNy45OCA0MCAxOGMxMy43NDkuMDIgMjUgOC42NDMgMjUgMjAuNTYyIDAgMTEuOTItMTIuMjAyIDIwLjU2My0yNSAyMC41NjMtMi4xIDAtNC40MjctLjMwMy02LjM1LS40NDctMS45MjUtLjE0NC01LjgzNSAzLjQ4My0xMC42OTUgMy4wMzMgMi42NDQtMS43OTkgMy42NzQtMy44ODggMy45OC01LjcwNUMxOS45OSA1Mi40NjcgMTUgNDYuMTg1IDE1IDM4LjU2MlpcIixmaWxsOlwiI2ZmZlwifSkpLG98fChvPWEuY3JlYXRlRWxlbWVudChcImRlZnNcIixudWxsLGEuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIse2lkOlwiaU1lc3NhZ2VzX3N2Z19fYVwiLHgxOjQwLHkxOjAseDI6NDAseTI6ODAsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCJ9LGEuY3JlYXRlRWxlbWVudChcInN0b3BcIix7c3RvcENvbG9yOlwiIzY3RkY4MVwifSksYS5jcmVhdGVFbGVtZW50KFwic3RvcFwiLHtvZmZzZXQ6MSxzdG9wQ29sb3I6XCIjMDFCNDFGXCJ9KSkpKSl9fSwzNDAxOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvPW4oNjcyOTQpO2Z1bmN0aW9uIGEoKXtyZXR1cm4gYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwic3ZnXCIsYSh7dmlld0JveDpcIjAgMCA4MCA4MFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1vLmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIse3dpZHRoOjgwLGhlaWdodDo4MCxyeDo0MCxmaWxsOlwiI0I5QzBDN1wifSkpLGl8fChpPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk00MCA0My43NWEzLjc1IDMuNzUgMCAxIDEgMC03LjUgMy43NSAzLjc1IDAgMCAxIDAgNy41Wm0tMTAuNSAwYTMuNzUgMy43NSAwIDEgMSAwLTcuNSAzLjc1IDMuNzUgMCAwIDEgMCA3LjVabTIxIDBhMy43NSAzLjc1IDAgMSAxIDAtNy41IDMuNzUgMy43NSAwIDAgMSAwIDcuNVpcIixmaWxsOlwiI2ZmZlwifSkpKX19LDM4OTI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MjQsaGVpZ2h0OjI0LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS4wMSAxNGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTYuOTggMGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRabTktMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDAgMSA0IDBaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSl9fSw1NDE0MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoxNixoZWlnaHQ6MTYsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zLjM0IDkuMzMzYTEuMzMzIDEuMzMzIDAgMSAwIDAtMi42NjYgMS4zMzMgMS4zMzMgMCAwIDAgMCAyLjY2NlptNC42NTMgMGExLjMzMyAxLjMzMyAwIDEgMCAwLTIuNjY2IDEuMzMzIDEuMzMzIDAgMCAwIDAgMi42NjZabTYtMS4zMzNhMS4zMzMgMS4zMzMgMCAxIDEtMi42NjYgMCAxLjMzMyAxLjMzMyAwIDAgMSAyLjY2NiAwWlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sNjI5OTE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMi41MDUgN2ExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTMuNDkgMGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJabTQuNS0xYTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFpcIixmaWxsOlwiIzEyMTMxNFwifSkpKX19LDI2OTM4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OlwiMCAwIDE3IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk05LjIxMiAxNC42NTlhLjkxNC45MTQgMCAwIDEtMS40MjMgMGMtMy4wODItMy45NDUtNC42MjItNi43OTQtNC42MjItOC41NDZDMy4xNjcgMy4yODkgNS41NTUgMSA4LjUgMWMyLjk0NiAwIDUuMzMzIDIuMjkgNS4zMzMgNS4xMTMgMCAxLjc1Mi0xLjU0IDQuNjAxLTQuNjIxIDguNTQ2Wk04LjUgOC42NjljMS40NzMgMCAyLjY2Ny0xLjE0NSAyLjY2Ny0yLjU1NyAwLTEuNDExLTEuMTk0LTIuNTU2LTIuNjY3LTIuNTU2LTEuNDczIDAtMi42NjcgMS4xNDUtMi42NjcgMi41NTYgMCAxLjQxMiAxLjE5NCAyLjU1NyAyLjY2NyAyLjU1N1pcIixmaWxsOlwiI0Q0RDVENlwifSkpKX19LDQzNTA3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjE2LGhlaWdodDoxNix2aWV3Qm94OlwiMCAwIDE3IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk05LjIxMiAxNC42NTlhLjkxNC45MTQgMCAwIDEtMS40MjMgMGMtMy4wODItMy45NDUtNC42MjItNi43OTQtNC42MjItOC41NDZDMy4xNjcgMy4yODkgNS41NTUgMSA4LjUgMWMyLjk0NiAwIDUuMzMzIDIuMjkgNS4zMzMgNS4xMTMgMCAxLjc1Mi0xLjU0IDQuNjAxLTQuNjIxIDguNTQ2Wk04LjUgOC42NjljMS40NzMgMCAyLjY2Ny0xLjE0NSAyLjY2Ny0yLjU1NyAwLTEuNDExLTEuMTk0LTIuNTU2LTIuNjY3LTIuNTU2LTEuNDczIDAtMi42NjcgMS4xNDUtMi42NjcgMi41NTYgMCAxLjQxMiAxLjE5NCAyLjU1NyAyLjY2NyAyLjU1N1pcIixmaWxsOlwiI0Q0RDVENlwifSkpKX19LDgyMDYzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjEyLGhlaWdodDoxMix2aWV3Qm94OlwiMCAwIDE3IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk05LjIxMiAxNC42NTlhLjkxNC45MTQgMCAwIDEtMS40MjMgMGMtMy4wODItMy45NDUtNC42MjItNi43OTQtNC42MjItOC41NDZDMy4xNjcgMy4yODkgNS41NTUgMSA4LjUgMWMyLjk0NiAwIDUuMzMzIDIuMjkgNS4zMzMgNS4xMTMgMCAxLjc1Mi0xLjU0IDQuNjAxLTQuNjIxIDguNTQ2Wk04LjUgOC42NjljMS40NzMgMCAyLjY2Ny0xLjE0NSAyLjY2Ny0yLjU1NyAwLTEuNDExLTEuMTk0LTIuNTU2LTIuNjY3LTIuNTU2LTEuNDczIDAtMi42NjcgMS4xNDUtMi42NjcgMi41NTYgMCAxLjQxMiAxLjE5NCAyLjU1NyAyLjY2NyAyLjU1N1pcIixmaWxsOlwiI0Q0RDVENlwifSkpKX19LDQzMzAyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvPW4oNjcyOTQpO2Z1bmN0aW9uIGEoKXtyZXR1cm4gYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwic3ZnXCIsYSh7d2lkdGg6MjQsaGVpZ2h0OjI0LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTEgMTIuMzlhMy42OSAzLjY5IDAgMSAxLS4wNi03LjM4IDMuNjkgMy42OSAwIDAgMSAuMDYgNy4zOFptMC01LjYyYTEuOTQgMS45NCAwIDEgMC0uMDYgMy44OEExLjk0IDEuOTQgMCAwIDAgMTEgNi43N1pNMTEgMjEuODNhOS44NCA5Ljg0IDAgMCAxLTcuNjgtMy42M2wtLjIyLS4yN3YtLjM1YTQuODkgNC44OSAwIDAgMSA0LjktNC41aDZhNC44OSA0Ljg5IDAgMCAxIDQuODQgNC41di4zNWwtLjIyLjI3QTkuODUgOS44NSAwIDAgMSAxMSAyMS44M1ptLTYuMDgtNC40NWE4LjEzIDguMTMgMCAwIDAgMTIuMSAwIDMuMTMgMy4xMyAwIDAgMC0zLTIuNTVIOGEzLjEyIDMuMTIgMCAwIDAtMy4wOCAyLjU1Wk0xOS4zNyA0aC0xLjc1djVoMS43NVY0WlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIxIDUuNjJoLTV2MS43NWg1VjUuNjJaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSl9fSw2ODc1MTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbz1uKDY3Mjk0KTtmdW5jdGlvbiBhKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInN2Z1wiLGEoe3dpZHRoOjE2LGhlaWdodDoxNixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTcuMzMzIDguMjZhMi40NiAyLjQ2IDAgMSAxLS4wNC00LjkyIDIuNDYgMi40NiAwIDAgMSAuMDQgNC45MlptMC0zLjc0N2ExLjI5MyAxLjI5MyAwIDEgMC0uMDQgMi41ODcgMS4yOTMgMS4yOTMgMCAwIDAgLjA0LTIuNTg3Wk03LjMzMyAxNC41NTNhNi41NiA2LjU2IDAgMCAxLTUuMTItMi40MmwtLjE0Ni0uMTh2LS4yMzNhMy4yNiAzLjI2IDAgMCAxIDMuMjY2LTNoNGEzLjI2IDMuMjYgMCAwIDEgMy4yMjcgM3YuMjMzbC0uMTQ3LjE4YTYuNTY2IDYuNTY2IDAgMCAxLTUuMDggMi40MlpNMy4yOCAxMS41ODdhNS40MiA1LjQyIDAgMCAwIDguMDY3IDAgMi4wODcgMi4wODcgMCAwIDAtMi0xLjdINS4zMzNhMi4wOCAyLjA4IDAgMCAwLTIuMDUzIDEuN1pNMTIuOTEzIDIuNjY3aC0xLjE2NlY2aDEuMTY2VjIuNjY3WlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTE0IDMuNzQ3aC0zLjMzM3YxLjE2NkgxNFYzLjc0N1pcIixmaWxsOlwiIzEyMTMxNFwifSkpKX19LDM3MzY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTksaGVpZ2h0OjE1LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTEuMDkxIDguMDhhOC41MjEgOC41MjEgMCAwIDEtLjA3LS4wNjEgNC4wMjYgNC4wMjYgMCAwIDEtLjEyMy0uMTI0Yy0uMjE0LS4yMjQtLjI3LS4zMjEtLjM5My0uNS0uNzI0LTEuMDQtMS4xODMtMi40MzYtMS4xODMtMy40NzhDOS4zMjIgMi4wMyAxMC44MjcuNSAxMi42ODUuNWMxLjg1NyAwIDMuMzYyIDEuNTMgMy4zNjIgMy40MTcgMCAxLjI1LS42NjIgMy4wMTMtMS42NDkgNC4wNTgtLjAzNy4wMzgtLjA4LjA4LS4xMjkuMTI2YS42MDguNjA4IDAgMCAwLS4wMS44ODZsLjA4LjA3M2MuMzE0LjI3OC43NTEuNTc5IDEuMzg2Ljg5LjU2My4yNzUgMS4yMi42IDEuNzAxLjk0OC4xMjIuMDg4LjI0Mi4xNzguMzU4LjI3LjIwNC4xOTIuMzQzLjM0NC40MTYuNDU2YTEuODQ4IDEuODQ4IDAgMCAxLS4xMzggMi4yMDQgMS45NTUgMS45NTUgMCAwIDEtMS4xMy42NmMtMS4yNy4yNDMtMi43NzUuMzUxLTQuMjQ2LjM1MS0xLjI5OSAwLTIuNjEyLS4wODQtMy43NTQtLjI3M2E4Ljc3NSA4Ljc3NSAwIDAgMS0uNjAyLS4xNWMtMS4wNC0uMjgtMS42NS0xLjMyNy0xLjM2Mi0yLjMzOC4xMDItLjM1OS4zMS0uNjguNi0uOTI1YTcuMTkgNy4xOSAwIDAgMSAyLjA3OS0xLjIwNGMuNzEtLjI2NiAxLjE0Mi0uNjA1IDEuNDQzLS45NDRhMi40OCAyLjQ4IDAgMCAwIC4wNzMtLjA4Ny42MDguNjA4IDAgMCAwLS4wNzItLjgzOFptLTYuMzEtMi4xMzRoMS45NWEuOTUzLjk1MyAwIDEgMSAwIDEuOTA2aC0xLjk1djIuMDA3YS45MzkuOTM5IDAgMSAxLTEuODc4IDBWNy44NTJILjk1M2EuOTUzLjk1MyAwIDEgMSAwLTEuOTA2aDEuOTVWMy45NGEuOTM5LjkzOSAwIDEgMSAxLjg3OCAwdjIuMDA3WlwiLGZpbGw6XCIjZmZmXCJ9KSkpfX0sOTg1MjY6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt3aWR0aDoxMixoZWlnaHQ6MTIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk01LjUgNi4xOTVhMS44NDUgMS44NDUgMCAxIDEtLjAzLTMuNjkgMS44NDUgMS44NDUgMCAwIDEgLjAzIDMuNjlabTAtMi44MWEuOTcuOTcgMCAxIDAtLjAzIDEuOTQuOTcuOTcgMCAwIDAgLjAzLTEuOTRaTTUuNSAxMC45MTVBNC45MiA0LjkyIDAgMCAxIDEuNjYgOS4xbC0uMTEtLjEzNVY4Ljc5QTIuNDQ1IDIuNDQ1IDAgMCAxIDQgNi41NGgzYTIuNDQ1IDIuNDQ1IDAgMCAxIDIuNDIgMi4yNXYuMTc1bC0uMTEuMTM1YTQuOTI1IDQuOTI1IDAgMCAxLTMuODEgMS44MTVaTTIuNDYgOC42OWE0LjA2NSA0LjA2NSAwIDAgMCA2LjA1IDAgMS41NjUgMS41NjUgMCAwIDAtMS41LTEuMjc1SDRBMS41NiAxLjU2IDAgMCAwIDIuNDYgOC42OVpNOS42ODUgMkg4LjgxdjIuNWguODc1VjJaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSxpfHwoaT1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTAuNSAyLjgxSDh2Ljg3NWgyLjVWMi44MVpcIixmaWxsOlwiIzEyMTMxNFwifSkpKX19LDQ5NzcwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjI0LGhlaWdodDoyNCxmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTEzLjcwNSAyLjAyMWExLjQzIDEuNDMgMCAwIDAtMS42NTEgMS4xNzEgMS40MzYgMS40MzYgMCAwIDAgMS4xNjMgMS42NjMgNy4wOTkgNy4wOTkgMCAwIDEgNC42MjQgMi45NDFjMi4yNjkgMy4yNCAxLjQ5NiA3LjczNS0xLjcyNSAxMC4wMTlzLTcuNjkgMS41MDYtOS45Ni0xLjczNWMtMS45NTktMi43OTctMS42NDEtNi41MjQuNTUzLTguOTYxbC4wMzguODExQTEuNDMgMS40MyAwIDAgMCA4LjI0IDkuM2MuMjgyLS4wMTQuNTQyLS4xMDguNzU2LS4yNi4zODYtLjI3NC42MjktLjczNC42MDYtMS4yNDNMOS40NSA0LjQ1NGEyLjE0IDIuMTQgMCAwIDAtLjY5Ny0xLjQ5NCAyLjExNiAyLjExNiAwIDAgMC0xLjU0Mi0uNTYzbC0zLjMyNS4xNTVhMS40MzUgMS40MzUgMCAwIDAtMS4zNjMgMS41MDMgMS40MzIgMS40MzIgMCAwIDAgMS40OTQgMS4zN2wuMzg0LS4wMTlDMS41IDguODIgMS4xMzIgMTMuOTA0IDMuODIgMTcuNzM2YzMuMTc5IDQuNTM3IDkuNDM0IDUuNjI3IDEzLjk0MiAyLjQzIDQuNTEtMy4xOTcgNS41OTMtOS40OSAyLjQxNS0xNC4wMjZhOS45MzMgOS45MzMgMCAwIDAtNi40NzItNC4xMTlaXCJ9KSkpfX0sOTMxODg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2NsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOS4wMjMgMi4wMTNhLjg1OC44NTggMCAwIDAtLjk5LjcwMi44NjEuODYxIDAgMCAwIC42OTcuOTk4IDQuMjYgNC4yNiAwIDAgMSAyLjc3NSAxLjc2NWMxLjM2MSAxLjk0NC44OTcgNC42NC0xLjAzNSA2LjAxMWE0LjI3NyA0LjI3NyAwIDAgMS01Ljk3Ni0xLjA0MSA0LjMzOCA0LjMzOCAwIDAgMSAuMzMxLTUuMzc3bC4wMjMuNDg3YS44NTguODU4IDAgMCAwIDEuMzUuNjY2Ljg2NS44NjUgMCAwIDAgLjM2My0uNzQ2TDYuNDcgMy40NzJhMS4yODQgMS4yODQgMCAwIDAtLjQxOC0uODk2IDEuMjcgMS4yNyAwIDAgMC0uOTI1LS4zMzhsLTEuOTk1LjA5M2EuODYxLjg2MSAwIDAgMC0uODE4LjkwMi44Ni44NiAwIDAgMCAuODk3LjgyMmwuMjMtLjAxMWMtMS43NCAyLjA0OC0xLjk2IDUuMDk4LS4zNDggNy4zOTggMS45MDcgMi43MjIgNS42NiAzLjM3NiA4LjM2NSAxLjQ1OCAyLjcwNy0xLjkxOSAzLjM1Ni01LjY5NCAxLjQ1LTguNDE2YTUuOTYgNS45NiAwIDAgMC0zLjg4NC0yLjQ3MVpcIn0pKSl9fSwyODM0NDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoxMixoZWlnaHQ6MTIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7Y2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk02LjY4MiAyLjAwOGEuNTcyLjU3MiAwIDAgMC0uNjYuNDY5LjU3NC41NzQgMCAwIDAgLjQ2NS42NjUgMi44NCAyLjg0IDAgMCAxIDEuODUgMS4xNzYgMi44OSAyLjg5IDAgMCAxLS42OSA0LjAwOCAyLjg1MSAyLjg1MSAwIDAgMS0zLjk4NS0uNjk0IDIuODkyIDIuODkyIDAgMCAxIC4yMjEtMy41ODVsLjAxNi4zMjVhLjU3Mi41NzIgMCAxIDAgMS4xNDItLjA1M2wtLjA2Mi0xLjMzOGEuODU2Ljg1NiAwIDAgMC0uODk1LS44MjJsLTEuMzMuMDYyYS41NzQuNTc0IDAgMCAwLS41NDUuNjAxLjU3My41NzMgMCAwIDAgLjU5Ny41NDhsLjE1NC0uMDA4YTQuMDQ4IDQuMDQ4IDAgMCAwLS4yMzIgNC45MzMgMy45OTIgMy45OTIgMCAwIDAgNS41NzcuOTcyIDQuMDQ3IDQuMDQ3IDAgMCAwIC45NjYtNS42MTEgMy45NzMgMy45NzMgMCAwIDAtMi41ODktMS42NDhaXCJ9KSkpfX0sODU0MjE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpPW4oNjcyOTQpO2Z1bmN0aW9uIG8oKXtyZXR1cm4gbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gaS5jcmVhdGVFbGVtZW50KFwic3ZnXCIsbyh7d2lkdGg6MjUsaGVpZ2h0OjI0LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1pLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTYuMjUgMjEuNTk2SDIwYy42NjMgMCAxLjI5OS0uMjQzIDEuNzY4LS42NzRhMi4yMTEgMi4yMTEgMCAwIDAgLjczMi0xLjYyN3YtMy40NWMwLS4zMDUuMTMyLS41OTcuMzY2LS44MTMuMjM1LS4yMTUuNTUzLS4zMzcuODg0LS4zMzcuMzMxIDAgLjY1LjEyMi44ODQuMzM3LjIzNC4yMTYuMzY2LjUwOC4zNjYuODEzdjMuNDVjMCAxLjIyLS41MjcgMi4zOS0xLjQ2NSAzLjI1My0uOTM3Ljg2My0yLjIwOSAxLjM0OC0zLjUzNSAxLjM0OEg1Yy0xLjMyNiAwLTIuNTk4LS40ODUtMy41MzYtMS4zNDhDLjUyNyAyMS42ODYgMCAyMC41MTYgMCAxOS4yOTZ2LTMuNDVjMC0uMzA2LjEzMi0uNTk4LjM2Ni0uODE0LjIzNS0uMjE1LjU1Mi0uMzM3Ljg4NC0uMzM3LjMzMiAwIC42NS4xMjIuODg0LjMzNy4yMzQuMjE2LjM2Ni41MDguMzY2LjgxM3YzLjQ1YzAgLjYxLjI2MyAxLjE5NS43MzIgMS42MjdBMi42MTUgMi42MTUgMCAwIDAgNSAyMS41OTZoMy43NWMuMzMyIDAgLjY1LjEyLjg4NC4zMzYuMjM0LjIxNi4zNjYuNTA5LjM2Ni44MTQgMCAuMzA1LS4xMzIuNTk3LS4zNjYuODEzYTEuMzA4IDEuMzA4IDAgMCAxLS44ODQuMzM2aDcuNWMtLjMzMiAwLS42NS0uMTItLjg4NC0uMzM2YTEuMTA2IDEuMTA2IDAgMCAxLS4zNjYtLjgxNGMwLS4zMDUuMTMyLS41OTcuMzY2LS44MTMuMjM1LS4yMTUuNTUzLS4zMzYuODg0LS4zMzZaTTIuNSA4Ljk0NmMwIC4zMDUtLjEzMi41OTctLjM2Ni44MTNhMS4zMDcgMS4zMDcgMCAwIDEtLjg4NC4zMzZjLS4zMzIgMC0uNjUtLjEyLS44ODQtLjMzNkExLjEwNSAxLjEwNSAwIDAgMSAwIDguOTQ2di0zLjQ1YzAtMS4yMi41MjctMi4zOSAxLjQ2NC0zLjI1M0MyLjQwMiAxLjM4IDMuNjc0Ljg5NiA1IC44OTZoMy43NWMuMzMyIDAgLjY1LjEyLjg4NC4zMzYuMjM0LjIxNi4zNjYuNTA5LjM2Ni44MTQgMCAuMzA1LS4xMzIuNTk3LS4zNjYuODEzYTEuMzA3IDEuMzA3IDAgMCAxLS44ODQuMzM3SDVjLS42NjMgMC0xLjI5OS4yNDItMS43NjguNjczQTIuMjEgMi4yMSAwIDAgMCAyLjUgNS40OTZ2My40NVptMjAgMHYtMy40NWEyLjIxIDIuMjEgMCAwIDAtLjczMi0xLjYyN0EyLjYxNSAyLjYxNSAwIDAgMCAyMCAzLjE5NmgtMy43NWMtLjMzMiAwLS42NS0uMTIyLS44ODQtLjMzN0ExLjEwNSAxLjEwNSAwIDAgMSAxNSAyLjA0NmMwLS4zMDUuMTMyLS41OTguMzY2LS44MTQuMjM1LS4yMTUuNTUzLS4zMzYuODg0LS4zMzZIMjBjMS4zMjYgMCAyLjU5OC40ODQgMy41MzUgMS4zNDdDMjQuNDczIDMuMTA1IDI1IDQuMjc2IDI1IDUuNDk2djMuNDVjMCAuMzA1LS4xMzIuNTk3LS4zNjYuODEzYTEuMzA3IDEuMzA3IDAgMCAxLS44ODQuMzM2Yy0uMzMxIDAtLjY1LS4xMi0uODg0LS4zMzZhMS4xMDUgMS4xMDUgMCAwIDEtLjM2Ni0uODEzWlwiLGZpbGw6XCIjMDAwXCJ9KSkpfX0sODcxNjE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xMCA0YTYgNiAwIDEgMCAwIDEyIDYgNiAwIDAgMCAwLTEyWm0tOCA2YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwWlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwibTE1LjcwMyAxNC4yOS0xLjQxNCAxLjQxNCA0Ljk5OSA1IDEuNDE0LTEuNDE1LTUtNVpcIixmaWxsOlwiIzEyMTMxNFwifSkpKX19LDMyMzU4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvPW4oNjcyOTQpO2Z1bmN0aW9uIGEoKXtyZXR1cm4gYT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gby5jcmVhdGVFbGVtZW50KFwic3ZnXCIsYSh7d2lkdGg6MTYsaGVpZ2h0OjE2LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNi42NjcgMi43NWEzLjkxNyAzLjkxNyAwIDEgMCAwIDcuODMzIDMuOTE3IDMuOTE3IDAgMCAwIDAtNy44MzNaTTEuMjUgNi42NjdhNS40MTcgNS40MTcgMCAxIDEgMTAuODMzIDAgNS40MTcgNS40MTcgMCAwIDEtMTAuODMzIDBaXCIsZmlsbDpcIiMxMjEzMTRcIn0pKSxpfHwoaT1vLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJtMTAuNDY5IDkuNTI2LS45NDMuOTQzIDMuMzMyIDMuMzMzLjk0My0uOTQzLTMuMzMyLTMuMzMzWlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSkpfX0sNjkzODk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG89big2NzI5NCk7ZnVuY3Rpb24gYSgpe3JldHVybiBhPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBvLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixhKHt3aWR0aDoxMixoZWlnaHQ6MTIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPW8uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk01IDIuMDYzYTIuOTM3IDIuOTM3IDAgMSAwIDAgNS44NzQgMi45MzcgMi45MzcgMCAwIDAgMC01Ljg3NVpNLjkzNyA1YTQuMDYyIDQuMDYyIDAgMSAxIDguMTI1IDBBNC4wNjIgNC4wNjIgMCAwIDEgLjkzOCA1WlwiLGZpbGw6XCIjMTIxMzE0XCJ9KSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwibTcuODUxIDcuMTQ1LS43MDcuNzA3IDIuNSAyLjUuNzA3LS43MDctMi41LTIuNVpcIixmaWxsOlwiIzEyMTMxNFwifSkpKX19LDc0NzMzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvLGEscyxjLHU9big2NzI5NCk7ZnVuY3Rpb24gbCgpe3JldHVybiBsPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiB1LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixsKHt3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDpcIjAgMCAxMDUgMTA1XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPXUuY3JlYXRlRWxlbWVudChcInJlY3RcIix7eDoxLjUseToxLjUsd2lkdGg6MTAyLGhlaWdodDoxMDIscng6MTMuNSxmaWxsOlwiI0ZGRkMwMFwifSkpLGl8fChpPXUuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0xOC40MDcgNy4wMDRhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMjMuMzA1IDcuMDA0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTMzLjEwMiA3LjAwNGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0zOC4wMDIgNy4wMDRhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNDIuOSA3LjAwNGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk00Mi45IDE2LjgwMmExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0zOC4wMDIgMTYuODAyYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTY3LjM5MyAxNi44MDJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNjIuNDk0IDcuMDA0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTc3LjE5IDcuMDA0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTEzLjUwNyAxMS45MDJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMjMuMzA1IDExLjkwMmExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0yOC4yMDQgNy4wMDRhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMzMuMTAyIDIxLjdhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNDcuNzk5IDExLjkwMmExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk01Mi42OTcgMTEuOTAyYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTU3LjU5NSAxMS45MDJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNjcuMzk0IDExLjkwMmExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk03Mi4yOTIgMTEuOTAyYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTc3LjE5IDExLjkwMmExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk04Mi4wOSAxNi44YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTgyLjA5IDIxLjdhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNOTEuODg2IDE2LjhhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNOTEuODg2IDIxLjY5OGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0xOC40MDcgMTYuODAyYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTIzLjMwNSAxNi44MDJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNTIuNjk3IDE2LjgwMmExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk04Ni45ODggMTYuODAyYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTg2Ljk4OCAyMS43YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTk2Ljc4NSAxNi44MDJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMTguNDA3IDIxLjdhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNzcuMTkgMjEuN2ExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0xMy41MDcgMjYuNTk5YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFNOC42MDggMjYuNTk5YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFNOC42MDggMjEuN2ExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxTTIzLjMwNSAyNi41OTlhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMU0yOC4yMDQgMjYuNTk5YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFNMjMuMzA1IDIxLjdhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMU03Ny4xOSAxNi44YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFNODIuMDkgNy4wMDRhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMU04Ni45ODggNy4wMDRhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMU04LjYwOCAzMS40OTdhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMTguNDA3IDMxLjQ5N2ExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0xOC40MDcgMzYuMzk2YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTg2Ljk4OCAyNi41OThhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNzcuMTkgMjYuNTk4YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTgyLjA4OCAzMS40OTdhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNOTYuNzg1IDM2LjM5NmExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk05Ni43ODUgMjYuNTk4YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTE4LjQwNyA0MS4yOTRhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNODYuOTg4IDQxLjI5NGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk05Ni43ODUgNDEuMjk0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTguNjEgNDYuMTk0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFNMTguNDA3IDQ2LjE5NGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxTTE4LjQwNiA1MS4wOTJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNOC42MSA1MS4wOTJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNOTYuNzg1IDY1Ljc4N2ExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk05MS44ODYgNjUuNzg3YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTkxLjg4NiA1NS45OTFhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNODYuOTg4IDU1Ljk5YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTguNjEgNjAuODlhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMTguNDA3IDU1Ljk5YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTg2Ljk4OCA2NS43ODdhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNODYuOTg4IDcwLjY4NWExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk05MS44ODYgNzAuNjg1YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTkxLjg4NiA2MC44OWExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk03Ny4xOSA4MC40ODRhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMU05MS44ODYgODAuNDg0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFNMTguNDA3IDc1LjU4NWExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0xMy41MDcgNzUuNTg1YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTEzLjUwNyA4MC40ODNhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNOC42MDggODAuNDgzYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTIzLjMwNSA4NS4zODJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMjMuMzA1IDgwLjQ4M2ExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0zMy4xMDIgODAuNDg0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTQyLjkgOTAuMjhhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNDIuOSA5NS4xOGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0zOCA5NS4xOGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0zOCA5MC4yOGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk01Mi42OTggODUuMzgyYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTY3LjM5NCA4NS4zODJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNOTEuODg2IDkwLjI4YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTk2Ljc4NSA4NS4zODJhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMTMuNTA3IDkwLjI4MWExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk00Ny43OTkgODUuMzg0YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTQ3Ljc5OCA5MC4yODFhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNjIuNDk1IDkwLjI4MWExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk03Mi4yOSA5MC4yODFhMS42MDUgMS42MDUgMCAxIDAgLjAwMSAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNMjMuMzA1IDk1LjE4YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTI4LjIwNCA5NS4xOGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk0yOC4yMDQgOTAuMjhhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNNjIuNDk1IDk1LjE4YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTU3LjU5NyA5NS4xOGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk02Ny4zOTMgOTAuMjgxYTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaTTY3LjM5MyA5NS4xOGExLjYwNSAxLjYwNSAwIDEgMCAwIDMuMjEgMS42MDUgMS42MDUgMCAwIDAgMC0zLjIxWk04Ni45ODggOTUuMThhMS42MDUgMS42MDUgMCAxIDAgMCAzLjIxIDEuNjA1IDEuNjA1IDAgMCAwIDAtMy4yMVpNODIuMDg4IDk1LjE4YTEuNjA1IDEuNjA1IDAgMSAwIDAgMy4yMSAxLjYwNSAxLjYwNSAwIDAgMCAwLTMuMjFaXCIsZmlsbDpcIiMwMDBcIn0pKSxvfHwobz11LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMjEgNTIuNDUyYzAgMTcuMzcgMTQuMDgzIDMxLjQ1MyAzMS40NTIgMzEuNDUzIDE3LjM3IDAgMzEuNDUzLTE0LjA4MyAzMS40NTMtMzEuNDUzQzgzLjkwNSAzNS4wODMgNjkuODIyIDIxIDUyLjQ1MiAyMSAzNS4wODMgMjEgMjEgMzUuMDgzIDIxIDUyLjQ1MlpcIixmaWxsOlwiI0ZGRkMwMFwifSkpLGF8fChhPXUuY3JlYXRlRWxlbWVudChcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI1NuYXBjb2RlX3N2Z19fYSlcIixmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0sdS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTc5LjA0NiA2Ni4wMjhjLS4yMjgtLjc2MS0xLjMzMi0xLjI5NC0xLjMzMi0xLjI5NC0uMDk5LS4wNi0uMTk4LS4xMDctLjI3NC0uMTQ1LTEuODM1LS44ODMtMy40NTYtMS45NDgtNC44MTktMy4xNTktMS4wOTYtLjk3NC0yLjA0LTIuMDQtMi43OTMtMy4xODItLjkyMi0xLjM4NS0xLjM1NS0yLjU1LTEuNTM4LTMuMTc0LS4xMDctLjQxMS0uMDg0LS41NzEgMC0uNzg0LjA3Ni0uMTc1LjI4MS0uMzUuMzg4LS40MjYuNjE3LS40MzQgMS42MTQtMS4wODEgMi4yMjMtMS40NzcuNTI1LS4zNDMuOTgyLS42NCAxLjI0OC0uODIyLjg2LS42MDIgMS40NDctMS4yMSAxLjc5Ny0xLjg3My40NDktLjg1My41MDItMS43OTcuMTUyLTIuNzE4LS40NzItMS4yNDgtMS42MzctMS45OTQtMy4xMTMtMS45OTQtLjMyOCAwLS42Ny4wMzgtMS4wMDUuMTA3LS44NDUuMTgyLTEuNjUyLjQ4Ny0yLjMyMi43NDUtLjA0Ni4wMjMtLjA5OS0uMDE1LS4wOTktLjA2OC4wNjktMS42NjcuMTUyLTMuOTA1LS4wMy02LjAzNy0uMTY4LTEuOTI2LS41NjQtMy41NDctMS4yMS00Ljk2My0uNjU2LTEuNDIzLTEuNDkzLTIuNDc0LTIuMTYzLTMuMjI4LS42MzItLjcyMy0xLjczNS0xLjc4OS0zLjQxLTIuNzQ4LTIuMzUyLTEuMzQ3LTUuMDMyLTIuMDMyLTcuOTYzLTIuMDMyLTIuOTIzIDAtNS41OTUuNjg1LTcuOTU0IDIuMDI1LTEuNzY3IDEuMDEyLTIuOSAyLjE1NC0zLjQxOSAyLjc0OC0uNjYyLjc2MS0xLjUwNyAxLjgxMi0yLjE2MSAzLjIyOC0uNjQ3IDEuNDE1LTEuMDQzIDMuMDM3LTEuMjEgNC45NjMtLjE4MyAyLjEzMS0uMTA3IDQuMTk0LS4wMzEgNi4wMzYgMCAuMDU0LS4wNTMuMDkyLS4xLjA2OS0uNjY5LS4yNTktMS40NzYtLjU2NC0yLjMyLS43NDZhNC41MTIgNC41MTIgMCAwIDAtMS4wMDYtLjEwN2MtMS40NzcgMC0yLjY0MS43NDYtMy4xMTMgMS45OTUtLjM1LjkyOC0uMjk3IDEuODY1LjE1MiAyLjcxNy4zNS42NjMuOTM2IDEuMjcyIDEuNzk3IDEuODczLjI2Ni4xODMuNzIzLjQ4IDEuMjQ4LjgyMi42MDEuMzg4IDEuNTY4IDEuMDEzIDIuMTg1IDEuNDU0LjA3Ni4wNTMuMzM1LjI1MS40MTkuNDU3LjA5LjIyLjEwNi4zOC0uMDA4LjgxNC0uMTkuNjMyLS42MjQgMS43ODItMS41MyAzLjE0NC0uNzU0IDEuMTQyLTEuNjk4IDIuMjA4LTIuNzk0IDMuMTgyLTEuMzcgMS4yMS0yLjk5MiAyLjI3Ni00LjgxOSAzLjE2LS4wODMuMDM3LS4xOS4wOS0uMzA0LjE2IDAgMC0xLjA5Ni41NTUtMS4zMDIgMS4yNzgtLjMwNCAxLjA2Ni41MDMgMi4wNjMgMS4zNCAyLjYwNCAxLjM1NS44NzUgMy4wMDcgMS4zNDcgMy45NjYgMS41OTguMjY3LjA2OS41MS4xMzcuNzMuMjA2LjEzOC4wNDUuNDguMTc1LjYzMy4zNjUuMTgyLjIzNi4yMDUuNTMzLjI3NC44NjguMTA2LjU2My4zNDIgMS4yNTYgMS4wMzUgMS43MzYuNzYxLjUyNSAxLjczNi41NjMgMi45NjEuNjA4IDEuMjg3LjA0NiAyLjg4NS4xMTUgNC43MTIuNzE2Ljg0NS4yODIgMS42MTQuNzU0IDIuNTA1IDEuMzAyIDEuODU3IDEuMTQyIDQuMTcxIDIuNTY1IDguMTIyIDIuNTY1IDMuOTUgMCA2LjI4LTEuNDMxIDguMTUzLTIuNTczLjg4My0uNTQgMS42NDQtMS4wMTIgMi40NzQtMS4yODYgMS44MjctLjYwMiAzLjQyNi0uNjYzIDQuNzEyLS43MTYgMS4yMjYtLjA0NiAyLjItLjA4NCAyLjk2MS0uNjA5Ljc0Ni0uNTEuOTYtMS4yNzkgMS4wNTgtMS44NTguMDU0LS4yOC4wOTItLjU0LjI1MS0uNzUzLjEzOC0uMTgzLjQ1Ny0uMzA1LjYxLS4zNTguMjI4LS4wNjguNDcxLS4xMzcuNzUzLS4yMTMuOTYtLjI1OSAyLjE1NS0uNTU2IDMuNjE2LTEuMzg1IDEuNzI4LS45OSAxLjg1LTIuMjE2IDEuNjY3LTIuODE3WlwiLGZpbGw6XCIjRkZGRkZFXCJ9KSx1LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNNzYuNjQgNjcuNjkyYy0yLjM5IDEuMzE3LTMuOTggMS4xOC01LjIyMiAxLjk3OS0xLjA1LjY3Ny0uNDI2IDIuMTMxLTEuMTk1IDIuNjY0LS45MzYuNjQ3LTMuNzE1LS4wNDYtNy4yOTIgMS4xMzQtMi45NTQuOTc1LTQuODQyIDMuNzg0LTEwLjE1NSAzLjc4NC01LjMyOSAwLTcuMTY0LTIuNzk0LTEwLjE1NS0zLjc4NC0zLjU3OC0xLjE4LTYuMzU3LS40ODctNy4yOTMtMS4xMzQtLjc2MS0uNTI1LS4xNDUtMS45ODctMS4xOTUtMi42NjQtMS4yMzMtLjgtMi44MzItLjY1NS01LjIyMi0xLjk4LTEuNTIzLS44NDQtLjY2Mi0xLjM2Mi0uMTUyLTEuNjA2IDguNjctNC4xOTQgMTAuMDQ4LTEwLjY3MiAxMC4xMDktMTEuMTYuMDc2LS41NzguMTYtMS4wNDItLjQ4Ny0xLjYyOC0uNjE3LS41NzEtMy4zNjUtMi4yNzYtNC4xMjYtMi44MDItMS4yNjQtLjg4My0xLjgyLTEuNzU4LTEuNDA4LTIuODQuMjgxLS43NDUuOTgxLTEuMDI3IDEuNzItMS4wMjcuMjI4IDAgLjQ2NC4wMy42ODUuMDc2IDEuMzg2LjMwNSAyLjczMy45OTggMy41MSAxLjE4LjEwNi4wMjMuMTk3LjAzOC4yODguMDM4LjQxMiAwIC41NjQtLjIwNS41MzMtLjY4NS0uMDkxLTEuNTE1LS4zMDQtNC40NjgtLjA2OC03LjIyNC4zMjctMy43OTEgMS41NTMtNS42NzkgMy4wMDctNy4zMzguNy0uOCAzLjk3NC00LjI2MyAxMC4yNDYtNC4yNjMgNi4yODggMCA5LjU1MyAzLjQ2MyAxMC4yNDYgNC4yNjMgMS40NTQgMS42NjcgMi42OCAzLjU0NyAzLjAwNyA3LjMzOC4yMzYgMi43NTYuMDMgNS43MS0uMDY4IDcuMjI0LS4wMy41MDIuMTIyLjY4NS41MzMuNjg1LjA4MyAwIC4xODItLjAxNS4yODktLjAzOC43NzYtLjE5IDIuMTI0LS44ODMgMy41MS0xLjE4LjIyOC0uMDQ2LjQ1Ni0uMDc2LjY4NC0uMDc2LjczOSAwIDEuNDM5LjI4MiAxLjcyIDEuMDI4LjQxMiAxLjA4LS4xNDQgMS45NjQtMS40MDggMi44NC0uNzYuNTMyLTMuNTA5IDIuMjMtNC4xMjYgMi44LS42MzkuNTk0LS41NTUgMS4wNTEtLjQ4NyAxLjYzLjA2MS40ODcgMS40NDcgNi45NjUgMTAuMTEgMTEuMTYuNTI1LjI0MyAxLjM4NS43Ni0uMTM4IDEuNjA2Wm0zLjkyLTIuMTAxYy0uMzg3LTEuMDU5LTEuMTI2LTEuNjIyLTEuOTctMi4wOTRhOC43MjUgOC43MjUgMCAwIDAtLjQyNy0uMjI4Yy0uMjUxLS4xMy0uNTEtLjI1OS0uNzY5LS4zODktMi42MzQtMS4zOTMtNC42ODEtMy4xNTEtNi4xMDUtNS4yMzctLjQ4LS43LS44MTUtMS4zNC0xLjA1LTEuODU3LS4xMjItLjM1LS4xMTUtLjU0OC0uMDMtLjcyMy4wNjctLjEzNy4yNDMtLjI4Mi4zMzQtLjM1LjQ0OS0uMjk3LjkyMS0uNjAyIDEuMjMzLS44MDcuNTY0LS4zNjYgMS4wMTMtLjY1NSAxLjI5NC0uODUzIDEuMDgxLS43NTQgMS44MzUtMS41NTMgMi4zMDctMi40NTEuNjYyLTEuMjY0Ljc0Ni0yLjcwMy4yMzYtNC4wNjUtLjcxNi0xLjg4LTIuNDktMy4wNTMtNC42NTEtMy4wNTNhNi44ODggNi44ODggMCAwIDAtMS43MDYuMjI5IDM5LjA3MyAzOS4wNzMgMCAwIDAtLjEyMS0zLjk4MmMtLjQwNC00LjcwNC0yLjA0OC03LjE2My0zLjc2OC05LjEyNy0uNzE2LS44MjItMS45NjQtMi4wMTctMy44My0zLjA5LTIuNjAzLTEuNDkyLTUuNTU2LTIuMjQ2LTguNzc3LTIuMjQ2LTMuMjEyIDAtNi4xNTguNzUzLTguNzY5IDIuMjQ1LTEuODggMS4wNzQtMy4xMjEgMi4yNzYtMy44MzcgMy4wOTEtMS43MiAxLjk2NC0zLjM2NCA0LjQzLTMuNzY4IDkuMTI3YTM5LjE0IDM5LjE0IDAgMCAwLS4xMjIgMy45ODJjLS4xMTQtLjAzLS4yMzYtLjA1NC0uMzUtLjA4NGE2LjMgNi4zIDAgMCAwLTEuMzU1LS4xNDVjLTIuMTU0IDAtMy45MzUgMS4xNzItNC42NSAzLjA1M2E0LjkyMiA0LjkyMiAwIDAgMCAuMjM1IDQuMDY1Yy40NzIuODk4IDEuMjI2IDEuNjk3IDIuMzA3IDIuNDUxLjI4OS4xOTguNzMuNDg3IDEuMjk0Ljg1My4zMDQuMTk3Ljc1My40ODcgMS4xODcuNzc2LjA2OS4wNDYuMzA1LjIyLjM4LjM4LjA5Mi4xOS4wOTIuMzg5LS4wMzcuNzYyLS4yMjguNTEtLjU2MyAxLjEzNC0xLjAyOCAxLjgyLTEuMzkzIDIuMDQtMy4zODcgMy43NjctNS45MyA1LjE0NS0xLjM0Ny43MTYtMi43NDggMS4xOTUtMy4zNDIgMi44MDItLjQ0OSAxLjIxNy0uMTUyIDIuNTk1Ljk4MiAzLjc2LjM3My40MDMuODQ1Ljc1NCAxLjQzMSAxLjA4MSAxLjM4Ni43NjkgMi41NzMgMS4xNDIgMy41MDIgMS40LjE2LjA0Ni41NC4xNjguNzA4LjMxMy40MTEuMzU3LjM1LjkwNi45MDYgMS43MDUuMzM1LjQ5NS43MTYuODM3IDEuMDM1IDEuMDUgMS4xNTcuOCAyLjQ1MS44NDYgMy44My44OTkgMS4yNC4wNDUgMi42NDguMDk5IDQuMjYyLjYzMS42Ny4yMjEgMS4zNjMuNjQ4IDIuMTYyIDEuMTQyIDEuOTM0IDEuMTg4IDQuNTY4IDIuODEgOC45ODMgMi44MSA0LjQxNSAwIDcuMDcyLTEuNjMgOS4wMDUtMi44MTcuOC0uNDg3IDEuNDg1LS45MTQgMi4xMzItMS4xMjcgMS42MDYtLjUzMyAzLjAxNC0uNTg2IDQuMjYzLS42MzIgMS4zNzctLjA1MyAyLjY3MS0uMDk5IDMuODI5LS44OThhNC4wMjIgNC4wMjIgMCAwIDAgMS4xOC0xLjI4NmMuMzk1LS42Ny4zODgtMS4xNS43Ni0xLjQ3LjE1My0uMTMuNDg4LS4yNS42NjMtLjMwNC45MzYtLjI1OSAyLjEzMS0uNjMyIDMuNTQ3LTEuNDE2LjYyNC0uMzQzIDEuMTItLjcyMyAxLjUtMS4xNTdsLjAxNS0uMDE1YzEuMDY2LTEuMTQyIDEuMzMyLTIuNDkuODktMy42N1pcIixmaWxsOlwiIzAwMFwifSkpKSxzfHwocz11LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIse3g6MS41LHk6MS41LHdpZHRoOjEwMixoZWlnaHQ6MTAyLHJ4OjEzLjUsc3Ryb2tlOlwiIzAwMFwiLHN0cm9rZVdpZHRoOjN9KSksY3x8KGM9dS5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLG51bGwsdS5jcmVhdGVFbGVtZW50KFwiY2xpcFBhdGhcIix7aWQ6XCJTbmFwY29kZV9zdmdfX2FcIn0sdS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsOlwiI2ZmZlwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgyNC43MiAyNS4xODgpXCIsZDpcIk0wIDBoNTYuMTZ2NTUuMjI0SDB6XCJ9KSkpKSl9fSw5MzU5NzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbyxhPW4oNjcyOTQpO2Z1bmN0aW9uIHMoKXtyZXR1cm4gcz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwic3ZnXCIscyh7d2lkdGg6MTksaGVpZ2h0OjI0LGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1hLmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIse3g6LjUseTo1LjI1LHdpZHRoOjQuNSxoZWlnaHQ6MTMuNSxyeDoyLjI1LGZpbGw6XCIjZmZmXCJ9KSksaXx8KGk9YS5jcmVhdGVFbGVtZW50KFwicmVjdFwiLHt4OjcuMjUseTouNzUsd2lkdGg6NC41LGhlaWdodDoyMi41LHJ4OjIuMjUsZmlsbDpcIiNmZmZcIn0pKSxvfHwobz1hLmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIse3g6MTQseTouNzUsd2lkdGg6NC41LGhlaWdodDoyMi41LHJ4OjIuMjUsZmlsbDpcIiNmZmZcIn0pKSl9fSwzNjg3MTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbyxhLHMsYyx1LGw9big2NzI5NCk7ZnVuY3Rpb24gZCgpe3JldHVybiBkPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBsLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixkKHt3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDpcIjAgMCAxMiAxMlwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1sLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgOS41MzVhNSA1IDAgMSAwIDcuMDcyLTcuMDcgNSA1IDAgMCAwLTcuMDcyIDcuMDdaXCIsZmlsbDpcIiNGRkUzMDBcIn0pKSxpfHwoaT1sLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgMi40NjRhNSA1IDAgMCAwIDAgNy4wNzFsNy4wNzItNy4wN2E1IDUgMCAwIDAtNy4wNzIgMFpcIixmaWxsOlwiI0ZGRkM4MFwifSkpLG98fChvPWwuY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLHtjeDo2LGN5OjYscjo0Ljc1LHRyYW5zZm9ybTpcInJvdGF0ZSg0NSA2IDYpXCIsc3Ryb2tlOlwiI0ZGRTMwMFwifSkpLGF8fChhPWwuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0yLjQ2NCA5LjQ2NGE1IDUgMCAxIDAgNy4wNzItNy4wNzEgNSA1IDAgMCAwLTcuMDcyIDcuMDcxWlwiLGZpbGw6XCIjRkZFMzAwXCJ9KSksc3x8KHM9bC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIuNDY0IDIuMzkzYTUgNSAwIDAgMCAwIDcuMDcxbDcuMDcyLTcuMDcxYTUgNSAwIDAgMC03LjA3MiAwWlwiLGZpbGw6XCIjRkZGQzgwXCJ9KSksY3x8KGM9bC5jcmVhdGVFbGVtZW50KFwiY2lyY2xlXCIse2N4OjYsY3k6NS45Mjgscjo0Ljc1LHRyYW5zZm9ybTpcInJvdGF0ZSg0NSA2IDUuOTI4KVwiLHN0cm9rZTpcIiNGRkUzMDBcIn0pKSx1fHwodT1sLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNOC41MzEgNS4yMzhhLjE3OC4xNzggMCAwIDAtLjE0NC0uMTIxbC0xLjUxMi0uMjItLjY3Ni0xLjM3YS4xNzguMTc4IDAgMCAwLS4zMiAwbC0uNjc2IDEuMzctMS41MTIuMjJhLjE3OC4xNzggMCAwIDAtLjA5Ny4zMDNsMS4wOTQgMS4wNjctLjI2NCAxLjUwN2EuMTc4LjE3OCAwIDAgMCAuMjU4LjE4NmwxLjM1Mi0uNzEgMS4zNTMuNzFhLjE3OC4xNzggMCAwIDAgLjI2NC0uMTg2bC0uMjU4LTEuNTA2TDguNDg3IDUuNDJhLjE3OC4xNzggMCAwIDAgLjA0NC0uMTgzWlwiLGZpbGw6XCIjMkMzMTM3XCJ9KSkpfX0sNTI1MDc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG8sYSxzLGMsdSxsPW4oNjcyOTQpO2Z1bmN0aW9uIGQoKXtyZXR1cm4gZD1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsZCh7d2lkdGg6MTYsaGVpZ2h0OjE2LHZpZXdCb3g6XCIwIDAgMTIgMTJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9bC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIuNDY0IDkuNTM1YTUgNSAwIDEgMCA3LjA3Mi03LjA3IDUgNSAwIDAgMC03LjA3MiA3LjA3WlwiLGZpbGw6XCIjRkZFMzAwXCJ9KSksaXx8KGk9bC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIuNDY0IDIuNDY0YTUgNSAwIDAgMCAwIDcuMDcxbDcuMDcyLTcuMDdhNSA1IDAgMCAwLTcuMDcyIDBaXCIsZmlsbDpcIiNGRkZDODBcIn0pKSxvfHwobz1sLmNyZWF0ZUVsZW1lbnQoXCJjaXJjbGVcIix7Y3g6NixjeTo2LHI6NC43NSx0cmFuc2Zvcm06XCJyb3RhdGUoNDUgNiA2KVwiLHN0cm9rZTpcIiNGRkUzMDBcIn0pKSxhfHwoYT1sLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgOS40NjRhNSA1IDAgMSAwIDcuMDcyLTcuMDcxIDUgNSAwIDAgMC03LjA3MiA3LjA3MVpcIixmaWxsOlwiI0ZGRTMwMFwifSkpLHN8fChzPWwuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0yLjQ2NCAyLjM5M2E1IDUgMCAwIDAgMCA3LjA3MWw3LjA3Mi03LjA3MWE1IDUgMCAwIDAtNy4wNzIgMFpcIixmaWxsOlwiI0ZGRkM4MFwifSkpLGN8fChjPWwuY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLHtjeDo2LGN5OjUuOTI4LHI6NC43NSx0cmFuc2Zvcm06XCJyb3RhdGUoNDUgNiA1LjkyOClcIixzdHJva2U6XCIjRkZFMzAwXCJ9KSksdXx8KHU9bC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTguNTMxIDUuMjM4YS4xNzguMTc4IDAgMCAwLS4xNDQtLjEyMWwtMS41MTItLjIyLS42NzYtMS4zN2EuMTc4LjE3OCAwIDAgMC0uMzIgMGwtLjY3NiAxLjM3LTEuNTEyLjIyYS4xNzguMTc4IDAgMCAwLS4wOTcuMzAzbDEuMDk0IDEuMDY3LS4yNjQgMS41MDdhLjE3OC4xNzggMCAwIDAgLjI1OC4xODZsMS4zNTItLjcxIDEuMzUzLjcxYS4xNzguMTc4IDAgMCAwIC4yNjQtLjE4NmwtLjI1OC0xLjUwNkw4LjQ4NyA1LjQyYS4xNzguMTc4IDAgMCAwIC4wNDQtLjE4M1pcIixmaWxsOlwiIzJDMzEzN1wifSkpKX19LDUzMTQ2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvLGEscyxjLHUsbD1uKDY3Mjk0KTtmdW5jdGlvbiBkKCl7cmV0dXJuIGQ9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGwuY3JlYXRlRWxlbWVudChcInN2Z1wiLGQoe3dpZHRoOjEyLGhlaWdodDoxMixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9bC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIuNDY0IDkuNTM1YTUgNSAwIDEgMCA3LjA3Mi03LjA3IDUgNSAwIDAgMC03LjA3MiA3LjA3WlwiLGZpbGw6XCIjRkZFMzAwXCJ9KSksaXx8KGk9bC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTIuNDY0IDIuNDY0YTUgNSAwIDAgMCAwIDcuMDcxbDcuMDcyLTcuMDdhNSA1IDAgMCAwLTcuMDcyIDBaXCIsZmlsbDpcIiNGRkZDODBcIn0pKSxvfHwobz1sLmNyZWF0ZUVsZW1lbnQoXCJjaXJjbGVcIix7Y3g6NixjeTo2LHI6NC43NSx0cmFuc2Zvcm06XCJyb3RhdGUoNDUgNiA2KVwiLHN0cm9rZTpcIiNGRkUzMDBcIn0pKSxhfHwoYT1sLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgOS40NjRhNSA1IDAgMSAwIDcuMDcyLTcuMDcxIDUgNSAwIDAgMC03LjA3MiA3LjA3MVpcIixmaWxsOlwiI0ZGRTMwMFwifSkpLHN8fChzPWwuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0yLjQ2NCAyLjM5M2E1IDUgMCAwIDAgMCA3LjA3MWw3LjA3Mi03LjA3MWE1IDUgMCAwIDAtNy4wNzIgMFpcIixmaWxsOlwiI0ZGRkM4MFwifSkpLGN8fChjPWwuY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLHtjeDo2LGN5OjUuOTI4LHI6NC43NSx0cmFuc2Zvcm06XCJyb3RhdGUoNDUgNiA1LjkyOClcIixzdHJva2U6XCIjRkZFMzAwXCJ9KSksdXx8KHU9bC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTguNTMxIDUuMjM4YS4xNzguMTc4IDAgMCAwLS4xNDQtLjEyMWwtMS41MTItLjIyLS42NzYtMS4zN2EuMTc4LjE3OCAwIDAgMC0uMzIgMGwtLjY3NiAxLjM3LTEuNTEyLjIyYS4xNzguMTc4IDAgMCAwLS4wOTcuMzAzbDEuMDk0IDEuMDY3LS4yNjQgMS41MDdhLjE3OC4xNzggMCAwIDAgLjI1OC4xODZsMS4zNTItLjcxIDEuMzUzLjcxYS4xNzguMTc4IDAgMCAwIC4yNjQtLjE4NmwtLjI1OC0xLjUwNkw4LjQ4NyA1LjQyYS4xNzguMTc4IDAgMCAwIC4wNDQtLjE4M1pcIixmaWxsOlwiIzJDMzEzN1wifSkpKX19LDYxMjIzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaSxvLGEscz1uKDY3Mjk0KTtmdW5jdGlvbiBjKCl7cmV0dXJuIGM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHMuY3JlYXRlRWxlbWVudChcInN2Z1wiLGMoe3dpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OlwiMCAwIDEyIDEyXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPXMuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0yLjQ2NCA5LjUzNWE1IDUgMCAxIDAgNy4wNzItNy4wNyA1IDUgMCAwIDAtNy4wNzIgNy4wN1pcIixmaWxsOlwiI0ZGRTMwMFwifSkpLGl8fChpPXMuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0yLjQ2NCAyLjQ2NGE1IDUgMCAwIDAgMCA3LjA3MWw3LjA3Mi03LjA3YTUgNSAwIDAgMC03LjA3MiAwWlwiLGZpbGw6XCIjRkZGQzgwXCJ9KSksb3x8KG89cy5jcmVhdGVFbGVtZW50KFwiY2lyY2xlXCIse2N4OjYsY3k6NixyOjQuNzUsdHJhbnNmb3JtOlwicm90YXRlKDQ1IDYgNilcIixzdHJva2U6XCIjRkZFMzAwXCJ9KSksYXx8KGE9cy5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwibTQuOTc3IDYuNzYgMi45NTEtMi45NTJhLjYyNS42MjUgMCAxIDEgLjg4NC44ODRMNS40MiA4LjA4NmEuNjI1LjYyNSAwIDAgMS0uODg0IDBMMy4wNTggNi42MDlhLjYyNS42MjUgMCAxIDEgLjg4NC0uODg0TDQuOTc3IDYuNzZaXCIsZmlsbDpcIiMyQzMxMzdcIn0pKSl9fSw0NjIwMjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbyxhLHM9big2NzI5NCk7ZnVuY3Rpb24gYygpe3JldHVybiBjPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBzLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixjKHt3aWR0aDoxNixoZWlnaHQ6MTYsdmlld0JveDpcIjAgMCAxMiAxMlwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1zLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgOS41MzVhNSA1IDAgMSAwIDcuMDcyLTcuMDcgNSA1IDAgMCAwLTcuMDcyIDcuMDdaXCIsZmlsbDpcIiNGRkUzMDBcIn0pKSxpfHwoaT1zLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgMi40NjRhNSA1IDAgMCAwIDAgNy4wNzFsNy4wNzItNy4wN2E1IDUgMCAwIDAtNy4wNzIgMFpcIixmaWxsOlwiI0ZGRkM4MFwifSkpLG98fChvPXMuY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLHtjeDo2LGN5OjYscjo0Ljc1LHRyYW5zZm9ybTpcInJvdGF0ZSg0NSA2IDYpXCIsc3Ryb2tlOlwiI0ZGRTMwMFwifSkpLGF8fChhPXMuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIm00Ljk3NyA2Ljc2IDIuOTUxLTIuOTUyYS42MjUuNjI1IDAgMSAxIC44ODQuODg0TDUuNDIgOC4wODZhLjYyNS42MjUgMCAwIDEtLjg4NCAwTDMuMDU4IDYuNjA5YS42MjUuNjI1IDAgMSAxIC44ODQtLjg4NEw0Ljk3NyA2Ljc2WlwiLGZpbGw6XCIjMkMzMTM3XCJ9KSkpfX0sODg5ODU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcixpLG8sYSxzPW4oNjcyOTQpO2Z1bmN0aW9uIGMoKXtyZXR1cm4gYz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4gcy5jcmVhdGVFbGVtZW50KFwic3ZnXCIsYyh7d2lkdGg6MTIsaGVpZ2h0OjEyLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxyfHwocj1zLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgOS41MzVhNSA1IDAgMSAwIDcuMDcyLTcuMDcgNSA1IDAgMCAwLTcuMDcyIDcuMDdaXCIsZmlsbDpcIiNGRkUzMDBcIn0pKSxpfHwoaT1zLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMi40NjQgMi40NjRhNSA1IDAgMCAwIDAgNy4wNzFsNy4wNzItNy4wN2E1IDUgMCAwIDAtNy4wNzIgMFpcIixmaWxsOlwiI0ZGRkM4MFwifSkpLG98fChvPXMuY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLHtjeDo2LGN5OjYscjo0Ljc1LHRyYW5zZm9ybTpcInJvdGF0ZSg0NSA2IDYpXCIsc3Ryb2tlOlwiI0ZGRTMwMFwifSkpLGF8fChhPXMuY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIm00Ljk3NyA2Ljc2IDIuOTUxLTIuOTUyYS42MjUuNjI1IDAgMSAxIC44ODQuODg0TDUuNDIgOC4wODZhLjYyNS42MjUgMCAwIDEtLjg4NCAwTDMuMDU4IDYuNjA5YS42MjUuNjI1IDAgMSAxIC44ODQtLjg4NEw0Ljk3NyA2Ljc2WlwiLGZpbGw6XCIjMkMzMTM3XCJ9KSkpfX0sOTk0MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoyNCxoZWlnaHQ6MjQsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7Y2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xOS4yMzUgMTIuNTU0IDguNTY4IDIwLjg2MmMtLjQ0LjM0Mi0xLjA2Ny4wMTYtMS4wNjctLjU1NFYzLjY5MmMwLS41Ny42MjgtLjg5NiAxLjA2Ny0uNTU0bDEwLjY2NyA4LjMwOGEuNzA4LjcwOCAwIDAgMSAwIDEuMTA4WlwifSkpKX19LDM5MjYzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCk7dmFyIHIsaT1uKDY3Mjk0KTtmdW5jdGlvbiBvKCl7cmV0dXJuIG89T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY3JlYXRlRWxlbWVudChcInN2Z1wiLG8oe3dpZHRoOjE2LGhlaWdodDoxNixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9aS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwibTEyLjgyMyA4LjM3LTcuMTExIDUuNTM4Yy0uMjkzLjIyOC0uNzExLjAxLS43MTEtLjM3VjIuNDYyYzAtLjM4LjQxOC0uNTk3LjcxMS0uMzY5bDcuMTExIDUuNTM5YS40NzIuNDcyIDAgMCAxIDAgLjczOFpcIn0pKSl9fSw4MzEwMTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGk9big2NzI5NCk7ZnVuY3Rpb24gbygpe3JldHVybiBvPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBpLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIixvKHt3aWR0aDoxMixoZWlnaHQ6MTIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHJ8fChyPWkuY3JlYXRlRWxlbWVudChcInBhdGhcIix7Y2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk05LjYxNyA2LjI3NyA0LjI4NCAxMC40M2MtLjIyLjE3MS0uNTMzLjAwOC0uNTMzLS4yNzdWMS44NDZjMC0uMjg1LjMxMy0uNDQ4LjUzMy0uMjc3bDUuMzMzIDQuMTU0YS4zNTQuMzU0IDAgMCAxIDAgLjU1NFpcIn0pKSl9fSw2MTk1MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5yKHQpO3ZhciByLGksbz1uKDY3Mjk0KTtmdW5jdGlvbiBhKCl7cmV0dXJuIGE9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX10LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY3JlYXRlRWxlbWVudChcInN2Z1wiLGEoe3dpZHRoOjg5MCxoZWlnaHQ6MTQ5MCxmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkscnx8KHI9by5jcmVhdGVFbGVtZW50KFwiZ1wiLHtjbGlwUGF0aDpcInVybCgjSGFsZkdob3N0X3N2Z19fYSlcIn0sby5jcmVhdGVFbGVtZW50KFwibWFza1wiLHtpZDpcIkhhbGZHaG9zdF9zdmdfX2JcIixcIm1hc2stdHlwZVwiOlwiYWxwaGFcIixtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6LTUxMCx5OjAsd2lkdGg6MTQwMCxoZWlnaHQ6MTQ5MH0sby5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTg4OC4yNDMgMTEyOC42Yy01Ljk1My0yMS44OC0zNS40MTktMzcuMzMtMzUuNDE5LTM3LjMzLTIuNjc5LTEuNjEtNS4wNi0yLjg5LTcuMTQzLTQuMTgtNDguODEzLTI1LjQyLTkxLjY3My01Ni0xMjguMjgyLTkwLjc1My0yOS4xNjktMjcuOTk4LTU0LjE3LTU4LjU3LTc0LjQxLTkxLjM5NS0yNC40MDYtMzkuOTA1LTM2LjAxNC03My4zNzQtNDEuMDc0LTkxLjM5Ni0yLjY3OS0xMS45MDctMi4zODEtMTYuNDEyIDAtMjIuNTI3IDEuNzg2LTUuMTQ5IDcuNDQxLTkuOTc2IDEwLjEyLTEyLjIyOSAxNi4zNy0xMi41NSA0Mi44Ni0zMS4yMTYgNTkuMjMtNDIuNDc5IDEzLjk4OS05Ljk3NiAyNi4xOTItMTguMzQzIDMzLjMzNS0yMy44MTQgMjIuOTE4LTE3LjM3OCAzOC4zOTUtMzQuNzU2IDQ3LjYyMi01My43NDMgMTEuOTA2LTI0LjQ1OCAxMy4zOTQtNTEuNDkxIDQuMTY3LTc4LjIwMS0xMi41MDEtMzUuNzIxLTQzLjQ1NS01Ny4yODMtODIuNzQzLTU3LjI4My04LjYzMiAwLTE3Ljg1OC45NjUtMjYuNzg4IDMuMjE4LTIyLjYyIDUuMTQ5LTQ0LjA1IDEzLjgzOC02MS45MDggMjEuNTYyLTEuMTkxLjY0My0yLjY3OS0uNjQ0LTIuNjc5LTEuOTMxIDEuNzg2LTQ3Ljk1MSAzLjg2OS0xMTIuMzEzLS44OTMtMTczLjQ1OC00LjQ2NS01NS4zNTItMTQuODgyLTEwMi4wMTUtMzIuMTQ1LTE0Mi41NjQtMTcuMjYzLTQwLjg3LTM5Ljg4My03MS4xMjEtNTcuNDQ0LTkzLjAwNC0xNi45NjUtMjAuOTE4LTQ2LjEzNC01MS40OS05MC43OC03OC44NDVDMzM4LjUwNSAxOS42MzEgMjY3LjA3MiAwIDE4OS4zODkgMGMtNzcuNjg0IDAtMTQ4LjgyIDE5LjYzLTIxMS42MiA1OC4yNDgtNDcuMDI4IDI4Ljk2NC03Ny4wODkgNjEuNzg5LTkwLjc4IDc4Ljg0NS0xNy41NjEgMjEuODgzLTQwLjE4MSA1Mi4xMzQtNTcuNDQ0IDkzLjAwNC0xNy4yNjMgNDAuNTQ5LTI3LjY4MSA4Ny4yMTItMzIuMTQ1IDE0Mi41NjQtNC43NjMgNjEuNDY2LTIuOTc3IDEyMC42OC0uODkzIDE3My40NTggMCAxLjYwOS0xLjQ4OCAyLjU3NC0yLjY3OSAxLjkzMS0xNy44NTgtNy40MDItMzkuMjg4LTE2LjA5MS02MS42MTEtMjEuNTYyLTguOTI5LTIuMjUzLTE3Ljg1OC0zLjIxOC0yNi43ODctMy4yMTgtMzkuMjg5IDAtNzAuMjQzIDIxLjU2Mi04Mi43NDQgNTcuMjgzLTkuMjI3IDI2LjcxLTguMDM2IDUzLjc0MyA0LjE2NyA3OC4yMDEgOS4yMjcgMTguOTg3IDI1LjAwMiAzNi42ODcgNDcuNjIyIDUzLjc0MyA3LjE0NCA1LjQ3MSAxOS4wNDkgMTMuODM4IDMzLjMzNiAyMy44MTQgMTUuNzc0IDExLjI2MyA0MS42NjkgMjkuMjg1IDU4LjAzOSA0MS44MzYgMi4wODQgMS42MDkgOC45MjkgNy40MDIgMTEuMzEgMTMuMTk0IDIuMzgxIDYuNDM3IDIuNjc5IDEwLjk0Mi0uMjk3IDIzLjQ5My01LjA2IDE4LjM0My0xNi42NjggNTEuMTY4LTQwLjc3NyA5MC40MjktMjAuMjM5IDMyLjgyNi00NS4yNDEgNjMuMzk4LTc0LjQwOSA5MS4zOTYtMzUuNzE3IDM0LjQzMS03OC44NzQgNjUuMDExLTEyNy4zODkgOTAuNzUxLTIuMzgxIDEuMjktNS4wNiAyLjU3LTguMDM3IDQuNTEgMCAwLTI5LjE2OCAxNi4wOS0zNC41MjYgMzYuNjgtOC4wMzYgMzAuNTcgMTMuMzk0IDU5LjIyIDM1LjQxOSA3NC42NiAzNi4wMTUgMjUuMSA4MC4wNjUgMzguNjIgMTA1LjM2NCA0Ni4wMiA3LjE0NCAxLjkzIDEzLjM5NCAzLjg2IDE5LjM0NyA1LjggMy41NzEgMS4yOCAxMi43OTggNS4xNCAxNi42NjcgMTAuNjIgNS4wNiA2Ljc1IDUuNjU2IDE1LjQ0IDcuNDQxIDI1LjEgMi42NzkgMTYuMDkgOC45MyAzNi4wNCAyNy4zODMgNDkuODggMjAuMjM5IDE1LjEyIDQ2LjEzNCAxNi4wOSA3OC41NzcgMTcuNyAzNC4yMjggMS4yOSA3Ni43OSAzLjIyIDEyNS4zMDUgMjAuNTkgMjIuNjIgOC4wNSA0Mi44NiAyMS41NyA2Ni42NyAzNy4zMyA0OS40MDkgMzIuODMgMTEwLjcyMiA3My43IDIxNS43ODggNzMuNyAxMDUuMDY3IDAgMTY2Ljk3NS00MS4xOSAyMTYuNjgxLTc0LjAyIDIzLjUxMy0xNS40NCA0My43NTMtMjguOTYgNjUuNzc4LTM3LjAxIDQ4LjUxNS0xNy4zNyA5MS4wNzctMTguOTggMTI1LjMwNS0yMC41OSAzMi43NDEtMS4yOSA1OC4zMzctMi4yNSA3OC41NzctMTcuNyAxOS42NDQtMTQuODEgMjUuNTk3LTM2LjY5IDI3Ljk3OC01My40MiAxLjQ4OC04LjA1IDIuMzgxLTE1LjQ1IDYuODQ2LTIxLjU2IDMuNTcxLTUuMTUgMTIuMjAzLTguNjkgMTYuMDcyLTEwLjMgNS45NTMtMS45MyAxMi41MDEtMy44NiAxOS45NDItNi4xMiAyNS41OTctNy40IDU3LjQ0NC0xNi4wOSA5Ni4xMzctMzkuOSA0Ny4wMjctMjguMzIgNTAuMzAxLTYzLjQgNDUuMjQxLTgwLjc4WlwiLGZpbGw6XCIjZmZmXCJ9KSksby5jcmVhdGVFbGVtZW50KFwiZ1wiLHttYXNrOlwidXJsKCNIYWxmR2hvc3Rfc3ZnX19iKVwifSxvLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2ZpbGw6XCJ1cmwoI0hhbGZHaG9zdF9zdmdfX2MpXCIsZDpcIk0tNTk4LjY5OS00Ny4zMDRoMTU3Ny4wN3YxNTY4LjAxaC0xNTc3LjA3elwifSkpKSksaXx8KGk9by5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLG51bGwsby5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJIYWxmR2hvc3Rfc3ZnX19jXCIseDE6MTg5LjgzNCx5MTotNDcuMzA0LHgyOjE4OS44MzQseTI6MTUyMC43MSxncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIn0sby5jcmVhdGVFbGVtZW50KFwic3RvcFwiLHtzdG9wQ29sb3I6XCIjRkNGMDAwXCJ9KSxvLmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIse29mZnNldDoxLHN0b3BDb2xvcjpcIiNGRkQzMDFcIn0pKSxvLmNyZWF0ZUVsZW1lbnQoXCJjbGlwUGF0aFwiLHtpZDpcIkhhbGZHaG9zdF9zdmdfX2FcIn0sby5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtmaWxsOlwiI2ZmZlwiLGQ6XCJNMCAwaDg5MHYxNDkwSDB6XCJ9KSkpKSl9fSw4MjQ5NjpmdW5jdGlvbihlKXt2YXIgdD0vKCgoW2EtekEtWl0rKC1bYS16QS1aMC05XSspezAsMn0pfFxcKikoO3E9WzAtMV0oXFwuWzAtOV0rKT8pPykqL2c7ZnVuY3Rpb24gbihlKXtyZXR1cm4oZXx8XCJcIikubWF0Y2godCkubWFwKChmdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lLnNwbGl0KFwiO1wiKSxuPXRbMF0uc3BsaXQoXCItXCIpLHI9Mz09PW4ubGVuZ3RoO3JldHVybntjb2RlOm5bMF0sc2NyaXB0OnI/blsxXTpudWxsLHJlZ2lvbjpyP25bMl06blsxXSxxdWFsaXR5OnRbMV0/cGFyc2VGbG9hdCh0WzFdLnNwbGl0KFwiPVwiKVsxXSk6MX19fSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSkuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5xdWFsaXR5LWUucXVhbGl0eX0pKX1lLmV4cG9ydHMucGFyc2U9bixlLmV4cG9ydHMucGljaz1mdW5jdGlvbihlLHQscil7aWYocj1yfHx7fSwhZXx8IWUubGVuZ3RofHwhdClyZXR1cm4gbnVsbDtcInN0cmluZ1wiPT09dHlwZW9mIHQmJih0PW4odCkpO2Zvcih2YXIgaT1lLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zcGxpdChcIi1cIiksbj0zPT09dC5sZW5ndGg7cmV0dXJue2NvZGU6dFswXSxzY3JpcHQ6bj90WzFdOm51bGwscmVnaW9uOm4/dFsyXTp0WzFdfX0pKSxvPTA7bzx0Lmxlbmd0aDtvKyspZm9yKHZhciBhPXRbb10scz1hLmNvZGUudG9Mb3dlckNhc2UoKSxjPWEucmVnaW9uP2EucmVnaW9uLnRvTG93ZXJDYXNlKCk6YS5yZWdpb24sdT1hLnNjcmlwdD9hLnNjcmlwdC50b0xvd2VyQ2FzZSgpOmEuc2NyaXB0LGw9MDtsPGkubGVuZ3RoO2wrKyl7dmFyIGQ9aVtsXS5jb2RlLnRvTG93ZXJDYXNlKCkscD1pW2xdLnNjcmlwdD9pW2xdLnNjcmlwdC50b0xvd2VyQ2FzZSgpOmlbbF0uc2NyaXB0LGY9aVtsXS5yZWdpb24/aVtsXS5yZWdpb24udG9Mb3dlckNhc2UoKTppW2xdLnJlZ2lvbjtpZihzPT09ZCYmKHIubG9vc2V8fCF1fHx1PT09cCkmJihyLmxvb3NlfHwhY3x8Yz09PWYpKXJldHVybiBlW2xdfXJldHVybiBudWxsfX0sOTY2OTpmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPW4oNTE2MDkpfSw1NTQ0ODpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NDg2NyksaT1uKDM2MDI2KSxvPW4oNDM3MiksYT1uKDE1MzI3KSxzPW4oOTQwOTcpLGM9big4NDEwOSksdT1uKDY3OTg1KSxsPW4oNzc4NzQpLGQ9big4MjY0OCkscD1uKDYwNjQ0KSxmPW4oOTAyMDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7dmFyIGgsZz1lLmRhdGEsbT1lLmhlYWRlcnMsdj1lLnJlc3BvbnNlVHlwZTtmdW5jdGlvbiBfKCl7ZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShoKSxlLnNpZ25hbCYmZS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsaCl9ci5pc0Zvcm1EYXRhKGcpJiZyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkmJmRlbGV0ZSBtW1wiQ29udGVudC1UeXBlXCJdO3ZhciBFPW5ldyBYTUxIdHRwUmVxdWVzdDtpZihlLmF1dGgpe3ZhciBiPWUuYXV0aC51c2VybmFtZXx8XCJcIixTPWUuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZS5hdXRoLnBhc3N3b3JkKSk6XCJcIjttLkF1dGhvcml6YXRpb249XCJCYXNpYyBcIitidG9hKGIrXCI6XCIrUyl9dmFyIHk9cyhlLmJhc2VVUkwsZS51cmwpO2Z1bmN0aW9uIFQoKXtpZihFKXt2YXIgcj1cImdldEFsbFJlc3BvbnNlSGVhZGVyc1wiaW4gRT9jKEUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsbz17ZGF0YTp2JiZcInRleHRcIiE9PXYmJlwianNvblwiIT09dj9FLnJlc3BvbnNlOkUucmVzcG9uc2VUZXh0LHN0YXR1czpFLnN0YXR1cyxzdGF0dXNUZXh0OkUuc3RhdHVzVGV4dCxoZWFkZXJzOnIsY29uZmlnOmUscmVxdWVzdDpFfTtpKChmdW5jdGlvbihlKXt0KGUpLF8oKX0pLChmdW5jdGlvbihlKXtuKGUpLF8oKX0pLG8pLEU9bnVsbH19aWYoRS5vcGVuKGUubWV0aG9kLnRvVXBwZXJDYXNlKCksYSh5LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksITApLEUudGltZW91dD1lLnRpbWVvdXQsXCJvbmxvYWRlbmRcImluIEU/RS5vbmxvYWRlbmQ9VDpFLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe0UmJjQ9PT1FLnJlYWR5U3RhdGUmJigwIT09RS5zdGF0dXN8fEUucmVzcG9uc2VVUkwmJjA9PT1FLnJlc3BvbnNlVVJMLmluZGV4T2YoXCJmaWxlOlwiKSkmJnNldFRpbWVvdXQoVCl9LEUub25hYm9ydD1mdW5jdGlvbigpe0UmJihuKG5ldyBkKFwiUmVxdWVzdCBhYm9ydGVkXCIsZC5FQ09OTkFCT1JURUQsZSxFKSksRT1udWxsKX0sRS5vbmVycm9yPWZ1bmN0aW9uKCl7bihuZXcgZChcIk5ldHdvcmsgRXJyb3JcIixkLkVSUl9ORVRXT1JLLGUsRSxFKSksRT1udWxsfSxFLm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB0PWUudGltZW91dD9cInRpbWVvdXQgb2YgXCIrZS50aW1lb3V0K1wibXMgZXhjZWVkZWRcIjpcInRpbWVvdXQgZXhjZWVkZWRcIixyPWUudHJhbnNpdGlvbmFsfHxsO2UudGltZW91dEVycm9yTWVzc2FnZSYmKHQ9ZS50aW1lb3V0RXJyb3JNZXNzYWdlKSxuKG5ldyBkKHQsci5jbGFyaWZ5VGltZW91dEVycm9yP2QuRVRJTUVET1VUOmQuRUNPTk5BQk9SVEVELGUsRSkpLEU9bnVsbH0sci5pc1N0YW5kYXJkQnJvd3NlckVudigpKXt2YXIgST0oZS53aXRoQ3JlZGVudGlhbHN8fHUoeSkpJiZlLnhzcmZDb29raWVOYW1lP28ucmVhZChlLnhzcmZDb29raWVOYW1lKTp2b2lkIDA7SSYmKG1bZS54c3JmSGVhZGVyTmFtZV09SSl9XCJzZXRSZXF1ZXN0SGVhZGVyXCJpbiBFJiZyLmZvckVhY2gobSwoZnVuY3Rpb24oZSx0KXtcInVuZGVmaW5lZFwiPT09dHlwZW9mIGcmJlwiY29udGVudC10eXBlXCI9PT10LnRvTG93ZXJDYXNlKCk/ZGVsZXRlIG1bdF06RS5zZXRSZXF1ZXN0SGVhZGVyKHQsZSl9KSksci5pc1VuZGVmaW5lZChlLndpdGhDcmVkZW50aWFscyl8fChFLndpdGhDcmVkZW50aWFscz0hIWUud2l0aENyZWRlbnRpYWxzKSx2JiZcImpzb25cIiE9PXYmJihFLnJlc3BvbnNlVHlwZT1lLnJlc3BvbnNlVHlwZSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGUub25Eb3dubG9hZFByb2dyZXNzJiZFLmFkZEV2ZW50TGlzdGVuZXIoXCJwcm9ncmVzc1wiLGUub25Eb3dubG9hZFByb2dyZXNzKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5vblVwbG9hZFByb2dyZXNzJiZFLnVwbG9hZCYmRS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcihcInByb2dyZXNzXCIsZS5vblVwbG9hZFByb2dyZXNzKSwoZS5jYW5jZWxUb2tlbnx8ZS5zaWduYWwpJiYoaD1mdW5jdGlvbihlKXtFJiYobighZXx8ZSYmZS50eXBlP25ldyBwOmUpLEUuYWJvcnQoKSxFPW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShoKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ/aCgpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLGgpKSksZ3x8KGc9bnVsbCk7dmFyIE89Zih5KTtPJiYtMT09PVtcImh0dHBcIixcImh0dHBzXCIsXCJmaWxlXCJdLmluZGV4T2YoTyk/bihuZXcgZChcIlVuc3VwcG9ydGVkIHByb3RvY29sIFwiK08rXCI6XCIsZC5FUlJfQkFEX1JFUVVFU1QsZSkpOkUuc2VuZChnKX0pKX19LDUxNjA5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY0ODY3KSxpPW4oOTE4NDkpLG89bigzMDMyMSksYT1uKDQ3MTg1KTt2YXIgcz1mdW5jdGlvbiBlKHQpe3ZhciBuPW5ldyBvKHQpLHM9aShvLnByb3RvdHlwZS5yZXF1ZXN0LG4pO3JldHVybiByLmV4dGVuZChzLG8ucHJvdG90eXBlLG4pLHIuZXh0ZW5kKHMsbikscy5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGUoYSh0LG4pKX0sc30obig0NTU0NikpO3MuQXhpb3M9byxzLkNhbmNlbGVkRXJyb3I9big2MDY0NCkscy5DYW5jZWxUb2tlbj1uKDE0OTcyKSxzLmlzQ2FuY2VsPW4oMjY1MDIpLHMuVkVSU0lPTj1uKDk3Mjg4KS52ZXJzaW9uLHMudG9Gb3JtRGF0YT1uKDQ3Njc1KSxzLkF4aW9zRXJyb3I9big4MjY0OCkscy5DYW5jZWw9cy5DYW5jZWxlZEVycm9yLHMuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0scy5zcHJlYWQ9big4NzEzKSxzLmlzQXhpb3NFcnJvcj1uKDE2MjY4KSxlLmV4cG9ydHM9cyxlLmV4cG9ydHMuZGVmYXVsdD1zfSwxNDk3MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2MDY0NCk7ZnVuY3Rpb24gaShlKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLlwiKTt2YXIgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3Q9ZX0pKTt2YXIgbj10aGlzO3RoaXMucHJvbWlzZS50aGVuKChmdW5jdGlvbihlKXtpZihuLl9saXN0ZW5lcnMpe3ZhciB0LHI9bi5fbGlzdGVuZXJzLmxlbmd0aDtmb3IodD0wO3Q8cjt0Kyspbi5fbGlzdGVuZXJzW3RdKGUpO24uX2xpc3RlbmVycz1udWxsfX0pKSx0aGlzLnByb21pc2UudGhlbj1mdW5jdGlvbihlKXt2YXIgdCxyPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtuLnN1YnNjcmliZShlKSx0PWV9KSkudGhlbihlKTtyZXR1cm4gci5jYW5jZWw9ZnVuY3Rpb24oKXtuLnVuc3Vic2NyaWJlKHQpfSxyfSxlKChmdW5jdGlvbihlKXtuLnJlYXNvbnx8KG4ucmVhc29uPW5ldyByKGUpLHQobi5yZWFzb24pKX0pKX1pLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259LGkucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihlKXt0aGlzLnJlYXNvbj9lKHRoaXMucmVhc29uKTp0aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX0saS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbGlzdGVuZXJzKXt2YXIgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTstMSE9PXQmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX19LGkuc291cmNlPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJue3Rva2VuOm5ldyBpKChmdW5jdGlvbih0KXtlPXR9KSksY2FuY2VsOmV9fSxlLmV4cG9ydHM9aX0sNjA2NDQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oODI2NDgpO2Z1bmN0aW9uIGkoZSl7ci5jYWxsKHRoaXMsbnVsbD09ZT9cImNhbmNlbGVkXCI6ZSxyLkVSUl9DQU5DRUxFRCksdGhpcy5uYW1lPVwiQ2FuY2VsZWRFcnJvclwifW4oNjQ4NjcpLmluaGVyaXRzKGkscix7X19DQU5DRUxfXzohMH0pLGUuZXhwb3J0cz1pfSwyNjUwMjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IWUuX19DQU5DRUxfXyl9fSwzMDMyMTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NDg2NyksaT1uKDE1MzI3KSxvPW4oODA3ODIpLGE9bigxMzU3Mikscz1uKDQ3MTg1KSxjPW4oOTQwOTcpLHU9big1NDg3NSksbD11LnZhbGlkYXRvcnM7ZnVuY3Rpb24gZChlKXt0aGlzLmRlZmF1bHRzPWUsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IG8scmVzcG9uc2U6bmV3IG99fWQucHJvdG90eXBlLnJlcXVlc3Q9ZnVuY3Rpb24oZSx0KXtcInN0cmluZ1wiPT09dHlwZW9mIGU/KHQ9dHx8e30pLnVybD1lOnQ9ZXx8e30sKHQ9cyh0aGlzLmRlZmF1bHRzLHQpKS5tZXRob2Q/dC5tZXRob2Q9dC5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD90Lm1ldGhvZD10aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnQubWV0aG9kPVwiZ2V0XCI7dmFyIG49dC50cmFuc2l0aW9uYWw7dm9pZCAwIT09biYmdS5hc3NlcnRPcHRpb25zKG4se3NpbGVudEpTT05QYXJzaW5nOmwudHJhbnNpdGlvbmFsKGwuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6bC50cmFuc2l0aW9uYWwobC5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmwudHJhbnNpdGlvbmFsKGwuYm9vbGVhbil9LCExKTt2YXIgcj1bXSxpPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7XCJmdW5jdGlvblwiPT09dHlwZW9mIGUucnVuV2hlbiYmITE9PT1lLnJ1bldoZW4odCl8fChpPWkmJmUuc3luY2hyb25vdXMsci51bnNoaWZ0KGUuZnVsZmlsbGVkLGUucmVqZWN0ZWQpKX0pKTt2YXIgbyxjPVtdO2lmKHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2MucHVzaChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKX0pKSwhaSl7dmFyIGQ9W2Esdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkoZCxyKSxkPWQuY29uY2F0KGMpLG89UHJvbWlzZS5yZXNvbHZlKHQpO2QubGVuZ3RoOylvPW8udGhlbihkLnNoaWZ0KCksZC5zaGlmdCgpKTtyZXR1cm4gb31mb3IodmFyIHA9dDtyLmxlbmd0aDspe3ZhciBmPXIuc2hpZnQoKSxoPXIuc2hpZnQoKTt0cnl7cD1mKHApfWNhdGNoKGcpe2goZyk7YnJlYWt9fXRyeXtvPWEocCl9Y2F0Y2goZyl7cmV0dXJuIFByb21pc2UucmVqZWN0KGcpfWZvcig7Yy5sZW5ndGg7KW89by50aGVuKGMuc2hpZnQoKSxjLnNoaWZ0KCkpO3JldHVybiBvfSxkLnByb3RvdHlwZS5nZXRVcmk9ZnVuY3Rpb24oZSl7ZT1zKHRoaXMuZGVmYXVsdHMsZSk7dmFyIHQ9YyhlLmJhc2VVUkwsZS51cmwpO3JldHVybiBpKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX0sci5mb3JFYWNoKFtcImRlbGV0ZVwiLFwiZ2V0XCIsXCJoZWFkXCIsXCJvcHRpb25zXCJdLChmdW5jdGlvbihlKXtkLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLnJlcXVlc3QocyhufHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToobnx8e30pLmRhdGF9KSl9fSkpLHIuZm9yRWFjaChbXCJwb3N0XCIsXCJwdXRcIixcInBhdGNoXCJdLChmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3JldHVybiBmdW5jdGlvbihuLHIsaSl7cmV0dXJuIHRoaXMucmVxdWVzdChzKGl8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOnQ/e1wiQ29udGVudC1UeXBlXCI6XCJtdWx0aXBhcnQvZm9ybS1kYXRhXCJ9Ont9LHVybDpuLGRhdGE6cn0pKX19ZC5wcm90b3R5cGVbZV09dCgpLGQucHJvdG90eXBlW2UrXCJGb3JtXCJdPXQoITApfSkpLGUuZXhwb3J0cz1kfSw4MjY0ODpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NDg2Nyk7ZnVuY3Rpb24gaShlLHQsbixyLGkpe0Vycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPWUsdGhpcy5uYW1lPVwiQXhpb3NFcnJvclwiLHQmJih0aGlzLmNvZGU9dCksbiYmKHRoaXMuY29uZmlnPW4pLHImJih0aGlzLnJlcXVlc3Q9ciksaSYmKHRoaXMucmVzcG9uc2U9aSl9ci5pbmhlcml0cyhpLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fX0pO3ZhciBvPWkucHJvdG90eXBlLGE9e307W1wiRVJSX0JBRF9PUFRJT05fVkFMVUVcIixcIkVSUl9CQURfT1BUSU9OXCIsXCJFQ09OTkFCT1JURURcIixcIkVUSU1FRE9VVFwiLFwiRVJSX05FVFdPUktcIixcIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFNcIixcIkVSUl9ERVBSRUNBVEVEXCIsXCJFUlJfQkFEX1JFU1BPTlNFXCIsXCJFUlJfQkFEX1JFUVVFU1RcIixcIkVSUl9DQU5DRUxFRFwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXthW2VdPXt2YWx1ZTplfX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhpLGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLFwiaXNBeGlvc0Vycm9yXCIse3ZhbHVlOiEwfSksaS5mcm9tPWZ1bmN0aW9uKGUsdCxuLGEscyxjKXt2YXIgdT1PYmplY3QuY3JlYXRlKG8pO3JldHVybiByLnRvRmxhdE9iamVjdChlLHUsKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09RXJyb3IucHJvdG90eXBlfSkpLGkuY2FsbCh1LGUubWVzc2FnZSx0LG4sYSxzKSx1Lm5hbWU9ZS5uYW1lLGMmJk9iamVjdC5hc3NpZ24odSxjKSx1fSxlLmV4cG9ydHM9aX0sODA3ODI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNjQ4NjcpO2Z1bmN0aW9uIGkoKXt0aGlzLmhhbmRsZXJzPVtdfWkucHJvdG90eXBlLnVzZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czohIW4mJm4uc3luY2hyb25vdXMscnVuV2hlbjpuP24ucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX0saS5wcm90b3R5cGUuZWplY3Q9ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9LGkucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSl7ci5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsKGZ1bmN0aW9uKHQpe251bGwhPT10JiZlKHQpfSkpfSxlLmV4cG9ydHM9aX0sOTQwOTc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oOTE3OTMpLGk9big3MzAzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIXIodCk/aShlLHQpOnR9fSwxMzU3MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NDg2NyksaT1uKDE4NTI3KSxvPW4oMjY1MDIpLGE9big0NTU0Nikscz1uKDYwNjQ0KTtmdW5jdGlvbiBjKGUpe2lmKGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLGUuc2lnbmFsJiZlLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBzfWUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gYyhlKSxlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmRhdGE9aS5jYWxsKGUsZS5kYXRhLGUuaGVhZGVycyxlLnRyYW5zZm9ybVJlcXVlc3QpLGUuaGVhZGVycz1yLm1lcmdlKGUuaGVhZGVycy5jb21tb258fHt9LGUuaGVhZGVyc1tlLm1ldGhvZF18fHt9LGUuaGVhZGVycyksci5mb3JFYWNoKFtcImRlbGV0ZVwiLFwiZ2V0XCIsXCJoZWFkXCIsXCJwb3N0XCIsXCJwdXRcIixcInBhdGNoXCIsXCJjb21tb25cIl0sKGZ1bmN0aW9uKHQpe2RlbGV0ZSBlLmhlYWRlcnNbdF19KSksKGUuYWRhcHRlcnx8YS5hZGFwdGVyKShlKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gYyhlKSx0LmRhdGE9aS5jYWxsKGUsdC5kYXRhLHQuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSx0fSksKGZ1bmN0aW9uKHQpe3JldHVybiBvKHQpfHwoYyhlKSx0JiZ0LnJlc3BvbnNlJiYodC5yZXNwb25zZS5kYXRhPWkuY2FsbChlLHQucmVzcG9uc2UuZGF0YSx0LnJlc3BvbnNlLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSkpKSxQcm9taXNlLnJlamVjdCh0KX0pKX19LDQ3MTg1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY0ODY3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0PXR8fHt9O3ZhciBuPXt9O2Z1bmN0aW9uIGkoZSx0KXtyZXR1cm4gci5pc1BsYWluT2JqZWN0KGUpJiZyLmlzUGxhaW5PYmplY3QodCk/ci5tZXJnZShlLHQpOnIuaXNQbGFpbk9iamVjdCh0KT9yLm1lcmdlKHt9LHQpOnIuaXNBcnJheSh0KT90LnNsaWNlKCk6dH1mdW5jdGlvbiBvKG4pe3JldHVybiByLmlzVW5kZWZpbmVkKHRbbl0pP3IuaXNVbmRlZmluZWQoZVtuXSk/dm9pZCAwOmkodm9pZCAwLGVbbl0pOmkoZVtuXSx0W25dKX1mdW5jdGlvbiBhKGUpe2lmKCFyLmlzVW5kZWZpbmVkKHRbZV0pKXJldHVybiBpKHZvaWQgMCx0W2VdKX1mdW5jdGlvbiBzKG4pe3JldHVybiByLmlzVW5kZWZpbmVkKHRbbl0pP3IuaXNVbmRlZmluZWQoZVtuXSk/dm9pZCAwOmkodm9pZCAwLGVbbl0pOmkodm9pZCAwLHRbbl0pfWZ1bmN0aW9uIGMobil7cmV0dXJuIG4gaW4gdD9pKGVbbl0sdFtuXSk6biBpbiBlP2kodm9pZCAwLGVbbl0pOnZvaWQgMH12YXIgdT17dXJsOmEsbWV0aG9kOmEsZGF0YTphLGJhc2VVUkw6cyx0cmFuc2Zvcm1SZXF1ZXN0OnMsdHJhbnNmb3JtUmVzcG9uc2U6cyxwYXJhbXNTZXJpYWxpemVyOnMsdGltZW91dDpzLHRpbWVvdXRNZXNzYWdlOnMsd2l0aENyZWRlbnRpYWxzOnMsYWRhcHRlcjpzLHJlc3BvbnNlVHlwZTpzLHhzcmZDb29raWVOYW1lOnMseHNyZkhlYWRlck5hbWU6cyxvblVwbG9hZFByb2dyZXNzOnMsb25Eb3dubG9hZFByb2dyZXNzOnMsZGVjb21wcmVzczpzLG1heENvbnRlbnRMZW5ndGg6cyxtYXhCb2R5TGVuZ3RoOnMsYmVmb3JlUmVkaXJlY3Q6cyx0cmFuc3BvcnQ6cyxodHRwQWdlbnQ6cyxodHRwc0FnZW50OnMsY2FuY2VsVG9rZW46cyxzb2NrZXRQYXRoOnMscmVzcG9uc2VFbmNvZGluZzpzLHZhbGlkYXRlU3RhdHVzOmN9O3JldHVybiByLmZvckVhY2goT2JqZWN0LmtleXMoZSkuY29uY2F0KE9iamVjdC5rZXlzKHQpKSwoZnVuY3Rpb24oZSl7dmFyIHQ9dVtlXXx8byxpPXQoZSk7ci5pc1VuZGVmaW5lZChpKSYmdCE9PWN8fChuW2VdPWkpfSkpLG59fSwzNjAyNjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MjY0OCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1uLmNvbmZpZy52YWxpZGF0ZVN0YXR1cztuLnN0YXR1cyYmaSYmIWkobi5zdGF0dXMpP3QobmV3IHIoXCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlIFwiK24uc3RhdHVzLFtyLkVSUl9CQURfUkVRVUVTVCxyLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3Iobi5zdGF0dXMvMTAwKS00XSxuLmNvbmZpZyxuLnJlcXVlc3QsbikpOmUobil9fSwxODUyNzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NDg2NyksaT1uKDQ1NTQ2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPXRoaXN8fGk7cmV0dXJuIHIuZm9yRWFjaChuLChmdW5jdGlvbihuKXtlPW4uY2FsbChvLGUsdCl9KSksZX19LDQ1NTQ2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDM0MTU1KSxpPW4oNjQ4NjcpLG89bigxNjAxNiksYT1uKDgyNjQ4KSxzPW4oNzc4NzQpLGM9big0NzY3NSksdT17XCJDb250ZW50LVR5cGVcIjpcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwifTtmdW5jdGlvbiBsKGUsdCl7IWkuaXNVbmRlZmluZWQoZSkmJmkuaXNVbmRlZmluZWQoZVtcIkNvbnRlbnQtVHlwZVwiXSkmJihlW1wiQ29udGVudC1UeXBlXCJdPXQpfXZhciBkPXt0cmFuc2l0aW9uYWw6cyxhZGFwdGVyOmZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgWE1MSHR0cFJlcXVlc3R8fFwidW5kZWZpbmVkXCIhPT10eXBlb2YgciYmXCJbb2JqZWN0IHByb2Nlc3NdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocikpJiYoZT1uKDU1NDQ4KSksZX0oKSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2lmKG8odCxcIkFjY2VwdFwiKSxvKHQsXCJDb250ZW50LVR5cGVcIiksaS5pc0Zvcm1EYXRhKGUpfHxpLmlzQXJyYXlCdWZmZXIoZSl8fGkuaXNCdWZmZXIoZSl8fGkuaXNTdHJlYW0oZSl8fGkuaXNGaWxlKGUpfHxpLmlzQmxvYihlKSlyZXR1cm4gZTtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KGUpKXJldHVybiBlLmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiBsKHQsXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOFwiKSxlLnRvU3RyaW5nKCk7dmFyIG4scj1pLmlzT2JqZWN0KGUpLGE9dCYmdFtcIkNvbnRlbnQtVHlwZVwiXTtpZigobj1pLmlzRmlsZUxpc3QoZSkpfHxyJiZcIm11bHRpcGFydC9mb3JtLWRhdGFcIj09PWEpe3ZhciBzPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gYyhuP3tcImZpbGVzW11cIjplfTplLHMmJm5ldyBzKX1yZXR1cm4gcnx8XCJhcHBsaWNhdGlvbi9qc29uXCI9PT1hPyhsKHQsXCJhcHBsaWNhdGlvbi9qc29uXCIpLGZ1bmN0aW9uKGUsdCxuKXtpZihpLmlzU3RyaW5nKGUpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoZSksaS50cmltKGUpfWNhdGNoKHIpe2lmKFwiU3ludGF4RXJyb3JcIiE9PXIubmFtZSl0aHJvdyByfXJldHVybihufHxKU09OLnN0cmluZ2lmeSkoZSl9KGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe3ZhciB0PXRoaXMudHJhbnNpdGlvbmFsfHxkLnRyYW5zaXRpb25hbCxuPXQmJnQuc2lsZW50SlNPTlBhcnNpbmcscj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89IW4mJlwianNvblwiPT09dGhpcy5yZXNwb25zZVR5cGU7aWYob3x8ciYmaS5pc1N0cmluZyhlKSYmZS5sZW5ndGgpdHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKHMpe2lmKG8pe2lmKFwiU3ludGF4RXJyb3JcIj09PXMubmFtZSl0aHJvdyBhLmZyb20ocyxhLkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpO3Rocm93IHN9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOlwiWFNSRi1UT0tFTlwiLHhzcmZIZWFkZXJOYW1lOlwiWC1YU1JGLVRPS0VOXCIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6big5MTYyMyl9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDpcImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKlwifX19O2kuZm9yRWFjaChbXCJkZWxldGVcIixcImdldFwiLFwiaGVhZFwiXSwoZnVuY3Rpb24oZSl7ZC5oZWFkZXJzW2VdPXt9fSkpLGkuZm9yRWFjaChbXCJwb3N0XCIsXCJwdXRcIixcInBhdGNoXCJdLChmdW5jdGlvbihlKXtkLmhlYWRlcnNbZV09aS5tZXJnZSh1KX0pKSxlLmV4cG9ydHM9ZH0sNzc4NzQ6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfX0sOTcyODg6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPXt2ZXJzaW9uOlwiMC4yNy4yXCJ9fSw5MTg0OTpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZS5hcHBseSh0LG4pfX19LDE1MzI3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY0ODY3KTtmdW5jdGlvbiBpKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLFwiOlwiKS5yZXBsYWNlKC8lMjQvZyxcIiRcIikucmVwbGFjZSgvJTJDL2dpLFwiLFwiKS5yZXBsYWNlKC8lMjAvZyxcIitcIikucmVwbGFjZSgvJTVCL2dpLFwiW1wiKS5yZXBsYWNlKC8lNUQvZ2ksXCJdXCIpfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYoIXQpcmV0dXJuIGU7dmFyIG87aWYobilvPW4odCk7ZWxzZSBpZihyLmlzVVJMU2VhcmNoUGFyYW1zKHQpKW89dC50b1N0cmluZygpO2Vsc2V7dmFyIGE9W107ci5mb3JFYWNoKHQsKGZ1bmN0aW9uKGUsdCl7bnVsbCE9PWUmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgZSYmKHIuaXNBcnJheShlKT90Kz1cIltdXCI6ZT1bZV0sci5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe3IuaXNEYXRlKGUpP2U9ZS50b0lTT1N0cmluZygpOnIuaXNPYmplY3QoZSkmJihlPUpTT04uc3RyaW5naWZ5KGUpKSxhLnB1c2goaSh0KStcIj1cIitpKGUpKX0pKSl9KSksbz1hLmpvaW4oXCImXCIpfWlmKG8pe3ZhciBzPWUuaW5kZXhPZihcIiNcIik7LTEhPT1zJiYoZT1lLnNsaWNlKDAscykpLGUrPSgtMT09PWUuaW5kZXhPZihcIj9cIik/XCI/XCI6XCImXCIpK299cmV0dXJuIGV9fSw3MzAzOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiB0P2UucmVwbGFjZSgvXFwvKyQvLFwiXCIpK1wiL1wiK3QucmVwbGFjZSgvXlxcLysvLFwiXCIpOmV9fSw0MzcyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY0ODY3KTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP3t3cml0ZTpmdW5jdGlvbihlLHQsbixpLG8sYSl7dmFyIHM9W107cy5wdXNoKGUrXCI9XCIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKSxyLmlzTnVtYmVyKG4pJiZzLnB1c2goXCJleHBpcmVzPVwiK25ldyBEYXRlKG4pLnRvR01UU3RyaW5nKCkpLHIuaXNTdHJpbmcoaSkmJnMucHVzaChcInBhdGg9XCIraSksci5pc1N0cmluZyhvKSYmcy5wdXNoKFwiZG9tYWluPVwiK28pLCEwPT09YSYmcy5wdXNoKFwic2VjdXJlXCIpLGRvY3VtZW50LmNvb2tpZT1zLmpvaW4oXCI7IFwiKX0scmVhZDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cChcIihefDtcXFxccyopKFwiK2UrXCIpPShbXjtdKilcIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dGhpcy53cml0ZShlLFwiXCIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19LDkxNzkzOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4vXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdChlKX19LDE2MjY4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY0ODY3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuaXNPYmplY3QoZSkmJiEwPT09ZS5pc0F4aW9zRXJyb3J9fSw2Nzk4NTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NDg2Nyk7ZS5leHBvcnRzPXIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3ZhciBlLHQ9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO2Z1bmN0aW9uIGkoZSl7dmFyIHI9ZTtyZXR1cm4gdCYmKG4uc2V0QXR0cmlidXRlKFwiaHJlZlwiLHIpLHI9bi5ocmVmKSxuLnNldEF0dHJpYnV0ZShcImhyZWZcIixyKSx7aHJlZjpuLmhyZWYscHJvdG9jb2w6bi5wcm90b2NvbD9uLnByb3RvY29sLnJlcGxhY2UoLzokLyxcIlwiKTpcIlwiLGhvc3Q6bi5ob3N0LHNlYXJjaDpuLnNlYXJjaD9uLnNlYXJjaC5yZXBsYWNlKC9eXFw/LyxcIlwiKTpcIlwiLGhhc2g6bi5oYXNoP24uaGFzaC5yZXBsYWNlKC9eIy8sXCJcIik6XCJcIixob3N0bmFtZTpuLmhvc3RuYW1lLHBvcnQ6bi5wb3J0LHBhdGhuYW1lOlwiL1wiPT09bi5wYXRobmFtZS5jaGFyQXQoMCk/bi5wYXRobmFtZTpcIi9cIituLnBhdGhuYW1lfX1yZXR1cm4gZT1pKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbih0KXt2YXIgbj1yLmlzU3RyaW5nKHQpP2kodCk6dDtyZXR1cm4gbi5wcm90b2NvbD09PWUucHJvdG9jb2wmJm4uaG9zdD09PWUuaG9zdH19KCk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LDE2MDE2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDY0ODY3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyLmZvckVhY2goZSwoZnVuY3Rpb24obixyKXtyIT09dCYmci50b1VwcGVyQ2FzZSgpPT09dC50b1VwcGVyQ2FzZSgpJiYoZVt0XT1uLGRlbGV0ZSBlW3JdKX0pKX19LDkxNjIzOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1udWxsfSw4NDEwOTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big2NDg2NyksaT1bXCJhZ2VcIixcImF1dGhvcml6YXRpb25cIixcImNvbnRlbnQtbGVuZ3RoXCIsXCJjb250ZW50LXR5cGVcIixcImV0YWdcIixcImV4cGlyZXNcIixcImZyb21cIixcImhvc3RcIixcImlmLW1vZGlmaWVkLXNpbmNlXCIsXCJpZi11bm1vZGlmaWVkLXNpbmNlXCIsXCJsYXN0LW1vZGlmaWVkXCIsXCJsb2NhdGlvblwiLFwibWF4LWZvcndhcmRzXCIsXCJwcm94eS1hdXRob3JpemF0aW9uXCIsXCJyZWZlcmVyXCIsXCJyZXRyeS1hZnRlclwiLFwidXNlci1hZ2VudFwiXTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQsbixvLGE9e307cmV0dXJuIGU/KHIuZm9yRWFjaChlLnNwbGl0KFwiXFxuXCIpLChmdW5jdGlvbihlKXtpZihvPWUuaW5kZXhPZihcIjpcIiksdD1yLnRyaW0oZS5zdWJzdHIoMCxvKSkudG9Mb3dlckNhc2UoKSxuPXIudHJpbShlLnN1YnN0cihvKzEpKSx0KXtpZihhW3RdJiZpLmluZGV4T2YodCk+PTApcmV0dXJuO2FbdF09XCJzZXQtY29va2llXCI9PT10PyhhW3RdP2FbdF06W10pLmNvbmNhdChbbl0pOmFbdF0/YVt0XStcIiwgXCIrbjpufX0pKSxhKTphfX0sOTAyMDU6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PS9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKGUpO3JldHVybiB0JiZ0WzFdfHxcIlwifX0sODcxMzpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KG51bGwsdCl9fX0sNDc2NzU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNDg3NjQpLmxXLGk9big2NDg2Nyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dD10fHxuZXcgRm9ybURhdGE7dmFyIG49W107ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbD09PWU/XCJcIjppLmlzRGF0ZShlKT9lLnRvSVNPU3RyaW5nKCk6aS5pc0FycmF5QnVmZmVyKGUpfHxpLmlzVHlwZWRBcnJheShlKT9cImZ1bmN0aW9uXCI9PT10eXBlb2YgQmxvYj9uZXcgQmxvYihbZV0pOnIuZnJvbShlKTplfXJldHVybiBmdW5jdGlvbiBlKHIsYSl7aWYoaS5pc1BsYWluT2JqZWN0KHIpfHxpLmlzQXJyYXkocikpe2lmKC0xIT09bi5pbmRleE9mKHIpKXRocm93IEVycm9yKFwiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluIFwiK2EpO24ucHVzaChyKSxpLmZvckVhY2gociwoZnVuY3Rpb24obixyKXtpZighaS5pc1VuZGVmaW5lZChuKSl7dmFyIHMsYz1hP2ErXCIuXCIrcjpyO2lmKG4mJiFhJiZcIm9iamVjdFwiPT09dHlwZW9mIG4paWYoaS5lbmRzV2l0aChyLFwie31cIikpbj1KU09OLnN0cmluZ2lmeShuKTtlbHNlIGlmKGkuZW5kc1dpdGgocixcIltdXCIpJiYocz1pLnRvQXJyYXkobikpKXJldHVybiB2b2lkIHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7IWkuaXNVbmRlZmluZWQoZSkmJnQuYXBwZW5kKGMsbyhlKSl9KSk7ZShuLGMpfX0pKSxuLnBvcCgpfWVsc2UgdC5hcHBlbmQoYSxvKHIpKX0oZSksdH19LDU0ODc1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDk3Mjg4KS52ZXJzaW9uLGk9big4MjY0OCksbz17fTtbXCJvYmplY3RcIixcImJvb2xlYW5cIixcIm51bWJlclwiLFwiZnVuY3Rpb25cIixcInN0cmluZ1wiLFwic3ltYm9sXCJdLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7b1tlXT1mdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG49PT1lfHxcImFcIisodDwxP1wibiBcIjpcIiBcIikrZX19KSk7dmFyIGE9e307by50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm5cIltBeGlvcyB2XCIrcitcIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnXCIrZStcIidcIit0KyhuP1wiLiBcIituOlwiXCIpfXJldHVybiBmdW5jdGlvbihuLHIscyl7aWYoITE9PT1lKXRocm93IG5ldyBpKG8ocixcIiBoYXMgYmVlbiByZW1vdmVkXCIrKHQ/XCIgaW4gXCIrdDpcIlwiKSksaS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiFhW3JdJiYoYVtyXT0hMCxjb25zb2xlLndhcm4obyhyLFwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdlwiK3QrXCIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmVcIikpKSwhZXx8ZShuLHIscyl9fSxlLmV4cG9ydHM9e2Fzc2VydE9wdGlvbnM6ZnVuY3Rpb24oZSx0LG4pe2lmKFwib2JqZWN0XCIhPT10eXBlb2YgZSl0aHJvdyBuZXcgaShcIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3RcIixpLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtmb3IodmFyIHI9T2JqZWN0LmtleXMoZSksbz1yLmxlbmd0aDtvLS0gPjA7KXt2YXIgYT1yW29dLHM9dFthXTtpZihzKXt2YXIgYz1lW2FdLHU9dm9pZCAwPT09Y3x8cyhjLGEsZSk7aWYoITAhPT11KXRocm93IG5ldyBpKFwib3B0aW9uIFwiK2ErXCIgbXVzdCBiZSBcIit1LGkuRVJSX0JBRF9PUFRJT05fVkFMVUUpfWVsc2UgaWYoITAhPT1uKXRocm93IG5ldyBpKFwiVW5rbm93biBvcHRpb24gXCIrYSxpLkVSUl9CQURfT1BUSU9OKX19LHZhbGlkYXRvcnM6b319LDY0ODY3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcixpPW4oOTE4NDkpLG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxhPShyPU9iamVjdC5jcmVhdGUobnVsbCksZnVuY3Rpb24oZSl7dmFyIHQ9by5jYWxsKGUpO3JldHVybiByW3RdfHwoclt0XT10LnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSk7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZT1lLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24odCl7cmV0dXJuIGEodCk9PT1lfX1mdW5jdGlvbiBjKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBlfXZhciBsPXMoXCJBcnJheUJ1ZmZlclwiKTtmdW5jdGlvbiBkKGUpe3JldHVybiBudWxsIT09ZSYmXCJvYmplY3RcIj09PXR5cGVvZiBlfWZ1bmN0aW9uIHAoZSl7aWYoXCJvYmplY3RcIiE9PWEoZSkpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09dHx8dD09PU9iamVjdC5wcm90b3R5cGV9dmFyIGY9cyhcIkRhdGVcIiksaD1zKFwiRmlsZVwiKSxnPXMoXCJCbG9iXCIpLG09cyhcIkZpbGVMaXN0XCIpO2Z1bmN0aW9uIHYoZSl7cmV0dXJuXCJbb2JqZWN0IEZ1bmN0aW9uXVwiPT09by5jYWxsKGUpfXZhciBfPXMoXCJVUkxTZWFyY2hQYXJhbXNcIik7ZnVuY3Rpb24gRShlLHQpe2lmKG51bGwhPT1lJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIGUpaWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlJiYoZT1bZV0pLGMoZSkpZm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKXQuY2FsbChudWxsLGVbbl0sbixlKTtlbHNlIGZvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiZ0LmNhbGwobnVsbCxlW2ldLGksZSl9dmFyIGIsUz0oYj1cInVuZGVmaW5lZFwiIT09dHlwZW9mIFVpbnQ4QXJyYXkmJk9iamVjdC5nZXRQcm90b3R5cGVPZihVaW50OEFycmF5KSxmdW5jdGlvbihlKXtyZXR1cm4gYiYmZSBpbnN0YW5jZW9mIGJ9KTtlLmV4cG9ydHM9e2lzQXJyYXk6Yyxpc0FycmF5QnVmZmVyOmwsaXNCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhdShlKSYmbnVsbCE9PWUuY29uc3RydWN0b3ImJiF1KGUuY29uc3RydWN0b3IpJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKX0saXNGb3JtRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1cIltvYmplY3QgRm9ybURhdGFdXCI7cmV0dXJuIGUmJihcImZ1bmN0aW9uXCI9PT10eXBlb2YgRm9ybURhdGEmJmUgaW5zdGFuY2VvZiBGb3JtRGF0YXx8by5jYWxsKGUpPT09dHx8dihlLnRvU3RyaW5nKSYmZS50b1N0cmluZygpPT09dCl9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKGUpe3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJmwoZS5idWZmZXIpfSxpc1N0cmluZzpmdW5jdGlvbihlKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGV9LGlzTnVtYmVyOmZ1bmN0aW9uKGUpe3JldHVyblwibnVtYmVyXCI9PT10eXBlb2YgZX0saXNPYmplY3Q6ZCxpc1BsYWluT2JqZWN0OnAsaXNVbmRlZmluZWQ6dSxpc0RhdGU6Zixpc0ZpbGU6aCxpc0Jsb2I6Zyxpc0Z1bmN0aW9uOnYsaXNTdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIGQoZSkmJnYoZS5waXBlKX0saXNVUkxTZWFyY2hQYXJhbXM6Xyxpc1N0YW5kYXJkQnJvd3NlckVudjpmdW5jdGlvbigpe3JldHVybihcInVuZGVmaW5lZFwiPT09dHlwZW9mIG5hdmlnYXRvcnx8XCJSZWFjdE5hdGl2ZVwiIT09bmF2aWdhdG9yLnByb2R1Y3QmJlwiTmF0aXZlU2NyaXB0XCIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmXCJOU1wiIT09bmF2aWdhdG9yLnByb2R1Y3QpJiYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3cmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQpfSxmb3JFYWNoOkUsbWVyZ2U6ZnVuY3Rpb24gZSgpe3ZhciB0PXt9O2Z1bmN0aW9uIG4obixyKXtwKHRbcl0pJiZwKG4pP3Rbcl09ZSh0W3JdLG4pOnAobik/dFtyXT1lKHt9LG4pOmMobik/dFtyXT1uLnNsaWNlKCk6dFtyXT1ufWZvcih2YXIgcj0wLGk9YXJndW1lbnRzLmxlbmd0aDtyPGk7cisrKUUoYXJndW1lbnRzW3JdLG4pO3JldHVybiB0fSxleHRlbmQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBFKHQsKGZ1bmN0aW9uKHQscil7ZVtyXT1uJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgdD9pKHQsbik6dH0pKSxlfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLFwiXCIpfSxzdHJpcEJPTTpmdW5jdGlvbihlKXtyZXR1cm4gNjUyNzk9PT1lLmNoYXJDb2RlQXQoMCkmJihlPWUuc2xpY2UoMSkpLGV9LGluaGVyaXRzOmZ1bmN0aW9uKGUsdCxuLHIpe2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsciksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxuJiZPYmplY3QuYXNzaWduKGUucHJvdG90eXBlLG4pfSx0b0ZsYXRPYmplY3Q6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbyxhPXt9O3Q9dHx8e307ZG97Zm9yKGk9KHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkpLmxlbmd0aDtpLS0gPjA7KWFbbz1yW2ldXXx8KHRbb109ZVtvXSxhW29dPSEwKTtlPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKX13aGlsZShlJiYoIW58fG4oZSx0KSkmJmUhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sa2luZE9mOmEsa2luZE9mVGVzdDpzLGVuZHNXaXRoOmZ1bmN0aW9uKGUsdCxuKXtlPVN0cmluZyhlKSwodm9pZCAwPT09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKSxuLT10Lmxlbmd0aDt2YXIgcj1lLmluZGV4T2YodCxuKTtyZXR1cm4tMSE9PXImJnI9PT1ufSx0b0FycmF5OmZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBudWxsO3ZhciB0PWUubGVuZ3RoO2lmKHUodCkpcmV0dXJuIG51bGw7Zm9yKHZhciBuPW5ldyBBcnJheSh0KTt0LS0gPjA7KW5bdF09ZVt0XTtyZXR1cm4gbn0saXNUeXBlZEFycmF5OlMsaXNGaWxlTGlzdDptfX0sNzk3NDI6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjt0LmJ5dGVMZW5ndGg9ZnVuY3Rpb24oZSl7dmFyIHQ9YyhlKSxuPXRbMF0scj10WzFdO3JldHVybiAzKihuK3IpLzQtcn0sdC50b0J5dGVBcnJheT1mdW5jdGlvbihlKXt2YXIgdCxuLG89YyhlKSxhPW9bMF0scz1vWzFdLHU9bmV3IGkoZnVuY3Rpb24oZSx0LG4pe3JldHVybiAzKih0K24pLzQtbn0oMCxhLHMpKSxsPTAsZD1zPjA/YS00OmE7Zm9yKG49MDtuPGQ7bis9NCl0PXJbZS5jaGFyQ29kZUF0KG4pXTw8MTh8cltlLmNoYXJDb2RlQXQobisxKV08PDEyfHJbZS5jaGFyQ29kZUF0KG4rMildPDw2fHJbZS5jaGFyQ29kZUF0KG4rMyldLHVbbCsrXT10Pj4xNiYyNTUsdVtsKytdPXQ+PjgmMjU1LHVbbCsrXT0yNTUmdDsyPT09cyYmKHQ9cltlLmNoYXJDb2RlQXQobildPDwyfHJbZS5jaGFyQ29kZUF0KG4rMSldPj40LHVbbCsrXT0yNTUmdCk7MT09PXMmJih0PXJbZS5jaGFyQ29kZUF0KG4pXTw8MTB8cltlLmNoYXJDb2RlQXQobisxKV08PDR8cltlLmNoYXJDb2RlQXQobisyKV0+PjIsdVtsKytdPXQ+PjgmMjU1LHVbbCsrXT0yNTUmdCk7cmV0dXJuIHV9LHQuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1lLmxlbmd0aCxpPXIlMyxvPVtdLGE9MTYzODMscz0wLGM9ci1pO3M8YztzKz1hKW8ucHVzaCh1KGUscyxzK2E+Yz9jOnMrYSkpOzE9PT1pPyh0PWVbci0xXSxvLnB1c2goblt0Pj4yXStuW3Q8PDQmNjNdK1wiPT1cIikpOjI9PT1pJiYodD0oZVtyLTJdPDw4KStlW3ItMV0sby5wdXNoKG5bdD4+MTBdK25bdD4+NCY2M10rblt0PDwyJjYzXStcIj1cIikpO3JldHVybiBvLmpvaW4oXCJcIil9O2Zvcih2YXIgbj1bXSxyPVtdLGk9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBVaW50OEFycmF5P1VpbnQ4QXJyYXk6QXJyYXksbz1cIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9cIixhPTAscz1vLmxlbmd0aDthPHM7KythKW5bYV09b1thXSxyW28uY2hhckNvZGVBdChhKV09YTtmdW5jdGlvbiBjKGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQlND4wKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDRcIik7dmFyIG49ZS5pbmRleE9mKFwiPVwiKTtyZXR1cm4tMT09PW4mJihuPXQpLFtuLG49PT10PzA6NC1uJTRdfWZ1bmN0aW9uIHUoZSx0LHIpe2Zvcih2YXIgaSxvLGE9W10scz10O3M8cjtzKz0zKWk9KGVbc108PDE2JjE2NzExNjgwKSsoZVtzKzFdPDw4JjY1MjgwKSsoMjU1JmVbcysyXSksYS5wdXNoKG5bKG89aSk+PjE4JjYzXStuW28+PjEyJjYzXStuW28+PjYmNjNdK25bNjMmb10pO3JldHVybiBhLmpvaW4oXCJcIil9cltcIi1cIi5jaGFyQ29kZUF0KDApXT02MixyW1wiX1wiLmNoYXJDb2RlQXQoMCldPTYzfSw0ODc2NDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big3OTc0MiksaT1uKDgwNjQ1KSxvPW4oNTgyNik7ZnVuY3Rpb24gYSgpe3JldHVybiBjLlRZUEVEX0FSUkFZX1NVUFBPUlQ/MjE0NzQ4MzY0NzoxMDczNzQxODIzfWZ1bmN0aW9uIHMoZSx0KXtpZihhKCk8dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoXCIpO3JldHVybiBjLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KGU9bmV3IFVpbnQ4QXJyYXkodCkpLl9fcHJvdG9fXz1jLnByb3RvdHlwZToobnVsbD09PWUmJihlPW5ldyBjKHQpKSxlLmxlbmd0aD10KSxlfWZ1bmN0aW9uIGMoZSx0LG4pe2lmKCFjLlRZUEVEX0FSUkFZX1NVUFBPUlQmJiEodGhpcyBpbnN0YW5jZW9mIGMpKXJldHVybiBuZXcgYyhlLHQsbik7aWYoXCJudW1iZXJcIj09PXR5cGVvZiBlKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKFwiSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmdcIik7cmV0dXJuIGQodGhpcyxlKX1yZXR1cm4gdSh0aGlzLGUsdCxuKX1mdW5jdGlvbiB1KGUsdCxuLHIpe2lmKFwibnVtYmVyXCI9PT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdcInZhbHVlXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKTtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIEFycmF5QnVmZmVyJiZ0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ZnVuY3Rpb24oZSx0LG4scil7aWYodC5ieXRlTGVuZ3RoLG48MHx8dC5ieXRlTGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCInb2Zmc2V0JyBpcyBvdXQgb2YgYm91bmRzXCIpO2lmKHQuYnl0ZUxlbmd0aDxuKyhyfHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIidsZW5ndGgnIGlzIG91dCBvZiBib3VuZHNcIik7dD12b2lkIDA9PT1uJiZ2b2lkIDA9PT1yP25ldyBVaW50OEFycmF5KHQpOnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkodCxuKTpuZXcgVWludDhBcnJheSh0LG4scik7Yy5UWVBFRF9BUlJBWV9TVVBQT1JUPyhlPXQpLl9fcHJvdG9fXz1jLnByb3RvdHlwZTplPXAoZSx0KTtyZXR1cm4gZX0oZSx0LG4scik6XCJzdHJpbmdcIj09PXR5cGVvZiB0P2Z1bmN0aW9uKGUsdCxuKXtcInN0cmluZ1wiPT09dHlwZW9mIG4mJlwiXCIhPT1ufHwobj1cInV0ZjhcIik7aWYoIWMuaXNFbmNvZGluZyhuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdcImVuY29kaW5nXCIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpO3ZhciByPTB8aCh0LG4pLGk9KGU9cyhlLHIpKS53cml0ZSh0LG4pO2khPT1yJiYoZT1lLnNsaWNlKDAsaSkpO3JldHVybiBlfShlLHQsbik6ZnVuY3Rpb24oZSx0KXtpZihjLmlzQnVmZmVyKHQpKXt2YXIgbj0wfGYodC5sZW5ndGgpO3JldHVybiAwPT09KGU9cyhlLG4pKS5sZW5ndGh8fHQuY29weShlLDAsMCxuKSxlfWlmKHQpe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgQXJyYXlCdWZmZXImJnQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fFwibGVuZ3RoXCJpbiB0KXJldHVyblwibnVtYmVyXCIhPT10eXBlb2YgdC5sZW5ndGh8fChyPXQubGVuZ3RoKSE9PXI/cyhlLDApOnAoZSx0KTtpZihcIkJ1ZmZlclwiPT09dC50eXBlJiZvKHQuZGF0YSkpcmV0dXJuIHAoZSx0LmRhdGEpfXZhciByO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgYXJyYXktbGlrZSBvYmplY3QuXCIpfShlLHQpfWZ1bmN0aW9uIGwoZSl7aWYoXCJudW1iZXJcIiE9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1wic2l6ZVwiIGFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKTtpZihlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1wic2l6ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlJyl9ZnVuY3Rpb24gZChlLHQpe2lmKGwodCksZT1zKGUsdDwwPzA6MHxmKHQpKSwhYy5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcih2YXIgbj0wO248dDsrK24pZVtuXT0wO3JldHVybiBlfWZ1bmN0aW9uIHAoZSx0KXt2YXIgbj10Lmxlbmd0aDwwPzA6MHxmKHQubGVuZ3RoKTtlPXMoZSxuKTtmb3IodmFyIHI9MDtyPG47cis9MSllW3JdPTI1NSZ0W3JdO3JldHVybiBlfWZ1bmN0aW9uIGYoZSl7aWYoZT49YSgpKXRocm93IG5ldyBSYW5nZUVycm9yKFwiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweFwiK2EoKS50b1N0cmluZygxNikrXCIgYnl0ZXNcIik7cmV0dXJuIDB8ZX1mdW5jdGlvbiBoKGUsdCl7aWYoYy5pc0J1ZmZlcihlKSlyZXR1cm4gZS5sZW5ndGg7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBBcnJheUJ1ZmZlciYmXCJmdW5jdGlvblwiPT09dHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyYmKEFycmF5QnVmZmVyLmlzVmlldyhlKXx8ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSlyZXR1cm4gZS5ieXRlTGVuZ3RoO1wic3RyaW5nXCIhPT10eXBlb2YgZSYmKGU9XCJcIitlKTt2YXIgbj1lLmxlbmd0aDtpZigwPT09bilyZXR1cm4gMDtmb3IodmFyIHI9ITE7Oylzd2l0Y2godCl7Y2FzZVwiYXNjaWlcIjpjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm4gbjtjYXNlXCJ1dGY4XCI6Y2FzZVwidXRmLThcIjpjYXNlIHZvaWQgMDpyZXR1cm4gSChlKS5sZW5ndGg7Y2FzZVwidWNzMlwiOmNhc2VcInVjcy0yXCI6Y2FzZVwidXRmMTZsZVwiOmNhc2VcInV0Zi0xNmxlXCI6cmV0dXJuIDIqbjtjYXNlXCJoZXhcIjpyZXR1cm4gbj4+PjE7Y2FzZVwiYmFzZTY0XCI6cmV0dXJuIEcoZSkubGVuZ3RoO2RlZmF1bHQ6aWYocilyZXR1cm4gSChlKS5sZW5ndGg7dD0oXCJcIit0KS50b0xvd2VyQ2FzZSgpLHI9ITB9fWZ1bmN0aW9uIGcoZSx0LG4pe3ZhciByPSExO2lmKCh2b2lkIDA9PT10fHx0PDApJiYodD0wKSx0PnRoaXMubGVuZ3RoKXJldHVyblwiXCI7aWYoKHZvaWQgMD09PW58fG4+dGhpcy5sZW5ndGgpJiYobj10aGlzLmxlbmd0aCksbjw9MClyZXR1cm5cIlwiO2lmKChuPj4+PTApPD0odD4+Pj0wKSlyZXR1cm5cIlwiO2ZvcihlfHwoZT1cInV0ZjhcIik7Oylzd2l0Y2goZSl7Y2FzZVwiaGV4XCI6cmV0dXJuIFAodGhpcyx0LG4pO2Nhc2VcInV0ZjhcIjpjYXNlXCJ1dGYtOFwiOnJldHVybiBBKHRoaXMsdCxuKTtjYXNlXCJhc2NpaVwiOnJldHVybiBOKHRoaXMsdCxuKTtjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpyZXR1cm4gayh0aGlzLHQsbik7Y2FzZVwiYmFzZTY0XCI6cmV0dXJuIE8odGhpcyx0LG4pO2Nhc2VcInVjczJcIjpjYXNlXCJ1Y3MtMlwiOmNhc2VcInV0ZjE2bGVcIjpjYXNlXCJ1dGYtMTZsZVwiOnJldHVybiBSKHRoaXMsdCxuKTtkZWZhdWx0OmlmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVua25vd24gZW5jb2Rpbmc6IFwiK2UpO2U9KGUrXCJcIikudG9Mb3dlckNhc2UoKSxyPSEwfX1mdW5jdGlvbiBtKGUsdCxuKXt2YXIgcj1lW3RdO2VbdF09ZVtuXSxlW25dPXJ9ZnVuY3Rpb24gdihlLHQsbixyLGkpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4tMTtpZihcInN0cmluZ1wiPT09dHlwZW9mIG4/KHI9bixuPTApOm4+MjE0NzQ4MzY0Nz9uPTIxNDc0ODM2NDc6bjwtMjE0NzQ4MzY0OCYmKG49LTIxNDc0ODM2NDgpLG49K24saXNOYU4obikmJihuPWk/MDplLmxlbmd0aC0xKSxuPDAmJihuPWUubGVuZ3RoK24pLG4+PWUubGVuZ3RoKXtpZihpKXJldHVybi0xO249ZS5sZW5ndGgtMX1lbHNlIGlmKG48MCl7aWYoIWkpcmV0dXJuLTE7bj0wfWlmKFwic3RyaW5nXCI9PT10eXBlb2YgdCYmKHQ9Yy5mcm9tKHQscikpLGMuaXNCdWZmZXIodCkpcmV0dXJuIDA9PT10Lmxlbmd0aD8tMTpfKGUsdCxuLHIsaSk7aWYoXCJudW1iZXJcIj09PXR5cGVvZiB0KXJldHVybiB0Jj0yNTUsYy5UWVBFRF9BUlJBWV9TVVBQT1JUJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZj9pP1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChlLHQsbik6VWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChlLHQsbik6XyhlLFt0XSxuLHIsaSk7dGhyb3cgbmV3IFR5cGVFcnJvcihcInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlclwiKX1mdW5jdGlvbiBfKGUsdCxuLHIsaSl7dmFyIG8sYT0xLHM9ZS5sZW5ndGgsYz10Lmxlbmd0aDtpZih2b2lkIDAhPT1yJiYoXCJ1Y3MyXCI9PT0ocj1TdHJpbmcocikudG9Mb3dlckNhc2UoKSl8fFwidWNzLTJcIj09PXJ8fFwidXRmMTZsZVwiPT09cnx8XCJ1dGYtMTZsZVwiPT09cikpe2lmKGUubGVuZ3RoPDJ8fHQubGVuZ3RoPDIpcmV0dXJuLTE7YT0yLHMvPTIsYy89MixuLz0yfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gMT09PWE/ZVt0XTplLnJlYWRVSW50MTZCRSh0KmEpfWlmKGkpe3ZhciBsPS0xO2ZvcihvPW47bzxzO28rKylpZih1KGUsbyk9PT11KHQsLTE9PT1sPzA6by1sKSl7aWYoLTE9PT1sJiYobD1vKSxvLWwrMT09PWMpcmV0dXJuIGwqYX1lbHNlLTEhPT1sJiYoby09by1sKSxsPS0xfWVsc2UgZm9yKG4rYz5zJiYobj1zLWMpLG89bjtvPj0wO28tLSl7Zm9yKHZhciBkPSEwLHA9MDtwPGM7cCsrKWlmKHUoZSxvK3ApIT09dSh0LHApKXtkPSExO2JyZWFrfWlmKGQpcmV0dXJuIG99cmV0dXJuLTF9ZnVuY3Rpb24gRShlLHQsbixyKXtuPU51bWJlcihuKXx8MDt2YXIgaT1lLmxlbmd0aC1uO3I/KHI9TnVtYmVyKHIpKT5pJiYocj1pKTpyPWk7dmFyIG89dC5sZW5ndGg7aWYobyUyIT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBoZXggc3RyaW5nXCIpO3I+by8yJiYocj1vLzIpO2Zvcih2YXIgYT0wO2E8cjsrK2Epe3ZhciBzPXBhcnNlSW50KHQuc3Vic3RyKDIqYSwyKSwxNik7aWYoaXNOYU4ocykpcmV0dXJuIGE7ZVtuK2FdPXN9cmV0dXJuIGF9ZnVuY3Rpb24gYihlLHQsbixyKXtyZXR1cm4gVyhIKHQsZS5sZW5ndGgtbiksZSxuLHIpfWZ1bmN0aW9uIFMoZSx0LG4scil7cmV0dXJuIFcoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoOysrbil0LnB1c2goMjU1JmUuY2hhckNvZGVBdChuKSk7cmV0dXJuIHR9KHQpLGUsbixyKX1mdW5jdGlvbiB5KGUsdCxuLHIpe3JldHVybiBTKGUsdCxuLHIpfWZ1bmN0aW9uIFQoZSx0LG4scil7cmV0dXJuIFcoRyh0KSxlLG4scil9ZnVuY3Rpb24gSShlLHQsbixyKXtyZXR1cm4gVyhmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLGksbz1bXSxhPTA7YTxlLmxlbmd0aCYmISgodC09Mik8MCk7KythKXI9KG49ZS5jaGFyQ29kZUF0KGEpKT4+OCxpPW4lMjU2LG8ucHVzaChpKSxvLnB1c2gocik7cmV0dXJuIG99KHQsZS5sZW5ndGgtbiksZSxuLHIpfWZ1bmN0aW9uIE8oZSx0LG4pe3JldHVybiAwPT09dCYmbj09PWUubGVuZ3RoP3IuZnJvbUJ5dGVBcnJheShlKTpyLmZyb21CeXRlQXJyYXkoZS5zbGljZSh0LG4pKX1mdW5jdGlvbiBBKGUsdCxuKXtuPU1hdGgubWluKGUubGVuZ3RoLG4pO2Zvcih2YXIgcj1bXSxpPXQ7aTxuOyl7dmFyIG8sYSxzLGMsdT1lW2ldLGw9bnVsbCxkPXU+MjM5PzQ6dT4yMjM/Mzp1PjE5MT8yOjE7aWYoaStkPD1uKXN3aXRjaChkKXtjYXNlIDE6dTwxMjgmJihsPXUpO2JyZWFrO2Nhc2UgMjoxMjg9PT0oMTkyJihvPWVbaSsxXSkpJiYoYz0oMzEmdSk8PDZ8NjMmbyk+MTI3JiYobD1jKTticmVhaztjYXNlIDM6bz1lW2krMV0sYT1lW2krMl0sMTI4PT09KDE5MiZvKSYmMTI4PT09KDE5MiZhKSYmKGM9KDE1JnUpPDwxMnwoNjMmbyk8PDZ8NjMmYSk+MjA0NyYmKGM8NTUyOTZ8fGM+NTczNDMpJiYobD1jKTticmVhaztjYXNlIDQ6bz1lW2krMV0sYT1lW2krMl0scz1lW2krM10sMTI4PT09KDE5MiZvKSYmMTI4PT09KDE5MiZhKSYmMTI4PT09KDE5MiZzKSYmKGM9KDE1JnUpPDwxOHwoNjMmbyk8PDEyfCg2MyZhKTw8Nnw2MyZzKT42NTUzNSYmYzwxMTE0MTEyJiYobD1jKX1udWxsPT09bD8obD02NTUzMyxkPTEpOmw+NjU1MzUmJihsLT02NTUzNixyLnB1c2gobD4+PjEwJjEwMjN8NTUyOTYpLGw9NTYzMjB8MTAyMyZsKSxyLnB1c2gobCksaSs9ZH1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7aWYodDw9QylyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsZSk7dmFyIG49XCJcIixyPTA7Zm9yKDtyPHQ7KW4rPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGUuc2xpY2UocixyKz1DKSk7cmV0dXJuIG59KHIpfXQubFc9Yyx0LmgyPTUwLGMuVFlQRURfQVJSQVlfU1VQUE9SVD12b2lkIDAhPT1uLmcuVFlQRURfQVJSQVlfU1VQUE9SVD9uLmcuVFlQRURfQVJSQVlfU1VQUE9SVDpmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gZS5fX3Byb3RvX189e19fcHJvdG9fXzpVaW50OEFycmF5LnByb3RvdHlwZSxmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fSw0Mj09PWUuZm9vKCkmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnN1YmFycmF5JiYwPT09ZS5zdWJhcnJheSgxLDEpLmJ5dGVMZW5ndGh9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGEoKSxjLnBvb2xTaXplPTgxOTIsYy5fYXVnbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX189Yy5wcm90b3R5cGUsZX0sYy5mcm9tPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdShudWxsLGUsdCxuKX0sYy5UWVBFRF9BUlJBWV9TVVBQT1JUJiYoYy5wcm90b3R5cGUuX19wcm90b19fPVVpbnQ4QXJyYXkucHJvdG90eXBlLGMuX19wcm90b19fPVVpbnQ4QXJyYXksXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5zcGVjaWVzJiZjW1N5bWJvbC5zcGVjaWVzXT09PWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLFN5bWJvbC5zcGVjaWVzLHt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMH0pKSxjLmFsbG9jPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGwodCksdDw9MD9zKGUsdCk6dm9pZCAwIT09bj9cInN0cmluZ1wiPT09dHlwZW9mIHI/cyhlLHQpLmZpbGwobixyKTpzKGUsdCkuZmlsbChuKTpzKGUsdCl9KG51bGwsZSx0LG4pfSxjLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKGUpe3JldHVybiBkKG51bGwsZSl9LGMuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGUpe3JldHVybiBkKG51bGwsZSl9LGMuaXNCdWZmZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIShudWxsPT1lfHwhZS5faXNCdWZmZXIpfSxjLmNvbXBhcmU9ZnVuY3Rpb24oZSx0KXtpZighYy5pc0J1ZmZlcihlKXx8IWMuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkFyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnNcIik7aWYoZT09PXQpcmV0dXJuIDA7Zm9yKHZhciBuPWUubGVuZ3RoLHI9dC5sZW5ndGgsaT0wLG89TWF0aC5taW4obixyKTtpPG87KytpKWlmKGVbaV0hPT10W2ldKXtuPWVbaV0scj10W2ldO2JyZWFrfXJldHVybiBuPHI/LTE6cjxuPzE6MH0sYy5pc0VuY29kaW5nPWZ1bmN0aW9uKGUpe3N3aXRjaChTdHJpbmcoZSkudG9Mb3dlckNhc2UoKSl7Y2FzZVwiaGV4XCI6Y2FzZVwidXRmOFwiOmNhc2VcInV0Zi04XCI6Y2FzZVwiYXNjaWlcIjpjYXNlXCJsYXRpbjFcIjpjYXNlXCJiaW5hcnlcIjpjYXNlXCJiYXNlNjRcIjpjYXNlXCJ1Y3MyXCI6Y2FzZVwidWNzLTJcIjpjYXNlXCJ1dGYxNmxlXCI6Y2FzZVwidXRmLTE2bGVcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sYy5jb25jYXQ9ZnVuY3Rpb24oZSx0KXtpZighbyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RcIiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIGMuYWxsb2MoMCk7dmFyIG47aWYodm9pZCAwPT09dClmb3IodD0wLG49MDtuPGUubGVuZ3RoOysrbil0Kz1lW25dLmxlbmd0aDt2YXIgcj1jLmFsbG9jVW5zYWZlKHQpLGk9MDtmb3Iobj0wO248ZS5sZW5ndGg7KytuKXt2YXIgYT1lW25dO2lmKCFjLmlzQnVmZmVyKGEpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2EuY29weShyLGkpLGkrPWEubGVuZ3RofXJldHVybiByfSxjLmJ5dGVMZW5ndGg9aCxjLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsYy5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSUyIT09MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzXCIpO2Zvcih2YXIgdD0wO3Q8ZTt0Kz0yKW0odGhpcyx0LHQrMSk7cmV0dXJuIHRoaXN9LGMucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGUlNCE9PTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0c1wiKTtmb3IodmFyIHQ9MDt0PGU7dCs9NCltKHRoaXMsdCx0KzMpLG0odGhpcyx0KzEsdCsyKTtyZXR1cm4gdGhpc30sYy5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU4IT09MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzXCIpO2Zvcih2YXIgdD0wO3Q8ZTt0Kz04KW0odGhpcyx0LHQrNyksbSh0aGlzLHQrMSx0KzYpLG0odGhpcyx0KzIsdCs1KSxtKHRoaXMsdCszLHQrNCk7cmV0dXJuIHRoaXN9LGMucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGU9MHx0aGlzLmxlbmd0aDtyZXR1cm4gMD09PWU/XCJcIjowPT09YXJndW1lbnRzLmxlbmd0aD9BKHRoaXMsMCxlKTpnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sYy5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKGUpe2lmKCFjLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyXCIpO3JldHVybiB0aGlzPT09ZXx8MD09PWMuY29tcGFyZSh0aGlzLGUpfSxjLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7dmFyIGU9XCJcIixuPXQuaDI7cmV0dXJuIHRoaXMubGVuZ3RoPjAmJihlPXRoaXMudG9TdHJpbmcoXCJoZXhcIiwwLG4pLm1hdGNoKC8uezJ9L2cpLmpvaW4oXCIgXCIpLHRoaXMubGVuZ3RoPm4mJihlKz1cIiAuLi4gXCIpKSxcIjxCdWZmZXIgXCIrZStcIj5cIn0sYy5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbihlLHQsbixyLGkpe2lmKCFjLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyXCIpO2lmKHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PW4mJihuPWU/ZS5sZW5ndGg6MCksdm9pZCAwPT09ciYmKHI9MCksdm9pZCAwPT09aSYmKGk9dGhpcy5sZW5ndGgpLHQ8MHx8bj5lLmxlbmd0aHx8cjwwfHxpPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwib3V0IG9mIHJhbmdlIGluZGV4XCIpO2lmKHI+PWkmJnQ+PW4pcmV0dXJuIDA7aWYocj49aSlyZXR1cm4tMTtpZih0Pj1uKXJldHVybiAxO2lmKHRoaXM9PT1lKXJldHVybiAwO2Zvcih2YXIgbz0oaT4+Pj0wKS0ocj4+Pj0wKSxhPShuPj4+PTApLSh0Pj4+PTApLHM9TWF0aC5taW4obyxhKSx1PXRoaXMuc2xpY2UocixpKSxsPWUuc2xpY2UodCxuKSxkPTA7ZDxzOysrZClpZih1W2RdIT09bFtkXSl7bz11W2RdLGE9bFtkXTticmVha31yZXR1cm4gbzxhPy0xOmE8bz8xOjB9LGMucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZihlLHQsbil9LGMucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB2KHRoaXMsZSx0LG4sITApfSxjLnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHYodGhpcyxlLHQsbiwhMSl9LGMucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKHZvaWQgMD09PXQpcj1cInV0ZjhcIixuPXRoaXMubGVuZ3RoLHQ9MDtlbHNlIGlmKHZvaWQgMD09PW4mJlwic3RyaW5nXCI9PT10eXBlb2YgdClyPXQsbj10aGlzLmxlbmd0aCx0PTA7ZWxzZXtpZighaXNGaW5pdGUodCkpdGhyb3cgbmV3IEVycm9yKFwiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWRcIik7dHw9MCxpc0Zpbml0ZShuKT8obnw9MCx2b2lkIDA9PT1yJiYocj1cInV0ZjhcIikpOihyPW4sbj12b2lkIDApfXZhciBpPXRoaXMubGVuZ3RoLXQ7aWYoKHZvaWQgMD09PW58fG4+aSkmJihuPWkpLGUubGVuZ3RoPjAmJihuPDB8fHQ8MCl8fHQ+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kc1wiKTtyfHwocj1cInV0ZjhcIik7Zm9yKHZhciBvPSExOzspc3dpdGNoKHIpe2Nhc2VcImhleFwiOnJldHVybiBFKHRoaXMsZSx0LG4pO2Nhc2VcInV0ZjhcIjpjYXNlXCJ1dGYtOFwiOnJldHVybiBiKHRoaXMsZSx0LG4pO2Nhc2VcImFzY2lpXCI6cmV0dXJuIFModGhpcyxlLHQsbik7Y2FzZVwibGF0aW4xXCI6Y2FzZVwiYmluYXJ5XCI6cmV0dXJuIHkodGhpcyxlLHQsbik7Y2FzZVwiYmFzZTY0XCI6cmV0dXJuIFQodGhpcyxlLHQsbik7Y2FzZVwidWNzMlwiOmNhc2VcInVjcy0yXCI6Y2FzZVwidXRmMTZsZVwiOmNhc2VcInV0Zi0xNmxlXCI6cmV0dXJuIEkodGhpcyxlLHQsbik7ZGVmYXVsdDppZihvKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmtub3duIGVuY29kaW5nOiBcIityKTtyPShcIlwiK3IpLnRvTG93ZXJDYXNlKCksbz0hMH19LGMucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOlwiQnVmZmVyXCIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTt2YXIgQz00MDk2O2Z1bmN0aW9uIE4oZSx0LG4pe3ZhciByPVwiXCI7bj1NYXRoLm1pbihlLmxlbmd0aCxuKTtmb3IodmFyIGk9dDtpPG47KytpKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JmVbaV0pO3JldHVybiByfWZ1bmN0aW9uIGsoZSx0LG4pe3ZhciByPVwiXCI7bj1NYXRoLm1pbihlLmxlbmd0aCxuKTtmb3IodmFyIGk9dDtpPG47KytpKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtpXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gUChlLHQsbil7dmFyIHI9ZS5sZW5ndGg7KCF0fHx0PDApJiYodD0wKSwoIW58fG48MHx8bj5yKSYmKG49cik7Zm9yKHZhciBpPVwiXCIsbz10O288bjsrK28paSs9RihlW29dKTtyZXR1cm4gaX1mdW5jdGlvbiBSKGUsdCxuKXtmb3IodmFyIHI9ZS5zbGljZSh0LG4pLGk9XCJcIixvPTA7bzxyLmxlbmd0aDtvKz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUocltvXSsyNTYqcltvKzFdKTtyZXR1cm4gaX1mdW5jdGlvbiB3KGUsdCxuKXtpZihlJTEhPT0wfHxlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJvZmZzZXQgaXMgbm90IHVpbnRcIik7aWYoZSt0Pm4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoXCIpfWZ1bmN0aW9uIEwoZSx0LG4scixpLG8pe2lmKCFjLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1wiYnVmZmVyXCIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpO2lmKHQ+aXx8dDxvKXRocm93IG5ldyBSYW5nZUVycm9yKCdcInZhbHVlXCIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKG4rcj5lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkluZGV4IG91dCBvZiByYW5nZVwiKX1mdW5jdGlvbiBCKGUsdCxuLHIpe3Q8MCYmKHQ9NjU1MzUrdCsxKTtmb3IodmFyIGk9MCxvPU1hdGgubWluKGUubGVuZ3RoLW4sMik7aTxvOysraSllW24raV09KHQmMjU1PDw4KihyP2k6MS1pKSk+Pj44KihyP2k6MS1pKX1mdW5jdGlvbiBNKGUsdCxuLHIpe3Q8MCYmKHQ9NDI5NDk2NzI5NSt0KzEpO2Zvcih2YXIgaT0wLG89TWF0aC5taW4oZS5sZW5ndGgtbiw0KTtpPG87KytpKWVbbitpXT10Pj4+OCoocj9pOjMtaSkmMjU1fWZ1bmN0aW9uIEQoZSx0LG4scixpLG8pe2lmKG4rcj5lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkluZGV4IG91dCBvZiByYW5nZVwiKTtpZihuPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIil9ZnVuY3Rpb24gaihlLHQsbixyLG8pe3JldHVybiBvfHxEKGUsMCxuLDQpLGkud3JpdGUoZSx0LG4sciwyMyw0KSxuKzR9ZnVuY3Rpb24geChlLHQsbixyLG8pe3JldHVybiBvfHxEKGUsMCxuLDgpLGkud3JpdGUoZSx0LG4sciw1Miw4KSxuKzh9Yy5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXRoaXMubGVuZ3RoO2lmKChlPX5+ZSk8MD8oZSs9cik8MCYmKGU9MCk6ZT5yJiYoZT1yKSwodD12b2lkIDA9PT10P3I6fn50KTwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLHQ8ZSYmKHQ9ZSksYy5UWVBFRF9BUlJBWV9TVVBQT1JUKShuPXRoaXMuc3ViYXJyYXkoZSx0KSkuX19wcm90b19fPWMucHJvdG90eXBlO2Vsc2V7dmFyIGk9dC1lO249bmV3IGMoaSx2b2lkIDApO2Zvcih2YXIgbz0wO288aTsrK28pbltvXT10aGlzW28rZV19cmV0dXJuIG59LGMucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24oZSx0LG4pe2V8PTAsdHw9MCxufHx3KGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciByPXRoaXNbZV0saT0xLG89MDsrK288dCYmKGkqPTI1Nik7KXIrPXRoaXNbZStvXSppO3JldHVybiByfSxjLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKGUsdCxuKXtlfD0wLHR8PTAsbnx8dyhlLHQsdGhpcy5sZW5ndGgpO2Zvcih2YXIgcj10aGlzW2UrLS10XSxpPTE7dD4wJiYoaSo9MjU2KTspcis9dGhpc1tlKy0tdF0qaTtyZXR1cm4gcn0sYy5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fHcoZSwxLHRoaXMubGVuZ3RoKSx0aGlzW2VdfSxjLnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8dyhlLDIsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fSxjLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8dyhlLDIsdGhpcy5sZW5ndGgpLHRoaXNbZV08PDh8dGhpc1tlKzFdfSxjLnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8dyhlLDQsdGhpcy5sZW5ndGgpLCh0aGlzW2VdfHRoaXNbZSsxXTw8OHx0aGlzW2UrMl08PDE2KSsxNjc3NzIxNip0aGlzW2UrM119LGMucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHx3KGUsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1tlXSsodGhpc1tlKzFdPDwxNnx0aGlzW2UrMl08PDh8dGhpc1tlKzNdKX0sYy5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKGUsdCxuKXtlfD0wLHR8PTAsbnx8dyhlLHQsdGhpcy5sZW5ndGgpO2Zvcih2YXIgcj10aGlzW2VdLGk9MSxvPTA7KytvPHQmJihpKj0yNTYpOylyKz10aGlzW2Urb10qaTtyZXR1cm4gcj49KGkqPTEyOCkmJihyLT1NYXRoLnBvdygyLDgqdCkpLHJ9LGMucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbihlLHQsbil7ZXw9MCx0fD0wLG58fHcoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9dCxpPTEsbz10aGlzW2UrLS1yXTtyPjAmJihpKj0yNTYpOylvKz10aGlzW2UrLS1yXSppO3JldHVybiBvPj0oaSo9MTI4KSYmKG8tPU1hdGgucG93KDIsOCp0KSksb30sYy5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8dyhlLDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW2VdPy0xKigyNTUtdGhpc1tlXSsxKTp0aGlzW2VdfSxjLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbihlLHQpe3R8fHcoZSwyLHRoaXMubGVuZ3RoKTt2YXIgbj10aGlzW2VdfHRoaXNbZSsxXTw8ODtyZXR1cm4gMzI3Njgmbj80Mjk0OTAxNzYwfG46bn0sYy5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24oZSx0KXt0fHx3KGUsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1tlKzFdfHRoaXNbZV08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LGMucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fHcoZSw0LHRoaXMubGVuZ3RoKSx0aGlzW2VdfHRoaXNbZSsxXTw8OHx0aGlzW2UrMl08PDE2fHRoaXNbZSszXTw8MjR9LGMucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fHcoZSw0LHRoaXMubGVuZ3RoKSx0aGlzW2VdPDwyNHx0aGlzW2UrMV08PDE2fHRoaXNbZSsyXTw8OHx0aGlzW2UrM119LGMucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fHcoZSw0LHRoaXMubGVuZ3RoKSxpLnJlYWQodGhpcyxlLCEwLDIzLDQpfSxjLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHx3KGUsNCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsZSwhMSwyMyw0KX0sYy5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fHcoZSw4LHRoaXMubGVuZ3RoKSxpLnJlYWQodGhpcyxlLCEwLDUyLDgpfSxjLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8dyhlLDgsdGhpcy5sZW5ndGgpLGkucmVhZCh0aGlzLGUsITEsNTIsOCl9LGMucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKGUsdCxuLHIpeyhlPStlLHR8PTAsbnw9MCxyKXx8TCh0aGlzLGUsdCxuLE1hdGgucG93KDIsOCpuKS0xLDApO3ZhciBpPTEsbz0wO2Zvcih0aGlzW3RdPTI1NSZlOysrbzxuJiYoaSo9MjU2KTspdGhpc1t0K29dPWUvaSYyNTU7cmV0dXJuIHQrbn0sYy5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24oZSx0LG4scil7KGU9K2UsdHw9MCxufD0wLHIpfHxMKHRoaXMsZSx0LG4sTWF0aC5wb3coMiw4Km4pLTEsMCk7dmFyIGk9bi0xLG89MTtmb3IodGhpc1t0K2ldPTI1NSZlOy0taT49MCYmKG8qPTI1Nik7KXRoaXNbdCtpXT1lL28mMjU1O3JldHVybiB0K259LGMucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8TCh0aGlzLGUsdCwxLDI1NSwwKSxjLlRZUEVEX0FSUkFZX1NVUFBPUlR8fChlPU1hdGguZmxvb3IoZSkpLHRoaXNbdF09MjU1JmUsdCsxfSxjLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fEwodGhpcyxlLHQsMiw2NTUzNSwwKSxjLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44KTpCKHRoaXMsZSx0LCEwKSx0KzJ9LGMucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8TCh0aGlzLGUsdCwyLDY1NTM1LDApLGMuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0XT1lPj4+OCx0aGlzW3QrMV09MjU1JmUpOkIodGhpcyxlLHQsITEpLHQrMn0sYy5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxMKHRoaXMsZSx0LDQsNDI5NDk2NzI5NSwwKSxjLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdCszXT1lPj4+MjQsdGhpc1t0KzJdPWU+Pj4xNix0aGlzW3QrMV09ZT4+PjgsdGhpc1t0XT0yNTUmZSk6TSh0aGlzLGUsdCwhMCksdCs0fSxjLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fEwodGhpcyxlLHQsNCw0Mjk0OTY3Mjk1LDApLGMuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0XT1lPj4+MjQsdGhpc1t0KzFdPWU+Pj4xNix0aGlzW3QrMl09ZT4+PjgsdGhpc1t0KzNdPTI1NSZlKTpNKHRoaXMsZSx0LCExKSx0KzR9LGMucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24oZSx0LG4scil7aWYoZT0rZSx0fD0wLCFyKXt2YXIgaT1NYXRoLnBvdygyLDgqbi0xKTtMKHRoaXMsZSx0LG4saS0xLC1pKX12YXIgbz0wLGE9MSxzPTA7Zm9yKHRoaXNbdF09MjU1JmU7KytvPG4mJihhKj0yNTYpOyllPDAmJjA9PT1zJiYwIT09dGhpc1t0K28tMV0mJihzPTEpLHRoaXNbdCtvXT0oZS9hPj4wKS1zJjI1NTtyZXR1cm4gdCtufSxjLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGU9K2UsdHw9MCwhcil7dmFyIGk9TWF0aC5wb3coMiw4Km4tMSk7TCh0aGlzLGUsdCxuLGktMSwtaSl9dmFyIG89bi0xLGE9MSxzPTA7Zm9yKHRoaXNbdCtvXT0yNTUmZTstLW8+PTAmJihhKj0yNTYpOyllPDAmJjA9PT1zJiYwIT09dGhpc1t0K28rMV0mJihzPTEpLHRoaXNbdCtvXT0oZS9hPj4wKS1zJjI1NTtyZXR1cm4gdCtufSxjLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8TCh0aGlzLGUsdCwxLDEyNywtMTI4KSxjLlRZUEVEX0FSUkFZX1NVUFBPUlR8fChlPU1hdGguZmxvb3IoZSkpLGU8MCYmKGU9MjU1K2UrMSksdGhpc1t0XT0yNTUmZSx0KzF9LGMucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxMKHRoaXMsZSx0LDIsMzI3NjcsLTMyNzY4KSxjLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44KTpCKHRoaXMsZSx0LCEwKSx0KzJ9LGMucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxMKHRoaXMsZSx0LDIsMzI3NjcsLTMyNzY4KSxjLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjgsdGhpc1t0KzFdPTI1NSZlKTpCKHRoaXMsZSx0LCExKSx0KzJ9LGMucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxMKHRoaXMsZSx0LDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksYy5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPTI1NSZlLHRoaXNbdCsxXT1lPj4+OCx0aGlzW3QrMl09ZT4+PjE2LHRoaXNbdCszXT1lPj4+MjQpOk0odGhpcyxlLHQsITApLHQrNH0sYy5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fEwodGhpcyxlLHQsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSxlPDAmJihlPTQyOTQ5NjcyOTUrZSsxKSxjLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjI0LHRoaXNbdCsxXT1lPj4+MTYsdGhpc1t0KzJdPWU+Pj44LHRoaXNbdCszXT0yNTUmZSk6TSh0aGlzLGUsdCwhMSksdCs0fSxjLnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqKHRoaXMsZSx0LCEwLG4pfSxjLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqKHRoaXMsZSx0LCExLG4pfSxjLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4geCh0aGlzLGUsdCwhMCxuKX0sYy5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHgodGhpcyxlLHQsITEsbil9LGMucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZSx0LG4scil7aWYobnx8KG49MCkscnx8MD09PXJ8fChyPXRoaXMubGVuZ3RoKSx0Pj1lLmxlbmd0aCYmKHQ9ZS5sZW5ndGgpLHR8fCh0PTApLHI+MCYmcjxuJiYocj1uKSxyPT09bilyZXR1cm4gMDtpZigwPT09ZS5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZih0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzXCIpO2lmKG48MHx8bj49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzXCIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzXCIpO3I+dGhpcy5sZW5ndGgmJihyPXRoaXMubGVuZ3RoKSxlLmxlbmd0aC10PHItbiYmKHI9ZS5sZW5ndGgtdCtuKTt2YXIgaSxvPXItbjtpZih0aGlzPT09ZSYmbjx0JiZ0PHIpZm9yKGk9by0xO2k+PTA7LS1pKWVbaSt0XT10aGlzW2krbl07ZWxzZSBpZihvPDFlM3x8IWMuVFlQRURfQVJSQVlfU1VQUE9SVClmb3IoaT0wO2k8bzsrK2kpZVtpK3RdPXRoaXNbaStuXTtlbHNlIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKGUsdGhpcy5zdWJhcnJheShuLG4rbyksdCk7cmV0dXJuIG99LGMucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24oZSx0LG4scil7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIHQ/KHI9dCx0PTAsbj10aGlzLmxlbmd0aCk6XCJzdHJpbmdcIj09PXR5cGVvZiBuJiYocj1uLG49dGhpcy5sZW5ndGgpLDE9PT1lLmxlbmd0aCl7dmFyIGk9ZS5jaGFyQ29kZUF0KDApO2k8MjU2JiYoZT1pKX1pZih2b2lkIDAhPT1yJiZcInN0cmluZ1wiIT09dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcihcImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmdcIik7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiByJiYhYy5pc0VuY29kaW5nKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmtub3duIGVuY29kaW5nOiBcIityKX1lbHNlXCJudW1iZXJcIj09PXR5cGVvZiBlJiYoZSY9MjU1KTtpZih0PDB8fHRoaXMubGVuZ3RoPHR8fHRoaXMubGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJPdXQgb2YgcmFuZ2UgaW5kZXhcIik7aWYobjw9dClyZXR1cm4gdGhpczt2YXIgbztpZih0Pj4+PTAsbj12b2lkIDA9PT1uP3RoaXMubGVuZ3RoOm4+Pj4wLGV8fChlPTApLFwibnVtYmVyXCI9PT10eXBlb2YgZSlmb3Iobz10O288bjsrK28pdGhpc1tvXT1lO2Vsc2V7dmFyIGE9Yy5pc0J1ZmZlcihlKT9lOkgobmV3IGMoZSxyKS50b1N0cmluZygpKSxzPWEubGVuZ3RoO2ZvcihvPTA7bzxuLXQ7KytvKXRoaXNbbyt0XT1hW28lc119cmV0dXJuIHRoaXN9O3ZhciBVPS9bXitcXC8wLTlBLVphLXotX10vZztmdW5jdGlvbiBGKGUpe3JldHVybiBlPDE2P1wiMFwiK2UudG9TdHJpbmcoMTYpOmUudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEgoZSx0KXt2YXIgbjt0PXR8fDEvMDtmb3IodmFyIHI9ZS5sZW5ndGgsaT1udWxsLG89W10sYT0wO2E8cjsrK2Epe2lmKChuPWUuY2hhckNvZGVBdChhKSk+NTUyOTUmJm48NTczNDQpe2lmKCFpKXtpZihuPjU2MzE5KXsodC09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYoYSsxPT09cil7KHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWk9bjtjb250aW51ZX1pZihuPDU2MzIwKXsodC09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSksaT1uO2NvbnRpbnVlfW49NjU1MzYrKGktNTUyOTY8PDEwfG4tNTYzMjApfWVsc2UgaSYmKHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2lmKGk9bnVsbCxuPDEyOCl7aWYoKHQtPTEpPDApYnJlYWs7by5wdXNoKG4pfWVsc2UgaWYobjwyMDQ4KXtpZigodC09Mik8MClicmVhaztvLnB1c2gobj4+NnwxOTIsNjMmbnwxMjgpfWVsc2UgaWYobjw2NTUzNil7aWYoKHQtPTMpPDApYnJlYWs7by5wdXNoKG4+PjEyfDIyNCxuPj42JjYzfDEyOCw2MyZufDEyOCl9ZWxzZXtpZighKG48MTExNDExMikpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBjb2RlIHBvaW50XCIpO2lmKCh0LT00KTwwKWJyZWFrO28ucHVzaChuPj4xOHwyNDAsbj4+MTImNjN8MTI4LG4+PjYmNjN8MTI4LDYzJm58MTI4KX19cmV0dXJuIG99ZnVuY3Rpb24gRyhlKXtyZXR1cm4gci50b0J5dGVBcnJheShmdW5jdGlvbihlKXtpZigoZT1mdW5jdGlvbihlKXtyZXR1cm4gZS50cmltP2UudHJpbSgpOmUucmVwbGFjZSgvXlxccyt8XFxzKyQvZyxcIlwiKX0oZSkucmVwbGFjZShVLFwiXCIpKS5sZW5ndGg8MilyZXR1cm5cIlwiO2Zvcig7ZS5sZW5ndGglNCE9PTA7KWUrPVwiPVwiO3JldHVybiBlfShlKSl9ZnVuY3Rpb24gVyhlLHQsbixyKXtmb3IodmFyIGk9MDtpPHImJiEoaStuPj10Lmxlbmd0aHx8aT49ZS5sZW5ndGgpOysraSl0W2krbl09ZVtpXTtyZXR1cm4gaX19LDIxOTI0OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDQwMjEwKSxpPW4oNTU1NTkpLG89aShyKFwiU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mXCIpKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yKGUsISF0KTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgbiYmbyhlLFwiLnByb3RvdHlwZS5cIik+LTE/aShuKTpufX0sNTU1NTk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNTg2MTIpLGk9big0MDIxMCksbz1pKFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSVcIiksYT1pKFwiJUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsJVwiKSxzPWkoXCIlUmVmbGVjdC5hcHBseSVcIiwhMCl8fHIuY2FsbChhLG8pLGM9aShcIiVPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJVwiLCEwKSx1PWkoXCIlT2JqZWN0LmRlZmluZVByb3BlcnR5JVwiLCEwKSxsPWkoXCIlTWF0aC5tYXglXCIpO2lmKHUpdHJ5e3Uoe30sXCJhXCIse3ZhbHVlOjF9KX1jYXRjaChwKXt1PW51bGx9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXMocixhLGFyZ3VtZW50cyk7aWYoYyYmdSl7dmFyIG49Yyh0LFwibGVuZ3RoXCIpO24uY29uZmlndXJhYmxlJiZ1KHQsXCJsZW5ndGhcIix7dmFsdWU6MStsKDAsZS5sZW5ndGgtKGFyZ3VtZW50cy5sZW5ndGgtMSkpfSl9cmV0dXJuIHR9O3ZhciBkPWZ1bmN0aW9uKCl7cmV0dXJuIHMocixvLGFyZ3VtZW50cyl9O3U/dShlLmV4cG9ydHMsXCJhcHBseVwiLHt2YWx1ZTpkfSk6ZS5leHBvcnRzLmFwcGx5PWR9LDg2MDEwOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUpe3ZhciB0LG4saT1cIlwiO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlfHxcIm51bWJlclwiPT10eXBlb2YgZSlpKz1lO2Vsc2UgaWYoXCJvYmplY3RcIj09dHlwZW9mIGUpaWYoQXJyYXkuaXNBcnJheShlKSlmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0mJihuPXIoZVt0XSkpJiYoaSYmKGkrPVwiIFwiKSxpKz1uKTtlbHNlIGZvcih0IGluIGUpZVt0XSYmKGkmJihpKz1cIiBcIiksaSs9dCk7cmV0dXJuIGl9ZnVuY3Rpb24gaSgpe2Zvcih2YXIgZSx0LG49MCxpPVwiXCI7bjxhcmd1bWVudHMubGVuZ3RoOykoZT1hcmd1bWVudHNbbisrXSkmJih0PXIoZSkpJiYoaSYmKGkrPVwiIFwiKSxpKz10KTtyZXR1cm4gaX1uLnIodCksbi5kKHQse2Nsc3g6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KSx0LmRlZmF1bHQ9aX0sMTM5MDM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24ucih0KTt2YXIgcj1uKDUzMzQ2KSxpPW4ubihyKSxvPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9O2Z1bmN0aW9uIGEoZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PTAsbj1BcnJheShlLmxlbmd0aCk7dDxlLmxlbmd0aDt0Kyspblt0XT1lW3RdO3JldHVybiBufXJldHVybiBBcnJheS5mcm9tKGUpfXZhciBzPXt9LGM9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmVudHJ5SWQscj10LmxpbmtUeXBlLGk9dC5zcGFjZUlkO3JldHVybiBpP2UuZ2V0KGkrXCIhXCIrcitcIiFcIituKTplLmdldChyK1wiIVwiK24pfSx1PWZ1bmN0aW9uIGUodCxuLHIsaSl7aWYobih0KSlyZXR1cm4gcih0KTtpZih0JiZcIm9iamVjdFwiPT09KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgdD9cInVuZGVmaW5lZFwiOm8odCkpKXtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYodFthXT1lKHRbYV0sbixyLGkpKTtpJiYodD1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1zfSkpO2Zvcih2YXIgdCBpbiBlKWVbdF09PT1zJiZkZWxldGUgZVt0XTtyZXR1cm4gZX0odCkpfXJldHVybiB0fSxsPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1mdW5jdGlvbihlLHQpe3ZhciBuPXQuc3lzLHI9bi50eXBlLGk9bi5saW5rVHlwZTtpZihcIlJlc291cmNlTGlua1wiPT09cil7dmFyIG89dC5zeXMudXJuLGE9Ly4qOnNwYWNlc1xcLyg/PHNwYWNlSWQ+W0EtWmEtejAtOV0qKVxcL2VudHJpZXNcXC8oPzxlbnRyeUlkPltBLVphLXowLTldKikvO2lmKCFhLnRlc3QobykpcmV0dXJuIHM7dmFyIHU9by5tYXRjaChhKS5ncm91cHMsbD11LnNwYWNlSWQsZD11LmVudHJ5SWQscD1pLnNwbGl0KFwiOlwiKVsxXTtyZXR1cm4gYyhlLHtsaW5rVHlwZTpwLGVudHJ5SWQ6ZCxzcGFjZUlkOmx9KXx8c312YXIgZj10LnN5cy5pZDtyZXR1cm4gYyhlLHtsaW5rVHlwZTppLGVudHJ5SWQ6Zn0pfHxzfShlLHQpO3JldHVybiByPT09cz9uP3I6dDpyfTt0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtpZih0PXR8fHt9LCFlLml0ZW1zKXJldHVybltdO3ZhciBuPWkoKShlKSxyPU9iamVjdC5rZXlzKG4uaW5jbHVkZXN8fHt9KS5yZWR1Y2UoKGZ1bmN0aW9uKHQsbil7cmV0dXJuW10uY29uY2F0KGEodCksYShlLmluY2x1ZGVzW25dKSl9KSxbXSksbz1bXS5jb25jYXQoYShuLml0ZW1zKSxhKHIpKSxzPW5ldyBNYXAoby5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj0obj10LnN5cyxuLnNwYWNlP1tuLnR5cGUrXCIhXCIrbi5pZCxuLnNwYWNlLnN5cy5pZCtcIiFcIituLnR5cGUrXCIhXCIrbi5pZF06W24udHlwZStcIiFcIituLmlkXSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm5bZSx0XX0pKTtyZXR1cm4gZS5wdXNoLmFwcGx5KGUsYShyKSksZX0pLFtdKSk7cmV0dXJuIG8uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9PYmplY3Qua2V5cyhlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5pbmRleE9mKGUpfSkpLnJlZHVjZSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdFtuXT1lW25dLHR9KSx7fSk6ZX0oZSx0Lml0ZW1FbnRyeVBvaW50cyk7T2JqZWN0LmFzc2lnbihlLHUobiwoZnVuY3Rpb24oZSl7cmV0dXJuKHQ9ZSkmJnQuc3lzJiZcIkxpbmtcIj09PXQuc3lzLnR5cGV8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLnN5cyYmXCJSZXNvdXJjZUxpbmtcIj09PWUuc3lzLnR5cGV9KGUpO3ZhciB0fSksKGZ1bmN0aW9uKGUpe3JldHVybiBsKHMsZSx0LnJlbW92ZVVucmVzb2x2ZWQpfSksdC5yZW1vdmVVbnJlc29sdmVkKSl9KSksbi5pdGVtc319LDQ2MTM4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCksbi5kKHQse2NyZWF0ZUh0dHBDbGllbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gTH0sY3JlYXRlUmVxdWVzdENvbmZpZzpmdW5jdGlvbigpe3JldHVybiBCfSxlbmZvcmNlT2JqUGF0aDpmdW5jdGlvbigpe3JldHVybiBNfSxlcnJvckhhbmRsZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSH0sZnJlZXplU3lzOmZ1bmN0aW9uKCl7cmV0dXJuIGp9LGdldFVzZXJBZ2VudEhlYWRlcjpmdW5jdGlvbigpe3JldHVybiBVfSx0b1BsYWluT2JqZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fSk7dmFyIHI9big1MzM0NiksaT1uLm4ociksbz1uKDgwMTI5KSxhPW4ubihvKSxzPW4oMjU3NTEpLGM9bi5uKHMpLHU9bigyMTUwMSksbD1uLm4odSksZD1uKDgxNDYpLHA9bi5uKGQpLGY9bigzNDE1NSk7ZnVuY3Rpb24gaChlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9oKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7XyhlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6aChPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBtKGUpe3JldHVybiBtPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LG0oZSl9ZnVuY3Rpb24gdigpe3Y9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IG4oZSx2b2lkIDAsdCl9O3ZhciBlPVJlZ0V4cC5wcm90b3R5cGUsdD1uZXcgV2Vha01hcDtmdW5jdGlvbiBuKGUscixpKXt2YXIgbz1uZXcgUmVnRXhwKGUscik7cmV0dXJuIHQuc2V0KG8saXx8dC5nZXQoZSkpLGIobyxuLnByb3RvdHlwZSl9ZnVuY3Rpb24gcihlLG4pe3ZhciByPXQuZ2V0KG4pO3JldHVybiBPYmplY3Qua2V5cyhyKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsbil7dmFyIGk9cltuXTtpZihcIm51bWJlclwiPT10eXBlb2YgaSl0W25dPWVbaV07ZWxzZXtmb3IodmFyIG89MDt2b2lkIDA9PT1lW2lbb11dJiZvKzE8aS5sZW5ndGg7KW8rKzt0W25dPWVbaVtvXV19cmV0dXJuIHR9KSxPYmplY3QuY3JlYXRlKG51bGwpKX1yZXR1cm4gRShuLFJlZ0V4cCksbi5wcm90b3R5cGUuZXhlYz1mdW5jdGlvbih0KXt2YXIgbj1lLmV4ZWMuY2FsbCh0aGlzLHQpO3JldHVybiBuJiYobi5ncm91cHM9cihuLHRoaXMpKSxufSxuLnByb3RvdHlwZVtTeW1ib2wucmVwbGFjZV09ZnVuY3Rpb24obixpKXtpZihcInN0cmluZ1wiPT10eXBlb2YgaSl7dmFyIG89dC5nZXQodGhpcyk7cmV0dXJuIGVbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxuLGkucmVwbGFjZSgvXFwkPChbXj5dKyk+L2csKGZ1bmN0aW9uKGUsdCl7cmV0dXJuXCIkXCIrb1t0XX0pKSl9aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgaSl7dmFyIGE9dGhpcztyZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLG4sKGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzO3JldHVyblwib2JqZWN0XCIhPXR5cGVvZiBlW2UubGVuZ3RoLTFdJiYoZT1bXS5zbGljZS5jYWxsKGUpKS5wdXNoKHIoZSxhKSksaS5hcHBseSh0aGlzLGUpfSkpfXJldHVybiBlW1N5bWJvbC5yZXBsYWNlXS5jYWxsKHRoaXMsbixpKX0sdi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gXyhlLHQsbil7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gRShlLHQpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksdCYmYihlLHQpfWZ1bmN0aW9uIGIoZSx0KXtyZXR1cm4gYj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9LGIoZSx0KX1mdW5jdGlvbiBTKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT09dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsPT1uKXJldHVybjt2YXIgcixpLG89W10sYT0hMCxzPSExO3RyeXtmb3Iobj1uLmNhbGwoZSk7IShhPShyPW4ubmV4dCgpKS5kb25lKSYmKG8ucHVzaChyLnZhbHVlKSwhdHx8by5sZW5ndGghPT10KTthPSEwKTt9Y2F0Y2goYyl7cz0hMCxpPWN9ZmluYWxseXt0cnl7YXx8bnVsbD09bi5yZXR1cm58fG4ucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IGl9fXJldHVybiBvfShlLHQpfHx5KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiB5KGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlKXJldHVybiBUKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bj9BcnJheS5mcm9tKGUpOlwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9UKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiBUKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gSSgpe3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgZiYmITF9ZnVuY3Rpb24gTygpe3JldHVybiBmLnZlcnNpb25zJiZmLnZlcnNpb25zLm5vZGU/XCJ2XCIuY29uY2F0KGYudmVyc2lvbnMubm9kZSk6Zi52ZXJzaW9ufWZ1bmN0aW9uIEEoKXt9dmFyIEM9digvKFxcZCspKCUpLyx7dmFsdWU6MX0pO2Z1bmN0aW9uIE4oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjcsbj10O2lmKEMudGVzdChlKSl7dmFyIHIsaT1udWxsPT09KHI9ZS5tYXRjaChDKSl8fHZvaWQgMD09PXI/dm9pZCAwOnIuZ3JvdXBzO2lmKGkmJmkudmFsdWUpe3ZhciBvPXBhcnNlSW50KGkudmFsdWUpLzEwMDtuPU1hdGgucm91bmQodCpvKX19cmV0dXJuIE1hdGgubWluKDMwLE1hdGgubWF4KDEsbikpfWZ1bmN0aW9uIGsoZSx0KXtyZXR1cm4gdChcImluZm9cIixcIlRocm90dGxlIHJlcXVlc3QgdG8gXCIuY29uY2F0KGUsXCIvc1wiKSksbCgpKHtsaW1pdDplLGludGVydmFsOjFlMyxzdHJpY3Q6ITF9KX12YXIgUD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCxlKX0pKX0sUj1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coTWF0aC5TUVJUMixlKX07dmFyIHc9L14oPyFcXHcrOlxcL1xcLykoW15cXHM6XStcXC4/W15cXHM6XSspKD86OihcXGQrKSk/KD8hOikkLztmdW5jdGlvbiBMKGUsdCl7dmFyIG49ZyhnKHt9LHtpbnNlY3VyZTohMSxyZXRyeU9uRXJyb3I6ITAsbG9nSGFuZGxlcjpmdW5jdGlvbihlLHQpe2lmKFwiZXJyb3JcIj09PWUmJnQpe3ZhciBuPVt0Lm5hbWUsdC5tZXNzYWdlXS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpLmpvaW4oXCIgLSBcIik7cmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJbZXJyb3JdIFwiLmNvbmNhdChuKSksdm9pZCBjb25zb2xlLmVycm9yKHQpfWNvbnNvbGUubG9nKFwiW1wiLmNvbmNhdChlLFwiXSBcIikuY29uY2F0KHQpKX0saGVhZGVyczp7fSxodHRwQWdlbnQ6ITEsaHR0cHNBZ2VudDohMSx0aW1lb3V0OjNlNCx0aHJvdHRsZTowLHByb3h5OiExLGJhc2VQYXRoOlwiXCIsYWRhcHRlcjp2b2lkIDAsbWF4Q29udGVudExlbmd0aDoxMDczNzQxODI0LG1heEJvZHlMZW5ndGg6MTA3Mzc0MTgyNH0pLHQpO2lmKCFuLmFjY2Vzc1Rva2VuKXt2YXIgcj1uZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgcGFyYW1ldGVyIGFjY2Vzc1Rva2VuXCIpO3Rocm93IG4ubG9nSGFuZGxlcihcImVycm9yXCIscikscn12YXIgbz1uLmluc2VjdXJlP1wiaHR0cFwiOlwiaHR0cHNcIixzPW4uc3BhY2U/XCJcIi5jb25jYXQobi5zcGFjZSxcIi9cIik6XCJcIix1PW4uZGVmYXVsdEhvc3RuYW1lLGw9bi5pbnNlY3VyZT84MDo0NDM7aWYobi5ob3N0JiZ3LnRlc3Qobi5ob3N0KSl7dmFyIGQ9bi5ob3N0LnNwbGl0KFwiOlwiKTtpZigyPT09ZC5sZW5ndGgpe3ZhciBwPVMoZCwyKTt1PXBbMF0sbD1wWzFdfWVsc2UgdT1kWzBdfW4uYmFzZVBhdGgmJihuLmJhc2VQYXRoPVwiL1wiLmNvbmNhdChuLmJhc2VQYXRoLnNwbGl0KFwiL1wiKS5maWx0ZXIoQm9vbGVhbikuam9pbihcIi9cIikpKTt2YXIgZj10LmJhc2VVUkx8fFwiXCIuY29uY2F0KG8sXCI6Ly9cIikuY29uY2F0KHUsXCI6XCIpLmNvbmNhdChsKS5jb25jYXQobi5iYXNlUGF0aCxcIi9zcGFjZXMvXCIpLmNvbmNhdChzKTtuLmhlYWRlcnMuQXV0aG9yaXphdGlvbnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIG4uYWNjZXNzVG9rZW58fChuLmhlYWRlcnMuQXV0aG9yaXphdGlvbj1cIkJlYXJlciBcIituLmFjY2Vzc1Rva2VuKSxJKCkmJihuLmhlYWRlcnNbXCJ1c2VyLWFnZW50XCJdPVwibm9kZS5qcy9cIitPKCksbi5oZWFkZXJzW1wiQWNjZXB0LUVuY29kaW5nXCJdPVwiZ3ppcFwiKTt2YXIgaD17YmFzZVVSTDpmLGhlYWRlcnM6bi5oZWFkZXJzLGh0dHBBZ2VudDpuLmh0dHBBZ2VudCxodHRwc0FnZW50Om4uaHR0cHNBZ2VudCxwYXJhbXNTZXJpYWxpemVyOmEoKS5zdHJpbmdpZnkscHJveHk6bi5wcm94eSx0aW1lb3V0Om4udGltZW91dCxhZGFwdGVyOm4uYWRhcHRlcixtYXhDb250ZW50TGVuZ3RoOm4ubWF4Q29udGVudExlbmd0aCxtYXhCb2R5TGVuZ3RoOm4ubWF4Qm9keUxlbmd0aCxsb2dIYW5kbGVyOm4ubG9nSGFuZGxlcixyZXNwb25zZUxvZ2dlcjpuLnJlc3BvbnNlTG9nZ2VyLHJlcXVlc3RMb2dnZXI6bi5yZXF1ZXN0TG9nZ2VyLHJldHJ5T25FcnJvcjpuLnJldHJ5T25FcnJvcn0sbT1lLmNyZWF0ZShoKTtyZXR1cm4gbS5odHRwQ2xpZW50UGFyYW1zPXQsbS5jbG9uZVdpdGhOZXdQYXJhbXM9ZnVuY3Rpb24obil7cmV0dXJuIEwoZSxnKGcoe30saSgpKHQpKSxuKSl9LG4ub25CZWZvcmVSZXF1ZXN0JiZtLmludGVyY2VwdG9ycy5yZXF1ZXN0LnVzZShuLm9uQmVmb3JlUmVxdWVzdCksXCJmdW5jdGlvblwiPT09dHlwZW9mIG4uYWNjZXNzVG9rZW4mJmZ1bmN0aW9uKGUsdCl7ZS5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoKGZ1bmN0aW9uKGUpe3JldHVybiB0KCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIGUuaGVhZGVycz1nKGcoe30sZS5oZWFkZXJzKSx7fSx7QXV0aG9yaXphdGlvbjpcIkJlYXJlciBcIi5jb25jYXQodCl9KSxlfSkpfSkpfShtLG4uYWNjZXNzVG9rZW4pLG4udGhyb3R0bGUmJmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpcImF1dG9cIixuPWUuZGVmYXVsdHMubG9nSGFuZGxlcixyPXZvaWQgMD09PW4/QTpuLGk9YygpKHQpP04odCk6TihcImF1dG9cIix0KSxvPWsoaSxyKSxhPSExLHM9ZS5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoKGZ1bmN0aW9uKGUpe3JldHVybiBvKChmdW5jdGlvbigpe3JldHVybiBlfSkpKCl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfSkpLHU9ZS5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKChmdW5jdGlvbihuKXtpZighYSYmYygpKHQpJiYoXCJhdXRvXCI9PT10fHxDLnRlc3QodCkpJiZuLmhlYWRlcnMmJm4uaGVhZGVyc1tcIngtY29udGVudGZ1bC1yYXRlbGltaXQtc2Vjb25kLWxpbWl0XCJdKXt2YXIgdT1wYXJzZUludChuLmhlYWRlcnNbXCJ4LWNvbnRlbnRmdWwtcmF0ZWxpbWl0LXNlY29uZC1saW1pdFwiXSksbD1OKHQsdSk7bCE9PWkmJihzJiZlLmludGVyY2VwdG9ycy5yZXF1ZXN0LmVqZWN0KHMpLGk9bCxvPWsobCxyKSxzPWUuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKChmdW5jdGlvbihlKXtyZXR1cm4gbygoZnVuY3Rpb24oKXtyZXR1cm4gZX0pKSgpfSksKGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLnJlamVjdChlKX0pKSksYT0hMH1yZXR1cm4gbn0pLChmdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9KSl9KG0sbi50aHJvdHRsZSksZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjUsbj1lLmRlZmF1bHRzLHI9bi5yZXNwb25zZUxvZ2dlcixpPXZvaWQgMD09PXI/QTpyLG89bi5yZXF1ZXN0TG9nZ2VyLGE9dm9pZCAwPT09bz9BOm87ZS5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoKGZ1bmN0aW9uKGUpe3JldHVybiBhKGUpLGV9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSksUHJvbWlzZS5yZWplY3QoZSl9KSksZS5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKChmdW5jdGlvbihlKXtyZXR1cm4gaShlKSxlfSksKGZ1bmN0aW9uKG4pe3ZhciByPW4ucmVzcG9uc2Usbz1uLmNvbmZpZztpZihpKG4pLCFvfHwhZS5kZWZhdWx0cy5yZXRyeU9uRXJyb3IpcmV0dXJuIFByb21pc2UucmVqZWN0KG4pO3ZhciBhPW8uYXR0ZW1wdHN8fDE7aWYoYT50KXJldHVybiBuLmF0dGVtcHRzPW8uYXR0ZW1wdHMsUHJvbWlzZS5yZWplY3Qobik7dmFyIHM9bnVsbCxjPVIoYSk7cmV0dXJuIHI/ci5zdGF0dXM+PTUwMCYmci5zdGF0dXM8NjAwP3M9XCJTZXJ2ZXIgXCIuY29uY2F0KHIuc3RhdHVzKTo0Mjk9PT1yLnN0YXR1cyYmKHM9XCJSYXRlIGxpbWl0XCIsci5oZWFkZXJzJiZuLnJlc3BvbnNlLmhlYWRlcnNbXCJ4LWNvbnRlbnRmdWwtcmF0ZWxpbWl0LXJlc2V0XCJdJiYoYz1yLmhlYWRlcnNbXCJ4LWNvbnRlbnRmdWwtcmF0ZWxpbWl0LXJlc2V0XCJdKSk6cz1cIkNvbm5lY3Rpb25cIixzPyhjPU1hdGguZmxvb3IoMWUzKmMrMjAwKk1hdGgucmFuZG9tKCkrNTAwKSxlLmRlZmF1bHRzLmxvZ0hhbmRsZXIoXCJ3YXJuaW5nXCIsXCJcIi5jb25jYXQocyxcIiBlcnJvciBvY2N1cnJlZC4gV2FpdGluZyBmb3IgXCIpLmNvbmNhdChjLFwiIG1zIGJlZm9yZSByZXRyeWluZy4uLlwiKSksby5hdHRlbXB0cz1hKzEsZGVsZXRlIG8uaHR0cEFnZW50LGRlbGV0ZSBvLmh0dHBzQWdlbnQsUChjKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBlKG8pfSkpKTpQcm9taXNlLnJlamVjdChuKX0pKX0obSxuLnJldHJ5TGltaXQpLG4ub25FcnJvciYmbS5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pLG4ub25FcnJvciksbX1mdW5jdGlvbiBCKGUpe3ZhciB0PWUucXVlcnksbj17fTtyZXR1cm4gZGVsZXRlIHQucmVzb2x2ZUxpbmtzLG4ucGFyYW1zPWkoKSh0KSxufWZ1bmN0aW9uIE0oZSx0KXtpZighKHQgaW4gZSkpe3ZhciBuPW5ldyBFcnJvcjt0aHJvdyBuLm5hbWU9XCJQcm9wZXJ0eU1pc3NpbmdcIixuLm1lc3NhZ2U9XCJSZXF1aXJlZCBwcm9wZXJ0eSBcIi5jb25jYXQodCxcIiBtaXNzaW5nIGZyb206XFxuXFxuXCIpLmNvbmNhdChKU09OLnN0cmluZ2lmeShlKSxcIlxcblxcblwiKSxufXJldHVybiEwfWZ1bmN0aW9uIEQoZSl7dmFyIHQsbj1mdW5jdGlvbihlLHQpe3ZhciBuPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKCFuKXtpZihBcnJheS5pc0FycmF5KGUpfHwobj15KGUpKXx8dCYmZSYmXCJudW1iZXJcIj09PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxpPWZ1bmN0aW9uKCl7fTtyZXR1cm57czppLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjppfX10aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9dmFyIG8sYT0hMCxzPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gYT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtzPSEwLG89ZX0sZjpmdW5jdGlvbigpe3RyeXthfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgb319fX0oT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkpO3RyeXtmb3Iobi5zKCk7ISh0PW4ubigpKS5kb25lOyl7dmFyIHI9ZVt0LnZhbHVlXTtyJiZcIm9iamVjdFwiPT09bShyKSYmRChyKX19Y2F0Y2goaSl7bi5lKGkpfWZpbmFsbHl7bi5mKCl9cmV0dXJuIE9iamVjdC5mcmVlemUoZSl9ZnVuY3Rpb24gaihlKXtyZXR1cm4gRChlLnN5c3x8e30pLGV9ZnVuY3Rpb24geCgpe3ZhciBlPXdpbmRvdztpZighZSlyZXR1cm4gbnVsbDt2YXIgdD1lLm5hdmlnYXRvci51c2VyQWdlbnQsbj1lLm5hdmlnYXRvci5wbGF0Zm9ybTtyZXR1cm4tMSE9PVtcIk1hY2ludG9zaFwiLFwiTWFjSW50ZWxcIixcIk1hY1BQQ1wiLFwiTWFjNjhLXCJdLmluZGV4T2Yobik/XCJtYWNPU1wiOi0xIT09W1wiaVBob25lXCIsXCJpUGFkXCIsXCJpUG9kXCJdLmluZGV4T2Yobik/XCJpT1NcIjotMSE9PVtcIldpbjMyXCIsXCJXaW42NFwiLFwiV2luZG93c1wiLFwiV2luQ0VcIl0uaW5kZXhPZihuKT9cIldpbmRvd3NcIjovQW5kcm9pZC8udGVzdCh0KT9cIkFuZHJvaWRcIjovTGludXgvLnRlc3Qobik/XCJMaW51eFwiOm51bGx9ZnVuY3Rpb24gVShlLHQsbixyKXt2YXIgaT1bXTt0JiZpLnB1c2goXCJhcHAgXCIuY29uY2F0KHQpKSxuJiZpLnB1c2goXCJpbnRlZ3JhdGlvbiBcIi5jb25jYXQobikpLHImJmkucHVzaChcImZlYXR1cmUgXCIrciksaS5wdXNoKFwic2RrIFwiLmNvbmNhdChlKSk7dmFyIG89bnVsbDt0cnl7XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3cmJlwibmF2aWdhdG9yXCJpbiB3aW5kb3cmJlwicHJvZHVjdFwiaW4gd2luZG93Lm5hdmlnYXRvciYmXCJSZWFjdE5hdGl2ZVwiPT09d2luZG93Lm5hdmlnYXRvci5wcm9kdWN0PyhvPXgoKSxpLnB1c2goXCJwbGF0Zm9ybSBSZWFjdE5hdGl2ZVwiKSk6SSgpPyhvPWZ1bmN0aW9uKCl7dmFyIGU9Zi5wbGF0Zm9ybXx8XCJsaW51eFwiLHQ9Zi52ZXJzaW9ufHxcIjAuMC4wXCIsbj17YW5kcm9pZDpcIkFuZHJvaWRcIixhaXg6XCJMaW51eFwiLGRhcndpbjpcIm1hY09TXCIsZnJlZWJzZDpcIkxpbnV4XCIsbGludXg6XCJMaW51eFwiLG9wZW5ic2Q6XCJMaW51eFwiLHN1bm9zOlwiTGludXhcIix3aW4zMjpcIldpbmRvd3NcIn07cmV0dXJuIGUgaW4gbj9cIlwiLmNvbmNhdChuW2VdfHxcIkxpbnV4XCIsXCIvXCIpLmNvbmNhdCh0KTpudWxsfSgpLGkucHVzaChcInBsYXRmb3JtIG5vZGUuanMvXCIuY29uY2F0KE8oKSkpKToobz14KCksaS5wdXNoKFwicGxhdGZvcm0gYnJvd3NlclwiKSl9Y2F0Y2goYSl7bz1udWxsfXJldHVybiBvJiZpLnB1c2goXCJvcyBcIi5jb25jYXQobykpLFwiXCIuY29uY2F0KGkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm5cIlwiIT09ZX0pKS5qb2luKFwiOyBcIiksXCI7XCIpfWZ1bmN0aW9uIEYoZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwidG9QbGFpbk9iamVjdFwiLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBpKCkodGhpcyl9fSl9ZnVuY3Rpb24gSChlKXt2YXIgdCxuPWUuY29uZmlnLHI9ZS5yZXNwb25zZTtpZihuJiZuLmhlYWRlcnMmJm4uaGVhZGVycy5BdXRob3JpemF0aW9uKXt2YXIgaT1cIi4uLlwiLmNvbmNhdChuLmhlYWRlcnMuQXV0aG9yaXphdGlvbi50b1N0cmluZygpLnN1YnN0cigtNSkpO24uaGVhZGVycy5BdXRob3JpemF0aW9uPVwiQmVhcmVyIFwiLmNvbmNhdChpKX1pZighcCgpKHIpfHwhcCgpKG4pKXRocm93IGU7dmFyIG89bnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuZGF0YSxhPXtzdGF0dXM6bnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RhdHVzLHN0YXR1c1RleHQ6bnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RhdHVzVGV4dCxtZXNzYWdlOlwiXCIsZGV0YWlsczp7fX07cCgpKG4pJiYoYS5yZXF1ZXN0PXt1cmw6bi51cmwsaGVhZGVyczpuLmhlYWRlcnMsbWV0aG9kOm4ubWV0aG9kLHBheWxvYWREYXRhOm4uZGF0YX0pLG8mJnAoKShvKSYmKFwicmVxdWVzdElkXCJpbiBvJiYoYS5yZXF1ZXN0SWQ9by5yZXF1ZXN0SWR8fFwiVU5LTk9XTlwiKSxcIm1lc3NhZ2VcImluIG8mJihhLm1lc3NhZ2U9by5tZXNzYWdlfHxcIlwiKSxcImRldGFpbHNcImluIG8mJihhLmRldGFpbHM9by5kZXRhaWxzfHx7fSksXCJzeXNcImluIG8mJlwiaWRcImluIG8uc3lzJiYodD1vLnN5cy5pZCkpO3ZhciBzPW5ldyBFcnJvcjtzLm5hbWU9dCYmXCJVbmtub3duXCIhPT10P3Q6XCJcIi5jb25jYXQobnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RhdHVzLFwiIFwiKS5jb25jYXQobnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RhdHVzVGV4dCk7dHJ5e3MubWVzc2FnZT1KU09OLnN0cmluZ2lmeShhLG51bGwsXCIgIFwiKX1jYXRjaCh1KXt2YXIgYztzLm1lc3NhZ2U9bnVsbCE9PShjPW51bGw9PT1hfHx2b2lkIDA9PT1hP3ZvaWQgMDphLm1lc3NhZ2UpJiZ2b2lkIDAhPT1jP2M6XCJcIn10aHJvdyBzfX0sMTAxNTk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKGUpe2lmKCFlLmFjY2Vzc1Rva2VuKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBwYXJhbWV0ZXIgYWNjZXNzVG9rZW5cIik7aWYoIWUuc3BhY2UpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIHBhcmFtZXRlciBzcGFjZVwiKTtjb25zdCB0PXUodSh7fSx7cmVzb2x2ZUxpbmtzOiEwLHJlbW92ZVVucmVzb2x2ZWQ6ITEsZGVmYXVsdEhvc3RuYW1lOlwiY2RuLmNvbnRlbnRmdWwuY29tXCIsZW52aXJvbm1lbnQ6XCJtYXN0ZXJcIn0pLGUpLG49KDAsaS5nZXRVc2VyQWdlbnRIZWFkZXIpKFwiY29udGVudGZ1bC5qcy85LjIuMTRcIix0LmFwcGxpY2F0aW9uLHQuaW50ZWdyYXRpb24pO3QuaGVhZGVycz11KHUoe30sdC5oZWFkZXJzKSx7fSx7XCJDb250ZW50LVR5cGVcIjpcImFwcGxpY2F0aW9uL3ZuZC5jb250ZW50ZnVsLmRlbGl2ZXJ5LnYxK2pzb25cIixcIlgtQ29udGVudGZ1bC1Vc2VyLUFnZW50XCI6bn0pO2NvbnN0IHM9KDAsaS5jcmVhdGVIdHRwQ2xpZW50KShyLmRlZmF1bHQsdCksYz0oMCxhLmRlZmF1bHQpKHtyZXNvbHZlTGlua3M6dC5yZXNvbHZlTGlua3MsZW52aXJvbm1lbnQ6dC5lbnZpcm9ubWVudCxyZW1vdmVVbnJlc29sdmVkOnQucmVtb3ZlVW5yZXNvbHZlZCxzcGFjZUJhc2VVcmw6cy5kZWZhdWx0cy5iYXNlVVJMLGVudmlyb25tZW50QmFzZVVybDpgJHtzLmRlZmF1bHRzLmJhc2VVUkx9ZW52aXJvbm1lbnRzLyR7dC5lbnZpcm9ubWVudH1gfSk7cmV0dXJuIHMuZGVmYXVsdHMuYmFzZVVSTD1jKCkuZW52aXJvbm1lbnRCYXNlVXJsLCgwLG8uZGVmYXVsdCkoe2h0dHA6cyxnZXRHbG9iYWxPcHRpb25zOmN9KX07dmFyIHI9cyhuKDk2NjkpKSxpPW4oNDYxMzgpLG89cyhuKDM0ODQ3KSksYT1zKG4oMzk5MTkpKTtmdW5jdGlvbiBzKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBjKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB1KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP2MoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtsKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpjKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIGwoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKGUsdHx8XCJkZWZhdWx0XCIpO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuKFwic3RyaW5nXCI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLFwic3RyaW5nXCIpO3JldHVyblwic3ltYm9sXCI9PT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9fSwzNDg0NzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe2xldHtodHRwOnQsZ2V0R2xvYmFsT3B0aW9uczpufT1lO2NvbnN0e3dyYXBTcGFjZTpjfT1pLmRlZmF1bHQuc3BhY2Use3dyYXBDb250ZW50VHlwZTp1LHdyYXBDb250ZW50VHlwZUNvbGxlY3Rpb246ZH09aS5kZWZhdWx0LmNvbnRlbnRUeXBlLHt3cmFwRW50cnk6cCx3cmFwRW50cnlDb2xsZWN0aW9uOmZ9PWkuZGVmYXVsdC5lbnRyeSx7d3JhcEFzc2V0Omgsd3JhcEFzc2V0Q29sbGVjdGlvbjpnfT1pLmRlZmF1bHQuYXNzZXQse3dyYXBUYWc6bSx3cmFwVGFnQ29sbGVjdGlvbjp2fT1pLmRlZmF1bHQudGFnLHt3cmFwQXNzZXRLZXk6X309aS5kZWZhdWx0LmFzc2V0S2V5LHt3cmFwTG9jYWxlQ29sbGVjdGlvbjpFfT1pLmRlZmF1bHQubG9jYWxlLGI9ZT0+e2NvbnN0IHQ9bmV3IEVycm9yKFwiVGhlIHJlc291cmNlIGNvdWxkIG5vdCBiZSBmb3VuZC5cIik7cmV0dXJuIHQuc3lzPXt0eXBlOlwiRXJyb3JcIixpZDpcIk5vdEZvdW5kXCJ9LHQuZGV0YWlscz17dHlwZTpcIkVudHJ5XCIsaWQ6ZSxlbnZpcm9ubWVudDpuKCkuZW52aXJvbm1lbnQsc3BhY2U6bigpLnNwYWNlfSx0fTtmdW5jdGlvbiBTKGUpe2UuZGVmYXVsdHMuYmFzZVVSTD1uKCkuZW52aXJvbm1lbnRCYXNlVXJsfXJldHVybntnZXRTcGFjZTphc3luYyBmdW5jdGlvbigpeyFmdW5jdGlvbihlKXtlLmRlZmF1bHRzLmJhc2VVUkw9bigpLnNwYWNlQmFzZVVybH0odCk7dHJ5e2NvbnN0IGU9YXdhaXQgdC5nZXQoXCIvXCIpO3JldHVybiBjKGUuZGF0YSl9Y2F0Y2goZSl7KDAsci5lcnJvckhhbmRsZXIpKGUpfX0sZ2V0Q29udGVudFR5cGU6YXN5bmMgZnVuY3Rpb24oZSl7Uyh0KTt0cnl7Y29uc3Qgbj1hd2FpdCB0LmdldChgY29udGVudF90eXBlcy8ke2V9YCk7cmV0dXJuIHUobi5kYXRhKX1jYXRjaChuKXsoMCxyLmVycm9ySGFuZGxlcikobil9fSxnZXRDb250ZW50VHlwZXM6YXN5bmMgZnVuY3Rpb24oKXtsZXQgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307Uyh0KTt0cnl7Y29uc3Qgbj1hd2FpdCB0LmdldChcImNvbnRlbnRfdHlwZXNcIiwoMCxyLmNyZWF0ZVJlcXVlc3RDb25maWcpKHtxdWVyeTplfSkpO3JldHVybiBkKG4uZGF0YSl9Y2F0Y2gobil7KDAsci5lcnJvckhhbmRsZXIpKG4pfX0sZ2V0RW50cnk6YXN5bmMgZnVuY3Rpb24oZSl7bGV0IHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCFlKXRocm93IGIoZSk7dHJ5e2NvbnN0IG49YXdhaXQgdGhpcy5nZXRFbnRyaWVzKGwoe1wic3lzLmlkXCI6ZX0sdCkpO2lmKG4uaXRlbXMubGVuZ3RoPjApcmV0dXJuIHAobi5pdGVtc1swXSk7dGhyb3cgYihlKX1jYXRjaChuKXsoMCxyLmVycm9ySGFuZGxlcikobil9fSxnZXRFbnRyaWVzOmFzeW5jIGZ1bmN0aW9uKCl7bGV0IGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O1ModCk7Y29uc3R7cmVzb2x2ZUxpbmtzOmkscmVtb3ZlVW5yZXNvbHZlZDpvfT1uKGUpO2U9KDAsYS5kZWZhdWx0KShlKTt0cnl7Y29uc3Qgbj1hd2FpdCB0LmdldChcImVudHJpZXNcIiwoMCxyLmNyZWF0ZVJlcXVlc3RDb25maWcpKHtxdWVyeTplfSkpO3JldHVybiBmKG4uZGF0YSx7cmVzb2x2ZUxpbmtzOmkscmVtb3ZlVW5yZXNvbHZlZDpvfSl9Y2F0Y2gocyl7KDAsci5lcnJvckhhbmRsZXIpKHMpfX0sZ2V0QXNzZXQ6YXN5bmMgZnVuY3Rpb24oZSl7bGV0IG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O1ModCksbj0oMCxhLmRlZmF1bHQpKG4pO3RyeXtjb25zdCBpPWF3YWl0IHQuZ2V0KGBhc3NldHMvJHtlfWAsKDAsci5jcmVhdGVSZXF1ZXN0Q29uZmlnKSh7cXVlcnk6bn0pKTtyZXR1cm4gaChpLmRhdGEpfWNhdGNoKGkpeygwLHIuZXJyb3JIYW5kbGVyKShpKX19LGdldEFzc2V0czphc3luYyBmdW5jdGlvbigpe2xldCBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtTKHQpLGU9KDAsYS5kZWZhdWx0KShlKTt0cnl7Y29uc3Qgbj1hd2FpdCB0LmdldChcImFzc2V0c1wiLCgwLHIuY3JlYXRlUmVxdWVzdENvbmZpZykoe3F1ZXJ5OmV9KSk7cmV0dXJuIGcobi5kYXRhKX1jYXRjaChuKXsoMCxyLmVycm9ySGFuZGxlcikobil9fSxnZXRUYWc6YXN5bmMgZnVuY3Rpb24oZSl7Uyh0KTt0cnl7Y29uc3Qgbj1hd2FpdCB0LmdldChgdGFncy8ke2V9YCk7cmV0dXJuIG0obi5kYXRhKX1jYXRjaChuKXsoMCxyLmVycm9ySGFuZGxlcikobil9fSxnZXRUYWdzOmFzeW5jIGZ1bmN0aW9uKCl7bGV0IGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O1ModCksZT0oMCxhLmRlZmF1bHQpKGUpO3RyeXtjb25zdCBuPWF3YWl0IHQuZ2V0KFwidGFnc1wiLCgwLHIuY3JlYXRlUmVxdWVzdENvbmZpZykoe3F1ZXJ5OmV9KSk7cmV0dXJuIHYobi5kYXRhKX1jYXRjaChuKXsoMCxyLmVycm9ySGFuZGxlcikobil9fSxjcmVhdGVBc3NldEtleTphc3luYyBmdW5jdGlvbihlKXtTKHQpO3RyeXtjb25zdCBuPU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xZTMpLHI9bisxNzI4MDA7KDAscy5kZWZhdWx0KShcImV4cGlyZXNBdFwiLGUse21heGltdW06cixub3c6bn0pO2NvbnN0IGk9e2V4cGlyZXNBdDplfSxvPWF3YWl0IHQucG9zdChcImFzc2V0X2tleXNcIixpKTtyZXR1cm4gXyhvLmRhdGEpfWNhdGNoKG4peygwLHIuZXJyb3JIYW5kbGVyKShuKX19LGdldExvY2FsZXM6YXN5bmMgZnVuY3Rpb24oKXtsZXQgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307Uyh0KTt0cnl7Y29uc3Qgbj1hd2FpdCB0LmdldChcImxvY2FsZXNcIiwoMCxyLmNyZWF0ZVJlcXVlc3RDb25maWcpKHtxdWVyeTplfSkpO3JldHVybiBFKG4uZGF0YSl9Y2F0Y2gobil7KDAsci5lcnJvckhhbmRsZXIpKG4pfX0scGFyc2VFbnRyaWVzOmZ1bmN0aW9uKGUpe2NvbnN0e3Jlc29sdmVMaW5rczp0LHJlbW92ZVVucmVzb2x2ZWQ6cn09bih7fSk7cmV0dXJuIGYoZSx7cmVzb2x2ZUxpbmtzOnQscmVtb3ZlVW5yZXNvbHZlZDpyfSl9LHN5bmM6YXN5bmMgZnVuY3Rpb24oKXtsZXQgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30scj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e3BhZ2luYXRlOiEwfTtjb25zdHtyZXNvbHZlTGlua3M6aSxyZW1vdmVVbnJlc29sdmVkOmF9PW4oZSk7cmV0dXJuIFModCksKDAsby5kZWZhdWx0KSh0LGUsbCh7cmVzb2x2ZUxpbmtzOmkscmVtb3ZlVW5yZXNvbHZlZDphfSxyKSl9fX07dmFyIHI9big0NjEzOCksaT1jKG4oNjg5NTgpKSxvPWMobigyNjcyKSksYT1jKG4oNTUwOTcpKSxzPWMobig5NTQwMikpO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIHUoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGwoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/dShPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe2QoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnUoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gZChlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHxcImRlZmF1bHRcIik7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4oXCJzdHJpbmdcIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGUsXCJzdHJpbmdcIik7cmV0dXJuXCJzeW1ib2xcIj09PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX19LDM5OTE5OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxlLHQpfX19LDI2MzEzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LndyYXBBc3NldEtleT1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmZyZWV6ZVN5cykoKDAsby50b1BsYWluT2JqZWN0KSgoMCxpLmRlZmF1bHQpKGUpKSl9O3ZhciByLGk9KHI9big1MzM0NikpJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfSxvPW4oNDYxMzgpfSw5MjgwMTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC53cmFwQXNzZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5mcmVlemVTeXMpKCgwLG8udG9QbGFpbk9iamVjdCkoKDAsaS5kZWZhdWx0KShlKSkpfSx0LndyYXBBc3NldENvbGxlY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5mcmVlemVTeXMpKCgwLG8udG9QbGFpbk9iamVjdCkoKDAsaS5kZWZhdWx0KShlKSkpfTt2YXIgcixpPShyPW4oNTMzNDYpKSYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn0sbz1uKDQ2MTM4KX0sMTAxNDI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQud3JhcENvbnRlbnRUeXBlPWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZnJlZXplU3lzKSgoMCxvLnRvUGxhaW5PYmplY3QpKCgwLGkuZGVmYXVsdCkoZSkpKX0sdC53cmFwQ29udGVudFR5cGVDb2xsZWN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZnJlZXplU3lzKSgoMCxvLnRvUGxhaW5PYmplY3QpKCgwLGkuZGVmYXVsdCkoZSkpKX07dmFyIHIsaT0ocj1uKDUzMzQ2KSkmJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9LG89big0NjEzOCl9LDYwNjI0OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LndyYXBFbnRyeT1mdW5jdGlvbihlKXtyZXR1cm4oMCxpLmZyZWV6ZVN5cykoKDAsaS50b1BsYWluT2JqZWN0KSgoMCxyLmRlZmF1bHQpKGUpKSl9LHQud3JhcEVudHJ5Q29sbGVjdGlvbj1mdW5jdGlvbihlLHQpe2xldHtyZXNvbHZlTGlua3M6bixyZW1vdmVVbnJlc29sdmVkOnN9PXQ7Y29uc3QgYz0oMCxvLmRlZmF1bHQpKCgwLGkudG9QbGFpbk9iamVjdCkoKDAsci5kZWZhdWx0KShlKSkpO24mJihjLml0ZW1zPSgwLGEuZGVmYXVsdCkoYyx7cmVtb3ZlVW5yZXNvbHZlZDpzLGl0ZW1FbnRyeVBvaW50czpbXCJmaWVsZHNcIl19KSk7cmV0dXJuKDAsaS5mcmVlemVTeXMpKGMpfTt2YXIgcj1zKG4oNTMzNDYpKSxpPW4oNDYxMzgpLG89cyhuKDk4MTEyKSksYT1zKG4oMTM5MDMpKTtmdW5jdGlvbiBzKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX19LDY4OTU4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciB0PW5ldyBXZWFrTWFwLG49bmV3IFdlYWtNYXA7cmV0dXJuKHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/bjp0fSkoZSl9ZnVuY3Rpb24gaShlLHQpe2lmKCF0JiZlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIG49cih0KTtpZihuJiZuLmhhcyhlKSlyZXR1cm4gbi5nZXQoZSk7dmFyIGk9e30sbz1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBhIGluIGUpaWYoXCJkZWZhdWx0XCIhPT1hJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSl7dmFyIHM9bz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsYSk6bnVsbDtzJiYocy5nZXR8fHMuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaSxhLHMpOmlbYV09ZVthXX1yZXR1cm4gaS5kZWZhdWx0PWUsbiYmbi5zZXQoZSxpKSxpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG89e3NwYWNlOmkobig0NjAyOSkpLGVudHJ5Omkobig2MDYyNCkpLGFzc2V0Omkobig5MjgwMSkpLGFzc2V0S2V5OmkobigyNjMxMykpLGNvbnRlbnRUeXBlOmkobigxMDE0MikpLGxvY2FsZTppKG4oNjIwOCkpLHRhZzppKG4oNzQzMDgpKX07dC5kZWZhdWx0PW99LDYyMDg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQud3JhcExvY2FsZT1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmZyZWV6ZVN5cykoKDAsby50b1BsYWluT2JqZWN0KSgoMCxpLmRlZmF1bHQpKGUpKSl9LHQud3JhcExvY2FsZUNvbGxlY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5mcmVlemVTeXMpKCgwLG8udG9QbGFpbk9iamVjdCkoKDAsaS5kZWZhdWx0KShlKSkpfTt2YXIgcixpPShyPW4oNTMzNDYpKSYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn0sbz1uKDQ2MTM4KX0sNDYwMjk6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQud3JhcFNwYWNlPWZ1bmN0aW9uKGUpe3JldHVybigwLHIuZnJlZXplU3lzKSgoMCxyLnRvUGxhaW5PYmplY3QpKGUpKX07dmFyIHI9big0NjEzOCl9LDc0MzA4OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LndyYXBUYWc9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5mcmVlemVTeXMpKCgwLG8udG9QbGFpbk9iamVjdCkoKDAsaS5kZWZhdWx0KShlKSkpfSx0LndyYXBUYWdDb2xsZWN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZnJlZXplU3lzKSgoMCxvLnRvUGxhaW5PYmplY3QpKCgwLGkuZGVmYXVsdCkoZSkpKX07dmFyIHIsaT0ocj1uKDUzMzQ2KSkmJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9LG89big0NjEzOCl9LDk4MTEyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwic3RyaW5naWZ5U2FmZVwiLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTpmdW5jdGlvbigpe2xldCBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOlwiXCI7cmV0dXJuKDAsaS5kZWZhdWx0KSh0aGlzLGUsdCwoKGUsdCk9Pih7c3lzOnt0eXBlOlwiTGlua1wiLGxpbmtUeXBlOlwiRW50cnlcIixpZDp0LnN5cy5pZCxjaXJjdWxhcjohMH19KSkpfX0pfTt2YXIgcixpPShyPW4oNjQ1MzApKSYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19LDI2NzI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1hc3luYyBmdW5jdGlvbihlLHQpe2xldCBuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtpZighdHx8IXQuaW5pdGlhbCYmIXQubmV4dFN5bmNUb2tlbiYmIXQubmV4dFBhZ2VUb2tlbil0aHJvdyBuZXcgRXJyb3IoXCJQbGVhc2UgcHJvdmlkZSBvbmUgb2YgYGluaXRpYWxgLCBgbmV4dFN5bmNUb2tlbmAgb3IgYG5leHRQYWdlVG9rZW5gIHBhcmFtZXRlcnMgZm9yIHN5bmNpbmdcIik7aWYodCYmdC5jb250ZW50X3R5cGUmJiF0LnR5cGUpdC50eXBlPVwiRW50cnlcIjtlbHNlIGlmKHQmJnQuY29udGVudF90eXBlJiZ0LnR5cGUmJlwiRW50cnlcIiE9PXQudHlwZSl0aHJvdyBuZXcgRXJyb3IoXCJXaGVuIHVzaW5nIHRoZSBgY29udGVudF90eXBlYCBmaWx0ZXIgeW91ciBgdHlwZWAgcGFyYW1ldGVyIGNhbm5vdCBiZSBkaWZmZXJlbnQgZnJvbSBgRW50cnlgLlwiKTtjb25zdCBhPXtyZXNvbHZlTGlua3M6ITAscmVtb3ZlVW5yZXNvbHZlZDohMSxwYWdpbmF0ZTohMH0se3Jlc29sdmVMaW5rczpzLHJlbW92ZVVucmVzb2x2ZWQ6dSxwYWdpbmF0ZTpwfT1jKGMoe30sYSksbiksZj17cGFnaW5hdGU6cH0saD1hd2FpdCBkKGUsW10sdCxmKTtzJiYoaC5pdGVtcz0oMCxpLmRlZmF1bHQpKGgse3JlbW92ZVVucmVzb2x2ZWQ6dSxpdGVtRW50cnlQb2ludHM6W1wiZmllbGRzXCJdfSkpO2NvbnN0IGc9bChoLml0ZW1zKTtoLm5leHRTeW5jVG9rZW4mJihnLm5leHRTeW5jVG9rZW49aC5uZXh0U3luY1Rva2VuKTtoLm5leHRQYWdlVG9rZW4mJihnLm5leHRQYWdlVG9rZW49aC5uZXh0UGFnZVRva2VuKTtyZXR1cm4oMCxyLmZyZWV6ZVN5cykoKDAsby5kZWZhdWx0KSgoMCxyLnRvUGxhaW5PYmplY3QpKGcpKSl9O3ZhciByPW4oNDYxMzgpLGk9YShuKDEzOTAzKSksbz1hKG4oOTgxMTIpKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBzKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBjKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP3MoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXt1KGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpzKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIHUoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUsdCl7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gZTt2YXIgbj1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIHI9bi5jYWxsKGUsdHx8XCJkZWZhdWx0XCIpO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgcilyZXR1cm4gcjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuKFwic3RyaW5nXCI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLFwic3RyaW5nXCIpO3JldHVyblwic3ltYm9sXCI9PT10eXBlb2YgdD90OlN0cmluZyh0KX0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gbChlKXtjb25zdCB0PWU9Pih0LG4pPT4obi5zeXMudHlwZT09PWUmJnQucHVzaCgoMCxyLnRvUGxhaW5PYmplY3QpKG4pKSx0KTtyZXR1cm57ZW50cmllczplLnJlZHVjZSh0KFwiRW50cnlcIiksW10pLGFzc2V0czplLnJlZHVjZSh0KFwiQXNzZXRcIiksW10pLGRlbGV0ZWRFbnRyaWVzOmUucmVkdWNlKHQoXCJEZWxldGVkRW50cnlcIiksW10pLGRlbGV0ZWRBc3NldHM6ZS5yZWR1Y2UodChcIkRlbGV0ZWRBc3NldFwiKSxbXSl9fWFzeW5jIGZ1bmN0aW9uIGQoZSx0LG4saSl7bGV0e3BhZ2luYXRlOm99PWk7bi5uZXh0U3luY1Rva2VuJiYobi5zeW5jX3Rva2VuPW4ubmV4dFN5bmNUb2tlbixkZWxldGUgbi5uZXh0U3luY1Rva2VuKSxuLm5leHRQYWdlVG9rZW4mJihuLnN5bmNfdG9rZW49bi5uZXh0UGFnZVRva2VuLGRlbGV0ZSBuLm5leHRQYWdlVG9rZW4pLG4uc3luY190b2tlbiYmKGRlbGV0ZSBuLmluaXRpYWwsZGVsZXRlIG4udHlwZSxkZWxldGUgbi5jb250ZW50X3R5cGUsZGVsZXRlIG4ubGltaXQpO2NvbnN0IGE9KGF3YWl0IGUuZ2V0KFwic3luY1wiLCgwLHIuY3JlYXRlUmVxdWVzdENvbmZpZykoe3F1ZXJ5Om59KSkpLmRhdGF8fHt9O3JldHVybiB0PXQuY29uY2F0KGEuaXRlbXN8fFtdKSxhLm5leHRQYWdlVXJsP28/KGRlbGV0ZSBuLmluaXRpYWwsbi5zeW5jX3Rva2VuPXAoYS5uZXh0UGFnZVVybCksZChlLHQsbix7cGFnaW5hdGU6b30pKTp7aXRlbXM6dCxuZXh0UGFnZVRva2VuOnAoYS5uZXh0UGFnZVVybCl9OmEubmV4dFN5bmNVcmw/e2l0ZW1zOnQsbmV4dFN5bmNUb2tlbjpwKGEubmV4dFN5bmNVcmwpfTp7aXRlbXM6W119fWZ1bmN0aW9uIHAoZSl7Y29uc3QgdD1lLnNwbGl0KFwiP1wiKTtyZXR1cm4gdC5sZW5ndGg+MD90WzFdLnJlcGxhY2UoXCJzeW5jX3Rva2VuPVwiLFwiXCIpOlwiXCJ9fSw1NTA5NzpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/bihPYmplY3QociksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe2koZSx0LHJbdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocikpOm4oT2JqZWN0KHIpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gaShlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZihcIm9iamVjdFwiIT09dHlwZW9mIGV8fG51bGw9PT1lKXJldHVybiBlO3ZhciBuPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgcj1uLmNhbGwoZSx0fHxcImRlZmF1bHRcIik7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiByKXJldHVybiByO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4oXCJzdHJpbmdcIj09PXQ/U3RyaW5nOk51bWJlcikoZSl9KGUsXCJzdHJpbmdcIik7cmV0dXJuXCJzeW1ib2xcIj09PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7aWYoIWUuc2VsZWN0KXJldHVybiBlO2NvbnN0IHQ9QXJyYXkuaXNBcnJheShlLnNlbGVjdCk/ZS5zZWxlY3Q6ZS5zZWxlY3Quc3BsaXQoXCIsXCIpLG49bmV3IFNldCh0KTtpZihuLmhhcyhcInN5c1wiKSlyZXR1cm4gZTtyZXR1cm4gbi5hZGQoXCJzeXMuaWRcIiksbi5hZGQoXCJzeXMudHlwZVwiKSxyKHIoe30sZSkse30se3NlbGVjdDpbLi4ubl0uam9pbihcIixcIil9KX19LDk1NDAyOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5WYWxpZGF0aW9uRXJyb3I9dm9pZCAwLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQscil7aWYocj1yfHx7fSxcIm51bWJlclwiIT09dHlwZW9mIHQpdGhyb3cgbmV3IG4oZSxgb25seSBudW1lcmljIHZhbHVlcyBhcmUgYWxsb3dlZCBmb3IgdGltZXN0YW1wcywgcHJvdmlkZWQgdHlwZSB3YXMgXCIke3R5cGVvZiB0fVwiYCk7aWYoci5tYXhpbXVtJiZ0PnIubWF4aW11bSl0aHJvdyBuZXcgbihlLGB2YWx1ZSAoJHt0fSkgY2Fubm90IGJlIGZ1cnRoZXIgaW4gdGhlIGZ1dHVyZSB0aGFuIGV4cGVjdGVkIG1heGltdW0gKCR7ci5tYXhpbXVtfSlgKTtpZihyLm5vdyYmdDxyLm5vdyl0aHJvdyBuZXcgbihlLGB2YWx1ZSAoJHt0fSkgY2Fubm90IGJlIGluIHRoZSBwYXN0LCBjdXJyZW50IHRpbWUgd2FzICR7ci5ub3d9YCl9O2NsYXNzIG4gZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGBJbnZhbGlkIFwiJHtlfVwiIHByb3ZpZGVkLCBgK3QpLHRoaXMubmFtZT1cIlZhbGlkYXRpb25FcnJvclwifX10LlZhbGlkYXRpb25FcnJvcj1ufSw0OTIzMzpmdW5jdGlvbihlLHQsbil7dmFyIHI9big0MDUpO2UuZXhwb3J0cz1yfSw0MDQ1NDpmdW5jdGlvbihlLHQsbil7big2Njk5MiksbigzODU1OSk7dmFyIHI9big0MDg1Nyk7ZS5leHBvcnRzPXIuT2JqZWN0LmZyb21FbnRyaWVzfSw3NjU1NDpmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPW4oNTc2NTEpfSw1NzY1MTpmdW5jdGlvbihlLHQsbil7dmFyIHI9big0OTIzMyk7ZS5leHBvcnRzPXJ9LDE5NjYyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDYwNjE0KSxpPW4oNjYzMzApLG89VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKGUpKXJldHVybiBlO3Rocm93IG8oaShlKStcIiBpcyBub3QgYSBmdW5jdGlvblwiKX19LDk2MDc3OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDYwNjE0KSxpPVN0cmluZyxvPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoXCJvYmplY3RcIj09dHlwZW9mIGV8fHIoZSkpcmV0dXJuIGU7dGhyb3cgbyhcIkNhbid0IHNldCBcIitpKGUpK1wiIGFzIGEgcHJvdG90eXBlXCIpfX0sNTEyMjM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNTExMiksaT1uKDcwMDMwKSxvPW4oMzA3MCkuZixhPXIoXCJ1bnNjb3BhYmxlc1wiKSxzPUFycmF5LnByb3RvdHlwZTt2b2lkIDA9PXNbYV0mJm8ocyxhLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aShudWxsKX0pLGUuZXhwb3J0cz1mdW5jdGlvbihlKXtzW2FdW2VdPSEwfX0sMTk2NzA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNzAxMTEpLGk9U3RyaW5nLG89VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKGUpKXJldHVybiBlO3Rocm93IG8oaShlKStcIiBpcyBub3QgYW4gb2JqZWN0XCIpfX0sNDEzMTg6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDU2NTYpLGk9big1MTQwMCksbz1uKDI2MjQ0KSxhPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4sYSl7dmFyIHMsYz1yKHQpLHU9byhjKSxsPWkoYSx1KTtpZihlJiZuIT1uKXtmb3IoO3U+bDspaWYoKHM9Y1tsKytdKSE9cylyZXR1cm4hMH1lbHNlIGZvcig7dT5sO2wrKylpZigoZXx8bCBpbiBjKSYmY1tsXT09PW4pcmV0dXJuIGV8fGx8fDA7cmV0dXJuIWUmJi0xfX07ZS5leHBvcnRzPXtpbmNsdWRlczphKCEwKSxpbmRleE9mOmEoITEpfX0sODQzMjY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTcwMiksaT1yKHt9LnRvU3RyaW5nKSxvPXIoXCJcIi5zbGljZSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBvKGkoZSksOCwtMSl9fSw3MDY0ODpmdW5jdGlvbihlLHQsbil7dmFyIHI9big1MTY5NCksaT1uKDYwNjE0KSxvPW4oODQzMjYpLGE9big1MTEyKShcInRvU3RyaW5nVGFnXCIpLHM9T2JqZWN0LGM9XCJBcmd1bWVudHNcIj09byhmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO2UuZXhwb3J0cz1yP286ZnVuY3Rpb24oZSl7dmFyIHQsbixyO3JldHVybiB2b2lkIDA9PT1lP1wiVW5kZWZpbmVkXCI6bnVsbD09PWU/XCJOdWxsXCI6XCJzdHJpbmdcIj09dHlwZW9mKG49ZnVuY3Rpb24oZSx0KXt0cnl7cmV0dXJuIGVbdF19Y2F0Y2gobil7fX0odD1zKGUpLGEpKT9uOmM/byh0KTpcIk9iamVjdFwiPT0ocj1vKHQpKSYmaSh0LmNhbGxlZSk/XCJBcmd1bWVudHNcIjpyfX0sOTk5MjA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oOTI1OTcpLGk9big1Mzg4Nyksbz1uKDMxMjM2KSxhPW4oMzA3MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHM9aSh0KSxjPWEuZix1PW8uZixsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciBkPXNbbF07cihlLGQpfHxuJiZyKG4sZCl8fGMoZSxkLHUodCxkKSl9fX0sNDk5MjA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDcyOTMpO2UuZXhwb3J0cz0hcigoZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgZSkhPT1lLnByb3RvdHlwZX0pKX0sNzYxNzg6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue3ZhbHVlOmUsZG9uZTp0fX19LDY4ODgwOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE5NzgxKSxpPW4oMzA3MCksbz1uKDc5MTE0KTtlLmV4cG9ydHM9cj9mdW5jdGlvbihlLHQsbil7cmV0dXJuIGkuZihlLHQsbygxLG4pKX06ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlW3RdPW4sZX19LDc5MTE0OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybntlbnVtZXJhYmxlOiEoMSZlKSxjb25maWd1cmFibGU6ISgyJmUpLHdyaXRhYmxlOiEoNCZlKSx2YWx1ZTp0fX19LDg2MTM1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDM0OTQ4KSxpPW4oMzA3MCksbz1uKDc5MTE0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBhPXIodCk7YSBpbiBlP2kuZihlLGEsbygwLG4pKTplW2FdPW59fSw5ODA1MjpmdW5jdGlvbihlLHQsbil7dmFyIHI9big2MDYxNCksaT1uKDMwNzApLG89big1NjMzOSksYT1uKDEzMDcyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4scyl7c3x8KHM9e30pO3ZhciBjPXMuZW51bWVyYWJsZSx1PXZvaWQgMCE9PXMubmFtZT9zLm5hbWU6dDtpZihyKG4pJiZvKG4sdSxzKSxzLmdsb2JhbCljP2VbdF09bjphKHQsbik7ZWxzZXt0cnl7cy51bnNhZmU/ZVt0XSYmKGM9ITApOmRlbGV0ZSBlW3RdfWNhdGNoKGwpe31jP2VbdF09bjppLmYoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiFzLm5vbkNvbmZpZ3VyYWJsZSx3cml0YWJsZTohcy5ub25Xcml0YWJsZX0pfXJldHVybiBlfX0sMTMwNzI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTc4NTQpLGk9T2JqZWN0LmRlZmluZVByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3RyeXtpKHIsZSx7dmFsdWU6dCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXtyW2VdPXR9cmV0dXJuIHR9fSwxOTc4MTpmdW5jdGlvbihlLHQsbil7dmFyIHI9big0NzI5Myk7ZS5leHBvcnRzPSFyKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSl9LDQxNTQ6ZnVuY3Rpb24oZSl7dmFyIHQ9XCJvYmplY3RcIj09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5hbGwsbj1cInVuZGVmaW5lZFwiPT10eXBlb2YgdCYmdm9pZCAwIT09dDtlLmV4cG9ydHM9e2FsbDp0LElTX0hUTUxEREE6bn19LDgwMzE3OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3ODU0KSxpPW4oNzAxMTEpLG89ci5kb2N1bWVudCxhPWkobykmJmkoby5jcmVhdGVFbGVtZW50KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGE/by5jcmVhdGVFbGVtZW50KGUpOnt9fX0sNDgzMjQ6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfX0sOTg1MDk6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oODAzMTcpKFwic3BhblwiKS5jbGFzc0xpc3QsaT1yJiZyLmNvbnN0cnVjdG9yJiZyLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtlLmV4cG9ydHM9aT09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOml9LDg4MTEzOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDM1MDA1KTtlLmV4cG9ydHM9cihcIm5hdmlnYXRvclwiLFwidXNlckFnZW50XCIpfHxcIlwifSw3MzkyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89bigxNzg1NCksYT1uKDg4MTEzKSxzPW8ucHJvY2VzcyxjPW8uRGVubyx1PXMmJnMudmVyc2lvbnN8fGMmJmMudmVyc2lvbixsPXUmJnUudjg7bCYmKGk9KHI9bC5zcGxpdChcIi5cIikpWzBdPjAmJnJbMF08ND8xOisoclswXStyWzFdKSksIWkmJmEmJighKHI9YS5tYXRjaCgvRWRnZVxcLyhcXGQrKS8pKXx8clsxXT49NzQpJiYocj1hLm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKSkmJihpPStyWzFdKSxlLmV4cG9ydHM9aX0sODA3NDg6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPVtcImNvbnN0cnVjdG9yXCIsXCJoYXNPd25Qcm9wZXJ0eVwiLFwiaXNQcm90b3R5cGVPZlwiLFwicHJvcGVydHlJc0VudW1lcmFibGVcIixcInRvTG9jYWxlU3RyaW5nXCIsXCJ0b1N0cmluZ1wiLFwidmFsdWVPZlwiXX0sODIxMDk6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTc4NTQpLGk9bigzMTIzNikuZixvPW4oNjg4ODApLGE9big5ODA1Mikscz1uKDEzMDcyKSxjPW4oOTk5MjApLHU9big1NDcwNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4sbCxkLHAsZixoPWUudGFyZ2V0LGc9ZS5nbG9iYWwsbT1lLnN0YXQ7aWYobj1nP3I6bT9yW2hdfHxzKGgse30pOihyW2hdfHx7fSkucHJvdG90eXBlKWZvcihsIGluIHQpe2lmKHA9dFtsXSxkPWUuZG9udENhbGxHZXRTZXQ/KGY9aShuLGwpKSYmZi52YWx1ZTpuW2xdLCF1KGc/bDpoKyhtP1wiLlwiOlwiI1wiKStsLGUuZm9yY2VkKSYmdm9pZCAwIT09ZCl7aWYodHlwZW9mIHA9PXR5cGVvZiBkKWNvbnRpbnVlO2MocCxkKX0oZS5zaGFtfHxkJiZkLnNoYW0pJiZvKHAsXCJzaGFtXCIsITApLGEobixsLHAsZSl9fX0sNDcyOTM6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4hIWUoKX1jYXRjaCh0KXtyZXR1cm4hMH19fSw0OTk3NDpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigyMTQ3MCksaT1uKDE5NjYyKSxvPW4oMzQzNzQpLGE9cihyLmJpbmQpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBpKGUpLHZvaWQgMD09PXQ/ZTpvP2EoZSx0KTpmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHQsYXJndW1lbnRzKX19fSwzNDM3NDpmdW5jdGlvbihlLHQsbil7dmFyIHI9big0NzI5Myk7ZS5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgZXx8ZS5oYXNPd25Qcm9wZXJ0eShcInByb3RvdHlwZVwiKX0pKX0sNDY5MTY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzQzNzQpLGk9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7ZS5leHBvcnRzPXI/aS5iaW5kKGkpOmZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkoaSxhcmd1bWVudHMpfX0sNzY1MzA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTk3ODEpLGk9big5MjU5Nyksbz1GdW5jdGlvbi5wcm90b3R5cGUsYT1yJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHM9aShvLFwibmFtZVwiKSxjPXMmJlwic29tZXRoaW5nXCI9PT1mdW5jdGlvbigpe30ubmFtZSx1PXMmJighcnx8ciYmYShvLFwibmFtZVwiKS5jb25maWd1cmFibGUpO2UuZXhwb3J0cz17RVhJU1RTOnMsUFJPUEVSOmMsQ09ORklHVVJBQkxFOnV9fSwyMTQ3MDpmdW5jdGlvbihlLHQsbil7dmFyIHI9big4NDMyNiksaT1uKDE3MDIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihcIkZ1bmN0aW9uXCI9PT1yKGUpKXJldHVybiBpKGUpfX0sMTcwMjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzNDM3NCksaT1GdW5jdGlvbi5wcm90b3R5cGUsbz1pLmNhbGwsYT1yJiZpLmJpbmQuYmluZChvLG8pO2UuZXhwb3J0cz1yP2E6ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG8uYXBwbHkoZSxhcmd1bWVudHMpfX19LDM1MDA1OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3ODU0KSxpPW4oNjA2MTQpLG89ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSk/ZTp2b2lkIDB9O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/byhyW2VdKTpyW2VdJiZyW2VdW3RdfX0sNzEyNDY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNzA2NDgpLGk9big1ODE3Myksbz1uKDY4NTU0KSxhPW4oOTc0OTcpLHM9big1MTEyKShcIml0ZXJhdG9yXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighbyhlKSlyZXR1cm4gaShlLHMpfHxpKGUsXCJAQGl0ZXJhdG9yXCIpfHxhW3IoZSldfX0sMTg1NTQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDY5MTYpLGk9bigxOTY2Miksbz1uKDE5NjcwKSxhPW4oNjYzMzApLHM9big3MTI0NiksYz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aDwyP3MoZSk6dDtpZihpKG4pKXJldHVybiBvKHIobixlKSk7dGhyb3cgYyhhKGUpK1wiIGlzIG5vdCBpdGVyYWJsZVwiKX19LDU4MTczOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE5NjYyKSxpPW4oNjg1NTQpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWVbdF07cmV0dXJuIGkobik/dm9pZCAwOnIobil9fSwxNzg1NDpmdW5jdGlvbihlLHQsbil7dmFyIHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuTWF0aD09TWF0aCYmZX07ZS5leHBvcnRzPXIoXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxyKFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fHIoXCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnNlbGYpfHxyKFwib2JqZWN0XCI9PXR5cGVvZiBuLmcmJm4uZyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKX0sOTI1OTc6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTcwMiksaT1uKDQ3OTA4KSxvPXIoe30uaGFzT3duUHJvcGVydHkpO2UuZXhwb3J0cz1PYmplY3QuaGFzT3dufHxmdW5jdGlvbihlLHQpe3JldHVybiBvKGkoZSksdCl9fSwzNTAxOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz17fX0sNjA0OTA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzUwMDUpO2UuZXhwb3J0cz1yKFwiZG9jdW1lbnRcIixcImRvY3VtZW50RWxlbWVudFwiKX0sNjQ2NjQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTk3ODEpLGk9big0NzI5Myksbz1uKDgwMzE3KTtlLmV4cG9ydHM9IXImJiFpKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkobyhcImRpdlwiKSxcImFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sNjgzNjE6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTcwMiksaT1uKDQ3MjkzKSxvPW4oODQzMjYpLGE9T2JqZWN0LHM9cihcIlwiLnNwbGl0KTtlLmV4cG9ydHM9aSgoZnVuY3Rpb24oKXtyZXR1cm4hYShcInpcIikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KSk/ZnVuY3Rpb24oZSl7cmV0dXJuXCJTdHJpbmdcIj09byhlKT9zKGUsXCJcIik6YShlKX06YX0sNDI3ODg6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTcwMiksaT1uKDYwNjE0KSxvPW4oNTQ2NSksYT1yKEZ1bmN0aW9uLnRvU3RyaW5nKTtpKG8uaW5zcGVjdFNvdXJjZSl8fChvLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSl9KSxlLmV4cG9ydHM9by5pbnNwZWN0U291cmNlfSwyOTkwOTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9big5NDgxMSkscz1uKDE3ODU0KSxjPW4oNzAxMTEpLHU9big2ODg4MCksbD1uKDkyNTk3KSxkPW4oNTQ2NSkscD1uKDYyMDApLGY9bigzNTAxKSxoPVwiT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWRcIixnPXMuVHlwZUVycm9yLG09cy5XZWFrTWFwO2lmKGF8fGQuc3RhdGUpe3ZhciB2PWQuc3RhdGV8fChkLnN0YXRlPW5ldyBtKTt2LmdldD12LmdldCx2Lmhhcz12Lmhhcyx2LnNldD12LnNldCxyPWZ1bmN0aW9uKGUsdCl7aWYodi5oYXMoZSkpdGhyb3cgZyhoKTtyZXR1cm4gdC5mYWNhZGU9ZSx2LnNldChlLHQpLHR9LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIHYuZ2V0KGUpfHx7fX0sbz1mdW5jdGlvbihlKXtyZXR1cm4gdi5oYXMoZSl9fWVsc2V7dmFyIF89cChcInN0YXRlXCIpO2ZbX109ITAscj1mdW5jdGlvbihlLHQpe2lmKGwoZSxfKSl0aHJvdyBnKGgpO3JldHVybiB0LmZhY2FkZT1lLHUoZSxfLHQpLHR9LGk9ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxfKT9lW19dOnt9fSxvPWZ1bmN0aW9uKGUpe3JldHVybiBsKGUsXyl9fWUuZXhwb3J0cz17c2V0OnIsZ2V0OmksaGFzOm8sZW5mb3JjZTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlKT9pKGUpOnIoZSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG47aWYoIWModCl8fChuPWkodCkpLnR5cGUhPT1lKXRocm93IGcoXCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFwiK2UrXCIgcmVxdWlyZWRcIik7cmV0dXJuIG59fX19LDk3NjU5OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDUxMTIpLGk9big5NzQ5Nyksbz1yKFwiaXRlcmF0b3JcIiksYT1BcnJheS5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lJiYoaS5BcnJheT09PWV8fGFbb109PT1lKX19LDYwNjE0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQxNTQpLGk9ci5hbGw7ZS5leHBvcnRzPXIuSVNfSFRNTEREQT9mdW5jdGlvbihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlfHxlPT09aX06ZnVuY3Rpb24oZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZX19LDU0NzA1OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQ3MjkzKSxpPW4oNjA2MTQpLG89LyN8XFwucHJvdG90eXBlXFwuLyxhPWZ1bmN0aW9uKGUsdCl7dmFyIG49Y1tzKGUpXTtyZXR1cm4gbj09bHx8biE9dSYmKGkodCk/cih0KTohIXQpfSxzPWEubm9ybWFsaXplPWZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZShvLFwiLlwiKS50b0xvd2VyQ2FzZSgpfSxjPWEuZGF0YT17fSx1PWEuTkFUSVZFPVwiTlwiLGw9YS5QT0xZRklMTD1cIlBcIjtlLmV4cG9ydHM9YX0sNjg1NTQ6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZXx8dm9pZCAwPT09ZX19LDcwMTExOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDYwNjE0KSxpPW4oNDE1NCksbz1pLmFsbDtlLmV4cG9ydHM9aS5JU19IVE1MRERBP2Z1bmN0aW9uKGUpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiBlP251bGwhPT1lOnIoZSl8fGU9PT1vfTpmdW5jdGlvbihlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgZT9udWxsIT09ZTpyKGUpfX0sMzE5MTM6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPSExfSw1MjE5MDpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzNTAwNSksaT1uKDYwNjE0KSxvPW4oNDc5NzYpLGE9big0MzMwNykscz1PYmplY3Q7ZS5leHBvcnRzPWE/ZnVuY3Rpb24oZSl7cmV0dXJuXCJzeW1ib2xcIj09dHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3ZhciB0PXIoXCJTeW1ib2xcIik7cmV0dXJuIGkodCkmJm8odC5wcm90b3R5cGUscyhlKSl9fSwyMDQwODpmdW5jdGlvbihlLHQsbil7dmFyIHI9big0OTk3NCksaT1uKDQ2OTE2KSxvPW4oMTk2NzApLGE9big2NjMzMCkscz1uKDk3NjU5KSxjPW4oMjYyNDQpLHU9big0Nzk3NiksbD1uKDE4NTU0KSxkPW4oNzEyNDYpLHA9big5OTIxMiksZj1UeXBlRXJyb3IsaD1mdW5jdGlvbihlLHQpe3RoaXMuc3RvcHBlZD1lLHRoaXMucmVzdWx0PXR9LGc9aC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbSx2LF8sRSxiLFMseSxUPW4mJm4udGhhdCxJPSEoIW58fCFuLkFTX0VOVFJJRVMpLE89ISghbnx8IW4uSVNfUkVDT1JEKSxBPSEoIW58fCFuLklTX0lURVJBVE9SKSxDPSEoIW58fCFuLklOVEVSUlVQVEVEKSxOPXIodCxUKSxrPWZ1bmN0aW9uKGUpe3JldHVybiBtJiZwKG0sXCJub3JtYWxcIixlKSxuZXcgaCghMCxlKX0sUD1mdW5jdGlvbihlKXtyZXR1cm4gST8obyhlKSxDP04oZVswXSxlWzFdLGspOk4oZVswXSxlWzFdKSk6Qz9OKGUsayk6TihlKX07aWYoTyltPWUuaXRlcmF0b3I7ZWxzZSBpZihBKW09ZTtlbHNle2lmKCEodj1kKGUpKSl0aHJvdyBmKGEoZSkrXCIgaXMgbm90IGl0ZXJhYmxlXCIpO2lmKHModikpe2ZvcihfPTAsRT1jKGUpO0U+XztfKyspaWYoKGI9UChlW19dKSkmJnUoZyxiKSlyZXR1cm4gYjtyZXR1cm4gbmV3IGgoITEpfW09bChlLHYpfWZvcihTPU8/ZS5uZXh0Om0ubmV4dDshKHk9aShTLG0pKS5kb25lOyl7dHJ5e2I9UCh5LnZhbHVlKX1jYXRjaChSKXtwKG0sXCJ0aHJvd1wiLFIpfWlmKFwib2JqZWN0XCI9PXR5cGVvZiBiJiZiJiZ1KGcsYikpcmV0dXJuIGJ9cmV0dXJuIG5ldyBoKCExKX19LDk5MjEyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQ2OTE2KSxpPW4oMTk2NzApLG89big1ODE3Myk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYSxzO2koZSk7dHJ5e2lmKCEoYT1vKGUsXCJyZXR1cm5cIikpKXtpZihcInRocm93XCI9PT10KXRocm93IG47cmV0dXJuIG59YT1yKGEsZSl9Y2F0Y2goYyl7cz0hMCxhPWN9aWYoXCJ0aHJvd1wiPT09dCl0aHJvdyBuO2lmKHMpdGhyb3cgYTtyZXR1cm4gaShhKSxufX0sNjMwNjE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oMTMzODMpLkl0ZXJhdG9yUHJvdG90eXBlLGk9big3MDAzMCksbz1uKDc5MTE0KSxhPW4oNTgwMDMpLHM9big5NzQ5NyksYz1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sdSl7dmFyIGw9dCtcIiBJdGVyYXRvclwiO3JldHVybiBlLnByb3RvdHlwZT1pKHIse25leHQ6bygrIXUsbil9KSxhKGUsbCwhMSwhMCksc1tsXT1jLGV9fSw1MTY1NjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4MjEwOSksaT1uKDQ2OTE2KSxvPW4oMzE5MTMpLGE9big3NjUzMCkscz1uKDYwNjE0KSxjPW4oNjMwNjEpLHU9big3OTUxOCksbD1uKDI3Njc0KSxkPW4oNTgwMDMpLHA9big2ODg4MCksZj1uKDk4MDUyKSxoPW4oNTExMiksZz1uKDk3NDk3KSxtPW4oMTMzODMpLHY9YS5QUk9QRVIsXz1hLkNPTkZJR1VSQUJMRSxFPW0uSXRlcmF0b3JQcm90b3R5cGUsYj1tLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsUz1oKFwiaXRlcmF0b3JcIikseT1cImtleXNcIixUPVwidmFsdWVzXCIsST1cImVudHJpZXNcIixPPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixhLGgsbSxBKXtjKG4sdCxhKTt2YXIgQyxOLGssUD1mdW5jdGlvbihlKXtpZihlPT09aCYmTSlyZXR1cm4gTTtpZighYiYmZSBpbiBMKXJldHVybiBMW2VdO3N3aXRjaChlKXtjYXNlIHk6Y2FzZSBUOmNhc2UgSTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyxlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMpfX0sUj10K1wiIEl0ZXJhdG9yXCIsdz0hMSxMPWUucHJvdG90eXBlLEI9TFtTXXx8TFtcIkBAaXRlcmF0b3JcIl18fGgmJkxbaF0sTT0hYiYmQnx8UChoKSxEPVwiQXJyYXlcIj09dCYmTC5lbnRyaWVzfHxCO2lmKEQmJihDPXUoRC5jYWxsKG5ldyBlKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmQy5uZXh0JiYob3x8dShDKT09PUV8fChsP2woQyxFKTpzKENbU10pfHxmKEMsUyxPKSksZChDLFIsITAsITApLG8mJihnW1JdPU8pKSx2JiZoPT1UJiZCJiZCLm5hbWUhPT1UJiYoIW8mJl8/cChMLFwibmFtZVwiLFQpOih3PSEwLE09ZnVuY3Rpb24oKXtyZXR1cm4gaShCLHRoaXMpfSkpLGgpaWYoTj17dmFsdWVzOlAoVCksa2V5czptP006UCh5KSxlbnRyaWVzOlAoSSl9LEEpZm9yKGsgaW4gTikoYnx8d3x8IShrIGluIEwpKSYmZihMLGssTltrXSk7ZWxzZSByKHt0YXJnZXQ6dCxwcm90bzohMCxmb3JjZWQ6Ynx8d30sTik7cmV0dXJuIG8mJiFBfHxMW1NdPT09TXx8ZihMLFMsTSx7bmFtZTpofSksZ1t0XT1NLE59fSwxMzM4MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsaSxvLGE9big0NzI5Mykscz1uKDYwNjE0KSxjPW4oNzAxMTEpLHU9big3MDAzMCksbD1uKDc5NTE4KSxkPW4oOTgwNTIpLHA9big1MTEyKSxmPW4oMzE5MTMpLGg9cChcIml0ZXJhdG9yXCIpLGc9ITE7W10ua2V5cyYmKFwibmV4dFwiaW4obz1bXS5rZXlzKCkpPyhpPWwobChvKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKHI9aSk6Zz0hMCksIWMocil8fGEoKGZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIHJbaF0uY2FsbChlKSE9PWV9KSk/cj17fTpmJiYocj11KHIpKSxzKHJbaF0pfHxkKHIsaCwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOnIsQlVHR1lfU0FGQVJJX0lURVJBVE9SUzpnfX0sOTc0OTc6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPXt9fSwyNjI0NDpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNzQ2Nik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKGUubGVuZ3RoKX19LDU2MzM5OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQ3MjkzKSxpPW4oNjA2MTQpLG89big5MjU5NyksYT1uKDE5NzgxKSxzPW4oNzY1MzApLkNPTkZJR1VSQUJMRSxjPW4oNDI3ODgpLHU9bigyOTkwOSksbD11LmVuZm9yY2UsZD11LmdldCxwPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmPWEmJiFyKChmdW5jdGlvbigpe3JldHVybiA4IT09cCgoZnVuY3Rpb24oKXt9KSxcImxlbmd0aFwiLHt2YWx1ZTo4fSkubGVuZ3RofSkpLGg9U3RyaW5nKFN0cmluZykuc3BsaXQoXCJTdHJpbmdcIiksZz1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe1wiU3ltYm9sKFwiPT09U3RyaW5nKHQpLnNsaWNlKDAsNykmJih0PVwiW1wiK1N0cmluZyh0KS5yZXBsYWNlKC9eU3ltYm9sXFwoKFteKV0qKVxcKS8sXCIkMVwiKStcIl1cIiksbiYmbi5nZXR0ZXImJih0PVwiZ2V0IFwiK3QpLG4mJm4uc2V0dGVyJiYodD1cInNldCBcIit0KSwoIW8oZSxcIm5hbWVcIil8fHMmJmUubmFtZSE9PXQpJiYoYT9wKGUsXCJuYW1lXCIse3ZhbHVlOnQsY29uZmlndXJhYmxlOiEwfSk6ZS5uYW1lPXQpLGYmJm4mJm8obixcImFyaXR5XCIpJiZlLmxlbmd0aCE9PW4uYXJpdHkmJnAoZSxcImxlbmd0aFwiLHt2YWx1ZTpuLmFyaXR5fSk7dHJ5e24mJm8obixcImNvbnN0cnVjdG9yXCIpJiZuLmNvbnN0cnVjdG9yP2EmJnAoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pOmUucHJvdG90eXBlJiYoZS5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChpKXt9dmFyIHI9bChlKTtyZXR1cm4gbyhyLFwic291cmNlXCIpfHwoci5zb3VyY2U9aC5qb2luKFwic3RyaW5nXCI9PXR5cGVvZiB0P3Q6XCJcIikpLGV9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1nKChmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpJiZkKHRoaXMpLnNvdXJjZXx8Yyh0aGlzKX0pLFwidG9TdHJpbmdcIil9LDc0NzU4OmZ1bmN0aW9uKGUpe3ZhciB0PU1hdGguY2VpbCxuPU1hdGguZmxvb3I7ZS5leHBvcnRzPU1hdGgudHJ1bmN8fGZ1bmN0aW9uKGUpe3ZhciByPStlO3JldHVybihyPjA/bjp0KShyKX19LDcwMDMwOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPW4oMTk2NzApLG89bigzNjA0OCksYT1uKDgwNzQ4KSxzPW4oMzUwMSksYz1uKDYwNDkwKSx1PW4oODAzMTcpLGw9big2MjAwKSxkPWwoXCJJRV9QUk9UT1wiKSxwPWZ1bmN0aW9uKCl7fSxmPWZ1bmN0aW9uKGUpe3JldHVyblwiPHNjcmlwdD5cIitlK1wiPC9cIitcInNjcmlwdD5cIn0saD1mdW5jdGlvbihlKXtlLndyaXRlKGYoXCJcIikpLGUuY2xvc2UoKTt2YXIgdD1lLnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIGU9bnVsbCx0fSxnPWZ1bmN0aW9uKCl7dHJ5e3I9bmV3IEFjdGl2ZVhPYmplY3QoXCJodG1sZmlsZVwiKX1jYXRjaCh0KXt9Zz1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuZG9tYWluJiZyP2gocik6ZnVuY3Rpb24oKXt2YXIgZSx0PXUoXCJpZnJhbWVcIik7cmV0dXJuIHQuc3R5bGUuZGlzcGxheT1cIm5vbmVcIixjLmFwcGVuZENoaWxkKHQpLHQuc3JjPVN0cmluZyhcImphdmFzY3JpcHQ6XCIpLChlPXQuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLGUud3JpdGUoZihcImRvY3VtZW50LkY9T2JqZWN0XCIpKSxlLmNsb3NlKCksZS5GfSgpOmgocik7Zm9yKHZhciBlPWEubGVuZ3RoO2UtLTspZGVsZXRlIGcucHJvdG90eXBlW2FbZV1dO3JldHVybiBnKCl9O3NbZF09ITAsZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGUsdCl7dmFyIG47cmV0dXJuIG51bGwhPT1lPyhwLnByb3RvdHlwZT1pKGUpLG49bmV3IHAscC5wcm90b3R5cGU9bnVsbCxuW2RdPWUpOm49ZygpLHZvaWQgMD09PXQ/bjpvLmYobix0KX19LDM2MDQ4OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE5NzgxKSxpPW4oMzM1Myksbz1uKDMwNzApLGE9bigxOTY3MCkscz1uKDQ1NjU2KSxjPW4oODE5NTYpO3QuZj1yJiYhaT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbihlLHQpe2EoZSk7Zm9yKHZhciBuLHI9cyh0KSxpPWModCksdT1pLmxlbmd0aCxsPTA7dT5sOylvLmYoZSxuPWlbbCsrXSxyW25dKTtyZXR1cm4gZX19LDMwNzA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTk3ODEpLGk9big2NDY2NCksbz1uKDMzNTMpLGE9bigxOTY3MCkscz1uKDM0OTQ4KSxjPVR5cGVFcnJvcix1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZD1cImVudW1lcmFibGVcIixwPVwiY29uZmlndXJhYmxlXCIsZj1cIndyaXRhYmxlXCI7dC5mPXI/bz9mdW5jdGlvbihlLHQsbil7aWYoYShlKSx0PXModCksYShuKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSYmXCJwcm90b3R5cGVcIj09PXQmJlwidmFsdWVcImluIG4mJmYgaW4gbiYmIW4ud3JpdGFibGUpe3ZhciByPWwoZSx0KTtyJiZyLndyaXRhYmxlJiYoZVt0XT1uLnZhbHVlLG49e2NvbmZpZ3VyYWJsZTpwIGluIG4/bi5jb25maWd1cmFibGU6ci5jb25maWd1cmFibGUsZW51bWVyYWJsZTpkIGluIG4/bi5lbnVtZXJhYmxlOnIuZW51bWVyYWJsZSx3cml0YWJsZTohMX0pfXJldHVybiB1KGUsdCxuKX06dTpmdW5jdGlvbihlLHQsbil7aWYoYShlKSx0PXModCksYShuKSxpKXRyeXtyZXR1cm4gdShlLHQsbil9Y2F0Y2gocil7fWlmKFwiZ2V0XCJpbiBufHxcInNldFwiaW4gbil0aHJvdyBjKFwiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWRcIik7cmV0dXJuXCJ2YWx1ZVwiaW4gbiYmKGVbdF09bi52YWx1ZSksZX19LDMxMjM2OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE5NzgxKSxpPW4oNDY5MTYpLG89big1NTI5NiksYT1uKDc5MTE0KSxzPW4oNDU2NTYpLGM9bigzNDk0OCksdT1uKDkyNTk3KSxsPW4oNjQ2NjQpLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt0LmY9cj9kOmZ1bmN0aW9uKGUsdCl7aWYoZT1zKGUpLHQ9Yyh0KSxsKXRyeXtyZXR1cm4gZChlLHQpfWNhdGNoKG4pe31pZih1KGUsdCkpcmV0dXJuIGEoIWkoby5mLGUsdCksZVt0XSl9fSw4MDA2OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE2MzI0KSxpPW4oODA3NDgpLmNvbmNhdChcImxlbmd0aFwiLFwicHJvdG90eXBlXCIpO3QuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSxpKX19LDI1MTgxOmZ1bmN0aW9uKGUsdCl7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDc5NTE4OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDkyNTk3KSxpPW4oNjA2MTQpLG89big0NzkwOCksYT1uKDYyMDApLHM9big0OTkyMCksYz1hKFwiSUVfUFJPVE9cIiksdT1PYmplY3QsbD11LnByb3RvdHlwZTtlLmV4cG9ydHM9cz91LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3ZhciB0PW8oZSk7aWYocih0LGMpKXJldHVybiB0W2NdO3ZhciBuPXQuY29uc3RydWN0b3I7cmV0dXJuIGkobikmJnQgaW5zdGFuY2VvZiBuP24ucHJvdG90eXBlOnQgaW5zdGFuY2VvZiB1P2w6bnVsbH19LDQ3OTc2OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3MDIpO2UuZXhwb3J0cz1yKHt9LmlzUHJvdG90eXBlT2YpfSwxNjMyNDpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNzAyKSxpPW4oOTI1OTcpLG89big0NTY1NiksYT1uKDQxMzE4KS5pbmRleE9mLHM9bigzNTAxKSxjPXIoW10ucHVzaCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1vKGUpLHU9MCxsPVtdO2ZvcihuIGluIHIpIWkocyxuKSYmaShyLG4pJiZjKGwsbik7Zm9yKDt0Lmxlbmd0aD51OylpKHIsbj10W3UrK10pJiYofmEobCxuKXx8YyhsLG4pKTtyZXR1cm4gbH19LDgxOTU2OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE2MzI0KSxpPW4oODA3NDgpO2UuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSxpKX19LDU1Mjk2OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49e30ucHJvcGVydHlJc0VudW1lcmFibGUscj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGk9ciYmIW4uY2FsbCh7MToyfSwxKTt0LmY9aT9mdW5jdGlvbihlKXt2YXIgdD1yKHRoaXMsZSk7cmV0dXJuISF0JiZ0LmVudW1lcmFibGV9Om59LDI3Njc0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3MDIpLGk9bigxOTY3MCksbz1uKDk2MDc3KTtlLmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoXCJfX3Byb3RvX19cImlue30/ZnVuY3Rpb24oKXt2YXIgZSx0PSExLG49e307dHJ5eyhlPXIoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLFwiX19wcm90b19fXCIpLnNldCkpKG4sW10pLHQ9biBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKGEpe31yZXR1cm4gZnVuY3Rpb24obixyKXtyZXR1cm4gaShuKSxvKHIpLHQ/ZShuLHIpOm4uX19wcm90b19fPXIsbn19KCk6dm9pZCAwKX0sOTIxNDA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDY5MTYpLGk9big2MDYxNCksbz1uKDcwMTExKSxhPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixzO2lmKFwic3RyaW5nXCI9PT10JiZpKG49ZS50b1N0cmluZykmJiFvKHM9cihuLGUpKSlyZXR1cm4gcztpZihpKG49ZS52YWx1ZU9mKSYmIW8ocz1yKG4sZSkpKXJldHVybiBzO2lmKFwic3RyaW5nXCIhPT10JiZpKG49ZS50b1N0cmluZykmJiFvKHM9cihuLGUpKSlyZXR1cm4gczt0aHJvdyBhKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpfX0sNTM4ODc6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzUwMDUpLGk9bigxNzAyKSxvPW4oODAwNiksYT1uKDI1MTgxKSxzPW4oMTk2NzApLGM9aShbXS5jb25jYXQpO2UuZXhwb3J0cz1yKFwiUmVmbGVjdFwiLFwib3duS2V5c1wiKXx8ZnVuY3Rpb24oZSl7dmFyIHQ9by5mKHMoZSkpLG49YS5mO3JldHVybiBuP2ModCxuKGUpKTp0fX0sNDA4NTc6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTc4NTQpO2UuZXhwb3J0cz1yfSw4NDQ4ODpmdW5jdGlvbihlLHQsbil7dmFyIHI9big2ODU1NCksaT1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHIoZSkpdGhyb3cgaShcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiK2UpO3JldHVybiBlfX0sNTgwMDM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzA3MCkuZixpPW4oOTI1OTcpLG89big1MTEyKShcInRvU3RyaW5nVGFnXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7ZSYmIW4mJihlPWUucHJvdG90eXBlKSxlJiYhaShlLG8pJiZyKGUsbyx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOnR9KX19LDYyMDA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNzIzMDkpLGk9big2OTcxMSksbz1yKFwia2V5c1wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG9bZV18fChvW2VdPWkoZSkpfX0sNTQ2NTpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNzg1NCksaT1uKDEzMDcyKSxvPVwiX19jb3JlLWpzX3NoYXJlZF9fXCIsYT1yW29dfHxpKG8se30pO2UuZXhwb3J0cz1hfSw3MjMwOTpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigzMTkxMyksaT1uKDU0NjUpOyhlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaVtlXXx8KGlbZV09dm9pZCAwIT09dD90Ont9KX0pKFwidmVyc2lvbnNcIixbXSkucHVzaCh7dmVyc2lvbjpcIjMuMjYuMVwiLG1vZGU6cj9cInB1cmVcIjpcImdsb2JhbFwiLGNvcHlyaWdodDpcIlxceGE5IDIwMTQtMjAyMiBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KVwiLGxpY2Vuc2U6XCJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjI2LjEvTElDRU5TRVwiLHNvdXJjZTpcImh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzXCJ9KX0sMzYyOTM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNzM5MiksaT1uKDQ3MjkzKTtlLmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhaSgoZnVuY3Rpb24oKXt2YXIgZT1TeW1ib2woKTtyZXR1cm4hU3RyaW5nKGUpfHwhKE9iamVjdChlKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZyJiZyPDQxfSkpfSw1MTQwMDpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxOTMwMyksaT1NYXRoLm1heCxvPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPXIoZSk7cmV0dXJuIG48MD9pKG4rdCwwKTpvKG4sdCl9fSw0NTY1NjpmdW5jdGlvbihlLHQsbil7dmFyIHI9big2ODM2MSksaT1uKDg0NDg4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoaShlKSl9fSwxOTMwMzpmdW5jdGlvbihlLHQsbil7dmFyIHI9big3NDc1OCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PStlO3JldHVybiB0IT09dHx8MD09PXQ/MDpyKHQpfX0sMTc0NjY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTkzMDMpLGk9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlPjA/aShyKGUpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSw0NzkwODpmdW5jdGlvbihlLHQsbil7dmFyIHI9big4NDQ4OCksaT1PYmplY3Q7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKHIoZSkpfX0sNTc1OTM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDY5MTYpLGk9big3MDExMSksbz1uKDUyMTkwKSxhPW4oNTgxNzMpLHM9big5MjE0MCksYz1uKDUxMTIpLHU9VHlwZUVycm9yLGw9YyhcInRvUHJpbWl0aXZlXCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCFpKGUpfHxvKGUpKXJldHVybiBlO3ZhciBuLGM9YShlLGwpO2lmKGMpe2lmKHZvaWQgMD09PXQmJih0PVwiZGVmYXVsdFwiKSxuPXIoYyxlLHQpLCFpKG4pfHxvKG4pKXJldHVybiBuO3Rocm93IHUoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIil9cmV0dXJuIHZvaWQgMD09PXQmJih0PVwibnVtYmVyXCIpLHMoZSx0KX19LDM0OTQ4OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDU3NTkzKSxpPW4oNTIxOTApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1yKGUsXCJzdHJpbmdcIik7cmV0dXJuIGkodCk/dDp0K1wiXCJ9fSw1MTY5NDpmdW5jdGlvbihlLHQsbil7dmFyIHI9e307cltuKDUxMTIpKFwidG9TdHJpbmdUYWdcIildPVwielwiLGUuZXhwb3J0cz1cIltvYmplY3Qgel1cIj09PVN0cmluZyhyKX0sNjYzMzA6ZnVuY3Rpb24oZSl7dmFyIHQ9U3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIHQoZSl9Y2F0Y2gobil7cmV0dXJuXCJPYmplY3RcIn19fSw2OTcxMTpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNzAyKSxpPTAsbz1NYXRoLnJhbmRvbSgpLGE9cigxLi50b1N0cmluZyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVyblwiU3ltYm9sKFwiKyh2b2lkIDA9PT1lP1wiXCI6ZSkrXCIpX1wiK2EoKytpK28sMzYpfX0sNDMzMDc6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzYyOTMpO2UuZXhwb3J0cz1yJiYhU3ltYm9sLnNoYW0mJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3J9LDMzNTM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTk3ODEpLGk9big0NzI5Myk7ZS5leHBvcnRzPXImJmkoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksXCJwcm90b3R5cGVcIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KSl9LDk0ODExOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3ODU0KSxpPW4oNjA2MTQpLG89ci5XZWFrTWFwO2UuZXhwb3J0cz1pKG8pJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKG8pKX0sNTExMjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigxNzg1NCksaT1uKDcyMzA5KSxvPW4oOTI1OTcpLGE9big2OTcxMSkscz1uKDM2MjkzKSxjPW4oNDMzMDcpLHU9aShcIndrc1wiKSxsPXIuU3ltYm9sLGQ9bCYmbC5mb3IscD1jP2w6bCYmbC53aXRob3V0U2V0dGVyfHxhO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighbyh1LGUpfHwhcyYmXCJzdHJpbmdcIiE9dHlwZW9mIHVbZV0pe3ZhciB0PVwiU3ltYm9sLlwiK2U7cyYmbyhsLGUpP3VbZV09bFtlXTp1W2VdPWMmJmQ/ZCh0KTpwKHQpfXJldHVybiB1W2VdfX0sNjY5OTI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNDU2NTYpLGk9big1MTIyMyksbz1uKDk3NDk3KSxhPW4oMjk5MDkpLHM9bigzMDcwKS5mLGM9big1MTY1NiksdT1uKDc2MTc4KSxsPW4oMzE5MTMpLGQ9bigxOTc4MSkscD1cIkFycmF5IEl0ZXJhdG9yXCIsZj1hLnNldCxoPWEuZ2V0dGVyRm9yKHApO2UuZXhwb3J0cz1jKEFycmF5LFwiQXJyYXlcIiwoZnVuY3Rpb24oZSx0KXtmKHRoaXMse3R5cGU6cCx0YXJnZXQ6cihlKSxpbmRleDowLGtpbmQ6dH0pfSksKGZ1bmN0aW9uKCl7dmFyIGU9aCh0aGlzKSx0PWUudGFyZ2V0LG49ZS5raW5kLHI9ZS5pbmRleCsrO3JldHVybiF0fHxyPj10Lmxlbmd0aD8oZS50YXJnZXQ9dm9pZCAwLHUodm9pZCAwLCEwKSk6dShcImtleXNcIj09bj9yOlwidmFsdWVzXCI9PW4/dFtyXTpbcix0W3JdXSwhMSl9KSxcInZhbHVlc1wiKTt2YXIgZz1vLkFyZ3VtZW50cz1vLkFycmF5O2lmKGkoXCJrZXlzXCIpLGkoXCJ2YWx1ZXNcIiksaShcImVudHJpZXNcIiksIWwmJmQmJlwidmFsdWVzXCIhPT1nLm5hbWUpdHJ5e3MoZyxcIm5hbWVcIix7dmFsdWU6XCJ2YWx1ZXNcIn0pfWNhdGNoKG0pe319LDM4NTU5OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDgyMTA5KSxpPW4oMjA0MDgpLG89big4NjEzNSk7cih7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMH0se2Zyb21FbnRyaWVzOmZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBpKGUsKGZ1bmN0aW9uKGUsbil7byh0LGUsbil9KSx7QVNfRU5UUklFUzohMH0pLHR9fSl9LDMzOTQ4OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDE3ODU0KSxpPW4oNDgzMjQpLG89big5ODUwOSksYT1uKDY2OTkyKSxzPW4oNjg4ODApLGM9big1MTEyKSx1PWMoXCJpdGVyYXRvclwiKSxsPWMoXCJ0b1N0cmluZ1RhZ1wiKSxkPWEudmFsdWVzLHA9ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihlW3VdIT09ZCl0cnl7cyhlLHUsZCl9Y2F0Y2gocil7ZVt1XT1kfWlmKGVbbF18fHMoZSxsLHQpLGlbdF0pZm9yKHZhciBuIGluIGEpaWYoZVtuXSE9PWFbbl0pdHJ5e3MoZSxuLGFbbl0pfWNhdGNoKHIpe2Vbbl09YVtuXX19fTtmb3IodmFyIGYgaW4gaSlwKHJbZl0mJnJbZl0ucHJvdG90eXBlLGYpO3AobyxcIkRPTVRva2VuTGlzdFwiKX0sNDA1OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDQwNDU0KTtuKDMzOTQ4KSxlLmV4cG9ydHM9cn0sMjc0ODQ6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9MWUzLHQ9NmU0LG49MzZlNSxyPVwibWlsbGlzZWNvbmRcIixpPVwic2Vjb25kXCIsbz1cIm1pbnV0ZVwiLGE9XCJob3VyXCIscz1cImRheVwiLGM9XCJ3ZWVrXCIsdT1cIm1vbnRoXCIsbD1cInF1YXJ0ZXJcIixkPVwieWVhclwiLHA9XCJkYXRlXCIsZj1cIkludmFsaWQgRGF0ZVwiLGg9L14oXFxkezR9KVstL10/KFxcZHsxLDJ9KT9bLS9dPyhcXGR7MCwyfSlbVHRcXHNdKihcXGR7MSwyfSk/Oj8oXFxkezEsMn0pPzo/KFxcZHsxLDJ9KT9bLjpdPyhcXGQrKT8kLyxnPS9cXFsoW15cXF1dKyldfFl7MSw0fXxNezEsNH18RHsxLDJ9fGR7MSw0fXxIezEsMn18aHsxLDJ9fGF8QXxtezEsMn18c3sxLDJ9fFp7MSwyfXxTU1MvZyxtPXtuYW1lOlwiZW5cIix3ZWVrZGF5czpcIlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5XCIuc3BsaXQoXCJfXCIpLG1vbnRoczpcIkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXJcIi5zcGxpdChcIl9cIiksb3JkaW5hbDpmdW5jdGlvbihlKXt2YXIgdD1bXCJ0aFwiLFwic3RcIixcIm5kXCIsXCJyZFwiXSxuPWUlMTAwO3JldHVyblwiW1wiK2UrKHRbKG4tMjApJTEwXXx8dFtuXXx8dFswXSkrXCJdXCJ9fSx2PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TdHJpbmcoZSk7cmV0dXJuIXJ8fHIubGVuZ3RoPj10P2U6XCJcIitBcnJheSh0KzEtci5sZW5ndGgpLmpvaW4obikrZX0sXz17czp2LHo6ZnVuY3Rpb24oZSl7dmFyIHQ9LWUudXRjT2Zmc2V0KCksbj1NYXRoLmFicyh0KSxyPU1hdGguZmxvb3Iobi82MCksaT1uJTYwO3JldHVybih0PD0wP1wiK1wiOlwiLVwiKSt2KHIsMixcIjBcIikrXCI6XCIrdihpLDIsXCIwXCIpfSxtOmZ1bmN0aW9uIGUodCxuKXtpZih0LmRhdGUoKTxuLmRhdGUoKSlyZXR1cm4tZShuLHQpO3ZhciByPTEyKihuLnllYXIoKS10LnllYXIoKSkrKG4ubW9udGgoKS10Lm1vbnRoKCkpLGk9dC5jbG9uZSgpLmFkZChyLHUpLG89bi1pPDAsYT10LmNsb25lKCkuYWRkKHIrKG8/LTE6MSksdSk7cmV0dXJuKygtKHIrKG4taSkvKG8/aS1hOmEtaSkpfHwwKX0sYTpmdW5jdGlvbihlKXtyZXR1cm4gZTwwP01hdGguY2VpbChlKXx8MDpNYXRoLmZsb29yKGUpfSxwOmZ1bmN0aW9uKGUpe3JldHVybntNOnUseTpkLHc6YyxkOnMsRDpwLGg6YSxtOm8sczppLG1zOnIsUTpsfVtlXXx8U3RyaW5nKGV8fFwiXCIpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvcyQvLFwiXCIpfSx1OmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lfX0sRT1cImVuXCIsYj17fTtiW0VdPW07dmFyIFM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBPfSx5PWZ1bmN0aW9uIGUodCxuLHIpe3ZhciBpO2lmKCF0KXJldHVybiBFO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXt2YXIgbz10LnRvTG93ZXJDYXNlKCk7YltvXSYmKGk9byksbiYmKGJbb109bixpPW8pO3ZhciBhPXQuc3BsaXQoXCItXCIpO2lmKCFpJiZhLmxlbmd0aD4xKXJldHVybiBlKGFbMF0pfWVsc2V7dmFyIHM9dC5uYW1lO2Jbc109dCxpPXN9cmV0dXJuIXImJmkmJihFPWkpLGl8fCFyJiZFfSxUPWZ1bmN0aW9uKGUsdCl7aWYoUyhlKSlyZXR1cm4gZS5jbG9uZSgpO3ZhciBuPVwib2JqZWN0XCI9PXR5cGVvZiB0P3Q6e307cmV0dXJuIG4uZGF0ZT1lLG4uYXJncz1hcmd1bWVudHMsbmV3IE8obil9LEk9XztJLmw9eSxJLmk9UyxJLnc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVChlLHtsb2NhbGU6dC4kTCx1dGM6dC4kdSx4OnQuJHgsJG9mZnNldDp0LiRvZmZzZXR9KX07dmFyIE89ZnVuY3Rpb24oKXtmdW5jdGlvbiBtKGUpe3RoaXMuJEw9eShlLmxvY2FsZSxudWxsLCEwKSx0aGlzLnBhcnNlKGUpfXZhciB2PW0ucHJvdG90eXBlO3JldHVybiB2LnBhcnNlPWZ1bmN0aW9uKGUpe3RoaXMuJGQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRlLG49ZS51dGM7aWYobnVsbD09PXQpcmV0dXJuIG5ldyBEYXRlKE5hTik7aWYoSS51KHQpKXJldHVybiBuZXcgRGF0ZTtpZih0IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUodCk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJiEvWiQvaS50ZXN0KHQpKXt2YXIgcj10Lm1hdGNoKGgpO2lmKHIpe3ZhciBpPXJbMl0tMXx8MCxvPShyWzddfHxcIjBcIikuc3Vic3RyaW5nKDAsMyk7cmV0dXJuIG4/bmV3IERhdGUoRGF0ZS5VVEMoclsxXSxpLHJbM118fDEscls0XXx8MCxyWzVdfHwwLHJbNl18fDAsbykpOm5ldyBEYXRlKHJbMV0saSxyWzNdfHwxLHJbNF18fDAscls1XXx8MCxyWzZdfHwwLG8pfX1yZXR1cm4gbmV3IERhdGUodCl9KGUpLHRoaXMuJHg9ZS54fHx7fSx0aGlzLmluaXQoKX0sdi5pbml0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy4kZDt0aGlzLiR5PWUuZ2V0RnVsbFllYXIoKSx0aGlzLiRNPWUuZ2V0TW9udGgoKSx0aGlzLiREPWUuZ2V0RGF0ZSgpLHRoaXMuJFc9ZS5nZXREYXkoKSx0aGlzLiRIPWUuZ2V0SG91cnMoKSx0aGlzLiRtPWUuZ2V0TWludXRlcygpLHRoaXMuJHM9ZS5nZXRTZWNvbmRzKCksdGhpcy4kbXM9ZS5nZXRNaWxsaXNlY29uZHMoKX0sdi4kdXRpbHM9ZnVuY3Rpb24oKXtyZXR1cm4gSX0sdi5pc1ZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLiRkLnRvU3RyaW5nKCk9PT1mKX0sdi5pc1NhbWU9ZnVuY3Rpb24oZSx0KXt2YXIgbj1UKGUpO3JldHVybiB0aGlzLnN0YXJ0T2YodCk8PW4mJm48PXRoaXMuZW5kT2YodCl9LHYuaXNBZnRlcj1mdW5jdGlvbihlLHQpe3JldHVybiBUKGUpPHRoaXMuc3RhcnRPZih0KX0sdi5pc0JlZm9yZT1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmVuZE9mKHQpPFQoZSl9LHYuJGc9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBJLnUoZSk/dGhpc1t0XTp0aGlzLnNldChuLGUpfSx2LnVuaXg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSx2LnZhbHVlT2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC5nZXRUaW1lKCl9LHYuc3RhcnRPZj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj0hIUkudSh0KXx8dCxsPUkucChlKSxmPWZ1bmN0aW9uKGUsdCl7dmFyIGk9SS53KG4uJHU/RGF0ZS5VVEMobi4keSx0LGUpOm5ldyBEYXRlKG4uJHksdCxlKSxuKTtyZXR1cm4gcj9pOmkuZW5kT2Yocyl9LGg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSS53KG4udG9EYXRlKClbZV0uYXBwbHkobi50b0RhdGUoXCJzXCIpLChyP1swLDAsMCwwXTpbMjMsNTksNTksOTk5XSkuc2xpY2UodCkpLG4pfSxnPXRoaXMuJFcsbT10aGlzLiRNLHY9dGhpcy4kRCxfPVwic2V0XCIrKHRoaXMuJHU/XCJVVENcIjpcIlwiKTtzd2l0Y2gobCl7Y2FzZSBkOnJldHVybiByP2YoMSwwKTpmKDMxLDExKTtjYXNlIHU6cmV0dXJuIHI/ZigxLG0pOmYoMCxtKzEpO2Nhc2UgYzp2YXIgRT10aGlzLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDAsYj0oZzxFP2crNzpnKS1FO3JldHVybiBmKHI/di1iOnYrKDYtYiksbSk7Y2FzZSBzOmNhc2UgcDpyZXR1cm4gaChfK1wiSG91cnNcIiwwKTtjYXNlIGE6cmV0dXJuIGgoXytcIk1pbnV0ZXNcIiwxKTtjYXNlIG86cmV0dXJuIGgoXytcIlNlY29uZHNcIiwyKTtjYXNlIGk6cmV0dXJuIGgoXytcIk1pbGxpc2Vjb25kc1wiLDMpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuY2xvbmUoKX19LHYuZW5kT2Y9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc3RhcnRPZihlLCExKX0sdi4kc2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG4sYz1JLnAoZSksbD1cInNldFwiKyh0aGlzLiR1P1wiVVRDXCI6XCJcIiksZj0obj17fSxuW3NdPWwrXCJEYXRlXCIsbltwXT1sK1wiRGF0ZVwiLG5bdV09bCtcIk1vbnRoXCIsbltkXT1sK1wiRnVsbFllYXJcIixuW2FdPWwrXCJIb3Vyc1wiLG5bb109bCtcIk1pbnV0ZXNcIixuW2ldPWwrXCJTZWNvbmRzXCIsbltyXT1sK1wiTWlsbGlzZWNvbmRzXCIsbilbY10saD1jPT09cz90aGlzLiREKyh0LXRoaXMuJFcpOnQ7aWYoYz09PXV8fGM9PT1kKXt2YXIgZz10aGlzLmNsb25lKCkuc2V0KHAsMSk7Zy4kZFtmXShoKSxnLmluaXQoKSx0aGlzLiRkPWcuc2V0KHAsTWF0aC5taW4odGhpcy4kRCxnLmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIGYmJnRoaXMuJGRbZl0oaCk7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXN9LHYuc2V0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuY2xvbmUoKS4kc2V0KGUsdCl9LHYuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzW0kucChlKV0oKX0sdi5hZGQ9ZnVuY3Rpb24ocixsKXt2YXIgcCxmPXRoaXM7cj1OdW1iZXIocik7dmFyIGg9SS5wKGwpLGc9ZnVuY3Rpb24oZSl7dmFyIHQ9VChmKTtyZXR1cm4gSS53KHQuZGF0ZSh0LmRhdGUoKStNYXRoLnJvdW5kKGUqcikpLGYpfTtpZihoPT09dSlyZXR1cm4gdGhpcy5zZXQodSx0aGlzLiRNK3IpO2lmKGg9PT1kKXJldHVybiB0aGlzLnNldChkLHRoaXMuJHkrcik7aWYoaD09PXMpcmV0dXJuIGcoMSk7aWYoaD09PWMpcmV0dXJuIGcoNyk7dmFyIG09KHA9e30scFtvXT10LHBbYV09bixwW2ldPWUscClbaF18fDEsdj10aGlzLiRkLmdldFRpbWUoKStyKm07cmV0dXJuIEkudyh2LHRoaXMpfSx2LnN1YnRyYWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkKC0xKmUsdCl9LHYuZm9ybWF0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj10aGlzLiRsb2NhbGUoKTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG4uaW52YWxpZERhdGV8fGY7dmFyIHI9ZXx8XCJZWVlZLU1NLUREVEhIOm1tOnNzWlwiLGk9SS56KHRoaXMpLG89dGhpcy4kSCxhPXRoaXMuJG0scz10aGlzLiRNLGM9bi53ZWVrZGF5cyx1PW4ubW9udGhzLGw9ZnVuY3Rpb24oZSxuLGksbyl7cmV0dXJuIGUmJihlW25dfHxlKHQscikpfHxpW25dLnNsaWNlKDAsbyl9LGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIEkucyhvJTEyfHwxMixlLFwiMFwiKX0scD1uLm1lcmlkaWVtfHxmdW5jdGlvbihlLHQsbil7dmFyIHI9ZTwxMj9cIkFNXCI6XCJQTVwiO3JldHVybiBuP3IudG9Mb3dlckNhc2UoKTpyfSxoPXtZWTpTdHJpbmcodGhpcy4keSkuc2xpY2UoLTIpLFlZWVk6dGhpcy4keSxNOnMrMSxNTTpJLnMocysxLDIsXCIwXCIpLE1NTTpsKG4ubW9udGhzU2hvcnQscyx1LDMpLE1NTU06bCh1LHMpLEQ6dGhpcy4kRCxERDpJLnModGhpcy4kRCwyLFwiMFwiKSxkOlN0cmluZyh0aGlzLiRXKSxkZDpsKG4ud2Vla2RheXNNaW4sdGhpcy4kVyxjLDIpLGRkZDpsKG4ud2Vla2RheXNTaG9ydCx0aGlzLiRXLGMsMyksZGRkZDpjW3RoaXMuJFddLEg6U3RyaW5nKG8pLEhIOkkucyhvLDIsXCIwXCIpLGg6ZCgxKSxoaDpkKDIpLGE6cChvLGEsITApLEE6cChvLGEsITEpLG06U3RyaW5nKGEpLG1tOkkucyhhLDIsXCIwXCIpLHM6U3RyaW5nKHRoaXMuJHMpLHNzOkkucyh0aGlzLiRzLDIsXCIwXCIpLFNTUzpJLnModGhpcy4kbXMsMyxcIjBcIiksWjppfTtyZXR1cm4gci5yZXBsYWNlKGcsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fGhbZV18fGkucmVwbGFjZShcIjpcIixcIlwiKX0pKX0sdi51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sdi5kaWZmPWZ1bmN0aW9uKHIscCxmKXt2YXIgaCxnPUkucChwKSxtPVQociksdj0obS51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSp0LF89dGhpcy1tLEU9SS5tKHRoaXMsbSk7cmV0dXJuIEU9KGg9e30saFtkXT1FLzEyLGhbdV09RSxoW2xdPUUvMyxoW2NdPShfLXYpLzYwNDhlNSxoW3NdPShfLXYpLzg2NGU1LGhbYV09Xy9uLGhbb109Xy90LGhbaV09Xy9lLGgpW2ddfHxfLGY/RTpJLmEoRSl9LHYuZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZih1KS4kRH0sdi4kbG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIGJbdGhpcy4kTF19LHYubG9jYWxlPWZ1bmN0aW9uKGUsdCl7aWYoIWUpcmV0dXJuIHRoaXMuJEw7dmFyIG49dGhpcy5jbG9uZSgpLHI9eShlLHQsITApO3JldHVybiByJiYobi4kTD1yKSxufSx2LmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIEkudyh0aGlzLiRkLHRoaXMpfSx2LnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LHYudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSx2LnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKX0sdi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LG19KCksQT1PLnByb3RvdHlwZTtyZXR1cm4gVC5wcm90b3R5cGU9QSxbW1wiJG1zXCIscl0sW1wiJHNcIixpXSxbXCIkbVwiLG9dLFtcIiRIXCIsYV0sW1wiJFdcIixzXSxbXCIkTVwiLHVdLFtcIiR5XCIsZF0sW1wiJERcIixwXV0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7QVtlWzFdXT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy4kZyh0LGVbMF0sZVsxXSl9fSkpLFQuZXh0ZW5kPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuJGl8fChlKHQsTyxUKSxlLiRpPSEwKSxUfSxULmxvY2FsZT15LFQuaXNEYXlqcz1TLFQudW5peD1mdW5jdGlvbihlKXtyZXR1cm4gVCgxZTMqZSl9LFQuZW49YltFXSxULkxzPWIsVC5wPXt9LFR9KCl9LDE2NDY6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGUsdCxuPTFlMyxyPTZlNCxpPTM2ZTUsbz04NjRlNSxhPS9cXFsoW15cXF1dKyldfFl7MSw0fXxNezEsNH18RHsxLDJ9fGR7MSw0fXxIezEsMn18aHsxLDJ9fGF8QXxtezEsMn18c3sxLDJ9fFp7MSwyfXxTU1MvZyxzPTMxNTM2ZTYsYz0yNTkyZTYsdT0vXigtfFxcKyk/UCg/OihbLStdP1swLTksLl0qKVkpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVcpPyg/OihbLStdP1swLTksLl0qKUQpPyg/OlQoPzooWy0rXT9bMC05LC5dKilIKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilTKT8pPyQvLGw9e3llYXJzOnMsbW9udGhzOmMsZGF5czpvLGhvdXJzOmksbWludXRlczpyLHNlY29uZHM6bixtaWxsaXNlY29uZHM6MSx3ZWVrczo2MDQ4ZTV9LGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBffSxwPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbmV3IF8oZSxuLHQuJGwpfSxmPWZ1bmN0aW9uKGUpe3JldHVybiB0LnAoZSkrXCJzXCJ9LGg9ZnVuY3Rpb24oZSl7cmV0dXJuIGU8MH0sZz1mdW5jdGlvbihlKXtyZXR1cm4gaChlKT9NYXRoLmNlaWwoZSk6TWF0aC5mbG9vcihlKX0sbT1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5hYnMoZSl9LHY9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT9oKGUpP3tuZWdhdGl2ZTohMCxmb3JtYXQ6XCJcIittKGUpK3R9OntuZWdhdGl2ZTohMSxmb3JtYXQ6XCJcIitlK3R9OntuZWdhdGl2ZTohMSxmb3JtYXQ6XCJcIn19LF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBoKGUsdCxuKXt2YXIgcj10aGlzO2lmKHRoaXMuJGQ9e30sdGhpcy4kbD1uLHZvaWQgMD09PWUmJih0aGlzLiRtcz0wLHRoaXMucGFyc2VGcm9tTWlsbGlzZWNvbmRzKCkpLHQpcmV0dXJuIHAoZSpsW2YodCldLHRoaXMpO2lmKFwibnVtYmVyXCI9PXR5cGVvZiBlKXJldHVybiB0aGlzLiRtcz1lLHRoaXMucGFyc2VGcm9tTWlsbGlzZWNvbmRzKCksdGhpcztpZihcIm9iamVjdFwiPT10eXBlb2YgZSlyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ci4kZFtmKHQpXT1lW3RdfSkpLHRoaXMuY2FsTWlsbGlzZWNvbmRzKCksdGhpcztpZihcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIGk9ZS5tYXRjaCh1KTtpZihpKXt2YXIgbz1pLnNsaWNlKDIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/TnVtYmVyKGUpOjB9KSk7cmV0dXJuIHRoaXMuJGQueWVhcnM9b1swXSx0aGlzLiRkLm1vbnRocz1vWzFdLHRoaXMuJGQud2Vla3M9b1syXSx0aGlzLiRkLmRheXM9b1szXSx0aGlzLiRkLmhvdXJzPW9bNF0sdGhpcy4kZC5taW51dGVzPW9bNV0sdGhpcy4kZC5zZWNvbmRzPW9bNl0sdGhpcy5jYWxNaWxsaXNlY29uZHMoKSx0aGlzfX1yZXR1cm4gdGhpc312YXIgbT1oLnByb3RvdHlwZTtyZXR1cm4gbS5jYWxNaWxsaXNlY29uZHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJG1zPU9iamVjdC5rZXlzKHRoaXMuJGQpLnJlZHVjZSgoZnVuY3Rpb24odCxuKXtyZXR1cm4gdCsoZS4kZFtuXXx8MCkqbFtuXX0pLDApfSxtLnBhcnNlRnJvbU1pbGxpc2Vjb25kcz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuJG1zO3RoaXMuJGQueWVhcnM9ZyhlL3MpLGUlPXMsdGhpcy4kZC5tb250aHM9ZyhlL2MpLGUlPWMsdGhpcy4kZC5kYXlzPWcoZS9vKSxlJT1vLHRoaXMuJGQuaG91cnM9ZyhlL2kpLGUlPWksdGhpcy4kZC5taW51dGVzPWcoZS9yKSxlJT1yLHRoaXMuJGQuc2Vjb25kcz1nKGUvbiksZSU9bix0aGlzLiRkLm1pbGxpc2Vjb25kcz1lfSxtLnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGU9dih0aGlzLiRkLnllYXJzLFwiWVwiKSx0PXYodGhpcy4kZC5tb250aHMsXCJNXCIpLG49K3RoaXMuJGQuZGF5c3x8MDt0aGlzLiRkLndlZWtzJiYobis9Nyp0aGlzLiRkLndlZWtzKTt2YXIgcj12KG4sXCJEXCIpLGk9dih0aGlzLiRkLmhvdXJzLFwiSFwiKSxvPXYodGhpcy4kZC5taW51dGVzLFwiTVwiKSxhPXRoaXMuJGQuc2Vjb25kc3x8MDt0aGlzLiRkLm1pbGxpc2Vjb25kcyYmKGErPXRoaXMuJGQubWlsbGlzZWNvbmRzLzFlMyk7dmFyIHM9dihhLFwiU1wiKSxjPWUubmVnYXRpdmV8fHQubmVnYXRpdmV8fHIubmVnYXRpdmV8fGkubmVnYXRpdmV8fG8ubmVnYXRpdmV8fHMubmVnYXRpdmUsdT1pLmZvcm1hdHx8by5mb3JtYXR8fHMuZm9ybWF0P1wiVFwiOlwiXCIsbD0oYz9cIi1cIjpcIlwiKStcIlBcIitlLmZvcm1hdCt0LmZvcm1hdCtyLmZvcm1hdCt1K2kuZm9ybWF0K28uZm9ybWF0K3MuZm9ybWF0O3JldHVyblwiUFwiPT09bHx8XCItUFwiPT09bD9cIlAwRFwiOmx9LG0udG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKX0sbS5mb3JtYXQ9ZnVuY3Rpb24oZSl7dmFyIG49ZXx8XCJZWVlZLU1NLUREVEhIOm1tOnNzXCIscj17WTp0aGlzLiRkLnllYXJzLFlZOnQucyh0aGlzLiRkLnllYXJzLDIsXCIwXCIpLFlZWVk6dC5zKHRoaXMuJGQueWVhcnMsNCxcIjBcIiksTTp0aGlzLiRkLm1vbnRocyxNTTp0LnModGhpcy4kZC5tb250aHMsMixcIjBcIiksRDp0aGlzLiRkLmRheXMsREQ6dC5zKHRoaXMuJGQuZGF5cywyLFwiMFwiKSxIOnRoaXMuJGQuaG91cnMsSEg6dC5zKHRoaXMuJGQuaG91cnMsMixcIjBcIiksbTp0aGlzLiRkLm1pbnV0ZXMsbW06dC5zKHRoaXMuJGQubWludXRlcywyLFwiMFwiKSxzOnRoaXMuJGQuc2Vjb25kcyxzczp0LnModGhpcy4kZC5zZWNvbmRzLDIsXCIwXCIpLFNTUzp0LnModGhpcy4kZC5taWxsaXNlY29uZHMsMyxcIjBcIil9O3JldHVybiBuLnJlcGxhY2UoYSwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8U3RyaW5nKHJbZV0pfSkpfSxtLmFzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLiRtcy9sW2YoZSldfSxtLmdldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLiRtcyxuPWYoZSk7cmV0dXJuXCJtaWxsaXNlY29uZHNcIj09PW4/dCU9MWUzOnQ9XCJ3ZWVrc1wiPT09bj9nKHQvbFtuXSk6dGhpcy4kZFtuXSwwPT09dD8wOnR9LG0uYWRkPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtyZXR1cm4gcj10P2UqbFtmKHQpXTpkKGUpP2UuJG1zOnAoZSx0aGlzKS4kbXMscCh0aGlzLiRtcytyKihuPy0xOjEpLHRoaXMpfSxtLnN1YnRyYWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkKGUsdCwhMCl9LG0ubG9jYWxlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY2xvbmUoKTtyZXR1cm4gdC4kbD1lLHR9LG0uY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLiRtcyx0aGlzKX0sbS5odW1hbml6ZT1mdW5jdGlvbih0KXtyZXR1cm4gZSgpLmFkZCh0aGlzLiRtcyxcIm1zXCIpLmxvY2FsZSh0aGlzLiRsKS5mcm9tTm93KCF0KX0sbS5taWxsaXNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoXCJtaWxsaXNlY29uZHNcIil9LG0uYXNNaWxsaXNlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcyhcIm1pbGxpc2Vjb25kc1wiKX0sbS5zZWNvbmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KFwic2Vjb25kc1wiKX0sbS5hc1NlY29uZHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcyhcInNlY29uZHNcIil9LG0ubWludXRlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldChcIm1pbnV0ZXNcIil9LG0uYXNNaW51dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoXCJtaW51dGVzXCIpfSxtLmhvdXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KFwiaG91cnNcIil9LG0uYXNIb3Vycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFzKFwiaG91cnNcIil9LG0uZGF5cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldChcImRheXNcIil9LG0uYXNEYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoXCJkYXlzXCIpfSxtLndlZWtzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KFwid2Vla3NcIil9LG0uYXNXZWVrcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmFzKFwid2Vla3NcIil9LG0ubW9udGhzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0KFwibW9udGhzXCIpfSxtLmFzTW9udGhzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoXCJtb250aHNcIil9LG0ueWVhcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXQoXCJ5ZWFyc1wiKX0sbS5hc1llYXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoXCJ5ZWFyc1wiKX0saH0oKTtyZXR1cm4gZnVuY3Rpb24obixyLGkpe2U9aSx0PWkoKS4kdXRpbHMoKSxpLmR1cmF0aW9uPWZ1bmN0aW9uKGUsdCl7dmFyIG49aS5sb2NhbGUoKTtyZXR1cm4gcChlLHskbDpufSx0KX0saS5pc0R1cmF0aW9uPWQ7dmFyIG89ci5wcm90b3R5cGUuYWRkLGE9ci5wcm90b3R5cGUuc3VidHJhY3Q7ci5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGQoZSkmJihlPWUuYXNNaWxsaXNlY29uZHMoKSksby5iaW5kKHRoaXMpKGUsdCl9LHIucHJvdG90eXBlLnN1YnRyYWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGQoZSkmJihlPWUuYXNNaWxsaXNlY29uZHMoKSksYS5iaW5kKHRoaXMpKGUsdCl9fX0oKX0sNzAxNzg6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9XCJtaW51dGVcIix0PS9bKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy9nLG49LyhbKy1dfFxcZFxcZCkvZztyZXR1cm4gZnVuY3Rpb24ocixpLG8pe3ZhciBhPWkucHJvdG90eXBlO28udXRjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgaSh7ZGF0ZTplLHV0YzohMCxhcmdzOmFyZ3VtZW50c30pfSxhLnV0Yz1mdW5jdGlvbih0KXt2YXIgbj1vKHRoaXMudG9EYXRlKCkse2xvY2FsZTp0aGlzLiRMLHV0YzohMH0pO3JldHVybiB0P24uYWRkKHRoaXMudXRjT2Zmc2V0KCksZSk6bn0sYS5sb2NhbD1mdW5jdGlvbigpe3JldHVybiBvKHRoaXMudG9EYXRlKCkse2xvY2FsZTp0aGlzLiRMLHV0YzohMX0pfTt2YXIgcz1hLnBhcnNlO2EucGFyc2U9ZnVuY3Rpb24oZSl7ZS51dGMmJih0aGlzLiR1PSEwKSx0aGlzLiR1dGlscygpLnUoZS4kb2Zmc2V0KXx8KHRoaXMuJG9mZnNldD1lLiRvZmZzZXQpLHMuY2FsbCh0aGlzLGUpfTt2YXIgYz1hLmluaXQ7YS5pbml0PWZ1bmN0aW9uKCl7aWYodGhpcy4kdSl7dmFyIGU9dGhpcy4kZDt0aGlzLiR5PWUuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLiRNPWUuZ2V0VVRDTW9udGgoKSx0aGlzLiREPWUuZ2V0VVRDRGF0ZSgpLHRoaXMuJFc9ZS5nZXRVVENEYXkoKSx0aGlzLiRIPWUuZ2V0VVRDSG91cnMoKSx0aGlzLiRtPWUuZ2V0VVRDTWludXRlcygpLHRoaXMuJHM9ZS5nZXRVVENTZWNvbmRzKCksdGhpcy4kbXM9ZS5nZXRVVENNaWxsaXNlY29uZHMoKX1lbHNlIGMuY2FsbCh0aGlzKX07dmFyIHU9YS51dGNPZmZzZXQ7YS51dGNPZmZzZXQ9ZnVuY3Rpb24ocixpKXt2YXIgbz10aGlzLiR1dGlscygpLnU7aWYobyhyKSlyZXR1cm4gdGhpcy4kdT8wOm8odGhpcy4kb2Zmc2V0KT91LmNhbGwodGhpcyk6dGhpcy4kb2Zmc2V0O2lmKFwic3RyaW5nXCI9PXR5cGVvZiByJiYocj1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT1cIlwiKTt2YXIgcj1lLm1hdGNoKHQpO2lmKCFyKXJldHVybiBudWxsO3ZhciBpPShcIlwiK3JbMF0pLm1hdGNoKG4pfHxbXCItXCIsMCwwXSxvPWlbMF0sYT02MCoraVsxXSsgK2lbMl07cmV0dXJuIDA9PT1hPzA6XCIrXCI9PT1vP2E6LWF9KHIpLG51bGw9PT1yKSlyZXR1cm4gdGhpczt2YXIgYT1NYXRoLmFicyhyKTw9MTY/NjAqcjpyLHM9dGhpcztpZihpKXJldHVybiBzLiRvZmZzZXQ9YSxzLiR1PTA9PT1yLHM7aWYoMCE9PXIpe3ZhciBjPXRoaXMuJHU/dGhpcy50b0RhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpOi0xKnRoaXMudXRjT2Zmc2V0KCk7KHM9dGhpcy5sb2NhbCgpLmFkZChhK2MsZSkpLiRvZmZzZXQ9YSxzLiR4LiRsb2NhbE9mZnNldD1jfWVsc2Ugcz10aGlzLnV0YygpO3JldHVybiBzfTt2YXIgbD1hLmZvcm1hdDthLmZvcm1hdD1mdW5jdGlvbihlKXt2YXIgdD1lfHwodGhpcy4kdT9cIllZWVktTU0tRERUSEg6bW06c3NbWl1cIjpcIlwiKTtyZXR1cm4gbC5jYWxsKHRoaXMsdCl9LGEudmFsdWVPZj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuJHV0aWxzKCkudSh0aGlzLiRvZmZzZXQpPzA6dGhpcy4kb2Zmc2V0Kyh0aGlzLiR4LiRsb2NhbE9mZnNldHx8dGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpKTtyZXR1cm4gdGhpcy4kZC52YWx1ZU9mKCktNmU0KmV9LGEuaXNVVEM9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuJHV9LGEudG9JU09TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b0RhdGUoKS50b0lTT1N0cmluZygpfSxhLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9EYXRlKCkudG9VVENTdHJpbmcoKX07dmFyIGQ9YS50b0RhdGU7YS50b0RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuXCJzXCI9PT1lJiZ0aGlzLiRvZmZzZXQ/byh0aGlzLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW06c3M6U1NTXCIpKS50b0RhdGUoKTpkLmNhbGwodGhpcyl9O3ZhciBwPWEuZGlmZjthLmRpZmY9ZnVuY3Rpb24oZSx0LG4pe2lmKGUmJnRoaXMuJHU9PT1lLiR1KXJldHVybiBwLmNhbGwodGhpcyxlLHQsbik7dmFyIHI9dGhpcy5sb2NhbCgpLGk9byhlKS5sb2NhbCgpO3JldHVybiBwLmNhbGwocixpLHQsbil9fX0oKX0sMjQ0MTQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBjKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOih0PWUudmFsdWUsdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKSkudGhlbihhLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pKX0saT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaVswXSl0aHJvdyBpWzFdO3JldHVybiBpWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMobyl7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7YTspdHJ5e2lmKG49MSxyJiYoaT0yJm9bMF0/ci5yZXR1cm46b1swXT9yLnRocm93fHwoKGk9ci5yZXR1cm4pJiZpLmNhbGwociksMCk6ci5uZXh0KSYmIShpPWkuY2FsbChyLG9bMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChyPTAsaSYmKG89WzImb1swXSxpLnZhbHVlXSksb1swXSl7Y2FzZSAwOmNhc2UgMTppPW87YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOm9bMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPW9bMV0sbz1bMF07Y29udGludWU7Y2FzZSA3Om89YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPShpPWEudHJ5cykubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pJiYoNj09PW9bMF18fDI9PT1vWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1vWzBdJiYoIWl8fG9bMV0+aVswXSYmb1sxXTxpWzNdKSl7YS5sYWJlbD1vWzFdO2JyZWFrfWlmKDY9PT1vWzBdJiZhLmxhYmVsPGlbMV0pe2EubGFiZWw9aVsxXSxpPW87YnJlYWt9aWYoaSYmYS5sYWJlbDxpWzJdKXthLmxhYmVsPWlbMl0sYS5vcHMucHVzaChvKTticmVha31pWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9bz10LmNhbGwoZSxhKX1jYXRjaChzKXtvPVs2LHNdLHI9MH1maW5hbGx5e249aT0wfWlmKDUmb1swXSl0aHJvdyBvWzFdO3JldHVybnt2YWx1ZTpvWzBdP29bMV06dm9pZCAwLGRvbmU6ITB9fShbbyxzXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIG89bigzMzI0MiksYT1uKDUwNzYpO3QuYmFja09mZj1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD17fSkscih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIGkodGhpcywoZnVuY3Rpb24ocil7c3dpdGNoKHIubGFiZWwpe2Nhc2UgMDpyZXR1cm4gbj1vLmdldFNhbml0aXplZE9wdGlvbnModCksWzQsbmV3IHMoZSxuKS5leGVjdXRlKCldO2Nhc2UgMTpyZXR1cm5bMixyLnNlbnQoKV19fSkpfSkpfTt2YXIgcz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLnJlcXVlc3Q9ZSx0aGlzLm9wdGlvbnM9dCx0aGlzLmF0dGVtcHROdW1iZXI9MH1yZXR1cm4gZS5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbigpe3JldHVybiByKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gaSh0aGlzLChmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOmlmKHRoaXMuYXR0ZW1wdExpbWl0UmVhY2hlZClyZXR1cm5bMyw3XTt0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0LnRyeXMucHVzaChbMSw0LCw2XSksWzQsdGhpcy5hcHBseURlbGF5KCldO2Nhc2UgMjpyZXR1cm4gdC5zZW50KCksWzQsdGhpcy5yZXF1ZXN0KCldO2Nhc2UgMzpyZXR1cm5bMix0LnNlbnQoKV07Y2FzZSA0OnJldHVybiBlPXQuc2VudCgpLHRoaXMuYXR0ZW1wdE51bWJlcisrLFs0LHRoaXMub3B0aW9ucy5yZXRyeShlLHRoaXMuYXR0ZW1wdE51bWJlcildO2Nhc2UgNTppZighdC5zZW50KCl8fHRoaXMuYXR0ZW1wdExpbWl0UmVhY2hlZCl0aHJvdyBlO3JldHVyblszLDZdO2Nhc2UgNjpyZXR1cm5bMywwXTtjYXNlIDc6dGhyb3cgbmV3IEVycm9yKFwiU29tZXRoaW5nIHdlbnQgd3JvbmcuXCIpfX0pKX0pKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiYXR0ZW1wdExpbWl0UmVhY2hlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRlbXB0TnVtYmVyPj10aGlzLm9wdGlvbnMubnVtT2ZBdHRlbXB0c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hcHBseURlbGF5PWZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3JldHVybiBpKHRoaXMsKGZ1bmN0aW9uKGUpe3N3aXRjaChlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsYS5EZWxheUZhY3RvcnkodGhpcy5vcHRpb25zLHRoaXMuYXR0ZW1wdE51bWJlcikuYXBwbHkoKV07Y2FzZSAxOnJldHVybiBlLnNlbnQoKSxbMl19fSkpfSkpfSxlfSgpfSw3OTk2NjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdCl0Lmhhc093blByb3BlcnR5KG4pJiYoZVtuXT10W25dKX0sZSh0LG4pfTtyZXR1cm4gZnVuY3Rpb24odCxuKXtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWUodCxuKSx0LnByb3RvdHlwZT1udWxsPT09bj9PYmplY3QuY3JlYXRlKG4pOihyLnByb3RvdHlwZT1uLnByb3RvdHlwZSxuZXcgcil9fSgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gbnVsbCE9PWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiByKHQsZSksdH0obigyMTYxNykuRGVsYXkpO3QuQWx3YXlzRGVsYXk9aX0sMjE2MTc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPW4oMTY3NTUpLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuYXR0ZW1wdD0wfXJldHVybiBlLnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtyZXR1cm4gc2V0VGltZW91dCh0LGUuaml0dGVyZWREZWxheSl9KSl9LGUucHJvdG90eXBlLnNldEF0dGVtcHROdW1iZXI9ZnVuY3Rpb24oZSl7dGhpcy5hdHRlbXB0PWV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcImppdHRlcmVkRGVsYXlcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIuSml0dGVyRmFjdG9yeSh0aGlzLm9wdGlvbnMpKHRoaXMuZGVsYXkpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcImRlbGF5XCIse2dldDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucy5zdGFydGluZ0RlbGF5LHQ9dGhpcy5vcHRpb25zLnRpbWVNdWx0aXBsZSxuPXRoaXMubnVtT2ZEZWxheWVkQXR0ZW1wdHMscj1lKk1hdGgucG93KHQsbik7cmV0dXJuIE1hdGgubWluKHIsdGhpcy5vcHRpb25zLm1heERlbGF5KX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJudW1PZkRlbGF5ZWRBdHRlbXB0c1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRlbXB0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGV9KCk7dC5EZWxheT1pfSw1MDc2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1uKDIxOTU0KSxpPW4oNzk5NjYpO3QuRGVsYXlGYWN0b3J5PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoIWUuZGVsYXlGaXJzdEF0dGVtcHQpcmV0dXJuIG5ldyByLlNraXBGaXJzdERlbGF5KGUpO3JldHVybiBuZXcgaS5BbHdheXNEZWxheShlKX0oZSk7cmV0dXJuIG4uc2V0QXR0ZW1wdE51bWJlcih0KSxufX0sMjE5NTQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19leHRlbmRzfHxmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKGVbbl09dFtuXSl9LGUodCxuKX07cmV0dXJuIGZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9dH1lKHQsbiksdC5wcm90b3R5cGU9bnVsbD09PW4/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0oKSxpPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiBjKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOih0PWUudmFsdWUsdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKSkudGhlbihhLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pKX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaVswXSl0aHJvdyBpWzFdO3JldHVybiBpWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG89e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMobyl7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihvKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7YTspdHJ5e2lmKG49MSxyJiYoaT0yJm9bMF0/ci5yZXR1cm46b1swXT9yLnRocm93fHwoKGk9ci5yZXR1cm4pJiZpLmNhbGwociksMCk6ci5uZXh0KSYmIShpPWkuY2FsbChyLG9bMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChyPTAsaSYmKG89WzImb1swXSxpLnZhbHVlXSksb1swXSl7Y2FzZSAwOmNhc2UgMTppPW87YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOm9bMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPW9bMV0sbz1bMF07Y29udGludWU7Y2FzZSA3Om89YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPShpPWEudHJ5cykubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pJiYoNj09PW9bMF18fDI9PT1vWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1vWzBdJiYoIWl8fG9bMV0+aVswXSYmb1sxXTxpWzNdKSl7YS5sYWJlbD1vWzFdO2JyZWFrfWlmKDY9PT1vWzBdJiZhLmxhYmVsPGlbMV0pe2EubGFiZWw9aVsxXSxpPW87YnJlYWt9aWYoaSYmYS5sYWJlbDxpWzJdKXthLmxhYmVsPWlbMl0sYS5vcHMucHVzaChvKTticmVha31pWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9bz10LmNhbGwoZSxhKX1jYXRjaChzKXtvPVs2LHNdLHI9MH1maW5hbGx5e249aT0wfWlmKDUmb1swXSl0aHJvdyBvWzFdO3JldHVybnt2YWx1ZTpvWzBdP29bMV06dm9pZCAwLGRvbmU6ITB9fShbbyxzXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIGE9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3JldHVybiBudWxsIT09ZSYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHIodCxlKSx0LnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4gbyh0aGlzLChmdW5jdGlvbih0KXtyZXR1cm5bMiwhIXRoaXMuaXNGaXJzdEF0dGVtcHR8fGUucHJvdG90eXBlLmFwcGx5LmNhbGwodGhpcyldfSkpfSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJpc0ZpcnN0QXR0ZW1wdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuYXR0ZW1wdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJudW1PZkRlbGF5ZWRBdHRlbXB0c1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRlbXB0LTF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdH0obigyMTYxNykuRGVsYXkpO3QuU2tpcEZpcnN0RGVsYXk9YX0sNTk4MTM6ZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmZ1bGxKaXR0ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5yYW5kb20oKSplO3JldHVybiBNYXRoLnJvdW5kKHQpfX0sMTY3NTU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPW4oNTk4MTMpLGk9bigyMDQ3OCk7dC5KaXR0ZXJGYWN0b3J5PWZ1bmN0aW9uKGUpe3JldHVyblwiZnVsbFwiPT09ZS5qaXR0ZXI/ci5mdWxsSml0dGVyOmkubm9KaXR0ZXJ9fSwyMDQ3ODpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQubm9KaXR0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fSwzMzI0MjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIG49T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9e2RlbGF5Rmlyc3RBdHRlbXB0OiExLGppdHRlcjpcIm5vbmVcIixtYXhEZWxheToxLzAsbnVtT2ZBdHRlbXB0czoxMCxyZXRyeTpmdW5jdGlvbigpe3JldHVybiEwfSxzdGFydGluZ0RlbGF5OjEwMCx0aW1lTXVsdGlwbGU6Mn07dC5nZXRTYW5pdGl6ZWRPcHRpb25zPWZ1bmN0aW9uKGUpe3ZhciB0PW4obih7fSxyKSxlKTtyZXR1cm4gdC5udW1PZkF0dGVtcHRzPDEmJih0Lm51bU9mQXR0ZW1wdHM9MSksdH19LDUzMzQ2OmZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsdD1PYmplY3QuY3JlYXRlLHI9T2JqZWN0LmRlZmluZVByb3BlcnR5LGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxzPU9iamVjdC5nZXRQcm90b3R5cGVPZixjPU9iamVjdC5wcm90b3R5cGUsdT1jLmhhc093blByb3BlcnR5LGw9Yy5wcm9wZXJ0eUlzRW51bWVyYWJsZSxkPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLHA9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXAsZj1mdW5jdGlvbigpe2lmKHApcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXZWFrTWFwfTt2YXIgZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLl9rZXlzPVtdLHRoaXMuX3ZhbHVlcz1bXX1yZXR1cm4gZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiEhfnRoaXMuX2tleXMuaW5kZXhPZihlKX0sZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl92YWx1ZXNbdGhpcy5fa2V5cy5pbmRleE9mKGUpXX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dGhpcy5fa2V5cy5wdXNoKGUpLHRoaXMuX3ZhbHVlcy5wdXNoKHQpfSxlfSgpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgZX19KCksaD1mdW5jdGlvbihuLHIpe3ZhciBpPW4uX19wcm90b19ffHxzKG4pO2lmKCFpKXJldHVybiB0KG51bGwpO3ZhciBvPWkuY29uc3RydWN0b3I7aWYobz09PXIuT2JqZWN0KXJldHVybiBpPT09ci5PYmplY3QucHJvdG90eXBlP3t9OnQoaSk7aWYofmUuY2FsbChvKS5pbmRleE9mKFwiW25hdGl2ZSBjb2RlXVwiKSl0cnl7cmV0dXJuIG5ldyBvfWNhdGNoKGMpe31yZXR1cm4gdChpKX0sZz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT1oKGUsdCk7Zm9yKHZhciBvIGluIHIuc2V0KGUsaSksZSl1LmNhbGwoZSxvKSYmKGlbb109bihlW29dLHIpKTtpZihkKWZvcih2YXIgcz1hKGUpLGM9MCxwPXMubGVuZ3RoLGY9dm9pZCAwO2M8cDsrK2MpZj1zW2NdLGwuY2FsbChlLGYpJiYoaVtmXT1uKGVbZl0scikpO3JldHVybiBpfSxtPWZ1bmN0aW9uKGUsdCxuLHMpe3ZhciBjPWgoZSx0KTtzLnNldChlLGMpO2Zvcih2YXIgdT1kP28oZSkuY29uY2F0KGEoZSkpOm8oZSksbD0wLHA9dS5sZW5ndGgsZj12b2lkIDAsZz12b2lkIDA7bDxwOysrbClpZihcImNhbGxlZVwiIT09KGY9dVtsXSkmJlwiY2FsbGVyXCIhPT1mKWlmKGc9aShlLGYpKXtnLmdldHx8Zy5zZXR8fChnLnZhbHVlPW4oZVtmXSxzKSk7dHJ5e3IoYyxmLGcpfWNhdGNoKG0pe2NbZl09Zy52YWx1ZX19ZWxzZSBjW2ZdPW4oZVtmXSxzKTtyZXR1cm4gY30sdj1mdW5jdGlvbihlKXt2YXIgdD1cIlwiO3JldHVybiBlLmdsb2JhbCYmKHQrPVwiZ1wiKSxlLmlnbm9yZUNhc2UmJih0Kz1cImlcIiksZS5tdWx0aWxpbmUmJih0Kz1cIm1cIiksZS51bmljb2RlJiYodCs9XCJ1XCIpLGUuc3RpY2t5JiYodCs9XCJ5XCIpLHR9LF89QXJyYXkuaXNBcnJheSxFPU9iamVjdC5nZXRQcm90b3R5cGVPZixiPWZ1bmN0aW9uKCl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3c/d2luZG93OlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygbi5nP24uZzooY29uc29sZSYmY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcignVW5hYmxlIHRvIGxvY2F0ZSBnbG9iYWwgb2JqZWN0LCByZXR1cm5pbmcgXCJ0aGlzXCIuJyksdGhpcyl9KCk7ZnVuY3Rpb24gUyhlLHQpe3ZhciBuPSEoIXR8fCF0LmlzU3RyaWN0KSxyPXQmJnQucmVhbG18fGIsaT1uP206ZyxvPWZ1bmN0aW9uKGUsdCl7aWYoIWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZSlyZXR1cm4gZTtpZih0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIGEscz1lLl9fcHJvdG9fX3x8RShlKSxjPXMmJnMuY29uc3RydWN0b3I7aWYoIWN8fGM9PT1yLk9iamVjdClyZXR1cm4gaShlLHIsbyx0KTtpZihfKGUpKXtpZihuKXJldHVybiBtKGUscixvLHQpO2E9bmV3IGMsdC5zZXQoZSxhKTtmb3IodmFyIHU9MCxsPWUubGVuZ3RoO3U8bDsrK3UpYVt1XT1vKGVbdV0sdCk7cmV0dXJuIGF9aWYoZSBpbnN0YW5jZW9mIHIuRGF0ZSlyZXR1cm4gbmV3IGMoZS5nZXRUaW1lKCkpO2lmKGUgaW5zdGFuY2VvZiByLlJlZ0V4cClyZXR1cm4oYT1uZXcgYyhlLnNvdXJjZSxlLmZsYWdzfHx2KGUpKSkubGFzdEluZGV4PWUubGFzdEluZGV4LGE7aWYoci5NYXAmJmUgaW5zdGFuY2VvZiByLk1hcClyZXR1cm4gYT1uZXcgYyx0LnNldChlLGEpLGUuZm9yRWFjaCgoZnVuY3Rpb24oZSxuKXthLnNldChuLG8oZSx0KSl9KSksYTtpZihyLlNldCYmZSBpbnN0YW5jZW9mIHIuU2V0KXJldHVybiBhPW5ldyBjLHQuc2V0KGUsYSksZS5mb3JFYWNoKChmdW5jdGlvbihlKXthLmFkZChvKGUsdCkpfSkpLGE7aWYoci5CbG9iJiZlIGluc3RhbmNlb2Ygci5CbG9iKXJldHVybiBlLnNsaWNlKDAsZS5zaXplLGUudHlwZSk7aWYoci5CdWZmZXImJnIuQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBhPXIuQnVmZmVyLmFsbG9jVW5zYWZlP3IuQnVmZmVyLmFsbG9jVW5zYWZlKGUubGVuZ3RoKTpuZXcgYyhlLmxlbmd0aCksdC5zZXQoZSxhKSxlLmNvcHkoYSksYTtpZihyLkFycmF5QnVmZmVyKXtpZihyLkFycmF5QnVmZmVyLmlzVmlldyhlKSlyZXR1cm4gYT1uZXcgYyhlLmJ1ZmZlci5zbGljZSgwKSksdC5zZXQoZSxhKSxhO2lmKGUgaW5zdGFuY2VvZiByLkFycmF5QnVmZmVyKXJldHVybiBhPWUuc2xpY2UoMCksdC5zZXQoZSxhKSxhfXJldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLnRoZW58fGUgaW5zdGFuY2VvZiBFcnJvcnx8ci5XZWFrTWFwJiZlIGluc3RhbmNlb2Ygci5XZWFrTWFwfHxyLldlYWtTZXQmJmUgaW5zdGFuY2VvZiByLldlYWtTZXQ/ZTppKGUscixvLHQpfTtyZXR1cm4gbyhlLGYoKSl9cmV0dXJuIFMuZGVmYXVsdD1TLFMuc3RyaWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFMoZSx7aXNTdHJpY3Q6ITAscmVhbG06dD90LnJlYWxtOnZvaWQgMH0pfSxTfSgpfSwxNzY0ODpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjt2YXIgdD1cIkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgXCIsbj1BcnJheS5wcm90b3R5cGUuc2xpY2Uscj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9XCJbb2JqZWN0IEZ1bmN0aW9uXVwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbz10aGlzO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBvfHxyLmNhbGwobykhPT1pKXRocm93IG5ldyBUeXBlRXJyb3IodCtvKTtmb3IodmFyIGEscz1uLmNhbGwoYXJndW1lbnRzLDEpLGM9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgYSl7dmFyIHQ9by5hcHBseSh0aGlzLHMuY29uY2F0KG4uY2FsbChhcmd1bWVudHMpKSk7cmV0dXJuIE9iamVjdCh0KT09PXQ/dDp0aGlzfXJldHVybiBvLmFwcGx5KGUscy5jb25jYXQobi5jYWxsKGFyZ3VtZW50cykpKX0sdT1NYXRoLm1heCgwLG8ubGVuZ3RoLXMubGVuZ3RoKSxsPVtdLGQ9MDtkPHU7ZCsrKWwucHVzaChcIiRcIitkKTtpZihhPUZ1bmN0aW9uKFwiYmluZGVyXCIsXCJyZXR1cm4gZnVuY3Rpb24gKFwiK2wuam9pbihcIixcIikrXCIpeyByZXR1cm4gYmluZGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsgfVwiKShjKSxvLnByb3RvdHlwZSl7dmFyIHA9ZnVuY3Rpb24oKXt9O3AucHJvdG90eXBlPW8ucHJvdG90eXBlLGEucHJvdG90eXBlPW5ldyBwLHAucHJvdG90eXBlPW51bGx9cmV0dXJuIGF9fSw1ODYxMjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigxNzY0OCk7ZS5leHBvcnRzPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kfHxyfSw0MDIxMDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsaT1TeW50YXhFcnJvcixvPUZ1bmN0aW9uLGE9VHlwZUVycm9yLHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBvKCdcInVzZSBzdHJpY3RcIjsgcmV0dXJuICgnK2UrXCIpLmNvbnN0cnVjdG9yO1wiKSgpfWNhdGNoKHQpe319LGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtpZihjKXRyeXtjKHt9LFwiXCIpfWNhdGNoKGspe2M9bnVsbH12YXIgdT1mdW5jdGlvbigpe3Rocm93IG5ldyBhfSxsPWM/ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHV9Y2F0Y2goZSl7dHJ5e3JldHVybiBjKGFyZ3VtZW50cyxcImNhbGxlZVwiKS5nZXR9Y2F0Y2godCl7cmV0dXJuIHV9fX0oKTp1LGQ9big0MTQwNSkoKSxwPU9iamVjdC5nZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX19wcm90b19ffSxmPXt9LGg9XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBVaW50OEFycmF5P3I6cChVaW50OEFycmF5KSxnPXtcIiVBZ2dyZWdhdGVFcnJvciVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIEFnZ3JlZ2F0ZUVycm9yP3I6QWdncmVnYXRlRXJyb3IsXCIlQXJyYXklXCI6QXJyYXksXCIlQXJyYXlCdWZmZXIlXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBBcnJheUJ1ZmZlcj9yOkFycmF5QnVmZmVyLFwiJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlXCI6ZD9wKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSk6cixcIiVBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUlXCI6cixcIiVBc3luY0Z1bmN0aW9uJVwiOmYsXCIlQXN5bmNHZW5lcmF0b3IlXCI6ZixcIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiOmYsXCIlQXN5bmNJdGVyYXRvclByb3RvdHlwZSVcIjpmLFwiJUF0b21pY3MlXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBBdG9taWNzP3I6QXRvbWljcyxcIiVCaWdJbnQlXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBCaWdJbnQ/cjpCaWdJbnQsXCIlQm9vbGVhbiVcIjpCb29sZWFuLFwiJURhdGFWaWV3JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgRGF0YVZpZXc/cjpEYXRhVmlldyxcIiVEYXRlJVwiOkRhdGUsXCIlZGVjb2RlVVJJJVwiOmRlY29kZVVSSSxcIiVkZWNvZGVVUklDb21wb25lbnQlXCI6ZGVjb2RlVVJJQ29tcG9uZW50LFwiJWVuY29kZVVSSSVcIjplbmNvZGVVUkksXCIlZW5jb2RlVVJJQ29tcG9uZW50JVwiOmVuY29kZVVSSUNvbXBvbmVudCxcIiVFcnJvciVcIjpFcnJvcixcIiVldmFsJVwiOmV2YWwsXCIlRXZhbEVycm9yJVwiOkV2YWxFcnJvcixcIiVGbG9hdDMyQXJyYXklXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBGbG9hdDMyQXJyYXk/cjpGbG9hdDMyQXJyYXksXCIlRmxvYXQ2NEFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgRmxvYXQ2NEFycmF5P3I6RmxvYXQ2NEFycmF5LFwiJUZpbmFsaXphdGlvblJlZ2lzdHJ5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnk/cjpGaW5hbGl6YXRpb25SZWdpc3RyeSxcIiVGdW5jdGlvbiVcIjpvLFwiJUdlbmVyYXRvckZ1bmN0aW9uJVwiOmYsXCIlSW50OEFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgSW50OEFycmF5P3I6SW50OEFycmF5LFwiJUludDE2QXJyYXklXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBJbnQxNkFycmF5P3I6SW50MTZBcnJheSxcIiVJbnQzMkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgSW50MzJBcnJheT9yOkludDMyQXJyYXksXCIlaXNGaW5pdGUlXCI6aXNGaW5pdGUsXCIlaXNOYU4lXCI6aXNOYU4sXCIlSXRlcmF0b3JQcm90b3R5cGUlXCI6ZD9wKHAoW11bU3ltYm9sLml0ZXJhdG9yXSgpKSk6cixcIiVKU09OJVwiOlwib2JqZWN0XCI9PT10eXBlb2YgSlNPTj9KU09OOnIsXCIlTWFwJVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgTWFwP3I6TWFwLFwiJU1hcEl0ZXJhdG9yUHJvdG90eXBlJVwiOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgTWFwJiZkP3AoKG5ldyBNYXApW1N5bWJvbC5pdGVyYXRvcl0oKSk6cixcIiVNYXRoJVwiOk1hdGgsXCIlTnVtYmVyJVwiOk51bWJlcixcIiVPYmplY3QlXCI6T2JqZWN0LFwiJXBhcnNlRmxvYXQlXCI6cGFyc2VGbG9hdCxcIiVwYXJzZUludCVcIjpwYXJzZUludCxcIiVQcm9taXNlJVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgUHJvbWlzZT9yOlByb21pc2UsXCIlUHJveHklXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBQcm94eT9yOlByb3h5LFwiJVJhbmdlRXJyb3IlXCI6UmFuZ2VFcnJvcixcIiVSZWZlcmVuY2VFcnJvciVcIjpSZWZlcmVuY2VFcnJvcixcIiVSZWZsZWN0JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgUmVmbGVjdD9yOlJlZmxlY3QsXCIlUmVnRXhwJVwiOlJlZ0V4cCxcIiVTZXQlXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBTZXQ/cjpTZXQsXCIlU2V0SXRlcmF0b3JQcm90b3R5cGUlXCI6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTZXQmJmQ/cCgobmV3IFNldClbU3ltYm9sLml0ZXJhdG9yXSgpKTpyLFwiJVNoYXJlZEFycmF5QnVmZmVyJVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI/cjpTaGFyZWRBcnJheUJ1ZmZlcixcIiVTdHJpbmclXCI6U3RyaW5nLFwiJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJVwiOmQ/cChcIlwiW1N5bWJvbC5pdGVyYXRvcl0oKSk6cixcIiVTeW1ib2wlXCI6ZD9TeW1ib2w6cixcIiVTeW50YXhFcnJvciVcIjppLFwiJVRocm93VHlwZUVycm9yJVwiOmwsXCIlVHlwZWRBcnJheSVcIjpoLFwiJVR5cGVFcnJvciVcIjphLFwiJVVpbnQ4QXJyYXklXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBVaW50OEFycmF5P3I6VWludDhBcnJheSxcIiVVaW50OENsYW1wZWRBcnJheSVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5P3I6VWludDhDbGFtcGVkQXJyYXksXCIlVWludDE2QXJyYXklXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBVaW50MTZBcnJheT9yOlVpbnQxNkFycmF5LFwiJVVpbnQzMkFycmF5JVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgVWludDMyQXJyYXk/cjpVaW50MzJBcnJheSxcIiVVUklFcnJvciVcIjpVUklFcnJvcixcIiVXZWFrTWFwJVwiOlwidW5kZWZpbmVkXCI9PT10eXBlb2YgV2Vha01hcD9yOldlYWtNYXAsXCIlV2Vha1JlZiVcIjpcInVuZGVmaW5lZFwiPT09dHlwZW9mIFdlYWtSZWY/cjpXZWFrUmVmLFwiJVdlYWtTZXQlXCI6XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBXZWFrU2V0P3I6V2Vha1NldH0sbT1mdW5jdGlvbiBlKHQpe3ZhciBuO2lmKFwiJUFzeW5jRnVuY3Rpb24lXCI9PT10KW49cyhcImFzeW5jIGZ1bmN0aW9uICgpIHt9XCIpO2Vsc2UgaWYoXCIlR2VuZXJhdG9yRnVuY3Rpb24lXCI9PT10KW49cyhcImZ1bmN0aW9uKiAoKSB7fVwiKTtlbHNlIGlmKFwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lXCI9PT10KW49cyhcImFzeW5jIGZ1bmN0aW9uKiAoKSB7fVwiKTtlbHNlIGlmKFwiJUFzeW5jR2VuZXJhdG9yJVwiPT09dCl7dmFyIHI9ZShcIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJVwiKTtyJiYobj1yLnByb3RvdHlwZSl9ZWxzZSBpZihcIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJVwiPT09dCl7dmFyIGk9ZShcIiVBc3luY0dlbmVyYXRvciVcIik7aSYmKG49cChpLnByb3RvdHlwZSkpfXJldHVybiBnW3RdPW4sbn0sdj17XCIlQXJyYXlCdWZmZXJQcm90b3R5cGUlXCI6W1wiQXJyYXlCdWZmZXJcIixcInByb3RvdHlwZVwiXSxcIiVBcnJheVByb3RvdHlwZSVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUFycmF5UHJvdG9fZW50cmllcyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJlbnRyaWVzXCJdLFwiJUFycmF5UHJvdG9fZm9yRWFjaCVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJmb3JFYWNoXCJdLFwiJUFycmF5UHJvdG9fa2V5cyVcIjpbXCJBcnJheVwiLFwicHJvdG90eXBlXCIsXCJrZXlzXCJdLFwiJUFycmF5UHJvdG9fdmFsdWVzJVwiOltcIkFycmF5XCIsXCJwcm90b3R5cGVcIixcInZhbHVlc1wiXSxcIiVBc3luY0Z1bmN0aW9uUHJvdG90eXBlJVwiOltcIkFzeW5jRnVuY3Rpb25cIixcInByb3RvdHlwZVwiXSxcIiVBc3luY0dlbmVyYXRvciVcIjpbXCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUlXCI6W1wiQXN5bmNHZW5lcmF0b3JGdW5jdGlvblwiLFwicHJvdG90eXBlXCIsXCJwcm90b3R5cGVcIl0sXCIlQm9vbGVhblByb3RvdHlwZSVcIjpbXCJCb29sZWFuXCIsXCJwcm90b3R5cGVcIl0sXCIlRGF0YVZpZXdQcm90b3R5cGUlXCI6W1wiRGF0YVZpZXdcIixcInByb3RvdHlwZVwiXSxcIiVEYXRlUHJvdG90eXBlJVwiOltcIkRhdGVcIixcInByb3RvdHlwZVwiXSxcIiVFcnJvclByb3RvdHlwZSVcIjpbXCJFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJUV2YWxFcnJvclByb3RvdHlwZSVcIjpbXCJFdmFsRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVGbG9hdDMyQXJyYXlQcm90b3R5cGUlXCI6W1wiRmxvYXQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlRmxvYXQ2NEFycmF5UHJvdG90eXBlJVwiOltcIkZsb2F0NjRBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJUZ1bmN0aW9uUHJvdG90eXBlJVwiOltcIkZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIl0sXCIlR2VuZXJhdG9yUHJvdG90eXBlJVwiOltcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXCJwcm90b3R5cGVcIixcInByb3RvdHlwZVwiXSxcIiVJbnQ4QXJyYXlQcm90b3R5cGUlXCI6W1wiSW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQxNkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSW50MzJBcnJheVByb3RvdHlwZSVcIjpbXCJJbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlSlNPTlBhcnNlJVwiOltcIkpTT05cIixcInBhcnNlXCJdLFwiJUpTT05TdHJpbmdpZnklXCI6W1wiSlNPTlwiLFwic3RyaW5naWZ5XCJdLFwiJU1hcFByb3RvdHlwZSVcIjpbXCJNYXBcIixcInByb3RvdHlwZVwiXSxcIiVOdW1iZXJQcm90b3R5cGUlXCI6W1wiTnVtYmVyXCIsXCJwcm90b3R5cGVcIl0sXCIlT2JqZWN0UHJvdG90eXBlJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCJdLFwiJU9ialByb3RvX3RvU3RyaW5nJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ0b1N0cmluZ1wiXSxcIiVPYmpQcm90b192YWx1ZU9mJVwiOltcIk9iamVjdFwiLFwicHJvdG90eXBlXCIsXCJ2YWx1ZU9mXCJdLFwiJVByb21pc2VQcm90b3R5cGUlXCI6W1wiUHJvbWlzZVwiLFwicHJvdG90eXBlXCJdLFwiJVByb21pc2VQcm90b190aGVuJVwiOltcIlByb21pc2VcIixcInByb3RvdHlwZVwiLFwidGhlblwiXSxcIiVQcm9taXNlX2FsbCVcIjpbXCJQcm9taXNlXCIsXCJhbGxcIl0sXCIlUHJvbWlzZV9yZWplY3QlXCI6W1wiUHJvbWlzZVwiLFwicmVqZWN0XCJdLFwiJVByb21pc2VfcmVzb2x2ZSVcIjpbXCJQcm9taXNlXCIsXCJyZXNvbHZlXCJdLFwiJVJhbmdlRXJyb3JQcm90b3R5cGUlXCI6W1wiUmFuZ2VFcnJvclwiLFwicHJvdG90eXBlXCJdLFwiJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJVwiOltcIlJlZmVyZW5jZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlUmVnRXhwUHJvdG90eXBlJVwiOltcIlJlZ0V4cFwiLFwicHJvdG90eXBlXCJdLFwiJVNldFByb3RvdHlwZSVcIjpbXCJTZXRcIixcInByb3RvdHlwZVwiXSxcIiVTaGFyZWRBcnJheUJ1ZmZlclByb3RvdHlwZSVcIjpbXCJTaGFyZWRBcnJheUJ1ZmZlclwiLFwicHJvdG90eXBlXCJdLFwiJVN0cmluZ1Byb3RvdHlwZSVcIjpbXCJTdHJpbmdcIixcInByb3RvdHlwZVwiXSxcIiVTeW1ib2xQcm90b3R5cGUlXCI6W1wiU3ltYm9sXCIsXCJwcm90b3R5cGVcIl0sXCIlU3ludGF4RXJyb3JQcm90b3R5cGUlXCI6W1wiU3ludGF4RXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlZEFycmF5UHJvdG90eXBlJVwiOltcIlR5cGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVUeXBlRXJyb3JQcm90b3R5cGUlXCI6W1wiVHlwZUVycm9yXCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50OEFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlXCI6W1wiVWludDhDbGFtcGVkQXJyYXlcIixcInByb3RvdHlwZVwiXSxcIiVVaW50MTZBcnJheVByb3RvdHlwZSVcIjpbXCJVaW50MTZBcnJheVwiLFwicHJvdG90eXBlXCJdLFwiJVVpbnQzMkFycmF5UHJvdG90eXBlJVwiOltcIlVpbnQzMkFycmF5XCIsXCJwcm90b3R5cGVcIl0sXCIlVVJJRXJyb3JQcm90b3R5cGUlXCI6W1wiVVJJRXJyb3JcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrTWFwUHJvdG90eXBlJVwiOltcIldlYWtNYXBcIixcInByb3RvdHlwZVwiXSxcIiVXZWFrU2V0UHJvdG90eXBlJVwiOltcIldlYWtTZXRcIixcInByb3RvdHlwZVwiXX0sXz1uKDU4NjEyKSxFPW4oMTc2NDIpLGI9Xy5jYWxsKEZ1bmN0aW9uLmNhbGwsQXJyYXkucHJvdG90eXBlLmNvbmNhdCksUz1fLmNhbGwoRnVuY3Rpb24uYXBwbHksQXJyYXkucHJvdG90eXBlLnNwbGljZSkseT1fLmNhbGwoRnVuY3Rpb24uY2FsbCxTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLFQ9Xy5jYWxsKEZ1bmN0aW9uLmNhbGwsU3RyaW5nLnByb3RvdHlwZS5zbGljZSksST1fLmNhbGwoRnVuY3Rpb24uY2FsbCxSZWdFeHAucHJvdG90eXBlLmV4ZWMpLE89L1teJS5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXFxcXXxcXFxcLikqPylcXDIpXFxdfCg/PSg/OlxcLnxcXFtcXF0pKD86XFwufFxcW1xcXXwlJCkpL2csQT0vXFxcXChcXFxcKT8vZyxDPWZ1bmN0aW9uKGUpe3ZhciB0PVQoZSwwLDEpLG49VChlLC0xKTtpZihcIiVcIj09PXQmJlwiJVwiIT09bil0aHJvdyBuZXcgaShcImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWBcIik7aWYoXCIlXCI9PT1uJiZcIiVcIiE9PXQpdGhyb3cgbmV3IGkoXCJpbnZhbGlkIGludHJpbnNpYyBzeW50YXgsIGV4cGVjdGVkIG9wZW5pbmcgYCVgXCIpO3ZhciByPVtdO3JldHVybiB5KGUsTywoZnVuY3Rpb24oZSx0LG4saSl7cltyLmxlbmd0aF09bj95KGksQSxcIiQxXCIpOnR8fGV9KSkscn0sTj1mdW5jdGlvbihlLHQpe3ZhciBuLHI9ZTtpZihFKHYscikmJihyPVwiJVwiKyhuPXZbcl0pWzBdK1wiJVwiKSxFKGcscikpe3ZhciBvPWdbcl07aWYobz09PWYmJihvPW0ocikpLFwidW5kZWZpbmVkXCI9PT10eXBlb2YgbyYmIXQpdGhyb3cgbmV3IGEoXCJpbnRyaW5zaWMgXCIrZStcIiBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSFcIik7cmV0dXJue2FsaWFzOm4sbmFtZTpyLHZhbHVlOm99fXRocm93IG5ldyBpKFwiaW50cmluc2ljIFwiK2UrXCIgZG9lcyBub3QgZXhpc3QhXCIpfTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGV8fDA9PT1lLmxlbmd0aCl0aHJvdyBuZXcgYShcImludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSYmXCJib29sZWFuXCIhPT10eXBlb2YgdCl0aHJvdyBuZXcgYSgnXCJhbGxvd01pc3NpbmdcIiBhcmd1bWVudCBtdXN0IGJlIGEgYm9vbGVhbicpO2lmKG51bGw9PT1JKC9eJT9bXiVdKiU/JC8sZSkpdGhyb3cgbmV3IGkoXCJgJWAgbWF5IG5vdCBiZSBwcmVzZW50IGFueXdoZXJlIGJ1dCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGludHJpbnNpYyBuYW1lXCIpO3ZhciBuPUMoZSkscj1uLmxlbmd0aD4wP25bMF06XCJcIixvPU4oXCIlXCIrcitcIiVcIix0KSxzPW8ubmFtZSx1PW8udmFsdWUsbD0hMSxkPW8uYWxpYXM7ZCYmKHI9ZFswXSxTKG4sYihbMCwxXSxkKSkpO2Zvcih2YXIgcD0xLGY9ITA7cDxuLmxlbmd0aDtwKz0xKXt2YXIgaD1uW3BdLG09VChoLDAsMSksdj1UKGgsLTEpO2lmKCgnXCInPT09bXx8XCInXCI9PT1tfHxcImBcIj09PW18fCdcIic9PT12fHxcIidcIj09PXZ8fFwiYFwiPT09dikmJm0hPT12KXRocm93IG5ldyBpKFwicHJvcGVydHkgbmFtZXMgd2l0aCBxdW90ZXMgbXVzdCBoYXZlIG1hdGNoaW5nIHF1b3Rlc1wiKTtpZihcImNvbnN0cnVjdG9yXCIhPT1oJiZmfHwobD0hMCksRShnLHM9XCIlXCIrKHIrPVwiLlwiK2gpK1wiJVwiKSl1PWdbc107ZWxzZSBpZihudWxsIT11KXtpZighKGggaW4gdSkpe2lmKCF0KXRocm93IG5ldyBhKFwiYmFzZSBpbnRyaW5zaWMgZm9yIFwiK2UrXCIgZXhpc3RzLCBidXQgdGhlIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUuXCIpO3JldHVybn1pZihjJiZwKzE+PW4ubGVuZ3RoKXt2YXIgXz1jKHUsaCk7dT0oZj0hIV8pJiZcImdldFwiaW4gXyYmIShcIm9yaWdpbmFsVmFsdWVcImluIF8uZ2V0KT9fLmdldDp1W2hdfWVsc2UgZj1FKHUsaCksdT11W2hdO2YmJiFsJiYoZ1tzXT11KX19cmV0dXJuIHV9fSwzMzAxOTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e30sJGpzY29tcC5maW5kSW50ZXJuYWw9ZnVuY3Rpb24oZSx0LG4pe2UgaW5zdGFuY2VvZiBTdHJpbmcmJihlPVN0cmluZyhlKSk7Zm9yKHZhciByPWUubGVuZ3RoLGk9MDtpPHI7aSsrKXt2YXIgbz1lW2ldO2lmKHQuY2FsbChuLG8saSxlKSlyZXR1cm57aTppLHY6b319cmV0dXJue2k6LTEsdjp2b2lkIDB9fSwkanNjb21wLkFTU1VNRV9FUzU9ITEsJGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMSwkanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExLCRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMSwkanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGUsdCxuKXtlIT1BcnJheS5wcm90b3R5cGUmJmUhPU9iamVjdC5wcm90b3R5cGUmJihlW3RdPW4udmFsdWUpfSwkanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihlKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3c9PT1lP2U6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fd2VicGFja19yZXF1aXJlX18uZyYmbnVsbCE9X193ZWJwYWNrX3JlcXVpcmVfXy5nP19fd2VicGFja19yZXF1aXJlX18uZzplfSwkanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKSwkanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKHQpe2ZvcihuPSRqc2NvbXAuZ2xvYmFsLGU9ZS5zcGxpdChcIi5cIikscj0wO3I8ZS5sZW5ndGgtMTtyKyspe3ZhciBpPWVbcl07aSBpbiBufHwobltpXT17fSksbj1uW2ldfSh0PXQocj1uW2U9ZVtlLmxlbmd0aC0xXV0pKSE9ciYmbnVsbCE9dCYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShuLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSl9fSwkanNjb21wLnBvbHlmaWxsKFwiQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJGpzY29tcC5maW5kSW50ZXJuYWwodGhpcyxlLHQpLml9fSksXCJlczZcIixcImVzM1wiKSwkanNjb21wLmNoZWNrU3RyaW5nQXJncz1mdW5jdGlvbihlLHQsbil7aWYobnVsbD09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlICd0aGlzJyB2YWx1ZSBmb3IgU3RyaW5nLnByb3RvdHlwZS5cIituK1wiIG11c3Qgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkXCIpO2lmKHQgaW5zdGFuY2VvZiBSZWdFeHApdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZpcnN0IGFyZ3VtZW50IHRvIFN0cmluZy5wcm90b3R5cGUuXCIrbitcIiBtdXN0IG5vdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvblwiKTtyZXR1cm4gZStcIlwifSwkanNjb21wLnBvbHlmaWxsKFwiU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj0kanNjb21wLmNoZWNrU3RyaW5nQXJncyh0aGlzLGUsXCJlbmRzV2l0aFwiKTtlKz1cIlwiLHZvaWQgMD09PXQmJih0PW4ubGVuZ3RoKSx0PU1hdGgubWF4KDAsTWF0aC5taW4oMHx0LG4ubGVuZ3RoKSk7Zm9yKHZhciByPWUubGVuZ3RoOzA8ciYmMDx0OylpZihuWy0tdF0hPWVbLS1yXSlyZXR1cm4hMTtyZXR1cm4gMD49cn19KSxcImVzNlwiLFwiZXMzXCIpLCRqc2NvbXAucG9seWZpbGwoXCJBcnJheS5wcm90b3R5cGUuZmluZFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJGpzY29tcC5maW5kSW50ZXJuYWwodGhpcyxlLHQpLnZ9fSksXCJlczZcIixcImVzM1wiKSwkanNjb21wLnBvbHlmaWxsKFwiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfHxmdW5jdGlvbihlLHQpe3ZhciBuPSRqc2NvbXAuY2hlY2tTdHJpbmdBcmdzKHRoaXMsZSxcInN0YXJ0c1dpdGhcIik7ZSs9XCJcIjt2YXIgcj1uLmxlbmd0aCxpPWUubGVuZ3RoO3Q9TWF0aC5tYXgoMCxNYXRoLm1pbigwfHQsbi5sZW5ndGgpKTtmb3IodmFyIG89MDtvPGkmJnQ8cjspaWYoblt0KytdIT1lW28rK10pcmV0dXJuITE7cmV0dXJuIG8+PWl9fSksXCJlczZcIixcImVzM1wiKSwkanNjb21wLnBvbHlmaWxsKFwiU3RyaW5nLnByb3RvdHlwZS5yZXBlYXRcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGV8fGZ1bmN0aW9uKGUpe3ZhciB0PSRqc2NvbXAuY2hlY2tTdHJpbmdBcmdzKHRoaXMsbnVsbCxcInJlcGVhdFwiKTtpZigwPmV8fDEzNDIxNzcyNzk8ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgY291bnQgdmFsdWVcIik7ZXw9MDtmb3IodmFyIG49XCJcIjtlOykxJmUmJihuKz10KSwoZT4+Pj0xKSYmKHQrPXQpO3JldHVybiBufX0pLFwiZXM2XCIsXCJlczNcIik7dmFyIENPTVBJTEVEPSEwLGdvb2c9Z29vZ3x8e307Z29vZy5nbG9iYWw9dGhpc3x8c2VsZixnb29nLmV4cG9ydFBhdGhfPWZ1bmN0aW9uKGUsdCxuKXtlPWUuc3BsaXQoXCIuXCIpLG49bnx8Z29vZy5nbG9iYWwsZVswXWluIG58fFwidW5kZWZpbmVkXCI9PXR5cGVvZiBuLmV4ZWNTY3JpcHR8fG4uZXhlY1NjcmlwdChcInZhciBcIitlWzBdKTtmb3IodmFyIHI7ZS5sZW5ndGgmJihyPWUuc2hpZnQoKSk7KWUubGVuZ3RofHx2b2lkIDA9PT10P249bltyXSYmbltyXSE9PU9iamVjdC5wcm90b3R5cGVbcl0/bltyXTpuW3JdPXt9Om5bcl09dH0sZ29vZy5kZWZpbmU9ZnVuY3Rpb24oZSx0KXtpZighQ09NUElMRUQpe3ZhciBuPWdvb2cuZ2xvYmFsLkNMT1NVUkVfVU5DT01QSUxFRF9ERUZJTkVTLHI9Z29vZy5nbG9iYWwuQ0xPU1VSRV9ERUZJTkVTO24mJnZvaWQgMD09PW4ubm9kZVR5cGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGUpP3Q9bltlXTpyJiZ2b2lkIDA9PT1yLm5vZGVUeXBlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixlKSYmKHQ9cltlXSl9cmV0dXJuIHR9LGdvb2cuRkVBVFVSRVNFVF9ZRUFSPTIwMTIsZ29vZy5ERUJVRz0hMCxnb29nLkxPQ0FMRT1cImVuXCIsZ29vZy5UUlVTVEVEX1NJVEU9ITAsZ29vZy5TVFJJQ1RfTU9ERV9DT01QQVRJQkxFPSExLGdvb2cuRElTQUxMT1dfVEVTVF9PTkxZX0NPREU9Q09NUElMRUQmJiFnb29nLkRFQlVHLGdvb2cuRU5BQkxFX0NIUk9NRV9BUFBfU0FGRV9TQ1JJUFRfTE9BRElORz0hMSxnb29nLnByb3ZpZGU9ZnVuY3Rpb24oZSl7aWYoZ29vZy5pc0luTW9kdWxlTG9hZGVyXygpKXRocm93IEVycm9yKFwiZ29vZy5wcm92aWRlIGNhbm5vdCBiZSB1c2VkIHdpdGhpbiBhIG1vZHVsZS5cIik7aWYoIUNPTVBJTEVEJiZnb29nLmlzUHJvdmlkZWRfKGUpKXRocm93IEVycm9yKCdOYW1lc3BhY2UgXCInK2UrJ1wiIGFscmVhZHkgZGVjbGFyZWQuJyk7Z29vZy5jb25zdHJ1Y3ROYW1lc3BhY2VfKGUpfSxnb29nLmNvbnN0cnVjdE5hbWVzcGFjZV89ZnVuY3Rpb24oZSx0KXtpZighQ09NUElMRUQpe2RlbGV0ZSBnb29nLmltcGxpY2l0TmFtZXNwYWNlc19bZV07Zm9yKHZhciBuPWU7KG49bi5zdWJzdHJpbmcoMCxuLmxhc3RJbmRleE9mKFwiLlwiKSkpJiYhZ29vZy5nZXRPYmplY3RCeU5hbWUobik7KWdvb2cuaW1wbGljaXROYW1lc3BhY2VzX1tuXT0hMH1nb29nLmV4cG9ydFBhdGhfKGUsdCl9LGdvb2cuZ2V0U2NyaXB0Tm9uY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUhPWdvb2cuZ2xvYmFsP2dvb2cuZ2V0U2NyaXB0Tm9uY2VfKGUuZG9jdW1lbnQpOihudWxsPT09Z29vZy5jc3BOb25jZV8mJihnb29nLmNzcE5vbmNlXz1nb29nLmdldFNjcmlwdE5vbmNlXyhnb29nLmdsb2JhbC5kb2N1bWVudCkpLGdvb2cuY3NwTm9uY2VfKX0sZ29vZy5OT05DRV9QQVRURVJOXz0vXltcXHcrL18tXStbPV17MCwyfSQvLGdvb2cuY3NwTm9uY2VfPW51bGwsZ29vZy5nZXRTY3JpcHROb25jZV89ZnVuY3Rpb24oZSl7cmV0dXJuKGU9ZS5xdWVyeVNlbGVjdG9yJiZlLnF1ZXJ5U2VsZWN0b3IoXCJzY3JpcHRbbm9uY2VdXCIpKSYmKGU9ZS5ub25jZXx8ZS5nZXRBdHRyaWJ1dGUoXCJub25jZVwiKSkmJmdvb2cuTk9OQ0VfUEFUVEVSTl8udGVzdChlKT9lOlwiXCJ9LGdvb2cuVkFMSURfTU9EVUxFX1JFXz0vXlthLXpBLVpfJF1bYS16QS1aMC05Ll8kXSokLyxnb29nLm1vZHVsZT1mdW5jdGlvbihlKXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGV8fCFlfHwtMT09ZS5zZWFyY2goZ29vZy5WQUxJRF9NT0RVTEVfUkVfKSl0aHJvdyBFcnJvcihcIkludmFsaWQgbW9kdWxlIGlkZW50aWZpZXJcIik7aWYoIWdvb2cuaXNJbkdvb2dNb2R1bGVMb2FkZXJfKCkpdGhyb3cgRXJyb3IoXCJNb2R1bGUgXCIrZStcIiBoYXMgYmVlbiBsb2FkZWQgaW5jb3JyZWN0bHkuIE5vdGUsIG1vZHVsZXMgY2Fubm90IGJlIGxvYWRlZCBhcyBub3JtYWwgc2NyaXB0cy4gVGhleSByZXF1aXJlIHNvbWUga2luZCBvZiBwcmUtcHJvY2Vzc2luZyBzdGVwLiBZb3UncmUgbGlrZWx5IHRyeWluZyB0byBsb2FkIGEgbW9kdWxlIHZpYSBhIHNjcmlwdCB0YWcgb3IgYXMgYSBwYXJ0IG9mIGEgY29uY2F0ZW5hdGVkIGJ1bmRsZSB3aXRob3V0IHJld3JpdGluZyB0aGUgbW9kdWxlLiBGb3IgbW9yZSBpbmZvIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9jbG9zdXJlLWxpYnJhcnkvd2lraS9nb29nLm1vZHVsZTotYW4tRVM2LW1vZHVsZS1saWtlLWFsdGVybmF0aXZlLXRvLWdvb2cucHJvdmlkZS5cIik7aWYoZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZSl0aHJvdyBFcnJvcihcImdvb2cubW9kdWxlIG1heSBvbmx5IGJlIGNhbGxlZCBvbmNlIHBlciBtb2R1bGUuXCIpO2lmKGdvb2cubW9kdWxlTG9hZGVyU3RhdGVfLm1vZHVsZU5hbWU9ZSwhQ09NUElMRUQpe2lmKGdvb2cuaXNQcm92aWRlZF8oZSkpdGhyb3cgRXJyb3IoJ05hbWVzcGFjZSBcIicrZSsnXCIgYWxyZWFkeSBkZWNsYXJlZC4nKTtkZWxldGUgZ29vZy5pbXBsaWNpdE5hbWVzcGFjZXNfW2VdfX0sZ29vZy5tb2R1bGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLm1vZHVsZS5nZXRJbnRlcm5hbF8oZSl9LGdvb2cubW9kdWxlLmdldEludGVybmFsXz1mdW5jdGlvbihlKXtpZighQ09NUElMRUQpe2lmKGUgaW4gZ29vZy5sb2FkZWRNb2R1bGVzXylyZXR1cm4gZ29vZy5sb2FkZWRNb2R1bGVzX1tlXS5leHBvcnRzO2lmKCFnb29nLmltcGxpY2l0TmFtZXNwYWNlc19bZV0pcmV0dXJuIG51bGwhPShlPWdvb2cuZ2V0T2JqZWN0QnlOYW1lKGUpKT9lOm51bGx9cmV0dXJuIG51bGx9LGdvb2cuTW9kdWxlVHlwZT17RVM2OlwiZXM2XCIsR09PRzpcImdvb2dcIn0sZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV89bnVsbCxnb29nLmlzSW5Nb2R1bGVMb2FkZXJfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuaXNJbkdvb2dNb2R1bGVMb2FkZXJfKCl8fGdvb2cuaXNJbkVzNk1vZHVsZUxvYWRlcl8oKX0sZ29vZy5pc0luR29vZ01vZHVsZUxvYWRlcl89ZnVuY3Rpb24oKXtyZXR1cm4hIWdvb2cubW9kdWxlTG9hZGVyU3RhdGVfJiZnb29nLm1vZHVsZUxvYWRlclN0YXRlXy50eXBlPT1nb29nLk1vZHVsZVR5cGUuR09PR30sZ29vZy5pc0luRXM2TW9kdWxlTG9hZGVyXz1mdW5jdGlvbigpe2lmKGdvb2cubW9kdWxlTG9hZGVyU3RhdGVfJiZnb29nLm1vZHVsZUxvYWRlclN0YXRlXy50eXBlPT1nb29nLk1vZHVsZVR5cGUuRVM2KXJldHVybiEwO3ZhciBlPWdvb2cuZ2xvYmFsLiRqc2NvbXA7cmV0dXJuISFlJiYoXCJmdW5jdGlvblwiPT10eXBlb2YgZS5nZXRDdXJyZW50TW9kdWxlUGF0aCYmISFlLmdldEN1cnJlbnRNb2R1bGVQYXRoKCkpfSxnb29nLm1vZHVsZS5kZWNsYXJlTGVnYWN5TmFtZXNwYWNlPWZ1bmN0aW9uKCl7aWYoIUNPTVBJTEVEJiYhZ29vZy5pc0luR29vZ01vZHVsZUxvYWRlcl8oKSl0aHJvdyBFcnJvcihcImdvb2cubW9kdWxlLmRlY2xhcmVMZWdhY3lOYW1lc3BhY2UgbXVzdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYSBnb29nLm1vZHVsZVwiKTtpZighQ09NUElMRUQmJiFnb29nLm1vZHVsZUxvYWRlclN0YXRlXy5tb2R1bGVOYW1lKXRocm93IEVycm9yKFwiZ29vZy5tb2R1bGUgbXVzdCBiZSBjYWxsZWQgcHJpb3IgdG8gZ29vZy5tb2R1bGUuZGVjbGFyZUxlZ2FjeU5hbWVzcGFjZS5cIik7Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8uZGVjbGFyZUxlZ2FjeU5hbWVzcGFjZT0hMH0sZ29vZy5kZWNsYXJlTW9kdWxlSWQ9ZnVuY3Rpb24oZSl7aWYoIUNPTVBJTEVEKXtpZighZ29vZy5pc0luRXM2TW9kdWxlTG9hZGVyXygpKXRocm93IEVycm9yKFwiZ29vZy5kZWNsYXJlTW9kdWxlSWQgbWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gd2l0aGluIGFuIEVTNiBtb2R1bGVcIik7aWYoZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8mJmdvb2cubW9kdWxlTG9hZGVyU3RhdGVfLm1vZHVsZU5hbWUpdGhyb3cgRXJyb3IoXCJnb29nLmRlY2xhcmVNb2R1bGVJZCBtYXkgb25seSBiZSBjYWxsZWQgb25jZSBwZXIgbW9kdWxlLlwiKTtpZihlIGluIGdvb2cubG9hZGVkTW9kdWxlc18pdGhyb3cgRXJyb3IoJ01vZHVsZSB3aXRoIG5hbWVzcGFjZSBcIicrZSsnXCIgYWxyZWFkeSBleGlzdHMuJyl9aWYoZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8pZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZT1lO2Vsc2V7dmFyIHQ9Z29vZy5nbG9iYWwuJGpzY29tcDtpZighdHx8XCJmdW5jdGlvblwiIT10eXBlb2YgdC5nZXRDdXJyZW50TW9kdWxlUGF0aCl0aHJvdyBFcnJvcignTW9kdWxlIHdpdGggbmFtZXNwYWNlIFwiJytlKydcIiBoYXMgYmVlbiBsb2FkZWQgaW5jb3JyZWN0bHkuJyk7dD10LnJlcXVpcmUodC5nZXRDdXJyZW50TW9kdWxlUGF0aCgpKSxnb29nLmxvYWRlZE1vZHVsZXNfW2VdPXtleHBvcnRzOnQsdHlwZTpnb29nLk1vZHVsZVR5cGUuRVM2LG1vZHVsZUlkOmV9fX0sZ29vZy5zZXRUZXN0T25seT1mdW5jdGlvbihlKXtpZihnb29nLkRJU0FMTE9XX1RFU1RfT05MWV9DT0RFKXRocm93IGU9ZXx8XCJcIixFcnJvcihcIkltcG9ydGluZyB0ZXN0LW9ubHkgY29kZSBpbnRvIG5vbi1kZWJ1ZyBlbnZpcm9ubWVudFwiKyhlP1wiOiBcIitlOlwiLlwiKSl9LGdvb2cuZm9yd2FyZERlY2xhcmU9ZnVuY3Rpb24oZSl7fSxDT01QSUxFRHx8KGdvb2cuaXNQcm92aWRlZF89ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW4gZ29vZy5sb2FkZWRNb2R1bGVzX3x8IWdvb2cuaW1wbGljaXROYW1lc3BhY2VzX1tlXSYmbnVsbCE9Z29vZy5nZXRPYmplY3RCeU5hbWUoZSl9LGdvb2cuaW1wbGljaXROYW1lc3BhY2VzXz17XCJnb29nLm1vZHVsZVwiOiEwfSksZ29vZy5nZXRPYmplY3RCeU5hbWU9ZnVuY3Rpb24oZSx0KXtlPWUuc3BsaXQoXCIuXCIpLHQ9dHx8Z29vZy5nbG9iYWw7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYobnVsbD09KHQ9dFtlW25dXSkpcmV0dXJuIG51bGw7cmV0dXJuIHR9LGdvb2cuZ2xvYmFsaXplPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQ9dHx8Z29vZy5nbG9iYWwsZSl0W25dPWVbbl19LGdvb2cuYWRkRGVwZW5kZW5jeT1mdW5jdGlvbihlLHQsbixyKXshQ09NUElMRUQmJmdvb2cuREVQRU5ERU5DSUVTX0VOQUJMRUQmJmdvb2cuZGVidWdMb2FkZXJfLmFkZERlcGVuZGVuY3koZSx0LG4scil9LGdvb2cuRU5BQkxFX0RFQlVHX0xPQURFUj0hMCxnb29nLmxvZ1RvQ29uc29sZV89ZnVuY3Rpb24oZSl7Z29vZy5nbG9iYWwuY29uc29sZSYmZ29vZy5nbG9iYWwuY29uc29sZS5lcnJvcihlKX0sZ29vZy5yZXF1aXJlPWZ1bmN0aW9uKGUpe2lmKCFDT01QSUxFRCl7aWYoZ29vZy5FTkFCTEVfREVCVUdfTE9BREVSJiZnb29nLmRlYnVnTG9hZGVyXy5yZXF1ZXN0ZWQoZSksZ29vZy5pc1Byb3ZpZGVkXyhlKSl7aWYoZ29vZy5pc0luTW9kdWxlTG9hZGVyXygpKXJldHVybiBnb29nLm1vZHVsZS5nZXRJbnRlcm5hbF8oZSl9ZWxzZSBpZihnb29nLkVOQUJMRV9ERUJVR19MT0FERVIpe3ZhciB0PWdvb2cubW9kdWxlTG9hZGVyU3RhdGVfO2dvb2cubW9kdWxlTG9hZGVyU3RhdGVfPW51bGw7dHJ5e2dvb2cuZGVidWdMb2FkZXJfLmxvYWRfKGUpfWZpbmFsbHl7Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV89dH19cmV0dXJuIG51bGx9fSxnb29nLnJlcXVpcmVUeXBlPWZ1bmN0aW9uKGUpe3JldHVybnt9fSxnb29nLmJhc2VQYXRoPVwiXCIsZ29vZy5udWxsRnVuY3Rpb249ZnVuY3Rpb24oKXt9LGdvb2cuYWJzdHJhY3RNZXRob2Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihcInVuaW1wbGVtZW50ZWQgYWJzdHJhY3QgbWV0aG9kXCIpfSxnb29nLmFkZFNpbmdsZXRvbkdldHRlcj1mdW5jdGlvbihlKXtlLmluc3RhbmNlXz12b2lkIDAsZS5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBlLmluc3RhbmNlXz9lLmluc3RhbmNlXzooZ29vZy5ERUJVRyYmKGdvb2cuaW5zdGFudGlhdGVkU2luZ2xldG9uc19bZ29vZy5pbnN0YW50aWF0ZWRTaW5nbGV0b25zXy5sZW5ndGhdPWUpLGUuaW5zdGFuY2VfPW5ldyBlKX19LGdvb2cuaW5zdGFudGlhdGVkU2luZ2xldG9uc189W10sZ29vZy5MT0FEX01PRFVMRV9VU0lOR19FVkFMPSEwLGdvb2cuU0VBTF9NT0RVTEVfRVhQT1JUUz1nb29nLkRFQlVHLGdvb2cubG9hZGVkTW9kdWxlc189e30sZ29vZy5ERVBFTkRFTkNJRVNfRU5BQkxFRD0hQ09NUElMRUQmJmdvb2cuRU5BQkxFX0RFQlVHX0xPQURFUixnb29nLlRSQU5TUElMRT1cImRldGVjdFwiLGdvb2cuQVNTVU1FX0VTX01PRFVMRVNfVFJBTlNQSUxFRD0hMSxnb29nLlRSQU5TUElMRV9UT19MQU5HVUFHRT1cIlwiLGdvb2cuVFJBTlNQSUxFUj1cInRyYW5zcGlsZS5qc1wiLGdvb2cuaGFzQmFkTGV0U2NvcGluZz1udWxsLGdvb2cudXNlU2FmYXJpMTBXb3JrYXJvdW5kPWZ1bmN0aW9uKCl7aWYobnVsbD09Z29vZy5oYXNCYWRMZXRTY29waW5nKXt0cnl7dmFyIGE9IWV2YWwoJ1widXNlIHN0cmljdFwiO2xldCB4ID0gMTsgZnVuY3Rpb24gZigpIHsgcmV0dXJuIHR5cGVvZiB4OyB9O2YoKSA9PSBcIm51bWJlclwiOycpfWNhdGNoKGIpe2E9ITF9Z29vZy5oYXNCYWRMZXRTY29waW5nPWF9cmV0dXJuIGdvb2cuaGFzQmFkTGV0U2NvcGluZ30sZ29vZy53b3JrYXJvdW5kU2FmYXJpMTBFdmFsQnVnPWZ1bmN0aW9uKGUpe3JldHVyblwiKGZ1bmN0aW9uKCl7XCIrZStcIlxcbjt9KSgpO1xcblwifSxnb29nLmxvYWRNb2R1bGU9ZnVuY3Rpb24oZSl7dmFyIHQ9Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV87dHJ5e2lmKGdvb2cubW9kdWxlTG9hZGVyU3RhdGVfPXttb2R1bGVOYW1lOlwiXCIsZGVjbGFyZUxlZ2FjeU5hbWVzcGFjZTohMSx0eXBlOmdvb2cuTW9kdWxlVHlwZS5HT09HfSxnb29nLmlzRnVuY3Rpb24oZSkpdmFyIG49ZS5jYWxsKHZvaWQgMCx7fSk7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGUpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIG1vZHVsZSBkZWZpbml0aW9uXCIpO2dvb2cudXNlU2FmYXJpMTBXb3JrYXJvdW5kKCkmJihlPWdvb2cud29ya2Fyb3VuZFNhZmFyaTEwRXZhbEJ1ZyhlKSksbj1nb29nLmxvYWRNb2R1bGVGcm9tU291cmNlXy5jYWxsKHZvaWQgMCxlKX12YXIgcj1nb29nLm1vZHVsZUxvYWRlclN0YXRlXy5tb2R1bGVOYW1lO2lmKFwic3RyaW5nXCIhPT10eXBlb2Ygcnx8IXIpdGhyb3cgRXJyb3IoJ0ludmFsaWQgbW9kdWxlIG5hbWUgXCInK3IrJ1wiJyk7Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8uZGVjbGFyZUxlZ2FjeU5hbWVzcGFjZT9nb29nLmNvbnN0cnVjdE5hbWVzcGFjZV8ocixuKTpnb29nLlNFQUxfTU9EVUxFX0VYUE9SVFMmJk9iamVjdC5zZWFsJiZcIm9iamVjdFwiPT10eXBlb2YgbiYmbnVsbCE9biYmT2JqZWN0LnNlYWwobiksZ29vZy5sb2FkZWRNb2R1bGVzX1tyXT17ZXhwb3J0czpuLHR5cGU6Z29vZy5Nb2R1bGVUeXBlLkdPT0csbW9kdWxlSWQ6Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZX19ZmluYWxseXtnb29nLm1vZHVsZUxvYWRlclN0YXRlXz10fX0sZ29vZy5sb2FkTW9kdWxlRnJvbVNvdXJjZV89ZnVuY3Rpb24oYSl7cmV0dXJuIGV2YWwoYSkse319LGdvb2cubm9ybWFsaXplUGF0aF89ZnVuY3Rpb24oZSl7ZT1lLnNwbGl0KFwiL1wiKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoOylcIi5cIj09ZVt0XT9lLnNwbGljZSh0LDEpOnQmJlwiLi5cIj09ZVt0XSYmZVt0LTFdJiZcIi4uXCIhPWVbdC0xXT9lLnNwbGljZSgtLXQsMik6dCsrO3JldHVybiBlLmpvaW4oXCIvXCIpfSxnb29nLmxvYWRGaWxlU3luY189ZnVuY3Rpb24oZSl7aWYoZ29vZy5nbG9iYWwuQ0xPU1VSRV9MT0FEX0ZJTEVfU1lOQylyZXR1cm4gZ29vZy5nbG9iYWwuQ0xPU1VSRV9MT0FEX0ZJTEVfU1lOQyhlKTt0cnl7dmFyIHQ9bmV3IGdvb2cuZ2xvYmFsLlhNTEh0dHBSZXF1ZXN0O3JldHVybiB0Lm9wZW4oXCJnZXRcIixlLCExKSx0LnNlbmQoKSwwPT10LnN0YXR1c3x8MjAwPT10LnN0YXR1cz90LnJlc3BvbnNlVGV4dDpudWxsfWNhdGNoKG4pe3JldHVybiBudWxsfX0sZ29vZy50cmFuc3BpbGVfPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1nb29nLmdsb2JhbC4kanNjb21wO3J8fChnb29nLmdsb2JhbC4kanNjb21wPXI9e30pO3ZhciBpPXIudHJhbnNwaWxlO2lmKCFpKXt2YXIgbz1nb29nLmJhc2VQYXRoK2dvb2cuVFJBTlNQSUxFUixhPWdvb2cubG9hZEZpbGVTeW5jXyhvKTtpZihhKXtpZihmdW5jdGlvbigpeygwLGV2YWwpKGErXCJcXG4vLyMgc291cmNlVVJMPVwiK28pfS5jYWxsKGdvb2cuZ2xvYmFsKSxnb29nLmdsb2JhbC4kZ3d0RXhwb3J0JiZnb29nLmdsb2JhbC4kZ3d0RXhwb3J0LiRqc2NvbXAmJiFnb29nLmdsb2JhbC4kZ3d0RXhwb3J0LiRqc2NvbXAudHJhbnNwaWxlKXRocm93IEVycm9yKCdUaGUgdHJhbnNwaWxlciBkaWQgbm90IHByb3Blcmx5IGV4cG9ydCB0aGUgXCJ0cmFuc3BpbGVcIiBtZXRob2QuICRnd3RFeHBvcnQ6ICcrSlNPTi5zdHJpbmdpZnkoZ29vZy5nbG9iYWwuJGd3dEV4cG9ydCkpO2dvb2cuZ2xvYmFsLiRqc2NvbXAudHJhbnNwaWxlPWdvb2cuZ2xvYmFsLiRnd3RFeHBvcnQuJGpzY29tcC50cmFuc3BpbGUsaT0ocj1nb29nLmdsb2JhbC4kanNjb21wKS50cmFuc3BpbGV9fXJldHVybiBpfHwoaT1yLnRyYW5zcGlsZT1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmxvZ1RvQ29uc29sZV8odCtcIiByZXF1aXJlcyB0cmFuc3BpbGF0aW9uIGJ1dCBubyB0cmFuc3BpbGVyIHdhcyBmb3VuZC5cIiksZX0pLGkoZSx0LG4pfSxnb29nLnR5cGVPZj1mdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZTtpZihcIm9iamVjdFwiPT10KXtpZighZSlyZXR1cm5cIm51bGxcIjtpZihlIGluc3RhbmNlb2YgQXJyYXkpcmV0dXJuXCJhcnJheVwiO2lmKGUgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIHQ7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpO2lmKFwiW29iamVjdCBXaW5kb3ddXCI9PW4pcmV0dXJuXCJvYmplY3RcIjtpZihcIltvYmplY3QgQXJyYXldXCI9PW58fFwibnVtYmVyXCI9PXR5cGVvZiBlLmxlbmd0aCYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGUuc3BsaWNlJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSYmIWUucHJvcGVydHlJc0VudW1lcmFibGUoXCJzcGxpY2VcIikpcmV0dXJuXCJhcnJheVwiO2lmKFwiW29iamVjdCBGdW5jdGlvbl1cIj09bnx8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGUuY2FsbCYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGUucHJvcGVydHlJc0VudW1lcmFibGUmJiFlLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwiY2FsbFwiKSlyZXR1cm5cImZ1bmN0aW9uXCJ9ZWxzZSBpZihcImZ1bmN0aW9uXCI9PXQmJlwidW5kZWZpbmVkXCI9PXR5cGVvZiBlLmNhbGwpcmV0dXJuXCJvYmplY3RcIjtyZXR1cm4gdH0sZ29vZy5pc0FycmF5PWZ1bmN0aW9uKGUpe3JldHVyblwiYXJyYXlcIj09Z29vZy50eXBlT2YoZSl9LGdvb2cuaXNBcnJheUxpa2U9ZnVuY3Rpb24oZSl7dmFyIHQ9Z29vZy50eXBlT2YoZSk7cmV0dXJuXCJhcnJheVwiPT10fHxcIm9iamVjdFwiPT10JiZcIm51bWJlclwiPT10eXBlb2YgZS5sZW5ndGh9LGdvb2cuaXNEYXRlTGlrZT1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pc09iamVjdChlKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5nZXRGdWxsWWVhcn0sZ29vZy5pc0Z1bmN0aW9uPWZ1bmN0aW9uKGUpe3JldHVyblwiZnVuY3Rpb25cIj09Z29vZy50eXBlT2YoZSl9LGdvb2cuaXNPYmplY3Q9ZnVuY3Rpb24oZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuXCJvYmplY3RcIj09dCYmbnVsbCE9ZXx8XCJmdW5jdGlvblwiPT10fSxnb29nLmdldFVpZD1mdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsZ29vZy5VSURfUFJPUEVSVFlfKSYmZVtnb29nLlVJRF9QUk9QRVJUWV9dfHwoZVtnb29nLlVJRF9QUk9QRVJUWV9dPSsrZ29vZy51aWRDb3VudGVyXyl9LGdvb2cuaGFzVWlkPWZ1bmN0aW9uKGUpe3JldHVybiEhZVtnb29nLlVJRF9QUk9QRVJUWV9dfSxnb29nLnJlbW92ZVVpZD1mdW5jdGlvbihlKXtudWxsIT09ZSYmXCJyZW1vdmVBdHRyaWJ1dGVcImluIGUmJmUucmVtb3ZlQXR0cmlidXRlKGdvb2cuVUlEX1BST1BFUlRZXyk7dHJ5e2RlbGV0ZSBlW2dvb2cuVUlEX1BST1BFUlRZX119Y2F0Y2godCl7fX0sZ29vZy5VSURfUFJPUEVSVFlfPVwiY2xvc3VyZV91aWRfXCIrKDFlOSpNYXRoLnJhbmRvbSgpPj4+MCksZ29vZy51aWRDb3VudGVyXz0wLGdvb2cuZ2V0SGFzaENvZGU9Z29vZy5nZXRVaWQsZ29vZy5yZW1vdmVIYXNoQ29kZT1nb29nLnJlbW92ZVVpZCxnb29nLmNsb25lT2JqZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PWdvb2cudHlwZU9mKGUpO2lmKFwib2JqZWN0XCI9PXR8fFwiYXJyYXlcIj09dCl7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY2xvbmUpcmV0dXJuIGUuY2xvbmUoKTtmb3IodmFyIG4gaW4gdD1cImFycmF5XCI9PXQ/W106e30sZSl0W25dPWdvb2cuY2xvbmVPYmplY3QoZVtuXSk7cmV0dXJuIHR9cmV0dXJuIGV9LGdvb2cuYmluZE5hdGl2ZV89ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLmNhbGwuYXBwbHkoZS5iaW5kLGFyZ3VtZW50cyl9LGdvb2cuYmluZEpzXz1mdW5jdGlvbihlLHQsbil7aWYoIWUpdGhyb3cgRXJyb3IoKTtpZigyPGFyZ3VtZW50cy5sZW5ndGgpe3ZhciByPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShuLHIpLGUuYXBwbHkodCxuKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX0sZ29vZy5iaW5kPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQmJi0xIT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoXCJuYXRpdmUgY29kZVwiKT9nb29nLmJpbmQ9Z29vZy5iaW5kTmF0aXZlXzpnb29nLmJpbmQ9Z29vZy5iaW5kSnNfLGdvb2cuYmluZC5hcHBseShudWxsLGFyZ3VtZW50cyl9LGdvb2cucGFydGlhbD1mdW5jdGlvbihlLHQpe3ZhciBuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1uLnNsaWNlKCk7cmV0dXJuIHQucHVzaC5hcHBseSh0LGFyZ3VtZW50cyksZS5hcHBseSh0aGlzLHQpfX0sZ29vZy5taXhpbj1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KWVbbl09dFtuXX0sZ29vZy5ub3c9Z29vZy5UUlVTVEVEX1NJVEUmJkRhdGUubm93fHxmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sZ29vZy5nbG9iYWxFdmFsPWZ1bmN0aW9uKGUpe2lmKGdvb2cuZ2xvYmFsLmV4ZWNTY3JpcHQpZ29vZy5nbG9iYWwuZXhlY1NjcmlwdChlLFwiSmF2YVNjcmlwdFwiKTtlbHNle2lmKCFnb29nLmdsb2JhbC5ldmFsKXRocm93IEVycm9yKFwiZ29vZy5nbG9iYWxFdmFsIG5vdCBhdmFpbGFibGVcIik7aWYobnVsbD09Z29vZy5ldmFsV29ya3NGb3JHbG9iYWxzXyl7dHJ5e2dvb2cuZ2xvYmFsLmV2YWwoXCJ2YXIgX2V2YWxUZXN0XyA9IDE7XCIpfWNhdGNoKHIpe31pZihcInVuZGVmaW5lZFwiIT10eXBlb2YgZ29vZy5nbG9iYWwuX2V2YWxUZXN0Xyl7dHJ5e2RlbGV0ZSBnb29nLmdsb2JhbC5fZXZhbFRlc3RffWNhdGNoKHIpe31nb29nLmV2YWxXb3Jrc0Zvckdsb2JhbHNfPSEwfWVsc2UgZ29vZy5ldmFsV29ya3NGb3JHbG9iYWxzXz0hMX1pZihnb29nLmV2YWxXb3Jrc0Zvckdsb2JhbHNfKWdvb2cuZ2xvYmFsLmV2YWwoZSk7ZWxzZXt2YXIgdD1nb29nLmdsb2JhbC5kb2N1bWVudCxuPXQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtuLnR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIixuLmRlZmVyPSExLG4uYXBwZW5kQ2hpbGQodC5jcmVhdGVUZXh0Tm9kZShlKSksdC5oZWFkLmFwcGVuZENoaWxkKG4pLHQuaGVhZC5yZW1vdmVDaGlsZChuKX19fSxnb29nLmV2YWxXb3Jrc0Zvckdsb2JhbHNfPW51bGwsZ29vZy5nZXRDc3NOYW1lPWZ1bmN0aW9uKGUsdCl7aWYoXCIuXCI9PVN0cmluZyhlKS5jaGFyQXQoMCkpdGhyb3cgRXJyb3IoJ2NsYXNzTmFtZSBwYXNzZWQgaW4gZ29vZy5nZXRDc3NOYW1lIG11c3Qgbm90IHN0YXJ0IHdpdGggXCIuXCIuIFlvdSBwYXNzZWQ6ICcrZSk7dmFyIG49ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuY3NzTmFtZU1hcHBpbmdfW2VdfHxlfSxyPWZ1bmN0aW9uKGUpe2U9ZS5zcGxpdChcIi1cIik7Zm9yKHZhciB0PVtdLHI9MDtyPGUubGVuZ3RoO3IrKyl0LnB1c2gobihlW3JdKSk7cmV0dXJuIHQuam9pbihcIi1cIil9O3JldHVybiByPWdvb2cuY3NzTmFtZU1hcHBpbmdfP1wiQllfV0hPTEVcIj09Z29vZy5jc3NOYW1lTWFwcGluZ1N0eWxlXz9uOnI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGU9dD9lK1wiLVwiK3IodCk6cihlKSxnb29nLmdsb2JhbC5DTE9TVVJFX0NTU19OQU1FX01BUF9GTj9nb29nLmdsb2JhbC5DTE9TVVJFX0NTU19OQU1FX01BUF9GTihlKTplfSxnb29nLnNldENzc05hbWVNYXBwaW5nPWZ1bmN0aW9uKGUsdCl7Z29vZy5jc3NOYW1lTWFwcGluZ189ZSxnb29nLmNzc05hbWVNYXBwaW5nU3R5bGVfPXR9LCFDT01QSUxFRCYmZ29vZy5nbG9iYWwuQ0xPU1VSRV9DU1NfTkFNRV9NQVBQSU5HJiYoZ29vZy5jc3NOYW1lTWFwcGluZ189Z29vZy5nbG9iYWwuQ0xPU1VSRV9DU1NfTkFNRV9NQVBQSU5HKSxnb29nLmdldE1zZz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4mJm4uaHRtbCYmKGU9ZS5yZXBsYWNlKC88L2csXCImbHQ7XCIpKSx0JiYoZT1lLnJlcGxhY2UoL1xce1xcJChbXn1dKyl9L2csKGZ1bmN0aW9uKGUsbil7cmV0dXJuIG51bGwhPXQmJm4gaW4gdD90W25dOmV9KSkpLGV9LGdvb2cuZ2V0TXNnV2l0aEZhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV9LGdvb2cuZXhwb3J0U3ltYm9sPWZ1bmN0aW9uKGUsdCxuKXtnb29nLmV4cG9ydFBhdGhfKGUsdCxuKX0sZ29vZy5leHBvcnRQcm9wZXJ0eT1mdW5jdGlvbihlLHQsbil7ZVt0XT1ufSxnb29nLmluaGVyaXRzPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe31uLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnN1cGVyQ2xhc3NfPXQucHJvdG90eXBlLGUucHJvdG90eXBlPW5ldyBuLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5iYXNlPWZ1bmN0aW9uKGUsbixyKXtmb3IodmFyIGk9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxvPTI7bzxhcmd1bWVudHMubGVuZ3RoO28rKylpW28tMl09YXJndW1lbnRzW29dO3JldHVybiB0LnByb3RvdHlwZVtuXS5hcHBseShlLGkpfX0sZ29vZy5zY29wZT1mdW5jdGlvbihlKXtpZihnb29nLmlzSW5Nb2R1bGVMb2FkZXJfKCkpdGhyb3cgRXJyb3IoXCJnb29nLnNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aGluIGEgbW9kdWxlLlwiKTtlLmNhbGwoZ29vZy5nbG9iYWwpfSxDT01QSUxFRHx8KGdvb2cuZ2xvYmFsLkNPTVBJTEVEPUNPTVBJTEVEKSxnb29nLmRlZmluZUNsYXNzPWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5jb25zdHJ1Y3RvcixyPXQuc3RhdGljcztyZXR1cm4gbiYmbiE9T2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcnx8KG49ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihcImNhbm5vdCBpbnN0YW50aWF0ZSBhbiBpbnRlcmZhY2UgKG5vIGNvbnN0cnVjdG9yIGRlZmluZWQpLlwiKX0pLG49Z29vZy5kZWZpbmVDbGFzcy5jcmVhdGVTZWFsaW5nQ29uc3RydWN0b3JfKG4sZSksZSYmZ29vZy5pbmhlcml0cyhuLGUpLGRlbGV0ZSB0LmNvbnN0cnVjdG9yLGRlbGV0ZSB0LnN0YXRpY3MsZ29vZy5kZWZpbmVDbGFzcy5hcHBseVByb3BlcnRpZXNfKG4ucHJvdG90eXBlLHQpLG51bGwhPXImJihyIGluc3RhbmNlb2YgRnVuY3Rpb24/cihuKTpnb29nLmRlZmluZUNsYXNzLmFwcGx5UHJvcGVydGllc18obixyKSksbn0sZ29vZy5kZWZpbmVDbGFzcy5TRUFMX0NMQVNTX0lOU1RBTkNFUz1nb29nLkRFQlVHLGdvb2cuZGVmaW5lQ2xhc3MuY3JlYXRlU2VhbGluZ0NvbnN0cnVjdG9yXz1mdW5jdGlvbihlLHQpe2lmKCFnb29nLmRlZmluZUNsYXNzLlNFQUxfQ0xBU1NfSU5TVEFOQ0VTKXJldHVybiBlO3ZhciBuPSFnb29nLmRlZmluZUNsYXNzLmlzVW5zZWFsYWJsZV8odCkscj1mdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiB0W2dvb2cuVUlEX1BST1BFUlRZX109dFtnb29nLlVJRF9QUk9QRVJUWV9dLHRoaXMuY29uc3RydWN0b3I9PT1yJiZuJiZPYmplY3Quc2VhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZPYmplY3Quc2VhbCh0KSx0fTtyZXR1cm4gcn0sZ29vZy5kZWZpbmVDbGFzcy5pc1Vuc2VhbGFibGVfPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLnByb3RvdHlwZSYmZS5wcm90b3R5cGVbZ29vZy5VTlNFQUxBQkxFX0NPTlNUUlVDVE9SX1BST1BFUlRZX119LGdvb2cuZGVmaW5lQ2xhc3MuT0JKRUNUX1BST1RPVFlQRV9GSUVMRFNfPVwiY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mXCIuc3BsaXQoXCIgXCIpLGdvb2cuZGVmaW5lQ2xhc3MuYXBwbHlQcm9wZXJ0aWVzXz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtmb3IodmFyIHI9MDtyPGdvb2cuZGVmaW5lQ2xhc3MuT0JKRUNUX1BST1RPVFlQRV9GSUVMRFNfLmxlbmd0aDtyKyspbj1nb29nLmRlZmluZUNsYXNzLk9CSkVDVF9QUk9UT1RZUEVfRklFTERTX1tyXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSl9LGdvb2cudGFnVW5zZWFsYWJsZUNsYXNzPWZ1bmN0aW9uKGUpeyFDT01QSUxFRCYmZ29vZy5kZWZpbmVDbGFzcy5TRUFMX0NMQVNTX0lOU1RBTkNFUyYmKGUucHJvdG90eXBlW2dvb2cuVU5TRUFMQUJMRV9DT05TVFJVQ1RPUl9QUk9QRVJUWV9dPSEwKX0sZ29vZy5VTlNFQUxBQkxFX0NPTlNUUlVDVE9SX1BST1BFUlRZXz1cImdvb2dfZGVmaW5lQ2xhc3NfbGVnYWN5X3Vuc2VhbGFibGVcIiwhQ09NUElMRUQmJmdvb2cuREVQRU5ERU5DSUVTX0VOQUJMRUQmJihnb29nLmluSHRtbERvY3VtZW50Xz1mdW5jdGlvbigpe3ZhciBlPWdvb2cuZ2xvYmFsLmRvY3VtZW50O3JldHVybiBudWxsIT1lJiZcIndyaXRlXCJpbiBlfSxnb29nLmlzRG9jdW1lbnRMb2FkaW5nXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cuZ2xvYmFsLmRvY3VtZW50O3JldHVybiBlLmF0dGFjaEV2ZW50P1wiY29tcGxldGVcIiE9ZS5yZWFkeVN0YXRlOlwibG9hZGluZ1wiPT1lLnJlYWR5U3RhdGV9LGdvb2cuZmluZEJhc2VQYXRoXz1mdW5jdGlvbigpe2lmKHZvaWQgMCE9Z29vZy5nbG9iYWwuQ0xPU1VSRV9CQVNFX1BBVEgmJlwic3RyaW5nXCI9PT10eXBlb2YgZ29vZy5nbG9iYWwuQ0xPU1VSRV9CQVNFX1BBVEgpZ29vZy5iYXNlUGF0aD1nb29nLmdsb2JhbC5DTE9TVVJFX0JBU0VfUEFUSDtlbHNlIGlmKGdvb2cuaW5IdG1sRG9jdW1lbnRfKCkpe3ZhciBlPWdvb2cuZ2xvYmFsLmRvY3VtZW50LHQ9ZS5jdXJyZW50U2NyaXB0O2Zvcih0PShlPXQ/W3RdOmUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJTQ1JJUFRcIikpLmxlbmd0aC0xOzA8PXQ7LS10KXt2YXIgbj1lW3RdLnNyYyxyPW4ubGFzdEluZGV4T2YoXCI/XCIpO2lmKHI9LTE9PXI/bi5sZW5ndGg6cixcImJhc2UuanNcIj09bi5zdWJzdHIoci03LDcpKXtnb29nLmJhc2VQYXRoPW4uc3Vic3RyKDAsci03KTticmVha319fX0sZ29vZy5maW5kQmFzZVBhdGhfKCksZ29vZy5UcmFuc3BpbGVyPWZ1bmN0aW9uKCl7dGhpcy5yZXF1aXJlc1RyYW5zcGlsYXRpb25fPW51bGwsdGhpcy50cmFuc3BpbGF0aW9uVGFyZ2V0Xz1nb29nLlRSQU5TUElMRV9UT19MQU5HVUFHRX0sZ29vZy5UcmFuc3BpbGVyLnByb3RvdHlwZS5jcmVhdGVSZXF1aXJlc1RyYW5zcGlsYXRpb25fPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LG4pe2U/ZFt0XT0hMDpuKCk/KGM9dCxkW3RdPSExKTplPWRbdF09ITB9ZnVuY3Rpb24gYihhKXt0cnl7cmV0dXJuISFldmFsKGEpfWNhdGNoKGgpe3JldHVybiExfX12YXIgYz1cImVzM1wiLGQ9e2VzMzohMX0sZT0hMSxmPWdvb2cuZ2xvYmFsLm5hdmlnYXRvciYmZ29vZy5nbG9iYWwubmF2aWdhdG9yLnVzZXJBZ2VudD9nb29nLmdsb2JhbC5uYXZpZ2F0b3IudXNlckFnZW50OlwiXCI7cmV0dXJuIGEoXCJlczVcIiwoZnVuY3Rpb24oKXtyZXR1cm4gYihcIlsxLF0ubGVuZ3RoPT0xXCIpfSkpLGEoXCJlczZcIiwoZnVuY3Rpb24oKXtyZXR1cm4hZi5tYXRjaCgvRWRnZVxcLyhcXGQrKShcXC5cXGQpKi9pKSYmYignKCgpPT57XCJ1c2Ugc3RyaWN0XCI7Y2xhc3MgWHtjb25zdHJ1Y3Rvcigpe2lmKG5ldy50YXJnZXQhPVN0cmluZyl0aHJvdyAxO3RoaXMueD00Mn19bGV0IHE9UmVmbGVjdC5jb25zdHJ1Y3QoWCxbXSxTdHJpbmcpO2lmKHEueCE9NDJ8fCEocSBpbnN0YW5jZW9mIFN0cmluZykpdGhyb3cgMTtmb3IoY29uc3QgYSBvZlsyLDNdKXtpZihhPT0yKWNvbnRpbnVlO2Z1bmN0aW9uIGYoej17YX0pe2xldCBhPTA7cmV0dXJuIHouYX17ZnVuY3Rpb24gZigpe3JldHVybiAwO319cmV0dXJuIGYoKT09M319KSgpJyl9KSksYShcImVzN1wiLChmdW5jdGlvbigpe3JldHVybiBiKFwiMiAqKiAyID09IDRcIil9KSksYShcImVzOFwiLChmdW5jdGlvbigpe3JldHVybiBiKFwiYXN5bmMgKCkgPT4gMSwgdHJ1ZVwiKX0pKSxhKFwiZXM5XCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGIoXCIoey4uLnJlc3R9ID0ge30pLCB0cnVlXCIpfSkpLGEoXCJlc19uZXh0XCIsKGZ1bmN0aW9uKCl7cmV0dXJuITF9KSkse3RhcmdldDpjLG1hcDpkfX0sZ29vZy5UcmFuc3BpbGVyLnByb3RvdHlwZS5uZWVkc1RyYW5zcGlsZT1mdW5jdGlvbihlLHQpe2lmKFwiYWx3YXlzXCI9PWdvb2cuVFJBTlNQSUxFKXJldHVybiEwO2lmKFwibmV2ZXJcIj09Z29vZy5UUkFOU1BJTEUpcmV0dXJuITE7aWYoIXRoaXMucmVxdWlyZXNUcmFuc3BpbGF0aW9uXyl7dmFyIG49dGhpcy5jcmVhdGVSZXF1aXJlc1RyYW5zcGlsYXRpb25fKCk7dGhpcy5yZXF1aXJlc1RyYW5zcGlsYXRpb25fPW4ubWFwLHRoaXMudHJhbnNwaWxhdGlvblRhcmdldF89dGhpcy50cmFuc3BpbGF0aW9uVGFyZ2V0X3x8bi50YXJnZXR9aWYoZSBpbiB0aGlzLnJlcXVpcmVzVHJhbnNwaWxhdGlvbl8pcmV0dXJuISF0aGlzLnJlcXVpcmVzVHJhbnNwaWxhdGlvbl9bZV18fCEoIWdvb2cuaW5IdG1sRG9jdW1lbnRfKCl8fFwiZXM2XCIhPXR8fFwibm9Nb2R1bGVcImluIGdvb2cuZ2xvYmFsLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpO3Rocm93IEVycm9yKFwiVW5rbm93biBsYW5ndWFnZSBtb2RlOiBcIitlKX0sZ29vZy5UcmFuc3BpbGVyLnByb3RvdHlwZS50cmFuc3BpbGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy50cmFuc3BpbGVfKGUsdCx0aGlzLnRyYW5zcGlsYXRpb25UYXJnZXRfKX0sZ29vZy50cmFuc3BpbGVyXz1uZXcgZ29vZy5UcmFuc3BpbGVyLGdvb2cucHJvdGVjdFNjcmlwdFRhZ189ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvPFxcLyhTQ1JJUFQpL2dpLFwiXFxcXHgzYy8kMVwiKX0sZ29vZy5EZWJ1Z0xvYWRlcl89ZnVuY3Rpb24oKXt0aGlzLmRlcGVuZGVuY2llc189e30sdGhpcy5pZFRvUGF0aF89e30sdGhpcy53cml0dGVuXz17fSx0aGlzLmxvYWRpbmdEZXBzXz1bXSx0aGlzLmRlcHNUb0xvYWRfPVtdLHRoaXMucGF1c2VkXz0hMSx0aGlzLmZhY3RvcnlfPW5ldyBnb29nLkRlcGVuZGVuY3lGYWN0b3J5KGdvb2cudHJhbnNwaWxlcl8pLHRoaXMuZGVmZXJyZWRDYWxsYmFja3NfPXt9LHRoaXMuZGVmZXJyZWRRdWV1ZV89W119LGdvb2cuRGVidWdMb2FkZXJfLnByb3RvdHlwZS5ib290c3RyYXA9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7ciYmKGdvb2cuZ2xvYmFsLnNldFRpbWVvdXQociwwKSxyPW51bGwpfXZhciByPXQ7aWYoZS5sZW5ndGgpe3Q9W107Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPXRoaXMuZ2V0UGF0aEZyb21EZXBzXyhlW2ldKTtpZighbyl0aHJvdyBFcnJvcihcIlVucmVnb25pemVkIG5hbWVzcGFjZTogXCIrZVtpXSk7dC5wdXNoKHRoaXMuZGVwZW5kZW5jaWVzX1tvXSl9bz1nb29nLnJlcXVpcmU7dmFyIGE9MDtmb3IoaT0wO2k8ZS5sZW5ndGg7aSsrKW8oZVtpXSksdFtpXS5vbkxvYWQoKGZ1bmN0aW9uKCl7KythPT1lLmxlbmd0aCYmbigpfSkpfWVsc2UgbigpfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUubG9hZENsb3N1cmVEZXBzPWZ1bmN0aW9uKCl7dGhpcy5kZXBzVG9Mb2FkXy5wdXNoKHRoaXMuZmFjdG9yeV8uY3JlYXRlRGVwZW5kZW5jeShnb29nLm5vcm1hbGl6ZVBhdGhfKGdvb2cuYmFzZVBhdGgrXCJkZXBzLmpzXCIpLFwiZGVwcy5qc1wiLFtdLFtdLHt9LCExKSksdGhpcy5sb2FkRGVwc18oKX0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLnJlcXVlc3RlZD1mdW5jdGlvbihlLHQpeyhlPXRoaXMuZ2V0UGF0aEZyb21EZXBzXyhlKSkmJih0fHx0aGlzLmFyZURlcHNMb2FkZWRfKHRoaXMuZGVwZW5kZW5jaWVzX1tlXS5yZXF1aXJlcykpJiYodD10aGlzLmRlZmVycmVkQ2FsbGJhY2tzX1tlXSkmJihkZWxldGUgdGhpcy5kZWZlcnJlZENhbGxiYWNrc19bZV0sdCgpKX0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLnNldERlcGVuZGVuY3lGYWN0b3J5PWZ1bmN0aW9uKGUpe3RoaXMuZmFjdG9yeV89ZX0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmxvYWRfPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLmdldFBhdGhGcm9tRGVwc18oZSkpdGhyb3cgZT1cImdvb2cucmVxdWlyZSBjb3VsZCBub3QgZmluZDogXCIrZSxnb29nLmxvZ1RvQ29uc29sZV8oZSksRXJyb3IoZSk7dmFyIHQ9dGhpcyxuPVtdLHI9ZnVuY3Rpb24oZSl7dmFyIGk9dC5nZXRQYXRoRnJvbURlcHNfKGUpO2lmKCFpKXRocm93IEVycm9yKFwiQmFkIGRlcGVuZGVuY3kgcGF0aCBvciBzeW1ib2w6IFwiK2UpO2lmKCF0LndyaXR0ZW5fW2ldKXtmb3IodC53cml0dGVuX1tpXT0hMCxlPXQuZGVwZW5kZW5jaWVzX1tpXSxpPTA7aTxlLnJlcXVpcmVzLmxlbmd0aDtpKyspZ29vZy5pc1Byb3ZpZGVkXyhlLnJlcXVpcmVzW2ldKXx8cihlLnJlcXVpcmVzW2ldKTtuLnB1c2goZSl9fTtyKGUpLGU9ISF0aGlzLmRlcHNUb0xvYWRfLmxlbmd0aCx0aGlzLmRlcHNUb0xvYWRfPXRoaXMuZGVwc1RvTG9hZF8uY29uY2F0KG4pLHRoaXMucGF1c2VkX3x8ZXx8dGhpcy5sb2FkRGVwc18oKX0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmxvYWREZXBzXz1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLHQ9dGhpcy5wYXVzZWRfO3RoaXMuZGVwc1RvTG9hZF8ubGVuZ3RoJiYhdDspIWZ1bmN0aW9uKCl7dmFyIG49ITEscj1lLmRlcHNUb0xvYWRfLnNoaWZ0KCksaT0hMTtlLmxvYWRpbmdfKHIpO3ZhciBvPXtwYXVzZTpmdW5jdGlvbigpe2lmKG4pdGhyb3cgRXJyb3IoXCJDYW5ub3QgY2FsbCBwYXVzZSBhZnRlciB0aGUgY2FsbCB0byBsb2FkLlwiKTt0PSEwfSxyZXN1bWU6ZnVuY3Rpb24oKXtuP2UucmVzdW1lXygpOnQ9ITF9LGxvYWRlZDpmdW5jdGlvbigpe2lmKGkpdGhyb3cgRXJyb3IoXCJEb3VibGUgY2FsbCB0byBsb2FkZWQuXCIpO2k9ITAsZS5sb2FkZWRfKHIpfSxwZW5kaW5nOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLG49MDtuPGUubG9hZGluZ0RlcHNfLmxlbmd0aDtuKyspdC5wdXNoKGUubG9hZGluZ0RlcHNfW25dKTtyZXR1cm4gdH0sc2V0TW9kdWxlU3RhdGU6ZnVuY3Rpb24oZSl7Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV89e3R5cGU6ZSxtb2R1bGVOYW1lOlwiXCIsZGVjbGFyZUxlZ2FjeU5hbWVzcGFjZTohMX19LHJlZ2lzdGVyRXM2TW9kdWxlRXhwb3J0czpmdW5jdGlvbihlLHQsbil7biYmKGdvb2cubG9hZGVkTW9kdWxlc19bbl09e2V4cG9ydHM6dCx0eXBlOmdvb2cuTW9kdWxlVHlwZS5FUzYsbW9kdWxlSWQ6bnx8XCJcIn0pfSxyZWdpc3Rlckdvb2dNb2R1bGVFeHBvcnRzOmZ1bmN0aW9uKGUsdCl7Z29vZy5sb2FkZWRNb2R1bGVzX1tlXT17ZXhwb3J0czp0LHR5cGU6Z29vZy5Nb2R1bGVUeXBlLkdPT0csbW9kdWxlSWQ6ZX19LGNsZWFyTW9kdWxlU3RhdGU6ZnVuY3Rpb24oKXtnb29nLm1vZHVsZUxvYWRlclN0YXRlXz1udWxsfSxkZWZlcjpmdW5jdGlvbih0KXtpZihuKXRocm93IEVycm9yKFwiQ2Fubm90IHJlZ2lzdGVyIHdpdGggZGVmZXIgYWZ0ZXIgdGhlIGNhbGwgdG8gbG9hZC5cIik7ZS5kZWZlcl8ocix0KX0sYXJlRGVwc0xvYWRlZDpmdW5jdGlvbigpe3JldHVybiBlLmFyZURlcHNMb2FkZWRfKHIucmVxdWlyZXMpfX07dHJ5e3IubG9hZChvKX1maW5hbGx5e249ITB9fSgpO3QmJnRoaXMucGF1c2VfKCl9LGdvb2cuRGVidWdMb2FkZXJfLnByb3RvdHlwZS5wYXVzZV89ZnVuY3Rpb24oKXt0aGlzLnBhdXNlZF89ITB9LGdvb2cuRGVidWdMb2FkZXJfLnByb3RvdHlwZS5yZXN1bWVfPWZ1bmN0aW9uKCl7dGhpcy5wYXVzZWRfJiYodGhpcy5wYXVzZWRfPSExLHRoaXMubG9hZERlcHNfKCkpfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUubG9hZGluZ189ZnVuY3Rpb24oZSl7dGhpcy5sb2FkaW5nRGVwc18ucHVzaChlKX0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmxvYWRlZF89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDx0aGlzLmxvYWRpbmdEZXBzXy5sZW5ndGg7dCsrKWlmKHRoaXMubG9hZGluZ0RlcHNfW3RdPT1lKXt0aGlzLmxvYWRpbmdEZXBzXy5zcGxpY2UodCwxKTticmVha31mb3IodD0wO3Q8dGhpcy5kZWZlcnJlZFF1ZXVlXy5sZW5ndGg7dCsrKWlmKHRoaXMuZGVmZXJyZWRRdWV1ZV9bdF09PWUucGF0aCl7dGhpcy5kZWZlcnJlZFF1ZXVlXy5zcGxpY2UodCwxKTticmVha31pZih0aGlzLmxvYWRpbmdEZXBzXy5sZW5ndGg9PXRoaXMuZGVmZXJyZWRRdWV1ZV8ubGVuZ3RoJiYhdGhpcy5kZXBzVG9Mb2FkXy5sZW5ndGgpZm9yKDt0aGlzLmRlZmVycmVkUXVldWVfLmxlbmd0aDspdGhpcy5yZXF1ZXN0ZWQodGhpcy5kZWZlcnJlZFF1ZXVlXy5zaGlmdCgpLCEwKTtlLmxvYWRlZCgpfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUuYXJlRGVwc0xvYWRlZF89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBuPXRoaXMuZ2V0UGF0aEZyb21EZXBzXyhlW3RdKTtpZighbnx8IShuIGluIHRoaXMuZGVmZXJyZWRDYWxsYmFja3NfKSYmIWdvb2cuaXNQcm92aWRlZF8oZVt0XSkpcmV0dXJuITF9cmV0dXJuITB9LGdvb2cuRGVidWdMb2FkZXJfLnByb3RvdHlwZS5nZXRQYXRoRnJvbURlcHNfPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluIHRoaXMuaWRUb1BhdGhfP3RoaXMuaWRUb1BhdGhfW2VdOmUgaW4gdGhpcy5kZXBlbmRlbmNpZXNfP2U6bnVsbH0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmRlZmVyXz1mdW5jdGlvbihlLHQpe3RoaXMuZGVmZXJyZWRDYWxsYmFja3NfW2UucGF0aF09dCx0aGlzLmRlZmVycmVkUXVldWVfLnB1c2goZS5wYXRoKX0sZ29vZy5Mb2FkQ29udHJvbGxlcj1mdW5jdGlvbigpe30sZ29vZy5Mb2FkQ29udHJvbGxlci5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXt9LGdvb2cuTG9hZENvbnRyb2xsZXIucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe30sZ29vZy5Mb2FkQ29udHJvbGxlci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7fSxnb29nLkxvYWRDb250cm9sbGVyLnByb3RvdHlwZS5wZW5kaW5nPWZ1bmN0aW9uKCl7fSxnb29nLkxvYWRDb250cm9sbGVyLnByb3RvdHlwZS5yZWdpc3RlckVzNk1vZHVsZUV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe30sZ29vZy5Mb2FkQ29udHJvbGxlci5wcm90b3R5cGUuc2V0TW9kdWxlU3RhdGU9ZnVuY3Rpb24oZSl7fSxnb29nLkxvYWRDb250cm9sbGVyLnByb3RvdHlwZS5jbGVhck1vZHVsZVN0YXRlPWZ1bmN0aW9uKCl7fSxnb29nLkxvYWRDb250cm9sbGVyLnByb3RvdHlwZS5kZWZlcj1mdW5jdGlvbihlKXt9LGdvb2cuTG9hZENvbnRyb2xsZXIucHJvdG90eXBlLmFyZURlcHNMb2FkZWQ9ZnVuY3Rpb24oKXt9LGdvb2cuRGVwZW5kZW5jeT1mdW5jdGlvbihlLHQsbixyLGkpe3RoaXMucGF0aD1lLHRoaXMucmVsYXRpdmVQYXRoPXQsdGhpcy5wcm92aWRlcz1uLHRoaXMucmVxdWlyZXM9cix0aGlzLmxvYWRGbGFncz1pLHRoaXMubG9hZGVkXz0hMSx0aGlzLmxvYWRDYWxsYmFja3NfPVtdfSxnb29nLkRlcGVuZGVuY3kucHJvdG90eXBlLmdldFBhdGhOYW1lPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wYXRoLHQ9ZS5pbmRleE9mKFwiOi8vXCIpO3JldHVybiAwPD10JiYoMDw9KHQ9KGU9ZS5zdWJzdHJpbmcodCszKSkuaW5kZXhPZihcIi9cIikpJiYoZT1lLnN1YnN0cmluZyh0KzEpKSksZX0sZ29vZy5EZXBlbmRlbmN5LnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oZSl7dGhpcy5sb2FkZWRfP2UoKTp0aGlzLmxvYWRDYWxsYmFja3NfLnB1c2goZSl9LGdvb2cuRGVwZW5kZW5jeS5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7dGhpcy5sb2FkZWRfPSEwO3ZhciBlPXRoaXMubG9hZENhbGxiYWNrc187dGhpcy5sb2FkQ2FsbGJhY2tzXz1bXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdKCl9LGdvb2cuRGVwZW5kZW5jeS5kZWZlcl89ITEsZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrTWFwXz17fSxnb29nLkRlcGVuZGVuY3kucmVnaXN0ZXJDYWxsYmFja189ZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5yYW5kb20oKS50b1N0cmluZygzMik7cmV0dXJuIGdvb2cuRGVwZW5kZW5jeS5jYWxsYmFja01hcF9bdF09ZSx0fSxnb29nLkRlcGVuZGVuY3kudW5yZWdpc3RlckNhbGxiYWNrXz1mdW5jdGlvbihlKXtkZWxldGUgZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrTWFwX1tlXX0sZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrXz1mdW5jdGlvbihlLHQpe2lmKCEoZSBpbiBnb29nLkRlcGVuZGVuY3kuY2FsbGJhY2tNYXBfKSl0aHJvdyBFcnJvcihcIkNhbGxiYWNrIGtleSBcIitlK1wiIGRvZXMgbm90IGV4aXN0ICh3YXMgYmFzZS5qcyBsb2FkZWQgbW9yZSB0aGFuIG9uY2U/KS5cIik7Zm9yKHZhciBuPWdvb2cuRGVwZW5kZW5jeS5jYWxsYmFja01hcF9bZV0scj1bXSxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyLnB1c2goYXJndW1lbnRzW2ldKTtuLmFwcGx5KHZvaWQgMCxyKX0sZ29vZy5EZXBlbmRlbmN5LnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGUpe2lmKGdvb2cuZ2xvYmFsLkNMT1NVUkVfSU1QT1JUX1NDUklQVClnb29nLmdsb2JhbC5DTE9TVVJFX0lNUE9SVF9TQ1JJUFQodGhpcy5wYXRoKT9lLmxvYWRlZCgpOmUucGF1c2UoKTtlbHNlIGlmKGdvb2cuaW5IdG1sRG9jdW1lbnRfKCkpe3ZhciB0PWdvb2cuZ2xvYmFsLmRvY3VtZW50O2lmKFwiY29tcGxldGVcIj09dC5yZWFkeVN0YXRlJiYhZ29vZy5FTkFCTEVfQ0hST01FX0FQUF9TQUZFX1NDUklQVF9MT0FESU5HKXtpZigvXFxiZGVwcy5qcyQvLnRlc3QodGhpcy5wYXRoKSlyZXR1cm4gdm9pZCBlLmxvYWRlZCgpO3Rocm93IEVycm9yKCdDYW5ub3Qgd3JpdGUgXCInK3RoaXMucGF0aCsnXCIgYWZ0ZXIgZG9jdW1lbnQgbG9hZCcpfWlmKCFnb29nLkVOQUJMRV9DSFJPTUVfQVBQX1NBRkVfU0NSSVBUX0xPQURJTkcmJmdvb2cuaXNEb2N1bWVudExvYWRpbmdfKCkpe3ZhciBuPWdvb2cuRGVwZW5kZW5jeS5yZWdpc3RlckNhbGxiYWNrXygoZnVuY3Rpb24odCl7Z29vZy5EZWJ1Z0xvYWRlcl8uSVNfT0xEX0lFXyYmXCJjb21wbGV0ZVwiIT10LnJlYWR5U3RhdGV8fChnb29nLkRlcGVuZGVuY3kudW5yZWdpc3RlckNhbGxiYWNrXyhuKSxlLmxvYWRlZCgpKX0pKSxyPSFnb29nLkRlYnVnTG9hZGVyXy5JU19PTERfSUVfJiZnb29nLmdldFNjcmlwdE5vbmNlKCk/JyBub25jZT1cIicrZ29vZy5nZXRTY3JpcHROb25jZSgpKydcIic6XCJcIjtyPSc8c2NyaXB0IHNyYz1cIicrdGhpcy5wYXRoKydcIiAnKyhnb29nLkRlYnVnTG9hZGVyXy5JU19PTERfSUVfP1wib25yZWFkeXN0YXRlY2hhbmdlXCI6XCJvbmxvYWRcIikrXCI9XFxcImdvb2cuRGVwZW5kZW5jeS5jYWxsYmFja18oJ1wiK24rJ1xcJywgdGhpcylcIiB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgJysoZ29vZy5EZXBlbmRlbmN5LmRlZmVyXz9cImRlZmVyXCI6XCJcIikrcitcIj48XFwvc2NyaXB0PlwiLHQud3JpdGUoZ29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8/Z29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8uY3JlYXRlSFRNTChyKTpyKX1lbHNle3ZhciBpPXQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtpLmRlZmVyPWdvb2cuRGVwZW5kZW5jeS5kZWZlcl8saS5hc3luYz0hMSxpLnR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIiwocj1nb29nLmdldFNjcmlwdE5vbmNlKCkpJiZpLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsciksZ29vZy5EZWJ1Z0xvYWRlcl8uSVNfT0xEX0lFXz8oZS5wYXVzZSgpLGkub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7XCJsb2FkZWRcIiE9aS5yZWFkeVN0YXRlJiZcImNvbXBsZXRlXCIhPWkucmVhZHlTdGF0ZXx8KGUubG9hZGVkKCksZS5yZXN1bWUoKSl9KTppLm9ubG9hZD1mdW5jdGlvbigpe2kub25sb2FkPW51bGwsZS5sb2FkZWQoKX0saS5zcmM9Z29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8/Z29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8uY3JlYXRlU2NyaXB0VVJMKHRoaXMucGF0aCk6dGhpcy5wYXRoLHQuaGVhZC5hcHBlbmRDaGlsZChpKX19ZWxzZSBnb29nLmxvZ1RvQ29uc29sZV8oXCJDYW5ub3QgdXNlIGRlZmF1bHQgZGVidWcgbG9hZGVyIG91dHNpZGUgb2YgSFRNTCBkb2N1bWVudHMuXCIpLFwiZGVwcy5qc1wiPT10aGlzLnJlbGF0aXZlUGF0aD8oZ29vZy5sb2dUb0NvbnNvbGVfKFwiQ29uc2lkZXIgc2V0dGluZyBDTE9TVVJFX0lNUE9SVF9TQ1JJUFQgYmVmb3JlIGxvYWRpbmcgYmFzZS5qcywgb3Igc2V0dGluZyBDTE9TVVJFX05PX0RFUFMgdG8gdHJ1ZS5cIiksZS5sb2FkZWQoKSk6ZS5wYXVzZSgpfSxnb29nLkVzNk1vZHVsZURlcGVuZGVuY3k9ZnVuY3Rpb24oZSx0LG4scixpKXtnb29nLkRlcGVuZGVuY3kuY2FsbCh0aGlzLGUsdCxuLHIsaSl9LGdvb2cuaW5oZXJpdHMoZ29vZy5FczZNb2R1bGVEZXBlbmRlbmN5LGdvb2cuRGVwZW5kZW5jeSksZ29vZy5FczZNb2R1bGVEZXBlbmRlbmN5LnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGUpe2lmKGdvb2cuZ2xvYmFsLkNMT1NVUkVfSU1QT1JUX1NDUklQVClnb29nLmdsb2JhbC5DTE9TVVJFX0lNUE9SVF9TQ1JJUFQodGhpcy5wYXRoKT9lLmxvYWRlZCgpOmUucGF1c2UoKTtlbHNlIGlmKGdvb2cuaW5IdG1sRG9jdW1lbnRfKCkpe3ZhciB0PWdvb2cuZ2xvYmFsLmRvY3VtZW50LG49dGhpcztpZihnb29nLmlzRG9jdW1lbnRMb2FkaW5nXygpKXt2YXIgcj1mdW5jdGlvbihlLG4pe2U9bj8nPHNjcmlwdCB0eXBlPVwibW9kdWxlXCIgY3Jvc3NvcmlnaW4+JytuK1wiPFxcL3NjcmlwdD5cIjonPHNjcmlwdCB0eXBlPVwibW9kdWxlXCIgY3Jvc3NvcmlnaW4gc3JjPVwiJytlKydcIj48XFwvc2NyaXB0PicsdC53cml0ZShnb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz9nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXy5jcmVhdGVIVE1MKGUpOmUpfTtnb29nLkRlcGVuZGVuY3kuZGVmZXJfPSEwfWVsc2Ugcj1mdW5jdGlvbihlLG4pe3ZhciByPXQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtyLmRlZmVyPSEwLHIuYXN5bmM9ITEsci50eXBlPVwibW9kdWxlXCIsci5zZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiLCEwKTt2YXIgaT1nb29nLmdldFNjcmlwdE5vbmNlKCk7aSYmci5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLGkpLG4/ci50ZXh0Q29udGVudD1nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz9nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXy5jcmVhdGVTY3JpcHQobik6bjpyLnNyYz1nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz9nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXy5jcmVhdGVTY3JpcHRVUkwoZSk6ZSx0LmhlYWQuYXBwZW5kQ2hpbGQocil9O3ZhciBpPWdvb2cuRGVwZW5kZW5jeS5yZWdpc3RlckNhbGxiYWNrXygoZnVuY3Rpb24oKXtnb29nLkRlcGVuZGVuY3kudW5yZWdpc3RlckNhbGxiYWNrXyhpKSxlLnNldE1vZHVsZVN0YXRlKGdvb2cuTW9kdWxlVHlwZS5FUzYpfSkpO3Iodm9pZCAwLCdnb29nLkRlcGVuZGVuY3kuY2FsbGJhY2tfKFwiJytpKydcIiknKSxyKHRoaXMucGF0aCx2b2lkIDApO3ZhciBvPWdvb2cuRGVwZW5kZW5jeS5yZWdpc3RlckNhbGxiYWNrXygoZnVuY3Rpb24odCl7Z29vZy5EZXBlbmRlbmN5LnVucmVnaXN0ZXJDYWxsYmFja18obyksZS5yZWdpc3RlckVzNk1vZHVsZUV4cG9ydHMobi5wYXRoLHQsZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZSl9KSk7cih2b2lkIDAsJ2ltcG9ydCAqIGFzIG0gZnJvbSBcIicrdGhpcy5wYXRoKydcIjsgZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrXyhcIicrbysnXCIsIG0pJyk7dmFyIGE9Z29vZy5EZXBlbmRlbmN5LnJlZ2lzdGVyQ2FsbGJhY2tfKChmdW5jdGlvbigpe2dvb2cuRGVwZW5kZW5jeS51bnJlZ2lzdGVyQ2FsbGJhY2tfKGEpLGUuY2xlYXJNb2R1bGVTdGF0ZSgpLGUubG9hZGVkKCl9KSk7cih2b2lkIDAsJ2dvb2cuRGVwZW5kZW5jeS5jYWxsYmFja18oXCInK2ErJ1wiKScpfWVsc2UgZ29vZy5sb2dUb0NvbnNvbGVfKFwiQ2Fubm90IHVzZSBkZWZhdWx0IGRlYnVnIGxvYWRlciBvdXRzaWRlIG9mIEhUTUwgZG9jdW1lbnRzLlwiKSxlLnBhdXNlKCl9LGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxuLHIsaSl7Z29vZy5EZXBlbmRlbmN5LmNhbGwodGhpcyxlLHQsbixyLGkpLHRoaXMuY29udGVudHNfPW51bGwsdGhpcy5sYXp5RmV0Y2hfPSFnb29nLmluSHRtbERvY3VtZW50XygpfHwhKFwibm9Nb2R1bGVcImluIGdvb2cuZ2xvYmFsLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpfSxnb29nLmluaGVyaXRzKGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5LGdvb2cuRGVwZW5kZW5jeSksZ29vZy5UcmFuc2Zvcm1lZERlcGVuZGVuY3kucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3IuY29udGVudHNfPWdvb2cubG9hZEZpbGVTeW5jXyhyLnBhdGgpLHIuY29udGVudHNfJiYoci5jb250ZW50c189ci50cmFuc2Zvcm0oci5jb250ZW50c18pLHIuY29udGVudHNfJiYoci5jb250ZW50c18rPVwiXFxuLy8jIHNvdXJjZVVSTD1cIityLnBhdGgpKX1mdW5jdGlvbiBuKCl7aWYoci5sYXp5RmV0Y2hfJiZ0KCksci5jb250ZW50c18pe2kmJmUuc2V0TW9kdWxlU3RhdGUoZ29vZy5Nb2R1bGVUeXBlLkVTNik7dHJ5e3ZhciBuPXIuY29udGVudHNfO2lmKHIuY29udGVudHNfPW51bGwsZ29vZy5nbG9iYWxFdmFsKG4pLGkpdmFyIG89Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZX1maW5hbGx5e2kmJmUuY2xlYXJNb2R1bGVTdGF0ZSgpfWkmJmdvb2cuZ2xvYmFsLiRqc2NvbXAucmVxdWlyZS5lbnN1cmUoW3IuZ2V0UGF0aE5hbWUoKV0sKGZ1bmN0aW9uKCl7ZS5yZWdpc3RlckVzNk1vZHVsZUV4cG9ydHMoci5wYXRoLGdvb2cuZ2xvYmFsLiRqc2NvbXAucmVxdWlyZShyLmdldFBhdGhOYW1lKCkpLG8pfSkpLGUubG9hZGVkKCl9fXZhciByPXRoaXM7aWYoZ29vZy5nbG9iYWwuQ0xPU1VSRV9JTVBPUlRfU0NSSVBUKXQoKSx0aGlzLmNvbnRlbnRzXyYmZ29vZy5nbG9iYWwuQ0xPU1VSRV9JTVBPUlRfU0NSSVBUKFwiXCIsdGhpcy5jb250ZW50c18pPyh0aGlzLmNvbnRlbnRzXz1udWxsLGUubG9hZGVkKCkpOmUucGF1c2UoKTtlbHNle3ZhciBpPXRoaXMubG9hZEZsYWdzLm1vZHVsZT09Z29vZy5Nb2R1bGVUeXBlLkVTNjt0aGlzLmxhenlGZXRjaF98fHQoKTt2YXIgbz0xPGUucGVuZGluZygpLmxlbmd0aCxhPW8mJmdvb2cuRGVidWdMb2FkZXJfLklTX09MRF9JRV87aWYobz1nb29nLkRlcGVuZGVuY3kuZGVmZXJfJiYob3x8Z29vZy5pc0RvY3VtZW50TG9hZGluZ18oKSksYXx8byllLmRlZmVyKChmdW5jdGlvbigpe24oKX0pKTtlbHNle3ZhciBzPWdvb2cuZ2xvYmFsLmRvY3VtZW50O2lmKGE9Z29vZy5pbkh0bWxEb2N1bWVudF8oKSYmXCJBY3RpdmVYT2JqZWN0XCJpbiBnb29nLmdsb2JhbCxpJiZnb29nLmluSHRtbERvY3VtZW50XygpJiZnb29nLmlzRG9jdW1lbnRMb2FkaW5nXygpJiYhYSl7Z29vZy5EZXBlbmRlbmN5LmRlZmVyXz0hMCxlLnBhdXNlKCk7dmFyIGM9cy5vbnJlYWR5c3RhdGVjaGFuZ2U7cy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtcImludGVyYWN0aXZlXCI9PXMucmVhZHlTdGF0ZSYmKHMub25yZWFkeXN0YXRlY2hhbmdlPWMsbigpLGUucmVzdW1lKCkpLGdvb2cuaXNGdW5jdGlvbihjKSYmYy5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19ZWxzZSFnb29nLkRlYnVnTG9hZGVyXy5JU19PTERfSUVfJiZnb29nLmluSHRtbERvY3VtZW50XygpJiZnb29nLmlzRG9jdW1lbnRMb2FkaW5nXygpP2Z1bmN0aW9uKCl7dmFyIGU9Z29vZy5nbG9iYWwuZG9jdW1lbnQsdD1nb29nLkRlcGVuZGVuY3kucmVnaXN0ZXJDYWxsYmFja18oKGZ1bmN0aW9uKCl7Z29vZy5EZXBlbmRlbmN5LnVucmVnaXN0ZXJDYWxsYmFja18odCksbigpfSkpLHI9JzxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPicrZ29vZy5wcm90ZWN0U2NyaXB0VGFnXygnZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrXyhcIicrdCsnXCIpOycpK1wiPFxcL3NjcmlwdD5cIjtlLndyaXRlKGdvb2cuVFJVU1RFRF9UWVBFU19QT0xJQ1lfP2dvb2cuVFJVU1RFRF9UWVBFU19QT0xJQ1lfLmNyZWF0ZUhUTUwocik6cil9KCk6bigpfX19LGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5LnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZSl7fSxnb29nLlRyYW5zcGlsZWREZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxuLHIsaSxvKXtnb29nLlRyYW5zZm9ybWVkRGVwZW5kZW5jeS5jYWxsKHRoaXMsZSx0LG4scixpKSx0aGlzLnRyYW5zcGlsZXI9b30sZ29vZy5pbmhlcml0cyhnb29nLlRyYW5zcGlsZWREZXBlbmRlbmN5LGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5KSxnb29nLlRyYW5zcGlsZWREZXBlbmRlbmN5LnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudHJhbnNwaWxlci50cmFuc3BpbGUoZSx0aGlzLmdldFBhdGhOYW1lKCkpfSxnb29nLlByZVRyYW5zcGlsZWRFczZNb2R1bGVEZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxuLHIsaSl7Z29vZy5UcmFuc2Zvcm1lZERlcGVuZGVuY3kuY2FsbCh0aGlzLGUsdCxuLHIsaSl9LGdvb2cuaW5oZXJpdHMoZ29vZy5QcmVUcmFuc3BpbGVkRXM2TW9kdWxlRGVwZW5kZW5jeSxnb29nLlRyYW5zZm9ybWVkRGVwZW5kZW5jeSksZ29vZy5QcmVUcmFuc3BpbGVkRXM2TW9kdWxlRGVwZW5kZW5jeS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGUpe3JldHVybiBlfSxnb29nLkdvb2dNb2R1bGVEZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe2dvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5LmNhbGwodGhpcyxlLHQsbixyLGkpLHRoaXMubmVlZHNUcmFuc3BpbGVfPW8sdGhpcy50cmFuc3BpbGVyXz1hfSxnb29nLmluaGVyaXRzKGdvb2cuR29vZ01vZHVsZURlcGVuZGVuY3ksZ29vZy5UcmFuc2Zvcm1lZERlcGVuZGVuY3kpLGdvb2cuR29vZ01vZHVsZURlcGVuZGVuY3kucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5uZWVkc1RyYW5zcGlsZV8mJihlPXRoaXMudHJhbnNwaWxlcl8udHJhbnNwaWxlKGUsdGhpcy5nZXRQYXRoTmFtZSgpKSksZ29vZy5MT0FEX01PRFVMRV9VU0lOR19FVkFMJiZ2b2lkIDAhPT1nb29nLmdsb2JhbC5KU09OP1wiZ29vZy5sb2FkTW9kdWxlKFwiK2dvb2cuZ2xvYmFsLkpTT04uc3RyaW5naWZ5KGUrXCJcXG4vLyMgc291cmNlVVJMPVwiK3RoaXMucGF0aCtcIlxcblwiKStcIik7XCI6J2dvb2cubG9hZE1vZHVsZShmdW5jdGlvbihleHBvcnRzKSB7XCJ1c2Ugc3RyaWN0XCI7JytlK1wiXFxuO3JldHVybiBleHBvcnRzfSk7XFxuLy8jIHNvdXJjZVVSTD1cIit0aGlzLnBhdGgrXCJcXG5cIn0sZ29vZy5EZWJ1Z0xvYWRlcl8uSVNfT0xEX0lFXz0hKGdvb2cuZ2xvYmFsLmF0b2J8fCFnb29nLmdsb2JhbC5kb2N1bWVudHx8IWdvb2cuZ2xvYmFsLmRvY3VtZW50LmFsbCksZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmFkZERlcGVuZGVuY3k9ZnVuY3Rpb24oZSx0LG4scil7dD10fHxbXSxlPWUucmVwbGFjZSgvXFxcXC9nLFwiL1wiKTt2YXIgaT1nb29nLm5vcm1hbGl6ZVBhdGhfKGdvb2cuYmFzZVBhdGgrZSk7Zm9yKHImJlwiYm9vbGVhblwiIT09dHlwZW9mIHJ8fChyPXI/e21vZHVsZTpnb29nLk1vZHVsZVR5cGUuR09PR306e30pLG49dGhpcy5mYWN0b3J5Xy5jcmVhdGVEZXBlbmRlbmN5KGksZSx0LG4scixnb29nLnRyYW5zcGlsZXJfLm5lZWRzVHJhbnNwaWxlKHIubGFuZ3x8XCJlczNcIixyLm1vZHVsZSkpLHRoaXMuZGVwZW5kZW5jaWVzX1tpXT1uLG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLmlkVG9QYXRoX1t0W25dXT1pO3RoaXMuaWRUb1BhdGhfW2VdPWl9LGdvb2cuRGVwZW5kZW5jeUZhY3Rvcnk9ZnVuY3Rpb24oZSl7dGhpcy50cmFuc3BpbGVyPWV9LGdvb2cuRGVwZW5kZW5jeUZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZURlcGVuZGVuY3k9ZnVuY3Rpb24oZSx0LG4scixpLG8pe3JldHVybiBpLm1vZHVsZT09Z29vZy5Nb2R1bGVUeXBlLkdPT0c/bmV3IGdvb2cuR29vZ01vZHVsZURlcGVuZGVuY3koZSx0LG4scixpLG8sdGhpcy50cmFuc3BpbGVyKTpvP25ldyBnb29nLlRyYW5zcGlsZWREZXBlbmRlbmN5KGUsdCxuLHIsaSx0aGlzLnRyYW5zcGlsZXIpOmkubW9kdWxlPT1nb29nLk1vZHVsZVR5cGUuRVM2P1wibmV2ZXJcIj09Z29vZy5UUkFOU1BJTEUmJmdvb2cuQVNTVU1FX0VTX01PRFVMRVNfVFJBTlNQSUxFRD9uZXcgZ29vZy5QcmVUcmFuc3BpbGVkRXM2TW9kdWxlRGVwZW5kZW5jeShlLHQsbixyLGkpOm5ldyBnb29nLkVzNk1vZHVsZURlcGVuZGVuY3koZSx0LG4scixpKTpuZXcgZ29vZy5EZXBlbmRlbmN5KGUsdCxuLHIsaSl9LGdvb2cuZGVidWdMb2FkZXJfPW5ldyBnb29nLkRlYnVnTG9hZGVyXyxnb29nLmxvYWRDbG9zdXJlRGVwcz1mdW5jdGlvbigpe2dvb2cuZGVidWdMb2FkZXJfLmxvYWRDbG9zdXJlRGVwcygpfSxnb29nLnNldERlcGVuZGVuY3lGYWN0b3J5PWZ1bmN0aW9uKGUpe2dvb2cuZGVidWdMb2FkZXJfLnNldERlcGVuZGVuY3lGYWN0b3J5KGUpfSxnb29nLmdsb2JhbC5DTE9TVVJFX05PX0RFUFN8fGdvb2cuZGVidWdMb2FkZXJfLmxvYWRDbG9zdXJlRGVwcygpLGdvb2cuYm9vdHN0cmFwPWZ1bmN0aW9uKGUsdCl7Z29vZy5kZWJ1Z0xvYWRlcl8uYm9vdHN0cmFwKGUsdCl9KSxnb29nLlRSVVNURURfVFlQRVNfUE9MSUNZX05BTUU9XCJcIixnb29nLmlkZW50aXR5Xz1mdW5jdGlvbihlKXtyZXR1cm4gZX0sZ29vZy5jcmVhdGVUcnVzdGVkVHlwZXNQb2xpY3k9ZnVuY3Rpb24oZSl7dmFyIHQ9bnVsbCxuPWdvb2cuZ2xvYmFsLnRydXN0ZWRUeXBlc3x8Z29vZy5nbG9iYWwuVHJ1c3RlZFR5cGVzO2lmKCFufHwhbi5jcmVhdGVQb2xpY3kpcmV0dXJuIHQ7dHJ5e3Q9bi5jcmVhdGVQb2xpY3koZSx7Y3JlYXRlSFRNTDpnb29nLmlkZW50aXR5XyxjcmVhdGVTY3JpcHQ6Z29vZy5pZGVudGl0eV8sY3JlYXRlU2NyaXB0VVJMOmdvb2cuaWRlbnRpdHlfLGNyZWF0ZVVSTDpnb29nLmlkZW50aXR5X30pfWNhdGNoKHIpe2dvb2cubG9nVG9Db25zb2xlXyhyLm1lc3NhZ2UpfXJldHVybiB0fSxnb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz1nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZX05BTUU/Z29vZy5jcmVhdGVUcnVzdGVkVHlwZXNQb2xpY3koZ29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV9OQU1FK1wiI2Jhc2VcIik6bnVsbCxnb29nLm9iamVjdD17fSxnb29nLm9iamVjdC5pcz1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dD8wIT09ZXx8MS9lPT09MS90OmUhPT1lJiZ0IT09dH0sZ29vZy5vYmplY3QuZm9yRWFjaD1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByIGluIGUpdC5jYWxsKG4sZVtyXSxyLGUpfSxnb29nLm9iamVjdC5maWx0ZXI9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9e307Zm9yKHIgaW4gZSl0LmNhbGwobixlW3JdLHIsZSkmJihpW3JdPWVbcl0pO3JldHVybiBpfSxnb29nLm9iamVjdC5tYXA9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9e307Zm9yKHIgaW4gZSlpW3JdPXQuY2FsbChuLGVbcl0scixlKTtyZXR1cm4gaX0sZ29vZy5vYmplY3Quc29tZT1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByIGluIGUpaWYodC5jYWxsKG4sZVtyXSxyLGUpKXJldHVybiEwO3JldHVybiExfSxnb29nLm9iamVjdC5ldmVyeT1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByIGluIGUpaWYoIXQuY2FsbChuLGVbcl0scixlKSlyZXR1cm4hMTtyZXR1cm4hMH0sZ29vZy5vYmplY3QuZ2V0Q291bnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj0wO2Zvcih0IGluIGUpbisrO3JldHVybiBufSxnb29nLm9iamVjdC5nZXRBbnlLZXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpcmV0dXJuIHR9LGdvb2cub2JqZWN0LmdldEFueVZhbHVlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKXJldHVybiBlW3RdfSxnb29nLm9iamVjdC5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLm9iamVjdC5jb250YWluc1ZhbHVlKGUsdCl9LGdvb2cub2JqZWN0LmdldFZhbHVlcz1mdW5jdGlvbihlKXt2YXIgdCxuPVtdLHI9MDtmb3IodCBpbiBlKW5bcisrXT1lW3RdO3JldHVybiBufSxnb29nLm9iamVjdC5nZXRLZXlzPWZ1bmN0aW9uKGUpe3ZhciB0LG49W10scj0wO2Zvcih0IGluIGUpbltyKytdPXQ7cmV0dXJuIG59LGdvb2cub2JqZWN0LmdldFZhbHVlQnlLZXlzPWZ1bmN0aW9uKGUsdCl7dmFyIG49Z29vZy5pc0FycmF5TGlrZSh0KSxyPW4/dDphcmd1bWVudHM7Zm9yKG49bj8wOjE7bjxyLmxlbmd0aDtuKyspe2lmKG51bGw9PWUpcmV0dXJuO2U9ZVtyW25dXX1yZXR1cm4gZX0sZ29vZy5vYmplY3QuY29udGFpbnNLZXk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9PWUmJnQgaW4gZX0sZ29vZy5vYmplY3QuY29udGFpbnNWYWx1ZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKWlmKGVbbl09PXQpcmV0dXJuITA7cmV0dXJuITF9LGdvb2cub2JqZWN0LmZpbmRLZXk9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgciBpbiBlKWlmKHQuY2FsbChuLGVbcl0scixlKSlyZXR1cm4gcn0sZ29vZy5vYmplY3QuZmluZFZhbHVlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4odD1nb29nLm9iamVjdC5maW5kS2V5KGUsdCxuKSkmJmVbdF19LGdvb2cub2JqZWN0LmlzRW1wdHk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdvb2cub2JqZWN0LmNsZWFyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKWRlbGV0ZSBlW3RdfSxnb29nLm9iamVjdC5yZW1vdmU9ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4obj10IGluIGUpJiZkZWxldGUgZVt0XSxufSxnb29nLm9iamVjdC5hZGQ9ZnVuY3Rpb24oZSx0LG4pe2lmKG51bGwhPT1lJiZ0IGluIGUpdGhyb3cgRXJyb3IoJ1RoZSBvYmplY3QgYWxyZWFkeSBjb250YWlucyB0aGUga2V5IFwiJyt0KydcIicpO2dvb2cub2JqZWN0LnNldChlLHQsbil9LGdvb2cub2JqZWN0LmdldD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG51bGwhPT1lJiZ0IGluIGU/ZVt0XTpufSxnb29nLm9iamVjdC5zZXQ9ZnVuY3Rpb24oZSx0LG4pe2VbdF09bn0sZ29vZy5vYmplY3Quc2V0SWZVbmRlZmluZWQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0IGluIGU/ZVt0XTplW3RdPW59LGdvb2cub2JqZWN0LnNldFdpdGhSZXR1cm5WYWx1ZUlmTm90U2V0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCBpbiBlP2VbdF06KG49bigpLGVbdF09bil9LGdvb2cub2JqZWN0LmVxdWFscz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKWlmKCEobiBpbiB0KXx8ZVtuXSE9PXRbbl0pcmV0dXJuITE7Zm9yKHZhciByIGluIHQpaWYoIShyIGluIGUpKXJldHVybiExO3JldHVybiEwfSxnb29nLm9iamVjdC5jbG9uZT1mdW5jdGlvbihlKXt2YXIgdCxuPXt9O2Zvcih0IGluIGUpblt0XT1lW3RdO3JldHVybiBufSxnb29nLm9iamVjdC51bnNhZmVDbG9uZT1mdW5jdGlvbihlKXt2YXIgdD1nb29nLnR5cGVPZihlKTtpZihcIm9iamVjdFwiPT10fHxcImFycmF5XCI9PXQpe2lmKGdvb2cuaXNGdW5jdGlvbihlLmNsb25lKSlyZXR1cm4gZS5jbG9uZSgpO2Zvcih2YXIgbiBpbiB0PVwiYXJyYXlcIj09dD9bXTp7fSxlKXRbbl09Z29vZy5vYmplY3QudW5zYWZlQ2xvbmUoZVtuXSk7cmV0dXJuIHR9cmV0dXJuIGV9LGdvb2cub2JqZWN0LnRyYW5zcG9zZT1mdW5jdGlvbihlKXt2YXIgdCxuPXt9O2Zvcih0IGluIGUpbltlW3RdXT10O3JldHVybiBufSxnb29nLm9iamVjdC5QUk9UT1RZUEVfRklFTERTXz1cImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVydHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZlwiLnNwbGl0KFwiIFwiKSxnb29nLm9iamVjdC5leHRlbmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4scixpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7Zm9yKG4gaW4gcj1hcmd1bWVudHNbaV0pZVtuXT1yW25dO2Zvcih2YXIgbz0wO288Z29vZy5vYmplY3QuUFJPVE9UWVBFX0ZJRUxEU18ubGVuZ3RoO28rKyluPWdvb2cub2JqZWN0LlBST1RPVFlQRV9GSUVMRFNfW29dLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG4pJiYoZVtuXT1yW25dKX19LGdvb2cub2JqZWN0LmNyZWF0ZT1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoO2lmKDE9PXQmJkFycmF5LmlzQXJyYXkoYXJndW1lbnRzWzBdKSlyZXR1cm4gZ29vZy5vYmplY3QuY3JlYXRlLmFwcGx5KG51bGwsYXJndW1lbnRzWzBdKTtpZih0JTIpdGhyb3cgRXJyb3IoXCJVbmV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50c1wiKTtmb3IodmFyIG49e30scj0wO3I8dDtyKz0yKW5bYXJndW1lbnRzW3JdXT1hcmd1bWVudHNbcisxXTtyZXR1cm4gbn0sZ29vZy5vYmplY3QuY3JlYXRlU2V0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg7aWYoMT09dCYmQXJyYXkuaXNBcnJheShhcmd1bWVudHNbMF0pKXJldHVybiBnb29nLm9iamVjdC5jcmVhdGVTZXQuYXBwbHkobnVsbCxhcmd1bWVudHNbMF0pO2Zvcih2YXIgbj17fSxyPTA7cjx0O3IrKyluW2FyZ3VtZW50c1tyXV09ITA7cmV0dXJuIG59LGdvb2cub2JqZWN0LmNyZWF0ZUltbXV0YWJsZVZpZXc9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTtyZXR1cm4gT2JqZWN0LmlzRnJvemVuJiYhT2JqZWN0LmlzRnJvemVuKGUpJiYodD1PYmplY3QuY3JlYXRlKGUpLE9iamVjdC5mcmVlemUodCkpLHR9LGdvb2cub2JqZWN0LmlzSW1tdXRhYmxlVmlldz1mdW5jdGlvbihlKXtyZXR1cm4hIU9iamVjdC5pc0Zyb3plbiYmT2JqZWN0LmlzRnJvemVuKGUpfSxnb29nLm9iamVjdC5nZXRBbGxQcm9wZXJ0eU5hbWVzPWZ1bmN0aW9uKGUsdCxuKXtpZighZSlyZXR1cm5bXTtpZighT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fCFPYmplY3QuZ2V0UHJvdG90eXBlT2YpcmV0dXJuIGdvb2cub2JqZWN0LmdldEtleXMoZSk7Zm9yKHZhciByPXt9O2UmJihlIT09T2JqZWN0LnByb3RvdHlwZXx8dCkmJihlIT09RnVuY3Rpb24ucHJvdG90eXBlfHxuKTspe2Zvcih2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKSxvPTA7bzxpLmxlbmd0aDtvKyspcltpW29dXT0hMDtlPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKX1yZXR1cm4gZ29vZy5vYmplY3QuZ2V0S2V5cyhyKX0sZ29vZy5vYmplY3QuZ2V0U3VwZXJDbGFzcz1mdW5jdGlvbihlKXtyZXR1cm4oZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZS5wcm90b3R5cGUpKSYmZS5jb25zdHJ1Y3Rvcn07dmFyIGpzcGI9e2Fzc2VydHM6e319O2pzcGIuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmU9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9XCJBc3NlcnRpb24gZmFpbGVkXCI7aWYobil7aSs9XCI6IFwiK247dmFyIG89cn1lbHNlIGUmJihpKz1cIjogXCIrZSxvPXQpO3Rocm93IEVycm9yKFwiXCIraSxvfHxbXSl9LGpzcGIuYXNzZXJ0cy5hc3NlcnQ9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoOysraSlyW2ktMl09YXJndW1lbnRzW2ldO3JldHVybiBlfHxqc3BiLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlKFwiXCIsbnVsbCx0LHIpLGV9LGpzcGIuYXNzZXJ0cy5hc3NlcnRTdHJpbmc9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoOysraSlyW2ktMl09YXJndW1lbnRzW2ldO3JldHVyblwic3RyaW5nXCIhPT10eXBlb2YgZSYmanNwYi5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZShcIkV4cGVjdGVkIHN0cmluZyBidXQgZ290ICVzOiAlcy5cIixbZ29vZy50eXBlT2YoZSksZV0sdCxyKSxlfSxqc3BiLmFzc2VydHMuYXNzZXJ0QXJyYXk9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoOysraSlyW2ktMl09YXJndW1lbnRzW2ldO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHxqc3BiLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlKFwiRXhwZWN0ZWQgYXJyYXkgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsciksZX0sanNwYi5hc3NlcnRzLmZhaWw9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDsrK3IpbltyLTFdPWFyZ3VtZW50c1tyXTt0aHJvdyBFcnJvcihcIkZhaWx1cmVcIisoZT9cIjogXCIrZTpcIlwiKSxuKX0sanNwYi5hc3NlcnRzLmFzc2VydEluc3RhbmNlb2Y9ZnVuY3Rpb24oZSx0LG4scil7Zm9yKHZhciBpPVtdLG89MztvPGFyZ3VtZW50cy5sZW5ndGg7KytvKWlbby0zXT1hcmd1bWVudHNbb107cmV0dXJuIGUgaW5zdGFuY2VvZiB0fHxqc3BiLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlKFwiRXhwZWN0ZWQgaW5zdGFuY2VvZiAlcyBidXQgZ290ICVzLlwiLFtqc3BiLmFzc2VydHMuZ2V0VHlwZSh0KSxqc3BiLmFzc2VydHMuZ2V0VHlwZShlKV0sbixpKSxlfSxqc3BiLmFzc2VydHMuZ2V0VHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEZ1bmN0aW9uP2UuZGlzcGxheU5hbWV8fGUubmFtZXx8XCJ1bmtub3duIHR5cGUgbmFtZVwiOmUgaW5zdGFuY2VvZiBPYmplY3Q/ZS5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZXx8ZS5jb25zdHJ1Y3Rvci5uYW1lfHxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk6bnVsbD09PWU/XCJudWxsXCI6dHlwZW9mIGV9LGpzcGIuQmluYXJ5Q29uc3RhbnRzPXt9LGpzcGIuQ29uc3RCaW5hcnlNZXNzYWdlPWZ1bmN0aW9uKCl7fSxqc3BiLkJpbmFyeU1lc3NhZ2U9ZnVuY3Rpb24oKXt9LGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZpZWxkVHlwZT17SU5WQUxJRDotMSxET1VCTEU6MSxGTE9BVDoyLElOVDY0OjMsVUlOVDY0OjQsSU5UMzI6NSxGSVhFRDY0OjYsRklYRUQzMjo3LEJPT0w6OCxTVFJJTkc6OSxHUk9VUDoxMCxNRVNTQUdFOjExLEJZVEVTOjEyLFVJTlQzMjoxMyxFTlVNOjE0LFNGSVhFRDMyOjE1LFNGSVhFRDY0OjE2LFNJTlQzMjoxNyxTSU5UNjQ6MTgsRkhBU0g2NDozMCxWSEFTSDY0OjMxfSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZT17SU5WQUxJRDotMSxWQVJJTlQ6MCxGSVhFRDY0OjEsREVMSU1JVEVEOjIsU1RBUlRfR1JPVVA6MyxFTkRfR1JPVVA6NCxGSVhFRDMyOjV9LGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZpZWxkVHlwZVRvV2lyZVR5cGU9ZnVuY3Rpb24oZSl7dmFyIHQ9anNwYi5CaW5hcnlDb25zdGFudHMuRmllbGRUeXBlLG49anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGU7c3dpdGNoKGUpe2Nhc2UgdC5JTlQzMjpjYXNlIHQuSU5UNjQ6Y2FzZSB0LlVJTlQzMjpjYXNlIHQuVUlOVDY0OmNhc2UgdC5TSU5UMzI6Y2FzZSB0LlNJTlQ2NDpjYXNlIHQuQk9PTDpjYXNlIHQuRU5VTTpjYXNlIHQuVkhBU0g2NDpyZXR1cm4gbi5WQVJJTlQ7Y2FzZSB0LkRPVUJMRTpjYXNlIHQuRklYRUQ2NDpjYXNlIHQuU0ZJWEVENjQ6Y2FzZSB0LkZIQVNINjQ6cmV0dXJuIG4uRklYRUQ2NDtjYXNlIHQuU1RSSU5HOmNhc2UgdC5NRVNTQUdFOmNhc2UgdC5CWVRFUzpyZXR1cm4gbi5ERUxJTUlURUQ7Y2FzZSB0LkZMT0FUOmNhc2UgdC5GSVhFRDMyOmNhc2UgdC5TRklYRUQzMjpyZXR1cm4gbi5GSVhFRDMyO2RlZmF1bHQ6cmV0dXJuIG4uSU5WQUxJRH19LGpzcGIuQmluYXJ5Q29uc3RhbnRzLklOVkFMSURfRklFTERfTlVNQkVSPS0xLGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfRVBTPTE0MDEyOTg0NjQzMjQ4MTdlLTYwLGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfTUlOPTExNzU0OTQzNTA4MjIyODc1ZS01NCxqc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDMyX01BWD0zNDAyODIzNDY2Mzg1Mjg4NmUyMixqc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDY0X0VQUz01ZS0zMjQsanNwYi5CaW5hcnlDb25zdGFudHMuRkxPQVQ2NF9NSU49MjIyNTA3Mzg1ODUwNzIwMTRlLTMyNCxqc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDY0X01BWD0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzIwPTEwNDg1NzYsanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzIzPTgzODg2MDgsanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxPTIxNDc0ODM2NDgsanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyPTQyOTQ5NjcyOTYsanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzUyPTQ1MDM1OTk2MjczNzA0OTYsanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzPTB4ODAwMDAwMDAwMDAwMDAwMCxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjQ9MHgxMDAwMDAwMDAwMDAwMDAwMCxqc3BiLkJpbmFyeUNvbnN0YW50cy5aRVJPX0hBU0g9XCJcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcIixnb29nLmRlYnVnPXt9LGdvb2cuZGVidWcuRXJyb3I9ZnVuY3Rpb24oZSl7aWYoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxnb29nLmRlYnVnLkVycm9yKTtlbHNle3ZhciB0PUVycm9yKCkuc3RhY2s7dCYmKHRoaXMuc3RhY2s9dCl9ZSYmKHRoaXMubWVzc2FnZT1TdHJpbmcoZSkpLHRoaXMucmVwb3J0RXJyb3JUb1NlcnZlcj0hMH0sZ29vZy5pbmhlcml0cyhnb29nLmRlYnVnLkVycm9yLEVycm9yKSxnb29nLmRlYnVnLkVycm9yLnByb3RvdHlwZS5uYW1lPVwiQ3VzdG9tRXJyb3JcIixnb29nLmRvbT17fSxnb29nLmRvbS5Ob2RlVHlwZT17RUxFTUVOVDoxLEFUVFJJQlVURToyLFRFWFQ6MyxDREFUQV9TRUNUSU9OOjQsRU5USVRZX1JFRkVSRU5DRTo1LEVOVElUWTo2LFBST0NFU1NJTkdfSU5TVFJVQ1RJT046NyxDT01NRU5UOjgsRE9DVU1FTlQ6OSxET0NVTUVOVF9UWVBFOjEwLERPQ1VNRU5UX0ZSQUdNRU5UOjExLE5PVEFUSU9OOjEyfSxnb29nLmFzc2VydHM9e30sZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTPWdvb2cuREVCVUcsZ29vZy5hc3NlcnRzLkFzc2VydGlvbkVycm9yPWZ1bmN0aW9uKGUsdCl7Z29vZy5kZWJ1Zy5FcnJvci5jYWxsKHRoaXMsZ29vZy5hc3NlcnRzLnN1YnNfKGUsdCkpLHRoaXMubWVzc2FnZVBhdHRlcm49ZX0sZ29vZy5pbmhlcml0cyhnb29nLmFzc2VydHMuQXNzZXJ0aW9uRXJyb3IsZ29vZy5kZWJ1Zy5FcnJvciksZ29vZy5hc3NlcnRzLkFzc2VydGlvbkVycm9yLnByb3RvdHlwZS5uYW1lPVwiQXNzZXJ0aW9uRXJyb3JcIixnb29nLmFzc2VydHMuREVGQVVMVF9FUlJPUl9IQU5ETEVSPWZ1bmN0aW9uKGUpe3Rocm93IGV9LGdvb2cuYXNzZXJ0cy5lcnJvckhhbmRsZXJfPWdvb2cuYXNzZXJ0cy5ERUZBVUxUX0VSUk9SX0hBTkRMRVIsZ29vZy5hc3NlcnRzLnN1YnNfPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVwiXCIscj0oZT1lLnNwbGl0KFwiJXNcIikpLmxlbmd0aC0xLGk9MDtpPHI7aSsrKW4rPWVbaV0rKGk8dC5sZW5ndGg/dFtpXTpcIiVzXCIpO3JldHVybiBuK2Vbcl19LGdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPVwiQXNzZXJ0aW9uIGZhaWxlZFwiO2lmKG4pe2krPVwiOiBcIituO3ZhciBvPXJ9ZWxzZSBlJiYoaSs9XCI6IFwiK2Usbz10KTtlPW5ldyBnb29nLmFzc2VydHMuQXNzZXJ0aW9uRXJyb3IoXCJcIitpLG98fFtdKSxnb29nLmFzc2VydHMuZXJyb3JIYW5kbGVyXyhlKX0sZ29vZy5hc3NlcnRzLnNldEVycm9ySGFuZGxlcj1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFMmJihnb29nLmFzc2VydHMuZXJyb3JIYW5kbGVyXz1lKX0sZ29vZy5hc3NlcnRzLmFzc2VydD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyYmIWUmJmdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfKFwiXCIsbnVsbCx0LEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSksZX0sZ29vZy5hc3NlcnRzLmFzc2VydEV4aXN0cz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyYmbnVsbD09ZSYmZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCB0byBleGlzdDogJXMuXCIsW2VdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuZmFpbD1mdW5jdGlvbihlLHQpe2dvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyYmZ29vZy5hc3NlcnRzLmVycm9ySGFuZGxlcl8obmV3IGdvb2cuYXNzZXJ0cy5Bc3NlcnRpb25FcnJvcihcIkZhaWx1cmVcIisoZT9cIjogXCIrZTpcIlwiKSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpKX0sZ29vZy5hc3NlcnRzLmFzc2VydE51bWJlcj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyYmXCJudW1iZXJcIiE9PXR5cGVvZiBlJiZnb29nLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlXyhcIkV4cGVjdGVkIG51bWJlciBidXQgZ290ICVzOiAlcy5cIixbZ29vZy50eXBlT2YoZSksZV0sdCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMikpLGV9LGdvb2cuYXNzZXJ0cy5hc3NlcnRTdHJpbmc9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFMmJlwic3RyaW5nXCIhPT10eXBlb2YgZSYmZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCBzdHJpbmcgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0RnVuY3Rpb249ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFMmJiFnb29nLmlzRnVuY3Rpb24oZSkmJmdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfKFwiRXhwZWN0ZWQgZnVuY3Rpb24gYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0T2JqZWN0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTJiYhZ29vZy5pc09iamVjdChlKSYmZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCBvYmplY3QgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0QXJyYXk9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFMmJiFBcnJheS5pc0FycmF5KGUpJiZnb29nLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlXyhcIkV4cGVjdGVkIGFycmF5IGJ1dCBnb3QgJXM6ICVzLlwiLFtnb29nLnR5cGVPZihlKSxlXSx0LEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSksZX0sZ29vZy5hc3NlcnRzLmFzc2VydEJvb2xlYW49ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFMmJlwiYm9vbGVhblwiIT09dHlwZW9mIGUmJmdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfKFwiRXhwZWN0ZWQgYm9vbGVhbiBidXQgZ290ICVzOiAlcy5cIixbZ29vZy50eXBlT2YoZSksZV0sdCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMikpLGV9LGdvb2cuYXNzZXJ0cy5hc3NlcnRFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTfHxnb29nLmlzT2JqZWN0KGUpJiZlLm5vZGVUeXBlPT1nb29nLmRvbS5Ob2RlVHlwZS5FTEVNRU5UfHxnb29nLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlXyhcIkV4cGVjdGVkIEVsZW1lbnQgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZj1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4hZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTfHxlIGluc3RhbmNlb2YgdHx8Z29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCBpbnN0YW5jZW9mICVzIGJ1dCBnb3QgJXMuXCIsW2dvb2cuYXNzZXJ0cy5nZXRUeXBlXyh0KSxnb29nLmFzc2VydHMuZ2V0VHlwZV8oZSldLG4sQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0RmluaXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTfHxcIm51bWJlclwiPT10eXBlb2YgZSYmaXNGaW5pdGUoZSl8fGdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfKFwiRXhwZWN0ZWQgJXMgdG8gYmUgYSBmaW5pdGUgbnVtYmVyIGJ1dCBpdCBpcyBub3QuXCIsW2VdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0T2JqZWN0UHJvdG90eXBlSXNJbnRhY3Q9ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gT2JqZWN0LnByb3RvdHlwZSlnb29nLmFzc2VydHMuZmFpbChlK1wiIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSBpbiBPYmplY3QucHJvdG90eXBlLlwiKX0sZ29vZy5hc3NlcnRzLmdldFR5cGVfPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRnVuY3Rpb24/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHxcInVua25vd24gdHlwZSBuYW1lXCI6ZSBpbnN0YW5jZW9mIE9iamVjdD9lLmNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lfHxlLmNvbnN0cnVjdG9yLm5hbWV8fE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKTpudWxsPT09ZT9cIm51bGxcIjp0eXBlb2YgZX0sZ29vZy5hcnJheT17fSxnb29nLk5BVElWRV9BUlJBWV9QUk9UT1RZUEVTPWdvb2cuVFJVU1RFRF9TSVRFLGdvb2cuYXJyYXkuQVNTVU1FX05BVElWRV9GVU5DVElPTlM9MjAxMjxnb29nLkZFQVRVUkVTRVRfWUVBUixnb29nLmFycmF5LnBlZWs9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbZS5sZW5ndGgtMV19LGdvb2cuYXJyYXkubGFzdD1nb29nLmFycmF5LnBlZWssZ29vZy5hcnJheS5pbmRleE9mPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUuaW5kZXhPZik/ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KG51bGwhPWUubGVuZ3RoKSxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUsdCxuKX06ZnVuY3Rpb24oZSx0LG4pe2lmKG49bnVsbD09bj8wOjA+bj9NYXRoLm1heCgwLGUubGVuZ3RoK24pOm4sXCJzdHJpbmdcIj09PXR5cGVvZiBlKXJldHVyblwic3RyaW5nXCIhPT10eXBlb2YgdHx8MSE9dC5sZW5ndGg/LTE6ZS5pbmRleE9mKHQsbik7Zm9yKDtuPGUubGVuZ3RoO24rKylpZihuIGluIGUmJmVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxnb29nLmFycmF5Lmxhc3RJbmRleE9mPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpP2Z1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoZSx0LG51bGw9PW4/ZS5sZW5ndGgtMTpuKX06ZnVuY3Rpb24oZSx0LG4pe2lmKDA+KG49bnVsbD09bj9lLmxlbmd0aC0xOm4pJiYobj1NYXRoLm1heCgwLGUubGVuZ3RoK24pKSxcInN0cmluZ1wiPT09dHlwZW9mIGUpcmV0dXJuXCJzdHJpbmdcIiE9PXR5cGVvZiB0fHwxIT10Lmxlbmd0aD8tMTplLmxhc3RJbmRleE9mKHQsbik7Zm9yKDswPD1uO24tLSlpZihuIGluIGUmJmVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxnb29nLmFycmF5LmZvckVhY2g9Z29vZy5OQVRJVkVfQVJSQVlfUFJPVE9UWVBFUyYmKGdvb2cuYXJyYXkuQVNTVU1FX05BVElWRV9GVU5DVElPTlN8fEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKT9mdW5jdGlvbihlLHQsbil7Z29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLHQsbil9OmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9ZS5sZW5ndGgsaT1cInN0cmluZ1wiPT09dHlwZW9mIGU/ZS5zcGxpdChcIlwiKTplLG89MDtvPHI7bysrKW8gaW4gaSYmdC5jYWxsKG4saVtvXSxvLGUpfSxnb29nLmFycmF5LmZvckVhY2hSaWdodD1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5sZW5ndGgsaT1cInN0cmluZ1wiPT09dHlwZW9mIGU/ZS5zcGxpdChcIlwiKTplO2ZvcigtLXI7MDw9cjstLXIpciBpbiBpJiZ0LmNhbGwobixpW3JdLHIsZSl9LGdvb2cuYXJyYXkuZmlsdGVyPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUuZmlsdGVyKT9mdW5jdGlvbihlLHQsbil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLHQsbil9OmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9ZS5sZW5ndGgsaT1bXSxvPTAsYT1cInN0cmluZ1wiPT09dHlwZW9mIGU/ZS5zcGxpdChcIlwiKTplLHM9MDtzPHI7cysrKWlmKHMgaW4gYSl7dmFyIGM9YVtzXTt0LmNhbGwobixjLHMsZSkmJihpW28rK109Yyl9cmV0dXJuIGl9LGdvb2cuYXJyYXkubWFwPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUubWFwKT9mdW5jdGlvbihlLHQsbil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChlLHQsbil9OmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9ZS5sZW5ndGgsaT1BcnJheShyKSxvPVwic3RyaW5nXCI9PT10eXBlb2YgZT9lLnNwbGl0KFwiXCIpOmUsYT0wO2E8cjthKyspYSBpbiBvJiYoaVthXT10LmNhbGwobixvW2FdLGEsZSkpO3JldHVybiBpfSxnb29nLmFycmF5LnJlZHVjZT1nb29nLk5BVElWRV9BUlJBWV9QUk9UT1RZUEVTJiYoZ29vZy5hcnJheS5BU1NVTUVfTkFUSVZFX0ZVTkNUSU9OU3x8QXJyYXkucHJvdG90eXBlLnJlZHVjZSk/ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLHImJih0PWdvb2cuYmluZCh0LHIpKSxBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoZSx0LG4pfTpmdW5jdGlvbihlLHQsbixyKXt2YXIgaT1uO3JldHVybiBnb29nLmFycmF5LmZvckVhY2goZSwoZnVuY3Rpb24obixvKXtpPXQuY2FsbChyLGksbixvLGUpfSkpLGl9LGdvb2cuYXJyYXkucmVkdWNlUmlnaHQ9Z29vZy5OQVRJVkVfQVJSQVlfUFJPVE9UWVBFUyYmKGdvb2cuYXJyYXkuQVNTVU1FX05BVElWRV9GVU5DVElPTlN8fEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCk/ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9dCksciYmKHQ9Z29vZy5iaW5kKHQscikpLEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodC5jYWxsKGUsdCxuKX06ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9bjtyZXR1cm4gZ29vZy5hcnJheS5mb3JFYWNoUmlnaHQoZSwoZnVuY3Rpb24obixvKXtpPXQuY2FsbChyLGksbixvLGUpfSkpLGl9LGdvb2cuYXJyYXkuc29tZT1nb29nLk5BVElWRV9BUlJBWV9QUk9UT1RZUEVTJiYoZ29vZy5hcnJheS5BU1NVTUVfTkFUSVZFX0ZVTkNUSU9OU3x8QXJyYXkucHJvdG90eXBlLnNvbWUpP2Z1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChlLHQsbil9OmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9ZS5sZW5ndGgsaT1cInN0cmluZ1wiPT09dHlwZW9mIGU/ZS5zcGxpdChcIlwiKTplLG89MDtvPHI7bysrKWlmKG8gaW4gaSYmdC5jYWxsKG4saVtvXSxvLGUpKXJldHVybiEwO3JldHVybiExfSxnb29nLmFycmF5LmV2ZXJ5PWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUuZXZlcnkpP2Z1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoZSx0LG4pfTpmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPWUubGVuZ3RoLGk9XCJzdHJpbmdcIj09PXR5cGVvZiBlP2Uuc3BsaXQoXCJcIik6ZSxvPTA7bzxyO28rKylpZihvIGluIGkmJiF0LmNhbGwobixpW29dLG8sZSkpcmV0dXJuITE7cmV0dXJuITB9LGdvb2cuYXJyYXkuY291bnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPTA7cmV0dXJuIGdvb2cuYXJyYXkuZm9yRWFjaChlLChmdW5jdGlvbihlLGksbyl7dC5jYWxsKG4sZSxpLG8pJiYrK3J9KSxuKSxyfSxnb29nLmFycmF5LmZpbmQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiAwPih0PWdvb2cuYXJyYXkuZmluZEluZGV4KGUsdCxuKSk/bnVsbDpcInN0cmluZ1wiPT09dHlwZW9mIGU/ZS5jaGFyQXQodCk6ZVt0XX0sZ29vZy5hcnJheS5maW5kSW5kZXg9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1lLmxlbmd0aCxpPVwic3RyaW5nXCI9PT10eXBlb2YgZT9lLnNwbGl0KFwiXCIpOmUsbz0wO288cjtvKyspaWYobyBpbiBpJiZ0LmNhbGwobixpW29dLG8sZSkpcmV0dXJuIG87cmV0dXJuLTF9LGdvb2cuYXJyYXkuZmluZFJpZ2h0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMD4odD1nb29nLmFycmF5LmZpbmRJbmRleFJpZ2h0KGUsdCxuKSk/bnVsbDpcInN0cmluZ1wiPT09dHlwZW9mIGU/ZS5jaGFyQXQodCk6ZVt0XX0sZ29vZy5hcnJheS5maW5kSW5kZXhSaWdodD1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5sZW5ndGgsaT1cInN0cmluZ1wiPT09dHlwZW9mIGU/ZS5zcGxpdChcIlwiKTplO2ZvcigtLXI7MDw9cjtyLS0paWYociBpbiBpJiZ0LmNhbGwobixpW3JdLHIsZSkpcmV0dXJuIHI7cmV0dXJuLTF9LGdvb2cuYXJyYXkuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDw9Z29vZy5hcnJheS5pbmRleE9mKGUsdCl9LGdvb2cuYXJyYXkuaXNFbXB0eT1mdW5jdGlvbihlKXtyZXR1cm4gMD09ZS5sZW5ndGh9LGdvb2cuYXJyYXkuY2xlYXI9ZnVuY3Rpb24oZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PWUubGVuZ3RoLTE7MDw9dDt0LS0pZGVsZXRlIGVbdF07ZS5sZW5ndGg9MH0sZ29vZy5hcnJheS5pbnNlcnQ9ZnVuY3Rpb24oZSx0KXtnb29nLmFycmF5LmNvbnRhaW5zKGUsdCl8fGUucHVzaCh0KX0sZ29vZy5hcnJheS5pbnNlcnRBdD1mdW5jdGlvbihlLHQsbil7Z29vZy5hcnJheS5zcGxpY2UoZSxuLDAsdCl9LGdvb2cuYXJyYXkuaW5zZXJ0QXJyYXlBdD1mdW5jdGlvbihlLHQsbil7Z29vZy5wYXJ0aWFsKGdvb2cuYXJyYXkuc3BsaWNlLGUsbiwwKS5hcHBseShudWxsLHQpfSxnb29nLmFycmF5Lmluc2VydEJlZm9yZT1mdW5jdGlvbihlLHQsbil7dmFyIHI7Mj09YXJndW1lbnRzLmxlbmd0aHx8MD4ocj1nb29nLmFycmF5LmluZGV4T2YoZSxuKSk/ZS5wdXNoKHQpOmdvb2cuYXJyYXkuaW5zZXJ0QXQoZSx0LHIpfSxnb29nLmFycmF5LnJlbW92ZT1mdW5jdGlvbihlLHQpe3ZhciBuO3JldHVybihuPTA8PSh0PWdvb2cuYXJyYXkuaW5kZXhPZihlLHQpKSkmJmdvb2cuYXJyYXkucmVtb3ZlQXQoZSx0KSxufSxnb29nLmFycmF5LnJlbW92ZUxhc3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDw9KHQ9Z29vZy5hcnJheS5sYXN0SW5kZXhPZihlLHQpKSYmKGdvb2cuYXJyYXkucmVtb3ZlQXQoZSx0KSwhMCl9LGdvb2cuYXJyYXkucmVtb3ZlQXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksMT09QXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGUsdCwxKS5sZW5ndGh9LGdvb2cuYXJyYXkucmVtb3ZlSWY9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiAwPD0odD1nb29nLmFycmF5LmZpbmRJbmRleChlLHQsbikpJiYoZ29vZy5hcnJheS5yZW1vdmVBdChlLHQpLCEwKX0sZ29vZy5hcnJheS5yZW1vdmVBbGxJZj1mdW5jdGlvbihlLHQsbil7dmFyIHI9MDtyZXR1cm4gZ29vZy5hcnJheS5mb3JFYWNoUmlnaHQoZSwoZnVuY3Rpb24oaSxvKXt0LmNhbGwobixpLG8sZSkmJmdvb2cuYXJyYXkucmVtb3ZlQXQoZSxvKSYmcisrfSkpLHJ9LGdvb2cuYXJyYXkuY29uY2F0PWZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGFyZ3VtZW50cyl9LGdvb2cuYXJyYXkuam9pbj1mdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxhcmd1bWVudHMpfSxnb29nLmFycmF5LnRvQXJyYXk9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7aWYoMDx0KXtmb3IodmFyIG49QXJyYXkodCkscj0wO3I8dDtyKyspbltyXT1lW3JdO3JldHVybiBufXJldHVybltdfSxnb29nLmFycmF5LmNsb25lPWdvb2cuYXJyYXkudG9BcnJheSxnb29nLmFycmF5LmV4dGVuZD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciByPWFyZ3VtZW50c1tuXTtpZihnb29nLmlzQXJyYXlMaWtlKHIpKXt2YXIgaT1lLmxlbmd0aHx8MCxvPXIubGVuZ3RofHwwO2UubGVuZ3RoPWkrbztmb3IodmFyIGE9MDthPG87YSsrKWVbaSthXT1yW2FdfWVsc2UgZS5wdXNoKHIpfX0sZ29vZy5hcnJheS5zcGxpY2U9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLEFycmF5LnByb3RvdHlwZS5zcGxpY2UuYXBwbHkoZSxnb29nLmFycmF5LnNsaWNlKGFyZ3VtZW50cywxKSl9LGdvb2cuYXJyYXkuc2xpY2U9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KG51bGwhPWUubGVuZ3RoKSwyPj1hcmd1bWVudHMubGVuZ3RoP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsdCk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSx0LG4pfSxnb29nLmFycmF5LnJlbW92ZUR1cGxpY2F0ZXM9ZnVuY3Rpb24oZSx0LG4pe3Q9dHx8ZTt2YXIgcj1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pc09iamVjdChlKT9cIm9cIitnb29nLmdldFVpZChlKToodHlwZW9mIGUpLmNoYXJBdCgwKStlfTtuPW58fHIscj17fTtmb3IodmFyIGk9MCxvPTA7bzxlLmxlbmd0aDspe3ZhciBhPWVbbysrXSxzPW4oYSk7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscyl8fChyW3NdPSEwLHRbaSsrXT1hKX10Lmxlbmd0aD1pfSxnb29nLmFycmF5LmJpbmFyeVNlYXJjaD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGdvb2cuYXJyYXkuYmluYXJ5U2VhcmNoXyhlLG58fGdvb2cuYXJyYXkuZGVmYXVsdENvbXBhcmUsITEsdCl9LGdvb2cuYXJyYXkuYmluYXJ5U2VsZWN0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZ29vZy5hcnJheS5iaW5hcnlTZWFyY2hfKGUsdCwhMCx2b2lkIDAsbil9LGdvb2cuYXJyYXkuYmluYXJ5U2VhcmNoXz1mdW5jdGlvbihlLHQsbixyLGkpe2Zvcih2YXIgbyxhPTAscz1lLmxlbmd0aDthPHM7KXt2YXIgYz1hKyhzLWE+Pj4xKSx1PW4/dC5jYWxsKGksZVtjXSxjLGUpOnQocixlW2NdKTswPHU/YT1jKzE6KHM9YyxvPSF1KX1yZXR1cm4gbz9hOi1hLTF9LGdvb2cuYXJyYXkuc29ydD1mdW5jdGlvbihlLHQpe2Uuc29ydCh0fHxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlKX0sZ29vZy5hcnJheS5zdGFibGVTb3J0PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPUFycmF5KGUubGVuZ3RoKSxyPTA7cjxlLmxlbmd0aDtyKyspbltyXT17aW5kZXg6cix2YWx1ZTplW3JdfTt2YXIgaT10fHxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlO2Zvcihnb29nLmFycmF5LnNvcnQobiwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gaShlLnZhbHVlLHQudmFsdWUpfHxlLmluZGV4LXQuaW5kZXh9KSkscj0wO3I8ZS5sZW5ndGg7cisrKWVbcl09bltyXS52YWx1ZX0sZ29vZy5hcnJheS5zb3J0QnlLZXk9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW58fGdvb2cuYXJyYXkuZGVmYXVsdENvbXBhcmU7Z29vZy5hcnJheS5zb3J0KGUsKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHIodChlKSx0KG4pKX0pKX0sZ29vZy5hcnJheS5zb3J0T2JqZWN0c0J5S2V5PWZ1bmN0aW9uKGUsdCxuKXtnb29nLmFycmF5LnNvcnRCeUtleShlLChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XX0pLG4pfSxnb29nLmFycmF5LmlzU29ydGVkPWZ1bmN0aW9uKGUsdCxuKXt0PXR8fGdvb2cuYXJyYXkuZGVmYXVsdENvbXBhcmU7Zm9yKHZhciByPTE7cjxlLmxlbmd0aDtyKyspe3ZhciBpPXQoZVtyLTFdLGVbcl0pO2lmKDA8aXx8MD09aSYmbilyZXR1cm4hMX1yZXR1cm4hMH0sZ29vZy5hcnJheS5lcXVhbHM9ZnVuY3Rpb24oZSx0LG4pe2lmKCFnb29nLmlzQXJyYXlMaWtlKGUpfHwhZ29vZy5pc0FycmF5TGlrZSh0KXx8ZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO3ZhciByPWUubGVuZ3RoO249bnx8Z29vZy5hcnJheS5kZWZhdWx0Q29tcGFyZUVxdWFsaXR5O2Zvcih2YXIgaT0wO2k8cjtpKyspaWYoIW4oZVtpXSx0W2ldKSlyZXR1cm4hMTtyZXR1cm4hMH0sZ29vZy5hcnJheS5jb21wYXJlMz1mdW5jdGlvbihlLHQsbil7bj1ufHxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlO2Zvcih2YXIgcj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCksaT0wO2k8cjtpKyspe3ZhciBvPW4oZVtpXSx0W2ldKTtpZigwIT1vKXJldHVybiBvfXJldHVybiBnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlKGUubGVuZ3RoLHQubGVuZ3RoKX0sZ29vZy5hcnJheS5kZWZhdWx0Q29tcGFyZT1mdW5jdGlvbihlLHQpe3JldHVybiBlPnQ/MTplPHQ/LTE6MH0sZ29vZy5hcnJheS5pbnZlcnNlRGVmYXVsdENvbXBhcmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4tZ29vZy5hcnJheS5kZWZhdWx0Q29tcGFyZShlLHQpfSxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlRXF1YWxpdHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXR9LGdvb2cuYXJyYXkuYmluYXJ5SW5zZXJ0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMD4obj1nb29nLmFycmF5LmJpbmFyeVNlYXJjaChlLHQsbikpJiYoZ29vZy5hcnJheS5pbnNlcnRBdChlLHQsLShuKzEpKSwhMCl9LGdvb2cuYXJyYXkuYmluYXJ5UmVtb3ZlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMDw9KHQ9Z29vZy5hcnJheS5iaW5hcnlTZWFyY2goZSx0LG4pKSYmZ29vZy5hcnJheS5yZW1vdmVBdChlLHQpfSxnb29nLmFycmF5LmJ1Y2tldD1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPXt9LGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXSxhPXQuY2FsbChuLG8saSxlKTt2b2lkIDAhPT1hJiYoclthXXx8KHJbYV09W10pKS5wdXNoKG8pfXJldHVybiByfSxnb29nLmFycmF5LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj17fTtyZXR1cm4gZ29vZy5hcnJheS5mb3JFYWNoKGUsKGZ1bmN0aW9uKGksbyl7clt0LmNhbGwobixpLG8sZSldPWl9KSkscn0sZ29vZy5hcnJheS5yYW5nZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9W10saT0wLG89ZTtpZih2b2lkIDAhPT10JiYoaT1lLG89dCksMD4obj1ufHwxKSooby1pKSlyZXR1cm5bXTtpZigwPG4pZm9yKGU9aTtlPG87ZSs9bilyLnB1c2goZSk7ZWxzZSBmb3IoZT1pO2U+bztlKz1uKXIucHVzaChlKTtyZXR1cm4gcn0sZ29vZy5hcnJheS5yZXBlYXQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W10scj0wO3I8dDtyKyspbltyXT1lO3JldHVybiBufSxnb29nLmFycmF5LmZsYXR0ZW49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgcj1hcmd1bWVudHNbbl07aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krPTgxOTIpe3ZhciBvPWdvb2cuYXJyYXkuc2xpY2UocixpLGkrODE5Mik7bz1nb29nLmFycmF5LmZsYXR0ZW4uYXBwbHkobnVsbCxvKTtmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKyl0LnB1c2gob1thXSl9ZWxzZSB0LnB1c2gocil9cmV0dXJuIHR9LGdvb2cuYXJyYXkucm90YXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLGUubGVuZ3RoJiYoMDwodCU9ZS5sZW5ndGgpP0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGUsZS5zcGxpY2UoLXQsdCkpOjA+dCYmQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZSxlLnNwbGljZSgwLC10KSkpLGV9LGdvb2cuYXJyYXkubW92ZUl0ZW09ZnVuY3Rpb24oZSx0LG4pe2dvb2cuYXNzZXJ0cy5hc3NlcnQoMDw9dCYmdDxlLmxlbmd0aCksZ29vZy5hc3NlcnRzLmFzc2VydCgwPD1uJiZuPGUubGVuZ3RoKSx0PUFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChlLHQsMSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGUsbiwwLHRbMF0pfSxnb29nLmFycmF5LnppcD1mdW5jdGlvbihlKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bXTtmb3IodmFyIHQ9W10sbj1hcmd1bWVudHNbMF0ubGVuZ3RoLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWFyZ3VtZW50c1tyXS5sZW5ndGg8biYmKG49YXJndW1lbnRzW3JdLmxlbmd0aCk7Zm9yKHI9MDtyPG47cisrKXtmb3IodmFyIGk9W10sbz0wO288YXJndW1lbnRzLmxlbmd0aDtvKyspaS5wdXNoKGFyZ3VtZW50c1tvXVtyXSk7dC5wdXNoKGkpfXJldHVybiB0fSxnb29nLmFycmF5LnNodWZmbGU9ZnVuY3Rpb24oZSx0KXt0PXR8fE1hdGgucmFuZG9tO2Zvcih2YXIgbj1lLmxlbmd0aC0xOzA8bjtuLS0pe3ZhciByPU1hdGguZmxvb3IodCgpKihuKzEpKSxpPWVbbl07ZVtuXT1lW3JdLGVbcl09aX19LGdvb2cuYXJyYXkuY29weUJ5SW5kZXg9ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXTtyZXR1cm4gZ29vZy5hcnJheS5mb3JFYWNoKHQsKGZ1bmN0aW9uKHQpe24ucHVzaChlW3RdKX0pKSxufSxnb29nLmFycmF5LmNvbmNhdE1hcD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGdvb2cuYXJyYXkuY29uY2F0LmFwcGx5KFtdLGdvb2cuYXJyYXkubWFwKGUsdCxuKSl9LGdvb2cuY3J5cHQ9e30sZ29vZy5jcnlwdC5zdHJpbmdUb0J5dGVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZS5jaGFyQ29kZUF0KHIpOzI1NTxpJiYodFtuKytdPTI1NSZpLGk+Pj04KSx0W24rK109aX1yZXR1cm4gdH0sZ29vZy5jcnlwdC5ieXRlQXJyYXlUb1N0cmluZz1mdW5jdGlvbihlKXtpZig4MTkyPj1lLmxlbmd0aClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGUpO2Zvcih2YXIgdD1cIlwiLG49MDtuPGUubGVuZ3RoO24rPTgxOTIpe3ZhciByPWdvb2cuYXJyYXkuc2xpY2UoZSxuLG4rODE5Mik7dCs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHIpfXJldHVybiB0fSxnb29nLmNyeXB0LmJ5dGVBcnJheVRvSGV4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuYXJyYXkubWFwKGUsKGZ1bmN0aW9uKGUpe3JldHVybiAxPChlPWUudG9TdHJpbmcoMTYpKS5sZW5ndGg/ZTpcIjBcIitlfSkpLmpvaW4odHx8XCJcIil9LGdvb2cuY3J5cHQuaGV4VG9CeXRlQXJyYXk9ZnVuY3Rpb24oZSl7Z29vZy5hc3NlcnRzLmFzc2VydCgwPT1lLmxlbmd0aCUyLFwiS2V5IHN0cmluZyBsZW5ndGggbXVzdCBiZSBtdWx0aXBsZSBvZiAyXCIpO2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDtuKz0yKXQucHVzaChwYXJzZUludChlLnN1YnN0cmluZyhuLG4rMiksMTYpKTtyZXR1cm4gdH0sZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MCxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWUuY2hhckNvZGVBdChyKTsxMjg+aT90W24rK109aTooMjA0OD5pP3RbbisrXT1pPj42fDE5MjooNTUyOTY9PSg2NDUxMiZpKSYmcisxPGUubGVuZ3RoJiY1NjMyMD09KDY0NTEyJmUuY2hhckNvZGVBdChyKzEpKT8oaT02NTUzNisoKDEwMjMmaSk8PDEwKSsoMTAyMyZlLmNoYXJDb2RlQXQoKytyKSksdFtuKytdPWk+PjE4fDI0MCx0W24rK109aT4+MTImNjN8MTI4KTp0W24rK109aT4+MTJ8MjI0LHRbbisrXT1pPj42JjYzfDEyOCksdFtuKytdPTYzJml8MTI4KX1yZXR1cm4gdH0sZ29vZy5jcnlwdC51dGY4Qnl0ZUFycmF5VG9TdHJpbmc9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MCxyPTA7bjxlLmxlbmd0aDspe3ZhciBpPWVbbisrXTtpZigxMjg+aSl0W3IrK109U3RyaW5nLmZyb21DaGFyQ29kZShpKTtlbHNlIGlmKDE5MTxpJiYyMjQ+aSl7dmFyIG89ZVtuKytdO3RbcisrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZpKTw8Nnw2MyZvKX1lbHNlIGlmKDIzOTxpJiYzNjU+aSl7bz1lW24rK107dmFyIGE9ZVtuKytdO2k9KCg3JmkpPDwxOHwoNjMmbyk8PDEyfCg2MyZhKTw8Nnw2MyZlW24rK10pLTY1NTM2LHRbcisrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhpPj4xMCkpLHRbcisrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJmkpKX1lbHNlIG89ZVtuKytdLGE9ZVtuKytdLHRbcisrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKCgxNSZpKTw8MTJ8KDYzJm8pPDw2fDYzJmEpfXJldHVybiB0LmpvaW4oXCJcIil9LGdvb2cuY3J5cHQueG9yQnl0ZUFycmF5PWZ1bmN0aW9uKGUsdCl7Z29vZy5hc3NlcnRzLmFzc2VydChlLmxlbmd0aD09dC5sZW5ndGgsXCJYT1IgYXJyYXkgbGVuZ3RocyBtdXN0IG1hdGNoXCIpO2Zvcih2YXIgbj1bXSxyPTA7cjxlLmxlbmd0aDtyKyspbi5wdXNoKGVbcl1edFtyXSk7cmV0dXJuIG59LGdvb2cuZG9tLmFzc2VydHM9e30sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0xvY2F0aW9uPWZ1bmN0aW9uKGUpe2lmKGdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyl7dmFyIHQ9Z29vZy5kb20uYXNzZXJ0cy5nZXRXaW5kb3dfKGUpO3QmJighZXx8IShlIGluc3RhbmNlb2YgdC5Mb2NhdGlvbikmJmUgaW5zdGFuY2VvZiB0LkVsZW1lbnQpJiZnb29nLmFzc2VydHMuZmFpbChcIkFyZ3VtZW50IGlzIG5vdCBhIExvY2F0aW9uIChvciBhIG5vbi1FbGVtZW50IG1vY2spOyBnb3Q6ICVzXCIsZ29vZy5kb20uYXNzZXJ0cy5kZWJ1Z1N0cmluZ0ZvclR5cGVfKGUpKX1yZXR1cm4gZX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXz1mdW5jdGlvbihlLHQpe2lmKGdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyl7dmFyIG49Z29vZy5kb20uYXNzZXJ0cy5nZXRXaW5kb3dfKGUpO24mJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBuW3RdJiYoZSYmKGUgaW5zdGFuY2VvZiBuW3RdfHwhKGUgaW5zdGFuY2VvZiBuLkxvY2F0aW9ufHxlIGluc3RhbmNlb2Ygbi5FbGVtZW50KSl8fGdvb2cuYXNzZXJ0cy5mYWlsKFwiQXJndW1lbnQgaXMgbm90IGEgJXMgKG9yIGEgbm9uLUVsZW1lbnQsIG5vbi1Mb2NhdGlvbiBtb2NrKTsgZ290OiAlc1wiLHQsZ29vZy5kb20uYXNzZXJ0cy5kZWJ1Z1N0cmluZ0ZvclR5cGVfKGUpKSl9cmV0dXJuIGV9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MQW5jaG9yRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTEFuY2hvckVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MQnV0dG9uRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTEJ1dHRvbkVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MTGlua0VsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxMaW5rRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxJbWFnZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxJbWFnZUVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MQXVkaW9FbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MQXVkaW9FbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTFZpZGVvRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTFZpZGVvRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxJbnB1dEVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxJbnB1dEVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MVGV4dEFyZWFFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MVGV4dEFyZWFFbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTENhbnZhc0VsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxDYW52YXNFbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEVtYmVkRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTEVtYmVkRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxGb3JtRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTEZvcm1FbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEZyYW1lRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTEZyYW1lRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxJRnJhbWVFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MSUZyYW1lRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxPYmplY3RFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MT2JqZWN0RWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxTY3JpcHRFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MU2NyaXB0RWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5kZWJ1Z1N0cmluZ0ZvclR5cGVfPWZ1bmN0aW9uKGUpe2lmKCFnb29nLmlzT2JqZWN0KGUpKXJldHVybiB2b2lkIDA9PT1lP1widW5kZWZpbmVkXCI6bnVsbD09PWU/XCJudWxsXCI6dHlwZW9mIGU7dHJ5e3JldHVybiBlLmNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lfHxlLmNvbnN0cnVjdG9yLm5hbWV8fE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1jYXRjaCh0KXtyZXR1cm5cIjxvYmplY3QgY291bGQgbm90IGJlIHN0cmluZ2lmaWVkPlwifX0sZ29vZy5kb20uYXNzZXJ0cy5nZXRXaW5kb3dfPWZ1bmN0aW9uKGUpe3RyeXt2YXIgdD1lJiZlLm93bmVyRG9jdW1lbnQsbj10JiYodC5kZWZhdWx0Vmlld3x8dC5wYXJlbnRXaW5kb3cpO2lmKChuPW58fGdvb2cuZ2xvYmFsKS5FbGVtZW50JiZuLkxvY2F0aW9uKXJldHVybiBufWNhdGNoKHIpe31yZXR1cm4gbnVsbH0sZ29vZy5mdW5jdGlvbnM9e30sZ29vZy5mdW5jdGlvbnMuY29uc3RhbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fSxnb29nLmZ1bmN0aW9ucy5GQUxTRT1mdW5jdGlvbigpe3JldHVybiExfSxnb29nLmZ1bmN0aW9ucy5UUlVFPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGdvb2cuZnVuY3Rpb25zLk5VTEw9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZ29vZy5mdW5jdGlvbnMuaWRlbnRpdHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZX0sZ29vZy5mdW5jdGlvbnMuZXJyb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoZSl9fSxnb29nLmZ1bmN0aW9ucy5mYWlsPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3Rocm93IGV9fSxnb29nLmZ1bmN0aW9ucy5sb2NrPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dHx8MCxmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHRoaXMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDAsdCkpfX0sZ29vZy5mdW5jdGlvbnMubnRoPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHNbZV19fSxnb29nLmZ1bmN0aW9ucy5wYXJ0aWFsUmlnaHQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gdC5wdXNoLmFwcGx5KHQsbiksZS5hcHBseSh0aGlzLHQpfX0sZ29vZy5mdW5jdGlvbnMud2l0aFJldHVyblZhbHVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuZnVuY3Rpb25zLnNlcXVlbmNlKGUsZ29vZy5mdW5jdGlvbnMuY29uc3RhbnQodCkpfSxnb29nLmZ1bmN0aW9ucy5lcXVhbFRvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0P2U9PW46ZT09PW59fSxnb29nLmZ1bmN0aW9ucy5jb21wb3NlPWZ1bmN0aW9uKGUsdCl7dmFyIG49YXJndW1lbnRzLHI9bi5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU7ciYmKGU9bltyLTFdLmFwcGx5KHRoaXMsYXJndW1lbnRzKSk7Zm9yKHZhciB0PXItMjswPD10O3QtLSllPW5bdF0uY2FsbCh0aGlzLGUpO3JldHVybiBlfX0sZ29vZy5mdW5jdGlvbnMuc2VxdWVuY2U9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHI9MDtyPG47cisrKWU9dFtyXS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGV9fSxnb29nLmZ1bmN0aW9ucy5hbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxuO2UrKylpZighdFtlXS5hcHBseSh0aGlzLGFyZ3VtZW50cykpcmV0dXJuITE7cmV0dXJuITB9fSxnb29nLmZ1bmN0aW9ucy5vcj1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMsbj10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPG47ZSsrKWlmKHRbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpKXJldHVybiEwO3JldHVybiExfX0sZ29vZy5mdW5jdGlvbnMubm90PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiFlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LGdvb2cuZnVuY3Rpb25zLmNyZWF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7fTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbj1uZXcgbixlLmFwcGx5KG4sQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKSxufSxnb29nLmZ1bmN0aW9ucy5DQUNIRV9SRVRVUk5fVkFMVUU9ITAsZ29vZy5mdW5jdGlvbnMuY2FjaGVSZXR1cm5WYWx1ZT1mdW5jdGlvbihlKXt2YXIgdCxuPSExO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBnb29nLmZ1bmN0aW9ucy5DQUNIRV9SRVRVUk5fVkFMVUU/KG58fCh0PWUoKSxuPSEwKSx0KTplKCl9fSxnb29nLmZ1bmN0aW9ucy5vbmNlPWZ1bmN0aW9uKGUpe3ZhciB0PWU7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodCl7dmFyIGU9dDt0PW51bGwsZSgpfX19LGdvb2cuZnVuY3Rpb25zLmRlYm91bmNlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0wO3JldHVybiBmdW5jdGlvbihpKXtnb29nLmdsb2JhbC5jbGVhclRpbWVvdXQocik7dmFyIG89YXJndW1lbnRzO3I9Z29vZy5nbG9iYWwuc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLmFwcGx5KG4sbyl9KSx0KX19LGdvb2cuZnVuY3Rpb25zLnRocm90dGxlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0wLGk9ITEsbz1bXSxhPWZ1bmN0aW9uKCl7cj0wLGkmJihpPSExLHMoKSl9LHM9ZnVuY3Rpb24oKXtyPWdvb2cuZ2xvYmFsLnNldFRpbWVvdXQoYSx0KSxlLmFwcGx5KG4sbyl9O3JldHVybiBmdW5jdGlvbihlKXtvPWFyZ3VtZW50cyxyP2k9ITA6cygpfX0sZ29vZy5mdW5jdGlvbnMucmF0ZUxpbWl0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0wLGk9ZnVuY3Rpb24oKXtyPTB9O3JldHVybiBmdW5jdGlvbihvKXtyfHwocj1nb29nLmdsb2JhbC5zZXRUaW1lb3V0KGksdCksZS5hcHBseShuLGFyZ3VtZW50cykpfX0sZ29vZy5kb20uSHRtbEVsZW1lbnQ9ZnVuY3Rpb24oKXt9LGdvb2cuZG9tLlRhZ05hbWU9ZnVuY3Rpb24oZSl7dGhpcy50YWdOYW1lXz1lfSxnb29nLmRvbS5UYWdOYW1lLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRhZ05hbWVffSxnb29nLmRvbS5UYWdOYW1lLkE9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJBXCIpLGdvb2cuZG9tLlRhZ05hbWUuQUJCUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkFCQlJcIiksZ29vZy5kb20uVGFnTmFtZS5BQ1JPTllNPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQUNST05ZTVwiKSxnb29nLmRvbS5UYWdOYW1lLkFERFJFU1M9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJBRERSRVNTXCIpLGdvb2cuZG9tLlRhZ05hbWUuQVBQTEVUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQVBQTEVUXCIpLGdvb2cuZG9tLlRhZ05hbWUuQVJFQT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkFSRUFcIiksZ29vZy5kb20uVGFnTmFtZS5BUlRJQ0xFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQVJUSUNMRVwiKSxnb29nLmRvbS5UYWdOYW1lLkFTSURFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQVNJREVcIiksZ29vZy5kb20uVGFnTmFtZS5BVURJTz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkFVRElPXCIpLGdvb2cuZG9tLlRhZ05hbWUuQj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkJcIiksZ29vZy5kb20uVGFnTmFtZS5CQVNFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQkFTRVwiKSxnb29nLmRvbS5UYWdOYW1lLkJBU0VGT05UPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQkFTRUZPTlRcIiksZ29vZy5kb20uVGFnTmFtZS5CREk9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJCRElcIiksZ29vZy5kb20uVGFnTmFtZS5CRE89bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJCRE9cIiksZ29vZy5kb20uVGFnTmFtZS5CSUc9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJCSUdcIiksZ29vZy5kb20uVGFnTmFtZS5CTE9DS1FVT1RFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQkxPQ0tRVU9URVwiKSxnb29nLmRvbS5UYWdOYW1lLkJPRFk9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJCT0RZXCIpLGdvb2cuZG9tLlRhZ05hbWUuQlI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJCUlwiKSxnb29nLmRvbS5UYWdOYW1lLkJVVFRPTj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkJVVFRPTlwiKSxnb29nLmRvbS5UYWdOYW1lLkNBTlZBUz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkNBTlZBU1wiKSxnb29nLmRvbS5UYWdOYW1lLkNBUFRJT049bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJDQVBUSU9OXCIpLGdvb2cuZG9tLlRhZ05hbWUuQ0VOVEVSPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQ0VOVEVSXCIpLGdvb2cuZG9tLlRhZ05hbWUuQ0lURT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkNJVEVcIiksZ29vZy5kb20uVGFnTmFtZS5DT0RFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQ09ERVwiKSxnb29nLmRvbS5UYWdOYW1lLkNPTD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkNPTFwiKSxnb29nLmRvbS5UYWdOYW1lLkNPTEdST1VQPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQ09MR1JPVVBcIiksZ29vZy5kb20uVGFnTmFtZS5DT01NQU5EPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQ09NTUFORFwiKSxnb29nLmRvbS5UYWdOYW1lLkRBVEE9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJEQVRBXCIpLGdvb2cuZG9tLlRhZ05hbWUuREFUQUxJU1Q9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJEQVRBTElTVFwiKSxnb29nLmRvbS5UYWdOYW1lLkREPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRERcIiksZ29vZy5kb20uVGFnTmFtZS5ERUw9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJERUxcIiksZ29vZy5kb20uVGFnTmFtZS5ERVRBSUxTPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiREVUQUlMU1wiKSxnb29nLmRvbS5UYWdOYW1lLkRGTj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkRGTlwiKSxnb29nLmRvbS5UYWdOYW1lLkRJQUxPRz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkRJQUxPR1wiKSxnb29nLmRvbS5UYWdOYW1lLkRJUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkRJUlwiKSxnb29nLmRvbS5UYWdOYW1lLkRJVj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkRJVlwiKSxnb29nLmRvbS5UYWdOYW1lLkRMPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRExcIiksZ29vZy5kb20uVGFnTmFtZS5EVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkRUXCIpLGdvb2cuZG9tLlRhZ05hbWUuRU09bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJFTVwiKSxnb29nLmRvbS5UYWdOYW1lLkVNQkVEPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRU1CRURcIiksZ29vZy5kb20uVGFnTmFtZS5GSUVMRFNFVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkZJRUxEU0VUXCIpLGdvb2cuZG9tLlRhZ05hbWUuRklHQ0FQVElPTj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkZJR0NBUFRJT05cIiksZ29vZy5kb20uVGFnTmFtZS5GSUdVUkU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJGSUdVUkVcIiksZ29vZy5kb20uVGFnTmFtZS5GT05UPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRk9OVFwiKSxnb29nLmRvbS5UYWdOYW1lLkZPT1RFUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkZPT1RFUlwiKSxnb29nLmRvbS5UYWdOYW1lLkZPUk09bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJGT1JNXCIpLGdvb2cuZG9tLlRhZ05hbWUuRlJBTUU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJGUkFNRVwiKSxnb29nLmRvbS5UYWdOYW1lLkZSQU1FU0VUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRlJBTUVTRVRcIiksZ29vZy5kb20uVGFnTmFtZS5IMT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkgxXCIpLGdvb2cuZG9tLlRhZ05hbWUuSDI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJIMlwiKSxnb29nLmRvbS5UYWdOYW1lLkgzPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSDNcIiksZ29vZy5kb20uVGFnTmFtZS5IND1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkg0XCIpLGdvb2cuZG9tLlRhZ05hbWUuSDU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJINVwiKSxnb29nLmRvbS5UYWdOYW1lLkg2PW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSDZcIiksZ29vZy5kb20uVGFnTmFtZS5IRUFEPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSEVBRFwiKSxnb29nLmRvbS5UYWdOYW1lLkhFQURFUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkhFQURFUlwiKSxnb29nLmRvbS5UYWdOYW1lLkhHUk9VUD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkhHUk9VUFwiKSxnb29nLmRvbS5UYWdOYW1lLkhSPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSFJcIiksZ29vZy5kb20uVGFnTmFtZS5IVE1MPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSFRNTFwiKSxnb29nLmRvbS5UYWdOYW1lLkk9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJJXCIpLGdvb2cuZG9tLlRhZ05hbWUuSUZSQU1FPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSUZSQU1FXCIpLGdvb2cuZG9tLlRhZ05hbWUuSU1HPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSU1HXCIpLGdvb2cuZG9tLlRhZ05hbWUuSU5QVVQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJJTlBVVFwiKSxnb29nLmRvbS5UYWdOYW1lLklOUz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIklOU1wiKSxnb29nLmRvbS5UYWdOYW1lLklTSU5ERVg9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJJU0lOREVYXCIpLGdvb2cuZG9tLlRhZ05hbWUuS0JEPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiS0JEXCIpLGdvb2cuZG9tLlRhZ05hbWUuS0VZR0VOPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiS0VZR0VOXCIpLGdvb2cuZG9tLlRhZ05hbWUuTEFCRUw9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJMQUJFTFwiKSxnb29nLmRvbS5UYWdOYW1lLkxFR0VORD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkxFR0VORFwiKSxnb29nLmRvbS5UYWdOYW1lLkxJPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTElcIiksZ29vZy5kb20uVGFnTmFtZS5MSU5LPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTElOS1wiKSxnb29nLmRvbS5UYWdOYW1lLk1BSU49bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJNQUlOXCIpLGdvb2cuZG9tLlRhZ05hbWUuTUFQPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTUFQXCIpLGdvb2cuZG9tLlRhZ05hbWUuTUFSSz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk1BUktcIiksZ29vZy5kb20uVGFnTmFtZS5NQVRIPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTUFUSFwiKSxnb29nLmRvbS5UYWdOYW1lLk1FTlU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJNRU5VXCIpLGdvb2cuZG9tLlRhZ05hbWUuTUVOVUlURU09bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJNRU5VSVRFTVwiKSxnb29nLmRvbS5UYWdOYW1lLk1FVEE9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJNRVRBXCIpLGdvb2cuZG9tLlRhZ05hbWUuTUVURVI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJNRVRFUlwiKSxnb29nLmRvbS5UYWdOYW1lLk5BVj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk5BVlwiKSxnb29nLmRvbS5UYWdOYW1lLk5PRlJBTUVTPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTk9GUkFNRVNcIiksZ29vZy5kb20uVGFnTmFtZS5OT1NDUklQVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk5PU0NSSVBUXCIpLGdvb2cuZG9tLlRhZ05hbWUuT0JKRUNUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiT0JKRUNUXCIpLGdvb2cuZG9tLlRhZ05hbWUuT0w9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJPTFwiKSxnb29nLmRvbS5UYWdOYW1lLk9QVEdST1VQPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiT1BUR1JPVVBcIiksZ29vZy5kb20uVGFnTmFtZS5PUFRJT049bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJPUFRJT05cIiksZ29vZy5kb20uVGFnTmFtZS5PVVRQVVQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJPVVRQVVRcIiksZ29vZy5kb20uVGFnTmFtZS5QPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiUFwiKSxnb29nLmRvbS5UYWdOYW1lLlBBUkFNPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiUEFSQU1cIiksZ29vZy5kb20uVGFnTmFtZS5QSUNUVVJFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiUElDVFVSRVwiKSxnb29nLmRvbS5UYWdOYW1lLlBSRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlBSRVwiKSxnb29nLmRvbS5UYWdOYW1lLlBST0dSRVNTPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiUFJPR1JFU1NcIiksZ29vZy5kb20uVGFnTmFtZS5RPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiUVwiKSxnb29nLmRvbS5UYWdOYW1lLlJQPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiUlBcIiksZ29vZy5kb20uVGFnTmFtZS5SVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlJUXCIpLGdvb2cuZG9tLlRhZ05hbWUuUlRDPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiUlRDXCIpLGdvb2cuZG9tLlRhZ05hbWUuUlVCWT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlJVQllcIiksZ29vZy5kb20uVGFnTmFtZS5TPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU1wiKSxnb29nLmRvbS5UYWdOYW1lLlNBTVA9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTQU1QXCIpLGdvb2cuZG9tLlRhZ05hbWUuU0NSSVBUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU0NSSVBUXCIpLGdvb2cuZG9tLlRhZ05hbWUuU0VDVElPTj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNFQ1RJT05cIiksZ29vZy5kb20uVGFnTmFtZS5TRUxFQ1Q9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTRUxFQ1RcIiksZ29vZy5kb20uVGFnTmFtZS5TTUFMTD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNNQUxMXCIpLGdvb2cuZG9tLlRhZ05hbWUuU09VUkNFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU09VUkNFXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1BBTj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNQQU5cIiksZ29vZy5kb20uVGFnTmFtZS5TVFJJS0U9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTVFJJS0VcIiksZ29vZy5kb20uVGFnTmFtZS5TVFJPTkc9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTVFJPTkdcIiksZ29vZy5kb20uVGFnTmFtZS5TVFlMRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNUWUxFXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1VCPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU1VCXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1VNTUFSWT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNVTU1BUllcIiksZ29vZy5kb20uVGFnTmFtZS5TVVA9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTVVBcIiksZ29vZy5kb20uVGFnTmFtZS5TVkc9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTVkdcIiksZ29vZy5kb20uVGFnTmFtZS5UQUJMRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlRBQkxFXCIpLGdvb2cuZG9tLlRhZ05hbWUuVEJPRFk9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUQk9EWVwiKSxnb29nLmRvbS5UYWdOYW1lLlREPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVERcIiksZ29vZy5kb20uVGFnTmFtZS5URU1QTEFURT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlRFTVBMQVRFXCIpLGdvb2cuZG9tLlRhZ05hbWUuVEVYVEFSRUE9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJURVhUQVJFQVwiKSxnb29nLmRvbS5UYWdOYW1lLlRGT09UPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVEZPT1RcIiksZ29vZy5kb20uVGFnTmFtZS5USD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlRIXCIpLGdvb2cuZG9tLlRhZ05hbWUuVEhFQUQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUSEVBRFwiKSxnb29nLmRvbS5UYWdOYW1lLlRJTUU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUSU1FXCIpLGdvb2cuZG9tLlRhZ05hbWUuVElUTEU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUSVRMRVwiKSxnb29nLmRvbS5UYWdOYW1lLlRSPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVFJcIiksZ29vZy5kb20uVGFnTmFtZS5UUkFDSz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlRSQUNLXCIpLGdvb2cuZG9tLlRhZ05hbWUuVFQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUVFwiKSxnb29nLmRvbS5UYWdOYW1lLlU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJVXCIpLGdvb2cuZG9tLlRhZ05hbWUuVUw9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJVTFwiKSxnb29nLmRvbS5UYWdOYW1lLlZBUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlZBUlwiKSxnb29nLmRvbS5UYWdOYW1lLlZJREVPPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVklERU9cIiksZ29vZy5kb20uVGFnTmFtZS5XQlI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJXQlJcIiksZ29vZy5kb20udGFncz17fSxnb29nLmRvbS50YWdzLlZPSURfVEFHU189e2FyZWE6ITAsYmFzZTohMCxicjohMCxjb2w6ITAsY29tbWFuZDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSxnb29nLmRvbS50YWdzLmlzVm9pZFRhZz1mdW5jdGlvbihlKXtyZXR1cm4hMD09PWdvb2cuZG9tLnRhZ3MuVk9JRF9UQUdTX1tlXX0sZ29vZy5odG1sPXt9LGdvb2cuaHRtbC50cnVzdGVkdHlwZXM9e30sZ29vZy5odG1sLnRydXN0ZWR0eXBlcy5QUklWQVRFX0RPX05PVF9BQ0NFU1NfT1JfRUxTRV9QT0xJQ1k9Z29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV9OQU1FP2dvb2cuY3JlYXRlVHJ1c3RlZFR5cGVzUG9saWN5KGdvb2cuVFJVU1RFRF9UWVBFU19QT0xJQ1lfTkFNRStcIiNodG1sXCIpOm51bGwsZ29vZy5zdHJpbmc9e30sZ29vZy5zdHJpbmcuVHlwZWRTdHJpbmc9ZnVuY3Rpb24oKXt9LGdvb2cuc3RyaW5nLkNvbnN0PWZ1bmN0aW9uKGUsdCl7dGhpcy5zdHJpbmdDb25zdFZhbHVlV2l0aFNlY3VyaXR5Q29udHJhY3RfX2dvb2dTdHJpbmdTZWN1cml0eVByaXZhdGVfPWU9PT1nb29nLnN0cmluZy5Db25zdC5HT09HX1NUUklOR19DT05TVFJVQ1RPUl9UT0tFTl9QUklWQVRFXyYmdHx8XCJcIix0aGlzLlNUUklOR19DT05TVF9UWVBFX01BUktFUl9fR09PR19TVFJJTkdfU0VDVVJJVFlfUFJJVkFURV89Z29vZy5zdHJpbmcuQ29uc3QuVFlQRV9NQVJLRVJffSxnb29nLnN0cmluZy5Db25zdC5wcm90b3R5cGUuaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZz0hMCxnb29nLnN0cmluZy5Db25zdC5wcm90b3R5cGUuZ2V0VHlwZWRTdHJpbmdWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0cmluZ0NvbnN0VmFsdWVXaXRoU2VjdXJpdHlDb250cmFjdF9fZ29vZ1N0cmluZ1NlY3VyaXR5UHJpdmF0ZV99LGdvb2cuREVCVUcmJihnb29nLnN0cmluZy5Db25zdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIkNvbnN0e1wiK3RoaXMuc3RyaW5nQ29uc3RWYWx1ZVdpdGhTZWN1cml0eUNvbnRyYWN0X19nb29nU3RyaW5nU2VjdXJpdHlQcml2YXRlXytcIn1cIn0pLGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuc3RyaW5nLkNvbnN0JiZlLmNvbnN0cnVjdG9yPT09Z29vZy5zdHJpbmcuQ29uc3QmJmUuU1RSSU5HX0NPTlNUX1RZUEVfTUFSS0VSX19HT09HX1NUUklOR19TRUNVUklUWV9QUklWQVRFXz09PWdvb2cuc3RyaW5nLkNvbnN0LlRZUEVfTUFSS0VSXz9lLnN0cmluZ0NvbnN0VmFsdWVXaXRoU2VjdXJpdHlDb250cmFjdF9fZ29vZ1N0cmluZ1NlY3VyaXR5UHJpdmF0ZV86KGdvb2cuYXNzZXJ0cy5mYWlsKFwiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgQ29uc3QsIGdvdCAnXCIrZStcIidcIiksXCJ0eXBlX2Vycm9yOkNvbnN0XCIpfSxnb29nLnN0cmluZy5Db25zdC5mcm9tPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgZ29vZy5zdHJpbmcuQ29uc3QoZ29vZy5zdHJpbmcuQ29uc3QuR09PR19TVFJJTkdfQ09OU1RSVUNUT1JfVE9LRU5fUFJJVkFURV8sZSl9LGdvb2cuc3RyaW5nLkNvbnN0LlRZUEVfTUFSS0VSXz17fSxnb29nLnN0cmluZy5Db25zdC5HT09HX1NUUklOR19DT05TVFJVQ1RPUl9UT0tFTl9QUklWQVRFXz17fSxnb29nLnN0cmluZy5Db25zdC5FTVBUWT1nb29nLnN0cmluZy5Db25zdC5mcm9tKFwiXCIpLGdvb2cuaHRtbC5TYWZlU2NyaXB0PWZ1bmN0aW9uKCl7dGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU2NyaXB0V3JhcHBlZFZhbHVlXz1cIlwiLHRoaXMuU0FGRV9TQ1JJUFRfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPWdvb2cuaHRtbC5TYWZlU2NyaXB0LlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFX30sZ29vZy5odG1sLlNhZmVTY3JpcHQucHJvdG90eXBlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc9ITAsZ29vZy5odG1sLlNhZmVTY3JpcHQuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPXt9LGdvb2cuaHRtbC5TYWZlU2NyaXB0LmZyb21Db25zdGFudD1mdW5jdGlvbihlKXtyZXR1cm4gMD09PShlPWdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSkubGVuZ3RoP2dvb2cuaHRtbC5TYWZlU2NyaXB0LkVNUFRZOmdvb2cuaHRtbC5TYWZlU2NyaXB0LmNyZWF0ZVNhZmVTY3JpcHRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlNhZmVTY3JpcHQuZnJvbUNvbnN0YW50QW5kQXJncz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyluLnB1c2goZ29vZy5odG1sLlNhZmVTY3JpcHQuc3RyaW5naWZ5Xyhhcmd1bWVudHNbcl0pKTtyZXR1cm4gZ29vZy5odG1sLlNhZmVTY3JpcHQuY3JlYXRlU2FmZVNjcmlwdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiKFwiK2dvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKStcIikoXCIrbi5qb2luKFwiLCBcIikrXCIpO1wiKX0sZ29vZy5odG1sLlNhZmVTY3JpcHQuZnJvbUpzb249ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlU2NyaXB0LmNyZWF0ZVNhZmVTY3JpcHRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShnb29nLmh0bWwuU2FmZVNjcmlwdC5zdHJpbmdpZnlfKGUpKX0sZ29vZy5odG1sLlNhZmVTY3JpcHQucHJvdG90eXBlLmdldFR5cGVkU3RyaW5nVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU2NyaXB0V3JhcHBlZFZhbHVlXy50b1N0cmluZygpfSxnb29nLkRFQlVHJiYoZ29vZy5odG1sLlNhZmVTY3JpcHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJTYWZlU2NyaXB0e1wiK3RoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVNjcmlwdFdyYXBwZWRWYWx1ZV8rXCJ9XCJ9KSxnb29nLmh0bWwuU2FmZVNjcmlwdC51bndyYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlU2NyaXB0LnVud3JhcFRydXN0ZWRTY3JpcHQoZSkudG9TdHJpbmcoKX0sZ29vZy5odG1sLlNhZmVTY3JpcHQudW53cmFwVHJ1c3RlZFNjcmlwdD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlU2NyaXB0JiZlLmNvbnN0cnVjdG9yPT09Z29vZy5odG1sLlNhZmVTY3JpcHQmJmUuU0FGRV9TQ1JJUFRfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5odG1sLlNhZmVTY3JpcHQuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfP2UucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVNjcmlwdFdyYXBwZWRWYWx1ZV86KGdvb2cuYXNzZXJ0cy5mYWlsKFwiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgU2FmZVNjcmlwdCwgZ290ICdcIitlK1wiJyBvZiB0eXBlIFwiK2dvb2cudHlwZU9mKGUpKSxcInR5cGVfZXJyb3I6U2FmZVNjcmlwdFwiKX0sZ29vZy5odG1sLlNhZmVTY3JpcHQuc3RyaW5naWZ5Xz1mdW5jdGlvbihlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSkucmVwbGFjZSgvPC9nLFwiXFxcXHgzY1wiKX0sZ29vZy5odG1sLlNhZmVTY3JpcHQuY3JlYXRlU2FmZVNjcmlwdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUpe3JldHVybihuZXcgZ29vZy5odG1sLlNhZmVTY3JpcHQpLmluaXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZV8oZSl9LGdvb2cuaHRtbC5TYWZlU2NyaXB0LnByb3RvdHlwZS5pbml0U2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VfPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTY3JpcHRXcmFwcGVkVmFsdWVfPWdvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZP2dvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZLmNyZWF0ZVNjcmlwdChlKTplLHRoaXN9LGdvb2cuaHRtbC5TYWZlU2NyaXB0LkVNUFRZPWdvb2cuaHRtbC5TYWZlU2NyaXB0LmNyZWF0ZVNhZmVTY3JpcHRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcIlwiKSxnb29nLmZzPXt9LGdvb2cuZnMudXJsPXt9LGdvb2cuZnMudXJsLmNyZWF0ZU9iamVjdFVybD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5mcy51cmwuZ2V0VXJsT2JqZWN0XygpLmNyZWF0ZU9iamVjdFVSTChlKX0sZ29vZy5mcy51cmwucmV2b2tlT2JqZWN0VXJsPWZ1bmN0aW9uKGUpe2dvb2cuZnMudXJsLmdldFVybE9iamVjdF8oKS5yZXZva2VPYmplY3RVUkwoZSl9LGdvb2cuZnMudXJsLlVybE9iamVjdF89ZnVuY3Rpb24oKXt9LGdvb2cuZnMudXJsLlVybE9iamVjdF8ucHJvdG90eXBlLmNyZWF0ZU9iamVjdFVSTD1mdW5jdGlvbihlKXt9LGdvb2cuZnMudXJsLlVybE9iamVjdF8ucHJvdG90eXBlLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbihlKXt9LGdvb2cuZnMudXJsLmdldFVybE9iamVjdF89ZnVuY3Rpb24oKXt2YXIgZT1nb29nLmZzLnVybC5maW5kVXJsT2JqZWN0XygpO2lmKG51bGwhPWUpcmV0dXJuIGU7dGhyb3cgRXJyb3IoXCJUaGlzIGJyb3dzZXIgZG9lc24ndCBzZWVtIHRvIHN1cHBvcnQgYmxvYiBVUkxzXCIpfSxnb29nLmZzLnVybC5maW5kVXJsT2JqZWN0Xz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1nb29nLmdsb2JhbC5VUkwmJnZvaWQgMCE9PWdvb2cuZ2xvYmFsLlVSTC5jcmVhdGVPYmplY3RVUkw/Z29vZy5nbG9iYWwuVVJMOnZvaWQgMCE9PWdvb2cuZ2xvYmFsLndlYmtpdFVSTCYmdm9pZCAwIT09Z29vZy5nbG9iYWwud2Via2l0VVJMLmNyZWF0ZU9iamVjdFVSTD9nb29nLmdsb2JhbC53ZWJraXRVUkw6dm9pZCAwIT09Z29vZy5nbG9iYWwuY3JlYXRlT2JqZWN0VVJMP2dvb2cuZ2xvYmFsOm51bGx9LGdvb2cuZnMudXJsLmJyb3dzZXJTdXBwb3J0c09iamVjdFVybHM9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9Z29vZy5mcy51cmwuZmluZFVybE9iamVjdF8oKX0sZ29vZy5mcy5ibG9iPXt9LGdvb2cuZnMuYmxvYi5nZXRCbG9iPWZ1bmN0aW9uKGUpe3ZhciB0PWdvb2cuZ2xvYmFsLkJsb2JCdWlsZGVyfHxnb29nLmdsb2JhbC5XZWJLaXRCbG9iQnVpbGRlcjtpZih2b2lkIDAhPT10KXt0PW5ldyB0O2Zvcih2YXIgbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspdC5hcHBlbmQoYXJndW1lbnRzW25dKTtyZXR1cm4gdC5nZXRCbG9iKCl9cmV0dXJuIGdvb2cuZnMuYmxvYi5nZXRCbG9iV2l0aFByb3BlcnRpZXMoZ29vZy5hcnJheS50b0FycmF5KGFyZ3VtZW50cykpfSxnb29nLmZzLmJsb2IuZ2V0QmxvYldpdGhQcm9wZXJ0aWVzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1nb29nLmdsb2JhbC5CbG9iQnVpbGRlcnx8Z29vZy5nbG9iYWwuV2ViS2l0QmxvYkJ1aWxkZXI7aWYodm9pZCAwIT09cil7cj1uZXcgcjtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKylyLmFwcGVuZChlW2ldLG4pO3JldHVybiByLmdldEJsb2IodCl9aWYodm9pZCAwIT09Z29vZy5nbG9iYWwuQmxvYilyZXR1cm4gcj17fSx0JiYoci50eXBlPXQpLG4mJihyLmVuZGluZ3M9biksbmV3IEJsb2IoZSxyKTt0aHJvdyBFcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCBjcmVhdGluZyBCbG9ic1wiKX0sZ29vZy5pMThuPXt9LGdvb2cuaTE4bi5iaWRpPXt9LGdvb2cuaTE4bi5iaWRpLkZPUkNFX1JUTD0hMSxnb29nLmkxOG4uYmlkaS5JU19SVEw9Z29vZy5pMThuLmJpZGkuRk9SQ0VfUlRMfHwoXCJhclwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMCwyKS50b0xvd2VyQ2FzZSgpfHxcImZhXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygwLDIpLnRvTG93ZXJDYXNlKCl8fFwiaGVcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDAsMikudG9Mb3dlckNhc2UoKXx8XCJpd1wiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMCwyKS50b0xvd2VyQ2FzZSgpfHxcInBzXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygwLDIpLnRvTG93ZXJDYXNlKCl8fFwic2RcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDAsMikudG9Mb3dlckNhc2UoKXx8XCJ1Z1wiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMCwyKS50b0xvd2VyQ2FzZSgpfHxcInVyXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygwLDIpLnRvTG93ZXJDYXNlKCl8fFwieWlcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDAsMikudG9Mb3dlckNhc2UoKSkmJigyPT1nb29nLkxPQ0FMRS5sZW5ndGh8fFwiLVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMiwzKXx8XCJfXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygyLDMpKXx8Mzw9Z29vZy5MT0NBTEUubGVuZ3RoJiZcImNrYlwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMCwzKS50b0xvd2VyQ2FzZSgpJiYoMz09Z29vZy5MT0NBTEUubGVuZ3RofHxcIi1cIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDMsNCl8fFwiX1wiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw0KSl8fDc8PWdvb2cuTE9DQUxFLmxlbmd0aCYmKFwiLVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMiwzKXx8XCJfXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygyLDMpKSYmKFwiYWRsbVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw3KS50b0xvd2VyQ2FzZSgpfHxcImFyYWJcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDMsNykudG9Mb3dlckNhc2UoKXx8XCJoZWJyXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygzLDcpLnRvTG93ZXJDYXNlKCl8fFwibmtvb1wiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw3KS50b0xvd2VyQ2FzZSgpfHxcInJvaGdcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDMsNykudG9Mb3dlckNhc2UoKXx8XCJ0aGFhXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygzLDcpLnRvTG93ZXJDYXNlKCkpfHw4PD1nb29nLkxPQ0FMRS5sZW5ndGgmJihcIi1cIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDMsNCl8fFwiX1wiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw0KSkmJihcImFkbG1cIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDQsOCkudG9Mb3dlckNhc2UoKXx8XCJhcmFiXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZyg0LDgpLnRvTG93ZXJDYXNlKCl8fFwiaGViclwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoNCw4KS50b0xvd2VyQ2FzZSgpfHxcIm5rb29cIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDQsOCkudG9Mb3dlckNhc2UoKXx8XCJyb2hnXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZyg0LDgpLnRvTG93ZXJDYXNlKCl8fFwidGhhYVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoNCw4KS50b0xvd2VyQ2FzZSgpKSxnb29nLmkxOG4uYmlkaS5Gb3JtYXQ9e0xSRTpcIlxcdTIwMmFcIixSTEU6XCJcXHUyMDJiXCIsUERGOlwiXFx1MjAyY1wiLExSTTpcIlxcdTIwMGVcIixSTE06XCJcXHUyMDBmXCJ9LGdvb2cuaTE4bi5iaWRpLkRpcj17TFRSOjEsUlRMOi0xLE5FVVRSQUw6MH0sZ29vZy5pMThuLmJpZGkuUklHSFQ9XCJyaWdodFwiLGdvb2cuaTE4bi5iaWRpLkxFRlQ9XCJsZWZ0XCIsZ29vZy5pMThuLmJpZGkuSTE4Tl9SSUdIVD1nb29nLmkxOG4uYmlkaS5JU19SVEw/Z29vZy5pMThuLmJpZGkuTEVGVDpnb29nLmkxOG4uYmlkaS5SSUdIVCxnb29nLmkxOG4uYmlkaS5JMThOX0xFRlQ9Z29vZy5pMThuLmJpZGkuSVNfUlRMP2dvb2cuaTE4bi5iaWRpLlJJR0hUOmdvb2cuaTE4bi5iaWRpLkxFRlQsZ29vZy5pMThuLmJpZGkudG9EaXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZT8wPGU/Z29vZy5pMThuLmJpZGkuRGlyLkxUUjowPmU/Z29vZy5pMThuLmJpZGkuRGlyLlJUTDp0P251bGw6Z29vZy5pMThuLmJpZGkuRGlyLk5FVVRSQUw6bnVsbD09ZT9udWxsOmU/Z29vZy5pMThuLmJpZGkuRGlyLlJUTDpnb29nLmkxOG4uYmlkaS5EaXIuTFRSfSxnb29nLmkxOG4uYmlkaS5sdHJDaGFyc189XCJBLVphLXpcXHhjMC1cXHhkNlxceGQ4LVxceGY2XFx4ZjgtXFx1MDJiOFxcdTAzMDAtXFx1MDU5MFxcdTA5MDAtXFx1MWZmZlxcdTIwMGVcXHUyYzAwLVxcdWQ4MDFcXHVkODA0LVxcdWQ4MzlcXHVkODNjLVxcdWRiZmZcXHVmOTAwLVxcdWZiMWNcXHVmZTAwLVxcdWZlNmZcXHVmZWZkLVxcdWZmZmZcIixnb29nLmkxOG4uYmlkaS5ydGxDaGFyc189XCJcXHUwNTkxLVxcdTA2ZWZcXHUwNmZhLVxcdTA4ZmZcXHUyMDBmXFx1ZDgwMi1cXHVkODAzXFx1ZDgzYS1cXHVkODNiXFx1ZmIxZC1cXHVmZGZmXFx1ZmU3MC1cXHVmZWZjXCIsZ29vZy5pMThuLmJpZGkuaHRtbFNraXBSZWdfPS88W14+XSo+fCZbXjtdKzsvZyxnb29nLmkxOG4uYmlkaS5zdHJpcEh0bWxJZk5lZWRlZF89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoZ29vZy5pMThuLmJpZGkuaHRtbFNraXBSZWdfLFwiXCIpOmV9LGdvb2cuaTE4bi5iaWRpLnJ0bENoYXJSZWdfPW5ldyBSZWdFeHAoXCJbXCIrZ29vZy5pMThuLmJpZGkucnRsQ2hhcnNfK1wiXVwiKSxnb29nLmkxOG4uYmlkaS5sdHJDaGFyUmVnXz1uZXcgUmVnRXhwKFwiW1wiK2dvb2cuaTE4bi5iaWRpLmx0ckNoYXJzXytcIl1cIiksZ29vZy5pMThuLmJpZGkuaGFzQW55UnRsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLnJ0bENoYXJSZWdfLnRlc3QoZ29vZy5pMThuLmJpZGkuc3RyaXBIdG1sSWZOZWVkZWRfKGUsdCkpfSxnb29nLmkxOG4uYmlkaS5oYXNSdGxDaGFyPWdvb2cuaTE4bi5iaWRpLmhhc0FueVJ0bCxnb29nLmkxOG4uYmlkaS5oYXNBbnlMdHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5pMThuLmJpZGkubHRyQ2hhclJlZ18udGVzdChnb29nLmkxOG4uYmlkaS5zdHJpcEh0bWxJZk5lZWRlZF8oZSx0KSl9LGdvb2cuaTE4bi5iaWRpLmx0clJlXz1uZXcgUmVnRXhwKFwiXltcIitnb29nLmkxOG4uYmlkaS5sdHJDaGFyc18rXCJdXCIpLGdvb2cuaTE4bi5iaWRpLnJ0bFJlXz1uZXcgUmVnRXhwKFwiXltcIitnb29nLmkxOG4uYmlkaS5ydGxDaGFyc18rXCJdXCIpLGdvb2cuaTE4bi5iaWRpLmlzUnRsQ2hhcj1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pMThuLmJpZGkucnRsUmVfLnRlc3QoZSl9LGdvb2cuaTE4bi5iaWRpLmlzTHRyQ2hhcj1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pMThuLmJpZGkubHRyUmVfLnRlc3QoZSl9LGdvb2cuaTE4bi5iaWRpLmlzTmV1dHJhbENoYXI9ZnVuY3Rpb24oZSl7cmV0dXJuIWdvb2cuaTE4bi5iaWRpLmlzTHRyQ2hhcihlKSYmIWdvb2cuaTE4bi5iaWRpLmlzUnRsQ2hhcihlKX0sZ29vZy5pMThuLmJpZGkubHRyRGlyQ2hlY2tSZV89bmV3IFJlZ0V4cChcIl5bXlwiK2dvb2cuaTE4bi5iaWRpLnJ0bENoYXJzXytcIl0qW1wiK2dvb2cuaTE4bi5iaWRpLmx0ckNoYXJzXytcIl1cIiksZ29vZy5pMThuLmJpZGkucnRsRGlyQ2hlY2tSZV89bmV3IFJlZ0V4cChcIl5bXlwiK2dvb2cuaTE4bi5iaWRpLmx0ckNoYXJzXytcIl0qW1wiK2dvb2cuaTE4bi5iaWRpLnJ0bENoYXJzXytcIl1cIiksZ29vZy5pMThuLmJpZGkuc3RhcnRzV2l0aFJ0bD1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmkxOG4uYmlkaS5ydGxEaXJDaGVja1JlXy50ZXN0KGdvb2cuaTE4bi5iaWRpLnN0cmlwSHRtbElmTmVlZGVkXyhlLHQpKX0sZ29vZy5pMThuLmJpZGkuaXNSdGxUZXh0PWdvb2cuaTE4bi5iaWRpLnN0YXJ0c1dpdGhSdGwsZ29vZy5pMThuLmJpZGkuc3RhcnRzV2l0aEx0cj1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmkxOG4uYmlkaS5sdHJEaXJDaGVja1JlXy50ZXN0KGdvb2cuaTE4bi5iaWRpLnN0cmlwSHRtbElmTmVlZGVkXyhlLHQpKX0sZ29vZy5pMThuLmJpZGkuaXNMdHJUZXh0PWdvb2cuaTE4bi5iaWRpLnN0YXJ0c1dpdGhMdHIsZ29vZy5pMThuLmJpZGkuaXNSZXF1aXJlZEx0clJlXz0vXmh0dHA6XFwvXFwvLiovLGdvb2cuaTE4bi5iaWRpLmlzTmV1dHJhbFRleHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1nb29nLmkxOG4uYmlkaS5zdHJpcEh0bWxJZk5lZWRlZF8oZSx0KSxnb29nLmkxOG4uYmlkaS5pc1JlcXVpcmVkTHRyUmVfLnRlc3QoZSl8fCFnb29nLmkxOG4uYmlkaS5oYXNBbnlMdHIoZSkmJiFnb29nLmkxOG4uYmlkaS5oYXNBbnlSdGwoZSl9LGdvb2cuaTE4bi5iaWRpLmx0ckV4aXREaXJDaGVja1JlXz1uZXcgUmVnRXhwKFwiW1wiK2dvb2cuaTE4bi5iaWRpLmx0ckNoYXJzXytcIl1bXlwiK2dvb2cuaTE4bi5iaWRpLnJ0bENoYXJzXytcIl0qJFwiKSxnb29nLmkxOG4uYmlkaS5ydGxFeGl0RGlyQ2hlY2tSZV89bmV3IFJlZ0V4cChcIltcIitnb29nLmkxOG4uYmlkaS5ydGxDaGFyc18rXCJdW15cIitnb29nLmkxOG4uYmlkaS5sdHJDaGFyc18rXCJdKiRcIiksZ29vZy5pMThuLmJpZGkuZW5kc1dpdGhMdHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5pMThuLmJpZGkubHRyRXhpdERpckNoZWNrUmVfLnRlc3QoZ29vZy5pMThuLmJpZGkuc3RyaXBIdG1sSWZOZWVkZWRfKGUsdCkpfSxnb29nLmkxOG4uYmlkaS5pc0x0ckV4aXRUZXh0PWdvb2cuaTE4bi5iaWRpLmVuZHNXaXRoTHRyLGdvb2cuaTE4bi5iaWRpLmVuZHNXaXRoUnRsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLnJ0bEV4aXREaXJDaGVja1JlXy50ZXN0KGdvb2cuaTE4bi5iaWRpLnN0cmlwSHRtbElmTmVlZGVkXyhlLHQpKX0sZ29vZy5pMThuLmJpZGkuaXNSdGxFeGl0VGV4dD1nb29nLmkxOG4uYmlkaS5lbmRzV2l0aFJ0bCxnb29nLmkxOG4uYmlkaS5ydGxMb2NhbGVzUmVfPS9eKGFyfGNrYnxkdnxoZXxpd3xmYXxucW98cHN8c2R8dWd8dXJ8eWl8LipbLV9dKEFkbG18QXJhYnxIZWJyfE5rb298Um9oZ3xUaGFhKSkoPyEuKlstX10oTGF0bnxDeXJsKSgkfC18XykpKCR8LXxfKS9pLGdvb2cuaTE4bi5iaWRpLmlzUnRsTGFuZ3VhZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLnJ0bExvY2FsZXNSZV8udGVzdChlKX0sZ29vZy5pMThuLmJpZGkuYnJhY2tldEd1YXJkVGV4dFJlXz0vKFxcKC4qP1xcKSspfChcXFsuKj9cXF0rKXwoXFx7Lio/XFx9Kyl8KDwuKj8+KykvZyxnb29nLmkxOG4uYmlkaS5ndWFyZEJyYWNrZXRJblRleHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD0odm9pZCAwPT09dD9nb29nLmkxOG4uYmlkaS5oYXNBbnlSdGwoZSk6dCk/Z29vZy5pMThuLmJpZGkuRm9ybWF0LlJMTTpnb29nLmkxOG4uYmlkaS5Gb3JtYXQuTFJNLGUucmVwbGFjZShnb29nLmkxOG4uYmlkaS5icmFja2V0R3VhcmRUZXh0UmVfLHQrXCIkJlwiK3QpfSxnb29nLmkxOG4uYmlkaS5lbmZvcmNlUnRsSW5IdG1sPWZ1bmN0aW9uKGUpe3JldHVyblwiPFwiPT1lLmNoYXJBdCgwKT9lLnJlcGxhY2UoLzxcXHcrLyxcIiQmIGRpcj1ydGxcIik6XCJcXG48c3BhbiBkaXI9cnRsPlwiK2UrXCI8L3NwYW4+XCJ9LGdvb2cuaTE4bi5iaWRpLmVuZm9yY2VSdGxJblRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLkZvcm1hdC5STEUrZStnb29nLmkxOG4uYmlkaS5Gb3JtYXQuUERGfSxnb29nLmkxOG4uYmlkaS5lbmZvcmNlTHRySW5IdG1sPWZ1bmN0aW9uKGUpe3JldHVyblwiPFwiPT1lLmNoYXJBdCgwKT9lLnJlcGxhY2UoLzxcXHcrLyxcIiQmIGRpcj1sdHJcIik6XCJcXG48c3BhbiBkaXI9bHRyPlwiK2UrXCI8L3NwYW4+XCJ9LGdvb2cuaTE4bi5iaWRpLmVuZm9yY2VMdHJJblRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLkZvcm1hdC5MUkUrZStnb29nLmkxOG4uYmlkaS5Gb3JtYXQuUERGfSxnb29nLmkxOG4uYmlkaS5kaW1lbnNpb25zUmVfPS86XFxzKihbLlxcZF1bLlxcd10qKVxccysoWy5cXGRdWy5cXHddKilcXHMrKFsuXFxkXVsuXFx3XSopXFxzKyhbLlxcZF1bLlxcd10qKS9nLGdvb2cuaTE4bi5iaWRpLmxlZnRSZV89L2xlZnQvZ2ksZ29vZy5pMThuLmJpZGkucmlnaHRSZV89L3JpZ2h0L2dpLGdvb2cuaTE4bi5iaWRpLnRlbXBSZV89LyUlJSUvZyxnb29nLmkxOG4uYmlkaS5taXJyb3JDU1M9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShnb29nLmkxOG4uYmlkaS5kaW1lbnNpb25zUmVfLFwiOiQxICQ0ICQzICQyXCIpLnJlcGxhY2UoZ29vZy5pMThuLmJpZGkubGVmdFJlXyxcIiUlJSVcIikucmVwbGFjZShnb29nLmkxOG4uYmlkaS5yaWdodFJlXyxnb29nLmkxOG4uYmlkaS5MRUZUKS5yZXBsYWNlKGdvb2cuaTE4bi5iaWRpLnRlbXBSZV8sZ29vZy5pMThuLmJpZGkuUklHSFQpfSxnb29nLmkxOG4uYmlkaS5kb3VibGVRdW90ZVN1YnN0aXR1dGVSZV89LyhbXFx1MDU5MS1cXHUwNWYyXSlcIi9nLGdvb2cuaTE4bi5iaWRpLnNpbmdsZVF1b3RlU3Vic3RpdHV0ZVJlXz0vKFtcXHUwNTkxLVxcdTA1ZjJdKScvZyxnb29nLmkxOG4uYmlkaS5ub3JtYWxpemVIZWJyZXdRdW90ZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKGdvb2cuaTE4bi5iaWRpLmRvdWJsZVF1b3RlU3Vic3RpdHV0ZVJlXyxcIiQxXFx1MDVmNFwiKS5yZXBsYWNlKGdvb2cuaTE4bi5iaWRpLnNpbmdsZVF1b3RlU3Vic3RpdHV0ZVJlXyxcIiQxXFx1MDVmM1wiKX0sZ29vZy5pMThuLmJpZGkud29yZFNlcGFyYXRvclJlXz0vXFxzKy8sZ29vZy5pMThuLmJpZGkuaGFzTnVtZXJhbHNSZV89L1tcXGRcXHUwNmYwLVxcdTA2ZjldLyxnb29nLmkxOG4uYmlkaS5ydGxEZXRlY3Rpb25UaHJlc2hvbGRfPS40LGdvb2cuaTE4bi5iaWRpLmVzdGltYXRlRGlyZWN0aW9uPWZ1bmN0aW9uKGUsdCl7dmFyIG49MCxyPTAsaT0hMTtmb3IoZT1nb29nLmkxOG4uYmlkaS5zdHJpcEh0bWxJZk5lZWRlZF8oZSx0KS5zcGxpdChnb29nLmkxOG4uYmlkaS53b3JkU2VwYXJhdG9yUmVfKSx0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBvPWVbdF07Z29vZy5pMThuLmJpZGkuc3RhcnRzV2l0aFJ0bChvKT8obisrLHIrKyk6Z29vZy5pMThuLmJpZGkuaXNSZXF1aXJlZEx0clJlXy50ZXN0KG8pP2k9ITA6Z29vZy5pMThuLmJpZGkuaGFzQW55THRyKG8pP3IrKzpnb29nLmkxOG4uYmlkaS5oYXNOdW1lcmFsc1JlXy50ZXN0KG8pJiYoaT0hMCl9cmV0dXJuIDA9PXI/aT9nb29nLmkxOG4uYmlkaS5EaXIuTFRSOmdvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMOm4vcj5nb29nLmkxOG4uYmlkaS5ydGxEZXRlY3Rpb25UaHJlc2hvbGRfP2dvb2cuaTE4bi5iaWRpLkRpci5SVEw6Z29vZy5pMThuLmJpZGkuRGlyLkxUUn0sZ29vZy5pMThuLmJpZGkuZGV0ZWN0UnRsRGlyZWN0aW9uYWxpdHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5pMThuLmJpZGkuZXN0aW1hdGVEaXJlY3Rpb24oZSx0KT09Z29vZy5pMThuLmJpZGkuRGlyLlJUTH0sZ29vZy5pMThuLmJpZGkuc2V0RWxlbWVudERpckFuZEFsaWduPWZ1bmN0aW9uKGUsdCl7ZSYmKHQ9Z29vZy5pMThuLmJpZGkudG9EaXIodCkpJiYoZS5zdHlsZS50ZXh0QWxpZ249dD09Z29vZy5pMThuLmJpZGkuRGlyLlJUTD9nb29nLmkxOG4uYmlkaS5SSUdIVDpnb29nLmkxOG4uYmlkaS5MRUZULGUuZGlyPXQ9PWdvb2cuaTE4bi5iaWRpLkRpci5SVEw/XCJydGxcIjpcImx0clwiKX0sZ29vZy5pMThuLmJpZGkuc2V0RWxlbWVudERpckJ5VGV4dERpcmVjdGlvbmFsaXR5PWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGdvb2cuaTE4bi5iaWRpLmVzdGltYXRlRGlyZWN0aW9uKHQpKXtjYXNlIGdvb2cuaTE4bi5iaWRpLkRpci5MVFI6ZS5kaXI9XCJsdHJcIjticmVhaztjYXNlIGdvb2cuaTE4bi5iaWRpLkRpci5SVEw6ZS5kaXI9XCJydGxcIjticmVhaztkZWZhdWx0OmUucmVtb3ZlQXR0cmlidXRlKFwiZGlyXCIpfX0sZ29vZy5pMThuLmJpZGkuRGlyZWN0aW9uYWxTdHJpbmc9ZnVuY3Rpb24oKXt9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmw9ZnVuY3Rpb24oZSx0KXt0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVRydXN0ZWRSZXNvdXJjZVVybFdyYXBwZWRWYWx1ZV89ZT09PWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuQ09OU1RSVUNUT1JfVE9LRU5fUFJJVkFURV8mJnR8fFwiXCIsdGhpcy5UUlVTVEVEX1JFU09VUkNFX1VSTF9UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV99LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwucHJvdG90eXBlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc9ITAsZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5wcm90b3R5cGUuZ2V0VHlwZWRTdHJpbmdWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVRydXN0ZWRSZXNvdXJjZVVybFdyYXBwZWRWYWx1ZV8udG9TdHJpbmcoKX0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5wcm90b3R5cGUuaW1wbGVtZW50c0dvb2dJMThuQmlkaURpcmVjdGlvbmFsU3RyaW5nPSEwLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwucHJvdG90eXBlLmdldERpcmVjdGlvbj1mdW5jdGlvbigpe3JldHVybiBnb29nLmkxOG4uYmlkaS5EaXIuTFRSfSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnByb3RvdHlwZS5jbG9uZVdpdGhQYXJhbXM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcCh0aGlzKSxyPShuPWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuVVJMX1BBUkFNX1BBUlNFUl8uZXhlYyhuKSlbM118fFwiXCI7cmV0dXJuIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuY3JlYXRlVHJ1c3RlZFJlc291cmNlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoblsxXStnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnN0cmluZ2lmeVBhcmFtc18oXCI/XCIsblsyXXx8XCJcIixlKStnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnN0cmluZ2lmeVBhcmFtc18oXCIjXCIscix0KSl9LGdvb2cuREVCVUcmJihnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiVHJ1c3RlZFJlc291cmNlVXJse1wiK3RoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlVHJ1c3RlZFJlc291cmNlVXJsV3JhcHBlZFZhbHVlXytcIn1cIn0pLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcFRydXN0ZWRTY3JpcHRVUkwoZSkudG9TdHJpbmcoKX0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXBUcnVzdGVkU2NyaXB0VVJMPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybCYmZS5jb25zdHJ1Y3Rvcj09PWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwmJmUuVFJVU1RFRF9SRVNPVVJDRV9VUkxfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV8/ZS5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWVfOihnb29nLmFzc2VydHMuZmFpbChcImV4cGVjdGVkIG9iamVjdCBvZiB0eXBlIFRydXN0ZWRSZXNvdXJjZVVybCwgZ290ICdcIitlK1wiJyBvZiB0eXBlIFwiK2dvb2cudHlwZU9mKGUpKSxcInR5cGVfZXJyb3I6VHJ1c3RlZFJlc291cmNlVXJsXCIpfSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLmZvcm1hdD1mdW5jdGlvbihlLHQpe3ZhciBuPWdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKTtpZighZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5CQVNFX1VSTF8udGVzdChuKSl0aHJvdyBFcnJvcihcIkludmFsaWQgVHJ1c3RlZFJlc291cmNlVXJsIGZvcm1hdDogXCIrbik7cmV0dXJuIGU9bi5yZXBsYWNlKGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuRk9STUFUX01BUktFUl8sKGZ1bmN0aW9uKGUscil7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKXRocm93IEVycm9yKCdGb3VuZCBtYXJrZXIsIFwiJytyKydcIiwgaW4gZm9ybWF0IHN0cmluZywgXCInK24rJ1wiLCBidXQgbm8gdmFsaWQgbGFiZWwgbWFwcGluZyBmb3VuZCBpbiBhcmdzOiAnK0pTT04uc3RyaW5naWZ5KHQpKTtyZXR1cm4oZT10W3JdKWluc3RhbmNlb2YgZ29vZy5zdHJpbmcuQ29uc3Q/Z29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpOmVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZSkpfSkpLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuY3JlYXRlVHJ1c3RlZFJlc291cmNlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZSl9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuRk9STUFUX01BUktFUl89LyV7KFxcdyspfS9nLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuQkFTRV9VUkxfPS9eKChodHRwczopP1xcL1xcL1swLTlhLXouOltcXF0tXStcXC98XFwvW14vXFxcXF18W146L1xcXFwlXStcXC98W146L1xcXFwlXSpbPyNdfGFib3V0OmJsYW5rIykvaSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLlVSTF9QQVJBTV9QQVJTRVJfPS9eKFtePyNdKikoXFw/W14jXSopPygjW1xcc1xcU10qKT8vLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuZm9ybWF0V2l0aFBhcmFtcz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5mb3JtYXQoZSx0KS5jbG9uZVdpdGhQYXJhbXMobixyKX0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5mcm9tQ29uc3RhbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuY3JlYXRlVHJ1c3RlZFJlc291cmNlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpKX0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5mcm9tQ29uc3RhbnRzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1cIlwiLG49MDtuPGUubGVuZ3RoO24rKyl0Kz1nb29nLnN0cmluZy5Db25zdC51bndyYXAoZVtuXSk7cmV0dXJuIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuY3JlYXRlVHJ1c3RlZFJlc291cmNlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCl9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuZnJvbVNhZmVTY3JpcHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9Z29vZy5mcy5ibG9iLmdldEJsb2JXaXRoUHJvcGVydGllcyhbZ29vZy5odG1sLlNhZmVTY3JpcHQudW53cmFwKGUpXSxcInRleHQvamF2YXNjcmlwdFwiKSxlPWdvb2cuZnMudXJsLmNyZWF0ZU9iamVjdFVybChlKSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLmNyZWF0ZVRydXN0ZWRSZXNvdXJjZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpfSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz17fSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLmNyZWF0ZVRydXN0ZWRSZXNvdXJjZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUpe3JldHVybiBlPWdvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZP2dvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZLmNyZWF0ZVNjcmlwdFVSTChlKTplLG5ldyBnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsKGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuQ09OU1RSVUNUT1JfVE9LRU5fUFJJVkFURV8sZSl9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuc3RyaW5naWZ5UGFyYW1zXz1mdW5jdGlvbihlLHQsbil7aWYobnVsbD09bilyZXR1cm4gdDtpZihcInN0cmluZ1wiPT09dHlwZW9mIG4pcmV0dXJuIG4/ZStlbmNvZGVVUklDb21wb25lbnQobik6XCJcIjtmb3IodmFyIHIgaW4gbil7dmFyIGk9bltyXTtpPUFycmF5LmlzQXJyYXkoaSk/aTpbaV07Zm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBhPWlbb107bnVsbCE9YSYmKHR8fCh0PWUpLHQrPSh0Lmxlbmd0aD5lLmxlbmd0aD9cIiZcIjpcIlwiKStlbmNvZGVVUklDb21wb25lbnQocikrXCI9XCIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhhKSkpfX1yZXR1cm4gdH0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5DT05TVFJVQ1RPUl9UT0tFTl9QUklWQVRFXz17fSxnb29nLnN0cmluZy5pbnRlcm5hbD17fSxnb29nLnN0cmluZy5pbnRlcm5hbC5zdGFydHNXaXRoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PWUubGFzdEluZGV4T2YodCwwKX0sZ29vZy5zdHJpbmcuaW50ZXJuYWwuZW5kc1dpdGg9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aC10Lmxlbmd0aDtyZXR1cm4gMDw9biYmZS5pbmRleE9mKHQsbik9PW59LGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZVN0YXJ0c1dpdGg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMD09Z29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlQ29tcGFyZSh0LGUuc3Vic3RyKDAsdC5sZW5ndGgpKX0sZ29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlRW5kc1dpdGg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMD09Z29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlQ29tcGFyZSh0LGUuc3Vic3RyKGUubGVuZ3RoLXQubGVuZ3RoLHQubGVuZ3RoKSl9LGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUVxdWFscz1mdW5jdGlvbihlLHQpe3JldHVybiBlLnRvTG93ZXJDYXNlKCk9PXQudG9Mb3dlckNhc2UoKX0sZ29vZy5zdHJpbmcuaW50ZXJuYWwuaXNFbXB0eU9yV2hpdGVzcGFjZT1mdW5jdGlvbihlKXtyZXR1cm4vXltcXHNcXHhhMF0qJC8udGVzdChlKX0sZ29vZy5zdHJpbmcuaW50ZXJuYWwudHJpbT1nb29nLlRSVVNURURfU0lURSYmU3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0oKX06ZnVuY3Rpb24oZSl7cmV0dXJuL15bXFxzXFx4YTBdKihbXFxzXFxTXSo/KVtcXHNcXHhhMF0qJC8uZXhlYyhlKVsxXX0sZ29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlQ29tcGFyZT1mdW5jdGlvbihlLHQpe3JldHVybihlPVN0cmluZyhlKS50b0xvd2VyQ2FzZSgpKTwodD1TdHJpbmcodCkudG9Mb3dlckNhc2UoKSk/LTE6ZT09dD8wOjF9LGdvb2cuc3RyaW5nLmludGVybmFsLm5ld0xpbmVUb0JyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucmVwbGFjZSgvKFxcclxcbnxcXHJ8XFxuKS9nLHQ/XCI8YnIgLz5cIjpcIjxicj5cIil9LGdvb2cuc3RyaW5nLmludGVybmFsLmh0bWxFc2NhcGU9ZnVuY3Rpb24oZSx0KXtpZih0KWU9ZS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLkFNUF9SRV8sXCImYW1wO1wiKS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLkxUX1JFXyxcIiZsdDtcIikucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5HVF9SRV8sXCImZ3Q7XCIpLnJlcGxhY2UoZ29vZy5zdHJpbmcuaW50ZXJuYWwuUVVPVF9SRV8sXCImcXVvdDtcIikucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5TSU5HTEVfUVVPVEVfUkVfLFwiJiMzOTtcIikucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5OVUxMX1JFXyxcIiYjMDtcIik7ZWxzZXtpZighZ29vZy5zdHJpbmcuaW50ZXJuYWwuQUxMX1JFXy50ZXN0KGUpKXJldHVybiBlOy0xIT1lLmluZGV4T2YoXCImXCIpJiYoZT1lLnJlcGxhY2UoZ29vZy5zdHJpbmcuaW50ZXJuYWwuQU1QX1JFXyxcIiZhbXA7XCIpKSwtMSE9ZS5pbmRleE9mKFwiPFwiKSYmKGU9ZS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLkxUX1JFXyxcIiZsdDtcIikpLC0xIT1lLmluZGV4T2YoXCI+XCIpJiYoZT1lLnJlcGxhY2UoZ29vZy5zdHJpbmcuaW50ZXJuYWwuR1RfUkVfLFwiJmd0O1wiKSksLTEhPWUuaW5kZXhPZignXCInKSYmKGU9ZS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLlFVT1RfUkVfLFwiJnF1b3Q7XCIpKSwtMSE9ZS5pbmRleE9mKFwiJ1wiKSYmKGU9ZS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLlNJTkdMRV9RVU9URV9SRV8sXCImIzM5O1wiKSksLTEhPWUuaW5kZXhPZihcIlxcMFwiKSYmKGU9ZS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLk5VTExfUkVfLFwiJiMwO1wiKSl9cmV0dXJuIGV9LGdvb2cuc3RyaW5nLmludGVybmFsLkFNUF9SRV89LyYvZyxnb29nLnN0cmluZy5pbnRlcm5hbC5MVF9SRV89LzwvZyxnb29nLnN0cmluZy5pbnRlcm5hbC5HVF9SRV89Lz4vZyxnb29nLnN0cmluZy5pbnRlcm5hbC5RVU9UX1JFXz0vXCIvZyxnb29nLnN0cmluZy5pbnRlcm5hbC5TSU5HTEVfUVVPVEVfUkVfPS8nL2csZ29vZy5zdHJpbmcuaW50ZXJuYWwuTlVMTF9SRV89L1xceDAwL2csZ29vZy5zdHJpbmcuaW50ZXJuYWwuQUxMX1JFXz0vW1xceDAwJjw+XCInXS8sZ29vZy5zdHJpbmcuaW50ZXJuYWwud2hpdGVzcGFjZUVzY2FwZT1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5uZXdMaW5lVG9CcihlLnJlcGxhY2UoLyAgL2csXCIgJiMxNjA7XCIpLHQpfSxnb29nLnN0cmluZy5pbnRlcm5hbC5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybi0xIT1lLmluZGV4T2YodCl9LGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuc3RyaW5nLmludGVybmFsLmNvbnRhaW5zKGUudG9Mb3dlckNhc2UoKSx0LnRvTG93ZXJDYXNlKCkpfSxnb29nLnN0cmluZy5pbnRlcm5hbC5jb21wYXJlVmVyc2lvbnM9ZnVuY3Rpb24oZSx0KXt2YXIgbj0wO2U9Z29vZy5zdHJpbmcuaW50ZXJuYWwudHJpbShTdHJpbmcoZSkpLnNwbGl0KFwiLlwiKSx0PWdvb2cuc3RyaW5nLmludGVybmFsLnRyaW0oU3RyaW5nKHQpKS5zcGxpdChcIi5cIik7Zm9yKHZhciByPU1hdGgubWF4KGUubGVuZ3RoLHQubGVuZ3RoKSxpPTA7MD09biYmaTxyO2krKyl7dmFyIG89ZVtpXXx8XCJcIixhPXRbaV18fFwiXCI7ZG97aWYobz0vKFxcZCopKFxcRCopKC4qKS8uZXhlYyhvKXx8W1wiXCIsXCJcIixcIlwiLFwiXCJdLGE9LyhcXGQqKShcXEQqKSguKikvLmV4ZWMoYSl8fFtcIlwiLFwiXCIsXCJcIixcIlwiXSwwPT1vWzBdLmxlbmd0aCYmMD09YVswXS5sZW5ndGgpYnJlYWs7bj0wPT1vWzFdLmxlbmd0aD8wOnBhcnNlSW50KG9bMV0sMTApO3ZhciBzPTA9PWFbMV0ubGVuZ3RoPzA6cGFyc2VJbnQoYVsxXSwxMCk7bj1nb29nLnN0cmluZy5pbnRlcm5hbC5jb21wYXJlRWxlbWVudHNfKG4scyl8fGdvb2cuc3RyaW5nLmludGVybmFsLmNvbXBhcmVFbGVtZW50c18oMD09b1syXS5sZW5ndGgsMD09YVsyXS5sZW5ndGgpfHxnb29nLnN0cmluZy5pbnRlcm5hbC5jb21wYXJlRWxlbWVudHNfKG9bMl0sYVsyXSksbz1vWzNdLGE9YVszXX13aGlsZSgwPT1uKX1yZXR1cm4gbn0sZ29vZy5zdHJpbmcuaW50ZXJuYWwuY29tcGFyZUVsZW1lbnRzXz1mdW5jdGlvbihlLHQpe3JldHVybiBlPHQ/LTE6ZT50PzE6MH0sZ29vZy5odG1sLlNhZmVVcmw9ZnVuY3Rpb24oZSx0KXt0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVVcmxXcmFwcGVkVmFsdWVfPWU9PT1nb29nLmh0bWwuU2FmZVVybC5DT05TVFJVQ1RPUl9UT0tFTl9QUklWQVRFXyYmdHx8XCJcIix0aGlzLlNBRkVfVVJMX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz1nb29nLmh0bWwuU2FmZVVybC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV99LGdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkc9XCJhYm91dDppbnZhbGlkI3pDbG9zdXJlelwiLGdvb2cuaHRtbC5TYWZlVXJsLnByb3RvdHlwZS5pbXBsZW1lbnRzR29vZ1N0cmluZ1R5cGVkU3RyaW5nPSEwLGdvb2cuaHRtbC5TYWZlVXJsLnByb3RvdHlwZS5nZXRUeXBlZFN0cmluZ1ZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVVybFdyYXBwZWRWYWx1ZV8udG9TdHJpbmcoKX0sZ29vZy5odG1sLlNhZmVVcmwucHJvdG90eXBlLmltcGxlbWVudHNHb29nSTE4bkJpZGlEaXJlY3Rpb25hbFN0cmluZz0hMCxnb29nLmh0bWwuU2FmZVVybC5wcm90b3R5cGUuZ2V0RGlyZWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLkRpci5MVFJ9LGdvb2cuREVCVUcmJihnb29nLmh0bWwuU2FmZVVybC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIlNhZmVVcmx7XCIrdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlVXJsV3JhcHBlZFZhbHVlXytcIn1cIn0pLGdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlVXJsJiZlLmNvbnN0cnVjdG9yPT09Z29vZy5odG1sLlNhZmVVcmwmJmUuU0FGRV9VUkxfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5odG1sLlNhZmVVcmwuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfP2UucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVVybFdyYXBwZWRWYWx1ZV86KGdvb2cuYXNzZXJ0cy5mYWlsKFwiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgU2FmZVVybCwgZ290ICdcIitlK1wiJyBvZiB0eXBlIFwiK2dvb2cudHlwZU9mKGUpKSxcInR5cGVfZXJyb3I6U2FmZVVybFwiKX0sZ29vZy5odG1sLlNhZmVVcmwuZnJvbUNvbnN0YW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpKX0sZ29vZy5odG1sLlNBRkVfTUlNRV9UWVBFX1BBVFRFUk5fPS9eKD86YXVkaW9cXC8oPzozZ3BwMnwzZ3BwfGFhY3xMMTZ8bWlkaXxtcDN8bXA0fG1wZWd8b2dhfG9nZ3xvcHVzfHgtbTRhfHgtbWF0cm9za2F8eC13YXZ8d2F2fHdlYm0pfGltYWdlXFwvKD86Ym1wfGdpZnxqcGVnfGpwZ3xwbmd8dGlmZnx3ZWJwfHgtaWNvbil8dGV4dFxcL2Nzdnx2aWRlb1xcLyg/Om1wZWd8bXA0fG9nZ3x3ZWJtfHF1aWNrdGltZXx4LW1hdHJvc2thKSkoPzo7XFx3Kz0oPzpcXHcrfFwiW1xcdzssPSBdK1wiKSkqJC9pLGdvb2cuaHRtbC5TYWZlVXJsLmlzU2FmZU1pbWVUeXBlPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmh0bWwuU0FGRV9NSU1FX1RZUEVfUEFUVEVSTl8udGVzdChlKX0sZ29vZy5odG1sLlNhZmVVcmwuZnJvbUJsb2I9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9Z29vZy5odG1sLlNhZmVVcmwuaXNTYWZlTWltZVR5cGUoZS50eXBlKT9nb29nLmZzLnVybC5jcmVhdGVPYmplY3RVcmwoZSk6Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORyxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZSl9LGdvb2cuaHRtbC5TYWZlVXJsLmZyb21NZWRpYVNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChcIk1lZGlhU291cmNlXCJpbiBnb29nLmdsb2JhbCxcIk5vIHN1cHBvcnQgZm9yIE1lZGlhU291cmNlXCIpLGU9ZSBpbnN0YW5jZW9mIE1lZGlhU291cmNlP2dvb2cuZnMudXJsLmNyZWF0ZU9iamVjdFVybChlKTpnb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLkRBVEFfVVJMX1BBVFRFUk5fPS9eZGF0YTooLiopO2Jhc2U2NCxbYS16MC05K1xcL10rPSokL2ksZ29vZy5odG1sLlNhZmVVcmwuZnJvbURhdGFVcmw9ZnVuY3Rpb24oZSl7dmFyIHQ9KGU9ZS5yZXBsYWNlKC8oJTBBfCUwRCkvZyxcIlwiKSkubWF0Y2goZ29vZy5odG1sLkRBVEFfVVJMX1BBVFRFUk5fKTtyZXR1cm4gdD10JiZnb29nLmh0bWwuU2FmZVVybC5pc1NhZmVNaW1lVHlwZSh0WzFdKSxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodD9lOmdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpfSxnb29nLmh0bWwuU2FmZVVybC5mcm9tVGVsVXJsPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVTdGFydHNXaXRoKGUsXCJ0ZWw6XCIpfHwoZT1nb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HKSxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZSl9LGdvb2cuaHRtbC5TSVBfVVJMX1BBVFRFUk5fPS9ec2lwW3NdPzpbK2EtejAtOV8uISQlJicqXFwvPV5ge3x9fi1dK0AoW2EtejAtOS1dK1xcLikrW2EtejAtOV17Miw2M30kL2ksZ29vZy5odG1sLlNhZmVVcmwuZnJvbVNpcFVybD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNJUF9VUkxfUEFUVEVSTl8udGVzdChkZWNvZGVVUklDb21wb25lbnQoZSkpfHwoZT1nb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HKSxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZSl9LGdvb2cuaHRtbC5TYWZlVXJsLmZyb21GYWNlYm9va01lc3NlbmdlclVybD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlU3RhcnRzV2l0aChlLFwiZmItbWVzc2VuZ2VyOi8vc2hhcmVcIil8fChlPWdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlNhZmVVcmwuZnJvbVdoYXRzQXBwVXJsPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVTdGFydHNXaXRoKGUsXCJ3aGF0c2FwcDovL3NlbmRcIil8fChlPWdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlNhZmVVcmwuZnJvbVNtc1VybD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlU3RhcnRzV2l0aChlLFwic21zOlwiKSYmZ29vZy5odG1sLlNhZmVVcmwuaXNTbXNVcmxCb2R5VmFsaWRfKGUpfHwoZT1nb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HKSxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZSl9LGdvb2cuaHRtbC5TYWZlVXJsLmlzU21zVXJsQm9keVZhbGlkXz1mdW5jdGlvbihlKXt2YXIgdD1lLmluZGV4T2YoXCIjXCIpO2lmKDA8dCYmKGU9ZS5zdWJzdHJpbmcoMCx0KSksISh0PWUubWF0Y2goL1s/Jl1ib2R5PS9naSkpKXJldHVybiEwO2lmKDE8dC5sZW5ndGgpcmV0dXJuITE7aWYoIShlPWUubWF0Y2goL1s/Jl1ib2R5PShbXiZdKikvKVsxXSkpcmV0dXJuITA7dHJ5e2RlY29kZVVSSUNvbXBvbmVudChlKX1jYXRjaChuKXtyZXR1cm4hMX1yZXR1cm4vXig/OlthLXowLTlcXC1fLn5dfCVbMC05YS1mXXsyfSkrJC9pLnRlc3QoZSl9LGdvb2cuaHRtbC5TYWZlVXJsLmZyb21Tc2hVcmw9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZVN0YXJ0c1dpdGgoZSxcInNzaDovL1wiKXx8KGU9Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORyksZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpfSxnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUNocm9tZUV4dGVuc2lvblVybD1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUV4dGVuc2lvblVybF8oL15jaHJvbWUtZXh0ZW5zaW9uOlxcL1xcLyhbXlxcL10rKVxcLy8sZSx0KX0sZ29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVGaXJlZm94RXh0ZW5zaW9uVXJsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplRXh0ZW5zaW9uVXJsXygvXm1vei1leHRlbnNpb246XFwvXFwvKFteXFwvXSspXFwvLyxlLHQpfSxnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUVkZ2VFeHRlbnNpb25Vcmw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVFeHRlbnNpb25VcmxfKC9ebXMtYnJvd3Nlci1leHRlbnNpb246XFwvXFwvKFteXFwvXSspXFwvLyxlLHQpfSxnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUV4dGVuc2lvblVybF89ZnVuY3Rpb24oZSx0LG4pe3JldHVybihlPWUuZXhlYyh0KSk/KGU9ZVsxXSwtMT09KG4gaW5zdGFuY2VvZiBnb29nLnN0cmluZy5Db25zdD9bZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKG4pXTpuLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKX0pKSkuaW5kZXhPZihlKSYmKHQ9Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORykpOnQ9Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORyxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCl9LGdvb2cuaHRtbC5TYWZlVXJsLmZyb21UcnVzdGVkUmVzb3VyY2VVcmw9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcChlKSl9LGdvb2cuaHRtbC5TQUZFX1VSTF9QQVRURVJOXz0vXig/Oig/Omh0dHBzP3xtYWlsdG98ZnRwKTp8W146Lz8jXSooPzpbLz8jXXwkKSkvaSxnb29nLmh0bWwuU2FmZVVybC5TQUZFX1VSTF9QQVRURVJOPWdvb2cuaHRtbC5TQUZFX1VSTF9QQVRURVJOXyxnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlVXJsP2U6KGU9XCJvYmplY3RcIj09dHlwZW9mIGUmJmUuaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZz9lLmdldFR5cGVkU3RyaW5nVmFsdWUoKTpTdHJpbmcoZSksZ29vZy5odG1sLlNBRkVfVVJMX1BBVFRFUk5fLnRlc3QoZSl8fChlPWdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKSl9LGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD9lOihlPVwib2JqZWN0XCI9PXR5cGVvZiBlJiZlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc/ZS5nZXRUeXBlZFN0cmluZ1ZhbHVlKCk6U3RyaW5nKGUpLHQmJi9eZGF0YTovaS50ZXN0KGUpJiYodD1nb29nLmh0bWwuU2FmZVVybC5mcm9tRGF0YVVybChlKSkuZ2V0VHlwZWRTdHJpbmdWYWx1ZSgpPT1lP3Q6KGdvb2cuYXNzZXJ0cy5hc3NlcnQoZ29vZy5odG1sLlNBRkVfVVJMX1BBVFRFUk5fLnRlc3QoZSksXCIlcyBkb2VzIG5vdCBtYXRjaCB0aGUgc2FmZSBVUkwgcGF0dGVyblwiLGUpfHwoZT1nb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HKSxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZSkpKX0sZ29vZy5odG1sLlNhZmVVcmwuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPXt9LGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGdvb2cuaHRtbC5TYWZlVXJsKGdvb2cuaHRtbC5TYWZlVXJsLkNPTlNUUlVDVE9SX1RPS0VOX1BSSVZBVEVfLGUpfSxnb29nLmh0bWwuU2FmZVVybC5BQk9VVF9CTEFOSz1nb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoXCJhYm91dDpibGFua1wiKSxnb29nLmh0bWwuU2FmZVVybC5DT05TVFJVQ1RPUl9UT0tFTl9QUklWQVRFXz17fSxnb29nLmh0bWwuU2FmZVN0eWxlPWZ1bmN0aW9uKCl7dGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVfPVwiXCIsdGhpcy5TQUZFX1NUWUxFX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz1nb29nLmh0bWwuU2FmZVN0eWxlLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFX30sZ29vZy5odG1sLlNhZmVTdHlsZS5wcm90b3R5cGUuaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZz0hMCxnb29nLmh0bWwuU2FmZVN0eWxlLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz17fSxnb29nLmh0bWwuU2FmZVN0eWxlLmZyb21Db25zdGFudD1mdW5jdGlvbihlKXtyZXR1cm4gMD09PShlPWdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSkubGVuZ3RoP2dvb2cuaHRtbC5TYWZlU3R5bGUuRU1QVFk6KGdvb2cuYXNzZXJ0cy5hc3NlcnQoZ29vZy5zdHJpbmcuaW50ZXJuYWwuZW5kc1dpdGgoZSxcIjtcIiksXCJMYXN0IGNoYXJhY3RlciBvZiBzdHlsZSBzdHJpbmcgaXMgbm90ICc7JzogXCIrZSksZ29vZy5hc3NlcnRzLmFzc2VydChnb29nLnN0cmluZy5pbnRlcm5hbC5jb250YWlucyhlLFwiOlwiKSxcIlN0eWxlIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lICc6JywgdG8gc3BlY2lmeSBhIFxcXCJuYW1lOiB2YWx1ZVxcXCIgcGFpcjogXCIrZSksZ29vZy5odG1sLlNhZmVTdHlsZS5jcmVhdGVTYWZlU3R5bGVTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKSl9LGdvb2cuaHRtbC5TYWZlU3R5bGUucHJvdG90eXBlLmdldFR5cGVkU3RyaW5nVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVffSxnb29nLkRFQlVHJiYoZ29vZy5odG1sLlNhZmVTdHlsZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIlNhZmVTdHlsZXtcIit0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTdHlsZVdyYXBwZWRWYWx1ZV8rXCJ9XCJ9KSxnb29nLmh0bWwuU2FmZVN0eWxlLnVud3JhcD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlU3R5bGUmJmUuY29uc3RydWN0b3I9PT1nb29nLmh0bWwuU2FmZVN0eWxlJiZlLlNBRkVfU1RZTEVfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5odG1sLlNhZmVTdHlsZS5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV8/ZS5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVfOihnb29nLmFzc2VydHMuZmFpbChcImV4cGVjdGVkIG9iamVjdCBvZiB0eXBlIFNhZmVTdHlsZSwgZ290ICdcIitlK1wiJyBvZiB0eXBlIFwiK2dvb2cudHlwZU9mKGUpKSxcInR5cGVfZXJyb3I6U2FmZVN0eWxlXCIpfSxnb29nLmh0bWwuU2FmZVN0eWxlLmNyZWF0ZVNhZmVTdHlsZVNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUpe3JldHVybihuZXcgZ29vZy5odG1sLlNhZmVTdHlsZSkuaW5pdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlXyhlKX0sZ29vZy5odG1sLlNhZmVTdHlsZS5wcm90b3R5cGUuaW5pdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlXz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVfPWUsdGhpc30sZ29vZy5odG1sLlNhZmVTdHlsZS5FTVBUWT1nb29nLmh0bWwuU2FmZVN0eWxlLmNyZWF0ZVNhZmVTdHlsZVNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiXCIpLGdvb2cuaHRtbC5TYWZlU3R5bGUuSU5OT0NVT1VTX1NUUklORz1cInpDbG9zdXJlelwiLGdvb2cuaHRtbC5TYWZlU3R5bGUuY3JlYXRlPWZ1bmN0aW9uKGUpe3ZhciB0LG49XCJcIjtmb3IodCBpbiBlKXtpZighL15bLV9hLXpBLVowLTldKyQvLnRlc3QodCkpdGhyb3cgRXJyb3IoXCJOYW1lIGFsbG93cyBvbmx5IFstX2EtekEtWjAtOV0sIGdvdDogXCIrdCk7dmFyIHI9ZVt0XTtudWxsIT1yJiYobis9dCtcIjpcIisocj1BcnJheS5pc0FycmF5KHIpP2dvb2cuYXJyYXkubWFwKHIsZ29vZy5odG1sLlNhZmVTdHlsZS5zYW5pdGl6ZVByb3BlcnR5VmFsdWVfKS5qb2luKFwiIFwiKTpnb29nLmh0bWwuU2FmZVN0eWxlLnNhbml0aXplUHJvcGVydHlWYWx1ZV8ocikpK1wiO1wiKX1yZXR1cm4gbj9nb29nLmh0bWwuU2FmZVN0eWxlLmNyZWF0ZVNhZmVTdHlsZVNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKG4pOmdvb2cuaHRtbC5TYWZlU3R5bGUuRU1QVFl9LGdvb2cuaHRtbC5TYWZlU3R5bGUuc2FuaXRpemVQcm9wZXJ0eVZhbHVlXz1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmwpcmV0dXJuJ3VybChcIicrZ29vZy5odG1sLlNhZmVVcmwudW53cmFwKGUpLnJlcGxhY2UoLzwvZyxcIiUzY1wiKS5yZXBsYWNlKC9bXFxcXFwiXS9nLFwiXFxcXCQmXCIpKydcIiknO2lmKGU9ZSBpbnN0YW5jZW9mIGdvb2cuc3RyaW5nLkNvbnN0P2dvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKTpnb29nLmh0bWwuU2FmZVN0eWxlLnNhbml0aXplUHJvcGVydHlWYWx1ZVN0cmluZ18oU3RyaW5nKGUpKSwvW3s7fV0vLnRlc3QoZSkpdGhyb3cgbmV3IGdvb2cuYXNzZXJ0cy5Bc3NlcnRpb25FcnJvcihcIlZhbHVlIGRvZXMgbm90IGFsbG93IFt7O31dLCBnb3Q6ICVzLlwiLFtlXSk7cmV0dXJuIGV9LGdvb2cuaHRtbC5TYWZlU3R5bGUuc2FuaXRpemVQcm9wZXJ0eVZhbHVlU3RyaW5nXz1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoZ29vZy5odG1sLlNhZmVTdHlsZS5GVU5DVElPTlNfUkVfLFwiJDFcIikucmVwbGFjZShnb29nLmh0bWwuU2FmZVN0eWxlLkZVTkNUSU9OU19SRV8sXCIkMVwiKS5yZXBsYWNlKGdvb2cuaHRtbC5TYWZlU3R5bGUuVVJMX1JFXyxcInVybFwiKTtyZXR1cm4gZ29vZy5odG1sLlNhZmVTdHlsZS5WQUxVRV9SRV8udGVzdCh0KT9nb29nLmh0bWwuU2FmZVN0eWxlLkNPTU1FTlRfUkVfLnRlc3QoZSk/KGdvb2cuYXNzZXJ0cy5mYWlsKFwiU3RyaW5nIHZhbHVlIGRpc2FsbG93cyBjb21tZW50cywgZ290OiBcIitlKSxnb29nLmh0bWwuU2FmZVN0eWxlLklOTk9DVU9VU19TVFJJTkcpOmdvb2cuaHRtbC5TYWZlU3R5bGUuaGFzQmFsYW5jZWRRdW90ZXNfKGUpP2dvb2cuaHRtbC5TYWZlU3R5bGUuaGFzQmFsYW5jZWRTcXVhcmVCcmFja2V0c18oZSk/Z29vZy5odG1sLlNhZmVTdHlsZS5zYW5pdGl6ZVVybF8oZSk6KGdvb2cuYXNzZXJ0cy5mYWlsKFwiU3RyaW5nIHZhbHVlIHJlcXVpcmVzIGJhbGFuY2VkIHNxdWFyZSBicmFja2V0cyBhbmQgb25lIGlkZW50aWZpZXIgcGVyIHBhaXIgb2YgYnJhY2tldHMsIGdvdDogXCIrZSksZ29vZy5odG1sLlNhZmVTdHlsZS5JTk5PQ1VPVVNfU1RSSU5HKTooZ29vZy5hc3NlcnRzLmZhaWwoXCJTdHJpbmcgdmFsdWUgcmVxdWlyZXMgYmFsYW5jZWQgcXVvdGVzLCBnb3Q6IFwiK2UpLGdvb2cuaHRtbC5TYWZlU3R5bGUuSU5OT0NVT1VTX1NUUklORyk6KGdvb2cuYXNzZXJ0cy5mYWlsKFwiU3RyaW5nIHZhbHVlIGFsbG93cyBvbmx5IFwiK2dvb2cuaHRtbC5TYWZlU3R5bGUuVkFMVUVfQUxMT1dFRF9DSEFSU18rXCIgYW5kIHNpbXBsZSBmdW5jdGlvbnMsIGdvdDogXCIrZSksZ29vZy5odG1sLlNhZmVTdHlsZS5JTk5PQ1VPVVNfU1RSSU5HKX0sZ29vZy5odG1sLlNhZmVTdHlsZS5oYXNCYWxhbmNlZFF1b3Rlc189ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PSEwLG49ITAscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lLmNoYXJBdChyKTtcIidcIj09aSYmbj90PSF0OidcIic9PWkmJnQmJihuPSFuKX1yZXR1cm4gdCYmbn0sZ29vZy5odG1sLlNhZmVTdHlsZS5oYXNCYWxhbmNlZFNxdWFyZUJyYWNrZXRzXz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9ITAsbj0vXlstX2EtekEtWjAtOV0kLyxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWUuY2hhckF0KHIpO2lmKFwiXVwiPT1pKXtpZih0KXJldHVybiExO3Q9ITB9ZWxzZSBpZihcIltcIj09aSl7aWYoIXQpcmV0dXJuITE7dD0hMX1lbHNlIGlmKCF0JiYhbi50ZXN0KGkpKXJldHVybiExfXJldHVybiB0fSxnb29nLmh0bWwuU2FmZVN0eWxlLlZBTFVFX0FMTE9XRURfQ0hBUlNfPVwiWy0sLlxcXCInJV8hIyBhLXpBLVowLTlcXFxcW1xcXFxdXVwiLGdvb2cuaHRtbC5TYWZlU3R5bGUuVkFMVUVfUkVfPW5ldyBSZWdFeHAoXCJeXCIrZ29vZy5odG1sLlNhZmVTdHlsZS5WQUxVRV9BTExPV0VEX0NIQVJTXytcIiskXCIpLGdvb2cuaHRtbC5TYWZlU3R5bGUuVVJMX1JFXz0vXFxiKHVybFxcKFsgXFx0XFxuXSopKCdbIC0mKC1cXFtcXF0tfl0qJ3xcIlsgISMtXFxbXFxdLX5dKlwifFshIy0mKi1cXFtcXF0tfl0qKShbIFxcdFxcbl0qXFwpKS9nLGdvb2cuaHRtbC5TYWZlU3R5bGUuQUxMT1dFRF9GVU5DVElPTlNfPVwiY2FsYyBjdWJpYy1iZXppZXIgZml0LWNvbnRlbnQgaHNsIGhzbGEgbGluZWFyLWdyYWRpZW50IG1hdHJpeCBtaW5tYXggcmVwZWF0IHJnYiByZ2JhIChyb3RhdGV8c2NhbGV8dHJhbnNsYXRlKShYfFl8WnwzZCk/XCIuc3BsaXQoXCIgXCIpLGdvb2cuaHRtbC5TYWZlU3R5bGUuRlVOQ1RJT05TX1JFXz1uZXcgUmVnRXhwKFwiXFxcXGIoXCIrZ29vZy5odG1sLlNhZmVTdHlsZS5BTExPV0VEX0ZVTkNUSU9OU18uam9pbihcInxcIikrXCIpXFxcXChbLSsqLzAtOWEtei4lXFxcXFtcXFxcXSwgXStcXFxcKVwiLFwiZ1wiKSxnb29nLmh0bWwuU2FmZVN0eWxlLkNPTU1FTlRfUkVfPS9cXC9cXCovLGdvb2cuaHRtbC5TYWZlU3R5bGUuc2FuaXRpemVVcmxfPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoZ29vZy5odG1sLlNhZmVTdHlsZS5VUkxfUkVfLChmdW5jdGlvbihlLHQsbixyKXt2YXIgaT1cIlwiO3JldHVybiBuPW4ucmVwbGFjZSgvXihbJ1wiXSkoLiopXFwxJC8sKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaT10LG59KSksZT1nb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZShuKS5nZXRUeXBlZFN0cmluZ1ZhbHVlKCksdCtpK2UraStyfSkpfSxnb29nLmh0bWwuU2FmZVN0eWxlLmNvbmNhdD1mdW5jdGlvbihlKXt2YXIgdD1cIlwiLG49ZnVuY3Rpb24oZSl7QXJyYXkuaXNBcnJheShlKT9nb29nLmFycmF5LmZvckVhY2goZSxuKTp0Kz1nb29nLmh0bWwuU2FmZVN0eWxlLnVud3JhcChlKX07cmV0dXJuIGdvb2cuYXJyYXkuZm9yRWFjaChhcmd1bWVudHMsbiksdD9nb29nLmh0bWwuU2FmZVN0eWxlLmNyZWF0ZVNhZmVTdHlsZVNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKHQpOmdvb2cuaHRtbC5TYWZlU3R5bGUuRU1QVFl9LGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldD1mdW5jdGlvbigpe3RoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVN0eWxlU2hlZXRXcmFwcGVkVmFsdWVfPVwiXCIsdGhpcy5TQUZFX1NUWUxFX1NIRUVUX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz1nb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVffSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQucHJvdG90eXBlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc9ITAsZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz17fSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuY3JlYXRlUnVsZT1mdW5jdGlvbihlLHQpe2lmKGdvb2cuc3RyaW5nLmludGVybmFsLmNvbnRhaW5zKGUsXCI8XCIpKXRocm93IEVycm9yKFwiU2VsZWN0b3IgZG9lcyBub3QgYWxsb3cgJzwnLCBnb3Q6IFwiK2UpO3ZhciBuPWUucmVwbGFjZSgvKCd8XCIpKCg/IVxcMSlbXlxcclxcblxcZlxcXFxdfFxcXFxbXFxzXFxTXSkqXFwxL2csXCJcIik7aWYoIS9eWy1fYS16QS1aMC05Iy46KiAsPit+W1xcXSgpPV4kfF0rJC8udGVzdChuKSl0aHJvdyBFcnJvcihcIlNlbGVjdG9yIGFsbG93cyBvbmx5IFstX2EtekEtWjAtOSMuOiogLD4rfltcXFxcXSgpPV4kfF0gYW5kIHN0cmluZ3MsIGdvdDogXCIrZSk7aWYoIWdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5oYXNCYWxhbmNlZEJyYWNrZXRzXyhuKSl0aHJvdyBFcnJvcihcIigpIGFuZCBbXSBpbiBzZWxlY3RvciBtdXN0IGJlIGJhbGFuY2VkLCBnb3Q6IFwiK2UpO3JldHVybiB0IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVTdHlsZXx8KHQ9Z29vZy5odG1sLlNhZmVTdHlsZS5jcmVhdGUodCkpLGU9ZStcIntcIitnb29nLmh0bWwuU2FmZVN0eWxlLnVud3JhcCh0KS5yZXBsYWNlKC88L2csXCJcXFxcM0MgXCIpK1wifVwiLGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jcmVhdGVTYWZlU3R5bGVTaGVldFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpfSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuaGFzQmFsYW5jZWRCcmFja2V0c189ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXtcIihcIjpcIilcIixcIltcIjpcIl1cIn0sbj1bXSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl07aWYodFtpXSluLnB1c2godFtpXSk7ZWxzZSBpZihnb29nLm9iamVjdC5jb250YWlucyh0LGkpJiZuLnBvcCgpIT1pKXJldHVybiExfXJldHVybiAwPT1uLmxlbmd0aH0sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LmNvbmNhdD1mdW5jdGlvbihlKXt2YXIgdD1cIlwiLG49ZnVuY3Rpb24oZSl7QXJyYXkuaXNBcnJheShlKT9nb29nLmFycmF5LmZvckVhY2goZSxuKTp0Kz1nb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQudW53cmFwKGUpfTtyZXR1cm4gZ29vZy5hcnJheS5mb3JFYWNoKGFyZ3VtZW50cyxuKSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuY3JlYXRlU2FmZVN0eWxlU2hlZXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0KX0sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LmZyb21Db25zdGFudD1mdW5jdGlvbihlKXtyZXR1cm4gMD09PShlPWdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSkubGVuZ3RoP2dvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5FTVBUWTooZ29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy5zdHJpbmcuaW50ZXJuYWwuY29udGFpbnMoZSxcIjxcIiksXCJGb3JiaWRkZW4gJzwnIGNoYXJhY3RlciBpbiBzdHlsZSBzaGVldCBzdHJpbmc6IFwiK2UpLGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jcmVhdGVTYWZlU3R5bGVTaGVldFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpKX0sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LnByb3RvdHlwZS5nZXRUeXBlZFN0cmluZ1ZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVN0eWxlU2hlZXRXcmFwcGVkVmFsdWVffSxnb29nLkRFQlVHJiYoZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiU2FmZVN0eWxlU2hlZXR7XCIrdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVTaGVldFdyYXBwZWRWYWx1ZV8rXCJ9XCJ9KSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQudW53cmFwPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0JiZlLmNvbnN0cnVjdG9yPT09Z29vZy5odG1sLlNhZmVTdHlsZVNoZWV0JiZlLlNBRkVfU1RZTEVfU0hFRVRfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz9lLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTdHlsZVNoZWV0V3JhcHBlZFZhbHVlXzooZ29vZy5hc3NlcnRzLmZhaWwoXCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBTYWZlU3R5bGVTaGVldCwgZ290ICdcIitlK1wiJyBvZiB0eXBlIFwiK2dvb2cudHlwZU9mKGUpKSxcInR5cGVfZXJyb3I6U2FmZVN0eWxlU2hlZXRcIil9LGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jcmVhdGVTYWZlU3R5bGVTaGVldFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUpe3JldHVybihuZXcgZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0KS5pbml0U2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VfKGUpfSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQucHJvdG90eXBlLmluaXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZV89ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVN0eWxlU2hlZXRXcmFwcGVkVmFsdWVfPWUsdGhpc30sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LkVNUFRZPWdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jcmVhdGVTYWZlU3R5bGVTaGVldFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiXCIpLGdvb2cubGFicz17fSxnb29nLmxhYnMudXNlckFnZW50PXt9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbD17fSxnb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0TmF0aXZlVXNlckFnZW50U3RyaW5nXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXROYXZpZ2F0b3JfKCk7cmV0dXJuIGUmJihlPWUudXNlckFnZW50KT9lOlwiXCJ9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXROYXZpZ2F0b3JfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuZ2xvYmFsLm5hdmlnYXRvcn0sZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLnVzZXJBZ2VudF89Z29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLmdldE5hdGl2ZVVzZXJBZ2VudFN0cmluZ18oKSxnb29nLmxhYnMudXNlckFnZW50LnV0aWwuc2V0VXNlckFnZW50PWZ1bmN0aW9uKGUpe2dvb2cubGFicy51c2VyQWdlbnQudXRpbC51c2VyQWdlbnRfPWV8fGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXROYXRpdmVVc2VyQWdlbnRTdHJpbmdfKCl9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXRVc2VyQWdlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLnVzZXJBZ2VudF99LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudD1mdW5jdGlvbihlKXt2YXIgdD1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCk7cmV0dXJuIGdvb2cuc3RyaW5nLmludGVybmFsLmNvbnRhaW5zKHQsZSl9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudElnbm9yZUNhc2U9ZnVuY3Rpb24oZSl7dmFyIHQ9Z29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLmdldFVzZXJBZ2VudCgpO3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVDb250YWlucyh0LGUpfSxnb29nLmxhYnMudXNlckFnZW50LnV0aWwuZXh0cmFjdFZlcnNpb25UdXBsZXM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49LyhcXHdbXFx3IF0rKVxcLyhbXlxcc10rKVxccyooPzpcXCgoLio/KVxcKSk/L2cscj1bXTt0PW4uZXhlYyhlKTspci5wdXNoKFt0WzFdLHRbMl0sdFszXXx8dm9pZCAwXSk7cmV0dXJuIHJ9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlcj17fSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYV89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiT3BlcmFcIil9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaElFXz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJUcmlkZW50XCIpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJNU0lFXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hFZGdlSHRtbF89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiRWRnZVwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRWRnZUNocm9taXVtXz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJFZGcvXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYUNocm9taXVtXz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJPUFJcIil9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaEZpcmVmb3hfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkZpcmVmb3hcIil8fGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkZ4aU9TXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hTYWZhcmlfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIlNhZmFyaVwiKSYmIShnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hDaHJvbWVfKCl8fGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaENvYXN0XygpfHxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYV8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRWRnZUh0bWxfKCl8fGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaEVkZ2VDaHJvbWl1bV8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoT3BlcmFDaHJvbWl1bV8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRmlyZWZveF8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzU2lsaygpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJBbmRyb2lkXCIpKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ29hc3RfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkNvYXN0XCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hJb3NXZWJ2aWV3Xz1mdW5jdGlvbigpe3JldHVybihnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUGFkXCIpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUGhvbmVcIikpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoU2FmYXJpXygpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ2hyb21lXygpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ29hc3RfKCkmJiFnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hGaXJlZm94XygpJiZnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJBcHBsZVdlYktpdFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ2hyb21lXz1mdW5jdGlvbigpe3JldHVybihnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJDaHJvbWVcIil8fGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkNyaU9TXCIpKSYmIWdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaEVkZ2VIdG1sXygpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hBbmRyb2lkQnJvd3Nlcl89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiQW5kcm9pZFwiKSYmIShnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNDaHJvbWUoKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRmlyZWZveCgpfHxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNPcGVyYSgpfHxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNTaWxrKCkpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNPcGVyYT1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYV8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSUU9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoSUVfLGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0VkZ2U9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRWRnZUh0bWxfLGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0VkZ2VDaHJvbWl1bT1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hFZGdlQ2hyb21pdW1fLGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc09wZXJhQ2hyb21pdW09Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoT3BlcmFDaHJvbWl1bV8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRmlyZWZveD1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hGaXJlZm94Xyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNTYWZhcmk9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoU2FmYXJpXyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNDb2FzdD1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hDb2FzdF8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSW9zV2Vidmlldz1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hJb3NXZWJ2aWV3Xyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNDaHJvbWU9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ2hyb21lXyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNBbmRyb2lkQnJvd3Nlcj1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hBbmRyb2lkQnJvd3Nlcl8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzU2lsaz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJTaWxrXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuZ2V0VmVyc2lvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGU9Z29vZy5hcnJheS5maW5kKGUsciksbltlXXx8XCJcIn12YXIgdD1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCk7aWYoZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSUUoKSlyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmdldElFVmVyc2lvbl8odCk7dD1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZXh0cmFjdFZlcnNpb25UdXBsZXModCk7dmFyIG49e307Z29vZy5hcnJheS5mb3JFYWNoKHQsKGZ1bmN0aW9uKGUpe25bZVswXV09ZVsxXX0pKTt2YXIgcj1nb29nLnBhcnRpYWwoZ29vZy5vYmplY3QuY29udGFpbnNLZXksbik7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc09wZXJhKCk/ZShbXCJWZXJzaW9uXCIsXCJPcGVyYVwiXSk6Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRWRnZSgpP2UoW1wiRWRnZVwiXSk6Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRWRnZUNocm9taXVtKCk/ZShbXCJFZGdcIl0pOmdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0Nocm9tZSgpP2UoW1wiQ2hyb21lXCIsXCJDcmlPU1wiLFwiSGVhZGxlc3NDaHJvbWVcIl0pOih0PXRbMl0pJiZ0WzFdfHxcIlwifSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNWZXJzaW9uT3JIaWdoZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIDA8PWdvb2cuc3RyaW5nLmludGVybmFsLmNvbXBhcmVWZXJzaW9ucyhnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuZ2V0VmVyc2lvbigpLGUpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuZ2V0SUVWZXJzaW9uXz1mdW5jdGlvbihlKXt2YXIgdD0vcnY6ICooW1xcZFxcLl0qKS8uZXhlYyhlKTtpZih0JiZ0WzFdKXJldHVybiB0WzFdO3Q9XCJcIjt2YXIgbj0vTVNJRSArKFtcXGRcXC5dKykvLmV4ZWMoZSk7aWYobiYmblsxXSlpZihlPS9UcmlkZW50XFwvKFxcZC5cXGQpLy5leGVjKGUpLFwiNy4wXCI9PW5bMV0paWYoZSYmZVsxXSlzd2l0Y2goZVsxXSl7Y2FzZVwiNC4wXCI6dD1cIjguMFwiO2JyZWFrO2Nhc2VcIjUuMFwiOnQ9XCI5LjBcIjticmVhaztjYXNlXCI2LjBcIjp0PVwiMTAuMFwiO2JyZWFrO2Nhc2VcIjcuMFwiOnQ9XCIxMS4wXCJ9ZWxzZSB0PVwiNy4wXCI7ZWxzZSB0PW5bMV07cmV0dXJuIHR9LGdvb2cuaHRtbC5TYWZlSHRtbD1mdW5jdGlvbigpe3RoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZUh0bWxXcmFwcGVkVmFsdWVfPVwiXCIsdGhpcy5TQUZFX0hUTUxfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPWdvb2cuaHRtbC5TYWZlSHRtbC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV8sdGhpcy5kaXJfPW51bGx9LGdvb2cuaHRtbC5TYWZlSHRtbC5FTkFCTEVfRVJST1JfTUVTU0FHRVM9Z29vZy5ERUJVRyxnb29nLmh0bWwuU2FmZUh0bWwuU1VQUE9SVF9TVFlMRV9BVFRSSUJVVEU9ITAsZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5pbXBsZW1lbnRzR29vZ0kxOG5CaWRpRGlyZWN0aW9uYWxTdHJpbmc9ITAsZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5nZXREaXJlY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXJffSxnb29nLmh0bWwuU2FmZUh0bWwucHJvdG90eXBlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc9ITAsZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5nZXRUeXBlZFN0cmluZ1ZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZUh0bWxXcmFwcGVkVmFsdWVfLnRvU3RyaW5nKCl9LGdvb2cuREVCVUcmJihnb29nLmh0bWwuU2FmZUh0bWwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJTYWZlSHRtbHtcIit0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVIdG1sV3JhcHBlZFZhbHVlXytcIn1cIn0pLGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXBUcnVzdGVkSFRNTChlKS50b1N0cmluZygpfSxnb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUw9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZUh0bWwmJmUuY29uc3RydWN0b3I9PT1nb29nLmh0bWwuU2FmZUh0bWwmJmUuU0FGRV9IVE1MX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz09PWdvb2cuaHRtbC5TYWZlSHRtbC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV8/ZS5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlSHRtbFdyYXBwZWRWYWx1ZV86KGdvb2cuYXNzZXJ0cy5mYWlsKFwiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgU2FmZUh0bWwsIGdvdCAnXCIrZStcIicgb2YgdHlwZSBcIitnb29nLnR5cGVPZihlKSksXCJ0eXBlX2Vycm9yOlNhZmVIdG1sXCIpfSxnb29nLmh0bWwuU2FmZUh0bWwuaHRtbEVzY2FwZT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVIdG1sKXJldHVybiBlO3ZhciB0PVwib2JqZWN0XCI9PXR5cGVvZiBlLG49bnVsbDtyZXR1cm4gdCYmZS5pbXBsZW1lbnRzR29vZ0kxOG5CaWRpRGlyZWN0aW9uYWxTdHJpbmcmJihuPWUuZ2V0RGlyZWN0aW9uKCkpLGU9dCYmZS5pbXBsZW1lbnRzR29vZ1N0cmluZ1R5cGVkU3RyaW5nP2UuZ2V0VHlwZWRTdHJpbmdWYWx1ZSgpOlN0cmluZyhlKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShnb29nLnN0cmluZy5pbnRlcm5hbC5odG1sRXNjYXBlKGUpLG4pfSxnb29nLmh0bWwuU2FmZUh0bWwuaHRtbEVzY2FwZVByZXNlcnZpbmdOZXdsaW5lcz1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlSHRtbD9lOihlPWdvb2cuaHRtbC5TYWZlSHRtbC5odG1sRXNjYXBlKGUpLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGdvb2cuc3RyaW5nLmludGVybmFsLm5ld0xpbmVUb0JyKGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXAoZSkpLGUuZ2V0RGlyZWN0aW9uKCkpKX0sZ29vZy5odG1sLlNhZmVIdG1sLmh0bWxFc2NhcGVQcmVzZXJ2aW5nTmV3bGluZXNBbmRTcGFjZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZUh0bWw/ZTooZT1nb29nLmh0bWwuU2FmZUh0bWwuaHRtbEVzY2FwZShlKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShnb29nLnN0cmluZy5pbnRlcm5hbC53aGl0ZXNwYWNlRXNjYXBlKGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXAoZSkpLGUuZ2V0RGlyZWN0aW9uKCkpKX0sZ29vZy5odG1sLlNhZmVIdG1sLmZyb209Z29vZy5odG1sLlNhZmVIdG1sLmh0bWxFc2NhcGUsZ29vZy5odG1sLlNhZmVIdG1sLmNvbW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiXFx4M2MhLS1cIitnb29nLnN0cmluZy5pbnRlcm5hbC5odG1sRXNjYXBlKGUpK1wiLS1cXHgzZVwiLG51bGwpfSxnb29nLmh0bWwuU2FmZUh0bWwuVkFMSURfTkFNRVNfSU5fVEFHXz0vXlthLXpBLVowLTktXSskLyxnb29nLmh0bWwuU2FmZUh0bWwuVVJMX0FUVFJJQlVURVNfPXthY3Rpb246ITAsY2l0ZTohMCxkYXRhOiEwLGZvcm1hY3Rpb246ITAsaHJlZjohMCxtYW5pZmVzdDohMCxwb3N0ZXI6ITAsc3JjOiEwfSxnb29nLmh0bWwuU2FmZUh0bWwuTk9UX0FMTE9XRURfVEFHX05BTUVTXz17QVBQTEVUOiEwLEJBU0U6ITAsRU1CRUQ6ITAsSUZSQU1FOiEwLExJTks6ITAsTUFUSDohMCxNRVRBOiEwLE9CSkVDVDohMCxTQ1JJUFQ6ITAsU1RZTEU6ITAsU1ZHOiEwLFRFTVBMQVRFOiEwfSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZ29vZy5odG1sLlNhZmVIdG1sLnZlcmlmeVRhZ05hbWUoU3RyaW5nKGUpKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShTdHJpbmcoZSksdCxuKX0sZ29vZy5odG1sLlNhZmVIdG1sLnZlcmlmeVRhZ05hbWU9ZnVuY3Rpb24oZSl7aWYoIWdvb2cuaHRtbC5TYWZlSHRtbC5WQUxJRF9OQU1FU19JTl9UQUdfLnRlc3QoZSkpdGhyb3cgRXJyb3IoZ29vZy5odG1sLlNhZmVIdG1sLkVOQUJMRV9FUlJPUl9NRVNTQUdFUz9cIkludmFsaWQgdGFnIG5hbWUgPFwiK2UrXCI+LlwiOlwiXCIpO2lmKGUudG9VcHBlckNhc2UoKWluIGdvb2cuaHRtbC5TYWZlSHRtbC5OT1RfQUxMT1dFRF9UQUdfTkFNRVNfKXRocm93IEVycm9yKGdvb2cuaHRtbC5TYWZlSHRtbC5FTkFCTEVfRVJST1JfTUVTU0FHRVM/XCJUYWcgbmFtZSA8XCIrZStcIj4gaXMgbm90IGFsbG93ZWQgZm9yIFNhZmVIdG1sLlwiOlwiXCIpfSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlSWZyYW1lPWZ1bmN0aW9uKGUsdCxuLHIpe2UmJmdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwKGUpO3ZhciBpPXt9O3JldHVybiBpLnNyYz1lfHxudWxsLGkuc3JjZG9jPXQmJmdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXAodCksZT1nb29nLmh0bWwuU2FmZUh0bWwuY29tYmluZUF0dHJpYnV0ZXMoaSx7c2FuZGJveDpcIlwifSxuKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcImlmcmFtZVwiLGUscil9LGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYW5kYm94SWZyYW1lPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFnb29nLmh0bWwuU2FmZUh0bWwuY2FuVXNlU2FuZGJveElmcmFtZSgpKXRocm93IEVycm9yKGdvb2cuaHRtbC5TYWZlSHRtbC5FTkFCTEVfRVJST1JfTUVTU0FHRVM/XCJUaGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHNhbmRib3hlZCBpZnJhbWVzLlwiOlwiXCIpO3ZhciBpPXt9O3JldHVybiBpLnNyYz1lP2dvb2cuaHRtbC5TYWZlVXJsLnVud3JhcChnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZShlKSk6bnVsbCxpLnNyY2RvYz10fHxudWxsLGkuc2FuZGJveD1cIlwiLGU9Z29vZy5odG1sLlNhZmVIdG1sLmNvbWJpbmVBdHRyaWJ1dGVzKGkse30sbiksZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhZmVIdG1sVGFnU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoXCJpZnJhbWVcIixlLHIpfSxnb29nLmh0bWwuU2FmZUh0bWwuY2FuVXNlU2FuZGJveElmcmFtZT1mdW5jdGlvbigpe3JldHVybiBnb29nLmdsb2JhbC5IVE1MSUZyYW1lRWxlbWVudCYmXCJzYW5kYm94XCJpbiBnb29nLmdsb2JhbC5IVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGV9LGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTY3JpcHRTcmM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXAoZSksZT1nb29nLmh0bWwuU2FmZUh0bWwuY29tYmluZUF0dHJpYnV0ZXMoe3NyYzplfSx7fSx0KSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcInNjcmlwdFwiLGUpfSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2NyaXB0PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpe3ZhciByPW4udG9Mb3dlckNhc2UoKTtpZihcImxhbmd1YWdlXCI9PXJ8fFwic3JjXCI9PXJ8fFwidGV4dFwiPT1yfHxcInR5cGVcIj09cil0aHJvdyBFcnJvcihnb29nLmh0bWwuU2FmZUh0bWwuRU5BQkxFX0VSUk9SX01FU1NBR0VTPydDYW5ub3Qgc2V0IFwiJytyKydcIiBhdHRyaWJ1dGUnOlwiXCIpfWZvcihuPVwiXCIsZT1nb29nLmFycmF5LmNvbmNhdChlKSxyPTA7cjxlLmxlbmd0aDtyKyspbis9Z29vZy5odG1sLlNhZmVTY3JpcHQudW53cmFwKGVbcl0pO3JldHVybiBlPWdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKG4sZ29vZy5pMThuLmJpZGkuRGlyLk5FVVRSQUwpLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFRhZ1NlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwic2NyaXB0XCIsdCxlKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVN0eWxlPWZ1bmN0aW9uKGUsdCl7dD1nb29nLmh0bWwuU2FmZUh0bWwuY29tYmluZUF0dHJpYnV0ZXMoe3R5cGU6XCJ0ZXh0L2Nzc1wifSx7fSx0KTt2YXIgbj1cIlwiO2U9Z29vZy5hcnJheS5jb25jYXQoZSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspbis9Z29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LnVud3JhcChlW3JdKTtyZXR1cm4gZT1nb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShuLGdvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcInN0eWxlXCIsdCxlKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZU1ldGFSZWZyZXNoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9Z29vZy5odG1sLlNhZmVVcmwudW53cmFwKGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplKGUpKSwoZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSUUoKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRWRnZSgpKSYmZ29vZy5zdHJpbmcuaW50ZXJuYWwuY29udGFpbnMoZSxcIjtcIikmJihlPVwiJ1wiK2UucmVwbGFjZSgvJy9nLFwiJTI3XCIpK1wiJ1wiKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcIm1ldGFcIix7XCJodHRwLWVxdWl2XCI6XCJyZWZyZXNoXCIsY29udGVudDoodHx8MCkrXCI7IHVybD1cIitlfSl9LGdvb2cuaHRtbC5TYWZlSHRtbC5nZXRBdHRyTmFtZUFuZFZhbHVlXz1mdW5jdGlvbihlLHQsbil7aWYobiBpbnN0YW5jZW9mIGdvb2cuc3RyaW5nLkNvbnN0KW49Z29vZy5zdHJpbmcuQ29uc3QudW53cmFwKG4pO2Vsc2UgaWYoXCJzdHlsZVwiPT10LnRvTG93ZXJDYXNlKCkpe2lmKCFnb29nLmh0bWwuU2FmZUh0bWwuU1VQUE9SVF9TVFlMRV9BVFRSSUJVVEUpdGhyb3cgRXJyb3IoZ29vZy5odG1sLlNhZmVIdG1sLkVOQUJMRV9FUlJPUl9NRVNTQUdFUz8nQXR0cmlidXRlIFwic3R5bGVcIiBub3Qgc3VwcG9ydGVkLic6XCJcIik7bj1nb29nLmh0bWwuU2FmZUh0bWwuZ2V0U3R5bGVWYWx1ZV8obil9ZWxzZXtpZigvXm9uL2kudGVzdCh0KSl0aHJvdyBFcnJvcihnb29nLmh0bWwuU2FmZUh0bWwuRU5BQkxFX0VSUk9SX01FU1NBR0VTPydBdHRyaWJ1dGUgXCInK3QrJ1wiIHJlcXVpcmVzIGdvb2cuc3RyaW5nLkNvbnN0IHZhbHVlLCBcIicrbisnXCIgZ2l2ZW4uJzpcIlwiKTtpZih0LnRvTG93ZXJDYXNlKClpbiBnb29nLmh0bWwuU2FmZUh0bWwuVVJMX0FUVFJJQlVURVNfKWlmKG4gaW5zdGFuY2VvZiBnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsKW49Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXAobik7ZWxzZSBpZihuIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmwpbj1nb29nLmh0bWwuU2FmZVVybC51bndyYXAobik7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIG4pdGhyb3cgRXJyb3IoZ29vZy5odG1sLlNhZmVIdG1sLkVOQUJMRV9FUlJPUl9NRVNTQUdFUz8nQXR0cmlidXRlIFwiJyt0KydcIiBvbiB0YWcgXCInK2UrJ1wiIHJlcXVpcmVzIGdvb2cuaHRtbC5TYWZlVXJsLCBnb29nLnN0cmluZy5Db25zdCwgb3Igc3RyaW5nLCB2YWx1ZSBcIicrbisnXCIgZ2l2ZW4uJzpcIlwiKTtuPWdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplKG4pLmdldFR5cGVkU3RyaW5nVmFsdWUoKX19cmV0dXJuIG4uaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZyYmKG49bi5nZXRUeXBlZFN0cmluZ1ZhbHVlKCkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoXCJzdHJpbmdcIj09PXR5cGVvZiBufHxcIm51bWJlclwiPT09dHlwZW9mIG4sXCJTdHJpbmcgb3IgbnVtYmVyIHZhbHVlIGV4cGVjdGVkLCBnb3QgXCIrdHlwZW9mIG4rXCIgd2l0aCB2YWx1ZTogXCIrbiksdCsnPVwiJytnb29nLnN0cmluZy5pbnRlcm5hbC5odG1sRXNjYXBlKFN0cmluZyhuKSkrJ1wiJ30sZ29vZy5odG1sLlNhZmVIdG1sLmdldFN0eWxlVmFsdWVfPWZ1bmN0aW9uKGUpe2lmKCFnb29nLmlzT2JqZWN0KGUpKXRocm93IEVycm9yKGdvb2cuaHRtbC5TYWZlSHRtbC5FTkFCTEVfRVJST1JfTUVTU0FHRVM/J1RoZSBcInN0eWxlXCIgYXR0cmlidXRlIHJlcXVpcmVzIGdvb2cuaHRtbC5TYWZlU3R5bGUgb3IgbWFwIG9mIHN0eWxlIHByb3BlcnRpZXMsICcrdHlwZW9mIGUrXCIgZ2l2ZW46IFwiK2U6XCJcIik7cmV0dXJuIGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVN0eWxlfHwoZT1nb29nLmh0bWwuU2FmZVN0eWxlLmNyZWF0ZShlKSksZ29vZy5odG1sLlNhZmVTdHlsZS51bndyYXAoZSl9LGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVXaXRoRGlyPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybih0PWdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGUodCxuLHIpKS5kaXJfPWUsdH0sZ29vZy5odG1sLlNhZmVIdG1sLmpvaW49ZnVuY3Rpb24oZSx0KXt2YXIgbj0oZT1nb29nLmh0bWwuU2FmZUh0bWwuaHRtbEVzY2FwZShlKSkuZ2V0RGlyZWN0aW9uKCkscj1bXSxpPWZ1bmN0aW9uKGUpe0FycmF5LmlzQXJyYXkoZSk/Z29vZy5hcnJheS5mb3JFYWNoKGUsaSk6KGU9Z29vZy5odG1sLlNhZmVIdG1sLmh0bWxFc2NhcGUoZSksci5wdXNoKGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXAoZSkpLGU9ZS5nZXREaXJlY3Rpb24oKSxuPT1nb29nLmkxOG4uYmlkaS5EaXIuTkVVVFJBTD9uPWU6ZSE9Z29vZy5pMThuLmJpZGkuRGlyLk5FVVRSQUwmJm4hPWUmJihuPW51bGwpKX07cmV0dXJuIGdvb2cuYXJyYXkuZm9yRWFjaCh0LGkpLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKHIuam9pbihnb29nLmh0bWwuU2FmZUh0bWwudW53cmFwKGUpKSxuKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNvbmNhdD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNhZmVIdG1sLmpvaW4oZ29vZy5odG1sLlNhZmVIdG1sLkVNUFRZLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxnb29nLmh0bWwuU2FmZUh0bWwuY29uY2F0V2l0aERpcj1mdW5jdGlvbihlLHQpe3ZhciBuPWdvb2cuaHRtbC5TYWZlSHRtbC5jb25jYXQoZ29vZy5hcnJheS5zbGljZShhcmd1bWVudHMsMSkpO3JldHVybiBuLmRpcl89ZSxufSxnb29nLmh0bWwuU2FmZUh0bWwuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPXt9LGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKG5ldyBnb29nLmh0bWwuU2FmZUh0bWwpLmluaXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZV8oZSx0KX0sZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5pbml0U2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VfPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZUh0bWxXcmFwcGVkVmFsdWVfPWdvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZP2dvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZLmNyZWF0ZUhUTUwoZSk6ZSx0aGlzLmRpcl89dCx0aGlzfSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9bnVsbCxpPVwiPFwiK2UrZ29vZy5odG1sLlNhZmVIdG1sLnN0cmluZ2lmeUF0dHJpYnV0ZXMoZSx0KTtyZXR1cm4gbnVsbD09bj9uPVtdOkFycmF5LmlzQXJyYXkobil8fChuPVtuXSksZ29vZy5kb20udGFncy5pc1ZvaWRUYWcoZS50b0xvd2VyQ2FzZSgpKT8oZ29vZy5hc3NlcnRzLmFzc2VydCghbi5sZW5ndGgsXCJWb2lkIHRhZyA8XCIrZStcIj4gZG9lcyBub3QgYWxsb3cgY29udGVudC5cIiksaSs9XCI+XCIpOihyPWdvb2cuaHRtbC5TYWZlSHRtbC5jb25jYXQobiksaSs9XCI+XCIrZ29vZy5odG1sLlNhZmVIdG1sLnVud3JhcChyKStcIjwvXCIrZStcIj5cIixyPXIuZ2V0RGlyZWN0aW9uKCkpLChlPXQmJnQuZGlyKSYmKHI9L14obHRyfHJ0bHxhdXRvKSQvaS50ZXN0KGUpP2dvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMOm51bGwpLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGkscil9LGdvb2cuaHRtbC5TYWZlSHRtbC5zdHJpbmdpZnlBdHRyaWJ1dGVzPWZ1bmN0aW9uKGUsdCl7dmFyIG49XCJcIjtpZih0KWZvcih2YXIgciBpbiB0KXtpZighZ29vZy5odG1sLlNhZmVIdG1sLlZBTElEX05BTUVTX0lOX1RBR18udGVzdChyKSl0aHJvdyBFcnJvcihnb29nLmh0bWwuU2FmZUh0bWwuRU5BQkxFX0VSUk9SX01FU1NBR0VTPydJbnZhbGlkIGF0dHJpYnV0ZSBuYW1lIFwiJytyKydcIi4nOlwiXCIpO3ZhciBpPXRbcl07bnVsbCE9aSYmKG4rPVwiIFwiK2dvb2cuaHRtbC5TYWZlSHRtbC5nZXRBdHRyTmFtZUFuZFZhbHVlXyhlLHIsaSkpfXJldHVybiBufSxnb29nLmh0bWwuU2FmZUh0bWwuY29tYmluZUF0dHJpYnV0ZXM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk9e307Zm9yKHIgaW4gZSlnb29nLmFzc2VydHMuYXNzZXJ0KHIudG9Mb3dlckNhc2UoKT09cixcIk11c3QgYmUgbG93ZXIgY2FzZVwiKSxpW3JdPWVbcl07Zm9yKHIgaW4gdClnb29nLmFzc2VydHMuYXNzZXJ0KHIudG9Mb3dlckNhc2UoKT09cixcIk11c3QgYmUgbG93ZXIgY2FzZVwiKSxpW3JdPXRbcl07aWYobilmb3IociBpbiBuKXt2YXIgbz1yLnRvTG93ZXJDYXNlKCk7aWYobyBpbiBlKXRocm93IEVycm9yKGdvb2cuaHRtbC5TYWZlSHRtbC5FTkFCTEVfRVJST1JfTUVTU0FHRVM/J0Nhbm5vdCBvdmVycmlkZSBcIicrbysnXCIgYXR0cmlidXRlLCBnb3QgXCInK3IrJ1wiIHdpdGggdmFsdWUgXCInK25bcl0rJ1wiJzpcIlwiKTtvIGluIHQmJmRlbGV0ZSBpW29dLGlbcl09bltyXX1yZXR1cm4gaX0sZ29vZy5odG1sLlNhZmVIdG1sLkRPQ1RZUEVfSFRNTD1nb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcIjwhRE9DVFlQRSBodG1sPlwiLGdvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMKSxnb29nLmh0bWwuU2FmZUh0bWwuRU1QVFk9Z29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhZmVIdG1sU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoXCJcIixnb29nLmkxOG4uYmlkaS5EaXIuTkVVVFJBTCksZ29vZy5odG1sLlNhZmVIdG1sLkJSPWdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiPGJyPlwiLGdvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMKSxnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnM9e30sZ29vZy5odG1sLnVuY2hlY2tlZGNvbnZlcnNpb25zLnNhZmVIdG1sRnJvbVN0cmluZ0tub3duVG9TYXRpc2Z5VHlwZUNvbnRyYWN0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydFN0cmluZyhnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSksXCJtdXN0IHByb3ZpZGUganVzdGlmaWNhdGlvblwiKSxnb29nLmFzc2VydHMuYXNzZXJ0KCFnb29nLnN0cmluZy5pbnRlcm5hbC5pc0VtcHR5T3JXaGl0ZXNwYWNlKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSksXCJtdXN0IHByb3ZpZGUgbm9uLWVtcHR5IGp1c3RpZmljYXRpb25cIiksZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhZmVIdG1sU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCxufHxudWxsKX0sZ29vZy5odG1sLnVuY2hlY2tlZGNvbnZlcnNpb25zLnNhZmVTY3JpcHRGcm9tU3RyaW5nS25vd25Ub1NhdGlzZnlUeXBlQ29udHJhY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydFN0cmluZyhnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSksXCJtdXN0IHByb3ZpZGUganVzdGlmaWNhdGlvblwiKSxnb29nLmFzc2VydHMuYXNzZXJ0KCFnb29nLnN0cmluZy5pbnRlcm5hbC5pc0VtcHR5T3JXaGl0ZXNwYWNlKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSksXCJtdXN0IHByb3ZpZGUgbm9uLWVtcHR5IGp1c3RpZmljYXRpb25cIiksZ29vZy5odG1sLlNhZmVTY3JpcHQuY3JlYXRlU2FmZVNjcmlwdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKHQpfSxnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnMuc2FmZVN0eWxlRnJvbVN0cmluZ0tub3duVG9TYXRpc2Z5VHlwZUNvbnRyYWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnRTdHJpbmcoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpLFwibXVzdCBwcm92aWRlIGp1c3RpZmljYXRpb25cIiksZ29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy5zdHJpbmcuaW50ZXJuYWwuaXNFbXB0eU9yV2hpdGVzcGFjZShnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSkpLFwibXVzdCBwcm92aWRlIG5vbi1lbXB0eSBqdXN0aWZpY2F0aW9uXCIpLGdvb2cuaHRtbC5TYWZlU3R5bGUuY3JlYXRlU2FmZVN0eWxlU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCl9LGdvb2cuaHRtbC51bmNoZWNrZWRjb252ZXJzaW9ucy5zYWZlU3R5bGVTaGVldEZyb21TdHJpbmdLbm93blRvU2F0aXNmeVR5cGVDb250cmFjdD1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0U3RyaW5nKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSxcIm11c3QgcHJvdmlkZSBqdXN0aWZpY2F0aW9uXCIpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoIWdvb2cuc3RyaW5nLmludGVybmFsLmlzRW1wdHlPcldoaXRlc3BhY2UoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpKSxcIm11c3QgcHJvdmlkZSBub24tZW1wdHkganVzdGlmaWNhdGlvblwiKSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuY3JlYXRlU2FmZVN0eWxlU2hlZXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0KX0sZ29vZy5odG1sLnVuY2hlY2tlZGNvbnZlcnNpb25zLnNhZmVVcmxGcm9tU3RyaW5nS25vd25Ub1NhdGlzZnlUeXBlQ29udHJhY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydFN0cmluZyhnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSksXCJtdXN0IHByb3ZpZGUganVzdGlmaWNhdGlvblwiKSxnb29nLmFzc2VydHMuYXNzZXJ0KCFnb29nLnN0cmluZy5pbnRlcm5hbC5pc0VtcHR5T3JXaGl0ZXNwYWNlKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSksXCJtdXN0IHByb3ZpZGUgbm9uLWVtcHR5IGp1c3RpZmljYXRpb25cIiksZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKHQpfSxnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnMudHJ1c3RlZFJlc291cmNlVXJsRnJvbVN0cmluZ0tub3duVG9TYXRpc2Z5VHlwZUNvbnRyYWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnRTdHJpbmcoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpLFwibXVzdCBwcm92aWRlIGp1c3RpZmljYXRpb25cIiksZ29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy5zdHJpbmcuaW50ZXJuYWwuaXNFbXB0eU9yV2hpdGVzcGFjZShnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSkpLFwibXVzdCBwcm92aWRlIG5vbi1lbXB0eSBqdXN0aWZpY2F0aW9uXCIpLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuY3JlYXRlVHJ1c3RlZFJlc291cmNlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCl9LGdvb2cuZG9tLnNhZmU9e30sZ29vZy5kb20uc2FmZS5JbnNlcnRBZGphY2VudEh0bWxQb3NpdGlvbj17QUZURVJCRUdJTjpcImFmdGVyYmVnaW5cIixBRlRFUkVORDpcImFmdGVyZW5kXCIsQkVGT1JFQkVHSU46XCJiZWZvcmViZWdpblwiLEJFRk9SRUVORDpcImJlZm9yZWVuZFwifSxnb29nLmRvbS5zYWZlLmluc2VydEFkamFjZW50SHRtbD1mdW5jdGlvbihlLHQsbil7ZS5pbnNlcnRBZGphY2VudEhUTUwodCxnb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUwobikpfSxnb29nLmRvbS5zYWZlLlNFVF9JTk5FUl9IVE1MX0RJU0FMTE9XRURfVEFHU189e01BVEg6ITAsU0NSSVBUOiEwLFNUWUxFOiEwLFNWRzohMCxURU1QTEFURTohMH0sZ29vZy5kb20uc2FmZS5pc0lubmVySHRtbENsZWFudXBSZWN1cnNpdmVfPWdvb2cuZnVuY3Rpb25zLmNhY2hlUmV0dXJuVmFsdWUoKGZ1bmN0aW9uKCl7aWYoZ29vZy5ERUJVRyYmXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBkb2N1bWVudClyZXR1cm4hMTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKSxlLmFwcGVuZENoaWxkKHQpLCEoZ29vZy5ERUJVRyYmIWUuZmlyc3RDaGlsZCkmJih0PWUuZmlyc3RDaGlsZC5maXJzdENoaWxkLGUuaW5uZXJIVE1MPWdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXBUcnVzdGVkSFRNTChnb29nLmh0bWwuU2FmZUh0bWwuRU1QVFkpLCF0LnBhcmVudEVsZW1lbnQpfSkpLGdvb2cuZG9tLnNhZmUudW5zYWZlU2V0SW5uZXJIdG1sRG9Ob3RVc2VPckVsc2U9ZnVuY3Rpb24oZSx0KXtpZihnb29nLmRvbS5zYWZlLmlzSW5uZXJIdG1sQ2xlYW51cFJlY3Vyc2l2ZV8oKSlmb3IoO2UubGFzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUubGFzdENoaWxkKTtlLmlubmVySFRNTD1nb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUwodCl9LGdvb2cuZG9tLnNhZmUuc2V0SW5uZXJIdG1sPWZ1bmN0aW9uKGUsdCl7aWYoZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTKXt2YXIgbj1lLnRhZ05hbWUudG9VcHBlckNhc2UoKTtpZihnb29nLmRvbS5zYWZlLlNFVF9JTk5FUl9IVE1MX0RJU0FMTE9XRURfVEFHU19bbl0pdGhyb3cgRXJyb3IoXCJnb29nLmRvbS5zYWZlLnNldElubmVySHRtbCBjYW5ub3QgYmUgdXNlZCB0byBzZXQgY29udGVudCBvZiBcIitlLnRhZ05hbWUrXCIuXCIpfWdvb2cuZG9tLnNhZmUudW5zYWZlU2V0SW5uZXJIdG1sRG9Ob3RVc2VPckVsc2UoZSx0KX0sZ29vZy5kb20uc2FmZS5zZXRPdXRlckh0bWw9ZnVuY3Rpb24oZSx0KXtlLm91dGVySFRNTD1nb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUwodCl9LGdvb2cuZG9tLnNhZmUuc2V0Rm9ybUVsZW1lbnRBY3Rpb249ZnVuY3Rpb24oZSx0KXt0PXQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD90Omdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKHQpLGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MRm9ybUVsZW1lbnQoZSkuYWN0aW9uPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcCh0KX0sZ29vZy5kb20uc2FmZS5zZXRCdXR0b25Gb3JtQWN0aW9uPWZ1bmN0aW9uKGUsdCl7dD10IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/dDpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0KSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEJ1dHRvbkVsZW1lbnQoZSkuZm9ybUFjdGlvbj1nb29nLmh0bWwuU2FmZVVybC51bndyYXAodCl9LGdvb2cuZG9tLnNhZmUuc2V0SW5wdXRGb3JtQWN0aW9uPWZ1bmN0aW9uKGUsdCl7dD10IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/dDpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0KSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTElucHV0RWxlbWVudChlKS5mb3JtQWN0aW9uPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcCh0KX0sZ29vZy5kb20uc2FmZS5zZXRTdHlsZT1mdW5jdGlvbihlLHQpe2Uuc3R5bGUuY3NzVGV4dD1nb29nLmh0bWwuU2FmZVN0eWxlLnVud3JhcCh0KX0sZ29vZy5kb20uc2FmZS5kb2N1bWVudFdyaXRlPWZ1bmN0aW9uKGUsdCl7ZS53cml0ZShnb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUwodCkpfSxnb29nLmRvbS5zYWZlLnNldEFuY2hvckhyZWY9ZnVuY3Rpb24oZSx0KXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEFuY2hvckVsZW1lbnQoZSksdD10IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/dDpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0KSxlLmhyZWY9Z29vZy5odG1sLlNhZmVVcmwudW53cmFwKHQpfSxnb29nLmRvbS5zYWZlLnNldEltYWdlU3JjPWZ1bmN0aW9uKGUsdCl7aWYoZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxJbWFnZUVsZW1lbnQoZSksISh0IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmwpKXt2YXIgbj0vXmRhdGE6aW1hZ2VcXC8vaS50ZXN0KHQpO3Q9Z29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVBc3NlcnRVbmNoYW5nZWQodCxuKX1lLnNyYz1nb29nLmh0bWwuU2FmZVVybC51bndyYXAodCl9LGdvb2cuZG9tLnNhZmUuc2V0QXVkaW9TcmM9ZnVuY3Rpb24oZSx0KXtpZihnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEF1ZGlvRWxlbWVudChlKSwhKHQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybCkpe3ZhciBuPS9eZGF0YTphdWRpb1xcLy9pLnRlc3QodCk7dD1nb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0LG4pfWUuc3JjPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcCh0KX0sZ29vZy5kb20uc2FmZS5zZXRWaWRlb1NyYz1mdW5jdGlvbihlLHQpe2lmKGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MVmlkZW9FbGVtZW50KGUpLCEodCBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlVXJsKSl7dmFyIG49L15kYXRhOnZpZGVvXFwvL2kudGVzdCh0KTt0PWdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKHQsbil9ZS5zcmM9Z29vZy5odG1sLlNhZmVVcmwudW53cmFwKHQpfSxnb29nLmRvbS5zYWZlLnNldEVtYmVkU3JjPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxFbWJlZEVsZW1lbnQoZSksZS5zcmM9Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXBUcnVzdGVkU2NyaXB0VVJMKHQpfSxnb29nLmRvbS5zYWZlLnNldEZyYW1lU3JjPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxGcmFtZUVsZW1lbnQoZSksZS5zcmM9Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXAodCl9LGdvb2cuZG9tLnNhZmUuc2V0SWZyYW1lU3JjPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxJRnJhbWVFbGVtZW50KGUpLGUuc3JjPWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwKHQpfSxnb29nLmRvbS5zYWZlLnNldElmcmFtZVNyY2RvYz1mdW5jdGlvbihlLHQpe2dvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MSUZyYW1lRWxlbWVudChlKSxlLnNyY2RvYz1nb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUwodCl9LGdvb2cuZG9tLnNhZmUuc2V0TGlua0hyZWZBbmRSZWw9ZnVuY3Rpb24oZSx0LG4pe2dvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MTGlua0VsZW1lbnQoZSksZS5yZWw9bixnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVDb250YWlucyhuLFwic3R5bGVzaGVldFwiKT8oZ29vZy5hc3NlcnRzLmFzc2VydCh0IGluc3RhbmNlb2YgZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybCwnVVJMIG11c3QgYmUgVHJ1c3RlZFJlc291cmNlVXJsIGJlY2F1c2UgXCJyZWxcIiBjb250YWlucyBcInN0eWxlc2hlZXRcIicpLGUuaHJlZj1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcCh0KSk6ZS5ocmVmPXQgaW5zdGFuY2VvZiBnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsP2dvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwKHQpOnQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD9nb29nLmh0bWwuU2FmZVVybC51bndyYXAodCk6Z29vZy5odG1sLlNhZmVVcmwudW53cmFwKGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKHQpKX0sZ29vZy5kb20uc2FmZS5zZXRPYmplY3REYXRhPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxPYmplY3RFbGVtZW50KGUpLGUuZGF0YT1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcFRydXN0ZWRTY3JpcHRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0U2NyaXB0U3JjPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxTY3JpcHRFbGVtZW50KGUpLGUuc3JjPWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwVHJ1c3RlZFNjcmlwdFVSTCh0KSwodD1nb29nLmdldFNjcmlwdE5vbmNlKCkpJiZlLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsdCl9LGdvb2cuZG9tLnNhZmUuc2V0U2NyaXB0Q29udGVudD1mdW5jdGlvbihlLHQpe2dvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MU2NyaXB0RWxlbWVudChlKSxlLnRleHQ9Z29vZy5odG1sLlNhZmVTY3JpcHQudW53cmFwVHJ1c3RlZFNjcmlwdCh0KSwodD1nb29nLmdldFNjcmlwdE5vbmNlKCkpJiZlLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsdCl9LGdvb2cuZG9tLnNhZmUuc2V0TG9jYXRpb25IcmVmPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0xvY2F0aW9uKGUpLHQ9dCBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlVXJsP3Q6Z29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVBc3NlcnRVbmNoYW5nZWQodCksZS5ocmVmPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcCh0KX0sZ29vZy5kb20uc2FmZS5hc3NpZ25Mb2NhdGlvbj1mdW5jdGlvbihlLHQpe2dvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNMb2NhdGlvbihlKSx0PXQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD90Omdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKHQpLGUuYXNzaWduKGdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcCh0KSl9LGdvb2cuZG9tLnNhZmUucmVwbGFjZUxvY2F0aW9uPWZ1bmN0aW9uKGUsdCl7dD10IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/dDpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0KSxlLnJlcGxhY2UoZ29vZy5odG1sLlNhZmVVcmwudW53cmFwKHQpKX0sZ29vZy5kb20uc2FmZS5vcGVuSW5XaW5kb3c9ZnVuY3Rpb24oZSx0LG4scixpKXtyZXR1cm4gZT1lIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/ZTpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZChlKSx0PXR8fGdvb2cuZ2xvYmFsLG49biBpbnN0YW5jZW9mIGdvb2cuc3RyaW5nLkNvbnN0P2dvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChuKTpufHxcIlwiLHQub3Blbihnb29nLmh0bWwuU2FmZVVybC51bndyYXAoZSksbixyLGkpfSxnb29nLmRvbS5zYWZlLnBhcnNlRnJvbVN0cmluZ0h0bWw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5kb20uc2FmZS5wYXJzZUZyb21TdHJpbmcoZSx0LFwidGV4dC9odG1sXCIpfSxnb29nLmRvbS5zYWZlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUucGFyc2VGcm9tU3RyaW5nKGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXBUcnVzdGVkSFRNTCh0KSxuKX0sZ29vZy5kb20uc2FmZS5jcmVhdGVJbWFnZUZyb21CbG9iPWZ1bmN0aW9uKGUpe2lmKCEvXmltYWdlXFwvLiovZy50ZXN0KGUudHlwZSkpdGhyb3cgRXJyb3IoXCJnb29nLmRvbS5zYWZlLmNyZWF0ZUltYWdlRnJvbUJsb2Igb25seSBhY2NlcHRzIE1JTUUgdHlwZSBpbWFnZS8uKi5cIik7dmFyIHQ9Z29vZy5nbG9iYWwuVVJMLmNyZWF0ZU9iamVjdFVSTChlKTtyZXR1cm4oZT1uZXcgZ29vZy5nbG9iYWwuSW1hZ2UpLm9ubG9hZD1mdW5jdGlvbigpe2dvb2cuZ2xvYmFsLlVSTC5yZXZva2VPYmplY3RVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0SW1hZ2VTcmMoZSxnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnMuc2FmZVVybEZyb21TdHJpbmdLbm93blRvU2F0aXNmeVR5cGVDb250cmFjdChnb29nLnN0cmluZy5Db25zdC5mcm9tKFwiSW1hZ2UgYmxvYiBVUkwuXCIpLHQpKSxlfSxnb29nLnN0cmluZy5ERVRFQ1RfRE9VQkxFX0VTQ0FQSU5HPSExLGdvb2cuc3RyaW5nLkZPUkNFX05PTl9ET01fSFRNTF9VTkVTQ0FQSU5HPSExLGdvb2cuc3RyaW5nLlVuaWNvZGU9e05CU1A6XCJcXHhhMFwifSxnb29nLnN0cmluZy5zdGFydHNXaXRoPWdvb2cuc3RyaW5nLmludGVybmFsLnN0YXJ0c1dpdGgsZ29vZy5zdHJpbmcuZW5kc1dpdGg9Z29vZy5zdHJpbmcuaW50ZXJuYWwuZW5kc1dpdGgsZ29vZy5zdHJpbmcuY2FzZUluc2Vuc2l0aXZlU3RhcnRzV2l0aD1nb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVTdGFydHNXaXRoLGdvb2cuc3RyaW5nLmNhc2VJbnNlbnNpdGl2ZUVuZHNXaXRoPWdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUVuZHNXaXRoLGdvb2cuc3RyaW5nLmNhc2VJbnNlbnNpdGl2ZUVxdWFscz1nb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVFcXVhbHMsZ29vZy5zdHJpbmcuc3Vicz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lLnNwbGl0KFwiJXNcIikscj1cIlwiLGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2kubGVuZ3RoJiYxPG4ubGVuZ3RoOylyKz1uLnNoaWZ0KCkraS5zaGlmdCgpO3JldHVybiByK24uam9pbihcIiVzXCIpfSxnb29nLnN0cmluZy5jb2xsYXBzZVdoaXRlc3BhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1xcc1xceGEwXSsvZyxcIiBcIikucmVwbGFjZSgvXlxccyt8XFxzKyQvZyxcIlwiKX0sZ29vZy5zdHJpbmcuaXNFbXB0eU9yV2hpdGVzcGFjZT1nb29nLnN0cmluZy5pbnRlcm5hbC5pc0VtcHR5T3JXaGl0ZXNwYWNlLGdvb2cuc3RyaW5nLmlzRW1wdHlTdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PWUubGVuZ3RofSxnb29nLnN0cmluZy5pc0VtcHR5PWdvb2cuc3RyaW5nLmlzRW1wdHlPcldoaXRlc3BhY2UsZ29vZy5zdHJpbmcuaXNFbXB0eU9yV2hpdGVzcGFjZVNhZmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuc3RyaW5nLmlzRW1wdHlPcldoaXRlc3BhY2UoZ29vZy5zdHJpbmcubWFrZVNhZmUoZSkpfSxnb29nLnN0cmluZy5pc0VtcHR5U2FmZT1nb29nLnN0cmluZy5pc0VtcHR5T3JXaGl0ZXNwYWNlU2FmZSxnb29nLnN0cmluZy5pc0JyZWFraW5nV2hpdGVzcGFjZT1mdW5jdGlvbihlKXtyZXR1cm4hL1teXFx0XFxuXFxyIF0vLnRlc3QoZSl9LGdvb2cuc3RyaW5nLmlzQWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIS9bXmEtekEtWl0vLnRlc3QoZSl9LGdvb2cuc3RyaW5nLmlzTnVtZXJpYz1mdW5jdGlvbihlKXtyZXR1cm4hL1teMC05XS8udGVzdChlKX0sZ29vZy5zdHJpbmcuaXNBbHBoYU51bWVyaWM9ZnVuY3Rpb24oZSl7cmV0dXJuIS9bXmEtekEtWjAtOV0vLnRlc3QoZSl9LGdvb2cuc3RyaW5nLmlzU3BhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuXCIgXCI9PWV9LGdvb2cuc3RyaW5nLmlzVW5pY29kZUNoYXI9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PWUubGVuZ3RoJiZcIiBcIjw9ZSYmXCJ+XCI+PWV8fFwiXFx4ODBcIjw9ZSYmXCJcXHVmZmZkXCI+PWV9LGdvb2cuc3RyaW5nLnN0cmlwTmV3bGluZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvKFxcclxcbnxcXHJ8XFxuKSsvZyxcIiBcIil9LGdvb2cuc3RyaW5nLmNhbm9uaWNhbGl6ZU5ld2xpbmVzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbikvZyxcIlxcblwiKX0sZ29vZy5zdHJpbmcubm9ybWFsaXplV2hpdGVzcGFjZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9cXHhhMHxcXHMvZyxcIiBcIil9LGdvb2cuc3RyaW5nLm5vcm1hbGl6ZVNwYWNlcz1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9cXHhhMHxbIFxcdF0rL2csXCIgXCIpfSxnb29nLnN0cmluZy5jb2xsYXBzZUJyZWFraW5nU3BhY2VzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1tcXHRcXHJcXG4gXSsvZyxcIiBcIikucmVwbGFjZSgvXltcXHRcXHJcXG4gXSt8W1xcdFxcclxcbiBdKyQvZyxcIlwiKX0sZ29vZy5zdHJpbmcudHJpbT1nb29nLnN0cmluZy5pbnRlcm5hbC50cmltLGdvb2cuc3RyaW5nLnRyaW1MZWZ0PWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL15bXFxzXFx4YTBdKy8sXCJcIil9LGdvb2cuc3RyaW5nLnRyaW1SaWdodD1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXFxzXFx4YTBdKyQvLFwiXCIpfSxnb29nLnN0cmluZy5jYXNlSW5zZW5zaXRpdmVDb21wYXJlPWdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUNvbXBhcmUsZ29vZy5zdHJpbmcubnVtYmVyQXdhcmVDb21wYXJlXz1mdW5jdGlvbihlLHQsbil7aWYoZT09dClyZXR1cm4gMDtpZighZSlyZXR1cm4tMTtpZighdClyZXR1cm4gMTtmb3IodmFyIHI9ZS50b0xvd2VyQ2FzZSgpLm1hdGNoKG4pLGk9dC50b0xvd2VyQ2FzZSgpLm1hdGNoKG4pLG89TWF0aC5taW4oci5sZW5ndGgsaS5sZW5ndGgpLGE9MDthPG87YSsrKXtuPXJbYV07dmFyIHM9aVthXTtpZihuIT1zKXJldHVybiBlPXBhcnNlSW50KG4sMTApLCFpc05hTihlKSYmKHQ9cGFyc2VJbnQocywxMCksIWlzTmFOKHQpJiZlLXQpP2UtdDpuPHM/LTE6MX1yZXR1cm4gci5sZW5ndGghPWkubGVuZ3RoP3IubGVuZ3RoLWkubGVuZ3RoOmU8dD8tMToxfSxnb29nLnN0cmluZy5pbnRBd2FyZUNvbXBhcmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5zdHJpbmcubnVtYmVyQXdhcmVDb21wYXJlXyhlLHQsL1xcZCt8XFxEKy9nKX0sZ29vZy5zdHJpbmcuZmxvYXRBd2FyZUNvbXBhcmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5zdHJpbmcubnVtYmVyQXdhcmVDb21wYXJlXyhlLHQsL1xcZCt8XFwuXFxkK3xcXEQrL2cpfSxnb29nLnN0cmluZy5udW1lcmF0ZUNvbXBhcmU9Z29vZy5zdHJpbmcuZmxvYXRBd2FyZUNvbXBhcmUsZ29vZy5zdHJpbmcudXJsRW5jb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGUpKX0sZ29vZy5zdHJpbmcudXJsRGVjb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZS5yZXBsYWNlKC9cXCsvZyxcIiBcIikpfSxnb29nLnN0cmluZy5uZXdMaW5lVG9Ccj1nb29nLnN0cmluZy5pbnRlcm5hbC5uZXdMaW5lVG9Ccixnb29nLnN0cmluZy5odG1sRXNjYXBlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9Z29vZy5zdHJpbmcuaW50ZXJuYWwuaHRtbEVzY2FwZShlLHQpLGdvb2cuc3RyaW5nLkRFVEVDVF9ET1VCTEVfRVNDQVBJTkcmJihlPWUucmVwbGFjZShnb29nLnN0cmluZy5FX1JFXyxcIiYjMTAxO1wiKSksZX0sZ29vZy5zdHJpbmcuRV9SRV89L2UvZyxnb29nLnN0cmluZy51bmVzY2FwZUVudGl0aWVzPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnN0cmluZy5jb250YWlucyhlLFwiJlwiKT8hZ29vZy5zdHJpbmcuRk9SQ0VfTk9OX0RPTV9IVE1MX1VORVNDQVBJTkcmJlwiZG9jdW1lbnRcImluIGdvb2cuZ2xvYmFsP2dvb2cuc3RyaW5nLnVuZXNjYXBlRW50aXRpZXNVc2luZ0RvbV8oZSk6Z29vZy5zdHJpbmcudW5lc2NhcGVQdXJlWG1sRW50aXRpZXNfKGUpOmV9LGdvb2cuc3RyaW5nLnVuZXNjYXBlRW50aXRpZXNXaXRoRG9jdW1lbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5zdHJpbmcuY29udGFpbnMoZSxcIiZcIik/Z29vZy5zdHJpbmcudW5lc2NhcGVFbnRpdGllc1VzaW5nRG9tXyhlLHQpOmV9LGdvb2cuc3RyaW5nLnVuZXNjYXBlRW50aXRpZXNVc2luZ0RvbV89ZnVuY3Rpb24oZSx0KXt2YXIgbj17XCImYW1wO1wiOlwiJlwiLFwiJmx0O1wiOlwiPFwiLFwiJmd0O1wiOlwiPlwiLFwiJnF1b3Q7XCI6J1wiJ30scj10P3QuY3JlYXRlRWxlbWVudChcImRpdlwiKTpnb29nLmdsb2JhbC5kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3JldHVybiBlLnJlcGxhY2UoZ29vZy5zdHJpbmcuSFRNTF9FTlRJVFlfUEFUVEVSTl8sKGZ1bmN0aW9uKGUsdCl7dmFyIGk9bltlXTtyZXR1cm4gaXx8KFwiI1wiPT10LmNoYXJBdCgwKSYmKHQ9TnVtYmVyKFwiMFwiK3Quc3Vic3RyKDEpKSxpc05hTih0KXx8KGk9U3RyaW5nLmZyb21DaGFyQ29kZSh0KSkpLGl8fChnb29nLmRvbS5zYWZlLnNldElubmVySHRtbChyLGdvb2cuaHRtbC51bmNoZWNrZWRjb252ZXJzaW9ucy5zYWZlSHRtbEZyb21TdHJpbmdLbm93blRvU2F0aXNmeVR5cGVDb250cmFjdChnb29nLnN0cmluZy5Db25zdC5mcm9tKFwiU2luZ2xlIEhUTUwgZW50aXR5LlwiKSxlK1wiIFwiKSksaT1yLmZpcnN0Q2hpbGQubm9kZVZhbHVlLnNsaWNlKDAsLTEpKSxuW2VdPWkpfSkpfSxnb29nLnN0cmluZy51bmVzY2FwZVB1cmVYbWxFbnRpdGllc189ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvJihbXjtdKyk7L2csKGZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQpe2Nhc2VcImFtcFwiOnJldHVyblwiJlwiO2Nhc2VcImx0XCI6cmV0dXJuXCI8XCI7Y2FzZVwiZ3RcIjpyZXR1cm5cIj5cIjtjYXNlXCJxdW90XCI6cmV0dXJuJ1wiJztkZWZhdWx0OnJldHVyblwiI1wiIT10LmNoYXJBdCgwKXx8KHQ9TnVtYmVyKFwiMFwiK3Quc3Vic3RyKDEpKSxpc05hTih0KSk/ZTpTdHJpbmcuZnJvbUNoYXJDb2RlKHQpfX0pKX0sZ29vZy5zdHJpbmcuSFRNTF9FTlRJVFlfUEFUVEVSTl89LyYoW147XFxzPCZdKyk7Py9nLGdvb2cuc3RyaW5nLndoaXRlc3BhY2VFc2NhcGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5zdHJpbmcubmV3TGluZVRvQnIoZS5yZXBsYWNlKC8gIC9nLFwiICYjMTYwO1wiKSx0KX0sZ29vZy5zdHJpbmcucHJlc2VydmVTcGFjZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvKF58W1xcbiBdKSAvZyxcIiQxXCIrZ29vZy5zdHJpbmcuVW5pY29kZS5OQlNQKX0sZ29vZy5zdHJpbmcuc3RyaXBRdW90ZXM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49dC5sZW5ndGgscj0wO3I8bjtyKyspe3ZhciBpPTE9PW4/dDp0LmNoYXJBdChyKTtpZihlLmNoYXJBdCgwKT09aSYmZS5jaGFyQXQoZS5sZW5ndGgtMSk9PWkpcmV0dXJuIGUuc3Vic3RyaW5nKDEsZS5sZW5ndGgtMSl9cmV0dXJuIGV9LGdvb2cuc3RyaW5nLnRydW5jYXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbiYmKGU9Z29vZy5zdHJpbmcudW5lc2NhcGVFbnRpdGllcyhlKSksZS5sZW5ndGg+dCYmKGU9ZS5zdWJzdHJpbmcoMCx0LTMpK1wiLi4uXCIpLG4mJihlPWdvb2cuc3RyaW5nLmh0bWxFc2NhcGUoZSkpLGV9LGdvb2cuc3RyaW5nLnRydW5jYXRlTWlkZGxlPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKG4mJihlPWdvb2cuc3RyaW5nLnVuZXNjYXBlRW50aXRpZXMoZSkpLHImJmUubGVuZ3RoPnQpe3I+dCYmKHI9dCk7dmFyIGk9ZS5sZW5ndGgtcjtlPWUuc3Vic3RyaW5nKDAsdC1yKStcIi4uLlwiK2Uuc3Vic3RyaW5nKGkpfWVsc2UgZS5sZW5ndGg+dCYmKHI9TWF0aC5mbG9vcih0LzIpLGk9ZS5sZW5ndGgtcixlPWUuc3Vic3RyaW5nKDAscit0JTIpK1wiLi4uXCIrZS5zdWJzdHJpbmcoaSkpO3JldHVybiBuJiYoZT1nb29nLnN0cmluZy5odG1sRXNjYXBlKGUpKSxlfSxnb29nLnN0cmluZy5zcGVjaWFsRXNjYXBlQ2hhcnNfPXtcIlxcMFwiOlwiXFxcXDBcIixcIlxcYlwiOlwiXFxcXGJcIixcIlxcZlwiOlwiXFxcXGZcIixcIlxcblwiOlwiXFxcXG5cIixcIlxcclwiOlwiXFxcXHJcIixcIlxcdFwiOlwiXFxcXHRcIixcIlxcdlwiOlwiXFxcXHgwQlwiLCdcIic6J1xcXFxcIicsXCJcXFxcXCI6XCJcXFxcXFxcXFwiLFwiPFwiOlwiXFxcXHUwMDNDXCJ9LGdvb2cuc3RyaW5nLmpzRXNjYXBlQ2FjaGVfPXtcIidcIjpcIlxcXFwnXCJ9LGdvb2cuc3RyaW5nLnF1b3RlPWZ1bmN0aW9uKGUpe2U9U3RyaW5nKGUpO2Zvcih2YXIgdD1bJ1wiJ10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lLmNoYXJBdChuKSxpPXIuY2hhckNvZGVBdCgwKTt0W24rMV09Z29vZy5zdHJpbmcuc3BlY2lhbEVzY2FwZUNoYXJzX1tyXXx8KDMxPGkmJjEyNz5pP3I6Z29vZy5zdHJpbmcuZXNjYXBlQ2hhcihyKSl9cmV0dXJuIHQucHVzaCgnXCInKSx0LmpvaW4oXCJcIil9LGdvb2cuc3RyaW5nLmVzY2FwZVN0cmluZz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXRbbl09Z29vZy5zdHJpbmcuZXNjYXBlQ2hhcihlLmNoYXJBdChuKSk7cmV0dXJuIHQuam9pbihcIlwiKX0sZ29vZy5zdHJpbmcuZXNjYXBlQ2hhcj1mdW5jdGlvbihlKXtpZihlIGluIGdvb2cuc3RyaW5nLmpzRXNjYXBlQ2FjaGVfKXJldHVybiBnb29nLnN0cmluZy5qc0VzY2FwZUNhY2hlX1tlXTtpZihlIGluIGdvb2cuc3RyaW5nLnNwZWNpYWxFc2NhcGVDaGFyc18pcmV0dXJuIGdvb2cuc3RyaW5nLmpzRXNjYXBlQ2FjaGVfW2VdPWdvb2cuc3RyaW5nLnNwZWNpYWxFc2NhcGVDaGFyc19bZV07dmFyIHQ9ZS5jaGFyQ29kZUF0KDApO2lmKDMxPHQmJjEyNz50KXZhciBuPWU7ZWxzZSAyNTY+dD8obj1cIlxcXFx4XCIsKDE2PnR8fDI1Njx0KSYmKG4rPVwiMFwiKSk6KG49XCJcXFxcdVwiLDQwOTY+dCYmKG4rPVwiMFwiKSksbis9dC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gZ29vZy5zdHJpbmcuanNFc2NhcGVDYWNoZV9bZV09bn0sZ29vZy5zdHJpbmcuY29udGFpbnM9Z29vZy5zdHJpbmcuaW50ZXJuYWwuY29udGFpbnMsZ29vZy5zdHJpbmcuY2FzZUluc2Vuc2l0aXZlQ29udGFpbnM9Z29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlQ29udGFpbnMsZ29vZy5zdHJpbmcuY291bnRPZj1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0P2Uuc3BsaXQodCkubGVuZ3RoLTE6MH0sZ29vZy5zdHJpbmcucmVtb3ZlQXQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWU7cmV0dXJuIDA8PXQmJnQ8ZS5sZW5ndGgmJjA8biYmKHI9ZS5zdWJzdHIoMCx0KStlLnN1YnN0cih0K24sZS5sZW5ndGgtdC1uKSkscn0sZ29vZy5zdHJpbmcucmVtb3ZlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucmVwbGFjZSh0LFwiXCIpfSxnb29nLnN0cmluZy5yZW1vdmVBbGw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD1uZXcgUmVnRXhwKGdvb2cuc3RyaW5nLnJlZ0V4cEVzY2FwZSh0KSxcImdcIiksZS5yZXBsYWNlKHQsXCJcIil9LGdvb2cuc3RyaW5nLnJlcGxhY2VBbGw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0PW5ldyBSZWdFeHAoZ29vZy5zdHJpbmcucmVnRXhwRXNjYXBlKHQpLFwiZ1wiKSxlLnJlcGxhY2UodCxuLnJlcGxhY2UoL1xcJC9nLFwiJCQkJFwiKSl9LGdvb2cuc3RyaW5nLnJlZ0V4cEVzY2FwZT1mdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoLyhbLSgpXFxbXFxde30rPyouJFxcXnwsOiM8IVxcXFxdKS9nLFwiXFxcXCQxXCIpLnJlcGxhY2UoL1xceDA4L2csXCJcXFxceDA4XCIpfSxnb29nLnN0cmluZy5yZXBlYXQ9U3RyaW5nLnByb3RvdHlwZS5yZXBlYXQ/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yZXBlYXQodCl9OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEFycmF5KHQrMSkuam9pbihlKX0sZ29vZy5zdHJpbmcucGFkTnVtYmVyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4tMT09KG49KGU9dm9pZCAwIT09bj9lLnRvRml4ZWQobik6U3RyaW5nKGUpKS5pbmRleE9mKFwiLlwiKSkmJihuPWUubGVuZ3RoKSxnb29nLnN0cmluZy5yZXBlYXQoXCIwXCIsTWF0aC5tYXgoMCx0LW4pKStlfSxnb29nLnN0cmluZy5tYWtlU2FmZT1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT9cIlwiOlN0cmluZyhlKX0sZ29vZy5zdHJpbmcuYnVpbGRTdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5qb2luLmNhbGwoYXJndW1lbnRzLFwiXCIpfSxnb29nLnN0cmluZy5nZXRSYW5kb21TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcigyMTQ3NDgzNjQ4Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KStNYXRoLmFicyhNYXRoLmZsb29yKDIxNDc0ODM2NDgqTWF0aC5yYW5kb20oKSleZ29vZy5ub3coKSkudG9TdHJpbmcoMzYpfSxnb29nLnN0cmluZy5jb21wYXJlVmVyc2lvbnM9Z29vZy5zdHJpbmcuaW50ZXJuYWwuY29tcGFyZVZlcnNpb25zLGdvb2cuc3RyaW5nLmhhc2hDb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49MDtuPGUubGVuZ3RoOysrbil0PTMxKnQrZS5jaGFyQ29kZUF0KG4pPj4+MDtyZXR1cm4gdH0sZ29vZy5zdHJpbmcudW5pcXVlU3RyaW5nQ291bnRlcl89MjE0NzQ4MzY0OCpNYXRoLnJhbmRvbSgpfDAsZ29vZy5zdHJpbmcuY3JlYXRlVW5pcXVlU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJnb29nX1wiK2dvb2cuc3RyaW5nLnVuaXF1ZVN0cmluZ0NvdW50ZXJfKyt9LGdvb2cuc3RyaW5nLnRvTnVtYmVyPWZ1bmN0aW9uKGUpe3ZhciB0PU51bWJlcihlKTtyZXR1cm4gMD09dCYmZ29vZy5zdHJpbmcuaXNFbXB0eU9yV2hpdGVzcGFjZShlKT9OYU46dH0sZ29vZy5zdHJpbmcuaXNMb3dlckNhbWVsQ2FzZT1mdW5jdGlvbihlKXtyZXR1cm4vXlthLXpdKyhbQS1aXVthLXpdKikqJC8udGVzdChlKX0sZ29vZy5zdHJpbmcuaXNVcHBlckNhbWVsQ2FzZT1mdW5jdGlvbihlKXtyZXR1cm4vXihbQS1aXVthLXpdKikrJC8udGVzdChlKX0sZ29vZy5zdHJpbmcudG9DYW1lbENhc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKC9cXC0oW2Etel0pL2csKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pKX0sZ29vZy5zdHJpbmcudG9TZWxlY3RvckNhc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKC8oW0EtWl0pL2csXCItJDFcIikudG9Mb3dlckNhc2UoKX0sZ29vZy5zdHJpbmcudG9UaXRsZUNhc2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD1cInN0cmluZ1wiPT09dHlwZW9mIHQ/Z29vZy5zdHJpbmcucmVnRXhwRXNjYXBlKHQpOlwiXFxcXHNcIixlLnJlcGxhY2UobmV3IFJlZ0V4cChcIiheXCIrKHQ/XCJ8W1wiK3QrXCJdK1wiOlwiXCIpK1wiKShbYS16XSlcIixcImdcIiksKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCtuLnRvVXBwZXJDYXNlKCl9KSl9LGdvb2cuc3RyaW5nLmNhcGl0YWxpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlLmNoYXJBdCgwKSkudG9VcHBlckNhc2UoKStTdHJpbmcoZS5zdWJzdHIoMSkpLnRvTG93ZXJDYXNlKCl9LGdvb2cuc3RyaW5nLnBhcnNlSW50PWZ1bmN0aW9uKGUpe3JldHVybiBpc0Zpbml0ZShlKSYmKGU9U3RyaW5nKGUpKSxcInN0cmluZ1wiPT09dHlwZW9mIGU/L15cXHMqLT8weC9pLnRlc3QoZSk/cGFyc2VJbnQoZSwxNik6cGFyc2VJbnQoZSwxMCk6TmFOfSxnb29nLnN0cmluZy5zcGxpdExpbWl0PWZ1bmN0aW9uKGUsdCxuKXtlPWUuc3BsaXQodCk7Zm9yKHZhciByPVtdOzA8biYmZS5sZW5ndGg7KXIucHVzaChlLnNoaWZ0KCkpLG4tLTtyZXR1cm4gZS5sZW5ndGgmJnIucHVzaChlLmpvaW4odCkpLHJ9LGdvb2cuc3RyaW5nLmxhc3RDb21wb25lbnQ9ZnVuY3Rpb24oZSx0KXtpZighdClyZXR1cm4gZTtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9W3RdKTtmb3IodmFyIG49LTEscj0wO3I8dC5sZW5ndGg7cisrKWlmKFwiXCIhPXRbcl0pe3ZhciBpPWUubGFzdEluZGV4T2YodFtyXSk7aT5uJiYobj1pKX1yZXR1cm4tMT09bj9lOmUuc2xpY2UobisxKX0sZ29vZy5zdHJpbmcuZWRpdERpc3RhbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49W10scj1bXTtpZihlPT10KXJldHVybiAwO2lmKCFlLmxlbmd0aHx8IXQubGVuZ3RoKXJldHVybiBNYXRoLm1heChlLmxlbmd0aCx0Lmxlbmd0aCk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aCsxO2krKyluW2ldPWk7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7clswXT1pKzE7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspcltvKzFdPU1hdGgubWluKHJbb10rMSxuW28rMV0rMSxuW29dK051bWJlcihlW2ldIT10W29dKSk7Zm9yKG89MDtvPG4ubGVuZ3RoO28rKyluW29dPXJbb119cmV0dXJuIHJbdC5sZW5ndGhdfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZT17fSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc1ByZXN0bz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJQcmVzdG9cIil9LGdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzVHJpZGVudD1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJUcmlkZW50XCIpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJNU0lFXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0VkZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiRWRnZVwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNXZWJLaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50SWdub3JlQ2FzZShcIldlYktpdFwiKSYmIWdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzRWRnZSgpfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0dlY2tvPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkdlY2tvXCIpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNXZWJLaXQoKSYmIWdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzVHJpZGVudCgpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNFZGdlKCl9LGdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmdldFZlcnNpb249ZnVuY3Rpb24oKXt2YXIgZT1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCk7aWYoZSl7ZT1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZXh0cmFjdFZlcnNpb25UdXBsZXMoZSk7dmFyIHQsbj1nb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5nZXRFbmdpbmVUdXBsZV8oZSk7aWYobilyZXR1cm5cIkdlY2tvXCI9PW5bMF0/Z29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuZ2V0VmVyc2lvbkZvcktleV8oZSxcIkZpcmVmb3hcIik6blsxXTtpZigoZT1lWzBdKSYmKHQ9ZVsyXSkmJih0PS9UcmlkZW50XFwvKFteXFxzO10rKS8uZXhlYyh0KSkpcmV0dXJuIHRbMV19cmV0dXJuXCJcIn0sZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuZ2V0RW5naW5lVHVwbGVfPWZ1bmN0aW9uKGUpe2lmKCFnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0VkZ2UoKSlyZXR1cm4gZVsxXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG49ZVt0XTtpZihcIkVkZ2VcIj09blswXSlyZXR1cm4gbn19LGdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzVmVyc2lvbk9ySGlnaGVyPWZ1bmN0aW9uKGUpe3JldHVybiAwPD1nb29nLnN0cmluZy5jb21wYXJlVmVyc2lvbnMoZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuZ2V0VmVyc2lvbigpLGUpfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5nZXRWZXJzaW9uRm9yS2V5Xz1mdW5jdGlvbihlLHQpe3JldHVybihlPWdvb2cuYXJyYXkuZmluZChlLChmdW5jdGlvbihlKXtyZXR1cm4gdD09ZVswXX0pKSkmJmVbMV18fFwiXCJ9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm09e30sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0FuZHJvaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiQW5kcm9pZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwb2Q9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiaVBvZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwaG9uZT1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUGhvbmVcIikmJiFnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUG9kXCIpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiaVBhZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiaVBhZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lvcz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBob25lKCl8fGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNJcGFkKCl8fGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNJcG9kKCl9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNNYWNpbnRvc2g9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiTWFjaW50b3NoXCIpfSxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzTGludXg9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiTGludXhcIil9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNXaW5kb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIldpbmRvd3NcIil9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNDaHJvbWVPUz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJDck9TXCIpfSxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQ2hyb21lY2FzdD1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJDcktleVwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0thaU9TPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudElnbm9yZUNhc2UoXCJLYWlPU1wiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5nZXRWZXJzaW9uPWZ1bmN0aW9uKCl7dmFyIGU9Z29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLmdldFVzZXJBZ2VudCgpLHQ9XCJcIjtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc1dpbmRvd3MoKT90PShlPSh0PS9XaW5kb3dzICg/Ok5UfFBob25lKSAoWzAtOS5dKykvKS5leGVjKGUpKT9lWzFdOlwiMC4wXCI6Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lvcygpP3Q9KGU9KHQ9Lyg/OmlQaG9uZXxpUG9kfGlQYWR8Q1BVKVxccytPU1xccysoXFxTKykvKS5leGVjKGUpKSYmZVsxXS5yZXBsYWNlKC9fL2csXCIuXCIpOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNNYWNpbnRvc2goKT90PShlPSh0PS9NYWMgT1MgWCAoWzAtOV8uXSspLykuZXhlYyhlKSk/ZVsxXS5yZXBsYWNlKC9fL2csXCIuXCIpOlwiMTBcIjpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzS2FpT1MoKT90PShlPSh0PS8oPzpLYWlPUylcXC8oXFxTKykvaSkuZXhlYyhlKSkmJmVbMV06Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0FuZHJvaWQoKT90PShlPSh0PS9BbmRyb2lkXFxzKyhbXlxcKTtdKykoXFwpfDspLykuZXhlYyhlKSkmJmVbMV06Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0Nocm9tZU9TKCkmJih0PShlPSh0PS8oPzpDck9TXFxzKyg/Omk2ODZ8eDg2XzY0KVxccysoWzAtOS5dKykpLykuZXhlYyhlKSkmJmVbMV0pLHR8fFwiXCJ9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNWZXJzaW9uT3JIaWdoZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIDA8PWdvb2cuc3RyaW5nLmNvbXBhcmVWZXJzaW9ucyhnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmdldFZlcnNpb24oKSxlKX0sZ29vZy5yZWZsZWN0PXt9LGdvb2cucmVmbGVjdC5vYmplY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdH0sZ29vZy5yZWZsZWN0Lm9iamVjdFByb3BlcnR5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV9LGdvb2cucmVmbGVjdC5zaW5rVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cucmVmbGVjdC5zaW5rVmFsdWVbXCIgXCJdKGUpLGV9LGdvb2cucmVmbGVjdC5zaW5rVmFsdWVbXCIgXCJdPWdvb2cubnVsbEZ1bmN0aW9uLGdvb2cucmVmbGVjdC5jYW5BY2Nlc3NQcm9wZXJ0eT1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZ29vZy5yZWZsZWN0LnNpbmtWYWx1ZShlW3RdKSwhMH1jYXRjaChuKXt9cmV0dXJuITF9LGdvb2cucmVmbGVjdC5jYWNoZT1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gcj1yP3IodCk6dCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKT9lW3JdOmVbcl09bih0KX0sZ29vZy51c2VyQWdlbnQ9e30sZ29vZy51c2VyQWdlbnQuQVNTVU1FX0lFPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9FREdFPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9HRUNLTz0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfV0VCS0lUPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9NT0JJTEVfV0VCS0lUPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9PUEVSQT0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfQU5ZX1ZFUlNJT049ITEsZ29vZy51c2VyQWdlbnQuQlJPV1NFUl9LTk9XTl89Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lFfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfRURHRXx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX0dFQ0tPfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfTU9CSUxFX1dFQktJVHx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX1dFQktJVHx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX09QRVJBLGdvb2cudXNlckFnZW50LmdldFVzZXJBZ2VudFN0cmluZz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCl9LGdvb2cudXNlckFnZW50LmdldE5hdmlnYXRvclR5cGVkPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuZ2xvYmFsLm5hdmlnYXRvcnx8bnVsbH0sZ29vZy51c2VyQWdlbnQuZ2V0TmF2aWdhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cudXNlckFnZW50LmdldE5hdmlnYXRvclR5cGVkKCl9LGdvb2cudXNlckFnZW50Lk9QRVJBPWdvb2cudXNlckFnZW50LkJST1dTRVJfS05PV05fP2dvb2cudXNlckFnZW50LkFTU1VNRV9PUEVSQTpnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNPcGVyYSgpLGdvb2cudXNlckFnZW50LklFPWdvb2cudXNlckFnZW50LkJST1dTRVJfS05PV05fP2dvb2cudXNlckFnZW50LkFTU1VNRV9JRTpnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNJRSgpLGdvb2cudXNlckFnZW50LkVER0U9Z29vZy51c2VyQWdlbnQuQlJPV1NFUl9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0VER0U6Z29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNFZGdlKCksZ29vZy51c2VyQWdlbnQuRURHRV9PUl9JRT1nb29nLnVzZXJBZ2VudC5FREdFfHxnb29nLnVzZXJBZ2VudC5JRSxnb29nLnVzZXJBZ2VudC5HRUNLTz1nb29nLnVzZXJBZ2VudC5CUk9XU0VSX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfR0VDS086Z29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNHZWNrbygpLGdvb2cudXNlckFnZW50LldFQktJVD1nb29nLnVzZXJBZ2VudC5CUk9XU0VSX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfV0VCS0lUfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfTU9CSUxFX1dFQktJVDpnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc1dlYktpdCgpLGdvb2cudXNlckFnZW50LmlzTW9iaWxlXz1mdW5jdGlvbigpe3JldHVybiBnb29nLnVzZXJBZ2VudC5XRUJLSVQmJmdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIk1vYmlsZVwiKX0sZ29vZy51c2VyQWdlbnQuTU9CSUxFPWdvb2cudXNlckFnZW50LkFTU1VNRV9NT0JJTEVfV0VCS0lUfHxnb29nLnVzZXJBZ2VudC5pc01vYmlsZV8oKSxnb29nLnVzZXJBZ2VudC5TQUZBUkk9Z29vZy51c2VyQWdlbnQuV0VCS0lULGdvb2cudXNlckFnZW50LmRldGVybWluZVBsYXRmb3JtXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cudXNlckFnZW50LmdldE5hdmlnYXRvclR5cGVkKCk7cmV0dXJuIGUmJmUucGxhdGZvcm18fFwiXCJ9LGdvb2cudXNlckFnZW50LlBMQVRGT1JNPWdvb2cudXNlckFnZW50LmRldGVybWluZVBsYXRmb3JtXygpLGdvb2cudXNlckFnZW50LkFTU1VNRV9NQUM9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX1dJTkRPV1M9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX0xJTlVYPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9YMTE9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX0FORFJPSUQ9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX0lQSE9ORT0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBBRD0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBPRD0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfS0FJT1M9ITEsZ29vZy51c2VyQWdlbnQuUExBVEZPUk1fS05PV05fPWdvb2cudXNlckFnZW50LkFTU1VNRV9NQUN8fGdvb2cudXNlckFnZW50LkFTU1VNRV9XSU5ET1dTfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfTElOVVh8fGdvb2cudXNlckFnZW50LkFTU1VNRV9YMTF8fGdvb2cudXNlckFnZW50LkFTU1VNRV9BTkRST0lEfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBIT05FfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBBRHx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQT0QsZ29vZy51c2VyQWdlbnQuTUFDPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfTUFDOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNNYWNpbnRvc2goKTtnb29nLnVzZXJBZ2VudC5XSU5ET1dTPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfV0lORE9XUzpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzV2luZG93cygpLGdvb2cudXNlckFnZW50LmlzTGVnYWN5TGludXhfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNMaW51eCgpfHxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQ2hyb21lT1MoKX0sZ29vZy51c2VyQWdlbnQuTElOVVg9Z29vZy51c2VyQWdlbnQuUExBVEZPUk1fS05PV05fP2dvb2cudXNlckFnZW50LkFTU1VNRV9MSU5VWDpnb29nLnVzZXJBZ2VudC5pc0xlZ2FjeUxpbnV4XygpLGdvb2cudXNlckFnZW50LmlzWDExXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cudXNlckFnZW50LmdldE5hdmlnYXRvclR5cGVkKCk7cmV0dXJuISFlJiZnb29nLnN0cmluZy5jb250YWlucyhlLmFwcFZlcnNpb258fFwiXCIsXCJYMTFcIil9LGdvb2cudXNlckFnZW50LlgxMT1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX1gxMTpnb29nLnVzZXJBZ2VudC5pc1gxMV8oKSxnb29nLnVzZXJBZ2VudC5BTkRST0lEPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfQU5EUk9JRDpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQW5kcm9pZCgpLGdvb2cudXNlckFnZW50LklQSE9ORT1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQSE9ORTpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBob25lKCksZ29vZy51c2VyQWdlbnQuSVBBRD1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQQUQ6Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwYWQoKSxnb29nLnVzZXJBZ2VudC5JUE9EPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBPRDpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBvZCgpLGdvb2cudXNlckFnZW50LklPUz1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQSE9ORXx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQQUR8fGdvb2cudXNlckFnZW50LkFTU1VNRV9JUE9EOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNJb3MoKSxnb29nLnVzZXJBZ2VudC5LQUlPUz1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0tBSU9TOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNLYWlPUygpLGdvb2cudXNlckFnZW50LmRldGVybWluZVZlcnNpb25fPWZ1bmN0aW9uKCl7dmFyIGU9XCJcIix0PWdvb2cudXNlckFnZW50LmdldFZlcnNpb25SZWdleFJlc3VsdF8oKTtyZXR1cm4gdCYmKGU9dD90WzFdOlwiXCIpLGdvb2cudXNlckFnZW50LklFJiYobnVsbCE9KHQ9Z29vZy51c2VyQWdlbnQuZ2V0RG9jdW1lbnRNb2RlXygpKSYmdD5wYXJzZUZsb2F0KGUpKT9TdHJpbmcodCk6ZX0sZ29vZy51c2VyQWdlbnQuZ2V0VmVyc2lvblJlZ2V4UmVzdWx0Xz1mdW5jdGlvbigpe3ZhciBlPWdvb2cudXNlckFnZW50LmdldFVzZXJBZ2VudFN0cmluZygpO3JldHVybiBnb29nLnVzZXJBZ2VudC5HRUNLTz8vcnY6KFteXFwpO10rKShcXCl8OykvLmV4ZWMoZSk6Z29vZy51c2VyQWdlbnQuRURHRT8vRWRnZVxcLyhbXFxkXFwuXSspLy5leGVjKGUpOmdvb2cudXNlckFnZW50LklFPy9cXGIoPzpNU0lFfHJ2KVs6IF0oW15cXCk7XSspKFxcKXw7KS8uZXhlYyhlKTpnb29nLnVzZXJBZ2VudC5XRUJLSVQ/L1dlYktpdFxcLyhcXFMrKS8uZXhlYyhlKTpnb29nLnVzZXJBZ2VudC5PUEVSQT8vKD86VmVyc2lvbilbIFxcL10/KFxcUyspLy5leGVjKGUpOnZvaWQgMH0sZ29vZy51c2VyQWdlbnQuZ2V0RG9jdW1lbnRNb2RlXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cuZ2xvYmFsLmRvY3VtZW50O3JldHVybiBlP2UuZG9jdW1lbnRNb2RlOnZvaWQgMH0sZ29vZy51c2VyQWdlbnQuVkVSU0lPTj1nb29nLnVzZXJBZ2VudC5kZXRlcm1pbmVWZXJzaW9uXygpLGdvb2cudXNlckFnZW50LmNvbXBhcmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5zdHJpbmcuY29tcGFyZVZlcnNpb25zKGUsdCl9LGdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyQ2FjaGVfPXt9LGdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnVzZXJBZ2VudC5BU1NVTUVfQU5ZX1ZFUlNJT058fGdvb2cucmVmbGVjdC5jYWNoZShnb29nLnVzZXJBZ2VudC5pc1ZlcnNpb25PckhpZ2hlckNhY2hlXyxlLChmdW5jdGlvbigpe3JldHVybiAwPD1nb29nLnN0cmluZy5jb21wYXJlVmVyc2lvbnMoZ29vZy51c2VyQWdlbnQuVkVSU0lPTixlKX0pKX0sZ29vZy51c2VyQWdlbnQuaXNWZXJzaW9uPWdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyLGdvb2cudXNlckFnZW50LmlzRG9jdW1lbnRNb2RlT3JIaWdoZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIE51bWJlcihnb29nLnVzZXJBZ2VudC5ET0NVTUVOVF9NT0RFKT49ZX0sZ29vZy51c2VyQWdlbnQuaXNEb2N1bWVudE1vZGU9Z29vZy51c2VyQWdlbnQuaXNEb2N1bWVudE1vZGVPckhpZ2hlcixnb29nLnVzZXJBZ2VudC5ET0NVTUVOVF9NT0RFPWZ1bmN0aW9uKCl7aWYoZ29vZy5nbG9iYWwuZG9jdW1lbnQmJmdvb2cudXNlckFnZW50LklFKXt2YXIgZT1nb29nLnVzZXJBZ2VudC5nZXREb2N1bWVudE1vZGVfKCk7cmV0dXJuIGV8fChwYXJzZUludChnb29nLnVzZXJBZ2VudC5WRVJTSU9OLDEwKXx8dm9pZCAwKX19KCksZ29vZy51c2VyQWdlbnQucHJvZHVjdD17fSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9GSVJFRk9YPSExLGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0lQSE9ORT0hMSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9JUEFEPSExLGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0FORFJPSUQ9ITEsZ29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfQ0hST01FPSExLGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX1NBRkFSST0hMSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fPWdvb2cudXNlckFnZW50LkFTU1VNRV9JRXx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX0VER0V8fGdvb2cudXNlckFnZW50LkFTU1VNRV9PUEVSQXx8Z29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfRklSRUZPWHx8Z29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfSVBIT05FfHxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9JUEFEfHxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9BTkRST0lEfHxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9DSFJPTUV8fGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX1NBRkFSSSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0Lk9QRVJBPWdvb2cudXNlckFnZW50Lk9QRVJBLGdvb2cudXNlckFnZW50LnByb2R1Y3QuSUU9Z29vZy51c2VyQWdlbnQuSUUsZ29vZy51c2VyQWdlbnQucHJvZHVjdC5FREdFPWdvb2cudXNlckFnZW50LkVER0UsZ29vZy51c2VyQWdlbnQucHJvZHVjdC5GSVJFRk9YPWdvb2cudXNlckFnZW50LnByb2R1Y3QuUFJPRFVDVF9LTk9XTl8/Z29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfRklSRUZPWDpnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNGaXJlZm94KCksZ29vZy51c2VyQWdlbnQucHJvZHVjdC5pc0lwaG9uZU9ySXBvZF89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwaG9uZSgpfHxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBvZCgpfSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LklQSE9ORT1nb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fP2dvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0lQSE9ORTpnb29nLnVzZXJBZ2VudC5wcm9kdWN0LmlzSXBob25lT3JJcG9kXygpLGdvb2cudXNlckFnZW50LnByb2R1Y3QuSVBBRD1nb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fP2dvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0lQQUQ6Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwYWQoKSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFORFJPSUQ9Z29vZy51c2VyQWdlbnQucHJvZHVjdC5QUk9EVUNUX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9BTkRST0lEOmdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0FuZHJvaWRCcm93c2VyKCksZ29vZy51c2VyQWdlbnQucHJvZHVjdC5DSFJPTUU9Z29vZy51c2VyQWdlbnQucHJvZHVjdC5QUk9EVUNUX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9DSFJPTUU6Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzQ2hyb21lKCksZ29vZy51c2VyQWdlbnQucHJvZHVjdC5pc1NhZmFyaURlc2t0b3BfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc1NhZmFyaSgpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lvcygpfSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlNBRkFSST1nb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fP2dvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX1NBRkFSSTpnb29nLnVzZXJBZ2VudC5wcm9kdWN0LmlzU2FmYXJpRGVza3RvcF8oKSxnb29nLmNyeXB0LmJhc2U2ND17fSxnb29nLmNyeXB0LmJhc2U2NC5ERUZBVUxUX0FMUEhBQkVUX0NPTU1PTl89XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiLGdvb2cuY3J5cHQuYmFzZTY0LkVOQ09ERURfVkFMUz1nb29nLmNyeXB0LmJhc2U2NC5ERUZBVUxUX0FMUEhBQkVUX0NPTU1PTl8rXCIrLz1cIixnb29nLmNyeXB0LmJhc2U2NC5FTkNPREVEX1ZBTFNfV0VCU0FGRT1nb29nLmNyeXB0LmJhc2U2NC5ERUZBVUxUX0FMUEhBQkVUX0NPTU1PTl8rXCItXy5cIixnb29nLmNyeXB0LmJhc2U2NC5BbHBoYWJldD17REVGQVVMVDowLE5PX1BBRERJTkc6MSxXRUJTQUZFOjIsV0VCU0FGRV9ET1RfUEFERElORzozLFdFQlNBRkVfTk9fUEFERElORzo0fSxnb29nLmNyeXB0LmJhc2U2NC5wYWRkaW5nQ2hhcnNfPVwiPS5cIixnb29nLmNyeXB0LmJhc2U2NC5pc1BhZGRpbmdfPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnN0cmluZy5jb250YWlucyhnb29nLmNyeXB0LmJhc2U2NC5wYWRkaW5nQ2hhcnNfLGUpfSxnb29nLmNyeXB0LmJhc2U2NC5ieXRlVG9DaGFyTWFwc189e30sZ29vZy5jcnlwdC5iYXNlNjQuY2hhclRvQnl0ZU1hcF89bnVsbCxnb29nLmNyeXB0LmJhc2U2NC5BU1NVTUVfTkFUSVZFX1NVUFBPUlRfPWdvb2cudXNlckFnZW50LkdFQ0tPfHxnb29nLnVzZXJBZ2VudC5XRUJLSVQmJiFnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlNBRkFSSXx8Z29vZy51c2VyQWdlbnQuT1BFUkEsZ29vZy5jcnlwdC5iYXNlNjQuSEFTX05BVElWRV9FTkNPREVfPWdvb2cuY3J5cHQuYmFzZTY0LkFTU1VNRV9OQVRJVkVfU1VQUE9SVF98fFwiZnVuY3Rpb25cIj09dHlwZW9mIGdvb2cuZ2xvYmFsLmJ0b2EsZ29vZy5jcnlwdC5iYXNlNjQuSEFTX05BVElWRV9ERUNPREVfPWdvb2cuY3J5cHQuYmFzZTY0LkFTU1VNRV9OQVRJVkVfU1VQUE9SVF98fCFnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlNBRkFSSSYmIWdvb2cudXNlckFnZW50LklFJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBnb29nLmdsb2JhbC5hdG9iLGdvb2cuY3J5cHQuYmFzZTY0LmVuY29kZUJ5dGVBcnJheT1mdW5jdGlvbihlLHQpe2dvb2cuYXNzZXJ0cy5hc3NlcnQoZ29vZy5pc0FycmF5TGlrZShlKSxcImVuY29kZUJ5dGVBcnJheSB0YWtlcyBhbiBhcnJheSBhcyBhIHBhcmFtZXRlclwiKSx2b2lkIDA9PT10JiYodD1nb29nLmNyeXB0LmJhc2U2NC5BbHBoYWJldC5ERUZBVUxUKSxnb29nLmNyeXB0LmJhc2U2NC5pbml0XygpLHQ9Z29vZy5jcnlwdC5iYXNlNjQuYnl0ZVRvQ2hhck1hcHNfW3RdO2Zvcih2YXIgbj1bXSxyPTA7cjxlLmxlbmd0aDtyKz0zKXt2YXIgaT1lW3JdLG89cisxPGUubGVuZ3RoLGE9bz9lW3IrMV06MCxzPXIrMjxlLmxlbmd0aCxjPXM/ZVtyKzJdOjAsdT1pPj4yO2k9KDMmaSk8PDR8YT4+NCxhPSgxNSZhKTw8MnxjPj42LGMmPTYzLHN8fChjPTY0LG98fChhPTY0KSksbi5wdXNoKHRbdV0sdFtpXSx0W2FdfHxcIlwiLHRbY118fFwiXCIpfXJldHVybiBuLmpvaW4oXCJcIil9LGdvb2cuY3J5cHQuYmFzZTY0LmVuY29kZVN0cmluZz1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmNyeXB0LmJhc2U2NC5IQVNfTkFUSVZFX0VOQ09ERV8mJiF0P2dvb2cuZ2xvYmFsLmJ0b2EoZSk6Z29vZy5jcnlwdC5iYXNlNjQuZW5jb2RlQnl0ZUFycmF5KGdvb2cuY3J5cHQuc3RyaW5nVG9CeXRlQXJyYXkoZSksdCl9LGdvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZz1mdW5jdGlvbihlLHQpe2lmKGdvb2cuY3J5cHQuYmFzZTY0LkhBU19OQVRJVkVfREVDT0RFXyYmIXQpcmV0dXJuIGdvb2cuZ2xvYmFsLmF0b2IoZSk7dmFyIG49XCJcIjtyZXR1cm4gZ29vZy5jcnlwdC5iYXNlNjQuZGVjb2RlU3RyaW5nSW50ZXJuYWxfKGUsKGZ1bmN0aW9uKGUpe24rPVN0cmluZy5mcm9tQ2hhckNvZGUoZSl9KSksbn0sZ29vZy5jcnlwdC5iYXNlNjQuZGVjb2RlU3RyaW5nVG9CeXRlQXJyYXk9ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXTtyZXR1cm4gZ29vZy5jcnlwdC5iYXNlNjQuZGVjb2RlU3RyaW5nSW50ZXJuYWxfKGUsKGZ1bmN0aW9uKGUpe24ucHVzaChlKX0pKSxufSxnb29nLmNyeXB0LmJhc2U2NC5kZWNvZGVTdHJpbmdUb1VpbnQ4QXJyYXk9ZnVuY3Rpb24oZSl7Z29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy51c2VyQWdlbnQuSUV8fGdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyKFwiMTBcIiksXCJCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdHlwZWQgYXJyYXlzXCIpO3ZhciB0PWUubGVuZ3RoLG49Myp0LzQ7biUzP249TWF0aC5mbG9vcihuKTpnb29nLmNyeXB0LmJhc2U2NC5pc1BhZGRpbmdfKGVbdC0xXSkmJihuPWdvb2cuY3J5cHQuYmFzZTY0LmlzUGFkZGluZ18oZVt0LTJdKT9uLTI6bi0xKTt2YXIgcj1uZXcgVWludDhBcnJheShuKSxpPTA7cmV0dXJuIGdvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZ0ludGVybmFsXyhlLChmdW5jdGlvbihlKXtyW2krK109ZX0pKSxyLnN1YmFycmF5KDAsaSl9LGdvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZ0ludGVybmFsXz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4odCl7Zm9yKDtyPGUubGVuZ3RoOyl7dmFyIG49ZS5jaGFyQXQocisrKSxpPWdvb2cuY3J5cHQuYmFzZTY0LmNoYXJUb0J5dGVNYXBfW25dO2lmKG51bGwhPWkpcmV0dXJuIGk7aWYoIWdvb2cuc3RyaW5nLmlzRW1wdHlPcldoaXRlc3BhY2UobikpdGhyb3cgRXJyb3IoXCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiBcIituKX1yZXR1cm4gdH1nb29nLmNyeXB0LmJhc2U2NC5pbml0XygpO2Zvcih2YXIgcj0wOzspe3ZhciBpPW4oLTEpLG89bigwKSxhPW4oNjQpLHM9big2NCk7aWYoNjQ9PT1zJiYtMT09PWkpYnJlYWs7dChpPDwyfG8+PjQpLDY0IT1hJiYodChvPDw0JjI0MHxhPj4yKSw2NCE9cyYmdChhPDw2JjE5MnxzKSl9fSxnb29nLmNyeXB0LmJhc2U2NC5pbml0Xz1mdW5jdGlvbigpe2lmKCFnb29nLmNyeXB0LmJhc2U2NC5jaGFyVG9CeXRlTWFwXyl7Z29vZy5jcnlwdC5iYXNlNjQuY2hhclRvQnl0ZU1hcF89e307Zm9yKHZhciBlPWdvb2cuY3J5cHQuYmFzZTY0LkRFRkFVTFRfQUxQSEFCRVRfQ09NTU9OXy5zcGxpdChcIlwiKSx0PVtcIisvPVwiLFwiKy9cIixcIi1fPVwiLFwiLV8uXCIsXCItX1wiXSxuPTA7NT5uO24rKyl7dmFyIHI9ZS5jb25jYXQodFtuXS5zcGxpdChcIlwiKSk7Z29vZy5jcnlwdC5iYXNlNjQuYnl0ZVRvQ2hhck1hcHNfW25dPXI7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV0sYT1nb29nLmNyeXB0LmJhc2U2NC5jaGFyVG9CeXRlTWFwX1tvXTt2b2lkIDA9PT1hP2dvb2cuY3J5cHQuYmFzZTY0LmNoYXJUb0J5dGVNYXBfW29dPWk6Z29vZy5hc3NlcnRzLmFzc2VydChhPT09aSl9fX19LGpzcGIudXRpbHM9e30sanNwYi51dGlscy5zcGxpdDY0TG93PTAsanNwYi51dGlscy5zcGxpdDY0SGlnaD0wLGpzcGIudXRpbHMuc3BsaXRVaW50NjQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZT4+PjA7ZT1NYXRoLmZsb29yKChlLXQpL2pzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMik+Pj4wLGpzcGIudXRpbHMuc3BsaXQ2NExvdz10LGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9ZX0sanNwYi51dGlscy5zcGxpdEludDY0PWZ1bmN0aW9uKGUpe3ZhciB0PTA+ZSxuPShlPU1hdGguYWJzKGUpKT4+PjA7ZT1NYXRoLmZsb29yKChlLW4pL2pzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksZT4+Pj0wLHQmJihlPX5lPj4+MCw0Mjk0OTY3Mjk1PChuPTErKH5uPj4+MCkpJiYobj0wLDQyOTQ5NjcyOTU8KytlJiYoZT0wKSkpLGpzcGIudXRpbHMuc3BsaXQ2NExvdz1uLGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9ZX0sanNwYi51dGlscy5zcGxpdFppZ3phZzY0PWZ1bmN0aW9uKGUpe3ZhciB0PTA+ZTtlPTIqTWF0aC5hYnMoZSksanNwYi51dGlscy5zcGxpdFVpbnQ2NChlKSxlPWpzcGIudXRpbHMuc3BsaXQ2NExvdzt2YXIgbj1qc3BiLnV0aWxzLnNwbGl0NjRIaWdoO3QmJigwPT1lPzA9PW4/bj1lPTQyOTQ5NjcyOTU6KG4tLSxlPTQyOTQ5NjcyOTUpOmUtLSksanNwYi51dGlscy5zcGxpdDY0TG93PWUsanNwYi51dGlscy5zcGxpdDY0SGlnaD1ufSxqc3BiLnV0aWxzLnNwbGl0RmxvYXQzMj1mdW5jdGlvbihlKXt2YXIgdD0wPmU/MTowO2lmKDA9PT0oZT10Py1lOmUpKTA8MS9lPyhqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PTApOihqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PTIxNDc0ODM2NDgpO2Vsc2UgaWYoaXNOYU4oZSkpanNwYi51dGlscy5zcGxpdDY0SGlnaD0wLGpzcGIudXRpbHMuc3BsaXQ2NExvdz0yMTQ3NDgzNjQ3O2Vsc2UgaWYoZT5qc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDMyX01BWClqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PSh0PDwzMXwyMTM5MDk1MDQwKT4+PjA7ZWxzZSBpZihlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfTUlOKWU9TWF0aC5yb3VuZChlL01hdGgucG93KDIsLTE0OSkpLGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9MCxqc3BiLnV0aWxzLnNwbGl0NjRMb3c9KHQ8PDMxfGUpPj4+MDtlbHNle3ZhciBuPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpO2UqPU1hdGgucG93KDIsLW4pLDE2Nzc3MjE2PD0oZT1NYXRoLnJvdW5kKGUqanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzIzKSkmJisrbixqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PSh0PDwzMXxuKzEyNzw8MjN8ODM4ODYwNyZlKT4+PjB9fSxqc3BiLnV0aWxzLnNwbGl0RmxvYXQ2ND1mdW5jdGlvbihlKXt2YXIgdD0wPmU/MTowO2lmKDA9PT0oZT10Py1lOmUpKWpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9MDwxL2U/MDoyMTQ3NDgzNjQ4LGpzcGIudXRpbHMuc3BsaXQ2NExvdz0wO2Vsc2UgaWYoaXNOYU4oZSkpanNwYi51dGlscy5zcGxpdDY0SGlnaD0yMTQ3NDgzNjQ3LGpzcGIudXRpbHMuc3BsaXQ2NExvdz00Mjk0OTY3Mjk1O2Vsc2UgaWYoZT5qc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDY0X01BWClqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPSh0PDwzMXwyMTQ2NDM1MDcyKT4+PjAsanNwYi51dGlscy5zcGxpdDY0TG93PTA7ZWxzZSBpZihlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfTUlOKXt2YXIgbj1lL01hdGgucG93KDIsLTEwNzQpO2U9bi9qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIsanNwYi51dGlscy5zcGxpdDY0SGlnaD0odDw8MzF8ZSk+Pj4wLGpzcGIudXRpbHMuc3BsaXQ2NExvdz1uPj4+MH1lbHNle3ZhciByPTA7aWYoMjw9KG49ZSkpZm9yKDsyPD1uJiYxMDIzPnI7KXIrKyxuLz0yO2Vsc2UgZm9yKDsxPm4mJi0xMDIyPHI7KW4qPTIsci0tO2U9KG49ZSpNYXRoLnBvdygyLC1yKSkqanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzIwJjEwNDg1NzUsbj1uKmpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT181Mj4+PjAsanNwYi51dGlscy5zcGxpdDY0SGlnaD0odDw8MzF8cisxMDIzPDwyMHxlKT4+PjAsanNwYi51dGlscy5zcGxpdDY0TG93PW59fSxqc3BiLnV0aWxzLnNwbGl0SGFzaDY0PWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hhckNvZGVBdCgwKSxuPWUuY2hhckNvZGVBdCgxKSxyPWUuY2hhckNvZGVBdCgyKSxpPWUuY2hhckNvZGVBdCgzKSxvPWUuY2hhckNvZGVBdCg0KSxhPWUuY2hhckNvZGVBdCg1KSxzPWUuY2hhckNvZGVBdCg2KTtlPWUuY2hhckNvZGVBdCg3KSxqc3BiLnV0aWxzLnNwbGl0NjRMb3c9dCsobjw8OCkrKHI8PDE2KSsoaTw8MjQpPj4+MCxqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPW8rKGE8PDgpKyhzPDwxNikrKGU8PDI0KT4+PjB9LGpzcGIudXRpbHMuam9pblVpbnQ2ND1mdW5jdGlvbihlLHQpe3JldHVybiB0KmpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMisoZT4+PjApfSxqc3BiLnV0aWxzLmpvaW5JbnQ2ND1mdW5jdGlvbihlLHQpe3ZhciBuPTIxNDc0ODM2NDgmdDtyZXR1cm4gbiYmKHQ9fnQ+Pj4wLDA9PShlPTErfmU+Pj4wKSYmKHQ9dCsxPj4+MCkpLGU9anNwYi51dGlscy5qb2luVWludDY0KGUsdCksbj8tZTplfSxqc3BiLnV0aWxzLnRvWmlnemFnNjQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQ+PjMxO3JldHVybiBuKGU8PDFeciwodDw8MXxlPj4+MzEpXnIpfSxqc3BiLnV0aWxzLmpvaW5aaWd6YWc2ND1mdW5jdGlvbihlLHQpe3JldHVybiBqc3BiLnV0aWxzLmZyb21aaWd6YWc2NChlLHQsanNwYi51dGlscy5qb2luSW50NjQpfSxqc3BiLnV0aWxzLmZyb21aaWd6YWc2ND1mdW5jdGlvbihlLHQsbil7dmFyIHI9LSgxJmUpO3JldHVybiBuKChlPj4+MXx0PDwzMSlecix0Pj4+MV5yKX0sanNwYi51dGlscy5qb2luRmxvYXQzMj1mdW5jdGlvbihlLHQpe3Q9MiooZT4+MzEpKzE7dmFyIG49ZT4+PjIzJjI1NTtyZXR1cm4gZSY9ODM4ODYwNywyNTU9PW4/ZT9OYU46MS8wKnQ6MD09bj90Kk1hdGgucG93KDIsLTE0OSkqZTp0Kk1hdGgucG93KDIsbi0xNTApKihlK01hdGgucG93KDIsMjMpKX0sanNwYi51dGlscy5qb2luRmxvYXQ2ND1mdW5jdGlvbihlLHQpe3ZhciBuPTIqKHQ+PjMxKSsxLHI9dD4+PjIwJjIwNDc7cmV0dXJuIGU9anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKigxMDQ4NTc1JnQpK2UsMjA0Nz09cj9lP05hTjoxLzAqbjowPT1yP24qTWF0aC5wb3coMiwtMTA3NCkqZTpuKk1hdGgucG93KDIsci0xMDc1KSooZStqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNTIpfSxqc3BiLnV0aWxzLmpvaW5IYXNoNjQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlPj4+MCYyNTUsZT4+PjgmMjU1LGU+Pj4xNiYyNTUsZT4+PjI0JjI1NSx0Pj4+MCYyNTUsdD4+PjgmMjU1LHQ+Pj4xNiYyNTUsdD4+PjI0JjI1NSl9LGpzcGIudXRpbHMuRElHSVRTPVwiMDEyMzQ1Njc4OWFiY2RlZlwiLnNwbGl0KFwiXCIpLGpzcGIudXRpbHMuWkVST19DSEFSX0NPREVfPTQ4LGpzcGIudXRpbHMuQV9DSEFSX0NPREVfPTk3LGpzcGIudXRpbHMuam9pblVuc2lnbmVkRGVjaW1hbFN0cmluZz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSx0KXtyZXR1cm4gZT1lP1N0cmluZyhlKTpcIlwiLHQ/XCIwMDAwMDAwXCIuc2xpY2UoZS5sZW5ndGgpK2U6ZX1pZigyMDk3MTUxPj10KXJldHVyblwiXCIranNwYi51dGlscy5qb2luVWludDY0KGUsdCk7dmFyIHI9KGU+Pj4yNHx0PDw4KT4+PjAmMTY3NzcyMTU7cmV0dXJuIGU9KDE2Nzc3MjE1JmUpKzY3NzcyMTYqcis2NzEwNjU2Kih0PXQ+PjE2JjY1NTM1KSxyKz04MTQ3NDk3KnQsdCo9MiwxZTc8PWUmJihyKz1NYXRoLmZsb29yKGUvMWU3KSxlJT0xZTcpLDFlNzw9ciYmKHQrPU1hdGguZmxvb3Ioci8xZTcpLHIlPTFlNyksbih0LDApK24ocix0KStuKGUsMSl9LGpzcGIudXRpbHMuam9pblNpZ25lZERlY2ltYWxTdHJpbmc9ZnVuY3Rpb24oZSx0KXt2YXIgbj0yMTQ3NDgzNjQ4JnQ7cmV0dXJuIG4mJih0PX50KygwPT0oZT0xK35lPj4+MCk/MTowKT4+PjApLGU9anNwYi51dGlscy5qb2luVW5zaWduZWREZWNpbWFsU3RyaW5nKGUsdCksbj9cIi1cIitlOmV9LGpzcGIudXRpbHMuaGFzaDY0VG9EZWNpbWFsU3RyaW5nPWZ1bmN0aW9uKGUsdCl7anNwYi51dGlscy5zcGxpdEhhc2g2NChlKSxlPWpzcGIudXRpbHMuc3BsaXQ2NExvdzt2YXIgbj1qc3BiLnV0aWxzLnNwbGl0NjRIaWdoO3JldHVybiB0P2pzcGIudXRpbHMuam9pblNpZ25lZERlY2ltYWxTdHJpbmcoZSxuKTpqc3BiLnV0aWxzLmpvaW5VbnNpZ25lZERlY2ltYWxTdHJpbmcoZSxuKX0sanNwYi51dGlscy5oYXNoNjRBcnJheVRvRGVjaW1hbFN0cmluZ3M9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49QXJyYXkoZS5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoO3IrKyluW3JdPWpzcGIudXRpbHMuaGFzaDY0VG9EZWNpbWFsU3RyaW5nKGVbcl0sdCk7cmV0dXJuIG59LGpzcGIudXRpbHMuZGVjaW1hbFN0cmluZ1RvSGFzaDY0PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0KXtmb3IodmFyIG49MDs4Pm4mJigxIT09ZXx8MDx0KTtuKyspdD1lKnJbbl0rdCxyW25dPTI1NSZ0LHQ+Pj49OH1qc3BiLmFzc2VydHMuYXNzZXJ0KDA8ZS5sZW5ndGgpO3ZhciBuPSExO1wiLVwiPT09ZVswXSYmKG49ITAsZT1lLnNsaWNlKDEpKTtmb3IodmFyIHI9WzAsMCwwLDAsMCwwLDAsMF0saT0wO2k8ZS5sZW5ndGg7aSsrKXQoMTAsZS5jaGFyQ29kZUF0KGkpLWpzcGIudXRpbHMuWkVST19DSEFSX0NPREVfKTtyZXR1cm4gbiYmKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7OD5lO2UrKylyW2VdPTI1NSZ+cltlXX0oKSx0KDEsMSkpLGdvb2cuY3J5cHQuYnl0ZUFycmF5VG9TdHJpbmcocil9LGpzcGIudXRpbHMuc3BsaXREZWNpbWFsU3RyaW5nPWZ1bmN0aW9uKGUpe2pzcGIudXRpbHMuc3BsaXRIYXNoNjQoanNwYi51dGlscy5kZWNpbWFsU3RyaW5nVG9IYXNoNjQoZSkpfSxqc3BiLnV0aWxzLnRvSGV4RGlnaXRfPWZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDEwPmU/anNwYi51dGlscy5aRVJPX0NIQVJfQ09ERV8rZTpqc3BiLnV0aWxzLkFfQ0hBUl9DT0RFXy0xMCtlKX0sanNwYi51dGlscy5mcm9tSGV4Q2hhckNvZGVfPWZ1bmN0aW9uKGUpe3JldHVybiBlPj1qc3BiLnV0aWxzLkFfQ0hBUl9DT0RFXz9lLWpzcGIudXRpbHMuQV9DSEFSX0NPREVfKzEwOmUtanNwYi51dGlscy5aRVJPX0NIQVJfQ09ERV99LGpzcGIudXRpbHMuaGFzaDY0VG9IZXhTdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9QXJyYXkoMTgpO3RbMF09XCIwXCIsdFsxXT1cInhcIjtmb3IodmFyIG49MDs4Pm47bisrKXt2YXIgcj1lLmNoYXJDb2RlQXQoNy1uKTt0WzIqbisyXT1qc3BiLnV0aWxzLnRvSGV4RGlnaXRfKHI+PjQpLHRbMipuKzNdPWpzcGIudXRpbHMudG9IZXhEaWdpdF8oMTUmcil9cmV0dXJuIHQuam9pbihcIlwiKX0sanNwYi51dGlscy5oZXhTdHJpbmdUb0hhc2g2ND1mdW5jdGlvbihlKXtlPWUudG9Mb3dlckNhc2UoKSxqc3BiLmFzc2VydHMuYXNzZXJ0KDE4PT1lLmxlbmd0aCksanNwYi5hc3NlcnRzLmFzc2VydChcIjBcIj09ZVswXSksanNwYi5hc3NlcnRzLmFzc2VydChcInhcIj09ZVsxXSk7Zm9yKHZhciB0PVwiXCIsbj0wOzg+bjtuKyspe3ZhciByPWpzcGIudXRpbHMuZnJvbUhleENoYXJDb2RlXyhlLmNoYXJDb2RlQXQoMipuKzIpKSxpPWpzcGIudXRpbHMuZnJvbUhleENoYXJDb2RlXyhlLmNoYXJDb2RlQXQoMipuKzMpKTt0PVN0cmluZy5mcm9tQ2hhckNvZGUoMTYqcitpKSt0fXJldHVybiB0fSxqc3BiLnV0aWxzLmhhc2g2NFRvTnVtYmVyPWZ1bmN0aW9uKGUsdCl7anNwYi51dGlscy5zcGxpdEhhc2g2NChlKSxlPWpzcGIudXRpbHMuc3BsaXQ2NExvdzt2YXIgbj1qc3BiLnV0aWxzLnNwbGl0NjRIaWdoO3JldHVybiB0P2pzcGIudXRpbHMuam9pbkludDY0KGUsbik6anNwYi51dGlscy5qb2luVWludDY0KGUsbil9LGpzcGIudXRpbHMubnVtYmVyVG9IYXNoNjQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGpzcGIudXRpbHMuc3BsaXRJbnQ2NChlKSxqc3BiLnV0aWxzLmpvaW5IYXNoNjQoanNwYi51dGlscy5zcGxpdDY0TG93LGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2gpfSxqc3BiLnV0aWxzLmNvdW50VmFyaW50cz1mdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT10O2k8bjtpKyspcis9ZVtpXT4+NztyZXR1cm4gbi10LXJ9LGpzcGIudXRpbHMuY291bnRWYXJpbnRGaWVsZHM9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9MDtpZigxMjg+KHI9OCpyK2pzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCkpZm9yKDt0PG4mJmVbdCsrXT09cjspZm9yKGkrKzs7KXt2YXIgbz1lW3QrK107aWYoMD09KDEyOCZvKSlicmVha31lbHNlIGZvcig7dDxuOyl7Zm9yKG89cjsxMjg8bzspe2lmKGVbdF0hPSgxMjcmb3wxMjgpKXJldHVybiBpO3QrKyxvPj49N31pZihlW3QrK10hPW8pYnJlYWs7Zm9yKGkrKzswIT0oMTI4JihvPWVbdCsrXSkpOyk7fXJldHVybiBpfSxqc3BiLnV0aWxzLmNvdW50Rml4ZWRGaWVsZHNfPWZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG89MDtpZigxMjg+cilmb3IoO3Q8biYmZVt0KytdPT1yOylvKyssdCs9aTtlbHNlIGZvcig7dDxuOyl7Zm9yKHZhciBhPXI7MTI4PGE7KXtpZihlW3QrK10hPSgxMjcmYXwxMjgpKXJldHVybiBvO2E+Pj03fWlmKGVbdCsrXSE9YSlicmVhaztvKyssdCs9aX1yZXR1cm4gb30sanNwYi51dGlscy5jb3VudEZpeGVkMzJGaWVsZHM9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGpzcGIudXRpbHMuY291bnRGaXhlZEZpZWxkc18oZSx0LG4sOCpyK2pzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIsNCl9LGpzcGIudXRpbHMuY291bnRGaXhlZDY0RmllbGRzPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBqc3BiLnV0aWxzLmNvdW50Rml4ZWRGaWVsZHNfKGUsdCxuLDgqcitqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0LDgpfSxqc3BiLnV0aWxzLmNvdW50RGVsaW1pdGVkRmllbGRzPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPTA7Zm9yKHI9OCpyK2pzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRDt0PG47KXtmb3IodmFyIG89cjsxMjg8bzspe2lmKGVbdCsrXSE9KDEyNyZvfDEyOCkpcmV0dXJuIGk7bz4+PTd9aWYoZVt0KytdIT1vKWJyZWFrO2krKztmb3IodmFyIGE9MCxzPTE7YSs9KDEyNyYobz1lW3QrK10pKSpzLHMqPTEyOCwwIT0oMTI4Jm8pOyk7dCs9YX1yZXR1cm4gaX0sanNwYi51dGlscy5kZWJ1Z0J5dGVzVG9UZXh0Rm9ybWF0PWZ1bmN0aW9uKGUpe3ZhciB0PSdcIic7aWYoZSl7ZT1qc3BiLnV0aWxzLmJ5dGVTb3VyY2VUb1VpbnQ4QXJyYXkoZSk7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspdCs9XCJcXFxceFwiLDE2PmVbbl0mJih0Kz1cIjBcIiksdCs9ZVtuXS50b1N0cmluZygxNil9cmV0dXJuIHQrJ1wiJ30sanNwYi51dGlscy5kZWJ1Z1NjYWxhclRvVGV4dEZvcm1hdD1mdW5jdGlvbihlKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGU/Z29vZy5zdHJpbmcucXVvdGUoZSk6ZS50b1N0cmluZygpfSxqc3BiLnV0aWxzLnN0cmluZ1RvQnl0ZUFycmF5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lLmNoYXJDb2RlQXQobik7aWYoMjU1PHIpdGhyb3cgRXJyb3IoXCJDb252ZXJzaW9uIGVycm9yOiBzdHJpbmcgY29udGFpbnMgY29kZXBvaW50IG91dHNpZGUgb2YgYnl0ZSByYW5nZVwiKTt0W25dPXJ9cmV0dXJuIHR9LGpzcGIudXRpbHMuYnl0ZVNvdXJjZVRvVWludDhBcnJheT1mdW5jdGlvbihlKXtyZXR1cm4gZS5jb25zdHJ1Y3Rvcj09PVVpbnQ4QXJyYXk/ZTplLmNvbnN0cnVjdG9yPT09QXJyYXlCdWZmZXJ8fGUuY29uc3RydWN0b3I9PT1BcnJheT9uZXcgVWludDhBcnJheShlKTplLmNvbnN0cnVjdG9yPT09U3RyaW5nP2dvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZ1RvVWludDhBcnJheShlKTplIGluc3RhbmNlb2YgVWludDhBcnJheT9uZXcgVWludDhBcnJheShlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKTooanNwYi5hc3NlcnRzLmZhaWwoXCJUeXBlIG5vdCBjb252ZXJ0aWJsZSB0byBVaW50OEFycmF5LlwiKSxuZXcgVWludDhBcnJheSgwKSl9LGpzcGIuQmluYXJ5RGVjb2Rlcj1mdW5jdGlvbihlLHQsbil7dGhpcy5ieXRlc189bnVsbCx0aGlzLmN1cnNvcl89dGhpcy5lbmRfPXRoaXMuc3RhcnRfPTAsdGhpcy5lcnJvcl89ITEsZSYmdGhpcy5zZXRCbG9jayhlLHQsbil9LGpzcGIuQmluYXJ5RGVjb2Rlci5pbnN0YW5jZUNhY2hlXz1bXSxqc3BiLkJpbmFyeURlY29kZXIuYWxsb2M9ZnVuY3Rpb24oZSx0LG4pe2lmKGpzcGIuQmluYXJ5RGVjb2Rlci5pbnN0YW5jZUNhY2hlXy5sZW5ndGgpe3ZhciByPWpzcGIuQmluYXJ5RGVjb2Rlci5pbnN0YW5jZUNhY2hlXy5wb3AoKTtyZXR1cm4gZSYmci5zZXRCbG9jayhlLHQsbikscn1yZXR1cm4gbmV3IGpzcGIuQmluYXJ5RGVjb2RlcihlLHQsbil9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuZnJlZT1mdW5jdGlvbigpe3RoaXMuY2xlYXIoKSwxMDA+anNwYi5CaW5hcnlEZWNvZGVyLmluc3RhbmNlQ2FjaGVfLmxlbmd0aCYmanNwYi5CaW5hcnlEZWNvZGVyLmluc3RhbmNlQ2FjaGVfLnB1c2godGhpcyl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5CaW5hcnlEZWNvZGVyLmFsbG9jKHRoaXMuYnl0ZXNfLHRoaXMuc3RhcnRfLHRoaXMuZW5kXy10aGlzLnN0YXJ0Xyl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmJ5dGVzXz1udWxsLHRoaXMuY3Vyc29yXz10aGlzLmVuZF89dGhpcy5zdGFydF89MCx0aGlzLmVycm9yXz0hMX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ieXRlc199LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuc2V0QmxvY2s9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuYnl0ZXNfPWpzcGIudXRpbHMuYnl0ZVNvdXJjZVRvVWludDhBcnJheShlKSx0aGlzLnN0YXJ0Xz12b2lkIDAhPT10P3Q6MCx0aGlzLmVuZF89dm9pZCAwIT09bj90aGlzLnN0YXJ0XytuOnRoaXMuYnl0ZXNfLmxlbmd0aCx0aGlzLmN1cnNvcl89dGhpcy5zdGFydF99LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuZ2V0RW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kX30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5zZXRFbmQ9ZnVuY3Rpb24oZSl7dGhpcy5lbmRfPWV9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmN1cnNvcl89dGhpcy5zdGFydF99LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuZ2V0Q3Vyc29yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3Vyc29yX30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5zZXRDdXJzb3I9ZnVuY3Rpb24oZSl7dGhpcy5jdXJzb3JfPWV9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuYWR2YW5jZT1mdW5jdGlvbihlKXt0aGlzLmN1cnNvcl8rPWUsanNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuYXRFbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJzb3JfPT10aGlzLmVuZF99LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucGFzdEVuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnNvcl8+dGhpcy5lbmRffSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLmdldEVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3JffHwwPnRoaXMuY3Vyc29yX3x8dGhpcy5jdXJzb3JfPnRoaXMuZW5kX30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkU3BsaXRWYXJpbnQ2ND1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTI4LG49MCxyPTAsaT0wOzQ+aSYmMTI4PD10O2krKylufD0oMTI3Jih0PXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysrXSkpPDw3Kmk7aWYoMTI4PD10JiYobnw9KDEyNyYodD10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rK10pKTw8Mjgscnw9KDEyNyZ0KT4+NCksMTI4PD10KWZvcihpPTA7NT5pJiYxMjg8PXQ7aSsrKXJ8PSgxMjcmKHQ9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKytdKSk8PDcqaSszO2lmKDEyOD50KXJldHVybiBlKG4+Pj4wLHI+Pj4wKTtqc3BiLmFzc2VydHMuZmFpbChcIkZhaWxlZCB0byByZWFkIHZhcmludCwgZW5jb2RpbmcgaXMgaW52YWxpZC5cIiksdGhpcy5lcnJvcl89ITB9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFNwbGl0WmlnemFnVmFyaW50NjQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucmVhZFNwbGl0VmFyaW50NjQoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGpzcGIudXRpbHMuZnJvbVppZ3phZzY0KHQsbixlKX0pKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkU3BsaXRGaXhlZDY0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYnl0ZXNfLG49dGhpcy5jdXJzb3JfO3RoaXMuY3Vyc29yXys9ODtmb3IodmFyIHI9MCxpPTAsbz1uKzc7bz49bjtvLS0pcj1yPDw4fHRbb10saT1pPDw4fHRbbys0XTtyZXR1cm4gZShyLGkpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnNraXBWYXJpbnQ9ZnVuY3Rpb24oKXtmb3IoOzEyOCZ0aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl9dOyl0aGlzLmN1cnNvcl8rKzt0aGlzLmN1cnNvcl8rK30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS51bnNraXBWYXJpbnQ9ZnVuY3Rpb24oZSl7Zm9yKDsxMjg8ZTspdGhpcy5jdXJzb3JfLS0sZT4+Pj03O3RoaXMuY3Vyc29yXy0tfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRVbnNpZ25lZFZhcmludDMyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ieXRlc18sdD1lW3RoaXMuY3Vyc29yXyswXSxuPTEyNyZ0O3JldHVybiAxMjg+dD8odGhpcy5jdXJzb3JfKz0xLGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLG4pOihufD0oMTI3Jih0PWVbdGhpcy5jdXJzb3JfKzFdKSk8PDcsMTI4PnQ/KHRoaXMuY3Vyc29yXys9Mixqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMuY3Vyc29yXzw9dGhpcy5lbmRfKSxuKToobnw9KDEyNyYodD1lW3RoaXMuY3Vyc29yXysyXSkpPDwxNCwxMjg+dD8odGhpcy5jdXJzb3JfKz0zLGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLG4pOihufD0oMTI3Jih0PWVbdGhpcy5jdXJzb3JfKzNdKSk8PDIxLDEyOD50Pyh0aGlzLmN1cnNvcl8rPTQsanNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksbik6KG58PSgxNSYodD1lW3RoaXMuY3Vyc29yXys0XSkpPDwyOCwxMjg+dD8odGhpcy5jdXJzb3JfKz01LGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLG4+Pj4wKToodGhpcy5jdXJzb3JfKz01LDEyODw9ZVt0aGlzLmN1cnNvcl8rK10mJjEyODw9ZVt0aGlzLmN1cnNvcl8rK10mJjEyODw9ZVt0aGlzLmN1cnNvcl8rK10mJjEyODw9ZVt0aGlzLmN1cnNvcl8rK10mJjEyODw9ZVt0aGlzLmN1cnNvcl8rK10mJmpzcGIuYXNzZXJ0cy5hc3NlcnQoITEpLGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLG4pKSkpKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkU2lnbmVkVmFyaW50MzI9ZnVuY3Rpb24oKXtyZXR1cm5+fnRoaXMucmVhZFVuc2lnbmVkVmFyaW50MzIoKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkVW5zaWduZWRWYXJpbnQzMlN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRVbnNpZ25lZFZhcmludDMyKCkudG9TdHJpbmcoKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkU2lnbmVkVmFyaW50MzJTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkU2lnbmVkVmFyaW50MzIoKS50b1N0cmluZygpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRaaWd6YWdWYXJpbnQzMj1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVuc2lnbmVkVmFyaW50MzIoKTtyZXR1cm4gZT4+PjFeLSgxJmUpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRVbnNpZ25lZFZhcmludDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFNwbGl0VmFyaW50NjQoanNwYi51dGlscy5qb2luVWludDY0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkVW5zaWduZWRWYXJpbnQ2NFN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTcGxpdFZhcmludDY0KGpzcGIudXRpbHMuam9pblVuc2lnbmVkRGVjaW1hbFN0cmluZyl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFNpZ25lZFZhcmludDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFNwbGl0VmFyaW50NjQoanNwYi51dGlscy5qb2luSW50NjQpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRTaWduZWRWYXJpbnQ2NFN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTcGxpdFZhcmludDY0KGpzcGIudXRpbHMuam9pblNpZ25lZERlY2ltYWxTdHJpbmcpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRaaWd6YWdWYXJpbnQ2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTcGxpdFZhcmludDY0KGpzcGIudXRpbHMuam9pblppZ3phZzY0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkWmlnemFnVmFyaW50SGFzaDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFNwbGl0WmlnemFnVmFyaW50NjQoanNwYi51dGlscy5qb2luSGFzaDY0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkWmlnemFnVmFyaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkU3BsaXRaaWd6YWdWYXJpbnQ2NChqc3BiLnV0aWxzLmpvaW5TaWduZWREZWNpbWFsU3RyaW5nKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkVWludDg9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMF07cmV0dXJuIHRoaXMuY3Vyc29yXys9MSxqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMuY3Vyc29yXzw9dGhpcy5lbmRfKSxlfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRVaW50MTY9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMF0sdD10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMV07cmV0dXJuIHRoaXMuY3Vyc29yXys9Mixqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMuY3Vyc29yXzw9dGhpcy5lbmRfKSxlPDwwfHQ8PDh9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFVpbnQzMj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXyswXSx0PXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysxXSxuPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysyXSxyPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXyszXTtyZXR1cm4gdGhpcy5jdXJzb3JfKz00LGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLChlPDwwfHQ8PDh8bjw8MTZ8cjw8MjQpPj4+MH0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkVWludDY0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5yZWFkVWludDMyKCksdD10aGlzLnJlYWRVaW50MzIoKTtyZXR1cm4ganNwYi51dGlscy5qb2luVWludDY0KGUsdCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFVpbnQ2NFN0cmluZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVpbnQzMigpLHQ9dGhpcy5yZWFkVWludDMyKCk7cmV0dXJuIGpzcGIudXRpbHMuam9pblVuc2lnbmVkRGVjaW1hbFN0cmluZyhlLHQpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzBdO3JldHVybiB0aGlzLmN1cnNvcl8rPTEsanNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksZTw8MjQ+PjI0fSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRJbnQxNj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXyswXSx0PXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysxXTtyZXR1cm4gdGhpcy5jdXJzb3JfKz0yLGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLChlPDwwfHQ8PDgpPDwxNj4+MTZ9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZEludDMyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzBdLHQ9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzFdLG49dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzJdLHI9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzNdO3JldHVybiB0aGlzLmN1cnNvcl8rPTQsanNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksZTw8MHx0PDw4fG48PDE2fHI8PDI0fSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRJbnQ2ND1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVpbnQzMigpLHQ9dGhpcy5yZWFkVWludDMyKCk7cmV0dXJuIGpzcGIudXRpbHMuam9pbkludDY0KGUsdCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZEludDY0U3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5yZWFkVWludDMyKCksdD10aGlzLnJlYWRVaW50MzIoKTtyZXR1cm4ganNwYi51dGlscy5qb2luU2lnbmVkRGVjaW1hbFN0cmluZyhlLHQpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRGbG9hdD1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVpbnQzMigpO3JldHVybiBqc3BiLnV0aWxzLmpvaW5GbG9hdDMyKGUsMCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZERvdWJsZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVpbnQzMigpLHQ9dGhpcy5yZWFkVWludDMyKCk7cmV0dXJuIGpzcGIudXRpbHMuam9pbkZsb2F0NjQoZSx0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkQm9vbD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKytdfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRFbnVtPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFNpZ25lZFZhcmludDMyKCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFN0cmluZz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmJ5dGVzXyxuPXRoaXMuY3Vyc29yXztlPW4rZTtmb3IodmFyIHI9W10saT1cIlwiO248ZTspe3ZhciBvPXRbbisrXTtpZigxMjg+bylyLnB1c2gobyk7ZWxzZXtpZigxOTI+byljb250aW51ZTtpZigyMjQ+byl7dmFyIGE9dFtuKytdO3IucHVzaCgoMzEmbyk8PDZ8NjMmYSl9ZWxzZSBpZigyNDA+byl7YT10W24rK107dmFyIHM9dFtuKytdO3IucHVzaCgoMTUmbyk8PDEyfCg2MyZhKTw8Nnw2MyZzKX1lbHNlIGlmKDI0OD5vKXtvPSg3Jm8pPDwxOHwoNjMmKGE9dFtuKytdKSk8PDEyfCg2MyYocz10W24rK10pKTw8Nnw2MyZ0W24rK10sby09NjU1MzYsci5wdXNoKDU1Mjk2KyhvPj4xMCYxMDIzKSw1NjMyMCsoMTAyMyZvKSl9fTgxOTI8PXIubGVuZ3RoJiYoaSs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHIpLHIubGVuZ3RoPTApfXJldHVybiBpKz1nb29nLmNyeXB0LmJ5dGVBcnJheVRvU3RyaW5nKHIpLHRoaXMuY3Vyc29yXz1uLGl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFN0cmluZ1dpdGhMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJlYWRVbnNpZ25lZFZhcmludDMyKCk7cmV0dXJuIHRoaXMucmVhZFN0cmluZyhlKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkQnl0ZXM9ZnVuY3Rpb24oZSl7aWYoMD5lfHx0aGlzLmN1cnNvcl8rZT50aGlzLmJ5dGVzXy5sZW5ndGgpcmV0dXJuIHRoaXMuZXJyb3JfPSEwLGpzcGIuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCBieXRlIGxlbmd0aCFcIiksbmV3IFVpbnQ4QXJyYXkoMCk7dmFyIHQ9dGhpcy5ieXRlc18uc3ViYXJyYXkodGhpcy5jdXJzb3JfLHRoaXMuY3Vyc29yXytlKTtyZXR1cm4gdGhpcy5jdXJzb3JfKz1lLGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLHR9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFZhcmludEhhc2g2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTcGxpdFZhcmludDY0KGpzcGIudXRpbHMuam9pbkhhc2g2NCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZEZpeGVkSGFzaDY0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ieXRlc18sdD10aGlzLmN1cnNvcl8sbj1lW3QrMF0scj1lW3QrMV0saT1lW3QrMl0sbz1lW3QrM10sYT1lW3QrNF0scz1lW3QrNV0sYz1lW3QrNl07cmV0dXJuIGU9ZVt0KzddLHRoaXMuY3Vyc29yXys9OCxTdHJpbmcuZnJvbUNoYXJDb2RlKG4scixpLG8sYSxzLGMsZSl9LGpzcGIuQmluYXJ5UmVhZGVyPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLmRlY29kZXJfPWpzcGIuQmluYXJ5RGVjb2Rlci5hbGxvYyhlLHQsbiksdGhpcy5maWVsZEN1cnNvcl89dGhpcy5kZWNvZGVyXy5nZXRDdXJzb3IoKSx0aGlzLm5leHRGaWVsZF89anNwYi5CaW5hcnlDb25zdGFudHMuSU5WQUxJRF9GSUVMRF9OVU1CRVIsdGhpcy5uZXh0V2lyZVR5cGVfPWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLklOVkFMSUQsdGhpcy5lcnJvcl89ITEsdGhpcy5yZWFkQ2FsbGJhY2tzXz1udWxsfSxqc3BiLkJpbmFyeVJlYWRlci5pbnN0YW5jZUNhY2hlXz1bXSxqc3BiLkJpbmFyeVJlYWRlci5hbGxvYz1mdW5jdGlvbihlLHQsbil7aWYoanNwYi5CaW5hcnlSZWFkZXIuaW5zdGFuY2VDYWNoZV8ubGVuZ3RoKXt2YXIgcj1qc3BiLkJpbmFyeVJlYWRlci5pbnN0YW5jZUNhY2hlXy5wb3AoKTtyZXR1cm4gZSYmci5kZWNvZGVyXy5zZXRCbG9jayhlLHQsbikscn1yZXR1cm4gbmV3IGpzcGIuQmluYXJ5UmVhZGVyKGUsdCxuKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmFsbG9jPWpzcGIuQmluYXJ5UmVhZGVyLmFsbG9jLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5mcmVlPWZ1bmN0aW9uKCl7dGhpcy5kZWNvZGVyXy5jbGVhcigpLHRoaXMubmV4dEZpZWxkXz1qc3BiLkJpbmFyeUNvbnN0YW50cy5JTlZBTElEX0ZJRUxEX05VTUJFUix0aGlzLm5leHRXaXJlVHlwZV89anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuSU5WQUxJRCx0aGlzLmVycm9yXz0hMSx0aGlzLnJlYWRDYWxsYmFja3NfPW51bGwsMTAwPmpzcGIuQmluYXJ5UmVhZGVyLmluc3RhbmNlQ2FjaGVfLmxlbmd0aCYmanNwYi5CaW5hcnlSZWFkZXIuaW5zdGFuY2VDYWNoZV8ucHVzaCh0aGlzKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmdldEZpZWxkQ3Vyc29yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmllbGRDdXJzb3JffSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuZ2V0Q3Vyc29yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVjb2Rlcl8uZ2V0Q3Vyc29yKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWNvZGVyXy5nZXRCdWZmZXIoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmdldEZpZWxkTnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV4dEZpZWxkX30sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJnZXRGaWVsZE51bWJlclwiLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5nZXRGaWVsZE51bWJlciksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmdldFdpcmVUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV4dFdpcmVUeXBlX30sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmlzRGVsaW1pdGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcImlzRGVsaW1pdGVkXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmlzRGVsaW1pdGVkKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuaXNFbmRHcm91cD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkVORF9HUk9VUH0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJpc0VuZEdyb3VwXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmlzRW5kR3JvdXApLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5nZXRFcnJvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVycm9yX3x8dGhpcy5kZWNvZGVyXy5nZXRFcnJvcigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuc2V0QmxvY2s9ZnVuY3Rpb24oZSx0LG4pe3RoaXMuZGVjb2Rlcl8uc2V0QmxvY2soZSx0LG4pLHRoaXMubmV4dEZpZWxkXz1qc3BiLkJpbmFyeUNvbnN0YW50cy5JTlZBTElEX0ZJRUxEX05VTUJFUix0aGlzLm5leHRXaXJlVHlwZV89anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuSU5WQUxJRH0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5kZWNvZGVyXy5yZXNldCgpLHRoaXMubmV4dEZpZWxkXz1qc3BiLkJpbmFyeUNvbnN0YW50cy5JTlZBTElEX0ZJRUxEX05VTUJFUix0aGlzLm5leHRXaXJlVHlwZV89anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuSU5WQUxJRH0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmFkdmFuY2U9ZnVuY3Rpb24oZSl7dGhpcy5kZWNvZGVyXy5hZHZhbmNlKGUpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUubmV4dEZpZWxkPWZ1bmN0aW9uKCl7aWYodGhpcy5kZWNvZGVyXy5hdEVuZCgpKXJldHVybiExO2lmKHRoaXMuZ2V0RXJyb3IoKSlyZXR1cm4ganNwYi5hc3NlcnRzLmZhaWwoXCJEZWNvZGVyIGhpdCBhbiBlcnJvclwiKSwhMTt0aGlzLmZpZWxkQ3Vyc29yXz10aGlzLmRlY29kZXJfLmdldEN1cnNvcigpO3ZhciBlPXRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50MzIoKSx0PWU+Pj4zO3JldHVybihlJj03KSE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UJiZlIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDMyJiZlIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0JiZlIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQmJmUhPWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlNUQVJUX0dST1VQJiZlIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5FTkRfR1JPVVA/KGpzcGIuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCB3aXJlIHR5cGU6ICVzIChhdCBwb3NpdGlvbiAlcylcIixlLHRoaXMuZmllbGRDdXJzb3JfKSx0aGlzLmVycm9yXz0hMCwhMSk6KHRoaXMubmV4dEZpZWxkXz10LHRoaXMubmV4dFdpcmVUeXBlXz1lLCEwKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJuZXh0RmllbGRcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUubmV4dEZpZWxkKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUudW5za2lwSGVhZGVyPWZ1bmN0aW9uKCl7dGhpcy5kZWNvZGVyXy51bnNraXBWYXJpbnQodGhpcy5uZXh0RmllbGRfPDwzfHRoaXMubmV4dFdpcmVUeXBlXyl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5za2lwTWF0Y2hpbmdGaWVsZHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm5leHRGaWVsZF87Zm9yKHRoaXMudW5za2lwSGVhZGVyKCk7dGhpcy5uZXh0RmllbGQoKSYmdGhpcy5nZXRGaWVsZE51bWJlcigpPT1lOyl0aGlzLnNraXBGaWVsZCgpO3RoaXMuZGVjb2Rlcl8uYXRFbmQoKXx8dGhpcy51bnNraXBIZWFkZXIoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnNraXBWYXJpbnRGaWVsZD1mdW5jdGlvbigpe3RoaXMubmV4dFdpcmVUeXBlXyE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UPyhqc3BiLmFzc2VydHMuZmFpbChcIkludmFsaWQgd2lyZSB0eXBlIGZvciBza2lwVmFyaW50RmllbGRcIiksdGhpcy5za2lwRmllbGQoKSk6dGhpcy5kZWNvZGVyXy5za2lwVmFyaW50KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5za2lwRGVsaW1pdGVkRmllbGQ9ZnVuY3Rpb24oKXtpZih0aGlzLm5leHRXaXJlVHlwZV8hPWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRClqc3BiLmFzc2VydHMuZmFpbChcIkludmFsaWQgd2lyZSB0eXBlIGZvciBza2lwRGVsaW1pdGVkRmllbGRcIiksdGhpcy5za2lwRmllbGQoKTtlbHNle3ZhciBlPXRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50MzIoKTt0aGlzLmRlY29kZXJfLmFkdmFuY2UoZSl9fSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuc2tpcEZpeGVkMzJGaWVsZD1mdW5jdGlvbigpe3RoaXMubmV4dFdpcmVUeXBlXyE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQzMj8oanNwYi5hc3NlcnRzLmZhaWwoXCJJbnZhbGlkIHdpcmUgdHlwZSBmb3Igc2tpcEZpeGVkMzJGaWVsZFwiKSx0aGlzLnNraXBGaWVsZCgpKTp0aGlzLmRlY29kZXJfLmFkdmFuY2UoNCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5za2lwRml4ZWQ2NEZpZWxkPWZ1bmN0aW9uKCl7dGhpcy5uZXh0V2lyZVR5cGVfIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0Pyhqc3BiLmFzc2VydHMuZmFpbChcIkludmFsaWQgd2lyZSB0eXBlIGZvciBza2lwRml4ZWQ2NEZpZWxkXCIpLHRoaXMuc2tpcEZpZWxkKCkpOnRoaXMuZGVjb2Rlcl8uYWR2YW5jZSg4KX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnNraXBHcm91cD1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLm5leHRGaWVsZF87Oyl7aWYoIXRoaXMubmV4dEZpZWxkKCkpe2pzcGIuYXNzZXJ0cy5mYWlsKFwiVW5tYXRjaGVkIHN0YXJ0LWdyb3VwIHRhZzogc3RyZWFtIEVPRlwiKSx0aGlzLmVycm9yXz0hMDticmVha31pZih0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkVORF9HUk9VUCl7dGhpcy5uZXh0RmllbGRfIT1lJiYoanNwYi5hc3NlcnRzLmZhaWwoXCJVbm1hdGNoZWQgZW5kLWdyb3VwIHRhZ1wiKSx0aGlzLmVycm9yXz0hMCk7YnJlYWt9dGhpcy5za2lwRmllbGQoKX19LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5za2lwRmllbGQ9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5uZXh0V2lyZVR5cGVfKXtjYXNlIGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVDp0aGlzLnNraXBWYXJpbnRGaWVsZCgpO2JyZWFrO2Nhc2UganNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NDp0aGlzLnNraXBGaXhlZDY0RmllbGQoKTticmVhaztjYXNlIGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRDp0aGlzLnNraXBEZWxpbWl0ZWRGaWVsZCgpO2JyZWFrO2Nhc2UganNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQzMjp0aGlzLnNraXBGaXhlZDMyRmllbGQoKTticmVhaztjYXNlIGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlNUQVJUX0dST1VQOnRoaXMuc2tpcEdyb3VwKCk7YnJlYWs7ZGVmYXVsdDpqc3BiLmFzc2VydHMuZmFpbChcIkludmFsaWQgd2lyZSBlbmNvZGluZyBmb3IgZmllbGQuXCIpfX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlZ2lzdGVyUmVhZENhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7bnVsbD09PXRoaXMucmVhZENhbGxiYWNrc18mJih0aGlzLnJlYWRDYWxsYmFja3NfPXt9KSxqc3BiLmFzc2VydHMuYXNzZXJ0KCF0aGlzLnJlYWRDYWxsYmFja3NfW2VdKSx0aGlzLnJlYWRDYWxsYmFja3NfW2VdPXR9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5ydW5SZWFkQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQobnVsbCE9PXRoaXMucmVhZENhbGxiYWNrc18pLGU9dGhpcy5yZWFkQ2FsbGJhY2tzX1tlXSxqc3BiLmFzc2VydHMuYXNzZXJ0KGUpLGUodGhpcyl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkQW55PWZ1bmN0aW9uKGUpe3RoaXMubmV4dFdpcmVUeXBlXz1qc3BiLkJpbmFyeUNvbnN0YW50cy5GaWVsZFR5cGVUb1dpcmVUeXBlKGUpO3ZhciB0PWpzcGIuQmluYXJ5Q29uc3RhbnRzLkZpZWxkVHlwZTtzd2l0Y2goZSl7Y2FzZSB0LkRPVUJMRTpyZXR1cm4gdGhpcy5yZWFkRG91YmxlKCk7Y2FzZSB0LkZMT0FUOnJldHVybiB0aGlzLnJlYWRGbG9hdCgpO2Nhc2UgdC5JTlQ2NDpyZXR1cm4gdGhpcy5yZWFkSW50NjQoKTtjYXNlIHQuVUlOVDY0OnJldHVybiB0aGlzLnJlYWRVaW50NjQoKTtjYXNlIHQuSU5UMzI6cmV0dXJuIHRoaXMucmVhZEludDMyKCk7Y2FzZSB0LkZJWEVENjQ6cmV0dXJuIHRoaXMucmVhZEZpeGVkNjQoKTtjYXNlIHQuRklYRUQzMjpyZXR1cm4gdGhpcy5yZWFkRml4ZWQzMigpO2Nhc2UgdC5CT09MOnJldHVybiB0aGlzLnJlYWRCb29sKCk7Y2FzZSB0LlNUUklORzpyZXR1cm4gdGhpcy5yZWFkU3RyaW5nKCk7Y2FzZSB0LkdST1VQOmpzcGIuYXNzZXJ0cy5mYWlsKFwiR3JvdXAgZmllbGQgdHlwZSBub3Qgc3VwcG9ydGVkIGluIHJlYWRBbnkoKVwiKTtjYXNlIHQuTUVTU0FHRTpqc3BiLmFzc2VydHMuZmFpbChcIk1lc3NhZ2UgZmllbGQgdHlwZSBub3Qgc3VwcG9ydGVkIGluIHJlYWRBbnkoKVwiKTtjYXNlIHQuQllURVM6cmV0dXJuIHRoaXMucmVhZEJ5dGVzKCk7Y2FzZSB0LlVJTlQzMjpyZXR1cm4gdGhpcy5yZWFkVWludDMyKCk7Y2FzZSB0LkVOVU06cmV0dXJuIHRoaXMucmVhZEVudW0oKTtjYXNlIHQuU0ZJWEVEMzI6cmV0dXJuIHRoaXMucmVhZFNmaXhlZDMyKCk7Y2FzZSB0LlNGSVhFRDY0OnJldHVybiB0aGlzLnJlYWRTZml4ZWQ2NCgpO2Nhc2UgdC5TSU5UMzI6cmV0dXJuIHRoaXMucmVhZFNpbnQzMigpO2Nhc2UgdC5TSU5UNjQ6cmV0dXJuIHRoaXMucmVhZFNpbnQ2NCgpO2Nhc2UgdC5GSEFTSDY0OnJldHVybiB0aGlzLnJlYWRGaXhlZEhhc2g2NCgpO2Nhc2UgdC5WSEFTSDY0OnJldHVybiB0aGlzLnJlYWRWYXJpbnRIYXNoNjQoKTtkZWZhdWx0OmpzcGIuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCBmaWVsZCB0eXBlIGluIHJlYWRBbnkoKVwiKX1yZXR1cm4gMH0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRNZXNzYWdlPWZ1bmN0aW9uKGUsdCl7anNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCk7dmFyIG49dGhpcy5kZWNvZGVyXy5nZXRFbmQoKSxyPXRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50MzIoKTtyPXRoaXMuZGVjb2Rlcl8uZ2V0Q3Vyc29yKCkrcix0aGlzLmRlY29kZXJfLnNldEVuZChyKSx0KGUsdGhpcyksdGhpcy5kZWNvZGVyXy5zZXRDdXJzb3IociksdGhpcy5kZWNvZGVyXy5zZXRFbmQobil9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZE1lc3NhZ2VcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZE1lc3NhZ2UpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkR3JvdXA9ZnVuY3Rpb24oZSx0LG4pe2pzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5TVEFSVF9HUk9VUCksanNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRGaWVsZF89PWUpLG4odCx0aGlzKSx0aGlzLmVycm9yX3x8dGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5FTkRfR1JPVVB8fChqc3BiLmFzc2VydHMuZmFpbChcIkdyb3VwIHN1Ym1lc3NhZ2UgZGlkIG5vdCBlbmQgd2l0aCBhbiBFTkRfR1JPVVAgdGFnXCIpLHRoaXMuZXJyb3JfPSEwKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkR3JvdXBcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEdyb3VwKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuZ2V0RmllbGREZWNvZGVyPWZ1bmN0aW9uKCl7anNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCk7dmFyIGU9dGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMigpLHQ9dGhpcy5kZWNvZGVyXy5nZXRDdXJzb3IoKSxuPXQrZTtyZXR1cm4gZT1qc3BiLkJpbmFyeURlY29kZXIuYWxsb2ModGhpcy5kZWNvZGVyXy5nZXRCdWZmZXIoKSx0LGUpLHRoaXMuZGVjb2Rlcl8uc2V0Q3Vyc29yKG4pLGV9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50MzI9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU2lnbmVkVmFyaW50MzIoKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkSW50MzJcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEludDMyKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEludDMyU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFNpZ25lZFZhcmludDMyU3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50NjQ9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU2lnbmVkVmFyaW50NjQoKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkSW50NjRcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEludDY0KSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEludDY0U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFNpZ25lZFZhcmludDY0U3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkVWludDMyPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50MzIoKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkVWludDMyXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRVaW50MzIpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkVWludDMyU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50MzJTdHJpbmcoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRVaW50NjQ9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQ2NCgpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRVaW50NjRcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFVpbnQ2NCksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRVaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQ2NFN0cmluZygpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNpbnQzMj1mdW5jdGlvbigpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRaaWd6YWdWYXJpbnQzMigpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRTaW50MzJcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNpbnQzMiksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTaW50NjQ9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkWmlnemFnVmFyaW50NjQoKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkU2ludDY0XCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTaW50NjQpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU2ludDY0U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFppZ3phZ1ZhcmludDY0U3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRml4ZWQzMj1mdW5jdGlvbigpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQzMiksdGhpcy5kZWNvZGVyXy5yZWFkVWludDMyKCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZEZpeGVkMzJcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEZpeGVkMzIpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRml4ZWQ2ND1mdW5jdGlvbigpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5kZWNvZGVyXy5yZWFkVWludDY0KCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZEZpeGVkNjRcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEZpeGVkNjQpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRml4ZWQ2NFN0cmluZz1mdW5jdGlvbigpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5kZWNvZGVyXy5yZWFkVWludDY0U3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU2ZpeGVkMzI9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIpLHRoaXMuZGVjb2Rlcl8ucmVhZEludDMyKCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZFNmaXhlZDMyXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTZml4ZWQzMiksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTZml4ZWQzMlN0cmluZz1mdW5jdGlvbigpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQzMiksdGhpcy5kZWNvZGVyXy5yZWFkSW50MzIoKS50b1N0cmluZygpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNmaXhlZDY0PWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0KSx0aGlzLmRlY29kZXJfLnJlYWRJbnQ2NCgpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRTZml4ZWQ2NFwiLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU2ZpeGVkNjQpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU2ZpeGVkNjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZEludDY0U3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRmxvYXQ9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIpLHRoaXMuZGVjb2Rlcl8ucmVhZEZsb2F0KCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZEZsb2F0XCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRGbG9hdCksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWREb3VibGU9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZERvdWJsZSgpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWREb3VibGVcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZERvdWJsZSksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRCb29sPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLCEhdGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMigpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRCb29sXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRCb29sKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEVudW09ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU2lnbmVkVmFyaW50NjQoKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkRW51bVwiLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRW51bSksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTdHJpbmc9ZnVuY3Rpb24oKXtqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKTt2YXIgZT10aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyKCk7cmV0dXJuIHRoaXMuZGVjb2Rlcl8ucmVhZFN0cmluZyhlKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkU3RyaW5nXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTdHJpbmcpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkQnl0ZXM9ZnVuY3Rpb24oKXtqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKTt2YXIgZT10aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyKCk7cmV0dXJuIHRoaXMuZGVjb2Rlcl8ucmVhZEJ5dGVzKGUpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRCeXRlc1wiLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkQnl0ZXMpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkVmFyaW50SGFzaDY0PWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFZhcmludEhhc2g2NCgpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNpbnRIYXNoNjQ9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkWmlnemFnVmFyaW50SGFzaDY0KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU3BsaXRWYXJpbnQ2ND1mdW5jdGlvbihlKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU3BsaXRWYXJpbnQ2NChlKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTcGxpdFppZ3phZ1ZhcmludDY0PWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRTcGxpdFZhcmludDY0KChmdW5jdGlvbih0LG4pe3JldHVybiBqc3BiLnV0aWxzLmZyb21aaWd6YWc2NCh0LG4sZSl9KSl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRml4ZWRIYXNoNjQ9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZEZpeGVkSGFzaDY0KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU3BsaXRGaXhlZDY0PWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5kZWNvZGVyXy5yZWFkU3BsaXRGaXhlZDY0KGUpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEZpZWxkXz1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKTt2YXIgdD10aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyKCk7dD10aGlzLmRlY29kZXJfLmdldEN1cnNvcigpK3Q7Zm9yKHZhciBuPVtdO3RoaXMuZGVjb2Rlcl8uZ2V0Q3Vyc29yKCk8dDspbi5wdXNoKGUuY2FsbCh0aGlzLmRlY29kZXJfKSk7cmV0dXJuIG59LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkSW50MzI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFNpZ25lZFZhcmludDMyKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkUGFja2VkSW50MzJcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEludDMyKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEludDMyU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRTaWduZWRWYXJpbnQzMlN0cmluZyl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkSW50NjQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFNpZ25lZFZhcmludDY0KX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkUGFja2VkSW50NjRcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEludDY0KSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEludDY0U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRTaWduZWRWYXJpbnQ2NFN0cmluZyl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkVWludDMyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkUGFja2VkVWludDMyXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRVaW50MzIpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkVWludDMyU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyU3RyaW5nKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRVaW50NjQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50NjQpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRQYWNrZWRVaW50NjRcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFVpbnQ2NCksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRVaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50NjRTdHJpbmcpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNpbnQzMj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkWmlnemFnVmFyaW50MzIpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRQYWNrZWRTaW50MzJcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNpbnQzMiksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRTaW50NjQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFppZ3phZ1ZhcmludDY0KX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkUGFja2VkU2ludDY0XCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRTaW50NjQpLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkU2ludDY0U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRaaWd6YWdWYXJpbnQ2NFN0cmluZyl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkRml4ZWQzMj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkVWludDMyKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkUGFja2VkRml4ZWQzMlwiLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkRml4ZWQzMiksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRGaXhlZDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRVaW50NjQpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRQYWNrZWRGaXhlZDY0XCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRGaXhlZDY0KSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEZpeGVkNjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFVpbnQ2NFN0cmluZyl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkU2ZpeGVkMzI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZEludDMyKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUsXCJyZWFkUGFja2VkU2ZpeGVkMzJcIixqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNmaXhlZDMyKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNmaXhlZDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRJbnQ2NCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZFBhY2tlZFNmaXhlZDY0XCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRTZml4ZWQ2NCksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRTZml4ZWQ2NFN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkSW50NjRTdHJpbmcpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEZsb2F0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRGbG9hdCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZFBhY2tlZEZsb2F0XCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRGbG9hdCksanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWREb3VibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZERvdWJsZSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLFwicmVhZFBhY2tlZERvdWJsZVwiLGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkRG91YmxlKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEJvb2w9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZEJvb2wpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRQYWNrZWRCb29sXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRCb29sKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEVudW09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZEVudW0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZSxcInJlYWRQYWNrZWRFbnVtXCIsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRFbnVtKSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFZhcmludEhhc2g2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkVmFyaW50SGFzaDY0KX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRGaXhlZEhhc2g2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkRml4ZWRIYXNoNjQpfSxqc3BiLkJpbmFyeUVuY29kZXI9ZnVuY3Rpb24oKXt0aGlzLmJ1ZmZlcl89W119LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUubGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnVmZmVyXy5sZW5ndGh9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5idWZmZXJfO3JldHVybiB0aGlzLmJ1ZmZlcl89W10sZX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZVNwbGl0VmFyaW50NjQ9ZnVuY3Rpb24oZSx0KXtmb3IoanNwYi5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxqc3BiLmFzc2VydHMuYXNzZXJ0KHQ9PU1hdGguZmxvb3IodCkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoMDw9dCYmdDxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIpOzA8dHx8MTI3PGU7KXRoaXMuYnVmZmVyXy5wdXNoKDEyNyZlfDEyOCksZT0oZT4+Pjd8dDw8MjUpPj4+MCx0Pj4+PTc7dGhpcy5idWZmZXJfLnB1c2goZSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVTcGxpdEZpeGVkNjQ9ZnVuY3Rpb24oZSx0KXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQodD09TWF0aC5mbG9vcih0KSksanNwYi5hc3NlcnRzLmFzc2VydCgwPD1lJiZlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksanNwYi5hc3NlcnRzLmFzc2VydCgwPD10JiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksdGhpcy53cml0ZVVpbnQzMihlKSx0aGlzLndyaXRlVWludDMyKHQpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlVW5zaWduZWRWYXJpbnQzMj1mdW5jdGlvbihlKXtmb3IoanNwYi5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxqc3BiLmFzc2VydHMuYXNzZXJ0KDA8PWUmJmU8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKTsxMjc8ZTspdGhpcy5idWZmZXJfLnB1c2goMTI3JmV8MTI4KSxlPj4+PTc7dGhpcy5idWZmZXJfLnB1c2goZSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVTaWduZWRWYXJpbnQzMj1mdW5jdGlvbihlKXtpZihqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEpLDA8PWUpdGhpcy53cml0ZVVuc2lnbmVkVmFyaW50MzIoZSk7ZWxzZXtmb3IodmFyIHQ9MDs5PnQ7dCsrKXRoaXMuYnVmZmVyXy5wdXNoKDEyNyZlfDEyOCksZT4+PTc7dGhpcy5idWZmZXJfLnB1c2goMSl9fSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlVW5zaWduZWRWYXJpbnQ2ND1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjQpLGpzcGIudXRpbHMuc3BsaXRJbnQ2NChlKSx0aGlzLndyaXRlU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVTaWduZWRWYXJpbnQ2ND1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMpLGpzcGIudXRpbHMuc3BsaXRJbnQ2NChlKSx0aGlzLndyaXRlU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnQzMj1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEpLHRoaXMud3JpdGVVbnNpZ25lZFZhcmludDMyKChlPDwxXmU+PjMxKT4+PjApfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50NjQ9ZnVuY3Rpb24oZSl7anNwYi5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxqc3BiLmFzc2VydHMuYXNzZXJ0KGU+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMmJmU8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzKSxqc3BiLnV0aWxzLnNwbGl0WmlnemFnNjQoZSksdGhpcy53cml0ZVNwbGl0VmFyaW50NjQoanNwYi51dGlscy5zcGxpdDY0TG93LGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2gpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50NjRTdHJpbmc9ZnVuY3Rpb24oZSl7dGhpcy53cml0ZVppZ3phZ1ZhcmludEhhc2g2NChqc3BiLnV0aWxzLmRlY2ltYWxTdHJpbmdUb0hhc2g2NChlKSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztqc3BiLnV0aWxzLnNwbGl0SGFzaDY0KGUpLGpzcGIudXRpbHMudG9aaWd6YWc2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCwoZnVuY3Rpb24oZSxuKXt0LndyaXRlU3BsaXRWYXJpbnQ2NChlPj4+MCxuPj4+MCl9KSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVVaW50OD1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmMjU2PmUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVVaW50MTY9ZnVuY3Rpb24oZSl7anNwYi5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxqc3BiLmFzc2VydHMuYXNzZXJ0KDA8PWUmJjY1NTM2PmUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjgmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZVVpbnQzMj1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjgmMjU1KSx0aGlzLmJ1ZmZlcl8ucHVzaChlPj4+MTYmMjU1KSx0aGlzLmJ1ZmZlcl8ucHVzaChlPj4+MjQmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZVVpbnQ2ND1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjQpLGpzcGIudXRpbHMuc3BsaXRVaW50NjQoZSksdGhpcy53cml0ZVVpbnQzMihqc3BiLnV0aWxzLnNwbGl0NjRMb3cpLHRoaXMud3JpdGVVaW50MzIoanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKGUpe2pzcGIuYXNzZXJ0cy5hc3NlcnQoZT09TWF0aC5mbG9vcihlKSksanNwYi5hc3NlcnRzLmFzc2VydCgtMTI4PD1lJiYxMjg+ZSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjAmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZUludDE2PWZ1bmN0aW9uKGUpe2pzcGIuYXNzZXJ0cy5hc3NlcnQoZT09TWF0aC5mbG9vcihlKSksanNwYi5hc3NlcnRzLmFzc2VydCgtMzI3Njg8PWUmJjMyNzY4PmUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjgmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZUludDMyPWZ1bmN0aW9uKGUpe2pzcGIuYXNzZXJ0cy5hc3NlcnQoZT09TWF0aC5mbG9vcihlKSksanNwYi5hc3NlcnRzLmFzc2VydChlPj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxJiZlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjAmMjU1KSx0aGlzLmJ1ZmZlcl8ucHVzaChlPj4+OCYyNTUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4xNiYyNTUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4yNCYyNTUpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlSW50NjQ9ZnVuY3Rpb24oZSl7anNwYi5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxqc3BiLmFzc2VydHMuYXNzZXJ0KGU+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMmJmU8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzKSxqc3BiLnV0aWxzLnNwbGl0SW50NjQoZSksdGhpcy53cml0ZVNwbGl0Rml4ZWQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVJbnQ2NFN0cmluZz1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGpzcGIuYXNzZXJ0cy5hc3NlcnQoK2U+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMmJitlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyksanNwYi51dGlscy5zcGxpdEhhc2g2NChqc3BiLnV0aWxzLmRlY2ltYWxTdHJpbmdUb0hhc2g2NChlKSksdGhpcy53cml0ZVNwbGl0Rml4ZWQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVGbG9hdD1mdW5jdGlvbihlKXtqc3BiLmFzc2VydHMuYXNzZXJ0KDEvMD09PWV8fC0xLzA9PT1lfHxpc05hTihlKXx8ZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfTUFYJiZlPD1qc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDMyX01BWCksanNwYi51dGlscy5zcGxpdEZsb2F0MzIoZSksdGhpcy53cml0ZVVpbnQzMihqc3BiLnV0aWxzLnNwbGl0NjRMb3cpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlRG91YmxlPWZ1bmN0aW9uKGUpe2pzcGIuYXNzZXJ0cy5hc3NlcnQoMS8wPT09ZXx8LTEvMD09PWV8fGlzTmFOKGUpfHxlPj0tanNwYi5CaW5hcnlDb25zdGFudHMuRkxPQVQ2NF9NQVgmJmU8PWpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfTUFYKSxqc3BiLnV0aWxzLnNwbGl0RmxvYXQ2NChlKSx0aGlzLndyaXRlVWludDMyKGpzcGIudXRpbHMuc3BsaXQ2NExvdyksdGhpcy53cml0ZVVpbnQzMihqc3BiLnV0aWxzLnNwbGl0NjRIaWdoKX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZUJvb2w9ZnVuY3Rpb24oZSl7anNwYi5hc3NlcnRzLmFzc2VydChcImJvb2xlYW5cIj09PXR5cGVvZiBlfHxcIm51bWJlclwiPT09dHlwZW9mIGUpLHRoaXMuYnVmZmVyXy5wdXNoKGU/MTowKX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZUVudW09ZnVuY3Rpb24oZSl7anNwYi5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxqc3BiLmFzc2VydHMuYXNzZXJ0KGU+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEmJmU8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxKSx0aGlzLndyaXRlU2lnbmVkVmFyaW50MzIoZSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVCeXRlcz1mdW5jdGlvbihlKXt0aGlzLmJ1ZmZlcl8ucHVzaC5hcHBseSh0aGlzLmJ1ZmZlcl8sZSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVWYXJpbnRIYXNoNjQ9ZnVuY3Rpb24oZSl7anNwYi51dGlscy5zcGxpdEhhc2g2NChlKSx0aGlzLndyaXRlU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVGaXhlZEhhc2g2ND1mdW5jdGlvbihlKXtqc3BiLnV0aWxzLnNwbGl0SGFzaDY0KGUpLHRoaXMud3JpdGVVaW50MzIoanNwYi51dGlscy5zcGxpdDY0TG93KSx0aGlzLndyaXRlVWludDMyKGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2gpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYnVmZmVyXy5sZW5ndGg7anNwYi5hc3NlcnRzLmFzc2VydFN0cmluZyhlKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZS5jaGFyQ29kZUF0KG4pO2lmKDEyOD5yKXRoaXMuYnVmZmVyXy5wdXNoKHIpO2Vsc2UgaWYoMjA0OD5yKXRoaXMuYnVmZmVyXy5wdXNoKHI+PjZ8MTkyKSx0aGlzLmJ1ZmZlcl8ucHVzaCg2MyZyfDEyOCk7ZWxzZSBpZig2NTUzNj5yKWlmKDU1Mjk2PD1yJiY1NjMxOT49ciYmbisxPGUubGVuZ3RoKXt2YXIgaT1lLmNoYXJDb2RlQXQobisxKTs1NjMyMDw9aSYmNTczNDM+PWkmJihyPTEwMjQqKHItNTUyOTYpK2ktNTYzMjArNjU1MzYsdGhpcy5idWZmZXJfLnB1c2gocj4+MTh8MjQwKSx0aGlzLmJ1ZmZlcl8ucHVzaChyPj4xMiY2M3wxMjgpLHRoaXMuYnVmZmVyXy5wdXNoKHI+PjYmNjN8MTI4KSx0aGlzLmJ1ZmZlcl8ucHVzaCg2MyZyfDEyOCksbisrKX1lbHNlIHRoaXMuYnVmZmVyXy5wdXNoKHI+PjEyfDIyNCksdGhpcy5idWZmZXJfLnB1c2gocj4+NiY2M3wxMjgpLHRoaXMuYnVmZmVyXy5wdXNoKDYzJnJ8MTI4KX1yZXR1cm4gdGhpcy5idWZmZXJfLmxlbmd0aC10fSxqc3BiLmFyaXRoPXt9LGpzcGIuYXJpdGguVUludDY0PWZ1bmN0aW9uKGUsdCl7dGhpcy5sbz1lLHRoaXMuaGk9dH0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLmNtcD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5oaTxlLmhpfHx0aGlzLmhpPT1lLmhpJiZ0aGlzLmxvPGUubG8/LTE6dGhpcy5oaT09ZS5oaSYmdGhpcy5sbz09ZS5sbz8wOjF9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS5yaWdodFNoaWZ0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLlVJbnQ2NCgodGhpcy5sbz4+PjF8KDEmdGhpcy5oaSk8PDMxKT4+PjAsdGhpcy5oaT4+PjE+Pj4wKX0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLmxlZnRTaGlmdD1mdW5jdGlvbigpe3JldHVybiBuZXcganNwYi5hcml0aC5VSW50NjQodGhpcy5sbzw8MT4+PjAsKHRoaXMuaGk8PDF8dGhpcy5sbz4+PjMxKT4+PjApfSxqc3BiLmFyaXRoLlVJbnQ2NC5wcm90b3R5cGUubXNiPWZ1bmN0aW9uKCl7cmV0dXJuISEoMjE0NzQ4MzY0OCZ0aGlzLmhpKX0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLmxzYj1mdW5jdGlvbigpe3JldHVybiEhKDEmdGhpcy5sbyl9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS56ZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PXRoaXMubG8mJjA9PXRoaXMuaGl9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLlVJbnQ2NCgodGhpcy5sbytlLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpK2UuaGkmNDI5NDk2NzI5NSk+Pj4wKSsoNDI5NDk2NzI5Njw9dGhpcy5sbytlLmxvPzE6MCk+Pj4wKX0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGpzcGIuYXJpdGguVUludDY0KCh0aGlzLmxvLWUubG8mNDI5NDk2NzI5NSk+Pj4wPj4+MCwoKHRoaXMuaGktZS5oaSY0Mjk0OTY3Mjk1KT4+PjApLSgwPnRoaXMubG8tZS5sbz8xOjApPj4+MCl9LGpzcGIuYXJpdGguVUludDY0Lm11bDMyeDMyPWZ1bmN0aW9uKGUsdCl7dmFyIG49NjU1MzUmZSxyPTY1NTM1JnQsaT10Pj4+MTY7Zm9yKHQ9bipyKzY1NTM2KihuKmkmNjU1MzUpKzY1NTM2KigoZT4+Pj0xNikqciY2NTUzNSksbj1lKmkrKG4qaT4+PjE2KSsoZSpyPj4+MTYpOzQyOTQ5NjcyOTY8PXQ7KXQtPTQyOTQ5NjcyOTYsbis9MTtyZXR1cm4gbmV3IGpzcGIuYXJpdGguVUludDY0KHQ+Pj4wLG4+Pj4wKX0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLm11bD1mdW5jdGlvbihlKXt2YXIgdD1qc3BiLmFyaXRoLlVJbnQ2NC5tdWwzMngzMih0aGlzLmxvLGUpO3JldHVybihlPWpzcGIuYXJpdGguVUludDY0Lm11bDMyeDMyKHRoaXMuaGksZSkpLmhpPWUubG8sZS5sbz0wLHQuYWRkKGUpfSxqc3BiLmFyaXRoLlVJbnQ2NC5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGUpe2lmKDA9PWUpcmV0dXJuW107dmFyIHQ9bmV3IGpzcGIuYXJpdGguVUludDY0KDAsMCksbj1uZXcganNwYi5hcml0aC5VSW50NjQodGhpcy5sbyx0aGlzLmhpKTtlPW5ldyBqc3BiLmFyaXRoLlVJbnQ2NChlLDApO2Zvcih2YXIgcj1uZXcganNwYi5hcml0aC5VSW50NjQoMSwwKTshZS5tc2IoKTspZT1lLmxlZnRTaGlmdCgpLHI9ci5sZWZ0U2hpZnQoKTtmb3IoOyFyLnplcm8oKTspMD49ZS5jbXAobikmJih0PXQuYWRkKHIpLG49bi5zdWIoZSkpLGU9ZS5yaWdodFNoaWZ0KCkscj1yLnJpZ2h0U2hpZnQoKTtyZXR1cm5bdCxuXX0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVwiXCIsdD10aGlzOyF0Lnplcm8oKTspe3ZhciBuPSh0PXQuZGl2KDEwKSlbMF07ZT10WzFdLmxvK2UsdD1ufXJldHVyblwiXCI9PWUmJihlPVwiMFwiKSxlfSxqc3BiLmFyaXRoLlVJbnQ2NC5mcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcganNwYi5hcml0aC5VSW50NjQoMCwwKSxuPW5ldyBqc3BiLmFyaXRoLlVJbnQ2NCgwLDApLHI9MDtyPGUubGVuZ3RoO3IrKyl7aWYoXCIwXCI+ZVtyXXx8XCI5XCI8ZVtyXSlyZXR1cm4gbnVsbDt2YXIgaT1wYXJzZUludChlW3JdLDEwKTtuLmxvPWksdD10Lm11bCgxMCkuYWRkKG4pfXJldHVybiB0fSxqc3BiLmFyaXRoLlVJbnQ2NC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGpzcGIuYXJpdGguVUludDY0KHRoaXMubG8sdGhpcy5oaSl9LGpzcGIuYXJpdGguSW50NjQ9ZnVuY3Rpb24oZSx0KXt0aGlzLmxvPWUsdGhpcy5oaT10fSxqc3BiLmFyaXRoLkludDY0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLkludDY0KCh0aGlzLmxvK2UubG8mNDI5NDk2NzI5NSk+Pj4wPj4+MCwoKHRoaXMuaGkrZS5oaSY0Mjk0OTY3Mjk1KT4+PjApKyg0Mjk0OTY3Mjk2PD10aGlzLmxvK2UubG8/MTowKT4+PjApfSxqc3BiLmFyaXRoLkludDY0LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLkludDY0KCh0aGlzLmxvLWUubG8mNDI5NDk2NzI5NSk+Pj4wPj4+MCwoKHRoaXMuaGktZS5oaSY0Mjk0OTY3Mjk1KT4+PjApLSgwPnRoaXMubG8tZS5sbz8xOjApPj4+MCl9LGpzcGIuYXJpdGguSW50NjQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLkludDY0KHRoaXMubG8sdGhpcy5oaSl9LGpzcGIuYXJpdGguSW50NjQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGU9MCE9KDIxNDc0ODM2NDgmdGhpcy5oaSksdD1uZXcganNwYi5hcml0aC5VSW50NjQodGhpcy5sbyx0aGlzLmhpKTtyZXR1cm4gZSYmKHQ9bmV3IGpzcGIuYXJpdGguVUludDY0KDAsMCkuc3ViKHQpKSwoZT9cIi1cIjpcIlwiKSt0LnRvU3RyaW5nKCl9LGpzcGIuYXJpdGguSW50NjQuZnJvbVN0cmluZz1mdW5jdGlvbihlKXt2YXIgdD0wPGUubGVuZ3RoJiZcIi1cIj09ZVswXTtyZXR1cm4gdCYmKGU9ZS5zdWJzdHJpbmcoMSkpLG51bGw9PT0oZT1qc3BiLmFyaXRoLlVJbnQ2NC5mcm9tU3RyaW5nKGUpKT9udWxsOih0JiYoZT1uZXcganNwYi5hcml0aC5VSW50NjQoMCwwKS5zdWIoZSkpLG5ldyBqc3BiLmFyaXRoLkludDY0KGUubG8sZS5oaSkpfSxqc3BiLkJpbmFyeVdyaXRlcj1mdW5jdGlvbigpe3RoaXMuYmxvY2tzXz1bXSx0aGlzLnRvdGFsTGVuZ3RoXz0wLHRoaXMuZW5jb2Rlcl89bmV3IGpzcGIuQmluYXJ5RW5jb2Rlcix0aGlzLmJvb2ttYXJrc189W119LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS5hcHBlbmRVaW50OEFycmF5Xz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmVuY29kZXJfLmVuZCgpO3RoaXMuYmxvY2tzXy5wdXNoKHQpLHRoaXMuYmxvY2tzXy5wdXNoKGUpLHRoaXMudG90YWxMZW5ndGhfKz10Lmxlbmd0aCtlLmxlbmd0aH0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLmJlZ2luRGVsaW1pdGVkXz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCksZT10aGlzLmVuY29kZXJfLmVuZCgpLHRoaXMuYmxvY2tzXy5wdXNoKGUpLHRoaXMudG90YWxMZW5ndGhfKz1lLmxlbmd0aCxlLnB1c2godGhpcy50b3RhbExlbmd0aF8pLGV9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS5lbmREZWxpbWl0ZWRfPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9wKCk7Zm9yKHQ9dGhpcy50b3RhbExlbmd0aF8rdGhpcy5lbmNvZGVyXy5sZW5ndGgoKS10LGpzcGIuYXNzZXJ0cy5hc3NlcnQoMDw9dCk7MTI3PHQ7KWUucHVzaCgxMjcmdHwxMjgpLHQ+Pj49Nyx0aGlzLnRvdGFsTGVuZ3RoXysrO2UucHVzaCh0KSx0aGlzLnRvdGFsTGVuZ3RoXysrfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTZXJpYWxpemVkTWVzc2FnZT1mdW5jdGlvbihlLHQsbil7dGhpcy5hcHBlbmRVaW50OEFycmF5XyhlLnN1YmFycmF5KHQsbikpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUubWF5YmVXcml0ZVNlcmlhbGl6ZWRNZXNzYWdlPWZ1bmN0aW9uKGUsdCxuKXtudWxsIT1lJiZudWxsIT10JiZudWxsIT1uJiZ0aGlzLndyaXRlU2VyaWFsaXplZE1lc3NhZ2UoZSx0LG4pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmJsb2Nrc189W10sdGhpcy5lbmNvZGVyXy5lbmQoKSx0aGlzLnRvdGFsTGVuZ3RoXz0wLHRoaXMuYm9va21hcmtzXz1bXX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLmdldFJlc3VsdEJ1ZmZlcj1mdW5jdGlvbigpe2pzcGIuYXNzZXJ0cy5hc3NlcnQoMD09dGhpcy5ib29rbWFya3NfLmxlbmd0aCk7Zm9yKHZhciBlPW5ldyBVaW50OEFycmF5KHRoaXMudG90YWxMZW5ndGhfK3RoaXMuZW5jb2Rlcl8ubGVuZ3RoKCkpLHQ9dGhpcy5ibG9ja3NfLG49dC5sZW5ndGgscj0wLGk9MDtpPG47aSsrKXt2YXIgbz10W2ldO2Uuc2V0KG8scikscis9by5sZW5ndGh9cmV0dXJuIHQ9dGhpcy5lbmNvZGVyXy5lbmQoKSxlLnNldCh0LHIpLHIrPXQubGVuZ3RoLGpzcGIuYXNzZXJ0cy5hc3NlcnQocj09ZS5sZW5ndGgpLHRoaXMuYmxvY2tzXz1bZV0sZX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJnZXRSZXN1bHRCdWZmZXJcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUuZ2V0UmVzdWx0QnVmZmVyKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUuZ2V0UmVzdWx0QmFzZTY0U3RyaW5nPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmNyeXB0LmJhc2U2NC5lbmNvZGVCeXRlQXJyYXkodGhpcy5nZXRSZXN1bHRCdWZmZXIoKSxlKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLmJlZ2luU3ViTWVzc2FnZT1mdW5jdGlvbihlKXt0aGlzLmJvb2ttYXJrc18ucHVzaCh0aGlzLmJlZ2luRGVsaW1pdGVkXyhlKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS5lbmRTdWJNZXNzYWdlPWZ1bmN0aW9uKCl7anNwYi5hc3NlcnRzLmFzc2VydCgwPD10aGlzLmJvb2ttYXJrc18ubGVuZ3RoKSx0aGlzLmVuZERlbGltaXRlZF8odGhpcy5ib29rbWFya3NfLnBvcCgpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRmllbGRIZWFkZXJfPWZ1bmN0aW9uKGUsdCl7anNwYi5hc3NlcnRzLmFzc2VydCgxPD1lJiZlPT1NYXRoLmZsb29yKGUpKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig4KmUrdCl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUFueT1mdW5jdGlvbihlLHQsbil7dmFyIHI9anNwYi5CaW5hcnlDb25zdGFudHMuRmllbGRUeXBlO3N3aXRjaChlKXtjYXNlIHIuRE9VQkxFOnRoaXMud3JpdGVEb3VibGUodCxuKTticmVhaztjYXNlIHIuRkxPQVQ6dGhpcy53cml0ZUZsb2F0KHQsbik7YnJlYWs7Y2FzZSByLklOVDY0OnRoaXMud3JpdGVJbnQ2NCh0LG4pO2JyZWFrO2Nhc2Ugci5VSU5UNjQ6dGhpcy53cml0ZVVpbnQ2NCh0LG4pO2JyZWFrO2Nhc2Ugci5JTlQzMjp0aGlzLndyaXRlSW50MzIodCxuKTticmVhaztjYXNlIHIuRklYRUQ2NDp0aGlzLndyaXRlRml4ZWQ2NCh0LG4pO2JyZWFrO2Nhc2Ugci5GSVhFRDMyOnRoaXMud3JpdGVGaXhlZDMyKHQsbik7YnJlYWs7Y2FzZSByLkJPT0w6dGhpcy53cml0ZUJvb2wodCxuKTticmVhaztjYXNlIHIuU1RSSU5HOnRoaXMud3JpdGVTdHJpbmcodCxuKTticmVhaztjYXNlIHIuR1JPVVA6anNwYi5hc3NlcnRzLmZhaWwoXCJHcm91cCBmaWVsZCB0eXBlIG5vdCBzdXBwb3J0ZWQgaW4gd3JpdGVBbnkoKVwiKTticmVhaztjYXNlIHIuTUVTU0FHRTpqc3BiLmFzc2VydHMuZmFpbChcIk1lc3NhZ2UgZmllbGQgdHlwZSBub3Qgc3VwcG9ydGVkIGluIHdyaXRlQW55KClcIik7YnJlYWs7Y2FzZSByLkJZVEVTOnRoaXMud3JpdGVCeXRlcyh0LG4pO2JyZWFrO2Nhc2Ugci5VSU5UMzI6dGhpcy53cml0ZVVpbnQzMih0LG4pO2JyZWFrO2Nhc2Ugci5FTlVNOnRoaXMud3JpdGVFbnVtKHQsbik7YnJlYWs7Y2FzZSByLlNGSVhFRDMyOnRoaXMud3JpdGVTZml4ZWQzMih0LG4pO2JyZWFrO2Nhc2Ugci5TRklYRUQ2NDp0aGlzLndyaXRlU2ZpeGVkNjQodCxuKTticmVhaztjYXNlIHIuU0lOVDMyOnRoaXMud3JpdGVTaW50MzIodCxuKTticmVhaztjYXNlIHIuU0lOVDY0OnRoaXMud3JpdGVTaW50NjQodCxuKTticmVhaztjYXNlIHIuRkhBU0g2NDp0aGlzLndyaXRlRml4ZWRIYXNoNjQodCxuKTticmVhaztjYXNlIHIuVkhBU0g2NDp0aGlzLndyaXRlVmFyaW50SGFzaDY0KHQsbik7YnJlYWs7ZGVmYXVsdDpqc3BiLmFzc2VydHMuZmFpbChcIkludmFsaWQgZmllbGQgdHlwZSBpbiB3cml0ZUFueSgpXCIpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlVW5zaWduZWRWYXJpbnQzMl89ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTaWduZWRWYXJpbnQzMl89ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVNpZ25lZFZhcmludDMyKHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlVW5zaWduZWRWYXJpbnQ2NF89ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50NjQodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTaWduZWRWYXJpbnQ2NF89ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVNpZ25lZFZhcmludDY0KHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50MzJfPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVaaWd6YWdWYXJpbnQzMih0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVppZ3phZ1ZhcmludDY0Xz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlWmlnemFnVmFyaW50NjQodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnQ2NFN0cmluZ189ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVppZ3phZ1ZhcmludDY0U3RyaW5nKHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50SGFzaDY0Xz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlWmlnemFnVmFyaW50SGFzaDY0KHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50MzI9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoanNwYi5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSksdGhpcy53cml0ZVNpZ25lZFZhcmludDMyXyhlLHQpKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZUludDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50MzIpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUludDMyU3RyaW5nPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHQ9cGFyc2VJbnQodCwxMCksanNwYi5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSksdGhpcy53cml0ZVNpZ25lZFZhcmludDMyXyhlLHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50NjQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoanNwYi5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyksdGhpcy53cml0ZVNpZ25lZFZhcmludDY0XyhlLHQpKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZUludDY0XCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50NjQpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUludDY0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHQ9anNwYi5hcml0aC5JbnQ2NC5mcm9tU3RyaW5nKHQpLHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdFZhcmludDY0KHQubG8sdC5oaSkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVVaW50MzI9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoanNwYi5hc3NlcnRzLmFzc2VydCgwPD10JiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksdGhpcy53cml0ZVVuc2lnbmVkVmFyaW50MzJfKGUsdCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlVWludDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlVWludDMyKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVVaW50MzJTdHJpbmc9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodD1wYXJzZUludCh0LDEwKSxqc3BiLmFzc2VydHMuYXNzZXJ0KDA8PXQmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKSx0aGlzLndyaXRlVW5zaWduZWRWYXJpbnQzMl8oZSx0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVVpbnQ2ND1mdW5jdGlvbihlLHQpe251bGwhPXQmJihqc3BiLmFzc2VydHMuYXNzZXJ0KDA8PXQmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzY0KSx0aGlzLndyaXRlVW5zaWduZWRWYXJpbnQ2NF8oZSx0KSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVVaW50NjRcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVVaW50NjQpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVVpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWpzcGIuYXJpdGguVUludDY0LmZyb21TdHJpbmcodCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0VmFyaW50NjQodC5sbyx0LmhpKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNpbnQzMj1mdW5jdGlvbihlLHQpe251bGwhPXQmJihqc3BiLmFzc2VydHMuYXNzZXJ0KHQ+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxKSx0aGlzLndyaXRlWmlnemFnVmFyaW50MzJfKGUsdCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlU2ludDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU2ludDMyKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTaW50NjQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoanNwYi5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyksdGhpcy53cml0ZVppZ3phZ1ZhcmludDY0XyhlLHQpKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVNpbnQ2NFwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNpbnQ2NCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU2ludEhhc2g2ND1mdW5jdGlvbihlLHQpe251bGwhPXQmJnRoaXMud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjRfKGUsdCl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJnRoaXMud3JpdGVaaWd6YWdWYXJpbnQ2NFN0cmluZ18oZSx0KX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRml4ZWQzMj1mdW5jdGlvbihlLHQpe251bGwhPXQmJihqc3BiLmFzc2VydHMuYXNzZXJ0KDA8PXQmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQzMiksdGhpcy5lbmNvZGVyXy53cml0ZVVpbnQzMih0KSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVGaXhlZDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRml4ZWQzMiksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRml4ZWQ2ND1mdW5jdGlvbihlLHQpe251bGwhPXQmJihqc3BiLmFzc2VydHMuYXNzZXJ0KDA8PXQmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzY0KSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5lbmNvZGVyXy53cml0ZVVpbnQ2NCh0KSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVGaXhlZDY0XCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRml4ZWQ2NCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRml4ZWQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWpzcGIuYXJpdGguVUludDY0LmZyb21TdHJpbmcodCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdEZpeGVkNjQodC5sbyx0LmhpKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNmaXhlZDMyPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKGpzcGIuYXNzZXJ0cy5hc3NlcnQodD49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSYmdDxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEpLHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDMyKSx0aGlzLmVuY29kZXJfLndyaXRlSW50MzIodCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlU2ZpeGVkMzJcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTZml4ZWQzMiksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU2ZpeGVkNjQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoanNwYi5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVJbnQ2NCh0KSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVTZml4ZWQ2NFwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNmaXhlZDY0KSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTZml4ZWQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWpzcGIuYXJpdGguSW50NjQuZnJvbVN0cmluZyh0KSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0Rml4ZWQ2NCh0LmxvLHQuaGkpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRmxvYXQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIpLHRoaXMuZW5jb2Rlcl8ud3JpdGVGbG9hdCh0KSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVGbG9hdFwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUZsb2F0KSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVEb3VibGU9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVEb3VibGUodCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlRG91YmxlXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRG91YmxlKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVCb29sPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKGpzcGIuYXNzZXJ0cy5hc3NlcnQoXCJib29sZWFuXCI9PT10eXBlb2YgdHx8XCJudW1iZXJcIj09PXR5cGVvZiB0KSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlQm9vbCh0KSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVCb29sXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlQm9vbCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRW51bT1mdW5jdGlvbihlLHQpe251bGwhPXQmJihqc3BiLmFzc2VydHMuYXNzZXJ0KHQ+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlU2lnbmVkVmFyaW50MzIodCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlRW51bVwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUVudW0pLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJihlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpLHRoaXMuZW5jb2Rlcl8ud3JpdGVTdHJpbmcodCksdGhpcy5lbmREZWxpbWl0ZWRfKGUpKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVN0cmluZ1wiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVN0cmluZyksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlQnl0ZXM9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodD1qc3BiLnV0aWxzLmJ5dGVTb3VyY2VUb1VpbnQ4QXJyYXkodCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIodC5sZW5ndGgpLHRoaXMuYXBwZW5kVWludDhBcnJheV8odCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlQnl0ZXNcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVCeXRlcyksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlTWVzc2FnZT1mdW5jdGlvbihlLHQsbil7bnVsbCE9dCYmKGU9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSksbih0LHRoaXMpLHRoaXMuZW5kRGVsaW1pdGVkXyhlKSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVNZXNzYWdlXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlTWVzc2FnZSksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlTWVzc2FnZVNldD1mdW5jdGlvbihlLHQsbil7bnVsbCE9dCYmKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oMSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5TVEFSVF9HUk9VUCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXygyLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVNpZ25lZFZhcmludDMyKGUpLGU9dGhpcy5iZWdpbkRlbGltaXRlZF8oMyksbih0LHRoaXMpLHRoaXMuZW5kRGVsaW1pdGVkXyhlKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKDEsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRU5EX0dST1VQKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUdyb3VwPWZ1bmN0aW9uKGUsdCxuKXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlNUQVJUX0dST1VQKSxuKHQsdGhpcyksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkVORF9HUk9VUCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlR3JvdXBcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVHcm91cCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRml4ZWRIYXNoNjQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoanNwYi5hc3NlcnRzLmFzc2VydCg4PT10Lmxlbmd0aCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVGaXhlZEhhc2g2NCh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVZhcmludEhhc2g2ND1mdW5jdGlvbihlLHQpe251bGwhPXQmJihqc3BiLmFzc2VydHMuYXNzZXJ0KDg9PXQubGVuZ3RoKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlVmFyaW50SGFzaDY0KHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU3BsaXRGaXhlZDY0PWZ1bmN0aW9uKGUsdCxuKXt0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0Rml4ZWQ2NCh0LG4pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTcGxpdFZhcmludDY0PWZ1bmN0aW9uKGUsdCxuKXt0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlU3BsaXRWYXJpbnQ2NCh0LG4pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTcGxpdFppZ3phZ1ZhcmludDY0PWZ1bmN0aW9uKGUsdCxuKXt0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKTt2YXIgcj10aGlzLmVuY29kZXJfO2pzcGIudXRpbHMudG9aaWd6YWc2NCh0LG4sKGZ1bmN0aW9uKGUsdCl7ci53cml0ZVNwbGl0VmFyaW50NjQoZT4+PjAsdD4+PjApfSkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlU2lnbmVkVmFyaW50MzJfKGUsdFtuXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVSZXBlYXRlZEludDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRJbnQzMiksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRJbnQzMlN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZUludDMyU3RyaW5nKGUsdFtuXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkSW50NjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMud3JpdGVTaWduZWRWYXJpbnQ2NF8oZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkSW50NjRcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEludDY0KSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNwbGl0Rml4ZWQ2ND1mdW5jdGlvbihlLHQsbixyKXtpZihudWxsIT10KWZvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRoaXMud3JpdGVTcGxpdEZpeGVkNjQoZSxuKHRbaV0pLHIodFtpXSkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNwbGl0VmFyaW50NjQ9ZnVuY3Rpb24oZSx0LG4scil7aWYobnVsbCE9dClmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl0aGlzLndyaXRlU3BsaXRWYXJpbnQ2NChlLG4odFtpXSkscih0W2ldKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU3BsaXRaaWd6YWdWYXJpbnQ2ND1mdW5jdGlvbihlLHQsbixyKXtpZihudWxsIT10KWZvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRoaXMud3JpdGVTcGxpdFppZ3phZ1ZhcmludDY0KGUsbih0W2ldKSxyKHRbaV0pKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRJbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZUludDY0U3RyaW5nKGUsdFtuXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkVWludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlVW5zaWduZWRWYXJpbnQzMl8oZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkVWludDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRVaW50MzIpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkVWludDMyU3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlVWludDMyU3RyaW5nKGUsdFtuXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkVWludDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlVW5zaWduZWRWYXJpbnQ2NF8oZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkVWludDY0XCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRVaW50NjQpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkVWludDY0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlVWludDY0U3RyaW5nKGUsdFtuXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU2ludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlWmlnemFnVmFyaW50MzJfKGUsdFtuXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVSZXBlYXRlZFNpbnQzMlwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU2ludDMyKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNpbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZVppZ3phZ1ZhcmludDY0XyhlLHRbbl0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUmVwZWF0ZWRTaW50NjRcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNpbnQ2NCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRTaW50NjRTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMud3JpdGVaaWd6YWdWYXJpbnQ2NFN0cmluZ18oZSx0W25dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRTaW50SGFzaDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlWmlnemFnVmFyaW50SGFzaDY0XyhlLHRbbl0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEZpeGVkMzI9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMud3JpdGVGaXhlZDMyKGUsdFtuXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVSZXBlYXRlZEZpeGVkMzJcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEZpeGVkMzIpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkRml4ZWQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZUZpeGVkNjQoZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkRml4ZWQ2NFwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkRml4ZWQ2NCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGaXhlZDY0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlRml4ZWQ2NFN0cmluZyhlLHRbbl0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUmVwZWF0ZWRGaXhlZDY0U3RyaW5nXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGaXhlZDY0U3RyaW5nKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNmaXhlZDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlU2ZpeGVkMzIoZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkU2ZpeGVkMzJcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNmaXhlZDMyKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNmaXhlZDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlU2ZpeGVkNjQoZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkU2ZpeGVkNjRcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNmaXhlZDY0KSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNmaXhlZDY0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlU2ZpeGVkNjRTdHJpbmcoZSx0W25dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGbG9hdD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZUZsb2F0KGUsdFtuXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVSZXBlYXRlZEZsb2F0XCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGbG9hdCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWREb3VibGU9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMud3JpdGVEb3VibGUoZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkRG91YmxlXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWREb3VibGUpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkQm9vbD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZUJvb2woZSx0W25dKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkQm9vbFwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkQm9vbCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRFbnVtPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlRW51bShlLHRbbl0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUmVwZWF0ZWRFbnVtXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRFbnVtKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZVN0cmluZyhlLHRbbl0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUmVwZWF0ZWRTdHJpbmdcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFN0cmluZyksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRCeXRlcz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy53cml0ZUJ5dGVzKGUsdFtuXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVSZXBlYXRlZEJ5dGVzXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRCeXRlcyksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRNZXNzYWdlPWZ1bmN0aW9uKGUsdCxuKXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgaT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtuKHRbcl0sdGhpcyksdGhpcy5lbmREZWxpbWl0ZWRfKGkpfX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkTWVzc2FnZVwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkTWVzc2FnZSksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRHcm91cD1mdW5jdGlvbihlLHQsbil7aWYobnVsbCE9dClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuU1RBUlRfR1JPVVApLG4odFtyXSx0aGlzKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRU5EX0dST1VQKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVJlcGVhdGVkR3JvdXBcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEdyb3VwKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEZpeGVkSGFzaDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlRml4ZWRIYXNoNjQoZSx0W25dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRWYXJpbnRIYXNoNjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMud3JpdGVWYXJpbnRIYXNoNjQoZSx0W25dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkSW50MzI9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLmVuY29kZXJfLndyaXRlU2lnbmVkVmFyaW50MzIodFtuXSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVBhY2tlZEludDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkSW50MzIpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZEludDMyU3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5lbmNvZGVyXy53cml0ZVNpZ25lZFZhcmludDMyKHBhcnNlSW50KHRbbl0sMTApKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRJbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMuZW5jb2Rlcl8ud3JpdGVTaWduZWRWYXJpbnQ2NCh0W25dKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUGFja2VkSW50NjRcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRJbnQ2NCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkU3BsaXRGaXhlZDY0PWZ1bmN0aW9uKGUsdCxuLHIpe2lmKG51bGwhPXQpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0Rml4ZWQ2NChuKHRbaV0pLHIodFtpXSkpO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNwbGl0VmFyaW50NjQ9ZnVuY3Rpb24oZSx0LG4scil7aWYobnVsbCE9dCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl0aGlzLmVuY29kZXJfLndyaXRlU3BsaXRWYXJpbnQ2NChuKHRbaV0pLHIodFtpXSkpO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNwbGl0WmlnemFnVmFyaW50NjQ9ZnVuY3Rpb24oZSx0LG4scil7aWYobnVsbCE9dCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIGk9dGhpcy5lbmNvZGVyXyxvPTA7bzx0Lmxlbmd0aDtvKyspanNwYi51dGlscy50b1ppZ3phZzY0KG4odFtvXSkscih0W29dKSwoZnVuY3Rpb24oZSx0KXtpLndyaXRlU3BsaXRWYXJpbnQ2NChlPj4+MCx0Pj4+MCl9KSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkSW50NjRTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9anNwYi5hcml0aC5JbnQ2NC5mcm9tU3RyaW5nKHRbbl0pO3RoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdFZhcmludDY0KHIubG8sci5oaSl9dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkVWludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIodFtuXSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVBhY2tlZFVpbnQzMlwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQzMiksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkVWludDMyU3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIocGFyc2VJbnQodFtuXSwxMCkpO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDY0KHRbbl0pO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVQYWNrZWRVaW50NjRcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRVaW50NjQpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj1qc3BiLmFyaXRoLlVJbnQ2NC5mcm9tU3RyaW5nKHRbbl0pO3RoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdFZhcmludDY0KHIubG8sci5oaSl9dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkU2ludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5lbmNvZGVyXy53cml0ZVppZ3phZ1ZhcmludDMyKHRbbl0pO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVQYWNrZWRTaW50MzJcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTaW50MzIpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNpbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMuZW5jb2Rlcl8ud3JpdGVaaWd6YWdWYXJpbnQ2NCh0W25dKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUGFja2VkU2ludDY0XCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkU2ludDY0KSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTaW50NjRTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLmVuY29kZXJfLndyaXRlWmlnemFnVmFyaW50SGFzaDY0KGpzcGIudXRpbHMuZGVjaW1hbFN0cmluZ1RvSGFzaDY0KHRbbl0pKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTaW50SGFzaDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5lbmNvZGVyXy53cml0ZVppZ3phZ1ZhcmludEhhc2g2NCh0W25dKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRGaXhlZDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDQqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmVuY29kZXJfLndyaXRlVWludDMyKHRbZV0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUGFja2VkRml4ZWQzMlwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZEZpeGVkMzIpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZEZpeGVkNjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIoOCp0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMuZW5jb2Rlcl8ud3JpdGVVaW50NjQodFtlXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVQYWNrZWRGaXhlZDY0XCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRml4ZWQ2NCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRml4ZWQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig4KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPWpzcGIuYXJpdGguVUludDY0LmZyb21TdHJpbmcodFtlXSk7dGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0Rml4ZWQ2NChuLmxvLG4uaGkpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkU2ZpeGVkMzI9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIoNCp0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMuZW5jb2Rlcl8ud3JpdGVJbnQzMih0W2VdKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUsXCJ3cml0ZVBhY2tlZFNmaXhlZDMyXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkU2ZpeGVkMzIpLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNmaXhlZDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDgqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmVuY29kZXJfLndyaXRlSW50NjQodFtlXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVQYWNrZWRTZml4ZWQ2NFwiLGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNmaXhlZDY0KSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTZml4ZWQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig4KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5lbmNvZGVyXy53cml0ZUludDY0U3RyaW5nKHRbZV0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRGbG9hdD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig0KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5lbmNvZGVyXy53cml0ZUZsb2F0KHRbZV0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUGFja2VkRmxvYXRcIixqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRGbG9hdCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRG91YmxlPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDgqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmVuY29kZXJfLndyaXRlRG91YmxlKHRbZV0pfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZSxcIndyaXRlUGFja2VkRG91YmxlXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRG91YmxlKSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRCb29sPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKHQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5lbmNvZGVyXy53cml0ZUJvb2wodFtlXSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVQYWNrZWRCb29sXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkQm9vbCksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRW51bT1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMuZW5jb2Rlcl8ud3JpdGVFbnVtKHRbbl0pO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLFwid3JpdGVQYWNrZWRFbnVtXCIsanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRW51bSksanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRml4ZWRIYXNoNjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIoOCp0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMuZW5jb2Rlcl8ud3JpdGVGaXhlZEhhc2g2NCh0W2VdKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkVmFyaW50SGFzaDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5lbmNvZGVyXy53cml0ZVZhcmludEhhc2g2NCh0W25dKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLk1hcD1mdW5jdGlvbihlLHQpe3RoaXMuYXJyXz1lLHRoaXMudmFsdWVDdG9yXz10LHRoaXMubWFwXz17fSx0aGlzLmFyckNsZWFuPSEwLDA8dGhpcy5hcnJfLmxlbmd0aCYmdGhpcy5sb2FkRnJvbUFycmF5XygpfSxnb29nLmV4cG9ydFN5bWJvbChcImpzcGIuTWFwXCIsanNwYi5NYXApLGpzcGIuTWFwLnByb3RvdHlwZS5sb2FkRnJvbUFycmF5Xz1mdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8dGhpcy5hcnJfLmxlbmd0aDtlKyspe3ZhciB0PXRoaXMuYXJyX1tlXSxuPXRbMF07dGhpcy5tYXBfW24udG9TdHJpbmcoKV09bmV3IGpzcGIuTWFwLkVudHJ5XyhuLHRbMV0pfXRoaXMuYXJyQ2xlYW49ITB9LGpzcGIuTWFwLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7aWYodGhpcy5hcnJDbGVhbil7aWYodGhpcy52YWx1ZUN0b3JfKXt2YXIgZSx0PXRoaXMubWFwXztmb3IoZSBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpKXt2YXIgbj10W2VdLnZhbHVlV3JhcHBlcjtuJiZuLnRvQXJyYXkoKX19fWVsc2V7Zm9yKHRoaXMuYXJyXy5sZW5ndGg9MCwodD10aGlzLnN0cmluZ0tleXNfKCkpLnNvcnQoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXRoaXMubWFwX1t0W2VdXTsobj1yLnZhbHVlV3JhcHBlcikmJm4udG9BcnJheSgpLHRoaXMuYXJyXy5wdXNoKFtyLmtleSxyLnZhbHVlXSl9dGhpcy5hcnJDbGVhbj0hMH1yZXR1cm4gdGhpcy5hcnJffSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcInRvQXJyYXlcIixqc3BiLk1hcC5wcm90b3R5cGUudG9BcnJheSksanNwYi5NYXAucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPXRoaXMudG9BcnJheSgpLHI9W10saT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz10aGlzLm1hcF9bbltpXVswXS50b1N0cmluZygpXTt0aGlzLndyYXBFbnRyeV8obyk7dmFyIGE9by52YWx1ZVdyYXBwZXI7YT8oanNwYi5hc3NlcnRzLmFzc2VydCh0KSxyLnB1c2goW28ua2V5LHQoZSxhKV0pKTpyLnB1c2goW28ua2V5LG8udmFsdWVdKX1yZXR1cm4gcn0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1hcC5wcm90b3R5cGUsXCJ0b09iamVjdFwiLGpzcGIuTWFwLnByb3RvdHlwZS50b09iamVjdCksanNwYi5NYXAuZnJvbU9iamVjdD1mdW5jdGlvbihlLHQsbil7dD1uZXcganNwYi5NYXAoW10sdCk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl1bMF0sbz1uKGVbcl1bMV0pO3Quc2V0KGksbyl9cmV0dXJuIHR9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NYXAsXCJmcm9tT2JqZWN0XCIsanNwYi5NYXAuZnJvbU9iamVjdCksanNwYi5NYXAuQXJyYXlJdGVyYXRvckl0ZXJhYmxlXz1mdW5jdGlvbihlKXt0aGlzLmlkeF89MCx0aGlzLmFycl89ZX0sanNwYi5NYXAuQXJyYXlJdGVyYXRvckl0ZXJhYmxlXy5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlkeF88dGhpcy5hcnJfLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTp0aGlzLmFycl9bdGhpcy5pZHhfKytdfTp7ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fSxcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiYoanNwYi5NYXAuQXJyYXlJdGVyYXRvckl0ZXJhYmxlXy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksanNwYi5NYXAucHJvdG90eXBlLmdldExlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0cmluZ0tleXNfKCkubGVuZ3RofSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcImdldExlbmd0aFwiLGpzcGIuTWFwLnByb3RvdHlwZS5nZXRMZW5ndGgpLGpzcGIuTWFwLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMubWFwXz17fSx0aGlzLmFyckNsZWFuPSExfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcImNsZWFyXCIsanNwYi5NYXAucHJvdG90eXBlLmNsZWFyKSxqc3BiLk1hcC5wcm90b3R5cGUuZGVsPWZ1bmN0aW9uKGUpe2U9ZS50b1N0cmluZygpO3ZhciB0PXRoaXMubWFwXy5oYXNPd25Qcm9wZXJ0eShlKTtyZXR1cm4gZGVsZXRlIHRoaXMubWFwX1tlXSx0aGlzLmFyckNsZWFuPSExLHR9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NYXAucHJvdG90eXBlLFwiZGVsXCIsanNwYi5NYXAucHJvdG90eXBlLmRlbCksanNwYi5NYXAucHJvdG90eXBlLmdldEVudHJ5TGlzdD1mdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcy5zdHJpbmdLZXlzXygpO3Quc29ydCgpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10aGlzLm1hcF9bdFtuXV07ZS5wdXNoKFtyLmtleSxyLnZhbHVlXSl9cmV0dXJuIGV9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NYXAucHJvdG90eXBlLFwiZ2V0RW50cnlMaXN0XCIsanNwYi5NYXAucHJvdG90eXBlLmdldEVudHJ5TGlzdCksanNwYi5NYXAucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0PXRoaXMuc3RyaW5nS2V5c18oKTt0LnNvcnQoKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dGhpcy5tYXBfW3Rbbl1dO2UucHVzaChbci5rZXksdGhpcy53cmFwRW50cnlfKHIpXSl9cmV0dXJuIG5ldyBqc3BiLk1hcC5BcnJheUl0ZXJhdG9ySXRlcmFibGVfKGUpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcImVudHJpZXNcIixqc3BiLk1hcC5wcm90b3R5cGUuZW50cmllcyksanNwYi5NYXAucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0PXRoaXMuc3RyaW5nS2V5c18oKTt0LnNvcnQoKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyllLnB1c2godGhpcy5tYXBfW3Rbbl1dLmtleSk7cmV0dXJuIG5ldyBqc3BiLk1hcC5BcnJheUl0ZXJhdG9ySXRlcmFibGVfKGUpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcImtleXNcIixqc3BiLk1hcC5wcm90b3R5cGUua2V5cyksanNwYi5NYXAucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcy5zdHJpbmdLZXlzXygpO3Quc29ydCgpO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWUucHVzaCh0aGlzLndyYXBFbnRyeV8odGhpcy5tYXBfW3Rbbl1dKSk7cmV0dXJuIG5ldyBqc3BiLk1hcC5BcnJheUl0ZXJhdG9ySXRlcmFibGVfKGUpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcInZhbHVlc1wiLGpzcGIuTWFwLnByb3RvdHlwZS52YWx1ZXMpLGpzcGIuTWFwLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5zdHJpbmdLZXlzXygpO24uc29ydCgpO2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgaT10aGlzLm1hcF9bbltyXV07ZS5jYWxsKHQsdGhpcy53cmFwRW50cnlfKGkpLGkua2V5LHRoaXMpfX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1hcC5wcm90b3R5cGUsXCJmb3JFYWNoXCIsanNwYi5NYXAucHJvdG90eXBlLmZvckVhY2gpLGpzcGIuTWFwLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1uZXcganNwYi5NYXAuRW50cnlfKGUpO3JldHVybiB0aGlzLnZhbHVlQ3Rvcl8/KG4udmFsdWVXcmFwcGVyPXQsbi52YWx1ZT10LnRvQXJyYXkoKSk6bi52YWx1ZT10LHRoaXMubWFwX1tlLnRvU3RyaW5nKCldPW4sdGhpcy5hcnJDbGVhbj0hMSx0aGlzfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcInNldFwiLGpzcGIuTWFwLnByb3RvdHlwZS5zZXQpLGpzcGIuTWFwLnByb3RvdHlwZS53cmFwRW50cnlfPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnZhbHVlQ3Rvcl8/KGUudmFsdWVXcmFwcGVyfHwoZS52YWx1ZVdyYXBwZXI9bmV3IHRoaXMudmFsdWVDdG9yXyhlLnZhbHVlKSksZS52YWx1ZVdyYXBwZXIpOmUudmFsdWV9LGpzcGIuTWFwLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7aWYoZT10aGlzLm1hcF9bZS50b1N0cmluZygpXSlyZXR1cm4gdGhpcy53cmFwRW50cnlfKGUpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcImdldFwiLGpzcGIuTWFwLnByb3RvdHlwZS5nZXQpLGpzcGIuTWFwLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9TdHJpbmcoKWluIHRoaXMubWFwX30sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1hcC5wcm90b3R5cGUsXCJoYXNcIixqc3BiLk1hcC5wcm90b3R5cGUuaGFzKSxqc3BiLk1hcC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG89dGhpcy5zdHJpbmdLZXlzXygpO28uc29ydCgpO2Zvcih2YXIgYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcz10aGlzLm1hcF9bb1thXV07dC5iZWdpblN1Yk1lc3NhZ2UoZSksbi5jYWxsKHQsMSxzLmtleSksdGhpcy52YWx1ZUN0b3JfP3IuY2FsbCh0LDIsdGhpcy53cmFwRW50cnlfKHMpLGkpOnIuY2FsbCh0LDIscy52YWx1ZSksdC5lbmRTdWJNZXNzYWdlKCl9fSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLnByb3RvdHlwZSxcInNlcmlhbGl6ZUJpbmFyeVwiLGpzcGIuTWFwLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnkpLGpzcGIuTWFwLmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOyl7dmFyIHM9dC5nZXRGaWVsZE51bWJlcigpOzE9PXM/bz1uLmNhbGwodCk6Mj09cyYmKGUudmFsdWVDdG9yXz8oanNwYi5hc3NlcnRzLmFzc2VydChpKSxhfHwoYT1uZXcgZS52YWx1ZUN0b3JfKSxyLmNhbGwodCxhLGkpKTphPXIuY2FsbCh0KSl9anNwYi5hc3NlcnRzLmFzc2VydCh2b2lkIDAhPW8pLGpzcGIuYXNzZXJ0cy5hc3NlcnQodm9pZCAwIT1hKSxlLnNldChvLGEpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWFwLFwiZGVzZXJpYWxpemVCaW5hcnlcIixqc3BiLk1hcC5kZXNlcmlhbGl6ZUJpbmFyeSksanNwYi5NYXAucHJvdG90eXBlLnN0cmluZ0tleXNfPWZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLm1hcF8sbj1bXTtmb3IoZSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZuLnB1c2goZSk7cmV0dXJuIG59LGpzcGIuTWFwLkVudHJ5Xz1mdW5jdGlvbihlLHQpe3RoaXMua2V5PWUsdGhpcy52YWx1ZT10LHRoaXMudmFsdWVXcmFwcGVyPXZvaWQgMH0sanNwYi5FeHRlbnNpb25GaWVsZEluZm89ZnVuY3Rpb24oZSx0LG4scixpKXt0aGlzLmZpZWxkSW5kZXg9ZSx0aGlzLmZpZWxkTmFtZT10LHRoaXMuY3Rvcj1uLHRoaXMudG9PYmplY3RGbj1yLHRoaXMuaXNSZXBlYXRlZD1pfSxnb29nLmV4cG9ydFN5bWJvbChcImpzcGIuRXh0ZW5zaW9uRmllbGRJbmZvXCIsanNwYi5FeHRlbnNpb25GaWVsZEluZm8pLGpzcGIuRXh0ZW5zaW9uRmllbGRCaW5hcnlJbmZvPWZ1bmN0aW9uKGUsdCxuLHIsaSxvKXt0aGlzLmZpZWxkSW5mbz1lLHRoaXMuYmluYXJ5UmVhZGVyRm49dCx0aGlzLmJpbmFyeVdyaXRlckZuPW4sdGhpcy5iaW5hcnlNZXNzYWdlU2VyaWFsaXplRm49cix0aGlzLmJpbmFyeU1lc3NhZ2VEZXNlcmlhbGl6ZUZuPWksdGhpcy5pc1BhY2tlZD1vfSxnb29nLmV4cG9ydFN5bWJvbChcImpzcGIuRXh0ZW5zaW9uRmllbGRCaW5hcnlJbmZvXCIsanNwYi5FeHRlbnNpb25GaWVsZEJpbmFyeUluZm8pLGpzcGIuRXh0ZW5zaW9uRmllbGRJbmZvLnByb3RvdHlwZS5pc01lc3NhZ2VUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmN0b3J9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5FeHRlbnNpb25GaWVsZEluZm8ucHJvdG90eXBlLFwiaXNNZXNzYWdlVHlwZVwiLGpzcGIuRXh0ZW5zaW9uRmllbGRJbmZvLnByb3RvdHlwZS5pc01lc3NhZ2VUeXBlKSxqc3BiLk1lc3NhZ2U9ZnVuY3Rpb24oKXt9LGdvb2cuZXhwb3J0U3ltYm9sKFwianNwYi5NZXNzYWdlXCIsanNwYi5NZXNzYWdlKSxqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUPSEwLGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiR0VORVJBVEVfVE9fT0JKRUNUXCIsanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCksanNwYi5NZXNzYWdlLkdFTkVSQVRFX0ZST01fT0JKRUNUPSFnb29nLkRJU0FMTE9XX1RFU1RfT05MWV9DT0RFLGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiR0VORVJBVEVfRlJPTV9PQkpFQ1RcIixqc3BiLk1lc3NhZ2UuR0VORVJBVEVfRlJPTV9PQkpFQ1QpLGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19TVFJJTkc9ITAsanNwYi5NZXNzYWdlLkFTU1VNRV9MT0NBTF9BUlJBWVM9ITEsanNwYi5NZXNzYWdlLlNFUklBTElaRV9FTVBUWV9UUkFJTElOR19GSUVMRFM9ITAsanNwYi5NZXNzYWdlLlNVUFBPUlRTX1VJTlQ4QVJSQVlfPVwiZnVuY3Rpb25cIj09dHlwZW9mIFVpbnQ4QXJyYXksanNwYi5NZXNzYWdlLnByb3RvdHlwZS5nZXRKc1BiTWVzc2FnZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZUlkX30sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UucHJvdG90eXBlLFwiZ2V0SnNQYk1lc3NhZ2VJZFwiLGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuZ2V0SnNQYk1lc3NhZ2VJZCksanNwYi5NZXNzYWdlLmdldEluZGV4Xz1mdW5jdGlvbihlLHQpe3JldHVybiB0K2UuYXJyYXlJbmRleE9mZnNldF99LGpzcGIuTWVzc2FnZS5oaWRkZW5FUzZQcm9wZXJ0eV89ZnVuY3Rpb24oKXt9LGpzcGIuTWVzc2FnZS5nZXRGaWVsZE51bWJlcl89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC1lLmFycmF5SW5kZXhPZmZzZXRffSxqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLHQsbixyLGksbyl7aWYoZS53cmFwcGVyc189bnVsbCx0fHwodD1uP1tuXTpbXSksZS5tZXNzYWdlSWRfPW4/U3RyaW5nKG4pOnZvaWQgMCxlLmFycmF5SW5kZXhPZmZzZXRfPTA9PT1uPy0xOjAsZS5hcnJheT10LGpzcGIuTWVzc2FnZS5pbml0UGl2b3RBbmRFeHRlbnNpb25PYmplY3RfKGUsciksZS5jb252ZXJ0ZWRQcmltaXRpdmVGaWVsZHNfPXt9LGpzcGIuTWVzc2FnZS5TRVJJQUxJWkVfRU1QVFlfVFJBSUxJTkdfRklFTERTfHwoZS5yZXBlYXRlZEZpZWxkcz1pKSxpKWZvcih0PTA7dDxpLmxlbmd0aDt0KyspKG49aVt0XSk8ZS5waXZvdF8/KG49anNwYi5NZXNzYWdlLmdldEluZGV4XyhlLG4pLGUuYXJyYXlbbl09ZS5hcnJheVtuXXx8anNwYi5NZXNzYWdlLkVNUFRZX0xJU1RfU0VOVElORUxfKTooanNwYi5NZXNzYWdlLm1heWJlSW5pdEVtcHR5RXh0ZW5zaW9uT2JqZWN0XyhlKSxlLmV4dGVuc2lvbk9iamVjdF9bbl09ZS5leHRlbnNpb25PYmplY3RfW25dfHxqc3BiLk1lc3NhZ2UuRU1QVFlfTElTVF9TRU5USU5FTF8pO2lmKG8mJm8ubGVuZ3RoKWZvcih0PTA7dDxvLmxlbmd0aDt0KyspanNwYi5NZXNzYWdlLmNvbXB1dGVPbmVvZkNhc2UoZSxvW3RdKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJpbml0aWFsaXplXCIsanNwYi5NZXNzYWdlLmluaXRpYWxpemUpLGpzcGIuTWVzc2FnZS5FTVBUWV9MSVNUX1NFTlRJTkVMXz1nb29nLkRFQlVHJiZPYmplY3QuZnJlZXplP09iamVjdC5mcmVlemUoW10pOltdLGpzcGIuTWVzc2FnZS5pc0FycmF5Xz1mdW5jdGlvbihlKXtyZXR1cm4ganNwYi5NZXNzYWdlLkFTU1VNRV9MT0NBTF9BUlJBWVM/ZSBpbnN0YW5jZW9mIEFycmF5OkFycmF5LmlzQXJyYXkoZSl9LGpzcGIuTWVzc2FnZS5pc0V4dGVuc2lvbk9iamVjdF89ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZSYmIWpzcGIuTWVzc2FnZS5pc0FycmF5XyhlKSYmIShqc3BiLk1lc3NhZ2UuU1VQUE9SVFNfVUlOVDhBUlJBWV8mJmUgaW5zdGFuY2VvZiBVaW50OEFycmF5KX0sanNwYi5NZXNzYWdlLmluaXRQaXZvdEFuZEV4dGVuc2lvbk9iamVjdF89ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmFycmF5Lmxlbmd0aCxyPS0xO2lmKG4mJihyPW4tMSxuPWUuYXJyYXlbcl0sanNwYi5NZXNzYWdlLmlzRXh0ZW5zaW9uT2JqZWN0XyhuKSkpcmV0dXJuIGUucGl2b3RfPWpzcGIuTWVzc2FnZS5nZXRGaWVsZE51bWJlcl8oZSxyKSx2b2lkKGUuZXh0ZW5zaW9uT2JqZWN0Xz1uKTstMTx0PyhlLnBpdm90Xz1NYXRoLm1heCh0LGpzcGIuTWVzc2FnZS5nZXRGaWVsZE51bWJlcl8oZSxyKzEpKSxlLmV4dGVuc2lvbk9iamVjdF89bnVsbCk6ZS5waXZvdF89TnVtYmVyLk1BWF9WQUxVRX0sanNwYi5NZXNzYWdlLm1heWJlSW5pdEVtcHR5RXh0ZW5zaW9uT2JqZWN0Xz1mdW5jdGlvbihlKXt2YXIgdD1qc3BiLk1lc3NhZ2UuZ2V0SW5kZXhfKGUsZS5waXZvdF8pO2UuYXJyYXlbdF18fChlLmV4dGVuc2lvbk9iamVjdF89ZS5hcnJheVt0XT17fSl9LGpzcGIuTWVzc2FnZS50b09iamVjdExpc3Q9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspcltpXT10LmNhbGwoZVtpXSxuLGVbaV0pO3JldHVybiByfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcInRvT2JqZWN0TGlzdFwiLGpzcGIuTWVzc2FnZS50b09iamVjdExpc3QpLGpzcGIuTWVzc2FnZS50b09iamVjdEV4dGVuc2lvbj1mdW5jdGlvbihlLHQsbixyLGkpe2Zvcih2YXIgbyBpbiBuKXt2YXIgYT1uW29dLHM9ci5jYWxsKGUsYSk7aWYobnVsbCE9cyl7Zm9yKHZhciBjIGluIGEuZmllbGROYW1lKWlmKGEuZmllbGROYW1lLmhhc093blByb3BlcnR5KGMpKWJyZWFrO3RbY109YS50b09iamVjdEZuP2EuaXNSZXBlYXRlZD9qc3BiLk1lc3NhZ2UudG9PYmplY3RMaXN0KHMsYS50b09iamVjdEZuLGkpOmEudG9PYmplY3RGbihpLHMpOnN9fX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJ0b09iamVjdEV4dGVuc2lvblwiLGpzcGIuTWVzc2FnZS50b09iamVjdEV4dGVuc2lvbiksanNwYi5NZXNzYWdlLnNlcmlhbGl6ZUJpbmFyeUV4dGVuc2lvbnM9ZnVuY3Rpb24oZSx0LG4scil7Zm9yKHZhciBpIGluIG4pe3ZhciBvPW5baV0sYT1vLmZpZWxkSW5mbztpZighby5iaW5hcnlXcml0ZXJGbil0aHJvdyBFcnJvcihcIk1lc3NhZ2UgZXh0ZW5zaW9uIHByZXNlbnQgdGhhdCB3YXMgZ2VuZXJhdGVkIHdpdGhvdXQgYmluYXJ5IHNlcmlhbGl6YXRpb24gc3VwcG9ydFwiKTt2YXIgcz1yLmNhbGwoZSxhKTtpZihudWxsIT1zKWlmKGEuaXNNZXNzYWdlVHlwZSgpKXtpZighby5iaW5hcnlNZXNzYWdlU2VyaWFsaXplRm4pdGhyb3cgRXJyb3IoXCJNZXNzYWdlIGV4dGVuc2lvbiBwcmVzZW50IGhvbGRpbmcgc3VibWVzc2FnZSB3aXRob3V0IGJpbmFyeSBzdXBwb3J0IGVuYWJsZWQsIGFuZCBtZXNzYWdlIGlzIGJlaW5nIHNlcmlhbGl6ZWQgdG8gYmluYXJ5IGZvcm1hdFwiKTtvLmJpbmFyeVdyaXRlckZuLmNhbGwodCxhLmZpZWxkSW5kZXgscyxvLmJpbmFyeU1lc3NhZ2VTZXJpYWxpemVGbil9ZWxzZSBvLmJpbmFyeVdyaXRlckZuLmNhbGwodCxhLmZpZWxkSW5kZXgscyl9fSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcInNlcmlhbGl6ZUJpbmFyeUV4dGVuc2lvbnNcIixqc3BiLk1lc3NhZ2Uuc2VyaWFsaXplQmluYXJ5RXh0ZW5zaW9ucyksanNwYi5NZXNzYWdlLnJlYWRCaW5hcnlFeHRlbnNpb249ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbz1uW3QuZ2V0RmllbGROdW1iZXIoKV07aWYobyl7aWYobj1vLmZpZWxkSW5mbywhby5iaW5hcnlSZWFkZXJGbil0aHJvdyBFcnJvcihcIkRlc2VyaWFsaXppbmcgZXh0ZW5zaW9uIHdob3NlIGdlbmVyYXRlZCBjb2RlIGRvZXMgbm90IHN1cHBvcnQgYmluYXJ5IGZvcm1hdFwiKTtpZihuLmlzTWVzc2FnZVR5cGUoKSl7dmFyIGE9bmV3IG4uY3RvcjtvLmJpbmFyeVJlYWRlckZuLmNhbGwodCxhLG8uYmluYXJ5TWVzc2FnZURlc2VyaWFsaXplRm4pfWVsc2UgYT1vLmJpbmFyeVJlYWRlckZuLmNhbGwodCk7bi5pc1JlcGVhdGVkJiYhby5pc1BhY2tlZD8odD1yLmNhbGwoZSxuKSk/dC5wdXNoKGEpOmkuY2FsbChlLG4sW2FdKTppLmNhbGwoZSxuLGEpfWVsc2UgdC5za2lwRmllbGQoKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJyZWFkQmluYXJ5RXh0ZW5zaW9uXCIsanNwYi5NZXNzYWdlLnJlYWRCaW5hcnlFeHRlbnNpb24pLGpzcGIuTWVzc2FnZS5nZXRGaWVsZD1mdW5jdGlvbihlLHQpe2lmKHQ8ZS5waXZvdF8pe3Q9anNwYi5NZXNzYWdlLmdldEluZGV4XyhlLHQpO3ZhciBuPWUuYXJyYXlbdF07cmV0dXJuIG49PT1qc3BiLk1lc3NhZ2UuRU1QVFlfTElTVF9TRU5USU5FTF8/ZS5hcnJheVt0XT1bXTpufWlmKGUuZXh0ZW5zaW9uT2JqZWN0XylyZXR1cm4obj1lLmV4dGVuc2lvbk9iamVjdF9bdF0pPT09anNwYi5NZXNzYWdlLkVNUFRZX0xJU1RfU0VOVElORUxfP2UuZXh0ZW5zaW9uT2JqZWN0X1t0XT1bXTpufSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImdldEZpZWxkXCIsanNwYi5NZXNzYWdlLmdldEZpZWxkKSxqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZD1mdW5jdGlvbihlLHQpe3JldHVybiBqc3BiLk1lc3NhZ2UuZ2V0RmllbGQoZSx0KX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJnZXRSZXBlYXRlZEZpZWxkXCIsanNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQpLGpzcGIuTWVzc2FnZS5nZXRPcHRpb25hbEZsb2F0aW5nUG9pbnRGaWVsZD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT0oZT1qc3BiLk1lc3NhZ2UuZ2V0RmllbGQoZSx0KSk/ZTorZX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJnZXRPcHRpb25hbEZsb2F0aW5nUG9pbnRGaWVsZFwiLGpzcGIuTWVzc2FnZS5nZXRPcHRpb25hbEZsb2F0aW5nUG9pbnRGaWVsZCksanNwYi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT0oZT1qc3BiLk1lc3NhZ2UuZ2V0RmllbGQoZSx0KSk/ZTohIWV9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiZ2V0Qm9vbGVhbkZpZWxkXCIsanNwYi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZCksanNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmxvYXRpbmdQb2ludEZpZWxkPWZ1bmN0aW9uKGUsdCl7dmFyIG49anNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQoZSx0KTtpZihlLmNvbnZlcnRlZFByaW1pdGl2ZUZpZWxkc198fChlLmNvbnZlcnRlZFByaW1pdGl2ZUZpZWxkc189e30pLCFlLmNvbnZlcnRlZFByaW1pdGl2ZUZpZWxkc19bdF0pe2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKW5bcl09K25bcl07ZS5jb252ZXJ0ZWRQcmltaXRpdmVGaWVsZHNfW3RdPSEwfXJldHVybiBufSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImdldFJlcGVhdGVkRmxvYXRpbmdQb2ludEZpZWxkXCIsanNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmxvYXRpbmdQb2ludEZpZWxkKSxqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRCb29sZWFuRmllbGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1qc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZChlLHQpO2lmKGUuY29udmVydGVkUHJpbWl0aXZlRmllbGRzX3x8KGUuY29udmVydGVkUHJpbWl0aXZlRmllbGRzXz17fSksIWUuY29udmVydGVkUHJpbWl0aXZlRmllbGRzX1t0XSl7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspbltyXT0hIW5bcl07ZS5jb252ZXJ0ZWRQcmltaXRpdmVGaWVsZHNfW3RdPSEwfXJldHVybiBufSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImdldFJlcGVhdGVkQm9vbGVhbkZpZWxkXCIsanNwYi5NZXNzYWdlLmdldFJlcGVhdGVkQm9vbGVhbkZpZWxkKSxqc3BiLk1lc3NhZ2UuYnl0ZXNBc0I2ND1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZXx8XCJzdHJpbmdcIj09PXR5cGVvZiBlP2U6anNwYi5NZXNzYWdlLlNVUFBPUlRTX1VJTlQ4QVJSQVlfJiZlIGluc3RhbmNlb2YgVWludDhBcnJheT9nb29nLmNyeXB0LmJhc2U2NC5lbmNvZGVCeXRlQXJyYXkoZSk6KGpzcGIuYXNzZXJ0cy5mYWlsKFwiQ2Fubm90IGNvZXJjZSB0byBiNjQgc3RyaW5nOiBcIitnb29nLnR5cGVPZihlKSksbnVsbCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiYnl0ZXNBc0I2NFwiLGpzcGIuTWVzc2FnZS5ieXRlc0FzQjY0KSxqc3BiLk1lc3NhZ2UuYnl0ZXNBc1U4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHxlIGluc3RhbmNlb2YgVWludDhBcnJheT9lOlwic3RyaW5nXCI9PT10eXBlb2YgZT9nb29nLmNyeXB0LmJhc2U2NC5kZWNvZGVTdHJpbmdUb1VpbnQ4QXJyYXkoZSk6KGpzcGIuYXNzZXJ0cy5mYWlsKFwiQ2Fubm90IGNvZXJjZSB0byBVaW50OEFycmF5OiBcIitnb29nLnR5cGVPZihlKSksbnVsbCl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiYnl0ZXNBc1U4XCIsanNwYi5NZXNzYWdlLmJ5dGVzQXNVOCksanNwYi5NZXNzYWdlLmJ5dGVzTGlzdEFzQjY0PWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLk1lc3NhZ2UuYXNzZXJ0Q29uc2lzdGVudFR5cGVzXyhlKSxlLmxlbmd0aCYmXCJzdHJpbmdcIiE9PXR5cGVvZiBlWzBdP2dvb2cuYXJyYXkubWFwKGUsanNwYi5NZXNzYWdlLmJ5dGVzQXNCNjQpOmV9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiYnl0ZXNMaXN0QXNCNjRcIixqc3BiLk1lc3NhZ2UuYnl0ZXNMaXN0QXNCNjQpLGpzcGIuTWVzc2FnZS5ieXRlc0xpc3RBc1U4PWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLk1lc3NhZ2UuYXNzZXJ0Q29uc2lzdGVudFR5cGVzXyhlKSwhZS5sZW5ndGh8fGVbMF1pbnN0YW5jZW9mIFVpbnQ4QXJyYXk/ZTpnb29nLmFycmF5Lm1hcChlLGpzcGIuTWVzc2FnZS5ieXRlc0FzVTgpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImJ5dGVzTGlzdEFzVThcIixqc3BiLk1lc3NhZ2UuYnl0ZXNMaXN0QXNVOCksanNwYi5NZXNzYWdlLmFzc2VydENvbnNpc3RlbnRUeXBlc189ZnVuY3Rpb24oZSl7aWYoZ29vZy5ERUJVRyYmZSYmMTxlLmxlbmd0aCl7dmFyIHQ9Z29vZy50eXBlT2YoZVswXSk7Z29vZy5hcnJheS5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe2dvb2cudHlwZU9mKGUpIT10JiZqc3BiLmFzc2VydHMuZmFpbChcIkluY29uc2lzdGVudCB0eXBlIGluIEpTUEIgcmVwZWF0ZWQgZmllbGQgYXJyYXkuIEdvdCBcIitnb29nLnR5cGVPZihlKStcIiBleHBlY3RlZCBcIit0KX0pKX19LGpzcGIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09KGU9anNwYi5NZXNzYWdlLmdldEZpZWxkKGUsdCkpP246ZX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJnZXRGaWVsZFdpdGhEZWZhdWx0XCIsanNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQpLGpzcGIuTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG51bGw9PShlPWpzcGIuTWVzc2FnZS5nZXRCb29sZWFuRmllbGQoZSx0KSk/bjplfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0XCIsanNwYi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KSxqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBudWxsPT0oZT1qc3BiLk1lc3NhZ2UuZ2V0T3B0aW9uYWxGbG9hdGluZ1BvaW50RmllbGQoZSx0KSk/bjplfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImdldEZsb2F0aW5nUG9pbnRGaWVsZFdpdGhEZWZhdWx0XCIsanNwYi5NZXNzYWdlLmdldEZsb2F0aW5nUG9pbnRGaWVsZFdpdGhEZWZhdWx0KSxqc3BiLk1lc3NhZ2UuZ2V0RmllbGRQcm90bzM9anNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQsZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJnZXRGaWVsZFByb3RvM1wiLGpzcGIuTWVzc2FnZS5nZXRGaWVsZFByb3RvMyksanNwYi5NZXNzYWdlLmdldE1hcEZpZWxkPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUud3JhcHBlcnNffHwoZS53cmFwcGVyc189e30pLHQgaW4gZS53cmFwcGVyc18pcmV0dXJuIGUud3JhcHBlcnNfW3RdO3ZhciBpPWpzcGIuTWVzc2FnZS5nZXRGaWVsZChlLHQpO2lmKCFpKXtpZihuKXJldHVybjtpPVtdLGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLHQsaSl9cmV0dXJuIGUud3JhcHBlcnNfW3RdPW5ldyBqc3BiLk1hcChpLHIpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImdldE1hcEZpZWxkXCIsanNwYi5NZXNzYWdlLmdldE1hcEZpZWxkKSxqc3BiLk1lc3NhZ2Uuc2V0RmllbGQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZihlLGpzcGIuTWVzc2FnZSksdDxlLnBpdm90Xz9lLmFycmF5W2pzcGIuTWVzc2FnZS5nZXRJbmRleF8oZSx0KV09bjooanNwYi5NZXNzYWdlLm1heWJlSW5pdEVtcHR5RXh0ZW5zaW9uT2JqZWN0XyhlKSxlLmV4dGVuc2lvbk9iamVjdF9bdF09biksZX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJzZXRGaWVsZFwiLGpzcGIuTWVzc2FnZS5zZXRGaWVsZCksanNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkSWdub3JpbmdEZWZhdWx0XyhlLHQsbiwwKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJzZXRQcm90bzNJbnRGaWVsZFwiLGpzcGIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCksanNwYi5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqc3BiLk1lc3NhZ2Uuc2V0RmllbGRJZ25vcmluZ0RlZmF1bHRfKGUsdCxuLDApfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcInNldFByb3RvM0Zsb2F0RmllbGRcIixqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zRmxvYXRGaWVsZCksanNwYi5NZXNzYWdlLnNldFByb3RvM0Jvb2xlYW5GaWVsZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZElnbm9yaW5nRGVmYXVsdF8oZSx0LG4sITEpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcInNldFByb3RvM0Jvb2xlYW5GaWVsZFwiLGpzcGIuTWVzc2FnZS5zZXRQcm90bzNCb29sZWFuRmllbGQpLGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZElnbm9yaW5nRGVmYXVsdF8oZSx0LG4sXCJcIil9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwic2V0UHJvdG8zU3RyaW5nRmllbGRcIixqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQpLGpzcGIuTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkSWdub3JpbmdEZWZhdWx0XyhlLHQsbixcIlwiKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJzZXRQcm90bzNCeXRlc0ZpZWxkXCIsanNwYi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQpLGpzcGIuTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqc3BiLk1lc3NhZ2Uuc2V0RmllbGRJZ25vcmluZ0RlZmF1bHRfKGUsdCxuLDApfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcInNldFByb3RvM0VudW1GaWVsZFwiLGpzcGIuTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQpLGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdJbnRGaWVsZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZElnbm9yaW5nRGVmYXVsdF8oZSx0LG4sXCIwXCIpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcInNldFByb3RvM1N0cmluZ0ludEZpZWxkXCIsanNwYi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ludEZpZWxkKSxqc3BiLk1lc3NhZ2Uuc2V0RmllbGRJZ25vcmluZ0RlZmF1bHRfPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBqc3BiLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZihlLGpzcGIuTWVzc2FnZSksbiE9PXI/anNwYi5NZXNzYWdlLnNldEZpZWxkKGUsdCxuKTp0PGUucGl2b3RfP2UuYXJyYXlbanNwYi5NZXNzYWdlLmdldEluZGV4XyhlLHQpXT1udWxsOihqc3BiLk1lc3NhZ2UubWF5YmVJbml0RW1wdHlFeHRlbnNpb25PYmplY3RfKGUpLGRlbGV0ZSBlLmV4dGVuc2lvbk9iamVjdF9bdF0pLGV9LGpzcGIuTWVzc2FnZS5hZGRUb1JlcGVhdGVkRmllbGQ9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGpzcGIuYXNzZXJ0cy5hc3NlcnRJbnN0YW5jZW9mKGUsanNwYi5NZXNzYWdlKSx0PWpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKGUsdCksdm9pZCAwIT1yP3Quc3BsaWNlKHIsMCxuKTp0LnB1c2gobiksZX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJhZGRUb1JlcGVhdGVkRmllbGRcIixqc3BiLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZEZpZWxkKSxqc3BiLk1lc3NhZ2Uuc2V0T25lb2ZGaWVsZD1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4ganNwYi5hc3NlcnRzLmFzc2VydEluc3RhbmNlb2YoZSxqc3BiLk1lc3NhZ2UpLChuPWpzcGIuTWVzc2FnZS5jb21wdXRlT25lb2ZDYXNlKGUsbikpJiZuIT09dCYmdm9pZCAwIT09ciYmKGUud3JhcHBlcnNfJiZuIGluIGUud3JhcHBlcnNfJiYoZS53cmFwcGVyc19bbl09dm9pZCAwKSxqc3BiLk1lc3NhZ2Uuc2V0RmllbGQoZSxuLHZvaWQgMCkpLGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLHQscil9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwic2V0T25lb2ZGaWVsZFwiLGpzcGIuTWVzc2FnZS5zZXRPbmVvZkZpZWxkKSxqc3BiLk1lc3NhZ2UuY29tcHV0ZU9uZW9mQ2FzZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG89dFtpXSxhPWpzcGIuTWVzc2FnZS5nZXRGaWVsZChlLG8pO251bGwhPWEmJihuPW8scj1hLGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLG8sdm9pZCAwKSl9cmV0dXJuIG4/KGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLG4sciksbik6MH0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJjb21wdXRlT25lb2ZDYXNlXCIsanNwYi5NZXNzYWdlLmNvbXB1dGVPbmVvZkNhc2UpLGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LG4scil7aWYoZS53cmFwcGVyc198fChlLndyYXBwZXJzXz17fSksIWUud3JhcHBlcnNfW25dKXt2YXIgaT1qc3BiLk1lc3NhZ2UuZ2V0RmllbGQoZSxuKTsocnx8aSkmJihlLndyYXBwZXJzX1tuXT1uZXcgdChpKSl9cmV0dXJuIGUud3JhcHBlcnNfW25dfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImdldFdyYXBwZXJGaWVsZFwiLGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQpLGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZFdyYXBwZXJGaWVsZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGpzcGIuTWVzc2FnZS53cmFwUmVwZWF0ZWRGaWVsZF8oZSx0LG4pLCh0PWUud3JhcHBlcnNfW25dKT09anNwYi5NZXNzYWdlLkVNUFRZX0xJU1RfU0VOVElORUxfJiYodD1lLndyYXBwZXJzX1tuXT1bXSksdH0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJnZXRSZXBlYXRlZFdyYXBwZXJGaWVsZFwiLGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCksanNwYi5NZXNzYWdlLndyYXBSZXBlYXRlZEZpZWxkXz1mdW5jdGlvbihlLHQsbil7aWYoZS53cmFwcGVyc198fChlLndyYXBwZXJzXz17fSksIWUud3JhcHBlcnNfW25dKXtmb3IodmFyIHI9anNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQoZSxuKSxpPVtdLG89MDtvPHIubGVuZ3RoO28rKylpW29dPW5ldyB0KHJbb10pO2Uud3JhcHBlcnNfW25dPWl9fSxqc3BiLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkPWZ1bmN0aW9uKGUsdCxuKXtqc3BiLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZihlLGpzcGIuTWVzc2FnZSksZS53cmFwcGVyc198fChlLndyYXBwZXJzXz17fSk7dmFyIHI9bj9uLnRvQXJyYXkoKTpuO3JldHVybiBlLndyYXBwZXJzX1t0XT1uLGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLHQscil9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwic2V0V3JhcHBlckZpZWxkXCIsanNwYi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCksanNwYi5NZXNzYWdlLnNldE9uZW9mV3JhcHBlckZpZWxkPWZ1bmN0aW9uKGUsdCxuLHIpe2pzcGIuYXNzZXJ0cy5hc3NlcnRJbnN0YW5jZW9mKGUsanNwYi5NZXNzYWdlKSxlLndyYXBwZXJzX3x8KGUud3JhcHBlcnNfPXt9KTt2YXIgaT1yP3IudG9BcnJheSgpOnI7cmV0dXJuIGUud3JhcHBlcnNfW3RdPXIsanNwYi5NZXNzYWdlLnNldE9uZW9mRmllbGQoZSx0LG4saSl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwic2V0T25lb2ZXcmFwcGVyRmllbGRcIixqc3BiLk1lc3NhZ2Uuc2V0T25lb2ZXcmFwcGVyRmllbGQpLGpzcGIuTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZD1mdW5jdGlvbihlLHQsbil7anNwYi5hc3NlcnRzLmFzc2VydEluc3RhbmNlb2YoZSxqc3BiLk1lc3NhZ2UpLGUud3JhcHBlcnNffHwoZS53cmFwcGVyc189e30pLG49bnx8W107Zm9yKHZhciByPVtdLGk9MDtpPG4ubGVuZ3RoO2krKylyW2ldPW5baV0udG9BcnJheSgpO3JldHVybiBlLndyYXBwZXJzX1t0XT1uLGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLHQscil9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwic2V0UmVwZWF0ZWRXcmFwcGVyRmllbGRcIixqc3BiLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQpLGpzcGIuTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkPWZ1bmN0aW9uKGUsdCxuLHIsaSl7anNwYi5NZXNzYWdlLndyYXBSZXBlYXRlZEZpZWxkXyhlLHIsdCk7dmFyIG89ZS53cmFwcGVyc19bdF07cmV0dXJuIG98fChvPWUud3JhcHBlcnNfW3RdPVtdKSxuPW58fG5ldyByLGU9anNwYi5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQoZSx0KSx2b2lkIDAhPWk/KG8uc3BsaWNlKGksMCxuKSxlLnNwbGljZShpLDAsbi50b0FycmF5KCkpKTooby5wdXNoKG4pLGUucHVzaChuLnRvQXJyYXkoKSkpLG59LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZFwiLGpzcGIuTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKSxqc3BiLk1lc3NhZ2UudG9NYXA9ZnVuY3Rpb24oZSx0LG4scil7Zm9yKHZhciBpPXt9LG89MDtvPGUubGVuZ3RoO28rKylpW3QuY2FsbChlW29dKV09bj9uLmNhbGwoZVtvXSxyLGVbb10pOmVbb107cmV0dXJuIGl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwidG9NYXBcIixqc3BiLk1lc3NhZ2UudG9NYXApLGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuc3luY01hcEZpZWxkc189ZnVuY3Rpb24oKXtpZih0aGlzLndyYXBwZXJzXylmb3IodmFyIGUgaW4gdGhpcy53cmFwcGVyc18pe3ZhciB0PXRoaXMud3JhcHBlcnNfW2VdO2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdFtuXSYmdFtuXS50b0FycmF5KCk7ZWxzZSB0JiZ0LnRvQXJyYXkoKX19LGpzcGIuTWVzc2FnZS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN5bmNNYXBGaWVsZHNfKCksdGhpcy5hcnJheX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UucHJvdG90eXBlLFwidG9BcnJheVwiLGpzcGIuTWVzc2FnZS5wcm90b3R5cGUudG9BcnJheSksanNwYi5NZXNzYWdlLkdFTkVSQVRFX1RPX1NUUklORyYmKGpzcGIuTWVzc2FnZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zeW5jTWFwRmllbGRzXygpLHRoaXMuYXJyYXkudG9TdHJpbmcoKX0pLGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuZ2V0RXh0ZW5zaW9uPWZ1bmN0aW9uKGUpe2lmKHRoaXMuZXh0ZW5zaW9uT2JqZWN0Xyl7dGhpcy53cmFwcGVyc198fCh0aGlzLndyYXBwZXJzXz17fSk7dmFyIHQ9ZS5maWVsZEluZGV4O2lmKGUuaXNSZXBlYXRlZCl7aWYoZS5pc01lc3NhZ2VUeXBlKCkpcmV0dXJuIHRoaXMud3JhcHBlcnNfW3RdfHwodGhpcy53cmFwcGVyc19bdF09Z29vZy5hcnJheS5tYXAodGhpcy5leHRlbnNpb25PYmplY3RfW3RdfHxbXSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlLmN0b3IodCl9KSkpLHRoaXMud3JhcHBlcnNfW3RdfWVsc2UgaWYoZS5pc01lc3NhZ2VUeXBlKCkpcmV0dXJuIXRoaXMud3JhcHBlcnNfW3RdJiZ0aGlzLmV4dGVuc2lvbk9iamVjdF9bdF0mJih0aGlzLndyYXBwZXJzX1t0XT1uZXcgZS5jdG9yKHRoaXMuZXh0ZW5zaW9uT2JqZWN0X1t0XSkpLHRoaXMud3JhcHBlcnNfW3RdO3JldHVybiB0aGlzLmV4dGVuc2lvbk9iamVjdF9bdF19fSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZS5wcm90b3R5cGUsXCJnZXRFeHRlbnNpb25cIixqc3BiLk1lc3NhZ2UucHJvdG90eXBlLmdldEV4dGVuc2lvbiksanNwYi5NZXNzYWdlLnByb3RvdHlwZS5zZXRFeHRlbnNpb249ZnVuY3Rpb24oZSx0KXt0aGlzLndyYXBwZXJzX3x8KHRoaXMud3JhcHBlcnNfPXt9KSxqc3BiLk1lc3NhZ2UubWF5YmVJbml0RW1wdHlFeHRlbnNpb25PYmplY3RfKHRoaXMpO3ZhciBuPWUuZmllbGRJbmRleDtyZXR1cm4gZS5pc1JlcGVhdGVkPyh0PXR8fFtdLGUuaXNNZXNzYWdlVHlwZSgpPyh0aGlzLndyYXBwZXJzX1tuXT10LHRoaXMuZXh0ZW5zaW9uT2JqZWN0X1tuXT1nb29nLmFycmF5Lm1hcCh0LChmdW5jdGlvbihlKXtyZXR1cm4gZS50b0FycmF5KCl9KSkpOnRoaXMuZXh0ZW5zaW9uT2JqZWN0X1tuXT10KTplLmlzTWVzc2FnZVR5cGUoKT8odGhpcy53cmFwcGVyc19bbl09dCx0aGlzLmV4dGVuc2lvbk9iamVjdF9bbl09dD90LnRvQXJyYXkoKTp0KTp0aGlzLmV4dGVuc2lvbk9iamVjdF9bbl09dCx0aGlzfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZS5wcm90b3R5cGUsXCJzZXRFeHRlbnNpb25cIixqc3BiLk1lc3NhZ2UucHJvdG90eXBlLnNldEV4dGVuc2lvbiksanNwYi5NZXNzYWdlLmRpZmZlcmVuY2U9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0LmNvbnN0cnVjdG9yKSl0aHJvdyBFcnJvcihcIk1lc3NhZ2VzIGhhdmUgZGlmZmVyZW50IHR5cGVzLlwiKTt2YXIgbj1lLnRvQXJyYXkoKTt0PXQudG9BcnJheSgpO3ZhciByPVtdLGk9MCxvPW4ubGVuZ3RoPnQubGVuZ3RoP24ubGVuZ3RoOnQubGVuZ3RoO2ZvcihlLmdldEpzUGJNZXNzYWdlSWQoKSYmKHJbMF09ZS5nZXRKc1BiTWVzc2FnZUlkKCksaT0xKTtpPG87aSsrKWpzcGIuTWVzc2FnZS5jb21wYXJlRmllbGRzKG5baV0sdFtpXSl8fChyW2ldPXRbaV0pO3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcihyKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJkaWZmZXJlbmNlXCIsanNwYi5NZXNzYWdlLmRpZmZlcmVuY2UpLGpzcGIuTWVzc2FnZS5lcXVhbHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09dHx8ISghZXx8IXQpJiZlIGluc3RhbmNlb2YgdC5jb25zdHJ1Y3RvciYmanNwYi5NZXNzYWdlLmNvbXBhcmVGaWVsZHMoZS50b0FycmF5KCksdC50b0FycmF5KCkpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImVxdWFsc1wiLGpzcGIuTWVzc2FnZS5lcXVhbHMpLGpzcGIuTWVzc2FnZS5jb21wYXJlRXh0ZW5zaW9ucz1mdW5jdGlvbihlLHQpe2U9ZXx8e30sdD10fHx7fTt2YXIgbixyPXt9O2ZvcihuIGluIGUpcltuXT0wO2ZvcihuIGluIHQpcltuXT0wO2ZvcihuIGluIHIpaWYoIWpzcGIuTWVzc2FnZS5jb21wYXJlRmllbGRzKGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLFwiY29tcGFyZUV4dGVuc2lvbnNcIixqc3BiLk1lc3NhZ2UuY29tcGFyZUV4dGVuc2lvbnMpLGpzcGIuTWVzc2FnZS5jb21wYXJlRmllbGRzPWZ1bmN0aW9uKGUsdCl7aWYoZT09dClyZXR1cm4hMDtpZighZ29vZy5pc09iamVjdChlKXx8IWdvb2cuaXNPYmplY3QodCkpcmV0dXJuISEoXCJudW1iZXJcIj09PXR5cGVvZiBlJiZpc05hTihlKXx8XCJudW1iZXJcIj09PXR5cGVvZiB0JiZpc05hTih0KSkmJlN0cmluZyhlKT09U3RyaW5nKHQpO2lmKGUuY29uc3RydWN0b3IhPXQuY29uc3RydWN0b3IpcmV0dXJuITE7aWYoanNwYi5NZXNzYWdlLlNVUFBPUlRTX1VJTlQ4QVJSQVlfJiZlLmNvbnN0cnVjdG9yPT09VWludDhBcnJheSl7aWYoZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKGVbbl0hPXRbbl0pcmV0dXJuITE7cmV0dXJuITB9aWYoZS5jb25zdHJ1Y3Rvcj09PUFycmF5KXt2YXIgcj12b2lkIDAsaT12b2lkIDAsbz1NYXRoLm1heChlLmxlbmd0aCx0Lmxlbmd0aCk7Zm9yKG49MDtuPG87bisrKXt2YXIgYT1lW25dLHM9dFtuXTtpZihhJiZhLmNvbnN0cnVjdG9yPT1PYmplY3QmJihqc3BiLmFzc2VydHMuYXNzZXJ0KHZvaWQgMD09PXIpLGpzcGIuYXNzZXJ0cy5hc3NlcnQobj09PWUubGVuZ3RoLTEpLHI9YSxhPXZvaWQgMCkscyYmcy5jb25zdHJ1Y3Rvcj09T2JqZWN0JiYoanNwYi5hc3NlcnRzLmFzc2VydCh2b2lkIDA9PT1pKSxqc3BiLmFzc2VydHMuYXNzZXJ0KG49PT10Lmxlbmd0aC0xKSxpPXMscz12b2lkIDApLCFqc3BiLk1lc3NhZ2UuY29tcGFyZUZpZWxkcyhhLHMpKXJldHVybiExfXJldHVybiFyJiYhaXx8KHI9cnx8e30saT1pfHx7fSxqc3BiLk1lc3NhZ2UuY29tcGFyZUV4dGVuc2lvbnMocixpKSl9aWYoZS5jb25zdHJ1Y3Rvcj09PU9iamVjdClyZXR1cm4ganNwYi5NZXNzYWdlLmNvbXBhcmVFeHRlbnNpb25zKGUsdCk7dGhyb3cgRXJyb3IoXCJJbnZhbGlkIHR5cGUgaW4gSlNQQiBhcnJheVwiKX0sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJjb21wYXJlRmllbGRzXCIsanNwYi5NZXNzYWdlLmNvbXBhcmVGaWVsZHMpLGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuY2xvbmVNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuTWVzc2FnZS5jbG9uZU1lc3NhZ2UodGhpcyl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLnByb3RvdHlwZSxcImNsb25lTWVzc2FnZVwiLGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuY2xvbmVNZXNzYWdlKSxqc3BiLk1lc3NhZ2UucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuTWVzc2FnZS5jbG9uZU1lc3NhZ2UodGhpcyl9LGdvb2cuZXhwb3J0UHJvcGVydHkoanNwYi5NZXNzYWdlLnByb3RvdHlwZSxcImNsb25lXCIsanNwYi5NZXNzYWdlLnByb3RvdHlwZS5jbG9uZSksanNwYi5NZXNzYWdlLmNsb25lPWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLk1lc3NhZ2UuY2xvbmVNZXNzYWdlKGUpfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcImNsb25lXCIsanNwYi5NZXNzYWdlLmNsb25lKSxqc3BiLk1lc3NhZ2UuY2xvbmVNZXNzYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgZS5jb25zdHJ1Y3Rvcihqc3BiLk1lc3NhZ2UuY2xvbmVfKGUudG9BcnJheSgpKSl9LGpzcGIuTWVzc2FnZS5jb3B5SW50bz1mdW5jdGlvbihlLHQpe2pzcGIuYXNzZXJ0cy5hc3NlcnRJbnN0YW5jZW9mKGUsanNwYi5NZXNzYWdlKSxqc3BiLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZih0LGpzcGIuTWVzc2FnZSksanNwYi5hc3NlcnRzLmFzc2VydChlLmNvbnN0cnVjdG9yPT10LmNvbnN0cnVjdG9yLFwiQ29weSBzb3VyY2UgYW5kIHRhcmdldCBtZXNzYWdlIHNob3VsZCBoYXZlIHRoZSBzYW1lIHR5cGUuXCIpLGU9anNwYi5NZXNzYWdlLmNsb25lKGUpO2Zvcih2YXIgbj10LnRvQXJyYXkoKSxyPWUudG9BcnJheSgpLGk9bi5sZW5ndGg9MDtpPHIubGVuZ3RoO2krKyluW2ldPXJbaV07dC53cmFwcGVyc189ZS53cmFwcGVyc18sdC5leHRlbnNpb25PYmplY3RfPWUuZXh0ZW5zaW9uT2JqZWN0X30sZ29vZy5leHBvcnRQcm9wZXJ0eShqc3BiLk1lc3NhZ2UsXCJjb3B5SW50b1wiLGpzcGIuTWVzc2FnZS5jb3B5SW50byksanNwYi5NZXNzYWdlLmNsb25lXz1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9QXJyYXkoZS5sZW5ndGgpLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtudWxsIT1yJiYodFtuXT1cIm9iamVjdFwiPT10eXBlb2Ygcj9qc3BiLk1lc3NhZ2UuY2xvbmVfKGpzcGIuYXNzZXJ0cy5hc3NlcnQocikpOnIpfXJldHVybiB0fWlmKGpzcGIuTWVzc2FnZS5TVVBQT1JUU19VSU5UOEFSUkFZXyYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUpO2ZvcihuIGluIHQ9e30sZSludWxsIT0ocj1lW25dKSYmKHRbbl09XCJvYmplY3RcIj09dHlwZW9mIHI/anNwYi5NZXNzYWdlLmNsb25lXyhqc3BiLmFzc2VydHMuYXNzZXJ0KHIpKTpyKTtyZXR1cm4gdH0sanNwYi5NZXNzYWdlLnJlZ2lzdGVyTWVzc2FnZVR5cGU9ZnVuY3Rpb24oZSx0KXt0Lm1lc3NhZ2VJZD1lfSxnb29nLmV4cG9ydFByb3BlcnR5KGpzcGIuTWVzc2FnZSxcInJlZ2lzdGVyTWVzc2FnZVR5cGVcIixqc3BiLk1lc3NhZ2UucmVnaXN0ZXJNZXNzYWdlVHlwZSksanNwYi5NZXNzYWdlLm1lc3NhZ2VTZXRFeHRlbnNpb25zPXt9LGpzcGIuTWVzc2FnZS5tZXNzYWdlU2V0RXh0ZW5zaW9uc0JpbmFyeT17fSxqc3BiLkV4cG9ydD17fSxleHBvcnRzLk1hcD1qc3BiLk1hcCxleHBvcnRzLk1lc3NhZ2U9anNwYi5NZXNzYWdlLGV4cG9ydHMuQmluYXJ5UmVhZGVyPWpzcGIuQmluYXJ5UmVhZGVyLGV4cG9ydHMuQmluYXJ5V3JpdGVyPWpzcGIuQmluYXJ5V3JpdGVyLGV4cG9ydHMuRXh0ZW5zaW9uRmllbGRJbmZvPWpzcGIuRXh0ZW5zaW9uRmllbGRJbmZvLGV4cG9ydHMuRXh0ZW5zaW9uRmllbGRCaW5hcnlJbmZvPWpzcGIuRXh0ZW5zaW9uRmllbGRCaW5hcnlJbmZvLGV4cG9ydHMuZXhwb3J0U3ltYm9sPWdvb2cuZXhwb3J0U3ltYm9sLGV4cG9ydHMuaW5oZXJpdHM9Z29vZy5pbmhlcml0cyxleHBvcnRzLm9iamVjdD17ZXh0ZW5kOmdvb2cub2JqZWN0LmV4dGVuZH0sZXhwb3J0cy50eXBlT2Y9Z29vZy50eXBlT2Z9LDQxNDA1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1cInVuZGVmaW5lZFwiIT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLGk9big1NTQxOSk7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIHImJihcImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiYoXCJzeW1ib2xcIj09PXR5cGVvZiByKFwiZm9vXCIpJiYoXCJzeW1ib2xcIj09PXR5cGVvZiBTeW1ib2woXCJiYXJcIikmJmkoKSkpKX19LDU1NDE5OmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBTeW1ib2x8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXJldHVybiExO2lmKFwic3ltYm9sXCI9PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yKXJldHVybiEwO3ZhciBlPXt9LHQ9U3ltYm9sKFwidGVzdFwiKSxuPU9iamVjdCh0KTtpZihcInN0cmluZ1wiPT09dHlwZW9mIHQpcmV0dXJuITE7aWYoXCJbb2JqZWN0IFN5bWJvbF1cIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSlyZXR1cm4hMTtpZihcIltvYmplY3QgU3ltYm9sXVwiIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pKXJldHVybiExO2Zvcih0IGluIGVbdF09NDIsZSlyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgT2JqZWN0LmtleXMmJjAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuITE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzJiYwIT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkubGVuZ3RoKXJldHVybiExO3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7aWYoMSE9PXIubGVuZ3RofHxyWzBdIT09dClyZXR1cm4hMTtpZighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkpcmV0dXJuITE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ipe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZig0MiE9PWkudmFsdWV8fCEwIT09aS5lbnVtZXJhYmxlKXJldHVybiExfXJldHVybiEwfX0sMTc2NDI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oNTg2MTIpO2UuZXhwb3J0cz1yLmNhbGwoRnVuY3Rpb24uY2FsbCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KX0sODY3OTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big1OTg2NCksaT17Y2hpbGRDb250ZXh0VHlwZXM6ITAsY29udGV4dFR5cGU6ITAsY29udGV4dFR5cGVzOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxnZXREZWZhdWx0UHJvcHM6ITAsZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOiEwLGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczohMCxtaXhpbnM6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LG89e25hbWU6ITAsbGVuZ3RoOiEwLHByb3RvdHlwZTohMCxjYWxsZXI6ITAsY2FsbGVlOiEwLGFyZ3VtZW50czohMCxhcml0eTohMH0sYT17JCR0eXBlb2Y6ITAsY29tcGFyZTohMCxkZWZhdWx0UHJvcHM6ITAsZGlzcGxheU5hbWU6ITAscHJvcFR5cGVzOiEwLHR5cGU6ITB9LHM9e307ZnVuY3Rpb24gYyhlKXtyZXR1cm4gci5pc01lbW8oZSk/YTpzW2UuJCR0eXBlb2ZdfHxpfXNbci5Gb3J3YXJkUmVmXT17JCR0eXBlb2Y6ITAscmVuZGVyOiEwLGRlZmF1bHRQcm9wczohMCxkaXNwbGF5TmFtZTohMCxwcm9wVHlwZXM6ITB9LHNbci5NZW1vXT1hO3ZhciB1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLGQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsaD1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbixyKXtpZihcInN0cmluZ1wiIT09dHlwZW9mIG4pe2lmKGgpe3ZhciBpPWYobik7aSYmaSE9PWgmJmUodCxpLHIpfXZhciBhPWwobik7ZCYmKGE9YS5jb25jYXQoZChuKSkpO2Zvcih2YXIgcz1jKHQpLGc9YyhuKSxtPTA7bTxhLmxlbmd0aDsrK20pe3ZhciB2PWFbbV07aWYoIW9bdl0mJighcnx8IXJbdl0pJiYoIWd8fCFnW3ZdKSYmKCFzfHwhc1t2XSkpe3ZhciBfPXAobix2KTt0cnl7dSh0LHYsXyl9Y2F0Y2goRSl7fX19fXJldHVybiB0fX0sODA2NDU6ZnVuY3Rpb24oZSx0KXt0LnJlYWQ9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHM9OCppLXItMSxjPSgxPDxzKS0xLHU9Yz4+MSxsPS03LGQ9bj9pLTE6MCxwPW4/LTE6MSxmPWVbdCtkXTtmb3IoZCs9cCxvPWYmKDE8PC1sKS0xLGY+Pj0tbCxsKz1zO2w+MDtvPTI1NipvK2VbdCtkXSxkKz1wLGwtPTgpO2ZvcihhPW8mKDE8PC1sKS0xLG8+Pj0tbCxsKz1yO2w+MDthPTI1NiphK2VbdCtkXSxkKz1wLGwtPTgpO2lmKDA9PT1vKW89MS11O2Vsc2V7aWYobz09PWMpcmV0dXJuIGE/TmFOOjEvMCooZj8tMToxKTthKz1NYXRoLnBvdygyLHIpLG8tPXV9cmV0dXJuKGY/LTE6MSkqYSpNYXRoLnBvdygyLG8tcil9LHQud3JpdGU9ZnVuY3Rpb24oZSx0LG4scixpLG8pe3ZhciBhLHMsYyx1PTgqby1pLTEsbD0oMTw8dSktMSxkPWw+PjEscD0yMz09PWk/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLGY9cj8wOm8tMSxoPXI/MTotMSxnPXQ8MHx8MD09PXQmJjEvdDwwPzE6MDtmb3IodD1NYXRoLmFicyh0KSxpc05hTih0KXx8dD09PTEvMD8ocz1pc05hTih0KT8xOjAsYT1sKTooYT1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSx0KihjPU1hdGgucG93KDIsLWEpKTwxJiYoYS0tLGMqPTIpLCh0Kz1hK2Q+PTE/cC9jOnAqTWF0aC5wb3coMiwxLWQpKSpjPj0yJiYoYSsrLGMvPTIpLGErZD49bD8ocz0wLGE9bCk6YStkPj0xPyhzPSh0KmMtMSkqTWF0aC5wb3coMixpKSxhKz1kKToocz10Kk1hdGgucG93KDIsZC0xKSpNYXRoLnBvdygyLGkpLGE9MCkpO2k+PTg7ZVtuK2ZdPTI1NSZzLGYrPWgscy89MjU2LGktPTgpO2ZvcihhPWE8PGl8cyx1Kz1pO3U+MDtlW24rZl09MjU1JmEsZis9aCxhLz0yNTYsdS09OCk7ZVtuK2YtaF18PTEyOCpnfX0sNDI2OTpmdW5jdGlvbihlKXshZnVuY3Rpb24oKXt2YXIgdDtmdW5jdGlvbiBuKGUscil7dmFyIGk9dGhpcyBpbnN0YW5jZW9mIG4/dGhpczp0O2lmKGkucmVzZXQociksXCJzdHJpbmdcIj09PXR5cGVvZiBlJiZlLmxlbmd0aD4wJiZpLmhhc2goZSksaSE9PXRoaXMpcmV0dXJuIGl9bi5wcm90b3R5cGUuaGFzaD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvO3N3aXRjaChvPWUubGVuZ3RoLHRoaXMubGVuKz1vLG49dGhpcy5rMSxyPTAsdGhpcy5yZW0pe2Nhc2UgMDpuXj1vPnI/NjU1MzUmZS5jaGFyQ29kZUF0KHIrKyk6MDtjYXNlIDE6bl49bz5yPyg2NTUzNSZlLmNoYXJDb2RlQXQocisrKSk8PDg6MDtjYXNlIDI6bl49bz5yPyg2NTUzNSZlLmNoYXJDb2RlQXQocisrKSk8PDE2OjA7Y2FzZSAzOm5ePW8+cj8oMjU1JmUuY2hhckNvZGVBdChyKSk8PDI0OjAsbl49bz5yPyg2NTI4MCZlLmNoYXJDb2RlQXQocisrKSk+Pjg6MH1pZih0aGlzLnJlbT1vK3RoaXMucmVtJjMsKG8tPXRoaXMucmVtKT4wKXtmb3IodD10aGlzLmgxO3Q9NSoodD0odF49bj0xMzcxNSoobj0obj0xMTYwMSpuKzM0MzI5MDY3NTIqKDY1NTM1Jm4pJjQyOTQ5NjcyOTUpPDwxNXxuPj4+MTcpKzQ2MTgzMjE5MiooNjU1MzUmbikmNDI5NDk2NzI5NSk8PDEzfHQ+Pj4xOSkrMzg2NDI5MjE5NiY0Mjk0OTY3Mjk1LCEocj49byk7KW49NjU1MzUmZS5jaGFyQ29kZUF0KHIrKyleKDY1NTM1JmUuY2hhckNvZGVBdChyKyspKTw8OF4oNjU1MzUmZS5jaGFyQ29kZUF0KHIrKykpPDwxNixuXj0oMjU1JihpPWUuY2hhckNvZGVBdChyKyspKSk8PDI0Xig2NTI4MCZpKT4+ODtzd2l0Y2gobj0wLHRoaXMucmVtKXtjYXNlIDM6bl49KDY1NTM1JmUuY2hhckNvZGVBdChyKzIpKTw8MTY7Y2FzZSAyOm5ePSg2NTUzNSZlLmNoYXJDb2RlQXQocisxKSk8PDg7Y2FzZSAxOm5ePTY1NTM1JmUuY2hhckNvZGVBdChyKX10aGlzLmgxPXR9cmV0dXJuIHRoaXMuazE9bix0aGlzfSxuLnByb3RvdHlwZS5yZXN1bHQ9ZnVuY3Rpb24oKXt2YXIgZSx0O3JldHVybiBlPXRoaXMuazEsdD10aGlzLmgxLGU+MCYmKHRePWU9MTM3MTUqKGU9KGU9MTE2MDEqZSszNDMyOTA2NzUyKig2NTUzNSZlKSY0Mjk0OTY3Mjk1KTw8MTV8ZT4+PjE3KSs0NjE4MzIxOTIqKDY1NTM1JmUpJjQyOTQ5NjcyOTUpLHRePXRoaXMubGVuLHQ9NTE4MTkqKHRePXQ+Pj4xNikrMjI0Njc3MDY4OCooNjU1MzUmdCkmNDI5NDk2NzI5NSx0PTQ0NTk3Kih0Xj10Pj4+MTMpKzMyNjY0NDUzMTIqKDY1NTM1JnQpJjQyOTQ5NjcyOTUsKHRePXQ+Pj4xNik+Pj4wfSxuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5oMT1cIm51bWJlclwiPT09dHlwZW9mIGU/ZTowLHRoaXMucmVtPXRoaXMuazE9dGhpcy5sZW49MCx0aGlzfSx0PW5ldyBuLGUuZXhwb3J0cz1ufSgpfSwxNDc2OmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2NvbnN0IHQ9XCJbYS1mQS1GXFxcXGQ6XVwiLG49ZT0+ZSYmZS5pbmNsdWRlQm91bmRhcmllcz9gKD86KD88PVxcXFxzfF4pKD89JHt0fSl8KD88PSR7dH0pKD89XFxcXHN8JCkpYDpcIlwiLHI9XCIoPzoyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldXFxcXGR8XFxcXGQpKD86XFxcXC4oPzoyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldXFxcXGR8XFxcXGQpKXszfVwiLGk9XCJbYS1mQS1GXFxcXGRdezEsNH1cIixvPWBcXG4oPzpcXG4oPzoke2l9Oil7N30oPzoke2l9fDopfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE6MjozOjQ6NTo2Ojc6OiAgMToyOjM6NDo1OjY6Nzo4XFxuKD86JHtpfTopezZ9KD86JHtyfXw6JHtpfXw6KXwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDE6MjozOjQ6NTo2OjogICAgMToyOjM6NDo1OjY6OjggICAxOjI6Mzo0OjU6Njo6OCAgMToyOjM6NDo1OjY6OjEuMi4zLjRcXG4oPzoke2l9Oil7NX0oPzo6JHtyfXwoPzo6JHtpfSl7MSwyfXw6KXwgICAgICAgICAgICAgICAgICAgLy8gMToyOjM6NDo1OjogICAgICAxOjI6Mzo0OjU6Ojc6OCAgIDE6MjozOjQ6NTo6OCAgICAxOjI6Mzo0OjU6Ojc6MS4yLjMuNFxcbig/OiR7aX06KXs0fSg/Oig/Ojoke2l9KXswLDF9OiR7cn18KD86OiR7aX0pezEsM318Oil8IC8vIDE6MjozOjQ6OiAgICAgICAgMToyOjM6NDo6Njo3OjggICAxOjI6Mzo0Ojo4ICAgICAgMToyOjM6NDo6Njo3OjEuMi4zLjRcXG4oPzoke2l9Oil7M30oPzooPzo6JHtpfSl7MCwyfToke3J9fCg/Ojoke2l9KXsxLDR9fDopfCAvLyAxOjI6Mzo6ICAgICAgICAgIDE6MjozOjo1OjY6Nzo4ICAgMToyOjM6OjggICAgICAgIDE6MjozOjo1OjY6NzoxLjIuMy40XFxuKD86JHtpfTopezJ9KD86KD86OiR7aX0pezAsM306JHtyfXwoPzo6JHtpfSl7MSw1fXw6KXwgLy8gMToyOjogICAgICAgICAgICAxOjI6OjQ6NTo2Ojc6OCAgIDE6Mjo6OCAgICAgICAgICAxOjI6OjQ6NTo2Ojc6MS4yLjMuNFxcbig/OiR7aX06KXsxfSg/Oig/Ojoke2l9KXswLDR9OiR7cn18KD86OiR7aX0pezEsNn18Oil8IC8vIDE6OiAgICAgICAgICAgICAgMTo6Mzo0OjU6Njo3OjggICAxOjo4ICAgICAgICAgICAgMTo6Mzo0OjU6Njo3OjEuMi4zLjRcXG4oPzo6KD86KD86OiR7aX0pezAsNX06JHtyfXwoPzo6JHtpfSl7MSw3fXw6KSkgICAgICAgICAgICAgLy8gOjoyOjM6NDo1OjY6Nzo4ICA6OjI6Mzo0OjU6Njo3OjggIDo6OCAgICAgICAgICAgICA6OjEuMi4zLjRcXG4pKD86JVswLTlhLXpBLVpdezEsfSk/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gJWV0aDAgICAgICAgICAgICAlMVxcbmAucmVwbGFjZSgvXFxzKlxcL1xcLy4qJC9nbSxcIlwiKS5yZXBsYWNlKC9cXG4vZyxcIlwiKS50cmltKCksYT1uZXcgUmVnRXhwKGAoPzpeJHtyfSQpfCg/Ol4ke299JClgKSxzPW5ldyBSZWdFeHAoYF4ke3J9JGApLGM9bmV3IFJlZ0V4cChgXiR7b30kYCksdT1lPT5lJiZlLmV4YWN0P2E6bmV3IFJlZ0V4cChgKD86JHtuKGUpfSR7cn0ke24oZSl9KXwoPzoke24oZSl9JHtvfSR7bihlKX0pYCxcImdcIik7dS52ND1lPT5lJiZlLmV4YWN0P3M6bmV3IFJlZ0V4cChgJHtuKGUpfSR7cn0ke24oZSl9YCxcImdcIiksdS52Nj1lPT5lJiZlLmV4YWN0P2M6bmV3IFJlZ0V4cChgJHtuKGUpfSR7b30ke24oZSl9YCxcImdcIiksZS5leHBvcnRzPXV9LDUwMDM6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2NvbnN0IHI9bigxNDc2KSxpPWU9PnIoe2V4YWN0OiEwfSkudGVzdChlKTtpLnY0PWU9PnIudjQoe2V4YWN0OiEwfSkudGVzdChlKSxpLnY2PWU9PnIudjYoe2V4YWN0OiEwfSkudGVzdChlKSxpLnZlcnNpb249ZT0+aShlKT9pLnY0KGUpPzQ6Njp2b2lkIDAsZS5leHBvcnRzPWl9LDU4MjY6ZnVuY3Rpb24oZSl7dmFyIHQ9e30udG9TdHJpbmc7ZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVyblwiW29iamVjdCBBcnJheV1cIj09dC5jYWxsKGUpfX0sMzY4MDg6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7IWZ1bmN0aW9uKG8pe2lmKHZvaWQgMD09PShpPVwiZnVuY3Rpb25cIj09PXR5cGVvZihyPW8pP3IuY2FsbCh0LG4sdCxlKTpyKXx8KGUuZXhwb3J0cz1pKSwhMCxlLmV4cG9ydHM9bygpLCEhMCl7dmFyIGE9d2luZG93LkNvb2tpZXMscz13aW5kb3cuQ29va2llcz1vKCk7cy5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5Db29raWVzPWEsc319fSgoZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7Zm9yKHZhciBlPTAsdD17fTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07Zm9yKHZhciByIGluIG4pdFtyXT1uW3JdfXJldHVybiB0fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIGUucmVwbGFjZSgvKCVbMC05QS1aXXsyfSkrL2csZGVjb2RlVVJJQ29tcG9uZW50KX1yZXR1cm4gZnVuY3Rpb24gbihyKXtmdW5jdGlvbiBpKCl7fWZ1bmN0aW9uIG8odCxuLG8pe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQpe1wibnVtYmVyXCI9PT10eXBlb2Yobz1lKHtwYXRoOlwiL1wifSxpLmRlZmF1bHRzLG8pKS5leHBpcmVzJiYoby5leHBpcmVzPW5ldyBEYXRlKDEqbmV3IERhdGUrODY0ZTUqby5leHBpcmVzKSksby5leHBpcmVzPW8uZXhwaXJlcz9vLmV4cGlyZXMudG9VVENTdHJpbmcoKTpcIlwiO3RyeXt2YXIgYT1KU09OLnN0cmluZ2lmeShuKTsvXltcXHtcXFtdLy50ZXN0KGEpJiYobj1hKX1jYXRjaCh1KXt9bj1yLndyaXRlP3Iud3JpdGUobix0KTplbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKG4pKS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDNBfDNDfDNFfDNEfDJGfDNGfDQwfDVCfDVEfDVFfDYwfDdCfDdEfDdDKS9nLGRlY29kZVVSSUNvbXBvbmVudCksdD1lbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHQpKS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDVFfDYwfDdDKS9nLGRlY29kZVVSSUNvbXBvbmVudCkucmVwbGFjZSgvW1xcKFxcKV0vZyxlc2NhcGUpO3ZhciBzPVwiXCI7Zm9yKHZhciBjIGluIG8pb1tjXSYmKHMrPVwiOyBcIitjLCEwIT09b1tjXSYmKHMrPVwiPVwiK29bY10uc3BsaXQoXCI7XCIpWzBdKSk7cmV0dXJuIGRvY3VtZW50LmNvb2tpZT10K1wiPVwiK24rc319ZnVuY3Rpb24gYShlLG4pe2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQpe2Zvcih2YXIgaT17fSxvPWRvY3VtZW50LmNvb2tpZT9kb2N1bWVudC5jb29raWUuc3BsaXQoXCI7IFwiKTpbXSxhPTA7YTxvLmxlbmd0aDthKyspe3ZhciBzPW9bYV0uc3BsaXQoXCI9XCIpLGM9cy5zbGljZSgxKS5qb2luKFwiPVwiKTtufHwnXCInIT09Yy5jaGFyQXQoMCl8fChjPWMuc2xpY2UoMSwtMSkpO3RyeXt2YXIgdT10KHNbMF0pO2lmKGM9KHIucmVhZHx8cikoYyx1KXx8dChjKSxuKXRyeXtjPUpTT04ucGFyc2UoYyl9Y2F0Y2gobCl7fWlmKGlbdV09YyxlPT09dSlicmVha31jYXRjaChsKXt9fXJldHVybiBlP2lbZV06aX19cmV0dXJuIGkuc2V0PW8saS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwhMSl9LGkuZ2V0SlNPTj1mdW5jdGlvbihlKXtyZXR1cm4gYShlLCEwKX0saS5yZW1vdmU9ZnVuY3Rpb24odCxuKXtvKHQsXCJcIixlKG4se2V4cGlyZXM6LTF9KSl9LGkuZGVmYXVsdHM9e30saS53aXRoQ29udmVydGVyPW4saX0oKGZ1bmN0aW9uKCl7fSkpfSkpfSw2NDUzMDpmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oZSx0KXt2YXIgbj1bXSxyPVtdO3JldHVybiBudWxsPT10JiYodD1mdW5jdGlvbihlLHQpe3JldHVybiBuWzBdPT09dD9cIltDaXJjdWxhciB+XVwiOlwiW0NpcmN1bGFyIH4uXCIrci5zbGljZSgwLG4uaW5kZXhPZih0KSkuam9pbihcIi5cIikrXCJdXCJ9KSxmdW5jdGlvbihpLG8pe2lmKG4ubGVuZ3RoPjApe3ZhciBhPW4uaW5kZXhPZih0aGlzKTt+YT9uLnNwbGljZShhKzEpOm4ucHVzaCh0aGlzKSx+YT9yLnNwbGljZShhLDEvMCxpKTpyLnB1c2goaSksfm4uaW5kZXhPZihvKSYmKG89dC5jYWxsKHRoaXMsaSxvKSl9ZWxzZSBuLnB1c2gobyk7cmV0dXJuIG51bGw9PWU/bzplLmNhbGwodGhpcyxpLG8pfX0oZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyLGkpe3JldHVybiBKU09OLnN0cmluZ2lmeShlLG4odCxpKSxyKX0pLmdldFNlcmlhbGl6ZT1ufSw2OTQ4MzpmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPWZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIGkoYSxzKXtpZighblthXSl7aWYoIXRbYV0pe2lmKG8pcmV0dXJuIG8oYSwhMCk7dmFyIGM9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIithK1wiJ1wiKTt0aHJvdyBjLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsY312YXIgdT1uW2FdPXtleHBvcnRzOnt9fTt0W2FdWzBdLmNhbGwodS5leHBvcnRzLChmdW5jdGlvbihlKXt2YXIgbj10W2FdWzFdW2VdO3JldHVybiBpKG58fGUpfSksdSx1LmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bYV0uZXhwb3J0c31mb3IodmFyIG89dm9pZCAwLGE9MDthPHIubGVuZ3RoO2ErKylpKHJbYV0pO3JldHVybiBpfSh7MTpbZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjt2YXIgbixyLGk9ZS5NdXRhdGlvbk9ic2VydmVyfHxlLldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7aWYoaSl7dmFyIG89MCxhPW5ldyBpKGwpLHM9ZS5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlwiKTthLm9ic2VydmUocyx7Y2hhcmFjdGVyRGF0YTohMH0pLG49ZnVuY3Rpb24oKXtzLmRhdGE9bz0rK28lMn19ZWxzZSBpZihlLnNldEltbWVkaWF0ZXx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBlLk1lc3NhZ2VDaGFubmVsKW49XCJkb2N1bWVudFwiaW4gZSYmXCJvbnJlYWR5c3RhdGVjaGFuZ2VcImluIGUuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKT9mdW5jdGlvbigpe3ZhciB0PWUuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTt0Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2woKSx0Lm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9LGUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHQpfTpmdW5jdGlvbigpe3NldFRpbWVvdXQobCwwKX07ZWxzZXt2YXIgYz1uZXcgZS5NZXNzYWdlQ2hhbm5lbDtjLnBvcnQxLm9ubWVzc2FnZT1sLG49ZnVuY3Rpb24oKXtjLnBvcnQyLnBvc3RNZXNzYWdlKDApfX12YXIgdT1bXTtmdW5jdGlvbiBsKCl7dmFyIGUsdDtyPSEwO2Zvcih2YXIgbj11Lmxlbmd0aDtuOyl7Zm9yKHQ9dSx1PVtdLGU9LTE7KytlPG47KXRbZV0oKTtuPXUubGVuZ3RofXI9ITF9ZnVuY3Rpb24gZChlKXsxIT09dS5wdXNoKGUpfHxyfHxuKCl9dC5leHBvcnRzPWR9KS5jYWxsKHRoaXMsXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBuLmc/bi5nOlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2VsZj9zZWxmOlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHt9XSwyOltmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9ZSgxKTtmdW5jdGlvbiBpKCl7fXZhciBvPXt9LGE9W1wiUkVKRUNURURcIl0scz1bXCJGVUxGSUxMRURcIl0sYz1bXCJQRU5ESU5HXCJdO2Z1bmN0aW9uIHUoZSl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcInJlc29sdmVyIG11c3QgYmUgYSBmdW5jdGlvblwiKTt0aGlzLnN0YXRlPWMsdGhpcy5xdWV1ZT1bXSx0aGlzLm91dGNvbWU9dm9pZCAwLGUhPT1pJiZmKHRoaXMsZSl9ZnVuY3Rpb24gbChlLHQsbil7dGhpcy5wcm9taXNlPWUsXCJmdW5jdGlvblwiPT09dHlwZW9mIHQmJih0aGlzLm9uRnVsZmlsbGVkPXQsdGhpcy5jYWxsRnVsZmlsbGVkPXRoaXMub3RoZXJDYWxsRnVsZmlsbGVkKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgbiYmKHRoaXMub25SZWplY3RlZD1uLHRoaXMuY2FsbFJlamVjdGVkPXRoaXMub3RoZXJDYWxsUmVqZWN0ZWQpfWZ1bmN0aW9uIGQoZSx0LG4pe3IoKGZ1bmN0aW9uKCl7dmFyIHI7dHJ5e3I9dChuKX1jYXRjaChpKXtyZXR1cm4gby5yZWplY3QoZSxpKX1yPT09ZT9vLnJlamVjdChlLG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVzb2x2ZSBwcm9taXNlIHdpdGggaXRzZWxmXCIpKTpvLnJlc29sdmUoZSxyKX0pKX1mdW5jdGlvbiBwKGUpe3ZhciB0PWUmJmUudGhlbjtpZihlJiYoXCJvYmplY3RcIj09PXR5cGVvZiBlfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSkmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiB0KXJldHVybiBmdW5jdGlvbigpe3QuYXBwbHkoZSxhcmd1bWVudHMpfX1mdW5jdGlvbiBmKGUsdCl7dmFyIG49ITE7ZnVuY3Rpb24gcih0KXtufHwobj0hMCxvLnJlamVjdChlLHQpKX1mdW5jdGlvbiBpKHQpe258fChuPSEwLG8ucmVzb2x2ZShlLHQpKX1mdW5jdGlvbiBhKCl7dChpLHIpfXZhciBzPWgoYSk7XCJlcnJvclwiPT09cy5zdGF0dXMmJnIocy52YWx1ZSl9ZnVuY3Rpb24gaChlLHQpe3ZhciBuPXt9O3RyeXtuLnZhbHVlPWUodCksbi5zdGF0dXM9XCJzdWNjZXNzXCJ9Y2F0Y2gocil7bi5zdGF0dXM9XCJlcnJvclwiLG4udmFsdWU9cn1yZXR1cm4gbn1mdW5jdGlvbiBnKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdGhpcz9lOm8ucmVzb2x2ZShuZXcgdGhpcyhpKSxlKX1mdW5jdGlvbiBtKGUpe3ZhciB0PW5ldyB0aGlzKGkpO3JldHVybiBvLnJlamVjdCh0LGUpfWZ1bmN0aW9uIHYoZSl7dmFyIHQ9dGhpcztpZihcIltvYmplY3QgQXJyYXldXCIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuIHRoaXMucmVqZWN0KG5ldyBUeXBlRXJyb3IoXCJtdXN0IGJlIGFuIGFycmF5XCIpKTt2YXIgbj1lLmxlbmd0aCxyPSExO2lmKCFuKXJldHVybiB0aGlzLnJlc29sdmUoW10pO2Zvcih2YXIgYT1uZXcgQXJyYXkobikscz0wLGM9LTEsdT1uZXcgdGhpcyhpKTsrK2M8bjspbChlW2NdLGMpO3JldHVybiB1O2Z1bmN0aW9uIGwoZSxpKXtmdW5jdGlvbiBjKGUpe2FbaV09ZSwrK3MhPT1ufHxyfHwocj0hMCxvLnJlc29sdmUodSxhKSl9dC5yZXNvbHZlKGUpLnRoZW4oYywoZnVuY3Rpb24oZSl7cnx8KHI9ITAsby5yZWplY3QodSxlKSl9KSl9fWZ1bmN0aW9uIF8oZSl7dmFyIHQ9dGhpcztpZihcIltvYmplY3QgQXJyYXldXCIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuIHRoaXMucmVqZWN0KG5ldyBUeXBlRXJyb3IoXCJtdXN0IGJlIGFuIGFycmF5XCIpKTt2YXIgbj1lLmxlbmd0aCxyPSExO2lmKCFuKXJldHVybiB0aGlzLnJlc29sdmUoW10pO2Zvcih2YXIgYT0tMSxzPW5ldyB0aGlzKGkpOysrYTxuOyljKGVbYV0pO3JldHVybiBzO2Z1bmN0aW9uIGMoZSl7dC5yZXNvbHZlKGUpLnRoZW4oKGZ1bmN0aW9uKGUpe3J8fChyPSEwLG8ucmVzb2x2ZShzLGUpKX0pLChmdW5jdGlvbihlKXtyfHwocj0hMCxvLnJlamVjdChzLGUpKX0pKX19dC5leHBvcnRzPXUsdS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudGhlbihudWxsLGUpfSx1LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsdCl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGUmJnRoaXMuc3RhdGU9PT1zfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgdCYmdGhpcy5zdGF0ZT09PWEpcmV0dXJuIHRoaXM7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IoaSk7cmV0dXJuIHRoaXMuc3RhdGUhPT1jP2Qobix0aGlzLnN0YXRlPT09cz9lOnQsdGhpcy5vdXRjb21lKTp0aGlzLnF1ZXVlLnB1c2gobmV3IGwobixlLHQpKSxufSxsLnByb3RvdHlwZS5jYWxsRnVsZmlsbGVkPWZ1bmN0aW9uKGUpe28ucmVzb2x2ZSh0aGlzLnByb21pc2UsZSl9LGwucHJvdG90eXBlLm90aGVyQ2FsbEZ1bGZpbGxlZD1mdW5jdGlvbihlKXtkKHRoaXMucHJvbWlzZSx0aGlzLm9uRnVsZmlsbGVkLGUpfSxsLnByb3RvdHlwZS5jYWxsUmVqZWN0ZWQ9ZnVuY3Rpb24oZSl7by5yZWplY3QodGhpcy5wcm9taXNlLGUpfSxsLnByb3RvdHlwZS5vdGhlckNhbGxSZWplY3RlZD1mdW5jdGlvbihlKXtkKHRoaXMucHJvbWlzZSx0aGlzLm9uUmVqZWN0ZWQsZSl9LG8ucmVzb2x2ZT1mdW5jdGlvbihlLHQpe3ZhciBuPWgocCx0KTtpZihcImVycm9yXCI9PT1uLnN0YXR1cylyZXR1cm4gby5yZWplY3QoZSxuLnZhbHVlKTt2YXIgcj1uLnZhbHVlO2lmKHIpZihlLHIpO2Vsc2V7ZS5zdGF0ZT1zLGUub3V0Y29tZT10O2Zvcih2YXIgaT0tMSxhPWUucXVldWUubGVuZ3RoOysraTxhOyllLnF1ZXVlW2ldLmNhbGxGdWxmaWxsZWQodCl9cmV0dXJuIGV9LG8ucmVqZWN0PWZ1bmN0aW9uKGUsdCl7ZS5zdGF0ZT1hLGUub3V0Y29tZT10O2Zvcih2YXIgbj0tMSxyPWUucXVldWUubGVuZ3RoOysrbjxyOyllLnF1ZXVlW25dLmNhbGxSZWplY3RlZCh0KTtyZXR1cm4gZX0sdS5yZXNvbHZlPWcsdS5yZWplY3Q9bSx1LmFsbD12LHUucmFjZT1ffSx7MToxfV0sMzpbZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjtcImZ1bmN0aW9uXCIhPT10eXBlb2YgdC5Qcm9taXNlJiYodC5Qcm9taXNlPWUoMikpfSkuY2FsbCh0aGlzLFwidW5kZWZpbmVkXCIhPT10eXBlb2Ygbi5nP24uZzpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGY/c2VsZjpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7MjoyfV0sNDpbZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9O2Z1bmN0aW9uIGkoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIG8oKXt0cnl7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBpbmRleGVkREIpcmV0dXJuIGluZGV4ZWREQjtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIHdlYmtpdEluZGV4ZWREQilyZXR1cm4gd2Via2l0SW5kZXhlZERCO2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgbW96SW5kZXhlZERCKXJldHVybiBtb3pJbmRleGVkREI7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBPSW5kZXhlZERCKXJldHVybiBPSW5kZXhlZERCO2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgbXNJbmRleGVkREIpcmV0dXJuIG1zSW5kZXhlZERCfWNhdGNoKGUpe3JldHVybn19dmFyIGE9bygpO2Z1bmN0aW9uIHMoKXt0cnl7aWYoIWF8fCFhLm9wZW4pcmV0dXJuITE7dmFyIGU9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBvcGVuRGF0YWJhc2UmJi8oU2FmYXJpfGlQaG9uZXxpUGFkfGlQb2QpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIS9CbGFja0JlcnJ5Ly50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSksdD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgZmV0Y2gmJi0xIT09ZmV0Y2gudG9TdHJpbmcoKS5pbmRleE9mKFwiW25hdGl2ZSBjb2RlXCIpO3JldHVybighZXx8dCkmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgaW5kZXhlZERCJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIElEQktleVJhbmdlfWNhdGNoKG4pe3JldHVybiExfX1mdW5jdGlvbiBjKGUsdCl7ZT1lfHxbXSx0PXR8fHt9O3RyeXtyZXR1cm4gbmV3IEJsb2IoZSx0KX1jYXRjaChpKXtpZihcIlR5cGVFcnJvclwiIT09aS5uYW1lKXRocm93IGk7Zm9yKHZhciBuPW5ldyhcInVuZGVmaW5lZFwiIT09dHlwZW9mIEJsb2JCdWlsZGVyP0Jsb2JCdWlsZGVyOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgTVNCbG9iQnVpbGRlcj9NU0Jsb2JCdWlsZGVyOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgTW96QmxvYkJ1aWxkZXI/TW96QmxvYkJ1aWxkZXI6V2ViS2l0QmxvYkJ1aWxkZXIpLHI9MDtyPGUubGVuZ3RoO3IrPTEpbi5hcHBlbmQoZVtyXSk7cmV0dXJuIG4uZ2V0QmxvYih0LnR5cGUpfX1cInVuZGVmaW5lZFwiPT09dHlwZW9mIFByb21pc2UmJmUoMyk7dmFyIHU9UHJvbWlzZTtmdW5jdGlvbiBsKGUsdCl7dCYmZS50aGVuKChmdW5jdGlvbihlKXt0KG51bGwsZSl9KSwoZnVuY3Rpb24oZSl7dChlKX0pKX1mdW5jdGlvbiBkKGUsdCxuKXtcImZ1bmN0aW9uXCI9PT10eXBlb2YgdCYmZS50aGVuKHQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuJiZlLmNhdGNoKG4pfWZ1bmN0aW9uIHAoZSl7cmV0dXJuXCJzdHJpbmdcIiE9PXR5cGVvZiBlJiYoY29uc29sZS53YXJuKGUrXCIgdXNlZCBhcyBhIGtleSwgYnV0IGl0IGlzIG5vdCBhIHN0cmluZy5cIiksZT1TdHJpbmcoZSkpLGV9ZnVuY3Rpb24gZigpe2lmKGFyZ3VtZW50cy5sZW5ndGgmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXSlyZXR1cm4gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV19dmFyIGg9XCJsb2NhbC1mb3JhZ2UtZGV0ZWN0LWJsb2Itc3VwcG9ydFwiLGc9dm9pZCAwLG09e30sdj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLF89XCJyZWFkb25seVwiLEU9XCJyZWFkd3JpdGVcIjtmdW5jdGlvbiBiKGUpe2Zvcih2YXIgdD1lLmxlbmd0aCxuPW5ldyBBcnJheUJ1ZmZlcih0KSxyPW5ldyBVaW50OEFycmF5KG4pLGk9MDtpPHQ7aSsrKXJbaV09ZS5jaGFyQ29kZUF0KGkpO3JldHVybiBufWZ1bmN0aW9uIFMoZSl7cmV0dXJuIG5ldyB1KChmdW5jdGlvbih0KXt2YXIgbj1lLnRyYW5zYWN0aW9uKGgsRSkscj1jKFtcIlwiXSk7bi5vYmplY3RTdG9yZShoKS5wdXQocixcImtleVwiKSxuLm9uYWJvcnQ9ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdCghMSl9LG4ub25jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBlPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0Nocm9tZVxcLyhcXGQrKS8pLG49bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRWRnZVxcLy8pO3Qobnx8IWV8fHBhcnNlSW50KGVbMV0sMTApPj00Myl9fSkpLmNhdGNoKChmdW5jdGlvbigpe3JldHVybiExfSkpfWZ1bmN0aW9uIHkoZSl7cmV0dXJuXCJib29sZWFuXCI9PT10eXBlb2YgZz91LnJlc29sdmUoZyk6UyhlKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZz1lfSkpfWZ1bmN0aW9uIFQoZSl7dmFyIHQ9bVtlLm5hbWVdLG49e307bi5wcm9taXNlPW5ldyB1KChmdW5jdGlvbihlLHQpe24ucmVzb2x2ZT1lLG4ucmVqZWN0PXR9KSksdC5kZWZlcnJlZE9wZXJhdGlvbnMucHVzaChuKSx0LmRiUmVhZHk/dC5kYlJlYWR5PXQuZGJSZWFkeS50aGVuKChmdW5jdGlvbigpe3JldHVybiBuLnByb21pc2V9KSk6dC5kYlJlYWR5PW4ucHJvbWlzZX1mdW5jdGlvbiBJKGUpe3ZhciB0PW1bZS5uYW1lXS5kZWZlcnJlZE9wZXJhdGlvbnMucG9wKCk7aWYodClyZXR1cm4gdC5yZXNvbHZlKCksdC5wcm9taXNlfWZ1bmN0aW9uIE8oZSx0KXt2YXIgbj1tW2UubmFtZV0uZGVmZXJyZWRPcGVyYXRpb25zLnBvcCgpO2lmKG4pcmV0dXJuIG4ucmVqZWN0KHQpLG4ucHJvbWlzZX1mdW5jdGlvbiBBKGUsdCl7cmV0dXJuIG5ldyB1KChmdW5jdGlvbihuLHIpe2lmKG1bZS5uYW1lXT1tW2UubmFtZV18fEQoKSxlLmRiKXtpZighdClyZXR1cm4gbihlLmRiKTtUKGUpLGUuZGIuY2xvc2UoKX12YXIgaT1bZS5uYW1lXTt0JiZpLnB1c2goZS52ZXJzaW9uKTt2YXIgbz1hLm9wZW4uYXBwbHkoYSxpKTt0JiYoby5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24odCl7dmFyIG49by5yZXN1bHQ7dHJ5e24uY3JlYXRlT2JqZWN0U3RvcmUoZS5zdG9yZU5hbWUpLHQub2xkVmVyc2lvbjw9MSYmbi5jcmVhdGVPYmplY3RTdG9yZShoKX1jYXRjaChyKXtpZihcIkNvbnN0cmFpbnRFcnJvclwiIT09ci5uYW1lKXRocm93IHI7Y29uc29sZS53YXJuKCdUaGUgZGF0YWJhc2UgXCInK2UubmFtZSsnXCIgaGFzIGJlZW4gdXBncmFkZWQgZnJvbSB2ZXJzaW9uICcrdC5vbGRWZXJzaW9uK1wiIHRvIHZlcnNpb24gXCIrdC5uZXdWZXJzaW9uKycsIGJ1dCB0aGUgc3RvcmFnZSBcIicrZS5zdG9yZU5hbWUrJ1wiIGFscmVhZHkgZXhpc3RzLicpfX0pLG8ub25lcnJvcj1mdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCkscihvLmVycm9yKX0sby5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtuKG8ucmVzdWx0KSxJKGUpfX0pKX1mdW5jdGlvbiBDKGUpe3JldHVybiBBKGUsITEpfWZ1bmN0aW9uIE4oZSl7cmV0dXJuIEEoZSwhMCl9ZnVuY3Rpb24gayhlLHQpe2lmKCFlLmRiKXJldHVybiEwO3ZhciBuPSFlLmRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoZS5zdG9yZU5hbWUpLHI9ZS52ZXJzaW9uPGUuZGIudmVyc2lvbixpPWUudmVyc2lvbj5lLmRiLnZlcnNpb247aWYociYmKGUudmVyc2lvbiE9PXQmJmNvbnNvbGUud2FybignVGhlIGRhdGFiYXNlIFwiJytlLm5hbWUrXCJcXFwiIGNhbid0IGJlIGRvd25ncmFkZWQgZnJvbSB2ZXJzaW9uIFwiK2UuZGIudmVyc2lvbitcIiB0byB2ZXJzaW9uIFwiK2UudmVyc2lvbitcIi5cIiksZS52ZXJzaW9uPWUuZGIudmVyc2lvbiksaXx8bil7aWYobil7dmFyIG89ZS5kYi52ZXJzaW9uKzE7bz5lLnZlcnNpb24mJihlLnZlcnNpb249byl9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gUChlKXtyZXR1cm4gbmV3IHUoKGZ1bmN0aW9uKHQsbil7dmFyIHI9bmV3IEZpbGVSZWFkZXI7ci5vbmVycm9yPW4sci5vbmxvYWRlbmQ9ZnVuY3Rpb24obil7dmFyIHI9YnRvYShuLnRhcmdldC5yZXN1bHR8fFwiXCIpO3Qoe19fbG9jYWxfZm9yYWdlX2VuY29kZWRfYmxvYjohMCxkYXRhOnIsdHlwZTplLnR5cGV9KX0sci5yZWFkQXNCaW5hcnlTdHJpbmcoZSl9KSl9ZnVuY3Rpb24gUihlKXtyZXR1cm4gYyhbYihhdG9iKGUuZGF0YSkpXSx7dHlwZTplLnR5cGV9KX1mdW5jdGlvbiB3KGUpe3JldHVybiBlJiZlLl9fbG9jYWxfZm9yYWdlX2VuY29kZWRfYmxvYn1mdW5jdGlvbiBMKGUpe3ZhciB0PXRoaXMsbj10Ll9pbml0UmVhZHkoKS50aGVuKChmdW5jdGlvbigpe3ZhciBlPW1bdC5fZGJJbmZvLm5hbWVdO2lmKGUmJmUuZGJSZWFkeSlyZXR1cm4gZS5kYlJlYWR5fSkpO3JldHVybiBkKG4sZSxlKSxufWZ1bmN0aW9uIEIoZSl7VChlKTtmb3IodmFyIHQ9bVtlLm5hbWVdLG49dC5mb3JhZ2VzLHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXTtpLl9kYkluZm8uZGImJihpLl9kYkluZm8uZGIuY2xvc2UoKSxpLl9kYkluZm8uZGI9bnVsbCl9cmV0dXJuIGUuZGI9bnVsbCxDKGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBlLmRiPXQsayhlKT9OKGUpOnR9KSkudGhlbigoZnVuY3Rpb24ocil7ZS5kYj10LmRiPXI7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspbltpXS5fZGJJbmZvLmRiPXJ9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3Rocm93IE8oZSx0KSx0fSkpfWZ1bmN0aW9uIE0oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9MSk7dHJ5e3ZhciBpPWUuZGIudHJhbnNhY3Rpb24oZS5zdG9yZU5hbWUsdCk7bihudWxsLGkpfWNhdGNoKG8pe2lmKHI+MCYmKCFlLmRifHxcIkludmFsaWRTdGF0ZUVycm9yXCI9PT1vLm5hbWV8fFwiTm90Rm91bmRFcnJvclwiPT09by5uYW1lKSlyZXR1cm4gdS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtpZighZS5kYnx8XCJOb3RGb3VuZEVycm9yXCI9PT1vLm5hbWUmJiFlLmRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoZS5zdG9yZU5hbWUpJiZlLnZlcnNpb248PWUuZGIudmVyc2lvbilyZXR1cm4gZS5kYiYmKGUudmVyc2lvbj1lLmRiLnZlcnNpb24rMSksTihlKX0pKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBCKGUpLnRoZW4oKGZ1bmN0aW9uKCl7TShlLHQsbixyLTEpfSkpfSkpLmNhdGNoKG4pO24obyl9fWZ1bmN0aW9uIEQoKXtyZXR1cm57Zm9yYWdlczpbXSxkYjpudWxsLGRiUmVhZHk6bnVsbCxkZWZlcnJlZE9wZXJhdGlvbnM6W119fWZ1bmN0aW9uIGooZSl7dmFyIHQ9dGhpcyxuPXtkYjpudWxsfTtpZihlKWZvcih2YXIgciBpbiBlKW5bcl09ZVtyXTt2YXIgaT1tW24ubmFtZV07aXx8KGk9RCgpLG1bbi5uYW1lXT1pKSxpLmZvcmFnZXMucHVzaCh0KSx0Ll9pbml0UmVhZHl8fCh0Ll9pbml0UmVhZHk9dC5yZWFkeSx0LnJlYWR5PUwpO3ZhciBvPVtdO2Z1bmN0aW9uIGEoKXtyZXR1cm4gdS5yZXNvbHZlKCl9Zm9yKHZhciBzPTA7czxpLmZvcmFnZXMubGVuZ3RoO3MrKyl7dmFyIGM9aS5mb3JhZ2VzW3NdO2MhPT10JiZvLnB1c2goYy5faW5pdFJlYWR5KCkuY2F0Y2goYSkpfXZhciBsPWkuZm9yYWdlcy5zbGljZSgwKTtyZXR1cm4gdS5hbGwobykudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbi5kYj1pLmRiLEMobil9KSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGI9ZSxrKG4sdC5fZGVmYXVsdENvbmZpZy52ZXJzaW9uKT9OKG4pOmV9KSkudGhlbigoZnVuY3Rpb24oZSl7bi5kYj1pLmRiPWUsdC5fZGJJbmZvPW47Zm9yKHZhciByPTA7cjxsLmxlbmd0aDtyKyspe3ZhciBvPWxbcl07byE9PXQmJihvLl9kYkluZm8uZGI9bi5kYixvLl9kYkluZm8udmVyc2lvbj1uLnZlcnNpb24pfX0pKX1mdW5jdGlvbiB4KGUsdCl7dmFyIG49dGhpcztlPXAoZSk7dmFyIHI9bmV3IHUoKGZ1bmN0aW9uKHQscil7bi5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7TShuLl9kYkluZm8sXywoZnVuY3Rpb24oaSxvKXtpZihpKXJldHVybiByKGkpO3RyeXt2YXIgYT1vLm9iamVjdFN0b3JlKG4uX2RiSW5mby5zdG9yZU5hbWUpLmdldChlKTthLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3ZhciBlPWEucmVzdWx0O3ZvaWQgMD09PWUmJihlPW51bGwpLHcoZSkmJihlPVIoZSkpLHQoZSl9LGEub25lcnJvcj1mdW5jdGlvbigpe3IoYS5lcnJvcil9fWNhdGNoKHMpe3Iocyl9fSkpfSkpLmNhdGNoKHIpfSkpO3JldHVybiBsKHIsdCkscn1mdW5jdGlvbiBVKGUsdCl7dmFyIG49dGhpcyxyPW5ldyB1KChmdW5jdGlvbih0LHIpe24ucmVhZHkoKS50aGVuKChmdW5jdGlvbigpe00obi5fZGJJbmZvLF8sKGZ1bmN0aW9uKGksbyl7aWYoaSlyZXR1cm4gcihpKTt0cnl7dmFyIGE9by5vYmplY3RTdG9yZShuLl9kYkluZm8uc3RvcmVOYW1lKS5vcGVuQ3Vyc29yKCkscz0xO2Eub25zdWNjZXNzPWZ1bmN0aW9uKCl7dmFyIG49YS5yZXN1bHQ7aWYobil7dmFyIHI9bi52YWx1ZTt3KHIpJiYocj1SKHIpKTt2YXIgaT1lKHIsbi5rZXkscysrKTt2b2lkIDAhPT1pP3QoaSk6bi5jb250aW51ZSgpfWVsc2UgdCgpfSxhLm9uZXJyb3I9ZnVuY3Rpb24oKXtyKGEuZXJyb3IpfX1jYXRjaChjKXtyKGMpfX0pKX0pKS5jYXRjaChyKX0pKTtyZXR1cm4gbChyLHQpLHJ9ZnVuY3Rpb24gRihlLHQsbil7dmFyIHI9dGhpcztlPXAoZSk7dmFyIGk9bmV3IHUoKGZ1bmN0aW9uKG4saSl7dmFyIG87ci5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG89ci5fZGJJbmZvLFwiW29iamVjdCBCbG9iXVwiPT09di5jYWxsKHQpP3koby5kYikudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGU/dDpQKHQpfSkpOnR9KSkudGhlbigoZnVuY3Rpb24odCl7TShyLl9kYkluZm8sRSwoZnVuY3Rpb24obyxhKXtpZihvKXJldHVybiBpKG8pO3RyeXt2YXIgcz1hLm9iamVjdFN0b3JlKHIuX2RiSW5mby5zdG9yZU5hbWUpO251bGw9PT10JiYodD12b2lkIDApO3ZhciBjPXMucHV0KHQsZSk7YS5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7dm9pZCAwPT09dCYmKHQ9bnVsbCksbih0KX0sYS5vbmFib3J0PWEub25lcnJvcj1mdW5jdGlvbigpe3ZhciBlPWMuZXJyb3I/Yy5lcnJvcjpjLnRyYW5zYWN0aW9uLmVycm9yO2koZSl9fWNhdGNoKHUpe2kodSl9fSkpfSkpLmNhdGNoKGkpfSkpO3JldHVybiBsKGksbiksaX1mdW5jdGlvbiBIKGUsdCl7dmFyIG49dGhpcztlPXAoZSk7dmFyIHI9bmV3IHUoKGZ1bmN0aW9uKHQscil7bi5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7TShuLl9kYkluZm8sRSwoZnVuY3Rpb24oaSxvKXtpZihpKXJldHVybiByKGkpO3RyeXt2YXIgYT1vLm9iamVjdFN0b3JlKG4uX2RiSW5mby5zdG9yZU5hbWUpLmRlbGV0ZShlKTtvLm9uY29tcGxldGU9ZnVuY3Rpb24oKXt0KCl9LG8ub25lcnJvcj1mdW5jdGlvbigpe3IoYS5lcnJvcil9LG8ub25hYm9ydD1mdW5jdGlvbigpe3ZhciBlPWEuZXJyb3I/YS5lcnJvcjphLnRyYW5zYWN0aW9uLmVycm9yO3IoZSl9fWNhdGNoKHMpe3Iocyl9fSkpfSkpLmNhdGNoKHIpfSkpO3JldHVybiBsKHIsdCkscn1mdW5jdGlvbiBHKGUpe3ZhciB0PXRoaXMsbj1uZXcgdSgoZnVuY3Rpb24oZSxuKXt0LnJlYWR5KCkudGhlbigoZnVuY3Rpb24oKXtNKHQuX2RiSW5mbyxFLChmdW5jdGlvbihyLGkpe2lmKHIpcmV0dXJuIG4ocik7dHJ5e3ZhciBvPWkub2JqZWN0U3RvcmUodC5fZGJJbmZvLnN0b3JlTmFtZSkuY2xlYXIoKTtpLm9uY29tcGxldGU9ZnVuY3Rpb24oKXtlKCl9LGkub25hYm9ydD1pLm9uZXJyb3I9ZnVuY3Rpb24oKXt2YXIgZT1vLmVycm9yP28uZXJyb3I6by50cmFuc2FjdGlvbi5lcnJvcjtuKGUpfX1jYXRjaChhKXtuKGEpfX0pKX0pKS5jYXRjaChuKX0pKTtyZXR1cm4gbChuLGUpLG59ZnVuY3Rpb24gVyhlKXt2YXIgdD10aGlzLG49bmV3IHUoKGZ1bmN0aW9uKGUsbil7dC5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7TSh0Ll9kYkluZm8sXywoZnVuY3Rpb24ocixpKXtpZihyKXJldHVybiBuKHIpO3RyeXt2YXIgbz1pLm9iamVjdFN0b3JlKHQuX2RiSW5mby5zdG9yZU5hbWUpLmNvdW50KCk7by5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtlKG8ucmVzdWx0KX0sby5vbmVycm9yPWZ1bmN0aW9uKCl7bihvLmVycm9yKX19Y2F0Y2goYSl7bihhKX19KSl9KSkuY2F0Y2gobil9KSk7cmV0dXJuIGwobixlKSxufWZ1bmN0aW9uIFYoZSx0KXt2YXIgbj10aGlzLHI9bmV3IHUoKGZ1bmN0aW9uKHQscil7ZTwwP3QobnVsbCk6bi5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7TShuLl9kYkluZm8sXywoZnVuY3Rpb24oaSxvKXtpZihpKXJldHVybiByKGkpO3RyeXt2YXIgYT1vLm9iamVjdFN0b3JlKG4uX2RiSW5mby5zdG9yZU5hbWUpLHM9ITEsYz1hLm9wZW5LZXlDdXJzb3IoKTtjLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3ZhciBuPWMucmVzdWx0O24/MD09PWV8fHM/dChuLmtleSk6KHM9ITAsbi5hZHZhbmNlKGUpKTp0KG51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oKXtyKGMuZXJyb3IpfX1jYXRjaCh1KXtyKHUpfX0pKX0pKS5jYXRjaChyKX0pKTtyZXR1cm4gbChyLHQpLHJ9ZnVuY3Rpb24geihlKXt2YXIgdD10aGlzLG49bmV3IHUoKGZ1bmN0aW9uKGUsbil7dC5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7TSh0Ll9kYkluZm8sXywoZnVuY3Rpb24ocixpKXtpZihyKXJldHVybiBuKHIpO3RyeXt2YXIgbz1pLm9iamVjdFN0b3JlKHQuX2RiSW5mby5zdG9yZU5hbWUpLm9wZW5LZXlDdXJzb3IoKSxhPVtdO28ub25zdWNjZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9by5yZXN1bHQ7dD8oYS5wdXNoKHQua2V5KSx0LmNvbnRpbnVlKCkpOmUoYSl9LG8ub25lcnJvcj1mdW5jdGlvbigpe24oby5lcnJvcil9fWNhdGNoKHMpe24ocyl9fSkpfSkpLmNhdGNoKG4pfSkpO3JldHVybiBsKG4sZSksbn1mdW5jdGlvbiBLKGUsdCl7dD1mLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10aGlzLmNvbmZpZygpOyhlPVwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlJiZlfHx7fSkubmFtZXx8KGUubmFtZT1lLm5hbWV8fG4ubmFtZSxlLnN0b3JlTmFtZT1lLnN0b3JlTmFtZXx8bi5zdG9yZU5hbWUpO3ZhciByLGk9dGhpcztpZihlLm5hbWUpe3ZhciBvPWUubmFtZT09PW4ubmFtZSYmaS5fZGJJbmZvLmRiP3UucmVzb2x2ZShpLl9kYkluZm8uZGIpOkMoZSkudGhlbigoZnVuY3Rpb24odCl7dmFyIG49bVtlLm5hbWVdLHI9bi5mb3JhZ2VzO24uZGI9dDtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKylyW2ldLl9kYkluZm8uZGI9dDtyZXR1cm4gdH0pKTtyPWUuc3RvcmVOYW1lP28udGhlbigoZnVuY3Rpb24odCl7aWYodC5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKGUuc3RvcmVOYW1lKSl7dmFyIG49dC52ZXJzaW9uKzE7VChlKTt2YXIgcj1tW2UubmFtZV0saT1yLmZvcmFnZXM7dC5jbG9zZSgpO2Zvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKXt2YXIgcz1pW29dO3MuX2RiSW5mby5kYj1udWxsLHMuX2RiSW5mby52ZXJzaW9uPW59dmFyIGM9bmV3IHUoKGZ1bmN0aW9uKHQscil7dmFyIGk9YS5vcGVuKGUubmFtZSxuKTtpLm9uZXJyb3I9ZnVuY3Rpb24oZSl7aS5yZXN1bHQuY2xvc2UoKSxyKGUpfSxpLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbigpe2kucmVzdWx0LmRlbGV0ZU9iamVjdFN0b3JlKGUuc3RvcmVOYW1lKX0saS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgZT1pLnJlc3VsdDtlLmNsb3NlKCksdChlKX19KSk7cmV0dXJuIGMudGhlbigoZnVuY3Rpb24oZSl7ci5kYj1lO2Zvcih2YXIgdD0wO3Q8aS5sZW5ndGg7dCsrKXt2YXIgbj1pW3RdO24uX2RiSW5mby5kYj1lLEkobi5fZGJJbmZvKX19KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3Rocm93KE8oZSx0KXx8dS5yZXNvbHZlKCkpLmNhdGNoKChmdW5jdGlvbigpe30pKSx0fSkpfX0pKTpvLnRoZW4oKGZ1bmN0aW9uKHQpe1QoZSk7dmFyIG49bVtlLm5hbWVdLHI9bi5mb3JhZ2VzO3QuY2xvc2UoKTtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKylyW2ldLl9kYkluZm8uZGI9bnVsbDt2YXIgbz1uZXcgdSgoZnVuY3Rpb24odCxuKXt2YXIgcj1hLmRlbGV0ZURhdGFiYXNlKGUubmFtZSk7ci5vbmVycm9yPXIub25ibG9ja2VkPWZ1bmN0aW9uKGUpe3ZhciB0PXIucmVzdWx0O3QmJnQuY2xvc2UoKSxuKGUpfSxyLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3ZhciBlPXIucmVzdWx0O2UmJmUuY2xvc2UoKSx0KGUpfX0pKTtyZXR1cm4gby50aGVuKChmdW5jdGlvbihlKXtuLmRiPWU7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDt0KyspSShyW3RdLl9kYkluZm8pfSkpLmNhdGNoKChmdW5jdGlvbih0KXt0aHJvdyhPKGUsdCl8fHUucmVzb2x2ZSgpKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSksdH0pKX0pKX1lbHNlIHI9dS5yZWplY3QoXCJJbnZhbGlkIGFyZ3VtZW50c1wiKTtyZXR1cm4gbChyLHQpLHJ9dmFyIFk9e19kcml2ZXI6XCJhc3luY1N0b3JhZ2VcIixfaW5pdFN0b3JhZ2U6aixfc3VwcG9ydDpzKCksaXRlcmF0ZTpVLGdldEl0ZW06eCxzZXRJdGVtOkYscmVtb3ZlSXRlbTpILGNsZWFyOkcsbGVuZ3RoOlcsa2V5OlYsa2V5czp6LGRyb3BJbnN0YW5jZTpLfTtmdW5jdGlvbiBxKCl7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIG9wZW5EYXRhYmFzZX12YXIgWj1cIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9cIixKPVwifn5sb2NhbF9mb3JhZ2VfdHlwZX5cIixYPS9efn5sb2NhbF9mb3JhZ2VfdHlwZX4oW15+XSspfi8sUT1cIl9fbGZzY19fOlwiLCQ9US5sZW5ndGgsZWU9XCJhcmJmXCIsdGU9XCJibG9iXCIsbmU9XCJzaTA4XCIscmU9XCJ1aTA4XCIsaWU9XCJ1aWM4XCIsb2U9XCJzaTE2XCIsYWU9XCJzaTMyXCIsc2U9XCJ1cjE2XCIsY2U9XCJ1aTMyXCIsdWU9XCJmbDMyXCIsbGU9XCJmbDY0XCIsZGU9JCtlZS5sZW5ndGgscGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBmZShlKXt2YXIgdCxuLHIsaSxvLGE9Ljc1KmUubGVuZ3RoLHM9ZS5sZW5ndGgsYz0wO1wiPVwiPT09ZVtlLmxlbmd0aC0xXSYmKGEtLSxcIj1cIj09PWVbZS5sZW5ndGgtMl0mJmEtLSk7dmFyIHU9bmV3IEFycmF5QnVmZmVyKGEpLGw9bmV3IFVpbnQ4QXJyYXkodSk7Zm9yKHQ9MDt0PHM7dCs9NCluPVouaW5kZXhPZihlW3RdKSxyPVouaW5kZXhPZihlW3QrMV0pLGk9Wi5pbmRleE9mKGVbdCsyXSksbz1aLmluZGV4T2YoZVt0KzNdKSxsW2MrK109bjw8MnxyPj40LGxbYysrXT0oMTUmcik8PDR8aT4+MixsW2MrK109KDMmaSk8PDZ8NjMmbztyZXR1cm4gdX1mdW5jdGlvbiBoZShlKXt2YXIgdCxuPW5ldyBVaW50OEFycmF5KGUpLHI9XCJcIjtmb3IodD0wO3Q8bi5sZW5ndGg7dCs9MylyKz1aW25bdF0+PjJdLHIrPVpbKDMmblt0XSk8PDR8blt0KzFdPj40XSxyKz1aWygxNSZuW3QrMV0pPDwyfG5bdCsyXT4+Nl0scis9Wls2MyZuW3QrMl1dO3JldHVybiBuLmxlbmd0aCUzPT09Mj9yPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtMSkrXCI9XCI6bi5sZW5ndGglMz09PTEmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtMikrXCI9PVwiKSxyfWZ1bmN0aW9uIGdlKGUsdCl7dmFyIG49XCJcIjtpZihlJiYobj1wZS5jYWxsKGUpKSxlJiYoXCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiPT09bnx8ZS5idWZmZXImJlwiW29iamVjdCBBcnJheUJ1ZmZlcl1cIj09PXBlLmNhbGwoZS5idWZmZXIpKSl7dmFyIHIsaT1RO2UgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8ocj1lLGkrPWVlKToocj1lLmJ1ZmZlcixcIltvYmplY3QgSW50OEFycmF5XVwiPT09bj9pKz1uZTpcIltvYmplY3QgVWludDhBcnJheV1cIj09PW4/aSs9cmU6XCJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XVwiPT09bj9pKz1pZTpcIltvYmplY3QgSW50MTZBcnJheV1cIj09PW4/aSs9b2U6XCJbb2JqZWN0IFVpbnQxNkFycmF5XVwiPT09bj9pKz1zZTpcIltvYmplY3QgSW50MzJBcnJheV1cIj09PW4/aSs9YWU6XCJbb2JqZWN0IFVpbnQzMkFycmF5XVwiPT09bj9pKz1jZTpcIltvYmplY3QgRmxvYXQzMkFycmF5XVwiPT09bj9pKz11ZTpcIltvYmplY3QgRmxvYXQ2NEFycmF5XVwiPT09bj9pKz1sZTp0KG5ldyBFcnJvcihcIkZhaWxlZCB0byBnZXQgdHlwZSBmb3IgQmluYXJ5QXJyYXlcIikpKSx0KGkraGUocikpfWVsc2UgaWYoXCJbb2JqZWN0IEJsb2JdXCI9PT1uKXt2YXIgbz1uZXcgRmlsZVJlYWRlcjtvLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBuPUorZS50eXBlK1wiflwiK2hlKHRoaXMucmVzdWx0KTt0KFErdGUrbil9LG8ucmVhZEFzQXJyYXlCdWZmZXIoZSl9ZWxzZSB0cnl7dChKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihcIkNvdWxkbid0IGNvbnZlcnQgdmFsdWUgaW50byBhIEpTT04gc3RyaW5nOiBcIixlKSx0KG51bGwsYSl9fWZ1bmN0aW9uIG1lKGUpe2lmKGUuc3Vic3RyaW5nKDAsJCkhPT1RKXJldHVybiBKU09OLnBhcnNlKGUpO3ZhciB0LG49ZS5zdWJzdHJpbmcoZGUpLHI9ZS5zdWJzdHJpbmcoJCxkZSk7aWYocj09PXRlJiZYLnRlc3Qobikpe3ZhciBpPW4ubWF0Y2goWCk7dD1pWzFdLG49bi5zdWJzdHJpbmcoaVswXS5sZW5ndGgpfXZhciBvPWZlKG4pO3N3aXRjaChyKXtjYXNlIGVlOnJldHVybiBvO2Nhc2UgdGU6cmV0dXJuIGMoW29dLHt0eXBlOnR9KTtjYXNlIG5lOnJldHVybiBuZXcgSW50OEFycmF5KG8pO2Nhc2UgcmU6cmV0dXJuIG5ldyBVaW50OEFycmF5KG8pO2Nhc2UgaWU6cmV0dXJuIG5ldyBVaW50OENsYW1wZWRBcnJheShvKTtjYXNlIG9lOnJldHVybiBuZXcgSW50MTZBcnJheShvKTtjYXNlIHNlOnJldHVybiBuZXcgVWludDE2QXJyYXkobyk7Y2FzZSBhZTpyZXR1cm4gbmV3IEludDMyQXJyYXkobyk7Y2FzZSBjZTpyZXR1cm4gbmV3IFVpbnQzMkFycmF5KG8pO2Nhc2UgdWU6cmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkobyk7Y2FzZSBsZTpyZXR1cm4gbmV3IEZsb2F0NjRBcnJheShvKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcIlVua293biB0eXBlOiBcIityKX19dmFyIHZlPXtzZXJpYWxpemU6Z2UsZGVzZXJpYWxpemU6bWUsc3RyaW5nVG9CdWZmZXI6ZmUsYnVmZmVyVG9TdHJpbmc6aGV9O2Z1bmN0aW9uIF9lKGUsdCxuLHIpe2UuZXhlY3V0ZVNxbChcIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIFwiK3Quc3RvcmVOYW1lK1wiIChpZCBJTlRFR0VSIFBSSU1BUlkgS0VZLCBrZXkgdW5pcXVlLCB2YWx1ZSlcIixbXSxuLHIpfWZ1bmN0aW9uIEVlKGUpe3ZhciB0PXRoaXMsbj17ZGI6bnVsbH07aWYoZSlmb3IodmFyIHIgaW4gZSluW3JdPVwic3RyaW5nXCIhPT10eXBlb2YgZVtyXT9lW3JdLnRvU3RyaW5nKCk6ZVtyXTt2YXIgaT1uZXcgdSgoZnVuY3Rpb24oZSxyKXt0cnl7bi5kYj1vcGVuRGF0YWJhc2Uobi5uYW1lLFN0cmluZyhuLnZlcnNpb24pLG4uZGVzY3JpcHRpb24sbi5zaXplKX1jYXRjaChpKXtyZXR1cm4gcihpKX1uLmRiLnRyYW5zYWN0aW9uKChmdW5jdGlvbihpKXtfZShpLG4sKGZ1bmN0aW9uKCl7dC5fZGJJbmZvPW4sZSgpfSksKGZ1bmN0aW9uKGUsdCl7cih0KX0pKX0pLHIpfSkpO3JldHVybiBuLnNlcmlhbGl6ZXI9dmUsaX1mdW5jdGlvbiBiZShlLHQsbixyLGksbyl7ZS5leGVjdXRlU3FsKG4scixpLChmdW5jdGlvbihlLGEpe2EuY29kZT09PWEuU1lOVEFYX0VSUj9lLmV4ZWN1dGVTcWwoXCJTRUxFQ1QgbmFtZSBGUk9NIHNxbGl0ZV9tYXN0ZXIgV0hFUkUgdHlwZT0ndGFibGUnIEFORCBuYW1lID0gP1wiLFt0LnN0b3JlTmFtZV0sKGZ1bmN0aW9uKGUscyl7cy5yb3dzLmxlbmd0aD9vKGUsYSk6X2UoZSx0LChmdW5jdGlvbigpe2UuZXhlY3V0ZVNxbChuLHIsaSxvKX0pLG8pfSksbyk6byhlLGEpfSksbyl9ZnVuY3Rpb24gU2UoZSx0KXt2YXIgbj10aGlzO2U9cChlKTt2YXIgcj1uZXcgdSgoZnVuY3Rpb24odCxyKXtuLnJlYWR5KCkudGhlbigoZnVuY3Rpb24oKXt2YXIgaT1uLl9kYkluZm87aS5kYi50cmFuc2FjdGlvbigoZnVuY3Rpb24obil7YmUobixpLFwiU0VMRUNUICogRlJPTSBcIitpLnN0b3JlTmFtZStcIiBXSEVSRSBrZXkgPSA/IExJTUlUIDFcIixbZV0sKGZ1bmN0aW9uKGUsbil7dmFyIHI9bi5yb3dzLmxlbmd0aD9uLnJvd3MuaXRlbSgwKS52YWx1ZTpudWxsO3ImJihyPWkuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShyKSksdChyKX0pLChmdW5jdGlvbihlLHQpe3IodCl9KSl9KSl9KSkuY2F0Y2gocil9KSk7cmV0dXJuIGwocix0KSxyfWZ1bmN0aW9uIHllKGUsdCl7dmFyIG49dGhpcyxyPW5ldyB1KChmdW5jdGlvbih0LHIpe24ucmVhZHkoKS50aGVuKChmdW5jdGlvbigpe3ZhciBpPW4uX2RiSW5mbztpLmRiLnRyYW5zYWN0aW9uKChmdW5jdGlvbihuKXtiZShuLGksXCJTRUxFQ1QgKiBGUk9NIFwiK2kuc3RvcmVOYW1lLFtdLChmdW5jdGlvbihuLHIpe2Zvcih2YXIgbz1yLnJvd3MsYT1vLmxlbmd0aCxzPTA7czxhO3MrKyl7dmFyIGM9by5pdGVtKHMpLHU9Yy52YWx1ZTtpZih1JiYodT1pLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodSkpLHZvaWQgMCE9PSh1PWUodSxjLmtleSxzKzEpKSlyZXR1cm4gdm9pZCB0KHUpfXQoKX0pLChmdW5jdGlvbihlLHQpe3IodCl9KSl9KSl9KSkuY2F0Y2gocil9KSk7cmV0dXJuIGwocix0KSxyfWZ1bmN0aW9uIFRlKGUsdCxuLHIpe3ZhciBpPXRoaXM7ZT1wKGUpO3ZhciBvPW5ldyB1KChmdW5jdGlvbihvLGEpe2kucmVhZHkoKS50aGVuKChmdW5jdGlvbigpe3ZvaWQgMD09PXQmJih0PW51bGwpO3ZhciBzPXQsYz1pLl9kYkluZm87Yy5zZXJpYWxpemVyLnNlcmlhbGl6ZSh0LChmdW5jdGlvbih0LHUpe3U/YSh1KTpjLmRiLnRyYW5zYWN0aW9uKChmdW5jdGlvbihuKXtiZShuLGMsXCJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIFwiK2Muc3RvcmVOYW1lK1wiIChrZXksIHZhbHVlKSBWQUxVRVMgKD8sID8pXCIsW2UsdF0sKGZ1bmN0aW9uKCl7byhzKX0pLChmdW5jdGlvbihlLHQpe2EodCl9KSl9KSwoZnVuY3Rpb24odCl7aWYodC5jb2RlPT09dC5RVU9UQV9FUlIpe2lmKHI+MClyZXR1cm4gdm9pZCBvKFRlLmFwcGx5KGksW2UscyxuLHItMV0pKTthKHQpfX0pKX0pKX0pKS5jYXRjaChhKX0pKTtyZXR1cm4gbChvLG4pLG99ZnVuY3Rpb24gSWUoZSx0LG4pe3JldHVybiBUZS5hcHBseSh0aGlzLFtlLHQsbiwxXSl9ZnVuY3Rpb24gT2UoZSx0KXt2YXIgbj10aGlzO2U9cChlKTt2YXIgcj1uZXcgdSgoZnVuY3Rpb24odCxyKXtuLnJlYWR5KCkudGhlbigoZnVuY3Rpb24oKXt2YXIgaT1uLl9kYkluZm87aS5kYi50cmFuc2FjdGlvbigoZnVuY3Rpb24obil7YmUobixpLFwiREVMRVRFIEZST00gXCIraS5zdG9yZU5hbWUrXCIgV0hFUkUga2V5ID0gP1wiLFtlXSwoZnVuY3Rpb24oKXt0KCl9KSwoZnVuY3Rpb24oZSx0KXtyKHQpfSkpfSkpfSkpLmNhdGNoKHIpfSkpO3JldHVybiBsKHIsdCkscn1mdW5jdGlvbiBBZShlKXt2YXIgdD10aGlzLG49bmV3IHUoKGZ1bmN0aW9uKGUsbil7dC5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIHI9dC5fZGJJbmZvO3IuZGIudHJhbnNhY3Rpb24oKGZ1bmN0aW9uKHQpe2JlKHQscixcIkRFTEVURSBGUk9NIFwiK3Iuc3RvcmVOYW1lLFtdLChmdW5jdGlvbigpe2UoKX0pLChmdW5jdGlvbihlLHQpe24odCl9KSl9KSl9KSkuY2F0Y2gobil9KSk7cmV0dXJuIGwobixlKSxufWZ1bmN0aW9uIENlKGUpe3ZhciB0PXRoaXMsbj1uZXcgdSgoZnVuY3Rpb24oZSxuKXt0LnJlYWR5KCkudGhlbigoZnVuY3Rpb24oKXt2YXIgcj10Ll9kYkluZm87ci5kYi50cmFuc2FjdGlvbigoZnVuY3Rpb24odCl7YmUodCxyLFwiU0VMRUNUIENPVU5UKGtleSkgYXMgYyBGUk9NIFwiK3Iuc3RvcmVOYW1lLFtdLChmdW5jdGlvbih0LG4pe3ZhciByPW4ucm93cy5pdGVtKDApLmM7ZShyKX0pLChmdW5jdGlvbihlLHQpe24odCl9KSl9KSl9KSkuY2F0Y2gobil9KSk7cmV0dXJuIGwobixlKSxufWZ1bmN0aW9uIE5lKGUsdCl7dmFyIG49dGhpcyxyPW5ldyB1KChmdW5jdGlvbih0LHIpe24ucmVhZHkoKS50aGVuKChmdW5jdGlvbigpe3ZhciBpPW4uX2RiSW5mbztpLmRiLnRyYW5zYWN0aW9uKChmdW5jdGlvbihuKXtiZShuLGksXCJTRUxFQ1Qga2V5IEZST00gXCIraS5zdG9yZU5hbWUrXCIgV0hFUkUgaWQgPSA/IExJTUlUIDFcIixbZSsxXSwoZnVuY3Rpb24oZSxuKXt2YXIgcj1uLnJvd3MubGVuZ3RoP24ucm93cy5pdGVtKDApLmtleTpudWxsO3Qocil9KSwoZnVuY3Rpb24oZSx0KXtyKHQpfSkpfSkpfSkpLmNhdGNoKHIpfSkpO3JldHVybiBsKHIsdCkscn1mdW5jdGlvbiBrZShlKXt2YXIgdD10aGlzLG49bmV3IHUoKGZ1bmN0aW9uKGUsbil7dC5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIHI9dC5fZGJJbmZvO3IuZGIudHJhbnNhY3Rpb24oKGZ1bmN0aW9uKHQpe2JlKHQscixcIlNFTEVDVCBrZXkgRlJPTSBcIityLnN0b3JlTmFtZSxbXSwoZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9W10saT0wO2k8bi5yb3dzLmxlbmd0aDtpKyspci5wdXNoKG4ucm93cy5pdGVtKGkpLmtleSk7ZShyKX0pLChmdW5jdGlvbihlLHQpe24odCl9KSl9KSl9KSkuY2F0Y2gobil9KSk7cmV0dXJuIGwobixlKSxufWZ1bmN0aW9uIFBlKGUpe3JldHVybiBuZXcgdSgoZnVuY3Rpb24odCxuKXtlLnRyYW5zYWN0aW9uKChmdW5jdGlvbihyKXtyLmV4ZWN1dGVTcWwoXCJTRUxFQ1QgbmFtZSBGUk9NIHNxbGl0ZV9tYXN0ZXIgV0hFUkUgdHlwZT0ndGFibGUnIEFORCBuYW1lIDw+ICdfX1dlYktpdERhdGFiYXNlSW5mb1RhYmxlX18nXCIsW10sKGZ1bmN0aW9uKG4scil7Zm9yKHZhciBpPVtdLG89MDtvPHIucm93cy5sZW5ndGg7bysrKWkucHVzaChyLnJvd3MuaXRlbShvKS5uYW1lKTt0KHtkYjplLHN0b3JlTmFtZXM6aX0pfSksKGZ1bmN0aW9uKGUsdCl7bih0KX0pKX0pLChmdW5jdGlvbihlKXtuKGUpfSkpfSkpfWZ1bmN0aW9uIFJlKGUsdCl7dD1mLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10aGlzLmNvbmZpZygpOyhlPVwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlJiZlfHx7fSkubmFtZXx8KGUubmFtZT1lLm5hbWV8fG4ubmFtZSxlLnN0b3JlTmFtZT1lLnN0b3JlTmFtZXx8bi5zdG9yZU5hbWUpO3ZhciByLGk9dGhpcztyZXR1cm4gbChyPWUubmFtZT9uZXcgdSgoZnVuY3Rpb24odCl7dmFyIHI7cj1lLm5hbWU9PT1uLm5hbWU/aS5fZGJJbmZvLmRiOm9wZW5EYXRhYmFzZShlLm5hbWUsXCJcIixcIlwiLDApLGUuc3RvcmVOYW1lP3Qoe2RiOnIsc3RvcmVOYW1lczpbZS5zdG9yZU5hbWVdfSk6dChQZShyKSl9KSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB1KChmdW5jdGlvbih0LG4pe2UuZGIudHJhbnNhY3Rpb24oKGZ1bmN0aW9uKHIpe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIG5ldyB1KChmdW5jdGlvbih0LG4pe3IuZXhlY3V0ZVNxbChcIkRST1AgVEFCTEUgSUYgRVhJU1RTIFwiK2UsW10sKGZ1bmN0aW9uKCl7dCgpfSksKGZ1bmN0aW9uKGUsdCl7bih0KX0pKX0pKX1mb3IodmFyIG89W10sYT0wLHM9ZS5zdG9yZU5hbWVzLmxlbmd0aDthPHM7YSsrKW8ucHVzaChpKGUuc3RvcmVOYW1lc1thXSkpO3UuYWxsKG8pLnRoZW4oKGZ1bmN0aW9uKCl7dCgpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtuKGUpfSkpfSksKGZ1bmN0aW9uKGUpe24oZSl9KSl9KSl9KSk6dS5yZWplY3QoXCJJbnZhbGlkIGFyZ3VtZW50c1wiKSx0KSxyfXZhciB3ZT17X2RyaXZlcjpcIndlYlNRTFN0b3JhZ2VcIixfaW5pdFN0b3JhZ2U6RWUsX3N1cHBvcnQ6cSgpLGl0ZXJhdGU6eWUsZ2V0SXRlbTpTZSxzZXRJdGVtOkllLHJlbW92ZUl0ZW06T2UsY2xlYXI6QWUsbGVuZ3RoOkNlLGtleTpOZSxrZXlzOmtlLGRyb3BJbnN0YW5jZTpSZX07ZnVuY3Rpb24gTGUoKXt0cnl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBsb2NhbFN0b3JhZ2UmJlwic2V0SXRlbVwiaW4gbG9jYWxTdG9yYWdlJiYhIWxvY2FsU3RvcmFnZS5zZXRJdGVtfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBCZShlLHQpe3ZhciBuPWUubmFtZStcIi9cIjtyZXR1cm4gZS5zdG9yZU5hbWUhPT10LnN0b3JlTmFtZSYmKG4rPWUuc3RvcmVOYW1lK1wiL1wiKSxufWZ1bmN0aW9uIE1lKCl7dmFyIGU9XCJfbG9jYWxmb3JhZ2Vfc3VwcG9ydF90ZXN0XCI7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLCEwKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShlKSwhMX1jYXRjaCh0KXtyZXR1cm4hMH19ZnVuY3Rpb24gRGUoKXtyZXR1cm4hTWUoKXx8bG9jYWxTdG9yYWdlLmxlbmd0aD4wfWZ1bmN0aW9uIGplKGUpe3ZhciB0PXRoaXMsbj17fTtpZihlKWZvcih2YXIgciBpbiBlKW5bcl09ZVtyXTtyZXR1cm4gbi5rZXlQcmVmaXg9QmUoZSx0Ll9kZWZhdWx0Q29uZmlnKSxEZSgpPyh0Ll9kYkluZm89bixuLnNlcmlhbGl6ZXI9dmUsdS5yZXNvbHZlKCkpOnUucmVqZWN0KCl9ZnVuY3Rpb24geGUoZSl7dmFyIHQ9dGhpcyxuPXQucmVhZHkoKS50aGVuKChmdW5jdGlvbigpe2Zvcih2YXIgZT10Ll9kYkluZm8ua2V5UHJlZml4LG49bG9jYWxTdG9yYWdlLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgcj1sb2NhbFN0b3JhZ2Uua2V5KG4pOzA9PT1yLmluZGV4T2YoZSkmJmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHIpfX0pKTtyZXR1cm4gbChuLGUpLG59ZnVuY3Rpb24gVWUoZSx0KXt2YXIgbj10aGlzO2U9cChlKTt2YXIgcj1uLnJlYWR5KCkudGhlbigoZnVuY3Rpb24oKXt2YXIgdD1uLl9kYkluZm8scj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0LmtleVByZWZpeCtlKTtyZXR1cm4gciYmKHI9dC5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHIpKSxyfSkpO3JldHVybiBsKHIsdCkscn1mdW5jdGlvbiBGZShlLHQpe3ZhciBuPXRoaXMscj1uLnJlYWR5KCkudGhlbigoZnVuY3Rpb24oKXtmb3IodmFyIHQ9bi5fZGJJbmZvLHI9dC5rZXlQcmVmaXgsaT1yLmxlbmd0aCxvPWxvY2FsU3RvcmFnZS5sZW5ndGgsYT0xLHM9MDtzPG87cysrKXt2YXIgYz1sb2NhbFN0b3JhZ2Uua2V5KHMpO2lmKDA9PT1jLmluZGV4T2Yocikpe3ZhciB1PWxvY2FsU3RvcmFnZS5nZXRJdGVtKGMpO2lmKHUmJih1PXQuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh1KSksdm9pZCAwIT09KHU9ZSh1LGMuc3Vic3RyaW5nKGkpLGErKykpKXJldHVybiB1fX19KSk7cmV0dXJuIGwocix0KSxyfWZ1bmN0aW9uIEhlKGUsdCl7dmFyIG49dGhpcyxyPW4ucmVhZHkoKS50aGVuKChmdW5jdGlvbigpe3ZhciB0LHI9bi5fZGJJbmZvO3RyeXt0PWxvY2FsU3RvcmFnZS5rZXkoZSl9Y2F0Y2goaSl7dD1udWxsfXJldHVybiB0JiYodD10LnN1YnN0cmluZyhyLmtleVByZWZpeC5sZW5ndGgpKSx0fSkpO3JldHVybiBsKHIsdCkscn1mdW5jdGlvbiBHZShlKXt2YXIgdD10aGlzLG49dC5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPXQuX2RiSW5mbyxuPWxvY2FsU3RvcmFnZS5sZW5ndGgscj1bXSxpPTA7aTxuO2krKyl7dmFyIG89bG9jYWxTdG9yYWdlLmtleShpKTswPT09by5pbmRleE9mKGUua2V5UHJlZml4KSYmci5wdXNoKG8uc3Vic3RyaW5nKGUua2V5UHJlZml4Lmxlbmd0aCkpfXJldHVybiByfSkpO3JldHVybiBsKG4sZSksbn1mdW5jdGlvbiBXZShlKXt2YXIgdD10aGlzLmtleXMoKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGh9KSk7cmV0dXJuIGwodCxlKSx0fWZ1bmN0aW9uIFZlKGUsdCl7dmFyIG49dGhpcztlPXAoZSk7dmFyIHI9bi5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIHQ9bi5fZGJJbmZvO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHQua2V5UHJlZml4K2UpfSkpO3JldHVybiBsKHIsdCkscn1mdW5jdGlvbiB6ZShlLHQsbil7dmFyIHI9dGhpcztlPXAoZSk7dmFyIGk9ci5yZWFkeSgpLnRoZW4oKGZ1bmN0aW9uKCl7dm9pZCAwPT09dCYmKHQ9bnVsbCk7dmFyIG49dDtyZXR1cm4gbmV3IHUoKGZ1bmN0aW9uKGksbyl7dmFyIGE9ci5fZGJJbmZvO2Euc2VyaWFsaXplci5zZXJpYWxpemUodCwoZnVuY3Rpb24odCxyKXtpZihyKW8ocik7ZWxzZSB0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oYS5rZXlQcmVmaXgrZSx0KSxpKG4pfWNhdGNoKHMpe1wiUXVvdGFFeGNlZWRlZEVycm9yXCIhPT1zLm5hbWUmJlwiTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRURcIiE9PXMubmFtZXx8byhzKSxvKHMpfX0pKX0pKX0pKTtyZXR1cm4gbChpLG4pLGl9ZnVuY3Rpb24gS2UoZSx0KXtpZih0PWYuYXBwbHkodGhpcyxhcmd1bWVudHMpLCEoZT1cImZ1bmN0aW9uXCIhPT10eXBlb2YgZSYmZXx8e30pLm5hbWUpe3ZhciBuPXRoaXMuY29uZmlnKCk7ZS5uYW1lPWUubmFtZXx8bi5uYW1lLGUuc3RvcmVOYW1lPWUuc3RvcmVOYW1lfHxuLnN0b3JlTmFtZX12YXIgcixpPXRoaXM7cmV0dXJuIHI9ZS5uYW1lP25ldyB1KChmdW5jdGlvbih0KXtlLnN0b3JlTmFtZT90KEJlKGUsaS5fZGVmYXVsdENvbmZpZykpOnQoZS5uYW1lK1wiL1wiKX0pKS50aGVuKChmdW5jdGlvbihlKXtmb3IodmFyIHQ9bG9jYWxTdG9yYWdlLmxlbmd0aC0xO3Q+PTA7dC0tKXt2YXIgbj1sb2NhbFN0b3JhZ2Uua2V5KHQpOzA9PT1uLmluZGV4T2YoZSkmJmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG4pfX0pKTp1LnJlamVjdChcIkludmFsaWQgYXJndW1lbnRzXCIpLGwocix0KSxyfXZhciBZZT17X2RyaXZlcjpcImxvY2FsU3RvcmFnZVdyYXBwZXJcIixfaW5pdFN0b3JhZ2U6amUsX3N1cHBvcnQ6TGUoKSxpdGVyYXRlOkZlLGdldEl0ZW06VWUsc2V0SXRlbTp6ZSxyZW1vdmVJdGVtOlZlLGNsZWFyOnhlLGxlbmd0aDpXZSxrZXk6SGUsa2V5czpHZSxkcm9wSW5zdGFuY2U6S2V9LHFlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fHxcIm51bWJlclwiPT09dHlwZW9mIGUmJlwibnVtYmVyXCI9PT10eXBlb2YgdCYmaXNOYU4oZSkmJmlzTmFOKHQpfSxaZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aCxyPTA7cjxuOyl7aWYocWUoZVtyXSx0KSlyZXR1cm4hMDtyKyt9cmV0dXJuITF9LEplPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVyblwiW29iamVjdCBBcnJheV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX0sWGU9e30sUWU9e30sJGU9e0lOREVYRUREQjpZLFdFQlNRTDp3ZSxMT0NBTFNUT1JBR0U6WWV9LGV0PVskZS5JTkRFWEVEREIuX2RyaXZlciwkZS5XRUJTUUwuX2RyaXZlciwkZS5MT0NBTFNUT1JBR0UuX2RyaXZlcl0sdHQ9W1wiZHJvcEluc3RhbmNlXCJdLG50PVtcImNsZWFyXCIsXCJnZXRJdGVtXCIsXCJpdGVyYXRlXCIsXCJrZXlcIixcImtleXNcIixcImxlbmd0aFwiLFwicmVtb3ZlSXRlbVwiLFwic2V0SXRlbVwiXS5jb25jYXQodHQpLHJ0PXtkZXNjcmlwdGlvbjpcIlwiLGRyaXZlcjpldC5zbGljZSgpLG5hbWU6XCJsb2NhbGZvcmFnZVwiLHNpemU6NDk4MDczNixzdG9yZU5hbWU6XCJrZXl2YWx1ZXBhaXJzXCIsdmVyc2lvbjoxfTtmdW5jdGlvbiBpdChlLHQpe2VbdF09ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHM7cmV0dXJuIGUucmVhZHkoKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBlW3RdLmFwcGx5KGUsbil9KSl9fWZ1bmN0aW9uIG90KCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHQ9YXJndW1lbnRzW2VdO2lmKHQpZm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKEplKHRbbl0pP2FyZ3VtZW50c1swXVtuXT10W25dLnNsaWNlKCk6YXJndW1lbnRzWzBdW25dPXRbbl0pfXJldHVybiBhcmd1bWVudHNbMF19dmFyIGF0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXtmb3IodmFyIG4gaW4gaSh0aGlzLGUpLCRlKWlmKCRlLmhhc093blByb3BlcnR5KG4pKXt2YXIgcj0kZVtuXSxvPXIuX2RyaXZlcjt0aGlzW25dPW8sWGVbb118fHRoaXMuZGVmaW5lRHJpdmVyKHIpfXRoaXMuX2RlZmF1bHRDb25maWc9b3Qoe30scnQpLHRoaXMuX2NvbmZpZz1vdCh7fSx0aGlzLl9kZWZhdWx0Q29uZmlnLHQpLHRoaXMuX2RyaXZlclNldD1udWxsLHRoaXMuX2luaXREcml2ZXI9bnVsbCx0aGlzLl9yZWFkeT0hMSx0aGlzLl9kYkluZm89bnVsbCx0aGlzLl93cmFwTGlicmFyeU1ldGhvZHNXaXRoUmVhZHkoKSx0aGlzLnNldERyaXZlcih0aGlzLl9jb25maWcuZHJpdmVyKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9cmV0dXJuIGUucHJvdG90eXBlLmNvbmZpZz1mdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT09KFwidW5kZWZpbmVkXCI9PT10eXBlb2YgZT9cInVuZGVmaW5lZFwiOnIoZSkpKXtpZih0aGlzLl9yZWFkeSlyZXR1cm4gbmV3IEVycm9yKFwiQ2FuJ3QgY2FsbCBjb25maWcoKSBhZnRlciBsb2NhbGZvcmFnZSBoYXMgYmVlbiB1c2VkLlwiKTtmb3IodmFyIHQgaW4gZSl7aWYoXCJzdG9yZU5hbWVcIj09PXQmJihlW3RdPWVbdF0ucmVwbGFjZSgvXFxXL2csXCJfXCIpKSxcInZlcnNpb25cIj09PXQmJlwibnVtYmVyXCIhPT10eXBlb2YgZVt0XSlyZXR1cm4gbmV3IEVycm9yKFwiRGF0YWJhc2UgdmVyc2lvbiBtdXN0IGJlIGEgbnVtYmVyLlwiKTt0aGlzLl9jb25maWdbdF09ZVt0XX1yZXR1cm4hKFwiZHJpdmVyXCJpbiBlKXx8IWUuZHJpdmVyfHx0aGlzLnNldERyaXZlcih0aGlzLl9jb25maWcuZHJpdmVyKX1yZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGU/dGhpcy5fY29uZmlnW2VdOnRoaXMuX2NvbmZpZ30sZS5wcm90b3R5cGUuZGVmaW5lRHJpdmVyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uZXcgdSgoZnVuY3Rpb24odCxuKXt0cnl7dmFyIHI9ZS5fZHJpdmVyLGk9bmV3IEVycm9yKFwiQ3VzdG9tIGRyaXZlciBub3QgY29tcGxpYW50OyBzZWUgaHR0cHM6Ly9tb3ppbGxhLmdpdGh1Yi5pby9sb2NhbEZvcmFnZS8jZGVmaW5lZHJpdmVyXCIpO2lmKCFlLl9kcml2ZXIpcmV0dXJuIHZvaWQgbihpKTtmb3IodmFyIG89bnQuY29uY2F0KFwiX2luaXRTdG9yYWdlXCIpLGE9MCxzPW8ubGVuZ3RoO2E8czthKyspe3ZhciBjPW9bYV07aWYoKCFaZSh0dCxjKXx8ZVtjXSkmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlW2NdKXJldHVybiB2b2lkIG4oaSl9dmFyIGQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEVycm9yKFwiTWV0aG9kIFwiK2UrXCIgaXMgbm90IGltcGxlbWVudGVkIGJ5IHRoZSBjdXJyZW50IGRyaXZlclwiKSxuPXUucmVqZWN0KHQpO3JldHVybiBsKG4sYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV0pLG59fSxuPTAscj10dC5sZW5ndGg7bjxyO24rKyl7dmFyIGk9dHRbbl07ZVtpXXx8KGVbaV09dChpKSl9fTtkKCk7dmFyIHA9ZnVuY3Rpb24obil7WGVbcl0mJmNvbnNvbGUuaW5mbyhcIlJlZGVmaW5pbmcgTG9jYWxGb3JhZ2UgZHJpdmVyOiBcIityKSxYZVtyXT1lLFFlW3JdPW4sdCgpfTtcIl9zdXBwb3J0XCJpbiBlP2UuX3N1cHBvcnQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLl9zdXBwb3J0P2UuX3N1cHBvcnQoKS50aGVuKHAsbik6cCghIWUuX3N1cHBvcnQpOnAoITApfWNhdGNoKGYpe24oZil9fSkpO3JldHVybiBkKHIsdCxuKSxyfSxlLnByb3RvdHlwZS5kcml2ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZHJpdmVyfHxudWxsfSxlLnByb3RvdHlwZS5nZXREcml2ZXI9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVhlW2VdP3UucmVzb2x2ZShYZVtlXSk6dS5yZWplY3QobmV3IEVycm9yKFwiRHJpdmVyIG5vdCBmb3VuZC5cIikpO3JldHVybiBkKHIsdCxuKSxyfSxlLnByb3RvdHlwZS5nZXRTZXJpYWxpemVyPWZ1bmN0aW9uKGUpe3ZhciB0PXUucmVzb2x2ZSh2ZSk7cmV0dXJuIGQodCxlKSx0fSxlLnByb3RvdHlwZS5yZWFkeT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dC5fZHJpdmVyU2V0LnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT10Ll9yZWFkeSYmKHQuX3JlYWR5PXQuX2luaXREcml2ZXIoKSksdC5fcmVhZHl9KSk7cmV0dXJuIGQobixlLGUpLG59LGUucHJvdG90eXBlLnNldERyaXZlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcztKZShlKXx8KGU9W2VdKTt2YXIgaT10aGlzLl9nZXRTdXBwb3J0ZWREcml2ZXJzKGUpO2Z1bmN0aW9uIG8oKXtyLl9jb25maWcuZHJpdmVyPXIuZHJpdmVyKCl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gci5fZXh0ZW5kKGUpLG8oKSxyLl9yZWFkeT1yLl9pbml0U3RvcmFnZShyLl9jb25maWcpLHIuX3JlYWR5fWZ1bmN0aW9uIHMoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9MDtmdW5jdGlvbiBuKCl7Zm9yKDt0PGUubGVuZ3RoOyl7dmFyIGk9ZVt0XTtyZXR1cm4gdCsrLHIuX2RiSW5mbz1udWxsLHIuX3JlYWR5PW51bGwsci5nZXREcml2ZXIoaSkudGhlbihhKS5jYXRjaChuKX1vKCk7dmFyIHM9bmV3IEVycm9yKFwiTm8gYXZhaWxhYmxlIHN0b3JhZ2UgbWV0aG9kIGZvdW5kLlwiKTtyZXR1cm4gci5fZHJpdmVyU2V0PXUucmVqZWN0KHMpLHIuX2RyaXZlclNldH1yZXR1cm4gbigpfX12YXIgYz1udWxsIT09dGhpcy5fZHJpdmVyU2V0P3RoaXMuX2RyaXZlclNldC5jYXRjaCgoZnVuY3Rpb24oKXtyZXR1cm4gdS5yZXNvbHZlKCl9KSk6dS5yZXNvbHZlKCk7cmV0dXJuIHRoaXMuX2RyaXZlclNldD1jLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIGU9aVswXTtyZXR1cm4gci5fZGJJbmZvPW51bGwsci5fcmVhZHk9bnVsbCxyLmdldERyaXZlcihlKS50aGVuKChmdW5jdGlvbihlKXtyLl9kcml2ZXI9ZS5fZHJpdmVyLG8oKSxyLl93cmFwTGlicmFyeU1ldGhvZHNXaXRoUmVhZHkoKSxyLl9pbml0RHJpdmVyPXMoaSl9KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7bygpO3ZhciBlPW5ldyBFcnJvcihcIk5vIGF2YWlsYWJsZSBzdG9yYWdlIG1ldGhvZCBmb3VuZC5cIik7cmV0dXJuIHIuX2RyaXZlclNldD11LnJlamVjdChlKSxyLl9kcml2ZXJTZXR9KSksZCh0aGlzLl9kcml2ZXJTZXQsdCxuKSx0aGlzLl9kcml2ZXJTZXR9LGUucHJvdG90eXBlLnN1cHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiEhUWVbZV19LGUucHJvdG90eXBlLl9leHRlbmQ9ZnVuY3Rpb24oZSl7b3QodGhpcyxlKX0sZS5wcm90b3R5cGUuX2dldFN1cHBvcnRlZERyaXZlcnM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MCxyPWUubGVuZ3RoO248cjtuKyspe3ZhciBpPWVbbl07dGhpcy5zdXBwb3J0cyhpKSYmdC5wdXNoKGkpfXJldHVybiB0fSxlLnByb3RvdHlwZS5fd3JhcExpYnJhcnlNZXRob2RzV2l0aFJlYWR5PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsdD1udC5sZW5ndGg7ZTx0O2UrKylpdCh0aGlzLG50W2VdKX0sZS5wcm90b3R5cGUuY3JlYXRlSW5zdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSxlfSgpLHN0PW5ldyBhdDt0LmV4cG9ydHM9c3R9LHszOjN9XX0se30sWzRdKSg0KX0sODE0NjpmdW5jdGlvbihlKXt2YXIgdCxuLHI9RnVuY3Rpb24ucHJvdG90eXBlLGk9T2JqZWN0LnByb3RvdHlwZSxvPXIudG9TdHJpbmcsYT1pLmhhc093blByb3BlcnR5LHM9by5jYWxsKE9iamVjdCksYz1pLnRvU3RyaW5nLHU9KHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mLG49T2JqZWN0LGZ1bmN0aW9uKGUpe3JldHVybiB0KG4oZSkpfSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCFmdW5jdGlvbihlKXtyZXR1cm4hIWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlfShlKXx8XCJbb2JqZWN0IE9iamVjdF1cIiE9Yy5jYWxsKGUpfHxmdW5jdGlvbihlKXt2YXIgdD0hMTtpZihudWxsIT1lJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlLnRvU3RyaW5nKXRyeXt0PSEhKGUrXCJcIil9Y2F0Y2gobil7fXJldHVybiB0fShlKSlyZXR1cm4hMTt2YXIgdD11KGUpO2lmKG51bGw9PT10KXJldHVybiEwO3ZhciBuPWEuY2FsbCh0LFwiY29uc3RydWN0b3JcIikmJnQuY29uc3RydWN0b3I7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgbiYmbiBpbnN0YW5jZW9mIG4mJm8uY2FsbChuKT09c319LDI1NzUxOmZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsbj1BcnJheS5pc0FycmF5O2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZXx8IW4oZSkmJmZ1bmN0aW9uKGUpe3JldHVybiEhZSYmXCJvYmplY3RcIj09dHlwZW9mIGV9KGUpJiZcIltvYmplY3QgU3RyaW5nXVwiPT10LmNhbGwoZSl9fSw2MjcwNTpmdW5jdGlvbihlLHQsbil7dmFyIHI9big1NTYzOSkuU3ltYm9sO2UuZXhwb3J0cz1yfSw0NDIzOTpmdW5jdGlvbihlLHQsbil7dmFyIHI9big2MjcwNSksaT1uKDg5NjA3KSxvPW4oMjMzMyksYT1yP3IudG9TdHJpbmdUYWc6dm9pZCAwO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT92b2lkIDA9PT1lP1wiW29iamVjdCBVbmRlZmluZWRdXCI6XCJbb2JqZWN0IE51bGxdXCI6YSYmYSBpbiBPYmplY3QoZSk/aShlKTpvKGUpfX0sMjc1NjE6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNjc5OTApLGk9L15cXHMrLztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/ZS5zbGljZSgwLHIoZSkrMSkucmVwbGFjZShpLFwiXCIpOmV9fSwzMTk1NzpmdW5jdGlvbihlLHQsbil7dmFyIHI9XCJvYmplY3RcIj09dHlwZW9mIG4uZyYmbi5nJiZuLmcuT2JqZWN0PT09T2JqZWN0JiZuLmc7ZS5leHBvcnRzPXJ9LDg5NjA3OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDYyNzA1KSxpPU9iamVjdC5wcm90b3R5cGUsbz1pLmhhc093blByb3BlcnR5LGE9aS50b1N0cmluZyxzPXI/ci50b1N0cmluZ1RhZzp2b2lkIDA7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PW8uY2FsbChlLHMpLG49ZVtzXTt0cnl7ZVtzXT12b2lkIDA7dmFyIHI9ITB9Y2F0Y2goYyl7fXZhciBpPWEuY2FsbChlKTtyZXR1cm4gciYmKHQ/ZVtzXT1uOmRlbGV0ZSBlW3NdKSxpfX0sMjMzMzpmdW5jdGlvbihlKXt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdC5jYWxsKGUpfX0sNTU2Mzk6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMzE5NTcpLGk9XCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLG89cnx8aXx8RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpO2UuZXhwb3J0cz1vfSw2Nzk5MDpmdW5jdGlvbihlKXt2YXIgdD0vXFxzLztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPWUubGVuZ3RoO24tLSYmdC50ZXN0KGUuY2hhckF0KG4pKTspO3JldHVybiBufX0sMjMyNzk6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMTMyMTgpLGk9big3NzcxKSxvPW4oMTQ4NDEpLGE9TWF0aC5tYXgscz1NYXRoLm1pbjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBjLHUsbCxkLHAsZixoPTAsZz0hMSxtPSExLHY9ITA7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBmdW5jdGlvblwiKTtmdW5jdGlvbiBfKHQpe3ZhciBuPWMscj11O3JldHVybiBjPXU9dm9pZCAwLGg9dCxkPWUuYXBwbHkocixuKX1mdW5jdGlvbiBFKGUpe3JldHVybiBoPWUscD1zZXRUaW1lb3V0KFMsdCksZz9fKGUpOmR9ZnVuY3Rpb24gYihlKXt2YXIgbj1lLWY7cmV0dXJuIHZvaWQgMD09PWZ8fG4+PXR8fG48MHx8bSYmZS1oPj1sfWZ1bmN0aW9uIFMoKXt2YXIgZT1pKCk7aWYoYihlKSlyZXR1cm4geShlKTtwPXNldFRpbWVvdXQoUyxmdW5jdGlvbihlKXt2YXIgbj10LShlLWYpO3JldHVybiBtP3MobixsLShlLWgpKTpufShlKSl9ZnVuY3Rpb24geShlKXtyZXR1cm4gcD12b2lkIDAsdiYmYz9fKGUpOihjPXU9dm9pZCAwLGQpfWZ1bmN0aW9uIFQoKXt2YXIgZT1pKCksbj1iKGUpO2lmKGM9YXJndW1lbnRzLHU9dGhpcyxmPWUsbil7aWYodm9pZCAwPT09cClyZXR1cm4gRShmKTtpZihtKXJldHVybiBjbGVhclRpbWVvdXQocCkscD1zZXRUaW1lb3V0KFMsdCksXyhmKX1yZXR1cm4gdm9pZCAwPT09cCYmKHA9c2V0VGltZW91dChTLHQpKSxkfXJldHVybiB0PW8odCl8fDAscihuKSYmKGc9ISFuLmxlYWRpbmcsbD0obT1cIm1heFdhaXRcImluIG4pP2EobyhuLm1heFdhaXQpfHwwLHQpOmwsdj1cInRyYWlsaW5nXCJpbiBuPyEhbi50cmFpbGluZzp2KSxULmNhbmNlbD1mdW5jdGlvbigpe3ZvaWQgMCE9PXAmJmNsZWFyVGltZW91dChwKSxoPTAsYz1mPXU9cD12b2lkIDB9LFQuZmx1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09cD9kOnkoaSgpKX0sVH19LDEzMjE4OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4gbnVsbCE9ZSYmKFwib2JqZWN0XCI9PXR8fFwiZnVuY3Rpb25cIj09dCl9fSwzNzAwNTpmdW5jdGlvbihlKXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlfX0sMzM0NDg6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oNDQyMzkpLGk9bigzNzAwNSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVyblwic3ltYm9sXCI9PXR5cGVvZiBlfHxpKGUpJiZcIltvYmplY3QgU3ltYm9sXVwiPT1yKGUpfX0sOTY0ODY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByO2U9bi5ubWQoZSksZnVuY3Rpb24oKXt2YXIgaSxvPVwiRXhwZWN0ZWQgYSBmdW5jdGlvblwiLGE9XCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fXCIscz1cIl9fbG9kYXNoX3BsYWNlaG9sZGVyX19cIixjPTE2LHU9MzIsbD02NCxkPTEyOCxwPTI1NixmPTEvMCxoPTkwMDcxOTkyNTQ3NDA5OTEsZz1OYU4sbT00Mjk0OTY3Mjk1LHY9W1tcImFyeVwiLGRdLFtcImJpbmRcIiwxXSxbXCJiaW5kS2V5XCIsMl0sW1wiY3VycnlcIiw4XSxbXCJjdXJyeVJpZ2h0XCIsY10sW1wiZmxpcFwiLDUxMl0sW1wicGFydGlhbFwiLHVdLFtcInBhcnRpYWxSaWdodFwiLGxdLFtcInJlYXJnXCIscF1dLF89XCJbb2JqZWN0IEFyZ3VtZW50c11cIixFPVwiW29iamVjdCBBcnJheV1cIixiPVwiW29iamVjdCBCb29sZWFuXVwiLFM9XCJbb2JqZWN0IERhdGVdXCIseT1cIltvYmplY3QgRXJyb3JdXCIsVD1cIltvYmplY3QgRnVuY3Rpb25dXCIsST1cIltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dXCIsTz1cIltvYmplY3QgTWFwXVwiLEE9XCJbb2JqZWN0IE51bWJlcl1cIixDPVwiW29iamVjdCBPYmplY3RdXCIsTj1cIltvYmplY3QgUHJvbWlzZV1cIixrPVwiW29iamVjdCBSZWdFeHBdXCIsUD1cIltvYmplY3QgU2V0XVwiLFI9XCJbb2JqZWN0IFN0cmluZ11cIix3PVwiW29iamVjdCBTeW1ib2xdXCIsTD1cIltvYmplY3QgV2Vha01hcF1cIixCPVwiW29iamVjdCBBcnJheUJ1ZmZlcl1cIixNPVwiW29iamVjdCBEYXRhVmlld11cIixEPVwiW29iamVjdCBGbG9hdDMyQXJyYXldXCIsaj1cIltvYmplY3QgRmxvYXQ2NEFycmF5XVwiLHg9XCJbb2JqZWN0IEludDhBcnJheV1cIixVPVwiW29iamVjdCBJbnQxNkFycmF5XVwiLEY9XCJbb2JqZWN0IEludDMyQXJyYXldXCIsSD1cIltvYmplY3QgVWludDhBcnJheV1cIixHPVwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV1cIixXPVwiW29iamVjdCBVaW50MTZBcnJheV1cIixWPVwiW29iamVjdCBVaW50MzJBcnJheV1cIix6PS9cXGJfX3AgXFwrPSAnJzsvZyxLPS9cXGIoX19wIFxcKz0pICcnIFxcKy9nLFk9LyhfX2VcXCguKj9cXCl8XFxiX190XFwpKSBcXCtcXG4nJzsvZyxxPS8mKD86YW1wfGx0fGd0fHF1b3R8IzM5KTsvZyxaPS9bJjw+XCInXS9nLEo9UmVnRXhwKHEuc291cmNlKSxYPVJlZ0V4cChaLnNvdXJjZSksUT0vPCUtKFtcXHNcXFNdKz8pJT4vZywkPS88JShbXFxzXFxTXSs/KSU+L2csZWU9LzwlPShbXFxzXFxTXSs/KSU+L2csdGU9L1xcLnxcXFsoPzpbXltcXF1dKnwoW1wiJ10pKD86KD8hXFwxKVteXFxcXF18XFxcXC4pKj9cXDEpXFxdLyxuZT0vXlxcdyokLyxyZT0vW14uW1xcXV0rfFxcWyg/OigtP1xcZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxcXXwoPz0oPzpcXC58XFxbXFxdKSg/OlxcLnxcXFtcXF18JCkpL2csaWU9L1tcXFxcXiQuKis/KClbXFxde318XS9nLG9lPVJlZ0V4cChpZS5zb3VyY2UpLGFlPS9eXFxzKy8sc2U9L1xccy8sY2U9L1xceyg/OlxcblxcL1xcKiBcXFt3cmFwcGVkIHdpdGggLitcXF0gXFwqXFwvKT9cXG4/Lyx1ZT0vXFx7XFxuXFwvXFwqIFxcW3dyYXBwZWQgd2l0aCAoLispXFxdIFxcKi8sbGU9Lyw/ICYgLyxkZT0vW15cXHgwMC1cXHgyZlxceDNhLVxceDQwXFx4NWItXFx4NjBcXHg3Yi1cXHg3Zl0rL2cscGU9L1soKT0se31cXFtcXF1cXC9cXHNdLyxmZT0vXFxcXChcXFxcKT8vZyxoZT0vXFwkXFx7KFteXFxcXH1dKig/OlxcXFwuW15cXFxcfV0qKSopXFx9L2csZ2U9L1xcdyokLyxtZT0vXlstK10weFswLTlhLWZdKyQvaSx2ZT0vXjBiWzAxXSskL2ksX2U9L15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLyxFZT0vXjBvWzAtN10rJC9pLGJlPS9eKD86MHxbMS05XVxcZCopJC8sU2U9L1tcXHhjMC1cXHhkNlxceGQ4LVxceGY2XFx4ZjgtXFx4ZmZcXHUwMTAwLVxcdTAxN2ZdL2cseWU9LygkXikvLFRlPS9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZyxJZT1cIlxcXFx1MDMwMC1cXFxcdTAzNmZcXFxcdWZlMjAtXFxcXHVmZTJmXFxcXHUyMGQwLVxcXFx1MjBmZlwiLE9lPVwiXFxcXHUyNzAwLVxcXFx1MjdiZlwiLEFlPVwiYS16XFxcXHhkZi1cXFxceGY2XFxcXHhmOC1cXFxceGZmXCIsQ2U9XCJBLVpcXFxceGMwLVxcXFx4ZDZcXFxceGQ4LVxcXFx4ZGVcIixOZT1cIlxcXFx1ZmUwZVxcXFx1ZmUwZlwiLGtlPVwiXFxcXHhhY1xcXFx4YjFcXFxceGQ3XFxcXHhmN1xcXFx4MDAtXFxcXHgyZlxcXFx4M2EtXFxcXHg0MFxcXFx4NWItXFxcXHg2MFxcXFx4N2ItXFxcXHhiZlxcXFx1MjAwMC1cXFxcdTIwNmYgXFxcXHRcXFxceDBiXFxcXGZcXFxceGEwXFxcXHVmZWZmXFxcXG5cXFxcclxcXFx1MjAyOFxcXFx1MjAyOVxcXFx1MTY4MFxcXFx1MTgwZVxcXFx1MjAwMFxcXFx1MjAwMVxcXFx1MjAwMlxcXFx1MjAwM1xcXFx1MjAwNFxcXFx1MjAwNVxcXFx1MjAwNlxcXFx1MjAwN1xcXFx1MjAwOFxcXFx1MjAwOVxcXFx1MjAwYVxcXFx1MjAyZlxcXFx1MjA1ZlxcXFx1MzAwMFwiLFBlPVwiWydcXHUyMDE5XVwiLFJlPVwiW1xcXFx1ZDgwMC1cXFxcdWRmZmZdXCIsd2U9XCJbXCIra2UrXCJdXCIsTGU9XCJbXCIrSWUrXCJdXCIsQmU9XCJcXFxcZCtcIixNZT1cIltcXFxcdTI3MDAtXFxcXHUyN2JmXVwiLERlPVwiW1wiK0FlK1wiXVwiLGplPVwiW15cXFxcdWQ4MDAtXFxcXHVkZmZmXCIra2UrQmUrT2UrQWUrQ2UrXCJdXCIseGU9XCJcXFxcdWQ4M2NbXFxcXHVkZmZiLVxcXFx1ZGZmZl1cIixVZT1cIlteXFxcXHVkODAwLVxcXFx1ZGZmZl1cIixGZT1cIig/OlxcXFx1ZDgzY1tcXFxcdWRkZTYtXFxcXHVkZGZmXSl7Mn1cIixIZT1cIltcXFxcdWQ4MDAtXFxcXHVkYmZmXVtcXFxcdWRjMDAtXFxcXHVkZmZmXVwiLEdlPVwiW1wiK0NlK1wiXVwiLFdlPVwiKD86XCIrRGUrXCJ8XCIramUrXCIpXCIsVmU9XCIoPzpcIitHZStcInxcIitqZStcIilcIix6ZT1cIig/OlsnXFx1MjAxOV0oPzpkfGxsfG18cmV8c3x0fHZlKSk/XCIsS2U9XCIoPzpbJ1xcdTIwMTldKD86RHxMTHxNfFJFfFN8VHxWRSkpP1wiLFllPVwiKD86XCIrTGUrXCJ8XCIreGUrXCIpXCIrXCI/XCIscWU9XCJbXFxcXHVmZTBlXFxcXHVmZTBmXT9cIixaZT1xZStZZSsoXCIoPzpcXFxcdTIwMGQoPzpcIitbVWUsRmUsSGVdLmpvaW4oXCJ8XCIpK1wiKVwiK3FlK1llK1wiKSpcIiksSmU9XCIoPzpcIitbTWUsRmUsSGVdLmpvaW4oXCJ8XCIpK1wiKVwiK1plLFhlPVwiKD86XCIrW1VlK0xlK1wiP1wiLExlLEZlLEhlLFJlXS5qb2luKFwifFwiKStcIilcIixRZT1SZWdFeHAoUGUsXCJnXCIpLCRlPVJlZ0V4cChMZSxcImdcIiksZXQ9UmVnRXhwKHhlK1wiKD89XCIreGUrXCIpfFwiK1hlK1plLFwiZ1wiKSx0dD1SZWdFeHAoW0dlK1wiP1wiK0RlK1wiK1wiK3plK1wiKD89XCIrW3dlLEdlLFwiJFwiXS5qb2luKFwifFwiKStcIilcIixWZStcIitcIitLZStcIig/PVwiK1t3ZSxHZStXZSxcIiRcIl0uam9pbihcInxcIikrXCIpXCIsR2UrXCI/XCIrV2UrXCIrXCIremUsR2UrXCIrXCIrS2UsXCJcXFxcZCooPzoxU1R8Mk5EfDNSRHwoPyFbMTIzXSlcXFxcZFRIKSg/PVxcXFxifFthLXpfXSlcIixcIlxcXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcXFxkdGgpKD89XFxcXGJ8W0EtWl9dKVwiLEJlLEplXS5qb2luKFwifFwiKSxcImdcIiksbnQ9UmVnRXhwKFwiW1xcXFx1MjAwZFxcXFx1ZDgwMC1cXFxcdWRmZmZcIitJZStOZStcIl1cIikscnQ9L1thLXpdW0EtWl18W0EtWl17Mn1bYS16XXxbMC05XVthLXpBLVpdfFthLXpBLVpdWzAtOV18W15hLXpBLVowLTkgXS8saXQ9W1wiQXJyYXlcIixcIkJ1ZmZlclwiLFwiRGF0YVZpZXdcIixcIkRhdGVcIixcIkVycm9yXCIsXCJGbG9hdDMyQXJyYXlcIixcIkZsb2F0NjRBcnJheVwiLFwiRnVuY3Rpb25cIixcIkludDhBcnJheVwiLFwiSW50MTZBcnJheVwiLFwiSW50MzJBcnJheVwiLFwiTWFwXCIsXCJNYXRoXCIsXCJPYmplY3RcIixcIlByb21pc2VcIixcIlJlZ0V4cFwiLFwiU2V0XCIsXCJTdHJpbmdcIixcIlN5bWJvbFwiLFwiVHlwZUVycm9yXCIsXCJVaW50OEFycmF5XCIsXCJVaW50OENsYW1wZWRBcnJheVwiLFwiVWludDE2QXJyYXlcIixcIlVpbnQzMkFycmF5XCIsXCJXZWFrTWFwXCIsXCJfXCIsXCJjbGVhclRpbWVvdXRcIixcImlzRmluaXRlXCIsXCJwYXJzZUludFwiLFwic2V0VGltZW91dFwiXSxvdD0tMSxhdD17fTthdFtEXT1hdFtqXT1hdFt4XT1hdFtVXT1hdFtGXT1hdFtIXT1hdFtHXT1hdFtXXT1hdFtWXT0hMCxhdFtfXT1hdFtFXT1hdFtCXT1hdFtiXT1hdFtNXT1hdFtTXT1hdFt5XT1hdFtUXT1hdFtPXT1hdFtBXT1hdFtDXT1hdFtrXT1hdFtQXT1hdFtSXT1hdFtMXT0hMTt2YXIgc3Q9e307c3RbX109c3RbRV09c3RbQl09c3RbTV09c3RbYl09c3RbU109c3RbRF09c3Rbal09c3RbeF09c3RbVV09c3RbRl09c3RbT109c3RbQV09c3RbQ109c3Rba109c3RbUF09c3RbUl09c3Rbd109c3RbSF09c3RbR109c3RbV109c3RbVl09ITAsc3RbeV09c3RbVF09c3RbTF09ITE7dmFyIGN0PXtcIlxcXFxcIjpcIlxcXFxcIixcIidcIjpcIidcIixcIlxcblwiOlwiblwiLFwiXFxyXCI6XCJyXCIsXCJcXHUyMDI4XCI6XCJ1MjAyOFwiLFwiXFx1MjAyOVwiOlwidTIwMjlcIn0sdXQ9cGFyc2VGbG9hdCxsdD1wYXJzZUludCxkdD1cIm9iamVjdFwiPT10eXBlb2Ygbi5nJiZuLmcmJm4uZy5PYmplY3Q9PT1PYmplY3QmJm4uZyxwdD1cIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsZnQ9ZHR8fHB0fHxGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCksaHQ9dCYmIXQubm9kZVR5cGUmJnQsZ3Q9aHQmJmUmJiFlLm5vZGVUeXBlJiZlLG10PWd0JiZndC5leHBvcnRzPT09aHQsdnQ9bXQmJmR0LnByb2Nlc3MsX3Q9ZnVuY3Rpb24oKXt0cnl7dmFyIGU9Z3QmJmd0LnJlcXVpcmUmJmd0LnJlcXVpcmUoXCJ1dGlsXCIpLnR5cGVzO3JldHVybiBlfHx2dCYmdnQuYmluZGluZyYmdnQuYmluZGluZyhcInV0aWxcIil9Y2F0Y2godCl7fX0oKSxFdD1fdCYmX3QuaXNBcnJheUJ1ZmZlcixidD1fdCYmX3QuaXNEYXRlLFN0PV90JiZfdC5pc01hcCx5dD1fdCYmX3QuaXNSZWdFeHAsVHQ9X3QmJl90LmlzU2V0LEl0PV90JiZfdC5pc1R5cGVkQXJyYXk7ZnVuY3Rpb24gT3QoZSx0LG4pe3N3aXRjaChuLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBlLmNhbGwodCk7Y2FzZSAxOnJldHVybiBlLmNhbGwodCxuWzBdKTtjYXNlIDI6cmV0dXJuIGUuY2FsbCh0LG5bMF0sblsxXSk7Y2FzZSAzOnJldHVybiBlLmNhbGwodCxuWzBdLG5bMV0sblsyXSl9cmV0dXJuIGUuYXBwbHkodCxuKX1mdW5jdGlvbiBBdChlLHQsbixyKXtmb3IodmFyIGk9LTEsbz1udWxsPT1lPzA6ZS5sZW5ndGg7KytpPG87KXt2YXIgYT1lW2ldO3QocixhLG4oYSksZSl9cmV0dXJuIHJ9ZnVuY3Rpb24gQ3QoZSx0KXtmb3IodmFyIG49LTEscj1udWxsPT1lPzA6ZS5sZW5ndGg7KytuPHImJiExIT09dChlW25dLG4sZSk7KTtyZXR1cm4gZX1mdW5jdGlvbiBOdChlLHQpe2Zvcih2YXIgbj1udWxsPT1lPzA6ZS5sZW5ndGg7bi0tJiYhMSE9PXQoZVtuXSxuLGUpOyk7cmV0dXJuIGV9ZnVuY3Rpb24ga3QoZSx0KXtmb3IodmFyIG49LTEscj1udWxsPT1lPzA6ZS5sZW5ndGg7KytuPHI7KWlmKCF0KGVbbl0sbixlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBQdChlLHQpe2Zvcih2YXIgbj0tMSxyPW51bGw9PWU/MDplLmxlbmd0aCxpPTAsbz1bXTsrK248cjspe3ZhciBhPWVbbl07dChhLG4sZSkmJihvW2krK109YSl9cmV0dXJuIG99ZnVuY3Rpb24gUnQoZSx0KXtyZXR1cm4hIShudWxsPT1lPzA6ZS5sZW5ndGgpJiZIdChlLHQsMCk+LTF9ZnVuY3Rpb24gd3QoZSx0LG4pe2Zvcih2YXIgcj0tMSxpPW51bGw9PWU/MDplLmxlbmd0aDsrK3I8aTspaWYobih0LGVbcl0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEx0KGUsdCl7Zm9yKHZhciBuPS0xLHI9bnVsbD09ZT8wOmUubGVuZ3RoLGk9QXJyYXkocik7KytuPHI7KWlbbl09dChlW25dLG4sZSk7cmV0dXJuIGl9ZnVuY3Rpb24gQnQoZSx0KXtmb3IodmFyIG49LTEscj10Lmxlbmd0aCxpPWUubGVuZ3RoOysrbjxyOyllW2krbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBNdChlLHQsbixyKXt2YXIgaT0tMSxvPW51bGw9PWU/MDplLmxlbmd0aDtmb3IociYmbyYmKG49ZVsrK2ldKTsrK2k8bzspbj10KG4sZVtpXSxpLGUpO3JldHVybiBufWZ1bmN0aW9uIER0KGUsdCxuLHIpe3ZhciBpPW51bGw9PWU/MDplLmxlbmd0aDtmb3IociYmaSYmKG49ZVstLWldKTtpLS07KW49dChuLGVbaV0saSxlKTtyZXR1cm4gbn1mdW5jdGlvbiBqdChlLHQpe2Zvcih2YXIgbj0tMSxyPW51bGw9PWU/MDplLmxlbmd0aDsrK248cjspaWYodChlW25dLG4sZSkpcmV0dXJuITA7cmV0dXJuITF9dmFyIHh0PXp0KFwibGVuZ3RoXCIpO2Z1bmN0aW9uIFV0KGUsdCxuKXt2YXIgcjtyZXR1cm4gbihlLChmdW5jdGlvbihlLG4saSl7aWYodChlLG4saSkpcmV0dXJuIHI9biwhMX0pKSxyfWZ1bmN0aW9uIEZ0KGUsdCxuLHIpe2Zvcih2YXIgaT1lLmxlbmd0aCxvPW4rKHI/MTotMSk7cj9vLS06KytvPGk7KWlmKHQoZVtvXSxvLGUpKXJldHVybiBvO3JldHVybi0xfWZ1bmN0aW9uIEh0KGUsdCxuKXtyZXR1cm4gdD09PXQ/ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4tMSxpPWUubGVuZ3RoO2Zvcig7KytyPGk7KWlmKGVbcl09PT10KXJldHVybiByO3JldHVybi0xfShlLHQsbik6RnQoZSxXdCxuKX1mdW5jdGlvbiBHdChlLHQsbixyKXtmb3IodmFyIGk9bi0xLG89ZS5sZW5ndGg7KytpPG87KWlmKHIoZVtpXSx0KSlyZXR1cm4gaTtyZXR1cm4tMX1mdW5jdGlvbiBXdChlKXtyZXR1cm4gZSE9PWV9ZnVuY3Rpb24gVnQoZSx0KXt2YXIgbj1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIG4/cXQoZSx0KS9uOmd9ZnVuY3Rpb24genQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P2k6dFtlXX19ZnVuY3Rpb24gS3QoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT1lP2k6ZVt0XX19ZnVuY3Rpb24gWXQoZSx0LG4scixpKXtyZXR1cm4gaShlLChmdW5jdGlvbihlLGksbyl7bj1yPyhyPSExLGUpOnQobixlLGksbyl9KSksbn1mdW5jdGlvbiBxdChlLHQpe2Zvcih2YXIgbixyPS0xLG89ZS5sZW5ndGg7KytyPG87KXt2YXIgYT10KGVbcl0pO2EhPT1pJiYobj1uPT09aT9hOm4rYSl9cmV0dXJuIG59ZnVuY3Rpb24gWnQoZSx0KXtmb3IodmFyIG49LTEscj1BcnJheShlKTsrK248ZTspcltuXT10KG4pO3JldHVybiByfWZ1bmN0aW9uIEp0KGUpe3JldHVybiBlP2Uuc2xpY2UoMCxnbihlKSsxKS5yZXBsYWNlKGFlLFwiXCIpOmV9ZnVuY3Rpb24gWHQoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfX1mdW5jdGlvbiBRdChlLHQpe3JldHVybiBMdCh0LChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKX1mdW5jdGlvbiAkdChlLHQpe3JldHVybiBlLmhhcyh0KX1mdW5jdGlvbiBlbihlLHQpe2Zvcih2YXIgbj0tMSxyPWUubGVuZ3RoOysrbjxyJiZIdCh0LGVbbl0sMCk+LTE7KTtyZXR1cm4gbn1mdW5jdGlvbiB0bihlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aDtuLS0mJkh0KHQsZVtuXSwwKT4tMTspO3JldHVybiBufWZ1bmN0aW9uIG5uKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLHI9MDtuLS07KWVbbl09PT10JiYrK3I7cmV0dXJuIHJ9dmFyIHJuPUt0KHtcIlxceGMwXCI6XCJBXCIsXCJcXHhjMVwiOlwiQVwiLFwiXFx4YzJcIjpcIkFcIixcIlxceGMzXCI6XCJBXCIsXCJcXHhjNFwiOlwiQVwiLFwiXFx4YzVcIjpcIkFcIixcIlxceGUwXCI6XCJhXCIsXCJcXHhlMVwiOlwiYVwiLFwiXFx4ZTJcIjpcImFcIixcIlxceGUzXCI6XCJhXCIsXCJcXHhlNFwiOlwiYVwiLFwiXFx4ZTVcIjpcImFcIixcIlxceGM3XCI6XCJDXCIsXCJcXHhlN1wiOlwiY1wiLFwiXFx4ZDBcIjpcIkRcIixcIlxceGYwXCI6XCJkXCIsXCJcXHhjOFwiOlwiRVwiLFwiXFx4YzlcIjpcIkVcIixcIlxceGNhXCI6XCJFXCIsXCJcXHhjYlwiOlwiRVwiLFwiXFx4ZThcIjpcImVcIixcIlxceGU5XCI6XCJlXCIsXCJcXHhlYVwiOlwiZVwiLFwiXFx4ZWJcIjpcImVcIixcIlxceGNjXCI6XCJJXCIsXCJcXHhjZFwiOlwiSVwiLFwiXFx4Y2VcIjpcIklcIixcIlxceGNmXCI6XCJJXCIsXCJcXHhlY1wiOlwiaVwiLFwiXFx4ZWRcIjpcImlcIixcIlxceGVlXCI6XCJpXCIsXCJcXHhlZlwiOlwiaVwiLFwiXFx4ZDFcIjpcIk5cIixcIlxceGYxXCI6XCJuXCIsXCJcXHhkMlwiOlwiT1wiLFwiXFx4ZDNcIjpcIk9cIixcIlxceGQ0XCI6XCJPXCIsXCJcXHhkNVwiOlwiT1wiLFwiXFx4ZDZcIjpcIk9cIixcIlxceGQ4XCI6XCJPXCIsXCJcXHhmMlwiOlwib1wiLFwiXFx4ZjNcIjpcIm9cIixcIlxceGY0XCI6XCJvXCIsXCJcXHhmNVwiOlwib1wiLFwiXFx4ZjZcIjpcIm9cIixcIlxceGY4XCI6XCJvXCIsXCJcXHhkOVwiOlwiVVwiLFwiXFx4ZGFcIjpcIlVcIixcIlxceGRiXCI6XCJVXCIsXCJcXHhkY1wiOlwiVVwiLFwiXFx4ZjlcIjpcInVcIixcIlxceGZhXCI6XCJ1XCIsXCJcXHhmYlwiOlwidVwiLFwiXFx4ZmNcIjpcInVcIixcIlxceGRkXCI6XCJZXCIsXCJcXHhmZFwiOlwieVwiLFwiXFx4ZmZcIjpcInlcIixcIlxceGM2XCI6XCJBZVwiLFwiXFx4ZTZcIjpcImFlXCIsXCJcXHhkZVwiOlwiVGhcIixcIlxceGZlXCI6XCJ0aFwiLFwiXFx4ZGZcIjpcInNzXCIsXCJcXHUwMTAwXCI6XCJBXCIsXCJcXHUwMTAyXCI6XCJBXCIsXCJcXHUwMTA0XCI6XCJBXCIsXCJcXHUwMTAxXCI6XCJhXCIsXCJcXHUwMTAzXCI6XCJhXCIsXCJcXHUwMTA1XCI6XCJhXCIsXCJcXHUwMTA2XCI6XCJDXCIsXCJcXHUwMTA4XCI6XCJDXCIsXCJcXHUwMTBhXCI6XCJDXCIsXCJcXHUwMTBjXCI6XCJDXCIsXCJcXHUwMTA3XCI6XCJjXCIsXCJcXHUwMTA5XCI6XCJjXCIsXCJcXHUwMTBiXCI6XCJjXCIsXCJcXHUwMTBkXCI6XCJjXCIsXCJcXHUwMTBlXCI6XCJEXCIsXCJcXHUwMTEwXCI6XCJEXCIsXCJcXHUwMTBmXCI6XCJkXCIsXCJcXHUwMTExXCI6XCJkXCIsXCJcXHUwMTEyXCI6XCJFXCIsXCJcXHUwMTE0XCI6XCJFXCIsXCJcXHUwMTE2XCI6XCJFXCIsXCJcXHUwMTE4XCI6XCJFXCIsXCJcXHUwMTFhXCI6XCJFXCIsXCJcXHUwMTEzXCI6XCJlXCIsXCJcXHUwMTE1XCI6XCJlXCIsXCJcXHUwMTE3XCI6XCJlXCIsXCJcXHUwMTE5XCI6XCJlXCIsXCJcXHUwMTFiXCI6XCJlXCIsXCJcXHUwMTFjXCI6XCJHXCIsXCJcXHUwMTFlXCI6XCJHXCIsXCJcXHUwMTIwXCI6XCJHXCIsXCJcXHUwMTIyXCI6XCJHXCIsXCJcXHUwMTFkXCI6XCJnXCIsXCJcXHUwMTFmXCI6XCJnXCIsXCJcXHUwMTIxXCI6XCJnXCIsXCJcXHUwMTIzXCI6XCJnXCIsXCJcXHUwMTI0XCI6XCJIXCIsXCJcXHUwMTI2XCI6XCJIXCIsXCJcXHUwMTI1XCI6XCJoXCIsXCJcXHUwMTI3XCI6XCJoXCIsXCJcXHUwMTI4XCI6XCJJXCIsXCJcXHUwMTJhXCI6XCJJXCIsXCJcXHUwMTJjXCI6XCJJXCIsXCJcXHUwMTJlXCI6XCJJXCIsXCJcXHUwMTMwXCI6XCJJXCIsXCJcXHUwMTI5XCI6XCJpXCIsXCJcXHUwMTJiXCI6XCJpXCIsXCJcXHUwMTJkXCI6XCJpXCIsXCJcXHUwMTJmXCI6XCJpXCIsXCJcXHUwMTMxXCI6XCJpXCIsXCJcXHUwMTM0XCI6XCJKXCIsXCJcXHUwMTM1XCI6XCJqXCIsXCJcXHUwMTM2XCI6XCJLXCIsXCJcXHUwMTM3XCI6XCJrXCIsXCJcXHUwMTM4XCI6XCJrXCIsXCJcXHUwMTM5XCI6XCJMXCIsXCJcXHUwMTNiXCI6XCJMXCIsXCJcXHUwMTNkXCI6XCJMXCIsXCJcXHUwMTNmXCI6XCJMXCIsXCJcXHUwMTQxXCI6XCJMXCIsXCJcXHUwMTNhXCI6XCJsXCIsXCJcXHUwMTNjXCI6XCJsXCIsXCJcXHUwMTNlXCI6XCJsXCIsXCJcXHUwMTQwXCI6XCJsXCIsXCJcXHUwMTQyXCI6XCJsXCIsXCJcXHUwMTQzXCI6XCJOXCIsXCJcXHUwMTQ1XCI6XCJOXCIsXCJcXHUwMTQ3XCI6XCJOXCIsXCJcXHUwMTRhXCI6XCJOXCIsXCJcXHUwMTQ0XCI6XCJuXCIsXCJcXHUwMTQ2XCI6XCJuXCIsXCJcXHUwMTQ4XCI6XCJuXCIsXCJcXHUwMTRiXCI6XCJuXCIsXCJcXHUwMTRjXCI6XCJPXCIsXCJcXHUwMTRlXCI6XCJPXCIsXCJcXHUwMTUwXCI6XCJPXCIsXCJcXHUwMTRkXCI6XCJvXCIsXCJcXHUwMTRmXCI6XCJvXCIsXCJcXHUwMTUxXCI6XCJvXCIsXCJcXHUwMTU0XCI6XCJSXCIsXCJcXHUwMTU2XCI6XCJSXCIsXCJcXHUwMTU4XCI6XCJSXCIsXCJcXHUwMTU1XCI6XCJyXCIsXCJcXHUwMTU3XCI6XCJyXCIsXCJcXHUwMTU5XCI6XCJyXCIsXCJcXHUwMTVhXCI6XCJTXCIsXCJcXHUwMTVjXCI6XCJTXCIsXCJcXHUwMTVlXCI6XCJTXCIsXCJcXHUwMTYwXCI6XCJTXCIsXCJcXHUwMTViXCI6XCJzXCIsXCJcXHUwMTVkXCI6XCJzXCIsXCJcXHUwMTVmXCI6XCJzXCIsXCJcXHUwMTYxXCI6XCJzXCIsXCJcXHUwMTYyXCI6XCJUXCIsXCJcXHUwMTY0XCI6XCJUXCIsXCJcXHUwMTY2XCI6XCJUXCIsXCJcXHUwMTYzXCI6XCJ0XCIsXCJcXHUwMTY1XCI6XCJ0XCIsXCJcXHUwMTY3XCI6XCJ0XCIsXCJcXHUwMTY4XCI6XCJVXCIsXCJcXHUwMTZhXCI6XCJVXCIsXCJcXHUwMTZjXCI6XCJVXCIsXCJcXHUwMTZlXCI6XCJVXCIsXCJcXHUwMTcwXCI6XCJVXCIsXCJcXHUwMTcyXCI6XCJVXCIsXCJcXHUwMTY5XCI6XCJ1XCIsXCJcXHUwMTZiXCI6XCJ1XCIsXCJcXHUwMTZkXCI6XCJ1XCIsXCJcXHUwMTZmXCI6XCJ1XCIsXCJcXHUwMTcxXCI6XCJ1XCIsXCJcXHUwMTczXCI6XCJ1XCIsXCJcXHUwMTc0XCI6XCJXXCIsXCJcXHUwMTc1XCI6XCJ3XCIsXCJcXHUwMTc2XCI6XCJZXCIsXCJcXHUwMTc3XCI6XCJ5XCIsXCJcXHUwMTc4XCI6XCJZXCIsXCJcXHUwMTc5XCI6XCJaXCIsXCJcXHUwMTdiXCI6XCJaXCIsXCJcXHUwMTdkXCI6XCJaXCIsXCJcXHUwMTdhXCI6XCJ6XCIsXCJcXHUwMTdjXCI6XCJ6XCIsXCJcXHUwMTdlXCI6XCJ6XCIsXCJcXHUwMTMyXCI6XCJJSlwiLFwiXFx1MDEzM1wiOlwiaWpcIixcIlxcdTAxNTJcIjpcIk9lXCIsXCJcXHUwMTUzXCI6XCJvZVwiLFwiXFx1MDE0OVwiOlwiJ25cIixcIlxcdTAxN2ZcIjpcInNcIn0pLG9uPUt0KHtcIiZcIjpcIiZhbXA7XCIsXCI8XCI6XCImbHQ7XCIsXCI+XCI6XCImZ3Q7XCIsJ1wiJzpcIiZxdW90O1wiLFwiJ1wiOlwiJiMzOTtcIn0pO2Z1bmN0aW9uIGFuKGUpe3JldHVyblwiXFxcXFwiK2N0W2VdfWZ1bmN0aW9uIHNuKGUpe3JldHVybiBudC50ZXN0KGUpfWZ1bmN0aW9uIGNuKGUpe3ZhciB0PS0xLG49QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe25bKyt0XT1bcixlXX0pKSxufWZ1bmN0aW9uIHVuKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBlKHQobikpfX1mdW5jdGlvbiBsbihlLHQpe2Zvcih2YXIgbj0tMSxyPWUubGVuZ3RoLGk9MCxvPVtdOysrbjxyOyl7dmFyIGE9ZVtuXTthIT09dCYmYSE9PXN8fChlW25dPXMsb1tpKytdPW4pfXJldHVybiBvfWZ1bmN0aW9uIGRuKGUpe3ZhciB0PS0xLG49QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtuWysrdF09ZX0pKSxufWZ1bmN0aW9uIHBuKGUpe3ZhciB0PS0xLG49QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtuWysrdF09W2UsZV19KSksbn1mdW5jdGlvbiBmbihlKXtyZXR1cm4gc24oZSk/ZnVuY3Rpb24oZSl7dmFyIHQ9ZXQubGFzdEluZGV4PTA7Zm9yKDtldC50ZXN0KGUpOykrK3Q7cmV0dXJuIHR9KGUpOnh0KGUpfWZ1bmN0aW9uIGhuKGUpe3JldHVybiBzbihlKT9mdW5jdGlvbihlKXtyZXR1cm4gZS5tYXRjaChldCl8fFtdfShlKTpmdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChcIlwiKX0oZSl9ZnVuY3Rpb24gZ24oZSl7Zm9yKHZhciB0PWUubGVuZ3RoO3QtLSYmc2UudGVzdChlLmNoYXJBdCh0KSk7KTtyZXR1cm4gdH12YXIgbW49S3Qoe1wiJmFtcDtcIjpcIiZcIixcIiZsdDtcIjpcIjxcIixcIiZndDtcIjpcIj5cIixcIiZxdW90O1wiOidcIicsXCImIzM5O1wiOlwiJ1wifSk7dmFyIHZuPWZ1bmN0aW9uIGUodCl7dmFyIG49KHQ9bnVsbD09dD9mdDp2bi5kZWZhdWx0cyhmdC5PYmplY3QoKSx0LHZuLnBpY2soZnQsaXQpKSkuQXJyYXkscj10LkRhdGUsc2U9dC5FcnJvcixJZT10LkZ1bmN0aW9uLE9lPXQuTWF0aCxBZT10Lk9iamVjdCxDZT10LlJlZ0V4cCxOZT10LlN0cmluZyxrZT10LlR5cGVFcnJvcixQZT1uLnByb3RvdHlwZSxSZT1JZS5wcm90b3R5cGUsd2U9QWUucHJvdG90eXBlLExlPXRbXCJfX2NvcmUtanNfc2hhcmVkX19cIl0sQmU9UmUudG9TdHJpbmcsTWU9d2UuaGFzT3duUHJvcGVydHksRGU9MCxqZT1mdW5jdGlvbigpe3ZhciBlPS9bXi5dKyQvLmV4ZWMoTGUmJkxlLmtleXMmJkxlLmtleXMuSUVfUFJPVE98fFwiXCIpO3JldHVybiBlP1wiU3ltYm9sKHNyYylfMS5cIitlOlwiXCJ9KCkseGU9d2UudG9TdHJpbmcsVWU9QmUuY2FsbChBZSksRmU9ZnQuXyxIZT1DZShcIl5cIitCZS5jYWxsKE1lKS5yZXBsYWNlKGllLFwiXFxcXCQmXCIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csXCIkMS4qP1wiKStcIiRcIiksR2U9bXQ/dC5CdWZmZXI6aSxXZT10LlN5bWJvbCxWZT10LlVpbnQ4QXJyYXksemU9R2U/R2UuYWxsb2NVbnNhZmU6aSxLZT11bihBZS5nZXRQcm90b3R5cGVPZixBZSksWWU9QWUuY3JlYXRlLHFlPXdlLnByb3BlcnR5SXNFbnVtZXJhYmxlLFplPVBlLnNwbGljZSxKZT1XZT9XZS5pc0NvbmNhdFNwcmVhZGFibGU6aSxYZT1XZT9XZS5pdGVyYXRvcjppLGV0PVdlP1dlLnRvU3RyaW5nVGFnOmksbnQ9ZnVuY3Rpb24oKXt0cnl7dmFyIGU9Zm8oQWUsXCJkZWZpbmVQcm9wZXJ0eVwiKTtyZXR1cm4gZSh7fSxcIlwiLHt9KSxlfWNhdGNoKHQpe319KCksY3Q9dC5jbGVhclRpbWVvdXQhPT1mdC5jbGVhclRpbWVvdXQmJnQuY2xlYXJUaW1lb3V0LGR0PXImJnIubm93IT09ZnQuRGF0ZS5ub3cmJnIubm93LHB0PXQuc2V0VGltZW91dCE9PWZ0LnNldFRpbWVvdXQmJnQuc2V0VGltZW91dCxodD1PZS5jZWlsLGd0PU9lLmZsb29yLHZ0PUFlLmdldE93blByb3BlcnR5U3ltYm9scyxfdD1HZT9HZS5pc0J1ZmZlcjppLHh0PXQuaXNGaW5pdGUsS3Q9UGUuam9pbixfbj11bihBZS5rZXlzLEFlKSxFbj1PZS5tYXgsYm49T2UubWluLFNuPXIubm93LHluPXQucGFyc2VJbnQsVG49T2UucmFuZG9tLEluPVBlLnJldmVyc2UsT249Zm8odCxcIkRhdGFWaWV3XCIpLEFuPWZvKHQsXCJNYXBcIiksQ249Zm8odCxcIlByb21pc2VcIiksTm49Zm8odCxcIlNldFwiKSxrbj1mbyh0LFwiV2Vha01hcFwiKSxQbj1mbyhBZSxcImNyZWF0ZVwiKSxSbj1rbiYmbmV3IGtuLHduPXt9LExuPUZvKE9uKSxCbj1GbyhBbiksTW49Rm8oQ24pLERuPUZvKE5uKSxqbj1GbyhrbikseG49V2U/V2UucHJvdG90eXBlOmksVW49eG4/eG4udmFsdWVPZjppLEZuPXhuP3huLnRvU3RyaW5nOmk7ZnVuY3Rpb24gSG4oZSl7aWYocnMoZSkmJiFLYShlKSYmIShlIGluc3RhbmNlb2Ygem4pKXtpZihlIGluc3RhbmNlb2YgVm4pcmV0dXJuIGU7aWYoTWUuY2FsbChlLFwiX193cmFwcGVkX19cIikpcmV0dXJuIEhvKGUpfXJldHVybiBuZXcgVm4oZSl9dmFyIEduPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZnVuY3Rpb24odCl7aWYoIW5zKHQpKXJldHVybnt9O2lmKFllKXJldHVybiBZZSh0KTtlLnByb3RvdHlwZT10O3ZhciBuPW5ldyBlO3JldHVybiBlLnByb3RvdHlwZT1pLG59fSgpO2Z1bmN0aW9uIFduKCl7fWZ1bmN0aW9uIFZuKGUsdCl7dGhpcy5fX3dyYXBwZWRfXz1lLHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2NoYWluX189ISF0LHRoaXMuX19pbmRleF9fPTAsdGhpcy5fX3ZhbHVlc19fPWl9ZnVuY3Rpb24gem4oZSl7dGhpcy5fX3dyYXBwZWRfXz1lLHRoaXMuX19hY3Rpb25zX189W10sdGhpcy5fX2Rpcl9fPTEsdGhpcy5fX2ZpbHRlcmVkX189ITEsdGhpcy5fX2l0ZXJhdGVlc19fPVtdLHRoaXMuX190YWtlQ291bnRfXz1tLHRoaXMuX192aWV3c19fPVtdfWZ1bmN0aW9uIEtuKGUpe3ZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PG47KXt2YXIgcj1lW3RdO3RoaXMuc2V0KHJbMF0sclsxXSl9fWZ1bmN0aW9uIFluKGUpe3ZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PG47KXt2YXIgcj1lW3RdO3RoaXMuc2V0KHJbMF0sclsxXSl9fWZ1bmN0aW9uIHFuKGUpe3ZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PG47KXt2YXIgcj1lW3RdO3RoaXMuc2V0KHJbMF0sclsxXSl9fWZ1bmN0aW9uIFpuKGUpe3ZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoO2Zvcih0aGlzLl9fZGF0YV9fPW5ldyBxbjsrK3Q8bjspdGhpcy5hZGQoZVt0XSl9ZnVuY3Rpb24gSm4oZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXz1uZXcgWW4oZSk7dGhpcy5zaXplPXQuc2l6ZX1mdW5jdGlvbiBYbihlLHQpe3ZhciBuPUthKGUpLHI9IW4mJnphKGUpLGk9IW4mJiFyJiZKYShlKSxvPSFuJiYhciYmIWkmJmRzKGUpLGE9bnx8cnx8aXx8byxzPWE/WnQoZS5sZW5ndGgsTmUpOltdLGM9cy5sZW5ndGg7Zm9yKHZhciB1IGluIGUpIXQmJiFNZS5jYWxsKGUsdSl8fGEmJihcImxlbmd0aFwiPT11fHxpJiYoXCJvZmZzZXRcIj09dXx8XCJwYXJlbnRcIj09dSl8fG8mJihcImJ1ZmZlclwiPT11fHxcImJ5dGVMZW5ndGhcIj09dXx8XCJieXRlT2Zmc2V0XCI9PXUpfHxibyh1LGMpKXx8cy5wdXNoKHUpO3JldHVybiBzfWZ1bmN0aW9uIFFuKGUpe3ZhciB0PWUubGVuZ3RoO3JldHVybiB0P2VbWnIoMCx0LTEpXTppfWZ1bmN0aW9uICRuKGUsdCl7cmV0dXJuIGpvKFBpKGUpLGNyKHQsMCxlLmxlbmd0aCkpfWZ1bmN0aW9uIGVyKGUpe3JldHVybiBqbyhQaShlKSl9ZnVuY3Rpb24gdHIoZSx0LG4peyhuIT09aSYmIUdhKGVbdF0sbil8fG49PT1pJiYhKHQgaW4gZSkpJiZhcihlLHQsbil9ZnVuY3Rpb24gbnIoZSx0LG4pe3ZhciByPWVbdF07TWUuY2FsbChlLHQpJiZHYShyLG4pJiYobiE9PWl8fHQgaW4gZSl8fGFyKGUsdCxuKX1mdW5jdGlvbiBycihlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aDtuLS07KWlmKEdhKGVbbl1bMF0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gaXIoZSx0LG4scil7cmV0dXJuIGZyKGUsKGZ1bmN0aW9uKGUsaSxvKXt0KHIsZSxuKGUpLG8pfSkpLHJ9ZnVuY3Rpb24gb3IoZSx0KXtyZXR1cm4gZSYmUmkodCxMcyh0KSxlKX1mdW5jdGlvbiBhcihlLHQsbil7XCJfX3Byb3RvX19cIj09dCYmbnQ/bnQoZSx0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpuLHdyaXRhYmxlOiEwfSk6ZVt0XT1ufWZ1bmN0aW9uIHNyKGUsdCl7Zm9yKHZhciByPS0xLG89dC5sZW5ndGgsYT1uKG8pLHM9bnVsbD09ZTsrK3I8bzspYVtyXT1zP2k6TnMoZSx0W3JdKTtyZXR1cm4gYX1mdW5jdGlvbiBjcihlLHQsbil7cmV0dXJuIGU9PT1lJiYobiE9PWkmJihlPWU8PW4/ZTpuKSx0IT09aSYmKGU9ZT49dD9lOnQpKSxlfWZ1bmN0aW9uIHVyKGUsdCxuLHIsbyxhKXt2YXIgcyxjPTEmdCx1PTImdCxsPTQmdDtpZihuJiYocz1vP24oZSxyLG8sYSk6bihlKSkscyE9PWkpcmV0dXJuIHM7aWYoIW5zKGUpKXJldHVybiBlO3ZhciBkPUthKGUpO2lmKGQpe2lmKHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGgsbj1uZXcgZS5jb25zdHJ1Y3Rvcih0KTt0JiZcInN0cmluZ1wiPT10eXBlb2YgZVswXSYmTWUuY2FsbChlLFwiaW5kZXhcIikmJihuLmluZGV4PWUuaW5kZXgsbi5pbnB1dD1lLmlucHV0KTtyZXR1cm4gbn0oZSksIWMpcmV0dXJuIFBpKGUscyl9ZWxzZXt2YXIgcD1tbyhlKSxmPXA9PVR8fHA9PUk7aWYoSmEoZSkpcmV0dXJuIElpKGUsYyk7aWYocD09Q3x8cD09X3x8ZiYmIW8pe2lmKHM9dXx8Zj97fTpfbyhlKSwhYylyZXR1cm4gdT9mdW5jdGlvbihlLHQpe3JldHVybiBSaShlLGdvKGUpLHQpfShlLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJlJpKHQsQnModCksZSl9KHMsZSkpOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIFJpKGUsaG8oZSksdCl9KGUsb3IocyxlKSl9ZWxzZXtpZighc3RbcF0pcmV0dXJuIG8/ZTp7fTtzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmNvbnN0cnVjdG9yO3N3aXRjaCh0KXtjYXNlIEI6cmV0dXJuIE9pKGUpO2Nhc2UgYjpjYXNlIFM6cmV0dXJuIG5ldyByKCtlKTtjYXNlIE06cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49dD9PaShlLmJ1ZmZlcik6ZS5idWZmZXI7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKG4sZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9KGUsbik7Y2FzZSBEOmNhc2UgajpjYXNlIHg6Y2FzZSBVOmNhc2UgRjpjYXNlIEg6Y2FzZSBHOmNhc2UgVzpjYXNlIFY6cmV0dXJuIEFpKGUsbik7Y2FzZSBPOnJldHVybiBuZXcgcjtjYXNlIEE6Y2FzZSBSOnJldHVybiBuZXcgcihlKTtjYXNlIGs6cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBlLmNvbnN0cnVjdG9yKGUuc291cmNlLGdlLmV4ZWMoZSkpO3JldHVybiB0Lmxhc3RJbmRleD1lLmxhc3RJbmRleCx0fShlKTtjYXNlIFA6cmV0dXJuIG5ldyByO2Nhc2UgdzpyZXR1cm4gaT1lLFVuP0FlKFVuLmNhbGwoaSkpOnt9fXZhciBpfShlLHAsYyl9fWF8fChhPW5ldyBKbik7dmFyIGg9YS5nZXQoZSk7aWYoaClyZXR1cm4gaDthLnNldChlLHMpLGNzKGUpP2UuZm9yRWFjaCgoZnVuY3Rpb24ocil7cy5hZGQodXIocix0LG4scixlLGEpKX0pKTppcyhlKSYmZS5mb3JFYWNoKChmdW5jdGlvbihyLGkpe3Muc2V0KGksdXIocix0LG4saSxlLGEpKX0pKTt2YXIgZz1kP2k6KGw/dT9vbzppbzp1P0JzOkxzKShlKTtyZXR1cm4gQ3QoZ3x8ZSwoZnVuY3Rpb24ocixpKXtnJiYocj1lW2k9cl0pLG5yKHMsaSx1cihyLHQsbixpLGUsYSkpfSkpLHN9ZnVuY3Rpb24gbHIoZSx0LG4pe3ZhciByPW4ubGVuZ3RoO2lmKG51bGw9PWUpcmV0dXJuIXI7Zm9yKGU9QWUoZSk7ci0tOyl7dmFyIG89bltyXSxhPXRbb10scz1lW29dO2lmKHM9PT1pJiYhKG8gaW4gZSl8fCFhKHMpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGRyKGUsdCxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IG5ldyBrZShvKTtyZXR1cm4gTG8oKGZ1bmN0aW9uKCl7ZS5hcHBseShpLG4pfSksdCl9ZnVuY3Rpb24gcHIoZSx0LG4scil7dmFyIGk9LTEsbz1SdCxhPSEwLHM9ZS5sZW5ndGgsYz1bXSx1PXQubGVuZ3RoO2lmKCFzKXJldHVybiBjO24mJih0PUx0KHQsWHQobikpKSxyPyhvPXd0LGE9ITEpOnQubGVuZ3RoPj0yMDAmJihvPSR0LGE9ITEsdD1uZXcgWm4odCkpO2U6Zm9yKDsrK2k8czspe3ZhciBsPWVbaV0sZD1udWxsPT1uP2w6bihsKTtpZihsPXJ8fDAhPT1sP2w6MCxhJiZkPT09ZCl7Zm9yKHZhciBwPXU7cC0tOylpZih0W3BdPT09ZCljb250aW51ZSBlO2MucHVzaChsKX1lbHNlIG8odCxkLHIpfHxjLnB1c2gobCl9cmV0dXJuIGN9SG4udGVtcGxhdGVTZXR0aW5ncz17ZXNjYXBlOlEsZXZhbHVhdGU6JCxpbnRlcnBvbGF0ZTplZSx2YXJpYWJsZTpcIlwiLGltcG9ydHM6e186SG59fSxIbi5wcm90b3R5cGU9V24ucHJvdG90eXBlLEhuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1IbixWbi5wcm90b3R5cGU9R24oV24ucHJvdG90eXBlKSxWbi5wcm90b3R5cGUuY29uc3RydWN0b3I9Vm4sem4ucHJvdG90eXBlPUduKFduLnByb3RvdHlwZSksem4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPXpuLEtuLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189UG4/UG4obnVsbCk6e30sdGhpcy5zaXplPTB9LEtuLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5oYXMoZSkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW2VdO3JldHVybiB0aGlzLnNpemUtPXQ/MTowLHR9LEtuLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztpZihQbil7dmFyIG49dFtlXTtyZXR1cm4gbj09PWE/aTpufXJldHVybiBNZS5jYWxsKHQsZSk/dFtlXTppfSxLbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX19kYXRhX187cmV0dXJuIFBuP3RbZV0hPT1pOk1lLmNhbGwodCxlKX0sS24ucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXMoZSk/MDoxLG5bZV09UG4mJnQ9PT1pP2E6dCx0aGlzfSxZbi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxZbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX19kYXRhX18sbj1ycih0LGUpO3JldHVybiEobjwwKSYmKG49PXQubGVuZ3RoLTE/dC5wb3AoKTpaZS5jYWxsKHQsbiwxKSwtLXRoaXMuc2l6ZSwhMCl9LFluLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXyxuPXJyKHQsZSk7cmV0dXJuIG48MD9pOnRbbl1bMV19LFluLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHJyKHRoaXMuX19kYXRhX18sZSk+LTF9LFluLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9fZGF0YV9fLHI9cnIobixlKTtyZXR1cm4gcjwwPygrK3RoaXMuc2l6ZSxuLnB1c2goW2UsdF0pKTpuW3JdWzFdPXQsdGhpc30scW4ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgS24sbWFwOm5ldyhBbnx8WW4pLHN0cmluZzpuZXcgS259fSxxbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe3ZhciB0PWxvKHRoaXMsZSkuZGVsZXRlKGUpO3JldHVybiB0aGlzLnNpemUtPXQ/MTowLHR9LHFuLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGxvKHRoaXMsZSkuZ2V0KGUpfSxxbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiBsbyh0aGlzLGUpLmhhcyhlKX0scW4ucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe3ZhciBuPWxvKHRoaXMsZSkscj1uLnNpemU7cmV0dXJuIG4uc2V0KGUsdCksdGhpcy5zaXplKz1uLnNpemU9PXI/MDoxLHRoaXN9LFpuLnByb3RvdHlwZS5hZGQ9Wm4ucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KGUsYSksdGhpc30sWm4ucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSl9LEpuLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189bmV3IFluLHRoaXMuc2l6ZT0wfSxKbi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX19kYXRhX18sbj10LmRlbGV0ZShlKTtyZXR1cm4gdGhpcy5zaXplPXQuc2l6ZSxufSxKbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldChlKX0sSm4ucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSl9LEpuLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9fZGF0YV9fO2lmKG4gaW5zdGFuY2VvZiBZbil7dmFyIHI9bi5fX2RhdGFfXztpZighQW58fHIubGVuZ3RoPDE5OSlyZXR1cm4gci5wdXNoKFtlLHRdKSx0aGlzLnNpemU9KytuLnNpemUsdGhpcztuPXRoaXMuX19kYXRhX189bmV3IHFuKHIpfXJldHVybiBuLnNldChlLHQpLHRoaXMuc2l6ZT1uLnNpemUsdGhpc307dmFyIGZyPUJpKFNyKSxocj1CaSh5ciwhMCk7ZnVuY3Rpb24gZ3IoZSx0KXt2YXIgbj0hMDtyZXR1cm4gZnIoZSwoZnVuY3Rpb24oZSxyLGkpe3JldHVybiBuPSEhdChlLHIsaSl9KSksbn1mdW5jdGlvbiBtcihlLHQsbil7Zm9yKHZhciByPS0xLG89ZS5sZW5ndGg7KytyPG87KXt2YXIgYT1lW3JdLHM9dChhKTtpZihudWxsIT1zJiYoYz09PWk/cz09PXMmJiFscyhzKTpuKHMsYykpKXZhciBjPXMsdT1hfXJldHVybiB1fWZ1bmN0aW9uIHZyKGUsdCl7dmFyIG49W107cmV0dXJuIGZyKGUsKGZ1bmN0aW9uKGUscixpKXt0KGUscixpKSYmbi5wdXNoKGUpfSkpLG59ZnVuY3Rpb24gX3IoZSx0LG4scixpKXt2YXIgbz0tMSxhPWUubGVuZ3RoO2ZvcihufHwobj1FbyksaXx8KGk9W10pOysrbzxhOyl7dmFyIHM9ZVtvXTt0PjAmJm4ocyk/dD4xP19yKHMsdC0xLG4scixpKTpCdChpLHMpOnJ8fChpW2kubGVuZ3RoXT1zKX1yZXR1cm4gaX12YXIgRXI9TWkoKSxicj1NaSghMCk7ZnVuY3Rpb24gU3IoZSx0KXtyZXR1cm4gZSYmRXIoZSx0LExzKX1mdW5jdGlvbiB5cihlLHQpe3JldHVybiBlJiZicihlLHQsTHMpfWZ1bmN0aW9uIFRyKGUsdCl7cmV0dXJuIFB0KHQsKGZ1bmN0aW9uKHQpe3JldHVybiAkYShlW3RdKX0pKX1mdW5jdGlvbiBJcihlLHQpe2Zvcih2YXIgbj0wLHI9KHQ9YmkodCxlKSkubGVuZ3RoO251bGwhPWUmJm48cjspZT1lW1VvKHRbbisrXSldO3JldHVybiBuJiZuPT1yP2U6aX1mdW5jdGlvbiBPcihlLHQsbil7dmFyIHI9dChlKTtyZXR1cm4gS2EoZSk/cjpCdChyLG4oZSkpfWZ1bmN0aW9uIEFyKGUpe3JldHVybiBudWxsPT1lP2U9PT1pP1wiW29iamVjdCBVbmRlZmluZWRdXCI6XCJbb2JqZWN0IE51bGxdXCI6ZXQmJmV0IGluIEFlKGUpP2Z1bmN0aW9uKGUpe3ZhciB0PU1lLmNhbGwoZSxldCksbj1lW2V0XTt0cnl7ZVtldF09aTt2YXIgcj0hMH1jYXRjaChhKXt9dmFyIG89eGUuY2FsbChlKTtyJiYodD9lW2V0XT1uOmRlbGV0ZSBlW2V0XSk7cmV0dXJuIG99KGUpOmZ1bmN0aW9uKGUpe3JldHVybiB4ZS5jYWxsKGUpfShlKX1mdW5jdGlvbiBDcihlLHQpe3JldHVybiBlPnR9ZnVuY3Rpb24gTnIoZSx0KXtyZXR1cm4gbnVsbCE9ZSYmTWUuY2FsbChlLHQpfWZ1bmN0aW9uIGtyKGUsdCl7cmV0dXJuIG51bGwhPWUmJnQgaW4gQWUoZSl9ZnVuY3Rpb24gUHIoZSx0LHIpe2Zvcih2YXIgbz1yP3d0OlJ0LGE9ZVswXS5sZW5ndGgscz1lLmxlbmd0aCxjPXMsdT1uKHMpLGw9MS8wLGQ9W107Yy0tOyl7dmFyIHA9ZVtjXTtjJiZ0JiYocD1MdChwLFh0KHQpKSksbD1ibihwLmxlbmd0aCxsKSx1W2NdPSFyJiYodHx8YT49MTIwJiZwLmxlbmd0aD49MTIwKT9uZXcgWm4oYyYmcCk6aX1wPWVbMF07dmFyIGY9LTEsaD11WzBdO2U6Zm9yKDsrK2Y8YSYmZC5sZW5ndGg8bDspe3ZhciBnPXBbZl0sbT10P3QoZyk6ZztpZihnPXJ8fDAhPT1nP2c6MCwhKGg/JHQoaCxtKTpvKGQsbSxyKSkpe2ZvcihjPXM7LS1jOyl7dmFyIHY9dVtjXTtpZighKHY/JHQodixtKTpvKGVbY10sbSxyKSkpY29udGludWUgZX1oJiZoLnB1c2gobSksZC5wdXNoKGcpfX1yZXR1cm4gZH1mdW5jdGlvbiBScihlLHQsbil7dmFyIHI9bnVsbD09KGU9a28oZSx0PWJpKHQsZSkpKT9lOmVbVW8oUW8odCkpXTtyZXR1cm4gbnVsbD09cj9pOk90KHIsZSxuKX1mdW5jdGlvbiB3cihlKXtyZXR1cm4gcnMoZSkmJkFyKGUpPT1ffWZ1bmN0aW9uIExyKGUsdCxuLHIsbyl7cmV0dXJuIGU9PT10fHwobnVsbD09ZXx8bnVsbD09dHx8IXJzKGUpJiYhcnModCk/ZSE9PWUmJnQhPT10OmZ1bmN0aW9uKGUsdCxuLHIsbyxhKXt2YXIgcz1LYShlKSxjPUthKHQpLHU9cz9FOm1vKGUpLGw9Yz9FOm1vKHQpLGQ9KHU9dT09Xz9DOnUpPT1DLHA9KGw9bD09Xz9DOmwpPT1DLGY9dT09bDtpZihmJiZKYShlKSl7aWYoIUphKHQpKXJldHVybiExO3M9ITAsZD0hMX1pZihmJiYhZClyZXR1cm4gYXx8KGE9bmV3IEpuKSxzfHxkcyhlKT9ubyhlLHQsbixyLG8sYSk6ZnVuY3Rpb24oZSx0LG4scixpLG8sYSl7c3dpdGNoKG4pe2Nhc2UgTTppZihlLmJ5dGVMZW5ndGghPXQuYnl0ZUxlbmd0aHx8ZS5ieXRlT2Zmc2V0IT10LmJ5dGVPZmZzZXQpcmV0dXJuITE7ZT1lLmJ1ZmZlcix0PXQuYnVmZmVyO2Nhc2UgQjpyZXR1cm4hKGUuYnl0ZUxlbmd0aCE9dC5ieXRlTGVuZ3RofHwhbyhuZXcgVmUoZSksbmV3IFZlKHQpKSk7Y2FzZSBiOmNhc2UgUzpjYXNlIEE6cmV0dXJuIEdhKCtlLCt0KTtjYXNlIHk6cmV0dXJuIGUubmFtZT09dC5uYW1lJiZlLm1lc3NhZ2U9PXQubWVzc2FnZTtjYXNlIGs6Y2FzZSBSOnJldHVybiBlPT10K1wiXCI7Y2FzZSBPOnZhciBzPWNuO2Nhc2UgUDp2YXIgYz0xJnI7aWYoc3x8KHM9ZG4pLGUuc2l6ZSE9dC5zaXplJiYhYylyZXR1cm4hMTt2YXIgdT1hLmdldChlKTtpZih1KXJldHVybiB1PT10O3J8PTIsYS5zZXQoZSx0KTt2YXIgbD1ubyhzKGUpLHModCkscixpLG8sYSk7cmV0dXJuIGEuZGVsZXRlKGUpLGw7Y2FzZSB3OmlmKFVuKXJldHVybiBVbi5jYWxsKGUpPT1Vbi5jYWxsKHQpfXJldHVybiExfShlLHQsdSxuLHIsbyxhKTtpZighKDEmbikpe3ZhciBoPWQmJk1lLmNhbGwoZSxcIl9fd3JhcHBlZF9fXCIpLGc9cCYmTWUuY2FsbCh0LFwiX193cmFwcGVkX19cIik7aWYoaHx8Zyl7dmFyIG09aD9lLnZhbHVlKCk6ZSx2PWc/dC52YWx1ZSgpOnQ7cmV0dXJuIGF8fChhPW5ldyBKbiksbyhtLHYsbixyLGEpfX1pZighZilyZXR1cm4hMTtyZXR1cm4gYXx8KGE9bmV3IEpuKSxmdW5jdGlvbihlLHQsbixyLG8sYSl7dmFyIHM9MSZuLGM9aW8oZSksdT1jLmxlbmd0aCxsPWlvKHQpLmxlbmd0aDtpZih1IT1sJiYhcylyZXR1cm4hMTt2YXIgZD11O2Zvcig7ZC0tOyl7dmFyIHA9Y1tkXTtpZighKHM/cCBpbiB0Ok1lLmNhbGwodCxwKSkpcmV0dXJuITF9dmFyIGY9YS5nZXQoZSksaD1hLmdldCh0KTtpZihmJiZoKXJldHVybiBmPT10JiZoPT1lO3ZhciBnPSEwO2Euc2V0KGUsdCksYS5zZXQodCxlKTt2YXIgbT1zO2Zvcig7KytkPHU7KXt2YXIgdj1lW3A9Y1tkXV0sXz10W3BdO2lmKHIpdmFyIEU9cz9yKF8sdixwLHQsZSxhKTpyKHYsXyxwLGUsdCxhKTtpZighKEU9PT1pP3Y9PT1ffHxvKHYsXyxuLHIsYSk6RSkpe2c9ITE7YnJlYWt9bXx8KG09XCJjb25zdHJ1Y3RvclwiPT1wKX1pZihnJiYhbSl7dmFyIGI9ZS5jb25zdHJ1Y3RvcixTPXQuY29uc3RydWN0b3I7Yj09U3x8IShcImNvbnN0cnVjdG9yXCJpbiBlKXx8IShcImNvbnN0cnVjdG9yXCJpbiB0KXx8XCJmdW5jdGlvblwiPT10eXBlb2YgYiYmYiBpbnN0YW5jZW9mIGImJlwiZnVuY3Rpb25cIj09dHlwZW9mIFMmJlMgaW5zdGFuY2VvZiBTfHwoZz0hMSl9cmV0dXJuIGEuZGVsZXRlKGUpLGEuZGVsZXRlKHQpLGd9KGUsdCxuLHIsbyxhKX0oZSx0LG4scixMcixvKSl9ZnVuY3Rpb24gQnIoZSx0LG4scil7dmFyIG89bi5sZW5ndGgsYT1vLHM9IXI7aWYobnVsbD09ZSlyZXR1cm4hYTtmb3IoZT1BZShlKTtvLS07KXt2YXIgYz1uW29dO2lmKHMmJmNbMl0/Y1sxXSE9PWVbY1swXV06IShjWzBdaW4gZSkpcmV0dXJuITF9Zm9yKDsrK288YTspe3ZhciB1PShjPW5bb10pWzBdLGw9ZVt1XSxkPWNbMV07aWYocyYmY1syXSl7aWYobD09PWkmJiEodSBpbiBlKSlyZXR1cm4hMX1lbHNle3ZhciBwPW5ldyBKbjtpZihyKXZhciBmPXIobCxkLHUsZSx0LHApO2lmKCEoZj09PWk/THIoZCxsLDMscixwKTpmKSlyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gTXIoZSl7cmV0dXJuISghbnMoZSl8fCh0PWUsamUmJmplIGluIHQpKSYmKCRhKGUpP0hlOl9lKS50ZXN0KEZvKGUpKTt2YXIgdH1mdW5jdGlvbiBEcihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bnVsbD09ZT9vYzpcIm9iamVjdFwiPT10eXBlb2YgZT9LYShlKT9HcihlWzBdLGVbMV0pOkhyKGUpOmhjKGUpfWZ1bmN0aW9uIGpyKGUpe2lmKCFPbyhlKSlyZXR1cm4gX24oZSk7dmFyIHQ9W107Zm9yKHZhciBuIGluIEFlKGUpKU1lLmNhbGwoZSxuKSYmXCJjb25zdHJ1Y3RvclwiIT1uJiZ0LnB1c2gobik7cmV0dXJuIHR9ZnVuY3Rpb24geHIoZSl7aWYoIW5zKGUpKXJldHVybiBmdW5jdGlvbihlKXt2YXIgdD1bXTtpZihudWxsIT1lKWZvcih2YXIgbiBpbiBBZShlKSl0LnB1c2gobik7cmV0dXJuIHR9KGUpO3ZhciB0PU9vKGUpLG49W107Zm9yKHZhciByIGluIGUpKFwiY29uc3RydWN0b3JcIiE9cnx8IXQmJk1lLmNhbGwoZSxyKSkmJm4ucHVzaChyKTtyZXR1cm4gbn1mdW5jdGlvbiBVcihlLHQpe3JldHVybiBlPHR9ZnVuY3Rpb24gRnIoZSx0KXt2YXIgcj0tMSxpPXFhKGUpP24oZS5sZW5ndGgpOltdO3JldHVybiBmcihlLChmdW5jdGlvbihlLG4sbyl7aVsrK3JdPXQoZSxuLG8pfSkpLGl9ZnVuY3Rpb24gSHIoZSl7dmFyIHQ9cG8oZSk7cmV0dXJuIDE9PXQubGVuZ3RoJiZ0WzBdWzJdP0NvKHRbMF1bMF0sdFswXVsxXSk6ZnVuY3Rpb24obil7cmV0dXJuIG49PT1lfHxCcihuLGUsdCl9fWZ1bmN0aW9uIEdyKGUsdCl7cmV0dXJuIHlvKGUpJiZBbyh0KT9DbyhVbyhlKSx0KTpmdW5jdGlvbihuKXt2YXIgcj1OcyhuLGUpO3JldHVybiByPT09aSYmcj09PXQ/a3MobixlKTpMcih0LHIsMyl9fWZ1bmN0aW9uIFdyKGUsdCxuLHIsbyl7ZSE9PXQmJkVyKHQsKGZ1bmN0aW9uKGEscyl7aWYob3x8KG89bmV3IEpuKSxucyhhKSkhZnVuY3Rpb24oZSx0LG4scixvLGEscyl7dmFyIGM9Um8oZSxuKSx1PVJvKHQsbiksbD1zLmdldCh1KTtpZihsKXJldHVybiB2b2lkIHRyKGUsbixsKTt2YXIgZD1hP2EoYyx1LG4rXCJcIixlLHQscyk6aSxwPWQ9PT1pO2lmKHApe3ZhciBmPUthKHUpLGg9IWYmJkphKHUpLGc9IWYmJiFoJiZkcyh1KTtkPXUsZnx8aHx8Zz9LYShjKT9kPWM6WmEoYyk/ZD1QaShjKTpoPyhwPSExLGQ9SWkodSwhMCkpOmc/KHA9ITEsZD1BaSh1LCEwKSk6ZD1bXTphcyh1KXx8emEodSk/KGQ9Yyx6YShjKT9kPUVzKGMpOm5zKGMpJiYhJGEoYyl8fChkPV9vKHUpKSk6cD0hMX1wJiYocy5zZXQodSxkKSxvKGQsdSxyLGEscykscy5kZWxldGUodSkpO3RyKGUsbixkKX0oZSx0LHMsbixXcixyLG8pO2Vsc2V7dmFyIGM9cj9yKFJvKGUscyksYSxzK1wiXCIsZSx0LG8pOmk7Yz09PWkmJihjPWEpLHRyKGUscyxjKX19KSxCcyl9ZnVuY3Rpb24gVnIoZSx0KXt2YXIgbj1lLmxlbmd0aDtpZihuKXJldHVybiBibyh0Kz10PDA/bjowLG4pP2VbdF06aX1mdW5jdGlvbiB6cihlLHQsbil7dD10Lmxlbmd0aD9MdCh0LChmdW5jdGlvbihlKXtyZXR1cm4gS2EoZSk/ZnVuY3Rpb24odCl7cmV0dXJuIElyKHQsMT09PWUubGVuZ3RoP2VbMF06ZSl9OmV9KSk6W29jXTt2YXIgcj0tMTt0PUx0KHQsWHQodW8oKSkpO3ZhciBpPUZyKGUsKGZ1bmN0aW9uKGUsbixpKXt2YXIgbz1MdCh0LChmdW5jdGlvbih0KXtyZXR1cm4gdChlKX0pKTtyZXR1cm57Y3JpdGVyaWE6byxpbmRleDorK3IsdmFsdWU6ZX19KSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sZW5ndGg7Zm9yKGUuc29ydCh0KTtuLS07KWVbbl09ZVtuXS52YWx1ZTtyZXR1cm4gZX0oaSwoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByPS0xLGk9ZS5jcml0ZXJpYSxvPXQuY3JpdGVyaWEsYT1pLmxlbmd0aCxzPW4ubGVuZ3RoO2Zvcig7KytyPGE7KXt2YXIgYz1DaShpW3JdLG9bcl0pO2lmKGMpcmV0dXJuIHI+PXM/YzpjKihcImRlc2NcIj09bltyXT8tMToxKX1yZXR1cm4gZS5pbmRleC10LmluZGV4fShlLHQsbil9KSl9ZnVuY3Rpb24gS3IoZSx0LG4pe2Zvcih2YXIgcj0tMSxpPXQubGVuZ3RoLG89e307KytyPGk7KXt2YXIgYT10W3JdLHM9SXIoZSxhKTtuKHMsYSkmJmVpKG8sYmkoYSxlKSxzKX1yZXR1cm4gb31mdW5jdGlvbiBZcihlLHQsbixyKXt2YXIgaT1yP0d0Okh0LG89LTEsYT10Lmxlbmd0aCxzPWU7Zm9yKGU9PT10JiYodD1QaSh0KSksbiYmKHM9THQoZSxYdChuKSkpOysrbzxhOylmb3IodmFyIGM9MCx1PXRbb10sbD1uP24odSk6dTsoYz1pKHMsbCxjLHIpKT4tMTspcyE9PWUmJlplLmNhbGwocyxjLDEpLFplLmNhbGwoZSxjLDEpO3JldHVybiBlfWZ1bmN0aW9uIHFyKGUsdCl7Zm9yKHZhciBuPWU/dC5sZW5ndGg6MCxyPW4tMTtuLS07KXt2YXIgaT10W25dO2lmKG49PXJ8fGkhPT1vKXt2YXIgbz1pO2JvKGkpP1plLmNhbGwoZSxpLDEpOnBpKGUsaSl9fXJldHVybiBlfWZ1bmN0aW9uIFpyKGUsdCl7cmV0dXJuIGUrZ3QoVG4oKSoodC1lKzEpKX1mdW5jdGlvbiBKcihlLHQpe3ZhciBuPVwiXCI7aWYoIWV8fHQ8MXx8dD5oKXJldHVybiBuO2Rve3QlMiYmKG4rPWUpLCh0PWd0KHQvMikpJiYoZSs9ZSl9d2hpbGUodCk7cmV0dXJuIG59ZnVuY3Rpb24gWHIoZSx0KXtyZXR1cm4gQm8oTm8oZSx0LG9jKSxlK1wiXCIpfWZ1bmN0aW9uIFFyKGUpe3JldHVybiBRbihHcyhlKSl9ZnVuY3Rpb24gJHIoZSx0KXt2YXIgbj1HcyhlKTtyZXR1cm4gam8obixjcih0LDAsbi5sZW5ndGgpKX1mdW5jdGlvbiBlaShlLHQsbixyKXtpZighbnMoZSkpcmV0dXJuIGU7Zm9yKHZhciBvPS0xLGE9KHQ9YmkodCxlKSkubGVuZ3RoLHM9YS0xLGM9ZTtudWxsIT1jJiYrK288YTspe3ZhciB1PVVvKHRbb10pLGw9bjtpZihcIl9fcHJvdG9fX1wiPT09dXx8XCJjb25zdHJ1Y3RvclwiPT09dXx8XCJwcm90b3R5cGVcIj09PXUpcmV0dXJuIGU7aWYobyE9cyl7dmFyIGQ9Y1t1XTsobD1yP3IoZCx1LGMpOmkpPT09aSYmKGw9bnMoZCk/ZDpibyh0W28rMV0pP1tdOnt9KX1ucihjLHUsbCksYz1jW3VdfXJldHVybiBlfXZhciB0aT1Sbj9mdW5jdGlvbihlLHQpe3JldHVybiBSbi5zZXQoZSx0KSxlfTpvYyxuaT1udD9mdW5jdGlvbihlLHQpe3JldHVybiBudChlLFwidG9TdHJpbmdcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6bmModCksd3JpdGFibGU6ITB9KX06b2M7ZnVuY3Rpb24gcmkoZSl7cmV0dXJuIGpvKEdzKGUpKX1mdW5jdGlvbiBpaShlLHQscil7dmFyIGk9LTEsbz1lLmxlbmd0aDt0PDAmJih0PS10Pm8/MDpvK3QpLChyPXI+bz9vOnIpPDAmJihyKz1vKSxvPXQ+cj8wOnItdD4+PjAsdD4+Pj0wO2Zvcih2YXIgYT1uKG8pOysraTxvOylhW2ldPWVbaSt0XTtyZXR1cm4gYX1mdW5jdGlvbiBvaShlLHQpe3ZhciBuO3JldHVybiBmcihlLChmdW5jdGlvbihlLHIsaSl7cmV0dXJuIShuPXQoZSxyLGkpKX0pKSwhIW59ZnVuY3Rpb24gYWkoZSx0LG4pe3ZhciByPTAsaT1udWxsPT1lP3I6ZS5sZW5ndGg7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQmJnQ9PT10JiZpPD0yMTQ3NDgzNjQ3KXtmb3IoO3I8aTspe3ZhciBvPXIraT4+PjEsYT1lW29dO251bGwhPT1hJiYhbHMoYSkmJihuP2E8PXQ6YTx0KT9yPW8rMTppPW99cmV0dXJuIGl9cmV0dXJuIHNpKGUsdCxvYyxuKX1mdW5jdGlvbiBzaShlLHQsbixyKXt2YXIgbz0wLGE9bnVsbD09ZT8wOmUubGVuZ3RoO2lmKDA9PT1hKXJldHVybiAwO2Zvcih2YXIgcz0odD1uKHQpKSE9PXQsYz1udWxsPT09dCx1PWxzKHQpLGw9dD09PWk7bzxhOyl7dmFyIGQ9Z3QoKG8rYSkvMikscD1uKGVbZF0pLGY9cCE9PWksaD1udWxsPT09cCxnPXA9PT1wLG09bHMocCk7aWYocyl2YXIgdj1yfHxnO2Vsc2Ugdj1sP2cmJihyfHxmKTpjP2cmJmYmJihyfHwhaCk6dT9nJiZmJiYhaCYmKHJ8fCFtKTohaCYmIW0mJihyP3A8PXQ6cDx0KTt2P289ZCsxOmE9ZH1yZXR1cm4gYm4oYSw0Mjk0OTY3Mjk0KX1mdW5jdGlvbiBjaShlLHQpe2Zvcih2YXIgbj0tMSxyPWUubGVuZ3RoLGk9MCxvPVtdOysrbjxyOyl7dmFyIGE9ZVtuXSxzPXQ/dChhKTphO2lmKCFufHwhR2EocyxjKSl7dmFyIGM9cztvW2krK109MD09PWE/MDphfX1yZXR1cm4gb31mdW5jdGlvbiB1aShlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZT9lOmxzKGUpP2c6K2V9ZnVuY3Rpb24gbGkoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoS2EoZSkpcmV0dXJuIEx0KGUsbGkpK1wiXCI7aWYobHMoZSkpcmV0dXJuIEZuP0ZuLmNhbGwoZSk6XCJcIjt2YXIgdD1lK1wiXCI7cmV0dXJuXCIwXCI9PXQmJjEvZT09LTEvMD9cIi0wXCI6dH1mdW5jdGlvbiBkaShlLHQsbil7dmFyIHI9LTEsaT1SdCxvPWUubGVuZ3RoLGE9ITAscz1bXSxjPXM7aWYobilhPSExLGk9d3Q7ZWxzZSBpZihvPj0yMDApe3ZhciB1PXQ/bnVsbDpKaShlKTtpZih1KXJldHVybiBkbih1KTthPSExLGk9JHQsYz1uZXcgWm59ZWxzZSBjPXQ/W106cztlOmZvcig7KytyPG87KXt2YXIgbD1lW3JdLGQ9dD90KGwpOmw7aWYobD1ufHwwIT09bD9sOjAsYSYmZD09PWQpe2Zvcih2YXIgcD1jLmxlbmd0aDtwLS07KWlmKGNbcF09PT1kKWNvbnRpbnVlIGU7dCYmYy5wdXNoKGQpLHMucHVzaChsKX1lbHNlIGkoYyxkLG4pfHwoYyE9PXMmJmMucHVzaChkKSxzLnB1c2gobCkpfXJldHVybiBzfWZ1bmN0aW9uIHBpKGUsdCl7cmV0dXJuIG51bGw9PShlPWtvKGUsdD1iaSh0LGUpKSl8fGRlbGV0ZSBlW1VvKFFvKHQpKV19ZnVuY3Rpb24gZmkoZSx0LG4scil7cmV0dXJuIGVpKGUsdCxuKElyKGUsdCkpLHIpfWZ1bmN0aW9uIGhpKGUsdCxuLHIpe2Zvcih2YXIgaT1lLmxlbmd0aCxvPXI/aTotMTsocj9vLS06KytvPGkpJiZ0KGVbb10sbyxlKTspO3JldHVybiBuP2lpKGUscj8wOm8scj9vKzE6aSk6aWkoZSxyP28rMTowLHI/aTpvKX1mdW5jdGlvbiBnaShlLHQpe3ZhciBuPWU7cmV0dXJuIG4gaW5zdGFuY2VvZiB6biYmKG49bi52YWx1ZSgpKSxNdCh0LChmdW5jdGlvbihlLHQpe3JldHVybiB0LmZ1bmMuYXBwbHkodC50aGlzQXJnLEJ0KFtlXSx0LmFyZ3MpKX0pLG4pfWZ1bmN0aW9uIG1pKGUsdCxyKXt2YXIgaT1lLmxlbmd0aDtpZihpPDIpcmV0dXJuIGk/ZGkoZVswXSk6W107Zm9yKHZhciBvPS0xLGE9bihpKTsrK288aTspZm9yKHZhciBzPWVbb10sYz0tMTsrK2M8aTspYyE9byYmKGFbb109cHIoYVtvXXx8cyxlW2NdLHQscikpO3JldHVybiBkaShfcihhLDEpLHQscil9ZnVuY3Rpb24gdmkoZSx0LG4pe2Zvcih2YXIgcj0tMSxvPWUubGVuZ3RoLGE9dC5sZW5ndGgscz17fTsrK3I8bzspe3ZhciBjPXI8YT90W3JdOmk7bihzLGVbcl0sYyl9cmV0dXJuIHN9ZnVuY3Rpb24gX2koZSl7cmV0dXJuIFphKGUpP2U6W119ZnVuY3Rpb24gRWkoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOm9jfWZ1bmN0aW9uIGJpKGUsdCl7cmV0dXJuIEthKGUpP2U6eW8oZSx0KT9bZV06eG8oYnMoZSkpfXZhciBTaT1YcjtmdW5jdGlvbiB5aShlLHQsbil7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIG49bj09PWk/cjpuLCF0JiZuPj1yP2U6aWkoZSx0LG4pfXZhciBUaT1jdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGZ0LmNsZWFyVGltZW91dChlKX07ZnVuY3Rpb24gSWkoZSx0KXtpZih0KXJldHVybiBlLnNsaWNlKCk7dmFyIG49ZS5sZW5ndGgscj16ZT96ZShuKTpuZXcgZS5jb25zdHJ1Y3RvcihuKTtyZXR1cm4gZS5jb3B5KHIpLHJ9ZnVuY3Rpb24gT2koZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IFZlKHQpLnNldChuZXcgVmUoZSkpLHR9ZnVuY3Rpb24gQWkoZSx0KXt2YXIgbj10P09pKGUuYnVmZmVyKTplLmJ1ZmZlcjtyZXR1cm4gbmV3IGUuY29uc3RydWN0b3IobixlLmJ5dGVPZmZzZXQsZS5sZW5ndGgpfWZ1bmN0aW9uIENpKGUsdCl7aWYoZSE9PXQpe3ZhciBuPWUhPT1pLHI9bnVsbD09PWUsbz1lPT09ZSxhPWxzKGUpLHM9dCE9PWksYz1udWxsPT09dCx1PXQ9PT10LGw9bHModCk7aWYoIWMmJiFsJiYhYSYmZT50fHxhJiZzJiZ1JiYhYyYmIWx8fHImJnMmJnV8fCFuJiZ1fHwhbylyZXR1cm4gMTtpZighciYmIWEmJiFsJiZlPHR8fGwmJm4mJm8mJiFyJiYhYXx8YyYmbiYmb3x8IXMmJm98fCF1KXJldHVybi0xfXJldHVybiAwfWZ1bmN0aW9uIE5pKGUsdCxyLGkpe2Zvcih2YXIgbz0tMSxhPWUubGVuZ3RoLHM9ci5sZW5ndGgsYz0tMSx1PXQubGVuZ3RoLGw9RW4oYS1zLDApLGQ9bih1K2wpLHA9IWk7KytjPHU7KWRbY109dFtjXTtmb3IoOysrbzxzOykocHx8bzxhKSYmKGRbcltvXV09ZVtvXSk7Zm9yKDtsLS07KWRbYysrXT1lW28rK107cmV0dXJuIGR9ZnVuY3Rpb24ga2koZSx0LHIsaSl7Zm9yKHZhciBvPS0xLGE9ZS5sZW5ndGgscz0tMSxjPXIubGVuZ3RoLHU9LTEsbD10Lmxlbmd0aCxkPUVuKGEtYywwKSxwPW4oZCtsKSxmPSFpOysrbzxkOylwW29dPWVbb107Zm9yKHZhciBoPW87Kyt1PGw7KXBbaCt1XT10W3VdO2Zvcig7KytzPGM7KShmfHxvPGEpJiYocFtoK3Jbc11dPWVbbysrXSk7cmV0dXJuIHB9ZnVuY3Rpb24gUGkoZSx0KXt2YXIgcj0tMSxpPWUubGVuZ3RoO2Zvcih0fHwodD1uKGkpKTsrK3I8aTspdFtyXT1lW3JdO3JldHVybiB0fWZ1bmN0aW9uIFJpKGUsdCxuLHIpe3ZhciBvPSFuO258fChuPXt9KTtmb3IodmFyIGE9LTEscz10Lmxlbmd0aDsrK2E8czspe3ZhciBjPXRbYV0sdT1yP3IobltjXSxlW2NdLGMsbixlKTppO3U9PT1pJiYodT1lW2NdKSxvP2FyKG4sYyx1KTpucihuLGMsdSl9cmV0dXJuIG59ZnVuY3Rpb24gd2koZSx0KXtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgaT1LYShuKT9BdDppcixvPXQ/dCgpOnt9O3JldHVybiBpKG4sZSx1byhyLDIpLG8pfX1mdW5jdGlvbiBMaShlKXtyZXR1cm4gWHIoKGZ1bmN0aW9uKHQsbil7dmFyIHI9LTEsbz1uLmxlbmd0aCxhPW8+MT9uW28tMV06aSxzPW8+Mj9uWzJdOmk7Zm9yKGE9ZS5sZW5ndGg+MyYmXCJmdW5jdGlvblwiPT10eXBlb2YgYT8oby0tLGEpOmkscyYmU28oblswXSxuWzFdLHMpJiYoYT1vPDM/aTphLG89MSksdD1BZSh0KTsrK3I8bzspe3ZhciBjPW5bcl07YyYmZSh0LGMscixhKX1yZXR1cm4gdH0pKX1mdW5jdGlvbiBCaShlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe2lmKG51bGw9PW4pcmV0dXJuIG47aWYoIXFhKG4pKXJldHVybiBlKG4scik7Zm9yKHZhciBpPW4ubGVuZ3RoLG89dD9pOi0xLGE9QWUobik7KHQ/by0tOisrbzxpKSYmITEhPT1yKGFbb10sbyxhKTspO3JldHVybiBufX1mdW5jdGlvbiBNaShlKXtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2Zvcih2YXIgaT0tMSxvPUFlKHQpLGE9cih0KSxzPWEubGVuZ3RoO3MtLTspe3ZhciBjPWFbZT9zOisraV07aWYoITE9PT1uKG9bY10sYyxvKSlicmVha31yZXR1cm4gdH19ZnVuY3Rpb24gRGkoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXNuKHQ9YnModCkpP2huKHQpOmkscj1uP25bMF06dC5jaGFyQXQoMCksbz1uP3lpKG4sMSkuam9pbihcIlwiKTp0LnNsaWNlKDEpO3JldHVybiByW2VdKCkrb319ZnVuY3Rpb24gamkoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBNdCgkcyh6cyh0KS5yZXBsYWNlKFFlLFwiXCIpKSxlLFwiXCIpfX1mdW5jdGlvbiB4aShlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHM7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBlO2Nhc2UgMTpyZXR1cm4gbmV3IGUodFswXSk7Y2FzZSAyOnJldHVybiBuZXcgZSh0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gbmV3IGUodFswXSx0WzFdLHRbMl0pO2Nhc2UgNDpyZXR1cm4gbmV3IGUodFswXSx0WzFdLHRbMl0sdFszXSk7Y2FzZSA1OnJldHVybiBuZXcgZSh0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0pO2Nhc2UgNjpyZXR1cm4gbmV3IGUodFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0pO2Nhc2UgNzpyZXR1cm4gbmV3IGUodFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sdFs2XSl9dmFyIG49R24oZS5wcm90b3R5cGUpLHI9ZS5hcHBseShuLHQpO3JldHVybiBucyhyKT9yOm59fWZ1bmN0aW9uIFVpKGUpe3JldHVybiBmdW5jdGlvbih0LG4scil7dmFyIG89QWUodCk7aWYoIXFhKHQpKXt2YXIgYT11byhuLDMpO3Q9THModCksbj1mdW5jdGlvbihlKXtyZXR1cm4gYShvW2VdLGUsbyl9fXZhciBzPWUodCxuLHIpO3JldHVybiBzPi0xP29bYT90W3NdOnNdOml9fWZ1bmN0aW9uIEZpKGUpe3JldHVybiBybygoZnVuY3Rpb24odCl7dmFyIG49dC5sZW5ndGgscj1uLGE9Vm4ucHJvdG90eXBlLnRocnU7Zm9yKGUmJnQucmV2ZXJzZSgpO3ItLTspe3ZhciBzPXRbcl07aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygcyl0aHJvdyBuZXcga2Uobyk7aWYoYSYmIWMmJlwid3JhcHBlclwiPT1zbyhzKSl2YXIgYz1uZXcgVm4oW10sITApfWZvcihyPWM/cjpuOysrcjxuOyl7dmFyIHU9c28ocz10W3JdKSxsPVwid3JhcHBlclwiPT11P2FvKHMpOmk7Yz1sJiZUbyhsWzBdKSYmNDI0PT1sWzFdJiYhbFs0XS5sZW5ndGgmJjE9PWxbOV0/Y1tzbyhsWzBdKV0uYXBwbHkoYyxsWzNdKToxPT1zLmxlbmd0aCYmVG8ocyk/Y1t1XSgpOmMudGhydShzKX1yZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMscj1lWzBdO2lmKGMmJjE9PWUubGVuZ3RoJiZLYShyKSlyZXR1cm4gYy5wbGFudChyKS52YWx1ZSgpO2Zvcih2YXIgaT0wLG89bj90W2ldLmFwcGx5KHRoaXMsZSk6cjsrK2k8bjspbz10W2ldLmNhbGwodGhpcyxvKTtyZXR1cm4gb319KSl9ZnVuY3Rpb24gSGkoZSx0LHIsbyxhLHMsYyx1LGwscCl7dmFyIGY9dCZkLGg9MSZ0LGc9MiZ0LG09MjQmdCx2PTUxMiZ0LF89Zz9pOnhpKGUpO3JldHVybiBmdW5jdGlvbiBpKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsRT1uKGQpLGI9ZDtiLS07KUVbYl09YXJndW1lbnRzW2JdO2lmKG0pdmFyIFM9Y28oaSkseT1ubihFLFMpO2lmKG8mJihFPU5pKEUsbyxhLG0pKSxzJiYoRT1raShFLHMsYyxtKSksZC09eSxtJiZkPHApe3ZhciBUPWxuKEUsUyk7cmV0dXJuIHFpKGUsdCxIaSxpLnBsYWNlaG9sZGVyLHIsRSxULHUsbCxwLWQpfXZhciBJPWg/cjp0aGlzLE89Zz9JW2VdOmU7cmV0dXJuIGQ9RS5sZW5ndGgsdT9FPVBvKEUsdSk6diYmZD4xJiZFLnJldmVyc2UoKSxmJiZsPGQmJihFLmxlbmd0aD1sKSx0aGlzJiZ0aGlzIT09ZnQmJnRoaXMgaW5zdGFuY2VvZiBpJiYoTz1ffHx4aShPKSksTy5hcHBseShJLEUpfX1mdW5jdGlvbiBHaShlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gU3IoZSwoZnVuY3Rpb24oZSxpLG8pe3QocixuKGUpLGksbyl9KSkscn0obixlLHQocikse30pfX1mdW5jdGlvbiBXaShlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciBvO2lmKG49PT1pJiZyPT09aSlyZXR1cm4gdDtpZihuIT09aSYmKG89biksciE9PWkpe2lmKG89PT1pKXJldHVybiByO1wic3RyaW5nXCI9PXR5cGVvZiBufHxcInN0cmluZ1wiPT10eXBlb2Ygcj8obj1saShuKSxyPWxpKHIpKToobj11aShuKSxyPXVpKHIpKSxvPWUobixyKX1yZXR1cm4gb319ZnVuY3Rpb24gVmkoZSl7cmV0dXJuIHJvKChmdW5jdGlvbih0KXtyZXR1cm4gdD1MdCh0LFh0KHVvKCkpKSxYcigoZnVuY3Rpb24obil7dmFyIHI9dGhpcztyZXR1cm4gZSh0LChmdW5jdGlvbihlKXtyZXR1cm4gT3QoZSxyLG4pfSkpfSkpfSkpfWZ1bmN0aW9uIHppKGUsdCl7dmFyIG49KHQ9dD09PWk/XCIgXCI6bGkodCkpLmxlbmd0aDtpZihuPDIpcmV0dXJuIG4/SnIodCxlKTp0O3ZhciByPUpyKHQsaHQoZS9mbih0KSkpO3JldHVybiBzbih0KT95aShobihyKSwwLGUpLmpvaW4oXCJcIik6ci5zbGljZSgwLGUpfWZ1bmN0aW9uIEtpKGUpe3JldHVybiBmdW5jdGlvbih0LHIsbyl7cmV0dXJuIG8mJlwibnVtYmVyXCIhPXR5cGVvZiBvJiZTbyh0LHIsbykmJihyPW89aSksdD1ncyh0KSxyPT09aT8ocj10LHQ9MCk6cj1ncyhyKSxmdW5jdGlvbihlLHQscixpKXtmb3IodmFyIG89LTEsYT1FbihodCgodC1lKS8ocnx8MSkpLDApLHM9bihhKTthLS07KXNbaT9hOisrb109ZSxlKz1yO3JldHVybiBzfSh0LHIsbz1vPT09aT90PHI/MTotMTpncyhvKSxlKX19ZnVuY3Rpb24gWWkoZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQmJlwic3RyaW5nXCI9PXR5cGVvZiBufHwodD1fcyh0KSxuPV9zKG4pKSxlKHQsbil9fWZ1bmN0aW9uIHFpKGUsdCxuLHIsbyxhLHMsYyxkLHApe3ZhciBmPTgmdDt0fD1mP3U6bCw0Jih0Jj1+KGY/bDp1KSl8fCh0Jj0tNCk7dmFyIGg9W2UsdCxvLGY/YTppLGY/czppLGY/aTphLGY/aTpzLGMsZCxwXSxnPW4uYXBwbHkoaSxoKTtyZXR1cm4gVG8oZSkmJndvKGcsaCksZy5wbGFjZWhvbGRlcj1yLE1vKGcsZSx0KX1mdW5jdGlvbiBaaShlKXt2YXIgdD1PZVtlXTtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZihlPV9zKGUpLChuPW51bGw9PW4/MDpibihtcyhuKSwyOTIpKSYmeHQoZSkpe3ZhciByPShicyhlKStcImVcIikuc3BsaXQoXCJlXCIpO3JldHVybisoKHI9KGJzKHQoclswXStcImVcIisoK3JbMV0rbikpKStcImVcIikuc3BsaXQoXCJlXCIpKVswXStcImVcIisoK3JbMV0tbikpfXJldHVybiB0KGUpfX12YXIgSmk9Tm4mJjEvZG4obmV3IE5uKFssLTBdKSlbMV09PWY/ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBObihlKX06bGM7ZnVuY3Rpb24gWGkoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPW1vKHQpO3JldHVybiBuPT1PP2NuKHQpOm49PVA/cG4odCk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gTHQodCwoZnVuY3Rpb24odCl7cmV0dXJuW3QsZVt0XV19KSl9KHQsZSh0KSl9fWZ1bmN0aW9uIFFpKGUsdCxyLGEsZixoLGcsbSl7dmFyIHY9MiZ0O2lmKCF2JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IG5ldyBrZShvKTt2YXIgXz1hP2EubGVuZ3RoOjA7aWYoX3x8KHQmPS05NyxhPWY9aSksZz1nPT09aT9nOkVuKG1zKGcpLDApLG09bT09PWk/bTptcyhtKSxfLT1mP2YubGVuZ3RoOjAsdCZsKXt2YXIgRT1hLGI9ZjthPWY9aX12YXIgUz12P2k6YW8oZSkseT1bZSx0LHIsYSxmLEUsYixoLGcsbV07aWYoUyYmZnVuY3Rpb24oZSx0KXt2YXIgbj1lWzFdLHI9dFsxXSxpPW58cixvPWk8MTMxLGE9cj09ZCYmOD09bnx8cj09ZCYmbj09cCYmZVs3XS5sZW5ndGg8PXRbOF18fDM4ND09ciYmdFs3XS5sZW5ndGg8PXRbOF0mJjg9PW47aWYoIW8mJiFhKXJldHVybiBlOzEmciYmKGVbMl09dFsyXSxpfD0xJm4/MDo0KTt2YXIgYz10WzNdO2lmKGMpe3ZhciB1PWVbM107ZVszXT11P05pKHUsYyx0WzRdKTpjLGVbNF09dT9sbihlWzNdLHMpOnRbNF19KGM9dFs1XSkmJih1PWVbNV0sZVs1XT11P2tpKHUsYyx0WzZdKTpjLGVbNl09dT9sbihlWzVdLHMpOnRbNl0pOyhjPXRbN10pJiYoZVs3XT1jKTtyJmQmJihlWzhdPW51bGw9PWVbOF0/dFs4XTpibihlWzhdLHRbOF0pKTtudWxsPT1lWzldJiYoZVs5XT10WzldKTtlWzBdPXRbMF0sZVsxXT1pfSh5LFMpLGU9eVswXSx0PXlbMV0scj15WzJdLGE9eVszXSxmPXlbNF0sIShtPXlbOV09eVs5XT09PWk/dj8wOmUubGVuZ3RoOkVuKHlbOV0tXywwKSkmJjI0JnQmJih0Jj0tMjUpLHQmJjEhPXQpVD04PT10fHx0PT1jP2Z1bmN0aW9uKGUsdCxyKXt2YXIgbz14aShlKTtyZXR1cm4gZnVuY3Rpb24gYSgpe2Zvcih2YXIgcz1hcmd1bWVudHMubGVuZ3RoLGM9bihzKSx1PXMsbD1jbyhhKTt1LS07KWNbdV09YXJndW1lbnRzW3VdO3ZhciBkPXM8MyYmY1swXSE9PWwmJmNbcy0xXSE9PWw/W106bG4oYyxsKTtyZXR1cm4ocy09ZC5sZW5ndGgpPHI/cWkoZSx0LEhpLGEucGxhY2Vob2xkZXIsaSxjLGQsaSxpLHItcyk6T3QodGhpcyYmdGhpcyE9PWZ0JiZ0aGlzIGluc3RhbmNlb2YgYT9vOmUsdGhpcyxjKX19KGUsdCxtKTp0IT11JiYzMyE9dHx8Zi5sZW5ndGg/SGkuYXBwbHkoaSx5KTpmdW5jdGlvbihlLHQscixpKXt2YXIgbz0xJnQsYT14aShlKTtyZXR1cm4gZnVuY3Rpb24gdCgpe2Zvcih2YXIgcz0tMSxjPWFyZ3VtZW50cy5sZW5ndGgsdT0tMSxsPWkubGVuZ3RoLGQ9bihsK2MpLHA9dGhpcyYmdGhpcyE9PWZ0JiZ0aGlzIGluc3RhbmNlb2YgdD9hOmU7Kyt1PGw7KWRbdV09aVt1XTtmb3IoO2MtLTspZFt1KytdPWFyZ3VtZW50c1srK3NdO3JldHVybiBPdChwLG8/cjp0aGlzLGQpfX0oZSx0LHIsYSk7ZWxzZSB2YXIgVD1mdW5jdGlvbihlLHQsbil7dmFyIHI9MSZ0LGk9eGkoZSk7cmV0dXJuIGZ1bmN0aW9uIHQoKXtyZXR1cm4odGhpcyYmdGhpcyE9PWZ0JiZ0aGlzIGluc3RhbmNlb2YgdD9pOmUpLmFwcGx5KHI/bjp0aGlzLGFyZ3VtZW50cyl9fShlLHQscik7cmV0dXJuIE1vKChTP3RpOndvKShULHkpLGUsdCl9ZnVuY3Rpb24gJGkoZSx0LG4scil7cmV0dXJuIGU9PT1pfHxHYShlLHdlW25dKSYmIU1lLmNhbGwocixuKT90OmV9ZnVuY3Rpb24gZW8oZSx0LG4scixvLGEpe3JldHVybiBucyhlKSYmbnModCkmJihhLnNldCh0LGUpLFdyKGUsdCxpLGVvLGEpLGEuZGVsZXRlKHQpKSxlfWZ1bmN0aW9uIHRvKGUpe3JldHVybiBhcyhlKT9pOmV9ZnVuY3Rpb24gbm8oZSx0LG4scixvLGEpe3ZhciBzPTEmbixjPWUubGVuZ3RoLHU9dC5sZW5ndGg7aWYoYyE9dSYmIShzJiZ1PmMpKXJldHVybiExO3ZhciBsPWEuZ2V0KGUpLGQ9YS5nZXQodCk7aWYobCYmZClyZXR1cm4gbD09dCYmZD09ZTt2YXIgcD0tMSxmPSEwLGg9MiZuP25ldyBabjppO2ZvcihhLnNldChlLHQpLGEuc2V0KHQsZSk7KytwPGM7KXt2YXIgZz1lW3BdLG09dFtwXTtpZihyKXZhciB2PXM/cihtLGcscCx0LGUsYSk6cihnLG0scCxlLHQsYSk7aWYodiE9PWkpe2lmKHYpY29udGludWU7Zj0hMTticmVha31pZihoKXtpZighanQodCwoZnVuY3Rpb24oZSx0KXtpZighJHQoaCx0KSYmKGc9PT1lfHxvKGcsZSxuLHIsYSkpKXJldHVybiBoLnB1c2godCl9KSkpe2Y9ITE7YnJlYWt9fWVsc2UgaWYoZyE9PW0mJiFvKGcsbSxuLHIsYSkpe2Y9ITE7YnJlYWt9fXJldHVybiBhLmRlbGV0ZShlKSxhLmRlbGV0ZSh0KSxmfWZ1bmN0aW9uIHJvKGUpe3JldHVybiBCbyhObyhlLGksWW8pLGUrXCJcIil9ZnVuY3Rpb24gaW8oZSl7cmV0dXJuIE9yKGUsTHMsaG8pfWZ1bmN0aW9uIG9vKGUpe3JldHVybiBPcihlLEJzLGdvKX12YXIgYW89Um4/ZnVuY3Rpb24oZSl7cmV0dXJuIFJuLmdldChlKX06bGM7ZnVuY3Rpb24gc28oZSl7Zm9yKHZhciB0PWUubmFtZStcIlwiLG49d25bdF0scj1NZS5jYWxsKHduLHQpP24ubGVuZ3RoOjA7ci0tOyl7dmFyIGk9bltyXSxvPWkuZnVuYztpZihudWxsPT1vfHxvPT1lKXJldHVybiBpLm5hbWV9cmV0dXJuIHR9ZnVuY3Rpb24gY28oZSl7cmV0dXJuKE1lLmNhbGwoSG4sXCJwbGFjZWhvbGRlclwiKT9IbjplKS5wbGFjZWhvbGRlcn1mdW5jdGlvbiB1bygpe3ZhciBlPUhuLml0ZXJhdGVlfHxhYztyZXR1cm4gZT1lPT09YWM/RHI6ZSxhcmd1bWVudHMubGVuZ3RoP2UoYXJndW1lbnRzWzBdLGFyZ3VtZW50c1sxXSk6ZX1mdW5jdGlvbiBsbyhlLHQpe3ZhciBuPWUuX19kYXRhX187cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PXR5cGVvZiBlO3JldHVyblwic3RyaW5nXCI9PXR8fFwibnVtYmVyXCI9PXR8fFwic3ltYm9sXCI9PXR8fFwiYm9vbGVhblwiPT10P1wiX19wcm90b19fXCIhPT1lOm51bGw9PT1lfSh0KT9uW1wic3RyaW5nXCI9PXR5cGVvZiB0P1wic3RyaW5nXCI6XCJoYXNoXCJdOm4ubWFwfWZ1bmN0aW9uIHBvKGUpe2Zvcih2YXIgdD1McyhlKSxuPXQubGVuZ3RoO24tLTspe3ZhciByPXRbbl0saT1lW3JdO3Rbbl09W3IsaSxBbyhpKV19cmV0dXJuIHR9ZnVuY3Rpb24gZm8oZSx0KXt2YXIgbj1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lP2k6ZVt0XX0oZSx0KTtyZXR1cm4gTXIobik/bjppfXZhciBobz12dD9mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT9bXTooZT1BZShlKSxQdCh2dChlKSwoZnVuY3Rpb24odCl7cmV0dXJuIHFlLmNhbGwoZSx0KX0pKSl9OnZjLGdvPXZ0P2Z1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXTtlOylCdCh0LGhvKGUpKSxlPUtlKGUpO3JldHVybiB0fTp2Yyxtbz1BcjtmdW5jdGlvbiB2byhlLHQsbil7Zm9yKHZhciByPS0xLGk9KHQ9YmkodCxlKSkubGVuZ3RoLG89ITE7KytyPGk7KXt2YXIgYT1Vbyh0W3JdKTtpZighKG89bnVsbCE9ZSYmbihlLGEpKSlicmVhaztlPWVbYV19cmV0dXJuIG98fCsrciE9aT9vOiEhKGk9bnVsbD09ZT8wOmUubGVuZ3RoKSYmdHMoaSkmJmJvKGEsaSkmJihLYShlKXx8emEoZSkpfWZ1bmN0aW9uIF9vKGUpe3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIGUuY29uc3RydWN0b3J8fE9vKGUpP3t9OkduKEtlKGUpKX1mdW5jdGlvbiBFbyhlKXtyZXR1cm4gS2EoZSl8fHphKGUpfHwhIShKZSYmZSYmZVtKZV0pfWZ1bmN0aW9uIGJvKGUsdCl7dmFyIG49dHlwZW9mIGU7cmV0dXJuISEodD1udWxsPT10P2g6dCkmJihcIm51bWJlclwiPT1ufHxcInN5bWJvbFwiIT1uJiZiZS50ZXN0KGUpKSYmZT4tMSYmZSUxPT0wJiZlPHR9ZnVuY3Rpb24gU28oZSx0LG4pe2lmKCFucyhuKSlyZXR1cm4hMTt2YXIgcj10eXBlb2YgdDtyZXR1cm4hIShcIm51bWJlclwiPT1yP3FhKG4pJiZibyh0LG4ubGVuZ3RoKTpcInN0cmluZ1wiPT1yJiZ0IGluIG4pJiZHYShuW3RdLGUpfWZ1bmN0aW9uIHlvKGUsdCl7aWYoS2EoZSkpcmV0dXJuITE7dmFyIG49dHlwZW9mIGU7cmV0dXJuIShcIm51bWJlclwiIT1uJiZcInN5bWJvbFwiIT1uJiZcImJvb2xlYW5cIiE9biYmbnVsbCE9ZSYmIWxzKGUpKXx8KG5lLnRlc3QoZSl8fCF0ZS50ZXN0KGUpfHxudWxsIT10JiZlIGluIEFlKHQpKX1mdW5jdGlvbiBUbyhlKXt2YXIgdD1zbyhlKSxuPUhuW3RdO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG58fCEodCBpbiB6bi5wcm90b3R5cGUpKXJldHVybiExO2lmKGU9PT1uKXJldHVybiEwO3ZhciByPWFvKG4pO3JldHVybiEhciYmZT09PXJbMF19KE9uJiZtbyhuZXcgT24obmV3IEFycmF5QnVmZmVyKDEpKSkhPU18fEFuJiZtbyhuZXcgQW4pIT1PfHxDbiYmbW8oQ24ucmVzb2x2ZSgpKSE9Tnx8Tm4mJm1vKG5ldyBObikhPVB8fGtuJiZtbyhuZXcga24pIT1MKSYmKG1vPWZ1bmN0aW9uKGUpe3ZhciB0PUFyKGUpLG49dD09Qz9lLmNvbnN0cnVjdG9yOmkscj1uP0ZvKG4pOlwiXCI7aWYocilzd2l0Y2gocil7Y2FzZSBMbjpyZXR1cm4gTTtjYXNlIEJuOnJldHVybiBPO2Nhc2UgTW46cmV0dXJuIE47Y2FzZSBEbjpyZXR1cm4gUDtjYXNlIGpuOnJldHVybiBMfXJldHVybiB0fSk7dmFyIElvPUxlPyRhOl9jO2Z1bmN0aW9uIE9vKGUpe3ZhciB0PWUmJmUuY29uc3RydWN0b3I7cmV0dXJuIGU9PT0oXCJmdW5jdGlvblwiPT10eXBlb2YgdCYmdC5wcm90b3R5cGV8fHdlKX1mdW5jdGlvbiBBbyhlKXtyZXR1cm4gZT09PWUmJiFucyhlKX1mdW5jdGlvbiBDbyhlLHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbnVsbCE9biYmKG5bZV09PT10JiYodCE9PWl8fGUgaW4gQWUobikpKX19ZnVuY3Rpb24gTm8oZSx0LHIpe3JldHVybiB0PUVuKHQ9PT1pP2UubGVuZ3RoLTE6dCwwKSxmdW5jdGlvbigpe2Zvcih2YXIgaT1hcmd1bWVudHMsbz0tMSxhPUVuKGkubGVuZ3RoLXQsMCkscz1uKGEpOysrbzxhOylzW29dPWlbdCtvXTtvPS0xO2Zvcih2YXIgYz1uKHQrMSk7KytvPHQ7KWNbb109aVtvXTtyZXR1cm4gY1t0XT1yKHMpLE90KGUsdGhpcyxjKX19ZnVuY3Rpb24ga28oZSx0KXtyZXR1cm4gdC5sZW5ndGg8Mj9lOklyKGUsaWkodCwwLC0xKSl9ZnVuY3Rpb24gUG8oZSx0KXtmb3IodmFyIG49ZS5sZW5ndGgscj1ibih0Lmxlbmd0aCxuKSxvPVBpKGUpO3ItLTspe3ZhciBhPXRbcl07ZVtyXT1ibyhhLG4pP29bYV06aX1yZXR1cm4gZX1mdW5jdGlvbiBSbyhlLHQpe2lmKChcImNvbnN0cnVjdG9yXCIhPT10fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZVt0XSkmJlwiX19wcm90b19fXCIhPXQpcmV0dXJuIGVbdF19dmFyIHdvPURvKHRpKSxMbz1wdHx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnQuc2V0VGltZW91dChlLHQpfSxCbz1EbyhuaSk7ZnVuY3Rpb24gTW8oZSx0LG4pe3ZhciByPXQrXCJcIjtyZXR1cm4gQm8oZSxmdW5jdGlvbihlLHQpe3ZhciBuPXQubGVuZ3RoO2lmKCFuKXJldHVybiBlO3ZhciByPW4tMTtyZXR1cm4gdFtyXT0obj4xP1wiJiBcIjpcIlwiKSt0W3JdLHQ9dC5qb2luKG4+Mj9cIiwgXCI6XCIgXCIpLGUucmVwbGFjZShjZSxcIntcXG4vKiBbd3JhcHBlZCB3aXRoIFwiK3QrXCJdICovXFxuXCIpfShyLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIEN0KHYsKGZ1bmN0aW9uKG4pe3ZhciByPVwiXy5cIituWzBdO3QmblsxXSYmIVJ0KGUscikmJmUucHVzaChyKX0pKSxlLnNvcnQoKX0oZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaCh1ZSk7cmV0dXJuIHQ/dFsxXS5zcGxpdChsZSk6W119KHIpLG4pKSl9ZnVuY3Rpb24gRG8oZSl7dmFyIHQ9MCxuPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9U24oKSxvPTE2LShyLW4pO2lmKG49cixvPjApe2lmKCsrdD49ODAwKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSB0PTA7cmV0dXJuIGUuYXBwbHkoaSxhcmd1bWVudHMpfX1mdW5jdGlvbiBqbyhlLHQpe3ZhciBuPS0xLHI9ZS5sZW5ndGgsbz1yLTE7Zm9yKHQ9dD09PWk/cjp0Oysrbjx0Oyl7dmFyIGE9WnIobixvKSxzPWVbYV07ZVthXT1lW25dLGVbbl09c31yZXR1cm4gZS5sZW5ndGg9dCxlfXZhciB4bz1mdW5jdGlvbihlKXt2YXIgdD1EYShlLChmdW5jdGlvbihlKXtyZXR1cm4gNTAwPT09bi5zaXplJiZuLmNsZWFyKCksZX0pKSxuPXQuY2FjaGU7cmV0dXJuIHR9KChmdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gNDY9PT1lLmNoYXJDb2RlQXQoMCkmJnQucHVzaChcIlwiKSxlLnJlcGxhY2UocmUsKGZ1bmN0aW9uKGUsbixyLGkpe3QucHVzaChyP2kucmVwbGFjZShmZSxcIiQxXCIpOm58fGUpfSkpLHR9KSk7ZnVuY3Rpb24gVW8oZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGV8fGxzKGUpKXJldHVybiBlO3ZhciB0PWUrXCJcIjtyZXR1cm5cIjBcIj09dCYmMS9lPT0tMS8wP1wiLTBcIjp0fWZ1bmN0aW9uIEZvKGUpe2lmKG51bGwhPWUpe3RyeXtyZXR1cm4gQmUuY2FsbChlKX1jYXRjaCh0KXt9dHJ5e3JldHVybiBlK1wiXCJ9Y2F0Y2godCl7fX1yZXR1cm5cIlwifWZ1bmN0aW9uIEhvKGUpe2lmKGUgaW5zdGFuY2VvZiB6bilyZXR1cm4gZS5jbG9uZSgpO3ZhciB0PW5ldyBWbihlLl9fd3JhcHBlZF9fLGUuX19jaGFpbl9fKTtyZXR1cm4gdC5fX2FjdGlvbnNfXz1QaShlLl9fYWN0aW9uc19fKSx0Ll9faW5kZXhfXz1lLl9faW5kZXhfXyx0Ll9fdmFsdWVzX189ZS5fX3ZhbHVlc19fLHR9dmFyIEdvPVhyKChmdW5jdGlvbihlLHQpe3JldHVybiBaYShlKT9wcihlLF9yKHQsMSxaYSwhMCkpOltdfSkpLFdvPVhyKChmdW5jdGlvbihlLHQpe3ZhciBuPVFvKHQpO3JldHVybiBaYShuKSYmKG49aSksWmEoZSk/cHIoZSxfcih0LDEsWmEsITApLHVvKG4sMikpOltdfSkpLFZvPVhyKChmdW5jdGlvbihlLHQpe3ZhciBuPVFvKHQpO3JldHVybiBaYShuKSYmKG49aSksWmEoZSk/cHIoZSxfcih0LDEsWmEsITApLGksbik6W119KSk7ZnVuY3Rpb24gem8oZSx0LG4pe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgaT1udWxsPT1uPzA6bXMobik7cmV0dXJuIGk8MCYmKGk9RW4ocitpLDApKSxGdChlLHVvKHQsMyksaSl9ZnVuY3Rpb24gS28oZSx0LG4pe3ZhciByPW51bGw9PWU/MDplLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgbz1yLTE7cmV0dXJuIG4hPT1pJiYobz1tcyhuKSxvPW48MD9FbihyK28sMCk6Ym4obyxyLTEpKSxGdChlLHVvKHQsMyksbywhMCl9ZnVuY3Rpb24gWW8oZSl7cmV0dXJuKG51bGw9PWU/MDplLmxlbmd0aCk/X3IoZSwxKTpbXX1mdW5jdGlvbiBxbyhlKXtyZXR1cm4gZSYmZS5sZW5ndGg/ZVswXTppfXZhciBabz1YcigoZnVuY3Rpb24oZSl7dmFyIHQ9THQoZSxfaSk7cmV0dXJuIHQubGVuZ3RoJiZ0WzBdPT09ZVswXT9Qcih0KTpbXX0pKSxKbz1YcigoZnVuY3Rpb24oZSl7dmFyIHQ9UW8oZSksbj1MdChlLF9pKTtyZXR1cm4gdD09PVFvKG4pP3Q9aTpuLnBvcCgpLG4ubGVuZ3RoJiZuWzBdPT09ZVswXT9QcihuLHVvKHQsMikpOltdfSkpLFhvPVhyKChmdW5jdGlvbihlKXt2YXIgdD1RbyhlKSxuPUx0KGUsX2kpO3JldHVybih0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDppKSYmbi5wb3AoKSxuLmxlbmd0aCYmblswXT09PWVbMF0/UHIobixpLHQpOltdfSkpO2Z1bmN0aW9uIFFvKGUpe3ZhciB0PW51bGw9PWU/MDplLmxlbmd0aDtyZXR1cm4gdD9lW3QtMV06aX12YXIgJG89WHIoZWEpO2Z1bmN0aW9uIGVhKGUsdCl7cmV0dXJuIGUmJmUubGVuZ3RoJiZ0JiZ0Lmxlbmd0aD9ZcihlLHQpOmV9dmFyIHRhPXJvKChmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/MDplLmxlbmd0aCxyPXNyKGUsdCk7cmV0dXJuIHFyKGUsTHQodCwoZnVuY3Rpb24oZSl7cmV0dXJuIGJvKGUsbik/K2U6ZX0pKS5zb3J0KENpKSkscn0pKTtmdW5jdGlvbiBuYShlKXtyZXR1cm4gbnVsbD09ZT9lOkluLmNhbGwoZSl9dmFyIHJhPVhyKChmdW5jdGlvbihlKXtyZXR1cm4gZGkoX3IoZSwxLFphLCEwKSl9KSksaWE9WHIoKGZ1bmN0aW9uKGUpe3ZhciB0PVFvKGUpO3JldHVybiBaYSh0KSYmKHQ9aSksZGkoX3IoZSwxLFphLCEwKSx1byh0LDIpKX0pKSxvYT1YcigoZnVuY3Rpb24oZSl7dmFyIHQ9UW8oZSk7cmV0dXJuIHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OmksZGkoX3IoZSwxLFphLCEwKSxpLHQpfSkpO2Z1bmN0aW9uIGFhKGUpe2lmKCFlfHwhZS5sZW5ndGgpcmV0dXJuW107dmFyIHQ9MDtyZXR1cm4gZT1QdChlLChmdW5jdGlvbihlKXtpZihaYShlKSlyZXR1cm4gdD1FbihlLmxlbmd0aCx0KSwhMH0pKSxadCh0LChmdW5jdGlvbih0KXtyZXR1cm4gTHQoZSx6dCh0KSl9KSl9ZnVuY3Rpb24gc2EoZSx0KXtpZighZXx8IWUubGVuZ3RoKXJldHVybltdO3ZhciBuPWFhKGUpO3JldHVybiBudWxsPT10P246THQobiwoZnVuY3Rpb24oZSl7cmV0dXJuIE90KHQsaSxlKX0pKX12YXIgY2E9WHIoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIFphKGUpP3ByKGUsdCk6W119KSksdWE9WHIoKGZ1bmN0aW9uKGUpe3JldHVybiBtaShQdChlLFphKSl9KSksbGE9WHIoKGZ1bmN0aW9uKGUpe3ZhciB0PVFvKGUpO3JldHVybiBaYSh0KSYmKHQ9aSksbWkoUHQoZSxaYSksdW8odCwyKSl9KSksZGE9WHIoKGZ1bmN0aW9uKGUpe3ZhciB0PVFvKGUpO3JldHVybiB0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDppLG1pKFB0KGUsWmEpLGksdCl9KSkscGE9WHIoYWEpO3ZhciBmYT1YcigoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGgsbj10PjE/ZVt0LTFdOmk7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2Ygbj8oZS5wb3AoKSxuKTppLHNhKGUsbil9KSk7ZnVuY3Rpb24gaGEoZSl7dmFyIHQ9SG4oZSk7cmV0dXJuIHQuX19jaGFpbl9fPSEwLHR9ZnVuY3Rpb24gZ2EoZSx0KXtyZXR1cm4gdChlKX12YXIgbWE9cm8oKGZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoLG49dD9lWzBdOjAscj10aGlzLl9fd3JhcHBlZF9fLG89ZnVuY3Rpb24odCl7cmV0dXJuIHNyKHQsZSl9O3JldHVybiEodD4xfHx0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCkmJnIgaW5zdGFuY2VvZiB6biYmYm8obik/KChyPXIuc2xpY2UobiwrbisodD8xOjApKSkuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpnYSxhcmdzOltvXSx0aGlzQXJnOml9KSxuZXcgVm4ocix0aGlzLl9fY2hhaW5fXykudGhydSgoZnVuY3Rpb24oZSl7cmV0dXJuIHQmJiFlLmxlbmd0aCYmZS5wdXNoKGkpLGV9KSkpOnRoaXMudGhydShvKX0pKTt2YXIgdmE9d2koKGZ1bmN0aW9uKGUsdCxuKXtNZS5jYWxsKGUsbik/KytlW25dOmFyKGUsbiwxKX0pKTt2YXIgX2E9VWkoem8pLEVhPVVpKEtvKTtmdW5jdGlvbiBiYShlLHQpe3JldHVybihLYShlKT9DdDpmcikoZSx1byh0LDMpKX1mdW5jdGlvbiBTYShlLHQpe3JldHVybihLYShlKT9OdDpocikoZSx1byh0LDMpKX12YXIgeWE9d2koKGZ1bmN0aW9uKGUsdCxuKXtNZS5jYWxsKGUsbik/ZVtuXS5wdXNoKHQpOmFyKGUsbixbdF0pfSkpO3ZhciBUYT1YcigoZnVuY3Rpb24oZSx0LHIpe3ZhciBpPS0xLG89XCJmdW5jdGlvblwiPT10eXBlb2YgdCxhPXFhKGUpP24oZS5sZW5ndGgpOltdO3JldHVybiBmcihlLChmdW5jdGlvbihlKXthWysraV09bz9PdCh0LGUscik6UnIoZSx0LHIpfSkpLGF9KSksSWE9d2koKGZ1bmN0aW9uKGUsdCxuKXthcihlLG4sdCl9KSk7ZnVuY3Rpb24gT2EoZSx0KXtyZXR1cm4oS2EoZSk/THQ6RnIpKGUsdW8odCwzKSl9dmFyIEFhPXdpKChmdW5jdGlvbihlLHQsbil7ZVtuPzA6MV0ucHVzaCh0KX0pLChmdW5jdGlvbigpe3JldHVybltbXSxbXV19KSk7dmFyIENhPVhyKChmdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJuW107dmFyIG49dC5sZW5ndGg7cmV0dXJuIG4+MSYmU28oZSx0WzBdLHRbMV0pP3Q9W106bj4yJiZTbyh0WzBdLHRbMV0sdFsyXSkmJih0PVt0WzBdXSksenIoZSxfcih0LDEpLFtdKX0pKSxOYT1kdHx8ZnVuY3Rpb24oKXtyZXR1cm4gZnQuRGF0ZS5ub3coKX07ZnVuY3Rpb24ga2EoZSx0LG4pe3JldHVybiB0PW4/aTp0LHQ9ZSYmbnVsbD09dD9lLmxlbmd0aDp0LFFpKGUsZCxpLGksaSxpLHQpfWZ1bmN0aW9uIFBhKGUsdCl7dmFyIG47aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcga2Uobyk7cmV0dXJuIGU9bXMoZSksZnVuY3Rpb24oKXtyZXR1cm4tLWU+MCYmKG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGU8PTEmJih0PWkpLG59fXZhciBSYT1YcigoZnVuY3Rpb24oZSx0LG4pe3ZhciByPTE7aWYobi5sZW5ndGgpe3ZhciBpPWxuKG4sY28oUmEpKTtyfD11fXJldHVybiBRaShlLHIsdCxuLGkpfSkpLHdhPVhyKChmdW5jdGlvbihlLHQsbil7dmFyIHI9MztpZihuLmxlbmd0aCl7dmFyIGk9bG4obixjbyh3YSkpO3J8PXV9cmV0dXJuIFFpKHQscixlLG4saSl9KSk7ZnVuY3Rpb24gTGEoZSx0LG4pe3ZhciByLGEscyxjLHUsbCxkPTAscD0hMSxmPSExLGg9ITA7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBuZXcga2Uobyk7ZnVuY3Rpb24gZyh0KXt2YXIgbj1yLG89YTtyZXR1cm4gcj1hPWksZD10LGM9ZS5hcHBseShvLG4pfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIGQ9ZSx1PUxvKF8sdCkscD9nKGUpOmN9ZnVuY3Rpb24gdihlKXt2YXIgbj1lLWw7cmV0dXJuIGw9PT1pfHxuPj10fHxuPDB8fGYmJmUtZD49c31mdW5jdGlvbiBfKCl7dmFyIGU9TmEoKTtpZih2KGUpKXJldHVybiBFKGUpO3U9TG8oXyxmdW5jdGlvbihlKXt2YXIgbj10LShlLWwpO3JldHVybiBmP2JuKG4scy0oZS1kKSk6bn0oZSkpfWZ1bmN0aW9uIEUoZSl7cmV0dXJuIHU9aSxoJiZyP2coZSk6KHI9YT1pLGMpfWZ1bmN0aW9uIGIoKXt2YXIgZT1OYSgpLG49dihlKTtpZihyPWFyZ3VtZW50cyxhPXRoaXMsbD1lLG4pe2lmKHU9PT1pKXJldHVybiBtKGwpO2lmKGYpcmV0dXJuIFRpKHUpLHU9TG8oXyx0KSxnKGwpfXJldHVybiB1PT09aSYmKHU9TG8oXyx0KSksY31yZXR1cm4gdD1fcyh0KXx8MCxucyhuKSYmKHA9ISFuLmxlYWRpbmcscz0oZj1cIm1heFdhaXRcImluIG4pP0VuKF9zKG4ubWF4V2FpdCl8fDAsdCk6cyxoPVwidHJhaWxpbmdcImluIG4/ISFuLnRyYWlsaW5nOmgpLGIuY2FuY2VsPWZ1bmN0aW9uKCl7dSE9PWkmJlRpKHUpLGQ9MCxyPWw9YT11PWl9LGIuZmx1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gdT09PWk/YzpFKE5hKCkpfSxifXZhciBCYT1YcigoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZHIoZSwxLHQpfSkpLE1hPVhyKChmdW5jdGlvbihlLHQsbil7cmV0dXJuIGRyKGUsX3ModCl8fDAsbil9KSk7ZnVuY3Rpb24gRGEoZSx0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlfHxudWxsIT10JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IG5ldyBrZShvKTt2YXIgbj1mdW5jdGlvbigpe3ZhciByPWFyZ3VtZW50cyxpPXQ/dC5hcHBseSh0aGlzLHIpOnJbMF0sbz1uLmNhY2hlO2lmKG8uaGFzKGkpKXJldHVybiBvLmdldChpKTt2YXIgYT1lLmFwcGx5KHRoaXMscik7cmV0dXJuIG4uY2FjaGU9by5zZXQoaSxhKXx8byxhfTtyZXR1cm4gbi5jYWNoZT1uZXcoRGEuQ2FjaGV8fHFuKSxufWZ1bmN0aW9uIGphKGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgbmV3IGtlKG8pO3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cztzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4hZS5jYWxsKHRoaXMpO2Nhc2UgMTpyZXR1cm4hZS5jYWxsKHRoaXMsdFswXSk7Y2FzZSAyOnJldHVybiFlLmNhbGwodGhpcyx0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4hZS5jYWxsKHRoaXMsdFswXSx0WzFdLHRbMl0pfXJldHVybiFlLmFwcGx5KHRoaXMsdCl9fURhLkNhY2hlPXFuO3ZhciB4YT1TaSgoZnVuY3Rpb24oZSx0KXt2YXIgbj0odD0xPT10Lmxlbmd0aCYmS2EodFswXSk/THQodFswXSxYdCh1bygpKSk6THQoX3IodCwxKSxYdCh1bygpKSkpLmxlbmd0aDtyZXR1cm4gWHIoKGZ1bmN0aW9uKHIpe2Zvcih2YXIgaT0tMSxvPWJuKHIubGVuZ3RoLG4pOysraTxvOylyW2ldPXRbaV0uY2FsbCh0aGlzLHJbaV0pO3JldHVybiBPdChlLHRoaXMscil9KSl9KSksVWE9WHIoKGZ1bmN0aW9uKGUsdCl7dmFyIG49bG4odCxjbyhVYSkpO3JldHVybiBRaShlLHUsaSx0LG4pfSkpLEZhPVhyKChmdW5jdGlvbihlLHQpe3ZhciBuPWxuKHQsY28oRmEpKTtyZXR1cm4gUWkoZSxsLGksdCxuKX0pKSxIYT1ybygoZnVuY3Rpb24oZSx0KXtyZXR1cm4gUWkoZSxwLGksaSxpLHQpfSkpO2Z1bmN0aW9uIEdhKGUsdCl7cmV0dXJuIGU9PT10fHxlIT09ZSYmdCE9PXR9dmFyIFdhPVlpKENyKSxWYT1ZaSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT49dH0pKSx6YT13cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP3dyOmZ1bmN0aW9uKGUpe3JldHVybiBycyhlKSYmTWUuY2FsbChlLFwiY2FsbGVlXCIpJiYhcWUuY2FsbChlLFwiY2FsbGVlXCIpfSxLYT1uLmlzQXJyYXksWWE9RXQ/WHQoRXQpOmZ1bmN0aW9uKGUpe3JldHVybiBycyhlKSYmQXIoZSk9PUJ9O2Z1bmN0aW9uIHFhKGUpe3JldHVybiBudWxsIT1lJiZ0cyhlLmxlbmd0aCkmJiEkYShlKX1mdW5jdGlvbiBaYShlKXtyZXR1cm4gcnMoZSkmJnFhKGUpfXZhciBKYT1fdHx8X2MsWGE9YnQ/WHQoYnQpOmZ1bmN0aW9uKGUpe3JldHVybiBycyhlKSYmQXIoZSk9PVN9O2Z1bmN0aW9uIFFhKGUpe2lmKCFycyhlKSlyZXR1cm4hMTt2YXIgdD1BcihlKTtyZXR1cm4gdD09eXx8XCJbb2JqZWN0IERPTUV4Y2VwdGlvbl1cIj09dHx8XCJzdHJpbmdcIj09dHlwZW9mIGUubWVzc2FnZSYmXCJzdHJpbmdcIj09dHlwZW9mIGUubmFtZSYmIWFzKGUpfWZ1bmN0aW9uICRhKGUpe2lmKCFucyhlKSlyZXR1cm4hMTt2YXIgdD1BcihlKTtyZXR1cm4gdD09VHx8dD09SXx8XCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dXCI9PXR8fFwiW29iamVjdCBQcm94eV1cIj09dH1mdW5jdGlvbiBlcyhlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZSYmZT09bXMoZSl9ZnVuY3Rpb24gdHMoZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGUmJmU+LTEmJmUlMT09MCYmZTw9aH1mdW5jdGlvbiBucyhlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4gbnVsbCE9ZSYmKFwib2JqZWN0XCI9PXR8fFwiZnVuY3Rpb25cIj09dCl9ZnVuY3Rpb24gcnMoZSl7cmV0dXJuIG51bGwhPWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlfXZhciBpcz1TdD9YdChTdCk6ZnVuY3Rpb24oZSl7cmV0dXJuIHJzKGUpJiZtbyhlKT09T307ZnVuY3Rpb24gb3MoZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGV8fHJzKGUpJiZBcihlKT09QX1mdW5jdGlvbiBhcyhlKXtpZighcnMoZSl8fEFyKGUpIT1DKXJldHVybiExO3ZhciB0PUtlKGUpO2lmKG51bGw9PT10KXJldHVybiEwO3ZhciBuPU1lLmNhbGwodCxcImNvbnN0cnVjdG9yXCIpJiZ0LmNvbnN0cnVjdG9yO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4mJm4gaW5zdGFuY2VvZiBuJiZCZS5jYWxsKG4pPT1VZX12YXIgc3M9eXQ/WHQoeXQpOmZ1bmN0aW9uKGUpe3JldHVybiBycyhlKSYmQXIoZSk9PWt9O3ZhciBjcz1UdD9YdChUdCk6ZnVuY3Rpb24oZSl7cmV0dXJuIHJzKGUpJiZtbyhlKT09UH07ZnVuY3Rpb24gdXMoZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGV8fCFLYShlKSYmcnMoZSkmJkFyKGUpPT1SfWZ1bmN0aW9uIGxzKGUpe3JldHVyblwic3ltYm9sXCI9PXR5cGVvZiBlfHxycyhlKSYmQXIoZSk9PXd9dmFyIGRzPUl0P1h0KEl0KTpmdW5jdGlvbihlKXtyZXR1cm4gcnMoZSkmJnRzKGUubGVuZ3RoKSYmISFhdFtBcihlKV19O3ZhciBwcz1ZaShVciksZnM9WWkoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU8PXR9KSk7ZnVuY3Rpb24gaHMoZSl7aWYoIWUpcmV0dXJuW107aWYocWEoZSkpcmV0dXJuIHVzKGUpP2huKGUpOlBpKGUpO2lmKFhlJiZlW1hlXSlyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W107ISh0PWUubmV4dCgpKS5kb25lOyluLnB1c2godC52YWx1ZSk7cmV0dXJuIG59KGVbWGVdKCkpO3ZhciB0PW1vKGUpO3JldHVybih0PT1PP2NuOnQ9PVA/ZG46R3MpKGUpfWZ1bmN0aW9uIGdzKGUpe3JldHVybiBlPyhlPV9zKGUpKT09PWZ8fGU9PT0tMS8wPzE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiooZTwwPy0xOjEpOmU9PT1lP2U6MDowPT09ZT9lOjB9ZnVuY3Rpb24gbXMoZSl7dmFyIHQ9Z3MoZSksbj10JTE7cmV0dXJuIHQ9PT10P24/dC1uOnQ6MH1mdW5jdGlvbiB2cyhlKXtyZXR1cm4gZT9jcihtcyhlKSwwLG0pOjB9ZnVuY3Rpb24gX3MoZSl7aWYoXCJudW1iZXJcIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYobHMoZSkpcmV0dXJuIGc7aWYobnMoZSkpe3ZhciB0PVwiZnVuY3Rpb25cIj09dHlwZW9mIGUudmFsdWVPZj9lLnZhbHVlT2YoKTplO2U9bnModCk/dCtcIlwiOnR9aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUpcmV0dXJuIDA9PT1lP2U6K2U7ZT1KdChlKTt2YXIgbj12ZS50ZXN0KGUpO3JldHVybiBufHxFZS50ZXN0KGUpP2x0KGUuc2xpY2UoMiksbj8yOjgpOm1lLnRlc3QoZSk/ZzorZX1mdW5jdGlvbiBFcyhlKXtyZXR1cm4gUmkoZSxCcyhlKSl9ZnVuY3Rpb24gYnMoZSl7cmV0dXJuIG51bGw9PWU/XCJcIjpsaShlKX12YXIgU3M9TGkoKGZ1bmN0aW9uKGUsdCl7aWYoT28odCl8fHFhKHQpKVJpKHQsTHModCksZSk7ZWxzZSBmb3IodmFyIG4gaW4gdClNZS5jYWxsKHQsbikmJm5yKGUsbix0W25dKX0pKSx5cz1MaSgoZnVuY3Rpb24oZSx0KXtSaSh0LEJzKHQpLGUpfSkpLFRzPUxpKChmdW5jdGlvbihlLHQsbixyKXtSaSh0LEJzKHQpLGUscil9KSksSXM9TGkoKGZ1bmN0aW9uKGUsdCxuLHIpe1JpKHQsTHModCksZSxyKX0pKSxPcz1ybyhzcik7dmFyIEFzPVhyKChmdW5jdGlvbihlLHQpe2U9QWUoZSk7dmFyIG49LTEscj10Lmxlbmd0aCxvPXI+Mj90WzJdOmk7Zm9yKG8mJlNvKHRbMF0sdFsxXSxvKSYmKHI9MSk7KytuPHI7KWZvcih2YXIgYT10W25dLHM9QnMoYSksYz0tMSx1PXMubGVuZ3RoOysrYzx1Oyl7dmFyIGw9c1tjXSxkPWVbbF07KGQ9PT1pfHxHYShkLHdlW2xdKSYmIU1lLmNhbGwoZSxsKSkmJihlW2xdPWFbbF0pfXJldHVybiBlfSkpLENzPVhyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wdXNoKGksZW8pLE90KERzLGksZSl9KSk7ZnVuY3Rpb24gTnMoZSx0LG4pe3ZhciByPW51bGw9PWU/aTpJcihlLHQpO3JldHVybiByPT09aT9uOnJ9ZnVuY3Rpb24ga3MoZSx0KXtyZXR1cm4gbnVsbCE9ZSYmdm8oZSx0LGtyKX12YXIgUHM9R2koKGZ1bmN0aW9uKGUsdCxuKXtudWxsIT10JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0LnRvU3RyaW5nJiYodD14ZS5jYWxsKHQpKSxlW3RdPW59KSxuYyhvYykpLFJzPUdpKChmdW5jdGlvbihlLHQsbil7bnVsbCE9dCYmXCJmdW5jdGlvblwiIT10eXBlb2YgdC50b1N0cmluZyYmKHQ9eGUuY2FsbCh0KSksTWUuY2FsbChlLHQpP2VbdF0ucHVzaChuKTplW3RdPVtuXX0pLHVvKSx3cz1YcihScik7ZnVuY3Rpb24gTHMoZSl7cmV0dXJuIHFhKGUpP1huKGUpOmpyKGUpfWZ1bmN0aW9uIEJzKGUpe3JldHVybiBxYShlKT9YbihlLCEwKTp4cihlKX12YXIgTXM9TGkoKGZ1bmN0aW9uKGUsdCxuKXtXcihlLHQsbil9KSksRHM9TGkoKGZ1bmN0aW9uKGUsdCxuLHIpe1dyKGUsdCxuLHIpfSkpLGpzPXJvKChmdW5jdGlvbihlLHQpe3ZhciBuPXt9O2lmKG51bGw9PWUpcmV0dXJuIG47dmFyIHI9ITE7dD1MdCh0LChmdW5jdGlvbih0KXtyZXR1cm4gdD1iaSh0LGUpLHJ8fChyPXQubGVuZ3RoPjEpLHR9KSksUmkoZSxvbyhlKSxuKSxyJiYobj11cihuLDcsdG8pKTtmb3IodmFyIGk9dC5sZW5ndGg7aS0tOylwaShuLHRbaV0pO3JldHVybiBufSkpO3ZhciB4cz1ybygoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09ZT97fTpmdW5jdGlvbihlLHQpe3JldHVybiBLcihlLHQsKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGtzKGUsbil9KSl9KGUsdCl9KSk7ZnVuY3Rpb24gVXMoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPUx0KG9vKGUpLChmdW5jdGlvbihlKXtyZXR1cm5bZV19KSk7cmV0dXJuIHQ9dW8odCksS3IoZSxuLChmdW5jdGlvbihlLG4pe3JldHVybiB0KGUsblswXSl9KSl9dmFyIEZzPVhpKExzKSxIcz1YaShCcyk7ZnVuY3Rpb24gR3MoZSl7cmV0dXJuIG51bGw9PWU/W106UXQoZSxMcyhlKSl9dmFyIFdzPWppKChmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQ9dC50b0xvd2VyQ2FzZSgpLGUrKG4/VnModCk6dCl9KSk7ZnVuY3Rpb24gVnMoZSl7cmV0dXJuIFFzKGJzKGUpLnRvTG93ZXJDYXNlKCkpfWZ1bmN0aW9uIHpzKGUpe3JldHVybihlPWJzKGUpKSYmZS5yZXBsYWNlKFNlLHJuKS5yZXBsYWNlKCRlLFwiXCIpfXZhciBLcz1qaSgoZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlKyhuP1wiLVwiOlwiXCIpK3QudG9Mb3dlckNhc2UoKX0pKSxZcz1qaSgoZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlKyhuP1wiIFwiOlwiXCIpK3QudG9Mb3dlckNhc2UoKX0pKSxxcz1EaShcInRvTG93ZXJDYXNlXCIpO3ZhciBacz1qaSgoZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlKyhuP1wiX1wiOlwiXCIpK3QudG9Mb3dlckNhc2UoKX0pKTt2YXIgSnM9amkoKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZSsobj9cIiBcIjpcIlwiKStRcyh0KX0pKTt2YXIgWHM9amkoKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZSsobj9cIiBcIjpcIlwiKSt0LnRvVXBwZXJDYXNlKCl9KSksUXM9RGkoXCJ0b1VwcGVyQ2FzZVwiKTtmdW5jdGlvbiAkcyhlLHQsbil7cmV0dXJuIGU9YnMoZSksKHQ9bj9pOnQpPT09aT9mdW5jdGlvbihlKXtyZXR1cm4gcnQudGVzdChlKX0oZSk/ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWF0Y2godHQpfHxbXX0oZSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWF0Y2goZGUpfHxbXX0oZSk6ZS5tYXRjaCh0KXx8W119dmFyIGVjPVhyKChmdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gT3QoZSxpLHQpfWNhdGNoKG4pe3JldHVybiBRYShuKT9uOm5ldyBzZShuKX19KSksdGM9cm8oKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIEN0KHQsKGZ1bmN0aW9uKHQpe3Q9VW8odCksYXIoZSx0LFJhKGVbdF0sZSkpfSkpLGV9KSk7ZnVuY3Rpb24gbmMoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciByYz1GaSgpLGljPUZpKCEwKTtmdW5jdGlvbiBvYyhlKXtyZXR1cm4gZX1mdW5jdGlvbiBhYyhlKXtyZXR1cm4gRHIoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOnVyKGUsMSkpfXZhciBzYz1YcigoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIFJyKG4sZSx0KX19KSksY2M9WHIoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBScihlLG4sdCl9fSkpO2Z1bmN0aW9uIHVjKGUsdCxuKXt2YXIgcj1Mcyh0KSxpPVRyKHQscik7bnVsbCE9bnx8bnModCkmJihpLmxlbmd0aHx8IXIubGVuZ3RoKXx8KG49dCx0PWUsZT10aGlzLGk9VHIodCxMcyh0KSkpO3ZhciBvPSEobnMobikmJlwiY2hhaW5cImluIG4pfHwhIW4uY2hhaW4sYT0kYShlKTtyZXR1cm4gQ3QoaSwoZnVuY3Rpb24obil7dmFyIHI9dFtuXTtlW25dPXIsYSYmKGUucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fX2NoYWluX187aWYob3x8dCl7dmFyIG49ZSh0aGlzLl9fd3JhcHBlZF9fKSxpPW4uX19hY3Rpb25zX189UGkodGhpcy5fX2FjdGlvbnNfXyk7cmV0dXJuIGkucHVzaCh7ZnVuYzpyLGFyZ3M6YXJndW1lbnRzLHRoaXNBcmc6ZX0pLG4uX19jaGFpbl9fPXQsbn1yZXR1cm4gci5hcHBseShlLEJ0KFt0aGlzLnZhbHVlKCldLGFyZ3VtZW50cykpfSl9KSksZX1mdW5jdGlvbiBsYygpe312YXIgZGM9VmkoTHQpLHBjPVZpKGt0KSxmYz1WaShqdCk7ZnVuY3Rpb24gaGMoZSl7cmV0dXJuIHlvKGUpP3p0KFVvKGUpKTpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIElyKHQsZSl9fShlKX12YXIgZ2M9S2koKSxtYz1LaSghMCk7ZnVuY3Rpb24gdmMoKXtyZXR1cm5bXX1mdW5jdGlvbiBfYygpe3JldHVybiExfXZhciBFYz1XaSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0fSksMCksYmM9WmkoXCJjZWlsXCIpLFNjPVdpKChmdW5jdGlvbihlLHQpe3JldHVybiBlL3R9KSwxKSx5Yz1aaShcImZsb29yXCIpO3ZhciBUYz1XaSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSp0fSksMSksSWM9WmkoXCJyb3VuZFwiKSxPYz1XaSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSksMCk7cmV0dXJuIEhuLmFmdGVyPWZ1bmN0aW9uKGUsdCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcga2Uobyk7cmV0dXJuIGU9bXMoZSksZnVuY3Rpb24oKXtpZigtLWU8MSlyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxIbi5hcnk9a2EsSG4uYXNzaWduPVNzLEhuLmFzc2lnbkluPXlzLEhuLmFzc2lnbkluV2l0aD1UcyxIbi5hc3NpZ25XaXRoPUlzLEhuLmF0PU9zLEhuLmJlZm9yZT1QYSxIbi5iaW5kPVJhLEhuLmJpbmRBbGw9dGMsSG4uYmluZEtleT13YSxIbi5jYXN0QXJyYXk9ZnVuY3Rpb24oKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bXTt2YXIgZT1hcmd1bWVudHNbMF07cmV0dXJuIEthKGUpP2U6W2VdfSxIbi5jaGFpbj1oYSxIbi5jaHVuaz1mdW5jdGlvbihlLHQscil7dD0ocj9TbyhlLHQscik6dD09PWkpPzE6RW4obXModCksMCk7dmFyIG89bnVsbD09ZT8wOmUubGVuZ3RoO2lmKCFvfHx0PDEpcmV0dXJuW107Zm9yKHZhciBhPTAscz0wLGM9bihodChvL3QpKTthPG87KWNbcysrXT1paShlLGEsYSs9dCk7cmV0dXJuIGN9LEhuLmNvbXBhY3Q9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoLHI9MCxpPVtdOysrdDxuOyl7dmFyIG89ZVt0XTtvJiYoaVtyKytdPW8pfXJldHVybiBpfSxIbi5jb25jYXQ9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoO2lmKCFlKXJldHVybltdO2Zvcih2YXIgdD1uKGUtMSkscj1hcmd1bWVudHNbMF0saT1lO2ktLTspdFtpLTFdPWFyZ3VtZW50c1tpXTtyZXR1cm4gQnQoS2Eocik/UGkocik6W3JdLF9yKHQsMSkpfSxIbi5jb25kPWZ1bmN0aW9uKGUpe3ZhciB0PW51bGw9PWU/MDplLmxlbmd0aCxuPXVvKCk7cmV0dXJuIGU9dD9MdChlLChmdW5jdGlvbihlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlWzFdKXRocm93IG5ldyBrZShvKTtyZXR1cm5bbihlWzBdKSxlWzFdXX0pKTpbXSxYcigoZnVuY3Rpb24obil7Zm9yKHZhciByPS0xOysrcjx0Oyl7dmFyIGk9ZVtyXTtpZihPdChpWzBdLHRoaXMsbikpcmV0dXJuIE90KGlbMV0sdGhpcyxuKX19KSl9LEhuLmNvbmZvcm1zPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1McyhlKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGxyKG4sZSx0KX19KHVyKGUsMSkpfSxIbi5jb25zdGFudD1uYyxIbi5jb3VudEJ5PXZhLEhuLmNyZWF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPUduKGUpO3JldHVybiBudWxsPT10P246b3Iobix0KX0sSG4uY3Vycnk9ZnVuY3Rpb24gZSh0LG4scil7dmFyIG89UWkodCw4LGksaSxpLGksaSxuPXI/aTpuKTtyZXR1cm4gby5wbGFjZWhvbGRlcj1lLnBsYWNlaG9sZGVyLG99LEhuLmN1cnJ5UmlnaHQ9ZnVuY3Rpb24gZSh0LG4scil7dmFyIG89UWkodCxjLGksaSxpLGksaSxuPXI/aTpuKTtyZXR1cm4gby5wbGFjZWhvbGRlcj1lLnBsYWNlaG9sZGVyLG99LEhuLmRlYm91bmNlPUxhLEhuLmRlZmF1bHRzPUFzLEhuLmRlZmF1bHRzRGVlcD1DcyxIbi5kZWZlcj1CYSxIbi5kZWxheT1NYSxIbi5kaWZmZXJlbmNlPUdvLEhuLmRpZmZlcmVuY2VCeT1XbyxIbi5kaWZmZXJlbmNlV2l0aD1WbyxIbi5kcm9wPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHI/aWkoZSwodD1ufHx0PT09aT8xOm1zKHQpKTwwPzA6dCxyKTpbXX0sSG4uZHJvcFJpZ2h0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHI/aWkoZSwwLCh0PXItKHQ9bnx8dD09PWk/MTptcyh0KSkpPDA/MDp0KTpbXX0sSG4uZHJvcFJpZ2h0V2hpbGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmZS5sZW5ndGg/aGkoZSx1byh0LDMpLCEwLCEwKTpbXX0sSG4uZHJvcFdoaWxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJmUubGVuZ3RoP2hpKGUsdW8odCwzKSwhMCk6W119LEhuLmZpbGw9ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89bnVsbD09ZT8wOmUubGVuZ3RoO3JldHVybiBvPyhuJiZcIm51bWJlclwiIT10eXBlb2YgbiYmU28oZSx0LG4pJiYobj0wLHI9byksZnVuY3Rpb24oZSx0LG4scil7dmFyIG89ZS5sZW5ndGg7Zm9yKChuPW1zKG4pKTwwJiYobj0tbj5vPzA6bytuKSwocj1yPT09aXx8cj5vP286bXMocikpPDAmJihyKz1vKSxyPW4+cj8wOnZzKHIpO248cjspZVtuKytdPXQ7cmV0dXJuIGV9KGUsdCxuLHIpKTpbXX0sSG4uZmlsdGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKEthKGUpP1B0OnZyKShlLHVvKHQsMykpfSxIbi5mbGF0TWFwPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIF9yKE9hKGUsdCksMSl9LEhuLmZsYXRNYXBEZWVwPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIF9yKE9hKGUsdCksZil9LEhuLmZsYXRNYXBEZXB0aD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG49bj09PWk/MTptcyhuKSxfcihPYShlLHQpLG4pfSxIbi5mbGF0dGVuPVlvLEhuLmZsYXR0ZW5EZWVwPWZ1bmN0aW9uKGUpe3JldHVybihudWxsPT1lPzA6ZS5sZW5ndGgpP19yKGUsZik6W119LEhuLmZsYXR0ZW5EZXB0aD1mdW5jdGlvbihlLHQpe3JldHVybihudWxsPT1lPzA6ZS5sZW5ndGgpP19yKGUsdD10PT09aT8xOm1zKHQpKTpbXX0sSG4uZmxpcD1mdW5jdGlvbihlKXtyZXR1cm4gUWkoZSw1MTIpfSxIbi5mbG93PXJjLEhuLmZsb3dSaWdodD1pYyxIbi5mcm9tUGFpcnM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PS0xLG49bnVsbD09ZT8wOmUubGVuZ3RoLHI9e307Kyt0PG47KXt2YXIgaT1lW3RdO3JbaVswXV09aVsxXX1yZXR1cm4gcn0sSG4uZnVuY3Rpb25zPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP1tdOlRyKGUsTHMoZSkpfSxIbi5mdW5jdGlvbnNJbj1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT9bXTpUcihlLEJzKGUpKX0sSG4uZ3JvdXBCeT15YSxIbi5pbml0aWFsPWZ1bmN0aW9uKGUpe3JldHVybihudWxsPT1lPzA6ZS5sZW5ndGgpP2lpKGUsMCwtMSk6W119LEhuLmludGVyc2VjdGlvbj1abyxIbi5pbnRlcnNlY3Rpb25CeT1KbyxIbi5pbnRlcnNlY3Rpb25XaXRoPVhvLEhuLmludmVydD1QcyxIbi5pbnZlcnRCeT1ScyxIbi5pbnZva2VNYXA9VGEsSG4uaXRlcmF0ZWU9YWMsSG4ua2V5Qnk9SWEsSG4ua2V5cz1McyxIbi5rZXlzSW49QnMsSG4ubWFwPU9hLEhuLm1hcEtleXM9ZnVuY3Rpb24oZSx0KXt2YXIgbj17fTtyZXR1cm4gdD11byh0LDMpLFNyKGUsKGZ1bmN0aW9uKGUscixpKXthcihuLHQoZSxyLGkpLGUpfSkpLG59LEhuLm1hcFZhbHVlcz1mdW5jdGlvbihlLHQpe3ZhciBuPXt9O3JldHVybiB0PXVvKHQsMyksU3IoZSwoZnVuY3Rpb24oZSxyLGkpe2FyKG4scix0KGUscixpKSl9KSksbn0sSG4ubWF0Y2hlcz1mdW5jdGlvbihlKXtyZXR1cm4gSHIodXIoZSwxKSl9LEhuLm1hdGNoZXNQcm9wZXJ0eT1mdW5jdGlvbihlLHQpe3JldHVybiBHcihlLHVyKHQsMSkpfSxIbi5tZW1vaXplPURhLEhuLm1lcmdlPU1zLEhuLm1lcmdlV2l0aD1EcyxIbi5tZXRob2Q9c2MsSG4ubWV0aG9kT2Y9Y2MsSG4ubWl4aW49dWMsSG4ubmVnYXRlPWphLEhuLm50aEFyZz1mdW5jdGlvbihlKXtyZXR1cm4gZT1tcyhlKSxYcigoZnVuY3Rpb24odCl7cmV0dXJuIFZyKHQsZSl9KSl9LEhuLm9taXQ9anMsSG4ub21pdEJ5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFVzKGUsamEodW8odCkpKX0sSG4ub25jZT1mdW5jdGlvbihlKXtyZXR1cm4gUGEoMixlKX0sSG4ub3JkZXJCeT1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gbnVsbD09ZT9bXTooS2EodCl8fCh0PW51bGw9PXQ/W106W3RdKSxLYShuPXI/aTpuKXx8KG49bnVsbD09bj9bXTpbbl0pLHpyKGUsdCxuKSl9LEhuLm92ZXI9ZGMsSG4ub3ZlckFyZ3M9eGEsSG4ub3ZlckV2ZXJ5PXBjLEhuLm92ZXJTb21lPWZjLEhuLnBhcnRpYWw9VWEsSG4ucGFydGlhbFJpZ2h0PUZhLEhuLnBhcnRpdGlvbj1BYSxIbi5waWNrPXhzLEhuLnBpY2tCeT1VcyxIbi5wcm9wZXJ0eT1oYyxIbi5wcm9wZXJ0eU9mPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09ZT9pOklyKGUsdCl9fSxIbi5wdWxsPSRvLEhuLnB1bGxBbGw9ZWEsSG4ucHVsbEFsbEJ5PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZSYmZS5sZW5ndGgmJnQmJnQubGVuZ3RoP1lyKGUsdCx1byhuLDIpKTplfSxIbi5wdWxsQWxsV2l0aD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmJmUubGVuZ3RoJiZ0JiZ0Lmxlbmd0aD9ZcihlLHQsaSxuKTplfSxIbi5wdWxsQXQ9dGEsSG4ucmFuZ2U9Z2MsSG4ucmFuZ2VSaWdodD1tYyxIbi5yZWFyZz1IYSxIbi5yZWplY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oS2EoZSk/UHQ6dnIpKGUsamEodW8odCwzKSkpfSxIbi5yZW1vdmU9ZnVuY3Rpb24oZSx0KXt2YXIgbj1bXTtpZighZXx8IWUubGVuZ3RoKXJldHVybiBuO3ZhciByPS0xLGk9W10sbz1lLmxlbmd0aDtmb3IodD11byh0LDMpOysrcjxvOyl7dmFyIGE9ZVtyXTt0KGEscixlKSYmKG4ucHVzaChhKSxpLnB1c2gocikpfXJldHVybiBxcihlLGkpLG59LEhuLnJlc3Q9ZnVuY3Rpb24oZSx0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IG5ldyBrZShvKTtyZXR1cm4gWHIoZSx0PXQ9PT1pP3Q6bXModCkpfSxIbi5yZXZlcnNlPW5hLEhuLnNhbXBsZVNpemU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0PShuP1NvKGUsdCxuKTp0PT09aSk/MTptcyh0KSwoS2EoZSk/JG46JHIpKGUsdCl9LEhuLnNldD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG51bGw9PWU/ZTplaShlLHQsbil9LEhuLnNldFdpdGg9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOmksbnVsbD09ZT9lOmVpKGUsdCxuLHIpfSxIbi5zaHVmZmxlPWZ1bmN0aW9uKGUpe3JldHVybihLYShlKT9lcjpyaSkoZSl9LEhuLnNsaWNlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7cmV0dXJuIHI/KG4mJlwibnVtYmVyXCIhPXR5cGVvZiBuJiZTbyhlLHQsbik/KHQ9MCxuPXIpOih0PW51bGw9PXQ/MDptcyh0KSxuPW49PT1pP3I6bXMobikpLGlpKGUsdCxuKSk6W119LEhuLnNvcnRCeT1DYSxIbi5zb3J0ZWRVbmlxPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aD9jaShlKTpbXX0sSG4uc29ydGVkVW5pcUJ5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJmUubGVuZ3RoP2NpKGUsdW8odCwyKSk6W119LEhuLnNwbGl0PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbiYmXCJudW1iZXJcIiE9dHlwZW9mIG4mJlNvKGUsdCxuKSYmKHQ9bj1pKSwobj1uPT09aT9tOm4+Pj4wKT8oZT1icyhlKSkmJihcInN0cmluZ1wiPT10eXBlb2YgdHx8bnVsbCE9dCYmIXNzKHQpKSYmISh0PWxpKHQpKSYmc24oZSk/eWkoaG4oZSksMCxuKTplLnNwbGl0KHQsbik6W119LEhuLnNwcmVhZD1mdW5jdGlvbihlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgbmV3IGtlKG8pO3JldHVybiB0PW51bGw9PXQ/MDpFbihtcyh0KSwwKSxYcigoZnVuY3Rpb24obil7dmFyIHI9blt0XSxpPXlpKG4sMCx0KTtyZXR1cm4gciYmQnQoaSxyKSxPdChlLHRoaXMsaSl9KSl9LEhuLnRhaWw9ZnVuY3Rpb24oZSl7dmFyIHQ9bnVsbD09ZT8wOmUubGVuZ3RoO3JldHVybiB0P2lpKGUsMSx0KTpbXX0sSG4udGFrZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGUmJmUubGVuZ3RoP2lpKGUsMCwodD1ufHx0PT09aT8xOm1zKHQpKTwwPzA6dCk6W119LEhuLnRha2VSaWdodD1mdW5jdGlvbihlLHQsbil7dmFyIHI9bnVsbD09ZT8wOmUubGVuZ3RoO3JldHVybiByP2lpKGUsKHQ9ci0odD1ufHx0PT09aT8xOm1zKHQpKSk8MD8wOnQscik6W119LEhuLnRha2VSaWdodFdoaWxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJmUubGVuZ3RoP2hpKGUsdW8odCwzKSwhMSwhMCk6W119LEhuLnRha2VXaGlsZT1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZlLmxlbmd0aD9oaShlLHVvKHQsMykpOltdfSxIbi50YXA9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdChlKSxlfSxIbi50aHJvdHRsZT1mdW5jdGlvbihlLHQsbil7dmFyIHI9ITAsaT0hMDtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IG5ldyBrZShvKTtyZXR1cm4gbnMobikmJihyPVwibGVhZGluZ1wiaW4gbj8hIW4ubGVhZGluZzpyLGk9XCJ0cmFpbGluZ1wiaW4gbj8hIW4udHJhaWxpbmc6aSksTGEoZSx0LHtsZWFkaW5nOnIsbWF4V2FpdDp0LHRyYWlsaW5nOml9KX0sSG4udGhydT1nYSxIbi50b0FycmF5PWhzLEhuLnRvUGFpcnM9RnMsSG4udG9QYWlyc0luPUhzLEhuLnRvUGF0aD1mdW5jdGlvbihlKXtyZXR1cm4gS2EoZSk/THQoZSxVbyk6bHMoZSk/W2VdOlBpKHhvKGJzKGUpKSl9LEhuLnRvUGxhaW5PYmplY3Q9RXMsSG4udHJhbnNmb3JtPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1LYShlKSxpPXJ8fEphKGUpfHxkcyhlKTtpZih0PXVvKHQsNCksbnVsbD09bil7dmFyIG89ZSYmZS5jb25zdHJ1Y3RvcjtuPWk/cj9uZXcgbzpbXTpucyhlKSYmJGEobyk/R24oS2UoZSkpOnt9fXJldHVybihpP0N0OlNyKShlLChmdW5jdGlvbihlLHIsaSl7cmV0dXJuIHQobixlLHIsaSl9KSksbn0sSG4udW5hcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGthKGUsMSl9LEhuLnVuaW9uPXJhLEhuLnVuaW9uQnk9aWEsSG4udW5pb25XaXRoPW9hLEhuLnVuaXE9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUubGVuZ3RoP2RpKGUpOltdfSxIbi51bmlxQnk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmZS5sZW5ndGg/ZGkoZSx1byh0LDIpKTpbXX0sSG4udW5pcVdpdGg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6aSxlJiZlLmxlbmd0aD9kaShlLGksdCk6W119LEhuLnVuc2V0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWV8fHBpKGUsdCl9LEhuLnVuemlwPWFhLEhuLnVuemlwV2l0aD1zYSxIbi51cGRhdGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBudWxsPT1lP2U6ZmkoZSx0LEVpKG4pKX0sSG4udXBkYXRlV2l0aD1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6aSxudWxsPT1lP2U6ZmkoZSx0LEVpKG4pLHIpfSxIbi52YWx1ZXM9R3MsSG4udmFsdWVzSW49ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/W106UXQoZSxCcyhlKSl9LEhuLndpdGhvdXQ9Y2EsSG4ud29yZHM9JHMsSG4ud3JhcD1mdW5jdGlvbihlLHQpe3JldHVybiBVYShFaSh0KSxlKX0sSG4ueG9yPXVhLEhuLnhvckJ5PWxhLEhuLnhvcldpdGg9ZGEsSG4uemlwPXBhLEhuLnppcE9iamVjdD1mdW5jdGlvbihlLHQpe3JldHVybiB2aShlfHxbXSx0fHxbXSxucil9LEhuLnppcE9iamVjdERlZXA9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdmkoZXx8W10sdHx8W10sZWkpfSxIbi56aXBXaXRoPWZhLEhuLmVudHJpZXM9RnMsSG4uZW50cmllc0luPUhzLEhuLmV4dGVuZD15cyxIbi5leHRlbmRXaXRoPVRzLHVjKEhuLEhuKSxIbi5hZGQ9RWMsSG4uYXR0ZW1wdD1lYyxIbi5jYW1lbENhc2U9V3MsSG4uY2FwaXRhbGl6ZT1WcyxIbi5jZWlsPWJjLEhuLmNsYW1wPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj09PWkmJihuPXQsdD1pKSxuIT09aSYmKG49KG49X3MobikpPT09bj9uOjApLHQhPT1pJiYodD0odD1fcyh0KSk9PT10P3Q6MCksY3IoX3MoZSksdCxuKX0sSG4uY2xvbmU9ZnVuY3Rpb24oZSl7cmV0dXJuIHVyKGUsNCl9LEhuLmNsb25lRGVlcD1mdW5jdGlvbihlKXtyZXR1cm4gdXIoZSw1KX0sSG4uY2xvbmVEZWVwV2l0aD1mdW5jdGlvbihlLHQpe3JldHVybiB1cihlLDUsdD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6aSl9LEhuLmNsb25lV2l0aD1mdW5jdGlvbihlLHQpe3JldHVybiB1cihlLDQsdD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6aSl9LEhuLmNvbmZvcm1zVG89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09dHx8bHIoZSx0LExzKHQpKX0sSG4uZGVidXJyPXpzLEhuLmRlZmF1bHRUbz1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lfHxlIT09ZT90OmV9LEhuLmRpdmlkZT1TYyxIbi5lbmRzV2l0aD1mdW5jdGlvbihlLHQsbil7ZT1icyhlKSx0PWxpKHQpO3ZhciByPWUubGVuZ3RoLG89bj1uPT09aT9yOmNyKG1zKG4pLDAscik7cmV0dXJuKG4tPXQubGVuZ3RoKT49MCYmZS5zbGljZShuLG8pPT10fSxIbi5lcT1HYSxIbi5lc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9YnMoZSkpJiZYLnRlc3QoZSk/ZS5yZXBsYWNlKFosb24pOmV9LEhuLmVzY2FwZVJlZ0V4cD1mdW5jdGlvbihlKXtyZXR1cm4oZT1icyhlKSkmJm9lLnRlc3QoZSk/ZS5yZXBsYWNlKGllLFwiXFxcXCQmXCIpOmV9LEhuLmV2ZXJ5PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1LYShlKT9rdDpncjtyZXR1cm4gbiYmU28oZSx0LG4pJiYodD1pKSxyKGUsdW8odCwzKSl9LEhuLmZpbmQ9X2EsSG4uZmluZEluZGV4PXpvLEhuLmZpbmRLZXk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVXQoZSx1byh0LDMpLFNyKX0sSG4uZmluZExhc3Q9RWEsSG4uZmluZExhc3RJbmRleD1LbyxIbi5maW5kTGFzdEtleT1mdW5jdGlvbihlLHQpe3JldHVybiBVdChlLHVvKHQsMykseXIpfSxIbi5mbG9vcj15YyxIbi5mb3JFYWNoPWJhLEhuLmZvckVhY2hSaWdodD1TYSxIbi5mb3JJbj1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lP2U6RXIoZSx1byh0LDMpLEJzKX0sSG4uZm9ySW5SaWdodD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lP2U6YnIoZSx1byh0LDMpLEJzKX0sSG4uZm9yT3duPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJlNyKGUsdW8odCwzKSl9LEhuLmZvck93blJpZ2h0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJnlyKGUsdW8odCwzKSl9LEhuLmdldD1OcyxIbi5ndD1XYSxIbi5ndGU9VmEsSG4uaGFzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGwhPWUmJnZvKGUsdCxOcil9LEhuLmhhc0luPWtzLEhuLmhlYWQ9cW8sSG4uaWRlbnRpdHk9b2MsSG4uaW5jbHVkZXM9ZnVuY3Rpb24oZSx0LG4scil7ZT1xYShlKT9lOkdzKGUpLG49biYmIXI/bXMobik6MDt2YXIgaT1lLmxlbmd0aDtyZXR1cm4gbjwwJiYobj1FbihpK24sMCkpLHVzKGUpP248PWkmJmUuaW5kZXhPZih0LG4pPi0xOiEhaSYmSHQoZSx0LG4pPi0xfSxIbi5pbmRleE9mPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7aWYoIXIpcmV0dXJuLTE7dmFyIGk9bnVsbD09bj8wOm1zKG4pO3JldHVybiBpPDAmJihpPUVuKHIraSwwKSksSHQoZSx0LGkpfSxIbi5pblJhbmdlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdD1ncyh0KSxuPT09aT8obj10LHQ9MCk6bj1ncyhuKSxmdW5jdGlvbihlLHQsbil7cmV0dXJuIGU+PWJuKHQsbikmJmU8RW4odCxuKX0oZT1fcyhlKSx0LG4pfSxIbi5pbnZva2U9d3MsSG4uaXNBcmd1bWVudHM9emEsSG4uaXNBcnJheT1LYSxIbi5pc0FycmF5QnVmZmVyPVlhLEhuLmlzQXJyYXlMaWtlPXFhLEhuLmlzQXJyYXlMaWtlT2JqZWN0PVphLEhuLmlzQm9vbGVhbj1mdW5jdGlvbihlKXtyZXR1cm4hMD09PWV8fCExPT09ZXx8cnMoZSkmJkFyKGUpPT1ifSxIbi5pc0J1ZmZlcj1KYSxIbi5pc0RhdGU9WGEsSG4uaXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBycyhlKSYmMT09PWUubm9kZVR5cGUmJiFhcyhlKX0sSG4uaXNFbXB0eT1mdW5jdGlvbihlKXtpZihudWxsPT1lKXJldHVybiEwO2lmKHFhKGUpJiYoS2EoZSl8fFwic3RyaW5nXCI9PXR5cGVvZiBlfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnNwbGljZXx8SmEoZSl8fGRzKGUpfHx6YShlKSkpcmV0dXJuIWUubGVuZ3RoO3ZhciB0PW1vKGUpO2lmKHQ9PU98fHQ9PVApcmV0dXJuIWUuc2l6ZTtpZihPbyhlKSlyZXR1cm4hanIoZSkubGVuZ3RoO2Zvcih2YXIgbiBpbiBlKWlmKE1lLmNhbGwoZSxuKSlyZXR1cm4hMTtyZXR1cm4hMH0sSG4uaXNFcXVhbD1mdW5jdGlvbihlLHQpe3JldHVybiBMcihlLHQpfSxIbi5pc0VxdWFsV2l0aD1mdW5jdGlvbihlLHQsbil7dmFyIHI9KG49XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmkpP24oZSx0KTppO3JldHVybiByPT09aT9McihlLHQsaSxuKTohIXJ9LEhuLmlzRXJyb3I9UWEsSG4uaXNGaW5pdGU9ZnVuY3Rpb24oZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGUmJnh0KGUpfSxIbi5pc0Z1bmN0aW9uPSRhLEhuLmlzSW50ZWdlcj1lcyxIbi5pc0xlbmd0aD10cyxIbi5pc01hcD1pcyxIbi5pc01hdGNoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10fHxCcihlLHQscG8odCkpfSxIbi5pc01hdGNoV2l0aD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG49XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmksQnIoZSx0LHBvKHQpLG4pfSxIbi5pc05hTj1mdW5jdGlvbihlKXtyZXR1cm4gb3MoZSkmJmUhPStlfSxIbi5pc05hdGl2ZT1mdW5jdGlvbihlKXtpZihJbyhlKSl0aHJvdyBuZXcgc2UoXCJVbnN1cHBvcnRlZCBjb3JlLWpzIHVzZS4gVHJ5IGh0dHBzOi8vbnBtcy5pby9zZWFyY2g/cT1wb255ZmlsbC5cIik7cmV0dXJuIE1yKGUpfSxIbi5pc05pbD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZX0sSG4uaXNOdWxsPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZX0sSG4uaXNOdW1iZXI9b3MsSG4uaXNPYmplY3Q9bnMsSG4uaXNPYmplY3RMaWtlPXJzLEhuLmlzUGxhaW5PYmplY3Q9YXMsSG4uaXNSZWdFeHA9c3MsSG4uaXNTYWZlSW50ZWdlcj1mdW5jdGlvbihlKXtyZXR1cm4gZXMoZSkmJmU+PS05MDA3MTk5MjU0NzQwOTkxJiZlPD1ofSxIbi5pc1NldD1jcyxIbi5pc1N0cmluZz11cyxIbi5pc1N5bWJvbD1scyxIbi5pc1R5cGVkQXJyYXk9ZHMsSG4uaXNVbmRlZmluZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1pfSxIbi5pc1dlYWtNYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIHJzKGUpJiZtbyhlKT09TH0sSG4uaXNXZWFrU2V0PWZ1bmN0aW9uKGUpe3JldHVybiBycyhlKSYmXCJbb2JqZWN0IFdlYWtTZXRdXCI9PUFyKGUpfSxIbi5qb2luPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/XCJcIjpLdC5jYWxsKGUsdCl9LEhuLmtlYmFiQ2FzZT1LcyxIbi5sYXN0PVFvLEhuLmxhc3RJbmRleE9mPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1udWxsPT1lPzA6ZS5sZW5ndGg7aWYoIXIpcmV0dXJuLTE7dmFyIG89cjtyZXR1cm4gbiE9PWkmJihvPShvPW1zKG4pKTwwP0VuKHIrbywwKTpibihvLHItMSkpLHQ9PT10P2Z1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bisxO3ItLTspaWYoZVtyXT09PXQpcmV0dXJuIHI7cmV0dXJuIHJ9KGUsdCxvKTpGdChlLFd0LG8sITApfSxIbi5sb3dlckNhc2U9WXMsSG4ubG93ZXJGaXJzdD1xcyxIbi5sdD1wcyxIbi5sdGU9ZnMsSG4ubWF4PWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aD9tcihlLG9jLENyKTppfSxIbi5tYXhCeT1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZlLmxlbmd0aD9tcihlLHVvKHQsMiksQ3IpOml9LEhuLm1lYW49ZnVuY3Rpb24oZSl7cmV0dXJuIFZ0KGUsb2MpfSxIbi5tZWFuQnk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVnQoZSx1byh0LDIpKX0sSG4ubWluPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aD9tcihlLG9jLFVyKTppfSxIbi5taW5CeT1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZlLmxlbmd0aD9tcihlLHVvKHQsMiksVXIpOml9LEhuLnN0dWJBcnJheT12YyxIbi5zdHViRmFsc2U9X2MsSG4uc3R1Yk9iamVjdD1mdW5jdGlvbigpe3JldHVybnt9fSxIbi5zdHViU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJcIn0sSG4uc3R1YlRydWU9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sSG4ubXVsdGlwbHk9VGMsSG4ubnRoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJmUubGVuZ3RoP1ZyKGUsbXModCkpOml9LEhuLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gZnQuXz09PXRoaXMmJihmdC5fPUZlKSx0aGlzfSxIbi5ub29wPWxjLEhuLm5vdz1OYSxIbi5wYWQ9ZnVuY3Rpb24oZSx0LG4pe2U9YnMoZSk7dmFyIHI9KHQ9bXModCkpP2ZuKGUpOjA7aWYoIXR8fHI+PXQpcmV0dXJuIGU7dmFyIGk9KHQtcikvMjtyZXR1cm4gemkoZ3QoaSksbikrZSt6aShodChpKSxuKX0sSG4ucGFkRW5kPWZ1bmN0aW9uKGUsdCxuKXtlPWJzKGUpO3ZhciByPSh0PW1zKHQpKT9mbihlKTowO3JldHVybiB0JiZyPHQ/ZSt6aSh0LXIsbik6ZX0sSG4ucGFkU3RhcnQ9ZnVuY3Rpb24oZSx0LG4pe2U9YnMoZSk7dmFyIHI9KHQ9bXModCkpP2ZuKGUpOjA7cmV0dXJuIHQmJnI8dD96aSh0LXIsbikrZTplfSxIbi5wYXJzZUludD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG58fG51bGw9PXQ/dD0wOnQmJih0PSt0KSx5bihicyhlKS5yZXBsYWNlKGFlLFwiXCIpLHR8fDApfSxIbi5yYW5kb209ZnVuY3Rpb24oZSx0LG4pe2lmKG4mJlwiYm9vbGVhblwiIT10eXBlb2YgbiYmU28oZSx0LG4pJiYodD1uPWkpLG49PT1pJiYoXCJib29sZWFuXCI9PXR5cGVvZiB0PyhuPXQsdD1pKTpcImJvb2xlYW5cIj09dHlwZW9mIGUmJihuPWUsZT1pKSksZT09PWkmJnQ9PT1pPyhlPTAsdD0xKTooZT1ncyhlKSx0PT09aT8odD1lLGU9MCk6dD1ncyh0KSksZT50KXt2YXIgcj1lO2U9dCx0PXJ9aWYobnx8ZSUxfHx0JTEpe3ZhciBvPVRuKCk7cmV0dXJuIGJuKGUrbyoodC1lK3V0KFwiMWUtXCIrKChvK1wiXCIpLmxlbmd0aC0xKSkpLHQpfXJldHVybiBacihlLHQpfSxIbi5yZWR1Y2U9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPUthKGUpP010Oll0LGk9YXJndW1lbnRzLmxlbmd0aDwzO3JldHVybiByKGUsdW8odCw0KSxuLGksZnIpfSxIbi5yZWR1Y2VSaWdodD1mdW5jdGlvbihlLHQsbil7dmFyIHI9S2EoZSk/RHQ6WXQsaT1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIHIoZSx1byh0LDQpLG4saSxocil9LEhuLnJlcGVhdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHQ9KG4/U28oZSx0LG4pOnQ9PT1pKT8xOm1zKHQpLEpyKGJzKGUpLHQpfSxIbi5yZXBsYWNlPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLHQ9YnMoZVswXSk7cmV0dXJuIGUubGVuZ3RoPDM/dDp0LnJlcGxhY2UoZVsxXSxlWzJdKX0sSG4ucmVzdWx0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0tMSxvPSh0PWJpKHQsZSkpLmxlbmd0aDtmb3Iob3x8KG89MSxlPWkpOysrcjxvOyl7dmFyIGE9bnVsbD09ZT9pOmVbVW8odFtyXSldO2E9PT1pJiYocj1vLGE9biksZT0kYShhKT9hLmNhbGwoZSk6YX1yZXR1cm4gZX0sSG4ucm91bmQ9SWMsSG4ucnVuSW5Db250ZXh0PWUsSG4uc2FtcGxlPWZ1bmN0aW9uKGUpe3JldHVybihLYShlKT9RbjpRcikoZSl9LEhuLnNpemU9ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSlyZXR1cm4gMDtpZihxYShlKSlyZXR1cm4gdXMoZSk/Zm4oZSk6ZS5sZW5ndGg7dmFyIHQ9bW8oZSk7cmV0dXJuIHQ9PU98fHQ9PVA/ZS5zaXplOmpyKGUpLmxlbmd0aH0sSG4uc25ha2VDYXNlPVpzLEhuLnNvbWU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPUthKGUpP2p0Om9pO3JldHVybiBuJiZTbyhlLHQsbikmJih0PWkpLHIoZSx1byh0LDMpKX0sSG4uc29ydGVkSW5kZXg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYWkoZSx0KX0sSG4uc29ydGVkSW5kZXhCeT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHNpKGUsdCx1byhuLDIpKX0sSG4uc29ydGVkSW5kZXhPZj1mdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/MDplLmxlbmd0aDtpZihuKXt2YXIgcj1haShlLHQpO2lmKHI8biYmR2EoZVtyXSx0KSlyZXR1cm4gcn1yZXR1cm4tMX0sSG4uc29ydGVkTGFzdEluZGV4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFpKGUsdCwhMCl9LEhuLnNvcnRlZExhc3RJbmRleEJ5PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gc2koZSx0LHVvKG4sMiksITApfSxIbi5zb3J0ZWRMYXN0SW5kZXhPZj1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWU/MDplLmxlbmd0aCl7dmFyIG49YWkoZSx0LCEwKS0xO2lmKEdhKGVbbl0sdCkpcmV0dXJuIG59cmV0dXJuLTF9LEhuLnN0YXJ0Q2FzZT1KcyxIbi5zdGFydHNXaXRoPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT1icyhlKSxuPW51bGw9PW4/MDpjcihtcyhuKSwwLGUubGVuZ3RoKSx0PWxpKHQpLGUuc2xpY2UobixuK3QubGVuZ3RoKT09dH0sSG4uc3VidHJhY3Q9T2MsSG4uc3VtPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLmxlbmd0aD9xdChlLG9jKTowfSxIbi5zdW1CeT1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZlLmxlbmd0aD9xdChlLHVvKHQsMikpOjB9LEhuLnRlbXBsYXRlPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1Ibi50ZW1wbGF0ZVNldHRpbmdzO24mJlNvKGUsdCxuKSYmKHQ9aSksZT1icyhlKSx0PVRzKHt9LHQsciwkaSk7dmFyIG8sYSxzPVRzKHt9LHQuaW1wb3J0cyxyLmltcG9ydHMsJGkpLGM9THMocyksdT1RdChzLGMpLGw9MCxkPXQuaW50ZXJwb2xhdGV8fHllLHA9XCJfX3AgKz0gJ1wiLGY9Q2UoKHQuZXNjYXBlfHx5ZSkuc291cmNlK1wifFwiK2Quc291cmNlK1wifFwiKyhkPT09ZWU/aGU6eWUpLnNvdXJjZStcInxcIisodC5ldmFsdWF0ZXx8eWUpLnNvdXJjZStcInwkXCIsXCJnXCIpLGg9XCIvLyMgc291cmNlVVJMPVwiKyhNZS5jYWxsKHQsXCJzb3VyY2VVUkxcIik/KHQuc291cmNlVVJMK1wiXCIpLnJlcGxhY2UoL1xccy9nLFwiIFwiKTpcImxvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbXCIrICsrb3QrXCJdXCIpK1wiXFxuXCI7ZS5yZXBsYWNlKGYsKGZ1bmN0aW9uKHQsbixyLGkscyxjKXtyZXR1cm4gcnx8KHI9aSkscCs9ZS5zbGljZShsLGMpLnJlcGxhY2UoVGUsYW4pLG4mJihvPSEwLHArPVwiJyArXFxuX19lKFwiK24rXCIpICtcXG4nXCIpLHMmJihhPSEwLHArPVwiJztcXG5cIitzK1wiO1xcbl9fcCArPSAnXCIpLHImJihwKz1cIicgK1xcbigoX190ID0gKFwiK3IrXCIpKSA9PSBudWxsID8gJycgOiBfX3QpICtcXG4nXCIpLGw9Yyt0Lmxlbmd0aCx0fSkpLHArPVwiJztcXG5cIjt2YXIgZz1NZS5jYWxsKHQsXCJ2YXJpYWJsZVwiKSYmdC52YXJpYWJsZTtpZihnKXtpZihwZS50ZXN0KGcpKXRocm93IG5ldyBzZShcIkludmFsaWQgYHZhcmlhYmxlYCBvcHRpb24gcGFzc2VkIGludG8gYF8udGVtcGxhdGVgXCIpfWVsc2UgcD1cIndpdGggKG9iaikge1xcblwiK3ArXCJcXG59XFxuXCI7cD0oYT9wLnJlcGxhY2UoeixcIlwiKTpwKS5yZXBsYWNlKEssXCIkMVwiKS5yZXBsYWNlKFksXCIkMTtcIikscD1cImZ1bmN0aW9uKFwiKyhnfHxcIm9ialwiKStcIikge1xcblwiKyhnP1wiXCI6XCJvYmogfHwgKG9iaiA9IHt9KTtcXG5cIikrXCJ2YXIgX190LCBfX3AgPSAnJ1wiKyhvP1wiLCBfX2UgPSBfLmVzY2FwZVwiOlwiXCIpKyhhP1wiLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcXG5mdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIjpcIjtcXG5cIikrcCtcInJldHVybiBfX3BcXG59XCI7dmFyIG09ZWMoKGZ1bmN0aW9uKCl7cmV0dXJuIEllKGMsaCtcInJldHVybiBcIitwKS5hcHBseShpLHUpfSkpO2lmKG0uc291cmNlPXAsUWEobSkpdGhyb3cgbTtyZXR1cm4gbX0sSG4udGltZXM9ZnVuY3Rpb24oZSx0KXtpZigoZT1tcyhlKSk8MXx8ZT5oKXJldHVybltdO3ZhciBuPW0scj1ibihlLG0pO3Q9dW8odCksZS09bTtmb3IodmFyIGk9WnQocix0KTsrK248ZTspdChuKTtyZXR1cm4gaX0sSG4udG9GaW5pdGU9Z3MsSG4udG9JbnRlZ2VyPW1zLEhuLnRvTGVuZ3RoPXZzLEhuLnRvTG93ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGJzKGUpLnRvTG93ZXJDYXNlKCl9LEhuLnRvTnVtYmVyPV9zLEhuLnRvU2FmZUludGVnZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/Y3IobXMoZSksLTkwMDcxOTkyNTQ3NDA5OTEsaCk6MD09PWU/ZTowfSxIbi50b1N0cmluZz1icyxIbi50b1VwcGVyPWZ1bmN0aW9uKGUpe3JldHVybiBicyhlKS50b1VwcGVyQ2FzZSgpfSxIbi50cmltPWZ1bmN0aW9uKGUsdCxuKXtpZigoZT1icyhlKSkmJihufHx0PT09aSkpcmV0dXJuIEp0KGUpO2lmKCFlfHwhKHQ9bGkodCkpKXJldHVybiBlO3ZhciByPWhuKGUpLG89aG4odCk7cmV0dXJuIHlpKHIsZW4ocixvKSx0bihyLG8pKzEpLmpvaW4oXCJcIil9LEhuLnRyaW1FbmQ9ZnVuY3Rpb24oZSx0LG4pe2lmKChlPWJzKGUpKSYmKG58fHQ9PT1pKSlyZXR1cm4gZS5zbGljZSgwLGduKGUpKzEpO2lmKCFlfHwhKHQ9bGkodCkpKXJldHVybiBlO3ZhciByPWhuKGUpO3JldHVybiB5aShyLDAsdG4ocixobih0KSkrMSkuam9pbihcIlwiKX0sSG4udHJpbVN0YXJ0PWZ1bmN0aW9uKGUsdCxuKXtpZigoZT1icyhlKSkmJihufHx0PT09aSkpcmV0dXJuIGUucmVwbGFjZShhZSxcIlwiKTtpZighZXx8ISh0PWxpKHQpKSlyZXR1cm4gZTt2YXIgcj1obihlKTtyZXR1cm4geWkocixlbihyLGhuKHQpKSkuam9pbihcIlwiKX0sSG4udHJ1bmNhdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj0zMCxyPVwiLi4uXCI7aWYobnModCkpe3ZhciBvPVwic2VwYXJhdG9yXCJpbiB0P3Quc2VwYXJhdG9yOm87bj1cImxlbmd0aFwiaW4gdD9tcyh0Lmxlbmd0aCk6bixyPVwib21pc3Npb25cImluIHQ/bGkodC5vbWlzc2lvbik6cn12YXIgYT0oZT1icyhlKSkubGVuZ3RoO2lmKHNuKGUpKXt2YXIgcz1obihlKTthPXMubGVuZ3RofWlmKG4+PWEpcmV0dXJuIGU7dmFyIGM9bi1mbihyKTtpZihjPDEpcmV0dXJuIHI7dmFyIHU9cz95aShzLDAsYykuam9pbihcIlwiKTplLnNsaWNlKDAsYyk7aWYobz09PWkpcmV0dXJuIHUrcjtpZihzJiYoYys9dS5sZW5ndGgtYyksc3Mobykpe2lmKGUuc2xpY2UoYykuc2VhcmNoKG8pKXt2YXIgbCxkPXU7Zm9yKG8uZ2xvYmFsfHwobz1DZShvLnNvdXJjZSxicyhnZS5leGVjKG8pKStcImdcIikpLG8ubGFzdEluZGV4PTA7bD1vLmV4ZWMoZCk7KXZhciBwPWwuaW5kZXg7dT11LnNsaWNlKDAscD09PWk/YzpwKX19ZWxzZSBpZihlLmluZGV4T2YobGkobyksYykhPWMpe3ZhciBmPXUubGFzdEluZGV4T2Yobyk7Zj4tMSYmKHU9dS5zbGljZSgwLGYpKX1yZXR1cm4gdStyfSxIbi51bmVzY2FwZT1mdW5jdGlvbihlKXtyZXR1cm4oZT1icyhlKSkmJkoudGVzdChlKT9lLnJlcGxhY2UocSxtbik6ZX0sSG4udW5pcXVlSWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9KytEZTtyZXR1cm4gYnMoZSkrdH0sSG4udXBwZXJDYXNlPVhzLEhuLnVwcGVyRmlyc3Q9UXMsSG4uZWFjaD1iYSxIbi5lYWNoUmlnaHQ9U2EsSG4uZmlyc3Q9cW8sdWMoSG4sZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gU3IoSG4sKGZ1bmN0aW9uKHQsbil7TWUuY2FsbChIbi5wcm90b3R5cGUsbil8fChlW25dPXQpfSkpLGV9KCkse2NoYWluOiExfSksSG4uVkVSU0lPTj1cIjQuMTcuMjFcIixDdChbXCJiaW5kXCIsXCJiaW5kS2V5XCIsXCJjdXJyeVwiLFwiY3VycnlSaWdodFwiLFwicGFydGlhbFwiLFwicGFydGlhbFJpZ2h0XCJdLChmdW5jdGlvbihlKXtIbltlXS5wbGFjZWhvbGRlcj1Ibn0pKSxDdChbXCJkcm9wXCIsXCJ0YWtlXCJdLChmdW5jdGlvbihlLHQpe3puLnByb3RvdHlwZVtlXT1mdW5jdGlvbihuKXtuPW49PT1pPzE6RW4obXMobiksMCk7dmFyIHI9dGhpcy5fX2ZpbHRlcmVkX18mJiF0P25ldyB6bih0aGlzKTp0aGlzLmNsb25lKCk7cmV0dXJuIHIuX19maWx0ZXJlZF9fP3IuX190YWtlQ291bnRfXz1ibihuLHIuX190YWtlQ291bnRfXyk6ci5fX3ZpZXdzX18ucHVzaCh7c2l6ZTpibihuLG0pLHR5cGU6ZSsoci5fX2Rpcl9fPDA/XCJSaWdodFwiOlwiXCIpfSkscn0sem4ucHJvdG90eXBlW2UrXCJSaWdodFwiXT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXZlcnNlKClbZV0odCkucmV2ZXJzZSgpfX0pKSxDdChbXCJmaWx0ZXJcIixcIm1hcFwiLFwidGFrZVdoaWxlXCJdLChmdW5jdGlvbihlLHQpe3ZhciBuPXQrMSxyPTE9PW58fDM9PW47em4ucHJvdG90eXBlW2VdPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY2xvbmUoKTtyZXR1cm4gdC5fX2l0ZXJhdGVlc19fLnB1c2goe2l0ZXJhdGVlOnVvKGUsMyksdHlwZTpufSksdC5fX2ZpbHRlcmVkX189dC5fX2ZpbHRlcmVkX198fHIsdH19KSksQ3QoW1wiaGVhZFwiLFwibGFzdFwiXSwoZnVuY3Rpb24oZSx0KXt2YXIgbj1cInRha2VcIisodD9cIlJpZ2h0XCI6XCJcIik7em4ucHJvdG90eXBlW2VdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbbl0oMSkudmFsdWUoKVswXX19KSksQ3QoW1wiaW5pdGlhbFwiLFwidGFpbFwiXSwoZnVuY3Rpb24oZSx0KXt2YXIgbj1cImRyb3BcIisodD9cIlwiOlwiUmlnaHRcIik7em4ucHJvdG90eXBlW2VdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19maWx0ZXJlZF9fP25ldyB6bih0aGlzKTp0aGlzW25dKDEpfX0pKSx6bi5wcm90b3R5cGUuY29tcGFjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihvYyl9LHpuLnByb3RvdHlwZS5maW5kPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZpbHRlcihlKS5oZWFkKCl9LHpuLnByb3RvdHlwZS5maW5kTGFzdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZXZlcnNlKCkuZmluZChlKX0sem4ucHJvdG90eXBlLmludm9rZU1hcD1YcigoZnVuY3Rpb24oZSx0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP25ldyB6bih0aGlzKTp0aGlzLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIFJyKG4sZSx0KX0pKX0pKSx6bi5wcm90b3R5cGUucmVqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmZpbHRlcihqYSh1byhlKSkpfSx6bi5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24oZSx0KXtlPW1zKGUpO3ZhciBuPXRoaXM7cmV0dXJuIG4uX19maWx0ZXJlZF9fJiYoZT4wfHx0PDApP25ldyB6bihuKTooZTwwP249bi50YWtlUmlnaHQoLWUpOmUmJihuPW4uZHJvcChlKSksdCE9PWkmJihuPSh0PW1zKHQpKTwwP24uZHJvcFJpZ2h0KC10KTpuLnRha2UodC1lKSksbil9LHpuLnByb3RvdHlwZS50YWtlUmlnaHRXaGlsZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZXZlcnNlKCkudGFrZVdoaWxlKGUpLnJldmVyc2UoKX0sem4ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWtlKG0pfSxTcih6bi5wcm90b3R5cGUsKGZ1bmN0aW9uKGUsdCl7dmFyIG49L14oPzpmaWx0ZXJ8ZmluZHxtYXB8cmVqZWN0KXxXaGlsZSQvLnRlc3QodCkscj0vXig/OmhlYWR8bGFzdCkkLy50ZXN0KHQpLG89SG5bcj9cInRha2VcIisoXCJsYXN0XCI9PXQ/XCJSaWdodFwiOlwiXCIpOnRdLGE9cnx8L15maW5kLy50ZXN0KHQpO28mJihIbi5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9fd3JhcHBlZF9fLHM9cj9bMV06YXJndW1lbnRzLGM9dCBpbnN0YW5jZW9mIHpuLHU9c1swXSxsPWN8fEthKHQpLGQ9ZnVuY3Rpb24oZSl7dmFyIHQ9by5hcHBseShIbixCdChbZV0scykpO3JldHVybiByJiZwP3RbMF06dH07bCYmbiYmXCJmdW5jdGlvblwiPT10eXBlb2YgdSYmMSE9dS5sZW5ndGgmJihjPWw9ITEpO3ZhciBwPXRoaXMuX19jaGFpbl9fLGY9ISF0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCxoPWEmJiFwLGc9YyYmIWY7aWYoIWEmJmwpe3Q9Zz90Om5ldyB6bih0aGlzKTt2YXIgbT1lLmFwcGx5KHQscyk7cmV0dXJuIG0uX19hY3Rpb25zX18ucHVzaCh7ZnVuYzpnYSxhcmdzOltkXSx0aGlzQXJnOml9KSxuZXcgVm4obSxwKX1yZXR1cm4gaCYmZz9lLmFwcGx5KHRoaXMscyk6KG09dGhpcy50aHJ1KGQpLGg/cj9tLnZhbHVlKClbMF06bS52YWx1ZSgpOm0pfSl9KSksQ3QoW1wicG9wXCIsXCJwdXNoXCIsXCJzaGlmdFwiLFwic29ydFwiLFwic3BsaWNlXCIsXCJ1bnNoaWZ0XCJdLChmdW5jdGlvbihlKXt2YXIgdD1QZVtlXSxuPS9eKD86cHVzaHxzb3J0fHVuc2hpZnQpJC8udGVzdChlKT9cInRhcFwiOlwidGhydVwiLHI9L14oPzpwb3B8c2hpZnQpJC8udGVzdChlKTtIbi5wcm90b3R5cGVbZV09ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHM7aWYociYmIXRoaXMuX19jaGFpbl9fKXt2YXIgaT10aGlzLnZhbHVlKCk7cmV0dXJuIHQuYXBwbHkoS2EoaSk/aTpbXSxlKX1yZXR1cm4gdGhpc1tuXSgoZnVuY3Rpb24obil7cmV0dXJuIHQuYXBwbHkoS2Eobik/bjpbXSxlKX0pKX19KSksU3Ioem4ucHJvdG90eXBlLChmdW5jdGlvbihlLHQpe3ZhciBuPUhuW3RdO2lmKG4pe3ZhciByPW4ubmFtZStcIlwiO01lLmNhbGwod24scil8fCh3bltyXT1bXSksd25bcl0ucHVzaCh7bmFtZTp0LGZ1bmM6bn0pfX0pKSx3bltIaShpLDIpLm5hbWVdPVt7bmFtZTpcIndyYXBwZXJcIixmdW5jOml9XSx6bi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgem4odGhpcy5fX3dyYXBwZWRfXyk7cmV0dXJuIGUuX19hY3Rpb25zX189UGkodGhpcy5fX2FjdGlvbnNfXyksZS5fX2Rpcl9fPXRoaXMuX19kaXJfXyxlLl9fZmlsdGVyZWRfXz10aGlzLl9fZmlsdGVyZWRfXyxlLl9faXRlcmF0ZWVzX189UGkodGhpcy5fX2l0ZXJhdGVlc19fKSxlLl9fdGFrZUNvdW50X189dGhpcy5fX3Rha2VDb3VudF9fLGUuX192aWV3c19fPVBpKHRoaXMuX192aWV3c19fKSxlfSx6bi5wcm90b3R5cGUucmV2ZXJzZT1mdW5jdGlvbigpe2lmKHRoaXMuX19maWx0ZXJlZF9fKXt2YXIgZT1uZXcgem4odGhpcyk7ZS5fX2Rpcl9fPS0xLGUuX19maWx0ZXJlZF9fPSEwfWVsc2UoZT10aGlzLmNsb25lKCkpLl9fZGlyX18qPS0xO3JldHVybiBlfSx6bi5wcm90b3R5cGUudmFsdWU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fd3JhcHBlZF9fLnZhbHVlKCksdD10aGlzLl9fZGlyX18sbj1LYShlKSxyPXQ8MCxpPW4/ZS5sZW5ndGg6MCxvPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0tMSxpPW4ubGVuZ3RoO2Zvcig7KytyPGk7KXt2YXIgbz1uW3JdLGE9by5zaXplO3N3aXRjaChvLnR5cGUpe2Nhc2VcImRyb3BcIjplKz1hO2JyZWFrO2Nhc2VcImRyb3BSaWdodFwiOnQtPWE7YnJlYWs7Y2FzZVwidGFrZVwiOnQ9Ym4odCxlK2EpO2JyZWFrO2Nhc2VcInRha2VSaWdodFwiOmU9RW4oZSx0LWEpfX1yZXR1cm57c3RhcnQ6ZSxlbmQ6dH19KDAsaSx0aGlzLl9fdmlld3NfXyksYT1vLnN0YXJ0LHM9by5lbmQsYz1zLWEsdT1yP3M6YS0xLGw9dGhpcy5fX2l0ZXJhdGVlc19fLGQ9bC5sZW5ndGgscD0wLGY9Ym4oYyx0aGlzLl9fdGFrZUNvdW50X18pO2lmKCFufHwhciYmaT09YyYmZj09YylyZXR1cm4gZ2koZSx0aGlzLl9fYWN0aW9uc19fKTt2YXIgaD1bXTtlOmZvcig7Yy0tJiZwPGY7KXtmb3IodmFyIGc9LTEsbT1lW3UrPXRdOysrZzxkOyl7dmFyIHY9bFtnXSxfPXYuaXRlcmF0ZWUsRT12LnR5cGUsYj1fKG0pO2lmKDI9PUUpbT1iO2Vsc2UgaWYoIWIpe2lmKDE9PUUpY29udGludWUgZTticmVhayBlfX1oW3ArK109bX1yZXR1cm4gaH0sSG4ucHJvdG90eXBlLmF0PW1hLEhuLnByb3RvdHlwZS5jaGFpbj1mdW5jdGlvbigpe3JldHVybiBoYSh0aGlzKX0sSG4ucHJvdG90eXBlLmNvbW1pdD1mdW5jdGlvbigpe3JldHVybiBuZXcgVm4odGhpcy52YWx1ZSgpLHRoaXMuX19jaGFpbl9fKX0sSG4ucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXt0aGlzLl9fdmFsdWVzX189PT1pJiYodGhpcy5fX3ZhbHVlc19fPWhzKHRoaXMudmFsdWUoKSkpO3ZhciBlPXRoaXMuX19pbmRleF9fPj10aGlzLl9fdmFsdWVzX18ubGVuZ3RoO3JldHVybntkb25lOmUsdmFsdWU6ZT9pOnRoaXMuX192YWx1ZXNfX1t0aGlzLl9faW5kZXhfXysrXX19LEhuLnByb3RvdHlwZS5wbGFudD1mdW5jdGlvbihlKXtmb3IodmFyIHQsbj10aGlzO24gaW5zdGFuY2VvZiBXbjspe3ZhciByPUhvKG4pO3IuX19pbmRleF9fPTAsci5fX3ZhbHVlc19fPWksdD9vLl9fd3JhcHBlZF9fPXI6dD1yO3ZhciBvPXI7bj1uLl9fd3JhcHBlZF9ffXJldHVybiBvLl9fd3JhcHBlZF9fPWUsdH0sSG4ucHJvdG90eXBlLnJldmVyc2U9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9fd3JhcHBlZF9fO2lmKGUgaW5zdGFuY2VvZiB6bil7dmFyIHQ9ZTtyZXR1cm4gdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgmJih0PW5ldyB6bih0aGlzKSksKHQ9dC5yZXZlcnNlKCkpLl9fYWN0aW9uc19fLnB1c2goe2Z1bmM6Z2EsYXJnczpbbmFdLHRoaXNBcmc6aX0pLG5ldyBWbih0LHRoaXMuX19jaGFpbl9fKX1yZXR1cm4gdGhpcy50aHJ1KG5hKX0sSG4ucHJvdG90eXBlLnRvSlNPTj1Ibi5wcm90b3R5cGUudmFsdWVPZj1Ibi5wcm90b3R5cGUudmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gZ2kodGhpcy5fX3dyYXBwZWRfXyx0aGlzLl9fYWN0aW9uc19fKX0sSG4ucHJvdG90eXBlLmZpcnN0PUhuLnByb3RvdHlwZS5oZWFkLFhlJiYoSG4ucHJvdG90eXBlW1hlXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksSG59KCk7ZnQuXz12biwocj1mdW5jdGlvbigpe3JldHVybiB2bn0uY2FsbCh0LG4sdCxlKSk9PT1pfHwoZS5leHBvcnRzPXIpfS5jYWxsKHRoaXMpfSw3NzcxOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDU1NjM5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gci5EYXRlLm5vdygpfX0sMjM0OTM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMjMyNzkpLGk9bigxMzIxOCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbz0hMCxhPSEwO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgZnVuY3Rpb25cIik7cmV0dXJuIGkobikmJihvPVwibGVhZGluZ1wiaW4gbj8hIW4ubGVhZGluZzpvLGE9XCJ0cmFpbGluZ1wiaW4gbj8hIW4udHJhaWxpbmc6YSkscihlLHQse2xlYWRpbmc6byxtYXhXYWl0OnQsdHJhaWxpbmc6YX0pfX0sMTQ4NDE6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oMjc1NjEpLGk9bigxMzIxOCksbz1uKDMzNDQ4KSxhPS9eWy0rXTB4WzAtOWEtZl0rJC9pLHM9L14wYlswMV0rJC9pLGM9L14wb1swLTddKyQvaSx1PXBhcnNlSW50O2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihcIm51bWJlclwiPT10eXBlb2YgZSlyZXR1cm4gZTtpZihvKGUpKXJldHVybiBOYU47aWYoaShlKSl7dmFyIHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZS52YWx1ZU9mP2UudmFsdWVPZigpOmU7ZT1pKHQpP3QrXCJcIjp0fWlmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXJldHVybiAwPT09ZT9lOitlO2U9cihlKTt2YXIgbj1zLnRlc3QoZSk7cmV0dXJuIG58fGMudGVzdChlKT91KGUuc2xpY2UoMiksbj8yOjgpOmEudGVzdChlKT9OYU46K2V9fSwyMDQzOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpOyFmdW5jdGlvbihvLGEpe1widXNlIHN0cmljdFwiO3I9ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbigpe30sdD1cInVuZGVmaW5lZFwiLG49dHlwZW9mIHdpbmRvdyE9PXQmJnR5cGVvZiB3aW5kb3cubmF2aWdhdG9yIT09dCYmL1RyaWRlbnRcXC98TVNJRSAvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpLHI9W1widHJhY2VcIixcImRlYnVnXCIsXCJpbmZvXCIsXCJ3YXJuXCIsXCJlcnJvclwiXTtmdW5jdGlvbiBpKGUsdCl7dmFyIG49ZVt0XTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5iaW5kKXJldHVybiBuLmJpbmQoZSk7dHJ5e3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKG4sZSl9Y2F0Y2gocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5hcHBseShuLFtlLGFyZ3VtZW50c10pfX19ZnVuY3Rpb24gbygpe2NvbnNvbGUubG9nJiYoY29uc29sZS5sb2cuYXBwbHk/Y29uc29sZS5sb2cuYXBwbHkoY29uc29sZSxhcmd1bWVudHMpOkZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5hcHBseShjb25zb2xlLmxvZyxbY29uc29sZSxhcmd1bWVudHNdKSksY29uc29sZS50cmFjZSYmY29uc29sZS50cmFjZSgpfWZ1bmN0aW9uIGEocil7cmV0dXJuXCJkZWJ1Z1wiPT09ciYmKHI9XCJsb2dcIiksdHlwZW9mIGNvbnNvbGUhPT10JiYoXCJ0cmFjZVwiPT09ciYmbj9vOnZvaWQgMCE9PWNvbnNvbGVbcl0/aShjb25zb2xlLHIpOnZvaWQgMCE9PWNvbnNvbGUubG9nP2koY29uc29sZSxcImxvZ1wiKTplKX1mdW5jdGlvbiBzKHQsbil7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07dGhpc1tvXT1pPHQ/ZTp0aGlzLm1ldGhvZEZhY3Rvcnkobyx0LG4pfXRoaXMubG9nPXRoaXMuZGVidWd9ZnVuY3Rpb24gYyhlLG4scil7cmV0dXJuIGZ1bmN0aW9uKCl7dHlwZW9mIGNvbnNvbGUhPT10JiYocy5jYWxsKHRoaXMsbixyKSx0aGlzW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fWZ1bmN0aW9uIHUoZSx0LG4pe3JldHVybiBhKGUpfHxjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBsKGUsbixpKXt2YXIgbyxhPXRoaXM7bj1udWxsPT1uP1wiV0FSTlwiOm47dmFyIGM9XCJsb2dsZXZlbFwiO2Z1bmN0aW9uIGwoZSl7dmFyIG49KHJbZV18fFwic2lsZW50XCIpLnRvVXBwZXJDYXNlKCk7aWYodHlwZW9mIHdpbmRvdyE9PXQmJmMpe3RyeXtyZXR1cm4gdm9pZCh3aW5kb3cubG9jYWxTdG9yYWdlW2NdPW4pfWNhdGNoKGkpe310cnl7d2luZG93LmRvY3VtZW50LmNvb2tpZT1lbmNvZGVVUklDb21wb25lbnQoYykrXCI9XCIrbitcIjtcIn1jYXRjaChpKXt9fX1mdW5jdGlvbiBkKCl7dmFyIGU7aWYodHlwZW9mIHdpbmRvdyE9PXQmJmMpe3RyeXtlPXdpbmRvdy5sb2NhbFN0b3JhZ2VbY119Y2F0Y2goaSl7fWlmKHR5cGVvZiBlPT09dCl0cnl7dmFyIG49d2luZG93LmRvY3VtZW50LmNvb2tpZSxyPW4uaW5kZXhPZihlbmNvZGVVUklDb21wb25lbnQoYykrXCI9XCIpOy0xIT09ciYmKGU9L14oW147XSspLy5leGVjKG4uc2xpY2UocikpWzFdKX1jYXRjaChpKXt9cmV0dXJuIHZvaWQgMD09PWEubGV2ZWxzW2VdJiYoZT12b2lkIDApLGV9fWZ1bmN0aW9uIHAoKXtpZih0eXBlb2Ygd2luZG93IT09dCYmYyl7dHJ5e3JldHVybiB2b2lkIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShjKX1jYXRjaChlKXt9dHJ5e3dpbmRvdy5kb2N1bWVudC5jb29raWU9ZW5jb2RlVVJJQ29tcG9uZW50KGMpK1wiPTsgZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIFVUQ1wifWNhdGNoKGUpe319fVwic3RyaW5nXCI9PT10eXBlb2YgZT9jKz1cIjpcIitlOlwic3ltYm9sXCI9PT10eXBlb2YgZSYmKGM9dm9pZCAwKSxhLm5hbWU9ZSxhLmxldmVscz17VFJBQ0U6MCxERUJVRzoxLElORk86MixXQVJOOjMsRVJST1I6NCxTSUxFTlQ6NX0sYS5tZXRob2RGYWN0b3J5PWl8fHUsYS5nZXRMZXZlbD1mdW5jdGlvbigpe3JldHVybiBvfSxhLnNldExldmVsPWZ1bmN0aW9uKG4scil7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBuJiZ2b2lkIDAhPT1hLmxldmVsc1tuLnRvVXBwZXJDYXNlKCldJiYobj1hLmxldmVsc1tuLnRvVXBwZXJDYXNlKCldKSwhKFwibnVtYmVyXCI9PT10eXBlb2YgbiYmbj49MCYmbjw9YS5sZXZlbHMuU0lMRU5UKSl0aHJvd1wibG9nLnNldExldmVsKCkgY2FsbGVkIHdpdGggaW52YWxpZCBsZXZlbDogXCIrbjtpZihvPW4sITEhPT1yJiZsKG4pLHMuY2FsbChhLG4sZSksdHlwZW9mIGNvbnNvbGU9PT10JiZuPGEubGV2ZWxzLlNJTEVOVClyZXR1cm5cIk5vIGNvbnNvbGUgYXZhaWxhYmxlIGZvciBsb2dnaW5nXCJ9LGEuc2V0RGVmYXVsdExldmVsPWZ1bmN0aW9uKGUpe249ZSxkKCl8fGEuc2V0TGV2ZWwoZSwhMSl9LGEucmVzZXRMZXZlbD1mdW5jdGlvbigpe2Euc2V0TGV2ZWwobiwhMSkscCgpfSxhLmVuYWJsZUFsbD1mdW5jdGlvbihlKXthLnNldExldmVsKGEubGV2ZWxzLlRSQUNFLGUpfSxhLmRpc2FibGVBbGw9ZnVuY3Rpb24oZSl7YS5zZXRMZXZlbChhLmxldmVscy5TSUxFTlQsZSl9O3ZhciBmPWQoKTtudWxsPT1mJiYoZj1uKSxhLnNldExldmVsKGYsITEpfXZhciBkPW5ldyBsLHA9e307ZC5nZXRMb2dnZXI9ZnVuY3Rpb24oZSl7aWYoXCJzeW1ib2xcIiE9PXR5cGVvZiBlJiZcInN0cmluZ1wiIT09dHlwZW9mIGV8fFwiXCI9PT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJZb3UgbXVzdCBzdXBwbHkgYSBuYW1lIHdoZW4gY3JlYXRpbmcgYSBsb2dnZXIuXCIpO3ZhciB0PXBbZV07cmV0dXJuIHR8fCh0PXBbZV09bmV3IGwoZSxkLmdldExldmVsKCksZC5tZXRob2RGYWN0b3J5KSksdH07dmFyIGY9dHlwZW9mIHdpbmRvdyE9PXQ/d2luZG93LmxvZzp2b2lkIDA7cmV0dXJuIGQubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0eXBlb2Ygd2luZG93IT09dCYmd2luZG93LmxvZz09PWQmJih3aW5kb3cubG9nPWYpLGR9LGQuZ2V0TG9nZ2Vycz1mdW5jdGlvbigpe3JldHVybiBwfSxkLmRlZmF1bHQ9ZCxkfSx2b2lkIDA9PT0oaT1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygcj9yLmNhbGwodCxuLHQsZSk6cil8fChlLmV4cG9ydHM9aSl9KCl9LDc1NDQ6ZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKDIyNzQxKX0sMTUxODQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtEZzpmdW5jdGlvbigpe3JldHVybiBmfSxHSjpmdW5jdGlvbigpe3JldHVybiBUfSxHVjpmdW5jdGlvbigpe3JldHVybiB1fSxRWjpmdW5jdGlvbigpe3JldHVybiBsfSxXSDpmdW5jdGlvbigpe3JldHVybiBofSxiWDpmdW5jdGlvbigpe3JldHVybiBtfSxkOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LGRmOmZ1bmN0aW9uKCl7cmV0dXJuIEd9LGo6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sakg6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sc2I6ZnVuY3Rpb24oKXtyZXR1cm4gTX19KTt2YXIgcj1uKDcyMDgwKSxpPW4oNjIxMDApLG89bi5uKGkpLGE9big4NzM3Myk7ZnVuY3Rpb24gcyhlLHQpe3ZhciBuPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKCFuKXtpZihBcnJheS5pc0FycmF5KGUpfHwobj1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybjtpZihcInN0cmluZ1wiPT09dHlwZW9mIGUpcmV0dXJuIGMoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gYyhlLHQpfShlKSl8fHQmJmUmJlwibnVtYmVyXCI9PT10eXBlb2YgZS5sZW5ndGgpe24mJihlPW4pO3ZhciByPTAsaT1mdW5jdGlvbigpe307cmV0dXJue3M6aSxuOmZ1bmN0aW9uKCl7cmV0dXJuIHI+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW3IrK119fSxlOmZ1bmN0aW9uKGUpe3Rocm93IGV9LGY6aX19dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfXZhciBvLGE9ITAscz0hMTtyZXR1cm57czpmdW5jdGlvbigpe249bi5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9bi5uZXh0KCk7cmV0dXJuIGE9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7cz0hMCxvPWV9LGY6ZnVuY3Rpb24oKXt0cnl7YXx8bnVsbD09bi5yZXR1cm58fG4ucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fX19ZnVuY3Rpb24gYyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9bmV3IEFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciB1LGw7ZnVuY3Rpb24gZChlKXtzd2l0Y2goZSl7Y2FzZSAwOmNhc2VcIlVOU0VUXCI6cmV0dXJuIHUuVU5TRVQ7Y2FzZSAxOmNhc2VcIk5PVF9GT1VORFwiOnJldHVybiB1Lk5PVF9GT1VORDtjYXNlIDI6Y2FzZVwiTk9UX0FWQUlMQUJMRVwiOnJldHVybiB1Lk5PVF9BVkFJTEFCTEU7Y2FzZSAzOmNhc2VcIlBSRU1JVU1fUFJPRklMRVwiOnJldHVybiB1LlBSRU1JVU1fUFJPRklMRTtjYXNlIDQ6Y2FzZVwiUFJFTUlVTV9TVE9SWVwiOnJldHVybiB1LlBSRU1JVU1fU1RPUlk7Y2FzZSA1OmNhc2VcIlBSRU1JVU1fUFJFVklFV1wiOnJldHVybiB1LlBSRU1JVU1fUFJFVklFVztjYXNlIDY6Y2FzZVwiTEVOU19QUk9GSUxFXCI6cmV0dXJuIHUuTEVOU19QUk9GSUxFO2Nhc2UgNzpjYXNlXCJMRU5TX1BSRVZJRVdcIjpyZXR1cm4gdS5MRU5TX1BSRVZJRVc7Y2FzZSA4OmNhc2VcIkFERF9VU0VSXCI6cmV0dXJuIHUuQUREX1VTRVI7Y2FzZSA5OmNhc2VcIlVTRVJfUFJPRklMRVwiOnJldHVybiB1LlVTRVJfUFJPRklMRTtjYXNlIDEwOmNhc2VcIk9VUl9TVE9SWV9TTkFQXCI6cmV0dXJuIHUuT1VSX1NUT1JZX1NOQVA7Y2FzZSAxMTpjYXNlXCJTUE9UTElHSFRcIjpyZXR1cm4gdS5TUE9UTElHSFQ7Y2FzZSAxMjpjYXNlXCJMRU5TX0hPTUVfUEFHRVwiOnJldHVybiB1LkxFTlNfSE9NRV9QQUdFO2Nhc2UgMTM6Y2FzZVwiRElTQ09WRVJfSE9NRV9QQUdFXCI6cmV0dXJuIHUuRElTQ09WRVJfSE9NRV9QQUdFO2Nhc2UgMTQ6Y2FzZVwiTUVESUFfU0hBUkVcIjpyZXR1cm4gdS5NRURJQV9TSEFSRTtjYXNlIDE1OmNhc2VcIk1BUFwiOnJldHVybiB1Lk1BUDtjYXNlIDE2OmNhc2VcIkNIQVRcIjpyZXR1cm4gdS5DSEFUO2Nhc2UgMTc6Y2FzZVwiUFJJVkFURV9VU0VSX1BST0ZJTEVcIjpyZXR1cm4gdS5QUklWQVRFX1VTRVJfUFJPRklMRTtjYXNlIDE4OmNhc2VcIlBVQkxJQ19VU0VSX1BST0ZJTEVcIjpyZXR1cm4gdS5QVUJMSUNfVVNFUl9QUk9GSUxFO2Nhc2UgMTk6Y2FzZVwiU0VBUkNIXCI6cmV0dXJuIHUuU0VBUkNIO2Nhc2UgMjA6Y2FzZVwiU05BUENIQVRfRE9UX0NPTVwiOnJldHVybiB1LlNOQVBDSEFUX0RPVF9DT007Y2FzZSAyMTpjYXNlXCJTSUdOX0lOXCI6cmV0dXJuIHUuU0lHTl9JTjtjYXNlIDIyOmNhc2VcIlNJR05fVVBcIjpyZXR1cm4gdS5TSUdOX1VQO2Nhc2UgMjM6Y2FzZVwiUEFTU1dPUkRfUkVTRVRcIjpyZXR1cm4gdS5QQVNTV09SRF9SRVNFVDtjYXNlIDI0OmNhc2VcIkRPV05MT0FEX01ZX0RBVEFcIjpyZXR1cm4gdS5ET1dOTE9BRF9NWV9EQVRBO2Nhc2UgMjU6Y2FzZVwiVU5MT0NLX0FDQ09VTlRcIjpyZXR1cm4gdS5VTkxPQ0tfQUNDT1VOVDtjYXNlIDI2OmNhc2VcIldFQl9BQ0NPVU5UU1wiOnJldHVybiB1LldFQl9BQ0NPVU5UUztjYXNlIDI3OmNhc2VcIlNOQVBDSEFUX0hPTUVfUEFHRVwiOnJldHVybiB1LlNOQVBDSEFUX0hPTUVfUEFHRTtjYXNlIDI4OmNhc2VcIkRPV05MT0FEX1BBR0VcIjpyZXR1cm4gdS5ET1dOTE9BRF9QQUdFO2Nhc2UgMjk6Y2FzZVwiU0lHTklOX0FDQ09VTlRfSURFTlRJRklFUlwiOnJldHVybiB1LlNJR05JTl9BQ0NPVU5UX0lERU5USUZJRVI7Y2FzZSAzMDpjYXNlXCJTSUdOSU5fUEFTU1dPUkRfQ0hBTExFTkdFXCI6cmV0dXJuIHUuU0lHTklOX1BBU1NXT1JEX0NIQUxMRU5HRTtjYXNlIDMxOmNhc2VcIlNJR05JTl9PVFBfQ0hBTExFTkdFXCI6cmV0dXJuIHUuU0lHTklOX09UUF9DSEFMTEVOR0U7Y2FzZSAzMjpjYXNlXCJTSUdOSU5fVEZBX0NIQUxMRU5HRVwiOnJldHVybiB1LlNJR05JTl9URkFfQ0hBTExFTkdFO2Nhc2UgMzM6Y2FzZVwiU0lHTklOX1RJVl9DSEFMTEVOR0VcIjpyZXR1cm4gdS5TSUdOSU5fVElWX0NIQUxMRU5HRTtjYXNlIDM0OmNhc2VcIlZPVEVcIjpyZXR1cm4gdS5WT1RFO2Nhc2UgMzU6Y2FzZVwiU05BUENIQVRfUExVU19TVUJTQ1JJUFRJT05fU0lHTlVQXCI6cmV0dXJuIHUuU05BUENIQVRfUExVU19TVUJTQ1JJUFRJT05fU0lHTlVQO2Nhc2UgMzY6Y2FzZVwiQkVUQVwiOnJldHVybiB1LkJFVEE7ZGVmYXVsdDpyZXR1cm4gdS5VTlJFQ09HTklaRUR9fWZ1bmN0aW9uIHAoZSl7c3dpdGNoKGUpe2Nhc2UgMDpjYXNlXCJBVVRPXCI6cmV0dXJuIGwuQVVUTztjYXNlIDE6Y2FzZVwiTFRSXCI6cmV0dXJuIGwuTFRSO2Nhc2UgMjpjYXNlXCJSVExcIjpyZXR1cm4gbC5SVEw7ZGVmYXVsdDpyZXR1cm4gbC5VTlJFQ09HTklaRUR9fSFmdW5jdGlvbihlKXtlW2UuVU5TRVQ9MF09XCJVTlNFVFwiLGVbZS5OT1RfRk9VTkQ9MV09XCJOT1RfRk9VTkRcIixlW2UuTk9UX0FWQUlMQUJMRT0yXT1cIk5PVF9BVkFJTEFCTEVcIixlW2UuUFJFTUlVTV9QUk9GSUxFPTNdPVwiUFJFTUlVTV9QUk9GSUxFXCIsZVtlLlBSRU1JVU1fU1RPUlk9NF09XCJQUkVNSVVNX1NUT1JZXCIsZVtlLlBSRU1JVU1fUFJFVklFVz01XT1cIlBSRU1JVU1fUFJFVklFV1wiLGVbZS5MRU5TX1BST0ZJTEU9Nl09XCJMRU5TX1BST0ZJTEVcIixlW2UuTEVOU19QUkVWSUVXPTddPVwiTEVOU19QUkVWSUVXXCIsZVtlLkFERF9VU0VSPThdPVwiQUREX1VTRVJcIixlW2UuVVNFUl9QUk9GSUxFPTldPVwiVVNFUl9QUk9GSUxFXCIsZVtlLk9VUl9TVE9SWV9TTkFQPTEwXT1cIk9VUl9TVE9SWV9TTkFQXCIsZVtlLlNQT1RMSUdIVD0xMV09XCJTUE9UTElHSFRcIixlW2UuTEVOU19IT01FX1BBR0U9MTJdPVwiTEVOU19IT01FX1BBR0VcIixlW2UuRElTQ09WRVJfSE9NRV9QQUdFPTEzXT1cIkRJU0NPVkVSX0hPTUVfUEFHRVwiLGVbZS5NRURJQV9TSEFSRT0xNF09XCJNRURJQV9TSEFSRVwiLGVbZS5NQVA9MTVdPVwiTUFQXCIsZVtlLkNIQVQ9MTZdPVwiQ0hBVFwiLGVbZS5QUklWQVRFX1VTRVJfUFJPRklMRT0xN109XCJQUklWQVRFX1VTRVJfUFJPRklMRVwiLGVbZS5QVUJMSUNfVVNFUl9QUk9GSUxFPTE4XT1cIlBVQkxJQ19VU0VSX1BST0ZJTEVcIixlW2UuU0VBUkNIPTE5XT1cIlNFQVJDSFwiLGVbZS5TTkFQQ0hBVF9ET1RfQ09NPTIwXT1cIlNOQVBDSEFUX0RPVF9DT01cIixlW2UuU0lHTl9JTj0yMV09XCJTSUdOX0lOXCIsZVtlLlNJR05fVVA9MjJdPVwiU0lHTl9VUFwiLGVbZS5QQVNTV09SRF9SRVNFVD0yM109XCJQQVNTV09SRF9SRVNFVFwiLGVbZS5ET1dOTE9BRF9NWV9EQVRBPTI0XT1cIkRPV05MT0FEX01ZX0RBVEFcIixlW2UuVU5MT0NLX0FDQ09VTlQ9MjVdPVwiVU5MT0NLX0FDQ09VTlRcIixlW2UuV0VCX0FDQ09VTlRTPTI2XT1cIldFQl9BQ0NPVU5UU1wiLGVbZS5TTkFQQ0hBVF9IT01FX1BBR0U9MjddPVwiU05BUENIQVRfSE9NRV9QQUdFXCIsZVtlLkRPV05MT0FEX1BBR0U9MjhdPVwiRE9XTkxPQURfUEFHRVwiLGVbZS5TSUdOSU5fQUNDT1VOVF9JREVOVElGSUVSPTI5XT1cIlNJR05JTl9BQ0NPVU5UX0lERU5USUZJRVJcIixlW2UuU0lHTklOX1BBU1NXT1JEX0NIQUxMRU5HRT0zMF09XCJTSUdOSU5fUEFTU1dPUkRfQ0hBTExFTkdFXCIsZVtlLlNJR05JTl9PVFBfQ0hBTExFTkdFPTMxXT1cIlNJR05JTl9PVFBfQ0hBTExFTkdFXCIsZVtlLlNJR05JTl9URkFfQ0hBTExFTkdFPTMyXT1cIlNJR05JTl9URkFfQ0hBTExFTkdFXCIsZVtlLlNJR05JTl9USVZfQ0hBTExFTkdFPTMzXT1cIlNJR05JTl9USVZfQ0hBTExFTkdFXCIsZVtlLlZPVEU9MzRdPVwiVk9URVwiLGVbZS5TTkFQQ0hBVF9QTFVTX1NVQlNDUklQVElPTl9TSUdOVVA9MzVdPVwiU05BUENIQVRfUExVU19TVUJTQ1JJUFRJT05fU0lHTlVQXCIsZVtlLkJFVEE9MzZdPVwiQkVUQVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHV8fCh1PXt9KSksZnVuY3Rpb24oZSl7ZVtlLkFVVE89MF09XCJBVVRPXCIsZVtlLkxUUj0xXT1cIkxUUlwiLGVbZS5SVEw9Ml09XCJSVExcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShsfHwobD17fSkpO3ZhciBmPXtlbmNvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuXCJcIiE9PWUuY291bnRyeSYmdC51aW50MzIoMTApLnN0cmluZyhlLmNvdW50cnkpLFwiXCIhPT1lLmxvY2FsZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLmxvY2FsZSksITA9PT1lLmlzR2RwckNvdW50cnkmJnQudWludDMyKDI0KS5ib29sKGUuaXNHZHByQ291bnRyeSksdH0sZGVjb2RlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvKCkuUmVhZGVyP2U6bmV3KG8oKS5SZWFkZXIpKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9e2NvdW50cnk6XCJcIixsb2NhbGU6XCJcIixpc0dkcHJDb3VudHJ5OiExfTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtzd2l0Y2goYT4+PjMpe2Nhc2UgMTppLmNvdW50cnk9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5sb2NhbGU9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5pc0dkcHJDb3VudHJ5PW4uYm9vbCgpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sZnJvbUpTT046ZnVuY3Rpb24oZSl7cmV0dXJue2NvdW50cnk6VihlLmNvdW50cnkpP1N0cmluZyhlLmNvdW50cnkpOlwiXCIsbG9jYWxlOlYoZS5sb2NhbGUpP1N0cmluZyhlLmxvY2FsZSk6XCJcIixpc0dkcHJDb3VudHJ5OiEhVihlLmlzR2RwckNvdW50cnkpJiZCb29sZWFuKGUuaXNHZHByQ291bnRyeSl9fSx0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUuY291bnRyeSYmKHQuY291bnRyeT1lLmNvdW50cnkpLHZvaWQgMCE9PWUubG9jYWxlJiYodC5sb2NhbGU9ZS5sb2NhbGUpLHZvaWQgMCE9PWUuaXNHZHByQ291bnRyeSYmKHQuaXNHZHByQ291bnRyeT1lLmlzR2RwckNvdW50cnkpLHR9LGZyb21QYXJ0aWFsOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpPXtjb3VudHJ5OlwiXCIsbG9jYWxlOlwiXCIsaXNHZHByQ291bnRyeTohMX07cmV0dXJuIGkuY291bnRyeT1udWxsIT09KHQ9ZS5jb3VudHJ5KSYmdm9pZCAwIT09dD90OlwiXCIsaS5sb2NhbGU9bnVsbCE9PShuPWUubG9jYWxlKSYmdm9pZCAwIT09bj9uOlwiXCIsaS5pc0dkcHJDb3VudHJ5PW51bGwhPT0ocj1lLmlzR2RwckNvdW50cnkpJiZ2b2lkIDAhPT1yJiZyLGl9fTt2YXIgaD17ZW5jb2RlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpvKCkuV3JpdGVyLmNyZWF0ZSgpO3JldHVybiAwIT09ZS5kaXJlY3Rpb24mJnQudWludDMyKDgpLmludDMyKGUuZGlyZWN0aW9uKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17ZGlyZWN0aW9uOjB9O24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO2lmKGE+Pj4zPT09MSlpLmRpcmVjdGlvbj1uLmludDMyKCk7ZWxzZSBuLnNraXBUeXBlKDcmYSl9cmV0dXJuIGl9LGZyb21KU09OOmZ1bmN0aW9uKGUpe3JldHVybntkaXJlY3Rpb246VihlLmRpcmVjdGlvbik/cChlLmRpcmVjdGlvbik6MH19LHRvSlNPTjpmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdm9pZCAwIT09ZS5kaXJlY3Rpb24mJih0LmRpcmVjdGlvbj1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSBsLkFVVE86cmV0dXJuXCJBVVRPXCI7Y2FzZSBsLkxUUjpyZXR1cm5cIkxUUlwiO2Nhc2UgbC5SVEw6cmV0dXJuXCJSVExcIjtjYXNlIGwuVU5SRUNPR05JWkVEOmRlZmF1bHQ6cmV0dXJuXCJVTlJFQ09HTklaRURcIn19KGUuZGlyZWN0aW9uKSksdH0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQsbj17ZGlyZWN0aW9uOjB9O3JldHVybiBuLmRpcmVjdGlvbj1udWxsIT09KHQ9ZS5kaXJlY3Rpb24pJiZ2b2lkIDAhPT10P3Q6MCxufX07dmFyIGc9e2VuY29kZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bygpLldyaXRlci5jcmVhdGUoKTtcIlwiIT09ZS5vbmVMaW5rQmFzZVVybCYmdC51aW50MzIoMTApLnN0cmluZyhlLm9uZUxpbmtCYXNlVXJsKTt2YXIgbixyPXMoZS5waWRLZXlzKTt0cnl7Zm9yKHIucygpOyEobj1yLm4oKSkuZG9uZTspe3ZhciBpPW4udmFsdWU7dC51aW50MzIoMTgpLnN0cmluZyhpKX19Y2F0Y2gobCl7ci5lKGwpfWZpbmFsbHl7ci5mKCl9XCJcIiE9PWUucGlkRmFsbGJhY2tWYWx1ZSYmdC51aW50MzIoMjYpLnN0cmluZyhlLnBpZEZhbGxiYWNrVmFsdWUpO3ZhciBhLGM9cyhlLmNhbXBhaWduS2V5cyk7dHJ5e2ZvcihjLnMoKTshKGE9Yy5uKCkpLmRvbmU7KXt2YXIgdT1hLnZhbHVlO3QudWludDMyKDM0KS5zdHJpbmcodSl9fWNhdGNoKGwpe2MuZShsKX1maW5hbGx5e2MuZigpfXJldHVyblwiXCIhPT1lLmNhbXBhaWduRmFsbGJhY2tWYWx1ZSYmdC51aW50MzIoNDIpLnN0cmluZyhlLmNhbXBhaWduRmFsbGJhY2tWYWx1ZSksXCJcIiE9PWUuZ29vZ2xlQ2xpY2tJZFBhcmFtJiZ0LnVpbnQzMig1MCkuc3RyaW5nKGUuZ29vZ2xlQ2xpY2tJZFBhcmFtKSxcIlwiIT09ZS5kZWVwTGlua1VybCYmdC51aW50MzIoNTgpLnN0cmluZyhlLmRlZXBMaW5rVXJsKSxcIlwiIT09ZS5pb3NBcHBTdG9yZVVybCYmdC51aW50MzIoNjYpLnN0cmluZyhlLmlvc0FwcFN0b3JlVXJsKSxcIlwiIT09ZS5kZXNrdG9wUGFnZVVybCYmdC51aW50MzIoNzQpLnN0cmluZyhlLmRlc2t0b3BQYWdlVXJsKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17b25lTGlua0Jhc2VVcmw6XCJcIixwaWRLZXlzOltdLHBpZEZhbGxiYWNrVmFsdWU6XCJcIixjYW1wYWlnbktleXM6W10sY2FtcGFpZ25GYWxsYmFja1ZhbHVlOlwiXCIsZ29vZ2xlQ2xpY2tJZFBhcmFtOlwiXCIsZGVlcExpbmtVcmw6XCJcIixpb3NBcHBTdG9yZVVybDpcIlwiLGRlc2t0b3BQYWdlVXJsOlwiXCJ9O24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO3N3aXRjaChhPj4+Myl7Y2FzZSAxOmkub25lTGlua0Jhc2VVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5waWRLZXlzLnB1c2gobi5zdHJpbmcoKSk7YnJlYWs7Y2FzZSAzOmkucGlkRmFsbGJhY2tWYWx1ZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmNhbXBhaWduS2V5cy5wdXNoKG4uc3RyaW5nKCkpO2JyZWFrO2Nhc2UgNTppLmNhbXBhaWduRmFsbGJhY2tWYWx1ZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNjppLmdvb2dsZUNsaWNrSWRQYXJhbT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNzppLmRlZXBMaW5rVXJsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA4OmkuaW9zQXBwU3RvcmVVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDk6aS5kZXNrdG9wUGFnZVVybD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sZnJvbUpTT046ZnVuY3Rpb24oZSl7cmV0dXJue29uZUxpbmtCYXNlVXJsOlYoZS5vbmVMaW5rQmFzZVVybCk/U3RyaW5nKGUub25lTGlua0Jhc2VVcmwpOlwiXCIscGlkS2V5czpBcnJheS5pc0FycmF5KG51bGw9PT1lfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBpZEtleXMpP2UucGlkS2V5cy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZSl9KSk6W10scGlkRmFsbGJhY2tWYWx1ZTpWKGUucGlkRmFsbGJhY2tWYWx1ZSk/U3RyaW5nKGUucGlkRmFsbGJhY2tWYWx1ZSk6XCJcIixjYW1wYWlnbktleXM6QXJyYXkuaXNBcnJheShudWxsPT09ZXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jYW1wYWlnbktleXMpP2UuY2FtcGFpZ25LZXlzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKX0pKTpbXSxjYW1wYWlnbkZhbGxiYWNrVmFsdWU6VihlLmNhbXBhaWduRmFsbGJhY2tWYWx1ZSk/U3RyaW5nKGUuY2FtcGFpZ25GYWxsYmFja1ZhbHVlKTpcIlwiLGdvb2dsZUNsaWNrSWRQYXJhbTpWKGUuZ29vZ2xlQ2xpY2tJZFBhcmFtKT9TdHJpbmcoZS5nb29nbGVDbGlja0lkUGFyYW0pOlwiXCIsZGVlcExpbmtVcmw6VihlLmRlZXBMaW5rVXJsKT9TdHJpbmcoZS5kZWVwTGlua1VybCk6XCJcIixpb3NBcHBTdG9yZVVybDpWKGUuaW9zQXBwU3RvcmVVcmwpP1N0cmluZyhlLmlvc0FwcFN0b3JlVXJsKTpcIlwiLGRlc2t0b3BQYWdlVXJsOlYoZS5kZXNrdG9wUGFnZVVybCk/U3RyaW5nKGUuZGVza3RvcFBhZ2VVcmwpOlwiXCJ9fSx0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUub25lTGlua0Jhc2VVcmwmJih0Lm9uZUxpbmtCYXNlVXJsPWUub25lTGlua0Jhc2VVcmwpLGUucGlkS2V5cz90LnBpZEtleXM9ZS5waWRLZXlzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSk6dC5waWRLZXlzPVtdLHZvaWQgMCE9PWUucGlkRmFsbGJhY2tWYWx1ZSYmKHQucGlkRmFsbGJhY2tWYWx1ZT1lLnBpZEZhbGxiYWNrVmFsdWUpLGUuY2FtcGFpZ25LZXlzP3QuY2FtcGFpZ25LZXlzPWUuY2FtcGFpZ25LZXlzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KSk6dC5jYW1wYWlnbktleXM9W10sdm9pZCAwIT09ZS5jYW1wYWlnbkZhbGxiYWNrVmFsdWUmJih0LmNhbXBhaWduRmFsbGJhY2tWYWx1ZT1lLmNhbXBhaWduRmFsbGJhY2tWYWx1ZSksdm9pZCAwIT09ZS5nb29nbGVDbGlja0lkUGFyYW0mJih0Lmdvb2dsZUNsaWNrSWRQYXJhbT1lLmdvb2dsZUNsaWNrSWRQYXJhbSksdm9pZCAwIT09ZS5kZWVwTGlua1VybCYmKHQuZGVlcExpbmtVcmw9ZS5kZWVwTGlua1VybCksdm9pZCAwIT09ZS5pb3NBcHBTdG9yZVVybCYmKHQuaW9zQXBwU3RvcmVVcmw9ZS5pb3NBcHBTdG9yZVVybCksdm9pZCAwIT09ZS5kZXNrdG9wUGFnZVVybCYmKHQuZGVza3RvcFBhZ2VVcmw9ZS5kZXNrdG9wUGFnZVVybCksdH0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHMsYyx1LGw9e29uZUxpbmtCYXNlVXJsOlwiXCIscGlkS2V5czpbXSxwaWRGYWxsYmFja1ZhbHVlOlwiXCIsY2FtcGFpZ25LZXlzOltdLGNhbXBhaWduRmFsbGJhY2tWYWx1ZTpcIlwiLGdvb2dsZUNsaWNrSWRQYXJhbTpcIlwiLGRlZXBMaW5rVXJsOlwiXCIsaW9zQXBwU3RvcmVVcmw6XCJcIixkZXNrdG9wUGFnZVVybDpcIlwifTtyZXR1cm4gbC5vbmVMaW5rQmFzZVVybD1udWxsIT09KHQ9ZS5vbmVMaW5rQmFzZVVybCkmJnZvaWQgMCE9PXQ/dDpcIlwiLGwucGlkS2V5cz0obnVsbD09PShuPWUucGlkS2V5cyl8fHZvaWQgMD09PW4/dm9pZCAwOm4ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSl8fFtdLGwucGlkRmFsbGJhY2tWYWx1ZT1udWxsIT09KHI9ZS5waWRGYWxsYmFja1ZhbHVlKSYmdm9pZCAwIT09cj9yOlwiXCIsbC5jYW1wYWlnbktleXM9KG51bGw9PT0oaT1lLmNhbXBhaWduS2V5cyl8fHZvaWQgMD09PWk/dm9pZCAwOmkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSl8fFtdLGwuY2FtcGFpZ25GYWxsYmFja1ZhbHVlPW51bGwhPT0obz1lLmNhbXBhaWduRmFsbGJhY2tWYWx1ZSkmJnZvaWQgMCE9PW8/bzpcIlwiLGwuZ29vZ2xlQ2xpY2tJZFBhcmFtPW51bGwhPT0oYT1lLmdvb2dsZUNsaWNrSWRQYXJhbSkmJnZvaWQgMCE9PWE/YTpcIlwiLGwuZGVlcExpbmtVcmw9bnVsbCE9PShzPWUuZGVlcExpbmtVcmwpJiZ2b2lkIDAhPT1zP3M6XCJcIixsLmlvc0FwcFN0b3JlVXJsPW51bGwhPT0oYz1lLmlvc0FwcFN0b3JlVXJsKSYmdm9pZCAwIT09Yz9jOlwiXCIsbC5kZXNrdG9wUGFnZVVybD1udWxsIT09KHU9ZS5kZXNrdG9wUGFnZVVybCkmJnZvaWQgMCE9PXU/dTpcIlwiLGx9fTt2YXIgbT17ZW5jb2RlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpvKCkuV3JpdGVyLmNyZWF0ZSgpO3JldHVyblwiXCIhPT1lLm9uZUxpbmtVcmwmJnQudWludDMyKDEwKS5zdHJpbmcoZS5vbmVMaW5rVXJsKSxcIlwiIT09ZS5zbmFwY2hhdENhbm9uaWNhbFVybCYmdC51aW50MzIoMTgpLnN0cmluZyhlLnNuYXBjaGF0Q2Fub25pY2FsVXJsKSxcIlwiIT09ZS5jYW5vbmljYWxVcmwmJnQudWludDMyKDI2KS5zdHJpbmcoZS5jYW5vbmljYWxVcmwpLFwiXCIhPT1lLnNuYXBjb2RlSW1hZ2VVcmwmJnQudWludDMyKDM0KS5zdHJpbmcoZS5zbmFwY29kZUltYWdlVXJsKSxcIlwiIT09ZS5kb3dubG9hZFVybCYmdC51aW50MzIoNDIpLnN0cmluZyhlLmRvd25sb2FkVXJsKSx2b2lkIDAhPT1lLm9uZUxpbmtQYXJhbXMmJmcuZW5jb2RlKGUub25lTGlua1BhcmFtcyx0LnVpbnQzMig1MCkuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5zbmFwY2hhdERlZXBMaW5rVXJsJiZ0LnVpbnQzMig1OCkuc3RyaW5nKGUuc25hcGNoYXREZWVwTGlua1VybCksdH0sZGVjb2RlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvKCkuUmVhZGVyP2U6bmV3KG8oKS5SZWFkZXIpKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9e29uZUxpbmtVcmw6XCJcIixzbmFwY2hhdENhbm9uaWNhbFVybDpcIlwiLGNhbm9uaWNhbFVybDpcIlwiLHNuYXBjb2RlSW1hZ2VVcmw6XCJcIixkb3dubG9hZFVybDpcIlwiLG9uZUxpbmtQYXJhbXM6dm9pZCAwLHNuYXBjaGF0RGVlcExpbmtVcmw6XCJcIn07bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS5vbmVMaW5rVXJsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuc25hcGNoYXRDYW5vbmljYWxVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5jYW5vbmljYWxVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS5zbmFwY29kZUltYWdlVXJsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA1OmkuZG93bmxvYWRVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDY6aS5vbmVMaW5rUGFyYW1zPWcuZGVjb2RlKG4sbi51aW50MzIoKSk7YnJlYWs7Y2FzZSA3Omkuc25hcGNoYXREZWVwTGlua1VybD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sZnJvbUpTT046ZnVuY3Rpb24oZSl7cmV0dXJue29uZUxpbmtVcmw6VihlLm9uZUxpbmtVcmwpP1N0cmluZyhlLm9uZUxpbmtVcmwpOlwiXCIsc25hcGNoYXRDYW5vbmljYWxVcmw6VihlLnNuYXBjaGF0Q2Fub25pY2FsVXJsKT9TdHJpbmcoZS5zbmFwY2hhdENhbm9uaWNhbFVybCk6XCJcIixjYW5vbmljYWxVcmw6VihlLmNhbm9uaWNhbFVybCk/U3RyaW5nKGUuY2Fub25pY2FsVXJsKTpcIlwiLHNuYXBjb2RlSW1hZ2VVcmw6VihlLnNuYXBjb2RlSW1hZ2VVcmwpP1N0cmluZyhlLnNuYXBjb2RlSW1hZ2VVcmwpOlwiXCIsZG93bmxvYWRVcmw6VihlLmRvd25sb2FkVXJsKT9TdHJpbmcoZS5kb3dubG9hZFVybCk6XCJcIixvbmVMaW5rUGFyYW1zOlYoZS5vbmVMaW5rUGFyYW1zKT9nLmZyb21KU09OKGUub25lTGlua1BhcmFtcyk6dm9pZCAwLHNuYXBjaGF0RGVlcExpbmtVcmw6VihlLnNuYXBjaGF0RGVlcExpbmtVcmwpP1N0cmluZyhlLnNuYXBjaGF0RGVlcExpbmtVcmwpOlwiXCJ9fSx0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUub25lTGlua1VybCYmKHQub25lTGlua1VybD1lLm9uZUxpbmtVcmwpLHZvaWQgMCE9PWUuc25hcGNoYXRDYW5vbmljYWxVcmwmJih0LnNuYXBjaGF0Q2Fub25pY2FsVXJsPWUuc25hcGNoYXRDYW5vbmljYWxVcmwpLHZvaWQgMCE9PWUuY2Fub25pY2FsVXJsJiYodC5jYW5vbmljYWxVcmw9ZS5jYW5vbmljYWxVcmwpLHZvaWQgMCE9PWUuc25hcGNvZGVJbWFnZVVybCYmKHQuc25hcGNvZGVJbWFnZVVybD1lLnNuYXBjb2RlSW1hZ2VVcmwpLHZvaWQgMCE9PWUuZG93bmxvYWRVcmwmJih0LmRvd25sb2FkVXJsPWUuZG93bmxvYWRVcmwpLHZvaWQgMCE9PWUub25lTGlua1BhcmFtcyYmKHQub25lTGlua1BhcmFtcz1lLm9uZUxpbmtQYXJhbXM/Zy50b0pTT04oZS5vbmVMaW5rUGFyYW1zKTp2b2lkIDApLHZvaWQgMCE9PWUuc25hcGNoYXREZWVwTGlua1VybCYmKHQuc25hcGNoYXREZWVwTGlua1VybD1lLnNuYXBjaGF0RGVlcExpbmtVcmwpLHR9LGZyb21QYXJ0aWFsOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYSxzPXtvbmVMaW5rVXJsOlwiXCIsc25hcGNoYXRDYW5vbmljYWxVcmw6XCJcIixjYW5vbmljYWxVcmw6XCJcIixzbmFwY29kZUltYWdlVXJsOlwiXCIsZG93bmxvYWRVcmw6XCJcIixvbmVMaW5rUGFyYW1zOnZvaWQgMCxzbmFwY2hhdERlZXBMaW5rVXJsOlwiXCJ9O3JldHVybiBzLm9uZUxpbmtVcmw9bnVsbCE9PSh0PWUub25lTGlua1VybCkmJnZvaWQgMCE9PXQ/dDpcIlwiLHMuc25hcGNoYXRDYW5vbmljYWxVcmw9bnVsbCE9PShuPWUuc25hcGNoYXRDYW5vbmljYWxVcmwpJiZ2b2lkIDAhPT1uP246XCJcIixzLmNhbm9uaWNhbFVybD1udWxsIT09KHI9ZS5jYW5vbmljYWxVcmwpJiZ2b2lkIDAhPT1yP3I6XCJcIixzLnNuYXBjb2RlSW1hZ2VVcmw9bnVsbCE9PShpPWUuc25hcGNvZGVJbWFnZVVybCkmJnZvaWQgMCE9PWk/aTpcIlwiLHMuZG93bmxvYWRVcmw9bnVsbCE9PShvPWUuZG93bmxvYWRVcmwpJiZ2b2lkIDAhPT1vP286XCJcIixzLm9uZUxpbmtQYXJhbXM9dm9pZCAwIT09ZS5vbmVMaW5rUGFyYW1zJiZudWxsIT09ZS5vbmVMaW5rUGFyYW1zP2cuZnJvbVBhcnRpYWwoZS5vbmVMaW5rUGFyYW1zKTp2b2lkIDAscy5zbmFwY2hhdERlZXBMaW5rVXJsPW51bGwhPT0oYT1lLnNuYXBjaGF0RGVlcExpbmtVcmwpJiZ2b2lkIDAhPT1hP2E6XCJcIixzfX07dmFyIHY9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuXCJcIiE9PWUudXJsJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUudXJsKSx2b2lkIDAhPT1lLnNpemUmJnkuZW5jb2RlKGUuc2l6ZSx0LnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKSx0fSxfPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvKCkuUmVhZGVyP2U6bmV3KG8oKS5SZWFkZXIpKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9e3VybDpcIlwiLHNpemU6dm9pZCAwfTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtzd2l0Y2goYT4+PjMpe2Nhc2UgMTppLnVybD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnNpemU9eS5kZWNvZGUobixuLnVpbnQzMigpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LEU9ZnVuY3Rpb24oZSl7cmV0dXJue3VybDpWKGUudXJsKT9TdHJpbmcoZS51cmwpOlwiXCIsc2l6ZTpWKGUuc2l6ZSk/eS5mcm9tSlNPTihlLnNpemUpOnZvaWQgMH19LGI9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUudXJsJiYodC51cmw9ZS51cmwpLHZvaWQgMCE9PWUuc2l6ZSYmKHQuc2l6ZT1lLnNpemU/eS50b0pTT04oZS5zaXplKTp2b2lkIDApLHR9LFM9ZnVuY3Rpb24oZSl7dmFyIHQsbj17dXJsOlwiXCIsc2l6ZTp2b2lkIDB9O3JldHVybiBuLnVybD1udWxsIT09KHQ9ZS51cmwpJiZ2b2lkIDAhPT10P3Q6XCJcIixuLnNpemU9dm9pZCAwIT09ZS5zaXplJiZudWxsIT09ZS5zaXplP3kuZnJvbVBhcnRpYWwoZS5zaXplKTp2b2lkIDAsbn07dmFyIHk9e2VuY29kZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bygpLldyaXRlci5jcmVhdGUoKTtyZXR1cm4gMCE9PWUud2lkdGgmJnQudWludDMyKDgpLmludDMyKGUud2lkdGgpLDAhPT1lLmhlaWdodCYmdC51aW50MzIoMTYpLmludDMyKGUuaGVpZ2h0KSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17d2lkdGg6MCxoZWlnaHQ6MH07bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS53aWR0aD1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuaGVpZ2h0PW4uaW50MzIoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LGZyb21KU09OOmZ1bmN0aW9uKGUpe3JldHVybnt3aWR0aDpWKGUud2lkdGgpP051bWJlcihlLndpZHRoKTowLGhlaWdodDpWKGUuaGVpZ2h0KT9OdW1iZXIoZS5oZWlnaHQpOjB9fSx0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUud2lkdGgmJih0LndpZHRoPU1hdGgucm91bmQoZS53aWR0aCkpLHZvaWQgMCE9PWUuaGVpZ2h0JiYodC5oZWlnaHQ9TWF0aC5yb3VuZChlLmhlaWdodCkpLHR9LGZyb21QYXJ0aWFsOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj17d2lkdGg6MCxoZWlnaHQ6MH07cmV0dXJuIHIud2lkdGg9bnVsbCE9PSh0PWUud2lkdGgpJiZ2b2lkIDAhPT10P3Q6MCxyLmhlaWdodD1udWxsIT09KG49ZS5oZWlnaHQpJiZ2b2lkIDAhPT1uP246MCxyfX07dmFyIFQ9e2VuY29kZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bygpLldyaXRlci5jcmVhdGUoKTtyZXR1cm5cIlwiIT09ZS50aXRsZSYmdC51aW50MzIoMTApLnN0cmluZyhlLnRpdGxlKSxcIlwiIT09ZS5kZXNjcmlwdGlvbiYmdC51aW50MzIoMTgpLnN0cmluZyhlLmRlc2NyaXB0aW9uKSxcIlwiIT09ZS5jYW5vbmljYWxVcmwmJnQudWludDMyKDI2KS5zdHJpbmcoZS5jYW5vbmljYWxVcmwpLHZvaWQgMCE9PWUudHdpdHRlckltYWdlJiZ2KGUudHdpdHRlckltYWdlLHQudWludDMyKDM0KS5mb3JrKCkpLmxkZWxpbSgpLHZvaWQgMCE9PWUuZmFjZWJvb2tJbWFnZSYmdihlLmZhY2Vib29rSW1hZ2UsdC51aW50MzIoNDIpLmZvcmsoKSkubGRlbGltKCksdH0sZGVjb2RlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvKCkuUmVhZGVyP2U6bmV3KG8oKS5SZWFkZXIpKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9e3RpdGxlOlwiXCIsZGVzY3JpcHRpb246XCJcIixjYW5vbmljYWxVcmw6XCJcIix0d2l0dGVySW1hZ2U6dm9pZCAwLGZhY2Vib29rSW1hZ2U6dm9pZCAwfTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtzd2l0Y2goYT4+PjMpe2Nhc2UgMTppLnRpdGxlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZGVzY3JpcHRpb249bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5jYW5vbmljYWxVcmw9bi5zdHJpbmcoKTticmVhaztjYXNlIDQ6aS50d2l0dGVySW1hZ2U9XyhuLG4udWludDMyKCkpO2JyZWFrO2Nhc2UgNTppLmZhY2Vib29rSW1hZ2U9XyhuLG4udWludDMyKCkpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sZnJvbUpTT046ZnVuY3Rpb24oZSl7cmV0dXJue3RpdGxlOlYoZS50aXRsZSk/U3RyaW5nKGUudGl0bGUpOlwiXCIsZGVzY3JpcHRpb246VihlLmRlc2NyaXB0aW9uKT9TdHJpbmcoZS5kZXNjcmlwdGlvbik6XCJcIixjYW5vbmljYWxVcmw6VihlLmNhbm9uaWNhbFVybCk/U3RyaW5nKGUuY2Fub25pY2FsVXJsKTpcIlwiLHR3aXR0ZXJJbWFnZTpWKGUudHdpdHRlckltYWdlKT9FKGUudHdpdHRlckltYWdlKTp2b2lkIDAsZmFjZWJvb2tJbWFnZTpWKGUuZmFjZWJvb2tJbWFnZSk/RShlLmZhY2Vib29rSW1hZ2UpOnZvaWQgMH19LHRvSlNPTjpmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdm9pZCAwIT09ZS50aXRsZSYmKHQudGl0bGU9ZS50aXRsZSksdm9pZCAwIT09ZS5kZXNjcmlwdGlvbiYmKHQuZGVzY3JpcHRpb249ZS5kZXNjcmlwdGlvbiksdm9pZCAwIT09ZS5jYW5vbmljYWxVcmwmJih0LmNhbm9uaWNhbFVybD1lLmNhbm9uaWNhbFVybCksdm9pZCAwIT09ZS50d2l0dGVySW1hZ2UmJih0LnR3aXR0ZXJJbWFnZT1lLnR3aXR0ZXJJbWFnZT9iKGUudHdpdHRlckltYWdlKTp2b2lkIDApLHZvaWQgMCE9PWUuZmFjZWJvb2tJbWFnZSYmKHQuZmFjZWJvb2tJbWFnZT1lLmZhY2Vib29rSW1hZ2U/YihlLmZhY2Vib29rSW1hZ2UpOnZvaWQgMCksdH0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9e3RpdGxlOlwiXCIsZGVzY3JpcHRpb246XCJcIixjYW5vbmljYWxVcmw6XCJcIix0d2l0dGVySW1hZ2U6dm9pZCAwLGZhY2Vib29rSW1hZ2U6dm9pZCAwfTtyZXR1cm4gaS50aXRsZT1udWxsIT09KHQ9ZS50aXRsZSkmJnZvaWQgMCE9PXQ/dDpcIlwiLGkuZGVzY3JpcHRpb249bnVsbCE9PShuPWUuZGVzY3JpcHRpb24pJiZ2b2lkIDAhPT1uP246XCJcIixpLmNhbm9uaWNhbFVybD1udWxsIT09KHI9ZS5jYW5vbmljYWxVcmwpJiZ2b2lkIDAhPT1yP3I6XCJcIixpLnR3aXR0ZXJJbWFnZT12b2lkIDAhPT1lLnR3aXR0ZXJJbWFnZSYmbnVsbCE9PWUudHdpdHRlckltYWdlP1MoZS50d2l0dGVySW1hZ2UpOnZvaWQgMCxpLmZhY2Vib29rSW1hZ2U9dm9pZCAwIT09ZS5mYWNlYm9va0ltYWdlJiZudWxsIT09ZS5mYWNlYm9va0ltYWdlP1MoZS5mYWNlYm9va0ltYWdlKTp2b2lkIDAsaX19O3ZhciBJPXtlbmNvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuIDAhPT1lLnBhZ2VUeXBlJiZ0LnVpbnQzMig4KS5pbnQzMihlLnBhZ2VUeXBlKSxcIlwiIT09ZS5wYWdlVGl0bGUmJnQudWludDMyKDE4KS5zdHJpbmcoZS5wYWdlVGl0bGUpLHZvaWQgMCE9PWUucGFnZURlc2NyaXB0aW9uJiZhLmVjLmVuY29kZShlLnBhZ2VEZXNjcmlwdGlvbix0LnVpbnQzMigyNikuZm9yaygpKS5sZGVsaW0oKSxcIlwiIT09ZS5zaGFyZUlkJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUuc2hhcmVJZCksdH0sZGVjb2RlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvKCkuUmVhZGVyP2U6bmV3KG8oKS5SZWFkZXIpKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9e3BhZ2VUeXBlOjAscGFnZVRpdGxlOlwiXCIscGFnZURlc2NyaXB0aW9uOnZvaWQgMCxzaGFyZUlkOlwiXCJ9O24ucG9zPHI7KXt2YXIgcz1uLnVpbnQzMigpO3N3aXRjaChzPj4+Myl7Y2FzZSAxOmkucGFnZVR5cGU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLnBhZ2VUaXRsZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnBhZ2VEZXNjcmlwdGlvbj1hLmVjLmRlY29kZShuLG4udWludDMyKCkpO2JyZWFrO2Nhc2UgNDppLnNoYXJlSWQ9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZzKX19cmV0dXJuIGl9LGZyb21KU09OOmZ1bmN0aW9uKGUpe3JldHVybntwYWdlVHlwZTpWKGUucGFnZVR5cGUpP2QoZS5wYWdlVHlwZSk6MCxwYWdlVGl0bGU6VihlLnBhZ2VUaXRsZSk/U3RyaW5nKGUucGFnZVRpdGxlKTpcIlwiLHBhZ2VEZXNjcmlwdGlvbjpWKGUucGFnZURlc2NyaXB0aW9uKT9hLmVjLmZyb21KU09OKGUucGFnZURlc2NyaXB0aW9uKTp2b2lkIDAsc2hhcmVJZDpWKGUuc2hhcmVJZCk/U3RyaW5nKGUuc2hhcmVJZCk6XCJcIn19LHRvSlNPTjpmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdm9pZCAwIT09ZS5wYWdlVHlwZSYmKHQucGFnZVR5cGU9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UgdS5VTlNFVDpyZXR1cm5cIlVOU0VUXCI7Y2FzZSB1Lk5PVF9GT1VORDpyZXR1cm5cIk5PVF9GT1VORFwiO2Nhc2UgdS5OT1RfQVZBSUxBQkxFOnJldHVyblwiTk9UX0FWQUlMQUJMRVwiO2Nhc2UgdS5QUkVNSVVNX1BST0ZJTEU6cmV0dXJuXCJQUkVNSVVNX1BST0ZJTEVcIjtjYXNlIHUuUFJFTUlVTV9TVE9SWTpyZXR1cm5cIlBSRU1JVU1fU1RPUllcIjtjYXNlIHUuUFJFTUlVTV9QUkVWSUVXOnJldHVyblwiUFJFTUlVTV9QUkVWSUVXXCI7Y2FzZSB1LkxFTlNfUFJPRklMRTpyZXR1cm5cIkxFTlNfUFJPRklMRVwiO2Nhc2UgdS5MRU5TX1BSRVZJRVc6cmV0dXJuXCJMRU5TX1BSRVZJRVdcIjtjYXNlIHUuQUREX1VTRVI6cmV0dXJuXCJBRERfVVNFUlwiO2Nhc2UgdS5VU0VSX1BST0ZJTEU6cmV0dXJuXCJVU0VSX1BST0ZJTEVcIjtjYXNlIHUuT1VSX1NUT1JZX1NOQVA6cmV0dXJuXCJPVVJfU1RPUllfU05BUFwiO2Nhc2UgdS5TUE9UTElHSFQ6cmV0dXJuXCJTUE9UTElHSFRcIjtjYXNlIHUuTEVOU19IT01FX1BBR0U6cmV0dXJuXCJMRU5TX0hPTUVfUEFHRVwiO2Nhc2UgdS5ESVNDT1ZFUl9IT01FX1BBR0U6cmV0dXJuXCJESVNDT1ZFUl9IT01FX1BBR0VcIjtjYXNlIHUuTUVESUFfU0hBUkU6cmV0dXJuXCJNRURJQV9TSEFSRVwiO2Nhc2UgdS5NQVA6cmV0dXJuXCJNQVBcIjtjYXNlIHUuQ0hBVDpyZXR1cm5cIkNIQVRcIjtjYXNlIHUuUFJJVkFURV9VU0VSX1BST0ZJTEU6cmV0dXJuXCJQUklWQVRFX1VTRVJfUFJPRklMRVwiO2Nhc2UgdS5QVUJMSUNfVVNFUl9QUk9GSUxFOnJldHVyblwiUFVCTElDX1VTRVJfUFJPRklMRVwiO2Nhc2UgdS5TRUFSQ0g6cmV0dXJuXCJTRUFSQ0hcIjtjYXNlIHUuU05BUENIQVRfRE9UX0NPTTpyZXR1cm5cIlNOQVBDSEFUX0RPVF9DT01cIjtjYXNlIHUuU0lHTl9JTjpyZXR1cm5cIlNJR05fSU5cIjtjYXNlIHUuU0lHTl9VUDpyZXR1cm5cIlNJR05fVVBcIjtjYXNlIHUuUEFTU1dPUkRfUkVTRVQ6cmV0dXJuXCJQQVNTV09SRF9SRVNFVFwiO2Nhc2UgdS5ET1dOTE9BRF9NWV9EQVRBOnJldHVyblwiRE9XTkxPQURfTVlfREFUQVwiO2Nhc2UgdS5VTkxPQ0tfQUNDT1VOVDpyZXR1cm5cIlVOTE9DS19BQ0NPVU5UXCI7Y2FzZSB1LldFQl9BQ0NPVU5UUzpyZXR1cm5cIldFQl9BQ0NPVU5UU1wiO2Nhc2UgdS5TTkFQQ0hBVF9IT01FX1BBR0U6cmV0dXJuXCJTTkFQQ0hBVF9IT01FX1BBR0VcIjtjYXNlIHUuRE9XTkxPQURfUEFHRTpyZXR1cm5cIkRPV05MT0FEX1BBR0VcIjtjYXNlIHUuU0lHTklOX0FDQ09VTlRfSURFTlRJRklFUjpyZXR1cm5cIlNJR05JTl9BQ0NPVU5UX0lERU5USUZJRVJcIjtjYXNlIHUuU0lHTklOX1BBU1NXT1JEX0NIQUxMRU5HRTpyZXR1cm5cIlNJR05JTl9QQVNTV09SRF9DSEFMTEVOR0VcIjtjYXNlIHUuU0lHTklOX09UUF9DSEFMTEVOR0U6cmV0dXJuXCJTSUdOSU5fT1RQX0NIQUxMRU5HRVwiO2Nhc2UgdS5TSUdOSU5fVEZBX0NIQUxMRU5HRTpyZXR1cm5cIlNJR05JTl9URkFfQ0hBTExFTkdFXCI7Y2FzZSB1LlNJR05JTl9USVZfQ0hBTExFTkdFOnJldHVyblwiU0lHTklOX1RJVl9DSEFMTEVOR0VcIjtjYXNlIHUuVk9URTpyZXR1cm5cIlZPVEVcIjtjYXNlIHUuU05BUENIQVRfUExVU19TVUJTQ1JJUFRJT05fU0lHTlVQOnJldHVyblwiU05BUENIQVRfUExVU19TVUJTQ1JJUFRJT05fU0lHTlVQXCI7Y2FzZSB1LkJFVEE6cmV0dXJuXCJCRVRBXCI7Y2FzZSB1LlVOUkVDT0dOSVpFRDpkZWZhdWx0OnJldHVyblwiVU5SRUNPR05JWkVEXCJ9fShlLnBhZ2VUeXBlKSksdm9pZCAwIT09ZS5wYWdlVGl0bGUmJih0LnBhZ2VUaXRsZT1lLnBhZ2VUaXRsZSksdm9pZCAwIT09ZS5wYWdlRGVzY3JpcHRpb24mJih0LnBhZ2VEZXNjcmlwdGlvbj1lLnBhZ2VEZXNjcmlwdGlvbj9hLmVjLnRvSlNPTihlLnBhZ2VEZXNjcmlwdGlvbik6dm9pZCAwKSx2b2lkIDAhPT1lLnNoYXJlSWQmJih0LnNoYXJlSWQ9ZS5zaGFyZUlkKSx0fSxmcm9tUGFydGlhbDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaT17cGFnZVR5cGU6MCxwYWdlVGl0bGU6XCJcIixwYWdlRGVzY3JpcHRpb246dm9pZCAwLHNoYXJlSWQ6XCJcIn07cmV0dXJuIGkucGFnZVR5cGU9bnVsbCE9PSh0PWUucGFnZVR5cGUpJiZ2b2lkIDAhPT10P3Q6MCxpLnBhZ2VUaXRsZT1udWxsIT09KG49ZS5wYWdlVGl0bGUpJiZ2b2lkIDAhPT1uP246XCJcIixpLnBhZ2VEZXNjcmlwdGlvbj12b2lkIDAhPT1lLnBhZ2VEZXNjcmlwdGlvbiYmbnVsbCE9PWUucGFnZURlc2NyaXB0aW9uP2EuZWMuZnJvbVBhcnRpYWwoZS5wYWdlRGVzY3JpcHRpb24pOnZvaWQgMCxpLnNoYXJlSWQ9bnVsbCE9PShyPWUuc2hhcmVJZCkmJnZvaWQgMCE9PXI/cjpcIlwiLGl9fTt2YXIgTz1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bygpLldyaXRlci5jcmVhdGUoKTtyZXR1cm5cIlwiIT09ZS51c2VybmFtZSYmdC51aW50MzIoMTApLnN0cmluZyhlLnVzZXJuYW1lKSxcIlwiIT09ZS51cmwmJnQudWludDMyKDE4KS5zdHJpbmcoZS51cmwpLHR9LEE9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17dXNlcm5hbWU6XCJcIix1cmw6XCJcIn07bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS51c2VybmFtZT1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnVybD1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sQz1mdW5jdGlvbihlKXtyZXR1cm57dXNlcm5hbWU6VihlLnVzZXJuYW1lKT9TdHJpbmcoZS51c2VybmFtZSk6XCJcIix1cmw6VihlLnVybCk/U3RyaW5nKGUudXJsKTpcIlwifX0sTj1mdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdm9pZCAwIT09ZS51c2VybmFtZSYmKHQudXNlcm5hbWU9ZS51c2VybmFtZSksdm9pZCAwIT09ZS51cmwmJih0LnVybD1lLnVybCksdH0saz1mdW5jdGlvbihlKXt2YXIgdCxuLHI9e3VzZXJuYW1lOlwiXCIsdXJsOlwiXCJ9O3JldHVybiByLnVzZXJuYW1lPW51bGwhPT0odD1lLnVzZXJuYW1lKSYmdm9pZCAwIT09dD90OlwiXCIsci51cmw9bnVsbCE9PShuPWUudXJsKSYmdm9pZCAwIT09bj9uOlwiXCIscn07dmFyIFA9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuIHR9LFI9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17fTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtuLnNraXBUeXBlKDcmYSl9cmV0dXJuIGl9LHc9ZnVuY3Rpb24oZSl7cmV0dXJue319LEw9ZnVuY3Rpb24oZSl7cmV0dXJue319LEI9ZnVuY3Rpb24oZSl7cmV0dXJue319O3ZhciBNPXtlbmNvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuXCIwXCIhPT1lLnZpZXdDb3VudCYmdC51aW50MzIoOCkuaW50NjQoZS52aWV3Q291bnQpLFwiMFwiIT09ZS5zaGFyZUNvdW50JiZ0LnVpbnQzMigxNikuaW50NjQoZS5zaGFyZUNvdW50KSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17dmlld0NvdW50OlwiMFwiLHNoYXJlQ291bnQ6XCIwXCJ9O24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO3N3aXRjaChhPj4+Myl7Y2FzZSAxOmkudmlld0NvdW50PVcobi5pbnQ2NCgpKTticmVhaztjYXNlIDI6aS5zaGFyZUNvdW50PVcobi5pbnQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LGZyb21KU09OOmZ1bmN0aW9uKGUpe3JldHVybnt2aWV3Q291bnQ6VihlLnZpZXdDb3VudCk/U3RyaW5nKGUudmlld0NvdW50KTpcIjBcIixzaGFyZUNvdW50OlYoZS5zaGFyZUNvdW50KT9TdHJpbmcoZS5zaGFyZUNvdW50KTpcIjBcIn19LHRvSlNPTjpmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdm9pZCAwIT09ZS52aWV3Q291bnQmJih0LnZpZXdDb3VudD1lLnZpZXdDb3VudCksdm9pZCAwIT09ZS5zaGFyZUNvdW50JiYodC5zaGFyZUNvdW50PWUuc2hhcmVDb3VudCksdH0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQsbixyPXt2aWV3Q291bnQ6XCIwXCIsc2hhcmVDb3VudDpcIjBcIn07cmV0dXJuIHIudmlld0NvdW50PW51bGwhPT0odD1lLnZpZXdDb3VudCkmJnZvaWQgMCE9PXQ/dDpcIjBcIixyLnNoYXJlQ291bnQ9bnVsbCE9PShuPWUuc2hhcmVDb3VudCkmJnZvaWQgMCE9PW4/bjpcIjBcIixyfX07dmFyIEQ9e2VuY29kZTpmdW5jdGlvbihlKXt2YXIgdCxuLHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuXCJcIiE9PWUubmFtZSYmci51aW50MzIoMTApLnN0cmluZyhlLm5hbWUpLFwiXCIhPT1lLmRlc2NyaXB0aW9uJiZyLnVpbnQzMigxOCkuc3RyaW5nKGUuZGVzY3JpcHRpb24pLFwiXCIhPT1lLnRodW1ibmFpbFVybCYmci51aW50MzIoMjYpLnN0cmluZyhlLnRodW1ibmFpbFVybCksXCIwXCIhPT1lLnVwbG9hZERhdGVNcyYmci51aW50MzIoMzIpLmludDY0KGUudXBsb2FkRGF0ZU1zKSxcIjBcIiE9PWUudmlld0NvdW50JiZyLnVpbnQzMig2NCkuaW50NjQoZS52aWV3Q291bnQpLFwiXCIhPT1lLmNvbnRlbnRVcmwmJnIudWludDMyKDQyKS5zdHJpbmcoZS5jb250ZW50VXJsKSxcInBlcnNvbkNyZWF0b3JcIj09PShudWxsPT09KHQ9ZS5jcmVhdG9yKXx8dm9pZCAwPT09dD92b2lkIDA6dC4kY2FzZSkmJk8oZS5jcmVhdG9yLnBlcnNvbkNyZWF0b3Isci51aW50MzIoNTApLmZvcmsoKSkubGRlbGltKCksXCJvcmdhbml6YXRpb25DcmVhdG9yXCI9PT0obnVsbD09PShuPWUuY3JlYXRvcil8fHZvaWQgMD09PW4/dm9pZCAwOm4uJGNhc2UpJiZQKGUuY3JlYXRvci5vcmdhbml6YXRpb25DcmVhdG9yLHIudWludDMyKDU4KS5mb3JrKCkpLmxkZWxpbSgpLFwiMFwiIT09ZS5kdXJhdGlvbk1zJiZyLnVpbnQzMig3MikuaW50NjQoZS5kdXJhdGlvbk1zKSwwIT09ZS53aWR0aCYmci51aW50MzIoODApLmludDMyKGUud2lkdGgpLDAhPT1lLmhlaWdodCYmci51aW50MzIoODgpLmludDMyKGUuaGVpZ2h0KSxyfSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17bmFtZTpcIlwiLGRlc2NyaXB0aW9uOlwiXCIsdGh1bWJuYWlsVXJsOlwiXCIsdXBsb2FkRGF0ZU1zOlwiMFwiLHZpZXdDb3VudDpcIjBcIixjb250ZW50VXJsOlwiXCIsY3JlYXRvcjp2b2lkIDAsZHVyYXRpb25NczpcIjBcIix3aWR0aDowLGhlaWdodDowfTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtzd2l0Y2goYT4+PjMpe2Nhc2UgMTppLm5hbWU9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS5kZXNjcmlwdGlvbj1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMzppLnRodW1ibmFpbFVybD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLnVwbG9hZERhdGVNcz1XKG4uaW50NjQoKSk7YnJlYWs7Y2FzZSA4Omkudmlld0NvdW50PVcobi5pbnQ2NCgpKTticmVhaztjYXNlIDU6aS5jb250ZW50VXJsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkuY3JlYXRvcj17JGNhc2U6XCJwZXJzb25DcmVhdG9yXCIscGVyc29uQ3JlYXRvcjpBKG4sbi51aW50MzIoKSl9O2JyZWFrO2Nhc2UgNzppLmNyZWF0b3I9eyRjYXNlOlwib3JnYW5pemF0aW9uQ3JlYXRvclwiLG9yZ2FuaXphdGlvbkNyZWF0b3I6UihuLG4udWludDMyKCkpfTticmVhaztjYXNlIDk6aS5kdXJhdGlvbk1zPVcobi5pbnQ2NCgpKTticmVhaztjYXNlIDEwOmkud2lkdGg9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTE6aS5oZWlnaHQ9bi5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sZnJvbUpTT046ZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6VihlLm5hbWUpP1N0cmluZyhlLm5hbWUpOlwiXCIsZGVzY3JpcHRpb246VihlLmRlc2NyaXB0aW9uKT9TdHJpbmcoZS5kZXNjcmlwdGlvbik6XCJcIix0aHVtYm5haWxVcmw6VihlLnRodW1ibmFpbFVybCk/U3RyaW5nKGUudGh1bWJuYWlsVXJsKTpcIlwiLHVwbG9hZERhdGVNczpWKGUudXBsb2FkRGF0ZU1zKT9TdHJpbmcoZS51cGxvYWREYXRlTXMpOlwiMFwiLHZpZXdDb3VudDpWKGUudmlld0NvdW50KT9TdHJpbmcoZS52aWV3Q291bnQpOlwiMFwiLGNvbnRlbnRVcmw6VihlLmNvbnRlbnRVcmwpP1N0cmluZyhlLmNvbnRlbnRVcmwpOlwiXCIsY3JlYXRvcjpWKGUucGVyc29uQ3JlYXRvcik/eyRjYXNlOlwicGVyc29uQ3JlYXRvclwiLHBlcnNvbkNyZWF0b3I6QyhlLnBlcnNvbkNyZWF0b3IpfTpWKGUub3JnYW5pemF0aW9uQ3JlYXRvcik/eyRjYXNlOlwib3JnYW5pemF0aW9uQ3JlYXRvclwiLG9yZ2FuaXphdGlvbkNyZWF0b3I6dyhlLm9yZ2FuaXphdGlvbkNyZWF0b3IpfTp2b2lkIDAsZHVyYXRpb25NczpWKGUuZHVyYXRpb25Ncyk/U3RyaW5nKGUuZHVyYXRpb25Ncyk6XCIwXCIsd2lkdGg6VihlLndpZHRoKT9OdW1iZXIoZS53aWR0aCk6MCxoZWlnaHQ6VihlLmhlaWdodCk/TnVtYmVyKGUuaGVpZ2h0KTowfX0sdG9KU09OOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYSxzPXt9O3JldHVybiB2b2lkIDAhPT1lLm5hbWUmJihzLm5hbWU9ZS5uYW1lKSx2b2lkIDAhPT1lLmRlc2NyaXB0aW9uJiYocy5kZXNjcmlwdGlvbj1lLmRlc2NyaXB0aW9uKSx2b2lkIDAhPT1lLnRodW1ibmFpbFVybCYmKHMudGh1bWJuYWlsVXJsPWUudGh1bWJuYWlsVXJsKSx2b2lkIDAhPT1lLnVwbG9hZERhdGVNcyYmKHMudXBsb2FkRGF0ZU1zPWUudXBsb2FkRGF0ZU1zKSx2b2lkIDAhPT1lLnZpZXdDb3VudCYmKHMudmlld0NvdW50PWUudmlld0NvdW50KSx2b2lkIDAhPT1lLmNvbnRlbnRVcmwmJihzLmNvbnRlbnRVcmw9ZS5jb250ZW50VXJsKSxcInBlcnNvbkNyZWF0b3JcIj09PShudWxsPT09KHQ9ZS5jcmVhdG9yKXx8dm9pZCAwPT09dD92b2lkIDA6dC4kY2FzZSkmJihzLnBlcnNvbkNyZWF0b3I9bnVsbCE9PShuPWUuY3JlYXRvcikmJnZvaWQgMCE9PW4mJm4ucGVyc29uQ3JlYXRvcj9OKG51bGw9PT0ocj1lLmNyZWF0b3IpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLnBlcnNvbkNyZWF0b3IpOnZvaWQgMCksXCJvcmdhbml6YXRpb25DcmVhdG9yXCI9PT0obnVsbD09PShpPWUuY3JlYXRvcil8fHZvaWQgMD09PWk/dm9pZCAwOmkuJGNhc2UpJiYocy5vcmdhbml6YXRpb25DcmVhdG9yPW51bGwhPT0obz1lLmNyZWF0b3IpJiZ2b2lkIDAhPT1vJiZvLm9yZ2FuaXphdGlvbkNyZWF0b3I/TChudWxsPT09KGE9ZS5jcmVhdG9yKXx8dm9pZCAwPT09YT92b2lkIDA6YS5vcmdhbml6YXRpb25DcmVhdG9yKTp2b2lkIDApLHZvaWQgMCE9PWUuZHVyYXRpb25NcyYmKHMuZHVyYXRpb25Ncz1lLmR1cmF0aW9uTXMpLHZvaWQgMCE9PWUud2lkdGgmJihzLndpZHRoPU1hdGgucm91bmQoZS53aWR0aCkpLHZvaWQgMCE9PWUuaGVpZ2h0JiYocy5oZWlnaHQ9TWF0aC5yb3VuZChlLmhlaWdodCkpLHN9LGZyb21QYXJ0aWFsOmZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYSxzLGMsdSxsLGQscCxmLGgsZyxtPXtuYW1lOlwiXCIsZGVzY3JpcHRpb246XCJcIix0aHVtYm5haWxVcmw6XCJcIix1cGxvYWREYXRlTXM6XCIwXCIsdmlld0NvdW50OlwiMFwiLGNvbnRlbnRVcmw6XCJcIixjcmVhdG9yOnZvaWQgMCxkdXJhdGlvbk1zOlwiMFwiLHdpZHRoOjAsaGVpZ2h0OjB9O3JldHVybiBtLm5hbWU9bnVsbCE9PSh0PWUubmFtZSkmJnZvaWQgMCE9PXQ/dDpcIlwiLG0uZGVzY3JpcHRpb249bnVsbCE9PShuPWUuZGVzY3JpcHRpb24pJiZ2b2lkIDAhPT1uP246XCJcIixtLnRodW1ibmFpbFVybD1udWxsIT09KHI9ZS50aHVtYm5haWxVcmwpJiZ2b2lkIDAhPT1yP3I6XCJcIixtLnVwbG9hZERhdGVNcz1udWxsIT09KGk9ZS51cGxvYWREYXRlTXMpJiZ2b2lkIDAhPT1pP2k6XCIwXCIsbS52aWV3Q291bnQ9bnVsbCE9PShvPWUudmlld0NvdW50KSYmdm9pZCAwIT09bz9vOlwiMFwiLG0uY29udGVudFVybD1udWxsIT09KGE9ZS5jb250ZW50VXJsKSYmdm9pZCAwIT09YT9hOlwiXCIsXCJwZXJzb25DcmVhdG9yXCI9PT0obnVsbD09PShzPWUuY3JlYXRvcil8fHZvaWQgMD09PXM/dm9pZCAwOnMuJGNhc2UpJiZ2b2lkIDAhPT0obnVsbD09PShjPWUuY3JlYXRvcil8fHZvaWQgMD09PWM/dm9pZCAwOmMucGVyc29uQ3JlYXRvcikmJm51bGwhPT0obnVsbD09PSh1PWUuY3JlYXRvcil8fHZvaWQgMD09PXU/dm9pZCAwOnUucGVyc29uQ3JlYXRvcikmJihtLmNyZWF0b3I9eyRjYXNlOlwicGVyc29uQ3JlYXRvclwiLHBlcnNvbkNyZWF0b3I6ayhlLmNyZWF0b3IucGVyc29uQ3JlYXRvcil9KSxcIm9yZ2FuaXphdGlvbkNyZWF0b3JcIj09PShudWxsPT09KGw9ZS5jcmVhdG9yKXx8dm9pZCAwPT09bD92b2lkIDA6bC4kY2FzZSkmJnZvaWQgMCE9PShudWxsPT09KGQ9ZS5jcmVhdG9yKXx8dm9pZCAwPT09ZD92b2lkIDA6ZC5vcmdhbml6YXRpb25DcmVhdG9yKSYmbnVsbCE9PShudWxsPT09KHA9ZS5jcmVhdG9yKXx8dm9pZCAwPT09cD92b2lkIDA6cC5vcmdhbml6YXRpb25DcmVhdG9yKSYmKG0uY3JlYXRvcj17JGNhc2U6XCJvcmdhbml6YXRpb25DcmVhdG9yXCIsb3JnYW5pemF0aW9uQ3JlYXRvcjpCKGUuY3JlYXRvci5vcmdhbml6YXRpb25DcmVhdG9yKX0pLG0uZHVyYXRpb25Ncz1udWxsIT09KGY9ZS5kdXJhdGlvbk1zKSYmdm9pZCAwIT09Zj9mOlwiMFwiLG0ud2lkdGg9bnVsbCE9PShoPWUud2lkdGgpJiZ2b2lkIDAhPT1oP2g6MCxtLmhlaWdodD1udWxsIT09KGc9ZS5oZWlnaHQpJiZ2b2lkIDAhPT1nP2c6MCxtfX07dmFyIGo9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuXCJcIiE9PWUudXJsJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUudXJsKSxcIlwiIT09ZS5mYWxsYmFja1VybCYmdC51aW50MzIoMTgpLnN0cmluZyhlLmZhbGxiYWNrVXJsKSx0fSx4PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvKCkuUmVhZGVyP2U6bmV3KG8oKS5SZWFkZXIpKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9e3VybDpcIlwiLGZhbGxiYWNrVXJsOlwiXCJ9O24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO3N3aXRjaChhPj4+Myl7Y2FzZSAxOmkudXJsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkuZmFsbGJhY2tVcmw9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LFU9ZnVuY3Rpb24oZSl7cmV0dXJue3VybDpWKGUudXJsKT9TdHJpbmcoZS51cmwpOlwiXCIsZmFsbGJhY2tVcmw6VihlLmZhbGxiYWNrVXJsKT9TdHJpbmcoZS5mYWxsYmFja1VybCk6XCJcIn19LEY9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUudXJsJiYodC51cmw9ZS51cmwpLHZvaWQgMCE9PWUuZmFsbGJhY2tVcmwmJih0LmZhbGxiYWNrVXJsPWUuZmFsbGJhY2tVcmwpLHR9LEg9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPXt1cmw6XCJcIixmYWxsYmFja1VybDpcIlwifTtyZXR1cm4gci51cmw9bnVsbCE9PSh0PWUudXJsKSYmdm9pZCAwIT09dD90OlwiXCIsci5mYWxsYmFja1VybD1udWxsIT09KG49ZS5mYWxsYmFja1VybCkmJnZvaWQgMCE9PW4/bjpcIlwiLHJ9O3ZhciBHPXtlbmNvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuIHZvaWQgMCE9PWUuYXZhdGFySW1hZ2UmJmooZS5hdmF0YXJJbWFnZSx0LnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKSx2b2lkIDAhPT1lLmJhY2tncm91bmRJbWFnZSYmaihlLmJhY2tncm91bmRJbWFnZSx0LnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17YXZhdGFySW1hZ2U6dm9pZCAwLGJhY2tncm91bmRJbWFnZTp2b2lkIDB9O24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO3N3aXRjaChhPj4+Myl7Y2FzZSAxOmkuYXZhdGFySW1hZ2U9eChuLG4udWludDMyKCkpO2JyZWFrO2Nhc2UgMjppLmJhY2tncm91bmRJbWFnZT14KG4sbi51aW50MzIoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmYSl9fXJldHVybiBpfSxmcm9tSlNPTjpmdW5jdGlvbihlKXtyZXR1cm57YXZhdGFySW1hZ2U6VihlLmF2YXRhckltYWdlKT9VKGUuYXZhdGFySW1hZ2UpOnZvaWQgMCxiYWNrZ3JvdW5kSW1hZ2U6VihlLmJhY2tncm91bmRJbWFnZSk/VShlLmJhY2tncm91bmRJbWFnZSk6dm9pZCAwfX0sdG9KU09OOmZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiB2b2lkIDAhPT1lLmF2YXRhckltYWdlJiYodC5hdmF0YXJJbWFnZT1lLmF2YXRhckltYWdlP0YoZS5hdmF0YXJJbWFnZSk6dm9pZCAwKSx2b2lkIDAhPT1lLmJhY2tncm91bmRJbWFnZSYmKHQuYmFja2dyb3VuZEltYWdlPWUuYmFja2dyb3VuZEltYWdlP0YoZS5iYWNrZ3JvdW5kSW1hZ2UpOnZvaWQgMCksdH0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQ9e2F2YXRhckltYWdlOnZvaWQgMCxiYWNrZ3JvdW5kSW1hZ2U6dm9pZCAwfTtyZXR1cm4gdC5hdmF0YXJJbWFnZT12b2lkIDAhPT1lLmF2YXRhckltYWdlJiZudWxsIT09ZS5hdmF0YXJJbWFnZT9IKGUuYXZhdGFySW1hZ2UpOnZvaWQgMCx0LmJhY2tncm91bmRJbWFnZT12b2lkIDAhPT1lLmJhY2tncm91bmRJbWFnZSYmbnVsbCE9PWUuYmFja2dyb3VuZEltYWdlP0goZS5iYWNrZ3JvdW5kSW1hZ2UpOnZvaWQgMCx0fX07ZnVuY3Rpb24gVyhlKXtyZXR1cm4gZS50b1N0cmluZygpfWZ1bmN0aW9uIFYoZSl7cmV0dXJuIG51bGwhPT1lJiZ2b2lkIDAhPT1lfW8oKS51dGlsLkxvbmchPT1yLlomJihvKCkudXRpbC5Mb25nPXIuWixvKCkuY29uZmlndXJlKCkpfSw4NzM3MzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0J0OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LFA5OmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGVjOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHlIOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHI9big3MjA4MCksaT1uKDYyMTAwKSxvPW4ubihpKTt2YXIgYT17ZW5jb2RlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpvKCkuV3JpdGVyLmNyZWF0ZSgpO3JldHVyblwiXCIhPT1lLnZhbHVlJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUudmFsdWUpLHR9LGRlY29kZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lIGluc3RhbmNlb2YgbygpLlJlYWRlcj9lOm5ldyhvKCkuUmVhZGVyKShlKSxyPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdCxpPXt2YWx1ZTpcIlwifTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtpZihhPj4+Mz09PTEpaS52YWx1ZT1uLnN0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmEpfXJldHVybiBpfSxmcm9tSlNPTjpmdW5jdGlvbihlKXtyZXR1cm57dmFsdWU6bChlLnZhbHVlKT9TdHJpbmcoZS52YWx1ZSk6XCJcIn19LHRvSlNPTjpmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdm9pZCAwIT09ZS52YWx1ZSYmKHQudmFsdWU9ZS52YWx1ZSksdH0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQsbj17dmFsdWU6XCJcIn07cmV0dXJuIG4udmFsdWU9bnVsbCE9PSh0PWUudmFsdWUpJiZ2b2lkIDAhPT10P3Q6XCJcIixufX07dmFyIHM9e2VuY29kZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bygpLldyaXRlci5jcmVhdGUoKTtyZXR1cm4gMCE9PWUudmFsdWUmJnQudWludDMyKDkpLmRvdWJsZShlLnZhbHVlKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17dmFsdWU6MH07bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7aWYoYT4+PjM9PT0xKWkudmFsdWU9bi5kb3VibGUoKTtlbHNlIG4uc2tpcFR5cGUoNyZhKX1yZXR1cm4gaX0sZnJvbUpTT046ZnVuY3Rpb24oZSl7cmV0dXJue3ZhbHVlOmwoZS52YWx1ZSk/TnVtYmVyKGUudmFsdWUpOjB9fSx0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUudmFsdWUmJih0LnZhbHVlPWUudmFsdWUpLHR9LGZyb21QYXJ0aWFsOmZ1bmN0aW9uKGUpe3ZhciB0LG49e3ZhbHVlOjB9O3JldHVybiBuLnZhbHVlPW51bGwhPT0odD1lLnZhbHVlKSYmdm9pZCAwIT09dD90OjAsbn19O3ZhciBjPXtlbmNvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8oKS5Xcml0ZXIuY3JlYXRlKCk7cmV0dXJuXCIwXCIhPT1lLnZhbHVlJiZ0LnVpbnQzMig4KS5pbnQ2NChlLnZhbHVlKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8oKS5SZWFkZXI/ZTpuZXcobygpLlJlYWRlcikoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT17dmFsdWU6XCIwXCJ9O24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO2lmKGE+Pj4zPT09MSlpLnZhbHVlPW4uaW50NjQoKS50b1N0cmluZygpO2Vsc2Ugbi5za2lwVHlwZSg3JmEpfXJldHVybiBpfSxmcm9tSlNPTjpmdW5jdGlvbihlKXtyZXR1cm57dmFsdWU6bChlLnZhbHVlKT9TdHJpbmcoZS52YWx1ZSk6XCIwXCJ9fSx0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIHZvaWQgMCE9PWUudmFsdWUmJih0LnZhbHVlPWUudmFsdWUpLHR9LGZyb21QYXJ0aWFsOmZ1bmN0aW9uKGUpe3ZhciB0LG49e3ZhbHVlOlwiMFwifTtyZXR1cm4gbi52YWx1ZT1udWxsIT09KHQ9ZS52YWx1ZSkmJnZvaWQgMCE9PXQ/dDpcIjBcIixufX07dmFyIHU9e2VuY29kZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bygpLldyaXRlci5jcmVhdGUoKTtyZXR1cm4hMD09PWUudmFsdWUmJnQudWludDMyKDgpLmJvb2woZS52YWx1ZSksdH0sZGVjb2RlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvKCkuUmVhZGVyP2U6bmV3KG8oKS5SZWFkZXIpKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9e3ZhbHVlOiExfTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtpZihhPj4+Mz09PTEpaS52YWx1ZT1uLmJvb2woKTtlbHNlIG4uc2tpcFR5cGUoNyZhKX1yZXR1cm4gaX0sZnJvbUpTT046ZnVuY3Rpb24oZSl7cmV0dXJue3ZhbHVlOiEhbChlLnZhbHVlKSYmQm9vbGVhbihlLnZhbHVlKX19LHRvSlNPTjpmdW5jdGlvbihlKXt2YXIgdD17fTtyZXR1cm4gdm9pZCAwIT09ZS52YWx1ZSYmKHQudmFsdWU9ZS52YWx1ZSksdH0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQsbj17dmFsdWU6ITF9O3JldHVybiBuLnZhbHVlPW51bGwhPT0odD1lLnZhbHVlKSYmdm9pZCAwIT09dCYmdCxufX07ZnVuY3Rpb24gbChlKXtyZXR1cm4gbnVsbCE9PWUmJnZvaWQgMCE9PWV9bygpLnV0aWwuTG9uZyE9PXIuWiYmKG8oKS51dGlsLkxvbmc9ci5aLG8oKS5jb25maWd1cmUoKSl9LDQ0MDE5OmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5nZXREb21haW5Mb2NhbGU9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuITF9OyhcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw3OTQyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDg1Njk2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBpPW4oOTI2NDgpLlosbz1uKDE3MjczKS5aLGE9aShuKDY3Mjk0KSkscz1uKDY0OTU3KSxjPW4oNTc5OTUpLHU9bigzMDY0NyksbD1uKDUxOTkyKSxkPW4oOTA2MzkpLHA9big0NDAxOSksZj1uKDcwMjI3KSxoPXt9O2Z1bmN0aW9uIGcoZSx0LG4scil7aWYoZSYmcy5pc0xvY2FsVVJMKHQpKXtQcm9taXNlLnJlc29sdmUoZS5wcmVmZXRjaCh0LG4scikpLmNhdGNoKChmdW5jdGlvbihlKXswfSkpO3ZhciBpPXImJlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygci5sb2NhbGU/ci5sb2NhbGU6ZSYmZS5sb2NhbGU7aFt0K1wiJVwiK24rKGk/XCIlXCIraTpcIlwiKV09ITB9fXZhciBtPWEuZGVmYXVsdC5mb3J3YXJkUmVmKChmdW5jdGlvbihlLHQpe3ZhciBuLGk9ZS5ocmVmLG09ZS5hcyx2PWUuY2hpbGRyZW4sXz1lLnByZWZldGNoLEU9ZS5wYXNzSHJlZixiPWUucmVwbGFjZSxTPWUuc2hhbGxvdyx5PWUuc2Nyb2xsLFQ9ZS5sb2NhbGUsST1lLm9uQ2xpY2ssTz1lLm9uTW91c2VFbnRlcixBPWUub25Ub3VjaFN0YXJ0LEM9ZS5sZWdhY3lCZWhhdmlvcixOPXZvaWQgMD09PUM/ITAhPT1Cb29sZWFuKCExKTpDLGs9byhlLFtcImhyZWZcIixcImFzXCIsXCJjaGlsZHJlblwiLFwicHJlZmV0Y2hcIixcInBhc3NIcmVmXCIsXCJyZXBsYWNlXCIsXCJzaGFsbG93XCIsXCJzY3JvbGxcIixcImxvY2FsZVwiLFwib25DbGlja1wiLFwib25Nb3VzZUVudGVyXCIsXCJvblRvdWNoU3RhcnRcIixcImxlZ2FjeUJlaGF2aW9yXCJdKTtuPXYsIU58fFwic3RyaW5nXCIhPT10eXBlb2YgbiYmXCJudW1iZXJcIiE9PXR5cGVvZiBufHwobj1hLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImFcIixudWxsLG4pKTt2YXIgUD0hMSE9PV8sUj1hLmRlZmF1bHQudXNlQ29udGV4dCh1LlJvdXRlckNvbnRleHQpLHc9YS5kZWZhdWx0LnVzZUNvbnRleHQobC5BcHBSb3V0ZXJDb250ZXh0KTt3JiYoUj13KTt2YXIgTCxCPWEuZGVmYXVsdC51c2VNZW1vKChmdW5jdGlvbigpe3ZhciBlPXMucmVzb2x2ZUhyZWYoUixpLCEwKSx0PXIoZSwyKSxuPXRbMF0sbz10WzFdO3JldHVybntocmVmOm4sYXM6bT9zLnJlc29sdmVIcmVmKFIsbSk6b3x8bn19KSxbUixpLG1dKSxNPUIuaHJlZixEPUIuYXMsaj1hLmRlZmF1bHQudXNlUmVmKE0pLHg9YS5kZWZhdWx0LnVzZVJlZihEKTtOJiYoTD1hLmRlZmF1bHQuQ2hpbGRyZW4ub25seShuKSk7dmFyIFU9Tj9MJiZcIm9iamVjdFwiPT09dHlwZW9mIEwmJkwucmVmOnQsRj1kLnVzZUludGVyc2VjdGlvbih7cm9vdE1hcmdpbjpcIjIwMHB4XCJ9KSxIPXIoRiwzKSxHPUhbMF0sVz1IWzFdLFY9SFsyXSx6PWEuZGVmYXVsdC51c2VDYWxsYmFjaygoZnVuY3Rpb24oZSl7eC5jdXJyZW50PT09RCYmai5jdXJyZW50PT09TXx8KFYoKSx4LmN1cnJlbnQ9RCxqLmN1cnJlbnQ9TSksRyhlKSxVJiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIFU/VShlKTpcIm9iamVjdFwiPT09dHlwZW9mIFUmJihVLmN1cnJlbnQ9ZSkpfSksW0QsVSxNLFYsR10pO2EuZGVmYXVsdC51c2VFZmZlY3QoKGZ1bmN0aW9uKCl7dmFyIGU9VyYmUCYmcy5pc0xvY2FsVVJMKE0pLHQ9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBUP1Q6UiYmUi5sb2NhbGUsbj1oW00rXCIlXCIrRCsodD9cIiVcIit0OlwiXCIpXTtlJiYhbiYmZyhSLE0sRCx7bG9jYWxlOnR9KX0pLFtELE0sVyxULFAsUl0pO3ZhciBLPXtyZWY6eixvbkNsaWNrOmZ1bmN0aW9uKGUpe058fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBJfHxJKGUpLE4mJkwucHJvcHMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBMLnByb3BzLm9uQ2xpY2smJkwucHJvcHMub25DbGljayhlKSxlLmRlZmF1bHRQcmV2ZW50ZWR8fGZ1bmN0aW9uKGUsdCxuLHIsaSxvLGMsdSxsLGQpe2lmKFwiQVwiIT09ZS5jdXJyZW50VGFyZ2V0Lm5vZGVOYW1lLnRvVXBwZXJDYXNlKCl8fCFmdW5jdGlvbihlKXt2YXIgdD1lLmN1cnJlbnRUYXJnZXQudGFyZ2V0O3JldHVybiB0JiZcIl9zZWxmXCIhPT10fHxlLm1ldGFLZXl8fGUuY3RybEtleXx8ZS5zaGlmdEtleXx8ZS5hbHRLZXl8fGUubmF0aXZlRXZlbnQmJjI9PT1lLm5hdGl2ZUV2ZW50LndoaWNofShlKSYmcy5pc0xvY2FsVVJMKG4pKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHA9ZnVuY3Rpb24oKXtcImJlZm9yZVBvcFN0YXRlXCJpbiB0P3RbaT9cInJlcGxhY2VcIjpcInB1c2hcIl0obixyLHtzaGFsbG93Om8sbG9jYWxlOnUsc2Nyb2xsOmN9KTp0W2k/XCJyZXBsYWNlXCI6XCJwdXNoXCJdKG4se2ZvcmNlT3B0aW1pc3RpY05hdmlnYXRpb246IWR9KX07bD9hLmRlZmF1bHQuc3RhcnRUcmFuc2l0aW9uKHApOnAoKX19KGUsUixNLEQsYixTLHksVCxCb29sZWFuKHcpLFApfSxvbk1vdXNlRW50ZXI6ZnVuY3Rpb24oZSl7Tnx8XCJmdW5jdGlvblwiIT09dHlwZW9mIE98fE8oZSksTiYmTC5wcm9wcyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIEwucHJvcHMub25Nb3VzZUVudGVyJiZMLnByb3BzLm9uTW91c2VFbnRlcihlKSwhUCYmd3x8cy5pc0xvY2FsVVJMKE0pJiZnKFIsTSxELHtwcmlvcml0eTohMH0pfSxvblRvdWNoU3RhcnQ6ZnVuY3Rpb24oZSl7Tnx8XCJmdW5jdGlvblwiIT09dHlwZW9mIEF8fEEoZSksTiYmTC5wcm9wcyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIEwucHJvcHMub25Ub3VjaFN0YXJ0JiZMLnByb3BzLm9uVG91Y2hTdGFydChlKSwhUCYmd3x8cy5pc0xvY2FsVVJMKE0pJiZnKFIsTSxELHtwcmlvcml0eTohMH0pfX07aWYoIU58fEV8fFwiYVwiPT09TC50eXBlJiYhKFwiaHJlZlwiaW4gTC5wcm9wcykpe3ZhciBZPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgVD9UOlImJlIubG9jYWxlLHE9UiYmUi5pc0xvY2FsZURvbWFpbiYmcC5nZXREb21haW5Mb2NhbGUoRCxZLFIubG9jYWxlcyxSLmRvbWFpbkxvY2FsZXMpO0suaHJlZj1xfHxmLmFkZEJhc2VQYXRoKGMuYWRkTG9jYWxlKEQsWSxSJiZSLmRlZmF1bHRMb2NhbGUpKX1yZXR1cm4gTj9hLmRlZmF1bHQuY2xvbmVFbGVtZW50KEwsSyk6YS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsT2JqZWN0LmFzc2lnbih7fSxrLEspLG4pfSkpO3QuZGVmYXVsdD1tLChcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSw5MDYzOTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9big4NTY5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC51c2VJbnRlcnNlY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yb290UmVmLG49ZS5yb290TWFyZ2luLHU9ZS5kaXNhYmxlZHx8IWEsbD1pLnVzZVN0YXRlKCExKSxkPXIobCwyKSxwPWRbMF0sZj1kWzFdLGg9aS51c2VTdGF0ZShudWxsKSxnPXIoaCwyKSxtPWdbMF0sdj1nWzFdO2kudXNlRWZmZWN0KChmdW5jdGlvbigpe2lmKGEpe2lmKHV8fHApcmV0dXJuO2lmKG0mJm0udGFnTmFtZSl7dmFyIGU9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWZ1bmN0aW9uKGUpe3ZhciB0LG49e3Jvb3Q6ZS5yb290fHxudWxsLG1hcmdpbjplLnJvb3RNYXJnaW58fFwiXCJ9LHI9Yy5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS5yb290PT09bi5yb290JiZlLm1hcmdpbj09PW4ubWFyZ2lufSkpO2lmKHImJih0PXMuZ2V0KHIpKSlyZXR1cm4gdDt2YXIgaT1uZXcgTWFwLG89bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChmdW5jdGlvbihlKXtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PWkuZ2V0KGUudGFyZ2V0KSxuPWUuaXNJbnRlcnNlY3Rpbmd8fGUuaW50ZXJzZWN0aW9uUmF0aW8+MDt0JiZuJiZ0KG4pfSkpfSksZSk7cmV0dXJuIHQ9e2lkOm4sb2JzZXJ2ZXI6byxlbGVtZW50czppfSxjLnB1c2gobikscy5zZXQobix0KSx0fShuKSxpPXIuaWQsbz1yLm9ic2VydmVyLGE9ci5lbGVtZW50cztyZXR1cm4gYS5zZXQoZSx0KSxvLm9ic2VydmUoZSksZnVuY3Rpb24oKXtpZihhLmRlbGV0ZShlKSxvLnVub2JzZXJ2ZShlKSwwPT09YS5zaXplKXtvLmRpc2Nvbm5lY3QoKSxzLmRlbGV0ZShpKTt2YXIgdD1jLmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucm9vdD09PWkucm9vdCYmZS5tYXJnaW49PT1pLm1hcmdpbn0pKTt0Pi0xJiZjLnNwbGljZSh0LDEpfX19KG0sKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZmKGUpfSkse3Jvb3Q6bnVsbD09dD92b2lkIDA6dC5jdXJyZW50LHJvb3RNYXJnaW46bn0pO3JldHVybiBlfX1lbHNlIGlmKCFwKXt2YXIgcj1vLnJlcXVlc3RJZGxlQ2FsbGJhY2soKGZ1bmN0aW9uKCl7cmV0dXJuIGYoITApfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBvLmNhbmNlbElkbGVDYWxsYmFjayhyKX19fSksW20sdSxuLHQscF0pO3ZhciBfPWkudXNlQ2FsbGJhY2soKGZ1bmN0aW9uKCl7ZighMSl9KSxbXSk7cmV0dXJuW3YscCxfXX07dmFyIGk9big2NzI5NCksbz1uKDI2Mjg2KSxhPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcixzPW5ldyBNYXAsYz1bXTsoXCJmdW5jdGlvblwiPT09dHlwZW9mIHQuZGVmYXVsdHx8XCJvYmplY3RcIj09PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZcInVuZGVmaW5lZFwiPT09dHlwZW9mIHQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxlLmV4cG9ydHM9dC5kZWZhdWx0KX0sMjI3NDE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPW4oMzMyMjcpLGk9big4ODM2MSksbz1uKDg1OTcxKSxhPW4oNTI3MTUpLHM9big5MTE5MyksYz1uKDg3Nzk0KTtmdW5jdGlvbiB1KGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPXMoZSk7aWYodCl7dmFyIGk9cyh0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KHIsYXJndW1lbnRzLGkpfWVsc2Ugbj1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYSh0aGlzLG4pfX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIkFwcEluaXRpYWxQcm9wc1wiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLkFwcEluaXRpYWxQcm9wc319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIk5leHRXZWJWaXRhbHNNZXRyaWNcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5OZXh0V2ViVml0YWxzTWV0cmljfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiQXBwVHlwZVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLkFwcFR5cGV9fSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgbD1uKDYwOTMyKS5aLGQ9KDAsbig5MjY0OCkuWikobig2NzI5NCkpLHA9big5OTQ3NSk7ZnVuY3Rpb24gZihlKXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaCgpe3JldHVybihoPWwoYy5tYXJrKChmdW5jdGlvbiBlKHQpe3ZhciBuLHIsaTtyZXR1cm4gYy53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj10LkNvbXBvbmVudCxyPXQuY3R4LGUubmV4dD0zLHAubG9hZEdldEluaXRpYWxQcm9wcyhuLHIpO2Nhc2UgMzpyZXR1cm4gaT1lLnNlbnQsZS5hYnJ1cHQoXCJyZXR1cm5cIix7cGFnZVByb3BzOml9KTtjYXNlIDU6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBnPWZ1bmN0aW9uKGUpe28obixlKTt2YXIgdD11KG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4gcih0aGlzLG4pLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBpKG4sW3trZXk6XCJyZW5kZXJcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMsdD1lLkNvbXBvbmVudCxuPWUucGFnZVByb3BzO3JldHVybiBkLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh0LE9iamVjdC5hc3NpZ24oe30sbikpfX1dKSxufShkLmRlZmF1bHQuQ29tcG9uZW50KTtnLm9yaWdHZXRJbml0aWFsUHJvcHM9ZixnLmdldEluaXRpYWxQcm9wcz1mLHQuZGVmYXVsdD1nfSw1MTk5MjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5UZW1wbGF0ZUNvbnRleHQ9dC5HbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0PXQuTGF5b3V0Um91dGVyQ29udGV4dD10LkFwcFJvdXRlckNvbnRleHQ9dm9pZCAwO3ZhciByPSgwLG4oOTI2NDgpLlopKG4oNjcyOTQpKSxpPXIuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO3QuQXBwUm91dGVyQ29udGV4dD1pO3ZhciBvPXIuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO3QuTGF5b3V0Um91dGVyQ29udGV4dD1vO3ZhciBhPXIuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO3QuR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dD1hO3ZhciBzPXIuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpO3QuVGVtcGxhdGVDb250ZXh0PXN9LDczNTc5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1vLmRlZmF1bHQsaT0obnVsbD09dD92b2lkIDA6dC5zdXNwZW5zZSk/e306e2xvYWRpbmc6ZnVuY3Rpb24oZSl7ZS5lcnJvcixlLmlzTG9hZGluZztyZXR1cm4gZS5wYXN0RGVsYXksbnVsbH19O2UgaW5zdGFuY2VvZiBQcm9taXNlP2kubG9hZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGV9OlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlP2kubG9hZGVyPWU6XCJvYmplY3RcIj09PXR5cGVvZiBlJiYoaT1yKHt9LGksZSkpOyExOyhpPXIoe30saSx0KSkuc3VzcGVuc2UmJihkZWxldGUgaS5zc3IsZGVsZXRlIGkubG9hZGluZyk7aS5sb2FkYWJsZUdlbmVyYXRlZCYmZGVsZXRlKGk9cih7fSxpLGkubG9hZGFibGVHZW5lcmF0ZWQpKS5sb2FkYWJsZUdlbmVyYXRlZDtpZihcImJvb2xlYW5cIj09PXR5cGVvZiBpLnNzciYmIWkuc3VzcGVuc2Upe2lmKCFpLnNzcilyZXR1cm4gZGVsZXRlIGkuc3NyLGEobixpKTtkZWxldGUgaS5zc3J9cmV0dXJuIG4oaSl9LHQubm9TU1I9YTt2YXIgcj1uKDY0OTUpLlosaT1uKDkyNjQ4KS5aLG89KGkobig2NzI5NCkpLGkobigyMzY2OCkpKTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGRlbGV0ZSB0LndlYnBhY2ssZGVsZXRlIHQubW9kdWxlcyxlKHQpfShcImZ1bmN0aW9uXCI9PT10eXBlb2YgdC5kZWZhdWx0fHxcIm9iamVjdFwiPT09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJlwidW5kZWZpbmVkXCI9PT10eXBlb2YgdC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLGUuZXhwb3J0cz10LmRlZmF1bHQpfSwzOTgyOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LkxvYWRhYmxlQ29udGV4dD12b2lkIDA7dmFyIHI9KDAsbig5MjY0OCkuWikobig2NzI5NCkpLmRlZmF1bHQuY3JlYXRlQ29udGV4dChudWxsKTt0LkxvYWRhYmxlQ29udGV4dD1yfSwyMzY2ODpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bigzMzIyNyksaT1uKDg4MzYxKTtmdW5jdGlvbiBvKGUsdCl7dmFyIG49XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYoIW4pe2lmKEFycmF5LmlzQXJyYXkoZSl8fChuPWZ1bmN0aW9uKGUsdCl7aWYoIWUpcmV0dXJuO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZSlyZXR1cm4gYShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKTtpZihcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20oZSk7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBhKGUsdCl9KGUpKXx8dCYmZSYmXCJudW1iZXJcIj09PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxpPWZ1bmN0aW9uKCl7fTtyZXR1cm57czppLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjppfX10aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9dmFyIG8scz0hMCxjPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gcz1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtjPSEwLG89ZX0sZjpmdW5jdGlvbigpe3RyeXtzfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKGMpdGhyb3cgb319fX1mdW5jdGlvbiBhKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt2YXIgcz1uKDY0OTUpLlosYz0oMCxuKDkyNjQ4KS5aKShuKDY3Mjk0KSksdT1uKDM5ODIpLGw9big2NzI5NCkudXNlU3luY0V4dGVybmFsU3RvcmUsZD1bXSxwPVtdLGY9ITE7ZnVuY3Rpb24gaChlKXt2YXIgdD1lKCksbj17bG9hZGluZzohMCxsb2FkZWQ6bnVsbCxlcnJvcjpudWxsfTtyZXR1cm4gbi5wcm9taXNlPXQudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4ubG9hZGluZz0hMSxuLmxvYWRlZD1lLGV9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3Rocm93IG4ubG9hZGluZz0hMSxuLmVycm9yPWUsZX0pKSxufXZhciBnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4pe3IodGhpcyxlKSx0aGlzLl9sb2FkRm49dCx0aGlzLl9vcHRzPW4sdGhpcy5fY2FsbGJhY2tzPW5ldyBTZXQsdGhpcy5fZGVsYXk9bnVsbCx0aGlzLl90aW1lb3V0PW51bGwsdGhpcy5yZXRyeSgpfXJldHVybiBpKGUsW3trZXk6XCJwcm9taXNlXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVzLnByb21pc2V9fSx7a2V5OlwicmV0cnlcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fY2xlYXJUaW1lb3V0cygpLHRoaXMuX3Jlcz10aGlzLl9sb2FkRm4odGhpcy5fb3B0cy5sb2FkZXIpLHRoaXMuX3N0YXRlPXtwYXN0RGVsYXk6ITEsdGltZWRPdXQ6ITF9O3ZhciB0PXRoaXMuX3JlcyxuPXRoaXMuX29wdHM7dC5sb2FkaW5nJiYoXCJudW1iZXJcIj09PXR5cGVvZiBuLmRlbGF5JiYoMD09PW4uZGVsYXk/dGhpcy5fc3RhdGUucGFzdERlbGF5PSEwOnRoaXMuX2RlbGF5PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5fdXBkYXRlKHtwYXN0RGVsYXk6ITB9KX0pLG4uZGVsYXkpKSxcIm51bWJlclwiPT09dHlwZW9mIG4udGltZW91dCYmKHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLl91cGRhdGUoe3RpbWVkT3V0OiEwfSl9KSxuLnRpbWVvdXQpKSksdGhpcy5fcmVzLnByb21pc2UudGhlbigoZnVuY3Rpb24oKXtlLl91cGRhdGUoe30pLGUuX2NsZWFyVGltZW91dHMoKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7ZS5fdXBkYXRlKHt9KSxlLl9jbGVhclRpbWVvdXRzKCl9KSksdGhpcy5fdXBkYXRlKHt9KX19LHtrZXk6XCJfdXBkYXRlXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fc3RhdGU9cyh7fSx0aGlzLl9zdGF0ZSx7ZXJyb3I6dGhpcy5fcmVzLmVycm9yLGxvYWRlZDp0aGlzLl9yZXMubG9hZGVkLGxvYWRpbmc6dGhpcy5fcmVzLmxvYWRpbmd9LGUpLHRoaXMuX2NhbGxiYWNrcy5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSkpfX0se2tleTpcIl9jbGVhclRpbWVvdXRzXCIsdmFsdWU6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fZGVsYXkpLGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KX19LHtrZXk6XCJnZXRDdXJyZW50VmFsdWVcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX19LHtrZXk6XCJzdWJzY3JpYmVcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9jYWxsYmFja3MuYWRkKGUpLGZ1bmN0aW9uKCl7dC5fY2FsbGJhY2tzLmRlbGV0ZShlKX19fV0pLGV9KCk7ZnVuY3Rpb24gbShlKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3QuYXNzaWduKHtsb2FkZXI6bnVsbCxsb2FkaW5nOm51bGwsZGVsYXk6MjAwLHRpbWVvdXQ6bnVsbCx3ZWJwYWNrOm51bGwsbW9kdWxlczpudWxsLHN1c3BlbnNlOiExfSx0KTtuLnN1c3BlbnNlJiYobi5sYXp5PWMuZGVmYXVsdC5sYXp5KG4ubG9hZGVyKSk7dmFyIHI9bnVsbDtmdW5jdGlvbiBpKCl7aWYoIXIpe3ZhciB0PW5ldyBnKGUsbik7cj17Z2V0Q3VycmVudFZhbHVlOnQuZ2V0Q3VycmVudFZhbHVlLmJpbmQodCksc3Vic2NyaWJlOnQuc3Vic2NyaWJlLmJpbmQodCkscmV0cnk6dC5yZXRyeS5iaW5kKHQpLHByb21pc2U6dC5wcm9taXNlLmJpbmQodCl9fXJldHVybiByLnByb21pc2UoKX1pZighZil7dmFyIGE9bi53ZWJwYWNrP24ud2VicGFjaygpOm4ubW9kdWxlczthJiZwLnB1c2goKGZ1bmN0aW9uKGUpe3ZhciB0LG49byhhKTt0cnl7Zm9yKG4ucygpOyEodD1uLm4oKSkuZG9uZTspe3ZhciByPXQudmFsdWU7aWYoLTEhPT1lLmluZGV4T2YocikpcmV0dXJuIGkoKX19Y2F0Y2gocyl7bi5lKHMpfWZpbmFsbHl7bi5mKCl9fSkpfWZ1bmN0aW9uIGQoKXtpKCk7dmFyIGU9Yy5kZWZhdWx0LnVzZUNvbnRleHQodS5Mb2FkYWJsZUNvbnRleHQpO2UmJkFycmF5LmlzQXJyYXkobi5tb2R1bGVzKSYmbi5tb2R1bGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2UodCl9KSl9dmFyIGg9bi5zdXNwZW5zZT9mdW5jdGlvbihlLHQpe3JldHVybiBkKCksYy5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobi5sYXp5LHMoe30sZSx7cmVmOnR9KSl9OmZ1bmN0aW9uKGUsdCl7ZCgpO3ZhciBpPWwoci5zdWJzY3JpYmUsci5nZXRDdXJyZW50VmFsdWUsci5nZXRDdXJyZW50VmFsdWUpO3JldHVybiBjLmRlZmF1bHQudXNlSW1wZXJhdGl2ZUhhbmRsZSh0LChmdW5jdGlvbigpe3JldHVybntyZXRyeTpyLnJldHJ5fX0pLFtdKSxjLmRlZmF1bHQudXNlTWVtbygoZnVuY3Rpb24oKXtyZXR1cm4gaS5sb2FkaW5nfHxpLmVycm9yP2MuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG4ubG9hZGluZyx7aXNMb2FkaW5nOmkubG9hZGluZyxwYXN0RGVsYXk6aS5wYXN0RGVsYXksdGltZWRPdXQ6aS50aW1lZE91dCxlcnJvcjppLmVycm9yLHJldHJ5OnIucmV0cnl9KTppLmxvYWRlZD9jLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgodD1pLmxvYWRlZCkmJnQuX19lc01vZHVsZT90LmRlZmF1bHQ6dCxlKTpudWxsO3ZhciB0fSksW2UsaV0pfTtyZXR1cm4gaC5wcmVsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIGkoKX0saC5kaXNwbGF5TmFtZT1cIkxvYWRhYmxlQ29tcG9uZW50XCIsYy5kZWZhdWx0LmZvcndhcmRSZWYoaCl9KGgsZSl9ZnVuY3Rpb24gdihlLHQpe2Zvcih2YXIgbj1bXTtlLmxlbmd0aDspe3ZhciByPWUucG9wKCk7bi5wdXNoKHIodCkpfXJldHVybiBQcm9taXNlLmFsbChuKS50aGVuKChmdW5jdGlvbigpe2lmKGUubGVuZ3RoKXJldHVybiB2KGUsdCl9KSl9bS5wcmVsb2FkQWxsPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLHQpe3YoZCkudGhlbihlLHQpfSkpfSxtLnByZWxvYWRSZWFkeT1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe3ZhciBuPWZ1bmN0aW9uKCl7cmV0dXJuIGY9ITAsdCgpfTt2KHAsZSkudGhlbihuLG4pfSkpfSx3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWT1tLnByZWxvYWRSZWFkeTt2YXIgXz1tO3QuZGVmYXVsdD1ffSw3ODc4NzpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0dvOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LFhoOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGlrOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9big2NzI5NCksaT1uKDc0ODExKSxvPXt3ZWJDbGllbnRJZDp2b2lkIDAsc2Vzc2lvbklkOnZvaWQgMH0sYT0oMCxyLmNyZWF0ZUNvbnRleHQpKG8pO2Z1bmN0aW9uIHMoZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUudmFsdWU7cmV0dXJuKDAsaS50WikoYS5Qcm92aWRlcix7dmFsdWU6bixjaGlsZHJlbjp0fSl9ZnVuY3Rpb24gYygpe3ZhciBlPSgwLHIudXNlQ29udGV4dCkoYSk7aWYodm9pZCAwIT09ZSlyZXR1cm4gZS53ZWJDbGllbnRJZDtjb25zb2xlLmVycm9yKFwiUm9vdENvbnRleHQgaXMgdW5kZWZpbmVkXCIpfWZ1bmN0aW9uIHUoKXt2YXIgZT0oMCxyLnVzZUNvbnRleHQpKGEpO2lmKHZvaWQgMCE9PWUpcmV0dXJuIGUuc2Vzc2lvbklkO2NvbnNvbGUuZXJyb3IoXCJSb290Q29udGV4dCBpcyB1bmRlZmluZWRcIil9fSw2MDQ3NjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQseyRVOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LEIkOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LEVoOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LG06ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc2I6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sc2s6ZnVuY3Rpb24oKXtyZXR1cm4gYn19KTt2YXIgcj1uKDI3ODEyKSxpPW4oNzM1MTcpLG89bigzNjgwOCksYT1uLm4obykscz1uKDY3MzYxKSxjPW4oNTA3NyksdT1uKDgzMDcxKSxsPW4oNjcyOTQpLGQ9XCJzYy1zdmhcIixwPVwic2Mtc3JoXCIsZj1mdW5jdGlvbihlLHQsbixyLG8sYyx1LGwpe2lmKCgwLHMuaGFzQWNjZXB0ZWRTQ0Nvb2tpZXMpKCkpe2lmKGUmJiFtKGUsdCkpe3ZhciBkLHA9dCYmdC5zcGxpdChcIixcIil8fFtdLGY9ZyhwLG8sYykuam9pbihcIixcIik7aWYoaChmLHIpKXsoMCxpLk84KShcIlwiLmNvbmNhdChuLFwiLmNvb2tpZS5saW1pdE1ldFwiKSk7dmFyIHY9Zi5zcGxpdChcIixcIik7di5zaGlmdCgpLGQ9XCJcIi5jb25jYXQodi5qb2luKFwiLFwiKSxcIixcIikuY29uY2F0KGUpfWVsc2UgZD1mP1wiXCIuY29uY2F0KGYsXCIsXCIpLmNvbmNhdChlKTplO3JldHVybiBmdW5jdGlvbihlLHQsbixyKXt0PyhhKCkucmVtb3ZlKGUpLGEoKS5zZXQoZSxyLG4pKTphKCkuc2V0KGUscixuKX0odSx0LGwsZCl9fWVsc2UoMCxpLk84KShcIlwiLmNvbmNhdChuLFwiLmNvb2tpZS5ub3RBY2NlcHRlZFwiKSl9LGg9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnNwbGl0KFwiLFwiKTtyZXR1cm4gbiYmbi5sZW5ndGg9PT10fSxnPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1bXTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbz10LmV4ZWMoZSk7ZS5sZW5ndGg+bnx8IW98fG8ubGVuZ3RoPDE/KDAsaS5POCkoXCJWaWV3SGlzdG9yeS5WYWxpZGF0aW9uLkZhaWxlZFwiKTpyLnB1c2goZSl9KSkscn0sbT1mdW5jdGlvbihlLHQpe2lmKCF0KXJldHVybiExO3ZhciBuPXQuc3BsaXQoXCIsXCIpLmluZGV4T2YoZSk7cmV0dXJuIW58fCEoLTE9PT1uKX0sdj1mdW5jdGlvbihlKXtyZXR1cm5bZSxhKCkuZ2V0KGUpXX0sXz1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQ9YSgpLmdldCgpO3JldHVybiBPYmplY3Qua2V5cyh0KS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoZSl9KSkuZmxhdE1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV0uc3BsaXQoXCIsXCIpfSkpfShlKTtyZXR1cm4gZyhyLHQsbil9LEU9ZnVuY3Rpb24oZSx0KXsoMCxpLk5DKShcIlwiLmNvbmNhdCh0LFwiLmZlZWQuZmlsdGVyXCIpLGUubGVuZ3RoKSwoMCxpLk84KShcIlwiLmNvbmNhdCh0LFwiLmZlZWQuZmlsdGVyLnJlcXVlc3RcIikpO3ZhciBuPWUubWFwKChmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gbnVsbD09PSh0PWUuc3RvcnkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnN0b3J5VGFwSWR9KSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hIWV9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxvPV8oZCxjLmJSLGMuUDQpLGE9XyhwLHUuRTAsdS5GTSk7cmV0dXJuW10uY29uY2F0KCgwLHIuWikobiksKDAsci5aKShvKSwoMCxyLlopKGEpKX0sYj1mdW5jdGlvbigpe3ZhciBlPSgwLGwudXNlU3RhdGUpKCksdD1lWzBdLG49ZVsxXTtyZXR1cm4oMCxsLnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7bigoMCxzLnRyeUdldEFjdGl2ZVNlc3Npb24pKCkpfSksW10pLHR9fSw4MzA3MTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0UwOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LEZNOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LExpOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7dmFyIHI9bigxNjgzNSksaT1uKDYwNDc2KSxvPXtwYXRoOlwiL3Nwb3RsaWdodFwiLGV4cGlyZXM6MTR9LGE9L14tP1xcZCokLyxzPTIwLGM9ZnVuY3Rpb24oZSx0KXt2YXIgbj0obmV3IERhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygpLGM9XCJcIi5jb25jYXQoaS5zYixcIi1cIikuY29uY2F0KG4pLHU9KDAsaS5FaCkoYyksbD0oMCxyLlopKHUsMiksZD1sWzBdLHA9bFsxXTtpZihlKXJldHVybigwLGkuJFUpKGUscCx0LDE1MCxhLHMsZCxvKX19LDUwNzc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtQNDpmdW5jdGlvbigpe3JldHVybiBhfSxiUjpmdW5jdGlvbigpe3JldHVybiBzfSx6djpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPW4oMTY4MzUpLGk9big2MDQ3Niksbz17cGF0aDpcIi9zcG90bGlnaHRcIixleHBpcmVzOjF9LGE9MjAscz0vXi0/XFxkKiQvLGM9ZnVuY3Rpb24oZSx0KXt2YXIgbixjPShuZXcgRGF0ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCksdT1cIlwiLmNvbmNhdChpLm0sXCItXCIpLmNvbmNhdChjKSxsPSgwLGkuRWgpKHUpLGQ9KDAsci5aKShsLDIpLHA9ZFswXSxmPWRbMV0saD1udWxsPT09KG49ZS5zdG9yeSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc3RvcnlUYXBJZDtpZihudWxsIT1oKXJldHVybigwLGkuJFUpKGgsZix0LDE1MCxzLGEscCxvKX19LDQ4NDU1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7TTpmdW5jdGlvbigpe3JldHVybiBifX0pO3ZhciByPW4oNTk0OTkpLGk9big1MDAyOSksbz1uKDg3Nzk0KSxhPW4ubihvKSxzPW4oNjQ4NDgpLGM9big5MTk5OCksdT1uKDUwMDI2KSxsPW4oNTk1MiksZD1uKDM3ODcpO2Z1bmN0aW9uIHAoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGYoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/cChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpeygwLHIuWikoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnAoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZygpe3JldHVybihnPSgwLGkuWikoYSgpLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIG4scjtyZXR1cm4gYSgpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiByPW51bGwhPT0obj0oMCxkLmZvcm1hdExvY2FsZSkodCkpJiZ2b2lkIDAhPT1uP246ZC5Mb2NhbGUuZW5VUyxlLnQwPWYsZS50MT1mLGUudDI9ZixlLnQzPWYsZS50ND17fSxlLm5leHQ9OCwoMCxzLmxvYWRNZXNzYWdlcykocik7Y2FzZSA4OnJldHVybiBlLnQ1PWUuc2VudCxlLnQ2PSgwLGUudDMpKGUudDQsZS50NSksZS5uZXh0PTEyLCgwLGMubG9hZE1lc3NhZ2VzKShyKTtjYXNlIDEyOnJldHVybiBlLnQ3PWUuc2VudCxlLnQ4PSgwLGUudDIpKGUudDYsZS50NyksZS5uZXh0PTE2LCgwLHUubG9hZE1lc3NhZ2VzKShyKTtjYXNlIDE2OnJldHVybiBlLnQ5PWUuc2VudCxlLnQxMD0oMCxlLnQxKShlLnQ4LGUudDkpLGUubmV4dD0yMCwoMCxsLmxvYWRNZXNzYWdlcykocik7Y2FzZSAyMDpyZXR1cm4gZS50MTE9ZS5zZW50LGUuYWJydXB0KFwicmV0dXJuXCIsKDAsZS50MCkoZS50MTAsZS50MTEpKTtjYXNlIDIyOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBtKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB2KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP20oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXsoMCxyLlopKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTptKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIF8oZSl7cmV0dXJuIEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEUoKXtyZXR1cm4oRT0oMCxpLlopKGEoKS5tYXJrKChmdW5jdGlvbiBlKHQpe3ZhciByO3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cj10LnRvTG93ZXJDYXNlKCkucmVwbGFjZShcIl9cIixcIi1cIiksZS50MD1yLGUubmV4dD1cImFyXCI9PT1lLnQwfHxcImFyLWFyXCI9PT1lLnQwPzQ6XCJibi1iZFwiPT09ZS50MD83OlwiYm4taW5cIj09PWUudDA/MTA6XCJkYS1ka1wiPT09ZS50MD8xMzpcImRlLWRlXCI9PT1lLnQwPzE2OlwiZW4tZ2JcIj09PWUudDA/MTk6XCJlbC1nclwiPT09ZS50MD8yMjpcImVzXCI9PT1lLnQwfHxcImVzLWVzXCI9PT1lLnQwPzI1OlwiZXMtYXJcIj09PWUudDA/Mjg6XCJlcy1teFwiPT09ZS50MD8zMTpcImZpLWZpXCI9PT1lLnQwPzM0OlwiZmlsLXBoXCI9PT1lLnQwPzM3OlwiZnItZnJcIj09PWUudDA/NDA6XCJndS1pblwiPT09ZS50MD80MzpcImhpLWluXCI9PT1lLnQwPzQ2OlwiaWQtaWRcIj09PWUudDA/NDk6XCJpdC1pdFwiPT09ZS50MD81MjpcImphLWpwXCI9PT1lLnQwPzU1Olwia2EtaW5cIj09PWUudDA/NTg6XCJrby1rclwiPT09ZS50MD82MTpcIm1sLWluXCI9PT1lLnQwPzY0OlwibXItaW5cIj09PWUudDA/Njc6XCJtcy1teVwiPT09ZS50MD83MDpcIm5iLW5vXCI9PT1lLnQwPzczOlwibmwtbmxcIj09PWUudDA/NzY6XCJwYVwiPT09ZS50MD83OTpcInBsLXBsXCI9PT1lLnQwPzgyOlwicHQtYnJcIj09PWUudDA/ODU6XCJwdC1wdFwiPT09ZS50MD84ODpcInJvLXJvXCI9PT1lLnQwPzkxOlwicnUtcnVcIj09PWUudDA/OTQ6XCJzdi1zZVwiPT09ZS50MD85NzpcInRhLWluXCI9PT1lLnQwPzEwMDpcInRlLWluXCI9PT1lLnQwPzEwMzpcInRoLXRoXCI9PT1lLnQwPzEwNjpcInRyLXRyXCI9PT1lLnQwPzEwOTpcInVyLXBrXCI9PT1lLnQwPzExMjpcInZpLXZuXCI9PT1lLnQwPzExNTpcInpoLWhhbnNcIj09PWUudDA/MTE4OlwiemgtaGFudFwiPT09ZS50MD8xMjE6KFwiZW4tcGxvY1wiPT09ZS50MHx8ZS50MCwxMjQpO2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5uZXh0PTYsbi5lKDM5MzMpLnRoZW4obi50LmJpbmQobiwxMzkzMywxOSkpO2Nhc2UgNjpjYXNlIDk6Y2FzZSAxMjpjYXNlIDE1OmNhc2UgMTg6Y2FzZSAyMTpjYXNlIDI0OmNhc2UgMjc6Y2FzZSAzMDpjYXNlIDMzOmNhc2UgMzY6Y2FzZSAzOTpjYXNlIDQyOmNhc2UgNDU6Y2FzZSA0ODpjYXNlIDUxOmNhc2UgNTQ6Y2FzZSA1NzpjYXNlIDYwOmNhc2UgNjM6Y2FzZSA2NjpjYXNlIDY5OmNhc2UgNzI6Y2FzZSA3NTpjYXNlIDc4OmNhc2UgODE6Y2FzZSA4NDpjYXNlIDg3OmNhc2UgOTA6Y2FzZSA5MzpjYXNlIDk2OmNhc2UgOTk6Y2FzZSAxMDI6Y2FzZSAxMDU6Y2FzZSAxMDg6Y2FzZSAxMTE6Y2FzZSAxMTQ6Y2FzZSAxMTc6Y2FzZSAxMjA6Y2FzZSAxMjM6Y2FzZSAxMjY6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsZS5zZW50LmRlZmF1bHQpO2Nhc2UgNzpyZXR1cm4gZS5uZXh0PTksbi5lKDM3MykudGhlbihuLnQuYmluZChuLDcwMzczLDE5KSk7Y2FzZSAxMDpyZXR1cm4gZS5uZXh0PTEyLG4uZSgyNTM0KS50aGVuKG4udC5iaW5kKG4sMzI1MzQsMTkpKTtjYXNlIDEzOnJldHVybiBlLm5leHQ9MTUsbi5lKDUyODUpLnRoZW4obi50LmJpbmQobiw4NTI4NSwxOSkpO2Nhc2UgMTY6cmV0dXJuIGUubmV4dD0xOCxuLmUoNTIxMCkudGhlbihuLnQuYmluZChuLDY1MjEwLDE5KSk7Y2FzZSAxOTpyZXR1cm4gZS5uZXh0PTIxLG4uZSgyMjU4KS50aGVuKG4udC5iaW5kKG4sODIyNTgsMTkpKTtjYXNlIDIyOnJldHVybiBlLm5leHQ9MjQsbi5lKDUzMjkpLnRoZW4obi50LmJpbmQobiw2NTMyOSwxOSkpO2Nhc2UgMjU6cmV0dXJuIGUubmV4dD0yNyxuLmUoNjkwNSkudGhlbihuLnQuYmluZChuLDM2OTA1LDE5KSk7Y2FzZSAyODpyZXR1cm4gZS5uZXh0PTMwLG4uZSg4NDQxKS50aGVuKG4udC5iaW5kKG4sMTg0NDEsMTkpKTtjYXNlIDMxOnJldHVybiBlLm5leHQ9MzMsbi5lKDU2OTIpLnRoZW4obi50LmJpbmQobiw3NTY5MiwxOSkpO2Nhc2UgMzQ6cmV0dXJuIGUubmV4dD0zNixuLmUoMjc1MCkudGhlbihuLnQuYmluZChuLDQyNzUwLDE5KSk7Y2FzZSAzNzpyZXR1cm4gZS5uZXh0PTM5LG4uZSg5Nzk0KS50aGVuKG4udC5iaW5kKG4sNjk3OTQsMTkpKTtjYXNlIDQwOnJldHVybiBlLm5leHQ9NDIsbi5lKDE0NzEpLnRoZW4obi50LmJpbmQobiw2MTQ3MSwxOSkpO2Nhc2UgNDM6cmV0dXJuIGUubmV4dD00NSxuLmUoNzc4OCkudGhlbihuLnQuYmluZChuLDE3Nzg4LDE5KSk7Y2FzZSA0NjpyZXR1cm4gZS5uZXh0PTQ4LG4uZSgxMTU3KS50aGVuKG4udC5iaW5kKG4sMTExNTcsMTkpKTtjYXNlIDQ5OnJldHVybiBlLm5leHQ9NTEsbi5lKDcxNDYpLnRoZW4obi50LmJpbmQobiw0NzE0NiwxOSkpO2Nhc2UgNTI6cmV0dXJuIGUubmV4dD01NCxuLmUoNjAzMSkudGhlbihuLnQuYmluZChuLDU2MDMxLDE5KSk7Y2FzZSA1NTpyZXR1cm4gZS5uZXh0PTU3LG4uZSg0NDIyKS50aGVuKG4udC5iaW5kKG4sNzQ0MjIsMTkpKTtjYXNlIDU4OnJldHVybiBlLm5leHQ9NjAsbi5lKDQxODQpLnRoZW4obi50LmJpbmQobiw5NDE4NCwxOSkpO2Nhc2UgNjE6cmV0dXJuIGUubmV4dD02MyxuLmUoODM0NykudGhlbihuLnQuYmluZChuLDQ4MzQ3LDE5KSk7Y2FzZSA2NDpyZXR1cm4gZS5uZXh0PTY2LG4uZSg4NDkxKS50aGVuKG4udC5iaW5kKG4sMjg0OTEsMTkpKTtjYXNlIDY3OnJldHVybiBlLm5leHQ9Njksbi5lKDI5ODgpLnRoZW4obi50LmJpbmQobiw1Mjk4OCwxOSkpO2Nhc2UgNzA6cmV0dXJuIGUubmV4dD03MixuLmUoODc4OSkudGhlbihuLnQuYmluZChuLDI4Nzg5LDE5KSk7Y2FzZSA3MzpyZXR1cm4gZS5uZXh0PTc1LG4uZSgyNDEzKS50aGVuKG4udC5iaW5kKG4sMjQxMywxOSkpO2Nhc2UgNzY6cmV0dXJuIGUubmV4dD03OCxuLmUoNzk3NCkudGhlbihuLnQuYmluZChuLDU3OTc0LDE5KSk7Y2FzZSA3OTpyZXR1cm4gZS5uZXh0PTgxLG4uZSg1MDgyKS50aGVuKG4udC5iaW5kKG4sODUwODIsMTkpKTtjYXNlIDgyOnJldHVybiBlLm5leHQ9ODQsbi5lKDU4NzcpLnRoZW4obi50LmJpbmQobiw0NTg3NywxOSkpO2Nhc2UgODU6cmV0dXJuIGUubmV4dD04NyxuLmUoOTA2MykudGhlbihuLnQuYmluZChuLDg5MDYzLDE5KSk7Y2FzZSA4ODpyZXR1cm4gZS5uZXh0PTkwLG4uZSgzNTM5KS50aGVuKG4udC5iaW5kKG4sMjM1MzksMTkpKTtjYXNlIDkxOnJldHVybiBlLm5leHQ9OTMsbi5lKDMxNDApLnRoZW4obi50LmJpbmQobiw4MzE0MCwxOSkpO2Nhc2UgOTQ6cmV0dXJuIGUubmV4dD05NixuLmUoOTcwMikudGhlbihuLnQuYmluZChuLDE5NzAyLDE5KSk7Y2FzZSA5NzpyZXR1cm4gZS5uZXh0PTk5LG4uZSgxODQ5KS50aGVuKG4udC5iaW5kKG4sMTE4NDksMTkpKTtjYXNlIDEwMDpyZXR1cm4gZS5uZXh0PTEwMixuLmUoNzQ5MykudGhlbihuLnQuYmluZChuLDk3NDkzLDE5KSk7Y2FzZSAxMDM6cmV0dXJuIGUubmV4dD0xMDUsbi5lKDEwMjUpLnRoZW4obi50LmJpbmQobiw0MTAyNSwxOSkpO2Nhc2UgMTA2OnJldHVybiBlLm5leHQ9MTA4LG4uZSgzMTg3KS50aGVuKG4udC5iaW5kKG4sMjMxODcsMTkpKTtjYXNlIDEwOTpyZXR1cm4gZS5uZXh0PTExMSxuLmUoNDk1MikudGhlbihuLnQuYmluZChuLDU0OTUyLDE5KSk7Y2FzZSAxMTI6cmV0dXJuIGUubmV4dD0xMTQsbi5lKDMyMDEpLnRoZW4obi50LmJpbmQobiwzMjAxLDE5KSk7Y2FzZSAxMTU6cmV0dXJuIGUubmV4dD0xMTcsbi5lKDg2OSkudGhlbihuLnQuYmluZChuLDYwODY5LDE5KSk7Y2FzZSAxMTg6cmV0dXJuIGUubmV4dD0xMjAsbi5lKDE4NjIpLnRoZW4obi50LmJpbmQobiw1MTg2MiwxOSkpO2Nhc2UgMTIxOnJldHVybiBlLm5leHQ9MTIzLG4uZSg4Nzc0KS50aGVuKG4udC5iaW5kKG4sODc3NCwxOSkpO2Nhc2UgMTI0OnJldHVybiBlLm5leHQ9MTI2LG4uZSgyMDA3KS50aGVuKG4udC5iaW5kKG4sODIwMDcsMTkpKTtjYXNlIDEyNzpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYihlKXtyZXR1cm4gUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUygpe3JldHVybihTPSgwLGkuWikoYSgpLm1hcmsoKGZ1bmN0aW9uIGUodCl7cmV0dXJuIGEoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS50MD12LGUudDE9dixlLnQyPXt9LGUubmV4dD01LF8odCk7Y2FzZSA1OnJldHVybiBlLnQzPWUuc2VudCxlLnQ0PSgwLGUudDEpKGUudDIsZS50MyksZS5uZXh0PTksaCh0KTtjYXNlIDk6cmV0dXJuIGUudDU9ZS5zZW50LGUuYWJydXB0KFwicmV0dXJuXCIsKDAsZS50MCkoZS50NCxlLnQ1KSk7Y2FzZSAxMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSw2MDQxMDpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse21QOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHFyOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGJBOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LF9KOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGp1OmZ1bmN0aW9uKCl7cmV0dXJuIG99LHVQOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7dmFyIHI9bigxNTE4NCk7dmFyIGk9XCJodHRwczovL3d3dy5zbmFwY2hhdC5jb20vZG93bmxvYWQvXCIsbz1cImh0dHBzOi8vbXkuc25hcGNoYXQuY29tP3V0bV9zb3VyY2U9c3BvdGxpZ2h0JnV0bV9tZWRpdW09cG9zdFwiLGE9XCJodHRwczovL3NuYXBjaGF0LmNvbS9hZGQvXCIscz1mdW5jdGlvbihlKXt2YXIgdD13aW5kb3cubG9jYXRpb24ub3JpZ2lufHxcImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbVwiO3JldHVyblwiXCIuY29uY2F0KHQsXCIvXCIpLmNvbmNhdChlKX0sYz1mdW5jdGlvbihlKXt2YXIgdD13aW5kb3cubG9jYXRpb24ub3JpZ2lufHxcImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbVwiO3JldHVyblwiaHR0cHM6Ly9zdG9yeS5zbmFwY2hhdC5jb21cIj09dD9cImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9hZGQvXCIuY29uY2F0KGUpOlwiXCIuY29uY2F0KHQsXCIvYWRkL1wiKS5jb25jYXQoZSl9LHU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7aWYoXCJudW1iZXJcIj09PXR5cGVvZiBlKXt2YXIgdD1yLkdWW2VdO3JldHVybiB0P3QudG9TdHJpbmcoKTpyLkdWLlVOU0VULnRvU3RyaW5nKCl9cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBlP2U6ci5HVi5VTlNFVC50b1N0cmluZygpfShlKS50b0xvd2VyQ2FzZSgpO3JldHVyblwiXCIuY29uY2F0KGksXCI/XCIpLmNvbmNhdChcInNwXCIsXCI9XCIpLmNvbmNhdCh0KX19LDk1Mjg2OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7SzpmdW5jdGlvbigpe3JldHVybiBjfSx3OmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7dmFyIHIsaT1uKDMwNjcyKSxvPShuKDI3MDAyKSxuKDY3MzYxKSk7ZnVuY3Rpb24gYShlKXsoMCxpLmlzUnVubmluZ09uU2VydmVyKSgpfHwocnx8KHI9bi5lKDk5NTApLnRoZW4obi50LmJpbmQobiw4OTk1MCwyMykpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlLmRlZmF1bHR9KSkpLHIudGhlbihlKSl9dmFyIHM9ZnVuY3Rpb24oKXt2YXIgZT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO2EoKGZ1bmN0aW9uKHQpe3ZhciBuPSgwLG8uaGFzQWNjZXB0ZWRTQ0Nvb2tpZXMpKCk7dC5zZXRDb29raWVzRW5hYmxlZChlJiZuKSx0LmluaXQoKGZ1bmN0aW9uKCl7fSkpfSkpfSxjPWZ1bmN0aW9uKGUsdCl7YSgoZnVuY3Rpb24obil7bi5sb2coZSx0LHZvaWQgMCx7a2VlcEFsaXZlOiEwfSl9KSl9fSwxOTI5OTpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse0c6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sQTpmdW5jdGlvbigpe3JldHVybiBhfX0pO3ZhciByPW4oMzA2NzIpO3ZhciBpPXtVQUlkOlwiVUEtNDE3NDAwMjctNDBcIixtZWFzdXJlbWVudElkOlwiRy1CNUo2WjNMUU5WXCJ9LG89e1VBSWQ6XCJVQS00MTc0MDAyNy0xXCIsbWVhc3VyZW1lbnRJZDpcIkctRFBESEpCNDMxMFwifTtmdW5jdGlvbiBhKGUpe3ZhciB0LG49ZnVuY3Rpb24oZSl7cmV0dXJuKDAsci5pc1J1bm5pbmdPblNlcnZlcikoKT9mdW5jdGlvbihlKXt2YXIgdD0obnVsbD09PWV8fHZvaWQgMD09PWU/dm9pZCAwOmUuaGVhZGVyc1tcIngtZm9yd2FyZGVkLWhvc3RcIl0pfHwobnVsbD09PWV8fHZvaWQgMD09PWU/dm9pZCAwOmUuaGVhZGVycy5ob3N0KTtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIHQ/dDpcIlwifShlKTpsb2NhdGlvbi5ob3N0fShlKSxhPW51bGw9PT1lfHx2b2lkIDA9PT1lfHxudWxsPT09KHQ9ZS51cmwpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnN0YXJ0c1dpdGgoXCIvYWRkL1wiKTtyZXR1cm4gbi5pbmNsdWRlcyhcInd3dy5zbmFwY2hhdC5jb21cIil8fGE/bzppfX0sNzM1MTc6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtOQzpmdW5jdGlvbigpe3JldHVybiBofSxPODpmdW5jdGlvbigpe3JldHVybiBwfSxQVzpmdW5jdGlvbigpe3JldHVybiBsfSxfdjpmdW5jdGlvbigpe3JldHVybiBtfSx2WTpmdW5jdGlvbigpe3JldHVybiBjfX0pO3ZhciByPW4oNTAwMjkpLGk9big4Nzc5NCksbz1uLm4oaSksYT1uKDQ4ODE0KSxzPVwiV2ViU3Rvcmllc1wiO2Z1bmN0aW9uIGMoZSx0LG4pe3JldHVybiB1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1KCl7cmV0dXJuKHU9KDAsci5aKShvKCkubWFyaygoZnVuY3Rpb24gZSh0LG4scil7cmV0dXJuIG8oKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixhLmluY3JlbWVudFB1Ymxpc2hlclZpZXdDb3VudHNCeVBhZ2Uocyx0LG4scikpO2Nhc2UgMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbChlLHQsbil7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGQoKXtyZXR1cm4oZD0oMCxyLlopKG8oKS5tYXJrKChmdW5jdGlvbiBlKHQsbixyKXtyZXR1cm4gbygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLGEuaW5jcmVtZW50Q291bnRzQnlQYWdlQW5kQ291bnRyeShzLHQsbixyKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKGUpe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmKCl7cmV0dXJuIGY9KDAsci5aKShvKCkubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgbixyLGk9YXJndW1lbnRzO3JldHVybiBvKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49aS5sZW5ndGg+MSYmdm9pZCAwIT09aVsxXT9pWzFdOjEscj1pLmxlbmd0aD4yP2lbMl06dm9pZCAwLGUuYWJydXB0KFwicmV0dXJuXCIsYS5pbmNyZW1lbnRDb3VudGVyKFwiXCIuY29uY2F0KHMsXCIuXCIpLmNvbmNhdCh0KSxuLHIpKTtjYXNlIDM6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKSxmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBoKGUsdCxuKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZygpe3JldHVybihnPSgwLHIuWikobygpLm1hcmsoKGZ1bmN0aW9uIGUodCxuLHIpe3JldHVybiBvKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsYS5yZXBvcnRIaXN0b2dyYW0oXCJcIi5jb25jYXQocyxcIi5cIikuY29uY2F0KHQpLG4scikpO2Nhc2UgMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIG09ZnVuY3Rpb24oZSl7cmV0dXJuIGEuZ2V0RGV2aWNlTmFtZShlKX19LDQ1OTQ3OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLnIodCksbi5kKHQse2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gRH19KTt2YXIgcj1uKDU5NDk5KSxpPW4oNTAwMjkpLG89big4Nzc5NCksYT1uLm4obykscz0obig1NzM4Miksbig3NTQ0KSksYz1uKDUxNTIpLHU9bi5uKGMpLGw9big2NzI5NCksZD0obigxNjkzMCksbigyMDQ3MiksbigzMDg2OCksbigxOTI5OSkpLHA9big0ODQ1NSksZj1uKDEzNDQ3KSxoPW4oNzIwNDUpO2Z1bmN0aW9uIGcoZSl7dmFyIHQ9ZS5oZWFkZXJzW1wieC1hbXotY2YtaWRcIl07aWYodCYmXCJzdHJpbmdcIj09PXR5cGVvZiB0KXJldHVybiB0O3ZhciBuPSgwLGguWikoKTtyZXR1cm4gZS5oZWFkZXJzW1wieC1hbXotY2YtaWRcIl09bixufWZ1bmN0aW9uIG0oZSl7cmV0dXJuIHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHYoKXtyZXR1cm4odj0oMCxpLlopKGEoKS5tYXJrKChmdW5jdGlvbiBlKHQpe3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsbil7dmFyIHI9XCJcIjt0Lm9uKFwiZGF0YVwiLChmdW5jdGlvbihlKXtyKz1lLnRvU3RyaW5nKCl9KSksdC5vbihcImVuZFwiLChmdW5jdGlvbigpe2Uocil9KSksdC5vbihcImVycm9yXCIsKGZ1bmN0aW9uKGUpe24oZSl9KSl9KSkpO2Nhc2UgMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIF89big3ODc4NyksRT1uKDYwNDc2KSxiPW4oNjczNjEpLFM9big1OTgxMSkseT1uKDk1Mjg2KSxUPW4oNDg1NTQpLEk9big1MDAyNiksTz1uKDI3MDAyKSxBPW4oNDY1MTMpLEM9bigyMTUwOSksTj1uKDM0MTU1KSxrPXtcImNvbm5lY3Qtc3JjXCI6W1wiJ3NlbGYnXCIsXCJibG9iOlwiLFwiaHR0cHM6Ly9zdG9yeXNoYXJpbmcuc25hcGNoYXQuY29tXCIsXCJodHRwczovL2NmLXN0LnNjLWNkbi5uZXRcIixcImh0dHBzOi8vYXBwLnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9zLnNjLWNkbi5uZXRcIixcImh0dHBzOi8vYm9sdC1nY2RuLnNjLWNkbi5uZXRcIixcImh0dHBzOi8vZ2NwLmFwaS5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vd2ViLWZyb250ZW5kLWRvdC1zYy1hbmFseXRpY3MuYXBwc3BvdC5jb21cIixcImh0dHBzOi8vYXdzLmFwaS5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vKi5nb29nbGUtYW5hbHl0aWNzLmNvbVwiLFwiaHR0cHM6Ly8qLmFuYWx5dGljcy5nb29nbGUuY29tXCIsXCJodHRwczovL3N0YXRzLmcuZG91YmxlY2xpY2submV0XCIsXCJodHRwczovLyouZ29vZ2xldGFnbWFuYWdlci5jb21cIixcImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9zZW50cnkuc2MtcHJvZC5uZXRcIixcImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tXCIsXCJodHRwczovL3VzLWNlbnRyYWwxLWdjcC5hcGkuc25hcGNoYXQuY29tXCIsXCJodHRwczovL3N0YWdpbmctdXMtY2VudHJhbDEtZ2NwLmFwaS5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vYWNjb3VudHMuc25hcGNoYXQuY29tXCIsXCJ3czpcIixcIndzczpcIl0sXCJpbWctc3JjXCI6W1wiJ3NlbGYnIGJsb2I6IGRhdGE6XCIsXCJodHRwczovL2xlbnMuc25hcGNoYXQuY29tXCIsXCJodHRwczovL3Muc2MtY2RuLm5ldFwiLFwiaHR0cHM6Ly9zdXBwb3J0LXRvb2xzLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb21cIixcImh0dHBzOi8vYXBwLnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9kZXZzbmFwY2hhdC5hcHBzcG90LmNvbVwiLFwiaHR0cHM6Ly9mZWVsaW5zb25pY2UtaHJkLmFwcHNwb3QuY29tXCIsXCJodHRwczovL3d3dy5zbmFwY2hhdC5jb21cIixcImh0dHBzOi8vY2Ytc3Quc2MtY2RuLm5ldFwiLFwiaHR0cHM6Ly8qLmdvb2dsZS1hbmFseXRpY3MuY29tXCIsXCJodHRwczovLyouZ29vZ2xldGFnbWFuYWdlci5jb21cIixcImh0dHBzOi8vZHd0OHg5cm1zNjM5bC5jbG91ZGZyb250Lm5ldFwiLFwiZGF0YTpcIixcImh0dHBzOi8vbGVucy1zdG9yYWdlLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb21cIixcImh0dHBzOi8vY29tbXVuaXR5LWxlbnMuc3RvcmFnZS5nb29nbGVhcGlzLmNvbVwiLFwiaHR0cHM6Ly9ib2x0LWdjZG4uc2MtY2RuLm5ldFwiLFwiaHR0cHM6Ly9tZWRpYS1jZG4udHJpcGFkdmlzb3IuY29tL1wiLFwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbVwiLFwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvLnVrXCIsXCJodHRwczovL3d3dy5nb29nbGUuY29tLnNhXCIsXCJodHRwczovL3d3dy5nb29nbGUuY2FcIixcImh0dHBzOi8vd3d3Lmdvb2dsZS5mclwiLFwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS5ub1wiLFwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS5hdVwiLFwiaHR0cHM6Ly9pbWFnZXMuYml0bW9qaS5jb21cIixcImh0dHBzOi8vc3RhdGljLnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly91cy1lYXN0MS1hd3MuYXBpLnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9pbXBhbGEtbWVkaWEtcHJvZHVjdGlvbi5zMy5hbWF6b25hd3MuY29tXCJdLFwibWVkaWEtc3JjXCI6W1wiJ3NlbGYnXCIsXCJodHRwczovL2xlbnMtc3RvcmFnZS5zdG9yYWdlLmdvb2dsZWFwaXMuY29tXCIsXCJodHRwczovL2NvbW11bml0eS1sZW5zLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb21cIixcImh0dHBzOi8vcy5zYy1jZG4ubmV0XCIsXCJodHRwczovL2JvbHQtZ2Nkbi5zYy1jZG4ubmV0XCIsXCJodHRwczovL2NmLXN0LnNjLWNkbi5uZXRcIixcImJsb2I6XCJdLFwic2NyaXB0LXNyY1wiOltcIidzZWxmJ1wiLFwiYmxvYjpcIixcImh0dHBzOi8vc3Rvcnkuc25hcGNoYXQuY29tXCIsXCInc2hhMjU2LVQrbUpwemtzcFliUzJjOWoycXJneWV6eDArYnh1ZWFZTkp3VkI3NXBlM1k9J1wiLFwiJ3NoYTI1Ni1TbHlYcU5wZGRGWTlseGJndVNUNW0yMkhpZkdFTFlWMUZZZWM4WGhIVWtrPSdcIixcIidzaGEyNTYtNXJNeGgxVTZzSURsVmptb2JCUVk4OVFUQzluTmVLM2hkOWRzWHBEMkFZRT0nXCIsXCInc2hhMjU2LTJMbU9JTE0ySElTOXBKQzM4MG93UmxPWW8rYzVXT3V1Tkw3b0VNTHNzMkk9J1wiLFwiaHR0cHM6Ly93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb21cIixcImh0dHBzOi8vKi5nb29nbGV0YWdtYW5hZ2VyLmNvbVwiXS5jb25jYXQoTi5lbnYuQ1NQX1VOU0FGRV9FVkFMP1tcIid1bnNhZmUtZXZhbCdcIl06W10pLFwic3R5bGUtc3JjXCI6W1wiJ3NlbGYnXCIsXCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbVwiLFwiJ3Vuc2FmZS1pbmxpbmUnXCJdLFwiZGVmYXVsdC1zcmNcIjpbXCInc2VsZidcIl0sXCJmb250LXNyY1wiOltcIidzZWxmJ1wiLFwiaHR0cHM6Ly9zbmFwLWRlc2lnbi1zeXN0ZW0uc3RvcmFnZS5nb29nbGVhcGlzLmNvbVwiLFwiaHR0cHM6Ly9hZHMtaW50ZXJmYWNlcy5zYy1jZG4ubmV0XCIsXCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbVwiLFwiaHR0cHM6Ly9zdGF0aWMuc25hcGNoYXQuY29tXCJdLFwiZnJhbWUtYW5jZXN0b3JzXCI6W1wiJ25vbmUnXCJdLFwiYmxvY2stYWxsLW1peGVkLWNvbnRlbnRcIjpbXX0sUD1uKDc0ODExKTtmdW5jdGlvbiBSKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB3KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP1IoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXsoMCxyLlopKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpSKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfSgwLHkudykoITEpO3ZhciBMPXUoKSgoMCxpLlopKGEoKS5tYXJrKChmdW5jdGlvbiBlKCl7cmV0dXJuIGEoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsUHJvbWlzZS5hbGwoW24uZSg3NzEyKSxuLmUoODE4MCksbi5lKDc5OTcpXSkudGhlbihuLmJpbmQobiwxODE4MCkpO2Nhc2UgMjpyZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixlLnNlbnQpO2Nhc2UgMzpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpLHtsb2FkYWJsZUdlbmVyYXRlZDp7d2VicGFjazpmdW5jdGlvbigpe3JldHVyblsxODE4MF19fX0pLEI9dSgpKCgwLGkuWikoYSgpLm1hcmsoKGZ1bmN0aW9uIGUoKXtyZXR1cm4gYSgpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9MixQcm9taXNlLmFsbChbbi5lKDc3MTIpLG4uZSgxOTQ0KV0pLnRoZW4obi5iaW5kKG4sMjE5NDQpKTtjYXNlIDI6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsZS5zZW50LkNvbnRlbnRVbmF2YWlsYWJsZVBhZ2UpO2Nhc2UgMzpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpLHtsb2FkYWJsZUdlbmVyYXRlZDp7d2VicGFjazpmdW5jdGlvbigpe3JldHVyblsyMTk0NF19fX0pO2Z1bmN0aW9uIE0oZSl7dmFyIHQ9ZS5wYWdlUHJvcHMsbj1lLnN0YXR1cyxyPWUuQ29tcG9uZW50LGk9KDAsVC5KVykodC52aWV3ZXJJbmZvKS5pc0dkcHJDb3VudHJ5OygwLGIudXNlRXNzZW50aWFsU2Vzc2lvbikoKTt2YXIgbz0oMCxiLnVzZVdlYkNsaWVudElkKSh7aXNHZHByOml9KSxhPSgwLEUuc2spKCk7KDAsbC51c2VFZmZlY3QpKChmdW5jdGlvbigpeygwLFMuaW5pdENvbmZpZ3NDbGllbnQpKCl9KSxbXSk7dmFyIHM9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSBPLlN0YXR1cy5CYWRSZXF1ZXN0OmNhc2UgTy5TdGF0dXMuTm90Rm91bmQ6cmV0dXJuIEw7Y2FzZSBPLlN0YXR1cy5VbmF2YWlsYWJsZTpjYXNlIE8uU3RhdHVzLlVuYXV0aG9yaXplZDpjYXNlIE8uU3RhdHVzLlVyaVRvb0xvbmc6cmV0dXJuIEI7ZGVmYXVsdDpyZXR1cm4gdH19KG4scik7cmV0dXJuKDAsUC50WikoSS5SZXNwb25zaXZlU1NSUGFnZSx7Y2hpbGRyZW46KDAsUC50WikoXy5YaCx7dmFsdWU6e3dlYkNsaWVudElkOm8sc2Vzc2lvbklkOmF9LGNoaWxkcmVuOigwLFAudFopKHMsdyh7fSx0KSl9KX0pfU0uZ2V0SW5pdGlhbFByb3BzPWZ1bmN0aW9uKCl7dmFyIGU9KDAsaS5aKShhKCkubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgbixyLGksbyxjLHUsbCxoLHYsXyxFO3JldHVybiBhKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYobj10LmN0eCxyPW4ucmVxLGk9bi5yZXMsbz1yP2cocik6XCJcIixjPSgwLEEuamwpKG8sciksdT0obnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuaGVhZGVyc1tcIngtZm9yd2FyZGVkLWhvc3RcIl0pfHwobnVsbD09PXJ8fHZvaWQgMD09PXI/dm9pZCAwOnIuaGVhZGVycy5ob3N0KSwoMCxmLnNldFJlc3BvbnNlSGVhZGVycykobyxyLGksayxcInd3dy5zbmFwY2hhdC5jb21cIj09PXUpLCgwLEEuQyQpKHIsaSx0LGMpLCFyfHwhci5yZWFkYWJsZSl7ZS5uZXh0PTEyO2JyZWFrfXJldHVybiBlLm5leHQ9OSxtKHIpO2Nhc2UgOTplLnQwPWUuc2VudCxlLm5leHQ9MTM7YnJlYWs7Y2FzZSAxMjplLnQwPVwiXCI7Y2FzZSAxMzppZihsPWUudDAsaD1sJiYoMCxDLnRyeVBhcnNlSlNPTikobCksdj0oMCxkLkEpKHIpLCEoMCxDLmlzT2JqZWN0KShoKSl7ZS5uZXh0PTIwO2JyZWFrfXJldHVybiBlLmFicnVwdChcInJldHVyblwiLHtwYWdlUHJvcHM6dyh3KHt9LGgpLHt9LHtnYWlkOnZ9KSxzdGF0dXM6Ty5TdGF0dXMuT2ssbG9nOmN9KTtjYXNlIDIwOnJldHVybiBlLnByZXY9MjAsZS5uZXh0PTIzLHMuZGVmYXVsdC5nZXRJbml0aWFsUHJvcHModCk7Y2FzZSAyMzpyZXR1cm4gXz1lLnNlbnQsZS5uZXh0PTI2LCgwLEMuZnJvbUFwcFByb3BzV2l0aFF1ZXJ5TG9jYWxlKShyLF8scC5NKTtjYXNlIDI2OnJldHVybiBFPWUuc2VudCxlLmFicnVwdChcInJldHVyblwiLHcodyh7fSxFKSx7fSx7bG9nOmN9KSk7Y2FzZSAzMDppZihlLnByZXY9MzAsZS50MT1lLmNhdGNoKDIwKSwhKGUudDEgaW5zdGFuY2VvZiBDLkVycm9yV2l0aFN0YXR1cykpe2UubmV4dD0zNzticmVha31yZXR1cm4gaSYmKCgwLE8ubG9nV2FybmluZykoZS50MSxjKSwoMCxDLnVwZGF0ZVJlc3BvbnNlU3RhdHVzKShpLGUudDEpKSxlLmFicnVwdChcInJldHVyblwiLHtwYWdlUHJvcHM6dyh7Z2FpZDp2fSxlLnQxLnByb3BzKSxzdGF0dXM6ZS50MS5zdGF0dXMsbG9nOmN9KTtjYXNlIDM3OnRocm93IGUudDE7Y2FzZSAzODpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSxudWxsLFtbMjAsMzBdXSl9KSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO3ZhciBEPU19LDMwODY4OmZ1bmN0aW9uKGUsdCxuKXtuKDc2NTU0KX0sNDg1NTQ6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHskMjpmdW5jdGlvbigpe3JldHVybiBjfSxKVzpmdW5jdGlvbigpe3JldHVybiBmfSxNZDpmdW5jdGlvbigpe3JldHVybiBofSxPcTpmdW5jdGlvbigpe3JldHVybiBkfSxkUTpmdW5jdGlvbigpe3JldHVybiBsfSxrVTpmdW5jdGlvbigpe3JldHVybiBnfSxsMjpmdW5jdGlvbigpe3JldHVybiBwfSxvMzpmdW5jdGlvbigpe3JldHVybiB2fSxwMTpmdW5jdGlvbigpe3JldHVybiBhfSx0NjpmdW5jdGlvbigpe3JldHVybiBtfSx3UjpmdW5jdGlvbigpe3JldHVybiBvfX0pO3ZhciByPW4oMTUxODQpLGk9big2MDQxMCksbz1cImh0dHBzOi8vY2xpY2suc25hcGNoYXQuY29tL2FWSEc/cGlkPXNuYXBjaGF0X2Rvd25sb2FkX3BhZ2UmYWZfZHA9aHR0cHM6Ly9saW5rLnNuYXBjaGF0LmNvbS91bmxvY2smYWZfd2ViX2RwPWh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbS9kb3dubG9hZCZwdXJwb3NlPXdlYl9zdG9yaWVzXCIsYT17Y291bnRyeTpcIlpaXCIsbG9jYWxlOlwiZW5cIixpc0dkcHJDb3VudHJ5OiEwfSxzPXtoYXNodGFnczpbXSxsZW5zTWV0YWRhdGE6dm9pZCAwLHVzZXJNZXRhZGF0YTp2b2lkIDAsdmlkZW9NZXRhZGF0YTp2b2lkIDAsY29udGV4dENhcmRzOltdLGVuZ2FnZW1lbnRTdGF0czp2b2lkIDAsZGVlcGxpbms6XCJcIixkZXNjcmlwdGlvbjpcIlwiLG9uZUxpbmtQYXJhbXM6dm9pZCAwfSxjPXtkaXJlY3Rpb246ci5RWi5BVVRPfSx1PXtvbmVMaW5rVXJsOm8sc25hcGNoYXRDYW5vbmljYWxVcmw6XCJodHRwczovL2xpbmsuc25hcGNoYXQuY29tL3VubG9ja1wiLGNhbm9uaWNhbFVybDpcImh0dHBzOi8vd3d3LnNuYXBjaGF0LmNvbVwiLHNuYXBjb2RlSW1hZ2VVcmw6XCJcIixkb3dubG9hZFVybDppLm1QLG9uZUxpbmtQYXJhbXM6dm9pZCAwLHNuYXBjaGF0RGVlcExpbmtVcmw6XCJodHRwczovL2xpbmsuc25hcGNoYXQuY29tL3VubG9ja1wifSxsPXtwYWdlVHlwZTpyLkdWLk5PVF9GT1VORCxwYWdlVGl0bGU6XCJTbmFwY2hhdFwiLHBhZ2VEZXNjcmlwdGlvbjp2b2lkIDAsc2hhcmVJZDpcIlwifSxkPXtwYWdlVHlwZTpyLkdWLk5PVF9BVkFJTEFCTEUscGFnZVRpdGxlOlwiU25hcGNoYXRcIixwYWdlRGVzY3JpcHRpb246dm9pZCAwLHNoYXJlSWQ6XCJcIn0scD17ZGlzcGxheU5hbWU6XCJcIixlbW9qaTpcIlwiLGhhc0JhZGdlOiExLHByb2ZpbGVQaWN0dXJlVXJsOlwiXCIsdXNlcm5hbWU6XCJcIn07ZnVuY3Rpb24gZihlKXtyZXR1cm4gZXx8YX1mdW5jdGlvbiBoKGUpe3JldHVybiBlfHxzfWZ1bmN0aW9uIGcoZSl7cmV0dXJue2NvdW50cnk6ZihlLnZpZXdlckluZm8pLmNvdW50cnl9fWZ1bmN0aW9uIG0oZSl7cmV0dXJuIGV8fHV9ZnVuY3Rpb24gdihlKXtyZXR1cm4gZXx8bH19LDM0ODQ5OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1uKDI1ODc3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlJ1aWRUeXBlPXQuTmFtZXNwYWNlPXQuTG9nZ2luZ1R5cGU9dC5JZFR5cGU9dC5DdXN0b21FeHBvc3VyZUxvZ2dlcj10LkNvbmZpZ1Jlc3VsdFNlcnZlUGxhdGZvcm09dC5Db25maWdQcm92aWRlcj10LkNsaWVudFRhcmdldGluZ0V4cHJlc3Npb25Qcm9wZXJ0eT10LkNsaWVudFRhcmdldGluZ0V4cHJlc3Npb25QcmVkaWNhdGVPcGVyYXRvcj10LkNsaWVudFRhcmdldGluZ0V4cHJlc3Npb25PcGVyYXRvcj10LkJlbmNobWFya05hbWU9dm9pZCAwLHQuYmF0Y2hVcGRhdGVBYkV4cG9zdXJlPXd0LHQuZ2V0RXZhbHVhdGVkQ29mQ29uZmlnPVJlLHQuaW5pdENvbmZpZ3NDbGllbnQ9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9RGUpO3ZhciB0PWplKCk7aWYodCl7aWYoSlNPTi5zdHJpbmdpZnkoZSkhPT1KU09OLnN0cmluZ2lmeSh0LnNldHRpbmdzKSl0aHJvdyBuZXcgRXJyb3IoXCJpbml0Q29uZmlnc0NsaWVudCgpIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkXCIpfWVsc2UhZnVuY3Rpb24oZSl7d2luZG93W01lXT1lfSh7c2V0dGluZ3M6ZSxycGM6bmV3IEJlKGUuaG9zdCx7bWV0YWRhdGE6ZS5tZXRhZGF0YX0pfSksUGUoJC5XRUJfU0NSRUVOX0hFSUdIVCwoZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0fSkpLFBlKCQuV0VCX1NDUkVFTl9XSURUSCwoZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGh9KSl9LHQucmVnaXN0ZXJQcm9wZXJ0eVZhbHVlUHJvdmlkZXI9UGUsdC50YXJnZXRpbmdRdWVyeT1mdW5jdGlvbihlLHQpe3JldHVybiB4ZSgpLnJwYy51bmFyeShVZSxGKGUpLHQpfSx0LnVzZUNvbmZpZ1ZhbHVlPXZvaWQgMDt2YXIgaT1yKG4oNjE3NDMpKSxvPXIobig2MjEwMCkpLGE9big5NTI4Nykscz1mdW5jdGlvbihlLHQpe2lmKCF0JiZlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fFwib2JqZWN0XCIhPT10eXBlb2YgZSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIG49Yyh0KTtpZihuJiZuLmhhcyhlKSlyZXR1cm4gbi5nZXQoZSk7dmFyIHI9e30saT1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBvIGluIGUpaWYoXCJkZWZhdWx0XCIhPT1vJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSl7dmFyIGE9aT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsbyk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLGEpOnJbb109ZVtvXX1yLmRlZmF1bHQ9ZSxuJiZuLnNldChlLHIpO3JldHVybiByfShuKDY3Mjk0KSk7ZnVuY3Rpb24gYyhlKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgdD1uZXcgV2Vha01hcCxuPW5ldyBXZWFrTWFwO3JldHVybihjPWZ1bmN0aW9uKGUpe3JldHVybiBlP246dH0pKGUpfXZhciB1LGw9ZnVuY3Rpb24oKXtyZXR1cm4gbD1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWZvcih2YXIgaSBpbiB0PWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9LGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBkKGUsdCxuKXtpZihufHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIHIsaT0wLG89dC5sZW5ndGg7aTxvO2krKykhciYmaSBpbiB0fHwocnx8KHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLGkpKSxyW2ldPXRbaV0pO3JldHVybiBlLmNvbmNhdChyfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSl9dC5CZW5jaG1hcmtOYW1lPXUsZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQkVOQ0hNQVJLPTBdPVwiVU5LTk9XTl9CRU5DSE1BUktcIixlW2UuQ1BVX0dGTE9QUz0xXT1cIkNQVV9HRkxPUFNcIixlW2UuR1BVX0dGTE9QUz0yXT1cIkdQVV9HRkxPUFNcIixlW2UuR1BVX0dGTE9QU19WRUNUT1I9M109XCJHUFVfR0ZMT1BTX1ZFQ1RPUlwiLGVbZS5HUFVfU1lTVEVNX0NBUEFCSUxJVElFUz00XT1cIkdQVV9TWVNURU1fQ0FQQUJJTElUSUVTXCIsZVtlLkdQVV9WRVJURVhfVEhST1VHSFBVVD01XT1cIkdQVV9WRVJURVhfVEhST1VHSFBVVFwiLGVbZS5HUFVfU0lNUExFX0dFT01FVFJZX1RIUk9VR0hQVVQ9Nl09XCJHUFVfU0lNUExFX0dFT01FVFJZX1RIUk9VR0hQVVRcIixlW2UuR1BVX0dBVVNTSUFOX0JMVVI9N109XCJHUFVfR0FVU1NJQU5fQkxVUlwiLGVbZS5DUFVfTUVNT1JZX1RIUk9VR0hQVVQ9OF09XCJDUFVfTUVNT1JZX1RIUk9VR0hQVVRcIixlW2UuR1BVX0ZJTExfUkFURT05XT1cIkdQVV9GSUxMX1JBVEVcIixlW2UuTUVNX1RPVEFMX01FTU9SWT0xMF09XCJNRU1fVE9UQUxfTUVNT1JZXCIsZVtlLkNQVV9OVU1fUFJPQ0VTU09SUz0xMV09XCJDUFVfTlVNX1BST0NFU1NPUlNcIixlW2UuREVWSUNFX0lORk9STUFUSU9OX0NISVBTRVQ9MTJdPVwiREVWSUNFX0lORk9STUFUSU9OX0NISVBTRVRcIixlW2UuREVWSUNFX0lORk9STUFUSU9OX0JVSUxEX0hBUkRXQVJFPTEzXT1cIkRFVklDRV9JTkZPUk1BVElPTl9CVUlMRF9IQVJEV0FSRVwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fQlVJTERfQlJBTkQ9MTRdPVwiREVWSUNFX0lORk9STUFUSU9OX0JVSUxEX0JSQU5EXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9CVUlMRF9NQU5VRkFDVFVSRVI9MTVdPVwiREVWSUNFX0lORk9STUFUSU9OX0JVSUxEX01BTlVGQUNUVVJFUlwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fQlVJTERfTU9ERUw9MTZdPVwiREVWSUNFX0lORk9STUFUSU9OX0JVSUxEX01PREVMXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9TQ1JFRU5fUFJPUEVSVElFUz0xN109XCJERVZJQ0VfSU5GT1JNQVRJT05fU0NSRUVOX1BST1BFUlRJRVNcIixlW2UuREVWSUNFX0lORk9STUFUSU9OX0NPREVDX0NBUEFCSUxJVEVTPTE4XT1cIkRFVklDRV9JTkZPUk1BVElPTl9DT0RFQ19DQVBBQklMSVRFU1wiLGVbZS5DUFVfUFJJTUVfS09UTElOPTE5XT1cIkNQVV9QUklNRV9LT1RMSU5cIixlW2UuQ1BVX1BSSU1FX05BVElWRT0yMF09XCJDUFVfUFJJTUVfTkFUSVZFXCIsZVtlLkNQVV9TUVJUX0tPVExJTj0yMV09XCJDUFVfU1FSVF9LT1RMSU5cIixlW2UuQ1BVX1NRUlRfTkFUSVZFPTIyXT1cIkNQVV9TUVJUX05BVElWRVwiLGVbZS5DUFVfSU5UX01BVEhfS09UTElOPTIzXT1cIkNQVV9JTlRfTUFUSF9LT1RMSU5cIixlW2UuQ1BVX0lOVF9NQVRIX05BVElWRT0yNF09XCJDUFVfSU5UX01BVEhfTkFUSVZFXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9HTF9WRVJTSU9OPTI1XT1cIkRFVklDRV9JTkZPUk1BVElPTl9HTF9WRVJTSU9OXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9HTFNMX1ZFUlNJT049MjZdPVwiREVWSUNFX0lORk9STUFUSU9OX0dMU0xfVkVSU0lPTlwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fT1BFTkNMX0VYSVNUUz0yN109XCJERVZJQ0VfSU5GT1JNQVRJT05fT1BFTkNMX0VYSVNUU1wiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fSVNfSE9TVF9VTklGSUVEX01FTU9SWT0yOF09XCJERVZJQ0VfSU5GT1JNQVRJT05fSVNfSE9TVF9VTklGSUVEX01FTU9SWVwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fT1BFTkNMX1ZFUlNJT049MjldPVwiREVWSUNFX0lORk9STUFUSU9OX09QRU5DTF9WRVJTSU9OXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9USU1JTkdfUkVTT0xVVElPTl9OUz0zMF09XCJERVZJQ0VfSU5GT1JNQVRJT05fVElNSU5HX1JFU09MVVRJT05fTlNcIixlW2UuREVWSUNFX0lORk9STUFUSU9OX0FERFJFU1NfU0laRT0zMV09XCJERVZJQ0VfSU5GT1JNQVRJT05fQUREUkVTU19TSVpFXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9HUFVfTUFYX0NMT0NLX0ZSRVFVRU5DWV9NSFo9MzJdPVwiREVWSUNFX0lORk9STUFUSU9OX0dQVV9NQVhfQ0xPQ0tfRlJFUVVFTkNZX01IWlwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fQ09NUFVURV9VTklUUz0zM109XCJERVZJQ0VfSU5GT1JNQVRJT05fQ09NUFVURV9VTklUU1wiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fTUFYX1dPUktHUk9VUF9TSVpFPTM0XT1cIkRFVklDRV9JTkZPUk1BVElPTl9NQVhfV09SS0dST1VQX1NJWkVcIixlW2UuREVWSUNFX0lORk9STUFUSU9OX0xPQ0FMX01FTU9SWV9JU19MT0NBTD0zNV09XCJERVZJQ0VfSU5GT1JNQVRJT05fTE9DQUxfTUVNT1JZX0lTX0xPQ0FMXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9MT0NBTF9NRU1PUllfU0laRT0zNl09XCJERVZJQ0VfSU5GT1JNQVRJT05fTE9DQUxfTUVNT1JZX1NJWkVcIixlW2UuREVWSUNFX0lORk9STUFUSU9OX0dMT0JBTF9NRU1PUllfQ0FDSEVfU0laRT0zN109XCJERVZJQ0VfSU5GT1JNQVRJT05fR0xPQkFMX01FTU9SWV9DQUNIRV9TSVpFXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9HTE9CQUxfTUVNT1JZX0NBQ0hFTElORV9TSVpFPTM4XT1cIkRFVklDRV9JTkZPUk1BVElPTl9HTE9CQUxfTUVNT1JZX0NBQ0hFTElORV9TSVpFXCIsZVtlLkRFVklDRV9JTkZPUk1BVElPTl9HTF9IQVNfRkVOQ0VfU1lOQ19PQkpFQ1Q9MzldPVwiREVWSUNFX0lORk9STUFUSU9OX0dMX0hBU19GRU5DRV9TWU5DX09CSkVDVFwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fSEVYQUdPTl9OTl9MSUJSQVJZX1ZFUlNJT049NDBdPVwiREVWSUNFX0lORk9STUFUSU9OX0hFWEFHT05fTk5fTElCUkFSWV9WRVJTSU9OXCIsZVtlLkdQVV9HRkxPUFNfVjI9NDFdPVwiR1BVX0dGTE9QU19WMlwiLGVbZS5HUFVfR0ZMT1BTX1ZFQ1RPUl9WMj00Ml09XCJHUFVfR0ZMT1BTX1ZFQ1RPUl9WMlwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fR1BVX01PREVMPTQzXT1cIkRFVklDRV9JTkZPUk1BVElPTl9HUFVfTU9ERUxcIixlW2UuREVWSUNFX0lORk9STUFUSU9OX0NPREVDX0NBUEFCSUxJVEVTX1YyPTQ0XT1cIkRFVklDRV9JTkZPUk1BVElPTl9DT0RFQ19DQVBBQklMSVRFU19WMlwiLGVbZS5ERVZJQ0VfSU5GT1JNQVRJT05fTUVESUFfUEVSRk9STUFOQ0VfQ0xBU1M9NDVdPVwiREVWSUNFX0lORk9STUFUSU9OX01FRElBX1BFUkZPUk1BTkNFX0NMQVNTXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0odXx8KHQuQmVuY2htYXJrTmFtZT11PXt9KSksby5kZWZhdWx0LnV0aWwuTG9uZyE9PWkuZGVmYXVsdCYmKG8uZGVmYXVsdC51dGlsLkxvbmc9aS5kZWZhdWx0LG8uZGVmYXVsdC5jb25maWd1cmUoKSk7dmFyIHA9e3NlY29uZHM6MCxuYW5vczowfSxmPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT1sKHt9LHApO24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO3N3aXRjaChhPj4+Myl7Y2FzZSAxOmkuc2Vjb25kcz1nKG4uaW50NjQoKSk7YnJlYWs7Y2FzZSAyOmkubmFub3M9bi5pbnQzMigpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0saD1cInVuZGVmaW5lZFwiIT09dHlwZW9mIGg/aDpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGY/c2VsZjp3aW5kb3c7ZnVuY3Rpb24gZyhlKXtpZihlLmd0KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSl0aHJvdyBuZXcgaC5FcnJvcihcIlZhbHVlIGlzIGxhcmdlciB0aGFuIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXCIpO3JldHVybiBlLnRvTnVtYmVyKCl9by5kZWZhdWx0LnV0aWwuTG9uZyE9PWkuZGVmYXVsdCYmKG8uZGVmYXVsdC51dGlsLkxvbmc9aS5kZWZhdWx0LG8uZGVmYXVsdC5jb25maWd1cmUoKSk7dmFyIG0sdj17fSxfPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLHZvaWQgMCE9PWUuaW50VmFsdWUmJnQudWludDMyKDgpLmludDMyKGUuaW50VmFsdWUpLHZvaWQgMCE9PWUubG9uZ1ZhbHVlJiZ0LnVpbnQzMigxNikuaW50NjQoZS5sb25nVmFsdWUpLHZvaWQgMCE9PWUuYm9vbFZhbHVlJiZ0LnVpbnQzMigyNCkuYm9vbChlLmJvb2xWYWx1ZSksdm9pZCAwIT09ZS5mbG9hdFZhbHVlJiZ0LnVpbnQzMigzNykuZmxvYXQoZS5mbG9hdFZhbHVlKSx0fSxFPWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30sdik7cmV0dXJuIHZvaWQgMCE9PWUuaW50VmFsdWUmJm51bGwhPT1lLmludFZhbHVlP3QuaW50VmFsdWU9ZS5pbnRWYWx1ZTp0LmludFZhbHVlPXZvaWQgMCx2b2lkIDAhPT1lLmxvbmdWYWx1ZSYmbnVsbCE9PWUubG9uZ1ZhbHVlP3QubG9uZ1ZhbHVlPWUubG9uZ1ZhbHVlOnQubG9uZ1ZhbHVlPXZvaWQgMCx2b2lkIDAhPT1lLmJvb2xWYWx1ZSYmbnVsbCE9PWUuYm9vbFZhbHVlP3QuYm9vbFZhbHVlPWUuYm9vbFZhbHVlOnQuYm9vbFZhbHVlPXZvaWQgMCx2b2lkIDAhPT1lLmZsb2F0VmFsdWUmJm51bGwhPT1lLmZsb2F0VmFsdWU/dC5mbG9hdFZhbHVlPWUuZmxvYXRWYWx1ZTp0LmZsb2F0VmFsdWU9dm9pZCAwLHR9LGI9e2JlbmNobWFya05hbWVzOjB9LFM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9bCh7fSxiKTtmb3IoaS5iZW5jaG1hcmtOYW1lcz1bXTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtzd2l0Y2goYT4+PjMpe2Nhc2UgMTppZigyPT09KDcmYSkpZm9yKHZhciBzPW4udWludDMyKCkrbi5wb3M7bi5wb3M8czspaS5iZW5jaG1hcmtOYW1lcy5wdXNoKG4uaW50MzIoKSk7ZWxzZSBpLmJlbmNobWFya05hbWVzLnB1c2gobi5pbnQzMigpKTticmVhaztjYXNlIDI6aS5leHBpcmF0aW9uVGltZXN0YW1wPUEoZihuLG4udWludDMyKCkpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LHk9e25hbWU6MH0sVD1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKSwwIT09ZS5uYW1lJiZ0LnVpbnQzMig4KS5pbnQzMihlLm5hbWUpLHZvaWQgMCE9PWUudmFsdWUmJl8oZS52YWx1ZSx0LnVpbnQzMigxOCkuZm9yaygpKS5sZGVsaW0oKSx0fSxJPWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30seSk7cmV0dXJuIHZvaWQgMCE9PWUubmFtZSYmbnVsbCE9PWUubmFtZT90Lm5hbWU9ZS5uYW1lOnQubmFtZT0wLHZvaWQgMCE9PWUudmFsdWUmJm51bGwhPT1lLnZhbHVlP3QudmFsdWU9RShlLnZhbHVlKTp0LnZhbHVlPXZvaWQgMCx0fSxPPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgTz9POlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2VsZj9zZWxmOndpbmRvdztmdW5jdGlvbiBBKGUpe3ZhciB0PTFlMyplLnNlY29uZHM7cmV0dXJuIHQrPWUubmFub3MvMWU2LG5ldyBEYXRlKHQpfW8uZGVmYXVsdC51dGlsLkxvbmchPT1pLmRlZmF1bHQmJihvLmRlZmF1bHQudXRpbC5Mb25nPWkuZGVmYXVsdCxvLmRlZmF1bHQuY29uZmlndXJlKCkpLHQuUnVpZFR5cGU9bSxmdW5jdGlvbihlKXtlW2UuVU5TRVQ9MF09XCJVTlNFVFwiLGVbZS5VU0VSPTFdPVwiVVNFUlwiLGVbZS5ERVZJQ0U9Ml09XCJERVZJQ0VcIixlW2UuV0VCX0NMSUVOVD0zXT1cIldFQl9DTElFTlRcIixlW2UuQURfQUNDT1VOVD00XT1cIkFEX0FDQ09VTlRcIixlW2UuVVNFUk5BTUU9NV09XCJVU0VSTkFNRVwiLGVbZS5BRF9NT0RFUkFUSU9OX0FEPTZdPVwiQURfTU9ERVJBVElPTl9BRFwiLGVbZS5XRUJfU05BUENIQVRfVVNFUj03XT1cIldFQl9TTkFQQ0hBVF9VU0VSXCIsZVtlLklOVEVSTkFMPThdPVwiSU5URVJOQUxcIixlW2UuQU1fT1JHQU5JWkFUSU9OPTldPVwiQU1fT1JHQU5JWkFUSU9OXCIsZVtlLkFNX01FTUJFUj0xMF09XCJBTV9NRU1CRVJcIixlW2UuQU1fU0VTU0lPTj0xMV09XCJBTV9TRVNTSU9OXCIsZVtlLkFNX1BST0ZJTEU9MTJdPVwiQU1fUFJPRklMRVwiLGVbZS5BTV9TTkFQQ0hBVF9VU0VSPTEzXT1cIkFNX1NOQVBDSEFUX1VTRVJcIixlW2UuU05BUENIQVRfQURWRVJUSVNJTkc9MTRdPVwiU05BUENIQVRfQURWRVJUSVNJTkdcIixlW2UuQU1fQ0xJRU5UPTE1XT1cIkFNX0NMSUVOVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KG18fCh0LlJ1aWRUeXBlPW09e30pKTt2YXIgQz17dHlwZTowLHN0cmluZ1ZhbHVlOlwiXCIsbG9nZ2luZ0lkVmFsdWU6XCJcIn0sTj1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKSwwIT09ZS50eXBlJiZ0LnVpbnQzMig4KS5pbnQzMihlLnR5cGUpLFwiXCIhPT1lLnN0cmluZ1ZhbHVlJiZ0LnVpbnQzMigxOCkuc3RyaW5nKGUuc3RyaW5nVmFsdWUpLFwiXCIhPT1lLmxvZ2dpbmdJZFZhbHVlJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUubG9nZ2luZ0lkVmFsdWUpLHR9LGs9ZnVuY3Rpb24oZSl7dmFyIHQ9bCh7fSxDKTtyZXR1cm4gdm9pZCAwIT09ZS50eXBlJiZudWxsIT09ZS50eXBlP3QudHlwZT1lLnR5cGU6dC50eXBlPTAsdm9pZCAwIT09ZS5zdHJpbmdWYWx1ZSYmbnVsbCE9PWUuc3RyaW5nVmFsdWU/dC5zdHJpbmdWYWx1ZT1lLnN0cmluZ1ZhbHVlOnQuc3RyaW5nVmFsdWU9XCJcIix2b2lkIDAhPT1lLmxvZ2dpbmdJZFZhbHVlJiZudWxsIT09ZS5sb2dnaW5nSWRWYWx1ZT90LmxvZ2dpbmdJZFZhbHVlPWUubG9nZ2luZ0lkVmFsdWU6dC5sb2dnaW5nSWRWYWx1ZT1cIlwiLHR9O28uZGVmYXVsdC51dGlsLkxvbmchPT1pLmRlZmF1bHQmJihvLmRlZmF1bHQudXRpbC5Mb25nPWkuZGVmYXVsdCxvLmRlZmF1bHQuY29uZmlndXJlKCkpO3ZhciBQLFIsdyxMLEI9e3ZhbHVlOiExfSxNPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLCEwPT09ZS52YWx1ZSYmdC51aW50MzIoOCkuYm9vbChlLnZhbHVlKSx0fSxEPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT1sKHt9LEIpO24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO2lmKGE+Pj4zPT09MSlpLnZhbHVlPW4uYm9vbCgpO2Vsc2Ugbi5za2lwVHlwZSg3JmEpfXJldHVybiBpfSxqPVwidW5kZWZpbmVkXCIhPT10eXBlb2Ygaj9qOlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2VsZj9zZWxmOndpbmRvdztvLmRlZmF1bHQudXRpbC5Mb25nIT09aS5kZWZhdWx0JiYoby5kZWZhdWx0LnV0aWwuTG9uZz1pLmRlZmF1bHQsby5kZWZhdWx0LmNvbmZpZ3VyZSgpKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9FVkVOVF9UWVBFPTBdPVwiVU5LTk9XTl9FVkVOVF9UWVBFXCIsZVtlLkNPTERfU1RBUlQ9MV09XCJDT0xEX1NUQVJUXCIsZVtlLldBUk1fU1RBUlQ9Ml09XCJXQVJNX1NUQVJUXCIsZVtlLkZPUkVHUk9VTkRfVFJJR0dFUj0zXT1cIkZPUkVHUk9VTkRfVFJJR0dFUlwiLGVbZS5CQUNLR1JPVU5EX1RSSUdHRVI9NF09XCJCQUNLR1JPVU5EX1RSSUdHRVJcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShQfHwoUD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX0FQUF9TVEFURT0wXT1cIlVOS05PV05fQVBQX1NUQVRFXCIsZVtlLkZPUkVHUk9VTkQ9MV09XCJGT1JFR1JPVU5EXCIsZVtlLkJBQ0tHUk9VTkQ9Ml09XCJCQUNLR1JPVU5EXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0oUnx8KFI9e30pKSxmdW5jdGlvbihlKXtlW2UuREVGQVVMVF9JTlNUUlVNRU5UQVRJT049MF09XCJERUZBVUxUX0lOU1RSVU1FTlRBVElPTlwiLGVbZS5VU0VSX0FVVEhFTlRJQ0FUSU9OPTFdPVwiVVNFUl9BVVRIRU5USUNBVElPTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHd8fCh3PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fTkVUV09SS19UWVBFPTBdPVwiVU5LTk9XTl9ORVRXT1JLX1RZUEVcIixlW2UuQ0VMTFVMQVI9MV09XCJDRUxMVUxBUlwiLGVbZS5XSUZJPTJdPVwiV0lGSVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KEx8fChMPXt9KSk7dmFyIHg9e2NvbmZpZ1Jlc3VsdHNFdGFnOlwiXCIsbmFtZXNwYWNlczowLGdob3N0SWQ6XCJcIixjb3VudHJ5Q29kZTpcIlwiLHNjcmVlbldpZHRoOjAsc2NyZWVuSGVpZ2h0OjAsbWF4VmlkZW9XaWR0aFB4OjAsbWF4VmlkZW9IZWlnaHRQeDowLGRlbHRhU3luYzohMSx1c2VyQWdlbnQ6XCJcIix0cmlnZ2VyRXZlbnRUeXBlOjAsYXBwU3RhdGU6MCxsb2NhbGU6XCJcIixkZXZpY2VJZDpcIlwiLHVzZXJJZDpcIlwiLGNsaWVudElwOlwiXCIsaXNVbkF1dGhvcml6ZWQ6ITEsYXBwTG9jYWxlOlwiXCIsaW5zdHJ1bWVudGF0aW9uOjAsbGFzdFN1Y2Nlc3NmdWxTeW5jOjAsaXNMb2dvdXQ6ITEscGFja2FnZUluc3RhbGxlcjpcIlwiLHN5bmNUcmlnZ2VyQmxpenphcmRTZXNzaW9uSWQ6XCJcIixzeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQ6XCJcIixjb2ZTeW5jVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNczowLGNvZlN5bmNFeGVjdXRpb25EZWxheUZyb21TdGFydHVwTXM6MCxzeW5jVHJpZ2dlclRpbWU6MCxzbmFwa2l0QXBwSWQ6XCJcIixsZW5zY29yZVZlcnNpb246MCxjb25maWdOYW1lczpcIlwiLGluY2x1ZGVUZXN0VXNlclRyZWF0bWVudHM6ITEsZGlzYWJsZUV4cG9zdXJlTG9nZ2luZzohMSxsZW5zQ2x1c3Rlck9yaWc0OjB9LFU9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKSxcIlwiIT09ZS5jb25maWdSZXN1bHRzRXRhZyYmdC51aW50MzIoMTApLnN0cmluZyhlLmNvbmZpZ1Jlc3VsdHNFdGFnKSx0LnVpbnQzMigxOCkuZm9yaygpO2Zvcih2YXIgbj0wLHI9ZS5uYW1lc3BhY2VzO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO3QuaW50MzIoaSl9dC5sZGVsaW0oKSxcIlwiIT09ZS5naG9zdElkJiZ0LnVpbnQzMigyNikuc3RyaW5nKGUuZ2hvc3RJZCksXCJcIiE9PWUuY291bnRyeUNvZGUmJnQudWludDMyKDM0KS5zdHJpbmcoZS5jb3VudHJ5Q29kZSksMCE9PWUuc2NyZWVuV2lkdGgmJnQudWludDMyKDQwKS5pbnQzMihlLnNjcmVlbldpZHRoKSwwIT09ZS5zY3JlZW5IZWlnaHQmJnQudWludDMyKDQ4KS5pbnQzMihlLnNjcmVlbkhlaWdodCksdm9pZCAwIT09ZS5jb25uZWN0aXZpdHkmJkcuZW5jb2RlKGUuY29ubmVjdGl2aXR5LHQudWludDMyKDU4KS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLm1heFZpZGVvV2lkdGhQeCYmdC51aW50MzIoNjQpLmludDMyKGUubWF4VmlkZW9XaWR0aFB4KSwwIT09ZS5tYXhWaWRlb0hlaWdodFB4JiZ0LnVpbnQzMig3MikuaW50MzIoZS5tYXhWaWRlb0hlaWdodFB4KTtmb3IodmFyIGE9MCxzPWUuYmVuY2htYXJrUmVzdWx0czthPHMubGVuZ3RoO2ErKyl7aT1zW2FdO1QoaSx0LnVpbnQzMig4MikuZm9yaygpKS5sZGVsaW0oKX0hMD09PWUuZGVsdGFTeW5jJiZ0LnVpbnQzMig4OCkuYm9vbChlLmRlbHRhU3luYyksXCJcIiE9PWUudXNlckFnZW50JiZ0LnVpbnQzMig5OCkuc3RyaW5nKGUudXNlckFnZW50KSwwIT09ZS50cmlnZ2VyRXZlbnRUeXBlJiZ0LnVpbnQzMigxMDQpLmludDMyKGUudHJpZ2dlckV2ZW50VHlwZSksMCE9PWUuYXBwU3RhdGUmJnQudWludDMyKDExMikuaW50MzIoZS5hcHBTdGF0ZSksXCJcIiE9PWUubG9jYWxlJiZ0LnVpbnQzMigxMjIpLnN0cmluZyhlLmxvY2FsZSksXCJcIiE9PWUuZGV2aWNlSWQmJnQudWludDMyKDEzMCkuc3RyaW5nKGUuZGV2aWNlSWQpLFwiXCIhPT1lLnVzZXJJZCYmdC51aW50MzIoMTM4KS5zdHJpbmcoZS51c2VySWQpLFwiXCIhPT1lLmNsaWVudElwJiZ0LnVpbnQzMigxNDYpLnN0cmluZyhlLmNsaWVudElwKSwhMD09PWUuaXNVbkF1dGhvcml6ZWQmJnQudWludDMyKDE1MikuYm9vbChlLmlzVW5BdXRob3JpemVkKSxcIlwiIT09ZS5hcHBMb2NhbGUmJnQudWludDMyKDE2Mikuc3RyaW5nKGUuYXBwTG9jYWxlKSwwIT09ZS5pbnN0cnVtZW50YXRpb24mJnQudWludDMyKDE2OCkuaW50MzIoZS5pbnN0cnVtZW50YXRpb24pLDAhPT1lLmxhc3RTdWNjZXNzZnVsU3luYyYmdC51aW50MzIoMTc2KS5pbnQ2NChlLmxhc3RTdWNjZXNzZnVsU3luYyksITA9PT1lLmlzTG9nb3V0JiZ0LnVpbnQzMigxODQpLmJvb2woZS5pc0xvZ291dCksXCJcIiE9PWUucGFja2FnZUluc3RhbGxlciYmdC51aW50MzIoMTk0KS5zdHJpbmcoZS5wYWNrYWdlSW5zdGFsbGVyKSxcIlwiIT09ZS5zeW5jVHJpZ2dlckJsaXp6YXJkU2Vzc2lvbklkJiZ0LnVpbnQzMigyMDIpLnN0cmluZyhlLnN5bmNUcmlnZ2VyQmxpenphcmRTZXNzaW9uSWQpLFwiXCIhPT1lLnN5bmNFeGVjdXRpb25CbGl6emFyZFNlc3Npb25JZCYmdC51aW50MzIoMjEwKS5zdHJpbmcoZS5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQpLDAhPT1lLmNvZlN5bmNUcmlnZ2VyRGVsYXlGcm9tU3RhcnR1cE1zJiZ0LnVpbnQzMigyMTYpLmludDMyKGUuY29mU3luY1RyaWdnZXJEZWxheUZyb21TdGFydHVwTXMpLDAhPT1lLmNvZlN5bmNFeGVjdXRpb25EZWxheUZyb21TdGFydHVwTXMmJnQudWludDMyKDIyNCkuaW50MzIoZS5jb2ZTeW5jRXhlY3V0aW9uRGVsYXlGcm9tU3RhcnR1cE1zKSwwIT09ZS5zeW5jVHJpZ2dlclRpbWUmJnQudWludDMyKDIzMikuaW50NjQoZS5zeW5jVHJpZ2dlclRpbWUpLHZvaWQgMCE9PWUuZGVjb2RlckVuY29kZXJBdmFpbGFiaWxpdHkmJlYuZW5jb2RlKGUuZGVjb2RlckVuY29kZXJBdmFpbGFiaWxpdHksdC51aW50MzIoMjQyKS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLnNuYXBraXRBcHBJZCYmdC51aW50MzIoMjUwKS5zdHJpbmcoZS5zbmFwa2l0QXBwSWQpLDAhPT1lLmxlbnNjb3JlVmVyc2lvbiYmdC51aW50MzIoMjU2KS5pbnQzMihlLmxlbnNjb3JlVmVyc2lvbiksdm9pZCAwIT09ZS5ydWlkJiZOKGUucnVpZCx0LnVpbnQzMigyNjYpLmZvcmsoKSkubGRlbGltKCk7Zm9yKHZhciBjPTAsdT1lLmNvbmZpZ05hbWVzO2M8dS5sZW5ndGg7YysrKXtpPXVbY107dC51aW50MzIoMjc0KS5zdHJpbmcoaSl9cmV0dXJuITA9PT1lLmluY2x1ZGVUZXN0VXNlclRyZWF0bWVudHMmJnQudWludDMyKDI4OCkuYm9vbChlLmluY2x1ZGVUZXN0VXNlclRyZWF0bWVudHMpLCEwPT09ZS5kaXNhYmxlRXhwb3N1cmVMb2dnaW5nJiZ0LnVpbnQzMigyOTYpLmJvb2woZS5kaXNhYmxlRXhwb3N1cmVMb2dnaW5nKSwwIT09ZS5sZW5zQ2x1c3Rlck9yaWc0JiZ0LnVpbnQzMigzMDQpLmludDMyKGUubGVuc0NsdXN0ZXJPcmlnNCksdH0sRj1mdW5jdGlvbihlKXt2YXIgdD1sKHt9LHgpO2lmKHQubmFtZXNwYWNlcz1bXSx0LmJlbmNobWFya1Jlc3VsdHM9W10sdC5jb25maWdOYW1lcz1bXSx2b2lkIDAhPT1lLmNvbmZpZ1Jlc3VsdHNFdGFnJiZudWxsIT09ZS5jb25maWdSZXN1bHRzRXRhZz90LmNvbmZpZ1Jlc3VsdHNFdGFnPWUuY29uZmlnUmVzdWx0c0V0YWc6dC5jb25maWdSZXN1bHRzRXRhZz1cIlwiLHZvaWQgMCE9PWUubmFtZXNwYWNlcyYmbnVsbCE9PWUubmFtZXNwYWNlcylmb3IodmFyIG49MCxyPWUubmFtZXNwYWNlcztuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTt0Lm5hbWVzcGFjZXMucHVzaChpKX1pZih2b2lkIDAhPT1lLmdob3N0SWQmJm51bGwhPT1lLmdob3N0SWQ/dC5naG9zdElkPWUuZ2hvc3RJZDp0Lmdob3N0SWQ9XCJcIix2b2lkIDAhPT1lLmNvdW50cnlDb2RlJiZudWxsIT09ZS5jb3VudHJ5Q29kZT90LmNvdW50cnlDb2RlPWUuY291bnRyeUNvZGU6dC5jb3VudHJ5Q29kZT1cIlwiLHZvaWQgMCE9PWUuc2NyZWVuV2lkdGgmJm51bGwhPT1lLnNjcmVlbldpZHRoP3Quc2NyZWVuV2lkdGg9ZS5zY3JlZW5XaWR0aDp0LnNjcmVlbldpZHRoPTAsdm9pZCAwIT09ZS5zY3JlZW5IZWlnaHQmJm51bGwhPT1lLnNjcmVlbkhlaWdodD90LnNjcmVlbkhlaWdodD1lLnNjcmVlbkhlaWdodDp0LnNjcmVlbkhlaWdodD0wLHZvaWQgMCE9PWUuY29ubmVjdGl2aXR5JiZudWxsIT09ZS5jb25uZWN0aXZpdHk/dC5jb25uZWN0aXZpdHk9Ry5mcm9tUGFydGlhbChlLmNvbm5lY3Rpdml0eSk6dC5jb25uZWN0aXZpdHk9dm9pZCAwLHZvaWQgMCE9PWUubWF4VmlkZW9XaWR0aFB4JiZudWxsIT09ZS5tYXhWaWRlb1dpZHRoUHg/dC5tYXhWaWRlb1dpZHRoUHg9ZS5tYXhWaWRlb1dpZHRoUHg6dC5tYXhWaWRlb1dpZHRoUHg9MCx2b2lkIDAhPT1lLm1heFZpZGVvSGVpZ2h0UHgmJm51bGwhPT1lLm1heFZpZGVvSGVpZ2h0UHg/dC5tYXhWaWRlb0hlaWdodFB4PWUubWF4VmlkZW9IZWlnaHRQeDp0Lm1heFZpZGVvSGVpZ2h0UHg9MCx2b2lkIDAhPT1lLmJlbmNobWFya1Jlc3VsdHMmJm51bGwhPT1lLmJlbmNobWFya1Jlc3VsdHMpZm9yKHZhciBvPTAsYT1lLmJlbmNobWFya1Jlc3VsdHM7bzxhLmxlbmd0aDtvKyspe2k9YVtvXTt0LmJlbmNobWFya1Jlc3VsdHMucHVzaChJKGkpKX1pZih2b2lkIDAhPT1lLmRlbHRhU3luYyYmbnVsbCE9PWUuZGVsdGFTeW5jP3QuZGVsdGFTeW5jPWUuZGVsdGFTeW5jOnQuZGVsdGFTeW5jPSExLHZvaWQgMCE9PWUudXNlckFnZW50JiZudWxsIT09ZS51c2VyQWdlbnQ/dC51c2VyQWdlbnQ9ZS51c2VyQWdlbnQ6dC51c2VyQWdlbnQ9XCJcIix2b2lkIDAhPT1lLnRyaWdnZXJFdmVudFR5cGUmJm51bGwhPT1lLnRyaWdnZXJFdmVudFR5cGU/dC50cmlnZ2VyRXZlbnRUeXBlPWUudHJpZ2dlckV2ZW50VHlwZTp0LnRyaWdnZXJFdmVudFR5cGU9MCx2b2lkIDAhPT1lLmFwcFN0YXRlJiZudWxsIT09ZS5hcHBTdGF0ZT90LmFwcFN0YXRlPWUuYXBwU3RhdGU6dC5hcHBTdGF0ZT0wLHZvaWQgMCE9PWUubG9jYWxlJiZudWxsIT09ZS5sb2NhbGU/dC5sb2NhbGU9ZS5sb2NhbGU6dC5sb2NhbGU9XCJcIix2b2lkIDAhPT1lLmRldmljZUlkJiZudWxsIT09ZS5kZXZpY2VJZD90LmRldmljZUlkPWUuZGV2aWNlSWQ6dC5kZXZpY2VJZD1cIlwiLHZvaWQgMCE9PWUudXNlcklkJiZudWxsIT09ZS51c2VySWQ/dC51c2VySWQ9ZS51c2VySWQ6dC51c2VySWQ9XCJcIix2b2lkIDAhPT1lLmNsaWVudElwJiZudWxsIT09ZS5jbGllbnRJcD90LmNsaWVudElwPWUuY2xpZW50SXA6dC5jbGllbnRJcD1cIlwiLHZvaWQgMCE9PWUuaXNVbkF1dGhvcml6ZWQmJm51bGwhPT1lLmlzVW5BdXRob3JpemVkP3QuaXNVbkF1dGhvcml6ZWQ9ZS5pc1VuQXV0aG9yaXplZDp0LmlzVW5BdXRob3JpemVkPSExLHZvaWQgMCE9PWUuYXBwTG9jYWxlJiZudWxsIT09ZS5hcHBMb2NhbGU/dC5hcHBMb2NhbGU9ZS5hcHBMb2NhbGU6dC5hcHBMb2NhbGU9XCJcIix2b2lkIDAhPT1lLmluc3RydW1lbnRhdGlvbiYmbnVsbCE9PWUuaW5zdHJ1bWVudGF0aW9uP3QuaW5zdHJ1bWVudGF0aW9uPWUuaW5zdHJ1bWVudGF0aW9uOnQuaW5zdHJ1bWVudGF0aW9uPTAsdm9pZCAwIT09ZS5sYXN0U3VjY2Vzc2Z1bFN5bmMmJm51bGwhPT1lLmxhc3RTdWNjZXNzZnVsU3luYz90Lmxhc3RTdWNjZXNzZnVsU3luYz1lLmxhc3RTdWNjZXNzZnVsU3luYzp0Lmxhc3RTdWNjZXNzZnVsU3luYz0wLHZvaWQgMCE9PWUuaXNMb2dvdXQmJm51bGwhPT1lLmlzTG9nb3V0P3QuaXNMb2dvdXQ9ZS5pc0xvZ291dDp0LmlzTG9nb3V0PSExLHZvaWQgMCE9PWUucGFja2FnZUluc3RhbGxlciYmbnVsbCE9PWUucGFja2FnZUluc3RhbGxlcj90LnBhY2thZ2VJbnN0YWxsZXI9ZS5wYWNrYWdlSW5zdGFsbGVyOnQucGFja2FnZUluc3RhbGxlcj1cIlwiLHZvaWQgMCE9PWUuc3luY1RyaWdnZXJCbGl6emFyZFNlc3Npb25JZCYmbnVsbCE9PWUuc3luY1RyaWdnZXJCbGl6emFyZFNlc3Npb25JZD90LnN5bmNUcmlnZ2VyQmxpenphcmRTZXNzaW9uSWQ9ZS5zeW5jVHJpZ2dlckJsaXp6YXJkU2Vzc2lvbklkOnQuc3luY1RyaWdnZXJCbGl6emFyZFNlc3Npb25JZD1cIlwiLHZvaWQgMCE9PWUuc3luY0V4ZWN1dGlvbkJsaXp6YXJkU2Vzc2lvbklkJiZudWxsIT09ZS5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQ/dC5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQ9ZS5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQ6dC5zeW5jRXhlY3V0aW9uQmxpenphcmRTZXNzaW9uSWQ9XCJcIix2b2lkIDAhPT1lLmNvZlN5bmNUcmlnZ2VyRGVsYXlGcm9tU3RhcnR1cE1zJiZudWxsIT09ZS5jb2ZTeW5jVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNcz90LmNvZlN5bmNUcmlnZ2VyRGVsYXlGcm9tU3RhcnR1cE1zPWUuY29mU3luY1RyaWdnZXJEZWxheUZyb21TdGFydHVwTXM6dC5jb2ZTeW5jVHJpZ2dlckRlbGF5RnJvbVN0YXJ0dXBNcz0wLHZvaWQgMCE9PWUuY29mU3luY0V4ZWN1dGlvbkRlbGF5RnJvbVN0YXJ0dXBNcyYmbnVsbCE9PWUuY29mU3luY0V4ZWN1dGlvbkRlbGF5RnJvbVN0YXJ0dXBNcz90LmNvZlN5bmNFeGVjdXRpb25EZWxheUZyb21TdGFydHVwTXM9ZS5jb2ZTeW5jRXhlY3V0aW9uRGVsYXlGcm9tU3RhcnR1cE1zOnQuY29mU3luY0V4ZWN1dGlvbkRlbGF5RnJvbVN0YXJ0dXBNcz0wLHZvaWQgMCE9PWUuc3luY1RyaWdnZXJUaW1lJiZudWxsIT09ZS5zeW5jVHJpZ2dlclRpbWU/dC5zeW5jVHJpZ2dlclRpbWU9ZS5zeW5jVHJpZ2dlclRpbWU6dC5zeW5jVHJpZ2dlclRpbWU9MCx2b2lkIDAhPT1lLmRlY29kZXJFbmNvZGVyQXZhaWxhYmlsaXR5JiZudWxsIT09ZS5kZWNvZGVyRW5jb2RlckF2YWlsYWJpbGl0eT90LmRlY29kZXJFbmNvZGVyQXZhaWxhYmlsaXR5PVYuZnJvbVBhcnRpYWwoZS5kZWNvZGVyRW5jb2RlckF2YWlsYWJpbGl0eSk6dC5kZWNvZGVyRW5jb2RlckF2YWlsYWJpbGl0eT12b2lkIDAsdm9pZCAwIT09ZS5zbmFwa2l0QXBwSWQmJm51bGwhPT1lLnNuYXBraXRBcHBJZD90LnNuYXBraXRBcHBJZD1lLnNuYXBraXRBcHBJZDp0LnNuYXBraXRBcHBJZD1cIlwiLHZvaWQgMCE9PWUubGVuc2NvcmVWZXJzaW9uJiZudWxsIT09ZS5sZW5zY29yZVZlcnNpb24/dC5sZW5zY29yZVZlcnNpb249ZS5sZW5zY29yZVZlcnNpb246dC5sZW5zY29yZVZlcnNpb249MCx2b2lkIDAhPT1lLnJ1aWQmJm51bGwhPT1lLnJ1aWQ/dC5ydWlkPWsoZS5ydWlkKTp0LnJ1aWQ9dm9pZCAwLHZvaWQgMCE9PWUuY29uZmlnTmFtZXMmJm51bGwhPT1lLmNvbmZpZ05hbWVzKWZvcih2YXIgcz0wLGM9ZS5jb25maWdOYW1lcztzPGMubGVuZ3RoO3MrKyl7aT1jW3NdO3QuY29uZmlnTmFtZXMucHVzaChpKX1yZXR1cm4gdm9pZCAwIT09ZS5pbmNsdWRlVGVzdFVzZXJUcmVhdG1lbnRzJiZudWxsIT09ZS5pbmNsdWRlVGVzdFVzZXJUcmVhdG1lbnRzP3QuaW5jbHVkZVRlc3RVc2VyVHJlYXRtZW50cz1lLmluY2x1ZGVUZXN0VXNlclRyZWF0bWVudHM6dC5pbmNsdWRlVGVzdFVzZXJUcmVhdG1lbnRzPSExLHZvaWQgMCE9PWUuZGlzYWJsZUV4cG9zdXJlTG9nZ2luZyYmbnVsbCE9PWUuZGlzYWJsZUV4cG9zdXJlTG9nZ2luZz90LmRpc2FibGVFeHBvc3VyZUxvZ2dpbmc9ZS5kaXNhYmxlRXhwb3N1cmVMb2dnaW5nOnQuZGlzYWJsZUV4cG9zdXJlTG9nZ2luZz0hMSx2b2lkIDAhPT1lLmxlbnNDbHVzdGVyT3JpZzQmJm51bGwhPT1lLmxlbnNDbHVzdGVyT3JpZzQ/dC5sZW5zQ2x1c3Rlck9yaWc0PWUubGVuc0NsdXN0ZXJPcmlnNDp0LmxlbnNDbHVzdGVyT3JpZzQ9MCx0fSxIPXtuZXR3b3JrVHlwZTowLGNhcnJpZXI6XCJcIn0sRz17ZW5jb2RlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLDAhPT1lLm5ldHdvcmtUeXBlJiZ0LnVpbnQzMig4KS5pbnQzMihlLm5ldHdvcmtUeXBlKSx2b2lkIDAhPT1lLmlzTWV0ZXJlZCYmTSh7dmFsdWU6ZS5pc01ldGVyZWR9LHQudWludDMyKDE4KS5mb3JrKCkpLmxkZWxpbSgpLHZvaWQgMCE9PWUuaXNSb2FtaW5nJiZNKHt2YWx1ZTplLmlzUm9hbWluZ30sdC51aW50MzIoMjYpLmZvcmsoKSkubGRlbGltKCksXCJcIiE9PWUuY2FycmllciYmdC51aW50MzIoMzQpLnN0cmluZyhlLmNhcnJpZXIpLHR9LGRlY29kZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9bCh7fSxIKTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtzd2l0Y2goYT4+PjMpe2Nhc2UgMTppLm5ldHdvcmtUeXBlPW4uaW50MzIoKTticmVhaztjYXNlIDI6aS5pc01ldGVyZWQ9RChuLG4udWludDMyKCkpLnZhbHVlO2JyZWFrO2Nhc2UgMzppLmlzUm9hbWluZz1EKG4sbi51aW50MzIoKSkudmFsdWU7YnJlYWs7Y2FzZSA0OmkuY2Fycmllcj1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sZnJvbVBhcnRpYWw6ZnVuY3Rpb24oZSl7dmFyIHQ9bCh7fSxIKTtyZXR1cm4gdm9pZCAwIT09ZS5uZXR3b3JrVHlwZSYmbnVsbCE9PWUubmV0d29ya1R5cGU/dC5uZXR3b3JrVHlwZT1lLm5ldHdvcmtUeXBlOnQubmV0d29ya1R5cGU9MCx2b2lkIDAhPT1lLmlzTWV0ZXJlZCYmbnVsbCE9PWUuaXNNZXRlcmVkP3QuaXNNZXRlcmVkPWUuaXNNZXRlcmVkOnQuaXNNZXRlcmVkPXZvaWQgMCx2b2lkIDAhPT1lLmlzUm9hbWluZyYmbnVsbCE9PWUuaXNSb2FtaW5nP3QuaXNSb2FtaW5nPWUuaXNSb2FtaW5nOnQuaXNSb2FtaW5nPXZvaWQgMCx2b2lkIDAhPT1lLmNhcnJpZXImJm51bGwhPT1lLmNhcnJpZXI/dC5jYXJyaWVyPWUuY2Fycmllcjp0LmNhcnJpZXI9XCJcIix0fX0sVz17aXNTbmFwVnA5RGVjb2RlckF2YWlsYWJsZTohMSxpc1NuYXBBdjFEZWNvZGVyQXZhaWxhYmxlOiExfSxWPXtlbmNvZGU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSksITA9PT1lLmlzU25hcFZwOURlY29kZXJBdmFpbGFibGUmJnQudWludDMyKDgpLmJvb2woZS5pc1NuYXBWcDlEZWNvZGVyQXZhaWxhYmxlKSwhMD09PWUuaXNTbmFwQXYxRGVjb2RlckF2YWlsYWJsZSYmdC51aW50MzIoMTYpLmJvb2woZS5pc1NuYXBBdjFEZWNvZGVyQXZhaWxhYmxlKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKSxyPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdCxpPWwoe30sVyk7bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS5pc1NuYXBWcDlEZWNvZGVyQXZhaWxhYmxlPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMjppLmlzU25hcEF2MURlY29kZXJBdmFpbGFibGU9bi5ib29sKCk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmYSl9fXJldHVybiBpfSxmcm9tUGFydGlhbDpmdW5jdGlvbihlKXt2YXIgdD1sKHt9LFcpO3JldHVybiB2b2lkIDAhPT1lLmlzU25hcFZwOURlY29kZXJBdmFpbGFibGUmJm51bGwhPT1lLmlzU25hcFZwOURlY29kZXJBdmFpbGFibGU/dC5pc1NuYXBWcDlEZWNvZGVyQXZhaWxhYmxlPWUuaXNTbmFwVnA5RGVjb2RlckF2YWlsYWJsZTp0LmlzU25hcFZwOURlY29kZXJBdmFpbGFibGU9ITEsdm9pZCAwIT09ZS5pc1NuYXBBdjFEZWNvZGVyQXZhaWxhYmxlJiZudWxsIT09ZS5pc1NuYXBBdjFEZWNvZGVyQXZhaWxhYmxlP3QuaXNTbmFwQXYxRGVjb2RlckF2YWlsYWJsZT1lLmlzU25hcEF2MURlY29kZXJBdmFpbGFibGU6dC5pc1NuYXBBdjFEZWNvZGVyQXZhaWxhYmxlPSExLHR9fSx6PVwidW5kZWZpbmVkXCIhPT10eXBlb2Ygej96OlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2VsZj9zZWxmOndpbmRvdztvLmRlZmF1bHQudXRpbC5Mb25nIT09aS5kZWZhdWx0JiYoby5kZWZhdWx0LnV0aWwuTG9uZz1pLmRlZmF1bHQsby5kZWZhdWx0LmNvbmZpZ3VyZSgpKTt2YXIgSz17dHlwZVVybDpcIlwifSxZPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLFwiXCIhPT1lLnR5cGVVcmwmJnQudWludDMyKDEwKS5zdHJpbmcoZS50eXBlVXJsKSwwIT09ZS52YWx1ZS5sZW5ndGgmJnQudWludDMyKDE4KS5ieXRlcyhlLnZhbHVlKSx0fSxxPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKSxyPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdCxpPWwoe30sSyk7Zm9yKGkudmFsdWU9bmV3IFVpbnQ4QXJyYXk7bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS50eXBlVXJsPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSAyOmkudmFsdWU9bi5ieXRlcygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0sWj1mdW5jdGlvbihlKXt2YXIgdD1sKHt9LEspO3JldHVybiB2b2lkIDAhPT1lLnR5cGVVcmwmJm51bGwhPT1lLnR5cGVVcmw/dC50eXBlVXJsPWUudHlwZVVybDp0LnR5cGVVcmw9XCJcIix2b2lkIDAhPT1lLnZhbHVlJiZudWxsIT09ZS52YWx1ZT90LnZhbHVlPWUudmFsdWU6dC52YWx1ZT1uZXcgVWludDhBcnJheSx0fTtvLmRlZmF1bHQudXRpbC5Mb25nIT09aS5kZWZhdWx0JiYoby5kZWZhdWx0LnV0aWwuTG9uZz1pLmRlZmF1bHQsby5kZWZhdWx0LmNvbmZpZ3VyZSgpKTt2YXIgSixYLFEsJCxlZSx0ZT17a2V5OlwiXCIsdmFsdWU6XCJcIn0sbmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSksXCJcIiE9PWUua2V5JiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUua2V5KSxcIlwiIT09ZS52YWx1ZSYmdC51aW50MzIoMTgpLnN0cmluZyhlLnZhbHVlKSx0fSxyZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9bCh7fSx0ZSk7bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS5rZXk9bi5zdHJpbmcoKTticmVhaztjYXNlIDI6aS52YWx1ZT1uLnN0cmluZygpO2JyZWFrO2RlZmF1bHQ6bi5za2lwVHlwZSg3JmEpfX1yZXR1cm4gaX0saWU9ZnVuY3Rpb24oZSl7dmFyIHQ9bCh7fSx0ZSk7cmV0dXJuIHZvaWQgMCE9PWUua2V5JiZudWxsIT09ZS5rZXk/dC5rZXk9ZS5rZXk6dC5rZXk9XCJcIix2b2lkIDAhPT1lLnZhbHVlJiZudWxsIT09ZS52YWx1ZT90LnZhbHVlPWUudmFsdWU6dC52YWx1ZT1cIlwiLHR9LG9lPXt9LGFlPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSk7Zm9yKHZhciBuPTAscj1lLnJlY29yZHM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07bmUoaSx0LnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKX1yZXR1cm4gdH0sc2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9bCh7fSxvZSk7Zm9yKGkucmVjb3Jkcz1bXTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtpZihhPj4+Mz09PTEpaS5yZWNvcmRzLnB1c2gocmUobixuLnVpbnQzMigpKSk7ZWxzZSBuLnNraXBUeXBlKDcmYSl9cmV0dXJuIGl9LGNlPWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30sb2UpO2lmKHQucmVjb3Jkcz1bXSx2b2lkIDAhPT1lLnJlY29yZHMmJm51bGwhPT1lLnJlY29yZHMpZm9yKHZhciBuPTAscj1lLnJlY29yZHM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07dC5yZWNvcmRzLnB1c2goaWUoaSkpfXJldHVybiB0fSx1ZT17fSxsZT1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKSx2b2lkIDAhPT1lLmludFZhbHVlJiZ0LnVpbnQzMig4KS5pbnQzMihlLmludFZhbHVlKSx2b2lkIDAhPT1lLmxvbmdWYWx1ZSYmdC51aW50MzIoMTYpLmludDY0KGUubG9uZ1ZhbHVlKSx2b2lkIDAhPT1lLmZsb2F0VmFsdWUmJnQudWludDMyKDI5KS5mbG9hdChlLmZsb2F0VmFsdWUpLHZvaWQgMCE9PWUuZG91YmxlVmFsdWUmJnQudWludDMyKDczKS5kb3VibGUoZS5kb3VibGVWYWx1ZSksdm9pZCAwIT09ZS5ib29sVmFsdWUmJnQudWludDMyKDMyKS5ib29sKGUuYm9vbFZhbHVlKSx2b2lkIDAhPT1lLnN0cmluZ1ZhbHVlJiZ0LnVpbnQzMig0Mikuc3RyaW5nKGUuc3RyaW5nVmFsdWUpLHZvaWQgMCE9PWUuYW55VmFsdWUmJlkoZS5hbnlWYWx1ZSx0LnVpbnQzMig1MCkuZm9yaygpKS5sZGVsaW0oKSx2b2lkIDAhPT1lLm1hcFZhbHVlJiZhZShlLm1hcFZhbHVlLHQudWludDMyKDU4KS5mb3JrKCkpLmxkZWxpbSgpLHZvaWQgMCE9PWUuaW50UGFpclZhbHVlJiZ0LnVpbnQzMig2NSkuZml4ZWQ2NChlLmludFBhaXJWYWx1ZSksdH0sZGU9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKSxyPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdCxpPWwoe30sdWUpO24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO3N3aXRjaChhPj4+Myl7Y2FzZSAxOmkuaW50VmFsdWU9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMjppLmxvbmdWYWx1ZT1oZShuLmludDY0KCkpO2JyZWFrO2Nhc2UgMzppLmZsb2F0VmFsdWU9bi5mbG9hdCgpO2JyZWFrO2Nhc2UgOTppLmRvdWJsZVZhbHVlPW4uZG91YmxlKCk7YnJlYWs7Y2FzZSA0OmkuYm9vbFZhbHVlPW4uYm9vbCgpO2JyZWFrO2Nhc2UgNTppLnN0cmluZ1ZhbHVlPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA2OmkuYW55VmFsdWU9cShuLG4udWludDMyKCkpO2JyZWFrO2Nhc2UgNzppLm1hcFZhbHVlPXNlKG4sbi51aW50MzIoKSk7YnJlYWs7Y2FzZSA4OmkuaW50UGFpclZhbHVlPWhlKG4uZml4ZWQ2NCgpKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LHBlPWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30sdWUpO3JldHVybiB2b2lkIDAhPT1lLmludFZhbHVlJiZudWxsIT09ZS5pbnRWYWx1ZT90LmludFZhbHVlPWUuaW50VmFsdWU6dC5pbnRWYWx1ZT12b2lkIDAsdm9pZCAwIT09ZS5sb25nVmFsdWUmJm51bGwhPT1lLmxvbmdWYWx1ZT90LmxvbmdWYWx1ZT1lLmxvbmdWYWx1ZTp0LmxvbmdWYWx1ZT12b2lkIDAsdm9pZCAwIT09ZS5mbG9hdFZhbHVlJiZudWxsIT09ZS5mbG9hdFZhbHVlP3QuZmxvYXRWYWx1ZT1lLmZsb2F0VmFsdWU6dC5mbG9hdFZhbHVlPXZvaWQgMCx2b2lkIDAhPT1lLmRvdWJsZVZhbHVlJiZudWxsIT09ZS5kb3VibGVWYWx1ZT90LmRvdWJsZVZhbHVlPWUuZG91YmxlVmFsdWU6dC5kb3VibGVWYWx1ZT12b2lkIDAsdm9pZCAwIT09ZS5ib29sVmFsdWUmJm51bGwhPT1lLmJvb2xWYWx1ZT90LmJvb2xWYWx1ZT1lLmJvb2xWYWx1ZTp0LmJvb2xWYWx1ZT12b2lkIDAsdm9pZCAwIT09ZS5zdHJpbmdWYWx1ZSYmbnVsbCE9PWUuc3RyaW5nVmFsdWU/dC5zdHJpbmdWYWx1ZT1lLnN0cmluZ1ZhbHVlOnQuc3RyaW5nVmFsdWU9dm9pZCAwLHZvaWQgMCE9PWUuYW55VmFsdWUmJm51bGwhPT1lLmFueVZhbHVlP3QuYW55VmFsdWU9WihlLmFueVZhbHVlKTp0LmFueVZhbHVlPXZvaWQgMCx2b2lkIDAhPT1lLm1hcFZhbHVlJiZudWxsIT09ZS5tYXBWYWx1ZT90Lm1hcFZhbHVlPWNlKGUubWFwVmFsdWUpOnQubWFwVmFsdWU9dm9pZCAwLHZvaWQgMCE9PWUuaW50UGFpclZhbHVlJiZudWxsIT09ZS5pbnRQYWlyVmFsdWU/dC5pbnRQYWlyVmFsdWU9ZS5pbnRQYWlyVmFsdWU6dC5pbnRQYWlyVmFsdWU9dm9pZCAwLHR9LGZlPVwidW5kZWZpbmVkXCIhPT10eXBlb2YgZmU/ZmU6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZWxmP3NlbGY6d2luZG93O2Z1bmN0aW9uIGhlKGUpe2lmKGUuZ3QoTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKXRocm93IG5ldyBmZS5FcnJvcihcIlZhbHVlIGlzIGxhcmdlciB0aGFuIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXCIpO3JldHVybiBlLnRvTnVtYmVyKCl9by5kZWZhdWx0LnV0aWwuTG9uZyE9PWkuZGVmYXVsdCYmKG8uZGVmYXVsdC51dGlsLkxvbmc9aS5kZWZhdWx0LG8uZGVmYXVsdC5jb25maWd1cmUoKSksdC5Db25maWdSZXN1bHRTZXJ2ZVBsYXRmb3JtPUosZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fQ09OVEVYVF9QTEFURk9STT0wXT1cIlVOS05PV05fQ09OVEVYVF9QTEFURk9STVwiLGVbZS5JT1NfUExBVEZPUk09MV09XCJJT1NfUExBVEZPUk1cIixlW2UuQU5EUk9JRF9QTEFURk9STT0yXT1cIkFORFJPSURfUExBVEZPUk1cIixlW2UuU0VSVkVSX1BMQVRGT1JNPTNdPVwiU0VSVkVSX1BMQVRGT1JNXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0oSnx8KHQuQ29uZmlnUmVzdWx0U2VydmVQbGF0Zm9ybT1KPXt9KSksdC5DbGllbnRUYXJnZXRpbmdFeHByZXNzaW9uT3BlcmF0b3I9WCxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9PUEVSQVRPUj0wXT1cIlVOS05PV05fT1BFUkFUT1JcIixlW2UuQU5EPTFdPVwiQU5EXCIsZVtlLk9SPTJdPVwiT1JcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShYfHwodC5DbGllbnRUYXJnZXRpbmdFeHByZXNzaW9uT3BlcmF0b3I9WD17fSkpLHQuQ2xpZW50VGFyZ2V0aW5nRXhwcmVzc2lvblByZWRpY2F0ZU9wZXJhdG9yPVEsZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fUFJFRElDQVRFX09QRVJBVE9SPTBdPVwiVU5LTk9XTl9QUkVESUNBVEVfT1BFUkFUT1JcIixlW2UuRVFVQUw9MV09XCJFUVVBTFwiLGVbZS5OT1RfRVFVQUw9Ml09XCJOT1RfRVFVQUxcIixlW2UuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPPTNdPVwiR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPXCIsZVtlLkxFU1NfVEhBTl9PUl9FUVVBTF9UTz00XT1cIkxFU1NfVEhBTl9PUl9FUVVBTF9UT1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KFF8fCh0LkNsaWVudFRhcmdldGluZ0V4cHJlc3Npb25QcmVkaWNhdGVPcGVyYXRvcj1RPXt9KSksdC5DbGllbnRUYXJnZXRpbmdFeHByZXNzaW9uUHJvcGVydHk9JCxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9QUk9QRVJUWT0wXT1cIlVOS05PV05fUFJPUEVSVFlcIixlW2UuQkFUVEVSWV9MRVZFTD0xXT1cIkJBVFRFUllfTEVWRUxcIixlW2UuSVNfT0ZGTElORT0yXT1cIklTX09GRkxJTkVcIixlW2UuSVNfQ0hBUkdJTkc9M109XCJJU19DSEFSR0lOR1wiLGVbZS5CQU5EV0lEVEg9NF09XCJCQU5EV0lEVEhcIixlW2UuRElTS19TSVpFPTVdPVwiRElTS19TSVpFXCIsZVtlLkRJU0tfQVZBSUxBQkxFPTZdPVwiRElTS19BVkFJTEFCTEVcIixlW2UuTUVESUFfVFlQRV9ERVBSRUNBVEVEPTddPVwiTUVESUFfVFlQRV9ERVBSRUNBVEVEXCIsZVtlLklTX1BVQkxJQ19TVE9SWT04XT1cIklTX1BVQkxJQ19TVE9SWVwiLGVbZS5JU19PRkZJQ0lBTF9TVE9SWT05XT1cIklTX09GRklDSUFMX1NUT1JZXCIsZVtlLkNBTUVSQV9ESVJFQ1RJT049MTBdPVwiQ0FNRVJBX0RJUkVDVElPTlwiLGVbZS5DQU1FUkFfQ09OVEVYVD0xMV09XCJDQU1FUkFfQ09OVEVYVFwiLGVbZS5DQU1FUkFfQVBJPTEyXT1cIkNBTUVSQV9BUElcIixlW2UuQ0FNRVJBX0ZMQVNIX1NUQVRFPTEzXT1cIkNBTUVSQV9GTEFTSF9TVEFURVwiLGVbZS5TTkFQX1NPVVJDRT0xNF09XCJTTkFQX1NPVVJDRVwiLGVbZS5MRUdBQ1lfTVVTSFJPT01fQ09OVEVOVF9UWVBFPTE1XT1cIkxFR0FDWV9NVVNIUk9PTV9DT05URU5UX1RZUEVcIixlW2UuVVBMT0FEX0JBTkRXSURUSD0xNl09XCJVUExPQURfQkFORFdJRFRIXCIsZVtlLkNBTUVSQTJfTEVWRUw9MTddPVwiQ0FNRVJBMl9MRVZFTFwiLGVbZS5DQU1FUkFfTklHSFRfTU9ERV9TVEFURT0xOF09XCJDQU1FUkFfTklHSFRfTU9ERV9TVEFURVwiLGVbZS5VU0VSX0xBTkdVQUdFPTE5XT1cIlVTRVJfTEFOR1VBR0VcIixlW2UuVklERU9fRFVSQVRJT049MjBdPVwiVklERU9fRFVSQVRJT05cIixlW2UuUkVBTFRJTUVfTU9CSUxFX05FVFdPUktfR0VORVJBVElPTj0yMV09XCJSRUFMVElNRV9NT0JJTEVfTkVUV09SS19HRU5FUkFUSU9OXCIsZVtlLlJFQUxUSU1FX05FVFdPUktfVFlQRT0yMl09XCJSRUFMVElNRV9ORVRXT1JLX1RZUEVcIixlW2UuUkVBTFRJTUVfTkVUV09SS19JU19NRVRFUkVEPTIzXT1cIlJFQUxUSU1FX05FVFdPUktfSVNfTUVURVJFRFwiLGVbZS5SRUFMVElNRV9ORVRXT1JLX0lTX1JPQU1JTkc9MjRdPVwiUkVBTFRJTUVfTkVUV09SS19JU19ST0FNSU5HXCIsZVtlLkNBTUVSQV9JU19GSVJTVF9DQVBUVVJFPTI1XT1cIkNBTUVSQV9JU19GSVJTVF9DQVBUVVJFXCIsZVtlLlBJQ1RVUkVfTU9ERT0yNl09XCJQSUNUVVJFX01PREVcIixlW2UuQk9MVF9VU0VfQ0FTRT0yN109XCJCT0xUX1VTRV9DQVNFXCIsZVtlLkJPTFRfQ0ROX0VYUEVSSU1FTlRBVElPTl9JRD0yOF09XCJCT0xUX0NETl9FWFBFUklNRU5UQVRJT05fSURcIixlW2UuTUlOU19TSU5DRV9MQVNUX0xFTlNfQUNUSVZBVElPTj0yOV09XCJNSU5TX1NJTkNFX0xBU1RfTEVOU19BQ1RJVkFUSU9OXCIsZVtlLk1JTlNfU0lOQ0VfTEFTVF9TTkFQUEFCTEVfTEVOU19BQ1RJVkFUSU9OPTMwXT1cIk1JTlNfU0lOQ0VfTEFTVF9TTkFQUEFCTEVfTEVOU19BQ1RJVkFUSU9OXCIsZVtlLkRBWVNfU0lOQ0VfTEFTVF9MT0dJTl9PUl9PUEVOPTMxXT1cIkRBWVNfU0lOQ0VfTEFTVF9MT0dJTl9PUl9PUEVOXCIsZVtlLlNQRUNUQUNMRVNfVkVSU0lPTj0zMl09XCJTUEVDVEFDTEVTX1ZFUlNJT05cIixlW2UuU1RJQ0tZX01BWF9DT05ORUNUSU9OX1RZUEU9MzNdPVwiU1RJQ0tZX01BWF9DT05ORUNUSU9OX1RZUEVcIixlW2UuV0lUSF9BTklNQVRFRF9PVkVSTEFZPTM0XT1cIldJVEhfQU5JTUFURURfT1ZFUkxBWVwiLGVbZS5FU1RJTUFURURfRFVSQVRJT05fRk9SX0VWRU5UX01TPTM1XT1cIkVTVElNQVRFRF9EVVJBVElPTl9GT1JfRVZFTlRfTVNcIixlW2UuVVJMPTM2XT1cIlVSTFwiLGVbZS5NRURJQV9TT1VSQ0U9MzddPVwiTUVESUFfU09VUkNFXCIsZVtlLkFTU0VUX1RZUEU9MzhdPVwiQVNTRVRfVFlQRVwiLGVbZS5CT0xUX0lTX0NPTlRFTlRfUE9QVUxBUj0zOV09XCJCT0xUX0lTX0NPTlRFTlRfUE9QVUxBUlwiLGVbZS5DQVBUVVJFX01PREU9NDBdPVwiQ0FQVFVSRV9NT0RFXCIsZVtlLlZQOV9TT0ZUV0FSRV9ERUNPRElOR19TVVBQT1JURUQ9NDFdPVwiVlA5X1NPRlRXQVJFX0RFQ09ESU5HX1NVUFBPUlRFRFwiLGVbZS5BVjFfU09GVFdBUkVfREVDT0RJTkdfU1VQUE9SVEVEPTQyXT1cIkFWMV9TT0ZUV0FSRV9ERUNPRElOR19TVVBQT1JURURcIixlW2UuV0lUSF9NVVNJQz00M109XCJXSVRIX01VU0lDXCIsZVtlLkZFQVRVUkVfUFJPVklERURfU0laRT00NF09XCJGRUFUVVJFX1BST1ZJREVEX1NJWkVcIixlW2UuTUVESUFfVFlQRT00NV09XCJNRURJQV9UWVBFXCIsZVtlLlNDQU5ORURfQ0FURUdPUllfSURTPTQ2XT1cIlNDQU5ORURfQ0FURUdPUllfSURTXCIsZVtlLkNPTlRFTlRfVklFV19TT1VSQ0U9NDddPVwiQ09OVEVOVF9WSUVXX1NPVVJDRVwiLGVbZS5SRUNJUElFTlRTX1NVUFBPUlRfSEVWQz00OF09XCJSRUNJUElFTlRTX1NVUFBPUlRfSEVWQ1wiLGVbZS5DT0dOQUNfQVBQX0lEPTQ5XT1cIkNPR05BQ19BUFBfSURcIixlW2UuRU1BSUxfVkVSSUZJRUQ9NTBdPVwiRU1BSUxfVkVSSUZJRURcIixlW2UuUEhPTkVfVkVSSUZJRUQ9NTFdPVwiUEhPTkVfVkVSSUZJRURcIixlW2UuTk9USUZJQ0FUSU9OX1BFUk1fR1JBTlRFRD01Ml09XCJOT1RJRklDQVRJT05fUEVSTV9HUkFOVEVEXCIsZVtlLkNPTlRBQ1RfUEVSTV9HUkFOVEVEPTUzXT1cIkNPTlRBQ1RfUEVSTV9HUkFOVEVEXCIsZVtlLk1VVFVBTF9GUklFTkRTX0NPVU5UPTU0XT1cIk1VVFVBTF9GUklFTkRTX0NPVU5UXCIsZVtlLkdST1VQU19DT1VOVD01NV09XCJHUk9VUFNfQ09VTlRcIixlW2UuSEFTX05PTl9URUFNX1NOQVBDSEFUX0NPTlZFUlNBVElPTlM9NTZdPVwiSEFTX05PTl9URUFNX1NOQVBDSEFUX0NPTlZFUlNBVElPTlNcIixlW2UuUExBWUJBQ0tfSVRFTV9UWVBFPTU3XT1cIlBMQVlCQUNLX0lURU1fVFlQRVwiLGVbZS5TVVBfQk9PTEVBTl9QUk9QRVJUWT01OF09XCJTVVBfQk9PTEVBTl9QUk9QRVJUWVwiLGVbZS5TVVBfSU5URUdFUl9QUk9QRVJUWT01OV09XCJTVVBfSU5URUdFUl9QUk9QRVJUWVwiLGVbZS5TVVBfTE9OR19QUk9QRVJUWT02MF09XCJTVVBfTE9OR19QUk9QRVJUWVwiLGVbZS5TVVBfU1RSSU5HX1BST1BFUlRZPTYxXT1cIlNVUF9TVFJJTkdfUFJPUEVSVFlcIixlW2UuU1VQX0RPVUJMRV9QUk9QRVJUWT02Ml09XCJTVVBfRE9VQkxFX1BST1BFUlRZXCIsZVtlLlNVUF9NSUxMSVNfUFJPUEVSVFlfVE9fTk9XPTYzXT1cIlNVUF9NSUxMSVNfUFJPUEVSVFlfVE9fTk9XXCIsZVtlLkhBU19VU0VEX1NQRUNUQUNMRVM9NjRdPVwiSEFTX1VTRURfU1BFQ1RBQ0xFU1wiLGVbZS5TVVBfU0VDU19QUk9QRVJUWV9UT19OT1c9NjVdPVwiU1VQX1NFQ1NfUFJPUEVSVFlfVE9fTk9XXCIsZVtlLkJPTFRfQ0xJRU5UX0FQUF9TVEFURT02Nl09XCJCT0xUX0NMSUVOVF9BUFBfU1RBVEVcIixlW2UuRU1BSUxfU0VUPTY3XT1cIkVNQUlMX1NFVFwiLGVbZS5CSVRNT0pJX1NFVD02OF09XCJCSVRNT0pJX1NFVFwiLGVbZS5RVUlDS19UQVBfQ0FNRVJBX1NVUFBPUlRFRF9FTkFCTEVEPTY5XT1cIlFVSUNLX1RBUF9DQU1FUkFfU1VQUE9SVEVEX0VOQUJMRURcIixlW2UuSEFTX0FERF9GUklFTkRTX1JFUVVFU1Q9NzBdPVwiSEFTX0FERF9GUklFTkRTX1JFUVVFU1RcIixlW2UuQVBQX0xBVU5DSF9GUk9NX1BVU0g9NzFdPVwiQVBQX0xBVU5DSF9GUk9NX1BVU0hcIixlW2UuQVBQX0xBVU5DSF9UWVBFPTcyXT1cIkFQUF9MQVVOQ0hfVFlQRVwiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfSU1QUkVTU0lPTl9DT1VOVD03M109XCJCSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfSU1QUkVTU0lPTl9DT1VOVFwiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfTEFTVF9JTVBSRVNTSU9OX1RJTUVfU0VDU19UT19OT1c9NzRdPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0xBU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XXCIsZVtlLkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9DT05USU5VT1VTX0RJU01JU1NfQ09VTlQ9NzVdPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0NPTlRJTlVPVVNfRElTTUlTU19DT1VOVFwiLGVbZS5GU1RfTlVNX0lOX0FQUF9XQVJOSU5HUz03Nl09XCJGU1RfTlVNX0lOX0FQUF9XQVJOSU5HU1wiLGVbZS5GU1RfU0hPVUxEX0NIQU5HRV9QQVNTV09SRD03N109XCJGU1RfU0hPVUxEX0NIQU5HRV9QQVNTV09SRFwiLGVbZS5GU1RfSVNfQkFDS0dST1VORF9DSEVDSz03OF09XCJGU1RfSVNfQkFDS0dST1VORF9DSEVDS1wiLGVbZS5BVURJT19SRUNPUkRfUEVSTV9HUkFOVEVEPTc5XT1cIkFVRElPX1JFQ09SRF9QRVJNX0dSQU5URURcIixlW2UuTVVUVUFMX0ZSSUVORFNfV0lUSF9CSVJUSERBWV9DT1VOVD04MF09XCJNVVRVQUxfRlJJRU5EU19XSVRIX0JJUlRIREFZX0NPVU5UXCIsZVtlLkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9ESVNNSVNTX0NPVU5UPTgxXT1cIkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9ESVNNSVNTX0NPVU5UXCIsZVtlLlVTRV9WRVJUSUNBTF9OQVZJR0FUSU9OPTgyXT1cIlVTRV9WRVJUSUNBTF9OQVZJR0FUSU9OXCIsZVtlLkZSRUVBQkxFX0RJU0tfQVZBSUxBQkxFPTgzXT1cIkZSRUVBQkxFX0RJU0tfQVZBSUxBQkxFXCIsZVtlLk1FTU9SSUVTX0NPVU5UPTg0XT1cIk1FTU9SSUVTX0NPVU5UXCIsZVtlLkRFVklDRV9NT0RFTD04NV09XCJERVZJQ0VfTU9ERUxcIixlW2UuQ09VTlRSWT04Nl09XCJDT1VOVFJZXCIsZVtlLk9TPTg3XT1cIk9TXCIsZVtlLk9TX1ZFUlNJT049ODhdPVwiT1NfVkVSU0lPTlwiLGVbZS5BUFBfVkVSU0lPTj04OV09XCJBUFBfVkVSU0lPTlwiLGVbZS5CVUlMRF9GTEFWT1I9OTBdPVwiQlVJTERfRkxBVk9SXCIsZVtlLlVTRVJfSUQ9OTFdPVwiVVNFUl9JRFwiLGVbZS5MT0NBTEU9OTJdPVwiTE9DQUxFXCIsZVtlLkRFVklDRV9DTFVTVEVSPTkzXT1cIkRFVklDRV9DTFVTVEVSXCIsZVtlLkRFVklDRV9CUkFORD05NF09XCJERVZJQ0VfQlJBTkRcIixlW2UuSVNfRU1QTE9ZRUU9OTVdPVwiSVNfRU1QTE9ZRUVcIixlW2UuVVNFUk5BTUU9OTZdPVwiVVNFUk5BTUVcIixlW2UuSVNfVEVTVF9VU0VSPTk3XT1cIklTX1RFU1RfVVNFUlwiLGVbZS5VU0VSX1BST0ZJTEU9OThdPVwiVVNFUl9QUk9GSUxFXCIsZVtlLlNDUkVFTl9XSURUSD05OV09XCJTQ1JFRU5fV0lEVEhcIixlW2UuU0NSRUVOX0hFSUdIVD0xMDBdPVwiU0NSRUVOX0hFSUdIVFwiLGVbZS5IRVZDX1NVUFBPUlQ9MTAxXT1cIkhFVkNfU1VQUE9SVFwiLGVbZS5ORVRXT1JLX1RZUEU9MTAyXT1cIk5FVFdPUktfVFlQRVwiLGVbZS5NQVhfVklERU9fV0lEVEg9MTAzXT1cIk1BWF9WSURFT19XSURUSFwiLGVbZS5NQVhfVklERU9fSEVJR0hUPTEwNF09XCJNQVhfVklERU9fSEVJR0hUXCIsZVtlLklTX05FVFdPUktfTUVURVJFRD0xMDVdPVwiSVNfTkVUV09SS19NRVRFUkVEXCIsZVtlLklTX1JPQU1JTkc9MTA2XT1cIklTX1JPQU1JTkdcIixlW2UuQVBQX0VOR0FHRU1FTlRfTEVWRUw9MTA3XT1cIkFQUF9FTkdBR0VNRU5UX0xFVkVMXCIsZVtlLkNPTU1VTklDQVRJT05fRU5HQUdFTUVOVF9MRVZFTD0xMDhdPVwiQ09NTVVOSUNBVElPTl9FTkdBR0VNRU5UX0xFVkVMXCIsZVtlLkZSSUVORF9TVE9SWV9FTkdBR0VNRU5UX0xFVkVMPTEwOV09XCJGUklFTkRfU1RPUllfRU5HQUdFTUVOVF9MRVZFTFwiLGVbZS5QVUJMSUNfVVNFUl9TVE9SWV9FTkdBR0VNRU5UX0xFVkVMPTExMF09XCJQVUJMSUNfVVNFUl9TVE9SWV9FTkdBR0VNRU5UX0xFVkVMXCIsZVtlLlBVQkxJU0hFUl9TVE9SWV9FTkdBR0VNRU5UX0xFVkVMPTExMV09XCJQVUJMSVNIRVJfU1RPUllfRU5HQUdFTUVOVF9MRVZFTFwiLGVbZS5MRU5TX0VOR0FHRU1FTlRfTEVWRUw9MTEyXT1cIkxFTlNfRU5HQUdFTUVOVF9MRVZFTFwiLGVbZS5OT05fRlJJRU5EX1NUT1JZX0VOR0FHRU1FTlRfTEVWRUw9MTEzXT1cIk5PTl9GUklFTkRfU1RPUllfRU5HQUdFTUVOVF9MRVZFTFwiLGVbZS5GT0xMT1dFUl9TSVpFX0xFVkVMPTExNF09XCJGT0xMT1dFUl9TSVpFX0xFVkVMXCIsZVtlLkRBWVNfU0lOQ0VfQ1JFQVRJT049MTE1XT1cIkRBWVNfU0lOQ0VfQ1JFQVRJT05cIixlW2UuVVNFUl9QRVJTT05BPTExNl09XCJVU0VSX1BFUlNPTkFcIixlW2UuVVNFUl9DUkVBVElPTl9USU1FPTExN109XCJVU0VSX0NSRUFUSU9OX1RJTUVcIixlW2UuTU9CSUxFX05FVFdPUktfVFlQRT0xMThdPVwiTU9CSUxFX05FVFdPUktfVFlQRVwiLGVbZS5BR0dSRUdBVEVEX1VTRVJfQkFORFdJRFRIPTExOV09XCJBR0dSRUdBVEVEX1VTRVJfQkFORFdJRFRIXCIsZVtlLkxFTlNfQ0xVU1RFUl9CSUFTRUQ9MTIwXT1cIkxFTlNfQ0xVU1RFUl9CSUFTRURcIixlW2UuTEVOU19DTFVTVEVSX0xPRz0xMjFdPVwiTEVOU19DTFVTVEVSX0xPR1wiLGVbZS5MRU5TX0NMVVNURVJfT1JJRz0xMjJdPVwiTEVOU19DTFVTVEVSX09SSUdcIixlW2UuTEVOU19DTFVTVEVSX09SSUdfND0xMjNdPVwiTEVOU19DTFVTVEVSX09SSUdfNFwiLGVbZS5MRU5TX0NMVVNURVJfQklBU0VEX0xPRz0xMjRdPVwiTEVOU19DTFVTVEVSX0JJQVNFRF9MT0dcIixlW2UuQVBQX0xPQ0FMRT0xMjVdPVwiQVBQX0xPQ0FMRVwiLGVbZS5ERVZJQ0VfQ09NTU9OX05BTUU9MTI2XT1cIkRFVklDRV9DT01NT05fTkFNRVwiLGVbZS5VU0VSX0ZSSUVORF9DT1VOVD0xMjddPVwiVVNFUl9GUklFTkRfQ09VTlRcIixlW2UuTDkwX0NPVU5UUlk9MTI4XT1cIkw5MF9DT1VOVFJZXCIsZVtlLlNUVUI9MTI5XT1cIlNUVUJcIixlW2UuSVNfVFJVRT0xMzBdPVwiSVNfVFJVRVwiLGVbZS5TVE9SWV9QT1NUX1JBVElPPTEzMV09XCJTVE9SWV9QT1NUX1JBVElPXCIsZVtlLkdFTkRFUj0xMzJdPVwiR0VOREVSXCIsZVtlLklORkVSUkVEX0FHRV9CVUNLRVQ9MTMzXT1cIklORkVSUkVEX0FHRV9CVUNLRVRcIixlW2UuU1RPUklFUz0xMzRdPVwiU1RPUklFU1wiLGVbZS5TRU5EUz0xMzVdPVwiU0VORFNcIixlW2UuU05BUF9DUkVBVEVfTDc9MTM2XT1cIlNOQVBfQ1JFQVRFX0w3XCIsZVtlLlNUT1JZX1BPU1RfTDc9MTM3XT1cIlNUT1JZX1BPU1RfTDdcIixlW2UuQ09NTVVOSUNBVElPTl9MNz0xMzhdPVwiQ09NTVVOSUNBVElPTl9MN1wiLGVbZS5ERl9MNz0xMzldPVwiREZfTDdcIixlW2UuQVBQX0w3PTE0MF09XCJBUFBfTDdcIixlW2UuREFZU19TSU5DRV9DUkVBVElPTl9CVUNLRVQ9MTQxXT1cIkRBWVNfU0lOQ0VfQ1JFQVRJT05fQlVDS0VUXCIsZVtlLkJJRElSRUNUSU9OQUxfRlJJRU5EX1NUQVRVUz0xNDJdPVwiQklESVJFQ1RJT05BTF9GUklFTkRfU1RBVFVTXCIsZVtlLlNUT1JZX1BPU1RfUFJFRElDVElPTj0xNDNdPVwiU1RPUllfUE9TVF9QUkVESUNUSU9OXCIsZVtlLkFQUF9PUEVOUz0xNDRdPVwiQVBQX09QRU5TXCIsZVtlLkxFTlNfU1dJUEVTPTE0NV09XCJMRU5TX1NXSVBFU1wiLGVbZS5MRU5TX1NOQVBTPTE0Nl09XCJMRU5TX1NOQVBTXCIsZVtlLkxFTlNfT1BTPTE0N109XCJMRU5TX09QU1wiLGVbZS5XMV9BUFBfT1BFTlM9MTQ4XT1cIlcxX0FQUF9PUEVOU1wiLGVbZS5XMV9MRU5TX1NXSVBFUz0xNDldPVwiVzFfTEVOU19TV0lQRVNcIixlW2UuVzFfTEVOU19TTkFQUz0xNTBdPVwiVzFfTEVOU19TTkFQU1wiLGVbZS5XMV9MRU5TX09QUz0xNTFdPVwiVzFfTEVOU19PUFNcIixlW2UuVzJfQVBQX09QRU5TPTE1Ml09XCJXMl9BUFBfT1BFTlNcIixlW2UuVzJfTEVOU19TV0lQRVM9MTUzXT1cIlcyX0xFTlNfU1dJUEVTXCIsZVtlLlcyX0xFTlNfU05BUFM9MTU0XT1cIlcyX0xFTlNfU05BUFNcIixlW2UuVzJfTEVOU19PUFM9MTU1XT1cIlcyX0xFTlNfT1BTXCIsZVtlLlczNF9BUFBfT1BFTlM9MTU2XT1cIlczNF9BUFBfT1BFTlNcIixlW2UuVzM0X0xFTlNfU1dJUEVTPTE1N109XCJXMzRfTEVOU19TV0lQRVNcIixlW2UuVzM0X0xFTlNfU05BUFM9MTU4XT1cIlczNF9MRU5TX1NOQVBTXCIsZVtlLlczNF9MRU5TX09QUz0xNTldPVwiVzM0X0xFTlNfT1BTXCIsZVtlLkxFTlNfU1dJUEVTX1BSRURJQ1RJT049MTYwXT1cIkxFTlNfU1dJUEVTX1BSRURJQ1RJT05cIixlW2UuUkVHSVNUUkFUSU9OX0NPVU5UUlk9MTYxXT1cIlJFR0lTVFJBVElPTl9DT1VOVFJZXCIsZVtlLklQX0FTTj0xNjJdPVwiSVBfQVNOXCIsZVtlLklQX1JFR0lPTj0xNjNdPVwiSVBfUkVHSU9OXCIsZVtlLklQX0NJVFk9MTY0XT1cIklQX0NJVFlcIixlW2UuSEFTX1VTRVJfSUQ9MTY1XT1cIkhBU19VU0VSX0lEXCIsZVtlLkhBU19CSVRNT0pJPTE2Nl09XCJIQVNfQklUTU9KSVwiLGVbZS5OVU1fQVBQX09QRU5TX0xBU1RfOF9EQVlTPTE2N109XCJOVU1fQVBQX09QRU5TX0xBU1RfOF9EQVlTXCIsZVtlLk5VTV9GRUFUVVJFX1NUT1JZX1ZJRVdfREFZU19MNz0xNjhdPVwiTlVNX0ZFQVRVUkVfU1RPUllfVklFV19EQVlTX0w3XCIsZVtlLk5VTV9GRUFUVVJFX1NUT1JZX1NZTkNfREFZU19MNz0xNjldPVwiTlVNX0ZFQVRVUkVfU1RPUllfU1lOQ19EQVlTX0w3XCIsZVtlLkhFWEFHT05fTk5fU1VQUE9SVEVEX1ZFUlNJT049MTcwXT1cIkhFWEFHT05fTk5fU1VQUE9SVEVEX1ZFUlNJT05cIixlW2UuTkVUV09SS19RVUFMSVRZPTE3MV09XCJORVRXT1JLX1FVQUxJVFlcIixlW2UuREVWSUNFX01FTU9SWV9NQj0xNzJdPVwiREVWSUNFX01FTU9SWV9NQlwiLGVbZS5ERVZJQ0VfR0xfVkVSU0lPTj0xNzNdPVwiREVWSUNFX0dMX1ZFUlNJT05cIixlW2UuU05BUF9QUk9fU1RBVFVTPTE3NF09XCJTTkFQX1BST19TVEFUVVNcIixlW2UuREVWSUNFX1ZQOV9ERUNPRElOR19TVVBQT1JUPTE3NV09XCJERVZJQ0VfVlA5X0RFQ09ESU5HX1NVUFBPUlRcIixlW2UuQVZHX0ZSSUVORF9TVE9SWV9WSUVXX0NPVU5UX0w3PTE3Nl09XCJBVkdfRlJJRU5EX1NUT1JZX1ZJRVdfQ09VTlRfTDdcIixlW2UuR0FNRV9KT0lOX1RJTUU9MTc3XT1cIkdBTUVfSk9JTl9USU1FXCIsZVtlLkdBTUVfTEFTVF9BQ1RJVkVfVElNRT0xNzhdPVwiR0FNRV9MQVNUX0FDVElWRV9USU1FXCIsZVtlLkRBWVNfU0lOQ0VfRklSU1RfR0FNRV9BQ1RJVklUWT0xNzldPVwiREFZU19TSU5DRV9GSVJTVF9HQU1FX0FDVElWSVRZXCIsZVtlLkRBWVNfU0lOQ0VfTEFTVF9HQU1FX0FDVElWSVRZPTE4MF09XCJEQVlTX1NJTkNFX0xBU1RfR0FNRV9BQ1RJVklUWVwiLGVbZS5QRl9QQUdFX1NFU1NJT05TX1dJVEhfTE9OR19JTVA9MTgxXT1cIlBGX1BBR0VfU0VTU0lPTlNfV0lUSF9MT05HX0lNUFwiLGVbZS5XSVJFTEVTU19DQVJSSUVSPTE4Ml09XCJXSVJFTEVTU19DQVJSSUVSXCIsZVtlLk1JTklTX0pPSU5fVElNRT0xODNdPVwiTUlOSVNfSk9JTl9USU1FXCIsZVtlLk1JTklTX0xBU1RfQUNUSVZFX1RJTUU9MTg0XT1cIk1JTklTX0xBU1RfQUNUSVZFX1RJTUVcIixlW2UuREFZU19TSU5DRV9GSVJTVF9NSU5JU19BQ1RJVklUWT0xODVdPVwiREFZU19TSU5DRV9GSVJTVF9NSU5JU19BQ1RJVklUWVwiLGVbZS5EQVlTX1NJTkNFX0xBU1RfTUlOSVNfQUNUSVZJVFk9MTg2XT1cIkRBWVNfU0lOQ0VfTEFTVF9NSU5JU19BQ1RJVklUWVwiLGVbZS5ERVZJQ0VfQVYxX0RFQ09ESU5HX1NVUFBPUlQ9MTg3XT1cIkRFVklDRV9BVjFfREVDT0RJTkdfU1VQUE9SVFwiLGVbZS5BUFBfUEFDS0FHRV9JTlNUQUxMRVI9MTg4XT1cIkFQUF9QQUNLQUdFX0lOU1RBTExFUlwiLGVbZS5TVE9SWV9WSUVXU181VEhfVEFCX0VOR0FHRU1FTlRfTEVWRUw9MTg5XT1cIlNUT1JZX1ZJRVdTXzVUSF9UQUJfRU5HQUdFTUVOVF9MRVZFTFwiLGVbZS5SRVBPUlRFRF9BR0U9MTkwXT1cIlJFUE9SVEVEX0FHRVwiLGVbZS5BTkRST0lEX01PQklMRV9TRVJWSUNFU19QUk9WSURFUj0xOTFdPVwiQU5EUk9JRF9NT0JJTEVfU0VSVklDRVNfUFJPVklERVJcIixlW2UuSVNfQUNRVUlSRURfVVNFUj0xOTJdPVwiSVNfQUNRVUlSRURfVVNFUlwiLGVbZS5ZRFBJPTE5M109XCJZRFBJXCIsZVtlLkJJRElSRUNUSU9OQUxfRlJJRU5EX1NUQVRVU19WRUxMVU09MTk0XT1cIkJJRElSRUNUSU9OQUxfRlJJRU5EX1NUQVRVU19WRUxMVU1cIixlW2UuT1JJR0lOPTE5NV09XCJPUklHSU5cIixlW2UuTEVOU0NPUkVfVkVSU0lPTj0xOTZdPVwiTEVOU0NPUkVfVkVSU0lPTlwiLGVbZS5TTkFQS0lUX0FQUF9JRD0xOTddPVwiU05BUEtJVF9BUFBfSURcIixlW2UuR1BVPTE5OF09XCJHUFVcIixlW2UuQ0hJUFNFVF9OQU1FPTE5OV09XCJDSElQU0VUX05BTUVcIixlW2UuQ0hJUFNFVF9WRVJTSU9OPTIwMF09XCJDSElQU0VUX1ZFUlNJT05cIixlW2UuSEFTX1pFUk9fSURGQT0yMDFdPVwiSEFTX1pFUk9fSURGQVwiLGVbZS5MSU1JVF9BRF9UUkFDS0lORz0yMDJdPVwiTElNSVRfQURfVFJBQ0tJTkdcIixlW2UuQVRUX0FVVEhfU1RBVFVTPTIwM109XCJBVFRfQVVUSF9TVEFUVVNcIixlW2UuQ0FNRVJBMl9GUk9OVF9TU19HQUlOX09WRVJfVFBBPTIwNF09XCJDQU1FUkEyX0ZST05UX1NTX0dBSU5fT1ZFUl9UUEFcIixlW2UuQVRUQUNITUVOVF9UT09MX1YyPTIwNV09XCJBVFRBQ0hNRU5UX1RPT0xfVjJcIixlW2UuVVNFUl9QRVJTT05BX1YzPTIwNl09XCJVU0VSX1BFUlNPTkFfVjNcIixlW2UuU05BUFNfU0VORF9XSVRIX0hFVkM9MjA3XT1cIlNOQVBTX1NFTkRfV0lUSF9IRVZDXCIsZVtlLlNOQVBTX1NFTkRfV0lUSE9VVF9IRVZDPTIwOF09XCJTTkFQU19TRU5EX1dJVEhPVVRfSEVWQ1wiLGVbZS5DQU1FUkEyX05BVElWRV9DUkFTSF9PVkVSX0NBTUVSQTE9MjA5XT1cIkNBTUVSQTJfTkFUSVZFX0NSQVNIX09WRVJfQ0FNRVJBMVwiLGVbZS5DQU1FUkEyX0cyU19MQVRFTkNZX09WRVJfQ0FNRVJBMT0yMTBdPVwiQ0FNRVJBMl9HMlNfTEFURU5DWV9PVkVSX0NBTUVSQTFcIixlW2UuSVNfSU5URVJOQUw9MjExXT1cIklTX0lOVEVSTkFMXCIsZVtlLklTX1dFQj0yMTJdPVwiSVNfV0VCXCIsZVtlLkFQUF9PUEVOX1RPX01BUD0yMTNdPVwiQVBQX09QRU5fVE9fTUFQXCIsZVtlLkFQUF9PUEVOX1RPX0ZSSUVORFNGRUVEPTIxNF09XCJBUFBfT1BFTl9UT19GUklFTkRTRkVFRFwiLGVbZS5BUFBfT1BFTl9UT19MRU5TRVM9MjE1XT1cIkFQUF9PUEVOX1RPX0xFTlNFU1wiLGVbZS5BUFBfT1BFTl9UT19NRU1PUklFUz0yMTZdPVwiQVBQX09QRU5fVE9fTUVNT1JJRVNcIixlW2UuQVBQX09QRU5fVE9fQ09NTVVOSVRZPTIxN109XCJBUFBfT1BFTl9UT19DT01NVU5JVFlcIixlW2UuQVBQX09QRU5fVE9fU1BPVExJR0hUPTIxOF09XCJBUFBfT1BFTl9UT19TUE9UTElHSFRcIixlW2UuSVNfSU1QQUNURURfQllfUElOQ184OTM9MjE5XT1cIklTX0lNUEFDVEVEX0JZX1BJTkNfODkzXCIsZVtlLkRBWVNfQkVGT1JFX0JJUlRIREFZPTIyMF09XCJEQVlTX0JFRk9SRV9CSVJUSERBWVwiLGVbZS5IQVNfQklQQT0yMjFdPVwiSEFTX0JJUEFcIixlW2UuU1BPVExJR0hUX1NUT1JZX0VOR0FHRU1FTlRfU1RBVFVTPTIyMl09XCJTUE9UTElHSFRfU1RPUllfRU5HQUdFTUVOVF9TVEFUVVNcIixlW2UuSU5DTFVTSU9OX1BBTkVMX01FTUJFUj0yMjNdPVwiSU5DTFVTSU9OX1BBTkVMX01FTUJFUlwiLGVbZS5IRVZDX0hXX0RFQ09ERVI9MjI0XT1cIkhFVkNfSFdfREVDT0RFUlwiLGVbZS5IRVZDX1NXX0RFQ09ERVI9MjI1XT1cIkhFVkNfU1dfREVDT0RFUlwiLGVbZS5IQVNIX01VUk1VUjNfMTI4X01PRF8xMDA9MjI2XT1cIkhBU0hfTVVSTVVSM18xMjhfTU9EXzEwMFwiLGVbZS5IQVNfQUNUSVZFX1NOQVBDSEFUX1BMVVM9MjI3XT1cIkhBU19BQ1RJVkVfU05BUENIQVRfUExVU1wiLGVbZS5TTkFQX0tJVF9PQVVUSF9JRD0yMjhdPVwiU05BUF9LSVRfT0FVVEhfSURcIixlW2UuT1JHQU5JWkFUSU9OX1RZUEU9MjI5XT1cIk9SR0FOSVpBVElPTl9UWVBFXCIsZVtlLkNIVU5LX1VQTE9BRF9TVVBQT1JUX1JFUVVJUkVEPTIzMF09XCJDSFVOS19VUExPQURfU1VQUE9SVF9SRVFVSVJFRFwiLGVbZS5DTE9VREZST05UX1BPUD0yMzFdPVwiQ0xPVURGUk9OVF9QT1BcIixlW2UuQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0ZJUlNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PVz0yMzJdPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0ZJUlNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PV1wiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfQ0xJQ0tfQ09VTlQ9MjMzXT1cIkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9DTElDS19DT1VOVFwiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfSU5URVJBQ1RJT05fQ09VTlQ9MjM0XT1cIkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9JTlRFUkFDVElPTl9DT1VOVFwiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfTEFTVF9JTlRFUkFDVElPTl9USU1FX1NFQ1NfVE9fTk9XPTIzNV09XCJCSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfTEFTVF9JTlRFUkFDVElPTl9USU1FX1NFQ1NfVE9fTk9XXCIsZVtlLkZTVF9MT0NLX1NDUkVFTl9XSURHRVRfQklMTEJPQVJEX0xBVU5DSEVEX0ZST01fUFVTSD0yMzZdPVwiRlNUX0xPQ0tfU0NSRUVOX1dJREdFVF9CSUxMQk9BUkRfTEFVTkNIRURfRlJPTV9QVVNIXCIsZVtlLldFQl9TQ1JFRU5fV0lEVEg9MjM3XT1cIldFQl9TQ1JFRU5fV0lEVEhcIixlW2UuV0VCX1NDUkVFTl9IRUlHSFQ9MjM4XT1cIldFQl9TQ1JFRU5fSEVJR0hUXCIsZVtlLlNVUF9JT1NfTE9DS19TQ1JFRU5fV0lER0VUX0VOQUJMRUQ9MjM5XT1cIlNVUF9JT1NfTE9DS19TQ1JFRU5fV0lER0VUX0VOQUJMRURcIixlW2UuU05BUF9QUklWQUNZPTI0MF09XCJTTkFQX1BSSVZBQ1lcIixlW2UuQURTX0lOVEVSRkFDRVNfSVNfTkVXX09SR0FOSVpBVElPTj0yNDFdPVwiQURTX0lOVEVSRkFDRVNfSVNfTkVXX09SR0FOSVpBVElPTlwiLGVbZS5TRVJWRVJfT05MWT0yNDJdPVwiU0VSVkVSX09OTFlcIixlW2UuR0hFX09SR0FOSVpBVElPTj0yNDNdPVwiR0hFX09SR0FOSVpBVElPTlwiLGVbZS5HSEVfUkVQT1NJVE9SWT0yNDRdPVwiR0hFX1JFUE9TSVRPUllcIixlW2UuR0hFX1VTRVJfRU1BSUw9MjQ1XT1cIkdIRV9VU0VSX0VNQUlMXCIsZVtlLkJVSUxEX0RFRklOSVRJT05fSUQ9MjQ2XT1cIkJVSUxEX0RFRklOSVRJT05fSURcIixlW2UuQlVJTERfREVGSU5JVElPTl9OQU1FPTI0N109XCJCVUlMRF9ERUZJTklUSU9OX05BTUVcIixlW2UuTENBX1BSSU5DSVBBTD0yNDhdPVwiTENBX1BSSU5DSVBBTFwiLGVbZS5NRURJQV9QRVJGT1JNQU5DRV9DTEFTUz0yNDldPVwiTUVESUFfUEVSRk9STUFOQ0VfQ0xBU1NcIixlW2UuQ09NTVVOSVRZX0NPVU5UPTI1MF09XCJDT01NVU5JVFlfQ09VTlRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSgkfHwodC5DbGllbnRUYXJnZXRpbmdFeHByZXNzaW9uUHJvcGVydHk9JD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1NJR05BTF9UT19IQVNIPTBdPVwiVU5LTk9XTl9TSUdOQUxfVE9fSEFTSFwiLGVbZS5IQVNIX1NFRURfQU5EX1VTRVJfSUQ9MV09XCJIQVNIX1NFRURfQU5EX1VTRVJfSURcIixlW2UuSEFTSF9VU0VSX0lEX0FORF9OQU1FU1BBQ0U9Ml09XCJIQVNIX1VTRVJfSURfQU5EX05BTUVTUEFDRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KGVlfHwoZWU9e30pKTt2YXIgZ2U9e2NvbmZpZ0lkOlwiXCIsdHRsU2Vjb25kczowLHByaW9yaXR5OjAsbmFtZXNwYWNlOjAsc3R1ZHlOYW1lOlwiXCIsZXhwZXJpbWVudElkOjAsZGVsZXRlOiExLHNlcnZlUGxhdGZvcm1zOjAsc2VxdWVuY2VJZDowLHJ1aWRUeXBlOjAsc2VnbWVudE9yZGluYWw6MCxnZW5lcmF0ZWRGcm9tQWJBbGxvd2xpc3RzOiExfSxtZT1mdW5jdGlvbihlLHQpe3ZhciBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT1sKHt9LGdlKTtmb3IoaS5zZXJ2ZVBsYXRmb3Jtcz1bXSxpLmNvbmZpZ1J1bGVVdWlkQnl0ZXM9bmV3IFVpbnQ4QXJyYXk7bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS5jb25maWdJZD1uLnN0cmluZygpO2JyZWFrO2Nhc2UgMjppLnZhbHVlPWRlKG4sbi51aW50MzIoKSk7YnJlYWs7Y2FzZSAzOmkudGFyZ2V0aW5nRXhwcmVzc2lvbj1fZS5kZWNvZGUobixuLnVpbnQzMigpKTticmVhaztjYXNlIDQ6aS50dGxTZWNvbmRzPXllKG4uaW50NjQoKSk7YnJlYWs7Y2FzZSA1OmkuY29uZmlnUnVsZVV1aWRCeXRlcz1uLmJ5dGVzKCk7YnJlYWs7Y2FzZSA2OmkucHJpb3JpdHk9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNzppLm5hbWVzcGFjZT1uLmludDMyKCk7YnJlYWs7Y2FzZSA4Omkuc3R1ZHlOYW1lPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA5OmkuZXhwZXJpbWVudElkPW4uaW50MzIoKTticmVhaztjYXNlIDEwOmkuZGVsZXRlPW4uYm9vbCgpO2JyZWFrO2Nhc2UgMTE6aWYoMj09PSg3JmEpKWZvcih2YXIgcz1uLnVpbnQzMigpK24ucG9zO24ucG9zPHM7KWkuc2VydmVQbGF0Zm9ybXMucHVzaChuLmludDMyKCkpO2Vsc2UgaS5zZXJ2ZVBsYXRmb3Jtcy5wdXNoKG4uaW50MzIoKSk7YnJlYWs7Y2FzZSAxMjppLnNlcXVlbmNlSWQ9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMTM6aS5ydWlkVHlwZT1uLmludDMyKCk7YnJlYWs7Y2FzZSAxNDppLnNlZ21lbnRPcmRpbmFsPW4uaW50MzIoKTticmVhaztjYXNlIDE1OmkuZ2VuZXJhdGVkRnJvbUFiQWxsb3dsaXN0cz1uLmJvb2woKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LHZlPXtvcGVyYXRvcjowLHByb3BlcnR5OjAscHJlZGljYXRlT3BlcmF0b3I6MH0sX2U9e2VuY29kZTpmdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLDAhPT1lLm9wZXJhdG9yJiZ0LnVpbnQzMig4KS5pbnQzMihlLm9wZXJhdG9yKTtmb3IodmFyIG49MCxyPWUuY2hpbGRyZW47bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07X2UuZW5jb2RlKGksdC51aW50MzIoMTgpLmZvcmsoKSkubGRlbGltKCl9cmV0dXJuIDAhPT1lLnByb3BlcnR5JiZ0LnVpbnQzMigyNCkuaW50MzIoZS5wcm9wZXJ0eSksMCE9PWUucHJlZGljYXRlT3BlcmF0b3ImJnQudWludDMyKDMyKS5pbnQzMihlLnByZWRpY2F0ZU9wZXJhdG9yKSx2b2lkIDAhPT1lLnZhbHVlJiZsZShlLnZhbHVlLHQudWludDMyKDQyKS5mb3JrKCkpLmxkZWxpbSgpLHZvaWQgMCE9PWUucHJvcGVydHlNZXRhZGF0YSYmYmUuZW5jb2RlKGUucHJvcGVydHlNZXRhZGF0YSx0LnVpbnQzMig1MCkuZm9yaygpKS5sZGVsaW0oKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9bCh7fSx2ZSk7Zm9yKGkuY2hpbGRyZW49W107bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS5vcGVyYXRvcj1uLmludDMyKCk7YnJlYWs7Y2FzZSAyOmkuY2hpbGRyZW4ucHVzaChfZS5kZWNvZGUobixuLnVpbnQzMigpKSk7YnJlYWs7Y2FzZSAzOmkucHJvcGVydHk9bi5pbnQzMigpO2JyZWFrO2Nhc2UgNDppLnByZWRpY2F0ZU9wZXJhdG9yPW4uaW50MzIoKTticmVhaztjYXNlIDU6aS52YWx1ZT1kZShuLG4udWludDMyKCkpO2JyZWFrO2Nhc2UgNjppLnByb3BlcnR5TWV0YWRhdGE9YmUuZGVjb2RlKG4sbi51aW50MzIoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmYSl9fXJldHVybiBpfSxmcm9tUGFydGlhbDpmdW5jdGlvbihlKXt2YXIgdD1sKHt9LHZlKTtpZih0LmNoaWxkcmVuPVtdLHZvaWQgMCE9PWUub3BlcmF0b3ImJm51bGwhPT1lLm9wZXJhdG9yP3Qub3BlcmF0b3I9ZS5vcGVyYXRvcjp0Lm9wZXJhdG9yPTAsdm9pZCAwIT09ZS5jaGlsZHJlbiYmbnVsbCE9PWUuY2hpbGRyZW4pZm9yKHZhciBuPTAscj1lLmNoaWxkcmVuO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO3QuY2hpbGRyZW4ucHVzaChfZS5mcm9tUGFydGlhbChpKSl9cmV0dXJuIHZvaWQgMCE9PWUucHJvcGVydHkmJm51bGwhPT1lLnByb3BlcnR5P3QucHJvcGVydHk9ZS5wcm9wZXJ0eTp0LnByb3BlcnR5PTAsdm9pZCAwIT09ZS5wcmVkaWNhdGVPcGVyYXRvciYmbnVsbCE9PWUucHJlZGljYXRlT3BlcmF0b3I/dC5wcmVkaWNhdGVPcGVyYXRvcj1lLnByZWRpY2F0ZU9wZXJhdG9yOnQucHJlZGljYXRlT3BlcmF0b3I9MCx2b2lkIDAhPT1lLnZhbHVlJiZudWxsIT09ZS52YWx1ZT90LnZhbHVlPXBlKGUudmFsdWUpOnQudmFsdWU9dm9pZCAwLHZvaWQgMCE9PWUucHJvcGVydHlNZXRhZGF0YSYmbnVsbCE9PWUucHJvcGVydHlNZXRhZGF0YT90LnByb3BlcnR5TWV0YWRhdGE9YmUuZnJvbVBhcnRpYWwoZS5wcm9wZXJ0eU1ldGFkYXRhKTp0LnByb3BlcnR5TWV0YWRhdGE9dm9pZCAwLHR9fSxFZT17aXRlbUlkOjAsc2lnbmFsVG9IYXNoOjAsYWJOYW1lc3BhY2VGb3JIYXNoaW5nOlwiXCIsYWJTZWVkRm9ySGFzaGluZzpcIlwifSxiZT17ZW5jb2RlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLDAhPT1lLml0ZW1JZCYmdC51aW50MzIoOCkuaW50MzIoZS5pdGVtSWQpLDAhPT1lLnNpZ25hbFRvSGFzaCYmdC51aW50MzIoMTYpLmludDMyKGUuc2lnbmFsVG9IYXNoKSxcIlwiIT09ZS5hYk5hbWVzcGFjZUZvckhhc2hpbmcmJnQudWludDMyKDI2KS5zdHJpbmcoZS5hYk5hbWVzcGFjZUZvckhhc2hpbmcpLFwiXCIhPT1lLmFiU2VlZEZvckhhc2hpbmcmJnQudWludDMyKDM0KS5zdHJpbmcoZS5hYlNlZWRGb3JIYXNoaW5nKSx0fSxkZWNvZGU6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKSxyPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdCxpPWwoe30sRWUpO24ucG9zPHI7KXt2YXIgYT1uLnVpbnQzMigpO3N3aXRjaChhPj4+Myl7Y2FzZSAxOmkuaXRlbUlkPW4uaW50MzIoKTticmVhaztjYXNlIDI6aS5zaWduYWxUb0hhc2g9bi5pbnQzMigpO2JyZWFrO2Nhc2UgMzppLmFiTmFtZXNwYWNlRm9ySGFzaGluZz1uLnN0cmluZygpO2JyZWFrO2Nhc2UgNDppLmFiU2VlZEZvckhhc2hpbmc9bi5zdHJpbmcoKTticmVhaztkZWZhdWx0Om4uc2tpcFR5cGUoNyZhKX19cmV0dXJuIGl9LGZyb21QYXJ0aWFsOmZ1bmN0aW9uKGUpe3ZhciB0PWwoe30sRWUpO3JldHVybiB2b2lkIDAhPT1lLml0ZW1JZCYmbnVsbCE9PWUuaXRlbUlkP3QuaXRlbUlkPWUuaXRlbUlkOnQuaXRlbUlkPTAsdm9pZCAwIT09ZS5zaWduYWxUb0hhc2gmJm51bGwhPT1lLnNpZ25hbFRvSGFzaD90LnNpZ25hbFRvSGFzaD1lLnNpZ25hbFRvSGFzaDp0LnNpZ25hbFRvSGFzaD0wLHZvaWQgMCE9PWUuYWJOYW1lc3BhY2VGb3JIYXNoaW5nJiZudWxsIT09ZS5hYk5hbWVzcGFjZUZvckhhc2hpbmc/dC5hYk5hbWVzcGFjZUZvckhhc2hpbmc9ZS5hYk5hbWVzcGFjZUZvckhhc2hpbmc6dC5hYk5hbWVzcGFjZUZvckhhc2hpbmc9XCJcIix2b2lkIDAhPT1lLmFiU2VlZEZvckhhc2hpbmcmJm51bGwhPT1lLmFiU2VlZEZvckhhc2hpbmc/dC5hYlNlZWRGb3JIYXNoaW5nPWUuYWJTZWVkRm9ySGFzaGluZzp0LmFiU2VlZEZvckhhc2hpbmc9XCJcIix0fX0sU2U9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTZT9TZTpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGY/c2VsZjp3aW5kb3c7ZnVuY3Rpb24geWUoZSl7aWYoZS5ndChOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpdGhyb3cgbmV3IFNlLkVycm9yKFwiVmFsdWUgaXMgbGFyZ2VyIHRoYW4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcIik7cmV0dXJuIGUudG9OdW1iZXIoKX1vLmRlZmF1bHQudXRpbC5Mb25nIT09aS5kZWZhdWx0JiYoby5kZWZhdWx0LnV0aWwuTG9uZz1pLmRlZmF1bHQsby5kZWZhdWx0LmNvbmZpZ3VyZSgpKTt2YXIgVGUsSWU9e2FiUmVzdWx0Q2hlY2tzdW1JbnB1dDpcIlwifSxPZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lIGluc3RhbmNlb2Ygby5kZWZhdWx0LlJlYWRlcj9lOm5ldyBvLmRlZmF1bHQuUmVhZGVyKGUpLHI9dm9pZCAwPT09dD9uLmxlbjpuLnBvcyt0LGk9bCh7fSxJZSk7bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7aWYoYT4+PjM9PT0xKWkuYWJSZXN1bHRDaGVja3N1bUlucHV0PW4uc3RyaW5nKCk7ZWxzZSBuLnNraXBUeXBlKDcmYSl9cmV0dXJuIGl9LEFlPXtjb25maWdSZXN1bHRzRXRhZzpcIlwiLGZ1bGxSZXN1bHRzOiExLGFiUmVzdWx0Q2hlY2tzdW06MCxpc28zMTY2QWxwaGEyQ291bnRyeUNvZGVGcm9tUmVxdWVzdElwOlwiXCJ9LENlPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZSBpbnN0YW5jZW9mIG8uZGVmYXVsdC5SZWFkZXI/ZTpuZXcgby5kZWZhdWx0LlJlYWRlcihlKSxyPXZvaWQgMD09PXQ/bi5sZW46bi5wb3MrdCxpPWwoe30sQWUpO2ZvcihpLmNvbmZpZ1Jlc3VsdHM9W107bi5wb3M8cjspe3ZhciBhPW4udWludDMyKCk7c3dpdGNoKGE+Pj4zKXtjYXNlIDE6aS5jb25maWdSZXN1bHRzLnB1c2gobWUobixuLnVpbnQzMigpKSk7YnJlYWs7Y2FzZSAyOmkuY29uZmlnUmVzdWx0c0V0YWc9bi5zdHJpbmcoKTticmVhaztjYXNlIDM6aS5iZW5jaG1hcmtSZXF1ZXN0PVMobixuLnVpbnQzMigpKTticmVhaztjYXNlIDQ6aS5mdWxsUmVzdWx0cz1uLmJvb2woKTticmVhaztjYXNlIDU6aS5hYlJlc3VsdENoZWNrc3VtPW4uaW50MzIoKTticmVhaztjYXNlIDY6aS5pc28zMTY2QWxwaGEyQ291bnRyeUNvZGVGcm9tUmVxdWVzdElwPW4uc3RyaW5nKCk7YnJlYWs7Y2FzZSA3OmkuZGVidWdEYXRhPU9lKG4sbi51aW50MzIoKSk7YnJlYWs7ZGVmYXVsdDpuLnNraXBUeXBlKDcmYSl9fXJldHVybiBpfTtmdW5jdGlvbiBOZShlKXtyZXR1cm4gZS5vcGVyYXRvcj09PVguVU5LTk9XTl9PUEVSQVRPUiYmZS5wcmVkaWNhdGVPcGVyYXRvcj09PVEuVU5LTk9XTl9QUkVESUNBVEVfT1BFUkFUT1ImJmUucHJvcGVydHk9PT0kLlVOS05PV05fUFJPUEVSVFl9by5kZWZhdWx0LnV0aWwuTG9uZyE9PWkuZGVmYXVsdCYmKG8uZGVmYXVsdC51dGlsLkxvbmc9aS5kZWZhdWx0LG8uZGVmYXVsdC5jb25maWd1cmUoKSksdC5OYW1lc3BhY2U9VGUsZnVuY3Rpb24oZSl7ZVtlLkRFRkFVTFQ9MF09XCJERUZBVUxUXCIsZVtlLkNBTUVSQT0xXT1cIkNBTUVSQVwiLGVbZS5DT0Y9Ml09XCJDT0ZcIixlW2UuTURQPTNdPVwiTURQXCIsZVtlLk1PTkVUSVpBVElPTj00XT1cIk1PTkVUSVpBVElPTlwiLGVbZS5MRUdBQ1lfQUI9NV09XCJMRUdBQ1lfQUJcIixlW2UuQUJfU1RVRFlfVkVSU0lPTj02XT1cIkFCX1NUVURZX1ZFUlNJT05cIixlW2UuQ0FNRVJBX1BMQVRGT1JNPTddPVwiQ0FNRVJBX1BMQVRGT1JNXCIsZVtlLlBMQVRGT1JNX1VJPThdPVwiUExBVEZPUk1fVUlcIixlW2UuUExBVEZPUk1fQ09SRT05XT1cIlBMQVRGT1JNX0NPUkVcIixlW2UuTU9ORVRJWkFUSU9OX1VJPTEwXT1cIk1PTkVUSVpBVElPTl9VSVwiLGVbZS5NT05FVElaQVRJT05fUkFOS0lORz0xMV09XCJNT05FVElaQVRJT05fUkFOS0lOR1wiLGVbZS5VU0VSU19BTkRfRlJJRU5EU19VST0xMl09XCJVU0VSU19BTkRfRlJJRU5EU19VSVwiLGVbZS5VU0VSU19BTkRfRlJJRU5EU19DT1JFPTEzXT1cIlVTRVJTX0FORF9GUklFTkRTX0NPUkVcIixlW2UuVVNFUlNfQU5EX0ZSSUVORFNfUkFOS0lORz0xNF09XCJVU0VSU19BTkRfRlJJRU5EU19SQU5LSU5HXCIsZVtlLk1FU1NBR0lOR19VST0xNV09XCJNRVNTQUdJTkdfVUlcIixlW2UuTUVTU0FHSU5HX0NPUkU9MTZdPVwiTUVTU0FHSU5HX0NPUkVcIixlW2UuU1RPUklFU19VST0xN109XCJTVE9SSUVTX1VJXCIsZVtlLlNUT1JJRVNfQ09SRT0xOF09XCJTVE9SSUVTX0NPUkVcIixlW2UuU1RPUklFU19SQU5LSU5HPTE5XT1cIlNUT1JJRVNfUkFOS0lOR1wiLGVbZS5ESVNDT1ZFUl9VST0yMF09XCJESVNDT1ZFUl9VSVwiLGVbZS5ESVNDT1ZFUl9DT1JFPTIxXT1cIkRJU0NPVkVSX0NPUkVcIixlW2UuRElTQ09WRVJfUkFOS0lORz0yMl09XCJESVNDT1ZFUl9SQU5LSU5HXCIsZVtlLlBSRU1JVU1fQ09OVEVOVF9VST0yM109XCJQUkVNSVVNX0NPTlRFTlRfVUlcIixlW2UuUFJFTUlVTV9DT05URU5UX0NPUkU9MjRdPVwiUFJFTUlVTV9DT05URU5UX0NPUkVcIixlW2UuUFJFTUlVTV9DT05URU5UX1JBTktJTkc9MjVdPVwiUFJFTUlVTV9DT05URU5UX1JBTktJTkdcIixlW2UuQ09NTVVOSVRZX1VJPTI2XT1cIkNPTU1VTklUWV9VSVwiLGVbZS5DT01NVU5JVFlfQ09SRT0yN109XCJDT01NVU5JVFlfQ09SRVwiLGVbZS5DT01NVU5JVFlfUkFOS0lORz0yOF09XCJDT01NVU5JVFlfUkFOS0lOR1wiLGVbZS5DQU1FUkFfVUk9MjldPVwiQ0FNRVJBX1VJXCIsZVtlLkNSRUFUSVZFX1RPT0xTX1VJPTMwXT1cIkNSRUFUSVZFX1RPT0xTX1VJXCIsZVtlLkNSRUFUSVZFX1RPT0xTX0NPUkU9MzFdPVwiQ1JFQVRJVkVfVE9PTFNfQ09SRVwiLGVbZS5DQU1FUkFfUExBVEZPUk1fVUk9MzJdPVwiQ0FNRVJBX1BMQVRGT1JNX1VJXCIsZVtlLkNBTUVSQV9QTEFURk9STV9SQU5LSU5HPTMzXT1cIkNBTUVSQV9QTEFURk9STV9SQU5LSU5HXCIsZVtlLlBFUkNFUFRJT05fVUk9MzRdPVwiUEVSQ0VQVElPTl9VSVwiLGVbZS5QRVJDRVBUSU9OX0NPUkU9MzVdPVwiUEVSQ0VQVElPTl9DT1JFXCIsZVtlLlBFUkNFUFRJT05fUkFOS0lORz0zNl09XCJQRVJDRVBUSU9OX1JBTktJTkdcIixlW2UuTUVESUFfVUk9MzddPVwiTUVESUFfVUlcIixlW2UuTUVNT1JJRVNfVUk9MzhdPVwiTUVNT1JJRVNfVUlcIixlW2UuTUVNT1JJRVNfQ09SRT0zOV09XCJNRU1PUklFU19DT1JFXCIsZVtlLk1BUF9VST00MF09XCJNQVBfVUlcIixlW2UuTUFQX0NPUkU9NDFdPVwiTUFQX0NPUkVcIixlW2UuU0VBUkNIX1VJPTQyXT1cIlNFQVJDSF9VSVwiLGVbZS5TRUFSQ0hfQ09SRT00M109XCJTRUFSQ0hfQ09SRVwiLGVbZS5TRUFSQ0hfUkFOS0lORz00NF09XCJTRUFSQ0hfUkFOS0lOR1wiLGVbZS5DT0dOQUNfVUk9NDVdPVwiQ09HTkFDX1VJXCIsZVtlLkNPR05BQ19DT1JFPTQ2XT1cIkNPR05BQ19DT1JFXCIsZVtlLkJJVE1PSklfVUk9NDddPVwiQklUTU9KSV9VSVwiLGVbZS5CSVRNT0pJX0NPUkU9NDhdPVwiQklUTU9KSV9DT1JFXCIsZVtlLlNQRUNUQUNMRVNfVUk9NDldPVwiU1BFQ1RBQ0xFU19VSVwiLGVbZS5TUEVDVEFDTEVTX0NPUkU9NTBdPVwiU1BFQ1RBQ0xFU19DT1JFXCIsZVtlLlNOQVBfS0lUX1VJPTUxXT1cIlNOQVBfS0lUX1VJXCIsZVtlLlNOQVBfS0lUX0NPUkU9NTJdPVwiU05BUF9LSVRfQ09SRVwiLGVbZS5TTkFQX1BST19VST01M109XCJTTkFQX1BST19VSVwiLGVbZS5TTkFQX1BST19DT1JFPTU0XT1cIlNOQVBfUFJPX0NPUkVcIixlW2UuTkdTX1VJPTU1XT1cIk5HU19VSVwiLGVbZS5DQU1FT1NfVUk9NTZdPVwiQ0FNRU9TX1VJXCIsZVtlLkNBTUVPU19DT1JFPTU3XT1cIkNBTUVPU19DT1JFXCIsZVtlLkNBTUVPU19SQU5LSU5HPTU4XT1cIkNBTUVPU19SQU5LSU5HXCIsZVtlLkJMSVpaQVJEX0NMSUVOVD01OV09XCJCTElaWkFSRF9DTElFTlRcIixlW2UuQkxJWlpBUkRfQkFDS0VORD02MF09XCJCTElaWkFSRF9CQUNLRU5EXCIsZVtlLkFCX1NFR01FTlQ9NjFdPVwiQUJfU0VHTUVOVFwiLGVbZS5DT05GSUdfUk9MTE9VVD02Ml09XCJDT05GSUdfUk9MTE9VVFwiLGVbZS5DT01NRVJDRV9CQUNLRU5EPTYzXT1cIkNPTU1FUkNFX0JBQ0tFTkRcIixlW2UuTEVOU19DT1JFPTY0XT1cIkxFTlNfQ09SRVwiLGVbZS5DQU1FUkFfS0lUX0NPUkU9NjVdPVwiQ0FNRVJBX0tJVF9DT1JFXCIsZVtlLk1EUF9DT05URU5UX01BTkFHRVI9NjZdPVwiTURQX0NPTlRFTlRfTUFOQUdFUlwiLGVbZS5SRVFVRVNUX0RPTUFJTl9ST1VUSU5HPTY3XT1cIlJFUVVFU1RfRE9NQUlOX1JPVVRJTkdcIixlW2UuQ0ROX1JPVVRJTkc9NjhdPVwiQ0ROX1JPVVRJTkdcIixlW2UuR1JBUEhFTkVfU0FNUExJTkc9NjldPVwiR1JBUEhFTkVfU0FNUExJTkdcIixlW2UuV0VCX1NUT1JZX0NPUkU9NzBdPVwiV0VCX1NUT1JZX0NPUkVcIixlW2UuV0VCX1NUT1JZX1VJPTcxXT1cIldFQl9TVE9SWV9VSVwiLGVbZS5DTElFTlRfU1dJVENIQk9BUkQ9NzJdPVwiQ0xJRU5UX1NXSVRDSEJPQVJEXCIsZVtlLk1DUz03M109XCJNQ1NcIixlW2UuU0hBUklOR19VST03NF09XCJTSEFSSU5HX1VJXCIsZVtlLlNIQVJJTkdfQ09SRT03NV09XCJTSEFSSU5HX0NPUkVcIixlW2UuU0hBUklOR19SQU5LSU5HPTc2XT1cIlNIQVJJTkdfUkFOS0lOR1wiLGVbZS5NRFBfUExBWUJBQ0s9NzddPVwiTURQX1BMQVlCQUNLXCIsZVtlLkNBTUVSQV9CVVNJTkVTUz03OF09XCJDQU1FUkFfQlVTSU5FU1NcIixlW2UuQURETElWRT03OV09XCJBRERMSVZFXCIsZVtlLkFEX0tJVF9DT1JFPTgwXT1cIkFEX0tJVF9DT1JFXCIsZVtlLkFERExJVkVfVUk9ODFdPVwiQURETElWRV9VSVwiLGVbZS5BRERMSVZFX0NPUkU9ODJdPVwiQURETElWRV9DT1JFXCIsZVtlLkFERExJVkVfUkFOS0lORz04M109XCJBRERMSVZFX1JBTktJTkdcIixlW2UuU1RPUllfU1RVRElPX0xJVEVfVUk9ODRdPVwiU1RPUllfU1RVRElPX0xJVEVfVUlcIixlW2UuU1RPUllfU1RVRElPX0xJVEVfQ09SRT04NV09XCJTVE9SWV9TVFVESU9fTElURV9DT1JFXCIsZVtlLkNPTU1FUkNFX1VJPTg2XT1cIkNPTU1FUkNFX1VJXCIsZVtlLkNPTU1FUkNFX0NPUkU9ODddPVwiQ09NTUVSQ0VfQ09SRVwiLGVbZS5DT01NRVJDRV9SQU5LSU5HPTg4XT1cIkNPTU1FUkNFX1JBTktJTkdcIixlW2UuU1RPUklFU19VWD04OV09XCJTVE9SSUVTX1VYXCIsZVtlLkNPTlRFWFRfVUk9OTBdPVwiQ09OVEVYVF9VSVwiLGVbZS5DT05URVhUX0NPUkU9OTFdPVwiQ09OVEVYVF9DT1JFXCIsZVtlLkxFTlNfVEFSR0VUSU5HPTkyXT1cIkxFTlNfVEFSR0VUSU5HXCIsZVtlLlNQT1RMSUdIVF9SQU5LSU5HPTkzXT1cIlNQT1RMSUdIVF9SQU5LSU5HXCIsZVtlLlNQT1RMSUdIVF9DT1JFPTk0XT1cIlNQT1RMSUdIVF9DT1JFXCIsZVtlLlNQT1RMSUdIVF9VST05NV09XCJTUE9UTElHSFRfVUlcIixlW2UuQUNUSVZBVElPTl9DT1JFPTk2XT1cIkFDVElWQVRJT05fQ09SRVwiLGVbZS5GUklFTkRJTkc9OTddPVwiRlJJRU5ESU5HXCIsZVtlLlNBRkVUWT05OF09XCJTQUZFVFlcIixlW2UuTE9HSU49OTldPVwiTE9HSU5cIixlW2UuTVlMRU5TRVNfV0VCX0NPUkU9MTAwXT1cIk1ZTEVOU0VTX1dFQl9DT1JFXCIsZVtlLlNFQ1VSSVRZPTEwMV09XCJTRUNVUklUWVwiLGVbZS5BQl9DT05TT0xFPTEwMl09XCJBQl9DT05TT0xFXCIsZVtlLkFEX01PREVSQVRJT049MTAzXT1cIkFEX01PREVSQVRJT05cIixlW2UuQ09OVEVOVF9MSUZUX01FQVNVUkVNRU5UPTEwNF09XCJDT05URU5UX0xJRlRfTUVBU1VSRU1FTlRcIixlW2UuQ09OVEVYVF9CQUNLRU5EPTEwNV09XCJDT05URVhUX0JBQ0tFTkRcIixlW2UuR0FNRVNfRkVFRF9DT1JFPTEwNl09XCJHQU1FU19GRUVEX0NPUkVcIixlW2UuUkVDSVBJRU5UX0RFVklDRV9DQVBBQklMSVRJRVM9MTA3XT1cIlJFQ0lQSUVOVF9ERVZJQ0VfQ0FQQUJJTElUSUVTXCIsZVtlLkFEU19HQVRFV0FZX0NPUkU9MTA4XT1cIkFEU19HQVRFV0FZX0NPUkVcIixlW2UuQURTX0lOVEVSRkFDRVNfVUk9MTA5XT1cIkFEU19JTlRFUkZBQ0VTX1VJXCIsZVtlLkFEU19NQU5BR0VSX1VJPTExMF09XCJBRFNfTUFOQUdFUl9VSVwiLGVbZS5CVVNJTkVTU19NQU5BR0VSX1VJPTExMV09XCJCVVNJTkVTU19NQU5BR0VSX1VJXCIsZVtlLlBST0ZJTEVfTUFOQUdFUl9VST0xMTJdPVwiUFJPRklMRV9NQU5BR0VSX1VJXCIsZVtlLk5PVElGSUNBVElPTj0xMTNdPVwiTk9USUZJQ0FUSU9OXCIsZVtlLkJJTExCT0FSRD0xMTRdPVwiQklMTEJPQVJEXCIsZVtlLkxFTlNfREVMSVZFUllfQ09SRT0xMTVdPVwiTEVOU19ERUxJVkVSWV9DT1JFXCIsZVtlLlRJRVJfMF9MQVVOQ0g9MTE2XT1cIlRJRVJfMF9MQVVOQ0hcIixlW2UuRlJJRU5ESU5HX1JFRz0xMTddPVwiRlJJRU5ESU5HX1JFR1wiLGVbZS5DQU1FUkFfS0lUX1dFQl9DT1JFPTExOF09XCJDQU1FUkFfS0lUX1dFQl9DT1JFXCIsZVtlLk1EUF9PUEVSQV9DT1JFPTExOV09XCJNRFBfT1BFUkFfQ09SRVwiLGVbZS5TSEFSRURfV0VCX1VJPTEyMF09XCJTSEFSRURfV0VCX1VJXCIsZVtlLkNPREVMQUJTX1NBTkRCT1g9MTIxXT1cIkNPREVMQUJTX1NBTkRCT1hcIixlW2UuRlJJRU5ESU5HX1FBX1JBTktJTkc9MTIyXT1cIkZSSUVORElOR19RQV9SQU5LSU5HXCIsZVtlLkZSSUVORElOR19SRUdfUkFOS0lORz0xMjNdPVwiRlJJRU5ESU5HX1JFR19SQU5LSU5HXCIsZVtlLlNFQVJDSF9DU0w9MTI0XT1cIlNFQVJDSF9DU0xcIixlW2UuV0VCMz0xMjVdPVwiV0VCM1wiLGVbZS5QTFVTX0NPUkU9MTI2XT1cIlBMVVNfQ09SRVwiLGVbZS5XRUJfU1RPUllURUxMRVJfVUk9MTI3XT1cIldFQl9TVE9SWVRFTExFUl9VSVwiLGVbZS5QTEFURk9STV9TRVJWSUNFUz0xMjhdPVwiUExBVEZPUk1fU0VSVklDRVNcIixlW2UuV0VCX0FDQ09VTlRTPTEyOV09XCJXRUJfQUNDT1VOVFNcIixlW2UuU0hPUEtJVF9XRUI9MTMwXT1cIlNIT1BLSVRfV0VCXCIsZVtlLlNOQVBHUkFQSF9NT0RTRVJWRVI9MTMxXT1cIlNOQVBHUkFQSF9NT0RTRVJWRVJcIixlW2UuTVVTSUM9MTMyXT1cIk1VU0lDXCIsZVtlLlNPVU5EUz0xMzNdPVwiU09VTkRTXCIsZVtlLk1BQ0hBTVA9MTM0XT1cIk1BQ0hBTVBcIixlW2UuUElFX0FVVE9CT1Q9MTM1XT1cIlBJRV9BVVRPQk9UXCIsZVtlLk5PVElGSUNBVElPTl9SQU5LSU5HPTEzNl09XCJOT1RJRklDQVRJT05fUkFOS0lOR1wiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KFRlfHwodC5OYW1lc3BhY2U9VGU9e30pKSxvLmRlZmF1bHQudXRpbC5Mb25nIT09aS5kZWZhdWx0JiYoby5kZWZhdWx0LnV0aWwuTG9uZz1pLmRlZmF1bHQsby5kZWZhdWx0LmNvbmZpZ3VyZSgpKTt2YXIga2U9bmV3IE1hcDtmdW5jdGlvbiBQZShlLHQpe2tlLnNldChlLHQpfWZ1bmN0aW9uIFJlKGUsdCl7dmFyIG49ZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbmZpZ0lkPT09dH0pKSxyPW4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hZS50YXJnZXRpbmdFeHByZXNzaW9ufHxlLnRhcmdldGluZ0V4cHJlc3Npb24mJk5lKGUudGFyZ2V0aW5nRXhwcmVzc2lvbil9KSksaT1kKGQoW10sbi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRhcmdldGluZ0V4cHJlc3Npb24mJiFOZShlLnRhcmdldGluZ0V4cHJlc3Npb24pfSkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIHdlKGUudGFyZ2V0aW5nRXhwcmVzc2lvbil9KSkpLHIpLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQucHJpb3JpdHktZS5wcmlvcml0eX0pKTtyZXR1cm4gaS5sZW5ndGg/aVswXTp2b2lkIDB9ZnVuY3Rpb24gd2UoZSl7cmV0dXJuIGUuY2hpbGRyZW4ubGVuZ3RoPjA/ZS5vcGVyYXRvcj09PVguQU5EP2UuY2hpbGRyZW4uZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiB3ZShlKX0pKTplLm9wZXJhdG9yPT09WC5PUiYmZS5jaGlsZHJlbi5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gd2UoZSl9KSk6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhO2lmKCFlLnByb3BlcnR5fHwhZS52YWx1ZXx8IWUucHJlZGljYXRlT3BlcmF0b3J8fGUuY2hpbGRyZW4ubGVuZ3RoPjApcmV0dXJuITE7dmFyIHM9a2UuZ2V0KGUucHJvcGVydHkpO2lmKCFzKXJldHVybiExO3ZhciBjPXMoKSx1PW51bGwhPT0oYT1udWxsIT09KG89bnVsbCE9PShpPW51bGwhPT0ocj1udWxsIT09KG49bnVsbCE9PSh0PWUudmFsdWUuYm9vbFZhbHVlKSYmdm9pZCAwIT09dD90OmUudmFsdWUuZG91YmxlVmFsdWUpJiZ2b2lkIDAhPT1uP246ZS52YWx1ZS5mbG9hdFZhbHVlKSYmdm9pZCAwIT09cj9yOmUudmFsdWUuaW50UGFpclZhbHVlKSYmdm9pZCAwIT09aT9pOmUudmFsdWUuaW50VmFsdWUpJiZ2b2lkIDAhPT1vP286ZS52YWx1ZS5sb25nVmFsdWUpJiZ2b2lkIDAhPT1hP2E6ZS52YWx1ZS5zdHJpbmdWYWx1ZTtpZihlLnByZWRpY2F0ZU9wZXJhdG9yPT09US5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE98fGUucHJlZGljYXRlT3BlcmF0b3I9PT1RLkxFU1NfVEhBTl9PUl9FUVVBTF9UTylyZXR1cm5cIm51bWJlclwiPT09dHlwZW9mIHUmJihcIm51bWJlclwiPT09dHlwZW9mIGMmJihlLnByZWRpY2F0ZU9wZXJhdG9yPT09US5MRVNTX1RIQU5fT1JfRVFVQUxfVE8/Yzw9dTpjPj11KSk7aWYoZS5wcmVkaWNhdGVPcGVyYXRvcj09PVEuTk9UX0VRVUFMKXJldHVybiBjIT09dTtpZihlLnByZWRpY2F0ZU9wZXJhdG9yPT09US5FUVVBTClyZXR1cm4gYz09PXU7cmV0dXJuITF9KGUpfXZhciBMZT17fTshZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dfShlLGZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Z1bmN0aW9uIG4ocil7aWYodFtyXSlyZXR1cm4gdFtyXS5leHBvcnRzO3ZhciBpPXRbcl09e2k6cixsOiExLGV4cG9ydHM6e319O3JldHVybiBlW3JdLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLG4pLGkubD0hMCxpLmV4cG9ydHN9cmV0dXJuIG4ubT1lLG4uYz10LG4uaT1mdW5jdGlvbihlKXtyZXR1cm4gZX0sbi5kPWZ1bmN0aW9uKGUsdCxyKXtuLm8oZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsZ2V0OnJ9KX0sbi5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBuLmQodCxcImFcIix0KSx0fSxuLm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9LG4ucD1cIlwiLG4obi5zPTEpfShbZnVuY3Rpb24oZSx0LG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPW4oMyk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dm9pZCAwPT09ZSYmKGU9e30pLHZvaWQgMD09PXQmJih0PXtzcGxpdFZhbHVlczohMX0pO3ZhciBuLGk9dGhpcztpZih0aGlzLmhlYWRlcnNNYXA9e30sZSlpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIEhlYWRlcnMmJmUgaW5zdGFuY2VvZiBIZWFkZXJzKXIuZ2V0SGVhZGVyS2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXtyLmdldEhlYWRlclZhbHVlcyhlLG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3Quc3BsaXRWYWx1ZXM/aS5hcHBlbmQobixyLnNwbGl0SGVhZGVyVmFsdWUoZSkpOmkuYXBwZW5kKG4sZSl9KSl9KSk7ZWxzZSBpZihcIm9iamVjdFwiPT09dHlwZW9mKG49ZSkmJlwib2JqZWN0XCI9PT10eXBlb2Ygbi5oZWFkZXJzTWFwJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5mb3JFYWNoKWUuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtpLmFwcGVuZChlLHQpfSkpO2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNYXAmJmUgaW5zdGFuY2VvZiBNYXApe2UuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtpLmFwcGVuZCh0LGUpfSkpfWVsc2VcInN0cmluZ1wiPT09dHlwZW9mIGU/dGhpcy5hcHBlbmRGcm9tU3RyaW5nKGUpOlwib2JqZWN0XCI9PT10eXBlb2YgZSYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49ZVt0XTtBcnJheS5pc0FycmF5KG4pP24uZm9yRWFjaCgoZnVuY3Rpb24oZSl7aS5hcHBlbmQodCxlKX0pKTppLmFwcGVuZCh0LG4pfSkpfXJldHVybiBlLnByb3RvdHlwZS5hcHBlbmRGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnNwbGl0KFwiXFxyXFxuXCIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXSxpPXIuaW5kZXhPZihcIjpcIik7aWYoaT4wKXt2YXIgbz1yLnN1YnN0cmluZygwLGkpLnRyaW0oKSxhPXIuc3Vic3RyaW5nKGkrMSkudHJpbSgpO3RoaXMuYXBwZW5kKG8sYSl9fX0sZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGUsdCl7dmFyIG49ci5ub3JtYWxpemVOYW1lKGUpO2lmKHZvaWQgMD09PXQpZGVsZXRlIHRoaXMuaGVhZGVyc01hcFtuXTtlbHNle3ZhciBpPXRoaXMuaGVhZGVyc01hcFtuXTtpZihpKXt2YXIgbz1pLmluZGV4T2YodCk7bz49MCYmaS5zcGxpY2UobywxKSwwPT09aS5sZW5ndGgmJmRlbGV0ZSB0aGlzLmhlYWRlcnNNYXBbbl19fX0sZS5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxpPXIubm9ybWFsaXplTmFtZShlKTtBcnJheS5pc0FycmF5KHRoaXMuaGVhZGVyc01hcFtpXSl8fCh0aGlzLmhlYWRlcnNNYXBbaV09W10pLEFycmF5LmlzQXJyYXkodCk/dC5mb3JFYWNoKChmdW5jdGlvbihlKXtuLmhlYWRlcnNNYXBbaV0ucHVzaChyLm5vcm1hbGl6ZVZhbHVlKGUpKX0pKTp0aGlzLmhlYWRlcnNNYXBbaV0ucHVzaChyLm5vcm1hbGl6ZVZhbHVlKHQpKX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dmFyIG49ci5ub3JtYWxpemVOYW1lKGUpO2lmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBpPVtdO3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aS5wdXNoKHIubm9ybWFsaXplVmFsdWUoZSkpfSkpLHRoaXMuaGVhZGVyc01hcFtuXT1pfWVsc2UgdGhpcy5oZWFkZXJzTWFwW25dPVtyLm5vcm1hbGl6ZVZhbHVlKHQpXX0sZS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5oZWFkZXJzTWFwW3Iubm9ybWFsaXplTmFtZShlKV07aWYoIUFycmF5LmlzQXJyYXkobikpcmV0dXJuITE7aWYodm9pZCAwIT09dCl7dmFyIGk9ci5ub3JtYWxpemVWYWx1ZSh0KTtyZXR1cm4gbi5pbmRleE9mKGkpPj0wfXJldHVybiEwfSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5oZWFkZXJzTWFwW3Iubm9ybWFsaXplTmFtZShlKV07cmV0dXJuIHZvaWQgMCE9PXQ/dC5jb25jYXQoKTpbXX0sZS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMuaGVhZGVyc01hcCkuZm9yRWFjaCgoZnVuY3Rpb24obil7ZShuLHQuaGVhZGVyc01hcFtuXSl9KSx0aGlzKX0sZS5wcm90b3R5cGUudG9IZWFkZXJzPWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBIZWFkZXJzKXt2YXIgZT1uZXcgSGVhZGVycztyZXR1cm4gdGhpcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe24uZm9yRWFjaCgoZnVuY3Rpb24obil7ZS5hcHBlbmQodCxuKX0pKX0pKSxlfXRocm93IG5ldyBFcnJvcihcIkhlYWRlcnMgY2xhc3MgaXMgbm90IGRlZmluZWRcIil9LGV9KCk7dC5Ccm93c2VySGVhZGVycz1pfSxmdW5jdGlvbihlLHQsbil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9bigwKTt0LkJyb3dzZXJIZWFkZXJzPXIuQnJvd3NlckhlYWRlcnN9LGZ1bmN0aW9uKGUsdCxuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lml0ZXJhdGVIZWFkZXJzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWVbU3ltYm9sLml0ZXJhdG9yXSgpLHI9bi5uZXh0KCk7IXIuZG9uZTspdChyLnZhbHVlWzBdKSxyPW4ubmV4dCgpfSx0Lml0ZXJhdGVIZWFkZXJzS2V5cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lLmtleXMoKSxyPW4ubmV4dCgpOyFyLmRvbmU7KXQoci52YWx1ZSkscj1uLm5leHQoKX19LGZ1bmN0aW9uKGUsdCxuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1uKDIpO3Qubm9ybWFsaXplTmFtZT1mdW5jdGlvbihlKXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGUmJihlPVN0cmluZyhlKSksL1teYS16MC05XFwtIyQlJicqKy5cXF5fYHx+XS9pLnRlc3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgY2hhcmFjdGVyIGluIGhlYWRlciBmaWVsZCBuYW1lXCIpO3JldHVybiBlLnRvTG93ZXJDYXNlKCl9LHQubm9ybWFsaXplVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuXCJzdHJpbmdcIiE9PXR5cGVvZiBlJiYoZT1TdHJpbmcoZSkpLGV9LHQuZ2V0SGVhZGVyVmFsdWVzPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZTtpZihuIGluc3RhbmNlb2YgSGVhZGVycyYmbi5nZXRBbGwpcmV0dXJuIG4uZ2V0QWxsKHQpO3ZhciByPW4uZ2V0KHQpO3JldHVybiByJiZcInN0cmluZ1wiPT09dHlwZW9mIHI/W3JdOnJ9LHQuZ2V0SGVhZGVyS2V5cz1mdW5jdGlvbihlKXt2YXIgdD1lLG49e30saT1bXTtyZXR1cm4gdC5rZXlzP3IuaXRlcmF0ZUhlYWRlcnNLZXlzKHQsKGZ1bmN0aW9uKGUpe25bZV18fChuW2VdPSEwLGkucHVzaChlKSl9KSk6dC5mb3JFYWNoP3QuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtuW3RdfHwoblt0XT0hMCxpLnB1c2godCkpfSkpOnIuaXRlcmF0ZUhlYWRlcnModCwoZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXTtuW3RdfHwoblt0XT0hMCxpLnB1c2godCkpfSkpLGl9LHQuc3BsaXRIZWFkZXJWYWx1ZT1mdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gZS5zcGxpdChcIiwgXCIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Uuc3BsaXQoXCIsXCIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QucHVzaChlKX0pKX0pKSx0fX1dKSl9KExlKTt2YXIgQmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dGhpcy5ob3N0PWUsdGhpcy5vcHRpb25zPXR9cmV0dXJuIGUucHJvdG90eXBlLnVuYXJ5PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPXRoaXMsbz1sKGwoe30sdCksZS5yZXF1ZXN0VHlwZSkscz1uJiZ0aGlzLm9wdGlvbnMubWV0YWRhdGE/bmV3IExlLkJyb3dzZXJIZWFkZXJzKGwobCh7fSxudWxsPT09KHI9dGhpcy5vcHRpb25zKXx8dm9pZCAwPT09cj92b2lkIDA6ci5tZXRhZGF0YSksbikpOm58fHRoaXMub3B0aW9ucy5tZXRhZGF0YTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7YS5ncnBjLnVuYXJ5KGUse3JlcXVlc3Q6byxob3N0OmkuaG9zdCxtZXRhZGF0YTpzLHRyYW5zcG9ydDppLm9wdGlvbnMudHJhbnNwb3J0LGRlYnVnOmkub3B0aW9ucy5kZWJ1ZyxvbkVuZDpmdW5jdGlvbihlKXtpZihlLnN0YXR1cz09PWEuZ3JwYy5Db2RlLk9LKXQoZS5tZXNzYWdlKTtlbHNle3ZhciByPW5ldyBFcnJvcihlLnN0YXR1c01lc3NhZ2UpO3IuY29kZT1lLnN0YXR1cyxyLm1ldGFkYXRhPWUudHJhaWxlcnMsbihyKX19fSl9KSl9LGV9KCksTWU9U3ltYm9sKFwiY29udGV4dCBrZXlcIiksRGU9e2hvc3Q6XCJodHRwczovL2F3cy5hcGkuc25hcGNoYXQuY29tXCJ9O2Z1bmN0aW9uIGplKCl7cmV0dXJuIHdpbmRvd1tNZV19ZnVuY3Rpb24geGUoKXt2YXIgZT1qZSgpO2lmKCFlKXRocm93IG5ldyBFcnJvcihcImluaXRDb25maWdzQ2xpZW50KCkgaGFzIHRvIGJlIGNhbGxlZCBvbiBhcHAgc3RhcnR1cFwiKTtyZXR1cm4gZX1PYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LE1lLHtlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwfSk7dmFyIFVlPXttZXRob2ROYW1lOlwidGFyZ2V0aW5nUXVlcnlcIixzZXJ2aWNlOntzZXJ2aWNlTmFtZTpcInNuYXBjaGF0LmNkcC5jb2YuQ2lyY3Vtc3RhbmNlc1NlcnZpY2VcIn0scmVxdWVzdFN0cmVhbTohMSxyZXNwb25zZVN0cmVhbTohMSxyZXF1ZXN0VHlwZTp7c2VyaWFsaXplQmluYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIFUodGhpcykuZmluaXNoKCl9fSxyZXNwb25zZVR5cGU6e2Rlc2VyaWFsaXplQmluYXJ5OmZ1bmN0aW9uKGUpe3JldHVybiBsKGwoe30sQ2UoZSkpLHt0b09iamVjdDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfX19O3ZhciBGZSxIZSxHZSxXZSxWZSx6ZSxLZSxZZSxxZT17dmFsdWU6MH0sWmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSksMCE9PWUudmFsdWUmJnQudWludDMyKDgpLnVpbnQ2NChlLnZhbHVlKSx0fSxKZT1mdW5jdGlvbihlKXt2YXIgdD1sKHt9LHFlKTtyZXR1cm4gdm9pZCAwIT09ZS52YWx1ZSYmbnVsbCE9PWUudmFsdWU/dC52YWx1ZT1lLnZhbHVlOnQudmFsdWU9MCx0fSxYZT1cInVuZGVmaW5lZFwiIT09dHlwZW9mIFhlP1hlOlwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2VsZj9zZWxmOndpbmRvdztvLmRlZmF1bHQudXRpbC5Mb25nIT09aS5kZWZhdWx0JiYoby5kZWZhdWx0LnV0aWwuTG9uZz1pLmRlZmF1bHQsby5kZWZhdWx0LmNvbmZpZ3VyZSgpKSxmdW5jdGlvbihlKXtlW2UuVVNFUl9XSElURUxJU1RFRD0wXT1cIlVTRVJfV0hJVEVMSVNURURcIixlW2UuVVNFUl9HUk9VUF9XSElURUxJU1RFRD0xXT1cIlVTRVJfR1JPVVBfV0hJVEVMSVNURURcIixlW2UuRklMVEVSX0NPTkRJVElPTlM9Ml09XCJGSUxURVJfQ09ORElUSU9OU1wiLGVbZS5TTElDRV9SQU5HRT0zXT1cIlNMSUNFX1JBTkdFXCIsZVtlLlRSQUZGSUNfQUxMT0NBVEVEPTRdPVwiVFJBRkZJQ19BTExPQ0FURURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShGZXx8KEZlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlZBTElEQVRFX1JFUVVFU1Q9MF09XCJWQUxJREFURV9SRVFVRVNUXCIsZVtlLlJFUVVFU1RfQVRMQVM9MV09XCJSRVFVRVNUX0FUTEFTXCIsZVtlLkJVSUxEX1RBUkdFVElOR19JTkZPPTJdPVwiQlVJTERfVEFSR0VUSU5HX0lORk9cIixlW2UuUVVFUllfSU5ERVg9M109XCJRVUVSWV9JTkRFWFwiLGVbZS5SRVFVRVNUX0FCPTRdPVwiUkVRVUVTVF9BQlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KEhlfHwoSGU9e30pKSxvLmRlZmF1bHQudXRpbC5Mb25nIT09aS5kZWZhdWx0JiYoby5kZWZhdWx0LnV0aWwuTG9uZz1pLmRlZmF1bHQsby5kZWZhdWx0LmNvbmZpZ3VyZSgpKSxmdW5jdGlvbihlKXtlW2UuVFlQRV9ET1VCTEU9MV09XCJUWVBFX0RPVUJMRVwiLGVbZS5UWVBFX0ZMT0FUPTJdPVwiVFlQRV9GTE9BVFwiLGVbZS5UWVBFX0lOVDY0PTNdPVwiVFlQRV9JTlQ2NFwiLGVbZS5UWVBFX1VJTlQ2ND00XT1cIlRZUEVfVUlOVDY0XCIsZVtlLlRZUEVfSU5UMzI9NV09XCJUWVBFX0lOVDMyXCIsZVtlLlRZUEVfRklYRUQ2ND02XT1cIlRZUEVfRklYRUQ2NFwiLGVbZS5UWVBFX0ZJWEVEMzI9N109XCJUWVBFX0ZJWEVEMzJcIixlW2UuVFlQRV9CT09MPThdPVwiVFlQRV9CT09MXCIsZVtlLlRZUEVfU1RSSU5HPTldPVwiVFlQRV9TVFJJTkdcIixlW2UuVFlQRV9HUk9VUD0xMF09XCJUWVBFX0dST1VQXCIsZVtlLlRZUEVfTUVTU0FHRT0xMV09XCJUWVBFX01FU1NBR0VcIixlW2UuVFlQRV9CWVRFUz0xMl09XCJUWVBFX0JZVEVTXCIsZVtlLlRZUEVfVUlOVDMyPTEzXT1cIlRZUEVfVUlOVDMyXCIsZVtlLlRZUEVfRU5VTT0xNF09XCJUWVBFX0VOVU1cIixlW2UuVFlQRV9TRklYRUQzMj0xNV09XCJUWVBFX1NGSVhFRDMyXCIsZVtlLlRZUEVfU0ZJWEVENjQ9MTZdPVwiVFlQRV9TRklYRUQ2NFwiLGVbZS5UWVBFX1NJTlQzMj0xN109XCJUWVBFX1NJTlQzMlwiLGVbZS5UWVBFX1NJTlQ2ND0xOF09XCJUWVBFX1NJTlQ2NFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KEdlfHwoR2U9e30pKSxmdW5jdGlvbihlKXtlW2UuTEFCRUxfT1BUSU9OQUw9MV09XCJMQUJFTF9PUFRJT05BTFwiLGVbZS5MQUJFTF9SRVFVSVJFRD0yXT1cIkxBQkVMX1JFUVVJUkVEXCIsZVtlLkxBQkVMX1JFUEVBVEVEPTNdPVwiTEFCRUxfUkVQRUFURURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShXZXx8KFdlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlNQRUVEPTFdPVwiU1BFRURcIixlW2UuQ09ERV9TSVpFPTJdPVwiQ09ERV9TSVpFXCIsZVtlLkxJVEVfUlVOVElNRT0zXT1cIkxJVEVfUlVOVElNRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KFZlfHwoVmU9e30pKSxmdW5jdGlvbihlKXtlW2UuU1RSSU5HPTBdPVwiU1RSSU5HXCIsZVtlLkNPUkQ9MV09XCJDT1JEXCIsZVtlLlNUUklOR19QSUVDRT0yXT1cIlNUUklOR19QSUVDRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHplfHwoemU9e30pKSxmdW5jdGlvbihlKXtlW2UuSlNfTk9STUFMPTBdPVwiSlNfTk9STUFMXCIsZVtlLkpTX1NUUklORz0xXT1cIkpTX1NUUklOR1wiLGVbZS5KU19OVU1CRVI9Ml09XCJKU19OVU1CRVJcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShLZXx8KEtlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLklERU1QT1RFTkNZX1VOS05PV049MF09XCJJREVNUE9URU5DWV9VTktOT1dOXCIsZVtlLk5PX1NJREVfRUZGRUNUUz0xXT1cIk5PX1NJREVfRUZGRUNUU1wiLGVbZS5JREVNUE9URU5UPTJdPVwiSURFTVBPVEVOVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KFllfHwoWWU9e30pKTt2YXIgUWUsJGUsZXQsdHQsbnQscnQsaXQsb3QsYXQ9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBhdD9hdDpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGY/c2VsZjp3aW5kb3c7by5kZWZhdWx0LnV0aWwuTG9uZyE9PWkuZGVmYXVsdCYmKG8uZGVmYXVsdC51dGlsLkxvbmc9aS5kZWZhdWx0LG8uZGVmYXVsdC5jb25maWd1cmUoKSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fU05BUF9QUk89MF09XCJVTktOT1dOX1NOQVBfUFJPXCIsZVtlLk5PVF9TTkFQX1BSTz0xXT1cIk5PVF9TTkFQX1BST1wiLGVbZS5TVEFOREFSRF9USUVSPTJdPVwiU1RBTkRBUkRfVElFUlwiLGVbZS5PRkZJQ0lBTF9USUVSPTNdPVwiT0ZGSUNJQUxfVElFUlwiLGVbZS5QVUJMSUNfVElFUj00XT1cIlBVQkxJQ19USUVSXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0oUWV8fChRZT17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX09SSUdJTj0wXT1cIlVOS05PV05fT1JJR0lOXCIsZVtlLlNFUlZFUj0xXT1cIlNFUlZFUlwiLGVbZS5DTElFTlQ9Ml09XCJDTElFTlRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSgkZXx8KCRlPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fUExBVEZPUk09MF09XCJVTktOT1dOX1BMQVRGT1JNXCIsZVtlLlNFUlZFUj0xXT1cIlNFUlZFUlwiLGVbZS5DTElFTlQ9Ml09XCJDTElFTlRcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShldHx8KGV0PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fU1RBVFVTPTBdPVwiVU5LTk9XTl9TVEFUVVNcIixlW2UuREVQTE9ZRUQ9MV09XCJERVBMT1lFRFwiLGVbZS5DT01QTEVURUQ9Ml09XCJDT01QTEVURURcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifSh0dHx8KHR0PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fU0VHTUVOVD0wXT1cIlVOS05PV05fU0VHTUVOVFwiLGVbZS5TVEFOREFSRF9TRUdNRU5UPTFdPVwiU1RBTkRBUkRfU0VHTUVOVFwiLGVbZS5CVURHRVRfU0VHTUVOVD0yXT1cIkJVREdFVF9TRUdNRU5UXCIsZVtlLlJPTExPVVRfU0VHTUVOVD0zXT1cIlJPTExPVVRfU0VHTUVOVFwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KG50fHwobnQ9e30pKSxmdW5jdGlvbihlKXtlW2UuVU5LTk9XTl9PUEVSQVRPUj0wXT1cIlVOS05PV05fT1BFUkFUT1JcIixlW2UuQU5EPTFdPVwiQU5EXCIsZVtlLk9SPTJdPVwiT1JcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShydHx8KHJ0PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlVOS05PV05fUFJFRElDQVRFX09QRVJBVE9SPTBdPVwiVU5LTk9XTl9QUkVESUNBVEVfT1BFUkFUT1JcIixlW2UuRVFVQUw9MV09XCJFUVVBTFwiLGVbZS5OT1RfRVFVQUw9Ml09XCJOT1RfRVFVQUxcIixlW2UuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPPTNdPVwiR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPXCIsZVtlLkxFU1NfVEhBTl9PUl9FUVVBTF9UTz00XT1cIkxFU1NfVEhBTl9PUl9FUVVBTF9UT1wiLGVbZS5JTj01XT1cIklOXCIsZVtlLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIn0oaXR8fChpdD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1BST1BFUlRZPTBdPVwiVU5LTk9XTl9QUk9QRVJUWVwiLGVbZS5ERVZJQ0VfTU9ERUw9MV09XCJERVZJQ0VfTU9ERUxcIixlW2UuQ09VTlRSWT0yXT1cIkNPVU5UUllcIixlW2UuT1M9M109XCJPU1wiLGVbZS5PU19WRVJTSU9OPTRdPVwiT1NfVkVSU0lPTlwiLGVbZS5BUFBfVkVSU0lPTj01XT1cIkFQUF9WRVJTSU9OXCIsZVtlLkJVSUxEX0ZMQVZPUj02XT1cIkJVSUxEX0ZMQVZPUlwiLGVbZS5VU0VSX0lEPTddPVwiVVNFUl9JRFwiLGVbZS5MT0NBTEU9OF09XCJMT0NBTEVcIixlW2UuSVNfQ0hBUkdJTkc9OV09XCJJU19DSEFSR0lOR1wiLGVbZS5CQVRURVJZX0xFVkVMPTEwXT1cIkJBVFRFUllfTEVWRUxcIixlW2UuREVWSUNFX0NMVVNURVI9MTFdPVwiREVWSUNFX0NMVVNURVJcIixlW2UuSVNfT0ZGTElORT0xMl09XCJJU19PRkZMSU5FXCIsZVtlLkJBTkRXSURUSD0xM109XCJCQU5EV0lEVEhcIixlW2UuREVWSUNFX0JSQU5EPTE0XT1cIkRFVklDRV9CUkFORFwiLGVbZS5JU19FTVBMT1lFRT0xNV09XCJJU19FTVBMT1lFRVwiLGVbZS5VU0VSTkFNRT0xNl09XCJVU0VSTkFNRVwiLGVbZS5JU19URVNUX1VTRVI9MTddPVwiSVNfVEVTVF9VU0VSXCIsZVtlLlVTRVJfUFJPRklMRT0xOF09XCJVU0VSX1BST0ZJTEVcIixlW2UuU0NSRUVOX1dJRFRIPTE5XT1cIlNDUkVFTl9XSURUSFwiLGVbZS5TQ1JFRU5fSEVJR0hUPTIwXT1cIlNDUkVFTl9IRUlHSFRcIixlW2UuSEVWQ19TVVBQT1JUPTIxXT1cIkhFVkNfU1VQUE9SVFwiLGVbZS5ESVNLX1NJWkU9MjJdPVwiRElTS19TSVpFXCIsZVtlLkRJU0tfQVZBSUxBQkxFPTIzXT1cIkRJU0tfQVZBSUxBQkxFXCIsZVtlLk5FVFdPUktfVFlQRT0yNF09XCJORVRXT1JLX1RZUEVcIixlW2UuTUFYX1ZJREVPX1dJRFRIPTI1XT1cIk1BWF9WSURFT19XSURUSFwiLGVbZS5NQVhfVklERU9fSEVJR0hUPTI2XT1cIk1BWF9WSURFT19IRUlHSFRcIixlW2UuTUVESUFfVFlQRV9ERVBSRUNBVEVEPTI3XT1cIk1FRElBX1RZUEVfREVQUkVDQVRFRFwiLGVbZS5JU19QVUJMSUNfU1RPUlk9MjhdPVwiSVNfUFVCTElDX1NUT1JZXCIsZVtlLklTX09GRklDSUFMX1NUT1JZPTI5XT1cIklTX09GRklDSUFMX1NUT1JZXCIsZVtlLklTX05FVFdPUktfTUVURVJFRD0zMF09XCJJU19ORVRXT1JLX01FVEVSRURcIixlW2UuSVNfUk9BTUlORz0zMV09XCJJU19ST0FNSU5HXCIsZVtlLkFQUF9FTkdBR0VNRU5UX0xFVkVMPTMyXT1cIkFQUF9FTkdBR0VNRU5UX0xFVkVMXCIsZVtlLkNPTU1VTklDQVRJT05fRU5HQUdFTUVOVF9MRVZFTD0zM109XCJDT01NVU5JQ0FUSU9OX0VOR0FHRU1FTlRfTEVWRUxcIixlW2UuRlJJRU5EX1NUT1JZX0VOR0FHRU1FTlRfTEVWRUw9MzRdPVwiRlJJRU5EX1NUT1JZX0VOR0FHRU1FTlRfTEVWRUxcIixlW2UuUFVCTElDX1VTRVJfU1RPUllfRU5HQUdFTUVOVF9MRVZFTD0zNV09XCJQVUJMSUNfVVNFUl9TVE9SWV9FTkdBR0VNRU5UX0xFVkVMXCIsZVtlLlBVQkxJU0hFUl9TVE9SWV9FTkdBR0VNRU5UX0xFVkVMPTM2XT1cIlBVQkxJU0hFUl9TVE9SWV9FTkdBR0VNRU5UX0xFVkVMXCIsZVtlLkxFTlNfRU5HQUdFTUVOVF9MRVZFTD0zN109XCJMRU5TX0VOR0FHRU1FTlRfTEVWRUxcIixlW2UuQ0FNRVJBX0NPTlRFWFQ9MzhdPVwiQ0FNRVJBX0NPTlRFWFRcIixlW2UuQ0FNRVJBX0RJUkVDVElPTj0zOV09XCJDQU1FUkFfRElSRUNUSU9OXCIsZVtlLkNBTUVSQV9GTEFTSF9TVEFURT00MF09XCJDQU1FUkFfRkxBU0hfU1RBVEVcIixlW2UuQ0FNRVJBX0FQST00MV09XCJDQU1FUkFfQVBJXCIsZVtlLk5PTl9GUklFTkRfU1RPUllfRU5HQUdFTUVOVF9MRVZFTD00Ml09XCJOT05fRlJJRU5EX1NUT1JZX0VOR0FHRU1FTlRfTEVWRUxcIixlW2UuRk9MTE9XRVJfU0laRV9MRVZFTD00M109XCJGT0xMT1dFUl9TSVpFX0xFVkVMXCIsZVtlLkxFR0FDWV9NVVNIUk9PTV9DT05URU5UX1RZUEU9NDRdPVwiTEVHQUNZX01VU0hST09NX0NPTlRFTlRfVFlQRVwiLGVbZS5TTkFQX1NPVVJDRT00NV09XCJTTkFQX1NPVVJDRVwiLGVbZS5VUExPQURfQkFORFdJRFRIPTQ2XT1cIlVQTE9BRF9CQU5EV0lEVEhcIixlW2UuREFZU19TSU5DRV9DUkVBVElPTj00N109XCJEQVlTX1NJTkNFX0NSRUFUSU9OXCIsZVtlLkNBTUVSQTJfTEVWRUw9NDhdPVwiQ0FNRVJBMl9MRVZFTFwiLGVbZS5DQU1FUkFfTklHSFRfTU9ERV9TVEFURT00OV09XCJDQU1FUkFfTklHSFRfTU9ERV9TVEFURVwiLGVbZS5VU0VSX1BFUlNPTkE9NTBdPVwiVVNFUl9QRVJTT05BXCIsZVtlLlVTRVJfTEFOR1VBR0U9NTFdPVwiVVNFUl9MQU5HVUFHRVwiLGVbZS5VU0VSX0NSRUFUSU9OX1RJTUU9NTJdPVwiVVNFUl9DUkVBVElPTl9USU1FXCIsZVtlLlZJREVPX0RVUkFUSU9OPTUzXT1cIlZJREVPX0RVUkFUSU9OXCIsZVtlLk1PQklMRV9ORVRXT1JLX1RZUEU9NTRdPVwiTU9CSUxFX05FVFdPUktfVFlQRVwiLGVbZS5BR0dSRUdBVEVEX1VTRVJfQkFORFdJRFRIPTU1XT1cIkFHR1JFR0FURURfVVNFUl9CQU5EV0lEVEhcIixlW2UuUkVBTFRJTUVfTU9CSUxFX05FVFdPUktfR0VORVJBVElPTj01Nl09XCJSRUFMVElNRV9NT0JJTEVfTkVUV09SS19HRU5FUkFUSU9OXCIsZVtlLlJFQUxUSU1FX05FVFdPUktfVFlQRT01N109XCJSRUFMVElNRV9ORVRXT1JLX1RZUEVcIixlW2UuUkVBTFRJTUVfTkVUV09SS19JU19NRVRFUkVEPTU4XT1cIlJFQUxUSU1FX05FVFdPUktfSVNfTUVURVJFRFwiLGVbZS5SRUFMVElNRV9ORVRXT1JLX0lTX1JPQU1JTkc9NTldPVwiUkVBTFRJTUVfTkVUV09SS19JU19ST0FNSU5HXCIsZVtlLkxFTlNfQ0xVU1RFUl9CSUFTRUQ9NjBdPVwiTEVOU19DTFVTVEVSX0JJQVNFRFwiLGVbZS5MRU5TX0NMVVNURVJfTE9HPTYxXT1cIkxFTlNfQ0xVU1RFUl9MT0dcIixlW2UuTEVOU19DTFVTVEVSX09SSUc9NjJdPVwiTEVOU19DTFVTVEVSX09SSUdcIixlW2UuTEVOU19DTFVTVEVSX09SSUdfND02M109XCJMRU5TX0NMVVNURVJfT1JJR180XCIsZVtlLkxFTlNfQ0xVU1RFUl9CSUFTRURfTE9HPTY0XT1cIkxFTlNfQ0xVU1RFUl9CSUFTRURfTE9HXCIsZVtlLkFQUF9MT0NBTEU9NjVdPVwiQVBQX0xPQ0FMRVwiLGVbZS5ERVZJQ0VfQ09NTU9OX05BTUU9NjZdPVwiREVWSUNFX0NPTU1PTl9OQU1FXCIsZVtlLlBJQ1RVUkVfTU9ERT02N109XCJQSUNUVVJFX01PREVcIixlW2UuVVNFUl9GUklFTkRfQ09VTlQ9NjhdPVwiVVNFUl9GUklFTkRfQ09VTlRcIixlW2UuQk9MVF9VU0VfQ0FTRT02OV09XCJCT0xUX1VTRV9DQVNFXCIsZVtlLkw5MF9DT1VOVFJZPTcwXT1cIkw5MF9DT1VOVFJZXCIsZVtlLlNUVUI9NzFdPVwiU1RVQlwiLGVbZS5JU19UUlVFPTcyXT1cIklTX1RSVUVcIixlW2UuU1RPUllfUE9TVF9SQVRJTz03M109XCJTVE9SWV9QT1NUX1JBVElPXCIsZVtlLkdFTkRFUj03NF09XCJHRU5ERVJcIixlW2UuSU5GRVJSRURfQUdFX0JVQ0tFVD03NV09XCJJTkZFUlJFRF9BR0VfQlVDS0VUXCIsZVtlLlNUT1JJRVM9NzZdPVwiU1RPUklFU1wiLGVbZS5TRU5EUz03N109XCJTRU5EU1wiLGVbZS5TTkFQX0NSRUFURV9MNz03OF09XCJTTkFQX0NSRUFURV9MN1wiLGVbZS5TVE9SWV9QT1NUX0w3PTc5XT1cIlNUT1JZX1BPU1RfTDdcIixlW2UuQ09NTVVOSUNBVElPTl9MNz04MF09XCJDT01NVU5JQ0FUSU9OX0w3XCIsZVtlLkRGX0w3PTgxXT1cIkRGX0w3XCIsZVtlLkFQUF9MNz04Ml09XCJBUFBfTDdcIixlW2UuREFZU19TSU5DRV9DUkVBVElPTl9CVUNLRVQ9ODNdPVwiREFZU19TSU5DRV9DUkVBVElPTl9CVUNLRVRcIixlW2UuQklESVJFQ1RJT05BTF9GUklFTkRfU1RBVFVTPTg0XT1cIkJJRElSRUNUSU9OQUxfRlJJRU5EX1NUQVRVU1wiLGVbZS5TVE9SWV9QT1NUX1BSRURJQ1RJT049ODVdPVwiU1RPUllfUE9TVF9QUkVESUNUSU9OXCIsZVtlLkJPTFRfQ0ROX0VYUEVSSU1FTlRBVElPTl9JRD04Nl09XCJCT0xUX0NETl9FWFBFUklNRU5UQVRJT05fSURcIixlW2UuTUlOU19TSU5DRV9MQVNUX0xFTlNfQUNUSVZBVElPTj04N109XCJNSU5TX1NJTkNFX0xBU1RfTEVOU19BQ1RJVkFUSU9OXCIsZVtlLkFQUF9PUEVOUz04OF09XCJBUFBfT1BFTlNcIixlW2UuTEVOU19TV0lQRVM9ODldPVwiTEVOU19TV0lQRVNcIixlW2UuTEVOU19TTkFQUz05MF09XCJMRU5TX1NOQVBTXCIsZVtlLkxFTlNfT1BTPTkxXT1cIkxFTlNfT1BTXCIsZVtlLlcxX0FQUF9PUEVOUz05Ml09XCJXMV9BUFBfT1BFTlNcIixlW2UuVzFfTEVOU19TV0lQRVM9OTNdPVwiVzFfTEVOU19TV0lQRVNcIixlW2UuVzFfTEVOU19TTkFQUz05NF09XCJXMV9MRU5TX1NOQVBTXCIsZVtlLlcxX0xFTlNfT1BTPTk1XT1cIlcxX0xFTlNfT1BTXCIsZVtlLlcyX0FQUF9PUEVOUz05Nl09XCJXMl9BUFBfT1BFTlNcIixlW2UuVzJfTEVOU19TV0lQRVM9OTddPVwiVzJfTEVOU19TV0lQRVNcIixlW2UuVzJfTEVOU19TTkFQUz05OF09XCJXMl9MRU5TX1NOQVBTXCIsZVtlLlcyX0xFTlNfT1BTPTk5XT1cIlcyX0xFTlNfT1BTXCIsZVtlLlczNF9BUFBfT1BFTlM9MTAwXT1cIlczNF9BUFBfT1BFTlNcIixlW2UuVzM0X0xFTlNfU1dJUEVTPTEwMV09XCJXMzRfTEVOU19TV0lQRVNcIixlW2UuVzM0X0xFTlNfU05BUFM9MTAyXT1cIlczNF9MRU5TX1NOQVBTXCIsZVtlLlczNF9MRU5TX09QUz0xMDNdPVwiVzM0X0xFTlNfT1BTXCIsZVtlLkxFTlNfU1dJUEVTX1BSRURJQ1RJT049MTA0XT1cIkxFTlNfU1dJUEVTX1BSRURJQ1RJT05cIixlW2UuUkVHSVNUUkFUSU9OX0NPVU5UUlk9MTA1XT1cIlJFR0lTVFJBVElPTl9DT1VOVFJZXCIsZVtlLklQX0FTTj0xMDZdPVwiSVBfQVNOXCIsZVtlLklQX1JFR0lPTj0xMDddPVwiSVBfUkVHSU9OXCIsZVtlLklQX0NJVFk9MTA4XT1cIklQX0NJVFlcIixlW2UuSEFTX1VTRVJfSUQ9MTA5XT1cIkhBU19VU0VSX0lEXCIsZVtlLkhBU19CSVRNT0pJPTExMF09XCJIQVNfQklUTU9KSVwiLGVbZS5OVU1fQVBQX09QRU5TX0xBU1RfOF9EQVlTPTExMV09XCJOVU1fQVBQX09QRU5TX0xBU1RfOF9EQVlTXCIsZVtlLk1JTlNfU0lOQ0VfTEFTVF9TTkFQUEFCTEVfTEVOU19BQ1RJVkFUSU9OPTExMl09XCJNSU5TX1NJTkNFX0xBU1RfU05BUFBBQkxFX0xFTlNfQUNUSVZBVElPTlwiLGVbZS5OVU1fRkVBVFVSRV9TVE9SWV9WSUVXX0RBWVNfTDc9MTEzXT1cIk5VTV9GRUFUVVJFX1NUT1JZX1ZJRVdfREFZU19MN1wiLGVbZS5OVU1fRkVBVFVSRV9TVE9SWV9TWU5DX0RBWVNfTDc9MTE0XT1cIk5VTV9GRUFUVVJFX1NUT1JZX1NZTkNfREFZU19MN1wiLGVbZS5IRVhBR09OX05OX1NVUFBPUlRFRF9WRVJTSU9OPTExNV09XCJIRVhBR09OX05OX1NVUFBPUlRFRF9WRVJTSU9OXCIsZVtlLkRBWVNfU0lOQ0VfTEFTVF9MT0dJTl9PUl9PUEVOPTExNl09XCJEQVlTX1NJTkNFX0xBU1RfTE9HSU5fT1JfT1BFTlwiLGVbZS5TUEVDVEFDTEVTX1ZFUlNJT049MTE3XT1cIlNQRUNUQUNMRVNfVkVSU0lPTlwiLGVbZS5ORVRXT1JLX1FVQUxJVFk9MTE4XT1cIk5FVFdPUktfUVVBTElUWVwiLGVbZS5ERVZJQ0VfTUVNT1JZX01CPTExOV09XCJERVZJQ0VfTUVNT1JZX01CXCIsZVtlLkRFVklDRV9HTF9WRVJTSU9OPTEyMF09XCJERVZJQ0VfR0xfVkVSU0lPTlwiLGVbZS5TTkFQX1BST19TVEFUVVM9MTIxXT1cIlNOQVBfUFJPX1NUQVRVU1wiLGVbZS5ERVZJQ0VfVlA5X0RFQ09ESU5HX1NVUFBPUlQ9MTIyXT1cIkRFVklDRV9WUDlfREVDT0RJTkdfU1VQUE9SVFwiLGVbZS5BVkdfRlJJRU5EX1NUT1JZX1ZJRVdfQ09VTlRfTDc9MTIzXT1cIkFWR19GUklFTkRfU1RPUllfVklFV19DT1VOVF9MN1wiLGVbZS5HQU1FX0pPSU5fVElNRT0xMjRdPVwiR0FNRV9KT0lOX1RJTUVcIixlW2UuR0FNRV9MQVNUX0FDVElWRV9USU1FPTEyNV09XCJHQU1FX0xBU1RfQUNUSVZFX1RJTUVcIixlW2UuREFZU19TSU5DRV9GSVJTVF9HQU1FX0FDVElWSVRZPTEyNl09XCJEQVlTX1NJTkNFX0ZJUlNUX0dBTUVfQUNUSVZJVFlcIixlW2UuREFZU19TSU5DRV9MQVNUX0dBTUVfQUNUSVZJVFk9MTI3XT1cIkRBWVNfU0lOQ0VfTEFTVF9HQU1FX0FDVElWSVRZXCIsZVtlLlBGX1BBR0VfU0VTU0lPTlNfV0lUSF9MT05HX0lNUD0xMjhdPVwiUEZfUEFHRV9TRVNTSU9OU19XSVRIX0xPTkdfSU1QXCIsZVtlLlNUSUNLWV9NQVhfQ09OTkVDVElPTl9UWVBFPTEyOV09XCJTVElDS1lfTUFYX0NPTk5FQ1RJT05fVFlQRVwiLGVbZS5XSVJFTEVTU19DQVJSSUVSPTEzMF09XCJXSVJFTEVTU19DQVJSSUVSXCIsZVtlLldJVEhfQU5JTUFURURfT1ZFUkxBWT0xMzFdPVwiV0lUSF9BTklNQVRFRF9PVkVSTEFZXCIsZVtlLk1JTklTX0pPSU5fVElNRT0xMzJdPVwiTUlOSVNfSk9JTl9USU1FXCIsZVtlLk1JTklTX0xBU1RfQUNUSVZFX1RJTUU9MTMzXT1cIk1JTklTX0xBU1RfQUNUSVZFX1RJTUVcIixlW2UuREFZU19TSU5DRV9GSVJTVF9NSU5JU19BQ1RJVklUWT0xMzRdPVwiREFZU19TSU5DRV9GSVJTVF9NSU5JU19BQ1RJVklUWVwiLGVbZS5EQVlTX1NJTkNFX0xBU1RfTUlOSVNfQUNUSVZJVFk9MTM1XT1cIkRBWVNfU0lOQ0VfTEFTVF9NSU5JU19BQ1RJVklUWVwiLGVbZS5ERVZJQ0VfQVYxX0RFQ09ESU5HX1NVUFBPUlQ9MTM2XT1cIkRFVklDRV9BVjFfREVDT0RJTkdfU1VQUE9SVFwiLGVbZS5BUFBfUEFDS0FHRV9JTlNUQUxMRVI9MTM3XT1cIkFQUF9QQUNLQUdFX0lOU1RBTExFUlwiLGVbZS5VUkw9MTM4XT1cIlVSTFwiLGVbZS5FU1RJTUFURURfRFVSQVRJT05fRk9SX0VWRU5UX01TPTEzOV09XCJFU1RJTUFURURfRFVSQVRJT05fRk9SX0VWRU5UX01TXCIsZVtlLk1FRElBX1NPVVJDRT0xNDBdPVwiTUVESUFfU09VUkNFXCIsZVtlLkFTU0VUX1RZUEU9MTQxXT1cIkFTU0VUX1RZUEVcIixlW2UuU1RPUllfVklFV1NfNVRIX1RBQl9FTkdBR0VNRU5UX0xFVkVMPTE0Ml09XCJTVE9SWV9WSUVXU181VEhfVEFCX0VOR0FHRU1FTlRfTEVWRUxcIixlW2UuUkVQT1JURURfQUdFPTE0M109XCJSRVBPUlRFRF9BR0VcIixlW2UuQU5EUk9JRF9NT0JJTEVfU0VSVklDRVNfUFJPVklERVI9MTQ0XT1cIkFORFJPSURfTU9CSUxFX1NFUlZJQ0VTX1BST1ZJREVSXCIsZVtlLklTX0FDUVVJUkVEX1VTRVI9MTQ1XT1cIklTX0FDUVVJUkVEX1VTRVJcIixlW2UuWURQST0xNDZdPVwiWURQSVwiLGVbZS5CT0xUX0lTX0NPTlRFTlRfUE9QVUxBUj0xNDddPVwiQk9MVF9JU19DT05URU5UX1BPUFVMQVJcIixlW2UuQ0FQVFVSRV9NT0RFPTE0OF09XCJDQVBUVVJFX01PREVcIixlW2UuQklESVJFQ1RJT05BTF9GUklFTkRfU1RBVFVTX1ZFTExVTT0xNDldPVwiQklESVJFQ1RJT05BTF9GUklFTkRfU1RBVFVTX1ZFTExVTVwiLGVbZS5PUklHSU49MTUwXT1cIk9SSUdJTlwiLGVbZS5MRU5TQ09SRV9WRVJTSU9OPTE1MV09XCJMRU5TQ09SRV9WRVJTSU9OXCIsZVtlLlNOQVBLSVRfQVBQX0lEPTE1Ml09XCJTTkFQS0lUX0FQUF9JRFwiLGVbZS5HUFU9MTUzXT1cIkdQVVwiLGVbZS5DSElQU0VUX05BTUU9MTU0XT1cIkNISVBTRVRfTkFNRVwiLGVbZS5DSElQU0VUX1ZFUlNJT049MTU1XT1cIkNISVBTRVRfVkVSU0lPTlwiLGVbZS5IQVNfWkVST19JREZBPTE1Nl09XCJIQVNfWkVST19JREZBXCIsZVtlLkxJTUlUX0FEX1RSQUNLSU5HPTE1N109XCJMSU1JVF9BRF9UUkFDS0lOR1wiLGVbZS5BVFRfQVVUSF9TVEFUVVM9MTU4XT1cIkFUVF9BVVRIX1NUQVRVU1wiLGVbZS5WUDlfU09GVFdBUkVfREVDT0RJTkdfU1VQUE9SVEVEPTE1OV09XCJWUDlfU09GVFdBUkVfREVDT0RJTkdfU1VQUE9SVEVEXCIsZVtlLkFWMV9TT0ZUV0FSRV9ERUNPRElOR19TVVBQT1JURUQ9MTYwXT1cIkFWMV9TT0ZUV0FSRV9ERUNPRElOR19TVVBQT1JURURcIixlW2UuV0lUSF9NVVNJQz0xNjFdPVwiV0lUSF9NVVNJQ1wiLGVbZS5DQU1FUkEyX0ZST05UX1NTX0dBSU5fT1ZFUl9UUEE9MTYyXT1cIkNBTUVSQTJfRlJPTlRfU1NfR0FJTl9PVkVSX1RQQVwiLGVbZS5BVFRBQ0hNRU5UX1RPT0xfVjI9MTYzXT1cIkFUVEFDSE1FTlRfVE9PTF9WMlwiLGVbZS5NRURJQV9UWVBFPTE2NF09XCJNRURJQV9UWVBFXCIsZVtlLlVTRVJfUEVSU09OQV9WMz0xNjVdPVwiVVNFUl9QRVJTT05BX1YzXCIsZVtlLkZFQVRVUkVfUFJPVklERURfU0laRT0xNjZdPVwiRkVBVFVSRV9QUk9WSURFRF9TSVpFXCIsZVtlLlNOQVBTX1NFTkRfV0lUSF9IRVZDPTE2N109XCJTTkFQU19TRU5EX1dJVEhfSEVWQ1wiLGVbZS5TTkFQU19TRU5EX1dJVEhPVVRfSEVWQz0xNjhdPVwiU05BUFNfU0VORF9XSVRIT1VUX0hFVkNcIixlW2UuQ0FNRVJBMl9OQVRJVkVfQ1JBU0hfT1ZFUl9DQU1FUkExPTE2OV09XCJDQU1FUkEyX05BVElWRV9DUkFTSF9PVkVSX0NBTUVSQTFcIixlW2UuQ0FNRVJBMl9HMlNfTEFURU5DWV9PVkVSX0NBTUVSQTE9MTcwXT1cIkNBTUVSQTJfRzJTX0xBVEVOQ1lfT1ZFUl9DQU1FUkExXCIsZVtlLlNDQU5ORURfQ0FURUdPUllfSURTPTE3MV09XCJTQ0FOTkVEX0NBVEVHT1JZX0lEU1wiLGVbZS5DT05URU5UX1ZJRVdfU09VUkNFPTE3Ml09XCJDT05URU5UX1ZJRVdfU09VUkNFXCIsZVtlLklTX0lOVEVSTkFMPTE3M109XCJJU19JTlRFUk5BTFwiLGVbZS5JU19XRUI9MTc0XT1cIklTX1dFQlwiLGVbZS5SRUNJUElFTlRTX1NVUFBPUlRfSEVWQz0xNzVdPVwiUkVDSVBJRU5UU19TVVBQT1JUX0hFVkNcIixlW2UuQVBQX09QRU5fVE9fTUFQPTE3Nl09XCJBUFBfT1BFTl9UT19NQVBcIixlW2UuQVBQX09QRU5fVE9fRlJJRU5EU0ZFRUQ9MTc3XT1cIkFQUF9PUEVOX1RPX0ZSSUVORFNGRUVEXCIsZVtlLkFQUF9PUEVOX1RPX0xFTlNFUz0xNzhdPVwiQVBQX09QRU5fVE9fTEVOU0VTXCIsZVtlLkFQUF9PUEVOX1RPX01FTU9SSUVTPTE3OV09XCJBUFBfT1BFTl9UT19NRU1PUklFU1wiLGVbZS5BUFBfT1BFTl9UT19DT01NVU5JVFk9MTgwXT1cIkFQUF9PUEVOX1RPX0NPTU1VTklUWVwiLGVbZS5BUFBfT1BFTl9UT19TUE9UTElHSFQ9MTgxXT1cIkFQUF9PUEVOX1RPX1NQT1RMSUdIVFwiLGVbZS5JU19JTVBBQ1RFRF9CWV9QSU5DXzg5Mz0xODJdPVwiSVNfSU1QQUNURURfQllfUElOQ184OTNcIixlW2UuREFZU19CRUZPUkVfQklSVEhEQVk9MTgzXT1cIkRBWVNfQkVGT1JFX0JJUlRIREFZXCIsZVtlLkhBU19CSVBBPTE4NF09XCJIQVNfQklQQVwiLGVbZS5FTUFJTF9WRVJJRklFRD0xODVdPVwiRU1BSUxfVkVSSUZJRURcIixlW2UuUEhPTkVfVkVSSUZJRUQ9MTg2XT1cIlBIT05FX1ZFUklGSUVEXCIsZVtlLk5PVElGSUNBVElPTl9QRVJNX0dSQU5URUQ9MTg3XT1cIk5PVElGSUNBVElPTl9QRVJNX0dSQU5URURcIixlW2UuQ09OVEFDVF9QRVJNX0dSQU5URUQ9MTg4XT1cIkNPTlRBQ1RfUEVSTV9HUkFOVEVEXCIsZVtlLk1VVFVBTF9GUklFTkRTX0NPVU5UPTE4OV09XCJNVVRVQUxfRlJJRU5EU19DT1VOVFwiLGVbZS5HUk9VUFNfQ09VTlQ9MTkwXT1cIkdST1VQU19DT1VOVFwiLGVbZS5TUE9UTElHSFRfU1RPUllfRU5HQUdFTUVOVF9TVEFUVVM9MTkxXT1cIlNQT1RMSUdIVF9TVE9SWV9FTkdBR0VNRU5UX1NUQVRVU1wiLGVbZS5IQVNfTk9OX1RFQU1fU05BUENIQVRfQ09OVkVSU0FUSU9OUz0xOTJdPVwiSEFTX05PTl9URUFNX1NOQVBDSEFUX0NPTlZFUlNBVElPTlNcIixlW2UuQ09HTkFDX0FQUF9JRD0xOTNdPVwiQ09HTkFDX0FQUF9JRFwiLGVbZS5QTEFZQkFDS19JVEVNX1RZUEU9MTk0XT1cIlBMQVlCQUNLX0lURU1fVFlQRVwiLGVbZS5TVVBfSVNfQklSVEhEQVlfUEFSVFlfRU5BQkxFRD0xOTVdPVwiU1VQX0lTX0JJUlRIREFZX1BBUlRZX0VOQUJMRURcIixlW2UuU1VQX0ZIUF9MQVNUX0lOVEVSQUNUSU9OX1RJTUVfTUlMTElTX1RPX05PVz0xOTZdPVwiU1VQX0ZIUF9MQVNUX0lOVEVSQUNUSU9OX1RJTUVfTUlMTElTX1RPX05PV1wiLGVbZS5TVVBfRkhQX0NPTlRBQ1RfU1lOQ19JTlRFUkFDVElPTl9DT1VOVD0xOTddPVwiU1VQX0ZIUF9DT05UQUNUX1NZTkNfSU5URVJBQ1RJT05fQ09VTlRcIixlW2UuU1VQX0ZIUF9DT05UQUNUX1NZTkNfTEFTVF9TSE9XTl9USU1FX01JTExJU19UT19OT1c9MTk4XT1cIlNVUF9GSFBfQ09OVEFDVF9TWU5DX0xBU1RfU0hPV05fVElNRV9NSUxMSVNfVE9fTk9XXCIsZVtlLlNVUF9GSFBfTk9USUZJQ0FUSU9OX1BFUk1JU1NJT05fSU5URVJBQ1RJT05fQ09VTlQ9MTk5XT1cIlNVUF9GSFBfTk9USUZJQ0FUSU9OX1BFUk1JU1NJT05fSU5URVJBQ1RJT05fQ09VTlRcIixlW2UuU1VQX0ZIUF9OT1RJRklDQVRJT05fUEVSTUlTU0lPTl9MQVNUX1NIT1dOX1RJTUVfTUlMTElTX1RPX05PVz0yMDBdPVwiU1VQX0ZIUF9OT1RJRklDQVRJT05fUEVSTUlTU0lPTl9MQVNUX1NIT1dOX1RJTUVfTUlMTElTX1RPX05PV1wiLGVbZS5TVVBfRkhQX1BIT05FX1ZFUklGSUNBVElPTl9JTlRFUkFDVElPTl9DT1VOVD0yMDFdPVwiU1VQX0ZIUF9QSE9ORV9WRVJJRklDQVRJT05fSU5URVJBQ1RJT05fQ09VTlRcIixlW2UuU1VQX0ZIUF9QSE9ORV9WRVJJRklDQVRJT05fTEFTVF9TSE9XTl9USU1FX01JTExJU19UT19OT1c9MjAyXT1cIlNVUF9GSFBfUEhPTkVfVkVSSUZJQ0FUSU9OX0xBU1RfU0hPV05fVElNRV9NSUxMSVNfVE9fTk9XXCIsZVtlLlNVUF9GSFBfQklSVEhEQVlfUEFSVFlfSU5URVJBQ1RJT05fQ09VTlQ9MjAzXT1cIlNVUF9GSFBfQklSVEhEQVlfUEFSVFlfSU5URVJBQ1RJT05fQ09VTlRcIixlW2UuU1VQX0ZIUF9CSVJUSERBWV9QQVJUWV9MQVNUX1NIT1dOX1RJTUVfTUlMTElTX1RPX05PVz0yMDRdPVwiU1VQX0ZIUF9CSVJUSERBWV9QQVJUWV9MQVNUX1NIT1dOX1RJTUVfTUlMTElTX1RPX05PV1wiLGVbZS5TVVBfRkhQX0VNQUlMX1ZFUklGSUNBVElPTl9JTlRFUkFDVElPTl9DT1VOVD0yMDVdPVwiU1VQX0ZIUF9FTUFJTF9WRVJJRklDQVRJT05fSU5URVJBQ1RJT05fQ09VTlRcIixlW2UuU1VQX0ZIUF9FTUFJTF9WRVJJRklDQVRJT05fTEFTVF9TSE9XTl9USU1FX01JTExJU19UT19OT1c9MjA2XT1cIlNVUF9GSFBfRU1BSUxfVkVSSUZJQ0FUSU9OX0xBU1RfU0hPV05fVElNRV9NSUxMSVNfVE9fTk9XXCIsZVtlLkhBU19VU0VEX1NQRUNUQUNMRVM9MjA3XT1cIkhBU19VU0VEX1NQRUNUQUNMRVNcIixlW2UuQk9MVF9DTElFTlRfQVBQX1NUQVRFPTIwOF09XCJCT0xUX0NMSUVOVF9BUFBfU1RBVEVcIixlW2UuRU1BSUxfU0VUPTIwOV09XCJFTUFJTF9TRVRcIixlW2UuQklUTU9KSV9TRVQ9MjEwXT1cIkJJVE1PSklfU0VUXCIsZVtlLlFVSUNLX1RBUF9DQU1FUkFfU1VQUE9SVEVEX0VOQUJMRUQ9MjExXT1cIlFVSUNLX1RBUF9DQU1FUkFfU1VQUE9SVEVEX0VOQUJMRURcIixlW2UuSEFTX0FERF9GUklFTkRTX1JFUVVFU1Q9MjEyXT1cIkhBU19BRERfRlJJRU5EU19SRVFVRVNUXCIsZVtlLkFQUF9MQVVOQ0hfRlJPTV9QVVNIPTIxM109XCJBUFBfTEFVTkNIX0ZST01fUFVTSFwiLGVbZS5BUFBfTEFVTkNIX1RZUEU9MjE0XT1cIkFQUF9MQVVOQ0hfVFlQRVwiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfSU1QUkVTU0lPTl9DT1VOVD0yMTVdPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0lNUFJFU1NJT05fQ09VTlRcIixlW2UuQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0xBU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XPTIxNl09XCJCSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfTEFTVF9JTVBSRVNTSU9OX1RJTUVfU0VDU19UT19OT1dcIixlW2UuQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0NPTlRJTlVPVVNfRElTTUlTU19DT1VOVD0yMTddPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0NPTlRJTlVPVVNfRElTTUlTU19DT1VOVFwiLGVbZS5GU1RfTlVNX0lOX0FQUF9XQVJOSU5HUz0yMThdPVwiRlNUX05VTV9JTl9BUFBfV0FSTklOR1NcIixlW2UuRlNUX1NIT1VMRF9DSEFOR0VfUEFTU1dPUkQ9MjE5XT1cIkZTVF9TSE9VTERfQ0hBTkdFX1BBU1NXT1JEXCIsZVtlLkZTVF9JU19CQUNLR1JPVU5EX0NIRUNLPTIyMF09XCJGU1RfSVNfQkFDS0dST1VORF9DSEVDS1wiLGVbZS5TVVBfRlNUX0lERU5USVRZX1ZFUklGSUNBVElPTl9JTVBSRVNTSU9OX0NPVU5UPTIyMV09XCJTVVBfRlNUX0lERU5USVRZX1ZFUklGSUNBVElPTl9JTVBSRVNTSU9OX0NPVU5UXCIsZVtlLlNVUF9GU1RfSURFTlRJVFlfVkVSSUZJQ0FUSU9OX0xBU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XPTIyMl09XCJTVVBfRlNUX0lERU5USVRZX1ZFUklGSUNBVElPTl9MQVNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PV1wiLGVbZS5TVVBfRlNUX0ZSSUVORF9BRERfTEFTVF9JTVBSRVNTSU9OX1RJTUVfU0VDU19UT19OT1c9MjIzXT1cIlNVUF9GU1RfRlJJRU5EX0FERF9MQVNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PV1wiLGVbZS5TVVBfRlNUX0NPTlRBQ1RfU1lOQ19JTVBSRVNTSU9OX0NPVU5UPTIyNF09XCJTVVBfRlNUX0NPTlRBQ1RfU1lOQ19JTVBSRVNTSU9OX0NPVU5UXCIsZVtlLlNVUF9GU1RfQ09OVEFDVF9TWU5DX0xBU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XPTIyNV09XCJTVVBfRlNUX0NPTlRBQ1RfU1lOQ19MQVNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PV1wiLGVbZS5TVVBfRlNUX0JJVE1PSklfQ1JFQVRJT05fSU1QUkVTU0lPTl9DT1VOVD0yMjZdPVwiU1VQX0ZTVF9CSVRNT0pJX0NSRUFUSU9OX0lNUFJFU1NJT05fQ09VTlRcIixlW2UuU1VQX0ZTVF9CSVRNT0pJX0NSRUFUSU9OX0xBU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XPTIyN109XCJTVVBfRlNUX0JJVE1PSklfQ1JFQVRJT05fTEFTVF9JTVBSRVNTSU9OX1RJTUVfU0VDU19UT19OT1dcIixlW2UuU1VQX0ZTVF9VU0VSX1JFQUNIQUJJTElUWV9MQVNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PVz0yMjhdPVwiU1VQX0ZTVF9VU0VSX1JFQUNIQUJJTElUWV9MQVNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PV1wiLGVbZS5TVVBfRlNUX0JJUEFfSEFTX0NMSUNLRUQ9MjI5XT1cIlNVUF9GU1RfQklQQV9IQVNfQ0xJQ0tFRFwiLGVbZS5JTkNMVVNJT05fUEFORUxfTUVNQkVSPTIzMF09XCJJTkNMVVNJT05fUEFORUxfTUVNQkVSXCIsZVtlLkFVRElPX1JFQ09SRF9QRVJNX0dSQU5URUQ9MjMxXT1cIkFVRElPX1JFQ09SRF9QRVJNX0dSQU5URURcIixlW2UuTVVUVUFMX0ZSSUVORFNfV0lUSF9CSVJUSERBWV9DT1VOVD0yMzJdPVwiTVVUVUFMX0ZSSUVORFNfV0lUSF9CSVJUSERBWV9DT1VOVFwiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfRElTTUlTU19DT1VOVD0yMzNdPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0RJU01JU1NfQ09VTlRcIixlW2UuU1VQX1BBQ19QSE9ORV9WRVJJRklDQVRJT05fRElTTUlTU19DT1VOVD0yMzRdPVwiU1VQX1BBQ19QSE9ORV9WRVJJRklDQVRJT05fRElTTUlTU19DT1VOVFwiLGVbZS5TVVBfUEFDX0JJUlRIREFZX01JTklfSU1QUkVTU0lPTl9DT1VOVD0yMzVdPVwiU1VQX1BBQ19CSVJUSERBWV9NSU5JX0lNUFJFU1NJT05fQ09VTlRcIixlW2UuU1VQX1BBQ19CSVJUSERBWV9NSU5JX0RJU01JU1NfQ09VTlQ9MjM2XT1cIlNVUF9QQUNfQklSVEhEQVlfTUlOSV9ESVNNSVNTX0NPVU5UXCIsZVtlLlNVUF9QQUNfUlVOX0ZPUl9PRkZJQ0VfTUlOSV9JTVBSRVNTSU9OX0NPVU5UPTIzN109XCJTVVBfUEFDX1JVTl9GT1JfT0ZGSUNFX01JTklfSU1QUkVTU0lPTl9DT1VOVFwiLGVbZS5TVVBfUEFDX1JVTl9GT1JfT0ZGSUNFX01JTklfRElTTUlTU19DT1VOVD0yMzhdPVwiU1VQX1BBQ19SVU5fRk9SX09GRklDRV9NSU5JX0RJU01JU1NfQ09VTlRcIixlW2UuU1VQX1BBQ19GUklFTkRfQ0hFQ0tVUF9MQVNUX1NIT1dOX1RJTUVfTUlMTElTX1RPX05PVz0yMzldPVwiU1VQX1BBQ19GUklFTkRfQ0hFQ0tVUF9MQVNUX1NIT1dOX1RJTUVfTUlMTElTX1RPX05PV1wiLGVbZS5TVVBfUEFDX0ZSSUVORF9DSEVDS1VQX0lNUFJFU1NJT05fQ09VTlQ9MjQwXT1cIlNVUF9QQUNfRlJJRU5EX0NIRUNLVVBfSU1QUkVTU0lPTl9DT1VOVFwiLGVbZS5TVVBfUEFDX0ZSSUVORF9DSEVDS1VQX0NMSUNLX0NPVU5UPTI0MV09XCJTVVBfUEFDX0ZSSUVORF9DSEVDS1VQX0NMSUNLX0NPVU5UXCIsZVtlLlNVUF9QQUNfRlJJRU5EX0NIRUNLVVBfRElTTUlTU19DT1VOVD0yNDJdPVwiU1VQX1BBQ19GUklFTkRfQ0hFQ0tVUF9ESVNNSVNTX0NPVU5UXCIsZVtlLlVTRV9WRVJUSUNBTF9OQVZJR0FUSU9OPTI0M109XCJVU0VfVkVSVElDQUxfTkFWSUdBVElPTlwiLGVbZS5IRVZDX0hXX0RFQ09ERVI9MjQ0XT1cIkhFVkNfSFdfREVDT0RFUlwiLGVbZS5IRVZDX1NXX0RFQ09ERVI9MjQ1XT1cIkhFVkNfU1dfREVDT0RFUlwiLGVbZS5TVVBfRkhQX0NPTlRBQ1RfU1lOQ19JTVBSRVNTSU9OX0NPVU5UPTI0Nl09XCJTVVBfRkhQX0NPTlRBQ1RfU1lOQ19JTVBSRVNTSU9OX0NPVU5UXCIsZVtlLlNVUF9GSFBfTk9USUZJQ0FUSU9OX1BFUk1JU1NJT05fSU1QUkVTU0lPTl9DT1VOVD0yNDddPVwiU1VQX0ZIUF9OT1RJRklDQVRJT05fUEVSTUlTU0lPTl9JTVBSRVNTSU9OX0NPVU5UXCIsZVtlLlNVUF9GSFBfUEhPTkVfVkVSSUZJQ0FUSU9OX0lNUFJFU1NJT05fQ09VTlQ9MjQ4XT1cIlNVUF9GSFBfUEhPTkVfVkVSSUZJQ0FUSU9OX0lNUFJFU1NJT05fQ09VTlRcIixlW2UuU1VQX0ZIUF9FTUFJTF9WRVJJRklDQVRJT05fSU1QUkVTU0lPTl9DT1VOVD0yNDldPVwiU1VQX0ZIUF9FTUFJTF9WRVJJRklDQVRJT05fSU1QUkVTU0lPTl9DT1VOVFwiLGVbZS5NRU1PUklFU19DT1VOVD0yNTBdPVwiTUVNT1JJRVNfQ09VTlRcIixlW2UuU1VQX0ZIUF9DT05UQUNUX1NZTkNfRElTTUlTU19DT1VOVD0yNTFdPVwiU1VQX0ZIUF9DT05UQUNUX1NZTkNfRElTTUlTU19DT1VOVFwiLGVbZS5TVVBfRkhQX05PVElGSUNBVElPTl9QRVJNSVNTSU9OX0RJU01JU1NfQ09VTlQ9MjUyXT1cIlNVUF9GSFBfTk9USUZJQ0FUSU9OX1BFUk1JU1NJT05fRElTTUlTU19DT1VOVFwiLGVbZS5TVVBfRkhQX1BIT05FX1ZFUklGSUNBVElPTl9ESVNNSVNTX0NPVU5UPTI1M109XCJTVVBfRkhQX1BIT05FX1ZFUklGSUNBVElPTl9ESVNNSVNTX0NPVU5UXCIsZVtlLlNVUF9GSFBfRU1BSUxfVkVSSUZJQ0FUSU9OX0RJU01JU1NfQ09VTlQ9MjU0XT1cIlNVUF9GSFBfRU1BSUxfVkVSSUZJQ0FUSU9OX0RJU01JU1NfQ09VTlRcIixlW2UuU0VSVkVSX09OTFk9MjU1XT1cIlNFUlZFUl9PTkxZXCIsZVtlLkhBU19BQ1RJVkVfU05BUENIQVRfUExVUz0yNTZdPVwiSEFTX0FDVElWRV9TTkFQQ0hBVF9QTFVTXCIsZVtlLlNVUF9GU1RfU05BUF9QTFVTX0lNUFJFU1NJT05fQ09VTlQ9MjU3XT1cIlNVUF9GU1RfU05BUF9QTFVTX0lNUFJFU1NJT05fQ09VTlRcIixlW2UuU1VQX0ZTVF9TTkFQX1BMVVNfTEFTVF9JTVBSRVNTSU9OX1RJTUVfU0VDU19UT19OT1c9MjU4XT1cIlNVUF9GU1RfU05BUF9QTFVTX0xBU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XXCIsZVtlLkNPTkZJR19URV9FTkFCTEVEPTI1OV09XCJDT05GSUdfVEVfRU5BQkxFRFwiLGVbZS5TTkFQX0tJVF9PQVVUSF9JRD0yNjBdPVwiU05BUF9LSVRfT0FVVEhfSURcIixlW2UuT1JHQU5JWkFUSU9OX1RZUEU9MjYxXT1cIk9SR0FOSVpBVElPTl9UWVBFXCIsZVtlLkNIVU5LX1VQTE9BRF9TVVBQT1JUX1JFUVVJUkVEPTI2Ml09XCJDSFVOS19VUExPQURfU1VQUE9SVF9SRVFVSVJFRFwiLGVbZS5TVVBfRlNUX0lPU19MT0NLU0NSRUVOX1dJREdFVF9JTVBSRVNTSU9OX0NPVU5UPTI2M109XCJTVVBfRlNUX0lPU19MT0NLU0NSRUVOX1dJREdFVF9JTVBSRVNTSU9OX0NPVU5UXCIsZVtlLlNVUF9GU1RfSU9TX0xPQ0tTQ1JFRU5fV0lER0VUX0xBU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XPTI2NF09XCJTVVBfRlNUX0lPU19MT0NLU0NSRUVOX1dJREdFVF9MQVNUX0lNUFJFU1NJT05fVElNRV9TRUNTX1RPX05PV1wiLGVbZS5TVVBfRlNUX0lPU19MT0NLU0NSRUVOX1dJREdFVF9DTElDS19DT1VOVD0yNjVdPVwiU1VQX0ZTVF9JT1NfTE9DS1NDUkVFTl9XSURHRVRfQ0xJQ0tfQ09VTlRcIixlW2UuU1VQX1BBQ19NWV9QUk9GSUxFX0lPU19MT0NLU0NSRUVOX1dJREdFVF9DTElDS19DT1VOVD0yNjZdPVwiU1VQX1BBQ19NWV9QUk9GSUxFX0lPU19MT0NLU0NSRUVOX1dJREdFVF9DTElDS19DT1VOVFwiLGVbZS5TVVBfUEFDX01ZX1BST0ZJTEVfSU9TX0xPQ0tTQ1JFRU5fV0lER0VUX0RJU01JU1NfQ09VTlQ9MjY3XT1cIlNVUF9QQUNfTVlfUFJPRklMRV9JT1NfTE9DS1NDUkVFTl9XSURHRVRfRElTTUlTU19DT1VOVFwiLGVbZS5TVVBfSU9TX0xPQ0tfU0NSRUVOX1dJREdFVF9FTkFCTEVEPTI2OF09XCJTVVBfSU9TX0xPQ0tfU0NSRUVOX1dJREdFVF9FTkFCTEVEXCIsZVtlLkNMT1VERlJPTlRfUE9QPTI2OV09XCJDTE9VREZST05UX1BPUFwiLGVbZS5CSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfRklSU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XPTI3MF09XCJCSUxMQk9BUkRfQ0FNUEFJR05fTE9DQUxfRklSU1RfSU1QUkVTU0lPTl9USU1FX1NFQ1NfVE9fTk9XXCIsZVtlLkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9DTElDS19DT1VOVD0yNzFdPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0NMSUNLX0NPVU5UXCIsZVtlLkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9JTlRFUkFDVElPTl9DT1VOVD0yNzJdPVwiQklMTEJPQVJEX0NBTVBBSUdOX0xPQ0FMX0lOVEVSQUNUSU9OX0NPVU5UXCIsZVtlLkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9MQVNUX0lOVEVSQUNUSU9OX1RJTUVfU0VDU19UT19OT1c9MjczXT1cIkJJTExCT0FSRF9DQU1QQUlHTl9MT0NBTF9MQVNUX0lOVEVSQUNUSU9OX1RJTUVfU0VDU19UT19OT1dcIixlW2UuU05BUF9QUklWQUNZPTI3NF09XCJTTkFQX1BSSVZBQ1lcIixlW2UuRlNUX0xPQ0tfU0NSRUVOX1dJREdFVF9CSUxMQk9BUkRfTEFVTkNIRURfRlJPTV9QVVNIPTI3NV09XCJGU1RfTE9DS19TQ1JFRU5fV0lER0VUX0JJTExCT0FSRF9MQVVOQ0hFRF9GUk9NX1BVU0hcIixlW2UuV0VCX1NDUkVFTl9XSURUSD0yNzZdPVwiV0VCX1NDUkVFTl9XSURUSFwiLGVbZS5XRUJfU0NSRUVOX0hFSUdIVD0yNzddPVwiV0VCX1NDUkVFTl9IRUlHSFRcIixlW2UuQURTX0lOVEVSRkFDRVNfSVNfTkVXX09SR0FOSVpBVElPTj0yNzhdPVwiQURTX0lOVEVSRkFDRVNfSVNfTkVXX09SR0FOSVpBVElPTlwiLGVbZS5TVVBfRkhQX1JFR0lTVEVSX1RPX1ZPVEVfQ0FNUEFJR05fTEFTVF9ESVNNSVNTX1RJTUVfTUlMTElTX1RPX05PVz0yNzldPVwiU1VQX0ZIUF9SRUdJU1RFUl9UT19WT1RFX0NBTVBBSUdOX0xBU1RfRElTTUlTU19USU1FX01JTExJU19UT19OT1dcIixlW2UuR0hFX09SR0FOSVpBVElPTj0yODBdPVwiR0hFX09SR0FOSVpBVElPTlwiLGVbZS5HSEVfUkVQT1NJVE9SWT0yODFdPVwiR0hFX1JFUE9TSVRPUllcIixlW2UuR0hFX1VTRVJfRU1BSUw9MjgyXT1cIkdIRV9VU0VSX0VNQUlMXCIsZVtlLkJVSUxEX0RFRklOSVRJT05fSUQ9MjgzXT1cIkJVSUxEX0RFRklOSVRJT05fSURcIixlW2UuQlVJTERfREVGSU5JVElPTl9OQU1FPTI4NF09XCJCVUlMRF9ERUZJTklUSU9OX05BTUVcIixlW2UuTENBX1BSSU5DSVBBTD0yODVdPVwiTENBX1BSSU5DSVBBTFwiLGVbZS5NRURJQV9QRVJGT1JNQU5DRV9DTEFTUz0yODZdPVwiTUVESUFfUEVSRk9STUFOQ0VfQ0xBU1NcIixlW2UuQ09NTVVOSVRZX0NPVU5UPTI4N109XCJDT01NVU5JVFlfQ09VTlRcIixlW2UuVVNFUl9HUk9VUD05OTk5XT1cIlVTRVJfR1JPVVBcIixlW2UuVU5SRUNPR05JWkVEPS0xXT1cIlVOUkVDT0dOSVpFRFwifShvdHx8KG90PXt9KSk7dmFyIHN0LGN0LHV0PVwidW5kZWZpbmVkXCIhPT10eXBlb2YgdXQ/dXQ6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZWxmP3NlbGY6d2luZG93O28uZGVmYXVsdC51dGlsLkxvbmchPT1pLmRlZmF1bHQmJihvLmRlZmF1bHQudXRpbC5Mb25nPWkuZGVmYXVsdCxvLmRlZmF1bHQuY29uZmlndXJlKCkpLHQuSWRUeXBlPXN0LGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOX1VOU0VUPTBdPVwiVU5LTk9XTl9VTlNFVFwiLGVbZS5VU0VSPTFdPVwiVVNFUlwiLGVbZS5TTkFQQ0hBVF9DTElFTlQ9Ml09XCJTTkFQQ0hBVF9DTElFTlRcIixlW2UuV0VCX0NMSUVOVD0zXT1cIldFQl9DTElFTlRcIixlW2UuV0VCX1NOQVBDSEFUX1VTRVI9NF09XCJXRUJfU05BUENIQVRfVVNFUlwiLGVbZS5BRF9BQ0NPVU5UPTVdPVwiQURfQUNDT1VOVFwiLGVbZS5BTV9PUkdBTklaQVRJT049Nl09XCJBTV9PUkdBTklaQVRJT05cIixlW2UuQU1fTUVNQkVSPTddPVwiQU1fTUVNQkVSXCIsZVtlLkFNX1NFU1NJT049OF09XCJBTV9TRVNTSU9OXCIsZVtlLkFNX1BST0ZJTEU9OV09XCJBTV9QUk9GSUxFXCIsZVtlLkFNX1NOQVBDSEFUX1VTRVI9MTBdPVwiQU1fU05BUENIQVRfVVNFUlwiLGVbZS5TTkFQQ0hBVF9BRFZFUlRJU0lORz0xMV09XCJTTkFQQ0hBVF9BRFZFUlRJU0lOR1wiLGVbZS5BTV9DTElFTlQ9MTJdPVwiQU1fQ0xJRU5UXCIsZVtlLkNPTkZJR19ERVZJQ0U9MTNdPVwiQ09ORklHX0RFVklDRVwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KHN0fHwodC5JZFR5cGU9c3Q9e30pKSx0LkxvZ2dpbmdUeXBlPWN0LGZ1bmN0aW9uKGUpe2VbZS5VTlNFVD0wXT1cIlVOU0VUXCIsZVtlLlNFUlZFUl9UUklHR0VSPTFdPVwiU0VSVkVSX1RSSUdHRVJcIixlW2UuQ0xJRU5UX1RSSUdHRVI9Ml09XCJDTElFTlRfVFJJR0dFUlwiLGVbZS5BTExPQ0FUSU9OPTNdPVwiQUxMT0NBVElPTlwiLGVbZS5VTlJFQ09HTklaRUQ9LTFdPVwiVU5SRUNPR05JWkVEXCJ9KGN0fHwodC5Mb2dnaW5nVHlwZT1jdD17fSkpO3ZhciBsdD17c3R1ZHlOYW1lOlwiXCIsdHJlYXRtZW50SWQ6MH0sZHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9by5kZWZhdWx0LldyaXRlci5jcmVhdGUoKSksXCJcIiE9PWUuc3R1ZHlOYW1lJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuc3R1ZHlOYW1lKSwwIT09ZS50cmVhdG1lbnRJZCYmdC51aW50MzIoMTYpLnVpbnQzMihlLnRyZWF0bWVudElkKSx2b2lkIDAhPT1lLmV4cEd1aWQmJlplKGUuZXhwR3VpZCx0LnVpbnQzMigyNikuZm9yaygpKS5sZGVsaW0oKSx0fSxwdD1mdW5jdGlvbihlKXt2YXIgdD1sKHt9LGx0KTtyZXR1cm4gdm9pZCAwIT09ZS5zdHVkeU5hbWUmJm51bGwhPT1lLnN0dWR5TmFtZT90LnN0dWR5TmFtZT1lLnN0dWR5TmFtZTp0LnN0dWR5TmFtZT1cIlwiLHZvaWQgMCE9PWUudHJlYXRtZW50SWQmJm51bGwhPT1lLnRyZWF0bWVudElkP3QudHJlYXRtZW50SWQ9ZS50cmVhdG1lbnRJZDp0LnRyZWF0bWVudElkPTAsdm9pZCAwIT09ZS5leHBHdWlkJiZudWxsIT09ZS5leHBHdWlkP3QuZXhwR3VpZD1KZShlLmV4cEd1aWQpOnQuZXhwR3VpZD12b2lkIDAsdH0sZnQ9e3ZhbHVlOlwiXCIsdHlwZTowfSxodD1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKSxcIlwiIT09ZS52YWx1ZSYmdC51aW50MzIoMTApLnN0cmluZyhlLnZhbHVlKSwwIT09ZS50eXBlJiZ0LnVpbnQzMigxNikuaW50MzIoZS50eXBlKSx0fSxndD1mdW5jdGlvbihlKXt2YXIgdD1sKHt9LGZ0KTtyZXR1cm4gdm9pZCAwIT09ZS52YWx1ZSYmbnVsbCE9PWUudmFsdWU/dC52YWx1ZT1lLnZhbHVlOnQudmFsdWU9XCJcIix2b2lkIDAhPT1lLnR5cGUmJm51bGwhPT1lLnR5cGU/dC50eXBlPWUudHlwZTp0LnR5cGU9MCx0fSxtdD17Y291bnRyeUNvZGU6XCJcIixjaXR5OlwiXCIscmVnaW9uOlwiXCJ9LHZ0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLFwiXCIhPT1lLmNvdW50cnlDb2RlJiZ0LnVpbnQzMigxMCkuc3RyaW5nKGUuY291bnRyeUNvZGUpLFwiXCIhPT1lLmNpdHkmJnQudWludDMyKDE4KS5zdHJpbmcoZS5jaXR5KSxcIlwiIT09ZS5yZWdpb24mJnQudWludDMyKDI2KS5zdHJpbmcoZS5yZWdpb24pLHR9LF90PWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30sbXQpO3JldHVybiB2b2lkIDAhPT1lLmNvdW50cnlDb2RlJiZudWxsIT09ZS5jb3VudHJ5Q29kZT90LmNvdW50cnlDb2RlPWUuY291bnRyeUNvZGU6dC5jb3VudHJ5Q29kZT1cIlwiLHZvaWQgMCE9PWUuY2l0eSYmbnVsbCE9PWUuY2l0eT90LmNpdHk9ZS5jaXR5OnQuY2l0eT1cIlwiLHZvaWQgMCE9PWUucmVnaW9uJiZudWxsIT09ZS5yZWdpb24/dC5yZWdpb249ZS5yZWdpb246dC5yZWdpb249XCJcIix0fSxFdD17dXNlck5hbWU6XCJcIix1c2VyQWdlbnRTdHJpbmc6XCJcIixvczpcIlwiLGRldmljZU5hbWU6XCJcIixicm93c2VyTmFtZTpcIlwiLGxvY2FsZTpcIlwiLG9zVmVyc2lvbjpcIlwiLGFwcFZlcnNpb246XCJcIixhcHBCdWlsZDpcIlwifSxidD1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKSxcIlwiIT09ZS51c2VyTmFtZSYmdC51aW50MzIoMTApLnN0cmluZyhlLnVzZXJOYW1lKSxcIlwiIT09ZS51c2VyQWdlbnRTdHJpbmcmJnQudWludDMyKDE4KS5zdHJpbmcoZS51c2VyQWdlbnRTdHJpbmcpLHZvaWQgMCE9PWUuZ2VvRGF0YSYmdnQoZS5nZW9EYXRhLHQudWludDMyKDI2KS5mb3JrKCkpLmxkZWxpbSgpLFwiXCIhPT1lLm9zJiZ0LnVpbnQzMigzNCkuc3RyaW5nKGUub3MpLFwiXCIhPT1lLmRldmljZU5hbWUmJnQudWludDMyKDQyKS5zdHJpbmcoZS5kZXZpY2VOYW1lKSxcIlwiIT09ZS5icm93c2VyTmFtZSYmdC51aW50MzIoNTApLnN0cmluZyhlLmJyb3dzZXJOYW1lKSxcIlwiIT09ZS5sb2NhbGUmJnQudWludDMyKDU4KS5zdHJpbmcoZS5sb2NhbGUpLFwiXCIhPT1lLm9zVmVyc2lvbiYmdC51aW50MzIoNjYpLnN0cmluZyhlLm9zVmVyc2lvbiksXCJcIiE9PWUuYXBwVmVyc2lvbiYmdC51aW50MzIoNzQpLnN0cmluZyhlLmFwcFZlcnNpb24pLFwiXCIhPT1lLmFwcEJ1aWxkJiZ0LnVpbnQzMig4Mikuc3RyaW5nKGUuYXBwQnVpbGQpLHR9LFN0PWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30sRXQpO3JldHVybiB2b2lkIDAhPT1lLnVzZXJOYW1lJiZudWxsIT09ZS51c2VyTmFtZT90LnVzZXJOYW1lPWUudXNlck5hbWU6dC51c2VyTmFtZT1cIlwiLHZvaWQgMCE9PWUudXNlckFnZW50U3RyaW5nJiZudWxsIT09ZS51c2VyQWdlbnRTdHJpbmc/dC51c2VyQWdlbnRTdHJpbmc9ZS51c2VyQWdlbnRTdHJpbmc6dC51c2VyQWdlbnRTdHJpbmc9XCJcIix2b2lkIDAhPT1lLmdlb0RhdGEmJm51bGwhPT1lLmdlb0RhdGE/dC5nZW9EYXRhPV90KGUuZ2VvRGF0YSk6dC5nZW9EYXRhPXZvaWQgMCx2b2lkIDAhPT1lLm9zJiZudWxsIT09ZS5vcz90Lm9zPWUub3M6dC5vcz1cIlwiLHZvaWQgMCE9PWUuZGV2aWNlTmFtZSYmbnVsbCE9PWUuZGV2aWNlTmFtZT90LmRldmljZU5hbWU9ZS5kZXZpY2VOYW1lOnQuZGV2aWNlTmFtZT1cIlwiLHZvaWQgMCE9PWUuYnJvd3Nlck5hbWUmJm51bGwhPT1lLmJyb3dzZXJOYW1lP3QuYnJvd3Nlck5hbWU9ZS5icm93c2VyTmFtZTp0LmJyb3dzZXJOYW1lPVwiXCIsdm9pZCAwIT09ZS5sb2NhbGUmJm51bGwhPT1lLmxvY2FsZT90LmxvY2FsZT1lLmxvY2FsZTp0LmxvY2FsZT1cIlwiLHZvaWQgMCE9PWUub3NWZXJzaW9uJiZudWxsIT09ZS5vc1ZlcnNpb24/dC5vc1ZlcnNpb249ZS5vc1ZlcnNpb246dC5vc1ZlcnNpb249XCJcIix2b2lkIDAhPT1lLmFwcFZlcnNpb24mJm51bGwhPT1lLmFwcFZlcnNpb24/dC5hcHBWZXJzaW9uPWUuYXBwVmVyc2lvbjp0LmFwcFZlcnNpb249XCJcIix2b2lkIDAhPT1lLmFwcEJ1aWxkJiZudWxsIT09ZS5hcHBCdWlsZD90LmFwcEJ1aWxkPWUuYXBwQnVpbGQ6dC5hcHBCdWlsZD1cIlwiLHR9LHl0PXtsb2dnaW5nVHlwZTowfSxUdD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PW8uZGVmYXVsdC5Xcml0ZXIuY3JlYXRlKCkpLHZvaWQgMCE9PWUuaWQmJmh0KGUuaWQsdC51aW50MzIoMTApLmZvcmsoKSkubGRlbGltKCk7Zm9yKHZhciBuPTAscj1lLnN0dWR5VHJlYXRtZW50SW5mbztuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTtkdChpLHQudWludDMyKDE4KS5mb3JrKCkpLmxkZWxpbSgpfXZvaWQgMCE9PWUucHJvcGVydGllcyYmYnQoZS5wcm9wZXJ0aWVzLHQudWludDMyKDI2KS5mb3JrKCkpLmxkZWxpbSgpLDAhPT1lLmxvZ2dpbmdUeXBlJiZ0LnVpbnQzMigzMikuaW50MzIoZS5sb2dnaW5nVHlwZSk7Zm9yKHZhciBhPTAscz1lLnNlY29uZGFyeUlkczthPHMubGVuZ3RoO2ErKyl7aT1zW2FdO2h0KGksdC51aW50MzIoNDIpLmZvcmsoKSkubGRlbGltKCl9cmV0dXJuIHR9LEl0PWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30seXQpO2lmKHQuc3R1ZHlUcmVhdG1lbnRJbmZvPVtdLHQuc2Vjb25kYXJ5SWRzPVtdLHZvaWQgMCE9PWUuaWQmJm51bGwhPT1lLmlkP3QuaWQ9Z3QoZS5pZCk6dC5pZD12b2lkIDAsdm9pZCAwIT09ZS5zdHVkeVRyZWF0bWVudEluZm8mJm51bGwhPT1lLnN0dWR5VHJlYXRtZW50SW5mbylmb3IodmFyIG49MCxyPWUuc3R1ZHlUcmVhdG1lbnRJbmZvO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO3Quc3R1ZHlUcmVhdG1lbnRJbmZvLnB1c2gocHQoaSkpfWlmKHZvaWQgMCE9PWUucHJvcGVydGllcyYmbnVsbCE9PWUucHJvcGVydGllcz90LnByb3BlcnRpZXM9U3QoZS5wcm9wZXJ0aWVzKTp0LnByb3BlcnRpZXM9dm9pZCAwLHZvaWQgMCE9PWUubG9nZ2luZ1R5cGUmJm51bGwhPT1lLmxvZ2dpbmdUeXBlP3QubG9nZ2luZ1R5cGU9ZS5sb2dnaW5nVHlwZTp0LmxvZ2dpbmdUeXBlPTAsdm9pZCAwIT09ZS5zZWNvbmRhcnlJZHMmJm51bGwhPT1lLnNlY29uZGFyeUlkcylmb3IodmFyIG89MCxhPWUuc2Vjb25kYXJ5SWRzO288YS5sZW5ndGg7bysrKXtpPWFbb107dC5zZWNvbmRhcnlJZHMucHVzaChndChpKSl9cmV0dXJuIHR9LE90PXtkaXNhYmxlTG9nZ2luZzohMX0sQXQ9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD1vLmRlZmF1bHQuV3JpdGVyLmNyZWF0ZSgpKTtmb3IodmFyIG49MCxyPWUuYWJFeHBvc3VyZURhdGE7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07VHQoaSx0LnVpbnQzMigxMCkuZm9yaygpKS5sZGVsaW0oKX1yZXR1cm4hMD09PWUuZGlzYWJsZUxvZ2dpbmcmJnQudWludDMyKDE2KS5ib29sKGUuZGlzYWJsZUxvZ2dpbmcpLHR9LEN0PWZ1bmN0aW9uKGUpe3ZhciB0PWwoe30sT3QpO2lmKHQuYWJFeHBvc3VyZURhdGE9W10sdm9pZCAwIT09ZS5hYkV4cG9zdXJlRGF0YSYmbnVsbCE9PWUuYWJFeHBvc3VyZURhdGEpZm9yKHZhciBuPTAscj1lLmFiRXhwb3N1cmVEYXRhO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO3QuYWJFeHBvc3VyZURhdGEucHVzaChJdChpKSl9cmV0dXJuIHZvaWQgMCE9PWUuZGlzYWJsZUxvZ2dpbmcmJm51bGwhPT1lLmRpc2FibGVMb2dnaW5nP3QuZGlzYWJsZUxvZ2dpbmc9ZS5kaXNhYmxlTG9nZ2luZzp0LmRpc2FibGVMb2dnaW5nPSExLHR9LE50PXt9LGt0PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPWUgaW5zdGFuY2VvZiBvLmRlZmF1bHQuUmVhZGVyP2U6bmV3IG8uZGVmYXVsdC5SZWFkZXIoZSkscj12b2lkIDA9PT10P24ubGVuOm4ucG9zK3QsaT1sKHt9LE50KTtuLnBvczxyOyl7dmFyIGE9bi51aW50MzIoKTtuLnNraXBUeXBlKDcmYSl9cmV0dXJuIGl9LFB0PVwidW5kZWZpbmVkXCIhPT10eXBlb2YgUHQ/UHQ6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZWxmP3NlbGY6d2luZG93O28uZGVmYXVsdC51dGlsLkxvbmchPT1pLmRlZmF1bHQmJihvLmRlZmF1bHQudXRpbC5Mb25nPWkuZGVmYXVsdCxvLmRlZmF1bHQuY29uZmlndXJlKCkpO3ZhciBSdD17bWV0aG9kTmFtZTpcIkJhdGNoVXBkYXRlQWJFeHBvc3VyZVwiLHNlcnZpY2U6e3NlcnZpY2VOYW1lOlwic25hcGNoYXQuYWIuZXhwb3N1cmVfc2VydmljZS5FeHBvc3VyZVNlcnZpY2VcIn0scmVxdWVzdFN0cmVhbTohMSxyZXNwb25zZVN0cmVhbTohMSxyZXF1ZXN0VHlwZTp7c2VyaWFsaXplQmluYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIEF0KHRoaXMpLmZpbmlzaCgpfX0scmVzcG9uc2VUeXBlOntkZXNlcmlhbGl6ZUJpbmFyeTpmdW5jdGlvbihlKXtyZXR1cm4gbChsKHt9LGt0KGUpKSx7dG9PYmplY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX19fTtmdW5jdGlvbiB3dChlLHQpe3JldHVybiB4ZSgpLnJwYy51bmFyeShSdCxDdChlKSx0KX12YXIgTHQsQnQ9KDAscy5jcmVhdGVDb250ZXh0KShudWxsKSxNdD1CdC5Qcm92aWRlcjt0LkN1c3RvbUV4cG9zdXJlTG9nZ2VyPUx0LGZ1bmN0aW9uKGUpe2VbZS5OT09QPTBdPVwiTk9PUFwiLGVbZS5DT05TT0xFPTFdPVwiQ09OU09MRVwifShMdHx8KHQuQ3VzdG9tRXhwb3N1cmVMb2dnZXI9THQ9e30pKTtmdW5jdGlvbiBEdChlKXtzd2l0Y2goZSl7Y2FzZSBtLkFEX0FDQ09VTlQ6cmV0dXJuIHN0LkFEX0FDQ09VTlQ7Y2FzZSBtLkFEX01PREVSQVRJT05fQUQ6Y2FzZSBtLkFNX01FTUJFUjpyZXR1cm4gc3QuQU1fTUVNQkVSO2Nhc2UgbS5BTV9DTElFTlQ6cmV0dXJuIHN0LkFNX0NMSUVOVDtjYXNlIG0uQU1fT1JHQU5JWkFUSU9OOnJldHVybiBzdC5BTV9PUkdBTklaQVRJT047Y2FzZSBtLkFNX1BST0ZJTEU6cmV0dXJuIHN0LkFNX1BST0ZJTEU7Y2FzZSBtLkFNX1NFU1NJT046cmV0dXJuIHN0LkFNX1NFU1NJT047Y2FzZSBtLkFNX1NOQVBDSEFUX1VTRVI6cmV0dXJuIHN0LkFNX1NOQVBDSEFUX1VTRVI7Y2FzZSBtLlNOQVBDSEFUX0FEVkVSVElTSU5HOnJldHVybiBzdC5TTkFQQ0hBVF9BRFZFUlRJU0lORztjYXNlIG0uVVNFUjpjYXNlIG0uVVNFUk5BTUU6cmV0dXJuIHN0LldFQl9TTkFQQ0hBVF9VU0VSO2Nhc2UgbS5XRUJfQ0xJRU5UOnJldHVybiBzdC5XRUJfQ0xJRU5UO2Nhc2UgbS5XRUJfU05BUENIQVRfVVNFUjpyZXR1cm4gc3QuV0VCX1NOQVBDSEFUX1VTRVI7Y2FzZSBtLkRFVklDRTpjYXNlIG0uSU5URVJOQUw6Y2FzZSBtLlVOUkVDT0dOSVpFRDpjYXNlIG0uVU5TRVQ6ZGVmYXVsdDpyZXR1cm4gc3QuVU5SRUNPR05JWkVEfX10LkNvbmZpZ1Byb3ZpZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29uZmlncyxuPWUuY2hpbGRyZW4scj1lLmRpc2FibGVFeHBvc3VyZUxvZ2dpbmcsaT12b2lkIDAhPT1yJiZyLG89ZS5jdXN0b21FeHBvc3VyZUxvZ2dlcixhPXZvaWQgMD09PW8/THQuTk9PUDpvLGM9ZS5lbmFibGVPdmVycmlkZXMsdT0oMCxzLnVzZU1lbW8pKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbdC5jb25maWdJZF0/ZVt0LmNvbmZpZ0lkXS5wdXNoKHQpOmVbdC5jb25maWdJZF09W3RdfSkpLGV9KSxbdF0pLGw9KDAscy51c2VNZW1vKSgoZnVuY3Rpb24oKXt2YXIgZTtpZighYylyZXR1cm4gbmV3IE1hcDt2YXIgdD0obnVsbCE9PShlPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwib3ZlcnJpZGVzXCIpKSYmdm9pZCAwIT09ZT9lOlwiXCIpLnNwbGl0KFwiLFwiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNwbGl0KFwiOlwiKX0pKTtyZXR1cm4gbmV3IE1hcCh0KX0pLFtjLHdpbmRvdy5sb2NhdGlvbi5zZWFyY2hdKTtyZXR1cm4gcy5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTXQse3ZhbHVlOntjb25maWdzOnUsb3ZlcnJpZGVzOmwsaXNFeHBvc3VyZUxvZ2dpbmdEaXNhYmxlZDppLGN1c3RvbUV4cG9zdXJlTG9nZ2VyOmF9fSxuKX07dC51c2VDb25maWdWYWx1ZT1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlKXt2YXIgdD0oMCxzLnVzZUNvbnRleHQpKEJ0KTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJDb250ZXh0IGlzIG5vdCBzZXQuIFBsZWFzZSBhZGQgYSBDb25maWdQcm92aWRlciBpbiB5b3VyIGFwcFwiKTtyZXR1cm4gdC5vdmVycmlkZXMuZ2V0KGUpfShlKSxuPWZ1bmN0aW9uKGUpe3ZhciB0PSgwLHMudXNlQ29udGV4dCkoQnQpO2lmKCF0KXRocm93IG5ldyBFcnJvcihcIkNvbnRleHQgaXMgbm90IHNldC4gUGxlYXNlIGFkZCBhIENvbmZpZ1Byb3ZpZGVyIGluIHlvdXIgYXBwXCIpO3ZhciBuPXQuY29uZmlnc1tlXTtyZXR1cm4gbj9SZShuLGUpOnZvaWQgMH0oZSkscj1mdW5jdGlvbigpe3ZhciBlPSgwLHMudXNlQ29udGV4dCkoQnQpO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIkNvbnRleHQgaXMgbm90IHNldC4gUGxlYXNlIGFkZCBhIENvbmZpZ1Byb3ZpZGVyIGluIHlvdXIgYXBwXCIpO3JldHVybiBlLmlzRXhwb3N1cmVMb2dnaW5nRGlzYWJsZWR9KCksaT1mdW5jdGlvbigpe3ZhciBlPSgwLHMudXNlQ29udGV4dCkoQnQpO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIkNvbnRleHQgaXMgbm90IHNldC4gUGxlYXNlIGFkZCBhIENvbmZpZ1Byb3ZpZGVyIGluIHlvdXIgYXBwXCIpO3JldHVybiBlLmN1c3RvbUV4cG9zdXJlTG9nZ2VyfSgpO3JldHVybigwLHMudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtpZighdCYmIXImJmZ1bmN0aW9uKGUpe3JldHVybiBCb29sZWFuKGUmJmUuc3R1ZHlOYW1lJiZlLmV4cGVyaW1lbnRJZCl9KG4pJiYhZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWUucnVpZFR5cGV8fCFlLnJ1aWRWYWx1ZX0obikpe3ZhciBlPXthYkV4cG9zdXJlRGF0YTpbe2lkOnt0eXBlOkR0KG4ucnVpZFR5cGUpLHZhbHVlOm4ucnVpZFZhbHVlfSxwcm9wZXJ0aWVzOnt1c2VyQWdlbnRTdHJpbmc6bmF2aWdhdG9yLnVzZXJBZ2VudH0sbG9nZ2luZ1R5cGU6Y3QuQ0xJRU5UX1RSSUdHRVIsc3R1ZHlUcmVhdG1lbnRJbmZvOlt7c3R1ZHlOYW1lOm4uc3R1ZHlOYW1lLHRyZWF0bWVudElkOm4uZXhwZXJpbWVudElkfV19XX07aT09PUx0LkNPTlNPTEUmJmNvbnNvbGUubG9nKFwiTG9nZ2luZyBleHBvc3VyZSBldmVudCB0byBjb25zb2xlIFwiK0pTT04uc3RyaW5naWZ5KGUpKSx3dChlKX19KSxbdCxuLHIsaV0pLHQ/e3N0cmluZ1ZhbHVlOnR9Om51bGw9PT1ufHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnZhbHVlfX0sNTk1MjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfd2VicGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBwcm9jZXNzPV9fd2VicGFja19yZXF1aXJlX18oMzQxNTUpLEJ1ZmZlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4NzY0KS5sVyxfZ2V0PV9fd2VicGFja19yZXF1aXJlX18oMjcwOTQpLF9jcmVhdGVDbGFzcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDg4MzYxKSxfY2xhc3NDYWxsQ2hlY2s9X193ZWJwYWNrX3JlcXVpcmVfXygzMzIyNyksX2Fzc2VydFRoaXNJbml0aWFsaXplZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDkyMTkxKSxfaW5oZXJpdHM9X193ZWJwYWNrX3JlcXVpcmVfXyg4NTk3MSksX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm49X193ZWJwYWNrX3JlcXVpcmVfXyg1MjcxNSksX2dldFByb3RvdHlwZU9mPV9fd2VicGFja19yZXF1aXJlX18oOTExOTMpLF93cmFwTmF0aXZlU3VwZXI9X193ZWJwYWNrX3JlcXVpcmVfXygzNjU1OCksX3RvQ29uc3VtYWJsZUFycmF5PV9fd2VicGFja19yZXF1aXJlX18oNzk4MCksX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzPV9fd2VicGFja19yZXF1aXJlX18oMzMyMyksX3JlZ2VuZXJhdG9yUnVudGltZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg3Nzk0KSxfYXN5bmNUb0dlbmVyYXRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5Mzc2KSxfc2xpY2VkVG9BcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg1Njk2KSxfZGVmaW5lUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXyg5MzApLF9leGNsdWRlZD1bXCJ0ZXh0XCJdLF9leGNsdWRlZDI9W1widGV4dFwiXSxfZXhjbHVkZWQzPVtcImNoaWxkcmVuXCJdLF9leGNsdWRlZDQ9W1wibG9jYWxlXCIsXCJtZXNzYWdlc1wiXSxfZXhjbHVkZWQ1PVtcImxvY2FsZVwiLFwibWVzc2FnZXNcIl0sX2V4Y2x1ZGVkNj1bXCJsb2NhbGVcIixcIm1lc3NhZ2VzXCJdLHQ7ZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKGUpe3ZhciB0PV9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixyPV9nZXRQcm90b3R5cGVPZihlKTtpZih0KXt2YXIgaT1fZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7bj1SZWZsZWN0LmNvbnN0cnVjdChyLGFyZ3VtZW50cyxpKX1lbHNlIG49ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsbil9fWZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKXtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKGUsdCl7dmFyIG49XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYoIW4pe2lmKEFycmF5LmlzQXJyYXkoZSl8fChuPV91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShlKSl8fHQmJmUmJlwibnVtYmVyXCI9PT10eXBlb2YgZS5sZW5ndGgpe24mJihlPW4pO3ZhciByPTAsaT1mdW5jdGlvbigpe307cmV0dXJue3M6aSxuOmZ1bmN0aW9uKCl7cmV0dXJuIHI+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW3IrK119fSxlOmZ1bmN0aW9uKGUpe3Rocm93IGV9LGY6aX19dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfXZhciBvLGE9ITAscz0hMTtyZXR1cm57czpmdW5jdGlvbigpe249bi5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9bi5uZXh0KCk7cmV0dXJuIGE9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7cz0hMCxvPWV9LGY6ZnVuY3Rpb24oKXt0cnl7YXx8bnVsbD09bi5yZXR1cm58fG4ucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IG99fX19ZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBlKXJldHVybiBfYXJyYXlMaWtlVG9BcnJheShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/X2FycmF5TGlrZVRvQXJyYXkoZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1uZXcgQXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gb3duS2V5cyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9vd25LZXlzKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7X2RlZmluZVByb3BlcnR5KGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpvd25LZXlzKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfXQ9ZnVuY3Rpb24oX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fODE1Nl9fKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgX193ZWJwYWNrX21vZHVsZXNfXz17ODYzODE6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucmVwb3J0V2ViQWN0aW9uPXZvaWQgMDt2YXIgaT1uKDExMDA1KSxvPW4oNTU5MDUpLGE9bigxOTI5KSxzPXIobig4NDc1OSkpLGM9big4MTk0MCksdT1uKDQ3Mjg2KTt0LnJlcG9ydFdlYkFjdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlKXt2YXIgdD1lLnBhZ2VUeXBlLG49ZS5hY3Rpb25OYW1lLHI9ZS5kZWVwTGlua1VybCxvPXZvaWQgMD09PXI/XCJcIjpyLGw9ZS5kZXN0aW5hdGlvbixkPXZvaWQgMD09PWw/XCJcIjpsLHA9ZS5hY3Rpb25Tb3VyY2UsZj12b2lkIDA9PT1wP1wiXCI6cCxoPWUud2ViQ2xpZW50SWQ7cmV0dXJuIGg/KHMuZGVmYXVsdC5pc1JlYWR5KCkmJnMuZGVmYXVsdC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOlwiQmxpenphcmRFdmVudHMuV2ViQWN0aW9uLlN1Y2Nlc3MuXCIuY29uY2F0KGEuUGFnZVR5cGVbdF0sXCIuXCIpLmNvbmNhdChuKSx2YWx1ZToxfSksX29iamVjdFNwcmVhZCh7d2ViU2VydmVyRXZlbnRCYXNlOigwLGkuZXh0cmFjdFdlYlNlcnZlckV2ZW50QmFzZSkodCxoKSxhY3Rpb25OYW1lOm4sZGVlcExpbmtVcmw6byxkZXN0aW5hdGlvbjpkLGFjdGlvblNvdXJjZTpmfSxmdW5jdGlvbigpe2lmKCgwLHUuaXNSdW5uaW5nT25TZXJ2ZXIpKCkpcmV0dXJue3V0bUNhbXBhaWduOlwiXCIsdXRtQ29udGVudDpcIlwiLHV0bU1lZGl1bTpcIlwiLHV0bVNvdXJjZTpcIlwiLHV0bVRlcm06XCJcIn07dmFyIGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm57dXRtQ2FtcGFpZ246ZS5nZXQoXCJ1dG1fY2FtcGFpZ25cIil8fFwiXCIsdXRtQ29udGVudDplLmdldChcInV0bV9jb250ZW50XCIpfHxcIlwiLHV0bU1lZGl1bTplLmdldChcInV0bV9tZWRpdW1cIil8fFwiXCIsdXRtU291cmNlOmUuZ2V0KFwidXRtX3NvdXJjZVwiKXx8XCJcIix1dG1UZXJtOmUuZ2V0KFwidXRtX3Rlcm1cIil8fFwiXCJ9fSgpKSk6KCgwLHUuaXNSdW5uaW5nT25EZXZFbnYpKCkmJmNvbnNvbGUuZXJyb3IoXCJNaXNzaW5nIHBhcmFtcyBmb3IgV2ViQWN0aW9uIGV2ZW50XCIpLHMuZGVmYXVsdC5pc1JlYWR5KCkmJnMuZGVmYXVsdC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOlwiQmxpenphcmRFdmVudHMuV2ViQWN0aW9uLk1pc3NpbmdQYXJhbXMuXCIuY29uY2F0KGEuUGFnZVR5cGVbdF0sXCIuXCIpLmNvbmNhdChuKSx2YWx1ZToxfSksdm9pZCgwLGMubG9nU2VudHJ5RXJyb3IpKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYkFjdGlvbiBCbGl6emFyZCBFdmVudFwiKSl9KGUpO3QmJigwLG8ucmVwb3J0U2VydmVyRXZlbnQpKFwiL3dlYi1hY3Rpb25cIix0KX19LDY2MzMzOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlcG9ydFdlYlBhZ2VTaGFyZT12b2lkIDA7dmFyIGk9bigxMTAwNSksbz1uKDU1OTA1KSxhPW4oMTkyOSkscz1yKG4oODQ3NTkpKSxjPW4oODE5NDApLHU9big0NzI4Nik7dC5yZXBvcnRXZWJQYWdlU2hhcmU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zZXNzaW9uVGltZVNlYyxuPWUuc2hhcmVTb3VyY2Uscj1lLndlYkRlc3RpbmF0aW9uc0F2YWlsYWJsZSxvPWUud2ViRGVzdGluYXRpb25zU2VlbixsPWUuZGVzdGluYXRpb25TZWxlY3RlZCxkPWUuc2hhcmVTdGF0dXMscD1lLmRlZXBMaW5rVXJsLGY9dm9pZCAwPT09cD9cIlwiOnAsaD1lLndlYlBhZ2VVcmwsZz12b2lkIDA9PT1oP1wiXCI6aCxtPWUucGFnZVR5cGUsdj1lLndlYkNsaWVudElkLF89dm9pZCAwPT09dj9cIlwiOnY7cmV0dXJuIF8/e3dlYlNlcnZlckV2ZW50QmFzZTooMCxpLmV4dHJhY3RXZWJTZXJ2ZXJFdmVudEJhc2UpKG0sXyksc2Vzc2lvblRpbWVTZWM6dC50b1N0cmluZygpLHNoYXJlU291cmNlOm4sd2ViRGVzdGluYXRpb25zQXZhaWxhYmxlOnIsd2ViRGVzdGluYXRpb25zU2VlbjpvLGRlc3RpbmF0aW9uU2VsZWN0ZWQ6bCxzaGFyZVN0YXR1czpkLGRlZXBMaW5rVXJsOmYsd2ViUGFnZVVybDpnfTooKDAsdS5pc1J1bm5pbmdPbkRldkVudikoKSYmY29uc29sZS5lcnJvcihcIk1pc3NpbmcgcGFyYW1zIGZvciBXZWJQYWdlU2hhcmUgZXZlbnRcIikscy5kZWZhdWx0LmlzUmVhZHkoKSYmcy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6XCJCbGl6emFyZEV2ZW50cy5XZWJQYWdlU2hhcmUuTWlzc2luZ1BhcmFtcy5cIi5jb25jYXQoYS5QYWdlVHlwZVttXSksdmFsdWU6MX0pLHZvaWQoMCxjLmxvZ1NlbnRyeUVycm9yKShcIk1pc3NpbmcgcGFyYW1zIGZvciBXZWJQYWdlU2hhcmUgQmxpenphcmQgRXZlbnRcIikpfShlKTt0JiYoMCxvLnJlcG9ydFNlcnZlckV2ZW50KShcIi93ZWItcGFnZS1zaGFyZVwiLHQpfX0sMjI2OTg6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucmVwb3J0V2ViUGFnZVZpZXc9dC5nZXRNaXNzaW5nUHJvcGVydGllcz10LkJMSVpaQVJEX0lEPXZvaWQgMDt2YXIgaT1uKDExMDA1KSxvPW4oNTU5MDUpLGE9bigxOTI5KSxzPW4oODE5NDApLGM9cihuKDg0NzU5KSksdT1uKDQ3Mjg2KSxsPW4oNDE0MDcpO3QuQkxJWlpBUkRfSUQ9e1RSQUNFSUQ6XCJ0cmFjZWlkXCIsV0VCQ0xJRU5USUQ6XCJ3ZWJjbGllbnRpZFwiLEVNUFRZOlwiXCJ9LHQuZ2V0TWlzc2luZ1Byb3BlcnRpZXM9ZnVuY3Rpb24oZSxuKXt2YXIgcj10LkJMSVpaQVJEX0lELkVNUFRZO3JldHVybiBufHwocj10LkJMSVpaQVJEX0lELlRSQUNFSUQpLGV8fChyKz1cIlwiPT09cj90LkJMSVpaQVJEX0lELldFQkNMSUVOVElEOlwiX1wiK3QuQkxJWlpBUkRfSUQuV0VCQ0xJRU5USUQpLHJ9LHQucmVwb3J0V2ViUGFnZVZpZXc9ZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24oZSl7dmFyIG49ZS53ZWJDbGllbnRJZCxyPWUudHJhY2VJZCxvPWUucGFnZVR5cGU7aWYobiYmcilyZXR1cm57d2ViU2VydmVyRXZlbnRCYXNlOigwLGkuZXh0cmFjdFdlYlNlcnZlckV2ZW50QmFzZSkobyxuKSx0cmFjZUlkOnIsZW5jcnlwdGVkSXBBZGRyZXNzOlwiXCIsdXRtQ2FtcGFpZ246XCJcIix1dG1Db250ZW50OlwiXCIsdXRtTWVkaXVtOlwiXCIsdXRtU291cmNlOlwiXCIsdXRtVGVybTpcIlwiLGhhc05vbmNlQ29va2llU2V0OigwLGwuaGFzTm9uY2VDb29raWVTZXQpKCl9O2lmKCgwLHUuaXNSdW5uaW5nT25EZXZFbnYpKCkmJmNvbnNvbGUuZXJyb3IoXCJNaXNzaW5nIHBhcmFtcyBmb3IgV2ViUGFnZVZpZXcgZXZlbnRcIiksYy5kZWZhdWx0LmlzUmVhZHkoKSl7Yy5kZWZhdWx0LmluY3JlbWVudCh7bWV0cmljc05hbWU6XCJCbGl6emFyZEV2ZW50cy5XZWJQYWdlVmlldy5NaXNzaW5nUGFyYW1zLlwiLmNvbmNhdChhLlBhZ2VUeXBlW29dKSx2YWx1ZToxfSk7dmFyIGQ9KDAsdC5nZXRNaXNzaW5nUHJvcGVydGllcykobixyKTtjLmRlZmF1bHQuaW5jcmVtZW50KHttZXRyaWNzTmFtZTpcIndwdi5taXNzaW5nX3Byb3BlcnR5XCIsZGltZW5zaW9uczp7cGFnZTphLlBhZ2VUeXBlW29dLG1pc3NpbmdQcm9wZXJ0aWVzOmR9fSl9KDAscy5sb2dTZW50cnlFcnJvcikoXCJNaXNzaW5nIHBhcmFtcyBmb3IgV2ViUGFnZVZpZXcgQmxpenphcmQgRXZlbnQsIFdDSUQgXCIuY29uY2F0KG4sXCIsIFRyYWNlSUQgXCIpLmNvbmNhdChyKSl9KGUpO24mJigwLG8ucmVwb3J0U2VydmVyRXZlbnQpKFwiL3dlYi1wYWdlLXZpZXdcIixuKX19LDYxODE1OmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlcG9ydFdlYlNlc3Npb249dm9pZCAwO3ZhciBpPW4oMTEwMDUpLG89big1NTkwNSksYT1uKDE5MjkpLHM9cihuKDg0NzU5KSksYz1uKDgxOTQwKSx1PW4oNDcyODYpO3QucmVwb3J0V2ViU2Vzc2lvbj1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlKXt2YXIgdD1lLnBhZ2VMb2FkVHRmYixuPXZvaWQgMD09PXQ/MDp0LHI9ZS5wYWdlTG9hZEZjcCxvPXZvaWQgMD09PXI/MDpyLGw9ZS5wYWdlTG9hZENscyxkPXZvaWQgMD09PWw/MDpsLHA9ZS5wYWdlTG9hZEZpZCxmPXZvaWQgMD09PXA/MDpwLGg9ZS5wYWdlTG9hZExjcCxnPXZvaWQgMD09PWg/MDpoLG09ZS5wYWdlVHlwZSx2PWUud2ViQ2xpZW50SWQ7cmV0dXJuIHY/e3dlYlNlcnZlckV2ZW50QmFzZTooMCxpLmV4dHJhY3RXZWJTZXJ2ZXJFdmVudEJhc2UpKG0sdikscGFnZUxvYWRUdGZiOk1hdGgucm91bmQobikudG9TdHJpbmcoKSxwYWdlTG9hZEZjcDpNYXRoLnJvdW5kKG8pLnRvU3RyaW5nKCkscGFnZUxvYWRDbHM6TWF0aC5yb3VuZCgxZTMqZCkudG9TdHJpbmcoKSxwYWdlTG9hZEZpZDpNYXRoLnJvdW5kKGYpLnRvU3RyaW5nKCkscGFnZUxvYWRMY3A6TWF0aC5yb3VuZChnKS50b1N0cmluZygpLHNlc3Npb25MZW5ndGhUaW1lcjpNYXRoLnJvdW5kKHBlcmZvcm1hbmNlLm5vdygpKS50b1N0cmluZygpfTooKDAsdS5pc1J1bm5pbmdPbkRldkVudikoKSYmY29uc29sZS5lcnJvcihcIk1pc3NpbmcgcGFyYW1zIGZvciBXZWJTZXNzaW9uIGV2ZW50XCIpLHMuZGVmYXVsdC5pc1JlYWR5KCkmJnMuZGVmYXVsdC5pbmNyZW1lbnQoe21ldHJpY3NOYW1lOlwiQmxpenphcmRFdmVudHMuV2ViU2Vzc2lvbi5NaXNzaW5nUGFyYW1zLlwiLmNvbmNhdChhLlBhZ2VUeXBlW21dKSx2YWx1ZToxfSksdm9pZCgwLGMubG9nU2VudHJ5RXJyb3IpKFwiTWlzc2luZyBwYXJhbXMgZm9yIFdlYlNlc3Npb24gQmxpenphcmQgRXZlbnRcIikpfShlKTt0JiYoMCxvLnJlcG9ydFNlcnZlckV2ZW50KShcIi93ZWItc2Vzc2lvblwiLHQpfX0sMTEwMDU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZXh0cmFjdFdlYlNlcnZlckV2ZW50QmFzZT12b2lkIDA7dmFyIHI9big0MTQwNyksaT1uKDc5OTQ0KSxvPW4oMTkyOSk7dC5leHRyYWN0V2ViU2VydmVyRXZlbnRCYXNlPWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpcIlwiLG49KDAsaS5leHRyYWN0QnJvd3NlcikoKSxhPW4uY2Fub25pY2FsVXJsLHM9bi5yZWZlcnJlcixjPW4uZGV2aWNlU2NyZWVuV2lkdGgsdT1uLmRldmljZVNjcmVlbkhlaWdodCxsPSgwLGkuZXh0cmFjdFVBKSgpLGQ9bC5icm93c2VyTmFtZSxwPXZvaWQgMD09PWQ/XCJcIjpkLGY9bC5vcyxoPXZvaWQgMD09PWY/XCJcIjpmLGc9bC5kZXZpY2VNYW51ZmFjdHVyZXIsbT12b2lkIDA9PT1nP1wiXCI6Zyx2PWwuZGV2aWNlTmFtZSxfPXZvaWQgMD09PXY/XCJcIjp2LEU9bC5kZXZpY2VUeXBlLGI9dm9pZCAwPT09RT9cIlwiOkUsUz0oMCxyLnRyeUdldEFjdGl2ZVNlc3Npb24pKCl8fFwiXCI7cmV0dXJue2Jyb3dzZXJOYW1lOnAsY2Fub25pY2FsVXJsOmEsZGV2aWNlTWFudWZhY3R1cmVyOm0sZGV2aWNlTmFtZTpfLGRldmljZVNjcmVlbkhlaWdodDp1LGRldmljZVNjcmVlbldpZHRoOmMsZGV2aWNlVHlwZTpiLGxvY2FsZTpcIlwiLG9zOmgscGFnZUlkOm8uUGFnZVR5cGVbZV0scXVlcnlQYXJhbWV0ZXJzOlwiXCIscmVmZXJyZXI6cyxzY1JlZmVycmVyOlwiXCIsc2Vzc2lvbklkOlMsc2hhcmVJZDpcIlwiLHNvdXJjZTpcIlwiLHdlYkNsaWVudElkOnR9fX0sMTM1NjA6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7aSYmIShcImdldFwiaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKXx8KGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX06ZnVuY3Rpb24oZSx0LG4scil7dm9pZCAwPT09ciYmKHI9biksZVtyXT10W25dfSksaT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gZSlcImRlZmF1bHRcIj09PW58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfHxyKHQsZSxuKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5yZXBvcnRTZXJ2ZXJFdmVudD12b2lkIDA7dmFyIG89big1NTkwNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJyZXBvcnRTZXJ2ZXJFdmVudFwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLnJlcG9ydFNlcnZlckV2ZW50fX0pLGkobigxOTI5KSx0KSxpKG4oODYzODEpLHQpLGkobig4NjM4MSksdCksaShuKDY2MzMzKSx0KSxpKG4oMjI2OTgpLHQpLGkobig2MTgxNSksdCksaShuKDkxNTc1KSx0KX0sNTU5MDU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQucmVwb3J0U2VydmVyRXZlbnQ9dm9pZCAwO3ZhciByPW4oNDcyODYpLGk9big0NTg4Nyk7dC5yZXBvcnRTZXJ2ZXJFdmVudD1mdW5jdGlvbihlLHQpe2lmKCgwLHIuaXNSdW5uaW5nT25EZXZFbnYpKCl8fCgwLHIuaXNTZWNwcm94eURvbWFpbikoKXx8KDAsci5pc1J1bm5pbmdPbkJTTG9jYWwpKCl8fCgwLHIuaXNSdW5uaW5nT25TdGFnaW5nKSgpKWNvbnNvbGUubG9nKFwiUmVwb3J0aW5nIEJsaXp6YXJkIEV2ZW50XCIsdCxlKTtlbHNle3ZhciBuPWZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUpLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIHQ9X3NsaWNlZFRvQXJyYXkoZSwyKTtyZXR1cm4gdFswXSxudWxsIT09dFsxXX0pKSl9KGUpKX0odCk7ZmV0Y2goXCJodHRwczovL3N0b3J5LnNuYXBjaGF0LmNvbS9yZXBvcnQtbWV0cmljc1wiLmNvbmNhdChlKSx7bWV0aG9kOlwicG9zdFwiLGJvZHk6bixjcmVkZW50aWFsczpcImluY2x1ZGVcIixrZWVwYWxpdmU6ITB9KS5jYXRjaCgoZnVuY3Rpb24oZSl7aS5sb2cuZXJyb3IoZSl9KSl9fX0sOTE1NzU6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQudXNlR2VuZXJhdGVXZWJQYWdlVmlld1RyYWNlSWQ9dC5nZW5lcmF0ZVRyYWNlSWQ9dm9pZCAwO3ZhciByPW4oODE1NiksaT1uKDI5OTg3KTtmdW5jdGlvbiBvKCl7cmV0dXJuKDAsaS52NCkoKX10LmdlbmVyYXRlVHJhY2VJZD1vLHQudXNlR2VuZXJhdGVXZWJQYWdlVmlld1RyYWNlSWQ9ZnVuY3Rpb24oKXt2YXIgZT0oMCxyLnVzZVN0YXRlKShvKSx0PV9zbGljZWRUb0FycmF5KGUsMiksbj10WzBdLGk9dFsxXTtyZXR1cm57dHJhY2VJZDpuLGdlbmVyYXRlTmV3VHJhY2VJZDooMCxyLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtpKG8oKSl9KSxbXSl9fX0sMTkyOTpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuLHIsaSxvLGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5XZWJBY3Rpb25EZXN0aW5hdGlvbj10LldlYkFjdGlvblNvdXJjZT10LldlYkFjdGlvbk5hbWU9dC5CbGl6emFyZEV2ZW50PXQuUGFnZVR5cGU9dm9pZCAwLChhPXQuUGFnZVR5cGV8fCh0LlBhZ2VUeXBlPXt9KSlbYS5VTlNFVD0wXT1cIlVOU0VUXCIsYVthLk5PVF9GT1VORD0xXT1cIk5PVF9GT1VORFwiLGFbYS5OT1RfQVZBSUxBQkxFPTJdPVwiTk9UX0FWQUlMQUJMRVwiLGFbYS5QUkVNSVVNX1BST0ZJTEU9M109XCJQUkVNSVVNX1BST0ZJTEVcIixhW2EuUFJFTUlVTV9TVE9SWT00XT1cIlBSRU1JVU1fU1RPUllcIixhW2EuUFJFTUlVTV9QUkVWSUVXPTVdPVwiUFJFTUlVTV9QUkVWSUVXXCIsYVthLkxFTlNfUFJPRklMRT02XT1cIkxFTlNfUFJPRklMRVwiLGFbYS5MRU5TX1BSRVZJRVc9N109XCJMRU5TX1BSRVZJRVdcIixhW2EuQUREX1VTRVI9OF09XCJBRERfVVNFUlwiLGFbYS5VU0VSX1BST0ZJTEU9OV09XCJVU0VSX1BST0ZJTEVcIixhW2EuT1VSX1NUT1JZX1NOQVA9MTBdPVwiT1VSX1NUT1JZX1NOQVBcIixhW2EuU1BPVExJR0hUPTExXT1cIlNQT1RMSUdIVFwiLGFbYS5MRU5TX0hPTUVfUEFHRT0xMl09XCJMRU5TX0hPTUVfUEFHRVwiLGFbYS5ESVNDT1ZFUl9IT01FX1BBR0U9MTNdPVwiRElTQ09WRVJfSE9NRV9QQUdFXCIsYVthLk1FRElBX1NIQVJFPTE0XT1cIk1FRElBX1NIQVJFXCIsYVthLk1BUD0xNV09XCJNQVBcIixhW2EuQ0hBVD0xNl09XCJDSEFUXCIsYVthLlBSSVZBVEVfVVNFUl9QUk9GSUxFPTE3XT1cIlBSSVZBVEVfVVNFUl9QUk9GSUxFXCIsYVthLlBVQkxJQ19VU0VSX1BST0ZJTEU9MThdPVwiUFVCTElDX1VTRVJfUFJPRklMRVwiLGFbYS5TRUFSQ0g9MTldPVwiU0VBUkNIXCIsYVthLlNOQVBDSEFUX0RPVF9DT009MjBdPVwiU05BUENIQVRfRE9UX0NPTVwiLGFbYS5TSUdOX0lOPTIxXT1cIlNJR05fSU5cIixhW2EuU0lHTl9VUD0yMl09XCJTSUdOX1VQXCIsYVthLlBBU1NXT1JEX1JFU0VUPTIzXT1cIlBBU1NXT1JEX1JFU0VUXCIsYVthLkRPV05MT0FEX01ZX0RBVEE9MjRdPVwiRE9XTkxPQURfTVlfREFUQVwiLGFbYS5VTkxPQ0tfQUNDT1VOVD0yNV09XCJVTkxPQ0tfQUNDT1VOVFwiLGFbYS5XRUJfQUNDT1VOVFM9MjZdPVwiV0VCX0FDQ09VTlRTXCIsYVthLlNOQVBDSEFUX0hPTUVfUEFHRT0yN109XCJTTkFQQ0hBVF9IT01FX1BBR0VcIixhW2EuRE9XTkxPQURfUEFHRT0yOF09XCJET1dOTE9BRF9QQUdFXCIsYVthLlNJR05JTl9BQ0NPVU5UX0lERU5USUZJRVI9MjldPVwiU0lHTklOX0FDQ09VTlRfSURFTlRJRklFUlwiLGFbYS5TSUdOSU5fUEFTU1dPUkRfQ0hBTExFTkdFPTMwXT1cIlNJR05JTl9QQVNTV09SRF9DSEFMTEVOR0VcIixhW2EuU0lHTklOX09UUF9DSEFMTEVOR0U9MzFdPVwiU0lHTklOX09UUF9DSEFMTEVOR0VcIixhW2EuU0lHTklOX1RGQV9DSEFMTEVOR0U9MzJdPVwiU0lHTklOX1RGQV9DSEFMTEVOR0VcIixhW2EuU0lHTklOX1RJVl9DSEFMTEVOR0U9MzNdPVwiU0lHTklOX1RJVl9DSEFMTEVOR0VcIixhW2EuVk9URT0zNF09XCJWT1RFXCIsYVthLlNOQVBDSEFUX1BMVVNfU1VCU0NSSVBUSU9OX1NJR05VUD0zNV09XCJTTkFQQ0hBVF9QTFVTX1NVQlNDUklQVElPTl9TSUdOVVBcIixhW2EuQkVUQT0zNl09XCJCRVRBXCIsYVthLlVOUkVDT0dOSVpFRD0tMV09XCJVTlJFQ09HTklaRURcIiwobz10LkJsaXp6YXJkRXZlbnR8fCh0LkJsaXp6YXJkRXZlbnQ9e30pKS5XRUJfUEFHRV9WSUVXX0VWRU5UPVwiV0VCX1BBR0VfVklFV19FVkVOVFwiLG8uV0VCX1BBR0VfU0hBUkVfRVZFTlQ9XCJXRUJfUEFHRV9TSEFSRV9FVkVOVFwiLG8uU1RPUllfU05BUF9WSUVXX1dFQj1cIlNUT1JZX1NOQVBfVklFV19XRUJcIixvLlNUT1JZX1NUT1JZX1ZJRVdfV0VCPVwiU1RPUllfU1RPUllfVklFV19XRUJcIixvLldFQl9TRVNTSU9OPVwiV0VCX1NFU1NJT05fRVZFTlRcIixvLldFQl9BQ1RJT049XCJXRUJfQUNUSU9OXCIsKGk9dC5XZWJBY3Rpb25OYW1lfHwodC5XZWJBY3Rpb25OYW1lPXt9KSkuT3BlbkluU25hcGNoYXRDdGE9XCJvcGVuX2luX3NuYXBjaGF0X2N0YVwiLGkuRmluZE1vcmVMZW5zZXNDbGljaz1cImZpbmRfbW9yZV9sZW5zZXNcIixpLk9wZW5XZWJDaGF0Q3RhPVwib3Blbl93ZWJfY2hhdF9jd