# Name: smd_query v0.50 # Type: Client side plugin # Generic database access via SQL # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjk6InNtZF9xdWVyeSI7czo2OiJhdXRob3IiO3M6MTE6IlN0 ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5j b20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC41MCI7czoxMToiZGVzY3JpcHRpb24iO3M6MzE6 IkdlbmVyaWMgZGF0YWJhc2UgYWNjZXNzIHZpYSBTUUwiO3M6NDoiY29kZSI7czoxMjc1NDoi ZnVuY3Rpb24gc21kX3F1ZXJ5KCRhdHRzLCAkdGhpbmc9JycpIHsNCglnbG9iYWwgJHByZXRl eHQsICRzbWRfcXVlcnlfcGdpbmZvLCAkdGhpc3BhZ2UsICR0aGlzYXJ0aWNsZSwgJHRoaXNp bWFnZSwgJHRoaXNmaWxlLCAkdGhpc2xpbms7DQoNCglleHRyYWN0KGxBdHRzKGFycmF5KA0K CQknY29sdW1uJyA9PiAnJywNCgkJJ3RhYmxlJyA9PiAnJywNCgkJJ3doZXJlJyA9PiAnJywN CgkJJ3F1ZXJ5JyA9PiAnJywNCgkJJ2Zvcm0nID0+ICcnLA0KCQkncGFnZWZvcm0nID0+ICcn LA0KCQkncGFnZXZhcicgPT4gJ3BnJywNCgkJJ3BhZ2Vwb3MnID0+ICdiZWxvdycsDQoJCSdj b2xzZm9ybScgPT4gJycsDQoJCSdlc2NhcGUnID0+ICcnLA0KCQknc3RyaWN0ZmllbGRzJyA9 PiAnMCcsDQoJCSdwcmVwYXJzZScgPT4gJzAnLA0KCQkncG9wdWxhdGUnID0+ICcnLCAvLyBv bmUgb2YgYXJ0aWNsZSwgaW1hZ2UsIGZpbGUsIG9yIGxpbmsNCgkJJ3VybGZpbHRlcicgPT4g JycsDQoJCSd1cmxyZXBsYWNlJyA9PiAnJywNCgkJJ2RlZmF1bHRzJyA9PiAnJywNCgkJJ2Rl bGltJyA9PiAnLCcsDQoJCSdwYXJhbWRlbGltJyA9PiAnOicsDQoJCSdzaWxlbnQnID0+ICcw JywNCgkJJ21vZGUnID0+ICdhdXRvJywgLy8gYXV0byBjaG9vc2VzIG9uZSBvZiBpbnB1dCAo SU5TRVJUL1VQREFURSkgb3Igb3V0cHV0IChRVUVSWSkNCgkJJ2NvdW50JyA9PiAndXAnLA0K CQknbGltaXQnID0+IDAsDQoJCSdvZmZzZXQnID0+IDAsDQoJCSdoYXNoc2l6ZScgPT4gJzY6 NScsDQoJCSdsYWJlbCcgPT4gJycsDQoJCSdsYWJlbHRhZycgPT4gJycsDQoJCSd3cmFwdGFn JyA9PiAnJywNCgkJJ2JyZWFrJyA9PiAnJywNCgkJJ2NsYXNzJyA9PiAnJywNCgkJJ2JyZWFr Y2xhc3MnID0+ICcnLA0KCQknaHRtbF9pZCcgPT4gJycsDQoJCSdkZWJ1ZycgPT4gJzAnLA0K CSksJGF0dHMpKTsNCg0KCS8vIEdyYWIgdGhlIGZvcm0gb3IgZW1iZWRkZWQgJHRoaW5nDQoJ JGZhbHNlUGFydCA9IEV2YWxFbHNlKCR0aGluZywgMCk7DQoNCgkkdGhpbmcgPSAoJGZvcm0p ID8gZmV0Y2hfZm9ybSgkZm9ybSkgLiAoKCRmYWxzZVBhcnQpID8gJzx0eHA6ZWxzZSAvPicg LiAkZmFsc2VQYXJ0IDogJycpIDogKCgkdGhpbmcpID8gJHRoaW5nIDogJycpOw0KCSRjb2xz Zm9ybSA9IChlbXB0eSgkY29sc2Zvcm0pKSA/ICcnIDogZmV0Y2hfZm9ybSgkY29sc2Zvcm0p Ow0KCSRwYWdlYml0ID0gYXJyYXkoKTsNCglpZiAoJHBhZ2Vmb3JtKSB7DQoJCSRwYWdlUG9z QWxsb3dlZCA9IGFycmF5KCJiZWxvdyIsICJhYm92ZSIpOw0KCQkkcGFnaW5nID0gMTsNCgkJ JHBhZ2Vmb3JtID0gZmV0Y2hfZm9ybSgkcGFnZWZvcm0pOw0KCQkkcGFnZXBvcyA9IHN0cl9y ZXBsYWNlKCdzbWRfJywgJycsICRwYWdlcG9zKTsNCgkJJHBhZ2Vwb3MgPSBkb19saXN0KCRw YWdlcG9zLCAkZGVsaW0pOw0KCQlmb3JlYWNoICgkcGFnZXBvcyBhcyAkcGFnZWl0ZW0pIHsN CgkJCSRwYWdlYml0W10gPSAoaW5fYXJyYXkoJHBhZ2VpdGVtLCAkcGFnZVBvc0FsbG93ZWQp KSA/ICRwYWdlaXRlbSA6ICRwYWdlUG9zQWxsb3dlZFswXTsNCgkJfQ0KCX0NCg0KCS8vIE1h a2UgYSB1bmlxdWUgaGFzaCB2YWx1ZSBmb3IgdGhpcyBpbnN0YW5jZSBzbyB0aGUgcXVlcmll cyBjYW4gYmUgcGFnZWQgaW5kZXBlbmRlbnRseQ0KCSR1bmlxID0gJyc7DQoJJG1kNSA9IG1k NSgkY29sdW1uLiR0YWJsZS4kd2hlcmUuJHF1ZXJ5LiRkZWZhdWx0cyk7DQoJbGlzdCgkaGFz aExlbiwgJGhhc2hTa2lwKSA9IGV4cGxvZGUoJzonLCAkaGFzaHNpemUpOw0KCWZvciAoJGlk eCA9IDAsICRjbnQgPSAwOyAkY250IDwgJGhhc2hMZW47ICRjbnQrKywgJGlkeCA9ICgoJGlk eCskaGFzaFNraXApICUgc3RybGVuKCRtZDUpKSkgew0KCQkkdW5pcSAuPSAkbWQ1WyRpZHhd Ow0KCX0NCg0KCSRwYWdldmFyID0gKCRwYWdldmFyID09ICdTTURfUVVFUllfVU5JUVVFX0lE JykgPyAkdW5pcSA6ICRwYWdldmFyOw0KCSR1cmxmaWx0ZXIgPSAoIWVtcHR5KCR1cmxmaWx0 ZXIpKSA/IGRvX2xpc3QoJHVybGZpbHRlciwgJGRlbGltKSA6ICcnOw0KCSR1cmxyZXBsYWNl ID0gKCFlbXB0eSgkdXJscmVwbGFjZSkpID8gZG9fbGlzdCgkdXJscmVwbGFjZSwgJGRlbGlt KSA6ICcnOw0KCWlmICgkZGVidWcgPiAwKSB7DQoJCWVjaG8gIisrIFVSTCBGSUxURVJTICsr IjsNCgkJZG1wKCR1cmxmaWx0ZXIpOw0KCQlkbXAoJHVybHJlcGxhY2UpOw0KCX0NCg0KCS8v IFByb2Nlc3MgYW55IGRlZmF1bHRzDQoJJHNwYyA9ICgkc3RyaWN0ZmllbGRzKSA/IDAgOiAx Ow0KCSRkZWZhdWx0cyA9IGRvX2xpc3QoJGRlZmF1bHRzLCAkZGVsaW0pOw0KCSRkZmx0cyA9 IGFycmF5KCk7DQoJZm9yZWFjaCAoJGRlZmF1bHRzIGFzICRpdGVtKSB7DQoJCSRpdGVtID0g ZG9fbGlzdCgkaXRlbSwgJHBhcmFtZGVsaW0pOw0KCQlpZiAoJGl0ZW1bMF0gPT0gJycpIGNv bnRpbnVlOw0KCQlpZiAoY291bnQoJGl0ZW0pID09IDIpIHsNCgkJCSRkZmx0c1skaXRlbVsw XV0gPSBzbWRfcXVlcnlfcGFyc2UoJGl0ZW1bMV0sIGFycmF5KCcnKSwgYXJyYXkoJycpLCBh cnJheSgnJyksICRzcGMpOw0KCQl9DQoJfQ0KDQoJaWYgKCRkZWJ1ZyA+IDApIHsNCgkJZWNo byAiKysgREVGQVVMVFMgKysiOw0KCQlkbXAoJGRmbHRzKTsNCgl9DQoNCgkvLyBHZXQgYSBs aXN0IG9mIGZpZWxkcyB0byBlc2NhcGUNCgkkZXNjYXBlcyA9IGRvX2xpc3QoJGVzY2FwZSwg JGRlbGltKTsNCglmb3JlYWNoICgkZXNjYXBlcyBhcyAkaWR4ID0+ICR2YWwpIHsNCgkJaWYg KCR2YWwgPT0gJycpIHsNCgkJCXVuc2V0KCRlc2NhcGVzWyRpZHhdKTsNCgkJfQ0KCX0NCg0K CSRycyA9IGFycmF5KCk7DQoJJG91dCA9IGFycmF5KCk7DQoJJGNvbG91dCA9ICRmaW5hbG91 dCA9IGFycmF5KCk7DQoJJHBhZ2VvdXQgPSAnJzsNCg0KCS8vIHF1ZXJ5IG92ZXJyaWRlcyBj b2x1bW4vdGFibGUvd2hlcmUNCglpZiAoJHF1ZXJ5KSB7DQoJCSRxdWVyeSA9IHNtZF9xdWVy eV9wYXJzZSgkcXVlcnksICRkZmx0cywgJHVybGZpbHRlciwgJHVybHJlcGxhY2UsICRzcGMp Ow0KCQkkbW9kZSA9ICgkbW9kZSA9PSAnYXV0bycpID8gKChwcmVnX21hdGNoKCcvKHNlbGVj dHxzaG93KS9pJywgJHF1ZXJ5KSkgPyAnb3V0cHV0JyA6ICdpbnB1dCcpIDogJG1vZGU7DQoJ CWlmICgkbW9kZSA9PSAnaW5wdXQnKSB7DQoJCQkkcnMgPSAoJHNpbGVudCkgPyBAc2FmZV9x dWVyeSgkcXVlcnksICRkZWJ1ZykgOiBzYWZlX3F1ZXJ5KCRxdWVyeSwgJGRlYnVnKTsNCgkJ fSBlbHNlIHsNCgkJCSRycyA9ICgkc2lsZW50KSA/IEBnZXRSb3dzKCRxdWVyeSwgJGRlYnVn KSA6IGdldFJvd3MoJHF1ZXJ5LCAkZGVidWcpOw0KCQl9DQoJfSBlbHNlIHsNCgkJaWYgKCRj b2x1bW4gJiYgJHRhYmxlKSB7DQoJCQkvLyBUT0RPOiBQZXJoYXBzIGRvU2xhc2goKSB0aGVz ZT8NCgkJCSRjb2x1bW4gPSBzbWRfcXVlcnlfcGFyc2UoJGNvbHVtbiwgJGRmbHRzLCAkdXJs ZmlsdGVyLCAkdXJscmVwbGFjZSwgJHNwYyk7DQoJCQkkdGFibGUgPSBzbWRfcXVlcnlfcGFy c2UoJHRhYmxlLCAkZGZsdHMsICR1cmxmaWx0ZXIsICR1cmxyZXBsYWNlLCAkc3BjKTsNCgkJ CSR3aGVyZSA9IHNtZF9xdWVyeV9wYXJzZSgkd2hlcmUsICRkZmx0cywgJHVybGZpbHRlciwg JHVybHJlcGxhY2UsICRzcGMpOw0KCQkJJHdoZXJlID0gKCR3aGVyZSkgPyAkd2hlcmUgOiAi MT0xIjsNCgkJCSRtb2RlID0gJ291dHB1dCc7DQoJCQkkcnMgPSAoJHNpbGVudCkgPyBAc2Fm ZV9yb3dzKCRjb2x1bW4sICR0YWJsZSwgJHdoZXJlLCAkZGVidWcpIDogc2FmZV9yb3dzKCRj b2x1bW4sICR0YWJsZSwgJHdoZXJlLCAkZGVidWcpOw0KCQl9IGVsc2Ugew0KCQkJdHJpZ2dl cl9lcnJvcigiWW91IG11c3Qgc3BlY2lmeSBhdCBsZWFzdCAxICdjb2x1bW4nIGFuZCBhICd0 YWJsZScuIik7DQoJCX0NCgl9DQoNCglpZiAoJG1vZGUgPT0gJ291dHB1dCcpIHsNCgkJJG51 bXJvd3MgPSBjb3VudCgkcnMpOw0KCQkkdHJ1ZVBhcnQgPSBFdmFsRWxzZSgkdGhpbmcsIDEp Ow0KDQoJCWlmICgkcnMpIHsNCgkJCWlmICgkZGVidWcgPiAxKSB7DQoJCQkJZWNobyAiKysg UVVFUlkgUkVTVUxUIFNFVCArKyI7DQoJCQkJZG1wKCRudW1yb3dzIC4gIiBST1dTIik7DQoJ CQkJZG1wKCRycyk7DQoJCQl9DQoNCgkJCWlmICgkbGltaXQgPiAwKSB7DQoJCQkJJHNhZmVw YWdlID0gJHRoaXNwYWdlOw0KCQkJCSR0b3RhbCA9ICRudW1yb3dzIC0gJG9mZnNldDsNCgkJ CQkkbnVtUGFnZXMgPSBjZWlsKCR0b3RhbC8kbGltaXQpOw0KCQkJCSRwZyA9ICghZ3BzKCRw YWdldmFyKSkgPyAxIDogZ3BzKCRwYWdldmFyKTsNCgkJCQkkcGdvZmZzZXQgPSAkb2Zmc2V0 ICsgKCgkcGcgLSAxKSAqICRsaW1pdCk7DQoJCQkJLy8gc2VuZCBwYWdpbmcgaW5mbyB0byB0 eHA6bmV3ZXIgYW5kIHR4cDpvbGRlcg0KCQkJCSRwYWdlb3V0WydwZyddID0gJHBnOw0KCQkJ CSRwYWdlb3V0WydudW1QYWdlcyddID0gJG51bVBhZ2VzOw0KCQkJCSRwYWdlb3V0WydzJ10g PSAkcHJldGV4dFsncyddOw0KCQkJCSRwYWdlb3V0WydjJ10gPSAkcHJldGV4dFsnYyddOw0K CQkJCSRwYWdlb3V0WydncmFuZF90b3RhbCddID0gJG51bXJvd3M7DQoJCQkJJHBhZ2VvdXRb J3RvdGFsJ10gPSAkdG90YWw7DQoJCQkJJHRoaXNwYWdlID0gJHBhZ2VvdXQ7DQoJCQl9IGVs c2Ugew0KCQkJCSRwZ29mZnNldCA9ICRvZmZzZXQ7DQoJCQl9DQoNCgkJCSRycyA9IGFycmF5 X3NsaWNlKCRycywgJHBnb2Zmc2V0LCAoKCRsaW1pdD09MCkgPyA5OTk5OSA6ICRsaW1pdCkp Ow0KCQkJJHBhZ2Vyb3dzID0gY291bnQoJHJzKTsNCg0KCQkJJHJlcGxhY2VtZW50cyA9ICRy ZXBhZ2VtZW50cyA9ICRjb2xyZXBsYWNlbWVudHMgPSBhcnJheSgpOw0KCQkJJHBhZ2Vfcm93 Y250ID0gKCRjb3VudD09InVwIikgPyAwIDogJHBhZ2Vyb3dzLTE7DQoJCQkkcXJ5X3Jvd2Nu dCA9ICgkY291bnQ9PSJ1cCIpID8gJHBnb2Zmc2V0LSRvZmZzZXQgOiAkbnVtcm93cy0kcGdv ZmZzZXQtMTsNCgkJCSRmaXJzdF9yb3cgPSAkcXJ5X3Jvd2NudCArIDE7DQoNCgkJCS8vIFBy ZXNlcnZlIGFueSBleHRlcm5hbCBjb250ZXh0DQoJCQlzd2l0Y2ggKCRwb3B1bGF0ZSkgew0K CQkJCWNhc2UgJ2FydGljbGUnOg0KCQkJCQkkc2FmZSA9ICgkdGhpc2FydGljbGUpID8gJHRo aXNhcnRpY2xlIDogYXJyYXkoKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnaW1hZ2UnOg0K CQkJCQkkc2FmZSA9ICgkdGhpc2ltYWdlKSA/ICR0aGlzaW1hZ2UgOiBhcnJheSgpOw0KCQkJ CQlicmVhazsNCgkJCQljYXNlICdmaWxlJzoNCgkJCQkJJHNhZmUgPSAoJHRoaXNmaWxlKSA/ ICR0aGlzZmlsZSA6IGFycmF5KCk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2xpbmsnOg0K CQkJCQkkc2FmZSA9ICgkdGhpc2xpbmspID8gJHRoaXNsaW5rIDogYXJyYXkoKTsNCgkJCQkJ YnJlYWs7DQoJCQl9DQoNCgkJCWZvcmVhY2ggKCRycyBhcyAkcm93KSB7DQoJCQkJZm9yZWFj aCAoJHJvdyBhcyAkY29saWQgPT4gJHZhbCkgew0KCQkJCQlpZiAoJHBhZ2Vfcm93Y250ID09 IDAgJiYgJGNvbHNmb3JtKSB7DQoJCQkJCQkkY29scmVwbGFjZW1lbnRzWyd7Jy4kY29saWQu J30nXSA9ICRjb2xpZDsNCgkJCQkJfQ0KCQkJCQkvLyBDb25zdHJ1Y3QgdGhlIHJlcGxhY2Vt ZW50IGFycmF5cw0KCQkJCQkkcmVwbGFjZW1lbnRzWyd7Jy4kY29saWQuJ30nXSA9IChpbl9h cnJheSgkY29saWQsICRlc2NhcGVzKSA/IGh0bWxzcGVjaWFsY2hhcnMoJHZhbCwgRU5UX1FV T1RFUykgOiAkdmFsKTsNCgkJCQkJaWYgKCRwYWdlX3Jvd2NudCA9PSAoKCRjb3VudD09InVw IikgPyAkcGFnZXJvd3MtMSA6IDApICYmICRwYWdlZm9ybSAmJiAkbGltaXQ+MCkgew0KCQkJ CQkJJHByZXZwZyA9ICgoJHBnLTEpID4gMCkgPyAkcGctMSA6ICcnOw0KCQkJCQkJJG5leHRw ZyA9ICgoJHBnKzEpIDw9ICRudW1QYWdlcykgPyAkcGcrMSA6ICcnOw0KCQkJCQkJJHJlcGFn ZW1lbnRzWyd7c21kX2FsbHJvd3N9J10gPSAkdG90YWw7DQoJCQkJCQkkcmVwYWdlbWVudHNb J3tzbWRfcGFnZXN9J10gPSAkbnVtUGFnZXM7DQoJCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRf cHJldnBhZ2V9J10gPSAkcHJldnBnOw0KCQkJCQkJJHJlcGFnZW1lbnRzWyd7c21kX3RoaXNw YWdlfSddID0gJHBnOw0KCQkJCQkJJHJlcGFnZW1lbnRzWyd7c21kX25leHRwYWdlfSddID0g JG5leHRwZzsNCgkJCQkJCSRyZXBhZ2VtZW50c1sne3NtZF9yb3dfc3RhcnR9J10gPSAkZmly c3Rfcm93Ow0KCQkJCQkJJHJlcGFnZW1lbnRzWyd7c21kX3Jvd19lbmR9J10gPSAkcXJ5X3Jv d2NudCArIDE7DQoJCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRfcm93c19wcmV2fSddID0gKCgk cHJldnBnKSA/ICRsaW1pdCA6IDApOw0KCQkJCQkJJHJlcGFnZW1lbnRzWyd7c21kX3Jvd3Nf bmV4dH0nXSA9ICgoJG5leHRwZykgPyAoKCRxcnlfcm93Y250KyRsaW1pdCsxKSA+ICR0b3Rh bCA/ICR0b3RhbC0kcXJ5X3Jvd2NudC0xIDogJGxpbWl0KSA6IDApOw0KCQkJCQkJJHJlcGFn ZW1lbnRzWyd7c21kX3F1ZXJ5X3VuaXF1ZV9pZH0nXSA9ICR1bmlxOw0KCQkJCQkJJHNtZF9x dWVyeV9wZ2luZm8gPSAkcmVwYWdlbWVudHM7DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHJlcGxh Y2VtZW50c1sne3NtZF9hbGxyb3dzfSddID0gKCgkbGltaXQ+MCkgPyAkdG90YWwgOiAkbnVt cm93cy0kcGdvZmZzZXQpOw0KCQkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfcm93c30nXSA9ICRw YWdlcm93czsNCgkJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3BhZ2VzfSddID0gKCgkbGltaXQ+ MCkgPyAkbnVtUGFnZXMgOiAxKTsNCgkJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3RoaXNwYWdl fSddID0gKCgkbGltaXQ+MCkgPyAkcGcgOiAxKTsNCgkJCQkkcmVwbGFjZW1lbnRzWyd7c21k X3RoaXNpbmRleH0nXSA9ICRwYWdlX3Jvd2NudDsNCgkJCQkkcmVwbGFjZW1lbnRzWyd7c21k X3RoaXNyb3d9J10gPSAkcGFnZV9yb3djbnQgKyAxOw0KCQkJCSRyZXBsYWNlbWVudHNbJ3tz bWRfY3Vyc29yaW5kZXh9J10gPSAkcXJ5X3Jvd2NudDsNCgkJCQkkcmVwbGFjZW1lbnRzWyd7 c21kX2N1cnNvcn0nXSA9ICRxcnlfcm93Y250ICsgMTsNCgkJCQlpZiAoJGRlYnVnID4gMCkg ew0KCQkJCQllY2hvICIrKyBSRVBMQUNFTUVOVFMgKysiOw0KCQkJCQlkbXAoJHJlcGxhY2Vt ZW50cyk7DQoJCQkJfQ0KDQoJCQkJLy8gQXR0ZW1wdCB0byBzZXQgdXAgY29udGV4dHMgdG8g YWxsb3cgVFhQIHRhZ3MgdG8gYmUgdXNlZC4NCgkJCQkvLyBUaGlzIGZhY2lsaXR5IHJlbGll cyBvbiB0aGUgY29ycmVjdCBjb2x1bW5zIGJlaW5nIHB1bGxlZCBvdXQgYnkgdGhlIHF1ZXJ5 OiBjYXZlYXQgdXRpbGl0b3INCgkJCQlzd2l0Y2ggKCRwb3B1bGF0ZSkgew0KCQkJCQljYXNl ICdhcnRpY2xlJzoNCgkJCQkJCXBvcHVsYXRlQXJ0aWNsZURhdGEoJHJvdyk7DQoJCQkJCQkk dGhpc2FydGljbGVbJ2lzX2ZpcnN0J10gPSAoJHBhZ2Vfcm93Y250ID09IDEpOw0KCQkJCQkJ JHRoaXNhcnRpY2xlWydpc19sYXN0J10gPSAoKCRwYWdlX3Jvd2NudCArIDEpID09ICRwYWdl cm93cyk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAnaW1hZ2UnOg0KCQkJCQkJJHRoaXNp bWFnZSA9IGltYWdlX2Zvcm1hdF9pbmZvKCRyb3cpOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNh c2UgJ2ZpbGUnOg0KCQkJCQkJJHRoaXNmaWxlID0gZmlsZV9kb3dubG9hZF9mb3JtYXRfaW5m bygkcm93KTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICdsaW5rJzoNCgkJCQkJCSR0aGlz bGluayA9IGFycmF5KA0KCQkJCQkJCSdpZCcgICAgICAgICAgPT4gJHJvd1snaWQnXSwNCgkJ CQkJCQknbGlua25hbWUnICAgID0+ICRyb3dbJ2xpbmtuYW1lJ10sDQoJCQkJCQkJJ3VybCcg ICAgICAgICA9PiAkcm93Wyd1cmwnXSwNCgkJCQkJCQknZGVzY3JpcHRpb24nID0+ICRyb3db J2Rlc2NyaXB0aW9uJ10sDQoJCQkJCQkJJ2RhdGUnICAgICAgICA9PiAkcm93Wyd1RGF0ZSdd LA0KCQkJCQkJCSdjYXRlZ29yeScgICAgPT4gJHJvd1snY2F0ZWdvcnknXSwNCgkJCQkJCQkn YXV0aG9yJyAgICAgID0+ICRyb3dbJ2F1dGhvciddLA0KCQkJCQkJKTsNCgkJCQkJCWJyZWFr Ow0KCQkJCX0NCg0KCQkJCSRvdXRbXSA9ICgkcHJlcGFyc2UpID8gc3RydHIocGFyc2UoJHRy dWVQYXJ0KSwgJHJlcGxhY2VtZW50cykgOiBwYXJzZShzdHJ0cigkdHJ1ZVBhcnQsICRyZXBs YWNlbWVudHMpKTsNCgkJCQkkcXJ5X3Jvd2NudCA9ICgkY291bnQ9PSJ1cCIpID8gJHFyeV9y b3djbnQrMSA6ICRxcnlfcm93Y250LTE7DQoJCQkJJHBhZ2Vfcm93Y250ID0gKCRjb3VudD09 InVwIikgPyAkcGFnZV9yb3djbnQrMSA6ICRwYWdlX3Jvd2NudC0xOw0KCQkJfQ0KDQoJCQlp ZiAoJG91dCkgew0KCQkJCWlmICgkY29scmVwbGFjZW1lbnRzKSB7DQoJCQkJCSRjb2xvdXRb XSA9ICgkcHJlcGFyc2UpID8gc3RydHIocGFyc2UoJGNvbHNmb3JtKSwgJGNvbHJlcGxhY2Vt ZW50cykgOiBwYXJzZShzdHJ0cigkY29sc2Zvcm0sICRjb2xyZXBsYWNlbWVudHMpKTsNCgkJ CQl9DQoJCQkJaWYgKCRyZXBhZ2VtZW50cykgew0KCQkJCQkkcGFnZW91dCA9ICgkcHJlcGFy c2UpID8gc3RydHIocGFyc2UoJHBhZ2Vmb3JtKSwgJHJlcGFnZW1lbnRzKSA6IHBhcnNlKHN0 cnRyKCRwYWdlZm9ybSwgJHJlcGFnZW1lbnRzKSk7DQoJCQkJfQ0KDQoJCQkJLy8gTWFrZSB1 cCB0aGUgZmluYWwgb3V0cHV0DQoJCQkJaWYgKGluX2FycmF5KCJhYm92ZSIsICRwYWdlYml0 KSkgew0KCQkJCQkkZmluYWxvdXRbXSA9ICRwYWdlb3V0Ow0KCQkJCX0NCgkJCQkkZmluYWxv dXRbXSA9IGRvTGFiZWwoJGxhYmVsLCAkbGFiZWx0YWcpLmRvV3JhcChhcnJheV9tZXJnZSgk Y29sb3V0LCAkb3V0KSwgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzLCAkYnJlYWtjbGFzcywg JycsICcnLCAkaHRtbF9pZCk7DQoJCQkJaWYgKGluX2FycmF5KCJiZWxvdyIsICRwYWdlYml0 KSkgew0KCQkJCQkkZmluYWxvdXRbXSA9ICRwYWdlb3V0Ow0KCQkJCX0NCg0KCQkJCS8vIFJl c3RvcmUgdGhlIHBhZ2luZyBvdXRzaWRlIHRoZSBwbHVnaW4gY29udGFpbmVyDQoJCQkJaWYg KCRsaW1pdCA+IDApIHsNCgkJCQkJJHRoaXNwYWdlID0gJHNhZmVwYWdlOw0KCQkJCX0NCg0K CQkJCS8vIFJlc3RvcmUgdGhlIG90aGVyIGNvbnRleHRzDQoJCQkJaWYgKGlzc2V0KCRzYWZl KSkgew0KCQkJCQlzd2l0Y2ggKCRwb3B1bGF0ZSkgew0KCQkJCQkJY2FzZSAnYXJ0aWNsZSc6 DQoJCQkJCQkJJHRoaXNhcnRpY2xlID0gJHNhZmU7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQlj YXNlICdpbWFnZSc6DQoJCQkJCQkJJHRoaXNpbWFnZSA9ICRzYWZlOw0KCQkJCQkJCWJyZWFr Ow0KCQkJCQkJY2FzZSAnZmlsZSc6DQoJCQkJCQkJJHRoaXNmaWxlID0gJHNhZmU7DQoJCQkJ CQkJYnJlYWs7DQoJCQkJCQljYXNlICdsaW5rJzoNCgkJCQkJCQkkdGhpc2xpbmsgPSAkc2Fm ZTsNCgkJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlyZXR1cm4gam9pbignJywg JGZpbmFsb3V0KTsNCgkJCX0NCgkJfSBlbHNlIHsNCgkJCXJldHVybiBwYXJzZShFdmFsRWxz ZSgkdGhpbmcsIDApKTsNCgkJfQ0KCX0NCglyZXR1cm4gJyc7DQp9DQoNCi8vIFJldHVybnMg YSBzdHJpbmcgd2l0aCBhbnkgPyB2YXJpYWJsZXMgcmVwbGFjZWQgd2l0aCB0aGVpciBnbG9i YWxzDQovLyBVUkwgVmFyaWFibGVzIGFyZSBvcHRpb25hbGx5IHJ1biB0aHJvdWdoIHByZWdf cmVwbGFjZSgpIHRvIHNhbml0aXplIHRoZW0uDQovLyAgJHBhdCBpcyBhbiBhcnJheSBvZiBy ZWdleCBzZWFyY2ggcGF0dGVybnMNCi8vICAkcmVwIGlzIGFuIGFycmF5IG9mIHJlZ2V4IHNl YXJjaCByZXBhbGNlbWVudHMgKGRlZmF1bHQgPSAnJywgaS5lLiByZW1vdmUgd2hhdGV2ZXIg bWF0Y2hlcykNCmZ1bmN0aW9uIHNtZF9xdWVyeV9wYXJzZSgkaXRlbSwgJGRmbHRzPWFycmF5 KCcnKSwgJHBhdD1hcnJheSgnJyksICRyZXA9YXJyYXkoJycpLCAkbGF4PXRydWUpIHsNCgln bG9iYWwgJHByZXRleHQsICR0aGlzYXJ0aWNsZSwgJHRoaXNpbWFnZSwgJHRoaXNmaWxlLCAk dGhpc2xpbmssICR2YXJpYWJsZTsNCg0KCSRpdGVtID0gaHRtbF9lbnRpdHlfZGVjb2RlKCRp dGVtKTsNCg0KCS8vIFNvbWV0aW1lcyBwZXNreSBVbmljb2RlIGlzIG5vdCBjb21waWxlZCBp bi4gRGV0ZWN0IGlmIHNvIGFuZCBmYWxsIGJhY2sgdG8gQVNDSUkNCglpZiAoIUBwcmVnX21h dGNoKCcvXHBML3UnLCAnYScpKSB7DQoJCSRtb2RSRSA9ICgkbGF4KSA/ICcvKFw/KShbQS1a YS16MC05X1wtIF0rKS8nIDogJy8oXD8pKFtBLVphLXowLTlfXC1dKykvJzsNCgl9IGVsc2Ug ew0KCQkkbW9kUkUgPSAoJGxheCkgPyAnLyhcPykoW1xwe0x9XHB7Tn1ccHtQY31ccHtQZH1c cHtac31dKykvJyA6ICcvKFw/KShbXHB7TH1ccHtOfVxwe1BjfVxwe1BkfV0rKS8nOw0KCX0N Cg0KCSRudW1Nb2RzID0gcHJlZ19tYXRjaF9hbGwoJG1vZFJFLCAkaXRlbSwgJG1vZHMpOw0K DQoJZm9yICgkbW9kQ3RyID0gMDsgJG1vZEN0ciA8ICRudW1Nb2RzOyAkbW9kQ3RyKyspIHsN CgkJJG1vZENoYXIgPSAkbW9kc1sxXVskbW9kQ3RyXTsNCgkJJG1vZEl0ZW0gPSB0cmltKCRt b2RzWzJdWyRtb2RDdHJdKTsNCgkJJGxvd2l0ZW0gPSBzdHJ0b2xvd2VyKCRtb2RJdGVtKTsN CgkJJHVybHZhciA9ICRzdnJ2YXIgPSAnJzsNCg0KCQlpZiAoZ3BzKCRsb3dpdGVtKSAhPSAn Jykgew0KCQkJJHVybHZhciA9IGRvU2xhc2goZ3BzKCRsb3dpdGVtKSk7DQoJCQlpZiAoJHVy bHZhciAmJiAkcGF0KSB7DQoJCQkJJHVybHZhciA9IHByZWdfcmVwbGFjZSgkcGF0LCAkcmVw LCAkdXJsdmFyKTsNCgkJCX0NCgkJfQ0KCQlpZiAoc2VydmVyU2V0KCRtb2RJdGVtKSAhPSAn Jykgew0KCQkJJHN2cnZhciA9IGRvU2xhc2goc2VydmVyU2V0KCRtb2RJdGVtKSk7DQoJCQlp ZiAoJHN2cnZhciAmJiAkcGF0KSB7DQoJCQkJJHN2cnZhciA9IHByZWdfcmVwbGFjZSgkcGF0 LCAkcmVwLCAkc3ZydmFyKTsNCgkJCX0NCgkJfQ0KDQoJCWlmIChpc3NldCgkdmFyaWFibGVb JGxvd2l0ZW1dKSAmJiAkdmFyaWFibGVbJGxvd2l0ZW1dICE9ICcnKSB7DQoJCQkkaXRlbSA9 IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAkdmFyaWFibGVbJGxvd2l0ZW1dLCAk aXRlbSk7DQoJCX0gZWxzZSBpZiAoJHN2cnZhciAhPSAnJykgew0KCQkJJGl0ZW0gPSBzdHJf cmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJHN2cnZhciwgJGl0ZW0pOw0KCQl9IGVsc2Ug aWYgKGlzc2V0KCR0aGlzaW1hZ2VbJGxvd2l0ZW1dKSAmJiAhZW1wdHkoJHRoaXNpbWFnZVsk bG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVt LCAkdGhpc2ltYWdlWyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKGlzc2V0KCR0 aGlzZmlsZVskbG93aXRlbV0pICYmICFlbXB0eSgkdGhpc2ZpbGVbJGxvd2l0ZW1dKSkgew0K CQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJHRoaXNmaWxlWyRs b3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzbGlua1skbG93aXRl bV0pICYmICFlbXB0eSgkdGhpc2xpbmtbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJf cmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJHRoaXNsaW5rWyRsb3dpdGVtXSwgJGl0ZW0p Ow0KCQl9IGVsc2UgaWYgKGFycmF5X2tleV9leGlzdHMoJGxvd2l0ZW0sICRwcmV0ZXh0KSAm JiAhZW1wdHkoJHByZXRleHRbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFj ZSgkbW9kQ2hhci4kbW9kSXRlbSwgJHByZXRleHRbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0g ZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyRsb3dpdGVtXSkgJiYgIWVtcHR5KCR0aGlz YXJ0aWNsZVskbG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFy LiRtb2RJdGVtLCAkdGhpc2FydGljbGVbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxzZSBp ZiAoJHVybHZhciAhPSAnJykgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4k bW9kSXRlbSwgJHVybHZhciwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKGlzc2V0KCRkZmx0c1sk bG93aXRlbV0pKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVt LCAkZGZsdHNbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxzZSB7DQoJCQkkaXRlbSA9IHN0 cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAkbW9kSXRlbSwgJGl0ZW0pOw0KCQl9DQoJ fQ0KCXJldHVybiAkaXRlbTsNCn0NCi8vIENvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBjaGVj ayBpZiB0aGVyZSdzIGEgcHJldi9uZXh0IHBhZ2UgZGVmaW5lZC4gQ291bGQgYWxzbyB1c2Ug c21kX2lmDQpmdW5jdGlvbiBzbWRfcXVlcnlfaWZfcHJldigkYXR0cywgJHRoaW5nKSB7DQoJ Z2xvYmFsICRzbWRfcXVlcnlfcGdpbmZvOw0KDQoJJHJlcyA9ICRzbWRfcXVlcnlfcGdpbmZv ICYmICRzbWRfcXVlcnlfcGdpbmZvWyd7c21kX3ByZXZwYWdlfSddICE9ICcnOw0KCXJldHVy biBwYXJzZShFdmFsRWxzZShzdHJ0cigkdGhpbmcsICRzbWRfcXVlcnlfcGdpbmZvKSwgJHJl cykpOw0KfQ0KZnVuY3Rpb24gc21kX3F1ZXJ5X2lmX25leHQoJGF0dHMsICR0aGluZykgew0K CWdsb2JhbCAkc21kX3F1ZXJ5X3BnaW5mbzsNCg0KCSRyZXMgPSAkc21kX3F1ZXJ5X3BnaW5m byAmJiAkc21kX3F1ZXJ5X3BnaW5mb1sne3NtZF9uZXh0cGFnZX0nXSAhPSAnJzsNCglyZXR1 cm4gcGFyc2UoRXZhbEVsc2Uoc3RydHIoJHRoaW5nLCAkc21kX3F1ZXJ5X3BnaW5mbyksICRy ZXMpKTsNCg0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czo1 OiJmbGFncyI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6NDMxMjk6IjxkaXYgaWQ9InNtZF9oZWxw Ij4KCgk8aDE+c21kX3F1ZXJ5PC9oMT4KCgk8cD5UaGUgbGF6aWVzdCB0YWcgZXZlciEgQWxs b3dzIHlvdSB0byBtYWtlIGFkLWhvYyBxdWVyaWVzIHRvIHRoZSBkYXRhYmFzZSBhbmQgcHJv Y2VzcyB0aGUgcmVzdWx0cywgcm93IGJ5IHJvdywgaW4gYSBmb3JtIG9yIGNvbnRhaW5lci48 L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxpPlN1cHBvcnRzIHNpbXBsZSBx dWVyaWVzIHdpdGggYSByZWR1Y2VkIHN5bnRheCAoPHNwYW4gY2xhc3M9ImNhcHMiPlNFTEVD VDwvc3Bhbj4gY29scyA8c3BhbiBjbGFzcz0iY2FwcyI+RlJPTTwvc3Bhbj4gdGFibGUgPHNw YW4gY2xhc3M9ImNhcHMiPldIRVJFPC9zcGFuPiBjbGF1c2UpIG9yIHlvdXIgb3duIGN1c3Rv bSBxdWVyaWVzPC9saT4KCQk8bGk+UmVhZCBpbmZvcm1hdGlvbiBmcm9tIGFueSBwYXJ0IG9m IHRoZSBjdXJyZW50IGFydGljbGUsIGltYWdlIChwbGFubmVkKSwgZmlsZSwgbGluaywgPGNv ZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gb3IgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gbGluZS4gSWYgYW55IGZpZWxkcyBhcmUgbWlzc2luZyB5b3UgY2FuIHNw ZWNpZnkgYSBkZWZhdWx0IHZhbHVlPC9saT4KCQk8bGk+T3B0aW9uYWxseSBmaWx0ZXIgdGhl IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGlucHV0IHVzaW5nIHJlZ3VsYXIgZXhw cmVzc2lvbnMsIGZvciBzYWZldHk8L2xpPgoJCTxsaT5FYWNoIHJvdyBjYW4gYmUgcGFzc2Vk IHRvIGEgZm9ybSAob3IgdGhlIHBsdWdpbiBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciB0 YWcgd2l0aCBvciB3aXRob3V0IDxjb2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4pIHRv IGRpc3BsYXkgdGhlIHJlc3VsdHM8L2xpPgoJCTxsaT5Db2x1bW4gaGVhZGluZ3MgbWF5IGJl IG91dHB1dCB1c2luZyBhIHNlY29uZCBmb3JtPC9saT4KCQk8bGk+UmVzdWx0IHNldHMgY2Fu IGJlIHBhZ2luYXRlZCwgd2l0aCBzdXBwb3J0IGZvciBhIHBhZ2luZyBmb3JtPC9saT4KCTwv dWw+CgoJPGgyPkF1dGhvcjwvaDI+CgoJPHA+PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24u Y29tL2NvbnRhY3QiPlN0ZWYgRGF3c29uPC9hPjwvcD4KCgk8aDI+SW5zdGFsbGF0aW9uIC8g VW5pbnN0YWxsYXRpb248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRo ZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzk3Ni9zbWRfcXVl cnkiPnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRh d3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBh bmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0i aHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTI3Mjc5Ij5m b3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNj ZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5Vbmluc3RhbGwgYnkg c2ltcGx5IGRlbGV0aW5nIHRoZSBwbHVnaW4gZnJvbSB0aGUgQWRtaW4tJmd0O1BsdWdpbnMg cGFuZS48L3A+CgoJPGgyPjxjb2RlPiZsdDt0eHA6c21kX3F1ZXJ5IC8mZ3Q7PC9jb2RlPiB1 c2FnZTwvaDI+CgoJPHA+VXNlIHRoaXMgdGFnIGluIGFueSBwYWdlLCBmb3JtLCBhcnRpY2xl LCBmaWxlLCBsaW5rLCBldGMgY29udGV4dCB0byBncmFiIHN0dWZmIGZyb20gdGhlIGRhdGFi YXNlLiBUaGUgcGx1Z2luIGNhbiBvcGVyYXRlIGluIG9uZSBvZiB0d28gbW9kZXM6PC9wPgoK CTxvbD4KCQk8bGk+c2ltcGxlIG1vZGUganVzdCBhbGxvd3MgPGNvZGU+U0VMRUNUIHN0dWZm IEZST00gdGFibGUgV0hFUkUgY2xhdXNlPC9jb2RlPjwvbGk+CgkJPGxpPmFkdmFuY2VkIG1v ZGUgdXNlcyB0aGUgPGNvZGU+cXVlcnk8L2NvZGU+IGF0dHJpYnV0ZSBzbyB5b3UgY2FuIGRl c2lnbiB5b3VyIG93biBxdWVyeS4gSXQgY2FuIGluY2x1ZGUgPHNwYW4gY2xhc3M9ImNhcHMi PkNPVU5UPC9zcGFuPiAoKiksIGpvaW5zLCBhbnl0aGluZzsgcGVyaGFwcyBldmVuIDxzcGFu IGNsYXNzPSJjYXBzIj5JTlNFUlQ8L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVBE QVRFPC9zcGFuPiAoPykgYWx0aG91Z2ggaXQmIzgyMTc7cyB1bnRlc3RlZCBhbmQgbGlhYmxl IHRvIGZsb29kaW5nPC9saT4KCTwvb2w+CgoJPGgzIGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJp YnV0ZXMiPkF0dHJpYnV0ZXM8L2gzPgoKCTxoND5TaW1wbGUgcXVlcmllczwvaDQ+CgoJPHVs IGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNvbHVtbjwvc3Bhbj4g OiBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb2x1bW5zIHRvIHJldHJpZXZlIGZyb20gdGhl IGRhdGFiYXNlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnRhYmxlPC9zcGFuPiA6 IG5hbWUgb2YgdGhlIHRhYmxlIHRvIHJldHJpZXZlIHRoZSBjb2x1bW5zIGZyb20gKHllcywg bm9uLTxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRhYmxlcyBhcmUgYWxzbyBzdXBw b3J0ZWQgaWYgdGhleSBhcmUgaW4gdGhlIHNhbWUgZGF0YWJhc2UgOi0pPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPndoZXJlPC9zcGFuPiA6IGFueSBleHRyYSBjbGF1c2UgeW91 IHdpc2ggdG8gc3BlY2lmeS4gRGVmYXVsdHMgdG8gJiM4MjIwO3RoZSB3aG9sZSBkYXJuIHRh YmxlJiM4MjIxOzwvbGk+Cgk8L3VsPgoKCTxoND5BZHZhbmNlZCBxdWVyaWVzPC9oND4KCgk8 dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5xdWVyeTwvc3Bhbj4gOiBhbnkgcXVlcnkg eW91IGxpa2UgY2FuIGJlIHVzZWQgaGVyZS4gT3ZlcnJpZGVzIDxjb2RlPmNvbHVtbjwvY29k ZT4sIDxjb2RlPnRhYmxlPC9jb2RlPiBhbmQgPGNvZGU+d2hlcmU8L2NvZGU+PC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPm1vZGU8L3NwYW4+IDogeW91IHNob3VsZCBub3QgbmVl ZCB0byBhbHRlciB0aGlzIHBhcmFtZXRlciBhcyBpdCBpcyBzZXQgdG8gYXV0b21hdGljYWxs eSBkZXRlY3QgdGhlIHF1ZXJ5IHR5cGUuIElmIHlvdSBhcmUgdXNpbmcgPHNwYW4gY2xhc3M9 ImNhcHMiPlNFTEVDVDwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9ImNhcHMiPlNIT1c8L3NwYW4+ IHN0YXRlbWVudHMsIHRoZSBtb2RlIGlzIHNldCB0byA8Y29kZT5vdXRwdXQ8L2NvZGU+OyBm b3IgYW55IG90aGVyIHR5cGUgb2YgcXVlcnkgKGUuZy4gPHNwYW4gY2xhc3M9ImNhcHMiPklO U0VSVDwvc3Bhbj4vVVBEQVRFKSBpdCBpcyBzZXQgdG8gPGNvZGU+aW5wdXQ8L2NvZGU+LiBU aGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBtb2RlcyBpcyB0aGF0IGlmIGl0 IHNldCB0byA8Y29kZT5pbnB1dDwvY29kZT4geW91IGNhbiB1c2Ugc21kX3F1ZXJ5IGFzIGEg c2VsZi1jbG9zaW5nIHRhZyBiZWNhdXNlIGl0IGRvZXMgbm90IHVzZSB0aGUgZm9ybS9jb250 YWluZXIgdG8gcGFyc2UgdGhlIHJlc3VsdCBzZXQuIENoYW5nZSB0aGlzIHBhcmFtZXRlciBv bmx5IGlmIHRoZSBwbHVnaW4gZGV0ZWN0cyB0aGUgbW9kZSB3cm9uZ2x5IG9yIHlvdSBhcmUg ZG9pbmcgc29tZXRoaW5nIHVub3J0aG9kb3ggd2l0aCB5b3VyIHF1ZXJ5LiBEZWZhdWx0OiA8 Y29kZT5hdXRvPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5wb3B1bGF0 ZTwvc3Bhbj4gOiB5b3UgdXN1YWxseSB1c2UgPGNvZGU+e3JlcGxhY2VtZW50fTwvY29kZT4g dmFyaWFibGVzIGluIHlvdXIgc21kX3F1ZXJ5IGNvbnRhaW5lciBidXQgaWYgeW91IGFyZSBk ZWFsaW5nIHdpdGggdGhlIG5hdGl2ZSBUZXh0cGF0dGVybiBjb250ZW50IHR5cGVzIChhcnRp Y2xlLCBpbWFnZSwgZmlsZSwgbGluaykgeW91IGNhbiBpbmZvcm0gc21kX3F1ZXJ5IHdoaWNo IG9mIHRoZSBmb3VyIHlvdSBhcmUgdXNpbmcgdmlhIHRoaXMgYXR0cmlidXRlLiBZb3UgY2Fu IHRoZW4gdXNlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRhZ3MgaW5zaWRlIHlv dXIgZm9ybS9jb250YWluZXIuIFNlZSA8YSBocmVmPSIjZWcxMyI+ZXhhbXBsZSAxMzwvYT48 L2xpPgoJPC91bD4KCgk8aDQ+Rm9ybXMgYW5kIHBhZ2luZzwvaDQ+CgoJPHVsPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXRubSI+Zm9ybTwvc3Bhbj4gOiB0aGUgZm9ybSB0byB1c2UgdG8gcGFy c2UgZWFjaCByZXR1cm5lZCByb3cuIFNlZSA8YSBocmVmPSIjcmVwbGFjZW1lbnRzIj5yZXBs YWNlbWVudHM8L2E+LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgcGx1Z2luIHdpbGwgdXNlIGFu eXRoaW5nIGNvbnRhaW5lZCBiZXR3ZWVuIGl0cyBvcGVuaW5nIGFuZCBjbG9zaW5nIHRhZzwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jb2xzZm9ybTwvc3Bhbj4gOiBvcHRpb25h bCA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmb3JtIHRvIHBhcnNlIGFueSBoZWFk ZXIgcm93IGNvbnRhaW5pbmcgY29sdW1uIG5hbWVzIChvZiBsaW1pdGVkIHVzZSk8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cGFnZWZvcm08L3NwYW4+IDogb3B0aW9uYWwgPHNw YW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZm9ybSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxh eW91dCBvZiBhbnkgcGFnaW5nIG5hdmlnYXRpb24gYW5kIHN0YXRpc3RpY3Mgc3VjaCBhcyBw YWdlIG51bWJlciwgcXVhbnRpdHkgb2YgcmVjb3JkcyBwZXIgcGFnZSwgdG90YWwgbnVtYmVy IG9mIHJlY29yZHMsIGV0Yy48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cGFnZXBv czwvc3Bhbj4gOiB0aGUgcG9zaXRpb24gb2YgdGhlIHBhZ2luZyBpbmZvcm1hdGlvbi4gT3B0 aW9ucyBhcmUgPGNvZGU+YmVsb3c8L2NvZGU+ICh0aGUgZGVmYXVsdCksIDxjb2RlPmFib3Zl PC9jb2RlPiwgb3IgYm90aCBvZiB0aGVtIHNlcGFyYXRlZCBieSA8Y29kZT5kZWxpbTwvY29k ZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cHJlcGFyc2U8L3NwYW4+IDogbm9y bWFsbHksIGFueSBjb250YWluZXIgb3IgZm9ybSB3aWxsIGhhdmUgaXRzIHJlcGxhY2VtZW50 IHZhcmlhYmxlcyBzd2FwcGVkIGZvciBjb250ZW50IGFuZCA8ZW0+dGhlbjwvZW0+IGl0IHdp bGwgYmUgcGFyc2VkIHRvIHByb2Nlc3MgYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3Nw YW4+IHRhZ3MuIElmIHlvdSB3aXNoIHRvIHJldmVyc2UgdGhpcyBvcmRlciBzbyB0aGF0IHRo ZSBjb250YWluZXIgaXMgcGFyc2VkIGZpcnN0IGJlZm9yZSB0aGUgcmVwbGFjZW1lbnRzIGFy ZSBtYWRlLCBzcGVjaWZ5IDxjb2RlPnByZXBhcnNlPSZxdW90OzEmcXVvdDs8L2NvZGU+LiBW ZXJ5IHVzZWZ1bCB3aGVuIHVzaW5nIHRoZSA8Y29kZT4mbHQ7dHhwOnlpZWxkIC8mZ3Q7PC9j b2RlPiB0YWcgKHNlZSA8YSBocmVmPSIjZWc5Ij5leGFtcGxlIDk8L2E+KS4gRGVmYXVsdDog MDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5saW1pdDwvc3Bhbj4gOiBzaG93IHRo aXMgbWFueSByZXN1bHRzIHBlciBwYWdlLiBIYXMgbm8gYmVhcmluZyBvbiBhbnkgPHNwYW4g Y2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj4gPGNvZGU+TElNSVQ8L2NvZGU+IHlvdSBtYXkgc2V0 LiBTZXR0aW5nIGEgPGNvZGU+bGltaXQ8L2NvZGU+IGluIHRoZSBzbWRfcXVlcnkgdGFnIHN3 aXRjaGVzIHBhZ2luZyBvbiBhdXRvbWF0aWNhbGx5IHNvIHlvdSBjYW4gdXNlIHRoZSA8Y29k ZT4mbHQ7dHhwOm9sZGVyIC8mZ3Q7PC9jb2RlPiBhbmQgPGNvZGU+Jmx0O3R4cDpuZXdlciAv Jmd0OzwvY29kZT4gdGFncyBpbnNpZGUgeW91ciA8Y29kZT5wYWdlZm9ybTwvY29kZT4gdG8g c3RlcCB0aHJvdWdoIGVhY2ggcGFnZSBvZiByZXN1bHRzLiBZb3UgbWF5IGFsc28gY29uc3Ry dWN0IHlvdXIgb3duIHBhZ2luZyAoc2VlIDxhIGhyZWY9IiNlZzExIj5leGFtcGxlIDExPC9h Pik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+b2Zmc2V0PC9zcGFuPiA6IHNraXAg dGhpcyBtYW55IHJvd3MgYmVmb3JlIG91dHB1dHRpbmcgdGhlIHJlc3VsdHM8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+cGFnZXZhcjwvc3Bhbj4gOiBpZiB5b3UgYXJlIHB1dHRp bmcgYW4gc21kX3F1ZXJ5IG9uIHRoZSBzYW1lIHBhZ2UgYXMgYSBzdGFuZGFyZCBhcnRpY2xl IGxpc3QsIHRoZSBidWlsdC1pbiBuZXdlciBhbmQgb2xkZXIgdGFncyB3aWxsIGNsYXNoIHdp dGggdGhvc2Ugb2Ygc21kX3F1ZXJ5OyBjbGlja2luZyBuZXh0L3ByZXYgd2lsbCBzdGVwIHRo cm91Z2ggYm90aCB5b3VyIHJlc3VsdCBzZXQgYW5kIHlvdXIgYXJ0aWNsZSBsaXN0LiBTcGVj aWZ5IGEgZGlmZmVyZW50IHZhcmlhYmxlIG5hbWUgaGVyZSBzbyB0aGUgdHdvIGxpc3RzIGNh biBiZSBuYXZpZ2F0ZWQgaW5kZXBlbmRlbnRseSwgZS5nLiA8Y29kZT5wYWdldmFyPSZxdW90 O3FwYWdlJnF1b3Q7PC9jb2RlPi4gTm90ZSB0aGF0IGlmIHlvdSBjaGFuZ2UgdGhpcywgeW91 IHdpbGwgaGF2ZSB0byBnZW5lcmF0ZSB5b3VyIG93biBjdXN0b20gbmV3ZXIvb2xkZXIgbGlu a3MgKHNlZSA8YSBocmVmPSIjZWcxMSI+ZXhhbXBsZSAxMTwvYT4pIGFuZCB0aGUgPGEgaHJl Zj0iI3NtZF9xaWYiPmNvbmRpdGlvbmFsIHRhZ3M8L2E+LiBZb3UgbWF5IGFsc28gdXNlIHRo ZSBzcGVjaWFsIHZhbHVlIDxjb2RlPnBhZ2V2YXI9JnF1b3Q7U01EX1FVRVJZX1VOSVFVRV9J RCZxdW90OzwvY29kZT4gd2hpY2ggd2lsbCBhc3NpZ24gdGhlIHBhZ2luZyB2YXJpYWJsZSB0 byB0aGlzIHNwZWNpZmljIGluc3RhbmNlIG9mIHlvdXIgcXVlcnkuIFRoaXMgd2lsbCBhbGxv dyB5b3UgdG8gdXNlIG11bHRpcGxlIHNtZF9xdWVyeSB0YWdzIG9uIGEgc2luZ2xlIHBhZ2Ug YW5kIG5hdmlnYXRlIHRoZW0gaW5kZXBlbmRlbnRseSB1c2luZyB0aGUgc2FtZSA8Y29kZT5w YWdlZm9ybTwvY29kZT4gKHNlZSA8YSBocmVmPSIjZWcxMiI+ZXhhbXBsZSAxMjwvYT4gZm9y IGRldGFpbHMpLiBEZWZhdWx0OiA8Y29kZT5wZzwvY29kZT48L2xpPgoJPC91bD4KCgk8aDQ+ RmlsdGVyczwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dXJsZmlsdGVy PC9zcGFuPiA6IGZpbHRlciA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpbnB1dCB3 aXRoIHRoaXMgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIChlYWNoIHNlcGFyYXRlZCBi eSA8Y29kZT5kZWxpbTwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnVy bHJlcGxhY2U8L3NwYW4+IDogcmVwbGFjZSBlYWNoIGZpbHRlcmVkIDxzcGFuIGNsYXNzPSJj YXBzIj5VUkw8L3NwYW4+IGVsZW1lbnQgbGlzdGVkIGluIDxjb2RlPnVybGZpbHRlcjwvY29k ZT4gd2l0aCB0aGlzIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9ucyAoZWFjaCBzZXBhcmF0 ZWQgYnkgPGNvZGU+ZGVsaW08L2NvZGU+KS4gSWYgbm90IHVzZWQsIGFueXRoaW5nIG1hdGNo aW5nIDxjb2RlPnVybGZpbHRlcjwvY29kZT4gd2lsbCBiZSByZW1vdmVkIGZyb20gYW55IDxz cGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlcy4gU2VlIDxhIGhyZWY9IiNm aWx0ZXJpbmciPkZpbHRlcmluZyBhbmQgaW5qZWN0aW9uPC9hPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5kZWZhdWx0czwvc3Bhbj4gOiBjb21tYSBzZXBhcmF0ZWQgbGlzdCBv ZiB2YWx1ZXMgdG8gdXNlIGluIHRoZSBldmVudCBzb21lIGZpZWxkIHlvdSBzcGVjaWZpZWQg ZG9lc24mIzgyMTc7dCBleGlzdC4gRWFjaCBkZWZhdWx0IHNob3VsZCBiZSBnaXZlbiBhcyA8 Y29kZT5uYW1lOiB2YWx1ZTwvY29kZT4gKHRoZSA8Y29kZT46PC9jb2RlPiBpcyBjb25maWd1 cmFibGUgdmlhIHRoZSA8Y29kZT5wYXJhbWRlbGltPC9jb2RlPiBhdHRyaWJ1dGUpLiBGb3Ig ZXhhbXBsZSA8Y29kZT5kZWZhdWx0cz0mcXVvdDtpZDogMSwgbXlfY2F0OiBtYW1tYWxzLCB1 c2VyX3NlYzogP2RlZnNlYyZxdW90OzwvY29kZT4gd291bGQgbWVhbiB0aGF0IGlmIHRoZSA8 Y29kZT5pZDwvY29kZT4gZmllbGQgd2FzIGJsYW5rLCB0aGUgbnVtYmVyIDEgd291bGQgYmUg dXNlZDsgaWYgdGhlIHZhcmlhYmxlIDxjb2RlPm15X2NhdDwvY29kZT4gd2FzIGVtcHR5LCB0 aGUgd29yZCA8Y29kZT5tYW1tYWxzPC9jb2RlPiB3b3VsZCBiZSB1c2VkOyBhbmQgaWYgdGhl IDxjb2RlPnVzZXJfc2VjPC9jb2RlPiB2YXJpYWJsZSB3YXMgZW1wdHksIHVzZSB0aGUgZGVm YXVsdCB2YWx1ZSBhcyBmb3VuZCBpbiB0aGUgdmFyaWFibGUgPGNvZGU+ZGVmc2VjPC9jb2Rl PiAod2hpY2ggY291bGQgaGF2ZSBiZWVuIHNldCB2aWEgYSA8Y29kZT4mbHQ7dHhwOnZhcmlh YmxlIC8mZ3Q7PC9jb2RlPiBlYXJsaWVyIGluIHRoZSBwYWdlKTwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5lc2NhcGU8L3NwYW4+IDogbGlzdCBvZiBjb2x1bW4gbmFtZXMgd2l0 aCB3aGljaCB0byBlc2NhcGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGVudGl0 aWVzLiBVc2VmdWwgaWYgeW91IGhhdmUgcmV0dXJuZWQgYm9keSBvciBleGNlcnB0IGJsb2Nr cyB0aGF0IG1heSBjb250YWluIGFwb3N0cm9waGVzIHRoYXQgY291bGQga2lsbCB0YWdzIGlu c2lkZSB0aGUgc21kX3F1ZXJ5IGNvbnRhaW5lcjwvbGk+Cgk8L3VsPgoKCTxoND5UYWcvY2xh c3MvZm9ybWF0dGluZyBhdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5sYWJlbDwvc3Bhbj4gOiBsYWJlbCB0byBkaXNwbGF5IGFib3ZlIHRoZSBlbnRp cmUgb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxhYmVsdGFnPC9zcGFu PiA6IHRoZSAoWClIVE1MIHRhZyB0byBzdXJyb3VuZCB0aGUgbGFiZWwgd2l0aC4gU3BlY2lm eSBpdCB3aXRob3V0IGFuZ2xlIGJyYWNrZXRzIChlLmcuIDxjb2RlPmxhYmVsdGFnPSZxdW90 O2gzJnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+d3JhcHRh Zzwvc3Bhbj4gOiB0aGUgKFgpSFRNTCB0YWcgdG8gc3Vycm91bmQgdGhlIGVudGlyZSBvdXRw dXQgKGUuZy4gPGNvZGU+d3JhcHRhZz0mcXVvdDt0YWJsZSZxdW90OzwvY29kZT4pPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmh0bWxfaWQ8L3NwYW4+IDogPHNwYW4gY2xhc3M9 ImNhcHMiPkhUTUw8L3NwYW4+IElEIHRvIGFwcGx5IHRvIHRoZSB3cmFwdGFnPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBz Ij5DU1M8L3NwYW4+IGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhlIHdyYXB0YWc8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+YnJlYWs8L3NwYW4+IDogZWFjaCByZXR1cm5lZCBy b3cgb2YgZGF0YSB3aWxsIGJlIHdyYXBwZWQgd2l0aCB0aGlzIHRhZyAoZS5nLiA8Y29kZT5i cmVhaz0mcXVvdDt0ciZxdW90OzwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPmJyZWFrY2xhc3M8L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4g Y2xhc3MgbmFtZSB0byBhcHBseSB0byB0aGUgYnJlYWsgdGFnPC9saT4KCTwvdWw+CgoJPGg0 PlBsdWdpbiBjdXN0b21pc2F0aW9uPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5zdHJpY3RmaWVsZHM8L3NwYW4+IDogd2hlbiB1c2luZyAmIzgyMTY7PyYjODIxNzsg ZmllbGRzLCBzcGFjZXMgYXJlIGFsbG93ZWQgaW4gZmllbGQgbmFtZXMuIFNldCA8Y29kZT5z dHJpY3RmaWVsZHM9JnF1b3Q7MSZxdW90OzwvY29kZT4gdG8gZm9yYmlkIHNwYWNlcy4gRGVm YXVsdDogMDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWxpbTwvc3Bhbj4gOiB0 aGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3ZWVuIHBhdHRlcm5zIGluIDxjb2RlPnVybGZpbHRl cjwvY29kZT4gYW5kIDxjb2RlPnVybHJlcGxhY2U8L2NvZGU+LiBEZWZhdWx0OiBjb21tYSAo PGNvZGU+LDwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnBhcmFtZGVs aW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBuYW1lLXZhbHVlIHBh aXJzIGluIDxjb2RlPmRlZmF1bHRzPC9jb2RlPi4gRGVmYXVsdDogY29sb24gKDxjb2RlPjo8 L2NvZGU+KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5oYXNoc2l6ZTwvc3Bhbj4g OiAoc2hvdWxkIG5vdCBiZSBuZWVkZWQpIHRoZSBwbHVnaW4gYXNzaWducyBhIDMyLWNoYXJh Y3RlciwgdW5pcXVlIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBzbWRfcXVlcnkgYmFzZWQg b24geW91ciBxdWVyeSBhdHRyaWJ1dGVzLiA8Y29kZT5oYXNoc2l6ZTwvY29kZT4gZ292ZXJu cyB0aGUgbWVjaGFuaXNtIGZvciBtYWtpbmcgdGhpcyBsb25nIHJlZmVyZW5jZSBzaG9ydGVy LiBJdCBjb21wcmlzZXMgdHdvIG51bWJlcnMgc2VwYXJhdGVkIGJ5IGEgY29sb247IHRoZSBm aXJzdCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSB1bmlxZSBJRCwgdGhlIHNlY29uZCBpcyBob3cg bWFueSBjaGFyYWN0ZXJzIHRvIHNraXAgcGFzdCBlYWNoIHRpbWUgYSBjaGFyYWN0ZXIgaXMg Y2hvc2VuLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHVuaXF1ZV9yZWZlcmVuY2Ugd2FzIDxjb2Rl PjBjZjI4NTg3OWJmOWQ2YjgxMjUzOWViNzQ4ZmJjOGY2PC9jb2RlPiB0aGVuIDxjb2RlPmhh c2hzaXplPSZxdW90OzY6NSZxdW90OzwvY29kZT4gd291bGQgbWFrZSBhIDYtY2hhcmFjdGVy IHVuaXF1ZSBJRCB1c2luZyBldmVyeSA1dGggY2hhcmFjdGVyOyBpbiBvdGhlciB3b3JkcyA8 Y29kZT4wNWY4OTg8L2NvZGU+LiBJZiBhdCBhbnkgdGltZSwgeW91ICYjODIyMDtmYWxsIG9m ZiYjODIyMTsgdGhlIGVuZCBvZiB0aGUgbG9uZyBzdHJpbmcsIHRoZSBwbHVnaW4gd3JhcHMg YmFjayB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcgYW5kIGNvbnRpbnVlcyBjb3Vu dGluZy4gRGVmYXVsdDogPGNvZGU+Njo1PC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5zaWxlbnQ8L3NwYW4+IDogaWYgeW91ciBxdWVyeSBjb250YWlucyBhbiBlcnJv ciAod3JvbmcgY29sdW1uIG5hbWUgb3Igc29tZSBtYWxmb3JtZWQgaW5wdXQpLCB0aGUgcGx1 Z2luIHdpbGwgaXNzdWUgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBlcnJvciBt ZXNzYWdlLiBVc2luZyA8Y29kZT5zaWxlbnQ9JnF1b3Q7MSZxdW90OzwvY29kZT4gd2lsbCBh dHRlbXB0IHRvIGhpZGUgdGhpcyBlcnJvciBtZXNzYWdlPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPmNvdW50PC9zcGFuPiA6IENhbiBiZSBlaXRoZXIgJiM4MjIwO3VwJiM4MjIx OyAodGhlIGRlZmF1bHQpIG9yICYjODIyMDtkb3duJiM4MjIxOy4gU2VlIDxhIGhyZWY9IiNy ZXBsYWNlbWVudHMiPntzbWRfdGhpc3Jvd308L2E+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPmRlYnVnPC9zcGFuPiA6IHNldCB0byAxIHRvIHNob3cgc29tZSBkZWJ1ZyBvdXRw dXQ7IHVzZSAyIHRvIHNob3cgYSBiaXQgbW9yZSBkZXRhaWw8L2xpPgoJPC91bD4KCgk8cD5U aGUgYXR0cmlidXRlcyA8Y29kZT5xdWVyeTwvY29kZT4sIDxjb2RlPmNvbHVtbjwvY29kZT4s IDxjb2RlPnRhYmxlPC9jb2RlPiBhbmQgPGNvZGU+d2hlcmU8L2NvZGU+IGNhbiBjb250YWlu IHJlcGxhY2VtZW50cyB0aGVtc2VsdmVzIHRvIHJlYWQgdmFsdWVzIGZyb20gdGhlIGN1cnJl bnQgY29udGV4dC4gU3BlY2lmeSB0aGUgZmllbGQgbmFtZSB3aXRoIGEgPGNvZGU+PzwvY29k ZT4gaW4gZnJvbnQgb2YgaXQgKGUuZy4gPGNvZGU+cXVlcnk9JnF1b3Q7U0VMRUNUICogRlJP TSB0eHBfaW1hZ2UgV0hFUkUgY2F0ZWdvcnk9JiMzOTs/Y2F0ZWdvcnkxJiMzOTsgT1IgY2F0 ZWdvcnk9JiMzOTs/Y2F0ZWdvcnkyJiMzOTs8L2NvZGU+KSB3b3VsZCBzaG93IGltYWdlcyB0 aGF0IGhhZCB0aGVpciBjYXRlZ29yeSBzZXQgdG8gb25lIG9mIHRoZSBhcnRpY2xlJiM4MjE3 O3MgY2F0ZWdvcmllcy48L3A+CgoJPHA+VGhlICYjODIxNjs/JiM4MjE3OyBmaWVsZHMgY2Fu IGJlIGFueSBpdGVtIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHVu aXZlcnNlLCBpbmNsdWRpbmcgYW55dGhpbmcgc2V0IGluIGEgPGNvZGU+Jmx0O3R4cDp2YXJp YWJsZSAvJmd0OzwvY29kZT4gb3Igc29tZSB1c2VyLWlucHV0IG9uIHRoZSA8c3BhbiBjbGFz cz0iY2FwcyI+VVJMPC9zcGFuPiBhZGRyZXNzIGJhci4gRmllbGRzIGFyZSBwcm9jZXNzZWQg aW4gdGhlIGZvbGxvd2luZyBvcmRlcjsgYXMgc29vbiBhcyBhIG1hdGNoaW5nIGVudHJ5IGlz IGZvdW5kLCB0aGUgcmVzdCBhcmUgbm90IGNoZWNrZWQ6PC9wPgoKCTxwPjxjb2RlPiZsdDt0 eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+IC0mZ3Q7IDxjb2RlPiRfU0VSVkVSPC9jb2RlPiB2 YXIgLSZndDsgaW1hZ2UgLSZndDsgZmlsZSAtJmd0OyBsaW5rIC0mZ3Q7IGdsb2JhbCBhcnRp Y2xlIC0mZ3Q7IGN1cnJlbnQgYXJ0aWNsZSAtJmd0OyA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM PC9zcGFuPiB2YXIgLSZndDsgZGVmYXVsdCB2YWx1ZSAtJmd0OyB2ZXJiYXRpbSAod2l0aG91 dCAmIzgyMTY7PyYjODIxNzspPC9wPgoKCTxwPlRoaXMgaGllcmFyY2h5IGFsbG93cyBzb21l IGRlZ3JlZSBvZiBzYWZldHk6IHNpbmNlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ IHZhcmlhYmxlcyBhcmUgdWx0aW1hdGVseSBzZXQgYnkgeW91LCB0aGV5IGFyZSBjaGVja2Vk IGZpcnN0LCB0aGVuIGdyYWR1YWxseSBsZXNzIHNwZWNpZmljIHN0dWZmIGlzIGNoZWNrZWQg dW50aWwgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGVzIGFyZSBjb25z aWRlcmVkIGF0IHRoZSBib3R0b20gb2YgdGhlIGZvb2QgY2hhaW4uPC9wPgoKCTxoMiBjbGFz cz0iYXR0cyAiIGlkPSJyZXBsYWNlbWVudHMiPlJlcGxhY2VtZW50IHRhZ3M8L2gyPgoKCTxw PkluIHlvdXIgb3V0cHV0IGZvcm0geW91IG1heSBzcGVjaWZ5IGFueSBjb2x1bW4gbmFtZSBz dXJyb3VuZGVkIHdpdGggPGNvZGU+e308L2NvZGU+IGNoYXJhY3RlcnMgdG8gZGlzcGxheSB0 aGF0IGZpZWxkLiBTbyBpZiB5b3VyIHF1ZXJ5IHdhcyA8Y29kZT5TRUxFQ1QgaWQsIG5hbWUs IGNhdGVnb3J5IEZST00gdHhwX2ltYWdlIFdIRVJFIGV4dD0mcXVvdDsuanBnJnF1b3Q7PC9j b2RlPiB5b3Ugd291bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHJlcGxhY2VtZW50cyBhdmFpbGFi bGU6PC9wPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntpZH08L3NwYW4+IDog dGhlIGltYWdlIElEPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntuYW1lfTwvc3Bh bj4gOiB0aGUgaW1hZ2UgZmlsZW5hbWU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ e2NhdGVnb3J5fTwvc3Bhbj4gOiB0aGUgaW1hZ2UgY2F0ZWdvcnk8L2xpPgoJPC91bD4KCgk8 cD5KdXN0IHB1dCB0aG9zZSBuYW1lcyBpbnRvIHlvdXIgPGNvZGU+Zm9ybTwvY29kZT4gYW1v bmcgb3RoZXIgbm9ybWFsIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBvciA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0YWdzLCBhbmQgdGhlIHJlbGV2YW50IHZhbHVl IGZyb20gdGhhdCByb3cgd2lsbCBiZSBkaXNwbGF5ZWQuIFRoZSByZXBsYWNlbWVudHMgaG9u b3VyIGFueSA8Y29kZT5BUzwvY29kZT4gc3RhdGVtZW50IHlvdSBtYXkgZW1wbG95IHRvIHJl bmFtZSB0aGVtLjwvcD4KCgk8cD5JbiBhZGRpdGlvbiwgdGhlIGZvbGxvd2luZyByZXBsYWNl bWVudHMgYXJlIGFkZGVkIHRvIGVhY2ggcm93OjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj57c21kX2FsbHJvd3N9PC9zcGFuPiA6IHRoZSB0b3RhbCBudW1iZXIgb2Yg cm93cyBpbiB0aGUgcmVzdWx0IHNldDxzdXAgaWQ9ImZucmV2MTgyOTYzODc3NjRjN2Q2ZDgz MmE0OTEiIGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMTgyOTYzODc3NjRjN2Q2ZDgz MmE0OTEiPjE8L2E+PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRf cm93c308L3NwYW4+IDogdGhlIHRvdGFsIG51bWJlciBvZiByb3dzIHZpc2libGUgb24gdGhp cyBwYWdlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfcGFnZXN9PC9zcGFu PiA6IHRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgaW4gdGhpcyByZXN1bHQgc2V0PHN1cCBj bGFzcz0iZm9vdG5vdGUiPjxhIGhyZWY9IiNmbjE4Mjk2Mzg3NzY0YzdkNmQ4MzJhNDkxIj4x PC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3RoaXNwYWdl fTwvc3Bhbj4gOiB0aGUgY3VycmVudCBwYWdlIG51bWJlciBiZWluZyB2aWV3ZWQ8c3VwIGNs YXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMTgyOTYzODc3NjRjN2Q2ZDgzMmE0OTEiPjE8 L2E+PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfdGhpc3Jvd308 L3NwYW4+IDogdGhlIGN1cnJlbnQgcm93IG51bWJlciBvbiB0aGlzIHBhZ2U8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF90aGlzaW5kZXh9PC9zcGFuPiA6IHRoZSBjdXJy ZW50IHJvdyBudW1iZXIgKHplcm8tYmFzZWQpIG9uIHRoaXMgcGFnZTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj57c21kX2N1cnNvcn08L3NwYW4+IDogdGhlIGN1cnJlbnQgcm93 IG51bWJlciBmcm9tIHRoZSBzdGFydCBvZiB0aGUgcmVzdWx0IHNldDwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj57c21kX2N1cnNvcmluZGV4fTwvc3Bhbj4gOiB0aGUgY3VycmVu dCByb3cgbnVtYmVyIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByZXN1bHQgc2V0ICh6ZXJvLWJh c2VkKTwvbGk+Cgk8L3VsPgoKCTxwIGlkPSJmbjE4Mjk2Mzg3NzY0YzdkNmQ4MzJhNDkxIiBj bGFzcz0iZm9vdG5vdGUiPjxzdXA+MTwvc3VwPiBUaGVzZSB0aHJlZSBpdGVtcyBhcmUgYWxz byBhdmFpbGFibGUgaW4geW91ciBkZXNpZ25hdGVkIDxjb2RlPnBhZ2Vmb3JtPC9jb2RlPi4g VGhlIHBhZ2Vmb3JtIGNhbiBhbHNvIHV0aWxpc2UgdGhlc2UgZXh0cmEgcmVwbGFjZW1lbnRz OjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3ByZXZwYWdlfTwv c3Bhbj4gOiB0aGUgcHJldmlvdXMgcGFnZSBudW1iZXIgKGVtcHR5IGlmIG9uIGZpcnN0IHBh Z2UpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbmV4dHBhZ2V9PC9zcGFu PiA6IHRoZSBuZXh0IHBhZ2UgbnVtYmVyIChlbXB0eSBpZiBvbiBsYXN0IHBhZ2UpPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfcm93X3N0YXJ0fTwvc3Bhbj4gOiB0aGUg Zmlyc3Qgcm93IG51bWJlciBiZWluZyBkaXNwbGF5ZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+e3NtZF9yb3dfZW5kfTwvc3Bhbj4gOiB0aGUgbGFzdCByb3cgbnVtYmVyIGJl aW5nIGRpc3BsYXllZDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3Jvd3Nf cHJldn08L3NwYW4+IDogdGhlIG51bWJlciBvZiByb3dzIG9uIHRoZSBwcmV2aW91cyBwYWdl LiBXaWxsIGVpdGhlciBiZSB0aGUgdmFsdWUgb2YgeW91ciA8Y29kZT5saW1pdDwvY29kZT4s IG9yIDAgaWYgb24gdGhlIGZpcnN0IHBhZ2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+e3NtZF9yb3dzX25leHR9PC9zcGFuPiA6IHRoZSBudW1iZXIgb2Ygcm93cyBvbiB0aGUg bmV4dCBwYWdlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfcXVlcnlfdW5p cXVlX2lkfTwvc3Bhbj4gOiB0aGUgdW5pcXVlIElEIGFzc2lnbmVkIHRvIHRoaXMgc21kX3F1 ZXJ5IHRhZyAoc2VlIHRoZSA8Y29kZT5oYXNoc2l6ZTwvY29kZT4gYXR0cmlidXRlIGFuZCA8 YSBocmVmPSIjZWcxMiI+ZXhhbXBsZSAxMjwvYT4gZm9yIG1vcmUpPC9saT4KCTwvdWw+CgoJ PHA+VGhlc2UgYXJlIHVzZWZ1bCBmb3IgdGFibGVzIHRvIHNob3cgcm93IG51bWJlcnMsIGJ1 dCBjYW4gYWxzbyBiZSB1c2VkIGZvciBwYWdpbmF0aW9uIG9yIGNhbiBiZSB0ZXN0ZWQgd2l0 aCBzbWRfaWYgdG8gdGFrZSBhY3Rpb24gZnJvbSB3aXRoaW4geW91ciBmb3JtLiA8Y29kZT57 c21kX3RoaXNyb3d9PC9jb2RlPiwgPGNvZGU+e3NtZF90aGlzaW5kZXh9PC9jb2RlPiwgPGNv ZGU+e3NtZF9jdXJzb3J9PC9jb2RlPiwgYW5kIDxjb2RlPntzbWRfY3Vyc29yaW5kZXh9PC9j b2RlPiBjb3VudCB1cCBvciBkb3duIGRlcGVuZGluZyBvbiB0aGUgPGNvZGU+Y291bnQ8L2Nv ZGU+IGF0dHJpYnV0ZSAoPGNvZGU+e3NtZF9yb3dfc3RhcnR9PC9jb2RlPiBhbmQgPGNvZGU+ e3NtZF9yb3dfZW5kfTwvY29kZT4gYWxzbyBjaGFuZ2UgYWNjb3JkaW5nbHkpLjwvcD4KCgk8 aDIgaWQ9InNtZF9xaWYiPjxjb2RlPiZsdDt0eHA6c21kX3F1ZXJ5X2lmX3ByZXYmZ3Q7IC8g Jmx0O3R4cDpzbWRfcXVlcnlfaWZfbmV4dCZndDs8L2NvZGU+PC9oMj4KCgk8cD5Vc2UgdGhl c2UgY29udGFpbmVyIHRhZ3MgdG8gZGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGEgbmV4dCBvciBw cmV2aW91cyBwYWdlIGFuZCB0YWtlIGFjdGlvbiBpZiBzby4gQ2FuIG9ubHkgYmUgdXNlZCBp bnNpZGUgPGNvZGU+cGFnZWZvcm08L2NvZGU+LCB0aHVzIGFsbCA8YSBocmVmPSIjcmVwbGFj ZW1lbnRzIj5wYWdpbmcgcmVwbGFjZW1lbnQgdmFyaWFibGVzPC9hPiBhcmUgYXZhaWxhYmxl IGluc2lkZSB0aGVzZSB0YWdzLjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFz cz0iYmxvY2siPiZsdDt0eHA6c21kX3F1ZXJ5X2lmX3ByZXYmZ3Q7UHJldmlvdXMgcGFnZSZs dDsvdHhwOnNtZF9xdWVyeV9pZl9wcmV2Jmd0OwombHQ7dHhwOnNtZF9xdWVyeV9pZl9uZXh0 Jmd0O05leHQgcGFnZSZsdDsvdHhwOnNtZF9xdWVyeV9pZl9uZXh0Jmd0Owo8L2NvZGU+PC9w cmU+CgoJPHA+U2VlIDxhIGhyZWY9IiNlZzExIj5leGFtcGxlIDExPC9hPiBmb3IgbW9yZS48 L3A+CgoJPGgyIGlkPSJmaWx0ZXJpbmciPkZpbHRlcmluZyBhbmQgaW5qZWN0aW9uPC9oMj4K Cgk8cD5BZnRlciBncmVhdCBkZWxpYmVyYXRpb24sIGFjY2VzcyB0byB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gbGluZSBoYXMgYmVlbiBncmFudGVkIHNvIHlvdSBtYXkg ZW1wbG95IHVzZXItZW50ZXJlZCBkYXRhIGluIHlvdXIgcXVlcmllcywgYWxsb3dpbmcgY29t cGxldGUgZmxleGliaWxpdHkgZm9yIHlvdXIgdXNlciBiYXNlLiBIb3dldmVyLCBhcyBQZXRl ciBQYXJrZXImIzgyMTc7cyBjb25zY2llbmNlIG1pZ2h0IHNheTo8L3A+CgoJPGJsb2NrcXVv dGU+CgkJPHA+V2l0aCBncmVhdCBwb3dlciBjb21lcyBncmVhdCByZXNwb25zaWJpbGl0eTwv cD4KCTwvYmxvY2txdW90ZT4KCgk8cD5Ob3QgZXZlcnlib2R5IG91dCB0aGVyZSBpcyB0cnVz dHdvcnRoeSBzbyBoZWVkIHRoaXMgd2FybmluZzogPHN0cm9uZz5Bc3N1bWUgPHNwYW4gY2xh c3M9ImNhcHMiPkFMTDwvc3Bhbj4gdXNlciBpbnB1dCBpcyB0YWludGVkPC9zdHJvbmc+LiBD aGVjayBldmVyeXRoaW5nLiBJZiB5b3Ugd2FudCB0byBrbm93IG1vcmUgYWJvdXQgd2hhdCBw ZW9wbGUgY2FuIGRvIHdpdGggYWNjZXNzIHRvIG9uZSBzaW1wbGUgcG9ydGlvbiBvZiB5b3Vy IDxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+IHF1ZXJ5LCBHb29nbGUgZm9yICYjODIx Njs8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPiBpbmplY3Rpb24mIzgyMTc7LjwvcD4K Cgk8cD5Gb3IgdGhvc2Ugc3RpbGwgcmVhZGluZywgdGhlIGdvb2QgbmV3cyBpcyB0aGF0IHRo ZSBwbHVnaW4gZG9lcyBldmVyeXRoaW5nIGl0IGNhbiB0byBwcmUtZmlsdGVyIHN0dWZmIG9u IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5lIGJlZm9yZSBpdCBnZXRz IHRvIHRoZSBxdWVyeS4gVGhpcyBzaG91bGQgbWFrZSB5b3VyIHVzZXIgaW5wdXQgc2FmZSBl bm91Z2gsIGJ1dCBmb3IgdGhlIHBhcmFub2lkIChvciBzZW5zaWJsZSkgdGhlcmUgYXJlIHR3 byBhdHRyaWJ1dGVzIHlvdSBjYW4gdXNlIHRvIGNsYW1wIGRvd24gYWxsb3dhYmxlIHVzZXIg aW5wdXQuIElmIHlvdSBrbm93IGFueXRoaW5nIGFib3V0IDxhIGhyZWY9Imh0dHA6Ly93d3cu cmVndWxhci1leHByZXNzaW9ucy5pbmZvL3F1aWNrc3RhcnQuaHRtbCI+cmVndWxhciBleHBy ZXNzaW9uczwvYT4gb3IgYXJlIGZhbWlsaWFyIHdpdGggdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5QSFA8L3NwYW4+IGZ1bmN0aW9uIDxhIGhyZWY9Imh0dHA6Ly91azIucGhwLm5ldC9wcmVn X3JlcGxhY2UiPnByZWdfcmVwbGFjZSgpPC9hPiB0aGVuIHlvdSYjODIxNztsbCBiZSByaWdo dCBhdCBob21lIGJlY2F1c2UsIHB1dCBzaW1wbHksIHlvdSBjYW4gb3B0aW9uYWxseSBwYXNz IGV2ZXJ5IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlIHRocm91Z2gg aXQgdG8gcmVtb3ZlIHN0dWZmIHlvdSBkb24mIzgyMTc7dCB3YW50LjwvcD4KCgk8aDMgaWQ9 InVybGZpbHRlciI+dXJsZmlsdGVyPC9oMz4KCgk8cD5UaGlzIHRha2VzIGEgY29tbWEtc2Vw YXJhdGVkIGxpc3QgKGF0IGxlYXN0IGJ5IGRlZmF1bHQ7IG92ZXJyaWRlIHRoZSBjb21tYSB3 aXRoIHRoZSA8Y29kZT5kZWxpbTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBuZWVkIHRvIHVz ZSBjb21tYXMgaW4geW91ciBmaWx0ZXIgc3RyaW5ncykgb2YgY29tcGxldGUgcmVndWxhciBl eHByZXNzaW9uIHBhdHRlcm5zIHRoYXQgeW91IHdpc2ggdG8gc2VhcmNoIGZvciwgaW4gZXZl cnkgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUuIEZvciBleGFtcGxl LCBpZiB5b3Ugd2FudGVkIHRvIGVuc3VyZSB0aGF0IHlvdXIgdXNlcnMgb25seSBlbnRlcmVk IGRpZ2l0cyB5b3UgY291bGQgc3BlY2lmeSB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPnVybGZpbHRlcj0mcXVvdDsvW15cZF0rLyZxdW90Owo8 L2NvZGU+PC9wcmU+CgoJPHA+QnJpZWZseSwgdGhlIHN0YXJ0aW5nIGFuZCB0cmFpbGluZyA8 Y29kZT4vPC9jb2RlPiBtYXJrcyBkZWxpbWl0IGEgcmVndWxhciBleHByZXNzaW9uICYjODIx MjsgdGhleSBtdXN0IGFsd2F5cyBiZSBwcmVzZW50LiBUaGUgc3F1YXJlIGJyYWNrZXRzIGRl bm90ZSBhIGdyb3VwIG9mIGNoYXJhY3RlcnMsIHRoZSBjaXJjdW1mbGV4IG5lZ2F0ZXMgdGhl IGdyb3VwLCB0aGUgPGNvZGU+XGQ8L2NvZGU+IG1lYW5zICYjODIyMDthbnkgZGlnaXQmIzgy MjE7IGFuZCB0aGUgPGNvZGU+KzwvY29kZT4gc3BlY2lmaWVzIHRoYXQgeW91IHdhbnQgaXQg dG8gY2hlY2sgZm9yIG9uZSBvciBtb3JlIG9mIHRoZSBwcmVjZWRpbmcgdGhpbmdzLiBJbiBv dGhlciB3b3JkcywgbG9vayBmb3IgYW55dGhpbmcgaW4gdGhlIGlucHV0IHRoYXQgaXMgPHN0 cm9uZz5ub3Q8L3N0cm9uZz4gb25lIG9yIG1vcmUgZGlnaXRzLiBUaGF0IHdvdWxkIG1hdGNo IGFueSBsZXR0ZXJzLCBxdW90ZXMsIHNwZWNpYWwgY2hhcmFjdGVycywgYW55dGhpbmcgYXQg YWxsIHRoYXQgd2FzbiYjODIxNzt0IGEgemVybyB0byBuaW5lLjwvcD4KCgk8cD5Zb3UgY2Fu IHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBmaWx0ZXIgbGlrZSB0aGlzOjwvcD4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPnVybGZpbHRlcj0mcXVvdDsvXGQvLCAv XHMvJnF1b3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGF0IHdvdWxkIGxvb2sgZm9yIGFueSBz aW5nbGUgZGlnaXQgYW5kIGFueSBzaW5nbGUgc3BhY2UgY2hhcmFjdGVyLiBUaGF0JiM4MjE3 O3MgYSBzaW1wbGUgZXhhbXBsZSBhbmQgeW91IGNvdWxkIGRvIGl0IGFsbCBpbiBvbmUgcmVn ZXgsIGJ1dCBzcGxpdHRpbmcgdGhlbSB1cCBjYW4gaGVscCB5b3UgZmlsdGVyIHN0dWZmIGJl dHRlciAoc2VlIDxhIGhyZWY9IiN1cmxyZXBsYWNlIj51cmxyZXBsYWNlPC9hPiBmb3IgYW4g ZXhhbXBsZSkuPC9wPgoKCTxwPkJ5IGRlZmF1bHQsIGlmIHlvdSBqdXN0IHNwZWNpZnkgPGNv ZGU+dXJsZmlsdGVyPC9jb2RlPiB3aXRob3V0IDxjb2RlPnVybHJlcGxhY2U8L2NvZGU+LCBh bnl0aGluZyB0aGF0IG1hdGNoZXMgeW91ciBmaWx0ZXIgcGF0dGVybnMgd2lsbCBiZSByZW1v dmVkIGZyb20gdGhlIHVzZXIgaW5wdXQuPC9wPgoKCTxoMyBpZD0idXJscmVwbGFjZSI+dXJs cmVwbGFjZTwvaDM+CgoJPHA+VGhlIG90aGVyIGhhbGYgb2YgdGhlIGZpbHRlcmluZyBqaWdz YXcgYWxsb3dzIHlvdSB0byBub3QganVzdCByZW1vdmUgYW55dGhpbmcgdGhhdCBtYXRjaGVz LCBidXQgYWN0dWFsbHkgcmVwbGFjZSBpdCB3aXRoIHNvbWV0aGluZyBlbHNlLiBTcGVjaWZ5 IGEgZml4ZWQgc3RyaW5nLCBhIGxpc3Qgb2YgZml4ZWQgc3RyaW5ncyBvciBtb3JlIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHBhdHRlcm5zIHRvIHJlcGxhY2Ugd2hhdGV2ZXIg bWF0Y2hlcyB5b3VyIDxjb2RlPnVybGZpbHRlcjwvY29kZT4uIFVzaW5nIHRoZSBmaXJzdCBm aWx0ZXIgZXhhbXBsZSBmcm9tIGFib3ZlLCB5b3UgY291bGQgcmVwbGFjZSBhbnl0aGluZyB0 aGF0IGlzIG5vdCBhIGRpZ2l0IHdpdGggYSBoeXBoZW4gYnkgc3BlY2lmeWluZzo8L3A+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj51cmxyZXBsYWNlPSZxdW90 Oy0mcXVvdDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNvIGlmIHlvdSBhbGxvd2VkIGEgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgY2FsbGVkIDxjb2RlPmRpZ2l0czwv Y29kZT4gYW5kIGEgc2l0ZSB2aXNpdG9yIGVudGVyZWQgPGNvZGU+P2RpZ2l0cz1aYXBob2Qg NCBUcmlsbGlhbjwvY29kZT4sIHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4g dmFyaWFibGUgd291bGQgYmVjb21lOiA8Y29kZT4tLS0tLS0tNC0tLS0tLS0tPC9jb2RlPi4g Tm90IG11Y2ggdXNlLCBidXQgaGV5LCBpdCYjODIxNztzIGFuIGV4YW1wbGUhPC9wPgoKCTxw PkFzIHdpdGggPGNvZGU+dXJsZmlsdGVyPC9jb2RlPiB5b3UgY2FuIHNwZWNpZnkgbW9yZSB0 aGFuIG9uZSByZXBsYWNlbWVudCBhbmQgdGhleSB3aWxsIHBhaXIgdXAgd2l0aCB0aGVpciBj b3JyZXNwb25kaW5nIGZpbHRlci4gSW4gb3RoZXIgd29yZHMsIGlmIHlvdSB0YWtlIHRoZSBz ZWNvbmQgZmlsdGVyIGFib3ZlICg8Y29kZT51cmxmaWx0ZXI9JnF1b3Q7L1xkLywgL1xzLyZx dW90OzwvY29kZT4pIGFuZCB1c2VkIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+dXJscmVwbGFjZT0mcXVvdDssIC0mcXVvdDsKPC9jb2RlPjwv cHJlPgoKCTxwPlRoZW4gYW55IGRpZ2l0IGluIHlvdXIgdXNlciBpbnB1dCB3b3VsZCBiZSBy ZW1vdmVkICh0aGVyZSBpcyBub3RoaW5nIGJlZm9yZSB0aGUgY29tbWEpIGFuZCBhbnkgc3Bh Y2UgY2hhcmFjdGVyIHdvdWxkIGJlIHJlcGxhY2VkIHdpdGggYSBoeXBoZW4uPC9wPgoKCTxw PklmIGF0IGFueSB0aW1lIGEgZmllbGQgZ2l2ZXMgYW4gZW1wdHkgcmVzdWx0IChpLmUuIGl0 IHRvdGFsbHkgZmFpbHMgYW55IDxjb2RlPnVybGZpbHRlcjwvY29kZT4gdGVzdHMgb3Igc2lt cGx5IHJldHVybnMgbm90aGluZyBiZWNhdXNlIGl0IGhhcyBub3QgYmVlbiBzZXQpLCBhbnkg PGNvZGU+ZGVmYXVsdHM8L2NvZGU+IGFzc2lnbmVkIHRvIHRoYXQgdmFyaWFibGUgd2lsbCBi ZSB1c2VkIGluc3RlYWQuIElmIHRoZXJlIGFyZSBubyBkZWZhdWx0cywgdGhlIG5hbWUgb2Yg dGhlIHZhcmlhYmxlIGl0c2VsZiAobWludXMgaXRzIDxjb2RlPj88L2NvZGU+KSB3aWxsIGJl IHVzZWQuPC9wPgoKCTxwPldpdGggdGhlc2UgdHdvIGZpbHRlcnMgYXQgeW91ciBkaXNwb3Nh bCBhbmQgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBkZWZhdWx0IHZhbHVlcyBmb3IgdXNlciB2 YXJpYWJsZXMsIHlvdSBjYW4gbWFrZSB5b3VyIHF1ZXJpZXMgbXVjaCBzYWZlciB0byB0aGUg b3V0c2lkZSB3b3JsZCBhbmQgc3RhcnQgdXNpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8 L3NwYW4+IGZvcm1zIHRvIGdhdGhlciBpbnB1dCBmcm9tIHVzZXJzIHRoYXQgY2FuIHRoZW4g YmUgcGx1Z2dlZCBpbnRvIHF1ZXJpZXMsIGZhaXJseSBzYWZlIGluIHRoZSBrbm93bGVkZ2Ug dGhhdCB5b3VyIGRhdGFiYXNlIGlzIG5vdCBnb2luZyB0byBpbXBsb2RlLjwvcD4KCgk8cD5C dXQgcGxlYXNlIHJlbWVtYmVyOjwvcD4KCgk8YmxvY2txdW90ZT4KCQk8cD5Bc3N1bWUgPHN0 cm9uZz5hbGw8L3N0cm9uZz4gdXNlciBpbnB1dCBpcyB0YWludGVkOiBjaGVjayBldmVyeXRo aW5nLjwvcD4KCTwvYmxvY2txdW90ZT4KCgk8aDIgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwv aDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTogU2ltcGxlIGltYWdlIHNlbGVjdCBxdWVy eTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9xdWVyeSBjb2x1bW49JnF1b3Q7KiZxdW90OwogICAgIHRhYmxlPSZxdW90O3R4cF9p bWFnZSZxdW90OwogICAgIHdoZXJlPSZxdW90O2NhdGVnb3J5PSYjMzk7bWFtbWFsJiMzOTsg T1IgY2F0ZWdvcnk9JiMzOTtiaXJkJiMzOTsmcXVvdDsKICAgICBmb3JtPSZxdW90O2Rib3V0 JnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgLyZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPldpdGggZm9ybSA8Y29kZT5kYm91dDwvY29kZT4gY29u dGFpbmluZzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7YSBocmVmPSZxdW90Oy9pbWFnZXMve2lkfXtleHR9JnF1b3Q7IC8mZ3Q7Jmx0O3R4cDp0 aHVtYm5haWwgbmFtZT0mcXVvdDt7bmFtZX0mcXVvdDsgLyZndDsmbHQ7L2EmZ3Q7CjwvY29k ZT48L3ByZT4KCgk8cD5XaWxsIHJlbmRlciBhbiB1bm9yZGVyZWQgbGlzdCBvZiB0aHVtYm5h aWxzIHdpdGggbGlua3MgdG8gdGhlIGZ1bGxzaXplIGltYWdlIGlmIHRoZSBjYXRlZ29yeSBp cyBlaXRoZXIgPGNvZGU+bWFtbWFsPC9jb2RlPiBvciA8Y29kZT5iaXJkPC9jb2RlPi48L3A+ CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjogbGluayBjYXRlZ29yeSBsaXN0IHRvIHBhcmVu dDwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgRElTVElOQ1QKICAgICB0eGMubmFtZSBG Uk9NIHR4cF9jYXRlZ29yeSBBUyB0eGMsIHRleHRwYXR0ZXJuIEFTIHR4cAogICAgIFdIRVJF IHR5cGU9JiMzOTthcnRpY2xlJiMzOTsgQU5EIHBhcmVudD0mIzM5O2FuaW1hbHMmIzM5Owog ICAgIEFORCAodHhjLm5hbWUgPSB0eHAuY2F0ZWdvcnkxIE9SIHR4Yy5uYW1lID0gdHhwLmNh dGVnb3J5MikKICAgICBmb3JtPSZxdW90O2Rib3V0JnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwm cXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPldp dGggZm9ybSA8Y29kZT5kYm91dDwvY29kZT4gY29udGFpbmluZzo8L3A+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOmNhdGVnb3J5IG5hbWU9JnF1 b3Q7e25hbWV9JnF1b3Q7IGxpbms9JnF1b3Q7MSZxdW90OyB0aXRsZT0mcXVvdDsxJnF1b3Q7 IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaWxsIHJlbmRlciBhIGxpc3Qgb2YgbGlua2Fi bGUgY2F0ZWdvcnkgbmFtZXMgdGhhdCBjb250YWluIGFydGljbGVzIHdpdGggY2F0ZWdvcmll cyB0aGF0IGhhdmUgdGhlIGdpdmVuIHBhcmVudC4gSWYgYSBjYXRlZ29yeSBpcyB1bnVzZWQg aXQgd2lsbCBub3QgYmUgbGlzdGVkLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiBj aGlsZCBjYXRlZ29yeSBjb3VudHM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNUIERJU1RJ TkNUCiAgICAgdHhjLm5hbWUsIENPVU5UKCopIEFTIGNvdW50IEZST00gdHhwX2NhdGVnb3J5 IEFTIHR4YywKICAgICB0ZXh0cGF0dGVybiBBUyB0eHAKICAgICBXSEVSRSB0eXBlPSYjMzk7 YXJ0aWNsZSYjMzk7IEFORCBwYXJlbnQ9JiMzOTs/Y3VzdG9tMyYjMzk7CiAgICAgQU5EICh0 eGMubmFtZSA9IHR4cC5jYXRlZ29yeTEgT1IgdHhjLm5hbWUgPSB0eHAuY2F0ZWdvcnkyKQog ICAgIEdST1VQIEJZIHR4Yy5uYW1lJnF1b3Q7CiAgICAgZm9ybT0mcXVvdDtkYm91dCZxdW90 OyB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7IC8mZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5XaXRoIGZvcm0gPGNvZGU+ZGJvdXQ8L2NvZGU+IGNvbnRhaW5p bmc6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4 cDpjYXRlZ29yeSBuYW1lPSZxdW90O3tuYW1lfSZxdW90OyBsaW5rPSZxdW90OzEmcXVvdDsg dGl0bGU9JnF1b3Q7MSZxdW90OyAvJmd0OyAoe2NvdW50fSkKPC9jb2RlPjwvcHJlPgoKCTxw PldpbGwgcmVhZCB0aGUgcGFyZW50IGl0ZW0gZnJvbSB0aGUgPGNvZGU+Y3VzdG9tMzwvY29k ZT4gZmllbGQgYW5kIHJlbmRlciBhIHNpbWlsYXIgbGlzdCB0byBFeGFtcGxlIDIgYnV0IHdp dGggdGhlIGFydGljbGUgY291bnRzIGFkZGVkIGluIHBhcmVudGhlc2VzIGFmdGVyd2FyZHMu PC9wPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ6IFRvcCAxMCBkb3dubG9hZHM8L2gzPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVl cnkgY29sdW1uPSZxdW90OyomcXVvdDsgdGFibGU9JnF1b3Q7dHhwX2ZpbGUmcXVvdDsKICAg ICB3aGVyZT0mcXVvdDsoY2F0ZWdvcnk9JiMzOTs/Y2F0ZWdvcnkxJiMzOTsgT1IgY2F0ZWdv cnk9JiMzOTs/Y2F0ZWdvcnkyJiMzOTspCiAgICAgQU5EIHN0YXR1cz00IE9SREVSIEJZIGRv d25sb2FkcyBkZXNjIExJTUlUIDEwJnF1b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt0YWJsZSZx dW90OyBicmVhaz0mcXVvdDt0ciZxdW90OwogICAgIGxhYmVsPSZxdW90O01vc3QgcG9wdWxh ciBkb3dubG9hZHMmcXVvdDsgbGFiZWx0YWc9JnF1b3Q7aDMmcXVvdDsmZ3Q7CiAgJmx0O3Rk Jmd0OyZsdDt0eHA6ZmlsZV9kb3dubG9hZF9saW5rIGlkPSZxdW90O3tpZH0mcXVvdDsmZ3Q7 e2ZpbGVuYW1lfSZsdDsvdHhwOmZpbGVfZG93bmxvYWRfbGluayZndDsmbHQ7L3RkJmd0Owog ICZsdDt0ZCZndDt7ZGVzY3JpcHRpb259Jmx0Oy90ZCZndDsKICAmbHQ7dGQmZ3Q7ZG93bmxv YWRzOiB7ZG93bmxvYWRzfSZsdDsvdGQmZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogICZsdDtw Jmd0O05vIHJlY2VudCBkb3dubG9hZHMsIHNvcnJ5Jmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRf cXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGlzIG9uZSB1c2VzIHRoZSBwbHVnaW4g YXMgYSBjb250YWluZXIgdGFnIGluc3RlYWQgb2YgYSBmb3JtIGFuZCB0YWJ1bGF0ZXMgdGhl IHRvcCAxMCBkb3dubG9hZHMgKHN0YXR1cz1saXZlKSB0aGF0IGhhdmUgYSBjYXRlZ29yeSBt YXRjaGluZyBlaXRoZXIgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3Jp ZXMsIHdpdGggbW9zdCBwb3B1bGFyIGxpc3RlZCBmaXJzdC4gSWYgdGhlcmUgYXJlIG5vIGRv d25sb2FkcywgdGhlIDxjb2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gcG9ydGlvbiBk aXNwbGF5cyBhIG1lc3NhZ2UuPC9wPgoKCTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU6IEFydGlj bGUga2V5d29yZHMgcmVsYXRlZCB0byBsaW5rPC9oMz4KCgk8cD5WZXJ5IGludGVyZXN0aW5n IHVzZSBjYXNlIGhlcmUuIFB1dCB0aGlzIGluIHRoZSBwbGFpbmxpbmtzIGZvcm06PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpsaW5rZGVz Y3RpdGxlIC8mZ3Q7CiZsdDt0eHA6c21kX3F1ZXJ5IHF1ZXJ5PSZxdW90O1NFTEVDVCBESVNU SU5DVAogICAgIHR4cC5pZCwgdHhwLnRpdGxlIEZST00gdGV4dHBhdHRlcm4gQVMgdHhwCiAg ICAgV0hFUkUgKHR4cC5rZXl3b3JkcyBMSUtFICYjMzk7JSw/Y2F0ZWdvcnklLCYjMzk7CiAg ICAgT1IgdHhwLmtleXdvcmRzIExJS0UgJiMzOTslP2NhdGVnb3J5JSwmIzM5OwogICAgIE9S IHR4cC5rZXl3b3JkcyBMSUtFICYjMzk7JSw/Y2F0ZWdvcnklJiMzOTspCiAgICAgR1JPVVAg QlkgdHhwLnRpdGxlJnF1b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0m cXVvdDtsaSZxdW90OyZndDsKICAmbHQ7dHhwOnBlcm1saW5rIGlkPSZxdW90O3tpZH0mcXVv dDsmZ3Q7e3RpdGxlfSZsdDsvdHhwOnBlcm1saW5rJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaGVuIHlvdSBleGVjdXRlIDxjb2RlPiZsdDt0eHA6 bGlua2xpc3QgLyZndDs8L2NvZGU+IGZyb20gYSBwYWdlIHlvdSB3aWxsIGdldCBhIGxpc3Qg b2YgbGlua3MgYXMgdXN1YWwsIGJ1dCB1bmRlciBlYWNoIG9uZSB5b3Ugd2lsbCBzZWUgYSBo eXBlcmxpbmtlZCBsaXN0IG9mIGFydGljbGVzIHRoYXQgYXJlIHJlbGF0ZWQgKGJ5IGtleXdv cmQpIHRvIHRoZSBjYXRlZ29yeSBvZiB0aGUgbGluay48L3A+CgoJPHA+VGhlIHJlYXNvbiBp dCBpcyBjb21wYXJlZCB0aHJlZSB0aW1lcyBpcyBiZWNhdXNlIGFydGljbGUga2V5d29yZHMg YXJlIHN0b3JlZCBsaWtlIHRoaXMgaW4gdGhlIGRhdGFiYXNlOjwvcD4KCgk8cD48Y29kZT5n b3Zlcm5tZW50LGNvbnNwaXJhY3ksaWQsY2FyZCxkYXRhLGJpb21ldHJpYyxiYWQsaWRlYTwv Y29kZT48L3A+CgoJPHA+SWYgZWFjaCBjYXRlZ29yeSB3b3JkIHdhcyBjb21wYXJlZCBvbmx5 IG9uY2Ugd2l0aG91dCBjb21tYXMgKGkuZS4gPGNvZGU+dHhwLmtleXdvcmRzIExJS0UgJiMz OTslP2NhdGVnb3J5JSYjMzk7PC9jb2RlPikgdGhlbiBhIGxpbmsgd2l0aCBjYXRlZ29yeSA8 Y29kZT5waXJhY3k8L2NvZGU+IHdvdWxkIGNhdXNlIGFueSBhcnRpY2xlIGNvbnRhaW5pbmcg a2V5d29yZCA8Y29kZT5jb25zcGlyYWN5PC9jb2RlPiB0byBiZSBpbmNsdWRlZC4gRXNzZW50 aWFsbHksIGJ5IGNvbXBhcmluZyB0aGUgY2F0ZWdvcnkgZWl0aGVyIHN1cnJvdW5kZWQgYnkg Y29tbWFzLCB3aXRoIGEgY29tbWEgYWZ0ZXIgaXQsIG9yIHdpdGggYSBjb21tYSBiZWZvcmUg aXQsIHRoZSBzZWFyY2ggaXMgcmVzdHJpY3RlZCB0byBvbmx5IG1hdGNoIHdob2xlIHdvcmRz LjwvcD4KCgk8aDMgaWQ9ImVnNiI+RXhhbXBsZSA2OiBDb21wYXJpc29uIGluIHF1ZXJpZXM8 L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNUICoKICAgICBGUk9NIHR4cF9maWxlIFdIRVJF IGRvd25sb2FkcyAmYW1wO2d0Oz0gNDImcXVvdDsmZ3Q7CiAgJmx0O3R4cDpmaWxlX2Rvd25s b2FkX2xpbmsgaWQ9JnF1b3Q7e2lkfSZxdW90OyZndDsKICAgICB7ZmlsZW5hbWV9CiAgJmx0 Oy90eHA6ZmlsZV9kb3dubG9hZF9saW5rJmd0OwombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5TaG93cyBsaW5rcyB0byBhbGwgZG93bmxvYWRzIHdoZXJlIHRo ZSBkb3dubG9hZCBjb3VudCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gNDIuIE5vdGUg dGhhdCB1bmRlciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiA0LjAuNiBhbmQgYmVs b3cgeW91IG11c3QgdXNlIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gZW50 aXR5IG5hbWVzIGZvciA8Y29kZT4mYW1wO2d0OzwvY29kZT4gYW5kIDxjb2RlPiZhbXA7bHQ7 PC9jb2RlPiBvciB0aGUgcGFyc2VyIGdldHMgY29uZnVzZWQuPC9wPgoKCTxoMyBpZD0iZWc3 Ij5FeGFtcGxlIDc6IHVuZmlsdGVyZWQgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4g cGFyYW1zIChiYWQpPC9oMz4KCgk8cD4oYSBiYWQgcXVlcnkpPC9wPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90 O2N1dG9mZiZxdW90OwogICAgIHZhbHVlPSZxdW90OzQyJnF1b3Q7IC8mZ3Q7CiZsdDt0eHA6 c21kX3F1ZXJ5IHF1ZXJ5PSZxdW90O1NFTEVDVCBUaXRsZQogICAgIEZST00gdGV4dHBhdHRl cm4KICAgICBXSEVSRSBpZCAmbHQ7ICYjMzk7P3VzZXJjdXQmIzM5OyZxdW90OwogICAgIGRl ZmF1bHRzPSZxdW90O3VzZXJjdXQ6ID9jdXRvZmYmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6cGVy bWxpbmsmZ3Q7e1RpdGxlfSZsdDsvdHhwOnBlcm1saW5rJmd0OwombHQ7L3R4cDpzbWRfcXVl cnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TaG93cyBoeXBlcmxpbmtzIHRvIG9ubHkgdGhv c2UgYXJ0aWNsZXMgd2l0aCBhbiBJRCBiZWxvdyB0aGUgbnVtYmVyIGdpdmVuIGJ5IHRoZSB1 c2VyIG9uIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5lLiBJZiB0aGUg dmFsdWUgaXMgbm90IHN1cHBsaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBmcm9tIHRoZSA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB2YXJpYWJsZSBpcyB1c2VkIGluc3RlYWQgKDQy IGluIHRoaXMgY2FzZSkuPC9wPgoKCTxwPjxzdHJvbmc+PHNwYW4gY2xhc3M9ImNhcHMiPk5P VEU8L3NwYW4+PC9zdHJvbmc+OiB2YWxpZGF0aW9uIGlzIG5vdCBwZXJmb3JtZWQgYW5kIHlv dSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgdGhlIDxjb2RlPnVzZXJjdXQ8L2NvZGU+IHZhcmlh YmxlIGlzIGdvaW5nIHRvIGJlIG51bWVyaWMuIFlvdSBzaG91bGQgbm90IHVzZSB0aGlzIHF1 ZXJ5IG9uIGEgcHJvZHVjdGlvbiBzaXRlIHVubGVzcyB5b3UgYWRkIGEgPGNvZGU+dXJsZmls dGVyPC9jb2RlPiB0byByZW1vdmUgYW55IG5vbi1udW1lcmljIGNoYXJhY3RlcnMgKHNlZSBu ZXh0IGV4YW1wbGUgZm9yIGEgYmV0dGVyIHF1ZXJ5KS48L3A+CgoJPGgzIGlkPSJlZzgiPkV4 YW1wbGUgODogZmlsdGVyZWQgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gcGFyYW1z IChiZXR0ZXIhKTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgVGl0bGUKICAgICBGUk9N IHRleHRwYXR0ZXJuCiAgICAgV0hFUkUgc3RhdHVzID0gJiMzOTs/dXNlcl9zdGF0dXMmIzM5 OyZxdW90OwogICAgIHVybGZpbHRlcj0mcXVvdDsvW14xLTVdLyZxdW90OwogICAgIGRlZmF1 bHRzPSZxdW90O3VzZXJfc3RhdHVzOiA0JnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnBlcm1saW5r Jmd0O3tUaXRsZX0mbHQ7L3R4cDpwZXJtbGluayZndDsKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0 Owo8L2NvZGU+PC9wcmU+CgoJPHA+UHVsbHMgYWxsIGFydGljbGVzIG91dCBvZiB0aGUgZGF0 YWJhc2UgdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gc3RhdHVzLiBUaGlzIGlzIGEgbW9yZSByb2J1 c3QgcXVlcnkgdGhhbiBFeGFtcGxlIDcgYmVjYXVzZSBpdCBjaGVja3MgaWYgdGhlIDxjb2Rl PnVzZXJfc3RhdHVzPC9jb2RlPiBmaWVsZCBpcyAxLCAyLCAzLCA0LCBvciA1ICh0aGUgcmVn ZXggc3BlY2lmaWVzIHRvIHJlbW92ZSBldmVyeXRoaW5nIGZyb20gdGhlIHVzZXJfc3RhdHVz IHZhcmlhYmxlIHRoYXQgaXMgbm90IGluIHRoZSByYW5nZSAxLTUpLiBJZiB0aGlzIGNvbmRp dGlvbiBpcyBub3QgbWV0ICYjODIxMjsgZS5nLiB0aGUgdXNlciBzcGVjaWZpZXMgPGNvZGU+ dXNlcl9zdGF0dXM9NjwvY29kZT4gb3IgPGNvZGU+dXNlcl9zdGF0dXM9JnF1b3Q7YWJjJnF1 b3Q7PC9jb2RlPiAmIzgyMTI7IHRoZW4gdXNlcl9zdGF0dXMgd2lsbCBiZSBzZXQgdG8gPGNv ZGU+NDwvY29kZT4uIE5vdGUgdGhhdCB1c2luZyA8Y29kZT51c2VyX3N0YXR1cz0mcXVvdDta YXBob2QgNCBUcmlsbGlhbiZxdW90OzwvY29kZT4gb24gdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+IGFkZHJlc3MgYmFyIHdpbGwgYWN0dWFsbHkgcGFzcyB0aGUgdGVzdCBi ZWNhdXNlIGFsbCBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gdGhlIG51bWJlciAmIzgyMTY7NCYj ODIxNzsgd2lsbCBiZSByZW1vdmVkLjwvcD4KCgk8cD5Zb3UgY291bGQgdXNlIGEgPGNvZGU+ Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gaWYgeW91IHdpc2ggYW5kIHNldCBhbGwg eW91ciBkZWZhdWx0cyBpbiBhIHNwZWNpYWwgZm9ybSwgcmVhZHkgdG8gdXNlIHRocm91Z2hv dXQgeW91ciBwYWdlLiBJbiB0aGF0IGNhc2UgJiM4MjEyOyBpZiB5b3UgaGFkIGNyZWF0ZWQg YSB2YXJpYWJsZSBjYWxsZWQgPGNvZGU+ZGZsdF9zdGF0PC9jb2RlPiAmIzgyMTI7IHlvdSBt aWdodCBwcmVmZXIgdG8gdXNlIDxjb2RlPmRlZmF1bHRzPSZxdW90O3VzZXJfc3RhdHVzOiA/ ZGZsdF9zdGF0JnF1b3Q7PC9jb2RlPi48L3A+CgoJPHA+UXVlcnktdGFzdGljIDotKTwvcD4K Cgk8aDMgaWQ9ImVnOSI+RXhhbXBsZSA5OiBVc2luZyBwcmVwYXJzZSB3aXRoIDxjb2RlPiZs dDt0eHA6eWllbGQgLyZndDs8L2NvZGU+PC9oMz4KCgk8cD5Tb21ldGltZXMgeW91IG1heSB3 YW50IHRvIHJlLXVzZSBhIHF1ZXJ5IGluIGEgZmV3IHBsYWNlcyB0aHJvdWdob3V0IHlvdXIg c2l0ZSBhbmQgc2hvdyBkaWZmZXJlbnQgY29udGVudC4gRm9yIGV4YW1wbGUsIHRoZSBzYW1l IHF1ZXJ5IGNvdWxkIGJlIHVzZWQgZm9yIGxvZ2dlZC1pbiBhbmQgbm90LWxvZ2dlZC1pbiB1 c2VycyBidXQgeW91JiM4MjE3O2Qgc2VlIG1vcmUgZGV0YWlsIGlmIHlvdSB3ZXJlIGxvZ2dl ZCBpbi4gTm9ybWFsbHkgeW91IHdvdWxkIG5lZWQgdG8gd3JpdGUgdGhlIHF1ZXJ5IG1vcmUg dGhhbiBvbmNlLCB3aGljaCBpcyBmYXIgZnJvbSBpZGVhbC4gVGhpcyB0ZWNobmlxdWUgYWxs b3dzIHlvdSB0byB3cml0ZSB0aGUgcXVlcnkganVzdCBvbmNlIGFuZCByZXVzZSB0aGUgZm9y bS4gUHV0IHRoaXMgaW4gYSBmb3JtIGNhbGxlZCA8Y29kZT51c2VyX3RhYmxlPC9jb2RlPjo8 L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNt ZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgKiBGUk9NIHR4cF91c2VycyZxdW90OwogICAg IHdyYXB0YWc9JnF1b3Q7dGFibGUmcXVvdDsgYnJlYWs9JnF1b3Q7dHImcXVvdDsgcHJlcGFy c2U9JnF1b3Q7MSZxdW90OyZndDsKICAgJmx0O3R4cDp5aWVsZCAvJmd0OwombHQ7L3R4cDpz bWRfcXVlcnkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Vc2luZyA8Y29kZT4mbHQ7dHhwOm91 dHB1dF9mb3JtJmd0OzwvY29kZT4gYXMgYSBjb250YWluZXIgKGluIDxzcGFuIGNsYXNzPSJj YXBzIj5UWFA8L3NwYW4+IDQuMi4wIG9yIGhpZ2hlcikgeW91IGNhbiB0aGVuIGNhbGwgdGhl IHF1ZXJ5IGxpa2UgdGhpcyB0byBzaG93IGJhc2ljIGluZm86PC9wPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpvdXRwdXRfZm9ybSBmb3JtPSZx dW90O3VzZXJfdGFibGUmcXVvdDsmZ3Q7CiZsdDt0ZCZndDt7bmFtZX0mbHQ7L3RkJmd0Owom bHQ7dGQmZ3Q7e1JlYWxOYW1lfSZsdDsvdGQmZ3Q7CiZsdDsvdHhwOm91dHB1dF9mb3JtJmd0 Owo8L2NvZGU+PC9wcmU+CgoJPHA+YW5kIGxpa2UgdGhpcyBmb3IgbW9yZSBkZXRhaWxlZCBv dXRwdXQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpvdXRwdXRfZm9ybSBmb3JtPSZxdW90O3VzZXJfdGFibGUmcXVvdDsmZ3Q7CiZsdDt0 ZCZndDt7bmFtZX0mbHQ7L3RkJmd0OwombHQ7dGQmZ3Q7e1JlYWxOYW1lfSZsdDsvdGQmZ3Q7 CiZsdDt0ZCZndDt7ZW1haWx9Jmx0Oy90ZCZndDsKJmx0O3RkJmd0O3tsYXN0X2FjY2Vzc30m bHQ7L3RkJmd0OwombHQ7L3R4cDpvdXRwdXRfZm9ybSZndDsKPC9jb2RlPjwvcHJlPgoKCTxw Pk5vdGUgdGhhdCB3aGVuIHVzaW5nIHNtZF9xdWVyeSBpbiB0aGlzIG1hbm5lciB5b3UgbXVz dCByZW1lbWJlciB0byB1c2UgPGNvZGU+cHJlcGFyc2U9JnF1b3Q7MSZxdW90OzwvY29kZT4g YmVjYXVzZSB5b3UgbmVlZCB0byBmZXRjaCB0aGUgY29udGVudHMgb2YgdGhlIHNtZF9xdWVy eSBjb250YWluZXIgKHRoZSA8Y29kZT4mbHQ7dHhwOnlpZWxkIC8mZ3Q7PC9jb2RlPiB0YWcg aW4gdGhpcyBjYXNlKSwgcGFyc2UgaXQgc28gaXQgZ2V0cyB0aGUgY29udGVudHMgb2YgPGNv ZGU+Jmx0O3R4cDpvdXRwdXRfZm9ybSZndDs8L2NvZGU+JiM4MjE3O3MgY29udGFpbmVyIGFu ZCA8ZW0+dGhlbjwvZW0+IGFwcGxpZXMgdGhlIHJlcGxhY2VtZW50cy4gV2l0aG91dCB0aGUg PGNvZGU+cHJlcGFyc2U8L2NvZGU+LCB0aGUgcGx1Z2luIHRyaWVzIHRvIGFwcGx5IHRoZSBy ZXBsYWNlbWVudHMgZGlyZWN0bHkgdG8gdGhlIHNtZF9xdWVyeSBjb250YWluZXIsIHdoaWNo IGRvZXMgbm90IGFjdHVhbGx5IGNvbnRhaW4gYW55IDxjb2RlPnsuLi59PC9jb2RlPiB0YWdz LjwvcD4KCgk8aDMgaWQ9ImVnMTAiPkV4YW1wbGUgMTA6IHBhZ2luYXRpb248L2gzPgoKCTxw Pkl0ZXJhdGUgb3ZlciBzb21lIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHVzZXIg aW5mb3JtYXRpb24sIDUgcGVvcGxlIGF0IGEgdGltZTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtT RUxFQ1QgKiBmcm9tIHR4cF91c2VycyZxdW90OwogICAgIGxpbWl0PSZxdW90OzUmcXVvdDsg d3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90OwogICAgIHBhZ2Vm b3JtPSZxdW90O3BhZ2VfaW5mbyZxdW90OyZndDsKICAge1JlYWxOYW1lfSAoe3ByaXZzfSkK Jmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SW4gPGNvZGU+cGFn ZV9pbmZvPC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj5QYWdlIHtzbWRfdGhpc3BhZ2V9IG9mIHtzbWRfcGFnZXN9IHwKU2hvd2luZyByZWNv cmRzIHtzbWRfcm93X3N0YXJ0fSB0byB7c21kX3Jvd19lbmR9Cm9mIHtzbWRfYWxscm93c30g fAombHQ7dHhwOm9sZGVyJmd0O05leHQge3NtZF9yb3dzX25leHR9Jmx0Oy90eHA6b2xkZXIm Z3Q7IHwKJmx0O3R4cDpuZXdlciZndDtQcmV2aW91cyB7c21kX3Jvd3NfcHJldn0mbHQ7L3R4 cDpuZXdlciZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlVuZGVybmVhdGggeW91ciByZXN1bHQg c2V0IHlvdSB3b3VsZCB0aGVuIHNlZSB0aGUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHdoaWNo IHBhZ2UgYW5kIHJvd3MgeW91ciB2aXNpdG9ycyB3ZXJlIGN1cnJlbnRseSB2aWV3aW5nLiBZ b3Ugd291bGQgYWxzbyBzZWUgbmV4dC9wcmV2IGxpbmtzIHRvIHRoZSByZXN0IG9mIHRoZSBy ZXN1bHRzLjwvcD4KCgk8aDMgaWQ9ImVnMTEiPkV4YW1wbGUgMTE6IGN1c3RvbSBwYWdpbmF0 aW9uPC9oMz4KCgk8cD5UaGVyZSBpcyBhIHByb2JsZW0gd2l0aCA8YSBocmVmPSIjZWcxMCI+ ZXhhbXBsZSAxMDwvYT4gOyBpZiB5b3UgdXNlIHR4cDpvbGRlciBhbmQgdHhwOm5ld2VyIHdo ZW4geW91IGFyZSBzaG93aW5nIGEgc3RhbmRhcmQgYXJ0aWNsZSBsaXN0OyB0aGUgcGFnaW5n IHRhZ3Mgd2lsbCBzdGVwIHRocm91Z2ggPGVtPmJvdGg8L2VtPiB5b3VyIHJlc3VsdCBzZXQg YW5kIHlvdXIgYXJ0aWNsZXMuIFRvIGJyZWFrIHRoZSBhc3NvY2lhdGlvbiBiZXR3ZWVuIHRo ZW0geW91IG5lZWQgdG8gYWx0ZXIgdGhlIHZhcmlhYmxlIHRoYXQgPHNwYW4gY2xhc3M9ImNh cHMiPlRYUDwvc3Bhbj4gdXNlcyB0byBjb250cm9sIHBhZ2luZy4gSXQgaXMgY2FsbGVkIDxj b2RlPnBnPC9jb2RlPmFuZCB5b3UmIzgyMTc7bGwgbm90aWNlIGl0IGluIHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+VVJMPC9zcGFuPiAoPGNvZGU+P3BnPTI8L2NvZGU+IGZvciBleGFtcGxl KSBhcyB5b3Ugc3RlcCB0aHJvdWdoIGFydGljbGUgbGlzdHMuPC9wPgoKCTxwPlVzaW5nIHRo ZSA8Y29kZT5wYWdldmFyPC9jb2RlPiBhdHRyaWJ1dGUgeW91IGNhbiB0ZWxsIHNtZF9xdWVy eSB0byB3YXRjaCBmb3IgeW91ciBvd24gdmFyaWFibGUgaW5zdGVhZCBvZiB0aGUgZGVmYXVs dCA8Y29kZT5wZzwvY29kZT4gYW5kIHRodXMgYnVpbGQgeW91ciBvd24gbmV4dC9wcmV2IGxp bmtzIHRoYXQgb25seSBjb250cm9sIHNtZF9xdWVyeS48L3A+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtT RUxFQ1QgKiBmcm9tIHR4cF91c2VycyZxdW90OwogICAgIGxpbWl0PSZxdW90OzUmcXVvdDsg d3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90OwogICAgIHBhZ2Vm b3JtPSZxdW90O3BhZ2VfaW5mbyZxdW90OyBwYWdldmFyPSZxdW90O3NtZF9xcGcmcXVvdDsm Z3Q7CiAgIHtSZWFsTmFtZX0gKHtwcml2c30pCiZsdDsvdHhwOnNtZF9xdWVyeSZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPkluIDxjb2RlPnBhZ2VfaW5mbzwvY29kZT46PC9wPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+UGFnZSB7c21kX3RoaXNwYWdlfSBv ZiB7c21kX3BhZ2VzfSB8CiAgIFNob3dpbmcgcmVjb3JkcyB7c21kX3Jvd19zdGFydH0KICAg dG8ge3NtZF9yb3dfZW5kfSBvZiB7c21kX2FsbHJvd3N9IHwKJmx0O3R4cDpzbWRfcXVlcnlf aWZfcHJldiZndDsKICAmbHQ7YSBocmVmPSZxdW90OyZsdDt0eHA6cGVybWxpbmsgLyZndDs/ c21kX3FwZz17c21kX3ByZXZwYWdlfSZxdW90OyZndDsKICAgICBQcmV2aW91cyB7c21kX3Jv d3NfcHJldn0mbHQ7L2EmZ3Q7CiZsdDsvdHhwOnNtZF9xdWVyeV9pZl9wcmV2Jmd0OwombHQ7 dHhwOnNtZF9xdWVyeV9pZl9uZXh0Jmd0OwogICZsdDthIGhyZWY9JnF1b3Q7Jmx0O3R4cDpw ZXJtbGluayAvJmd0Oz9zbWRfcXBnPXtzbWRfbmV4dHBhZ2V9JnF1b3Q7Jmd0OwogICAgIE5l eHQge3NtZF9yb3dzX25leHR9Jmx0Oy9hJmd0OwombHQ7L3R4cDpzbWRfcXVlcnlfaWZfbmV4 dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWcxMiI+RXhhbXBsZSAxMjogdXNpbmcg PGNvZGU+U01EX1FVRVJZX1VOSVFVRV9JRDwvY29kZT48L2gzPgoKCTxwPklmIHlvdSB3aXNo IHRvIHVzZSBtb3JlIHRoYW4gb25lIHNtZF9xdWVyeSBvbiBhIHNpbmdsZSBwYWdlIGJ1dCBz aGFyZSBhIHBhZ2Vmb3JtIGJldHdlZW4gdGhlbSB5b3UgY2FuIHVzZSA8c3BhbiBjbGFzcz0i Y2FwcyI+U01EPC9zcGFuPl9RVUVSWV9VTklRVUVfSUQgYXMgdGhlIHBhZ2luZyB2YXJpYWJs ZTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgKiBmcm9tIHR4cF91c2VycyZxdW90Owog ICAgIGxpbWl0PSZxdW90OzUmcXVvdDsgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0m cXVvdDtsaSZxdW90OwogICAgIHBhZ2Vmb3JtPSZxdW90O3BhZ2VfaW5mbyZxdW90OwogICAg IHBhZ2V2YXI9JnF1b3Q7U01EX1FVRVJZX1VOSVFVRV9JRCZxdW90OyZndDsKICAge1JlYWxO YW1lfSAoe3ByaXZzfSkKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJ PHA+SW4gPGNvZGU+cGFnZV9pbmZvPC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj5QYWdlIHtzbWRfdGhpc3BhZ2V9IG9mIHtzbWRfcGFnZXN9 IHwKICAgU2hvd2luZyByZWNvcmRzIHtzbWRfcm93X3N0YXJ0fQogICB0byB7c21kX3Jvd19l bmR9IG9mIHtzbWRfYWxscm93c30gfAombHQ7dHhwOnNtZF9xdWVyeV9pZl9wcmV2Jmd0Owog ICZsdDthIGhyZWY9JnF1b3Q7Jmx0O3R4cDpwZXJtbGluayAvJmd0Oz97c21kX3F1ZXJ5X3Vu aXF1ZV9pZH09e3NtZF9wcmV2cGFnZX0mcXVvdDsmZ3Q7CiAgICAgUHJldmlvdXMge3NtZF9y b3dzX3ByZXZ9Jmx0Oy9hJmd0OwombHQ7L3R4cDpzbWRfcXVlcnlfaWZfcHJldiZndDsKJmx0 O3R4cDpzbWRfcXVlcnlfaWZfbmV4dCZndDsKICAmbHQ7YSBocmVmPSZxdW90OyZsdDt0eHA6 cGVybWxpbmsgLyZndDs/e3NtZF9xdWVyeV91bmlxdWVfaWR9PXtzbWRfbmV4dHBhZ2V9JnF1 b3Q7Jmd0OwogICAgIE5leHQge3NtZF9yb3dzX25leHR9Jmx0Oy9hJmd0OwombHQ7L3R4cDpz bWRfcXVlcnlfaWZfbmV4dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhpcyBpcyBq dXN0IGEgc2ltcGxlIGV4YW1wbGU6IHlvdSB3aWxsIGhhdmUgdG8gYmUgbW9yZSBjbGV2ZXIg dGhhbiB0aGF0IGlmIHlvdSBhcmUgcGFnaW5nIGluZGVwZW5kZW50IHNldHMgb2Ygcm93cyBi ZWNhdXNlIHlvdSB3aWxsIG5lZWQgdG8gaW5jb3Jwb3JhdGUgdGhlIHBhZ2luZyB2YXJpYWJs ZSBmcm9tIGJvdGggc21kX3F1ZXJ5IHRhZ3MgaW4geW91ciBwYWdlZm9ybS48L3A+CgoJPGgz IGlkPSJlZzEzIj5FeGFtcGxlIDEzOiA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0 YWdzIGluIGNvbnRhaW5lcjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj49PSZsdDt0eHA6c21kX3F1ZXJ5IHF1ZXJ5PSZxdW90O1NFTEVDVCAqLAogICAg IHVuaXhfdGltZXN0YW1wKFBvc3RlZCkgYXMgdVBvc3RlZCwKICAgICB1bml4X3RpbWVzdGFt cChMYXN0TW9kKSBhcyB1TGFzdE1vZCwKICAgICB1bml4X3RpbWVzdGFtcChFeHBpcmVzKSBh cyB1RXhwaXJlcwogICAgIEZST00gdGV4dHBhdHRlcm4gV0hFUkUgU3RhdHVzIElOICg0LDUp JnF1b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90 OyBodG1sX2lkPSZxdW90O215UXVlcnkmcXVvdDsKICAgICBwb3B1bGF0ZT0mcXVvdDthcnRp Y2xlJnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnRpdGxlIC8mZ3Q7IFsgJmx0O3R4cDpwb3N0ZWQg LyZndDsgXQombHQ7L3R4cDpzbWRfcXVlcnkmZ3Q7PT0KPC9jb2RlPjwvcHJlPgoKCTxwPk5v dGUgdGhhdCB0aGUgPGNvZGU+cG9wdWxhdGU8L2NvZGU+IGF0dHJpYnV0ZSByZWxpZXMgb24g eW91IGV4dHJhY3RpbmcgPHN0cm9uZz5hbGw8L3N0cm9uZz4gY29sdW1ucyB0byBzYXRpc2Z5 IHRleHRwYXR0ZXJuJiM4MjE3O3MgaW50ZXJuYWwgZnVuY3Rpb25zIHNvIHRoaXMgZmVhdHVy ZSB3b3JrcyBjb3JyZWN0bHkuIEEgc2ltcGxlIDxjb2RlPnNlbGVjdCAqIGZyb20gLi4uPC9j b2RlPiB3aWxsIG5vdCB3b3JrLiBJbiBmdXR1cmUgdmVyc2lvbnMgb2YgPHNwYW4gY2xhc3M9 ImNhcHMiPlRYUDwvc3Bhbj4gdGhpcyBtaWdodCBjaGFuZ2UgYW5kIGEgc2ltcGxlIHNlbGVj dCAqIG1heSB0aGVuIGJlIGVub3VnaC48L3A+CgoJPHA+Rm9yIHJlZmVyZW5jZSwgdGhlc2Ug YXJlIHRoZSBleHRyYSBjb2x1bW5zIHJlcXVpcmVkIGluIDQuMi4wIChhbmQgZWFybGllcik6 PC9wPgoKCTx1bD4KCQk8bGk+QXJ0aWNsZTogPGNvZGU+dW5peF90aW1lc3RhbXAoUG9zdGVk KSBhcyB1UG9zdGVkLCB1bml4X3RpbWVzdGFtcChMYXN0TW9kKSBhcyB1TGFzdE1vZCwgdW5p eF90aW1lc3RhbXAoRXhwaXJlcykgYXMgdUV4cGlyZXM8L2NvZGU+PC9saT4KCQk8bGk+SW1h Z2U6IG5vbmU8L2xpPgoJCTxsaT5GaWxlOiBub25lPC9saT4KCQk8bGk+TGluazogPGNvZGU+ dW5peF90aW1lc3RhbXAoZGF0ZSkgYXMgdURhdGU8L2NvZGU+PC9saT4KCTwvdWw+CgoJPGgz IGlkPSJlZzE0Ij5FeGFtcGxlIDE0OiA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+ IHdpdGggZm9ybXM8L2gzPgoKCTxwPklmIHlvdSB3aXNoIHRvIHVzZSB0eHAgdGFncyB3aXRo IGFuICYjODIxNjtlbHNlJiM4MjE3OyBjbGF1c2UsIHlvdSB1c3VhbGx5IG5lZWQgdG8gZW1w bG95IGEgY29udGFpbmVyLiBBcyBhIGNvbnZlbmllbmNlLCBzbWRfcXVlcnkgYWxsb3dzIHlv dSB0byB1c2UgdGhlIGNvbnRhaW5lciYjODIxNztzIDxjb2RlPiZsdDt0eHA6ZWxzZSAvJmd0 OzwvY29kZT4gY2xhdXNlIHdpdGggYSBmb3JtIHNvIHlvdSBjYW4gcmUtdXNlIHRoZSBxdWVy eSBvdXRwdXQgYW5kIGRpc3BsYXkgZGlmZmVyZW50IHJlc3VsdHMgaW4gdGhlIGV2ZW50IHRo ZSBxdWVyeSByZXR1cm5zIG5vdGhpbmcuPC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNUICog RlJPTSB0eHBfdXNlcnMmcXVvdDsKICAgICBmb3JtPSZxdW90O3Nob3dfdXNlcnMmcXVvdDsm Z3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwombHQ7cCZndDtObyB1c2VyIGluZm8mbHQ7L3AmZ3Q7 CiZsdDsvdHhwOnNtZF9xdWVyeSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPllvdXIgPGNvZGU+ c2hvd191c2VyczwvY29kZT4gZm9ybSBjYW4gY29udGFpbiB1c3VhbCByZXBsYWNlbWVudCB2 YXJpYWJsZXMgYW5kIG1hcmt1cCB0byBmb3JtYXQgdGhlIHJlc3VsdHMuIFBlcmhhcHMgbGF0 ZXIgeW91IG1heSB3aXNoIHRvIHJlLXVzZSB0aGUgc2hvd191c2VycyBvdXRwdXQgaW4gYW5v dGhlciBxdWVyeTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij49PSZsdDt0eHA6c21kX3F1ZXJ5IHF1ZXJ5PSZxdW90O1NFTEVDVCAqIEZST00gdHhwX3Vz ZXJzIFdIRVJFCiAgICAgUmVhbE5hbWUgbGlrZSAmIzM5OyU/dXNyJSYjMzk7JnF1b3Q7IGZv cm09JnF1b3Q7c2hvd191c2VycyZxdW90OyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiZsdDtw Jmd0O05vIG1hdGNoaW5nIHVzZXJzIGZvdW5kJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfcXVl cnkmZ3Q7PT0KPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhhdCB5b3UgY2FuIGRpc3BsYXkg YSBkaWZmZXJlbnQgZXJyb3IgbWVzc2FnZSBidXQgdXNlIHRoZSBzYW1lIGZvcm0gKHdlJiM4 MjE3O3JlIGVzY2FwaW5nIFRleHRpbGUgaGVyZSB3aXRoIDxjb2RlPj09PC9jb2RlPiBzbyBp dCBkb2VzbiYjODIxNzt0IGludGVycHJldCB0aGUgcGVyY2VudCBzaWducyBhcyA8Y29kZT4m bHQ7c3BhbiZndDs8L2NvZGU+IGVsZW1lbnRzKS48L3A+CgoJPHA+SWYgeW91IGFyZSBjYXJl ZnVsIGFuZCBrbm93IHlvdSB3aWxsIDxlbT5uZXZlcjwvZW0+IHVzZSBhIHBhcnRpY3VsYXIg Zm9ybSB3aXRoIGFuIHNtZF9xdWVyeSBjb250YWluZXIgeW91IGNhbiBoYXJkLWNvZGUgeW91 ciAmIzgyMTY7ZWxzZSYjODIxNzsgY2xhdXNlIGRpcmVjdGx5IGluIHlvdXIgZm9ybSBhbmQg dXNlIHNtZF9xdWVyeSBhcyBhIHNlbGYtY2xvc2luZyB0YWcuIFlvdXIgZm9ybSB3aWxsIGxv b2sgYSBiaXQgb2RkIHdpdGggYSBzZWVtaW5nICYjODIxNjtkYW5nbGluZyYjODIxNzsgZWxz ZSwgYnV0IGl0IHdpbGwgd29yayBkdWUgdG8gdGhlIHdheSB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPlRYUDwvc3Bhbj4gcGFyc2VyIG9wZXJhdGVzLiBJZiB5b3UgZG8gdHJ5IGFuZCB1c2Ug YSBmb3JtIHdpdGggYSA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+IGluIGl0IGFz IHdlbGwgYXMgY2FsbGluZyB0aGUgZm9ybSB1c2luZyBhbiBzbWRfcXVlcnkgd2l0aCBhIDxj b2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gaW4gaXRzIGNvbnRhaW5lciwgVGV4dHBh dHRlcm4gd2lsbCB0aHJvdyBhbiBlcnJvciAodXN1YWxseSB0aGUsIHBlcmhhcHMgdW5leHBl Y3RlZCwgPGNvZGU+dGFnIGRvZXMgbm90IGV4aXN0PC9jb2RlPiBlcnJvcikuIEJlIGNhcmVm dWwhPC9wPgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4K CQk8bGk+MjIgTWF5IDA4IHwgMC4xMCB8IEluaXRpYWwgcmVsZWFzZTwvbGk+CgkJPGxpPjIz IE1heSAwOCB8IDAuMTEgfCBBbGxvd2VkIG1hdGhzIGluIHF1ZXJpZXMgKHVzZSBodG1sIGVu dGl0aWVzIGluIFRYUDQuMC42KSBhbmQgZml4ZWQgPHNwYW4gY2xhc3M9ImNhcHMiPldIRVJF PC9zcGFuPiBjbGF1c2UgdG8gZGVmYXVsdCB0byAxPTEgaWYgbm9uZSBzdXBwbGllZCAoYm90 aCB0aGFua3Mgam0pIDsgYWRkZWQgbW9yZSBkZXRhaWxlZCBmaWxlIGFuZCBsaW5rIHN1cHBv cnQ8L2xpPgoJCTxsaT4xNCBKdWwgMDggfCAwLjEyIHwgQWRkZWQgPGNvZGU+dHhwOmVsc2U8 L2NvZGU+IHN1cHBvcnQgaW4gY29udGFpbmVyICh0aGFua3MgamFrb2IpIDsgYWRkZWQgPGNv ZGU+c2lsZW50PC9jb2RlPiBhbmQgPGNvZGU+Y291bnQ8L2NvZGU+IGF0dHJpYnV0ZXMsIGFu ZCB0aGUgcmVwbGFjZW1lbnQgdGFncyA8Y29kZT57c21kX3Jvd3N9IHtzbWRfdGhpc3Jvd30g e3NtZF90aGlzaW5kZXh9PC9jb2RlPjwvbGk+CgkJPGxpPjIzIE5vdiAwOCB8IDAuMjAgfCBB ZGRlZCA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPiBzdXBwb3J0IDsgZW5h YmxlZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZSBzdXBwb3J0IDsg YWRkZWQgPGNvZGU+dXJsZmlsdGVyPC9jb2RlPiwgPGNvZGU+dXJscmVwbGFjZTwvY29kZT4s IDxjb2RlPmRlbGltPC9jb2RlPiwgPGNvZGU+cGFyYW1kZWxpbTwvY29kZT4gYW5kIDxjb2Rl PmRlZmF1bHRzPC9jb2RlPiBhdHRyaWJ1dGVzPC9saT4KCQk8bGk+MTcgTWFyIDA5IHwgMC4y MSB8IEFkZGVkIDxjb2RlPiRfU0VSVkVSPC9jb2RlPiB2YXIgc3VwcG9ydDwvbGk+CgkJPGxp PjE2IE9jdCAwOSB8IDAuMjIgfCBBZGRlZCA8Y29kZT5lc2NhcGU8L2NvZGU+IGF0dHJpYnV0 ZSAodGhhbmtzIGpha29iKSA7IGFkZGVkIDxjb2RlPnByZXBhcnNlPC9jb2RlPiBhdHRyaWJ1 dGU8L2xpPgoJCTxsaT4wMiBEZWMgMDkgfCAwLjMwIHwgQWRkZWQgdW5pY29kZSBzdXBwb3J0 IGFuZCA8Y29kZT5zdHJpY3RmaWVsZHM8L2NvZGU+IHRvIGZpeCBhIGZldyBidWdzICh0aGFu a3Mgc3BlZWtlKSA7IGFkZGVkIGRpcmVjdCBwYWdpbmF0aW9uIHN1cHBvcnQ8L2xpPgoJCTxs aT4wNSBEZWMgMDkgfCAwLjQwIHwgQWRkZWQgPGNvZGU+cGFnZXZhcjwvY29kZT4sIDxjb2Rl PntzbWRfcHJldnBhZ2V9PC9jb2RlPiwgPGNvZGU+e3NtZF9uZXh0cGFnZX08L2NvZGU+LCA8 Y29kZT57c21kX3Jvd3NfcHJldn08L2NvZGU+IGFuZCA8Y29kZT57c21kX3Jvd3NfbmV4dH08 L2NvZGU+LCA8Y29kZT4mbHQ7dHhwOnNtZF9xdWVyeV9pZl9wcmV2Jmd0OzwvY29kZT4gYW5k IDxjb2RlPiZsdDt0eHA6c21kX3F1ZXJ5X2lmX25leHQmZ3Q7PC9jb2RlPiA7IHJlbW92ZWQg PGNvZGU+cGdvbmx5PC9jb2RlPiBhcyBwYWdpbmcgY2FuIG5vdyA8ZW0+b25seTwvZW0+IGJl IHBlcmZvcm1lZCBpbiB0aGUgPGNvZGU+cGFnZWZvcm08L2NvZGU+PC9saT4KCQk8bGk+MTcg SmFuIDEwIHwgMC40MSB8IEFkZGVkIDxjb2RlPmhhc2hzaXplPC9jb2RlPiwgPGNvZGU+bW9k ZTwvY29kZT4gYW5kIDxjb2RlPntzbWRfcXVlcnlfdW5pcXVlX2lkfTwvY29kZT48L2xpPgoJ CTxsaT4zMSBBdWcgMTAgfCAwLjUwIHwgPGNvZGU+Zm9ybTwvY29kZT4gb3ZlcnJpZGVzIGNv bnRhaW5lciA7IGNvbnRhaW5lciYjODIxNztzIGVsc2UgYXV0b21hdGljYWxseSB3b3JrcyBp biA8Y29kZT5mb3JtPC9jb2RlPnMgOyBhZGRlZCA8Y29kZT5wb3B1bGF0ZTwvY29kZT4gKHRo YW5rcyBhdGJyYWRsZXkpOyBmaXhlZCA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiA0 IGNvbXBhdGliaWxpdHkgYW5kIGFkZGVkIDxjb2RlPmh0bWxfaWQ8L2NvZGU+IGFuZCA8Y29k ZT5icmVha2NsYXNzPC9jb2RlPiAodGhhbmtzIG1ha3NzKSA7IDxzcGFuIGNsYXNzPSJjYXBz Ij5TSE9XPC9zcGFuPiBkZWZhdWx0cyB0byBvdXRwdXQgbW9kZTwvbGk+Cgk8L3VsPgoKPC9k aXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJTiBDU1MgKioqIC0tPgo8c3R5bGUgdHlwZT0idGV4 dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3NtZF9oZWxwIGNvZGUg eyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3IiwgY291 cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9oZWxw IGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVkICM5 OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjox MHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBhOmxpbmssICNzbWRf aGVscCBhOnZpc2l0ZWQgeyBjb2xvcjogIzAwYzsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBi b3JkZXItYm90dG9tOiAxcHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3Nt ZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBhOmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0ZXh0 LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibHVlOyBwYWRk aW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDogMjBw eCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRlcjsg fQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IHBhZGRp bmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMtc2Vy aWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMwNzk7IGZvbnQ6IGJvbGQgMTJweCBBcmlh bCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMDt0 ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30K I3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0 ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTogdXBw ZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMz M2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXI6MXB4IGRv dHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0LWFsaWduOmNl bnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hlbHAgdGgg e2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7fQojc21kX2hlbHAgdWwg eyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCAucmVxdWlyZWQge2NvbG9y OnJlZDt9CiNzbWRfaGVscCBsaSB7IG1hcmdpbjo1cHggMjBweCA1cHggMzBweDsgfQojc21k X2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9zdHlsZT4KPCEtLSAqKiogRU5E IFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6MzoibWQ1IjtzOjMyOiI1ODdkMGY2MjQ4YTI4Mjkz YWJhNzMxZDk1YzMzNTU1NCI7fQ==