PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IS0tIAovKgogKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KICogCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogKiAKICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICogCiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiAqLwogLS0+CjwhLS0gCiAgICAgV0FSTklORzogRG8gbm90IHVzZSBhdXRvbWF0aWMgcmVmb3JtYXR0aW5nIG9uIHRoaXMgZmlsZSEgCiAgICAgU29tZSB2YWx1ZXMgYXJlIGNvbW1hIGRlbGltaXRlZCBsaXN0cyB0aGF0IGNhbm5vdCBiZSB3cmFwcGVkLiAKLS0+CjxqYWxvcHk+CiAgICA8cHJpbnRlcj4KICAgICAgICA8YWxpZ25tZW50PgogICAgICAgICAgICA8UGFyYW1zTWV0aG9kRGVmPmZhbHNlPC9QYXJhbXNNZXRob2REZWY+CiAgICAgICAgICAgIDx2YXJBc3NpZ25zPmZhbHNlPC92YXJBc3NpZ25zPgogICAgICAgICAgICA8dmFySWRlbnRzPmZhbHNlPC92YXJJZGVudHM+CiAgICAgICAgICAgIDx0ZXJuYXJ5RXhwcmVzc3Npb24+ZmFsc2U8L3Rlcm5hcnlFeHByZXNzc2lvbj4KICAgICAgICAgICAgPHRlcm5hcnlWYWx1ZT5mYWxzZTwvdGVybmFyeVZhbHVlPgogICAgICAgIDwvYWxpZ25tZW50PgogICAgICAgIDxzb3J0aW5nPgogICAgICAgICAgICA8dmFyaWFibGU+ZmFsc2U8L3ZhcmlhYmxlPgogICAgICAgICAgICA8Y2xhc3M+ZmFsc2U8L2NsYXNzPgogICAgICAgICAgICA8bW9kaWZpZXJzPgogICAgICAgICAgICAgICAgPHVzZT5mYWxzZTwvdXNlPgogICAgICAgICAgICA8L21vZGlmaWVycz4KICAgICAgICAgICAgPG1ldGhvZD5mYWxzZTwvbWV0aG9kPgogICAgICAgICAgICA8b3JkZXI+U3RhdGljIFZhcmlhYmxlcy9Jbml0aWFsaXplcnMsSW5zdGFuY2UgVmFyaWFibGVzLEluc3RhbmNlIEluaXRpYWxpemVycyxDb25zdHJ1Y3RvcnMsTWV0aG9kcyxJbnRlcmZhY2VzLENsYXNzZXM8L29yZGVyPgogICAgICAgICAgICA8dXNlPnRydWU8L3VzZT4KICAgICAgICAgICAgPGNvbnN0cnVjdG9yPmZhbHNlPC9jb25zdHJ1Y3Rvcj4KICAgICAgICAgICAgPG9yZGVyTW9kaWZpZXJzPnB1YmxpYyxwcm90ZWN0ZWQscHJpdmF0ZSxhYnN0cmFjdCxzdGF0aWMsZmluYWwsc3luY2hyb25pemVkLHRyYW5zaWVudCx2b2xhdGlsZSxuYXRpdmUsc3RyaWN0ZnA8L29yZGVyTW9kaWZpZXJzPgogICAgICAgICAgICA8aW50ZXJmYWNlPmZhbHNlPC9pbnRlcmZhY2U+CiAgICAgICAgPC9zb3J0aW5nPgogICAgICAgIDxibGFua0xpbmVzPgogICAgICAgICAgICA8YmVmb3JlSGVhZGVyPjA8L2JlZm9yZUhlYWRlcj4KICAgICAgICAgICAgPGJlZm9yZUNvbW1lbnRTaW5nbGVMaW5lPjE8L2JlZm9yZUNvbW1lbnRTaW5nbGVMaW5lPgogICAgICAgICAgICA8YWZ0ZXJMYXN0SW1wb3J0PjE8L2FmdGVyTGFzdEltcG9ydD4KICAgICAgICAgICAgPGFmdGVyUGFja2FnZT4xPC9hZnRlclBhY2thZ2U+CiAgICAgICAgICAgIDxhZnRlckNsYXNzPjE8L2FmdGVyQ2xhc3M+CiAgICAgICAgICAgIDxiZWZvcmVDb250cm9sPjE8L2JlZm9yZUNvbnRyb2w+CiAgICAgICAgICAgIDxhZnRlckJyYWNlTGVmdD4wPC9hZnRlckJyYWNlTGVmdD4KICAgICAgICAgICAgPGtlZXBVcFRvPjE8L2tlZXBVcFRvPgogICAgICAgICAgICA8YmVmb3JlSmF2YWRvYz4xPC9iZWZvcmVKYXZhZG9jPgogICAgICAgICAgICA8YmVmb3JlQ29tbWVudE11bHRpTGluZT4xPC9iZWZvcmVDb21tZW50TXVsdGlMaW5lPgogICAgICAgICAgICA8YWZ0ZXJEZWNsYXJhdGlvbj4xPC9hZnRlckRlY2xhcmF0aW9uPgogICAgICAgICAgICA8YWZ0ZXJJbnRlcmZhY2U+MTwvYWZ0ZXJJbnRlcmZhY2U+CiAgICAgICAgICAgIDxhZnRlck1ldGhvZD4xPC9hZnRlck1ldGhvZD4KICAgICAgICAgICAgPGFmdGVyQmxvY2s+MTwvYWZ0ZXJCbG9jaz4KICAgICAgICAgICAgPGJlZm9yZUJsb2NrPjE8L2JlZm9yZUJsb2NrPgogICAgICAgICAgICA8YmVmb3JlRGVjbGFyYXRpb24+MTwvYmVmb3JlRGVjbGFyYXRpb24+CiAgICAgICAgICAgIDxhZnRlckZvb3Rlcj4wPC9hZnRlckZvb3Rlcj4KICAgICAgICAgICAgPGFmdGVySGVhZGVyPjE8L2FmdGVySGVhZGVyPgogICAgICAgICAgICA8YmVmb3JlQnJhY2VSaWdodD4wPC9iZWZvcmVCcmFjZVJpZ2h0PgogICAgICAgICAgICA8YmVmb3JlQ2FzZUJsb2NrPjE8L2JlZm9yZUNhc2VCbG9jaz4KICAgICAgICAgICAgPGJlZm9yZUZvb3Rlcj4wPC9iZWZvcmVGb290ZXI+CiAgICAgICAgPC9ibGFua0xpbmVzPgogICAgICAgIDxoZWFkZXI+CiAgICAgICAgICAgIDx0ZXh0Pi8qCiAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKiAKICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqIAogKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKiAKICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICovPC90ZXh0PgogICAgICAgICAgICA8c21hcnRNb2RlTGluZXM+NTwvc21hcnRNb2RlTGluZXM+CiAgICAgICAgICAgIDxrZXlzPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZTwva2V5cz4KICAgICAgICAgICAgPHVzZT5mYWxzZTwvdXNlPgogICAgICAgIDwvaGVhZGVyPgogICAgICAgIDx3aGl0ZXNwYWNlPgogICAgICAgICAgICA8cGFkZGluZ0xvZ2ljYWxPcGVyYXRvcnM+dHJ1ZTwvcGFkZGluZ0xvZ2ljYWxPcGVyYXRvcnM+CiAgICAgICAgICAgIDxiZWZvcmVNZXRob2REZWNsYXJhdGlvblBhcmVudGhlc2lzPmZhbHNlPC9iZWZvcmVNZXRob2REZWNsYXJhdGlvblBhcmVudGhlc2lzPgogICAgICAgICAgICA8cGFkZGluZ0JyYWNrZXRzPmZhbHNlPC9wYWRkaW5nQnJhY2tldHM+CiAgICAgICAgICAgIDxhZnRlckNvbW1hPnRydWU8L2FmdGVyQ29tbWE+CiAgICAgICAgICAgIDxwYWRkaW5nQml0d2lzZU9wZXJhdG9ycz50cnVlPC9wYWRkaW5nQml0d2lzZU9wZXJhdG9ycz4KICAgICAgICAgICAgPHBhZGRpbmdBc3NpZ25tZW50T3BlcmF0b3JzPnRydWU8L3BhZGRpbmdBc3NpZ25tZW50T3BlcmF0b3JzPgogICAgICAgICAgICA8YmVmb3JlTG9naWNhbE5vdD5mYWxzZTwvYmVmb3JlTG9naWNhbE5vdD4KICAgICAgICAgICAgPHBhZGRkaW5nVHlwZUNhc3Q+ZmFsc2U8L3BhZGRkaW5nVHlwZUNhc3Q+CiAgICAgICAgICAgIDxwYWRkaW5nUmVsYXRpb25hbE9wZXJhdG9ycz50cnVlPC9wYWRkaW5nUmVsYXRpb25hbE9wZXJhdG9ycz4KICAgICAgICAgICAgPGJlZm9yZVN0YXRlbWVudFBhcmVudGhlc2lzPnRydWU8L2JlZm9yZVN0YXRlbWVudFBhcmVudGhlc2lzPgogICAgICAgICAgICA8YWZ0ZXJDYXN0aW5nUGFyZW50aGVzaXM+dHJ1ZTwvYWZ0ZXJDYXN0aW5nUGFyZW50aGVzaXM+CiAgICAgICAgICAgIDxiZWZvcmVCcmFjZXM+dHJ1ZTwvYmVmb3JlQnJhY2VzPgogICAgICAgICAgICA8YmVmb3JlQ2FzZUNvbG9uPmZhbHNlPC9iZWZvcmVDYXNlQ29sb24+CiAgICAgICAgICAgIDxwYWRkaW5nTWF0aGVtYXRpY2FsT3BlcmF0b3JzPnRydWU8L3BhZGRpbmdNYXRoZW1hdGljYWxPcGVyYXRvcnM+CiAgICAgICAgICAgIDxwYWRkaW5nQnJhY2VzPnRydWU8L3BhZGRpbmdCcmFjZXM+CiAgICAgICAgICAgIDxiZWZvcmVNZXRob2RDYWxsUGFyZW50aGVzaXM+ZmFsc2U8L2JlZm9yZU1ldGhvZENhbGxQYXJlbnRoZXNpcz4KICAgICAgICAgICAgPGFmdGVyU2VtaUNvbG9uPnRydWU8L2FmdGVyU2VtaUNvbG9uPgogICAgICAgICAgICA8YmVmb3JlQnJhY2tldHNUeXBlcz5mYWxzZTwvYmVmb3JlQnJhY2tldHNUeXBlcz4KICAgICAgICAgICAgPHBhZGRkaW5nUGFyZW50aGVzaXM+ZmFsc2U8L3BhZGRkaW5nUGFyZW50aGVzaXM+CiAgICAgICAgICAgIDxwYWRkaW5nU2hpZnRPcGVyYXRvcnM+dHJ1ZTwvcGFkZGluZ1NoaWZ0T3BlcmF0b3JzPgogICAgICAgICAgICA8YmVmb3JlQnJhY2tldHM+ZmFsc2U8L2JlZm9yZUJyYWNrZXRzPgogICAgICAgIDwvd2hpdGVzcGFjZT4KICAgICAgICA8aW5kZW50YXRpb24+CiAgICAgICAgICAgIDxsYWJlbD5mYWxzZTwvbGFiZWw+CiAgICAgICAgICAgIDxicmFjZVJpZ2h0QWZ0ZXI+MDwvYnJhY2VSaWdodEFmdGVyPgogICAgICAgICAgICA8ZXh0ZW5kcz4tMTwvZXh0ZW5kcz4KICAgICAgICAgICAgPGltcGxlbWVudHM+LTE8L2ltcGxlbWVudHM+CiAgICAgICAgICAgIDxsZWFkaW5nPjA8L2xlYWRpbmc+CiAgICAgICAgICAgIDxjb250aW5hdGlvbklmPmZhbHNlPC9jb250aW5hdGlvbklmPgogICAgICAgICAgICA8cGFyYW1ldGVyPi0xPC9wYXJhbWV0ZXI+CiAgICAgICAgICAgIDxnZW5lcmFsPjQ8L2dlbmVyYWw+CiAgICAgICAgICAgIDxjb21tZW50RW5kbGluZT4xPC9jb21tZW50RW5kbGluZT4KICAgICAgICAgICAgPGZpcnN0Q29sdW1uQ29tbWVudHM+dHJ1ZTwvZmlyc3RDb2x1bW5Db21tZW50cz4KICAgICAgICAgICAgPGNvbnRpbmF0aW9uSWZUZXJuYXJ5PmZhbHNlPC9jb250aW5hdGlvbklmVGVybmFyeT4KICAgICAgICAgICAgPHRhYnM+CiAgICAgICAgICAgICAgICA8c2l6ZT40PC9zaXplPgogICAgICAgICAgICAgICAgPHVzZT5mYWxzZTwvdXNlPgogICAgICAgICAgICA8L3RhYnM+CiAgICAgICAgICAgIDxjYXNlRnJvbVN3aXRjaD5mYWxzZTwvY2FzZUZyb21Td2l0Y2g+CiAgICAgICAgICAgIDx0aHJvd3M+LTE8L3Rocm93cz4KICAgICAgICAgICAgPGJyYWNlTGVmdD4xPC9icmFjZUxlZnQ+CiAgICAgICAgICAgIDxkZWVwPjMwPC9kZWVwPgogICAgICAgICAgICA8YnJhY2VSaWdodD4wPC9icmFjZVJpZ2h0PgogICAgICAgICAgICA8YnJhY2VSaWdodEFmdGVyPjE8L2JyYWNlUmlnaHRBZnRlcj4KICAgICAgICAgICAgPHVzZU1ldGhvZENhbGxQYXJhbXM+ZmFsc2U8L3VzZU1ldGhvZENhbGxQYXJhbXM+CiAgICAgICAgICAgIDxjb250aW51YXRpb24+NDwvY29udGludWF0aW9uPgogICAgICAgICAgICA8YnJhY2VDdWRkbGVkPjE8L2JyYWNlQ3VkZGxlZD4KICAgICAgICA8L2luZGVudGF0aW9uPgogICAgICAgIDxjb21tZW50cz4KICAgICAgICAgICAgPGphdmFkb2M+CiAgICAgICAgICAgICAgICA8YWRkRmllbGQ+MDwvYWRkRmllbGQ+CiAgICAgICAgICAgICAgICA8cmVtb3ZlPmZhbHNlPC9yZW1vdmU+CiAgICAgICAgICAgICAgICA8dGVtcGxhdGVzPgogICAgICAgICAgICAgICAgICAgIDxtZXRob2RzPgogICAgICAgICAgICAgICAgICAgICAgICA8cmV0dXJuPiAqIEByZXR1cm4gRE9DVU1FTlQgTUUhPC9yZXR1cm4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxleGNlcHRpb24+ICogQHRocm93cyAkZXhjZXB0aW9uVHlwZSQgRE9DVU1FTlQgTUUhPC9leGNlcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0b3A+LyoqfCAqIERPQ1VNRU5UIE1FITwvdG9wPgogICAgICAgICAgICAgICAgICAgICAgICA8Ym90dG9tPiAqLzwvYm90dG9tPgogICAgICAgICAgICAgICAgICAgICAgICA8cGFyYW0+ICogQHBhcmFtICRwYXJhbVR5cGUkIERPQ1VNRU5UIE1FITwvcGFyYW0+CiAgICAgICAgICAgICAgICAgICAgPC9tZXRob2RzPgogICAgICAgICAgICAgICAgPC90ZW1wbGF0ZXM+CiAgICAgICAgICAgICAgICA8dGFncz4KICAgICAgICAgICAgICAgICAgICA8aW4tbGluZSAvPgogICAgICAgICAgICAgICAgICAgIDxzdGFuZGFyZCAvPgogICAgICAgICAgICAgICAgPC90YWdzPgogICAgICAgICAgICAgICAgPGFkZENsYXNzPjA8L2FkZENsYXNzPgogICAgICAgICAgICAgICAgPGNoZWNrSW5uZXJDbGFzcz5mYWxzZTwvY2hlY2tJbm5lckNsYXNzPgogICAgICAgICAgICAgICAgPGFkZEN0b3I+MDwvYWRkQ3Rvcj4KICAgICAgICAgICAgICAgIDxhZGRNZXRob2Q+MDwvYWRkTWV0aG9kPgogICAgICAgICAgICAgICAgPHBhcnNlQ29tbWVudHM+ZmFsc2U8L3BhcnNlQ29tbWVudHM+CiAgICAgICAgICAgICAgICA8Y2hlY2tUYWdzPmZhbHNlPC9jaGVja1RhZ3M+CiAgICAgICAgICAgIDwvamF2YWRvYz4KICAgICAgICAgICAgPHNlcGFyYXRvcj4KICAgICAgICAgICAgICAgIDxtZXRob2Q+TWV0aG9kczwvbWV0aG9kPgogICAgICAgICAgICAgICAgPHN0YXRpY1ZhcmlhYmxlSW5pdD5TdGF0aWMgdmFyaWFibGVzL2luaXRpYWxpemVyczwvc3RhdGljVmFyaWFibGVJbml0PgogICAgICAgICAgICAgICAgPGN0b3I+Q29uc3RydWN0b3JzPC9jdG9yPgogICAgICAgICAgICAgICAgPGZpbGxDaGFyYWN0ZXI+tzwvZmlsbENoYXJhY3Rlcj4KICAgICAgICAgICAgICAgIDxpbnRlcmZhY2U+SW50ZXJmYWNlczwvaW50ZXJmYWNlPgogICAgICAgICAgICAgICAgPGluc3RhbmNlSW5pdD5JbnN0YW5jZSBpbml0aWFsaXplcnM8L2luc3RhbmNlSW5pdD4KICAgICAgICAgICAgICAgIDxpbnN0YW5jZVZhcmlhYmxlPkluc3RhbmNlIHZhcmlhYmxlczwvaW5zdGFuY2VWYXJpYWJsZT4KICAgICAgICAgICAgICAgIDxjbGFzcz5DbGFzc2VzPC9jbGFzcz4KICAgICAgICAgICAgPC9zZXBhcmF0b3I+CiAgICAgICAgICAgIDxmb3JtYXRNdWx0aUxpbmU+ZmFsc2U8L2Zvcm1hdE11bHRpTGluZT4KICAgICAgICAgICAgPGluc2VydFNlcGFyYXRvclJlY3Vyc2l2ZT5mYWxzZTwvaW5zZXJ0U2VwYXJhdG9yUmVjdXJzaXZlPgogICAgICAgICAgICA8aW5zZXJ0U2VwYXJhdG9yPmZhbHNlPC9pbnNlcnRTZXBhcmF0b3I+CiAgICAgICAgICAgIDxyZW1vdmVNdWx0aUxpbmU+ZmFsc2U8L3JlbW92ZU11bHRpTGluZT4KICAgICAgICAgICAgPHJlbW92ZVNpbmdsZUxpbmU+ZmFsc2U8L3JlbW92ZVNpbmdsZUxpbmU+CiAgICAgICAgPC9jb21tZW50cz4KICAgICAgICA8Zm9vdGVyPgogICAgICAgICAgICA8a2V5cyAvPgogICAgICAgICAgICA8dGV4dCAvPgogICAgICAgICAgICA8dXNlPmZhbHNlPC91c2U+CiAgICAgICAgICAgIDxzbWFydE1vZGVMaW5lcz4wPC9zbWFydE1vZGVMaW5lcz4KICAgICAgICA8L2Zvb3Rlcj4KICAgICAgICA8d3JhcHBpbmc+CiAgICAgICAgICAgIDxhcnJheUVsZW1lbnRzPjA8L2FycmF5RWxlbWVudHM+CiAgICAgICAgICAgIDxhZnRlclRocm93c1R5cGVzPmZhbHNlPC9hZnRlclRocm93c1R5cGVzPgogICAgICAgICAgICA8YWZ0ZXJJbXBsZW1lbnRzVHlwZXM+ZmFsc2U8L2FmdGVySW1wbGVtZW50c1R5cGVzPgogICAgICAgICAgICA8YmVmb3JlVGhyb3dzPmZhbHNlPC9iZWZvcmVUaHJvd3M+CiAgICAgICAgICAgIDxhZnRlckNoYWluZWRNZXRob2RDYWxsPmZhbHNlPC9hZnRlckNoYWluZWRNZXRob2RDYWxsPgogICAgICAgICAgICA8YWZ0ZXJFeHRlbmRzVHlwZXM+ZmFsc2U8L2FmdGVyRXh0ZW5kc1R5cGVzPgogICAgICAgICAgICA8cGFyYW1zTWV0aG9kQ2FsbD5mYWxzZTwvcGFyYW1zTWV0aG9kQ2FsbD4KICAgICAgICAgICAgPGxpbmVMZW5ndGg+ODA8L2xpbmVMZW5ndGg+CiAgICAgICAgICAgIDxiZWZvcmVFeHRlbmRzPmZhbHNlPC9iZWZvcmVFeHRlbmRzPgogICAgICAgICAgICA8YmVmb3JlT3BlcmF0b3I+dHJ1ZTwvYmVmb3JlT3BlcmF0b3I+CiAgICAgICAgICAgIDxwYXJhbXNNZXRob2REZWY+ZmFsc2U8L3BhcmFtc01ldGhvZERlZj4KICAgICAgICAgICAgPGJlZm9yZUltcGxlbWVudHM+ZmFsc2U8L2JlZm9yZUltcGxlbWVudHM+CiAgICAgICAgICAgIDxwYXJhbXNNZXRob2RDYWxsSWZDYWxsPmZhbHNlPC9wYXJhbXNNZXRob2RDYWxsSWZDYWxsPgogICAgICAgICAgICA8YWZ0ZXJMYWJlbD50cnVlPC9hZnRlckxhYmVsPgogICAgICAgICAgICA8dXNlPnRydWU8L3VzZT4KICAgICAgICAgICAgPCEtLSBCZWdpbiBDdXN0b20gZm9yIFN0cnV0cyAtLT4KICAgICAgICAgICAgPG9uZGVtYW5kPgogICAgICAgICAgICAgICAgPGFmdGVyPgogICAgICAgICAgICAgICAgICAgIDxhc3NpZ25tZW50PnRydWU8L2Fzc2lnbm1lbnQ+CiAgICAgICAgICAgICAgICA8L2FmdGVyPgogICAgICAgICAgICA8L29uZGVtYW5kPgogICAgICAgICAgICA8IS0tIEVuZCBDdXN0b20gZm9yIFN0cnV0cyAtLT4KICAgICAgICA8L3dyYXBwaW5nPgogICAgICAgIDxicmFjZXM+CiAgICAgICAgICAgIDxyZW1vdmVCcmFjZXNCbG9jaz50cnVlPC9yZW1vdmVCcmFjZXNCbG9jaz4KICAgICAgICAgICAgPGVtcHR5SW5zZXJ0U3RhdGVtZW50PmZhbHNlPC9lbXB0eUluc2VydFN0YXRlbWVudD4KICAgICAgICAgICAgPHRyZWF0TWV0aG9kQ2xhc3NEaWZmZXJlbnQ+ZmFsc2U8L3RyZWF0TWV0aG9kQ2xhc3NEaWZmZXJlbnQ+CiAgICAgICAgICAgIDxpbnNlcnRCcmFjZXNJZkVsc2U+dHJ1ZTwvaW5zZXJ0QnJhY2VzSWZFbHNlPgogICAgICAgICAgICA8cmVtb3ZlQnJhY2VzRG9XaGlsZT5mYWxzZTwvcmVtb3ZlQnJhY2VzRG9XaGlsZT4KICAgICAgICAgICAgPGluc2VydEJyYWNlc1doaWxlPnRydWU8L2luc2VydEJyYWNlc1doaWxlPgogICAgICAgICAgICA8cmVtb3ZlQnJhY2VzRm9yPmZhbHNlPC9yZW1vdmVCcmFjZXNGb3I+CiAgICAgICAgICAgIDxpbnNlcnRCcmFjZXNGb3I+dHJ1ZTwvaW5zZXJ0QnJhY2VzRm9yPgogICAgICAgICAgICA8cmVtb3ZlQnJhY2VzSWZFbHNlPmZhbHNlPC9yZW1vdmVCcmFjZXNJZkVsc2U+CiAgICAgICAgICAgIDxyZW1vdmVCcmFjZXNXaGlsZT5mYWxzZTwvcmVtb3ZlQnJhY2VzV2hpbGU+CiAgICAgICAgICAgIDxyaWdodEJyYWNlTmV3TGluZT5mYWxzZTwvcmlnaHRCcmFjZU5ld0xpbmU+CiAgICAgICAgICAgIDxsZWZ0QnJhY2VOZXdMaW5lPmZhbHNlPC9sZWZ0QnJhY2VOZXdMaW5lPgogICAgICAgICAgICA8ZW1wdHlDdWRkbGU+ZmFsc2U8L2VtcHR5Q3VkZGxlPgogICAgICAgICAgICA8aW5zZXJ0QnJhY2VzRG9XaGlsZT50cnVlPC9pbnNlcnRCcmFjZXNEb1doaWxlPgogICAgICAgIDwvYnJhY2VzPgogICAgICAgIDxoaXN0b3J5PgogICAgICAgICAgICA8cG9saWN5Pkhpc3RvcnkuUG9saWN5IFtkaXNhYmxlZF08L3BvbGljeT4KICAgICAgICA8L2hpc3Rvcnk+CiAgICAgICAgPGVudmlyb25tZW50IC8+CiAgICAgICAgPGNodW5rcz4KICAgICAgICAgICAgPGJ5Q29tbWVudHM+dHJ1ZTwvYnlDb21tZW50cz4KICAgICAgICAgICAgPGJ5QmxhbmtMaW5lcz50cnVlPC9ieUJsYW5rTGluZXM+CiAgICAgICAgPC9jaHVua3M+CiAgICA8L3ByaW50ZXI+CiAgICA8dHJhbnNmb3JtPgogICAgICAgIDxpbXBvcnQ+CiAgICAgICAgICAgIDxwb2xpY3k+SW1wb3J0UG9saWN5IFtleHBhbmRdPC9wb2xpY3k+CiAgICAgICAgICAgIDxncm91cGluZ0RlcHRoPjE8L2dyb3VwaW5nRGVwdGg+CiAgICAgICAgICAgIDxncm91cGluZz5qYXZheDoyfGphdmE6MjwvZ3JvdXBpbmc+CiAgICAgICAgICAgIDxzb3J0PnRydWU8L3NvcnQ+CiAgICAgICAgPC9pbXBvcnQ+CiAgICAgICAgPG1pc2M+CiAgICAgICAgICAgIDxpbnNlcnRVSUQ+ZmFsc2U8L2luc2VydFVJRD4KICAgICAgICAgICAgPGluc2VydExvZ2dpbmdDb25kaXRpb25hbD5mYWxzZTwvaW5zZXJ0TG9nZ2luZ0NvbmRpdGlvbmFsPgogICAgICAgICAgICA8aW5zZXJ0RXhwcmVzc2lvblBhcmVudGhlc2lzPnRydWU8L2luc2VydEV4cHJlc3Npb25QYXJlbnRoZXNpcz4KICAgICAgICA8L21pc2M+CiAgICA8L3RyYW5zZm9ybT4KICAgIDxnZW5lcmFsPgogICAgICAgIDxzdHlsZU5hbWU+U3RydXRzPC9zdHlsZU5hbWU+CiAgICAgICAgPHN0eWxlRGVzY3JpcHRpb24+QXBhY2hlIFN0cnV0cyBDb2RpbmcgQ29udmVudGlvbjwvc3R5bGVEZXNjcmlwdGlvbj4KICAgICAgICA8YmFja3VwTGV2ZWw+MDwvYmFja3VwTGV2ZWw+CiAgICAgICAgPGJhY2t1cERpcmVjdG9yeT5iYWs8L2JhY2t1cERpcmVjdG9yeT4KICAgICAgICA8dGhyZWFkQ291bnQ+MTwvdGhyZWFkQ291bnQ+CiAgICAgICAgPHNvdXJjZVZlcnNpb24+MTM8L3NvdXJjZVZlcnNpb24+CiAgICAgICAgPGZvcmNlRm9ybWF0dGluZz5mYWxzZTwvZm9yY2VGb3JtYXR0aW5nPgogICAgPC9nZW5lcmFsPgogICAgPG1lc3NhZ2VzPgogICAgICAgIDxpb01zZ1ByaW8+MzAwMDA8L2lvTXNnUHJpbz4KICAgICAgICA8cGFyc2VyTXNnUHJpbz4zMDAwMDwvcGFyc2VyTXNnUHJpbz4KICAgICAgICA8cGFyc2VySmF2YWRvY01zZ1ByaW8+MzAwMDA8L3BhcnNlckphdmFkb2NNc2dQcmlvPgogICAgICAgIDxwcmludGVyTXNnUHJpbz4zMDAwMDwvcHJpbnRlck1zZ1ByaW8+CiAgICAgICAgPHByaW50ZXJKYXZhZG9jTXNnUHJpbz4zMDAwMDwvcHJpbnRlckphdmFkb2NNc2dQcmlvPgogICAgICAgIDxzaG93RXJyb3JTdGFja1RyYWNlPnRydWU8L3Nob3dFcnJvclN0YWNrVHJhY2U+CiAgICAgICAgPHRyYW5zZm9ybU1zZ1ByaW8+MzAwMDA8L3RyYW5zZm9ybU1zZ1ByaW8+CiAgICA8L21lc3NhZ2VzPgogICAgPGludGVybmFsPgogICAgICAgIDx2ZXJzaW9uPjQ8L3ZlcnNpb24+CiAgICA8L2ludGVybmFsPgo8L2phbG9weT4=