Q3lhbm9nZW5Nb2QKPT09PT09PT09PT0KCk1haW50YWluZXJzIChDeWFub2dlbk1vZCAxMS4wKToKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKiBfX0FjZXIgQTcwMDpfXyBwYXdpdHAKKiBfX0FtYXpvbiBLaW5kbGUgRmlyZSAxc3QgRWRpdGlvbjpfXyBIYXNoY29kZQoqIF9fQW1hem9uIEtpbmRsZSBGaXJlIDJuZCBFZGl0aW9uOl9fIEhhc2hjb2RlCiogX19Bc3VzIEVlZVBhZCBUcmFuc2Zvcm1lciAoVEYxMDEpOl9fIEJ1bWJsZS1CZWUsIEVuSmVucwoqIF9fQXN1cyBFZWVQYWQgVHJhbnNmb3JtZXIgUHJpbWUgKFRGMjAxKTpfXyBCdW1ibGUtQmVlLCBFbkplbnMKKiBfX0FzdXMgRWVlUGFkIFRyYW5zZm9ybWVyIFBhZCBURjMwMFQ6X18KKiBfX0FzdXMgRWVlUGFkIFRyYW5zZm9ybWVyIFBhZCBJbmZpbml0eSBURjcwMFQ6X18gZGFzdW5zcnVsZTMyCiogX19CJk4gTm9va0NvbG9yIChlbmNvcmUpOl9fIGV5ZWJhbGxlciwgZmF0dGlyZSwga2V5b2RpLCBrcnlsb24zNjAsIHNsdW8gKE5vb2tpZURldnMpCiogX19Hb29nbGUgR2FsYXh5IE5leHVzOl9fICwgYmVraXQsIEJ1bWJsZS1CZWUsIGJ1cm5zcmEsIEthbGltb2Nob0F6LCBzb21ldGhpbmcxNTUyNQoqIF9fR29vZ2xlIE5leHVzIFM6X18gYnVybnNyYSwgS2FsaW1vY2hvQXosIGtsdXNhcmsKKiBfX0dvb2dsZSBOZXh1cyA0Ol9fIHJtY2MKKiBfX0dvb2dsZSBOZXh1cyA3Ol9fIGJ1cm5zcmEsIGZhdHRpcmUsIG5lbWl0aCAoR1NNKQoqIF9fR29vZ2xlIE5leHVzIDEwOl9fIGF0aW5tLCBkYWxpbmdyaW4sIGtvcm55b25lLCBnd2VlZG83NjcKKiBfX0hUQyBEcm9pZCBETkE6X18gY3JwYWxtZXIsIGludmlzaWJsZWsKKiBfX0hUQyBEcm9pZCBJbmNyZWRpYmxlIDRHIExURTpfXyBpbnRlcnZpZ2lsLCBtZG1vd2VyCiogX19IVEMgRXZvIDRHIExURTpfXyBrdXNoZGVjaywgdG9hc3RjZmgKKiBfX0hUQyBPbmUgKEdTTSk6X18gY29kZXdvcmt4LCBoOHJpZnQKKiBfX0hUQyBPbmUgKFNwcmludCk6X18ga3VzaGRlY2ssIHRvYXN0Y2ZoCiogX19IVEMgT25lIChWZXJpem9uKTpfXyBmbHloYWxmMjA1LCBtZG1vd2VyCiogX19IVEMgT25lIFM6X18gaW50ZXJ2aWdpbCwgeGtvbm5pCiogX19IVEMgT25lIFg6X18gZ29yYmkxNiwgbWRlZWpheSwgdGJhbGRlbiwgVGj2bXkKKiBfX0hUQyBPbmUgWCs6X18gTGxvaXIsIHRvbWJyaWRlbgoqIF9fSFRDIE9uZSBYTDpfXyBoOHJpZnQsIGludGVydmlnaWwKKiBfX0xHIE9wdGltdXMgTFRFIChQOTMwKSAvIExHIE5pdHJvIEhEIHtQOTM1KTpfXyBhcmNlZQoqIF9fTEcgT3B0aW11cyBMVEUgKFNLIFRlbGVjb20pIChTVTY0MCk6X18gYXJjZWUKKiBfX01vdG9yb2xhIEF0cml4IEhEIChNQjg4Ni9xaW5hcmEpOl9fIGVwaW50ZXIsIGRoYWNrZXIyOSwgSGFzaGNvZGUsIFNrcmlsYXhfQ1osIG5hZGxhYmFrCiogX19Nb3Rvcm9sYSBEcm9pZCAzIChzb2xhbmEpOl9fIEhhc2hjb2RlLCBkaGFja2VyMjkKKiBfX01vdG9yb2xhIERyb2lkIDQgKG1hc2VyYXRpKTpfXyBIYXNoY29kZSwgZGhhY2tlcjI5CiogX19Nb3Rvcm9sYSBEcm9pZCBCaW9uaWMgKHRhcmdhKTpfXyBkaGFja2VyMjksIEhhc2hjb2RlCiogX19Nb3Rvcm9sYSBEcm9pZCBSQVpSL1JBWlIgTWF4eCAoc3B5ZGVyKSAoQ0RNQSk6X18gZGhhY2tlcjI5LCBIYXNoY29kZQoqIF9fTW90b3JvbGEgRHJvaWQgUkFaUiBIRC9IRCBNYXh4ICh4dDkyNi92YW5xdWlzaCkgKENETUEpOl9fIEhhc2hjb2RlLCAgZGhhY2tlcjI5LCBlcGludGVyLCBTa3JpbGF4X0NaLCBuYWRsYWJhawoqIF9fTW90b3JvbGEgRHJvaWQgUkFaUiBNICh4dDkwNy9zY29ycGlvbl9taW5pKTpfXyBkaGFja2VyMjksIEhhc2hjb2RlLCBlcGludGVyLCBTa3JpbGF4X0NaLCBuYWRsYWJhawoqIF9fTW90b3JvbGEgUGhvdG9uIFEgKHh0ODk3L2FzYW50aSkgKEdTTSk6X18gU2tyaWxheF9DWiwgbmFkbGFiYWssIGVwaW50ZXIsIGRoYWNrZXIyOSwgSGFzaGNvZGUKKiBfX01vdG9yb2xhIFBob3RvbiBRICh4dDg5N2MvYXNhbnRpX2MpIChDRE1BKTpfXyBuYWRsYWJhaywgU2tyaWxheF9DWiwgZXBpbnRlciwgZGhhY2tlcjI5LCBIYXNoY29kZQoqIF9fTW90b3JvbGEgUkFaUi9SQVpSIE1heHggKHVtdHNfc3B5ZGVyKSAoR1NNKTpfXyBkaGFja2VyMjksIEhhc2hjb2RlCiogX19Nb3Rvcm9sYSBSQVpSIEhEKHh0OTI1L3ZhbnF1aXNoKSAoR1NNKTpfXyBlcGludGVyLCBkaGFja2VyMjksIEhhc2hjb2RlLCBTa3JpbGF4X0NaLCBuYWRsYWJhawoqIF9fTW90b3JvbGEgWG9vbSAoV2lGaSk6X18gYmF6YXIsIFN0ZWFkeUhhd2tpbiwgVERSIChUZWFtIFJvZ3VlKQoqIF9fTW90b3JvbGEgWG9vbSAzRyAoVU1UUyk6X18gYmF6YXIsIFN0ZWFkeUhhd2tpbiwgVERSIChUZWFtIFJvZ3VlKQoqIF9fTW90b3JvbGEgWG9vbSA0RyBMVEUgKFZlcml6b24pOl9fIGJhemFyLCBTdGVhZHlIYXdraW4sIFREUiAoVGVhbSBSb2d1ZSkKKiBfX09wcG8gRmluZCA1X186IG5lYmthdAoqIF9fU2Ftc3VuZyBDYXB0aXZhdGUgKFNHSC1JODk2IC8gU0dILUk4OTcpOl9fIHBhd2l0cAoqIF9fU2Ftc3VuZyBFcGljIDRHIChTUEgtRDcwMCk6X18gYmJlbG9zCiogX19TYW1zdW5nIEV4aGlsYXJhdGUgKFNHSC1JNTc3KTpfXyBtaWtleW1hbjc3LCBjYXJ2c2RyaXZlcgoqIF9fU2Ftc3VuZyBGYXNjaW5hdGUgLyBNZXNtZXJpemUgKFNDSC1JNTAwKTpfXyBqdDExMzQsIHNicmlzc2VuCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIChHVC1ONzAwMCk6X18gRXNwZW5mam8KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgSUkgKEdULU43MTAwKTpfXyBuZWJrYXQKKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgSUkgTFRFIChHVC1ONzEwNSk6X18gY29kZXdvcmt4CiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIElJIExURSAoQVQmVCkgKFNHSC1JMzE3KTpfXyBjb2Rld29ya3gsIGN5YW5vZ2VuCiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIElJIExURSAoVC1Nb2JpbGUpIChTR0gtVDg4OSk6X18gY29kZXdvcmt4CiogX19TYW1zdW5nIEdhbGF4eSBOb3RlIElJIExURSAoVmVyaXpvbikgKFNDSC1JNjA1KTpfXyBzYnJpc3NlbgoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSBJSSBMVEUgKFNwcmludCkgKFNQSC1MOTAwKTpfXyBzYnJpc3NlbgoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSBJSSBMVEUgKFVTQ0MpIChTQ0gtUjk1MCk6X18gc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgOC4wIDNHIChHVC1ONTEwMCk6X18gc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgOC4wIFdpZmkgKEdULU41MTEwKTpfXyBzYnJpc3NlbgoqIF9fU2Ftc3VuZyBHYWxheHkgTm90ZSAxMC4xIChHVC1OODBYWCk6X18gRXNwZW5mam8KKiBfX1NhbXN1bmcgR2FsYXh5IE5vdGUgMTAuMSBMVEUgKFZlcml6b24pIChTQ0gtSTkyNSk6X18gc2JyaXNzZW4KKiBfX1NhbXN1bmcgR2FsYXh5IFByZW1pZXIgKEdULUk5MjYwKTpfXyBsanp5YWwKKiBfX1NhbXN1bmcgR2FsYXh5IFIgKEdULUk5MTAzKTpfXyBBZGFtNzdSb290LCBFcHN5bG9uMwoqIF9fU2Ftc3VuZyBHYWxheHkgUyBCbGF6ZSA0RyAoU0dILVQ3NjkpOl9fIFViZXJQaW5ndWluCiogX19TYW1zdW5nIEdhbGF4eSBTIChHVC1JOTAwMCk6X18gcGF3aXRwCiogX19TYW1zdW5nIEdhbGF4eSBTIChHVC1JOTAwMEIpOl9fIGhlbHZpbzg4CiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChULU1vYmlsZSkgKFNHSC1UOTg5KTpfXyBtaWtleW1hbjc3CiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChBVCZUKSAoU0dILUk3MjcpOl9fIHRvcHByb3NwZWN0CiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChBVCZUKSAoU0dILUk3NzcpOl9fCiogX19TYW1zdW5nIEdhbGF4eSBTIElJIChpbnRsKSAoR1QtSTkxMDApOl9fIGNvZGV3b3JreCwgRXNwZW5mam8KKiBfX1NhbXN1bmcgR2FsYXh5IFMgSUkgKGludGwpIChHVC1JOTEwMEcpOl9fIGNvZGV3b3JreCwgSmlhbmd5aSwgUnl1aW5mZXJubwoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKEFUJlQpIChTR0gtSTc0Nyk6X18gY3lhbm9nZW4KKiBfX1NhbXN1bmcgR2FsYXh5IFMgSUlJIChDcmlja2V0KSAoU0NILVI1MzApOl9fIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKGludGwpIChHVC1JOTMwMCk6X18gY29kZXdvcmt4CiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSBMVEUgKEdULUk5MzA1KTpfXyBtY2FtcGJlbGxzbWl0aCwgY29kZXdvcmt4CiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSAoTWV0cm9QQ1MpIChTQ0gtUjUzMCk6X18gbm9vYm5sCiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSAoU3ByaW50KSAoU1BILUw3MTApOl9fIG1rYXNpY2ssIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJSUkgKFQtTW9iaWxlKSAoU0dILVQ5OTkpOl9fIGN5YW5vZ2VuCiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSAoVVMgQ2VsbHVsYXIpIChTQ0gtUjUzMCk6X18gbm9vYm5sCiogX19TYW1zdW5nIEdhbGF4eSBTIElJSSAoVmVyaXpvbikgKFNDSC1JNTM1KTpfXyBpbnZpc2libGVrCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIChBVCZUKSAoU0dILUkzMzcpOl9fIGF0dG4xCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIChDYW5hZGEpIChTR0gtSTMzN00pOl9fIER2VG9uZGVyCiogX19TYW1zdW5nIEdhbGF4eSBTIElWIExURSAoR1QtSTk1MDUpOl9fIGludmlzaWJsZWssIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoU3ByaW50KSAoU1BILUw3MjApOl9fIG1rYXNpY2ssIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoVC1Nb2JpbGUpIChTR0gtTTkxOSk6X18gY3lhbm9nZW4KKiBfX1NhbXN1bmcgR2FsYXh5IFMgSVYgKFVTIENlbGx1bGFyKSAoU0NILVI1NDApOl9fIG5vb2JubAoqIF9fU2Ftc3VuZyBHYWxheHkgUyBJViAoVmVyaXpvbikgKFNDSC1JNTQ1KTpfXyBpbnZpc2libGVrCiogX19TYW1zdW5nIEdhbGF4eSBTIFJlbGF5IDRHIChTR0gtVDY5OSk6X18gaW5mZXJuaXgsIGxiY29kZXIsIG5hcmRob2xpbywgbm9wdHlzLCB0ZWZlcmkgKFRlYW1BcGV4USkKKiBfX1NhbXN1bmcgR2FsYXh5IFRhYiA3IiAoR1NNKTpfXyBjZGVzYWksIGh1bWJlcm9zCiogX19TYW1zdW5nIEdhbGF4eSBUYWIgNyIgKENETUEpOl9fIGp0MTEzNAoqIF9fU2Ftc3VuZyBHYWxheHkgVGFiIDIgNyIgKEdULVAzMXh4KTpfXyBjb2Rld29ya3gsIGNvZHlmODYKKiBfX1NhbXN1bmcgR2FsYXh5IFRhYiAyIDEwLjEiIChHVC1QNTF4eCk6X18gY29kZXdvcmt4LCBjb2R5Zjg2CiogX19TYW1zdW5nIFZpYnJhbnQgKFNHSC1UOTU5KTpfXyBGYXVsdEV4Y2VwdGlvbgoqIF9fU29ueSBYcGVyaWEgU1AgKGh1YXNoYW4pOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgYWRmYWQ2NjYsIHViZXJsYWdneWRhcndpbgoqIF9fU29ueSBYcGVyaWEgVCAobWludCk6X18gamVycGVsZWEsIEthbGktIChGcmVlWHBlcmlhIHRlYW0pLCBjb2Rld29ya3gsIGNkZXNhaSwgdGlsYWw2OTkxCiogX19Tb255IFhwZXJpYSBWICh0c3ViYXNhKTpfXyBqZXJwZWxlYSwgS2FsaS0gKEZyZWVYcGVyaWEgdGVhbSksIGNvZGV3b3JreCwgdGlsYWw2OTkxLCBjaGFtcGlvbnN3aW1tZXIKKiBfX1NvbnkgWHBlcmlhIFogKHl1Z2EpOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgY2Rlc2FpLCBjb2Rld29ya3gsIGNoYW1waW9uc3dpbW1lcgoqIF9fU29ueSBYcGVyaWEgWkwgKG9kaW4pOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKSwgY2hhbXBpb25zd2ltbWVyCiogX19Tb255IFhwZXJpYSBaUiAoZG9nbyk6X18gamVycGVsZWEsIEthbGktIChGcmVlWHBlcmlhIHRlYW0pCiogX19Tb255IFhwZXJpYSBUYWJsZXQgWiBMVEUgKHBvbGx1eCk6X18gamVycGVsZWEsIEthbGktIChGcmVlWHBlcmlhIHRlYW0pLCBjb2Rld29ya3gKKiBfX1NvbnkgWHBlcmlhIFRhYmxldCBaIFdpZmkgKHBvbGx1eF93aW5keSk6X18gamVycGVsZWEsIEthbGktIChGcmVlWHBlcmlhIHRlYW0pLCBCdW1ibGUtQmVlCiogX19Tb255IFhwZXJpYSBaIFVsdHJhICh0b2dhcmkpOl9fIGplcnBlbGVhLCBLYWxpLSAoRnJlZVhwZXJpYSB0ZWFtKQoqIF9fU29ueSBYcGVyaWEgWjEgKGhvbmFtaSk6X18gamVycGVsZWEsIEthbGktIChGcmVlWHBlcmlhIHRlYW0pCgoKR2VuZXJhbCBkZXZlbG9wZXJzOgotLS0tLS0tLS0tLS0tLS0tLS0tCiogX19VSSBUZWFtOl9fIGJsdW5kZW4sIHByYXNoCiogX19VWCBUZWFtOl9fIGJsdW5kZW4sIGNpd3JsLCBkYW5lc2htLCBEdlRvbmRlciwgbWFuaWFjMTAzLCBLYWlrNTQxCiogX19PdGhlcjpfXyBqcnVlc2dhCgpUcmFuc2xhdG9yczoKLS0tLS0tLS0tLS0tCiogX19BZnJpa2FhbnM6X18gQ29ycmllIE1leWVyLCBEYXZpZCB2YW4gVG9uZGVyCiogX19DYXRhbGFuOl9fIEFybmF1IExsb3ZldCBWaWRhbAoqIF9fQ2hpbmVzZSAoU2ltcGxpZmllZCk6X18gQW5kcmV3IEppYW5nLCBKb2huIEhzaW5nLCBFbmdsZSBNYXJzCiogX19DaGluZXNlIChUcmFkaXRpb25hbCk6X18gTGkgQ2hpIFR1bmcsIEZ1LUNodW4gSHN1CiogX19DemVjaDpfXyBPbmRyZWogWmltYSwgUmFkb3ZhbiBLZXBhaywgUGF2ZWwgS3VjZXJhLCBKb3prYSBKb3ppbiwgSmlyaSBTaWx2YXJpY2gsIFZhY2xhdiBNb3VjaGEKKiBfX0RhbmlzaDpfXyBKYWNvYiBPdmVyZ2FhcmQgTWFkc2VuLCBNb3J0ZW4gSvhyZ2Vuc2VuLCBIZW5uaW5nIE5pZWxzZW4gTHVuZCwgTWlrYWVsIEplcHNlbgoqIF9fRHV0Y2g6X18gTWFyY28gQnJvaGV0LCBLYXNwZXIgSGV0dGluZ2EsIEVkZHkgV2l0a2FtcAoqIF9fRmlubmlzaDpfXyBOaWtvIEtvaXZ1CiogX19GcmVuY2g6X18gRGVscGhpbiBQRVRFUiwgRXJpYyBNb3Vyb3VnYW5keSwgTOlvIENvbG9tYmFybywgRmxvcmVudCBJbWZsb2ZsbywgVGFuZ3V5IFBydXZvdCwgTWF0dGhpYXMgQm9zYwoqIF9fR2VybWFuOl9fIEtpbSBM6iwgSmFjb2IgTfxsbGVyLCBDaHJpc3RvcGggUXVpdGVyLCBNYXJrdXMgSG9lYmVyLCBEYW5ueSBCYXVtYW5uCiogX19HcmVlazpfXyBNaWNoYWVsIEJlc3RhcywgVmFzaWxpcyBBa3JpdGFzCiogX19IdW5nYXJpYW46X18gVGFt4XMgVPN0aCwgROF2aWQgTOFzemzzLCBE4W5pZWwgQnVnYQoqIF9fSXRhbGlhbjpfXyBGcmFuY2VzY28gRm9yZXN0YSwgTWF1cm8gQmF6emFubwoqIF9fSmFwYW5lc2U6X18gVGFrdW8gS2l0YW1lLCBUYWljaGkgTmlzaGltdXJhCiogX19Ob3J3ZWdpYW46X18gT2RpbiBVZ2VkYWwsIEFybmUgQ291Y2hlcm9uCiogX19Qb2xpc2g6X18gVG9tYXN6IFBvcGllbGFyY3p5ayBjLnMuCiogX19Qb3J0dWd1ZXNlIChCcmF6aWxpYW4pOl9fIEd1c3Rhdm8gUm9zYSwgUGVkcm8gQ2FybmVpcm8sIEVtZXJzb24gUGludGVyCiogX19SdXNzaWFuOl9fIFBhdmVsIFZvbGtvdiwgVmxhZGlzbGF2IEtvbGRvYnNraXksIFZsYWRpbWlyIEJlbGtvdgoqIF9fU2xvdmFrOl9fIER1c2FuIEthemlrCiogX19TcGFuaXNoOl9fIEpvcmdlIFJ1ZXNnYSwgTG9yZW56byBNLiBDYXN0YfFvCiogX19Td2VkaXNoOl9fIFNpbW9uIELkY2ssIFRlZCBMdW5kd2FsbCwgRXNhIExhdWtrYW5lbiwgQmr2cm4gTHVuZOluCgpHcmFwaGljcyBhbmQgQXNzZXRzOgotLS0tLS0tLS0tLS0tLS0tLS0tLQoqIF9fV2FsbHBhcGVyczpfXyBNYXR0aGV3IEhhbmxleSwgSGVucnkgTWFzb24KKiBfX0ljb25zOl9fIEJqb3JuIEx1bmRlbiwgSGVucnkgTWFzb24KKiBfX0Jvb3RhbmltYXRpb246X18gRGltYSBTa3ZhcnNreWkKCkZvcm1lciBDb250cmlidXRvcnM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tCiogX19EZXZpY2VzOl9fIEVudHJvcHk1MTIsIHhwbG9kd2lsZAoqIF9fRmVhdHVyZXM6X18gbWFkLW11cmRvY2ssIHd5c2llLCBBbmRlciBXZWJicywgQ2hhaW5zREQsIHhwbG9kd2lsZAo=