<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>154944</bug_id>
          
          <creation_ts>2016-03-02 17:32:41 -0800</creation_ts>
          <short_desc>Disallow custom elements inside a window-less documents</short_desc>
          <delta_ts>2016-03-03 16:28:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154907</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1170038</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-02 17:32:41 -0800</bug_when>
    <thetext>I accidentally uploaded and landed my patch for the bug 148850 in the bug 154936,
so here&apos;s a new bug to actually fix the bug 154936 was intended to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170040</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-02 17:37:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/24944875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170123</commentid>
    <comment_count>2</comment_count>
      <attachid>272734</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-02 23:22:18 -0800</bug_when>
    <thetext>Created attachment 272734
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170133</commentid>
    <comment_count>3</comment_count>
      <attachid>272736</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-02 23:53:51 -0800</bug_when>
    <thetext>Created attachment 272736
Fixed debug builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170135</commentid>
    <comment_count>4</comment_count>
      <attachid>272738</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-03 00:06:11 -0800</bug_when>
    <thetext>Created attachment 272738
Updated the bug title</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170152</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-03 01:25:49 -0800</bug_when>
    <thetext>I don&apos;t think the Windows EWS failure is related to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170236</commentid>
    <comment_count>6</comment_count>
      <attachid>272738</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-03 09:30:21 -0800</bug_when>
    <thetext>Comment on attachment 272738
Updated the bug title

View in context: https://bugs.webkit.org/attachment.cgi?id=272738&amp;action=review

&gt; Source/WebCore/bindings/js/JSDocumentCustom.cpp:155
&gt; +        ExceptionCodeWithMessage ec;
&gt; +        ec.code = NOT_SUPPORTED_ERR;
&gt; +        ec.message = &quot;Cannot define a custom element in template content&apos;s document&quot;;
&gt; +        setDOMException(&amp;state, ec);
&gt; +        return jsUndefined();

Isn’t here a helper function that does more of this? If not, we should make one. The helper function should be written so that this code reads more like this:

    return throwNotSupportedException(state, &quot;Cannot define a custom element in template content&apos;s document&quot;);

&gt; Source/WebCore/dom/CustomElementDefinitions.h:51
&gt; +    static Ref&lt;CustomElementDefinitions&gt; create() { return adoptRef(*new CustomElementDefinitions()); }

You can omit those parentheses.

&gt; Source/WebCore/dom/Document.cpp:6359
&gt; +    ASSERT(!m_customElementDefinitions);

Do we also want to assert document.m_customElementDefinitions is non-null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170366</commentid>
    <comment_count>7</comment_count>
      <attachid>272789</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-03 16:17:20 -0800</bug_when>
    <thetext>Created attachment 272789
Address Darin&apos;s comment and updated per recent discussion on Github</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170367</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-03 16:18:08 -0800</bug_when>
    <thetext>We realized that we can&apos;t share the registry with window-less document either so we&apos;re forbidding that as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170384</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-03 16:28:34 -0800</bug_when>
    <thetext>Committed r197528: &lt;http://trac.webkit.org/changeset/197528&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272734</attachid>
            <date>2016-03-02 23:22:18 -0800</date>
            <delta_ts>2016-03-02 23:53:47 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-154944-20160302232203.patch</filename>
            <type>text/plain</type>
            <size>18983</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTAzLTAzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCBIVE1MIHBhcnNlcidzIHN1
cHBvcnQgZm9yIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgdGVtcGxhdGUgZWxlbWVudHMgZm9yIHJl
YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDk0
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ5NDQ4NzU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHZhcmlvdXMgdGVz
dHMgY3VzdG9tIGVsZW1lbnRzIHJlZ2lzdHJ5LgorCisgICAgICAgIFNoYXJlIHRoZSBzYW1lIGN1
c3RvbSBlbGVtZW50cyByZWdpc3RyeSAoQ3VzdG9tRWxlbWVudERlZmluaXRpb25zKSB3aGVuIGNy
ZWF0aW5nIGEgbmV3IGRvY3VtZW50IHZpYQorICAgICAgICBET01JbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudCBhbmQgRE9NSW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50IGFuZCB0
aHJvdyBOb3RTdXBwb3J0ZWRFcnJvcgorICAgICAgICBpbiBkZWZpbmVDdXN0b21FbGVtZW50IHdo
ZW4gaXQncyBjYWxsZWQgdGhlIHNoYXJlZCBpbmVydCBkb2N1bWVudCBvZiB0ZW1wbGF0ZSBlbGVt
ZW50cyBhcyBkaXNjdXNzZWQgb24KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJj
b21wb25lbnRzL2lzc3Vlcy8zNjkKKworICAgICAgICBUZXN0czogZmFzdC9jdXN0b20tZWxlbWVu
dHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdy
aXRlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJz
ZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC5odG1sCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1l
bnQ6OmRlZmluZUN1c3RvbUVsZW1lbnQpOiBUaHJvdyBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRo
ZSBjb250ZXh0IG9iamVjdCdzIGRvY3VtZW50IGlzCisgICAgICAgIHRoZSBvbmUgY3JlYXRlZCBm
b3IgdGVtcGxhdGUgZWxlbWVudCdzIGNvbnRlbnQuCisgICAgICAgICogZG9tL0N1c3RvbUVsZW1l
bnREZWZpbml0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudERlZmluaXRp
b25zKTogTWFkZSB0aGlzIG9iamVjdCBSZWZDb3VudGVkIHNpbmNlIGl0IGNhbiBub3cgYmUgc2hh
cmVkIGFtb25nIG11bHRpcGxlCisgICAgICAgIGRvY3VtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbUVsZW1lbnREZWZpbml0aW9uczo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogZG9t
L0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0
aW9uOjpjcmVhdGVEb2N1bWVudCk6IFNoYXJlIHRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9u
cyB3aXRoIHRoZSBvbGQgZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KTogRGl0dG8uCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbnN1cmVDdXN0b21FbGVtZW50RGVm
aW5pdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNoYXJlQ3VzdG9tRWxlbWVu
dERlZmluaXRpb25XaXRoKTogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hhcmVDdXN0b21FbGVtZW50RGVmaW5pdGlvbldpdGgp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVp
bGRlcik6IFJlcGxhY2VkIGEgRklYTUUgd2l0aCBhbiBhc3NlcnRpb24gbm93IHRoYXQgd2UKKyAg
ICAgICAgZGlzYWxsb3cgaW5zdGFudGlhdGlvbiBvZiBjdXN0b20gZWxlbWVudHMgaW5zaWRlIGEg
dGVtcGxhdGUgZWxlbWVudC4KKwogMjAxNi0wMy0wMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBIVE1MIHBhcnNlciBpbnN0YW50aWF0ZXMgYSBjdXN0b20gZWxl
bWVudCBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50IHdpdGggYSB3cm9uZyBvd25lciBkb2N1bWVu
dApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDE5NzQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDE0IEBAIEpT
VmFsdWUgSlNEb2N1bWVudDo6ZGVmaW5lQ3VzdG9tRWxlbWVudCgKICAgICAgICAgcmV0dXJuIHRo
cm93VHlwZUVycm9yKCZzdGF0ZSwgIlRoZSBzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhIGNvbnN0
cnVjdG9yIik7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSB3cmFwcGVkKCk7CisgICAgaWYg
KGRvY3VtZW50LnRlbXBsYXRlRG9jdW1lbnRIb3N0KCkpIHsKKyAgICAgICAgRXhjZXB0aW9uQ29k
ZVdpdGhNZXNzYWdlIGVjOworICAgICAgICBlYy5jb2RlID0gTk9UX1NVUFBPUlRFRF9FUlI7Cisg
ICAgICAgIGVjLm1lc3NhZ2UgPSAiQ2Fubm90IGRlZmluZSBhIGN1c3RvbSBlbGVtZW50IGluIHRl
bXBsYXRlIGNvbnRlbnQncyBkb2N1bWVudCI7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3Rh
dGUsIGVjKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCiAgICAgc3dp
dGNoIChDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM6OmNoZWNrTmFtZSh0YWdOYW1lKSkgewogICAg
IGNhc2UgQ3VzdG9tRWxlbWVudERlZmluaXRpb25zOjpOYW1lU3RhdHVzOjpWYWxpZDoKICAgICAg
ICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudERlZmluaXRp
b25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnREZWZp
bml0aW9ucy5oCShyZXZpc2lvbiAxOTc0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9t
RWxlbWVudERlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwog
Ci1jbGFzcyBDdXN0b21FbGVtZW50RGVmaW5pdGlvbnMgeworY2xhc3MgQ3VzdG9tRWxlbWVudERl
ZmluaXRpb25zIDogcHVibGljIFJlZkNvdW50ZWQ8Q3VzdG9tRWxlbWVudERlZmluaXRpb25zPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgc3RhdGljIFJlZjxD
dXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q3VzdG9tRWxlbWVudERlZmluaXRpb25zKCkpOyB9CisKICAgICBib29sIGRlZmluZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+JiYpOwog
CiAgICAgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBmaW5kSW50ZXJmYWNlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRh
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmNwcAkocmV2aXNpb24gMTk3NDgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDYgKzIzMiw3IEBAIFJlZlB0cjxY
TUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmMKICAgICBlbHNlCiAgICAgICAgIGRvYyA9
IFhNTERvY3VtZW50OjpjcmVhdGUoMCwgVVJMKCkpOwogCisgICAgZG9jLT5zaGFyZUN1c3RvbUVs
ZW1lbnREZWZpbml0aW9uV2l0aChtX2RvY3VtZW50KTsKICAgICBkb2MtPnNldFNlY3VyaXR5T3Jp
Z2luUG9saWN5KG1fZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7CiAKICAgICBSZWZQ
dHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50OwpAQCAtMzA2LDYgKzMwNyw3IEBAIGJvb2wgRE9NSW1w
bGVtZW50YXRpb246OmlzVGV4dE1JTUVUeXBlKGMKIFJlZjxIVE1MRG9jdW1lbnQ+IERPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAg
ICBhdXRvIGRvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgVVJMKCkpOwor
ICAgIGRvY3VtZW50LT5zaGFyZUN1c3RvbUVsZW1lbnREZWZpbml0aW9uV2l0aChtX2RvY3VtZW50
KTsKICAgICBkb2N1bWVudC0+b3BlbigpOwogICAgIGRvY3VtZW50LT53cml0ZSgiPCFkb2N0eXBl
IGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+Iik7CiAgICAgaWYg
KCF0aXRsZS5pc051bGwoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAxOTc0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MzUwLDkgKzYzNTAsMTUgQEAgdW5zaWduZWQgRG9jdW1lbnQ6OnRvdWNoRXZlbnRI
YW5kbGVyQ291bgogQ3VzdG9tRWxlbWVudERlZmluaXRpb25zJiBEb2N1bWVudDo6ZW5zdXJlQ3Vz
dG9tRWxlbWVudERlZmluaXRpb25zKCkKIHsKICAgICBpZiAoIW1fY3VzdG9tRWxlbWVudERlZmlu
aXRpb25zKQotICAgICAgICBtX2N1c3RvbUVsZW1lbnREZWZpbml0aW9ucyA9IHN0ZDo6bWFrZV91
bmlxdWU8Q3VzdG9tRWxlbWVudERlZmluaXRpb25zPigpOworICAgICAgICBtX2N1c3RvbUVsZW1l
bnREZWZpbml0aW9ucyA9IEN1c3RvbUVsZW1lbnREZWZpbml0aW9uczo6Y3JlYXRlKCk7CiAgICAg
cmV0dXJuICptX2N1c3RvbUVsZW1lbnREZWZpbml0aW9uczsKIH0KKwordm9pZCBEb2N1bWVudDo6
c2hhcmVDdXN0b21FbGVtZW50RGVmaW5pdGlvbldpdGgoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KQoreworICAgIEFTU0VSVCghbV9jdXN0b21FbGVtZW50RGVmaW5pdGlvbnMpOworICAgIG1fY3Vz
dG9tRWxlbWVudERlZmluaXRpb25zID0gZG9jdW1lbnQubV9jdXN0b21FbGVtZW50RGVmaW5pdGlv
bnM7Cit9CiAjZW5kaWYKIAogTGF5b3V0UmVjdCBEb2N1bWVudDo6YWJzb2x1dGVFdmVudEhhbmRs
ZXJCb3VuZHMoYm9vbCYgaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxlbWVudHMpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTk3NDgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMDUsNiArMTIwNSw5IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQogICAgIEN1c3RvbUVsZW1lbnREZWZpbml0aW9ucyog
Y3VzdG9tRWxlbWVudERlZmluaXRpb25zKCkgeyByZXR1cm4gbV9jdXN0b21FbGVtZW50RGVmaW5p
dGlvbnMuZ2V0KCk7IH0KICAgICBDdXN0b21FbGVtZW50RGVmaW5pdGlvbnMmIGVuc3VyZUN1c3Rv
bUVsZW1lbnREZWZpbml0aW9ucygpOworICAgIHZvaWQgc2hhcmVDdXN0b21FbGVtZW50RGVmaW5p
dGlvbldpdGgoY29uc3QgRG9jdW1lbnQmKTsKKyNlbHNlCisgICAgdm9pZCBzaGFyZUN1c3RvbUVs
ZW1lbnREZWZpbml0aW9uV2l0aChjb25zdCBEb2N1bWVudCYpIHsgfQogI2VuZGlmCiAKICAgICBj
b25zdCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVudFRhcmdldHMoKSBjb25zdCB7IHJldHVybiBt
X3doZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CkBAIC0xNzM5LDcgKzE3NDIsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotICAgIHN0ZDo6dW5pcXVl
X3B0cjxDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IG1fY3VzdG9tRWxlbWVudERlZmluaXRpb25z
OworICAgIFJlZlB0cjxDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IG1fY3VzdG9tRWxlbWVudERl
ZmluaXRpb25zOwogI2VuZGlmCiAKICAgICBSZWZQdHI8Q1NTRm9udFNlbGVjdG9yPiBtX2ZvbnRT
ZWxlY3RvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24gMTk3NDgzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDcg
KzE5Niw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGEKIAogICAg
ICAgICBSZWZQdHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IGNvbnN0cnVjdGlvbkRhdGEtPmludGVy
ZmFjZS0+Y29uc3RydWN0RWxlbWVudChjb25zdHJ1Y3Rpb25EYXRhLT5uYW1lLCBKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U6OlNob3VsZENsZWFyRXhjZXB0aW9uOjpDbGVhcik7CiAgICAgICAgIGlm
ICghbmV3RWxlbWVudCkgewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY2FsbCB0byBkb2N1
ZW1udCgpIGlzIHdyb25nIGZvciBlbGVtZW50cyBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50Lgor
ICAgICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5pc1BhcnNpbmdUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAgICAgbmV3RWxlbWVudCA9IEhUTUxVbmtub3duRWxlbWVudDo6Y3Jl
YXRlKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGNvbnN0cnVjdGlvbkRhdGEtPm5hbWUsIHhodG1s
TmFtZXNwYWNlVVJJKSwgKmRvY3VtZW50KCkpOwogICAgICAgICB9CiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE5NzQ4MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE2LTAzLTAyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgorCisgICAgICAgIEZpeCBIVE1MIHBhcnNlcidzIHN1cHBvcnQgZm9yIGN1c3RvbSBlbGVtZW50
cyBpbnNpZGUgdGVtcGxhdGUgZWxlbWVudHMgZm9yIHJlYWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDk0NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjQ5NDQ4NzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgdmFyaW91cyB0ZXN0cyB0byBlbnN1cmUgdGhlIGN1c3RvbSBlbGVtZW50cyBy
ZWdpc3RyeSBpcyBub3Qgc2hhcmVkIGJldHdlZW4gZG9jdW1lbnRzIHdpdGgKKyAgICAgICAgZGlz
dGluY3QgYnJvd3NpbmcgY29udGV4dCAoZS5nLiBpZnJhbWVzKSBidXQgc2hhcmVkIGFtb25nIHRo
ZSBvbmVzIHRoYXQgc2hhcmUgYSBzaW5nbGUgYnJvd3NpbmcgY29udGV4dAorICAgICAgICAoZS5n
LiBkb2N1bWVudHMgY3JlYXRlZCBieSBET01JbXBsZW1lbnRhdGlvbikuCisKKyAgICAgICAgQWxz
byBhZGRlZCBhIHRlc3QgY2FzZSBmb3IgZGVmaW5lQ3VzdG9tRWxlbWVudCB0byBlbnN1cmUgaXQg
dGhyb3dzIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gaXQncyBjYWxsZWQgb24KKyAgICAgICAgYSB0
ZW1wbGF0ZSBlbGVtZW50J3MgaW5lcnQgb3duZXIgZG9jdW1lbnQgYXMgd2VsbCBhcyBhIGJhc2lj
IHRlc3QgY2FzZSBmb3IgZG9jdW1lbnQud3JpdGUuCisKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1l
bGVtZW50cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50Lmh0
bWw6IEFkZGVkIGEgbmV3IHRlc3QgY2FzZS4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50
cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3Jp
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9w
YXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNl
ci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVyLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5
LW9mLW93bmVyLWRvY3VtZW50Lmh0bWw6IEFkZGVkLgorCiAyMDE2LTAzLTAyICBSeWFuIEhhZGRh
ZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmtpbmcgc3RvcmFnZS9pbmRl
eGVkZGIvb2RkLXN0cmluZ3MuaHRtbCBhcyBmbGFreSBvbiBtYWMtd2sxCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk3
NDgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5l
Q3VzdG9tRWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBA
CiBQQVNTIENoZWNrIHRoZSBleGlzdGVuY2Ugb2YgZGVmaW5lQ3VzdG9tRWxlbWVudCBvbiBEb2N1
bWVudCBpbnRlcmZhY2UgCiBQQVNTIGRvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQgc2hvdWxk
IHRocm93IHdpdGggYW4gaW52YWxpZCBuYW1lIAogUEFTUyBkb2N1bWVudC5kZWZpbmVDdXN0b21F
bGVtZW50IHNob3VsZCB0aHJvdyB3aXRoIGEgZHVwbGljYXRlIG5hbWUgCitQQVNTIGRvY3VtZW50
LmRlZmluZUN1c3RvbUVsZW1lbnQgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4g
dGhlIGNvbnRleHQgb2JqZWN0IGlzIGFuIGFzc29jaWF0ZWQgaW5lcnQgdGVtcGxhdGUgZG9jdW1l
bnQgCiBQQVNTIGRvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQgc2hvdWxkIHRocm93IHdoZW4g
dGhlIGVsZW1lbnQgaW50ZXJmYWNlIGlzIG5vdCBhIGNvbnN0cnVjdG9yIAogUEFTUyBkb2N1bWVu
dC5kZWZpbmVDdXN0b21FbGVtZW50IHNob3VsZCBkZWZpbmUgYW4gaW5zdGFudGlhdGFibGUgY3Vz
dG9tIGVsZW1lbnQgCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0Rv
Y3VtZW50LWRlZmluZUN1c3RvbUVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50Lmh0bWwJ
KHJldmlzaW9uIDE5NzQ4MykKKysrIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0Rv
Y3VtZW50LWRlZmluZUN1c3RvbUVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiAr
NTgsMTYgQEAgdGVzdChmdW5jdGlvbiAoKSB7CiB9LCAnZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxl
bWVudCBzaG91bGQgdGhyb3cgd2l0aCBhIGR1cGxpY2F0ZSBuYW1lJyk7CiAKIHRlc3QoZnVuY3Rp
b24gKCkgeworICAgIGNsYXNzIFNvbWVDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQg
e307CisKKyAgICB2YXIgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJykuY29udGVudC5vd25lckRvY3VtZW50OworICAgIGFzc2Vy
dF90aHJvd3MoeyduYW1lJzogJ05vdFN1cHBvcnRlZEVycm9yJ30sIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgdGVtcGxhdGVDb250ZW50T3duZXJEb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdz
b21lLWN1c3RvbS1lbGVtZW50JywgU29tZUN1c3RvbUVsZW1lbnQpOworICAgIH0pOworCit9LCAn
ZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJy
b3Igd2hlbiB0aGUgY29udGV4dCBvYmplY3QgaXMgYW4gYXNzb2NpYXRlZCBpbmVydCB0ZW1wbGF0
ZSBkb2N1bWVudCcpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKICAgICBhc3NlcnRfdGhyb3dzKHsn
bmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5kZWZpbmVDdXN0b21F
bGVtZW50KCdpbnZhbGlkLWVsZW1lbnQnLCAxKTsgfSwKICAgICAgICAgJ2RvY3VtZW50LmRlZmlu
ZUN1c3RvbUVsZW1lbnQgbXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50IGlu
dGVyZmFjZSBpcyBhIG51bWJlcicpOwogICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVF
cnJvcid9LCBmdW5jdGlvbiAoKSB7IGRvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQoJ2ludmFs
aWQtZWxlbWVudCcsICcxMjMnKTsgfSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVu
dC13cml0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0
b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRv
Y3VtZW50LXdyaXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVu
dC1pbi1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBpbnN0YW50aWF0ZSBjdXN0b20gZWxlbWVu
dHMgaW5zaWRlIGRvY3VtZW50LndyaXRlIAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3Rv
bS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9j
dW1lbnQtd3JpdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1l
bGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1l
bnQtd3JpdGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVu
dC13cml0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5DdXN0b20gRWxlbWVudHM6IENoYW5nZXMgdG8g
dGhlIEhUTUwgcGFyc2VyPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1
a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNz
ZXJ0IiBjb250ZW50PSJIVE1MIHBhcnNlciBtdXN0IGNvbnN0cnVjdCBjdXN0b20gZWxlbWVudHMg
aW5zaWRlIGRvY3VtZW50LndyaXRlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9J3N0eWxlc2hlZXQn
IGhyZWY9Jy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKworY2xhc3MgTXlDdXN0b21FbGVt
ZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9Citkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKK2RvY3VtZW50LndyaXRl
KCc8bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nKTsKKwordGVzdChmdW5j
dGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXkt
Y3VzdG9tLWVsZW1lbnQnKTsKKworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2Yg
SFRNTEVsZW1lbnQpOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0
b21FbGVtZW50KTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3QgaW5zdGFudGlhdGUgY3VzdG9tIGVs
ZW1lbnRzIGluc2lkZSBkb2N1bWVudC53cml0ZScpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJz
ZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2Vz
LXJlZ2lzdHJ5LW9mLW93bmVyLWRvY3VtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdp
c3RyeS1vZi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3IEBACisKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBub3QgaW5zdGFudGlhdGUgY3VzdG9t
IGVsZW1lbnRzIGluc2lkZSB0ZW1wbGF0ZSBlbGVtZW50cyAKK1BBU1MgSFRNTCBwYXJzZXIgbXVz
dCB1c2UgdGhlIHJlZ2lzdHJ5IG9mIHRoZSBjb250ZW50IGRvY3VtZW50IG9mIHRoZSBpZnJhbWUg
Zm9yIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgdGhlIGlmcmFtZSAKK1BBU1MgSFRNTCBwYXJzZXIg
bXVzdCBpbnN0YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50IGluc2lkZSBhIGRvY3VtZW50IHdpdGhv
dXQgYSBicm93c2luZyBjb250ZXh0IHVzaW5nIHRoZSByZWdpc3RyeSBvZiB0aGUgZ2xvYmFsIG9i
amVjdCAKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBpbnN0YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50
IGluc2lkZSBhIGRvY3VtZW50IHdpdGhvdXQgYSBicm93c2VyIGNvbnRleHQgd2hlbiB0aGUgZWxl
bWVudCBpcyBkZWZpbmVkIG9uIHRoYXQgZG9jdW1lbnQgCitQQVNTIEhUTUwgcGFyc2VyIG11c3Qg
aW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCBkZWZpbmVkIGluIGEgZG9jdW1lbnQgd2l0aG91
dCBhIGJyb3dzZXIgY29udGV4dCB0aGF0IHNoYXJlcyB0aGUgc2FtZSBnbG9iYWwgb2JqZWN0IAor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVz
ZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Yt
b3duZXItZG9jdW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVu
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5DdXN0b20gRWxlbWVudHM6IENoYW5nZXMgdG8gdGhlIEhU
TUwgcGFyc2VyPC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3
YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgb3duZXIgZG9jdW1lbnQncyBjdXN0b20g
ZWxlbWVudCByZWdpc3RyeSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVm
PScuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2NsYXNzIE15Q3VzdG9tRWxlbWVudCBl
eHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKK2RvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQoJ215
LWN1c3RvbS1lbGVtZW50JywgTXlDdXN0b21FbGVtZW50KTsKKworZG9jdW1lbnQud3JpdGUoJzx0
ZW1wbGF0ZT48bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD48L3RlbXBsYXRl
PicpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCd0ZW1wbGF0ZScpOworICAgIHZhciBpbnN0YW5jZSA9IHRlbXBsYXRlLmNv
bnRlbnQuZmlyc3RDaGlsZDsKKworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2Yg
SFRNTEVsZW1lbnQsCisgICAgICAgICdBIGN1c3RvbSBlbGVtZW50IGluc2lkZSBhIHRlbXBsYXRl
IGVsZW1lbnQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudCcpOworICAgIGFzc2Vy
dF9mYWxzZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCwKKyAgICAgICAgJ0Eg
Y3VzdG9tIGVsZW1lbnQgbXVzdCBub3QgYmUgaW5zdGFudGlhdGVkIGluc2lkZSBhIHRlbXBsYXRl
IGVsZW1lbnQgdXNpbmcgdGhlIHJlZ2lzdHJ5IG9mIHRoZSB0ZW1wbGF0ZSBlbGVtZW50XCdzIG93
bmVyIGRvY3VtZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5vd25lckRvY3VtZW50
LCB0ZW1wbGF0ZS5jb250ZW50Lm93bmVyRG9jdW1lbnQsCisgICAgICAgICdDdXN0b20gZWxlbWVu
dHMgaW5zaWRlIGEgdGVtcGxhdGUgbXVzdCB1c2UgdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIGNv
bnRlbnRzIG93bmVyIGRvY3VtZW50IGFzIHRoZSBvd25lciBkb2N1bWVudCcpOworCit9LCAnSFRN
TCBwYXJzZXIgbXVzdCBub3QgaW5zdGFudGlhdGUgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSB0ZW1w
bGF0ZSBlbGVtZW50cycpOworCit2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aWZyYW1lJyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CitpZnJhbWUuY29u
dGVudERvY3VtZW50Lm9wZW4oKTsKK2lmcmFtZS5jb250ZW50RG9jdW1lbnQud3JpdGUoJzxteS1j
dXN0b20tZWxlbWVudD48L215LWN1c3RvbS1lbGVtZW50PicpOworaWZyYW1lLmNvbnRlbnREb2N1
bWVudC5jbG9zZSgpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaW5zdGFuY2UgPSBp
ZnJhbWUuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3RvbS1lbGVtZW50Jyk7
CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIGlmcmFtZS5jb250ZW50V2lu
ZG93LkhUTUxFbGVtZW50LCAnQSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYW4gaWZyYW1lIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfZmFsc2UoaW5zdGFu
Y2UgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQsCisgICAgICAgICdBIGN1c3RvbSBlbGVtZW50
IG11c3Qgbm90IGJlIGluc3RhbnRpYXRlZCBpbnNpZGUgYW4gaWZyYW1lIHVzaW5nIHRoZSByZWdp
c3RyeSBvZiB0aGUgb3duZXIgZWxlbWVudFwncyBkb2N1bWVudCcpOworICAgIGFzc2VydF9lcXVh
bHMoaW5zdGFuY2Uub3duZXJEb2N1bWVudCwgaWZyYW1lLmNvbnRlbnREb2N1bWVudCwKKyAgICAg
ICAgJ1RoZSBvd25lciBkb2N1bWVudCBvZiBjdXN0b20gZWxlbWVudHMgaW5zaWRlIGFuIGlmcmFt
ZSBtdXN0IGJlIHRoZSBjb250ZW50IGRvY3VtZW50IG9mIHRoZSBpZnJhbWUnKTsKKworfSwgJ0hU
TUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB0aGUgY29udGVudCBkb2N1bWVudCBv
ZiB0aGUgaWZyYW1lIGZvciBjdXN0b20gZWxlbWVudHMgaW5zaWRlIHRoZSBpZnJhbWUnKTsKKwor
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpZnJhbWUpOworCit2YXIgd2luZG93bGVzc0RvY3Vt
ZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Cit3aW5k
b3dsZXNzRG9jdW1lbnQub3BlbigpOword2luZG93bGVzc0RvY3VtZW50LndyaXRlKCc8bXktY3Vz
dG9tLWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nKTsKK3dpbmRvd2xlc3NEb2N1bWVudC5j
bG9zZSgpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaW5zdGFuY2UgPSB3aW5kb3ds
ZXNzRG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktY3VzdG9tLWVsZW1lbnQnKTsKKworICAgIGFz
c2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpOworICAgIGFzc2VydF90
cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50KTsKKyAgICBhc3NlcnRfZXF1
YWxzKGluc3RhbmNlLm93bmVyRG9jdW1lbnQsIHdpbmRvd2xlc3NEb2N1bWVudCk7CisKK30sICdI
VE1MIHBhcnNlciBtdXN0IGluc3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGEgZG9j
dW1lbnQgd2l0aG91dCBhIGJyb3dzaW5nIGNvbnRleHQgdXNpbmcgdGhlIHJlZ2lzdHJ5IG9mIHRo
ZSBnbG9iYWwgb2JqZWN0Jyk7CisKK3dpbmRvd2xlc3NEb2N1bWVudC5vcGVuKCk7CitjbGFzcyBN
eU90aGVyRWxlbWVudCBleHRlbmRzIE15Q3VzdG9tRWxlbWVudCB7IH0KK3dpbmRvd2xlc3NEb2N1
bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdteS1vdGhlci1lbGVtZW50JywgTXlPdGhlckVsZW1l
bnQpOword2luZG93bGVzc0RvY3VtZW50LndyaXRlKCc8bXktb3RoZXItZWxlbWVudD48L215LW90
aGVyLWVsZW1lbnQ+Jyk7Cit3aW5kb3dsZXNzRG9jdW1lbnQuY2xvc2UoKTsKKwordGVzdChmdW5j
dGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gd2luZG93bGVzc0RvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ215LW90aGVyLWVsZW1lbnQnKTsKKworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGlu
c3RhbmNlb2YgSFRNTEVsZW1lbnQpOworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNl
b2YgTXlPdGhlckVsZW1lbnQpOworICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2Uub3duZXJEb2N1
bWVudCwgd2luZG93bGVzc0RvY3VtZW50KTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3QgaW5zdGFu
dGlhdGUgYSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYSBkb2N1bWVudCB3aXRob3V0IGEgYnJvd3Nl
ciBjb250ZXh0IHdoZW4gdGhlIGVsZW1lbnQgaXMgZGVmaW5lZCBvbiB0aGF0IGRvY3VtZW50Jyk7
CisKK2RvY3VtZW50Lm9wZW4oKTsKK2RvY3VtZW50LndyaXRlKCc8bXktb3RoZXItZWxlbWVudD48
L215LW90aGVyLWVsZW1lbnQ+Jyk7Citkb2N1bWVudC5jbG9zZSgpOworCit0ZXN0KGZ1bmN0aW9u
ICgpIHsKKyAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdteS1vdGhl
ci1lbGVtZW50Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxF
bGVtZW50KTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15T3RoZXJFbGVt
ZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm93bmVyRG9jdW1lbnQsIGRvY3VtZW50
KTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3QgaW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCBk
ZWZpbmVkIGluIGEgZG9jdW1lbnQgd2l0aG91dCBhIGJyb3dzZXIgY29udGV4dCB0aGF0IHNoYXJl
cyB0aGUgc2FtZSBnbG9iYWwgb2JqZWN0Jyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272736</attachid>
            <date>2016-03-02 23:53:51 -0800</date>
            <delta_ts>2016-03-03 00:06:07 -0800</delta_ts>
            <desc>Fixed debug builds</desc>
            <filename>bug-154944-20160302235336.patch</filename>
            <type>text/plain</type>
            <size>19719</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTAzLTAzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCBIVE1MIHBhcnNlcidzIHN1
cHBvcnQgZm9yIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgdGVtcGxhdGUgZWxlbWVudHMgZm9yIHJl
YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDk0
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ5NDQ4NzU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHZhcmlvdXMgdGVz
dHMgY3VzdG9tIGVsZW1lbnRzIHJlZ2lzdHJ5LgorCisgICAgICAgIFNoYXJlIHRoZSBzYW1lIGN1
c3RvbSBlbGVtZW50cyByZWdpc3RyeSAoQ3VzdG9tRWxlbWVudERlZmluaXRpb25zKSB3aGVuIGNy
ZWF0aW5nIGEgbmV3IGRvY3VtZW50IHZpYQorICAgICAgICBET01JbXBsZW1lbnRhdGlvbi5jcmVh
dGVEb2N1bWVudCBhbmQgRE9NSW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50IGFuZCB0
aHJvdyBOb3RTdXBwb3J0ZWRFcnJvcgorICAgICAgICBpbiBkZWZpbmVDdXN0b21FbGVtZW50IHdo
ZW4gaXQncyBjYWxsZWQgdGhlIHNoYXJlZCBpbmVydCBkb2N1bWVudCBvZiB0ZW1wbGF0ZSBlbGVt
ZW50cyBhcyBkaXNjdXNzZWQgb24KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJj
b21wb25lbnRzL2lzc3Vlcy8zNjkKKworICAgICAgICBUZXN0czogZmFzdC9jdXN0b20tZWxlbWVu
dHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdy
aXRlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJz
ZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC5odG1sCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1l
bnQ6OmRlZmluZUN1c3RvbUVsZW1lbnQpOiBUaHJvdyBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRo
ZSBjb250ZXh0IG9iamVjdCdzIGRvY3VtZW50IGlzCisgICAgICAgIHRoZSBvbmUgY3JlYXRlZCBm
b3IgdGVtcGxhdGUgZWxlbWVudCdzIGNvbnRlbnQuCisgICAgICAgICogZG9tL0N1c3RvbUVsZW1l
bnREZWZpbml0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudERlZmluaXRp
b25zKTogTWFkZSB0aGlzIG9iamVjdCBSZWZDb3VudGVkIHNpbmNlIGl0IGNhbiBub3cgYmUgc2hh
cmVkIGFtb25nIG11bHRpcGxlCisgICAgICAgIGRvY3VtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbUVsZW1lbnREZWZpbml0aW9uczo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogZG9t
L0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0
aW9uOjpjcmVhdGVEb2N1bWVudCk6IFNoYXJlIHRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9u
cyB3aXRoIHRoZSBvbGQgZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KTogRGl0dG8uCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbnN1cmVDdXN0b21FbGVtZW50RGVm
aW5pdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNoYXJlQ3VzdG9tRWxlbWVu
dERlZmluaXRpb25XaXRoKTogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hhcmVDdXN0b21FbGVtZW50RGVmaW5pdGlvbldpdGgp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVp
bGRlcik6IFJlcGxhY2VkIGEgRklYTUUgd2l0aCBhbiBhc3NlcnRpb24gbm93IHRoYXQgd2UKKyAg
ICAgICAgZGlzYWxsb3cgaW5zdGFudGlhdGlvbiBvZiBjdXN0b20gZWxlbWVudHMgaW5zaWRlIGEg
dGVtcGxhdGUgZWxlbWVudC4KKwogMjAxNi0wMy0wMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBIVE1MIHBhcnNlciBpbnN0YW50aWF0ZXMgYSBjdXN0b20gZWxl
bWVudCBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50IHdpdGggYSB3cm9uZyBvd25lciBkb2N1bWVu
dApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDE5NzQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDE0IEBAIEpT
VmFsdWUgSlNEb2N1bWVudDo6ZGVmaW5lQ3VzdG9tRWxlbWVudCgKICAgICAgICAgcmV0dXJuIHRo
cm93VHlwZUVycm9yKCZzdGF0ZSwgIlRoZSBzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhIGNvbnN0
cnVjdG9yIik7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSB3cmFwcGVkKCk7CisgICAgaWYg
KGRvY3VtZW50LnRlbXBsYXRlRG9jdW1lbnRIb3N0KCkpIHsKKyAgICAgICAgRXhjZXB0aW9uQ29k
ZVdpdGhNZXNzYWdlIGVjOworICAgICAgICBlYy5jb2RlID0gTk9UX1NVUFBPUlRFRF9FUlI7Cisg
ICAgICAgIGVjLm1lc3NhZ2UgPSAiQ2Fubm90IGRlZmluZSBhIGN1c3RvbSBlbGVtZW50IGluIHRl
bXBsYXRlIGNvbnRlbnQncyBkb2N1bWVudCI7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbigmc3Rh
dGUsIGVjKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCiAgICAgc3dp
dGNoIChDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM6OmNoZWNrTmFtZSh0YWdOYW1lKSkgewogICAg
IGNhc2UgQ3VzdG9tRWxlbWVudERlZmluaXRpb25zOjpOYW1lU3RhdHVzOjpWYWxpZDoKICAgICAg
ICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudERlZmluaXRp
b25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnREZWZp
bml0aW9ucy5oCShyZXZpc2lvbiAxOTc0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9t
RWxlbWVudERlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwog
Ci1jbGFzcyBDdXN0b21FbGVtZW50RGVmaW5pdGlvbnMgeworY2xhc3MgQ3VzdG9tRWxlbWVudERl
ZmluaXRpb25zIDogcHVibGljIFJlZkNvdW50ZWQ8Q3VzdG9tRWxlbWVudERlZmluaXRpb25zPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgc3RhdGljIFJlZjxD
dXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q3VzdG9tRWxlbWVudERlZmluaXRpb25zKCkpOyB9CisKICAgICBib29sIGRlZmluZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+JiYpOwog
CiAgICAgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBmaW5kSW50ZXJmYWNlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRh
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmNwcAkocmV2aXNpb24gMTk3NDgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDYgKzIzMiw3IEBAIFJlZlB0cjxY
TUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmMKICAgICBlbHNlCiAgICAgICAgIGRvYyA9
IFhNTERvY3VtZW50OjpjcmVhdGUoMCwgVVJMKCkpOwogCisgICAgZG9jLT5zaGFyZUN1c3RvbUVs
ZW1lbnREZWZpbml0aW9uV2l0aChtX2RvY3VtZW50KTsKICAgICBkb2MtPnNldFNlY3VyaXR5T3Jp
Z2luUG9saWN5KG1fZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW5Qb2xpY3koKSk7CiAKICAgICBSZWZQ
dHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50OwpAQCAtMzA2LDYgKzMwNyw3IEBAIGJvb2wgRE9NSW1w
bGVtZW50YXRpb246OmlzVGV4dE1JTUVUeXBlKGMKIFJlZjxIVE1MRG9jdW1lbnQ+IERPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAg
ICBhdXRvIGRvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgVVJMKCkpOwor
ICAgIGRvY3VtZW50LT5zaGFyZUN1c3RvbUVsZW1lbnREZWZpbml0aW9uV2l0aChtX2RvY3VtZW50
KTsKICAgICBkb2N1bWVudC0+b3BlbigpOwogICAgIGRvY3VtZW50LT53cml0ZSgiPCFkb2N0eXBl
IGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+Iik7CiAgICAgaWYg
KCF0aXRsZS5pc051bGwoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAxOTc0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MzUwLDkgKzYzNTAsMTUgQEAgdW5zaWduZWQgRG9jdW1lbnQ6OnRvdWNoRXZlbnRI
YW5kbGVyQ291bgogQ3VzdG9tRWxlbWVudERlZmluaXRpb25zJiBEb2N1bWVudDo6ZW5zdXJlQ3Vz
dG9tRWxlbWVudERlZmluaXRpb25zKCkKIHsKICAgICBpZiAoIW1fY3VzdG9tRWxlbWVudERlZmlu
aXRpb25zKQotICAgICAgICBtX2N1c3RvbUVsZW1lbnREZWZpbml0aW9ucyA9IHN0ZDo6bWFrZV91
bmlxdWU8Q3VzdG9tRWxlbWVudERlZmluaXRpb25zPigpOworICAgICAgICBtX2N1c3RvbUVsZW1l
bnREZWZpbml0aW9ucyA9IEN1c3RvbUVsZW1lbnREZWZpbml0aW9uczo6Y3JlYXRlKCk7CiAgICAg
cmV0dXJuICptX2N1c3RvbUVsZW1lbnREZWZpbml0aW9uczsKIH0KKwordm9pZCBEb2N1bWVudDo6
c2hhcmVDdXN0b21FbGVtZW50RGVmaW5pdGlvbldpdGgoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KQoreworICAgIEFTU0VSVCghbV9jdXN0b21FbGVtZW50RGVmaW5pdGlvbnMpOworICAgIG1fY3Vz
dG9tRWxlbWVudERlZmluaXRpb25zID0gZG9jdW1lbnQubV9jdXN0b21FbGVtZW50RGVmaW5pdGlv
bnM7Cit9CiAjZW5kaWYKIAogTGF5b3V0UmVjdCBEb2N1bWVudDo6YWJzb2x1dGVFdmVudEhhbmRs
ZXJCb3VuZHMoYm9vbCYgaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxlbWVudHMpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTk3NDgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMDUsNiArMTIwNSw5IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQogICAgIEN1c3RvbUVsZW1lbnREZWZpbml0aW9ucyog
Y3VzdG9tRWxlbWVudERlZmluaXRpb25zKCkgeyByZXR1cm4gbV9jdXN0b21FbGVtZW50RGVmaW5p
dGlvbnMuZ2V0KCk7IH0KICAgICBDdXN0b21FbGVtZW50RGVmaW5pdGlvbnMmIGVuc3VyZUN1c3Rv
bUVsZW1lbnREZWZpbml0aW9ucygpOworICAgIHZvaWQgc2hhcmVDdXN0b21FbGVtZW50RGVmaW5p
dGlvbldpdGgoY29uc3QgRG9jdW1lbnQmKTsKKyNlbHNlCisgICAgdm9pZCBzaGFyZUN1c3RvbUVs
ZW1lbnREZWZpbml0aW9uV2l0aChjb25zdCBEb2N1bWVudCYpIHsgfQogI2VuZGlmCiAKICAgICBj
b25zdCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVudFRhcmdldHMoKSBjb25zdCB7IHJldHVybiBt
X3doZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CkBAIC0xNzM5LDcgKzE3NDIsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotICAgIHN0ZDo6dW5pcXVl
X3B0cjxDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IG1fY3VzdG9tRWxlbWVudERlZmluaXRpb25z
OworICAgIFJlZlB0cjxDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IG1fY3VzdG9tRWxlbWVudERl
ZmluaXRpb25zOwogI2VuZGlmCiAKICAgICBSZWZQdHI8Q1NTRm9udFNlbGVjdG9yPiBtX2ZvbnRT
ZWxlY3RvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24gMTk3NDgzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDcg
KzE5Niw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGEKIAogICAg
ICAgICBSZWZQdHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IGNvbnN0cnVjdGlvbkRhdGEtPmludGVy
ZmFjZS0+Y29uc3RydWN0RWxlbWVudChjb25zdHJ1Y3Rpb25EYXRhLT5uYW1lLCBKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U6OlNob3VsZENsZWFyRXhjZXB0aW9uOjpDbGVhcik7CiAgICAgICAgIGlm
ICghbmV3RWxlbWVudCkgewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY2FsbCB0byBkb2N1
ZW1udCgpIGlzIHdyb25nIGZvciBlbGVtZW50cyBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50Lgor
ICAgICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5pc1BhcnNpbmdUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAgICAgbmV3RWxlbWVudCA9IEhUTUxVbmtub3duRWxlbWVudDo6Y3Jl
YXRlKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGNvbnN0cnVjdGlvbkRhdGEtPm5hbWUsIHhodG1s
TmFtZXNwYWNlVVJJKSwgKmRvY3VtZW50KCkpOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCShyZXZpc2lvbiAxOTc0ODMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbnN0cnVjdFRy
ZWUoQXRvbWljSFRNTFRva2VuJik7CiAKKyAgICBib29sIGlzUGFyc2luZ1RlbXBsYXRlQ29udGVu
dHMoKSBjb25zdDsKICAgICBib29sIGhhc1BhcnNlckJsb2NraW5nU2NyaXB0V29yaygpIGNvbnN0
OwogCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgdG8gdGFrZSB0aGUgcGFyc2VyLWJsb2NraW5nIHNj
cmlwdCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFnYWluLgpAQCAtMTA3LDcgKzEwOCw2IEBA
IHByaXZhdGU6CiAgICAgICAgIEFmdGVyQWZ0ZXJGcmFtZXNldCwKICAgICB9OwogCi0gICAgYm9v
bCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3Q7CiAgICAgYm9vbCBpc1BhcnNpbmdG
cmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFRFTEVQSE9O
RV9OVU1CRVJfREVURUNUSU9OKSAmJiBQTEFURk9STShJT1MpCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
OTc0ODMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNSBAQAorMjAxNi0wMy0wMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBGaXggSFRNTCBwYXJzZXIncyBzdXBwb3J0IGZvciBjdXN0b20gZWxlbWVudHMgaW5z
aWRlIHRlbXBsYXRlIGVsZW1lbnRzIGZvciByZWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0
OTQ0ODc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIHZhcmlvdXMgdGVzdHMgdG8gZW5zdXJlIHRoZSBjdXN0b20gZWxlbWVudHMgcmVnaXN0
cnkgaXMgbm90IHNoYXJlZCBiZXR3ZWVuIGRvY3VtZW50cyB3aXRoCisgICAgICAgIGRpc3RpbmN0
IGJyb3dzaW5nIGNvbnRleHQgKGUuZy4gaWZyYW1lcykgYnV0IHNoYXJlZCBhbW9uZyB0aGUgb25l
cyB0aGF0IHNoYXJlIGEgc2luZ2xlIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAgKGUuZy4gZG9j
dW1lbnRzIGNyZWF0ZWQgYnkgRE9NSW1wbGVtZW50YXRpb24pLgorCisgICAgICAgIEFsc28gYWRk
ZWQgYSB0ZXN0IGNhc2UgZm9yIGRlZmluZUN1c3RvbUVsZW1lbnQgdG8gZW5zdXJlIGl0IHRocm93
cyBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGl0J3MgY2FsbGVkIG9uCisgICAgICAgIGEgdGVtcGxh
dGUgZWxlbWVudCdzIGluZXJ0IG93bmVyIGRvY3VtZW50IGFzIHdlbGwgYXMgYSBiYXNpYyB0ZXN0
IGNhc2UgZm9yIGRvY3VtZW50LndyaXRlLgorCisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVu
dHMvRG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC5odG1sOiBB
ZGRlZCBhIG5ldyB0ZXN0IGNhc2UuCisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcGFy
c2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2Vy
L3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNl
cy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1v
d25lci1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAxNi0wMy0wMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJraW5nIHN0b3JhZ2UvaW5kZXhlZGRi
L29kZC1zdHJpbmdzLmh0bWwgYXMgZmxha3kgb24gbWFjLXdrMQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvRG9j
dW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5NzQ4MykK
KysrIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0RvY3VtZW50LWRlZmluZUN1c3Rv
bUVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogUEFT
UyBDaGVjayB0aGUgZXhpc3RlbmNlIG9mIGRlZmluZUN1c3RvbUVsZW1lbnQgb24gRG9jdW1lbnQg
aW50ZXJmYWNlIAogUEFTUyBkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50IHNob3VsZCB0aHJv
dyB3aXRoIGFuIGludmFsaWQgbmFtZSAKIFBBU1MgZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVu
dCBzaG91bGQgdGhyb3cgd2l0aCBhIGR1cGxpY2F0ZSBuYW1lIAorUEFTUyBkb2N1bWVudC5kZWZp
bmVDdXN0b21FbGVtZW50IG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBj
b250ZXh0IG9iamVjdCBpcyBhbiBhc3NvY2lhdGVkIGluZXJ0IHRlbXBsYXRlIGRvY3VtZW50IAog
UEFTUyBkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50IHNob3VsZCB0aHJvdyB3aGVuIHRoZSBl
bGVtZW50IGludGVyZmFjZSBpcyBub3QgYSBjb25zdHJ1Y3RvciAKIFBBU1MgZG9jdW1lbnQuZGVm
aW5lQ3VzdG9tRWxlbWVudCBzaG91bGQgZGVmaW5lIGFuIGluc3RhbnRpYXRhYmxlIGN1c3RvbSBl
bGVtZW50IAogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVu
dC1kZWZpbmVDdXN0b21FbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC5odG1sCShyZXZp
c2lvbiAxOTc0ODMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVu
dC1kZWZpbmVDdXN0b21FbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDE2
IEBAIHRlc3QoZnVuY3Rpb24gKCkgewogfSwgJ2RvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQg
c2hvdWxkIHRocm93IHdpdGggYSBkdXBsaWNhdGUgbmFtZScpOwogCiB0ZXN0KGZ1bmN0aW9uICgp
IHsKKyAgICBjbGFzcyBTb21lQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9Owor
CisgICAgdmFyIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd0ZW1wbGF0ZScpLmNvbnRlbnQub3duZXJEb2N1bWVudDsKKyAgICBhc3NlcnRfdGhy
b3dzKHsnbmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7CisgICAgICAg
IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCgnc29tZS1j
dXN0b20tZWxlbWVudCcsIFNvbWVDdXN0b21FbGVtZW50KTsKKyAgICB9KTsKKworfSwgJ2RvY3Vt
ZW50LmRlZmluZUN1c3RvbUVsZW1lbnQgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdo
ZW4gdGhlIGNvbnRleHQgb2JqZWN0IGlzIGFuIGFzc29jaWF0ZWQgaW5lcnQgdGVtcGxhdGUgZG9j
dW1lbnQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CiAgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUn
OiAnVHlwZUVycm9yJ30sIGZ1bmN0aW9uICgpIHsgZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVu
dCgnaW52YWxpZC1lbGVtZW50JywgMSk7IH0sCiAgICAgICAgICdkb2N1bWVudC5kZWZpbmVDdXN0
b21FbGVtZW50IG11c3QgdGhyb3cgYSBUeXBlRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpbnRlcmZh
Y2UgaXMgYSBudW1iZXInKTsKICAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3In
fSwgZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdpbnZhbGlkLWVs
ZW1lbnQnLCAnMTIzJyk7IH0sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3Jp
dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVu
dC13cml0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1
c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4t
ZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIEhUTUwgcGFyc2VyIG11c3QgaW5zdGFudGlhdGUgY3VzdG9tIGVsZW1lbnRzIGlu
c2lkZSBkb2N1bWVudC53cml0ZSAKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxl
bWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50
LXdyaXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVu
dHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdy
aXRlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy9wYXJzZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3Jp
dGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBI
VE1MIHBhcnNlcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5p
d2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIg
Y29udGVudD0iSFRNTCBwYXJzZXIgbXVzdCBjb25zdHJ1Y3QgY3VzdG9tIGVsZW1lbnRzIGluc2lk
ZSBkb2N1bWVudC53cml0ZSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVm
PScuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2NsYXNzIE15Q3VzdG9tRWxlbWVudCBl
eHRlbmRzIEhUTUxFbGVtZW50IHsgfQorZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCgnbXkt
Y3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOworCitkb2N1bWVudC53cml0ZSgnPG15
LWN1c3RvbS1lbGVtZW50PjwvbXktY3VzdG9tLWVsZW1lbnQ+Jyk7CisKK3Rlc3QoZnVuY3Rpb24g
KCkgeworICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3Rv
bS1lbGVtZW50Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxF
bGVtZW50KTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxl
bWVudCk7CisKK30sICdIVE1MIHBhcnNlciBtdXN0IGluc3RhbnRpYXRlIGN1c3RvbSBlbGVtZW50
cyBpbnNpZGUgZG9jdW1lbnQud3JpdGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVz
ZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdp
c3RyeS1vZi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnkt
b2Ytb3duZXItZG9jdW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NyBAQAorCitQQVNTIEhUTUwgcGFyc2VyIG11c3Qgbm90IGluc3RhbnRpYXRlIGN1c3RvbSBlbGVt
ZW50cyBpbnNpZGUgdGVtcGxhdGUgZWxlbWVudHMgCitQQVNTIEhUTUwgcGFyc2VyIG11c3QgdXNl
IHRoZSByZWdpc3RyeSBvZiB0aGUgY29udGVudCBkb2N1bWVudCBvZiB0aGUgaWZyYW1lIGZvciBj
dXN0b20gZWxlbWVudHMgaW5zaWRlIHRoZSBpZnJhbWUgCitQQVNTIEhUTUwgcGFyc2VyIG11c3Qg
aW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYSBkb2N1bWVudCB3aXRob3V0IGEg
YnJvd3NpbmcgY29udGV4dCB1c2luZyB0aGUgcmVnaXN0cnkgb2YgdGhlIGdsb2JhbCBvYmplY3Qg
CitQQVNTIEhUTUwgcGFyc2VyIG11c3QgaW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCBpbnNp
ZGUgYSBkb2N1bWVudCB3aXRob3V0IGEgYnJvd3NlciBjb250ZXh0IHdoZW4gdGhlIGVsZW1lbnQg
aXMgZGVmaW5lZCBvbiB0aGF0IGRvY3VtZW50IAorUEFTUyBIVE1MIHBhcnNlciBtdXN0IGluc3Rh
bnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgZGVmaW5lZCBpbiBhIGRvY3VtZW50IHdpdGhvdXQgYSBi
cm93c2VyIGNvbnRleHQgdGhhdCBzaGFyZXMgdGhlIHNhbWUgZ2xvYmFsIG9iamVjdCAKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJl
Z2lzdHJ5LW9mLW93bmVyLWRvY3VtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVy
LWRvY3VtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1l
bGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1lbnQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBIVE1MIHBh
cnNlcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhy
ZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhlIG93bmVyIGRvY3VtZW50J3MgY3VzdG9tIGVsZW1l
bnQgcmVnaXN0cnkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCitjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5k
cyBIVE1MRWxlbWVudCB7IH07Citkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdteS1jdXN0
b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKK2RvY3VtZW50LndyaXRlKCc8dGVtcGxh
dGU+PG15LWN1c3RvbS1lbGVtZW50PjwvbXktY3VzdG9tLWVsZW1lbnQ+PC90ZW1wbGF0ZT4nKTsK
KwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRlbXBsYXRlID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndGVtcGxhdGUnKTsKKyAgICB2YXIgaW5zdGFuY2UgPSB0ZW1wbGF0ZS5jb250ZW50
LmZpcnN0Q2hpbGQ7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxF
bGVtZW50LAorICAgICAgICAnQSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVt
ZW50IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfZmFs
c2UoaW5zdGFuY2UgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQsCisgICAgICAgICdBIGN1c3Rv
bSBlbGVtZW50IG11c3Qgbm90IGJlIGluc3RhbnRpYXRlZCBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVt
ZW50IHVzaW5nIHRoZSByZWdpc3RyeSBvZiB0aGUgdGVtcGxhdGUgZWxlbWVudFwncyBvd25lciBk
b2N1bWVudCcpOworICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2Uub3duZXJEb2N1bWVudCwgdGVt
cGxhdGUuY29udGVudC5vd25lckRvY3VtZW50LAorICAgICAgICAnQ3VzdG9tIGVsZW1lbnRzIGlu
c2lkZSBhIHRlbXBsYXRlIG11c3QgdXNlIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSBjb250ZW50
cyBvd25lciBkb2N1bWVudCBhcyB0aGUgb3duZXIgZG9jdW1lbnQnKTsKKworfSwgJ0hUTUwgcGFy
c2VyIG11c3Qgbm90IGluc3RhbnRpYXRlIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgdGVtcGxhdGUg
ZWxlbWVudHMnKTsKKwordmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFt
ZScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworaWZyYW1lLmNvbnRlbnRE
b2N1bWVudC5vcGVuKCk7CitpZnJhbWUuY29udGVudERvY3VtZW50LndyaXRlKCc8bXktY3VzdG9t
LWVsZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nKTsKK2lmcmFtZS5jb250ZW50RG9jdW1lbnQu
Y2xvc2UoKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gaWZyYW1l
LmNvbnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdteS1jdXN0b20tZWxlbWVudCcpOworCisg
ICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBpZnJhbWUuY29udGVudFdpbmRvdy5I
VE1MRWxlbWVudCwgJ0EgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGFuIGlmcmFtZSBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGlu
c3RhbmNlb2YgTXlDdXN0b21FbGVtZW50LAorICAgICAgICAnQSBjdXN0b20gZWxlbWVudCBtdXN0
IG5vdCBiZSBpbnN0YW50aWF0ZWQgaW5zaWRlIGFuIGlmcmFtZSB1c2luZyB0aGUgcmVnaXN0cnkg
b2YgdGhlIG93bmVyIGVsZW1lbnRcJ3MgZG9jdW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGlu
c3RhbmNlLm93bmVyRG9jdW1lbnQsIGlmcmFtZS5jb250ZW50RG9jdW1lbnQsCisgICAgICAgICdU
aGUgb3duZXIgZG9jdW1lbnQgb2YgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBhbiBpZnJhbWUgbXVz
dCBiZSB0aGUgY29udGVudCBkb2N1bWVudCBvZiB0aGUgaWZyYW1lJyk7CisKK30sICdIVE1MIHBh
cnNlciBtdXN0IHVzZSB0aGUgcmVnaXN0cnkgb2YgdGhlIGNvbnRlbnQgZG9jdW1lbnQgb2YgdGhl
IGlmcmFtZSBmb3IgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSB0aGUgaWZyYW1lJyk7CisKK2RvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKKwordmFyIHdpbmRvd2xlc3NEb2N1bWVudCA9
IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOword2luZG93bGVz
c0RvY3VtZW50Lm9wZW4oKTsKK3dpbmRvd2xlc3NEb2N1bWVudC53cml0ZSgnPG15LWN1c3RvbS1l
bGVtZW50PjwvbXktY3VzdG9tLWVsZW1lbnQ+Jyk7Cit3aW5kb3dsZXNzRG9jdW1lbnQuY2xvc2Uo
KTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gd2luZG93bGVzc0Rv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisKKyAgICBhc3NlcnRf
dHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRfdHJ1ZShp
bnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhp
bnN0YW5jZS5vd25lckRvY3VtZW50LCB3aW5kb3dsZXNzRG9jdW1lbnQpOworCit9LCAnSFRNTCBw
YXJzZXIgbXVzdCBpbnN0YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50IGluc2lkZSBhIGRvY3VtZW50
IHdpdGhvdXQgYSBicm93c2luZyBjb250ZXh0IHVzaW5nIHRoZSByZWdpc3RyeSBvZiB0aGUgZ2xv
YmFsIG9iamVjdCcpOworCit3aW5kb3dsZXNzRG9jdW1lbnQub3BlbigpOworY2xhc3MgTXlPdGhl
ckVsZW1lbnQgZXh0ZW5kcyBNeUN1c3RvbUVsZW1lbnQgeyB9Cit3aW5kb3dsZXNzRG9jdW1lbnQu
ZGVmaW5lQ3VzdG9tRWxlbWVudCgnbXktb3RoZXItZWxlbWVudCcsIE15T3RoZXJFbGVtZW50KTsK
K3dpbmRvd2xlc3NEb2N1bWVudC53cml0ZSgnPG15LW90aGVyLWVsZW1lbnQ+PC9teS1vdGhlci1l
bGVtZW50PicpOword2luZG93bGVzc0RvY3VtZW50LmNsb3NlKCk7CisKK3Rlc3QoZnVuY3Rpb24g
KCkgeworICAgIHZhciBpbnN0YW5jZSA9IHdpbmRvd2xlc3NEb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCdteS1vdGhlci1lbGVtZW50Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5j
ZW9mIEhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15
T3RoZXJFbGVtZW50KTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm93bmVyRG9jdW1lbnQs
IHdpbmRvd2xlc3NEb2N1bWVudCk7CisKK30sICdIVE1MIHBhcnNlciBtdXN0IGluc3RhbnRpYXRl
IGEgY3VzdG9tIGVsZW1lbnQgaW5zaWRlIGEgZG9jdW1lbnQgd2l0aG91dCBhIGJyb3dzZXIgY29u
dGV4dCB3aGVuIHRoZSBlbGVtZW50IGlzIGRlZmluZWQgb24gdGhhdCBkb2N1bWVudCcpOworCitk
b2N1bWVudC5vcGVuKCk7Citkb2N1bWVudC53cml0ZSgnPG15LW90aGVyLWVsZW1lbnQ+PC9teS1v
dGhlci1lbGVtZW50PicpOworZG9jdW1lbnQuY2xvc2UoKTsKKwordGVzdChmdW5jdGlvbiAoKSB7
CisgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktb3RoZXItZWxl
bWVudCcpOworCisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVu
dCk7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBNeU90aGVyRWxlbWVudCk7
CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5vd25lckRvY3VtZW50LCBkb2N1bWVudCk7CisK
K30sICdIVE1MIHBhcnNlciBtdXN0IGluc3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgZGVmaW5l
ZCBpbiBhIGRvY3VtZW50IHdpdGhvdXQgYSBicm93c2VyIGNvbnRleHQgdGhhdCBzaGFyZXMgdGhl
IHNhbWUgZ2xvYmFsIG9iamVjdCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272738</attachid>
            <date>2016-03-03 00:06:11 -0800</date>
            <delta_ts>2016-03-03 16:17:14 -0800</delta_ts>
            <desc>Updated the bug title</desc>
            <filename>bug-154944-20160303000555.patch</filename>
            <type>text/plain</type>
            <size>19755</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTAzLTAzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERpc2FsbG93IGN1c3RvbSBlbGVt
ZW50cyBpbnNpZGUgdGVtcGxhdGUgZWxlbWVudHMgYW5kIHNoYXJlIHRoZSByZWdpc3RyeSBmb3Ig
d2luZG93bGVzcyBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NDk0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ5NDQ4NzU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIHZhcmlvdXMgdGVzdHMgY3VzdG9tIGVsZW1lbnRzIHJlZ2lzdHJ5LgorCisgICAgICAg
IFNoYXJlIHRoZSBzYW1lIGN1c3RvbSBlbGVtZW50cyByZWdpc3RyeSAoQ3VzdG9tRWxlbWVudERl
ZmluaXRpb25zKSB3aGVuIGNyZWF0aW5nIGEgbmV3IGRvY3VtZW50IHZpYQorICAgICAgICBET01J
bXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCBhbmQgRE9NSW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50IGFuZCB0aHJvdyBOb3RTdXBwb3J0ZWRFcnJvcgorICAgICAgICBpbiBkZWZp
bmVDdXN0b21FbGVtZW50IHdoZW4gaXQncyBjYWxsZWQgdGhlIHNoYXJlZCBpbmVydCBkb2N1bWVu
dCBvZiB0ZW1wbGF0ZSBlbGVtZW50cyBhcyBkaXNjdXNzZWQgb24KKyAgICAgICAgaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWJjb21wb25lbnRzL2lzc3Vlcy8zNjkKKworICAgICAgICBUZXN0czog
ZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVt
ZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3VzdG9tLWVs
ZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC5odG1s
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRG9jdW1lbnQ6OmRlZmluZUN1c3RvbUVsZW1lbnQpOiBUaHJvdyBOb3RTdXBw
b3J0ZWRFcnJvciB3aGVuIHRoZSBjb250ZXh0IG9iamVjdCdzIGRvY3VtZW50IGlzCisgICAgICAg
IHRoZSBvbmUgY3JlYXRlZCBmb3IgdGVtcGxhdGUgZWxlbWVudCdzIGNvbnRlbnQuCisgICAgICAg
ICogZG9tL0N1c3RvbUVsZW1lbnREZWZpbml0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tRWxlbWVudERlZmluaXRpb25zKTogTWFkZSB0aGlzIG9iamVjdCBSZWZDb3VudGVkIHNpbmNl
IGl0IGNhbiBub3cgYmUgc2hhcmVkIGFtb25nIG11bHRpcGxlCisgICAgICAgIGRvY3VtZW50cy4K
KyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUVsZW1lbnREZWZpbml0aW9uczo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6IFNoYXJlIHRoZSBjdXN0b20g
ZWxlbWVudCBkZWZpbml0aW9ucyB3aXRoIHRoZSBvbGQgZG9jdW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KTogRGl0dG8uCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbnN1
cmVDdXN0b21FbGVtZW50RGVmaW5pdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnNoYXJlQ3VzdG9tRWxlbWVudERlZmluaXRpb25XaXRoKTogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hhcmVDdXN0b21FbGVt
ZW50RGVmaW5pdGlvbldpdGgpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlw
dHNGb3JQYXVzZWRUcmVlQnVpbGRlcik6IFJlcGxhY2VkIGEgRklYTUUgd2l0aCBhbiBhc3NlcnRp
b24gbm93IHRoYXQgd2UKKyAgICAgICAgZGlzYWxsb3cgaW5zdGFudGlhdGlvbiBvZiBjdXN0b20g
ZWxlbWVudHMgaW5zaWRlIGEgdGVtcGxhdGUgZWxlbWVudC4KKwogMjAxNi0wMy0wMiAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBIVE1MIHBhcnNlciBpbnN0YW50
aWF0ZXMgYSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50IHdpdGggYSB3
cm9uZyBvd25lciBkb2N1bWVudApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
b2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDE5NzQ4MykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDcsNiArMTQ3LDE0IEBAIEpTVmFsdWUgSlNEb2N1bWVudDo6ZGVmaW5lQ3VzdG9tRWxlbWVudCgK
ICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgIlRoZSBzZWNvbmQgYXJndW1l
bnQgbXVzdCBiZSBhIGNvbnN0cnVjdG9yIik7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSB3
cmFwcGVkKCk7CisgICAgaWYgKGRvY3VtZW50LnRlbXBsYXRlRG9jdW1lbnRIb3N0KCkpIHsKKyAg
ICAgICAgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlIGVjOworICAgICAgICBlYy5jb2RlID0gTk9U
X1NVUFBPUlRFRF9FUlI7CisgICAgICAgIGVjLm1lc3NhZ2UgPSAiQ2Fubm90IGRlZmluZSBhIGN1
c3RvbSBlbGVtZW50IGluIHRlbXBsYXRlIGNvbnRlbnQncyBkb2N1bWVudCI7CisgICAgICAgIHNl
dERPTUV4Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisgICAgfQorCiAgICAgc3dpdGNoIChDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM6OmNoZWNrTmFt
ZSh0YWdOYW1lKSkgewogICAgIGNhc2UgQ3VzdG9tRWxlbWVudERlZmluaXRpb25zOjpOYW1lU3Rh
dHVzOjpWYWxpZDoKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ3Vz
dG9tRWxlbWVudERlZmluaXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0N1c3RvbUVsZW1lbnREZWZpbml0aW9ucy5oCShyZXZpc2lvbiAxOTc0ODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudERlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDkgKzQ1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFz
cyBRdWFsaWZpZWROYW1lOwogCi1jbGFzcyBDdXN0b21FbGVtZW50RGVmaW5pdGlvbnMgeworY2xh
c3MgQ3VzdG9tRWxlbWVudERlZmluaXRpb25zIDogcHVibGljIFJlZkNvdW50ZWQ8Q3VzdG9tRWxl
bWVudERlZmluaXRpb25zPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3VzdG9tRWxlbWVudERlZmluaXRpb25zKCkpOyB9CisKICAgICBi
b29sIGRlZmluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIFJlZjxKU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2U+JiYpOwogCiAgICAgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBmaW5kSW50
ZXJmYWNlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMTk3NDgzKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDYg
KzIzMiw3IEBAIFJlZlB0cjxYTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmMKICAgICBl
bHNlCiAgICAgICAgIGRvYyA9IFhNTERvY3VtZW50OjpjcmVhdGUoMCwgVVJMKCkpOwogCisgICAg
ZG9jLT5zaGFyZUN1c3RvbUVsZW1lbnREZWZpbml0aW9uV2l0aChtX2RvY3VtZW50KTsKICAgICBk
b2MtPnNldFNlY3VyaXR5T3JpZ2luUG9saWN5KG1fZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW5Qb2xp
Y3koKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50OwpAQCAtMzA2LDYgKzMw
Nyw3IEBAIGJvb2wgRE9NSW1wbGVtZW50YXRpb246OmlzVGV4dE1JTUVUeXBlKGMKIFJlZjxIVE1M
RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiB0aXRsZSkKIHsKICAgICBhdXRvIGRvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUo
bnVsbHB0ciwgVVJMKCkpOworICAgIGRvY3VtZW50LT5zaGFyZUN1c3RvbUVsZW1lbnREZWZpbml0
aW9uV2l0aChtX2RvY3VtZW50KTsKICAgICBkb2N1bWVudC0+b3BlbigpOwogICAgIGRvY3VtZW50
LT53cml0ZSgiPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48
L2h0bWw+Iik7CiAgICAgaWYgKCF0aXRsZS5pc051bGwoKSkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiAxOTc0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzUwLDkgKzYzNTAsMTUgQEAgdW5zaWduZWQgRG9j
dW1lbnQ6OnRvdWNoRXZlbnRIYW5kbGVyQ291bgogQ3VzdG9tRWxlbWVudERlZmluaXRpb25zJiBE
b2N1bWVudDo6ZW5zdXJlQ3VzdG9tRWxlbWVudERlZmluaXRpb25zKCkKIHsKICAgICBpZiAoIW1f
Y3VzdG9tRWxlbWVudERlZmluaXRpb25zKQotICAgICAgICBtX2N1c3RvbUVsZW1lbnREZWZpbml0
aW9ucyA9IHN0ZDo6bWFrZV91bmlxdWU8Q3VzdG9tRWxlbWVudERlZmluaXRpb25zPigpOworICAg
ICAgICBtX2N1c3RvbUVsZW1lbnREZWZpbml0aW9ucyA9IEN1c3RvbUVsZW1lbnREZWZpbml0aW9u
czo6Y3JlYXRlKCk7CiAgICAgcmV0dXJuICptX2N1c3RvbUVsZW1lbnREZWZpbml0aW9uczsKIH0K
Kwordm9pZCBEb2N1bWVudDo6c2hhcmVDdXN0b21FbGVtZW50RGVmaW5pdGlvbldpdGgoY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIEFTU0VSVCghbV9jdXN0b21FbGVtZW50RGVmaW5p
dGlvbnMpOworICAgIG1fY3VzdG9tRWxlbWVudERlZmluaXRpb25zID0gZG9jdW1lbnQubV9jdXN0
b21FbGVtZW50RGVmaW5pdGlvbnM7Cit9CiAjZW5kaWYKIAogTGF5b3V0UmVjdCBEb2N1bWVudDo6
YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoYm9vbCYgaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxl
bWVudHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTk3NDgzKQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMDUsNiArMTIw
NSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQogICAgIEN1c3RvbUVs
ZW1lbnREZWZpbml0aW9ucyogY3VzdG9tRWxlbWVudERlZmluaXRpb25zKCkgeyByZXR1cm4gbV9j
dXN0b21FbGVtZW50RGVmaW5pdGlvbnMuZ2V0KCk7IH0KICAgICBDdXN0b21FbGVtZW50RGVmaW5p
dGlvbnMmIGVuc3VyZUN1c3RvbUVsZW1lbnREZWZpbml0aW9ucygpOworICAgIHZvaWQgc2hhcmVD
dXN0b21FbGVtZW50RGVmaW5pdGlvbldpdGgoY29uc3QgRG9jdW1lbnQmKTsKKyNlbHNlCisgICAg
dm9pZCBzaGFyZUN1c3RvbUVsZW1lbnREZWZpbml0aW9uV2l0aChjb25zdCBEb2N1bWVudCYpIHsg
fQogI2VuZGlmCiAKICAgICBjb25zdCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVudFRhcmdldHMo
KSBjb25zdCB7IHJldHVybiBtX3doZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CkBAIC0xNzM5LDcg
KzE3NDIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRT
KQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM+IG1fY3VzdG9t
RWxlbWVudERlZmluaXRpb25zOworICAgIFJlZlB0cjxDdXN0b21FbGVtZW50RGVmaW5pdGlvbnM+
IG1fY3VzdG9tRWxlbWVudERlZmluaXRpb25zOwogI2VuZGlmCiAKICAgICBSZWZQdHI8Q1NTRm9u
dFNlbGVjdG9yPiBtX2ZvbnRTZWxlY3RvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24gMTk3NDgzKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTk2LDcgKzE5Niw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpydW5T
Y3JpcHRzRm9yUGEKIAogICAgICAgICBSZWZQdHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IGNvbnN0
cnVjdGlvbkRhdGEtPmludGVyZmFjZS0+Y29uc3RydWN0RWxlbWVudChjb25zdHJ1Y3Rpb25EYXRh
LT5uYW1lLCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OlNob3VsZENsZWFyRXhjZXB0aW9uOjpD
bGVhcik7CiAgICAgICAgIGlmICghbmV3RWxlbWVudCkgewotICAgICAgICAgICAgLy8gRklYTUU6
IFRoaXMgY2FsbCB0byBkb2N1ZW1udCgpIGlzIHdyb25nIGZvciBlbGVtZW50cyBpbnNpZGUgYSB0
ZW1wbGF0ZSBlbGVtZW50LgorICAgICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5pc1Bh
cnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkpOwogICAgICAgICAgICAgbmV3RWxlbWVudCA9IEhUTUxV
bmtub3duRWxlbWVudDo6Y3JlYXRlKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGNvbnN0cnVjdGlv
bkRhdGEtPm5hbWUsIHhodG1sTmFtZXNwYWNlVVJJKSwgKmRvY3VtZW50KCkpOwogICAgICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5o
CShyZXZpc2lvbiAxOTc0ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNvbnN0cnVjdFRyZWUoQXRvbWljSFRNTFRva2VuJik7CiAKKyAgICBib29sIGlzUGFy
c2luZ1RlbXBsYXRlQ29udGVudHMoKSBjb25zdDsKICAgICBib29sIGhhc1BhcnNlckJsb2NraW5n
U2NyaXB0V29yaygpIGNvbnN0OwogCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgdG8gdGFrZSB0aGUg
cGFyc2VyLWJsb2NraW5nIHNjcmlwdCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFnYWluLgpA
QCAtMTA3LDcgKzEwOCw2IEBAIHByaXZhdGU6CiAgICAgICAgIEFmdGVyQWZ0ZXJGcmFtZXNldCwK
ICAgICB9OwogCi0gICAgYm9vbCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0OwogCiAj
aWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiBQTEFURk9STShJT1MpCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxOTc0ODMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxNi0wMy0wMiAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KKworICAgICAgICBEaXNhbGxvdyBjdXN0b20gZWxlbWVudHMgaW5zaWRl
IHRlbXBsYXRlIGVsZW1lbnRzIGFuZCBzaGFyZSB0aGUgcmVnaXN0cnkgZm9yIHdpbmRvd2xlc3Mg
ZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTQ5NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTQ0ODc1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHZhcmlvdXMgdGVzdHMg
dG8gZW5zdXJlIHRoZSBjdXN0b20gZWxlbWVudHMgcmVnaXN0cnkgaXMgbm90IHNoYXJlZCBiZXR3
ZWVuIGRvY3VtZW50cyB3aXRoCisgICAgICAgIGRpc3RpbmN0IGJyb3dzaW5nIGNvbnRleHQgKGUu
Zy4gaWZyYW1lcykgYnV0IHNoYXJlZCBhbW9uZyB0aGUgb25lcyB0aGF0IHNoYXJlIGEgc2luZ2xl
IGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAgKGUuZy4gZG9jdW1lbnRzIGNyZWF0ZWQgYnkgRE9N
SW1wbGVtZW50YXRpb24pLgorCisgICAgICAgIEFsc28gYWRkZWQgYSB0ZXN0IGNhc2UgZm9yIGRl
ZmluZUN1c3RvbUVsZW1lbnQgdG8gZW5zdXJlIGl0IHRocm93cyBOb3RTdXBwb3J0ZWRFcnJvciB3
aGVuIGl0J3MgY2FsbGVkIG9uCisgICAgICAgIGEgdGVtcGxhdGUgZWxlbWVudCdzIGluZXJ0IG93
bmVyIGRvY3VtZW50IGFzIHdlbGwgYXMgYSBiYXNpYyB0ZXN0IGNhc2UgZm9yIGRvY3VtZW50Lndy
aXRlLgorCisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3Vz
dG9tRWxlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMv
RG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC5odG1sOiBBZGRlZCBhIG5ldyB0ZXN0IGNhc2Uu
CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3Rz
LWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1
c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1k
b2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1l
bnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC5odG1sOiBB
ZGRlZC4KKwogMjAxNi0wMy0wMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYXJraW5nIHN0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwgYXMg
Zmxha3kgb24gbWFjLXdrMQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMv
RG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxl
bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5NzQ4MykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL0RvY3VtZW50LWRlZmluZUN1c3RvbUVsZW1lbnQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogUEFTUyBDaGVjayB0aGUgZXhpc3RlbmNl
IG9mIGRlZmluZUN1c3RvbUVsZW1lbnQgb24gRG9jdW1lbnQgaW50ZXJmYWNlIAogUEFTUyBkb2N1
bWVudC5kZWZpbmVDdXN0b21FbGVtZW50IHNob3VsZCB0aHJvdyB3aXRoIGFuIGludmFsaWQgbmFt
ZSAKIFBBU1MgZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCBzaG91bGQgdGhyb3cgd2l0aCBh
IGR1cGxpY2F0ZSBuYW1lIAorUEFTUyBkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50IG11c3Qg
dGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBjb250ZXh0IG9iamVjdCBpcyBhbiBh
c3NvY2lhdGVkIGluZXJ0IHRlbXBsYXRlIGRvY3VtZW50IAogUEFTUyBkb2N1bWVudC5kZWZpbmVD
dXN0b21FbGVtZW50IHNob3VsZCB0aHJvdyB3aGVuIHRoZSBlbGVtZW50IGludGVyZmFjZSBpcyBu
b3QgYSBjb25zdHJ1Y3RvciAKIFBBU1MgZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCBzaG91
bGQgZGVmaW5lIGFuIGluc3RhbnRpYXRhYmxlIGN1c3RvbSBlbGVtZW50IAogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvRG9j
dW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC5odG1sCShyZXZpc2lvbiAxOTc0ODMpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDE2IEBAIHRlc3QoZnVuY3Rpb24gKCkg
ewogfSwgJ2RvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQgc2hvdWxkIHRocm93IHdpdGggYSBk
dXBsaWNhdGUgbmFtZScpOwogCiB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBjbGFzcyBTb21lQ3Vz
dG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9OworCisgICAgdmFyIHRlbXBsYXRlQ29u
dGVudE93bmVyRG9jdW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpLmNv
bnRlbnQub3duZXJEb2N1bWVudDsKKyAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdOb3RTdXBw
b3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlbXBsYXRlQ29udGVudE93bmVy
RG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCgnc29tZS1jdXN0b20tZWxlbWVudCcsIFNvbWVD
dXN0b21FbGVtZW50KTsKKyAgICB9KTsKKworfSwgJ2RvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1l
bnQgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGNvbnRleHQgb2JqZWN0
IGlzIGFuIGFzc29jaWF0ZWQgaW5lcnQgdGVtcGxhdGUgZG9jdW1lbnQnKTsKKwordGVzdChmdW5j
dGlvbiAoKSB7CiAgICAgYXNzZXJ0X3Rocm93cyh7J25hbWUnOiAnVHlwZUVycm9yJ30sIGZ1bmN0
aW9uICgpIHsgZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCgnaW52YWxpZC1lbGVtZW50Jywg
MSk7IH0sCiAgICAgICAgICdkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50IG11c3QgdGhyb3cg
YSBUeXBlRXJyb3Igd2hlbiB0aGUgZWxlbWVudCBpbnRlcmZhY2UgaXMgYSBudW1iZXInKTsKICAg
ICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyBkb2N1
bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdpbnZhbGlkLWVsZW1lbnQnLCAnMTIzJyk7IH0sCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0
cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXIt
Y29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIv
cGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEhUTUwgcGFyc2Vy
IG11c3QgaW5zdGFudGlhdGUgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBkb2N1bWVudC53cml0ZSAK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1j
b25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25z
dHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLWNvbnN0
cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0
bGU+Q3VzdG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBIVE1MIHBhcnNlcjwvdGl0bGU+Cis8
bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3
YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSFRNTCBwYXJzZXIg
bXVzdCBjb25zdHJ1Y3QgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBkb2N1bWVudC53cml0ZSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuY3NzJz4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzxzY3JpcHQ+CisKK2NsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsg
fQorZG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1
c3RvbUVsZW1lbnQpOworCitkb2N1bWVudC53cml0ZSgnPG15LWN1c3RvbS1lbGVtZW50PjwvbXkt
Y3VzdG9tLWVsZW1lbnQ+Jyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisKKyAgICBh
c3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRf
dHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15Q3VzdG9tRWxlbWVudCk7CisKK30sICdIVE1MIHBh
cnNlciBtdXN0IGluc3RhbnRpYXRlIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgZG9jdW1lbnQud3Jp
dGUnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Ytb3duZXIt
ZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVu
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1l
bGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1lbnQtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIEhUTUwgcGFy
c2VyIG11c3Qgbm90IGluc3RhbnRpYXRlIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgdGVtcGxhdGUg
ZWxlbWVudHMgCitQQVNTIEhUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB0aGUg
Y29udGVudCBkb2N1bWVudCBvZiB0aGUgaWZyYW1lIGZvciBjdXN0b20gZWxlbWVudHMgaW5zaWRl
IHRoZSBpZnJhbWUgCitQQVNTIEhUTUwgcGFyc2VyIG11c3QgaW5zdGFudGlhdGUgYSBjdXN0b20g
ZWxlbWVudCBpbnNpZGUgYSBkb2N1bWVudCB3aXRob3V0IGEgYnJvd3NpbmcgY29udGV4dCB1c2lu
ZyB0aGUgcmVnaXN0cnkgb2YgdGhlIGdsb2JhbCBvYmplY3QgCitQQVNTIEhUTUwgcGFyc2VyIG11
c3QgaW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYSBkb2N1bWVudCB3aXRob3V0
IGEgYnJvd3NlciBjb250ZXh0IHdoZW4gdGhlIGVsZW1lbnQgaXMgZGVmaW5lZCBvbiB0aGF0IGRv
Y3VtZW50IAorUEFTUyBIVE1MIHBhcnNlciBtdXN0IGluc3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1l
bnQgZGVmaW5lZCBpbiBhIGRvY3VtZW50IHdpdGhvdXQgYSBicm93c2VyIGNvbnRleHQgdGhhdCBz
aGFyZXMgdGhlIHNhbWUgZ2xvYmFsIG9iamVjdCAKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVyLWRvY3Vt
ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMv
cGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVyLWRvY3VtZW50Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2Vy
LXVzZXMtcmVnaXN0cnktb2Ytb3duZXItZG9jdW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3Vz
dG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRoZSBIVE1MIHBhcnNlcjwvdGl0bGU+Cis8bWV0YSBu
YW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJr
aXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSFRNTCBwYXJzZXIgbXVzdCB1
c2UgdGhlIG93bmVyIGRvY3VtZW50J3MgY3VzdG9tIGVsZW1lbnQgcmVnaXN0cnkiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmNzcyc+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2Ny
aXB0PgorCitjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH07Citk
b2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9t
RWxlbWVudCk7CisKK2RvY3VtZW50LndyaXRlKCc8dGVtcGxhdGU+PG15LWN1c3RvbS1lbGVtZW50
PjwvbXktY3VzdG9tLWVsZW1lbnQ+PC90ZW1wbGF0ZT4nKTsKKwordGVzdChmdW5jdGlvbiAoKSB7
CisgICAgdmFyIHRlbXBsYXRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndGVtcGxhdGUnKTsK
KyAgICB2YXIgaW5zdGFuY2UgPSB0ZW1wbGF0ZS5jb250ZW50LmZpcnN0Q2hpbGQ7CisKKyAgICBh
c3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50LAorICAgICAgICAnQSBj
dXN0b20gZWxlbWVudCBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfZmFsc2UoaW5zdGFuY2UgaW5zdGFuY2Vv
ZiBNeUN1c3RvbUVsZW1lbnQsCisgICAgICAgICdBIGN1c3RvbSBlbGVtZW50IG11c3Qgbm90IGJl
IGluc3RhbnRpYXRlZCBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50IHVzaW5nIHRoZSByZWdpc3Ry
eSBvZiB0aGUgdGVtcGxhdGUgZWxlbWVudFwncyBvd25lciBkb2N1bWVudCcpOworICAgIGFzc2Vy
dF9lcXVhbHMoaW5zdGFuY2Uub3duZXJEb2N1bWVudCwgdGVtcGxhdGUuY29udGVudC5vd25lckRv
Y3VtZW50LAorICAgICAgICAnQ3VzdG9tIGVsZW1lbnRzIGluc2lkZSBhIHRlbXBsYXRlIG11c3Qg
dXNlIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSBjb250ZW50cyBvd25lciBkb2N1bWVudCBhcyB0
aGUgb3duZXIgZG9jdW1lbnQnKTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3Qgbm90IGluc3RhbnRp
YXRlIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUgdGVtcGxhdGUgZWxlbWVudHMnKTsKKwordmFyIGlm
cmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpZnJhbWUpOworaWZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7CitpZnJh
bWUuY29udGVudERvY3VtZW50LndyaXRlKCc8bXktY3VzdG9tLWVsZW1lbnQ+PC9teS1jdXN0b20t
ZWxlbWVudD4nKTsKK2lmcmFtZS5jb250ZW50RG9jdW1lbnQuY2xvc2UoKTsKKwordGVzdChmdW5j
dGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdteS1jdXN0b20tZWxlbWVudCcpOworCisgICAgYXNzZXJ0X3RydWUoaW5zdGFu
Y2UgaW5zdGFuY2VvZiBpZnJhbWUuY29udGVudFdpbmRvdy5IVE1MRWxlbWVudCwgJ0EgY3VzdG9t
IGVsZW1lbnQgaW5zaWRlIGFuIGlmcmFtZSBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVt
ZW50Jyk7CisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVt
ZW50LAorICAgICAgICAnQSBjdXN0b20gZWxlbWVudCBtdXN0IG5vdCBiZSBpbnN0YW50aWF0ZWQg
aW5zaWRlIGFuIGlmcmFtZSB1c2luZyB0aGUgcmVnaXN0cnkgb2YgdGhlIG93bmVyIGVsZW1lbnRc
J3MgZG9jdW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLm93bmVyRG9jdW1lbnQs
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQsCisgICAgICAgICdUaGUgb3duZXIgZG9jdW1lbnQgb2Yg
Y3VzdG9tIGVsZW1lbnRzIGluc2lkZSBhbiBpZnJhbWUgbXVzdCBiZSB0aGUgY29udGVudCBkb2N1
bWVudCBvZiB0aGUgaWZyYW1lJyk7CisKK30sICdIVE1MIHBhcnNlciBtdXN0IHVzZSB0aGUgcmVn
aXN0cnkgb2YgdGhlIGNvbnRlbnQgZG9jdW1lbnQgb2YgdGhlIGlmcmFtZSBmb3IgY3VzdG9tIGVs
ZW1lbnRzIGluc2lkZSB0aGUgaWZyYW1lJyk7CisKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
aWZyYW1lKTsKKwordmFyIHdpbmRvd2xlc3NEb2N1bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0
aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOword2luZG93bGVzc0RvY3VtZW50Lm9wZW4oKTsKK3dp
bmRvd2xlc3NEb2N1bWVudC53cml0ZSgnPG15LWN1c3RvbS1lbGVtZW50PjwvbXktY3VzdG9tLWVs
ZW1lbnQ+Jyk7Cit3aW5kb3dsZXNzRG9jdW1lbnQuY2xvc2UoKTsKKwordGVzdChmdW5jdGlvbiAo
KSB7CisgICAgdmFyIGluc3RhbmNlID0gd2luZG93bGVzc0RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
J215LWN1c3RvbS1lbGVtZW50Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5j
ZW9mIEhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15
Q3VzdG9tRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5vd25lckRvY3VtZW50
LCB3aW5kb3dsZXNzRG9jdW1lbnQpOworCit9LCAnSFRNTCBwYXJzZXIgbXVzdCBpbnN0YW50aWF0
ZSBhIGN1c3RvbSBlbGVtZW50IGluc2lkZSBhIGRvY3VtZW50IHdpdGhvdXQgYSBicm93c2luZyBj
b250ZXh0IHVzaW5nIHRoZSByZWdpc3RyeSBvZiB0aGUgZ2xvYmFsIG9iamVjdCcpOworCit3aW5k
b3dsZXNzRG9jdW1lbnQub3BlbigpOworY2xhc3MgTXlPdGhlckVsZW1lbnQgZXh0ZW5kcyBNeUN1
c3RvbUVsZW1lbnQgeyB9Cit3aW5kb3dsZXNzRG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCgn
bXktb3RoZXItZWxlbWVudCcsIE15T3RoZXJFbGVtZW50KTsKK3dpbmRvd2xlc3NEb2N1bWVudC53
cml0ZSgnPG15LW90aGVyLWVsZW1lbnQ+PC9teS1vdGhlci1lbGVtZW50PicpOword2luZG93bGVz
c0RvY3VtZW50LmNsb3NlKCk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBpbnN0YW5j
ZSA9IHdpbmRvd2xlc3NEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdteS1vdGhlci1lbGVtZW50Jyk7
CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTsKKyAg
ICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIE15T3RoZXJFbGVtZW50KTsKKyAgICBh
c3NlcnRfZXF1YWxzKGluc3RhbmNlLm93bmVyRG9jdW1lbnQsIHdpbmRvd2xlc3NEb2N1bWVudCk7
CisKK30sICdIVE1MIHBhcnNlciBtdXN0IGluc3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgaW5z
aWRlIGEgZG9jdW1lbnQgd2l0aG91dCBhIGJyb3dzZXIgY29udGV4dCB3aGVuIHRoZSBlbGVtZW50
IGlzIGRlZmluZWQgb24gdGhhdCBkb2N1bWVudCcpOworCitkb2N1bWVudC5vcGVuKCk7Citkb2N1
bWVudC53cml0ZSgnPG15LW90aGVyLWVsZW1lbnQ+PC9teS1vdGhlci1lbGVtZW50PicpOworZG9j
dW1lbnQuY2xvc2UoKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktb3RoZXItZWxlbWVudCcpOworCisgICAgYXNzZXJ0
X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7CisgICAgYXNzZXJ0X3RydWUo
aW5zdGFuY2UgaW5zdGFuY2VvZiBNeU90aGVyRWxlbWVudCk7CisgICAgYXNzZXJ0X2VxdWFscyhp
bnN0YW5jZS5vd25lckRvY3VtZW50LCBkb2N1bWVudCk7CisKK30sICdIVE1MIHBhcnNlciBtdXN0
IGluc3RhbnRpYXRlIGEgY3VzdG9tIGVsZW1lbnQgZGVmaW5lZCBpbiBhIGRvY3VtZW50IHdpdGhv
dXQgYSBicm93c2VyIGNvbnRleHQgdGhhdCBzaGFyZXMgdGhlIHNhbWUgZ2xvYmFsIG9iamVjdCcp
OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272789</attachid>
            <date>2016-03-03 16:17:20 -0800</date>
            <delta_ts>2016-03-03 16:23:34 -0800</delta_ts>
            <desc>Address Darin&apos;s comment and updated per recent discussion on Github</desc>
            <filename>bug-154944-20160303161705.patch</filename>
            <type>text/plain</type>
            <size>19434</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NzUyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE2LTAzLTAzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERpc2FsbG93IGN1c3RvbSBlbGVt
ZW50cyBpbnNpZGUgYSB3aW5kb3ctbGVzcyBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDk0NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjQ5NDQ4NzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRGlzYWxsb3cgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBhIHdpbmRvdy1sZXNzIGRvY3Vt
ZW50cyBzdWNoIGFzIHRoZSBzaGFyZWQgaW5lcnQgZG9jdW1lbnQgb2YgdGVtcGxhdGUgZWxlbWVu
dHMKKyAgICAgICAgYW5kIHRoZSBvbmVzIGNyZWF0ZWQgYnkgRE9NSW1wbGVtZW50YXRpb24uY3Jl
YXRlRG9jdW1lbnQgYW5kIERPTUltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudC4KKwor
ICAgICAgICBUaHJvdyBOb3RTdXBwb3J0ZWRFcnJvciBpbiBkZWZpbmVDdXN0b21FbGVtZW50IHdo
ZW4gaXQncyBjYWxsZWQgaW4gc3VjaCBhIGRvY3VtZW50IGFzIGRpc2N1c3NlZCBpbjoKKyAgICAg
ICAgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJjb21wb25lbnRzL2lzc3Vlcy8zNjkKKworICAg
ICAgICBUZXN0czogZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3Rz
LWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1k
b2N1bWVudC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dGhyb3dOb3RTdXBwb3J0ZWRFcnJvcik6IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6ZGVmaW5l
Q3VzdG9tRWxlbWVudCk6IFRocm93IE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlIGNvbnRleHQg
b2JqZWN0J3MgZG9jdW1lbnQgZG9lc24ndAorICAgICAgICBoYXZlIGEgYnJvd3NpbmcgY29udGV4
dCAoaS5lLiB3aW5kb3ctbGVzcykuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2Ny
aXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKTogUmVwbGFjZWQgYSBGSVhNRSB3aXRoIGFuIGFzc2Vy
dGlvbiBub3cgdGhhdCB3ZQorICAgICAgICBkaXNhbGxvdyBpbnN0YW50aWF0aW9uIG9mIGN1c3Rv
bSBlbGVtZW50cyBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50LgorCiAyMDE2LTAzLTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIGNvbGxhcHNlZCBib3JkZXJzIHBhaW50aW5nIHN1YnBpeGVsIGF3YXJlLgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAx
OTc1MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MzUsNiArNjM1LDEzIEBAIHZvaWQgcmVwb3J0RGVwcmVjYXRlZFNl
dHRlckVycm9yKEpTQzo6RXgKICAgICBjb250ZXh0LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJEZXByZWNhdGVkIGF0
dGVtcHQgdG8gc2V0IHByb3BlcnR5ICciLCBhdHRyaWJ1dGVOYW1lLCAiJyBvbiBhIG5vbi0iLCBp
bnRlcmZhY2VOYW1lLCAiIG9iamVjdC4iKSk7CiB9CiAKK3ZvaWQgdGhyb3dOb3RTdXBwb3J0ZWRF
cnJvcihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpCit7CisgICAg
QVNTRVJUKCFzdGF0ZS5oYWRFeGNlcHRpb24oKSk7CisgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmco
bWVzc2FnZSk7CisgICAgc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGNyZWF0ZURP
TUV4Y2VwdGlvbigmc3RhdGUsIE5PVF9TVVBQT1JURURfRVJSLCAmbWVzc2FnZVN0cmluZykpOwor
fQorCiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IoSlND
OjpFeGVjU3RhdGUmIHN0YXRlLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBjb25zdCBjaGFyKiBh
cmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVlcykKIHsKICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAkocmV2aXNpb24gMTk3NTE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDcgQEAgRE9NV2lu
ZG93JiBmaXJzdERPTVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZQogV0VCQ09SRV9FWFBPUlQgSlNDOjpF
bmNvZGVkSlNWYWx1ZSByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3IoSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lKTsK
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RGVwcmVjYXRlZFNldHRlckVycm9yKEpTQzo6RXhl
Y1N0YXRlJiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRl
TmFtZSk7CiAKK3ZvaWQgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIGNv
bnN0IGNoYXIqIG1lc3NhZ2UpOwogdm9pZCB0aHJvd0FycmF5RWxlbWVudFR5cGVFcnJvcihKU0M6
OkV4ZWNTdGF0ZSYpOwogdm9pZCB0aHJvd0F0dHJpYnV0ZVR5cGVFcnJvcihKU0M6OkV4ZWNTdGF0
ZSYsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUs
IGNvbnN0IGNoYXIqIGV4cGVjdGVkVHlwZSk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHRocm93U2Vx
dWVuY2VUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAxOTc1MTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ3LDYgKzE0NywxMSBAQCBKU1ZhbHVlIEpTRG9jdW1lbnQ6OmRlZmluZUN1
c3RvbUVsZW1lbnQoCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsICJUaGUg
c2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYSBjb25zdHJ1Y3RvciIpOwogCiAgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gd3JhcHBlZCgpOworICAgIGlmICghZG9jdW1lbnQuZG9tV2luZG93KCkpIHsK
KyAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgIkNhbm5vdCBkZWZpbmUgYSBj
dXN0b20gZWxlbWVudCBpbiBhIGRvY3VlbW50IHdpdGhvdXQgYSBicm93c2luZyBjb250ZXh0Iik7
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKwogICAgIHN3aXRjaCAoQ3Vz
dG9tRWxlbWVudERlZmluaXRpb25zOjpjaGVja05hbWUodGFnTmFtZSkpIHsKICAgICBjYXNlIEN1
c3RvbUVsZW1lbnREZWZpbml0aW9uczo6TmFtZVN0YXR1czo6VmFsaWQ6CiAgICAgICAgIGJyZWFr
OwpAQCAtMTYxLDEwICsxNjYsNyBAQCBKU1ZhbHVlIEpTRG9jdW1lbnQ6OmRlZmluZUN1c3RvbUVs
ZW1lbnQoCiAgICAgUXVhbGlmaWVkTmFtZSBuYW1lKG51bGxBdG9tLCB0YWdOYW1lLCBIVE1MTmFt
ZXM6OnhodG1sTmFtZXNwYWNlVVJJKTsKICAgICBhdXRvJiBkZWZpbml0aW9ucyA9IGRvY3VtZW50
LmVuc3VyZUN1c3RvbUVsZW1lbnREZWZpbml0aW9ucygpOwogICAgIGlmIChkZWZpbml0aW9ucy5m
aW5kSW50ZXJmYWNlKHRhZ05hbWUpKSB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2Fn
ZSBlYzsKLSAgICAgICAgZWMuY29kZSA9IE5PVF9TVVBQT1JURURfRVJSOwotICAgICAgICBlYy5t
ZXNzYWdlID0gIkNhbm5vdCBkZWZpbmUgbXVsdGlwbGUgY3VzdG9tIGVsZW1lbnRzIHdpdGggdGhl
IHNhbWUgdGFnIG5hbWUiOwotICAgICAgICBzZXRET01FeGNlcHRpb24oJnN0YXRlLCBlYyk7Cisg
ICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsICJDYW5ub3QgZGVmaW5lIG11bHRp
cGxlIGN1c3RvbSBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIHRhZyBuYW1lIik7CiAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KICAgICBkZWZpbml0aW9ucy5kZWZpbmVFbGVtZW50
KG5hbWUsIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6Y3JlYXRlKG9iamVjdCwgZ2xvYmFsT2Jq
ZWN0KCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24gMTk3NTE5KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDcg
KzE5Niw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGEKIAogICAg
ICAgICBSZWZQdHI8RWxlbWVudD4gbmV3RWxlbWVudCA9IGNvbnN0cnVjdGlvbkRhdGEtPmludGVy
ZmFjZS0+Y29uc3RydWN0RWxlbWVudChjb25zdHJ1Y3Rpb25EYXRhLT5uYW1lLCBKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U6OlNob3VsZENsZWFyRXhjZXB0aW9uOjpDbGVhcik7CiAgICAgICAgIGlm
ICghbmV3RWxlbWVudCkgewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY2FsbCB0byBkb2N1
ZW1udCgpIGlzIHdyb25nIGZvciBlbGVtZW50cyBpbnNpZGUgYSB0ZW1wbGF0ZSBlbGVtZW50Lgor
ICAgICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5pc1BhcnNpbmdUZW1wbGF0ZUNvbnRl
bnRzKCkpOwogICAgICAgICAgICAgbmV3RWxlbWVudCA9IEhUTUxVbmtub3duRWxlbWVudDo6Y3Jl
YXRlKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGNvbnN0cnVjdGlvbkRhdGEtPm5hbWUsIHhodG1s
TmFtZXNwYWNlVVJJKSwgKmRvY3VtZW50KCkpOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCShyZXZpc2lvbiAxOTc1MTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbnN0cnVjdFRy
ZWUoQXRvbWljSFRNTFRva2VuJik7CiAKKyAgICBib29sIGlzUGFyc2luZ1RlbXBsYXRlQ29udGVu
dHMoKSBjb25zdDsKICAgICBib29sIGhhc1BhcnNlckJsb2NraW5nU2NyaXB0V29yaygpIGNvbnN0
OwogCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgdG8gdGFrZSB0aGUgcGFyc2VyLWJsb2NraW5nIHNj
cmlwdCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFnYWluLgpAQCAtMTA3LDcgKzEwOCw2IEBA
IHByaXZhdGU6CiAgICAgICAgIEFmdGVyQWZ0ZXJGcmFtZXNldCwKICAgICB9OwogCi0gICAgYm9v
bCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3Q7CiAgICAgYm9vbCBpc1BhcnNpbmdG
cmFnbWVudE9yVGVtcGxhdGVDb250ZW50cygpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFRFTEVQSE9O
RV9OVU1CRVJfREVURUNUSU9OKSAmJiBQTEFURk9STShJT1MpCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
OTc1MTkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNSBAQAorMjAxNi0wMy0wMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBEaXNhbGxvdyBjdXN0b20gZWxlbWVudHMgaW5zaWRlIHRlbXBsYXRlIGVsZW1lbnRz
IGFuZCBzaGFyZSB0aGUgcmVnaXN0cnkgZm9yIHdpbmRvd2xlc3MgZG9jdW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5NDQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI0OTQ0ODc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHZhcmlvdXMgdGVzdHMgdG8gZW5zdXJlIHRoZSBjdXN0
b20gZWxlbWVudHMgcmVnaXN0cnkgaXMgbm90IHNoYXJlZCBiZXR3ZWVuIGRvY3VtZW50cyB3aXRo
CisgICAgICAgIGRpc3RpbmN0IGJyb3dzaW5nIGNvbnRleHQgKGUuZy4gaWZyYW1lcykgYnV0IHNo
YXJlZCBhbW9uZyB0aGUgb25lcyB0aGF0IHNoYXJlIGEgc2luZ2xlIGJyb3dzaW5nIGNvbnRleHQK
KyAgICAgICAgKGUuZy4gZG9jdW1lbnRzIGNyZWF0ZWQgYnkgRE9NSW1wbGVtZW50YXRpb24pLgor
CisgICAgICAgIEFsc28gYWRkZWQgYSB0ZXN0IGNhc2UgZm9yIGRlZmluZUN1c3RvbUVsZW1lbnQg
dG8gZW5zdXJlIGl0IHRocm93cyBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIGl0J3MgY2FsbGVkIG9u
CisgICAgICAgIGEgdGVtcGxhdGUgZWxlbWVudCdzIGluZXJ0IG93bmVyIGRvY3VtZW50IGFzIHdl
bGwgYXMgYSBiYXNpYyB0ZXN0IGNhc2UgZm9yIGRvY3VtZW50LndyaXRlLgorCisgICAgICAgICog
ZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3Vz
dG9tRWxlbWVudC5odG1sOiBBZGRlZCBhIG5ldyB0ZXN0IGNhc2UuCisgICAgICAgICogZmFzdC9j
dXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWlu
LWRvY3VtZW50LXdyaXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jdXN0
b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRv
Y3VtZW50LXdyaXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRz
L3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXIt
dXNlcy1yZWdpc3RyeS1vZi1vd25lci1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAxNi0wMy0w
MyAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgdGhlICJsYXN0IiB2YWx1ZSBvZiBoYW5naW5nLXB1bmN0dWF0aW9uCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy9Eb2N1bWVudC1kZWZpbmVDdXN0b21FbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk3
NTE5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5l
Q3VzdG9tRWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw5IEBA
CiBQQVNTIENoZWNrIHRoZSBleGlzdGVuY2Ugb2YgZGVmaW5lQ3VzdG9tRWxlbWVudCBvbiBEb2N1
bWVudCBpbnRlcmZhY2UgCiBQQVNTIGRvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQgc2hvdWxk
IHRocm93IHdpdGggYW4gaW52YWxpZCBuYW1lIAogUEFTUyBkb2N1bWVudC5kZWZpbmVDdXN0b21F
bGVtZW50IHNob3VsZCB0aHJvdyB3aXRoIGEgZHVwbGljYXRlIG5hbWUgCitQQVNTIGRvY3VtZW50
LmRlZmluZUN1c3RvbUVsZW1lbnQgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4g
dGhlIGNvbnRleHQgb2JqZWN0IGlzIGFuIGFzc29jaWF0ZWQgaW5lcnQgdGVtcGxhdGUgZG9jdW1l
bnQgCitQQVNTIGRvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQgbXVzdCB0aHJvdyBhIE5vdFN1
cHBvcnRlZEVycm9yIHdoZW4gdGhlIGNvbnRleHQgb2JqZWN0IGlzIGNyZWF0ZWQgYnkgRE9NSW1w
bGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50IAorUEFTUyBkb2N1bWVudC5kZWZpbmVDdXN0
b21FbGVtZW50IG11c3QgdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciB3aGVuIHRoZSBjb250ZXh0
IG9iamVjdCBpcyBjcmVhdGVkIGJ5IERPTUltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50IAog
UEFTUyBkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50IHNob3VsZCB0aHJvdyB3aGVuIHRoZSBl
bGVtZW50IGludGVyZmFjZSBpcyBub3QgYSBjb25zdHJ1Y3RvciAKIFBBU1MgZG9jdW1lbnQuZGVm
aW5lQ3VzdG9tRWxlbWVudCBzaG91bGQgZGVmaW5lIGFuIGluc3RhbnRpYXRhYmxlIGN1c3RvbSBl
bGVtZW50IAogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVu
dC1kZWZpbmVDdXN0b21FbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvRG9jdW1lbnQtZGVmaW5lQ3VzdG9tRWxlbWVudC5odG1sCShyZXZp
c2lvbiAxOTc1MTkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9Eb2N1bWVu
dC1kZWZpbmVDdXN0b21FbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDM2
IEBAIHRlc3QoZnVuY3Rpb24gKCkgewogfSwgJ2RvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQg
c2hvdWxkIHRocm93IHdpdGggYSBkdXBsaWNhdGUgbmFtZScpOwogCiB0ZXN0KGZ1bmN0aW9uICgp
IHsKKyAgICBjbGFzcyBTb21lQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9Owor
CisgICAgdmFyIHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd0ZW1wbGF0ZScpLmNvbnRlbnQub3duZXJEb2N1bWVudDsKKyAgICBhc3NlcnRfdGhy
b3dzKHsnbmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7CisgICAgICAg
IHRlbXBsYXRlQ29udGVudE93bmVyRG9jdW1lbnQuZGVmaW5lQ3VzdG9tRWxlbWVudCgnc29tZS1j
dXN0b20tZWxlbWVudCcsIFNvbWVDdXN0b21FbGVtZW50KTsKKyAgICB9KTsKKworfSwgJ2RvY3Vt
ZW50LmRlZmluZUN1c3RvbUVsZW1lbnQgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdo
ZW4gdGhlIGNvbnRleHQgb2JqZWN0IGlzIGFuIGFzc29jaWF0ZWQgaW5lcnQgdGVtcGxhdGUgZG9j
dW1lbnQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgU29tZUN1c3RvbUVsZW1l
bnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKKworICAgIHZhciB3aW5kb3dsZXNzRG9jdW1lbnQg
PSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKKyAgICBhc3Nl
cnRfdGhyb3dzKHsnbmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHdpbmRvd2xlc3NEb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdzb21lLWN1c3Rv
bS1lbGVtZW50JywgU29tZUN1c3RvbUVsZW1lbnQpOworICAgIH0pOworCit9LCAnZG9jdW1lbnQu
ZGVmaW5lQ3VzdG9tRWxlbWVudCBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiB0
aGUgY29udGV4dCBvYmplY3QgaXMgY3JlYXRlZCBieSBET01JbXBsZW1lbnRhdGlvbi5jcmVhdGVI
VE1MRG9jdW1lbnQnKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgY2xhc3MgU29tZUN1c3Rv
bUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKKworICAgIHZhciB3aW5kb3dsZXNzRG9j
dW1lbnQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcsICdodG1sJywgbnVsbCkKKyAgICBhc3NlcnRfdGhyb3dzKHsn
bmFtZSc6ICdOb3RTdXBwb3J0ZWRFcnJvcid9LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIHdpbmRv
d2xlc3NEb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdzb21lLWN1c3RvbS1lbGVtZW50Jywg
U29tZUN1c3RvbUVsZW1lbnQpOworICAgIH0pOworCit9LCAnZG9jdW1lbnQuZGVmaW5lQ3VzdG9t
RWxlbWVudCBtdXN0IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3Igd2hlbiB0aGUgY29udGV4dCBv
YmplY3QgaXMgY3JlYXRlZCBieSBET01JbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCcpOwor
Cit0ZXN0KGZ1bmN0aW9uICgpIHsKICAgICBhc3NlcnRfdGhyb3dzKHsnbmFtZSc6ICdUeXBlRXJy
b3InfSwgZnVuY3Rpb24gKCkgeyBkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdpbnZhbGlk
LWVsZW1lbnQnLCAxKTsgfSwKICAgICAgICAgJ2RvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQg
bXVzdCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIHRoZSBlbGVtZW50IGludGVyZmFjZSBpcyBhIG51
bWJlcicpOwogICAgIGFzc2VydF90aHJvd3MoeyduYW1lJzogJ1R5cGVFcnJvcid9LCBmdW5jdGlv
biAoKSB7IGRvY3VtZW50LmRlZmluZUN1c3RvbUVsZW1lbnQoJ2ludmFsaWQtZWxlbWVudCcsICcx
MjMnKTsgfSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFy
c2VyL3BhcnNlci1jb25zdHJ1Y3RzLWN1c3RvbS1lbGVtZW50LWluLWRvY3VtZW50LXdyaXRlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL3BhcnNlci9wYXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13
cml0ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SFRNTCBwYXJzZXIgbXVzdCBpbnN0YW50aWF0ZSBjdXN0b20gZWxlbWVudHMgaW5zaWRlIGRvY3Vt
ZW50LndyaXRlIAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJz
ZXIvcGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIv
cGFyc2VyLWNvbnN0cnVjdHMtY3VzdG9tLWVsZW1lbnQtaW4tZG9jdW1lbnQtd3JpdGUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9w
YXJzZXItY29uc3RydWN0cy1jdXN0b20tZWxlbWVudC1pbi1kb2N1bWVudC13cml0ZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzx0aXRsZT5DdXN0b20gRWxlbWVudHM6IENoYW5nZXMgdG8gdGhlIEhUTUwgcGFyc2Vy
PC90aXRsZT4KKzxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0i
bWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJI
VE1MIHBhcnNlciBtdXN0IGNvbnN0cnVjdCBjdXN0b20gZWxlbWVudHMgaW5zaWRlIGRvY3VtZW50
LndyaXRlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPHNjcmlwdD4KKworY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRN
TEVsZW1lbnQgeyB9Citkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50KCdteS1jdXN0b20tZWxl
bWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKK2RvY3VtZW50LndyaXRlKCc8bXktY3VzdG9tLWVs
ZW1lbnQ+PC9teS1jdXN0b20tZWxlbWVudD4nKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAg
dmFyIGluc3RhbmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbXktY3VzdG9tLWVsZW1lbnQn
KTsKKworICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpOwor
ICAgIGFzc2VydF90cnVlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50KTsKKwor
fSwgJ0hUTUwgcGFyc2VyIG11c3QgaW5zdGFudGlhdGUgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBk
b2N1bWVudC53cml0ZScpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3Ry
eS1vZi1vd25lci1kb2N1bWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5LW9mLW93
bmVyLWRvY3VtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY3VzdG9tLWVsZW1lbnRzL3BhcnNlci9wYXJzZXItdXNlcy1yZWdpc3RyeS1vZi1vd25lci1k
b2N1bWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisKK1BB
U1MgSFRNTCBwYXJzZXIgbXVzdCBub3QgaW5zdGFudGlhdGUgY3VzdG9tIGVsZW1lbnRzIGluc2lk
ZSB0ZW1wbGF0ZSBlbGVtZW50cyAKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCBub3QgdXNlIHRoZSBy
ZWdpc3RyeSBvZiB0aGUgb3duZXIgZWxlbWVudCdzIGRvY3VtZW50IGluc2lkZSBhbiBpZnJhbWUg
CitQQVNTIEhUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB0aGUgY29udGVudCBk
b2N1bWVudCBpbnNpZGUgYW4gaWZyYW1lIAorUEFTUyBIVE1MIHBhcnNlciBtdXN0IG5vdCBpbnN0
YW50aWF0ZSBhIGN1c3RvbSBlbGVtZW50IGRlZmluZWQgaW5zaWRlIGFuIGZyYW1lIGluIGZyYW1l
IGVsZW1lbnQncyBvd25lciBkb2N1bWVudCAKK1BBU1MgSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhl
IHJlZ2lzdHJ5IG9mIHdpbmRvdy5kb2N1bWVudCBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCkgCitQQVNTIEhUTUwgcGFy
c2VyIG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB3aW5kb3cuZG9jdW1lbnQgaW4gYSBkb2N1bWVu
dCBjcmVhdGVkIGJ5IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZVhIVE1MRG9jdW1lbnQo
KSAKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNl
ci11c2VzLXJlZ2lzdHJ5LW9mLW93bmVyLWRvY3VtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcGFyc2VyL3BhcnNlci11c2VzLXJlZ2lzdHJ5
LW9mLW93bmVyLWRvY3VtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2N1c3RvbS1lbGVtZW50cy9wYXJzZXIvcGFyc2VyLXVzZXMtcmVnaXN0cnktb2Ytb3duZXItZG9j
dW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBDaGFuZ2VzIHRvIHRo
ZSBIVE1MIHBhcnNlcjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtl
IE5pd2EiIGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2Vy
dCIgY29udGVudD0iSFRNTCBwYXJzZXIgbXVzdCB1c2UgdGhlIG93bmVyIGRvY3VtZW50J3MgY3Vz
dG9tIGVsZW1lbnQgcmVnaXN0cnkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0nc3R5bGVzaGVldCcg
aHJlZj0nLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCitjbGFzcyBNeUN1c3RvbUVsZW1l
bnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH07Citkb2N1bWVudC5kZWZpbmVDdXN0b21FbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CisKK2RvY3VtZW50LndyaXRl
KCc8dGVtcGxhdGU+PG15LWN1c3RvbS1lbGVtZW50PjwvbXktY3VzdG9tLWVsZW1lbnQ+PC90ZW1w
bGF0ZT4nKTsKKwordGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRlbXBsYXRlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigndGVtcGxhdGUnKTsKKyAgICB2YXIgaW5zdGFuY2UgPSB0ZW1wbGF0
ZS5jb250ZW50LmZpcnN0Q2hpbGQ7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5j
ZW9mIEhUTUxFbGVtZW50LAorICAgICAgICAnQSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYSB0ZW1w
bGF0ZSBlbGVtZW50IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBh
c3NlcnRfZmFsc2UoaW5zdGFuY2UgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQsCisgICAgICAg
ICdBIGN1c3RvbSBlbGVtZW50IG11c3Qgbm90IGJlIGluc3RhbnRpYXRlZCBpbnNpZGUgYSB0ZW1w
bGF0ZSBlbGVtZW50IHVzaW5nIHRoZSByZWdpc3RyeSBvZiB0aGUgdGVtcGxhdGUgZWxlbWVudFwn
cyBvd25lciBkb2N1bWVudCcpOworICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2Uub3duZXJEb2N1
bWVudCwgdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50LAorICAgICAgICAnQ3VzdG9tIGVs
ZW1lbnRzIGluc2lkZSBhIHRlbXBsYXRlIG11c3QgdXNlIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0
ZSBjb250ZW50cyBvd25lciBkb2N1bWVudCBhcyB0aGUgb3duZXIgZG9jdW1lbnQnKTsKKworfSwg
J0hUTUwgcGFyc2VyIG11c3Qgbm90IGluc3RhbnRpYXRlIGN1c3RvbSBlbGVtZW50cyBpbnNpZGUg
dGVtcGxhdGUgZWxlbWVudHMnKTsKKwordmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2lmcmFtZScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworaWZyYW1l
LmNvbnRlbnREb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICc8bXktY3VzdG9tLWVsZW1lbnQ+PC9t
eS1jdXN0b20tZWxlbWVudD4nOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaW5zdGFu
Y2UgPSBpZnJhbWUuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3RvbS1lbGVt
ZW50Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIGlmcmFtZS5jb250
ZW50V2luZG93LkhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRfZmFsc2UoaW5zdGFuY2UgaW5zdGFu
Y2VvZiBNeUN1c3RvbUVsZW1lbnQpOworCit9LCAnSFRNTCBwYXJzZXIgbXVzdCBub3QgdXNlIHRo
ZSByZWdpc3RyeSBvZiB0aGUgb3duZXIgZWxlbWVudFwncyBkb2N1bWVudCBpbnNpZGUgYW4gaWZy
YW1lJyk7CisKK2NsYXNzIEVsZW1lbnRJbklGcmFtZSBleHRlbmRzIGlmcmFtZS5jb250ZW50V2lu
ZG93LkhUTUxFbGVtZW50IHsgfTsKK2lmcmFtZS5jb250ZW50RG9jdW1lbnQuZGVmaW5lQ3VzdG9t
RWxlbWVudCgnZWxlbWVudC1pbi1pZnJhbWUnLCBFbGVtZW50SW5JRnJhbWUpOworaWZyYW1lLmNv
bnRlbnREb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICc8ZWxlbWVudC1pbi1pZnJhbWU+PC9lbGVt
ZW50LWluLWlmcmFtZT4nOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgaW5zdGFuY2Ug
PSBpZnJhbWUuY29udGVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2VsZW1lbnQtaW4taWZyYW1l
Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIGlmcmFtZS5jb250ZW50
V2luZG93LkhUTUxFbGVtZW50LCAnQSBjdXN0b20gZWxlbWVudCBpbnNpZGUgYW4gaWZyYW1lIG11
c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQnKTsKKyAgICBhc3NlcnRfdHJ1ZShpbnN0
YW5jZSBpbnN0YW5jZW9mIEVsZW1lbnRJbklGcmFtZSwKKyAgICAgICAgJ0EgY3VzdG9tIGVsZW1l
bnQgbXVzdCBiZSBpbnN0YW50aWF0ZWQgaW5zaWRlIGFuIGlmcmFtZSB1c2luZyB0aGUgcmVnaXN0
cnkgb2YgdGhlIGNvbnRlbnQgZG9jdW1lbnQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNl
Lm93bmVyRG9jdW1lbnQsIGlmcmFtZS5jb250ZW50RG9jdW1lbnQsCisgICAgICAgICdUaGUgb3du
ZXIgZG9jdW1lbnQgb2YgY3VzdG9tIGVsZW1lbnRzIGluc2lkZSBhbiBpZnJhbWUgbXVzdCBiZSB0
aGUgY29udGVudCBkb2N1bWVudCBvZiB0aGUgaWZyYW1lJyk7CisKK30sICdIVE1MIHBhcnNlciBt
dXN0IHVzZSB0aGUgcmVnaXN0cnkgb2YgdGhlIGNvbnRlbnQgZG9jdW1lbnQgaW5zaWRlIGFuIGlm
cmFtZScpOworCitkb2N1bWVudC53cml0ZSgnPGVsZW1lbnQtaW4taWZyYW1lPjwvZWxlbWVudC1p
bi1pZnJhbWU+Jyk7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2VsZW1lbnQtaW4taWZyYW1lJyk7CisKKyAgICBhc3NlcnRf
dHJ1ZShpbnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRfZmFsc2Uo
aW5zdGFuY2UgaW5zdGFuY2VvZiBFbGVtZW50SW5JRnJhbWUpOworCit9LCAnSFRNTCBwYXJzZXIg
bXVzdCBub3QgaW5zdGFudGlhdGUgYSBjdXN0b20gZWxlbWVudCBkZWZpbmVkIGluc2lkZSBhbiBm
cmFtZSBpbiBmcmFtZSBlbGVtZW50XCdzIG93bmVyIGRvY3VtZW50Jyk7CisKK2RvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTsKKwordmFyIHdpbmRvd2xlc3NEb2N1bWVudCA9IGRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOword2luZG93bGVzc0RvY3Vt
ZW50Lm9wZW4oKTsKK3dpbmRvd2xlc3NEb2N1bWVudC53cml0ZSgnPG15LWN1c3RvbS1lbGVtZW50
PjwvbXktY3VzdG9tLWVsZW1lbnQ+Jyk7Cit3aW5kb3dsZXNzRG9jdW1lbnQuY2xvc2UoKTsKKwor
dGVzdChmdW5jdGlvbiAoKSB7CisgICAgdmFyIGluc3RhbmNlID0gd2luZG93bGVzc0RvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisKKyAgICBhc3NlcnRfdHJ1ZShp
bnN0YW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTsKKyAgICBhc3NlcnRfZmFsc2UoaW5zdGFu
Y2UgaW5zdGFuY2VvZiBNeUN1c3RvbUVsZW1lbnQpOworCit9LCAnSFRNTCBwYXJzZXIgbXVzdCB1
c2UgdGhlIHJlZ2lzdHJ5IG9mIHdpbmRvdy5kb2N1bWVudCBpbiBhIGRvY3VtZW50IGNyZWF0ZWQg
YnkgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCknKTsKKword2lu
ZG93bGVzc0RvY3VtZW50ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQg
KCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2h0bWwnLCBudWxsKTsKK3dpbmRvd2xl
c3NEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gJzxteS1jdXN0b20tZWxlbWVu
dD48L215LWN1c3RvbS1lbGVtZW50Pic7CisKK3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIHZhciBp
bnN0YW5jZSA9IHdpbmRvd2xlc3NEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdteS1jdXN0b20tZWxl
bWVudCcpOworCisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVu
dCk7CisgICAgYXNzZXJ0X2ZhbHNlKGluc3RhbmNlIGluc3RhbmNlb2YgTXlDdXN0b21FbGVtZW50
KTsKKworfSwgJ0hUTUwgcGFyc2VyIG11c3QgdXNlIHRoZSByZWdpc3RyeSBvZiB3aW5kb3cuZG9j
dW1lbnQgaW4gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNy
ZWF0ZVhIVE1MRG9jdW1lbnQoKScpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="297560"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>