1688054432
waR3U4bTeM%3A8db306deb9fa07f8af6536899d749cdf-84df7d82948f5e7c1891f10ed5bf3b82
s:113056:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDE6IlJlc3BvbnNpYmxlIGZvciBydW5uaW5nIFBIUENTIGFuZCBQSFBDQkYuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk3OiJBZnRlciBjcmVhdGluZyBhbiBvYmplY3Qgb2YgdGhpcyBjbGFzcywgeW91IHByb2JhYmx5IGp1c3Qgd2FudCB0bwpjYWxsIHJ1blBIUENTKCkgb3IgcnVuUEhQQ0JGKCkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjEzOiJHcmVnIFNoZXJ3b29kIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjE5OiJnc2hlcndvb2RAc3F1aXoubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ0OiIyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODA6Imh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI4NGRmN2Q4Mjk0OGY1ZTdjMTg5MWYxMGVkNWJmM2I4MiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEwOiJSdW5uZXIucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDc6InZlbmRvci9zcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyL3NyYy9SdW5uZXIucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czozMTUzMjoiPD9waHAKLyoqCiAqIFJlc3BvbnNpYmxlIGZvciBydW5uaW5nIFBIUENTIGFuZCBQSFBDQkYuCiAqCiAqIEFmdGVyIGNyZWF0aW5nIGFuIG9iamVjdCBvZiB0aGlzIGNsYXNzLCB5b3UgcHJvYmFibHkganVzdCB3YW50IHRvCiAqIGNhbGwgcnVuUEhQQ1MoKSBvciBydW5QSFBDQkYoKS4KICoKICogQGF1dGhvciAgICBHcmVnIFNoZXJ3b29kIDxnc2hlcndvb2RAc3F1aXoubmV0PgogKiBAY29weXJpZ2h0IDIwMDYtMjAxNSBTcXVpeiBQdHkgTHRkIChBQk4gNzcgMDg0IDY3MCA2MDApCiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9naXRodWIuY29tL3NxdWl6bGFicy9QSFBfQ29kZVNuaWZmZXIvYmxvYi9tYXN0ZXIvbGljZW5jZS50eHQgQlNEIExpY2VuY2UKICovCgpuYW1lc3BhY2UgUEhQX0NvZGVTbmlmZmVyOwoKdXNlIFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXERlZXBFeGl0RXhjZXB0aW9uOwp1c2UgUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbjsKdXNlIFBIUF9Db2RlU25pZmZlclxGaWxlc1xEdW1teUZpbGU7CnVzZSBQSFBfQ29kZVNuaWZmZXJcRmlsZXNcRmlsZTsKdXNlIFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlTGlzdDsKdXNlIFBIUF9Db2RlU25pZmZlclxVdGlsXENhY2hlOwp1c2UgUEhQX0NvZGVTbmlmZmVyXFV0aWxcQ29tbW9uOwp1c2UgUEhQX0NvZGVTbmlmZmVyXFV0aWxcU3RhbmRhcmRzOwoKY2xhc3MgUnVubmVyCnsKCiAgICAvKioKICAgICAqIFRoZSBjb25maWcgZGF0YSBmb3IgdGhlIHJ1bi4KICAgICAqCiAgICAgKiBAdmFyIFxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnCiAgICAgKi8KICAgIHB1YmxpYyAkY29uZmlnID0gbnVsbDsKCiAgICAvKioKICAgICAqIFRoZSBydWxlc2V0IHVzZWQgZm9yIHRoZSBydW4uCiAgICAgKgogICAgICogQHZhciBcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQKICAgICAqLwogICAgcHVibGljICRydWxlc2V0ID0gbnVsbDsKCiAgICAvKioKICAgICAqIFRoZSByZXBvcnRlciB1c2VkIGZvciBnZW5lcmF0aW5nIHJlcG9ydHMgYWZ0ZXIgdGhlIHJ1bi4KICAgICAqCiAgICAgKiBAdmFyIFxQSFBfQ29kZVNuaWZmZXJcUmVwb3J0ZXIKICAgICAqLwogICAgcHVibGljICRyZXBvcnRlciA9IG51bGw7CgoKICAgIC8qKgogICAgICogUnVuIHRoZSBQSFBDUyBzY3JpcHQuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcnVuUEhQQ1MoKQogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIFV0aWxcVGltaW5nOjpzdGFydFRpbWluZygpOwogICAgICAgICAgICBSdW5uZXI6OmNoZWNrUmVxdWlyZW1lbnRzKCk7CgogICAgICAgICAgICBpZiAoZGVmaW5lZCgnUEhQX0NPREVTTklGRkVSX0NCRicpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgZGVmaW5lKCdQSFBfQ09ERVNOSUZGRVJfQ0JGJywgZmFsc2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBDcmVhdGluZyB0aGUgQ29uZmlnIG9iamVjdCBwb3B1bGF0ZXMgaXQgd2l0aCBhbGwgcmVxdWlyZWQgc2V0dGluZ3MKICAgICAgICAgICAgLy8gYmFzZWQgb24gdGhlIENMSSBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIHNjcmlwdCBhbmQgYW55IGNvbmZpZwogICAgICAgICAgICAvLyB2YWx1ZXMgdGhlIHVzZXIgaGFzIHNldC4KICAgICAgICAgICAgJHRoaXMtPmNvbmZpZyA9IG5ldyBDb25maWcoKTsKCiAgICAgICAgICAgIC8vIEluaXQgdGhlIHJ1biBhbmQgbG9hZCB0aGUgcnVsZXNldHMgdG8gc2V0IGFkZGl0aW9uYWwgY29uZmlnIHZhcnMuCiAgICAgICAgICAgICR0aGlzLT5pbml0KCk7CgogICAgICAgICAgICAvLyBQcmludCBhIGxpc3Qgb2Ygc25pZmZzIGluIGVhY2ggb2YgdGhlIHN1cHBsaWVkIHN0YW5kYXJkcy4KICAgICAgICAgICAgLy8gV2UgZnVkZ2UgdGhlIGNvbmZpZyBoZXJlIHNvIHRoYXQgZWFjaCBzdGFuZGFyZCBpcyBleHBsYWluZWQgaW4gaXNvbGF0aW9uLgogICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+ZXhwbGFpbiA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHN0YW5kYXJkcyA9ICR0aGlzLT5jb25maWctPnN0YW5kYXJkczsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRzdGFuZGFyZHMgYXMgJHN0YW5kYXJkKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+c3RhbmRhcmRzID0gWyRzdGFuZGFyZF07CiAgICAgICAgICAgICAgICAgICAgJHJ1bGVzZXQgPSBuZXcgUnVsZXNldCgkdGhpcy0+Y29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAkcnVsZXNldC0+ZXhwbGFpbigpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBHZW5lcmF0ZSBkb2N1bWVudGF0aW9uIGZvciBlYWNoIG9mIHRoZSBzdXBwbGllZCBzdGFuZGFyZHMuCiAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5nZW5lcmF0b3IgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgICRzdGFuZGFyZHMgPSAkdGhpcy0+Y29uZmlnLT5zdGFuZGFyZHM7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkc3RhbmRhcmRzIGFzICRzdGFuZGFyZCkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb25maWctPnN0YW5kYXJkcyA9IFskc3RhbmRhcmRdOwogICAgICAgICAgICAgICAgICAgICRydWxlc2V0ICAgPSBuZXcgUnVsZXNldCgkdGhpcy0+Y29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAkY2xhc3MgICAgID0gJ1BIUF9Db2RlU25pZmZlclxHZW5lcmF0b3JzXFwnLiR0aGlzLT5jb25maWctPmdlbmVyYXRvcjsKICAgICAgICAgICAgICAgICAgICAkZ2VuZXJhdG9yID0gbmV3ICRjbGFzcygkcnVsZXNldCk7CiAgICAgICAgICAgICAgICAgICAgJGdlbmVyYXRvci0+Z2VuZXJhdGUoKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gT3RoZXIgcmVwb3J0IGZvcm1hdHMgZG9uJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UgaW4gaW50ZXJhY3RpdmUgbW9kZQogICAgICAgICAgICAvLyBzbyB3ZSBoYXJkLWNvZGUgdGhlIGZ1bGwgcmVwb3J0IGhlcmUgYW5kIHdoZW4gb3V0cHV0dGluZy4KICAgICAgICAgICAgLy8gV2UgYWxzbyBlbnN1cmUgcGFyYWxsZWwgcHJvY2Vzc2luZyBpcyBvZmYgYmVjYXVzZSB3ZSBuZWVkIHRvIGRvIG9uZSBmaWxlIGF0IGEgdGltZS4KICAgICAgICAgICAgaWYgKCR0aGlzLT5jb25maWctPmludGVyYWN0aXZlID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29uZmlnLT5yZXBvcnRzICAgICAgPSBbJ2Z1bGwnID0+IG51bGxdOwogICAgICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+cGFyYWxsZWwgICAgID0gMTsKICAgICAgICAgICAgICAgICR0aGlzLT5jb25maWctPnNob3dQcm9ncmVzcyA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBEaXNhYmxlIGNhY2hpbmcgaWYgd2UgYXJlIHByb2Nlc3NpbmcgU1RESU4gYXMgd2UgY2FuJ3QgYmUgMTAwJQogICAgICAgICAgICAvLyBzdXJlIHdoZXJlIHRoZSBmaWxlIGNhbWUgZnJvbSBvciBpZiBpdCB3aWxsIGNoYW5nZSBpbiB0aGUgZnV0dXJlLgogICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+c3RkaW4gPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5jb25maWctPmNhY2hlID0gZmFsc2U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRudW1FcnJvcnMgPSAkdGhpcy0+cnVuKCk7CgogICAgICAgICAgICAvLyBQcmludCBhbGwgdGhlIHJlcG9ydHMgZm9yIHRoaXMgcnVuLgogICAgICAgICAgICAkdG9TY3JlZW4gPSAkdGhpcy0+cmVwb3J0ZXItPnByaW50UmVwb3J0cygpOwoKICAgICAgICAgICAgLy8gT25seSBwcmludCB0aW1lciBvdXRwdXQgaWYgbm8gcmVwb3J0cyB3ZXJlCiAgICAgICAgICAgIC8vIHByaW50ZWQgdG8gdGhlIHNjcmVlbiBzbyB3ZSBkb24ndCBwdXQgYWRkaXRpb25hbCBvdXRwdXQKICAgICAgICAgICAgLy8gaW4gc29tZXRoaW5nIGxpa2UgYW4gWE1MIHJlcG9ydC4gSWYgd2UgYXJlIHByaW50aW5nIHRvIHNjcmVlbiwKICAgICAgICAgICAgLy8gdGhlIHJlcG9ydCB0eXBlcyB3b3VsZCBoYXZlIGFscmVhZHkgd29ya2VkIG91dCB3aG8gc2hvdWxkCiAgICAgICAgICAgIC8vIHByaW50IHRoZSB0aW1lciBpbmZvLgogICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+aW50ZXJhY3RpdmUgPT09IGZhbHNlCiAgICAgICAgICAgICAgICAmJiAoJHRvU2NyZWVuID09PSBmYWxzZQogICAgICAgICAgICAgICAgfHwgKCgkdGhpcy0+cmVwb3J0ZXItPnRvdGFsRXJyb3JzICsgJHRoaXMtPnJlcG9ydGVyLT50b3RhbFdhcm5pbmdzKSA9PT0gMCAmJiAkdGhpcy0+Y29uZmlnLT5zaG93UHJvZ3Jlc3MgPT09IHRydWUpKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIFV0aWxcVGltaW5nOjpwcmludFJ1blRpbWUoKTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKERlZXBFeGl0RXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIGVjaG8gJGUtPmdldE1lc3NhZ2UoKTsKICAgICAgICAgICAgcmV0dXJuICRlLT5nZXRDb2RlKCk7CiAgICAgICAgfS8vZW5kIHRyeQoKICAgICAgICBpZiAoJG51bUVycm9ycyA9PT0gMCkgewogICAgICAgICAgICAvLyBObyBlcnJvcnMgZm91bmQuCiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0gZWxzZSBpZiAoJHRoaXMtPnJlcG9ydGVyLT50b3RhbEZpeGFibGUgPT09IDApIHsKICAgICAgICAgICAgLy8gRXJyb3JzIGZvdW5kLCBidXQgbm9uZSBvZiB0aGVtIGNhbiBiZSBmaXhlZCBieSBQSFBDQkYuCiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIEVycm9ycyBmb3VuZCwgYW5kIHNvbWUgY2FuIGJlIGZpeGVkIGJ5IFBIUENCRi4KICAgICAgICAgICAgcmV0dXJuIDI7CiAgICAgICAgfQoKICAgIH0vL2VuZCBydW5QSFBDUygpCgoKICAgIC8qKgogICAgICogUnVuIHRoZSBQSFBDQkYgc2NyaXB0LgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJ1blBIUENCRigpCiAgICB7CiAgICAgICAgaWYgKGRlZmluZWQoJ1BIUF9DT0RFU05JRkZFUl9DQkYnKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgZGVmaW5lKCdQSFBfQ09ERVNOSUZGRVJfQ0JGJywgdHJ1ZSk7CiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICBVdGlsXFRpbWluZzo6c3RhcnRUaW1pbmcoKTsKICAgICAgICAgICAgUnVubmVyOjpjaGVja1JlcXVpcmVtZW50cygpOwoKICAgICAgICAgICAgLy8gQ3JlYXRpbmcgdGhlIENvbmZpZyBvYmplY3QgcG9wdWxhdGVzIGl0IHdpdGggYWxsIHJlcXVpcmVkIHNldHRpbmdzCiAgICAgICAgICAgIC8vIGJhc2VkIG9uIHRoZSBDTEkgYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBzY3JpcHQgYW5kIGFueSBjb25maWcKICAgICAgICAgICAgLy8gdmFsdWVzIHRoZSB1c2VyIGhhcyBzZXQuCiAgICAgICAgICAgICR0aGlzLT5jb25maWcgPSBuZXcgQ29uZmlnKCk7CgogICAgICAgICAgICAvLyBXaGVuIHByb2Nlc3NpbmcgU1RESU4sIHdlIGNhbid0IG91dHB1dCBhbnl0aGluZyB0byB0aGUgc2NyZWVuCiAgICAgICAgICAgIC8vIG9yIGl0IHdpbGwgZW5kIHVwIG1peGVkIGluIHdpdGggdGhlIGZpbGUgb3V0cHV0LgogICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+c3RkaW4gPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5jb25maWctPnZlcmJvc2l0eSA9IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIEluaXQgdGhlIHJ1biBhbmQgbG9hZCB0aGUgcnVsZXNldHMgdG8gc2V0IGFkZGl0aW9uYWwgY29uZmlnIHZhcnMuCiAgICAgICAgICAgICR0aGlzLT5pbml0KCk7CgogICAgICAgICAgICAvLyBXaGVuIHByb2Nlc3NpbmcgU1RESU4sIHdlIG9ubHkgcHJvY2VzcyBvbmUgZmlsZSBhdCBhIHRpbWUgYW5kCiAgICAgICAgICAgIC8vIHdlIGRvbid0IHByb2Nlc3MgYWxsIHRoZSB3YXkgdGhyb3VnaCwgc28gd2UgY2FuJ3QgdXNlIHRoZSBwYXJhbGxlbAogICAgICAgICAgICAvLyBydW5uaW5nIHN5c3RlbS4KICAgICAgICAgICAgaWYgKCR0aGlzLT5jb25maWctPnN0ZGluID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29uZmlnLT5wYXJhbGxlbCA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIE92ZXJyaWRlIHNvbWUgb2YgdGhlIGNvbW1hbmQgbGluZSBzZXR0aW5ncyB0aGF0IG1pZ2h0IGJyZWFrIHRoZSBmaXhlcy4KICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+Z2VuZXJhdG9yICAgID0gbnVsbDsKICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+ZXhwbGFpbiAgICAgID0gZmFsc2U7CiAgICAgICAgICAgICR0aGlzLT5jb25maWctPmludGVyYWN0aXZlICA9IGZhbHNlOwogICAgICAgICAgICAkdGhpcy0+Y29uZmlnLT5jYWNoZSAgICAgICAgPSBmYWxzZTsKICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+c2hvd1NvdXJjZXMgID0gZmFsc2U7CiAgICAgICAgICAgICR0aGlzLT5jb25maWctPnJlY29yZEVycm9ycyA9IGZhbHNlOwogICAgICAgICAgICAkdGhpcy0+Y29uZmlnLT5yZXBvcnRGaWxlICAgPSBudWxsOwogICAgICAgICAgICAkdGhpcy0+Y29uZmlnLT5yZXBvcnRzICAgICAgPSBbJ2NiZicgPT4gbnVsbF07CgogICAgICAgICAgICAvLyBJZiBhIHN0YW5kYXJkIHRyaWVzIHRvIHNldCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGl0c2VsZiwgc29tZQogICAgICAgICAgICAvLyBtYXkgYmUgYmxvY2tlZCBiZWNhdXNlIFBIUENCRiBpcyBydW5uaW5nLCBzbyBzdG9wIHRoZSBzY3JpcHQKICAgICAgICAgICAgLy8gZHlpbmcgaWYgYW55IGFyZSBmb3VuZC4KICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+ZGllT25Vbmtub3duQXJnID0gZmFsc2U7CgogICAgICAgICAgICAkdGhpcy0+cnVuKCk7CiAgICAgICAgICAgICR0aGlzLT5yZXBvcnRlci0+cHJpbnRSZXBvcnRzKCk7CgogICAgICAgICAgICBlY2hvIFBIUF9FT0w7CiAgICAgICAgICAgIFV0aWxcVGltaW5nOjpwcmludFJ1blRpbWUoKTsKICAgICAgICB9IGNhdGNoIChEZWVwRXhpdEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICBlY2hvICRlLT5nZXRNZXNzYWdlKCk7CiAgICAgICAgICAgIHJldHVybiAkZS0+Z2V0Q29kZSgpOwogICAgICAgIH0vL2VuZCB0cnkKCiAgICAgICAgaWYgKCR0aGlzLT5yZXBvcnRlci0+dG90YWxGaXhlZCA9PT0gMCkgewogICAgICAgICAgICAvLyBOb3RoaW5nIHdhcyBmaXhlZCBieSBQSFBDQkYuCiAgICAgICAgICAgIGlmICgkdGhpcy0+cmVwb3J0ZXItPnRvdGFsRml4YWJsZSA9PT0gMCkgewogICAgICAgICAgICAgICAgLy8gTm90aGluZyBmb3VuZCB0aGF0IGNvdWxkIGJlIGZpeGVkLgogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBTb21ldGhpbmcgZmFpbGVkIHRvIGZpeC4KICAgICAgICAgICAgICAgIHJldHVybiAyOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPnJlcG9ydGVyLT50b3RhbEZpeGFibGUgPT09IDApIHsKICAgICAgICAgICAgLy8gUEhQQ0JGIGZpeGVkIGFsbCBmaXhhYmxlIGVycm9ycy4KICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQoKICAgICAgICAvLyBQSFBDQkYgZml4ZWQgc29tZSBmaXhhYmxlIGVycm9ycywgYnV0IG90aGVycyBmYWlsZWQgdG8gZml4LgogICAgICAgIHJldHVybiAyOwoKICAgIH0vL2VuZCBydW5QSFBDQkYoKQoKCiAgICAvKioKICAgICAqIEV4aXRzIGlmIHRoZSBtaW5pbXVtIHJlcXVpcmVtZW50cyBvZiBQSFBfQ29kZVNuaWZmZXIgYXJlIG5vdCBtZXQuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAdGhyb3dzIFxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xEZWVwRXhpdEV4Y2VwdGlvbiBJZiB0aGUgcmVxdWlyZW1lbnRzIGFyZSBub3QgbWV0LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tSZXF1aXJlbWVudHMoKQogICAgewogICAgICAgIC8vIENoZWNrIHRoZSBQSFAgdmVyc2lvbi4KICAgICAgICBpZiAoUEhQX1ZFUlNJT05fSUQgPCA1MDQwMCkgewogICAgICAgICAgICAkZXJyb3IgPSAnRVJST1I6IFBIUF9Db2RlU25pZmZlciByZXF1aXJlcyBQSFAgdmVyc2lvbiA1LjQuMCBvciBncmVhdGVyLicuUEhQX0VPTDsKICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgfQoKICAgICAgICAkcmVxdWlyZWRFeHRlbnNpb25zID0gWwogICAgICAgICAgICAndG9rZW5pemVyJywKICAgICAgICAgICAgJ3htbHdyaXRlcicsCiAgICAgICAgICAgICdTaW1wbGVYTUwnLAogICAgICAgIF07CiAgICAgICAgJG1pc3NpbmdFeHRlbnNpb25zICA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkcmVxdWlyZWRFeHRlbnNpb25zIGFzICRleHRlbnNpb24pIHsKICAgICAgICAgICAgaWYgKGV4dGVuc2lvbl9sb2FkZWQoJGV4dGVuc2lvbikgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkbWlzc2luZ0V4dGVuc2lvbnNbXSA9ICRleHRlbnNpb247CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChlbXB0eSgkbWlzc2luZ0V4dGVuc2lvbnMpID09PSBmYWxzZSkgewogICAgICAgICAgICAkbGFzdCAgICAgID0gYXJyYXlfcG9wKCRyZXF1aXJlZEV4dGVuc2lvbnMpOwogICAgICAgICAgICAkcmVxdWlyZWQgID0gaW1wbG9kZSgnLCAnLCAkcmVxdWlyZWRFeHRlbnNpb25zKTsKICAgICAgICAgICAgJHJlcXVpcmVkIC49ICcgYW5kICcuJGxhc3Q7CgogICAgICAgICAgICBpZiAoY291bnQoJG1pc3NpbmdFeHRlbnNpb25zKSA9PT0gMSkgewogICAgICAgICAgICAgICAgJG1pc3NpbmcgPSAkbWlzc2luZ0V4dGVuc2lvbnNbMF07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkbGFzdCAgICAgPSBhcnJheV9wb3AoJG1pc3NpbmdFeHRlbnNpb25zKTsKICAgICAgICAgICAgICAgICRtaXNzaW5nICA9IGltcGxvZGUoJywgJywgJG1pc3NpbmdFeHRlbnNpb25zKTsKICAgICAgICAgICAgICAgICRtaXNzaW5nIC49ICcgYW5kICcuJGxhc3Q7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRlcnJvciA9ICdFUlJPUjogUEhQX0NvZGVTbmlmZmVyIHJlcXVpcmVzIHRoZSAlcyBleHRlbnNpb25zIHRvIGJlIGVuYWJsZWQuIFBsZWFzZSBlbmFibGUgJXMuJy5QSFBfRU9MOwogICAgICAgICAgICAkZXJyb3IgPSBzcHJpbnRmKCRlcnJvciwgJHJlcXVpcmVkLCAkbWlzc2luZyk7CiAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgIH0KCiAgICB9Ly9lbmQgY2hlY2tSZXF1aXJlbWVudHMoKQoKCiAgICAvKioKICAgICAqIEluaXQgdGhlIHJ1bGVzZXRzIGFuZCBvdGhlciBoaWdoLWxldmVsIHNldHRpbmdzLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24gSWYgYSByZWZlcmVuY2VkIHN0YW5kYXJkIGlzIG5vdCBpbnN0YWxsZWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpbml0KCkKICAgIHsKICAgICAgICBpZiAoZGVmaW5lZCgnUEhQX0NPREVTTklGRkVSX0NCRicpID09PSBmYWxzZSkgewogICAgICAgICAgICBkZWZpbmUoJ1BIUF9DT0RFU05JRkZFUl9DQkYnLCBmYWxzZSk7CiAgICAgICAgfQoKICAgICAgICAvLyBFbnN1cmUgdGhpcyBvcHRpb24gaXMgZW5hYmxlZCBvciBlbHNlIGxpbmUgZW5kaW5ncyB3aWxsIG5vdCBhbHdheXMKICAgICAgICAvLyBiZSBkZXRlY3RlZCBwcm9wZXJseSBmb3IgZmlsZXMgY3JlYXRlZCBvbiBhIE1hYyB3aXRoIHRoZSAvciBsaW5lIGVuZGluZy4KICAgICAgICBAaW5pX3NldCgnYXV0b19kZXRlY3RfbGluZV9lbmRpbmdzJywgdHJ1ZSk7CgogICAgICAgIC8vIERpc2FibGUgdGhlIFBDUkUgSklUIGFzIHRoaXMgY2F1c2VkIGlzc3VlcyB3aXRoIHBhcmFsbGVsIHJ1bm5pbmcuCiAgICAgICAgaW5pX3NldCgncGNyZS5qaXQnLCBmYWxzZSk7CgogICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHN0YW5kYXJkcyBhcmUgdmFsaWQuCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmNvbmZpZy0+c3RhbmRhcmRzIGFzICRzdGFuZGFyZCkgewogICAgICAgICAgICBpZiAoVXRpbFxTdGFuZGFyZHM6OmlzSW5zdGFsbGVkU3RhbmRhcmQoJHN0YW5kYXJkKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIC8vIFRoZXkgZGlkbid0IHNlbGVjdCBhIHZhbGlkIGNvZGluZyBzdGFuZGFyZCwgc28gaGVscCB0aGVtCiAgICAgICAgICAgICAgICAvLyBvdXQgYnkgbGV0dGluZyB0aGVtIGtub3cgd2hpY2ggc3RhbmRhcmRzIGFyZSBpbnN0YWxsZWQuCiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnRVJST1I6IHRoZSAiJy4kc3RhbmRhcmQuJyIgY29kaW5nIHN0YW5kYXJkIGlzIG5vdCBpbnN0YWxsZWQuICc7CiAgICAgICAgICAgICAgICBvYl9zdGFydCgpOwogICAgICAgICAgICAgICAgVXRpbFxTdGFuZGFyZHM6OnByaW50SW5zdGFsbGVkU3RhbmRhcmRzKCk7CiAgICAgICAgICAgICAgICAkZXJyb3IgLj0gb2JfZ2V0X2NvbnRlbnRzKCk7CiAgICAgICAgICAgICAgICBvYl9lbmRfY2xlYW4oKTsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBTYXZlcyBwYXNzaW5nIHRoZSBDb25maWcgb2JqZWN0IGludG8gb3RoZXIgb2JqZWN0cyB0aGF0IG9ubHkgbmVlZAogICAgICAgIC8vIHRoZSB2ZXJib3NpdHkgZmxhZyBmb3IgZGVidWcgb3V0cHV0LgogICAgICAgIGlmIChkZWZpbmVkKCdQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZJykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIGRlZmluZSgnUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWScsICR0aGlzLT5jb25maWctPnZlcmJvc2l0eSk7CiAgICAgICAgfQoKICAgICAgICAvLyBDcmVhdGUgdGhpcyBjbGFzcyBzbyBpdCBpcyBhdXRvbG9hZGVkIGFuZCBzZXRzIHVwIGEgYnVuY2gKICAgICAgICAvLyBvZiBQSFBfQ29kZVNuaWZmZXItc3BlY2lmaWMgdG9rZW4gdHlwZSBjb25zdGFudHMuCiAgICAgICAgJHRva2VucyA9IG5ldyBVdGlsXFRva2VucygpOwoKICAgICAgICAvLyBBbGxvdyBhdXRvbG9hZGluZyBvZiBjdXN0b20gZmlsZXMgaW5zaWRlIGluc3RhbGxlZCBzdGFuZGFyZHMuCiAgICAgICAgJGluc3RhbGxlZFN0YW5kYXJkcyA9IFN0YW5kYXJkczo6Z2V0SW5zdGFsbGVkU3RhbmRhcmREZXRhaWxzKCk7CiAgICAgICAgZm9yZWFjaCAoJGluc3RhbGxlZFN0YW5kYXJkcyBhcyAkbmFtZSA9PiAkZGV0YWlscykgewogICAgICAgICAgICBBdXRvbG9hZDo6YWRkU2VhcmNoUGF0aCgkZGV0YWlsc1sncGF0aCddLCAkZGV0YWlsc1snbmFtZXNwYWNlJ10pOwogICAgICAgIH0KCiAgICAgICAgLy8gVGhlIHJ1bGVzZXQgY29udGFpbnMgYWxsIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdGhlIGZpbGVzCiAgICAgICAgLy8gc2hvdWxkIGJlIGNoZWNrZWQgYW5kL29yIGZpeGVkLgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0aGlzLT5ydWxlc2V0ID0gbmV3IFJ1bGVzZXQoJHRoaXMtPmNvbmZpZyk7CiAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkZXJyb3IgID0gJ0VSUk9SOiAnLiRlLT5nZXRNZXNzYWdlKCkuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAkZXJyb3IgLj0gJHRoaXMtPmNvbmZpZy0+cHJpbnRTaG9ydFVzYWdlKHRydWUpOwogICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJGVycm9yLCAzKTsKICAgICAgICB9CgogICAgfS8vZW5kIGluaXQoKQoKCiAgICAvKioKICAgICAqIFBlcmZvcm1zIHRoZSBydW4uCiAgICAgKgogICAgICogQHJldHVybiBpbnQgVGhlIG51bWJlciBvZiBlcnJvcnMgYW5kIHdhcm5pbmdzIGZvdW5kLgogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXFJ1bnRpbWVFeGNlcHRpb24KICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBydW4oKQogICAgewogICAgICAgIC8vIFRoZSBjbGFzcyB0aGF0IG1hbmFnZXMgYWxsIHJlcG9ydGVycyBmb3IgdGhlIHJ1bi4KICAgICAgICAkdGhpcy0+cmVwb3J0ZXIgPSBuZXcgUmVwb3J0ZXIoJHRoaXMtPmNvbmZpZyk7CgogICAgICAgIC8vIEluY2x1ZGUgYm9vdHN0cmFwIGZpbGVzLgogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5jb25maWctPmJvb3RzdHJhcCBhcyAkYm9vdHN0cmFwKSB7CiAgICAgICAgICAgIGluY2x1ZGUgJGJvb3RzdHJhcDsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5zdGRpbiA9PT0gdHJ1ZSkgewogICAgICAgICAgICAkZmlsZUNvbnRlbnRzID0gJHRoaXMtPmNvbmZpZy0+c3RkaW5Db250ZW50OwogICAgICAgICAgICBpZiAoJGZpbGVDb250ZW50cyA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgJGhhbmRsZSA9IGZvcGVuKCdwaHA6Ly9zdGRpbicsICdyJyk7CiAgICAgICAgICAgICAgICBzdHJlYW1fc2V0X2Jsb2NraW5nKCRoYW5kbGUsIHRydWUpOwogICAgICAgICAgICAgICAgJGZpbGVDb250ZW50cyA9IHN0cmVhbV9nZXRfY29udGVudHMoJGhhbmRsZSk7CiAgICAgICAgICAgICAgICBmY2xvc2UoJGhhbmRsZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0b2RvICA9IG5ldyBGaWxlTGlzdCgkdGhpcy0+Y29uZmlnLCAkdGhpcy0+cnVsZXNldCk7CiAgICAgICAgICAgICRkdW1teSA9IG5ldyBEdW1teUZpbGUoJGZpbGVDb250ZW50cywgJHRoaXMtPnJ1bGVzZXQsICR0aGlzLT5jb25maWcpOwogICAgICAgICAgICAkdG9kby0+YWRkRmlsZSgkZHVtbXktPnBhdGgsICRkdW1teSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5jb25maWctPmZpbGVzKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJGVycm9yICA9ICdFUlJPUjogWW91IG11c3Qgc3VwcGx5IGF0IGxlYXN0IG9uZSBmaWxlIG9yIGRpcmVjdG9yeSB0byBwcm9jZXNzLicuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgJGVycm9yIC49ICR0aGlzLT5jb25maWctPnByaW50U2hvcnRVc2FnZSh0cnVlKTsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDApIHsKICAgICAgICAgICAgICAgIGVjaG8gJ0NyZWF0aW5nIGZpbGUgbGlzdC4uLiAnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdG9kbyA9IG5ldyBGaWxlTGlzdCgkdGhpcy0+Y29uZmlnLCAkdGhpcy0+cnVsZXNldCk7CgogICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDApIHsKICAgICAgICAgICAgICAgICRudW1GaWxlcyA9IGNvdW50KCR0b2RvKTsKICAgICAgICAgICAgICAgIGVjaG8gIkRPTkUgKCRudW1GaWxlcyBmaWxlcyBpbiBxdWV1ZSkiLlBIUF9FT0w7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5jYWNoZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnTG9hZGluZyBjYWNoZS4uLiAnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIENhY2hlOjpsb2FkKCR0aGlzLT5ydWxlc2V0LCAkdGhpcy0+Y29uZmlnKTsKCiAgICAgICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAkc2l6ZSA9IENhY2hlOjpnZXRTaXplKCk7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiRE9ORSAoJHNpemUgZmlsZXMgaW4gY2FjaGUpIi5QSFBfRU9MOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIGlmCgogICAgICAgIC8vIFR1cm4gYWxsIHNuaWZmIGVycm9ycyBpbnRvIGV4Y2VwdGlvbnMuCiAgICAgICAgc2V0X2Vycm9yX2hhbmRsZXIoWyR0aGlzLCAnaGFuZGxlRXJyb3JzJ10pOwoKICAgICAgICAvLyBJZiB2ZXJib3NpdHkgaXMgdG9vIGhpZ2gsIHR1cm4gb2ZmIHBhcmFsbGVsaXNtIHNvIHRoZQogICAgICAgIC8vIGRlYnVnIG91dHB1dCBpcyBjbGVhbi4KICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDEpIHsKICAgICAgICAgICAgJHRoaXMtPmNvbmZpZy0+cGFyYWxsZWwgPSAxOwogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIFBDTlRMIGV4dGVuc2lvbiBpc24ndCBpbnN0YWxsZWQsIHdlIGNhbid0IGZvcmsuCiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncGNudGxfZm9yaycpID09PSBmYWxzZSkgewogICAgICAgICAgICAkdGhpcy0+Y29uZmlnLT5wYXJhbGxlbCA9IDE7CiAgICAgICAgfQoKICAgICAgICAkbGFzdERpciAgPSAnJzsKICAgICAgICAkbnVtRmlsZXMgPSBjb3VudCgkdG9kbyk7CgogICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5wYXJhbGxlbCA9PT0gMSkgewogICAgICAgICAgICAvLyBSdW5uaW5nIG5vcm1hbGx5LgogICAgICAgICAgICAkbnVtUHJvY2Vzc2VkID0gMDsKICAgICAgICAgICAgZm9yZWFjaCAoJHRvZG8gYXMgJHBhdGggPT4gJGZpbGUpIHsKICAgICAgICAgICAgICAgIGlmICgkZmlsZS0+aWdub3JlZCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkY3VyckRpciA9IGRpcm5hbWUoJHBhdGgpOwogICAgICAgICAgICAgICAgICAgIGlmICgkbGFzdERpciAhPT0gJGN1cnJEaXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICdDaGFuZ2luZyBpbnRvIGRpcmVjdG9yeSAnLkNvbW1vbjo6c3RyaXBCYXNlcGF0aCgkY3VyckRpciwgJHRoaXMtPmNvbmZpZy0+YmFzZXBhdGgpLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRsYXN0RGlyID0gJGN1cnJEaXI7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cHJvY2Vzc0ZpbGUoJGZpbGUpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMCkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gJ1NraXBwaW5nICcuYmFzZW5hbWUoJGZpbGUtPnBhdGgpLlBIUF9FT0w7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJG51bVByb2Nlc3NlZCsrOwogICAgICAgICAgICAgICAgJHRoaXMtPnByaW50UHJvZ3Jlc3MoJGZpbGUsICRudW1GaWxlcywgJG51bVByb2Nlc3NlZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBCYXRjaGluZyBhbmQgZm9ya2luZy4KICAgICAgICAgICAgJGNoaWxkUHJvY3MgID0gW107CiAgICAgICAgICAgICRudW1QZXJCYXRjaCA9IGNlaWwoJG51bUZpbGVzIC8gJHRoaXMtPmNvbmZpZy0+cGFyYWxsZWwpOwoKICAgICAgICAgICAgZm9yICgkYmF0Y2ggPSAwOyAkYmF0Y2ggPCAkdGhpcy0+Y29uZmlnLT5wYXJhbGxlbDsgJGJhdGNoKyspIHsKICAgICAgICAgICAgICAgICRzdGFydEF0ID0gKCRiYXRjaCAqICRudW1QZXJCYXRjaCk7CiAgICAgICAgICAgICAgICBpZiAoJHN0YXJ0QXQgPj0gJG51bUZpbGVzKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGVuZEF0ID0gKCRzdGFydEF0ICsgJG51bVBlckJhdGNoKTsKICAgICAgICAgICAgICAgIGlmICgkZW5kQXQgPiAkbnVtRmlsZXMpIHsKICAgICAgICAgICAgICAgICAgICAkZW5kQXQgPSAkbnVtRmlsZXM7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGNoaWxkT3V0RmlsZW5hbWUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgJ3BocGNzLWNoaWxkJyk7CiAgICAgICAgICAgICAgICAkcGlkID0gcGNudGxfZm9yaygpOwogICAgICAgICAgICAgICAgaWYgKCRwaWQgPT09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oJ0ZhaWxlZCB0byBjcmVhdGUgY2hpbGQgcHJvY2VzcycpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkcGlkICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgJGNoaWxkUHJvY3NbJHBpZF0gPSAkY2hpbGRPdXRGaWxlbmFtZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gTW92ZSBmb3J3YXJkIHRvIHRoZSBzdGFydCBvZiB0aGUgYmF0Y2guCiAgICAgICAgICAgICAgICAgICAgJHRvZG8tPnJld2luZCgpOwogICAgICAgICAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRzdGFydEF0OyAkaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0b2RvLT5uZXh0KCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgcmVwb3J0ZXIgdG8gbWFrZSBzdXJlIG9ubHkgZmlndXJlcyBmcm9tIHRoaXMKICAgICAgICAgICAgICAgICAgICAvLyBmaWxlIGJhdGNoIGFyZSByZWNvcmRlZC4KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cmVwb3J0ZXItPnRvdGFsRmlsZXMgICAgPSAwOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5yZXBvcnRlci0+dG90YWxFcnJvcnMgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlcG9ydGVyLT50b3RhbFdhcm5pbmdzID0gMDsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cmVwb3J0ZXItPnRvdGFsRml4YWJsZSAgPSAwOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5yZXBvcnRlci0+dG90YWxGaXhlZCAgICA9IDA7CgogICAgICAgICAgICAgICAgICAgIC8vIFByb2Nlc3MgdGhlIGZpbGVzLgogICAgICAgICAgICAgICAgICAgICRwYXRoc1Byb2Nlc3NlZCA9IFtdOwogICAgICAgICAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yICgkaSA9ICRzdGFydEF0OyAkaSA8ICRlbmRBdDsgJGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAkcGF0aCA9ICR0b2RvLT5rZXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbGUgPSAkdG9kby0+Y3VycmVudCgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmaWxlLT5pZ25vcmVkID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdG9kby0+bmV4dCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRjdXJyRGlyID0gZGlybmFtZSgkcGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGFzdERpciAhPT0gJGN1cnJEaXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJ0NoYW5naW5nIGludG8gZGlyZWN0b3J5ICcuQ29tbW9uOjpzdHJpcEJhc2VwYXRoKCRjdXJyRGlyLCAkdGhpcy0+Y29uZmlnLT5iYXNlcGF0aCkuUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGFzdERpciA9ICRjdXJyRGlyOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cHJvY2Vzc0ZpbGUoJGZpbGUpOwoKICAgICAgICAgICAgICAgICAgICAgICAgJHBhdGhzUHJvY2Vzc2VkW10gPSAkcGF0aDsKICAgICAgICAgICAgICAgICAgICAgICAgJHRvZG8tPm5leHQoKTsKICAgICAgICAgICAgICAgICAgICB9Ly9lbmQgZm9yCgogICAgICAgICAgICAgICAgICAgICRkZWJ1Z091dHB1dCA9IG9iX2dldF9jb250ZW50cygpOwogICAgICAgICAgICAgICAgICAgIG9iX2VuZF9jbGVhbigpOwoKICAgICAgICAgICAgICAgICAgICAvLyBXcml0ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcnVuIHRvIHRoZSBmaWxlc3lzdGVtCiAgICAgICAgICAgICAgICAgICAgLy8gc28gaXQgY2FuIGJlIHBpY2tlZCB1cCBieSB0aGUgbWFpbiBwcm9jZXNzLgogICAgICAgICAgICAgICAgICAgICRjaGlsZE91dHB1dCA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsRmlsZXMnICAgID0+ICR0aGlzLT5yZXBvcnRlci0+dG90YWxGaWxlcywKICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsRXJyb3JzJyAgID0+ICR0aGlzLT5yZXBvcnRlci0+dG90YWxFcnJvcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICd0b3RhbFdhcm5pbmdzJyA9PiAkdGhpcy0+cmVwb3J0ZXItPnRvdGFsV2FybmluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICd0b3RhbEZpeGFibGUnICA9PiAkdGhpcy0+cmVwb3J0ZXItPnRvdGFsRml4YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsRml4ZWQnICAgID0+ICR0aGlzLT5yZXBvcnRlci0+dG90YWxGaXhlZCwKICAgICAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgICAgICAgICAkb3V0cHV0ICA9ICc8Jy4nP3BocCcuIlxuIi4nICRjaGlsZE91dHB1dCA9ICc7CiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCAuPSB2YXJfZXhwb3J0KCRjaGlsZE91dHB1dCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCAuPSAiO1xuXCRkZWJ1Z091dHB1dCA9ICI7CiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCAuPSB2YXJfZXhwb3J0KCRkZWJ1Z091dHB1dCwgdHJ1ZSk7CgogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5jYWNoZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkY2hpbGRDYWNoZSA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGF0aHNQcm9jZXNzZWQgYXMgJHBhdGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjaGlsZENhY2hlWyRwYXRoXSA9IENhY2hlOjpnZXQoJHBhdGgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cHV0IC49ICI7XG5cJGNoaWxkQ2FjaGUgPSAiOwogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cHV0IC49IHZhcl9leHBvcnQoJGNoaWxkQ2FjaGUsIHRydWUpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCAuPSAiO1xuPyIuJz4nOwogICAgICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRjaGlsZE91dEZpbGVuYW1lLCAkb3V0cHV0KTsKICAgICAgICAgICAgICAgICAgICBleGl0KCk7CiAgICAgICAgICAgICAgICB9Ly9lbmQgaWYKICAgICAgICAgICAgfS8vZW5kIGZvcgoKICAgICAgICAgICAgJHN1Y2Nlc3MgPSAkdGhpcy0+cHJvY2Vzc0NoaWxkUHJvY3MoJGNoaWxkUHJvY3MpOwogICAgICAgICAgICBpZiAoJHN1Y2Nlc3MgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbignT25lIG9yIG1vcmUgY2hpbGQgcHJvY2Vzc2VzIGZhaWxlZCB0byBydW4nKTsKICAgICAgICAgICAgfQogICAgICAgIH0vL2VuZCBpZgoKICAgICAgICByZXN0b3JlX2Vycm9yX2hhbmRsZXIoKTsKCiAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPT09IDAKICAgICAgICAgICAgJiYgJHRoaXMtPmNvbmZpZy0+aW50ZXJhY3RpdmUgPT09IGZhbHNlCiAgICAgICAgICAgICYmICR0aGlzLT5jb25maWctPnNob3dQcm9ncmVzcyA9PT0gdHJ1ZQogICAgICAgICkgewogICAgICAgICAgICBlY2hvIFBIUF9FT0wuUEhQX0VPTDsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5jYWNoZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICBDYWNoZTo6c2F2ZSgpOwogICAgICAgIH0KCiAgICAgICAgJGlnbm9yZVdhcm5pbmdzID0gQ29uZmlnOjpnZXRDb25maWdEYXRhKCdpZ25vcmVfd2FybmluZ3Nfb25fZXhpdCcpOwogICAgICAgICRpZ25vcmVFcnJvcnMgICA9IENvbmZpZzo6Z2V0Q29uZmlnRGF0YSgnaWdub3JlX2Vycm9yc19vbl9leGl0Jyk7CgogICAgICAgICRyZXR1cm4gPSAoJHRoaXMtPnJlcG9ydGVyLT50b3RhbEVycm9ycyArICR0aGlzLT5yZXBvcnRlci0+dG90YWxXYXJuaW5ncyk7CiAgICAgICAgaWYgKCRpZ25vcmVFcnJvcnMgIT09IG51bGwpIHsKICAgICAgICAgICAgJGlnbm9yZUVycm9ycyA9IChib29sKSAkaWdub3JlRXJyb3JzOwogICAgICAgICAgICBpZiAoJGlnbm9yZUVycm9ycyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHJldHVybiAtPSAkdGhpcy0+cmVwb3J0ZXItPnRvdGFsRXJyb3JzOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJGlnbm9yZVdhcm5pbmdzICE9PSBudWxsKSB7CiAgICAgICAgICAgICRpZ25vcmVXYXJuaW5ncyA9IChib29sKSAkaWdub3JlV2FybmluZ3M7CiAgICAgICAgICAgIGlmICgkaWdub3JlV2FybmluZ3MgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICRyZXR1cm4gLT0gJHRoaXMtPnJlcG9ydGVyLT50b3RhbFdhcm5pbmdzOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJldHVybjsKCiAgICB9Ly9lbmQgcnVuKCkKCgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhbGwgUEhQIGVycm9ycyBpbnRvIGV4Y2VwdGlvbnMuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgZm9yY2VzIGEgc25pZmYgdG8gc3RvcCBwcm9jZXNzaW5nIGlmIGl0IGlzIG5vdAogICAgICogYWJsZSB0byBoYW5kbGUgYSBzcGVjaWZpYyBwaWVjZSBvZiBjb2RlLCBpbnN0ZWFkIG9mIGNvbnRpbnVpbmcKICAgICAqIGFuZCBwb3RlbnRpYWxseSBnZXR0aW5nIGludG8gYSBsb29wLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgICAgJGNvZGUgICAgVGhlIGxldmVsIG9mIGVycm9yIHJhaXNlZC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRmaWxlICAgIFRoZSBwYXRoIG9mIHRoZSBmaWxlIHRoYXQgcmFpc2VkIHRoZSBlcnJvci4KICAgICAqIEBwYXJhbSBpbnQgICAgJGxpbmUgICAgVGhlIGxpbmUgbnVtYmVyIHRoZSBlcnJvciB3YXMgcmFpc2VkIGF0LgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlRXJyb3JzKCRjb2RlLCAkbWVzc2FnZSwgJGZpbGUsICRsaW5lKQogICAgewogICAgICAgIGlmICgoZXJyb3JfcmVwb3J0aW5nKCkgJiAkY29kZSkgPT09IDApIHsKICAgICAgICAgICAgLy8gVGhpcyB0eXBlIG9mIGVycm9yIGlzIGJlaW5nIG11dGVkLgogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCIkbWVzc2FnZSBpbiAkZmlsZSBvbiBsaW5lICRsaW5lIik7CgogICAgfS8vZW5kIGhhbmRsZUVycm9ycygpCgoKICAgIC8qKgogICAgICogUHJvY2Vzc2VzIGEgc2luZ2xlIGZpbGUsIGluY2x1ZGluZyBjaGVja2luZyBhbmQgZml4aW5nLgogICAgICoKICAgICAqIEBwYXJhbSBcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUgJGZpbGUgVGhlIGZpbGUgdG8gYmUgcHJvY2Vzc2VkLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NGaWxlKCRmaWxlKQogICAgewogICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMCkgewogICAgICAgICAgICAkc3RhcnRUaW1lID0gbWljcm90aW1lKHRydWUpOwogICAgICAgICAgICBlY2hvICdQcm9jZXNzaW5nICcuYmFzZW5hbWUoJGZpbGUtPnBhdGgpLicgJzsKICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9WRVJCT1NJVFkgPiAxKSB7CiAgICAgICAgICAgICAgICBlY2hvIFBIUF9FT0w7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRmaWxlLT5wcm9jZXNzKCk7CgogICAgICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSA+IDApIHsKICAgICAgICAgICAgICAgICR0aW1lVGFrZW4gPSAoKG1pY3JvdGltZSh0cnVlKSAtICRzdGFydFRpbWUpICogMTAwMCk7CiAgICAgICAgICAgICAgICBpZiAoJHRpbWVUYWtlbiA8IDEwMDApIHsKICAgICAgICAgICAgICAgICAgICAkdGltZVRha2VuID0gcm91bmQoJHRpbWVUYWtlbik7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiRE9ORSBpbiB7JHRpbWVUYWtlbn1tcyI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0aW1lVGFrZW4gPSByb3VuZCgoJHRpbWVUYWtlbiAvIDEwMDApLCAyKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICJET05FIGluICR0aW1lVGFrZW4gc2VjcyI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9DQkYgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3JzID0gJGZpbGUtPmdldEZpeGFibGVDb3VudCgpOwogICAgICAgICAgICAgICAgICAgIGVjaG8gIiAoJGVycm9ycyBmaXhhYmxlIHZpb2xhdGlvbnMpIi5QSFBfRU9MOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3JzICAgPSAkZmlsZS0+Z2V0RXJyb3JDb3VudCgpOwogICAgICAgICAgICAgICAgICAgICR3YXJuaW5ncyA9ICRmaWxlLT5nZXRXYXJuaW5nQ291bnQoKTsKICAgICAgICAgICAgICAgICAgICBlY2hvICIgKCRlcnJvcnMgZXJyb3JzLCAkd2FybmluZ3Mgd2FybmluZ3MpIi5QSFBfRU9MOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgewogICAgICAgICAgICAkZXJyb3IgPSAnQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHByb2Nlc3Npbmc7IGNoZWNraW5nIGhhcyBiZWVuIGFib3J0ZWQuIFRoZSBlcnJvciBtZXNzYWdlIHdhczogJy4kZS0+Z2V0TWVzc2FnZSgpOwogICAgICAgICAgICAkZmlsZS0+YWRkRXJyb3JPbkxpbmUoJGVycm9yLCAxLCAnSW50ZXJuYWwuRXhjZXB0aW9uJyk7CiAgICAgICAgfS8vZW5kIHRyeQoKICAgICAgICAkdGhpcy0+cmVwb3J0ZXItPmNhY2hlRmlsZVJlcG9ydCgkZmlsZSwgJHRoaXMtPmNvbmZpZyk7CgogICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5pbnRlcmFjdGl2ZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgUnVubmluZyBpbnRlcmFjdGl2ZWx5LgogICAgICAgICAgICAgICAgUHJpbnQgdGhlIGVycm9yIHJlcG9ydCBmb3IgdGhlIGN1cnJlbnQgZmlsZSBhbmQgdGhlbiB3YWl0IGZvciB1c2VyIGlucHV0LgogICAgICAgICAgICAqLwoKICAgICAgICAgICAgLy8gR2V0IGN1cnJlbnQgdmlvbGF0aW9ucyBhbmQgdGhlbiBjbGVhciB0aGUgbGlzdCB0byBtYWtlIHN1cmUKICAgICAgICAgICAgLy8gd2Ugb25seSBwcmludCB2aW9sYXRpb25zIGZvciBhIHNpbmdsZSBmaWxlIGVhY2ggdGltZS4KICAgICAgICAgICAgJG51bUVycm9ycyA9IG51bGw7CiAgICAgICAgICAgIHdoaWxlICgkbnVtRXJyb3JzICE9PSAwKSB7CiAgICAgICAgICAgICAgICAkbnVtRXJyb3JzID0gKCRmaWxlLT5nZXRFcnJvckNvdW50KCkgKyAkZmlsZS0+Z2V0V2FybmluZ0NvdW50KCkpOwogICAgICAgICAgICAgICAgaWYgKCRudW1FcnJvcnMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+cmVwb3J0ZXItPnByaW50UmVwb3J0KCdmdWxsJyk7CgogICAgICAgICAgICAgICAgZWNobyAnPEVOVEVSPiB0byByZWNoZWNrLCBbc10gdG8gc2tpcCBvciBbcV0gdG8gcXVpdCA6ICc7CiAgICAgICAgICAgICAgICAkaW5wdXQgPSBmZ2V0cyhTVERJTik7CiAgICAgICAgICAgICAgICAkaW5wdXQgPSB0cmltKCRpbnB1dCk7CgogICAgICAgICAgICAgICAgc3dpdGNoICgkaW5wdXQpIHsKICAgICAgICAgICAgICAgIGNhc2UgJ3MnOgogICAgICAgICAgICAgICAgICAgIGJyZWFrKDIpOwogICAgICAgICAgICAgICAgY2FzZSAncSc6CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCcnLCAwKTsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgLy8gUmVwb3B1bGF0ZSB0aGUgc25pZmZzIGJlY2F1c2Ugc29tZSBvZiB0aGVtIHNhdmUgdGhlaXIgc3RhdGUKICAgICAgICAgICAgICAgICAgICAvLyBhbmQgb25seSBjbGVhciBpdCB3aGVuIHRoZSBmaWxlIGNoYW5nZXMsIGJ1dCB3ZSBhcmUgcmVjaGVja2luZwogICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzYW1lIGZpbGUuCiAgICAgICAgICAgICAgICAgICAgJGZpbGUtPnJ1bGVzZXQtPnBvcHVsYXRlVG9rZW5MaXN0ZW5lcnMoKTsKICAgICAgICAgICAgICAgICAgICAkZmlsZS0+cmVsb2FkQ29udGVudCgpOwogICAgICAgICAgICAgICAgICAgICRmaWxlLT5wcm9jZXNzKCk7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlcG9ydGVyLT5jYWNoZUZpbGVSZXBvcnQoJGZpbGUsICR0aGlzLT5jb25maWcpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Ly9lbmQgd2hpbGUKICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgLy8gQ2xlYW4gdXAgdGhlIGZpbGUgdG8gc2F2ZSAoYSBsb3Qgb2YpIG1lbW9yeS4KICAgICAgICAkZmlsZS0+Y2xlYW5VcCgpOwoKICAgIH0vL2VuZCBwcm9jZXNzRmlsZSgpCgoKICAgIC8qKgogICAgICogV2FpdHMgZm9yIGNoaWxkIHByb2Nlc3NlcyB0byBjb21wbGV0ZSBhbmQgY2xlYW5zIHVwIGFmdGVyIHRoZW0uCiAgICAgKgogICAgICogVGhlIHJlcG9ydGluZyBpbmZvcm1hdGlvbiByZXR1cm5lZCBieSBlYWNoIGNoaWxkIHByb2Nlc3MgaXMgbWVyZ2VkCiAgICAgKiBpbnRvIHRoZSBtYWluIHJlcG9ydGVyIGNsYXNzLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkY2hpbGRQcm9jcyBBbiBhcnJheSBvZiBjaGlsZCBwcm9jZXNzZXMgdG8gd2FpdCBmb3IuCiAgICAgKgogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gcHJvY2Vzc0NoaWxkUHJvY3MoJGNoaWxkUHJvY3MpCiAgICB7CiAgICAgICAgJG51bVByb2Nlc3NlZCA9IDA7CiAgICAgICAgJHRvdGFsQmF0Y2hlcyA9IGNvdW50KCRjaGlsZFByb2NzKTsKCiAgICAgICAgJHN1Y2Nlc3MgPSB0cnVlOwoKICAgICAgICB3aGlsZSAoY291bnQoJGNoaWxkUHJvY3MpID4gMCkgewogICAgICAgICAgICAkcGlkID0gcGNudGxfd2FpdHBpZCgwLCAkc3RhdHVzKTsKICAgICAgICAgICAgaWYgKCRwaWQgPD0gMCkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRvdXQgPSAkY2hpbGRQcm9jc1skcGlkXTsKICAgICAgICAgICAgdW5zZXQoJGNoaWxkUHJvY3NbJHBpZF0pOwogICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJG91dCkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaW5jbHVkZSAkb3V0OwogICAgICAgICAgICB1bmxpbmsoJG91dCk7CgogICAgICAgICAgICAkbnVtUHJvY2Vzc2VkKys7CgogICAgICAgICAgICBpZiAoaXNzZXQoJGNoaWxkT3V0cHV0KSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIC8vIFRoZSBjaGlsZCBwcm9jZXNzIGRpZWQsIHNvIHRoZSBydW4gaGFzIGZhaWxlZC4KICAgICAgICAgICAgICAgICRmaWxlID0gbmV3IER1bW15RmlsZSgnJywgJHRoaXMtPnJ1bGVzZXQsICR0aGlzLT5jb25maWcpOwogICAgICAgICAgICAgICAgJGZpbGUtPnNldEVycm9yQ291bnRzKDEsIDAsIDAsIDApOwogICAgICAgICAgICAgICAgJHRoaXMtPnByaW50UHJvZ3Jlc3MoJGZpbGUsICR0b3RhbEJhdGNoZXMsICRudW1Qcm9jZXNzZWQpOwogICAgICAgICAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdGhpcy0+cmVwb3J0ZXItPnRvdGFsRmlsZXMgICAgKz0gJGNoaWxkT3V0cHV0Wyd0b3RhbEZpbGVzJ107CiAgICAgICAgICAgICR0aGlzLT5yZXBvcnRlci0+dG90YWxFcnJvcnMgICArPSAkY2hpbGRPdXRwdXRbJ3RvdGFsRXJyb3JzJ107CiAgICAgICAgICAgICR0aGlzLT5yZXBvcnRlci0+dG90YWxXYXJuaW5ncyArPSAkY2hpbGRPdXRwdXRbJ3RvdGFsV2FybmluZ3MnXTsKICAgICAgICAgICAgJHRoaXMtPnJlcG9ydGVyLT50b3RhbEZpeGFibGUgICs9ICRjaGlsZE91dHB1dFsndG90YWxGaXhhYmxlJ107CiAgICAgICAgICAgICR0aGlzLT5yZXBvcnRlci0+dG90YWxGaXhlZCAgICArPSAkY2hpbGRPdXRwdXRbJ3RvdGFsRml4ZWQnXTsKCiAgICAgICAgICAgIGlmIChpc3NldCgkZGVidWdPdXRwdXQpID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBlY2hvICRkZWJ1Z091dHB1dDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGlzc2V0KCRjaGlsZENhY2hlKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGNoaWxkQ2FjaGUgYXMgJHBhdGggPT4gJGNhY2hlKSB7CiAgICAgICAgICAgICAgICAgICAgQ2FjaGU6OnNldCgkcGF0aCwgJGNhY2hlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gRmFrZSBhIHByb2Nlc3NlZCBmaWxlIHNvIHdlIGNhbiBwcmludCBwcm9ncmVzcyBvdXRwdXQgZm9yIHRoZSBiYXRjaC4KICAgICAgICAgICAgJGZpbGUgPSBuZXcgRHVtbXlGaWxlKCcnLCAkdGhpcy0+cnVsZXNldCwgJHRoaXMtPmNvbmZpZyk7CiAgICAgICAgICAgICRmaWxlLT5zZXRFcnJvckNvdW50cygKICAgICAgICAgICAgICAgICRjaGlsZE91dHB1dFsndG90YWxFcnJvcnMnXSwKICAgICAgICAgICAgICAgICRjaGlsZE91dHB1dFsndG90YWxXYXJuaW5ncyddLAogICAgICAgICAgICAgICAgJGNoaWxkT3V0cHV0Wyd0b3RhbEZpeGFibGUnXSwKICAgICAgICAgICAgICAgICRjaGlsZE91dHB1dFsndG90YWxGaXhlZCddCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICR0aGlzLT5wcmludFByb2dyZXNzKCRmaWxlLCAkdG90YWxCYXRjaGVzLCAkbnVtUHJvY2Vzc2VkKTsKICAgICAgICB9Ly9lbmQgd2hpbGUKCiAgICAgICAgcmV0dXJuICRzdWNjZXNzOwoKICAgIH0vL2VuZCBwcm9jZXNzQ2hpbGRQcm9jcygpCgoKICAgIC8qKgogICAgICogUHJpbnQgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gZm9yIGEgc2luZ2xlIHByb2Nlc3NlZCBmaWxlLgogICAgICoKICAgICAqIEBwYXJhbSBcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUgJGZpbGUgICAgICAgICBUaGUgZmlsZSB0aGF0IHdhcyBwcm9jZXNzZWQuCiAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgICAgICAgICAgICAgICRudW1GaWxlcyAgICAgVGhlIHRvdGFsIG51bWJlciBvZiBmaWxlcyB0byBwcm9jZXNzLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICAgICAgICAgICAgICAkbnVtUHJvY2Vzc2VkIFRoZSBudW1iZXIgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gcHJvY2Vzc2VkLAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyB0aGlzIG9uZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByaW50UHJvZ3Jlc3MoRmlsZSAkZmlsZSwgJG51bUZpbGVzLCAkbnVtUHJvY2Vzc2VkKQogICAgewogICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZID4gMAogICAgICAgICAgICB8fCAkdGhpcy0+Y29uZmlnLT5zaG93UHJvZ3Jlc3MgPT09IGZhbHNlCiAgICAgICAgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIC8vIFNob3cgcHJvZ3Jlc3MgaW5mb3JtYXRpb24uCiAgICAgICAgaWYgKCRmaWxlLT5pZ25vcmVkID09PSB0cnVlKSB7CiAgICAgICAgICAgIGVjaG8gJ1MnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRlcnJvcnMgICA9ICRmaWxlLT5nZXRFcnJvckNvdW50KCk7CiAgICAgICAgICAgICR3YXJuaW5ncyA9ICRmaWxlLT5nZXRXYXJuaW5nQ291bnQoKTsKICAgICAgICAgICAgJGZpeGFibGUgID0gJGZpbGUtPmdldEZpeGFibGVDb3VudCgpOwogICAgICAgICAgICAkZml4ZWQgICAgPSAkZmlsZS0+Z2V0Rml4ZWRDb3VudCgpOwoKICAgICAgICAgICAgaWYgKFBIUF9DT0RFU05JRkZFUl9DQkYgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIC8vIEZpbGVzIHdpdGggZml4ZWQgZXJyb3JzIG9yIHdhcm5pbmdzIGFyZSBGIChncmVlbikuCiAgICAgICAgICAgICAgICAvLyBGaWxlcyB3aXRoIHVuZml4YWJsZSBlcnJvcnMgb3Igd2FybmluZ3MgYXJlIEUgKHJlZCkuCiAgICAgICAgICAgICAgICAvLyBGaWxlcyB3aXRoIG5vIGVycm9ycyBvciB3YXJuaW5ncyBhcmUgLiAoYmxhY2spLgogICAgICAgICAgICAgICAgaWYgKCRmaXhhYmxlID4gMCkgewogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5jb2xvcnMgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXDAzM1szMW0iOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgZWNobyAnRSc7CgogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5jb2xvcnMgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXDAzM1swbSI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZml4ZWQgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5jb25maWctPmNvbG9ycyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJcMDMzWzMybSI7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBlY2hvICdGJzsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5jb25maWctPmNvbG9ycyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJcMDMzWzBtIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGVjaG8gJy4nOwogICAgICAgICAgICAgICAgfS8vZW5kIGlmCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBGaWxlcyB3aXRoIGVycm9ycyBhcmUgRSAocmVkKS4KICAgICAgICAgICAgICAgIC8vIEZpbGVzIHdpdGggZml4YWJsZSBlcnJvcnMgYXJlIEUgKGdyZWVuKS4KICAgICAgICAgICAgICAgIC8vIEZpbGVzIHdpdGggd2FybmluZ3MgYXJlIFcgKHllbGxvdykuCiAgICAgICAgICAgICAgICAvLyBGaWxlcyB3aXRoIGZpeGFibGUgd2FybmluZ3MgYXJlIFcgKGdyZWVuKS4KICAgICAgICAgICAgICAgIC8vIEZpbGVzIHdpdGggbm8gZXJyb3JzIG9yIHdhcm5pbmdzIGFyZSAuIChibGFjaykuCiAgICAgICAgICAgICAgICBpZiAoJGVycm9ycyA+IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+Y29sb3JzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZml4YWJsZSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlwwMzNbMzJtIjsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlwwMzNbMzFtIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgZWNobyAnRSc7CgogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnLT5jb2xvcnMgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiXDAzM1swbSI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkd2FybmluZ3MgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5jb25maWctPmNvbG9ycyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZpeGFibGUgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJcMDMzWzMybSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJcMDMzWzMzbSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGVjaG8gJ1cnOwoKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZy0+Y29sb3JzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlwwMzNbMG0iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnLic7CiAgICAgICAgICAgICAgICB9Ly9lbmQgaWYKICAgICAgICAgICAgfS8vZW5kIGlmCiAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICRudW1QZXJMaW5lID0gNjA7CiAgICAgICAgaWYgKCRudW1Qcm9jZXNzZWQgIT09ICRudW1GaWxlcyAmJiAoJG51bVByb2Nlc3NlZCAlICRudW1QZXJMaW5lKSAhPT0gMCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkcGVyY2VudCA9IHJvdW5kKCgkbnVtUHJvY2Vzc2VkIC8gJG51bUZpbGVzKSAqIDEwMCk7CiAgICAgICAgJHBhZGRpbmcgPSAoc3RybGVuKCRudW1GaWxlcykgLSBzdHJsZW4oJG51bVByb2Nlc3NlZCkpOwogICAgICAgIGlmICgkbnVtUHJvY2Vzc2VkID09PSAkbnVtRmlsZXMKICAgICAgICAgICAgJiYgJG51bUZpbGVzID4gJG51bVBlckxpbmUKICAgICAgICAgICAgJiYgKCRudW1Qcm9jZXNzZWQgJSAkbnVtUGVyTGluZSkgIT09IDAKICAgICAgICApIHsKICAgICAgICAgICAgJHBhZGRpbmcgKz0gKCRudW1QZXJMaW5lIC0gKCRudW1GaWxlcyAtIChmbG9vcigkbnVtRmlsZXMgLyAkbnVtUGVyTGluZSkgKiAkbnVtUGVyTGluZSkpKTsKICAgICAgICB9CgogICAgICAgIGVjaG8gc3RyX3JlcGVhdCgnICcsICRwYWRkaW5nKS4iICRudW1Qcm9jZXNzZWQgLyAkbnVtRmlsZXMgKCRwZXJjZW50JSkiLlBIUF9FT0w7CgogICAgfS8vZW5kIHByaW50UHJvZ3Jlc3MoKQoKCn0vL2VuZCBjbGFzcwoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjE2OiJcUEhQX0NvZGVTbmlmZmVyIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTY6IlxQSFBfQ29kZVNuaWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUEhQX0NvZGVTbmlmZmVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YToyOntzOjIwOiJcUEhQX0NPREVTTklGRkVSX0NCRiI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudCI6ODp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMDoiXFBIUF9DT0RFU05JRkZFUl9DQkYiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToiUEhQX0NPREVTTklGRkVSX0NCRiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjU6ImZhbHNlIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjg5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9fXM6MjY6IlxQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50Ijo4OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI2OiJcUEhQX0NPREVTTklGRkVSX1ZFUkJPU0lUWSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI1OiJQSFBfQ09ERVNOSUZGRVJfVkVSQk9TSVRZIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZG9jQmxvY2siO047czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6MjQ6IiR0aGlzLT5jb25maWctPnZlcmJvc2l0eSI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZpbmFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbWV0YWRhdGEiO2E6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MjM6IlxQSFBfQ29kZVNuaWZmZXJcUnVubmVyIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTM6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6IlJ1bm5lciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTozOntzOjMyOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6JGNvbmZpZyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxQSFBfQ29kZVNuaWZmZXJcUnVubmVyOjokY29uZmlnIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiY29uZmlnIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI4OiJUaGUgY29uZmlnIGRhdGEgZm9yIHRoZSBydW4uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXFBIUF9Db2RlU25pZmZlclxDb25maWciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJDb25maWciO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MTU6IlBIUF9Db2RlU25pZmZlciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6ODp7czoxNzoiRGVlcEV4aXRFeGNlcHRpb24iO3M6NDQ6IlBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXERlZXBFeGl0RXhjZXB0aW9uIjtzOjE2OiJSdW50aW1lRXhjZXB0aW9uIjtzOjQzOiJQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIjtzOjk6IkR1bW15RmlsZSI7czozMToiUEhQX0NvZGVTbmlmZmVyXEZpbGVzXER1bW15RmlsZSI7czo0OiJGaWxlIjtzOjI2OiJQSFBfQ29kZVNuaWZmZXJcRmlsZXNcRmlsZSI7czo4OiJGaWxlTGlzdCI7czozMDoiUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGVMaXN0IjtzOjU6IkNhY2hlIjtzOjI2OiJQSFBfQ29kZVNuaWZmZXJcVXRpbFxDYWNoZSI7czo2OiJDb21tb24iO3M6Mjc6IlBIUF9Db2RlU25pZmZlclxVdGlsXENvbW1vbiI7czo5OiJTdGFuZGFyZHMiO3M6MzA6IlBIUF9Db2RlU25pZmZlclxVdGlsXFN0YW5kYXJkcyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czozMzoiXFBIUF9Db2RlU25pZmZlclxSdW5uZXI6OiRydWxlc2V0IjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMzoiXFBIUF9Db2RlU25pZmZlclxSdW5uZXI6OiRydWxlc2V0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoicnVsZXNldCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyOToiVGhlIHJ1bGVzZXQgdXNlZCBmb3IgdGhlIHJ1bi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJSdWxlc2V0Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA0O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6NDoibnVsbCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX1zOjM0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6JHJlcG9ydGVyIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNDoiXFBIUF9Db2RlU25pZmZlclxSdW5uZXI6OiRyZXBvcnRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InJlcG9ydGVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU1OiJUaGUgcmVwb3J0ZXIgdXNlZCBmb3IgZ2VuZXJhdGluZyByZXBvcnRzIGFmdGVyIHRoZSBydW4uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNToiXFBIUF9Db2RlU25pZmZlclxSZXBvcnRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlJlcG9ydGVyIjt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA0O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6NDoibnVsbCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6OTp7czozNToiXFBIUF9Db2RlU25pZmZlclxSdW5uZXI6OnJ1blBIUENTKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMToiUnVuIHRoZSBQSFBDUyBzY3JpcHQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA0O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzU6IlxQSFBfQ29kZVNuaWZmZXJcUnVubmVyOjpydW5QSFBDUygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoicnVuUEhQQ1MiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM2OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6cnVuUEhQQ0JGKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMjoiUnVuIHRoZSBQSFBDQkYgc2NyaXB0LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwNDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6cnVuUEhQQ0JGKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJydW5QSFBDQkYiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjI5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NDoiXFBIUF9Db2RlU25pZmZlclxSdW5uZXI6OmNoZWNrUmVxdWlyZW1lbnRzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2NToiRXhpdHMgaWYgdGhlIG1pbmltdW0gcmVxdWlyZW1lbnRzIG9mIFBIUF9Db2RlU25pZmZlciBhcmUgbm90IG1ldC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xEZWVwRXhpdEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJEZWVwRXhpdEV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMjoiSWYgdGhlIHJlcXVpcmVtZW50cyBhcmUgbm90IG1ldC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwNDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6Y2hlY2tSZXF1aXJlbWVudHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJjaGVja1JlcXVpcmVtZW50cyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMzg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNzc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjMxOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6aW5pdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDg6IkluaXQgdGhlIHJ1bGVzZXRzIGFuZCBvdGhlciBoaWdoLWxldmVsIHNldHRpbmdzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXERlZXBFeGl0RXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IkRlZXBFeGl0RXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQyOiJJZiBhIHJlZmVyZW5jZWQgc3RhbmRhcmQgaXMgbm90IGluc3RhbGxlZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwNDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMxOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6aW5pdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiaW5pdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjMwOiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6cnVuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxNzoiUGVyZm9ybXMgdGhlIHJ1bi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0MDoiVGhlIG51bWJlciBvZiBlcnJvcnMgYW5kIHdhcm5pbmdzIGZvdW5kLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiRGVlcEV4aXRFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlJ1bnRpbWVFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxMDQ7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMDoiXFBIUF9Db2RlU25pZmZlclxSdW5uZXI6OnJ1bigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoicnVuIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1Nzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM5OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6aGFuZGxlRXJyb3JzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MDoiQ29udmVydHMgYWxsIFBIUCBlcnJvcnMgaW50byBleGNlcHRpb25zLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNTg6IlRoaXMgbWV0aG9kIGZvcmNlcyBhIHNuaWZmIHRvIHN0b3AgcHJvY2Vzc2luZyBpZiBpdCBpcyBub3QKYWJsZSB0byBoYW5kbGUgYSBzcGVjaWZpYyBwaWVjZSBvZiBjb2RlLCBpbnN0ZWFkIG9mIGNvbnRpbnVpbmcKYW5kIHBvdGVudGlhbGx5IGdldHRpbmcgaW50byBhIGxvb3AuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Njp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6ImNvZGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6IlRoZSBsZXZlbCBvZiBlcnJvciByYWlzZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjc6Im1lc3NhZ2UiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTg6IlRoZSBlcnJvciBtZXNzYWdlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJmaWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQzOiJUaGUgcGF0aCBvZiB0aGUgZmlsZSB0aGF0IHJhaXNlZCB0aGUgZXJyb3IuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6ImxpbmUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDA6IlRoZSBsaW5lIG51bWJlciB0aGUgZXJyb3Igd2FzIHJhaXNlZCBhdC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjU7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXFJ1bnRpbWVFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiUnVudGltZUV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEwNDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6aGFuZGxlRXJyb3JzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiaGFuZGxlRXJyb3JzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjQ6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImNvZGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJtZXNzYWdlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MztPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImxpbmUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1OTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM4OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6cHJvY2Vzc0ZpbGUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU1OiJQcm9jZXNzZXMgYSBzaW5nbGUgZmlsZSwgaW5jbHVkaW5nIGNoZWNraW5nIGFuZCBmaXhpbmcuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJmaWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJGaWxlIjt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjU6IlRoZSBmaWxlIHRvIGJlIHByb2Nlc3NlZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXERlZXBFeGl0RXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IkRlZXBFeGl0RXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA0O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxQSFBfQ29kZVNuaWZmZXJcUnVubmVyOjpwcm9jZXNzRmlsZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6InByb2Nlc3NGaWxlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2OTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXFJ1bm5lcjo6cHJvY2Vzc0NoaWxkUHJvY3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjYzOiJXYWl0cyBmb3IgY2hpbGQgcHJvY2Vzc2VzIHRvIGNvbXBsZXRlIGFuZCBjbGVhbnMgdXAgYWZ0ZXIgdGhlbS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6OTY6IlRoZSByZXBvcnRpbmcgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgZWFjaCBjaGlsZCBwcm9jZXNzIGlzIG1lcmdlZAppbnRvIHRoZSBtYWluIHJlcG9ydGVyIGNsYXNzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMDoiY2hpbGRQcm9jcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDA6IkFuIGFycmF5IG9mIGNoaWxkIHByb2Nlc3NlcyB0byB3YWl0IGZvci4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MTA0O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxQSFBfQ29kZVNuaWZmZXJcUnVubmVyOjpwcm9jZXNzQ2hpbGRQcm9jcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6InByb2Nlc3NDaGlsZFByb2NzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMDoiY2hpbGRQcm9jcyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcxMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc3MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDA6IlxQSFBfQ29kZVNuaWZmZXJcUnVubmVyOjpwcmludFByb2dyZXNzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NToiUHJpbnQgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gZm9yIGEgc2luZ2xlIHByb2Nlc3NlZCBmaWxlLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo0OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoiZmlsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI4OiJUaGUgZmlsZSB0aGF0IHdhcyBwcm9jZXNzZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjg6Im51bUZpbGVzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM3OiJUaGUgdG90YWwgbnVtYmVyIG9mIGZpbGVzIHRvIHByb2Nlc3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjEyOiJudW1Qcm9jZXNzZWQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjU6IlRoZSBudW1iZXIgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gcHJvY2Vzc2VkLAppbmNsdWRpbmcgdGhpcyBvbmUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxMDQ7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXFBIUF9Db2RlU25pZmZlclxSdW5uZXI6OnByaW50UHJvZ3Jlc3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJwcmludFByb2dyZXNzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJudW1GaWxlcyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEyOiJudW1Qcm9jZXNzZWQiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3ODY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4ODY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4ODk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";