# upm_category_image v.0.5.2 # Display image for category. # Mary Fredborg # http://utterplush.com/txp-plugins/upm-category-image # .......................................................................... # A plugin for Textpattern # http://textpattern.com/ # # Adding Plugins to Your Textpattern Installation # http://textpattern.net/wiki/index.php?title=Intermediate_Weblog_Model#Adding_Plugins_to_Your_Textpattern_Installation # .......................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE4OiJ1cG1fY2F0ZWdvcnlfaW1hZ2UiO3M6MTE6ImRlc2Ny aXB0aW9uIjtzOjI3OiJEaXNwbGF5IGltYWdlIGZvciBjYXRlZ29yeS4iO3M6NzoidmVyc2lv biI7czo1OiIwLjUuMiI7czo0OiJ0eXBlIjtpOjA7czo2OiJhdXRob3IiO3M6MTM6Ik1hcnkg RnJlZGJvcmciO3M6MTA6ImF1dGhvcl91cmkiO3M6NTI6Imh0dHA6Ly91dHRlcnBsdXNoLmNv bS90eHAtcGx1Z2lucy91cG0tY2F0ZWdvcnktaW1hZ2UiO3M6NDoiY29kZSI7czo3MjgwOiJm dW5jdGlvbiB1cG1fY2F0ZWdvcnlfaW1hZ2UoJGF0dHMgPSBhcnJheSgpKQoJewoJCWdsb2Jh bCAkcHJldGV4dCwgJHByZWZzOwoKCQlpZiAoJHByZXRleHRbJ2MnXSkKCQl7CgkJCSRyb3cg PSBnZXRSb3coInNlbGVjdCBjYXQubmFtZSBhcyBjYXRfbmFtZSwgY2F0LnRpdGxlIGFzIGNh dF90aXRsZSwKCQkJCWltZy5pZCBhcyBpbWdfaWQsIGltZy53IGFzIGltZ193LCBpbWcuaCBh cyBpbWdfaCwgaW1nLmV4dCBhcyBpbWdfZXh0LCBpbWcudGh1bWJuYWlsIGFzIGltZ190aHVt Ym5haWwKCQkJCWZyb20gIi5zYWZlX3BmeCgndHhwX2ltYWdlJykuIiBhcyBpbWcgbGVmdCBq b2luICIuc2FmZV9wZngoJ3R4cF9jYXRlZ29yeScpLiIgYXMgY2F0IG9uKGNhdC5uYW1lID0g aW1nLm5hbWUpCgkJCQl3aGVyZSBpbWcuY2F0ZWdvcnkgPSAndXBtX2NhdGVnb3J5X2ltYWdl JyBhbmQgaW1nLm5hbWUgPSAnIi5kb1NsYXNoKCRwcmV0ZXh0WydjJ10pLiInIGxpbWl0IDAs IDEiKTsKCgkJCWlmICgkcm93KQoJCQl7CgkJCQkkYXR0c1sndGh1bWInXSA9ICdubyc7CgoJ CQkJcmV0dXJuIHVwbV9jYXRfaW1nKCRwcmV0ZXh0WydjJ10sICRyb3csICRhdHRzKTsKCQkJ fQoJCX0KCX0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCglmdW5jdGlvbiB1cG1fY2F0ZWdvcnkxX2ltYWdlKCRh dHRzID0gYXJyYXkoKSkKCXsKCQlnbG9iYWwgJHRoaXNhcnRpY2xlLCAkcHJldGV4dCwgJHBy ZWZzOwoKCQlpZiAoJHRoaXNhcnRpY2xlWydjYXRlZ29yeTEnXSkKCQl7CgkJCSRyb3cgPSBn ZXRSb3coInNlbGVjdCBjYXQubmFtZSBhcyBjYXRfbmFtZSwgY2F0LnRpdGxlIGFzIGNhdF90 aXRsZSwKCQkJCWltZy5pZCBhcyBpbWdfaWQsIGltZy53IGFzIGltZ193LCBpbWcuaCBhcyBp bWdfaCwgaW1nLmV4dCBhcyBpbWdfZXh0LCBpbWcudGh1bWJuYWlsIGFzIGltZ190aHVtYm5h aWwKCQkJCWZyb20gIi5zYWZlX3BmeCgndHhwX2ltYWdlJykuIiBhcyBpbWcgbGVmdCBqb2lu ICIuc2FmZV9wZngoJ3R4cF9jYXRlZ29yeScpLiIgYXMgY2F0IG9uKGNhdC5uYW1lID0gaW1n Lm5hbWUpCgkJCQl3aGVyZSBpbWcuY2F0ZWdvcnkgPSAndXBtX2NhdGVnb3J5X2ltYWdlJyBh bmQgaW1nLm5hbWUgPSAnIi5kb1NsYXNoKCR0aGlzYXJ0aWNsZVsnY2F0ZWdvcnkxJ10pLiIn IGxpbWl0IDAsIDEiKTsKCgkJCWlmICgkcm93KQoJCQl7CgkJCQlyZXR1cm4gdXBtX2NhdF9p bWcoJHRoaXNhcnRpY2xlWydjYXRlZ29yeTEnXSwgJHJvdywgJGF0dHMpOwoJCQl9CgkJfQoJ fQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKCWZ1bmN0aW9uIHVwbV9jYXRlZ29yeTJfaW1hZ2UoJGF0dHMgPSBh cnJheSgpKQoJewoJCWdsb2JhbCAkdGhpc2FydGljbGUsICRwcmV0ZXh0LCAkcHJlZnM7CgoJ CWlmICgkdGhpc2FydGljbGVbJ2NhdGVnb3J5MiddKQoJCXsKCQkJJHJvdyA9IGdldFJvdygi c2VsZWN0IGNhdC5uYW1lIGFzIGNhdF9uYW1lLCBjYXQudGl0bGUgYXMgY2F0X3RpdGxlLAoJ CQkJaW1nLmlkIGFzIGltZ19pZCwgaW1nLncgYXMgaW1nX3csIGltZy5oIGFzIGltZ19oLCBp bWcuZXh0IGFzIGltZ19leHQsIGltZy50aHVtYm5haWwgYXMgaW1nX3RodW1ibmFpbAoJCQkJ ZnJvbSAiLnNhZmVfcGZ4KCd0eHBfaW1hZ2UnKS4iIGFzIGltZyBsZWZ0IGpvaW4gIi5zYWZl X3BmeCgndHhwX2NhdGVnb3J5JykuIiBhcyBjYXQgb24oY2F0Lm5hbWUgPSBpbWcubmFtZSkK CQkJCXdoZXJlIGltZy5jYXRlZ29yeSA9ICd1cG1fY2F0ZWdvcnlfaW1hZ2UnIGFuZCBpbWcu bmFtZSA9ICciLmRvU2xhc2goJHRoaXNhcnRpY2xlWydjYXRlZ29yeTInXSkuIicgbGltaXQg MCwgMSIpOwoKCQkJaWYgKCRyb3cpCgkJCXsKCQkJCXJldHVybiB1cG1fY2F0X2ltZygkdGhp c2FydGljbGVbJ2NhdGVnb3J5MiddLCAkcm93LCAkYXR0cyk7CgkJCX0KCQl9Cgl9CgovLyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgoJZnVuY3Rpb24gdXBtX2NhdF9pbWcoJGNhdGVnb3J5LCAkcm93LCAkYXR0cykK CXsKCQlnbG9iYWwgJHByZXRleHQsICRwcmVmczsKCgkJZXh0cmFjdChsQXR0cyhhcnJheSgK CQkJJ2NsYXNzJwkJCQkgPT4gJycsCgkJCSdoZWlnaHQnCQkJID0+ICd5ZXMnLAoJCQknaWQn CQkJCQkgPT4gJycsCgkJCSdsaW5rJwkJCQkgPT4gJ3llcycsCgkJCSdsaW5rX3NlY3Rpb24n ID0+ICdubycsCgkJCSd0aHVtYicJCQkJID0+ICd5ZXMnLAoJCQkndGl0bGUnCQkJCSA9PiAn eWVzJywKCQkJJ3dpZHRoJwkJCQkgPT4gJ3llcycsCgkJCSd3cmFwdGFnJwkJCSA9PiAnJywK CQkJJ3hodG1sJwkJCQkgPT4gJ3llcycKCQkpLCAkYXR0cykpOwoKCQlpZiAoJHJvd1snaW1n X3RodW1ibmFpbCddIGFuZCAoJHRodW1iID09ICd5ZXMnKSkKCQl7CgkJCSRpbWdfdXJsID0g aHUuJHByZWZzWydpbWdfZGlyJ10uJy8nLiRyb3dbJ2ltZ19pZCddLid0Jy4kcm93WydpbWdf ZXh0J107CgoJCQlsaXN0KCR3LCAkaCkgPSBnZXRpbWFnZXNpemUoJHByZWZzWydwYXRoX3Rv X3NpdGUnXS5EUy4kcHJlZnNbJ2ltZ19kaXInXS5EUy4kcm93WydpbWdfaWQnXS4ndCcuJHJv d1snaW1nX2V4dCddKTsKCQl9CgoJCWVsc2UKCQl7CgkJCSRpbWdfdXJsID0gaHUuJHByZWZz WydpbWdfZGlyJ10uJy8nLiRyb3dbJ2ltZ19pZCddLiRyb3dbJ2ltZ19leHQnXTsKCgkJCSR3 ID0gJHJvd1snaW1nX3cnXTsKCQkJJGggPSAkcm93WydpbWdfaCddOwoJCX0KCgkJJGlkID0g KCRpZCkgPyAnIGlkPSInLiRpZC4nIicgOiAkaWQ7CgkJJGNsYXNzID0gKCRjbGFzcykgPyAn IGNsYXNzPSInLiRjbGFzcy4nIicgOiAkY2xhc3M7CgoJCSRpbWcgPSAnPGltZyBzcmM9Iicu JGltZ191cmwuJyInLgoJCQkoJHdpZHRoID09ICd5ZXMnID8gJyB3aWR0aD0iJy4kdy4nIicg OiAnJykuCgkJCSgkaGVpZ2h0ID09ICd5ZXMnID8gJyBoZWlnaHQ9IicuJGguJyInIDogJycp LgoJCQkoKCR3cmFwdGFnID09IGZhbHNlIGFuZCAkbGluayA9PSAnbm8nKSA/ICRpZC4kY2xh c3MgOiAnJykuCgkJCScgYWx0PSInLiRyb3dbJ2NhdF90aXRsZSddLiciJy4KCQkJKCR0aXRs ZSA9PSAneWVzJyA/ICcgdGl0bGU9IicuJHJvd1snY2F0X3RpdGxlJ10uJyInIDogJyB0aXRs ZT0iIicpLgoJCQkoJHhodG1sID09ICd5ZXMnID8gJyAvPicgOiAnPicpOwoKCQlpZiAoJGxp bmsgPT0gJ25vJykKCQl7CgkJCXJldHVybiAkaW1nOwoJCX0KCgkJJGNhdGVnb3J5ID0gdXJs ZW5jb2RlKCRyb3dbJ2NhdF9uYW1lJ10pOwoKCQkkdXJsID0gKCRsaW5rX3NlY3Rpb24gPT0g J3llcycpID8KCQkJcGFnZWxpbmt1cmwoYXJyYXkoJ3MnCT0+ICRwcmV0ZXh0WydzJ10sICdj JyA9PiAkY2F0ZWdvcnkpKSA6CgkJCXBhZ2VsaW5rdXJsKGFycmF5KCdjJyA9PiAkY2F0ZWdv cnkpKTsKCgkJcmV0dXJuICgkd3JhcHRhZykgPwoJCQlkb1RhZyhocmVmKCRpbWcsICR1cmwp LCAkd3JhcHRhZywgJGNsYXNzLCAnJywgJGlkKSA6CgkJCXRhZygkaW1nLCAnYScsICcgaHJl Zj0iJy4kdXJsLiciJy4kaWQuJGNsYXNzKTsKCX0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCglmdW5jdGlvbiB1 cG1fY2F0ZWdvcnlfaW1hZ2VfbGlzdCgkYXR0cyA9IGFycmF5KCkpCgl7CgkJZ2xvYmFsICRw cmVmcywgJHByZXRleHQ7CgoJCSRhdHRycyA9IGxBdHRzKGFycmF5KAoJCQknYnJlYWsnCQkJ CSA9PiAnJywKCQkJJ2NsYXNzJwkJCQkgPT4gJycsCgkJCSdoZWlnaHQnCQkJID0+ICd5ZXMn LAoJCQknaWQnCQkJCQkgPT4gJycsCgkJCSdsaW5rJwkJCQkgPT4gJ3llcycsCgkJCSdsaW5r X3NlY3Rpb24nID0+ICdubycsCgkJCSdzaG93JwkJCQkgPT4gJ2FsbCcsCgkJCSd0aHVtYicJ CQkJID0+ICd5ZXMnLAoJCQkndGl0bGUnCQkJCSA9PiAneWVzJywKCQkJJ3dpZHRoJwkJCQkg PT4gJ3llcycsCgkJCSd3cmFwdGFnJwkJCSA9PiAnJywKCQkJJ3hodG1sJwkJCQkgPT4gJ3ll cycKCQkpLCAkYXR0cyk7CgoJCWV4dHJhY3QoJGF0dHJzKTsKCgkJc3dpdGNoICgkc2hvdykK CQl7CgkJCWNhc2UgJ3VzZWQnOgoJCQkJJHJzID0gc2FmZV9xdWVyeSgic2VsZWN0IGRpc3Rp bmN0KGNhdC5uYW1lKSBhcyBjYXRfbmFtZSwgY2F0LnRpdGxlIGFzIGNhdF90aXRsZSwKCQkJ CQlpbWcuaWQgYXMgaW1nX2lkLCBpbWcudyBhcyBpbWdfdywgaW1nLmggYXMgaW1nX2gsIGlt Zy5leHQgYXMgaW1nX2V4dCwgaW1nLmNhcHRpb24gYXMgaW1nX2NhcHRpb24sIGltZy50aHVt Ym5haWwgYXMgaW1nX3RodW1ibmFpbAoJCQkJCWZyb20gIi5zYWZlX3BmeCgndHhwX2ltYWdl JykuIiBhcyBpbWcgbGVmdCBqb2luICIuc2FmZV9wZngoJ3R4cF9jYXRlZ29yeScpLiIgYXMg Y2F0IG9uKGNhdC5uYW1lID0gaW1nLm5hbWUpCgkJCQkJbGVmdCBqb2luICIuc2FmZV9wZngo J3RleHRwYXR0ZXJuJykuIiBhcyBwb3N0IG9uKGNhdC5uYW1lID0gcG9zdC5DYXRlZ29yeTEg b3IgY2F0Lm5hbWUgPSBwb3N0LkNhdGVnb3J5MikKCgkJCQkJd2hlcmUKCQkJCQkJcG9zdC5T ZWN0aW9uID0gJyIuZG9TbGFzaCgkcHJldGV4dFsncyddKS4iJyBhbmQKCQkJCQkJY2F0LnR5 cGUgPSAnYXJ0aWNsZScgYW5kCgkJCQkJCWNhdC5uYW1lIG5vdCBpbigncm9vdCcsJ2RlZmF1 bHQnKSBhbmQKCQkJCQkJaW1nLmNhdGVnb3J5ID0gJ3VwbV9jYXRlZ29yeV9pbWFnZScKCgkJ CQkJb3JkZXIgYnkgY2F0LnRpdGxlIGFzYyIpOwoJCQlicmVhazsKCgkJCWNhc2UgJ2FsbCc6 CgkJCWRlZmF1bHQ6CgkJCQkkcnMgPSBzYWZlX3F1ZXJ5KCJzZWxlY3QgY2F0Lm5hbWUgYXMg Y2F0X25hbWUsIGNhdC50aXRsZSBhcyBjYXRfdGl0bGUsCgkJCQkJaW1nLmlkIGFzIGltZ19p ZCwgaW1nLncgYXMgaW1nX3csIGltZy5oIGFzIGltZ19oLCBpbWcuZXh0IGFzIGltZ19leHQs IGltZy5jYXB0aW9uIGFzIGltZ19jYXB0aW9uLCBpbWcudGh1bWJuYWlsIGFzIGltZ190aHVt Ym5haWwKCQkJCQlmcm9tICIuc2FmZV9wZngoJ3R4cF9pbWFnZScpLiIgYXMgaW1nIGxlZnQg am9pbiAiLnNhZmVfcGZ4KCd0eHBfY2F0ZWdvcnknKS4iIGFzIGNhdCBvbihjYXQubmFtZSA9 IGltZy5uYW1lKQoJCQkJCXdoZXJlCgkJCQkJCWNhdC50eXBlID0gJ2FydGljbGUnIGFuZAoJ CQkJCQljYXQubmFtZSBub3QgaW4oJ3Jvb3QnLCdkZWZhdWx0JykgYW5kCgkJCQkJCWltZy5j YXRlZ29yeSA9ICd1cG1fY2F0ZWdvcnlfaW1hZ2UnCgoJCQkJCW9yZGVyIGJ5IGNhdC50aXRs ZSBhc2MiKTsKCQkJYnJlYWs7CgkJfQoKCQlpZiAoJHJzKQoJCXsKCQkJJG91dCA9IGFycmF5 KCk7CgoJCQl3aGlsZSAoJHJvdyA9IG5leHRSb3coJHJzKSkKCQkJewoJCQkJJG91dFtdID0g dXBtX2NhdF9pbWdfbGlzdCgkYXR0cnMsICRyb3cpOwoJCQl9CgoJCQlpZiAoJG91dCkKCQkJ ewoJCQkJaWYgKCR3cmFwdGFnID09ICd1bCcgb3IgJHdyYXB0YWcgPT0gJ29sJykKCQkJCXsK CQkJCQlyZXR1cm4gZG9XcmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWssICRjbGFzcywgJycs ICcnLCAnJywgJGlkKTsKCQkJCX0KCgkJCQlyZXR1cm4gKCR3cmFwdGFnKSA/IGRvVGFnKGpv aW4oJGJyZWFrLCAkb3V0KSwgJHdyYXB0YWcsICRjbGFzcywgJycsICRpZCkgOiBqb2luKCcn LCAkb3V0KTsKCQkJfQoJCX0KCX0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCglmdW5jdGlvbiB1cG1fY2F0X2lt Z19saXN0KCRhdHRzLCAkcm93KQoJewoJCWdsb2JhbCAkcHJlZnMsICRwcmV0ZXh0OwoKCQll eHRyYWN0KCRhdHRzKTsKCgkJaWYgKCRyb3dbJ2ltZ190aHVtYm5haWwnXSBhbmQgKCR0aHVt YiA9PSAneWVzJykpCgkJewoJCQkkaW1nX3VybCA9IGh1LiRwcmVmc1snaW1nX2RpciddLicv Jy4kcm93WydpbWdfaWQnXS4ndCcuJHJvd1snaW1nX2V4dCddOwoKCQkJbGlzdCgkdywgJGgp ID0gZ2V0aW1hZ2VzaXplKCRwcmVmc1sncGF0aF90b19zaXRlJ10uRFMuJHByZWZzWydpbWdf ZGlyJ10uRFMuJHJvd1snaW1nX2lkJ10uJ3QnLiRyb3dbJ2ltZ19leHQnXSk7CgkJfQoKCQll bHNlCgkJewoJCQkkaW1nX3VybCA9IGh1LiRwcmVmc1snaW1nX2RpciddLicvJy4kcm93Wydp bWdfaWQnXS4kcm93WydpbWdfZXh0J107CgoJCQkkdyA9ICRyb3dbJ2ltZ193J107CgkJCSRo ID0gJHJvd1snaW1nX2gnXTsKCQl9CgoJCSRpbWdfdGl0bGUgPSAnJzsKCQkkbGlua190aXRs ZSA9ICcnOwoKCQkkaW1nX2NsYXNzID0gJyc7CgkJJGxpbmtfY2xhc3MgPSAnJzsKCgkJaWYg KCRsaW5rID09ICd5ZXMnKQoJCXsKCQkJaWYgKCRyb3dbJ2NhdF90aXRsZSddIGFuZCAoJHRp dGxlID09ICd5ZXMnKSApCgkJCXsKCQkJCSRsaW5rX3RpdGxlID0gJyB0aXRsZT0iJy4kcm93 WydjYXRfdGl0bGUnXS4nIic7CgkJCX0KCgkJCWlmICghJHdyYXB0YWcgYW5kICRjbGFzcykK CQkJewoJCQkJJGxpbmtfY2xhc3MgPSAnIGNsYXNzPSInLiRjbGFzcy4nIic7CgkJCX0KCQl9 CgoJCWVsc2UKCQl7CgkJCWlmICgkcm93WydjYXRfdGl0bGUnXSBhbmQgKCR0aXRsZSA9PSAn eWVzJykgKQoJCQl7CgkJCQkkaW1nX3RpdGxlID0gJyB0aXRsZT0iJy4kcm93WydjYXRfdGl0 bGUnXS4nIic7CgkJCX0KCgkJCWlmICghJHdyYXB0YWcgYW5kICRjbGFzcykKCQkJewoJCQkJ JGltZ19jbGFzcyA9ICcgY2xhc3M9IicuJGNsYXNzLiciJzsKCQkJfQoJCX0KCgkJJGltZyA9 ICc8aW1nIHNyYz0iJy4kaW1nX3VybC4nIicuCgkJCSgkd2lkdGggPT0gJ3llcycgPyAnIHdp ZHRoPSInLiR3LiciJyA6ICcnKS4KCQkJKCRoZWlnaHQgPT0gJ3llcycgPyAnIGhlaWdodD0i Jy4kaC4nIicgOiAnJykuCgkJCSRpbWdfY2xhc3MuCgkJCScgYWx0PSInLiRyb3dbJ2NhdF90 aXRsZSddLiciJy4KCQkJJGltZ190aXRsZS4KCQkJKCR4aHRtbCA9PSAneWVzJyA/ICcgLz4n IDogJz4nKTsKCgkJaWYgKCRsaW5rID09ICdubycpCgkJewoJCQlyZXR1cm4gJGltZzsKCQl9 CgoJCSRjYXRlZ29yeSA9IHVybGVuY29kZSgkcm93WydjYXRfbmFtZSddKTsKCgkJJHVybCA9 ICgkbGlua19zZWN0aW9uID09ICd5ZXMnKSA/CgkJCXBhZ2VsaW5rdXJsKGFycmF5KCdzJwk9 PiAkcHJldGV4dFsncyddLCAnYycgPT4gJGNhdGVnb3J5KSkgOgoJCQlwYWdlbGlua3VybChh cnJheSgnYycgPT4gJGNhdGVnb3J5KSk7CgoJCXJldHVybiB0YWcoJGltZywgJ2EnLCAkbGlu a19jbGFzcy4nIGhyZWY9IicuJHVybC4nIicuJGxpbmtfdGl0bGUpOwoJfSI7czo0OiJoZWxw IjtzOjU0OTc6IjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbixwcm9qZWN0 aW9uIj4KPCEtLQp2YXIgewpwYWRkaW5nOiAwLjFlbTsKZm9udC1zdHlsZTogbm9ybWFsOwpm b250LXdlaWdodDogYm9sZDsKZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKYmFja2dyb3VuZC1j b2xvcjogI2VlZTsKfQoKZHQgewptYXJnaW46IDAgMCA1cHggMDsKcGFkZGluZzogMDsKfQoK ZGQgewptYXJnaW46IDAgMCAxMHB4IDE1cHg7CnBhZGRpbmc6IDA7Cn0KCnRhYmxlLnVwbV90 YWdfYXR0cyB7Cm1hcmdpbjogMCAwIDE1cHggMDsKYm9yZGVyOiAxcHggc29saWQgI2VlZTsK Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKfQoKdGFibGUudXBtX3RhZ19hdHRzIGNhcHRp b24gewpwYWRkaW5nOiAwLjVlbTsKZm9udC13ZWlnaHQ6IGJvbGQ7CnRleHQtYWxpZ246IGxl ZnQ7CmJhY2tncm91bmQtY29sb3I6ICNkZGQ7Cn0KCnRhYmxlLnVwbV90YWdfYXR0cyB0ciB7 CmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOwp9Cgp0YWJsZS51cG1fdGFnX2F0dHMg dGgsIHRhYmxlLnVwbV90YWdfYXR0cyB0ZCB7Cm1hcmdpbjogMDsKcGFkZGluZzogMC41ZW0g MWVtOwp9Cgp0YWJsZS51cG1fdGFnX2F0dHMgdGggewpmb250LXdlaWdodDogbm9ybWFsOwp0 ZXh0LWFsaWduOiBsZWZ0OwpiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwp9Ci0tPgo8L3N0eWxl PgoKCjxoMT51cG1fY2F0ZWdvcnlfaW1hZ2U8L2gxPgoKPG9sIGlkPSJzdGFydCI+Cgk8bGk+ PGEgaHJlZj0iI2ludHJvIj5JbnRybzwvYT48L2xpPgoJPGxpPjxhIGhyZWY9IiNzZXR1cCI+ U2V0dXA8L2E+PC9saT4KCTxsaT48YSBocmVmPSIjdGFncyI+VGFnczwvYT48L2xpPgoJPGxp PjxhIGhyZWY9IiNmb290bm90ZXMiPkZvb3Rub3RlczwvYT48L2xpPgo8L29sPgoKCgo8aDIg aWQ9ImludHJvIj5JbnRybzwvaDI+Cgo8cD5UaGlzIHBsdWdpbiBhbGxvd3MgeW91IHRvIGRp c3BsYXkgaW1hZ2VzIGluIHBsYWNlIG9mIHRleHQgd2hlbiBkaXNwbGF5aW5nIG9yIGxpc3Rp bmcKY2F0ZWdvcmllcy48L3A+Cgo8cD48YSBocmVmPSIjc3RhcnQiIHRpdGxlPSJKdW1wIGJh Y2sgY29udGVudHMgbGlzdCI+JiM4NjE3OzwvYT48L3A+CgoKCjxoMiBpZD0ic2V0dXAiPlNl dHVwPC9oMj4KCjxvbD4KCTxsaT5DcmVhdGUgYSBuZXcgaW1hZ2UgY2F0ZWdvcnksIG5hbWVk ICYjODIyMDt1cG1fY2F0ZWdvcnlfaW1hZ2UmIzgyMjE7LjwvbGk+Cgk8bGk+VXBsb2FkIHlv dXIgaW1hZ2VzIGFuZCB0aGVpciB0aHVtYm5haWxzIChpZiB5b3Ugd2FudCB0aGUgdGh1bWJu YWlsIGZlYXR1cmUpLjwvbGk+Cgk8bGk+UmVuYW1lIHlvdXIgaW1hZ2VzIHRvIGJlIHRoZSBz YW1lIG5hbWUgKG5vIGltYWdlIHN1ZmZpeCkgYXMgdGhlIGNhdGVnb3J5IHlvdSB3YW50IHRo ZW0gdGllZCB0by48L2xpPgoJPGxpPkFzc2lnbiBlYWNoIG9mIHlvdXIgY2F0ZWdvcnkgaW1h Z2VzIHRvIHRoZSB1cG1fY2F0ZWdvcnlfaW1hZ2UgY2F0ZWdvcnk8L2xpPgoJPGxpPlVzZSB0 aGUgdGFncyB3aGVyZXZlciB5b3Ugd2FudCB0aGUgY2F0ZWdvcnkgaW1hZ2VzIGRpc3BsYXll ZC48L2xpPgo8L29sPgoKPHA+PGEgaHJlZj0iI3N0YXJ0IiB0aXRsZT0iSnVtcCBiYWNrIGNv bnRlbnRzIGxpc3QiPiYjODYxNzs8L2E+PC9wPgoKCgo8aDIgaWQ9InRhZ3MiPlRoZSBUYWdz PC9oMj4KCjxkbD4KCTxkdD48dmFyPnVwbV9jYXRlZ29yeV9pbWFnZTwvdmFyPjwvZHQ+Cgk8 ZGQ+V29ya3MgaW4gcGFnZXMgb3IgZm9ybXMsIGZvciBjdXJyZW50bHkgdmlld2VkIGNhdGVn b3J5LjwvZGQ+CgoJPGR0Pjx2YXI+dXBtX2NhdGVnb3J5MV9pbWFnZTwvdmFyPjwvZHQ+Cgk8 ZGQ+V29ya3Mgb25seSBpbiBhbiBhcnRpY2xlIGZvcm0uPC9kZD4KCgk8ZHQ+PHZhcj51cG1f Y2F0ZWdvcnkyX2ltYWdlPC92YXI+PC9kdD4KCTxkZD5Xb3JrcyBvbmx5IGluIGFuIGFydGlj bGUgZm9ybS48L2RkPgoKCTxkdD48dmFyPnVwbV9jYXRlZ29yeV9pbWFnZV9saXN0PC92YXI+ PC9kdD4KCTxkZD5Xb3JrcyBvbmx5IGluIGFuIGFydGljbGUgZm9ybS48L2RkPgo8L2RsPgoK PHA+PGEgaHJlZj0iI3N0YXJ0IiB0aXRsZT0iSnVtcCBiYWNrIGNvbnRlbnRzIGxpc3QiPiYj ODYxNzs8L2E+PC9wPgoKPHRhYmxlIGNsYXNzPSJ1cG1fdGFnX2F0dHMiIGNlbGxwYWRkaW5n PSIwIiBjZWxsc3BhY2luZz0iMCI+CgoJPGNhcHRpb24+VGFnIFBhcmFtZXRlcnM8L2NhcHRp b24+CgoJPHRyPgoJCTx0aD5OYW1lPC90aD4KCQk8dGg+RGVzY3JpcHRpb248L3RoPgoJCTx0 aD5SZXF1aXJlZD88L3RoPgoJCTx0aD5BdmFpbGFibGUgVmFsdWVzPC90aD4KCQk8dGg+RGVm YXVsdCBWYWx1ZTwvdGg+Cgk8L3RyPgoKCTx0cj4KCQk8dGQ+YnJlYWs8L3RkPgoJCTx0ZD5J ZiB1c2luZyB1cG1fY2F0ZWdvcnlfaW1hZ2VfbGlzdCwgdGhlIChYKUhUTUwgdGFnIHRvIHNl cGFyYXRlIGVhY2ggaW1hZ2Ugd2l0aC4gT3RoZXJ3aXNlIHVudXNlZC48L3RkPgoJCTx0ZD5O bzwvdGQ+CgkJPHRkPkFueSB2YWxpZCAoWClIVE1MIGVsZW1lbnQgbmFtZS48L3RkPgoJCTx0 ZD5VbnNldDwvdGQ+Cgk8L3RyPgoKCTx0cj4KCQk8dGQ+Y2xhc3M8L3RkPgoJCTx0ZD5UaGUg KFgpSFRNTC9DU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGltYWdlPHN1cD48YSBocmVmPSIj Zm4xIj4xPC9hPjwvc3VwPi48L3RkPgoJCTx0ZD5ObzwvdGQ+CgkJPHRkPkFueSB2YWxpZCAo WClIVE1ML0NTUyBjbGFzcyBuYW1lLjwvdGQ+CgkJPHRkPlVuc2V0PC90ZD4KCTwvdHI+CgoJ PHRyPgoJCTx0ZD5oZWlnaHQ8L3RkPgoJCTx0ZD5XaGV0aGVyIHRvIGFwcGx5IHRoZSBoZWln aHQgYXR0cmlidXRlIHRvIHRoZSByZXN1bHRpbmcgKFgpSFRNTCB0YWcuPC90ZD4KCQk8dGQ+ Tm88L3RkPgoJCTx0ZD48dmFyPnllczwvdmFyPiBvciA8dmFyPm5vPC92YXI+PC90ZD4KCQk8 dGQ+PHZhcj5ubzwvdmFyPjwvdGQ+Cgk8L3RyPgoKCTx0cj4KCQk8dGQ+aWQ8L3RkPgoJCTx0 ZD5UaGUgKFgpSFRNTC9DU1MgaWQgdG8gYXBwbHkgdG8gdGhlIGltYWdlPHN1cD48YSBocmVm PSIjZm4yIj4yPC9hPjwvc3VwPi48L3RkPgoJCTx0ZD5ObzwvdGQ+CgkJPHRkPkFueSB2YWxp ZCAoWClIVE1ML0NTUyBpZC48L3RkPgoJCTx0ZD5VbnNldDwvdGQ+Cgk8L3RyPgoKCTx0cj4K CQk8dGQ+bGluazwvdGQ+CgkJPHRkPldoZXRoZXIgdG8gaGF2ZSB0aGUgaW1hZ2UgbGluayB0 byB0aGUgY2F0ZWdvcnkuPC90ZD4KCQk8dGQ+Tm88L3RkPgoJCTx0ZD48dmFyPnllczwvdmFy PiBvciA8dmFyPm5vPC92YXI+PC90ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj48L3RkPgoJPC90 cj4KCgk8dHI+CgkJPHRkPmxpbmtfc2VjdGlvbjwvdGQ+CgkJPHRkPldoZXRoZXIgdG8gaW5j bHVkZSB0aGUgY3VycmVudCBzZWN0aW9uIGluIHRoZSBsaW5rIHVybC48L3RkPgoJCTx0ZD5O bzwvdGQ+CgkJPHRkPjx2YXI+eWVzPC92YXI+IG9yIDx2YXI+bm88L3Zhcj48L3RkPgoJCTx0 ZD48dmFyPnllczwvdmFyPjwvdGQ+Cgk8L3RyPgoKCTx0cj4KCQk8dGQ+c2hvdzwvdGQ+CgkJ PHRkPldoaWNoIGNhdGVnb3JpZXMgdG8gZGlzcGxheS48L3RkPgoJCTx0ZD5ObzwvdGQ+CgkJ PHRkPjx2YXI+YWxsPC92YXI+IG9yIDx2YXI+dXNlZDwvdmFyPjxzdXA+PGEgaHJlZj0iI2Zu MyI+MzwvYT48L3N1cD48L3RkPgoJCTx0ZD48dmFyPnVzZWQ8L3Zhcj48L3RkPgoJPC90cj4K Cgk8dHI+CgkJPHRkPnRodW1iPC90ZD4KCQk8dGQ+V2hldGhlciB0byB1c2UgdGhlIHRodW1i bmFpbCBpbWFnZSAob3RoZXJ3aXNlIHVzZSBmdWxsIHNpemUpLjwvdGQ+CgkJPHRkPk5vPC90 ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj4gb3IgPHZhcj5ubzwvdmFyPjwvdGQ+CgkJPHRkPjx2 YXI+eWVzPC92YXI+PHN1cD48YSBocmVmPSIjZm40Ij40PC9hPjwvc3VwPjwvdGQ+Cgk8L3Ry PgoKCTx0cj4KCQk8dGQ+dGl0bGU8L3RkPgoJCTx0ZD5XaGV0aGVyIHRvIGdpdmUgdGhlIGNh dGVnb3J5JiM4MjE3O3MgdGl0bGUgYXMgdGhlIGltYWdlJiM4MjE3O3MgdGl0bGUgYXR0cmli dXRlLjwvdGQ+CgkJPHRkPk5vPC90ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj4gb3IgPHZhcj5u bzwvdmFyPjwvdGQ+CgkJPHRkPjx2YXI+eWVzPC92YXI+PC90ZD4KCTwvdHI+CgoJPHRyPgoJ CTx0ZD53aWR0aDwvdGQ+CgkJPHRkPldoZXRoZXIgdG8gYXBwbHkgdGhlIHdpZHRoIGF0dHJp YnV0ZSB0byB0aGUgcmVzdWx0aW5nIChYKUhUTUwgdGFnLjwvdGQ+CgkJPHRkPk5vPC90ZD4K CQk8dGQ+PHZhcj55ZXM8L3Zhcj4gb3IgPHZhcj5ubzwvdmFyPjwvdGQ+CgkJPHRkPjx2YXI+ eWVzPC92YXI+PC90ZD4KCTwvdHI+CgoJPHRyPgoJCTx0ZD53cmFwdGFnPC90ZD4KCQk8dGQ+ VGhlIChYKUhUTUwgdGFnIHRvIHdyYXAgYXJvdW5kIHRoZSBpbWFnZSAob3IgdGhlIGxpc3Qs IGlmIHVzaW5nIHRoZSBsaXN0IHRhZykuPC90ZD4KCQk8dGQ+Tm88L3RkPgoJCTx0ZD5Bbnkg dmFsaWQgKFgpSFRNTCBlbGVtZW50IG5hbWUuPC90ZD4KCQk8dGQ+VW5zZXQ8L3RkPgoJPC90 cj4KCgk8dHI+CgkJPHRkPnhodG1sPC90ZD4KCQk8dGQ+V2hldGhlciB0byB1c2UgWEhUTUwg d2hlbiBkaXNwbGF5aW5nIHRoZSBpbWFnZSAob3RoZXJ3aXNlIHVzZSBIVE1MKS48L3RkPgoJ CTx0ZD5ObzwvdGQ+CgkJPHRkPjx2YXI+eWVzPC92YXI+IG9yIDx2YXI+bm88L3Zhcj48L3Rk PgoJCTx0ZD48dmFyPnllczwvdmFyPjwvdGQ+Cgk8L3RyPgoKPC90YWJsZT4KCjxwPjxhIGhy ZWY9IiNzdGFydCIgdGl0bGU9Ikp1bXAgYmFjayBjb250ZW50cyBsaXN0Ij4mIzg2MTc7PC9h PjwvcD4KCgoKPGgyIGlkPSJmb290bm90ZXMiPkZvb3Rub3RlczwvaDI+Cgo8b2w+Cgk8bGkg aWQ9ImZuMSI+SWYgeW91IGRvbiYjODIxNzt0IHN1cHBseSBhIHRhZyB0byB3cmFwIHRoZSBp bWFnZSBpbiAoPHZhcj53cmFwdGFnPC92YXI+KSwKCQk8dmFyPmNsYXNzPC92YXI+IGlzIGFw cGxpZWQgdG8gdGhlIGNhdGVnb3J5IGxpbmssIGFuZCBpZiBub3QgbGlua2VkLCB0aGVuIHRv IHRoZSBpbWFnZSBlbGVtZW50IGl0c2VsZi4KCgk8bGkgaWQ9ImZuMiI+SWYgeW91IGRvbiYj ODIxNzt0IHN1cHBseSBhIHRhZyB0byB3cmFwIHRoZSBpbWFnZSBpbiAoPHZhcj53cmFwdGFn PC92YXI+KSwKCQk8dmFyPmlkPC92YXI+IGlzIGFwcGxpZWQgdG8gdGhlIGNhdGVnb3J5IGxp bmssIGFuZCBpZiBub3QgbGlua2VkLCB0aGVuIHRvIHRoZSBpbWFnZSBlbGVtZW50IGl0c2Vs Zi4KCgk8bGkgaWQ9ImZuMyI+PHZhcj51c2VkPC92YXI+OiBvbmx5IHRoZSBjYXRlZ29yaWVz IGJlaW5nIHVzZWQgYnkgdGhlIGN1cnJlbnQgc2VjdGlvbi48L2xpPgoKCTxsaSBpZD0iZm40 Ij5XaXRoIG9uZSBleGNlcHRpb246IHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgPHZhcj50 aHVtYjwvdmFyPiBhdHRyaWJ1dGUgaW4gdGhlCgkJPHZhcj51cG1fY2F0ZWdvcnlfaW1hZ2U8 L3Zhcj4gdGFnIGlzIDx2YXI+bm88L3Zhcj4uPC9saT4KPC9vbD4KCjxwPjxhIGhyZWY9IiNz dGFydCIgdGl0bGU9Ikp1bXAgYmFjayBjb250ZW50cyBsaXN0Ij4mIzg2MTc7PC9hPjwvcD4i O3M6ODoiaGVscF9yYXciO3M6NTQ5NzoiPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0i c2NyZWVuLHByb2plY3Rpb24iPgo8IS0tCnZhciB7CnBhZGRpbmc6IDAuMWVtOwpmb250LXN0 eWxlOiBub3JtYWw7CmZvbnQtd2VpZ2h0OiBib2xkOwpmb250LWZhbWlseTogbW9ub3NwYWNl OwpiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwp9CgpkdCB7Cm1hcmdpbjogMCAwIDVweCAwOwpw YWRkaW5nOiAwOwp9CgpkZCB7Cm1hcmdpbjogMCAwIDEwcHggMTVweDsKcGFkZGluZzogMDsK fQoKdGFibGUudXBtX3RhZ19hdHRzIHsKbWFyZ2luOiAwIDAgMTVweCAwOwpib3JkZXI6IDFw eCBzb2xpZCAjZWVlOwpib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwp9Cgp0YWJsZS51cG1f dGFnX2F0dHMgY2FwdGlvbiB7CnBhZGRpbmc6IDAuNWVtOwpmb250LXdlaWdodDogYm9sZDsK dGV4dC1hbGlnbjogbGVmdDsKYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKfQoKdGFibGUudXBt X3RhZ19hdHRzIHRyIHsKYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7Cn0KCnRhYmxl LnVwbV90YWdfYXR0cyB0aCwgdGFibGUudXBtX3RhZ19hdHRzIHRkIHsKbWFyZ2luOiAwOwpw YWRkaW5nOiAwLjVlbSAxZW07Cn0KCnRhYmxlLnVwbV90YWdfYXR0cyB0aCB7CmZvbnQtd2Vp Z2h0OiBub3JtYWw7CnRleHQtYWxpZ246IGxlZnQ7CmJhY2tncm91bmQtY29sb3I6ICNlZWU7 Cn0KLS0+Cjwvc3R5bGU+CgoKPGgxPnVwbV9jYXRlZ29yeV9pbWFnZTwvaDE+Cgo8b2wgaWQ9 InN0YXJ0Ij4KCTxsaT48YSBocmVmPSIjaW50cm8iPkludHJvPC9hPjwvbGk+Cgk8bGk+PGEg aHJlZj0iI3NldHVwIj5TZXR1cDwvYT48L2xpPgoJPGxpPjxhIGhyZWY9IiN0YWdzIj5UYWdz PC9hPjwvbGk+Cgk8bGk+PGEgaHJlZj0iI2Zvb3Rub3RlcyI+Rm9vdG5vdGVzPC9hPjwvbGk+ Cjwvb2w+CgoKCjxoMiBpZD0iaW50cm8iPkludHJvPC9oMj4KCjxwPlRoaXMgcGx1Z2luIGFs bG93cyB5b3UgdG8gZGlzcGxheSBpbWFnZXMgaW4gcGxhY2Ugb2YgdGV4dCB3aGVuIGRpc3Bs YXlpbmcgb3IgbGlzdGluZwpjYXRlZ29yaWVzLjwvcD4KCjxwPjxhIGhyZWY9IiNzdGFydCIg dGl0bGU9Ikp1bXAgYmFjayBjb250ZW50cyBsaXN0Ij4mIzg2MTc7PC9hPjwvcD4KCgoKPGgy IGlkPSJzZXR1cCI+U2V0dXA8L2gyPgoKPG9sPgoJPGxpPkNyZWF0ZSBhIG5ldyBpbWFnZSBj YXRlZ29yeSwgbmFtZWQgJiM4MjIwO3VwbV9jYXRlZ29yeV9pbWFnZSYjODIyMTsuPC9saT4K CTxsaT5VcGxvYWQgeW91ciBpbWFnZXMgYW5kIHRoZWlyIHRodW1ibmFpbHMgKGlmIHlvdSB3 YW50IHRoZSB0aHVtYm5haWwgZmVhdHVyZSkuPC9saT4KCTxsaT5SZW5hbWUgeW91ciBpbWFn ZXMgdG8gYmUgdGhlIHNhbWUgbmFtZSAobm8gaW1hZ2Ugc3VmZml4KSBhcyB0aGUgY2F0ZWdv cnkgeW91IHdhbnQgdGhlbSB0aWVkIHRvLjwvbGk+Cgk8bGk+QXNzaWduIGVhY2ggb2YgeW91 ciBjYXRlZ29yeSBpbWFnZXMgdG8gdGhlIHVwbV9jYXRlZ29yeV9pbWFnZSBjYXRlZ29yeTwv bGk+Cgk8bGk+VXNlIHRoZSB0YWdzIHdoZXJldmVyIHlvdSB3YW50IHRoZSBjYXRlZ29yeSBp bWFnZXMgZGlzcGxheWVkLjwvbGk+Cjwvb2w+Cgo8cD48YSBocmVmPSIjc3RhcnQiIHRpdGxl PSJKdW1wIGJhY2sgY29udGVudHMgbGlzdCI+JiM4NjE3OzwvYT48L3A+CgoKCjxoMiBpZD0i dGFncyI+VGhlIFRhZ3M8L2gyPgoKPGRsPgoJPGR0Pjx2YXI+dXBtX2NhdGVnb3J5X2ltYWdl PC92YXI+PC9kdD4KCTxkZD5Xb3JrcyBpbiBwYWdlcyBvciBmb3JtcywgZm9yIGN1cnJlbnRs eSB2aWV3ZWQgY2F0ZWdvcnkuPC9kZD4KCgk8ZHQ+PHZhcj51cG1fY2F0ZWdvcnkxX2ltYWdl PC92YXI+PC9kdD4KCTxkZD5Xb3JrcyBvbmx5IGluIGFuIGFydGljbGUgZm9ybS48L2RkPgoK CTxkdD48dmFyPnVwbV9jYXRlZ29yeTJfaW1hZ2U8L3Zhcj48L2R0PgoJPGRkPldvcmtzIG9u bHkgaW4gYW4gYXJ0aWNsZSBmb3JtLjwvZGQ+CgoJPGR0Pjx2YXI+dXBtX2NhdGVnb3J5X2lt YWdlX2xpc3Q8L3Zhcj48L2R0PgoJPGRkPldvcmtzIG9ubHkgaW4gYW4gYXJ0aWNsZSBmb3Jt LjwvZGQ+CjwvZGw+Cgo8cD48YSBocmVmPSIjc3RhcnQiIHRpdGxlPSJKdW1wIGJhY2sgY29u dGVudHMgbGlzdCI+JiM4NjE3OzwvYT48L3A+Cgo8dGFibGUgY2xhc3M9InVwbV90YWdfYXR0 cyIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj4KCgk8Y2FwdGlvbj5UYWcgUGFy YW1ldGVyczwvY2FwdGlvbj4KCgk8dHI+CgkJPHRoPk5hbWU8L3RoPgoJCTx0aD5EZXNjcmlw dGlvbjwvdGg+CgkJPHRoPlJlcXVpcmVkPzwvdGg+CgkJPHRoPkF2YWlsYWJsZSBWYWx1ZXM8 L3RoPgoJCTx0aD5EZWZhdWx0IFZhbHVlPC90aD4KCTwvdHI+CgoJPHRyPgoJCTx0ZD5icmVh azwvdGQ+CgkJPHRkPklmIHVzaW5nIHVwbV9jYXRlZ29yeV9pbWFnZV9saXN0LCB0aGUgKFgp SFRNTCB0YWcgdG8gc2VwYXJhdGUgZWFjaCBpbWFnZSB3aXRoLiBPdGhlcndpc2UgdW51c2Vk LjwvdGQ+CgkJPHRkPk5vPC90ZD4KCQk8dGQ+QW55IHZhbGlkIChYKUhUTUwgZWxlbWVudCBu YW1lLjwvdGQ+CgkJPHRkPlVuc2V0PC90ZD4KCTwvdHI+CgoJPHRyPgoJCTx0ZD5jbGFzczwv dGQ+CgkJPHRkPlRoZSAoWClIVE1ML0NTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgaW1hZ2U8 c3VwPjxhIGhyZWY9IiNmbjEiPjE8L2E+PC9zdXA+LjwvdGQ+CgkJPHRkPk5vPC90ZD4KCQk8 dGQ+QW55IHZhbGlkIChYKUhUTUwvQ1NTIGNsYXNzIG5hbWUuPC90ZD4KCQk8dGQ+VW5zZXQ8 L3RkPgoJPC90cj4KCgk8dHI+CgkJPHRkPmhlaWdodDwvdGQ+CgkJPHRkPldoZXRoZXIgdG8g YXBwbHkgdGhlIGhlaWdodCBhdHRyaWJ1dGUgdG8gdGhlIHJlc3VsdGluZyAoWClIVE1MIHRh Zy48L3RkPgoJCTx0ZD5ObzwvdGQ+CgkJPHRkPjx2YXI+eWVzPC92YXI+IG9yIDx2YXI+bm88 L3Zhcj48L3RkPgoJCTx0ZD48dmFyPm5vPC92YXI+PC90ZD4KCTwvdHI+CgoJPHRyPgoJCTx0 ZD5pZDwvdGQ+CgkJPHRkPlRoZSAoWClIVE1ML0NTUyBpZCB0byBhcHBseSB0byB0aGUgaW1h Z2U8c3VwPjxhIGhyZWY9IiNmbjIiPjI8L2E+PC9zdXA+LjwvdGQ+CgkJPHRkPk5vPC90ZD4K CQk8dGQ+QW55IHZhbGlkIChYKUhUTUwvQ1NTIGlkLjwvdGQ+CgkJPHRkPlVuc2V0PC90ZD4K CTwvdHI+CgoJPHRyPgoJCTx0ZD5saW5rPC90ZD4KCQk8dGQ+V2hldGhlciB0byBoYXZlIHRo ZSBpbWFnZSBsaW5rIHRvIHRoZSBjYXRlZ29yeS48L3RkPgoJCTx0ZD5ObzwvdGQ+CgkJPHRk Pjx2YXI+eWVzPC92YXI+IG9yIDx2YXI+bm88L3Zhcj48L3RkPgoJCTx0ZD48dmFyPnllczwv dmFyPjwvdGQ+Cgk8L3RyPgoKCTx0cj4KCQk8dGQ+bGlua19zZWN0aW9uPC90ZD4KCQk8dGQ+ V2hldGhlciB0byBpbmNsdWRlIHRoZSBjdXJyZW50IHNlY3Rpb24gaW4gdGhlIGxpbmsgdXJs LjwvdGQ+CgkJPHRkPk5vPC90ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj4gb3IgPHZhcj5ubzwv dmFyPjwvdGQ+CgkJPHRkPjx2YXI+eWVzPC92YXI+PC90ZD4KCTwvdHI+CgoJPHRyPgoJCTx0 ZD5zaG93PC90ZD4KCQk8dGQ+V2hpY2ggY2F0ZWdvcmllcyB0byBkaXNwbGF5LjwvdGQ+CgkJ PHRkPk5vPC90ZD4KCQk8dGQ+PHZhcj5hbGw8L3Zhcj4gb3IgPHZhcj51c2VkPC92YXI+PHN1 cD48YSBocmVmPSIjZm4zIj4zPC9hPjwvc3VwPjwvdGQ+CgkJPHRkPjx2YXI+dXNlZDwvdmFy PjwvdGQ+Cgk8L3RyPgoKCTx0cj4KCQk8dGQ+dGh1bWI8L3RkPgoJCTx0ZD5XaGV0aGVyIHRv IHVzZSB0aGUgdGh1bWJuYWlsIGltYWdlIChvdGhlcndpc2UgdXNlIGZ1bGwgc2l6ZSkuPC90 ZD4KCQk8dGQ+Tm88L3RkPgoJCTx0ZD48dmFyPnllczwvdmFyPiBvciA8dmFyPm5vPC92YXI+ PC90ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj48c3VwPjxhIGhyZWY9IiNmbjQiPjQ8L2E+PC9z dXA+PC90ZD4KCTwvdHI+CgoJPHRyPgoJCTx0ZD50aXRsZTwvdGQ+CgkJPHRkPldoZXRoZXIg dG8gZ2l2ZSB0aGUgY2F0ZWdvcnkmIzgyMTc7cyB0aXRsZSBhcyB0aGUgaW1hZ2UmIzgyMTc7 cyB0aXRsZSBhdHRyaWJ1dGUuPC90ZD4KCQk8dGQ+Tm88L3RkPgoJCTx0ZD48dmFyPnllczwv dmFyPiBvciA8dmFyPm5vPC92YXI+PC90ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj48L3RkPgoJ PC90cj4KCgk8dHI+CgkJPHRkPndpZHRoPC90ZD4KCQk8dGQ+V2hldGhlciB0byBhcHBseSB0 aGUgd2lkdGggYXR0cmlidXRlIHRvIHRoZSByZXN1bHRpbmcgKFgpSFRNTCB0YWcuPC90ZD4K CQk8dGQ+Tm88L3RkPgoJCTx0ZD48dmFyPnllczwvdmFyPiBvciA8dmFyPm5vPC92YXI+PC90 ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj48L3RkPgoJPC90cj4KCgk8dHI+CgkJPHRkPndyYXB0 YWc8L3RkPgoJCTx0ZD5UaGUgKFgpSFRNTCB0YWcgdG8gd3JhcCBhcm91bmQgdGhlIGltYWdl IChvciB0aGUgbGlzdCwgaWYgdXNpbmcgdGhlIGxpc3QgdGFnKS48L3RkPgoJCTx0ZD5Obzwv dGQ+CgkJPHRkPkFueSB2YWxpZCAoWClIVE1MIGVsZW1lbnQgbmFtZS48L3RkPgoJCTx0ZD5V bnNldDwvdGQ+Cgk8L3RyPgoKCTx0cj4KCQk8dGQ+eGh0bWw8L3RkPgoJCTx0ZD5XaGV0aGVy IHRvIHVzZSBYSFRNTCB3aGVuIGRpc3BsYXlpbmcgdGhlIGltYWdlIChvdGhlcndpc2UgdXNl IEhUTUwpLjwvdGQ+CgkJPHRkPk5vPC90ZD4KCQk8dGQ+PHZhcj55ZXM8L3Zhcj4gb3IgPHZh cj5ubzwvdmFyPjwvdGQ+CgkJPHRkPjx2YXI+eWVzPC92YXI+PC90ZD4KCTwvdHI+Cgo8L3Rh YmxlPgoKPHA+PGEgaHJlZj0iI3N0YXJ0IiB0aXRsZT0iSnVtcCBiYWNrIGNvbnRlbnRzIGxp c3QiPiYjODYxNzs8L2E+PC9wPgoKCgo8aDIgaWQ9ImZvb3Rub3RlcyI+Rm9vdG5vdGVzPC9o Mj4KCjxvbD4KCTxsaSBpZD0iZm4xIj5JZiB5b3UgZG9uJiM4MjE3O3Qgc3VwcGx5IGEgdGFn IHRvIHdyYXAgdGhlIGltYWdlIGluICg8dmFyPndyYXB0YWc8L3Zhcj4pLAoJCTx2YXI+Y2xh c3M8L3Zhcj4gaXMgYXBwbGllZCB0byB0aGUgY2F0ZWdvcnkgbGluaywgYW5kIGlmIG5vdCBs aW5rZWQsIHRoZW4gdG8gdGhlIGltYWdlIGVsZW1lbnQgaXRzZWxmLgoKCTxsaSBpZD0iZm4y Ij5JZiB5b3UgZG9uJiM4MjE3O3Qgc3VwcGx5IGEgdGFnIHRvIHdyYXAgdGhlIGltYWdlIGlu ICg8dmFyPndyYXB0YWc8L3Zhcj4pLAoJCTx2YXI+aWQ8L3Zhcj4gaXMgYXBwbGllZCB0byB0 aGUgY2F0ZWdvcnkgbGluaywgYW5kIGlmIG5vdCBsaW5rZWQsIHRoZW4gdG8gdGhlIGltYWdl IGVsZW1lbnQgaXRzZWxmLgoKCTxsaSBpZD0iZm4zIj48dmFyPnVzZWQ8L3Zhcj46IG9ubHkg dGhlIGNhdGVnb3JpZXMgYmVpbmcgdXNlZCBieSB0aGUgY3VycmVudCBzZWN0aW9uLjwvbGk+ CgoJPGxpIGlkPSJmbjQiPldpdGggb25lIGV4Y2VwdGlvbjogdGhlIGRlZmF1bHQgdmFsdWUg Zm9yIHRoZSA8dmFyPnRodW1iPC92YXI+IGF0dHJpYnV0ZSBpbiB0aGUKCQk8dmFyPnVwbV9j YXRlZ29yeV9pbWFnZTwvdmFyPiB0YWcgaXMgPHZhcj5ubzwvdmFyPi48L2xpPgo8L29sPgoK PHA+PGEgaHJlZj0iI3N0YXJ0IiB0aXRsZT0iSnVtcCBiYWNrIGNvbnRlbnRzIGxpc3QiPiYj ODYxNzs8L2E+PC9wPiI7czoxNToiYWxsb3dfaHRtbF9oZWxwIjtpOjE7czozOiJtZDUiO3M6 MzI6IjY1ZDg2ZDMxMTc2MzQzNGQ0YzdiYjQwYTkwOGQ4OGJiIjt9