1688054432
waR3U4bTeM%3A86db92abb9c77b239415575f02788c6f-31dbf0e9ce790a66ebc46bec6b7f2176
s:62128:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTI6IkVuc3VyZXMgYWxsIHN3aXRjaCBzdGF0ZW1lbnRzIGFyZSBkZWZpbmVkIGNvcnJlY3RseS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjEzOiJHcmVnIFNoZXJ3b29kIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjE5OiJnc2hlcndvb2RAc3F1aXoubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ0OiIyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODA6Imh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiIzMWRiZjBlOWNlNzkwYTY2ZWJjNDZiZWM2YjdmMjE3NiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI2OiJTd2l0Y2hEZWNsYXJhdGlvblNuaWZmLnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjEwMzoidmVuZG9yL3NxdWl6bGFicy9waHBfY29kZXNuaWZmZXIvc3JjL1N0YW5kYXJkcy9QU1IyL1NuaWZmcy9Db250cm9sU3RydWN0dXJlcy9Td2l0Y2hEZWNsYXJhdGlvblNuaWZmLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTgyMTY6Ijw/cGhwCi8qKgogKiBFbnN1cmVzIGFsbCBzd2l0Y2ggc3RhdGVtZW50cyBhcmUgZGVmaW5lZCBjb3JyZWN0bHkuCiAqCiAqIEBhdXRob3IgICAgR3JlZyBTaGVyd29vZCA8Z3NoZXJ3b29kQHNxdWl6Lm5ldD4KICogQGNvcHlyaWdodCAyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKQogKiBAbGljZW5zZSAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlCiAqLwoKbmFtZXNwYWNlIFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcUFNSMlxTbmlmZnNcQ29udHJvbFN0cnVjdHVyZXM7Cgp1c2UgUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGU7CnVzZSBQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmOwp1c2UgUEhQX0NvZGVTbmlmZmVyXFV0aWxcVG9rZW5zOwoKY2xhc3MgU3dpdGNoRGVjbGFyYXRpb25TbmlmZiBpbXBsZW1lbnRzIFNuaWZmCnsKCiAgICAvKioKICAgICAqIFRoZSBudW1iZXIgb2Ygc3BhY2VzIGNvZGUgc2hvdWxkIGJlIGluZGVudGVkLgogICAgICoKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICBwdWJsaWMgJGluZGVudCA9IDQ7CgoKICAgIC8qKgogICAgICogUmV0dXJucyBhbiBhcnJheSBvZiB0b2tlbnMgdGhpcyB0ZXN0IHdhbnRzIHRvIGxpc3RlbiBmb3IuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXIoKQogICAgewogICAgICAgIHJldHVybiBbVF9TV0lUQ0hdOwoKICAgIH0vL2VuZCByZWdpc3RlcigpCgoKICAgIC8qKgogICAgICogUHJvY2Vzc2VzIHRoaXMgdGVzdCwgd2hlbiBvbmUgb2YgaXRzIHRva2VucyBpcyBlbmNvdW50ZXJlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlICRwaHBjc0ZpbGUgVGhlIGZpbGUgYmVpbmcgc2Nhbm5lZC4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YWNrUHRyICBUaGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgdG9rZW4gaW4gdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2sgcGFzc2VkIGluICR0b2tlbnMuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzKEZpbGUgJHBocGNzRmlsZSwgJHN0YWNrUHRyKQogICAgewogICAgICAgICR0b2tlbnMgPSAkcGhwY3NGaWxlLT5nZXRUb2tlbnMoKTsKCiAgICAgICAgLy8gV2UgY2FuJ3QgcHJvY2VzcyBTV0lUQ0ggc3RhdGVtZW50cyB1bmxlc3Mgd2Uga25vdyB3aGVyZSB0aGV5IHN0YXJ0IGFuZCBlbmQuCiAgICAgICAgaWYgKGlzc2V0KCR0b2tlbnNbJHN0YWNrUHRyXVsnc2NvcGVfb3BlbmVyJ10pID09PSBmYWxzZQogICAgICAgICAgICB8fCBpc3NldCgkdG9rZW5zWyRzdGFja1B0cl1bJ3Njb3BlX2Nsb3NlciddKSA9PT0gZmFsc2UKICAgICAgICApIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJHN3aXRjaCAgICAgICAgPSAkdG9rZW5zWyRzdGFja1B0cl07CiAgICAgICAgJG5leHRDYXNlICAgICAgPSAkc3RhY2tQdHI7CiAgICAgICAgJGNhc2VBbGlnbm1lbnQgPSAoJHN3aXRjaFsnY29sdW1uJ10gKyAkdGhpcy0+aW5kZW50KTsKCiAgICAgICAgd2hpbGUgKCgkbmV4dENhc2UgPSAkdGhpcy0+ZmluZE5leHRDYXNlKCRwaHBjc0ZpbGUsICgkbmV4dENhc2UgKyAxKSwgJHN3aXRjaFsnc2NvcGVfY2xvc2VyJ10pKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgaWYgKCR0b2tlbnNbJG5leHRDYXNlXVsnY29kZSddID09PSBUX0RFRkFVTFQpIHsKICAgICAgICAgICAgICAgICR0eXBlID0gJ2RlZmF1bHQnOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHR5cGUgPSAnY2FzZSc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRuZXh0Q2FzZV1bJ2NvbnRlbnQnXSAhPT0gc3RydG9sb3dlcigkdG9rZW5zWyRuZXh0Q2FzZV1bJ2NvbnRlbnQnXSkpIHsKICAgICAgICAgICAgICAgICRleHBlY3RlZCA9IHN0cnRvbG93ZXIoJHRva2Vuc1skbmV4dENhc2VdWydjb250ZW50J10pOwogICAgICAgICAgICAgICAgJGVycm9yICAgID0gc3RydG91cHBlcigkdHlwZSkuJyBrZXl3b3JkIG11c3QgYmUgbG93ZXJjYXNlOyBleHBlY3RlZCAiJXMiIGJ1dCBmb3VuZCAiJXMiJzsKICAgICAgICAgICAgICAgICRkYXRhICAgICA9IFsKICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgJHRva2Vuc1skbmV4dENhc2VdWydjb250ZW50J10sCiAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgICAgICRmaXggPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkbmV4dENhc2UsICR0eXBlLidOb3RMb3dlcicsICRkYXRhKTsKICAgICAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkbmV4dENhc2UsICRleHBlY3RlZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdHlwZSA9PT0gJ2Nhc2UnCiAgICAgICAgICAgICAgICAmJiAoJHRva2Vuc1soJG5leHRDYXNlICsgMSldWydjb2RlJ10gIT09IFRfV0hJVEVTUEFDRQogICAgICAgICAgICAgICAgfHwgJHRva2Vuc1soJG5leHRDYXNlICsgMSldWydjb250ZW50J10gIT09ICcgJykKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnQ0FTRSBrZXl3b3JkIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBzaW5nbGUgc3BhY2UnOwogICAgICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgJG5leHRDYXNlLCAnU3BhY2luZ0FmdGVyQ2FzZScpOwogICAgICAgICAgICAgICAgaWYgKCRmaXggPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1soJG5leHRDYXNlICsgMSldWydjb2RlJ10gIT09IFRfV0hJVEVTUEFDRSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkQ29udGVudCgkbmV4dENhc2UsICcgJyk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigoJG5leHRDYXNlICsgMSksICcgJyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkb3BlbmVyICAgICA9ICR0b2tlbnNbJG5leHRDYXNlXVsnc2NvcGVfb3BlbmVyJ107CiAgICAgICAgICAgICRuZXh0Q2xvc2VyID0gJHRva2Vuc1skbmV4dENhc2VdWydzY29wZV9jbG9zZXInXTsKICAgICAgICAgICAgaWYgKCR0b2tlbnNbJG9wZW5lcl1bJ2NvZGUnXSA9PT0gVF9DT0xPTikgewogICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbKCRvcGVuZXIgLSAxKV1bJ2NvZGUnXSA9PT0gVF9XSElURVNQQUNFKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yID0gJ1RoZXJlIG11c3QgYmUgbm8gc3BhY2UgYmVmb3JlIHRoZSBjb2xvbiBpbiBhICcuc3RydG91cHBlcigkdHlwZSkuJyBzdGF0ZW1lbnQnOwogICAgICAgICAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRuZXh0Q2FzZSwgJ1NwYWNlQmVmb3JlQ29sb24nLnN0cnRvdXBwZXIoJHR5cGUpKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCgkb3BlbmVyIC0gMSksICcnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgZm9yICgkbmV4dCA9ICgkb3BlbmVyICsgMSk7ICRuZXh0IDwgJG5leHRDbG9zZXI7ICRuZXh0KyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoVG9rZW5zOjokZW1wdHlUb2tlbnNbJHRva2Vuc1skbmV4dF1bJ2NvZGUnXV0pID09PSBmYWxzZQogICAgICAgICAgICAgICAgICAgICAgICB8fCAoaXNzZXQoVG9rZW5zOjokY29tbWVudFRva2Vuc1skdG9rZW5zWyRuZXh0XVsnY29kZSddXSkgPT09IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgJiYgJHRva2Vuc1skbmV4dF1bJ2xpbmUnXSAhPT0gJHRva2Vuc1skb3BlbmVyXVsnbGluZSddKQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJG5leHRdWydsaW5lJ10gIT09ICgkdG9rZW5zWyRvcGVuZXJdWydsaW5lJ10gKyAxKSkgewogICAgICAgICAgICAgICAgICAgICRlcnJvciA9ICdUaGUgJy5zdHJ0b3VwcGVyKCR0eXBlKS4nIGJvZHkgbXVzdCBzdGFydCBvbiB0aGUgbGluZSBmb2xsb3dpbmcgdGhlIHN0YXRlbWVudCc7CiAgICAgICAgICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgJG5leHRDYXNlLCAnQm9keU9uTmV4dExpbmUnLnN0cnRvdXBwZXIoJHR5cGUpKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skbmV4dF1bJ2xpbmUnXSA9PT0gJHRva2Vuc1skb3BlbmVyXVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFkZGluZyA9IHN0cl9yZXBlYXQoJyAnLCAoJGNhc2VBbGlnbm1lbnQgKyAkdGhpcy0+aW5kZW50IC0gMSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmFkZENvbnRlbnRCZWZvcmUoJG5leHQsICRwaHBjc0ZpbGUtPmVvbENoYXIuJHBhZGRpbmcpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmJlZ2luQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gKCRvcGVuZXIgKyAxKTsgJGkgPCAkbmV4dDsgJGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRpXVsnbGluZSddID09PSAkdG9rZW5zWyRvcGVuZXJdWydsaW5lJ10pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHRyYWlsaW5nIGNvbW1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRpXVsnbGluZSddID09PSAkdG9rZW5zWyRuZXh0XVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkaSwgJycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5lbmRDaGFuZ2VzZXQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0vL2VuZCBpZgogICAgICAgICAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJG5leHRDbG9zZXJdWydzY29wZV9jb25kaXRpb24nXSA9PT0gJG5leHRDYXNlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBuZWVkIHRvIGNoZWNrIHNvbWUgdGhpbmdzIG9uY2UsIGV2ZW4gaWYgdGhlCiAgICAgICAgICAgICAgICAgICAgLy8gY2xvc2VyIGlzIHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlIGNhc2Ugc3RhdGVtZW50cywgb3IgZXZlbgogICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkZWZhdWx0IGNhc2UuCiAgICAgICAgICAgICAgICAgICAgJHByZXYgPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoVF9XSElURVNQQUNFLCAoJG5leHRDbG9zZXIgLSAxKSwgJG5leHRDYXNlLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skcHJldl1bJ2xpbmUnXSA9PT0gJHRva2Vuc1skbmV4dENsb3Nlcl1bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAnVGVybWluYXRpbmcgc3RhdGVtZW50IG11c3QgYmUgb24gYSBsaW5lIGJ5IGl0c2VsZic7CiAgICAgICAgICAgICAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRuZXh0Q2xvc2VyLCAnQnJlYWtOb3ROZXdMaW5lJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkTmV3TGluZSgkcHJldik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCRuZXh0Q2xvc2VyLCB0cmltKCR0b2tlbnNbJG5leHRDbG9zZXJdWydjb250ZW50J10pKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRkaWZmID0gKCR0b2tlbnNbJG5leHRDYXNlXVsnY29sdW1uJ10gKyAkdGhpcy0+aW5kZW50IC0gJHRva2Vuc1skbmV4dENsb3Nlcl1bJ2NvbHVtbiddKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRkaWZmICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAnVGVybWluYXRpbmcgc3RhdGVtZW50IG11c3QgYmUgaW5kZW50ZWQgdG8gdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIENBU0UgYm9keSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkbmV4dENsb3NlciwgJ0JyZWFrSW5kZW50Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZGlmZiA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmFkZENvbnRlbnRCZWZvcmUoJG5leHRDbG9zZXIsIHN0cl9yZXBlYXQoJyAnLCAkZGlmZikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5zdWJzdHJUb2tlbigoJG5leHRDbG9zZXIgLSAxKSwgMCwgJGRpZmYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0vL2VuZCBpZgogICAgICAgICAgICAgICAgfS8vZW5kIGlmCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSBzdHJ0b3VwcGVyKCR0eXBlKS4nIHN0YXRlbWVudHMgbXVzdCBiZSBkZWZpbmVkIHVzaW5nIGEgY29sb24nOwogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+YWRkRXJyb3IoJGVycm9yLCAkbmV4dENhc2UsICdXcm9uZ09wZW5lcicuJHR5cGUpOwogICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgIC8vIFdlIG9ubHkgd2FudCBjYXNlcyBmcm9tIGhlcmUgb24gaW4uCiAgICAgICAgICAgIGlmICgkdHlwZSAhPT0gJ2Nhc2UnKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJG5leHRDb2RlID0gJHBocGNzRmlsZS0+ZmluZE5leHQoVF9XSElURVNQQUNFLCAoJG9wZW5lciArIDEpLCAkbmV4dENsb3NlciwgdHJ1ZSk7CgogICAgICAgICAgICBpZiAoJHRva2Vuc1skbmV4dENvZGVdWydjb2RlJ10gIT09IFRfQ0FTRSAmJiAkdG9rZW5zWyRuZXh0Q29kZV1bJ2NvZGUnXSAhPT0gVF9ERUZBVUxUKSB7CiAgICAgICAgICAgICAgICAvLyBUaGlzIGNhc2Ugc3RhdGVtZW50IGhhcyBjb250ZW50LiBJZiB0aGUgbmV4dCBjYXNlIG9yIGRlZmF1bHQgY29tZXMKICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgY2xvc2VyLCBpdCBtZWFucyB3ZSBkb24ndCBoYXZlIGFuIG9idmlvdXMgdGVybWluYXRpbmcKICAgICAgICAgICAgICAgIC8vIHN0YXRlbWVudCBhbmQgbmVlZCB0byBtYWtlIHNvbWUgbW9yZSBlZmZvcnQgdG8gZmluZCBvbmUuIElmIHdlCiAgICAgICAgICAgICAgICAvLyBkb24ndCwgd2UgZG8gbmVlZCBhIGNvbW1lbnQuCiAgICAgICAgICAgICAgICAkbmV4dENvZGUgPSAkdGhpcy0+ZmluZE5leHRDYXNlKCRwaHBjc0ZpbGUsICgkb3BlbmVyICsgMSksICRuZXh0Q2xvc2VyKTsKICAgICAgICAgICAgICAgIGlmICgkbmV4dENvZGUgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHByZXZDb2RlID0gJHBocGNzRmlsZS0+ZmluZFByZXZpb3VzKFRfV0hJVEVTUEFDRSwgKCRuZXh0Q29kZSAtIDEpLCAkbmV4dENhc2UsIHRydWUpOwogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldChUb2tlbnM6OiRjb21tZW50VG9rZW5zWyR0b2tlbnNbJHByZXZDb2RlXVsnY29kZSddXSkgPT09IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICYmICR0aGlzLT5maW5kTmVzdGVkVGVybWluYXRvcigkcGhwY3NGaWxlLCAoJG9wZW5lciArIDEpLCAkbmV4dENvZGUpID09PSBmYWxzZQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAnVGhlcmUgbXVzdCBiZSBhIGNvbW1lbnQgd2hlbiBmYWxsLXRocm91Z2ggaXMgaW50ZW50aW9uYWwgaW4gYSBub24tZW1wdHkgY2FzZSBib2R5JzsKICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+YWRkRXJyb3IoJGVycm9yLCAkbmV4dENhc2UsICdUZXJtaW5hdGluZ0NvbW1lbnQnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9Ly9lbmQgd2hpbGUKCiAgICB9Ly9lbmQgcHJvY2VzcygpCgoKICAgIC8qKgogICAgICogRmluZCB0aGUgbmV4dCBDQVNFIG9yIERFRkFVTFQgc3RhdGVtZW50IGZyb20gYSBwb2ludCBpbiB0aGUgZmlsZS4KICAgICAqCiAgICAgKiBOb3RlIHRoYXQgbmVzdGVkIHN3aXRjaGVzIGFyZSBpZ25vcmVkLgogICAgICoKICAgICAqIEBwYXJhbSBcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUgJHBocGNzRmlsZSBUaGUgZmlsZSBiZWluZyBzY2FubmVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhY2tQdHIgIFRoZSBwb3NpdGlvbiB0byBzdGFydCBsb29raW5nIGF0LgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICAgICAgICAgICAgICAkZW5kICAgICAgIFRoZSBwb3NpdGlvbiB0byBzdG9wIGxvb2tpbmcgYXQuCiAgICAgKgogICAgICogQHJldHVybiBpbnR8ZmFsc2UKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBmaW5kTmV4dENhc2UoJHBocGNzRmlsZSwgJHN0YWNrUHRyLCAkZW5kKQogICAgewogICAgICAgICR0b2tlbnMgPSAkcGhwY3NGaWxlLT5nZXRUb2tlbnMoKTsKICAgICAgICB3aGlsZSAoKCRzdGFja1B0ciA9ICRwaHBjc0ZpbGUtPmZpbmROZXh0KFtUX0NBU0UsIFRfREVGQVVMVCwgVF9TV0lUQ0hdLCAkc3RhY2tQdHIsICRlbmQpKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgLy8gU2tpcCBuZXN0ZWQgU1dJVENIIHN0YXRlbWVudHM7IHRoZXkgYXJlIGhhbmRsZWQgb24gdGhlaXIgb3duLgogICAgICAgICAgICBpZiAoJHRva2Vuc1skc3RhY2tQdHJdWydjb2RlJ10gPT09IFRfU1dJVENIKSB7CiAgICAgICAgICAgICAgICAkc3RhY2tQdHIgPSAkdG9rZW5zWyRzdGFja1B0cl1bJ3Njb3BlX2Nsb3NlciddOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRzdGFja1B0cjsKCiAgICB9Ly9lbmQgZmluZE5leHRDYXNlKCkKCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgbmVzdGVkIHRlcm1pbmF0aW5nIHN0YXRlbWVudC4KICAgICAqCiAgICAgKiBSZXR1cm5zIGZhbHNlIGlmIG5vIHRlcm1pbmF0aW5nIHN0YXRlbWVudCB3YXMgZm91bmQuCiAgICAgKgogICAgICogQHBhcmFtIFxQSFBfQ29kZVNuaWZmZXJcRmlsZXNcRmlsZSAkcGhwY3NGaWxlIFRoZSBmaWxlIGJlaW5nIHNjYW5uZWQuCiAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgICAgICAgICAgICAgICRzdGFja1B0ciAgVGhlIHBvc2l0aW9uIHRvIHN0YXJ0IGxvb2tpbmcgYXQuCiAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgICAgICAgICAgICAgICRlbmQgICAgICAgVGhlIHBvc2l0aW9uIHRvIHN0b3AgbG9va2luZyBhdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludHxmYWxzZQogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIGZpbmROZXN0ZWRUZXJtaW5hdG9yKCRwaHBjc0ZpbGUsICRzdGFja1B0ciwgJGVuZCkKICAgIHsKICAgICAgICAkdG9rZW5zID0gJHBocGNzRmlsZS0+Z2V0VG9rZW5zKCk7CgogICAgICAgICRsYXN0VG9rZW4gPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkZW5kIC0gMSksICRzdGFja1B0ciwgdHJ1ZSk7CiAgICAgICAgaWYgKCRsYXN0VG9rZW4gPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmICgkdG9rZW5zWyRsYXN0VG9rZW5dWydjb2RlJ10gPT09IFRfQ0xPU0VfQ1VSTFlfQlJBQ0tFVCkgewogICAgICAgICAgICAvLyBXZSBmb3VuZCBhIGNsb3NpbmcgY3VybHkgYnJhY2tldCBhbmQgd2FudCB0byBjaGVjayBpZiBpdHMgYmxvY2sKICAgICAgICAgICAgLy8gYmVsb25ncyB0byBhIFNXSVRDSCwgSUYsIEVMU0VJRiBvciBFTFNFLCBUUlksIENBVENIIE9SIEZJTkFMTFkgY2xhdXNlLgogICAgICAgICAgICAvLyBJZiB5ZXMsIHdlIGNvbnRpbnVlIHNlYXJjaGluZyBmb3IgYSB0ZXJtaW5hdGluZyBzdGF0ZW1lbnQgd2l0aGluIHRoYXQKICAgICAgICAgICAgLy8gYmxvY2suIE5vdGUgdGhhdCB3ZSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5IGJsb2NrIG9mCiAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgaWYvZWxzZS9zd2l0Y2ggc3RhdGVtZW50IGhhcyBhIHRlcm1pbmF0aW5nIHN0YXRlbWVudC4KICAgICAgICAgICAgLy8gRm9yIGEgdHJ5L2NhdGNoL2ZpbmFsbHkgc3RhdGVtZW50LCBlaXRoZXIgdGhlIGZpbmFsbHkgYmxvY2sgaGFzCiAgICAgICAgICAgIC8vIHRvIGhhdmUgYSB0ZXJtaW5hdGluZyBzdGF0ZW1lbnQgb3IgZXZlcnkgdHJ5L2NhdGNoIGJsb2NrIGhhcyB0byBoYXZlIG9uZS4KICAgICAgICAgICAgJGN1cnJlbnRDbG9zZXIgPSAkbGFzdFRva2VuOwogICAgICAgICAgICAkaGFzRWxzZUJsb2NrICA9IGZhbHNlOwogICAgICAgICAgICAkaGFzQ2F0Y2hXaXRob3V0VGVybWluYXRvciA9IGZhbHNlOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAkc2NvcGVPcGVuZXIgPSAkdG9rZW5zWyRjdXJyZW50Q2xvc2VyXVsnc2NvcGVfb3BlbmVyJ107CiAgICAgICAgICAgICAgICAkc2NvcGVDbG9zZXIgPSAkdG9rZW5zWyRjdXJyZW50Q2xvc2VyXVsnc2NvcGVfY2xvc2VyJ107CgogICAgICAgICAgICAgICAgJHByZXZUb2tlbiA9ICRwaHBjc0ZpbGUtPmZpbmRQcmV2aW91cyhUb2tlbnM6OiRlbXB0eVRva2VucywgKCRzY29wZU9wZW5lciAtIDEpLCAkc3RhY2tQdHIsIHRydWUpOwogICAgICAgICAgICAgICAgaWYgKCRwcmV2VG9rZW4gPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFNXSVRDSCwgSUYsIEVMU0VJRiwgQ0FUQ0ggY2xhdXNlcyBwb3NzZXNzIGEgY29uZGl0aW9uIHdlIGhhdmUgdG8gYWNjb3VudCBmb3IuCiAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skcHJldlRva2VuXVsnY29kZSddID09PSBUX0NMT1NFX1BBUkVOVEhFU0lTKSB7CiAgICAgICAgICAgICAgICAgICAgJHByZXZUb2tlbiA9ICR0b2tlbnNbJHByZXZUb2tlbl1bJ3BhcmVudGhlc2lzX293bmVyJ107CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJHByZXZUb2tlbl1bJ2NvZGUnXSA9PT0gVF9JRikgewogICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgbm90IGVuY291bnRlcmVkIGFuIEVMU0UgY2xhdXNlIGJ5IG5vdywgd2UgY2Fubm90CiAgICAgICAgICAgICAgICAgICAgLy8gYmUgc3VyZSB0aGF0IHRoZSB3aG9sZSBzdGF0ZW1lbnQgdGVybWluYXRlcyBpbiBldmVyeSBjYXNlLgogICAgICAgICAgICAgICAgICAgIGlmICgkaGFzRWxzZUJsb2NrID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmZpbmROZXN0ZWRUZXJtaW5hdG9yKCRwaHBjc0ZpbGUsICgkc2NvcGVPcGVuZXIgKyAxKSwgJHNjb3BlQ2xvc2VyKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHRva2Vuc1skcHJldlRva2VuXVsnY29kZSddID09PSBUX0VMU0VJRgogICAgICAgICAgICAgICAgICAgIHx8ICR0b2tlbnNbJHByZXZUb2tlbl1bJ2NvZGUnXSA9PT0gVF9FTFNFCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBmaW5kIGEgdGVybWluYXRpbmcgc3RhdGVtZW50IHdpdGhpbiB0aGlzIGJsb2NrLAogICAgICAgICAgICAgICAgICAgIC8vIHdlIGNvbnRpbnVlIHdpdGggdGhlIHByZXZpb3VzIEVMU0VJRiBvciBJRiBjbGF1c2UuCiAgICAgICAgICAgICAgICAgICAgJGhhc1Rlcm1pbmF0b3IgPSAkdGhpcy0+ZmluZE5lc3RlZFRlcm1pbmF0b3IoJHBocGNzRmlsZSwgKCRzY29wZU9wZW5lciArIDEpLCAkc2NvcGVDbG9zZXIpOwogICAgICAgICAgICAgICAgICAgIGlmICgkaGFzVGVybWluYXRvciA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnRDbG9zZXIgPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkcHJldlRva2VuIC0gMSksICRzdGFja1B0ciwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJHByZXZUb2tlbl1bJ2NvZGUnXSA9PT0gVF9FTFNFKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRoYXNFbHNlQmxvY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHRva2Vuc1skcHJldlRva2VuXVsnY29kZSddID09PSBUX0ZJTkFMTFkpIHsKICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBmaW5kIGEgdGVybWluYXRpbmcgc3RhdGVtZW50IHdpdGhpbiB0aGlzIGJsb2NrLAogICAgICAgICAgICAgICAgICAgIC8vIHRoZSB3aG9sZSB0cnkvY2F0Y2gvZmluYWxseSBzdGF0ZW1lbnQgaXMgY292ZXJlZC4KICAgICAgICAgICAgICAgICAgICAkaGFzVGVybWluYXRvciA9ICR0aGlzLT5maW5kTmVzdGVkVGVybWluYXRvcigkcGhwY3NGaWxlLCAoJHNjb3BlT3BlbmVyICsgMSksICRzY29wZUNsb3Nlcik7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRoYXNUZXJtaW5hdG9yICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGhhc1Rlcm1pbmF0b3I7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIGNvbnRpbnVlIHdpdGggdGhlIHByZXZpb3VzIFRSWSBvciBDQVRDSCBjbGF1c2UuCiAgICAgICAgICAgICAgICAgICAgJGN1cnJlbnRDbG9zZXIgPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoVG9rZW5zOjokZW1wdHlUb2tlbnMsICgkcHJldlRva2VuIC0gMSksICRzdGFja1B0ciwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCR0b2tlbnNbJHByZXZUb2tlbl1bJ2NvZGUnXSA9PT0gVF9UUlkpIHsKICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSd2ZSBzZWVuIENBVENIIGJsb2NrcyB3aXRob3V0IHRlcm1pbmF0b3Igc3RhdGVtZW50IGFuZAogICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgbm90IHNlZW4gYSBGSU5BTExZICp3aXRoKiBhIHRlcm1pbmF0b3Igc3RhdGVtZW50LCB3ZQogICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IGV2ZW4gbmVlZCB0byBib3RoZXIgY2hlY2tpbmcgdGhlIFRSWS4KICAgICAgICAgICAgICAgICAgICBpZiAoJGhhc0NhdGNoV2l0aG91dFRlcm1pbmF0b3IgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5maW5kTmVzdGVkVGVybWluYXRvcigkcGhwY3NGaWxlLCAoJHNjb3BlT3BlbmVyICsgMSksICRzY29wZUNsb3Nlcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCR0b2tlbnNbJHByZXZUb2tlbl1bJ2NvZGUnXSA9PT0gVF9DQVRDSCkgewogICAgICAgICAgICAgICAgICAgIC8vIEtlZXAgdHJhY2sgb2Ygc2VlbiBjYXRjaCBzdGF0ZW1lbnRzIHdpdGhvdXQgdGVybWluYXRpbmcgc3RhdGVtZW50LAogICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBkb24ndCBib3cgb3V0IHlldCBhcyB0aGVyZSBtYXkgc3RpbGwgYmUgYSBGSU5BTExZIGNsYXVzZQogICAgICAgICAgICAgICAgICAgIC8vIHdpdGggYSB0ZXJtaW5hdGluZyBzdGF0ZW1lbnQgYmVmb3JlIHRoZSBDQVRDSC4KICAgICAgICAgICAgICAgICAgICAkaGFzVGVybWluYXRvciA9ICR0aGlzLT5maW5kTmVzdGVkVGVybWluYXRvcigkcGhwY3NGaWxlLCAoJHNjb3BlT3BlbmVyICsgMSksICRzY29wZUNsb3Nlcik7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRoYXNUZXJtaW5hdG9yID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkaGFzQ2F0Y2hXaXRob3V0VGVybWluYXRvciA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkY3VycmVudENsb3NlciA9ICRwaHBjc0ZpbGUtPmZpbmRQcmV2aW91cyhUb2tlbnM6OiRlbXB0eVRva2VucywgKCRwcmV2VG9rZW4gLSAxKSwgJHN0YWNrUHRyLCB0cnVlKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHRva2Vuc1skcHJldlRva2VuXVsnY29kZSddID09PSBUX1NXSVRDSCkgewogICAgICAgICAgICAgICAgICAgICRoYXNEZWZhdWx0QmxvY2sgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkZW5kT2ZTd2l0Y2ggICAgID0gJHRva2Vuc1skcHJldlRva2VuXVsnc2NvcGVfY2xvc2VyJ107CiAgICAgICAgICAgICAgICAgICAgJG5leHRDYXNlICAgICAgICA9ICRwcmV2VG9rZW47CgogICAgICAgICAgICAgICAgICAgIC8vIFdlIGxvb2sgZm9yIGEgdGVybWluYXRpbmcgc3RhdGVtZW50IHdpdGhpbiBldmVyeSBibG9ja3MuCiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCgkbmV4dENhc2UgPSAkdGhpcy0+ZmluZE5leHRDYXNlKCRwaHBjc0ZpbGUsICgkbmV4dENhc2UgKyAxKSwgJGVuZE9mU3dpdGNoKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRuZXh0Q2FzZV1bJ2NvZGUnXSA9PT0gVF9ERUZBVUxUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaGFzRGVmYXVsdEJsb2NrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJG9wZW5lciA9ICR0b2tlbnNbJG5leHRDYXNlXVsnc2NvcGVfb3BlbmVyJ107CgogICAgICAgICAgICAgICAgICAgICAgICAkbmV4dENvZGUgPSAkcGhwY3NGaWxlLT5maW5kTmV4dChUb2tlbnM6OiRlbXB0eVRva2VucywgKCRvcGVuZXIgKyAxKSwgJGVuZE9mU3dpdGNoLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJG5leHRDb2RlXVsnY29kZSddID09PSBUX0NBU0UgfHwgJHRva2Vuc1skbmV4dENvZGVdWydjb2RlJ10gPT09IFRfREVGQVVMVCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYXNlIHN0YXRlbWVudCBoYXMgbm8gY29udGVudCwgc28gc2tpcCBpdC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkZW5kT2ZDYXNlID0gJHRoaXMtPmZpbmROZXh0Q2FzZSgkcGhwY3NGaWxlLCAoJG9wZW5lciArIDEpLCAkZW5kT2ZTd2l0Y2gpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGVuZE9mQ2FzZSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbmRPZkNhc2UgPSAkZW5kT2ZTd2l0Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRoYXNUZXJtaW5hdG9yID0gJHRoaXMtPmZpbmROZXN0ZWRUZXJtaW5hdG9yKCRwaHBjc0ZpbGUsICgkb3BlbmVyICsgMSksICRlbmRPZkNhc2UpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGhhc1Rlcm1pbmF0b3IgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9Ly9lbmQgd2hpbGUKCiAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBub3QgZW5jb3VudGVyZWQgYSBERUZBVUxUIGJsb2NrIGJ5IG5vdywgd2UgY2Fubm90CiAgICAgICAgICAgICAgICAgICAgLy8gYmUgc3VyZSB0aGF0IHRoZSB3aG9sZSBzdGF0ZW1lbnQgdGVybWluYXRlcyBpbiBldmVyeSBjYXNlLgogICAgICAgICAgICAgICAgICAgIGlmICgkaGFzRGVmYXVsdEJsb2NrID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGhhc1Rlcm1pbmF0b3I7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0vL2VuZCBpZgogICAgICAgICAgICB9IHdoaWxlICgkY3VycmVudENsb3NlciAhPT0gZmFsc2UgJiYgJHRva2Vuc1skY3VycmVudENsb3Nlcl1bJ2NvZGUnXSA9PT0gVF9DTE9TRV9DVVJMWV9CUkFDS0VUKTsKCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gZWxzZSBpZiAoJHRva2Vuc1skbGFzdFRva2VuXVsnY29kZSddID09PSBUX1NFTUlDT0xPTikgewogICAgICAgICAgICAvLyBXZSBmb3VuZCB0aGUgbGFzdCBzdGF0ZW1lbnQgb2YgdGhlIENBU0UuIE5vdyB3ZSB3YW50IHRvCiAgICAgICAgICAgIC8vIGNoZWNrIHdoZXRoZXIgaXQgaXMgYSB0ZXJtaW5hdGluZyBvbmUuCiAgICAgICAgICAgICR0ZXJtaW5hdG9ycyA9IFsKICAgICAgICAgICAgICAgIFRfUkVUVVJOICAgPT4gVF9SRVRVUk4sCiAgICAgICAgICAgICAgICBUX0JSRUFLICAgID0+IFRfQlJFQUssCiAgICAgICAgICAgICAgICBUX0NPTlRJTlVFID0+IFRfQ09OVElOVUUsCiAgICAgICAgICAgICAgICBUX1RIUk9XICAgID0+IFRfVEhST1csCiAgICAgICAgICAgICAgICBUX0VYSVQgICAgID0+IFRfRVhJVCwKICAgICAgICAgICAgXTsKCiAgICAgICAgICAgICR0ZXJtaW5hdG9yID0gJHBocGNzRmlsZS0+ZmluZFN0YXJ0T2ZTdGF0ZW1lbnQoKCRsYXN0VG9rZW4gLSAxKSk7CiAgICAgICAgICAgIGlmIChpc3NldCgkdGVybWluYXRvcnNbJHRva2Vuc1skdGVybWluYXRvcl1bJ2NvZGUnXV0pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRlcm1pbmF0b3I7CiAgICAgICAgICAgIH0KICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIH0vL2VuZCBmaW5kTmVzdGVkVGVybWluYXRvcigpCgoKfS8vZW5kIGNsYXNzCiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6NTY6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTY6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IkNvbnRyb2xTdHJ1Y3R1cmVzIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6Nzk6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzXFN3aXRjaERlY2xhcmF0aW9uU25pZmYiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzk6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzXFN3aXRjaERlY2xhcmF0aW9uU25pZmYiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMjoiU3dpdGNoRGVjbGFyYXRpb25TbmlmZiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiU25pZmYiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTp7czo4ODoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcUFNSMlxTbmlmZnNcQ29udHJvbFN0cnVjdHVyZXNcU3dpdGNoRGVjbGFyYXRpb25TbmlmZjo6JGluZGVudCI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODg6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzXFN3aXRjaERlY2xhcmF0aW9uU25pZmY6OiRpbmRlbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJpbmRlbnQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDU6IlRoZSBudW1iZXIgb2Ygc3BhY2VzIGNvZGUgc2hvdWxkIGJlIGluZGVudGVkLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjU1OiJQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTozOntzOjQ6IkZpbGUiO3M6MjY6IlBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjU6IlNuaWZmIjtzOjI4OiJQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjY6IlRva2VucyI7czoyNzoiUEhQX0NvZGVTbmlmZmVyXFV0aWxcVG9rZW5zIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MToiNCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6NDp7czo5MToiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcUFNSMlxTbmlmZnNcQ29udHJvbFN0cnVjdHVyZXNcU3dpdGNoRGVjbGFyYXRpb25TbmlmZjo6cmVnaXN0ZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU3OiJSZXR1cm5zIGFuIGFycmF5IG9mIHRva2VucyB0aGlzIHRlc3Qgd2FudHMgdG8gbGlzdGVuIGZvci4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjkxOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xQU1IyXFNuaWZmc1xDb250cm9sU3RydWN0dXJlc1xTd2l0Y2hEZWNsYXJhdGlvblNuaWZmOjpyZWdpc3RlcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoicmVnaXN0ZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6OTA6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzXFN3aXRjaERlY2xhcmF0aW9uU25pZmY6OnByb2Nlc3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU5OiJQcm9jZXNzZXMgdGhpcyB0ZXN0LCB3aGVuIG9uZSBvZiBpdHMgdG9rZW5zIGlzIGVuY291bnRlcmVkLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6OToicGhwY3NGaWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJGaWxlIjt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjM6IlRoZSBmaWxlIGJlaW5nIHNjYW5uZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjg6InN0YWNrUHRyIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY1OiJUaGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgdG9rZW4gaW4gdGhlCnN0YWNrIHBhc3NlZCBpbiAkdG9rZW5zLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo5MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcUFNSMlxTbmlmZnNcQ29udHJvbFN0cnVjdHVyZXNcU3dpdGNoRGVjbGFyYXRpb25TbmlmZjo6cHJvY2VzcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoicHJvY2VzcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJwaHBjc0ZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJzdGFja1B0ciI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjAzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo5NToiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcUFNSMlxTbmlmZnNcQ29udHJvbFN0cnVjdHVyZXNcU3dpdGNoRGVjbGFyYXRpb25TbmlmZjo6ZmluZE5leHRDYXNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2NToiRmluZCB0aGUgbmV4dCBDQVNFIG9yIERFRkFVTFQgc3RhdGVtZW50IGZyb20gYSBwb2ludCBpbiB0aGUgZmlsZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzg6Ik5vdGUgdGhhdCBuZXN0ZWQgc3dpdGNoZXMgYXJlIGlnbm9yZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NDp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6InBocGNzRmlsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJUaGUgZmlsZSBiZWluZyBzY2FubmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo4OiJzdGFja1B0ciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzoiVGhlIHBvc2l0aW9uIHRvIHN0YXJ0IGxvb2tpbmcgYXQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjM6ImVuZCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMjoiVGhlIHBvc2l0aW9uIHRvIHN0b3AgbG9va2luZyBhdC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9aToxO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xGYWxzZV8iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjk1OiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xQU1IyXFNuaWZmc1xDb250cm9sU3RydWN0dXJlc1xTd2l0Y2hEZWNsYXJhdGlvblNuaWZmOjpmaW5kTmV4dENhc2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJmaW5kTmV4dENhc2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjk6InBocGNzRmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6InN0YWNrUHRyIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoiZW5kIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjE3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjMyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czoxMDM6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFBTUjJcU25pZmZzXENvbnRyb2xTdHJ1Y3R1cmVzXFN3aXRjaERlY2xhcmF0aW9uU25pZmY6OmZpbmROZXN0ZWRUZXJtaW5hdG9yKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NzoiUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIG5lc3RlZCB0ZXJtaW5hdGluZyBzdGF0ZW1lbnQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUyOiJSZXR1cm5zIGZhbHNlIGlmIG5vIHRlcm1pbmF0aW5nIHN0YXRlbWVudCB3YXMgZm91bmQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NDp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6InBocGNzRmlsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJUaGUgZmlsZSBiZWluZyBzY2FubmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo4OiJzdGFja1B0ciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzoiVGhlIHBvc2l0aW9uIHRvIHN0YXJ0IGxvb2tpbmcgYXQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjM6ImVuZCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMjoiVGhlIHBvc2l0aW9uIHRvIHN0b3AgbG9va2luZyBhdC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9aToxO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xGYWxzZV8iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEwMzoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcUFNSMlxTbmlmZnNcQ29udHJvbFN0cnVjdHVyZXNcU3dpdGNoRGVjbGFyYXRpb25TbmlmZjo6ZmluZE5lc3RlZFRlcm1pbmF0b3IoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIwOiJmaW5kTmVzdGVkVGVybWluYXRvciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mzp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToicGhwY3NGaWxlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoic3RhY2tQdHIiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJlbmQiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozOTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozOTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";