1688054432
waR3U4bTeM%3A26ea140e45ae8adffac361568568a33d-a14d674bf4eaf22b044c22e6cd9a38d0
s:193492:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDU6IlN0b3JlcyB0aGUgcnVsZXMgdXNlZCB0byBjaGVjayBhbmQgZml4IGZpbGVzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1MzoiQSBydWxlc2V0IG9iamVjdCBkaXJlY3RseSBtYXBzIHRvIGEgcnVsZXNldCBYTUwgZmlsZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTM6IkdyZWcgU2hlcndvb2QiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MTk6ImdzaGVyd29vZEBzcXVpei5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDQ6IjIwMDYtMjAxNSBTcXVpeiBQdHkgTHRkIChBQk4gNzcgMDg0IDY3MCA2MDApIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MDoiaHR0cHM6Ly9naXRodWIuY29tL3NxdWl6bGFicy9QSFBfQ29kZVNuaWZmZXIvYmxvYi9tYXN0ZXIvbGljZW5jZS50eHQgQlNEIExpY2VuY2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImExNGQ2NzRiZjRlYWYyMmIwNDRjMjJlNmNkOWEzOGQwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MTE6IlJ1bGVzZXQucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDg6InZlbmRvci9zcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyL3NyYy9SdWxlc2V0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NTA4MDc6Ijw/cGhwCi8qKgogKiBTdG9yZXMgdGhlIHJ1bGVzIHVzZWQgdG8gY2hlY2sgYW5kIGZpeCBmaWxlcy4KICoKICogQSBydWxlc2V0IG9iamVjdCBkaXJlY3RseSBtYXBzIHRvIGEgcnVsZXNldCBYTUwgZmlsZS4KICoKICogQGF1dGhvciAgICBHcmVnIFNoZXJ3b29kIDxnc2hlcndvb2RAc3F1aXoubmV0PgogKiBAY29weXJpZ2h0IDIwMDYtMjAxNSBTcXVpeiBQdHkgTHRkIChBQk4gNzcgMDg0IDY3MCA2MDApCiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9naXRodWIuY29tL3NxdWl6bGFicy9QSFBfQ29kZVNuaWZmZXIvYmxvYi9tYXN0ZXIvbGljZW5jZS50eHQgQlNEIExpY2VuY2UKICovCgpuYW1lc3BhY2UgUEhQX0NvZGVTbmlmZmVyOwoKdXNlIFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXFJ1bnRpbWVFeGNlcHRpb247CnVzZSBQSFBfQ29kZVNuaWZmZXJcVXRpbDsKCmNsYXNzIFJ1bGVzZXQKewoKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhlIGNvZGluZyBzdGFuZGFyZCBiZWluZyB1c2VkLgogICAgICoKICAgICAqIElmIGEgdG9wLWxldmVsIHN0YW5kYXJkIGluY2x1ZGVzIG90aGVyIHN0YW5kYXJkcywgb3Igc25pZmZzCiAgICAgKiBmcm9tIG90aGVyIHN0YW5kYXJkcywgb25seSB0aGUgbmFtZSBvZiB0aGUgdG9wLWxldmVsIHN0YW5kYXJkCiAgICAgKiB3aWxsIGJlIHN0b3JlZCBpbiBoZXJlLgogICAgICoKICAgICAqIElmIG11bHRpcGxlIHRvcC1sZXZlbCBzdGFuZGFyZHMgYXJlIGJlaW5nIGxvYWRlZCBpbnRvCiAgICAgKiBhIHNpbmdsZSBydWxlc2V0IG9iamVjdCwgdGhpcyB3aWxsIHN0b3JlIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QKICAgICAqIG9mIHRoZSB0b3AtbGV2ZWwgc3RhbmRhcmQgbmFtZXMuCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRuYW1lID0gJyc7CgogICAgLyoqCiAgICAgKiBBIGxpc3Qgb2YgZmlsZSBwYXRocyBmb3IgdGhlIHJ1bGVzZXQgZmlsZXMgYmVpbmcgdXNlZC4KICAgICAqCiAgICAgKiBAdmFyIHN0cmluZ1tdCiAgICAgKi8KICAgIHB1YmxpYyAkcGF0aHMgPSBbXTsKCiAgICAvKioKICAgICAqIEEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHVzZWQgdG8gaWdub3JlIHNwZWNpZmljIHNuaWZmcyBmb3IgZmlsZXMgYW5kIGZvbGRlcnMuCiAgICAgKgogICAgICogSXMgYWxzbyB1c2VkIHRvIHNldCBnbG9iYWwgZXhjbHVkZSBwYXR0ZXJucy4KICAgICAqIFRoZSBrZXkgaXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgdGhlIHZhbHVlIGlzIHRoZSB0eXBlCiAgICAgKiBvZiBpZ25vcmUgcGF0dGVybiAoYWJzb2x1dGUgb3IgcmVsYXRpdmUpLgogICAgICoKICAgICAqIEB2YXIgYXJyYXk8c3RyaW5nLCBzdHJpbmc+CiAgICAgKi8KICAgIHB1YmxpYyAkaWdub3JlUGF0dGVybnMgPSBbXTsKCiAgICAvKioKICAgICAqIEEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHVzZWQgdG8gaW5jbHVkZSBzcGVjaWZpYyBzbmlmZnMgZm9yIGZpbGVzIGFuZCBmb2xkZXJzLgogICAgICoKICAgICAqIFRoZSBrZXkgaXMgdGhlIHNuaWZmIGNvZGUgYW5kIHRoZSB2YWx1ZSBpcyBhbiBhcnJheSB3aXRoCiAgICAgKiB0aGUga2V5IGJlaW5nIGEgcmVndWxhciBleHByZXNzaW9uIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHR5cGUKICAgICAqIG9mIGlnbm9yZSBwYXR0ZXJuIChhYnNvbHV0ZSBvciByZWxhdGl2ZSkuCiAgICAgKgogICAgICogQHZhciBhcnJheTxzdHJpbmcsIGFycmF5PHN0cmluZywgc3RyaW5nPj4KICAgICAqLwogICAgcHVibGljICRpbmNsdWRlUGF0dGVybnMgPSBbXTsKCiAgICAvKioKICAgICAqIEFuIGFycmF5IG9mIHNuaWZmIG9iamVjdHMgdGhhdCBhcmUgYmVpbmcgdXNlZCB0byBjaGVjayBmaWxlcy4KICAgICAqCiAgICAgKiBUaGUga2V5IGlzIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgc25pZmYgY2xhc3MKICAgICAqIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHNuaWZmIG9iamVjdC4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5PHN0cmluZywgXFBIUF9Db2RlU25pZmZlclxTbmlmZnNcU25pZmY+CiAgICAgKi8KICAgIHB1YmxpYyAkc25pZmZzID0gW107CgogICAgLyoqCiAgICAgKiBBIG1hcHBpbmcgb2Ygc25pZmYgY29kZXMgdG8gZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWVzLgogICAgICoKICAgICAqIFRoZSBrZXkgaXMgdGhlIHNuaWZmIGNvZGUgYW5kIHRoZSB2YWx1ZQogICAgICogaXMgdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBzbmlmZiBjbGFzcy4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5PHN0cmluZywgc3RyaW5nPgogICAgICovCiAgICBwdWJsaWMgJHNuaWZmQ29kZXMgPSBbXTsKCiAgICAvKioKICAgICAqIEFuIGFycmF5IG9mIHRva2VuIHR5cGVzIGFuZCB0aGUgc25pZmZzIHRoYXQgYXJlIGxpc3RlbmluZyBmb3IgdGhlbS4KICAgICAqCiAgICAgKiBUaGUga2V5IGlzIHRoZSB0b2tlbiBuYW1lIGJlaW5nIGxpc3RlbmVkIGZvciBhbmQgdGhlIHZhbHVlCiAgICAgKiBpcyB0aGUgc25pZmYgb2JqZWN0LgogICAgICoKICAgICAqIEB2YXIgYXJyYXk8aW50LCBcUEhQX0NvZGVTbmlmZmVyXFNuaWZmc1xTbmlmZj4KICAgICAqLwogICAgcHVibGljICR0b2tlbkxpc3RlbmVycyA9IFtdOwoKICAgIC8qKgogICAgICogQW4gYXJyYXkgb2YgcnVsZXMgZnJvbSB0aGUgcnVsZXNldC54bWwgZmlsZS4KICAgICAqCiAgICAgKiBJdCBtYXkgYmUgZW1wdHksIGluZGljYXRpbmcgdGhhdCB0aGUgcnVsZXNldCBkb2VzIG5vdCBvdmVycmlkZQogICAgICogYW55IG9mIHRoZSBkZWZhdWx0IHNuaWZmIHNldHRpbmdzLgogICAgICoKICAgICAqIEB2YXIgYXJyYXk8c3RyaW5nLCBtaXhlZD4KICAgICAqLwogICAgcHVibGljICRydWxlc2V0ID0gW107CgogICAgLyoqCiAgICAgKiBUaGUgZGlyZWN0b3JpZXMgdGhhdCB0aGUgcHJvY2Vzc2VkIHJ1bGVzZXRzIGFyZSBpbi4KICAgICAqCiAgICAgKiBAdmFyIHN0cmluZ1tdCiAgICAgKi8KICAgIHByb3RlY3RlZCAkcnVsZXNldERpcnMgPSBbXTsKCiAgICAvKioKICAgICAqIFRoZSBjb25maWcgZGF0YSBmb3IgdGhlIHJ1bi4KICAgICAqCiAgICAgKiBAdmFyIFxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnCiAgICAgKi8KICAgIHByaXZhdGUgJGNvbmZpZyA9IG51bGw7CgoKICAgIC8qKgogICAgICogSW5pdGlhbGlzZSB0aGUgcnVsZXNldCB0aGF0IHRoZSBydW4gd2lsbCB1c2UuCiAgICAgKgogICAgICogQHBhcmFtIFxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnICRjb25maWcgVGhlIGNvbmZpZyBkYXRhIGZvciB0aGUgcnVuLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiBJZiBubyBzbmlmZnMgd2VyZSByZWdpc3RlcmVkLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoQ29uZmlnICRjb25maWcpCiAgICB7CiAgICAgICAgJHRoaXMtPmNvbmZpZyA9ICRjb25maWc7CiAgICAgICAgJHJlc3RyaWN0aW9ucyA9ICRjb25maWctPnNuaWZmczsKICAgICAgICAkZXhjbHVzaW9ucyAgID0gJGNvbmZpZy0+ZXhjbHVkZTsKICAgICAgICAkc25pZmZzICAgICAgID0gW107CgogICAgICAgICRzdGFuZGFyZFBhdGhzID0gW107CiAgICAgICAgZm9yZWFjaCAoJGNvbmZpZy0+c3RhbmRhcmRzIGFzICRzdGFuZGFyZCkgewogICAgICAgICAgICAkaW5zdGFsbGVkID0gVXRpbFxTdGFuZGFyZHM6OmdldEluc3RhbGxlZFN0YW5kYXJkUGF0aCgkc3RhbmRhcmQpOwogICAgICAgICAgICBpZiAoJGluc3RhbGxlZCA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgJHN0YW5kYXJkID0gVXRpbFxDb21tb246OnJlYWxwYXRoKCRzdGFuZGFyZCk7CiAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCRzdGFuZGFyZCkgPT09IHRydWUKICAgICAgICAgICAgICAgICAgICAmJiBpc19maWxlKFV0aWxcQ29tbW9uOjpyZWFscGF0aCgkc3RhbmRhcmQuRElSRUNUT1JZX1NFUEFSQVRPUi4ncnVsZXNldC54bWwnKSkgPT09IHRydWUKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICRzdGFuZGFyZCA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aCgkc3RhbmRhcmQuRElSRUNUT1JZX1NFUEFSQVRPUi4ncnVsZXNldC54bWwnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRzdGFuZGFyZCA9ICRpbnN0YWxsZWQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRzdGFuZGFyZFBhdGhzW10gPSAkc3RhbmRhcmQ7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkc3RhbmRhcmRQYXRocyBhcyAkc3RhbmRhcmQpIHsKICAgICAgICAgICAgJHJ1bGVzZXQgPSBAc2ltcGxleG1sX2xvYWRfc3RyaW5nKGZpbGVfZ2V0X2NvbnRlbnRzKCRzdGFuZGFyZCkpOwogICAgICAgICAgICBpZiAoJHJ1bGVzZXQgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkc3RhbmRhcmROYW1lID0gKHN0cmluZykgJHJ1bGVzZXRbJ25hbWUnXTsKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+bmFtZSAhPT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bmFtZSAuPSAnLCAnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5uYW1lIC49ICRzdGFuZGFyZE5hbWU7CgogICAgICAgICAgICAgICAgLy8gQWxsb3cgYXV0b2xvYWRpbmcgb2YgY3VzdG9tIGZpbGVzIGluc2lkZSB0aGlzIHN0YW5kYXJkLgogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRydWxlc2V0WyduYW1lc3BhY2UnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAkbmFtZXNwYWNlID0gKHN0cmluZykgJHJ1bGVzZXRbJ25hbWVzcGFjZSddOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkbmFtZXNwYWNlID0gYmFzZW5hbWUoZGlybmFtZSgkc3RhbmRhcmQpKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBBdXRvbG9hZDo6YWRkU2VhcmNoUGF0aChkaXJuYW1lKCRzdGFuZGFyZCksICRuYW1lc3BhY2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoZGVmaW5lZCgnUEhQX0NPREVTTklGRkVSX0lOX1RFU1RTJykgPT09IHRydWUgJiYgZW1wdHkoJHJlc3RyaWN0aW9ucykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAvLyBJbiB1bml0IHRlc3RzLCBvbmx5IHJlZ2lzdGVyIHRoZSBzbmlmZnMgdGhhdCB0aGUgdGVzdCB3YW50cyBhbmQgbm90IHRoZSBlbnRpcmUgc3RhbmRhcmQuCiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyZXN0cmljdGlvbnMgYXMgJHJlc3RyaWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzbmlmZnMgPSBhcnJheV9tZXJnZSgkc25pZmZzLCAkdGhpcy0+ZXhwYW5kUnVsZXNldFJlZmVyZW5jZSgkcmVzdHJpY3Rpb24sIGRpcm5hbWUoJHN0YW5kYXJkKSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgICAgICAgICAvLyBTbmlmZiByZWZlcmVuY2UgY291bGQgbm90IGJlIGV4cGFuZGVkLCB3aGljaCBwcm9iYWJseSBtZWFucyB0aGlzCiAgICAgICAgICAgICAgICAgICAgLy8gaXMgYW4gaW5zdGFsbGVkIHN0YW5kYXJkLiBMZXQgdGhlIHVuaXQgdGVzdCBzeXN0ZW0gdGFrZSBjYXJlIG9mCiAgICAgICAgICAgICAgICAgICAgLy8gc2V0dGluZyB0aGUgY29ycmVjdCBzbmlmZiBmb3IgdGVzdGluZy4KICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID09PSAxKSB7CiAgICAgICAgICAgICAgICBlY2hvICJSZWdpc3RlcmluZyBzbmlmZnMgaW4gdGhlICRzdGFuZGFyZE5hbWUgc3RhbmRhcmQuLi4gIjsKICAgICAgICAgICAgICAgIGlmIChjb3VudCgkY29uZmlnLT5zdGFuZGFyZHMpID4gMSB8fCBQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMikgewogICAgICAgICAgICAgICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHNuaWZmcyA9IGFycmF5X21lcmdlKCRzbmlmZnMsICR0aGlzLT5wcm9jZXNzUnVsZXNldCgkc3RhbmRhcmQpKTsKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgICAgICAvLyBJZ25vcmUgc25pZmYgcmVzdHJpY3Rpb25zIGlmIGNhY2hpbmcgaXMgb24uCiAgICAgICAgaWYgKCRjb25maWctPmNhY2hlID09PSB0cnVlKSB7CiAgICAgICAgICAgICRyZXN0cmljdGlvbnMgPSBbXTsKICAgICAgICAgICAgJGV4Y2x1c2lvbnMgICA9IFtdOwogICAgICAgIH0KCiAgICAgICAgJHNuaWZmUmVzdHJpY3Rpb25zID0gW107CiAgICAgICAgZm9yZWFjaCAoJHJlc3RyaWN0aW9ucyBhcyAkc25pZmZDb2RlKSB7CiAgICAgICAgICAgICRwYXJ0cyAgICAgPSBleHBsb2RlKCcuJywgc3RydG9sb3dlcigkc25pZmZDb2RlKSk7CiAgICAgICAgICAgICRzbmlmZk5hbWUgPSAkcGFydHNbMF0uJ1xzbmlmZnNcXCcuJHBhcnRzWzFdLidcXCcuJHBhcnRzWzJdLidzbmlmZic7CiAgICAgICAgICAgICRzbmlmZlJlc3RyaWN0aW9uc1skc25pZmZOYW1lXSA9IHRydWU7CiAgICAgICAgfQoKICAgICAgICAkc25pZmZFeGNsdXNpb25zID0gW107CiAgICAgICAgZm9yZWFjaCAoJGV4Y2x1c2lvbnMgYXMgJHNuaWZmQ29kZSkgewogICAgICAgICAgICAkcGFydHMgICAgID0gZXhwbG9kZSgnLicsIHN0cnRvbG93ZXIoJHNuaWZmQ29kZSkpOwogICAgICAgICAgICAkc25pZmZOYW1lID0gJHBhcnRzWzBdLidcc25pZmZzXFwnLiRwYXJ0c1sxXS4nXFwnLiRwYXJ0c1syXS4nc25pZmYnOwogICAgICAgICAgICAkc25pZmZFeGNsdXNpb25zWyRzbmlmZk5hbWVdID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5yZWdpc3RlclNuaWZmcygkc25pZmZzLCAkc25pZmZSZXN0cmljdGlvbnMsICRzbmlmZkV4Y2x1c2lvbnMpOwogICAgICAgICR0aGlzLT5wb3B1bGF0ZVRva2VuTGlzdGVuZXJzKCk7CgogICAgICAgICRudW1TbmlmZnMgPSBjb3VudCgkdGhpcy0+c25pZmZzKTsKICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA9PT0gMSkgewogICAgICAgICAgICBlY2hvICJET05FICgkbnVtU25pZmZzIHNuaWZmcyByZWdpc3RlcmVkKSIuUEhQX0VPTDsKICAgICAgICB9CgogICAgICAgIGlmICgkbnVtU25pZmZzID09PSAwKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCdObyBzbmlmZnMgd2VyZSByZWdpc3RlcmVkJyk7CiAgICAgICAgfQoKICAgIH0vL2VuZCBfX2NvbnN0cnVjdCgpCgoKICAgIC8qKgogICAgICogUHJpbnRzIGEgcmVwb3J0IHNob3dpbmcgdGhlIHNuaWZmcyBjb250YWluZWQgaW4gYSBzdGFuZGFyZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGV4cGxhaW4oKQogICAgewogICAgICAgICRzbmlmZnMgPSBhcnJheV9rZXlzKCR0aGlzLT5zbmlmZkNvZGVzKTsKICAgICAgICBzb3J0KCRzbmlmZnMpOwoKICAgICAgICBvYl9zdGFydCgpOwoKICAgICAgICAkbGFzdFN0YW5kYXJkID0gbnVsbDsKICAgICAgICAkbGFzdENvdW50ICAgID0gJyc7CiAgICAgICAgJHNuaWZmQ291bnQgICA9IGNvdW50KCRzbmlmZnMpOwoKICAgICAgICAvLyBBZGQgYSBkdW1teSBlbnRyeSB0byB0aGUgZW5kIHNvIHdlIGxvb3AKICAgICAgICAvLyBvbmUgbGFzdCB0aW1lIGFuZCBjbGVhciB0aGUgb3V0cHV0IGJ1ZmZlci4KICAgICAgICAkc25pZmZzW10gPSAnJzsKCiAgICAgICAgZWNobyBQSFBfRU9MLiJUaGUgJHRoaXMtPm5hbWUgc3RhbmRhcmQgY29udGFpbnMgJHNuaWZmQ291bnQgc25pZmZzIi5QSFBfRU9MOwoKICAgICAgICBvYl9zdGFydCgpOwoKICAgICAgICBmb3JlYWNoICgkc25pZmZzIGFzICRpID0+ICRzbmlmZikgewogICAgICAgICAgICBpZiAoJGkgPT09ICRzbmlmZkNvdW50KSB7CiAgICAgICAgICAgICAgICAkY3VycmVudFN0YW5kYXJkID0gbnVsbDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRjdXJyZW50U3RhbmRhcmQgPSBzdWJzdHIoJHNuaWZmLCAwLCBzdHJwb3MoJHNuaWZmLCAnLicpKTsKICAgICAgICAgICAgICAgIGlmICgkbGFzdFN0YW5kYXJkID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgJGxhc3RTdGFuZGFyZCA9ICRjdXJyZW50U3RhbmRhcmQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkY3VycmVudFN0YW5kYXJkICE9PSAkbGFzdFN0YW5kYXJkKSB7CiAgICAgICAgICAgICAgICAkc25pZmZMaXN0ID0gb2JfZ2V0X2NvbnRlbnRzKCk7CiAgICAgICAgICAgICAgICBvYl9lbmRfY2xlYW4oKTsKCiAgICAgICAgICAgICAgICBlY2hvIFBIUF9FT0wuJGxhc3RTdGFuZGFyZC4nICgnLiRsYXN0Q291bnQuJyBzbmlmZic7CiAgICAgICAgICAgICAgICBpZiAoJGxhc3RDb3VudCA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBlY2hvICdzJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBlY2hvICcpJy5QSFBfRU9MOwogICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCctJywgKHN0cmxlbigkbGFzdFN0YW5kYXJkLiRsYXN0Q291bnQpICsgMTApKTsKICAgICAgICAgICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICAgICAgICAgIGVjaG8gJHNuaWZmTGlzdDsKCiAgICAgICAgICAgICAgICAkbGFzdFN0YW5kYXJkID0gJGN1cnJlbnRTdGFuZGFyZDsKICAgICAgICAgICAgICAgICRsYXN0Q291bnQgICAgPSAwOwoKICAgICAgICAgICAgICAgIGlmICgkY3VycmVudFN0YW5kYXJkID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgb2Jfc3RhcnQoKTsKICAgICAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICAgICBlY2hvICcgICcuJHNuaWZmLlBIUF9FT0w7CiAgICAgICAgICAgICRsYXN0Q291bnQrKzsKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgIH0vL2VuZCBleHBsYWluKCkKCgogICAgLyoqCiAgICAgKiBQcm9jZXNzZXMgYSBzaW5nbGUgcnVsZXNldCBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgdGhlIHNuaWZmcyBpdCByZXByZXNlbnRzLgogICAgICoKICAgICAqIFJ1bGVzIGZvdW5kcyB3aXRoaW4gdGhlIHJ1bGVzZXQgYXJlIHByb2Nlc3NlZCBpbW1lZGlhdGVseSwgYnV0IHNuaWZmIGNsYXNzZXMKICAgICAqIGFyZSBub3QgcmVnaXN0ZXJlZCBieSB0aGlzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRydWxlc2V0UGF0aCBUaGUgcGF0aCB0byBhIHJ1bGVzZXQgWE1MIGZpbGUuCiAgICAgKiBAcGFyYW0gaW50ICAgICRkZXB0aCAgICAgICBIb3cgbWFueSBuZXN0ZWQgcHJvY2Vzc2luZyBzdGVwcyB3ZSBhcmUgaW4uIFRoaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG9ubHkgdXNlZCBmb3IgZGVidWcgb3V0cHV0LgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nW10KICAgICAqIEB0aHJvd3MgXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXFJ1bnRpbWVFeGNlcHRpb24gLSBJZiB0aGUgcnVsZXNldCBwYXRoIGlzIGludmFsaWQuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gSWYgYSBzcGVjaWZpZWQgYXV0b2xvYWQgZmlsZSBjb3VsZCBub3QgYmUgZm91bmQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzUnVsZXNldCgkcnVsZXNldFBhdGgsICRkZXB0aD0wKQogICAgewogICAgICAgICRydWxlc2V0UGF0aCA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aCgkcnVsZXNldFBhdGgpOwogICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgZWNobyAnUHJvY2Vzc2luZyBydWxlc2V0ICcuVXRpbFxDb21tb246OnN0cmlwQmFzZXBhdGgoJHJ1bGVzZXRQYXRoLCAkdGhpcy0+Y29uZmlnLT5iYXNlcGF0aCkuUEhQX0VPTDsKICAgICAgICB9CgogICAgICAgIGxpYnhtbF91c2VfaW50ZXJuYWxfZXJyb3JzKHRydWUpOwogICAgICAgICRydWxlc2V0ID0gc2ltcGxleG1sX2xvYWRfc3RyaW5nKGZpbGVfZ2V0X2NvbnRlbnRzKCRydWxlc2V0UGF0aCkpOwogICAgICAgIGlmICgkcnVsZXNldCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgJGVycm9yTXNnID0gIlJ1bGVzZXQgJHJ1bGVzZXRQYXRoIGlzIG5vdCB2YWxpZCIuUEhQX0VPTDsKICAgICAgICAgICAgJGVycm9ycyAgID0gbGlieG1sX2dldF9lcnJvcnMoKTsKICAgICAgICAgICAgZm9yZWFjaCAoJGVycm9ycyBhcyAkZXJyb3IpIHsKICAgICAgICAgICAgICAgICRlcnJvck1zZyAuPSAnLSBPbiBsaW5lICcuJGVycm9yLT5saW5lLicsIGNvbHVtbiAnLiRlcnJvci0+Y29sdW1uLic6ICcuJGVycm9yLT5tZXNzYWdlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsaWJ4bWxfY2xlYXJfZXJyb3JzKCk7CiAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCRlcnJvck1zZyk7CiAgICAgICAgfQoKICAgICAgICBsaWJ4bWxfdXNlX2ludGVybmFsX2Vycm9ycyhmYWxzZSk7CgogICAgICAgICRvd25TbmlmZnMgICAgICA9IFtdOwogICAgICAgICRpbmNsdWRlZFNuaWZmcyA9IFtdOwogICAgICAgICRleGNsdWRlZFNuaWZmcyA9IFtdOwoKICAgICAgICAkdGhpcy0+cGF0aHNbXSAgICAgICA9ICRydWxlc2V0UGF0aDsKICAgICAgICAkcnVsZXNldERpciAgICAgICAgICA9IGRpcm5hbWUoJHJ1bGVzZXRQYXRoKTsKICAgICAgICAkdGhpcy0+cnVsZXNldERpcnNbXSA9ICRydWxlc2V0RGlyOwoKICAgICAgICAkc25pZmZEaXIgPSAkcnVsZXNldERpci5ESVJFQ1RPUllfU0VQQVJBVE9SLidTbmlmZnMnOwogICAgICAgIGlmIChpc19kaXIoJHNuaWZmRGlyKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgZWNobyAiXHRBZGRpbmcgc25pZmYgZmlsZXMgZnJvbSAiLlV0aWxcQ29tbW9uOjpzdHJpcEJhc2VwYXRoKCRzbmlmZkRpciwgJHRoaXMtPmNvbmZpZy0+YmFzZXBhdGgpLicgZGlyZWN0b3J5Jy5QSFBfRU9MOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkb3duU25pZmZzID0gJHRoaXMtPmV4cGFuZFNuaWZmRGlyZWN0b3J5KCRzbmlmZkRpciwgJGRlcHRoKTsKICAgICAgICB9CgogICAgICAgIC8vIEluY2x1ZGUgY3VzdG9tIGF1dG9sb2FkZXJzLgogICAgICAgIGZvcmVhY2ggKCRydWxlc2V0LT57J2F1dG9sb2FkJ30gYXMgJGF1dG9sb2FkKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+c2hvdWxkUHJvY2Vzc0VsZW1lbnQoJGF1dG9sb2FkKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkYXV0b2xvYWRQYXRoID0gKHN0cmluZykgJGF1dG9sb2FkOwoKICAgICAgICAgICAgLy8gVHJ5IHJlbGF0aXZlIGF1dG9sb2FkIHBhdGhzIGZpcnN0LgogICAgICAgICAgICAkcmVsYXRpdmVQYXRoID0gVXRpbFxDb21tb246OnJlYWxQYXRoKGRpcm5hbWUoJHJ1bGVzZXRQYXRoKS5ESVJFQ1RPUllfU0VQQVJBVE9SLiRhdXRvbG9hZFBhdGgpOwoKICAgICAgICAgICAgaWYgKCRyZWxhdGl2ZVBhdGggIT09IGZhbHNlICYmIGlzX2ZpbGUoJHJlbGF0aXZlUGF0aCkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICRhdXRvbG9hZFBhdGggPSAkcmVsYXRpdmVQYXRoOwogICAgICAgICAgICB9IGVsc2UgaWYgKGlzX2ZpbGUoJGF1dG9sb2FkUGF0aCkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbignVGhlIHNwZWNpZmllZCBhdXRvbG9hZCBmaWxlICInLiRhdXRvbG9hZC4nIiBkb2VzIG5vdCBleGlzdCcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpbmNsdWRlX29uY2UgJGF1dG9sb2FkUGF0aDsKCiAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICBlY2hvICJcdD0+IGluY2x1ZGVkIGF1dG9sb2FkZXIgJGF1dG9sb2FkUGF0aCIuUEhQX0VPTDsKICAgICAgICAgICAgfQogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgIC8vIFByb2Nlc3MgY3VzdG9tIHNuaWZmIGNvbmZpZyBzZXR0aW5ncy4KICAgICAgICBmb3JlYWNoICgkcnVsZXNldC0+eydjb25maWcnfSBhcyAkY29uZmlnKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+c2hvdWxkUHJvY2Vzc0VsZW1lbnQoJGNvbmZpZykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQ29uZmlnOjpzZXRDb25maWdEYXRhKChzdHJpbmcpICRjb25maWdbJ25hbWUnXSwgKHN0cmluZykgJGNvbmZpZ1sndmFsdWUnXSwgdHJ1ZSk7CiAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICBlY2hvICJcdD0+IHNldCBjb25maWcgdmFsdWUgIi4oc3RyaW5nKSAkY29uZmlnWyduYW1lJ10uJzogJy4oc3RyaW5nKSAkY29uZmlnWyd2YWx1ZSddLlBIUF9FT0w7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZvcmVhY2ggKCRydWxlc2V0LT5ydWxlIGFzICRydWxlKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkcnVsZVsncmVmJ10pID09PSBmYWxzZQogICAgICAgICAgICAgICAgfHwgJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRydWxlKSA9PT0gZmFsc2UKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgIGVjaG8gIlx0UHJvY2Vzc2luZyBydWxlIFwiIi4kcnVsZVsncmVmJ10uJyInLlBIUF9FT0w7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRleHBhbmRlZFNuaWZmcyA9ICR0aGlzLT5leHBhbmRSdWxlc2V0UmVmZXJlbmNlKChzdHJpbmcpICRydWxlWydyZWYnXSwgJHJ1bGVzZXREaXIsICRkZXB0aCk7CiAgICAgICAgICAgICRuZXdTbmlmZnMgICAgICA9IGFycmF5X2RpZmYoJGV4cGFuZGVkU25pZmZzLCAkaW5jbHVkZWRTbmlmZnMpOwogICAgICAgICAgICAkaW5jbHVkZWRTbmlmZnMgPSBhcnJheV9tZXJnZSgkaW5jbHVkZWRTbmlmZnMsICRleHBhbmRlZFNuaWZmcyk7CgogICAgICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcuJywgJHJ1bGVbJ3JlZiddKTsKICAgICAgICAgICAgaWYgKGNvdW50KCRwYXJ0cykgPT09IDQKICAgICAgICAgICAgICAgICYmICRwYXJ0c1swXSAhPT0gJycKICAgICAgICAgICAgICAgICYmICRwYXJ0c1sxXSAhPT0gJycKICAgICAgICAgICAgICAgICYmICRwYXJ0c1syXSAhPT0gJycKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAkc25pZmZDb2RlID0gJHBhcnRzWzBdLicuJy4kcGFydHNbMV0uJy4nLiRwYXJ0c1syXTsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+cnVsZXNldFskc25pZmZDb2RlXVsnc2V2ZXJpdHknXSkgPT09IHRydWUKICAgICAgICAgICAgICAgICAgICAmJiAkdGhpcy0+cnVsZXNldFskc25pZmZDb2RlXVsnc2V2ZXJpdHknXSA9PT0gMAogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzbmlmZiBjb2RlIGhhcyBhbHJlYWR5IGJlZW4gdHVybmVkIG9mZiwgYnV0IG5vdwogICAgICAgICAgICAgICAgICAgIC8vIGl0IGlzIGJlaW5nIGV4cGxpY2l0bHkgaW5jbHVkZWQgYWdhaW4sIHNvIHR1cm4gaXQgYmFjayBvbi4KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cnVsZXNldFsoc3RyaW5nKSAkcnVsZVsncmVmJ11dWydzZXZlcml0eSddID0gNTsKICAgICAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQqIGRpc2FibGluZyBzbmlmZiBleGNsdXNpb24gZm9yIHNwZWNpZmljIG1lc3NhZ2UgY29kZSAqIi5QSFBfRU9MOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdD0+IHNldmVyaXR5IHNldCB0byA1Ii5QSFBfRU9MOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZW1wdHkoJG5ld1NuaWZmcykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJG5ld1NuaWZmID0gJG5ld1NuaWZmc1swXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJG5ld1NuaWZmLCAkb3duU25pZmZzLCB0cnVlKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5jbHVkaW5nIGEgc25pZmYgdGhhdCBoYXNuJ3QgYmVlbiBpbmNsdWRlZCBoaWdoZXIgdXAsIGJ1dAogICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IGluY2x1ZGluZyBhIHNpbmdsZSBtZXNzYWdlIGZyb20gaXQuIFNvIHR1cm4gb2ZmIGFsbCBtZXNzYWdlcyBpbgogICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc25pZmYsIGV4Y2VwdCB0aGlzIG9uZS4KICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJ1bGVzZXRbJHNuaWZmQ29kZV1bJ3NldmVyaXR5J10gICAgICAgICAgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5ydWxlc2V0WyhzdHJpbmcpICRydWxlWydyZWYnXV1bJ3NldmVyaXR5J10gPSA1OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdEV4Y2x1ZGluZyBzbmlmZiBcIiIuJHNuaWZmQ29kZS4nIiBleGNlcHQgZm9yICInLiRwYXJ0c1szXS4nIicuUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0vL2VuZCBpZgogICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgIGlmIChpc3NldCgkcnVsZS0+ZXhjbHVkZSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRydWxlLT5leGNsdWRlIGFzICRleGNsdWRlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRleGNsdWRlWyduYW1lJ10pID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdCogaWdub3JpbmcgZW1wdHkgZXhjbHVkZSBydWxlICoiLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJcdFx0XHQ9PiAiLiRleGNsdWRlLT5hc1hNTCgpLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5zaG91bGRQcm9jZXNzRWxlbWVudCgkZXhjbHVkZSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJcdFx0RXhjbHVkaW5nIHJ1bGUgXCIiLiRleGNsdWRlWyduYW1lJ10uJyInLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBhIHNpbmdsZSBjb2RlIGlzIGJlaW5nIGV4Y2x1ZGVkLCB3aGljaCBpcyBhIHNob3J0Y3V0CiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHNldHRpbmcgdGhlIHNldmVyaXR5IG9mIHRoZSBtZXNzYWdlIHRvIDAuCiAgICAgICAgICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgnLicsICRleGNsdWRlWyduYW1lJ10pOwogICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCgkcGFydHMpID09PSA0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5ydWxlc2V0WyhzdHJpbmcpICRleGNsdWRlWyduYW1lJ11dWydzZXZlcml0eSddID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQ9PiBzZXZlcml0eSBzZXQgdG8gMCIuUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRleGNsdWRlZFNuaWZmcyA9IGFycmF5X21lcmdlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2x1ZGVkU25pZmZzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmV4cGFuZFJ1bGVzZXRSZWZlcmVuY2UoKHN0cmluZykgJGV4Y2x1ZGVbJ25hbWUnXSwgJHJ1bGVzZXREaXIsICgkZGVwdGggKyAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Ly9lbmQgZm9yZWFjaAogICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgICR0aGlzLT5wcm9jZXNzUnVsZSgkcnVsZSwgJG5ld1NuaWZmcywgJGRlcHRoKTsKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgICAgICAvLyBQcm9jZXNzIGN1c3RvbSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgogICAgICAgICRjbGlBcmdzID0gW107CiAgICAgICAgZm9yZWFjaCAoJHJ1bGVzZXQtPnsnYXJnJ30gYXMgJGFyZykgewogICAgICAgICAgICBpZiAoJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRhcmcpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkYXJnWyduYW1lJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkYXJnU3RyaW5nID0gJy0tJy4oc3RyaW5nKSAkYXJnWyduYW1lJ107CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ1sndmFsdWUnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAkYXJnU3RyaW5nIC49ICc9Jy4oc3RyaW5nKSAkYXJnWyd2YWx1ZSddOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGFyZ1N0cmluZyA9ICctJy4oc3RyaW5nKSAkYXJnWyd2YWx1ZSddOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkY2xpQXJnc1tdID0gJGFyZ1N0cmluZzsKCiAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICBlY2hvICJcdD0+IHNldCBjb21tYW5kIGxpbmUgdmFsdWUgJGFyZ1N0cmluZyIuUEhQX0VPTDsKICAgICAgICAgICAgfQogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgIC8vIFNldCBjdXN0b20gcGhwIGluaSB2YWx1ZXMgYXMgQ0xJIGFyZ3MuCiAgICAgICAgZm9yZWFjaCAoJHJ1bGVzZXQtPnsnaW5pJ30gYXMgJGFyZykgewogICAgICAgICAgICBpZiAoJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRhcmcpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkYXJnWyduYW1lJ10pID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRuYW1lICAgICAgPSAoc3RyaW5nKSAkYXJnWyduYW1lJ107CiAgICAgICAgICAgICRhcmdTdHJpbmcgPSAkbmFtZTsKICAgICAgICAgICAgaWYgKGlzc2V0KCRhcmdbJ3ZhbHVlJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkdmFsdWUgICAgICA9IChzdHJpbmcpICRhcmdbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAkYXJnU3RyaW5nIC49ICI9JHZhbHVlIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR2YWx1ZSA9ICd0cnVlJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGNsaUFyZ3NbXSA9ICctZCc7CiAgICAgICAgICAgICRjbGlBcmdzW10gPSAkYXJnU3RyaW5nOwoKICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgIGVjaG8gIlx0PT4gc2V0IFBIUCBpbmkgdmFsdWUgJG5hbWUgdG8gJHZhbHVlIi5QSFBfRU9MOwogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIGZvcmVhY2gKCiAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5jb25maWctPmZpbGVzKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAvLyBQcm9jZXNzIGhhcmQtY29kZWQgZmlsZSBwYXRocy4KICAgICAgICAgICAgZm9yZWFjaCAoJHJ1bGVzZXQtPnsnZmlsZSd9IGFzICRmaWxlKSB7CiAgICAgICAgICAgICAgICAkZmlsZSAgICAgID0gKHN0cmluZykgJGZpbGU7CiAgICAgICAgICAgICAgICAkY2xpQXJnc1tdID0gJGZpbGU7CiAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICJcdD0+IGFkZGVkIFwiJGZpbGVcIiB0byB0aGUgZmlsZSBsaXN0Ii5QSFBfRU9MOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoZW1wdHkoJGNsaUFyZ3MpID09PSBmYWxzZSkgewogICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIGRpcmVjdG9yeSBzbyBhbGwgcmVsYXRpdmUgcGF0aHMgYXJlIHdvcmtlZAogICAgICAgICAgICAvLyBvdXQgYmFzZWQgb24gdGhlIGxvY2F0aW9uIG9mIHRoZSBydWxlc2V0IGluc3RlYWQgb2YKICAgICAgICAgICAgLy8gdGhlIGxvY2F0aW9uIG9mIHRoZSB1c2VyLgogICAgICAgICAgICAkaW5QaGFyID0gVXRpbFxDb21tb246OmlzUGhhckZpbGUoJHJ1bGVzZXREaXIpOwogICAgICAgICAgICBpZiAoJGluUGhhciA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICRjdXJyZW50RGlyID0gZ2V0Y3dkKCk7CiAgICAgICAgICAgICAgICBjaGRpcigkcnVsZXNldERpcik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0aGlzLT5jb25maWctPnNldENvbW1hbmRMaW5lVmFsdWVzKCRjbGlBcmdzKTsKCiAgICAgICAgICAgIGlmICgkaW5QaGFyID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgY2hkaXIoJGN1cnJlbnREaXIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBQcm9jZXNzIGN1c3RvbSBpZ25vcmUgcGF0dGVybiBydWxlcy4KICAgICAgICBmb3JlYWNoICgkcnVsZXNldC0+eydleGNsdWRlLXBhdHRlcm4nfSBhcyAkcGF0dGVybikgewogICAgICAgICAgICBpZiAoJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRwYXR0ZXJuKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaXNzZXQoJHBhdHRlcm5bJ3R5cGUnXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkcGF0dGVyblsndHlwZSddID0gJ2Fic29sdXRlJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPmlnbm9yZVBhdHRlcm5zWyhzdHJpbmcpICRwYXR0ZXJuXSA9IChzdHJpbmcpICRwYXR0ZXJuWyd0eXBlJ107CiAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICBlY2hvICJcdD0+IGFkZGVkIGdsb2JhbCAiLihzdHJpbmcpICRwYXR0ZXJuWyd0eXBlJ10uJyBpZ25vcmUgcGF0dGVybjogJy4oc3RyaW5nKSAkcGF0dGVybi5QSFBfRU9MOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkaW5jbHVkZWRTbmlmZnMgPSBhcnJheV91bmlxdWUoYXJyYXlfbWVyZ2UoJG93blNuaWZmcywgJGluY2x1ZGVkU25pZmZzKSk7CiAgICAgICAgJGV4Y2x1ZGVkU25pZmZzID0gYXJyYXlfdW5pcXVlKCRleGNsdWRlZFNuaWZmcyk7CgogICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAkaW5jbHVkZWQgPSBjb3VudCgkaW5jbHVkZWRTbmlmZnMpOwogICAgICAgICAgICAkZXhjbHVkZWQgPSBjb3VudCgkZXhjbHVkZWRTbmlmZnMpOwogICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgZWNobyAiPT4gUnVsZXNldCBwcm9jZXNzaW5nIGNvbXBsZXRlOyBpbmNsdWRlZCAkaW5jbHVkZWQgc25pZmZzIGFuZCBleGNsdWRlZCAkZXhjbHVkZWQiLlBIUF9FT0w7CiAgICAgICAgfQoKICAgICAgICAvLyBNZXJnZSBvdXIgb3duIHNuaWZmIGxpc3Qgd2l0aCBvdXIgZXh0ZXJuYWxseSBpbmNsdWRlZAogICAgICAgIC8vIHNuaWZmIGxpc3QsIGJ1dCBmaWx0ZXIgb3V0IGFueSBleGNsdWRlZCBzbmlmZnMuCiAgICAgICAgJGZpbGVzID0gW107CiAgICAgICAgZm9yZWFjaCAoJGluY2x1ZGVkU25pZmZzIGFzICRzbmlmZikgewogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHNuaWZmLCAkZXhjbHVkZWRTbmlmZnMsIHRydWUpID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRmaWxlc1tdID0gVXRpbFxDb21tb246OnJlYWxwYXRoKCRzbmlmZik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkZmlsZXM7CgogICAgfS8vZW5kIHByb2Nlc3NSdWxlc2V0KCkKCgogICAgLyoqCiAgICAgKiBFeHBhbmRzIGEgZGlyZWN0b3J5IGludG8gYSBsaXN0IG9mIHNuaWZmIGZpbGVzIHdpdGhpbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXJlY3RvcnkgVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkuCiAgICAgKiBAcGFyYW0gaW50ICAgICRkZXB0aCAgICAgSG93IG1hbnkgbmVzdGVkIHByb2Nlc3Npbmcgc3RlcHMgd2UgYXJlIGluLiBUaGlzCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgb25seSB1c2VkIGZvciBkZWJ1ZyBvdXRwdXQuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIGV4cGFuZFNuaWZmRGlyZWN0b3J5KCRkaXJlY3RvcnksICRkZXB0aD0wKQogICAgewogICAgICAgICRzbmlmZnMgPSBbXTsKCiAgICAgICAgJHJkaSA9IG5ldyBcUmVjdXJzaXZlRGlyZWN0b3J5SXRlcmF0b3IoJGRpcmVjdG9yeSwgXFJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yOjpGT0xMT1dfU1lNTElOS1MpOwogICAgICAgICRkaSAgPSBuZXcgXFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3IoJHJkaSwgMCwgXFJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3I6OkNBVENIX0dFVF9DSElMRCk7CgogICAgICAgICRkaXJMZW4gPSBzdHJsZW4oJGRpcmVjdG9yeSk7CgogICAgICAgIGZvcmVhY2ggKCRkaSBhcyAkZmlsZSkgewogICAgICAgICAgICAkZmlsZW5hbWUgPSAkZmlsZS0+Z2V0RmlsZW5hbWUoKTsKCiAgICAgICAgICAgIC8vIFNraXAgaGlkZGVuIGZpbGVzLgogICAgICAgICAgICBpZiAoc3Vic3RyKCRmaWxlbmFtZSwgMCwgMSkgPT09ICcuJykgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gUEhQIGFuZCBzbmlmZiBmaWxlcy4KICAgICAgICAgICAgJGZpbGVQYXJ0cyA9IGV4cGxvZGUoJy4nLCAkZmlsZW5hbWUpOwogICAgICAgICAgICBpZiAoYXJyYXlfcG9wKCRmaWxlUGFydHMpICE9PSAncGhwJykgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRiYXNlbmFtZSA9IGJhc2VuYW1lKCRmaWxlbmFtZSwgJy5waHAnKTsKICAgICAgICAgICAgaWYgKHN1YnN0cigkYmFzZW5hbWUsIC01KSAhPT0gJ1NuaWZmJykgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRwYXRoID0gJGZpbGUtPmdldFBhdGhuYW1lKCk7CgogICAgICAgICAgICAvLyBTa2lwIGZpbGVzIGluIGhpZGRlbiBkaXJlY3RvcmllcyB3aXRoaW4gdGhlIFNuaWZmcyBkaXJlY3Rvcnkgb2YgdGhpcwogICAgICAgICAgICAvLyBzdGFuZGFyZC4gV2UgdXNlIHRoZSBvZmZzZXQgd2l0aCBzdHJwb3MoKSB0byBhbGxvdyBoaWRkZW4gZGlyZWN0b3JpZXMKICAgICAgICAgICAgLy8gYmVmb3JlLCB2YWxpZCBleGFtcGxlOgogICAgICAgICAgICAvLyAvaG9tZS9mb28vLmNvbXBvc2VyL3ZlbmRvci9zcXVpei9jdXN0b21fdG9vbC9NeVN0YW5kYXJkL1NuaWZmcy8uLi4KICAgICAgICAgICAgaWYgKHN0cnBvcygkcGF0aCwgRElSRUNUT1JZX1NFUEFSQVRPUi4nLicsICRkaXJMZW4pICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICBlY2hvICJcdFx0PT4gIi5VdGlsXENvbW1vbjo6c3RyaXBCYXNlcGF0aCgkcGF0aCwgJHRoaXMtPmNvbmZpZy0+YmFzZXBhdGgpLlBIUF9FT0w7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRzbmlmZnNbXSA9ICRwYXRoOwogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgIHJldHVybiAkc25pZmZzOwoKICAgIH0vL2VuZCBleHBhbmRTbmlmZkRpcmVjdG9yeSgpCgoKICAgIC8qKgogICAgICogRXhwYW5kcyBhIHJ1bGVzZXQgcmVmZXJlbmNlIGludG8gYSBsaXN0IG9mIHNuaWZmIGZpbGVzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlZiAgICAgICAgVGhlIHJlZmVyZW5jZSBmcm9tIHRoZSBydWxlc2V0IFhNTCBmaWxlLgogICAgICogQHBhcmFtIHN0cmluZyAkcnVsZXNldERpciBUaGUgZGlyZWN0b3J5IG9mIHRoZSBydWxlc2V0IFhNTCBmaWxlLCB1c2VkIHRvCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWx1YXRlIHJlbGF0aXZlIHBhdGhzLgogICAgICogQHBhcmFtIGludCAgICAkZGVwdGggICAgICBIb3cgbWFueSBuZXN0ZWQgcHJvY2Vzc2luZyBzdGVwcyB3ZSBhcmUgaW4uIFRoaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgb25seSB1c2VkIGZvciBkZWJ1ZyBvdXRwdXQuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiBJZiB0aGUgcmVmZXJlbmNlIGlzIGludmFsaWQuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gZXhwYW5kUnVsZXNldFJlZmVyZW5jZSgkcmVmLCAkcnVsZXNldERpciwgJGRlcHRoPTApCiAgICB7CiAgICAgICAgLy8gSWdub3JlIGludGVybmFsIHNuaWZmcyBjb2RlcyBhcyB0aGV5IGFyZSB1c2VkIHRvIG9ubHkKICAgICAgICAvLyBoaWRlIGFuZCBjaGFuZ2UgaW50ZXJuYWwgbWVzc2FnZXMuCiAgICAgICAgaWYgKHN1YnN0cigkcmVmLCAwLCA5KSA9PT0gJ0ludGVybmFsLicpIHsKICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQqIGlnbm9yaW5nIGludGVybmFsIHNuaWZmIGNvZGUgKiIuUEhQX0VPTDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KCiAgICAgICAgLy8gQXMgc25pZmZzIGNhbid0IGJlZ2luIHdpdGggYSBmdWxsIHN0b3AsIGFzc3VtZSByZWZlcmVuY2VzIGluCiAgICAgICAgLy8gdGhpcyBmb3JtYXQgYXJlIHJlbGF0aXZlIHBhdGhzIGFuZCBhdHRlbXB0IHRvIGNvbnZlcnQgdGhlbQogICAgICAgIC8vIHRvIGFic29sdXRlIHBhdGhzLiBJZiB0aGlzIGZhaWxzLCBsZXQgdGhlIHJlZmVyZW5jZSBydW4gdGhyb3VnaAogICAgICAgIC8vIHRoZSBub3JtYWwgY2hlY2tzIGFuZCBoYXZlIGl0IGZhaWwgYXMgbm9ybWFsLgogICAgICAgIGlmIChzdWJzdHIoJHJlZiwgMCwgMSkgPT09ICcuJykgewogICAgICAgICAgICAkcmVhbHBhdGggPSBVdGlsXENvbW1vbjo6cmVhbHBhdGgoJHJ1bGVzZXREaXIuJy8nLiRyZWYpOwogICAgICAgICAgICBpZiAoJHJlYWxwYXRoICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJHJlZiA9ICRyZWFscGF0aDsKICAgICAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQ9PiAiLlV0aWxcQ29tbW9uOjpzdHJpcEJhc2VwYXRoKCRyZWYsICR0aGlzLT5jb25maWctPmJhc2VwYXRoKS5QSFBfRU9MOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBBcyBzbmlmZnMgY2FuJ3QgYmVnaW4gd2l0aCBhIHRpbGRlLCBhc3N1bWUgcmVmZXJlbmNlcyBpbgogICAgICAgIC8vIHRoaXMgZm9ybWF0IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcidzIGhvbWUgZGlyZWN0b3J5LgogICAgICAgIGlmIChzdWJzdHIoJHJlZiwgMCwgMikgPT09ICd+LycpIHsKICAgICAgICAgICAgJHJlYWxwYXRoID0gVXRpbFxDb21tb246OnJlYWxwYXRoKCRyZWYpOwogICAgICAgICAgICBpZiAoJHJlYWxwYXRoICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJHJlZiA9ICRyZWFscGF0aDsKICAgICAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQ9PiAiLlV0aWxcQ29tbW9uOjpzdHJpcEJhc2VwYXRoKCRyZWYsICR0aGlzLT5jb25maWctPmJhc2VwYXRoKS5QSFBfRU9MOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNfZmlsZSgkcmVmKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICBpZiAoc3Vic3RyKCRyZWYsIC05KSA9PT0gJ1NuaWZmLnBocCcpIHsKICAgICAgICAgICAgICAgIC8vIEEgc2luZ2xlIGV4dGVybmFsIHNuaWZmLgogICAgICAgICAgICAgICAgJHRoaXMtPnJ1bGVzZXREaXJzW10gPSBkaXJuYW1lKGRpcm5hbWUoZGlybmFtZSgkcmVmKSkpOwogICAgICAgICAgICAgICAgcmV0dXJuIFskcmVmXTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIFNlZSBpZiB0aGlzIGlzIGEgd2hvbGUgc3RhbmRhcmQgYmVpbmcgcmVmZXJlbmNlZC4KICAgICAgICAgICAgJHBhdGggPSBVdGlsXFN0YW5kYXJkczo6Z2V0SW5zdGFsbGVkU3RhbmRhcmRQYXRoKCRyZWYpOwogICAgICAgICAgICBpZiAoJHBhdGggIT09IG51bGwgJiYgVXRpbFxDb21tb246OmlzUGhhckZpbGUoJHBhdGgpID09PSB0cnVlICYmIHN0cnBvcygkcGF0aCwgJ3J1bGVzZXQueG1sJykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZXNldCBleGlzdHMgaW5zaWRlIHRoZSBwaGFyIGZpbGUsIHVzZSBpdC4KICAgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygkcGF0aC5ESVJFQ1RPUllfU0VQQVJBVE9SLidydWxlc2V0LnhtbCcpID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHBhdGggLj0gRElSRUNUT1JZX1NFUEFSQVRPUi4ncnVsZXNldC54bWwnOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcGF0aCA9IG51bGw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkcGF0aCAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgJHJlZiA9ICRwYXRoOwogICAgICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdD0+ICIuVXRpbFxDb21tb246OnN0cmlwQmFzZXBhdGgoJHJlZiwgJHRoaXMtPmNvbmZpZy0+YmFzZXBhdGgpLlBIUF9FT0w7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNfZGlyKCRyZWYpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgLy8gV29yayBvdXQgdGhlIHNuaWZmIHBhdGguCiAgICAgICAgICAgICAgICAkc2VwUG9zID0gc3RycG9zKCRyZWYsIERJUkVDVE9SWV9TRVBBUkFUT1IpOwogICAgICAgICAgICAgICAgaWYgKCRzZXBQb3MgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHN0ZE5hbWUgPSBzdWJzdHIoJHJlZiwgMCwgJHNlcFBvcyk7CiAgICAgICAgICAgICAgICAgICAgJHBhdGggICAgPSBzdWJzdHIoJHJlZiwgJHNlcFBvcyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRwYXJ0cyAgID0gZXhwbG9kZSgnLicsICRyZWYpOwogICAgICAgICAgICAgICAgICAgICRzdGROYW1lID0gJHBhcnRzWzBdOwogICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCgkcGFydHMpID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgd2hvbGUgc3RhbmRhcmQ/CiAgICAgICAgICAgICAgICAgICAgICAgICRwYXRoID0gJyc7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb3VudCgkcGFydHMpID09PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgZGlyZWN0b3J5IG9mIHNuaWZmcz8KICAgICAgICAgICAgICAgICAgICAgICAgJHBhdGggPSBESVJFQ1RPUllfU0VQQVJBVE9SLidTbmlmZnMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJHBhcnRzWzFdOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEgc2luZ2xlIHNuaWZmPwogICAgICAgICAgICAgICAgICAgICAgICAkcGF0aCA9IERJUkVDVE9SWV9TRVBBUkFUT1IuJ1NuaWZmcycuRElSRUNUT1JZX1NFUEFSQVRPUi4kcGFydHNbMV0uRElSRUNUT1JZX1NFUEFSQVRPUi4kcGFydHNbMl0uJ1NuaWZmLnBocCc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRuZXdSZWYgID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkc3RkUGF0aCA9IFV0aWxcU3RhbmRhcmRzOjpnZXRJbnN0YWxsZWRTdGFuZGFyZFBhdGgoJHN0ZE5hbWUpOwogICAgICAgICAgICAgICAgaWYgKCRzdGRQYXRoICE9PSBudWxsICYmICRwYXRoICE9PSAnJykgewogICAgICAgICAgICAgICAgICAgIGlmIChVdGlsXENvbW1vbjo6aXNQaGFyRmlsZSgkc3RkUGF0aCkgPT09IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3RycG9zKCRzdGRQYXRoLCAncnVsZXNldC54bWwnKSA9PT0gZmFsc2UKICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGhhciBmaWxlcyBjYW4gb25seSByZXR1cm4gdGhlIGRpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luY2UgcnVsZXNldCBjYW4gYmUgb21pdHRlZCBpZiBidWlsZGluZyBvbmUgc3RhbmRhcmQuCiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdSZWYgPSBVdGlsXENvbW1vbjo6cmVhbHBhdGgoJHN0ZFBhdGguJHBhdGgpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdSZWYgPSBVdGlsXENvbW1vbjo6cmVhbHBhdGgoZGlybmFtZSgkc3RkUGF0aCkuJHBhdGgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJG5ld1JlZiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAvLyBUaGUgc25pZmYgaXMgbm90IGxvY2FsbHkgaW5zdGFsbGVkLCBzbyBjaGVjayBpZiBpdCBpcyBiZWluZwogICAgICAgICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYXMgYSByZW1vdGUgc25pZmYgb3V0c2lkZSB0aGUgaW5zdGFsbC4gV2UgZG8gdGhpcwogICAgICAgICAgICAgICAgICAgIC8vIGJ5IGxvb2tpbmcgdGhyb3VnaCBhbGwgZGlyZWN0b3JpZXMgd2hlcmUgd2UgaGF2ZSBmb3VuZCBydWxlc2V0CiAgICAgICAgICAgICAgICAgICAgLy8gZmlsZXMgYmVmb3JlLCBsb29raW5nIGZvciBvbmVzIGZvciB0aGlzIHBhcnRpY3VsYXIgc3RhbmRhcmQsCiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHNlZWluZyBpZiBpdCBpcyBpbiB0aGVyZS4KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+cnVsZXNldERpcnMgYXMgJGRpcikgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RydG9sb3dlcihiYXNlbmFtZSgkZGlyKSkgIT09IHN0cnRvbG93ZXIoJHN0ZE5hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld1JlZiA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aCgkZGlyLiRwYXRoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbmV3UmVmICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlZiA9ICRuZXdSZWY7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbmV3UmVmOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQ9PiAiLlV0aWxcQ29tbW9uOjpzdHJpcEJhc2VwYXRoKCRyZWYsICR0aGlzLT5jb25maWctPmJhc2VwYXRoKS5QSFBfRU9MOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Ly9lbmQgaWYKICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgaWYgKGlzX2RpcigkcmVmKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICBpZiAoaXNfZmlsZSgkcmVmLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3J1bGVzZXQueG1sJykgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIC8vIFdlIGFyZSByZWZlcmVuY2luZyBhbiBleHRlcm5hbCBjb2Rpbmcgc3RhbmRhcmQuCiAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICJcdFx0KiBydWxlIGlzIHJlZmVyZW5jaW5nIGEgc3RhbmRhcmQgdXNpbmcgZGlyZWN0b3J5IG5hbWU7IHByb2Nlc3NpbmcgKiIuUEhQX0VPTDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnByb2Nlc3NSdWxlc2V0KCRyZWYuRElSRUNUT1JZX1NFUEFSQVRPUi4ncnVsZXNldC54bWwnLCAoJGRlcHRoICsgMikpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gV2UgYXJlIHJlZmVyZW5jaW5nIGEgd2hvbGUgZGlyZWN0b3J5IG9mIHNuaWZmcy4KICAgICAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQqIHJ1bGUgaXMgcmVmZXJlbmNpbmcgYSBkaXJlY3Rvcnkgb2Ygc25pZmZzICoiLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdEFkZGluZyBzbmlmZiBmaWxlcyBmcm9tIGRpcmVjdG9yeSIuUEhQX0VPTDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmV4cGFuZFNuaWZmRGlyZWN0b3J5KCRyZWYsICgkZGVwdGggKyAxKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoaXNfZmlsZSgkcmVmKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICRlcnJvciA9ICJSZWZlcmVuY2VkIHNuaWZmIFwiJHJlZlwiIGRvZXMgbm90IGV4aXN0IjsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCRlcnJvcik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChzdWJzdHIoJHJlZiwgLTkpID09PSAnU25pZmYucGhwJykgewogICAgICAgICAgICAgICAgLy8gQSBzaW5nbGUgc25pZmYuCiAgICAgICAgICAgICAgICByZXR1cm4gWyRyZWZdOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gQXNzdW1lIGFuIGV4dGVybmFsIHJ1bGVzZXQueG1sIGZpbGUuCiAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICJcdFx0KiBydWxlIGlzIHJlZmVyZW5jaW5nIGEgc3RhbmRhcmQgdXNpbmcgcnVsZXNldCBwYXRoOyBwcm9jZXNzaW5nICoiLlBIUF9FT0w7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5wcm9jZXNzUnVsZXNldCgkcmVmLCAoJGRlcHRoICsgMikpOwogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIGlmCgogICAgfS8vZW5kIGV4cGFuZFJ1bGVzZXRSZWZlcmVuY2UoKQoKCiAgICAvKioKICAgICAqIFByb2Nlc3NlcyBhIHJ1bGUgZnJvbSBhIHJ1bGVzZXQgWE1MIGZpbGUsIG92ZXJyaWRpbmcgYnVpbHQtaW4gZGVmYXVsdHMuCiAgICAgKgogICAgICogQHBhcmFtIFxTaW1wbGVYTUxFbGVtZW50ICRydWxlICAgICAgVGhlIHJ1bGUgb2JqZWN0IGZyb20gYSBydWxlc2V0IFhNTCBmaWxlLgogICAgICogQHBhcmFtIHN0cmluZ1tdICAgICAgICAgICRuZXdTbmlmZnMgQW4gYXJyYXkgb2Ygc25pZmZzIHRoYXQgZ290IGluY2x1ZGVkIGJ5IHRoaXMgcnVsZS4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAgICAkZGVwdGggICAgIEhvdyBtYW55IG5lc3RlZCBwcm9jZXNzaW5nIHN0ZXBzIHdlIGFyZSBpbi4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb25seSB1c2VkIGZvciBkZWJ1ZyBvdXRwdXQuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAdGhyb3dzIFxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIElmIHJ1bGUgc2V0dGluZ3MgYXJlIGludmFsaWQuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gcHJvY2Vzc1J1bGUoJHJ1bGUsICRuZXdTbmlmZnMsICRkZXB0aD0wKQogICAgewogICAgICAgICRyZWYgID0gKHN0cmluZykgJHJ1bGVbJ3JlZiddOwogICAgICAgICR0b2RvID0gWyRyZWZdOwoKICAgICAgICAkcGFydHMgICAgICA9IGV4cGxvZGUoJy4nLCAkcmVmKTsKICAgICAgICAkcGFydHNDb3VudCA9IGNvdW50KCRwYXJ0cyk7CiAgICAgICAgaWYgKCRwYXJ0c0NvdW50IDw9IDIKICAgICAgICAgICAgfHwgJHBhcnRzQ291bnQgPiBjb3VudChhcnJheV9maWx0ZXIoJHBhcnRzKSkKICAgICAgICAgICAgfHwgaW5fYXJyYXkoJHJlZiwgJG5ld1NuaWZmcykgPT09IHRydWUKICAgICAgICApIHsKICAgICAgICAgICAgLy8gV2UgYXJlIHByb2Nlc3NpbmcgYSBzdGFuZGFyZCwgYSBjYXRlZ29yeSBvZiBzbmlmZnMgb3IgYSByZWxhdGl2ZSBwYXRoIGluY2x1c2lvbi4KICAgICAgICAgICAgZm9yZWFjaCAoJG5ld1NuaWZmcyBhcyAkc25pZmZGaWxlKSB7CiAgICAgICAgICAgICAgICAkcGFydHMgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1IsICRzbmlmZkZpbGUpOwogICAgICAgICAgICAgICAgaWYgKGNvdW50KCRwYXJ0cykgPT09IDEgJiYgRElSRUNUT1JZX1NFUEFSQVRPUiA9PT0gJ1xcJykgewogICAgICAgICAgICAgICAgICAgIC8vIFBhdGggdXNpbmcgZm9yd2FyZCBzbGFzaGVzIHdoaWxlIHJ1bm5pbmcgb24gV2luZG93cy4KICAgICAgICAgICAgICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcvJywgJHNuaWZmRmlsZSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHNuaWZmTmFtZSAgICAgPSBhcnJheV9wb3AoJHBhcnRzKTsKICAgICAgICAgICAgICAgICRzbmlmZkNhdGVnb3J5ID0gYXJyYXlfcG9wKCRwYXJ0cyk7CiAgICAgICAgICAgICAgICBhcnJheV9wb3AoJHBhcnRzKTsKICAgICAgICAgICAgICAgICRzbmlmZlN0YW5kYXJkID0gYXJyYXlfcG9wKCRwYXJ0cyk7CiAgICAgICAgICAgICAgICAkdG9kb1tdICAgICAgICA9ICRzbmlmZlN0YW5kYXJkLicuJy4kc25pZmZDYXRlZ29yeS4nLicuc3Vic3RyKCRzbmlmZk5hbWUsIDAsIC05KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHRvZG8gYXMgJGNvZGUpIHsKICAgICAgICAgICAgLy8gQ3VzdG9tIHNldmVyaXR5LgogICAgICAgICAgICBpZiAoaXNzZXQoJHJ1bGUtPnNldmVyaXR5KSA9PT0gdHJ1ZQogICAgICAgICAgICAgICAgJiYgJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRydWxlLT5zZXZlcml0eSkgPT09IHRydWUKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnJ1bGVzZXRbJGNvZGVdKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cnVsZXNldFskY29kZV0gPSBbXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+cnVsZXNldFskY29kZV1bJ3NldmVyaXR5J10gPSAoaW50KSAkcnVsZS0+c2V2ZXJpdHk7CiAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICJcdFx0PT4gc2V2ZXJpdHkgc2V0IHRvICIuKGludCkgJHJ1bGUtPnNldmVyaXR5OwogICAgICAgICAgICAgICAgICAgIGlmICgkY29kZSAhPT0gJHJlZikgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIgZm9yICRjb2RlIjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gQ3VzdG9tIG1lc3NhZ2UgdHlwZS4KICAgICAgICAgICAgaWYgKGlzc2V0KCRydWxlLT50eXBlKSA9PT0gdHJ1ZQogICAgICAgICAgICAgICAgJiYgJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRydWxlLT50eXBlKSA9PT0gdHJ1ZQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+cnVsZXNldFskY29kZV0pID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5ydWxlc2V0WyRjb2RlXSA9IFtdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0eXBlID0gc3RydG9sb3dlcigoc3RyaW5nKSAkcnVsZS0+dHlwZSk7CiAgICAgICAgICAgICAgICBpZiAoJHR5cGUgIT09ICdlcnJvcicgJiYgJHR5cGUgIT09ICd3YXJuaW5nJykgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJNZXNzYWdlIHR5cGUgXCIkdHlwZVwiIGlzIGludmFsaWQ7IG11c3QgYmUgXCJlcnJvclwiIG9yIFwid2FybmluZ1wiIik7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPnJ1bGVzZXRbJGNvZGVdWyd0eXBlJ10gPSAkdHlwZTsKICAgICAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQ9PiBtZXNzYWdlIHR5cGUgc2V0IHRvICIuKHN0cmluZykgJHJ1bGUtPnR5cGU7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlICE9PSAkcmVmKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiBmb3IgJGNvZGUiOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgZWNobyBQSFBfRU9MOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgIC8vIEN1c3RvbSBtZXNzYWdlLgogICAgICAgICAgICBpZiAoaXNzZXQoJHJ1bGUtPm1lc3NhZ2UpID09PSB0cnVlCiAgICAgICAgICAgICAgICAmJiAkdGhpcy0+c2hvdWxkUHJvY2Vzc0VsZW1lbnQoJHJ1bGUtPm1lc3NhZ2UpID09PSB0cnVlCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5ydWxlc2V0WyRjb2RlXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJ1bGVzZXRbJGNvZGVdID0gW107CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPnJ1bGVzZXRbJGNvZGVdWydtZXNzYWdlJ10gPSAoc3RyaW5nKSAkcnVsZS0+bWVzc2FnZTsKICAgICAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIlx0XHQ9PiBtZXNzYWdlIHNldCB0byAiLihzdHJpbmcpICRydWxlLT5tZXNzYWdlOwogICAgICAgICAgICAgICAgICAgIGlmICgkY29kZSAhPT0gJHJlZikgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIgZm9yICRjb2RlIjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gQ3VzdG9tIHByb3BlcnRpZXMuCiAgICAgICAgICAgIGlmIChpc3NldCgkcnVsZS0+cHJvcGVydGllcykgPT09IHRydWUKICAgICAgICAgICAgICAgICYmICR0aGlzLT5zaG91bGRQcm9jZXNzRWxlbWVudCgkcnVsZS0+cHJvcGVydGllcykgPT09IHRydWUKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcnVsZS0+cHJvcGVydGllcy0+cHJvcGVydHkgYXMgJHByb3ApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRwcm9wKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnJ1bGVzZXRbJGNvZGVdKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJ1bGVzZXRbJGNvZGVdID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMnID0+IFtdLAogICAgICAgICAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNzZXQoJHRoaXMtPnJ1bGVzZXRbJGNvZGVdWydwcm9wZXJ0aWVzJ10pID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cnVsZXNldFskY29kZV1bJ3Byb3BlcnRpZXMnXSA9IFtdOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSAoc3RyaW5nKSAkcHJvcFsnbmFtZSddOwogICAgICAgICAgICAgICAgICAgIGlmIChpc3NldCgkcHJvcFsndHlwZSddKSA9PT0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAmJiAoc3RyaW5nKSAkcHJvcFsndHlwZSddID09PSAnYXJyYXknCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZXMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRwcm9wWydleHRlbmQnXSkgPT09IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChzdHJpbmcpICRwcm9wWydleHRlbmQnXSA9PT0gJ3RydWUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBpc3NldCgkdGhpcy0+cnVsZXNldFskY29kZV1bJ3Byb3BlcnRpZXMnXVskbmFtZV0pID09PSB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlcyA9ICR0aGlzLT5ydWxlc2V0WyRjb2RlXVsncHJvcGVydGllcyddWyRuYW1lXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRwcm9wLT5lbGVtZW50KSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByaW50VmFsdWUgPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwcm9wLT5lbGVtZW50IGFzICRlbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5zaG91bGRQcm9jZXNzRWxlbWVudCgkZWxlbWVudCkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlID0gKHN0cmluZykgJGVsZW1lbnRbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRlbGVtZW50WydrZXknXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGtleSAgICAgICAgICA9IChzdHJpbmcpICRlbGVtZW50WydrZXknXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbHVlc1ska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByaW50VmFsdWUgIC49ICRrZXkuJz0+Jy4kdmFsdWUuJywnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZXNbXSAgICA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByaW50VmFsdWUgLj0gJHZhbHVlLicsJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByaW50VmFsdWUgPSBydHJpbSgkcHJpbnRWYWx1ZSwgJywnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSAgICAgID0gKHN0cmluZykgJHByb3BbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJpbnRWYWx1ZSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkdmFsdWUpIGFzICR2YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KCRrLCAkdikgPSBleHBsb2RlKCc9PicsICR2YWwuJz0+Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR2ICE9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWVzW3RyaW0oJGspXSA9IHRyaW0oJHYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZXNbXSA9IHRyaW0oJGspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cnVsZXNldFskY29kZV1bJ3Byb3BlcnRpZXMnXVskbmFtZV0gPSAkdmFsdWVzOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdD0+IGFycmF5IHByb3BlcnR5IFwiJG5hbWVcIiBzZXQgdG8gXCIkcHJpbnRWYWx1ZVwiIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZSAhPT0gJHJlZikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiBmb3IgJGNvZGUiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5ydWxlc2V0WyRjb2RlXVsncHJvcGVydGllcyddWyRuYW1lXSA9IChzdHJpbmcpICRwcm9wWyd2YWx1ZSddOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gc3RyX3JlcGVhdCgiXHQiLCAkZGVwdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdD0+IHByb3BlcnR5IFwiJG5hbWVcIiBzZXQgdG8gXCIiLihzdHJpbmcpICRwcm9wWyd2YWx1ZSddLiciJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZSAhPT0gJHJlZikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiBmb3IgJGNvZGUiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0vL2VuZCBpZgogICAgICAgICAgICAgICAgfS8vZW5kIGZvcmVhY2gKICAgICAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICAgICAvLyBJZ25vcmUgcGF0dGVybnMuCiAgICAgICAgICAgIGZvcmVhY2ggKCRydWxlLT57J2V4Y2x1ZGUtcGF0dGVybid9IGFzICRwYXR0ZXJuKSB7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPnNob3VsZFByb2Nlc3NFbGVtZW50KCRwYXR0ZXJuKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmlnbm9yZVBhdHRlcm5zWyRjb2RlXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmlnbm9yZVBhdHRlcm5zWyRjb2RlXSA9IFtdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkcGF0dGVyblsndHlwZSddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkcGF0dGVyblsndHlwZSddID0gJ2Fic29sdXRlJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+aWdub3JlUGF0dGVybnNbJGNvZGVdWyhzdHJpbmcpICRwYXR0ZXJuXSA9IChzdHJpbmcpICRwYXR0ZXJuWyd0eXBlJ107CiAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBlY2hvIHN0cl9yZXBlYXQoIlx0IiwgJGRlcHRoKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICJcdFx0PT4gYWRkZWQgcnVsZS1zcGVjaWZpYyAiLihzdHJpbmcpICRwYXR0ZXJuWyd0eXBlJ10uJyBpZ25vcmUgcGF0dGVybic7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlICE9PSAkcmVmKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiBmb3IgJGNvZGUiOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgZWNobyAnOiAnLihzdHJpbmcpICRwYXR0ZXJuLlBIUF9FT0w7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgICAgICAvLyBJbmNsdWRlIHBhdHRlcm5zLgogICAgICAgICAgICBmb3JlYWNoICgkcnVsZS0+eydpbmNsdWRlLXBhdHRlcm4nfSBhcyAkcGF0dGVybikgewogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5zaG91bGRQcm9jZXNzRWxlbWVudCgkcGF0dGVybikgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5pbmNsdWRlUGF0dGVybnNbJGNvZGVdKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+aW5jbHVkZVBhdHRlcm5zWyRjb2RlXSA9IFtdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkcGF0dGVyblsndHlwZSddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkcGF0dGVyblsndHlwZSddID0gJ2Fic29sdXRlJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+aW5jbHVkZVBhdHRlcm5zWyRjb2RlXVsoc3RyaW5nKSAkcGF0dGVybl0gPSAoc3RyaW5nKSAkcGF0dGVyblsndHlwZSddOwogICAgICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgZWNobyBzdHJfcmVwZWF0KCJcdCIsICRkZXB0aCk7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiXHRcdD0+IGFkZGVkIHJ1bGUtc3BlY2lmaWMgIi4oc3RyaW5nKSAkcGF0dGVyblsndHlwZSddLicgaW5jbHVkZSBwYXR0ZXJuJzsKICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGUgIT09ICRyZWYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiIGZvciAkY29kZSI7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBlY2hvICc6ICcuKHN0cmluZykgJHBhdHRlcm4uUEhQX0VPTDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfS8vZW5kIGZvcmVhY2gKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgIH0vL2VuZCBwcm9jZXNzUnVsZSgpCgoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lIGlmIGFuIGVsZW1lbnQgc2hvdWxkIGJlIHByb2Nlc3NlZCBvciBpZ25vcmVkLgogICAgICoKICAgICAqIEBwYXJhbSBcU2ltcGxlWE1MRWxlbWVudCAkZWxlbWVudCBBbiBvYmplY3QgZnJvbSBhIHJ1bGVzZXQgWE1MIGZpbGUuCiAgICAgKgogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gc2hvdWxkUHJvY2Vzc0VsZW1lbnQoJGVsZW1lbnQpCiAgICB7CiAgICAgICAgaWYgKGlzc2V0KCRlbGVtZW50WydwaHBjYmYtb25seSddKSA9PT0gZmFsc2UKICAgICAgICAgICAgJiYgaXNzZXQoJGVsZW1lbnRbJ3BocGNzLW9ubHknXSkgPT09IGZhbHNlCiAgICAgICAgKSB7CiAgICAgICAgICAgIC8vIE5vIGV4Y2VwdGlvbnMgYXJlIGJlaW5nIG1hZGUuCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9DQkYgPT09IHRydWUKICAgICAgICAgICAgJiYgaXNzZXQoJGVsZW1lbnRbJ3BocGNiZi1vbmx5J10pID09PSB0cnVlCiAgICAgICAgICAgICYmIChzdHJpbmcpICRlbGVtZW50WydwaHBjYmYtb25seSddID09PSAndHJ1ZScKICAgICAgICApIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX0NCRiA9PT0gZmFsc2UKICAgICAgICAgICAgJiYgaXNzZXQoJGVsZW1lbnRbJ3BocGNzLW9ubHknXSkgPT09IHRydWUKICAgICAgICAgICAgJiYgKHN0cmluZykgJGVsZW1lbnRbJ3BocGNzLW9ubHknXSA9PT0gJ3RydWUnCiAgICAgICAgKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIH0vL2VuZCBzaG91bGRQcm9jZXNzRWxlbWVudCgpCgoKICAgIC8qKgogICAgICogTG9hZHMgYW5kIHN0b3JlcyBzbmlmZnMgb2JqZWN0cyB1c2VkIGZvciBzbmlmZmluZyBmaWxlcy4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGZpbGVzICAgICAgICBQYXRocyB0byB0aGUgc25pZmYgZmlsZXMgdG8gcmVnaXN0ZXIuCiAgICAgKiBAcGFyYW0gYXJyYXkgJHJlc3RyaWN0aW9ucyBUaGUgc25pZmYgY2xhc3MgbmFtZXMgdG8gcmVzdHJpY3QgdGhlIGFsbG93ZWQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVycyB0by4KICAgICAqIEBwYXJhbSBhcnJheSAkZXhjbHVzaW9ucyAgIFRoZSBzbmlmZiBjbGFzcyBuYW1lcyB0byBleGNsdWRlIGZyb20gdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMgbGlzdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyU25pZmZzKCRmaWxlcywgJHJlc3RyaWN0aW9ucywgJGV4Y2x1c2lvbnMpCiAgICB7CiAgICAgICAgJGxpc3RlbmVycyA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsKICAgICAgICAgICAgLy8gV29yayBvdXQgd2hlcmUgdGhlIHBvc2l0aW9uIG9mIC9TdGFuZGFyZE5hbWUvU25pZmZzLy4uLiBpcwogICAgICAgICAgICAvLyBzbyB3ZSBjYW4gZGV0ZXJtaW5lIHdoYXQgdGhlIGNsYXNzIHdpbGwgYmUgY2FsbGVkLgogICAgICAgICAgICAkc25pZmZQb3MgPSBzdHJycG9zKCRmaWxlLCBESVJFQ1RPUllfU0VQQVJBVE9SLidTbmlmZnMnLkRJUkVDVE9SWV9TRVBBUkFUT1IpOwogICAgICAgICAgICBpZiAoJHNuaWZmUG9zID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRzbGFzaFBvcyA9IHN0cnJwb3Moc3Vic3RyKCRmaWxlLCAwLCAkc25pZmZQb3MpLCBESVJFQ1RPUllfU0VQQVJBVE9SKTsKICAgICAgICAgICAgaWYgKCRzbGFzaFBvcyA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkY2xhc3NOYW1lICAgPSBBdXRvbG9hZDo6bG9hZEZpbGUoJGZpbGUpOwogICAgICAgICAgICAkY29tcGFyZU5hbWUgPSBVdGlsXENvbW1vbjo6Y2xlYW5TbmlmZkNsYXNzKCRjbGFzc05hbWUpOwoKICAgICAgICAgICAgLy8gSWYgdGhleSBoYXZlIHNwZWNpZmllZCBhIGxpc3Qgb2Ygc25pZmZzIHRvIHJlc3RyaWN0IHRvLCBjaGVjawogICAgICAgICAgICAvLyB0byBzZWUgaWYgdGhpcyBzbmlmZiBpcyBhbGxvd2VkLgogICAgICAgICAgICBpZiAoZW1wdHkoJHJlc3RyaWN0aW9ucykgPT09IGZhbHNlCiAgICAgICAgICAgICAgICAmJiBpc3NldCgkcmVzdHJpY3Rpb25zWyRjb21wYXJlTmFtZV0pID09PSBmYWxzZQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGV5IGhhdmUgc3BlY2lmaWVkIGEgbGlzdCBvZiBzbmlmZnMgdG8gZXhjbHVkZSwgY2hlY2sKICAgICAgICAgICAgLy8gdG8gc2VlIGlmIHRoaXMgc25pZmYgaXMgYWxsb3dlZC4KICAgICAgICAgICAgaWYgKGVtcHR5KCRleGNsdXNpb25zKSA9PT0gZmFsc2UKICAgICAgICAgICAgICAgICYmIGlzc2V0KCRleGNsdXNpb25zWyRjb21wYXJlTmFtZV0pID09PSB0cnVlCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFNraXAgYWJzdHJhY3QgY2xhc3Nlcy4KICAgICAgICAgICAgJHJlZmxlY3Rpb24gPSBuZXcgXFJlZmxlY3Rpb25DbGFzcygkY2xhc3NOYW1lKTsKICAgICAgICAgICAgaWYgKCRyZWZsZWN0aW9uLT5pc0Fic3RyYWN0KCkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkbGlzdGVuZXJzWyRjbGFzc05hbWVdID0gJGNsYXNzTmFtZTsKCiAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMikgewogICAgICAgICAgICAgICAgZWNobyAiUmVnaXN0ZXJlZCAkY2xhc3NOYW1lIi5QSFBfRU9MOwogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIGZvcmVhY2gKCiAgICAgICAgJHRoaXMtPnNuaWZmcyA9ICRsaXN0ZW5lcnM7CgogICAgfS8vZW5kIHJlZ2lzdGVyU25pZmZzKCkKCgogICAgLyoqCiAgICAgKiBQb3B1bGF0ZXMgdGhlIGFycmF5IG9mIFBIUF9Db2RlU25pZmZlcl9TbmlmZiBvYmplY3RzIGZvciB0aGlzIGZpbGUuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAdGhyb3dzIFxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIElmIHNuaWZmIHJlZ2lzdHJhdGlvbiBmYWlscy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBvcHVsYXRlVG9rZW5MaXN0ZW5lcnMoKQogICAgewogICAgICAgIC8vIENvbnN0cnVjdCBhIGxpc3Qgb2YgbGlzdGVuZXJzIGluZGV4ZWQgYnkgdG9rZW4gYmVpbmcgbGlzdGVuZWQgZm9yLgogICAgICAgICR0aGlzLT50b2tlbkxpc3RlbmVycyA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+c25pZmZzIGFzICRzbmlmZkNsYXNzID0+ICRzbmlmZk9iamVjdCkgewogICAgICAgICAgICAkdGhpcy0+c25pZmZzWyRzbmlmZkNsYXNzXSA9IG51bGw7CiAgICAgICAgICAgICR0aGlzLT5zbmlmZnNbJHNuaWZmQ2xhc3NdID0gbmV3ICRzbmlmZkNsYXNzKCk7CgogICAgICAgICAgICAkc25pZmZDb2RlID0gVXRpbFxDb21tb246OmdldFNuaWZmQ29kZSgkc25pZmZDbGFzcyk7CiAgICAgICAgICAgICR0aGlzLT5zbmlmZkNvZGVzWyRzbmlmZkNvZGVdID0gJHNuaWZmQ2xhc3M7CgogICAgICAgICAgICAvLyBTZXQgY3VzdG9tIHByb3BlcnRpZXMuCiAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+cnVsZXNldFskc25pZmZDb2RlXVsncHJvcGVydGllcyddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnJ1bGVzZXRbJHNuaWZmQ29kZV1bJ3Byb3BlcnRpZXMnXSBhcyAkbmFtZSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2V0U25pZmZQcm9wZXJ0eSgkc25pZmZDbGFzcywgJG5hbWUsICR2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0b2tlbml6ZXJzID0gW107CiAgICAgICAgICAgICR2YXJzICAgICAgID0gZ2V0X2NsYXNzX3ZhcnMoJHNuaWZmQ2xhc3MpOwogICAgICAgICAgICBpZiAoaXNzZXQoJHZhcnNbJ3N1cHBvcnRlZFRva2VuaXplcnMnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR2YXJzWydzdXBwb3J0ZWRUb2tlbml6ZXJzJ10gYXMgJHRva2VuaXplcikgewogICAgICAgICAgICAgICAgICAgICR0b2tlbml6ZXJzWyR0b2tlbml6ZXJdID0gJHRva2VuaXplcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0b2tlbml6ZXJzID0gWydQSFAnID0+ICdQSFAnXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRva2VucyA9ICR0aGlzLT5zbmlmZnNbJHNuaWZmQ2xhc3NdLT5yZWdpc3RlcigpOwogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHRva2VucykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkbXNnID0gIlNuaWZmICRzbmlmZkNsYXNzIHJlZ2lzdGVyKCkgbWV0aG9kIG11c3QgcmV0dXJuIGFuIGFycmF5IjsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCRtc2cpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkaWdub3JlUGF0dGVybnMgPSBbXTsKICAgICAgICAgICAgJHBhdHRlcm5zICAgICAgID0gJHRoaXMtPmdldElnbm9yZVBhdHRlcm5zKCRzbmlmZkNvZGUpOwogICAgICAgICAgICBmb3JlYWNoICgkcGF0dGVybnMgYXMgJHBhdHRlcm4gPT4gJHR5cGUpIHsKICAgICAgICAgICAgICAgICRyZXBsYWNlbWVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ1xcLCcgPT4gJywnLAogICAgICAgICAgICAgICAgICAgICcqJyAgID0+ICcuKicsCiAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgICAgICRpZ25vcmVQYXR0ZXJuc1tdID0gc3RydHIoJHBhdHRlcm4sICRyZXBsYWNlbWVudHMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkaW5jbHVkZVBhdHRlcm5zID0gW107CiAgICAgICAgICAgICRwYXR0ZXJucyAgICAgICAgPSAkdGhpcy0+Z2V0SW5jbHVkZVBhdHRlcm5zKCRzbmlmZkNvZGUpOwogICAgICAgICAgICBmb3JlYWNoICgkcGF0dGVybnMgYXMgJHBhdHRlcm4gPT4gJHR5cGUpIHsKICAgICAgICAgICAgICAgICRyZXBsYWNlbWVudHMgPSBbCiAgICAgICAgICAgICAgICAgICAgJ1xcLCcgPT4gJywnLAogICAgICAgICAgICAgICAgICAgICcqJyAgID0+ICcuKicsCiAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgICAgICRpbmNsdWRlUGF0dGVybnNbXSA9IHN0cnRyKCRwYXR0ZXJuLCAkcmVwbGFjZW1lbnRzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJHRva2VucyBhcyAkdG9rZW4pIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+dG9rZW5MaXN0ZW5lcnNbJHRva2VuXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnRva2VuTGlzdGVuZXJzWyR0b2tlbl0gPSBbXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnRva2VuTGlzdGVuZXJzWyR0b2tlbl1bJHNuaWZmQ2xhc3NdKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dG9rZW5MaXN0ZW5lcnNbJHRva2VuXVskc25pZmZDbGFzc10gPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcycgICAgICA9PiAkc25pZmZDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZScgICAgID0+ICRzbmlmZkNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbml6ZXJzJyA9PiAkdG9rZW5pemVycywKICAgICAgICAgICAgICAgICAgICAgICAgJ2lnbm9yZScgICAgID0+ICRpZ25vcmVQYXR0ZXJucywKICAgICAgICAgICAgICAgICAgICAgICAgJ2luY2x1ZGUnICAgID0+ICRpbmNsdWRlUGF0dGVybnMsCiAgICAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgfS8vZW5kIHBvcHVsYXRlVG9rZW5MaXN0ZW5lcnMoKQoKCiAgICAvKioKICAgICAqIFNldCBhIHNpbmdsZSBwcm9wZXJ0eSBmb3IgYSBzbmlmZi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzbmlmZkNsYXNzIFRoZSBjbGFzcyBuYW1lIG9mIHRoZSBzbmlmZi4KICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgICAgICAgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGNoYW5nZS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJHZhbHVlICAgICAgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRTbmlmZlByb3BlcnR5KCRzbmlmZkNsYXNzLCAkbmFtZSwgJHZhbHVlKQogICAgewogICAgICAgIC8vIFNldHRpbmcgYSBwcm9wZXJ0eSBmb3IgYSBzbmlmZiB3ZSBhcmUgbm90IHVzaW5nLgogICAgICAgIGlmIChpc3NldCgkdGhpcy0+c25pZmZzWyRzbmlmZkNsYXNzXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYgKGlzX3N0cmluZygkdmFsdWUpID09PSB0cnVlKSB7CiAgICAgICAgICAgICR2YWx1ZSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkdmFsdWUgPT09ICcnKSB7CiAgICAgICAgICAgICR2YWx1ZSA9IG51bGw7CiAgICAgICAgfQoKICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIGJvb2xlYW5zLgogICAgICAgIGlmICgkdmFsdWUgPT09ICd0cnVlJykgewogICAgICAgICAgICAkdmFsdWUgPSB0cnVlOwogICAgICAgIH0gZWxzZSBpZiAoJHZhbHVlID09PSAnZmFsc2UnKSB7CiAgICAgICAgICAgICR2YWx1ZSA9IGZhbHNlOwogICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRuYW1lLCAtMikgPT09ICdbXScpIHsKICAgICAgICAgICAgJG5hbWUgICA9IHN1YnN0cigkbmFtZSwgMCwgLTIpOwogICAgICAgICAgICAkdmFsdWVzID0gW107CiAgICAgICAgICAgIGlmICgkdmFsdWUgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJywnLCAkdmFsdWUpIGFzICR2YWwpIHsKICAgICAgICAgICAgICAgICAgICBsaXN0KCRrLCAkdikgPSBleHBsb2RlKCc9PicsICR2YWwuJz0+Jyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR2ICE9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWVzW3RyaW0oJGspXSA9IHRyaW0oJHYpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZXNbXSA9IHRyaW0oJGspOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHZhbHVlID0gJHZhbHVlczsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5zbmlmZnNbJHNuaWZmQ2xhc3NdLT4kbmFtZSA9ICR2YWx1ZTsKCiAgICB9Ly9lbmQgc2V0U25pZmZQcm9wZXJ0eSgpCgoKICAgIC8qKgogICAgICogR2V0cyB0aGUgYXJyYXkgb2YgaWdub3JlIHBhdHRlcm5zLgogICAgICoKICAgICAqIE9wdGlvbmFsbHkgdGFrZXMgYSBsaXN0ZW5lciB0byBnZXQgaWdub3JlIHBhdHRlcm5zIHNwZWNpZmllZAogICAgICogZm9yIHRoYXQgc25pZmYgb25seS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsaXN0ZW5lciBUaGUgbGlzdGVuZXIgdG8gZ2V0IHBhdHRlcm5zIGZvci4gSWYgTlVMTCwgYWxsCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJucyBhcmUgcmV0dXJuZWQuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SWdub3JlUGF0dGVybnMoJGxpc3RlbmVyPW51bGwpCiAgICB7CiAgICAgICAgaWYgKCRsaXN0ZW5lciA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmlnbm9yZVBhdHRlcm5zOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5pZ25vcmVQYXR0ZXJuc1skbGlzdGVuZXJdKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmlnbm9yZVBhdHRlcm5zWyRsaXN0ZW5lcl07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gW107CgogICAgfS8vZW5kIGdldElnbm9yZVBhdHRlcm5zKCkKCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBhcnJheSBvZiBpbmNsdWRlIHBhdHRlcm5zLgogICAgICoKICAgICAqIE9wdGlvbmFsbHkgdGFrZXMgYSBsaXN0ZW5lciB0byBnZXQgaW5jbHVkZSBwYXR0ZXJucyBzcGVjaWZpZWQKICAgICAqIGZvciB0aGF0IHNuaWZmIG9ubHkuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbGlzdGVuZXIgVGhlIGxpc3RlbmVyIHRvIGdldCBwYXR0ZXJucyBmb3IuIElmIE5VTEwsIGFsbAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybnMgYXJlIHJldHVybmVkLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldEluY2x1ZGVQYXR0ZXJucygkbGlzdGVuZXI9bnVsbCkKICAgIHsKICAgICAgICBpZiAoJGxpc3RlbmVyID09PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+aW5jbHVkZVBhdHRlcm5zOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5pbmNsdWRlUGF0dGVybnNbJGxpc3RlbmVyXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5pbmNsdWRlUGF0dGVybnNbJGxpc3RlbmVyXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBbXTsKCiAgICB9Ly9lbmQgZ2V0SW5jbHVkZVBhdHRlcm5zKCkKCgp9Ly9lbmQgY2xhc3MKIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoxNjoiXFBIUF9Db2RlU25pZmZlciI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE2OiJcUEhQX0NvZGVTbmlmZmVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IlBIUF9Db2RlU25pZmZlciI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjI0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjQ6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IlJ1bGVzZXQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTA6e3M6MzE6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6JG5hbWUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMxOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OiRuYW1lIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoibmFtZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MzoiVGhlIG5hbWUgb2YgdGhlIGNvZGluZyBzdGFuZGFyZCBiZWluZyB1c2VkLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOTc6IklmIGEgdG9wLWxldmVsIHN0YW5kYXJkIGluY2x1ZGVzIG90aGVyIHN0YW5kYXJkcywgb3Igc25pZmZzCmZyb20gb3RoZXIgc3RhbmRhcmRzLCBvbmx5IHRoZSBuYW1lIG9mIHRoZSB0b3AtbGV2ZWwgc3RhbmRhcmQKd2lsbCBiZSBzdG9yZWQgaW4gaGVyZS4KCklmIG11bHRpcGxlIHRvcC1sZXZlbCBzdGFuZGFyZHMgYXJlIGJlaW5nIGxvYWRlZCBpbnRvCmEgc2luZ2xlIHJ1bGVzZXQgb2JqZWN0LCB0aGlzIHdpbGwgc3RvcmUgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdApvZiB0aGUgdG9wLWxldmVsIHN0YW5kYXJkIG5hbWVzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MTU6IlBIUF9Db2RlU25pZmZlciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6Mjp7czoxNjoiUnVudGltZUV4Y2VwdGlvbiI7czo0MzoiUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiI7czo0OiJVdGlsIjtzOjIwOiJQSFBfQ29kZVNuaWZmZXJcVXRpbCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjI6IicnIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9fXM6MzI6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6JHBhdGhzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjokcGF0aHMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJwYXRocyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NDoiQSBsaXN0IG9mIGZpbGUgcGF0aHMgZm9yIHRoZSBydWxlc2V0IGZpbGVzIGJlaW5nIHVzZWQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiW10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo0MToiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjokaWdub3JlUGF0dGVybnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OiRpZ25vcmVQYXR0ZXJucyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJpZ25vcmVQYXR0ZXJucyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4MzoiQSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCB0byBpZ25vcmUgc3BlY2lmaWMgc25pZmZzIGZvciBmaWxlcyBhbmQgZm9sZGVycy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTQ2OiJJcyBhbHNvIHVzZWQgdG8gc2V0IGdsb2JhbCBleGNsdWRlIHBhdHRlcm5zLgpUaGUga2V5IGlzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gYW5kIHRoZSB2YWx1ZSBpcyB0aGUgdHlwZQpvZiBpZ25vcmUgcGF0dGVybiAoYWJzb2x1dGUgb3IgcmVsYXRpdmUpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiW10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo0MjoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjokaW5jbHVkZVBhdHRlcm5zIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjokaW5jbHVkZVBhdHRlcm5zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6ImluY2x1ZGVQYXR0ZXJucyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo4NDoiQSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCB0byBpbmNsdWRlIHNwZWNpZmljIHNuaWZmcyBmb3IgZmlsZXMgYW5kIGZvbGRlcnMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE1OToiVGhlIGtleSBpcyB0aGUgc25pZmYgY29kZSBhbmQgdGhlIHZhbHVlIGlzIGFuIGFycmF5IHdpdGgKdGhlIGtleSBiZWluZyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgdGhlIHZhbHVlIGlzIHRoZSB0eXBlCm9mIGlnbm9yZSBwYXR0ZXJuIChhYnNvbHV0ZSBvciByZWxhdGl2ZSkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjI6IltdIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9fXM6MzM6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6JHNuaWZmcyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzM6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6JHNuaWZmcyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6InNuaWZmcyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2MToiQW4gYXJyYXkgb2Ygc25pZmYgb2JqZWN0cyB0aGF0IGFyZSBiZWluZyB1c2VkIHRvIGNoZWNrIGZpbGVzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4OToiVGhlIGtleSBpcyB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHNuaWZmIGNsYXNzCmFuZCB0aGUgdmFsdWUgaXMgdGhlIHNuaWZmIG9iamVjdC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyOToiXFBIUF9Db2RlU25pZmZlclxTbmlmZnNcU25pZmYiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJTbmlmZiI7fX1zOjEwOiIAKgBrZXlUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiW10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czozNzoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0Ojokc25pZmZDb2RlcyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6JHNuaWZmQ29kZXMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoic25pZmZDb2RlcyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NjoiQSBtYXBwaW5nIG9mIHNuaWZmIGNvZGVzIHRvIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lcy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODc6IlRoZSBrZXkgaXMgdGhlIHNuaWZmIGNvZGUgYW5kIHRoZSB2YWx1ZQppcyB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHNuaWZmIGNsYXNzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiW10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo0MToiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjokdG9rZW5MaXN0ZW5lcnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OiR0b2tlbkxpc3RlbmVycyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJ0b2tlbkxpc3RlbmVycyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2NzoiQW4gYXJyYXkgb2YgdG9rZW4gdHlwZXMgYW5kIHRoZSBzbmlmZnMgdGhhdCBhcmUgbGlzdGVuaW5nIGZvciB0aGVtLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3OToiVGhlIGtleSBpcyB0aGUgdG9rZW4gbmFtZSBiZWluZyBsaXN0ZW5lZCBmb3IgYW5kIHRoZSB2YWx1ZQppcyB0aGUgc25pZmYgb2JqZWN0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcUEhQX0NvZGVTbmlmZmVyXFNuaWZmc1xTbmlmZiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IlNuaWZmIjt9fXM6MTA6IgAqAGtleVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoyOiJbXSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjkyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX1zOjM0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OiRydWxlc2V0IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNDoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjokcnVsZXNldCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InJ1bGVzZXQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDQ6IkFuIGFycmF5IG9mIHJ1bGVzIGZyb20gdGhlIHJ1bGVzZXQueG1sIGZpbGUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk3OiJJdCBtYXkgYmUgZW1wdHksIGluZGljYXRpbmcgdGhhdCB0aGUgcnVsZXNldCBkb2VzIG5vdCBvdmVycmlkZQphbnkgb2YgdGhlIGRlZmF1bHQgc25pZmYgc2V0dGluZ3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjI6IltdIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czozODoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjokcnVsZXNldERpcnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OiRydWxlc2V0RGlycyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJydWxlc2V0RGlycyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MToiVGhlIGRpcmVjdG9yaWVzIHRoYXQgdGhlIHByb2Nlc3NlZCBydWxlc2V0cyBhcmUgaW4uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiW10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX1zOjMzOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OiRjb25maWciO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMzOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OiRjb25maWciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJjb25maWciO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mjg6IlRoZSBjb25maWcgZGF0YSBmb3IgdGhlIHJ1bi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6IkNvbmZpZyI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6NDoibnVsbCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MTI6e3M6Mzk6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6X19jb25zdHJ1Y3QoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ1OiJJbml0aWFsaXNlIHRoZSBydWxlc2V0IHRoYXQgdGhlIHJ1biB3aWxsIHVzZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjY6ImNvbmZpZyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXFBIUF9Db2RlU25pZmZlclxDb25maWciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJDb25maWciO319czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyODoiVGhlIGNvbmZpZyBkYXRhIGZvciB0aGUgcnVuLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJSdW50aW1lRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI5OiJJZiBubyBzbmlmZnMgd2VyZSByZWdpc3RlcmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Njk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjpfX2NvbnN0cnVjdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Il9fY29uc3RydWN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6ImNvbmZpZyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6IkNvbmZpZyI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM1OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OmV4cGxhaW4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU5OiJQcmludHMgYSByZXBvcnQgc2hvd2luZyB0aGUgc25pZmZzIGNvbnRhaW5lZCBpbiBhIHN0YW5kYXJkLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzU6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6ZXhwbGFpbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiZXhwbGFpbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQyOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OnByb2Nlc3NSdWxlc2V0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3NDoiUHJvY2Vzc2VzIGEgc2luZ2xlIHJ1bGVzZXQgYW5kIHJldHVybnMgYSBsaXN0IG9mIHRoZSBzbmlmZnMgaXQgcmVwcmVzZW50cy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTExOiJSdWxlcyBmb3VuZHMgd2l0aGluIHRoZSBydWxlc2V0IGFyZSBwcm9jZXNzZWQgaW1tZWRpYXRlbHksIGJ1dCBzbmlmZiBjbGFzc2VzCmFyZSBub3QgcmVnaXN0ZXJlZCBieSB0aGlzIG1ldGhvZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo0OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTE6InJ1bGVzZXRQYXRoIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMxOiJUaGUgcGF0aCB0byBhIHJ1bGVzZXQgWE1MIGZpbGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjU6ImRlcHRoIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc5OiJIb3cgbWFueSBuZXN0ZWQgcHJvY2Vzc2luZyBzdGVwcyB3ZSBhcmUgaW4uIFRoaXMKaXMgb25seSB1c2VkIGZvciBkZWJ1ZyBvdXRwdXQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJSdW50aW1lRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjg0OiItIElmIHRoZSBydWxlc2V0IHBhdGggaXMgaW52YWxpZC4KLSBJZiBhIHNwZWNpZmllZCBhdXRvbG9hZCBmaWxlIGNvdWxkIG5vdCBiZSBmb3VuZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6cHJvY2Vzc1J1bGVzZXQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJwcm9jZXNzUnVsZXNldCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMToicnVsZXNldFBhdGgiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJkZXB0aCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6MToiMCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYwNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDg6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6ZXhwYW5kU25pZmZEaXJlY3RvcnkoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU0OiJFeHBhbmRzIGEgZGlyZWN0b3J5IGludG8gYSBsaXN0IG9mIHNuaWZmIGZpbGVzIHdpdGhpbi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6ImRpcmVjdG9yeSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNDoiVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjU6ImRlcHRoIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc5OiJIb3cgbWFueSBuZXN0ZWQgcHJvY2Vzc2luZyBzdGVwcyB3ZSBhcmUgaW4uIFRoaXMKaXMgb25seSB1c2VkIGZvciBkZWJ1ZyBvdXRwdXQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ4OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OmV4cGFuZFNuaWZmRGlyZWN0b3J5KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoiZXhwYW5kU25pZmZEaXJlY3RvcnkiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjk6ImRpcmVjdG9yeSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImRlcHRoIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czoxOiIwIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjY0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1MDoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjpleHBhbmRSdWxlc2V0UmVmZXJlbmNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NToiRXhwYW5kcyBhIHJ1bGVzZXQgcmVmZXJlbmNlIGludG8gYSBsaXN0IG9mIHNuaWZmIGZpbGVzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo1OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MzoicmVmIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQwOiJUaGUgcmVmZXJlbmNlIGZyb20gdGhlIHJ1bGVzZXQgWE1MIGZpbGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjEwOiJydWxlc2V0RGlyIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjcxOiJUaGUgZGlyZWN0b3J5IG9mIHRoZSBydWxlc2V0IFhNTCBmaWxlLCB1c2VkIHRvCmV2YWx1YXRlIHJlbGF0aXZlIHBhdGhzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo1OiJkZXB0aCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3OToiSG93IG1hbnkgbmVzdGVkIHByb2Nlc3Npbmcgc3RlcHMgd2UgYXJlIGluLiBUaGlzCmlzIG9ubHkgdXNlZCBmb3IgZGVidWcgb3V0cHV0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJSdW50aW1lRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI4OiJJZiB0aGUgcmVmZXJlbmNlIGlzIGludmFsaWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OmV4cGFuZFJ1bGVzZXRSZWZlcmVuY2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIyOiJleHBhbmRSdWxlc2V0UmVmZXJlbmNlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJyZWYiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMDoicnVsZXNldERpciI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImRlcHRoIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czoxOiIwIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njc5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODQ3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czozOToiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0Ojpwcm9jZXNzUnVsZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NzE6IlByb2Nlc3NlcyBhIHJ1bGUgZnJvbSBhIHJ1bGVzZXQgWE1MIGZpbGUsIG92ZXJyaWRpbmcgYnVpbHQtaW4gZGVmYXVsdHMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjU6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJydWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE3OiJcU2ltcGxlWE1MRWxlbWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJTaW1wbGVYTUxFbGVtZW50Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDA6IlRoZSBydWxlIG9iamVjdCBmcm9tIGEgcnVsZXNldCBYTUwgZmlsZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6OToibmV3U25pZmZzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTA6IkFuIGFycmF5IG9mIHNuaWZmcyB0aGF0IGdvdCBpbmNsdWRlZCBieSB0aGlzIHJ1bGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjU6ImRlcHRoIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc5OiJIb3cgbWFueSBuZXN0ZWQgcHJvY2Vzc2luZyBzdGVwcyB3ZSBhcmUgaW4uClRoaXMgaXMgb25seSB1c2VkIGZvciBkZWJ1ZyBvdXRwdXQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0O086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlJ1bnRpbWVFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6IklmIHJ1bGUgc2V0dGluZ3MgYXJlIGludmFsaWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OnByb2Nlc3NSdWxlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToicHJvY2Vzc1J1bGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InJ1bGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJuZXdTbmlmZnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJkZXB0aCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6MToiMCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg2MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwOTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQ4OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OnNob3VsZFByb2Nlc3NFbGVtZW50KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NToiRGV0ZXJtaW5lIGlmIGFuIGVsZW1lbnQgc2hvdWxkIGJlIHByb2Nlc3NlZCBvciBpZ25vcmVkLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NzoiZWxlbWVudCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNzoiXFNpbXBsZVhNTEVsZW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiU2ltcGxlWE1MRWxlbWVudCI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM0OiJBbiBvYmplY3QgZnJvbSBhIHJ1bGVzZXQgWE1MIGZpbGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDg6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6c2hvdWxkUHJvY2Vzc0VsZW1lbnQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIwOiJzaG91bGRQcm9jZXNzRWxlbWVudCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoiZWxlbWVudCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTI4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0MjoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjpyZWdpc3RlclNuaWZmcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTY6IkxvYWRzIGFuZCBzdG9yZXMgc25pZmZzIG9iamVjdHMgdXNlZCBmb3Igc25pZmZpbmcgZmlsZXMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo1OiJmaWxlcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzc6IlBhdGhzIHRvIHRoZSBzbmlmZiBmaWxlcyB0byByZWdpc3Rlci4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTI6InJlc3RyaWN0aW9ucyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTk6IlRoZSBzbmlmZiBjbGFzcyBuYW1lcyB0byByZXN0cmljdCB0aGUgYWxsb3dlZApsaXN0ZW5lcnMgdG8uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjEwOiJleGNsdXNpb25zIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1NzoiVGhlIHNuaWZmIGNsYXNzIG5hbWVzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUKbGlzdGVuZXJzIGxpc3QuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OnJlZ2lzdGVyU25pZmZzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoicmVnaXN0ZXJTbmlmZnMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mzp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToiZmlsZXMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMjoicmVzdHJpY3Rpb25zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTA6ImV4Y2x1c2lvbnMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTQyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE5MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NTA6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6cG9wdWxhdGVUb2tlbkxpc3RlbmVycygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6IlBvcHVsYXRlcyB0aGUgYXJyYXkgb2YgUEhQX0NvZGVTbmlmZmVyX1NuaWZmIG9iamVjdHMgZm9yIHRoaXMgZmlsZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlJ1bnRpbWVFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjg6IklmIHNuaWZmIHJlZ2lzdHJhdGlvbiBmYWlscy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTA6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6cG9wdWxhdGVUb2tlbkxpc3RlbmVycygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjI6InBvcHVsYXRlVG9rZW5MaXN0ZW5lcnMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTIwMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyNzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OnNldFNuaWZmUHJvcGVydHkoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM0OiJTZXQgYSBzaW5nbGUgcHJvcGVydHkgZm9yIGEgc25pZmYuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMDoic25pZmZDbGFzcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyODoiVGhlIGNsYXNzIG5hbWUgb2YgdGhlIHNuaWZmLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJuYW1lIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM1OiJUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gY2hhbmdlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo1OiJ2YWx1ZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMDoiVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OnNldFNuaWZmUHJvcGVydHkoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJzZXRTbmlmZlByb3BlcnR5Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJzbmlmZkNsYXNzIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoibmFtZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6InZhbHVlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI4ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzMjg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQ1OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OmdldElnbm9yZVBhdHRlcm5zKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNDoiR2V0cyB0aGUgYXJyYXkgb2YgaWdub3JlIHBhdHRlcm5zLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MToiT3B0aW9uYWxseSB0YWtlcyBhIGxpc3RlbmVyIHRvIGdldCBpZ25vcmUgcGF0dGVybnMgc3BlY2lmaWVkCmZvciB0aGF0IHNuaWZmIG9ubHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjg6Imxpc3RlbmVyIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY5OiJUaGUgbGlzdGVuZXIgdG8gZ2V0IHBhdHRlcm5zIGZvci4gSWYgTlVMTCwgYWxsCnBhdHRlcm5zIGFyZSByZXR1cm5lZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjY5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDo6Z2V0SWdub3JlUGF0dGVybnMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJnZXRJZ25vcmVQYXR0ZXJucyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJsaXN0ZW5lciI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzNDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NjoiXFBIUF9Db2RlU25pZmZlclxSdWxlc2V0OjpnZXRJbmNsdWRlUGF0dGVybnMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM1OiJHZXRzIHRoZSBhcnJheSBvZiBpbmNsdWRlIHBhdHRlcm5zLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MjoiT3B0aW9uYWxseSB0YWtlcyBhIGxpc3RlbmVyIHRvIGdldCBpbmNsdWRlIHBhdHRlcm5zIHNwZWNpZmllZApmb3IgdGhhdCBzbmlmZiBvbmx5LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo4OiJsaXN0ZW5lciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2OToiVGhlIGxpc3RlbmVyIHRvIGdldCBwYXR0ZXJucyBmb3IuIElmIE5VTEwsIGFsbApwYXR0ZXJucyBhcmUgcmV0dXJuZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQ6OmdldEluY2x1ZGVQYXR0ZXJucygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6ImdldEluY2x1ZGVQYXR0ZXJucyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJsaXN0ZW5lciI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzNjg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzgwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTM4MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";