Unified Test List: The Basics

<div class="container"><link rel='stylesheet' href="https://nhskahootz.kddev.co.uk/v1.2.2/css/dist/style.css?v=1545389118" type='text/css' media='all' /><style>.icon:before { color: #226fb6;}.bg-default.icon *, .bg-default.kd_button * { color: #ffffff!important;}.bg-default.icon:before, .bg-default.kd_button:before { color: #ffffff!important;}.main-column p a, .container p a, .main-column ul li a, .container ul li a, .main-column ol li a, .theme--templateuse.container ol li a, .text p a, .card p a, p.icon a, .icon_block span.like-a, .image_block span.like-a, .theme--templateuse.entity-listing .entity-item p a { color: #226fb6;}.icon.icon-right-arrow-on-circle:before, .theme--templateuse.icon.icon-right-arrow:before { background-color: #226fb6;}.icon.icon-right-arrow-on-circle:before, .theme--templateuse.icon.icon-right-arrow:before { color: #ffffff!important;}.icon.icon-right-arrow-on-circle:hover:before, .theme--templateuse.icon.icon-right-arrow:hover:before { background-color: ;}.main-column hr, .container hr, hr { border-color: #226fb6;}.kd_glossary .kd_glossary_body > li > span { border-color: #226fb6;}.kd_accordions .kd_accordion > h2.active, .kd_accordions .kd_accordion > h2:hover { background-color: #226fb6;}.kd_accordions .kd_accordion > h2.active, .kd_accordions .kd_accordion > h2:hover { color: #ffffff!important;}.kd_accordions .kd_accordion > h2 { color: #226fb6;}.icon_block span.like-a { color: #226fb6;}/* --- BgColor --- */.bg-default { background-color: #226fb6;}.bg-gray { background-color: #768692;}.bg-light-gray { background-color: #E8EDEE;}.bg-dark-gray { background-color: #425563;}.bg-dark-blue { background-color: #226fb5;}.bg-blue { background-color: #1a7b91;}.bg-light-blue { background-color: #4ca6b9;}/* --- BgColor --- *//* --- BgHoverColor --- */a.bg-default.icon_block:hover, .bg-default.kd_button:hover { background-color: ;}a.bg-gray.icon_block:hover, .bg-gray.kd_button:hover { background-color: "#medium_gray_color_hover";}a.bg-dark-gray.icon_block:hover, .bg-dark-gray.kd_button:hover { background-color: "#dark_gray_color_hover";}a.bg-light-gray.icon_block:hover, .bg-light-gray.kd_button:hover { background-color: "#light_gray_color_hover";}a.bg-dark-blue.icon_block:hover, .bg-dark-blue.kd_button:hover { background-color: "#dark_blue_color_hover";}a.bg-blue.icon_block:hover, .bg-blue.kd_button:hover { background-color: "#medium_blue_color_hover";}a.bg-light-blue.icon_block:hover, .bg-light-blue.kd_button:hover { background-color: "#light_blue_color_hover";}/* --- BgHoverColor --- */.kd_glossary .kd_glossary_filter > div input { border-color: #226fb6;}.kd_glossary .kd_glossary_body > li > ul > li.highlighted { background-color: ;}.main-column h1, .container h1, .builder h1 { font-size: 30px;}.main-column h1, .container h1, .builder h1 { color: #042e37;}.main-column h2, .container h2, .builder h2 { font-size: 25px;}.main-column h2, .container h2, .builder h2 { color: #042e37;}.main-column h3, .container h3, .builder h3 { font-size: 20px;}.main-column h3, .container h3, .builder h3 { color: #042e37;}.main-column p, .container p, .main-column ul li, .container ul li, .theme--templateuse.main-column ol li, .container ol li, .text p, .card p, .theme--templateuse.icon_block span.like-a, .image_block span.like-a, .entity-listing .entity-item h3, .theme--templateuse.entity-listing .entity-item p, .theme--templateuse.kd_glossary .kd_glossary_filter > div label, .theme--templateuse.kd_glossary .kd_glossary_body > li > span { color: #042e37;}.main-column p, .container p, .main-column ul li, .container ul li, .theme--templateuse.main-column ol li, .container ol li, .text p, .card p, .theme--templateuse.icon_block span.like-a, .image_block span.like-a, .entity-listing .entity-item h3, .theme--templateuse.entity-listing .entity-item p, .theme--templateuse.kd_glossary .kd_glossary_filter > div label, .theme--templateuse.kd_glossary .kd_glossary_body > li > span { font-size: 14px;}</style><div class="kd_columns "> <div class="kd_col"> <!-- Text Element --><div class="text expandable"> <p style="margin-left:0cm; margin-right:0cm">This describes the starter set of 350 coded terms listed in the UTL published by NHS Digital in 2018/19.</p><p style="margin-left:0cm; margin-right:0cm">Laboratory processes can be usefully if crudely characterised as consisting of &lsquo;requestables&rsquo;, &lsquo;performables&rsquo; and &lsquo;reportables&rsquo; i.e. requests for analysis, the activities done in the lab in response and the results of that activity to be transmitted back to the requester. The SNOMED coding requirements are different in each of these, but much is codable by breaking it down in this way and applying SNOMED semantics to business flows.&nbsp; The first priority is to create a results list that is usable by all sectors of the system including a migration from old &lsquo;Read code&rsquo; based PBCL to SNOMED coding for Primary Care reporting. There is also potential for single results codes to be used in requests (as a blank &lsquo;tell me the answer to this question&rsquo; format) and also for lab-to-lab communications when combined with a complementary list of battery/profile/panel types.</p><p style="margin-left:0cm; margin-right:0cm">The current list of 350 SNOMED coded terms published here is a proposed basis of the UTL, focused initially on &lsquo;blood sciences content (i.e. principally chemical pathology and haematology with a small sample of virology and immunology and other domains) that is eventually expected to contain perhaps 5000 codes or more.&nbsp; It is a starter set derived from a combination of some &lsquo;top 100&rsquo; blood sciences tests and example specialist result requirements at a more granular level (e.g. PTH).&nbsp; The aim in getting both generalist and specialist dimensions covered is to provide a list for open consultation that can show how it would work in both contexts.</p><p style="margin-left:0cm; margin-right:0cm">As derived from &lsquo;top 100&rsquo; lists it inevitably misses some sections covered by reporting.&nbsp; For example, allergen reports are entirely missing at this stage.</p><p style="margin-left:0cm; margin-right:0cm">There is some virology and viral immunology content.&nbsp; The presence or absence of viruses is set out here in coded result form alongside a sample of viral load and titre concepts for consultation. The UTL so far does not attempt to regularise all test reporting on viruses.&nbsp; The relationship between Boolean or threshold presence tests and the quantitative measurements done and reported upon as part of specific indications or in screens requires detailed work and we would welcome the input of domain experts to build a standardised reporting model (while allowing for variation as needed) before we proceed further.</p><p style="margin-left:0cm; margin-right:0cm">For those familiar with Read and SNOMED coding, the SNOMED terms will seem more specific than those in the PBCL or elsewhere (and they will ultimately succeed them) but this conforms to a well-defined SNOMED structure with the key aim of tightly defining and constraining what result<em> value</em> can be appended to a result <em>code</em>, in what format it is allowed to appear and what <em>unit of measurement</em> (if any) it is permitted to have assigned.&nbsp; A major difficulty in the past has been the potential for variation in these constraints across many systems making results comparison difficult and causing the sharing of results outside very tightly defined pathways to be done only with great caution in case of misinterpretation.</p><p style="margin-left:0cm; margin-right:0cm">Alongside the starter UTL spreadsheet is a simple model diagram of how SNOMED constructs a detailed machine-readable definition of the result descriptor so that this can be used to determine HL7 message profile constraints.&nbsp; For review purposes, it is useful to understand the basics of this.&nbsp;</p><p style="margin-left:0cm; margin-right:0cm"><strong>SNOMED Coding Basics in Laboratory Medicine</strong></p><p style="margin-left:0cm; margin-right:0cm">Result codes that take a value are coded as an &lsquo;observable entity&rsquo; type which means that after the wording of the code there is a notional &lsquo;colon&rsquo; that prompts a value (numeric or text etc) to be added.&nbsp; i.e. it is not a free-standing description of something without the value part.</p><p style="margin-left:0cm; margin-right:0cm">e.g. Glucose substance [AKA molar] concentration in serum: [insert value + report unit)</p><p style="margin-left:0cm; margin-right:0cm">An example of a free standing &lsquo;finding&rsquo; code would be &lsquo;hyperglycaemia&rsquo; which could be equivalent to the &lsquo;observable entity code + value + UoM&rsquo; informed by reference range.&nbsp; By itself without a value added, the observable entity code is close to operating as a procedure/activity code, hence its potential for use in a request.</p><p style="margin-left:0cm; margin-right:0cm">Result terms conform to the following basic model triad:</p><p style="margin-left:0cm; margin-right:0cm">property to be measured + substance/entity to which the property applies + system in which substance/entity is measured</p><p style="margin-left:0cm; margin-right:0cm">in short: &lsquo;property + component + system&rsquo;.</p><p style="margin-left:0cm; margin-right:0cm">In the above example the model is:</p><ul> <li>Property = substance (molar) concentration</li> <li>Component = glucose</li> <li>System&nbsp;= serum (specimen)</li></ul><p style="margin-left:0cm; margin-right:0cm">All results (bar a few exceptions such as &lsquo;Acute kidney injury warning stage&rsquo;) would be expected to have a property and most will have a system (specimen or site) and a component (coagulation times might not).&nbsp; Property, component and system are known in SNOMED as &lsquo;<em>attributes</em>.</p><p style="margin-left:0cm; margin-right:0cm">At a secondary level a further set of attributes come into play.&nbsp; The slide accompanying the UTL describe all of these.</p><ul> <li>Scale Type (describing what value type can be appended),</li> <li>Technique (method used by lab to obtain result)</li> <li>Relative To (captures a second component where this is what the first component is&hellip;relative to, e.g. ratios or cell populations).</li></ul><p style="margin-left:0cm; margin-right:0cm">These are not defined in all content; only where it is useful to do so.</p><p style="margin-left:0cm; margin-right:0cm">It is also essential to understand what is <em>not</em> in the UTL.&nbsp; The slide shows that certain parts of the data are held within the wider information structure such as the HL7 message; notably (besides the value itself) the unit of measurement, the reference range for the result and any alerts or other decision support on the back of the result.&nbsp; In addition, test timings and preconditions such as specimen status or patient status that, while relevant to interpreting the result, do not affect the intrinsic basis of the test performed.</p><p style="margin-left:0cm; margin-right:0cm">e.g. &lsquo;Fasting glucose test&rsquo; is not different from &lsquo;glucose test&rsquo; but the same test performed on a fasted patient or specimen (or alternatively a random specimen).</p><p style="margin-left:0cm; margin-right:0cm">The SNOMED modelling with the HL7 FHIR model together structure and constrain fields to a standard specification. As the UTL develops, these principles will be set out in formal specifications and editorial principles for content.</p><p style="margin-left:0cm; margin-right:0cm"><strong>A note on property and scale types</strong></p><p style="margin-left:0cm; margin-right:0cm"><strong>Properties</strong></p><p style="margin-left:0cm; margin-right:0cm">These are coded concepts in SNOMED and terming follows these. For quantitative results with numeric values, the commonest of these are:</p><ul> <li><strong>Substance concentration</strong> (commonly referred to in the UK as molar concentration).&nbsp; Both wordings are available in UTL content. e.g. &lsquo;mmol/L&rsquo;</li> <li><strong>Mass concentration</strong> e.g. &lsquo;mg/L&rsquo;</li> <li><strong>Arbitrary concentration</strong> - used where the units are U or UI for international units</li> <li><strong>Enzyme activity</strong> for catalytic activity measurements in enzymes</li></ul><p style="margin-left:0cm; margin-right:0cm"><strong>Scale Types</strong></p><p style="margin-left:0cm; margin-right:0cm">The provisional draft list of scale types that define the expected value the UTL code describes are:</p><ul> <li><strong>Quantitative (numeric)</strong></li> <li><strong>Ordinal</strong></li> <li><strong>Nominal</strong></li> <li><strong>Ratio (dimensionless)</strong></li> <li><strong>Text value</strong></li> <li><strong>Narrative text</strong></li></ul><p style="margin-left:0cm; margin-right:0cm">Similarities with the current PBCL &lsquo;flags&rsquo; will be noted.</p> <div class="expandable_part"> </div> </div></div></div><script src="https://nhskahootz.kddev.co.uk/v1.2.2/js/jquery.collapsible_text.js?v=1545389118"></script><!-- Copy the code and paste into Kahootz's Applet. ---------------------------------------------- %datasrc:eyJwcm9qZWN0SW5mbyI6eyJ0aXRsZSI6Ik5IUyBCdWlsZGVyIERlbW8iLCJwcm9qZWN0TG9nb1VybCI6Imh0dHBzOlwvXC9mdXR1cmUubmhzLnVrXC9pbm92ZW1cL3NpdGVzXC9zaXRlNDA2NVwvY3VzdG9tXC9mdXR1cmVuaHNfbG9nby5naWYiLCJwcm9qZWN0VmlzaWJpbGl0eSI6Ik9ubHkgdmlzaWJsZSB0byBtZW1iZXJzLiBNZW1iZXJzaGlwIG11c3QgYmUgYXBwcm92ZWQiLCJwcm9qZWN0TWVtYmVyQ291bnQiOjE4LCJwcm9qZWN0SG9tZVVybCI6Imh0dHBzOlwvXC9mdXR1cmUubmhzLnVrIiwicHJvamVjdENvbnRhY3RFbWFpbCI6ImV4YW1wbGVAZXhhbXBsZS5kZXZlbCJ9LCJwcm9qZWN0T3B0aW9ucyI6eyJwcmltYXJ5X2NvbG9yIjoiIzIyNmZiNiIsInNlY29uZGFyeV9jb2xvciI6IiNmZmZmZmYiLCJ0ZXJ0aWFyeV9jb2xvciI6IiMwNTA1MDUiLCJsaWdodF9ncmF5X2NvbG9yIjoiI0U4RURFRSIsIm1lZGl1bV9ncmF5X2NvbG9yIjoiIzc2ODY5MiIsImRhcmtfZ3JheV9jb2xvciI6IiM0MjU1NjMiLCJkYXJrX2JsdWVfY29sb3IiOiIjMjI2ZmI1IiwibGlnaHRfYmx1ZV9jb2xvciI6IiM0Y2E2YjkiLCJtZWRpdW1fYmx1ZV9jb2xvciI6IiMxYTdiOTEiLCJoMV9jb2xvciI6IiMwNDJlMzciLCJoMV9mb250X3NpemUiOiIzMHB4IiwiaDJfY29sb3IiOiIjMDQyZTM3IiwiaDJfZm9udF9zaXplIjoiMjVweCIsImgzX2NvbG9yIjoiIzA0MmUzNyIsImgzX2ZvbnRfc2l6ZSI6IjIwcHgiLCJwX2NvbG9yIjoiIzA0MmUzNyIsInBfZm9udF9zaXplIjoiMTRweCJ9LCJlbnZpcm9ubWVudCI6ImtkZGV2IiwiY2hpbGRyZW4iOlt7ImNvbXBvbmVudCI6IlJvd0Jsb2NrIiwiaWQiOiI0NzM2LTE1NDUzMTU0Mjg3MzciLCJlbGVtZW50QWRkaW5nTW9kZUFjdGl2ZSI6ZmFsc2UsImNoaWxkcmVuIjpbeyJjb21wb25lbnQiOiJDb2xCbG9jayIsImlkIjoiMTQ0OS0xNTQ1MzE1NDI4NzM5IiwiY2hpbGRyZW4iOlt7ImNvbXBvbmVudCI6IlRleHRFbGVtZW50IiwiaWQiOiIyNzM0LTE1NDUzMTU0MzI5NTciLCJlbGVtZW50T3B0aW9uc1BhbmVsIjp7ImFjdGl2ZSI6ZmFsc2V9LCJjb250ZW50cyI6eyJUZXh0IjoiPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5UaGlzIGRlc2NyaWJlcyB0aGUgc3RhcnRlciBzZXQgb2YgMzUwIGNvZGVkIHRlcm1zIGxpc3RlZCBpbiB0aGUgVVRMIHB1Ymxpc2hlZCBieSBOSFMgRGlnaXRhbCBpbiAyMDE4XC8xOS48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkxhYm9yYXRvcnkgcHJvY2Vzc2VzIGNhbiBiZSB1c2VmdWxseSBpZiBjcnVkZWx5IGNoYXJhY3RlcmlzZWQgYXMgY29uc2lzdGluZyBvZiAmbHNxdW87cmVxdWVzdGFibGVzJnJzcXVvOywgJmxzcXVvO3BlcmZvcm1hYmxlcyZyc3F1bzsgYW5kICZsc3F1bztyZXBvcnRhYmxlcyZyc3F1bzsgaS5lLiByZXF1ZXN0cyBmb3IgYW5hbHlzaXMsIHRoZSBhY3Rpdml0aWVzIGRvbmUgaW4gdGhlIGxhYiBpbiByZXNwb25zZSBhbmQgdGhlIHJlc3VsdHMgb2YgdGhhdCBhY3Rpdml0eSB0byBiZSB0cmFuc21pdHRlZCBiYWNrIHRvIHRoZSByZXF1ZXN0ZXIuIFRoZSBTTk9NRUQgY29kaW5nIHJlcXVpcmVtZW50cyBhcmUgZGlmZmVyZW50IGluIGVhY2ggb2YgdGhlc2UsIGJ1dCBtdWNoIGlzIGNvZGFibGUgYnkgYnJlYWtpbmcgaXQgZG93biBpbiB0aGlzIHdheSBhbmQgYXBwbHlpbmcgU05PTUVEIHNlbWFudGljcyB0byBidXNpbmVzcyBmbG93cy4mbmJzcDsgVGhlIGZpcnN0IHByaW9yaXR5IGlzIHRvIGNyZWF0ZSBhIHJlc3VsdHMgbGlzdCB0aGF0IGlzIHVzYWJsZSBieSBhbGwgc2VjdG9ycyBvZiB0aGUgc3lzdGVtIGluY2x1ZGluZyBhIG1pZ3JhdGlvbiBmcm9tIG9sZCAmbHNxdW87UmVhZCBjb2RlJnJzcXVvOyBiYXNlZCBQQkNMIHRvIFNOT01FRCBjb2RpbmcgZm9yIFByaW1hcnkgQ2FyZSByZXBvcnRpbmcuIFRoZXJlIGlzIGFsc28gcG90ZW50aWFsIGZvciBzaW5nbGUgcmVzdWx0cyBjb2RlcyB0byBiZSB1c2VkIGluIHJlcXVlc3RzIChhcyBhIGJsYW5rICZsc3F1bzt0ZWxsIG1lIHRoZSBhbnN3ZXIgdG8gdGhpcyBxdWVzdGlvbiZyc3F1bzsgZm9ybWF0KSBhbmQgYWxzbyBmb3IgbGFiLXRvLWxhYiBjb21tdW5pY2F0aW9ucyB3aGVuIGNvbWJpbmVkIHdpdGggYSBjb21wbGVtZW50YXJ5IGxpc3Qgb2YgYmF0dGVyeVwvcHJvZmlsZVwvcGFuZWwgdHlwZXMuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5UaGUgY3VycmVudCBsaXN0IG9mIDM1MCBTTk9NRUQgY29kZWQgdGVybXMgcHVibGlzaGVkIGhlcmUgaXMgYSBwcm9wb3NlZCBiYXNpcyBvZiB0aGUgVVRMLCBmb2N1c2VkIGluaXRpYWxseSBvbiAmbHNxdW87Ymxvb2Qgc2NpZW5jZXMgY29udGVudCAoaS5lLiBwcmluY2lwYWxseSBjaGVtaWNhbCBwYXRob2xvZ3kgYW5kIGhhZW1hdG9sb2d5IHdpdGggYSBzbWFsbCBzYW1wbGUgb2Ygdmlyb2xvZ3kgYW5kIGltbXVub2xvZ3kgYW5kIG90aGVyIGRvbWFpbnMpIHRoYXQgaXMgZXZlbnR1YWxseSBleHBlY3RlZCB0byBjb250YWluIHBlcmhhcHMgNTAwMCBjb2RlcyBvciBtb3JlLiZuYnNwOyBJdCBpcyBhIHN0YXJ0ZXIgc2V0IGRlcml2ZWQgZnJvbSBhIGNvbWJpbmF0aW9uIG9mIHNvbWUgJmxzcXVvO3RvcCAxMDAmcnNxdW87IGJsb29kIHNjaWVuY2VzIHRlc3RzIGFuZCBleGFtcGxlIHNwZWNpYWxpc3QgcmVzdWx0IHJlcXVpcmVtZW50cyBhdCBhIG1vcmUgZ3JhbnVsYXIgbGV2ZWwgKGUuZy4gUFRIKS4mbmJzcDsgVGhlIGFpbSBpbiBnZXR0aW5nIGJvdGggZ2VuZXJhbGlzdCBhbmQgc3BlY2lhbGlzdCBkaW1lbnNpb25zIGNvdmVyZWQgaXMgdG8gcHJvdmlkZSBhIGxpc3QgZm9yIG9wZW4gY29uc3VsdGF0aW9uIHRoYXQgY2FuIHNob3cgaG93IGl0IHdvdWxkIHdvcmsgaW4gYm90aCBjb250ZXh0cy48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkFzIGRlcml2ZWQgZnJvbSAmbHNxdW87dG9wIDEwMCZyc3F1bzsgbGlzdHMgaXQgaW5ldml0YWJseSBtaXNzZXMgc29tZSBzZWN0aW9ucyBjb3ZlcmVkIGJ5IHJlcG9ydGluZy4mbmJzcDsgRm9yIGV4YW1wbGUsIGFsbGVyZ2VuIHJlcG9ydHMgYXJlIGVudGlyZWx5IG1pc3NpbmcgYXQgdGhpcyBzdGFnZS48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZXJlIGlzIHNvbWUgdmlyb2xvZ3kgYW5kIHZpcmFsIGltbXVub2xvZ3kgY29udGVudC4mbmJzcDsgVGhlIHByZXNlbmNlIG9yIGFic2VuY2Ugb2YgdmlydXNlcyBpcyBzZXQgb3V0IGhlcmUgaW4gY29kZWQgcmVzdWx0IGZvcm0gYWxvbmdzaWRlIGEgc2FtcGxlIG9mIHZpcmFsIGxvYWQgYW5kIHRpdHJlIGNvbmNlcHRzIGZvciBjb25zdWx0YXRpb24uIFRoZSBVVEwgc28gZmFyIGRvZXMgbm90IGF0dGVtcHQgdG8gcmVndWxhcmlzZSBhbGwgdGVzdCByZXBvcnRpbmcgb24gdmlydXNlcy4mbmJzcDsgVGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIEJvb2xlYW4gb3IgdGhyZXNob2xkIHByZXNlbmNlIHRlc3RzIGFuZCB0aGUgcXVhbnRpdGF0aXZlIG1lYXN1cmVtZW50cyBkb25lIGFuZCByZXBvcnRlZCB1cG9uIGFzIHBhcnQgb2Ygc3BlY2lmaWMgaW5kaWNhdGlvbnMgb3IgaW4gc2NyZWVucyByZXF1aXJlcyBkZXRhaWxlZCB3b3JrIGFuZCB3ZSB3b3VsZCB3ZWxjb21lIHRoZSBpbnB1dCBvZiBkb21haW4gZXhwZXJ0cyB0byBidWlsZCBhIHN0YW5kYXJkaXNlZCByZXBvcnRpbmcgbW9kZWwgKHdoaWxlIGFsbG93aW5nIGZvciB2YXJpYXRpb24gYXMgbmVlZGVkKSBiZWZvcmUgd2UgcHJvY2VlZCBmdXJ0aGVyLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+Rm9yIHRob3NlIGZhbWlsaWFyIHdpdGggUmVhZCBhbmQgU05PTUVEIGNvZGluZywgdGhlIFNOT01FRCB0ZXJtcyB3aWxsIHNlZW0gbW9yZSBzcGVjaWZpYyB0aGFuIHRob3NlIGluIHRoZSBQQkNMIG9yIGVsc2V3aGVyZSAoYW5kIHRoZXkgd2lsbCB1bHRpbWF0ZWx5IHN1Y2NlZWQgdGhlbSkgYnV0IHRoaXMgY29uZm9ybXMgdG8gYSB3ZWxsLWRlZmluZWQgU05PTUVEIHN0cnVjdHVyZSB3aXRoIHRoZSBrZXkgYWltIG9mIHRpZ2h0bHkgZGVmaW5pbmcgYW5kIGNvbnN0cmFpbmluZyB3aGF0IHJlc3VsdDxlbT4gdmFsdWU8XC9lbT4gY2FuIGJlIGFwcGVuZGVkIHRvIGEgcmVzdWx0IDxlbT5jb2RlPFwvZW0+LCBpbiB3aGF0IGZvcm1hdCBpdCBpcyBhbGxvd2VkIHRvIGFwcGVhciBhbmQgd2hhdCA8ZW0+dW5pdCBvZiBtZWFzdXJlbWVudDxcL2VtPiAoaWYgYW55KSBpdCBpcyBwZXJtaXR0ZWQgdG8gaGF2ZSBhc3NpZ25lZC4mbmJzcDsgQSBtYWpvciBkaWZmaWN1bHR5IGluIHRoZSBwYXN0IGhhcyBiZWVuIHRoZSBwb3RlbnRpYWwgZm9yIHZhcmlhdGlvbiBpbiB0aGVzZSBjb25zdHJhaW50cyBhY3Jvc3MgbWFueSBzeXN0ZW1zIG1ha2luZyByZXN1bHRzIGNvbXBhcmlzb24gZGlmZmljdWx0IGFuZCBjYXVzaW5nIHRoZSBzaGFyaW5nIG9mIHJlc3VsdHMgb3V0c2lkZSB2ZXJ5IHRpZ2h0bHkgZGVmaW5lZCBwYXRod2F5cyB0byBiZSBkb25lIG9ubHkgd2l0aCBncmVhdCBjYXV0aW9uIGluIGNhc2Ugb2YgbWlzaW50ZXJwcmV0YXRpb24uPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5BbG9uZ3NpZGUgdGhlIHN0YXJ0ZXIgVVRMIHNwcmVhZHNoZWV0IGlzIGEgc2ltcGxlIG1vZGVsIGRpYWdyYW0gb2YgaG93IFNOT01FRCBjb25zdHJ1Y3RzIGEgZGV0YWlsZWQgbWFjaGluZS1yZWFkYWJsZSBkZWZpbml0aW9uIG9mIHRoZSByZXN1bHQgZGVzY3JpcHRvciBzbyB0aGF0IHRoaXMgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIEhMNyBtZXNzYWdlIHByb2ZpbGUgY29uc3RyYWludHMuJm5ic3A7IEZvciByZXZpZXcgcHVycG9zZXMsIGl0IGlzIHVzZWZ1bCB0byB1bmRlcnN0YW5kIHRoZSBiYXNpY3Mgb2YgdGhpcy4mbmJzcDs8XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPjxzdHJvbmc+U05PTUVEIENvZGluZyBCYXNpY3MgaW4gTGFib3JhdG9yeSBNZWRpY2luZTxcL3N0cm9uZz48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlJlc3VsdCBjb2RlcyB0aGF0IHRha2UgYSB2YWx1ZSBhcmUgY29kZWQgYXMgYW4gJmxzcXVvO29ic2VydmFibGUgZW50aXR5JnJzcXVvOyB0eXBlIHdoaWNoIG1lYW5zIHRoYXQgYWZ0ZXIgdGhlIHdvcmRpbmcgb2YgdGhlIGNvZGUgdGhlcmUgaXMgYSBub3Rpb25hbCAmbHNxdW87Y29sb24mcnNxdW87IHRoYXQgcHJvbXB0cyBhIHZhbHVlIChudW1lcmljIG9yIHRleHQgZXRjKSB0byBiZSBhZGRlZC4mbmJzcDsgaS5lLiBpdCBpcyBub3QgYSBmcmVlLXN0YW5kaW5nIGRlc2NyaXB0aW9uIG9mIHNvbWV0aGluZyB3aXRob3V0IHRoZSB2YWx1ZSBwYXJ0LjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+ZS5nLiBHbHVjb3NlIHN1YnN0YW5jZSBbQUtBIG1vbGFyXSBjb25jZW50cmF0aW9uIGluIHNlcnVtOiBbaW5zZXJ0IHZhbHVlICsgcmVwb3J0IHVuaXQpPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5BbiBleGFtcGxlIG9mIGEgZnJlZSBzdGFuZGluZyAmbHNxdW87ZmluZGluZyZyc3F1bzsgY29kZSB3b3VsZCBiZSAmbHNxdW87aHlwZXJnbHljYWVtaWEmcnNxdW87IHdoaWNoIGNvdWxkIGJlIGVxdWl2YWxlbnQgdG8gdGhlICZsc3F1bztvYnNlcnZhYmxlIGVudGl0eSBjb2RlICsgdmFsdWUgKyBVb00mcnNxdW87IGluZm9ybWVkIGJ5IHJlZmVyZW5jZSByYW5nZS4mbmJzcDsgQnkgaXRzZWxmIHdpdGhvdXQgYSB2YWx1ZSBhZGRlZCwgdGhlIG9ic2VydmFibGUgZW50aXR5IGNvZGUgaXMgY2xvc2UgdG8gb3BlcmF0aW5nIGFzIGEgcHJvY2VkdXJlXC9hY3Rpdml0eSBjb2RlLCBoZW5jZSBpdHMgcG90ZW50aWFsIGZvciB1c2UgaW4gYSByZXF1ZXN0LjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+UmVzdWx0IHRlcm1zIGNvbmZvcm0gdG8gdGhlIGZvbGxvd2luZyBiYXNpYyBtb2RlbCB0cmlhZDo8XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPnByb3BlcnR5IHRvIGJlIG1lYXN1cmVkICsgc3Vic3RhbmNlXC9lbnRpdHkgdG8gd2hpY2ggdGhlIHByb3BlcnR5IGFwcGxpZXMgKyBzeXN0ZW0gaW4gd2hpY2ggc3Vic3RhbmNlXC9lbnRpdHkgaXMgbWVhc3VyZWQ8XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPmluIHNob3J0OiAmbHNxdW87cHJvcGVydHkgKyBjb21wb25lbnQgKyBzeXN0ZW0mcnNxdW87LjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+SW4gdGhlIGFib3ZlIGV4YW1wbGUgdGhlIG1vZGVsIGlzOjxcL3A+XG5cbjx1bD5cblx0PGxpPlByb3BlcnR5ID0gc3Vic3RhbmNlIChtb2xhcikgY29uY2VudHJhdGlvbjxcL2xpPlxuXHQ8bGk+Q29tcG9uZW50ID0gZ2x1Y29zZTxcL2xpPlxuXHQ8bGk+U3lzdGVtJm5ic3A7PSBzZXJ1bSAoc3BlY2ltZW4pPFwvbGk+XG48XC91bD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5BbGwgcmVzdWx0cyAoYmFyIGEgZmV3IGV4Y2VwdGlvbnMgc3VjaCBhcyAmbHNxdW87QWN1dGUga2lkbmV5IGluanVyeSB3YXJuaW5nIHN0YWdlJnJzcXVvOykgd291bGQgYmUgZXhwZWN0ZWQgdG8gaGF2ZSBhIHByb3BlcnR5IGFuZCBtb3N0IHdpbGwgaGF2ZSBhIHN5c3RlbSAoc3BlY2ltZW4gb3Igc2l0ZSkgYW5kIGEgY29tcG9uZW50IChjb2FndWxhdGlvbiB0aW1lcyBtaWdodCBub3QpLiZuYnNwOyBQcm9wZXJ0eSwgY29tcG9uZW50IGFuZCBzeXN0ZW0gYXJlIGtub3duIGluIFNOT01FRCBhcyAmbHNxdW87PGVtPmF0dHJpYnV0ZXM8XC9lbT4uPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5BdCBhIHNlY29uZGFyeSBsZXZlbCBhIGZ1cnRoZXIgc2V0IG9mIGF0dHJpYnV0ZXMgY29tZSBpbnRvIHBsYXkuJm5ic3A7IFRoZSBzbGlkZSBhY2NvbXBhbnlpbmcgdGhlIFVUTCBkZXNjcmliZSBhbGwgb2YgdGhlc2UuPFwvcD5cblxuPHVsPlxuXHQ8bGk+U2NhbGUgVHlwZSAoZGVzY3JpYmluZyB3aGF0IHZhbHVlIHR5cGUgY2FuIGJlIGFwcGVuZGVkKSw8XC9saT5cblx0PGxpPlRlY2huaXF1ZSAobWV0aG9kIHVzZWQgYnkgbGFiIHRvIG9idGFpbiByZXN1bHQpPFwvbGk+XG5cdDxsaT5SZWxhdGl2ZSBUbyAoY2FwdHVyZXMgYSBzZWNvbmQgY29tcG9uZW50IHdoZXJlIHRoaXMgaXMgd2hhdCB0aGUgZmlyc3QgY29tcG9uZW50IGlzJmhlbGxpcDtyZWxhdGl2ZSB0bywgZS5nLiByYXRpb3Mgb3IgY2VsbCBwb3B1bGF0aW9ucykuPFwvbGk+XG48XC91bD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5UaGVzZSBhcmUgbm90IGRlZmluZWQgaW4gYWxsIGNvbnRlbnQ7IG9ubHkgd2hlcmUgaXQgaXMgdXNlZnVsIHRvIGRvIHNvLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+SXQgaXMgYWxzbyBlc3NlbnRpYWwgdG8gdW5kZXJzdGFuZCB3aGF0IGlzIDxlbT5ub3Q8XC9lbT4gaW4gdGhlIFVUTC4mbmJzcDsgVGhlIHNsaWRlIHNob3dzIHRoYXQgY2VydGFpbiBwYXJ0cyBvZiB0aGUgZGF0YSBhcmUgaGVsZCB3aXRoaW4gdGhlIHdpZGVyIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBzdWNoIGFzIHRoZSBITDcgbWVzc2FnZTsgbm90YWJseSAoYmVzaWRlcyB0aGUgdmFsdWUgaXRzZWxmKSB0aGUgdW5pdCBvZiBtZWFzdXJlbWVudCwgdGhlIHJlZmVyZW5jZSByYW5nZSBmb3IgdGhlIHJlc3VsdCBhbmQgYW55IGFsZXJ0cyBvciBvdGhlciBkZWNpc2lvbiBzdXBwb3J0IG9uIHRoZSBiYWNrIG9mIHRoZSByZXN1bHQuJm5ic3A7IEluIGFkZGl0aW9uLCB0ZXN0IHRpbWluZ3MgYW5kIHByZWNvbmRpdGlvbnMgc3VjaCBhcyBzcGVjaW1lbiBzdGF0dXMgb3IgcGF0aWVudCBzdGF0dXMgdGhhdCwgd2hpbGUgcmVsZXZhbnQgdG8gaW50ZXJwcmV0aW5nIHRoZSByZXN1bHQsIGRvIG5vdCBhZmZlY3QgdGhlIGludHJpbnNpYyBiYXNpcyBvZiB0aGUgdGVzdCBwZXJmb3JtZWQuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5lLmcuICZsc3F1bztGYXN0aW5nIGdsdWNvc2UgdGVzdCZyc3F1bzsgaXMgbm90IGRpZmZlcmVudCBmcm9tICZsc3F1bztnbHVjb3NlIHRlc3QmcnNxdW87IGJ1dCB0aGUgc2FtZSB0ZXN0IHBlcmZvcm1lZCBvbiBhIGZhc3RlZCBwYXRpZW50IG9yIHNwZWNpbWVuIChvciBhbHRlcm5hdGl2ZWx5IGEgcmFuZG9tIHNwZWNpbWVuKS48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZSBTTk9NRUQgbW9kZWxsaW5nIHdpdGggdGhlIEhMNyBGSElSIG1vZGVsIHRvZ2V0aGVyIHN0cnVjdHVyZSBhbmQgY29uc3RyYWluIGZpZWxkcyB0byBhIHN0YW5kYXJkIHNwZWNpZmljYXRpb24uIEFzIHRoZSBVVEwgZGV2ZWxvcHMsIHRoZXNlIHByaW5jaXBsZXMgd2lsbCBiZSBzZXQgb3V0IGluIGZvcm1hbCBzcGVjaWZpY2F0aW9ucyBhbmQgZWRpdG9yaWFsIHByaW5jaXBsZXMgZm9yIGNvbnRlbnQuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj48c3Ryb25nPkEgbm90ZSBvbiBwcm9wZXJ0eSBhbmQgc2NhbGUgdHlwZXM8XC9zdHJvbmc+PFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj48c3Ryb25nPlByb3BlcnRpZXM8XC9zdHJvbmc+PFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5UaGVzZSBhcmUgY29kZWQgY29uY2VwdHMgaW4gU05PTUVEIGFuZCB0ZXJtaW5nIGZvbGxvd3MgdGhlc2UuIEZvciBxdWFudGl0YXRpdmUgcmVzdWx0cyB3aXRoIG51bWVyaWMgdmFsdWVzLCB0aGUgY29tbW9uZXN0IG9mIHRoZXNlIGFyZTo8XC9wPlxuXG48dWw+XG5cdDxsaT48c3Ryb25nPlN1YnN0YW5jZSBjb25jZW50cmF0aW9uPFwvc3Ryb25nPiAoY29tbW9ubHkgcmVmZXJyZWQgdG8gaW4gdGhlIFVLIGFzIG1vbGFyIGNvbmNlbnRyYXRpb24pLiZuYnNwOyBCb3RoIHdvcmRpbmdzIGFyZSBhdmFpbGFibGUgaW4gVVRMIGNvbnRlbnQuIGUuZy4gJmxzcXVvO21tb2xcL0wmcnNxdW87PFwvbGk+XG5cdDxsaT48c3Ryb25nPk1hc3MgY29uY2VudHJhdGlvbjxcL3N0cm9uZz4gZS5nLiAmbHNxdW87bWdcL0wmcnNxdW87PFwvbGk+XG5cdDxsaT48c3Ryb25nPkFyYml0cmFyeSBjb25jZW50cmF0aW9uPFwvc3Ryb25nPiAtIHVzZWQgd2hlcmUgdGhlIHVuaXRzIGFyZSBVIG9yIFVJIGZvciBpbnRlcm5hdGlvbmFsIHVuaXRzPFwvbGk+XG5cdDxsaT48c3Ryb25nPkVuenltZSBhY3Rpdml0eTxcL3N0cm9uZz4gZm9yIGNhdGFseXRpYyBhY3Rpdml0eSBtZWFzdXJlbWVudHMgaW4gZW56eW1lczxcL2xpPlxuPFwvdWw+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+PHN0cm9uZz5TY2FsZSBUeXBlczxcL3N0cm9uZz48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZSBwcm92aXNpb25hbCBkcmFmdCBsaXN0IG9mIHNjYWxlIHR5cGVzIHRoYXQgZGVmaW5lIHRoZSBleHBlY3RlZCB2YWx1ZSB0aGUgVVRMIGNvZGUgZGVzY3JpYmVzIGFyZTo8XC9wPlxuXG48dWw+XG5cdDxsaT48c3Ryb25nPlF1YW50aXRhdGl2ZSAobnVtZXJpYyk8XC9zdHJvbmc+PFwvbGk+XG5cdDxsaT48c3Ryb25nPk9yZGluYWw8XC9zdHJvbmc+PFwvbGk+XG5cdDxsaT48c3Ryb25nPk5vbWluYWw8XC9zdHJvbmc+PFwvbGk+XG5cdDxsaT48c3Ryb25nPlJhdGlvIChkaW1lbnNpb25sZXNzKTxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+VGV4dCB2YWx1ZTxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+TmFycmF0aXZlIHRleHQ8XC9zdHJvbmc+PFwvbGk+XG48XC91bD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5TaW1pbGFyaXRpZXMgd2l0aCB0aGUgY3VycmVudCBQQkNMICZsc3F1bztmbGFncyZyc3F1bzsgd2lsbCBiZSBub3RlZC48XC9wPlxuIn0sIm9wdGlvbnMiOnt9fV0sImNvbnRlbnRzIjp7IlRleHQiOiI8IS0tIFRleHQgRWxlbWVudCAtLT5cblxuPGRpdiBjbGFzcz1cInRleHQgZXhwYW5kYWJsZVwiPlxuICA8cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoaXMgZGVzY3JpYmVzIHRoZSBzdGFydGVyIHNldCBvZiAzNTAgY29kZWQgdGVybXMgbGlzdGVkIGluIHRoZSBVVEwgcHVibGlzaGVkIGJ5IE5IUyBEaWdpdGFsIGluIDIwMThcLzE5LjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+TGFib3JhdG9yeSBwcm9jZXNzZXMgY2FuIGJlIHVzZWZ1bGx5IGlmIGNydWRlbHkgY2hhcmFjdGVyaXNlZCBhcyBjb25zaXN0aW5nIG9mICZsc3F1bztyZXF1ZXN0YWJsZXMmcnNxdW87LCAmbHNxdW87cGVyZm9ybWFibGVzJnJzcXVvOyBhbmQgJmxzcXVvO3JlcG9ydGFibGVzJnJzcXVvOyBpLmUuIHJlcXVlc3RzIGZvciBhbmFseXNpcywgdGhlIGFjdGl2aXRpZXMgZG9uZSBpbiB0aGUgbGFiIGluIHJlc3BvbnNlIGFuZCB0aGUgcmVzdWx0cyBvZiB0aGF0IGFjdGl2aXR5IHRvIGJlIHRyYW5zbWl0dGVkIGJhY2sgdG8gdGhlIHJlcXVlc3Rlci4gVGhlIFNOT01FRCBjb2RpbmcgcmVxdWlyZW1lbnRzIGFyZSBkaWZmZXJlbnQgaW4gZWFjaCBvZiB0aGVzZSwgYnV0IG11Y2ggaXMgY29kYWJsZSBieSBicmVha2luZyBpdCBkb3duIGluIHRoaXMgd2F5IGFuZCBhcHBseWluZyBTTk9NRUQgc2VtYW50aWNzIHRvIGJ1c2luZXNzIGZsb3dzLiZuYnNwOyBUaGUgZmlyc3QgcHJpb3JpdHkgaXMgdG8gY3JlYXRlIGEgcmVzdWx0cyBsaXN0IHRoYXQgaXMgdXNhYmxlIGJ5IGFsbCBzZWN0b3JzIG9mIHRoZSBzeXN0ZW0gaW5jbHVkaW5nIGEgbWlncmF0aW9uIGZyb20gb2xkICZsc3F1bztSZWFkIGNvZGUmcnNxdW87IGJhc2VkIFBCQ0wgdG8gU05PTUVEIGNvZGluZyBmb3IgUHJpbWFyeSBDYXJlIHJlcG9ydGluZy4gVGhlcmUgaXMgYWxzbyBwb3RlbnRpYWwgZm9yIHNpbmdsZSByZXN1bHRzIGNvZGVzIHRvIGJlIHVzZWQgaW4gcmVxdWVzdHMgKGFzIGEgYmxhbmsgJmxzcXVvO3RlbGwgbWUgdGhlIGFuc3dlciB0byB0aGlzIHF1ZXN0aW9uJnJzcXVvOyBmb3JtYXQpIGFuZCBhbHNvIGZvciBsYWItdG8tbGFiIGNvbW11bmljYXRpb25zIHdoZW4gY29tYmluZWQgd2l0aCBhIGNvbXBsZW1lbnRhcnkgbGlzdCBvZiBiYXR0ZXJ5XC9wcm9maWxlXC9wYW5lbCB0eXBlcy48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZSBjdXJyZW50IGxpc3Qgb2YgMzUwIFNOT01FRCBjb2RlZCB0ZXJtcyBwdWJsaXNoZWQgaGVyZSBpcyBhIHByb3Bvc2VkIGJhc2lzIG9mIHRoZSBVVEwsIGZvY3VzZWQgaW5pdGlhbGx5IG9uICZsc3F1bztibG9vZCBzY2llbmNlcyBjb250ZW50IChpLmUuIHByaW5jaXBhbGx5IGNoZW1pY2FsIHBhdGhvbG9neSBhbmQgaGFlbWF0b2xvZ3kgd2l0aCBhIHNtYWxsIHNhbXBsZSBvZiB2aXJvbG9neSBhbmQgaW1tdW5vbG9neSBhbmQgb3RoZXIgZG9tYWlucykgdGhhdCBpcyBldmVudHVhbGx5IGV4cGVjdGVkIHRvIGNvbnRhaW4gcGVyaGFwcyA1MDAwIGNvZGVzIG9yIG1vcmUuJm5ic3A7IEl0IGlzIGEgc3RhcnRlciBzZXQgZGVyaXZlZCBmcm9tIGEgY29tYmluYXRpb24gb2Ygc29tZSAmbHNxdW87dG9wIDEwMCZyc3F1bzsgYmxvb2Qgc2NpZW5jZXMgdGVzdHMgYW5kIGV4YW1wbGUgc3BlY2lhbGlzdCByZXN1bHQgcmVxdWlyZW1lbnRzIGF0IGEgbW9yZSBncmFudWxhciBsZXZlbCAoZS5nLiBQVEgpLiZuYnNwOyBUaGUgYWltIGluIGdldHRpbmcgYm90aCBnZW5lcmFsaXN0IGFuZCBzcGVjaWFsaXN0IGRpbWVuc2lvbnMgY292ZXJlZCBpcyB0byBwcm92aWRlIGEgbGlzdCBmb3Igb3BlbiBjb25zdWx0YXRpb24gdGhhdCBjYW4gc2hvdyBob3cgaXQgd291bGQgd29yayBpbiBib3RoIGNvbnRleHRzLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+QXMgZGVyaXZlZCBmcm9tICZsc3F1bzt0b3AgMTAwJnJzcXVvOyBsaXN0cyBpdCBpbmV2aXRhYmx5IG1pc3NlcyBzb21lIHNlY3Rpb25zIGNvdmVyZWQgYnkgcmVwb3J0aW5nLiZuYnNwOyBGb3IgZXhhbXBsZSwgYWxsZXJnZW4gcmVwb3J0cyBhcmUgZW50aXJlbHkgbWlzc2luZyBhdCB0aGlzIHN0YWdlLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+VGhlcmUgaXMgc29tZSB2aXJvbG9neSBhbmQgdmlyYWwgaW1tdW5vbG9neSBjb250ZW50LiZuYnNwOyBUaGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiB2aXJ1c2VzIGlzIHNldCBvdXQgaGVyZSBpbiBjb2RlZCByZXN1bHQgZm9ybSBhbG9uZ3NpZGUgYSBzYW1wbGUgb2YgdmlyYWwgbG9hZCBhbmQgdGl0cmUgY29uY2VwdHMgZm9yIGNvbnN1bHRhdGlvbi4gVGhlIFVUTCBzbyBmYXIgZG9lcyBub3QgYXR0ZW1wdCB0byByZWd1bGFyaXNlIGFsbCB0ZXN0IHJlcG9ydGluZyBvbiB2aXJ1c2VzLiZuYnNwOyBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gQm9vbGVhbiBvciB0aHJlc2hvbGQgcHJlc2VuY2UgdGVzdHMgYW5kIHRoZSBxdWFudGl0YXRpdmUgbWVhc3VyZW1lbnRzIGRvbmUgYW5kIHJlcG9ydGVkIHVwb24gYXMgcGFydCBvZiBzcGVjaWZpYyBpbmRpY2F0aW9ucyBvciBpbiBzY3JlZW5zIHJlcXVpcmVzIGRldGFpbGVkIHdvcmsgYW5kIHdlIHdvdWxkIHdlbGNvbWUgdGhlIGlucHV0IG9mIGRvbWFpbiBleHBlcnRzIHRvIGJ1aWxkIGEgc3RhbmRhcmRpc2VkIHJlcG9ydGluZyBtb2RlbCAod2hpbGUgYWxsb3dpbmcgZm9yIHZhcmlhdGlvbiBhcyBuZWVkZWQpIGJlZm9yZSB3ZSBwcm9jZWVkIGZ1cnRoZXIuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5Gb3IgdGhvc2UgZmFtaWxpYXIgd2l0aCBSZWFkIGFuZCBTTk9NRUQgY29kaW5nLCB0aGUgU05PTUVEIHRlcm1zIHdpbGwgc2VlbSBtb3JlIHNwZWNpZmljIHRoYW4gdGhvc2UgaW4gdGhlIFBCQ0wgb3IgZWxzZXdoZXJlIChhbmQgdGhleSB3aWxsIHVsdGltYXRlbHkgc3VjY2VlZCB0aGVtKSBidXQgdGhpcyBjb25mb3JtcyB0byBhIHdlbGwtZGVmaW5lZCBTTk9NRUQgc3RydWN0dXJlIHdpdGggdGhlIGtleSBhaW0gb2YgdGlnaHRseSBkZWZpbmluZyBhbmQgY29uc3RyYWluaW5nIHdoYXQgcmVzdWx0PGVtPiB2YWx1ZTxcL2VtPiBjYW4gYmUgYXBwZW5kZWQgdG8gYSByZXN1bHQgPGVtPmNvZGU8XC9lbT4sIGluIHdoYXQgZm9ybWF0IGl0IGlzIGFsbG93ZWQgdG8gYXBwZWFyIGFuZCB3aGF0IDxlbT51bml0IG9mIG1lYXN1cmVtZW50PFwvZW0+IChpZiBhbnkpIGl0IGlzIHBlcm1pdHRlZCB0byBoYXZlIGFzc2lnbmVkLiZuYnNwOyBBIG1ham9yIGRpZmZpY3VsdHkgaW4gdGhlIHBhc3QgaGFzIGJlZW4gdGhlIHBvdGVudGlhbCBmb3IgdmFyaWF0aW9uIGluIHRoZXNlIGNvbnN0cmFpbnRzIGFjcm9zcyBtYW55IHN5c3RlbXMgbWFraW5nIHJlc3VsdHMgY29tcGFyaXNvbiBkaWZmaWN1bHQgYW5kIGNhdXNpbmcgdGhlIHNoYXJpbmcgb2YgcmVzdWx0cyBvdXRzaWRlIHZlcnkgdGlnaHRseSBkZWZpbmVkIHBhdGh3YXlzIHRvIGJlIGRvbmUgb25seSB3aXRoIGdyZWF0IGNhdXRpb24gaW4gY2FzZSBvZiBtaXNpbnRlcnByZXRhdGlvbi48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkFsb25nc2lkZSB0aGUgc3RhcnRlciBVVEwgc3ByZWFkc2hlZXQgaXMgYSBzaW1wbGUgbW9kZWwgZGlhZ3JhbSBvZiBob3cgU05PTUVEIGNvbnN0cnVjdHMgYSBkZXRhaWxlZCBtYWNoaW5lLXJlYWRhYmxlIGRlZmluaXRpb24gb2YgdGhlIHJlc3VsdCBkZXNjcmlwdG9yIHNvIHRoYXQgdGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgSEw3IG1lc3NhZ2UgcHJvZmlsZSBjb25zdHJhaW50cy4mbmJzcDsgRm9yIHJldmlldyBwdXJwb3NlcywgaXQgaXMgdXNlZnVsIHRvIHVuZGVyc3RhbmQgdGhlIGJhc2ljcyBvZiB0aGlzLiZuYnNwOzxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+PHN0cm9uZz5TTk9NRUQgQ29kaW5nIEJhc2ljcyBpbiBMYWJvcmF0b3J5IE1lZGljaW5lPFwvc3Ryb25nPjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+UmVzdWx0IGNvZGVzIHRoYXQgdGFrZSBhIHZhbHVlIGFyZSBjb2RlZCBhcyBhbiAmbHNxdW87b2JzZXJ2YWJsZSBlbnRpdHkmcnNxdW87IHR5cGUgd2hpY2ggbWVhbnMgdGhhdCBhZnRlciB0aGUgd29yZGluZyBvZiB0aGUgY29kZSB0aGVyZSBpcyBhIG5vdGlvbmFsICZsc3F1bztjb2xvbiZyc3F1bzsgdGhhdCBwcm9tcHRzIGEgdmFsdWUgKG51bWVyaWMgb3IgdGV4dCBldGMpIHRvIGJlIGFkZGVkLiZuYnNwOyBpLmUuIGl0IGlzIG5vdCBhIGZyZWUtc3RhbmRpbmcgZGVzY3JpcHRpb24gb2Ygc29tZXRoaW5nIHdpdGhvdXQgdGhlIHZhbHVlIHBhcnQuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5lLmcuIEdsdWNvc2Ugc3Vic3RhbmNlIFtBS0EgbW9sYXJdIGNvbmNlbnRyYXRpb24gaW4gc2VydW06IFtpbnNlcnQgdmFsdWUgKyByZXBvcnQgdW5pdCk8XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkFuIGV4YW1wbGUgb2YgYSBmcmVlIHN0YW5kaW5nICZsc3F1bztmaW5kaW5nJnJzcXVvOyBjb2RlIHdvdWxkIGJlICZsc3F1bztoeXBlcmdseWNhZW1pYSZyc3F1bzsgd2hpY2ggY291bGQgYmUgZXF1aXZhbGVudCB0byB0aGUgJmxzcXVvO29ic2VydmFibGUgZW50aXR5IGNvZGUgKyB2YWx1ZSArIFVvTSZyc3F1bzsgaW5mb3JtZWQgYnkgcmVmZXJlbmNlIHJhbmdlLiZuYnNwOyBCeSBpdHNlbGYgd2l0aG91dCBhIHZhbHVlIGFkZGVkLCB0aGUgb2JzZXJ2YWJsZSBlbnRpdHkgY29kZSBpcyBjbG9zZSB0byBvcGVyYXRpbmcgYXMgYSBwcm9jZWR1cmVcL2FjdGl2aXR5IGNvZGUsIGhlbmNlIGl0cyBwb3RlbnRpYWwgZm9yIHVzZSBpbiBhIHJlcXVlc3QuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5SZXN1bHQgdGVybXMgY29uZm9ybSB0byB0aGUgZm9sbG93aW5nIGJhc2ljIG1vZGVsIHRyaWFkOjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+cHJvcGVydHkgdG8gYmUgbWVhc3VyZWQgKyBzdWJzdGFuY2VcL2VudGl0eSB0byB3aGljaCB0aGUgcHJvcGVydHkgYXBwbGllcyArIHN5c3RlbSBpbiB3aGljaCBzdWJzdGFuY2VcL2VudGl0eSBpcyBtZWFzdXJlZDxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+aW4gc2hvcnQ6ICZsc3F1bztwcm9wZXJ0eSArIGNvbXBvbmVudCArIHN5c3RlbSZyc3F1bzsuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5JbiB0aGUgYWJvdmUgZXhhbXBsZSB0aGUgbW9kZWwgaXM6PFwvcD5cblxuPHVsPlxuXHQ8bGk+UHJvcGVydHkgPSBzdWJzdGFuY2UgKG1vbGFyKSBjb25jZW50cmF0aW9uPFwvbGk+XG5cdDxsaT5Db21wb25lbnQgPSBnbHVjb3NlPFwvbGk+XG5cdDxsaT5TeXN0ZW0mbmJzcDs9IHNlcnVtIChzcGVjaW1lbik8XC9saT5cbjxcL3VsPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkFsbCByZXN1bHRzIChiYXIgYSBmZXcgZXhjZXB0aW9ucyBzdWNoIGFzICZsc3F1bztBY3V0ZSBraWRuZXkgaW5qdXJ5IHdhcm5pbmcgc3RhZ2UmcnNxdW87KSB3b3VsZCBiZSBleHBlY3RlZCB0byBoYXZlIGEgcHJvcGVydHkgYW5kIG1vc3Qgd2lsbCBoYXZlIGEgc3lzdGVtIChzcGVjaW1lbiBvciBzaXRlKSBhbmQgYSBjb21wb25lbnQgKGNvYWd1bGF0aW9uIHRpbWVzIG1pZ2h0IG5vdCkuJm5ic3A7IFByb3BlcnR5LCBjb21wb25lbnQgYW5kIHN5c3RlbSBhcmUga25vd24gaW4gU05PTUVEIGFzICZsc3F1bzs8ZW0+YXR0cmlidXRlczxcL2VtPi48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkF0IGEgc2Vjb25kYXJ5IGxldmVsIGEgZnVydGhlciBzZXQgb2YgYXR0cmlidXRlcyBjb21lIGludG8gcGxheS4mbmJzcDsgVGhlIHNsaWRlIGFjY29tcGFueWluZyB0aGUgVVRMIGRlc2NyaWJlIGFsbCBvZiB0aGVzZS48XC9wPlxuXG48dWw+XG5cdDxsaT5TY2FsZSBUeXBlIChkZXNjcmliaW5nIHdoYXQgdmFsdWUgdHlwZSBjYW4gYmUgYXBwZW5kZWQpLDxcL2xpPlxuXHQ8bGk+VGVjaG5pcXVlIChtZXRob2QgdXNlZCBieSBsYWIgdG8gb2J0YWluIHJlc3VsdCk8XC9saT5cblx0PGxpPlJlbGF0aXZlIFRvIChjYXB0dXJlcyBhIHNlY29uZCBjb21wb25lbnQgd2hlcmUgdGhpcyBpcyB3aGF0IHRoZSBmaXJzdCBjb21wb25lbnQgaXMmaGVsbGlwO3JlbGF0aXZlIHRvLCBlLmcuIHJhdGlvcyBvciBjZWxsIHBvcHVsYXRpb25zKS48XC9saT5cbjxcL3VsPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZXNlIGFyZSBub3QgZGVmaW5lZCBpbiBhbGwgY29udGVudDsgb25seSB3aGVyZSBpdCBpcyB1c2VmdWwgdG8gZG8gc28uPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5JdCBpcyBhbHNvIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHdoYXQgaXMgPGVtPm5vdDxcL2VtPiBpbiB0aGUgVVRMLiZuYnNwOyBUaGUgc2xpZGUgc2hvd3MgdGhhdCBjZXJ0YWluIHBhcnRzIG9mIHRoZSBkYXRhIGFyZSBoZWxkIHdpdGhpbiB0aGUgd2lkZXIgaW5mb3JtYXRpb24gc3RydWN0dXJlIHN1Y2ggYXMgdGhlIEhMNyBtZXNzYWdlOyBub3RhYmx5IChiZXNpZGVzIHRoZSB2YWx1ZSBpdHNlbGYpIHRoZSB1bml0IG9mIG1lYXN1cmVtZW50LCB0aGUgcmVmZXJlbmNlIHJhbmdlIGZvciB0aGUgcmVzdWx0IGFuZCBhbnkgYWxlcnRzIG9yIG90aGVyIGRlY2lzaW9uIHN1cHBvcnQgb24gdGhlIGJhY2sgb2YgdGhlIHJlc3VsdC4mbmJzcDsgSW4gYWRkaXRpb24sIHRlc3QgdGltaW5ncyBhbmQgcHJlY29uZGl0aW9ucyBzdWNoIGFzIHNwZWNpbWVuIHN0YXR1cyBvciBwYXRpZW50IHN0YXR1cyB0aGF0LCB3aGlsZSByZWxldmFudCB0byBpbnRlcnByZXRpbmcgdGhlIHJlc3VsdCwgZG8gbm90IGFmZmVjdCB0aGUgaW50cmluc2ljIGJhc2lzIG9mIHRoZSB0ZXN0IHBlcmZvcm1lZC48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPmUuZy4gJmxzcXVvO0Zhc3RpbmcgZ2x1Y29zZSB0ZXN0JnJzcXVvOyBpcyBub3QgZGlmZmVyZW50IGZyb20gJmxzcXVvO2dsdWNvc2UgdGVzdCZyc3F1bzsgYnV0IHRoZSBzYW1lIHRlc3QgcGVyZm9ybWVkIG9uIGEgZmFzdGVkIHBhdGllbnQgb3Igc3BlY2ltZW4gKG9yIGFsdGVybmF0aXZlbHkgYSByYW5kb20gc3BlY2ltZW4pLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+VGhlIFNOT01FRCBtb2RlbGxpbmcgd2l0aCB0aGUgSEw3IEZISVIgbW9kZWwgdG9nZXRoZXIgc3RydWN0dXJlIGFuZCBjb25zdHJhaW4gZmllbGRzIHRvIGEgc3RhbmRhcmQgc3BlY2lmaWNhdGlvbi4gQXMgdGhlIFVUTCBkZXZlbG9wcywgdGhlc2UgcHJpbmNpcGxlcyB3aWxsIGJlIHNldCBvdXQgaW4gZm9ybWFsIHNwZWNpZmljYXRpb25zIGFuZCBlZGl0b3JpYWwgcHJpbmNpcGxlcyBmb3IgY29udGVudC48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPjxzdHJvbmc+QSBub3RlIG9uIHByb3BlcnR5IGFuZCBzY2FsZSB0eXBlczxcL3N0cm9uZz48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPjxzdHJvbmc+UHJvcGVydGllczxcL3N0cm9uZz48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZXNlIGFyZSBjb2RlZCBjb25jZXB0cyBpbiBTTk9NRUQgYW5kIHRlcm1pbmcgZm9sbG93cyB0aGVzZS4gRm9yIHF1YW50aXRhdGl2ZSByZXN1bHRzIHdpdGggbnVtZXJpYyB2YWx1ZXMsIHRoZSBjb21tb25lc3Qgb2YgdGhlc2UgYXJlOjxcL3A+XG5cbjx1bD5cblx0PGxpPjxzdHJvbmc+U3Vic3RhbmNlIGNvbmNlbnRyYXRpb248XC9zdHJvbmc+IChjb21tb25seSByZWZlcnJlZCB0byBpbiB0aGUgVUsgYXMgbW9sYXIgY29uY2VudHJhdGlvbikuJm5ic3A7IEJvdGggd29yZGluZ3MgYXJlIGF2YWlsYWJsZSBpbiBVVEwgY29udGVudC4gZS5nLiAmbHNxdW87bW1vbFwvTCZyc3F1bzs8XC9saT5cblx0PGxpPjxzdHJvbmc+TWFzcyBjb25jZW50cmF0aW9uPFwvc3Ryb25nPiBlLmcuICZsc3F1bzttZ1wvTCZyc3F1bzs8XC9saT5cblx0PGxpPjxzdHJvbmc+QXJiaXRyYXJ5IGNvbmNlbnRyYXRpb248XC9zdHJvbmc+IC0gdXNlZCB3aGVyZSB0aGUgdW5pdHMgYXJlIFUgb3IgVUkgZm9yIGludGVybmF0aW9uYWwgdW5pdHM8XC9saT5cblx0PGxpPjxzdHJvbmc+RW56eW1lIGFjdGl2aXR5PFwvc3Ryb25nPiBmb3IgY2F0YWx5dGljIGFjdGl2aXR5IG1lYXN1cmVtZW50cyBpbiBlbnp5bWVzPFwvbGk+XG48XC91bD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj48c3Ryb25nPlNjYWxlIFR5cGVzPFwvc3Ryb25nPjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+VGhlIHByb3Zpc2lvbmFsIGRyYWZ0IGxpc3Qgb2Ygc2NhbGUgdHlwZXMgdGhhdCBkZWZpbmUgdGhlIGV4cGVjdGVkIHZhbHVlIHRoZSBVVEwgY29kZSBkZXNjcmliZXMgYXJlOjxcL3A+XG5cbjx1bD5cblx0PGxpPjxzdHJvbmc+UXVhbnRpdGF0aXZlIChudW1lcmljKTxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+T3JkaW5hbDxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+Tm9taW5hbDxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+UmF0aW8gKGRpbWVuc2lvbmxlc3MpPFwvc3Ryb25nPjxcL2xpPlxuXHQ8bGk+PHN0cm9uZz5UZXh0IHZhbHVlPFwvc3Ryb25nPjxcL2xpPlxuXHQ8bGk+PHN0cm9uZz5OYXJyYXRpdmUgdGV4dDxcL3N0cm9uZz48XC9saT5cbjxcL3VsPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlNpbWlsYXJpdGllcyB3aXRoIHRoZSBjdXJyZW50IFBCQ0wgJmxzcXVvO2ZsYWdzJnJzcXVvOyB3aWxsIGJlIG5vdGVkLjxcL3A+XG5cbiAgPGRpdiBjbGFzcz1cImV4cGFuZGFibGVfcGFydFwiPlxuICAgIFxuICA8XC9kaXY+XG4gIFxuPFwvZGl2PiJ9fV0sIm9wdGlvbnMiOnsiY29sdW1uTGF5b3V0Ijp7ImxhYmVsIjoiMSBjb2x1bW4iLCJ2YWx1ZSI6IjFcLzEiLCJjbGFzcyI6IiIsImNvbHMiOjEsIm9wdGlvbkh0bWwiOiI8ZGl2IGNsYXNzPVwiY29sLWluZGljYXRvciBrZF9jb2x1bW5zIFwiPjxkaXYgY2xhc3M9XCJrZF9jb2xcIj48XC9kaXY+PGRpdiBjbGFzcz1cImtkX2NvbFwiPjxcL2Rpdj48ZGl2IGNsYXNzPVwia2RfY29sXCI+PFwvZGl2PjxkaXYgY2xhc3M9XCJrZF9jb2xcIj48XC9kaXY+PGRpdiBjbGFzcz1cImtkX2NvbFwiPjxcL2Rpdj48XC9kaXY+In19LCJjb250ZW50cyI6eyJUZXh0IjoiPGRpdiBjbGFzcz1cImtkX2NvbFwiPlxuICA8IS0tIFRleHQgRWxlbWVudCAtLT5cblxuPGRpdiBjbGFzcz1cInRleHQgZXhwYW5kYWJsZVwiPlxuICA8cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoaXMgZGVzY3JpYmVzIHRoZSBzdGFydGVyIHNldCBvZiAzNTAgY29kZWQgdGVybXMgbGlzdGVkIGluIHRoZSBVVEwgcHVibGlzaGVkIGJ5IE5IUyBEaWdpdGFsIGluIDIwMThcLzE5LjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+TGFib3JhdG9yeSBwcm9jZXNzZXMgY2FuIGJlIHVzZWZ1bGx5IGlmIGNydWRlbHkgY2hhcmFjdGVyaXNlZCBhcyBjb25zaXN0aW5nIG9mICZsc3F1bztyZXF1ZXN0YWJsZXMmcnNxdW87LCAmbHNxdW87cGVyZm9ybWFibGVzJnJzcXVvOyBhbmQgJmxzcXVvO3JlcG9ydGFibGVzJnJzcXVvOyBpLmUuIHJlcXVlc3RzIGZvciBhbmFseXNpcywgdGhlIGFjdGl2aXRpZXMgZG9uZSBpbiB0aGUgbGFiIGluIHJlc3BvbnNlIGFuZCB0aGUgcmVzdWx0cyBvZiB0aGF0IGFjdGl2aXR5IHRvIGJlIHRyYW5zbWl0dGVkIGJhY2sgdG8gdGhlIHJlcXVlc3Rlci4gVGhlIFNOT01FRCBjb2RpbmcgcmVxdWlyZW1lbnRzIGFyZSBkaWZmZXJlbnQgaW4gZWFjaCBvZiB0aGVzZSwgYnV0IG11Y2ggaXMgY29kYWJsZSBieSBicmVha2luZyBpdCBkb3duIGluIHRoaXMgd2F5IGFuZCBhcHBseWluZyBTTk9NRUQgc2VtYW50aWNzIHRvIGJ1c2luZXNzIGZsb3dzLiZuYnNwOyBUaGUgZmlyc3QgcHJpb3JpdHkgaXMgdG8gY3JlYXRlIGEgcmVzdWx0cyBsaXN0IHRoYXQgaXMgdXNhYmxlIGJ5IGFsbCBzZWN0b3JzIG9mIHRoZSBzeXN0ZW0gaW5jbHVkaW5nIGEgbWlncmF0aW9uIGZyb20gb2xkICZsc3F1bztSZWFkIGNvZGUmcnNxdW87IGJhc2VkIFBCQ0wgdG8gU05PTUVEIGNvZGluZyBmb3IgUHJpbWFyeSBDYXJlIHJlcG9ydGluZy4gVGhlcmUgaXMgYWxzbyBwb3RlbnRpYWwgZm9yIHNpbmdsZSByZXN1bHRzIGNvZGVzIHRvIGJlIHVzZWQgaW4gcmVxdWVzdHMgKGFzIGEgYmxhbmsgJmxzcXVvO3RlbGwgbWUgdGhlIGFuc3dlciB0byB0aGlzIHF1ZXN0aW9uJnJzcXVvOyBmb3JtYXQpIGFuZCBhbHNvIGZvciBsYWItdG8tbGFiIGNvbW11bmljYXRpb25zIHdoZW4gY29tYmluZWQgd2l0aCBhIGNvbXBsZW1lbnRhcnkgbGlzdCBvZiBiYXR0ZXJ5XC9wcm9maWxlXC9wYW5lbCB0eXBlcy48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZSBjdXJyZW50IGxpc3Qgb2YgMzUwIFNOT01FRCBjb2RlZCB0ZXJtcyBwdWJsaXNoZWQgaGVyZSBpcyBhIHByb3Bvc2VkIGJhc2lzIG9mIHRoZSBVVEwsIGZvY3VzZWQgaW5pdGlhbGx5IG9uICZsc3F1bztibG9vZCBzY2llbmNlcyBjb250ZW50IChpLmUuIHByaW5jaXBhbGx5IGNoZW1pY2FsIHBhdGhvbG9neSBhbmQgaGFlbWF0b2xvZ3kgd2l0aCBhIHNtYWxsIHNhbXBsZSBvZiB2aXJvbG9neSBhbmQgaW1tdW5vbG9neSBhbmQgb3RoZXIgZG9tYWlucykgdGhhdCBpcyBldmVudHVhbGx5IGV4cGVjdGVkIHRvIGNvbnRhaW4gcGVyaGFwcyA1MDAwIGNvZGVzIG9yIG1vcmUuJm5ic3A7IEl0IGlzIGEgc3RhcnRlciBzZXQgZGVyaXZlZCBmcm9tIGEgY29tYmluYXRpb24gb2Ygc29tZSAmbHNxdW87dG9wIDEwMCZyc3F1bzsgYmxvb2Qgc2NpZW5jZXMgdGVzdHMgYW5kIGV4YW1wbGUgc3BlY2lhbGlzdCByZXN1bHQgcmVxdWlyZW1lbnRzIGF0IGEgbW9yZSBncmFudWxhciBsZXZlbCAoZS5nLiBQVEgpLiZuYnNwOyBUaGUgYWltIGluIGdldHRpbmcgYm90aCBnZW5lcmFsaXN0IGFuZCBzcGVjaWFsaXN0IGRpbWVuc2lvbnMgY292ZXJlZCBpcyB0byBwcm92aWRlIGEgbGlzdCBmb3Igb3BlbiBjb25zdWx0YXRpb24gdGhhdCBjYW4gc2hvdyBob3cgaXQgd291bGQgd29yayBpbiBib3RoIGNvbnRleHRzLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+QXMgZGVyaXZlZCBmcm9tICZsc3F1bzt0b3AgMTAwJnJzcXVvOyBsaXN0cyBpdCBpbmV2aXRhYmx5IG1pc3NlcyBzb21lIHNlY3Rpb25zIGNvdmVyZWQgYnkgcmVwb3J0aW5nLiZuYnNwOyBGb3IgZXhhbXBsZSwgYWxsZXJnZW4gcmVwb3J0cyBhcmUgZW50aXJlbHkgbWlzc2luZyBhdCB0aGlzIHN0YWdlLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+VGhlcmUgaXMgc29tZSB2aXJvbG9neSBhbmQgdmlyYWwgaW1tdW5vbG9neSBjb250ZW50LiZuYnNwOyBUaGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiB2aXJ1c2VzIGlzIHNldCBvdXQgaGVyZSBpbiBjb2RlZCByZXN1bHQgZm9ybSBhbG9uZ3NpZGUgYSBzYW1wbGUgb2YgdmlyYWwgbG9hZCBhbmQgdGl0cmUgY29uY2VwdHMgZm9yIGNvbnN1bHRhdGlvbi4gVGhlIFVUTCBzbyBmYXIgZG9lcyBub3QgYXR0ZW1wdCB0byByZWd1bGFyaXNlIGFsbCB0ZXN0IHJlcG9ydGluZyBvbiB2aXJ1c2VzLiZuYnNwOyBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gQm9vbGVhbiBvciB0aHJlc2hvbGQgcHJlc2VuY2UgdGVzdHMgYW5kIHRoZSBxdWFudGl0YXRpdmUgbWVhc3VyZW1lbnRzIGRvbmUgYW5kIHJlcG9ydGVkIHVwb24gYXMgcGFydCBvZiBzcGVjaWZpYyBpbmRpY2F0aW9ucyBvciBpbiBzY3JlZW5zIHJlcXVpcmVzIGRldGFpbGVkIHdvcmsgYW5kIHdlIHdvdWxkIHdlbGNvbWUgdGhlIGlucHV0IG9mIGRvbWFpbiBleHBlcnRzIHRvIGJ1aWxkIGEgc3RhbmRhcmRpc2VkIHJlcG9ydGluZyBtb2RlbCAod2hpbGUgYWxsb3dpbmcgZm9yIHZhcmlhdGlvbiBhcyBuZWVkZWQpIGJlZm9yZSB3ZSBwcm9jZWVkIGZ1cnRoZXIuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5Gb3IgdGhvc2UgZmFtaWxpYXIgd2l0aCBSZWFkIGFuZCBTTk9NRUQgY29kaW5nLCB0aGUgU05PTUVEIHRlcm1zIHdpbGwgc2VlbSBtb3JlIHNwZWNpZmljIHRoYW4gdGhvc2UgaW4gdGhlIFBCQ0wgb3IgZWxzZXdoZXJlIChhbmQgdGhleSB3aWxsIHVsdGltYXRlbHkgc3VjY2VlZCB0aGVtKSBidXQgdGhpcyBjb25mb3JtcyB0byBhIHdlbGwtZGVmaW5lZCBTTk9NRUQgc3RydWN0dXJlIHdpdGggdGhlIGtleSBhaW0gb2YgdGlnaHRseSBkZWZpbmluZyBhbmQgY29uc3RyYWluaW5nIHdoYXQgcmVzdWx0PGVtPiB2YWx1ZTxcL2VtPiBjYW4gYmUgYXBwZW5kZWQgdG8gYSByZXN1bHQgPGVtPmNvZGU8XC9lbT4sIGluIHdoYXQgZm9ybWF0IGl0IGlzIGFsbG93ZWQgdG8gYXBwZWFyIGFuZCB3aGF0IDxlbT51bml0IG9mIG1lYXN1cmVtZW50PFwvZW0+IChpZiBhbnkpIGl0IGlzIHBlcm1pdHRlZCB0byBoYXZlIGFzc2lnbmVkLiZuYnNwOyBBIG1ham9yIGRpZmZpY3VsdHkgaW4gdGhlIHBhc3QgaGFzIGJlZW4gdGhlIHBvdGVudGlhbCBmb3IgdmFyaWF0aW9uIGluIHRoZXNlIGNvbnN0cmFpbnRzIGFjcm9zcyBtYW55IHN5c3RlbXMgbWFraW5nIHJlc3VsdHMgY29tcGFyaXNvbiBkaWZmaWN1bHQgYW5kIGNhdXNpbmcgdGhlIHNoYXJpbmcgb2YgcmVzdWx0cyBvdXRzaWRlIHZlcnkgdGlnaHRseSBkZWZpbmVkIHBhdGh3YXlzIHRvIGJlIGRvbmUgb25seSB3aXRoIGdyZWF0IGNhdXRpb24gaW4gY2FzZSBvZiBtaXNpbnRlcnByZXRhdGlvbi48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkFsb25nc2lkZSB0aGUgc3RhcnRlciBVVEwgc3ByZWFkc2hlZXQgaXMgYSBzaW1wbGUgbW9kZWwgZGlhZ3JhbSBvZiBob3cgU05PTUVEIGNvbnN0cnVjdHMgYSBkZXRhaWxlZCBtYWNoaW5lLXJlYWRhYmxlIGRlZmluaXRpb24gb2YgdGhlIHJlc3VsdCBkZXNjcmlwdG9yIHNvIHRoYXQgdGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgSEw3IG1lc3NhZ2UgcHJvZmlsZSBjb25zdHJhaW50cy4mbmJzcDsgRm9yIHJldmlldyBwdXJwb3NlcywgaXQgaXMgdXNlZnVsIHRvIHVuZGVyc3RhbmQgdGhlIGJhc2ljcyBvZiB0aGlzLiZuYnNwOzxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+PHN0cm9uZz5TTk9NRUQgQ29kaW5nIEJhc2ljcyBpbiBMYWJvcmF0b3J5IE1lZGljaW5lPFwvc3Ryb25nPjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+UmVzdWx0IGNvZGVzIHRoYXQgdGFrZSBhIHZhbHVlIGFyZSBjb2RlZCBhcyBhbiAmbHNxdW87b2JzZXJ2YWJsZSBlbnRpdHkmcnNxdW87IHR5cGUgd2hpY2ggbWVhbnMgdGhhdCBhZnRlciB0aGUgd29yZGluZyBvZiB0aGUgY29kZSB0aGVyZSBpcyBhIG5vdGlvbmFsICZsc3F1bztjb2xvbiZyc3F1bzsgdGhhdCBwcm9tcHRzIGEgdmFsdWUgKG51bWVyaWMgb3IgdGV4dCBldGMpIHRvIGJlIGFkZGVkLiZuYnNwOyBpLmUuIGl0IGlzIG5vdCBhIGZyZWUtc3RhbmRpbmcgZGVzY3JpcHRpb24gb2Ygc29tZXRoaW5nIHdpdGhvdXQgdGhlIHZhbHVlIHBhcnQuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5lLmcuIEdsdWNvc2Ugc3Vic3RhbmNlIFtBS0EgbW9sYXJdIGNvbmNlbnRyYXRpb24gaW4gc2VydW06IFtpbnNlcnQgdmFsdWUgKyByZXBvcnQgdW5pdCk8XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkFuIGV4YW1wbGUgb2YgYSBmcmVlIHN0YW5kaW5nICZsc3F1bztmaW5kaW5nJnJzcXVvOyBjb2RlIHdvdWxkIGJlICZsc3F1bztoeXBlcmdseWNhZW1pYSZyc3F1bzsgd2hpY2ggY291bGQgYmUgZXF1aXZhbGVudCB0byB0aGUgJmxzcXVvO29ic2VydmFibGUgZW50aXR5IGNvZGUgKyB2YWx1ZSArIFVvTSZyc3F1bzsgaW5mb3JtZWQgYnkgcmVmZXJlbmNlIHJhbmdlLiZuYnNwOyBCeSBpdHNlbGYgd2l0aG91dCBhIHZhbHVlIGFkZGVkLCB0aGUgb2JzZXJ2YWJsZSBlbnRpdHkgY29kZSBpcyBjbG9zZSB0byBvcGVyYXRpbmcgYXMgYSBwcm9jZWR1cmVcL2FjdGl2aXR5IGNvZGUsIGhlbmNlIGl0cyBwb3RlbnRpYWwgZm9yIHVzZSBpbiBhIHJlcXVlc3QuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5SZXN1bHQgdGVybXMgY29uZm9ybSB0byB0aGUgZm9sbG93aW5nIGJhc2ljIG1vZGVsIHRyaWFkOjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+cHJvcGVydHkgdG8gYmUgbWVhc3VyZWQgKyBzdWJzdGFuY2VcL2VudGl0eSB0byB3aGljaCB0aGUgcHJvcGVydHkgYXBwbGllcyArIHN5c3RlbSBpbiB3aGljaCBzdWJzdGFuY2VcL2VudGl0eSBpcyBtZWFzdXJlZDxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+aW4gc2hvcnQ6ICZsc3F1bztwcm9wZXJ0eSArIGNvbXBvbmVudCArIHN5c3RlbSZyc3F1bzsuPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5JbiB0aGUgYWJvdmUgZXhhbXBsZSB0aGUgbW9kZWwgaXM6PFwvcD5cblxuPHVsPlxuXHQ8bGk+UHJvcGVydHkgPSBzdWJzdGFuY2UgKG1vbGFyKSBjb25jZW50cmF0aW9uPFwvbGk+XG5cdDxsaT5Db21wb25lbnQgPSBnbHVjb3NlPFwvbGk+XG5cdDxsaT5TeXN0ZW0mbmJzcDs9IHNlcnVtIChzcGVjaW1lbik8XC9saT5cbjxcL3VsPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkFsbCByZXN1bHRzIChiYXIgYSBmZXcgZXhjZXB0aW9ucyBzdWNoIGFzICZsc3F1bztBY3V0ZSBraWRuZXkgaW5qdXJ5IHdhcm5pbmcgc3RhZ2UmcnNxdW87KSB3b3VsZCBiZSBleHBlY3RlZCB0byBoYXZlIGEgcHJvcGVydHkgYW5kIG1vc3Qgd2lsbCBoYXZlIGEgc3lzdGVtIChzcGVjaW1lbiBvciBzaXRlKSBhbmQgYSBjb21wb25lbnQgKGNvYWd1bGF0aW9uIHRpbWVzIG1pZ2h0IG5vdCkuJm5ic3A7IFByb3BlcnR5LCBjb21wb25lbnQgYW5kIHN5c3RlbSBhcmUga25vd24gaW4gU05PTUVEIGFzICZsc3F1bzs8ZW0+YXR0cmlidXRlczxcL2VtPi48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPkF0IGEgc2Vjb25kYXJ5IGxldmVsIGEgZnVydGhlciBzZXQgb2YgYXR0cmlidXRlcyBjb21lIGludG8gcGxheS4mbmJzcDsgVGhlIHNsaWRlIGFjY29tcGFueWluZyB0aGUgVVRMIGRlc2NyaWJlIGFsbCBvZiB0aGVzZS48XC9wPlxuXG48dWw+XG5cdDxsaT5TY2FsZSBUeXBlIChkZXNjcmliaW5nIHdoYXQgdmFsdWUgdHlwZSBjYW4gYmUgYXBwZW5kZWQpLDxcL2xpPlxuXHQ8bGk+VGVjaG5pcXVlIChtZXRob2QgdXNlZCBieSBsYWIgdG8gb2J0YWluIHJlc3VsdCk8XC9saT5cblx0PGxpPlJlbGF0aXZlIFRvIChjYXB0dXJlcyBhIHNlY29uZCBjb21wb25lbnQgd2hlcmUgdGhpcyBpcyB3aGF0IHRoZSBmaXJzdCBjb21wb25lbnQgaXMmaGVsbGlwO3JlbGF0aXZlIHRvLCBlLmcuIHJhdGlvcyBvciBjZWxsIHBvcHVsYXRpb25zKS48XC9saT5cbjxcL3VsPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZXNlIGFyZSBub3QgZGVmaW5lZCBpbiBhbGwgY29udGVudDsgb25seSB3aGVyZSBpdCBpcyB1c2VmdWwgdG8gZG8gc28uPFwvcD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj5JdCBpcyBhbHNvIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kIHdoYXQgaXMgPGVtPm5vdDxcL2VtPiBpbiB0aGUgVVRMLiZuYnNwOyBUaGUgc2xpZGUgc2hvd3MgdGhhdCBjZXJ0YWluIHBhcnRzIG9mIHRoZSBkYXRhIGFyZSBoZWxkIHdpdGhpbiB0aGUgd2lkZXIgaW5mb3JtYXRpb24gc3RydWN0dXJlIHN1Y2ggYXMgdGhlIEhMNyBtZXNzYWdlOyBub3RhYmx5IChiZXNpZGVzIHRoZSB2YWx1ZSBpdHNlbGYpIHRoZSB1bml0IG9mIG1lYXN1cmVtZW50LCB0aGUgcmVmZXJlbmNlIHJhbmdlIGZvciB0aGUgcmVzdWx0IGFuZCBhbnkgYWxlcnRzIG9yIG90aGVyIGRlY2lzaW9uIHN1cHBvcnQgb24gdGhlIGJhY2sgb2YgdGhlIHJlc3VsdC4mbmJzcDsgSW4gYWRkaXRpb24sIHRlc3QgdGltaW5ncyBhbmQgcHJlY29uZGl0aW9ucyBzdWNoIGFzIHNwZWNpbWVuIHN0YXR1cyBvciBwYXRpZW50IHN0YXR1cyB0aGF0LCB3aGlsZSByZWxldmFudCB0byBpbnRlcnByZXRpbmcgdGhlIHJlc3VsdCwgZG8gbm90IGFmZmVjdCB0aGUgaW50cmluc2ljIGJhc2lzIG9mIHRoZSB0ZXN0IHBlcmZvcm1lZC48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPmUuZy4gJmxzcXVvO0Zhc3RpbmcgZ2x1Y29zZSB0ZXN0JnJzcXVvOyBpcyBub3QgZGlmZmVyZW50IGZyb20gJmxzcXVvO2dsdWNvc2UgdGVzdCZyc3F1bzsgYnV0IHRoZSBzYW1lIHRlc3QgcGVyZm9ybWVkIG9uIGEgZmFzdGVkIHBhdGllbnQgb3Igc3BlY2ltZW4gKG9yIGFsdGVybmF0aXZlbHkgYSByYW5kb20gc3BlY2ltZW4pLjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+VGhlIFNOT01FRCBtb2RlbGxpbmcgd2l0aCB0aGUgSEw3IEZISVIgbW9kZWwgdG9nZXRoZXIgc3RydWN0dXJlIGFuZCBjb25zdHJhaW4gZmllbGRzIHRvIGEgc3RhbmRhcmQgc3BlY2lmaWNhdGlvbi4gQXMgdGhlIFVUTCBkZXZlbG9wcywgdGhlc2UgcHJpbmNpcGxlcyB3aWxsIGJlIHNldCBvdXQgaW4gZm9ybWFsIHNwZWNpZmljYXRpb25zIGFuZCBlZGl0b3JpYWwgcHJpbmNpcGxlcyBmb3IgY29udGVudC48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPjxzdHJvbmc+QSBub3RlIG9uIHByb3BlcnR5IGFuZCBzY2FsZSB0eXBlczxcL3N0cm9uZz48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPjxzdHJvbmc+UHJvcGVydGllczxcL3N0cm9uZz48XC9wPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlRoZXNlIGFyZSBjb2RlZCBjb25jZXB0cyBpbiBTTk9NRUQgYW5kIHRlcm1pbmcgZm9sbG93cyB0aGVzZS4gRm9yIHF1YW50aXRhdGl2ZSByZXN1bHRzIHdpdGggbnVtZXJpYyB2YWx1ZXMsIHRoZSBjb21tb25lc3Qgb2YgdGhlc2UgYXJlOjxcL3A+XG5cbjx1bD5cblx0PGxpPjxzdHJvbmc+U3Vic3RhbmNlIGNvbmNlbnRyYXRpb248XC9zdHJvbmc+IChjb21tb25seSByZWZlcnJlZCB0byBpbiB0aGUgVUsgYXMgbW9sYXIgY29uY2VudHJhdGlvbikuJm5ic3A7IEJvdGggd29yZGluZ3MgYXJlIGF2YWlsYWJsZSBpbiBVVEwgY29udGVudC4gZS5nLiAmbHNxdW87bW1vbFwvTCZyc3F1bzs8XC9saT5cblx0PGxpPjxzdHJvbmc+TWFzcyBjb25jZW50cmF0aW9uPFwvc3Ryb25nPiBlLmcuICZsc3F1bzttZ1wvTCZyc3F1bzs8XC9saT5cblx0PGxpPjxzdHJvbmc+QXJiaXRyYXJ5IGNvbmNlbnRyYXRpb248XC9zdHJvbmc+IC0gdXNlZCB3aGVyZSB0aGUgdW5pdHMgYXJlIFUgb3IgVUkgZm9yIGludGVybmF0aW9uYWwgdW5pdHM8XC9saT5cblx0PGxpPjxzdHJvbmc+RW56eW1lIGFjdGl2aXR5PFwvc3Ryb25nPiBmb3IgY2F0YWx5dGljIGFjdGl2aXR5IG1lYXN1cmVtZW50cyBpbiBlbnp5bWVzPFwvbGk+XG48XC91bD5cblxuPHAgc3R5bGU9XCJtYXJnaW4tbGVmdDowY207IG1hcmdpbi1yaWdodDowY21cIj48c3Ryb25nPlNjYWxlIFR5cGVzPFwvc3Ryb25nPjxcL3A+XG5cbjxwIHN0eWxlPVwibWFyZ2luLWxlZnQ6MGNtOyBtYXJnaW4tcmlnaHQ6MGNtXCI+VGhlIHByb3Zpc2lvbmFsIGRyYWZ0IGxpc3Qgb2Ygc2NhbGUgdHlwZXMgdGhhdCBkZWZpbmUgdGhlIGV4cGVjdGVkIHZhbHVlIHRoZSBVVEwgY29kZSBkZXNjcmliZXMgYXJlOjxcL3A+XG5cbjx1bD5cblx0PGxpPjxzdHJvbmc+UXVhbnRpdGF0aXZlIChudW1lcmljKTxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+T3JkaW5hbDxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+Tm9taW5hbDxcL3N0cm9uZz48XC9saT5cblx0PGxpPjxzdHJvbmc+UmF0aW8gKGRpbWVuc2lvbmxlc3MpPFwvc3Ryb25nPjxcL2xpPlxuXHQ8bGk+PHN0cm9uZz5UZXh0IHZhbHVlPFwvc3Ryb25nPjxcL2xpPlxuXHQ8bGk+PHN0cm9uZz5OYXJyYXRpdmUgdGV4dDxcL3N0cm9uZz48XC9saT5cbjxcL3VsPlxuXG48cCBzdHlsZT1cIm1hcmdpbi1sZWZ0OjBjbTsgbWFyZ2luLXJpZ2h0OjBjbVwiPlNpbWlsYXJpdGllcyB3aXRoIHRoZSBjdXJyZW50IFBCQ0wgJmxzcXVvO2ZsYWdzJnJzcXVvOyB3aWxsIGJlIG5vdGVkLjxcL3A+XG5cbiAgPGRpdiBjbGFzcz1cImV4cGFuZGFibGVfcGFydFwiPlxuICAgIFxuICA8XC9kaXY+XG4gIFxuPFwvZGl2PlxuPFwvZGl2PiJ9fV19%--></div>
This folder is empty.