# Name: smd_each v0.1 # Type: Client side plugin # Iterate over TXP, URL or smd_vars variables # Author: Stef Dawson # URL: http://stefdawson.com/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6ODoic21kX2VhY2giO3M6NjoiYXV0aG9yIjtzOjExOiJTdGVm IERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZkYXdzb24uY29t LyI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAuMSI7czoxMToiZGVzY3JpcHRpb24iO3M6NDM6Ikl0 ZXJhdGUgb3ZlciBUWFAsIFVSTCBvciBzbWRfdmFycyB2YXJpYWJsZXMiO3M6NDoiY29kZSI7 czo3NzY1OiIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQovLyBJdGVyYXRlIG92ZXIgYXJiaXRyYXJ5IG1hdGNoaW5n IHZhcmlhYmxlcywgZWl0aGVyIGZyb20gVFhQIGZpZWxkcyBvciBvbiB0aGUgVVJMIGxpbmUN Ci8vIGJ5IFN0ZWYgRGF3c29uDQpmdW5jdGlvbiBzbWRfZWFjaCgkYXR0cywgJHRoaW5nPScn KSB7DQoJZ2xvYmFsICRwcmV0ZXh0LCAkdGhpc2FydGljbGUsICR0aGlzZmlsZSwgJHRoaXNs aW5rLCAkdmFyaWFibGU7DQoNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQkndHlwZScgPT4g J2ZpZWxkJywNCgkJJ2luY2x1ZGUnID0+ICcnLA0KCQknZXhjbHVkZScgPT4gJycsDQoJCSdt YXRjaCcgPT4gJycsDQoJCSdtYXRjaHdpdGgnID0+ICduYW1lJywNCgkJJ3N1YnNldCcgPT4g JzAnLA0KCQknY29sbGF0ZScgPT4gJycsDQoJCSdmb3JtJyA9PiAnJywNCgkJJ2RlbGltJyA9 PiAnLCcsDQoJCSdwYXJhbWRlbGltJyA9PiAnOicsDQoJCSdvdXRkZWxpbScgPT4gJywnLA0K CQknd3JhcHRhZycgPT4gJycsDQoJCSdicmVhaycgPT4gJycsDQoJCSdjbGFzcycgPT4gJycs DQoJCSdkZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkvLyBMb29rdXBzIGZvciBh bGxvd2FibGUgb3B0aW9ucw0KCSR0eXBlT3B0cyA9IGFycmF5KCdmaWVsZCcsICd1cmx2YXIn LCAnc3ZydmFyJywgJ2Nvb2tpZScsICd0eHB2YXInKTsNCgkkbWF0Y2hPcHRzID0gYXJyYXko J25hbWUnLCAndmFsdWUnKTsNCg0KCS8vIFZhbGlkYXRlIHRoZSBvcHRpb25zDQoJJHRoaW5n ID0gKGVtcHR5KCRmb3JtKSkgPyAkdGhpbmcgOiBmZXRjaF9mb3JtKCRmb3JtKTsNCgkkdGhp bmcgPSAoZW1wdHkoJHRoaW5nKSkgPyAne3Zhcl92YWx1ZX0nIDogJHRoaW5nOw0KDQoJJGlu Y2x1ZGUgPSBkb19saXN0KCRpbmNsdWRlLCAkZGVsaW0pOw0KCSRpbmNsdWRlID0gKCRpbmNs dWRlWzBdID09ICIiKSA/IGFycmF5KCkgOiAkaW5jbHVkZTsNCgkkZXhjbHVkZSA9IGRvX2xp c3QoJGV4Y2x1ZGUsICRkZWxpbSk7DQoJJGV4Y2x1ZGUgPSAoJGV4Y2x1ZGVbMF0gPT0gIiIp ID8gYXJyYXkoKSA6ICRleGNsdWRlOw0KCSRtYXRjaCA9IGRvX2xpc3QoJG1hdGNoLCAkZGVs aW0pOw0KCSRtYXRjaCA9ICgkbWF0Y2hbMF0gPT0gIiIpID8gYXJyYXkoKSA6ICRtYXRjaDsN CgkkbWF0Y2h3aXRoID0gZG9fbGlzdCgkbWF0Y2h3aXRoLCAkZGVsaW0pOw0KCWZvcmVhY2gg KCRtYXRjaHdpdGggYXMgJHRoaXNtYXRjaCkgew0KCQkkbWF0Y2hlc1tdID0gKGluX2FycmF5 KCR0aGlzbWF0Y2gsJG1hdGNoT3B0cykpID8gJHRoaXNtYXRjaCA6ICRtYXRjaE9wdHNbMF07 DQoJfQ0KCSRtYXRjaGVzID0gYXJyYXlfdW5pcXVlKCRtYXRjaGVzKTsNCg0KCS8vIFNldCB1 cCBjb2xsYXRlZCBxdW90aW5nIGlmIG5lY2Vzc2FyeQ0KCWlmICgkY29sbGF0ZSkgew0KCQkk cXVvdGVzID0gYXJyYXkoJ1NNRE5PTkUnKTsNCgkJJGNvbGxhdGVPcHRzID0gZG9fbGlzdCgk Y29sbGF0ZSwgJGRlbGltKTsNCgkJZm9yZWFjaCAoJGNvbGxhdGVPcHRzIGFzICRvcHRpb24p IHsNCgkJCSRpbmRleGVzID0gZG9fbGlzdCgkb3B0aW9uLCAkcGFyYW1kZWxpbSk7DQoJCQkk Y29sVHlwZSA9IGFycmF5X3NoaWZ0KCRpbmRleGVzKTsNCgkJCS8vIFN1cHBseWluZyAncXVv dGUnIG9uIGl0cyBvd24gd2lsbCBlbXB0eSB0aGUgcmVsZXZhbnQgYXJyYXksIGltcGx5aW5n ICJBTEwiIGZpZWxkcyBhcmUgdG8gYmUgcXVvdGVkDQoJCQlzd2l0Y2ggKCRjb2xUeXBlKSB7 DQoJCQkJY2FzZSAicXVvdGUiOg0KCQkJCQkkcXVvdGVzID0gJGluZGV4ZXM7DQoJCQkJCWJy ZWFrOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJLy8gTWFrZSB1cCBhbiBhcnJheSBvZiBuYW1lID0+ IHZhbHVlIHBhaXJzIHBvcHVsYXRlZCBmcm9tIHRoZSBhcnJheXMgb2YgdGhlIGNob3NlbiAk dHlwZXMNCgkkdHlwZXMgPSBhcnJheSgpOw0KCSR2YXJzID0gYXJyYXkoKTsNCgkkdHlwZSA9 IGRvX2xpc3QoJHR5cGUsICRkZWxpbSk7DQoJZm9yZWFjaCAoJHR5cGUgYXMgJHRoaXN0eXBl KSB7DQoJCXN3aXRjaCAoJHRoaXN0eXBlKSB7DQoJCQljYXNlICJ1cmx2YXIiOg0KCQkJCWlm ICgkX1BPU1QpICR2YXJzID0gc21kX2VhY2hfZ3JhYigkX1BPU1QsICR2YXJzLCAnZG9TcGVj aWFsLCBkb1N0cmlwVGFncycsICRkZWxpbSwgJHN1YnNldCk7DQoJCQkJaWYgKCRfR0VUKSAk dmFycyA9IHNtZF9lYWNoX2dyYWIoJF9HRVQsICR2YXJzLCAnZG9TcGVjaWFsLCBkb1N0cmlw VGFncycsICRkZWxpbSwgJHN1YnNldCk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJzdnJ2YXIi Og0KCQkJCWlmICgkX1NFUlZFUikgJHZhcnMgPSBzbWRfZWFjaF9ncmFiKCRfU0VSVkVSLCAk dmFycywgJ2RvU3BlY2lhbCwgZG9TdHJpcFRhZ3MnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJ CWJyZWFrOw0KCQkJY2FzZSAiY29va2llIjoNCgkJCQlpZiAoJF9DT09LSUUpICR2YXJzID0g c21kX2VhY2hfZ3JhYigkX0NPT0tJRSwgJHZhcnMsICdkb1NwZWNpYWwsIGRvU3RyaXBUYWdz JywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInR4cHZhciI6DQoJ CQkJaWYgKCR2YXJpYWJsZSkgJHZhcnMgPSBzbWRfZWFjaF9ncmFiKCR2YXJpYWJsZSwgJHZh cnMsICcnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAiZmllbGQi Og0KCQkJY2FzZSAiZGVmYXVsdCI6DQoJCQkJaWYgKCR0aGlzZmlsZSkgJHZhcnMgPSBzbWRf ZWFjaF9ncmFiKCR0aGlzZmlsZSwgJHZhcnMsICcnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJ CWlmICgkdGhpc2xpbmspICR2YXJzID0gc21kX2VhY2hfZ3JhYigkdGhpc2xpbmssICR2YXJz LCAnJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlpZiAoJHByZXRleHQpICR2YXJzID0gc21k X2VhY2hfZ3JhYigkcHJldGV4dCwgJHZhcnMsICcnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJ CWlmICgkdGhpc2FydGljbGUpICR2YXJzID0gc21kX2VhY2hfZ3JhYigkdGhpc2FydGljbGUs ICR2YXJzLCAnZG9TdHJpcFRhZ3MnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJCWJyZWFrOw0K CQl9DQoJfQ0KDQoJaWYgKCRkZWJ1Zykgew0KCQllY2hvICIrKyBWQVJJQUJMRSBQT09MICsr IjsNCgkJZG1wKCR2YXJzKTsNCgl9DQoNCgkvLyBGaWx0ZXIgdGhlIGFycmF5IGlmIG5lY2Vz c2FyeSBpbnRvIGEgc21hbGxlciBhcnJheSBvZiBkZXNpcmVkIGVsZW1lbnRzDQoJJGZpbHRl cnZhcnMgPSBhcnJheSgpOw0KDQoJLy8gTmFtZWQgdmFyaWFibGVzIGFyZSBhbHdheXMgY29w aWVkIGFjcm9zcw0KCWlmICgkaW5jbHVkZSkgew0KCQlmb3JlYWNoICgkaW5jbHVkZSBhcyAk dGhpc25hbWUpIHsNCgkJCWlmICgkdGhpc25hbWUgIT0gIiIpIHsNCgkJCQkkcmUgPSAnLygn LiR0aGlzbmFtZS4nKF9bMC05XSopPykvJzsNCgkJCQkkbnVtID0gcHJlZ19tYXRjaF9hbGwo JHJlLCBqb2luKCRkZWxpbSxhcnJheV9rZXlzKCR2YXJzKSksICRrZXluYW1lcyk7DQoJCQkJ Zm9yICgkY3RyID0gMDsgJGN0ciA8ICRudW07ICRjdHIrKykgew0KCQkJCQkkZmlsdGVydmFy c1ska2V5bmFtZXNbMF1bJGN0cl1dID0gJHZhcnNbJGtleW5hbWVzWzBdWyRjdHJdXTsNCgkJ CQl9DQoJCQl9DQoJCX0NCgl9DQoNCgkvLyBBbnkgbmFtZXMvdmFsdWVzIG1hdGNoaW5nICRt YXRjaCBhcmUgYWxzbyBhZGRlZA0KCWlmICgkbWF0Y2gpIHsNCgkJZm9yZWFjaCAoJHZhcnMg YXMgJGtleSA9PiAkdmFsKSB7DQoJCQlpZiAoaW5fYXJyYXkoIm5hbWUiLCAkbWF0Y2hlcykg JiYgKCFhcnJheV9rZXlfZXhpc3RzKCRrZXksICRmaWx0ZXJ2YXJzKSkpIHsNCgkJCQlmb3Jl YWNoICgkbWF0Y2ggYXMgJHRoaXNtYXRjaCkgew0KCQkJCQlpZiAoJHRoaXNtYXRjaCAmJiBz dHJwb3MoJGtleSwgJHRoaXNtYXRjaCkgIT09IGZhbHNlKSB7DQoJCQkJCQlpZiAoJGRlYnVn KSB7DQoJCQkJCQkJZG1wKCJBRERJTkcgIi4ka2V5LiIgKGZyb20gbmFtZSkgIik7DQoJCQkJ CQl9DQoJCQkJCQkkZmlsdGVydmFyc1ska2V5XSA9ICR2YWw7DQoJCQkJCQlicmVhazsNCgkJ CQkJfQ0KCQkJCX0NCgkJCX0NCgkJCS8vIE5vIHBvaW50IGNoZWNraW5nIHRoZSB2YWx1ZXMg aWYgdGhlIHZhcmlhYmxlIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gdGhlIGZpbHRlcmVk IGxpc3QNCgkJCWlmIChpbl9hcnJheSgidmFsdWUiLCAkbWF0Y2hlcykgJiYgKCFhcnJheV9r ZXlfZXhpc3RzKCRrZXksICRmaWx0ZXJ2YXJzKSkpIHsNCgkJCQlmb3JlYWNoICgkbWF0Y2gg YXMgJHRoaXNtYXRjaCkgew0KCQkJCQlpZiAoJHRoaXNtYXRjaCAmJiBzdHJwb3MoJHZhbCwg JHRoaXNtYXRjaCkgIT09IGZhbHNlKSB7DQoJCQkJCQlpZiAoJGRlYnVnKSB7DQoJCQkJCQkJ ZG1wICgiQURESU5HICIuJGtleS4iIChmcm9tIHZhbHVlKSAiKTsNCgkJCQkJCX0NCgkJCQkJ CSRmaWx0ZXJ2YXJzWyRrZXldID0gJHZhbDsNCgkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJ fQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJLy8gUmVtb3ZlIGFueSBleGNsdWRlZCB2YXJpYWJsZXMN CglpZiAoJGV4Y2x1ZGUpIHsNCgkJZm9yZWFjaCAoJGV4Y2x1ZGUgYXMgJHRoaXNuYW1lKSB7 DQoJCQlpZiAoJHRoaXNuYW1lICE9ICIiKSB7DQoJCQkJJHJlID0gJy8oJy4kdGhpc25hbWUu JyhfWzAtOV0qKT8pLyc7DQoJCQkJJG51bSA9IHByZWdfbWF0Y2hfYWxsKCRyZSwgam9pbigk ZGVsaW0sYXJyYXlfa2V5cygkZmlsdGVydmFycykpLCAka2V5bmFtZXMpOw0KCQkJCWZvciAo JGN0ciA9IDA7ICRjdHIgPCAkbnVtOyAkY3RyKyspIHsNCgkJCQkJaWYgKCRkZWJ1Zykgew0K CQkJCQkJZG1wKCJFWENMVURJTkcgIi4ka2V5bmFtZXNbMF1bJGN0cl0pOw0KCQkJCQl9DQoJ CQkJCXVuc2V0ICgkZmlsdGVydmFyc1ska2V5bmFtZXNbMF1bJGN0cl1dKTsNCgkJCQl9DQoJ CQl9DQoJCX0NCgl9DQoNCgkvLyBJZiBubyBmaWx0ZXJzIGFyZSBzcGVjaWZpZWQNCglpZiAo ISRpbmNsdWRlICYmICEkZXhjbHVkZSAmJiAhJG1hdGNoKSB7DQoJCSRmaWx0ZXJ2YXJzID0g JHZhcnM7DQoJfQ0KDQoJaWYgKCRkZWJ1ZyAmJiAoJGZpbHRlcnZhcnMgIT0gJHZhcnMpKSB7 DQoJCWVjaG8gIisrIEZJTFRFUkVEIFZBUlMgKysiOw0KCQlkbXAoJGZpbHRlcnZhcnMpOw0K CX0NCg0KCS8vIFRocm93IHRoZSBuYW1lID0+IHZhbHVlIHBhaXJzIGF0IHRoZSBmb3JtDQoJ JG91dCA9IGFycmF5KCk7DQoJJGNvbGxhdGlvbnMgPSBhcnJheSgpOw0KCSRjdHIgPSAxOw0K CWZvcmVhY2ggKCRmaWx0ZXJ2YXJzIGFzICRrZXkgPT4gJHZhbCkgew0KCQkkcmVwbGFjZW1l bnRzID0gYXJyYXkoDQoJCQkne3Zhcl9uYW1lfScgPT4gJGtleSwNCgkJCSd7dmFyX3ZhbHVl fScgPT4gJHZhbCwNCgkJKTsNCg0KCQkvLyBTb2xvcyBhcmUgaXRlbXMgaW4gdGhlIG91dHB1 dCBmb3JtIHRoYXQgcmVxdWlyZSBkZXRhaWxzIGZyb20gYSBzcGVjaWZpYyByb3cuIFVzZWZ1 bCBvbmx5IGluIGNvbGxhdGlvbg0KCQkvLyBtb2RlLCB0aGV5IGFyZSBhZGRlZCB0byB0aGUg cmVwbGFjZW1lbnRzIGFycmF5IG9uIGFuIGFzLW5lZWRlZCBiYXNpcyB0byBzYXZlIHNwYWNl L3RpbWUNCgkJJHNvbG9SRSA9ICcvXHsoW2EtejAtOV9dKykjJy4kY3RyLidcfS8nOw0KCQkk bnVtU29sb3MgPSBwcmVnX21hdGNoX2FsbCgkc29sb1JFLCAkdGhpbmcsICRzb2xvcyk7DQoJ CWZvciAoJHNvbG9DdHIgPSAwOyAkc29sb0N0ciA8ICRudW1Tb2xvczsgJHNvbG9DdHIrKykg ew0KCQkJJGZpZWxkbmFtZSA9ICd7Jy4kc29sb3NbMV1bJHNvbG9DdHJdLicjJy4kY3RyLid9 JzsNCgkJCSRncmFiZmllbGQgPSAneycuJHNvbG9zWzFdWyRzb2xvQ3RyXS4nfSc7DQoJCQkk cmVwbGFjZW1lbnRzWyRmaWVsZG5hbWVdID0gJHJlcGxhY2VtZW50c1skZ3JhYmZpZWxkXTsN CgkJfQ0KDQoJCWlmICgkZGVidWcpIHsNCgkJCWVjaG8gIisrIFJFUExBQ0VNRU5UICMkY3Ry ICsrIjsNCgkJCWRtcCgkcmVwbGFjZW1lbnRzKTsNCgkJfQ0KCQkvLyBJbiBjb2xsYXRlIG1v ZGUgdGhlIGZvcm0gaXMgb25seSBwYXJzZWQgYXQgdGhlIGVuZDogYnVpbGQgYSBjb2xsb3Nh bCBtdWx0aS1kaW1lbnNpb24gYXJyYXkgb2YgYWxsIGl0ZW1zIGhlcmUNCgkJaWYgKCRjb2xs YXRlKSB7DQoJCQlmb3JlYWNoICgkcmVwbGFjZW1lbnRzIGFzICRkZWZOYW1lID0+ICRkZWZW YWwpIHsNCgkJCQkkY29sbGF0aW9uc1skZGVmTmFtZV1bXSA9ICRkZWZWYWw7DQoJCQl9DQoJ CX0gZWxzZSB7DQoJCQkkb3V0W10gPSBwYXJzZShzdHJ0cigkdGhpbmcsICRyZXBsYWNlbWVu dHMpKTsNCgkJfQ0KDQoJCSRjdHIrKzsNCgl9DQoNCgkvLyBIYW5kbGUgcXVvdGluZyBvZiBj b2xsYXRpb25zDQoJaWYgKCRjb2xsYXRlKSB7DQoJCWZvcmVhY2ggKCRjb2xsYXRpb25zIGFz ICRpdGVtID0+ICRsaXN0KSB7DQoJCQkvLyBRdW90ZSB0aGUgbGlzdHMgaWYgcmVxdWlyZWQN CgkJCSRsaXN0ID0gKGVtcHR5KCRxdW90ZXMpIHx8IGluX2FycmF5KCRpdGVtLCAkcXVvdGVz KSkgPyBkb0FycmF5KCRsaXN0LCAnZG9RdW90ZScpIDogJGxpc3Q7DQoJCQkkY29sbGF0aW9u c1skaXRlbV0gPSBpbXBsb2RlKCRvdXRkZWxpbSwgJGxpc3QpOw0KCQl9DQoJCWlmICgkZGVi dWcpIHsNCgkJCWVjaG8gIisrIENPTExBVElPTlMgKysiOw0KCQkJZG1wKCRjb2xsYXRpb25z KTsNCgkJfQ0KCQkkb3V0W10gPSBwYXJzZShzdHJ0cigkdGhpbmcsICRjb2xsYXRpb25zKSk7 DQoJfQ0KDQoJcmV0dXJuIGRvV3JhcCgkb3V0LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xhc3Mp Ow0KfQ0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQovLyBUYWtlIGFuIGFycmF5IG9mIG5hbWUtdmFsdWUgcGFp cnMsIHByb2Nlc3MgYW5kIGNvbWJpbmUgdGhlbSB3aXRoIHdoYXQgaXMgYWxyZWFkeSBpbiAk b3V0Lg0KLy8gSGFuZGxlIHN1Yi1saXN0cyBhcyB3ZWxsDQpmdW5jdGlvbiBzbWRfZWFjaF9n cmFiKCRpdGVtLCAkb3V0PScnLCAkcHJvYz0nJywgJGRsbT0nLCcsICRzdWI9MCkgew0KCSRv dXQgPSAoJG91dCkgPyAkb3V0IDogYXJyYXkoKTsNCgkkcHJvYyA9IGRvX2xpc3QoJHByb2Ms ICRkbG0pOw0KCSRwcm9jID0gKCRwcm9jWzBdID09ICIiKSA/IGFycmF5KCkgOiAkcHJvYzsN Cg0KCXdoaWxlIChsaXN0KCRrZXksICR2YWwpID0gZWFjaCgkaXRlbSkpIHsNCgkJJHZhbCA9 IChpc19hcnJheSgkdmFsKSkgPyBqb2luKCRkbG0sICR2YWwpIDogJHZhbDsNCgkJaWYgKCRz dWIpIHsNCgkJCWlmICgkc3ViID09IDEpIHsNCgkJCQkvLyBBZGQgdGhlIGNvbXBsZXRlIGVs ZW1lbnQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gc3BsaXQgaXQNCgkJCQlmb3JlYWNoKCRwcm9j IGFzICRvcCkgew0KCQkJCQkkdmFsID0gJG9wKCR2YWwpOw0KCQkJCX0NCgkJCQkkb3V0WyRr ZXldID0gJHZhbDsNCgkJCX0NCgkJCSR2YWxzID0gZG9fbGlzdCgkdmFsLCAkZGxtKTsNCgkJ CSR2YWxzID0gKGNvdW50KCR2YWxzKT09MSkgPyBhcnJheSgpIDogJHZhbHM7DQoJCQkkY3Ry ID0gMTsNCgkJCWZvcmVhY2ggKCR2YWxzIGFzICRzdWJ2YWwpIHsNCgkJCQlmb3JlYWNoKCRw cm9jIGFzICRvcCkgew0KCQkJCQkkc3VidmFsID0gJG9wKCRzdWJ2YWwpOw0KCQkJCX0NCgkJ CQkkb3V0WyRrZXkuJ18nLiRjdHIrK10gPSAkc3VidmFsOw0KCQkJfQ0KCQl9IGVsc2Ugew0K CQkJZm9yZWFjaCgkcHJvYyBhcyAkb3ApIHsNCgkJCQkkdmFsID0gJG9wKCR2YWwpOw0KCQkJ fQ0KCQkJJG91dFska2V5XSA9ICR2YWw7DQoJCX0NCgl9DQoJcmV0dXJuICRvdXQ7DQp9Ijtz OjQ6InR5cGUiO3M6MToiMCI7czo0OiJoZWxwIjtzOjE1NTA0OiIJPHA+PGRpdiBpZD0ic21k X2hlbHAiPjwvcD4KCgk8aDEgaWQ9InRvcCI+c21kX2VhY2g8L2gxPgoKCTxoMiBpZD0iZmVh dHVyZXMiPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxpPkl0ZXJhdGUgb3ZlciBhbnkgdmFy aWFibGVzIHlvdSBjYW4gZ2V0IHlvdXIgaGFuZHMgb24uIFRoZXNlIGNhbiBiZSBhbnl0aGlu ZyBmcm9tIHRoZSBjdXJyZW50IGFydGljbGUgKGN1c3RvbSBmaWVsZCwgYXJ0aWNsZV9pbWFn ZSwgZXRjKSwgYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+L1NFUlZFUiB2YXJp YWJsZSBvciBjb29raWUgKHN1YmplY3QgdG8gbm9ybWFsIGVzY2FwaW5nIHJ1bGVzKSBvciBh bnkgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT48L2xpPgoJCTxsaT5JbmNs dWRlIG9yIGV4Y2x1ZGUgcGFydGljdWxhciB2YXJpYWJsZXMsIG9yIG9ubHkgY2hvb3NlIHZh cmlhYmxlcyB0aGF0IG1hdGNoIHBhcnRpY3VsYXIgdGV4dDwvbGk+CgkJPGxpPkl0ZXJhdGUg b3ZlciBzdWJzZXRzIG9mIGRhdGEgY29udGFpbmVkIGluIGFueSBmaWVsZDwvbGk+CgkJPGxp PkNob29zZSB0byBwcm9jZXNzIGVhY2ggdmFyaWFibGUgb25lIGJ5IG9uZSB3aXRoIGEgZm9y bSwgb3IgY29sbGVjdCB0aGVtIHRvZ2V0aGVyIGludG8gYSBkZWxpbWl0ZWQgbGlzdCB0byBi ZSBwcm9jZXNzZWQgb25seSBvbmNlIGJ5IHRoZSBmb3JtPC9saT4KCQk8bGk+UHJvdmlkZXMg ZnJlZSBoZWFkYWNoZXMgaWYgeW91IGRvbiYjODIxNzt0IGtlZXAgeW91ciB3aXRzIGFib3V0 IHlvdTwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRob3I8L2gyPgoKCTxwPjxh IGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+U3RlZiBEYXdzb248 L2E+LiBGb3Igb3RoZXIgc29mdHdhcmUgYnkgbWUsIG9yIHRvIG1ha2UgYSBkb25hdGlvbiwg c2VlIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBh Z2U8L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwiPkluc3RhbGxhdGlvbiAvIFVuaW5zdGFs bGF0aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhy ZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy85ODYvc21kX2VhY2giPnRleHRw YXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSBzb2Z0d2FyZSBwYWdlIGFib3ZlLCBwYXN0ZSB0aGUg Y29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0 OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0 aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhw P2lkPTI3NDY0Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0 IGEgYnVnL2ZlYXR1cmUgcmVxdWVzdC48L3A+CgoJPHA+VG8gcmVtb3ZlIHRoZSBwbHVnaW4s IHNpbXBseSBkZWxldGUgaXQgZnJvbSB0aGUgQWRtaW4tJmd0O1BsdWdpbnMgdGFiLjwvcD4K Cgk8aDIgaWQ9InVzYWdlIj5Vc2FnZTwvaDI+CgoJPHA+Rm9yIHNvbWUgaWRlYXMgb24gdXNh Z2Ugc2NlbmFyaW9zLCBzZWUgdGhlIDxhIGhyZWY9IiNleGFtcGxlcyI+ZXhhbXBsZXM8L2E+ LjwvcD4KCgk8aDMgY2xhc3M9InRhZyAiIGlkPSJzbWRfZWFjaCI+c21kX2VhY2g8L2gzPgoK CTxwIGNsYXNzPSJ0YWctc3VtbWFyeSI+UGxhY2Ugb25lIG9yIG1vcmUgc21kX2VhY2ggdGFn cyBpbiBhbnkgYXJ0aWNsZSwgcGFnZSBvciBmb3JtLCBzdXBwbHkgYW55IG9mIHRoZSBmb2xs b3dpbmcgb3B0aW9ucyB0byBjb25maWd1cmUgaXQgYW5kIHVzZSBhIGZvcm0gKG9yIGNvbnRh aW5lcikgdG8gZGVmaW5lIHdoYXQgdG8gZG8gd2l0aCBlYWNoIG1hdGNoaW5nIHZhcmlhYmxl LjwvcD4KCgk8cD5JbiBhIG51dHNoZWxsLCBpdCBncmFicyBldmVyeSBhcnJheSBmcm9tIHRo ZSBwbGFjZXMgeW91IHNwZWNpZnksIGFsbG93cyB5b3UgdG8gZmlsdGVyIHRoZSBhcnJheSB3 aXRoIG1hdGNoZXMgb3Igc3BlY2lmaWMgaXRlbXMsIHRoZW4gYXNzaWducyBlYWNoIHN1Y2Nl c3NpdmUgbmFtZS92YWx1ZSBwYWlyIHRvIHR3byByZXBsYWNlbWVudCB0YWdzIHRoYXQgeW91 IGNhbiB1c2UgaW4geW91ciBmb3JtIHRvIGRvIHN0dWZmLiBZb3UgY291bGQgc2ltcGx5IGRp c3BsYXkgdGhlIHZhbHVlcyBvciBwb3B1bGF0ZSBuZXcgdGFibGVzIHdpdGggdGhlbSwgcGx1 ZyB2YWx1ZXMgaW50byBxdWVyaWVzLCBjcmVhdGUgc21kX3ZhcnMsIHRlc3QgdGhlIHZhbHVl cyB3aXRoIHNtZF9pZiwgeW91IG5hbWUgaXQuPC9wPgoKCTxoNCBpZD0iYXR0cmlidXRlcyI+ QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dHlwZTwv c3Bhbj4gOiB3aGVyZSB0byBsb29rIGZvciB2YXJpYWJsZXMuIFRoZXkgY2FuIGJlIGNvbWJp bmVkIGludG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpZiB5b3Ugd2lzaCB0byBzZWFyY2gg bW9yZSB0aGFuIG9uZSBwbGFjZSBhdCBvbmNlLiBPcHRpb25zIGFyZToKCTx1bD4KCQk8bGk+ PGNvZGU+ZmllbGQ8L2NvZGU+IDogYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBh cnRpY2xlIGZpZWxkICh0aGUgZGVmYXVsdCk8L2xpPgoJCTxsaT48Y29kZT51cmx2YXI8L2Nv ZGU+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LCBlLmcuIG5hbWUxPXZh bCZhbXA7bmFtZTI9dmFsJmFtcDsmIzgyMzA7PC9saT4KCQk8bGk+PGNvZGU+c3ZydmFyPC9j b2RlPiA6IHRoZSBzZXJ2ZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzPC9saT4KCQk8bGk+PGNv ZGU+Y29va2llPC9jb2RlPiA6IGFueSB1c2VyIGNvb2tpZXM8L2xpPgoJCTxsaT48Y29kZT50 eHB2YXI8L2NvZGU+IDogYSB2YWx1ZSBmcm9tIGFueSA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxl IC8mZ3Q7PC9jb2RlPiB0YWc8L2xpPgoJPC91bD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+aW5jbHVkZTwvc3Bhbj4gOiBiYXNlIGxpc3Qgb2YgdmFyaWFibGUgbmFtZXMgeW91 IGRlZmluaXRlbHkgd2FudCB0byBiZSByZXR1cm5lZCBpbiB0aGUgcmVzdWx0PC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmV4Y2x1ZGU8L3NwYW4+IDogYmFzZSBsaXN0IG9mIHZh cmlhYmxlIG5hbWVzIHlvdSBkZWZpbml0ZWx5IGRvIG5vdCB3YW50IHRvIGJlIHJldHVybmVk IGluIHRoZSByZXN1bHQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+bWF0Y2g8L3Nw YW4+IDogbGlzdCBvZiB0ZXh0IHN0cmluZ3MgdG8gc2VhcmNoIGZvciB0byByZWZpbmUgdGhl IHJldHVybmVkIHZhcmlhYmxlcy4gQnkgZGVmYXVsdCB0aGlzIHdpbGwgbWF0Y2ggYWdhaW5z dCA8ZW0+ZXZlcnk8L2VtPiB2YXJpYWJsZSBpbiBldmVyeSBsb2NhdGlvbiB5b3Ugc3BlY2lm aWVkIGluIDxjb2RlPnR5cGU8L2NvZGU+LiBJdCBpcyBhdXRvbWF0aWNhbGx5IHdpbGQgc28g d2lsbCBtYXRjaCBwb3J0aW9ucyBvZiBhIHZhcmlhYmxlPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPm1hdGNod2l0aDwvc3Bhbj4gOiBkZWZhdWx0cyB0byA8Y29kZT5uYW1lPC9j b2RlPiB3aGljaCBsb29rcyBvbmx5IGF0IHRoZSB2YXJpYWJsZSYjODIxNztzIG5hbWUgZm9y IGEgbWF0Y2guIENhbiBiZSBzZXQgdG8gPGNvZGU+dmFsdWU8L2NvZGU+IHRvIGxvb2sgYXQg aXRzIHZhbHVlIG9yIDxjb2RlPm5hbWUsIHZhbHVlPC9jb2RlPiB0byBsb29rIGluIGJvdGgg Zm9yIG1hdGNoZXM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+c3Vic2V0PC9zcGFu PiA6IGlmIHlvdSBrbm93IHlvdXIgdmFyaWFibGVzIGFyZSBnb2luZyB0byBjb250YWluIGxp c3RzIHRoZW1zZWx2ZXMsIHNwZWNpZnkgPGNvZGU+c3Vic2V0PSZxdW90OzEmcXVvdDs8L2Nv ZGU+IHRvIGhhdmUgdGhlIHBsdWdpbiBhZGQgZWFjaCBwc2V1ZG8tdmFyaWFibGUgdG8gdGhl IGFycmF5LiBGb3IgZXhhbXBsZSwgaWYgeW91IGFydGljbGVfaW1hZ2UgZmllbGQgY29udGFp bmVkIDxjb2RlPjE0LCA2LCAxNywgMywgOTwvY29kZT4geW91IHdvdWxkIGdldCBmaXZlIG1v cmUgdmFyaWFibGVzIGNhbGxlZCA8Y29kZT5hcnRpY2xlX2ltYWdlXzE8L2NvZGU+ICh2YWx1 ZToxNCksIDxjb2RlPmFydGljbGVfaW1hZ2VfMjwvY29kZT4gKHZhbHVlOiA2KSwgYW5kIHNv IG9uLjxkaXYgY2xhc3M9ImJyZWFrIj5Ob3RlIHRoYXQgeW91IHdpbGwgYWxzbyBnZXQgdGhl IGZ1bGwgYXJ0aWNsZV9pbWFnZSAoYW5kIGFsbCBvdGhlciBtYXRjaGluZyBub24tc3Vic2V0 IHZhcnMpIGluY2x1ZGVkLiBJZiB5b3Ugd2lzaCB0byA8ZW0+b25seTwvZW0+IHNlZSB2YXJp YWJsZXMgdGhhdCBjb250YWluIHN1Ymxpc3RzIG9mIGRhdGEsIHVzZSA8Y29kZT5zdWJzZXQ9 JnF1b3Q7MiZxdW90OzwvY29kZT48L2Rpdj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+Zm9ybTwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZm9y bSB0byBleGVjdXRlIGZvciBldmVyeSBtYXRjaGluZyB2YXJpYWJsZS4gSWYgbm90IHNwZWNp ZmllZCwgdGhlIGNvbnRhaW5lciB3aWxsIGJlIHVzZWQuIElmIHRoZXJlJiM4MjE3O3Mgbm8g Y29udGFpbmVyLCBhIGRlZmF1bHQgZm9ybSB3aXRoIGp1c3QgdGhlIHt2YXJfdmFsdWV9IGlz IHVzZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y29sbGF0ZTwvc3Bhbj4gOiBw cmV2ZW50IHRoZSA8Y29kZT5mb3JtPC9jb2RlPiBiZWluZyBleGVjdXRlZCBmb3IgZXZlcnkg dmFyaWFibGUuIEluc3RlYWQsIGNvbGxlY3QgdGhlIHZhcmlhYmxlIG5hbWVzIGludGVybmFs bHkgYW5kIHRoZW4gcHJvY2VzcyB0aGUgZW50aXJlIGxpc3QgYnkgdGhlIGZvcm0gb25jZSBv bmx5LCBhZnRlciBhbGwgdmFyaWFibGVzIGhhdmUgYmVlbiByZWFkLiBTZWUgPGEgaHJlZj0i I2NvbGxhdGUiPmNvbGxhdGUgbW9kZTwvYT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgZm9yIHNwZWNpZnlpbmcg cGx1Z2luIG9wdGlvbnMuIERlZmF1bHRzIHRvIGNvbW1hICgsKTwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5wYXJhbWRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNl IGZvciBzcGVjaWZ5aW5nIGludGVyLXZhbHVlIHBsdWdpbiBvcHRpb25zIChmb3IgZXhhbXBs ZSBpbiBjb2xsYXRlIG1vZGUpLiBEZWZhdWx0cyB0byBjb2xvbiAoOik8L2xpPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXRubSI+b3V0ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1 c2UgdG8gc2VwYXJhdGUgZWFjaCB2YXJpYWJsZSBkaXNwbGF5ZWQgaW4gY29sbGF0ZSBtb2Rl PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPndyYXB0YWc8L3NwYW4+IDogdGhlIChY KUhUTUwgdGFnIHRvIHdyYXAgdGhlIGZvcm0gaW4sIGUuZy4gPGNvZGU+d3JhcHRhZz0mcXVv dDt1bCZxdW90OzwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+YnJlYWs8 L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnIHRvIHdyYXAgZWFjaCBjYWxsIHRvIHRoZSBmb3Jt IGluLCBlLmcuIDxjb2RlPmJyZWFrPSZxdW90O2xpJnF1b3Q7PC9jb2RlPjwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5jbGFzczwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPkNTUzwvc3Bhbj4gY2xhc3MgbmFtZSB0byBnaXZlIHRvIHRoZSB3cmFwdGFnPC9saT4K CTwvdWw+CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9InJlcHMiPlJlcGxhY2VtZW50IHRhZ3M8 L2g0PgoKCTxwPkZvciBldmV5IG1hdGNoaW5nIHZhcmlhYmxlLCB5b3UgY2FuIHVzZSB0d28g cmVwbGFjZW1lbnQgdGFncyBpbiB5b3VyIGZvcm06PC9wPgoKCTx1bD4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPnt2YXJfbmFtZX08L3NwYW4+IDogdGhlIHZhcmlhYmxlIG5hbWU8L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3Zhcl92YWx1ZX08L3NwYW4+IDogdGhlIHZh cmlhYmxlJiM4MjE3O3MgdmFsdWU8L2xpPgoJPC91bD4KCgk8cD5UaGVzZSBjYW4gYmUgdXNl ZCBmb3Igd2hhdGV2ZXIgZGV2aW91cyBtZWFucyB5b3Ugc2VlIGZpdC4gZS5nLjwvcD4KCgk8 dWw+CgkJPGxpPjxjb2RlPiZsdDt0eHA6YXJ0aWNsZV9jdXN0b20gaWQ9JnF1b3Q7e3Zhcl92 YWx1ZX0mcXVvdDsgLyZndDs8L2NvZGU+IHdpbGwgZGlzcGxheSB0aGUgZ2l2ZW4gYXJ0aWNs ZSBmb3IgZWFjaCBtYXRjaGluZyBJRC48L2xpPgoJCTxsaT48Y29kZT4mbHQ7dHhwOmFydGlj bGUga2V5d29yZHM9JnF1b3Q7e3Zhcl92YWx1ZX0mcXVvdDsgLyZndDs8L2NvZGU+IGluIGNv bGxhdGUgbW9kZSwgbWlnaHQgZGlzcGxheSB0aGUgZ2l2ZW4gYXJ0aWNsZXMgdGhhdCBoYXZl IGtleXdvcmRzIG1hdGNoaW5nIGV2ZXJ5IHVzZXItc3VibWl0dGVkIHNlYXJjaCB0ZXJtPC9s aT4KCTwvdWw+CgoJPGgzIGlkPSJjb2xsYXRlIj5Db2xsYXRlIG1vZGU8L2gzPgoKCTxwPklu c3RlYWQgb2YgcGFyc2luZyBlYWNoIHZhcmlhYmxlIHdpdGggdGhlIGZvcm0vY29udGFpbmVy LCB5b3UgbWF5IGVsZWN0IHRvIGludGVybmFsbHkgJiM4MjE2O2NvbGxlY3QmIzgyMTc7IGFs bCBtYXRjaGluZyB2YXJpYWJsZXMgYW5kIG91dHB1dCB0aGVtIGluIG9uZSBiaWcgbGlzdCB2 aWEgdGhlIGZvcm0uIFRodXMsIHRoZSBmb3JtIGlzIG9ubHkgY2FsbGVkIG9uY2UgYXQgdGhl IGVuZC4gSXQgbWF5IHNlZW0gdXNlbGVzcyBidXQgaXQgY2FuIGJlIG9mIHZhbHVlIGZvciBj cmVhdGluZyBsaXN0cyBvZiB0aGluZ3MgZnJvbSBlYWNoIG1hdGNoaW5nIHZhcmlhYmxlLjwv cD4KCgk8cD5TdGFydGluZyBzaW1wbHksIDxjb2RlPmNvbGxhdGU9JnF1b3Q7MSZxdW90Ozwv Y29kZT4gc3dpdGNoZXMgY29sbGF0aW9uIG1vZGUgb24uIElmIHRoZSBwbHVnaW4gbWF0Y2hl ZCAzIHZhcmlhYmxlcyBmcm9tIHlvdXIgYXJ0aWNsZSBhbmQgeW91IHdlcmUgdG8gdXNlIHRo ZSByZXBsYWNlbWVudCB0YWdzIGluIHlvdXIgZm9ybSBsaWtlIHRoaXM6PC9wPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+VGhlIG1hdGNoaW5nIHZhcnM6IHt2 YXJfbmFtZX0gPSB7dmFyX3ZhbHVlfQo8L2NvZGU+PC9wcmU+CgoJPHA+eW91IG1pZ2h0IGdl dCB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPlRo ZSBtYXRjaGluZyB2YXJzOiBzZWN0aW9uLGNhdGVnb3J5MSxjYXRlZ29yeTIgPSBhcnRpY2xl LG5ld3MscG9saXRpY3MKPC9jb2RlPjwvcHJlPgoKCTxwPkNvbXBhcmUgdGhhdCB3aXRoIHRo ZSByZWd1bGFyIG1vZGUsIHdoaWNoIG91dHB1dHM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+VGhlIG1hdGNoaW5nIHZhcnM6IHNlY3Rpb24gPSBhcnRp Y2xlClRoZSBtYXRjaGluZyB2YXJzOiBjYXRlZ29yeTEgPSBuZXdzClRoZSBtYXRjaGluZyB2 YXJzOiBjYXRlZ29yeTIgPSBwb2xpdGljcwo8L2NvZGU+PC9wcmU+CgoJPHA+U29tZXRpbWVz IGl0JiM4MjE3O3MgdXNlZnVsIHRvIGJlIGFibGUgdG8gcHV0IHF1b3RlcyBhcm91bmQgZWFj aCBpdGVtOyB5b3UgY2FuIHRlbGwgY29sbGF0ZSBtb2RlIHRvIGRvIHRoYXQ6PC9wPgoKCTxw Pjxjb2RlPmNvbGxhdGU9JnF1b3Q7cXVvdGU6e3Zhcl92YWx1ZX0mcXVvdDs8L2NvZGU+PC9w PgoKCTxwPllvdSB3b3VsZCB0aGVuIGdldDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj5UaGUgbWF0Y2hpbmcgdmFyczogc2VjdGlvbixjYXRlZ29yeTEs Y2F0ZWdvcnkyID0gJiMzOTthcnRpY2xlJiMzOTssJiMzOTtuZXdzJiMzOTssJiMzOTtwb2xp dGljcyYjMzk7CjwvY29kZT48L3ByZT4KCgk8cD5UaGUgZGVsaW1pdGVyIChhIGNvbW1hIGlu IHRoaXMgY2FzZSkgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCB0aGUgPGNvZGU+b3V0ZGVsaW08 L2NvZGU+IGF0dHJpYnV0ZS4gWW91IGNhbiBxdW90ZSBtb3JlIHRoYW4gb25lIHRoaW5nIGF0 IG9uY2UgYnkgc3BlY2lmeWluZyB0aGUgaXRlbXMgYXMgYSBkZWxpbWl0ZWQgbGlzdDo8L3A+ CgoJPHA+PGNvZGU+Y29sbGF0ZT0mcXVvdDtxdW90ZTp7dmFyX25hbWV9Ont2YXJfdmFsdWV9 JnF1b3Q7PC9jb2RlPjwvcD4KCgk8cD5idXQgdGhlcmUmIzgyMTc7cyBub3QgbXVjaCBwb2lu dCBiZWNhdXNlIHRoZXJlIGFyZSBvbmx5IHR3byByZXBsYWNlbWVudCB0YWdzIGFuZCB5b3Ug Y2FuIHRodXMgdXNlIHRoZSBzaG9ydGN1dCA8Y29kZT5jb2xsYXRlPSZxdW90O3F1b3RlJnF1 b3Q7PC9jb2RlPiB0byBxdW90ZSB0aGVtIGFsbC4gVGhlIGRlbGltaXRlciB1c2VkIGJldHdl ZW4gaXRlbXMgKHRoZSBjb2xvbikgY2FuIGJlIG92ZXJyaWRlbiB3aXRoIHRoZSA8Y29kZT5w YXJhbWRlbGltPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgoKCTxwPlRoZSBzZWNvbmQgc3BlY2lh bCBmZWF0dXJlIG9mIGNvbGxhdGlvbiBtb2RlIGlzIHRoYXQgeW91IGRvIG5vdCBoYXZlIHRv IGFsd2F5cyBvdXRwdXQgdGhlIGVudGlyZSBsaXN0LiBZb3UgY2FuIGdyYWIgaW5kaXZpZHVh bCBlbnRpdGllcyBmcm9tIHdpdGhpbiB0aGUgaW50ZXJuYWwgYXJyYXkgYnkgdXNpbmcgdGhl ICYjODIxNjsjJiM4MjE3OyBub3RhdGlvbiBpbiB5b3VyIGZvcm06PC9wPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+e3Zhcl92YWx1ZX0gbWlnaHQgb3V0cHV0 ICYjMzk7YXJ0aWNsZSYjMzk7LCYjMzk7bmV3cyYjMzk7LCYjMzk7cG9saXRpY3MmIzM5OyAo YXMgYmVmb3JlKQp7dmFyX3ZhbHVlIzF9IHdvdWxkIG9ubHkgb3V0cHV0IGFydGljbGUKe3Zh cl9uYW1lIzN9IHdvdWxkIG9ubHkgb3V0cHV0IGNhdGVnb3J5Mgo8L2NvZGU+PC9wcmU+CgoJ PHA+Tm90ZSB0aGF0IHdoZW4gcHVsbGluZyBvdXQgaW5kaXZpZHVhbCBlbnRyaWVzIHRoZXkg PHN0cm9uZz5kbyBub3Q8L3N0cm9uZz4gZ2V0IHF1b3RlcyBhZGRlZCB0byB0aGVtLCByZWdh cmRsZXNzIG9mIHdoZXRoZXIgeW91IHVzZWQgPGNvZGU+cXVvdGU8L2NvZGU+IG9yIG5vdC4g VGhpcyBpcyBiZWNhdXNlIGl0IGlzIGEgc2luZ2xlIGl0ZW0gc28geW91IGNhbiBlYXNpbHkg cHV0IHRoZSBxdW90ZXMgaW4gdGhlIGZvcm0gaXRzZWxmICh2aXo6IDxjb2RlPiZxdW90O3t2 YXJfbmFtZSMyfSZxdW90OzwvY29kZT4pPC9wPgoKCTxoMiBpZD0iZXhhbXBsZXMiPkV4YW1w bGVzPC9oMj4KCgk8aDMgaWQ9ImVnMSI+RXhhbXBsZSAxPC9oMz4KCgk8cD5EaXNwbGF5IGVh Y2ggYXJ0aWNsZSBpbWFnZSBmcm9tIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgSURzIGlu IHRoZSBBcnRpY2xlIEltYWdlIGZpZWxkLjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2VhY2ggaW5jbHVkZT0mcXVvdDthcnRpY2xl X2ltYWdlJnF1b3Q7IHN1YnNldD0mcXVvdDsyJnF1b3Q7Jmd0OwogICZsdDt0eHA6aW1hZ2Ug aWQ9JnF1b3Q7e3Zhcl92YWx1ZX0mcXVvdDsgLyZndDsKJmx0Oy90eHA6c21kX2VhY2gmZ3Q7 CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMiI+RXhhbXBsZSAyPC9oMz4KCgk8cD5EaXNw bGF5IGVhY2ggYXJ0aWNsZSBpbWFnZSBmcm9tIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2Yg SURzIGluIHRoZSBBcnRpY2xlIEltYWdlIGZpZWxkLCBhbmQgYWxzbyBhbGxvdyBJRHMgdG8g YmUgZ2l2ZW4gaW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGxpbmUgdmlh IHRoZSB2YXJpYWJsZSBuYW1lIDxjb2RlPm15X2ltYWdlX2xpc3Q8L2NvZGU+IDo8L3A+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9lYWNo IHR5cGU9JnF1b3Q7ZmllbGQsIHVybHZhciZxdW90OwogICAgIGluY2x1ZGU9JnF1b3Q7YXJ0 aWNsZV9pbWFnZSwgbXlfaW1hZ2VfbGlzdCZxdW90OwogICAgIHN1YnNldD0mcXVvdDsyJnF1 b3Q7IGZvcm09JnF1b3Q7dmFyb3V0JnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5B bmQgaW4gZm9ybSA8Y29kZT52YXJvdXQ8L2NvZGU+OjwvcD4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6aW1hZ2UgaWQ9JnF1b3Q7e3Zhcl92YWx1 ZX0mcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWczIj5FeGFtcGxlIDM8 L2gzPgoKCTxwPlRoaXMgaXMgc2ltcGx5IHRvIGhpZ2hsaWdodCB0aGUgZGlmZmVyZW5jZXMg YmV0d2VlbiB0aGUgdmFyaW91cyBtYXRjaGluZyBtb2Rlcy4gTGV0JiM4MjE3O3MgdGFrZSBh IHNpbXBsZSBhcnRpY2xlOjwvcD4KCgk8dWw+CgkJPGxpPnNlY3Rpb246IGFuaW1hbHM8L2xp PgoJCTxsaT50aXRsZSAodXJsX3RpdGxlKSA6IFRoZSBsaW9uICh0aGUtbGlvbik8L2xpPgoJ CTxsaT5jYXRlZ29yeTE6IG1hbW1hbDwvbGk+CgkJPGxpPmNhdGVnb3J5MjogZGFuZ2Vyb3Vz PC9saT4KCQk8bGk+YXJ0aWNsZV9pbWFnZTogMjUsIDI4LCAxMjwvbGk+CgkJPGxpPmtleXdv cmRzOiBiaWcsIGNhdCwgbWFuZSwgZnVyLCB0ZWV0aCwgcm9hciwgY2hvbXAsIG91Y2g8L2xp PgoJCTxsaT5jdXN0b20xICgmIzgyMjA7b3JpZ2luJiM4MjIxOyk6IGFmcmljYTwvbGk+Cgk8 L3VsPgoKCTxwPlRoZXJlIGFyZSBhIHdob2xlIGhvc3Qgb2Ygb3RoZXIgdmFyaWFibGVzIChz d2l0Y2ggZGVidWc9JiM4MjIwOzEmIzgyMjE7IG9uIHRvIHNlZSB0aGVtIGFsbCBmb3IgeW91 ciBjaG9zZW4gPGNvZGU+dHlwZTwvY29kZT5zKSBidXQgd2UmIzgyMTc7bGwgY29uY2VudHJh dGUgb24gdGhlc2UgZm9yIG5vdyB0byBrZWVwIHRoaW5ncyBzaW1wbGUuPC9wPgoKCTx0YWJs ZT4KCQk8dHI+CgkJCTx0aD50YWcgb3B0aW9ucyA8L3RoPgoJCQk8dGg+dmFycyByZXR1cm5l ZCA8L3RoPgoJCQk8dGg+cmVtYXJrcyA8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IG1h dGNoPSYjODIyMDtjYXQmIzgyMjE7IDwvdGQ+CgkJCTx0ZD4gY2F0ZWdvcnkxLCBjYXRlZ29y eTIgPC90ZD4KCQkJPHRkPiBkZWZhdWx0IGlzIHRvIG1hdGNoIG5hbWUgb25seSA8L3RkPgoJ CTwvdHI+CgkJPHRyPgoJCQk8dGQ+IG1hdGNoPSYjODIyMDtjYXQmIzgyMjE7IG1hdGNod2l0 aD0mIzgyMjA7bmFtZSwgdmFsdWUmIzgyMjE7IDwvdGQ+CgkJCTx0ZD4gY2F0ZWdvcnkxLCBj YXRlZ29yeTIsIGtleXdvcmRzLCBpZF9rZXl3b3JkcyA8L3RkPgoJCQk8dGQ+IG5vdyBjaGVj a3MgdmFsdWUgYXMgd2VsbCA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IG1hdGNoPSYj ODIyMDtjYXQmIzgyMjE7IGluY2x1ZGU9JiM4MjIwO2FydGljbGVfaW1hZ2UmIzgyMjE7IDwv dGQ+CgkJCTx0ZD4gY2F0ZWdvcnkxLCBjYXRlZ29yeTIsIGFydGljbGVfaW1hZ2UgPC90ZD4K CQkJPHRkPiBpbmNsdWRlcyBhcmUgYWx3YXlzIHNlbGVjdGVkIDwvdGQ+CgkJPC90cj4KCQk8 dHI+CgkJCTx0ZD4gbWF0Y2g9JiM4MjIwO2NhdCYjODIyMTsgaW5jbHVkZT0mIzgyMjA7YXJ0 aWNsZV9pbWFnZSwgb3JpZ2luJiM4MjIxOyBzdWJzZXQ9JiM4MjIwOzEmIzgyMjE7IDwvdGQ+ CgkJCTx0ZD4gY2F0ZWdvcnkxLCBjYXRlZ29yeTIsIG9yaWdpbiwgYXJ0aWNsZV9pbWFnZSwg YXJ0aWNsZV9pbWFnZV8xLCBhcnRpY2xlX2ltYWdlXzIsIGFydGljbGVfaW1hZ2VfMyA8L3Rk PgoJCQk8dGQ+IGxvb2tlZCAmIzgyMjA7aW5zaWRlJiM4MjIxOyBlYWNoIHZhciB0byBmaW5k IGFueSBsaXN0cyA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IG1hdGNoPSYjODIyMDtj YXQmIzgyMjE7IGluY2x1ZGU9JiM4MjIwO2FydGljbGVfaW1hZ2UsIG9yaWdpbiYjODIyMTsg c3Vic2V0PSYjODIyMDsyJiM4MjIxOyA8L3RkPgoJCQk8dGQ+IGFydGljbGVfaW1hZ2VfMSwg YXJ0aWNsZV9pbWFnZV8yLCBhcnRpY2xlX2ltYWdlXzMgPC90ZD4KCQkJPHRkPiByZXR1cm4g PGVtPm9ubHk8L2VtPiBkYXRhIHNldHMgdGhhdCBjb250YWluIGxpc3RzIGFuZCByZW1vdmVz IHRoZSBhZ2dyZWdhdGUgKGJhc2UpIGVudHJ5IDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0 ZD4gbWF0Y2g9JiM4MjIwO2NhdCwgYXJ0aWNsZV9pbWFnZSYjODIyMTsgbWF0Y2h3aXRoPSYj ODIyMDtuYW1lLHZhbHVlJiM4MjIxOyBzdWJzZXQ9JiM4MjIwOzImIzgyMjE7IDwvdGQ+CgkJ CTx0ZD4gYXJ0aWNsZV9pbWFnZV8xLCBhcnRpY2xlX2ltYWdlXzIsIGFydGljbGVfaW1hZ2Vf Mywga2V5d29yZHMsIGlkX2tleXdvcmRzIDwvdGQ+CgkJCTx0ZD4gY2hlY2tzIGJvdGggbmFt ZSBhbmQgdmFsdWUgZm9yIGVhY2ggbWF0Y2ggdGVybSwgYW5kIG9ubHkgc2hvd3MgaXRlbXMg dGhhdCBoYXZlIGxpc3RzIGluIHRoZW0gKGlmIDxjb2RlPmtleXdvcmRzPC9jb2RlPiBoZWxk IGp1c3Qgb25lIGl0ZW0gJiM4MjIwO2NhdCYjODIyMTsgaXQgd291bGQgPGVtPm5vdDwvZW0+ IGJlIGRpc3BsYXllZCkgPC90ZD4KCQk8L3RyPgoJPC90YWJsZT4KCgk8cD5Ob3RlIHRoYXQg aWYgeW91IGFyZSB1c2luZyB0aGlzIHRhZyBpbiBhbiBhcnRpY2xlLCB0aGUgJiM4MjE2O2Jv ZHkmIzgyMTc7IG1heSBtYXRjaCBiZWNhdXNlIGl0IGNvbnRhaW5zIHRoZSBzbWRfZWFjaCB0 YWcgd2hpY2ggY29udGFpbnMgdGhlIHZlcnkgaW5mb3JtYXRpb24geW91IGFyZSBtYXRjaGlu ZyEgSW4gdGhpcyBjYXNlLCBhZGRpbmcgPGNvZGU+ZXhjbHVkZT0mcXVvdDtib2R5JnF1b3Q7 PC9jb2RlPiB3aWxsIHJlbW92ZSBpdCBmcm9tIHRoZSByZXN1bHRzLjwvcD4KCgk8aDMgaWQ9 ImVnNCI+RXhhbXBsZSA0PC9oMz4KCgk8cD5Gcm9tIGEgcGFnZSB0ZW1wbGF0ZSwgYWxsb3cg dmlzaXRvcnMgdG8gZGlzcGxheSBhbnkgbnVtYmVyIG9mIGFydGljbGVzLjwvcD4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtmb3JtIG5hbWU9JnF1b3Q7 c2hvd19hcnRzJnF1b3Q7IGFjdGlvbj0mcXVvdDsvbXkvcmVzdWx0cy9wYWdlJnF1b3Q7Jmd0 OwogICZsdDt0eHA6YXJ0aWNsZV9jdXN0b20gZm9ybT0mcXVvdDtsaXN0X2NoZWNrcyZxdW90 OwogICAgICAgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscyZxdW90OyBsaW1pdD0mcXVvdDs5OTkm cXVvdDsgLyZndDsKICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDtzdWJtaXQmcXVvdDsgLyZndDsK Jmx0Oy9mb3JtJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+WW91ciBmb3JtIDxjb2RlPmxpc3Rf Y2hlY2tzPC9jb2RlPiBzaW1wbHkgZGlzcGxheXMgdGhlIGFydGljbGUgdGl0bGUgYW5kIGEg Y2hlY2tib3g6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ Jmx0O2xpJmd0OwombHQ7dHhwOnRpdGxlIC8mZ3Q7Jmx0O2lucHV0IHR5cGU9JnF1b3Q7Y2hl Y2tib3gmcXVvdDsKICAgICBuYW1lPSZxdW90O2FydGljbGVfbGlzdHNbXSZxdW90OwogICAg IHZhbHVlPSZxdW90OyZsdDt0eHA6YXJ0aWNsZV9pZCAvJmd0OyZxdW90OyAvJmd0OwombHQ7 L2xpJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBm b3JtIHdlIGNhbiB1c2Ugc21kX2VhY2ggdG8gZmluZCB3aGljaCBjaGVja2JveGVzIGhhdmUg YmVlbiBjbGlja2VkIGFuZCBzaG93IHRoZSByZWxldmFudCBhcnRpY2xlczo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9lYWNoIHR5 cGU9JnF1b3Q7dXJsdmFyJnF1b3Q7CiAgICAgbWF0Y2g9JnF1b3Q7YXJ0aWNsZV9saXN0cyZx dW90OyBzdWJzZXQ9JnF1b3Q7MiZxdW90OyZndDsKICAmbHQ7dHhwOmFydGljbGVfY3VzdG9t IGlkPSZxdW90O3t2YXJfdmFsdWV9JnF1b3Q7IC8mZ3Q7CiZsdDsvdHhwOnNtZF9lYWNoJmd0 Owo8L2NvZGU+PC9wcmU+CgoJPHA+QWx0ZXJuYXRpdmVseSwgaWYgeW91IGFyZSB1c2luZyBh IGNvcHkgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdGhhdCBzdXBwb3J0cyBs aXN0cyBpbiBhcnRpY2xlX2N1c3RvbSYjODIxNztzIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1 dGUgeW91IGNhbiBkcm9wIHRoZSA8Y29kZT5zdWJzZXQ8L2NvZGU+LjwvcD4KCgk8cD48L2Rp dj48L3A+CjwhLS0gLS0tIEJFR0lOIFBMVUdJTiBDU1MgLS0tIC0tPgo8c3R5bGUgdHlwZT0i dGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3NtZF9oZWxwIGNv ZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3Iiwg Y291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9o ZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVk ICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdp bjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBhOmxpbmssICNz bWRfaGVscCBhOnZpc2l0ZWQgeyBjb2xvcjogIzAwYzsgdGV4dC1kZWNvcmF0aW9uOiBub25l OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30K I3NtZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBhOmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0 ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibHVlOyBw YWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDog MjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRl cjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IHBh ZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMt c2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMwNzk7IGZvbnQ6IGJvbGQgMTJweCBB cmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAg MDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l O30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBs ZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTog dXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9y OiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXI6MXB4 IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0LWFsaWdu OmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hlbHAg dGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7fQojc21kX2hlbHAg dWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCBsaSB7IG1hcmdpbjo1 cHggMjBweCA1cHggMzBweDsgfQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7 IH0KPC9zdHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJTiBDU1MgLS0tIC0tPgoiO3M6MzoibWQ1 IjtzOjMyOiJhOTk0MzgyODcxNWMzZjhlOGQzODY0NGUyMjhkMDI1YiI7fQ==