ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaHUvaHVfSFUuZGlmZiBiL3J1bnRpbWUvc3BlbGwvaHUvaHVfSFUuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTIyYzc5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9odS9odV9IVS5kaWZmCkBAIC0wLDAgKzEsMTI4IEBACisqKiogaHVfSFUub3JpZy5hZmYJVHVlIEF1ZyAxNiAxODoyMToxMCAyMDA1CistLS0gaHVfSFUuYWZmCVR1ZSBBdWcgMTYgMTk6NDI6MzQgMjAwNQorKioqKioqKioqKioqKioqCisqKiogNTcsNjIgKioqKgorICAKKyEgTkFNRSBNYWd5YXIgSXNwZWxsIGhlbHllc+1y4XNpIHN683ThcgorISBMQU5HIGh1X0hVCishIEhPTUUgaHR0cDovL21hZ3lhcmlzcGVsbC5zb3VyY2Vmb3JnZS5uZXQKKyEgVkVSU0lPTiBNYWd5YXIgMC45OS40LjIKKyAgU0VUIElTTzg4NTktMgorLS0tIDU3LDYyIC0tLS0KKyAgCishICNOQU1FIE1hZ3lhciBJc3BlbGwgaGVseWVz7XLhc2kgc3rzdOFyCishICNMQU5HIGh1X0hVCishICNIT01FIGh0dHA6Ly9tYWd5YXJpc3BlbGwuc291cmNlZm9yZ2UubmV0CishICNWRVJTSU9OIE1hZ3lhciAwLjk5LjQuMgorICBTRVQgSVNPODg1OS0yCisqKioqKioqKioqKioqKioKKyoqKiA2NSw3NyAqKioqCisgIENPTVBPVU5ERkxBRyBZCishIENPTVBPVU5EV09SRCAyIHkKKyEgQ09NUE9VTkRTWUxMQUJMRSA2IGHhZelp7W/z9vV1+vz7CishIFNZTExBQkxFTlVNIGtsbWMKKyEgQ09NUE9VTkRGSVJTVCB2CishIENPTVBPVU5ETEFTVCB4CishIEZPUkJJRERFTldPUkQgdworISBPTkxZUk9PVCB1CishIEFDQ0VOVCDh6e3z9vX6/PsgYWVpb29vdXV1CishIENIRUNLTlVNCishIFdPUkRDSEFSUyAtLqclsDAxMjM0NTY3ODkKKyEgSFVfS09UT0hBTkdaTyBaCisgIAorLS0tIDY1LDgwIC0tLS0KKyAgQ09NUE9VTkRGTEFHIFkKKyEgI0NPTVBPVU5EV09SRCAyIHkKKyEgI0NPTVBPVU5EU1lMTEFCTEUgNiBh4WXpae1v8/b1dfr8+worISAjU1lMTEFCTEVOVU0ga2xtYworISAjQ09NUE9VTkRGSVJTVCB2CishICNDT01QT1VORExBU1QgeAorISAjRk9SQklEREVOV09SRCB3CishIEJBRCB3CishICNPTkxZUk9PVCB1CishICNBQ0NFTlQg4ent8/b1+vz7IGFlaW9vb3V1dQorISAjQ0hFQ0tOVU0KKyEgI1dPUkRDSEFSUyAtLqclsDAxMjM0NTY3ODkKKyEgI0hVX0tPVE9IQU5HWk8gWgorISAKKyEgUEZYUE9TVFBPTkUKKyAgCisqKioqKioqKioqKioqKioKKyoqKiAxNzMsMjQxICoqKioKKyAgCistICMgY2hhcmFjdGVyIGNvbnZlcnNpb24gdGFibGUKKy0gIyAoSFRNTCBsYXRpbi0xIGVudGl0aWVzIC0+IGxhdGluLTIpCistICMgbm90IGltcGxlbWVudGVkIHlldAorLSAKKy0gQ0hSIEhUTUwgMzUKKy0gQ0hSIEhUTUwgJmN1cnJlbjsgpAorLSBDSFIgSFRNTCAmZGVnOyCwCistIENIUiBIVE1MICZhY3V0ZTsgtAorLSBDSFIgSFRNTCAmY2VkaWw7ILgKKy0gQ0hSIEhUTUwgJkFhY3V0ZTsgwQorLSBDSFIgSFRNTCAmQWNpcmM7IMIKKy0gQ0hSIEhUTUwgJkF1bWw7IMQKKy0gQ0hSIEhUTUwgJkNjZWRpbDsgxworLSBDSFIgSFRNTCAmRWFjdXRlOyDJCistIENIUiBIVE1MICZFdW1sOyDLCistIENIUiBIVE1MICZJYWN1dGU7IM0KKy0gQ0hSIEhUTUwgJkljaXJjOyDOCistIENIUiBIVE1MICZPYWN1dGU7INMKKy0gQ0hSIEhUTUwgJk9jaXJjOyDUCistIENIUiBIVE1MICZPdW1sOyDWCistIENIUiBIVE1MICZ0aW1lczsg1worLSBDSFIgSFRNTCAmVWFjdXRlOyDaCistIENIUiBIVE1MICZVdW1sOyDcCistIENIUiBIVE1MICZZYWN1dGU7IN0KKy0gQ0hSIEhUTUwgJnN6bGlnOyDfCistIENIUiBIVE1MICZhYWN1dGU7IOEKKy0gQ0hSIEhUTUwgJmFjaXJjOyDiCistIENIUiBIVE1MICZhdW1sOyDkCistIENIUiBIVE1MICZjY2VkaWw7IOcKKy0gQ0hSIEhUTUwgJmVhY3V0ZTsg6QorLSBDSFIgSFRNTCAmZXVtbDsg6worLSBDSFIgSFRNTCAmaWFjdXRlOyDtCistIENIUiBIVE1MICZpY2lyYzsg7gorLSBDSFIgSFRNTCAmb2FjdXRlOyDzCistIENIUiBIVE1MICZvY2lyYzsg9AorLSBDSFIgSFRNTCAmb3VtbDsg9gorLSBDSFIgSFRNTCAmZGl2aWRlOyD3CistIENIUiBIVE1MICZ1YWN1dGU7IPoKKy0gQ0hSIEhUTUwgJnV1bWw7IPwKKy0gQ0hSIEhUTUwgJnlhY3V0ZTsg/QorLSAKKy0gIyBjaGFyYWN0ZXIgY29udmVyc2lvbiB0YWJsZQorLSAjIChQcvNzeulreS1jb2RlIC0+IGxhdGluLTIpCistICMgbm90IGltcGxlbWVudGVkIHlldAorLSAKKy0gQ0hSIDEyMyAyMAorLSBDSFIgMTIzIGExIOEKKy0gQ0hSIDEyMyBlMSDpCistIENIUiAxMjMgZTIg6worLSBDSFIgMTIzIGkxIO0KKy0gQ0hSIDEyMyBvMSDzCistIENIUiAxMjMgbzIg9gorLSBDSFIgMTIzIG8zIPUKKy0gQ0hSIDEyMyB1MSD6CistIENIUiAxMjMgdTIg/AorLSBDSFIgMTIzIHUzIPsKKy0gQ0hSIDEyMyBBMSDBCistIENIUiAxMjMgRTEgyQorLSBDSFIgMTIzIEUyIMsKKy0gQ0hSIDEyMyBJMSDNCistIENIUiAxMjMgTzEg0worLSBDSFIgMTIzIE8yINYKKy0gQ0hSIDEyMyBPMyDVCistIENIUiAxMjMgVTEg2gorLSBDSFIgMTIzIFUyINwKKy0gQ0hSIDEyMyBVMyDbCistIAorICBTRlggeiBZIDYKKy0tLSAxNzYsMTc3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE3Njc4LDE3NjgxICoqKioKKyAgUEZYIEQgICAwICAgIGxlZyAgICAgICAgICAuCistIAorLSAgICAxCistIAorLS0tIDE3NjE0IC0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaHUvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2h1L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OTBiMWUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2h1L21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgSHVuZ2FyaWFuIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gaHVfSFUuYWZmIGh1X0hVLmRpYworCithbGw6ICRTUEVMTERJUi9odS5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvaHUudXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL2h1LmNwMTI1MC5zcGwgLi4vUkVBRE1FX2h1LnR4dAorCiskU1BFTExESVIvaHUuaXNvLTg4NTktMi5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1odV9IVS5JU084ODU5LTIgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvaHUgaHVfSFUiIC1jIHEKKworJFNQRUxMRElSL2h1LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWh1X0hVLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2h1IGh1X0hVIiAtYyBxCisKKyRTUEVMTERJUi9odS5jcDEyNTAuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9odSBodV9IVSIgLWMgcQorCisuLi9SRUFETUVfaHUudHh0OiBSRUFETUVfaHVfSFUudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gaHVfSFUuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgoraHVfSFUuYWZmIGh1X0hVLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBodV9IVS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgaHVfSFUuemlwCisgICAgICAgIDpkZWxldGUgaHVfSFUuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2h1X0hVLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBodV9IVS5hZmYgaHVfSFUub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnaHVfSFUub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGh1X0hVLmRpYyBodV9IVS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2h1X0hVLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGh1X0hVLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaHVfSFUub3JpZy5hZmYgaHVfSFUuYWZmID5odV9IVS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaHVfSFUub3JpZy5kaWMgaHVfSFUuZGljID4+aHVfSFUuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggaHVfSFUuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9odV9IVS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2h1X0hVLm9yaWcuYWZmIGh1X0hVLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBodV9IVS5hZmYgLi4vaHVfSFUubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vaHVfSFUub3JpZy5kaWMgaHVfSFUuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGh1X0hVLmRpYyAuLi9odV9IVS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgaHVfSFUuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoK