# Name: smd_if v0.9 # Type: Client side plugin # Generic multiple if condition tests # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5jb20v IjtzOjc6InZlcnNpb24iO3M6MzoiMC45IjtzOjExOiJkZXNjcmlwdGlvbiI7czozNToiR2Vu ZXJpYyBtdWx0aXBsZSBpZiBjb25kaXRpb24gdGVzdHMiO3M6NDoiY29kZSI7czoxNDc5MDoi ZnVuY3Rpb24gc21kX2lmKCRhdHRzLCR0aGluZykgew0KCWdsb2JhbCAkdGhpc2FydGljbGUs ICRwcmV0ZXh0LCAkdGhpc2ZpbGUsICR0aGlzbGluaywgJHRoaXNpbWFnZSwgJHZhcmlhYmxl Ow0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ2ZpZWxkJyA9PiAnJywNCgkJJ29wZXJh dG9yJyA9PiAnJywNCgkJJ3ZhbHVlJyA9PiAnJywNCgkJJ2xvZ2ljJyA9PiAnYW5kJywNCgkJ J2Nhc2Vfc2Vuc2l0aXZlJyA9PiAwLA0KCQknZmlsdGVyJyA9PiAnJywNCgkJJ3JlcGxhY2Un ID0+ICcnLA0KCQknZmlsdGVyX3R5cGUnID0+ICdhbGwnLA0KCQknZmlsdGVyX29uJyA9PiAn ZmllbGQnLA0KCQkncGFyYW1fZGVsaW0nID0+ICcsJywNCgkJJ21vZF9kZWxpbScgPT4gJzon LA0KCQknbGlzdF9kZWxpbScgPT4gJy8nLA0KCQknZGVidWcnID0+ICcwJywNCgkpLCAkYXR0 cykpOw0KDQoJLy8gU3BlY2lhbCBmaWVsZCBuYW1lcyB0aGF0IHJlZmVyIHRvICRwcmV0ZXh0 IG9yIGVsc2V3aGVyZSAtIGV2ZXJ5dGhpbmcgZWxzZSBpcyBhc3N1bWVkIHRvDQoJLy8gZXhp c3QgaW4gJHRoaXNhcnRpY2xlIHNvIGN1c3RvbSBmaWVsZHMgY2FuIGJlIHVzZWQNCgkkYWxs UHR4dCA9IGFycmF5KA0KCQkiaWQiID0+ICckcHJldGV4dFsiaWQiXScsDQoJCSJzZWN0aW9u IiA9PiAnJHByZXRleHRbInMiXScsDQoJCSJjYXRlZ29yeSIgPT4gJyRwcmV0ZXh0WyJjIl0n LA0KCQkicXVlcnkiID0+ICckcHJldGV4dFsicSJdJywNCgkJInBnIiA9PiAnJHByZXRleHRb InBnIl0nLA0KCQkibW9udGgiID0+ICckcHJldGV4dFsibW9udGgiXScsDQoJCSJhdXRob3Ii ID0+ICckcHJldGV4dFsiYXV0aG9yIl0nLA0KCQkic3RhdHVzIiA9PiAnJHByZXRleHRbInN0 YXR1cyJdJywNCgkJInBhZ2UiID0+ICckcHJldGV4dFsicGFnZSJdJywNCgkJIm5leHRfaWQi ID0+ICckcHJldGV4dFsibmV4dF9pZCJdJywNCgkJIm5leHRfdGl0bGUiID0+ICckcHJldGV4 dFsibmV4dF90aXRsZSJdJywNCgkJIm5leHRfdXRpdGxlIiA9PiAnJHByZXRleHRbIm5leHRf dXRpdGxlIl0nLA0KCQkicHJldl9pZCIgPT4gJyRwcmV0ZXh0WyJwcmV2X2lkIl0nLA0KCQki cHJldl90aXRsZSIgPT4gJyRwcmV0ZXh0WyJwcmV2X3RpdGxlIl0nLA0KCQkicHJldl91dGl0 bGUiID0+ICckcHJldGV4dFsicHJldl91dGl0bGUiXScsDQoJCSJwZXJtbGlua19tb2RlIiA9 PiAnJHByZXRleHRbInBlcm1saW5rX21vZGUiXScsDQoJKTsNCgkvLyBFYWNoIGVudHJ5IGhh cyB0aGUgb3BlcmF0aW9uIHRvIGJlIGV2YWwoKWQgbGF0ZXIgYW5kIGEgbGlzdCBvZiBkaXNh bGxvd2VkIGZpZWxkcw0KCSRhbGxPcHMgPSBhcnJheSgNCgkJJ2VxJyA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA9PT0gQ0FTVCBWQUxVRScsICcnKSwNCgkJJ25v dCcgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENBU1QgRklFTEQgIT09IENBU1QgVkFM VUUnLCAnJyksDQoJCSdndCcgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENBU1QgRklF TEQgPiBDQVNUIFZBTFVFJywgJycpLA0KCQknZ2UnID0+IGFycmF5KCdpc3NldChWQVJOQU1F KSAmJiBDQVNUIEZJRUxEID49IENBU1QgVkFMVUUnLCAnJyksDQoJCSdsdCcgPT4gYXJyYXko J2lzc2V0KFZBUk5BTUUpICYmIENBU1QgRklFTEQgPCBDQVNUIFZBTFVFJywgJycpLA0KCQkn bGUnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDw9IENBU1QgVkFM VUUnLCAnJyksDQoJCSdiZXR3ZWVuJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgKCR0 d2Vlbj1leHBsb2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxVRSkpICYmIENBU1QgRklFTEQg PiAkdHdlZW5bMF0gJiYgQ0FTVCBGSUVMRCA8ICR0d2VlblsxXScsICcnKSwNCgkJJ3Jhbmdl JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgKCRybmc9ZXhwbG9kZSgiJy4kbGlzdF9k ZWxpbS4nIiwgVkFMVUUpKSAmJiBDQVNUIEZJRUxEID49ICRybmdbMF0gJiYgQ0FTVCBGSUVM RCA8PSAkcm5nWzFdJywgJycpLA0KCQknZGl2aXNpYmxlJyA9PiBhcnJheSgnaXNzZXQoVkFS TkFNRSkgJiYgQ0FTVCBGSUVMRCAlIENBU1QgVkFMVUUgPT09IDAnLCAnJyksDQoJCSdpbicg PT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGluX2FycmF5KEZJRUxELCBleHBsb2RlKCIn LiRsaXN0X2RlbGltLiciLCBWQUxVRSkpICE9PSBmYWxzZScsICcnKSwNCgkJJ25vdGluJyA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgaW5fYXJyYXkoRklFTEQsIGV4cGxvZGUoIicu JGxpc3RfZGVsaW0uJyIsIFZBTFVFKSkgPT09IGZhbHNlJywgJycpLA0KCQknYmVnaW5zJyA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgc3RycG9zKEZJRUxELCBWQUxVRSkgPT09IDAn LCAnJyksDQoJCSdjb250YWlucycgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIHN0cnBv cyhGSUVMRCwgVkFMVUUpICE9PSBmYWxzZScsICcnKSwNCgkJJ2VuZHMnID0+IGFycmF5KCdp c3NldChWQVJOQU1FKSAmJiBzdWJzdHIoRklFTEQsIHN0cmxlbihGSUVMRCkgLSBzdHJsZW4o VkFMVUUpKSA9PT0gVkFMVUUnLCAnJyksDQoJCSdkZWZpbmVkJyA9PiBhcnJheSgnaXNzZXQo VkFSTkFNRSknLCAncGFyZW50JyksDQoJCSd1bmRlZmluZWQnID0+IGFycmF5KCchaXNzZXQo VkFSTkFNRSknLCAncGFyZW50JyksDQoJCSdpc2VtcHR5JyA9PiBhcnJheSgnaXNzZXQoVkFS TkFNRSkgJiYgRklFTEQgPT0gIiInLCAnJyksDQoJCSdpc3VzZWQnID0+IGFycmF5KCdpc3Nl dChWQVJOQU1FKSAmJiBGSUVMRCAhPSAiIicsICcnKSwNCgkJJ2lzbnVtJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfZGlnaXQoKHN0cmluZylGSUVMRCknLCAnJyksDQoJ CSdpc2FscGhhJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfYWxwaGEoKHN0 cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2FsbnVtJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFN RSkgJiYgY3R5cGVfYWxudW0oKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2xvd2VyJyA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfbG93ZXIoKHN0cmluZylGSUVMRCkn LCAnJyksDQoJCSdpc3VwcGVyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVf dXBwZXIoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3B1bmN0JyA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgY3R5cGVfcHVuY3QoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdp c3NwYWNlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfc3BhY2UoKHN0cmlu ZylGSUVMRCknLCAnJyksDQoJKTsNCg0KCSRudW1lcmljT3BzID0gImd0LCBnZSwgbHQsIGxl LCBlcSwgbm90LCBkaXZpc2libGUsIHJhbmdlLCBiZXR3ZWVuIjsNCgkkY2FzZU9wcyA9ICJp c2xvd2VyLCBpc3VwcGVyIjsNCgkkc3BhY2VPcHMgPSAiaXNudW0sIGlzYWxwaGEsIGlzYWxu dW0sIGlzbG93ZXIsIGlzdXBwZXIsIGlzcHVuY3QsIGJlZ2lucywgY29udGFpbnMsIGVuZHMi Ow0KCSRmaWVsZHMgPSBkb19saXN0KCRmaWVsZCwgJHBhcmFtX2RlbGltKTsNCgkkbnVtRmxk cyA9IGNvdW50KCRmaWVsZHMpOw0KCSRvcHMgPSBkb19saXN0KCRvcGVyYXRvciwgJHBhcmFt X2RlbGltKTsNCgkkbnVtT3BzID0gY291bnQoJG9wcyk7DQoJJHZhbHMgPSBkb19saXN0KCR2 YWx1ZSwgJHBhcmFtX2RlbGltKTsNCgkkbnVtVmFscyA9IGNvdW50KCR2YWxzKTsNCgkkcGFy ZW50Q2F0cyA9ICcnOyAvLyBQbGFjZWhvbGRlciBmb3IgdGhlIGNvbmNhdGVuYXRlZCBsaXN0 IG9mIGNhdGVnb3J5IGxlYWYgbm9kZXMNCgkkcmVwbGFjZW1lbnRzID0gYXJyYXkoKTsNCgkk dHlwZSA9ICgkdGhpc2ZpbGUpID8gImZpbGUiIDogKCgkdGhpc2xpbmspID8gImxpbmsiIDog KCgkdGhpc2ltYWdlKSA/ICJpbWFnZSIgOiAiYXJ0aWNsZSIpKTsNCgkkb3V0ID0gYXJyYXko KTsNCgkkaXRlcmF0aW9ucyA9ICgkbnVtRmxkcyA+ICRudW1PcHMpID8gJG51bUZsZHMgOiAk bnVtT3BzOw0KCSRmaWx0ZXIgPSAoIWVtcHR5KCRmaWx0ZXIpKSA/IGRvX2xpc3QoJGZpbHRl ciwgJHBhcmFtX2RlbGltKSA6IGFycmF5KCk7DQoJJHJlcGxhY2UgPSAoIWVtcHR5KCRyZXBs YWNlKSkgPyBkb19saXN0KCRyZXBsYWNlLCAkcGFyYW1fZGVsaW0pIDogYXJyYXkoKTsNCgkk bnVtRmlsdGVycyA9IGNvdW50KCRmaWx0ZXIpOw0KCSRudW1SZXBsYWNlID0gY291bnQoJHJl cGxhY2UpOw0KCSRmaWx0ZXJfb24gPSAoIWVtcHR5KCRmaWx0ZXJfb24pKSA/IGRvX2xpc3Qo JGZpbHRlcl9vbiwgJHBhcmFtX2RlbGltKSA6IGFycmF5KCk7DQoJJGZpbHRlcl90eXBlID0g KCFlbXB0eSgkZmlsdGVyX3R5cGUpKSA/IGRvX2xpc3QoJGZpbHRlcl90eXBlLCAkcGFyYW1f ZGVsaW0pIDogYXJyYXkoKTsNCglpZiAoJGRlYnVnID4gMSAmJiAoJGZpbHRlciB8fCAkcmVw bGFjZSkpIHsNCgkJZWNobyAiKysgRklMVEVSUyAvIFJFUExBQ0VNRU5UUyArKyI7DQoJCWRt cCgkZmlsdGVyLCAkcmVwbGFjZSk7DQoJfQ0KDQoJZm9yICgkaWR4ID0gMDsgJGlkeCA8ICRp dGVyYXRpb25zOyAkaWR4KyspIHsNCgkJJGZsZCA9ICgkaWR4IDwgJG51bUZsZHMpID8gJGZp ZWxkc1skaWR4XSA6ICRmaWVsZHNbMF07IC8vIEFsbG93IHNob3J0LWNpcmN1aXQNCgkJJGZs ZFBhcnRzID0gZXhwbG9kZSgkbW9kX2RlbGltLCAkZmxkKTsNCgkJJHZhbCA9ICgkaWR4IDwg JG51bVZhbHMpID8gJHZhbHNbJGlkeF0gOiAnJzsNCgkJJHZhbExpc3QgPSBleHBsb2RlKCRs aXN0X2RlbGltLCAkdmFsKTsNCgkJJHZhbFJlcCA9IGFycmF5KCk7DQoJCWZvcmVhY2ggKCR2 YWxMaXN0IGFzICRrZHggPT4gJHRoZXZhbCkgew0KCQkJJHZhbFJlcFska2R4XSA9IGV4cGxv ZGUoJG1vZF9kZWxpbSwgJHRoZXZhbCk7DQoJCX0NCg0KCQkkb3AgPSAoJGlkeCA8ICRudW1P cHMgJiYgJG9wc1skaWR4XSAhPSAnJykgPyAkb3BzWyRpZHhdIDogKCgkZmxkUGFydHNbMF09 PSJwYXJlbnQiKSA/ICJjb250YWlucyIgOiAiZXEiKTsNCgkJJG9wUGFydHMgPSBleHBsb2Rl KCRtb2RfZGVsaW0sICRvcCk7DQoJCSRvcCA9IChhcnJheV9rZXlfZXhpc3RzKCRvcFBhcnRz WzBdLCAkYWxsT3BzKSkgPyAkb3BQYXJ0c1swXSA6ICJlcSI7DQoJCSRjYXN0ID0gKChjb3Vu dCgkb3BQYXJ0cykgPT0gMikgJiYgKCRvcFBhcnRzWzFdID09PSAiTlVNIikgJiYgKGluX2xp c3QoJG9wLCAkbnVtZXJpY09wcykpKSA/ICcoaW50KScgOiAnJzsNCgkJJGxlbmd0aCA9ICgo Y291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9PT0gIkxFTiIpICYmIChp bl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAnc3RybGVuKEZJRUxEKScgOiAnJzsNCgkJ JGtpbGxTcGFjZXMgPSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAoJG9wUGFydHNbMV0g PT09ICJOT1NQQUNFIikgJiYgKGluX2xpc3QoJG9wLCAkc3BhY2VPcHMpKSkgPyB0cnVlIDog ZmFsc2U7DQoJCSRzdHJpcEZsZCA9ICgoY291bnQoJGZsZFBhcnRzKSA+IDEpICYmIChpbl9h cnJheSgiTk9UQUdTIiwgJGZsZFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkkdHJpbUZs ZCA9ICgoY291bnQoJGZsZFBhcnRzKSA+IDEpICYmIChpbl9hcnJheSgiVFJJTSIsICRmbGRQ YXJ0cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJJGNhc2Vfc2Vuc2l0aXZlID0gKGluX2xpc3Qo JG9wLCAkY2FzZU9wcykpID8gMSA6ICRjYXNlX3NlbnNpdGl2ZTsNCgkJJHBhdCA9ICgkaWR4 IDwgJG51bUZpbHRlcnMpID8gJGZpbHRlclskaWR4XSA6ICgoJGZpbHRlcikgPyAkZmlsdGVy WzBdIDogJycpOw0KCQkkcmVwID0gKCRpZHggPCAkbnVtUmVwbGFjZSkgPyAkcmVwbGFjZVsk aWR4XSA6ICgoJHJlcGxhY2UpID8gJHJlcGxhY2VbMF0gOiAnJyk7DQoJCWlmICgkZGVidWcp IHsNCgkJCWVjaG8gJ1RFU1QgJy4oJGlkeCsxKS5uOw0KCQkJZG1wKCRmbGRQYXJ0cywgJG9w UGFydHMsICR2YWxSZXApOw0KCQl9DQoJCS8vIEdldCB0aGUgb3BlcmF0b3IgcmVwbGFjZW1l bnQgY29kZQ0KCQkkZXhjbHVkZSA9IGRvX2xpc3QoJGFsbE9wc1skb3BdWzFdKTsNCgkJJG9w ID0gJGFsbE9wc1skb3BdWzBdOw0KDQoJCS8vIEFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgb3Bl cmF0b3IgYWxsb3dzIHRoaXMgZmllbGQuLi4NCgkJaWYgKCFpbl9hcnJheSgkZmxkUGFydHNb MF0sICRleGNsdWRlKSkgew0KCQkJLy8gTWFrZSB1cCB0aGUgdGVzdCBmaWVsZCB2YXJpYWJs ZQ0KCQkJaWYgKGlzc2V0KCR0aGlzZmlsZVskZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxk ID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHRoaXNmaWxlWyInLiRyZmxkLiciXSc7 DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzbGlua1skZmxkUGFydHNbMF1dKSkgew0KCQkJ CSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHRoaXNsaW5rWyInLiRyZmxk LiciXSc7DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzaW1hZ2VbJGZsZFBhcnRzWzBdXSkp IHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1swXTsNCgkJCQkkZmxkID0gJyR0aGlzaW1hZ2Vb IicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkZmxkUGFy dHNbMF0sICRhbGxQdHh0KSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRm bGQgPSAkYWxsUHR4dFskcmZsZF07DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAi cGFyZW50Iikgew0KCQkJCSR0cmVlRmllbGQgPSAnbmFtZSc7DQoJCQkJJGxldmVsID0gJyc7 DQoJCQkJZm9yZWFjaCAoJGZsZFBhcnRzIGFzICRwYXJ0KSB7DQoJCQkJCWlmICgkcGFydCA9 PSAicGFyZW50Iikgew0KCQkJCQkJJHRoZUNhdCA9ICgkdGhpc2ZpbGUpID8gJHRoaXNmaWxl WydjYXRlZ29yeSddIDogKCgkdGhpc2xpbmspID8gJHRoaXNsaW5rWydjYXRlZ29yeSddIDog KCgkdGhpc2ltYWdlKSA/ICR0aGlzaW1hZ2VbJ2NhdGVnb3J5J10gOiAkcHJldGV4dFsnYydd KSk7DQoJCQkJCX0gZWxzZSBpZiAoc3RycG9zKCRwYXJ0LCAiQ0FUIikgPT09IDApIHsNCgkJ CQkJCSR0aGVDYXQgPSAkdGhpc2FydGljbGVbImNhdGVnb3J5Ii5zdWJzdHIoJHBhcnQsIDMp XTsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3MoJHBhcnQsICJMVkwiKSA9PT0gMCkgew0KCQkJ CQkJJGxldmVsID0gc3Vic3RyKCRwYXJ0LCAzKTsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3Mo JHBhcnQsICJUVEwiKSA9PT0gMCkgew0KCQkJCQkJJHRyZWVGaWVsZCA9ICd0aXRsZSc7DQoJ CQkJCX0gZWxzZSBpZiAoc3RycG9zKCRwYXJ0LCAiS0lEUyIpID09PSAwKSB7DQoJCQkJCQkk dHJlZUZpZWxkID0gJ2NoaWxkcmVuJzsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCSR0cmVlID0g Z2V0VHJlZVBhdGgoZG9TbGFzaCgkdGhlQ2F0KSwgJHR5cGUpOw0KCQkJCWlmICgkZGVidWcg JiYgJHRyZWUpIHsNCgkJCQkJZWNobyAiQ0FURUdPUlkgVFJFRToiOw0KCQkJCQlkbXAoJHRy ZWUpOw0KCQkJCX0NCgkJCQkkaXRlbXMgPSBhcnJheSgpOw0KCQkJCWZvcmVhY2ggKCR0cmVl IGFzICRsZWFmKSB7DQoJCQkJCWlmICgkbGVhZlsnbmFtZSddID09ICJyb290IiB8fCAkbGVh ZlsnbmFtZSddID09ICR0aGVDYXQpIHsNCgkJCQkJCWNvbnRpbnVlOw0KCQkJCQl9IGVsc2Ug aWYgKCRsZXZlbCA9PSAnJyB8fCAkbGV2ZWwgPT0gJGxlYWZbJ2xldmVsJ10pIHsNCgkJCQkJ CSRpdGVtc1tdID0gJGxlYWZbJHRyZWVGaWVsZF07DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHBh cmVudENhdHMgPSBpbXBsb2RlKCIgIiwgJGl0ZW1zKTsNCgkJCQkkcmZsZCA9IHNhbml0aXpl Rm9yVXJsKCRwYXJlbnRDYXRzKTsNCgkJCQlpZiAoJGRlYnVnICYmICRwYXJlbnRDYXRzKSB7 DQoJCQkJCWVjaG8gIisrIFBBUkVOVCBJTkZPICsrIjsNCgkJCQkJZG1wKCRwYXJlbnRDYXRz KTsNCgkJCQl9DQoJCQkJJGZsZCA9ICckcGFyZW50Q2F0cyc7DQoJCQl9IGVsc2UgaWYgKCRm bGRQYXJ0c1swXSA9PSAidHhwdmFyIikgew0KCQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4g MSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICckdmFyaWFi bGVbIicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9 PSAidXJsdmFyIikgew0KCQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkk cmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICckX0dFVFsiJy4kcmZsZC4nIl0n Ow0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJwb3N0dmFyIikgew0K CQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0 c1sxXTsNCgkJCQkJJGZsZCA9ICckX1BPU1RbIicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9 IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAic3ZydmFyIikgew0KCQkJCWlmIChjb3VudCgk ZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZs ZCA9ICckX1NFUlZFUlsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZs ZFBhcnRzWzBdID09ICJwaHB2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAx KSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyRHTE9CQUxT WyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2FydGlj bGVbJGZsZFBhcnRzWzBdXSkpIHsNCgkJCQkkcmZsZCA9IHN0cnRvbG93ZXIoJGZsZFBhcnRz WzBdKTsNCgkJCQkkZmxkID0gJyR0aGlzYXJ0aWNsZVsiJy4kcmZsZC4nIl0nOw0KCQkJfSBl bHNlIGlmICgkZmxkUGFydHNbMF0gPT0gIk5VTEwiKSB7DQoJCQkJJHNtZF9pZl92YXIgPSAn JzsNCgkJCQkkZmxkID0gJyRzbWRfaWZfdmFyJzsNCgkJCQkkcmZsZCA9ICJOVUxMIjsNCgkJ CX0gZWxzZSB7DQoJCQkJJHNtZF9pZl92YXIgPSAkZmxkUGFydHNbMF07DQoJCQkJJGZsZCA9 ICckc21kX2lmX3Zhcic7DQoJCQkJJHJmbGQgPSAiZmllbGQiLigkaWR4KjErMSk7DQoJCQl9 DQoJCQkkcmxmbGQgPSAic21kX2lmX2xlbl8iLiRyZmxkOw0KCQkJJHJmbGQgPSAic21kX2lm XyIuJHJmbGQ7DQoNCgkJCS8vIFRha2UgYSBjb3B5IG9mICRmbGQgdG8gdXNlIGluIGFueSBp c3NldCgpIHJlcXVlc3RzDQoJCQkkZmxkQ2xlYW4gPSAkZmxkOw0KDQoJCQkvLyBBcHBseSB1 c2VyLWRlZmluZWQgZmllbGQgZmlsdGVycw0KCQkJaWYgKCRraWxsU3BhY2VzKSB7DQoJCQkJ JGZsZCA9ICdwcmVnX3JlcGxhY2UoIi9ccysvIiwiIiwnLiRmbGQuJyknOw0KCQkJfQ0KCQkJ aWYgKCRzdHJpcEZsZCkgew0KCQkJCSRmbGQgPSAndHJpbShzdHJpcF90YWdzKCcuJGZsZC4n KSknOw0KCQkJfQ0KCQkJaWYgKCR0cmltRmxkKSB7DQoJCQkJJGZsZCA9ICd0cmltKCcuJGZs ZC4nKSc7DQoJCQl9DQoJCQkkZG9fZmZpbHQgPSAoJHBhdCAmJiBpbl9hcnJheSgnZmllbGQn LCAkZmlsdGVyX29uKSAmJiAoaW5fYXJyYXkoJGZsZFBhcnRzWzBdLCAkZmlsdGVyX3R5cGUp IHx8IGluX2FycmF5KCdhbGwnLCAkZmlsdGVyX3R5cGUpKSApID8gdHJ1ZSA6IGZhbHNlOw0K DQoJCQkvLyBGaW5kIHRoZSByZWFsIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdCAobWF5IGJl IGFub3RoZXIgZmllbGQpDQoJCQkkdmFsY250ID0gMTsNCgkJCSR2ZmxkcyA9IGFycmF5KCk7 DQoJCQkkY29yZV92ZmxkID0gInZhbCIuKCgkaWR4KjEpKzEpOw0KDQoJCQlmb3JlYWNoICgk dmFsUmVwIGFzICRqZHggPT4gJHZhbFBhcnRzKSB7DQoJCQkJJHN0cmlwVmFsID0gKChjb3Vu dCgkdmFsUGFydHMpID4gMSkgJiYgKGluX2FycmF5KCJOT1RBR1MiLCAkdmFsUGFydHMpKSkg PyB0cnVlIDogZmFsc2U7DQoJCQkJJHRyaW1WYWwgPSAoKGNvdW50KCR2YWxQYXJ0cykgPiAx KSAmJiAoaW5fYXJyYXkoIlRSSU0iLCAkdmFsUGFydHMpKSkgPyB0cnVlIDogZmFsc2U7DQoJ CQkJaWYgKCR2YWxQYXJ0c1swXSA9PSAidXJsdmFyIikgew0KCQkJCQlpZiAoY291bnQoJHZh bFBhcnRzKSA+IDEpIHsNCgkJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkJJHZh bCA9IChpc3NldCgkX0dFVFskdmZsZF0pICYmICRfR0VUWyR2ZmxkXSAhPSAiIikgPyAnJF9H RVRbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmZs ZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0gPT0gInBvc3R2YXIi KSB7DQoJCQkJCWlmIChjb3VudCgkdmFsUGFydHMpID4gMSkgew0KCQkJCQkJJHZmbGQgPSAk dmFsUGFydHNbMV07DQoJCQkJCQkkdmFsID0gKGlzc2V0KCRfUE9TVFskdmZsZF0pICYmICRf UE9TVFskdmZsZF0gIT0gIiIpID8gJyRfUE9TVFsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShz dHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYg KCR2YWxQYXJ0c1swXSA9PSAic3ZydmFyIikgew0KCQkJCQlpZiAoY291bnQoJHZhbFBhcnRz KSA+IDEpIHsNCgkJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkJJHZhbCA9IChp c3NldCgkX1NFUlZFUlskdmZsZF0pICYmICRfU0VSVkVSWyR2ZmxkXSAhPSAiIikgPyAnJF9T RVJWRVJbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAk dmZsZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0gPT0gInR4cHZh ciIpIHsNCgkJCQkJaWYgKGNvdW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJCQkJCQkkdmZsZCA9 ICR2YWxQYXJ0c1sxXTsNCgkJCQkJCSR2YWwgPSAoaXNzZXQoJHZhcmlhYmxlWyR2ZmxkXSkg JiYgJHZhcmlhYmxlWyR2ZmxkXSAhPSAiIikgPyAnJHZhcmlhYmxlWyInLiR2ZmxkLiciXScg OiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQkJfQ0KCQkJ CX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJwaHB2YXIiKSB7DQoJCQkJCWlmIChjb3Vu dCgkdmFsUGFydHMpID4gMSkgew0KCQkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJ CQkkdmFsID0gKGlzc2V0KCRHTE9CQUxTWyR2ZmxkXSkgJiYgJEdMT0JBTFNbJHZmbGRdICE9 ICIiKSA/ICckR0xPQkFMU1siJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgn IicsICdcIicsICR2ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYgKHN0cnBvcygkdmFs UGFydHNbMF0sICI/IikgPT09IDApIHsNCgkJCQkJJHZhbFBhcnRzWzBdID0gc3Vic3RyKHN0 cnRvbG93ZXIoJHZhbFBhcnRzWzBdKSwgMSk7DQoJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzBd Ow0KCQkJCQlpZiAoaXNzZXQoJHRoaXNmaWxlWyR2ZmxkXSkgJiYgJHRoaXNmaWxlWyR2Zmxk XSAhPSAiIikgew0KCQkJCQkJJHZhbCA9ICckdGhpc2ZpbGVbIicuJHZmbGQuJyJdJzsNCgkJ CQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2xpbmtbJHZmbGRdKSAmJiAkdGhpc2xpbmtbJHZm bGRdICE9ICIiKSB7DQoJCQkJCQkkdmFsID0gJyR0aGlzbGlua1siJy4kdmZsZC4nIl0nOw0K CQkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzaW1hZ2VbJHZmbGRdKSAmJiAkdGhpc2ltYWdl WyR2ZmxkXSAhPSAiIikgew0KCQkJCQkJJHZhbCA9ICckdGhpc2ltYWdlWyInLiR2ZmxkLici XSc7DQoJCQkJCX0gZWxzZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkdmZsZCwgJGFsbFB0eHQp ICYmICRhbGxQdHh0WyR2ZmxkXSAhPSAiIikgew0KCQkJCQkJJHZhbCA9ICRhbGxQdHh0WyR2 ZmxkXTsNCgkJCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2FydGljbGVbJHZmbGRdKSAmJiAk dGhpc2FydGljbGVbJHZmbGRdICE9ICIiKSB7DQoJCQkJCQkkdmFsID0gJyR0aGlzYXJ0aWNs ZVsiJy4kdmZsZC4nIl0nOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJHZhbCA9IGRvUXVvdGUo c3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIHsN CgkJCQkJJHZmbGQgPSAkY29yZV92ZmxkLidfJy4kdmFsY250Ow0KCQkJCQkkdmFsID0gZG9R dW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2YWxQYXJ0c1swXSkpOw0KCQkJCX0NCg0K CQkJCS8vIEFwcGx5IHVzZXItZGVmaW5lZCB2YWx1ZSBmaWx0ZXJzDQoJCQkJaWYgKCRzdHJp cFZhbCkgew0KCQkJCQkkdmFsID0gJ3RyaW0oc3RyaXBfdGFncygnLiR2YWwuJykpJzsNCgkJ CQl9DQoJCQkJaWYgKCR0cmltVmFsKSB7DQoJCQkJCSR2YWwgPSAndHJpbSgnLiR2YWwuJykn Ow0KCQkJCX0NCgkJCQkkZG9fdmZpbHQgPSAoJHBhdCAmJiBpbl9hcnJheSgndmFsdWUnLCAk ZmlsdGVyX29uKSAmJiAoaW5fYXJyYXkoJHZhbFBhcnRzWzBdLCAkZmlsdGVyX3R5cGUpIHx8 IGluX2FycmF5KCdhbGwnLCAkZmlsdGVyX3R5cGUpKSApID8gdHJ1ZSA6IGZhbHNlOw0KDQoJ CQkJLy8gUmVwbGFjZSB0aGUgc3RyaW5nIHBhcnRzIGJ5IGV2YWx1YXRpbmcgYW55IHZhcmlh Ymxlcy4uLg0KCQkJCSRmaWx0X2ZsZCA9ICgkZG9fZmZpbHQpID8gInByZWdfcmVwbGFjZSgn JHBhdCcsICckcmVwJywgJGZsZCkiIDogJGZsZDsNCgkJCQkkZmlsdF92YWwgPSAoJGRvX3Zm aWx0KSA/ICJwcmVnX3JlcGxhY2UoJyRwYXQnLCAnJHJlcCcsICR2YWwpIiA6ICR2YWw7DQoJ CQkJZXZhbCAoIlwkdmFsUmVwWyRqZHhdID0gIi4kZmlsdF92YWwuIjsiKTsNCg0KCQkJCS8v IE9ubHkgYWRkIHN1Yi12YWx1ZXMgdG8gdGhlIHJlcGxhY2VtZW50cyBhcnJheSBpZiB0aGVy ZSdzIG1vcmUgdGhhbiBvbmUgc3ViLXZhbHVlDQoJCQkJaWYgKGNvdW50KCR2YWxSZXApID4g MSkgew0KCQkJCQkkdmZsZHNbInNtZF9pZl8iLiR2ZmxkXSA9ICR2YWxSZXBbJGpkeF07DQoJ CQkJCSR2Zmxkc1sic21kX2lmX2xlbl8iLiR2ZmxkXSA9IHN0cmxlbigkdmFsUmVwWyRqZHhd KTsNCgkJCQl9DQoNCgkJCQkkdmFsY250Kys7DQoJCQl9DQoNCgkJCSRqb2luZWRWYWxzID0g am9pbigkbGlzdF9kZWxpbSwgJHZhbFJlcCk7DQoJCQkkc21kX3ByZWZpbHRlciA9IGRvUXVv dGUoJGpvaW5lZFZhbHMpOw0KDQoJCQkvLyBBZGQgdGhlIGNvbWJpbmVkIG9wZXJhdG9yIGZv ciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIHBsdWdpbiB2MC44eA0KCQkJJHZmbGRz WyJzbWRfaWZfIi4kY29yZV92ZmxkXSA9ICRqb2luZWRWYWxzOw0KCQkJJHZmbGRzWyJzbWRf aWZfbGVuXyIuJGNvcmVfdmZsZF0gPSBzdHJsZW4oJGpvaW5lZFZhbHMpOw0KDQoJCQkkY21k ID0gc3RyX3JlcGxhY2UoIkNBU1QiLCAkY2FzdCwgJG9wKTsNCgkJCSRjbWQgPSAoJGxlbmd0 aCkgPyBzdHJfcmVwbGFjZSgiRklFTEQiLCAkbGVuZ3RoLCAkY21kKSA6ICRjbWQ7DQoJCQkk Y21kID0gc3RyX3JlcGxhY2UoIkZJRUxEIiwgKCgkY2FzZV9zZW5zaXRpdmUpID8gJGZpbHRf ZmxkIDogJ3N0cnRvbG93ZXIoJy4kZmlsdF9mbGQuJyknKSwgJGNtZCk7DQoJCQkkY21kID0g c3RyX3JlcGxhY2UoIlZBUk5BTUUiLCAkZmxkQ2xlYW4sICRjbWQpOw0KCQkJJGNtZCA9IHN0 cl9yZXBsYWNlKCJWQUxVRSIsICgoJGNhc2Vfc2Vuc2l0aXZlKSA/ICdWQUxVRScgOiAnc3Ry dG9sb3dlcihWQUxVRSknKSwgJGNtZCk7DQoNCgkJCS8vIFZhbHVlIHJlcGxhY2VtZW50cyBo YXZlIGFscmVhZHkgYmVlbiBydW4gdGhyb3VnaCBldmlsKCkgc28gdGhleSBjYW4gYmUgYXNz aWduZWQgZGlyZWN0bHkNCgkJCWZvcmVhY2ggKCR2ZmxkcyBhcyAkdmFsaXQgPT4gJHZhbHZh bCkgew0KCQkJCSRyZXBsYWNlbWVudHNbJ3snLiR2YWxpdC4nfSddID0gJHZhbHZhbDsNCgkJ CX0NCg0KCQkJLy8gRmllbGQgcmVwbGFjZW1lbnRzIG5lZWQgc29tZSBldmFsKCkgYWN0aW9u Li4uDQoJCQkkY21kID0gIkBcJHJlcGxhY2VtZW50c1sneyIuJHJmbGQuIn0nXSA9ICIuJGZp bHRfZmxkLiI7IFxuQFwkcmVwbGFjZW1lbnRzWyd7Ii4kcmxmbGQuIn0nXSA9IHN0cmxlbigi LiRmaWx0X2ZsZC4iKTsgXG5cJG91dFsiLiRpZHguIl0gPSAoIi5zdHJfcmVwbGFjZSgiVkFM VUUiLCAoKCRzbWRfcHJlZmlsdGVyPT09IicnIiAmJiBzdHJwb3MoJG9wLCAic3RycG9zIikg IT09IGZhbHNlKSA/ICInICciIDogJHNtZF9wcmVmaWx0ZXIpLCAkY21kKS4iKSA/ICd0cnVl JyA6ICdmYWxzZSc7IjsNCgkJCWlmICgkZGVidWcpIHsNCgkJCQlkbXAoJGNtZCk7DQoJCQl9 DQoJCQkvLyAuLi4gYW5kIGV2YWx1YXRlIHRoZSBleHByZXNzaW9uDQoJCQlldmFsKCRjbWQp Ow0KCQl9DQoJfQ0KCWlmICgkZGVidWcpIHsNCgkJZWNobyAiUkVTVUxUOiI7DQoJCWRtcCgk b3V0KTsNCgkJZWNobyAiUkVQTEFDRU1FTlRTOiI7DQoJCWRtcCgkcmVwbGFjZW1lbnRzKTsN Cgl9DQoJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJZWNobyAiUFJFVEVYVDoiOw0KCQlkbXAoJHBy ZXRleHQpOw0KCQllY2hvICJUSElTIEFSVElDTEU6IjsNCgkJZG1wKCR0aGlzYXJ0aWNsZSk7 DQoJCWVjaG8gIlRISVMgRklMRToiOw0KCQlkbXAoJHRoaXNmaWxlKTsNCgkJZWNobyAiVEhJ UyBMSU5LOiI7DQoJCWRtcCgkdGhpc2xpbmspOw0KCQllY2hvICJUSElTIElNQUdFOiI7DQoJ CWRtcCgkdGhpc2ltYWdlKTsNCgl9DQoJLy8gQ2hlY2sgbG9naWMNCgkkcmVzdWx0ID0gKCRv dXQpID8gdHJ1ZSA6IGZhbHNlOw0KCWlmIChzdHJ0b2xvd2VyKCRsb2dpYykgPT0gImFuZCIg JiYgaW5fYXJyYXkoImZhbHNlIiwgJG91dCkpIHsNCgkJJHJlc3VsdCA9IGZhbHNlOw0KCX0N CglpZiAoc3RydG9sb3dlcigkbG9naWMpID09ICJvciIgJiYgIWluX2FycmF5KCJ0cnVlIiwg JG91dCkpIHsNCgkJJHJlc3VsdCA9IGZhbHNlOw0KCX0NCg0KCXJldHVybiBwYXJzZShFdmFs RWxzZShzdHJ0cigkdGhpbmcsICRyZXBsYWNlbWVudHMpLCAkcmVzdWx0KSk7DQp9IjtzOjQ6 InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAi O3M6NDoiaGVscCI7czo0NjUxNDoiPGRpdiBpZD0ic21kX2hlbHAiPgoKCTxoMT5zbWRfaWY8 L2gxPgoKCTxwPkEgZ2VuZXJpYyAmIzgyMTY7aWYgY29uZGl0aW9uJiM4MjE3OyB0ZXN0ZXIu IENhbiB0ZXN0IGFueSBmaWVsZCBvciB2YXJpYWJsZSBpbiB0aGUgY3VycmVudCBhcnRpY2xl LCBmaWxlLCBpbWFnZSwgbGluaywgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFy LCA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPiBvciA8c3BhbiBjbGFzcz0i Y2FwcyI+UEhQPC9zcGFuPiBjb250ZXh0IGZvciBhIHZhcmlldHkgb2YgYXR0cmlidXRlcyBh bmQgdGFrZSBhY3Rpb24gaWYgPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IG9yIDxz cGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj4uPC9wPgoKCTxoMj5GZWF0dXJlczwvaDI+ CgoJPHVsPgoJCTxsaT5TdXBwb3J0cyBtb3N0IG1ham9yIGFydGljbGUsIGZpbGUsIGltYWdl IGFuZCBsaW5rIHZhcmlhYmxlcyBzdWNoIGFzIHNlY3Rpb24sIGNhdGVnb3J5LCBjdXN0b20g ZmllbGRzLCBpZCwgcXVlcnkgc3RyaW5nLCBhdXRob3IsIGJvZHksIGV4Y2VycHQsIHlhaGRl IHlhaGRlLCBwbHVzIHVybCB2YXJzLCBzZXJ2ZXIgdmFycywgdHhwIHZhcnMsIHBocCB2YXJz LCBhbmQgc3ViLWNhdGVnb3J5L3BhcmVudCBjaGVja2luZzwvbGk+CgkJPGxpPlRlc3RzIGlu Y2x1ZGUgZXF1YWxpdHksIGluZXF1YWxpdHksIGxlc3MgdGhhbiwgZ3JlYXRlciB0aGFuLCBk aXZpc2libGUgYnksIGVtcHR5LCB1c2VkLCBkZWZpbmVkLCBiZWdpbnMsIGVuZHMsIGNvbnRh aW5zLCBpcyBudW1lcmljIC8gYWxwaGEgLyBhbHBoYW51bWVyaWMgLyBsb3dlcmNhc2UgLyB1 cHBlcmNhc2UsIGFtb25nIG90aGVyczwvbGk+CgkJPGxpPlRlc3RzIGZvciBtb3JlIHRoYW4g b25lIGNvbmRpdGlvbiBhdCBvbmNlIGFuZCBhcHBsaWVzIGVpdGhlciA8c3BhbiBjbGFzcz0i Y2FwcyI+QU5EPC9zcGFuPiBsb2dpYyAoYWxsIHRlc3RzIG11c3QgcGFzcykgb3IgT1IgbG9n aWMgKGFueSB0ZXN0IG11c3QgcGFzcyk8L2xpPgoJCTxsaT5BbGwgdGVzdGVkIGZpZWxkcyBh bmQgdmFsdWVzIGFyZSBhdmFpbGFibGUgdG8gdGhlIGNvbnRhaW5lciBzbyB5b3UgY2FuIGRp c3BsYXkgdGhlbTwvbGk+CgkJPGxpPkN1c3RvbSByZWd1bGFyLWV4cHJlc3Npb24gZmlsdGVy cyBhcmUgYXZhaWxhYmxlIHRvIGhlbHAgd2VlZCBvdXQgYmFkIGRhdGE8L2xpPgoJCTxsaT5V Z2x5IGFuZCB2ZXJ5IGRpcnR5LiBVc2VzIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+ JiM4MjE3O3MgPGNvZGU+ZXZhbCgpPC9jb2RlPiBjb21tYW5kIHdoaWNoIG1vc3QgcHJvZ3Jh bW1lcnMgY29uY3VyIHNob3VsZCBiZSByZW5hbWVkIDxjb2RlPmV2aWwoKTwvY29kZT48L2xp PgoJPC91bD4KCgk8aDI+QXV0aG9yPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRh d3Nvbi5jb20vY29tbWVudEZvcm0iPlN0ZWYgRGF3c29uPC9hPi4gQmFzZWQgb24gYW4gaWRl YSBicmV3aW5nIGluIHRoZSBiYWNrIG9mIG15IG1pbmQgd2hpbGUgaGFja2luZyBjaHNfaWZf dXJsdmFyLjwvcD4KCgk8aDI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoK CTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3Rl eHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzkzMC9zbWRfaWYiPnRleHRwYXR0ZXJuLm9yZzwvYT4s IG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBh Z2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQ PC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0 aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJu LmNvbS92aWV3dG9waWMucGhwP2lkPTI1MzU3Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3Jl IGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUg cGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxldGUgZnJvbSB0aGUg QWRtaW4gLSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDI+VXNhZ2U8L2gyPgoKCTxwPlVz ZSB0aGUgdGFnIGluIGFueSBwYWdlLCBmb3JtIG9yIGFydGljbGUgY29udGV4dC4gQ2FuIGFs c28gYmUgdXNlZCBpbnNpZGUgZmlsZSwgaW1hZ2UgKGluIHRoZSBmdXR1cmUpIG9yIGxpbmsg bGlzdHMgdG8gdGFrZSBhY3Rpb24gZGVwZW5kaW5nIG9uIGF0dHJpYnV0ZXMgb2YgdGhlIGN1 cnJlbnQgaXRlbS48L3A+CgoJPGgzIGNsYXNzPSJ0YWciPnNtZF9pZjwvaDM+CgoJPHAgY2xh c3M9InRhZy1zdW1tYXJ5Ij5BdCB0aGUgcGxhY2UgeW91IHdpc2ggdG8gY29tcGFyZSBhIGZp ZWxkIHdpdGggYW5vdGhlciB2YWx1ZSwgcHV0IHRoaXMgdGFnIHdpdGggdGhlIGZpcnN0IHRo cmVlIG1hbmRhdG9yeSBhdHRyaWJ1dGVzLiBFYWNoIHRha2UgYSBzZXJpZXMgb2YgY29tbWEt c2VwYXJhdGVkIGxpc3RzICYjODIxMjsgdGhvdWdoIHRoZSA8YSBocmVmPSIjcGFyYW1kZWxp bSI+Y29tbWEgaXMgb3ZlcnJpZGFibGUgd2l0aCBwYXJhbV9kZWxpbTwvYT4uIElmIHRoZSBy ZXN1bHQgb2YgYWxsIHRoZSBjb21wYXJpc29uIHRlc3RzIGlzIDxzcGFuIGNsYXNzPSJjYXBz Ij5UUlVFPC9zcGFuPiB0aGUgY29udGFpbmVkIGJsb2NrIHdpbGwgYmUgZXhlY3V0ZWQuIElm IHRoZSByZXN1bHQgaXMgPHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPiwgYW55IDxj b2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gd2lsbCBiZSBleGVjdXRlZCBpbnN0ZWFk LiBXaXRob3V0IGFueSA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+IGJsb2NrLCBu b3RoaW5nIGlzIG91dHB1dCBpZiB0aGUgcmVzdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5G QUxTRTwvc3Bhbj4uPC9wPgoKCTxoNCBjbGFzcz0iYXR0cyAiIGlkPSJhdHRyaWJ1dGVzIj5B dHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSBtYW5k Ij5maWVsZDwvc3Bhbj4gOiB0aGUgPGEgaHJlZj0iI2ZpZWxkIj5maWVsZHM8L2E+IHRvIHRl c3Q8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFuZCI+b3BlcmF0b3I8L3Nw YW4+IDogdGhlIDxhIGhyZWY9IiNvcGVyYXRvciI+b3BlcmF0aW9uczwvYT4gZm9yIGNvbXBh cmlzb24gd2l0aCB0aGF0IGZpZWxkIChlLmcuIDxjb2RlPmVxPC9jb2RlPiwgPGNvZGU+bm90 PC9jb2RlPiwgPGNvZGU+YmVnaW5zPC9jb2RlPiwgZXRjKS4gRGVmYXVsdCBpcyB1c3VhbGx5 IDxjb2RlPmVxPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSBtYW5k Ij52YWx1ZTwvc3Bhbj4gOiB0aGUgPGEgaHJlZj0iI3ZhbHVlIj52YWx1ZXM8L2E+IHdpdGgg d2hpY2ggdG8gY29tcGFyZSB0aGUgZmllbGRzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj5sb2dpYzwvc3Bhbj4gOiBob3cgbXVsdGlwbGUgdGVzdHMgYXJlIGpvaW5lZDog PHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gb3IgT1IuIERlZmF1bHQgaXMgPHNwYW4g Y2xhc3M9ImNhcHMiPkFORDwvc3Bhbj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPmNhc2Vfc2Vuc2l0aXZlPC9zcGFuPiA6IDEgPSBjYXNlLXNlbnNpdGl2ZSBjb21wYXJp c29uOyAwID0gaWdub3JlIGNhc2UuIERlZmF1bHQgaXMgMDwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtbmFtZSI+ZmlsdGVyPC9zcGFuPiA6IGxpc3Qgb2YgcmVndWxhciBleHByZXNz aW9ucyB3aXRoIHdoaWNoIHRvIGZpbHRlciBvbmUgb3IgbW9yZSBmaWVsZHMvdmFsdWVzLiBT ZWUgPGEgaHJlZj0iI2ZpbHRlcmluZyI+ZmlsdGVyaW5nPC9hPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+cmVwbGFjZTwvc3Bhbj4gOiBsaXN0IG9mIGl0ZW1zIHdpdGgg d2hpY2ggdG8gcmVwbGFjZSBlYWNoIG9mIHRoZSBtYXRjaGluZyBmaWx0ZXJzPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5maWx0ZXJfdHlwZTwvc3Bhbj4gOiBsaW1pdCB0 aGUgZmlsdGVyIHRvIGNlcnRhaW4gdHlwZXMgb2YgdGVzdC4gQ2hvb3NlIGZyb20gPGNvZGU+ YWxsPC9jb2RlPiAodGhlIGRlZmF1bHQpLCA8Y29kZT51cmx2YXI8L2NvZGU+LCA8Y29kZT5w b3N0dmFyPC9jb2RlPiwgPGNvZGU+c3ZydmFyPC9jb2RlPiwgPGNvZGU+dHhwdmFyPC9jb2Rl PiwgPGNvZGU+cGhwdmFyPC9jb2RlPiwgb3IgYW55IGZpZWxkIG5hbWU8L2xpPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmZpbHRlcl9vbjwvc3Bhbj4gOiBlaXRoZXIgYXBwbHkg dGhlIGZpbHRlciB0byB0aGUgPGNvZGU+ZmllbGQ8L2NvZGU+LCB0aGUgPGNvZGU+dmFsdWU8 L2NvZGU+IG9yIGJvdGguIERlZmF1bHQ6IDxjb2RlPmZpZWxkPC9jb2RlPi4gUGxlYXNlIHNl ZSB0aGUgPGEgaHJlZj0iI2ZjYXZlYXQiPmZpbHRlcmluZyBjYXZlYXQ8L2E+IGJlbG93IGZv ciBpbXBvcnRhbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhdHRyaWJ1dGU8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnBhcmFtX2RlbGltPC9zcGFuPiA6IGRlbGltaXRl ciB1c2VkIGJldHdlZW4gZWFjaCBmaWVsZCwgb3BlcmF0b3Igb3IgdmFsdWUgaW4gYSBtdWx0 aS10ZXN0LiBEZWZhdWx0IGlzIGEgY29tbWEgKCwpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj5tb2RfZGVsaW08L3NwYW4+IDogZGVsaW1pdGVyIHVzZWQgd2hlbiBzcGVj aWZ5aW5nIGZpZWxkIG9yIG9wZXJhdG9yIG1vZGlmaWVycyBmb3IgdXJsdmFyLCBwb3N0dmFy LCBzdnJ2YXIgYW5kIHR4cHZhci4gRGVmYXVsdCBpcyBhIGNvbG9uICg6KTwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGlzdF9kZWxpbTwvc3Bhbj4gOiBkZWxpbWl0ZXIg dXNlZCB3aGVuIHNwZWNpZnlpbmcgYSBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayB2aWEgdGhl IDxjb2RlPmluPC9jb2RlPiBvciA8Y29kZT5ub3RpbjwvY29kZT4gb3BlcmF0b3JzLiBEZWZh dWx0IGlzIGEgZm9yd2FyZC1zbGFzaCAoLyk8L2xpPgoJPC91bD4KCgk8cD5UaGUgbGlzdHMg YXJlIHByb2Nlc3NlZCBpbiBvcmRlciwgaS5lLiB0aGUgMXN0IGZpZWxkIHVzZXMgdGhlIDFz dCBvcGVyYXRvciBpbiB0aGUgbGlzdCBhbmQgY29tcGFyZXMgaXQgdG8gdGhlIDFzdCB2YWx1 ZTsgdGhlIDJuZCBmaWVsZCB1c2VzIHRoZSAybmQgb3BlcmF0b3IgaW4gdGhlIGxpc3QgYW5k IGNvbXBhcmVzIGl0IHRvIHRoZSAybmQgdmFsdWUsIGFuZCBzbyBvbi4gVmFsdWVzIHNob3Vs ZCB1c3VhbGx5IGJlIHNwZWNpZmllZCB3aXRoIHBsYWNlaG9sZGVycyB0byBtYWludGFpbiBv cmRlcjogZS5nLiA8Y29kZT52YWx1ZT0mcXVvdDssIDQsLCB0b3AmcXVvdDs8L2NvZGU+PC9w PgoKCTxwPk5vdGUgdGhhdCwgYWx0aG91Z2ggdGhlIGZpcnN0IHRocmVlIGF0dHJpYnV0ZXMg YXJlIGNvbnNpZGVyZWQgbWFuZGF0b3J5LCBpZiB5b3UgaGFwcGVuIHRvIHJlcXVpcmUgdGhl IGRlZmF1bHQgb3BlcmF0b3IgZm9yIGFsbCB5b3VyIHRlc3RzLCB5b3UgY2FuIHNhZmVseSBv bWl0IDxjb2RlPm9wZXJhdG9yPC9jb2RlPi4gU2ltaWxhcmx5IHdpdGggdmFsdWVzOiBpZiB5 b3UgYXJlIGVudGlyZWx5IHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvciB0eXBlIG9mIHZhcmlh YmxlcywgeW91IGNhbiBvbWl0IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gcGFyYW1ldGVyIGlm IHlvdSB3aXNoLiBBbmQgaWYgeW91IGFyZSB0ZXN0aW5nIHRoZSBzYW1lIDxjb2RlPmZpZWxk PC9jb2RlPiBhZ2FpbiBhbmQgYWdhaW4gZm9yIGRpZmZlcmluZyBjb25kaXRpb25zLCB5b3Ug Y2FuIGxpc3QgaXQganVzdCBvbmNlIGFzIGEgY29udmVuaWVudCBzaG9ydGN1dC48L3A+CgoJ PGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJmaWVsZCI+ZmllbGQ8L2g0PgoKCTxwPkxpc3Qg b2YgZmllbGQgbG9jYXRpb25zIHRvIGxvb2sgYXQuIFNvbWUgdXNlZnVsIHZhbHVlcyBhcmU6 PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+c2VjdGlvbjwvY29kZT48L2xpPgoJCTxsaT48Y29k ZT5jYXRlZ29yeTwvY29kZT4gKG9yIDxjb2RlPmNhdGVnb3J5MTwvY29kZT4sIG9yIDxjb2Rl PmNhdGVnb3J5MjwvY29kZT4gaWYgb24gYW4gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxj b2RlPmF1dGhvcmlkPC9jb2RlPiBvciA8Y29kZT5hdXRob3I8L2NvZGU+PC9saT4KCQk8bGk+ PGNvZGU+aWQ8L2NvZGU+IChmaWxlL2xpbmsvaW1hZ2UvYXJ0aWNsZSBJRCkuIEluIGFuIGlu ZGl2aWR1YWwgYXJ0aWNsZSBjb250ZXh0LCB1c2UgPGNvZGU+dGhpc2lkPC9jb2RlPiBpbnN0 ZWFkPC9saT4KCQk8bGk+PGNvZGU+cXVlcnk8L2NvZGU+ICh0aGUgcXVlcnkgc3RyaW5nIGZy b20gdGhlIHNlYXJjaCBmb3JtKTwvbGk+CgkJPGxpPjxjb2RlPnBnPC9jb2RlPiAodGhlIGN1 cnJlbnQgcGFnZSBudW1iZXIgaW4gbGlzdHMpPC9saT4KCQk8bGk+PGNvZGU+bW9udGg8L2Nv ZGU+IChjdXJyZW50IG1vbnRoIGZpZWxkIGZyb20gdGhlIGFkZHJlc3MgYmFyKTwvbGk+CgkJ PGxpPjxjb2RlPnN0YXR1czwvY29kZT4gKGRvY3VtZW50IHN0YXR1czogMjAwLCA0MDQsIDQw MywgZXRjKTwvbGk+CgkJPGxpPjxjb2RlPnBhZ2U8L2NvZGU+ICh0aGUgPHNwYW4gY2xhc3M9 ImNhcHMiPlRYUDwvc3Bhbj4gUGFnZSB0ZW1wbGF0ZSB1c2VkIGJ5IHRoaXMgc2VjdGlvbik8 L2xpPgoJCTxsaT48Y29kZT5uZXh0X2lkPC9jb2RlPiAvIDxjb2RlPnByZXZfaWQ8L2NvZGU+ IChJRCBvZiBuZXh0L3ByZXYgZG9jdW1lbnQgaWYgb24gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJ PGxpPjxjb2RlPm5leHRfdGl0bGU8L2NvZGU+IC8gPGNvZGU+cHJldl90aXRsZTwvY29kZT4o VGl0bGUgb2YgbmV4dC9wcmV2IGRvY3VtZW50IGlmIG9uIGFydGljbGUgcGFnZSk8L2xpPgoJ CTxsaT48Y29kZT5uZXh0X3V0aXRsZTwvY29kZT4gLyA8Y29kZT5wcmV2X3V0aXRsZTwvY29k ZT4gKHVybC10aXRsZSBvZiBuZXh0L3ByZXYgZG9jdW1lbnQgaWYgb24gYXJ0aWNsZSBwYWdl KTwvbGk+CgkJPGxpPjxjb2RlPnBlcm1saW5rX21vZGU8L2NvZGU+ICh0YWtlIGFjdGlvbiBi YXNlZCBvbiBvbmUgb2YgdGhlIG1lc3N5L2NsZWFuIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IHNjaGVtZXMpPC9saT4KCQk8bGk+PGNvZGU+b3RoZXIgYXJ0aWNsZS9maWxlL2xp bmsgZmllbGQ8L2NvZGU+IChlLmcuIGJvZHksIGV4Y2VycHQsIGFydGljbGVfaW1hZ2UsIGtl eXdvcmRzLCBsaW5rYW5tZSwgZmlsZW5hbWUsIGRvd25sb2FkcywgJiM4MjMwOyk8L2xpPgoJ CTxsaT48Y29kZT5teV9jdXN0b21fZmllbGRfbmFtZTwvY29kZT4gKGFueSBjdXN0b20gZmll bGRzIHlvdSBoYXZlIGRlZmluZWQpPC9saT4KCQk8bGk+PGNvZGU+dXJsdmFyOnZhcl9uYW1l PC9jb2RlPiAoYW55IHZhcmlhYmxlIGluIHRoZSBhZGRyZXNzIGJhciBhZnRlciB0aGUgPGNv ZGU+PzwvY29kZT4pPC9saT4KCQk8bGk+PGNvZGU+cG9zdHZhcjp2YXJfbmFtZTwvY29kZT4g KGFueSB2YXJpYWJsZSBwb3N0ZWQgZnJvbSBhbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwv c3Bhbj4gZm9ybSk8L2xpPgoJCTxsaT48Y29kZT5zdnJ2YXI6dmFyX25hbWU8L2NvZGU+IChh bnkgc3RhbmRhcmQgc2VydmVyIHZhcmlhYmxlLCBlLmcuIDxzcGFuIGNsYXNzPSJjYXBzIj5I VFRQPC9zcGFuPl9VU0VSX0FHRU5UKTwvbGk+CgkJPGxpPjxjb2RlPnR4cHZhcjpteV92YXI8 L2NvZGU+IChhbnkgVGV4dHBhdHRlcm4gdmFyaWFibGUgc2V0IHdpdGggPGNvZGU+Jmx0O3R4 cDp2YXJpYWJsZSBuYW1lPSZxdW90O215X3ZhciZxdW90OyAvJmd0OzwvY29kZT4pPC9saT4K CQk8bGk+PGNvZGU+cGhwdmFyOm15X3ZhcjwvY29kZT4gKGFueSA8c3BhbiBjbGFzcz0iY2Fw cyI+UEhQPC9zcGFuPiB2YXJpYWJsZSA8ZW0+aW4gdGhlIGdsb2JhbCBzY29wZTwvZW0+KTwv bGk+CgkJPGxpPjxjb2RlPnBhcmVudDpvcHRpb25hbF9tb2RpZmllcnM8L2NvZGU+ICh3aGV0 aGVyIHRoZSBnaXZlbiBjYXRlZ29yeSBpcyBhIGRlc2NlbmRlbnQgb2YgYW5vdGhlciBjYXRl Z29yeSk8L2xpPgoJCTxsaT48Y29kZT5OVUxMPC9jb2RlPiAodXNlZnVsIHdoZW4gY29tcGFy aW5nIGFyYml0cmFyeSB2YWx1ZXMgZm9yIGVtcHRpbmVzcyk8L2xpPgoJPC91bD4KCgk8cD5J ZiB5b3Ugc3BlY2lmeSBhIGZpZWxkIG5hbWUgdGhhdCBkb2VzIG5vdCBleGlzdCwgdGhlIHRl eHQgeW91IHVzZSB3aWxsIGJlIHRha2VuIHZlcmJhdGltIGluIG1vc3QgY2FzZXMuPC9wPgoK CTxwPklmIHlvdSB3aXNoIHRvIGNvbXBhcmUgYSBmaWVsZCB0aGF0IG1pZ2h0IGNvbnRhaW4g PHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IChlLmcgPGNvZGU+Ym9keTwvY29kZT4p LCBhZGQgdGhlIG1vZGlmaWVyIDxjb2RlPjpOT1RBR1M8L2NvZGU+IHRvIHRoZSBlbmQgb2Yg dGhlIGZpZWxkLiBJdCB3aWxsIGhhdmUgaXRzIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9z cGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdGFncyBzdHJpcHBlZCBm cm9tIGl0IGFuZCB3aWxsIGFsc28gYmUgdHJpbW1lZCB0byByZW1vdmUgbGVhZGluZyBhbmQg dHJhaWxpbmcgc3BhY2VzLiBZb3UgbWF5IGNob29zZSB0byBzb2xlbHkgcmVtb3ZlIHNwYWNl cyBmcm9tIGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYW55IGZpZWxkIGJ5IGFkZGluZyA8 Y29kZT46VFJJTTwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgZmllbGQuPC9wPgoKCTxwPlRo ZSBzcGVjaWFsIGZpZWxkIDxjb2RlPnBhcmVudDwvY29kZT4gY2hlY2tzIHRoZSBwYXJlbnQg Y2F0ZWdvcnkgZm9yIGEgbWF0Y2guIFVubGlrZSB0aGUgb3RoZXIgZmllbGQgdHlwZXMsIHRo ZSBkZWZhdWx0IDxhIGhyZWY9IiNvcGVyYXRvciI+b3BlcmF0b3I8L2E+IGZvciBwYXJlbnQg aXMgJiM4MjE2O2NvbnRhaW5zJiM4MjE3Oy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbnRpcmUg dHJlZSBpcyBjaGVja2VkIGZvciBhIG1hdGNoLCBzdGFydGluZyBmcm9tIHRoZSB0b3Agb2Yg dGhlIHRyZWUgZG93biB0byB0aGUgY3VycmVudCBjYXRlZ29yeS4gSW50ZXJuYWxseSwgdGhl IHBsdWdpbiBtYWtlcyB1cCBhICYjODIyMDticmVhZGNydW1iIHRyYWlsJiM4MjIxOyBvZiBj YXRlZ29yaWVzIGluIHRoZSBjdXJyZW50IGJyYW5jaCwgZWFjaCBzZXBhcmF0ZWQgYnkgYSBz cGFjZSwgc28gdGVzdGluZyBmb3IgZXF1YWxpdHkgd291bGQgcmVxdWlyZSBwdXR0aW5nIHRo ZW0gYWxsIGluIHRoZSA8YSBocmVmPSIjdmFsdWUiPnZhbHVlPC9hPiBwYXJhbWV0ZXIuPC9w PgoKCTxwPllvdSBhcmUgb2YgY291cnNlIGZyZWUgdG8gY2hvb3NlIGFuIGFsdGVybmF0aXZl IG9wZXJhdG9yOyA8Y29kZT5iZWdpbnM8L2NvZGU+IGlzIHZlcnkgdXNlZnVsIGZvciB0ZXN0 aW5nIGlmIHRoZSB0b3AgbGV2ZWwgY2F0ZWdvcnkgbWF0Y2hlcyB0aGUgb25lIGdpdmVuIGlu IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gZmllbGQuPC9wPgoKCTxwPklmIHlvdSB1c2UgPGNv ZGU+cGFyZW50OkxWTG48L2NvZGU+LCB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIHJlc3RyaWN0 ZWQgdG8gdGhhdCAmIzgyMjA7bGV2ZWwmIzgyMjE7IG9mIHN1Yi1jYXRlZ29yeTsgTFZMMSBp cyB0aGUgJiM4MjIwO3RvcCYjODIyMTsgbGV2ZWwsIExWTDIgaXMgdGhlIG5leHQgc3ViLWNh dGVnb3J5IGxldmVsLCBhbmQgc28gb24uIFdoZW4gdXNpbmcgdGhlc2UgbW9kaWZpZXJzLCB0 aGUgJiM4MjE2O2VxJiM4MjE3OyBvcGVyYXRvciBiZWNvbWVzIG1vcmUgdXNlZnVsIGJlY2F1 c2UgeW91IGFyZSBjb21wYXJpbmcgYSBzaW5nbGUgcGFyZW50IGNhdGVnb3J5LjwvcD4KCgk8 cD5JZiB5b3Ugd2lzaCB0byBjb21wYXJlIGFnYWluc3QgdGhlIGNhdGVnb3J5JiM4MjE3O3Mg dGl0bGUgaW5zdGVhZCBvZiBpdHMgbmFtZSwgYWRkIHRoZSA8Y29kZT46VFRMPC9jb2RlPiBt b2RpZmllci4gVG8gdGVzdCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoZSBnaXZlbiBjYXRl Z29yeSBoYXMsIHNwZWNpZnkgPGNvZGU+OktJRFM8L2NvZGU+LiBOb3RlIHRoYXQgPHNwYW4g Y2xhc3M9ImNhcHMiPlRUTDwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5LSURTPC9z cGFuPiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIGFuZCBpZiB0aGV5IGFyZSBib3RoIGVtcGxv eWVkLCB0aGUgbGFzdCBvbmUgdXNlZCB0YWtlcyBwcmlvcml0eS48L3A+CgoJPHA+V2hlbiB1 c2luZyBhcnRpY2xlcywgeW91IGNhbiBmdXJ0aGVyIG1vZGlmeSB0aGUgYmVoYXZpb3VyIG9m IHRoZSBwYXJlbnQgdXNpbmcgdGhlIDxjb2RlPkNBVG48L2NvZGU+IHN5bnRheCAod2hlcmUg JiM4MjE2O24mIzgyMTc7IGlzIDEgb3IgMikuIFNwZWNpZnlpbmcgJiM4MjIwO3BhcmVudCYj ODIyMTsgd2l0aG91dCA8Y29kZT5DQVRuPC9jb2RlPiB3aWxsIHVzZSB0aGUgZ2xvYmFsIGNh dGVnb3J5ICg8Y29kZT4/Yz08L2NvZGU+KS4gSWYgeW91IGFkZCA8Y29kZT46Q0FUbjwvY29k ZT4gaXQgd2lsbCBpbnN0ZWFkIGNvbXBhcmUgdGhlIGFydGljbGUmIzgyMTc7cyBjYXRlZ29y eTEgb3IgY2F0ZWdvcnkyIHJlc3BlY3RpdmVseS48L3A+CgoJPHA+WW91IGNhbiB1c2UgPHNw YW4gY2xhc3M9ImNhcHMiPkNBVDwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJjYXBzIj5MVkw8L3Nw YW4+IGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+VFRMPC9zcGFuPi9LSURTIGluIGNvbWJpbmF0 aW9uLCBpbmRlcGVuZGVudGx5IG9yIG5vdCBhdCBhbGwuIFRoaXMgYWxsb3dzIGNvbXBhcmlz b25zIHN1Y2ggYXMgJiM4MjIwO2lmIHRoZSAybmQgc3ViLWNhdGVnb3J5IG9mIGNhdGVnb3J5 MSBlcXVhbHMgYmxhaGJsYWgmIzgyMjE7IG9yICYjODIyMDtpZiBjYXRlZ29yeTIgaXMgYSBj aGlsZCBvZiBibGFoYmxhaCYjODIyMTsuIFNlZSA8YSBocmVmPSIjZWc0Ij5FeGFtcGxlIDQ8 L2E+LjwvcD4KCgk8cD5PbmUgb3RoZXIgc3BlY2lhbCBmaWVsZCBpcyA8Y29kZT5OVUxMPC9j b2RlPi4gVGhpcyBpcyBleGFjdGx5IHdoYXQgaXQgc2F5cyBpdCBpczogZW1wdHkuIFRoZSBy ZWFzb24gZm9yIGl0cyBpbmNsdXNpb24gaXMgdGhhdCBzb21ldGltZXMgeW91IHdpc2ggdG8g dGVzdCBzb21ldGhpbmcgdGhhdCBpc24mIzgyMTc7dCBhIHRydWUgdmFyaWFibGUgJiM4MjEy OyBlLmcuIGEgcmVwbGFjZW1lbnQgdmFyaWFibGUgZnJvbSBzbWRfdmFycyBvciBzbWRfZWFj aCAmIzgyMTI7IHRvIHNlZSBpZiBpdCYjODIxNztzIGVtcHR5IG9yIG5vdC48L3A+CgoJPHA+ SWYgeW91IHdlcmUgdG8gcHV0IHRoaXM6PC9wPgoKCTxwPjxjb2RlPiZsdDt0eHA6c21kX2lm IGZpZWxkPSZxdW90O3tyZXN1bHR9JnF1b3Q7IG9wZXJhdG9yPSZxdW90O2lzZW1wdHkmcXVv dDsmZ3Q7PC9jb2RlPjwvcD4KCgk8cD55b3Ugd291bGQgbm90IGdldCB0aGUgcmVzdWx0IHlv dSBleHBlY3QgKGl0JiM4MjE3O3MgcHJldHR5IGVzb3RlcmljIGJ1dCBpdCByZXZvbHZlcyBh cm91bmQgdGhlIGZhY3QgdGhhdCA8Y29kZT4mcXVvdDsmcXVvdDs8L2NvZGU+IChhcyBhIHZh cmlhYmxlIG5hbWUpIGlzIG5vdCBlbXB0eSwgaXQmIzgyMTc7cyBpbnZhbGlkKS4gVG8gZ2V0 IHJvdW5kIHRoaXMgeW91IG1heSB1c2UgPHNwYW4gY2xhc3M9ImNhcHMiPk5VTEw8L3NwYW4+ IGFzIGEgcGxhY2Vob2xkZXIgYW5kIG1vdmUgdGhlIHRoaW5nIHlvdSB3YW50IHRvIGNoZWNr IGludG8gdGhlIDxjb2RlPnZhbHVlPC9jb2RlPiBpbnN0ZWFkLCBlLmc6PC9wPgoKCTxwPjxj b2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O05VTEwmcXVvdDsgb3BlcmF0b3I9JnF1 b3Q7ZXEmcXVvdDsgdmFsdWU9JnF1b3Q7e3Jlc3VsdH0mcXVvdDsmZ3Q7PC9jb2RlPjwvcD4K Cgk8cD53aWxsIHRlc3QgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBvYmpl Y3QgKGkuZS4gJiM4MjE2O2VtcHRpbmVzcyYjODIxNzspIHRvIHNlZSBpZiBpdCYjODIxNztz IGVxdWFsIHRvIHRoZSA8Y29kZT57cmVzdWx0fTwvY29kZT4gcmVwbGFjZW1lbnQgdmFyaWFi bGUuIFlvdSBjYW4gdXNlIHNpbWlsYXIgbG9naWMgdG8gdGVzdCBmb3Igb3B0aW9uYWwgdmFy aWFibGVzIGJ5IHN3YXBwaW5nIHRoZSBmaWVsZCBhbmQgdmFsdWUsIGxpa2UgdGhpczo8L3A+ CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7NyZxdW90OyBvcGVyYXRv cj0mcXVvdDtndCZxdW90OyB2YWx1ZT0mcXVvdDt7cmVzdWx0fSZxdW90OyZndDs8L2NvZGU+ PC9wPgoKCTxwPlRoYXQgd291bGQgc2VlIGlmIHRoZSByZXBsYWNlbWVudCB2YXJpYWJsZSA8 Y29kZT57cmVzdWx0fTwvY29kZT4gd2FzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA3ICh0aGF0 JiM4MjE3O3Mgbm90IGEgdHlwbywgdGhlIGxvZ2ljIGlzIHJldmVyc2VkIGluIHRoaXMgY2Fz ZTogaXQgaXMgaW50ZXJwcmV0ZWQgYXM6ICYjODIyMDtpcyA3IGdyZWF0ZXIgdGhhbiB7cmVz dWx0fSYjODIyMTssIHdoaWNoIGlzIHRoZSBzYW1lIGFzICYjODIyMDtpcyB7cmVzdWx0fSBs ZXNzIHRoYW4gb3IgZXF1YWwgdG8gNyYjODIyMTshKTwvcD4KCgk8aDQgY2xhc3M9ImF0dC1u YW1lICIgaWQ9Im9wZXJhdG9yIj5vcGVyYXRvcjwvaDQ+CgoJPHA+TGlzdCBvZiBvcGVyYXRv cnMgdG8gYXBwbHksIGluIG9yZGVyLCB0byBlYWNoIGZpZWxkLiBDaG9vc2UgZnJvbTo8L3A+ CgoJPHVsPgoJCTxsaT48Y29kZT5lcTwvY29kZT4gRXF1YWwgKHRoZSBkZWZhdWx0IGZvciBh bGwgZXhjZXB0ICYjODIxNjtwYXJlbnQmIzgyMTc7KTwvbGk+CgkJPGxpPjxjb2RlPm5vdDwv Y29kZT4gTm90IGVxdWFsPC9saT4KCQk8bGk+PGNvZGU+bHQ8L2NvZGU+IExlc3MgdGhhbjwv bGk+CgkJPGxpPjxjb2RlPmd0PC9jb2RlPiBHcmVhdGVyIHRoYW48L2xpPgoJCTxsaT48Y29k ZT5sZTwvY29kZT4gTGVzcyB0aGFuIG9yIGVxdWFsIHRvPC9saT4KCQk8bGk+PGNvZGU+Z2U8 L2NvZGU+IEdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bzwvbGk+CgkJPGxpPjxjb2RlPmluPC9j b2RlPiBGaWVsZCBpcyBvbmUgb2YgYSBsaXN0IG9mIHZhbHVlcyAodXNlIDxjb2RlPmxpc3Rf ZGVsaW08L2NvZGU+IHRvIHNlcGFyYXRlIHZhbHVlcyk8L2xpPgoJCTxsaT48Y29kZT5ub3Rp bjwvY29kZT4gRmllbGQgaXMgbm90IG9uZSBvZiB0aGUgZ2l2ZW4gbGlzdCBvZiB2YWx1ZXMg KHVzZSA8Y29kZT5saXN0X2RlbGltPC9jb2RlPiB0byBzZXBhcmF0ZSB2YWx1ZXMpPC9saT4K CQk8bGk+PGNvZGU+ZGl2aXNpYmxlPC9jb2RlPiBGaWVsZCBpcyBleGFjdGx5IGRpdmlzaWJs ZSBieSB0aGUgdmFsdWU8L2xpPgoJCTxsaT48Y29kZT5iZXR3ZWVuPC9jb2RlPiBGaWVsZCBs aWVzIGJldHdlZW4gdGhlIGdpdmVuIHZhbHVlcywgZXhjbHVzaXZlICh1c2UgPGNvZGU+bGlz dF9kZWxpbTwvY29kZT4gdG8gc2VwYXJhdGUgdmFsdWVzKTwvbGk+CgkJPGxpPjxjb2RlPnJh bmdlPC9jb2RlPiBGaWVsZCBpcyB3aXRoaW4gdGhlIHJhbmdlIG9mIGdpdmVuIHZhbHVlcywg aW5jbHVzaXZlICh1c2UgPGNvZGU+bGlzdF9kZWxpbTwvY29kZT4gdG8gc2VwYXJhdGUgdmFs dWVzKTwvbGk+CgkJPGxpPjxjb2RlPmJlZ2luczwvY29kZT4gRmllbGQgYmVnaW5zIHdpdGgg YSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+PGNvZGU+Y29udGFpbnM8L2Nv ZGU+IEZpZWxkIGNvbnRhaW5zIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyAoZGVmYXVsdCBm b3IgJiM4MjE2O3BhcmVudCYjODIxNzspPC9saT4KCQk8bGk+PGNvZGU+ZW5kczwvY29kZT4g RmllbGQgZW5kcyB3aXRoIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVyczwvbGk+CgkJPGxpPjxj b2RlPmlzZW1wdHk8L2NvZGU+IEZpZWxkIGlzIGVtcHR5IChjb250YWlucyBub3RoaW5nKTwv bGk+CgkJPGxpPjxjb2RlPmlzdXNlZDwvY29kZT4gRmllbGQgaGFzIHNvbWUgdmFsdWU8L2xp PgoJCTxsaT48Y29kZT5kZWZpbmVkPC9jb2RlPiBGaWVsZCBpcyBzZXQgKHVzZWZ1bCB3aXRo IHVybHZhciB2YXJpYWJsZXMpPC9saT4KCQk8bGk+PGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBG aWVsZCBpcyBub3Qgc2V0LCBvciBtaXNzaW5nIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+IGxpbmU8L2xpPgoJCTxsaT48Y29kZT5pc251bTwvY29kZT4gRmllbGQg aXMgYSBudW1iZXI8L2xpPgoJCTxsaT48Y29kZT5pc2FscGhhPC9jb2RlPiBGaWVsZCBjb250 YWlucyBjaGFyYWN0ZXJzIG9ubHk8L2xpPgoJCTxsaT48Y29kZT5pc2FsbnVtPC9jb2RlPiBG aWVsZCBjb250YWlucyBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvbmx5PC9saT4KCQk8bGk+ PGNvZGU+aXNsb3dlcjwvY29kZT4gRXZlcnkgY2hhcmFjdGVyIGluIHRoZSBmaWVsZCBpcyBs b3dlciBjYXNlPC9saT4KCQk8bGk+PGNvZGU+aXN1cHBlcjwvY29kZT4gRXZlcnkgY2hhcmFj dGVyIGluIHRoZSBmaWVsZCBpcyB1cHBlciBjYXNlPC9saT4KCQk8bGk+PGNvZGU+aXNwdW5j dDwvY29kZT4gRXZlcnkgY2hhcmFjdGVyIGluIHRoZSBmaWVsZCBpcyBzb21lIHB1bmN0dWF0 aW9uIG1hcms8L2xpPgoJCTxsaT48Y29kZT5pc3NwYWNlPC9jb2RlPiBFdmVyeSBjaGFyYWN0 ZXIgaW4gdGhlIGZpZWxkIGlzIGEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgKG9yIHRhYiwgbmV3 bGluZSwgZXRjKTwvbGk+Cgk8L3VsPgoKCTxwPldpdGggdGhlIGNvbXBhcmlzb24gb3BlcmF0 b3JzIChwcmltYXJpbHkgZ3QsIGx0LCBnZSwgbGUpIHlvdSBtYXkgZmluZCBvZGQgYmVoYXZp b3VyIHdoZW4gY29tcGFyaW5nIG51bWJlcnMuIEZvciBleGFtcGxlLCA8Y29kZT51cmx2YXI6 cGljIGd0IDY8L2NvZGU+IHdpbGwgcmV0dXJuIDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9z cGFuPiBpZiA8Y29kZT5waWM8L2NvZGU+IGlzIHNldCB0byAmIzgyMjA7ZnJlZCYjODIyMTsu IFRoaXMgaXMgYmVjYXVzZSB0aGUgd29yZCAmIzgyMjA7ZnJlZCYjODIyMTsgKG9yIGF0IGxl YXN0IHRoZSAmIzgyMjA7Y2hhcmFjdGVyIGYmIzgyMjE7KSBpcyBncmVhdGVyIGluIHRoZSA8 c3BhbiBjbGFzcz0iY2FwcyI+QVNDSUk8L3NwYW4+IHRhYmxlIHRoYW4gdGhlICYjODIyMDtj aGFyYWN0ZXIgNiYjODIyMTsuPC9wPgoKCTxwPlRvIGNpcmN1bXZlbnQgdGhpcyBwcm9ibGVt LCB5b3UgbWF5IGFwcGVuZCA8Y29kZT46TlVNPC9jb2RlPiB0byB0aGUgZW5kIG9mIGFueSBv ZiB0aGVzZSBvcGVyYXRvcnMgdG8gZm9yY2UgdGhlIHBsdWdpbiB0byBjaGVjayB0aGF0IHRo ZSB2YWx1ZXMgYXJlIGludGVnZXJzLjwvcD4KCgk8cD5JZiB5b3Ugd2lzaCB0byBjb21wYXJl IHRoZSBsZW5ndGggb2YgYSBmaWVsZCBvciB2YWx1ZSwgYXBwZW5kIDxjb2RlPjpMRU48L2Nv ZGU+IHRvIGFueSBvZiB0aGUgbnVtZXJpY2FsIGNvbXBhcmlzb24gb3BlcmF0b3JzLiBJdCBk b2VzbiYjODIxNzt0IG1ha2Ugc2Vuc2UgdG8gdXNlIGJvdGggPGNvZGU+Ok5VTTwvY29kZT4g YW5kIDxjb2RlPjpMRU48L2NvZGU+IHRvZ2V0aGVyLCBzbyB0aGV5IGFyZSBtdXR1YWxseSBl eGNsdXNpdmUuPC9wPgoKCTxwPlRoZXJlIGlzIGEgc3VidGxlIGRpZmZlcmVuY2UgYmV0d2Vl biB0aGUgb3BlcmF0b3JzIDxjb2RlPmJldHdlZW48L2NvZGU+IGFuZCA8Y29kZT5yYW5nZTwv Y29kZT47IHRoZSBmb3JtZXIgZG9lcyBub3QgaW5jbHVkZSB0aGUgZW5kcG9pbnQgdmFsdWVz IHlvdSBzcGVjaWZ5IHdoZXJlYXMgdGhlIGxhdHRlciBkb2VzLiBGb3IgZXhhbXBsZSwgdGhl IHZhbHVlIDxjb2RlPjEwPC9jb2RlPiBpcyBpbiB0aGUgcmFuZ2UgPGNvZGU+MTAvMjA8L2Nv ZGU+IGJ1dCBpdCBpcyA8ZW0+bm90PC9lbT4gYmV0d2VlbiA8Y29kZT4xMC8yMDwvY29kZT4u IFRoZSB2YWx1ZSA8Y29kZT4xMTwvY29kZT4sIGhvd2V2ZXIsIHNhdGlzZmllcyBib3RoLiBZ b3UgY2FuIHVzZSB0aGUgPGNvZGU+Ok5VTTwvY29kZT4gbW9kaWZpZXIgZm9yIHRoZXNlIHR3 byBvcGVyYXRvcnMsIHRob3VnaCBtb3N0IHRlc3RzIHdpbGwgd29yayBmaW5lIHdpdGhvdXQg aXQuIFlvdSBjYW4gYWxzbyBjb21wYXJlIG5vbi1pbnRlZ2VyIHZhbHVlcyB3aXRoIHRoZXNl IG9wZXJhdG9ycy48L3A+CgoJPHA+VGhlIDxjb2RlPmJlZ2luczwvY29kZT4sIDxjb2RlPmVu ZHM8L2NvZGU+IGFuZCA8Y29kZT5jb250YWluczwvY29kZT4gb3BlcmF0b3JzLCBhbG9uZyB3 aXRoIGFueSBvZiB0aGUgPGNvZGU+aXM8L2NvZGU+IG9wZXJhdG9ycyAoZXhjZXB0IDxjb2Rl Pmlzc3BhY2U8L2NvZGU+KSwgY2FuIHRha2UgYW4gZXh0cmEgcGFyYW1ldGVyIGFzIHdlbGwu IFNpbmNlIHRoZXkgY29tcGFyZSBldmVyeSBjaGFyYWN0ZXIgYWdhaW5zdCB0aGUgZ2l2ZW4g YmVoYXZpb3VyLCBzcGFjZSBjaGFyYWN0ZXJzIGNhbiBtZXNzIHRoaW5ncyB1cCBhIGJpdC4g Rm9yIGV4YW1wbGUgPGNvZGU+ZmllbGQ9JnF1b3Q7Y3VzdG9tMSZxdW90OyBvcGVyYXRvcj0m cXVvdDtpc2xvd2VyJnF1b3Q7PC9jb2RlPiB3aWxsIGZhaWwgaWYgY3VzdG9tMSBjb250YWlu cyAmIzgyMjA7dGhpcyBpcyBhIHRlc3QmIzgyMjE7LiBPciBjb21wYXJpbmcgc29tZXRoaW5n IHRvIDxjb2RlPmJvZHk8L2NvZGU+IGNhbiBmYWlsIGJlY2F1c2UgdGhlIGJvZHkgb2Z0ZW4g c3RhcnRzIHdpdGggYSBudW1iZXIgb2Ygc3BhY2UgY2hhcmFjdGVycy4gVG8gY2lyY3VtdmVu dCB0aGlzLCBhZGQgPGNvZGU+Ok5PU1BBQ0U8L2NvZGU+IHRvIHRoZSBvcGVyYXRvciB3aGlj aCB3aWxsIHJlbW92ZSBhbGwgc3BhY2VzIGZyb20gdGhlIHN0cmluZyBiZWZvcmUgdGVzdGlu ZyBpdC48L3A+CgoJPHA+Tm90ZSBhbHNvIHRoYXQgd2hpbGUgPGNvZGU+ZGVmaW5lZDwvY29k ZT4gYW5kIDxjb2RlPnVuZGVmaW5lZDwvY29kZT4gZGlmZmVyIHNlbWFudGljYWxseSBmcm9t IDxjb2RlPmlzdXNlZDwvY29kZT4gYW5kIDxjb2RlPmlzZW1wdHk8L2NvZGU+IChyZXNwZWN0 aXZlbHkpLCB0aGUgd2F5IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGFzc2lnbnMg dmFyaWFibGVzIG1lYW5zIHRoYXQsIGZvciB0aGUgbW9zdCBwYXJ0LCB0aGUgdGVybXMgYXJl IGludGVyY2hhbmdlYWJsZS4gV2hlbiBkZWFsaW5nIHdpdGggdXJsdmFycywgcG9zdHZhcnMg YW5kIHN2cnZhcnMsIHRoZSB0d28gc2V0cyBvZiBvcGVyYXRvcnMgYmVoYXZlIGluZGVwZW5k ZW50bHksIGFzIHlvdSB3b3VsZCBleHBlY3QuIFNlZSA8YSBocmVmPSIjZWc1Ij5FeGFtcGxl IDU8L2E+IGZvciBtb3JlLiBOZWl0aGVyIDxjb2RlPmRlZmluZWQ8L2NvZGU+IG5vciA8Y29k ZT51bmRlZmluZWQ8L2NvZGU+IG1ha2Ugc2Vuc2Ugd2l0aCA8Y29kZT5wYXJlbnQ8L2NvZGU+ LCBzbyB0aGV5IGFyZSBmb3JiaWRkZW4uPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBp ZD0idmFsdWUiPnZhbHVlPC9oND4KCgk8cD5MaXN0IG9mIHZhbHVlcyB0byBjb21wYXJlIGVh Y2ggZmllbGQgaW4gdHVybiB0by4gQ2FuIGJlIHN0YXRpYyB2YWx1ZXMvdGV4dCBvciB0aGUg bmFtZSBvZiBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGQsIGxpa2Ug dGhvc2UgZ2l2ZW4gaW4gPGEgaHJlZj0iI2ZpZWxkIj5maWVsZDwvYT4gKGV4Y2VwdCAmIzgy MjA7cGFyZW50JiM4MjIxOykuPC9wPgoKCTxwPlRvIGRpc3Rpbmd1aXNoIGEgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGQgZnJvbSBzdGF0aWMgdGV4dCwgcHJlZml4IHRo ZSBmaWVsZCBuYW1lIHdpdGggPGNvZGU+PzwvY29kZT4uIEZvciBleGFtcGxlOiA8Y29kZT52 YWx1ZT0mcXVvdDt0aXRsZSZxdW90OzwvY29kZT4gd2lsbCBjb21wYXJlIHlvdXIgY2hvc2Vu IGZpZWxkIGFnYWluc3QgdGhlIHdvcmQgJiM4MjIwO3RpdGxlJiM4MjIxOywgd2hlcmVhcyA8 Y29kZT52YWx1ZT0mcXVvdDs/dGl0bGUmcXVvdDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5b3Vy IGZpZWxkIGFnYWluc3QgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIHRpdGxlLjwvcD4K Cgk8cD5JZiB5b3Ugd2lzaCB0byBjb21wYXJlIGEgdmFsdWUgdGhhdCBtaWdodCBjb250YWlu IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiAoZS5nIDxjb2RlPj9ib2R5PC9jb2Rl PiksIGFkZCB0aGUgbW9kaWZpZXIgPGNvZGU+Ok5PVEFHUzwvY29kZT4gdG8gdGhlIGVuZCBv ZiB0aGUgdmFsdWUuIEl0IHdpbGwgaGF2ZSBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8 L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiB0YWdzIHN0cmlwcGVk IGZyb20gaXQgYW5kIHdpbGwgYWxzbyBiZSB0cmltbWVkIHRvIHJlbW92ZSBsZWFkaW5nIGFu ZCB0cmFpbGluZyBzcGFjZXMuIFlvdSBtYXkgY2hvb3NlIHRvIHNvbGVseSByZW1vdmUgc3Bh Y2VzIGZyb20gYm90aCB0aGUgc3RhcnQgYW5kIGVuZCBvZiBhbnkgdmFsdWUgYnkgYWRkaW5n IDxjb2RlPjpUUklNPC9jb2RlPiB0byB0aGUgZW5kIG9mIHRoZSB2YWx1ZS48L3A+CgoJPHA+ Tm90ZSB0aGF0IHlvdSBtYXkgZmluZCB1c2luZyBkb3VibGUtcXVvdGVzIGluIGZpZWxkcyBn aXZlcyB1bmV4cGVjdGVkIHJlc3VsdHMuIFRoZXkgYXJlIGJlc3QgYXZvaWRlZCwgb3Igd29y a2VkIGFyb3VuZCBieSB1c2luZyA8Y29kZT5jb250YWluczwvY29kZT4gaW5zdGVhZCBvZiA8 Y29kZT5lcTwvY29kZT4uPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0ibG9naWMi PmxvZ2ljPC9oND4KCgk8cD5DYW4gYmUgb25lIG9mIDxjb2RlPmFuZDwvY29kZT4gKHRoZSBk ZWZhdWx0KSBvciA8Y29kZT5vcjwvY29kZT4uIElmIHVzaW5nIDxjb2RlPmFuZDwvY29kZT4s IGFsbCBjb25kaXRpb25zIG11c3QgYmUgbWV0IGZvciBhIDxzcGFuIGNsYXNzPSJjYXBzIj5U UlVFPC9zcGFuPiByZXN1bHQuIElmIHVzaW5nIDxjb2RlPm9yPC9jb2RlPiwgYW55IG9mIHRo ZSBjb25kaXRpb25zIHRoYXQgbWF0Y2ggd2lsbCBnaXZlIGEgPHNwYW4gY2xhc3M9ImNhcHMi PlRSVUU8L3NwYW4+IHJlc3VsdC48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJj YXNlc2Vuc2UiPmNhc2Vfc2Vuc2l0aXZlPC9oND4KCgk8cD5CeSBkZWZhdWx0LCBhbGwgY29t cGFyaXNvbnMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgKDApLiBJZiB5b3Ugd2lzaCB0byBtYWtl IHRoZW0gc2Vuc2l0aXZlIHRvIGNhcHRpbGlzYXRpb24sIHNwZWNpZnkgPGNvZGU+Y2FzZV9z ZW5zaXRpdmU9JnF1b3Q7MSZxdW90OzwvY29kZT4uIE5vdGUgdGhhdCBpZiB1c2luZyA8Y29k ZT5pc2xvd2VyPC9jb2RlPiBvciA8Y29kZT5pc3VwcGVyPC9jb2RlPiBpbiBhIGNvbXBhcmlz b24sIGNhc2Ugc2Vuc2l0aXZpdHkgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHN3aXRjaGVkIG9u IHdoaWxlIHRoZSB0ZXN0IGlzIHRha2luZyBwbGFjZS48L3A+CgoJPGg0IGNsYXNzPSJhdHQt bmFtZSAiIGlkPSJwYXJhbWRlbGltIj5wYXJhbV9kZWxpbTwvaDQ+CgoJPHA+WW91IG5vcm1h bGx5IHNwZWNpZnkgY29tbWEtc2VwYXJhdGVkIGxpc3RzIHRvIHRoZSA8Y29kZT5maWVsZDwv Y29kZT4sIDxjb2RlPm9wZXJhdG9yPC9jb2RlPiBhbmQgPGNvZGU+dmFsdWU8L2NvZGU+IHBh cmFtZXRlcnMuIFNvbWV0aW1lcyB0aGlzIG1pZ2h0IG5vdCBiZSBkZXNpcmFibGUgaWYgeW91 IGhhdmUgdXNlZCB0aGF0IGNoYXJhY3RlciBpbiB0aGUgbmFtZSBvZiBhIGN1c3RvbSBmaWVs ZCwgZm9yIGV4YW1wbGUuIFRoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBk ZWxpbWl0ZXIgdG8gYWxtb3N0IGFueXRoaW5nIHlvdSBsaWtlLCBlLmcuIHNwZWNpZnlpbmcg PGNvZGU+cGFyYW1fZGVsaW09JnF1b3Q7Ly8mcXVvdDs8L2NvZGU+IG1lYW5zIHlvdSB3b3Vs ZCBzcGVjaWZ5IDxlbT5hbGw8L2VtPiB5b3VyIHBhcmFtZXRlciBsaXN0cyBsaWtlIHRoaXM6 PC9wPgoKCTxwPjxjb2RlPmZpZWxkPSZxdW90O3NlY3Rpb24gLy8gdXJsdmFyOnR5cGUmcXVv dDsgb3BlcmF0b3I9JnF1b3Q7ZXEgLy8gYmVnaW5zJnF1b3Q7IHZhbHVlPSZxdW90O2FuaW1h bHMgLy8gdGlnZXImcXVvdDs8L2NvZGU+PC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBp ZD0ibW9kZGVsaW0iPm1vZF9kZWxpbTwvaDQ+CgoJPHA+VmVyeSBzaW1pbGFyIHRvIDxhIGhy ZWY9IiNwYXJhbWRlbGltIj5wYXJhbV9kZWxpbTwvYT4sIHRoaXMgZ292ZXJucyB0aGUgZGVs aW1pdGVyIHRvIHVzZSBiZXR3ZWVuIGFuIG9wdGlvbiBhbmQgaXRzIG1vZGlmaWVyIChlLmcu IHRoZSB0aGluZyBzZXBhcmF0aW5nIHVybHZhciwgcG9zdHZhciwgc3ZydmFyIG9yIHR4cHZh ciBmcm9tIHRoZSB2YXJpYWJsZSBuYW1lLCBvciBwYXJlbnQgZnJvbSA8Y29kZT5MVkw8L2Nv ZGU+IGFuZCA8Y29kZT5DQVQ8L2NvZGU+LCBhbmQgYWxzbyB0aGUgY2hhcmFjdGVyKHMpIHRo YXQgc2VwYXJhdGUgYW4gb3BlcmF0b3IgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPk5V TTwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9ImNhcHMiPk5PU1BBQ0U8L3NwYW4+IG1vZGlmaWVy cykuIEl0IGlzIHRoZSBjb2xvbiAoOikgYnkgZGVmYXVsdC48L3A+CgoJPGg0IGNsYXNzPSJh dHQtbmFtZSAiIGlkPSJsaXN0ZGVsaW0iPmxpc3RfZGVsaW08L2g0PgoKCTxwPkZvciB1c2Ug d2l0aCB0aGUgPGNvZGU+aW48L2NvZGU+LCA8Y29kZT5ub3RpbjwvY29kZT4sIDxjb2RlPmJl dHdlZW48L2NvZGU+IGFuZCA8Y29kZT5yYW5nZTwvY29kZT4gb3BlcmF0b3JzLCB0aGlzIGlz IHRoZSBkZWxpbWl0ZXIgYmV0d2VlbiB2YWx1ZXMuIEl0IGlzIHRoZSBmb3J3YXJkLXNsYXNo ICgvKSBieSBkZWZhdWx0LiBBIGNvbnRyaXZlZCBleGFtcGxlOjwvcD4KCjxwcmU+PGNvZGU+ Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dHhwdmFyOmxldmVsJnF1b3Q7IG9wZXJhdG9y PSZxdW90O2luJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7MS8yLzMvNS84LzEzLzIxLzM0JnF1 b3Q7Jmd0OwogICZsdDtwJmd0O1Jlc3VsdCBpcyBhIEZpYm9uYWNjaSB2YWx1ZSEmbHQ7L3Am Z3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhhdCBp biBhbGwgJiM4MjE2O2RlbGltJiM4MjE3OyBhdHRyaWJ1dGVzLCBzb21lIGNoYXJhY3RlciBz ZXF1ZW5jZXMgbWF5IGNhdXNlIHByb2JsZW1zIChxdW90ZXMgJiM4MjEyOyBzaW5nbGUgb3Ig ZG91YmxlICYjODIxMjsgc3ByaW5nIHRvIG1pbmQ7IG90aGVycyBsaWtlIHBhcmVudGhlc2Vz IG1heSBhbHNvIGNhdXNlIHRoZSBwbHVnaW4gdG8gZXhwbG9kZSkuPC9wPgoKCTxoMz5SZXBs YWNlbWVudCB0YWdzPC9oMz4KCgk8cD5FdmVyeSBmaWVsZCBvciB2YWx1ZSB0aGF0IHlvdSBy ZWZlciB0byBpbiB5b3VyIHNtZF9pZiB0YWcgYmVjb21lcyBhdmFpbGFibGUgd2l0aGluIHRo ZSBjb250YWluaW5nIGJsb2NrIHNvIHlvdSBjYW4gZGlzcGxheSBpdHMgY29udGVudHMgaWYg eW91IHdpc2guIE1vc3Qgb2YgdGhlIHRpbWUgdGhpcyBpcyBub3QgbXVjaCB1c2UgYnV0IGl0 IGNhbiBiZSB2ZXJ5IHVzZWZ1bCB3aXRoIHRoZSA8Y29kZT5pbjwvY29kZT4gb3BlcmF0b3Ig b3IgdGhlIDxjb2RlPjpMRU48L2NvZGU+IG1vZGlmaWVyIC4gRm9yIGluc3RhbmNlLCBpZiB5 b3UgaGF2ZSBhc2tlZCBzbWRfaWYgdG8gdGVzdCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVS TDwvc3Bhbj4gdmFyaWFibGUgbmFtZWQgJiM4MjE2O2xldmVsJiM4MjE3OyBhbmQgdG9sZCBp dCB0byBjb21wYXJlIGl0IHRvIHRoZSBjdXN0b20gZmllbGQgbGFiZWxsZWQgJiM4MjE2O2Fs bG93YWJsZV9sZXZlbHMmIzgyMTc7LCB0d28gdGFncyBiZWNvbWUgYXZhaWxhYmxlIHdoaWNo IHlvdSBjYW4gdXNlIHdpdGhpbiB0aGUgY29udGFpbmluZyBibG9jazo8L3A+CgoJPHVsPgoJ CTxsaT48Y29kZT57c21kX2lmX2xldmVsfTwvY29kZT4gd291bGQgZGlzcGxheSB0aGUgdmFs dWUgb2YgdGhlICYjODIxNjtsZXZlbCYjODIxNzsgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwv c3Bhbj4gdmFyaWFibGU8L2xpPgoJCTxsaT48Y29kZT57c21kX2lmX2FsbG93YWJsZV9sZXZl bHN9PC9jb2RlPiB3b3VsZCBkaXNwbGF5IHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBh cnRpY2xlJiM4MjE3O3MgY3VzdG9tIGZpZWxkPC9saT4KCTwvdWw+CgoJPHA+VGhlIHJlcGxh Y2VtZW50IHRhZ3MgYXJlIGFsd2F5cyBwcmVmaXhlZCB3aXRoIDxjb2RlPnNtZF9pZl88L2Nv ZGU+IHNvIHRoZXkgZG9uJiM4MjE3O3QgY2xhc2ggd2l0aCB0aGUgb25lcyBpbiBzbWRfZ2Fs bGVyeSAoZm9yIGV4YW1wbGUsIHdoZW4gdXNpbmcgc21kX2lmIGluc2lkZSBhbiBzbWRfZ2Fs bGVyeSB0YWcpLiBJZiB5b3UgYXJlIGNvbXBhcmluZyBhIGZpeGVkLXZhbHVlIGZpZWxkIChz dWNoIGFzIDxjb2RlPmZpZWxkPSZxdW90O05VTEwmcXVvdDs8L2NvZGU+IG9yIDxjb2RlPnZh bHVlPSZxdW90OzEyJnF1b3Q7PC9jb2RlPiBvciBzbWRfZ2FsbGVyeSYjODIxNztzIDxjb2Rl PnZhbHVlPSZxdW90O3tjYXRlZ29yeX0mcXVvdDs8L2NvZGU+KSB0aGUgbmFtZSBvZiB0aGUg cmVwbGFjZW1lbnQgdGFncyBhcmUgPGNvZGU+e3NtZF9pZl9maWVsZE59PC9jb2RlPiBmb3Ig ZmllbGRzIGFuZCA8Y29kZT57c21kX2lmX3ZhbE59PC9jb2RlPiBmb3IgdmFsdWVzLCB3aGVy ZSBOIGlzIHRoZSB0ZXN0IG51bWJlciBzdGFydGluZyBmcm9tIDEuPC9wPgoKCTxwPklmIHlv dSB1c2UgdGhlIG11bHRpcGxlIHZhbHVlIG9wdGlvbnMgc3VjaCBhcyA8Y29kZT5pbjwvY29k ZT4sIDxjb2RlPmJldHdlZW48L2NvZGU+LCA8Y29kZT5yYW5nZTwvY29kZT4sIGV0YyB5b3Ug d2lsbCBhbHNvIHNlZSByZXBsYWNlbWVudCB0YWdzIG9mIHRoZSBmb2xsb3dpbmcgZm9ybWF0 OiA8Y29kZT57c21kX2lmX3ZhbE5fWH08L2NvZGU+IHdoZXJlIE4gaXMgdGhlIHZhbHVlIGNv dW50ZXIgKGFzIGFib3ZlKSBhbmQgWCBpcyBhbiBpbmNyZW1lbnRpbmcgbnVtYmVyOyB3aXRo IG9uZSBmb3IgZWFjaCB2YWx1ZSBpbiB5b3VyIGxpc3QuIEZvciBleGFtcGxlLCA8Y29kZT52 YWx1ZT0mcXVvdDsxMC8yMC8zMCZxdW90OzwvY29kZT4gc2V0czo8L3A+CgoJPHVsPgoJCTxs aT48Y29kZT57IHNtZF9pZl92YWwxXzEgfTwvY29kZT4gPSAxMDwvbGk+CgkJPGxpPjxjb2Rl Pnsgc21kX2lmX3ZhbDFfMiB9PC9jb2RlPiA9IDIwPC9saT4KCQk8bGk+PGNvZGU+eyBzbWRf aWZfdmFsMV8zIH08L2NvZGU+ID0gMzA8L2xpPgoJPC91bD4KCgk8cD5UaGVyZSBhcmUgYWxz byAmIzgyMTY7bGVuZ3RoJiM4MjE3OyByZXBsYWNlbWVudCB0YWdzLiBGb2xsb3dpbmcgYSBz aW1pbGFyIGNvbnZlbnRpb24gdG8gYWJvdmUsIHRoZXNlIGFyZSBwcmVmaXhlZCB3aXRoIDxj b2RlPnNtZF9pZl9sZW5fPC9jb2RlPi4gSWYgeW91IGdldCBzdHVjaywgdGVtcG9yYXJpbHkg c3dpdGNoIDxjb2RlPmRlYnVnPSZxdW90OzEmcXVvdDs8L2NvZGU+IG9uIHRvIHNlZSB0aGUg cmVwbGFjZW1lbnRzIGF2YWlsYWJsZSBhbmQgdGhlaXIgYXNzb2NpYXRlZCBuYW1lcy92YWx1 ZXMuPC9wPgoKCTxwPlNlZSA8YSBocmVmPSIjZWc4Ij5FeGFtcGxlIDg8L2E+IGFuZCA8YSBo cmVmPSIjZWc5Ij45PC9hPiBmb3IgbW9yZS48L3A+CgoJPGgyIGlkPSJmaWx0ZXJpbmciPkZp bHRlcmluZzwvaDI+CgoJPHA+QWxsIHVzZXIgaW5wdXQgaXMgdGFpbnRlZCBieSBkZWZhdWx0 LjwvcD4KCgk8cD5BbnkgdGltZSB5b3UgcmVseSBvbiBzb21lb25lIHRvIGVudGVyIHNvbWV0 aGluZywgYXQgbGVhc3Qgb25lIHBlcnNvbiB3aWxsIGludmFyaWFibHkgY2F0Y2ggeW91IG91 dDsgZWl0aGVyIGFjY2lkZW50YWxseSBvciBtYWxpY2lvdXNseS4gRm9yIHRoaXMgcmVhc29u LCBzbWRfaWYgc3VwcG9ydHMgcG93ZXJmdWwgZmlsdGVyaW5nIHJ1bGVzIHNvIHlvdSBjYW4g dHJhcCBhbmQgcmVtb3ZlIHN1c3BlY3QgaW5wdXQuIEl0IGFscmVhZHkgZG9lcyBzb21lIG9m IHRoaXMgZm9yIHlvdSB3aXRoIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Tk9UQUdTPC9zcGFu PiBtb2RpZmllciwgYnV0IGZpbHRlcmluZyBnaXZlcyBhbm90aGVyIGxldmVsIG9mIGNvbnRy b2wgYWJvdmUgdGhhdC48L3A+CgoJPHA+TGV0JiM4MjE3O3Mgc2F5IHlvdSBhcmUgYXNraW5n IHRoZSB1c2VyIHRvIGVudGVyIGEgdmFsdWUgYW5kIHlvdSBuZWVkIHRvIGNvbXBhcmUgaXQg dG8gYSByYW5nZS4gV2hhdCBpZiwgaW5zdGVhZCBvZiBhIG51bWJlciwgdGhleSBlbnRlcmVk IDxjb2RlPmZyM2Q8L2NvZGU+IG9yIDxjb2RlPjtybSAtcmYgMSo7PC9jb2RlPi4gVGhlIHBs dWdpbiBtaWdodCBqdXN0IGZhbGwgb3ZlciAocHJvYmFibHkgd2l0aCBhbiBlcnJvciwgd2hp Y2ggaXMgbm90IHZlcnkgcGxlYXNhbnQgZm9yIHVzZXJzKSwgb3IgaXQgbWlnaHQgY2F1c2Ug aGFybSB0byB0aGUgZmlsZXN5c3RlbSBpZiBhIHBlcnNvbiB0cnlpbmcgdG8gaGFjayB5b3Vy IHNpdGUgd2FzIHNraWxsZWQgZW5vdWdoIChpdCYjODIxNztzIHVubGlrZWx5LCBidXQgcG9z c2libGUpLjwvcD4KCgk8cD5JbiBib3RoIGNhc2VzLCBmaWx0ZXJpbmcgY29tZXMgdG8gdGhl IHJlc2N1ZS4gWW91IGNhbiBzcGVjaWZ5IHRoYXQgeW91IDxlbT5leHBlY3Q8L2VtPiBvbmx5 IGRpZ2l0cyBmcm9tIDAgdG8gOSBpbiB5b3VyIGZpZWxkcyBhbmQgY2FuIHRlbGwgdGhlIHBs dWdpbiB0byBjaG9wIG91dCBhbnl0aGluZyB0aGF0IGlzIG5vdCBudW1lcmljLiBTbyBpbiB0 aGUgZmlyc3QgY2FzZSBhYm92ZSwgYWxsIHlvdSB3b3VsZCBzZWUgaWYgdGhlIHVzZXIgZW50 ZXJlZCAmIzgyMTY7ZnIzZCYjODIxNzsgd291bGQgYmUgJiM4MjE2OzMmIzgyMTc7LjwvcD4K Cgk8cD5Gb3J0dW5hdGVseSAmIzgyMTI7IGFuZCB1bmZvcnR1bmF0ZWx5ICYjODIxMjsgaXQm IzgyMTc7cyBidWlsdCBhcm91bmQgPGEgaHJlZj0iaHR0cDovL3d3dy5yZWd1bGFyLWV4cHJl c3Npb25zLmluZm8vIj5yZWd1bGFyIGV4cHJlc3Npb25zPC9hPiB3aGljaCBhcmUgZmllbmRp c2hseSBwb3dlcmZ1bCBidXQgY2FuIGFsc28gYmUgZmllbmRpc2hseSB0cmlja3kgdG8gbGVh cm4gaWYgeW91IGFyZSBub3QgZmFtaWxpYXIuIFRoZXkgYXJlIHdvcnRoIGxlYXJuaW5nLjwv cD4KCgk8cD5MZXQmIzgyMTc7cyBkaXZlIGluIGF0IHRoZSBkZWVwIGVuZCBhbmQgdGVsbCB0 aGUgcGx1Z2luIHRoYXQsIHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMsIG11c3Qgd2UgYWxsb3cg YW55IGlucHV0IHRoYXQgaXMgbm9uLW51bWVyaWM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O2hpZ2hl c3QmcXVvdDsgdmFsdWU9JnF1b3Q7MTAwJnF1b3Q7IC8mZ3Q7CiZsdDt0eHA6c21kX2lmIGZp ZWxkPSZxdW90O3VybHZhcjpsb3cmcXVvdDsgb3BlcmF0b3I9JnF1b3Q7Z2UsIGxlJnF1b3Q7 CiAgICAgdmFsdWU9JnF1b3Q7MSwgdHhwdmFyOmhpZ2hlc3QmcXVvdDsgZmlsdGVyPSZxdW90 Oy9bXjAtOV0rLyZxdW90OyBkZWJ1Zz0mcXVvdDsyJnF1b3Q7Jmd0OwogICAmbHQ7cCZndDt7 c21kX2lmX2xvd30gaXMgdmFsaWQgYW5kIGlzIGJldHdlZW4KICAge3NtZF9pZl92YWwxfSBh bmQge3NtZF9pZl9oaWdoZXN0fS4mbHQ7L3AmZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogICAm bHQ7cCZndDtTb3JyeSwgdGhlIHZhbHVlIHtzbWRfaWZfbG93fSBpcyBub3Qgd2l0aGluIHRo ZQogICAgIHJhbmdlIHtzbWRfaWZfdmFsMX0te3NtZF9pZl9oaWdoZXN0fS4mbHQ7L3AmZ3Q7 CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlsgRWFnbGUtZXllZCBw ZW9wbGUgbWF5IG5vdGljZSB0aGF0IHNvbWV0aGluZyBzaW1pbGFyIGNhbiBiZSBhY2hpZXZl ZCB3aXRoIHRoZSA8Y29kZT46TlVNPC9jb2RlPiBtb2RpZmllci4gVGhlIGRpZmZlcmVuY2Ug aGVyZSBpcyB0aGF0IHRoZSByZXBsYWNlbWVudCB2YXJpYWJsZXMgYXJlIGFsc28gZmlsdGVy ZWQsIHdoZXJlYXMgd2l0aCA8Y29kZT46TlVNPC9jb2RlPiB0aGV5IGNvbnRhaW4gdGhlIG9y aWdpbmFsIChwb3NzaWJseSBpbnZhbGlkKSBpbnB1dCBdPC9wPgoKCTxwPkFsdGhvdWdoIG91 dCBvZiB0aGUgc2NvcGUgb2YgdGhpcyBkb2N1bWVudGF0aW9uLCBpdCYjODIxNztzIHdvcnRo IGp1c3QgdGFraW5nIGEgbW9tZW50IHRvIHNlZSB3aGF0IHRoZSBmaWx0ZXIgaXMgZG9pbmc6 PC9wPgoKPHByZT48Y29kZT4vW14wLTldKy8KPC9jb2RlPjwvcHJlPgoKCTx1bD4KCQk8bGk+ VGhlIGZvcndhcmQgc2xhc2hlcyBhcmUgc3RhcnQgYW5kIGVuZCBkZWxpbWl0ZXJzIGFuZCBz aG91bGQgYWx3YXlzIGJlIHByZXNlbnQgKHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSYjODIx NztyZSBkb2luZyEpPC9saT4KCQk8bGk+VGhlIHNxdWFyZSBicmFja2V0cyA8Y29kZT5bXTwv Y29kZT4gZGVub3RlIGEgY2hhcmFjdGVyIGNsYXNzLCBvciBncm91cCBvZiBjaGFyYWN0ZXJz LiBJbiB0aGlzIGNhc2UgdGhleSBjb250YWluIHRoZSByYW5nZSBvZiBkaWdpdHMgMCB0byA5 PC9saT4KCQk8bGk+VGhlIGNpcmN1bWZsZXggPGNvZGU+XjwvY29kZT4gbmVnYXRlcyB0aGUg Y2xhc3MgKGkuZS4gbm9uLWRpZ2l0cyk8L2xpPgoJCTxsaT5UaGUgcGx1cyA8Y29kZT4rPC9j b2RlPiBtZWFucyAmIzgyMTY7b25lIG9yIG1vcmUgb2YgdGhlIHRoaW5ncyBJJiM4MjE3O3Zl IGp1c3Qgc2VlbiYjODIxNzs8L2xpPgoJPC91bD4KCgk8cD5TbyBwdXR0aW5nIGl0IGFsbCB0 b2dldGhlciwgaXQgcmVhZHMgJiM4MjIwO0ZpbmQgZXZlcnkgb2NjdXJyZW5jZSBvZiBvbmUg b3IgbW9yZSBub24tZGlnaXRzJiM4MjIxOy4gVGh1cyBpdCBsb29rcyBhdCBldmVyeSBmaWVs ZCBhbmQgZmluZHMgYW55dGhpbmcgbm9uLW51bWVyaWMuIFRoZW4gaXQgcmVwbGFjZXMgd2hh dGV2ZXIgaXQgZmluZHMgd2l0aCA8Y29kZT4mIzM5OyYjMzk7PC9jb2RlPiwgaS5lLiBub3Ro aW5nLCBuYWRhLCB6aXAuIEVmZmVjdGl2ZWx5LCBpdCBkZWxldGVzIHdoYXRldmVyIG5vbi1k aWdpdHMgaXQgZmluZHMgYW5kIGxlYXZlcyB0aGUgZ29vZCBzdHVmZiAodGhlIG51bWJlcnMp IGJlaGluZC48L3A+CgoJPGgzIGlkPSJmcmVwbGFjaW5nIj5SZXBsYWNpbmcgYmFkIGRhdGE8 L2gzPgoKCTxwPkZvciBlYWNoIG1hdGNoaW5nIGZpbHRlciB0aGVyZSYjODIxNztzIGFuIGVx dWl2YWxlbnQgPGNvZGU+cmVwbGFjZTwvY29kZT4gc3RyaW5nLiBCeSBkZWZhdWx0IHRoaXMg aXMgc2V0IHRvIDxjb2RlPnJlcGxhY2U9JnF1b3Q7JnF1b3Q7PC9jb2RlPiB3aGljaCBtZWFu cyAmIzgyMjA7cmVwbGFjZSB3aGF0ZXZlciB5b3UgZmluZCB3aXRoIG5vdGhpbmcmIzgyMjE7 OyBvciBpbiBvdGhlciB3b3JkcyAmIzgyMjA7ZGVsZXRlIGV2ZXJ5dGhpbmcgdGhhdCBtYXRj aGVzIHRoZSBmaWx0ZXImIzgyMjE7LiBZb3UgbWF5IGVsZWN0IHRvIHJlcGxhY2UgeW91ciBm aWx0ZXJlZCBkYXRhIHdpdGggc29tZXRoaW5nIGVsc2UsIHNheSwgPGNvZGU+cmVwbGFjZT0m cXVvdDt0eHAmcXVvdDs8L2NvZGU+LiBTbyBpZiBzb21lb25lIGVudGVyZWQgJiM4MjIwO2Zy M2QmIzgyMjE7IHlvdSB3b3VsZCBzZWUgdGhlIHJlcGxhY2VtZW50IHZhcmlhYmxlIGhhcyBh IHZhbHVlICYjODIyMDt0eHAzdHhwJiM4MjIxOyAodGhlIHJlYXNvbiB5b3Ugb25seSBnZXQg b25lICYjODIxNjt0eHAmIzgyMTc7IGJlZm9yZSB0aGUgbnVtYmVyIGlzIGR1ZSB0byB0aGUg ZXhwcmVzc2lvbiBiZWluZyA8ZW0+Z3JlZWR5PC9lbT4gYW5kIGdvYmJsaW5nIHVwIGFzIG1h bnkgY2hhcmFjdGVycyBhcyBpdCBjYW4gaW4gYSBncm91cCBiZWZvcmUgcmVwbGFjaW5nIHRo ZW0uIFNlZSBhbnkgcmVnZXggdHV0b3JpYWwgZm9yIG1vcmUgb24gdGhpcyB0b3BpYykuPC9w PgoKCTxwPlVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzIHlvdSB3b24mIzgyMTc7dCB3YW50 IHRvIG1lc3Mgd2l0aCA8Y29kZT5yZXBsYWNlPC9jb2RlPiBhcyBpdCYjODIxNztsbCBkbyB3 aGF0IHlvdSB3YW50IHdpdGggdGhlIGRlZmF1bHQgJiM4MjE2O2RlbGV0ZSYjODIxNzsgb3Bl cmF0aW9uLjwvcD4KCgk8aDMgaWQ9ImZvcHRpb25zIj5GaWx0ZXJpbmcgb3B0aW9uczwvaDM+ CgoJPHA+QnkgZGVmYXVsdCwgdGhlIHBsdWdpbiBvbmx5IGxvb2tzIGF0IDxjb2RlPmZpZWxk PC9jb2RlPiBkYXRhLiBJZiB5b3Ugd2lzaCB0byBjaGFuZ2UgdGhhdCwgdXNlIHRoZSA8Y29k ZT5maWx0ZXJfaW48L2NvZGU+IGF0dHJpYnV0ZS48L3A+CgoJPHA+VGhlIHBsdWdpbiBhbHNv IGFwcGxpZXMgdGhlIGZpbHRlciB0byBhbGwgZmllbGRzICg8Y29kZT5maWx0ZXJfdHlwZT0m cXVvdDthbGwmcXVvdDs8L2NvZGU+KS4gWW91IG1heSB3aXNoIHRvIG9ubHkgdGFyZ2V0IGEg ZmlsdGVyIGF0IHVybCBhbmQgc2VydmVyIHZhcnMsIGluIHdoaWNoIGNhc2UgeW91IHdvdWxk IHNwZWNpZnkgPGNvZGU+ZmlsdGVyX3R5cGU9JnF1b3Q7dXJsdmFyLCBzdnJ2YXImcXVvdDs8 L2NvZGU+LiBPciBtYXliZSB5b3Ugd2lzaCB0byB2YWxpZGF0ZSB0aGUgYXJ0aWNsZSBpbWFn ZSBmaWVsZCBpbiBjYXNlIHNvbWVvbmUgZW50ZXJlZCBzb21lIHJvZ3VlIGRhdGEgdGhlcmU6 IDxjb2RlPmZpbHRlcl90eXBlPSZxdW90O2FydGljbGVfaW1hZ2UmcXVvdDs8L2NvZGU+Ljwv cD4KCgk8aDMgaWQ9ImZjYXZlYXQiPkZpbHRlcmluZyBjYXZlYXQ8L2gzPgoKCTxwPklmIHlv dSBzcGVjaWZ5IDxjb2RlPmZpbHRlcl9vbj0mcXVvdDtmaWVsZCwgdmFsdWUmcXVvdDs8L2Nv ZGU+IGl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlIDxlbT5zYW1lIGZpbHRlcjwv ZW0+IHdpbGwgYmUgYXBwbGllZCB0byBlYWNoIGNvcnJlc3BvbmRpbmcgZmllbGQgYW5kIHZh bHVlLiBJZiB5b3VyIGZpbHRlciBpcyB0b28gc3RyaWN0IHRoZXJlJiM4MjE3O3MgYSBjaGFu Y2UgaXQgbWF5IGZpbHRlciBldmVyeSBjaGFyYWN0ZXIgb3V0IG9mIGJvdGggPGNvZGU+Zmll bGQ8L2NvZGU+IGFuZCA8Y29kZT52YWx1ZTwvY29kZT4sIHRodXMgaWYgeW91ciB0ZXN0IHdh cyBmb3IgZXF1YWxpdHkgdGhlIHRlc3Qgd291bGQgcmV0dXJuICYjODIxNjt0cnVlJiM4MjE3 Oy4gSGVyZSYjODIxNztzIGFuIGV4YW1wbGU6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOmNv bXAxJnF1b3Q7IG9wZXJhdG9yPSZxdW90O2VxJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7dXJs dmFyOmNvbXAyJnF1b3Q7IGZpbHRlcj0mcXVvdDsvW15hLXpBLVpdKy8mcXVvdDsKICAgICBm aWx0ZXJfb249JnF1b3Q7ZmllbGQsIHZhbHVlJnF1b3Q7Jmd0OwogICAvLyBJJiMzOTttIE5P VCBuZWNlc3NhcmlseSB2YWxpZAombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4K Cgk8cD5JZiB5b3VyIHVzZXIgdHlwZWQgaW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IDxjb2RlPnNpdGUuY29tL2FydGljbGU/Y29tcDE9MTIzNDUmYW1wO2NvbXAyPTY3 ODkwPC9jb2RlPiB0aGUgcGx1Z2luIHdvdWxkIGRvIHRoZSBmb2xsb3dpbmc6PC9wPgoKCTxv bD4KCQk8bGk+RmlsdGVyIGNvbXAxIGFuZCByZW1vdmUgYWxsIG5vbi1sZXR0ZXIgY2hhcmFj dGVyczwvbGk+CgkJPGxpPkZpbHRlciBjb21wMiBhbmQgcmVtb3ZlIGFsbCBub24tbGV0dGVy IGNoYXJhY3RlcnM8L2xpPgoJCTxsaT5Mb29rIGF0IGNvbXAxICh3aGljaCBpcyBub3cgZW1w dHkpIGFuZCBjb21wMiAod2hpY2ggaXMgYWxzbyBlbXB0eSksIHRoZW4gY29tcGFyZSB0aGVt PC9saT4KCTwvb2w+CgoJPHA+WW91IGNhbiBzZWUgd2hhdCYjODIxNztzIGdvaW5nIHRvIGhh cHBlbjogdGhlIHRlc3QgcmVzdWx0IGlzIGdvaW5nIHRvIGJlICYjODIxNjt0cnVlJiM4MjE3 OyBiZWNhdXNlICYjODIyMDtub3RoaW5nJiM4MjIxOyBkb2VzIGluZGVlZCBlcXVhbCAmIzgy MjA7bm90aGluZyYjODIyMTsuIFNvIHRoZSBhY3Qgb2YgdGhlIHVzZXIgZW50ZXJpbmcgdHdv IG5vbnNlbnNpY2FsLCBjb21wbGV0ZWx5IG51bWVyaWMgc3RyaW5ncyBvZiBkYXRhIGhhcyBi cm9rZW4geW91ciBsb2dpYy48L3A+CgoJPHA+Rm9yIHRoaXMgcmVhc29uLCBpZiB5b3UgYXJl IGZpbHRlcmluZyBvbiBib3RoIGZpZWxkIGFuZCB2YWx1ZSwgeW91IHNob3VsZCBwZXJmb3Jt IDxlbT5hZGRpdGlvbmFsPC9lbT4gdGVzdHMgdG8gc2VlIGlmIGVpdGhlciBmaWVsZCAvIHZh bHVlIGlzIHNldCBhdCBhbGwuIFRoaXMgaXMgYmV0dGVyOjwvcD4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3Vy bHZhcjpjb21wMSwgdXJsdmFyOmNvbXAxLCB1cmx2YXI6Y29tcDImcXVvdDsKICAgICBvcGVy YXRvcj0mcXVvdDtlcSwgaXN1c2VkLCBpc3VzZWQmcXVvdDsgdmFsdWU9JnF1b3Q7dXJsdmFy OmNvbXAyJnF1b3Q7CiAgICAgZmlsdGVyPSZxdW90Oy9bXmEtekEtWl0rLyZxdW90OwogICAg IGZpbHRlcl9vbj0mcXVvdDtmaWVsZCwgdmFsdWUmcXVvdDsmZ3Q7CiAgIC8vIEkmIzM5O20g bm93IGFjdHVhbGx5IHZhbGlkCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoK CTxwPlNvIG5vdywgaWYgeW91ciBmaWx0ZXIgcmVtb3ZlcyBldmVyeXRoaW5nIGZyb20gYm90 aCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJzLCBpdCBzdGlsbCBmYWlscyB0 aGUgJiM4MjE2O2hhcyB0aGUgdXNlciBlbnRlcmVkIGFueXRoaW5nIGF0IGFsbCYjODIxNzsg dGVzdHMgYmVjYXVzZSBhcyBmYXIgYXMgdGhlIHBsdWdpbiBpcyBjb25jZXJuZWQsIHRoZSB2 aXNpdG9yIGhhcyBzdWJtaXR0ZWQgcnViYmlzaC48L3A+CgoJPGgzIGlkPSJmZnVydGhlciI+ R29pbmcgZnVydGhlcjwvaDM+CgoJPHA+VGhlIGFib3ZlIGV4YW1wbGVzIGFsbCB1c2UgYSBz aW5nbGUgZmlsdGVyLiBZb3UgY2FuIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBmaWx0ZXIgYW5k IHJlcGxhY2VtZW50IGlmIHlvdSB3aXNoLCBqdXN0IGNvbW1hLWRlbGltaXQgdGhlbSAodW5s ZXNzIHlvdSYjODIxNzt2ZSBvdmVycmlkZW4gdGhlIDxjb2RlPnBhcmFtX2RlbGltPC9jb2Rl PiBvZiBjb3Vyc2UpLjwvcD4KCgk8cD5XaGVuIHlvdSBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUg ZmlsdGVyLCB0aGV5IGlnbm9yZSB0aGUgPGNvZGU+ZmlsdGVyX3R5cGU8L2NvZGU+IGF0dHJp YnV0ZSBiZWNhdXNlIHRoZSBmaWx0ZXJzIGFyZSBhcHBsaWVkIGluIG9yZGVyOyBvbmUgcGVy IHRlc3QuIElmIHlvdSB3aXNoIHRvIHNraXAgYSBwYXJ0aWN1bGFyIGZpZWxkIGFuZCBub3Qg YXBwbHkgYSBmaWx0ZXIsIHNpbXBseSBsZWF2ZSBhbiBlbXB0eSBjb21tYSBhcyBhIHBsYWNl aG9sZGVyLCBlLmcuIDxjb2RlPmZpbHRlcj0mcXVvdDssIC9bXmEtekEtWjAtOVwtXSsvLCAs IC9bXjAtOV0rLyZxdW90OzwvY29kZT4gd291bGQgYXBwbHkgdGhlIHJlc3BlY3RpdmUgZmls dGVycyB0byB0aGUgMm5kIGFuZCA0dGggdGVzdHMgb25seS48L3A+CgoJPGgyPkV4YW1wbGVz PC9oMj4KCgk8aDMgaWQ9ImVnMSI+RXhhbXBsZSAxOiBzdGFuZGFyZCBjb21wYXJpc29uPC9o Mz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21k X2lmIGZpZWxkPSZxdW90O3NlY3Rpb24sIGlkJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7 YmVnaW5zLCBndCZxdW90OwogICAgIHZhbHVlPSZxdW90O2xpb24sIDEyJnF1b3Q7Jmd0Owog Jmx0O3AmZ3Q7VGhlIGxpb24gc2xlZXBzIHRvbmlnaHQmbHQ7L3AmZ3Q7CiZsdDt0eHA6ZWxz ZSAvJmd0OwogJmx0O3AmZ3Q7Um9vb29vYXJycnIhICpDSE9NUCombHQ7L3AmZ3Q7CiZsdDsv dHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyBpZiB0aGUgY3VycmVu dCBzZWN0aW9uIG5hbWUgYmVnaW5zIHdpdGggdGhlIHdvcmQgJiM4MjIwO2xpb24mIzgyMjE7 IGFuZCB0aGUgYXJ0aWNsZSBJRCBpcyBncmVhdGVyIHRoYW4gMTIuIERpc3BsYXlzICYjODIy MDtUaGUgbGlvbiBzbGVlcHMgdG9uaWdodCYjODIyMTsgaWYgYm90aCBjb25kaXRpb25zIGFy ZSBtZXQgb3IgZGlzcGxheXMgdGhlIHRleHQgJiM4MjIwO1Jvb29vb2FycnJyISA8c3Ryb25n PjxzcGFuIGNsYXNzPSJjYXBzIj5DSE9NUDwvc3Bhbj48L3N0cm9uZz4mIzgyMjA7IGlmIG5v dC48L3A+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjogb3RoZXIgdHlwZXMgb2YgZmllbGQ8 L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfaWYgZmllbGQ9JnF1b3Q7c3VtbWFyeSwgY2F0ZWdvcnkxLCB1cmx2YXI6cGljJnF1b3Q7 CiAgICAgb3BlcmF0b3I9JnF1b3Q7aXN1c2VkLCBlcSwgaXNudW0mcXVvdDsKICAgICB2YWx1 ZT0mcXVvdDssIGFuaW1hbCAsJnF1b3Q7ICZndDsKICAmbHQ7cCZndDtBbGwgbWF0Y2hlZCZs dDsvcCZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtNYXRjaCBmYWlsZWQmbHQ7 L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyBp ZiB0aGUgY3VzdG9tIGZpZWxkIGxhYmVsbGVkICYjODIyMDtzdW1tYXJ5JiM4MjIxOyBoYXMg c29tZSBkYXRhIGluIGl0LCBjaGVja3MgaWYgY2F0ZWdvcnkxIGVxdWFscyAmIzgyMjA7YW5p bWFsJiM4MjIxOyBhbmQgdGVzdHMgaWYgdGhlIHVybHZhciA8Y29kZT5waWM8L2NvZGU+IGlz IG51bWVyaWMgKGUuZy4gPGNvZGU+P3BpYz01PC9jb2RlPikuPC9wPgoKCTxwPklmIGFsbCB0 aGVzZSBjb25kaXRpb25zIGFyZSBtZXQgdGhlICYjODIyMDtBbGwgbWF0Y2hlZCYjODIyMTsg bWVzc2FnZSBpcyBkaXNwbGF5ZWQsIGVsc2UgdGhlICYjODIyMDtNYXRjaCBmYWlsZWQmIzgy MjE7IG1lc3NhZ2UgaXMgc2hvd24uIE5vdGUgdGhhdCA8Y29kZT5pc3VzZWQ8L2NvZGU+IGFu ZCA8Y29kZT5pc251bTwvY29kZT4gZG9uJiM4MjE3O3QgdGFrZSBhcmd1bWVudHMgZm9yIDxj b2RlPnZhbHVlPC9jb2RlPiBhbmQgdGhlaXIgcG9zaXRpb25zIGFyZSBoZWxkIGJ5IGVtcHR5 IGNvbW1hcyAodGVjaG5pY2FsbHkgdGhlIGxhc3QgY29tbWEgaXNuJiM4MjE3O3QgbmVlZGVk IGJ1dCBpdCBoZWxwcyBrZWVwIGV2ZXJ5dGhpbmcgbmVhdCBpZiB5b3UgYWRkIGZ1cnRoZXIg dGVzdHMgbGF0ZXIgb24pLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiB1c2luZyAm IzgyMTY7b3ImIzgyMTc7IGxvZ2ljPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O2FydGljbGVfaW1hZ2Us IHN2cnZhcjpIVFRQX1VTRVJfQUdFTlQmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtlcSwg Y29udGFpbnMmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDt1cmx2YXI6cGljLCBTYWZhcmkmcXVv dDsKICAgICBsb2dpYz0mcXVvdDtvciZxdW90OyZndDsKICZsdDtwJmd0O0NvbWUgaW50byBt eSBwYXJsb3VyJmx0Oy9wJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0 b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3By ZT4KCgk8cD5Db21wYXJlcyAoZm9yIGVxdWFsaXR5KSB0aGUgY3VycmVudCBhcnRpY2xlIGlt YWdlIGlkIHdpdGggdGhlIHZhbHVlIG9mIHRoZSB1cmwgdmFyaWFibGUgPGNvZGU+cGljPC9j b2RlPiBhbmQgY2hlY2tzIGlmIHRoZSB2YWx1ZSBvZiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PkhUVFA8L3NwYW4+X1VTRVJfQUdFTlQgc3RyaW5nIGNvbnRhaW5zICYjODIyMDtTYWZhcmkm IzgyMjE7LiBUaGlzIGV4YW1wbGUgdXNlcyB0aGUgJiM4MjE2O29yJiM4MjE3OyBsb2dpYywg aGVuY2UgaWYgPGVtPmVpdGhlcjwvZW0+IGNvbmRpdGlvbiBpcyBtZXQgdGhlICYjODIxNjtj b21lIGludG8gbXkgcGFybG91ciYjODIxNzsgbWVzc2FnZSBpcyBzaG93biwgb3RoZXJ3aXNl IHRoZSAmIzgyMTY7bm90IHRvZGF5JiM4MjE3OyBtZXNzYWdlIGlzIGRpc3BsYXllZC48L3A+ CgoJPGgzIGlkPSJlZzQiPkV4YW1wbGUgNDogc3ViLWNhdGVnb3J5IHRlc3Rpbmc8L2gzPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYg ZmllbGQ9JnF1b3Q7cGFyZW50OkxWTDImcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtlcSZx dW90OwogICAgIHZhbHVlPSZxdW90O21hbW1hbCZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNs ZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtz Jmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5PbiBh IGNhdGVnb3J5IGxpc3QgcGFnZSwgdGhpcyBjaGVja3MgdGhlIDJuZCBzdWItY2F0ZWdvcnkg b2YgdGhlIHRyZWUgdG8gc2VlIGlmIGl0IGVxdWFscyAmIzgyMjA7bWFtbWFsJiM4MjIxOy4g SWYgaXQgZG9lcywgdGhlIGFydGljbGUgaXMgZGlzcGxheWVkOyBpZiBub3QsIHRoZSBtZXNz YWdlIGlzIHNob3duIGluc3RlYWQuIFJlbW92aW5nIHRoZSA8Y29kZT46TFZMMjwvY29kZT4g JiM4MjEyOyB3aGljaCBtZWFucyB5b3UgY2FuIGFsc28gcmVtb3ZlIHRoZSBvcGVyYXRvciBw YXJhbWV0ZXIgdG8gZm9yY2UgdGhlIGNvbXBhcmlzb24gdG8gYmUgdGhlIGRlZmF1bHQgJiM4 MjIwO2NvbnRhaW5zJiM4MjIxOyAmIzgyMTI7IGNoZWNrcyBpZiB0aGUgY3VycmVudCAoZ2xv YmFsKSBjYXRlZ29yeSBpcyBhIGNoaWxkIG9mICYjODIxNjttYW1tYWwmIzgyMTc7IGF0IGFu eSBuZXN0aW5nIGxldmVsLjwvcD4KCgk8cD5Nb3ZlIHRoZSBleGFtcGxlIGludG8gYW4gYXJ0 aWNsZSBvciBhcnRpY2xlIEZvcm0gYW5kIGNoYW5nZSB0aGUgZmllbGQgdG8gPGNvZGU+cGFy ZW50OkNBVDE8L2NvZGU+IHRvIHNlZSBpZiB0aGUgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3J5 MSBtYXRjaGVzICYjODIxNjttYW1tYWwmIzgyMTc7IGF0IGFueSBsZXZlbCwgb3IgdXNlIDxj b2RlPmZpZWxkPSZxdW90O3BhcmVudDpDQVQxOkxWTDImcXVvdDs8L2NvZGU+IHRvIGNvbWJp bmUgdGhlIGNoZWNrcy48L3A+CgoJPGgzIGlkPSJlZzUiPkV4YW1wbGUgNTogZGVmaW5lZC91 bmRlZmluZWQvaXN1c2VkL2lzZW1wdHk8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnBpYywg dXJsdmFyOnBhZ2UmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtndDpOVU0sIHVuZGVmaW5l ZCZxdW90OwogICAgIHZhbHVlPSZxdW90Oz9hcnRpY2xlX2ltYWdlLCZxdW90OyZndDsKICZs dDtwJmd0O1llcyBwbGVhc2UmbHQ7L3AmZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3Am Z3Q7Tm90IHRvZGF5LCB0aGFua3MmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPlRlc3RzIGlmIHRoZSB1cmwgdmFyaWFibGUgPGNvZGU+cGljPC9j b2RlPiBpcyBzdHJpY3RseSBudW1lcmljYWxseSBncmVhdGVyIHRoYW4gdGhlIHZhbHVlIGlu IHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyA8Y29kZT5hcnRpY2xlX2ltYWdlPC9jb2Rl PiBmaWVsZCBhbmQgdGhhdCB0aGUgdXJsIHZhcmlhYmxlIDxjb2RlPnBhZ2U8L2NvZGU+IGlz IG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gYWRkcmVz cy4gQ29tcGFyZSB0aGUgb3V0Y29tZSBvZiB0aGlzIHRlc3Qgd2l0aCB0aGUgb3RoZXIgb3Bl cmF0b3JzIHVzaW5nIHRoZSBmb2xsb3dpbmcgdGFibGUgd2hlbiB0ZXN0aW5nIHRoZSA8Y29k ZT5wYWdlPC9jb2RlPiB1cmx2YXI6PC9wPgoKCTx0YWJsZT4KCQk8dHI+CgkJCTx0aD48c3Bh biBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj48L3NwYW4+IDwv dGg+CgkJCTx0aD5kZWZpbmVkIDwvdGg+CgkJCTx0aD51bmRlZmluZWQgPC90aD4KCQkJPHRo PmlzdXNlZCA8L3RoPgoJCQk8dGg+aXNlbXB0eSA8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8 dGQ+IGluZGV4LnBocD9wYWcgPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNw YW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3Bh biBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9zcGFuPiA8 L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFM U0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3Bh biBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCTwvdHI+CgkJPHRy PgoJCQk8dGQ+IGluZGV4LnBocD9wYWdlPSA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJj YXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0 ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48 L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJj YXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNh cHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnZT00IDwvdGQ+CgkJCTx0ZD4gPHNwYW4g Y2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90 ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNF PC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4g Y2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNs YXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3Rk PgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTxoMyBpZD0iZWc2Ij5FeGFtcGxlIDY6IHNob3J0IGNp cmN1aXRpbmcgdGhlIDxjb2RlPmZpZWxkPC9jb2RlPjwvaDM+CgoJPHA+UHV0IHRoaXMgaW5z aWRlIHlvdXIgPGNvZGU+cGxhaW5saW5rczwvY29kZT4gZm9ybSBhbmQgZXhlY3V0ZSBhIDxj b2RlPiZsdDt0eHA6bGlua2xpc3QgLyZndDs8L2NvZGU+IGZyb20gYW4gYXJ0aWNsZSBwYWdl L2Zvcm06PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7aWQmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtn ZTpOVU0sIGxlOk5VTSZxdW90OwogICAgIHZhbHVlPSZxdW90O3VybHZhcjptaW4sIHVybHZh cjptYXgmcXVvdDsmZ3Q7CiAgJmx0O3R4cDpsaW5rZGVzY3RpdGxlIC8mZ3Q7Jmx0O2JyIC8m Z3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQgd2lsbCBs aXN0IG9ubHkgdGhlIGxpbmtzIHRoYXQgaGF2ZSBJRHMgYmV0d2VlbiB0aGUgPGNvZGU+bWlu PC9jb2RlPiBhbmQgPGNvZGU+bWF4PC9jb2RlPiB2YXJpYWJsZXMgc3BlY2lmaWVkIG9uIHRo ZSBhZGRyZXNzIGJhci4gTm90aWNlIHRoYXQgdGhlIGlkIGZpZWxkIGlzIG9ubHkgbGlzdGVk IG9uY2UgYW5kIGVhY2ggb3BlcmF0b3IgaXMgYXBwbGllZCB0byBpdCBpbiB0dXJuLjwvcD4K Cgk8aDMgaWQ9ImVnNyI+RXhhbXBsZSA3OiBhbHBoYW51bWVyaWMgdGVzdGluZzwvaDM+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBm aWVsZD0mcXVvdDt1cmx2YXI6cHJvZHVjdF9jb2RlJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1 b3Q7aXNhbG51bSZxdW90OyZndDsKICAmbHQ7dHhwOm91dHB1dF9mb3JtIGZvcm09JnF1b3Q7 c2hvd19wcm9kdWN0JnF1b3Q7IC8mZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7 SW52YWxpZCBwcm9kdWN0IGNvZGUmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPlRlc3RzIHRvIHNlZSBpZiB0aGUgcHJvZHVjdF9jb2RlIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlIGlzIGFscGhhbnVtZXJpYyBhbmQg ZGlzcGxheXMgYSBmb3JtIGlmIHNvLjwvcD4KCgk8aDMgaWQ9ImVnOCI+RXhhbXBsZSA4OiBk aXNwbGF5aW5nIHVzZWQgdmFsdWVzPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3VybHZhcjpzb3J0X29y ZGVyJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7aW4mcXVvdDsKICAgICB2YWx1ZT0mcXVv dDtpZC9wcmljZS9zaXplL2NvbG91ciZxdW90OyZndDsKICAmbHQ7cCZndDtTb3J0aW5nIHZh bHVlcyBieSB7c21kX2lmX3NvcnRfb3JkZXJ9Jmx0Oy9wJmd0OwogIC8vIERvIHNvbWUgc3R1 ZmYKJmx0O3R4cDplbHNlIC8mZ3Q7CiAgLy8gVXNlIGEgZGVmYXVsdCBzb3J0LCBvciBzaG93 IGFuIGVycm9yIGhlcmUKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ QnkgdXNpbmcgdGhlIHJlcGxhY2VtZW50IHRhZyB7c21kX2lmX3NvcnRfb3JkZXJ9IHlvdSBo YXZlIHBsdWNrZWQgdGhlIHZhbHVlIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IGJhciBhbmQgaW5zZXJ0ZWQgaXQgaW50byB0aGUgYXJ0aWNsZS4gVXNlZnVsIHdo ZW4gdXNpbmcgdGhlIDxjb2RlPmluPC9jb2RlPiBvciA8Y29kZT5ub3RpbjwvY29kZT4gb3Bl cmF0b3JzIGJlY2F1c2UsIGFsdGhvdWdoIHlvdSBrbm93IHRoYXQgdGhlIGZpZWxkIG1hdGNo ZWQgb25lIG9mIHRoZSB2YWx1ZXMgaW4geW91ciBsaXN0LCB5b3Ugd291bGQgb3RoZXJ3aXNl IG5vdCBrbm93IHdoaWNoIG9uZSBoYXMgYmVlbiBnaXZlbiBvbiB0aGUgYWRkcmVzcyBiYXIu IElmIHlvdSBzcGVjaWZ5IHRoZSA8Y29kZT5kZWJ1ZzwvY29kZT4gYXR0cmlidXRlIGluIHRh Z3MgbGlrZSB0aGVzZSB5b3UgY2FuIG1vcmUgZWFzaWx5IHNlZSB3aGF0IHJlcGxhY2VtZW50 cyBhcmUgYXZhaWxhYmxlLjwvcD4KCgk8aDMgaWQ9ImVnOSI+RXhhbXBsZSA5OiB1c2luZyBw aHB2YXI8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpwaHAmZ3Q7Cmdsb2JhbCAkYm9keWV4OwokYm9keWV4ID0gZXhjZXJwdChhcnJheSgp KS5ib2R5KGFycmF5KCkpOwombHQ7L3R4cDpwaHAmZ3Q7CiZsdDt0eHA6c21kX2lmIGZpZWxk PSZxdW90O3BocHZhcjpib2R5ZXgmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtndDpMRU4m cXVvdDsKICAgICB2YWx1ZT0mcXVvdDszMDAmcXVvdDsmZ3Q7CiAgJmx0O3AmZ3Q7WW91IGFy ZSBhIGJpZyBib3kgYXQge3NtZF9pZl9sZW5fYm9keWV4fQogICAgIGNoYXJhY3RlcnMgbG9u ZyEmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPklm IHB1dCBpbiBhbiBhcnRpY2xlIEZvcm0gKDxzcGFuIGNsYXNzPSJjYXBzIj5OT1Q8L3NwYW4+ IGRpcmVjdGx5IGluIGFuIGFydGljbGUgb3IgeW91JiM4MjE3O2xsIGdldCBhbiBvdXQgb2Yg bWVtb3J5IGVycm9yISksIHRoaXMgY2hlY2tzIHRoZSBleGNlcnB0IGFuZCBib2R5IGFuZCBz aG93cyB0aGUgbWVzc2FnZSBpZiB0aGUgY29tYmluZWQgdG90YWwgbGVuZ3RoIGlzIG1vcmUg dGhhbiAzMDAgY2hhcmFjdGVycy48L3A+CgoJPGgzIGlkPSJlZzEwIj5FeGFtcGxlIDEwOiA8 Y29kZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNvZGU+cmFuZ2U8L2NvZGU+PC9oMz4KCgk8cD5D aGVjayB0aGF0IHRoZSBnaXZlbiA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBwYXJh bXMgPGNvZGU+ZGF5PC9jb2RlPiBhbmQgPGNvZGU+bW9udGg8L2NvZGU+IGFyZSB3aXRoaW4g cmVhc29uYWJsZSB0b2xlcmFuY2UuIE5vdGUgdGhhdCBpdCYjODIxNztzIHN0aWxsIHBvc3Np YmxlIHRvIHNwZWNpZnkgdGhlIDMxc3QgRmVicnVhcnkgc28geW91IG1heSByZXF1aXJlIGV4 dHJhIGNoZWNrcyBpbiB0aGUgY29udGFpbmVyLjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48 Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3VybHZhcjpk YXksIHVybHZhcjptb250aCZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2JldHdlZW4sIGJl dHdlZW4mcXVvdDsgdmFsdWU9JnF1b3Q7MC8zMiwgMC8xMyZxdW90OyZndDsKICAgLy8gTGlr ZWx5IGEgdmFsaWQgZGF0ZSBzdXBwbGllZAombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5UaGlzIGlzIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50LCBhbmQgcHJvYmFi bHkgbW9yZSBvYnZpb3VzIHRvIGFueW9uZSBlbHNlIHJlYWRpbmcgdGhlIGNvZGU6PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYg ZmllbGQ9JnF1b3Q7dXJsdmFyOmRheSwgdXJsdmFyOm1vbnRoJnF1b3Q7CiAgICAgb3BlcmF0 b3I9JnF1b3Q7cmFuZ2UsIHJhbmdlJnF1b3Q7IHZhbHVlPSZxdW90OzEvMzEsIDEvMTImcXVv dDsmZ3Q7CiAgIC8vIExpa2VseSBhIHZhbGlkIGRhdGUgc3VwcGxpZWQKJmx0Oy90eHA6c21k X2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SWYgeW91IHdhbnRlZCB0byBmYWN0b3IgdGhl IHllYXIgaW4gYW5kIG1ha2Ugc3VyZSB0aGF0IG5vYm9keSB1c2VkIGEgeWVhciBsZXNzIHRo YW4gMTkwMCBvciBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgeWVhciwgdHJ5IHRoaXM6PC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpwaHAm Z3Q7Cmdsb2JhbCAkdGhpc3llYXI7CiR0aGlzeWVhciA9IGRhdGUoJnF1b3Q7WSZxdW90Oyk7 CiZsdDsvdHhwOnBocCZndDsKJmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOmQs IHVybHZhcjptLCB1cmx2YXI6eSZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O3JhbmdlLCBy YW5nZSwgcmFuZ2UmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDsxLzMxLCAxLzEyLCAxOTAwL3Bo cHZhcjp0aGlzeWVhciZxdW90OyZndDsKICAgLy8gTGlrZWx5IGEgdmFsaWQgZGF0ZSBzdXBw bGllZAombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMTEi PkV4YW1wbGUgMTE6IHJlYWRpbmcgbXVsdGlwbGUgdmFsdWVzIGZyb20gZGlmZmVyZW50IHBs YWNlczwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7 dHhwOnZhcmlhYmxlIG5hbWU9JnF1b3Q7bHR1YWUmcXVvdDsmZ3Q7NDImbHQ7L3R4cDp2YXJp YWJsZSZndDsKJmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnRyaWdnZXImcXVv dDsKICAgICBvcGVyYXRvcj0mcXVvdDtpbiZxdW90OyB2YWx1ZT0mcXVvdDszLzE1LzM2L3R4 cHZhcjpsdHVhZS8xODAvP3NlY3JldCZxdW90OyZndDsKICAgJmx0O3AmZ3Q7WW91IGZvdW5k IG9uZSBvZiB0aGUgbWFnaWMgbnVtYmVycyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0 Owo8L2NvZGU+PC9wcmU+CgoJPHA+Rmlyc3Qgb2YgYWxsIHdlIHNldCB1cCB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdmFyaWFibGUsIHRoZW4gdGVzdCB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgPGNvZGU+dHJpZ2dlcjwvY29kZT4g YW5kIHNlZSBpZiBpdCBpcyBvbmUgb2YgdGhlIG51bWJlcnMgbGlzdGVkIGluIHRoZSA8Y29k ZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlLiBOb3RlIHRoYXQgd2UgaGF2ZSBzcGVjaWZpZWQg dGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHZhcmlhYmxlIGFzIG9uZSBvZiB0 aGUgbnVtYmVycywgYW5kIGFsc28gdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXN0b20gZmllbGQg Y2FsbGVkIDxjb2RlPnNlY3JldDwvY29kZT4uIEVzc2VudGlhbGx5LCB0aGlzIGJ1aWxkcyB1 cCB0aGUgdmFsdWUgYXR0cmlidXRlIGZyb20gYWxsIHRoZSBzb3VyY2VzIGFuZCB0ZXN0cyB0 aGUgZmluYWwgcmVzdWx0LiBTbyBpZiBzZWNyZXQgaGVsZCB0aGUgbnVtYmVyIDk0LCB0aGlz IHNtZF9pZiB0YWcgY2hlY2tzIGlmIHRyaWdnZXIgaXMgb25lIG9mIDMsIDE1LCAzNiwgNDIs IDE4MCBvciA5NCBhbmQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgaWYgc28uIElmIDxjb2RlPnNl Y3JldDwvY29kZT4gaW5zdGVhZCBjb250YWluZWQgPGNvZGU+OTQvMTAxLzI0ODwvY29kZT4g dGhlc2UgdGhyZWUgdmFsdWVzIHdvdWxkIGFsc28gYmUgdGVzdGVkIGFzIHBhcnQgb2YgdGhl IDxjb2RlPmluPC9jb2RlPiBvcGVyYXRvci48L3A+CgoJPGgyIGNsYXNzPSJjaGFuZ2Vsb2ci PkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4zMCBEZWMgMDcgfCAwLjEgfCBJbml0aWFs IHJlbGVhc2U8L2xpPgoJCTxsaT4zMCBEZWMgMDcgfCAwLjIgfCBBZGRlZCBwYXJlbnQgY2F0 ZWdvcnkgY2hlY2tpbmcgKHRoYW5rcyB0aGVfZ2hvc3QpPC9saT4KCQk8bGk+MDIgSmFuIDA4 IHwgMC4zIHwgQWRkZWQgZGVmaW5lZC91bmRlZmluZWQgYW5kIHN0cmljdCBudW1lcmljIGNv bXBhcmlzb25zPC9saT4KCQk8bGk+MDYgSmFuIDA4IHwgMC40IHwgQWRkZWQgPGNvZGU+Pzwv Y29kZT4gbm90YXRpb24gdG8gYWxsb3cgdGhlIHZhbHVlIHRvIHJlYWQgPHNwYW4gY2xhc3M9 ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGRzOyBiZXR0ZXIgcXVvdGUgc3VwcG9ydCAoYm90aCB0 aGFua3MgTmVpbEEpPC9saT4KCQk8bGk+MDYgSmFuIDA4IHwgMC40MSB8IEZpeGVkIGxvd2Vy IGNhc2UgZmllbGQgbmFtZXMgYW5kIHVuZGVmaW5lZCBpbmRleCBlcnJvciAodGhhbmtzIHBl dGVyaik8L2xpPgoJCTxsaT4xNCBKYW4gMDggfCAwLjUgfCBBZGRlZCBjYXNlX3NlbnNpdGl2 ZSBvcHRpb247IG1hZGUgJiM4MjE2O2NvbnRhaW5zJiM4MjE3OyB0aGUgZGVmYXVsdCBmb3Ig JiM4MjE2O3BhcmVudCYjODIxNzsgdGVzdHM7IGltcHJvdmVkIGhlbHAgKGFsbCB0aGFua3Mg dGhlX2dob3N0KTsgYWRkZWQgZGVsaW0gb3B0aW9uczwvbGk+CgkJPGxpPjE1IEphbiAwOCB8 IDAuNTEgfCBGaXhlZCBkZWZpbmVkL3VuZGVmaW5lZCBzeW50YXggZXJyb3I7IHRpZ2h0ZW5l ZCBpc3VzZWQvaXNlbXB0eSB0byBkaXN0aW5ndWlzaCB0aGVtIGZyb20gZGVmaW5lZC91bmRl ZmluZWQ8L2xpPgoJCTxsaT4yNSBNYXkgMDggfCAwLjYgfCBGaXhlZCAmIzgyMTY7dW5kZWZp bmVkIGluZGV4JiM4MjE3OyBlcnJvcnMgKHRoYW5rcyByZWRib3QgYW5kIHRoZV9naG9zdCkg OyBhZGRlZCBtb3JlIHByZXRleHQgdmFyaWFibGVzIDsgYWRkZWQgbW9yZSA8Y29kZT5pczwv Y29kZT4gY2hlY2tzIChhbmQgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1NQQUNFPC9zcGFu PiBtb2RpZmllcikgOyBhbGxvd2VkIGZpbGUgYW5kIGxpbmsgdGVzdHMgKGluY2x1ZGluZyBw YXJlbnQgY2F0ZWdvcmllcyk8L2xpPgoJCTxsaT4yNiBNYXkgMDggfCAwLjYxIHwgRml4ZWQg c3R1cGlkIG92ZXJzaWdodCBpbiBmaWVsZCBuYW1lIGdlbmVyYXRpb24gdG8gYWxsb3cgYXJi aXRyYXJ5IG5hbWVzIGluc3RlYWQgb2YgZm9yY2luZyAkdGhpc2FydGljbGUgKHRoYW5rcyB0 byBKb2FuYSBDYXJ2YWxobyBmb3IgbGVhZGluZyBtZSB0byB0aGlzKTwvbGk+CgkJPGxpPjEx IEp1biAwOCB8IDAuNjIgfCBGaXhlZCBpbmNvcnJlY3QgcmVzdWx0IGlmIGV2YWwoKSBpcyBl bXB0eSA7IGFkZGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBmaWVsZCBvYmpl Y3Q8L2xpPgoJCTxsaT4xMCBTZXAgMDggfCAwLjcgfCBGaXhlZCB3YXJuaW5nIGlmIGVtcHR5 IGN1c3RvbSBmaWVsZCBpbiB2YWx1ZSAodGhhbmtzIHZpc3VhbHBlb3BsZSkgOyBhZGRlZCB0 eHB2YXIgc3VwcG9ydCAodGhhbmtzIHRoZV9naG9zdCkgOyBhZGRlZCB0aGlzaW1hZ2Ugc3Vw cG9ydCAoZm9yIHRoZSBmdXR1cmUpIDsgYWRkZWQgb3BlcmF0b3JzIDxjb2RlPmluPC9jb2Rl PiwgPGNvZGU+bm90aW48L2NvZGU+IGFuZCB0aGUgPGNvZGU+bGlzdF9kZWxpbTwvY29kZT4g YXR0cmlidXRlOyBlbmFibGVkIHJlcGxhY2VtZW50IHRhZ3MgZm9yIG1hdGNoZWQgdmFyaWFi bGVzPC9saT4KCQk8bGk+MDEgT2N0IDA4IHwgMC43MSB8IEZpeGVkIHRoZSBmaXggZm9yIGVt cHR5IGN1c3RvbSBmaWVsZHMgaW1wbGVtZW50ZWQgaW4gMC43ICh0aGFua3MgbWFwdS92aXN1 YWxwZW9wbGUpPC9saT4KCQk8bGk+MDEgT2N0IDA4IHwgMC43MiB8IEFkZGVkIDxjb2RlPjpO T1RBR1M8L2NvZGU+ICh0aGFua3MgbWFwdSk8L2xpPgoJCTxsaT4xMyBPY3QgMDggfCAwLjcz IHwgQWRkZWQgPGNvZGU+Ok5PU1BBQ0U8L2NvZGU+IHRvIDxjb2RlPmJlZ2luczwvY29kZT4s IDxjb2RlPmVuZHM8L2NvZGU+IGFuZCA8Y29kZT5jb250YWluczwvY29kZT4gKHRoYW5rcyBt YXB1KSwgYWRkZWQgcGhwdmFyIHN1cHBvcnQsIDxjb2RlPjpMRU48L2NvZGU+IG1vZGlmaWVy IGFuZCBsZW5ndGggcmVwbGFjZW1lbnQgdGFncyAoYWxsIHRoYW5rcyB0aGVfZ2hvc3QpPC9s aT4KCQk8bGk+MTMgT2N0IDA4IHwgMC43NCB8IEJ1ZyBmaXggdGhlIHNtZF9pZl8gbmFtZXMg b2YgdmFscyBhbmQgZmllbGRzIHRvIGF2b2lkIGNsYXNoZXMuIE5vdyBudW1lcmljYWxseSBp bmRleGVkPC9saT4KCQk8bGk+MDIgRGVjIDA4IHwgMC43NSB8IEFkZGVkIDxjb2RlPmRpdmlz aWJsZTwvY29kZT4gb3BlcmF0b3IgKHRoYW5rcyBnb21lZGlhKSA7IGFsbG93IHNob3J0LWNp cmN1aXQgb2YgZmllbGRzICh0aGFua3MgcmVkYm90KTwvbGk+CgkJPGxpPjIwIE1hciAwOSB8 IDAuNzYgfCBBZGRlZCA8Y29kZT5wb3N0dmFyPC9jb2RlPiBmaWVsZCB0eXBlICh0aGFua3Mg a29zdGFzNDUpPC9saT4KCQk8bGk+MjIgTWFyIDA5IHwgMC43NyB8IEFkZGVkIDxjb2RlPjpU UklNPC9jb2RlPiBtb2RpZmllciAodGhhbmtzIGdvbWVkaWEpPC9saT4KCQk8bGk+MDUgQXBy IDA5IHwgMC44IHwgQWRkZWQgZmlsdGVyaW5nIGNhcGFiaWxpdHk8L2xpPgoJCTxsaT4yNiBT ZXAgMDkgfCAwLjgxIHwgQWRkZWQgcGFyZW50IDxjb2RlPlRUTDwvY29kZT4gYW5kIDxjb2Rl PktJRFM8L2NvZGU+IG1vZGlmaWVycyAodGhhbmtzIHBob3Rvbm9tYWQpIDsgaW1wcm92ZWQg cGFyZW50IGRlYnVnIG91dHB1dDwvbGk+CgkJPGxpPjAyIE1hciAxMCB8IDAuODIgfCBBZGRl ZCA8Y29kZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNvZGU+cmFuZ2U8L2NvZGU+ICh0aGFua3Mg c3BlZWtlKTwvbGk+CgkJPGxpPjAyIE1hciAxMCB8IDAuOSB8IEludGVybmFsIGNvZGUgcmVm YWN0b3Jpc2F0aW9uIDsgYWxsb3dlZCBtdWx0aXBsZSB2YWx1ZXMgdG8gYmUgcmVhZCBmcm9t IG11bHRpcGxlIHNvdXJjZXMgKHRoYW5rcyBzcGVla2UpIDsgZW5oYW5jZWQgcmVwbGFjZW1l bnQgdGFnczwvbGk+Cgk8L3VsPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJTiBDU1Mg KioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdo dDoxLjMgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUl LzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNv bG9yOiAjRkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3Jt YWw7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7 IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9 CiNzbWRfaGVscCBhOmxpbmssICNzbWRfaGVscCBhOnZpc2l0ZWQgeyBjb2xvcjogYmx1ZTsg dGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmx1ZTsg cGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBhOmFj dGl2ZSB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0 b206IDJweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgaDEg eyBjb2xvcjogIzM2OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46 IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9t OiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250 OiAxN3B4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICM2 OTM7IGZvbnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6 IDFweDsgbWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO30KI3Nt ZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXIt c3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJj YXNlOyB9CiNzbWRfaGVscCAuYXR0LW5hbWUgeyBmb250LXdlaWdodDpib2xkOyB9CiNzbWRf aGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsg fQojc21kX2hlbHAgdGFibGUge3dpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRk aW5nLWJvdHRvbToxZW07IGJvcmRlcjoxcHggc29saWQgIzY2Njt9CiNzbWRfaGVscCB0ZCwg I3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30K PC9zdHlsZT4KPCEtLSAqKiogRU5EIFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6MzoibWQ1Ijtz OjMyOiIzOGNiMzAwYmQ0ZGRjNjdiNzMxY2JkZGNlMjZiY2ZhNiI7fQ==