# Name: smd_each v0.12 # Type: Client side plugin # Iterate over TXP, URL or smd_vars variables # 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: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjg6InNtZF9lYWNoIjtzOjY6ImF1dGhvciI7czoxMToiU3Rl ZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29uLmNv bS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjEyIjtzOjExOiJkZXNjcmlwdGlvbiI7czo0Mzoi SXRlcmF0ZSBvdmVyIFRYUCwgVVJMIG9yIHNtZF92YXJzIHZhcmlhYmxlcyI7czo0OiJjb2Rl IjtzOjgyNzM6Ii8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIEl0ZXJhdGUgb3ZlciBhcmJpdHJhcnkgbWF0Y2hp bmcgdmFyaWFibGVzLCBlaXRoZXIgZnJvbSBUWFAgZmllbGRzIG9yIG9uIHRoZSBVUkwgbGlu ZQ0KLy8gYnkgU3RlZiBEYXdzb24NCmZ1bmN0aW9uIHNtZF9lYWNoKCRhdHRzLCAkdGhpbmc9 JycpIHsNCglnbG9iYWwgJHByZXRleHQsICR0aGlzYXJ0aWNsZSwgJHRoaXNmaWxlLCAkdGhp c2xpbmssICR2YXJpYWJsZTsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSd0eXBlJyA9 PiAnZmllbGQnLA0KCQknaW5jbHVkZScgPT4gJycsDQoJCSdleGNsdWRlJyA9PiAnJywNCgkJ J21hdGNoJyA9PiAnJywNCgkJJ21hdGNod2l0aCcgPT4gJ25hbWUnLA0KCQknc3Vic2V0JyA9 PiAnMCcsDQoJCSdjb2xsYXRlJyA9PiAnJywNCgkJJ2Zvcm0nID0+ICcnLA0KCQknZGVsaW0n ID0+ICcsJywNCgkJJ3BhcmFtZGVsaW0nID0+ICc6JywNCgkJJ291dGRlbGltJyA9PiAnLCcs DQoJCSd3cmFwdGFnJyA9PiAnJywNCgkJJ2JyZWFrJyA9PiAnJywNCgkJJ2NsYXNzJyA9PiAn JywNCgkJJ2RlYnVnJyA9PiAnMCcsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIExvb2t1cHMgZm9y IGFsbG93YWJsZSBvcHRpb25zDQoJJG1hdGNoT3B0cyA9IGFycmF5KCduYW1lJywgJ3ZhbHVl Jyk7DQoNCgkvLyBWYWxpZGF0ZSB0aGUgb3B0aW9ucw0KCSR0aGluZyA9IChlbXB0eSgkZm9y bSkpID8gJHRoaW5nIDogZmV0Y2hfZm9ybSgkZm9ybSk7DQoJJHRoaW5nID0gKGVtcHR5KCR0 aGluZykpID8gJ3t2YXJfdmFsdWV9JyA6ICR0aGluZzsNCg0KCSRpbmNsdWRlID0gZG9fbGlz dCgkaW5jbHVkZSwgJGRlbGltKTsNCgkkaW5jbHVkZSA9ICgkaW5jbHVkZVswXSA9PSAiIikg PyBhcnJheSgpIDogJGluY2x1ZGU7DQoJJGV4Y2x1ZGUgPSBkb19saXN0KCRleGNsdWRlLCAk ZGVsaW0pOw0KCSRleGNsdWRlID0gKCRleGNsdWRlWzBdID09ICIiKSA/IGFycmF5KCkgOiAk ZXhjbHVkZTsNCgkkbWF0Y2ggPSBkb19saXN0KCRtYXRjaCwgJGRlbGltKTsNCgkkbWF0Y2gg PSAoJG1hdGNoWzBdID09ICIiKSA/IGFycmF5KCkgOiAkbWF0Y2g7DQoJJG1hdGNod2l0aCA9 IGRvX2xpc3QoJG1hdGNod2l0aCwgJGRlbGltKTsNCglmb3JlYWNoICgkbWF0Y2h3aXRoIGFz ICR0aGlzbWF0Y2gpIHsNCgkJJG1hdGNoZXNbXSA9IChpbl9hcnJheSgkdGhpc21hdGNoLCRt YXRjaE9wdHMpKSA/ICR0aGlzbWF0Y2ggOiAkbWF0Y2hPcHRzWzBdOw0KCX0NCgkkbWF0Y2hl cyA9IGFycmF5X3VuaXF1ZSgkbWF0Y2hlcyk7DQoNCgkvLyBTZXQgdXAgY29sbGF0ZWQgcXVv dGluZyBpZiBuZWNlc3NhcnkNCglpZiAoJGNvbGxhdGUpIHsNCgkJJHF1b3RlcyA9IGFycmF5 KCdTTUROT05FJyk7DQoJCSRjb2xsYXRlT3B0cyA9IGRvX2xpc3QoJGNvbGxhdGUsICRkZWxp bSk7DQoJCWZvcmVhY2ggKCRjb2xsYXRlT3B0cyBhcyAkb3B0aW9uKSB7DQoJCQkkaW5kZXhl cyA9IGRvX2xpc3QoJG9wdGlvbiwgJHBhcmFtZGVsaW0pOw0KCQkJJGNvbFR5cGUgPSBhcnJh eV9zaGlmdCgkaW5kZXhlcyk7DQoJCQkvLyBTdXBwbHlpbmcgJ3F1b3RlJyBvbiBpdHMgb3du IHdpbGwgZW1wdHkgdGhlIHJlbGV2YW50IGFycmF5LCBpbXBseWluZyAiQUxMIiBmaWVsZHMg YXJlIHRvIGJlIHF1b3RlZA0KCQkJc3dpdGNoICgkY29sVHlwZSkgew0KCQkJCWNhc2UgInF1 b3RlIjoNCgkJCQkJJHF1b3RlcyA9ICRpbmRleGVzOw0KCQkJCQlicmVhazsNCgkJCX0NCgkJ fQ0KCX0NCg0KCS8vIE1ha2UgdXAgYW4gYXJyYXkgb2YgbmFtZSA9PiB2YWx1ZSBwYWlycyBw b3B1bGF0ZWQgZnJvbSB0aGUgYXJyYXlzIG9mIHRoZSBjaG9zZW4gJHR5cGVzDQoJJHR5cGVz ID0gYXJyYXkoKTsNCgkkdmFycyA9IGFycmF5KCk7DQoJJHR5cGUgPSBkb19saXN0KCR0eXBl LCAkZGVsaW0pOw0KCWZvcmVhY2ggKCR0eXBlIGFzICR0aGlzdHlwZSkgew0KCQlzd2l0Y2gg KCR0aGlzdHlwZSkgew0KCQkJY2FzZSAidXJsdmFyIjoNCgkJCQlpZiAoJF9QT1NUKSAkdmFy cyA9IHNtZF9lYWNoX2dyYWIoJF9QT1NULCAkdmFycywgJ2RvU3BlY2lhbCwgZG9TdHJpcFRh Z3MnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJCWlmICgkX0dFVCkgJHZhcnMgPSBzbWRfZWFj aF9ncmFiKCRfR0VULCAkdmFycywgJ2RvU3BlY2lhbCwgZG9TdHJpcFRhZ3MnLCAkZGVsaW0s ICRzdWJzZXQpOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAic3ZydmFyIjoNCgkJCQlpZiAoJF9T RVJWRVIpICR2YXJzID0gc21kX2VhY2hfZ3JhYigkX1NFUlZFUiwgJHZhcnMsICdkb1NwZWNp YWwsIGRvU3RyaXBUYWdzJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlicmVhazsNCgkJCWNh c2UgImNvb2tpZSI6DQoJCQkJaWYgKCRfQ09PS0lFKSAkdmFycyA9IHNtZF9lYWNoX2dyYWIo JF9DT09LSUUsICR2YXJzLCAnZG9TcGVjaWFsLCBkb1N0cmlwVGFncycsICRkZWxpbSwgJHN1 YnNldCk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJ0eHB2YXIiOg0KCQkJCWlmICgkdmFyaWFi bGUpICR2YXJzID0gc21kX2VhY2hfZ3JhYigkdmFyaWFibGUsICR2YXJzLCAnJywgJGRlbGlt LCAkc3Vic2V0KTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImZpeGVkIjoNCgkJCQkkbmV3dmFy cyA9IGFycmF5KCk7DQoJCQkJZm9yZWFjaCAoJGluY2x1ZGUgYXMgJGtleSA9PiAkdmFsdWUp IHsNCgkJCQkJJHN1YnMgPSBkb19saXN0KCR2YWx1ZSwgJHBhcmFtZGVsaW0pOw0KCQkJCQlp ZiAoY291bnQoJHN1YnMpID4gMSkgew0KCQkJCQkJJG5ld3ZhciA9IGFycmF5X3NoaWZ0KCRz dWJzKTsNCgkJCQkJCSRleHRyYXZhcnNbJG5ld3Zhcl0gPSBqb2luKCRkZWxpbSwgJHN1YnMp Ow0KCQkJCQkJLy8gVGhlIG5ldyB2YXJpYWJsZSdzIHZhbHVlcyBoYXZlIGJlZW4gZXh0cmFj dGVkIGFuZCBzdG9yZWQsIHNvIG92ZXJ3cml0ZSB0aGUgYXJyYXkgZW50cnkgd2l0aCBqdXN0 IHRoZSB2YXJpYWJsZSBuYW1lDQoJCQkJCQkkaW5jbHVkZVska2V5XSA9ICRuZXd2YXI7DQoJ CQkJCX0NCgkJCQl9DQoJCQkJaWYgKCRleHRyYXZhcnMpICR2YXJzID0gc21kX2VhY2hfZ3Jh YigkZXh0cmF2YXJzLCAkdmFycywgJ2RvU3RyaXBUYWdzJywgJGRlbGltLCAkc3Vic2V0KTsN CgkJCQlicmVhazsNCgkJCWNhc2UgImZpZWxkIjoNCgkJCWNhc2UgImRlZmF1bHQiOg0KCQkJ CWlmICgkdGhpc2ZpbGUpICR2YXJzID0gc21kX2VhY2hfZ3JhYigkdGhpc2ZpbGUsICR2YXJz LCAnJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlpZiAoJHRoaXNsaW5rKSAkdmFycyA9IHNt ZF9lYWNoX2dyYWIoJHRoaXNsaW5rLCAkdmFycywgJycsICRkZWxpbSwgJHN1YnNldCk7DQoJ CQkJaWYgKCRwcmV0ZXh0KSAkdmFycyA9IHNtZF9lYWNoX2dyYWIoJHByZXRleHQsICR2YXJz LCAnJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlpZiAoJHRoaXNhcnRpY2xlKSAkdmFycyA9 IHNtZF9lYWNoX2dyYWIoJHRoaXNhcnRpY2xlLCAkdmFycywgJ2RvU3RyaXBUYWdzJywgJGRl bGltLCAkc3Vic2V0KTsNCgkJCQlicmVhazsNCgkJfQ0KCX0NCg0KCWlmICgkZGVidWcpIHsN CgkJZWNobyAiKysgVkFSSUFCTEUgUE9PTCArKyI7DQoJCWRtcCgkdmFycyk7DQoJfQ0KDQoJ Ly8gRmlsdGVyIHRoZSBhcnJheSBpZiBuZWNlc3NhcnkgaW50byBhIHNtYWxsZXIgYXJyYXkg b2YgZGVzaXJlZCBlbGVtZW50cw0KCSRmaWx0ZXJ2YXJzID0gYXJyYXkoKTsNCg0KCS8vIE5h bWVkIHZhcmlhYmxlcyBhcmUgYWx3YXlzIGNvcGllZCBhY3Jvc3MNCglpZiAoJGluY2x1ZGUp IHsNCgkJZm9yZWFjaCAoJGluY2x1ZGUgYXMgJHRoaXNuYW1lKSB7DQoJCQlpZiAoJHRoaXNu YW1lICE9ICIiKSB7DQoJCQkJJHJlID0gJy8oJy4kdGhpc25hbWUuJyhfWzAtOV0qKT8pLyc7 DQoJCQkJJG51bSA9IHByZWdfbWF0Y2hfYWxsKCRyZSwgam9pbigkZGVsaW0sYXJyYXlfa2V5 cygkdmFycykpLCAka2V5bmFtZXMpOw0KCQkJCWZvciAoJGN0ciA9IDA7ICRjdHIgPCAkbnVt OyAkY3RyKyspIHsNCgkJCQkJJGZpbHRlcnZhcnNbJGtleW5hbWVzWzBdWyRjdHJdXSA9ICR2 YXJzWyRrZXluYW1lc1swXVskY3RyXV07DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJLy8g QW55IG5hbWVzL3ZhbHVlcyBtYXRjaGluZyAkbWF0Y2ggYXJlIGFsc28gYWRkZWQNCglpZiAo JG1hdGNoKSB7DQoJCWZvcmVhY2ggKCR2YXJzIGFzICRrZXkgPT4gJHZhbCkgew0KCQkJaWYg KGluX2FycmF5KCJuYW1lIiwgJG1hdGNoZXMpICYmICghYXJyYXlfa2V5X2V4aXN0cygka2V5 LCAkZmlsdGVydmFycykpKSB7DQoJCQkJZm9yZWFjaCAoJG1hdGNoIGFzICR0aGlzbWF0Y2gp IHsNCgkJCQkJaWYgKCR0aGlzbWF0Y2ggJiYgc3RycG9zKCRrZXksICR0aGlzbWF0Y2gpICE9 PSBmYWxzZSkgew0KCQkJCQkJaWYgKCRkZWJ1Zykgew0KCQkJCQkJCWRtcCgiQURESU5HICIu JGtleS4iIChmcm9tIG5hbWUpICIpOw0KCQkJCQkJfQ0KCQkJCQkJJGZpbHRlcnZhcnNbJGtl eV0gPSAkdmFsOw0KCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQkvLyBO byBwb2ludCBjaGVja2luZyB0aGUgdmFsdWVzIGlmIHRoZSB2YXJpYWJsZSBoYXMgYWxyZWFk eSBiZWVuIGFkZGVkIHRvIHRoZSBmaWx0ZXJlZCBsaXN0DQoJCQlpZiAoaW5fYXJyYXkoInZh bHVlIiwgJG1hdGNoZXMpICYmICghYXJyYXlfa2V5X2V4aXN0cygka2V5LCAkZmlsdGVydmFy cykpKSB7DQoJCQkJZm9yZWFjaCAoJG1hdGNoIGFzICR0aGlzbWF0Y2gpIHsNCgkJCQkJaWYg KCR0aGlzbWF0Y2ggJiYgc3RycG9zKCR2YWwsICR0aGlzbWF0Y2gpICE9PSBmYWxzZSkgew0K CQkJCQkJaWYgKCRkZWJ1Zykgew0KCQkJCQkJCWRtcCAoIkFERElORyAiLiRrZXkuIiAoZnJv bSB2YWx1ZSkgIik7DQoJCQkJCQl9DQoJCQkJCQkkZmlsdGVydmFyc1ska2V5XSA9ICR2YWw7 DQoJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCg0KCS8vIFJl bW92ZSBhbnkgZXhjbHVkZWQgdmFyaWFibGVzDQoJaWYgKCRleGNsdWRlKSB7DQoJCWZvcmVh Y2ggKCRleGNsdWRlIGFzICR0aGlzbmFtZSkgew0KCQkJaWYgKCR0aGlzbmFtZSAhPSAiIikg ew0KCQkJCSRyZSA9ICcvKCcuJHRoaXNuYW1lLicoX1swLTldKik/KS8nOw0KCQkJCSRudW0g PSBwcmVnX21hdGNoX2FsbCgkcmUsIGpvaW4oJGRlbGltLGFycmF5X2tleXMoJGZpbHRlcnZh cnMpKSwgJGtleW5hbWVzKTsNCgkJCQlmb3IgKCRjdHIgPSAwOyAkY3RyIDwgJG51bTsgJGN0 cisrKSB7DQoJCQkJCWlmICgkZGVidWcpIHsNCgkJCQkJCWRtcCgiRVhDTFVESU5HICIuJGtl eW5hbWVzWzBdWyRjdHJdKTsNCgkJCQkJfQ0KCQkJCQl1bnNldCAoJGZpbHRlcnZhcnNbJGtl eW5hbWVzWzBdWyRjdHJdXSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJLy8gSWYgbm8g ZmlsdGVycyBhcmUgc3BlY2lmaWVkDQoJaWYgKCEkaW5jbHVkZSAmJiAhJGV4Y2x1ZGUgJiYg ISRtYXRjaCkgew0KCQkkZmlsdGVydmFycyA9ICR2YXJzOw0KCX0NCg0KCWlmICgkZGVidWcg JiYgKCRmaWx0ZXJ2YXJzICE9ICR2YXJzKSkgew0KCQllY2hvICIrKyBGSUxURVJFRCBWQVJT ICsrIjsNCgkJZG1wKCRmaWx0ZXJ2YXJzKTsNCgl9DQoNCgkvLyBUaHJvdyB0aGUgbmFtZSA9 PiB2YWx1ZSBwYWlycyBhdCB0aGUgZm9ybQ0KCSRvdXQgPSBhcnJheSgpOw0KCSRjb2xsYXRp b25zID0gYXJyYXkoKTsNCgkkY3RyID0gMTsNCgkkdG90YWx2YXJzID0gY291bnQoJGZpbHRl cnZhcnMpOw0KDQoJZm9yZWFjaCAoJGZpbHRlcnZhcnMgYXMgJGtleSA9PiAkdmFsKSB7DQoJ CSRyZXBsYWNlbWVudHMgPSBhcnJheSgNCgkJCSd7dmFyX25hbWV9JyA9PiAka2V5LA0KCQkJ J3t2YXJfdmFsdWV9JyA9PiAkdmFsLA0KCQkJJ3t2YXJfY291bnRlcn0nID0+ICRjdHIsDQoJ CQkne3Zhcl90b3RhbH0nID0+ICR0b3RhbHZhcnMsDQoJCSk7DQoNCgkJLy8gU29sb3MgYXJl IGl0ZW1zIGluIHRoZSBvdXRwdXQgZm9ybSB0aGF0IHJlcXVpcmUgZGV0YWlscyBmcm9tIGEg c3BlY2lmaWMgcm93LiBVc2VmdWwgb25seSBpbiBjb2xsYXRpb24NCgkJLy8gbW9kZSwgdGhl eSBhcmUgYWRkZWQgdG8gdGhlIHJlcGxhY2VtZW50cyBhcnJheSBvbiBhbiBhcy1uZWVkZWQg YmFzaXMgdG8gc2F2ZSBzcGFjZS90aW1lDQoJCSRzb2xvUkUgPSAnL1x7KFthLXowLTlfXSsp IycuJGN0ci4nXH0vJzsNCgkJJG51bVNvbG9zID0gcHJlZ19tYXRjaF9hbGwoJHNvbG9SRSwg JHRoaW5nLCAkc29sb3MpOw0KCQlmb3IgKCRzb2xvQ3RyID0gMDsgJHNvbG9DdHIgPCAkbnVt U29sb3M7ICRzb2xvQ3RyKyspIHsNCgkJCSRmaWVsZG5hbWUgPSAneycuJHNvbG9zWzFdWyRz b2xvQ3RyXS4nIycuJGN0ci4nfSc7DQoJCQkkZ3JhYmZpZWxkID0gJ3snLiRzb2xvc1sxXVsk c29sb0N0cl0uJ30nOw0KCQkJJHJlcGxhY2VtZW50c1skZmllbGRuYW1lXSA9ICRyZXBsYWNl bWVudHNbJGdyYWJmaWVsZF07DQoJCX0NCg0KCQlpZiAoJGRlYnVnKSB7DQoJCQllY2hvICIr KyBSRVBMQUNFTUVOVCAjJGN0ciArKyI7DQoJCQlkbXAoJHJlcGxhY2VtZW50cyk7DQoJCX0N CgkJLy8gSW4gY29sbGF0ZSBtb2RlIHRoZSBmb3JtIGlzIG9ubHkgcGFyc2VkIGF0IHRoZSBl bmQ6IGJ1aWxkIGEgY29sbG9zYWwgbXVsdGktZGltZW5zaW9uIGFycmF5IG9mIGFsbCBpdGVt cyBoZXJlDQoJCWlmICgkY29sbGF0ZSkgew0KCQkJZm9yZWFjaCAoJHJlcGxhY2VtZW50cyBh cyAkZGVmTmFtZSA9PiAkZGVmVmFsKSB7DQoJCQkJJGNvbGxhdGlvbnNbJGRlZk5hbWVdW10g PSAkZGVmVmFsOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJJG91dFtdID0gcGFyc2Uoc3RydHIo JHRoaW5nLCAkcmVwbGFjZW1lbnRzKSk7DQoJCX0NCg0KCQkkY3RyKys7DQoJfQ0KDQoJLy8g SGFuZGxlIHF1b3Rpbmcgb2YgY29sbGF0aW9ucw0KCWlmICgkY29sbGF0ZSkgew0KCQlmb3Jl YWNoICgkY29sbGF0aW9ucyBhcyAkaXRlbSA9PiAkbGlzdCkgew0KCQkJLy8gUXVvdGUgdGhl IGxpc3RzIGlmIHJlcXVpcmVkDQoJCQkkbGlzdCA9IChlbXB0eSgkcXVvdGVzKSB8fCBpbl9h cnJheSgkaXRlbSwgJHF1b3RlcykpID8gZG9BcnJheSgkbGlzdCwgJ2RvUXVvdGUnKSA6ICRs aXN0Ow0KCQkJJGNvbGxhdGlvbnNbJGl0ZW1dID0gaW1wbG9kZSgkb3V0ZGVsaW0sICRsaXN0 KTsNCgkJfQ0KCQlpZiAoJGRlYnVnKSB7DQoJCQllY2hvICIrKyBDT0xMQVRJT05TICsrIjsN CgkJCWRtcCgkY29sbGF0aW9ucyk7DQoJCX0NCgkJJG91dFtdID0gcGFyc2Uoc3RydHIoJHRo aW5nLCAkY29sbGF0aW9ucykpOw0KCX0NCg0KCXJldHVybiBkb1dyYXAoJG91dCwgJHdyYXB0 YWcsICRicmVhaywgJGNsYXNzKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gVGFrZSBhbiBhcnJh eSBvZiBuYW1lLXZhbHVlIHBhaXJzLCBwcm9jZXNzIGFuZCBjb21iaW5lIHRoZW0gd2l0aCB3 aGF0IGlzIGFscmVhZHkgaW4gJG91dC4NCi8vIEhhbmRsZSBzdWItbGlzdHMgYXMgd2VsbA0K ZnVuY3Rpb24gc21kX2VhY2hfZ3JhYigkaXRlbSwgJG91dD0nJywgJHByb2M9JycsICRkbG09 JywnLCAkc3ViPTApIHsNCgkkb3V0ID0gKCRvdXQpID8gJG91dCA6IGFycmF5KCk7DQoJJHBy b2MgPSBkb19saXN0KCRwcm9jLCAkZGxtKTsNCgkkcHJvYyA9ICgkcHJvY1swXSA9PSAiIikg PyBhcnJheSgpIDogJHByb2M7DQoNCgl3aGlsZSAobGlzdCgka2V5LCAkdmFsKSA9IGVhY2go JGl0ZW0pKSB7DQoJCSR2YWwgPSAoaXNfYXJyYXkoJHZhbCkpID8gam9pbigkZGxtLCAkdmFs KSA6ICR2YWw7DQoJCWlmICgkc3ViKSB7DQoJCQlpZiAoJHN1YiA9PSAxKSB7DQoJCQkJLy8g QWRkIHRoZSBjb21wbGV0ZSBlbGVtZW50IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHNwbGl0IGl0 DQoJCQkJZm9yZWFjaCgkcHJvYyBhcyAkb3ApIHsNCgkJCQkJJHZhbCA9ICRvcCgkdmFsKTsN CgkJCQl9DQoJCQkJJG91dFska2V5XSA9ICR2YWw7DQoJCQl9DQoJCQkkdmFscyA9IGRvX2xp c3QoJHZhbCwgJGRsbSk7DQoJCQkkY3RyID0gMTsNCgkJCWZvcmVhY2ggKCR2YWxzIGFzICRz dWJ2YWwpIHsNCgkJCQlmb3JlYWNoKCRwcm9jIGFzICRvcCkgew0KCQkJCQkkc3VidmFsID0g JG9wKCRzdWJ2YWwpOw0KCQkJCX0NCgkJCQkkb3V0WyRrZXkuJ18nLiRjdHIrK10gPSAkc3Vi dmFsOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJZm9yZWFjaCgkcHJvYyBhcyAkb3ApIHsNCgkJ CQkkdmFsID0gJG9wKCR2YWwpOw0KCQkJfQ0KCQkJJG91dFska2V5XSA9ICR2YWw7DQoJCX0N Cgl9DQoJcmV0dXJuICRvdXQ7DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7 czoxOiI1IjtzOjQ6ImhlbHAiO3M6MTY5Mjk6Igk8cD48ZGl2IGlkPSJzbWRfaGVscCI+PC9w PgoKCTxoMSBpZD0idG9wIj5zbWRfZWFjaDwvaDE+CgoJPGgyIGlkPSJmZWF0dXJlcyI+RmVh dHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+SXRlcmF0ZSBvdmVyIGFueSB2YXJpYWJsZXMgeW91 IGNhbiBnZXQgeW91ciBoYW5kcyBvbi4gVGhlc2UgY2FuIGJlIGFueXRoaW5nIGZyb20gdGhl IGN1cnJlbnQgYXJ0aWNsZSAoY3VzdG9tIGZpZWxkLCBhcnRpY2xlX2ltYWdlLCBldGMpLCBh bnkgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4vU0VSVkVSIHZhcmlhYmxlIG9yIGNv b2tpZSAoc3ViamVjdCB0byBub3JtYWwgZXNjYXBpbmcgcnVsZXMpIG9yIGFueSA8Y29kZT4m bHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPjwvbGk+CgkJPGxpPkluY2x1ZGUgb3IgZXhj bHVkZSBwYXJ0aWN1bGFyIHZhcmlhYmxlcywgb3Igb25seSBjaG9vc2UgdmFyaWFibGVzIHRo YXQgbWF0Y2ggcGFydGljdWxhciB0ZXh0PC9saT4KCQk8bGk+SXRlcmF0ZSBvdmVyIHN1YnNl dHMgb2YgZGF0YSBjb250YWluZWQgaW4gYW55IGZpZWxkPC9saT4KCQk8bGk+Q2hvb3NlIHRv IHByb2Nlc3MgZWFjaCB2YXJpYWJsZSBvbmUgYnkgb25lIHdpdGggYSBmb3JtLCBvciBjb2xs ZWN0IHRoZW0gdG9nZXRoZXIgaW50byBhIGRlbGltaXRlZCBsaXN0IHRvIGJlIHByb2Nlc3Nl ZCBvbmx5IG9uY2UgYnkgdGhlIGZvcm08L2xpPgoJCTxsaT5Qcm92aWRlcyBmcmVlIGhlYWRh Y2hlcyBpZiB5b3UgZG9uJiM4MjE3O3Qga2VlcCB5b3VyIHdpdHMgYWJvdXQgeW91PC9saT4K CTwvdWw+CgoJPGgyIGlkPSJhdXRob3IiPkF1dGhvcjwvaDI+CgoJPHA+PGEgaHJlZj0iaHR0 cDovL3N0ZWZkYXdzb24uY29tL2NvbW1lbnRGb3JtIj5TdGVmIERhd3NvbjwvYT4uIEZvciBv dGhlciBzb2Z0d2FyZSBieSBtZSwgb3IgdG8gbWFrZSBhIGRvbmF0aW9uLCBzZWUgdGhlIDxh IGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4uPC9w PgoKCTxoMiBpZD0iaW5zdGFsbCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gy PgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDov L3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzk4Ni9zbWRfZWFjaCI+dGV4dHBhdHRlcm4ub3Jn PC9hPiwgb3IgdGhlIHNvZnR3YXJlIHBhZ2UgYWJvdmUsIHBhc3RlIHRoZSBjb2RlIGludG8g dGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMg cGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVm PSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9Mjc0NjQi PmZvcnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBvcnQgYSBidWcvZmVh dHVyZSByZXF1ZXN0LjwvcD4KCgk8cD5UbyByZW1vdmUgdGhlIHBsdWdpbiwgc2ltcGx5IGRl bGV0ZSBpdCBmcm9tIHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyB0YWIuPC9wPgoKCTxoMiBpZD0i dXNhZ2UiPlVzYWdlPC9oMj4KCgk8cD5Gb3Igc29tZSBpZGVhcyBvbiB1c2FnZSBzY2VuYXJp b3MsIHNlZSB0aGUgPGEgaHJlZj0iI2V4YW1wbGVzIj5leGFtcGxlczwvYT4uPC9wPgoKCTxo MyBjbGFzcz0idGFnICIgaWQ9InNtZF9lYWNoIj5zbWRfZWFjaDwvaDM+CgoJPHAgY2xhc3M9 InRhZy1zdW1tYXJ5Ij5QbGFjZSBvbmUgb3IgbW9yZSBzbWRfZWFjaCB0YWdzIGluIGFueSBh cnRpY2xlLCBwYWdlIG9yIGZvcm0sIHN1cHBseSBhbnkgb2YgdGhlIGZvbGxvd2luZyBvcHRp b25zIHRvIGNvbmZpZ3VyZSBpdCBhbmQgdXNlIGEgZm9ybSAob3IgY29udGFpbmVyKSB0byBk ZWZpbmUgd2hhdCB0byBkbyB3aXRoIGVhY2ggbWF0Y2hpbmcgdmFyaWFibGUuPC9wPgoKCTxw PkluIGEgbnV0c2hlbGwsIGl0IGdyYWJzIGV2ZXJ5IGFycmF5IGZyb20gdGhlIHBsYWNlcyB5 b3Ugc3BlY2lmeSwgYWxsb3dzIHlvdSB0byBmaWx0ZXIgdGhlIGFycmF5IHdpdGggbWF0Y2hl cyBvciBzcGVjaWZpYyBpdGVtcywgdGhlbiBhc3NpZ25zIGVhY2ggc3VjY2Vzc2l2ZSBuYW1l L3ZhbHVlIHBhaXIgdG8gdHdvIHJlcGxhY2VtZW50IHRhZ3MgdGhhdCB5b3UgY2FuIHVzZSBp biB5b3VyIGZvcm0gdG8gZG8gc3R1ZmYuIFlvdSBjb3VsZCBzaW1wbHkgZGlzcGxheSB0aGUg dmFsdWVzIG9yIHBvcHVsYXRlIG5ldyB0YWJsZXMgd2l0aCB0aGVtLCBwbHVnIHZhbHVlcyBp bnRvIHF1ZXJpZXMsIGNyZWF0ZSBzbWRfdmFycywgdGVzdCB0aGUgdmFsdWVzIHdpdGggc21k X2lmLCB5b3UgbmFtZSBpdC48L3A+CgoJPGg0IGlkPSJhdHRyaWJ1dGVzIj5BdHRyaWJ1dGVz PC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj50eXBlPC9zcGFuPiA6IHdo ZXJlIHRvIGxvb2sgZm9yIHZhcmlhYmxlcy4gVGhleSBjYW4gYmUgY29tYmluZWQgaW50byBh IGNvbW1hLXNlcGFyYXRlZCBsaXN0IGlmIHlvdSB3aXNoIHRvIHNlYXJjaCBtb3JlIHRoYW4g b25lIHBsYWNlIGF0IG9uY2UuIE9wdGlvbnMgYXJlOgoJPHVsPgoJCTxsaT48Y29kZT5maWVs ZDwvY29kZT4gOiBhIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGFydGljbGUgZmll bGQgKHRoZSBkZWZhdWx0KTwvbGk+CgkJPGxpPjxjb2RlPnVybHZhcjwvY29kZT4gOiB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4sIGUuZy4gbmFtZTE9dmFsJmFtcDtuYW1l Mj12YWwmYW1wOyYjODIzMDs8L2xpPgoJCTxsaT48Y29kZT5zdnJ2YXI8L2NvZGU+IDogdGhl IHNlcnZlciBlbnZpcm9ubWVudCB2YXJpYWJsZXM8L2xpPgoJCTxsaT48Y29kZT5jb29raWU8 L2NvZGU+IDogYW55IHVzZXIgY29va2llczwvbGk+CgkJPGxpPjxjb2RlPnR4cHZhcjwvY29k ZT4gOiBhIHZhbHVlIGZyb20gYW55IDxjb2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8L2Nv ZGU+IHRhZzwvbGk+CgkJPGxpPjxjb2RlPmZpeGVkPC9jb2RlPiA6IHNwZWNpZnkgeW91ciBv d24gbGlzdCBvZiB2YXJpYWJsZXMgdG8gaW5qZWN0IGludG8gdGhlIG1peCAodmlhIDxjb2Rl PmluY2x1ZGU8L2NvZGU+KTwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5pbmNsdWRlPC9zcGFuPiA6IGJhc2UgbGlzdCBvZiB2YXJpYWJsZSBuYW1lcyB5b3Ug ZGVmaW5pdGVseSB3YW50IHRvIGJlIHJldHVybmVkIGluIHRoZSByZXN1bHQuIElmIHlvdSBh cmUgdXNpbmcgPGNvZGU+Zml4ZWQ8L2NvZGU+IGFzIG9uZSBvZiB0aGUgPGNvZGU+dHlwZTwv Y29kZT5zIHlvdSBjYW4gYWRkIHlvdXIgb3duIHZhcmlhYmxlcyBoZXJlLCBkZWxpbWl0ZWQg YnkgPGNvZGU+cGFyYW1kZWxpbTwvY29kZT4uIEZvciBleGFtcGxlIDxjb2RlPmluY2x1ZGU9 JnF1b3Q7a2V5d29yZHMsIG15X3Zhcjpub3J0aDpzb3V0aDplYXN0Ondlc3QmcXVvdDs8L2Nv ZGU+IHdvdWxkIGluY2x1ZGUgdGhlIDxjb2RlPmtleXdvcmRzPC9jb2RlPiBhcnRpY2xlIGZp ZWxkIGFuZCBjcmVhdGUgPGNvZGU+bXlfdmFyPC9jb2RlPiwgZ2l2aW5nIGl0IGEgdmFsdWUg b2YgJiM4MjIwO25vcnRoLCBzb3V0aCwgZWFzdCwgd2VzdCYjODIyMTsuIE5vdGUgdGhhdCBp ZiB5b3UgYXJlIHVzaW5nIGEgY3VzdG9tIGZpZWxkLCBpdCBpcyBsaWtlbHkgdG8gaGF2ZSBi ZWVuIGNvbnZlcnRlZCB0byBhbGwgbG93ZXIgY2FzZSBieSBUZXh0cGF0dGVybiwgc28geW91 IHNob3VsZCB1c2UgYW4gYWxsIGxvd2VyIGNhc2UgbmFtZSBoZXJlPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPmV4Y2x1ZGU8L3NwYW4+IDogYmFzZSBsaXN0IG9mIHZhcmlhYmxl IG5hbWVzIHlvdSBkZWZpbml0ZWx5IGRvIG5vdCB3YW50IHRvIGJlIHJldHVybmVkIGluIHRo ZSByZXN1bHQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+bWF0Y2g8L3NwYW4+IDog bGlzdCBvZiB0ZXh0IHN0cmluZ3MgdG8gc2VhcmNoIGZvciB0byByZWZpbmUgdGhlIHJldHVy bmVkIHZhcmlhYmxlcy4gQnkgZGVmYXVsdCB0aGlzIHdpbGwgbWF0Y2ggYWdhaW5zdCA8ZW0+ ZXZlcnk8L2VtPiB2YXJpYWJsZSBpbiBldmVyeSBsb2NhdGlvbiB5b3Ugc3BlY2lmaWVkIGlu IDxjb2RlPnR5cGU8L2NvZGU+LiBJdCBpcyBhdXRvbWF0aWNhbGx5IHdpbGQgc28gd2lsbCBt YXRjaCBwb3J0aW9ucyBvZiBhIHZhcmlhYmxlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPm1hdGNod2l0aDwvc3Bhbj4gOiBkZWZhdWx0cyB0byA8Y29kZT5uYW1lPC9jb2RlPiB3 aGljaCBsb29rcyBvbmx5IGF0IHRoZSB2YXJpYWJsZSYjODIxNztzIG5hbWUgZm9yIGEgbWF0 Y2guIENhbiBiZSBzZXQgdG8gPGNvZGU+dmFsdWU8L2NvZGU+IHRvIGxvb2sgYXQgaXRzIHZh bHVlIG9yIDxjb2RlPm5hbWUsIHZhbHVlPC9jb2RlPiB0byBsb29rIGluIGJvdGggZm9yIG1h dGNoZXM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+c3Vic2V0PC9zcGFuPiA6IGlm IHlvdSB0aGluayB5b3VyIHZhcmlhYmxlcyBhcmUgZ29pbmcgdG8gY29udGFpbiBsaXN0cyB0 aGVtc2VsdmVzLCBzcGVjaWZ5IDxjb2RlPnN1YnNldD0mcXVvdDsxJnF1b3Q7PC9jb2RlPiB0 byBoYXZlIHRoZSBwbHVnaW4gYWRkIGVhY2ggcHNldWRvLXZhcmlhYmxlIHRvIHRoZSBhcnJh eS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBhcnRpY2xlX2ltYWdlIGZpZWxkIGNvbnRhaW5lZCA8 Y29kZT4xNCwgNiwgMTcsIDMsIDk8L2NvZGU+IHlvdSB3b3VsZCBnZXQgZml2ZSBtb3JlIHZh cmlhYmxlcyBjYWxsZWQgPGNvZGU+YXJ0aWNsZV9pbWFnZV8xPC9jb2RlPiAodmFsdWU6MTQp LCA8Y29kZT5hcnRpY2xlX2ltYWdlXzI8L2NvZGU+ICh2YWx1ZTogNiksIGFuZCBzbyBvbi48 ZGl2IGNsYXNzPSJicmVhayI+Tm90ZSB0aGF0IHlvdSB3aWxsIGFsc28gZ2V0IHRoZSBmdWxs IGFydGljbGVfaW1hZ2UgKGFuZCBhbGwgb3RoZXIgbWF0Y2hpbmcgbm9uLXN1YnNldCB2YXJz KSBpbmNsdWRlZC4gSWYgeW91IHdpc2ggdG8gPGVtPm9ubHk8L2VtPiBzZWUgdmFyaWFibGVz IHRoYXQgY29udGFpbiBzdWJsaXN0cyBvZiBkYXRhLCB1c2UgPGNvZGU+c3Vic2V0PSZxdW90 OzImcXVvdDs8L2NvZGU+PC9kaXY+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmZv cm08L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGZvcm0gdG8g ZXhlY3V0ZSBmb3IgZXZlcnkgbWF0Y2hpbmcgdmFyaWFibGUuIElmIG5vdCBzcGVjaWZpZWQs IHRoZSBjb250YWluZXIgd2lsbCBiZSB1c2VkLiBJZiB0aGVyZSYjODIxNztzIG5vIGNvbnRh aW5lciwgYSBkZWZhdWx0IGZvcm0gd2l0aCBqdXN0IHRoZSB7dmFyX3ZhbHVlfSBpcyB1c2Vk PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNvbGxhdGU8L3NwYW4+IDogcHJldmVu dCB0aGUgPGNvZGU+Zm9ybTwvY29kZT4gYmVpbmcgZXhlY3V0ZWQgZm9yIGV2ZXJ5IHZhcmlh YmxlLiBJbnN0ZWFkLCBjb2xsZWN0IHRoZSB2YXJpYWJsZSBuYW1lcyBpbnRlcm5hbGx5IGFu ZCB0aGVuIHByb2Nlc3MgdGhlIGVudGlyZSBsaXN0IGJ5IHRoZSBmb3JtIG9uY2Ugb25seSwg YWZ0ZXIgYWxsIHZhcmlhYmxlcyBoYXZlIGJlZW4gcmVhZC4gU2VlIDxhIGhyZWY9IiNjb2xs YXRlIj5jb2xsYXRlIG1vZGU8L2E+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRl bGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGZvciBzcGVjaWZ5aW5nIHBsdWdp biBvcHRpb25zLiBEZWZhdWx0cyB0byBjb21tYSAoLCk8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+cGFyYW1kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRvIHVzZSBmb3Ig c3BlY2lmeWluZyBpbnRlci12YWx1ZSBwbHVnaW4gb3B0aW9ucyAoZm9yIGV4YW1wbGUgaW4g Y29sbGF0ZSBtb2RlKS4gRGVmYXVsdHMgdG8gY29sb24gKDopPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPm91dGRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIHRv IHNlcGFyYXRlIGVhY2ggdmFyaWFibGUgZGlzcGxheWVkIGluIGNvbGxhdGUgbW9kZTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj53cmFwdGFnPC9zcGFuPiA6IHRoZSAoWClIVE1M IHRhZyB0byB3cmFwIHRoZSBmb3JtIGluLCBlLmcuIDxjb2RlPndyYXB0YWc9JnF1b3Q7dWwm cXVvdDs8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFu PiA6IHRoZSAoWClIVE1MIHRhZyB0byB3cmFwIGVhY2ggY2FsbCB0byB0aGUgZm9ybSBpbiwg ZS5nLiA8Y29kZT5icmVhaz0mcXVvdDtsaSZxdW90OzwvY29kZT48L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRubSI+Y2xhc3M8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5D U1M8L3NwYW4+IGNsYXNzIG5hbWUgdG8gZ2l2ZSB0byB0aGUgd3JhcHRhZzwvbGk+Cgk8L3Vs PgoKCTxoNCBjbGFzcz0iYXR0cyAiIGlkPSJyZXBzIj5SZXBsYWNlbWVudCB0YWdzPC9oND4K Cgk8cD5Gb3IgZXZlcnkgbWF0Y2hpbmcgdmFyaWFibGUsIHlvdSBjYW4gdXNlIHRoZSBmb2xs b3dpbmcgcmVwbGFjZW1lbnQgdGFncyBpbiB5b3VyIGZvcm06PC9wPgoKCTx1bD4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPnt2YXJfbmFtZX08L3NwYW4+IDogdGhlIHZhcmlhYmxlIG5h bWU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3Zhcl92YWx1ZX08L3NwYW4+IDog dGhlIHZhcmlhYmxlJiM4MjE3O3MgdmFsdWU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+e3Zhcl9jb3VudGVyfTwvc3Bhbj4gOiB0aGUgdmFyaWFibGUmIzgyMTc7cyBwb3NpdGlv biBpbiB0aGUgbGlzdCAoMSwgMiwgMyYjODIzMDspPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPnt2YXJfdG90YWx9PC9zcGFuPiA6IHRoZSB0b3RhbCBudW1iZXIgb2YgbWF0Y2hp bmcgdmFyaWFibGVzIGJlaW5nIGl0ZXJhdGVkPC9saT4KCTwvdWw+CgoJPHA+VGhlc2UgY2Fu IGJlIHVzZWQgZm9yIHdoYXRldmVyIGRldmlvdXMgbWVhbnMgeW91IHNlZSBmaXQuIGUuZy48 L3A+CgoJPHVsPgoJCTxsaT48Y29kZT4mbHQ7dHhwOmFydGljbGVfY3VzdG9tIGlkPSZxdW90 O3t2YXJfdmFsdWV9JnF1b3Q7IC8mZ3Q7PC9jb2RlPiB3aWxsIGRpc3BsYXkgdGhlIGdpdmVu IGFydGljbGUgZm9yIGVhY2ggbWF0Y2hpbmcgSUQuPC9saT4KCQk8bGk+PGNvZGU+Jmx0O3R4 cDphcnRpY2xlIGtleXdvcmRzPSZxdW90O3t2YXJfdmFsdWV9JnF1b3Q7IC8mZ3Q7PC9jb2Rl PiBpbiBjb2xsYXRlIG1vZGUsIG1pZ2h0IGRpc3BsYXkgdGhlIGdpdmVuIGFydGljbGVzIHRo YXQgaGF2ZSBrZXl3b3JkcyBtYXRjaGluZyBldmVyeSB1c2VyLXN1Ym1pdHRlZCBzZWFyY2gg dGVybTwvbGk+CgkJPGxpPjxjb2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3t2YXJf Y291bnRlcn0mcXVvdDsgb3BlcmF0b3I9JnF1b3Q7ZXEmcXVvdDsgdmFsdWU9JnF1b3Q7e3Zh cl90b3RhbH0mcXVvdDsmZ3Q7VGhpcyBpcyB0aGUgbGFzdCBpdGVtJmx0Oy90eHA6c21kX2lm Jmd0OzwvY29kZT48L2xpPgoJPC91bD4KCgk8aDMgaWQ9ImNvbGxhdGUiPkNvbGxhdGUgbW9k ZTwvaDM+CgoJPHA+SW5zdGVhZCBvZiBwYXJzaW5nIGVhY2ggdmFyaWFibGUgd2l0aCB0aGUg Zm9ybS9jb250YWluZXIsIHlvdSBtYXkgZWxlY3QgdG8gaW50ZXJuYWxseSAmIzgyMTY7Y29s bGVjdCYjODIxNzsgYWxsIG1hdGNoaW5nIHZhcmlhYmxlcyBhbmQgb3V0cHV0IHRoZW0gaW4g b25lIGJpZyBsaXN0IHZpYSB0aGUgZm9ybS4gVGh1cywgdGhlIGZvcm0gaXMgb25seSBjYWxs ZWQgb25jZSBhdCB0aGUgZW5kLiBJdCBtYXkgc2VlbSB1c2VsZXNzIGJ1dCBpdCBjYW4gYmUg b2YgdmFsdWUgZm9yIGNyZWF0aW5nIGxpc3RzIG9mIHRoaW5ncyBmcm9tIGVhY2ggbWF0Y2hp bmcgdmFyaWFibGUuPC9wPgoKCTxwPlN0YXJ0aW5nIHNpbXBseSwgPGNvZGU+Y29sbGF0ZT0m cXVvdDsxJnF1b3Q7PC9jb2RlPiBzd2l0Y2hlcyBjb2xsYXRpb24gbW9kZSBvbi4gSWYgdGhl IHBsdWdpbiBtYXRjaGVkIDMgdmFyaWFibGVzIGZyb20geW91ciBhcnRpY2xlIGFuZCB5b3Ug d2VyZSB0byB1c2UgdGhlIHJlcGxhY2VtZW50IHRhZ3MgaW4geW91ciBmb3JtIGxpa2UgdGhp czo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5UaGUgbWF0 Y2hpbmcgdmFyczoge3Zhcl9uYW1lfSA9IHt2YXJfdmFsdWV9CjwvY29kZT48L3ByZT4KCgk8 cD55b3UgbWlnaHQgZ2V0IHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+VGhlIG1hdGNoaW5nIHZhcnM6IHNlY3Rpb24sY2F0ZWdvcnkxLGNhdGVn b3J5MiA9IGFydGljbGUsbmV3cyxwb2xpdGljcwo8L2NvZGU+PC9wcmU+CgoJPHA+Q29tcGFy ZSB0aGF0IHdpdGggdGhlIHJlZ3VsYXIgbW9kZSwgd2hpY2ggb3V0cHV0czo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5UaGUgbWF0Y2hpbmcgdmFyczog c2VjdGlvbiA9IGFydGljbGUKVGhlIG1hdGNoaW5nIHZhcnM6IGNhdGVnb3J5MSA9IG5ld3MK VGhlIG1hdGNoaW5nIHZhcnM6IGNhdGVnb3J5MiA9IHBvbGl0aWNzCjwvY29kZT48L3ByZT4K Cgk8cD5Tb21ldGltZXMgaXQmIzgyMTc7cyB1c2VmdWwgdG8gYmUgYWJsZSB0byBwdXQgcXVv dGVzIGFyb3VuZCBlYWNoIGl0ZW07IHlvdSBjYW4gdGVsbCBjb2xsYXRlIG1vZGUgdG8gZG8g dGhhdDo8L3A+CgoJPHA+PGNvZGU+Y29sbGF0ZT0mcXVvdDtxdW90ZTp7dmFyX3ZhbHVlfSZx dW90OzwvY29kZT48L3A+CgoJPHA+WW91IHdvdWxkIHRoZW4gZ2V0OjwvcD4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPlRoZSBtYXRjaGluZyB2YXJzOiBzZWN0 aW9uLGNhdGVnb3J5MSxjYXRlZ29yeTIgPSAmIzM5O2FydGljbGUmIzM5OywmIzM5O25ld3Mm IzM5OywmIzM5O3BvbGl0aWNzJiMzOTsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoZSBkZWxpbWl0 ZXIgKGEgY29tbWEgaW4gdGhpcyBjYXNlKSBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSA8 Y29kZT5vdXRkZWxpbTwvY29kZT4gYXR0cmlidXRlLiBZb3UgY2FuIHF1b3RlIG1vcmUgdGhh biBvbmUgdGhpbmcgYXQgb25jZSBieSBzcGVjaWZ5aW5nIHRoZSBpdGVtcyBhcyBhIGRlbGlt aXRlZCBsaXN0OjwvcD4KCgk8cD48Y29kZT5jb2xsYXRlPSZxdW90O3F1b3RlOnt2YXJfbmFt ZX06e3Zhcl92YWx1ZX0mcXVvdDs8L2NvZGU+PC9wPgoKCTxwPmJ1dCB0aGVyZSYjODIxNztz IG5vdCBtdWNoIHBvaW50IGJlY2F1c2UgdGhlcmUgYXJlIG9ubHkgdHdvIHJlcGxhY2VtZW50 IHRhZ3MgYW5kIHlvdSBjYW4gdGh1cyB1c2UgdGhlIHNob3J0Y3V0IDxjb2RlPmNvbGxhdGU9 JnF1b3Q7cXVvdGUmcXVvdDs8L2NvZGU+IHRvIHF1b3RlIHRoZW0gYWxsLiBUaGUgZGVsaW1p dGVyIHVzZWQgYmV0d2VlbiBpdGVtcyAodGhlIGNvbG9uKSBjYW4gYmUgb3ZlcnJpZGVuIHdp dGggdGhlIDxjb2RlPnBhcmFtZGVsaW08L2NvZGU+IGF0dHJpYnV0ZS48L3A+CgoJPHA+VGhl IHNlY29uZCBzcGVjaWFsIGZlYXR1cmUgb2YgY29sbGF0aW9uIG1vZGUgaXMgdGhhdCB5b3Ug ZG8gbm90IGhhdmUgdG8gYWx3YXlzIG91dHB1dCB0aGUgZW50aXJlIGxpc3QuIFlvdSBjYW4g Z3JhYiBpbmRpdmlkdWFsIGVudGl0aWVzIGZyb20gd2l0aGluIHRoZSBpbnRlcm5hbCBhcnJh eSBieSB1c2luZyB0aGUgJiM4MjE2OyMmIzgyMTc7IG5vdGF0aW9uIGluIHlvdXIgZm9ybTo8 L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj57dmFyX3ZhbHVl fSBtaWdodCBvdXRwdXQgJiMzOTthcnRpY2xlJiMzOTssJiMzOTtuZXdzJiMzOTssJiMzOTtw b2xpdGljcyYjMzk7IChhcyBiZWZvcmUpCnt2YXJfdmFsdWUjMX0gd291bGQgb25seSBvdXRw dXQgYXJ0aWNsZQp7dmFyX25hbWUjM30gd291bGQgb25seSBvdXRwdXQgY2F0ZWdvcnkyCjwv Y29kZT48L3ByZT4KCgk8cD5Ob3RlIHRoYXQgd2hlbiBwdWxsaW5nIG91dCBpbmRpdmlkdWFs IGVudHJpZXMgdGhleSA8c3Ryb25nPmRvIG5vdDwvc3Ryb25nPiBnZXQgcXVvdGVzIGFkZGVk IHRvIHRoZW0sIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB5b3UgdXNlZCA8Y29kZT5xdW90ZTwv Y29kZT4gb3Igbm90LiBUaGlzIGlzIGJlY2F1c2UgaXQgaXMgYSBzaW5nbGUgaXRlbSBzbyB5 b3UgY2FuIGVhc2lseSBwdXQgdGhlIHF1b3RlcyBpbiB0aGUgZm9ybSBpdHNlbGYgKHZpejog PGNvZGU+JnF1b3Q7e3Zhcl9uYW1lIzJ9JnF1b3Q7PC9jb2RlPik8L3A+CgoJPGgyIGlkPSJl eGFtcGxlcyI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE8L2gzPgoK CTxwPkRpc3BsYXkgZWFjaCBhcnRpY2xlIGltYWdlIGZyb20gYSBjb21tYS1zZXBhcmF0ZWQg bGlzdCBvZiBJRHMgaW4gdGhlIEFydGljbGUgSW1hZ2UgZmllbGQuPC9wPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfZWFjaCBpbmNsdWRl PSZxdW90O2FydGljbGVfaW1hZ2UmcXVvdDsgc3Vic2V0PSZxdW90OzImcXVvdDsmZ3Q7CiAg Jmx0O3R4cDppbWFnZSBpZD0mcXVvdDt7dmFyX3ZhbHVlfSZxdW90OyAvJmd0OwombHQ7L3R4 cDpzbWRfZWFjaCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI8 L2gzPgoKCTxwPkRpc3BsYXkgZWFjaCBhcnRpY2xlIGltYWdlIGZyb20gYSBjb21tYS1zZXBh cmF0ZWQgbGlzdCBvZiBJRHMgaW4gdGhlIEFydGljbGUgSW1hZ2UgZmllbGQsIGFuZCBhbHNv IGFsbG93IElEcyB0byBiZSBnaXZlbiBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwv c3Bhbj4gbGluZSB2aWEgdGhlIHZhcmlhYmxlIG5hbWUgPGNvZGU+bXlfaW1hZ2VfbGlzdDwv Y29kZT4gOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZs dDt0eHA6c21kX2VhY2ggdHlwZT0mcXVvdDtmaWVsZCwgdXJsdmFyJnF1b3Q7CiAgICAgaW5j bHVkZT0mcXVvdDthcnRpY2xlX2ltYWdlLCBteV9pbWFnZV9saXN0JnF1b3Q7CiAgICAgc3Vi c2V0PSZxdW90OzImcXVvdDsgZm9ybT0mcXVvdDt2YXJvdXQmcXVvdDsgLyZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPkFuZCBpbiBmb3JtIDxjb2RlPnZhcm91dDwvY29kZT46PC9wPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDppbWFnZSBpZD0m cXVvdDt7dmFyX3ZhbHVlfSZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJl ZzMiPkV4YW1wbGUgMzwvaDM+CgoJPHA+VGhpcyBpcyBzaW1wbHkgdG8gaGlnaGxpZ2h0IHRo ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YXJpb3VzIG1hdGNoaW5nIG1vZGVzLiBMZXQm IzgyMTc7cyB0YWtlIGEgc2ltcGxlIGFydGljbGU6PC9wPgoKCTx1bD4KCQk8bGk+c2VjdGlv bjogYW5pbWFsczwvbGk+CgkJPGxpPnRpdGxlICh1cmxfdGl0bGUpIDogVGhlIGxpb24gKHRo ZS1saW9uKTwvbGk+CgkJPGxpPmNhdGVnb3J5MTogbWFtbWFsPC9saT4KCQk8bGk+Y2F0ZWdv cnkyOiBkYW5nZXJvdXM8L2xpPgoJCTxsaT5hcnRpY2xlX2ltYWdlOiAyNSwgMjgsIDEyPC9s aT4KCQk8bGk+a2V5d29yZHM6IGJpZywgY2F0LCBtYW5lLCBmdXIsIHRlZXRoLCByb2FyLCBj aG9tcCwgb3VjaDwvbGk+CgkJPGxpPmN1c3RvbTEgKCYjODIyMDtvcmlnaW4mIzgyMjE7KTog YWZyaWNhPC9saT4KCTwvdWw+CgoJPHA+VGhlcmUgYXJlIGEgd2hvbGUgaG9zdCBvZiBvdGhl ciB2YXJpYWJsZXMgKHN3aXRjaCBkZWJ1Zz0mIzgyMjA7MSYjODIyMTsgb24gdG8gc2VlIHRo ZW0gYWxsIGZvciB5b3VyIGNob3NlbiA8Y29kZT50eXBlPC9jb2RlPnMpIGJ1dCB3ZSYjODIx NztsbCBjb25jZW50cmF0ZSBvbiB0aGVzZSBmb3Igbm93IHRvIGtlZXAgdGhpbmdzIHNpbXBs ZS48L3A+CgoJPHRhYmxlPgoJCTx0cj4KCQkJPHRoPnRhZyBvcHRpb25zIDwvdGg+CgkJCTx0 aD52YXJzIHJldHVybmVkIDwvdGg+CgkJCTx0aD5yZW1hcmtzIDwvdGg+CgkJPC90cj4KCQk8 dHI+CgkJCTx0ZD4gbWF0Y2g9JiM4MjIwO2NhdCYjODIyMTsgPC90ZD4KCQkJPHRkPiBjYXRl Z29yeTEsIGNhdGVnb3J5MiA8L3RkPgoJCQk8dGQ+IGRlZmF1bHQgaXMgdG8gbWF0Y2ggbmFt ZSBvbmx5IDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gbWF0Y2g9JiM4MjIwO2NhdCYj ODIyMTsgbWF0Y2h3aXRoPSYjODIyMDtuYW1lLCB2YWx1ZSYjODIyMTsgPC90ZD4KCQkJPHRk PiBjYXRlZ29yeTEsIGNhdGVnb3J5Miwga2V5d29yZHMsIGlkX2tleXdvcmRzIDwvdGQ+CgkJ CTx0ZD4gbm93IGNoZWNrcyB2YWx1ZSBhcyB3ZWxsIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJ CTx0ZD4gbWF0Y2g9JiM4MjIwO2NhdCYjODIyMTsgaW5jbHVkZT0mIzgyMjA7YXJ0aWNsZV9p bWFnZSYjODIyMTsgPC90ZD4KCQkJPHRkPiBjYXRlZ29yeTEsIGNhdGVnb3J5MiwgYXJ0aWNs ZV9pbWFnZSA8L3RkPgoJCQk8dGQ+IGluY2x1ZGVzIGFyZSBhbHdheXMgc2VsZWN0ZWQgPC90 ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBtYXRjaD0mIzgyMjA7Y2F0JiM4MjIxOyBpbmNs dWRlPSYjODIyMDthcnRpY2xlX2ltYWdlLCBvcmlnaW4mIzgyMjE7IHN1YnNldD0mIzgyMjA7 MSYjODIyMTsgPC90ZD4KCQkJPHRkPiBjYXRlZ29yeTEsIGNhdGVnb3J5Miwgb3JpZ2luLCBh cnRpY2xlX2ltYWdlLCBhcnRpY2xlX2ltYWdlXzEsIGFydGljbGVfaW1hZ2VfMiwgYXJ0aWNs ZV9pbWFnZV8zIDwvdGQ+CgkJCTx0ZD4gbG9va2VkICYjODIyMDtpbnNpZGUmIzgyMjE7IGVh Y2ggdmFyIHRvIGZpbmQgYW55IGxpc3RzIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4g bWF0Y2g9JiM4MjIwO2NhdCYjODIyMTsgaW5jbHVkZT0mIzgyMjA7YXJ0aWNsZV9pbWFnZSwg b3JpZ2luJiM4MjIxOyBzdWJzZXQ9JiM4MjIwOzImIzgyMjE7IDwvdGQ+CgkJCTx0ZD4gYXJ0 aWNsZV9pbWFnZV8xLCBhcnRpY2xlX2ltYWdlXzIsIGFydGljbGVfaW1hZ2VfMyA8L3RkPgoJ CQk8dGQ+IHJldHVybiA8ZW0+b25seTwvZW0+IGRhdGEgc2V0cyB0aGF0IGNvbnRhaW4gbGlz dHMgYW5kIHJlbW92ZXMgdGhlIGFnZ3JlZ2F0ZSAoYmFzZSkgZW50cnkgPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPiBtYXRjaD0mIzgyMjA7Y2F0LCBhcnRpY2xlX2ltYWdlJiM4MjIx OyBtYXRjaHdpdGg9JiM4MjIwO25hbWUsdmFsdWUmIzgyMjE7IHN1YnNldD0mIzgyMjA7MiYj ODIyMTsgPC90ZD4KCQkJPHRkPiBhcnRpY2xlX2ltYWdlXzEsIGFydGljbGVfaW1hZ2VfMiwg YXJ0aWNsZV9pbWFnZV8zLCBrZXl3b3JkcywgaWRfa2V5d29yZHMgPC90ZD4KCQkJPHRkPiBj aGVja3MgYm90aCBuYW1lIGFuZCB2YWx1ZSBmb3IgZWFjaCBtYXRjaCB0ZXJtLCBhbmQgb25s eSBzaG93cyBpdGVtcyB0aGF0IGhhdmUgbGlzdHMgaW4gdGhlbSAoaWYgPGNvZGU+a2V5d29y ZHM8L2NvZGU+IGhlbGQganVzdCBvbmUgaXRlbSAmIzgyMjA7Y2F0JiM4MjIxOyBpdCB3b3Vs ZCA8ZW0+bm90PC9lbT4gYmUgZGlzcGxheWVkKSA8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoK CTxwPk5vdGUgdGhhdCBpZiB5b3UgYXJlIHVzaW5nIHRoaXMgdGFnIGluIGFuIGFydGljbGUs IHRoZSAmIzgyMTY7Ym9keSYjODIxNzsgbWF5IG1hdGNoIGJlY2F1c2UgaXQgY29udGFpbnMg dGhlIHNtZF9lYWNoIHRhZyB3aGljaCBjb250YWlucyB0aGUgdmVyeSBpbmZvcm1hdGlvbiB5 b3UgYXJlIG1hdGNoaW5nISBJbiB0aGlzIGNhc2UsIGFkZGluZyA8Y29kZT5leGNsdWRlPSZx dW90O2JvZHkmcXVvdDs8L2NvZGU+IHdpbGwgcmVtb3ZlIGl0IGZyb20gdGhlIHJlc3VsdHMu PC9wPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ8L2gzPgoKCTxwPkZyb20gYSBwYWdlIHRl bXBsYXRlLCBhbGxvdyB2aXNpdG9ycyB0byBkaXNwbGF5IGFueSBudW1iZXIgb2YgYXJ0aWNs ZXMuPC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O2Zv cm0gbmFtZT0mcXVvdDtzaG93X2FydHMmcXVvdDsgYWN0aW9uPSZxdW90Oy9teS9yZXN1bHRz L3BhZ2UmcXVvdDsmZ3Q7CiAgJmx0O3R4cDphcnRpY2xlX2N1c3RvbSBmb3JtPSZxdW90O2xp c3RfY2hlY2tzJnF1b3Q7CiAgICAgICBjYXRlZ29yeT0mcXVvdDthbmltYWxzJnF1b3Q7IGxp bWl0PSZxdW90Ozk5OSZxdW90OyAvJmd0OwogICZsdDtpbnB1dCB0eXBlPSZxdW90O3N1Ym1p dCZxdW90OyAvJmd0OwombHQ7L2Zvcm0mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Zb3VyIGZv cm0gPGNvZGU+bGlzdF9jaGVja3M8L2NvZGU+IHNpbXBseSBkaXNwbGF5cyB0aGUgYXJ0aWNs ZSB0aXRsZSBhbmQgYSBjaGVja2JveDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUg Y2xhc3M9ImJsb2NrIj4mbHQ7bGkmZ3Q7CiZsdDt0eHA6dGl0bGUgLyZndDsmbHQ7aW5wdXQg dHlwZT0mcXVvdDtjaGVja2JveCZxdW90OwogICAgIG5hbWU9JnF1b3Q7YXJ0aWNsZV9saXN0 c1tdJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7Jmx0O3R4cDphcnRpY2xlX2lkIC8mZ3Q7JnF1 b3Q7IC8mZ3Q7CiZsdDsvbGkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaGVuIHRoZSB1c2Vy IHN1Ym1pdHMgdGhlIGZvcm0gd2UgY2FuIHVzZSBzbWRfZWFjaCB0byBmaW5kIHdoaWNoIGNo ZWNrYm94ZXMgaGF2ZSBiZWVuIGNsaWNrZWQgYW5kIHNob3cgdGhlIHJlbGV2YW50IGFydGlj bGVzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0 eHA6c21kX2VhY2ggdHlwZT0mcXVvdDt1cmx2YXImcXVvdDsKICAgICBtYXRjaD0mcXVvdDth cnRpY2xlX2xpc3RzJnF1b3Q7IHN1YnNldD0mcXVvdDsyJnF1b3Q7Jmd0OwogICZsdDt0eHA6 YXJ0aWNsZV9jdXN0b20gaWQ9JnF1b3Q7e3Zhcl92YWx1ZX0mcXVvdDsgLyZndDsKJmx0Oy90 eHA6c21kX2VhY2gmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5BbHRlcm5hdGl2ZWx5LCBpZiB5 b3UgYXJlIHVzaW5nIGEgY29weSBvZiA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0 aGF0IHN1cHBvcnRzIGxpc3RzIGluIGFydGljbGVfY3VzdG9tJiM4MjE3O3MgPGNvZGU+aWQ8 L2NvZGU+IGF0dHJpYnV0ZSB5b3UgY2FuIGRyb3AgdGhlIDxjb2RlPnN1YnNldDwvY29kZT4u PC9wPgoKCTxoMiBpZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+ MTIgSnVuIDA4IHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MjIgSnVuIDA4 IHwgMC4xMSB8IEFkZGVkIHR5cGU9Zml4ZWQgKHRoYW5rcyBtcmRhbGUpPC9saT4KCQk8bGk+ MDQgQXByIDA5IHwgMC4xMiB8IEZpeGVkIDxjb2RlPnN1YnNldD0mcXVvdDsyJnF1b3Q7PC9j b2RlPiBidWcgd2l0aCBzaW5nbGUgZW50cmllcyAodGhhbmtzIGplcmVteXdvb2QpIDsgYWRk ZWQgPGNvZGU+e3Zhcl9jb3VudGVyfTwvY29kZT4gYW5kIDxjb2RlPnt2YXJfdG90YWx9PC9j b2RlPiAodGhhbmtzIG1yZGFsZSk8L2xpPgoJPC91bD4KCgk8cD48L2Rpdj48L3A+CjwhLS0g LS0tIEJFR0lOIFBMVUdJTiBDU1MgLS0tIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoj c21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdl aWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9u b3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxv Y2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tn cm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHgg MjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBhOmxpbmssICNzbWRfaGVscCBhOnZp c2l0ZWQgeyBjb2xvcjogIzAwYzsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90 dG9tOiAxcHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGE6 aG92ZXIsICNzbWRfaGVscCBhOmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRp b246IG5vbmU7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRv bToxcHg7fQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDogMjBweCBHZW9yZ2lh LCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQojc21kX2hl bHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6MTBweCAw IDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IH0KI3Nt ZF9oZWxwIGgzIHsgY29sb3I6ICMwNzk7IGZvbnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1z ZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5z Zm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KI3NtZF9oZWxw IGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2lu ZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9 CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMzM2Q7IH0KI3Nt ZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5 OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFk ZGluZy1ib3R0b206MWVtOyBib3JkZXI6MXB4IHNvbGlkICM2NjY7fQojc21kX2hlbHAgdGQs ICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5nOi41ZW0gMDt9 CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVhcmU7IH0KI3NtZF9oZWxwIGxp IHsgbWFyZ2luOjVweCAyMHB4IDVweCAzMHB4OyB9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJn aW4tdG9wOjVweDsgfQo8L3N0eWxlPgo8IS0tIC0tLSBFTkQgUExVR0lOIENTUyAtLS0gLS0+ CiI7czozOiJtZDUiO3M6MzI6ImU2ZjRhZjBiOTRjNTFiNDc4OTM0ZDRlOTVkOTgxMzM3Ijt9