<?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>163608</bug_id>
          
          <creation_ts>2016-10-18 11:58:45 -0700</creation_ts>
          <short_desc>Leverage new union type support for HTMLSelectElement.add() / HTMLOptionsCollection.add()</short_desc>
          <delta_ts>2016-10-18 16:21:08 -0700</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1241533</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 11:58:45 -0700</bug_when>
    <thetext>Leverage new union type support for HTMLSelectElement.add() / HTMLOptionsCollection.add():
- https://html.spec.whatwg.org/#htmlselectelement
- https://html.spec.whatwg.org/#htmloptionscollection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241539</commentid>
    <comment_count>1</comment_count>
      <attachid>291965</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 12:06:40 -0700</bug_when>
    <thetext>Created attachment 291965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241556</commentid>
    <comment_count>2</comment_count>
      <attachid>291969</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 12:44:50 -0700</bug_when>
    <thetext>Created attachment 291969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241572</commentid>
    <comment_count>3</comment_count>
      <attachid>291975</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 12:59:29 -0700</bug_when>
    <thetext>Created attachment 291975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241590</commentid>
    <comment_count>4</comment_count>
      <attachid>291979</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 13:32:52 -0700</bug_when>
    <thetext>Created attachment 291979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241639</commentid>
    <comment_count>5</comment_count>
      <attachid>291979</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-10-18 15:17:15 -0700</bug_when>
    <thetext>Comment on attachment 291979
Patch

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

&gt; Source/WebCore/html/HTMLOptionsCollection.h:46
&gt; -    WEBCORE_EXPORT void add(HTMLElement&amp;, HTMLElement* beforeElement, ExceptionCode&amp;);
&gt; -    WEBCORE_EXPORT void add(HTMLElement&amp;, int beforeIndex, ExceptionCode&amp;);
&gt; +    using OptionOrOptGroupElement = std::experimental::variant&lt;RefPtr&lt;HTMLOptionElement&gt;, RefPtr&lt;HTMLOptGroupElement&gt;&gt;;
&gt; +    using HTMLElementOrInt = std::experimental::variant&lt;RefPtr&lt;HTMLElement&gt;, int&gt;;
&gt; +    WEBCORE_EXPORT ExceptionOr&lt;void&gt; add(const OptionOrOptGroupElement&amp;, Optional&lt;HTMLElementOrInt&gt; before);

I&apos;m not really sure if this is an improvement...
I think the old overloaded function was easier to read &amp; understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241647</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 15:34:35 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 291979 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291979&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLOptionsCollection.h:46
&gt; &gt; -    WEBCORE_EXPORT void add(HTMLElement&amp;, HTMLElement* beforeElement, ExceptionCode&amp;);
&gt; &gt; -    WEBCORE_EXPORT void add(HTMLElement&amp;, int beforeIndex, ExceptionCode&amp;);
&gt; &gt; +    using OptionOrOptGroupElement = std::experimental::variant&lt;RefPtr&lt;HTMLOptionElement&gt;, RefPtr&lt;HTMLOptGroupElement&gt;&gt;;
&gt; &gt; +    using HTMLElementOrInt = std::experimental::variant&lt;RefPtr&lt;HTMLElement&gt;, int&gt;;
&gt; &gt; +    WEBCORE_EXPORT ExceptionOr&lt;void&gt; add(const OptionOrOptGroupElement&amp;, Optional&lt;HTMLElementOrInt&gt; before);
&gt; 
&gt; I&apos;m not really sure if this is an improvement...
&gt; I think the old overloaded function was easier to read &amp; understand.

But the new IDL matches the specification and the generator now generates more correct code as shown by the newly passing W3C test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241650</commentid>
    <comment_count>7</comment_count>
      <attachid>291979</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-10-18 15:37:12 -0700</bug_when>
    <thetext>Comment on attachment 291979
Patch

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

&gt; Source/WebCore/html/HTMLSelectElement.cpp:233
&gt; +        beforeElement = std::experimental::visit(visitor, before.value());

I think it&apos;s more readable to define visitor inside the call to std::experimental::visit since it&apos;s not used elsewhere.

&gt; Source/WebCore/html/HTMLSelectElement.cpp:235
&gt; +    HTMLElement&amp; toInsert = std::experimental::visit([](const auto&amp; htmlElement) -&gt; HTMLElement&amp; {

As in here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241660</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 15:54:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 291979 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291979&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLSelectElement.cpp:233
&gt; &gt; +        beforeElement = std::experimental::visit(visitor, before.value());
&gt; 
&gt; I think it&apos;s more readable to define visitor inside the call to
&gt; std::experimental::visit since it&apos;s not used elsewhere.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLSelectElement.cpp:235
&gt; &gt; +    HTMLElement&amp; toInsert = std::experimental::visit([](const auto&amp; htmlElement) -&gt; HTMLElement&amp; {
&gt; 
&gt; As in here.

Hmm, I personally think it gets too crowded if we pass more than 1 lambda to std::visit().

I followed the pattern used by Sam so far:
Source/WebCore/dom/MessageEvent.cpp:    auto visitor = WTF::makeVisitor(
Source/WebCore/dom/Node.cpp:    auto visitor = WTF::makeVisitor(
Source/WebCore/dom/Node.cpp:    auto visitor = WTF::makeVisitor(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241669</commentid>
    <comment_count>9</comment_count>
      <attachid>291979</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 16:21:03 -0700</bug_when>
    <thetext>Comment on attachment 291979
Patch

Clearing flags on attachment: 291979

Committed r207497: &lt;http://trac.webkit.org/changeset/207497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241670</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-18 16:21:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291965</attachid>
            <date>2016-10-18 12:06:40 -0700</date>
            <delta_ts>2016-10-18 12:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163608-20161018120306.patch</filename>
            <type>text/plain</type>
            <size>26546</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZmZTRkY2Y3MjQ1MDcw
MjgwYmMzNDgzZTFlYjJhNjU4OGZkZDJiNS4uZGMzMGZjNWI2NmFhZjQyZDhkMGY2Yzk2YTE2ZmFh
NDNmODIwZmFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTEwLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTGV2ZXJhZ2UgbmV3IHVuaW9u
IHR5cGUgc3VwcG9ydCBmb3IgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgLyBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uYWRkKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBlIHN1cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVt
ZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpOgorICAgICAgICAtIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2h0bWxzZWxlY3RlbGVtZW50CisgICAgICAgIC0gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jaHRtbG9wdGlvbnNjb2xsZWN0aW9uCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlRGVm
YXVsdFZhbHVlKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJ
c0VtcHR5Q2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlMSk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jQ2FsbGVy
KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRp
b25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlv
bi5oOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNl
dE9wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3Ro
KToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGw6CisKIDIwMTYtMTAtMTggIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBkZXBlbmRlbmN5IGN5Y2xlIHdpdGggVUlLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCBmNWZlMGUwMGY0M2NiNDk5OTk3YjY3YjY2MmQyZTY1ZGM1YmRj
OWJkLi5iMjhmN2VkYzcxNWFkZDIwNGMzNmRmOGQwZDUxYWU5YTQ1MzJmOWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMTAtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBMZXZlcmFnZSBuZXcgdW5pb24gdHlwZSBzdXBwb3J0IGZv
ciBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSAvIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNjA4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGFk
ZCgpIGNhbGwgc2l0ZXMgbm93IHRoYXQgaXQgdGFrZXMgc3RkOjp2YXJpYW50IHR5cGVzIGluLgor
CisgICAgICAgICogRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbToKKyAgICAgICAgKC1b
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGFkZDppbmRleDpdKToKKyAgICAgICAgKiBET00vRE9N
SFRNTFNlbGVjdEVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxTZWxlY3RFbGVtZW50IGFk
ZDpiZWZvcmU6XSk6CisKIDIwMTYtMTAtMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBSZXNvbHZlIGNvbnN0cmFpbnRzIGFu
ZCBlbnVtZXJhdGUgZGV2aWNlcyBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4MzJjYmIyMGE0
MzFmNzA5ZmNkYjcwODAzODA4ZGI0YTA5NWZjZGVkLi42NDNhZGFmYzg4YjAzZDNhOTgzNTU4NWQw
ODViMDAwOTUwNmZkOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtOTk2LDI1ICs5OTYsMzEgQEAgc3ViIEdldERpY3Rp
b25hcnlDbGFzc05hbWUKIAogc3ViIEdlbmVyYXRlRGVmYXVsdFZhbHVlCiB7Ci0gICAgbXkgKCRp
bnRlcmZhY2UsICRtZW1iZXIpID0gQF87CisgICAgbXkgKCRpbnRlcmZhY2UsICRzaWduYXR1cmUp
ID0gQF87CiAKLSAgICBteSAkZGVmYXVsdFZhbHVlID0gJG1lbWJlci0+ZGVmYXVsdDsKKyAgICBt
eSAkZGVmYXVsdFZhbHVlID0gJHNpZ25hdHVyZS0+ZGVmYXVsdDsKIAotICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNFbnVtVHlwZSgkbWVtYmVyLT50eXBlKSkgeworICAgIGlmICgkY29kZUdlbmVy
YXRvci0+SXNFbnVtVHlwZSgkc2lnbmF0dXJlLT50eXBlKSkgewogICAgICAgICAjIEZJWE1FOiBX
b3VsZCBiZSBuaWNlIHRvIHJlcG9ydCBhbiBlcnJvciBpZiB0aGUgdmFsdWUgZG9lcyBub3QgaGF2
ZSBxdW90ZSBtYXJrcyBhcm91bmQgaXQuCiAgICAgICAgICMgRklYTUU6IFdvdWxkIGJlIG5pY2Ug
dG8gcmVwb3J0IGFuIGVycm9yIGlmIHRoZSB2YWx1ZSBpcyBub3Qgb25lIG9mIHRoZSBlbnVtZXJh
dGlvbiB2YWx1ZXMuCi0gICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJhdGlvbkNsYXNz
TmFtZSgkbWVtYmVyLT50eXBlLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgbXkgJGNsYXNzTmFtZSA9
IEdldEVudW1lcmF0aW9uQ2xhc3NOYW1lKCRzaWduYXR1cmUtPnR5cGUsICRpbnRlcmZhY2UpOwog
ICAgICAgICBteSAkZW51bWVyYXRpb25WYWx1ZU5hbWUgPSBHZXRFbnVtZXJhdGlvblZhbHVlTmFt
ZShzdWJzdHIoJGRlZmF1bHRWYWx1ZSwgMSwgLTEpKTsKICAgICAgICAgcmV0dXJuICRjbGFzc05h
bWUgLiAiOjoiIC4gJGVudW1lcmF0aW9uVmFsdWVOYW1lOwogICAgIH0KICAgICBpZiAoJGRlZmF1
bHRWYWx1ZSBlcSAibnVsbCIpIHsKLSAgICAgICAgcmV0dXJuICJqc051bGwoKSIgaWYgJG1lbWJl
ci0+dHlwZSBlcSAiYW55IjsKLSAgICAgICAgcmV0dXJuICJudWxscHRyIiBpZiAkY29kZUdlbmVy
YXRvci0+SXNXcmFwcGVyVHlwZSgkbWVtYmVyLT50eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNU
eXBlZEFycmF5VHlwZSgkbWVtYmVyLT50eXBlKTsKLSAgICAgICAgcmV0dXJuICJTdHJpbmcoKSIg
aWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkbWVtYmVyLT50eXBlKTsKKyAgICAgICAg
cmV0dXJuICJOdWxsb3B0IiBpZiAkc2lnbmF0dXJlLT5pZGxUeXBlLT5pc1VuaW9uOworICAgICAg
ICByZXR1cm4gImpzTnVsbCgpIiBpZiAkc2lnbmF0dXJlLT50eXBlIGVxICJhbnkiOworICAgICAg
ICByZXR1cm4gIm51bGxwdHIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRzaWdu
YXR1cmUtPnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCRzaWduYXR1
cmUtPnR5cGUpOworICAgICAgICByZXR1cm4gIlN0cmluZygpIiBpZiAkY29kZUdlbmVyYXRvci0+
SXNTdHJpbmdUeXBlKCRzaWduYXR1cmUtPnR5cGUpOwogICAgICAgICByZXR1cm4gIk51bGxvcHQi
OwogICAgIH0KLSAgICByZXR1cm4gInsgfSIgaWYgJGRlZmF1bHRWYWx1ZSBlcSAiW10iOworICAg
IGlmICgkZGVmYXVsdFZhbHVlIGVxICJbXSIpIHsKKyAgICAgICAgbXkgJG5hdGl2ZVR5cGUgPSBH
ZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSgkaW50ZXJmYWNlLCAkc2lnbmF0dXJlKTsKKyAgICAg
ICAgcmV0dXJuICIkbmF0aXZlVHlwZSgpIgorICAgIH0KKwogICAgIHJldHVybiAianNVbmRlZmlu
ZWQoKSIgaWYgJGRlZmF1bHRWYWx1ZSBlcSAidW5kZWZpbmVkIjsKKyAgICByZXR1cm4gIlBOYU4i
IGlmICRkZWZhdWx0VmFsdWUgZXEgIk5hTiI7CiAKICAgICByZXR1cm4gJGRlZmF1bHRWYWx1ZTsK
IH0KQEAgLTQzNDIsMTAgKzQzNDgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gJHVzZUF0b21pY1N0cmlu
ZyA/ICJBdG9taWNTdHJpbmcoJGRlZmF1bHRWYWx1ZSwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkiIDogIkFTQ0lJTGl0ZXJhbCgkZGVmYXVsdFZhbHVlKSI7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIm51bGxwdHIiIGlmICRkZWZhdWx0VmFsdWUg
ZXEgIm51bGwiOwotICAgICAgICAgICAgICAgICAgICAgICAgJGRlZmF1bHRWYWx1ZSA9ICJQTmFO
IiBpZiAkZGVmYXVsdFZhbHVlIGVxICJOYU4iOwotICAgICAgICAgICAgICAgICAgICAgICAgJGRl
ZmF1bHRWYWx1ZSA9ICIkbmF0aXZlVHlwZSgpIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJbXSI7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIkpTVmFsdWU6OkpTVW5kZWZp
bmVkIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJ1bmRlZmluZWQiOworICAgICAgICAgICAgICAgICAg
ICAgICAgJGRlZmF1bHRWYWx1ZSA9IEdlbmVyYXRlRGVmYXVsdFZhbHVlKCRpbnRlcmZhY2UsICRw
YXJhbWV0ZXIpOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAg
JG91dGVyID0gInN0YXRlLT4kYXJndW1lbnRMb29rdXBNZXRob2QoJGFyZ3VtZW50SW5kZXgpLmlz
VW5kZWZpbmVkKCkgPyAkZGVmYXVsdFZhbHVlIDogIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRHcm91cEVsZW1lbnQuaWRsCmluZGV4IDI2YTc4MmZkNWM3OWE1MWFmN2FiYWZkOWQ1YjAx
NGFkODcwNzE1YzkuLjFiNTM2NDBmNDU2MDNmMzUyY2M1ZGI1YWRiMDcwYzRmMGM5MDAzYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmlkbApAQCAtMTcsNyAr
MTcsOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotaW50ZXJmYWNl
IEhUTUxPcHRHcm91cEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CitbCisgICAgSlNHZW5lcmF0ZVRv
TmF0aXZlT2JqZWN0LAorXSBpbnRlcmZhY2UgSFRNTE9wdEdyb3VwRWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCmluZGV4IDc3MDBhMjRjNDAxYjQ3ZGFlNjFh
Y2Q2NzQ0OWYzZmNhNjY4ZDViMjkuLjQ1OWM4MjYwYzZiOGE0MWY5OWQ1OTUyODg4MGMwYzkxOWYz
NzY4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5j
cHAKQEAgLTM2LDE0ICszNiw5IEBAIFJlZjxIVE1MT3B0aW9uc0NvbGxlY3Rpb24+IEhUTUxPcHRp
b25zQ29sbGVjdGlvbjo6Y3JlYXRlKEhUTUxTZWxlY3RFbGVtZW50JiBzZWxlCiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHNlbGVjdCkpOwogfQogCi12b2lk
IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVtZW50LCBIVE1MRWxl
bWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitFeGNlcHRpb25Pcjx2b2lk
PiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZChjb25zdCBPcHRpb25Pck9wdEdyb3VwRWxlbWVu
dCYgZWxlbWVudCwgT3B0aW9uYWw8SFRNTEVsZW1lbnRPckludD4gYmVmb3JlKQogewotICAgIHNl
bGVjdEVsZW1lbnQoKS5hZGQoZWxlbWVudCwgYmVmb3JlRWxlbWVudCwgZWMpOwotfQotCi12b2lk
IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVtZW50LCBpbnQgYmVm
b3JlSW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGFkZChlbGVtZW50LCBpdGVtKGJl
Zm9yZUluZGV4KSwgZWMpOworICAgIHJldHVybiBzZWxlY3RFbGVtZW50KCkuYWRkKGVsZW1lbnQs
IGJlZm9yZSk7CiB9CiAKIHZvaWQgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoaW50IGlu
ZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgKaW5kZXgg
OWJkOTYwMmY0NjkzZGMxNmMyNzRiNGMzZmNjNDQwZjU2NDg5NGQ2OS4uZjI1MTE2ZDc1YWQzYzM2
NGEzNGU4Y2M1ODQzYzUxZWQwOWRjMWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25zQ29sbGVjdGlvbi5oCkBAIC00MSw4ICs0MSw5IEBAIHB1YmxpYzoKICAgICBIVE1MT3B0
aW9uRWxlbWVudCogaXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0IGZpbmFsOwogICAgIEhUTUxP
cHRpb25FbGVtZW50KiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdCBm
aW5hbDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkKEhUTUxFbGVtZW50JiwgSFRNTEVs
ZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFkZChIVE1MRWxlbWVudCYsIGludCBiZWZvcmVJbmRleCwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHVzaW5nIE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gc3RkOjpleHBlcmltZW50YWw6
OnZhcmlhbnQ8UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiwgUmVmUHRyPEhUTUxPcHRHcm91cEVs
ZW1lbnQ+PjsKKyAgICB1c2luZyBIVE1MRWxlbWVudE9ySW50ID0gc3RkOjpleHBlcmltZW50YWw6
OnZhcmlhbnQ8UmVmUHRyPEhUTUxFbGVtZW50PiwgaW50PjsKKyAgICBXRUJDT1JFX0VYUE9SVCBF
eGNlcHRpb25Pcjx2b2lkPiBhZGQoY29uc3QgT3B0aW9uT3JPcHRHcm91cEVsZW1lbnQmLCBPcHRp
b25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZvcmUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVtb3ZlKGludCBpbmRleCk7CiAgICAgdm9pZCByZW1vdmUoSFRNTE9wdGlvbkVsZW1lbnQmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsCmluZGV4
IDhkNTgwNzFhZmI3Yjk4YjczZjNmZWE5MGU2ZDM3MDI0M2RiYjAyODUuLjZmODUyNjEyMWYxZGI4
MmQ3NTA0YTc5NDVmNDgxMjk2YjIxNjUyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKQEAgLTMwLDEwICszMCw3IEBACiAgICAgZ2V0dGVyIEhU
TUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIGdldHRlciBI
VE1MT3B0aW9uRWxlbWVudD8gbmFtZWRJdGVtKERPTVN0cmluZyBuYW1lKTsKIAotICAgIC8vIEZJ
WE1FOiBTaG91bGQgYmU6Ci0gICAgLy8gdm9pZCBhZGQoKEhUTUxPcHRpb25FbGVtZW50IG9yIEhU
TUxPcHRHcm91cEVsZW1lbnQpIGVsZW1lbnQsIG9wdGlvbmFsIChIVE1MRWxlbWVudCBvciBsb25n
KT8gYmVmb3JlID0gbnVsbCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFk
ZChIVE1MRWxlbWVudCBlbGVtZW50LCBvcHRpb25hbCBIVE1MRWxlbWVudD8gYmVmb3JlID0gbnVs
bCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBl
bGVtZW50LCBsb25nIGluZGV4KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgYWRkKChI
VE1MT3B0aW9uRWxlbWVudCBvciBIVE1MT3B0R3JvdXBFbGVtZW50KSBlbGVtZW50LCBvcHRpb25h
bCAoSFRNTEVsZW1lbnQgb3IgbG9uZyk/IGJlZm9yZSA9IG51bGwpOwogCiAgICAgdm9pZCByZW1v
dmUobG9uZyBpbmRleCk7CiAgICAgLy8gRklYTUU6IFRoaXMgb3ZlcmxvYWQgaXMgbm90IGluIHRo
ZSBzcGVjaWZpY2F0aW9uIGFuZCBoYXMgYmVlbiBkcm9wcGVkIGluIEJsaW5rLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlZTc0YjI3MjA3NmI3NTZlM2U5
OWRlZDY5NDAwMzBkMjkxZDIwYjc1Li4wYjZmMGYyNGVkM2UwY2VmZGYzZTMwZmViYWI3NDgzMjhj
Yjc3MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAt
MjIxLDE2ICsyMjEsMjcgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjphY3RpdmVTZWxlY3Rpb25F
bmRMaXN0SW5kZXgoKSBjb25zdAogICAgIHJldHVybiBsYXN0U2VsZWN0ZWRMaXN0SW5kZXgoKTsK
IH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxFbGVtZW50JiBlbGVtZW50LCBI
VE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitFeGNlcHRpb25P
cjx2b2lkPiBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKGNvbnN0IE9wdGlvbk9yT3B0R3JvdXBFbGVt
ZW50JiBlbGVtZW50LCBPcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZvcmUpCiB7Ci0gICAg
aWYgKCEoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPEhUTUxIUkVsZW1lbnQ+
KGVsZW1lbnQpIHx8IGlzPEhUTUxPcHRHcm91cEVsZW1lbnQ+KGVsZW1lbnQpKSkKLSAgICAgICAg
cmV0dXJuOwotICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmVFbGVtZW50LCBlYyk7Ci19
CisgICAgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChiZWZv
cmUpIHsKKyAgICAgICAgYXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcigKKyAgICAgICAg
ICAgIFtdKGNvbnN0IFJlZlB0cjxIVE1MRWxlbWVudD4mIGVsZW1lbnQpIC0+IEhUTUxFbGVtZW50
KiB7IHJldHVybiBlbGVtZW50LmdldCgpOyB9LAorICAgICAgICAgICAgW3RoaXNdKGludCBpbmRl
eCkgLT4gSFRNTEVsZW1lbnQqIHsgcmV0dXJuIGl0ZW0oaW5kZXgpOyB9CisgICAgICAgICk7CiAK
LXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCYgZWxlbWVudCwgaW50IGJl
Zm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBhZGQoZWxlbWVudCwgaXRlbShi
ZWZvcmVJbmRleCksIGVjKTsKKyAgICAgICAgYmVmb3JlRWxlbWVudCA9IHN0ZDo6ZXhwZXJpbWVu
dGFsOjp2aXNpdCh2aXNpdG9yLCBiZWZvcmUudmFsdWUoKSk7CisgICAgfQorICAgIEhUTUxFbGVt
ZW50JiB0b0luc2VydCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp2aXNpdChbXShjb25zdCBhdXRvJiBo
dG1sRWxlbWVudCkgLT4gSFRNTEVsZW1lbnQmIHsKKyAgICAgICAgcmV0dXJuICpodG1sRWxlbWVu
dDsKKyAgICB9LCBlbGVtZW50KTsKKworCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
aW5zZXJ0QmVmb3JlKHRvSW5zZXJ0LCBiZWZvcmVFbGVtZW50LCBlYyk7CisgICAgaWYgKGVjKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgZWMgfTsKKyAgICByZXR1cm4geyB9OwogfQogCiB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmVCeUluZGV4KGludCBvcHRpb25JbmRleCkKQEAg
LTQ0MCw3ICs0NTEsOSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRPcHRpb24odW5zaWdu
ZWQgaW5kZXgsIEhUTUxPcHRpb25FbGVtZW50JiBvcHRpb24sIEV4YwogICAgIH0KICAgICAvLyBG
aW5hbGx5IGFkZCB0aGUgbmV3IGVsZW1lbnQuCiAgICAgaWYgKCFlYykgewotICAgICAgICBhZGQo
b3B0aW9uLCBiZWZvcmUuZ2V0KCksIGVjKTsKKyAgICAgICAgYXV0byBleGNlcHRpb24gPSBhZGQo
Jm9wdGlvbiwgSFRNTEVsZW1lbnRPckludChiZWZvcmUuZ2V0KCkpKTsKKyAgICAgICAgaWYgKGV4
Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIGVjID0gZXhjZXB0aW9uLnJlbGVh
c2VFeGNlcHRpb24oKS5jb2RlKCk7CiAgICAgICAgIGlmIChkaWZmID49IDAgJiYgb3B0aW9uLnNl
bGVjdGVkKCkpCiAgICAgICAgICAgICBvcHRpb25TZWxlY3Rpb25TdGF0ZUNoYW5nZWQob3B0aW9u
LCB0cnVlKTsKICAgICB9CkBAIC00NTYsOSArNDY5LDExIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OnNldExlbmd0aCh1bnNpZ25lZCBuZXdMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IGlmIChkaWZmIDwgMCkgeyAvLyBBZGQgZHVtbXkgZWxlbWVudHMuCiAgICAgICAgIGRvIHsKICAg
ICAgICAgICAgIGF1dG8gb3B0aW9uID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KG9wdGlvblRh
ZywgZmFsc2UpOwotICAgICAgICAgICAgYWRkKGRvd25jYXN0PEhUTUxFbGVtZW50PihvcHRpb24u
Z2V0KCkpLCBudWxscHRyLCBlYyk7Ci0gICAgICAgICAgICBpZiAoZWMpCisgICAgICAgICAgICBh
dXRvIGV4Y2VwdGlvbiA9IGFkZChkb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVudD4ob3B0aW9uLnB0
cigpKSwgTnVsbG9wdCk7CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigp
KSB7CisgICAgICAgICAgICAgICAgZWMgPSBleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpLmNv
ZGUoKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICB9IHdoaWxl
ICgrK2RpZmYpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8mIGl0ZW1zID0gbGlzdEl0ZW1z
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggM2UzNjc3YmJm
MzdiYjFhN2Q5ZDgzNDdjMzBlN2NlODhhZjkyNjExOS4uN2RlNThkMTBjNDgwZWI4YjU1NTI2OTI0
NDE2ZjI4YjJhNTMxODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aApAQCAtNTEsOCArNTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHVzZXNNZW51TGlzdCgpIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGQoSFRNTEVsZW1lbnQmLCBIVE1MRWxl
bWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgYWRkKEhUTUxF
bGVtZW50JiwgaW50IGJlZm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJik7CisgICAgdXNpbmcgT3B0
aW9uT3JPcHRHcm91cEVsZW1lbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFyaWFudDxSZWZQdHI8
SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4+OworICAgIHVz
aW5nIEhUTUxFbGVtZW50T3JJbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFyaWFudDxSZWZQdHI8
SFRNTEVsZW1lbnQ+LCBpbnQ+OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+
IGFkZChjb25zdCBPcHRpb25Pck9wdEdyb3VwRWxlbWVudCYsIE9wdGlvbmFsPEhUTUxFbGVtZW50
T3JJbnQ+IGJlZm9yZSk7CiAKICAgICB1c2luZyBOb2RlOjpyZW1vdmU7CiAgICAgdm9pZCByZW1v
dmUoSFRNTE9wdGlvbkVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5pZGwKaW5kZXggYzNiODUzMDkyOWU3OTEzYWY2M2Q0MmRkZjljYTkzYzVhN2NmNTA2MC4u
MDdhOGMzZDAyOWUwZjlhMWE1YjgxZTIyMTQ2YzA0YjY2YzcwMGEzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQwLDEwICs0MCw3IEBACiAgICAgZ2V0
dGVyIEhUTUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIEhU
TUxPcHRpb25FbGVtZW50PyBuYW1lZEl0ZW0oRE9NU3RyaW5nIG5hbWUpOwogCi0gICAgW01heVRo
cm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBlbGVtZW50LCBvcHRpb25h
bCBIVE1MRWxlbWVudD8gYmVmb3JlID0gbnVsbCk7Ci0gICAgLy8gRklYTUU6IFNob3VsZCBiZToK
LSAgICAvLyB2b2lkIGFkZCgoSFRNTE9wdGlvbkVsZW1lbnQgb3IgSFRNTE9wdEdyb3VwRWxlbWVu
dCkgZWxlbWVudCwgb3B0aW9uYWwgKEhUTUxFbGVtZW50IG9yIGxvbmcpPyBiZWZvcmUgPSBudWxs
KTsKLSAgICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgYWRkKEhUTUxFbGVtZW50IGVs
ZW1lbnQsIGxvbmcgaW5kZXgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBhZGQoKEhU
TUxPcHRpb25FbGVtZW50IG9yIEhUTUxPcHRHcm91cEVsZW1lbnQpIGVsZW1lbnQsIG9wdGlvbmFs
IChIVE1MRWxlbWVudCBvciBsb25nKT8gYmVmb3JlID0gbnVsbCk7CiAKICAgICBbTWF5VGhyb3dM
ZWdhY3lFeGNlcHRpb25dIHZvaWQgcmVtb3ZlKCk7IC8vIENoaWxkTm9kZSBvdmVybG9hZAogICAg
IC8vIEZJWE1FOiBUaGlzIG92ZXJsb2FkIGlzIG5vdCBpbiB0aGUgc3BlY2lmaWNhdGlvbiBhbmQg
d2FzIGRyb3BwZWQgaW4gQmxpbmsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00v
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5tbQppbmRleCA1NGQ2YmZlM2YwYTgxY2IwNTgzYmYyYWI5MGFl
NTQ1MGZmMmE1NTY5Li41YTQzYjdmOWRjZDkyNDkzNmIwMGZkMTFjYTg4NWY5MzVlYmQ2ZDM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
bW0KQEAgLTI5LDcgKzI5LDggQEAKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJE
T01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCi0jaW1wb3J0
IDxXZWJDb3JlL0hUTUxPcHRpb25FbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxPcHRH
cm91cEVsZW1lbnQuaAorI2ltcG9ydCA8V2ViQ29yZS9IVE1MT3B0aW9uRWxlbWVudC5oPj4KICNp
bXBvcnQgPFdlYkNvcmUvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob2RlLmg+CkBAIC0z
OCw2ICszOSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9HZXRQ
dHIuaD4KKyNpbXBvcnQgPHd0Zi9WYXJpYW50Lmg+CiAKICNkZWZpbmUgSU1QTCByZWludGVycHJl
dF9jYXN0PFdlYkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbio+KF9pbnRlcm5hbCkKIApAQCAt
OTAsOSArOTIsOSBAQCAtICh2b2lkKWFkZDooRE9NSFRNTE9wdGlvbkVsZW1lbnQgKilvcHRpb24g
aW5kZXg6KHVuc2lnbmVkKWluZGV4CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIGlmICghb3B0aW9uKQogICAgICAgICByYWlzZVR5cGVFcnJvckV4Y2VwdGlv
bigpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPmFkZCgq
Y29yZShvcHRpb24pLCBpbmRleCwgZWMpOwotICAgIHJhaXNlT25ET01FcnJvcihlYyk7CisgICAg
YXV0byBleGNlcHRpb24gPSBJTVBMLT5hZGQoY29yZShvcHRpb24pLCBPcHRpb25hbDxXZWJDb3Jl
OjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OkhUTUxFbGVtZW50T3JJbnQ+KHN0YXRpY19jYXN0PGlu
dD4oaW5kZXgpKSk7CisgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAg
cmFpc2VPbkRPTUVycm9yKGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKIH0K
IAogLSAodm9pZClyZW1vdmU6KHVuc2lnbmVkKWluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9E
T00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0KaW5kZXggNmE3N2FkNzhiYmFkYmNmYzE1OTg3N2M3
N2I0NzlmOTUwZjY2YzYzMy4uNjgwODdkMDhlYzdmNWNhYTNiNzJjYmQzMTUyZTdiYjQ4Mjk3NmVl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxlbWVudC5tbQpA
QCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9IVE1MRm9ybUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxPcHRHcm91cEVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxTZWxl
Y3RFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgpA
QCAtMTgyLDkgKzE4MywyMCBAQCAtICh2b2lkKWFkZDooRE9NSFRNTEVsZW1lbnQgKillbGVtZW50
IGJlZm9yZTooRE9NSFRNTEVsZW1lbnQgKiliZWZvcmUKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByYWlzZVR5cGVF
cnJvckV4Y2VwdGlvbigpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IElNUEwtPmFkZCgqY29yZShlbGVtZW50KSwgY29yZShiZWZvcmUpLCBlYyk7Ci0gICAgcmFpc2VP
bkRPTUVycm9yKGVjKTsKKworICAgIGF1dG8mIGNvcmVFbGVtZW50ID0gKmNvcmUoZWxlbWVudCk7
CisgICAgc3RkOjpleHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPFdlYkNvcmU6OkhUTUxPcHRp
b25FbGVtZW50PiwgUmVmUHRyPFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ+PiB2YXJpYW50
RWxlbWVudDsKKyAgICBpZiAoaXM8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+KGNvcmVFbGVt
ZW50KSkKKyAgICAgICAgdmFyaWFudEVsZW1lbnQgPSAmZG93bmNhc3Q8V2ViQ29yZTo6SFRNTE9w
dGlvbkVsZW1lbnQ+KGNvcmVFbGVtZW50KTsKKyAgICBlbHNlIGlmIChpczxXZWJDb3JlOjpIVE1M
T3B0R3JvdXBFbGVtZW50Pihjb3JlRWxlbWVudCkpCisgICAgICAgIHZhcmlhbnRFbGVtZW50ID0g
JmRvd25jYXN0PFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ+KGNvcmVFbGVtZW50KTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgcmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBhdXRvIGV4Y2VwdGlvbiA9IElNUEwtPmFkZChXVEZNb3ZlKHZhcmlh
bnRFbGVtZW50KSwgV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxFbGVtZW50T3JJbnQo
Y29yZShiZWZvcmUpKSk7CisgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgcmFpc2VPbkRPTUVycm9yKGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsK
IH0KIAogLSAodm9pZClyZW1vdmU6KGludClpbmRleApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzYmM1MTkwY2E3Y2ViMTQ1
ZTczYzI1YjhkZTU3ZWU3NGUzMWU0M2IuLjYyMTAxYWVhYjhmOGE3YzMzODJhZTk0MDhjOTVjZTVi
MzRiN2NjYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0xMC0xOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBlIHN1
cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmFkZCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjM2MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3RzIG5vdyB0aGF0IGV4Y2VwdGlvbiBtZXNzYWdlcyBhcmUg
ZGlmZmVyZW50LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25z
LWNvbGxlY3Rpb24tYWRkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNvbXBh
dGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMTYtMTAtMTggIFJ5YW4gSGFkZGFk
ICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGZsYWt5IGV4cGVjdGF0aW9u
IGZvciB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9sYXRjaGVkLWRpdi13aXRoLXNjcm9sbC1zbmFw
Lmh0bWwgdGhhdCB3YXMgZXJyYW50bHkgcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGFlZTkzMGVlNzgzYWZjMDY4NjhlMDYyM2FmMWIzYjM0ODUxNzc0NDguLmQ2OWUz
ZjVjZjIzNTQ0MTAzZGFjMjE4YjQyZjA5OWNiMjIwMGM2MjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDE2LTEwLTE4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTGV2ZXJhZ2UgbmV3IHVuaW9uIHR5cGUgc3VwcG9y
dCBmb3IgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgLyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRk
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzYw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFz
ZWxpbmUgVzNDIHRlc3Qgbm93IHRoYXQgb25lIG1vcmUgY2hlY2sgaXMgcGFzc2luZy4gVGhpcyBp
cyBiZWNhdXNlIHdlIGFyZSBub3cKKyAgICAgICAgY29ycmVjdGx5IHRocm93aW5nIGEgVHlwZUVy
cm9yIHdoZW4gY2FsbGluZyBhZGQoKSB3aXRoIGFuIHVuZXhwZWN0ZWQgSFRNTEVsZW1lbnQgdHlw
ZS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL2Nv
bW1vbi1kb20taW50ZXJmYWNlcy9jb2xsZWN0aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24tZXhw
ZWN0ZWQudHh0OgorCisyMDE2LTEwLTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKICAgICAgICAgVXBkYXRlIFRyYWNrRXZlbnQgdG8gc3RvcCB1c2luZyBsZWdhY3kgW0NvbnN0
cnVjdG9yVGVtcGxhdGU9RXZlbnRdCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM1ODAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFNlbGVjdEVsZW1lbnQvYWRkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQKaW5kZXggYjMzZjcxZmQ3Mzk4MWZi
MWFmN2VkODE5ODFiYmVlYzMxNjJlNjNjYy4uNzVmNmYyMThiODI4YTA1YTRiZmVhODEwMGFkMzA2
MjU0OTU2MjUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVs
ZW1lbnQvYWRkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Vs
ZWN0RWxlbWVudC9hZGQtZXhwZWN0ZWQudHh0CkBAIC05LDkgKzksOSBAQCBQQVNTIHRlc3RBZGQo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIAogQ2Fs
bCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIG9uZSBhcmd1bWVudDoKIFBBU1MgdGVzdEFk
ZChjcmVhdGVPcHRpb24oIlkxIikpIGlzICIwLDEsMixZMSIKLVBBU1MgdGVzdEFkZCgiZm9vIikg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1M
U2VsZWN0RWxlbWVudC5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBB
U1MgdGVzdEFkZCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50
IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIHRlc3RBZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2VsZWN0RWxlbWVudC5hZGQg
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KK1BBU1MgdGVzdEFkZCgiZm9vIikg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFkZCh1bmRl
ZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RB
ZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIAogQ2FsbCBI
VE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIHR3byBhcmd1bWVudHM6CiBQQVNTIHRlc3RBZGQo
Y3JlYXRlT3B0aW9uKCJZMiIpLCBudWxsKSBpcyAiMCwxLDIsWTIiCkBAIC00MCw5ICs0MCw5IEBA
IFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyNCIpLCAtMikgaXMgIjAsMSwyLFkyNCIKIFBB
U1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1swXSkgaXMgIlgs
MCwxLDIiCiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNb
MV0pIGlzICIwLFgsMSwyIgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVj
dC5vcHRpb25zWzJdKSBpcyAiMCwxLFgsMiIKLVBBU1MgdGVzdEFkZCgiZm9vIiwgMCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2VsZWN0
RWxlbWVudC5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBBU1MgdGVz
dEFkZCh1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEg
KCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgSFRNTEVsZW1lbnQuCi1QQVNTIHRlc3RBZGQobnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2VsZWN0RWxlbWVudC5hZGQg
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KK1BBU1MgdGVzdEFkZCgiZm9vIiwg
MCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFkZCh1
bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IHRlc3RBZGQobnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
IAogQ2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIHRocmVlIGFyZ3VtZW50cyAod2hl
biBpdCBvbmx5IHRha2VzIHR3byBhcmd1bWVudHMpOgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlv
bigiWCIpLCAwLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQgLSBzaG91bGQgYmUgaWdub3Jl
ZCIpIGlzICJYLDAsMSwyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNl
bGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRkLWV4
cGVjdGVkLnR4dAppbmRleCBkNmNjOGI1N2ExYjdhN2Y1MjcyYjcyZGE4ODExODIyYTZlYzMwOGRj
Li4xZGEwMmQ2YjliZGY2MjJhOGQ5OWIxYTYyMWQxNTRjZWFiZWJhMDBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24t
YWRkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxl
bWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRkLWV4cGVjdGVkLnR4dApAQCAtOSw5ICs5LDkgQEAg
UEFTUyB0ZXN0QWRkKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCiAKIENhbGwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpIHdpdGggb25seSBvbmUg
YXJndW1lbnQ6CiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZOSIpKSBpcyAiMCwxLDIsWTki
Ci1QQVNTIHRlc3RBZGQoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50
IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIHRl
c3RBZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1l
bnQnKSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
SFRNTEVsZW1lbnQuCitQQVNTIHRlc3RBZGQoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RBZGQodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiAKIENhbGwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFk
ZCgpIHdpdGggdHdvIGFyZ3VtZW50czoKIFBBU1MgdGVzdEFkZChjcmVhdGVHcm91cCgiWTEiLCAi
WTIiKSwgbnVsbCkgaXMgIjAsMSwyLFkxLFkyIgpAQCAtNTIsOSArNTIsOSBAQCBQQVNTIHRlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMV0pIGlzICIwLFgsMSwyIgog
UEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzJdKSBpcyAi
MCwxLFgsMiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyNSIpLCAwLCAxKSBpcyAiWTI1
LDAsMSwyIgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTI1IiksIG15U2VsZWN0Lm9wdGlv
bnNbMF0sIDEpIGlzICJZMjUsMCwxLDIiCi1QQVNTIHRlc3RBZGQoImZvbyIsIDApIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0
ZXN0QWRkKHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQg
MSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIHRlc3RBZGQobnVsbCwgMCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHRlc3RB
ZGQoImZvbyIsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNT
IHRlc3RBZGQodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCiAKIENhbGwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpIHdpdGggdGhyZWUg
YXJndW1lbnRzICh3aGVuIGl0IG9ubHkgdGFrZXMgdHdvIGFyZ3VtZW50cyk6CiBQQVNTIHRlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJYIiksIDAsICJ1bm5lY2Vzc2FyeSBleHRyYSBhcmd1bWVudCAtIHNo
b3VsZCBiZSBpZ25vcmVkIikgaXMgIlgsMCwxLDIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggODQ0
MDE5MDZhNzg3NzFiMjZhMDNiYmIyNWQ4ODlhNzNlNjMyODI5Mi4uNmVhZWQ5YTM3ZmM4NWY3N2Mz
Mjg0MmNmNGM0YjA0OGFiODE0ZDk3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTIsMTEgKzEy
LDExIEBAIFBBU1MgYU5vZGUuaXNTYW1lTm9kZSh2b2lkIDApIGlzIGZhbHNlCiBQQVNTIGFOb2Rl
Lmxvb2t1cFByZWZpeChhRE9NSW1wbGVtZW50YXRpb24pIGlzIG51bGwKIFBBU1MgYU5vZGUubG9v
a3VwUHJlZml4KHZvaWQgMCkgaXMgbnVsbAogUEFTUyBhTm9kZS5jbG9uZU5vZGUoYURPTUltcGxl
bWVudGF0aW9uKSBpbnN0YW5jZW9mIEhUTUxEaXZFbGVtZW50IGlzIHRydWUKLVBBU1MgYVNlbGVj
dC5hZGQoYURPTUltcGxlbWVudGF0aW9uLCBhRE9NSW1wbGVtZW50YXRpb24pIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1l
bnQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIGFTZWxlY3Qu
YWRkKGFET01JbXBsZW1lbnRhdGlvbiwgYW5PcHRpb24pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11c3Qg
YmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIGFTZWxlY3QuYWRkKGFET01JbXBs
ZW1lbnRhdGlvbiwgYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgorUEFTUyBhU2VsZWN0LmFkZChhRE9NSW1wbGVtZW50YXRpb24sIGFuT3B0
aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBhU2VsZWN0
LmFkZChhbk9wdGlvbiwgYURPTUltcGxlbWVudGF0aW9uKSBpcyB1bmRlZmluZWQuCi1QQVNTIGFT
ZWxlY3QuYWRkKHZvaWQgMCwgdm9pZCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyBhU2VsZWN0LmFkZCh2b2lkIDAsIGFuT3B0aW9u
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhU
TUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50Lgor
UEFTUyBhU2VsZWN0LmFkZCh2b2lkIDAsIHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgYVNlbGVjdC5hZGQodm9pZCAwLCBhbk9wdGlvbikgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgYVNlbGVjdC5hZGQoYW5PcHRp
b24sIHZvaWQgMCkgaXMgdW5kZWZpbmVkLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25z
L2h0bWxvcHRpb25zY29sbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1p
bnRlcmZhY2VzL2NvbGxlY3Rpb25zL2h0bWxvcHRpb25zY29sbGVjdGlvbi1leHBlY3RlZC50eHQK
aW5kZXggOWUxZWUyODQ4YjJkYWY0ZmI4NGI0MDMzYjU2N2Y3M2M2YjE4ZmRkYy4uZGEzODM4ZGQw
Y2VlMmJlYzAyOGJlYmEwMzc4ZDUxOTQ2YzM2NTNhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL2NvbW1v
bi1kb20taW50ZXJmYWNlcy9jb2xsZWN0aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMvaHRt
bG9wdGlvbnNjb2xsZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMjMsNSArMjMsNSBAQCBQQVNTIEhU
TUxPcHRpb25zQ29sbGVjdGlvbi5pdGVtKGluZGV4KSBtZXRob2QgcmV0dXJuIHRoZSBpdGVtIHdp
dGggaW5kZXgKIFBBU1MgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLml0ZW0obmFtZSkgbWV0aG9kIHJl
dHVybiB0aGUgaXRlbSB3aXRoIGluZGV4IDAgCiBQQVNTIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5h
ZGQgbWV0aG9kIGluc2VydCBIVE1MT3B0aW9uRWxlbWVudCBPcHRpb24gZWxlbWVudCAKIFBBU1Mg
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLnJlbW92ZSBtZXRob2QgcmVtb3ZlIE9wdGlvbiBlbGVtZW50
IGJ5IGluZGV4IAotRkFJTCBBZGQgbm9uLW9wdGlvbiB0byBjb2xsZWN0aW9uIGFzc2VydF90aHJv
d3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Yl9vcHRzLmFkZChhZGQpO30iIGRpZCBub3QgdGhy
b3cKK1BBU1MgQWRkIG5vbi1vcHRpb24gdG8gY29sbGVjdGlvbiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291969</attachid>
            <date>2016-10-18 12:44:50 -0700</date>
            <delta_ts>2016-10-18 12:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163608-20161018124116.patch</filename>
            <type>text/plain</type>
            <size>26492</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFmNTJmMzY5YTU3ZjEx
NzM5NmNlNWUyNTU5OTQzYWU4NjFmNDhmOC4uNmNhNTRjODNjYWMyNDJlNTY4MTNkZjBjMThmMTE5
NTNiOGQ2MWYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTEwLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTGV2ZXJhZ2UgbmV3IHVuaW9u
IHR5cGUgc3VwcG9ydCBmb3IgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgLyBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uYWRkKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBlIHN1cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVt
ZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpOgorICAgICAgICAtIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2h0bWxzZWxlY3RlbGVtZW50CisgICAgICAgIC0gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jaHRtbG9wdGlvbnNjb2xsZWN0aW9uCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlRGVm
YXVsdFZhbHVlKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJ
c0VtcHR5Q2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlMSk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jQ2FsbGVy
KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRp
b25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlv
bi5oOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNl
dE9wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3Ro
KToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGw6CisKIDIwMTYtMTAtMTggIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29ycmVjdCBEb2N1bWVudDo6cmVtb3ZlQWxsRXZl
bnRMaXN0ZW5lcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmNWZlMGUwMGY0M2NiNDk5OTk3YjY3YjY2
MmQyZTY1ZGM1YmRjOWJkLi5iMjhmN2VkYzcxNWFkZDIwNGMzNmRmOGQwZDUxYWU5YTQ1MzJmOWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMTAtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMZXZlcmFnZSBuZXcgdW5pb24gdHlw
ZSBzdXBwb3J0IGZvciBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSAvIEhUTUxPcHRpb25zQ29sbGVj
dGlvbi5hZGQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzNjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIGFkZCgpIGNhbGwgc2l0ZXMgbm93IHRoYXQgaXQgdGFrZXMgc3RkOjp2YXJpYW50
IHR5cGVzIGluLgorCisgICAgICAgICogRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbToK
KyAgICAgICAgKC1bRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGFkZDppbmRleDpdKToKKyAgICAg
ICAgKiBET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxTZWxl
Y3RFbGVtZW50IGFkZDpiZWZvcmU6XSk6CisKIDIwMTYtMTAtMTggIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBSZXNvbHZlIGNv
bnN0cmFpbnRzIGFuZCBlbnVtZXJhdGUgZGV2aWNlcyBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4MzJjYmIyMGE0MzFmNzA5ZmNkYjcwODAzODA4ZGI0YTA5NWZjZGVkLi42NDNhZGFmYzg4YjAz
ZDNhOTgzNTU4NWQwODViMDAwOTUwNmZkOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtOTk2LDI1ICs5OTYsMzEgQEAg
c3ViIEdldERpY3Rpb25hcnlDbGFzc05hbWUKIAogc3ViIEdlbmVyYXRlRGVmYXVsdFZhbHVlCiB7
Ci0gICAgbXkgKCRpbnRlcmZhY2UsICRtZW1iZXIpID0gQF87CisgICAgbXkgKCRpbnRlcmZhY2Us
ICRzaWduYXR1cmUpID0gQF87CiAKLSAgICBteSAkZGVmYXVsdFZhbHVlID0gJG1lbWJlci0+ZGVm
YXVsdDsKKyAgICBteSAkZGVmYXVsdFZhbHVlID0gJHNpZ25hdHVyZS0+ZGVmYXVsdDsKIAotICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkbWVtYmVyLT50eXBlKSkgeworICAgIGlm
ICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkc2lnbmF0dXJlLT50eXBlKSkgewogICAgICAg
ICAjIEZJWE1FOiBXb3VsZCBiZSBuaWNlIHRvIHJlcG9ydCBhbiBlcnJvciBpZiB0aGUgdmFsdWUg
ZG9lcyBub3QgaGF2ZSBxdW90ZSBtYXJrcyBhcm91bmQgaXQuCiAgICAgICAgICMgRklYTUU6IFdv
dWxkIGJlIG5pY2UgdG8gcmVwb3J0IGFuIGVycm9yIGlmIHRoZSB2YWx1ZSBpcyBub3Qgb25lIG9m
IHRoZSBlbnVtZXJhdGlvbiB2YWx1ZXMuCi0gICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVt
ZXJhdGlvbkNsYXNzTmFtZSgkbWVtYmVyLT50eXBlLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgbXkg
JGNsYXNzTmFtZSA9IEdldEVudW1lcmF0aW9uQ2xhc3NOYW1lKCRzaWduYXR1cmUtPnR5cGUsICRp
bnRlcmZhY2UpOwogICAgICAgICBteSAkZW51bWVyYXRpb25WYWx1ZU5hbWUgPSBHZXRFbnVtZXJh
dGlvblZhbHVlTmFtZShzdWJzdHIoJGRlZmF1bHRWYWx1ZSwgMSwgLTEpKTsKICAgICAgICAgcmV0
dXJuICRjbGFzc05hbWUgLiAiOjoiIC4gJGVudW1lcmF0aW9uVmFsdWVOYW1lOwogICAgIH0KICAg
ICBpZiAoJGRlZmF1bHRWYWx1ZSBlcSAibnVsbCIpIHsKLSAgICAgICAgcmV0dXJuICJqc051bGwo
KSIgaWYgJG1lbWJlci0+dHlwZSBlcSAiYW55IjsKLSAgICAgICAgcmV0dXJuICJudWxscHRyIiBp
ZiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkbWVtYmVyLT50eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkbWVtYmVyLT50eXBlKTsKLSAgICAgICAgcmV0dXJu
ICJTdHJpbmcoKSIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkbWVtYmVyLT50eXBl
KTsKKyAgICAgICAgcmV0dXJuICJOdWxsb3B0IiBpZiAkc2lnbmF0dXJlLT5pZGxUeXBlLT5pc1Vu
aW9uOworICAgICAgICByZXR1cm4gImpzTnVsbCgpIiBpZiAkc2lnbmF0dXJlLT50eXBlIGVxICJh
bnkiOworICAgICAgICByZXR1cm4gIm51bGxwdHIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBw
ZXJUeXBlKCRzaWduYXR1cmUtPnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlU
eXBlKCRzaWduYXR1cmUtPnR5cGUpOworICAgICAgICByZXR1cm4gIlN0cmluZygpIiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRzaWduYXR1cmUtPnR5cGUpOwogICAgICAgICByZXR1
cm4gIk51bGxvcHQiOwogICAgIH0KLSAgICByZXR1cm4gInsgfSIgaWYgJGRlZmF1bHRWYWx1ZSBl
cSAiW10iOworICAgIGlmICgkZGVmYXVsdFZhbHVlIGVxICJbXSIpIHsKKyAgICAgICAgbXkgJG5h
dGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSgkaW50ZXJmYWNlLCAkc2lnbmF0
dXJlKTsKKyAgICAgICAgcmV0dXJuICIkbmF0aXZlVHlwZSgpIgorICAgIH0KKwogICAgIHJldHVy
biAianNVbmRlZmluZWQoKSIgaWYgJGRlZmF1bHRWYWx1ZSBlcSAidW5kZWZpbmVkIjsKKyAgICBy
ZXR1cm4gIlBOYU4iIGlmICRkZWZhdWx0VmFsdWUgZXEgIk5hTiI7CiAKICAgICByZXR1cm4gJGRl
ZmF1bHRWYWx1ZTsKIH0KQEAgLTQzNDIsMTAgKzQzNDgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0
ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gJHVz
ZUF0b21pY1N0cmluZyA/ICJBdG9taWNTdHJpbmcoJGRlZmF1bHRWYWx1ZSwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkiIDogIkFTQ0lJTGl0ZXJhbCgkZGVmYXVsdFZhbHVlKSI7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIm51bGxwdHIiIGlmICRk
ZWZhdWx0VmFsdWUgZXEgIm51bGwiOwotICAgICAgICAgICAgICAgICAgICAgICAgJGRlZmF1bHRW
YWx1ZSA9ICJQTmFOIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJOYU4iOwotICAgICAgICAgICAgICAg
ICAgICAgICAgJGRlZmF1bHRWYWx1ZSA9ICIkbmF0aXZlVHlwZSgpIiBpZiAkZGVmYXVsdFZhbHVl
IGVxICJbXSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIkpTVmFs
dWU6OkpTVW5kZWZpbmVkIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJ1bmRlZmluZWQiOworICAgICAg
ICAgICAgICAgICAgICAgICAgJGRlZmF1bHRWYWx1ZSA9IEdlbmVyYXRlRGVmYXVsdFZhbHVlKCRp
bnRlcmZhY2UsICRwYXJhbWV0ZXIpOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgICAgICAgICAgJG91dGVyID0gInN0YXRlLT4kYXJndW1lbnRMb29rdXBNZXRob2QoJGFyZ3Vt
ZW50SW5kZXgpLmlzVW5kZWZpbmVkKCkgPyAkZGVmYXVsdFZhbHVlIDogIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCmluZGV4IDI2YTc4MmZkNWM3OWE1MWFm
N2FiYWZkOWQ1YjAxNGFkODcwNzE1YzkuLjFiNTM2NDBmNDU2MDNmMzUyY2M1ZGI1YWRiMDcwYzRm
MGM5MDAzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmlk
bApAQCAtMTcsNyArMTcsOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotaW50ZXJmYWNlIEhUTUxPcHRHcm91cEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CitbCisgICAg
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorXSBpbnRlcmZhY2UgSFRNTE9wdEdyb3VwRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJs
ZWQ7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCmluZGV4IDc3MDBhMjRj
NDAxYjQ3ZGFlNjFhY2Q2NzQ0OWYzZmNhNjY4ZDViMjkuLjQ1OWM4MjYwYzZiOGE0MWY5OWQ1OTUy
ODg4MGMwYzkxOWYzNzY4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25z
Q29sbGVjdGlvbi5jcHAKQEAgLTM2LDE0ICszNiw5IEBAIFJlZjxIVE1MT3B0aW9uc0NvbGxlY3Rp
b24+IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKEhUTUxTZWxlY3RFbGVtZW50JiBzZWxl
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHNlbGVjdCkp
OwogfQogCi12b2lkIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVt
ZW50LCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitFeGNl
cHRpb25Pcjx2b2lkPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZChjb25zdCBPcHRpb25Pck9w
dEdyb3VwRWxlbWVudCYgZWxlbWVudCwgT3B0aW9uYWw8SFRNTEVsZW1lbnRPckludD4gYmVmb3Jl
KQogewotICAgIHNlbGVjdEVsZW1lbnQoKS5hZGQoZWxlbWVudCwgYmVmb3JlRWxlbWVudCwgZWMp
OwotfQotCi12b2lkIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVt
ZW50LCBpbnQgYmVmb3JlSW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGFkZChlbGVt
ZW50LCBpdGVtKGJlZm9yZUluZGV4KSwgZWMpOworICAgIHJldHVybiBzZWxlY3RFbGVtZW50KCku
YWRkKGVsZW1lbnQsIGJlZm9yZSk7CiB9CiAKIHZvaWQgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpy
ZW1vdmUoaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmgKaW5kZXggOWJkOTYwMmY0NjkzZGMxNmMyNzRiNGMzZmNjNDQwZjU2NDg5NGQ2OS4uZjI1
MTE2ZDc1YWQzYzM2NGEzNGU4Y2M1ODQzYzUxZWQwOWRjMWFkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCkBAIC00MSw4ICs0MSw5IEBAIHB1YmxpYzoK
ICAgICBIVE1MT3B0aW9uRWxlbWVudCogaXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0IGZpbmFs
OwogICAgIEhUTUxPcHRpb25FbGVtZW50KiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdCBmaW5hbDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkKEhUTUxFbGVt
ZW50JiwgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFkZChIVE1MRWxlbWVudCYsIGludCBiZWZvcmVJbmRleCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHVzaW5nIE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gc3RkOjpl
eHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiwgUmVmUHRyPEhU
TUxPcHRHcm91cEVsZW1lbnQ+PjsKKyAgICB1c2luZyBIVE1MRWxlbWVudE9ySW50ID0gc3RkOjpl
eHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPEhUTUxFbGVtZW50PiwgaW50PjsKKyAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBhZGQoY29uc3QgT3B0aW9uT3JPcHRHcm91cEVs
ZW1lbnQmLCBPcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZvcmUpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlKGludCBpbmRleCk7CiAgICAgdm9pZCByZW1vdmUoSFRNTE9wdGlv
bkVsZW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaWRsCmluZGV4IDhkNTgwNzFhZmI3Yjk4YjczZjNmZWE5MGU2ZDM3MDI0M2RiYjAyODUuLjZm
ODUyNjEyMWYxZGI4MmQ3NTA0YTc5NDVmNDgxMjk2YjIxNjUyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKQEAgLTMwLDEwICszMCw3IEBACiAg
ICAgZ2V0dGVyIEhUTUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwog
ICAgIGdldHRlciBIVE1MT3B0aW9uRWxlbWVudD8gbmFtZWRJdGVtKERPTVN0cmluZyBuYW1lKTsK
IAotICAgIC8vIEZJWE1FOiBTaG91bGQgYmU6Ci0gICAgLy8gdm9pZCBhZGQoKEhUTUxPcHRpb25F
bGVtZW50IG9yIEhUTUxPcHRHcm91cEVsZW1lbnQpIGVsZW1lbnQsIG9wdGlvbmFsIChIVE1MRWxl
bWVudCBvciBsb25nKT8gYmVmb3JlID0gbnVsbCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0
aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBlbGVtZW50LCBvcHRpb25hbCBIVE1MRWxlbWVudD8g
YmVmb3JlID0gbnVsbCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChI
VE1MRWxlbWVudCBlbGVtZW50LCBsb25nIGluZGV4KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHZvaWQgYWRkKChIVE1MT3B0aW9uRWxlbWVudCBvciBIVE1MT3B0R3JvdXBFbGVtZW50KSBlbGVt
ZW50LCBvcHRpb25hbCAoSFRNTEVsZW1lbnQgb3IgbG9uZyk/IGJlZm9yZSA9IG51bGwpOwogCiAg
ICAgdm9pZCByZW1vdmUobG9uZyBpbmRleCk7CiAgICAgLy8gRklYTUU6IFRoaXMgb3ZlcmxvYWQg
aXMgbm90IGluIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCBoYXMgYmVlbiBkcm9wcGVkIGluIEJsaW5r
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlZTc0YjI3
MjA3NmI3NTZlM2U5OWRlZDY5NDAwMzBkMjkxZDIwYjc1Li4wYjZmMGYyNGVkM2UwY2VmZGYzZTMw
ZmViYWI3NDgzMjhjYjc3MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcApAQCAtMjIxLDE2ICsyMjEsMjcgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjphY3Rp
dmVTZWxlY3Rpb25FbmRMaXN0SW5kZXgoKSBjb25zdAogICAgIHJldHVybiBsYXN0U2VsZWN0ZWRM
aXN0SW5kZXgoKTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxFbGVtZW50
JiBlbGVtZW50LCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKGNvbnN0IE9wdGlvbk9y
T3B0R3JvdXBFbGVtZW50JiBlbGVtZW50LCBPcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZv
cmUpCiB7Ci0gICAgaWYgKCEoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPEhU
TUxIUkVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPEhUTUxPcHRHcm91cEVsZW1lbnQ+KGVsZW1lbnQp
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmVFbGVt
ZW50LCBlYyk7Ci19CisgICAgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQgPSBudWxscHRyOwor
ICAgIGlmIChiZWZvcmUpIHsKKyAgICAgICAgYXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlzaXRv
cigKKyAgICAgICAgICAgIFtdKGNvbnN0IFJlZlB0cjxIVE1MRWxlbWVudD4mIGVsZW1lbnQpIC0+
IEhUTUxFbGVtZW50KiB7IHJldHVybiBlbGVtZW50LmdldCgpOyB9LAorICAgICAgICAgICAgW3Ro
aXNdKGludCBpbmRleCkgLT4gSFRNTEVsZW1lbnQqIHsgcmV0dXJuIGl0ZW0oaW5kZXgpOyB9Cisg
ICAgICAgICk7CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCYgZWxl
bWVudCwgaW50IGJlZm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBhZGQoZWxl
bWVudCwgaXRlbShiZWZvcmVJbmRleCksIGVjKTsKKyAgICAgICAgYmVmb3JlRWxlbWVudCA9IHN0
ZDo6ZXhwZXJpbWVudGFsOjp2aXNpdCh2aXNpdG9yLCBiZWZvcmUudmFsdWUoKSk7CisgICAgfQor
ICAgIEhUTUxFbGVtZW50JiB0b0luc2VydCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp2aXNpdChbXShj
b25zdCBhdXRvJiBodG1sRWxlbWVudCkgLT4gSFRNTEVsZW1lbnQmIHsKKyAgICAgICAgcmV0dXJu
ICpodG1sRWxlbWVudDsKKyAgICB9LCBlbGVtZW50KTsKKworCisgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgaW5zZXJ0QmVmb3JlKHRvSW5zZXJ0LCBiZWZvcmVFbGVtZW50LCBlYyk7Cisg
ICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgZWMgfTsKKyAgICByZXR1cm4g
eyB9OwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmVCeUluZGV4KGludCBvcHRp
b25JbmRleCkKQEAgLTQ0MCw3ICs0NTEsOSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRP
cHRpb24odW5zaWduZWQgaW5kZXgsIEhUTUxPcHRpb25FbGVtZW50JiBvcHRpb24sIEV4YwogICAg
IH0KICAgICAvLyBGaW5hbGx5IGFkZCB0aGUgbmV3IGVsZW1lbnQuCiAgICAgaWYgKCFlYykgewot
ICAgICAgICBhZGQob3B0aW9uLCBiZWZvcmUuZ2V0KCksIGVjKTsKKyAgICAgICAgYXV0byBleGNl
cHRpb24gPSBhZGQoJm9wdGlvbiwgSFRNTEVsZW1lbnRPckludChiZWZvcmUuZ2V0KCkpKTsKKyAg
ICAgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIGVjID0gZXhj
ZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCk7CiAgICAgICAgIGlmIChkaWZmID49IDAg
JiYgb3B0aW9uLnNlbGVjdGVkKCkpCiAgICAgICAgICAgICBvcHRpb25TZWxlY3Rpb25TdGF0ZUNo
YW5nZWQob3B0aW9uLCB0cnVlKTsKICAgICB9CkBAIC00NTYsOSArNDY5LDExIEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0aCh1bnNpZ25lZCBuZXdMZW5ndGgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIGlmIChkaWZmIDwgMCkgeyAvLyBBZGQgZHVtbXkgZWxlbWVudHMuCiAgICAg
ICAgIGRvIHsKICAgICAgICAgICAgIGF1dG8gb3B0aW9uID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVt
ZW50KG9wdGlvblRhZywgZmFsc2UpOwotICAgICAgICAgICAgYWRkKGRvd25jYXN0PEhUTUxFbGVt
ZW50PihvcHRpb24uZ2V0KCkpLCBudWxscHRyLCBlYyk7Ci0gICAgICAgICAgICBpZiAoZWMpCisg
ICAgICAgICAgICBhdXRvIGV4Y2VwdGlvbiA9IGFkZChkb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVu
dD4ob3B0aW9uLnB0cigpKSwgTnVsbG9wdCk7CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uLmhh
c0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgZWMgPSBleGNlcHRpb24ucmVsZWFzZUV4
Y2VwdGlvbigpLmNvZGUoKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAg
ICAgICB9IHdoaWxlICgrK2RpZmYpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8mIGl0ZW1z
ID0gbGlzdEl0ZW1zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5k
ZXggM2UzNjc3YmJmMzdiYjFhN2Q5ZDgzNDdjMzBlN2NlODhhZjkyNjExOS4uN2RlNThkMTBjNDgw
ZWI4YjU1NTI2OTI0NDE2ZjI4YjJhNTMxODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaApAQCAtNTEsOCArNTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHVzZXNN
ZW51TGlzdCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGQoSFRNTEVsZW1l
bnQmLCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZv
aWQgYWRkKEhUTUxFbGVtZW50JiwgaW50IGJlZm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdXNpbmcgT3B0aW9uT3JPcHRHcm91cEVsZW1lbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFy
aWFudDxSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVu
dD4+OworICAgIHVzaW5nIEhUTUxFbGVtZW50T3JJbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFy
aWFudDxSZWZQdHI8SFRNTEVsZW1lbnQ+LCBpbnQ+OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGFkZChjb25zdCBPcHRpb25Pck9wdEdyb3VwRWxlbWVudCYsIE9wdGlvbmFs
PEhUTUxFbGVtZW50T3JJbnQ+IGJlZm9yZSk7CiAKICAgICB1c2luZyBOb2RlOjpyZW1vdmU7CiAg
ICAgdm9pZCByZW1vdmUoSFRNTE9wdGlvbkVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGwKaW5kZXggYzNiODUzMDkyOWU3OTEzYWY2M2Q0MmRkZjljYTkz
YzVhN2NmNTA2MC4uMDdhOGMzZDAyOWUwZjlhMWE1YjgxZTIyMTQ2YzA0YjY2YzcwMGEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQwLDEwICs0MCw3
IEBACiAgICAgZ2V0dGVyIEhUTUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOwogICAgIEhUTUxPcHRpb25FbGVtZW50PyBuYW1lZEl0ZW0oRE9NU3RyaW5nIG5hbWUpOwog
Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBlbGVt
ZW50LCBvcHRpb25hbCBIVE1MRWxlbWVudD8gYmVmb3JlID0gbnVsbCk7Ci0gICAgLy8gRklYTUU6
IFNob3VsZCBiZToKLSAgICAvLyB2b2lkIGFkZCgoSFRNTE9wdGlvbkVsZW1lbnQgb3IgSFRNTE9w
dEdyb3VwRWxlbWVudCkgZWxlbWVudCwgb3B0aW9uYWwgKEhUTUxFbGVtZW50IG9yIGxvbmcpPyBi
ZWZvcmUgPSBudWxsKTsKLSAgICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgYWRkKEhU
TUxFbGVtZW50IGVsZW1lbnQsIGxvbmcgaW5kZXgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dm9pZCBhZGQoKEhUTUxPcHRpb25FbGVtZW50IG9yIEhUTUxPcHRHcm91cEVsZW1lbnQpIGVsZW1l
bnQsIG9wdGlvbmFsIChIVE1MRWxlbWVudCBvciBsb25nKT8gYmVmb3JlID0gbnVsbCk7CiAKICAg
ICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgcmVtb3ZlKCk7IC8vIENoaWxkTm9kZSBv
dmVybG9hZAogICAgIC8vIEZJWE1FOiBUaGlzIG92ZXJsb2FkIGlzIG5vdCBpbiB0aGUgc3BlY2lm
aWNhdGlvbiBhbmQgd2FzIGRyb3BwZWQgaW4gQmxpbmsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbQppbmRleCA1NGQ2YmZlM2YwYTgxY2Iw
NTgzYmYyYWI5MGFlNTQ1MGZmMmE1NTY5Li5lYTA4ZTM4MTU1YmIxMDQ4YjEwNGU0MTM5Nzg5ODhi
ZmZhZWVhODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MT3B0aW9u
c0NvbGxlY3Rpb24ubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTUludGVybmFsLmgi
CiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJz
LmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUTUxPcHRHcm91cEVsZW1lbnQuaAogI2ltcG9ydCA8V2Vi
Q29yZS9IVE1MT3B0aW9uRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+CkBA
IC0zOCw2ICszOSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9H
ZXRQdHIuaD4KKyNpbXBvcnQgPHd0Zi9WYXJpYW50Lmg+CiAKICNkZWZpbmUgSU1QTCByZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbio+KF9pbnRlcm5hbCkKIApA
QCAtOTAsOSArOTIsOSBAQCAtICh2b2lkKWFkZDooRE9NSFRNTE9wdGlvbkVsZW1lbnQgKilvcHRp
b24gaW5kZXg6KHVuc2lnbmVkKWluZGV4CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwogICAgIGlmICghb3B0aW9uKQogICAgICAgICByYWlzZVR5cGVFcnJvckV4Y2Vw
dGlvbigpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPmFk
ZCgqY29yZShvcHRpb24pLCBpbmRleCwgZWMpOwotICAgIHJhaXNlT25ET01FcnJvcihlYyk7Cisg
ICAgYXV0byBleGNlcHRpb24gPSBJTVBMLT5hZGQoY29yZShvcHRpb24pLCBPcHRpb25hbDxXZWJD
b3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OkhUTUxFbGVtZW50T3JJbnQ+KHN0YXRpY19jYXN0
PGludD4oaW5kZXgpKSk7CisgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgcmFpc2VPbkRPTUVycm9yKGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsK
IH0KIAogLSAodm9pZClyZW1vdmU6KHVuc2lnbmVkKWluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0KaW5kZXggNmE3N2FkNzhiYmFkYmNmYzE1OTg3
N2M3N2I0NzlmOTUwZjY2YzYzMy4uNjgwODdkMDhlYzdmNWNhYTNiNzJjYmQzMTUyZTdiYjQ4Mjk3
NmVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVt
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxlbWVudC5t
bQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9IVE1MRm9ybUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5h
bWVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxPcHRHcm91cEVsZW1lbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxT
ZWxlY3RFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5o
PgpAQCAtMTgyLDkgKzE4MywyMCBAQCAtICh2b2lkKWFkZDooRE9NSFRNTEVsZW1lbnQgKillbGVt
ZW50IGJlZm9yZTooRE9NSFRNTEVsZW1lbnQgKiliZWZvcmUKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByYWlzZVR5
cGVFcnJvckV4Y2VwdGlvbigpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIElNUEwtPmFkZCgqY29yZShlbGVtZW50KSwgY29yZShiZWZvcmUpLCBlYyk7Ci0gICAgcmFp
c2VPbkRPTUVycm9yKGVjKTsKKworICAgIGF1dG8mIGNvcmVFbGVtZW50ID0gKmNvcmUoZWxlbWVu
dCk7CisgICAgc3RkOjpleHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPFdlYkNvcmU6OkhUTUxP
cHRpb25FbGVtZW50PiwgUmVmUHRyPFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ+PiB2YXJp
YW50RWxlbWVudDsKKyAgICBpZiAoaXM8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+KGNvcmVF
bGVtZW50KSkKKyAgICAgICAgdmFyaWFudEVsZW1lbnQgPSAmZG93bmNhc3Q8V2ViQ29yZTo6SFRN
TE9wdGlvbkVsZW1lbnQ+KGNvcmVFbGVtZW50KTsKKyAgICBlbHNlIGlmIChpczxXZWJDb3JlOjpI
VE1MT3B0R3JvdXBFbGVtZW50Pihjb3JlRWxlbWVudCkpCisgICAgICAgIHZhcmlhbnRFbGVtZW50
ID0gJmRvd25jYXN0PFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ+KGNvcmVFbGVtZW50KTsK
KyAgICBlbHNlIHsKKyAgICAgICAgcmFpc2VUeXBlRXJyb3JFeGNlcHRpb24oKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBhdXRvIGV4Y2VwdGlvbiA9IElNUEwtPmFkZChXVEZNb3ZlKHZh
cmlhbnRFbGVtZW50KSwgV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxFbGVtZW50T3JJ
bnQoY29yZShiZWZvcmUpKSk7CisgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmFpc2VPbkRPTUVycm9yKGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKIH0KIAogLSAodm9pZClyZW1vdmU6KGludClpbmRleApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzYmM1MTkwY2E3Y2Vi
MTQ1ZTczYzI1YjhkZTU3ZWU3NGUzMWU0M2IuLjYyMTAxYWVhYjhmOGE3YzMzODJhZTk0MDhjOTVj
ZTViMzRiN2NjYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0xMC0xOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBl
IHN1cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmFkZCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM2MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3RzIG5vdyB0aGF0IGV4Y2VwdGlvbiBtZXNzYWdlcyBh
cmUgZGlmZmVyZW50LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvYWRk
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRp
b25zLWNvbGxlY3Rpb24tYWRkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9pbmNv
bXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMTYtMTAtMTggIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGZsYWt5IGV4cGVjdGF0
aW9uIGZvciB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9sYXRjaGVkLWRpdi13aXRoLXNjcm9sbC1z
bmFwLmh0bWwgdGhhdCB3YXMgZXJyYW50bHkgcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IGFlZTkzMGVlNzgzYWZjMDY4NjhlMDYyM2FmMWIzYjM0ODUxNzc0NDguLmQ2
OWUzZjVjZjIzNTQ0MTAzZGFjMjE4YjQyZjA5OWNiMjIwMGM2MjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDE2LTEwLTE4ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTGV2ZXJhZ2UgbmV3IHVuaW9uIHR5cGUgc3Vw
cG9ydCBmb3IgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgLyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24u
YWRkKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
YmFzZWxpbmUgVzNDIHRlc3Qgbm93IHRoYXQgb25lIG1vcmUgY2hlY2sgaXMgcGFzc2luZy4gVGhp
cyBpcyBiZWNhdXNlIHdlIGFyZSBub3cKKyAgICAgICAgY29ycmVjdGx5IHRocm93aW5nIGEgVHlw
ZUVycm9yIHdoZW4gY2FsbGluZyBhZGQoKSB3aXRoIGFuIHVuZXhwZWN0ZWQgSFRNTEVsZW1lbnQg
dHlwZS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJl
L2NvbW1vbi1kb20taW50ZXJmYWNlcy9jb2xsZWN0aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24t
ZXhwZWN0ZWQudHh0OgorCisyMDE2LTEwLTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKICAgICAgICAgVXBkYXRlIFRyYWNrRXZlbnQgdG8gc3RvcCB1c2luZyBsZWdhY3kgW0Nv
bnN0cnVjdG9yVGVtcGxhdGU9RXZlbnRdCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjM1ODAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFNlbGVjdEVsZW1lbnQvYWRkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQKaW5kZXggYjMzZjcxZmQ3Mzk4
MWZiMWFmN2VkODE5ODFiYmVlYzMxNjJlNjNjYy4uNzVmNmYyMThiODI4YTA1YTRiZmVhODEwMGFk
MzA2MjU0OTU2MjUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVj
dEVsZW1lbnQvYWRkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
U2VsZWN0RWxlbWVudC9hZGQtZXhwZWN0ZWQudHh0CkBAIC05LDkgKzksOSBAQCBQQVNTIHRlc3RB
ZGQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIAog
Q2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIG9uZSBhcmd1bWVudDoKIFBBU1MgdGVz
dEFkZChjcmVhdGVPcHRpb24oIlkxIikpIGlzICIwLDEsMixZMSIKLVBBU1MgdGVzdEFkZCgiZm9v
IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBI
VE1MU2VsZWN0RWxlbWVudC5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4K
LVBBU1MgdGVzdEFkZCh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIHRlc3RBZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2VsZWN0RWxlbWVudC5h
ZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KK1BBU1MgdGVzdEFkZCgiZm9v
IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFkZCh1
bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRl
c3RBZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIAogQ2Fs
bCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIHR3byBhcmd1bWVudHM6CiBQQVNTIHRlc3RB
ZGQoY3JlYXRlT3B0aW9uKCJZMiIpLCBudWxsKSBpcyAiMCwxLDIsWTIiCkBAIC00MCw5ICs0MCw5
IEBAIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyNCIpLCAtMikgaXMgIjAsMSwyLFkyNCIK
IFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1swXSkgaXMg
IlgsMCwxLDIiCiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlv
bnNbMV0pIGlzICIwLFgsMSwyIgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNl
bGVjdC5vcHRpb25zWzJdKSBpcyAiMCwxLFgsMiIKLVBBU1MgdGVzdEFkZCgiZm9vIiwgMCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2Vs
ZWN0RWxlbWVudC5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBBU1Mg
dGVzdEFkZCh1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50
IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIHRlc3RBZGQobnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2VsZWN0RWxlbWVudC5h
ZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KK1BBU1MgdGVzdEFkZCgiZm9v
IiwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFk
ZCh1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIHRlc3RBZGQobnVsbCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KIAogQ2FsbCBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSB3aXRoIHRocmVlIGFyZ3VtZW50cyAo
d2hlbiBpdCBvbmx5IHRha2VzIHR3byBhcmd1bWVudHMpOgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9w
dGlvbigiWCIpLCAwLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQgLSBzaG91bGQgYmUgaWdu
b3JlZCIpIGlzICJYLDAsMSwyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRk
LWV4cGVjdGVkLnR4dAppbmRleCBkNmNjOGI1N2ExYjdhN2Y1MjcyYjcyZGE4ODExODIyYTZlYzMw
OGRjLi4xZGEwMmQ2YjliZGY2MjJhOGQ5OWIxYTYyMWQxNTRjZWFiZWJhMDBkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rp
b24tYWRkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0
RWxlbWVudC9vcHRpb25zLWNvbGxlY3Rpb24tYWRkLWV4cGVjdGVkLnR4dApAQCAtOSw5ICs5LDkg
QEAgUEFTUyB0ZXN0QWRkKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCiAKIENhbGwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpIHdpdGggb25seSBv
bmUgYXJndW1lbnQ6CiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZOSIpKSBpcyAiMCwxLDIs
WTkiCi1QQVNTIHRlc3RBZGQoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9u
c0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNT
IHRlc3RBZGQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2Vs
ZW1lbnQnKSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgSFRNTEVsZW1lbnQuCitQQVNTIHRlc3RBZGQoImZvbyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RBZGQodW5kZWZpbmVkKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiAKIENhbGwgSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmFkZCgpIHdpdGggdHdvIGFyZ3VtZW50czoKIFBBU1MgdGVzdEFkZChjcmVhdGVHcm91cCgiWTEi
LCAiWTIiKSwgbnVsbCkgaXMgIjAsMSwyLFkxLFkyIgpAQCAtNTIsOSArNTIsOSBAQCBQQVNTIHRl
c3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMV0pIGlzICIwLFgsMSwy
IgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzJdKSBp
cyAiMCwxLFgsMiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyNSIpLCAwLCAxKSBpcyAi
WTI1LDAsMSwyIgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTI1IiksIG15U2VsZWN0Lm9w
dGlvbnNbMF0sIDEpIGlzICJZMjUsMCwxLDIiCi1QQVNTIHRlc3RBZGQoImZvbyIsIDApIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFT
UyB0ZXN0QWRkKHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1l
bnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4g
aW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIHRlc3RBZGQobnVsbCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHRl
c3RBZGQoImZvbyIsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQ
QVNTIHRlc3RBZGQodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IuCiAKIENhbGwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpIHdpdGggdGhy
ZWUgYXJndW1lbnRzICh3aGVuIGl0IG9ubHkgdGFrZXMgdHdvIGFyZ3VtZW50cyk6CiBQQVNTIHRl
c3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIDAsICJ1bm5lY2Vzc2FyeSBleHRyYSBhcmd1bWVudCAt
IHNob3VsZCBiZSBpZ25vcmVkIikgaXMgIlgsMCwxLDIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKaW5kZXgg
ODQ0MDE5MDZhNzg3NzFiMjZhMDNiYmIyNWQ4ODlhNzNlNjMyODI5Mi4uNmVhZWQ5YTM3ZmM4NWY3
N2MzMjg0MmNmNGM0YjA0OGFiODE0ZDk3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMTIsMTEg
KzEyLDExIEBAIFBBU1MgYU5vZGUuaXNTYW1lTm9kZSh2b2lkIDApIGlzIGZhbHNlCiBQQVNTIGFO
b2RlLmxvb2t1cFByZWZpeChhRE9NSW1wbGVtZW50YXRpb24pIGlzIG51bGwKIFBBU1MgYU5vZGUu
bG9va3VwUHJlZml4KHZvaWQgMCkgaXMgbnVsbAogUEFTUyBhTm9kZS5jbG9uZU5vZGUoYURPTUlt
cGxlbWVudGF0aW9uKSBpbnN0YW5jZW9mIEhUTUxEaXZFbGVtZW50IGlzIHRydWUKLVBBU1MgYVNl
bGVjdC5hZGQoYURPTUltcGxlbWVudGF0aW9uLCBhRE9NSW1wbGVtZW50YXRpb24pIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVs
ZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNTIGFTZWxl
Y3QuYWRkKGFET01JbXBsZW1lbnRhdGlvbiwgYW5PcHRpb24pIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11
c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIGFTZWxlY3QuYWRkKGFET01J
bXBsZW1lbnRhdGlvbiwgYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBUeXBlIGVycm9yLgorUEFTUyBhU2VsZWN0LmFkZChhRE9NSW1wbGVtZW50YXRpb24sIGFu
T3B0aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBhU2Vs
ZWN0LmFkZChhbk9wdGlvbiwgYURPTUltcGxlbWVudGF0aW9uKSBpcyB1bmRlZmluZWQuCi1QQVNT
IGFTZWxlY3QuYWRkKHZvaWQgMCwgdm9pZCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBB
cmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyBhU2VsZWN0LmFkZCh2b2lkIDAsIGFuT3B0
aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRv
IEhUTUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50
LgorUEFTUyBhU2VsZWN0LmFkZCh2b2lkIDAsIHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgYVNlbGVjdC5hZGQodm9pZCAwLCBhbk9wdGlvbikgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgYVNlbGVjdC5hZGQoYW5P
cHRpb24sIHZvaWQgMCkgaXMgdW5kZWZpbmVkLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rp
b25zL2h0bWxvcHRpb25zY29sbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRv
bS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25zL2h0bWxvcHRpb25zY29sbGVjdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggOWUxZWUyODQ4YjJkYWY0ZmI4NGI0MDMzYjU2N2Y3M2M2YjE4ZmRkYy4uZGEzODM4
ZGQwY2VlMmJlYzAyOGJlYmEwMzc4ZDUxOTQ2YzM2NTNhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL2Nv
bW1vbi1kb20taW50ZXJmYWNlcy9jb2xsZWN0aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMv
aHRtbG9wdGlvbnNjb2xsZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMjMsNSArMjMsNSBAQCBQQVNT
IEhUTUxPcHRpb25zQ29sbGVjdGlvbi5pdGVtKGluZGV4KSBtZXRob2QgcmV0dXJuIHRoZSBpdGVt
IHdpdGggaW5kZXgKIFBBU1MgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLml0ZW0obmFtZSkgbWV0aG9k
IHJldHVybiB0aGUgaXRlbSB3aXRoIGluZGV4IDAgCiBQQVNTIEhUTUxPcHRpb25zQ29sbGVjdGlv
bi5hZGQgbWV0aG9kIGluc2VydCBIVE1MT3B0aW9uRWxlbWVudCBPcHRpb24gZWxlbWVudCAKIFBB
U1MgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLnJlbW92ZSBtZXRob2QgcmVtb3ZlIE9wdGlvbiBlbGVt
ZW50IGJ5IGluZGV4IAotRkFJTCBBZGQgbm9uLW9wdGlvbiB0byBjb2xsZWN0aW9uIGFzc2VydF90
aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Yl9vcHRzLmFkZChhZGQpO30iIGRpZCBub3Qg
dGhyb3cKK1BBU1MgQWRkIG5vbi1vcHRpb24gdG8gY29sbGVjdGlvbiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291975</attachid>
            <date>2016-10-18 12:59:29 -0700</date>
            <delta_ts>2016-10-18 13:32:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163608-20161018125555.patch</filename>
            <type>text/plain</type>
            <size>26493</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFmNTJmMzY5YTU3ZjEx
NzM5NmNlNWUyNTU5OTQzYWU4NjFmNDhmOC4uNmNhNTRjODNjYWMyNDJlNTY4MTNkZjBjMThmMTE5
NTNiOGQ2MWYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTEwLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTGV2ZXJhZ2UgbmV3IHVuaW9u
IHR5cGUgc3VwcG9ydCBmb3IgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgLyBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uYWRkKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBlIHN1cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVt
ZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpOgorICAgICAgICAtIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2h0bWxzZWxlY3RlbGVtZW50CisgICAgICAgIC0gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jaHRtbG9wdGlvbnNjb2xsZWN0aW9uCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlRGVm
YXVsdFZhbHVlKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJ
c0VtcHR5Q2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlMSk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jQ2FsbGVy
KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRp
b25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlv
bi5oOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNl
dE9wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3Ro
KToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGw6CisKIDIwMTYtMTAtMTggIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29ycmVjdCBEb2N1bWVudDo6cmVtb3ZlQWxsRXZl
bnRMaXN0ZW5lcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmNWZlMGUwMGY0M2NiNDk5OTk3YjY3YjY2
MmQyZTY1ZGM1YmRjOWJkLi5iMjhmN2VkYzcxNWFkZDIwNGMzNmRmOGQwZDUxYWU5YTQ1MzJmOWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMTAtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMZXZlcmFnZSBuZXcgdW5pb24gdHlw
ZSBzdXBwb3J0IGZvciBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSAvIEhUTUxPcHRpb25zQ29sbGVj
dGlvbi5hZGQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzNjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIGFkZCgpIGNhbGwgc2l0ZXMgbm93IHRoYXQgaXQgdGFrZXMgc3RkOjp2YXJpYW50
IHR5cGVzIGluLgorCisgICAgICAgICogRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbToK
KyAgICAgICAgKC1bRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGFkZDppbmRleDpdKToKKyAgICAg
ICAgKiBET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxTZWxl
Y3RFbGVtZW50IGFkZDpiZWZvcmU6XSk6CisKIDIwMTYtMTAtMTggIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBSZXNvbHZlIGNv
bnN0cmFpbnRzIGFuZCBlbnVtZXJhdGUgZGV2aWNlcyBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4MzJjYmIyMGE0MzFmNzA5ZmNkYjcwODAzODA4ZGI0YTA5NWZjZGVkLi42NDNhZGFmYzg4YjAz
ZDNhOTgzNTU4NWQwODViMDAwOTUwNmZkOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtOTk2LDI1ICs5OTYsMzEgQEAg
c3ViIEdldERpY3Rpb25hcnlDbGFzc05hbWUKIAogc3ViIEdlbmVyYXRlRGVmYXVsdFZhbHVlCiB7
Ci0gICAgbXkgKCRpbnRlcmZhY2UsICRtZW1iZXIpID0gQF87CisgICAgbXkgKCRpbnRlcmZhY2Us
ICRzaWduYXR1cmUpID0gQF87CiAKLSAgICBteSAkZGVmYXVsdFZhbHVlID0gJG1lbWJlci0+ZGVm
YXVsdDsKKyAgICBteSAkZGVmYXVsdFZhbHVlID0gJHNpZ25hdHVyZS0+ZGVmYXVsdDsKIAotICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkbWVtYmVyLT50eXBlKSkgeworICAgIGlm
ICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkc2lnbmF0dXJlLT50eXBlKSkgewogICAgICAg
ICAjIEZJWE1FOiBXb3VsZCBiZSBuaWNlIHRvIHJlcG9ydCBhbiBlcnJvciBpZiB0aGUgdmFsdWUg
ZG9lcyBub3QgaGF2ZSBxdW90ZSBtYXJrcyBhcm91bmQgaXQuCiAgICAgICAgICMgRklYTUU6IFdv
dWxkIGJlIG5pY2UgdG8gcmVwb3J0IGFuIGVycm9yIGlmIHRoZSB2YWx1ZSBpcyBub3Qgb25lIG9m
IHRoZSBlbnVtZXJhdGlvbiB2YWx1ZXMuCi0gICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVt
ZXJhdGlvbkNsYXNzTmFtZSgkbWVtYmVyLT50eXBlLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgbXkg
JGNsYXNzTmFtZSA9IEdldEVudW1lcmF0aW9uQ2xhc3NOYW1lKCRzaWduYXR1cmUtPnR5cGUsICRp
bnRlcmZhY2UpOwogICAgICAgICBteSAkZW51bWVyYXRpb25WYWx1ZU5hbWUgPSBHZXRFbnVtZXJh
dGlvblZhbHVlTmFtZShzdWJzdHIoJGRlZmF1bHRWYWx1ZSwgMSwgLTEpKTsKICAgICAgICAgcmV0
dXJuICRjbGFzc05hbWUgLiAiOjoiIC4gJGVudW1lcmF0aW9uVmFsdWVOYW1lOwogICAgIH0KICAg
ICBpZiAoJGRlZmF1bHRWYWx1ZSBlcSAibnVsbCIpIHsKLSAgICAgICAgcmV0dXJuICJqc051bGwo
KSIgaWYgJG1lbWJlci0+dHlwZSBlcSAiYW55IjsKLSAgICAgICAgcmV0dXJuICJudWxscHRyIiBp
ZiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkbWVtYmVyLT50eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkbWVtYmVyLT50eXBlKTsKLSAgICAgICAgcmV0dXJu
ICJTdHJpbmcoKSIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkbWVtYmVyLT50eXBl
KTsKKyAgICAgICAgcmV0dXJuICJOdWxsb3B0IiBpZiAkc2lnbmF0dXJlLT5pZGxUeXBlLT5pc1Vu
aW9uOworICAgICAgICByZXR1cm4gImpzTnVsbCgpIiBpZiAkc2lnbmF0dXJlLT50eXBlIGVxICJh
bnkiOworICAgICAgICByZXR1cm4gIm51bGxwdHIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBw
ZXJUeXBlKCRzaWduYXR1cmUtPnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlU
eXBlKCRzaWduYXR1cmUtPnR5cGUpOworICAgICAgICByZXR1cm4gIlN0cmluZygpIiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRzaWduYXR1cmUtPnR5cGUpOwogICAgICAgICByZXR1
cm4gIk51bGxvcHQiOwogICAgIH0KLSAgICByZXR1cm4gInsgfSIgaWYgJGRlZmF1bHRWYWx1ZSBl
cSAiW10iOworICAgIGlmICgkZGVmYXVsdFZhbHVlIGVxICJbXSIpIHsKKyAgICAgICAgbXkgJG5h
dGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSgkaW50ZXJmYWNlLCAkc2lnbmF0
dXJlKTsKKyAgICAgICAgcmV0dXJuICIkbmF0aXZlVHlwZSgpIgorICAgIH0KKwogICAgIHJldHVy
biAianNVbmRlZmluZWQoKSIgaWYgJGRlZmF1bHRWYWx1ZSBlcSAidW5kZWZpbmVkIjsKKyAgICBy
ZXR1cm4gIlBOYU4iIGlmICRkZWZhdWx0VmFsdWUgZXEgIk5hTiI7CiAKICAgICByZXR1cm4gJGRl
ZmF1bHRWYWx1ZTsKIH0KQEAgLTQzNDIsMTAgKzQzNDgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0
ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gJHVz
ZUF0b21pY1N0cmluZyA/ICJBdG9taWNTdHJpbmcoJGRlZmF1bHRWYWx1ZSwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkiIDogIkFTQ0lJTGl0ZXJhbCgkZGVmYXVsdFZhbHVlKSI7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIm51bGxwdHIiIGlmICRk
ZWZhdWx0VmFsdWUgZXEgIm51bGwiOwotICAgICAgICAgICAgICAgICAgICAgICAgJGRlZmF1bHRW
YWx1ZSA9ICJQTmFOIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJOYU4iOwotICAgICAgICAgICAgICAg
ICAgICAgICAgJGRlZmF1bHRWYWx1ZSA9ICIkbmF0aXZlVHlwZSgpIiBpZiAkZGVmYXVsdFZhbHVl
IGVxICJbXSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIkpTVmFs
dWU6OkpTVW5kZWZpbmVkIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJ1bmRlZmluZWQiOworICAgICAg
ICAgICAgICAgICAgICAgICAgJGRlZmF1bHRWYWx1ZSA9IEdlbmVyYXRlRGVmYXVsdFZhbHVlKCRp
bnRlcmZhY2UsICRwYXJhbWV0ZXIpOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgICAgICAgICAgJG91dGVyID0gInN0YXRlLT4kYXJndW1lbnRMb29rdXBNZXRob2QoJGFyZ3Vt
ZW50SW5kZXgpLmlzVW5kZWZpbmVkKCkgPyAkZGVmYXVsdFZhbHVlIDogIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCmluZGV4IDI2YTc4MmZkNWM3OWE1MWFm
N2FiYWZkOWQ1YjAxNGFkODcwNzE1YzkuLjFiNTM2NDBmNDU2MDNmMzUyY2M1ZGI1YWRiMDcwYzRm
MGM5MDAzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmlk
bApAQCAtMTcsNyArMTcsOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotaW50ZXJmYWNlIEhUTUxPcHRHcm91cEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CitbCisgICAg
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorXSBpbnRlcmZhY2UgSFRNTE9wdEdyb3VwRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJs
ZWQ7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCmluZGV4IDc3MDBhMjRj
NDAxYjQ3ZGFlNjFhY2Q2NzQ0OWYzZmNhNjY4ZDViMjkuLjQ1OWM4MjYwYzZiOGE0MWY5OWQ1OTUy
ODg4MGMwYzkxOWYzNzY4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25z
Q29sbGVjdGlvbi5jcHAKQEAgLTM2LDE0ICszNiw5IEBAIFJlZjxIVE1MT3B0aW9uc0NvbGxlY3Rp
b24+IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKEhUTUxTZWxlY3RFbGVtZW50JiBzZWxl
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHNlbGVjdCkp
OwogfQogCi12b2lkIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVt
ZW50LCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitFeGNl
cHRpb25Pcjx2b2lkPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZChjb25zdCBPcHRpb25Pck9w
dEdyb3VwRWxlbWVudCYgZWxlbWVudCwgT3B0aW9uYWw8SFRNTEVsZW1lbnRPckludD4gYmVmb3Jl
KQogewotICAgIHNlbGVjdEVsZW1lbnQoKS5hZGQoZWxlbWVudCwgYmVmb3JlRWxlbWVudCwgZWMp
OwotfQotCi12b2lkIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVt
ZW50LCBpbnQgYmVmb3JlSW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGFkZChlbGVt
ZW50LCBpdGVtKGJlZm9yZUluZGV4KSwgZWMpOworICAgIHJldHVybiBzZWxlY3RFbGVtZW50KCku
YWRkKGVsZW1lbnQsIGJlZm9yZSk7CiB9CiAKIHZvaWQgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpy
ZW1vdmUoaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmgKaW5kZXggOWJkOTYwMmY0NjkzZGMxNmMyNzRiNGMzZmNjNDQwZjU2NDg5NGQ2OS4uZjI1
MTE2ZDc1YWQzYzM2NGEzNGU4Y2M1ODQzYzUxZWQwOWRjMWFkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCkBAIC00MSw4ICs0MSw5IEBAIHB1YmxpYzoK
ICAgICBIVE1MT3B0aW9uRWxlbWVudCogaXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0IGZpbmFs
OwogICAgIEhUTUxPcHRpb25FbGVtZW50KiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdCBmaW5hbDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkKEhUTUxFbGVt
ZW50JiwgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFkZChIVE1MRWxlbWVudCYsIGludCBiZWZvcmVJbmRleCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHVzaW5nIE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gc3RkOjpl
eHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiwgUmVmUHRyPEhU
TUxPcHRHcm91cEVsZW1lbnQ+PjsKKyAgICB1c2luZyBIVE1MRWxlbWVudE9ySW50ID0gc3RkOjpl
eHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPEhUTUxFbGVtZW50PiwgaW50PjsKKyAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBhZGQoY29uc3QgT3B0aW9uT3JPcHRHcm91cEVs
ZW1lbnQmLCBPcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZvcmUpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlKGludCBpbmRleCk7CiAgICAgdm9pZCByZW1vdmUoSFRNTE9wdGlv
bkVsZW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaWRsCmluZGV4IDhkNTgwNzFhZmI3Yjk4YjczZjNmZWE5MGU2ZDM3MDI0M2RiYjAyODUuLjZm
ODUyNjEyMWYxZGI4MmQ3NTA0YTc5NDVmNDgxMjk2YjIxNjUyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKQEAgLTMwLDEwICszMCw3IEBACiAg
ICAgZ2V0dGVyIEhUTUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwog
ICAgIGdldHRlciBIVE1MT3B0aW9uRWxlbWVudD8gbmFtZWRJdGVtKERPTVN0cmluZyBuYW1lKTsK
IAotICAgIC8vIEZJWE1FOiBTaG91bGQgYmU6Ci0gICAgLy8gdm9pZCBhZGQoKEhUTUxPcHRpb25F
bGVtZW50IG9yIEhUTUxPcHRHcm91cEVsZW1lbnQpIGVsZW1lbnQsIG9wdGlvbmFsIChIVE1MRWxl
bWVudCBvciBsb25nKT8gYmVmb3JlID0gbnVsbCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0
aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBlbGVtZW50LCBvcHRpb25hbCBIVE1MRWxlbWVudD8g
YmVmb3JlID0gbnVsbCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChI
VE1MRWxlbWVudCBlbGVtZW50LCBsb25nIGluZGV4KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHZvaWQgYWRkKChIVE1MT3B0aW9uRWxlbWVudCBvciBIVE1MT3B0R3JvdXBFbGVtZW50KSBlbGVt
ZW50LCBvcHRpb25hbCAoSFRNTEVsZW1lbnQgb3IgbG9uZyk/IGJlZm9yZSA9IG51bGwpOwogCiAg
ICAgdm9pZCByZW1vdmUobG9uZyBpbmRleCk7CiAgICAgLy8gRklYTUU6IFRoaXMgb3ZlcmxvYWQg
aXMgbm90IGluIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCBoYXMgYmVlbiBkcm9wcGVkIGluIEJsaW5r
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlZTc0YjI3
MjA3NmI3NTZlM2U5OWRlZDY5NDAwMzBkMjkxZDIwYjc1Li4wYjZmMGYyNGVkM2UwY2VmZGYzZTMw
ZmViYWI3NDgzMjhjYjc3MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcApAQCAtMjIxLDE2ICsyMjEsMjcgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjphY3Rp
dmVTZWxlY3Rpb25FbmRMaXN0SW5kZXgoKSBjb25zdAogICAgIHJldHVybiBsYXN0U2VsZWN0ZWRM
aXN0SW5kZXgoKTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxFbGVtZW50
JiBlbGVtZW50LCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKGNvbnN0IE9wdGlvbk9y
T3B0R3JvdXBFbGVtZW50JiBlbGVtZW50LCBPcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZv
cmUpCiB7Ci0gICAgaWYgKCEoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPEhU
TUxIUkVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPEhUTUxPcHRHcm91cEVsZW1lbnQ+KGVsZW1lbnQp
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmVFbGVt
ZW50LCBlYyk7Ci19CisgICAgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQgPSBudWxscHRyOwor
ICAgIGlmIChiZWZvcmUpIHsKKyAgICAgICAgYXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlzaXRv
cigKKyAgICAgICAgICAgIFtdKGNvbnN0IFJlZlB0cjxIVE1MRWxlbWVudD4mIGVsZW1lbnQpIC0+
IEhUTUxFbGVtZW50KiB7IHJldHVybiBlbGVtZW50LmdldCgpOyB9LAorICAgICAgICAgICAgW3Ro
aXNdKGludCBpbmRleCkgLT4gSFRNTEVsZW1lbnQqIHsgcmV0dXJuIGl0ZW0oaW5kZXgpOyB9Cisg
ICAgICAgICk7CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCYgZWxl
bWVudCwgaW50IGJlZm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBhZGQoZWxl
bWVudCwgaXRlbShiZWZvcmVJbmRleCksIGVjKTsKKyAgICAgICAgYmVmb3JlRWxlbWVudCA9IHN0
ZDo6ZXhwZXJpbWVudGFsOjp2aXNpdCh2aXNpdG9yLCBiZWZvcmUudmFsdWUoKSk7CisgICAgfQor
ICAgIEhUTUxFbGVtZW50JiB0b0luc2VydCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp2aXNpdChbXShj
b25zdCBhdXRvJiBodG1sRWxlbWVudCkgLT4gSFRNTEVsZW1lbnQmIHsKKyAgICAgICAgcmV0dXJu
ICpodG1sRWxlbWVudDsKKyAgICB9LCBlbGVtZW50KTsKKworCisgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgaW5zZXJ0QmVmb3JlKHRvSW5zZXJ0LCBiZWZvcmVFbGVtZW50LCBlYyk7Cisg
ICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgZWMgfTsKKyAgICByZXR1cm4g
eyB9OwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmVCeUluZGV4KGludCBvcHRp
b25JbmRleCkKQEAgLTQ0MCw3ICs0NTEsOSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRP
cHRpb24odW5zaWduZWQgaW5kZXgsIEhUTUxPcHRpb25FbGVtZW50JiBvcHRpb24sIEV4YwogICAg
IH0KICAgICAvLyBGaW5hbGx5IGFkZCB0aGUgbmV3IGVsZW1lbnQuCiAgICAgaWYgKCFlYykgewot
ICAgICAgICBhZGQob3B0aW9uLCBiZWZvcmUuZ2V0KCksIGVjKTsKKyAgICAgICAgYXV0byBleGNl
cHRpb24gPSBhZGQoJm9wdGlvbiwgSFRNTEVsZW1lbnRPckludChiZWZvcmUuZ2V0KCkpKTsKKyAg
ICAgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIGVjID0gZXhj
ZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCk7CiAgICAgICAgIGlmIChkaWZmID49IDAg
JiYgb3B0aW9uLnNlbGVjdGVkKCkpCiAgICAgICAgICAgICBvcHRpb25TZWxlY3Rpb25TdGF0ZUNo
YW5nZWQob3B0aW9uLCB0cnVlKTsKICAgICB9CkBAIC00NTYsOSArNDY5LDExIEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0aCh1bnNpZ25lZCBuZXdMZW5ndGgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIGlmIChkaWZmIDwgMCkgeyAvLyBBZGQgZHVtbXkgZWxlbWVudHMuCiAgICAg
ICAgIGRvIHsKICAgICAgICAgICAgIGF1dG8gb3B0aW9uID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVt
ZW50KG9wdGlvblRhZywgZmFsc2UpOwotICAgICAgICAgICAgYWRkKGRvd25jYXN0PEhUTUxFbGVt
ZW50PihvcHRpb24uZ2V0KCkpLCBudWxscHRyLCBlYyk7Ci0gICAgICAgICAgICBpZiAoZWMpCisg
ICAgICAgICAgICBhdXRvIGV4Y2VwdGlvbiA9IGFkZChkb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVu
dD4ob3B0aW9uLnB0cigpKSwgTnVsbG9wdCk7CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uLmhh
c0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgZWMgPSBleGNlcHRpb24ucmVsZWFzZUV4
Y2VwdGlvbigpLmNvZGUoKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAg
ICAgICB9IHdoaWxlICgrK2RpZmYpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8mIGl0ZW1z
ID0gbGlzdEl0ZW1zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5k
ZXggM2UzNjc3YmJmMzdiYjFhN2Q5ZDgzNDdjMzBlN2NlODhhZjkyNjExOS4uN2RlNThkMTBjNDgw
ZWI4YjU1NTI2OTI0NDE2ZjI4YjJhNTMxODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaApAQCAtNTEsOCArNTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHVzZXNN
ZW51TGlzdCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGQoSFRNTEVsZW1l
bnQmLCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZv
aWQgYWRkKEhUTUxFbGVtZW50JiwgaW50IGJlZm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdXNpbmcgT3B0aW9uT3JPcHRHcm91cEVsZW1lbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFy
aWFudDxSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVu
dD4+OworICAgIHVzaW5nIEhUTUxFbGVtZW50T3JJbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFy
aWFudDxSZWZQdHI8SFRNTEVsZW1lbnQ+LCBpbnQ+OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGFkZChjb25zdCBPcHRpb25Pck9wdEdyb3VwRWxlbWVudCYsIE9wdGlvbmFs
PEhUTUxFbGVtZW50T3JJbnQ+IGJlZm9yZSk7CiAKICAgICB1c2luZyBOb2RlOjpyZW1vdmU7CiAg
ICAgdm9pZCByZW1vdmUoSFRNTE9wdGlvbkVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGwKaW5kZXggYzNiODUzMDkyOWU3OTEzYWY2M2Q0MmRkZjljYTkz
YzVhN2NmNTA2MC4uMDdhOGMzZDAyOWUwZjlhMWE1YjgxZTIyMTQ2YzA0YjY2YzcwMGEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQwLDEwICs0MCw3
IEBACiAgICAgZ2V0dGVyIEhUTUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOwogICAgIEhUTUxPcHRpb25FbGVtZW50PyBuYW1lZEl0ZW0oRE9NU3RyaW5nIG5hbWUpOwog
Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBlbGVt
ZW50LCBvcHRpb25hbCBIVE1MRWxlbWVudD8gYmVmb3JlID0gbnVsbCk7Ci0gICAgLy8gRklYTUU6
IFNob3VsZCBiZToKLSAgICAvLyB2b2lkIGFkZCgoSFRNTE9wdGlvbkVsZW1lbnQgb3IgSFRNTE9w
dEdyb3VwRWxlbWVudCkgZWxlbWVudCwgb3B0aW9uYWwgKEhUTUxFbGVtZW50IG9yIGxvbmcpPyBi
ZWZvcmUgPSBudWxsKTsKLSAgICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgYWRkKEhU
TUxFbGVtZW50IGVsZW1lbnQsIGxvbmcgaW5kZXgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dm9pZCBhZGQoKEhUTUxPcHRpb25FbGVtZW50IG9yIEhUTUxPcHRHcm91cEVsZW1lbnQpIGVsZW1l
bnQsIG9wdGlvbmFsIChIVE1MRWxlbWVudCBvciBsb25nKT8gYmVmb3JlID0gbnVsbCk7CiAKICAg
ICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgcmVtb3ZlKCk7IC8vIENoaWxkTm9kZSBv
dmVybG9hZAogICAgIC8vIEZJWE1FOiBUaGlzIG92ZXJsb2FkIGlzIG5vdCBpbiB0aGUgc3BlY2lm
aWNhdGlvbiBhbmQgd2FzIGRyb3BwZWQgaW4gQmxpbmsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbQppbmRleCA1NGQ2YmZlM2YwYTgxY2Iw
NTgzYmYyYWI5MGFlNTQ1MGZmMmE1NTY5Li44MzAzY2Q3NjY0NTVhMjRkZjMzOTU1M2VhMzRmYTA4
ZmY3Njk5NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MT3B0aW9u
c0NvbGxlY3Rpb24ubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTUludGVybmFsLmgi
CiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJz
LmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUTUxPcHRHcm91cEVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTE9wdGlvbkVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgpA
QCAtMzgsNiArMzksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYv
R2V0UHRyLmg+CisjaW1wb3J0IDx3dGYvVmFyaWFudC5oPgogCiAjZGVmaW5lIElNUEwgcmVpbnRl
cnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihfaW50ZXJuYWwpCiAK
QEAgLTkwLDkgKzkyLDkgQEAgLSAodm9pZClhZGQ6KERPTUhUTUxPcHRpb25FbGVtZW50ICopb3B0
aW9uIGluZGV4Oih1bnNpZ25lZClpbmRleAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBpZiAoIW9wdGlvbikKICAgICAgICAgcmFpc2VUeXBlRXJyb3JFeGNl
cHRpb24oKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5h
ZGQoKmNvcmUob3B0aW9uKSwgaW5kZXgsIGVjKTsKLSAgICByYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIGF1dG8gZXhjZXB0aW9uID0gSU1QTC0+YWRkKGNvcmUob3B0aW9uKSwgT3B0aW9uYWw8V2Vi
Q29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpIVE1MRWxlbWVudE9ySW50PihzdGF0aWNfY2Fz
dDxpbnQ+KGluZGV4KSkpOworICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJhaXNlT25ET01FcnJvcihleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7
CiB9CiAKIC0gKHZvaWQpcmVtb3ZlOih1bnNpZ25lZClpbmRleApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tCmluZGV4IDZhNzdhZDc4YmJhZGJjZmMxNTk4
NzdjNzdiNDc5Zjk1MGY2NmM2MzMuLjY4MDg3ZDA4ZWM3ZjVjYWEzYjcyY2JkMzE1MmU3YmI0ODI5
NzZlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxl
bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQu
bW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTEVsZW1lbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSFRNTEZvcm1FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxO
YW1lcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1M
U2VsZWN0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU01haW5UaHJlYWRFeGVjU3RhdGUu
aD4KQEAgLTE4Miw5ICsxODMsMjAgQEAgLSAodm9pZClhZGQ6KERPTUhUTUxFbGVtZW50ICopZWxl
bWVudCBiZWZvcmU6KERPTUhUTUxFbGVtZW50ICopYmVmb3JlCiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmFpc2VU
eXBlRXJyb3JFeGNlcHRpb24oKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBJTVBMLT5hZGQoKmNvcmUoZWxlbWVudCksIGNvcmUoYmVmb3JlKSwgZWMpOwotICAgIHJh
aXNlT25ET01FcnJvcihlYyk7CisKKyAgICBhdXRvJiBjb3JlRWxlbWVudCA9ICpjb3JlKGVsZW1l
bnQpOworICAgIHN0ZDo6ZXhwZXJpbWVudGFsOjp2YXJpYW50PFJlZlB0cjxXZWJDb3JlOjpIVE1M
T3B0aW9uRWxlbWVudD4sIFJlZlB0cjxXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Pj4gdmFy
aWFudEVsZW1lbnQ7CisgICAgaWYgKGlzPFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Pihjb3Jl
RWxlbWVudCkpCisgICAgICAgIHZhcmlhbnRFbGVtZW50ID0gJmRvd25jYXN0PFdlYkNvcmU6OkhU
TUxPcHRpb25FbGVtZW50Pihjb3JlRWxlbWVudCk7CisgICAgZWxzZSBpZiAoaXM8V2ViQ29yZTo6
SFRNTE9wdEdyb3VwRWxlbWVudD4oY29yZUVsZW1lbnQpKQorICAgICAgICB2YXJpYW50RWxlbWVu
dCA9ICZkb3duY2FzdDxXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Pihjb3JlRWxlbWVudCk7
CisgICAgZWxzZSB7CisgICAgICAgIHJhaXNlVHlwZUVycm9yRXhjZXB0aW9uKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgYXV0byBleGNlcHRpb24gPSBJTVBMLT5hZGQoV1RGTW92ZSh2
YXJpYW50RWxlbWVudCksIFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MRWxlbWVudE9y
SW50KGNvcmUoYmVmb3JlKSkpOworICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJhaXNlT25ET01FcnJvcihleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUo
KSk7CiB9CiAKIC0gKHZvaWQpcmVtb3ZlOihpbnQpaW5kZXgKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmM2JjNTE5MGNhN2Nl
YjE0NWU3M2MyNWI4ZGU1N2VlNzRlMzFlNDNiLi42MjEwMWFlYWI4ZjhhN2MzMzgyYWU5NDA4Yzk1
Y2U1YjM0YjdjY2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMTAtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMZXZlcmFnZSBuZXcgdW5pb24gdHlw
ZSBzdXBwb3J0IGZvciBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSAvIEhUTUxPcHRpb25zQ29sbGVj
dGlvbi5hZGQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzNjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmViYXNlbGluZSBleGlzdGluZyB0ZXN0cyBub3cgdGhhdCBleGNlcHRpb24gbWVzc2FnZXMg
YXJlIGRpZmZlcmVudC4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2Fk
ZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0
aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vaW5j
b21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0OgorCiAyMDE2LTEwLTE4ICBSeWFuIEhh
ZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBmbGFreSBleHBlY3Rh
dGlvbiBmb3IgdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbGF0Y2hlZC1kaXYtd2l0aC1zY3JvbGwt
c25hcC5odG1sIHRoYXQgd2FzIGVycmFudGx5IHJlbW92ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBhZWU5MzBlZTc4M2FmYzA2ODY4ZTA2MjNhZjFiM2IzNDg1MTc3NDQ4Li5k
NjllM2Y1Y2YyMzU0NDEwM2RhYzIxOGI0MmYwOTljYjIyMDBjNjIzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxNi0xMC0xOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBlIHN1
cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmFkZCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjM2MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWJhc2VsaW5lIFczQyB0ZXN0IG5vdyB0aGF0IG9uZSBtb3JlIGNoZWNrIGlzIHBhc3NpbmcuIFRo
aXMgaXMgYmVjYXVzZSB3ZSBhcmUgbm93CisgICAgICAgIGNvcnJlY3RseSB0aHJvd2luZyBhIFR5
cGVFcnJvciB3aGVuIGNhbGxpbmcgYWRkKCkgd2l0aCBhbiB1bmV4cGVjdGVkIEhUTUxFbGVtZW50
IHR5cGUuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVy
ZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMvaHRtbG9wdGlvbnNjb2xsZWN0aW9u
LWV4cGVjdGVkLnR4dDoKKworMjAxNi0xMC0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCiAgICAgICAgIFVwZGF0ZSBUcmFja0V2ZW50IHRvIHN0b3AgdXNpbmcgbGVnYWN5IFtD
b25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50XQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNTgwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9hZGQtZXhwZWN0ZWQudHh0CmluZGV4IGIzM2Y3MWZkNzM5
ODFmYjFhZjdlZDgxOTgxYmJlZWMzMTYyZTYzY2MuLjc1ZjZmMjE4YjgyOGEwNWE0YmZlYTgxMDBh
ZDMwNjI1NDk1NjI1MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxl
Y3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNlbGVjdEVsZW1lbnQvYWRkLWV4cGVjdGVkLnR4dApAQCAtOSw5ICs5LDkgQEAgUEFTUyB0ZXN0
QWRkKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiAK
IENhbGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCBvbmUgYXJndW1lbnQ6CiBQQVNTIHRl
c3RBZGQoY3JlYXRlT3B0aW9uKCJZMSIpKSBpcyAiMCwxLDIsWTEiCi1QQVNTIHRlc3RBZGQoImZv
byIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8g
SFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQu
Ci1QQVNTIHRlc3RBZGQodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQu
YWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHRlc3RBZGQoImZv
byIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RBZGQo
dW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0
ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiAKIENh
bGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCB0d28gYXJndW1lbnRzOgogUEFTUyB0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTIiKSwgbnVsbCkgaXMgIjAsMSwyLFkyIgpAQCAtNDAsOSArNDAs
OSBAQCBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIpIGlzICIwLDEsMixZMjQi
CiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMF0pIGlz
ICJYLDAsMSwyIgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRp
b25zWzFdKSBpcyAiMCxYLDEsMiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlT
ZWxlY3Qub3B0aW9uc1syXSkgaXMgIjAsMSxYLDIiCi1QQVNTIHRlc3RBZGQoImZvbyIsIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNl
bGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNT
IHRlc3RBZGQodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQu
YWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHRlc3RBZGQoImZv
byIsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RB
ZGQodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCiAKIENhbGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCB0aHJlZSBhcmd1bWVudHMg
KHdoZW4gaXQgb25seSB0YWtlcyB0d28gYXJndW1lbnRzKToKIFBBU1MgdGVzdEFkZChjcmVhdGVP
cHRpb24oIlgiKSwgMCwgInVubmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxkIGJlIGln
bm9yZWQiKSBpcyAiWCwwLDEsMiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTZWxlY3RFbGVtZW50L29wdGlvbnMtY29sbGVjdGlvbi1hZGQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFk
ZC1leHBlY3RlZC50eHQKaW5kZXggZDZjYzhiNTdhMWI3YTdmNTI3MmI3MmRhODgxMTgyMmE2ZWMz
MDhkYy4uMWRhMDJkNmI5YmRmNjIyYThkOTliMWE2MjFkMTU0Y2VhYmViYTAwZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0
aW9uLWFkZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVj
dEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQKQEAgLTksOSArOSw5
IEBAIFBBU1MgdGVzdEFkZCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgogCiBDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIG9ubHkg
b25lIGFyZ3VtZW50OgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTkiKSkgaXMgIjAsMSwy
LFk5IgotUEFTUyB0ZXN0QWRkKCJmb28iKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBBU1MgdGVzdEFkZCh1bmRlZmluZWQpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFT
UyB0ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdl
bGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIEhUTUxFbGVtZW50LgorUEFTUyB0ZXN0QWRkKCJmb28iKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFkZChudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogCiBDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlv
bi5hZGQoKSB3aXRoIHR3byBhcmd1bWVudHM6CiBQQVNTIHRlc3RBZGQoY3JlYXRlR3JvdXAoIlkx
IiwgIlkyIiksIG51bGwpIGlzICIwLDEsMixZMSxZMiIKQEAgLTUyLDkgKzUyLDkgQEAgUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzFdKSBpcyAiMCxYLDEs
MiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1syXSkg
aXMgIjAsMSxYLDIiCiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjUiKSwgMCwgMSkgaXMg
IlkyNSwwLDEsMiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyNSIpLCBteVNlbGVjdC5v
cHRpb25zWzBdLCAxKSBpcyAiWTI1LDAsMSwyIgotUEFTUyB0ZXN0QWRkKCJmb28iLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxPcHRp
b25zQ29sbGVjdGlvbi5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBB
U1MgdGVzdEFkZCh1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyB0
ZXN0QWRkKCJmb28iLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgdGVzdEFkZChudWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgogCiBDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIHRo
cmVlIGFyZ3VtZW50cyAod2hlbiBpdCBvbmx5IHRha2VzIHR3byBhcmd1bWVudHMpOgogUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCAwLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQg
LSBzaG91bGQgYmUgaWdub3JlZCIpIGlzICJYLDAsMSwyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4
IDg0NDAxOTA2YTc4NzcxYjI2YTAzYmJiMjVkODg5YTczZTYzMjgyOTIuLjZlYWVkOWEzN2ZjODVm
NzdjMzI4NDJjZjRjNGIwNDhhYjgxNGQ5N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEyLDEx
ICsxMiwxMSBAQCBQQVNTIGFOb2RlLmlzU2FtZU5vZGUodm9pZCAwKSBpcyBmYWxzZQogUEFTUyBh
Tm9kZS5sb29rdXBQcmVmaXgoYURPTUltcGxlbWVudGF0aW9uKSBpcyBudWxsCiBQQVNTIGFOb2Rl
Lmxvb2t1cFByZWZpeCh2b2lkIDApIGlzIG51bGwKIFBBU1MgYU5vZGUuY2xvbmVOb2RlKGFET01J
bXBsZW1lbnRhdGlvbikgaW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCBpcyB0cnVlCi1QQVNTIGFT
ZWxlY3QuYWRkKGFET01JbXBsZW1lbnRhdGlvbiwgYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RF
bGVtZW50LmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyBhU2Vs
ZWN0LmFkZChhRE9NSW1wbGVtZW50YXRpb24sIGFuT3B0aW9uKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyBhU2VsZWN0LmFkZChhRE9N
SW1wbGVtZW50YXRpb24sIGFET01JbXBsZW1lbnRhdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgYVNlbGVjdC5hZGQoYURPTUltcGxlbWVudGF0aW9uLCBh
bk9wdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgYVNl
bGVjdC5hZGQoYW5PcHRpb24sIGFET01JbXBsZW1lbnRhdGlvbikgaXMgdW5kZWZpbmVkLgotUEFT
UyBhU2VsZWN0LmFkZCh2b2lkIDAsIHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2VsZWN0RWxlbWVudC5hZGQgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBBU1MgYVNlbGVjdC5hZGQodm9pZCAwLCBhbk9w
dGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0
byBIVE1MU2VsZWN0RWxlbWVudC5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVu
dC4KK1BBU1MgYVNlbGVjdC5hZGQodm9pZCAwLCB2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFTZWxlY3QuYWRkKHZvaWQgMCwgYW5PcHRpb24pIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGFTZWxlY3QuYWRkKGFu
T3B0aW9uLCB2b2lkIDApIGlzIHVuZGVmaW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNlcy9jb2xsZWN0
aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1k
b20taW50ZXJmYWNlcy9jb2xsZWN0aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDllMWVlMjg0OGIyZGFmNGZiODRiNDAzM2I1NjdmNzNjNmIxOGZkZGMuLmRhMzgz
OGRkMGNlZTJiZWMwMjhiZWJhMDM3OGQ1MTk0NmMzNjUzYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9j
b21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMvaHRtbG9wdGlvbnNjb2xsZWN0aW9uLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25z
L2h0bWxvcHRpb25zY29sbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTIzLDUgKzIzLDUgQEAgUEFT
UyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaXRlbShpbmRleCkgbWV0aG9kIHJldHVybiB0aGUgaXRl
bSB3aXRoIGluZGV4CiBQQVNTIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5pdGVtKG5hbWUpIG1ldGhv
ZCByZXR1cm4gdGhlIGl0ZW0gd2l0aCBpbmRleCAwIAogUEFTUyBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24uYWRkIG1ldGhvZCBpbnNlcnQgSFRNTE9wdGlvbkVsZW1lbnQgT3B0aW9uIGVsZW1lbnQgCiBQ
QVNTIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5yZW1vdmUgbWV0aG9kIHJlbW92ZSBPcHRpb24gZWxl
bWVudCBieSBpbmRleCAKLUZBSUwgQWRkIG5vbi1vcHRpb24gdG8gY29sbGVjdGlvbiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkge2Jfb3B0cy5hZGQoYWRkKTt9IiBkaWQgbm90
IHRocm93CitQQVNTIEFkZCBub24tb3B0aW9uIHRvIGNvbGxlY3Rpb24gCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291979</attachid>
            <date>2016-10-18 13:32:52 -0700</date>
            <delta_ts>2016-10-18 16:21:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163608-20161018132918.patch</filename>
            <type>text/plain</type>
            <size>33773</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFmNTJmMzY5YTU3ZjEx
NzM5NmNlNWUyNTU5OTQzYWU4NjFmNDhmOC4uNmNhNTRjODNjYWMyNDJlNTY4MTNkZjBjMThmMTE5
NTNiOGQ2MWYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTEwLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTGV2ZXJhZ2UgbmV3IHVuaW9u
IHR5cGUgc3VwcG9ydCBmb3IgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgLyBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uYWRkKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MzYwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBlIHN1cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVt
ZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCgpOgorICAgICAgICAtIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2h0bWxzZWxlY3RlbGVtZW50CisgICAgICAgIC0gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jaHRtbG9wdGlvbnNjb2xsZWN0aW9uCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlRGVm
YXVsdFZhbHVlKToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJ
c0VtcHR5Q2FsbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlMSk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jQ2FsbGVy
KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRp
b25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlv
bi5oOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbDoKKyAgICAgICAg
KiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNl
dE9wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3Ro
KToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGw6CisKIDIwMTYtMTAtMTggIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29ycmVjdCBEb2N1bWVudDo6cmVtb3ZlQWxsRXZl
bnRMaXN0ZW5lcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmNWZlMGUwMGY0M2NiNDk5OTk3YjY3YjY2
MmQyZTY1ZGM1YmRjOWJkLi5iMjhmN2VkYzcxNWFkZDIwNGMzNmRmOGQwZDUxYWU5YTQ1MzJmOWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMTAtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMZXZlcmFnZSBuZXcgdW5pb24gdHlw
ZSBzdXBwb3J0IGZvciBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSAvIEhUTUxPcHRpb25zQ29sbGVj
dGlvbi5hZGQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzNjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIGFkZCgpIGNhbGwgc2l0ZXMgbm93IHRoYXQgaXQgdGFrZXMgc3RkOjp2YXJpYW50
IHR5cGVzIGluLgorCisgICAgICAgICogRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbToK
KyAgICAgICAgKC1bRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uIGFkZDppbmRleDpdKToKKyAgICAg
ICAgKiBET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxTZWxl
Y3RFbGVtZW50IGFkZDpiZWZvcmU6XSk6CisKIDIwMTYtMTAtMTggIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBSZXNvbHZlIGNv
bnN0cmFpbnRzIGFuZCBlbnVtZXJhdGUgZGV2aWNlcyBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4MzJjYmIyMGE0MzFmNzA5ZmNkYjcwODAzODA4ZGI0YTA5NWZjZGVkLi42NDNhZGFmYzg4YjAz
ZDNhOTgzNTU4NWQwODViMDAwOTUwNmZkOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtOTk2LDI1ICs5OTYsMzEgQEAg
c3ViIEdldERpY3Rpb25hcnlDbGFzc05hbWUKIAogc3ViIEdlbmVyYXRlRGVmYXVsdFZhbHVlCiB7
Ci0gICAgbXkgKCRpbnRlcmZhY2UsICRtZW1iZXIpID0gQF87CisgICAgbXkgKCRpbnRlcmZhY2Us
ICRzaWduYXR1cmUpID0gQF87CiAKLSAgICBteSAkZGVmYXVsdFZhbHVlID0gJG1lbWJlci0+ZGVm
YXVsdDsKKyAgICBteSAkZGVmYXVsdFZhbHVlID0gJHNpZ25hdHVyZS0+ZGVmYXVsdDsKIAotICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkbWVtYmVyLT50eXBlKSkgeworICAgIGlm
ICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkc2lnbmF0dXJlLT50eXBlKSkgewogICAgICAg
ICAjIEZJWE1FOiBXb3VsZCBiZSBuaWNlIHRvIHJlcG9ydCBhbiBlcnJvciBpZiB0aGUgdmFsdWUg
ZG9lcyBub3QgaGF2ZSBxdW90ZSBtYXJrcyBhcm91bmQgaXQuCiAgICAgICAgICMgRklYTUU6IFdv
dWxkIGJlIG5pY2UgdG8gcmVwb3J0IGFuIGVycm9yIGlmIHRoZSB2YWx1ZSBpcyBub3Qgb25lIG9m
IHRoZSBlbnVtZXJhdGlvbiB2YWx1ZXMuCi0gICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVt
ZXJhdGlvbkNsYXNzTmFtZSgkbWVtYmVyLT50eXBlLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgbXkg
JGNsYXNzTmFtZSA9IEdldEVudW1lcmF0aW9uQ2xhc3NOYW1lKCRzaWduYXR1cmUtPnR5cGUsICRp
bnRlcmZhY2UpOwogICAgICAgICBteSAkZW51bWVyYXRpb25WYWx1ZU5hbWUgPSBHZXRFbnVtZXJh
dGlvblZhbHVlTmFtZShzdWJzdHIoJGRlZmF1bHRWYWx1ZSwgMSwgLTEpKTsKICAgICAgICAgcmV0
dXJuICRjbGFzc05hbWUgLiAiOjoiIC4gJGVudW1lcmF0aW9uVmFsdWVOYW1lOwogICAgIH0KICAg
ICBpZiAoJGRlZmF1bHRWYWx1ZSBlcSAibnVsbCIpIHsKLSAgICAgICAgcmV0dXJuICJqc051bGwo
KSIgaWYgJG1lbWJlci0+dHlwZSBlcSAiYW55IjsKLSAgICAgICAgcmV0dXJuICJudWxscHRyIiBp
ZiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkbWVtYmVyLT50eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkbWVtYmVyLT50eXBlKTsKLSAgICAgICAgcmV0dXJu
ICJTdHJpbmcoKSIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkbWVtYmVyLT50eXBl
KTsKKyAgICAgICAgcmV0dXJuICJOdWxsb3B0IiBpZiAkc2lnbmF0dXJlLT5pZGxUeXBlLT5pc1Vu
aW9uOworICAgICAgICByZXR1cm4gImpzTnVsbCgpIiBpZiAkc2lnbmF0dXJlLT50eXBlIGVxICJh
bnkiOworICAgICAgICByZXR1cm4gIm51bGxwdHIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBw
ZXJUeXBlKCRzaWduYXR1cmUtPnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlU
eXBlKCRzaWduYXR1cmUtPnR5cGUpOworICAgICAgICByZXR1cm4gIlN0cmluZygpIiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRzaWduYXR1cmUtPnR5cGUpOwogICAgICAgICByZXR1
cm4gIk51bGxvcHQiOwogICAgIH0KLSAgICByZXR1cm4gInsgfSIgaWYgJGRlZmF1bHRWYWx1ZSBl
cSAiW10iOworICAgIGlmICgkZGVmYXVsdFZhbHVlIGVxICJbXSIpIHsKKyAgICAgICAgbXkgJG5h
dGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSgkaW50ZXJmYWNlLCAkc2lnbmF0
dXJlKTsKKyAgICAgICAgcmV0dXJuICIkbmF0aXZlVHlwZSgpIgorICAgIH0KKwogICAgIHJldHVy
biAianNVbmRlZmluZWQoKSIgaWYgJGRlZmF1bHRWYWx1ZSBlcSAidW5kZWZpbmVkIjsKKyAgICBy
ZXR1cm4gIlBOYU4iIGlmICRkZWZhdWx0VmFsdWUgZXEgIk5hTiI7CiAKICAgICByZXR1cm4gJGRl
ZmF1bHRWYWx1ZTsKIH0KQEAgLTQzNDIsMTAgKzQzNDgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0
ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gJHVz
ZUF0b21pY1N0cmluZyA/ICJBdG9taWNTdHJpbmcoJGRlZmF1bHRWYWx1ZSwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkiIDogIkFTQ0lJTGl0ZXJhbCgkZGVmYXVsdFZhbHVlKSI7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIm51bGxwdHIiIGlmICRk
ZWZhdWx0VmFsdWUgZXEgIm51bGwiOwotICAgICAgICAgICAgICAgICAgICAgICAgJGRlZmF1bHRW
YWx1ZSA9ICJQTmFOIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJOYU4iOwotICAgICAgICAgICAgICAg
ICAgICAgICAgJGRlZmF1bHRWYWx1ZSA9ICIkbmF0aXZlVHlwZSgpIiBpZiAkZGVmYXVsdFZhbHVl
IGVxICJbXSI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkZGVmYXVsdFZhbHVlID0gIkpTVmFs
dWU6OkpTVW5kZWZpbmVkIiBpZiAkZGVmYXVsdFZhbHVlIGVxICJ1bmRlZmluZWQiOworICAgICAg
ICAgICAgICAgICAgICAgICAgJGRlZmF1bHRWYWx1ZSA9IEdlbmVyYXRlRGVmYXVsdFZhbHVlKCRp
bnRlcmZhY2UsICRwYXJhbWV0ZXIpOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgICAgICAgICAgJG91dGVyID0gInN0YXRlLT4kYXJndW1lbnRMb29rdXBNZXRob2QoJGFyZ3Vt
ZW50SW5kZXgpLmlzVW5kZWZpbmVkKCkgPyAkZGVmYXVsdFZhbHVlIDogIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCmluZGV4IDI2YTc4MmZkNWM3OWE1MWFm
N2FiYWZkOWQ1YjAxNGFkODcwNzE1YzkuLjFiNTM2NDBmNDU2MDNmMzUyY2M1ZGI1YWRiMDcwYzRm
MGM5MDAzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmlk
bApAQCAtMTcsNyArMTcsOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
IAotaW50ZXJmYWNlIEhUTUxPcHRHcm91cEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CitbCisgICAg
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorXSBpbnRlcmZhY2UgSFRNTE9wdEdyb3VwRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJs
ZWQ7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCmluZGV4IDc3MDBhMjRj
NDAxYjQ3ZGFlNjFhY2Q2NzQ0OWYzZmNhNjY4ZDViMjkuLjQ1OWM4MjYwYzZiOGE0MWY5OWQ1OTUy
ODg4MGMwYzkxOWYzNzY4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25z
Q29sbGVjdGlvbi5jcHAKQEAgLTM2LDE0ICszNiw5IEBAIFJlZjxIVE1MT3B0aW9uc0NvbGxlY3Rp
b24+IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKEhUTUxTZWxlY3RFbGVtZW50JiBzZWxl
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHNlbGVjdCkp
OwogfQogCi12b2lkIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVt
ZW50LCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCitFeGNl
cHRpb25Pcjx2b2lkPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZChjb25zdCBPcHRpb25Pck9w
dEdyb3VwRWxlbWVudCYgZWxlbWVudCwgT3B0aW9uYWw8SFRNTEVsZW1lbnRPckludD4gYmVmb3Jl
KQogewotICAgIHNlbGVjdEVsZW1lbnQoKS5hZGQoZWxlbWVudCwgYmVmb3JlRWxlbWVudCwgZWMp
OwotfQotCi12b2lkIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEhUTUxFbGVtZW50JiBlbGVt
ZW50LCBpbnQgYmVmb3JlSW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGFkZChlbGVt
ZW50LCBpdGVtKGJlZm9yZUluZGV4KSwgZWMpOworICAgIHJldHVybiBzZWxlY3RFbGVtZW50KCku
YWRkKGVsZW1lbnQsIGJlZm9yZSk7CiB9CiAKIHZvaWQgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpy
ZW1vdmUoaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmgKaW5kZXggOWJkOTYwMmY0NjkzZGMxNmMyNzRiNGMzZmNjNDQwZjU2NDg5NGQ2OS4uZjI1
MTE2ZDc1YWQzYzM2NGEzNGU4Y2M1ODQzYzUxZWQwOWRjMWFkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCkBAIC00MSw4ICs0MSw5IEBAIHB1YmxpYzoK
ICAgICBIVE1MT3B0aW9uRWxlbWVudCogaXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0IGZpbmFs
OwogICAgIEhUTUxPcHRpb25FbGVtZW50KiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdCBmaW5hbDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkKEhUTUxFbGVt
ZW50JiwgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFkZChIVE1MRWxlbWVudCYsIGludCBiZWZvcmVJbmRleCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHVzaW5nIE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gc3RkOjpl
eHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiwgUmVmUHRyPEhU
TUxPcHRHcm91cEVsZW1lbnQ+PjsKKyAgICB1c2luZyBIVE1MRWxlbWVudE9ySW50ID0gc3RkOjpl
eHBlcmltZW50YWw6OnZhcmlhbnQ8UmVmUHRyPEhUTUxFbGVtZW50PiwgaW50PjsKKyAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBhZGQoY29uc3QgT3B0aW9uT3JPcHRHcm91cEVs
ZW1lbnQmLCBPcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZvcmUpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlKGludCBpbmRleCk7CiAgICAgdm9pZCByZW1vdmUoSFRNTE9wdGlv
bkVsZW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaWRsCmluZGV4IDhkNTgwNzFhZmI3Yjk4YjczZjNmZWE5MGU2ZDM3MDI0M2RiYjAyODUuLjZm
ODUyNjEyMWYxZGI4MmQ3NTA0YTc5NDVmNDgxMjk2YjIxNjUyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKQEAgLTMwLDEwICszMCw3IEBACiAg
ICAgZ2V0dGVyIEhUTUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwog
ICAgIGdldHRlciBIVE1MT3B0aW9uRWxlbWVudD8gbmFtZWRJdGVtKERPTVN0cmluZyBuYW1lKTsK
IAotICAgIC8vIEZJWE1FOiBTaG91bGQgYmU6Ci0gICAgLy8gdm9pZCBhZGQoKEhUTUxPcHRpb25F
bGVtZW50IG9yIEhUTUxPcHRHcm91cEVsZW1lbnQpIGVsZW1lbnQsIG9wdGlvbmFsIChIVE1MRWxl
bWVudCBvciBsb25nKT8gYmVmb3JlID0gbnVsbCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0
aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBlbGVtZW50LCBvcHRpb25hbCBIVE1MRWxlbWVudD8g
YmVmb3JlID0gbnVsbCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChI
VE1MRWxlbWVudCBlbGVtZW50LCBsb25nIGluZGV4KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHZvaWQgYWRkKChIVE1MT3B0aW9uRWxlbWVudCBvciBIVE1MT3B0R3JvdXBFbGVtZW50KSBlbGVt
ZW50LCBvcHRpb25hbCAoSFRNTEVsZW1lbnQgb3IgbG9uZyk/IGJlZm9yZSA9IG51bGwpOwogCiAg
ICAgdm9pZCByZW1vdmUobG9uZyBpbmRleCk7CiAgICAgLy8gRklYTUU6IFRoaXMgb3ZlcmxvYWQg
aXMgbm90IGluIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCBoYXMgYmVlbiBkcm9wcGVkIGluIEJsaW5r
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBlZTc0YjI3
MjA3NmI3NTZlM2U5OWRlZDY5NDAwMzBkMjkxZDIwYjc1Li4wYjZmMGYyNGVkM2UwY2VmZGYzZTMw
ZmViYWI3NDgzMjhjYjc3MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcApAQCAtMjIxLDE2ICsyMjEsMjcgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjphY3Rp
dmVTZWxlY3Rpb25FbmRMaXN0SW5kZXgoKSBjb25zdAogICAgIHJldHVybiBsYXN0U2VsZWN0ZWRM
aXN0SW5kZXgoKTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxFbGVtZW50
JiBlbGVtZW50LCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKGNvbnN0IE9wdGlvbk9y
T3B0R3JvdXBFbGVtZW50JiBlbGVtZW50LCBPcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiBiZWZv
cmUpCiB7Ci0gICAgaWYgKCEoaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPEhU
TUxIUkVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPEhUTUxPcHRHcm91cEVsZW1lbnQ+KGVsZW1lbnQp
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmVFbGVt
ZW50LCBlYyk7Ci19CisgICAgSFRNTEVsZW1lbnQqIGJlZm9yZUVsZW1lbnQgPSBudWxscHRyOwor
ICAgIGlmIChiZWZvcmUpIHsKKyAgICAgICAgYXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlzaXRv
cigKKyAgICAgICAgICAgIFtdKGNvbnN0IFJlZlB0cjxIVE1MRWxlbWVudD4mIGVsZW1lbnQpIC0+
IEhUTUxFbGVtZW50KiB7IHJldHVybiBlbGVtZW50LmdldCgpOyB9LAorICAgICAgICAgICAgW3Ro
aXNdKGludCBpbmRleCkgLT4gSFRNTEVsZW1lbnQqIHsgcmV0dXJuIGl0ZW0oaW5kZXgpOyB9Cisg
ICAgICAgICk7CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCYgZWxl
bWVudCwgaW50IGJlZm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBhZGQoZWxl
bWVudCwgaXRlbShiZWZvcmVJbmRleCksIGVjKTsKKyAgICAgICAgYmVmb3JlRWxlbWVudCA9IHN0
ZDo6ZXhwZXJpbWVudGFsOjp2aXNpdCh2aXNpdG9yLCBiZWZvcmUudmFsdWUoKSk7CisgICAgfQor
ICAgIEhUTUxFbGVtZW50JiB0b0luc2VydCA9IHN0ZDo6ZXhwZXJpbWVudGFsOjp2aXNpdChbXShj
b25zdCBhdXRvJiBodG1sRWxlbWVudCkgLT4gSFRNTEVsZW1lbnQmIHsKKyAgICAgICAgcmV0dXJu
ICpodG1sRWxlbWVudDsKKyAgICB9LCBlbGVtZW50KTsKKworCisgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgaW5zZXJ0QmVmb3JlKHRvSW5zZXJ0LCBiZWZvcmVFbGVtZW50LCBlYyk7Cisg
ICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgZWMgfTsKKyAgICByZXR1cm4g
eyB9OwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmVCeUluZGV4KGludCBvcHRp
b25JbmRleCkKQEAgLTQ0MCw3ICs0NTEsOSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRP
cHRpb24odW5zaWduZWQgaW5kZXgsIEhUTUxPcHRpb25FbGVtZW50JiBvcHRpb24sIEV4YwogICAg
IH0KICAgICAvLyBGaW5hbGx5IGFkZCB0aGUgbmV3IGVsZW1lbnQuCiAgICAgaWYgKCFlYykgewot
ICAgICAgICBhZGQob3B0aW9uLCBiZWZvcmUuZ2V0KCksIGVjKTsKKyAgICAgICAgYXV0byBleGNl
cHRpb24gPSBhZGQoJm9wdGlvbiwgSFRNTEVsZW1lbnRPckludChiZWZvcmUuZ2V0KCkpKTsKKyAg
ICAgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIGVjID0gZXhj
ZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCk7CiAgICAgICAgIGlmIChkaWZmID49IDAg
JiYgb3B0aW9uLnNlbGVjdGVkKCkpCiAgICAgICAgICAgICBvcHRpb25TZWxlY3Rpb25TdGF0ZUNo
YW5nZWQob3B0aW9uLCB0cnVlKTsKICAgICB9CkBAIC00NTYsOSArNDY5LDExIEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0aCh1bnNpZ25lZCBuZXdMZW5ndGgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIGlmIChkaWZmIDwgMCkgeyAvLyBBZGQgZHVtbXkgZWxlbWVudHMuCiAgICAg
ICAgIGRvIHsKICAgICAgICAgICAgIGF1dG8gb3B0aW9uID0gZG9jdW1lbnQoKS5jcmVhdGVFbGVt
ZW50KG9wdGlvblRhZywgZmFsc2UpOwotICAgICAgICAgICAgYWRkKGRvd25jYXN0PEhUTUxFbGVt
ZW50PihvcHRpb24uZ2V0KCkpLCBudWxscHRyLCBlYyk7Ci0gICAgICAgICAgICBpZiAoZWMpCisg
ICAgICAgICAgICBhdXRvIGV4Y2VwdGlvbiA9IGFkZChkb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVu
dD4ob3B0aW9uLnB0cigpKSwgTnVsbG9wdCk7CisgICAgICAgICAgICBpZiAoZXhjZXB0aW9uLmhh
c0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgZWMgPSBleGNlcHRpb24ucmVsZWFzZUV4
Y2VwdGlvbigpLmNvZGUoKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAg
ICAgICB9IHdoaWxlICgrK2RpZmYpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8mIGl0ZW1z
ID0gbGlzdEl0ZW1zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5k
ZXggM2UzNjc3YmJmMzdiYjFhN2Q5ZDgzNDdjMzBlN2NlODhhZjkyNjExOS4uN2RlNThkMTBjNDgw
ZWI4YjU1NTI2OTI0NDE2ZjI4YjJhNTMxODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaApAQCAtNTEsOCArNTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHVzZXNN
ZW51TGlzdCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGQoSFRNTEVsZW1l
bnQmLCBIVE1MRWxlbWVudCogYmVmb3JlRWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZv
aWQgYWRkKEhUTUxFbGVtZW50JiwgaW50IGJlZm9yZUluZGV4LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdXNpbmcgT3B0aW9uT3JPcHRHcm91cEVsZW1lbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFy
aWFudDxSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVu
dD4+OworICAgIHVzaW5nIEhUTUxFbGVtZW50T3JJbnQgPSBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFy
aWFudDxSZWZQdHI8SFRNTEVsZW1lbnQ+LCBpbnQ+OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGFkZChjb25zdCBPcHRpb25Pck9wdEdyb3VwRWxlbWVudCYsIE9wdGlvbmFs
PEhUTUxFbGVtZW50T3JJbnQ+IGJlZm9yZSk7CiAKICAgICB1c2luZyBOb2RlOjpyZW1vdmU7CiAg
ICAgdm9pZCByZW1vdmUoSFRNTE9wdGlvbkVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGwKaW5kZXggYzNiODUzMDkyOWU3OTEzYWY2M2Q0MmRkZjljYTkz
YzVhN2NmNTA2MC4uMDdhOGMzZDAyOWUwZjlhMWE1YjgxZTIyMTQ2YzA0YjY2YzcwMGEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQwLDEwICs0MCw3
IEBACiAgICAgZ2V0dGVyIEhUTUxPcHRpb25FbGVtZW50PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOwogICAgIEhUTUxPcHRpb25FbGVtZW50PyBuYW1lZEl0ZW0oRE9NU3RyaW5nIG5hbWUpOwog
Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGFkZChIVE1MRWxlbWVudCBlbGVt
ZW50LCBvcHRpb25hbCBIVE1MRWxlbWVudD8gYmVmb3JlID0gbnVsbCk7Ci0gICAgLy8gRklYTUU6
IFNob3VsZCBiZToKLSAgICAvLyB2b2lkIGFkZCgoSFRNTE9wdGlvbkVsZW1lbnQgb3IgSFRNTE9w
dEdyb3VwRWxlbWVudCkgZWxlbWVudCwgb3B0aW9uYWwgKEhUTUxFbGVtZW50IG9yIGxvbmcpPyBi
ZWZvcmUgPSBudWxsKTsKLSAgICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgYWRkKEhU
TUxFbGVtZW50IGVsZW1lbnQsIGxvbmcgaW5kZXgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
dm9pZCBhZGQoKEhUTUxPcHRpb25FbGVtZW50IG9yIEhUTUxPcHRHcm91cEVsZW1lbnQpIGVsZW1l
bnQsIG9wdGlvbmFsIChIVE1MRWxlbWVudCBvciBsb25nKT8gYmVmb3JlID0gbnVsbCk7CiAKICAg
ICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgcmVtb3ZlKCk7IC8vIENoaWxkTm9kZSBv
dmVybG9hZAogICAgIC8vIEZJWE1FOiBUaGlzIG92ZXJsb2FkIGlzIG5vdCBpbiB0aGUgc3BlY2lm
aWNhdGlvbiBhbmQgd2FzIGRyb3BwZWQgaW4gQmxpbmsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbQppbmRleCA1NGQ2YmZlM2YwYTgxY2Iw
NTgzYmYyYWI5MGFlNTQ1MGZmMmE1NTY5Li44MzAzY2Q3NjY0NTVhMjRkZjMzOTU1M2VhMzRmYTA4
ZmY3Njk5NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MT3B0aW9u
c0NvbGxlY3Rpb24ubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTUludGVybmFsLmgi
CiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJz
LmgiCisjaW1wb3J0IDxXZWJDb3JlL0hUTUxPcHRHcm91cEVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTE9wdGlvbkVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgpA
QCAtMzgsNiArMzksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYv
R2V0UHRyLmg+CisjaW1wb3J0IDx3dGYvVmFyaWFudC5oPgogCiAjZGVmaW5lIElNUEwgcmVpbnRl
cnByZXRfY2FzdDxXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihfaW50ZXJuYWwpCiAK
QEAgLTkwLDkgKzkyLDkgQEAgLSAodm9pZClhZGQ6KERPTUhUTUxPcHRpb25FbGVtZW50ICopb3B0
aW9uIGluZGV4Oih1bnNpZ25lZClpbmRleAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBpZiAoIW9wdGlvbikKICAgICAgICAgcmFpc2VUeXBlRXJyb3JFeGNl
cHRpb24oKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5h
ZGQoKmNvcmUob3B0aW9uKSwgaW5kZXgsIGVjKTsKLSAgICByYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIGF1dG8gZXhjZXB0aW9uID0gSU1QTC0+YWRkKGNvcmUob3B0aW9uKSwgT3B0aW9uYWw8V2Vi
Q29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpIVE1MRWxlbWVudE9ySW50PihzdGF0aWNfY2Fz
dDxpbnQ+KGluZGV4KSkpOworICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJhaXNlT25ET01FcnJvcihleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7
CiB9CiAKIC0gKHZvaWQpcmVtb3ZlOih1bnNpZ25lZClpbmRleApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tCmluZGV4IDZhNzdhZDc4YmJhZGJjZmMxNTk4
NzdjNzdiNDc5Zjk1MGY2NmM2MzMuLjY4MDg3ZDA4ZWM3ZjVjYWEzYjcyY2JkMzE1MmU3YmI0ODI5
NzZlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxl
bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQu
bW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTEVsZW1lbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSFRNTEZvcm1FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxO
YW1lcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1M
U2VsZWN0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU01haW5UaHJlYWRFeGVjU3RhdGUu
aD4KQEAgLTE4Miw5ICsxODMsMjAgQEAgLSAodm9pZClhZGQ6KERPTUhUTUxFbGVtZW50ICopZWxl
bWVudCBiZWZvcmU6KERPTUhUTUxFbGVtZW50ICopYmVmb3JlCiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmFpc2VU
eXBlRXJyb3JFeGNlcHRpb24oKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBJTVBMLT5hZGQoKmNvcmUoZWxlbWVudCksIGNvcmUoYmVmb3JlKSwgZWMpOwotICAgIHJh
aXNlT25ET01FcnJvcihlYyk7CisKKyAgICBhdXRvJiBjb3JlRWxlbWVudCA9ICpjb3JlKGVsZW1l
bnQpOworICAgIHN0ZDo6ZXhwZXJpbWVudGFsOjp2YXJpYW50PFJlZlB0cjxXZWJDb3JlOjpIVE1M
T3B0aW9uRWxlbWVudD4sIFJlZlB0cjxXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Pj4gdmFy
aWFudEVsZW1lbnQ7CisgICAgaWYgKGlzPFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Pihjb3Jl
RWxlbWVudCkpCisgICAgICAgIHZhcmlhbnRFbGVtZW50ID0gJmRvd25jYXN0PFdlYkNvcmU6OkhU
TUxPcHRpb25FbGVtZW50Pihjb3JlRWxlbWVudCk7CisgICAgZWxzZSBpZiAoaXM8V2ViQ29yZTo6
SFRNTE9wdEdyb3VwRWxlbWVudD4oY29yZUVsZW1lbnQpKQorICAgICAgICB2YXJpYW50RWxlbWVu
dCA9ICZkb3duY2FzdDxXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Pihjb3JlRWxlbWVudCk7
CisgICAgZWxzZSB7CisgICAgICAgIHJhaXNlVHlwZUVycm9yRXhjZXB0aW9uKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgYXV0byBleGNlcHRpb24gPSBJTVBMLT5hZGQoV1RGTW92ZSh2
YXJpYW50RWxlbWVudCksIFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MRWxlbWVudE9y
SW50KGNvcmUoYmVmb3JlKSkpOworICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJhaXNlT25ET01FcnJvcihleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUo
KSk7CiB9CiAKIC0gKHZvaWQpcmVtb3ZlOihpbnQpaW5kZXgKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmM2JjNTE5MGNhN2Nl
YjE0NWU3M2MyNWI4ZGU1N2VlNzRlMzFlNDNiLi42MjEwMWFlYWI4ZjhhN2MzMzgyYWU5NDA4Yzk1
Y2U1YjM0YjdjY2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMTAtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMZXZlcmFnZSBuZXcgdW5pb24gdHlw
ZSBzdXBwb3J0IGZvciBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKSAvIEhUTUxPcHRpb25zQ29sbGVj
dGlvbi5hZGQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYzNjA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmViYXNlbGluZSBleGlzdGluZyB0ZXN0cyBub3cgdGhhdCBleGNlcHRpb24gbWVzc2FnZXMg
YXJlIGRpZmZlcmVudC4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L2Fk
ZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0
aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vaW5j
b21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0OgorCiAyMDE2LTEwLTE4ICBSeWFuIEhh
ZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBmbGFreSBleHBlY3Rh
dGlvbiBmb3IgdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbGF0Y2hlZC1kaXYtd2l0aC1zY3JvbGwt
c25hcC5odG1sIHRoYXQgd2FzIGVycmFudGx5IHJlbW92ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBhZWU5MzBlZTc4M2FmYzA2ODY4ZTA2MjNhZjFiM2IzNDg1MTc3NDQ4Li5k
NjllM2Y1Y2YyMzU0NDEwM2RhYzIxOGI0MmYwOTljYjIyMDBjNjIzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxNi0xMC0xOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIExldmVyYWdlIG5ldyB1bmlvbiB0eXBlIHN1
cHBvcnQgZm9yIEhUTUxTZWxlY3RFbGVtZW50LmFkZCgpIC8gSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmFkZCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjM2MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWJhc2VsaW5lIFczQyB0ZXN0IG5vdyB0aGF0IG9uZSBtb3JlIGNoZWNrIGlzIHBhc3NpbmcuIFRo
aXMgaXMgYmVjYXVzZSB3ZSBhcmUgbm93CisgICAgICAgIGNvcnJlY3RseSB0aHJvd2luZyBhIFR5
cGVFcnJvciB3aGVuIGNhbGxpbmcgYWRkKCkgd2l0aCBhbiB1bmV4cGVjdGVkIEhUTUxFbGVtZW50
IHR5cGUuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVy
ZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMvaHRtbG9wdGlvbnNjb2xsZWN0aW9u
LWV4cGVjdGVkLnR4dDoKKworMjAxNi0xMC0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCiAgICAgICAgIFVwZGF0ZSBUcmFja0V2ZW50IHRvIHN0b3AgdXNpbmcgbGVnYWN5IFtD
b25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50XQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNTgwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTZWxlY3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9hZGQtZXhwZWN0ZWQudHh0CmluZGV4IGIzM2Y3MWZkNzM5
ODFmYjFhZjdlZDgxOTgxYmJlZWMzMTYyZTYzY2MuLjc1ZjZmMjE4YjgyOGEwNWE0YmZlYTgxMDBh
ZDMwNjI1NDk1NjI1MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxl
Y3RFbGVtZW50L2FkZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNlbGVjdEVsZW1lbnQvYWRkLWV4cGVjdGVkLnR4dApAQCAtOSw5ICs5LDkgQEAgUEFTUyB0ZXN0
QWRkKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiAK
IENhbGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCBvbmUgYXJndW1lbnQ6CiBQQVNTIHRl
c3RBZGQoY3JlYXRlT3B0aW9uKCJZMSIpKSBpcyAiMCwxLDIsWTEiCi1QQVNTIHRlc3RBZGQoImZv
byIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8g
SFRNTFNlbGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQu
Ci1QQVNTIHRlc3RBZGQodW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQu
YWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHRlc3RBZGQoImZv
byIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RBZGQo
dW5kZWZpbmVkKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0
ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiAKIENh
bGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCB0d28gYXJndW1lbnRzOgogUEFTUyB0ZXN0
QWRkKGNyZWF0ZU9wdGlvbigiWTIiKSwgbnVsbCkgaXMgIjAsMSwyLFkyIgpAQCAtNDAsOSArNDAs
OSBAQCBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjQiKSwgLTIpIGlzICIwLDEsMixZMjQi
CiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJYIiksIG15U2VsZWN0Lm9wdGlvbnNbMF0pIGlz
ICJYLDAsMSwyIgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRp
b25zWzFdKSBpcyAiMCxYLDEsMiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlT
ZWxlY3Qub3B0aW9uc1syXSkgaXMgIjAsMSxYLDIiCi1QQVNTIHRlc3RBZGQoImZvbyIsIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNl
bGVjdEVsZW1lbnQuYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCi1QQVNT
IHRlc3RBZGQodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTFNlbGVjdEVsZW1lbnQu
YWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHRlc3RBZGQoImZv
byIsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHRlc3RB
ZGQodW5kZWZpbmVkLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCiAKIENhbGwgSFRNTFNlbGVjdEVsZW1lbnQuYWRkKCkgd2l0aCB0aHJlZSBhcmd1bWVudHMg
KHdoZW4gaXQgb25seSB0YWtlcyB0d28gYXJndW1lbnRzKToKIFBBU1MgdGVzdEFkZChjcmVhdGVP
cHRpb24oIlgiKSwgMCwgInVubmVjZXNzYXJ5IGV4dHJhIGFyZ3VtZW50IC0gc2hvdWxkIGJlIGln
bm9yZWQiKSBpcyAiWCwwLDEsMiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTZWxlY3RFbGVtZW50L29wdGlvbnMtY29sbGVjdGlvbi1hZGQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFk
ZC1leHBlY3RlZC50eHQKaW5kZXggZDZjYzhiNTdhMWI3YTdmNTI3MmI3MmRhODgxMTgyMmE2ZWMz
MDhkYy4uMWRhMDJkNmI5YmRmNjIyYThkOTliMWE2MjFkMTU0Y2VhYmViYTAwZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0
aW9uLWFkZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVj
dEVsZW1lbnQvb3B0aW9ucy1jb2xsZWN0aW9uLWFkZC1leHBlY3RlZC50eHQKQEAgLTksOSArOSw5
IEBAIFBBU1MgdGVzdEFkZCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgogCiBDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIG9ubHkg
b25lIGFyZ3VtZW50OgogUEFTUyB0ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWTkiKSkgaXMgIjAsMSwy
LFk5IgotUEFTUyB0ZXN0QWRkKCJmb28iKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1
bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBBU1MgdGVzdEFkZCh1bmRlZmluZWQpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFT
UyB0ZXN0QWRkKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdl
bGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIEhUTUxFbGVtZW50LgorUEFTUyB0ZXN0QWRkKCJmb28iKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgdGVzdEFkZChudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgogCiBDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlv
bi5hZGQoKSB3aXRoIHR3byBhcmd1bWVudHM6CiBQQVNTIHRlc3RBZGQoY3JlYXRlR3JvdXAoIlkx
IiwgIlkyIiksIG51bGwpIGlzICIwLDEsMixZMSxZMiIKQEAgLTUyLDkgKzUyLDkgQEAgUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCBteVNlbGVjdC5vcHRpb25zWzFdKSBpcyAiMCxYLDEs
MiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlgiKSwgbXlTZWxlY3Qub3B0aW9uc1syXSkg
aXMgIjAsMSxYLDIiCiBQQVNTIHRlc3RBZGQoY3JlYXRlT3B0aW9uKCJZMjUiKSwgMCwgMSkgaXMg
IlkyNSwwLDEsMiIKIFBBU1MgdGVzdEFkZChjcmVhdGVPcHRpb24oIlkyNSIpLCBteVNlbGVjdC5v
cHRpb25zWzBdLCAxKSBpcyAiWTI1LDAsMSwyIgotUEFTUyB0ZXN0QWRkKCJmb28iLCAwKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxPcHRp
b25zQ29sbGVjdGlvbi5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBB
U1MgdGVzdEFkZCh1bmRlZmluZWQsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyB0ZXN0QWRkKG51bGwsIDApIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyB0
ZXN0QWRkKCJmb28iLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgor
UEFTUyB0ZXN0QWRkKHVuZGVmaW5lZCwgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlw
ZSBlcnJvci4KK1BBU1MgdGVzdEFkZChudWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBUeXBlIGVycm9yLgogCiBDYWxsIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQoKSB3aXRoIHRo
cmVlIGFyZ3VtZW50cyAod2hlbiBpdCBvbmx5IHRha2VzIHR3byBhcmd1bWVudHMpOgogUEFTUyB0
ZXN0QWRkKGNyZWF0ZU9wdGlvbigiWCIpLCAwLCAidW5uZWNlc3NhcnkgZXh0cmEgYXJndW1lbnQg
LSBzaG91bGQgYmUgaWdub3JlZCIpIGlzICJYLDAsMSwyIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vaW5jb21wYXRpYmxlLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4
IDg0NDAxOTA2YTc4NzcxYjI2YTAzYmJiMjVkODg5YTczZTYzMjgyOTIuLjZlYWVkOWEzN2ZjODVm
NzdjMzI4NDJjZjRjNGIwNDhhYjgxNGQ5N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2luY29tcGF0aWJsZS1vcGVyYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9pbmNvbXBhdGlibGUtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEyLDEx
ICsxMiwxMSBAQCBQQVNTIGFOb2RlLmlzU2FtZU5vZGUodm9pZCAwKSBpcyBmYWxzZQogUEFTUyBh
Tm9kZS5sb29rdXBQcmVmaXgoYURPTUltcGxlbWVudGF0aW9uKSBpcyBudWxsCiBQQVNTIGFOb2Rl
Lmxvb2t1cFByZWZpeCh2b2lkIDApIGlzIG51bGwKIFBBU1MgYU5vZGUuY2xvbmVOb2RlKGFET01J
bXBsZW1lbnRhdGlvbikgaW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCBpcyB0cnVlCi1QQVNTIGFT
ZWxlY3QuYWRkKGFET01JbXBsZW1lbnRhdGlvbiwgYURPTUltcGxlbWVudGF0aW9uKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RF
bGVtZW50LmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgotUEFTUyBhU2Vs
ZWN0LmFkZChhRE9NSW1wbGVtZW50YXRpb24sIGFuT3B0aW9uKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxTZWxlY3RFbGVtZW50LmFkZCBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyBhU2VsZWN0LmFkZChhRE9N
SW1wbGVtZW50YXRpb24sIGFET01JbXBsZW1lbnRhdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1MgYVNlbGVjdC5hZGQoYURPTUltcGxlbWVudGF0aW9uLCBh
bk9wdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgYVNl
bGVjdC5hZGQoYW5PcHRpb24sIGFET01JbXBsZW1lbnRhdGlvbikgaXMgdW5kZWZpbmVkLgotUEFT
UyBhU2VsZWN0LmFkZCh2b2lkIDAsIHZvaWQgMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MU2VsZWN0RWxlbWVudC5hZGQgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KLVBBU1MgYVNlbGVjdC5hZGQodm9pZCAwLCBhbk9w
dGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0
byBIVE1MU2VsZWN0RWxlbWVudC5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVu
dC4KK1BBU1MgYVNlbGVjdC5hZGQodm9pZCAwLCB2b2lkIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGFTZWxlY3QuYWRkKHZvaWQgMCwgYW5PcHRpb24pIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGFTZWxlY3QuYWRkKGFu
T3B0aW9uLCB2b2lkIDApIGlzIHVuZGVmaW5lZC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNlcy9jb2xsZWN0
aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1k
b20taW50ZXJmYWNlcy9jb2xsZWN0aW9ucy9odG1sb3B0aW9uc2NvbGxlY3Rpb24tZXhwZWN0ZWQu
dHh0CmluZGV4IDllMWVlMjg0OGIyZGFmNGZiODRiNDAzM2I1NjdmNzNjNmIxOGZkZGMuLmRhMzgz
OGRkMGNlZTJiZWMwMjhiZWJhMDM3OGQ1MTk0NmMzNjUzYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS9j
b21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMvaHRtbG9wdGlvbnNjb2xsZWN0aW9uLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25z
L2h0bWxvcHRpb25zY29sbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTIzLDUgKzIzLDUgQEAgUEFT
UyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaXRlbShpbmRleCkgbWV0aG9kIHJldHVybiB0aGUgaXRl
bSB3aXRoIGluZGV4CiBQQVNTIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5pdGVtKG5hbWUpIG1ldGhv
ZCByZXR1cm4gdGhlIGl0ZW0gd2l0aCBpbmRleCAwIAogUEFTUyBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24uYWRkIG1ldGhvZCBpbnNlcnQgSFRNTE9wdGlvbkVsZW1lbnQgT3B0aW9uIGVsZW1lbnQgCiBQ
QVNTIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5yZW1vdmUgbWV0aG9kIHJlbW92ZSBPcHRpb24gZWxl
bWVudCBieSBpbmRleCAKLUZBSUwgQWRkIG5vbi1vcHRpb24gdG8gY29sbGVjdGlvbiBhc3NlcnRf
dGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkge2Jfb3B0cy5hZGQoYWRkKTt9IiBkaWQgbm90
IHRocm93CitQQVNTIEFkZCBub24tb3B0aW9uIHRvIGNvbGxlY3Rpb24gCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvc2VsZWN0LW9wdGlvbnMtYWRkLmpzIGIv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9zZWxlY3Qtb3B0aW9ucy1hZGQuanMKaW5k
ZXggNzYwYjc0NDI4YTE5MzM5ZTg5MzBiZTVlZGVlY2NhYzQ3NjJhM2MzOC4uMmU3NzU5NGRjZTYw
MGExOTIyNGYxMzQ2MGIzNGRkMDUwMjdhZjZkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9zZWxlY3Qtb3B0aW9ucy1hZGQuanMKKysrIGIvTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9zZWxlY3Qtb3B0aW9ucy1hZGQuanMKQEAgLTUzLDggKzUzLDgg
QEAgc2hvdWxkQmUoInNlbGVjdDEub3B0aW9uc1syXS50ZXh0Q29udGVudCIsICInQyciKTsKIGRl
YnVnKCIiKTsKIAogZGVidWcoIjEuNCBBZGQgYSBub24tT3B0aW9uIGVsZW1lbnQiKTsKLW9wdGlv
bjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKLXNob3VsZEJlVW5kZWZpbmVkKCJz
ZWxlY3QxLm9wdGlvbnMuYWRkKG9wdGlvbjEpIik7CitkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJESVYiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3QxLm9wdGlvbnMuYWRkKGRp
dikiLCAiVHlwZUVycm9yIik7CiBzaG91bGRCZSgic2VsZWN0MS5vcHRpb25zLmxlbmd0aCIsICIz
Iik7CiBzaG91bGRCZSgic2VsZWN0MS5zZWxlY3RlZEluZGV4IiwgIjAiKTsKIGRlYnVnKCIiKTsK
QEAgLTI2NCw4ICsyNjQsOCBAQCBzaG91bGRCZSgic2VsZWN0Mi5zZWxlY3RlZEluZGV4IiwgIjQi
KTsKIGRlYnVnKCIiKTsKIAogZGVidWcoIjIuMTIgQWRkIGEgbm9uLU9wdGlvbiBlbGVtZW50Iik7
Ci1vcHRpb24yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7Ci1zaG91bGRCZVVuZGVm
aW5lZCgic2VsZWN0Mi5vcHRpb25zLmFkZChvcHRpb24yLCAxKSIpOworZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiRElWIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0Mi5vcHRp
b25zLmFkZChkaXYsIDEpIiwgIlR5cGVFcnJvciIpOwogc2hvdWxkQmUoInNlbGVjdDIub3B0aW9u
cy5sZW5ndGgiLCAiMTEiKTsKIHNob3VsZEJlKCJzZWxlY3QyLnNlbGVjdGVkSW5kZXgiLCAiNCIp
OwogZGVidWcoIiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL3NlbGVjdC1vcHRp
b25zLWFkZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2VsZWN0LW9wdGlvbnMt
YWRkLWV4cGVjdGVkLnR4dAppbmRleCA0MjQ5YjNmN2Q2ZTI0MjQwZWY0MjQ5N2QwYTM4OTNhYTZk
MTFhODBmLi4yZDlkOTQwYWY1MzJiZGY2MjdmZTkyODk2MDM1MWI5MzZlYjM0NmM0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vc2VsZWN0LW9wdGlvbnMtYWRkLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2VsZWN0LW9wdGlvbnMtYWRkLWV4cGVjdGVkLnR4dApA
QCAtMjksNDcgKzI5LDQ3IEBAIFBBU1Mgc2VsZWN0MS5vcHRpb25zWzJdLnZhbHVlIGlzICczJwog
UEFTUyBzZWxlY3QxLm9wdGlvbnNbMl0udGV4dENvbnRlbnQgaXMgJ0MnCiAKIDEuNCBBZGQgYSBu
b24tT3B0aW9uIGVsZW1lbnQKLVBBU1Mgc2VsZWN0MS5vcHRpb25zLmFkZChvcHRpb24xKSBpcyB1
bmRlZmluZWQuCitQQVNTIHNlbGVjdDEub3B0aW9ucy5hZGQoZGl2KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBzZWxlY3QxLm9wdGlvbnMubGVuZ3RoIGlzIDMK
IFBBU1Mgc2VsZWN0MS5zZWxlY3RlZEluZGV4IGlzIDAKIAogMS41IEFkZCBhIG5vbi1lbGVtZW50
IChzdHJpbmcpCi1QQVNTIHNlbGVjdDEub3B0aW9ucy5hZGQob3B0aW9uMSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHNlbGVj
dDEub3B0aW9ucy5hZGQob3B0aW9uMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KIFBBU1Mgc2VsZWN0MS5vcHRpb25zLmxlbmd0aCBpcyAzCiBQQVNTIHNlbGVjdDEuc2Vs
ZWN0ZWRJbmRleCBpcyAwCiAKIDEuNiBBZGQgYSBub24tZWxlbWVudCAobnVtYmVyKQotUEFTUyBz
ZWxlY3QxLm9wdGlvbnMuYWRkKG9wdGlvbjEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFy
Z3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJl
IGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyBzZWxlY3QxLm9wdGlvbnMuYWRkKG9w
dGlvbjEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHNlbGVj
dDEub3B0aW9ucy5sZW5ndGggaXMgMwogUEFTUyBzZWxlY3QxLnNlbGVjdGVkSW5kZXggaXMgMAog
CiAxLjcgQWRkIGEgbm9uLWVsZW1lbnQgKGJvb2xlYW4pCi1QQVNTIHNlbGVjdDEub3B0aW9ucy5h
ZGQob3B0aW9uMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1l
bnQnKSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Yg
SFRNTEVsZW1lbnQuCitQQVNTIHNlbGVjdDEub3B0aW9ucy5hZGQob3B0aW9uMSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc2VsZWN0MS5vcHRpb25zLmxlbmd0
aCBpcyAzCiBQQVNTIHNlbGVjdDEuc2VsZWN0ZWRJbmRleCBpcyAwCiAKIDEuOCBBZGQgdW5kZWZp
bmVkCi1QQVNTIHNlbGVjdDEub3B0aW9ucy5hZGQob3B0aW9uMSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24u
YWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHNlbGVjdDEub3B0
aW9ucy5hZGQob3B0aW9uMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4K
IFBBU1Mgc2VsZWN0MS5vcHRpb25zLmxlbmd0aCBpcyAzCiBQQVNTIHNlbGVjdDEuc2VsZWN0ZWRJ
bmRleCBpcyAwCiAKIDEuOSBBZGQgbnVsbAotUEFTUyBzZWxlY3QxLm9wdGlvbnMuYWRkKG9wdGlv
bjEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8g
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVt
ZW50LgorUEFTUyBzZWxlY3QxLm9wdGlvbnMuYWRkKG9wdGlvbjEpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIHNlbGVjdDEub3B0aW9ucy5sZW5ndGggaXMgMwog
UEFTUyBzZWxlY3QxLnNlbGVjdGVkSW5kZXggaXMgMAogCiAxLjEwIEFkZCBuZWdhdGl2ZSBpbmZp
bml0eQotUEFTUyBzZWxlY3QxLm9wdGlvbnMuYWRkKG9wdGlvbjEpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyBzZWxlY3QxLm9w
dGlvbnMuYWRkKG9wdGlvbjEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CiBQQVNTIHNlbGVjdDEub3B0aW9ucy5sZW5ndGggaXMgMwogUEFTUyBzZWxlY3QxLnNlbGVjdGVk
SW5kZXggaXMgMAogCiAxLjExIEFkZCBOYU4KLVBBU1Mgc2VsZWN0MS5vcHRpb25zLmFkZChvcHRp
b24xKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRv
IEhUTUxPcHRpb25zQ29sbGVjdGlvbi5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxl
bWVudC4KK1BBU1Mgc2VsZWN0MS5vcHRpb25zLmFkZChvcHRpb24xKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBzZWxlY3QxLm9wdGlvbnMubGVuZ3RoIGlzIDMK
IFBBU1Mgc2VsZWN0MS5zZWxlY3RlZEluZGV4IGlzIDAKIAogMS4xMiBBZGQgcG9zaXRpdmUgaW5m
aW5pdHkKLVBBU1Mgc2VsZWN0MS5vcHRpb25zLmFkZChvcHRpb24xKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBBcmd1bWVudCAxICgnZWxlbWVudCcpIHRvIEhUTUxPcHRpb25zQ29sbGVjdGlv
bi5hZGQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBIVE1MRWxlbWVudC4KK1BBU1Mgc2VsZWN0MS5v
cHRpb25zLmFkZChvcHRpb24xKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgogUEFTUyBzZWxlY3QxLm9wdGlvbnMubGVuZ3RoIGlzIDMKIFBBU1Mgc2VsZWN0MS5zZWxlY3Rl
ZEluZGV4IGlzIDAKIApAQCAtMTc4LDQ3ICsxNzgsNDcgQEAgUEFTUyBzZWxlY3QyLm9wdGlvbnMu
bGVuZ3RoIGlzIDExCiBQQVNTIHNlbGVjdDIuc2VsZWN0ZWRJbmRleCBpcyA0CiAKIDIuMTIgQWRk
IGEgbm9uLU9wdGlvbiBlbGVtZW50Ci1QQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwg
MSkgaXMgdW5kZWZpbmVkLgorUEFTUyBzZWxlY3QyLm9wdGlvbnMuYWRkKGRpdiwgMSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc2VsZWN0Mi5vcHRpb25zLmxl
bmd0aCBpcyAxMQogUEFTUyBzZWxlY3QyLnNlbGVjdGVkSW5kZXggaXMgNAogCiAyLjEzIEFkZCBh
IG5vbi1lbGVtZW50IChzdHJpbmcpCi1QQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwg
MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBI
VE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1l
bnQuCitQQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwgMSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc2VsZWN0Mi5vcHRpb25zLmxlbmd0aCBpcyAx
MQogUEFTUyBzZWxlY3QyLnNlbGVjdGVkSW5kZXggaXMgNAogCiAyLjE0IEFkZCBhIG5vbi1lbGVt
ZW50IChudW1iZXIpCi1QQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwgMSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9u
c0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNT
IHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgc2VsZWN0Mi5vcHRpb25zLmxlbmd0aCBpcyAxMQogUEFTUyBz
ZWxlY3QyLnNlbGVjdGVkSW5kZXggaXMgNAogCiAyLjE1IEFkZCBhIG5vbi1lbGVtZW50IChib29s
ZWFuKQotUEFTUyBzZWxlY3QyLm9wdGlvbnMuYWRkKG9wdGlvbjIsIDEpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyBzZWxlY3Qy
Lm9wdGlvbnMuYWRkKG9wdGlvbjIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCiBQQVNTIHNlbGVjdDIub3B0aW9ucy5sZW5ndGggaXMgMTEKIFBBU1Mgc2VsZWN0Mi5z
ZWxlY3RlZEluZGV4IGlzIDQKIAogMi4xNiBBZGQgdW5kZWZpbmVkCi1QQVNTIHNlbGVjdDIub3B0
aW9ucy5hZGQob3B0aW9uMiwgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQg
MSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5z
dGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwg
MSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc2VsZWN0Mi5v
cHRpb25zLmxlbmd0aCBpcyAxMQogUEFTUyBzZWxlY3QyLnNlbGVjdGVkSW5kZXggaXMgNAogCiAy
LjE3IEFkZCBudWxsCi1QQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwgMSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQnKSB0byBIVE1MT3B0aW9u
c0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRNTEVsZW1lbnQuCitQQVNT
IHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KIFBBU1Mgc2VsZWN0Mi5vcHRpb25zLmxlbmd0aCBpcyAxMQogUEFTUyBz
ZWxlY3QyLnNlbGVjdGVkSW5kZXggaXMgNAogCiAyLjE4IEFkZCBuZWdhdGl2ZSBpbmZpbml0eQot
UEFTUyBzZWxlY3QyLm9wdGlvbnMuYWRkKG9wdGlvbjIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmFk
ZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFTUyBzZWxlY3QyLm9wdGlv
bnMuYWRkKG9wdGlvbjIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CiBQQVNTIHNlbGVjdDIub3B0aW9ucy5sZW5ndGggaXMgMTEKIFBBU1Mgc2VsZWN0Mi5zZWxlY3Rl
ZEluZGV4IGlzIDQKIAogMi4xOSBBZGQgTmFOCi1QQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0
aW9uMiwgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2VsZW1lbnQn
KSB0byBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uYWRkIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSFRN
TEVsZW1lbnQuCitQQVNTIHNlbGVjdDIub3B0aW9ucy5hZGQob3B0aW9uMiwgMSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc2VsZWN0Mi5vcHRpb25zLmxlbmd0
aCBpcyAxMQogUEFTUyBzZWxlY3QyLnNlbGVjdGVkSW5kZXggaXMgNAogCiAyLjIwIEFkZCBwb3Np
dGl2ZSBpbmZpbml0eQotUEFTUyBzZWxlY3QyLm9wdGlvbnMuYWRkKG9wdGlvbjIsIDEpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdlbGVtZW50JykgdG8gSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmFkZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhUTUxFbGVtZW50LgorUEFT
UyBzZWxlY3QyLm9wdGlvbnMuYWRkKG9wdGlvbjIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCiBQQVNTIHNlbGVjdDIub3B0aW9ucy5sZW5ndGggaXMgMTEKIFBBU1Mg
c2VsZWN0Mi5zZWxlY3RlZEluZGV4IGlzIDQKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>