{"action":"emergency_upload","files":{"includes\/functions.php":"PD9waHAKLyoqCiAqIENvbW1vbiBGdW5jdGlvbnMgZm9yIEhpanJpLUNhbGVuZGFycy5jb20KICovCgovKioKICogR2V0IHRyYW5zbGF0aW9uIGZyb20gZGF0YWJhc2UKICovCmZ1bmN0aW9uIHRyYW5zbGF0ZSgka2V5LCAkbGFuZyA9IG51bGwpIHsKICAgIGdsb2JhbCAkcGRvLCAkY3VycmVudF9sYW5nOwoKICAgIGlmICgkbGFuZyA9PT0gbnVsbCkgewogICAgICAgICRsYW5nID0gJGN1cnJlbnRfbGFuZzsKICAgIH0KCiAgICBzdGF0aWMgJHRyYW5zbGF0aW9ucyA9IFtdOwoKICAgICRjYWNoZV9rZXkgPSAkbGFuZyAuICdfJyAuICRrZXk7CgogICAgaWYgKGlzc2V0KCR0cmFuc2xhdGlvbnNbJGNhY2hlX2tleV0pKSB7CiAgICAgICAgcmV0dXJuICR0cmFuc2xhdGlvbnNbJGNhY2hlX2tleV07CiAgICB9CgogICAgLy8gUmV0dXJuIGtleSBpZiBubyBkYXRhYmFzZSBjb25uZWN0aW9uCiAgICBpZiAoJHBkbyA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiAka2V5OwogICAgfQoKICAgIHRyeSB7CiAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgdmFsdWUgRlJPTSB0cmFuc2xhdGlvbnMgV0hFUkUga2V5X25hbWUgPSA\/IEFORCBsYW5ndWFnZSA9ID8gTElNSVQgMSIpOwogICAgICAgICRzdG10LT5leGVjdXRlKFska2V5LCAkbGFuZ10pOwogICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goKTsKCiAgICAgICAgaWYgKCRyZXN1bHQpIHsKICAgICAgICAgICAgJHRyYW5zbGF0aW9uc1skY2FjaGVfa2V5XSA9ICRyZXN1bHRbJ3ZhbHVlJ107CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0Wyd2YWx1ZSddOwogICAgICAgIH0KICAgIH0gY2F0Y2ggKFBET0V4Y2VwdGlvbiAkZSkgewogICAgICAgIGVycm9yX2xvZygiVHJhbnNsYXRpb24gZXJyb3I6ICIgLiAkZS0+Z2V0TWVzc2FnZSgpKTsKICAgIH0KCiAgICByZXR1cm4gJGtleTsKfQoKLyoqCiAqIENvbnZlcnQgR3JlZ29yaWFuIGRhdGUgdG8gSGlqcmkgKFVtbSBhbC1RdXJhKQogKiBVc2luZyBJbnRsRGF0ZUZvcm1hdHRlciB3aXRoIElzbGFtaWMgY2FsZW5kYXIKICovCmZ1bmN0aW9uIGdyZWdvcmlhblRvSGlqcmkoJGRheSwgJG1vbnRoLCAkeWVhcikgewogICAgLy8gQ2hlY2sgaWYgaW50bCBleHRlbnNpb24gaXMgYXZhaWxhYmxlCiAgICBpZiAoIWV4dGVuc2lvbl9sb2FkZWQoJ2ludGwnKSkgewogICAgICAgIGVycm9yX2xvZygiSW50bCBleHRlbnNpb24gbm90IGxvYWRlZCwgdXNpbmcgZmFsbGJhY2sgY2FsY3VsYXRpb24iKTsKICAgICAgICByZXR1cm4gZ3JlZ29yaWFuVG9IaWpyaUZhbGxiYWNrKCRkYXksICRtb250aCwgJHllYXIpOwogICAgfQoKICAgIHRyeSB7CiAgICAgICAgLy8gQ3JlYXRlIGEgRGF0ZVRpbWUgb2JqZWN0IGZvciB0aGUgR3JlZ29yaWFuIGRhdGUKICAgICAgICAkZGF0ZSA9IG5ldyBEYXRlVGltZSgiJHllYXItJG1vbnRoLSRkYXkiLCBuZXcgRGF0ZVRpbWVab25lKCdBc2lhL1JpeWFkaCcpKTsKICAgICAgICAkdGltZXN0YW1wID0gJGRhdGUtPmdldFRpbWVzdGFtcCgpOwoKICAgICAgICAvLyBNZXRob2QgMTogVHJ5IHdpdGggSW50bENhbGVuZGFyCiAgICAgICAgJGNhbCA9IEludGxDYWxlbmRhcjo6Y3JlYXRlSW5zdGFuY2UoJ0FzaWEvUml5YWRoJywgJ2FyX1NBQGNhbGVuZGFyPWlzbGFtaWMtdW1hbHF1cmEnKTsKICAgICAgICAkY2FsLT5zZXRUaW1lKCR0aW1lc3RhbXAgKiAxMDAwKTsKCiAgICAgICAgJGhfZGF5ID0gJGNhbC0+Z2V0KEludGxDYWxlbmRhcjo6RklFTERfREFZX09GX01PTlRIKTsKICAgICAgICAkaF9tb250aCA9ICRjYWwtPmdldChJbnRsQ2FsZW5kYXI6OkZJRUxEX01PTlRIKSArIDE7IC8vIE1vbnRoIGlzIDAtaW5kZXhlZAogICAgICAgICRoX3llYXIgPSAkY2FsLT5nZXQoSW50bENhbGVuZGFyOjpGSUVMRF9ZRUFSKTsKCiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIHJlc3VsdAogICAgICAgIGlmICgkaF9kYXkgPiAwICYmICRoX21vbnRoID4gMCAmJiAkaF95ZWFyID4gMCkgewogICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgJ2RheScgPT4gKGludCkkaF9kYXksCiAgICAgICAgICAgICAgICAnbW9udGgnID0+IChpbnQpJGhfbW9udGgsCiAgICAgICAgICAgICAgICAneWVhcicgPT4gKGludCkkaF95ZWFyCiAgICAgICAgICAgIF07CiAgICAgICAgfQoKICAgICAgICAvLyBNZXRob2QgMjogRmFsbGJhY2sgdG8gSW50bERhdGVGb3JtYXR0ZXIKICAgICAgICAkZm9ybWF0dGVyID0gbmV3IEludGxEYXRlRm9ybWF0dGVyKAogICAgICAgICAgICAnYXJfU0FAY2FsZW5kYXI9aXNsYW1pYy11bWFscXVyYScsCiAgICAgICAgICAgIEludGxEYXRlRm9ybWF0dGVyOjpGVUxMLAogICAgICAgICAgICBJbnRsRGF0ZUZvcm1hdHRlcjo6RlVMTCwKICAgICAgICAgICAgJ0FzaWEvUml5YWRoJywKICAgICAgICAgICAgSW50bERhdGVGb3JtYXR0ZXI6OlRSQURJVElPTkFMCiAgICAgICAgKTsKCiAgICAgICAgJGZvcm1hdHRlci0+c2V0UGF0dGVybigneXl5eS9NTS9kZCcpOwogICAgICAgICRoaWpyaV9kYXRlID0gJGZvcm1hdHRlci0+Zm9ybWF0KCR0aW1lc3RhbXApOwoKICAgICAgICBpZiAoJGhpanJpX2RhdGUgJiYgc3RycG9zKCRoaWpyaV9kYXRlLCAnLycpICE9PSBmYWxzZSkgewogICAgICAgICAgICBsaXN0KCRoX3llYXIsICRoX21vbnRoLCAkaF9kYXkpID0gZXhwbG9kZSgnLycsICRoaWpyaV9kYXRlKTsKCiAgICAgICAgICAgIGlmICgkaF9kYXkgPiAwICYmICRoX21vbnRoID4gMCAmJiAkaF95ZWFyID4gMCkgewogICAgICAgICAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgICAgICAgICAnZGF5JyA9PiAoaW50KSRoX2RheSwKICAgICAgICAgICAgICAgICAgICAnbW9udGgnID0+IChpbnQpJGhfbW9udGgsCiAgICAgICAgICAgICAgICAgICAgJ3llYXInID0+IChpbnQpJGhfeWVhcgogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gSWYgYm90aCBtZXRob2RzIGZhaWwsIHVzZSBmYWxsYmFjawogICAgICAgIGVycm9yX2xvZygiSGlqcmkgY29udmVyc2lvbiByZXR1cm5lZCB6ZXJvIHZhbHVlcywgdXNpbmcgZmFsbGJhY2siKTsKICAgICAgICByZXR1cm4gZ3JlZ29yaWFuVG9IaWpyaUZhbGxiYWNrKCRkYXksICRtb250aCwgJHllYXIpOwoKICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgewogICAgICAgIGVycm9yX2xvZygiR3JlZ29yaWFuIHRvIEhpanJpIGNvbnZlcnNpb24gZXJyb3I6ICIgLiAkZS0+Z2V0TWVzc2FnZSgpKTsKICAgICAgICByZXR1cm4gZ3JlZ29yaWFuVG9IaWpyaUZhbGxiYWNrKCRkYXksICRtb250aCwgJHllYXIpOwogICAgfQp9CgovKioKICogRmFsbGJhY2sgR3JlZ29yaWFuIHRvIEhpanJpIGNvbnZlcnNpb24gKHNpbXBsaWZpZWQgYWxnb3JpdGhtKQogKiBCYXNlZCBvbiBhcHByb3hpbWF0ZSBjYWxjdWxhdGlvbgogKi8KZnVuY3Rpb24gZ3JlZ29yaWFuVG9IaWpyaUZhbGxiYWNrKCRkYXksICRtb250aCwgJHllYXIpIHsKICAgIC8vIEp1bGlhbiBEYXkgY2FsY3VsYXRpb24KICAgIGlmICgkbW9udGggPCAzKSB7CiAgICAgICAgJHllYXItLTsKICAgICAgICAkbW9udGggKz0gMTI7CiAgICB9CgogICAgJGEgPSBmbG9vcigkeWVhciAvIDEwMCk7CiAgICAkYiA9IDIgLSAkYSArIGZsb29yKCRhIC8gNCk7CiAgICAkamQgPSBmbG9vcigzNjUuMjUgKiAoJHllYXIgKyA0NzE2KSkgKyBmbG9vcigzMC42MDAxICogKCRtb250aCArIDEpKSArICRkYXkgKyAkYiAtIDE1MjQuNTsKCiAgICAvLyBDb252ZXJ0IEp1bGlhbiBEYXkgdG8gSGlqcmkKICAgICRsID0gJGpkIC0gMTk0ODQ0MCArIDEwNjMyOwogICAgJG4gPSBmbG9vcigoJGwgLSAxKSAvIDEwNjMxKTsKICAgICRsID0gJGwgLSAxMDYzMSAqICRuICsgMzU0OwogICAgJGogPSAoZmxvb3IoKDEwOTg1IC0gJGwpIC8gNTMxNikpICogKGZsb29yKCg1MCAqICRsKSAvIDE3NzE5KSkgKyAoZmxvb3IoJGwgLyA1NjcwKSkgKiAoZmxvb3IoKDQzICogJGwpIC8gMTUyMzgpKTsKICAgICRsID0gJGwgLSAoZmxvb3IoKDMwIC0gJGopIC8gMTUpKSAqIChmbG9vcigoMTc3MTkgKiAkaikgLyA1MCkpIC0gKGZsb29yKCRqIC8gMTYpKSAqIChmbG9vcigoMTUyMzggKiAkaikgLyA0MykpICsgMjk7CiAgICAkaF9tb250aCA9IGZsb29yKCgyNCAqICRsKSAvIDcwOSk7CiAgICAkaF9kYXkgPSAkbCAtIGZsb29yKCg3MDkgKiAkaF9tb250aCkgLyAyNCk7CiAgICAkaF95ZWFyID0gMzAgKiAkbiArICRqIC0gMzA7CgogICAgcmV0dXJuIFsKICAgICAgICAnZGF5JyA9PiAoaW50KSRoX2RheSwKICAgICAgICAnbW9udGgnID0+IChpbnQpJGhfbW9udGgsCiAgICAgICAgJ3llYXInID0+IChpbnQpJGhfeWVhcgogICAgXTsKfQoKLyoqCiAqIENvbnZlcnQgSGlqcmkgZGF0ZSB0byBHcmVnb3JpYW4gKFVtbSBhbC1RdXJhKQogKi8KZnVuY3Rpb24gaGlqcmlUb0dyZWdvcmlhbigkZGF5LCAkbW9udGgsICR5ZWFyKSB7CiAgICAvLyBDaGVjayBpZiBpbnRsIGV4dGVuc2lvbiBpcyBhdmFpbGFibGUKICAgIGlmICghZXh0ZW5zaW9uX2xvYWRlZCgnaW50bCcpKSB7CiAgICAgICAgZXJyb3JfbG9nKCJJbnRsIGV4dGVuc2lvbiBub3QgbG9hZGVkLCB1c2luZyBmYWxsYmFjayBjYWxjdWxhdGlvbiIpOwogICAgICAgIHJldHVybiBoaWpyaVRvR3JlZ29yaWFuRmFsbGJhY2soJGRheSwgJG1vbnRoLCAkeWVhcik7CiAgICB9CgogICAgdHJ5IHsKICAgICAgICAkY2FsZW5kYXIgPSBJbnRsQ2FsZW5kYXI6OmNyZWF0ZUluc3RhbmNlKCdBc2lhL1JpeWFkaCcsICdhcl9TQUBjYWxlbmRhcj1pc2xhbWljLXVtYWxxdXJhJyk7CiAgICAgICAgJGNhbGVuZGFyLT5jbGVhcigpOwogICAgICAgICRjYWxlbmRhci0+c2V0KCR5ZWFyLCAkbW9udGggLSAxLCAkZGF5LCAwLCAwLCAwKTsKCiAgICAgICAgJHRpbWVzdGFtcCA9ICRjYWxlbmRhci0+Z2V0VGltZSgpIC8gMTAwMDsKCiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ2RheScgPT4gKGludClkYXRlKCdkJywgJHRpbWVzdGFtcCksCiAgICAgICAgICAgICdtb250aCcgPT4gKGludClkYXRlKCdtJywgJHRpbWVzdGFtcCksCiAgICAgICAgICAgICd5ZWFyJyA9PiAoaW50KWRhdGUoJ1knLCAkdGltZXN0YW1wKQogICAgICAgIF07CiAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgICAgICBlcnJvcl9sb2coIkhpanJpIHRvIEdyZWdvcmlhbiBjb252ZXJzaW9uIGVycm9yOiAiIC4gJGUtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgcmV0dXJuIGhpanJpVG9HcmVnb3JpYW5GYWxsYmFjaygkZGF5LCAkbW9udGgsICR5ZWFyKTsKICAgIH0KfQoKLyoqCiAqIEZhbGxiYWNrIEhpanJpIHRvIEdyZWdvcmlhbiBjb252ZXJzaW9uIChzaW1wbGlmaWVkIGFsZ29yaXRobSkKICovCmZ1bmN0aW9uIGhpanJpVG9HcmVnb3JpYW5GYWxsYmFjaygkZGF5LCAkbW9udGgsICR5ZWFyKSB7CiAgICAvLyBDb252ZXJ0IEhpanJpIHRvIEp1bGlhbiBEYXkKICAgICRqZCA9IGZsb29yKCgxMSAqICR5ZWFyICsgMykgLyAzMCkgKyAzNTQgKiAkeWVhciArIDMwICogJG1vbnRoIC0gZmxvb3IoKCRtb250aCAtIDEpIC8gMikgKyAkZGF5ICsgMTk0ODQ0MCAtIDM4NTsKCiAgICAvLyBDb252ZXJ0IEp1bGlhbiBEYXkgdG8gR3JlZ29yaWFuCiAgICBpZiAoJGpkID4gMjI5OTE2MCkgewogICAgICAgICRhID0gJGpkICsgMzIwNDQ7CiAgICAgICAgJGIgPSBmbG9vcigoNCAqICRhICsgMykgLyAxNDYwOTcpOwogICAgICAgICRjID0gJGEgLSBmbG9vcigoMTQ2MDk3ICogJGIpIC8gNCk7CiAgICB9IGVsc2UgewogICAgICAgICRiID0gMDsKICAgICAgICAkYyA9ICRqZCArIDMyMDgyOwogICAgfQoKICAgICRkID0gZmxvb3IoKDQgKiAkYyArIDMpIC8gMTQ2MSk7CiAgICAkZSA9ICRjIC0gZmxvb3IoKDE0NjEgKiAkZCkgLyA0KTsKICAgICRtID0gZmxvb3IoKDUgKiAkZSArIDIpIC8gMTUzKTsKCiAgICAkZ19kYXkgPSAkZSAtIGZsb29yKCgxNTMgKiAkbSArIDIpIC8gNSkgKyAxOwogICAgJGdfbW9udGggPSAkbSArIDMgLSAxMiAqIGZsb29yKCRtIC8gMTApOwogICAgJGdfeWVhciA9IDEwMCAqICRiICsgJGQgLSA0ODAwICsgZmxvb3IoJG0gLyAxMCk7CgogICAgcmV0dXJuIFsKICAgICAgICAnZGF5JyA9PiAoaW50KSRnX2RheSwKICAgICAgICAnbW9udGgnID0+IChpbnQpJGdfbW9udGgsCiAgICAgICAgJ3llYXInID0+IChpbnQpJGdfeWVhcgogICAgXTsKfQoKLyoqCiAqIEdldCBjdXJyZW50IEhpanJpIGRhdGUgKFVtbSBhbC1RdXJhKQogKi8KZnVuY3Rpb24gZ2V0Q3VycmVudEhpanJpRGF0ZSgpIHsKICAgIHJldHVybiBncmVnb3JpYW5Ub0hpanJpKGRhdGUoJ2QnKSwgZGF0ZSgnbScpLCBkYXRlKCdZJykpOwp9CgovKioKICogR2V0IEhpanJpIG1vbnRoIG5hbWUKICovCmZ1bmN0aW9uIGdldEhpanJpTW9udGhOYW1lKCRtb250aCwgJGxhbmcgPSBudWxsKSB7CiAgICBnbG9iYWwgJGN1cnJlbnRfbGFuZzsKICAgIGlmICgkbGFuZyA9PT0gbnVsbCkgewogICAgICAgICRsYW5nID0gJGN1cnJlbnRfbGFuZzsKICAgIH0KCiAgICByZXR1cm4gdHJhbnNsYXRlKCdoaWpyaV9tb250aF8nIC4gJG1vbnRoLCAkbGFuZyk7Cn0KCi8qKgogKiBHZXQgR3JlZ29yaWFuIG1vbnRoIG5hbWUKICovCmZ1bmN0aW9uIGdldEdyZWdvcmlhbk1vbnRoTmFtZSgkbW9udGgsICRsYW5nID0gbnVsbCkgewogICAgZ2xvYmFsICRjdXJyZW50X2xhbmc7CiAgICBpZiAoJGxhbmcgPT09IG51bGwpIHsKICAgICAgICAkbGFuZyA9ICRjdXJyZW50X2xhbmc7CiAgICB9CgogICAgJG1vbnRoc19lbiA9IFsKICAgICAgICAxID0+ICdKYW51YXJ5JywgMiA9PiAnRmVicnVhcnknLCAzID0+ICdNYXJjaCcsIDQgPT4gJ0FwcmlsJywKICAgICAgICA1ID0+ICdNYXknLCA2ID0+ICdKdW5lJywgNyA9PiAnSnVseScsIDggPT4gJ0F1Z3VzdCcsCiAgICAgICAgOSA9PiAnU2VwdGVtYmVyJywgMTAgPT4gJ09jdG9iZXInLCAxMSA9PiAnTm92ZW1iZXInLCAxMiA9PiAnRGVjZW1iZXInCiAgICBdOwoKICAgICRtb250aHNfYXIgPSBbCiAgICAgICAgMSA9PiAn2YrZhtin2YrYsScsIDIgPT4gJ9mB2KjYsdin2YrYsScsIDMgPT4gJ9mF2KfYsdizJywgNCA9PiAn2KPYqNix2YrZhCcsCiAgICAgICAgNSA9PiAn2YXYp9mK2YgnLCA2ID0+ICfZitmI2YbZitmIJywgNyA9PiAn2YrZiNmE2YrZiCcsIDggPT4gJ9ij2LrYs9i32LMnLAogICAgICAgIDkgPT4gJ9iz2KjYqtmF2KjYsScsIDEwID0+ICfYo9mD2KrZiNio2LEnLCAxMSA9PiAn2YbZiNmB2YXYqNixJywgMTIgPT4gJ9iv2YrYs9mF2KjYsScKICAgIF07CgogICAgcmV0dXJuICRsYW5nID09PSAnYXInID8gJG1vbnRoc19hclskbW9udGhdIDogJG1vbnRoc19lblskbW9udGhdOwp9CgovKioKICogR2V0IGRheSBuYW1lCiAqLwpmdW5jdGlvbiBnZXREYXlOYW1lKCRkYXlfbnVtYmVyLCAkbGFuZyA9IG51bGwpIHsKICAgIGdsb2JhbCAkY3VycmVudF9sYW5nOwogICAgaWYgKCRsYW5nID09PSBudWxsKSB7CiAgICAgICAgJGxhbmcgPSAkY3VycmVudF9sYW5nOwogICAgfQoKICAgICRkYXlzX2VuID0gWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddOwogICAgJGRheXNfYXIgPSBbJ9in2YTYo9it2K8nLCAn2KfZhNin2KvZhtmK2YYnLCAn2KfZhNir2YTYp9ir2KfYoScsICfYp9mE2KPYsdio2LnYp9ihJywgJ9in2YTYrtmF2YrYsycsICfYp9mE2KzZhdi52KknLCAn2KfZhNiz2KjYqiddOwoKICAgIHJldHVybiAkbGFuZyA9PT0gJ2FyJyA\/ICRkYXlzX2FyWyRkYXlfbnVtYmVyXSA6ICRkYXlzX2VuWyRkYXlfbnVtYmVyXTsKfQoKLyoqCiAqIENhbGN1bGF0ZSBhZ2UgaW4gSGlqcmkgY2FsZW5kYXIKICovCmZ1bmN0aW9uIGNhbGN1bGF0ZUhpanJpQWdlKCRiaXJ0aF9kYXksICRiaXJ0aF9tb250aCwgJGJpcnRoX3llYXIpIHsKICAgICRjdXJyZW50X2hpanJpID0gZ2V0Q3VycmVudEhpanJpRGF0ZSgpOwoKICAgICR5ZWFycyA9ICRjdXJyZW50X2hpanJpWyd5ZWFyJ10gLSAkYmlydGhfeWVhcjsKICAgICRtb250aHMgPSAkY3VycmVudF9oaWpyaVsnbW9udGgnXSAtICRiaXJ0aF9tb250aDsKICAgICRkYXlzID0gJGN1cnJlbnRfaGlqcmlbJ2RheSddIC0gJGJpcnRoX2RheTsKCiAgICBpZiAoJGRheXMgPCAwKSB7CiAgICAgICAgJG1vbnRocy0tOwogICAgICAgICRkYXlzICs9IDMwOyAvLyBBcHByb3hpbWF0ZQogICAgfQoKICAgIGlmICgkbW9udGhzIDwgMCkgewogICAgICAgICR5ZWFycy0tOwogICAgICAgICRtb250aHMgKz0gMTI7CiAgICB9CgogICAgcmV0dXJuIFsKICAgICAgICAneWVhcnMnID0+ICR5ZWFycywKICAgICAgICAnbW9udGhzJyA9PiAkbW9udGhzLAogICAgICAgICdkYXlzJyA9PiAkZGF5cwogICAgXTsKfQoKLyoqCiAqIENhbGN1bGF0ZSBhZ2UgaW4gR3JlZ29yaWFuIGNhbGVuZGFyCiAqLwpmdW5jdGlvbiBjYWxjdWxhdGVHcmVnb3JpYW5BZ2UoJGJpcnRoX2RheSwgJGJpcnRoX21vbnRoLCAkYmlydGhfeWVhcikgewogICAgJGJpcnRoX2RhdGUgPSBuZXcgRGF0ZVRpbWUoIiRiaXJ0aF95ZWFyLSRiaXJ0aF9tb250aC0kYmlydGhfZGF5Iik7CiAgICAkY3VycmVudF9kYXRlID0gbmV3IERhdGVUaW1lKCk7CiAgICAkZGlmZiA9ICRjdXJyZW50X2RhdGUtPmRpZmYoJGJpcnRoX2RhdGUpOwoKICAgIHJldHVybiBbCiAgICAgICAgJ3llYXJzJyA9PiAkZGlmZi0+eSwKICAgICAgICAnbW9udGhzJyA9PiAkZGlmZi0+bSwKICAgICAgICAnZGF5cycgPT4gJGRpZmYtPmQKICAgIF07Cn0KCi8qKgogKiBDYWxjdWxhdGUgcHJheWVyIHRpbWVzIGZvciBhIGdpdmVuIGxvY2F0aW9uIGFuZCBkYXRlCiAqIFVzaW5nIHNpbXBsaWZpZWQgY2FsY3VsYXRpb24gZm9yIGRlbW9uc3RyYXRpb24KICovCmZ1bmN0aW9uIGNhbGN1bGF0ZVByYXllclRpbWVzKCRsYXRpdHVkZSwgJGxvbmdpdHVkZSwgJGRhdGUgPSBudWxsLCAkdGltZXpvbmUgPSAnQXNpYS9SaXlhZGgnKSB7CiAgICBpZiAoJGRhdGUgPT09IG51bGwpIHsKICAgICAgICAkZGF0ZSA9IGRhdGUoJ1ktbS1kJyk7CiAgICB9CgogICAgLy8gVGhpcyBpcyBhIHNpbXBsaWZpZWQgY2FsY3VsYXRpb24KICAgIC8vIEZvciBwcm9kdWN0aW9uLCB1c2UgYSBsaWJyYXJ5IGxpa2UgUHJheVRpbWVzLmpzIG9yIEFsLUFkaGFuIEFQSQoKICAgICR0aW1lcyA9IFsKICAgICAgICAnZmFqcicgPT4gJzA1OjAwJywKICAgICAgICAnc3VucmlzZScgPT4gJzA2OjE1JywKICAgICAgICAnZGh1aHInID0+ICcxMjoxNScsCiAgICAgICAgJ2FzcicgPT4gJzE1OjMwJywKICAgICAgICAnbWFnaHJpYicgPT4gJzE4OjE1JywKICAgICAgICAnaXNoYScgPT4gJzE5OjQ1JwogICAgXTsKCiAgICByZXR1cm4gJHRpbWVzOwp9CgovKioKICogR2V0IG9yIGNyZWF0ZSBwcmF5ZXIgdGltZXMgZm9yIGEgY2l0eQogKi8KZnVuY3Rpb24gZ2V0UHJheWVyVGltZXMoJGNpdHlfaWQsICRkYXRlID0gbnVsbCkgewogICAgZ2xvYmFsICRwZG87CgogICAgaWYgKCRkYXRlID09PSBudWxsKSB7CiAgICAgICAgJGRhdGUgPSBkYXRlKCdZLW0tZCcpOwogICAgfQoKICAgIHRyeSB7CiAgICAgICAgLy8gQ2hlY2sgaWYgcHJheWVyIHRpbWVzIGV4aXN0IGluIGRhdGFiYXNlCiAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCIKICAgICAgICAgICAgU0VMRUNUIGZhanIsIHN1bnJpc2UsIGRodWhyLCBhc3IsIG1hZ2hyaWIsIGlzaGEKICAgICAgICAgICAgRlJPTSBwcmF5ZXJfdGltZXMKICAgICAgICAgICAgV0hFUkUgY2l0eV9pZCA9ID8gQU5EIHByYXllcl9kYXRlID0gPwogICAgICAgICIpOwogICAgICAgICRzdG10LT5leGVjdXRlKFskY2l0eV9pZCwgJGRhdGVdKTsKICAgICAgICAkdGltZXMgPSAkc3RtdC0+ZmV0Y2goKTsKCiAgICAgICAgaWYgKCR0aW1lcykgewogICAgICAgICAgICByZXR1cm4gJHRpbWVzOwogICAgICAgIH0KCiAgICAgICAgLy8gSWYgbm90IGZvdW5kLCBjYWxjdWxhdGUgYW5kIHN0b3JlCiAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgbGF0aXR1ZGUsIGxvbmdpdHVkZSBGUk9NIHNhdWRpX2NpdGllcyBXSEVSRSBpZCA9ID8iKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZShbJGNpdHlfaWRdKTsKICAgICAgICAkY2l0eSA9ICRzdG10LT5mZXRjaCgpOwoKICAgICAgICBpZiAoJGNpdHkpIHsKICAgICAgICAgICAgJGNhbGN1bGF0ZWRfdGltZXMgPSBjYWxjdWxhdGVQcmF5ZXJUaW1lcygkY2l0eVsnbGF0aXR1ZGUnXSwgJGNpdHlbJ2xvbmdpdHVkZSddLCAkZGF0ZSk7CgogICAgICAgICAgICAvLyBTdG9yZSBpbiBkYXRhYmFzZQogICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIgogICAgICAgICAgICAgICAgSU5TRVJUIElOVE8gcHJheWVyX3RpbWVzIChjaXR5X2lkLCBwcmF5ZXJfZGF0ZSwgZmFqciwgc3VucmlzZSwgZGh1aHIsIGFzciwgbWFnaHJpYiwgaXNoYSkKICAgICAgICAgICAgICAgIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPykKICAgICAgICAgICAgIik7CiAgICAgICAgICAgICRzdG10LT5leGVjdXRlKFsKICAgICAgICAgICAgICAgICRjaXR5X2lkLCAkZGF0ZSwKICAgICAgICAgICAgICAgICRjYWxjdWxhdGVkX3RpbWVzWydmYWpyJ10sCiAgICAgICAgICAgICAgICAkY2FsY3VsYXRlZF90aW1lc1snc3VucmlzZSddLAogICAgICAgICAgICAgICAgJGNhbGN1bGF0ZWRfdGltZXNbJ2RodWhyJ10sCiAgICAgICAgICAgICAgICAkY2FsY3VsYXRlZF90aW1lc1snYXNyJ10sCiAgICAgICAgICAgICAgICAkY2FsY3VsYXRlZF90aW1lc1snbWFnaHJpYiddLAogICAgICAgICAgICAgICAgJGNhbGN1bGF0ZWRfdGltZXNbJ2lzaGEnXQogICAgICAgICAgICBdKTsKCiAgICAgICAgICAgIHJldHVybiAkY2FsY3VsYXRlZF90aW1lczsKICAgICAgICB9CiAgICB9IGNhdGNoIChQRE9FeGNlcHRpb24gJGUpIHsKICAgICAgICBlcnJvcl9sb2coIlByYXllciB0aW1lcyBlcnJvcjogIiAuICRlLT5nZXRNZXNzYWdlKCkpOwogICAgfQoKICAgIHJldHVybiBmYWxzZTsKfQoKLyoqCiAqIEdldCBhbGwgU2F1ZGkgY2l0aWVzCiAqLwpmdW5jdGlvbiBnZXRTYXVkaUNpdGllcygkbWFqb3Jfb25seSA9IGZhbHNlKSB7CiAgICBnbG9iYWwgJHBkbzsKCiAgICB0cnkgewogICAgICAgICRzcWwgPSAiU0VMRUNUICogRlJPTSBzYXVkaV9jaXRpZXMiOwogICAgICAgIGlmICgkbWFqb3Jfb25seSkgewogICAgICAgICAgICAkc3FsIC49ICIgV0hFUkUgaXNfbWFqb3JfY2l0eSA9IDEiOwogICAgICAgIH0KICAgICAgICAkc3FsIC49ICIgT1JERVIgQlkgaXNfbWFqb3JfY2l0eSBERVNDLCBuYW1lX2VuIEFTQyI7CgogICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoJHNxbCk7CiAgICAgICAgcmV0dXJuICRzdG10LT5mZXRjaEFsbCgpOwogICAgfSBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7CiAgICAgICAgZXJyb3JfbG9nKCJHZXQgY2l0aWVzIGVycm9yOiAiIC4gJGUtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgcmV0dXJuIFtdOwogICAgfQp9CgovKioKICogU2FuaXRpemUgb3V0cHV0CiAqLwpmdW5jdGlvbiBjbGVhbigkZGF0YSkgewogICAgcmV0dXJuIGh0bWxzcGVjaWFsY2hhcnMoJGRhdGEsIEVOVF9RVU9URVMsICdVVEYtOCcpOwp9CgovKioKICogR2V0IGN1cnJlbnQgVVJMCiAqLwpmdW5jdGlvbiBnZXRDdXJyZW50VXJsKCkgewogICAgJHByb3RvY29sID0gaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydIVFRQUyddID09PSAnb24nID8gJ2h0dHBzJyA6ICdodHRwJzsKICAgIHJldHVybiAkcHJvdG9jb2wgLiAiOi8vIiAuICRfU0VSVkVSWydIVFRQX0hPU1QnXSAuICRfU0VSVkVSWydSRVFVRVNUX1VSSSddOwp9CgovKioKICogR2VuZXJhdGUgY2Fub25pY2FsIFVSTAogKi8KZnVuY3Rpb24gZ2V0Q2Fub25pY2FsVXJsKCRwYXRoID0gJycpIHsKICAgIHJldHVybiBydHJpbShTSVRFX1VSTCwgJy8nKSAuICcvJyAuIGx0cmltKCRwYXRoLCAnLycpOwp9CgovKioKICogVHJhY2sgcGFnZSB2aXNpdAogKi8KZnVuY3Rpb24gdHJhY2tWaXNpdCgkcGFnZV9zbHVnKSB7CiAgICBnbG9iYWwgJHBkbywgJGN1cnJlbnRfbGFuZzsKCiAgICB0cnkgewogICAgICAgICRkYXRlID0gZGF0ZSgnWS1tLWQnKTsKICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIgogICAgICAgICAgICBJTlNFUlQgSU5UTyB2aXNpdG9yX3N0YXRzIChwYWdlX3NsdWcsIHZpc2l0X2RhdGUsIHZpc2l0X2NvdW50LCBsYW5ndWFnZSkKICAgICAgICAgICAgVkFMVUVTICg\/LCA\/LCAxLCA\/KQogICAgICAgICAgICBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSB2aXNpdF9jb3VudCA9IHZpc2l0X2NvdW50ICsgMQogICAgICAgICIpOwogICAgICAgICRzdG10LT5leGVjdXRlKFskcGFnZV9zbHVnLCAkZGF0ZSwgJGN1cnJlbnRfbGFuZ10pOwogICAgfSBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7CiAgICAgICAgZXJyb3JfbG9nKCJUcmFjayB2aXNpdCBlcnJvcjogIiAuICRlLT5nZXRNZXNzYWdlKCkpOwogICAgfQp9CgovKioKICogRm9ybWF0IG51bWJlciBiYXNlZCBvbiBsYW5ndWFnZQogKi8KZnVuY3Rpb24gZm9ybWF0TnVtYmVyKCRudW1iZXIsICRsYW5nID0gbnVsbCkgewogICAgZ2xvYmFsICRjdXJyZW50X2xhbmc7CiAgICBpZiAoJGxhbmcgPT09IG51bGwpIHsKICAgICAgICAkbGFuZyA9ICRjdXJyZW50X2xhbmc7CiAgICB9CgogICAgaWYgKCRsYW5nID09PSAnYXInKSB7CiAgICAgICAgJGFyYWJpY19udW1iZXJzID0gWyfZoCcsICfZoScsICfZoicsICfZoycsICfZpCcsICfZpScsICfZpicsICfZpycsICfZqCcsICfZqSddOwogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZShyYW5nZSgwLCA5KSwgJGFyYWJpY19udW1iZXJzLCAkbnVtYmVyKTsKICAgIH0KCiAgICByZXR1cm4gJG51bWJlcjsKfQoKLyoqCiAqIEdldCBJc2xhbWljIGV2ZW50cyBmb3IgYSBzcGVjaWZpYyBIaWpyaSBkYXRlCiAqLwpmdW5jdGlvbiBnZXRJc2xhbWljRXZlbnRzKCRoaWpyaV9tb250aCwgJGhpanJpX2RheSwgJGxhbmcgPSBudWxsKSB7CiAgICBnbG9iYWwgJHBkbywgJGN1cnJlbnRfbGFuZzsKCiAgICBpZiAoJGxhbmcgPT09IG51bGwpIHsKICAgICAgICAkbGFuZyA9ICRjdXJyZW50X2xhbmc7CiAgICB9CgogICAgdHJ5IHsKICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIgogICAgICAgICAgICBTRUxFQ1QgKiBGUk9NIGlzbGFtaWNfZXZlbnRzCiAgICAgICAgICAgIFdIRVJFIGhpanJpX21vbnRoID0gPyBBTkQgaGlqcmlfZGF5ID0gPwogICAgICAgICIpOwogICAgICAgICRzdG10LT5leGVjdXRlKFskaGlqcmlfbW9udGgsICRoaWpyaV9kYXldKTsKICAgICAgICByZXR1cm4gJHN0bXQtPmZldGNoQWxsKCk7CiAgICB9IGNhdGNoIChQRE9FeGNlcHRpb24gJGUpIHsKICAgICAgICBlcnJvcl9sb2coIkdldCBJc2xhbWljIGV2ZW50cyBlcnJvcjogIiAuICRlLT5nZXRNZXNzYWdlKCkpOwogICAgICAgIHJldHVybiBbXTsKICAgIH0KfQoKLyoqCiAqIENoZWNrIGlmIGRhdGUgaXMgdmFsaWQKICovCmZ1bmN0aW9uIGlzVmFsaWRHcmVnb3JpYW5EYXRlKCRkYXksICRtb250aCwgJHllYXIpIHsKICAgIHJldHVybiBjaGVja2RhdGUoJG1vbnRoLCAkZGF5LCAkeWVhcik7Cn0KCi8qKgogKiBDaGVjayBpZiBIaWpyaSBkYXRlIGlzIHZhbGlkCiAqLwpmdW5jdGlvbiBpc1ZhbGlkSGlqcmlEYXRlKCRkYXksICRtb250aCwgJHllYXIpIHsKICAgIGlmICgkbW9udGggPCAxIHx8ICRtb250aCA+IDEyKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgaWYgKCRkYXkgPCAxIHx8ICRkYXkgPiAzMCkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGlmICgkeWVhciA8IDEgfHwgJHllYXIgPiA5OTk5KSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KCi8qKgogKiBHZW5lcmF0ZSBicmVhZGNydW1iIG5hdmlnYXRpb24KICovCmZ1bmN0aW9uIGdldEJyZWFkY3J1bWIoJGl0ZW1zKSB7CiAgICBnbG9iYWwgJGN1cnJlbnRfbGFuZzsKCiAgICBpZiAoZW1wdHkoJGl0ZW1zKSkgewogICAgICAgIHJldHVybiAnJzsKICAgIH0KCiAgICAkaHRtbCA9ICc8bmF2IGFyaWEtbGFiZWw9ImJyZWFkY3J1bWIiIGNsYXNzPSJteS0zIj4nOwogICAgJGh0bWwgLj0gJzxvbCBjbGFzcz0iYnJlYWRjcnVtYiI+JzsKCiAgICBmb3JlYWNoICgkaXRlbXMgYXMgJGluZGV4ID0+ICRpdGVtKSB7CiAgICAgICAgJGlzX2xhc3QgPSAoJGluZGV4ID09PSBjb3VudCgkaXRlbXMpIC0gMSk7CgogICAgICAgIGlmICgkaXNfbGFzdCkgewogICAgICAgICAgICAkaHRtbCAuPSAnPGxpIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0gYWN0aXZlIiBhcmlhLWN1cnJlbnQ9InBhZ2UiPicgLiBjbGVhbigkaXRlbVsndGl0bGUnXSkgLiAnPC9saT4nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRodG1sIC49ICc8bGkgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSI+PGEgaHJlZj0iJyAuIGNsZWFuKCRpdGVtWyd1cmwnXSkgLiAnIj4nIC4gY2xlYW4oJGl0ZW1bJ3RpdGxlJ10pIC4gJzwvYT48L2xpPic7CiAgICAgICAgfQogICAgfQoKICAgICRodG1sIC49ICc8L29sPic7CiAgICAkaHRtbCAuPSAnPC9uYXY+JzsKCiAgICByZXR1cm4gJGh0bWw7Cn0KCi8qKgogKiBHZW5lcmF0ZSBicmVhZGNydW1iIHNjaGVtYSBmb3IgU0VPCiAqLwppZiAoIWZ1bmN0aW9uX2V4aXN0cygnZ2VuZXJhdGVCcmVhZGNydW1iU2NoZW1hJykpIHsKZnVuY3Rpb24gZ2VuZXJhdGVCcmVhZGNydW1iU2NoZW1hKCRwYWdlX3RpdGxlLCAkcGFnZV91cmwpIHsKICAgICRpdGVtcyA9IFsKICAgICAgICBbCiAgICAgICAgICAgICdAdHlwZScgPT4gJ0xpc3RJdGVtJywKICAgICAgICAgICAgJ3Bvc2l0aW9uJyA9PiAxLAogICAgICAgICAgICAnbmFtZScgPT4gJ9in2YTYsdim2YrYs9mK2KknLAogICAgICAgICAgICAnaXRlbScgPT4gU0lURV9VUkwKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgICAgJ0B0eXBlJyA9PiAnTGlzdEl0ZW0nLAogICAgICAgICAgICAncG9zaXRpb24nID0+IDIsCiAgICAgICAgICAgICduYW1lJyA9PiAn2KzZhdmK2Lkg2KfZhNij2K\/ZiNin2KonLAogICAgICAgICAgICAnaXRlbScgPT4gU0lURV9VUkwgLiAnL3Rvb2xzLnBocCcKICAgICAgICBdLAogICAgICAgIFsKICAgICAgICAgICAgJ0B0eXBlJyA9PiAnTGlzdEl0ZW0nLAogICAgICAgICAgICAncG9zaXRpb24nID0+IDMsCiAgICAgICAgICAgICduYW1lJyA9PiAkcGFnZV90aXRsZQogICAgICAgIF0KICAgIF07CgogICAgJHNjaGVtYSA9IFsKICAgICAgICAnQGNvbnRleHQnID0+ICdodHRwczovL3NjaGVtYS5vcmcnLAogICAgICAgICdAdHlwZScgPT4gJ0JyZWFkY3J1bWJMaXN0JywKICAgICAgICAnaXRlbUxpc3RFbGVtZW50JyA9PiAkaXRlbXMKICAgIF07CgogICAgcmV0dXJuIGpzb25fZW5jb2RlKCRzY2hlbWEsIEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsKfQp9CgovKioKICogR2VuZXJhdGUgQ1NSRiBUb2tlbgogKi8KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2dlbmVyYXRlQ1NSRlRva2VuJykpIHsKZnVuY3Rpb24gZ2VuZXJhdGVDU1JGVG9rZW4oKSB7CiAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnY3NyZl90b2tlbiddKSkgewogICAgICAgICRfU0VTU0lPTlsnY3NyZl90b2tlbiddID0gYmluMmhleChyYW5kb21fYnl0ZXMoMzIpKTsKICAgIH0KICAgIHJldHVybiAkX1NFU1NJT05bJ2NzcmZfdG9rZW4nXTsKfQp9CgovKioKICogVmFsaWRhdGUgQ1NSRiBUb2tlbgogKi8KaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3ZhbGlkYXRlQ1NSRlRva2VuJykpIHsKZnVuY3Rpb24gdmFsaWRhdGVDU1JGVG9rZW4oJHRva2VuKSB7CiAgICByZXR1cm4gaXNzZXQoJF9TRVNTSU9OWydjc3JmX3Rva2VuJ10pICYmIGhhc2hfZXF1YWxzKCRfU0VTU0lPTlsnY3NyZl90b2tlbiddLCAkdG9rZW4pOwp9Cn0KCi8qKgogKiBSYXRlIExpbWl0aW5nCiAqLwppZiAoIWZ1bmN0aW9uX2V4aXN0cygnaXNSYXRlTGltaXRlZCcpKSB7CmZ1bmN0aW9uIGlzUmF0ZUxpbWl0ZWQoJGFjdGlvbiwgJG1heF9yZXF1ZXN0cyA9IDEwLCAkdGltZV93aW5kb3cgPSA2MCkgewogICAgJGlwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gPz8gJ3Vua25vd24nOwogICAgJGtleSA9ICdyYXRlX2xpbWl0XycgLiAkYWN0aW9uIC4gJ18nIC4gJGlwOwoKICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWyRrZXldKSkgewogICAgICAgICRfU0VTU0lPTlska2V5XSA9IFsKICAgICAgICAgICAgJ2NvdW50JyA9PiAwLAogICAgICAgICAgICAnc3RhcnRfdGltZScgPT4gdGltZSgpCiAgICAgICAgXTsKICAgIH0KCiAgICAkZGF0YSA9ICRfU0VTU0lPTlska2V5XTsKCiAgICAvLyBSZXNldCBpZiB0aW1lIHdpbmRvdyBoYXMgcGFzc2VkCiAgICBpZiAodGltZSgpIC0gJGRhdGFbJ3N0YXJ0X3RpbWUnXSA+ICR0aW1lX3dpbmRvdykgewogICAgICAgICRfU0VTU0lPTlska2V5XSA9IFsKICAgICAgICAgICAgJ2NvdW50JyA9PiAxLAogICAgICAgICAgICAnc3RhcnRfdGltZScgPT4gdGltZSgpCiAgICAgICAgXTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gSW5jcmVtZW50IGNvdW50CiAgICAkX1NFU1NJT05bJGtleV1bJ2NvdW50J10rKzsKCiAgICAvLyBDaGVjayBpZiBsaW1pdCBleGNlZWRlZAogICAgcmV0dXJuICRfU0VTU0lPTlska2V5XVsnY291bnQnXSA+ICRtYXhfcmVxdWVzdHM7Cn0KfQo\/Pgo=","salary-dates.php":"PD9waHAKcmVxdWlyZV9vbmNlICdjb25maWcucGhwJzsKcmVxdWlyZV9vbmNlICdpbmNsdWRlcy9mdW5jdGlvbnMucGhwJzsKCiRwYWdlX3RpdGxlID0gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdmI2KfYudmK2K8g2KfZhNix2YjYp9iq2Kgg2YjYp9mE2K\/YudmFIDE0NDfZh9mAIC0gMjAyNdmFIHwg2K3Yp9mB2LIg2LPYp9mG2K8g2KfZhNi22YXYp9mGINit2LPYp9ioINin2YTZhdmI2KfYt9mGINin2YTYqtij2YfZitmEJyA6ICdTYWxhcnkgJiBTdXBwb3J0IERhdGVzIDE0NDdIIC0gMjAyNSB8IEhhZml6LCBTYW5hZCwgU29jaWFsIFNlY3VyaXR5LCBDaXRpemVuIEFjY291bnQnOwokcGFnZV9kZXNjcmlwdGlvbiA9ICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KzYr9mI2YQg2YXZiNin2LnZitivINi12LHZgSDYp9mE2LHZiNin2KrYqCDYp9mE2K3Zg9mI2YXZitipINmI2KfZhNi52LPZg9ix2YrYqSDZiNin2YTYqtmC2KfYudivINmI2KjYsdin2YXYrCDYp9mE2K\/YudmFOiDYrdin2YHYstiMINiz2KfZhtiv2Iwg2KfZhNi22YXYp9mGINin2YTYp9is2KrZhdin2LnZitiMINin2YTYqtij2YfZitmEINin2YTYtNin2YXZhNiMINiv2LnZhSDYp9mE2KXYs9mD2KfZhtiMINit2LPYp9ioINin2YTZhdmI2KfYt9mG2Iwg2KfZhNiv2LnZhSDYp9mE2LLYsdin2LnZiiDZiNmF2YPYp9mB2KLYqiDYp9mE2LfZhNin2Kgg2YTZhNi52KfZhSAxNDQ32YfZgCAtIDIwMjUtMjAyNtmFJyA6ICdDb21wbGV0ZSBwYXltZW50IHNjaGVkdWxlIGZvciBnb3Zlcm5tZW50LCBtaWxpdGFyeSBzYWxhcmllcywgcGVuc2lvbnMgYW5kIHN1cHBvcnQgcHJvZ3JhbXM6IEhhZml6LCBTYW5hZCwgU29jaWFsIFNlY3VyaXR5LCBSZWhhYmlsaXRhdGlvbiwgSG91c2luZyBTdXBwb3J0LCBDaXRpemVuIEFjY291bnQsIEFncmljdWx0dXJhbCBTdXBwb3J0IGFuZCBTdHVkZW50IFJld2FyZHMgZm9yIDE0NDdIICgyMDI1LTIwMjYpJzsKJHBhZ2Vfa2V5d29yZHMgPSAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mF2YjYp9i52YrYryDYp9mE2LHZiNin2KrYqCwg2LXYsdmBINin2YTYsdmI2KfYqtioLCDYrdin2YHYsiwg2LPYp9mG2K8sINin2YTYttmF2KfZhiDYp9mE2KfYrNiq2YXYp9i52YosINin2YTYqtij2YfZitmEINin2YTYtNin2YXZhCwg2K\/YudmFINin2YTYpdiz2YPYp9mGLCDYrdiz2KfYqCDYp9mE2YXZiNin2LfZhiwg2KfZhNiv2LnZhSDYp9mE2LLYsdin2LnZiiwg2YXZg9in2YHYotiqINin2YTYt9mE2KfYqCwg2KfZhNi22YXYp9mGINin2YTZhdi32YjYsScgOiAnc2FsYXJ5IGRhdGVzLCBwYXltZW50IHNjaGVkdWxlLCBoYWZpeiwgc2FuYWQsIHNvY2lhbCBzZWN1cml0eSwgcmVoYWJpbGl0YXRpb24sIGhvdXNpbmcgc3VwcG9ydCwgY2l0aXplbiBhY2NvdW50LCBhZ3JpY3VsdHVyYWwgc3VwcG9ydCwgc3R1ZGVudCByZXdhcmRzJzsKJGNhbm9uaWNhbF91cmwgPSBTSVRFX1VSTCAuICcvc2FsYXJ5LWRhdGVzLnBocCc7CgovLyBHZW5lcmF0ZSBzYWxhcnkgZGF0ZXMgZHluYW1pY2FsbHkgKDIgcGFzdCBtb250aHMgKyAxMCBmdXR1cmUgbW9udGhzKQokc2FsYXJ5X3NjaGVkdWxlID0gW107CiRoaWpyaV9tb250aHMgPSBbJ9mF2K3YsdmFJywgJ9i12YHYsScsICfYsdio2YrYuSDYp9mE2KPZiNmEJywgJ9ix2KjZiti5INin2YTYq9in2YbZiicsICfYrNmF2KfYr9mJINin2YTYo9mI2YTZiScsICfYrNmF2KfYr9mJINin2YTYotiu2LHYqScsICfYsdis2KgnLCAn2LTYudio2KfZhicsICfYsdmF2LbYp9mGJywgJ9i02YjYp9mEJywgJ9iw2Ygg2KfZhNmC2LnYr9ipJywgJ9iw2Ygg2KfZhNit2KzYqSddOwoKLy8gU3RhcnQgZnJvbSAyIG1vbnRocyBhZ28KJHN0YXJ0X2RhdGUgPSBuZXcgRGF0ZVRpbWUoKTsKJHN0YXJ0X2RhdGUtPm1vZGlmeSgnLTIgbW9udGhzJyk7CgovLyBHZW5lcmF0ZSAxMiBtb250aHMgKDIgcGFzdCArIGN1cnJlbnQgKyA5IGZ1dHVyZSkKZm9yICgkaSA9IDA7ICRpIDwgMTI7ICRpKyspIHsKICAgICRwYXltZW50X2RhdGUgPSBjbG9uZSAkc3RhcnRfZGF0ZTsKICAgICRwYXltZW50X2RhdGUtPm1vZGlmeSgiKyRpIG1vbnRocyIpOwoKICAgIC8vIFNldCB0byAyN3RoIG9mIGVhY2ggbW9udGggZm9yIGdvdmVybm1lbnQgc2FsYXJpZXMKICAgICRwYXltZW50X2RhdGUtPnNldERhdGUoJHBheW1lbnRfZGF0ZS0+Zm9ybWF0KCdZJyksICRwYXltZW50X2RhdGUtPmZvcm1hdCgnbScpLCAyNyk7CgogICAgLy8gQWRqdXN0IGZvciB3ZWVrZW5kcwogICAgJGRheV9vZl93ZWVrID0gKGludCkkcGF5bWVudF9kYXRlLT5mb3JtYXQoJ04nKTsKICAgIGlmICgkZGF5X29mX3dlZWsgPT0gNSkgeyAvLyBGcmlkYXkKICAgICAgICAkcGF5bWVudF9kYXRlLT5tb2RpZnkoJy0xIGRheScpOwogICAgfSBlbHNlaWYgKCRkYXlfb2Zfd2VlayA9PSA2KSB7IC8vIFNhdHVyZGF5CiAgICAgICAgJHBheW1lbnRfZGF0ZS0+bW9kaWZ5KCcrMSBkYXknKTsKICAgIH0KCiAgICAkbW9udGhfaW5kZXggPSAoJGkgKyAoaW50KWRhdGUoJ20nLCAkc3RhcnRfZGF0ZS0+Z2V0VGltZXN0YW1wKCkpIC0gMSkgJSAxMjsKICAgICRoaWpyaV95ZWFyID0gMTQ0NzsgLy8gQXBwcm94aW1hdGUKICAgICRoaWpyaV9tb250aF9udW0gPSAkbW9udGhfaW5kZXggKyAxOwoKICAgICRzYWxhcnlfc2NoZWR1bGVbXSA9IFsKICAgICAgICAnaGlqcmlfbW9udGgnID0+ICRoaWpyaV9tb250aHNbJG1vbnRoX2luZGV4XSwKICAgICAgICAnaGlqcmlfZGF0ZScgPT4gc3ByaW50ZignMDUtJTAyZC0lZCcsICRoaWpyaV9tb250aF9udW0sICRoaWpyaV95ZWFyKSwKICAgICAgICAnZ3JlZ29yaWFuX2RhdGUnID0+ICRwYXltZW50X2RhdGUtPmZvcm1hdCgnWS1tLWQnKSwKICAgICAgICAnc2VjdG9yJyA9PiAn2K3Zg9mI2YXZiicKICAgIF07Cn0KCi8vIENhbGN1bGF0ZSBuZXh0IHBheW1lbnQKJG5leHRfcGF5bWVudCA9IG51bGw7CiR0b2RheSA9IG5ldyBEYXRlVGltZSgpOwpmb3JlYWNoICgkc2FsYXJ5X3NjaGVkdWxlIGFzICRwYXltZW50KSB7CiAgICAkcGF5bWVudF9kYXRlID0gbmV3IERhdGVUaW1lKCRwYXltZW50WydncmVnb3JpYW5fZGF0ZSddKTsKICAgIGlmICgkcGF5bWVudF9kYXRlID49ICR0b2RheSkgewogICAgICAgICRuZXh0X3BheW1lbnQgPSAkcGF5bWVudDsKICAgICAgICAkbmV4dF9wYXltZW50WydkYXRlX29iaiddID0gJHBheW1lbnRfZGF0ZTsKICAgICAgICAkbmV4dF9wYXltZW50WydkYXlzX3JlbWFpbmluZyddID0gJHRvZGF5LT5kaWZmKCRwYXltZW50X2RhdGUpLT5kYXlzOwogICAgICAgIGJyZWFrOwogICAgfQp9CgovLyBNaWxpdGFyeSBhbmQgcGVuc2lvbiBkYXRlcyAtIER5bmFtaWMgKDIgcGFzdCArIDEwIGZ1dHVyZSBtb250aHMpCiRtaWxpdGFyeV9zY2hlZHVsZSA9IFtdOwokcGVuc2lvbl9zY2hlZHVsZSA9IFtdOwokY2l0aXplbl9zY2hlZHVsZSA9IFtdOwoKJHN0YXJ0X2RhdGVfbWlsaXRhcnkgPSBuZXcgRGF0ZVRpbWUoKTsKJHN0YXJ0X2RhdGVfbWlsaXRhcnktPm1vZGlmeSgnLTIgbW9udGhzJyk7Cgpmb3IgKCRpID0gMDsgJGkgPCAxMjsgJGkrKykgewogICAgLy8gTWlsaXRhcnk6IDEwdGggb2YgZWFjaCBtb250aAogICAgJG1pbGl0YXJ5X2RhdGUgPSBjbG9uZSAkc3RhcnRfZGF0ZV9taWxpdGFyeTsKICAgICRtaWxpdGFyeV9kYXRlLT5tb2RpZnkoIiskaSBtb250aHMiKTsKICAgICRtaWxpdGFyeV9kYXRlLT5zZXREYXRlKCRtaWxpdGFyeV9kYXRlLT5mb3JtYXQoJ1knKSwgJG1pbGl0YXJ5X2RhdGUtPmZvcm1hdCgnbScpLCAxMCk7CgogICAgLy8gQWRqdXN0IGZvciB3ZWVrZW5kcyAoRnJpZGF5IC0+IFRodXJzZGF5LCBTYXR1cmRheSAtPiBTdW5kYXkpCiAgICAkZGF5X29mX3dlZWsgPSAoaW50KSRtaWxpdGFyeV9kYXRlLT5mb3JtYXQoJ04nKTsKICAgIGlmICgkZGF5X29mX3dlZWsgPT0gNSkgeyAvLyBGcmlkYXkKICAgICAgICAkbWlsaXRhcnlfZGF0ZS0+bW9kaWZ5KCctMSBkYXknKTsKICAgIH0gZWxzZWlmICgkZGF5X29mX3dlZWsgPT0gNikgeyAvLyBTYXR1cmRheQogICAgICAgICRtaWxpdGFyeV9kYXRlLT5tb2RpZnkoJysxIGRheScpOwogICAgfQoKICAgICRtaWxpdGFyeV9zY2hlZHVsZVtdID0gWwogICAgICAgICdtb250aCcgPT4gKGludCkkbWlsaXRhcnlfZGF0ZS0+Zm9ybWF0KCdtJyksCiAgICAgICAgJ3llYXInID0+IChpbnQpJG1pbGl0YXJ5X2RhdGUtPmZvcm1hdCgnWScpLAogICAgICAgICdncmVnb3JpYW5fZGF0ZScgPT4gJG1pbGl0YXJ5X2RhdGUtPmZvcm1hdCgnWS1tLWQnKSwKICAgICAgICAnZGF5X25hbWUnID0+ICRtaWxpdGFyeV9kYXRlLT5mb3JtYXQoJ2wnKQogICAgXTsKCiAgICAvLyBQZW5zaW9uOiAxc3Qgb2YgZWFjaCBtb250aAogICAgJHBlbnNpb25fZGF0ZSA9IGNsb25lICRzdGFydF9kYXRlX21pbGl0YXJ5OwogICAgJHBlbnNpb25fZGF0ZS0+bW9kaWZ5KCIrJGkgbW9udGhzIik7CiAgICAkcGVuc2lvbl9kYXRlLT5zZXREYXRlKCRwZW5zaW9uX2RhdGUtPmZvcm1hdCgnWScpLCAkcGVuc2lvbl9kYXRlLT5mb3JtYXQoJ20nKSwgMSk7CgogICAgLy8gQWRqdXN0IGZvciB3ZWVrZW5kcyAoRnJpZGF5IC0+IFRodXJzZGF5LCBTYXR1cmRheSAtPiBTdW5kYXkpCiAgICAkZGF5X29mX3dlZWsgPSAoaW50KSRwZW5zaW9uX2RhdGUtPmZvcm1hdCgnTicpOwogICAgaWYgKCRkYXlfb2Zfd2VlayA9PSA1KSB7IC8vIEZyaWRheQogICAgICAgICRwZW5zaW9uX2RhdGUtPm1vZGlmeSgnLTEgZGF5Jyk7CiAgICB9IGVsc2VpZiAoJGRheV9vZl93ZWVrID09IDYpIHsgLy8gU2F0dXJkYXkKICAgICAgICAkcGVuc2lvbl9kYXRlLT5tb2RpZnkoJysxIGRheScpOwogICAgfQoKICAgICRwZW5zaW9uX3NjaGVkdWxlW10gPSBbCiAgICAgICAgJ21vbnRoJyA9PiAoaW50KSRwZW5zaW9uX2RhdGUtPmZvcm1hdCgnbScpLAogICAgICAgICd5ZWFyJyA9PiAoaW50KSRwZW5zaW9uX2RhdGUtPmZvcm1hdCgnWScpLAogICAgICAgICdncmVnb3JpYW5fZGF0ZScgPT4gJHBlbnNpb25fZGF0ZS0+Zm9ybWF0KCdZLW0tZCcpLAogICAgICAgICdkYXlfbmFtZScgPT4gJHBlbnNpb25fZGF0ZS0+Zm9ybWF0KCdsJykKICAgIF07CgogICAgLy8gQ2l0aXplbiBBY2NvdW50OiAxMHRoIG9mIGVhY2ggbW9udGggKHNhbWUgYXMgbWlsaXRhcnkpCiAgICAkY2l0aXplbl9zY2hlZHVsZVtdID0gWwogICAgICAgICdtb250aCcgPT4gKGludCkkbWlsaXRhcnlfZGF0ZS0+Zm9ybWF0KCdtJyksCiAgICAgICAgJ3llYXInID0+IChpbnQpJG1pbGl0YXJ5X2RhdGUtPmZvcm1hdCgnWScpLAogICAgICAgICdncmVnb3JpYW5fZGF0ZScgPT4gJG1pbGl0YXJ5X2RhdGUtPmZvcm1hdCgnWS1tLWQnKSwKICAgICAgICAnZGF5X25hbWUnID0+ICRtaWxpdGFyeV9kYXRlLT5mb3JtYXQoJ2wnKQogICAgXTsKfQoKLy8gQWRkaXRpb25hbCBTdXBwb3J0IFByb2dyYW1zIC0gQWxsIDEwdGggb2YgZWFjaCBtb250aAokaGFmaXpfc2NoZWR1bGUgPSBbXTsgLy8gSGFmaXogKNit2KfZgdiyKSAtIDEwdGggb2YgbW9udGgKJHNhbmFkX3NjaGVkdWxlID0gW107IC8vIFNhbmFkICjYs9in2YbYrykgLSAxMHRoIG9mIG1vbnRoCiRzb2NpYWxfc2VjdXJpdHlfc2NoZWR1bGUgPSBbXTsgLy8gU29jaWFsIFNlY3VyaXR5ICjYp9mE2LbZhdin2YYg2KfZhNin2KzYqtmF2KfYudmKKSAtIDEwdGggb2YgbW9udGgKJHJlaGFiaWxpdGF0aW9uX3NjaGVkdWxlID0gW107IC8vIENvbXByZWhlbnNpdmUgUmVoYWJpbGl0YXRpb24gKNin2YTYqtij2YfZitmEINin2YTYtNin2YXZhCkgLSAxMHRoIG9mIG1vbnRoCiRob3VzaW5nX3N1cHBvcnRfc2NoZWR1bGUgPSBbXTsgLy8gSG91c2luZyBTdXBwb3J0ICjYr9i52YUg2KfZhNil2LPZg9in2YYpIC0gMTB0aCBvZiBtb250aAokYWdyaWN1bHR1cmFsX3N1cHBvcnRfc2NoZWR1bGUgPSBbXTsgLy8gQWdyaWN1bHR1cmFsIFN1cHBvcnQgKNin2YTYr9i52YUg2KfZhNiy2LHYp9i52YopIC0gMTB0aCBvZiBtb250aAokc3R1ZGVudF9yZXdhcmRzX3NjaGVkdWxlID0gW107IC8vIFN0dWRlbnQgUmV3YXJkcyAo2YXZg9in2YHYotiqINin2YTYt9mE2KfYqCkgLSAxMHRoIG9mIG1vbnRoCiRpbXByb3ZlZF9zZWN1cml0eV9zY2hlZHVsZSA9IFtdOyAvLyBJbXByb3ZlZCBTb2NpYWwgU2VjdXJpdHkgKNin2YTYttmF2KfZhiDYp9mE2YXYt9mI2LEpIC0gMTB0aCBvZiBtb250aAoKZm9yICgkaSA9IDA7ICRpIDwgMTI7ICRpKyspIHsKICAgICRzdXBwb3J0X2RhdGUgPSBjbG9uZSAkc3RhcnRfZGF0ZV9taWxpdGFyeTsKICAgICRzdXBwb3J0X2RhdGUtPm1vZGlmeSgiKyRpIG1vbnRocyIpOwogICAgJHN1cHBvcnRfZGF0ZS0+c2V0RGF0ZSgkc3VwcG9ydF9kYXRlLT5mb3JtYXQoJ1knKSwgJHN1cHBvcnRfZGF0ZS0+Zm9ybWF0KCdtJyksIDEwKTsKCiAgICAvLyBBZGp1c3QgZm9yIHdlZWtlbmRzCiAgICAkZGF5X29mX3dlZWsgPSAoaW50KSRzdXBwb3J0X2RhdGUtPmZvcm1hdCgnTicpOwogICAgaWYgKCRkYXlfb2Zfd2VlayA9PSA1KSB7IC8vIEZyaWRheQogICAgICAgICRzdXBwb3J0X2RhdGUtPm1vZGlmeSgnLTEgZGF5Jyk7CiAgICB9IGVsc2VpZiAoJGRheV9vZl93ZWVrID09IDYpIHsgLy8gU2F0dXJkYXkKICAgICAgICAkc3VwcG9ydF9kYXRlLT5tb2RpZnkoJysxIGRheScpOwogICAgfQoKICAgICRzdXBwb3J0X2RhdGEgPSBbCiAgICAgICAgJ21vbnRoJyA9PiAoaW50KSRzdXBwb3J0X2RhdGUtPmZvcm1hdCgnbScpLAogICAgICAgICd5ZWFyJyA9PiAoaW50KSRzdXBwb3J0X2RhdGUtPmZvcm1hdCgnWScpLAogICAgICAgICdncmVnb3JpYW5fZGF0ZScgPT4gJHN1cHBvcnRfZGF0ZS0+Zm9ybWF0KCdZLW0tZCcpLAogICAgICAgICdkYXlfbmFtZScgPT4gJHN1cHBvcnRfZGF0ZS0+Zm9ybWF0KCdsJykKICAgIF07CgogICAgJGhhZml6X3NjaGVkdWxlW10gPSAkc3VwcG9ydF9kYXRhOwogICAgJHNhbmFkX3NjaGVkdWxlW10gPSAkc3VwcG9ydF9kYXRhOwogICAgJHNvY2lhbF9zZWN1cml0eV9zY2hlZHVsZVtdID0gJHN1cHBvcnRfZGF0YTsKICAgICRyZWhhYmlsaXRhdGlvbl9zY2hlZHVsZVtdID0gJHN1cHBvcnRfZGF0YTsKICAgICRob3VzaW5nX3N1cHBvcnRfc2NoZWR1bGVbXSA9ICRzdXBwb3J0X2RhdGE7CiAgICAkYWdyaWN1bHR1cmFsX3N1cHBvcnRfc2NoZWR1bGVbXSA9ICRzdXBwb3J0X2RhdGE7CiAgICAkaW1wcm92ZWRfc2VjdXJpdHlfc2NoZWR1bGVbXSA9ICRzdXBwb3J0X2RhdGE7Cn0KCi8vIFN0dWRlbnQgUmV3YXJkcyAtIFVzdWFsbHkgMTB0aCBidXQgdmFyaWVzIGJ5IHNlbWVzdGVyCmZvciAoJGkgPSAwOyAkaSA8IDEyOyAkaSsrKSB7CiAgICAkc3R1ZGVudF9kYXRlID0gY2xvbmUgJHN0YXJ0X2RhdGVfbWlsaXRhcnk7CiAgICAkc3R1ZGVudF9kYXRlLT5tb2RpZnkoIiskaSBtb250aHMiKTsKICAgICRzdHVkZW50X2RhdGUtPnNldERhdGUoJHN0dWRlbnRfZGF0ZS0+Zm9ybWF0KCdZJyksICRzdHVkZW50X2RhdGUtPmZvcm1hdCgnbScpLCAxMCk7CgogICAgLy8gQWRqdXN0IGZvciB3ZWVrZW5kcwogICAgJGRheV9vZl93ZWVrID0gKGludCkkc3R1ZGVudF9kYXRlLT5mb3JtYXQoJ04nKTsKICAgIGlmICgkZGF5X29mX3dlZWsgPT0gNSkgewogICAgICAgICRzdHVkZW50X2RhdGUtPm1vZGlmeSgnLTEgZGF5Jyk7CiAgICB9IGVsc2VpZiAoJGRheV9vZl93ZWVrID09IDYpIHsKICAgICAgICAkc3R1ZGVudF9kYXRlLT5tb2RpZnkoJysxIGRheScpOwogICAgfQoKICAgICRzdHVkZW50X3Jld2FyZHNfc2NoZWR1bGVbXSA9IFsKICAgICAgICAnbW9udGgnID0+IChpbnQpJHN0dWRlbnRfZGF0ZS0+Zm9ybWF0KCdtJyksCiAgICAgICAgJ3llYXInID0+IChpbnQpJHN0dWRlbnRfZGF0ZS0+Zm9ybWF0KCdZJyksCiAgICAgICAgJ2dyZWdvcmlhbl9kYXRlJyA9PiAkc3R1ZGVudF9kYXRlLT5mb3JtYXQoJ1ktbS1kJyksCiAgICAgICAgJ2RheV9uYW1lJyA9PiAkc3R1ZGVudF9kYXRlLT5mb3JtYXQoJ2wnKQogICAgXTsKfQoKZnVuY3Rpb24gZ2V0RGF5TmFtZUFyYWJpYygkZGF0ZSkgewogICAgJGRheXMgPSBbJ1N1bmRheScgPT4gJ9in2YTYo9it2K8nLCAnTW9uZGF5JyA9PiAn2KfZhNin2KvZhtmK2YYnLCAnVHVlc2RheScgPT4gJ9in2YTYq9mE2KfYq9in2KEnLCAnV2VkbmVzZGF5JyA9PiAn2KfZhNij2LHYqNi52KfYoScsICdUaHVyc2RheScgPT4gJ9in2YTYrtmF2YrYsycsICdGcmlkYXknID0+ICfYp9mE2KzZhdi52KknLCAnU2F0dXJkYXknID0+ICfYp9mE2LPYqNiqJ107CiAgICAkZGF5ID0gZGF0ZSgnbCcsIHN0cnRvdGltZSgkZGF0ZSkpOwogICAgcmV0dXJuICRkYXlzWyRkYXldID8\/ICRkYXk7Cn0KCmZ1bmN0aW9uIGdldE1vbnRoTmFtZUFyYWJpYygkbW9udGgpIHsKICAgICRtb250aHMgPSBbMSA9PiAn2YrZhtin2YrYsScsICfZgdio2LHYp9mK2LEnLCAn2YXYp9ix2LMnLCAn2KPYqNix2YrZhCcsICfZhdin2YrZiCcsICfZitmI2YbZitmIJywgJ9mK2YjZhNmK2YgnLCAn2KPYutiz2LfYsycsICfYs9io2KrZhdio2LEnLCAn2KPZg9iq2YjYqNixJywgJ9mG2YjZgdmF2KjYsScsICfYr9mK2LPZhdio2LEnXTsKICAgIHJldHVybiAkbW9udGhzWyhpbnQpJG1vbnRoXSA\/PyAnJzsKfQoKLy8gU2NoZW1hIE1hcmt1cAokc2NoZW1hX21hcmt1cCA9IGpzb25fZW5jb2RlKFsKICAgICdAY29udGV4dCcgPT4gJ2h0dHBzOi8vc2NoZW1hLm9yZycsCiAgICAnQHR5cGUnID0+ICdXZWJBcHBsaWNhdGlvbicsCiAgICAnbmFtZScgPT4gJHBhZ2VfdGl0bGUsCiAgICAnZGVzY3JpcHRpb24nID0+ICRwYWdlX2Rlc2NyaXB0aW9uLAogICAgJ3VybCcgPT4gJGNhbm9uaWNhbF91cmwsCiAgICAnYXBwbGljYXRpb25DYXRlZ29yeScgPT4gJ0ZpbmFuY2VBcHBsaWNhdGlvbicsCiAgICAnb3BlcmF0aW5nU3lzdGVtJyA9PiAnQWxsJywKICAgICdvZmZlcnMnID0+IFsKICAgICAgICAnQHR5cGUnID0+ICdPZmZlcicsCiAgICAgICAgJ3ByaWNlJyA9PiAnMCcsCiAgICAgICAgJ3ByaWNlQ3VycmVuY3knID0+ICdTQVInCiAgICBdLAogICAgJ2lzQWNjZXNzaWJsZUZvckZyZWUnID0+IHRydWUKXSk7CgovLyBCcmVhZGNydW1iIFNjaGVtYSAtIGlubGluZSB2ZXJzaW9uCiRicmVhZGNydW1iX3NjaGVtYSA9IGpzb25fZW5jb2RlKFsKICAgICdAY29udGV4dCcgPT4gJ2h0dHBzOi8vc2NoZW1hLm9yZycsCiAgICAnQHR5cGUnID0+ICdCcmVhZGNydW1iTGlzdCcsCiAgICAnaXRlbUxpc3RFbGVtZW50JyA9PiBbCiAgICAgICAgWwogICAgICAgICAgICAnQHR5cGUnID0+ICdMaXN0SXRlbScsCiAgICAgICAgICAgICdwb3NpdGlvbicgPT4gMSwKICAgICAgICAgICAgJ25hbWUnID0+ICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNix2KbZitiz2YrYqScgOiAnSG9tZScsCiAgICAgICAgICAgICdpdGVtJyA9PiBTSVRFX1VSTAogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgICAnQHR5cGUnID0+ICdMaXN0SXRlbScsCiAgICAgICAgICAgICdwb3NpdGlvbicgPT4gMiwKICAgICAgICAgICAgJ25hbWUnID0+ICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KzZhdmK2Lkg2KfZhNij2K\/ZiNin2KonIDogJ0FsbCBUb29scycsCiAgICAgICAgICAgICdpdGVtJyA9PiBTSVRFX1VSTCAuICcvdG9vbHMucGhwJwogICAgICAgIF0sCiAgICAgICAgWwogICAgICAgICAgICAnQHR5cGUnID0+ICdMaXN0SXRlbScsCiAgICAgICAgICAgICdwb3NpdGlvbicgPT4gMywKICAgICAgICAgICAgJ25hbWUnID0+ICRwYWdlX3RpdGxlCiAgICAgICAgXQogICAgXQpdKTsKCnJlcXVpcmVfb25jZSAnaW5jbHVkZXMvaGVhZGVyLnBocCc7Cj8+Cgo8c3R5bGU+CiAgICAuc2FsYXJ5LWhlYWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzFGQjU3QiAwJSwgIzE4YTg2OSAxMDAlKTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogNDBweCAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMSk7CiAgICB9CiAgICAuY291bnRkb3duLWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwwLDAsMC4wOCk7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAjMUZCNTdCOwogICAgfQogICAgLmNvdW50ZG93bi10aW1lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBnYXA6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgIH0KICAgIC50aW1lLXVuaXQgewogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxRkI1N0IsICMxOGE4NjkpOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogODBweDsKICAgICAgICBib3gtc2hhZG93OiAwIDNweCAxMHB4IHJnYmEoMzEsIDE4MSwgMTIzLCAwLjMpOwogICAgfQogICAgLnRpbWUtdW5pdCAubnVtYmVyIHsKICAgICAgICBmb250LXNpemU6IDJyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgIH0KICAgIC50aW1lLXVuaXQgLmxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgIG1hcmdpbi10b3A6IDVweDsKICAgIH0KICAgIC5zZWN0b3ItY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTllY2VmOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KICAgIC5zZWN0b3ItY2FyZDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMUZCNTdCOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgICAgICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMzEsIDE4MSwgMTIzLCAwLjIpOwogICAgfQogICAgLnNlY3Rvci1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIuNXJlbTsKICAgICAgICBjb2xvcjogIzFGQjU3QjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgfQogICAgLnNhbGFyeS10YWJsZSB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDE1cHggcmdiYSgwLDAsMCwwLjA4KTsKICAgIH0KICAgIC5zYWxhcnktdGFibGUgdGFibGUgewogICAgICAgIG1hcmdpbjogMDsKICAgIH0KICAgIC5zYWxhcnktdGFibGUgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxRkI1N0IsICMxOGE4NjkpOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KICAgIC5zYWxhcnktdGFibGUgdGhlYWQgdGggewogICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICB9CiAgICAuc2FsYXJ5LXRhYmxlIHRib2R5IHRyIHsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgIH0KICAgIC5zYWxhcnktdGFibGUgdGJvZHkgdHI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICNmOGZmZjk7CiAgICB9CiAgICAuc2FsYXJ5LXRhYmxlIHRib2R5IHRkIHsKICAgICAgICBwYWRkaW5nOiAxNXB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB9CiAgICAuYmFkZ2UtbmV4dCB7CiAgICAgICAgYmFja2dyb3VuZDogIzFGQjU3QjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC5iYWRnZS1wYXN0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNmM3NTdkOwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBwYWRkaW5nOiA1cHggMTVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTsKICAgIH0KICAgIC5pbmZvLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgcGFkZGluZzogMzBweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICMxRkI1N0I7CiAgICB9CiAgICAuaW5mby1zZWN0aW9uIGgzIHsKICAgICAgICBjb2xvcjogIzFGQjU3QjsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICB9CiAgICAuaW5mby1zZWN0aW9uIHVsIHsKICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuaW5mby1zZWN0aW9uIHVsIGxpIHsKICAgICAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7CiAgICB9CiAgICAuaW5mby1zZWN0aW9uIHVsIGxpOmJlZm9yZSB7CiAgICAgICAgY29udGVudDogIuKckyI7CiAgICAgICAgY29sb3I6ICMxRkI1N0I7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7CiAgICB9CiAgICAubmF2LXRhYnMgLm5hdi1saW5rIHsKICAgICAgICBjb2xvcjogIzY2NjsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAubmF2LXRhYnMgLm5hdi1saW5rLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICMxRkI1N0I7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICMxRkI1N0I7CiAgICB9CiAgICAuaGlnaGxpZ2h0LWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZjVmNSAwJSwgI2ZmZTllOSAxMDAlKTsKICAgICAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjZGMzNTQ1OwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBtYXJnaW46IDIwcHggMDsKICAgIH0KICAgIC5yZWxhdGVkLWxpbmtzIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTVweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OwogICAgfQogICAgLnJlbGF0ZWQtbGluayB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTllY2VmOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgfQogICAgLnJlbGF0ZWQtbGluazpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMUZCNTdCOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICBjb2xvcjogIzFGQjU3QjsKICAgIH0KCiAgICAvKiBQcmludCBCdXR0b24gKi8KICAgIC5wcmludC1idXR0b24gewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBib3R0b206IDMwcHg7CiAgICAgICAgbGVmdDogMzBweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIGJhY2tncm91bmQ6ICMxRkI1N0I7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNXB4IDI1cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMzEsIDE4MSwgMTIzLCAwLjQpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgfQogICAgLnByaW50LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzE4YTg2OTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgzMSwgMTgxLCAxMjMsIDAuNik7CiAgICB9CgogICAgLyogUHJpbnQgU3R5bGVzICovCiAgICBAbWVkaWEgcHJpbnQgewogICAgICAgIC8qIEhpZGUgZWxlbWVudHMgdGhhdCBzaG91bGRuJ3QgYmUgcHJpbnRlZCAqLwogICAgICAgIC5icmVhZGNydW1iLCAuc2FsYXJ5LWhlYWRlciwgLmNvdW50ZG93bi1jYXJkLCAuc2VjdG9yLWNhcmQsCiAgICAgICAgLm5hdi10YWJzLCAuaW5mby1zZWN0aW9uLCAuaGlnaGxpZ2h0LWJveCwgLnJlbGF0ZWQtbGlua3MsCiAgICAgICAgLnByaW50LWJ1dHRvbiwgaGVhZGVyLCBmb290ZXIsIC5uYXZiYXIgewogICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICAvKiBTaG93IG9ubHkgdGhlIGFjdGl2ZSB0YWIgKi8KICAgICAgICAudGFiLXBhbmUgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgICAgfQoKICAgICAgICAvKiBSZXNldCBwYWdlIHN0eWxpbmcgZm9yIHByaW50ICovCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgICAgICBmb250LXNpemU6IDEycHQ7CiAgICAgICAgfQoKICAgICAgICAuY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIH0KCiAgICAgICAgLyogVGFibGUgc3R5bGluZyBmb3IgcHJpbnQgKi8KICAgICAgICAuc2FsYXJ5LXRhYmxlIHsKICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOwogICAgICAgIH0KCiAgICAgICAgLnNhbGFyeS10YWJsZSB0YWJsZSB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIH0KCiAgICAgICAgLnNhbGFyeS10YWJsZSB0aGVhZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxRkI1N0IgIWltcG9ydGFudDsKICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7CiAgICAgICAgICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDsKICAgICAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDsKICAgICAgICB9CgogICAgICAgIC5zYWxhcnktdGFibGUgdGgsIC5zYWxhcnktdGFibGUgdGQgewogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOwogICAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuYmFkZ2UtbmV4dCwgLmJhZGdlLXBhc3QsIC5iYWRnZSB7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDNweCAxMHB4OwogICAgICAgICAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7CiAgICAgICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7CiAgICAgICAgfQoKICAgICAgICAvKiBBZGQgcHJpbnQgaGVhZGVyICovCiAgICAgICAgLnNhbGFyeS10YWJsZTo6YmVmb3JlIHsKICAgICAgICAgICAgY29udGVudDogIjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdmI2KfYudmK2K8g2KfZhNix2YjYp9iq2KggMTQ0N9mH2YAgLSBoaWpyaS1jYWxlbmRhcnMuY29tJyA6ICdTYWxhcnkgRGF0ZXMgMTQ0N0ggLSBoaWpyaS1jYWxlbmRhcnMuY29tJzsgPz4iOwogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgICAgZm9udC1zaXplOiAxOHB0OwogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDA7CiAgICAgICAgfQoKICAgICAgICAvKiBQYWdlIGJyZWFrIGNvbnRyb2wgKi8KICAgICAgICB0ciB7CiAgICAgICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsKICAgICAgICB9CiAgICB9Cjwvc3R5bGU+Cgo8IS0tIEJyZWFkY3J1bWIgLS0+CjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICA8bmF2IGFyaWEtbGFiZWw9ImJyZWFkY3J1bWIiIGNsYXNzPSJteS0zIj4KICAgICAgICA8b2wgY2xhc3M9ImJyZWFkY3J1bWIiPgogICAgICAgICAgICA8bGkgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSI+PGEgaHJlZj0iLyI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYsdim2YrYs9mK2KknIDogJ0hvbWUnOyA\/PjwvYT48L2xpPgogICAgICAgICAgICA8bGkgY2xhc3M9ImJyZWFkY3J1bWItaXRlbSI+PGEgaHJlZj0iL3Rvb2xzLnBocCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYo9iv2YjYp9iqJyA6ICdUb29scyc7ID8+PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaSBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIGFjdGl2ZSIgYXJpYS1jdXJyZW50PSJwYWdlIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXZiNin2LnZitivINin2YTYsdmI2KfYqtioJyA6ICdTYWxhcnkgRGF0ZXMnOyA\/PjwvbGk+CiAgICAgICAgPC9vbD4KICAgIDwvbmF2Pgo8L2Rpdj4KCjwhLS0gTWFpbiBIZWFkZXIgLS0+CjxkaXYgY2xhc3M9InNhbGFyeS1oZWFkZXIiPgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgIDxoMSBjbGFzcz0iZGlzcGxheS00IGZ3LWJvbGQgbWItMyI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLWNhbGVuZGFyLWNoZWNrIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdmI2KfYudmK2K8g2KfZhNix2YjYp9iq2Kgg2YjYp9mE2K\/YudmFIDE0NDfZh9mAJyA6ICdTYWxhcnkgJiBTdXBwb3J0IERhdGVzIDE0NDdIJzsgPz4KICAgICAgICAgICAgPC9oMT4KICAgICAgICAgICAgPHAgY2xhc3M9ImxlYWQgbWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9is2K\/ZiNmEINi12LHZgSDYp9mE2LHZiNin2KrYqCDZiNin2YTZhdi52KfYtNin2Kog2YjYqNix2KfZhdisINin2YTYr9i52YUg2KfZhNit2YPZiNmF2YrYqTog2K3Yp9mB2LLYjCDYs9in2YbYr9iMINin2YTYttmF2KfZhtiMINin2YTYqtij2YfZitmE2Iwg2K3Ys9in2Kgg2KfZhNmF2YjYp9i32YYg2YjYutmK2LHZh9inJyA6ICdQYXltZW50IHNjaGVkdWxlIGZvciBzYWxhcmllcywgcGVuc2lvbnMgYW5kIGdvdmVybm1lbnQgc3VwcG9ydCBwcm9ncmFtczogSGFmaXosIFNhbmFkLCBTb2NpYWwgU2VjdXJpdHksIFJlaGFiaWxpdGF0aW9uLCBDaXRpemVuIEFjY291bnQgYW5kIG1vcmUnOyA\/PjwvcD4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CgogICAgPCEtLSBDb3VudGRvd24gU2VjdGlvbiAtLT4KICAgIDw\/cGhwIGlmICgkbmV4dF9wYXltZW50KTogPz4KICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgIDxoMiBjbGFzcz0ibWItMyI+PGkgY2xhc3M9ImZhcyBmYS1jbG9jayB0ZXh0LXN1Y2Nlc3MiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYudivINin2YTYqtmG2KfYstmE2Yog2YTZhNix2KfYqtioINin2YTZgtin2K\/ZhScgOiAnQ291bnRkb3duIHRvIE5leHQgU2FsYXJ5JzsgPz48L2gyPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIj4KICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0ibWItMiI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mF2YjYudivINi12LHZgSDYsdin2KrYqCDYtNmH2LEnIDogJ1BheW1lbnQgZGF0ZSBmb3InOyA\/PiA8P3BocCBlY2hvICRuZXh0X3BheW1lbnRbJ2hpanJpX21vbnRoJ107ID8+PC9oND4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJtYi0wIGZzLTUiPgogICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PD9waHAgZWNobyBnZXREYXlOYW1lQXJhYmljKCRuZXh0X3BheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pOyA\/Pjwvc3Ryb25nPgogICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVjaG8gJG5leHRfcGF5bWVudFsnaGlqcmlfZGF0ZSddOyA\/Pjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZh9mAJyA6ICdIJzsgPz4KICAgICAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNmF2YjYp9mB2YInIDogJyc7ID8+ICg8P3BocCBlY2hvIGRhdGUoJ1ktbS1kJywgc3RydG90aW1lKCRuZXh0X3BheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+KQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvdW50ZG93bi10aW1lciIgaWQ9ImNvdW50ZG93biI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXVuaXQiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiIGlkPSJkYXlzIj4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mK2YjZhScgOiAnRGF5cyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXVuaXQiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJudW1iZXIiIGlkPSJob3VycyI+MDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFiZWwiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYs9in2LnYqScgOiAnSG91cnMnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS11bml0Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibnVtYmVyIiBpZD0ibWludXRlcyI+MDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibGFiZWwiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYr9mC2YrZgtipJyA6ICdNaW51dGVzJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtdW5pdCI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im51bWJlciIgaWQ9InNlY29uZHMiPjA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhYmVsIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KvYp9mG2YrYqScgOiAnU2Vjb25kcyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8P3BocCBlbmRpZjsgPz4KCiAgICA8IS0tIFNlY3RvciBDYXJkcyAtLT4KICAgIDxkaXYgY2xhc3M9InJvdyBtYi00Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiBtYi0zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWNhcmQiIG9uY2xpY2s9InNob3dUYWJsZSgnZ292ZXJubWVudCcpIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0b3ItaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1idWlsZGluZyI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz0iZnctYm9sZCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTZhdmI2LjZgdmI2YYg2KfZhNit2YPZiNmF2YrZiNmGJyA6ICdHb3Zlcm5tZW50IEVtcGxveWVlcyc7ID8+PC9oNT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1tdXRlZCBtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrZiNmFIDUg2YXZhiDZg9mEINi02YfYsSDZh9is2LHZiicgOiAnNXRoIG9mIGVhY2ggSGlqcmkgbW9udGgnOyA\/PjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiBtYi0zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWNhcmQiIG9uY2xpY2s9InNob3dUYWJsZSgnbWlsaXRhcnknKSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtc2hpZWxkLWFsdCI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz0iZnctYm9sZCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTZhdmI2LjZgdmI2YYg2KfZhNi52LPZg9ix2YrZiNmGJyA6ICdNaWxpdGFyeSBFbXBsb3llZXMnOyA\/PjwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQgbWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mK2YjZhSAxMCDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiicgOiAnMTB0aCBvZiBlYWNoIG1vbnRoJzsgPz48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYgbWItMyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1jYXJkIiBvbmNsaWNrPSJzaG93VGFibGUoJ3BlbnNpb24nKSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtdXNlci1jbG9jayI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz0iZnctYm9sZCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTZhdiq2YLYp9i52K\/ZiNmGJyA6ICdSZXRpcmVlcyc7ID8+PC9oNT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1tdXRlZCBtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrZiNmFIDEg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2YonIDogJzFzdCBvZiBlYWNoIG1vbnRoJzsgPz48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYgbWItMyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1jYXJkIiBvbmNsaWNrPSJzaG93VGFibGUoJ2NpdGl6ZW4nKSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtdXNlcnMiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYrdiz2KfYqCDYp9mE2YXZiNin2LfZhicgOiAnQ2l0aXplbiBBY2NvdW50JzsgPz48L2g1PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LW11dGVkIG1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitmI2YUgMTAg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2YonIDogJzEwdGggb2YgZWFjaCBtb250aCc7ID8+PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02IG1iLTMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0b3ItY2FyZCIgb25jbGljaz0ic2hvd1RhYmxlKCdoYWZpeicpIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0b3ItaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1icmllZmNhc2UiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYrdin2YHYsicgOiAnSGFmaXonOyA\/PjwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQgbWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mK2YjZhSAxMCDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiicgOiAnMTB0aCBvZiBlYWNoIG1vbnRoJzsgPz48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYgbWItMyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1jYXJkIiBvbmNsaWNrPSJzaG93VGFibGUoJ3NhbmFkJykiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1pY29uIj48aSBjbGFzcz0iZmFzIGZhLXVtYnJlbGxhIj48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPSJmdy1ib2xkIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2LPYp9mG2K8nIDogJ1NhbmFkJzsgPz48L2g1PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LW11dGVkIG1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitmI2YUgMTAg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2YonIDogJzEwdGggb2YgZWFjaCBtb250aCc7ID8+PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02IG1iLTMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0b3ItY2FyZCIgb25jbGljaz0ic2hvd1RhYmxlKCdzb2NpYWxfc2VjdXJpdHknKSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtaGFuZC1ob2xkaW5nLWhlYXJ0Ij48L2k+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPSJmdy1ib2xkIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi22YXYp9mGINin2YTYp9is2KrZhdin2LnZiicgOiAnU29jaWFsIFNlY3VyaXR5JzsgPz48L2g1PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LW11dGVkIG1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitmI2YUgMTAg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2YonIDogJzEwdGggb2YgZWFjaCBtb250aCc7ID8+PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02IG1iLTMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0b3ItY2FyZCIgb25jbGljaz0ic2hvd1RhYmxlKCdyZWhhYmlsaXRhdGlvbicpIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0b3ItaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1oZWFydGJlYXQiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2KrYo9mH2YrZhCDYp9mE2LTYp9mF2YQnIDogJ1JlaGFiaWxpdGF0aW9uJzsgPz48L2g1PgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LW11dGVkIG1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitmI2YUgMTAg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2YonIDogJzEwdGggb2YgZWFjaCBtb250aCc7ID8+PC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIGNvbC1zbS02IG1iLTMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0b3ItY2FyZCIgb25jbGljaz0ic2hvd1RhYmxlKCdob3VzaW5nJykiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1pY29uIj48aSBjbGFzcz0iZmFzIGZhLWhvbWUiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYr9i52YUg2KfZhNil2LPZg9in2YYnIDogJ0hvdXNpbmcgU3VwcG9ydCc7ID8+PC9oNT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1tdXRlZCBtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrZiNmFIDEwINmF2YYg2YPZhCDYtNmH2LEg2YXZitmE2KfYr9mKJyA6ICcxMHRoIG9mIGVhY2ggbW9udGgnOyA\/PjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiBtYi0zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWNhcmQiIG9uY2xpY2s9InNob3dUYWJsZSgnYWdyaWN1bHR1cmFsJykiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1pY29uIj48aSBjbGFzcz0iZmFzIGZhLXRyYWN0b3IiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2K\/YudmFINin2YTYstix2KfYudmKJyA6ICdBZ3JpY3VsdHVyYWwgU3VwcG9ydCc7ID8+PC9oNT4KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1tdXRlZCBtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrZiNmFIDEwINmF2YYg2YPZhCDYtNmH2LEg2YXZitmE2KfYr9mKJyA6ICcxMHRoIG9mIGVhY2ggbW9udGgnOyA\/PjwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyBjb2wtc20tNiBtYi0zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWNhcmQiIG9uY2xpY2s9InNob3dUYWJsZSgnc3R1ZGVudHMnKSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdG9yLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtZ3JhZHVhdGlvbi1jYXAiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdmD2KfZgdii2Kog2KfZhNi32YTYp9ioJyA6ICdTdHVkZW50IFJld2FyZHMnOyA\/PjwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQgbWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mK2YjZhSAxMCDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiicgOiAnMTB0aCBvZiBlYWNoIG1vbnRoJzsgPz48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMgY29sLXNtLTYgbWItMyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1jYXJkIiBvbmNsaWNrPSJzaG93VGFibGUoJ2ltcHJvdmVkX3NlY3VyaXR5JykiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rvci1pY29uIj48aSBjbGFzcz0iZmFzIGZhLWhhbmRzLWhlbHBpbmciPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9ImZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2LbZhdin2YYg2KfZhNmF2LfZiNixJyA6ICdJbXByb3ZlZCBTb2NpYWwgU2VjdXJpdHknOyA\/PjwvaDU+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQgbWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mK2YjZhSAxMCDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiicgOiAnMTB0aCBvZiBlYWNoIG1vbnRoJzsgPz48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFRhYnMgLS0+CiAgICA8dWwgY2xhc3M9Im5hdiBuYXYtdGFicyBtYi00IiBpZD0ic2FsYXJ5VGFicyIgcm9sZT0idGFibGlzdCIgc3R5bGU9ImZsZXgtd3JhcDogd3JhcDsgZm9udC1zaXplOiAwLjlyZW07Ij4KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWxpbmsgYWN0aXZlIiBkYXRhLWJzLXRvZ2dsZT0idGFiIiBkYXRhLWJzLXRhcmdldD0iI2dvdmVybm1lbnQtdGFiIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtYnVpbGRpbmciPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9it2YPZiNmF2YonIDogJ0dvdmVybm1lbnQnOyA\/PgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2xpPgogICAgICAgIDxsaSBjbGFzcz0ibmF2LWl0ZW0iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbGluayIgZGF0YS1icy10b2dnbGU9InRhYiIgZGF0YS1icy10YXJnZXQ9IiNtaWxpdGFyeS10YWIiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1zaGllbGQtYWx0Ij48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYudiz2YPYsdmKJyA6ICdNaWxpdGFyeSc7ID8+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1saW5rIiBkYXRhLWJzLXRvZ2dsZT0idGFiIiBkYXRhLWJzLXRhcmdldD0iI3BlbnNpb24tdGFiIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtdXNlci1jbG9jayI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KrZgtin2LnYrycgOiAnUGVuc2lvbic7ID8+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1saW5rIiBkYXRhLWJzLXRvZ2dsZT0idGFiIiBkYXRhLWJzLXRhcmdldD0iI2NpdGl6ZW4tdGFiIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtdXNlcnMiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9it2LPYp9ioINin2YTZhdmI2KfYt9mGJyA6ICdDaXRpemVuJzsgPz4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWxpbmsiIGRhdGEtYnMtdG9nZ2xlPSJ0YWIiIGRhdGEtYnMtdGFyZ2V0PSIjaGFmaXotdGFiIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtYnJpZWZjYXNlIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYrdin2YHYsicgOiAnSGFmaXonOyA\/PgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2xpPgogICAgICAgIDxsaSBjbGFzcz0ibmF2LWl0ZW0iPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtbGluayIgZGF0YS1icy10b2dnbGU9InRhYiIgZGF0YS1icy10YXJnZXQ9IiNzYW5hZC10YWIiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS11bWJyZWxsYSI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2LPYp9mG2K8nIDogJ1NhbmFkJzsgPz4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWxpbmsiIGRhdGEtYnMtdG9nZ2xlPSJ0YWIiIGRhdGEtYnMtdGFyZ2V0PSIjc29jaWFsLXNlY3VyaXR5LXRhYiI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLWhhbmQtaG9sZGluZy1oZWFydCI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2LbZhdin2YYnIDogJ1NlY3VyaXR5JzsgPz4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWxpbmsiIGRhdGEtYnMtdG9nZ2xlPSJ0YWIiIGRhdGEtYnMtdGFyZ2V0PSIjcmVoYWJpbGl0YXRpb24tdGFiIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtaGVhcnRiZWF0Ij48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtij2YfZitmEJyA6ICdSZWhhYic7ID8+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1saW5rIiBkYXRhLWJzLXRvZ2dsZT0idGFiIiBkYXRhLWJzLXRhcmdldD0iI2hvdXNpbmctdGFiIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtaG9tZSI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KXYs9mD2KfZhicgOiAnSG91c2luZyc7ID8+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1saW5rIiBkYXRhLWJzLXRvZ2dsZT0idGFiIiBkYXRhLWJzLXRhcmdldD0iI2FncmljdWx0dXJhbC10YWIiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS10cmFjdG9yIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYstix2KfYudmKJyA6ICdBZ3JpJzsgPz4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9saT4KICAgICAgICA8bGkgY2xhc3M9Im5hdi1pdGVtIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibmF2LWxpbmsiIGRhdGEtYnMtdG9nZ2xlPSJ0YWIiIGRhdGEtYnMtdGFyZ2V0PSIjc3R1ZGVudHMtdGFiIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtZ3JhZHVhdGlvbi1jYXAiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9i32YTYp9ioJyA6ICdTdHVkZW50cyc7ID8+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpIGNsYXNzPSJuYXYtaXRlbSI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1saW5rIiBkYXRhLWJzLXRvZ2dsZT0idGFiIiBkYXRhLWJzLXRhcmdldD0iI2ltcHJvdmVkLXNlY3VyaXR5LXRhYiI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLWhhbmRzLWhlbHBpbmciPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9i22YXYp9mGINmF2LfZiNixJyA6ICdJbXByb3ZlZCc7ID8+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvbGk+CiAgICA8L3VsPgoKICAgIDwhLS0gVGFiIENvbnRlbnQgLS0+CiAgICA8ZGl2IGNsYXNzPSJ0YWItY29udGVudCI+CgogICAgICAgIDwhLS0gR292ZXJubWVudCBFbXBsb3llZXMgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSBzaG93IGFjdGl2ZSIgaWQ9ImdvdmVybm1lbnQtdGFiIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsSDYp9mE2YfYrNix2YonIDogJ0hpanJpIE1vbnRoJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2YrZiNmFJyA6ICdEYXknOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYqtin2LHZitiuINin2YTZh9is2LHZiicgOiAnSGlqcmkgRGF0ZSc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNiq2KfYsdmK2K4g2KfZhNmF2YrZhNin2K\/ZiicgOiAnR3JlZ29yaWFuIERhdGUnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNit2KfZhNipJyA6ICdTdGF0dXMnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwCiAgICAgICAgICAgICAgICAgICAgICAgICRjb3VudGVyID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHNhbGFyeV9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfbmV4dCA9ICgkbmV4dF9wYXltZW50ICYmICRwYXltZW50WydncmVnb3JpYW5fZGF0ZSddID09ICRuZXh0X3BheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlzX3Bhc3QgPSBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pIDwgdGltZSgpOwogICAgICAgICAgICAgICAgICAgICAgICA\/PgogICAgICAgICAgICAgICAgICAgICAgICA8dHIgPD9waHAgZWNobyAkaXNfbmV4dCA\/ICdjbGFzcz0idGFibGUtc3VjY2VzcyInIDogJyc7ID8+PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciBmdy1ib2xkIj48P3BocCBlY2hvICRjb3VudGVyKys7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPjw\/cGhwIGVjaG8gJHBheW1lbnRbJ2hpanJpX21vbnRoJ107ID8+PC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvIGdldERheU5hbWVBcmFiaWMoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgZWNobyAkcGF5bWVudFsnaGlqcmlfZGF0ZSddOyA\/Pjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZh9mAJyA6ICdIJzsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQnLCBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkaXNfbmV4dCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1uZXh0Ij48aSBjbGFzcz0iZmFzIGZhLWFycm93LWxlZnQiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTZgtin2K\/ZhScgOiAnTmV4dCc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVsc2VpZiAoJGlzX3Bhc3QpOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtcGFzdCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjayI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KrZhSDYp9mE2LXYsdmBJyA6ICdQYWlkJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXNlY29uZGFyeSI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mC2KfYr9mFJyA6ICdVcGNvbWluZyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gTWlsaXRhcnkgRW1wbG95ZWVzIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRhYi1wYW5lIGZhZGUiIGlkPSJtaWxpdGFyeS10YWIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzYWxhcnktdGFibGUiPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciBtYi0wIj4KICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPiM8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2LTZh9ixINin2YTZhdmK2YTYp9iv2YonIDogJ01vbnRoJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2YrZiNmFJyA6ICdEYXknOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYqtin2LHZitiuJyA6ICdEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRtaWxpdGFyeV9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZ2V0RGF5TmFtZUFyYWJpYygkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSk7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvIGRhdGUoJ1ktbS1kJywgc3RydG90aW1lKCRwYXltZW50WydncmVnb3JpYW5fZGF0ZSddKSk7ID8+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mFJyA6ICcnOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGlzX3Bhc3QpOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtcGFzdCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjayI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KrZhSDYp9mE2LXYsdmBJyA6ICdQYWlkJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLWluZm8iPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZgtin2K\/ZhScgOiAnVXBjb21pbmcnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGZvcmVhY2g7ID8+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIFBlbnNpb24gLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InBlbnNpb24tdGFiIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsSDYp9mE2YXZitmE2KfYr9mKJyA6ICdNb250aCc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNmK2YjZhScgOiAnRGF5JzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2KrYp9ix2YrYricgOiAnRGF0ZSc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2K3Yp9mE2KknIDogJ1N0YXR1cyc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGVuc2lvbl9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZ2V0RGF5TmFtZUFyYWJpYygkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSk7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvIGRhdGUoJ1ktbS1kJywgc3RydG90aW1lKCRwYXltZW50WydncmVnb3JpYW5fZGF0ZSddKSk7ID8+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mFJyA6ICcnOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGlzX3Bhc3QpOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtcGFzdCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjayI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KrZhSDYp9mE2LXYsdmBJyA6ICdQYWlkJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXdhcm5pbmcgdGV4dC1kYXJrIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YLYp9iv2YUnIDogJ1VwY29taW5nJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA\/PgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBDaXRpemVuIEFjY291bnQgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9ImNpdGl6ZW4tdGFiIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+CiAgICAgICAgICAgICAgICA8aDU+PGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXYudmE2YjZhdin2Kog2K3Ys9in2Kgg2KfZhNmF2YjYp9i32YYnIDogJ0NpdGl6ZW4gQWNjb3VudCBJbmZvcm1hdGlvbic7ID8+PC9oNT4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrYqtmFINi12LHZgSDYr9i52YUg2K3Ys9in2Kgg2KfZhNmF2YjYp9i32YYg2YHZiiDYp9mE2YrZiNmFINin2YTYudin2LTYsSDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiiDZhNmE2YXYs9iq2YHZitiv2YrZhiDYp9mE2YXYs9iq2K3ZgtmK2YYuJyA6ICdDaXRpemVuIGFjY291bnQgc3VwcG9ydCBpcyBkaXNidXJzZWQgb24gdGhlIDEwdGggb2YgZWFjaCBtb250aCB0byBlbGlnaWJsZSBiZW5lZmljaWFyaWVzLic7ID8+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsScgOiAnTW9udGgnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYsdmK2K4g2KfZhNi12LHZgScgOiAnUGF5bWVudCBEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRtaWxpdGFyeV9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQnLCBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkaXNfcGFzdCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1wYXN0Ij48aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmFINin2YTYtdix2YEnIDogJ1BhaWQnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctcHJpbWFyeSI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mC2KfYr9mFJyA6ICdVcGNvbWluZyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gSGFmaXogLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9ImhhZml6LXRhYiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPgogICAgICAgICAgICAgICAgPGg1PjxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mF2LnZhNmI2YXYp9iqINit2KfZgdiyJyA6ICdIYWZpeiBJbmZvcm1hdGlvbic7ID8+PC9oNT4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrYqtmFINi12LHZgSDYr9i52YUg2K3Yp9mB2LIg2YHZiiDYp9mE2YrZiNmFINin2YTYudin2LTYsSDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiiDZhNmE2KjYp9it2KvZitmGINi52YYg2LnZhdmEINin2YTZhdiz2KrYrdmC2YrZhiDZiNin2YTZhdmE2KrYstmF2YrZhiDYqNi02LHZiNi3INin2YTYqNix2YbYp9mF2KwuJyA6ICdIYWZpeiBzdXBwb3J0IGlzIGRpc2J1cnNlZCBvbiB0aGUgMTB0aCBvZiBlYWNoIG1vbnRoIHRvIGVsaWdpYmxlIGpvYiBzZWVrZXJzIHdobyBtZWV0IHByb2dyYW0gcmVxdWlyZW1lbnRzLic7ID8+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsScgOiAnTW9udGgnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYsdmK2K4g2KfZhNi12LHZgScgOiAnUGF5bWVudCBEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRoYWZpel9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQnLCBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkaXNfcGFzdCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1wYXN0Ij48aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmFINin2YTYtdix2YEnIDogJ1BhaWQnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mC2KfYr9mFJyA6ICdVcGNvbWluZyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gU2FuYWQgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGFiLXBhbmUgZmFkZSIgaWQ9InNhbmFkLXRhYiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPgogICAgICAgICAgICAgICAgPGg1PjxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mF2LnZhNmI2YXYp9iqINiz2KfZhtivJyA6ICdTYW5hZCBJbmZvcm1hdGlvbic7ID8+PC9oNT4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrYqtmFINi12LHZgSDYqti52YjZiti2INiz2KfZhtivICjYp9mE2KrYo9mF2YrZhiDYttivINin2YTYqti52LfZhCDYudmGINin2YTYudmF2YQpINmB2Yog2KfZhNmK2YjZhSDYp9mE2LnYp9i02LEg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2Yog2YTZhNmF2LPYqtmB2YrYr9mK2YYg2KfZhNmF2LPYqtit2YLZitmGLicgOiAnU2FuYWQgKHVuZW1wbG95bWVudCBpbnN1cmFuY2UpIGNvbXBlbnNhdGlvbiBpcyBkaXNidXJzZWQgb24gdGhlIDEwdGggb2YgZWFjaCBtb250aCB0byBlbGlnaWJsZSBiZW5lZmljaWFyaWVzLic7ID8+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsScgOiAnTW9udGgnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYsdmK2K4g2KfZhNi12LHZgScgOiAnUGF5bWVudCBEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRzYW5hZF9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQnLCBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkaXNfcGFzdCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1wYXN0Ij48aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmFINin2YTYtdix2YEnIDogJ1BhaWQnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mC2KfYr9mFJyA6ICdVcGNvbWluZyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gU29jaWFsIFNlY3VyaXR5IC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRhYi1wYW5lIGZhZGUiIGlkPSJzb2NpYWwtc2VjdXJpdHktdGFiIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+CiAgICAgICAgICAgICAgICA8aDU+PGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXYudmE2YjZhdin2Kog2KfZhNi22YXYp9mGINin2YTYp9is2KrZhdin2LnZiicgOiAnU29jaWFsIFNlY3VyaXR5IEluZm9ybWF0aW9uJzsgPz48L2g1PgogICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitiq2YUg2LXYsdmBINmF2LnYp9i02KfYqiDYp9mE2LbZhdin2YYg2KfZhNin2KzYqtmF2KfYudmKINmB2Yog2KfZhNmK2YjZhSDYp9mE2LnYp9i02LEg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2Yog2YTZhNmF2LPYqtmB2YrYr9mK2YYg2KfZhNmF2LPYrNmE2YrZhiDZiNin2YTZhdiz2KrYrdmC2YrZhi4nIDogJ1NvY2lhbCBzZWN1cml0eSBwZW5zaW9ucyBhcmUgZGlzYnVyc2VkIG9uIHRoZSAxMHRoIG9mIGVhY2ggbW9udGggdG8gcmVnaXN0ZXJlZCBhbmQgZWxpZ2libGUgYmVuZWZpY2lhcmllcy4nOyA\/PjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNhbGFyeS10YWJsZSI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIG1iLTAiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+IzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYtNmH2LEnIDogJ01vbnRoJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtin2LHZitiuINin2YTYtdix2YEnIDogJ1BheW1lbnQgRGF0ZSc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2K3Yp9mE2KknIDogJ1N0YXR1cyc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkc29jaWFsX3NlY3VyaXR5X3NjaGVkdWxlIGFzICRwYXltZW50KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc19wYXN0ID0gc3RydG90aW1lKCRwYXltZW50WydncmVnb3JpYW5fZGF0ZSddKSA8IHRpbWUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgPz4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciBmdy1ib2xkIj48P3BocCBlY2hvICRjb3VudGVyKys7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPjw\/cGhwIGVjaG8gZ2V0TW9udGhOYW1lQXJhYmljKCRwYXltZW50Wydtb250aCddKTsgPz4gPD9waHAgZWNobyAkcGF5bWVudFsneWVhciddOyA\/Pjwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgZWNobyBkYXRlKCdZLW0tZCcsIHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkpOyA\/Pjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhScgOiAnJzsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpc19wYXN0KTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlLXBhc3QiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2siPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2YUg2KfZhNi12LHZgScgOiAnUGFpZCc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVsc2U6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zdWNjZXNzIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YLYp9iv2YUnIDogJ1VwY29taW5nJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA\/PgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBSZWhhYmlsaXRhdGlvbiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIiBpZD0icmVoYWJpbGl0YXRpb24tdGFiIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+CiAgICAgICAgICAgICAgICA8aDU+PGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXYudmE2YjZhdin2Kog2KfZhNiq2KPZh9mK2YQg2KfZhNi02KfZhdmEJyA6ICdDb21wcmVoZW5zaXZlIFJlaGFiaWxpdGF0aW9uIEluZm9ybWF0aW9uJzsgPz48L2g1PgogICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitiq2YUg2LXYsdmBINil2LnYp9mG2KfYqiDYp9mE2KrYo9mH2YrZhCDYp9mE2LTYp9mF2YQg2YHZiiDYp9mE2YrZiNmFINin2YTYudin2LTYsSDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiiDZhNiw2YjZiiDYp9mE2KXYudin2YLYqSDYp9mE2YXYs9is2YTZitmGINmB2Yog2KfZhNio2LHZhtin2YXYrC4nIDogJ0NvbXByZWhlbnNpdmUgcmVoYWJpbGl0YXRpb24gYmVuZWZpdHMgYXJlIGRpc2J1cnNlZCBvbiB0aGUgMTB0aCBvZiBlYWNoIG1vbnRoIHRvIHBlb3BsZSB3aXRoIGRpc2FiaWxpdGllcyByZWdpc3RlcmVkIGluIHRoZSBwcm9ncmFtLic7ID8+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsScgOiAnTW9udGgnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYsdmK2K4g2KfZhNi12LHZgScgOiAnUGF5bWVudCBEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyZWhhYmlsaXRhdGlvbl9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQnLCBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkaXNfcGFzdCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1wYXN0Ij48aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmFINin2YTYtdix2YEnIDogJ1BhaWQnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mC2KfYr9mFJyA6ICdVcGNvbWluZyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gSG91c2luZyBTdXBwb3J0IC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRhYi1wYW5lIGZhZGUiIGlkPSJob3VzaW5nLXRhYiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPgogICAgICAgICAgICAgICAgPGg1PjxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mF2LnZhNmI2YXYp9iqINiv2LnZhSDYp9mE2KXYs9mD2KfZhicgOiAnSG91c2luZyBTdXBwb3J0IEluZm9ybWF0aW9uJzsgPz48L2g1PgogICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitiq2YUg2LXYsdmBINiv2LnZhSDZiNiy2KfYsdipINin2YTYpdiz2YPYp9mGINmB2Yog2KfZhNmK2YjZhSDYp9mE2LnYp9i02LEg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2Yog2YTZhNmF2LPYqtmB2YrYr9mK2YYg2KfZhNmF2LPYqtit2YLZitmGINmF2YYg2KjYsdin2YXYrCDYp9mE2K\/YudmFINin2YTYs9mD2YbZii4nIDogJ01pbmlzdHJ5IG9mIEhvdXNpbmcgc3VwcG9ydCBpcyBkaXNidXJzZWQgb24gdGhlIDEwdGggb2YgZWFjaCBtb250aCB0byBlbGlnaWJsZSBiZW5lZmljaWFyaWVzIG9mIGhvdXNpbmcgc3VwcG9ydCBwcm9ncmFtcy4nOyA\/PjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNhbGFyeS10YWJsZSI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIG1iLTAiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+IzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYtNmH2LEnIDogJ01vbnRoJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtin2LHZitiuINin2YTYtdix2YEnIDogJ1BheW1lbnQgRGF0ZSc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0idGV4dC1jZW50ZXIiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYp9mE2K3Yp9mE2KknIDogJ1N0YXR1cyc7ID8+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgICAgICAgICAgICAgJGNvdW50ZXIgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkaG91c2luZ19zdXBwb3J0X3NjaGVkdWxlIGFzICRwYXltZW50KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc19wYXN0ID0gc3RydG90aW1lKCRwYXltZW50WydncmVnb3JpYW5fZGF0ZSddKSA8IHRpbWUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgPz4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciBmdy1ib2xkIj48P3BocCBlY2hvICRjb3VudGVyKys7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPjw\/cGhwIGVjaG8gZ2V0TW9udGhOYW1lQXJhYmljKCRwYXltZW50Wydtb250aCddKTsgPz4gPD9waHAgZWNobyAkcGF5bWVudFsneWVhciddOyA\/Pjwvc3Ryb25nPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgZWNobyBkYXRlKCdZLW0tZCcsIHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkpOyA\/Pjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhScgOiAnJzsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpc19wYXN0KTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlLXBhc3QiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2siPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2YUg2KfZhNi12LHZgScgOiAnUGFpZCc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVsc2U6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSBiZy1zdWNjZXNzIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YLYp9iv2YUnIDogJ1VwY29taW5nJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA\/PgogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBBZ3JpY3VsdHVyYWwgU3VwcG9ydCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIiBpZD0iYWdyaWN1bHR1cmFsLXRhYiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPgogICAgICAgICAgICAgICAgPGg1PjxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mF2LnZhNmI2YXYp9iqINin2YTYr9i52YUg2KfZhNiy2LHYp9i52YonIDogJ0FncmljdWx0dXJhbCBTdXBwb3J0IEluZm9ybWF0aW9uJzsgPz48L2g1PgogICAgICAgICAgICAgICAgPHAgY2xhc3M9Im1iLTAiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZitiq2YUg2LXYsdmBINin2YTYr9i52YUg2KfZhNiy2LHYp9i52Yog2YHZiiDYp9mE2YrZiNmFINin2YTYudin2LTYsSDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiiDZhNmE2YXYstin2LHYudmK2YYg2KfZhNmF2LPYrNmE2YrZhiDZiNin2YTZhdiz2KrYrdmC2YrZhiDZhNmE2K\/YudmFLicgOiAnQWdyaWN1bHR1cmFsIHN1cHBvcnQgaXMgZGlzYnVyc2VkIG9uIHRoZSAxMHRoIG9mIGVhY2ggbW9udGggdG8gcmVnaXN0ZXJlZCBmYXJtZXJzIGVsaWdpYmxlIGZvciBzdXBwb3J0Lic7ID8+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsScgOiAnTW9udGgnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYsdmK2K4g2KfZhNi12LHZgScgOiAnUGF5bWVudCBEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRhZ3JpY3VsdHVyYWxfc3VwcG9ydF9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQnLCBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkaXNfcGFzdCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1wYXN0Ij48aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmFINin2YTYtdix2YEnIDogJ1BhaWQnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mC2KfYr9mFJyA6ICdVcGNvbWluZyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gU3R1ZGVudCBSZXdhcmRzIC0tPgogICAgICAgIDxkaXYgY2xhc3M9InRhYi1wYW5lIGZhZGUiIGlkPSJzdHVkZW50cy10YWIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIj4KICAgICAgICAgICAgICAgIDxoNT48aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdi52YTZiNmF2KfYqiDZhdmD2KfZgdii2Kog2KfZhNi32YTYp9ioJyA6ICdTdHVkZW50IFJld2FyZHMgSW5mb3JtYXRpb24nOyA\/PjwvaDU+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ibWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mK2KrZhSDYtdix2YEg2YXZg9in2YHYotiqINin2YTYt9mE2KfYqCDYudin2K\/YqdmLINmB2Yog2KfZhNmK2YjZhSDYp9mE2LnYp9i02LEg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2Yog2YTZhNi32YTYp9ioINin2YTZhdiz2KzZhNmK2YYg2YHZiiDYp9mE2KzYp9mF2LnYp9iqINmI2KfZhNmD2YTZitin2KouJyA6ICdTdHVkZW50IHJld2FyZHMgYXJlIHVzdWFsbHkgZGlzYnVyc2VkIG9uIHRoZSAxMHRoIG9mIGVhY2ggbW9udGggdG8gc3R1ZGVudHMgcmVnaXN0ZXJlZCBpbiB1bml2ZXJzaXRpZXMgYW5kIGNvbGxlZ2VzLic7ID8+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsScgOiAnTW9udGgnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYsdmK2K4g2KfZhNi12LHZgScgOiAnUGF5bWVudCBEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRzdHVkZW50X3Jld2FyZHNfc2NoZWR1bGUgYXMgJHBheW1lbnQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlzX3Bhc3QgPSBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pIDwgdGltZSgpOwogICAgICAgICAgICAgICAgICAgICAgICA\/PgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIGZ3LWJvbGQiPjw\/cGhwIGVjaG8gJGNvdW50ZXIrKzsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+PD9waHAgZWNobyBnZXRNb250aE5hbWVBcmFiaWMoJHBheW1lbnRbJ21vbnRoJ10pOyA\/PiA8P3BocCBlY2hvICRwYXltZW50Wyd5ZWFyJ107ID8+PC9zdHJvbmc+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvIGRhdGUoJ1ktbS1kJywgc3RydG90aW1lKCRwYXltZW50WydncmVnb3JpYW5fZGF0ZSddKSk7ID8+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mFJyA6ICcnOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9InRleHQtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGlzX3Bhc3QpOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UtcGFzdCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjayI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KrZhSDYp9mE2LXYsdmBJyA6ICdQYWlkJzsgPz48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZTogPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJhZGdlIGJnLXN1Y2Nlc3MiPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZgtin2K\/ZhScgOiAnVXBjb21pbmcnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGZvcmVhY2g7ID8+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tIEltcHJvdmVkIFNvY2lhbCBTZWN1cml0eSAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItcGFuZSBmYWRlIiBpZD0iaW1wcm92ZWQtc2VjdXJpdHktdGFiIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+CiAgICAgICAgICAgICAgICA8aDU+PGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXYudmE2YjZhdin2Kog2KfZhNi22YXYp9mGINin2YTYp9is2KrZhdin2LnZiiDYp9mE2YXYt9mI2LEnIDogJ0ltcHJvdmVkIFNvY2lhbCBTZWN1cml0eSBJbmZvcm1hdGlvbic7ID8+PC9oNT4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrYqtmFINi12LHZgSDZhdi52KfYtNin2Kog2KfZhNi22YXYp9mGINin2YTYp9is2KrZhdin2LnZiiDYp9mE2YXYt9mI2LEg2YHZiiDYp9mE2YrZiNmFINin2YTYudin2LTYsSDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZiiDZhNmE2KPYs9ixINin2YTZhdiz2KrYrdmC2Kkg2KfZhNmF2LPYrNmE2Kkg2YHZiiDYp9mE2YbYuNin2YUg2KfZhNis2K\/ZitivLicgOiAnSW1wcm92ZWQgc29jaWFsIHNlY3VyaXR5IHBlbnNpb25zIGFyZSBkaXNidXJzZWQgb24gdGhlIDEwdGggb2YgZWFjaCBtb250aCB0byBlbGlnaWJsZSBmYW1pbGllcyByZWdpc3RlcmVkIGluIHRoZSBuZXcgc3lzdGVtLic7ID8+PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2FsYXJ5LXRhYmxlIj4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIgbWItMCI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InRleHQtY2VudGVyIj4jPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfZhNi02YfYsScgOiAnTW9udGgnOyA\/PjwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYsdmK2K4g2KfZhNi12LHZgScgOiAnUGF5bWVudCBEYXRlJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2YTYrdin2YTYqScgOiAnU3RhdHVzJzsgPz48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgICAgICAgICAkY291bnRlciA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRpbXByb3ZlZF9zZWN1cml0eV9zY2hlZHVsZSBhcyAkcGF5bWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXNfcGFzdCA9IHN0cnRvdGltZSgkcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXSkgPCB0aW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIgZnctYm9sZCI+PD9waHAgZWNobyAkY291bnRlcisrOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz48P3BocCBlY2hvIGdldE1vbnRoTmFtZUFyYWJpYygkcGF5bWVudFsnbW9udGgnXSk7ID8+IDw\/cGhwIGVjaG8gJHBheW1lbnRbJ3llYXInXTsgPz48L3N0cm9uZz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gZGF0ZSgnWS1tLWQnLCBzdHJ0b3RpbWUoJHBheW1lbnRbJ2dyZWdvcmlhbl9kYXRlJ10pKTsgPz48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YUnIDogJyc7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGlmICgkaXNfcGFzdCk6ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZS1wYXN0Ij48aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmFINin2YTYtdix2YEnIDogJ1BhaWQnOyA\/Pjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgYmctc3VjY2VzcyI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mC2KfYr9mFJyA6ICdVcGNvbWluZyc7ID8+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIGVuZGlmOyA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgPC9kaXY+CgogICAgPCEtLSBJbXBvcnRhbnQgSW5mb3JtYXRpb24gLS0+CiAgICA8ZGl2IGNsYXNzPSJyb3cgbXQtNSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTYiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmZvLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgPGgzPjxpIGNsYXNzPSJmYXMgZmEtbGlnaHRidWxiIj48L2k+IDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdi52YTZiNmF2KfYqiDZh9in2YXYqScgOiAnSW1wb3J0YW50IEluZm9ybWF0aW9uJzsgPz48L2gzPgogICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrYqtmFINi12LHZgSDYsdmI2KfYqtioINin2YTZhdmI2LjZgdmK2YYg2KfZhNit2YPZiNmF2YrZitmGINmB2Yog2KfZhNmK2YjZhSDYp9mE2K7Yp9mF2LMg2YXZhiDZg9mEINi02YfYsSDZh9is2LHZiicgOiAnR292ZXJubWVudCBzYWxhcmllcyBhcmUgcGFpZCBvbiB0aGUgNXRoIG9mIGVhY2ggSGlqcmkgbW9udGgnOyA\/PjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYsdmI2KfYqtioINin2YTYudiz2YPYsdmK2YrZhiDYqti12LHZgSDZgdmKINin2YTZitmI2YUg2KfZhNi52KfYtNixINmF2YYg2YPZhCDYtNmH2LEg2YXZitmE2KfYr9mKJyA6ICdNaWxpdGFyeSBzYWxhcmllcyBhcmUgcGFpZCBvbiB0aGUgMTB0aCBvZiBlYWNoIG1vbnRoJzsgPz48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXYudin2LTYp9iqINin2YTZhdiq2YLYp9i52K\/ZitmGINiq2LXYsdmBINij2YjZhCDZg9mEINi02YfYsSDZhdmK2YTYp9iv2YonIDogJ1BlbnNpb24gcGF5bWVudHMgYXJlIG1hZGUgb24gdGhlIDFzdCBvZiBlYWNoIG1vbnRoJzsgPz48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YHZiiDYrdin2YTYqSDZhdi12KfYr9mB2Kkg2KfZhNi12LHZgSDZitmI2YUg2LnYt9mE2Kkg2YrYqtmFINin2YTYqtmC2K\/ZitmFINmE2KLYrtixINmK2YjZhSDYudmF2YQnIDogJ0lmIHBheW1lbnQgZGF0ZSBmYWxscyBvbiBhIGhvbGlkYXksIGl0IGlzIGFkdmFuY2VkIHRvIHRoZSBsYXN0IHdvcmtpbmcgZGF5JzsgPz48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrYqtmFINin2YTYpdmK2K\/Yp9i5INin2YTZhdio2KfYtNixINmB2Yog2KfZhNit2LPYp9io2KfYqiDYp9mE2KjZhtmD2YrYqSDYp9mE2YXYs9is2YTYqScgOiAnRGlyZWN0IGRlcG9zaXQgaXMgbWFkZSB0byByZWdpc3RlcmVkIGJhbmsgYWNjb3VudHMnOyA\/PjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tc2VjdGlvbiI+CiAgICAgICAgICAgICAgICA8aDM+PGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSI+PC9pPiA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXZhNin2K3YuNin2Kog2YXZh9mF2KknIDogJ0ltcG9ydGFudCBOb3Rlcyc7ID8+PC9oMz4KICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KPZg9ivINmF2YYg2KrYrdiv2YrYqyDYqNmK2KfZhtin2KrZgyDYp9mE2KjZhtmD2YrYqSDZgdmKINmG2LjYp9mFINmB2KfYsdizJyA6ICdVcGRhdGUgeW91ciBiYW5rIGRldGFpbHMgaW4gdGhlIEZhcmVzIHN5c3RlbSc7ID8+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9ix2KfYrNi5INmD2LTZgSDYp9mE2LHYp9iq2Kgg2KfZhNi02YfYsdmKINmE2YTYqtij2YPYryDZhdmGINin2YTYp9iz2KrYrdmC2KfZgtin2KonIDogJ1JldmlldyB5b3VyIG1vbnRobHkgc2FsYXJ5IHN0YXRlbWVudCB0byB2ZXJpZnkgZW50aXRsZW1lbnRzJzsgPz48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YHZiiDYrdin2YTYqSDYp9mE2KrYo9iu2YrYsSDYqtmI2KfYtdmEINmF2Lkg2KXYr9in2LHYqSDYp9mE2YXZiNin2LHYryDYp9mE2KjYtNix2YrYqScgOiAnQ29udGFjdCBIUiBpbiBjYXNlIG9mIGRlbGF5cyc7ID8+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2K3YqtmB2Lgg2KjZhtiz2K7YqSDZhdmGINmD2LTZiNmBINin2YTYsdmI2KfYqtioINmE2YXYr9ipINi52KfZhdmK2YYg2LnZhNmJINin2YTYo9mC2YQnIDogJ0tlZXAgc2FsYXJ5IHN0YXRlbWVudHMgZm9yIGF0IGxlYXN0IHR3byB5ZWFycyc7ID8+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2KfYqNi5INit2LPYp9io2YMg2KfZhNio2YbZg9mKINmC2KjZhCDZhdmI2LnYryDYp9mE2LXYsdmBINio2YrZiNmF2YrZhicgOiAnQ2hlY2sgeW91ciBiYW5rIGFjY291bnQgdHdvIGRheXMgYmVmb3JlIHBheW1lbnQnOyA\/PjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gSGlnaGxpZ2h0IEJveCAtLT4KICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodC1ib3giPgogICAgICAgIDxoNCBjbGFzcz0idGV4dC1kYW5nZXIiPjxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2YbZiNmK2YcnIDogJ05vdGljZSc7ID8+PC9oND4KICAgICAgICA8cCBjbGFzcz0ibWItMCI+CiAgICAgICAgICAgIDw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJwogICAgICAgICAgICAgICAgPyAn2KfZhNmF2YjYp9i52YrYryDYp9mE2YXYsNmD2YjYsdipINij2LnZhNin2Ycg2YfZiiDZhdmI2KfYudmK2K8g2KrZgtix2YrYqNmK2Kkg2YjZgtivINiq2K7YqtmE2YEg2KjZhtin2KHZiyDYudmE2Ykg2KfZhNmC2LHYp9ix2KfYqiDYp9mE2LHYs9mF2YrYqSDYp9mE2LXYp9iv2LHYqSDZhdmGINmI2LLYp9ix2Kkg2KfZhNmF2KfZhNmK2Kkg2YjYp9mE2KzZh9in2Kog2KfZhNmF2K7Yqti12KkuINmK2LHYrNmJINmF2KrYp9io2LnYqSDYp9mE2KXYudmE2KfZhtin2Kog2KfZhNix2LPZhdmK2Kkg2YTZhNiq2KPZg9ivINmF2YYg2YXZiNin2LnZitivINin2YTYtdix2YEg2KfZhNiv2YLZitmC2KkuJwogICAgICAgICAgICAgICAgOiAnVGhlIGRhdGVzIG1lbnRpb25lZCBhYm92ZSBhcmUgYXBwcm94aW1hdGUgYW5kIG1heSB2YXJ5IGJhc2VkIG9uIG9mZmljaWFsIGRlY2lzaW9ucyBmcm9tIHRoZSBNaW5pc3RyeSBvZiBGaW5hbmNlIGFuZCByZWxldmFudCBhdXRob3JpdGllcy4gUGxlYXNlIGZvbGxvdyBvZmZpY2lhbCBhbm5vdW5jZW1lbnRzIHRvIGNvbmZpcm0gZXhhY3QgcGF5bWVudCBkYXRlcy4nOyA\/PgogICAgICAgIDwvcD4KICAgIDwvZGl2PgoKICAgIDwhLS0gUmVsYXRlZCBMaW5rcyAtLT4KICAgIDxoMyBjbGFzcz0ibXQtNSBtYi00Ij48aSBjbGFzcz0iZmFzIGZhLWxpbmsiPjwvaT4gPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9it2KfYs9io2KfYqiDZiNij2K\/ZiNin2Kog2LDYp9iqINi12YTYqScgOiAnUmVsYXRlZCBDYWxjdWxhdG9ycyAmIFRvb2xzJzsgPz48L2gzPgogICAgPGRpdiBjbGFzcz0icmVsYXRlZC1saW5rcyBtYi01Ij4KICAgICAgICA8YSBocmVmPSIvc2FsYXJ5LWNhbGN1bGF0b3IucGhwIiBjbGFzcz0icmVsYXRlZC1saW5rIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1jYWxjdWxhdG9yIGZhLTJ4IHRleHQtc3VjY2VzcyBtYi0yIj48L2k+CiAgICAgICAgICAgIDxoNT48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2K3Yp9iz2KjYqSDYp9mE2LHYp9iq2KgnIDogJ1NhbGFyeSBDYWxjdWxhdG9yJzsgPz48L2g1PgogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1tdXRlZCBzbWFsbCBtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfYrdiz2Kgg2LHYp9iq2KjZgyDYp9mE2LXYp9mB2Yog2KjYudivINin2YTYrti12YjZhdin2KonIDogJ0NhbGN1bGF0ZSBuZXQgc2FsYXJ5IGFmdGVyIGRlZHVjdGlvbnMnOyA\/PjwvcD4KICAgICAgICA8L2E+CiAgICAgICAgPGEgaHJlZj0iL2VuZC1vZi1zZXJ2aWNlLWNhbGN1bGF0b3IucGhwIiBjbGFzcz0icmVsYXRlZC1saW5rIj4KICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1icmllZmNhc2UgZmEtMnggdGV4dC1wcmltYXJ5IG1iLTIiPjwvaT4KICAgICAgICAgICAgPGg1Pjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdmD2KfZgdij2Kkg2YbZh9in2YrYqSDYp9mE2K7Yr9mF2KknIDogJ0VuZCBvZiBTZXJ2aWNlJzsgPz48L2g1PgogICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1tdXRlZCBzbWFsbCBtYi0wIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KfYrdiz2Kgg2YXZg9in2YHYo9iq2YMg2LnZhtivINiq2LHZgyDYp9mE2LnZhdmEJyA6ICdDYWxjdWxhdGUgeW91ciBlbmQgb2Ygc2VydmljZSBiZW5lZml0cyc7ID8+PC9wPgogICAgICAgIDwvYT4KICAgICAgICA8YSBocmVmPSIvd29yay1ob3Vycy1jYWxjdWxhdG9yLnBocCIgY2xhc3M9InJlbGF0ZWQtbGluayI+CiAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtY2xvY2sgZmEtMnggdGV4dC13YXJuaW5nIG1iLTIiPjwvaT4KICAgICAgICAgICAgPGg1Pjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYrdin2LPYqNipINiz2KfYudin2Kog2KfZhNi52YXZhCcgOiAnV29yayBIb3Vycyc7ID8+PC9oNT4KICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQgc21hbGwgbWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9in2K3Ys9ioINiz2KfYudin2Kog2LnZhdmE2YMg2KfZhNmB2LnZhNmK2KknIDogJ0NhbGN1bGF0ZSB5b3VyIGFjdHVhbCB3b3JrIGhvdXJzJzsgPz48L3A+CiAgICAgICAgPC9hPgogICAgICAgIDxhIGhyZWY9Ii90b29scy5waHAiIGNsYXNzPSJyZWxhdGVkLWxpbmsiPgogICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXRvb2xzIGZhLTJ4IHRleHQtaW5mbyBtYi0yIj48L2k+CiAgICAgICAgICAgIDxoNT48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KzZhdmK2Lkg2KfZhNij2K\/ZiNin2KonIDogJ0FsbCBUb29scyc7ID8+PC9oNT4KICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQgc21hbGwgbWItMCI+PD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9iq2LXZgditINis2YXZiti5INin2YTYrdin2LPYqNin2Kog2YjYp9mE2KPYr9mI2KfYqicgOiAnQnJvd3NlIGFsbCBjYWxjdWxhdG9ycyBhbmQgdG9vbHMnOyA\/PjwvcD4KICAgICAgICA8L2E+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFByaW50IEJ1dHRvbiAtLT4KICAgIDxidXR0b24gY2xhc3M9InByaW50LWJ1dHRvbiIgb25jbGljaz0id2luZG93LnByaW50KCkiPgogICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtcHJpbnQiPjwvaT4KICAgICAgICA8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2LfYqNin2LnYqSDYp9mE2KzYr9mI2YQnIDogJ1ByaW50IFRhYmxlJzsgPz4KICAgIDwvYnV0dG9uPgoKPC9kaXY+Cgo8c2NyaXB0PgovLyBDb3VudGRvd24gVGltZXIKPD9waHAgaWYgKCRuZXh0X3BheW1lbnQpOiA\/Pgpjb25zdCBjb3VudGRvd25EYXRlID0gbmV3IERhdGUoIjw\/cGhwIGVjaG8gJG5leHRfcGF5bWVudFsnZ3JlZ29yaWFuX2RhdGUnXTsgPz5UMDA6MDA6MDAiKS5nZXRUaW1lKCk7CgpmdW5jdGlvbiB1cGRhdGVDb3VudGRvd24oKSB7CiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgIGNvbnN0IGRpc3RhbmNlID0gY291bnRkb3duRGF0ZSAtIG5vdzsKCiAgICBpZiAoZGlzdGFuY2UgPCAwKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvdW50ZG93bicpLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1zdWNjZXNzIj48P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2KrZhSDYtdix2YEg2KfZhNix2KfYqtioIScgOiAnU2FsYXJ5IGhhcyBiZWVuIHBhaWQhJzsgPz48L2Rpdj4nOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihkaXN0YW5jZSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7CiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IoKGRpc3RhbmNlICUgKDEwMDAgKiA2MCAqIDYwICogMjQpKSAvICgxMDAwICogNjAgKiA2MCkpOwogICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKGRpc3RhbmNlICUgKDEwMDAgKiA2MCAqIDYwKSkgLyAoMTAwMCAqIDYwKSk7CiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcigoZGlzdGFuY2UgJSAoMTAwMCAqIDYwKSkgLyAxMDAwKTsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF5cycpLnRleHRDb250ZW50ID0gZGF5czsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3VycycpLnRleHRDb250ZW50ID0gaG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pbnV0ZXMnKS50ZXh0Q29udGVudCA9IG1pbnV0ZXMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlY29uZHMnKS50ZXh0Q29udGVudCA9IHNlY29uZHMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwp9Cgp1cGRhdGVDb3VudGRvd24oKTsKc2V0SW50ZXJ2YWwodXBkYXRlQ291bnRkb3duLCAxMDAwKTsKPD9waHAgZW5kaWY7ID8+CgovLyBTbW9vdGggc2Nyb2xsIHRvIHRhYmxlcwpmdW5jdGlvbiBzaG93VGFibGUoc2VjdG9yKSB7CiAgICBjb25zdCB0YWJNYXAgPSB7CiAgICAgICAgJ2dvdmVybm1lbnQnOiAnZ292ZXJubWVudC10YWInLAogICAgICAgICdtaWxpdGFyeSc6ICdtaWxpdGFyeS10YWInLAogICAgICAgICdwZW5zaW9uJzogJ3BlbnNpb24tdGFiJywKICAgICAgICAnY2l0aXplbic6ICdjaXRpemVuLXRhYicsCiAgICAgICAgJ2hhZml6JzogJ2hhZml6LXRhYicsCiAgICAgICAgJ3NhbmFkJzogJ3NhbmFkLXRhYicsCiAgICAgICAgJ3NvY2lhbF9zZWN1cml0eSc6ICdzb2NpYWwtc2VjdXJpdHktdGFiJywKICAgICAgICAncmVoYWJpbGl0YXRpb24nOiAncmVoYWJpbGl0YXRpb24tdGFiJywKICAgICAgICAnaG91c2luZyc6ICdob3VzaW5nLXRhYicsCiAgICAgICAgJ2FncmljdWx0dXJhbCc6ICdhZ3JpY3VsdHVyYWwtdGFiJywKICAgICAgICAnc3R1ZGVudHMnOiAnc3R1ZGVudHMtdGFiJywKICAgICAgICAnaW1wcm92ZWRfc2VjdXJpdHknOiAnaW1wcm92ZWQtc2VjdXJpdHktdGFiJwogICAgfTsKCiAgICBjb25zdCB0YWIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBidXR0b25bZGF0YS1icy10YXJnZXQ9IiMke3RhYk1hcFtzZWN0b3JdfSJdYCk7CiAgICBpZiAodGFiKSB7CiAgICAgICAgdGFiLmNsaWNrKCk7CiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYWxhcnlUYWJzJykuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pOwogICAgICAgIH0sIDEwMCk7CiAgICB9Cn0KPC9zY3JpcHQ+Cgo8IS0tIFNjaGVtYSBNYXJrdXAgLS0+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+Cjw\/cGhwIGVjaG8gJHNjaGVtYV9tYXJrdXA7ID8+Cjwvc2NyaXB0PgoKPCEtLSBCcmVhZGNydW1iIFNjaGVtYSAtLT4KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KPD9waHAgZWNobyAkYnJlYWRjcnVtYl9zY2hlbWE7ID8+Cjwvc2NyaXB0PgoKPCEtLSBGQVEgU2NoZW1hIGZvciBTRU8gLS0+CjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CnsKICAiQGNvbnRleHQiOiAiaHR0cHM6Ly9zY2hlbWEub3JnIiwKICAiQHR5cGUiOiAiRkFRUGFnZSIsCiAgIm1haW5FbnRpdHkiOiBbCiAgICB7CiAgICAgICJAdHlwZSI6ICJRdWVzdGlvbiIsCiAgICAgICJuYW1lIjogIjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdiq2Ykg2YrYqtmFINi12LHZgSDYsdmI2KfYqtioINin2YTZhdmI2LjZgdmK2YYg2KfZhNit2YPZiNmF2YrZitmG2J8nIDogJ1doZW4gYXJlIGdvdmVybm1lbnQgZW1wbG95ZWUgc2FsYXJpZXMgcGFpZD8nOyA\/PiIsCiAgICAgICJhY2NlcHRlZEFuc3dlciI6IHsKICAgICAgICAiQHR5cGUiOiAiQW5zd2VyIiwKICAgICAgICAidGV4dCI6ICI8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YrYqtmFINi12LHZgSDYsdmI2KfYqtioINin2YTZhdmI2LjZgdmK2YYg2KfZhNit2YPZiNmF2YrZitmGINmB2Yog2KfZhNmK2YjZhSDYp9mE2K7Yp9mF2LMg2YXZhiDZg9mEINi02YfYsSDZh9is2LHZii4g2YHZiiDYrdin2YTYqSDZhdi12KfYr9mB2Kkg2YrZiNmFINin2YTYtdix2YEg2LnYt9mE2Kkg2YbZh9in2YrYqSDYp9mE2KPYs9io2YjYuSAo2KfZhNis2YXYudipINij2Ygg2KfZhNiz2KjYqinYjCDZitiq2YUg2KrZgtiv2YrZhSDYp9mE2LXYsdmBINmE2KLYrtixINmK2YjZhSDYudmF2YQuJyA6ICdHb3Zlcm5tZW50IGVtcGxveWVlIHNhbGFyaWVzIGFyZSBwYWlkIG9uIHRoZSA1dGggb2YgZWFjaCBIaWpyaSBtb250aC4gSWYgdGhlIHBheW1lbnQgZGF0ZSBmYWxscyBvbiBhIHdlZWtlbmQgKEZyaWRheSBvciBTYXR1cmRheSksIGl0IGlzIG1vdmVkIHRvIHRoZSBsYXN0IHdvcmtpbmcgZGF5Lic7ID8+IgogICAgICB9CiAgICB9LAogICAgewogICAgICAiQHR5cGUiOiAiUXVlc3Rpb24iLAogICAgICAibmFtZSI6ICI8P3BocCBlY2hvICRjdXJyZW50X2xhbmcgPT09ICdhcicgPyAn2YXYqtmJINmK2KrZhSDYtdix2YEg2LHZiNin2KrYqCDYp9mE2YXZiNi42YHZitmGINin2YTYudiz2YPYsdmK2YrZhtifJyA6ICdXaGVuIGFyZSBtaWxpdGFyeSBlbXBsb3llZSBzYWxhcmllcyBwYWlkPyc7ID8+IiwKICAgICAgImFjY2VwdGVkQW5zd2VyIjogewogICAgICAgICJAdHlwZSI6ICJBbnN3ZXIiLAogICAgICAgICJ0ZXh0IjogIjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmP2LXYsdmBINix2YjYp9iq2Kgg2KfZhNmF2YjYuNmB2YrZhiDYp9mE2LnYs9mD2LHZitmK2YYg2YHZiiDYp9mE2YrZiNmFINin2YTYudin2LTYsSDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZitiMINmF2Lkg2KrYudiv2YrZhCDYp9mE2KrYp9ix2YrYriDZgdmKINit2KfZhCDZhdi12KfYr9mB2KrZhyDYudi32YTYqSDZhtmH2KfZitipINin2YTYo9iz2KjZiNi5LicgOiAnTWlsaXRhcnkgZW1wbG95ZWUgc2FsYXJpZXMgYXJlIHBhaWQgb24gdGhlIDEwdGggb2YgZWFjaCBHcmVnb3JpYW4gbW9udGgsIHdpdGggZGF0ZSBhZGp1c3RtZW50IGlmIGl0IGZhbGxzIG9uIGEgd2Vla2VuZC4nOyA\/PiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIkB0eXBlIjogIlF1ZXN0aW9uIiwKICAgICAgIm5hbWUiOiAiPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mF2KrZiSDYqti12LHZgSDZhdi52KfYtNin2Kog2KfZhNmF2KrZgtin2LnYr9mK2YbYnycgOiAnV2hlbiBhcmUgcGVuc2lvbiBwYXltZW50cyBtYWRlPyc7ID8+IiwKICAgICAgImFjY2VwdGVkQW5zd2VyIjogewogICAgICAgICJAdHlwZSI6ICJBbnN3ZXIiLAogICAgICAgICJ0ZXh0IjogIjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfYqtmP2LXYsdmBINmF2LnYp9i02KfYqiDYp9mE2YXYqtmC2KfYudiv2YrZhiDZgdmKINin2YTZitmI2YUg2KfZhNij2YjZhCDZhdmGINmD2YQg2LTZh9ixINmF2YrZhNin2K\/ZitiMINmI2YrYqtmFINiq2LnYr9mK2YQg2KfZhNmF2YjYudivINil2LDYpyDYtdin2K\/ZgSDYudi32YTYqSDZhtmH2KfZitipINin2YTYo9iz2KjZiNi5LicgOiAnUGVuc2lvbiBwYXltZW50cyBhcmUgbWFkZSBvbiB0aGUgMXN0IG9mIGVhY2ggR3JlZ29yaWFuIG1vbnRoLCB3aXRoIGRhdGUgYWRqdXN0bWVudCBpZiBpdCBmYWxscyBvbiBhIHdlZWtlbmQuJzsgPz4iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJAdHlwZSI6ICJRdWVzdGlvbiIsCiAgICAgICJuYW1lIjogIjw\/cGhwIGVjaG8gJGN1cnJlbnRfbGFuZyA9PT0gJ2FyJyA\/ICfZhdiq2Ykg2YrYqtmFINi12LHZgSDYr9i52YUg2K3Ys9in2Kgg2KfZhNmF2YjYp9i32YbYnycgOiAnV2hlbiBpcyBDaXRpemVuIEFjY291bnQgc3VwcG9ydCBkaXNidXJzZWQ\/JzsgPz4iLAogICAgICAiYWNjZXB0ZWRBbnN3ZXIiOiB7CiAgICAgICAgIkB0eXBlIjogIkFuc3dlciIsCiAgICAgICAgInRleHQiOiAiPD9waHAgZWNobyAkY3VycmVudF9sYW5nID09PSAnYXInID8gJ9mK2KrZhSDYtdix2YEg2K\/YudmFINit2LPYp9ioINin2YTZhdmI2KfYt9mGINmB2Yog2KfZhNmK2YjZhSDYp9mE2LnYp9i02LEg2YXZhiDZg9mEINi02YfYsSDZhdmK2YTYp9iv2Yog2YTZhNmF2LPYqtmB2YrYr9mK2YYg2KfZhNmF2LPYqtit2YLZitmGINin2YTZhdiz2KzZhNmK2YYg2YHZiiDYp9mE2KjYsdmG2KfZhdisLicgOiAnQ2l0aXplbiBBY2NvdW50IHN1cHBvcnQgaXMgZGlzYnVyc2VkIG9uIHRoZSAxMHRoIG9mIGVhY2ggR3JlZ29yaWFuIG1vbnRoIHRvIGVsaWdpYmxlIGJlbmVmaWNpYXJpZXMgcmVnaXN0ZXJlZCBpbiB0aGUgcHJvZ3JhbS4nOyA\/PiIKICAgICAgfQogICAgfQogIF0KfQo8L3NjcmlwdD4KCjw\/cGhwIHJlcXVpcmVfb25jZSAnaW5jbHVkZXMvZm9vdGVyLnBocCc7ID8+Cg=="}}