Accesorios
Pequeñas aplicaciones y utilidades de A Plus. Iremos añadiendo nuevas herramientas en esta página.
🧠
Trivial A Plus
Juego de preguntas de fiscal, legal y cultura general. 12 preguntas, 3 vidas, 15 s por pregunta.
⚖️
Calculadora de plazos procesales
Calcula vencimientos en días hábiles y naturales (civil, contencioso y laboral), con calendario y festivos 2025–2026.
💶
Calculadora de presupuestos
Estima los honorarios de servicios jurídicos y solicita una propuesta personalizada por correo.
🧠 Trivial A Plus
⚖️ Calculadora de plazos procesales
PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPlRyaXZpYWwgQSBQbHVzPC90aXRsZT4KPHN0eWxlPgogIDpyb290ewogICAgLS1iZzE6IzBiMWYzYTsgLS1iZzI6IzE0MzY1ZjsgLS1iZzM6IzFkNGU4OTsKICAgIC0tZ29sZDojZjBiNDI5OyAtLWdvbGQyOiNmNTllMGI7CiAgICAtLWluazojMGIxZjNhOyAtLXNvZnQ6I2M3ZDdlZTsKICAgIC0tY2FyZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOSk7IC0tY2FyZDI6cmdiYSgyNTUsMjU1LDI1NSwuMTQpOwogIH0KICAqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAgYm9keSB7CiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJnMSkgMCUsIHZhcigtLWJnMikgNTUlLCB2YXIoLS1iZzMpIDEwMCUpOwogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyMHB4OyBjb2xvcjogI2ZmZjsKICB9CiAgLndyYXAgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA3MjBweDsgfQogIC5jZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KICBoMSB7IGZvbnQtc2l6ZTogNDJweDsgZm9udC13ZWlnaHQ6IDkwMDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQogIC5zdWIgeyBjb2xvcjogdmFyKC0tc29mdCk7IGZvbnQtc2l6ZTogMTdweDsgbWFyZ2luLWJvdHRvbTogMjRweDsgfQogIC5icmFuZCB7IGRpc3BsYXk6aW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMThweDsgfQogIC5icmFuZCBpbWcgeyBoZWlnaHQ6IDY0cHg7IHdpZHRoOmF1dG87IH0KICAuYnJhbmQgLmZhbGxiYWNrIHsgd2lkdGg6IDkwcHg7IGhlaWdodDogOTBweDsgYm9yZGVyLXJhZGl1czogMjJweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1nb2xkKSx2YXIoLS1nb2xkMikpOwogICAgZGlzcGxheTpub25lOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGZvbnQtc2l6ZTogNDRweDsgfQogIC5ncmlkMiB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiAxMnB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB9CiAgLm1pbmkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsgYm9yZGVyLXJhZGl1czogMTZweDsgcGFkZGluZzogMTRweDsgfQogIC5taW5pIGIgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxNHB4OyB9CiAgLm1pbmkgc3BhbiB7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXNvZnQpOyB9CiAgLm1pbmkgLmljbyB7IGZvbnQtc2l6ZTogMjBweDsgbWFyZ2luLWJvdHRvbTogNHB4OyB9CiAgLm1vZGVzIHsgZGlzcGxheTogZ3JpZDsgZ2FwOiAxMHB4OyBtYXJnaW4tYm90dG9tOiAyMnB4OyB9CiAgLm1vZGUtYnRuIHsgYmFja2dyb3VuZDogdmFyKC0tY2FyZCk7IGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OyBjb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgcGFkZGluZzogMTRweCAxOHB4OyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC1hbGlnbjogbGVmdDsgdHJhbnNpdGlvbjogLjE1czsgfQogIC5tb2RlLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQyKTsgfQogIC5tb2RlLWJ0bi5zZWwgeyBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOyBiYWNrZ3JvdW5kOiByZ2JhKDI0MCwxODAsNDEsLjE1KTsgfQogIC5tb2RlLWJ0biBzbWFsbCB7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OiA0MDA7IGNvbG9yOiB2YXIoLS1zb2Z0KTsgZm9udC1zaXplOiAxMnB4OyBtYXJnaW4tdG9wOiAycHg7IH0KICAucGxheSB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWdvbGQpLHZhcigtLWdvbGQyKSk7CiAgICBjb2xvcjogdmFyKC0taW5rKTsgZm9udC13ZWlnaHQ6IDkwMDsgZm9udC1zaXplOiAyMHB4OyBwYWRkaW5nOiAxNnB4IDQwcHg7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogMThweDsKICAgIGN1cnNvcjogcG9pbnRlcjsgYm94LXNoYWRvdzogMCAxNnB4IDMycHggcmdiYSgwLDAsMCwuMzUpOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1czsgfQogIC5wbGF5OmhvdmVyIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfQogIC50b3BiYXIgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAudG9wYnJhbmQgaW1nIHsgaGVpZ2h0OiAyNnB4OyB3aWR0aDogYXV0bzsgb3BhY2l0eTogLjk1OyB9CiAgLmNoaXAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogOHB4IDEycHg7IH0KICAuY2hpcCAuayB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXNvZnQpOyB9CiAgLmNoaXAgLnYgeyBmb250LXdlaWdodDogOTAwOyB9CiAgLmhlYXJ0cyBzcGFuIHsgZm9udC1zaXplOiAyMnB4OyB9CiAgLmhlYXJ0LW9mZiB7IG9wYWNpdHk6IC4yNTsgZmlsdGVyOiBncmF5c2NhbGUoMSk7IH0KICAuY2F0cm93IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTogNnB4OyB9CiAgLmNhdCB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDcwMDsgcGFkZGluZzogNHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBjb2xvcjojZmZmOyB9CiAgLnRpbWVyIHsgZm9udC13ZWlnaHQ6IDkwMDsgZm9udC1zaXplOiAyNnB4OyB9CiAgLmJhciB7IGhlaWdodDogOHB4OyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC4xMik7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgLmJhciA+IGRpdiB7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZDogIzM0ZDM5OTsgdHJhbnNpdGlvbjogd2lkdGggMXMgbGluZWFyOyB9CiAgLnFib3ggeyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsgYm9yZGVyLXJhZGl1czogMjRweDsgcGFkZGluZzogMjhweDsgbWFyZ2luOiAxNHB4IDA7IG1pbi1oZWlnaHQ6IDExMHB4OwogICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IH0KICAucWJveCBoMiB7IGZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDgwMDsgbGluZS1oZWlnaHQ6IDEuMzsgfQogIC5vcHRzIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTJweDsgfQogIC5vcHQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkKTsgY29sb3I6I2ZmZjsgYm9yZGVyOm5vbmU7IGJvcmRlci1yYWRpdXM6IDE2cHg7IHBhZGRpbmc6IDE2cHggMThweDsKICAgIGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgY3Vyc29yOiBwb2ludGVyOyB0ZXh0LWFsaWduOiBsZWZ0OyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjEwcHg7CiAgICB0cmFuc2l0aW9uOiAuMTJzOyB9CiAgLm9wdDpob3Zlcjpub3QoOmRpc2FibGVkKSB7IGJhY2tncm91bmQ6IHZhcigtLWNhcmQyKTsgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgfQogIC5vcHQgLmxldHRlciB7IGZsZXg6MCAwIGF1dG87IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IGJvcmRlci1yYWRpdXM6IDlweDsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMjgpOwogICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGZvbnQtd2VpZ2h0OiA5MDA7IGZvbnQtc2l6ZTogMTRweDsgfQogIC5vcHQub2sgeyBiYWNrZ3JvdW5kOiAjMTBiOTgxICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6IDAgMCAwIDJweCAjNmVlN2I3OyB9CiAgLm9wdC5iYWQgeyBiYWNrZ3JvdW5kOiAjZjQzZjVlICFpbXBvcnRhbnQ7IH0KICAub3B0LmRpbSB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsLjA1KTsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjQpOyB9CiAgLmZvb3QgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7IH0KICAuZmIgeyBmb250LXdlaWdodDogOTAwOyBmb250LXNpemU6IDE4cHg7IH0KICAubmV4dCB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZyx2YXIoLS1nb2xkKSx2YXIoLS1nb2xkMikpOyBjb2xvcjogdmFyKC0taW5rKTsgZm9udC13ZWlnaHQ6IDkwMDsgYm9yZGVyOm5vbmU7CiAgICBwYWRkaW5nOiAxMnB4IDI4cHg7IGJvcmRlci1yYWRpdXM6IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLDAsMCwuMjUpOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1czsgfQogIC5uZXh0OmhvdmVyIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfQogIC5zY29yZS1ib3ggeyBkaXNwbGF5OmlubGluZS1ibG9jazsgYm9yZGVyLXJhZGl1czogMjZweDsgcGFkZGluZzogMjJweCA0MHB4OyBtYXJnaW46IDE4cHggMDsgYm94LXNoYWRvdzogMCAyMHB4IDQwcHggcmdiYSgwLDAsMCwuMzUpOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWdvbGQpLHZhcigtLWdvbGQyKSk7IH0KICAuc2NvcmUtYm94IC5rIHsgY29sb3I6IHJnYmEoMTEsMzEsNTgsLjcpOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDEycHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHg7IH0KICAuc2NvcmUtYm94IC52IHsgY29sb3I6IHZhcigtLWluayk7IGZvbnQtd2VpZ2h0OiA5MDA7IGZvbnQtc2l6ZTogNThweDsgfQogIC5zdGF0czMgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsMWZyKTsgZ2FwOiAxMnB4OyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgLnN0YXRzMyAubWluaSBiIHsgZm9udC1zaXplOiAyMnB4OyB9CiAgLmZvb3Rub3RlIHsgY29sb3I6IHZhcigtLXNvZnQpOyBmb250LXNpemU6IDEycHg7IG1hcmdpbi10b3A6IDIycHg7IG9wYWNpdHk6IC44OyB9CiAgLmhpZGUgeyBkaXNwbGF5OiBub25lOyB9CiAgQG1lZGlhIChtYXgtd2lkdGg6IDU2MHB4KXsgLm9wdHN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0gaDF7Zm9udC1zaXplOjM0cHh9IH0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0id3JhcCI+CgogIDwhLS0gSU5JQ0lPIC0tPgogIDxkaXYgaWQ9ImluaWNpbyIgY2xhc3M9ImNlbnRlciI+CiAgICA8ZGl2IGNsYXNzPSJicmFuZCI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL3d3dy5hcGx1c2FlLmVzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0L2FwbHVzLWxvZ290aXBvLXdoaXRlLndlYnAiIGFsdD0iQSBQbHVzIgogICAgICAgICAgIG9uZXJyb3I9InRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSc7dGhpcy5uZXh0RWxlbWVudFNpYmxpbmcuc3R5bGUuZGlzcGxheT0naW5saW5lLWZsZXgnOyI+CiAgICAgIDxkaXYgY2xhc3M9ImZhbGxiYWNrIj7wn6egPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxoMT5Ucml2aWFsIEEmbmJzcDtQbHVzPC9oMT4KICAgIDxwIGNsYXNzPSJzdWIiPjEyIHByZWd1bnRhcyDCtyAzIHZpZGFzIMK3IDE1cyBwb3IgcHJlZ3VudGEuIMK/Q3XDoW50byBzYWJlIGVsIGVxdWlwbz88L3A+CiAgICA8ZGl2IGNsYXNzPSJncmlkMiI+CiAgICAgIDxkaXYgY2xhc3M9Im1pbmkiPjxkaXYgY2xhc3M9ImljbyI+4o+x77iPPC9kaXY+PGI+UmVzcG9uZGUgcsOhcGlkbzwvYj48c3Bhbj5Nw6FzIHRpZW1wbyA9IG3DoXMgcHVudG9zPC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJtaW5pIj48ZGl2IGNsYXNzPSJpY28iPuKaoTwvZGl2PjxiPkVuY2FkZW5hIHJhY2hhczwvYj48c3Bhbj5Cb251cyBwb3IgYWNpZXJ0b3Mgc2VndWlkb3M8L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Im1pbmkiPjxkaXYgY2xhc3M9ImljbyI+4p2k77iPPC9kaXY+PGI+MyB2aWRhczwvYj48c3Bhbj5DdWlkYWRvIGNvbiBsb3MgZmFsbG9zPC9zcGFuPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJtaW5pIj48ZGl2IGNsYXNzPSJpY28iPvCfj4Y8L2Rpdj48Yj5CYXRlIHR1IHLDqWNvcmQ8L2I+PHNwYW4+U3VwZXJhIHR1IHB1bnR1YWNpw7NuPC9zcGFuPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtb2RlcyIgaWQ9Im1vZGVzIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9kZS1idG4gc2VsIiBkYXRhLW1vZGU9Im1peCI+8J+OsiBNaXh0byA8c21hbGw+RmlzY2FsL2xlZ2FsICsgY3VsdHVyYSBnZW5lcmFsPC9zbWFsbD48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9kZS1idG4iIGRhdGEtbW9kZT0iYXBsdXMiPuKalu+4jyBTb2xvIEEgUGx1cyA8c21hbGw+RmlzY2FsLCBsZWdhbCB5IHNvYnJlIGxhIGZpcm1hPC9zbWFsbD48L2J1dHRvbj4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9kZS1idG4iIGRhdGEtbW9kZT0iZ2VuZXJhbCI+8J+MjSBTb2xvIGN1bHR1cmEgZ2VuZXJhbCA8c21hbGw+R2VvZ3JhZsOtYSwgY2llbmNpYSwgY2luZS4uLjwvc21hbGw+PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxidXR0b24gY2xhc3M9InBsYXkiIG9uY2xpY2s9ImVtcGV6YXIoKSI+4pa2IMKhSlVHQVIhPC9idXR0b24+CiAgICA8ZGl2IGNsYXNzPSJmb290bm90ZSI+QSBQbHVzIEFib2dhZG9zIHkgRWNvbm9taXN0YXM8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSBKVUVHTyAtLT4KICA8ZGl2IGlkPSJqdWVnbyIgY2xhc3M9ImhpZGUiPgogICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcCI+PGRpdiBjbGFzcz0iayI+UHJlZ3VudGE8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0icHJvZyI+MS8xMjwvZGl2PjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYXJ0cyIgaWQ9InZpZGFzIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHgiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJyYW5kIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cuYXBsdXNhZS5lcy93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC9hcGx1cy1sb2dvdGlwby13aGl0ZS53ZWJwIiBhbHQ9IkEgUGx1cyIgb25lcnJvcj0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJyI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcCIgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxkaXYgY2xhc3M9ImsiPuKtkCBQdW50b3M8L2Rpdj48ZGl2IGNsYXNzPSJ2IiBpZD0icHVudG9zIiBzdHlsZT0iY29sb3I6dmFyKC0tZ29sZCkiPjA8L2Rpdj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhdHJvdyI+CiAgICAgIDxzcGFuIGNsYXNzPSJjYXQiIGlkPSJjYXQiPkNhdGVnb3LDrWE8L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lciIgaWQ9InRpZW1wbyI+MTU8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImJhciI+PGRpdiBpZD0iYmFyZmlsbCIgc3R5bGU9IndpZHRoOjEwMCUiPjwvZGl2PjwvZGl2PgogICAgPGRpdiBjbGFzcz0icWJveCI+PGgyIGlkPSJwcmVnIj4uLi48L2gyPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ib3B0cyIgaWQ9Im9wdHMiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZm9vdCBoaWRlIiBpZD0iZm9vdCI+CiAgICAgIDxkaXYgY2xhc3M9ImZiIiBpZD0iZmIiPjwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJuZXh0IiBpZD0ibmV4dCIgb25jbGljaz0ic2lndWllbnRlKCkiPlNpZ3VpZW50ZSDihpI8L2J1dHRvbj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIEZJTiAtLT4KICA8ZGl2IGlkPSJmaW4iIGNsYXNzPSJoaWRlIGNlbnRlciI+CiAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6NzJweCIgaWQ9ImZpbkVtb2ppIj7wn46JPC9kaXY+CiAgICA8aDEgaWQ9ImZpblRpdHVsbyIgc3R5bGU9ImZvbnQtc2l6ZTozNHB4Ij7CoU11eSBiaWVuITwvaDE+CiAgICA8ZGl2IGNsYXNzPSJzY29yZS1ib3giPjxkaXYgY2xhc3M9ImsiPlB1bnR1YWNpw7NuPC9kaXY+PGRpdiBjbGFzcz0idiIgaWQ9ImZpblB1bnRvcyI+MDwvZGl2PjwvZGl2PgogICAgPGRpdiBjbGFzcz0ic3RhdHMzIj4KICAgICAgPGRpdiBjbGFzcz0ibWluaSBjZW50ZXIiPjxiIGlkPSJmaW5BY2llcnRvcyIgc3R5bGU9ImNvbG9yOiMzNGQzOTkiPjAvMTI8L2I+PHNwYW4+QWNpZXJ0b3M8L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Im1pbmkgY2VudGVyIj48YiBpZD0iZmluUGN0IiBzdHlsZT0iY29sb3I6dmFyKC0tZ29sZCkiPjAlPC9iPjxzcGFuPkFjaWVydG88L3NwYW4+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Im1pbmkgY2VudGVyIj48YiBpZD0iZmluUmFjaGEiIHN0eWxlPSJjb2xvcjojZmI5MjNjIj4w4pqhPC9iPjxzcGFuPk1lam9yIHJhY2hhPC9zcGFuPjwvZGl2PgogICAgPC9kaXY+CiAgICA8YnV0dG9uIGNsYXNzPSJwbGF5IiBvbmNsaWNrPSJlbXBlemFyKCkiPuKGuyBKdWdhciBvdHJhIHZlejwvYnV0dG9uPgogICAgPGRpdiBjbGFzcz0iZm9vdG5vdGUiPkEgUGx1cyBBYm9nYWRvcyB5IEVjb25vbWlzdGFzPC9kaXY+CiAgPC9kaXY+Cgo8L2Rpdj4KCjxzY3JpcHQ+CmNvbnN0IFRJRU1QTyA9IDE1LCBWSURBUyA9IDMsIE5VTSA9IDEyOwpjb25zdCBBUExVUyA9IFsKICB7IGNhdDoiRmlzY2FsIiwgcToiwr9RdcOpIHNpZ25pZmljYW4gbGFzIHNpZ2xhcyBJUlBGPyIsIG86WyJJbXB1ZXN0byBzb2JyZSBSZW50YXMgUMO6YmxpY2FzIEZpbmFuY2llcmFzIiwiSW1wdWVzdG8gc29icmUgbGEgUmVudGEgZGUgbGFzIFBlcnNvbmFzIEbDrXNpY2FzIiwiSW1wdWVzdG8gUmVkdWNpZG8gZGUgUGF0cmltb25pbyBGYW1pbGlhciIsIsONbmRpY2UgZGUgUmVjYXVkYWNpw7NuIFDDumJsaWNhIEZpc2NhbCJdLCByOjEgfSwKICB7IGNhdDoiRmlzY2FsIiwgcToiwr9DdcOhbCBlcyBlbCB0aXBvIGdlbmVyYWwgZGVsIElWQSBlbiBFc3Bhw7FhPyIsIG86WyIxNiUiLCIxOCUiLCIyMSUiLCIyMyUiXSwgcjoyIH0sCiAgeyBjYXQ6IkZpc2NhbCIsIHE6IsK/Q3XDoWwgZXMgZWwgdGlwbyBzdXBlcnJlZHVjaWRvIGRlbCBJVkE/IiwgbzpbIjAlIiwiNCUiLCI3JSIsIjEwJSJdLCByOjEgfSwKICB7IGNhdDoiRmlzY2FsIiwgcToiwr9DdcOhbCBlcyBlbCB0aXBvIGdlbmVyYWwgZGVsIEltcHVlc3RvIHNvYnJlIFNvY2llZGFkZXM/IiwgbzpbIjIwJSIsIjI1JSIsIjI4JSIsIjMwJSJdLCByOjEgfSwKICB7IGNhdDoiRmlzY2FsIiwgcToiwr9RdcOpIG1vZGVsbyBlcyBsYSBhdXRvbGlxdWlkYWNpw7NuIHRyaW1lc3RyYWwgZGVsIElWQT8iLCBvOlsiTW9kZWxvIDEwMCIsIk1vZGVsbyAxMzAiLCJNb2RlbG8gMzAzIiwiTW9kZWxvIDM5MCJdLCByOjIgfSwKICB7IGNhdDoiRmlzY2FsIiwgcToiwr9DdcOhbCBlcyBlbCBwbGF6byBnZW5lcmFsIGRlIHByZXNjcmlwY2nDs24gdHJpYnV0YXJpYT8iLCBvOlsiMiBhw7FvcyIsIjQgYcOxb3MiLCI1IGHDsW9zIiwiMTAgYcOxb3MiXSwgcjoxIH0sCiAgeyBjYXQ6IkZpc2NhbCIsIHE6IsK/UXXDqSBpbXB1ZXN0byBncmF2YSBsYXMgaGVyZW5jaWFzIHkgZG9uYWNpb25lcz8iLCBvOlsiSVZBIiwiSVNEIiwiSUFFIiwiSVRQIl0sIHI6MSB9LAogIHsgY2F0OiJGaXNjYWwiLCBxOiLCv0VuIHF1w6kgYm9sZXTDrW4gc2UgcHVibGljYW4gbGFzIGxleWVzIGVzdGF0YWxlcz8iLCBvOlsiQk9STUUiLCJCT0UiLCJCT1AiLCJET1VFIl0sIHI6MSB9LAogIHsgY2F0OiJMZWdhbCIsIHE6IsK/Q3XDoWwgZXMgZWwgdHJpYnVuYWwgZGUgbWF5b3IgaW5zdGFuY2lhIG9yZGluYXJpYSBlbiBFc3Bhw7FhPyIsIG86WyJBdWRpZW5jaWEgTmFjaW9uYWwiLCJUcmlidW5hbCBDb25zdGl0dWNpb25hbCIsIlRyaWJ1bmFsIFN1cHJlbW8iLCJUcmlidW5hbCBkZSBDdWVudGFzIl0sIHI6MiB9LAogIHsgY2F0OiJMZWdhbCIsIHE6IsK/Q3XDoWwgZXMgZWwgw7NyZ2FubyBtw6F4aW1vIGRlIGdvYmllcm5vIGRlIHVuYSBTLkEuPyIsIG86WyJDb25zZWpvIGRlIEFkbWluaXN0cmFjacOzbiIsIkp1bnRhIEdlbmVyYWwgZGUgQWNjaW9uaXN0YXMiLCJDb21pdMOpIGRlIERpcmVjY2nDs24iLCJTaW5kaWNhdHVyYSJdLCByOjEgfSwKICB7IGNhdDoiTGVnYWwiLCBxOiLCv1F1w6kgcsOpZ2ltZW4gZGUgbGEgU2VndXJpZGFkIFNvY2lhbCBjdWJyZSBhIGxvcyBhdXTDs25vbW9zPyIsIG86WyJSw6lnaW1lbiBHZW5lcmFsIiwiUkVUQSIsIlLDqWdpbWVuIEFncmFyaW8iLCJDbGFzZXMgUGFzaXZhcyJdLCByOjEgfSwKICB7IGNhdDoiTGVnYWwiLCBxOiLCv0N1w6FudG9zIGHDsW9zIGRlYmVuIGNvbnNlcnZhcnNlIGxvcyBsaWJyb3MgY29udGFibGVzIChDLiBDb21lcmNpbyk/IiwgbzpbIjMiLCI2IiwiMTAiLCIxNSJdLCByOjEgfSwKICB7IGNhdDoiQSBQbHVzIiwgcToiwr9RdcOpIHNpZ25pZmljYW4gbGFzIHNpZ2xhcyBTT0NJTUk/IiwgbzpbIlNvY2llZGFkIENvb3BlcmF0aXZhIGRlIEludmVyc2nDs24gTW9iaWxpYXJpYSIsIlNvY2llZGFkIEFuw7NuaW1hIENvdGl6YWRhIGRlIEludmVyc2nDs24gZW4gZWwgTWVyY2FkbyBJbm1vYmlsaWFyaW8iLCJTb2NpZWRhZCBDaXZpbCBkZSBJbnZlcnNpw7NuIE1peHRhIiwiU2lzdGVtYSBPZmljaWFsIGRlIEPDs21wdXRvIGRlIEludmVyc2lvbmVzIl0sIHI6MSB9LAogIHsgY2F0OiJBIFBsdXMiLCBxOiJBIFBsdXMgZXMgdW5hIGZpcm1hIGRlLi4uIiwgbzpbIkFycXVpdGVjdHVyYSBlIEluZ2VuaWVyw61hIiwiQWJvZ2Fkb3MgeSBFY29ub21pc3RhcyIsIk1hcmtldGluZyB5IFB1YmxpY2lkYWQiLCJDb25zdWx0b3LDrWEgdGVjbm9sw7NnaWNhIl0sIHI6MSB9LApdOwpjb25zdCBHRU5FUkFMID0gWwogIHsgY2F0OiJHZW9ncmFmw61hIiwgcToiwr9DdcOhbCBlcyBlbCByw61vIG3DoXMgbGFyZ28gZGVsIG11bmRvPyIsIG86WyJOaWxvIiwiQW1hem9uYXMiLCJZYW5ndHPDqSIsIk1pc2lzaXBpIl0sIHI6MSB9LAogIHsgY2F0OiJHZW9ncmFmw61hIiwgcToiwr9FbiBxdcOpIHBhw61zIGVzdMOhIE1hY2h1IFBpY2NodT8iLCBvOlsiQm9saXZpYSIsIkNoaWxlIiwiUGVyw7oiLCJFY3VhZG9yIl0sIHI6MiB9LAogIHsgY2F0OiJHZW9ncmFmw61hIiwgcToiwr9DdcOhbCBlcyBsYSBjYXBpdGFsIGRlIEF1c3RyYWxpYT8iLCBvOlsiU8OtZG5leSIsIk1lbGJvdXJuZSIsIkNhbmJlcnJhIiwiUGVydGgiXSwgcjoyIH0sCiAgeyBjYXQ6Ikdlb2dyYWbDrWEiLCBxOiLCv0N1w6FudGFzIGNvbXVuaWRhZGVzIGF1dMOzbm9tYXMgdGllbmUgRXNwYcOxYT8iLCBvOlsiMTUiLCIxNyIsIjE5IiwiMjEiXSwgcjoxIH0sCiAgeyBjYXQ6Ikhpc3RvcmlhIiwgcToiwr9FbiBxdcOpIGHDsW8gY2F5w7MgZWwgTXVybyBkZSBCZXJsw61uPyIsIG86WyIxOTg1IiwiMTk4OSIsIjE5OTEiLCIxOTkzIl0sIHI6MSB9LAogIHsgY2F0OiJIaXN0b3JpYSIsIHE6IsK/UXVpw6luIHBpbnTDsyBsYSBDYXBpbGxhIFNpeHRpbmE/IiwgbzpbIkRhIFZpbmNpIiwiUmFmYWVsIiwiTWlndWVsIMOBbmdlbCIsIkRvbmF0ZWxsbyJdLCByOjIgfSwKICB7IGNhdDoiSGlzdG9yaWEiLCBxOiLCv0VuIHF1w6kgYcOxbyBsbGVnw7MgQ29sw7NuIGEgQW3DqXJpY2E/IiwgbzpbIjE0OTAiLCIxNDkyIiwiMTQ5OCIsIjE1MDAiXSwgcjoxIH0sCiAgeyBjYXQ6IkNpZW5jaWEiLCBxOiLCv0N1w6FsIGVzIGVsIGVsZW1lbnRvIG3DoXMgYWJ1bmRhbnRlIGRlbCB1bml2ZXJzbz8iLCBvOlsiT3jDrWdlbm8iLCJDYXJib25vIiwiSGVsaW8iLCJIaWRyw7NnZW5vIl0sIHI6MyB9LAogIHsgY2F0OiJDaWVuY2lhIiwgcToiwr9DdcOhbnRvcyBodWVzb3MgdGllbmUgZWwgY3VlcnBvIGh1bWFubyBhZHVsdG8/IiwgbzpbIjE5NiIsIjIwNiIsIjIxNiIsIjIyNiJdLCByOjEgfSwKICB7IGNhdDoiQ2llbmNpYSIsIHE6IsK/UXXDqSBwbGFuZXRhIGVzIGVsIG3DoXMgY2VyY2FubyBhbCBTb2w/IiwgbzpbIlZlbnVzIiwiTWFydGUiLCJNZXJjdXJpbyIsIlRpZXJyYSJdLCByOjIgfSwKICB7IGNhdDoiQ2llbmNpYSIsIHE6IsK/UXXDqSBnYXMgYWJzb3JiZW4gbGFzIHBsYW50YXMgZW4gbGEgZm90b3PDrW50ZXNpcz8iLCBvOlsiT3jDrWdlbm8iLCJOaXRyw7NnZW5vIiwiQ0/igoIiLCJIaWRyw7NnZW5vIl0sIHI6MiB9LAogIHsgY2F0OiJDaW5lIHkgVFYiLCBxOiLCv1F1acOpbiBkaXJpZ2nDsyAnUHVscCBGaWN0aW9uJz8iLCBvOlsiU2NvcnNlc2UiLCJUYXJhbnRpbm8iLCJTcGllbGJlcmciLCJOb2xhbiJdLCByOjEgfSwKICB7IGNhdDoiQ2luZSB5IFRWIiwgcToiwr9Dw7NtbyBzZSBsbGFtYSBlbCBiYXIgZGUgJ0xvcyBTaW1wc29uJz8iLCBvOlsiRWwgUGF0aXRvIiwiVGFiZXJuYSBkZSBNb2UiLCJFbCBCYXJyaWwiLCJEdWZmIl0sIHI6MSB9LAogIHsgY2F0OiJEZXBvcnRlcyIsIHE6IsK/Q2FkYSBjdcOhbnRvcyBhw7FvcyBzb24gbG9zIEpKT08gZGUgdmVyYW5vPyIsIG86WyIyIiwiMyIsIjQiLCI1Il0sIHI6MiB9LAogIHsgY2F0OiJEZXBvcnRlcyIsIHE6IsK/UXXDqSBwYcOtcyBoYSBnYW5hZG8gbcOhcyBNdW5kaWFsZXMgZGUgZsO6dGJvbD8iLCBvOlsiQWxlbWFuaWEiLCJBcmdlbnRpbmEiLCJJdGFsaWEiLCJCcmFzaWwiXSwgcjozIH0sCiAgeyBjYXQ6IkN1bHR1cmEiLCBxOiLCv1F1acOpbiBlc2NyaWJpw7MgJ0RvbiBRdWlqb3RlIGRlIGxhIE1hbmNoYSc/IiwgbzpbIkxvcGUgZGUgVmVnYSIsIkNlcnZhbnRlcyIsIlF1ZXZlZG8iLCJHw7NuZ29yYSJdLCByOjEgfSwKICB7IGNhdDoiQ3VsdHVyYSIsIHE6IsK/Q3XDoWwgZXMgZWwgaWRpb21hIG3DoXMgaGFibGFkbyBkZWwgbXVuZG8/IiwgbzpbIkluZ2zDqXMiLCJFc3Bhw7FvbCIsIkNoaW5vIG1hbmRhcsOtbiIsIkhpbmRpIl0sIHI6MiB9LAogIHsgY2F0OiJDdWx0dXJhIiwgcToiwr9DdcOhbnRhcyBwYXRhcyB0aWVuZSB1bmEgYXJhw7FhPyIsIG86WyI2IiwiOCIsIjEwIiwiMTIiXSwgcjoxIH0sCiAgeyBjYXQ6Ik3DunNpY2EiLCBxOiLCv0RlIHF1w6kgcGHDrXMgZXMgbGEgYmFuZGEgUXVlZW4/IiwgbzpbIkVFLiBVVS4iLCJSZWlubyBVbmlkbyIsIkF1c3RyYWxpYSIsIkNhbmFkw6EiXSwgcjoxIH0sCiAgeyBjYXQ6IkNvbWlkYSIsIHE6IsK/RGUgcXXDqSBwYcOtcyBlcyBvcmlnaW5hcmlhIGxhIHBpenphPyIsIG86WyJGcmFuY2lhIiwiRXNwYcOxYSIsIkl0YWxpYSIsIkdyZWNpYSJdLCByOjIgfSwKXTsKY29uc3QgQ09MT1JFUyA9IHsKICAiRmlzY2FsIjoiIzBlNzQ5MCIsIkxlZ2FsIjoiI2I0NTMwOSIsIkEgUGx1cyI6IiMxZDRlODkiLAogICJHZW9ncmFmw61hIjoiIzEwYjk4MSIsIkhpc3RvcmlhIjoiI2Q5NzcwNiIsIkNpZW5jaWEiOiIjMDg5MWIyIiwKICAiQ2luZSB5IFRWIjoiIzkzMzNlYSIsIkRlcG9ydGVzIjoiI2VhNTgwYyIsIkN1bHR1cmEiOiIjNGY0NmU1IiwKICAiTcO6c2ljYSI6IiNlMTFkNDgiLCJDb21pZGEiOiIjNjVhMzBkIgp9OwpsZXQgbW9kbyA9ICJtaXgiLCBwcmVndW50YXMgPSBbXSwgaWR4ID0gMCwgcHVudG9zID0gMCwgcmFjaGEgPSAwLCBtZWpvclJhY2hhID0gMCwKICAgIHZpZGFzID0gVklEQVMsIHRpZW1wbyA9IFRJRU1QTywgYmxvcXVlYWRvID0gZmFsc2UsIGFjaWVydG9zID0gMCwgdGltZXIgPSBudWxsOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kZS1idG4nKS5mb3JFYWNoKGIgPT4gYi5vbmNsaWNrID0gKCkgPT4gewogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2RlLWJ0bicpLmZvckVhY2goeCA9PiB4LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbCcpKTsKICBiLmNsYXNzTGlzdC5hZGQoJ3NlbCcpOyBtb2RvID0gYi5kYXRhc2V0Lm1vZGU7Cn0pOwpmdW5jdGlvbiBiYXJhamFyKGEpeyBhPVsuLi5hXTsgZm9yKGxldCBpPWEubGVuZ3RoLTE7aT4wO2ktLSl7Y29uc3Qgaj1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGkrMSkpO1thW2ldLGFbal1dPVthW2pdLGFbaV1dO30gcmV0dXJuIGE7IH0KZnVuY3Rpb24gcG9vbCgpewogIGlmIChtb2RvID09PSAiYXBsdXMiKSByZXR1cm4gQVBMVVM7CiAgaWYgKG1vZG8gPT09ICJnZW5lcmFsIikgcmV0dXJuIEdFTkVSQUw7CiAgcmV0dXJuIFsuLi5BUExVUywgLi4uR0VORVJBTF07Cn0KZnVuY3Rpb24gZW1wZXphcigpewogIHByZWd1bnRhcyA9IGJhcmFqYXIocG9vbCgpKS5zbGljZSgwLCBOVU0pOwogIGlkeCA9IDA7IHB1bnRvcyA9IDA7IHJhY2hhID0gMDsgbWVqb3JSYWNoYSA9IDA7IHZpZGFzID0gVklEQVM7IGFjaWVydG9zID0gMDsKICBzaG93KCdqdWVnbycpOyBwaW50YXIoKTsKfQpmdW5jdGlvbiBzaG93KGlkKXsgWydpbmljaW8nLCdqdWVnbycsJ2ZpbiddLmZvckVhY2goeCA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4KS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlJywgeCE9PWlkKSk7IH0KZnVuY3Rpb24gcGludGFyKCl7CiAgY29uc3QgcCA9IHByZWd1bnRhc1tpZHhdOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9nJykudGV4dENvbnRlbnQgPSAoaWR4KzEpKycvJytwcmVndW50YXMubGVuZ3RoOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwdW50b3MnKS50ZXh0Q29udGVudCA9IHB1bnRvczsKICBjb25zdCBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhdCcpOwogIGMudGV4dENvbnRlbnQgPSBwLmNhdDsgYy5zdHlsZS5iYWNrZ3JvdW5kID0gQ09MT1JFU1twLmNhdF0gfHwgJyMxZDRlODknOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcmVnJykudGV4dENvbnRlbnQgPSBwLnE7CiAgbGV0IHZoPScnOyBmb3IobGV0IGs9MDtrPFZJREFTO2srKykgdmggKz0gJzxzcGFuIGNsYXNzPSInKyhrPHZpZGFzPycnOidoZWFydC1vZmYnKSsnIj7inaTvuI88L3NwYW4+JzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlkYXMnKS5pbm5lckhUTUwgPSB2aDsKICBjb25zdCBvcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29wdHMnKTsgb3B0cy5pbm5lckhUTUwgPSAnJzsKICBwLm8uZm9yRWFjaCgob3AsaykgPT4gewogICAgY29uc3QgYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgYi5jbGFzc05hbWUgPSAnb3B0JzsKICAgIGIuaW5uZXJIVE1MID0gJzxzcGFuIGNsYXNzPSJsZXR0ZXIiPicrU3RyaW5nLmZyb21DaGFyQ29kZSg2NStrKSsnPC9zcGFuPicrb3A7CiAgICBiLm9uY2xpY2sgPSAoKSA9PiByZXNwb25kZXIoayk7CiAgICBvcHRzLmFwcGVuZENoaWxkKGIpOwogIH0pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290JykuY2xhc3NMaXN0LmFkZCgnaGlkZScpOwogIGJsb3F1ZWFkbyA9IGZhbHNlOyB0aWVtcG8gPSBUSUVNUE87IHRpY2soKTsKICBjbGVhckludGVydmFsKHRpbWVyKTsKICB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHsgdGllbXBvLS07IHRpY2soKTsgaWYodGllbXBvPD0wKXsgY2xlYXJJbnRlcnZhbCh0aW1lcik7IHJlc3BvbmRlcigtMSk7fSB9LCAxMDAwKTsKfQpmdW5jdGlvbiB0aWNrKCl7CiAgY29uc3QgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aWVtcG8nKTsgdC50ZXh0Q29udGVudCA9IE1hdGgubWF4KHRpZW1wbywwKTsKICB0LnN0eWxlLmNvbG9yID0gdGllbXBvPjEwID8gJyMzNGQzOTknIDogdGllbXBvPjUgPyAnI2YwYjQyOScgOiAnI2ZiNzE4NSc7CiAgY29uc3QgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXJmaWxsJyk7CiAgZi5zdHlsZS53aWR0aCA9IChNYXRoLm1heCh0aWVtcG8sMCkvVElFTVBPKjEwMCkrJyUnOwogIGYuc3R5bGUuYmFja2dyb3VuZCA9IHRpZW1wbz41ID8gJyMzNGQzOTknIDogJyNmYjcxODUnOwp9CmZ1bmN0aW9uIHJlc3BvbmRlcihvcCl7CiAgaWYgKGJsb3F1ZWFkbykgcmV0dXJuOwogIGJsb3F1ZWFkbyA9IHRydWU7IGNsZWFySW50ZXJ2YWwodGltZXIpOwogIGNvbnN0IHAgPSBwcmVndW50YXNbaWR4XTsKICBjb25zdCBib3RvbmVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm9wdCcpOwogIGJvdG9uZXMuZm9yRWFjaCgoYixrKSA9PiB7CiAgICBiLmRpc2FibGVkID0gdHJ1ZTsKICAgIGlmIChrID09PSBwLnIpIGIuY2xhc3NMaXN0LmFkZCgnb2snKTsKICAgIGVsc2UgaWYgKGsgPT09IG9wKSBiLmNsYXNzTGlzdC5hZGQoJ2JhZCcpOwogICAgZWxzZSBiLmNsYXNzTGlzdC5hZGQoJ2RpbScpOwogIH0pOwogIGxldCBmYj0nJzsKICBpZiAob3AgPT09IHAucil7CiAgICBjb25zdCBnYW5hZG8gPSAxMDAgKyB0aWVtcG8qNSArIHJhY2hhKjEwOwogICAgcHVudG9zICs9IGdhbmFkbzsgcmFjaGErKzsgYWNpZXJ0b3MrKzsKICAgIG1lam9yUmFjaGEgPSBNYXRoLm1heChtZWpvclJhY2hhLCByYWNoYSk7CiAgICBmYiA9ICcrJytnYW5hZG8rKHJhY2hhPj0zPycg8J+UpSDCoUVuIHJhY2hhISc6JyDinIUnKTsKICB9IGVsc2UgewogICAgcmFjaGEgPSAwOyB2aWRhcy0tOwogICAgZmIgPSBvcD09PS0xID8gJ+KPsCDCoVNlIGFjYWLDsyBlbCB0aWVtcG8hJyA6ICfinYwgwqFGYWxsYXN0ZSEnOwogIH0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHVudG9zJykudGV4dENvbnRlbnQgPSBwdW50b3M7CiAgbGV0IHZoPScnOyBmb3IobGV0IGs9MDtrPFZJREFTO2srKykgdmggKz0gJzxzcGFuIGNsYXNzPSInKyhrPHZpZGFzPycnOidoZWFydC1vZmYnKSsnIj7inaTvuI88L3NwYW4+JzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlkYXMnKS5pbm5lckhUTUwgPSB2aDsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmInKS50ZXh0Q29udGVudCA9IGZiOwogIGNvbnN0IGZpbiA9ICh2aWRhczw9MCkgfHwgKGlkeD49cHJlZ3VudGFzLmxlbmd0aC0xKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV4dCcpLnRleHRDb250ZW50ID0gZmluID8gJ1ZlciByZXN1bHRhZG8g4oaSJyA6ICdTaWd1aWVudGUg4oaSJzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGUnKTsKfQpmdW5jdGlvbiBzaWd1aWVudGUoKXsKICBpZiAodmlkYXM8PTAgfHwgaWR4Pj1wcmVndW50YXMubGVuZ3RoLTEpeyB2ZXJGaW4oKTsgcmV0dXJuOyB9CiAgaWR4Kys7IHBpbnRhcigpOwp9CmZ1bmN0aW9uIHZlckZpbigpewogIGNvbnN0IHBjdCA9IE1hdGgucm91bmQoYWNpZXJ0b3MvcHJlZ3VudGFzLmxlbmd0aCoxMDApOwogIGxldCB0aXQsZW1vOwogIGlmKHBjdD49OTApe3RpdD0nwqFHZW5pbyBhYnNvbHV0byEnO2Vtbz0n8J+noCc7fQogIGVsc2UgaWYocGN0Pj03MCl7dGl0PSfCoU11eSBiaWVuISc7ZW1vPSfwn46JJzt9CiAgZWxzZSBpZihwY3Q+PTUwKXt0aXQ9J0Fwcm9iYWRvJztlbW89J/CfkY0nO30KICBlbHNle3RpdD0nQSByZXBhc2FyLi4uJztlbW89J/Cfk5onO30KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmluRW1vamknKS50ZXh0Q29udGVudCA9IGVtbzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmluVGl0dWxvJykudGV4dENvbnRlbnQgPSB0aXQ7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpblB1bnRvcycpLnRleHRDb250ZW50ID0gcHVudG9zOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaW5BY2llcnRvcycpLnRleHRDb250ZW50ID0gYWNpZXJ0b3MrJy8nK3ByZWd1bnRhcy5sZW5ndGg7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpblBjdCcpLnRleHRDb250ZW50ID0gcGN0KyclJzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmluUmFjaGEnKS50ZXh0Q29udGVudCA9IG1lam9yUmFjaGErJ+KaoSc7CiAgc2hvdygnZmluJyk7Cn0KPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVzIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+Q2FsY3VsYWRvcmEgZGUgUGxhem9zIFByb2Nlc2FsZXM8L3RpdGxlPgo8c3R5bGU+Cip7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO3BhZGRpbmc6MH0KYm9keXtmb250LWZhbWlseTpzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxzYW5zLXNlcmlmO2JhY2tncm91bmQ6I2Y1ZjVmMztjb2xvcjojMWExYTFhO3BhZGRpbmc6MS41cmVtO2ZvbnQtc2l6ZToxNXB4fQpoMXtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo1MDA7bWFyZ2luLWJvdHRvbToxLjVyZW07Y29sb3I6IzFhMWExYX0KLnNlY2Npb257YmFja2dyb3VuZDojZmZmO2JvcmRlcjowLjVweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjFyZW0gMS4yNXJlbTttYXJnaW4tYm90dG9tOjFyZW19Ci5ncmlkMntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjEycHh9Ci5ncmlkM3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnIgMWZyO2dhcDoxMnB4fQpsYWJlbHtmb250LXNpemU6MTNweDtjb2xvcjojNjY2O2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo0cHh9CnNlbGVjdCxpbnB1dFt0eXBlPWRhdGVdLGlucHV0W3R5cGU9bnVtYmVyXXt3aWR0aDoxMDAlO3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyOjAuNXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1zaXplOjE0cHg7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMxYTFhMWF9CnNlbGVjdDpmb2N1cyxpbnB1dDpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAjNTM0QUI3O291dGxpbmUtb2Zmc2V0OjFweH0KLnJlc3VsdGFkby1jYXJke2JhY2tncm91bmQ6I2Y1ZjVmMztib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjFyZW07dGV4dC1hbGlnbjpjZW50ZXJ9Ci5yZXN1bHRhZG8tbGFiZWx7Zm9udC1zaXplOjEycHg7Y29sb3I6Izg4ODttYXJnaW4tYm90dG9tOjRweH0KLmZlY2hhLWZpbntmb250LXNpemU6MTVweDtmb250LXdlaWdodDo1MDB9Ci5iYWRnZXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTFweDtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7bWFyZ2luLWxlZnQ6NnB4fQouYmFkZ2UtY2l2aWx7YmFja2dyb3VuZDojRUVFREZFO2NvbG9yOiMzQzM0ODl9Ci5iYWRnZS1jYXtiYWNrZ3JvdW5kOiNFNkYxRkI7Y29sb3I6IzBDNDQ3Q30KLmJhZGdlLWxhYntiYWNrZ3JvdW5kOiNFMUY1RUU7Y29sb3I6IzA4NTA0MX0KLnBsYXpvLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6OHB4IDA7Ym9yZGVyLWJvdHRvbTowLjVweCBzb2xpZCAjZWVlO2ZvbnQtc2l6ZToxM3B4O2N1cnNvcjpwb2ludGVyfQoucGxhem8tcm93Omxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lfQoucGxhem8tcm93OmhvdmVye2JhY2tncm91bmQ6I2ZhZmFmYTtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nLWxlZnQ6NHB4fQouYXZpc297YmFja2dyb3VuZDojRkFFRURBO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTBweCAxNHB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOiM2MzM4MDY7bWFyZ2luLXRvcDo4cHh9Ci50YWItYmFye2Rpc3BsYXk6ZmxleDtnYXA6NnB4O21hcmdpbi1ib3R0b206MXJlbTtmbGV4LXdyYXA6d3JhcH0KLnRhYntwYWRkaW5nOjZweCAxNHB4O2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZToxM3B4O2N1cnNvcjpwb2ludGVyO2JvcmRlcjowLjVweCBzb2xpZCAjY2NjO2JhY2tncm91bmQ6I2Y1ZjVmMztjb2xvcjojNjY2fQoudGFiLmFjdGl2b3tiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzFhMWExYTtib3JkZXItY29sb3I6Izk5OTtmb250LXdlaWdodDo1MDB9Ci5zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tYm90dG9tOjEycHh9Ci5mZXN0aXZvLXRhZ3tkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTFweDtiYWNrZ3JvdW5kOiNmNWY1ZjM7Ym9yZGVyOjAuNXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZzoycHggNnB4O21hcmdpbjoycHh9CiNjYWxlbmRhcmlve2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDcsMWZyKTtnYXA6MnB4O21hcmdpbi10b3A6OHB4fQouY2FsLWh7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjExcHg7Y29sb3I6Izg4ODtwYWRkaW5nOjRweCAwO2ZvbnQtd2VpZ2h0OjUwMH0KLmNhbC1ke3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6NXB4IDJweDtib3JkZXItcmFkaXVzOjRweH0KLmNhbC1kLm5vcm1hbHtjb2xvcjojMWExYTFhfQouY2FsLWQuZmluLXNlbWFuYXtjb2xvcjojYWFhfQouY2FsLWQuZmVzdGl2b3tiYWNrZ3JvdW5kOiNGQUVFREE7Y29sb3I6IzYzMzgwNn0KLmNhbC1kLmluaWNpb3tiYWNrZ3JvdW5kOiMzQzM0ODk7Y29sb3I6I0VFRURGRTtmb250LXdlaWdodDo1MDB9Ci5jYWwtZC5maW4taGFiaWxlc3tiYWNrZ3JvdW5kOiMwRjZFNTY7Y29sb3I6I0UxRjVFRTtmb250LXdlaWdodDo1MDB9Ci5jYWwtZC5maW4tbmF0dXJhbGVze2JhY2tncm91bmQ6IzE4NUZBNTtjb2xvcjojRTZGMUZCO2ZvbnQtd2VpZ2h0OjUwMH0KLmNhbC1kLmFtYm9zLWZpbntiYWNrZ3JvdW5kOiM5OTNDMUQ7Y29sb3I6I0ZBRUNFNztmb250LXdlaWdodDo1MDB9Ci5sZXllbmRhe2Rpc3BsYXk6ZmxleDtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOjEwcHh9Ci5sZXktaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2Nn0KLmxleS1ib3h7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjJweDtmbGV4LXNocmluazowfQpidXR0b257Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo2cHggMTJweDtib3JkZXI6MC41cHggc29saWQgI2NjYztib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNmZmY7Zm9udC1zaXplOjEzcHg7Y29sb3I6IzFhMWExYX0KYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6I2Y1ZjVmM30KQG1lZGlhKG1heC13aWR0aDo1MDBweCl7LmdyaWQyLC5ncmlkM3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfX0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGgxPuKalu+4jyBDYWxjdWxhZG9yYSBkZSBwbGF6b3MgcHJvY2VzYWxlczwvaDE+Cgo8ZGl2IGNsYXNzPSJ0YWItYmFyIj4KICA8ZGl2IGNsYXNzPSJ0YWIgYWN0aXZvIiBvbmNsaWNrPSJzZXRUYWIoJ2NhbGMnKSIgaWQ9InRhYi1jYWxjIj5DYWxjdWxhciBwbGF6bzwvZGl2PgogIDxkaXYgY2xhc3M9InRhYiIgb25jbGljaz0ic2V0VGFiKCdyZWYnKSIgaWQ9InRhYi1yZWYiPlBsYXpvcyBkZSByZWZlcmVuY2lhPC9kaXY+CiAgPGRpdiBjbGFzcz0idGFiIiBvbmNsaWNrPSJzZXRUYWIoJ2Zlc3QnKSIgaWQ9InRhYi1mZXN0Ij5GZXN0aXZvcyAyMDI14oCTMjAyNjwvZGl2Pgo8L2Rpdj4KCjwhLS0gQ0FMQ1VMQURPUkEgLS0+CjxkaXYgaWQ9InBhbmVsLWNhbGMiPgogIDxkaXYgY2xhc3M9InNlY2Npb24iPgogICAgPHAgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkRhdG9zIGRlbCBwbGF6bzwvcD4KICAgIDxkaXYgY2xhc3M9ImdyaWQyIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMnB4Ij4KICAgICAgPGRpdj4KICAgICAgICA8bGFiZWw+RmVjaGEgZGUgaW5pY2lvIChub3RpZmljYWNpw7NuIC8gYWN0byk8L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJkYXRlIiBpZD0iZmVjaGEtaW5pY2lvIiAvPgogICAgICA8L2Rpdj4KICAgICAgPGRpdj4KICAgICAgICA8bGFiZWw+RMOtYXMgZGVsIHBsYXpvPC9sYWJlbD4KICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ibnVtLWRpYXMiIG1pbj0iMSIgbWF4PSIzNjUiIHZhbHVlPSIyMCIgLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWQyIj4KICAgICAgPGRpdj4KICAgICAgICA8bGFiZWw+VGlwbyBkZSBwcm9jZWRpbWllbnRvPC9sYWJlbD4KICAgICAgICA8c2VsZWN0IGlkPSJ0aXBvLXByb2MiPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iY2l2aWwiPkNpdmlsIC8gTWVyY2FudGlsPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJjYSI+Q29udGVuY2lvc28tQWRtaW5pc3RyYXRpdm88L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImxhYm9yYWwiPkxhYm9yYWw8L29wdGlvbj4KICAgICAgICA8L3NlbGVjdD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXY+CiAgICAgICAgPGxhYmVsPlBsYXpvIGRlIHJlZmVyZW5jaWE8L2xhYmVsPgogICAgICAgIDxzZWxlY3QgaWQ9InJlZi1wbGF6byI+PG9wdGlvbiB2YWx1ZT0iY3VzdG9tIj5QbGF6byBwZXJzb25hbGl6YWRvPC9vcHRpb24+PC9zZWxlY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJhdmlzbyIgaWQ9ImF2aXNvLWFnb3N0byIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiAgICAgIOKaoO+4jyBFbiBqdXJpc2RpY2Npw7NuIGNpdmlsLCBhZ29zdG8gZXMgaW5ow6FiaWwgKGFydC4gMTgzIExPUEopLiBMb3MgZMOtYXMgZGUgYWdvc3RvIG5vIHNlIGN1ZW50YW4gY29tbyBow6FiaWxlcy4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJncmlkMyIgc3R5bGU9Im1hcmdpbi1ib3R0b206MXJlbSI+CiAgICA8ZGl2IGNsYXNzPSJyZXN1bHRhZG8tY2FyZCI+CiAgICAgIDxkaXYgY2xhc3M9InJlc3VsdGFkby1sYWJlbCI+RmVjaGEgZGUgaW5pY2lvPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZlY2hhLWZpbiIgaWQ9InItaW5pY2lvIj7igJQ8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icmVzdWx0YWRvLWNhcmQiPgogICAgICA8ZGl2IGNsYXNzPSJyZXN1bHRhZG8tbGFiZWwiPkZpbiBlbiBkw61hcyBow6FiaWxlczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmZWNoYS1maW4iIGlkPSJyLWhhYmlsZXMiIHN0eWxlPSJjb2xvcjojMEY2RTU2Ij7igJQ8L2Rpdj4KICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6Izg4ODttYXJnaW4tdG9wOjJweCIgaWQ9InItaGFiaWxlcy1uIj48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icmVzdWx0YWRvLWNhcmQiPgogICAgICA8ZGl2IGNsYXNzPSJyZXN1bHRhZG8tbGFiZWwiPkZpbiBlbiBkw61hcyBuYXR1cmFsZXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZmVjaGEtZmluIiBpZD0ici1uYXR1cmFsZXMiIHN0eWxlPSJjb2xvcjojMTg1RkE1Ij7igJQ8L2Rpdj4KICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6Izg4ODttYXJnaW4tdG9wOjJweCIgaWQ9InItbmF0dXJhbGVzLW4iPjwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InNlY2Npb24iPgogICAgPHAgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNhbGVuZGFyaW8gZGVsIHBsYXpvPC9wPgogICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDttYXJnaW4tYm90dG9tOjhweCI+CiAgICAgIDxidXR0b24gb25jbGljaz0iY2FtYmlhck1lcygtMSkiPiYjODI0OTs8L2J1dHRvbj4KICAgICAgPHNwYW4gaWQ9Im1lcy1sYWJlbCIgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtmbGV4OjE7dGV4dC1hbGlnbjpjZW50ZXIiPjwvc3Bhbj4KICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjYW1iaWFyTWVzKDEpIj4mIzgyNTA7PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImNhbGVuZGFyaW8iPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ibGV5ZW5kYSI+CiAgICAgIDxkaXYgY2xhc3M9ImxleS1pdGVtIj48ZGl2IGNsYXNzPSJsZXktYm94IiBzdHlsZT0iYmFja2dyb3VuZDojM0MzNDg5Ij48L2Rpdj5JbmljaW88L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGV5LWl0ZW0iPjxkaXYgY2xhc3M9ImxleS1ib3giIHN0eWxlPSJiYWNrZ3JvdW5kOiMwRjZFNTYiPjwvZGl2PkZpbiBow6FiaWxlczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZXktaXRlbSI+PGRpdiBjbGFzcz0ibGV5LWJveCIgc3R5bGU9ImJhY2tncm91bmQ6IzE4NUZBNSI+PC9kaXY+RmluIG5hdHVyYWxlczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZXktaXRlbSI+PGRpdiBjbGFzcz0ibGV5LWJveCIgc3R5bGU9ImJhY2tncm91bmQ6Izk5M0MxRCI+PC9kaXY+QW1iYXMgZmVjaGFzIGNvaW5jaWRlbjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZXktaXRlbSI+PGRpdiBjbGFzcz0ibGV5LWJveCIgc3R5bGU9ImJhY2tncm91bmQ6I0ZBRUVEQSI+PC9kaXY+RmVzdGl2bzwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKPCEtLSBSRUZFUkVOQ0lBIC0tPgo8ZGl2IGlkPSJwYW5lbC1yZWYiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogIDxkaXYgY2xhc3M9InNlY2Npb24iPgogICAgPHAgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNpdmlsIC8gTWVyY2FudGlsIDxzcGFuIGNsYXNzPSJiYWRnZSBiYWRnZS1jaXZpbCI+TEVDPC9zcGFuPjwvcD4KICAgIDxkaXYgaWQ9Imxpc3RhLWNpdmlsIj48L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJzZWNjaW9uIj4KICAgIDxwIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db250ZW5jaW9zby1BZG1pbmlzdHJhdGl2byA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtY2EiPkxKQ0E8L3NwYW4+PC9wPgogICAgPGRpdiBpZD0ibGlzdGEtY2EiPjwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InNlY2Npb24iPgogICAgPHAgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkxhYm9yYWwgPHNwYW4gY2xhc3M9ImJhZGdlIGJhZGdlLWxhYiI+TFJKUzwvc3Bhbj48L3A+CiAgICA8ZGl2IGlkPSJsaXN0YS1sYWIiPjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gRkVTVElWT1MgLS0+CjxkaXYgaWQ9InBhbmVsLWZlc3QiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogIDxkaXYgY2xhc3M9InNlY2Npb24iPgogICAgPHAgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkZlc3Rpdm9zIG5hY2lvbmFsZXMgMjAyNeKAkzIwMjY8L3A+CiAgICA8ZGl2IGlkPSJsaXN0YS1mZXN0aXZvcyI+PC9kaXY+CiAgPC9kaXY+CjwvZGl2Pgo8c2NyaXB0Pgpjb25zdCBGRVNUSVZPU19OQUM9WyIyMDI1LTAxLTAxIiwiMjAyNS0wMS0wNiIsIjIwMjUtMDQtMTciLCIyMDI1LTA0LTE4IiwiMjAyNS0wNS0wMSIsIjIwMjUtMDgtMTUiLCIyMDI1LTEwLTEyIiwiMjAyNS0xMS0wMSIsIjIwMjUtMTItMDYiLCIyMDI1LTEyLTA4IiwiMjAyNS0xMi0yNSIsIjIwMjYtMDEtMDEiLCIyMDI2LTAxLTA2IiwiMjAyNi0wNC0wMiIsIjIwMjYtMDQtMDMiLCIyMDI2LTA1LTAxIiwiMjAyNi0wOC0xNSIsIjIwMjYtMTAtMTIiLCIyMDI2LTExLTAxIiwiMjAyNi0xMi0wNiIsIjIwMjYtMTItMDgiLCIyMDI2LTEyLTI1Il07CmNvbnN0IEZFU1RJVk9TX1NFVD1uZXcgU2V0KEZFU1RJVk9TX05BQyk7CmNvbnN0IE5PTUJSRVNfRkVTVElWT1M9eyIwMS0wMSI6IkHDsW8gTnVldm8iLCIwMS0wNiI6IkVwaWZhbsOtYSBkZWwgU2XDsW9yIiwiMDQtMTciOiJKdWV2ZXMgU2FudG8iLCIwNC0xOCI6IlZpZXJuZXMgU2FudG8iLCIwNC0wMiI6Ikp1ZXZlcyBTYW50byIsIjA0LTAzIjoiVmllcm5lcyBTYW50byIsIjA1LTAxIjoiRMOtYSBkZWwgVHJhYmFqbyIsIjA4LTE1IjoiQXN1bmNpw7NuIGRlIGxhIFZpcmdlbiIsIjEwLTEyIjoiRmllc3RhIE5hY2lvbmFsIiwiMTEtMDEiOiJUb2RvcyBsb3MgU2FudG9zIiwiMTItMDYiOiJEw61hIGRlIGxhIENvbnN0aXR1Y2nDs24iLCIxMi0wOCI6IklubWFjdWxhZGEgQ29uY2VwY2nDs24iLCIxMi0yNSI6Ik5hdmlkYWQifTsKY29uc3QgUExBWk9TPXsKICBjaXZpbDpbCiAgICB7bjoiQ29udGVzdGFjacOzbiBkZW1hbmRhIG9yZGluYXJpbyIsZDoyMCxyZWY6IkFydC4gNDA0IExFQyJ9LAogICAge246IkNvbnRlc3RhY2nDs24gZGVtYW5kYSB2ZXJiYWwiLGQ6MTAscmVmOiJBcnQuIDQzOCBMRUMifSwKICAgIHtuOiJSZWN1cnNvIGRlIGFwZWxhY2nDs24gKGludGVycG9zaWNpw7NuKSIsZDoyMCxyZWY6IkFydC4gNDU4IExFQyJ9LAogICAge246IlJlY3Vyc28gZGUgYXBlbGFjacOzbiAob3Bvc2ljacOzbikiLGQ6MTAscmVmOiJBcnQuIDQ2MSBMRUMifSwKICAgIHtuOiJSZWN1cnNvIGRlIGNhc2FjacOzbiIsZDoyMCxyZWY6IkFydC4gNDc5IExFQyJ9LAogICAge246IkVqZWN1Y2nDs24gcHJvdmlzaW9uYWwgKG9wb3NpY2nDs24pIixkOjUscmVmOiJBcnQuIDUyOCBMRUMifSwKICAgIHtuOiJSZWN1cnNvIGRlIHJlcG9zaWNpw7NuIixkOjUscmVmOiJBcnQuIDQ1MiBMRUMifSwKICAgIHtuOiJNZWRpZGFzIGNhdXRlbGFyZXMgKG9wb3NpY2nDs24pIixkOjUscmVmOiJBcnQuIDczOSBMRUMifSwKICBdLAogIGNhOlsKICAgIHtuOiJSZWN1cnNvIGNvbnRlbmNpb3NvLWFkbWluaXN0cmF0aXZvIixkOjYwLHJlZjoiQXJ0LiA0NiBMSkNBIn0sCiAgICB7bjoiRGVtYW5kYSAodHLDoW1pdGUgb3JkaW5hcmlvKSIsZDoyMCxyZWY6IkFydC4gNTIgTEpDQSJ9LAogICAge246IkNvbnRlc3RhY2nDs24gZGVtYW5kYSIsZDoyMCxyZWY6IkFydC4gNTQgTEpDQSJ9LAogICAge246IlJlY3Vyc28gZGUgYXBlbGFjacOzbiIsZDoxNSxyZWY6IkFydC4gODUgTEpDQSJ9LAogICAge246IlJlY3Vyc28gZGUgY2FzYWNpw7NuIixkOjMwLHJlZjoiQXJ0LiA4OSBMSkNBIn0sCiAgICB7bjoiUmVjdXJzbyBkZSByZXBvc2ljacOzbiAoTFBBQykiLGQ6MzAscmVmOiJBcnQuIDExNiBMUEFDIn0sCiAgICB7bjoiUmVjdXJzbyBkZSBhbHphZGEiLGQ6MzAscmVmOiJBcnQuIDEyMSBMUEFDIn0sCiAgICB7bjoiQ29udGVzdGFyIHJlY3Vyc28gYXBlbGFjacOzbiIsZDoxNSxyZWY6IkFydC4gODUgTEpDQSJ9LAogIF0sCiAgbGFib3JhbDpbCiAgICB7bjoiQ29uY2lsaWFjacOzbiBwcmV2aWEgKGNlbGVicmFyKSIsZDoxNSxyZWY6IkFydC4gNjUgTFJKUyJ9LAogICAge246IkFjY2nDs24gcG9yIGRlc3BpZG8iLGQ6MjAscmVmOiJBcnQuIDU5LjMgRVQifSwKICAgIHtuOiJSZWN1cnNvIGRlIHN1cGxpY2FjacOzbiIsZDoxMCxyZWY6IkFydC4gMTk0IExSSlMifSwKICAgIHtuOiJJbXB1Z25hY2nDs24gcmVjdXJzbyBzdXBsaWNhY2nDs24iLGQ6NSxyZWY6IkFydC4gMTk3IExSSlMifSwKICAgIHtuOiJSZWN1cnNvIGRlIGNhc2FjacOzbiIsZDoxMCxyZWY6IkFydC4gMjIxIExSSlMifSwKICAgIHtuOiJSZWN1cnNvIGRlIHJlcG9zaWNpw7NuIixkOjMscmVmOiJBcnQuIDE4NiBMUkpTIn0sCiAgICB7bjoiRWplY3VjacOzbiBkZSBzZW50ZW5jaWEiLGQ6MTAscmVmOiJBcnQuIDI0NCBMUkpTIn0sCiAgICB7bjoiUHJlc2NyaXBjacOzbiBnZW5lcmFsIixkOjM2NSxyZWY6IkFydC4gNTkgRVQifSwKICBdCn07CgpmdW5jdGlvbiBmbXREYXRlKGQpe3JldHVybiBkLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwxMCl9CmZ1bmN0aW9uIHBhcnNlRGF0ZShzKXtjb25zdFt5LG0sZF09cy5zcGxpdCgnLScpLm1hcChOdW1iZXIpO3JldHVybiBuZXcgRGF0ZSh5LG0tMSxkKX0KZnVuY3Rpb24gYWRkRGF5cyhkLG4pe2NvbnN0IHI9bmV3IERhdGUoZCk7ci5zZXREYXRlKHIuZ2V0RGF0ZSgpK24pO3JldHVybiByfQpmdW5jdGlvbiBlc0Zlc3Rpdm8oZil7cmV0dXJuIEZFU1RJVk9TX1NFVC5oYXMoZm10RGF0ZShmKSl9CmZ1bmN0aW9uIGVzRmluZGUoZil7Y29uc3QgZD1mLmdldERheSgpO3JldHVybiBkPT09MHx8ZD09PTZ9CmZ1bmN0aW9uIGVzQWdvc3RvSW5oYWJpbChmLHQpe3JldHVybiB0PT09J2NpdmlsJyYmZi5nZXRNb250aCgpPT09N30KZnVuY3Rpb24gZXNJbmhhYmlsKGYsdCl7cmV0dXJuIGVzRmluZGUoZil8fGVzRmVzdGl2byhmKXx8ZXNBZ29zdG9JbmhhYmlsKGYsdCl9CgpmdW5jdGlvbiBjYWxjSGFiaWxlcyhpbmljaW8sZGlhcyx0aXBvKXsKICBsZXQgY3VyPW5ldyBEYXRlKGluaWNpbyksY291bnQ9MDsKICBjdXI9YWRkRGF5cyhjdXIsMSk7CiAgd2hpbGUoY291bnQ8ZGlhcyl7aWYoIWVzSW5oYWJpbChjdXIsdGlwbykpY291bnQrKztpZihjb3VudDxkaWFzKWN1cj1hZGREYXlzKGN1ciwxKTt9CiAgcmV0dXJuIGN1cjsKfQpmdW5jdGlvbiBjYWxjTmF0dXJhbGVzKGluaWNpbyxkaWFzKXtyZXR1cm4gYWRkRGF5cyhpbmljaW8sZGlhcyl9CgpsZXQgbWVzQWN0dWFsPW5ldyBEYXRlKCksZmVjaGFJbmljaW89bnVsbCxmZWNoYUZpbkg9bnVsbCxmZWNoYUZpbk49bnVsbDsKbWVzQWN0dWFsPW5ldyBEYXRlKG1lc0FjdHVhbC5nZXRGdWxsWWVhcigpLG1lc0FjdHVhbC5nZXRNb250aCgpLDEpOwoKZnVuY3Rpb24gY2FsY3VsYXIoKXsKICBjb25zdCBmaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmVjaGEtaW5pY2lvJykudmFsdWU7CiAgY29uc3QgbmQ9cGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bS1kaWFzJykudmFsdWUpfHwyMDsKICBjb25zdCB0aXBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aXBvLXByb2MnKS52YWx1ZTsKICBpZighZmkpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyLWluaWNpbycpLnRleHRDb250ZW50PSfigJQnO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyLWhhYmlsZXMnKS50ZXh0Q29udGVudD0n4oCUJztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnci1uYXR1cmFsZXMnKS50ZXh0Q29udGVudD0n4oCUJztyZXR1cm47fQogIGZlY2hhSW5pY2lvPXBhcnNlRGF0ZShmaSk7CiAgZmVjaGFGaW5IPWNhbGNIYWJpbGVzKGZlY2hhSW5pY2lvLG5kLHRpcG8pOwogIGZlY2hhRmluTj1jYWxjTmF0dXJhbGVzKGZlY2hhSW5pY2lvLG5kKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnci1pbmljaW8nKS50ZXh0Q29udGVudD1mZWNoYUluaWNpby50b0xvY2FsZURhdGVTdHJpbmcoJ2VzLUVTJyx7ZGF5OidudW1lcmljJyxtb250aDonc2hvcnQnLHllYXI6J251bWVyaWMnfSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ItaGFiaWxlcycpLnRleHRDb250ZW50PWZlY2hhRmluSC50b0xvY2FsZURhdGVTdHJpbmcoJ2VzLUVTJyx7ZGF5OidudW1lcmljJyxtb250aDonc2hvcnQnLHllYXI6J251bWVyaWMnfSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ItaGFiaWxlcy1uJykudGV4dENvbnRlbnQ9ZmVjaGFGaW5ILnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtRVMnLHt3ZWVrZGF5Oidsb25nJ30pOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyLW5hdHVyYWxlcycpLnRleHRDb250ZW50PWZlY2hhRmluTi50b0xvY2FsZURhdGVTdHJpbmcoJ2VzLUVTJyx7ZGF5OidudW1lcmljJyxtb250aDonc2hvcnQnLHllYXI6J251bWVyaWMnfSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ItbmF0dXJhbGVzLW4nKS50ZXh0Q29udGVudD1mZWNoYUZpbk4udG9Mb2NhbGVEYXRlU3RyaW5nKCdlcy1FUycse3dlZWtkYXk6J2xvbmcnfSk7CiAgY29uc3QgYXZpc289ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F2aXNvLWFnb3N0bycpOwogIGlmKHRpcG89PT0nY2l2aWwnKXtsZXQgYz1hZGREYXlzKGZlY2hhSW5pY2lvLDApLGFnPWZhbHNlO2ZvcihsZXQgaT0wO2k8PW5kKjM7aSsrKXtjPWFkZERheXMoYywxKTtpZihjLmdldE1vbnRoKCk9PT03KXthZz10cnVlO2JyZWFrO319YXZpc28uc3R5bGUuZGlzcGxheT1hZz8nYmxvY2snOidub25lJzt9CiAgZWxzZSBhdmlzby5zdHlsZS5kaXNwbGF5PSdub25lJzsKICBtZXNBY3R1YWw9bmV3IERhdGUoZmVjaGFJbmljaW8uZ2V0RnVsbFllYXIoKSxmZWNoYUluaWNpby5nZXRNb250aCgpLDEpOwogIHJlbmRlckNhbGVuZGFyaW8oKTsKfQoKZnVuY3Rpb24gcmVuZGVyQ2FsZW5kYXJpbygpewogIGNvbnN0IGNhbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsZW5kYXJpbycpOwogIGNvbnN0IHk9bWVzQWN0dWFsLmdldEZ1bGxZZWFyKCksbT1tZXNBY3R1YWwuZ2V0TW9udGgoKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzLWxhYmVsJykudGV4dENvbnRlbnQ9bmV3IERhdGUoeSxtLDEpLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtRVMnLHttb250aDonbG9uZycseWVhcjonbnVtZXJpYyd9KTsKICBsZXQgaHRtbD1bJ0wnLCdNJywnWCcsJ0onLCdWJywnUycsJ0QnXS5tYXAoZD0+YDxkaXYgY2xhc3M9ImNhbC1oIj4ke2R9PC9kaXY+YCkuam9pbignJyk7CiAgbGV0IGRvdz1uZXcgRGF0ZSh5LG0sMSkuZ2V0RGF5KCk7ZG93PWRvdz09PTA/Njpkb3ctMTsKICBmb3IobGV0IGk9MDtpPGRvdztpKyspaHRtbCs9YDxkaXYgY2xhc3M9ImNhbC1kIj48L2Rpdj5gOwogIGNvbnN0IHRvdD1uZXcgRGF0ZSh5LG0rMSwwKS5nZXREYXRlKCk7CiAgZm9yKGxldCBkPTE7ZDw9dG90O2QrKyl7CiAgICBjb25zdCBmPW5ldyBEYXRlKHksbSxkKSxmcz1mbXREYXRlKGYpOwogICAgY29uc3QgZXNIPWZlY2hhRmluSCYmZm10RGF0ZShmZWNoYUZpbkgpPT09ZnMsZXNOPWZlY2hhRmluTiYmZm10RGF0ZShmZWNoYUZpbk4pPT09ZnMsZXNJPWZlY2hhSW5pY2lvJiZmbXREYXRlKGZlY2hhSW5pY2lvKT09PWZzOwogICAgbGV0IGNscz0nY2FsLWQnOwogICAgaWYoZXNJKWNscys9JyBpbmljaW8nOwogICAgZWxzZSBpZihlc0gmJmVzTiljbHMrPScgYW1ib3MtZmluJzsKICAgIGVsc2UgaWYoZXNIKWNscys9JyBmaW4taGFiaWxlcyc7CiAgICBlbHNlIGlmKGVzTiljbHMrPScgZmluLW5hdHVyYWxlcyc7CiAgICBlbHNlIGlmKGVzRmVzdGl2byhmKSljbHMrPScgZmVzdGl2byc7CiAgICBlbHNlIGlmKGVzRmluZGUoZikpY2xzKz0nIGZpbi1zZW1hbmEnOwogICAgZWxzZSBjbHMrPScgbm9ybWFsJzsKICAgIGh0bWwrPWA8ZGl2IGNsYXNzPSIke2Nsc30iPiR7ZH08L2Rpdj5gOwogIH0KICBjYWwuaW5uZXJIVE1MPWh0bWw7Cn0KCmZ1bmN0aW9uIGNhbWJpYXJNZXMoZGVsdGEpe21lc0FjdHVhbD1uZXcgRGF0ZShtZXNBY3R1YWwuZ2V0RnVsbFllYXIoKSxtZXNBY3R1YWwuZ2V0TW9udGgoKStkZWx0YSwxKTtyZW5kZXJDYWxlbmRhcmlvKCk7fQoKZnVuY3Rpb24gc2V0VGFiKHQpewogIFsnY2FsYycsJ3JlZicsJ2Zlc3QnXS5mb3JFYWNoKGlkPT57CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFuZWwtJytpZCkuc3R5bGUuZGlzcGxheT1pZD09PXQ/J2Jsb2NrJzonbm9uZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFiLScraWQpLmNsYXNzTmFtZT0ndGFiJysoaWQ9PT10PycgYWN0aXZvJzonJyk7CiAgfSk7Cn0KCmZ1bmN0aW9uIHJlbmRlclJlZigpewogIFsnY2l2aWwnLCdjYScsJ2xhYm9yYWwnXS5mb3JFYWNoKHRpcG89PnsKICAgIGNvbnN0IGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0YS0nK3RpcG8pOwogICAgZWwuaW5uZXJIVE1MPVBMQVpPU1t0aXBvXS5tYXAocD0+YAogICAgICA8ZGl2IGNsYXNzPSJwbGF6by1yb3ciIG9uY2xpY2s9InVzYXJQbGF6bygnJHt0aXBvfScsJHtwLmR9KSI+CiAgICAgICAgPHNwYW4+JHtwLm59PC9zcGFuPgogICAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC1zaHJpbms6MCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgYmFkZ2UtJHt0aXBvfSI+JHtwLmR9IGTDrWFzPC9zcGFuPgogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiM4ODg7Zm9udC1zaXplOjEycHgiPiR7cC5yZWZ9PC9zcGFuPgogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiNhYWEiPuKGkjwvc3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PmApLmpvaW4oJycpOwogIH0pOwp9CgpmdW5jdGlvbiB1c2FyUGxhem8odGlwbyxkaWFzKXsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGlwby1wcm9jJykudmFsdWU9dGlwbzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVtLWRpYXMnKS52YWx1ZT1kaWFzOwogIGFjdHVhbGl6YXJSZWZQbGF6bygpOwogIHNldFRhYignY2FsYycpOwogIGNhbGN1bGFyKCk7Cn0KCmZ1bmN0aW9uIHJlbmRlckZlc3Rpdm9zKCl7CiAgY29uc3QgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpc3RhLWZlc3Rpdm9zJyk7CiAgY29uc3QgYWc9e307CiAgRkVTVElWT1NfTkFDLmZvckVhY2goZj0+e2NvbnN0IHk9Zi5zbGljZSgwLDQpO2lmKCFhZ1t5XSlhZ1t5XT1bXTtjb25zdCBkPXBhcnNlRGF0ZShmKSxtbT1mLnNsaWNlKDUsMTApO2FnW3ldLnB1c2goYDxzcGFuIGNsYXNzPSJmZXN0aXZvLXRhZyI+PGI+JHtkLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtRVMnLHtkYXk6J251bWVyaWMnLG1vbnRoOidzaG9ydCd9KX08L2I+IOKAlCAke05PTUJSRVNfRkVTVElWT1NbbW1dfHwnJ308L3NwYW4+YCk7fSk7CiAgZWwuaW5uZXJIVE1MPU9iamVjdC5lbnRyaWVzKGFnKS5tYXAoKFt5LGZzXSk9PmA8cCBzdHlsZT0iZm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbjoxMHB4IDAgNnB4Ij4ke3l9PC9wPjxkaXY+JHtmcy5qb2luKCcnKX08L2Rpdj5gKS5qb2luKCcnKTsKfQoKZnVuY3Rpb24gYWN0dWFsaXphclJlZlBsYXpvKCl7CiAgY29uc3QgdGlwbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGlwby1wcm9jJykudmFsdWU7CiAgY29uc3Qgc2VsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWYtcGxhem8nKTsKICBzZWwuaW5uZXJIVE1MPWA8b3B0aW9uIHZhbHVlPSJjdXN0b20iPlBsYXpvIHBlcnNvbmFsaXphZG88L29wdGlvbj5gK1BMQVpPU1t0aXBvXS5tYXAocD0+YDxvcHRpb24gdmFsdWU9IiR7cC5ufSI+JHtwLm59ICgke3AuZH1kKTwvb3B0aW9uPmApLmpvaW4oJycpOwp9Cgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmVjaGEtaW5pY2lvJykuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJyxjYWxjdWxhcik7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW0tZGlhcycpLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JyxjYWxjdWxhcik7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aXBvLXByb2MnKS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCgpPT57YWN0dWFsaXphclJlZlBsYXpvKCk7Y2FsY3VsYXIoKTt9KTsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZi1wbGF6bycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsZnVuY3Rpb24oKXsKICBjb25zdCBhbGw9Wy4uLlBMQVpPUy5jaXZpbCwuLi5QTEFaT1MuY2EsLi4uUExBWk9TLmxhYm9yYWxdOwogIGNvbnN0IHNlbD1hbGwuZmluZChwPT5wLm49PT10aGlzLnZhbHVlKTsKICBpZihzZWwpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW0tZGlhcycpLnZhbHVlPXNlbC5kO2NhbGN1bGFyKCk7fQp9KTsKCmFjdHVhbGl6YXJSZWZQbGF6bygpOwpyZW5kZXJSZWYoKTsKcmVuZGVyRmVzdGl2b3MoKTsKY29uc3QgaG95PW5ldyBEYXRlKCk7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmZWNoYS1pbmljaW8nKS52YWx1ZT1mbXREYXRlKGhveSk7CmNhbGN1bGFyKCk7Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
💶 Calculadora de presupuestos
PCEtLQogIENhbGN1bGFkb3JhIGRlIGhvbm9yYXJpb3Mg4oCUIEEgUGx1cyBBYm9nYWRvcyB5IEVjb25vbWlzdGFzLCBTLkwuUC4KICBBcnRlZmFjdG8gYXV0w7Nub21vIChIVE1ML0NTUy9KUywgc2luIGRlcGVuZGVuY2lhcykuIEVtYmViaWJsZSBlbiBhcGx1c2FlLmVzLgoKICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICBDT05GSUdVUkFDScOTTiBERSBFTlbDjU8gIChlZGl0YXIgZWwgYmxvcXVlIENPTkZJRyBlbiBlbCA8c2NyaXB0PiBkZSBhYmFqbykKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAtIGRlc3RpbmF0YXJpbzogY29ycmVvIGFsIHF1ZSBsbGVnYSBsYSBzb2xpY2l0dWQgKGNybUBhcGx1c2FlLmVzKS4KICAtIGVuZHBvaW50OiAgICBkw6lqYWxvIGVuICcnIHBhcmEgcXVlIGZ1bmNpb25lIFlBIHBvciBjb3JyZW8gZGVsIHZpc2l0YW50ZQogICAgICAgICAgICAgICAgIChtYWlsdG8pLiBDdWFuZG8gdGVuZ2FzIGxhIFVSTCBkZWwgbWFuZWphZG9yIGRlbCBmb3JtdWxhcmlvCiAgICAgICAgICAgICAgICAgZGUgV29yZFByZXNzLCBww6lnYWxhIGFow60geSBlbCBlbnbDrW8gcGFzYXLDoSBhIHNlciBhdXRvbcOhdGljbwogICAgICAgICAgICAgICAgIGFsIHNlcnZpZG9yIChQT1NUKSwgc2luIHF1ZSBlbCB2aXNpdGFudGUgbmVjZXNpdGUgdGVuZXIKICAgICAgICAgICAgICAgICBjbGllbnRlIGRlIGNvcnJlby4KICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KPHN0eWxlPgogICNhcGx1cy1wcmVzdSwgI2FwbHVzLXByZXN1ICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KICAjYXBsdXMtcHJlc3UgewogICAgLS1uYXZ5OiMxRjM4NjQ7IC0tbmF2eS1kZWVwOiMxNjI5NGE7IC0taW5rOiMxYjI0MzU7IC0tc2xhdGU6IzVBNjQ3ODsKICAgIC0tYnJhc3M6I0E4ODU0RjsgLS1icmFzcy1kOiM4ZTZlM2M7IC0tcGFwZXI6I2ZmZmZmZjsgLS1taXN0OiNmNWY3ZmI7CiAgICAtLWxpbmU6I2U0ZTlmMTsgLS1vazojMWY3YTRkOyAtLXdhcm46IzlhMzMyNDsgLS1yZWQ6I2Q5MjAyMDsKICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgIGNvbG9yOiB2YXIoLS1pbmspOyBsaW5lLWhlaWdodDogMS41NTsgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICBtYXgtd2lkdGg6IDEwMDBweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDE0cHg7CiAgfQogICNhcGx1cy1wcmVzdSAuZGlzcGxheSB7IGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCAiVGltZXMgTmV3IFJvbWFuIiwgc2VyaWY7IH0KICAjYXBsdXMtcHJlc3UgLmNhcmQgewogICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXIpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saW5lKTsgYm9yZGVyLXJhZGl1czogMTZweDsKICAgIG92ZXJmbG93OiBoaWRkZW47IGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IC0yMnB4IHJnYmEoMzEsNTYsMTAwLC40NSk7CiAgfQogIC8qIEhlYWRlciAqLwogICNhcGx1cy1wcmVzdSAuaGVhZCB7IHBhZGRpbmc6IDI2cHggMzBweCAyMnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbGluZSk7IH0KICAjYXBsdXMtcHJlc3UgLmhlYWQgaW1nIHsgaGVpZ2h0OiA0NnB4OyB3aWR0aDogYXV0bzsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAjYXBsdXMtcHJlc3UgLmhlYWQgaDEgeyBmb250LXNpemU6IDI1cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1uYXZ5KTsgbGV0dGVyLXNwYWNpbmc6LS4wMWVtOyB9CiAgI2FwbHVzLXByZXN1IC5oZWFkIHAgeyBjb2xvcjogdmFyKC0tc2xhdGUpOyBmb250LXNpemU6IDE0LjVweDsgbWFyZ2luLXRvcDogNHB4OyBtYXgtd2lkdGg6IDYwY2g7IH0KICAvKiBTdGVwcyBiYXIgKi8KICAjYXBsdXMtcHJlc3UgLnN0ZXBzIHsgZGlzcGxheTpmbGV4OyBnYXA6NnB4OyBwYWRkaW5nOiAxNnB4IDMwcHggMDsgZmxleC13cmFwOndyYXA7IH0KICAjYXBsdXMtcHJlc3UgLnN0ZXBzIC5zdCB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6OHB4OyBmb250LXNpemU6MTIuNXB4OyBjb2xvcjp2YXIoLS1zbGF0ZSk7IH0KICAjYXBsdXMtcHJlc3UgLnN0ZXBzIC5kb3QgeyB3aWR0aDoyM3B4OyBoZWlnaHQ6MjNweDsgYm9yZGVyLXJhZGl1czo1MCU7IGRpc3BsYXk6Z3JpZDsgcGxhY2UtaXRlbXM6Y2VudGVyOwogICAgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWxpbmUpOyBmb250LXNpemU6MTJweDsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjp2YXIoLS1zbGF0ZSk7IGJhY2tncm91bmQ6I2ZmZjsgdHJhbnNpdGlvbjouMjVzOyB9CiAgI2FwbHVzLXByZXN1IC5zdGVwcyAuc3Qub24gLmRvdCB7IGJhY2tncm91bmQ6dmFyKC0tbmF2eSk7IGJvcmRlci1jb2xvcjp2YXIoLS1uYXZ5KTsgY29sb3I6I2ZmZjsgfQogICNhcGx1cy1wcmVzdSAuc3RlcHMgLnN0LmRvbmUgLmRvdCB7IGJhY2tncm91bmQ6dmFyKC0tYnJhc3MpOyBib3JkZXItY29sb3I6dmFyKC0tYnJhc3MpOyBjb2xvcjojZmZmOyB9CiAgI2FwbHVzLXByZXN1IC5zdGVwcyAuc3Qub24gc3BhbiB7IGNvbG9yOnZhcigtLW5hdnkpOyBmb250LXdlaWdodDo2MDA7IH0KICAjYXBsdXMtcHJlc3UgLnN0ZXBzIC5zZXAgeyBmbGV4OjE7IGhlaWdodDoxLjVweDsgYmFja2dyb3VuZDp2YXIoLS1saW5lKTsgbWluLXdpZHRoOjE0cHg7IG1heC13aWR0aDo0MHB4OyBhbGlnbi1zZWxmOmNlbnRlcjsgfQogIC8qIEJvZHkgZ3JpZCAqLwogICNhcGx1cy1wcmVzdSAuYm9keSB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzAwcHg7IGdhcDowOyB9CiAgI2FwbHVzLXByZXN1IC5tYWluIHsgcGFkZGluZzogMjZweCAzMHB4IDMwcHg7IG1pbi1oZWlnaHQ6IDMyMHB4OyB9CiAgI2FwbHVzLXByZXN1IC5hc2lkZSB7IGJhY2tncm91bmQ6dmFyKC0tbWlzdCk7IGJvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1saW5lKTsgcGFkZGluZzoyNnB4IDI0cHg7IH0KICAjYXBsdXMtcHJlc3UgaDIucSB7IGZvbnQtc2l6ZToxOXB4OyBjb2xvcjp2YXIoLS1uYXZ5KTsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjRweDsgfQogICNhcGx1cy1wcmVzdSAuc3ViIHsgY29sb3I6dmFyKC0tc2xhdGUpOyBmb250LXNpemU6MTRweDsgbWFyZ2luLWJvdHRvbToyMHB4OyB9CiAgLyogQXJlYSBjYXJkcyAqLwogICNhcGx1cy1wcmVzdSAuYXJlYXMgeyBkaXNwbGF5OmdyaWQ7IGdhcDoxMnB4OyB9CiAgI2FwbHVzLXByZXN1IC5hcmVhIHsKICAgIHRleHQtYWxpZ246bGVmdDsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MS41cHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6MTNweDsgcGFkZGluZzoxNnB4IDE4cHg7CiAgICBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpmbGV4OyBnYXA6MTRweDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgdHJhbnNpdGlvbjouMThzOyBmb250OmluaGVyaXQ7IGNvbG9yOmluaGVyaXQ7IHdpZHRoOjEwMCU7IH0KICAjYXBsdXMtcHJlc3UgLmFyZWE6aG92ZXIgeyBib3JkZXItY29sb3I6dmFyKC0tYnJhc3MpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7IH0KICAjYXBsdXMtcHJlc3UgLmFyZWEuc2VsIHsgYm9yZGVyLWNvbG9yOnZhcigtLW5hdnkpOyBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tbmF2eSk7IGJhY2tncm91bmQ6I2ZiZmNmZTsgfQogICNhcGx1cy1wcmVzdSAuYXJlYSAuaWMgeyBmbGV4Om5vbmU7IHdpZHRoOjQycHg7IGhlaWdodDo0MnB4OyBib3JkZXItcmFkaXVzOjEwcHg7IGJhY2tncm91bmQ6dmFyKC0tbmF2eSk7IGRpc3BsYXk6Z3JpZDsgcGxhY2UtaXRlbXM6Y2VudGVyOyB9CiAgI2FwbHVzLXByZXN1IC5hcmVhIC5pYyBzdmcgeyB3aWR0aDoyMnB4OyBoZWlnaHQ6MjJweDsgc3Ryb2tlOiNmZmY7IH0KICAjYXBsdXMtcHJlc3UgLmFyZWEgaDMgeyBmb250LXNpemU6MTZweDsgY29sb3I6dmFyKC0tbmF2eSk7IGZvbnQtd2VpZ2h0OjYwMDsgfQogICNhcGx1cy1wcmVzdSAuYXJlYSBwIHsgZm9udC1zaXplOjEzcHg7IGNvbG9yOnZhcigtLXNsYXRlKTsgbWFyZ2luLXRvcDoycHg7IH0KICAvKiBTZXJ2aWNlIGxpc3QgKi8KICAjYXBsdXMtcHJlc3UgLnN2YyB7IGRpc3BsYXk6Z3JpZDsgZ2FwOjlweDsgfQogICNhcGx1cy1wcmVzdSBsYWJlbC5vcHQgewogICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMnB4OyBwYWRkaW5nOjEzcHggMTZweDsgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWxpbmUpOwogICAgYm9yZGVyLXJhZGl1czoxMXB4OyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjE0LjVweDsgdHJhbnNpdGlvbjouMTVzOyBiYWNrZ3JvdW5kOiNmZmY7IH0KICAjYXBsdXMtcHJlc3UgbGFiZWwub3B0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOnZhcigtLWJyYXNzKTsgfQogICNhcGx1cy1wcmVzdSBsYWJlbC5vcHQuc2VsIHsgYm9yZGVyLWNvbG9yOnZhcigtLW5hdnkpOyBiYWNrZ3JvdW5kOiNmYmZjZmU7IGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1uYXZ5KTsgfQogICNhcGx1cy1wcmVzdSBsYWJlbC5vcHQgaW5wdXQgeyBhY2NlbnQtY29sb3I6IHZhcigtLW5hdnkpOyB3aWR0aDoxN3B4OyBoZWlnaHQ6MTdweDsgZmxleDpub25lOyB9CiAgI2FwbHVzLXByZXN1IGxhYmVsLm9wdCAudCB7IGZvbnQtd2VpZ2h0OjUwMDsgfQogIC8qIElucHV0cyAqLwogICNhcGx1cy1wcmVzdSAuZmllbGQgeyBtYXJnaW4tYm90dG9tOjE4cHg7IH0KICAjYXBsdXMtcHJlc3UgLmZpZWxkID4gbGFiZWwgeyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MTMuNXB4OyBmb250LXdlaWdodDo2MDA7IGNvbG9yOnZhcigtLWluayk7IG1hcmdpbi1ib3R0b206NnB4OyB9CiAgI2FwbHVzLXByZXN1IC5maWVsZCAuaGludCB7IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6dmFyKC0tc2xhdGUpOyBmb250LXNpemU6MTIuNXB4OyB9CiAgI2FwbHVzLXByZXN1IC5pbndyYXAgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogICNhcGx1cy1wcmVzdSAuaW53cmFwIC5ldXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDoxNHB4OyB0b3A6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgY29sb3I6dmFyKC0tc2xhdGUpOyBmb250LXNpemU6MTVweDsgfQogICNhcGx1cy1wcmVzdSBpbnB1dFt0eXBlPXRleHRdLCAjYXBsdXMtcHJlc3UgaW5wdXRbdHlwZT1lbWFpbF0sICNhcGx1cy1wcmVzdSBpbnB1dFt0eXBlPXRlbF0sICNhcGx1cy1wcmVzdSB0ZXh0YXJlYSwgI2FwbHVzLXByZXN1IHNlbGVjdCB7CiAgICB3aWR0aDoxMDAlOyBib3JkZXI6MS41cHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6MTBweDsgcGFkZGluZzoxMXB4IDE0cHg7IGZvbnQ6aW5oZXJpdDsgZm9udC1zaXplOjE1cHg7IGNvbG9yOnZhcigtLWluayk7IGJhY2tncm91bmQ6I2ZmZjsgdHJhbnNpdGlvbjouMTVzOyB9CiAgI2FwbHVzLXByZXN1IC5pbndyYXAgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6MzBweDsgfQogICNhcGx1cy1wcmVzdSBpbnB1dDpmb2N1cywgI2FwbHVzLXByZXN1IHRleHRhcmVhOmZvY3VzLCAjYXBsdXMtcHJlc3Ugc2VsZWN0OmZvY3VzIHsgb3V0bGluZTpub25lOyBib3JkZXItY29sb3I6dmFyKC0tbmF2eSk7IGJveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoMzEsNTYsMTAwLC4xMik7IH0KICAjYXBsdXMtcHJlc3UgdGV4dGFyZWEgeyBtaW4taGVpZ2h0Ojc4cHg7IHJlc2l6ZTp2ZXJ0aWNhbDsgfQogICNhcGx1cy1wcmVzdSAuY2hpcHMgeyBkaXNwbGF5OmZsZXg7IGdhcDo4cHg7IGZsZXgtd3JhcDp3cmFwOyB9CiAgI2FwbHVzLXByZXN1IC5jaGlwIHsgcGFkZGluZzo5cHggMTVweDsgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOjk5OXB4OyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjEzLjVweDsgYmFja2dyb3VuZDojZmZmOyB0cmFuc2l0aW9uOi4xNXM7IGZvbnQ6aW5oZXJpdDsgfQogICNhcGx1cy1wcmVzdSAuY2hpcDpob3ZlciB7IGJvcmRlci1jb2xvcjp2YXIoLS1icmFzcyk7IH0KICAjYXBsdXMtcHJlc3UgLmNoaXAuc2VsIHsgYmFja2dyb3VuZDp2YXIoLS1uYXZ5KTsgYm9yZGVyLWNvbG9yOnZhcigtLW5hdnkpOyBjb2xvcjojZmZmOyB9CiAgLyogQXNpZGUgLyByw6lzdW3DqSAqLwogICNhcGx1cy1wcmVzdSAuYXNpZGUgaDQgeyBmb250LXNpemU6MTEuNXB4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOi4wOWVtOyBjb2xvcjp2YXIoLS1icmFzcy1kKTsgZm9udC13ZWlnaHQ6NzAwOyBtYXJnaW4tYm90dG9tOjE0cHg7IH0KICAjYXBsdXMtcHJlc3UgLnJzdW0tcm93IHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgZ2FwOjEwcHg7IGZvbnQtc2l6ZToxMy41cHg7IHBhZGRpbmc6OXB4IDA7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpOyB9CiAgI2FwbHVzLXByZXN1IC5yc3VtLXJvdyAuayB7IGNvbG9yOnZhcigtLXNsYXRlKTsgfQogICNhcGx1cy1wcmVzdSAucnN1bS1yb3cgLnYgeyBmb250LXdlaWdodDo2MDA7IHRleHQtYWxpZ246cmlnaHQ7IGNvbG9yOnZhcigtLWluayk7IH0KICAjYXBsdXMtcHJlc3UgLnJzdW0tZW1wdHkgeyBjb2xvcjp2YXIoLS1zbGF0ZSk7IGZvbnQtc2l6ZToxMy41cHg7IGZvbnQtc3R5bGU6aXRhbGljOyB9CiAgI2FwbHVzLXByZXN1IC50b3RhbC1ib3ggeyBtYXJnaW4tdG9wOjE4cHg7IGJhY2tncm91bmQ6dmFyKC0tbmF2eSk7IGNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6MTJweDsgcGFkZGluZzoxNnB4IDE4cHg7IH0KICAjYXBsdXMtcHJlc3UgLnRvdGFsLWJveCAubGFiIHsgZm9udC1zaXplOjEycHg7IG9wYWNpdHk6Ljc1OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOi4wNmVtOyB9CiAgI2FwbHVzLXByZXN1IC50b3RhbC1ib3ggLmFtdCB7IGZvbnQtZmFtaWx5Okdlb3JnaWEsc2VyaWY7IGZvbnQtc2l6ZToyN3B4OyBmb250LXdlaWdodDo3MDA7IG1hcmdpbi10b3A6M3B4OyB9CiAgI2FwbHVzLXByZXN1IC50b3RhbC1ib3ggLml2YSB7IGZvbnQtc2l6ZToxMnB4OyBvcGFjaXR5Oi43OyBtYXJnaW4tdG9wOjJweDsgfQogIC8qIEJ1dHRvbnMgLyBuYXYgKi8KICAjYXBsdXMtcHJlc3UgLm5hdiB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGdhcDoxMnB4OyBtYXJnaW4tdG9wOjI2cHg7IHBhZGRpbmctdG9wOjIwcHg7IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpOyB9CiAgI2FwbHVzLXByZXN1IGJ1dHRvbi5idG4geyBmb250OmluaGVyaXQ7IGZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo2MDA7IHBhZGRpbmc6MTJweCAyNHB4OyBib3JkZXItcmFkaXVzOjExcHg7IGN1cnNvcjpwb2ludGVyOyBib3JkZXI6MS41cHggc29saWQgdHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246LjE1czsgfQogICNhcGx1cy1wcmVzdSBidXR0b24ucHJpbWFyeSB7IGJhY2tncm91bmQ6dmFyKC0tbmF2eSk7IGNvbG9yOiNmZmY7IH0KICAjYXBsdXMtcHJlc3UgYnV0dG9uLnByaW1hcnk6aG92ZXIgeyBiYWNrZ3JvdW5kOnZhcigtLW5hdnktZGVlcCk7IH0KICAjYXBsdXMtcHJlc3UgYnV0dG9uLnByaW1hcnk6ZGlzYWJsZWQgeyBiYWNrZ3JvdW5kOiNjM2NiZDk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfQogICNhcGx1cy1wcmVzdSBidXR0b24uZ2hvc3QgeyBiYWNrZ3JvdW5kOiNmZmY7IGNvbG9yOnZhcigtLW5hdnkpOyBib3JkZXItY29sb3I6dmFyKC0tbGluZSk7IH0KICAjYXBsdXMtcHJlc3UgYnV0dG9uLmdob3N0OmhvdmVyIHsgYm9yZGVyLWNvbG9yOnZhcigtLW5hdnkpOyB9CiAgLyogUmVzdWx0IHN0ZXAgKi8KICAjYXBsdXMtcHJlc3UgLmJyZWFrZG93biB7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7IGJvcmRlci1yYWRpdXM6MTNweDsgb3ZlcmZsb3c6aGlkZGVuOyB9CiAgI2FwbHVzLXByZXN1IC5icmVha2Rvd24gLnJvdyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IHBhZGRpbmc6MTNweCAxOHB4OyBmb250LXNpemU6MTQuNXB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKTsgfQogICNhcGx1cy1wcmVzdSAuYnJlYWtkb3duIC5yb3c6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206bm9uZTsgfQogICNhcGx1cy1wcmVzdSAuYnJlYWtkb3duIC5yb3cgLmsgeyBjb2xvcjp2YXIoLS1zbGF0ZSk7IH0KICAjYXBsdXMtcHJlc3UgLmJyZWFrZG93biAucm93LnRvdCB7IGJhY2tncm91bmQ6dmFyKC0tbWlzdCk7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0tbmF2eSk7IGZvbnQtc2l6ZToxNnB4OyB9CiAgI2FwbHVzLXByZXN1IC5yYW5nbyB7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjp2YXIoLS1zbGF0ZSk7IG1hcmdpbi10b3A6MTBweDsgfQogIC8qIENUQSBkaXNjb3VudCAqLwogICNhcGx1cy1wcmVzdSAuY3RhIHsKICAgIG1hcmdpbi10b3A6MjJweDsgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJyYXNzKTsgYm9yZGVyLXJhZGl1czoxNHB4OyBwYWRkaW5nOjIwcHggMjJweDsKICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmRmYWY0LCNmY2Y2ZWMpOyB9CiAgI2FwbHVzLXByZXN1IC5jdGEgLmJhZGdlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6dmFyKC0tcmVkKTsgY29sb3I6I2ZmZjsgZm9udC1zaXplOjExLjVweDsgZm9udC13ZWlnaHQ6NzAwOwogICAgbGV0dGVyLXNwYWNpbmc6LjA1ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgcGFkZGluZzo0cHggMTFweDsgYm9yZGVyLXJhZGl1czo5OTlweDsgYW5pbWF0aW9uOiBhcGx1c0JsaW5rIDFzIHN0ZXBzKDEpIGluZmluaXRlOyB9CiAgI2FwbHVzLXByZXN1IC5jdGEgaDMgeyBmb250LWZhbWlseTpHZW9yZ2lhLHNlcmlmOyBjb2xvcjp2YXIoLS1uYXZ5KTsgZm9udC1zaXplOjIxcHg7IG1hcmdpbjoxMXB4IDAgM3B4OyB9CiAgI2FwbHVzLXByZXN1IC5jdGEgLmR0by1hbXQgeyBmb250LWZhbWlseTpHZW9yZ2lhLHNlcmlmOyBmb250LXNpemU6MzBweDsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS1yZWQpOyBhbmltYXRpb246IGFwbHVzQmxpbmsgMXMgc3RlcHMoMSkgaW5maW5pdGU7IH0KICAjYXBsdXMtcHJlc3UgLmN0YSAuZHRvLW9sZCB7IHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7IGNvbG9yOnZhcigtLXNsYXRlKTsgZm9udC1zaXplOjE2cHg7IG1hcmdpbi1sZWZ0OjhweDsgfQogICNhcGx1cy1wcmVzdSAuY3RhIHAuZmluZSB7IGZvbnQtc2l6ZToxMi41cHg7IGNvbG9yOnZhcigtLXNsYXRlKTsgbWFyZ2luLXRvcDo4cHg7IH0KICBAa2V5ZnJhbWVzIGFwbHVzQmxpbmsgeyA1MCUgeyBvcGFjaXR5OjAuMjU7IH0gfQogIC8qIEZvcm0gKi8KICAjYXBsdXMtcHJlc3UgLmZvcm1ncmlkIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgZ2FwOjE0cHg7IG1hcmdpbi10b3A6MThweDsgfQogICNhcGx1cy1wcmVzdSAuZm9ybWdyaWQgLmZ1bGwgeyBncmlkLWNvbHVtbjoxIC8gLTE7IH0KICAjYXBsdXMtcHJlc3UgLmNoZWNrIHsgZGlzcGxheTpmbGV4OyBnYXA6MTFweDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgZm9udC1zaXplOjEzcHg7IGNvbG9yOnZhcigtLWluayk7IG1hcmdpbi10b3A6MTRweDsgY3Vyc29yOnBvaW50ZXI7IH0KICAjYXBsdXMtcHJlc3UgLmNoZWNrIGlucHV0IHsgbWFyZ2luLXRvcDoycHg7IGFjY2VudC1jb2xvcjp2YXIoLS1uYXZ5KTsgd2lkdGg6MThweDsgaGVpZ2h0OjE4cHg7IGZsZXg6bm9uZTsgfQogICNhcGx1cy1wcmVzdSAuY2hlY2sgYSwgI2FwbHVzLXByZXN1IC5sZWdhbC10b2dnbGUgeyBjb2xvcjp2YXIoLS1uYXZ5KTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOm5vbmU7IGZvbnQ6aW5oZXJpdDsgcGFkZGluZzowOyB9CiAgI2FwbHVzLXByZXN1IC5sZWdhbCB7IGRpc3BsYXk6bm9uZTsgbWFyZ2luLXRvcDoxNHB4OyBiYWNrZ3JvdW5kOnZhcigtLW1pc3QpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpOyBib3JkZXItcmFkaXVzOjEwcHg7IHBhZGRpbmc6MTZweCAxOHB4OyBmb250LXNpemU6MTJweDsgY29sb3I6dmFyKC0tc2xhdGUpOyBsaW5lLWhlaWdodDoxLjY7IH0KICAjYXBsdXMtcHJlc3UgLmxlZ2FsLm9wZW4geyBkaXNwbGF5OmJsb2NrOyB9CiAgI2FwbHVzLXByZXN1IC5sZWdhbCBzdHJvbmcgeyBjb2xvcjp2YXIoLS1pbmspOyB9CiAgI2FwbHVzLXByZXN1IC5sZWdhbCBoNSB7IGNvbG9yOnZhcigtLW5hdnkpOyBmb250LXNpemU6MTIuNXB4OyBtYXJnaW46MTBweCAwIDNweDsgfQogIC8qIG5vdGljZXMgKi8KICAjYXBsdXMtcHJlc3UgLm9yaWVudCB7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IGJhY2tncm91bmQ6I2ZiZjhmMTsgYm9yZGVyOjFweCBzb2xpZCAjZWNkZmM1OyBib3JkZXItcmFkaXVzOjEwcHg7IHBhZGRpbmc6MTJweCAxNXB4OyBmb250LXNpemU6MTIuNXB4OyBjb2xvcjojNmI1YTM2OyBtYXJnaW4tYm90dG9tOjIwcHg7IH0KICAjYXBsdXMtcHJlc3UgLm9yaWVudCBzdmcgeyBmbGV4Om5vbmU7IHdpZHRoOjE3cHg7IGhlaWdodDoxN3B4OyBzdHJva2U6I2I1OTEyZjsgbWFyZ2luLXRvcDoxcHg7IH0KICAvKiBzdWNjZXNzICovCiAgI2FwbHVzLXByZXN1IC5kb25lIHsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MzBweCAxMHB4OyB9CiAgI2FwbHVzLXByZXN1IC5kb25lIC5yaW5nIHsgd2lkdGg6NjRweDsgaGVpZ2h0OjY0cHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOiNlOGY0ZWU7IGRpc3BsYXk6Z3JpZDsgcGxhY2UtaXRlbXM6Y2VudGVyOyBtYXJnaW46MCBhdXRvIDE2cHg7IH0KICAjYXBsdXMtcHJlc3UgLmRvbmUgLnJpbmcgc3ZnIHsgd2lkdGg6MzJweDsgaGVpZ2h0OjMycHg7IHN0cm9rZTp2YXIoLS1vayk7IH0KICAjYXBsdXMtcHJlc3UgLmRvbmUgaDIgeyBjb2xvcjp2YXIoLS1uYXZ5KTsgZm9udC1zaXplOjIycHg7IG1hcmdpbi1ib3R0b206OHB4OyB9CiAgI2FwbHVzLXByZXN1IC5kb25lIHAgeyBjb2xvcjp2YXIoLS1zbGF0ZSk7IGZvbnQtc2l6ZToxNC41cHg7IG1heC13aWR0aDo0NmNoOyBtYXJnaW46MCBhdXRvIDZweDsgfQogICNhcGx1cy1wcmVzdSAuZXJyIHsgY29sb3I6dmFyKC0td2Fybik7IGZvbnQtc2l6ZToxM3B4OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6bm9uZTsgfQogICNhcGx1cy1wcmVzdSAuZXJyLnNob3cgeyBkaXNwbGF5OmJsb2NrOyB9CiAgI2FwbHVzLXByZXN1IC5mb290IHsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxMS41cHg7IGNvbG9yOnZhcigtLXNsYXRlKTsgcGFkZGluZzoxNHB4OyB9CiAgI2FwbHVzLXByZXN1IC5mb290IGEgeyBjb2xvcjp2YXIoLS1zbGF0ZSk7IH0KICAvKiByZXNwb25zaXZlICovCiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7CiAgICAjYXBsdXMtcHJlc3UgLmJvZHkgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgI2FwbHVzLXByZXN1IC5hc2lkZSB7IGJvcmRlci1sZWZ0Om5vbmU7IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpOyB9CiAgICAjYXBsdXMtcHJlc3UgLm1haW4geyBwYWRkaW5nOjIycHggMjBweCAyNnB4OyB9CiAgICAjYXBsdXMtcHJlc3UgLmhlYWQgeyBwYWRkaW5nOjIycHggMjBweCAxOHB4OyB9CiAgICAjYXBsdXMtcHJlc3UgLnN0ZXBzIHsgcGFkZGluZzoxNHB4IDIwcHggMDsgfQogICAgI2FwbHVzLXByZXN1IC5mb3JtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7IH0KICAgICNhcGx1cy1wcmVzdSAuc3RlcHMgLnN0IHNwYW4geyBkaXNwbGF5Om5vbmU7IH0KICAgICNhcGx1cy1wcmVzdSAuc3RlcHMgLnNlcCB7IG1heC13aWR0aDpub25lOyB9CiAgfQogIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7ICNhcGx1cy1wcmVzdSAqIHsgdHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnQ7IH0KICAgICNhcGx1cy1wcmVzdSAuY3RhIC5iYWRnZSwgI2FwbHVzLXByZXN1IC5jdGEgLmR0by1hbXQgeyBhbmltYXRpb246IGFwbHVzQmxpbmsgMXMgc3RlcHMoMSkgaW5maW5pdGU7IH0gfQo8L3N0eWxlPgoKPGRpdiBpZD0iYXBsdXMtcHJlc3UiPgogIDxkaXYgY2xhc3M9ImNhcmQiPgogICAgPGRpdiBjbGFzcz0iaGVhZCI+CiAgICAgIDxpbWcgc3JjPSJkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBUUFBQVFBQkFBRC80Z0hZU1VORFgxQlNUMFpKVEVVQUFRRUFBQUhJQUFBQUFBUXdBQUJ0Ym5SeVVrZENJRmhaV2lBSDRBQUJBQUVBQUFBQUFBQmhZM053QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQTl0WUFBUUFBQUFEVExRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFsa1pYTmpBQUFBOEFBQUFDUnlXRmxhQUFBQkZBQUFBQlJuV0ZsYUFBQUJLQUFBQUJSaVdGbGFBQUFCUEFBQUFCUjNkSEIwQUFBQlVBQUFBQlJ5VkZKREFBQUJaQUFBQUNoblZGSkRBQUFCWkFBQUFDaGlWRkpEQUFBQlpBQUFBQ2hqY0hKMEFBQUJqQUFBQUR4dGJIVmpBQUFBQUFBQUFBRUFBQUFNWlc1VlV3QUFBQWdBQUFBY0FITUFVZ0JIQUVKWVdWb2dBQUFBQUFBQWI2SUFBRGoxQUFBRGtGaFpXaUFBQUFBQUFBQmltUUFBdDRVQUFCamFXRmxhSUFBQUFBQUFBQ1NnQUFBUGhBQUF0czlZV1ZvZ0FBQUFBQUFBOXRZQUFRQUFBQURUTFhCaGNtRUFBQUFBQUFRQUFBQUNabVlBQVBLbkFBQU5XUUFBRTlBQUFBcGJBQUFBQUFBQUFBQnRiSFZqQUFBQUFBQUFBQUVBQUFBTVpXNVZVd0FBQUNBQUFBQWNBRWNBYndCdkFHY0FiQUJsQUNBQVNRQnVBR01BTGdBZ0FESUFNQUF4QURiLzJ3QkRBQVVEQkFRRUF3VUVCQVFGQlFVR0J3d0lCd2NIQnc4TEN3a01FUThTRWhFUEVSRVRGaHdYRXhRYUZSRVJHQ0VZR2gwZEh4OGZFeGNpSkNJZUpCd2VIeDcvMndCREFRVUZCUWNHQnc0SUNBNGVGQkVVSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNGVIaDRlSGg0ZUhoNy93QUFSQ0FRQUJnQURBU0lBQWhFQkF4RUIvOFFBSFFBQkFBSUNBd0VCQUFBQUFBQUFBQUFBQUFjSUFRWUNCUWtEQlAvRUFHRVFBUUFCQXdNQkJBVUVDd2tLQ3djREJRQUJBZ01FQlFZUkJ3Z1NJVEVUUVZGaGNSUWlnWkVWTWpkQ1VuV0NrcUd4c3hZWEkxWmljcE95MFJnME5sTmxjNkxCd3RJa0pTZERSbU5rZElPVnRDWXpOVldGbE5ORlZPR0VvNlhENC8vRUFCa0JBUUFEQVFFQUFBQUFBQUFBQUFBQUFBQUJBd1FDQmYvRUFDZ1JBUUFDQWdBRkJBSURBUUVBQUFBQUFBQUJBZ01SQkJJaE1WRVRNak5CRkNKQ1lYRlNZdi9hQUF3REFRQUNFUU1SQUQ4QXVVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ0NXVWallXSmR5OHpJczQyTlpvbXU3ZHUxeFJSUlRIbk5WVStFUkh0a0gyRVA3ZzdTSFNyU3J0VnF4ckdYcTFkTThUOWo4T3U1UjlGYzkybWZqRXRVek8xbHRLaVpqRTJydUMvd0FUNFRYTmkzei9BS2NyWXdaSituRTVLeDlyRmlzZFhhNjB5Sm51N0QxS1k5K2Zhai9VNC8zWGVuOCtPd3RSL3dETUxYKzZuOGZKNFI2dFBLendyWmk5cmZibFg5OWJOMXkxN2ZSMzdGZisxRHVkUDdWWFRpL1hGT1hnN2l3ZWZPcXZCaTVFZjBkVlUvb0p3WkkraytwWHlub2Fyc0xxSHMzZmRxN1h0YlhzYlVLN0VSTjZ6RVZXNzF1SjhwcXQxeEZVUjcrT0cxS3BpWTZTNzNzQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDcjNibDNqZHRXdEkyTGgzcHBveUtaejlRb3BuN2FpS3U3Wm9uM1RWRmRYSDhpbFo2NVZGRkUxVlZSVEVSek16UGhFUE9YcS91bXJlblV2WE54eFhOZVBrWk0yOFQzWTl2NWx2ajR4SGUrTlV0WENVNXI3OEtzMXRWMDFPWm4xeXd6TEQxR1FseGNtRURFd3hMbExqSU5rNllidHl0ajc5MG5jK1BYWEZPSGZpTW1tbWY4QTN1UFZQRjJpZmI4M21ZOTlOTStwNlM0MTYxazQ5dklzWEtibG03UkZkdXVtZVlxcG1PWW1QakR5MitQaXZmMlNOMVJ1VG85Z1l0MjczODNSYTUwNi93QXo0OTJqaWJVL1RicXBqNHhMRHhsTnhGbWpEYjZTOEF3TkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNOZTB0dW1yYWZSM1c4eXhjN21abVc0d01TZlg2Uzk4M21QaFQzNnZ5VkFZaW1tbUthZkNJamlGanUzUHVtTXZjK2liUXg3bk52VDdOV2RsUkUvODdjK2JiaWZmRkVWeitYQ3VITDFlRnB5NDkrV1RMYmRpV0dSb1ZNQUpHR0pjcFlrSENVN2RpYmRQMkc2bjVXM2I5empHMTdGbW0zRXo0ZktMUE5kUDEwVGNqNklRVk1QM2JiMWZMMjl1SFR0ZXdabjVUcDJWYnlyVVI5OU5GVVQzZmhNY3g5S3ZKVG5yTlhWWjVaMjlQeCtMUXRUeE5aMFhDMWZBdVJkeE0zSG95TE5jZXVpdW1Lby9STDlyeFc0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWZQSXUyckZpNWV2VjAyN1Z1bWFxNnFwNGltbUk1bVoraDlFVDlxL2ROVzJPakdxMDQ5MmFNM1ZwcDAzSG1KOFk5THozNStpM0ZmNkhWSzgxb2lFV25VYlVyNmk3bHU3eDM1cmU2THMxVEdvWmRWeXpGVS9hMlkrYmFwK2lpbWwwTGpFUkVSRVJ4RVJ4REwyb2pVYVlKNnNqQWtaQVNERElERERMRWd1cDJLTjFmWm5wZmUyOWZ1OTdKMERLbXhURXo0L0o3bk5kdWZvNXJwL0pUd292Mk9kei9ZRHJGYTB5OWM3dUxyMk5WaDFjejRlbXA1dVdwL1JYVCtWQzg3eU9KcHk1SmJNVTdxeUFvV0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ25YYmczUlRxTytOSzJyWXVSVmEwakduSXlJajFYNzNIRVQ3NHQweFA1YTN1cFplUGdZR1JuWmR5TGVQajJxcnQydWZLbWltSm1xZnFpWG1qdTdYc3JkTzZ0VjNKbVRQcHRUeXE4bVluNzJtcWZtVS9rMHhUSDBObkIwM2ZtOEtjMXRScDFjc01zUFNaV1FBRG4za1UzTGxVVzdORTEzYTVpaTNUSG5WVk04Ukgwek1KajdVSFR5TmozOW5Yc2EzVEZpOW90dkF5S3FZOEp5Y2VJNzFVKytxSytmeVpjVGVJdEZmS1lpWmphSEJnZG9KWWxsaVNSOTlLMURMMGpWc1BWc0NydVplRGtXOG14UHN1VzZvcXAvVEQweTJyckdMdUhiV202N2hWUk9OcUdMYnliWGp6eFRYVEZYSHhqbmo2SG1ISzUvWWgzVkdxOU9NdmJGNjd6a2FIbFRGdW1aOGZrOTdtdWo2cXZTVS9SREZ4bE4xNXZDL0RiVTZXQUFlYzBnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTVNDSGUxL3VmOXovQUVkek1DemQ3bVhybDJuVDdmRThUNk9ybXE3UDVsTlVmbFFvMXg3dUU3ZHRIZFAyWjZtNCszckZ6dlkyZzR2ZHJpSjhQbEY3aXV2NnFJdHg5TW9LbDZ2RFU1Y2NmMng1YmJzNHl3NVN4TFNyWWxpV1dKQnYvWngyM082dXRPM3NHdWp2NDJIZW5VY253NWp1V2ZuVTgvR3YwY2ZTdG4ycnRzZnVrNk1hcGNzMjVyeTlKbW5VckhFZVA4SHo2U1BwdDFWL29ScjJFTnN6Ync5eGJ4djIrUFQzS05PeGFwL0JvK2ZkbVBkTlZWRWZrTE81dU5Zek1POWlaTnVMbGk5YnF0M0tKOHFxYW80bVBxbVhtWjh1c3NUSDAxWTZmcC9yeTU1OFBDZkFkdnZQUU1qYXU3OVgyM2xSTVhOTXpMbVBFejk5UkU4MFZmbFVUVFY5THFIcGIzMVpXV0pDUWNaU3oyUzkweHRqckxwOWkvYzd1SHJWdXJUYjNNK0VWMVRGVnFmejZZcC9MbEU4dWVMa1pHSmxXY3ZFdVRheUxGeW03WnJqem9ycG1LcVoraVlpWE42ODFacW1zNm5iMUpaYS93Qk90eVkrNzlqNlB1WEc3c1VhaGlVWHFxWSs4cjQ0cnAvSnFpcVBvYkE4V1kxT204QVFBQUFBQUFBQUFBQUk2N1FtL3dEVXVtK3dxTnhhWGdZbWRmbk90WTAyc21xcUtPN1gzdVo1cDhlZkNIVmF6YWRRaVoxRzVTS0tjLzNXZTgvNHE3Zi9BS2E4ZjNXZTlQNHJiZjhBNlc5L2F2OEF4Y25oWDYxRnhoVGllMXB2VDFiVzIvOEEwdDcrMWorNjAzci9BQlcyOS9TM3Y3VWZpNVBCNjFWeUJUaU8xcHZUK0ttMy93Q212TzAwN3RjNnBUUC9BQmpzYkR1eDY1eHRTcXBuNnFyYy9ySjRYSkgwZXRSYk1RRHRydFZiQno2NkxXdDZkcldoMVQ1M0xsaU1pMUg1VnFacS93QkZNMjFkMGJkM1ZwOGFodHpXc0hWTWFmT3ZHdlJYM1o5bFVSNDB6N3BpSlZXeDJwM2gzRm9uczdnQnc2QUFBUVQya3VzMjR1bU80OUswM1J0SzB2TnRadUhYZnJxeTVyaXFtcW12dThSM1pqdzRsM1NrM25VSXRhS3h1VTdDbWM5ckxmdjhXOXQvWGUvM21hZTFsdnZuNTIydHVUOEtyMGY3Uzc4WElyOWFpNVkxcnBkdUhLM1owODBMY21iWXMyTWpVY09qSXVXN1BQY3BtcVBLT2ZIaHNyUE1hblVyWW5ZQWdBQUFBQVIxMmc5KzZuMDQyREc0dEt3c1RNdi9BQzJ6anpieVpxaWppdm1PZm0rUFBoQ2ExbTA2aEV6cU55a1VVMC91dE44ZnhZMjcrZmUvdFpqdFo3MzllMk51L24zdjdWLzR1VHdyOWFxNVFqWHM2ZFE5VDZsN0d5dGYxYkJ3OEsvWjFHNWlSYnhacW1qdTAwVVZSUHp2SG41OHBLVTJyTloxS3lKM0c0QUhLUUFBQUFWWTZpOXBqZFcydCthOXQzRTIzb3QrenBtZGN4cmQyN2R1eFZYVFR4eE14SGh6NHZ3N1g3VXU3TlYzUnBHazVHMk5EdDJzN1BzWXRkZEY2NzNxWXVYS2FKbU9mRG1POXl2L0FCc210NlYrclhlbHRSaW1abGxRc0FBQWNhcXFhYVpxcW1JaUk1bVo5UU9RaVBmZmFHNmE3V3ZYTVMzcWwzWGM2M014VlkwcWlMMFV6N0tya3pGdVB6cG4zSWgzQjJ0dGR2VlZVN2YyZHArSlI5N2N6OHV1OVY4ZTdSRk1SK2RLNm5ENUxkb1Z6bHJIMnQwS01aM2FkNnE1RTgyc2pRc1NQWlowNlovcjExUHlVZHBMcTVUWDNwMXZUYTQvQnEweTN4K2haK0hrYyt2VmZJVWwwM3RWZFNjZXFQbGVuYmJ6cWZYempYYlV6OU1Wekg2Rzk3YzdXK0JjcXBvM0hzek14bysrdTZmbDBYNC9OcmlpZjB5NW5oY2tmVHFNdFpXZkViN082NDlNZDAzYU1mQzNSalltWFg1WTJvUk9MY21mWkhmNHBxbitiTXBHb3FwcnBpcW1ZbW1ZNWlZbnpVVFdhOTRkeE1UMmNnRUpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSDRkZTFQRTBYUk03VjgrNUZ2RXdzZXZJdlZUNnFLS1pxbjlFUDNJSjdhMjZQc04wcG8wR3hjN3VUcitWVGpURWVmb0tPSzdzL29wcC9LZDQ2ODlvcTV0UExHMU9kZDFqTDEvWE0vWGMrWm5LMUhKdVpWMzNWVjFUVng4STVpUG9majVjSWxsN2V0TUxsTEVzY25JRGpjcWltaXFxZkh1eHp3NU51Nks3Ym5kM1ZmYnVoVGI3OWk1bVUzOG1KOHZRMnY0U3ZuNHhUM2Z5a1d0eXhzaU45RjVlaFcyUDNJOUp0dmFKWFIzY2lqRXB2WlBNY1Q2YTUvQ1Y4L0NxcVkraHU3RWVUTHc3VHVkeTN4R28wcG4yNE5zVHB2VVhUZHoyYUlpeHJXSDZLN1AvWDJQRG1mamJxby9NbEFDOWZhODJ4TzRlakdvWlZpM05lWG90eWpVclhFZVBkbzVpN0g5SFZYUDBRb25FdlU0YS9Oai94a3kxMVprQnBWc01TNVM0eUMyWFlSM1ZYazZIcnV6Y205elZnWHFjM0VwbWZLMWQ1aXVJOTBYS2VmeTFtM24zMlk5enh0WHJSb21SZXVlanhOUXFxMDNKbVo4TzdlNGlpWitGeUxmMXk5QTRlVHhWT1hKL3JaaXR1cklET3NBQUFBQUFBQUFBRUY5dDZZam90Yjkrc1l2KzJuUkJQYmgrNHhZL0hPTitxdGJnK1NIR1QyeXBWRUV3ekhrUzloaWZLcXUzVFZ4VlhSVFBzbXFJWTlKYS94dHY4QU9oY1BzVGFOcEdvOUxkVHlNL1NzSEx1MDYzZW9wcnY0OUZkVVUraXN6eHpNYzhlTXA0amJlM1k4dEIwci93Q3p0LzJNbCtMaWxwcnBkWER1TjdlWWtYYlV6eEZ5M00reUtvYy9MM1BURE4yZHRITnN6WnpOcmFKa1c1ODZidUJhcWlmcnBSL3U3czdkTHRlczNKeDlEblE4cXJ5djZYZG16eFArYm5tM1A1cUk0eXM5NFRPQ2ZxVkRaOC9DWDdORDFiVk5DMVMzcW1pNmpsYWJuVy90Y2pGdXpicitFekhuSHVubUo5aVJldHZSTGN2VFBqVWFyOUdzYUJjdVJSVG4ycmMwVldhcG41dE42am1lN3o1UlZFelRNK0hoTXhFeGREVlcxYnh1T3lxWW1zOVZzZWlQYVlvemNpeG9YVWVxeGpYYStLTE9zVzZlNWFycTlVWHFZOEtKbjhPUG0rMktmTlp5aXVtdWlLNktvcXBtT1ltSjVpWWVXVXJVOWpQcW5rNUY2T20rdTVOVjN1V3FybWpYcmxYTlhjcGptdkhtZlh4SHpxZmRGVWVxR0xpT0hpSTVxcjhlVGZTVnBoaGxoWGlvSGJ2bVAzY2Jhai9KbDc5ckMzNm52YnZuL3dCdjl0eC9rcTcrMWFlRStXRldiMnE2OEhIaXpMSHJlb3lQUTNzNmMvdkc3UDUvK1YybS90QjdPMzNEdG4vaXUxK3B2enhjbnZsdnIyZ0FjSkFBQUFFSGR0bjdpM0h0MVhGL3JWSnhRYjIydnVNVS9qYkYvWFV0d2ZKRGpKN1pVajRKandjdVBCaVhzTVM1M1lVKzVGcWY0OXZmc2JLZjBCOWhpT09rR29lL1hMLzdLeW54NCtmNUpiY2Z0Z0FWT3dBQUdBZWMvWGFPT3RPOHZ4dmQvVlM2UFlVOGRRTnRUSHExbkMvOVJiZC8xNCs3VHZMOGJYZjFVdWcySC9oOXR6OGNZZjdlaDdVZkhIK01QOG5wcEgrdGxpUDliTHhXNEJpZklIUzczM1RvbXpkdDVXNE53WnRPTGc0MGVNOGMxVjFUOXJSUlQ1MVZUUGhFUW83MXE2MmJuNmk1TjNDdDNMdWtiZTU0dDZkWnVjVGRqMjM2byszbitUOXJIc256ZmJ0TmRTY2pmdS9MK0ppWkhPZ2FQZHJ4OEdpbWZtM2E0K2Jjdno3WnFtSmluMlV4L0tsRTFVUFN3WUlySE5idXk1TW5OMGpzUnhFUkVSRVJIbEVSNFF6VlZFVXpWVk1SSHRtZUliWDBqNmZhMzFLM2RUb1dqelJZdFc2WXU1dWJjcG1xM2kydWVPOU1SOXRWTStGTlBNY3p6NVJFeXUxMDg2SWRPOW1ZMW1jYlFzZlU5UW9pTy9xR28wVTM3MVZYdHA1anUwZkNtSVc1ZUlyajZUM2MweHpaNS9ZbU5sNWxYZHc4VEp5cDlsaXpWYy9xeEw3WkdsNnJqUnprYVZxTm1QYmN3N2xNZnBwZW9OcTFidFU5MjNSVFJUN0tZNGo5RG5NY3d6L20vd0RsWjZIOXZLK0txSnFtaUs2WnFqNzNueCtweW53ZW1XNGRuN1UzQmFxdDY1dHZTTlNpcU9Kbkp3Nks1K2laam1Qb1EvdmpzdDdGMWVpdTl0dkp6dHQ1TS9hMDI2NXlNZm4zMjY1NWo4bXFIZGVNcFBlTk9ad3pIWlNpNzQwelRQRXhNZU1UNVBTUG9sTTFkSHRuelZQTXpvbUp6UDhBNE5LbEhVN29aMUIyTGJ2Wm1WcDFPcmFWYmlhcXMvVHVibEZGUHR1VWZiMGUrZUpwajhKZGZvbHgrODlzK0lubi9pVEUvWlVxK0t0RnF4TU9zTVRFenR1SURDMEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNVFBFS085c2ZkRWE5MWVyMG14Y2l2RjBIR3B4STRudzlOWHhjdXo4ZkdpbjhsYy9kbXM0dTNkczZscjJiVkVZMm40dHpKdWVQbkZGTXp4OFo0NCtsNW42bnFHWHEycDVlcTU5YzE1ZWRmdVpOK3FmWFhYVk5WWDZaYk9EcHUwMlVaN2ROUGdNRDBtWms1WVprR0psWlhzSDdhbS9yZTR0MzM3Yzl6R3RVYWRqVlRIaE5kZkZ5N3g3NGlMY2ZUS3RGVXhFVE5VOFJIakwwQzdNTzJwMngwVzBIR3ZXcHQ1V2JhblVNbUpqeDc5NmUvRVQ3NHBtbVBvWmVMdHFtdkszREc3Sk1BZVcxdno2amlZK2ZwK1JnNWR1TG1QazJxck4yaWZLcWlxSmlxUHFtWG1kdXpSTCsyZDFhdHR6SzU5THBtWmN4Wm1mdnFhYXZtMWZUVDNaK2w2Y0tWOXR6Yk02VDFRd3R4MmJmR1BybUhIZm4vcjdIRk5YMTBWVy9xbHI0TytyY3ZsVG1qY2JRUkRMakRrOU9HVWxpWEtYR1NSaWlxNVJjcHJ0VnpidVV6RlZGY2VkTlVUekUvUk1STDBuNldibXQ3eTZlYUh1V2lhZS9uWWxGZDZtbnlwdXg4MjVUOUZjVlI5RHpYVzA3Q2U2cHlORjF6WnVSZDVxd3J0T2ZpVXpQajZPNTgyNUVlNks2WW4vd0FSajR1bTZiOExzTnRXMHMwQTgxcUFBQUFBQUFBQUFFRjl0NzdpMXY4QUcrTC9BTGFkRUY5dDc3aTFINDN4Zjl0YmgrU3JqSjdaVXBnbG1QSnhxZXhMRXViMkYvdVNhbitQYjM3R3luNUFmWVkrNUZxWDQ5di9BTEt5bng0K2Y1SmJjZnRnQVZPMzQ5YTAzQTFqU3NyU3RUeGJlWGhaZHFxemZzM0k1cHVVVlJ4TVM4NCtxbTA3dXgrb1dzN1d1VjEzTGVGZi93Q0QzS3A4YmxpdUlydDFUNys3TVJQdmlYcE9wVjI1TVMzWTZ2YWJrMFV4RldWb2x1YTU5czBYcnNjL1ZNTmZCMm1MNjhxYzBkTm9HZGp0blc4dmJlNGRPM0JnVmNaT201TkdWYjkvY25tYWZoTWMwejdwbDE1eEUrSHFsNk90c3U5UFVYVE15enFHblkyZmpWZDZ4azJhTDF1ZmJUVkVUSDZKZnBhWDBMdjE1UFJuWnQrN1ZOVmRlaTR2ZW1mWE1XcVlibzhTMGFtWWI0NndLZmR1Ny9EN2JmNHF1L3RWd1ZQTzNkeisrRHR6OFZYUDJyUndueXdyemUxWGlYSDFzeXg2NGVveVBRM3M2ZmNOMmY4QWl1MStwdjZQK3puOXd6Wi80cnQvNjBnUEZ5ZStXK3ZhQUJ3a0FBQUFRYjIycGlPakZQdjFiRi9YVW5KQlhiZTUvZWJ0ZmpmRy93QnRiZytTcmpKN1pVcDlURStSNmlYc3l4TG85aG1QK1NEUC9IbC85bFpUMmdYc05mY2Z6dngzZi9aMlU5UEd6L0pMYmo5c0FDcDJBQUF4SVBPbnJ2OEFkcDNsK043djZxWFFiRi93NzI3K044UDl2UTJEcng5MnJlWDQydS8xYVhRN0RqLzIrMjUrT01QL0FOUlE5cVBqai9HSCtUMHpqL1d5eEgrdGw0cmNOWjZxYXJkMExwcnVYV0xOVTAzY1BTc205Ym1QVlZGdXJ1ejlmRFptbGRkc2E3bDlHZDRZMW1tYXJsZWpaUGRpUFh4Ym1mOEFVNnI3b1JQWjV6MjZPNWFvbzgrN1RFRlVPVVR6NHg1VDR3Uzl2VEF1SDJFdE94YlBUWFdkU29pbjVWbGF4WGJ2VDY0cHQycUlvai9TcW44cFlkU2pzaWRUOERaZTRNN2JlNE1takYwaldMbEZ5MWsxenhSajVNUjNmbno2cWE2ZTdIZThvbW1PZkNlWXV0UlZUWFRGVkZVVlV6SE1URTh4TVBKNG1zeGttWmJNVXhOWElCUXNHR1FHSmlKODNDeGF0V0xWTnF6Ym90MjZJNHBvb3A0aW1QWkVSNVBvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0NBKzI1dWVkSzZhNG0yN0Z6dTM5ZHk0cHVSRStQeWUxeFhYOWRYbzQrbVZNZmltRHRjYnAvZEgxaXk4T3pjaXZFME8xVGdXK0o4SnVmYjNaK1BlbUtmeUVRUzliaDZjdU9HUEpiZG1BWmFGYmlTeXdEdWVudTNybTdOK2FIdHEzRXpHbzV0dTFkbVB2YlhQZXVUOUZGTlV2VEMxUlJidFUyN2RNVTBVeEZOTk1lVVJIbENuUFliMnpHb2I5MVhkRiszemEwakVpeFlxbi9IWHA4WmozeFJUTWZscmt2TTR1Kzc2OE5XR3VvMkFNaTRReDJ4ZHNmWi9vNWxhalp0ZC9MME8vUm4yNWlPYXZSeDh5N0h3N2xVMWZrd21kK1hWOERHMVRTc3ZUTTIzNlRGeTdGZGk5UitGUlhUTk5VZlZNdXFXNWJSS0xSdU5QTDJHWDdkeWFQazdkM0pxZTM4em41UnB1WGN4YmsvaGR5cVlpcjZZNG42WDRZZTNFN1lISnhseWNaU09NK2JmK3pydW1Ob2RZdEIxRzljN21KazNma0dYTXp4SG83M0ZNVFB1aXYwZFgwUzBDWWNaaWZLSm1tWjljZWNlOXhhc1dpWWxNVHFkdlUrR1dtZEU5MS91MDZYNkZ1Q3V1SzhtOWpSYnkvSHl2Mi9tWFA4QVNwbWZwYm04V1kxT20rSjJBSUFBQUFBQUFBQkJ2YmIrNHRUK044WDlkU2NrR2R0MzdpOXY4YjQzKzJ0d2ZKRGpKN1pVcGp5Y2FuS1BKaXJ5ZXl4TG05aGY3a1dvL2p5OSt5c3A5UUYyRi91UmFqK1BMLzdLeW4xNDJmNUpiY2Z0Z0FWTzJKK0tqM2JUMWExcVBXcjVIYXFpcjdGNlhZeHErUFZYWFZYZG1QcXJvVzI2cTc2MGJwOXRISjEvVjdrVlRSRTBZdU5GWEZlVmVtUG0yNmZqNjU5VVJNejVQT3ZjV3NaKzROZno5ZDFTN0YzTzFESXJ5TDlVZVhlcW55ajNSSEVSN29odDRPa3pibVVacmROUHdsVlVVeE5jejRVeHpMankyM28vcysvdjNxTHBPMjdkRlU0OTI5RjNPcWovQUp2R29tSnVUUHM1amltUGZWRGZNeFdOeXpSRytpK3ZSakJ1NmIwazJsZ1g2ZTdkczZQaTAxMCt5ZlJVek1OdWNMVkZGdTNUYm9waW1pbUlpbW1JOElpUEtITjRrenVkdDhScUJUN3QzZjRlN2JuL0FDWGQvYXd1Q3A5MjcvOEFEM2JmNHJ1L3RXamhQa2hYbTlxdXhIbU1ldDZqSTlET3pwOXc3Wi80c3QvNjIvbys3T1AzRE5vZmkyMy9BSzBndkZ5ZStXK3ZhQUJ3a0FBQUFRYjIydVAzbUtlZi9tMkwrdXBPU0RPMjM5eG1qOGJZdiswdHdmSkRqSjdaVW45VEUrVFBxY1o4bnNTeExwOWhtZWVqK2Y4QWp5Lyt5c3A2UUgyR1B1UWFoK1BML3dDeXNwOGVQbitTVzNIN1lBRlRzQUFZbGxpUWVkWFhpUDhBbHEzbCtOcnY2cVhSYkMvdysyMytPTVAvQU5SUTcvcnpIL0xWdkw4YlhQNnRMb3RneC83ZjdiL0hHSC82aWg3VWZISCtNUDhBSjZZUi9yWllqL1d5OFZ1SHh6TEZyS3hydU5rVVJjczNhSnQzS1o4cXFaamlZK3FYMllCNXNkU3RvNTJ4ZDdhbHRqT29xLzRMYzV4N2t4NFhzZXJtYmR5UGpUNFQ3S29xajFOYmxmM3I5MGwwL3Fib051YlZ5MWc2L2d4Vk9EbTFVODB6RStkcTV4NHpibWZwcG54ajF4TkdOMmJiMXphbXVYdEYzRHAxN0F6clUrTnU1SGhYVCtIUlY1VjB6NnFvOFBwOEhyWU0wWkkvdGp5VW1zdW9TbDBtNjViMDZmMjdXbjI3MUdzNkxSNFU0R2JYUDhGSHN0WEk1cW8rRXhWVDdJaEYzSGl5dXRTdG8xTU9JbVk2d3ZQc0x0RzlPOXllang5U3pMbTNNNnJpSnRhbHhUYW1mNU42UG1USDg2YVo5eVhzVEt4c3ZHb3ljVy9hdjJMa2Q2aTVhcmlxbXFQYkV4NFM4dXBkNXMvZWU2OW5aUHA5c2E5bmFYUFBlcXRXcm5ObXVmNVZxcm1pcjZZWTc4SEUrMlYxYy9sNlhNcWw5UDhBdFk1dGowZUp2cmIxT1RSNVRuNlZ4VFZ4N2FyTmM4VCtUVjlDeGV3ZW9Pejk5WWM1RzJOY3hjNmFJNXUySW1hTDlyK2ZicTRxcCtQSEh2WTc0cjA3d3ZyZUxkbTBqRVR5eXJkQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURvT29XNDhmYVd5ZFozSms4VGIwN0R1WDRwbWZ0Nm9qNXRQMDFjUjlMdjFjdTNSdWY1RnNyU2RwMkxuRjNWOHYwOStJbi9tTEhFOFQ4YmxWSDVzck1WT2U4VmMzbmxqYW8rUmtaT1hrWGN2TXVUZHlzaTVWZHYxelBqVmNxbWFxcCttWmw4Z2V5d25CTElrY1Q0eVM3TGFXaTVHNWQxYVZ0N0ZpWnU2bGwyOGFPUFZGVlVSVlY5RlBlbjZDWjBMdWRrbmJNN2U2TWFia1hhTzdsYXhYVnFOM21PSjRyNGkzSDlIVFI5YVhYd3dNV3hnNE5qQ3hiY1c3R1BicHRXcUk4cWFLWWlJajZvZmQ0ZDdjMXBsdnJHbzBBT1VqRElDa25iVzJ6T2pkV2JHdjJyYzA0MnZZZE5kVlhIaDZlenhSWEg1bm9wK3RCMEx3ZHN2YTg2OTBmdmFyWXR4Vmw2RGtVWjFNeEhNemErMHV4OE83VjN2eUlVZmg2dkRYNXNjZjB4NWE2c3lBMEsySmNaY21LZ1dnN0IrNnBwdjdnMlZrWGZDWXAxUERwbWZoYnZSSDAram42Wld0ZWNYUS9kSDdqdXJHMzlkdVY5ekdveW94OHVmVjZDNy9CMXpQdzVpcjhsNk9SNVBMNHFuTGZmbHJ3MjNWa0JtV2dBQUFBQUFBQ0RlMjM5eGFuOGI0djY2azVJTTdibjNGcVB4dmkvN1MzQjhrT01udGxTbVBJazlSTDJXSlpqc3FkVmRoN0g2ZDV1a2JuMXljRE51YXJkeUtMZnlTOWM1dDFXN2NSUE5GRXg1MHo0ZTVMZjkwUDBnL2piL0FQNC9KLzhBeHFFK3RueDQ4bVcvQzB0YVptVnRjc3hHbDY4N3RKOUk4ZXpWWGIzQmw1VlVlVkZuVE1pYXAvT29pUDBvNzNuMnQ4U20xY3M3TzJwazM3c3h4Ums2cmNpMWJwbjIram9tYXF2aE5WS3Fzc1RUTStQQlhoY2NmMlRsdEx2ZDg3ejNOdmpXdnN0dWpWYm1ma3hFMDJxZU81YXNVejk3Ym9qd3Bqd2puMXp4NHpMb0preDdkekt5cU1YRXQzTW5Jcm5paTFab201WFZQc2ltbm1aK3BNSFR2czU5UmQwM0xkL1U4T2piT25WY1RON1VJNXZUSDhteEU5N24rZk5DNmJWeHgxNlE0aUp0S0o5SjA3VU5ZMVRHMHJTY08vbloyVlhGdXhqMmFlOVhjcW4xUjd2WE16NFJIalBFTDRkbS9wSlk2WjdidVhzK3ExazdpMUdtbXJPdjBlTk5xbVBHbXhibjhHbVptWm43NmZIeTRpTzY2U2RKZG85TnNTcjdEWXRXUnFWMmlLY2pVc25pcS9kajhHSjQ0b3A1KzlwaUk4dWVaOFcvdlB6OFJ6OUs5bW5IajVlc2dES3RGUDhBdDNUSDd2TnQvaXU3KzFoY0JUcnQzei95aDdjai9KTno5czA4TDhrS3MzdFY2bGlQT0Fqemg2akk5Qyt6bkhIUTNaOGY1TXQvNjBnTkI3Ty8zRDlvZml1MStwdnp4Y252bHZyMmdBY0pBQUFBRUc5dHJqOTVlUHh0aS9ycVRrZzN0c3hNOUdLWmoxYXRpelAxMUxjSHlRNHllMlZKbzhpVDFNVlQ0UFpsaVhTN0RYM0lNLzhBSGwvOWxaVDBnSHNMVlJQU1BVNmVmR05kditIL0FJTmxQenhzL3dBa3R1UDJ3QUtuWUFBeExMRStRUE8zcng5MnJlWDQydWYxYVhSN0IvdysyMytPTVA4QWIwTzQ2NTF4YzYwYnlxcDh2c3hlajZvcGovVTZmcC9IUFVEYlVlM1djTC8xRkQybytPUDhZZjVQUzZQWDhXV0k5ZnhaZUszQUFNUzZEZkd6ZHQ3MDBpZEwzTHBOalB4L0dhSnJqaXUxVlAzMUZjZk9vbjN4TFlCTVRNZFlPNm52VW5zdDdnMHl1N203SDFHaldzVHhtTUxMcXB0Wk5NZXltdndvdWZUM0orS0JkYjBqVmRDMUNyVHRiMHpNMDNNcDg3R1ZacXQxL0dJbnpqM3h6RDA3NGRidURRZEYzRGdWYWZydWxZV3A0dFhuYXlyTk55bjR4RXg0VDc0YThmR1dyMHQxVTJ3eFBaNWtUN0hHWThGemQ4ZGxyWk9yVFhrYlp6OC9iZVJQakZxaXI1VGpjL3pLNTcwZmsxUkh1UVR2dnMvZFNkcXhjdjI5TG8xL0NvOGZsR2x6TnlxSS9sV1o0cmo4bUtvOTdYVGlNZC90VGJGYUVUY2VMOUduNWVYcDJkWno5UHlyK0hsMmF1OWF5TEZ5cTNjb24zVlV6RXcrZGROVkZ5dTNYVE5OZEZVMDFVMVJNVFRNZXFZbnhpZmRKTUwxYXgzUjd0T2FucHQ2enBQVVNtclVjR2VLYWRVczIvOEFoRnIzM0tLZkM1SHZwaUt2ZFV0aG8ycDZmck9sNCtxYVZtV00zQ3lhSXVXYjltdUtxTGxNK3VKaDVmeWx6c3k5VmNycC91dTFwR3BaTXp0ZlU3OFVaTkZkWHpjUzdWNFJmcDlrYzhSWEhyang4NmZIRG40YUpqbW8wWTh2MUsrQXhUUE1STVR5eTg5b0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWXFuaUZDZTFKdWVOMGRadFY5RGM5SmlhVEZPbTJQSHc1dDh6Y21QL0FCS3FvL0poZExxaHVhMXM3WUd0N2x1ekhPQmlWM0xWTS9mM1pqaTNUOU5jMHg5THpjcnVYcnRkZDNJdVRkdlhLcHJ1MXo1MVZ6UE5VL1RNekxid2RPczJVWjdmVEFEMEdZSkdKU09NeW5Yc1M3YSt5L1ZITDNCZW81eDlDdzVtaWVQRDA5N21pbjZxSXVmWENDWjlrTHU5aTdiZjJHNlFVNnZkbzR5TmN5Njh1WjQ4ZlJVL3dkdVBoeFJOWDVUUHhWK1hHc3hWM1pPQU1QSmJHUnEyNytvbXh0b3hWRzR0MWFWcDl5bi9BSm01a1JONmZoYnA1cm42a1BiczdXRzBNTHYydHQ2RnF1dFhJbVlwdTN1TVN6UHY1cTVyNC9JV1V4WHYyaHpONngzbFlsOHN2S3hzU3hWa1pkKzFZczBSelZjdTF4VFRUSHZtZkJTRGRQYWE2bTZ6M3JlbTNkTTIvWm5tSStTWS9wYnZIOCs3ekgweFRDS3R3Ni9ybTQ4bWNuY0dzNmhxMTZmdnN6SXF1eEh3cG1lSStpSWFLOEhhZmRPbFU1NCtsNHVvZldycEhoNlhuNkxxVzVMR3F4azJLOGU5aTZiUlZsVlZVMVV6VFZIZW8rYkhoTStkVUtIVlUyNktxcUxWVmRWdW1aaWlxdU9LcHBqeW1ZOXZIREhQaHhFUkVleUdXekZoakgyVTN2Tis3aU9Vc1N1Y01NVk1rZytWZE1WUk5NK1V4eEwwVDdQKzZwM2owajBIVjd0eUs4dW5IK1M1bmo0K210VDZPdVorUGQ3MzVUenVsWnJzSTdybXpxdXZiS3lMdjhIa1VVNmxpVXpQMzlQRnU5RWZHUFJ6OUVzbkYwNXFiOExjTnRXMHRvQTh4ckFBQUFBQUFBRUdkdDM3aTFINDN4ZjlwT2FDKzI5OXhlMytPTVgvQUcxdUQ1SWNaUGJLbE1lUkxQcVlsN01zU3l2WlU2VmJGMzEwL3dCUTFYZEdpL0xzdXpxdHpIdDNJeWJ0dmkzRnExVkVjVVZSSG5WUDFwZS91ZHVrSHIycHo4Yy9JLzhBeU5aN0M4ZjhrdXFUN2RkdmZzYktmWGs1c2w0dk1STFhTc1RXT2lLWTdPM1I2UDhBb2pFLy93QmRrZjhBNUg3TlA2RDlKTUtydld0a2FkZG5ubi9oRlZ5OStpdXFZU1VLdlZ2NWQ4bGZEck5EMi9vT2hXZlE2Sm91bmFaYjQ0N3VKalVXb244Mklka3lPSm5ib0FBQUFVNjdkLzNROXVmaW01KzJYRlU3N2QvM1F0dWZpbTUrMWFlRitTRldiMnE4SHJobGoxdlVaSG9aMmR2dUg3US9GZHB2N1FlenY5dy9aLzRydGZxYjg4WEo3cGI2OW9BSENRQUFBQkVmYSt4ZmxIUVRXN2tSek9QZXhiM3dpTWkzRS9vbVV1TlU2djZEWHVmcGh1UFFyTkUzTCtYcDEybXhUSHJ1eFQzcVA5S0tYZU9kWGlYTm8zRXc4M3ZMd1ltZkE1bVk1bUppWmptWW4xT05VK0QybUZicnNFNThYTm9ibjB6dmMxWStxVzcvQUI3SXVXYVkvWGJsWlZTWHNRYmx0NlQxVXp0Qnlic1VXdGN3ZTdaNW56djJabXVtUHBvcXVmbXJ0UEo0bU5aSmJNVTdxQUtGZ0FBeExMcWQ0YTNpN2IycnFtdjV0VVU0K240bHpKcjU5ZmRwbWVQak04UjlKRWJIbmYxTnlhY3pxVnVuTHBxNzFOM1djdXFKOXNlbXFpUDFQMDlHY2I1WjFnMmZqZDN2ZDdXY2VxWTkxRlhmbjlGTFU3bDY3ZnJydjM1L2hydFZWeTUvT3FtYXAvVE1wVjdJK2xWNnIxMTBpOUVjMjlOc1pHYmM5M0Z1YmRQK2xkajZudFpQMXh6L0FJdzE2Mlh6anlaWWp5WmVLM0FNVFBFZ3lBQUFEQk1NZ0k1NnM5SHRuOVE4YTVkejhTTURXTzd4YTFURnBpbTlUUHE3OGVWeW4zVmZSTWVha3ZVM1l1dTlQdHozZEMxMjNSTlhkOUpqWk52bjBXVGE1NGl1bm55OWswejR4UHRqaVo5SDVoQ2ZiTDI3aTZwMGZ2NnpYUlQ4czBUSXRYN056anhpaXV1bTNjcCtFeFZFL0dtR3JoczlxMmlzOWxPV2tURzFJcGp4WTd0TlVURlVjeFBoTWU0WmlYcHNyMEQ3TmU0NzI1K2pHZ1oyVmNtN2xZOXFyQ3YxelBNMVZXYXB0OTZmZk1VMHo5S1IwRWRoK3E1VjBkeXUvd0E5Mk5heVlvK0hkdDgvcDVUdThiTkdza3hEZFNkMWdBVnVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdKOGdWbzdkZTZaeHRCMFBaMlBjanY1OStjN0twaWZIMFZyd29pZmROZFhQNUNwMGVTUU8wWnVqOTEzV1BYTSszYzcrSmgzUHNmaWNUekhvN1BOTXpIeHJtNVAwd2o2SHI0S2NsSWhpeVczYVdaWUJjNEdKWmxpVWpOaXhYbFpOckZ0M0xkdXUvWFRhcHJ1VlJUVFROVThjek0rRVJIUE16N0lYWXY5ZWVrdXc5dTRHMzlKMVMvcm4yT3hiZUxidGFYanpjcDRvcGltUDRTcnUyL1YrRktra3h6NFN6UGo1cWNtR01tdVozVzgxN0xIN3I3V200TW1hcmUxOXFZT24wZU1SZTFHL1ZmcitQY283dE1mblNpSGQzVmJxUHV1YTZkYTNkcVZWaXVPSnhzU3Y1TFo0OW5kdDhjeC9PbVdtc0pwaHBYdENKdmFlOHNVVTAwMVZWVTB4RlZYalZNUjR6OFo5YlBpUXo0Y0xYTERKNStUOWVpNlRxdXVaY1ltaWFabmFwa2Y0dkR4NjcxVWZIdXhQSDA4SUg1WWxtSlM5dEhzM2RVTmNxcHVaMkRoYmZ4NThlL3FHUkZWeVk5MXUzM3AvT21sTU96K3lodGJDN3Q3ZEd2NmxyTnlQR2JPTkVZbG40ZUhOYy9uUXB2eEdPdjJzakhhVlFxNjZLSTVycXBvNS9Dbmg4dlQ0OHp4R1JabWY4NUMvbXBhWDBTNlM2WlRrWjJtYmMwYUpqK0Q5TFlpOWxYdjVzVEZWeXY2T1VFOVNlMExvK2Q2WEUyWHNEUnJWRTgweHFHcjROcTVYTWUybXpFY1IrVlZQdnBjMTRpYnordFV6aml2ZVZlNG1Kam1tcUpqMnhQTE12MWFycUdWcW1vM3MvTnJ0MTVGNnJ2VnpiczBXcWVmTHdvb2lLYVk5MFJEOGt0Q3B4cWJQMG0zUlZzenFUb1c1TzlOTm5FeTZZeWVKODdGZnpMditqVk0vR0lhekxoVkVURXhWSE1UNFRDSmpjYWxNVHFkdlU2aXFtdWlLcWFvcXBtT1ltUEtZY2tZOW1IZFg3ck9qZWpaRjYvNlhPMCtpZFB5K1o1bnYydm14TSsrcWp1VmZTazU0dHE4c3pEZEU3allBNVNBQUFBQUFJTjdiZkg3eXNjLy9Oc1g5ZFNja0Y5dDduOTVlMytOOGIvYlc0UGtoeGs5c3FVK3B4cWs1OEdLcGV6TEV1ZjJGcC81Sk5UL0FCNWUvWTJVL0lBN0NuM0pkVS9IdDc5alpUKzhiUDhBSkxiajlzQUNwMkFBQUFBQUtlOXU2WS9kL3R6OFZYZjJxNFNuWGJ2NS9mRTI3N1BzVGMvYk5QQ2ZKQ3JON1ZlZVdQV014NXZWWkhvWjJkZnVIYlAvQUJYYS9VMzlCblJMcXgwMjBYcE50blNkVTNscEdIblltbldyVit4ZHZjVlc2NGp4cG1PUE51TTliT2svOGZ0RC93RHVQLzRlTmtwYm1ubzIxdEdvNnBDRWVUMXU2VFIvMDkwVCttbit4ajkrL3BOL0gzUmY2V2Y3SFBwMjhPdWFQS1JCSGY3K0hTWCtQdWkvMHMvMkVkYitrMC85UGRFL3BwL3NQVHY0T2FQS1JCb3VsOVh1bVdxYWxqYWJwKzl0R3ljekt1MDJiRm1pL3dBMVhLNnA0aW1JNDg1bHZNVHk1bXN4M0luYkxFK1RJaEx6ODdTbXlyMnl1cXVwV2FMUGMwM1U2NnMvQXFpUG16UlhQTmRFZStpdVpqajJUVFByUmxNdlJIcnAwMXdPcG16TG1sWGE3ZU5xZU5NM3ROektxZWZRM2VQS3IxelJWSGhWSHM0bnppSG45dVRROVgyMXJ1WG9ldTROekIxSEVyN2w2elg2dlpWRStWVk14NHhWSGhNUFY0Zk56MTE5d3laS2NzN2ZIUnRSenRHMWpDMWZUTDg0K2RnMzZNakh1L2dWMHp6RThldVBWTWV1Sm1Ib2YwYjZpNlAxSTJqYTFmVDY2TE9aYWlMZW9ZVTFjMTR0N2p4aWZiVFBuVFY1VEh2aVlqem9pSGY3STNadUhaZXZXOWMyM3FGV0ZtVVIzSy9Edlc3MUhQTTBYS1BLcW4zZWNUNHhNVDRwellQVmpwM1JqeWNrdlM4VngyRjJxOXVabG0zamIwMGpMMGZLaU9LOG5Fb25JeHFwOXZFZndsSHc0cStLVmRINnU5TWRWdDBWNGUrdEJuditWRjNMcHMxL1RUWHhNZlREemJZcjE3dzFSZXMvYmVSckdUMUMyRmpXcHUzOTY3ZHQwUjV6T3BXZjk1cVc0KzBGMG8wYTNYeHVpMXFkMm1QQzFwdG12SnFuNmFZN3NmVFZDSXgybnRDWnRFZmFVNW53VmI3YUhVL0dxdzQ2Y2FMbFUzYnRkZE4zV2E2SjVpM1RUTVZVV09md3BuaXFxUFZFVXg5ODFucW4yb053NjNZdmFic25BcTIvaVZ4Tk5XZGZxcHVabFZNL2dSSE5GcjQ4MVQ3T0ZlcnR5dTVjcnVYSzZxNjY2cHFycnJxbXFxcXFaNW1abWZHWm1mSG1XekJ3MDFubXV6NU1zVEdvWW1xZmF0djJFOW8zTVhRTlozcmxXcGlyVXJzWWVITXg1MmJVek5kVWU2Yms4ZjhBaHE0ZEtkaTZ2MUYzbGpiZTBxbXFpaWVMbVpsZDNtbkZzYzhWWEo5L3FwajExZTZKbVBSamJXamFmdDdRTUhROUtzUll3Y0d4VFlzVzQ5Vk5NY1J6N1o5Y3o2NW1YWEY1TlJ5d1lhOWR1eEFlYzBpRk8xZHZqWDlnYVB0ald0dTVkTm5JblZhcmQyMWNwNzFxL2I5RFhNMFYwK0hNZUVUNFRFeE1STVNtdFd2dDhSUDdpOXNUNm8xV3Y5aFd0d1JGc2tSTGk4NnJMYXVrdmFKMmR2R2JPbmExWFJ0eldxdUtZczVWeVBrOStmOEFxN3M4UnpQNE5YRSt6bnpUVEZVVEVURTh4THl0bmlxbWFaaUppZk9KaEluVFhySnY3WWNXOGJTdFhuTTAyai85UDFDSnZXWWoyVVR6M3FQeVppUGMxWk9EKzZLcTV2OEFwNkhpdVd6KzFkdGpMdDBXdDBiZjFMU2IvbFZkeGVNcXg4ZkRpdVBoM1pTZG9uV2ZwZHE5dUs4WGZHajI1bjd6S3ZmSjY0L0p1ZDJXUzJHOWU4TG92V2UwdC9IUjI5MzdVdVVSWGIzTm90ZE0rUE5PZmFtUDZ6cjlTNms5UHROcHFuTzN0dDJ4TlBuVFZxTnFhdnFpcmx4eXo0VHVHMW9PN1orNThYU2VrMWVnemRvK1c2NWtXN051MTk5NkszWFRjdVYvQ083VEhQdHFoOGQvOXAzWTJqWXQyMXRtbS91VFA0NG85SFJWWnhxWjl0VnlxT1pqK2JGWDBLazcvd0I0Ni92bmN0N1g5eFpjWkdWWEhjdDBVUjNiVmkzRTh4YnQwK3FtT2ZmTXo0ek15MThQdzlwdEZyUnFGV1RKR3RRNkhrbXFJOFpuaUk4M0daU2QyZU9sdWQxSTNkYnJ5Yk5kdmJlbjNhYTlSeUpqd3V6SEV4ajB6NjZxdnZ2d2FabWZPYWVmUXZhS3h1V2FJbVoxQzJYWmQwQy90N29sb09QbFVWVzhqTG9yenJsRXh4TlBwcTVycGlmeVpwU2M0MjZLYmR1S0tLWXBwcGppSWlPSWlQWTVQRnRibXRNdDBScU5BRGxJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTAzclZ1eU5sZE1OZDNEVFhFWk5qR21qRWpuN2EvWDh5M0g1MVVUOElsdVNxL2J0M1JNenQvWmRpNTRUTldwNWRNVDZvNW90UlAwemNuNklXNGFjOTRoeGUzTFhhcnRNVEVSRlZVMTFldXFmT1o5Y3NzRDJHSm53QWxJd3hMTXNBd3crK240ZVpxV2JUaGFkaVpPYmxWZmEyTWF6VmR1VCtUVEV5bERhZlo0NnA3ZzdseTdvMWpSTWV2L25OVXlJdDFjZjV1anZWL1JNUTV0ZXRlOHBpc3oyUlBNdU5kVVVSRTFURlBQbHpQSEszZXoreVpvR0xORjdkbTVkUTFXdVBHY2ZDb2pGcy9DYXZuVnpId21sTXV6K21Pd05wVFRjMERhbWw0bCtqeXlKcytrdi9BTkpYelYrbG12eGxJN2RWc1liVDNVTjJsMHk2ZzdybWlyUXRvNnBmczErV1JldGZKN1BIdDc5enV4UDBjcGwybDJUTmZ5WW91N3EzVGhhZFRQRXpZMCt6T1JjK0hmcjd0TVQ4S2Fsdk9CbnZ4ZDU3ZEZrWWF4M1JGdEhzNmRMdEFtbTdmMGU3cm1SVDR4ZDFXOU42UDZPT0xmOEFvcFUwN0F3ZE54S01UVHNQSHc4ZWlPS2JXUGFwdDBVeDdvcGlJZnFHYTE3Vzd5dGlzUjJZaUNmSmtjcFVQN1hlM0x1aGRiczdPbnYxWSt0WTl2TnMxMVZUVnhNUjZPNVJFejZvcXA1NDlYZmhFbkM1ZmJmMnY5bE9uT0R1YXhiNzEvUTh1UFNUSCtJdmNVVi9WWDZPZm9sVFdIcThQZm14d3laSTFaZ2xtWEdXaFV4TGhMbkxFd0N3M1lYM1RPbjczMWZhZCs3UG9OVnhZeXNlbVo4SXZXZkNxSTk4MFZjL2tMa1BORHB6dU81dERmZWk3bXR6UEduWmxGMjdFZmZXcCtiY2o2YUtxbnBYalhyV1JqMjc5bXVMbHE1VEZkRlZNOHhWVE1jeE1mUTh6aTZhdnZ5MTRaM0duMEFaVm9BQUFBQUFnL3RzMDk3b3RINDJ4ZjExSndkTnZEYStnYnUwbU5KM0pwZGpVc0dMdE43ME43bnU5K25uaWZDWTh1WmQ0N2N0b2x6YU54cDVsejN2d1orcHdudmV5ZnFlZzhkQ2VrVWY5QTlKL05xLzNqOTRucEYvRVBTUHphdjk1djhBemFlSlVlakxTdXd0RXgwaTFMbVAvd0JjdmZzYktmblI3TjJudDNaMm1YTk0yenBPUHBlSGN2VGZyczJJbnV6Y21JaWF2R1o4ZUthWStoM2pCa3RGN1RhRjlZMUdnQnc2QUFBQUFBRlArM2RSenZ6YmRYSG5wZDJQL3dDN0M0RFZ0NTlQdG1ieXk3R1Z1ZmJ1RHF0L0h0emJzMTM2Wm1hS1pubVlqaWZhdHc1SXgzNXBjWHJ6UnA1dThWZmd6OVJNVmZnejlUMEVqb1gwamovb0hvLzVsWDlyTTlEZWtuOFE5SC9vNnY3VzM4Mm5pVlBvUzgrdm4veW1KNy84cDZDZnZGZEkvd0NJZWtmbTFmN3grOFYwaS9pSHBINWxYOXFQektlRDBaZWZYei81UjgvK1U5QmYzaXVrWDhRdEkvTXEvdFlub1QwaS9pSHBINXRYKzhmbVU4SG9TOCtwNy9zcVludit5cDZDL3ZEOUlmNGg2VDlWZis4ZnZFZElmNGhhUitiVi92SDVsUEI2TXFSOUhwcS9mYjJmNS84QXh6RS9hMHZTU2o3Vm9Xa2RHdW1Ha2FwaTZwcHV5dEt4c3pFdTAzckY2aWlydlc2Nlo1aXFQSHppVy9SSEVNM0Vab3l6RXd0eDBtc01nTTZ4aG9mVjNwWnRqcVZwVVdOWXNUajZoWnBtTVRVYkVSRit4N3VaKzJvNTg2SjhQWnhQaTMxaE1XbXM3aEV4dnU4L3VwblJMZmV4TDF5OWthZFZxK2swek0wNmpwOUZWZE1VL3dEV1VlTlZ1ZmJ6elQvS1J4NFRITVRFeDdZbmw2a2NORTNuMGk2ZDd1dTE1R3RiWHdxc3V2N2JLeG9uSHZUUHRtdTNNVFY5UExiVGpQcTBLTFlQRHp2bWZIbGlxZWZDWWlZOTYzMnU5a3phdVJYTmVqYnExelQrZnZMOUZySnBqNGVGTlgxekxXOHJzaTZqRlUvSnQrNHRWUHE5THBWVVQraTYwUnhXT2Z0WE9LeXNYZG9pZVl0MFJQdXBoejcwejRUS3lkdnNpYTFOY2VsMzVwOU5Qcm1uUzY1bjlOeHNtaWRrZmI5bTVUVnJPOGRYemFZODZNWEh0WThUOU05K1NlS3h4OWtZcmVGUmJreFRUM3FwaW1QYk04SlA2VWRDdDhiK3ZXY212RXVhRG9sVXhOV29aMXFhWnJwLzZxMVBGVmMrK2VLZmZQa3VEc25vMzA0Mmhkb3lkSjJ6aTE1dEhFMDVlWk01TjZtZmJUVlh6M2Z5ZUcvUkRQazR6ZlNrTGE0ZkxWT2wvVDdiZlRyYjBhUHQzRW1pSzVpdkp5YnM5NjlrM09PTy9YVjYvZEVjUkhxaUcyZ3hUTXpPNVh4R2dCQU5NNnVkT3RDNmxiYm8wYlhLOHF6NkM3NmZHeU1hdnUxMmJuZG1ubmlZbUtvNHFtSmlZYm13bUptczdoRXh0UnJmdlptNmc3ZHUzTCtoUmo3b3dJNW1tckdtTE9URWZ5clZVOFRQODJxZmdpSFZkTjFIUjgyckIxZlQ4dlRzcW56czVkbXF6WEgwVlJFdlVPWTVmZzF2UmRJMXpGK1NhMXBlRnFXUC9pc3V4VGRwK3FxSmE2Y1phUGRHMVZzTWZUekVqd254Wm1lWTRueGhmRGNIWjI2VDZ0TmR5amJ0ZW1YcTU1NytuWmR5ekVmQ2ptYVA5RnBHcmRrdmJGMmFwMHZkdXVZa1Q1UmZ0MmI4UjlWTk10RmVMeHozVlRoc3FCVmFzejUyYlg1a0ZNVTBlTkZGTlB3amhhZXZzaHgzdm1kUWJuZC9sYVRUeisxZmJHN0llRkZYL0N0KzVsZFBzdGFiUlJQNmE1ZFR4V0x5ajByZUZVNXFtWjhYUEhzM3NuS3Q0bU5adTM4bTdWRk51eGFvbXU1WE0rcW1tT1ptZmhDNjIzK3kxMDEwK3VtNXFWeld0YXFqem95Y3owVnVmeWJVVXorbEsrMHRtN1UybmorZzIzdDdUZEtwbU9LcXNiSHBwcnEvblZmYlZmVE1xN2NaV08wYmR4Z243Vk02UjltamN1NEx0clVkN1RkMjlwWE1WZkpZbUp6Yjhlemp4aTFIdm5tcitUSG10L3RuUWRJMjFvbU5vdWhhZlp3TlB4YU83YXMybzRpUGJNejV6TXo0ek04ek0rTXV5aU9HV0xKbXRrN3JxMGl2WUFWT3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdKOG5uWDF5M1RHOGVxMnZhNWJyNytMT1I4bHhKOVhvYlh6S1pqNHpGVlg1UzZ2YUUzWE96dWttdTZ0WnVkek11V1BrbUg0K1BwcnZ6S1pqNGN6VitTODlhS1lwcGltUEtJNGh2NEtuZXpQbnQ5RExMRXQ3T3dTU3hJRSthU096WnNyRTMxMVZ3dE0xVEYrVmFUaVdMbVpuVzVtWWl1aW1PN1JSTXg2cHJxcDhQWEVTamJsYnZzS2JiK1M3UzF2ZGw2amk1cVdYR0xZbVkvNXF6RTh6SHhycnFqOGxSeEYrU2t6RHZIWG1zbjNidTN0QzI3aGZJdEIwZkEwdkg4NXQ0bVBUYWlaOXM5MlBHZmk3UGhrZVJNN2JRQUFBQUFBQUhVN3cwVEczTHRYVk52NWtSNkRVY1M1alZ6TWM5M3YwekVUOFluaWZvZWFHZGlaV25aK1RwMmRibTNsNGw2dkh2MFQ5N2NvcW1tcVByaVhxSW9mMnQ5c3p0M3JYbjVWcTMzY1RXN05HbzJ1UEx2ejh5N0h4NzFQZS9MYk9EdCswMVVaNDZiUkxKSVBSWm1KWWx5bGlUUTR6eDY0NWoxcjc5bEhkRTdtNk1hVlRmdmVsek5KbXJUY2labngvZytQUnpQeHR6Ym42MUNWZyt3N3VuN0c3OTFQYTErNXhZMW5GaTlZaVovNSt6enpFZStiZFZYNWtNM0ZVNXFiOExjVnRXWEtBZVcxZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNSERJREhBeUFBQUFBQUFBQUFBTU1nTWNESUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGpYVkZOTTFWVEVSRWN6TStvRlVlM1h1YWIycWJlMmZZdWZOc1VWNmxsVXhQMzFYTnUxRS9SNldmcGhXamh0WFZ6ZEU3ejZsNjd1T0s1cXNaT1ZOR0w3ckZ1TzViK3VtbnZmR3FXcXZaeFU1S1JERGUzTmFaR0pabVdKbGE1WWxpcGxpUWNQbjFWUlRhcG11NU14RkZNZWRWVStFUjlNOFBTYnBWdHFqWi9UclF0dDAweEZlRGhVVVh1UHZyc3gzcmsvVFhOVXFOOW5MYkU3cjZ6YUJoVjBkN0Z3NzMyUnl2RG1PNVo0cWlKK05mY2o2WG9WSGs4L2pMOVlxMFlLOTVaQVlXZ0FBQUFBQUFBVis3Y0cyUHNsMDd3TnpXTFhldjZKbVJGMnFQVll2Y1VWZlZYNktmcldCZEx2blFjZmRPenRYMjdsY1JhMUhEdVk4MVRIMnMxVXpFVmZHSjRuNkhlTzNKYUpjMmptalR6TkhMSXNaR0prM3NUTG9tM2syTGxWcTlSUDN0ZE16VFZIMXhMakQybUZrazhDUVlsMit5dHdYOXFidjBuY21ORTFYTk15Nk1udXhQMjlFVDgrbjhxaWFvK2wxRXVOVXBtSW5wSjJlbzJuWmVQcUduNCtkaVhJdTQrVGFwdTJxNDhxcUtvaWFaK21KaCtoQy9ZNTNUKzZEbzdpNmJlditrek5DdlZhZmNpWjhmUng4NnpQdzdsVVUva3ltaDRkNjh0cHEzMW5jYkFIS1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCSFBhUzNQVnRQbzFyK29XYmtVWmVSWStRNHZqNCtsdlQ2T0pqM3hFMVZma3BHUWwydGRpYjAzOXR2Uk5QMm5aeDhtM2k1dGVSbDQ5eklwc3pWUG81cHQxUk5YaFBITmZoNzRXWW9pYnh2czV2dmxuU2tWSGRwcGltbnlpT0laNVNuVDJkT3NISGp0ekRqLzZuWi90Wm5zNjlYLzR1WW4vQUpuWi90ZXQ2dFBNTWZKYndpcVpZNVNyUFowNndmeGJ4UDhBek96L0FHc2YzT25XRCtMV0wvNW5aL3RSNnRQTUhKYndpdms1U3AvYzU5WVA0dVljZi9WTFA5cjZXT3pqMWVydVUwem9XbjJvbVlqdjE2bmE3c2UrZU9aNCtFSjliSC8xQnlXOEpXN0NtMS9SYVZyMjhiOUh6c3E3VHArTE0vZ1cvblhKajNUWFZFZmtMT3RaNlg3VXNiSTJGcEcyTEZ5bTdPRGp4VGR1eEhIcGJzek5WeXZqMzFUTXRtZVRsdnozbVd5bGVXTkFDdDBBQUFBQUFBQU1NZ0tDOXEvYlA3bWV0ZXFWMnFPN2k2elJUcWRqNDE4MDNZL3BLYXAvS2hGbks4dmFsNlM2bDFMMGZTc3piOTNFdDZ6cFZkeUtLTW11YUtMOW01RWQ2anZSRThURTAwekhQaDUrWEt0czluVHJGRXpIN21zU2VKODQxU3g0L3BlcGh6MW1rYm5xeVh4enZwQ0xPVGxLbjl6bjFobi9BS040bi9tZG4rMW4rNTA2d1IvMGJ4Zi9BRE96L2F0OVdubUhISmJ3aXFaY2FwU3QvYzZkWVA0dDR2OEE1blovdFlxN09mV0QrTFdMUC8xT3gvdkhxMC82ZzVMZUhkZGlqZE02TDFadTZCZXVkM0cxN0VxdHhFejRlbnM4MTBUOU5NM1krcGQ5UjdwLzBHNnc2UHZ6UWRYK3dtSmd4ZzZoWnlLc2k1cUZxcW1pbW11SnE1aWlxYXA1cDcwY1JIanl2QzgvaXVXYjdyTFRoM3k2bGtCbVdnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREUrTElEak5QdU83N25JQng3dnVPUGM1QU9QZDl4RU9RRERJQUFBQUFBQUFBQUFBQXd4dzVBT1BkOXgzWTlqa0E0OTMzSGQ5emtBNHhURGtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPdTNOckdKdC9iK2ZyZWZYM2NiQ3NWMzdudG1LWTU0ajN6NWZTRHNSV3ZvZjFoM05ySFVTenBlNk5TcHY0ZXAwMVc3RnYwTkZFV0wzMjFFUk5NUk14TVJOUGpNK1BkV1RUYXMxbnFpSjJ5L0hxMnFhYnBHSE9acXVvWXVCalJWRk0zc203VGJvaVo4bzVxbUk1bCt4RmZhbis1Rmx6N016SC9yd1JHNTBtVWk2SHJHazY1aGZMZEcxSEYxREY3OVZ2MDJOZGk1UjNxZkNZNWp3NWgrOUV2WlE1anBOYjUvK1laUDlkTFJNYW5TSUFFSkFBQUFBQUFBQUFBQUFBZEpyKzdkcjZCazA0dXQ3ZzB6VGI5ZEhwS2JlVGswMjZwcDU0NWlKbnk1aDNORmROZEZOZEZVVlUxUnpFeDVUQ3JQYkdpZjNjNlhNZWYyS245clVzL3BmL3czRi96Tkg5V0hVeHFJbEVTL1NBNVNBQUFBQUFBQUFBQUFBQURoZDczb3F1N1BFOFR4UHNWUjJaMUI2eGJ4M1BiMjdwTzZzS3hsWExkMjVUWGtZVnVLSWlqejU0b21lWFVWMmlaMHRpSU8vYzEyanBuL0FBODI1LzhBYi84QS9KOUtkdTlvaW54cTN0dDZ2MnhUWmlQMTJqbC9zMm0wWWpuaU9mTmx5a0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFIUjcreTlhd05tYXRtYmN4SXk5V3M0dGRlSlo3dmU3MWZIaDRldWZYeDYrT0VSOW5EZGZVWFhkeGFqaTdtK1g1bWwwV0pybkl5OFAwTTJiM2VpSW9wbnUwODh4Tlh6ZUo0NDlUcUs3amFOcDRBY3BBQUJpcXFtbW1hcXFvcHBpT1ptWjRpSEN4ZXRaRm1pOVl1MFhiVmNjMDEwVlJWVFZIdGlZOHdmUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkRmYU15OGpYOHJRT2wrbVhacHlkZXlhYm1YTlBuYnhxSjVtWjkzaE0va0pndjNiZGl6WGV1MTAyN2RGTTFWMVZUeEZNUkhNektGdWlFWGQ2ZFNOeTlUTXUxTVkzZStRYVYzNCsxdHh4ek1ma3hUejc2Nm5WZktKUjMyaU5yVHM3cURnNjFvdHVNWEd6cmRGM0hxb2ppTFdUWjdzVDljUlJWK2NzdHNYY0dQdW5hT202OWpjUlRsMklycnBqN3l1UEN1bjZLb21Qb2EvMTAybk83dW5tYmlZOXJ2NmhpY1plRnhIak55aUorYkg4Nm52VS9UQ01leVh1cWFNblVOb1pWeVlwdXg4dHdvcTlWWGhGMmorclZ4L09kVCsxZjhBRWRwV0pSYjJvL0hwSGx4LzJ2SC9BR2tKU1JiMm8vdVI1ZjhBM3ZIL0FHa09hOTRUUForWHMwWldKcDNSMmpLenNteGk0OUdia1RYZHZYSW9vcGp2K3VaOEliYmo5VHVuMlJsL0piVzhkR3F1ODhSRTVWTVJNL0dmRDlLSnVndlRyUU4zYklzYW51ZXJOMVhIczVsNmpHMDY3a1ZVNGxtWW54cjlIVHgzcXBuMTFUUHNodHUvT2hXemRVMFBJL2M5cFZuUjlXb3R6VmpYYkZVeFJYVkVlRk5kTXp4Tk0rWFBuSFBMcWVYZlZFYjBsbTNYUmN0MDNMZFZOZEZVUk5OVk04eE1UNjRseVZtN0syODlSeE55WE5qNmxmdVY0bCszWGN3N2R5ZVp4NzFIalhiajJVekhlbmp5aWFaNDg1VHoxQzNOamJRMmRxTzRNbWowc1l0dm0zYWllSnUzS3BpbWlqNmFwaUhNMTFPa3hMczlZMWJTOUh4Wnk5VzFIRXdMRVR4NlRJdlUyNmVmWnpNdGF4T3FuVGpLeS9rdGplMmhWWHVlSXBuTW9qbjZabmhEZlJqYmx6cXR1WFV0NDc4cm5WYk9GZHB0V01hNU0rZzlKTWQ2WWlqeWlpbUpqNXZybWVaNTljMjYzMDgyUnJHbTE2Zm5iVzBpcXhWVDNZOUhpMFc2cVBmVFZURVRUUHdrbUlqcEpFekxaYkY2MWZzMFhyRnlpN2JyanZVMTBWUk5OVWUySmp6ZlJVL1ROWjFyb2IxV3Y3ZHVaK1JsN1lydTBWMVdiczh4OG51ZVYybVB2YTZaNWllT0lxN3MrSGx4YTZpcW11aW11aXFLcWFvaVltUEtZTFYwUk8zeXpzekV3TVd2S3pjbXpqV0xjYzEzYjFjVVUwL0daOElhcFQxUzZjMVpmeVNON2FGTjduanUvTEtQUDQ4OElIcXo3M1YvdEEwNkpyTjY3TzM4Sy9rUmF3b3JtS0p0Mk9ZbVppUHZxNm9qbWZPSW5pUEpZbkoyUnMvSTBpZEp1N1owbWNLYU81NktuRW9waUk5MHhITVQ3NDhVeldJN2tUdHlvM3JzK3VQbTdwMFdmaG5XL3dDMTIybloyRnFPSlRsNmZsMk1ySHFtWXB1MmE0cnBuaWVKNG1QRHpWTjI3dC9ibWk5ZTcreU5iMGJIMWJUTDJaVmk0ODN1ZS9hNzFIZnQxYzB6SFBoTVJQUHhXcTI3b3VsN2UwZXpwT2pZZEdIZzJPZlIyYUptWXA1bVpuem5uem1VV2lJSW5iOXVSZXRZOW11OWZ1MFdyVkVjMVYxMVJUVFRIdG1aOG1xWmZVN3A5aTVIeWUvdkhSYWJuUEhFWlZOWEgweDRQeDc0NlphVHZUY1ZyVU54YWxxMlZwMXF6VFJUcEZPVFZieFpyaVptYmxVVThUTXpFeEgwT09SMGU2YTNjR3JFamFPbldhWnA0aXUxVE5GeW4zeFZFODhrY3YyZFczNk5xK2w2MWh4bWFScU9KbjQwenhGM0d2VTNLZWZaekUrZnVmdVZTNlEzOHJaUFg2OXRmSHlybGVIZXpMMm4zcWFwOExzVXhWVmJybVBMdlJ4SGo3NTlxMW5xNUxScVNKMjRaRjYxajJhNzErN1JhdFVSM3E2NjZvcHBwajJ6TStUVWNycXAwNHhjbWNlL3ZmUWFMa1R4TWZMS0ovVEU4SVAxcldOUjYyZFhLTnJXTTI5ajdYeGJsZFhjdFZjUlhhdHp4VmRxanlxcXFuaUtlZVlwaXFKNDU1NW5qU3VuT3hOTjA2bkF4ZHA2UE5tS2VKbTdpVVhLNnZmVlZWRXpNKytaVE5ZanVpSjJyOTJyYzNBMVhjK2paK201bVBtWXR6UzVpaTlZdVJYUlYvQzFlVXd0SnA4Y1lHUEhzdFUvcWhVanRMN1gwSGFlNzhQRjI5cDl2QXNabUhOKzdadFRQbzRyOUpOUE5OUDN2UEhsQzIrQi9lTmovTlUvcWd0MmdqdSs3V3R3YjkyWHQrL09Qclc2ZEh3TDlNOFZXcjJYUkZjVDc2ZWVZUkQybmVvMnI0T3AyZGo3YXlidU5mdTI2SzgyOVpxN3QyWnVUeGJzMDFSNDA4K2N6SGp4TVI3Vy9kTStrdTFOcGFKWnQzOUl3ZFExYTVSRTVtYmtXS2JsZGR5ZnRvcDcwVDNhWW53aUkrbm1VY3NSRzVUdmZadGUzdDJiWTNEUEdoYmgwdlVxdU9lN2paVkZkVVI4SW5sM1NHT3VuU3pSYnUzY3JkVzJNQzFwT3VhWlJPVDM4S24wUHBxS2ZHcUppbmppcUk1bUtvOGVZNGZxN04vVVBOM2RvK1RvK3QzdlRhcnAxTk5VWDU4OGl6VjRSVlA4cUpqaVo5Zk1UNjVOZE53YlM2MXZjTy9ObWJleUp4OWEzUnBPRGZwKzJ0WGNtbUs0K05QbkRXTzBqdURWZHZkTnJsM1I3OWVOazVtVmJ4SnYyNTRydFVWUlZOVTB6NnBtS2VJbjFjdGI3UFd5dW4ycDdCeDlSdmFUcG1yYXRkcnIreUZ6S3QwM3JsdTUzcDRwbUt1ZTdISEV4N2VlZkhraUkxdVRmWFNUOXY3MjJocjkyTFdqYmwwck91ejVXN09WVE5jL2s4OHRnYUJsZEh1bjF6VjhMVnNYUUxPblptSGtVWkZ1dkRtYlZOVlZGVVZSRlZNZk5tT1k5blB2YitpZGZTUUJBNmE5dXJiTmpVWjA2OXVIU3JXYkZ5TFU0OWVYUkZ5SzU4cWU3TTg4enpIZzdsV2p0WDdWdVlPNE1MZCtGVE51MW5SR1BrMTBSeE5GK2lPYUsrZmJOTWZYUW0zcFR1ZW5kMnhOTjFtYXFmbE5WdjBXWFRIM3Q2andyajZaOFk5MHc2bXZUYU50b3VWMFc2S3E3bFZORkZNVE5WVlU4UkVlMlg0dEkxblNOWW91MTZUcWVIbjAycW9wdVZZMSttNUZNekhNUk0welBFbys3U202cnUzZW5sM0J3cHFuVXRhdWZJY2FtajdiaXI3ZVkvSitiOGFvYkgwajJwUnMzWVduYU5ORkVaVVVlbHpLcVkrMnZWZU5YMWVGTWU2bURYVFkyMEJ5bGlyN1dmZ3FQMmFJL3dDV2l4UC9BR1RNL1hTdHhYOXJQd1VwNlNaMjQ5TzZnMFpXMU5Jc2F0cXNXY2ltM2pYcnZvNmFxWm1POVBQTWVYSHRXVTdTNXQ5THJpRTUzaDEvNThPbWVrY2Y5OGovQVBJNy9wOXVMcXpxTzVyZUx1N1pXbjZUcFUycTZxOG16a2QrcUs0aU83VHgzNTgvZzVtcWRwTkJYanJEdlhXZDNkUWNmcGx0WE9yd3NldkpqRnpNbTFNeFZjcjg3a2N4NDl5aW1KNWlQdHBpWW53UldOa3pwTWVzNzgyWm8xNnF4cWU2Tkp4YnRNOFZXNjhxbnZSUHZpSjVmcDBIZDIxOWVyOUhvMjROTXpybkhQbzdPVFRWWCtienk2TGJIU2pZV2c2ZFRpV2R1WUdaYzd2RnpKemJGTjY3ZG4xek0xUjRmQ09JZmx5ZWp1eHAzRHAydTZmcGNhWG00T1ZSazBUaVZkMml1YVo1NHFvOHVQaHduOVRxa0orZlB6TVRBeGE4ck95ckdMajBlTmQyOWNpaWluNHpQZytHNGRWeE5DMFBOMWpQcm1qRnc3RlY2N01lZkZNYzhSNzU4bGM5ZzRlVjF1Nmg1dXE3eHF1WGRHMHVtbTViMDJtNU1XYVpybWU1YjQrRk16VlY1enhIbEhnUlhmVW1VMS92bzlPZmxYeVg5MitnZWw1NDQrWFVmcjU0YlJwK2JoNmhpMDVXQmwyTXZIcisxdTJia1YwVmZDWThIU1pHeE5sNUdtVHB0M2F1aXppVFQzZlJ4aFc0aUk5MHhITVQ3L05YTGMrUHF2UTNxZEYzYmQrOVhvdVRUR1RUaDExek5GNjF6eFhhcS9sVXo5clY1K01jOCtQTXhXTGRpWjB0ZzZ6VmR3YURwTitMR3FhMXB1RGRxcGlxS01qS290MVRFenhFOFZURThjdysraTZqamF2cEdIcW1GWDM4YkxzMFhyVlh0cHFpSmo5YXNQYkY3dEhVTFNydmNwbXFuU0ltSm1PWmppOVhNSXJYYzZKblN6MnFhcHB1bFljNW1wNStMaFk4ZWQzSXUwMjZmcm1XdmFiMUsyRHFXZEdGaGJ1MGU3a1ZWZDJtajVUVEUxVDdJNTQ1K2hyT25kR050YWxjdDZ2dlROMVBkK3AxMFJWNlhVY2lZdFcrWThyZHFqaW1pUGQ0dEc3UVhTUGJlaGJRdmJuMnpoL0lKdzZxSXlzYUs1cXRYTGRWVVU4eEZVenhWRXpIbDRUSEtZaXM5RGNyR0NKZXl4dVBPMTNwMWN4TlJ5TG1SZTByTHF4S0xseXJtcWJYY3Byb2labno0aXJ1L0NJYnAxTzNWYTJac25VTmZydDAzcnRtaUtjZTFWUEVYTHRVOTJpbWZkelBNKzZKY3pIWFJ0MjJ0NjFwR2g0dnlyV2RVdzlQc1Q0UlhrM3FiY1Q4T1o4V3VZSFZUcHhuWmZ5VEczcm9kZDduaUtaeTZhZWZoTThRaC9vVnRHT3BHcjZqdnJmdFZXdFRaeVBRWTFuSThiVlZ5SWlxcWU3NVJSVDNvaUtJOFBQbmxNMjQrbkd5TmYweXZBMURiT21lanFwNHByczQ5TnE1Ym4yMDFVeEV4TUptSWpwSkV6TGFyVnkzZHQwM0xWZE5kRlVjMDFVenpFeDdZbHpWUTJWdVBXdWpuVm0vc3pVcys5bGJmbktwdFZVWEo1cG90M09KdDM2SSs5bnhqdlJIaFBGWHJpRnJpMWRFVHQxdVJ1RFFjYlVhZE95TmIwMjFtMVZ4YnB4NjhxaUxzMVQ1VTkzbm5tZWZKeDNCdVBRTnYyWXU2NXJPQnAxTlVjMC9LYjlORTFmQ0pubWZvVlM2dDJiOXp0UVhMR0RrUmg1VjdVOENpMWt4Yml1YlZWVnUxRVZ4RStFekhQUGo3RTk0UFJiWTBYYm1YcldKbDdpMUs5NDNzN1ZNcXU3ZHJuNkppS1k5MFJIQ1pyRWEyamN5MlRiMitkbjdneW94TkczSnB1Ymt6SE1XYmQrTy9Qd3BueG42SGVaMlppWU9OWGxadVZaeGJGSDIxMjljaWlpbjR6UGhDcW5hSjJGcHV4ZFkwclVkdVZYY1hGenFxNW9zeGNtYXNhOWI3c3hWYnJtZVlpZTlIcjhKajNwUDJsMDYwM3FCdHpTTjA3OTFUVk53NVdYaTBYcU1hN2ZtMWkyTzlUNVVXcU9JNTl0VTh6Sk5ZMXZadWV6ZDdIVXJZRjdNK1NXdDQ2SlZlNTd2SHl1aUltZmp6eCtsdFZGVk5kTVZVVlJWVE1jeE1UekV3Z0hyZDBhMnRwV3lNN2NHMThPclRzclRyZnBybHFMdFZkdTliaWZuUk1WVFBFeEU4eE1lemgyWFpGMTNPMURaK3BhUmwzcTd0dlM4cW1uR21xZVpvdDEwODl5UGRFeFZ4N0luZ21zYTNDZDlkSnJ2WExkbTFYZHZYS0xkdWltYXE2NnA0aW1JODVtZlZEOEdsYTlvZXJaTjNIMHZXTURQdldhWXF1MFkyUlRjbWlKNTRtZTdNOGM4UzRidmlLdHA2eFRNY3hPRGZpWS84T3BYcnNaekVhNXVLaUlpSStSNDArSDg2dEVSdUprbWVxelRwZHhicjJ6dDNpTmQxL1ROTnFxam1tbkp5YUxkVXg3WWlaNWwrZnFYck9YdC9ZT3VhMWdVMDFaV0hoWEx0bnZSekVWUkhoTXg2NGp6K2hCblpwMERhTzY3MnQ2cHVxMWphN3VTY21KbjdJY1hhL1JUVEU5K0thdlBtcnZSTStyaUk4Q0s5TnlUS2J0STZnYkgxZTdUWjAzZHVpNU4ycWVLYUtNeWp2VDhJbWVXelJWRTA5Nkpqano1YUJ1VG8zMDQxMnhWUmUyeGg0ZHlZNHB2WU1lZ3JwOThkM3duNllsdk9MaTJjYkF0WVZ1bitCdFdvdFV4UDRNUnhINkVUcjZTZ2J0WmFuaFptamFGWndOVHNYNnFjcTc2VzFaeUlxK2JOSDMwUlBsejdVZzlJdGQwTEY2WTdieGIrczZaWnZXdE90VVYycXNxM1RWVE1VK1V4ejRJZzdUV3pOcTdUeGRDdjdjMFBFMHk1bDVGNm0vVllwbUp1UkZOTXh6NCsyWlNCMDE2VzlQZFk2ZmFCcWVwYlQwM0p6TXJBdFhyOTZ1aWU5Y3JxcGlacW1lZk9aV1RybGh4RzlwWHdzekV6Yk0zc1BLc1pOdUo3czEycmtWeHo3T1lmYXFxbW1tYXFwaUtZam1abWZDSWRSdFRiT2hiVjA2dlR0djZiYTAvRnJ1emVxdFc1bmlhNWlJbWZHWjlVUjlUcXVvZXhjSGUvd0Fpc2FycWVxV2RQeDVybTloNHVSTnEzbGM4Y2VrNDhaaU9KK3RYMGRzNmwxSTJGcDErYkdadTdScmQySjRtbU1xbXFZbjM5M25oMjIzdHlhQnVHMVhkMFBXY0RVcWJmaFg4bXYwMXpSOFlpZVkrbHJGbm83MHp0WWZ5YW5aMm16Unh4TlZVVlRYK2Z6M3YwcTdibHhMblNucnhZdDdmdjNxY2UxazQ5VnVtcXFabXJIdlRFVldxcCsranhxNDU5a1Q1dzZpc1QyUk02WEdmRE96TVRBeGE4ck95ckdMWW8rM3UzcmtVVVUvR1o4SWZiMUt3NzcxREUzbDJncmUzdDQ1czJOdTRPWE9OYng2N3ZjdGN4UnpFMWUrdXZpTzk1OFRFUk1JclhaTTZUalBVM3A3R1I4bi9BSFphSDZTUERqNVpUeDlmazJUVE5SMC9VOGFNblRjM0d6TEUrVnl4ZHB1VXo5TVMxZTUwdzZkM3NPTWVkbmFMRnJqaU81alJUUEg4NlBINmVYN05oN0kwRFpOblBzYmZzWExGak52eGZydDEzTy9GRXhURlBGTXo0OGVIcm1mT1NkZlIxYk1BNVNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0NLKzB4dVc5cEd3L3NIcDAxVmFwcjl5TUxIb29uNTAwVE1SWE1mSG1LUHkzV2FYMmVOcDI5UHNVNWVxN2hqSTlIVE42TEdvVFJiOUp4SGU3dE1SNFJ6eTZqUTZxK3BIYVN5Tlhxb3VWNkZ0ZTEzTVdhNkppaTVkaVppS281OCthKzlWejdLS1UvTzVtYXhwRWRVU2YzUCswSWlZbzFuZGRIdzFXcit4RFc3OUl5T2t2VnZHdmFkTis3all0ZHZOd3B1VmMxM2JNL051VVRQcm43ZW42WWxjRkVmYWUyejlsdGwydGR4clUxWmVqM08vVjNZNW1xeFh4RmNlL2llN1Y5RXByYWQ2bEV3bFBTczdHMVBUTWJVY0s1RjNHeXJWTjYxWEgzMU5VY3hQMVNqbnRQUnowa3pZLzdWai90SWRiMlhOeWZMOW81RzI4bXVyNVZwTjJmUlUxUk1UT1BYUGVwNDU4K0t1OVQ3b2lIZGRvN0R6TTdwWG0yTUhEeWN1OThvc1ZSYnNXcXJsZkVYSW1aN3RNVFBoQ0lqVnRKK25YOWxmN2xOdVA4QXQrVC9BRjByU2dEb0IxQzJqdGZaMVczOXk2dFRvMm8yOHk5Y20xbldibG1KcHFtSmlZcXFwNC9TMm5lM1diYnRHbVhjRFpPVk81ZGV5S0p0NHRqVHJkVjZtaXFmQ0s2Nm9qamlQUGp6bmo2UzFabVVSTWFRNzB4dC9LKzAxRldESDhGUnEyZmU1anlpM0hwZjBlTVI5S1h1MVpSZXE2VnhOdUptaWpVTWVxNXg2cWZuUkhQNVUwdnk5blBwaG43VHB5ZHg3a3BwbzFuTnQraXQyTzlGVTQ5cVo3MVhlbVBEdjFURVRQSGxFUkh0U2h1elFzTGN1M003UXRRaVp4c3l6TnVxWTg2WjlWVWUrSmlKajN3bTFvNW9Jam9qUHNsMVdwNlo1TkZFeDZTblZML3BQYnpOTkV4K2poTUt0L1QzTTFyb3B1YlVOSjNmcDJYWHQvUHJwcW8xUEdzMVhMTk5kTWNSYytiRThSTlBFVlV6NHh4SG5IaWxUTTZ2OU9NZkFuS2pkdW5YL204MDJjZXVibDZ1ZlpGdW1POXo3dUVXaWQ3Z2llaUYrMko2RDkydWxUSEhwZnNWVkZmdzlKVjNmOXBZL2FGRiszdFBTTGVUejZlbkJzUmM1L0NpM1R6K2xYM1E5bzdpNnU5VTZ0NmJnMG5LMGZiTnF1ajBGbkxvbWk3ZnRXL0dpM0ZNK1BFenpOVlhsNHpFYytjV1dqd2ppQzA5SWdqeXExdXJRTmQ2UWRZYTk5NDJsWGRSMjNjeWJsNnE1YW1PYmRGNlo3OXFybWZDcUtxdWFmVlBFZTlLbFhYM3BuT24vS0xPcjVWL0ltbm1uQ3RZRjZjaXFyOEh1OTNqbjZlUGVqcnF0dlRLMHJ0Q1l0M2NlbjM4dlE5R2ltckV3dUk3dGZmdGVOK21Ldm0xVlJWVlBFK3J1Y2VFdDB4dXZmVG1tcnZ4aGFyWXVUNXo5ajQ1K3VtWFV4dUltWVJ0cXZTUFp1NTkyZFhML1UvYytrMzlId2FiOWVUaDQyUkhkdTNLNXA3bEVkMmZHS2FhZlhNUnpQSEVMR0k0MFhyZDA2MVBLb3h2c3hkd2JsYzhVem00dGRtam4zMXpIZGo2WmhJMUZWTmRNVjBWUlZUUEV4TVR6RXc0dHZmVjFDTGQ5OWFkSjBUY003WTIvcEdidWJYWXVlaG5IeEppbWltNStCTmM4ODFSNjRpSjQ4ZVpqaVh3dDZwMTkxYU85ajdaMmZ0KzNWNWZMOHk1a1hJajN4YjhFSDR1Vm05Sit1OWVxN2wwL0orVFVadVJYNlNLUEMvWnU5L2k1Ym1mQ3FlS3VlT2VlWW1FL1kvVzdaR285Mnp0L3dDek92NXRjZk14TlAweTdYY21mZk14Rk5NZStaaUhVMTEyUkUrVUc3V3AxU250TVl0T3RaR05rYW5UclZVWlZ6R3R6UmFxcmkzVnpOTk0rTVI4VnI5eDFYcU51NmpYajgrbXB4THMyK1BQdmR5ZVAwcXJhQk9mYzdVVm5JMUhUTCtuWkY3V1p2VjQ5Y3hYNkx2V3BtSW11bjVzenhNZVU4TGNjUk1jVEhNRi9vcXF0Mk41dC91NzFXS3VQU1RwRlBjNTgrSXVVOTcvQUdWcWxWOVcyOXIvQUVZNm9SdVRUOU52WnUzNnJsZm82N2NUTlBvSy90ck5jeDlyVlQ0Y1RQaFBkaWZiRVM1aTljK25HUmkwWEtOWXlQVDFSL2VzWVYydTl6K0QzYWFaNW40U1hpWm5jRloxMFJMMnhQOEFEalNaL3dBbWYvN2FsbjhMKzhiSCthcC9VcVIya2RVMUhjbTVOTzFLZHQ2dnBtTlZnemJ4YWN5ejNidDZtTGt6TmMwUnpORWMxUkVSVjQrdmhiakMvdkt4L202ZjFRV2o5WUk3cWo5VW9xeCswbmZ1WjNoUkdyWUZ6bXJ5OUgvQmNUOFBDVnZrSjlwUHBmcU82WXNibjIxYTlMcTJMWjlEa1kxTlVVMVpGcUptYVpvbjhPbVpuaUo4NG4yeEQ5MndPdEdnVmFQWTAzZldUWHR2WDhXaUxlVFJxTnF1elRlbUk0NzlOVlVjZVBuTVQ0eFBQbkhpVCswUm9qb2xMVy9RL1liTitVOGVnK1QzUFNjK1hkN3M4L29WbDdKRk4ydnFCbDEyK2ZSVzlJcTlKUHh1Vys3K3FmcWJ4MVM2cTRHNE5FeU5wOU9ZeU55YXZxVkU0OWR6QXRWVjJzZTNWNFZUTmZIZDVtT1k4K0k1NW1ZNGJGMEQ2YzN0aWFEZnY2cFhicjFuVUpvbklpM1BOTm1pbUo3dHFKOWZITXpNK3VaOWtRUit0WjJkNWJ0dTNiMmw3cDBESjBUV0xFM3NUSWlPOTNaN3RWTXhQTVZVejZxb254aVVBNngwTDNydHpPcjFIWSs0b3Z6VDlwSHBxc1RKNC9CNzFQeksvcDRqM0puNm5idXl0bWFOamFwajdmejlhdDFaRVc4aWpFcG1hck52dXpNMStFVDY0aVBIano4MnM2ZjE5Nlo1RnJ2WnVzWDlLdXg5dFp6Y1M1UlhIMVJNVDlhSzgwUjBKMGpQYmZXZmZXek53eG9uVVRCdlpPUFJNUmVxdldZdDVWbWlaNDlKVE5QemJ0UHI4dkhqd24xTE9XTHR1OVpvdldxNHJ0M0tZcXBxanltSmptSlZoNnFhbFYxcjNacFdsN0cwdkt5Y1RFb3J0M2RVdTJLcmRyaXVhZVptWmp3b3Bpbm54OFptZkNGbDlKeEtkUDB2RndLS3BycHhyTkZtbXFmT1lwcGlPZjBGNFREOVFEaExvT29PMjhmZHV6OVIwSEk3dE01TnFZdFhKai8zZDJQR2l2NktvajlLQ095NXIrUm9tODlWMlZxc1RqMTVYZXJvdFZUOXBrMnZtM0tQak5NZjZDeXlzdmFRMGJLMmgxRzB6ZnVqVXhicXlhNHV6TVU4MDA1TnFJODQ5bFZISGg2KzdVN3AxNk9aOHRtcm8vZkg3UjhWUlBwZEMyWmJpSm1QR212TG1lZVBqM29qK2k5NmM0YUQwRzJuZDJyc0t4OHZwLzQyMU91Yy9VS3BqeDlMYzhlN1A4Mk9JK1BMZjBXbnFtQUJ5bGlmS1ZRK3pWeisvVGkvOTN5LzFMZVZURVV6TXp4RVFwZjBoM0hwZXorbzJQcnV0MVpGdkR0MnNpaXFiZGlxdXJtdnk4SWQwN1M1bGRBUk4vZEI5T3Y4ZHEvL0FKZGNQN29QcDF4TStuMWJ3L3lkY1J5ejRUdUVzeXFOMFRxcW83UWVQVm56eGVuTXo2S3U5L2pacHUvL0FNcmJZMTJqSXg3ZCtqbnUzS0lycDVqaWVKamxYbnJOMDgzQm9POUozL3M3R3VaVkU1Rk9aZXMyYUpydVk5K0o1bXZ1UjQxMFZjY3pFZU1jMWVxZkNhZUVTc1N5aURibmFDMkpsWWROTzRNcTlvT28weHhleDc5aXVxbUt2WDNhcVlubVBqRVQ3bmU2VjFZMFhYOVJzNFcwOUoxelgrL2Vwb3U1TmpDcXRZMWltWjRtdXE3YzdzZUVlUEVjelBxUnl5bmNPZmFHaTdWMGIzRDZMbm1MTnVxcmo4R0x0RTFmbzVhRjJPNjdjNlp1YTN6SHBveTdGVSszdXpibUkvVEZTY3RXd01YVk5MeXROenJVWGNYS3MxV2IxRS9mVVZSeE1mVkt0dWdZTzRlaG5VRy9sYWpwK1pxVzFjeWowTnpOeHJVM1A0T0o1b3JxaVB0YTZmSG1KODRtZU9VMTZ4TUludnRaeEFmYTU5QkViYnFudStsNXlZOS9jNHQvNjBoeDFkNmFUZy9MUDNhYVIzSnA3M2M5Ti9DL0QwZjIvUHU0NVJUbjZMdURyYjFFczZ0WHB1ZHBHemNPbUxWbS9sMnB0WE1pMzN1YXBvb254NXJuMStVUkVldndUU05UdVMwN2pTWCtpMW05WTZWYmJ0MzRtSy9rTkZYRStxSjVtbjlFd2dUdGorTy85TWovQUNQSDdXNHRQajJiV1BqMjhleGJwdDJyZE1VVVVVeDRVMHhIRVJIMEt0OXNTbm5mdWx6NHoveFZUSGhIL1czRVU2MlRQWmFMQi92S3gvbXFmMVEwWHRGUnowWDNKSC9aNlAydERlOFR3eExNZjlYVCtwbzNhRmlhdWptNHFZaVptYkZIRVJIL0FGdERtTzQwZnNjVXpHMU53ZmpPbjloUTdYdGFVWGF1bXVMVlJ6Nk9uVkxVM1BoM0s0ajlNdy9CMlFhS3FOb2E1M3FhcVpuVkluaVk0LzVtMmxYZk8zTVBkbTFjL1FNNnFhTFdYYjdzWEtZNW0zWEU4MDF4NzRxaUpkVE9ySWpyRFJleXpWWm5wTmowMitPL1RuWk1YZjUzcE9ZLzBacFNxcmowejFqVnVqV3VhaHQ3Zk9uWlZuUmN5N0YyenFkaXpWZHg2YmtSM1pxNXBpZUthcVlwNWlmR0pqeGp4NVNqcVhXSHB6aDRGV1ZSdW5CemF1T2FNZkRxOU5mdVQ2cWFhS2ZIbjQ4RnF6dm9tSjZJRTdXc1dxK3ExcW5IaUp2enBsaW1yanptdWE3bmQvUk1MWWFmVGNvd01lbTdQTnltMVRGZng0amxYVFkyeHR5ZFIrcXQzcUp1N1NyK2s2UFRrVTM4WEV5WTR1M29vaUl0VWQyZkdLWTRpWm1lT1o4SWppZVZrdlVYbnBFSWp5cVAxTDhlMXBaL0crbS8xYkszS28vVWlPOTJzTFZVUk14R3JhZDR4SHNwdExibCswRlVBOXNqL3dDRzdabi9BTFRmai9RcFNqMFpqanBSdGY4QUZsbityQ0x1MlQ0Nlh0bUlpZjc2di8xS1VwZEhJNDZWYllqMmFaWmovUmduMlFSM09zZkU5S2QwYytYMkx2OEE5U1VWZGpYKzhOemY1L0gvQUtsYVV1dFU4ZEp0MFQva3k5SCtpaXZzWnovd0xjOFQ1eGZ4dlYvSXJJOXNrOTA0N3Evd1gxWC9BTGxlL3FTcnIyTlA4STl3Zjl3eC93Q3ZVc1h1bi9CblZlZi9BTm5lL3FTcnAyTnU5RzVOZmlhYW9uN0gyUE9Kajcrb3I3Wko3ckw1dU5qNXVIZXc4dXpSZXg3OXVxM2R0MXh6VFhUVkhFeE1leVlsWGpkbloyMUhEMUtyVXRqYS9UWmltcWFyV05sMTEyN2xyM1VYcVBINGN4ejdabE9lOXRXejlEMnRuNnJwbWxYZFd5OGEzRmR2RHRjOTY3ODZJbUk0aVo4cG1mTDFOQTBucjlzVzdUTnZYWjFMYjJYVDRWMmM3RHI4SjkxVk1URS9Ud1Y1bzdKblgyamZHNmg5V09tZXBXTk8zbGgzTlN3NnZ0SXk2b3FxdVJIbjZQSXA4NTkxWE0vQlkzYWV1NE81ZHVZT3U2YlZWT0xtV291VVJYSEZWUHFtbVk5c1RFeFB2aEFuV25xRnBYVWpTc1RhT3dOUHpkd1psekxvdlZaRnJGcnB0MnU3ejRSTlVSeE04K05VOFJFYytLWitsVzNNamFtd2RLMExMdVVYTW5IdFROK2FKNXA3OWRVMVZSSHVpYXVQb1RidHY3UkNKKzJUL3dERHRzZjk2djhBOVNsS1hScjdsTzEveFhZL3FRMER0YjZEcWVxYlYwblV0UHhidVRiMDdLcnF5YWJkTTFWVVVWMGNkL2lQVkV4SFBzNWZpNlQ5YTlrYVJzRFM5RjF6UHY0bW82ZFlqR3FzMFkxeTdOeUtmQ21xbnVSUG5ISGg1OG1wbXZRN1NucG9YVTNxbnQ3WTE2akF5TGVWcVdyWGFZcXQ0T0pUM3ErSm5pbnZUUGhUelBoRWVNejZvZDFzYmRWRzdNUEl6Y2ZSZFowN0VvdVJUWXVhamplZ25KcG1PZS9SVE05N3Urcm1ZaFhqcmZpYXh0RHJUKzdISndybVJnWE1ySHpNYTlNVE51cjBjVXhOcWF2S21xTzdQaFBxbUpSV3U1MUtabm9sUEgxN3JicmxNWHRPMlh0M2IyUGM4YUoxZlBydTNvajMwVzQ4SjkwOElNNnY0KzRyZlZ2RW8zVm1hZGw2bk5XRk5WZURacXQyb29tNTgybUlxbVo1ang4VTZZWFgvcHptMmJjWW1WcXVUbVhJK2JoWStsM3J0NmF2d1lpbW1ZbWZwNFF0MWt6OHpWdXJ1RnFtWG9tb2FSRjZNS3ExajVsTlBwZTVGendxcWltWmltWjhmbXpQTWNlTHVzVHZyRG1Wdm9SVjFlNk1hWnZmUHIxbkJ6cXRLMWFxaUtidGMyL1NXY2ppT0k3OVBoUFBIaHpFK1h0U3JDS2MvclBoN2YzUHFPajd5MjVyT2pZOWpKcm94TlFqR3F1Mkw5cUorYlh6RWN4ejd1VmRkL1RxZGZhTDZ0RDYwOUxMVlYvQnlMMlpwTm1PYXB4cms1V1BUVEhuTlZtdjUxRWUyYVk4UGFsM29qMVB0Nzl4Y25EemNXM2lhdmgwVTNMbEZxWm0zZXR6UEhmbzU4WThmQ1lubmptUEdlWHcxUHJ6MDFzWUZkM1Q5YnExZks3djhGaDRlUGNxdTNLdlZUNDB4RWZHV3I5bVRaMnZZV3RhcnZEV3ROcjBtMW1XcXJPSmlYS1pwcjd0ZHlLNnA3cytOTk1jUkVjK00rTHFlc2JtRVIzNko1QVZ1Z0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHSWlJOG9pR1FBWW1JbU9KOG1RSEdLYVludlJURVQ1YzhPUUErVi9IeDc4Y1g3RnE3SDh1aUt2MWxuSHNXSTRzMmJkcVBaUlRGUDZuMUFBQVlxcGlxT0pqbUo4NG4xdmpSaDRsRmZmb3hiRk5YNFVXNGlYM0FZZlBLdjJzWEd1NU4rdUtMVnFpYTY2cDlWTVJ6TS9VK3I1NU5tMWs0OXpIdjBSWGF1MFRSWFRQbFZUTWNUSDFBZ3pwOW1XdXQrNWRXMWpjV1BibmJ1a1hJc2FicFUvZlZWeHpONjlWSGpWVjNZamlueWptZlBqbWQ5bnBGMDJuL29ocHYxVmYybzEwTHB4MU42WWJtek0zWWRXbDY5cEdWeFRYaDVkK2JOZFZFVFBjNzNNY2Q2bm1ZaXFKOGZYRGNmM1Y5WlpvN3NkSnNDbTUrRlZ1SzEzZjBSeXNuK3BjeC9iU08wQjB0Mm50eloxemN1Z1kzMk11NDEyM1Jjc1JkcXF0WHFhNm9wOHFwbmlxT1ludzlYUGdranM3WDgzSTZQNkZYblZWMVZSUmNvdFRYNXphcHVWUmIvMFlpSTkwUTFIVWVuZlVUcVJxT0xjNmxhdnAybGFGalhQUzA2Tm85VlZjM0t2NWQycjE4ZUhNYzhjenh4enltalRzUEYwL0JzWU9GWW9zWTJQYnB0MnJWRWNVMFV4SEVSSDBJdFBUUkVkWFBKeDdHVGI5SGtXYmQ2ajhHNVJGVWZWSmo0K1BqVWR6SHNXck5INE51aUtZK3FIMUhEcHg3dFBQUEVjL0J5QUdKaUpqaVk1aDhiV0ppMnErL2F4ck5GWDRWTnVJbDl3R09JWkFCOHIyUFl2eHhlczI3c2V5dW1LdjF2cUErZG16YXMwOXl6YW90MCt5aW1JajlENkFBK0Z6RXhibFhldVkxbXVmYlZiaVpmY0J4b29vb3A3dEZOTk5Qc2lPSWNnQUFCaEMrODg2MzFFNng2WHNmRXJtNXBHZzF6bmF0WFQ5cmN1MDhkMjE5RXpGTS96cXZ3VWs3L3AzVGQyM2Z4dG54aFVhcmYvQUlPakl5N2swMFk4VEhqYzRpSm1xcVBWSGx6NHo0UnhPcWRCK25lWnNUU3RScjFqSXg4clZjKy9GVjI3WnFxcWowZE1mTmptcUltWm1acXFuM3k2anBHMFNrcUdRY3BBQUh6OUJaL3hWdjhBTmg5QUh5K1QyUDhBRTJ2eklZbkd4NWppYkZxWS9tUSt3REVSRVJ4SGtNZ1B6WHNEQnZYUFNYc1BHdVYvaFYycVpuNjVoOTZLS2FLWXBvcGltbVBLSWppSWNnQmlZaVk0bnlaQWZtakF3WXUrbGpDeG91ZmhlaXA1K3ZoK2hrQWNLN2R1dWVhcUthcDh2R09YTUJnbUltT0ppSmhrQmlLYWFmS0lqNFF5QU9OZE5OZE0wMVJGVk0rY1RITVMrVnZFeExkZmZ0NHRpaXI4S20zRVMrNEFBRGhOdWlhdTlORlBQdDRjd0J3dVc3ZHpqdjBVMWNlWE1jdVZNUlRFUlRFUkVlVVF5QTQxVTAxVXpUVkVURStjVERGRnUzYm1ab29wcDU4K0k0NWN3R0pqbU9KWXBvb3BubW1tbUo4dVloeUFIeXZZK1BlLzk5WXRYUDU5RVQrdDlRSHpzMmJWbW51MnJkRnVuMlVVeEVmb2ZRQVlsOGFjUEVwdWVscHhiRk56OEtMY1JQMXZ1QXc0M2JkRjJpYUxsRk5kTStkTlVjeFAwT1lENFkySmk0MHpPUGpXYlBQbjZPM0ZQUDFQck5GTStkTVQ4WWNnQnhycHBycDd0Vk1WUlBxbU9ZY2dIeG94Y2EzWDM3ZU5ab3EvQ3BvaUpmWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFmLzJRPT0iIGFsdD0iQSBQbHVzIEFib2dhZG9zIHkgRWNvbm9taXN0YXMiPgogICAgICA8aDEgY2xhc3M9ImRpc3BsYXkiPkNhbGN1bGFkb3JhIGRlIGhvbm9yYXJpb3M8L2gxPgogICAgICA8cD5PYnTDqW4gdW5hIGVzdGltYWNpw7NuIG9yaWVudGF0aXZhIGRlIGxvcyBob25vcmFyaW9zIGRlIG51ZXN0cm9zIHNlcnZpY2lvcyBqdXLDrWRpY29zLCBkZSBjb25zdWx0b3LDrWEgZSBpbm1vYmlsaWFyaW9zLiBTaW4gY29tcHJvbWlzbyB5IGVuIHVuIG1pbnV0by48L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzdGVwcyIgaWQ9InN0ZXBzIj4KICAgICAgPGRpdiBjbGFzcz0ic3QiIGRhdGEtcz0iMSI+PHNwYW4gY2xhc3M9ImRvdCI+MTwvc3Bhbj48c3Bhbj7DgXJlYTwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VwIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3QiIGRhdGEtcz0iMiI+PHNwYW4gY2xhc3M9ImRvdCI+Mjwvc3Bhbj48c3Bhbj5TZXJ2aWNpbzwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VwIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3QiIGRhdGEtcz0iMyI+PHNwYW4gY2xhc3M9ImRvdCI+Mzwvc3Bhbj48c3Bhbj5EYXRvczwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VwIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic3QiIGRhdGEtcz0iNCI+PHNwYW4gY2xhc3M9ImRvdCI+NDwvc3Bhbj48c3Bhbj5QcmVzdXB1ZXN0bzwvc3Bhbj48L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImJvZHkiPgogICAgICA8ZGl2IGNsYXNzPSJtYWluIiBpZD0ibWFpbiI+PCEtLSBzdGVwIGNvbnRlbnQgaW5qZWN0ZWQgLS0+PC9kaXY+CiAgICAgIDxhc2lkZSBjbGFzcz0iYXNpZGUiPgogICAgICAgIDxoND5UdSBzb2xpY2l0dWQ8L2g0PgogICAgICAgIDxkaXYgaWQ9InJzdW0iPjxkaXYgY2xhc3M9InJzdW0tZW1wdHkiPkVtcGllemEgZWxpZ2llbmRvIHVuIMOhcmVhIGRlIHNlcnZpY2lvLjwvZGl2PjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InRvdGFsLWJveCIgaWQ9InRvdGFsYm94IiBzdHlsZT0iZGlzcGxheTpub25lIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYiI+SG9ub3JhcmlvcyBlc3RpbWFkb3MgKElWQSBpbmNsLik8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFtdCIgaWQ9InRvdGFsYW10Ij7igJQ8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Iml2YSIgaWQ9InRvdGFsaXZhIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZm9vdCI+QSBQbHVzIEFib2dhZG9zIHkgRWNvbm9taXN0YXMsIFMuTC5QLiDCtyA8YSBocmVmPSJodHRwczovL2FwbHVzYWUuZXMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5hcGx1c2FlLmVzPC9hPjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KCjxzY3JpcHQ+CihmdW5jdGlvbigpewogICJ1c2Ugc3RyaWN0IjsKCiAgLyogPT09PT09PT09PT09PT09PT09PT09PSBDT05GSUcgPT09PT09PT09PT09PT09PT09PT09PSAqLwogIGNvbnN0IENPTkZJRyA9IHsKICAgIGRlc3RpbmF0YXJpbzogImNybUBhcGx1c2FlLmVzIiwKICAgIC8vIFBlZ2EgYXF1w60gbGEgVVJMIGRlbCBtYW5lamFkb3IgZGVsIGZvcm11bGFyaW8gZGUgV29yZFByZXNzIHBhcmEgZW52w61vCiAgICAvLyBhdXRvbcOhdGljbyBhbCBzZXJ2aWRvci4gU2kgc2UgZGVqYSB2YWPDrW8sIHNlIHVzYSBtYWlsdG8gKGNvcnJlbyBkZWwgdmlzaXRhbnRlKS4KICAgIGVuZHBvaW50OiAiIiwKICAgIGFzdW50bzogIlNvbGljaXR1ZCBkZSBwcmVzdXB1ZXN0byBkZXNkZSBsYSB3ZWIiCiAgfTsKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgogIGNvbnN0IElWQSA9IDAuMjE7CiAgY29uc3QgRFRPID0gMC4yNTsKICBjb25zdCBldXIgPSBuID0+IG5ldyBJbnRsLk51bWJlckZvcm1hdCgnZXMtRVMnLHtzdHlsZTonY3VycmVuY3knLGN1cnJlbmN5OidFVVInLG1heGltdW1GcmFjdGlvbkRpZ2l0czowfSkuZm9ybWF0KE1hdGgucm91bmQobikpOwoKICAvLyBFc2NhbGEgSUNBTSAyMDEzIChhY3VtdWxhdGl2YSBwb3IgdHJhbW9zKQogIGZ1bmN0aW9uIGVzY2FsYUlDQU0oYyl7CiAgICBjb25zdCB0ciA9IFtbNjAwMCwuMjBdLFszMDAwMCwuMTVdLFsxNTAwMDAsLjEwXSxbNjAwMDAwLC4wN10sWzYwMDAwMDAsLjA1XSxbSW5maW5pdHksLjAzXV07CiAgICBsZXQgdG90YWw9MCwgcHJldj0wOwogICAgZm9yKGNvbnN0IFt0b3AscGN0XSBvZiB0cil7IGlmKGM+cHJldil7IHRvdGFsICs9IChNYXRoLm1pbihjLHRvcCktcHJldikqcGN0OyBwcmV2PXRvcDsgfSBlbHNlIGJyZWFrOyB9CiAgICByZXR1cm4gdG90YWw7CiAgfQoKICBjb25zdCBBUkVBUyA9IHsKICAgIGp1cmlkaWNvOiB7CiAgICAgIGxhYmVsOiJKdXLDrWRpY28iLCBkZXNjOiJMaXRpZ2lvcywgc29jaWV0YXJpbyB5IE0mQSwgZmlzY2FsLCBjb25jdXJzYWwsIGFyYml0cmFqZS4iLAogICAgICBpY29uOic8cGF0aCBkPSJNMTIgM3YxOE01IDIxaDE0TTcgN2wtNCA3YTQgNCAwIDAgMCA4IDBsLTQtN3ptMTAgMGwtNCA3YTQgNCAwIDAgMCA4IDBsLTQtN3pNMTIgNWw1LTJNMTIgNUw3IDMiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMS42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4nLAogICAgICBuZWVkczoiY3VhbnRpYSIsCiAgICAgIHNlcnZpY2VzOnsKICAgICAgICBvcmRpbmFyaW86e2xhYmVsOiJKdWljaW8gb3JkaW5hcmlvICgxwqogaW5zdGFuY2lhKSIsIG1pbjoyMTAwLCBlc2M6MX0sCiAgICAgICAgdmVyYmFsOntsYWJlbDoiSnVpY2lvIHZlcmJhbCIsIG1pbjoxMjAwLCBlc2M6MX0sCiAgICAgICAgbW9uaXRvcmlvOntsYWJlbDoiUHJvY2VkaW1pZW50byBtb25pdG9yaW8iLCBtaW46NjAwLCBlc2M6MX0sCiAgICAgICAgYXBlbGFjaW9uOntsYWJlbDoiUmVjdXJzbyBkZSBhcGVsYWNpw7NuIiwgbWluOjkwMCwgZXNjOi41fSwKICAgICAgICBjYXNhY2lvbjp7bGFiZWw6IlJlY3Vyc28gZGUgY2FzYWNpw7NuIiwgbWluOjE1MDAsIGVzYzouNzV9LAogICAgICAgIGltcHVnbmFjaW9uOntsYWJlbDoiSW1wdWduYWNpw7NuIGRlIGFjdWVyZG9zIHNvY2lhbGVzIiwgbWluOjIxMDAsIGVzYzoxfSwKICAgICAgICBzb2NpZXRhcmlvOntsYWJlbDoiQXNlc29yYW1pZW50byBzb2NpZXRhcmlvIC8gTSZBIiwgbWluOjI1MDAsIGVzYzoxfSwKICAgICAgICBjb25jdXJzbzp7bGFiZWw6IkNvbmN1cnNvIGRlIGFjcmVlZG9yZXMgKGFjcmVlZG9yKSIsIG1pbjoyNTAwLCBlc2M6MX0sCiAgICAgICAgYXJiaXRyYWplOntsYWJlbDoiQXJiaXRyYWplIChkZW1hbmRhIG8gY29udGVzdGFjacOzbikiLCBtaW46MjEwMCwgZXNjOjF9CiAgICAgIH0KICAgIH0sCiAgICBjb25zdWx0b3JpYTogewogICAgICBsYWJlbDoiQ29uc3VsdG9yw61hIiwgZGVzYzoiRXN0cmF0ZWdpYSwgZHVlIGRpbGlnZW5jZSBmaW5hbmNpZXJvLCByZWVzdHJ1Y3R1cmFjacOzbiwgcmV0YWluZXIuIiwKICAgICAgaWNvbjonPHBhdGggZD0iTTQgMTloMTZNNiAxOVY5bTQgMTBWNW00IDE0di03bTQgN1Y4IiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjEuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+JywKICAgICAgbmVlZHM6InJhbmdvIiwKICAgICAgc2VydmljZXM6ewogICAgICAgIGRpYWdub3N0aWNvOntsYWJlbDoiRGlhZ27Ds3N0aWNvIGVzdHJhdMOpZ2ljbyAoUFlNRSkiLCByYW5nbzpbMTUwMDAsNTAwMDBdfSwKICAgICAgICBwbGFuOntsYWJlbDoiUGxhbiBlc3RyYXTDqWdpY28gKGVtcHJlc2EgbWVkaWFuYSkiLCByYW5nbzpbNDAwMDAsMTUwMDAwXX0sCiAgICAgICAgZGRmX3M6e2xhYmVsOiJEdWUgZGlsaWdlbmNlIGZpbmFuY2llcm8gKHRhcmdldCA8IDEwIE3igqwpIiwgcmFuZ286WzIwMDAwLDYwMDAwXX0sCiAgICAgICAgZGRmX2I6e2xhYmVsOiJEdWUgZGlsaWdlbmNlIGZpbmFuY2llcm8gKHRhcmdldCA+IDEwIE3igqwpIiwgcmFuZ286WzYwMDAwLDIwMDAwMF19LAogICAgICAgIHJlZXN0cjp7bGFiZWw6IlJlZXN0cnVjdHVyYWNpw7NuIG9wZXJhdGl2YSIsIHJhbmdvOls4MDAwMCw1MDAwMDBdfSwKICAgICAgICBjb25zdWx0YTp7bGFiZWw6IkNvbnN1bHRhIHB1bnR1YWwgLyBpbmZvcm1lIGVqZWN1dGl2byIsIHJhbmdvOls1MDAwLDI1MDAwXX0sCiAgICAgICAgcmV0YWluZXI6e2xhYmVsOiJSZXRhaW5lciBtZW5zdWFsIGRlIGFzZXNvcmFtaWVudG8iLCByYW5nbzpbMTUwMCwyNTAwMF0sIHBlcmlvZG86Ii9tZXMifQogICAgICB9CiAgICB9LAogICAgaW5tb2JpbGlhcmlvOiB7CiAgICAgIGxhYmVsOiJJbm1vYmlsaWFyaW8iLCBkZXNjOiJJbnRlcm1lZGlhY2nDs24sIGR1ZSBkaWxpZ2VuY2UsIGdlc3Rpw7NuIGRlIGFjdGl2b3MsIHZpYWJpbGlkYWQuIiwKICAgICAgaWNvbjonPHBhdGggZD0iTTMgMjFoMThNNSAyMVY4bDctNSA3IDV2MTNNOSAyMXYtNmg2djZNOSAxMWguMDFNMTUgMTFoLjAxIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjEuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+JywKICAgICAgc2VydmljZXM6ewogICAgICAgIHZlbnRhX3Y6e2xhYmVsOiJJbnRlcm1lZGlhY2nDs24gY29tcHJhdmVudGEgKGxhZG8gdmVuZGVkb3IpIiwgbmVlZHM6InZhbG9yIiwgcGN0OlsuMDMsLjA1XSwgcGN0QmlnOlsuMDE1LC4wM10sIGJpZ0Zyb206NTAwMDAwMCwgdmFsb3JMYWJlbDoiUHJlY2lvIGRlbCBpbm11ZWJsZSJ9LAogICAgICAgIHZlbnRhX2M6e2xhYmVsOiJJbnRlcm1lZGlhY2nDs24gY29tcHJhdmVudGEgKGxhZG8gY29tcHJhZG9yKSIsIG5lZWRzOiJ2YWxvciIsIHBjdDpbLjAxLC4wM10sIHZhbG9yTGFiZWw6IlByZWNpbyBkZSBjb21wcmEifSwKICAgICAgICBhcnJpZW5kbzp7bGFiZWw6IkludGVybWVkaWFjacOzbiBhcnJlbmRhbWllbnRvIHJlc2lkZW5jaWFsIiwgbmVlZHM6InJlbnRhIiwgdmFsb3JMYWJlbDoiUmVudGEgbWVuc3VhbCJ9LAogICAgICAgIGdlc3Rpb246e2xhYmVsOiJHZXN0acOzbiBkZSBhY3Rpdm9zIChmZWUgYW51YWwpIiwgbmVlZHM6InZhbG9yIiwgcGN0OlsuMDA1LC4wMl0sIHZhbG9yTGFiZWw6IlZhbG9yIGRlbCBhY3Rpdm8ifSwKICAgICAgICBkZF9pbm1vOntsYWJlbDoiRHVlIGRpbGlnZW5jZSBpbm1vYmlsaWFyaW8iLCBuZWVkczoidmFsb3IiLCB0aWVyczpbWzUwMDAwMCwyMDAwLDYwMDBdLFsyMDAwMDAwLDUwMDAsMTUwMDBdLFtJbmZpbml0eSw4MDAwLDMwMDAwXV0sIHZhbG9yTGFiZWw6IlZhbG9yIGRlbCBhY3Rpdm8ifSwKICAgICAgICB2aWFiaWxpZGFkOntsYWJlbDoiSW5mb3JtZSBkZSB2aWFiaWxpZGFkIC8gYW7DoWxpc2lzIGRlIGludmVyc2nDs24iLCByYW5nbzpbMTUwMCw4MDAwXX0sCiAgICAgICAgbW9kZWxvOntsYWJlbDoiTW9kZWxvIGZpbmFuY2llcm8gZGUgZGVzYXJyb2xsbyIsIHJhbmdvOlszMDAwLDE1MDAwXX0KICAgICAgfQogICAgfQogIH07CgogIGNvbnN0IENPTVBMRUpJREFEID0geyBiYWphOntmOi45LHBvczowfSwgbWVkaWE6e2Y6MSxwb3M6LjV9LCBhbHRhOntmOjEuMixwb3M6MX0gfTsKCiAgLy8gLS0tLSBzdGF0ZSAtLS0tCiAgY29uc3QgUyA9IHsgc3RlcDoxLCBhcmVhOm51bGwsIHN2Y0tleTpudWxsLCBjdWFudGlhOm51bGwsIGNvbXBsZWppZGFkOiJtZWRpYSIsCiAgICAgICAgICAgICAgbm9tYnJlOiIiLCBlbWFpbDoiIiwgdGVsOiIiLCBlbXByZXNhOiIiLCBtZW5zYWplOiIiLCByZ3BkOmZhbHNlLCB2ZXJhY2lkYWQ6ZmFsc2UgfTsKCiAgZnVuY3Rpb24gc3ZjKCl7IHJldHVybiBTLmFyZWEgPyBBUkVBU1tTLmFyZWFdLnNlcnZpY2VzW1Muc3ZjS2V5XSA6IG51bGw7IH0KICBmdW5jdGlvbiBuZWVkc0Ftb3VudCgpeyBjb25zdCBzPXN2YygpOyBpZighcykgcmV0dXJuIG51bGw7IHJldHVybiBzLm5lZWRzIHx8IEFSRUFTW1MuYXJlYV0ubmVlZHMgfHwgbnVsbDsgfSAvLyBjdWFudGlhfHZhbG9yfHJlbnRhfHJhbmdvCgogIC8vIC0tLS0gY29tcHV0ZSBlc3RpbWF0ZSAtLS0tCiAgZnVuY3Rpb24gY29tcHV0ZSgpewogICAgY29uc3QgcyA9IHN2YygpOyBpZighcykgcmV0dXJuIG51bGw7CiAgICBjb25zdCBjeCA9IENPTVBMRUpJREFEW1MuY29tcGxlamlkYWRdOwogICAgbGV0IGhvbiA9IDAsIHJhbmdvVHh0ID0gbnVsbCwgcGVyaW9kbyA9IHMucGVyaW9kbyB8fCAiIjsKCiAgICBpZihzLnJhbmdvKXsKICAgICAgY29uc3QgW2xvLGhpXSA9IHMucmFuZ287CiAgICAgIGhvbiA9IGxvICsgKGhpLWxvKSpjeC5wb3M7CiAgICAgIHJhbmdvVHh0ID0gYFJhbmdvIG9yaWVudGF0aXZvOiAke2V1cihsbyl9IOKAkyAke2V1cihoaSl9JHtwZXJpb2RvfWA7CiAgICB9IGVsc2UgaWYocy50aWVycyl7CiAgICAgIGNvbnN0IHYgPSBTLmN1YW50aWF8fDA7IGxldCBsbz0wLGhpPTA7CiAgICAgIGZvcihjb25zdCBbdG9wLGEsYl0gb2Ygcy50aWVycyl7IGlmKHY8PXRvcCl7IGxvPWE7aGk9YjticmVhazsgfSB9CiAgICAgIGhvbiA9IGxvICsgKGhpLWxvKSpjeC5wb3M7CiAgICAgIHJhbmdvVHh0ID0gYFJhbmdvIG9yaWVudGF0aXZvIHBhcmEgZXN0ZSB2YWxvcjogJHtldXIobG8pfSDigJMgJHtldXIoaGkpfWA7CiAgICB9IGVsc2UgaWYocy5wY3QpewogICAgICBjb25zdCB2ID0gUy5jdWFudGlhfHwwOwogICAgICBsZXQgW2xvLGhpXSA9IChzLnBjdEJpZyAmJiB2Pj1zLmJpZ0Zyb20pID8gcy5wY3RCaWcgOiBzLnBjdDsKICAgICAgY29uc3QgcGN0ID0gbG8gKyAoaGktbG8pKmN4LnBvczsKICAgICAgaG9uID0gdipwY3Q7CiAgICAgIHJhbmdvVHh0ID0gYENvbWlzacOzbiBvcmllbnRhdGl2YTogJHsobG8qMTAwKS50b0xvY2FsZVN0cmluZygnZXMtRVMnKX0lIOKAkyAkeyhoaSoxMDApLnRvTG9jYWxlU3RyaW5nKCdlcy1FUycpfSUgc29icmUgJHtldXIodil9YDsKICAgIH0gZWxzZSBpZihzLm5lZWRzPT09InJlbnRhIil7CiAgICAgIGhvbiA9IChTLmN1YW50aWF8fDApOyAvLyB1bmEgbWVuc3VhbGlkYWQKICAgICAgcmFuZ29UeHQgPSAiRXF1aXZhbGUgYSB1bmEgbWVuc3VhbGlkYWQgZGUgcmVudGEgKGxhZG8gYXJyZW5kYWRvcikuIjsKICAgIH0gZWxzZSB7IC8vIGp1csOtZGljbyDigJQgZXNjYWxhIElDQU0KICAgICAgY29uc3QgZSA9IGVzY2FsYUlDQU0oUy5jdWFudGlhfHwwKSAqIChzLmVzY3x8MSk7CiAgICAgIGhvbiA9IE1hdGgubWF4KGUsIHMubWlufHwwKSAqIGN4LmY7CiAgICB9CiAgICBjb25zdCBpdmEgPSBob24qSVZBLCB0b3RhbCA9IGhvbitpdmE7CiAgICByZXR1cm4geyBob24sIGl2YSwgdG90YWwsIGNvbkR0bzogdG90YWwqKDEtRFRPKSwgZHRvOiB0b3RhbCpEVE8sIHJhbmdvVHh0LCBwZXJpb2RvIH07CiAgfQoKICAvLyAtLS0tIHJlbmRlcmluZyAtLS0tCiAgY29uc3QgbWFpbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluJyk7CiAgY29uc3QgZWxTdGVwcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGVwcycpOwoKICBmdW5jdGlvbiBzZXRTdGVwcygpewogICAgZWxTdGVwcy5xdWVyeVNlbGVjdG9yQWxsKCcuc3QnKS5mb3JFYWNoKHN0PT57CiAgICAgIGNvbnN0IG49K3N0LmRhdGFzZXQuczsgc3QuY2xhc3NMaXN0LnRvZ2dsZSgnb24nLCBuPT09Uy5zdGVwKTsgc3QuY2xhc3NMaXN0LnRvZ2dsZSgnZG9uZScsIG48Uy5zdGVwKTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyQXNpZGUoKXsKICAgIGNvbnN0IHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnN1bScpOyBjb25zdCB0Yj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWxib3gnKTsKICAgIGxldCByb3dzPScnOwogICAgaWYoUy5hcmVhKSByb3dzKz1gPGRpdiBjbGFzcz0icnN1bS1yb3ciPjxzcGFuIGNsYXNzPSJrIj7DgXJlYTwvc3Bhbj48c3BhbiBjbGFzcz0idiI+JHtBUkVBU1tTLmFyZWFdLmxhYmVsfTwvc3Bhbj48L2Rpdj5gOwogICAgaWYoUy5zdmNLZXkpIHJvd3MrPWA8ZGl2IGNsYXNzPSJyc3VtLXJvdyI+PHNwYW4gY2xhc3M9ImsiPlNlcnZpY2lvPC9zcGFuPjxzcGFuIGNsYXNzPSJ2Ij4ke3N2YygpLmxhYmVsfTwvc3Bhbj48L2Rpdj5gOwogICAgY29uc3QgbmE9bmVlZHNBbW91bnQoKTsKICAgIGlmKFMuY3VhbnRpYSAmJiAobmE9PT0iY3VhbnRpYSJ8fG5hPT09InZhbG9yInx8bmE9PT0icmVudGEiKSkKICAgICAgcm93cys9YDxkaXYgY2xhc3M9InJzdW0tcm93Ij48c3BhbiBjbGFzcz0iayI+JHtuYT09PSJjdWFudGlhIj8iQ3VhbnTDrWEiOm5hPT09InJlbnRhIj8iUmVudGEiOiJWYWxvciJ9PC9zcGFuPjxzcGFuIGNsYXNzPSJ2Ij4ke2V1cihTLmN1YW50aWEpfTwvc3Bhbj48L2Rpdj5gOwogICAgaWYoUy5zdmNLZXkpIHJvd3MrPWA8ZGl2IGNsYXNzPSJyc3VtLXJvdyI+PHNwYW4gY2xhc3M9ImsiPkNvbXBsZWppZGFkPC9zcGFuPjxzcGFuIGNsYXNzPSJ2Ij4ke1MuY29tcGxlamlkYWRbMF0udG9VcHBlckNhc2UoKStTLmNvbXBsZWppZGFkLnNsaWNlKDEpfTwvc3Bhbj48L2Rpdj5gOwogICAgci5pbm5lckhUTUwgPSByb3dzIHx8ICc8ZGl2IGNsYXNzPSJyc3VtLWVtcHR5Ij5FbXBpZXphIGVsaWdpZW5kbyB1biDDoXJlYSBkZSBzZXJ2aWNpby48L2Rpdj4nOwoKICAgIGNvbnN0IGMgPSBjb21wdXRlKCk7IGNvbnN0IHJlYWR5ID0gYyAmJiAobmE9PT0icmFuZ28iIHx8IFMuY3VhbnRpYT4wKTsKICAgIGlmKHJlYWR5KXsKICAgICAgdGIuc3R5bGUuZGlzcGxheT0nYmxvY2snOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWxhbXQnKS50ZXh0Q29udGVudCA9IGV1cihjLnRvdGFsKSsoYy5wZXJpb2RvfHwiIik7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3RhbGl2YScpLnRleHRDb250ZW50ID0gYCR7ZXVyKGMuaG9uKX0gKyBJVkEgMjElICgke2V1cihjLml2YSl9KWA7CiAgICB9IGVsc2UgdGIuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgfQoKICBmdW5jdGlvbiBidG5Sb3coYmFja0xhYmVsLCBuZXh0TGFiZWwsIG5leHRFbmFibGVkLCBpc0ZpbmFsKXsKICAgIHJldHVybiBgPGRpdiBjbGFzcz0ibmF2Ij4KICAgICAgJHtTLnN0ZXA+MT9gPGJ1dHRvbiBjbGFzcz0iYnRuIGdob3N0IiBpZD0iYmFjayI+JHtiYWNrTGFiZWx8fCdBdHLDoXMnfTwvYnV0dG9uPmA6JzxzcGFuPjwvc3Bhbj4nfQogICAgICAke25leHRMYWJlbD9gPGJ1dHRvbiBjbGFzcz0iYnRuIHByaW1hcnkiIGlkPSJuZXh0IiAke25leHRFbmFibGVkPycnOidkaXNhYmxlZCd9PiR7bmV4dExhYmVsfTwvYnV0dG9uPmA6Jyd9CiAgICA8L2Rpdj5gOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyKCl7CiAgICBzZXRTdGVwcygpOyByZW5kZXJBc2lkZSgpOwogICAgaWYoUy5zdGVwPT09MSkgcmVuZGVyQXJlYSgpOwogICAgZWxzZSBpZihTLnN0ZXA9PT0yKSByZW5kZXJTdmMoKTsKICAgIGVsc2UgaWYoUy5zdGVwPT09MykgcmVuZGVyRGF0b3MoKTsKICAgIGVsc2UgaWYoUy5zdGVwPT09NCkgcmVuZGVyUmVzdWx0KCk7CiAgfQoKICBmdW5jdGlvbiByZW5kZXJBcmVhKCl7CiAgICBsZXQgY2FyZHM9Jyc7CiAgICBmb3IoY29uc3QgayBpbiBBUkVBUyl7IGNvbnN0IGE9QVJFQVNba107CiAgICAgIGNhcmRzKz1gPGJ1dHRvbiBjbGFzcz0iYXJlYSAke1MuYXJlYT09PWs/J3NlbCc6Jyd9IiBkYXRhLWE9IiR7a30iPgogICAgICAgIDxzcGFuIGNsYXNzPSJpYyI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPiR7YS5pY29ufTwvc3ZnPjwvc3Bhbj4KICAgICAgICA8c3Bhbj48aDM+JHthLmxhYmVsfTwvaDM+PHA+JHthLmRlc2N9PC9wPjwvc3Bhbj48L2J1dHRvbj5gOwogICAgfQogICAgbWFpbi5pbm5lckhUTUwgPSBgPGgyIGNsYXNzPSJxIj7Cv0VuIHF1w6kgw6FyZWEgbmVjZXNpdGFzIGF5dWRhPzwvaDI+CiAgICAgIDxwIGNsYXNzPSJzdWIiPkVsaWdlIGVsIMOhbWJpdG8gZGVsIHNlcnZpY2lvIHF1ZSBxdWllcmVzIHByZXN1cHVlc3Rhci48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImFyZWFzIj4ke2NhcmRzfTwvZGl2PiR7YnRuUm93KG51bGwsJ0NvbnRpbnVhcicsISFTLmFyZWEpfWA7CiAgICBtYWluLnF1ZXJ5U2VsZWN0b3JBbGwoJy5hcmVhJykuZm9yRWFjaChiPT5iLm9uY2xpY2s9KCk9PnsKICAgICAgaWYoUy5hcmVhIT09Yi5kYXRhc2V0LmEpeyBTLmFyZWE9Yi5kYXRhc2V0LmE7IFMuc3ZjS2V5PW51bGw7IFMuY3VhbnRpYT1udWxsOyB9CiAgICAgIHJlbmRlcigpOwogICAgfSk7CiAgICBiaW5kTmF2KCk7CiAgfQoKICBmdW5jdGlvbiByZW5kZXJTdmMoKXsKICAgIGNvbnN0IHNzID0gQVJFQVNbUy5hcmVhXS5zZXJ2aWNlczsgbGV0IG9wdHM9Jyc7CiAgICBmb3IoY29uc3QgayBpbiBzcykgb3B0cys9YDxsYWJlbCBjbGFzcz0ib3B0ICR7Uy5zdmNLZXk9PT1rPydzZWwnOicnfSI+CiAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ic3ZjIiB2YWx1ZT0iJHtrfSIgJHtTLnN2Y0tleT09PWs/J2NoZWNrZWQnOicnfT48c3BhbiBjbGFzcz0idCI+JHtzc1trXS5sYWJlbH08L3NwYW4+PC9sYWJlbD5gOwogICAgbWFpbi5pbm5lckhUTUwgPSBgPGgyIGNsYXNzPSJxIj5TZXJ2aWNpbyBkZSAke0FSRUFTW1MuYXJlYV0ubGFiZWwudG9Mb3dlckNhc2UoKX08L2gyPgogICAgICA8cCBjbGFzcz0ic3ViIj5TZWxlY2Npb25hIGxhIGFjdHVhY2nDs24gcXVlIG3DoXMgc2UgYWp1c3RlIGEgdHUgY2Fzby48L3A+CiAgICAgIDxkaXYgY2xhc3M9InN2YyI+JHtvcHRzfTwvZGl2PiR7YnRuUm93KCdBdHLDoXMnLCdDb250aW51YXInLCEhUy5zdmNLZXkpfWA7CiAgICBtYWluLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9c3ZjXScpLmZvckVhY2gocj0+ci5vbmNoYW5nZT0oKT0+eyBTLnN2Y0tleT1yLnZhbHVlOyBTLmN1YW50aWE9bnVsbDsgcmVuZGVyKCk7IH0pOwogICAgYmluZE5hdigpOwogIH0KCiAgZnVuY3Rpb24gcmVuZGVyRGF0b3MoKXsKICAgIGNvbnN0IHM9c3ZjKCk7IGNvbnN0IG5hPW5lZWRzQW1vdW50KCk7CiAgICBsZXQgaW5wdXRIVE1MPScnOwogICAgaWYobmE9PT0iY3VhbnRpYSJ8fG5hPT09InZhbG9yInx8bmE9PT0icmVudGEiKXsKICAgICAgY29uc3QgbGJsID0gbmE9PT0iY3VhbnRpYSIgPyAiQ3VhbnTDrWEgZGVsIGFzdW50byIgOiAocy52YWxvckxhYmVsIHx8ICJWYWxvciIpOwogICAgICBjb25zdCBoaW50ID0gbmE9PT0iY3VhbnRpYSIgPyAiSW1wb3J0ZSBlY29uw7NtaWNvIGVuIGp1ZWdvIG8gcmVjbGFtYWRvLiIgOgogICAgICAgICAgICAgICAgICAgbmE9PT0icmVudGEiID8gIlJlbnRhIG1lbnN1YWwgcGFjdGFkYSBvIHByZXZpc3RhLiIgOiAiSW1wb3J0ZSBzb2JyZSBlbCBxdWUgc2UgY2FsY3VsYSBlbCBzZXJ2aWNpby4iOwogICAgICBpbnB1dEhUTUwgPSBgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbD4ke2xibH0gPHNwYW4gY2xhc3M9ImhpbnQiPuKAlCAke2hpbnR9PC9zcGFuPjwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iaW53cmFwIj48c3BhbiBjbGFzcz0iZXVyIj7igqw8L3NwYW4+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlucHV0bW9kZT0ibnVtZXJpYyIgaWQ9ImFtdCIgcGxhY2Vob2xkZXI9IjAiIHZhbHVlPSIke1MuY3VhbnRpYT9TLmN1YW50aWEudG9Mb2NhbGVTdHJpbmcoJ2VzLUVTJyk6Jyd9Ij48L2Rpdj48L2Rpdj5gOwogICAgfSBlbHNlIHsKICAgICAgaW5wdXRIVE1MID0gYDxkaXYgY2xhc3M9Im9yaWVudCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48cGF0aCBkPSJNMTIgOHY1TTEyIDE2aC4wMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+CiAgICAgICAgPHNwYW4+UGFyYSBlc3RlIHNlcnZpY2lvIHRyYWJhamFtb3MgY29uIHVuIHJhbmdvIGRlIG1lcmNhZG8uIEFqdXN0YSBsYSBjb21wbGVqaWRhZCB5IHZlcsOhcyBsYSBlc3RpbWFjacOzbi48L3NwYW4+PC9kaXY+YDsKICAgIH0KICAgIGNvbnN0IGN1cj1TLmNvbXBsZWppZGFkOwogICAgbWFpbi5pbm5lckhUTUwgPSBgPGgyIGNsYXNzPSJxIj5EZXRhbGxlcyBkZWwgZW5jYXJnbzwvaDI+CiAgICAgIDxwIGNsYXNzPSJzdWIiPiR7cy5sYWJlbH0uPC9wPgogICAgICAke2lucHV0SFRNTH0KICAgICAgPGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbD5Db21wbGVqaWRhZCBlc3RpbWFkYTwvbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hpcHMiIGlkPSJjeCI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaGlwICR7Y3VyPT09J2JhamEnPydzZWwnOicnfSIgZGF0YS1jPSJiYWphIj5CYWphPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaGlwICR7Y3VyPT09J21lZGlhJz8nc2VsJzonJ30iIGRhdGEtYz0ibWVkaWEiPk1lZGlhPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaGlwICR7Y3VyPT09J2FsdGEnPydzZWwnOicnfSIgZGF0YS1jPSJhbHRhIj5BbHRhPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGludCIgc3R5bGU9Im1hcmdpbi10b3A6OHB4Ij5DYXNvcyB1cmdlbnRlcywgYWx0YSBjdWFudMOtYSBvIGdyYW4gcmVzcG9uc2FiaWxpZGFkIHJlcHV0YWNpb25hbCBzZSBzaXTDumFuIGVuIGxhIHBhcnRlIGFsdGEgZGUgbGEgYmFuZGEuPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAke2J0blJvdygnQXRyw6FzJywnVmVyIHByZXN1cHVlc3RvJywgbmE9PT0icmFuZ28iIHx8IChTLmN1YW50aWE+MCkpfWA7CiAgICBjb25zdCBhbXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FtdCcpOwogICAgaWYoYW10KXsgYW10Lm9uaW5wdXQ9KCk9PnsgY29uc3Qgbj1wYXJzZUludChhbXQudmFsdWUucmVwbGFjZSgvXEQvZywnJyksMTApOyBTLmN1YW50aWE9aXNOYU4obik/bnVsbDpuOwogICAgICAgIGFtdC52YWx1ZSA9IFMuY3VhbnRpYT9TLmN1YW50aWEudG9Mb2NhbGVTdHJpbmcoJ2VzLUVTJyk6Jyc7IHJlZnJlc2hOZXh0KCk7IHJlbmRlckFzaWRlKCk7IH07IH0KICAgIG1haW4ucXVlcnlTZWxlY3RvckFsbCgnI2N4IC5jaGlwJykuZm9yRWFjaChjPT5jLm9uY2xpY2s9KCk9PnsgUy5jb21wbGVqaWRhZD1jLmRhdGFzZXQuYzsgcmVuZGVyRGF0b3MoKTsgfSk7CiAgICBiaW5kTmF2KCk7CiAgfQoKICBmdW5jdGlvbiByZWZyZXNoTmV4dCgpeyBjb25zdCBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXh0Jyk7IGlmKCFuKSByZXR1cm47CiAgICBjb25zdCBuYT1uZWVkc0Ftb3VudCgpOyBuLmRpc2FibGVkID0gIShuYT09PSJyYW5nbyIgfHwgUy5jdWFudGlhPjApOyB9CgogIGZ1bmN0aW9uIHJlbmRlclJlc3VsdCgpewogICAgY29uc3QgYz1jb21wdXRlKCk7CiAgICBtYWluLmlubmVySFRNTCA9IGAKICAgICAgPGgyIGNsYXNzPSJxIj5UdSBwcmVzdXB1ZXN0byBvcmllbnRhdGl2bzwvaDI+CiAgICAgIDxwIGNsYXNzPSJzdWIiPiR7QVJFQVNbUy5hcmVhXS5sYWJlbH0gwrcgJHtzdmMoKS5sYWJlbH08L3A+CiAgICAgIDxkaXYgY2xhc3M9Im9yaWVudCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48cGF0aCBkPSJNMTIgOHY1TTEyIDE2aC4wMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+CiAgICAgICAgPHNwYW4+RXN0aW1hY2nDs24gPHN0cm9uZz5vcmllbnRhdGl2YSB5IG5vIHZpbmN1bGFudGU8L3N0cm9uZz4sIGNhbGN1bGFkYSBjb24gY3JpdGVyaW9zIGRlIG1lcmNhZG8uIEVsIHByZXN1cHVlc3RvIGRlZmluaXRpdm8gc2UgY29uZmlybWEgdHJhcyBlc3R1ZGlhciB0dSBjYXNvLjwvc3Bhbj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iYnJlYWtkb3duIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxzcGFuIGNsYXNzPSJrIj5Ib25vcmFyaW9zIGVzdGltYWRvcyR7Yy5wZXJpb2RvP2AgKCR7Yy5wZXJpb2RvLnJlcGxhY2UoJy8nLCdwb3IgJyl9KWA6Jyd9PC9zcGFuPjxzcGFuPiR7ZXVyKGMuaG9uKX08L3NwYW4+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij48c3BhbiBjbGFzcz0iayI+SVZBICgyMSUpPC9zcGFuPjxzcGFuPiR7ZXVyKGMuaXZhKX08L3NwYW4+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icm93IHRvdCI+PHNwYW4+VG90YWwgZXN0aW1hZG8ke2MucGVyaW9kb3x8Jyd9PC9zcGFuPjxzcGFuPiR7ZXVyKGMudG90YWwpfSR7Yy5wZXJpb2RvfHwnJ308L3NwYW4+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAke2MucmFuZ29UeHQ/YDxkaXYgY2xhc3M9InJhbmdvIj4ke2MucmFuZ29UeHR9PC9kaXY+YDonJ30KCiAgICAgIDxkaXYgY2xhc3M9ImN0YSI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlIj5PZmVydGEgd2ViIMK3IDI1JSBkZSBkZXNjdWVudG88L3NwYW4+CiAgICAgICAgPGgzPlJlc8OpcnZhbG8gYWhvcmEgeSBhaG9ycmEgdW4gMjUlPC9oMz4KICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPSJkdG8tYW10Ij4ke2V1cihjLmNvbkR0byl9JHtjLnBlcmlvZG98fCcnfTwvc3Bhbj48c3BhbiBjbGFzcz0iZHRvLW9sZCI+JHtldXIoYy50b3RhbCl9PC9zcGFuPjwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJmaW5lIj5EZXNjdWVudG8gZGVsIDI1JSBzb2JyZSBlbCB0b3RhbCAoSVZBIGluY2x1aWRvKSBzaSBzb2xpY2l0YXMgdHUgcHJlc3VwdWVzdG8gYSB0cmF2w6lzIGRlIGVzdGEgY2FsY3VsYWRvcmEuIEFob3JybzogJHtldXIoYy5kdG8pfS48L3A+CgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm1ncmlkIj4KICAgICAgICAgIDxkaXY+PGxhYmVsIGNsYXNzPSJoaW50IiBzdHlsZT0iZm9udC13ZWlnaHQ6NjAwO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo1cHgiPk5vbWJyZSB5IGFwZWxsaWRvcyAqPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJmX25vbWJyZSIgdmFsdWU9IiR7Uy5ub21icmV9Ij48L2Rpdj4KICAgICAgICAgIDxkaXY+PGxhYmVsIGNsYXNzPSJoaW50IiBzdHlsZT0iZm9udC13ZWlnaHQ6NjAwO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo1cHgiPkVtYWlsICo8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJmX2VtYWlsIiB2YWx1ZT0iJHtTLmVtYWlsfSI+PC9kaXY+CiAgICAgICAgICA8ZGl2PjxsYWJlbCBjbGFzcz0iaGludCIgc3R5bGU9ImZvbnQtd2VpZ2h0OjYwMDtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206NXB4Ij5FbXByZXNhIChvcGNpb25hbCk8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZfZW1wcmVzYSIgdmFsdWU9IiR7Uy5lbXByZXNhfSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmdWxsIj48bGFiZWwgY2xhc3M9ImhpbnQiIHN0eWxlPSJmb250LXdlaWdodDo2MDA7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjVweCI+Q29tZW50YXJpbyAob3BjaW9uYWwpPC9sYWJlbD4KICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJmX21zZyIgcGxhY2Vob2xkZXI9IkN1w6ludGFub3MgYnJldmVtZW50ZSB0dSBjYXNv4oCmIj4ke1MubWVuc2FqZX08L3RleHRhcmVhPjwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8bGFiZWwgY2xhc3M9ImNoZWNrIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjX3JncGQiICR7Uy5yZ3BkPydjaGVja2VkJzonJ30+CiAgICAgICAgICA8c3Bhbj5IZSBsZcOtZG8geSBhY2VwdG8gZWwgPGJ1dHRvbiBjbGFzcz0ibGVnYWwtdG9nZ2xlIiBpZD0idG9nbGVnYWwiPmF2aXNvIGRlIHByaXZhY2lkYWQ8L2J1dHRvbj4gKDxhIGhyZWY9Imh0dHBzOi8vd3d3LmFwbHVzYWUuZXMvcG9saXRpY2FzLWRlLXByaXZhY2lkYWQvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+cG9sw610aWNhIGNvbXBsZXRhPC9hPikgeSBlbCB0cmF0YW1pZW50byBkZSBtaXMgZGF0b3MgcGFyYSBnZXN0aW9uYXIgbWkgc29saWNpdHVkIGRlIHByZXN1cHVlc3RvLjwvc3Bhbj48L2xhYmVsPgogICAgICAgIDxsYWJlbCBjbGFzcz0iY2hlY2siPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNfdmVyIiAke1MudmVyYWNpZGFkPydjaGVja2VkJzonJ30+CiAgICAgICAgICA8c3Bhbj5EZWNsYXJvIHF1ZSBsb3MgZGF0b3MgZWNvbsOzbWljb3MgYXBvcnRhZG9zIHNvbiB2ZXJhY2VzIHkgZW50aWVuZG8gcXVlIGVsIHByZXN1cHVlc3RvIGVzIG9yaWVudGF0aXZvIHkgbm8gdmluY3VsYW50ZSBoYXN0YSBzdSBjb25maXJtYWNpw7NuIHBvciBBJm5ic3A7UGx1cy48L3NwYW4+PC9sYWJlbD4KCiAgICAgICAgPGRpdiBjbGFzcz0ibGVnYWwiIGlkPSJsZWdhbGJveCI+CiAgICAgICAgICA8c3Ryb25nPkluZm9ybWFjacOzbiBiw6FzaWNhIHNvYnJlIHByb3RlY2Npw7NuIGRlIGRhdG9zPC9zdHJvbmc+CiAgICAgICAgICA8aDU+UmVzcG9uc2FibGU8L2g1PkFwbHVzIEFib2dhZG9zIHkgRWNvbm9taXN0YXMsIFMuTC5QLiDigJQgY3JtQGFwbHVzYWUuZXMKICAgICAgICAgIDxoNT5GaW5hbGlkYWQ8L2g1Pkdlc3Rpb25hciB5IGF0ZW5kZXIgdHUgc29saWNpdHVkIGRlIHByZXN1cHVlc3RvIHkgcmVtaXRpcnRlIGxhIHByb3B1ZXN0YSBkZSBob25vcmFyaW9zIGNvcnJlc3BvbmRpZW50ZS4KICAgICAgICAgIDxoNT5MZWdpdGltYWNpw7NuPC9oNT5UdSBjb25zZW50aW1pZW50byB5IGxhIGFwbGljYWNpw7NuIGRlIG1lZGlkYXMgcHJlY29udHJhY3R1YWxlcyBzb2xpY2l0YWRhcyBwb3IgdGkuCiAgICAgICAgICA8aDU+RGVzdGluYXRhcmlvczwvaDU+Tm8gc2UgY2VkZW4gZGF0b3MgYSB0ZXJjZXJvcyBzYWx2byBvYmxpZ2FjacOzbiBsZWdhbC4KICAgICAgICAgIDxoNT5EZXJlY2hvczwvaDU+UHVlZGVzIGVqZXJjZXIgdHVzIGRlcmVjaG9zIGRlIGFjY2VzbywgcmVjdGlmaWNhY2nDs24sIGNhbmNlbGFjacOzbiB5IG9wb3NpY2nDs24gY29uZm9ybWUgc2UgaW5kaWNhIGVuIGxhIHBvbMOtdGljYSBkZSBwcml2YWNpZGFkLgogICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDo4cHgiPk3DoXMgaW5mb3JtYWNpw7NuIGVuIGxhIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmFwbHVzYWUuZXMvcG9saXRpY2FzLWRlLXByaXZhY2lkYWQvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+cG9sw610aWNhIGRlIHByaXZhY2lkYWQgY29tcGxldGE8L2E+IGRlIGFwbHVzYWUuZXMuPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImVyciIgaWQ9ImZvcm1lcnIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5hdiIgc3R5bGU9ImJvcmRlci10b3A6bm9uZTttYXJnaW4tdG9wOjE4cHg7cGFkZGluZy10b3A6MCI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gZ2hvc3QiIGlkPSJiYWNrIj5BdHLDoXM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBwcmltYXJ5IiBpZD0ic2VuZCIgZGlzYWJsZWQ+U29saWNpdGFyIHByZXN1cHVlc3RvIGNvbiAyNSUgZHRvLjwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj5gOwoKICAgIGNvbnN0IGYgPSBpZD0+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgY29uc3Qgc3luYz0oKT0+eyBTLm5vbWJyZT1mKCdmX25vbWJyZScpLnZhbHVlLnRyaW0oKTsgUy5lbWFpbD1mKCdmX2VtYWlsJykudmFsdWUudHJpbSgpOwogICAgICBTLmVtcHJlc2E9ZignZl9lbXByZXNhJykudmFsdWUudHJpbSgpOyBTLm1lbnNhamU9ZignZl9tc2cnKS52YWx1ZS50cmltKCk7IFMucmdwZD1mKCdjX3JncGQnKS5jaGVja2VkOyBTLnZlcmFjaWRhZD1mKCdjX3ZlcicpLmNoZWNrZWQ7CiAgICAgIGNvbnN0IG9rID0gUy5ub21icmUgJiYgL1xTK0BcUytcLlxTKy8udGVzdChTLmVtYWlsKSAmJiBTLnJncGQgJiYgUy52ZXJhY2lkYWQ7CiAgICAgIGYoJ3NlbmQnKS5kaXNhYmxlZCA9ICFvazsgfTsKICAgIFsnZl9ub21icmUnLCdmX2VtYWlsJywnZl9lbXByZXNhJywnZl9tc2cnXS5mb3JFYWNoKGlkPT5mKGlkKS5vbmlucHV0PXN5bmMpOwogICAgWydjX3JncGQnLCdjX3ZlciddLmZvckVhY2goaWQ9PmYoaWQpLm9uY2hhbmdlPXN5bmMpOwogICAgZigndG9nbGVnYWwnKS5vbmNsaWNrPWU9PnsgZS5wcmV2ZW50RGVmYXVsdCgpOyBmKCdsZWdhbGJveCcpLmNsYXNzTGlzdC50b2dnbGUoJ29wZW4nKTsgfTsKICAgIGYoJ3NlbmQnKS5vbmNsaWNrPXN1Ym1pdDsKICAgIGJpbmROYXYoKTsgc3luYygpOwogIH0KCiAgLy8gLS0tLSBzdWJtaXQgLS0tLQogIGZ1bmN0aW9uIGJ1aWxkQm9keShjKXsKICAgIGNvbnN0IEw9W107CiAgICBMLnB1c2goIlNPTElDSVRVRCBERSBQUkVTVVBVRVNUTyAoY2FsY3VsYWRvcmEgd2ViKSIpOwogICAgTC5wdXNoKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOwogICAgTC5wdXNoKCLDgXJlYTogIitBUkVBU1tTLmFyZWFdLmxhYmVsKTsKICAgIEwucHVzaCgiU2VydmljaW86ICIrc3ZjKCkubGFiZWwpOwogICAgY29uc3QgbmE9bmVlZHNBbW91bnQoKTsKICAgIGlmKG5hPT09ImN1YW50aWEiKSBMLnB1c2goIkN1YW50w61hIGRlbCBhc3VudG86ICIrZXVyKFMuY3VhbnRpYSkpOwogICAgZWxzZSBpZihuYT09PSJ2YWxvciIpIEwucHVzaCgoc3ZjKCkudmFsb3JMYWJlbHx8IlZhbG9yIikrIjogIitldXIoUy5jdWFudGlhKSk7CiAgICBlbHNlIGlmKG5hPT09InJlbnRhIikgTC5wdXNoKCJSZW50YSBtZW5zdWFsOiAiK2V1cihTLmN1YW50aWEpKTsKICAgIEwucHVzaCgiQ29tcGxlamlkYWQ6ICIrUy5jb21wbGVqaWRhZCk7CiAgICBMLnB1c2goIiIpOwogICAgTC5wdXNoKCJIb25vcmFyaW9zIGVzdGltYWRvczogIitldXIoYy5ob24pKyhjLnBlcmlvZG98fCIiKSk7CiAgICBMLnB1c2goIklWQSAoMjElKTogIitldXIoYy5pdmEpKTsKICAgIEwucHVzaCgiVE9UQUwgZXN0aW1hZG86ICIrZXVyKGMudG90YWwpKyhjLnBlcmlvZG98fCIiKSk7CiAgICBMLnB1c2goIlRPVEFMIGNvbiAyNSUgZGVzY3VlbnRvIHdlYjogIitldXIoYy5jb25EdG8pKyhjLnBlcmlvZG98fCIiKSk7CiAgICBMLnB1c2goIiIpOwogICAgTC5wdXNoKCItLS0gRGF0b3MgZGUgY29udGFjdG8gLS0tIik7CiAgICBMLnB1c2goIk5vbWJyZTogIitTLm5vbWJyZSk7CiAgICBMLnB1c2goIkVtYWlsOiAiK1MuZW1haWwpOwogICAgaWYoUy5lbXByZXNhKSBMLnB1c2goIkVtcHJlc2E6ICIrUy5lbXByZXNhKTsKICAgIGlmKFMubWVuc2FqZSkgTC5wdXNoKCJDb21lbnRhcmlvOiAiK1MubWVuc2FqZSk7CiAgICBMLnB1c2goIiIpOwogICAgTC5wdXNoKCJFbCBzb2xpY2l0YW50ZSBoYSBhY2VwdGFkbyBlbCBhdmlzbyBkZSBwcml2YWNpZGFkIChSR1BEKSB5IGRlY2xhcmFkbyBsYSB2ZXJhY2lkYWQgZGUgbG9zIGRhdG9zIGVjb27Ds21pY29zIGFwb3J0YWRvcy4iKTsKICAgIEwucHVzaCgiRXN0aW1hY2nDs24gb3JpZW50YXRpdmEgeSBubyB2aW5jdWxhbnRlLiIpOwogICAgcmV0dXJuIEwuam9pbigiXG4iKTsKICB9CgogIGFzeW5jIGZ1bmN0aW9uIHN1Ym1pdCgpewogICAgY29uc3QgYz1jb21wdXRlKCk7IGNvbnN0IGJvZHk9YnVpbGRCb2R5KGMpOyBjb25zdCBlcnI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvcm1lcnInKTsKICAgIGVyci5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7CiAgICBjb25zdCBzdWJqZWN0ID0gYCR7Q09ORklHLmFzdW50b30g4oCUICR7c3ZjKCkubGFiZWx9YDsKCiAgICBpZihDT05GSUcuZW5kcG9pbnQpewogICAgICB0cnl7CiAgICAgICAgY29uc3QgZmQ9bmV3IEZvcm1EYXRhKCk7CiAgICAgICAgZmQuYXBwZW5kKCd0bycsQ09ORklHLmRlc3RpbmF0YXJpbyk7IGZkLmFwcGVuZCgnc3ViamVjdCcsc3ViamVjdCk7IGZkLmFwcGVuZCgnbWVzc2FnZScsYm9keSk7CiAgICAgICAgZmQuYXBwZW5kKCdub21icmUnLFMubm9tYnJlKTsgZmQuYXBwZW5kKCdlbWFpbCcsUy5lbWFpbCk7CiAgICAgICAgZmQuYXBwZW5kKCdlbXByZXNhJyxTLmVtcHJlc2EpOyBmZC5hcHBlbmQoJ2NvbWVudGFyaW8nLFMubWVuc2FqZSk7CiAgICAgICAgZmQuYXBwZW5kKCdhcmVhJyxBUkVBU1tTLmFyZWFdLmxhYmVsKTsgZmQuYXBwZW5kKCdzZXJ2aWNpbycsc3ZjKCkubGFiZWwpOwogICAgICAgIGZkLmFwcGVuZCgndG90YWwnLE1hdGgucm91bmQoYy50b3RhbCkpOyBmZC5hcHBlbmQoJ3RvdGFsX2Nvbl9kZXNjdWVudG8nLE1hdGgucm91bmQoYy5jb25EdG8pKTsKICAgICAgICBjb25zdCByZXM9YXdhaXQgZmV0Y2goQ09ORklHLmVuZHBvaW50LHttZXRob2Q6J1BPU1QnLGJvZHk6ZmR9KTsKICAgICAgICBpZighcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ0hUVFAgJytyZXMuc3RhdHVzKTsKICAgICAgICByZXR1cm4gc3VjY2Vzcyh0cnVlKTsKICAgICAgfWNhdGNoKGUpewogICAgICAgIGVyci50ZXh0Q29udGVudD0iTm8gaGVtb3MgcG9kaWRvIGVudmlhciBsYSBzb2xpY2l0dWQgYXV0b23DoXRpY2FtZW50ZS4gU2UgYWJyaXLDoSB0dSBjb3JyZW8gcGFyYSBlbnZpYXJsYSBtYW51YWxtZW50ZS4iOwogICAgICAgIGVyci5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7CiAgICAgIH0KICAgIH0KICAgIC8vIG1haWx0byAocG9yIGRlZmVjdG8sIG8gcmVzcGFsZG8gc2kgZmFsbGEgZWwgZW5kcG9pbnQpCiAgICBjb25zdCBtYWlsdG89YG1haWx0bzoke0NPTkZJRy5kZXN0aW5hdGFyaW99P3N1YmplY3Q9JHtlbmNvZGVVUklDb21wb25lbnQoc3ViamVjdCl9JmJvZHk9JHtlbmNvZGVVUklDb21wb25lbnQoYm9keSl9YDsKICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmPW1haWx0bzsKICAgIHN1Y2Nlc3MoZmFsc2UpOwogIH0KCiAgZnVuY3Rpb24gc3VjY2VzcyhhdXRvKXsKICAgIG1haW4uaW5uZXJIVE1MPWA8ZGl2IGNsYXNzPSJkb25lIj4KICAgICAgPGRpdiBjbGFzcz0icmluZyI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMi4yIj48cGF0aCBkPSJNMjAgNkw5IDE3bC01LTUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPjwvZGl2PgogICAgICA8aDI+JHthdXRvPyfCoVNvbGljaXR1ZCBlbnZpYWRhISc6J1NvbGljaXR1ZCBwcmVwYXJhZGEnfTwvaDI+CiAgICAgIDxwPiR7YXV0bwogICAgICAgID8gJ0hlbW9zIHJlY2liaWRvIHR1IHNvbGljaXR1ZC4gVGUgZW52aWFyZW1vcyBsYSBwcm9wdWVzdGEgZGUgaG9ub3JhcmlvcyBjb24gZWwgMjUlIGRlIGRlc2N1ZW50byBhcGxpY2FkbyBsbyBhbnRlcyBwb3NpYmxlLicKICAgICAgICA6ICdTZSBoYSBhYmllcnRvIHR1IHByb2dyYW1hIGRlIGNvcnJlbyBjb24gbGEgc29saWNpdHVkIGxpc3RhLiBTb2xvIHRpZW5lcyBxdWUgcHVsc2FyIDxzdHJvbmc+RW52aWFyPC9zdHJvbmc+IHBhcmEgaGFjw6lybm9zbGEgbGxlZ2FyIGEgY3JtQGFwbHVzYWUuZXMuJ308L3A+CiAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOjE0cHgiPkdyYWNpYXMgcG9yIGNvbmZpYXIgZW4gQSZuYnNwO1BsdXMgQWJvZ2Fkb3MgeSBFY29ub21pc3Rhcy48L3A+CiAgICAgIDxkaXYgY2xhc3M9Im5hdiIgc3R5bGU9Imp1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXRvcDpub25lIj48YnV0dG9uIGNsYXNzPSJidG4gZ2hvc3QiIGlkPSJyZXN0YXJ0Ij5IYWNlciBvdHJhIGVzdGltYWNpw7NuPC9idXR0b24+PC9kaXY+CiAgICA8L2Rpdj5gOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdGFsYm94Jykuc3R5bGUuZGlzcGxheT0nbm9uZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdGFydCcpLm9uY2xpY2s9KCk9PnsgT2JqZWN0LmFzc2lnbihTLHtzdGVwOjEsYXJlYTpudWxsLHN2Y0tleTpudWxsLGN1YW50aWE6bnVsbCxjb21wbGVqaWRhZDoibWVkaWEiLG5vbWJyZToiIixlbWFpbDoiIix0ZWw6IiIsZW1wcmVzYToiIixtZW5zYWplOiIiLHJncGQ6ZmFsc2UsdmVyYWNpZGFkOmZhbHNlfSk7IHJlbmRlcigpOyB9OwogIH0KCiAgLy8gLS0tLSBuYXYgYmluZGluZyAtLS0tCiAgZnVuY3Rpb24gYmluZE5hdigpewogICAgY29uc3QgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmFjaycpLCBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXh0Jyk7CiAgICBpZihiKSBiLm9uY2xpY2s9KCk9PnsgUy5zdGVwPU1hdGgubWF4KDEsUy5zdGVwLTEpOyByZW5kZXIoKTsgfTsKICAgIGlmKG4pIG4ub25jbGljaz0oKT0+ewogICAgICBpZihTLnN0ZXA9PT0xICYmICFTLmFyZWEpIHJldHVybjsKICAgICAgaWYoUy5zdGVwPT09MiAmJiAhUy5zdmNLZXkpIHJldHVybjsKICAgICAgaWYoUy5zdGVwPT09Myl7IGNvbnN0IG5hPW5lZWRzQW1vdW50KCk7IGlmKG5hIT09InJhbmdvIiAmJiAhKFMuY3VhbnRpYT4wKSkgcmV0dXJuOyB9CiAgICAgIFMuc3RlcD1NYXRoLm1pbig0LFMuc3RlcCsxKTsgcmVuZGVyKCk7CiAgICB9OwogIH0KCiAgcmVuZGVyKCk7Cn0pKCk7Cjwvc2NyaXB0Pgo=