<?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>129034</bug_id>
          
          <creation_ts>2014-02-19 01:10:45 -0800</creation_ts>
          <short_desc>isContentEditable shouldn&apos;t trigger synchronous style recalc in most cases</short_desc>
          <delta_ts>2015-03-01 14:34:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>129035</dependson>
    
    <dependson>129144</dependson>
    
    <dependson>129200</dependson>
    
    <dependson>142003</dependson>
    
    <dependson>142078</dependson>
          <blocked>127832</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>hh.kaka</cc>
    
    <cc>koivisto</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yosin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>982275</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-19 01:10:45 -0800</bug_when>
    <thetext>Right now isContentEditable and related functions forces style recalc just to check
the computed value of -wekbit-user-modify but we shouldn&apos;t have to on most documents
as -webkit-user-modify CSS property is almost never used in practice.

On documents that don&apos;t use -webkit-user-modify, we should be able to simply traverse up
the DOM tree and find the first node with contenteditable content attribute.

We could even have some flag on Node if we wanted to make it super fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071985</commentid>
    <comment_count>1</comment_count>
      <attachid>247316</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-24 23:24:28 -0800</bug_when>
    <thetext>Created attachment 247316
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071986</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-02-24 23:25:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/19949863&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072012</commentid>
    <comment_count>3</comment_count>
      <attachid>247321</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-25 01:26:25 -0800</bug_when>
    <thetext>Created attachment 247321
WIP2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072014</commentid>
    <comment_count>4</comment_count>
      <attachid>247323</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-25 01:28:02 -0800</bug_when>
    <thetext>Created attachment 247323
Whole WIP2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072047</commentid>
    <comment_count>5</comment_count>
      <attachid>247323</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-25 05:00:31 -0800</bug_when>
    <thetext>Comment on attachment 247323
Whole WIP2

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

&gt; Source/WebCore/dom/DocumentStyleSheetCollection.cpp:452
&gt; +    for (auto sheet: m_activeAuthorStyleSheets) {

Space before :

&gt; Source/WebCore/dom/Node.cpp:558
&gt; +static inline bool determineEditabilityIndependentOfStyle(const Node&amp; node, bool isEditable)

You probably want bool&amp; isEditable

&gt; Source/WebCore/editing/htmlediting.cpp:156
&gt; +    switch (updateStyle) {
&gt; +    case UpdateStyle:
&gt; +        if (document.needsStyleRecalc() &amp;&amp; !document.styleSheetCollection().usesStyleBasedEditability() &amp;&amp; editableType == ContentIsEditable)
&gt; +            return node-&gt;isEditableIgnoringStyle();
&gt; +        document.updateStyleIfNeeded();
&gt; +        break;

I prefer the common case (==no editability defined in style) to be the function body and exceptions early returns.

No need to call updateStyleIfNeeded if needsStyleRecalc is already tested false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072080</commentid>
    <comment_count>6</comment_count>
      <attachid>247323</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-25 09:59:16 -0800</bug_when>
    <thetext>Comment on attachment 247323
Whole WIP2

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

&gt;&gt; Source/WebCore/dom/DocumentStyleSheetCollection.cpp:452
&gt;&gt; +    for (auto sheet: m_activeAuthorStyleSheets) {
&gt; 
&gt; Space before :

Also auto&amp; to avoid ref-counting churn?

&gt;&gt; Source/WebCore/dom/Node.cpp:558
&gt;&gt; +static inline bool determineEditabilityIndependentOfStyle(const Node&amp; node, bool isEditable)
&gt; 
&gt; You probably want bool&amp; isEditable

Good catch :)

&gt; Source/WebCore/dom/Node.cpp:590
&gt; +        if (node-&gt;isElementNode())

is&lt;Element&gt;(*node)

&gt; Source/WebCore/dom/Node.cpp:591
&gt; +            return downcast&lt;Element&gt;(node)-&gt;matchesReadWritePseudoClass();

for consistency: return downcast&lt;Element&gt;(*node).matchesReadWritePseudoClass();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072933</commentid>
    <comment_count>7</comment_count>
      <attachid>247323</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-27 17:11:34 -0800</bug_when>
    <thetext>Comment on attachment 247323
Whole WIP2

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

&gt;&gt; Source/WebCore/editing/htmlediting.cpp:156
&gt;&gt; +        break;
&gt; 
&gt; I prefer the common case (==no editability defined in style) to be the function body and exceptions early returns.
&gt; 
&gt; No need to call updateStyleIfNeeded if needsStyleRecalc is already tested false.

Even in the case editability is not affected by style, we would still like to use render style to compute the editablity if the style tree is up to date for a better performance so I&apos;d expect the common case to be the one that uses the render tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073009</commentid>
    <comment_count>8</comment_count>
      <attachid>247595</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-28 00:25:00 -0800</bug_when>
    <thetext>Created attachment 247595
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073010</commentid>
    <comment_count>9</comment_count>
      <attachid>247596</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-28 00:27:32 -0800</bug_when>
    <thetext>Created attachment 247596
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073011</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-28 00:29:30 -0800</bug_when>
    <thetext>Attachment 247596 did not pass style-queue:


ERROR: Source/WebCore/css/StyleSheetContents.h:164:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073012</commentid>
    <comment_count>11</comment_count>
      <attachid>247597</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-28 00:44:44 -0800</bug_when>
    <thetext>Created attachment 247597
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073013</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-28 00:46:38 -0800</bug_when>
    <thetext>Attachment 247597 did not pass style-queue:


ERROR: Source/WebCore/css/StyleSheetContents.h:164:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073164</commentid>
    <comment_count>13</comment_count>
      <attachid>247597</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-03-01 10:25:37 -0800</bug_when>
    <thetext>Comment on attachment 247597
Updated for ToT

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073179</commentid>
    <comment_count>14</comment_count>
      <attachid>247597</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-01 11:52:42 -0800</bug_when>
    <thetext>Comment on attachment 247597
Updated for ToT

Clearing flags on attachment: 247597

Committed r180867: &lt;http://trac.webkit.org/changeset/180867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073180</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-01 11:52:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073192</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-03-01 13:14:13 -0800</bug_when>
    <thetext>This broke several tests on Windows:

editing/execCommand/5142012-1.html
editing/execCommand/nsresponder-outdent.html
editing/inserting/insert-at-end-02.html

https://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r180867%20(50050)/results.html

Perhaps these just need updated results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073197</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-01 14:17:42 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; This broke several tests on Windows:
&gt; 
&gt; editing/execCommand/5142012-1.html
&gt; editing/execCommand/nsresponder-outdent.html
&gt; editing/inserting/insert-at-end-02.html
&gt; 
&gt; https://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/
&gt; r180867%20(50050)/results.html
&gt; 
&gt; Perhaps these just need updated results?

Yes, they need to be rebaselined on all other platforms.  I&apos;ve been waiting for bots to catch up so that I can do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073200</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-01 14:34:38 -0800</bug_when>
    <thetext>Rebaselined tests in r180870.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247316</attachid>
            <date>2015-02-24 23:24:28 -0800</date>
            <delta_ts>2015-02-25 01:26:25 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>wip129034.patch</filename>
            <type>text/plain</type>
            <size>20175</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4IGVmZGIyYmIuLjE5MThmYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTcwMCw3ICsxNzAwLDcgQEAgdW5hcnlfdGVy
bToKICAgICAgICQkLmZWYWx1ZSA9ICQxOwogICAgICAgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfUkVNUzsKICAgICAgIGlmIChwYXJzZXItPm1fc3R5bGVTaGVldCkKLSAgICAgICAg
ICBwYXJzZXItPm1fc3R5bGVTaGVldC0+cGFyc2VyU2V0VXNlc1JlbVVuaXRzKHRydWUpOworICAg
ICAgICAgIHBhcnNlci0+bV9zdHlsZVNoZWV0LT5wYXJzZXJTZXRVc2VzUmVtVW5pdHMoKTsKICAg
fQogICB8IENIUyB7ICQkLmlkID0gQ1NTVmFsdWVJbnZhbGlkOyAkJC5mVmFsdWUgPSAkMTsgJCQu
dW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ0hTOyB9CiAgIHwgVlcgeyAkJC5pZCA9IENT
U1ZhbHVlSW52YWxpZDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1ZXOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGYyOTNhZTUuLmU1YzQ0
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MzksNyArNjM5LDcgQEAgc3RhdGlj
IGJvb2wgcGFyc2VTaW1wbGVMZW5ndGhWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBkZWNs
YXJhdGlvbiwgQ1NTUHJvcGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SWQsIGludCB2YWx1ZUlELCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBwYXJzZXJDb250ZXh0KQor
c3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SWQsIGludCB2YWx1ZUlELCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBw
YXJzZXJDb250ZXh0LCBTdHlsZVNoZWV0Q29udGVudHMqIHN0eWxlU2hlZXRDb250ZW50cykKIHsK
ICAgICBpZiAoIXZhbHVlSUQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTQsMTIgKzEw
MTQsMjAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5OiAv
LyByZWFkLW9ubHkgfCByZWFkLXdyaXRlCi0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVl
UmVhZE9ubHkgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJlYWRXcml0ZSB8fCB2YWx1ZUlEID09IENT
U1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seSkKKyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NT
VmFsdWVSZWFkT25seSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVhZFdyaXRlIHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KSB7CisgICAgICAgICAgICBpZiAoc3R5
bGVTaGVldENvbnRlbnRzKQorICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRDb250ZW50cy0+cGFy
c2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFVzZXJTZWxlY3Q6IC8vIGF1dG8gfCBub25lIHwgdGV4dCB8IGFsbAotICAgICAgICBpZiAodmFs
dWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZVRleHQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUFsbCkKKyAgICAgICAgaWYg
KHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVUZXh0KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IGlmICh2YWx1ZUlEID09IENTU1ZhbHVlQWxsKSB7CisgICAgICAgICAgICBpZiAoc3R5bGVTaGVl
dENvbnRlbnRzKQorICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRDb250ZW50cy0+cGFyc2VyU2V0
VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRp
bmdNb2RlOgogICAgICAgICBpZiAodmFsdWVJRCA+PSBDU1NWYWx1ZUhvcml6b250YWxUYiAmJiB2
YWx1ZUlEIDw9IENTU1ZhbHVlSG9yaXpvbnRhbEJ0KQpAQCAtMTE3NSw3ICsxMTgzLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGlzS2V5d29yZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlkKQogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgcGFyc2VLZXl3b3JkVmFsdWUoTXV0YWJsZVN0
eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgY29u
c3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgaW1wb3J0YW50LCBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBwYXJzZXJDb250ZXh0KQorc3RhdGljIGJvb2wgcGFyc2VLZXl3b3JkVmFsdWUoTXV0YWJsZVN0
eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgY29u
c3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgaW1wb3J0YW50LCBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBwYXJzZXJDb250ZXh0LCBTdHlsZVNoZWV0Q29udGVudHMqIHN0eWxlU2hlZXRDb250ZW50cykK
IHsKICAgICBBU1NFUlQoIXN0cmluZy5pc0VtcHR5KCkpOwogCkBAIC0xMjAyLDcgKzEyMTAsNyBA
QCBzdGF0aWMgYm9vbCBwYXJzZUtleXdvcmRWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBk
ZWNsYXJhdGlvbiwgQ1NTUHJvcGVydHlJRAogICAgICAgICB2YWx1ZSA9IGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7CiAgICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1
ZUluaXRpYWwpCiAgICAgICAgIHZhbHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlRXhwbGljaXRJ
bml0aWFsVmFsdWUoKTsKLSAgICBlbHNlIGlmIChpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFs
dWUocHJvcGVydHlJZCwgdmFsdWVJRCwgcGFyc2VyQ29udGV4dCkpCisgICAgZWxzZSBpZiAoaXNW
YWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKHByb3BlcnR5SWQsIHZhbHVlSUQsIHBhcnNlckNv
bnRleHQsIHN0eWxlU2hlZXRDb250ZW50cykpCiAgICAgICAgIHZhbHVlID0gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlSUQpOwogICAgIGVsc2UKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMTMwNyw3ICsxMzE1LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5SUQgcHIK
ICAgICAgICAgY29udGV4dC5tb2RlID0gY3NzUGFyc2VyTW9kZTsKICAgICB9CiAKLSAgICBpZiAo
cGFyc2VLZXl3b3JkVmFsdWUoZGVjbGFyYXRpb24sIHByb3BlcnR5SUQsIHN0cmluZywgaW1wb3J0
YW50LCBjb250ZXh0KSkKKyAgICBpZiAocGFyc2VLZXl3b3JkVmFsdWUoZGVjbGFyYXRpb24sIHBy
b3BlcnR5SUQsIHN0cmluZywgaW1wb3J0YW50LCBjb250ZXh0LCBjb250ZXh0U3R5bGVTaGVldCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChwYXJzZVRyYW5zbGF0ZVRyYW5zZm9ybVZh
bHVlKGRlY2xhcmF0aW9uLCBwcm9wZXJ0eUlELCBzdHJpbmcsIGltcG9ydGFudCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtMTg4NSw3ICsxODkzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIH0KIAogICAg
IGlmIChpc0tleXdvcmRQcm9wZXJ0eUlEKHByb3BJZCkpIHsKLSAgICAgICAgaWYgKCFpc1ZhbGlk
S2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcElkLCBpZCwgbV9jb250ZXh0KSkKKyAgICAgICAg
aWYgKCFpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcElkLCBpZCwgbV9jb250ZXh0
LCBtX3N0eWxlU2hlZXQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
bV92YWx1ZUxpc3QtPm5leHQoKSAmJiAhaW5TaG9ydGhhbmQoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTYyOTYsNyArNjMwNCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnQo
Ym9vbCBpbXBvcnRhbnQpCiAgICAgYm9vbCBmb250V2VpZ2h0UGFyc2VkID0gZmFsc2U7CiAgICAg
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlOwogICAgIHdoaWxlICgodmFsdWUgPSBtX3ZhbHVlTGlzdC0+
Y3VycmVudCgpKSkgewotICAgICAgICBpZiAoIWZvbnRTdHlsZVBhcnNlZCAmJiBpc1ZhbGlkS2V5
d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlGb250U3R5bGUsIHZhbHVlLT5pZCwgbV9j
b250ZXh0KSkgeworICAgICAgICBpZiAoIWZvbnRTdHlsZVBhcnNlZCAmJiBpc1ZhbGlkS2V5d29y
ZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlGb250U3R5bGUsIHZhbHVlLT5pZCwgbV9jb250
ZXh0LCBtX3N0eWxlU2hlZXQpKSB7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUZvbnRTdHlsZSwgY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5p
ZCksIGltcG9ydGFudCk7CiAgICAgICAgICAgICBmb250U3R5bGVQYXJzZWQgPSB0cnVlOwogICAg
ICAgICB9IGVsc2UgaWYgKCFmb250VmFyaWFudFBhcnNlZCAmJiAodmFsdWUtPmlkID09IENTU1Zh
bHVlTm9ybWFsIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZVNtYWxsQ2FwcykpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggZWFmYmQ5Mi4uNzQxY2I2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTY0LDYgKzY0
LDcgQEAgU3R5bGVTaGVldENvbnRlbnRzOjpTdHlsZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1w
b3J0KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYKICAgICAsIG1faGFzU3ludGFjdGljYWxseVZh
bGlkQ1NTSGVhZGVyKHRydWUpCiAgICAgLCBtX2RpZExvYWRFcnJvck9jY3VyKGZhbHNlKQogICAg
ICwgbV91c2VzUmVtVW5pdHMoZmFsc2UpCisgICAgLCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxp
dHkoZmFsc2UpCiAgICAgLCBtX2lzTXV0YWJsZShmYWxzZSkKICAgICAsIG1faXNJbk1lbW9yeUNh
Y2hlKGZhbHNlKQogICAgICwgbV9wYXJzZXJDb250ZXh0KGNvbnRleHQpCkBAIC04Myw2ICs4NCw3
IEBAIFN0eWxlU2hlZXRDb250ZW50czo6U3R5bGVTaGVldENvbnRlbnRzKGNvbnN0IFN0eWxlU2hl
ZXRDb250ZW50cyYgbykKICAgICAsIG1faGFzU3ludGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyKG8u
bV9oYXNTeW50YWN0aWNhbGx5VmFsaWRDU1NIZWFkZXIpCiAgICAgLCBtX2RpZExvYWRFcnJvck9j
Y3VyKGZhbHNlKQogICAgICwgbV91c2VzUmVtVW5pdHMoby5tX3VzZXNSZW1Vbml0cykKKyAgICAs
IG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eShvLm1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0
eSkKICAgICAsIG1faXNNdXRhYmxlKGZhbHNlKQogICAgICwgbV9pc0luTWVtb3J5Q2FjaGUoZmFs
c2UpCiAgICAgLCBtX3BhcnNlckNvbnRleHQoby5tX3BhcnNlckNvbnRleHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKaW5kZXggNjJhOTNkNS4uZTE0YjA3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtOTEsNyArOTEsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwYXJzZXJBZGROYW1lc3BhY2UoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVm
aXgsIGNvbnN0IEF0b21pY1N0cmluZyYgdXJpKTsKICAgICB2b2lkIHBhcnNlckFwcGVuZFJ1bGUo
UGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPik7CiAgICAgdm9pZCBwYXJzZXJTZXRFbmNvZGluZ0Zy
b21DaGFyc2V0UnVsZShjb25zdCBTdHJpbmcmIGVuY29kaW5nKTsgCi0gICAgdm9pZCBwYXJzZXJT
ZXRVc2VzUmVtVW5pdHMoYm9vbCBiKSB7IG1fdXNlc1JlbVVuaXRzID0gYjsgfQorICAgIHZvaWQg
cGFyc2VyU2V0VXNlc1JlbVVuaXRzKCkgeyBtX3VzZXNSZW1Vbml0cyA9IHRydWU7IH0KKyAgICB2
b2lkIHBhcnNlclNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSB7IG1fdXNlc1N0eWxlQmFz
ZWRFZGl0YWJpbGl0eSA9IHRydWU7IH0KIAogICAgIHZvaWQgY2xlYXJSdWxlcygpOwogCkBAIC0x
MTcsNiArMTE4LDcgQEAgcHVibGljOgogICAgIFN0eWxlUnVsZUJhc2UqIHJ1bGVBdCh1bnNpZ25l
ZCBpbmRleCkgY29uc3Q7CiAKICAgICBib29sIHVzZXNSZW1Vbml0cygpIGNvbnN0IHsgcmV0dXJu
IG1fdXNlc1JlbVVuaXRzOyB9CisgICAgYm9vbCB1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkg
Y29uc3QgeyByZXR1cm4gbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5OyB9CiAKICAgICB1bnNp
Z25lZCBlc3RpbWF0ZWRTaXplSW5CeXRlcygpIGNvbnN0OwogICAgIApAQCAtMTU5LDYgKzE2MSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1N5bnRhY3RpY2FsbHlWYWxpZENTU0hlYWRlciA6
IDE7CiAgICAgYm9vbCBtX2RpZExvYWRFcnJvck9jY3VyIDogMTsKICAgICBib29sIG1fdXNlc1Jl
bVVuaXRzIDogMTsKKyAgICBib29sIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA6IDE7CiAg
ICAgYm9vbCBtX2lzTXV0YWJsZSA6IDE7CiAgICAgYm9vbCBtX2lzSW5NZW1vcnlDYWNoZSA6IDE7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2ZDMyMmQyLi4zYjdjNzFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE3NDYsOCArMTc0NiwxNCBAQCB2b2lkIERvY3VtZW50
OjpyZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIGNoYW5nZSkKIAogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxS
ZWNhbGN1bGF0ZVN0eWxlKCp0aGlzKTsKIAotICAgIGlmIChtX2VsZW1lbnRTaGVldCAmJiBtX2Vs
ZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKSkKLSAgICAgICAgbV9zdHlsZVNo
ZWV0Q29sbGVjdGlvbi5zZXRVc2VzUmVtVW5pdCh0cnVlKTsKKyAgICBpZiAobV9lbGVtZW50U2hl
ZXQpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIG5ldmVyIHJlc2V0IHRoZXNlIGZsYWdzLgorICAg
ICAgICBhdXRvJiBjb250ZW50cyA9IG1fZWxlbWVudFNoZWV0LT5jb250ZW50cygpOworICAgICAg
ICBpZiAoY29udGVudHMudXNlc1JlbVVuaXRzKCkpCisgICAgICAgICAgICBtX3N0eWxlU2hlZXRD
b2xsZWN0aW9uLnNldFVzZXNSZW1Vbml0KHRydWUpOworICAgICAgICBpZiAoY29udGVudHMudXNl
c1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpKQorICAgICAgICAgICAgbV9zdHlsZVNoZWV0Q29sbGVj
dGlvbi5zZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KHRydWUpOworICAgIH0KIAogICAgIG1f
aW5TdHlsZVJlY2FsYyA9IHRydWU7CiAgICAgewpAQCAtMTgwNyw3ICsxODEzLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpCiAgICAgaWYgKG1fb3B0aW1pemVkU3R5bGVT
aGVldFVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHN0eWxlUmVzb2x2ZXJDaGFuZ2Vk
KFJlY2FsY1N0eWxlSWZOZWVkZWQpOwogCi0gICAgaWYgKCghbV9wZW5kaW5nU3R5bGVSZWNhbGNT
aG91bGRGb3JjZSAmJiAhY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpIHx8IGluUGFnZUNhY2hlKCkp
CisgICAgaWYgKCFuZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHJl
Y2FsY1N0eWxlKFN0eWxlOjpOb0NoYW5nZSk7CkBAIC0yNjgyLDkgKzI2ODgsMTMgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlQmFzZVVSTCgpCiAgICAgICAgIC8vIEVsZW1lbnQgc2hlZXQgaXMgc2ls
bHkuIEl0IG5ldmVyIGNvbnRhaW5zIGFueXRoaW5nLgogICAgICAgICBBU1NFUlQoIW1fZWxlbWVu
dFNoZWV0LT5jb250ZW50cygpLnJ1bGVDb3VudCgpKTsKICAgICAgICAgYm9vbCB1c2VzUmVtVW5p
dHMgPSBtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKTsKKyAgICAgICAg
Ym9vbCB1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRz
KCkudXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICBtX2VsZW1lbnRTaGVldCA9
IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZUlubGluZSgqdGhpcywgbV9iYXNlVVJMKTsKICAgICAgICAg
Ly8gRklYTUU6IFNvIHdlIGFyZSBub3QgcmVhbGx5IHRoZSBwYXJzZXIuIFRoZSByaWdodCBmaXgg
aXMgdG8gZWxpbWluYXRlIHRoZSBlbGVtZW50IHNoZWV0IGNvbXBsZXRlbHkuCi0gICAgICAgIG1f
ZWxlbWVudFNoZWV0LT5jb250ZW50cygpLnBhcnNlclNldFVzZXNSZW1Vbml0cyh1c2VzUmVtVW5p
dHMpOworICAgICAgICBpZiAodXNlc1JlbVVuaXRzKQorICAgICAgICAgICAgbV9lbGVtZW50U2hl
ZXQtPmNvbnRlbnRzKCkucGFyc2VyU2V0VXNlc1JlbVVuaXRzKCk7CisgICAgICAgIGlmICh1c2Vz
U3R5bGVCYXNlZEVkaXRhYmlsaXR5KQorICAgICAgICAgICAgbV9lbGVtZW50U2hlZXQtPmNvbnRl
bnRzKCkucGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgIH0KIAogICAg
IGlmICghZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihvbGRCYXNlVVJMLCBtX2Jhc2VV
UkwpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc2ZmIxYjcuLmQ5ZGRlYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC02MDEsNiArNjAxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNh
bGNTdHlsZShTdHlsZTo6Q2hhbmdlID0gU3R5bGU6Ok5vQ2hhbmdlKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBib29sIG5lZWRzU3R5bGVSZWNh
bGMoKSBjb25zdCB7IHJldHVybiAhaW5QYWdlQ2FjaGUoKSAmJiAobV9wZW5kaW5nU3R5bGVSZWNh
bGNTaG91bGRGb3JjZSB8fCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBtX29wdGltaXplZFN0
eWxlU2hlZXRVcGRhdGVUaW1lci5pc0FjdGl2ZSgpKTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1cGRhdGVMYXlvdXQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCA4YWUzMWU5Li43MzZhNTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uY3BwCkBAIC02MCw2ICs2MCw3IEBAIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OkRv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICwgbV91
c2VzRmlyc3RMaW5lUnVsZXMoZmFsc2UpCiAgICAgLCBtX3VzZXNGaXJzdExldHRlclJ1bGVzKGZh
bHNlKQogICAgICwgbV91c2VzUmVtVW5pdHMoZmFsc2UpCisgICAgLCBtX3VzZXNTdHlsZUJhc2Vk
RWRpdGFiaWxpdHkoZmFsc2UpCiB7CiB9CiAKQEAgLTM5MCwxNSArMzkxLDYgQEAgdm9pZCBEb2N1
bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphbmFseXplU3R5bGVTaGVldENoYW5nZShVcGRhdGVG
bGFnIHVwZGF0ZUZsYWcKICAgICByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyA9IGZhbHNlOwogfQog
Ci1zdGF0aWMgYm9vbCBzdHlsZVNoZWV0c1VzZVJlbVVuaXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8
Q1NTU3R5bGVTaGVldD4+JiBzaGVldHMpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNoZWV0cy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoc2hlZXRzW2ldLT5jb250ZW50cygp
LnVzZXNSZW1Vbml0cygpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogc3RhdGljIHZvaWQgZmlsdGVyRW5hYmxlZE5vbmVtcHR5Q1NTU3R5
bGVTaGVldHMoVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIHJlc3VsdCwgY29uc3QgVmVj
dG9yPFJlZlB0cjxTdHlsZVNoZWV0Pj4mIHNoZWV0cykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2hlZXRzLnNpemUoKTsgKytpKSB7CkBAIC00NTcsNyArNDQ5LDEyIEBAIGJvb2wg
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBk
YXRlRmxhZyB1cGRhdGVGbGFnCiAgICAgbV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cy5zd2FwKGFj
dGl2ZUNTU1N0eWxlU2hlZXRzKTsKICAgICBtX3N0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3Qu
c3dhcChhY3RpdmVTdHlsZVNoZWV0cyk7CiAKLSAgICBtX3VzZXNSZW1Vbml0cyA9IHN0eWxlU2hl
ZXRzVXNlUmVtVW5pdHMobV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cyk7CisgICAgZm9yIChhdXRv
IHNoZWV0OiBtX2FjdGl2ZUF1dGhvclN0eWxlU2hlZXRzKSB7CisgICAgICAgIGlmIChzaGVldC0+
Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKSkKKyAgICAgICAgICAgIG1fdXNlc1JlbVVuaXRzID0g
dHJ1ZTsKKyAgICAgICAgaWYgKHNoZWV0LT5jb250ZW50cygpLnVzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHkoKSkKKyAgICAgICAgICAgIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IHRydWU7
CisgICAgfQogICAgIG1fcGVuZGluZ1VwZGF0ZVR5cGUgPSBOb1VwZGF0ZTsKIAogICAgIHJldHVy
biByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oCmluZGV4IGVlZGU3YmYuLjYwZmI3ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaApA
QCAtMTA1LDYgKzEwNSw4IEBAIHB1YmxpYzoKICAgICBib29sIHVzZXNGaXJzdExldHRlclJ1bGVz
KCkgY29uc3QgeyByZXR1cm4gbV91c2VzRmlyc3RMZXR0ZXJSdWxlczsgfQogICAgIGJvb2wgdXNl
c1JlbVVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VzUmVtVW5pdHM7IH0KICAgICB2b2lkIHNl
dFVzZXNSZW1Vbml0KGJvb2wgYikgeyBtX3VzZXNSZW1Vbml0cyA9IGI7IH0KKyAgICBib29sIHVz
ZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSB7IHJldHVybiBtX3VzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHk7IH0KKyAgICB2b2lkIHNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoYm9vbCBiKSB7
IG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IGI7IH0KIAogICAgIHZvaWQgY29tYmluZUNT
U0ZlYXR1cmVGbGFncygpOwogICAgIHZvaWQgcmVzZXRDU1NGZWF0dXJlRmxhZ3MoKTsKQEAgLTE1
Nyw2ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VzRmlyc3RMaW5lUnVsZXM7CiAg
ICAgYm9vbCBtX3VzZXNGaXJzdExldHRlclJ1bGVzOwogICAgIGJvb2wgbV91c2VzUmVtVW5pdHM7
CisgICAgYm9vbCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHk7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKaW5kZXggZWJmNDYxOC4uMTcxODMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNTU1LDE1
ICs1NTUsNjAgQEAgdm9pZCBOb2RlOjppbnNwZWN0KCkKICAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5pbnNwZWN0KHRoaXMpOwogfQogCi1ib29sIE5vZGU6
Omhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVMZXZlbCBlZGl0YWJsZUxldmVsLCBVc2VyU2VsZWN0
QWxsVHJlYXRtZW50IHRyZWF0bWVudCkgY29uc3QKK3N0YXRpYyBpbmxpbmUgYm9vbCBkZXRlcm1p
bmVFZGl0YWJpbGl0eUluZGVwZW5kZW50T2ZTdHlsZShjb25zdCBOb2RlJiBub2RlLCBib29sIGlz
RWRpdGFibGUpCiB7Ci0gICAgaWYgKCFkb2N1bWVudCgpLmhhc0xpdmluZ1JlbmRlclRyZWUoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCkgJiYgZG9j
dW1lbnQoKS5mcmFtZSgpLT5wYWdlKCkgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5wYWdlKCktPmlz
RWRpdGFibGUoKSAmJiAhY29udGFpbmluZ1NoYWRvd1Jvb3QoKSkKKyAgICBpZiAoIW5vZGUuZG9j
dW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkpIHsKKyAgICAgICAgaXNFZGl0YWJsZSA9IGZh
bHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKLSAgICBpZiAoaXNQc2V1ZG9FbGVt
ZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBGcmFtZSogZnJhbWUgPSBub2RlLmRv
Y3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgUGFnZSogcGFnZSA9
IGZyYW1lLT5wYWdlKCk7CisgICAgICAgIGlmIChwYWdlLT5pc0VkaXRhYmxlKCkgJiYgIW5vZGUu
aXNJblNoYWRvd1RyZWUoKSkgeworICAgICAgICAgICAgaXNFZGl0YWJsZSA9IHRydWU7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChub2RlLmlz
UHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlzRWRpdGFibGUgPSBmYWxzZTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIE5vZGU6
OmlzRWRpdGFibGVJZ25vcmluZ1N0eWxlKEVkaXRhYmxlTGV2ZWwgZWRpdGFibGVMZXZlbCkgY29u
c3QKK3sKKyAgICBBU1NFUlQoIWRvY3VtZW50KCkuc3R5bGVTaGVldENvbGxlY3Rpb24oKS51c2Vz
U3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkpOworICAgIGJvb2wgaXNFZGl0YWJsZSA9IGZhbHNlOwor
ICAgIGlmIChkZXRlcm1pbmVFZGl0YWJpbGl0eUluZGVwZW5kZW50T2ZTdHlsZSgqdGhpcywgaXNF
ZGl0YWJsZSkpCisgICAgICAgIHJldHVybiBpc0VkaXRhYmxlOworCisgICAgZm9yIChjb25zdCBO
b2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgeworICAg
ICAgICBpZiAoIW5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gZG93bmNhc3Q8SFRNTEVsZW1lbnQ+
KCpub2RlKS5mYXN0R2V0QXR0cmlidXRlKGNvbnRlbnRlZGl0YWJsZUF0dHIpOworICAgICAgICBp
ZiAodmFsdWUgPT0gbnVsbEF0b20pCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc3dp
dGNoIChjb250ZW50RWRpdGFibGVWYWx1ZVRvVXNlck1vZGlmeVZhbHVlKHZhbHVlKSkgeworICAg
ICAgICBjYXNlIENTU1ZhbHVlUmVhZFdyaXRlOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5OgorICAgICAgICAgICAg
cmV0dXJuIGVkaXRhYmxlTGV2ZWwgIT0gUmljaGx5RWRpdGFibGU7CisgICAgICAgIGNhc2UgQ1NT
VmFsdWVSZWFkT25seToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAg
IH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgTm9kZTo6aGFzRWRpdGFibGVTdHlsZShF
ZGl0YWJsZUxldmVsIGVkaXRhYmxlTGV2ZWwsIFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgdHJlYXRt
ZW50KSBjb25zdAoreworICAgIGJvb2wgaXNFZGl0YWJsZSA9IGZhbHNlOworICAgIGlmIChkZXRl
cm1pbmVFZGl0YWJpbGl0eUluZGVwZW5kZW50T2ZTdHlsZSgqdGhpcywgaXNFZGl0YWJsZSkpCisg
ICAgICAgIHJldHVybiBpc0VkaXRhYmxlOwogCiAgICAgLy8gSWRlYWxseSB3ZSdkIGNhbGwgQVNT
RVJUKCFuZWVkc1N0eWxlUmVjYWxjKCkpIGhlcmUsIGJ1dAogICAgIC8vIENvbnRhaW5lck5vZGU6
OnNldEZvY3VzKCkgY2FsbHMgc2V0TmVlZHNTdHlsZVJlY2FsYygpLCBzbyB0aGUgYXNzZXJ0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAppbmRleCBkY2NlMjdhLi5mNzdiZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTM2Myw2
ICszNjMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc3BlY3QoKTsK
IAorICAgIGJvb2wgaXNFZGl0YWJsZUlnbm9yaW5nU3R5bGUoRWRpdGFibGVMZXZlbCkgY29uc3Q7
CisKICAgICBib29sIGhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVUeXBlIGVkaXRhYmxlVHlwZSA9
IENvbnRlbnRJc0VkaXRhYmxlLCBVc2VyU2VsZWN0QWxsVHJlYXRtZW50IHRyZWF0bWVudCA9IFVz
ZXJTZWxlY3RBbGxJc0Fsd2F5c05vbkVkaXRhYmxlKSBjb25zdAogICAgIHsKICAgICAgICAgc3dp
dGNoIChlZGl0YWJsZVR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAK
aW5kZXggMjNlYzkwYi4uODRmYzZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGlu
Zy5jcHAKQEAgLTE0NiwxMCArMTQ2LDE3IEBAIGJvb2wgaXNFZGl0YWJsZVBvc2l0aW9uKGNvbnN0
IFBvc2l0aW9uJiBwLCBFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBlLCBFVXBkYXRlU3R5CiAgICAg
Tm9kZSogbm9kZSA9IHAuY29udGFpbmVyTm9kZSgpOwogICAgIGlmICghbm9kZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICh1cGRhdGVTdHlsZSA9PSBVcGRhdGVTdHlsZSkKLSAgICAg
ICAgbm9kZS0+ZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7Ci0gICAgZWxzZQotICAg
ICAgICBBU1NFUlQodXBkYXRlU3R5bGUgPT0gRG9Ob3RVcGRhdGVTdHlsZSk7CisKKyAgICBEb2N1
bWVudCYgZG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgpOworICAgIHN3aXRjaCAodXBkYXRlU3R5
bGUpIHsKKyAgICBjYXNlIFVwZGF0ZVN0eWxlOgorICAgICAgICBpZiAoZG9jdW1lbnQubmVlZHNT
dHlsZVJlY2FsYygpICYmICFkb2N1bWVudC5zdHlsZVNoZWV0Q29sbGVjdGlvbigpLnVzZXNTdHls
ZUJhc2VkRWRpdGFiaWxpdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBub2RlLT5pc0VkaXRhYmxl
SWdub3JpbmdTdHlsZShlZGl0YWJsZVR5cGUpOworICAgICAgICBkb2N1bWVudC51cGRhdGVTdHls
ZUlmTmVlZGVkKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9Ob3RVcGRhdGVTdHlsZToK
KyAgICAgICAgYnJlYWs7CisgICAgfQogCiAgICAgcmV0dXJuIG5vZGUtPmhhc0VkaXRhYmxlU3R5
bGUoZWRpdGFibGVUeXBlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAppbmRl
eCBlZDQxNTc2Li4zMGJiZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0
bWxlZGl0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIGh0bWxlZGl0aW5nX2gKICNkZWZpbmUgaHRtbGVkaXRp
bmdfaAogCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkVkaXRpbmdC
b3VuZGFyeS5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dERpcmVjdGlv
bi5oIgpAQCAtMjY0LDYgKzI2NSwxOCBAQCBSZW5kZXJCbG9jayogcmVuZGVyZXJGb3JDYXJldFBh
aW50aW5nKE5vZGUqKTsKIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3RJblJlbmRlcmVyRm9yQ2Fy
ZXRQYWludGluZyhjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBSZW5kZXJCbG9jayomKTsKIEludFJl
Y3QgYWJzb2x1dGVCb3VuZHNGb3JMb2NhbENhcmV0UmVjdChSZW5kZXJCbG9jayogcmVuZGVyZXJG
b3JDYXJldFBhaW50aW5nLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAKKworaW5saW5lIENTU1ZhbHVl
SUQgY29udGVudEVkaXRhYmxlVmFsdWVUb1VzZXJNb2RpZnlWYWx1ZShjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgZXF1YWxJZ25vcmluZ0Nh
c2UodmFsdWUsICJ0cnVlIikpCisgICAgICAgIHJldHVybiBDU1NWYWx1ZVJlYWRXcml0ZTsKKyAg
ICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgInBsYWludGV4dC1vbmx5IikpCisg
ICAgICAgIHJldHVybiBDU1NWYWx1ZVJlYWRXcml0ZVBsYWludGV4dE9ubHk7CisgICAgZWxzZSBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxzZSIpKQorICAgICAgICByZXR1cm4gQ1NT
VmFsdWVSZWFkT25seTsKKyAgICByZXR1cm4gQ1NTVmFsdWVJbnZhbGlkOworfQorCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCA1ODU0YmM5Li43YTBmNWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2lu
Y2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlhN
TE5hbWVzLmgiCisjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIK
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CkBAIC0xNzUsMjQgKzE3NiwyMyBAQCB2b2lkIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZQogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VGV4dEFsaWduLCB2YWx1ZSk7CiAgICAgfSBlbHNlIGlm
IChuYW1lID09IGNvbnRlbnRlZGl0YWJsZUF0dHIpIHsKLSAgICAgICAgaWYgKHZhbHVlLmlzRW1w
dHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgInRydWUiKSkgewotICAgICAgICAgICAg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0
eVdlYmtpdFVzZXJNb2RpZnksIENTU1ZhbHVlUmVhZFdyaXRlKTsKKyAgICAgICAgQ1NTVmFsdWVJ
RCBjc3NWYWx1ZSA9IGNvbnRlbnRFZGl0YWJsZVZhbHVlVG9Vc2VyTW9kaWZ5VmFsdWUodmFsdWUp
OworICAgICAgICBzd2l0Y2ggKGNzc1ZhbHVlKSB7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVSZWFk
V3JpdGU6CisgICAgICAgIGNhc2UgQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5OgogICAg
ICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBD
U1NQcm9wZXJ0eVdvcmRXcmFwLCBDU1NWYWx1ZUJyZWFrV29yZCk7CiAgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2Vi
a2l0TmJzcE1vZGUsIENTU1ZhbHVlU3BhY2UpOwogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdExpbmVCcmVh
aywgQ1NTVmFsdWVBZnRlcldoaXRlU3BhY2UpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAg
ICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJv
cGVydHlXZWJraXRUZXh0U2l6ZUFkanVzdCwgQ1NTVmFsdWVOb25lKTsKICNlbmRpZgotICAgICAg
ICB9IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAicGxhaW50ZXh0LW9ubHkiKSkg
ewotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0
eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnksIENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50
ZXh0T25seSk7Ci0gICAgICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V29yZFdyYXAsIENTU1ZhbHVlQnJlYWtXb3JkKTsKLSAg
ICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwg
Q1NTUHJvcGVydHlXZWJraXROYnNwTW9kZSwgQ1NTVmFsdWVTcGFjZSk7Ci0gICAgICAgICAgICBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5
V2Via2l0TGluZUJyZWFrLCBDU1NWYWx1ZUFmdGVyV2hpdGVTcGFjZSk7Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTaXplQWRqdXN0LCBDU1NWYWx1ZU5vbmUpOwot
I2VuZGlmCi0gICAgICAgIH0gZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJmYWxz
ZSIpKQotICAgICAgICAgICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxl
KHN0eWxlLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnksIENTU1ZhbHVlUmVhZE9ubHkpOwor
ICAgICAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVSZWFkT25seToK
KyAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHls
ZSwgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5LCBjc3NWYWx1ZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IGhpZGRlbkF0dHIpIHsKICAgICAgICAgYWRkUHJvcGVydHlU
b1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eURpc3BsYXksIENT
U1ZhbHVlTm9uZSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IGRyYWdnYWJsZUF0dHIpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247321</attachid>
            <date>2015-02-25 01:26:25 -0800</date>
            <delta_ts>2015-02-25 01:28:02 -0800</delta_ts>
            <desc>WIP2</desc>
            <filename>wip129034b.patch</filename>
            <type>text/plain</type>
            <size>4548</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGIwMzdlOWIuLjNiN2M3MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTgxMyw3ICsxODEzLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRl
U3R5bGVJZk5lZWRlZCgpCiAgICAgaWYgKG1fb3B0aW1pemVkU3R5bGVTaGVldFVwZGF0ZVRpbWVy
LmlzQWN0aXZlKCkpCiAgICAgICAgIHN0eWxlUmVzb2x2ZXJDaGFuZ2VkKFJlY2FsY1N0eWxlSWZO
ZWVkZWQpOwogCi0gICAgaWYgKCghbV9wZW5kaW5nU3R5bGVSZWNhbGNTaG91bGRGb3JjZSAmJiAh
Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpIHx8IGluUGFnZUNhY2hlKCkpCisgICAgaWYgKCFuZWVk
c1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHJlY2FsY1N0eWxlKFN0eWxl
OjpOb0NoYW5nZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc2ZmIxYjcuLmQ5ZGRlYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02MDEsNiArNjAxLDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCByZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlID0gU3R5bGU6Ok5vQ2hhbmdlKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBib29sIG5lZWRzU3R5
bGVSZWNhbGMoKSBjb25zdCB7IHJldHVybiAhaW5QYWdlQ2FjaGUoKSAmJiAobV9wZW5kaW5nU3R5
bGVSZWNhbGNTaG91bGRGb3JjZSB8fCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBtX29wdGlt
aXplZFN0eWxlU2hlZXRVcGRhdGVUaW1lci5pc0FjdGl2ZSgpKTsgfQogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBlYmY0
NjE4Li4yYTUzY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC01NTUsMTUgKzU1NSw0OSBAQCB2b2lk
IE5vZGU6Omluc3BlY3QoKQogICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLmluc3BlY3QodGhpcyk7CiB9CiAKLWJvb2wgTm9kZTo6aGFzRWRpdGFibGVTdHls
ZShFZGl0YWJsZUxldmVsIGVkaXRhYmxlTGV2ZWwsIFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgdHJl
YXRtZW50KSBjb25zdAorc3RhdGljIGlubGluZSBib29sIGRldGVybWluZUVkaXRhYmlsaXR5SW5k
ZXBlbmRlbnRPZlN0eWxlKGNvbnN0IE5vZGUmIG5vZGUsIGJvb2wgaXNFZGl0YWJsZSkKIHsKLSAg
ICBpZiAoIWRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCkt
PnBhZ2UoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnBhZ2UoKS0+aXNFZGl0YWJsZSgpICYmICFj
b250YWluaW5nU2hhZG93Um9vdCgpKQorICAgIGlmICghbm9kZS5kb2N1bWVudCgpLmhhc0xpdmlu
Z1JlbmRlclRyZWUoKSkgeworICAgICAgICBpc0VkaXRhYmxlID0gZmFsc2U7CiAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KIAotICAgIGlmIChpc1BzZXVkb0VsZW1lbnQoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUuZG9jdW1lbnQoKS5mcmFtZSgp
OworICAgIGlmIChmcmFtZSkgeworICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsK
KyAgICAgICAgaWYgKHBhZ2UtPmlzRWRpdGFibGUoKSAmJiAhbm9kZS5pc0luU2hhZG93VHJlZSgp
KSB7CisgICAgICAgICAgICBpc0VkaXRhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG5vZGUuaXNQc2V1ZG9FbGVtZW50KCkp
IHsKKyAgICAgICAgaXNFZGl0YWJsZSA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgTm9kZTo6aXNFZGl0YWJsZUlnbm9y
aW5nU3R5bGUoKSBjb25zdAoreworICAgIEFTU0VSVCghZG9jdW1lbnQoKS5zdHlsZVNoZWV0Q29s
bGVjdGlvbigpLnVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSk7CisgICAgYm9vbCBpc0VkaXRh
YmxlID0gZmFsc2U7CisgICAgaWYgKGRldGVybWluZUVkaXRhYmlsaXR5SW5kZXBlbmRlbnRPZlN0
eWxlKCp0aGlzLCBpc0VkaXRhYmxlKSkKKyAgICAgICAgcmV0dXJuIGlzRWRpdGFibGU7CisKKyAg
ICBmb3IgKGNvbnN0IE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+cGFyZW50
Tm9kZSgpKSB7CisgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8RWxlbWVudD4obm9kZSktPm1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9D
bGFzcygpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgTm9kZTo6aGFzRWRp
dGFibGVTdHlsZShFZGl0YWJsZUxldmVsIGVkaXRhYmxlTGV2ZWwsIFVzZXJTZWxlY3RBbGxUcmVh
dG1lbnQgdHJlYXRtZW50KSBjb25zdAoreworICAgIGJvb2wgaXNFZGl0YWJsZSA9IGZhbHNlOwor
ICAgIGlmIChkZXRlcm1pbmVFZGl0YWJpbGl0eUluZGVwZW5kZW50T2ZTdHlsZSgqdGhpcywgaXNF
ZGl0YWJsZSkpCisgICAgICAgIHJldHVybiBpc0VkaXRhYmxlOwogCiAgICAgLy8gSWRlYWxseSB3
ZSdkIGNhbGwgQVNTRVJUKCFuZWVkc1N0eWxlUmVjYWxjKCkpIGhlcmUsIGJ1dAogICAgIC8vIENv
bnRhaW5lck5vZGU6OnNldEZvY3VzKCkgY2FsbHMgc2V0TmVlZHNTdHlsZVJlY2FsYygpLCBzbyB0
aGUgYXNzZXJ0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBkY2NlMjdhLi5mNTJiMjQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKQEAgLTM2Myw2ICszNjMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGluc3BlY3QoKTsKIAorICAgIGJvb2wgaXNFZGl0YWJsZUlnbm9yaW5nU3R5bGUoKSBjb25zdDsK
KwogICAgIGJvb2wgaGFzRWRpdGFibGVTdHlsZShFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBlID0g
Q29udGVudElzRWRpdGFibGUsIFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgdHJlYXRtZW50ID0gVXNl
clNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpIGNvbnN0CiAgICAgewogICAgICAgICBzd2l0
Y2ggKGVkaXRhYmxlVHlwZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9o
dG1sZWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApp
bmRleCAyM2VjOTBiLi5lNTIyNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcApAQCAtMTQ2LDEwICsxNDYsMTcgQEAgYm9vbCBpc0VkaXRhYmxlUG9zaXRpb24oY29uc3Qg
UG9zaXRpb24mIHAsIEVkaXRhYmxlVHlwZSBlZGl0YWJsZVR5cGUsIEVVcGRhdGVTdHkKICAgICBO
b2RlKiBub2RlID0gcC5jb250YWluZXJOb2RlKCk7CiAgICAgaWYgKCFub2RlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHVwZGF0ZVN0eWxlID09IFVwZGF0ZVN0eWxlKQotICAgICAg
ICBub2RlLT5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLSAgICBlbHNlCi0gICAg
ICAgIEFTU0VSVCh1cGRhdGVTdHlsZSA9PSBEb05vdFVwZGF0ZVN0eWxlKTsKKworICAgIERvY3Vt
ZW50JiBkb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgc3dpdGNoICh1cGRhdGVTdHls
ZSkgeworICAgIGNhc2UgVXBkYXRlU3R5bGU6CisgICAgICAgIGlmIChkb2N1bWVudC5uZWVkc1N0
eWxlUmVjYWxjKCkgJiYgIWRvY3VtZW50LnN0eWxlU2hlZXRDb2xsZWN0aW9uKCkudXNlc1N0eWxl
QmFzZWRFZGl0YWJpbGl0eSgpICYmIGVkaXRhYmxlVHlwZSA9PSBDb250ZW50SXNFZGl0YWJsZSkK
KyAgICAgICAgICAgIHJldHVybiBub2RlLT5pc0VkaXRhYmxlSWdub3JpbmdTdHlsZSgpOworICAg
ICAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRG9Ob3RVcGRhdGVTdHlsZToKKyAgICAgICAgYnJlYWs7CisgICAgfQogCiAgICAgcmV0
dXJuIG5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoZWRpdGFibGVUeXBlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247323</attachid>
            <date>2015-02-25 01:28:02 -0800</date>
            <delta_ts>2015-02-28 00:24:49 -0800</delta_ts>
            <desc>Whole WIP2</desc>
            <filename>wip129034c.patch</filename>
            <type>text/plain</type>
            <size>16021</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4IGVmZGIyYmIuLjE5MThmYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTcwMCw3ICsxNzAwLDcgQEAgdW5hcnlfdGVy
bToKICAgICAgICQkLmZWYWx1ZSA9ICQxOwogICAgICAgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfUkVNUzsKICAgICAgIGlmIChwYXJzZXItPm1fc3R5bGVTaGVldCkKLSAgICAgICAg
ICBwYXJzZXItPm1fc3R5bGVTaGVldC0+cGFyc2VyU2V0VXNlc1JlbVVuaXRzKHRydWUpOworICAg
ICAgICAgIHBhcnNlci0+bV9zdHlsZVNoZWV0LT5wYXJzZXJTZXRVc2VzUmVtVW5pdHMoKTsKICAg
fQogICB8IENIUyB7ICQkLmlkID0gQ1NTVmFsdWVJbnZhbGlkOyAkJC5mVmFsdWUgPSAkMTsgJCQu
dW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ0hTOyB9CiAgIHwgVlcgeyAkJC5pZCA9IENT
U1ZhbHVlSW52YWxpZDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1ZXOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGYyOTNhZTUuLmU1YzQ0
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MzksNyArNjM5LDcgQEAgc3RhdGlj
IGJvb2wgcGFyc2VTaW1wbGVMZW5ndGhWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBkZWNs
YXJhdGlvbiwgQ1NTUHJvcGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SWQsIGludCB2YWx1ZUlELCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBwYXJzZXJDb250ZXh0KQor
c3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SWQsIGludCB2YWx1ZUlELCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBw
YXJzZXJDb250ZXh0LCBTdHlsZVNoZWV0Q29udGVudHMqIHN0eWxlU2hlZXRDb250ZW50cykKIHsK
ICAgICBpZiAoIXZhbHVlSUQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMTQsMTIgKzEw
MTQsMjAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyTW9kaWZ5OiAv
LyByZWFkLW9ubHkgfCByZWFkLXdyaXRlCi0gICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVl
UmVhZE9ubHkgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJlYWRXcml0ZSB8fCB2YWx1ZUlEID09IENT
U1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seSkKKyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NT
VmFsdWVSZWFkT25seSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVhZFdyaXRlIHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KSB7CisgICAgICAgICAgICBpZiAoc3R5
bGVTaGVldENvbnRlbnRzKQorICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRDb250ZW50cy0+cGFy
c2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFVzZXJTZWxlY3Q6IC8vIGF1dG8gfCBub25lIHwgdGV4dCB8IGFsbAotICAgICAgICBpZiAodmFs
dWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZVRleHQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUFsbCkKKyAgICAgICAgaWYg
KHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVUZXh0KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IGlmICh2YWx1ZUlEID09IENTU1ZhbHVlQWxsKSB7CisgICAgICAgICAgICBpZiAoc3R5bGVTaGVl
dENvbnRlbnRzKQorICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRDb250ZW50cy0+cGFyc2VyU2V0
VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRp
bmdNb2RlOgogICAgICAgICBpZiAodmFsdWVJRCA+PSBDU1NWYWx1ZUhvcml6b250YWxUYiAmJiB2
YWx1ZUlEIDw9IENTU1ZhbHVlSG9yaXpvbnRhbEJ0KQpAQCAtMTE3NSw3ICsxMTgzLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGlzS2V5d29yZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlkKQogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgcGFyc2VLZXl3b3JkVmFsdWUoTXV0YWJsZVN0
eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgY29u
c3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgaW1wb3J0YW50LCBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBwYXJzZXJDb250ZXh0KQorc3RhdGljIGJvb2wgcGFyc2VLZXl3b3JkVmFsdWUoTXV0YWJsZVN0
eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgY29u
c3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgaW1wb3J0YW50LCBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBwYXJzZXJDb250ZXh0LCBTdHlsZVNoZWV0Q29udGVudHMqIHN0eWxlU2hlZXRDb250ZW50cykK
IHsKICAgICBBU1NFUlQoIXN0cmluZy5pc0VtcHR5KCkpOwogCkBAIC0xMjAyLDcgKzEyMTAsNyBA
QCBzdGF0aWMgYm9vbCBwYXJzZUtleXdvcmRWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBk
ZWNsYXJhdGlvbiwgQ1NTUHJvcGVydHlJRAogICAgICAgICB2YWx1ZSA9IGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7CiAgICAgZWxzZSBpZiAodmFsdWVJRCA9PSBDU1NWYWx1
ZUluaXRpYWwpCiAgICAgICAgIHZhbHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlRXhwbGljaXRJ
bml0aWFsVmFsdWUoKTsKLSAgICBlbHNlIGlmIChpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFs
dWUocHJvcGVydHlJZCwgdmFsdWVJRCwgcGFyc2VyQ29udGV4dCkpCisgICAgZWxzZSBpZiAoaXNW
YWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKHByb3BlcnR5SWQsIHZhbHVlSUQsIHBhcnNlckNv
bnRleHQsIHN0eWxlU2hlZXRDb250ZW50cykpCiAgICAgICAgIHZhbHVlID0gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlSUQpOwogICAgIGVsc2UKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMTMwNyw3ICsxMzE1LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5SUQgcHIK
ICAgICAgICAgY29udGV4dC5tb2RlID0gY3NzUGFyc2VyTW9kZTsKICAgICB9CiAKLSAgICBpZiAo
cGFyc2VLZXl3b3JkVmFsdWUoZGVjbGFyYXRpb24sIHByb3BlcnR5SUQsIHN0cmluZywgaW1wb3J0
YW50LCBjb250ZXh0KSkKKyAgICBpZiAocGFyc2VLZXl3b3JkVmFsdWUoZGVjbGFyYXRpb24sIHBy
b3BlcnR5SUQsIHN0cmluZywgaW1wb3J0YW50LCBjb250ZXh0LCBjb250ZXh0U3R5bGVTaGVldCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChwYXJzZVRyYW5zbGF0ZVRyYW5zZm9ybVZh
bHVlKGRlY2xhcmF0aW9uLCBwcm9wZXJ0eUlELCBzdHJpbmcsIGltcG9ydGFudCkpCiAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtMTg4NSw3ICsxODkzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIH0KIAogICAg
IGlmIChpc0tleXdvcmRQcm9wZXJ0eUlEKHByb3BJZCkpIHsKLSAgICAgICAgaWYgKCFpc1ZhbGlk
S2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcElkLCBpZCwgbV9jb250ZXh0KSkKKyAgICAgICAg
aWYgKCFpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcElkLCBpZCwgbV9jb250ZXh0
LCBtX3N0eWxlU2hlZXQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
bV92YWx1ZUxpc3QtPm5leHQoKSAmJiAhaW5TaG9ydGhhbmQoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTYyOTYsNyArNjMwNCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnQo
Ym9vbCBpbXBvcnRhbnQpCiAgICAgYm9vbCBmb250V2VpZ2h0UGFyc2VkID0gZmFsc2U7CiAgICAg
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlOwogICAgIHdoaWxlICgodmFsdWUgPSBtX3ZhbHVlTGlzdC0+
Y3VycmVudCgpKSkgewotICAgICAgICBpZiAoIWZvbnRTdHlsZVBhcnNlZCAmJiBpc1ZhbGlkS2V5
d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlGb250U3R5bGUsIHZhbHVlLT5pZCwgbV9j
b250ZXh0KSkgeworICAgICAgICBpZiAoIWZvbnRTdHlsZVBhcnNlZCAmJiBpc1ZhbGlkS2V5d29y
ZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlGb250U3R5bGUsIHZhbHVlLT5pZCwgbV9jb250
ZXh0LCBtX3N0eWxlU2hlZXQpKSB7CiAgICAgICAgICAgICBhZGRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUZvbnRTdHlsZSwgY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5p
ZCksIGltcG9ydGFudCk7CiAgICAgICAgICAgICBmb250U3R5bGVQYXJzZWQgPSB0cnVlOwogICAg
ICAgICB9IGVsc2UgaWYgKCFmb250VmFyaWFudFBhcnNlZCAmJiAodmFsdWUtPmlkID09IENTU1Zh
bHVlTm9ybWFsIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZVNtYWxsQ2FwcykpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggZWFmYmQ5Mi4uNzQxY2I2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTY0LDYgKzY0
LDcgQEAgU3R5bGVTaGVldENvbnRlbnRzOjpTdHlsZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1w
b3J0KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYKICAgICAsIG1faGFzU3ludGFjdGljYWxseVZh
bGlkQ1NTSGVhZGVyKHRydWUpCiAgICAgLCBtX2RpZExvYWRFcnJvck9jY3VyKGZhbHNlKQogICAg
ICwgbV91c2VzUmVtVW5pdHMoZmFsc2UpCisgICAgLCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxp
dHkoZmFsc2UpCiAgICAgLCBtX2lzTXV0YWJsZShmYWxzZSkKICAgICAsIG1faXNJbk1lbW9yeUNh
Y2hlKGZhbHNlKQogICAgICwgbV9wYXJzZXJDb250ZXh0KGNvbnRleHQpCkBAIC04Myw2ICs4NCw3
IEBAIFN0eWxlU2hlZXRDb250ZW50czo6U3R5bGVTaGVldENvbnRlbnRzKGNvbnN0IFN0eWxlU2hl
ZXRDb250ZW50cyYgbykKICAgICAsIG1faGFzU3ludGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyKG8u
bV9oYXNTeW50YWN0aWNhbGx5VmFsaWRDU1NIZWFkZXIpCiAgICAgLCBtX2RpZExvYWRFcnJvck9j
Y3VyKGZhbHNlKQogICAgICwgbV91c2VzUmVtVW5pdHMoby5tX3VzZXNSZW1Vbml0cykKKyAgICAs
IG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eShvLm1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0
eSkKICAgICAsIG1faXNNdXRhYmxlKGZhbHNlKQogICAgICwgbV9pc0luTWVtb3J5Q2FjaGUoZmFs
c2UpCiAgICAgLCBtX3BhcnNlckNvbnRleHQoby5tX3BhcnNlckNvbnRleHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKaW5kZXggNjJhOTNkNS4uZTE0YjA3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaApAQCAtOTEsNyArOTEsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwYXJzZXJBZGROYW1lc3BhY2UoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVm
aXgsIGNvbnN0IEF0b21pY1N0cmluZyYgdXJpKTsKICAgICB2b2lkIHBhcnNlckFwcGVuZFJ1bGUo
UGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPik7CiAgICAgdm9pZCBwYXJzZXJTZXRFbmNvZGluZ0Zy
b21DaGFyc2V0UnVsZShjb25zdCBTdHJpbmcmIGVuY29kaW5nKTsgCi0gICAgdm9pZCBwYXJzZXJT
ZXRVc2VzUmVtVW5pdHMoYm9vbCBiKSB7IG1fdXNlc1JlbVVuaXRzID0gYjsgfQorICAgIHZvaWQg
cGFyc2VyU2V0VXNlc1JlbVVuaXRzKCkgeyBtX3VzZXNSZW1Vbml0cyA9IHRydWU7IH0KKyAgICB2
b2lkIHBhcnNlclNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSB7IG1fdXNlc1N0eWxlQmFz
ZWRFZGl0YWJpbGl0eSA9IHRydWU7IH0KIAogICAgIHZvaWQgY2xlYXJSdWxlcygpOwogCkBAIC0x
MTcsNiArMTE4LDcgQEAgcHVibGljOgogICAgIFN0eWxlUnVsZUJhc2UqIHJ1bGVBdCh1bnNpZ25l
ZCBpbmRleCkgY29uc3Q7CiAKICAgICBib29sIHVzZXNSZW1Vbml0cygpIGNvbnN0IHsgcmV0dXJu
IG1fdXNlc1JlbVVuaXRzOyB9CisgICAgYm9vbCB1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkg
Y29uc3QgeyByZXR1cm4gbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5OyB9CiAKICAgICB1bnNp
Z25lZCBlc3RpbWF0ZWRTaXplSW5CeXRlcygpIGNvbnN0OwogICAgIApAQCAtMTU5LDYgKzE2MSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1N5bnRhY3RpY2FsbHlWYWxpZENTU0hlYWRlciA6
IDE7CiAgICAgYm9vbCBtX2RpZExvYWRFcnJvck9jY3VyIDogMTsKICAgICBib29sIG1fdXNlc1Jl
bVVuaXRzIDogMTsKKyAgICBib29sIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA6IDE7CiAg
ICAgYm9vbCBtX2lzTXV0YWJsZSA6IDE7CiAgICAgYm9vbCBtX2lzSW5NZW1vcnlDYWNoZSA6IDE7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2ZDMyMmQyLi4zYjdjNzFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE3NDYsOCArMTc0NiwxNCBAQCB2b2lkIERvY3VtZW50
OjpyZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIGNoYW5nZSkKIAogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxS
ZWNhbGN1bGF0ZVN0eWxlKCp0aGlzKTsKIAotICAgIGlmIChtX2VsZW1lbnRTaGVldCAmJiBtX2Vs
ZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKSkKLSAgICAgICAgbV9zdHlsZVNo
ZWV0Q29sbGVjdGlvbi5zZXRVc2VzUmVtVW5pdCh0cnVlKTsKKyAgICBpZiAobV9lbGVtZW50U2hl
ZXQpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIG5ldmVyIHJlc2V0IHRoZXNlIGZsYWdzLgorICAg
ICAgICBhdXRvJiBjb250ZW50cyA9IG1fZWxlbWVudFNoZWV0LT5jb250ZW50cygpOworICAgICAg
ICBpZiAoY29udGVudHMudXNlc1JlbVVuaXRzKCkpCisgICAgICAgICAgICBtX3N0eWxlU2hlZXRD
b2xsZWN0aW9uLnNldFVzZXNSZW1Vbml0KHRydWUpOworICAgICAgICBpZiAoY29udGVudHMudXNl
c1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpKQorICAgICAgICAgICAgbV9zdHlsZVNoZWV0Q29sbGVj
dGlvbi5zZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KHRydWUpOworICAgIH0KIAogICAgIG1f
aW5TdHlsZVJlY2FsYyA9IHRydWU7CiAgICAgewpAQCAtMTgwNyw3ICsxODEzLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpCiAgICAgaWYgKG1fb3B0aW1pemVkU3R5bGVT
aGVldFVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHN0eWxlUmVzb2x2ZXJDaGFuZ2Vk
KFJlY2FsY1N0eWxlSWZOZWVkZWQpOwogCi0gICAgaWYgKCghbV9wZW5kaW5nU3R5bGVSZWNhbGNT
aG91bGRGb3JjZSAmJiAhY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpIHx8IGluUGFnZUNhY2hlKCkp
CisgICAgaWYgKCFuZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHJl
Y2FsY1N0eWxlKFN0eWxlOjpOb0NoYW5nZSk7CkBAIC0yNjgyLDkgKzI2ODgsMTMgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlQmFzZVVSTCgpCiAgICAgICAgIC8vIEVsZW1lbnQgc2hlZXQgaXMgc2ls
bHkuIEl0IG5ldmVyIGNvbnRhaW5zIGFueXRoaW5nLgogICAgICAgICBBU1NFUlQoIW1fZWxlbWVu
dFNoZWV0LT5jb250ZW50cygpLnJ1bGVDb3VudCgpKTsKICAgICAgICAgYm9vbCB1c2VzUmVtVW5p
dHMgPSBtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKTsKKyAgICAgICAg
Ym9vbCB1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRz
KCkudXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICBtX2VsZW1lbnRTaGVldCA9
IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZUlubGluZSgqdGhpcywgbV9iYXNlVVJMKTsKICAgICAgICAg
Ly8gRklYTUU6IFNvIHdlIGFyZSBub3QgcmVhbGx5IHRoZSBwYXJzZXIuIFRoZSByaWdodCBmaXgg
aXMgdG8gZWxpbWluYXRlIHRoZSBlbGVtZW50IHNoZWV0IGNvbXBsZXRlbHkuCi0gICAgICAgIG1f
ZWxlbWVudFNoZWV0LT5jb250ZW50cygpLnBhcnNlclNldFVzZXNSZW1Vbml0cyh1c2VzUmVtVW5p
dHMpOworICAgICAgICBpZiAodXNlc1JlbVVuaXRzKQorICAgICAgICAgICAgbV9lbGVtZW50U2hl
ZXQtPmNvbnRlbnRzKCkucGFyc2VyU2V0VXNlc1JlbVVuaXRzKCk7CisgICAgICAgIGlmICh1c2Vz
U3R5bGVCYXNlZEVkaXRhYmlsaXR5KQorICAgICAgICAgICAgbV9lbGVtZW50U2hlZXQtPmNvbnRl
bnRzKCkucGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgIH0KIAogICAg
IGlmICghZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihvbGRCYXNlVVJMLCBtX2Jhc2VV
UkwpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc2ZmIxYjcuLmQ5ZGRlYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC02MDEsNiArNjAxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNh
bGNTdHlsZShTdHlsZTo6Q2hhbmdlID0gU3R5bGU6Ok5vQ2hhbmdlKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBib29sIG5lZWRzU3R5bGVSZWNh
bGMoKSBjb25zdCB7IHJldHVybiAhaW5QYWdlQ2FjaGUoKSAmJiAobV9wZW5kaW5nU3R5bGVSZWNh
bGNTaG91bGRGb3JjZSB8fCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBtX29wdGltaXplZFN0
eWxlU2hlZXRVcGRhdGVUaW1lci5pc0FjdGl2ZSgpKTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1cGRhdGVMYXlvdXQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCA4YWUzMWU5Li43MzZhNTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uY3BwCkBAIC02MCw2ICs2MCw3IEBAIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OkRv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICwgbV91
c2VzRmlyc3RMaW5lUnVsZXMoZmFsc2UpCiAgICAgLCBtX3VzZXNGaXJzdExldHRlclJ1bGVzKGZh
bHNlKQogICAgICwgbV91c2VzUmVtVW5pdHMoZmFsc2UpCisgICAgLCBtX3VzZXNTdHlsZUJhc2Vk
RWRpdGFiaWxpdHkoZmFsc2UpCiB7CiB9CiAKQEAgLTM5MCwxNSArMzkxLDYgQEAgdm9pZCBEb2N1
bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjphbmFseXplU3R5bGVTaGVldENoYW5nZShVcGRhdGVG
bGFnIHVwZGF0ZUZsYWcKICAgICByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyA9IGZhbHNlOwogfQog
Ci1zdGF0aWMgYm9vbCBzdHlsZVNoZWV0c1VzZVJlbVVuaXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8
Q1NTU3R5bGVTaGVldD4+JiBzaGVldHMpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNoZWV0cy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoc2hlZXRzW2ldLT5jb250ZW50cygp
LnVzZXNSZW1Vbml0cygpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogc3RhdGljIHZvaWQgZmlsdGVyRW5hYmxlZE5vbmVtcHR5Q1NTU3R5
bGVTaGVldHMoVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIHJlc3VsdCwgY29uc3QgVmVj
dG9yPFJlZlB0cjxTdHlsZVNoZWV0Pj4mIHNoZWV0cykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2hlZXRzLnNpemUoKTsgKytpKSB7CkBAIC00NTcsNyArNDQ5LDEyIEBAIGJvb2wg
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBk
YXRlRmxhZyB1cGRhdGVGbGFnCiAgICAgbV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cy5zd2FwKGFj
dGl2ZUNTU1N0eWxlU2hlZXRzKTsKICAgICBtX3N0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3Qu
c3dhcChhY3RpdmVTdHlsZVNoZWV0cyk7CiAKLSAgICBtX3VzZXNSZW1Vbml0cyA9IHN0eWxlU2hl
ZXRzVXNlUmVtVW5pdHMobV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cyk7CisgICAgZm9yIChhdXRv
IHNoZWV0OiBtX2FjdGl2ZUF1dGhvclN0eWxlU2hlZXRzKSB7CisgICAgICAgIGlmIChzaGVldC0+
Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKSkKKyAgICAgICAgICAgIG1fdXNlc1JlbVVuaXRzID0g
dHJ1ZTsKKyAgICAgICAgaWYgKHNoZWV0LT5jb250ZW50cygpLnVzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHkoKSkKKyAgICAgICAgICAgIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IHRydWU7
CisgICAgfQogICAgIG1fcGVuZGluZ1VwZGF0ZVR5cGUgPSBOb1VwZGF0ZTsKIAogICAgIHJldHVy
biByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oCmluZGV4IGVlZGU3YmYuLjYwZmI3ODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaApA
QCAtMTA1LDYgKzEwNSw4IEBAIHB1YmxpYzoKICAgICBib29sIHVzZXNGaXJzdExldHRlclJ1bGVz
KCkgY29uc3QgeyByZXR1cm4gbV91c2VzRmlyc3RMZXR0ZXJSdWxlczsgfQogICAgIGJvb2wgdXNl
c1JlbVVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VzUmVtVW5pdHM7IH0KICAgICB2b2lkIHNl
dFVzZXNSZW1Vbml0KGJvb2wgYikgeyBtX3VzZXNSZW1Vbml0cyA9IGI7IH0KKyAgICBib29sIHVz
ZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSB7IHJldHVybiBtX3VzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHk7IH0KKyAgICB2b2lkIHNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoYm9vbCBiKSB7
IG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IGI7IH0KIAogICAgIHZvaWQgY29tYmluZUNT
U0ZlYXR1cmVGbGFncygpOwogICAgIHZvaWQgcmVzZXRDU1NGZWF0dXJlRmxhZ3MoKTsKQEAgLTE1
Nyw2ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VzRmlyc3RMaW5lUnVsZXM7CiAg
ICAgYm9vbCBtX3VzZXNGaXJzdExldHRlclJ1bGVzOwogICAgIGJvb2wgbV91c2VzUmVtVW5pdHM7
CisgICAgYm9vbCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHk7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKaW5kZXggZWJmNDYxOC4uMmE1M2NkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNTU1LDE1
ICs1NTUsNDkgQEAgdm9pZCBOb2RlOjppbnNwZWN0KCkKICAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5pbnNwZWN0KHRoaXMpOwogfQogCi1ib29sIE5vZGU6
Omhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVMZXZlbCBlZGl0YWJsZUxldmVsLCBVc2VyU2VsZWN0
QWxsVHJlYXRtZW50IHRyZWF0bWVudCkgY29uc3QKK3N0YXRpYyBpbmxpbmUgYm9vbCBkZXRlcm1p
bmVFZGl0YWJpbGl0eUluZGVwZW5kZW50T2ZTdHlsZShjb25zdCBOb2RlJiBub2RlLCBib29sIGlz
RWRpdGFibGUpCiB7Ci0gICAgaWYgKCFkb2N1bWVudCgpLmhhc0xpdmluZ1JlbmRlclRyZWUoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCkgJiYgZG9j
dW1lbnQoKS5mcmFtZSgpLT5wYWdlKCkgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5wYWdlKCktPmlz
RWRpdGFibGUoKSAmJiAhY29udGFpbmluZ1NoYWRvd1Jvb3QoKSkKKyAgICBpZiAoIW5vZGUuZG9j
dW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkpIHsKKyAgICAgICAgaXNFZGl0YWJsZSA9IGZh
bHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKLSAgICBpZiAoaXNQc2V1ZG9FbGVt
ZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBGcmFtZSogZnJhbWUgPSBub2RlLmRv
Y3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgUGFnZSogcGFnZSA9
IGZyYW1lLT5wYWdlKCk7CisgICAgICAgIGlmIChwYWdlLT5pc0VkaXRhYmxlKCkgJiYgIW5vZGUu
aXNJblNoYWRvd1RyZWUoKSkgeworICAgICAgICAgICAgaXNFZGl0YWJsZSA9IHRydWU7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChub2RlLmlz
UHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlzRWRpdGFibGUgPSBmYWxzZTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIE5vZGU6
OmlzRWRpdGFibGVJZ25vcmluZ1N0eWxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWRvY3VtZW50
KCkuc3R5bGVTaGVldENvbGxlY3Rpb24oKS51c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkpOwor
ICAgIGJvb2wgaXNFZGl0YWJsZSA9IGZhbHNlOworICAgIGlmIChkZXRlcm1pbmVFZGl0YWJpbGl0
eUluZGVwZW5kZW50T2ZTdHlsZSgqdGhpcywgaXNFZGl0YWJsZSkpCisgICAgICAgIHJldHVybiBp
c0VkaXRhYmxlOworCisgICAgZm9yIChjb25zdCBOb2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9k
ZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgeworICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLT5tYXRjaGVz
UmVhZFdyaXRlUHNldWRvQ2xhc3MoKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIE5vZGU6Omhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVMZXZlbCBlZGl0YWJsZUxldmVsLCBV
c2VyU2VsZWN0QWxsVHJlYXRtZW50IHRyZWF0bWVudCkgY29uc3QKK3sKKyAgICBib29sIGlzRWRp
dGFibGUgPSBmYWxzZTsKKyAgICBpZiAoZGV0ZXJtaW5lRWRpdGFiaWxpdHlJbmRlcGVuZGVudE9m
U3R5bGUoKnRoaXMsIGlzRWRpdGFibGUpKQorICAgICAgICByZXR1cm4gaXNFZGl0YWJsZTsKIAog
ICAgIC8vIElkZWFsbHkgd2UnZCBjYWxsIEFTU0VSVCghbmVlZHNTdHlsZVJlY2FsYygpKSBoZXJl
LCBidXQKICAgICAvLyBDb250YWluZXJOb2RlOjpzZXRGb2N1cygpIGNhbGxzIHNldE5lZWRzU3R5
bGVSZWNhbGMoKSwgc28gdGhlIGFzc2VydGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZGNjZTI3YS4uZjUy
YjI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCkBAIC0zNjMsNiArMzYzLDggQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBpbnNwZWN0KCk7CiAKKyAgICBib29sIGlzRWRpdGFibGVJZ25vcmlu
Z1N0eWxlKCkgY29uc3Q7CisKICAgICBib29sIGhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVUeXBl
IGVkaXRhYmxlVHlwZSA9IENvbnRlbnRJc0VkaXRhYmxlLCBVc2VyU2VsZWN0QWxsVHJlYXRtZW50
IHRyZWF0bWVudCA9IFVzZXJTZWxlY3RBbGxJc0Fsd2F5c05vbkVkaXRhYmxlKSBjb25zdAogICAg
IHsKICAgICAgICAgc3dpdGNoIChlZGl0YWJsZVR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9o
dG1sZWRpdGluZy5jcHAKaW5kZXggMjNlYzkwYi4uZTUyMjRmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTE0NiwxMCArMTQ2LDE3IEBAIGJvb2wgaXNFZGl0YWJs
ZVBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiBwLCBFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBlLCBF
VXBkYXRlU3R5CiAgICAgTm9kZSogbm9kZSA9IHAuY29udGFpbmVyTm9kZSgpOwogICAgIGlmICgh
bm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICh1cGRhdGVTdHlsZSA9PSBVcGRh
dGVTdHlsZSkKLSAgICAgICAgbm9kZS0+ZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7
Ci0gICAgZWxzZQotICAgICAgICBBU1NFUlQodXBkYXRlU3R5bGUgPT0gRG9Ob3RVcGRhdGVTdHls
ZSk7CisKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgpOworICAgIHN3
aXRjaCAodXBkYXRlU3R5bGUpIHsKKyAgICBjYXNlIFVwZGF0ZVN0eWxlOgorICAgICAgICBpZiAo
ZG9jdW1lbnQubmVlZHNTdHlsZVJlY2FsYygpICYmICFkb2N1bWVudC5zdHlsZVNoZWV0Q29sbGVj
dGlvbigpLnVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSAmJiBlZGl0YWJsZVR5cGUgPT0gQ29u
dGVudElzRWRpdGFibGUpCisgICAgICAgICAgICByZXR1cm4gbm9kZS0+aXNFZGl0YWJsZUlnbm9y
aW5nU3R5bGUoKTsKKyAgICAgICAgZG9jdW1lbnQudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIERvTm90VXBkYXRlU3R5bGU6CisgICAgICAgIGJyZWFrOwor
ICAgIH0KIAogICAgIHJldHVybiBub2RlLT5oYXNFZGl0YWJsZVN0eWxlKGVkaXRhYmxlVHlwZSk7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247595</attachid>
            <date>2015-02-28 00:25:00 -0800</date>
            <delta_ts>2015-02-28 00:27:20 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-129034-20150228002443.patch</filename>
            <type>text/plain</type>
            <size>97146</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTI3ZmRkNTM4Mzc1MDQ4
YTBjNjU3OWU1NTJmOWVhMjExZWU0N2Q5NC4uNjdjMjRiMjY3ZjJlZjQ1NDZhZjMxNGMxNDQyNzJj
Mzc1MzdlMjE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MyBAQAorMjAxNS0wMi0yOCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBpc0NvbnRlbnRFZGl0YWJs
ZSBzaG91bGRuJ3QgdHJpZ2dlciBzeW5jaHJvbm91cyBzdHlsZSByZWNhbGMgaW4gbW9zdCBjYXNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXZvaWQg
c3R5bGUgcmVjYWxjIGluc2lkZSBpc0NvbnRlbnRFZGl0YWJsZSB3aGVuIHRoZSBkb2N1bWVudCBk
b2Vzbid0IGNvbnRhaW4gLXdlYmtpdC11c2VyLW1vZGlmeSBvcgorICAgICAgICAtd2Via2l0LXVz
ZXItc2VsZWN0OiBhbGwuIEluc3RlYWQsIGNvbXB1dGUgdGhlIHZhbHVlIGZyb20gY29udGVudGVk
aXRhYmxlIGF0dHJpYnV0ZXMgaW4gYW5jZXN0b3JzLgorICAgICAgICBIb3dldmVyLCBzdGlsbCBj
b21wdXRlIHRoZSBlZGl0YWJpbGl0eSBmcm9tIHRoZSBzdHlsZSB0cmVlIHdoZW4gaXQncyB1cC10
by1kYXRlIGluIG9yZGVyIHRvIGF2b2lkCisgICAgICAgIHJlcGVhdGVkbHkgd2Fsa2luZyB1cCB0
aGUgRE9NIHRyZWUgaW4gYSBob3QgY29kZSBwYXRoIGluc2lkZSBlZGl0aW5nLgorCisgICAgICAg
IFRlc3Q6IGZhc3QvZG9tL0hUTUxFbGVtZW50L2R5bmFtaWMtZWRpdGFiaWxpdHktY2hhbmdlLmh0
bWwKKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46IE5vIG5lZWQgdG8gcGFzcyBpbiAi
dHJ1ZSIgYXMgd2UgbmV2ZXIgY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggZmFsc2UuCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkS2V5d29yZFBy
b3BlcnR5QW5kVmFsdWUpOiBDYWxscyBwYXJzZXJTZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5
IGFzIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlS2V5d29yZFZhbHVlKTogUGFzc2Vz
IGFyb3VuZCBTdHlsZVNoZWV0Q29udGVudHMqLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
Rm9udCk6IERpdHRvLgorCisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OlN0eWxlU2hlZXRDb250ZW50cyk6
IEluaXRpYWxpemVzIGFuZCBjb3BpZXMgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5LgorCisg
ICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVTaGVldENvbnRlbnRzOjpwYXJzZXJTZXRVc2VzUmVtVW5pdHMpOiBSZW1vdmVkIHRoZSBhcmd1
bWVudCBzaW5jZSBpdCB3YXMgYWx3YXlzIHRydWUuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNo
ZWV0Q29udGVudHM6OnBhcnNlclNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRDb250ZW50czo6dXNlc1N0eWxlQmFzZWRFZGl0
YWJpbGl0eSk6IEFkZGVkLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZWNhbGNTdHlsZSk6IEFkZGVkIGEgRklYTUUgYXMgd2VsbCBh
cyBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgd2UgZG9uJ3QgY2FsbAorICAgICAgICBzZXRVc2Vz
U3R5bGVCYXNlZEVkaXRhYmlsaXR5LiBTaW5jZSBOb2RlOjpjb21wdXRlRWRpdGFiaWxpdHkgdHJp
Z2dlcnMgc3R5bGUgcmVjYWxjIG9ubHkgd2hlbiB0aGUgZmxhZworICAgICAgICBpcyBzZXQgdG8g
dHJ1ZSwgaXQncyB0b28gbGF0ZSB0byB1cGRhdGUgdGhlIGZsYWcgaGVyZS4KKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKTogVXNlcyBhIG5ld2x5IGV4dHJh
Y3RlZCBuZWVkc1N0eWxlUmVjYWxjLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0
ZUJhc2VVUkwpOiBQcmVzZXJ2ZXMgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5IGFzIHdlbGwg
YXMgbV91c2VzUmVtVW5pdC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1c2VzU3R5bGVC
YXNlZEVkaXRhYmlsaXR5KTogQWRkZWQuIFJldHVybnMgdHJ1ZSB3aGVuIGlubGluZSBzdHlsZSBk
ZWNsYXJhdGlvbnMgb3IKKyAgICAgICAgYW55IGFjdGl2ZSBzdHlsZXNoZWV0IHVzZXMgLXdlYmtp
dC11c2VyLW1vZGlmeSBvciAtd2Via2l0LXVzZXItc2VsZWN0OiBhbGwuIEZsdXNoaW5nIHBlbmRp
bmcgc3R5bGVzaGVldAorICAgICAgICBjaGFuZ2VzIGhlcmUgaXMgZmluZSBiZWNhdXNlIHRoZSBh
bHRlcm5hdGl2ZSBpcyB0byB0cmlnZ2VyIGEgZnVsbCBibG93biBzdHlsZSByZWNhbGMuCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpuZWVk
c1N0eWxlUmVjYWxjKTogQWRkZWQuIEV4dHJhY3RlZCBmcm9tIHVwZGF0ZVN0eWxlSWZOZWVkZWQu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpEb2N1bWVudFN0eWxl
U2hlZXRDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnN0eWxlU2hlZXRzVXNlUmVtVW5p
dHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVj
dGlvbjo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMpOiBVcGRhdGVzIG1fdXNlc1N0eWxlQmFzZWRF
ZGl0YWJpbGl0eQorICAgICAgICBhcyB3ZWxsIGFzIG1fdXNlc1JlbVVuaXQuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6dXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
c2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSk6IEFkZGVkLgorCisgICAgICAgICogZG9tL05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUVkaXRhYmlsaXR5RnJvbUNvbXB1dGVk
U3R5bGUpOiBFeHRyYWN0ZWQgZnJvbSBjb21wdXRlRWRpdGFiaWxpdHkuCisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpjb21wdXRlRWRpdGFiaWxpdHkpOiBXaGVuIHRoZSBzdHlsZSByZWNhbGMgaXMg
cmVxdWVzdGVkIGFuZCB0aGUgcmVuZGVyIHRyZWUgaXMgZGlydHksCisgICAgICAgIGNoZWNrIGlm
IHRoZSBkb2N1bWVudCB1c2VzIGFueSBDU1MgcHJvcGVydHkgdGhhdCBjYW4gYWZmZWN0IHRoZSBl
ZGl0YWJpbGl0eSBvZiBlbGVtZW50cy4gSWYgaXQgZG9lc24ndCwKKyAgICAgICAgY29tcHV0ZSB0
aGUgZWRpdGFiaWxpdHkgZnJvbSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlcyBpbiB0aGUgYW5j
aG9ycyB2aWEgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzLgorICAgICAgICBDb250aW51ZSB0
byB1c2UgdGhlIHN0eWxlLWJhc2VkIGNvbXB1dGF0aW9uIHdoZW4gdGhlIHJlbmRlciB0cmVlIGlz
bid0IGRpcnR5IHRvIGF2b2lkIHRoZSB0cmVlIHdhbGsuCisKKyAgICAgICAgKiBodG1sL0hUTUxF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjplZGl0YWJpbGl0eUZy
b21Db250ZW50RWRpdGFibGVBdHRyKTogRXh0cmFjdGVkIGZyb20gbWF0Y2hlc1JlYWRXcml0ZVBz
ZXVkb0NsYXNzCisgICAgICAgIHRvIGJlIGNhbGxlZCBpbiBOb2RlOjpjb21wdXRlRWRpdGFiaWxp
dHkuIEFsc28gbWFkZSBpdCByZXR1cm4gRWRpdGFiaWxpdHkgaW5zdGVhZCBvZiBib29sZWFuLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6Om1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFz
cyk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorCisyMDE1LTAyLTI3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE5vZGU6Omhhc0VkaXRhYmxlU3R5
bGUgYW5kIGlzRWRpdGFibGVQb3NpdGlvbiBoYXZlIHRvbyBtYW55IG9wdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjA3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSBjb2RlIHRo
YXQgZGVhbHQgd2l0aCBhY2Nlc3NpYmlsaXR5IHRvIGh0bWxlZGl0aW5nLmNwcCBmcm9tIE5vZGUu
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcworICAgICAgICBuZXcgZWRpdGluZyBoZWxwZXIgZnVuY3Rp
b25zIGhhc0VkaXRhYmxlU3R5bGUgYW5kIGlzRWRpdGFibGVOb2RlIGZvciB0aGlzIHB1cnBvc2Uu
CisKKyAgICAgICAgQWxzbyByZW1vdmVkIFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgZnJvbSBpc0Nv
bnRlbnRFZGl0YWJsZSdzIGFyZ3VtZW50cyBpbiB0aGUgZmF2b3Igb2YgdXNpbmcKKyAgICAgICAg
bmV3bHkgZXh0cmFjdGVkIGNvbXB1dGVFZGl0YWJpbGl0eSBpbiBjYWxsIHNpdGVzIHRoYXQgc3Bl
Y2lmeSB0aGlzIG9wdGlvbiBzaW5jZSBpc0NvbnRlbnRFZGl0YWJsZQorICAgICAgICBpcyBhIHB1
YmxpYyBET00gQVBJLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSBzaG91bGQg
YmUgbm8gb2JzZXJ2YWJsZSBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmg6IFJlbW92ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIGFuIHVuZGVm
aW5lZCBmdW5jdGlvbi4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OnNob3VsZFVzZUlucHV0TWV0aG9kKTogVXNlcyBuZXdseSBhZGRlZCBj
b21wdXRlRWRpdGFiaWxpdHkuCisKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSk6IERpdHRvLiBObyBsb25nZXIgdGFrZXMg
VXNlclNlbGVjdEFsbFRyZWF0bWVudCBhcyBhbiBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmlzQ29udGVudFJpY2hseUVkaXRhYmxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpjb21wdXRlRWRpdGFiaWxpdHkpOiBSZW5hbWVkIGZyb20gaGFzRWRpdGFibGVTdHls
ZSB0byBhdm9pZCB0aGUgY29uZnVzaW9uIHdpdGgKKyAgICAgICAgYSBoZWxwZXIgZnVuY3Rpb24g
b2YgdGhlIHNhbWUgbmFtZS4gQWRkZWQgU2hvdWxkVXBkYXRlU3R5bGUgYXMgYW4gYXJndW1lbnQg
dG8gb3B0aW9uYWxseSB1cGRhdGUKKyAgICAgICAgc3R5bGUgdHJlZS4gQWxzbyByZXR1cm5zIHRy
aS1zdGF0ZSBFZGl0YWJpbGl0eSBlbnVtIGluc3RlYWQgb2YgcmV0dXJuaW5nIGEgYm9vbGVhbiBi
YXNlZCBvbgorICAgICAgICB0aGUgdmFsdWUgb2YgRWRpdGFibGVMZXZlbCBhcmd1bWVudC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzRWRpdGFibGVUb0FjY2Vzc2liaWxpdHkpOiBNb3ZlZCB0
byBodG1sZWRpdGluZy5jcHAuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjp3aWxsUmVzcG9uZFRv
TW91c2VDbGlja0V2ZW50cyk6IFVzZXMgbmV3bHkgYWRkZWQgY29tcHV0ZUVkaXRhYmlsaXR5Lgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cm9vdEVkaXRhYmxlRWxlbWVudCk6IE1vdmVkIHRvIGh0
bWxlZGl0aW5nLmNwcC4KKworICAgICAgICAqIGRvbS9Ob2RlLmg6IE5vIGxvbmdlciBpbmNsdWRl
cyBFZGl0aW5nQm91bmRhcnkuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzQ29udGVudEVk
aXRhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Omhhc0VkaXRhYmxlU3R5bGUpOiBObyBs
b25nZXIgdGFrZXMgRWRpdGFibGVUeXBlIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6aGFzUmljaGx5RWRpdGFibGVTdHlsZSk6IERpdHRvLgorCisgICAgICAgICogZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxl
Q29tbWFuZDo6cmVtb3ZlSW5saW5lU3R5bGVGcm9tRWxlbWVudCk6IFVzZXMgbmV3bHkgYWRkZWQg
aXNFZGl0YWJsZU5vZGUuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6c3Vy
cm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudCk6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KTogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXJldEJhc2U6OmludmFsaWRhdGVD
YXJldFJlY3QpOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0Fw
cGx5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9VbmFwcGx5KTogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlQ29tbWFuZDo6ZG9BcHBseSk6IERpdHRv
LgorCisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpc2libGVTZWxlY3Rpb246Omhhc0VkaXRhYmxlU3R5bGUpOiBTaW5jZSB0aGlzIGlz
IHRoZSBvbmx5IGNhbGxlciBvZiBpc0VkaXRhYmxlUG9zaXRpb24KKyAgICAgICAgd2hpY2ggc2V0
cyBEb05vdFVwZGF0ZVN0eWxlLCBkaXJlY3RseSBjYWxsIGhhc0VkaXRhYmxlU3R5bGUgb24gdGhl
IGNvbnRhaW5lciBub2RlIGluc3RlYWQuIFRoaXMgd2FzCisgICAgICAgIG5vdCBwb3NzaWJsZSBw
cmlvciB0byByMTgwNzI2IGJlY2F1c2UgaXNFZGl0YWJsZVBvc2l0aW9uIGhhZCB0byBtb3ZlIG91
dCBvZiB0YWJsZXMuCisKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVVbml0cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwcmV2aW91c0xlYWZXaXRoU2FtZUVkaXRhYmlsaXR5KTogVXNlcyBuZXds
eSBhZGRlZCBoYXNFZGl0YWJsZVN0eWxlLgorICAgICAgICAoV2ViQ29yZTo6bmV4dExlYWZXaXRo
U2FtZUVkaXRhYmlsaXR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpyb290RWRpdGFibGVP
ckRvY3VtZW50RWxlbWVudCk6IEV4dHJhY3RlZCBmcm9tIHByZXZpb3VzTGluZVBvc2l0aW9uLiBV
c2UgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBpbiBodG1sZWRpdGluZy5jcHAgaW5zdGVhZCBv
ZiBtZW1iZXIgZnVuY3Rpb25zIG9mIE5vZGUgc2luY2UgdGhleSBubyBsb25nZXIgc3VwcG9ydCBF
ZGl0YWJsZVR5cGUuCisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c0xpbmVQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpuZXh0TGluZVBvc2l0aW9uKToKKworICAgICAgICAqIGVkaXRpbmcv
aHRtbGVkaXRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGlnaGVzdEVkaXRhYmxlUm9vdCk6
IFVzZXMgbmV3bHkgYWRkZWQgaGFzRWRpdGFibGVTdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6Omlz
RWRpdGFibGVUb0FjY2Vzc2liaWxpdHkpOiBNb3ZlZCBmcm9tIE5vZGUuCisgICAgICAgIChXZWJD
b3JlOjpjb21wdXRlRWRpdGFiaWxpdHkpOiBFeHRyYWN0ZWQgZnJvbSBpc0VkaXRhYmxlUG9zaXRp
b24uCisgICAgICAgIChXZWJDb3JlOjpoYXNFZGl0YWJsZVN0eWxlKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjppc0VkaXRhYmxlTm9kZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNF
ZGl0YWJsZVBvc2l0aW9uKTogTm93IGNhbGxzIGNvbXB1dGVFZGl0YWJpbGl0eS4KKyAgICAgICAg
KFdlYkNvcmU6OmlzUmljaGx5RWRpdGFibGVQb3NpdGlvbik6IE5vIGxvbmdlciB0YWtlcyBFZGl0
YWJsZVR5cGUgc2luY2UgdGhhdCB2YXJpYW50IHdhcyBuZXZlciB1c2VkLgorICAgICAgICAoV2Vi
Q29yZTo6ZWRpdGFibGVSb290Rm9yUG9zaXRpb24pOiBNb3ZlZCB0aGUgY29kZSBmcm9tIE5vZGU6
OnJvb3RFZGl0YWJsZUVsZW1lbnQuCisKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmg6
CisKIDIwMTUtMDItMjYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgaU9TIGJ1aWxkIGZpeCBhZnRlciByMTgwNzE3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBmODNlYTdkNGE4N2VmY2ZkMWJmMWUwZjdi
YjMwMGJkNDlhNDNhYTQwLi5iZmE5Mjc3MjY1NDYzOTBjNWU0ZDlmZDc0YzIwYzkyMjU4ZTM5OGM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAt
MTQ2LDcgKzE0Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUFYSUQoQWNjZXNzaWJpbGl0
eU9iamVjdCopOwogICAgIGJvb2wgaXNJRGluVXNlKEFYSUQgaWQpIGNvbnN0IHsgcmV0dXJuIG1f
aWRzSW5Vc2UuY29udGFpbnMoaWQpOyB9CiAKLSAgICBFbGVtZW50KiByb290QVhFZGl0YWJsZUVs
ZW1lbnQoTm9kZSopOwogICAgIGNvbnN0IEVsZW1lbnQqIHJvb3RBWEVkaXRhYmxlRWxlbWVudChj
b25zdCBOb2RlKik7CiAgICAgYm9vbCBub2RlSXNUZXh0Q29udHJvbChjb25zdCBOb2RlKik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4IGVmZGIyYmI4NDg4MzNiYmM2NDY0ZGY1
ZDBmOGE4YTljM2YyNTAyYzAuLjE5MThmYzk5ODViMTRiNmQ4OTE3YjZkNjJjNjY3OThkYTAyZDAy
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTcwMCw3ICsxNzAwLDcgQEAg
dW5hcnlfdGVybToKICAgICAgICQkLmZWYWx1ZSA9ICQxOwogICAgICAgJCQudW5pdCA9IENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUkVNUzsKICAgICAgIGlmIChwYXJzZXItPm1fc3R5bGVTaGVldCkK
LSAgICAgICAgICBwYXJzZXItPm1fc3R5bGVTaGVldC0+cGFyc2VyU2V0VXNlc1JlbVVuaXRzKHRy
dWUpOworICAgICAgICAgIHBhcnNlci0+bV9zdHlsZVNoZWV0LT5wYXJzZXJTZXRVc2VzUmVtVW5p
dHMoKTsKICAgfQogICB8IENIUyB7ICQkLmlkID0gQ1NTVmFsdWVJbnZhbGlkOyAkJC5mVmFsdWUg
PSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ0hTOyB9CiAgIHwgVlcgeyAk
JC5pZCA9IENTU1ZhbHVlSW52YWxpZDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1ZXOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDE0NmUx
MDU1YTI0NGVhYTBlOTU3ZDM5OWEzOTBjMmE2OWY1NTlhMDUuLjUwNmEyNGRkMDFjZjY3NmRhMDQ2
OTBlYWQyMmRmYWQ2OWE0NTJlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02NDAs
NyArNjQwLDcgQEAgc3RhdGljIGJvb2wgcGFyc2VTaW1wbGVMZW5ndGhWYWx1ZShNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzKiBkZWNsYXJhdGlvbiwgQ1NTUHJvcGUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludCB2YWx1ZUlELCBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBwYXJzZXJDb250ZXh0KQorc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVy
dHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludCB2YWx1ZUlELCBjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiBwYXJzZXJDb250ZXh0LCBTdHlsZVNoZWV0Q29udGVudHMqIHN0eWxl
U2hlZXRDb250ZW50cykKIHsKICAgICBpZiAoIXZhbHVlSUQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwMTUsMTIgKzEwMTUsMjAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3
b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRVc2VyTW9kaWZ5OiAvLyByZWFkLW9ubHkgfCByZWFkLXdyaXRlCi0gICAgICAgIGlmICh2
YWx1ZUlEID09IENTU1ZhbHVlUmVhZE9ubHkgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJlYWRXcml0
ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seSkKKyAgICAgICAg
aWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVSZWFkT25seSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVh
ZFdyaXRlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KSB7Cisg
ICAgICAgICAgICBpZiAoc3R5bGVTaGVldENvbnRlbnRzKQorICAgICAgICAgICAgICAgIHN0eWxl
U2hlZXRDb250ZW50cy0+cGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3Q6IC8vIGF1dG8gfCBub25lIHwgdGV4dCB8IGFs
bAotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZU5vbmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVRleHQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZUFsbCkKKyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVOb25lIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVUZXh0KQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlQWxsKSB7CisgICAgICAg
ICAgICBpZiAoc3R5bGVTaGVldENvbnRlbnRzKQorICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRD
b250ZW50cy0+cGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOgogICAgICAgICBpZiAodmFsdWVJRCA+PSBDU1NWYWx1
ZUhvcml6b250YWxUYiAmJiB2YWx1ZUlEIDw9IENTU1ZhbHVlSG9yaXpvbnRhbEJ0KQpAQCAtMTE3
Niw3ICsxMTg0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzS2V5d29yZFByb3BlcnR5SUQoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgcGFyc2VLZXl3
b3JkVmFsdWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgaW1wb3J0YW50LCBjb25z
dCBDU1NQYXJzZXJDb250ZXh0JiBwYXJzZXJDb250ZXh0KQorc3RhdGljIGJvb2wgcGFyc2VLZXl3
b3JkVmFsdWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24sIENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgaW1wb3J0YW50LCBjb25z
dCBDU1NQYXJzZXJDb250ZXh0JiBwYXJzZXJDb250ZXh0LCBTdHlsZVNoZWV0Q29udGVudHMqIHN0
eWxlU2hlZXRDb250ZW50cykKIHsKICAgICBBU1NFUlQoIXN0cmluZy5pc0VtcHR5KCkpOwogCkBA
IC0xMjAzLDcgKzEyMTEsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZUtleXdvcmRWYWx1ZShNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzKiBkZWNsYXJhdGlvbiwgQ1NTUHJvcGVydHlJRAogICAgICAgICB2YWx1
ZSA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUluaGVyaXRlZFZhbHVlKCk7CiAgICAgZWxzZSBpZiAo
dmFsdWVJRCA9PSBDU1NWYWx1ZUluaXRpYWwpCiAgICAgICAgIHZhbHVlID0gY3NzVmFsdWVQb29s
KCkuY3JlYXRlRXhwbGljaXRJbml0aWFsVmFsdWUoKTsKLSAgICBlbHNlIGlmIChpc1ZhbGlkS2V5
d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcGVydHlJZCwgdmFsdWVJRCwgcGFyc2VyQ29udGV4dCkp
CisgICAgZWxzZSBpZiAoaXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKHByb3BlcnR5SWQs
IHZhbHVlSUQsIHBhcnNlckNvbnRleHQsIHN0eWxlU2hlZXRDb250ZW50cykpCiAgICAgICAgIHZh
bHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlSUQpOwogICAg
IGVsc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMwOCw3ICsxMzE2LDcgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFyYXRpb24s
IENTU1Byb3BlcnR5SUQgcHIKICAgICAgICAgY29udGV4dC5tb2RlID0gY3NzUGFyc2VyTW9kZTsK
ICAgICB9CiAKLSAgICBpZiAocGFyc2VLZXl3b3JkVmFsdWUoZGVjbGFyYXRpb24sIHByb3BlcnR5
SUQsIHN0cmluZywgaW1wb3J0YW50LCBjb250ZXh0KSkKKyAgICBpZiAocGFyc2VLZXl3b3JkVmFs
dWUoZGVjbGFyYXRpb24sIHByb3BlcnR5SUQsIHN0cmluZywgaW1wb3J0YW50LCBjb250ZXh0LCBj
b250ZXh0U3R5bGVTaGVldCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChwYXJzZVRy
YW5zbGF0ZVRyYW5zZm9ybVZhbHVlKGRlY2xhcmF0aW9uLCBwcm9wZXJ0eUlELCBzdHJpbmcsIGlt
cG9ydGFudCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTg4Niw3ICsxODk0LDcgQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KQogICAgIH0KIAogICAgIGlmIChpc0tleXdvcmRQcm9wZXJ0eUlEKHByb3BJZCkpIHsKLSAg
ICAgICAgaWYgKCFpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcElkLCBpZCwgbV9j
b250ZXh0KSkKKyAgICAgICAgaWYgKCFpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJv
cElkLCBpZCwgbV9jb250ZXh0LCBtX3N0eWxlU2hlZXQpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICBpZiAobV92YWx1ZUxpc3QtPm5leHQoKSAmJiAhaW5TaG9ydGhhbmQoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTYyOTcsNyArNjMwNSw3IEBAIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZUZvbnQoYm9vbCBpbXBvcnRhbnQpCiAgICAgYm9vbCBmb250V2VpZ2h0UGFy
c2VkID0gZmFsc2U7CiAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlOwogICAgIHdoaWxlICgodmFs
dWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSkgewotICAgICAgICBpZiAoIWZvbnRTdHlsZVBh
cnNlZCAmJiBpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlGb250U3R5
bGUsIHZhbHVlLT5pZCwgbV9jb250ZXh0KSkgeworICAgICAgICBpZiAoIWZvbnRTdHlsZVBhcnNl
ZCAmJiBpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlGb250U3R5bGUs
IHZhbHVlLT5pZCwgbV9jb250ZXh0LCBtX3N0eWxlU2hlZXQpKSB7CiAgICAgICAgICAgICBhZGRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRp
ZmllclZhbHVlKHZhbHVlLT5pZCksIGltcG9ydGFudCk7CiAgICAgICAgICAgICBmb250U3R5bGVQ
YXJzZWQgPSB0cnVlOwogICAgICAgICB9IGVsc2UgaWYgKCFmb250VmFyaWFudFBhcnNlZCAmJiAo
dmFsdWUtPmlkID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZVNtYWxs
Q2FwcykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXgg
ZWFmYmQ5MjBkNjgyOTJmODAzMzY5YTk3NDdjNDMwMTZmZWFmZDU5Mi4uNzQxY2I2NGFiYjQ4M2E3
MjFlZGIwMTVjODZhMGNmMTBkYmYyOGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hl
ZXRDb250ZW50cy5jcHAKQEAgLTY0LDYgKzY0LDcgQEAgU3R5bGVTaGVldENvbnRlbnRzOjpTdHls
ZVNoZWV0Q29udGVudHMoU3R5bGVSdWxlSW1wb3J0KiBvd25lclJ1bGUsIGNvbnN0IFN0cmluZyYK
ICAgICAsIG1faGFzU3ludGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyKHRydWUpCiAgICAgLCBtX2Rp
ZExvYWRFcnJvck9jY3VyKGZhbHNlKQogICAgICwgbV91c2VzUmVtVW5pdHMoZmFsc2UpCisgICAg
LCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoZmFsc2UpCiAgICAgLCBtX2lzTXV0YWJsZShm
YWxzZSkKICAgICAsIG1faXNJbk1lbW9yeUNhY2hlKGZhbHNlKQogICAgICwgbV9wYXJzZXJDb250
ZXh0KGNvbnRleHQpCkBAIC04Myw2ICs4NCw3IEBAIFN0eWxlU2hlZXRDb250ZW50czo6U3R5bGVT
aGVldENvbnRlbnRzKGNvbnN0IFN0eWxlU2hlZXRDb250ZW50cyYgbykKICAgICAsIG1faGFzU3lu
dGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyKG8ubV9oYXNTeW50YWN0aWNhbGx5VmFsaWRDU1NIZWFk
ZXIpCiAgICAgLCBtX2RpZExvYWRFcnJvck9jY3VyKGZhbHNlKQogICAgICwgbV91c2VzUmVtVW5p
dHMoby5tX3VzZXNSZW1Vbml0cykKKyAgICAsIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eShv
Lm1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSkKICAgICAsIG1faXNNdXRhYmxlKGZhbHNlKQog
ICAgICwgbV9pc0luTWVtb3J5Q2FjaGUoZmFsc2UpCiAgICAgLCBtX3BhcnNlckNvbnRleHQoby5t
X3BhcnNlckNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVl
dENvbnRlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKaW5k
ZXggNjJhOTNkNTAzMmM3ODk5MDljMGUwMTMyMzNhMDVmODI1MWMxMGY3Mi4uZTE0YjA3YTNiMzMy
MjYzMDgxMzdkMzg3NjU4YTdlNTFkMWIxOTAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNo
ZWV0Q29udGVudHMuaApAQCAtOTEsNyArOTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZXJB
ZGROYW1lc3BhY2UoY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdXJpKTsKICAgICB2b2lkIHBhcnNlckFwcGVuZFJ1bGUoUGFzc1JlZlB0cjxTdHlsZVJ1bGVC
YXNlPik7CiAgICAgdm9pZCBwYXJzZXJTZXRFbmNvZGluZ0Zyb21DaGFyc2V0UnVsZShjb25zdCBT
dHJpbmcmIGVuY29kaW5nKTsgCi0gICAgdm9pZCBwYXJzZXJTZXRVc2VzUmVtVW5pdHMoYm9vbCBi
KSB7IG1fdXNlc1JlbVVuaXRzID0gYjsgfQorICAgIHZvaWQgcGFyc2VyU2V0VXNlc1JlbVVuaXRz
KCkgeyBtX3VzZXNSZW1Vbml0cyA9IHRydWU7IH0KKyAgICB2b2lkIHBhcnNlclNldFVzZXNTdHls
ZUJhc2VkRWRpdGFiaWxpdHkoKSB7IG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IHRydWU7
IH0KIAogICAgIHZvaWQgY2xlYXJSdWxlcygpOwogCkBAIC0xMTcsNiArMTE4LDcgQEAgcHVibGlj
OgogICAgIFN0eWxlUnVsZUJhc2UqIHJ1bGVBdCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAKICAg
ICBib29sIHVzZXNSZW1Vbml0cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1JlbVVuaXRzOyB9Cisg
ICAgYm9vbCB1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV91c2Vz
U3R5bGVCYXNlZEVkaXRhYmlsaXR5OyB9CiAKICAgICB1bnNpZ25lZCBlc3RpbWF0ZWRTaXplSW5C
eXRlcygpIGNvbnN0OwogICAgIApAQCAtMTU5LDYgKzE2MSw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2hhc1N5bnRhY3RpY2FsbHlWYWxpZENTU0hlYWRlciA6IDE7CiAgICAgYm9vbCBtX2RpZExv
YWRFcnJvck9jY3VyIDogMTsKICAgICBib29sIG1fdXNlc1JlbVVuaXRzIDogMTsKKyAgICBib29s
IG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA6IDE7CiAgICAgYm9vbCBtX2lzTXV0YWJsZSA6
IDE7CiAgICAgYm9vbCBtX2lzSW5NZW1vcnlDYWNoZSA6IDE7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCAyODgxYWNmODZlNDVhODAxZmQwYmNlZGRjMWE2YmNjMDdjZmJmYzJjLi5i
YWRlMjQ5NTZjZDMzNTM4ZWYxMGMyNzA3NTJlYjcyNTI0NzNiYjUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTE3NDcsOCArMTc0NywxMSBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHls
ZShTdHlsZTo6Q2hhbmdlIGNoYW5nZSkKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNhbGN1bGF0ZVN0
eWxlKCp0aGlzKTsKIAorICAgIC8vIEZJWE1FOiBXZSBuZXZlciByZXNldCB0aGlzIGZsYWdzLgog
ICAgIGlmIChtX2VsZW1lbnRTaGVldCAmJiBtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2Vz
UmVtVW5pdHMoKSkKICAgICAgICAgbV9zdHlsZVNoZWV0Q29sbGVjdGlvbi5zZXRVc2VzUmVtVW5p
dCh0cnVlKTsKKyAgICAvLyBXZSBkb24ndCBjYWxsIHNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxp
dHkgaGVyZSBiZWNhdXNlIHRoZSB3aG9sZSBwb2ludCBvZiB0aGUgZmxhZyBpcyB0byBhdm9pZCBz
dHlsZSByZWNhbGMuCisgICAgLy8gaS5lLiB1cGRhdGluZyB0aGUgZmxhZyBoZXJlIHdvdWxkIGJl
IHRvbyBsYXRlLgogCiAgICAgbV9pblN0eWxlUmVjYWxjID0gdHJ1ZTsKICAgICB7CkBAIC0xODA4
LDcgKzE4MTEsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKCkKICAgICBp
ZiAobV9vcHRpbWl6ZWRTdHlsZVNoZWV0VXBkYXRlVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAg
c3R5bGVSZXNvbHZlckNoYW5nZWQoUmVjYWxjU3R5bGVJZk5lZWRlZCk7CiAKLSAgICBpZiAoKCFt
X3BlbmRpbmdTdHlsZVJlY2FsY1Nob3VsZEZvcmNlICYmICFjaGlsZE5lZWRzU3R5bGVSZWNhbGMo
KSkgfHwgaW5QYWdlQ2FjaGUoKSkKKyAgICBpZiAoIW5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgcmVjYWxjU3R5bGUoU3R5bGU6Ok5vQ2hhbmdlKTsKQEAgLTI2ODMs
OSArMjY4NiwxMyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVCYXNlVVJMKCkKICAgICAgICAgLy8g
RWxlbWVudCBzaGVldCBpcyBzaWxseS4gSXQgbmV2ZXIgY29udGFpbnMgYW55dGhpbmcuCiAgICAg
ICAgIEFTU0VSVCghbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRzKCkucnVsZUNvdW50KCkpOwogICAg
ICAgICBib29sIHVzZXNSZW1Vbml0cyA9IG1fZWxlbWVudFNoZWV0LT5jb250ZW50cygpLnVzZXNS
ZW1Vbml0cygpOworICAgICAgICBib29sIHVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkgPSBtX2Vs
ZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCk7CiAgICAg
ICAgIG1fZWxlbWVudFNoZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlSW5saW5lKCp0aGlzLCBt
X2Jhc2VVUkwpOwogICAgICAgICAvLyBGSVhNRTogU28gd2UgYXJlIG5vdCByZWFsbHkgdGhlIHBh
cnNlci4gVGhlIHJpZ2h0IGZpeCBpcyB0byBlbGltaW5hdGUgdGhlIGVsZW1lbnQgc2hlZXQgY29t
cGxldGVseS4KLSAgICAgICAgbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRzKCkucGFyc2VyU2V0VXNl
c1JlbVVuaXRzKHVzZXNSZW1Vbml0cyk7CisgICAgICAgIGlmICh1c2VzUmVtVW5pdHMpCisgICAg
ICAgICAgICBtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS5wYXJzZXJTZXRVc2VzUmVtVW5pdHMo
KTsKKyAgICAgICAgaWYgKHVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkpCisgICAgICAgICAgICBt
X2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS5wYXJzZXJTZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmls
aXR5KCk7CiAgICAgfQogCiAgICAgaWYgKCFlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVy
KG9sZEJhc2VVUkwsIG1fYmFzZVVSTCkpIHsKQEAgLTI4NTIsNiArMjg1OSwxOSBAQCBDU1NTdHls
ZVNoZWV0JiBEb2N1bWVudDo6ZWxlbWVudFNoZWV0KCkKICAgICByZXR1cm4gKm1fZWxlbWVudFNo
ZWV0OwogfQogCitib29sIERvY3VtZW50Ojp1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkgY29u
c3QKK3sKKyAgICBpZiAobV9lbGVtZW50U2hlZXQgJiYgbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRz
KCkudXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIEFTU0VSVCghbV9yZW5kZXJWaWV3IHx8ICFtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLmlz
UGFpbnRpbmcoKSk7CisgICAgQVNTRVJUKCFtX2luU3R5bGVSZWNhbGMpOworCisgICAgYXV0byYg
Y29sbGVjdGlvbiA9IGRvY3VtZW50KCkuc3R5bGVTaGVldENvbGxlY3Rpb24oKTsKKyAgICBjb2xs
ZWN0aW9uLmZsdXNoUGVuZGluZ1VwZGF0ZXMoKTsKKyAgICByZXR1cm4gY29sbGVjdGlvbi51c2Vz
U3R5bGVCYXNlZEVkaXRhYmlsaXR5KCk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnByb2Nlc3NIdHRw
RXF1aXYoY29uc3QgU3RyaW5nJiBlcXVpdiwgY29uc3QgU3RyaW5nJiBjb250ZW50KQogewogICAg
IEFTU0VSVCghZXF1aXYuaXNOdWxsKCkgJiYgIWNvbnRlbnQuaXNOdWxsKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAppbmRleCA3NmZiMWI3OWNjZWJjNDY4NTEzYWM1NmViMGI0MzgwZmY5ZjNkMGUzLi4x
NTQ0NGE2ZTE5ZWIyN2MxYTZhMjM3ZGFiOTgyMmNlN2Q3YzY4OWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaApAQCAtNjAxLDYgKzYwMSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVjYWxjU3R5bGUo
U3R5bGU6OkNoYW5nZSA9IFN0eWxlOjpOb0NoYW5nZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB1cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgYm9vbCBuZWVkc1N0eWxlUmVjYWxjKCkgY29u
c3QgeyByZXR1cm4gIWluUGFnZUNhY2hlKCkgJiYgKG1fcGVuZGluZ1N0eWxlUmVjYWxjU2hvdWxk
Rm9yY2UgfHwgY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgbV9vcHRpbWl6ZWRTdHlsZVNoZWV0
VXBkYXRlVGltZXIuaXNBY3RpdmUoKSk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBk
YXRlTGF5b3V0KCk7CiAgICAgCkBAIC02OTMsNiArNjk0LDcgQEAgcHVibGljOgogICAgIEZyYW1l
KiBmaW5kVW5zYWZlUGFyZW50U2Nyb2xsUHJvcGFnYXRpb25Cb3VuZGFyeSgpOwogCiAgICAgQ1NT
U3R5bGVTaGVldCYgZWxlbWVudFNoZWV0KCk7CisgICAgYm9vbCB1c2VzU3R5bGVCYXNlZEVkaXRh
YmlsaXR5KCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBSZWY8RG9jdW1lbnRQYXJzZXI+IGNy
ZWF0ZVBhcnNlcigpOwogICAgIERvY3VtZW50UGFyc2VyKiBwYXJzZXIoKSBjb25zdCB7IHJldHVy
biBtX3BhcnNlci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCmluZGV4IDhhZTMxZTk2MzE0ZTJiOTg5NzgzYzdmZmJh
NjVmZjk5OTIzNDNlZGIuLjBmY2I4MWI2ZTk5MDEwMWZjMGZkZmZkNTM3ZjQ4OGZiYzgwNWNkMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVj
dGlvbi5jcHAKQEAgLTYwLDYgKzYwLDcgQEAgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgLCBt
X3VzZXNGaXJzdExpbmVSdWxlcyhmYWxzZSkKICAgICAsIG1fdXNlc0ZpcnN0TGV0dGVyUnVsZXMo
ZmFsc2UpCiAgICAgLCBtX3VzZXNSZW1Vbml0cyhmYWxzZSkKKyAgICAsIG1fdXNlc1N0eWxlQmFz
ZWRFZGl0YWJpbGl0eShmYWxzZSkKIHsKIH0KIApAQCAtMzkwLDE1ICszOTEsNiBAQCB2b2lkIERv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmFuYWx5emVTdHlsZVNoZWV0Q2hhbmdlKFVwZGF0
ZUZsYWcgdXBkYXRlRmxhZwogICAgIHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjID0gZmFsc2U7CiB9
CiAKLXN0YXRpYyBib29sIHN0eWxlU2hlZXRzVXNlUmVtVW5pdHMoY29uc3QgVmVjdG9yPFJlZlB0
cjxDU1NTdHlsZVNoZWV0Pj4mIHNoZWV0cykKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2hlZXRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChzaGVldHNbaV0tPmNvbnRlbnRz
KCkudXNlc1JlbVVuaXRzKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCiBzdGF0aWMgdm9pZCBmaWx0ZXJFbmFibGVkTm9uZW1wdHlDU1NT
dHlsZVNoZWV0cyhWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgcmVzdWx0LCBjb25zdCBW
ZWN0b3I8UmVmUHRyPFN0eWxlU2hlZXQ+PiYgc2hlZXRzKQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBzaGVldHMuc2l6ZSgpOyArK2kpIHsKQEAgLTQ1Nyw3ICs0NDksMTIgQEAgYm9v
bCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjp1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cyhV
cGRhdGVGbGFnIHVwZGF0ZUZsYWcKICAgICBtX2FjdGl2ZUF1dGhvclN0eWxlU2hlZXRzLnN3YXAo
YWN0aXZlQ1NTU3R5bGVTaGVldHMpOwogICAgIG1fc3R5bGVTaGVldHNGb3JTdHlsZVNoZWV0TGlz
dC5zd2FwKGFjdGl2ZVN0eWxlU2hlZXRzKTsKIAotICAgIG1fdXNlc1JlbVVuaXRzID0gc3R5bGVT
aGVldHNVc2VSZW1Vbml0cyhtX2FjdGl2ZUF1dGhvclN0eWxlU2hlZXRzKTsKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIHNoZWV0IDogbV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cykgeworICAgICAgICBp
ZiAoc2hlZXQtPmNvbnRlbnRzKCkudXNlc1JlbVVuaXRzKCkpCisgICAgICAgICAgICBtX3VzZXNS
ZW1Vbml0cyA9IHRydWU7CisgICAgICAgIGlmIChzaGVldC0+Y29udGVudHMoKS51c2VzU3R5bGVC
YXNlZEVkaXRhYmlsaXR5KCkpCisgICAgICAgICAgICBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxp
dHkgPSB0cnVlOworICAgIH0KICAgICBtX3BlbmRpbmdVcGRhdGVUeXBlID0gTm9VcGRhdGU7CiAK
ICAgICByZXR1cm4gcmVxdWlyZXNGdWxsU3R5bGVSZWNhbGM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaAppbmRleCBlZWRlN2JmNDI1MTRk
YmVkOWE0MjBhNGRmODZkNjM2NTIyNDViNjI4Li42MGZiNzgzYTc3NTUzMDc0ZjUxZjFmYzVmYjk5
MTM3ZDgxZTAwMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHls
ZVNoZWV0Q29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxl
U2hlZXRDb2xsZWN0aW9uLmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCB1
c2VzRmlyc3RMZXR0ZXJSdWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc0ZpcnN0TGV0dGVyUnVs
ZXM7IH0KICAgICBib29sIHVzZXNSZW1Vbml0cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1JlbVVu
aXRzOyB9CiAgICAgdm9pZCBzZXRVc2VzUmVtVW5pdChib29sIGIpIHsgbV91c2VzUmVtVW5pdHMg
PSBiOyB9CisgICAgYm9vbCB1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkgeyByZXR1cm4gbV91
c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5OyB9CisgICAgdm9pZCBzZXRVc2VzU3R5bGVCYXNlZEVk
aXRhYmlsaXR5KGJvb2wgYikgeyBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkgPSBiOyB9CiAK
ICAgICB2b2lkIGNvbWJpbmVDU1NGZWF0dXJlRmxhZ3MoKTsKICAgICB2b2lkIHJlc2V0Q1NTRmVh
dHVyZUZsYWdzKCk7CkBAIC0xNTcsNiArMTU5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdXNl
c0ZpcnN0TGluZVJ1bGVzOwogICAgIGJvb2wgbV91c2VzRmlyc3RMZXR0ZXJSdWxlczsKICAgICBi
b29sIG1fdXNlc1JlbVVuaXRzOworICAgIGJvb2wgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGQwOTMyMjIwYzEzMWJjODdhZDg4
YWY5ZmJhYTIxZDdjZDAxNWEzODAuLjdkZmVjYmQ1ZTVlYTYyYzQwN2JiNWQ4ZDE3YTI1MzE2ZmEx
YjM1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBib29sIEVs
ZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogCiBib29sIEVsZW1lbnQ6OnNob3VsZFVz
ZUlucHV0TWV0aG9kKCkKIHsKLSAgICByZXR1cm4gaXNDb250ZW50RWRpdGFibGUoVXNlclNlbGVj
dEFsbElzQWx3YXlzTm9uRWRpdGFibGUpOworICAgIHJldHVybiBjb21wdXRlRWRpdGFiaWxpdHko
VXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUsIFNob3VsZFVwZGF0ZVN0eWxlOjpVcGRh
dGUpICE9IEVkaXRhYmlsaXR5OjpSZWFkT25seTsKIH0KIAogYm9vbCBFbGVtZW50OjpkaXNwYXRj
aE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgaW50IGRldGFpbCwgRWxlbWVudCogcmVsYXRlZFRh
cmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBlYmY0NjE4N2ZiN2ZhZDQ4YWI4ODQ4ZTlhYjA0MDQ1
NGY4Yzk1MDgxLi4zNTcyNDg3NWI3ZDE4MjBkOGY2YTZmYzFlMzA4NGE5YTI1NzgyZjIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5j
bHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCiAjaW5jbHVkZSAiVGVtcGxhdGVDb250ZW50RG9j
dW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRvdWNo
RXZlbnQuaCIKQEAgLTUzNywxNiArNTM4LDE0IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTm9kZTo6
bmFtZXNwYWNlVVJJKCkgY29uc3QKICAgICByZXR1cm4gbnVsbEF0b207CiB9CiAKLWJvb2wgTm9k
ZTo6aXNDb250ZW50RWRpdGFibGUoVXNlclNlbGVjdEFsbFRyZWF0bWVudCB0cmVhdG1lbnQpCiti
b29sIE5vZGU6OmlzQ29udGVudEVkaXRhYmxlKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZVN0
eWxlSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gaGFzRWRpdGFibGVTdHlsZShFZGl0YWJsZSwgdHJl
YXRtZW50KTsKKyAgICByZXR1cm4gY29tcHV0ZUVkaXRhYmlsaXR5KFVzZXJTZWxlY3RBbGxEb2Vz
Tm90QWZmZWN0RWRpdGFiaWxpdHksIFNob3VsZFVwZGF0ZVN0eWxlOjpVcGRhdGUpICE9IEVkaXRh
YmlsaXR5OjpSZWFkT25seTsKIH0KIAogYm9vbCBOb2RlOjppc0NvbnRlbnRSaWNobHlFZGl0YWJs
ZSgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7Ci0gICAgcmV0dXJu
IGhhc0VkaXRhYmxlU3R5bGUoUmljaGx5RWRpdGFibGUsIFVzZXJTZWxlY3RBbGxJc0Fsd2F5c05v
bkVkaXRhYmxlKTsKKyAgICByZXR1cm4gY29tcHV0ZUVkaXRhYmlsaXR5KFVzZXJTZWxlY3RBbGxJ
c0Fsd2F5c05vbkVkaXRhYmxlLCBTaG91bGRVcGRhdGVTdHlsZTo6VXBkYXRlKSA9PSBFZGl0YWJp
bGl0eTo6Q2FuRWRpdFJpY2hseTsKIH0KIAogdm9pZCBOb2RlOjppbnNwZWN0KCkKQEAgLTU1NSwy
MSArNTU0LDEzIEBAIHZvaWQgTm9kZTo6aW5zcGVjdCgpCiAgICAgICAgIGRvY3VtZW50KCkucGFn
ZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuaW5zcGVjdCh0aGlzKTsKIH0KIAotYm9vbCBOb2Rl
OjpoYXNFZGl0YWJsZVN0eWxlKEVkaXRhYmxlTGV2ZWwgZWRpdGFibGVMZXZlbCwgVXNlclNlbGVj
dEFsbFRyZWF0bWVudCB0cmVhdG1lbnQpIGNvbnN0CitzdGF0aWMgTm9kZTo6RWRpdGFiaWxpdHkg
Y29tcHV0ZUVkaXRhYmlsaXR5RnJvbUNvbXB1dGVkU3R5bGUoY29uc3QgTm9kZSYgc3RhcnROb2Rl
LCBOb2RlOjpVc2VyU2VsZWN0QWxsVHJlYXRtZW50IHRyZWF0bWVudCkKIHsKLSAgICBpZiAoIWRv
Y3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnBhZ2UoKSAm
JiBkb2N1bWVudCgpLmZyYW1lKCktPnBhZ2UoKS0+aXNFZGl0YWJsZSgpICYmICFjb250YWluaW5n
U2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChpc1BzZXVkb0Vs
ZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgLy8gSWRlYWxseSB3ZSdkIGNh
bGwgQVNTRVJUKCFuZWVkc1N0eWxlUmVjYWxjKCkpIGhlcmUsIGJ1dAogICAgIC8vIENvbnRhaW5l
ck5vZGU6OnNldEZvY3VzKCkgY2FsbHMgc2V0TmVlZHNTdHlsZVJlY2FsYygpLCBzbyB0aGUgYXNz
ZXJ0aW9uCiAgICAgLy8gd291bGQgZmlyZSBpbiB0aGUgbWlkZGxlIG9mIERvY3VtZW50OjpzZXRG
b2N1c2VkRWxlbWVudCgpLgogCi0gICAgZm9yIChjb25zdCBOb2RlKiBub2RlID0gdGhpczsgbm9k
ZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgeworICAgIGZvciAoY29uc3QgTm9kZSogbm9k
ZSA9ICZzdGFydE5vZGU7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKICAgICAg
ICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbm9kZS0+aXNEb2N1bWVudE5vZGUoKSA/IG5vZGUtPnJl
bmRlclN0eWxlKCkgOiBjb25zdF9jYXN0PE5vZGUqPihub2RlKS0+Y29tcHV0ZWRTdHlsZSgpOwog
ICAgICAgICBpZiAoIXN0eWxlKQogICAgICAgICAgICAgY29udGludWU7CkBAIC01NzgsNDEgKzU2
OSwzOSBAQCBib29sIE5vZGU6Omhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVMZXZlbCBlZGl0YWJs
ZUxldmVsLCBVc2VyU2VsZWN0QWxsVHJlYXRtZW50CiAjaWYgRU5BQkxFKFVTRVJTRUxFQ1RfQUxM
KQogICAgICAgICAvLyBFbGVtZW50cyB3aXRoIHVzZXItc2VsZWN0OiBhbGwgc3R5bGUgYXJlIGNv
bnNpZGVyZWQgYXRvbWljCiAgICAgICAgIC8vIHRoZXJlZm9yZSBub24gZWRpdGFibGUuCi0gICAg
ICAgIGlmICh0cmVhdG1lbnQgPT0gVXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUgJiYg
c3R5bGUtPnVzZXJTZWxlY3QoKSA9PSBTRUxFQ1RfQUxMKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBpZiAodHJlYXRtZW50ID09IE5vZGU6OlVzZXJTZWxlY3RBbGxJc0Fsd2F5
c05vbkVkaXRhYmxlICYmIHN0eWxlLT51c2VyU2VsZWN0KCkgPT0gU0VMRUNUX0FMTCkKKyAgICAg
ICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiAjZWxzZQogICAgICAg
ICBVTlVTRURfUEFSQU0odHJlYXRtZW50KTsKICNlbmRpZgogICAgICAgICBzd2l0Y2ggKHN0eWxl
LT51c2VyTW9kaWZ5KCkpIHsKICAgICAgICAgY2FzZSBSRUFEX09OTFk6Ci0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6OlJlYWRP
bmx5OwogICAgICAgICBjYXNlIFJFQURfV1JJVEU6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6Q2FuRWRpdFJpY2hseTsKICAg
ICAgICAgY2FzZSBSRUFEX1dSSVRFX1BMQUlOVEVYVF9PTkxZOgotICAgICAgICAgICAgcmV0dXJu
IGVkaXRhYmxlTGV2ZWwgIT0gUmljaGx5RWRpdGFibGU7CisgICAgICAgICAgICByZXR1cm4gTm9k
ZTo6RWRpdGFiaWxpdHk6OkNhbkVkaXRQbGFpblRleHQ7CiAgICAgICAgIH0KICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJu
IE5vZGU6OkVkaXRhYmlsaXR5OjpSZWFkT25seTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiB9CiAKLWJvb2wgTm9kZTo6
aXNFZGl0YWJsZVRvQWNjZXNzaWJpbGl0eShFZGl0YWJsZUxldmVsIGVkaXRhYmxlTGV2ZWwpIGNv
bnN0CitOb2RlOjpFZGl0YWJpbGl0eSBOb2RlOjpjb21wdXRlRWRpdGFiaWxpdHkoVXNlclNlbGVj
dEFsbFRyZWF0bWVudCB0cmVhdG1lbnQsIFNob3VsZFVwZGF0ZVN0eWxlIHNob3VsZFVwZGF0ZVN0
eWxlKSBjb25zdAogewotICAgIGlmIChoYXNFZGl0YWJsZVN0eWxlKGVkaXRhYmxlTGV2ZWwpKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoIWRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVy
VHJlZSgpIHx8IGlzUHNldWRvRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gRWRpdGFiaWxpdHk6
OlJlYWRPbmx5OwogCi0gICAgLy8gRklYTUU6IFJlc3BlY3QgZWRpdGFibGVMZXZlbCBmb3IgQVJJ
QSBlZGl0YWJsZSBlbGVtZW50cy4KLSAgICBpZiAoZWRpdGFibGVMZXZlbCA9PSBSaWNobHlFZGl0
YWJsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQVNTRVJUKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpOwotICAgIEFTU0VSVChkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIHJldHVybiBjYWNoZS0+cm9v
dEFYRWRpdGFibGVFbGVtZW50KHRoaXMpOworICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCkgJiYg
ZG9jdW1lbnQoKS5mcmFtZSgpLT5wYWdlKCkgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5wYWdlKCkt
PmlzRWRpdGFibGUoKSAmJiAhY29udGFpbmluZ1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJu
IEVkaXRhYmlsaXR5OjpDYW5FZGl0UmljaGx5OwogCi0gICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChzaG91bGRVcGRhdGVTdHlsZSA9PSBTaG91bGRVcGRhdGVTdHlsZTo6VXBkYXRlICYmIGRvY3Vt
ZW50KCkubmVlZHNTdHlsZVJlY2FsYygpKSB7CisgICAgICAgIGlmICghZG9jdW1lbnQoKS51c2Vz
U3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkpCisgICAgICAgICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6
OmVkaXRhYmlsaXR5RnJvbUNvbnRlbnRFZGl0YWJsZUF0dHIoKnRoaXMpOworICAgICAgICBkb2N1
bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICB9CisgICAgcmV0dXJuIGNvbXB1dGVF
ZGl0YWJpbGl0eUZyb21Db21wdXRlZFN0eWxlKCp0aGlzLCB0cmVhdG1lbnQpOwogfQogCiBSZW5k
ZXJCb3gqIE5vZGU6OnJlbmRlckJveCgpIGNvbnN0CkBAIC0xMDMwLDE2ICsxMDE5LDYgQEAgYm9v
bCBOb2RlOjppc1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdAogICAgICAgICB8fCAhcGFyZW50
Tm9kZSgpLT5pc0VsZW1lbnROb2RlKCkgfHwgaGFzVGFnTmFtZShib2R5VGFnKSk7CiB9CiAKLUVs
ZW1lbnQqIE5vZGU6OnJvb3RFZGl0YWJsZUVsZW1lbnQoRWRpdGFibGVUeXBlIGVkaXRhYmxlVHlw
ZSkgY29uc3QKLXsKLSAgICBpZiAoZWRpdGFibGVUeXBlID09IEhhc0VkaXRhYmxlQVhSb2xlKSB7
Ci0gICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxFbGVtZW50Kj4o
Y2FjaGUtPnJvb3RBWEVkaXRhYmxlRWxlbWVudCh0aGlzKSk7Ci0gICAgfQotICAgIAotICAgIHJl
dHVybiByb290RWRpdGFibGVFbGVtZW50KCk7Ci19Ci0KIEVsZW1lbnQqIE5vZGU6OnJvb3RFZGl0
YWJsZUVsZW1lbnQoKSBjb25zdAogewogICAgIEVsZW1lbnQqIHJlc3VsdCA9IG51bGxwdHI7CkBA
IC0yMTYzLDcgKzIxNDIsOCBAQCBib29sIE5vZGU6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZl
bnRzKCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChkb3duY2FzdDxFbGVtZW50Pigq
dGhpcykuaXNEaXNhYmxlZEZvcm1Db250cm9sKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICByZXR1cm4gaXNDb250ZW50RWRpdGFibGUoVXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFi
bGUpIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQpIHx8IGhh
c0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCkgfHwgaGFzRXZlbnRM
aXN0ZW5lcnMoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5ET01BY3RpdmF0ZUV2ZW50KTsKKyAgICByZXR1cm4gY29tcHV0ZUVkaXRhYmls
aXR5KFVzZXJTZWxlY3RBbGxJc0Fsd2F5c05vbkVkaXRhYmxlLCBTaG91bGRVcGRhdGVTdHlsZTo6
VXBkYXRlKSAhPSBFZGl0YWJpbGl0eTo6UmVhZE9ubHkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0
ZW5lcnMoZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCkgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZl
bnROYW1lcygpLm1vdXNlZG93bkV2ZW50KSB8fCBoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVz
KCkuY2xpY2tFdmVudCkgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLkRPTUFjdGl2
YXRlRXZlbnQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGRjY2UyN2EwMjA0ZGU0ODEy
MTZlYzdlM2JhNmQyYjQ2M2M2ZDQ3NDUuLjI0NjViMDZlZmJkNmU5NmIxMWRmOGQ4OTdlMTlmYmI3
MWY4NWNkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjUsNyArMjUsNiBAQAogI2lmbmRlZiBOb2RlX2gK
ICNkZWZpbmUgTm9kZV9oCiAKLSNpbmNsdWRlICJFZGl0aW5nQm91bmRhcnkuaCIKICNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIlVSTEhhc2guaCIKICNpbmNsdWRlICJMYXlvdXRS
ZWN0LmgiCkBAIC0zMTMsNyArMzEyLDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1Jvb3RFZGl0
YWJsZUVsZW1lbnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBFbGVtZW50KiByb290RWRp
dGFibGVFbGVtZW50KCkgY29uc3Q7Ci0gICAgRWxlbWVudCogcm9vdEVkaXRhYmxlRWxlbWVudChF
ZGl0YWJsZVR5cGUpIGNvbnN0OwogCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBwYXJzZXIgd2hlbiB0
aGlzIGVsZW1lbnQncyBjbG9zZSB0YWcgaXMgcmVhY2hlZCwKICAgICAvLyBzaWduYWxpbmcgdGhh
dCBhbGwgY2hpbGQgdGFncyBoYXZlIGJlZW4gcGFyc2VkIGFuZCBhZGRlZC4KQEAgLTM1OCwzNSAr
MzU2LDI1IEBAIHB1YmxpYzoKICAgICAgICAgVXNlclNlbGVjdEFsbERvZXNOb3RBZmZlY3RFZGl0
YWJpbGl0eSwKICAgICAgICAgVXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUKICAgICB9
OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNDb250ZW50RWRpdGFibGUoVXNlclNlbGVjdEFs
bFRyZWF0bWVudCA9IFVzZXJTZWxlY3RBbGxEb2VzTm90QWZmZWN0RWRpdGFiaWxpdHkpOworICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNDb250ZW50RWRpdGFibGUoKTsKICAgICBib29sIGlzQ29u
dGVudFJpY2hseUVkaXRhYmxlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc3BlY3Qo
KTsKIAotICAgIGJvb2wgaGFzRWRpdGFibGVTdHlsZShFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBl
ID0gQ29udGVudElzRWRpdGFibGUsIFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgdHJlYXRtZW50ID0g
VXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpIGNvbnN0CisgICAgYm9vbCBoYXNFZGl0
YWJsZVN0eWxlKFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgdHJlYXRtZW50ID0gVXNlclNlbGVjdEFs
bElzQWx3YXlzTm9uRWRpdGFibGUpIGNvbnN0CiAgICAgewotICAgICAgICBzd2l0Y2ggKGVkaXRh
YmxlVHlwZSkgewotICAgICAgICBjYXNlIENvbnRlbnRJc0VkaXRhYmxlOgotICAgICAgICAgICAg
cmV0dXJuIGhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGUsIHRyZWF0bWVudCk7Ci0gICAgICAgIGNh
c2UgSGFzRWRpdGFibGVBWFJvbGU6Ci0gICAgICAgICAgICByZXR1cm4gaXNFZGl0YWJsZVRvQWNj
ZXNzaWJpbGl0eShFZGl0YWJsZSk7Ci0gICAgICAgIH0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVFZGl0
YWJpbGl0eSh0cmVhdG1lbnQsIFNob3VsZFVwZGF0ZVN0eWxlOjpEb05vdFVwZGF0ZSkgIT0gRWRp
dGFiaWxpdHk6OlJlYWRPbmx5OwogICAgIH0KLQotICAgIGJvb2wgaGFzUmljaGx5RWRpdGFibGVT
dHlsZShFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBlID0gQ29udGVudElzRWRpdGFibGUpIGNvbnN0
CisgICAgLy8gRklYTUU6IFJlcGxhY2UgZXZlcnkgdXNlIG9mIHRoaXMgZnVuY3Rpb24gYnkgaGVs
cGVycyBpbiBodG1sZWRpdGluZy5oCisgICAgYm9vbCBoYXNSaWNobHlFZGl0YWJsZVN0eWxlKCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIHN3aXRjaCAoZWRpdGFibGVUeXBlKSB7Ci0gICAgICAgIGNh
c2UgQ29udGVudElzRWRpdGFibGU6Ci0gICAgICAgICAgICByZXR1cm4gaGFzRWRpdGFibGVTdHls
ZShSaWNobHlFZGl0YWJsZSwgVXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpOwotICAg
ICAgICBjYXNlIEhhc0VkaXRhYmxlQVhSb2xlOgotICAgICAgICAgICAgcmV0dXJuIGlzRWRpdGFi
bGVUb0FjY2Vzc2liaWxpdHkoUmljaGx5RWRpdGFibGUpOwotICAgICAgICB9Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
biBjb21wdXRlRWRpdGFiaWxpdHkoVXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUsIFNo
b3VsZFVwZGF0ZVN0eWxlOjpEb05vdFVwZGF0ZSkgPT0gRWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNo
bHk7CiAgICAgfQogCisgICAgZW51bSBjbGFzcyBFZGl0YWJpbGl0eSB7IFJlYWRPbmx5LCBDYW5F
ZGl0UGxhaW5UZXh0LCBDYW5FZGl0UmljaGx5IH07CisgICAgZW51bSBjbGFzcyBTaG91bGRVcGRh
dGVTdHlsZSB7IFVwZGF0ZSwgRG9Ob3RVcGRhdGUgfTsKKyAgICBXRUJDT1JFX0VYUE9SVCBFZGl0
YWJpbGl0eSBjb21wdXRlRWRpdGFiaWxpdHkoVXNlclNlbGVjdEFsbFRyZWF0bWVudCwgU2hvdWxk
VXBkYXRlU3R5bGUpIGNvbnN0OworCiAgICAgV0VCQ09SRV9FWFBPUlQgTGF5b3V0UmVjdCByZW5k
ZXJSZWN0KGJvb2wqIGlzUmVwbGFjZWQpOwogICAgIEludFJlY3QgcGl4ZWxTbmFwcGVkUmVuZGVy
UmVjdChib29sKiBpc1JlcGxhY2VkKSB7IHJldHVybiBzbmFwcGVkSW50UmVjdChyZW5kZXJSZWN0
KGlzUmVwbGFjZWQpKTsgfQogCkBAIC02ODksMTAgKzY3Nyw2IEBAIHByaXZhdGU6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCByZW1vdmVkTGFzdFJlZigpOwogICAgIGJvb2wgaGFzVHJlZVNoYXJl
ZFBhcmVudCgpIGNvbnN0IHsgcmV0dXJuICEhcGFyZW50Tm9kZSgpOyB9CiAKLSAgICBlbnVtIEVk
aXRhYmxlTGV2ZWwgeyBFZGl0YWJsZSwgUmljaGx5RWRpdGFibGUgfTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVMZXZlbCwgVXNlclNlbGVjdEFsbFRy
ZWF0bWVudCA9IFVzZXJTZWxlY3RBbGxJc0Fsd2F5c05vbkVkaXRhYmxlKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGlzRWRpdGFibGVUb0FjY2Vzc2liaWxpdHkoRWRpdGFibGVMZXZl
bCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IGFkM2Q5NTQzZWRm
OTQ1MGM4MmU3OGE4M2E0MzI3NGQxYzk3YTliYzIuLmUzM2I4ZjYxZGIyNDNmODhmYTYzMjlhZmUz
Mjk3MDA5NWJiNzI4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuY3BwCkBAIC04NzksNyArODc5LDcgQEAgYm9vbCBBcHBseVN0eWxlQ29tbWFuZDo6cmVt
b3ZlSW5saW5lU3R5bGVGcm9tRWxlbWVudChFZGl0aW5nU3R5bGUqIHN0eWxlLCBQYXNzUmUKIHsK
ICAgICBBU1NFUlQoZWxlbWVudCk7CiAKLSAgICBpZiAoIWVsZW1lbnQtPnBhcmVudE5vZGUoKSB8
fCAhZWxlbWVudC0+cGFyZW50Tm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZShOb2RlOjpVc2VyU2Vs
ZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSkpCisgICAgaWYgKCFlbGVtZW50LT5wYXJlbnROb2Rl
KCkgfHwgIWlzRWRpdGFibGVOb2RlKCplbGVtZW50LT5wYXJlbnROb2RlKCkpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaXNTdHlsZWRJbmxpbmVFbGVtZW50VG9SZW1vdmUoZWxl
bWVudC5nZXQoKSkpIHsKQEAgLTEzNDksNyArMTM0OSw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1h
bmQ6OnN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQoUGFzc1JlZlB0cjxOb2RlPiBwYXNzZWRT
dGFyCiAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBzdGFydE5vZGU7CiAgICAgd2hpbGUgKG5vZGUp
IHsKICAgICAgICAgUmVmUHRyPE5vZGU+IG5leHQgPSBub2RlLT5uZXh0U2libGluZygpOwotICAg
ICAgICBpZiAobm9kZS0+aXNDb250ZW50RWRpdGFibGUoTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3
YXlzTm9uRWRpdGFibGUpKSB7CisgICAgICAgIGlmIChpc0VkaXRhYmxlTm9kZSgqbm9kZSkpIHsK
ICAgICAgICAgICAgIHJlbW92ZU5vZGUobm9kZSk7CiAgICAgICAgICAgICBhcHBlbmROb2RlKG5v
ZGUsIGVsZW1lbnQpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCBhNzZmNjA0OTIzMDRlMTg2YmUw
NjU1N2RiMTEwODdkMGNmMjMwM2Q3Li4yZWE5NmQ1NWNhZmQzZGFjMzM0ODgwYzU1ZDJjOTEwMDFl
MTYxMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAKQEAgLTI1LDExICsyNSwxMiBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAi
aHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCw3ICs0OSw3IEBA
IHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJU
KG1fbm9kZSk7CiAKLSAgICBpZiAoIW1fbm9kZS0+aXNDb250ZW50RWRpdGFibGUoTm9kZTo6VXNl
clNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpKQorICAgIGlmICghaXNFZGl0YWJsZU5vZGUo
Km1fbm9kZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA0ZDExZjU4MjNk
MjhjY2MxYTUzODRhZDZiZDEyYzAzYjRjYjA2MDFhLi40ZDM0ZmJkMzU5MjU1YjA1ZDRlZDQyNjk2
MTlmNmEyYmZkNTdjOTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcApAQCAtMTQ1Myw3ICsxNDUzLDcgQEAgdm9pZCBDYXJldEJhc2U6OmludmFsaWRhdGVDYXJl
dFJlY3QoTm9kZSogbm9kZSwgYm9vbCBjYXJldFJlY3RDaGFuZ2VkKQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IG5vZGUtPmRvY3VtZW50KCkucmVuZGVyVmll
dygpKSB7Ci0gICAgICAgIGlmIChzaG91bGRSZXBhaW50Q2FyZXQodmlldywgbm9kZS0+aXNDb250
ZW50RWRpdGFibGUoTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpKSkKKyAg
ICAgICAgaWYgKHNob3VsZFJlcGFpbnRDYXJldCh2aWV3LCBpc0VkaXRhYmxlTm9kZSgqbm9kZSkp
KQogICAgICAgICAgICAgcmVwYWludENhcmV0Rm9yTG9jYWxSZWN0KG5vZGUsIGxvY2FsQ2FyZXRS
ZWN0V2l0aG91dFVwZGF0ZSgpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGIyNDgzMmNmMDYyMTQ2YmIz
ODMxYjQyYTBkNTAzOTgyODIxNzRiYTAuLmQxNmI1ZDYxZTFkYjRjMjc3Mzk3MjYxMWYyYTI2NTE1
YzI4NzU0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCkBAIC01MSw5ICs1MSw5IEBAIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
CiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBDb250YWlu
ZXJOb2RlKiBwYXJlbnQgPSBtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCk7Ci0gICAgaWYgKCFwYXJl
bnQgfHwgKG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgPT0gRG9Ob3RBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSAmJiAhcGFyZW50LT5pc0NvbnRlbnRFZGl0YWJsZShO
b2RlOjpVc2VyU2VsZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSkpKQorICAgIGlmICghcGFyZW50
IHx8IChtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID09IERvTm90QXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgJiYgIWlzRWRpdGFibGVOb2RlKCpwYXJlbnQpKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChwYXJlbnQtPmlzQ29udGVudEVkaXRhYmxlKE5vZGU6
OlVzZXJTZWxlY3RBbGxJc0Fsd2F5c05vbkVkaXRhYmxlKSk7CisgICAgQVNTRVJUKGlzRWRpdGFi
bGVOb2RlKCpwYXJlbnQpKTsKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0Q2hp
bGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCkBAIC02Myw3
ICs2Myw3IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiB2b2lk
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogewotICAgIGlmICghbV9pbnNl
cnRDaGlsZC0+aXNDb250ZW50RWRpdGFibGUoTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3YXlzTm9u
RWRpdGFibGUpKQorICAgIGlmICghaXNFZGl0YWJsZU5vZGUoKm1faW5zZXJ0Q2hpbGQpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxs
eSBkZWxldGluZyB0aGUgdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVD
b21tYW5kLmNwcAppbmRleCBlNWZhOTZiYjZkZGI3ZDMyODE0ZmI3M2ViODI1YzYzMzgyZTNlNzU1
Li4zMWM1NGQxZTg4MmUyZDQ2NTQwNDA4ZTQ1MDYwYzQ5ZDkwOGJiZWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIK
ICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw5
ICs0Nyw5IEBAIHZvaWQgUmVtb3ZlTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIENvbnRh
aW5lck5vZGUqIHBhcmVudCA9IG1fbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgIGlmICghcGFyZW50
IHx8IChtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID09IERvTm90QXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUKLSAgICAgICAgJiYgIXBhcmVudC0+aXNDb250ZW50RWRp
dGFibGUoTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpICYmIHBhcmVudC0+
cmVuZGVyZXIoKSkpCisgICAgICAgICYmICFpc0VkaXRhYmxlTm9kZSgqcGFyZW50KSAmJiBwYXJl
bnQtPnJlbmRlcmVyKCkpKQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKHBhcmVudC0+aXND
b250ZW50RWRpdGFibGUoTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUpIHx8
ICFwYXJlbnQtPnJlbmRlcmVyKCkpOworICAgIEFTU0VSVChpc0VkaXRhYmxlTm9kZSgqcGFyZW50
KSB8fCAhcGFyZW50LT5yZW5kZXJlcigpKTsKIAogICAgIG1fcGFyZW50ID0gcGFyZW50OwogICAg
IG1fcmVmQ2hpbGQgPSBtX25vZGUtPm5leHRTaWJsaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCBjOTlmNWJmOGRkYzBjMDFkMzM4YTlkMzFh
ODJkMDc5ZTMxMWQyNDU4Li45ODY3NzhjNTY4YjI0NjExOGQxYTNkYTI3Yzk0OGNlZWI4MTk3ZDc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKQEAgLTY0
Myw3ICs2NDMsOSBAQCBib29sIFZpc2libGVTZWxlY3Rpb246OmlzQ29udGVudEVkaXRhYmxlKCkg
Y29uc3QKIAogYm9vbCBWaXNpYmxlU2VsZWN0aW9uOjpoYXNFZGl0YWJsZVN0eWxlKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gaXNFZGl0YWJsZVBvc2l0aW9uKHN0YXJ0KCksIENvbnRlbnRJc0VkaXRh
YmxlLCBEb05vdFVwZGF0ZVN0eWxlKTsKKyAgICBpZiAoTm9kZSogY29udGFpbmVyTm9kZSA9IHN0
YXJ0KCkuY29udGFpbmVyTm9kZSgpKQorICAgICAgICByZXR1cm4gY29udGFpbmVyTm9kZS0+aGFz
RWRpdGFibGVTdHlsZSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBWaXNpYmxlU2Vs
ZWN0aW9uOjppc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVVbml0cy5jcHAKaW5kZXggMzc1YzMyOTZiMDU5MWU2ODY5OWM3MDg4MjMxYmVl
YWU2MDhiOTk3MC4uNzcyM2VjMGNkODUwNDMwY2Y1ZTAzYjJlNzU1OGM0ODRkZmEwNmM2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlVW5pdHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcApAQCAtNDgsMjUgKzQ4LDI1IEBA
IHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CiAKIHN0YXRpYyBOb2RlKiBwcmV2aW91c0xl
YWZXaXRoU2FtZUVkaXRhYmlsaXR5KE5vZGUqIG5vZGUsIEVkaXRhYmxlVHlwZSBlZGl0YWJsZVR5
cGUpCiB7Ci0gICAgYm9vbCBlZGl0YWJsZSA9IG5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoZWRpdGFi
bGVUeXBlKTsKKyAgICBib29sIGVkaXRhYmxlID0gaGFzRWRpdGFibGVTdHlsZSgqbm9kZSwgZWRp
dGFibGVUeXBlKTsKICAgICBub2RlID0gcHJldmlvdXNMZWFmTm9kZShub2RlKTsKICAgICB3aGls
ZSAobm9kZSkgewotICAgICAgICBpZiAoZWRpdGFibGUgPT0gbm9kZS0+aGFzRWRpdGFibGVTdHls
ZShlZGl0YWJsZVR5cGUpKQorICAgICAgICBpZiAoZWRpdGFibGUgPT0gaGFzRWRpdGFibGVTdHls
ZSgqbm9kZSwgZWRpdGFibGVUeXBlKSkKICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAg
ICBub2RlID0gcHJldmlvdXNMZWFmTm9kZShub2RlKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKLXN0YXRpYyBOb2RlKiBuZXh0TGVhZldpdGhTYW1lRWRpdGFiaWxpdHkoTm9kZSog
bm9kZSwgRWRpdGFibGVUeXBlIGVkaXRhYmxlVHlwZSA9IENvbnRlbnRJc0VkaXRhYmxlKQorc3Rh
dGljIE5vZGUqIG5leHRMZWFmV2l0aFNhbWVFZGl0YWJpbGl0eShOb2RlKiBub2RlLCBFZGl0YWJs
ZVR5cGUgZWRpdGFibGVUeXBlKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCi0gICAgYm9vbCBlZGl0YWJsZSA9IG5vZGUtPmhhc0VkaXRhYmxlU3R5bGUo
ZWRpdGFibGVUeXBlKTsKKyAgICBib29sIGVkaXRhYmxlID0gaGFzRWRpdGFibGVTdHlsZSgqbm9k
ZSwgZWRpdGFibGVUeXBlKTsKICAgICBub2RlID0gbmV4dExlYWZOb2RlKG5vZGUpOwogICAgIHdo
aWxlIChub2RlKSB7Ci0gICAgICAgIGlmIChlZGl0YWJsZSA9PSBub2RlLT5oYXNFZGl0YWJsZVN0
eWxlKGVkaXRhYmxlVHlwZSkpCisgICAgICAgIGlmIChlZGl0YWJsZSA9PSBoYXNFZGl0YWJsZVN0
eWxlKCpub2RlLCBlZGl0YWJsZVR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAg
ICAgIG5vZGUgPSBuZXh0TGVhZk5vZGUobm9kZSk7CiAgICAgfQpAQCAtOTM1LDYgKzkzNSwxMyBA
QCBzdGF0aWMgaW5saW5lIEludFBvaW50IGFic29sdXRlTGluZURpcmVjdGlvblBvaW50VG9Mb2Nh
bFBvaW50SW5CbG9jayhSb290SW5saW5lQgogICAgIHJldHVybiBJbnRQb2ludChyb290LmJsb2Nr
RGlyZWN0aW9uUG9pbnRJbkxpbmUoKSwgbGluZURpcmVjdGlvblBvaW50IC0gYWJzb2x1dGVCbG9j
a1BvaW50LnkoKSk7CiB9CiAKK3N0YXRpYyBFbGVtZW50KiByb290RWRpdGFibGVPckRvY3VtZW50
RWxlbWVudChOb2RlJiBub2RlLCBFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBlKQoreworICAgIGlm
IChoYXNFZGl0YWJsZVN0eWxlKG5vZGUsIGVkaXRhYmxlVHlwZSkpCisgICAgICAgIHJldHVybiBl
ZGl0YWJsZVJvb3RGb3JQb3NpdGlvbihmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoJm5vZGUp
LCBlZGl0YWJsZVR5cGUpOworICAgIHJldHVybiBub2RlLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVt
ZW50KCk7Cit9CisKIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c0xpbmVQb3NpdGlvbihjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHZpc2libGVQb3NpdGlvbiwgaW50IGxpbmVEaXJlY3Rpb25Qb2ludCwg
RWRpdGFibGVUeXBlIGVkaXRhYmxlVHlwZSkKIHsKICAgICBQb3NpdGlvbiBwID0gdmlzaWJsZVBv
c2l0aW9uLmRlZXBFcXVpdmFsZW50KCk7CkBAIC05ODQsNyArOTkxLDcgQEAgVmlzaWJsZVBvc2l0
aW9uIHByZXZpb3VzTGluZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJsZVBv
c2l0aW9uLCBpbnQKICAgICAvLyBDb3VsZCBub3QgZmluZCBhIHByZXZpb3VzIGxpbmUuIFRoaXMg
bWVhbnMgd2UgbXVzdCBhbHJlYWR5IGJlIG9uIHRoZSBmaXJzdCBsaW5lLgogICAgIC8vIE1vdmUg
dG8gdGhlIHN0YXJ0IG9mIHRoZSBjb250ZW50IGluIHRoaXMgYmxvY2ssIHdoaWNoIGVmZmVjdGl2
ZWx5IG1vdmVzIHVzCiAgICAgLy8gdG8gdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIHdlJ3JlIG9uLgot
ICAgIEVsZW1lbnQqIHJvb3RFbGVtZW50ID0gbm9kZS0+aGFzRWRpdGFibGVTdHlsZShlZGl0YWJs
ZVR5cGUpID8gbm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudChlZGl0YWJsZVR5cGUpIDogbm9kZS0+
ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICBFbGVtZW50KiByb290RWxlbWVudCA9
IHJvb3RFZGl0YWJsZU9yRG9jdW1lbnRFbGVtZW50KCpub2RlLCBlZGl0YWJsZVR5cGUpOwogICAg
IGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAg
ICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKGZpcnN0UG9zaXRpb25Jbk5vZGUocm9vdEVsZW1lbnQp
LCBET1dOU1RSRUFNKTsKQEAgLTEwNDIsNyArMTA0OSw3IEBAIFZpc2libGVQb3NpdGlvbiBuZXh0
TGluZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uLCBpbnQg
bGluCiAgICAgLy8gQ291bGQgbm90IGZpbmQgYSBuZXh0IGxpbmUuIFRoaXMgbWVhbnMgd2UgbXVz
dCBhbHJlYWR5IGJlIG9uIHRoZSBsYXN0IGxpbmUuCiAgICAgLy8gTW92ZSB0byB0aGUgZW5kIG9m
IHRoZSBjb250ZW50IGluIHRoaXMgYmxvY2ssIHdoaWNoIGVmZmVjdGl2ZWx5IG1vdmVzIHVzCiAg
ICAgLy8gdG8gdGhlIGVuZCBvZiB0aGUgbGluZSB3ZSdyZSBvbi4KLSAgICBFbGVtZW50KiByb290
RWxlbWVudCA9IG5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoZWRpdGFibGVUeXBlKSA/IG5vZGUtPnJv
b3RFZGl0YWJsZUVsZW1lbnQoZWRpdGFibGVUeXBlKSA6IG5vZGUtPmRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCk7CisgICAgRWxlbWVudCogcm9vdEVsZW1lbnQgPSByb290RWRpdGFibGVPckRv
Y3VtZW50RWxlbWVudCgqbm9kZSwgZWRpdGFibGVUeXBlKTsKICAgICBpZiAoIXJvb3RFbGVtZW50
KQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CiAgICAgcmV0dXJuIFZpc2libGVQ
b3NpdGlvbihsYXN0UG9zaXRpb25Jbk5vZGUocm9vdEVsZW1lbnQpLCBET1dOU1RSRUFNKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKaW5kZXggMjNlYzkwYmVkMDhmZDE2ZTc1
M2NjMmNiZDEyYzRkYmNlNmJmNjc5OC4uMzFmZWJmYjhhMjc0YTcyNDM3M2M4YjM2MjcyNDhmOGJh
MDUzOGVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTExOCw3
ICsxMTgsNyBAQCBOb2RlKiBoaWdoZXN0RWRpdGFibGVSb290KGNvbnN0IFBvc2l0aW9uJiBwb3Np
dGlvbiwgRWRpdGFibGVUeXBlIGVkaXRhYmxlVHlwZSkKICAgICAgICAgbm9kZSA9IG5vZGUtPnBh
cmVudE5vZGUoKTsKICAgICAgICAgaWYgKCFub2RlKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGlmIChub2RlLT5oYXNFZGl0YWJsZVN0eWxlKGVkaXRhYmxlVHlwZSkpCisgICAgICAgIGlm
IChoYXNFZGl0YWJsZVN0eWxlKCpub2RlLCBlZGl0YWJsZVR5cGUpKQogICAgICAgICAgICAgaGln
aGVzdEVkaXRhYmxlUm9vdCA9IG5vZGU7CiAgICAgfQogCkBAIC0xNDEsMTcgKzE0MSw0NiBAQCBO
b2RlKiBsb3dlc3RFZGl0YWJsZUFuY2VzdG9yKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIDA7CiB9
CiAKLWJvb2wgaXNFZGl0YWJsZVBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiBwLCBFZGl0YWJsZVR5
cGUgZWRpdGFibGVUeXBlLCBFVXBkYXRlU3R5bGUgdXBkYXRlU3R5bGUpCitzdGF0aWMgYm9vbCBp
c0VkaXRhYmxlVG9BY2Nlc3NpYmlsaXR5KGNvbnN0IE5vZGUmIG5vZGUpCiB7Ci0gICAgTm9kZSog
bm9kZSA9IHAuY29udGFpbmVyTm9kZSgpOwotICAgIGlmICghbm9kZSkKKyAgICBBU1NFUlQoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSk7CisgICAgQVNTRVJUKG5vZGUuZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSk7CisKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBub2RlLmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAg
ICAgIHJldHVybiBjYWNoZS0+cm9vdEFYRWRpdGFibGVFbGVtZW50KCZub2RlKTsKKworICAgIHJl
dHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgY29tcHV0ZUVkaXRhYmlsaXR5KGNvbnN0IE5v
ZGUmIG5vZGUsIEVkaXRhYmxlVHlwZSBlZGl0YWJsZVR5cGUsIE5vZGU6OlNob3VsZFVwZGF0ZVN0
eWxlIHNob3VsZFVwZGF0ZVN0eWxlKQoreworICAgIGlmIChub2RlLmNvbXB1dGVFZGl0YWJpbGl0
eShOb2RlOjpVc2VyU2VsZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSwgc2hvdWxkVXBkYXRlU3R5
bGUpICE9IE5vZGU6OkVkaXRhYmlsaXR5OjpSZWFkT25seSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICBzd2l0Y2ggKGVkaXRhYmxlVHlwZSkgeworICAgIGNhc2UgQ29udGVudElzRWRpdGFi
bGU6CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAodXBkYXRlU3R5bGUgPT0gVXBkYXRl
U3R5bGUpCi0gICAgICAgIG5vZGUtPmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZCgpOwot
ICAgIGVsc2UKLSAgICAgICAgQVNTRVJUKHVwZGF0ZVN0eWxlID09IERvTm90VXBkYXRlU3R5bGUp
OworICAgIGNhc2UgSGFzRWRpdGFibGVBWFJvbGU6CisgICAgICAgIHJldHVybiBpc0VkaXRhYmxl
VG9BY2Nlc3NpYmlsaXR5KG5vZGUpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICByZXR1cm4gbm9kZS0+aGFzRWRpdGFibGVTdHls
ZShlZGl0YWJsZVR5cGUpOworYm9vbCBoYXNFZGl0YWJsZVN0eWxlKGNvbnN0IE5vZGUmIG5vZGUs
IEVkaXRhYmxlVHlwZSBlZGl0YWJsZVR5cGUpCit7CisgICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJp
bGl0eShub2RlLCBlZGl0YWJsZVR5cGUsIE5vZGU6OlNob3VsZFVwZGF0ZVN0eWxlOjpEb05vdFVw
ZGF0ZSk7Cit9CisKK2Jvb2wgaXNFZGl0YWJsZU5vZGUoY29uc3QgTm9kZSYgbm9kZSkKK3sKKyAg
ICByZXR1cm4gY29tcHV0ZUVkaXRhYmlsaXR5KG5vZGUsIENvbnRlbnRJc0VkaXRhYmxlLCBOb2Rl
OjpTaG91bGRVcGRhdGVTdHlsZTo6VXBkYXRlKTsKK30KKworYm9vbCBpc0VkaXRhYmxlUG9zaXRp
b24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBlKQor
eworICAgIE5vZGUqIG5vZGUgPSBwb3NpdGlvbi5jb250YWluZXJOb2RlKCk7CisgICAgcmV0dXJu
IG5vZGUgJiYgY29tcHV0ZUVkaXRhYmlsaXR5KCpub2RlLCBlZGl0YWJsZVR5cGUsIE5vZGU6OlNo
b3VsZFVwZGF0ZVN0eWxlOjpVcGRhdGUpOwogfQogCiBib29sIGlzQXRVbnNwbGl0dGFibGVFbGVt
ZW50KGNvbnN0IFBvc2l0aW9uJiBwb3MpCkBAIC0xNjEsMTMgKzE5MCwxMiBAQCBib29sIGlzQXRV
bnNwbGl0dGFibGVFbGVtZW50KGNvbnN0IFBvc2l0aW9uJiBwb3MpCiB9CiAgICAgCiAgICAgCi1i
b29sIGlzUmljaGx5RWRpdGFibGVQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYgcCwgRWRpdGFibGVU
eXBlIGVkaXRhYmxlVHlwZSkKK2Jvb2wgaXNSaWNobHlFZGl0YWJsZVBvc2l0aW9uKGNvbnN0IFBv
c2l0aW9uJiBwb3NpdGlvbikKIHsKLSAgICBOb2RlKiBub2RlID0gcC5jb250YWluZXJOb2RlKCk7
CisgICAgTm9kZSogbm9kZSA9IHBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKTsKICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBub2RlLT5oYXNSaWNobHlF
ZGl0YWJsZVN0eWxlKGVkaXRhYmxlVHlwZSk7CisgICAgcmV0dXJuIG5vZGUtPmhhc1JpY2hseUVk
aXRhYmxlU3R5bGUoKTsKIH0KIAogRWxlbWVudCogZWRpdGFibGVSb290Rm9yUG9zaXRpb24oY29u
c3QgUG9zaXRpb24mIHAsIEVkaXRhYmxlVHlwZSBlZGl0YWJsZVR5cGUpCkBAIC0xNzYsNyArMjA0
LDE1IEBAIEVsZW1lbnQqIGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiBw
LCBFZGl0YWJsZVR5cGUgZWRpdGFibGVUeXBlKQogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICByZXR1cm4gbm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudChlZGl0YWJsZVR5
cGUpOworICAgIHN3aXRjaCAoZWRpdGFibGVUeXBlKSB7CisgICAgY2FzZSBIYXNFZGl0YWJsZUFY
Um9sZToKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PEVsZW1lbnQqPihjYWNoZS0+cm9vdEFYRWRpdGFibGVFbGVtZW50KG5vZGUpKTsKKyAgICAgICAg
RkFMTFRIUk9VR0g7CisgICAgY2FzZSBDb250ZW50SXNFZGl0YWJsZToKKyAgICAgICAgcmV0dXJu
IG5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKKyAgICB9CisgICAgcmV0dXJuIDA7CiB9CiAK
IC8vIEZpbmRzIHRoZSBlbmNsb3NpbmcgZWxlbWVudCB1bnRpbCB3aGljaCB0aGUgdHJlZSBjYW4g
YmUgc3BsaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKaW5kZXggY2U4OTVlMzI3
MzRjMTdmZTllYTc0ODNmZDY5OThjZDRjNjI5MmJkZi4uOTQ3YzU3YzMwN2MyZGRmYTVjMzA1Y2Qx
MmNjOTA1NWJjYTEyYjRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaApAQCAt
ODUsNiArODUsOSBAQCBpbnQgY2FyZXRNYXhPZmZzZXQoY29uc3QgTm9kZSopOwogCiAvLyBib29s
ZWFuIGZ1bmN0aW9ucyBvbiBOb2RlCiAKK2Jvb2wgaGFzRWRpdGFibGVTdHlsZShjb25zdCBOb2Rl
JiwgRWRpdGFibGVUeXBlKTsKK2Jvb2wgaXNFZGl0YWJsZU5vZGUoY29uc3QgTm9kZSYpOworCiAv
LyBGSVhNRTogZWRpdGluZ0lnbm9yZXNDb250ZW50LCBjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5n
LCBhbmQgaXNBdG9taWNOb2RlCiAvLyBzaG91bGQgYmUgcmVuYW1lZCB0byByZWZsZWN0IGl0cyB1
c2FnZS4KIApAQCAtMTY0LDkgKzE2Nyw4IEBAIGludCBjb21wYXJlUG9zaXRpb25zKGNvbnN0IFBv
c2l0aW9uJiwgY29uc3QgUG9zaXRpb24mKTsKIAogLy8gYm9vbGVhbiBmdW5jdGlvbnMgb24gUG9z
aXRpb24KIAotZW51bSBFVXBkYXRlU3R5bGUgeyBVcGRhdGVTdHlsZSwgRG9Ob3RVcGRhdGVTdHls
ZSB9OwotV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0VkaXRhYmxlUG9zaXRpb24oY29uc3QgUG9zaXRp
b24mLCBFZGl0YWJsZVR5cGUgPSBDb250ZW50SXNFZGl0YWJsZSwgRVVwZGF0ZVN0eWxlID0gVXBk
YXRlU3R5bGUpOwotYm9vbCBpc1JpY2hseUVkaXRhYmxlUG9zaXRpb24oY29uc3QgUG9zaXRpb24m
LCBFZGl0YWJsZVR5cGUgPSBDb250ZW50SXNFZGl0YWJsZSk7CitXRUJDT1JFX0VYUE9SVCBib29s
IGlzRWRpdGFibGVQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYsIEVkaXRhYmxlVHlwZSA9IENvbnRl
bnRJc0VkaXRhYmxlKTsKK2Jvb2wgaXNSaWNobHlFZGl0YWJsZVBvc2l0aW9uKGNvbnN0IFBvc2l0
aW9uJik7CiBib29sIGlzRmlyc3RWaXNpYmxlUG9zaXRpb25JblNwZWNpYWxFbGVtZW50KGNvbnN0
IFBvc2l0aW9uJik7CiBib29sIGlzTGFzdFZpc2libGVQb3NpdGlvbkluU3BlY2lhbEVsZW1lbnQo
Y29uc3QgUG9zaXRpb24mKTsKIGJvb2wgbGluZUJyZWFrRXhpc3RzQXRQb3NpdGlvbihjb25zdCBQ
b3NpdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCA4ZWY1ZmRkOWE1
OTdhMTk1ZjNlNDM5MzhkZTIzNWVmOWRjNGI1OTYzLi4zOGY0ODljMzVhOGY4Mjg5ZTZkNDhiNjE2
NWRmNWRlYTA1OTk4YzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzY3
LDI4ICszNjcsMzUgQEAgdm9pZCBIVE1MRWxlbWVudDo6cG9wdWxhdGVFdmVudE5hbWVGb3JBdHRy
aWJ1dGVMb2NhbE5hbWVNYXAoSGFzaE1hcDxBdG9taWNTdHJpbmcKICAgICAgICAgbWFwLmFkZChj
dXN0b21UYWJsZVtpXS5hdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpLmltcGwoKSwgY3VzdG9tVGFi
bGVbaV0uZXZlbnROYW1lKTsKIH0KIAotYm9vbCBIVE1MRWxlbWVudDo6bWF0Y2hlc1JlYWRXcml0
ZVBzZXVkb0NsYXNzKCkgY29uc3QKK05vZGU6OkVkaXRhYmlsaXR5IEhUTUxFbGVtZW50OjplZGl0
YWJpbGl0eUZyb21Db250ZW50RWRpdGFibGVBdHRyKGNvbnN0IE5vZGUmIG5vZGUpCiB7Ci0gICAg
Y29uc3QgRWxlbWVudCogY3VycmVudEVsZW1lbnQgPSB0aGlzOworICAgIGNvbnN0IE5vZGUqIGN1
cnJlbnROb2RlID0gJm5vZGU7CiAgICAgZG8gewotICAgICAgICBpZiAoaXM8SFRNTEVsZW1lbnQ+
KCpjdXJyZW50RWxlbWVudCkpIHsKLSAgICAgICAgICAgIHN3aXRjaCAoY29udGVudEVkaXRhYmxl
VHlwZShkb3duY2FzdDxIVE1MRWxlbWVudD4oKmN1cnJlbnRFbGVtZW50KSkpIHsKKyAgICAgICAg
aWYgKGlzPEhUTUxFbGVtZW50PigqY3VycmVudE5vZGUpKSB7CisgICAgICAgICAgICBzd2l0Y2gg
KGNvbnRlbnRFZGl0YWJsZVR5cGUoZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpjdXJyZW50Tm9kZSkp
KSB7CiAgICAgICAgICAgICBjYXNlIENvbnRlbnRFZGl0YWJsZVR5cGU6OlRydWU6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIE5vZGU6OkVkaXRhYmlsaXR5OjpDYW5FZGl0UmljaGx5OwogICAgICAg
ICAgICAgY2FzZSBDb250ZW50RWRpdGFibGVUeXBlOjpQbGFpbnRleHRPbmx5OgotICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJp
bGl0eTo6Q2FuRWRpdFBsYWluVGV4dDsKICAgICAgICAgICAgIGNhc2UgQ29udGVudEVkaXRhYmxl
VHlwZTo6RmFsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
ICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiAgICAgICAgICAgICBjYXNl
IENvbnRlbnRFZGl0YWJsZVR5cGU6OkluaGVyaXQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgY3VycmVudEVsZW1lbnQgPSBjdXJyZW50
RWxlbWVudC0+cGFyZW50RWxlbWVudCgpOwotICAgIH0gd2hpbGUgKGN1cnJlbnRFbGVtZW50KTsK
KyAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+cGFyZW50Tm9kZSgpOworICAgIH0g
d2hpbGUgKGN1cnJlbnROb2RlKTsKIAotICAgIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCA9IHRo
aXMtPmRvY3VtZW50KCk7CisgICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0gbm9kZS5kb2N1
bWVudCgpOwogICAgIGlmIChpczxIVE1MRG9jdW1lbnQ+KGRvY3VtZW50KSkKLSAgICAgICAgcmV0
dXJuIGRvd25jYXN0PEhUTUxEb2N1bWVudD4oZG9jdW1lbnQpLmluRGVzaWduTW9kZSgpOwotICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxEb2N1bWVudD4oZG9j
dW1lbnQpLmluRGVzaWduTW9kZSgpID8gTm9kZTo6RWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNobHkg
OiBOb2RlOjpFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CisKKyAgICByZXR1cm4gTm9kZTo6RWRpdGFi
aWxpdHk6OlJlYWRPbmx5OworfQorCitib29sIEhUTUxFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRl
UHNldWRvQ2xhc3MoKSBjb25zdAoreworICAgIHJldHVybiBlZGl0YWJpbGl0eUZyb21Db250ZW50
RWRpdGFibGVBdHRyKCp0aGlzKSAhPSBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiB9CiAKIHZvaWQg
SFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXgg
MjBkZDNjMWRlZDI4MTg3MjI4YTY2OWE4MWYwMGJiN2JlMWRiNDM4My4uNTgwNTNiN2EyN2JiN2Fj
OGZiMmZjMTY3ZTc2MDVkM2E5ZjQ2YWRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApA
QCAtNjEsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNvbnRlbnRFZGl0YWJsZSgpIGNv
bnN0OwogICAgIHZvaWQgc2V0Q29udGVudEVkaXRhYmxlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKIAorICAgIHN0YXRpYyBFZGl0YWJpbGl0eSBlZGl0YWJpbGl0eUZyb21Db250ZW50
RWRpdGFibGVBdHRyKGNvbnN0IE5vZGUmKTsKKwogICAgIHZpcnR1YWwgYm9vbCBkcmFnZ2FibGUo
KSBjb25zdDsKICAgICB2b2lkIHNldERyYWdnYWJsZShib29sKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk2ODI5ZDg4
Y2JhMjEwYTk4YzJiY2IxOWM0YzVjMjQyOGU3Y2NkYmIuLmYzYmFjZWQ5MzM0NTc3NTZhM2U1YWJl
NTNjNzFjMjkzNTc4ZjgyYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wMi0yOCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBpc0NvbnRlbnRFZGl0YWJs
ZSBzaG91bGRuJ3QgdHJpZ2dlciBzeW5jaHJvbm91cyBzdHlsZSByZWNhbGMgaW4gbW9zdCBjYXNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MDM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
YSByZWdyZXNzaW9uIHRlc3QgdG8gdXBkYXRlIHRoZSBlZGl0YWJpbGl0eSBvZiBlbGVtZW50cyBk
eW5hbWljYWxseS4gQWxzbyByZWJhc2VsaW5lZAorICAgICAgICB0ZXN0cyBwZXIgc3R5bGUgcmVj
YWxjIHRpbWluZyBjaGFuZ2VzLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvZHlu
YW1pYy1lZGl0YWJpbGl0eS1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9IVE1MRWxlbWVudC9keW5hbWljLWVkaXRhYmlsaXR5LWNoYW5nZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81MTQyMDEyLTEt
ZXhwZWN0ZWQudHh0OiBhbm9ueW1vdXMgcmVuZGVyIGJsb2NrIGRpZmZlcmVuY2VzLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL25zcmVzcG9uZGVyLW91dGRlbnQt
ZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNl
cnRpbmcvaW5zZXJ0LWF0LWVuZC0wMi1leHBlY3RlZC50eHQ6IEVtcHR5IHJlbmRlciB0ZXh0IGRp
ZmZlcmVuY2VzLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk4
OTc3NC1leHBlY3RlZC50eHQ6IERpdHRvLgorCiAyMDE1LTAyLTI2ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIGlzRWRpdGFibGVQb3NpdGlvbiBhbmQgcmVsYXRl
ZCBmdW5jdGlvbnMgc2hvdWxkbid0IG1vdmUgcG9zaXRpb24gb3V0IG9mIHRhYmxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0cy8w
MS5wZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0
cy8wMS5wZW0KaW5kZXggYjM2ZjFkNWU0MjBiYTkxYzc1MmNlNmI5YzI5NzhiNmIxZmZmYjg5ZC4u
ZTIwOTU3NmYwMGY2ZmVjZGViMmQyNjhkMzNhNGU0ZTk1YTk3NjQyMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvMDEucGVtCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzLzAx
LnBlbQpAQCAtMiw0MiArMiw0MiBAQCBDZXJ0aWZpY2F0ZToKICAgICBEYXRhOgogICAgICAgICBW
ZXJzaW9uOiAzICgweDIpCiAgICAgICAgIFNlcmlhbCBOdW1iZXI6IDEgKDB4MSkKLSAgICBTaWdu
YXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgorICAgICAgICBTaWduYXR1
cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgogICAgICAgICBJc3N1ZXI6IENO
PXdlYi1wbGF0Zm9ybS10ZXN0cwogICAgICAgICBWYWxpZGl0eQotICAgICAgICAgICAgTm90IEJl
Zm9yZTogSmFuIDI3IDA5OjI3OjQwIDIwMTUgR01UCi0gICAgICAgICAgICBOb3QgQWZ0ZXIgOiBG
ZWIgMjYgMDk6Mjc6NDAgMjAxNSBHTVQKKyAgICAgICAgICAgIE5vdCBCZWZvcmU6IEZlYiAyOCAw
ODoxODozOSAyMDE1IEdNVAorICAgICAgICAgICAgTm90IEFmdGVyIDogTWFyIDMwIDA4OjE4OjM5
IDIwMTUgR01UCiAgICAgICAgIFN1YmplY3Q6IENOPXdlYi1wbGF0Zm9ybS10ZXN0cwogICAgICAg
ICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKICAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3Jp
dGhtOiByc2FFbmNyeXB0aW9uCi0gICAgICAgICAgICAgICAgUHVibGljLUtleTogKDIwNDggYml0
KQotICAgICAgICAgICAgICAgIE1vZHVsdXM6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmIyOmQz
OmEyOmQ4OmNkOjkzOjgyOjRmOjg3Ojc0OjRiOjM1Ojc3OjIzOgotICAgICAgICAgICAgICAgICAg
ICBlZjpkNDo4YjpmODphZDowMDpkYTpjZDo2NjozZjowZjo1ZDoxNzo3NTo0NDoKLSAgICAgICAg
ICAgICAgICAgICAgZDA6ZWU6ODM6Y2E6OGM6NzM6ZjQ6NTU6MjA6YTQ6OTI6ODU6NDA6ZTQ6YTI6
Ci0gICAgICAgICAgICAgICAgICAgIDVmOjU5OjUwOjc1Ojg5OjQ3OjUwOjczOjY2OmQ3OjQwOmFh
OmEzOmNiOjI2OgotICAgICAgICAgICAgICAgICAgICBjYTowYzpiMDo5NDo4ZTozZjoyZTpjNzpl
Mjo1MzphZTpkMTpjNDozZjpjNToKLSAgICAgICAgICAgICAgICAgICAgZDg6NTQ6ZDc6Mjc6MmM6
YjY6ZjA6OWY6MTg6MDY6MzA6Yjk6ZGU6YzQ6M2Q6Ci0gICAgICAgICAgICAgICAgICAgIDZkOjdi
OjYyOjg0OmYzOjVhOjM5OmI0OjgxOmZkOjg3OmY2OmQ5OmNkOjE1OgotICAgICAgICAgICAgICAg
ICAgICBlNTo5YzozYzplYzo3ZDpkMDo1MDplNjo5Zjo0ZTpjMjo3NTpjYTo5OTozYToKLSAgICAg
ICAgICAgICAgICAgICAgYTI6NGQ6ODU6NzA6YWQ6NTE6ZDY6MTM6YTQ6NWQ6MGU6Njk6Zjc6OTg6
M2E6Ci0gICAgICAgICAgICAgICAgICAgIDQ4OjAxOjg2OjI2OjI5OmY4OjhjOmJlOjZiOjIzOmNj
OjllOjAwOmM0OjExOgotICAgICAgICAgICAgICAgICAgICAyZDpjMjpiZjoyNTplMjoxMjowYTo2
NDo0MTphZDphODozNzpiZTowMTphODoKLSAgICAgICAgICAgICAgICAgICAgYjc6Nzc6Zjc6MjM6
NzE6NTU6ZjI6Njc6MzA6ZTE6ODA6NmY6NDg6ZWE6ZTM6Ci0gICAgICAgICAgICAgICAgICAgIDlh
OmJlOmIxOmY5OjUyOjBhOmQ0OjM4OjRiOjA3OmQ3OjhhOjZjOjg2OjU0OgotICAgICAgICAgICAg
ICAgICAgICAyNDplNzowMTpjODo3MDplYjpiNDozZjo1YTo1NDo1NzoxMzphMDpkMTo2ZDoKLSAg
ICAgICAgICAgICAgICAgICAgOGI6YTY6OWI6YmI6NjA6ODg6MjU6YTE6Zjg6Y2U6N2Q6MDU6ZDY6
NTI6MmI6Ci0gICAgICAgICAgICAgICAgICAgIDZmOmY0OjE0OmUxOmVkOjZjOmU0OjAwOjFiOmU2
OjFmOjVjOmY4OjYwOmE3OgotICAgICAgICAgICAgICAgICAgICAxZTpmNzpiNzo5MDo5ZDoyODo5
MzoxNzpjOTo1ZToxNjplZDo5YTplOTo2ODoKLSAgICAgICAgICAgICAgICAgICAgOWY6YWYKKyAg
ICAgICAgICAgIFJTQSBQdWJsaWMgS2V5OiAoMjA0OCBiaXQpCisgICAgICAgICAgICAgICAgTW9k
dWx1cyAoMjA0OCBiaXQpOgorICAgICAgICAgICAgICAgICAgICAwMDpiMTo0YjplMDphODoyNzpk
MjoxYTowODo0MzpkZDpiODpkNDo5NTo1MzoKKyAgICAgICAgICAgICAgICAgICAgZTk6Y2M6OWM6
ZjY6Y2E6NTQ6YTA6NzQ6NjY6ZTk6MmY6YmI6Mjg6Y2Y6NWM6CisgICAgICAgICAgICAgICAgICAg
IDE3OjQyOjQ3OmQ1OmY5OmYyOjMxOmUwOjJmOmYyOjE1OmEyOmRmOjRmOjQ2OgorICAgICAgICAg
ICAgICAgICAgICAzZjpjNjpiNTpjODplNzo3ZDo3YTo1YTozNzpiZTowZToyNDo5MTo3Zjo3NzoK
KyAgICAgICAgICAgICAgICAgICAgMjg6ZDE6MTQ6NWU6YTY6NGI6MzE6ZTg6NDE6NGY6MTM6NTc6
YTA6NWI6OTk6CisgICAgICAgICAgICAgICAgICAgIDYyOmZhOjQwOjhkOjIyOjY3OmQ3OjIwOmMw
OjQzOmUyOjljOmI5OjA4Ojg4OgorICAgICAgICAgICAgICAgICAgICA5YTplMDpiMTo5MzowMzoz
NjplOTplYjo3Njo3MTpmMDo0YTo5YzpmNjpmYzoKKyAgICAgICAgICAgICAgICAgICAgMjI6MzQ6
ZGQ6NGM6MDI6YTc6Njc6Nzk6NjQ6YTI6ZjU6NDU6NTE6Y2Q6MTE6CisgICAgICAgICAgICAgICAg
ICAgIDkwOjZjOmUyOmQxOjk3OjhmOmVkOjJlOjhlOmY2OjM4OmFjOjA0OjhhOmE4OgorICAgICAg
ICAgICAgICAgICAgICBiZTo4MTo1YTo0YzpmNjowZTo3ZTo2MDowMDo4Mzo2Mjo5ODpkYzo5Mzpk
ODoKKyAgICAgICAgICAgICAgICAgICAgMmU6ZDI6OWM6OWM6MDQ6MmU6Y2I6ZWU6YTI6NGE6NzM6
OWQ6YzU6NzE6MjM6CisgICAgICAgICAgICAgICAgICAgIDUwOjEzOjZlOjdlOmIxOjEwOjFjOjQw
OmY2OjAxOjJmOjlkOmU0OmE1OjM3OgorICAgICAgICAgICAgICAgICAgICBhNTo5MDowYTo4ZTph
NDo0MzpjMzo2NzowMzowYTphYzplYzoyNTo3NDpjYToKKyAgICAgICAgICAgICAgICAgICAgZTE6
ZjQ6Y2Y6ZmI6YWM6Y2E6M2Y6NmI6OWY6ODM6MzM6NjA6NWI6MTA6MzY6CisgICAgICAgICAgICAg
ICAgICAgIDk2OjVlOjY2OjljOjBmOmVkOjQ0OjhkOmQwOjNmOjg4OjdkOjczOmRlOjIxOgorICAg
ICAgICAgICAgICAgICAgICAxZjo1Mjo3NzphZTpjNTowNzo1NToxNToyODo1OTpkMDo0MDplYjpm
NTo0ZjoKKyAgICAgICAgICAgICAgICAgICAgMDI6ZmU6ZWI6OGI6MmY6MDU6MjE6N2Y6NGI6NDA6
YWE6YjQ6ZWU6ZGQ6ZTk6CisgICAgICAgICAgICAgICAgICAgIGY2OjhmCiAgICAgICAgICAgICAg
ICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQogICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoK
ICAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCiAgICAgICAgICAgICAgICAg
Q0E6VFJVRQogICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAg
ICAgICAgICAgICAgIDBFOjMxOkMxOjBEOjZDOjk0OkUxOkYwOkQ5OjhDOkM0OkU0OkE1OkRGOkZE
OjFDOkNCOjNCOkNDOjU4CisgICAgICAgICAgICAgICAgRTk6NjY6NDI6MTU6MUQ6OTI6Qzg6QjA6
Q0I6ODE6NTk6MDk6QUI6ODI6RUQ6RTM6MUM6RjI6MDE6MkEKICAgICAgICAgICAgIFg1MDl2MyBB
dXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIGtleWlkOjBFOjMxOkMx
OjBEOjZDOjk0OkUxOkYwOkQ5OjhDOkM0OkU0OkE1OkRGOkZEOjFDOkNCOjNCOkNDOjU4CisgICAg
ICAgICAgICAgICAga2V5aWQ6RTk6NjY6NDI6MTU6MUQ6OTI6Qzg6QjA6Q0I6ODE6NTk6MDk6QUI6
ODI6RUQ6RTM6MUM6RjI6MDE6MkEKICAgICAgICAgICAgICAgICBEaXJOYW1lOi9DTj13ZWItcGxh
dGZvcm0tdGVzdHMKICAgICAgICAgICAgICAgICBzZXJpYWw6MDEKIApAQCAtNDYsMzggKzQ2LDM4
IEBAIENlcnRpZmljYXRlOgogICAgICAgICAgICAgWDUwOXYzIEV4dGVuZGVkIEtleSBVc2FnZTog
CiAgICAgICAgICAgICAgICAgVExTIFdlYiBTZXJ2ZXIgQXV0aGVudGljYXRpb24KICAgICBTaWdu
YXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICAgMzI6YTc6
ZjY6ZmY6YmQ6Y2U6NTk6MmM6OTM6OTQ6ZTk6YTE6NTc6ODc6N2M6MDE6ODI6MjA6Ci0gICAgICAg
ICBkNjoyNTo2YTowOTowNTpmNjo3NDpkNTozZjozNzo3ODphOTpmOTo1YzpmNjozYzoxNDplNjoK
LSAgICAgICAgIDVjOjFlOjk2Ojc0OjllOjQ2OmI4OjVmOjNiOjg4OmJjOjE4OjNjOmM0OmY2OjY4
OmUwOjc5OgotICAgICAgICAgOTI6NTU6N2M6Yzk6NWI6YjI6ODg6MWU6Nzc6NTQ6YWQ6YmM6ZTM6
NDM6Y2I6MmM6NGM6ZjI6Ci0gICAgICAgICAwNDo0ZDowNjpiNDpiMjoxYjozMjowNzowNjpkZTpl
ODpiNjpkMTpmYjpjNjpiMjpjNTo0NToKLSAgICAgICAgIGZhOjMwOjQ2OmRmOjQ5OjIyOmE4OmVh
OmM1OjBjOmExOmVlOmMyOmZjOjI5OjQ5OjEyOjg5OgotICAgICAgICAgNzY6NDQ6MmY6OTI6NTM6
Y2Y6ZDM6NWM6YTA6M2E6ODI6OTk6Y2Q6MWU6NDc6MmY6OTg6MmE6Ci0gICAgICAgICBlYjo2NDo5
ODpkYjpiNTo5NDo0ZjpjZjoxYzowZjo4ODpjYjpmYjo5ODo3YTpjZDphNzo1ZDoKLSAgICAgICAg
IDJkOjU3Ojk5OjRkOjUyOjY1OjQ5OmM4OjlhOmRhOjU5OmYzOmQwOmQzOjc1OmM5OjFiOjljOgot
ICAgICAgICAgYzY6OGQ6OGE6ZjE6ZDU6Mjk6NjM6ZjQ6NTM6MDA6ODE6ZTA6MTk6OGM6ODk6ZjM6
Zjk6MDI6Ci0gICAgICAgICBhZDo0NDo0ODowZTpjZDpmZDo2Njo3OTpmYzoyNTpjMDowNzowNzo4
NjoxYzoyNDo5ODozNzoKLSAgICAgICAgIDcyOmZjOjc0OmI1OjdmOjEyOmNkOjA4OjI3OjcwOmQx
OmNlOjAxOjAxOjAxOjE2OmVhOjRiOgotICAgICAgICAgYmY6ZGQ6M2E6NjU6Nzc6MzE6MjA6ZGI6
OWU6MWY6ODI6YWU6YWM6OWM6NWI6NDc6MGU6YjI6Ci0gICAgICAgICA0MTpjMDpiMjo4MjpiYTo1
OTphYTo5NDpiODpjMTozMTpmNTowNzo1Njo3Njo5NDo2MDpmNToKLSAgICAgICAgIDY0OjEzOjQ4
OjUyCisgICAgICAgIDdkOjIwOjY4OjgyOjVlOmZiOjQxOmVmOmY2OjljOjViOjE0OmZkOjRiOmFl
OjVhOjg4OmIzOgorICAgICAgICBmYzplNzo5ZjpjNDozMjplOTozOTo0MzpkYzoyYzpjZTo3Njo4
MzoyNTpjMDpkMTowNjo2MToKKyAgICAgICAgZGI6ZDU6ZmM6ODU6YzU6MTg6MmI6NjQ6MzA6YmE6
NmQ6MzA6ZjE6NWQ6YzE6ZTE6MDM6NDM6CisgICAgICAgIGQxOjc2OjgwOjUzOmYwOmViOjU5OjZi
Ojg2OmQ5Ojk2OjJlOmE3OmM3OjA2OjY0OmI1OjhkOgorICAgICAgICBlYzo0MzphODpkYjowYTo0
Nzo5MTo2OTo2ZDoxZjpiMDoyYTo1MTozMjo5MzpiZDpjZDpjODoKKyAgICAgICAgODM6MzQ6ZWQ6
MGU6NmM6MjI6YWY6NGU6ZDE6YjM6NWY6YzI6ZmQ6ZjQ6MDQ6ZTM6N2U6MTM6CisgICAgICAgIDky
OmRhOjE3OjQ5OjdlOjA4OmE5OmNkOjU0OjkwOjU3Ojk2OmIwOmJjOjFkOjI3OjI4OmJlOgorICAg
ICAgICBjMDoxNDplYjowYzozZjo3Nzo4ZjphMDo0ODo1ZTo2MzpjNzo4MzowYTplYjo0Yzo5Yjpj
ODoKKyAgICAgICAgODg6M2I6NDE6ZGU6NjY6M2E6ZjI6YzE6NTI6N2U6ZGY6NTk6YWI6YzQ6ZTg6
ZGQ6ODU6YWI6CisgICAgICAgIDJiOjkyOjdlOmFiOjAwOjM0Ojg5OmFlOmE1OjU4Ojk2OjA5OjBm
OjdhOmRmOjc5OmQ5OjY0OgorICAgICAgICBhMDphMjo2YjoxODo0NjpiODo3Yzo4Yzo0NDplMzpl
MTpjZTpkODplNjphMTo0ZDpiZTo2MjoKKyAgICAgICAgOWQ6ZTU6MWI6Zjg6ZjY6MDY6ZDk6ZmQ6
MmY6Yjk6NTU6Yzc6ZTE6YzE6ZTk6ZmI6ODE6NmY6CisgICAgICAgIDk4OmZlOmU0OjM5OjY4OmZl
OjI1OjI3OjU1Ojg4OjRhOmMzOjYyOmMzOjdhOjg2OmUwOjQ2OgorICAgICAgICAwNDoyNDpiNjpm
NTozMDoyMjplMjozMDpjMjpkYTo4Njo2NDpmZTphNjozMTpjMjo4Mzo0YzoKKyAgICAgICAgNzE6
NWU6YTE6YjkKIC0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQogTUlJRFR6Q0NBamVnQXdJQkFn
SUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQWRNUnN3R1FZRFZRUUREQkozWldJdAotY0d4aGRHWnZj
bTB0ZEdWemRITXdIaGNOTVRVd01USTNNRGt5TnpRd1doY05NVFV3TWpJMk1Ea3lOelF3V2pBZAor
Y0d4aGRHWnZjbTB0ZEdWemRITXdIaGNOTVRVd01qSTRNRGd4T0RNNVdoY05NVFV3TXpNd01EZ3hP
RE01V2pBZAogTVJzd0dRWURWUVFEREJKM1pXSXRjR3hoZEdadmNtMHRkR1Z6ZEhNd2dnRWlNQTBH
Q1NxR1NJYjNEUUVCQVFVQQotQTRJQkR3QXdnZ0VLQW9JQkFRQ3kwNkxZelpPQ1Q0ZDBTelYzSSsv
VWkvaXRBTnJOWmo4UFhSZDFSTkR1ZzhxTQotYy9SVklLU1NoVURrb2w5WlVIV0pSMUJ6WnRkQXFx
UExKc29Nc0pTT1B5N0g0bE91MGNRL3hkaFUxeWNzdHZDZgotR0FZd3VkN0VQVzE3WW9UeldqbTBn
ZjJIOXRuTkZlV2NQT3g5MEZEbW4wN0NkY3FaT3FKTmhYQ3RVZFlUcEYwTwotYWZlWU9rZ0JoaVlw
K0l5K2F5UE1uZ0RFRVMzQ3Z5WGlFZ3BrUWEyb043NEJxTGQzOXlOeFZmSm5NT0dBYjBqcQotNDVx
K3NmbFNDdFE0U3dmWGlteUdWQ1RuQWNodzY3US9XbFJYRTZEUmJZdW1tN3RnaUNXaCtNNTlCZFpT
SzIvMAotRk9IdGJPUUFHK1lmWFBoZ3B4NzN0NUNkS0pNWHlWNFc3WnJwYUordkFnTUJBQUdqZ1pr
d2daWXdEQVlEVlIwVAotQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVRGpIQkRXeVU0ZkRaak1Ua3Bk
LzlITXM3ekZnd1JRWURWUjBqQkQ0dwotUElBVURqSEJEV3lVNGZEWmpNVGtwZC85SE1zN3pGaWhJ
YVFmTUIweEd6QVpCZ05WQkFNTUVuZGxZaTF3YkdGMAorQTRJQkR3QXdnZ0VLQW9JQkFRQ3hTK0Nv
SjlJYUNFUGR1TlNWVStuTW5QYktWS0IwWnVrdnV5alBYQmRDUjlYNQorOGpIZ0wvSVZvdDlQUmov
R3Rjam5mWHBhTjc0T0pKRi9keWpSRkY2bVN6SG9RVThUVjZCYm1XTDZRSTBpWjljZword0VQaW5M
a0lpSnJnc1pNRE51bnJkbkh3U3B6Mi9DSTAzVXdDcDJkNVpLTDFSVkhORVpCczR0R1hqKzB1anZZ
NAorckFTS3FMNkJXa3oyRG41Z0FJTmltTnlUMkM3U25Kd0VMc3Z1b2twem5jVnhJMUFUYm42eEVC
eEE5Z0V2bmVTbAorTjZXUUNvNmtROE5uQXdxczdDVjB5dUgwei91c3lqOXJuNE16WUZzUU5wWmVa
cHdQN1VTTjBEK0lmWFBlSVI5UworZDY3RkIxVVZLRm5RUU92MVR3TCs2NHN2QlNGL1MwQ3F0Tzdk
NmZhUEFnTUJBQUdqZ1prd2daWXdEQVlEVlIwVAorQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVNlda
Q0ZSMlN5TERMZ1ZrSnE0THQ0eHp5QVNvd1JRWURWUjBqQkQ0dworUElBVTZXWkNGUjJTeUxETGdW
a0pxNEx0NHh6eUFTcWhJYVFmTUIweEd6QVpCZ05WQkFNTUVuZGxZaTF3YkdGMAogWm05eWJTMTBa
WE4wYzRJQkFUQUxCZ05WSFE4RUJBTUNBZ1F3RXdZRFZSMGxCQXd3Q2dZSUt3WUJCUVVIQXdFdwot
RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQURLbjl2Kzl6bGtzazVUcG9WZUhmQUdDSU5ZbGFna0Y5
blRWUHpkNAotcWZsYzlqd1U1bHdlbG5TZVJyaGZPNGk4R0R6RTltamdlWkpWZk1sYnNvZ2VkMVN0
dk9ORHl5eE04Z1JOQnJTeQotR3pJSEJ0N290dEg3eHJMRlJmb3dSdDlKSXFqcXhReWg3c0w4S1Vr
U2lYWkVMNUpUejlOY29EcUNtYzBlUnkrWQotS3V0a21OdTFsRS9QSEErSXkvdVllczJuWFMxWG1V
MVNaVW5JbXRwWjg5RFRkY2tibk1hTml2SFZLV1AwVXdDQgotNEJtTWlmUDVBcTFFU0E3Ti9XWjUv
Q1hBQndlR0hDU1lOM0w4ZExWL0VzMElKM0RSemdFQkFSYnFTNy9kT21WMwotTVNEYm5oK0NycXlj
VzBjT3NrSEFzb0s2V2FxVXVNRXg5UWRXZHBSZzlXUVRTRkk9CitEUVlKS29aSWh2Y05BUUVMQlFB
RGdnRUJBSDBnYUlKZSswSHY5cHhiRlAxTHJscUlzL3pubjhReTZUbEQzQ3pPCitkb01sd05FR1lk
dlYvSVhGR0N0a01McHRNUEZkd2VFRFE5RjJnRlB3NjFscmh0bVdMcWZIQm1TMWpleERxTnNLCitS
NUZwYlIrd0tsRXlrNzNOeUlNMDdRNXNJcTlPMGJOZnd2MzBCT04rRTVMYUYwbCtDS25OVkpCWGxy
QzhIU2NvCit2c0FVNnd3L2Q0K2dTRjVqeDRNSzYweWJ5SWc3UWQ1bU92TEJVbjdmV2F2RTZOMkZx
eXVTZnFzQU5JbXVwVmlXCitDUTk2MzNuWlpLQ2lheGhHdUh5TVJPUGh6dGptb1UyK1lwM2xHL2oy
QnRuOUw3bFZ4K0hCNmZ1QmI1ais1RGxvCisvaVVuVlloS3cyTERlb2JnUmdRa3R2VXdJdUl3d3Rx
R1pQNm1NY0tEVEhGZW9iaz0KIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzLzAyLnBl
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzLzAy
LnBlbQppbmRleCA1ZDU5YTNiNjZjNzQ0ZGI1ZjdjYzQ5YzRjNGQ4ZTcyMmI4M2I0MWRmLi5kYTlk
NGFhMDkzY2RlNTIxZTYzZjc1ODY1YzY0MDFiODUzOTdlOWUyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0cy8wMi5wZW0KKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvMDIucGVt
CkBAIC0yLDQyICsyLDQyIEBAIENlcnRpZmljYXRlOgogICAgIERhdGE6CiAgICAgICAgIFZlcnNp
b246IDMgKDB4MikKICAgICAgICAgU2VyaWFsIE51bWJlcjogMiAoMHgyKQotICAgIFNpZ25hdHVy
ZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgIFNpZ25hdHVyZSBB
bGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgIElzc3VlcjogQ049d2Vi
LXBsYXRmb3JtLXRlc3RzCiAgICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3Jl
OiBKYW4gMjcgMDk6Mjc6NDEgMjAxNSBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IEZlYiAy
NiAwOToyNzo0MSAyMDE1IEdNVAorICAgICAgICAgICAgTm90IEJlZm9yZTogRmViIDI4IDA4OjE4
OjM5IDIwMTUgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBNYXIgMzAgMDg6MTg6MzkgMjAx
NSBHTVQKICAgICAgICAgU3ViamVjdDogQ049bG9jYWxob3N0CiAgICAgICAgIFN1YmplY3QgUHVi
bGljIEtleSBJbmZvOgogICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5
cHRpb24KLSAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMjA0OCBiaXQpCi0gICAgICAgICAg
ICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6ZTg6NTE6ZWM6NjE6ODA6YjY6
YWM6NjY6ZWQ6NzM6MDk6ZGI6MDA6MzA6Ci0gICAgICAgICAgICAgICAgICAgIDQ4OjA0OjgzOmUx
OjQxOjY1Ojk1OjJkOjhmOjBkOjUwOjYzOmQyOjhjOjJhOgotICAgICAgICAgICAgICAgICAgICA1
MDo5Mzo0Yjo1Njo3ODo2NTo5NjpjZjo3OTo0Yzo5YzozYzplODo4NjplYToKLSAgICAgICAgICAg
ICAgICAgICAgYzU6YzI6ZTk6MGE6OWM6NWY6MTU6OGI6YTU6ZmQ6MjE6NTc6ZWE6MTM6MjM6Ci0g
ICAgICAgICAgICAgICAgICAgIDU1OjA2OmMyOjhhOmNjOjNmOmFhOmFiOmQ0OmRkOmI5OmVhOmQ5
OjhhOmM5OgotICAgICAgICAgICAgICAgICAgICAyODo3YTpkZToxNDpkODo3MjoyNDpiODphNDpi
ZjpjNjo2NDo3MjpkNzphOToKLSAgICAgICAgICAgICAgICAgICAgZDA6ZGU6MGU6ZGY6NGM6YTY6
NTA6MTg6MjY6ZjM6NWI6ZWM6NDA6NmE6MWE6Ci0gICAgICAgICAgICAgICAgICAgIDI3OjBjOjE5
Ojg1OjQ3OjM0OmFkOjQ5OjM3OmFmOjczOjhlOjc3OmIzOjQzOgotICAgICAgICAgICAgICAgICAg
ICBkMzo4MzozYTo0Yjo3NjoxNjpiMzpiODplOToxNTo5OTpmZjowNzphYTo1ZjoKLSAgICAgICAg
ICAgICAgICAgICAgZTE6MjY6Yjk6NzI6MDI6ODc6MDc6Njk6M2I6ODY6ODU6OGY6Nzk6YWQ6YWM6
Ci0gICAgICAgICAgICAgICAgICAgIGVjOjE1OmM0OjE2OjJlOjQ1OjJhOmE5OjFhOjgyOjI0OmRl
OmFjOjg0OjU2OgotICAgICAgICAgICAgICAgICAgICA4ODpiZDo2NzpmMzpmMzpiYjo4NDpkNzph
ZjpmOTo2NToyMzowMTplOTowMToKLSAgICAgICAgICAgICAgICAgICAgZDA6MDQ6Y2U6YTY6MDY6
MDk6MDk6NDQ6NTg6YTc6YmE6ODk6YWI6YjI6Y2E6Ci0gICAgICAgICAgICAgICAgICAgIDk3OmI2
OjE4OjZhOjZjOjg0OmE4OjQ3OmU3OmY1OjVmOjhmOmJmOjcxOjdiOgotICAgICAgICAgICAgICAg
ICAgICA0ZjpiOTphZDozMTpkZDo3MzpiZjo2Mzo5ZjpiNDo0Njo4Yzo5Mzo4NToyNDoKLSAgICAg
ICAgICAgICAgICAgICAgMjU6MTk6NzM6ZWQ6MDM6MTk6ZjM6M2Y6MWQ6YWY6MGU6OGI6YTQ6NzY6
OTA6Ci0gICAgICAgICAgICAgICAgICAgIDg4OjM5OmI1OjI3OmY5OjE3Ojg2OmYxOjRiOmJiOjdl
OjYwOjdmOmY5OmQ3OgotICAgICAgICAgICAgICAgICAgICBmYjo2NQorICAgICAgICAgICAgUlNB
IFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKKyAgICAgICAgICAgICAgICBNb2R1bHVzICgyMDQ4IGJp
dCk6CisgICAgICAgICAgICAgICAgICAgIDAwOmQwOjJlOjAzOmMxOjhmOmNlOjY5OjViOjA1OjZk
OjFjOjA4Ojg2OjcwOgorICAgICAgICAgICAgICAgICAgICBlNDpkMDpkNDpmODpiZDo0MDoxMTph
MTo5ODpjOToxODpjMjphYToxNjoyMToKKyAgICAgICAgICAgICAgICAgICAgMGU6ODA6YTQ6ZjQ6
Y2Q6NzU6NDE6ZTc6NTA6M2U6YWM6OWQ6NTc6YmY6YzE6CisgICAgICAgICAgICAgICAgICAgIDA1
OmZhOjIzOmI5OmFjOjRhOjJlOjU4OmNkOjZjOmJiOjMxOjY0OjNkOjJiOgorICAgICAgICAgICAg
ICAgICAgICA3MTpkNzo1MTplMjpjMTpiNzpjNjo3Njo3ZTo0MjpiYTo4MDo3NDozMzo1ODoKKyAg
ICAgICAgICAgICAgICAgICAgMzM6NWM6Zjg6ODA6Y2Q6ZWI6YmU6M2Q6YTk6NjU6YmM6MzA6NGI6
ZmU6Mjg6CisgICAgICAgICAgICAgICAgICAgIDNjOjU3OjY4OjUyOjRjOmZjOjhlOmU0OmFlOjA2
OjZlOjcwOjljOjcxOjVkOgorICAgICAgICAgICAgICAgICAgICA4ODozOTo4NjpkMTo3ZTplZjpm
YzoyZjowMDozNjo4MzphYjozMzo5OTowMjoKKyAgICAgICAgICAgICAgICAgICAgNmE6ODg6YWE6
YTA6ZTU6NTM6ZmY6ZDA6OWU6MGU6YWU6YmM6NjA6YmQ6NTA6CisgICAgICAgICAgICAgICAgICAg
IGY4OmMwOjU2Ojg1OjQ2OmU0OmVmOjE5OmIyOjJjOmNhOmRkOjRmOjRiOjAxOgorICAgICAgICAg
ICAgICAgICAgICA5MjpjYjphZTplZDpjMDphMDplMjoyNToyZTpkZTozMzpkZjpkZjo1ZjplOToK
KyAgICAgICAgICAgICAgICAgICAgMWU6NzE6MDM6YTQ6YzY6NjM6YmY6NmQ6YjU6NWI6Zjg6ZTk6
MDI6MWM6ZTE6CisgICAgICAgICAgICAgICAgICAgIDE0OmNjOjVjOmZmOmZiOmQ1OjVkOjEzOmM1
OjFhOjY1OjYzOjRhOmM2OjY4OgorICAgICAgICAgICAgICAgICAgICAxNTpkZDpmMTpjNzpkYzph
NzowMzowMzphYzo4MjpmZTo3NTozZjoxNDo1NToKKyAgICAgICAgICAgICAgICAgICAgNTc6OTk6
N2E6MmY6ZTQ6ZDA6ODI6NmI6MTk6NTA6OTA6ZmU6YWU6ZTk6NDA6CisgICAgICAgICAgICAgICAg
ICAgIGRkOmM2OjBlOjE5OjZmOjJjOjczOjc2OmY0OjViOjhlOmQ1OjJmOmJiOjEwOgorICAgICAg
ICAgICAgICAgICAgICAxZTozNTo1OToyYzo3ZjowZDo1NDo3ZDplODoxODpjMTphZDo0ZTpkMTpm
NToKKyAgICAgICAgICAgICAgICAgICAgNTE6N2QKICAgICAgICAgICAgICAgICBFeHBvbmVudDog
NjU1MzcgKDB4MTAwMDEpCiAgICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgogICAgICAgICAgICAg
WDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKICAgICAgICAgICAgICAgICBDQTpGQUxTRQogICAg
ICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAg
IEY2OkNCOjgyOjY0OkIwOkM0OjAyOjFBOjg1OjUzOjBFOjlBOjZCOkQ4OkMyOjMwOkFDOjA1OjYx
OkM4CisgICAgICAgICAgICAgICAgNjE6NUM6M0U6M0I6MDM6QUY6QkU6MDU6QTI6NjU6RTA6NEE6
Qzg6QzM6MDM6NjY6MkU6MTE6QzY6NEMKICAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5
IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIGtleWlkOjBFOjMxOkMxOjBEOjZDOjk0OkUx
OkYwOkQ5OjhDOkM0OkU0OkE1OkRGOkZEOjFDOkNCOjNCOkNDOjU4CisgICAgICAgICAgICAgICAg
a2V5aWQ6RTk6NjY6NDI6MTU6MUQ6OTI6Qzg6QjA6Q0I6ODE6NTk6MDk6QUI6ODI6RUQ6RTM6MUM6
RjI6MDE6MkEKIAogICAgICAgICAgICAgWDUwOXYzIEtleSBVc2FnZTogCiAgICAgICAgICAgICAg
ICAgRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudApA
QCAtNDYsNDAgKzQ2LDQwIEBAIENlcnRpZmljYXRlOgogICAgICAgICAgICAgWDUwOXYzIFN1Ympl
Y3QgQWx0ZXJuYXRpdmUgTmFtZTogCiAgICAgICAgICAgICAgICAgRE5TOmxvY2FsaG9zdCwgRE5T
Ond3dy5sb2NhbGhvc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS5sb2NhbGhvc3QsIERO
Uzp4bi0tbHZlLTZsYWQubG9jYWxob3N0LCBETlM6d3d3Mi5sb2NhbGhvc3QsIEROUzp3d3cxLmxv
Y2FsaG9zdAogICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9u
Ci0gICAgICAgICA4MDpiNDoyMzo4MzpkOTo1YjpjODo1ZjpmZToxNjoyNToyYzpkZjo2NDo4ODow
ODo2YjoxZToKLSAgICAgICAgIGY5OjE1OjQ2OjU4OjU0OmNlOmUwOjI4Ojg4OmFmOmYxOjU4OmMz
OjdmOmMyOjA4OjdjOjhiOgotICAgICAgICAgZDQ6MmY6ZGE6ZjM6YzU6YmQ6OTU6MjY6ZjY6MGU6
MGY6NjY6MzQ6NGU6NmE6MzU6M2M6MTQ6Ci0gICAgICAgICA2OTplYjoxNToyZTpmZTowZDowZDpj
MTpmZjozMDoyZDozMjpjZToyODpjODo4Yjo1NzphYzoKLSAgICAgICAgIGZjOjU0Ojg5OjljOjM3
OjAxOjIyOjA4OmZlOmRiOmJiOjQwOjk2OmVjOjhiOjk3OjYxOjlmOgotICAgICAgICAgNjg6Yzg6
MjU6NGQ6MTk6Nzc6Zjc6YTY6ODY6NTE6MmM6ZjA6Yjc6Mzk6MmI6YTA6Nzk6ODM6Ci0gICAgICAg
ICA0Yjo0Mjo3NTo2ZTpjYTpjNjoyYTowYzoyODo4Yjo2OTo4Mzo0NjozZTo5ZTowZjowZjo3ZToK
LSAgICAgICAgIDFhOjE3OjA5OjFiOjliOjAyOmNlOjIxOjg3OmMyOmUyOjBkOjY4OjkxOjFiOjNh
OjVjOjZkOgotICAgICAgICAgYzU6MDU6Yzg6MmI6MTM6ZDE6Mjg6YTM6ZWQ6OTQ6NzM6ZWE6N2Q6
YjU6Yjc6Yjg6NGQ6YmU6Ci0gICAgICAgICA4NTozYzphZjo2Njo0NjoxYjowYToyNzo1ZDo3MTpi
NTpjNjo5ZDpkYzpmZjpkNjplNDoyMzoKLSAgICAgICAgIGVkOjg5OjExOjY0OjY5OjE2OjRmOjJm
OmM1OmQ2OjgxOjQxOmQ0Ojc1OjhkOjhlOjliOjRkOgotICAgICAgICAgODc6MWQ6MDI6YmQ6YTc6
ZDA6Y2Y6YTI6NDE6ZmI6Mjc6Y2Y6NTI6Y2I6MmU6MTk6NDk6NDE6Ci0gICAgICAgICA1YzpkNDoy
ZjpjNzozOToxMzo5ODo3Mjo2NjoxZDo0Nzo5NzpjYjo2YjpkZDozMTo1Mzo0ZToKLSAgICAgICAg
IGIyOmIwOmFmOjZjOjg2OmE3OjM4OjFmOmExOmEzOjlmOjU0OjZiOmUxOmM3OmEyOjE1OmYxOgot
ICAgICAgICAgZjA6ZDQ6NWE6NTcKKyAgICAgICAgMGE6Y2Q6MGQ6ODU6ZTc6YzQ6Y2M6OTU6MDU6
NTA6MTM6Yjk6MGE6Njk6NDQ6YzM6OGM6N2M6CisgICAgICAgIDkwOjJiOjQxOjEyOjlkOjM0OmUz
OjNkOmRjOjBlOmQzOjkwOmIxOjZkOjdlOjQzOjQyOjQwOgorICAgICAgICBlNTo2NTo2ZjpjMTpj
ZTo1Nzo5MjpmODoyYzplMTo4Njo4NDoyODpjMjoyMToxNDo1Mjo5ZDoKKyAgICAgICAgNzY6ZTg6
ZWM6MmM6Nzc6NTc6NmM6MmE6NjA6Yjk6MjE6OTY6OTU6ZTA6NDc6NTE6N2I6NGE6CisgICAgICAg
IGZhOjYxOjgxOjA5OjY4OjA0OjgyOmMzOmM2OjljOmEwOjE0OjgxOjJmOmFkOjJhOjNjOjU0Ogor
ICAgICAgICBkOTowNjplNToyNTo2Zjo4ZToxMTozZDpjMzoyMDoyZDo3ZToxZjphMDoyNjoyMTpi
Yzo1ZjoKKyAgICAgICAgZTU6N2M6NTY6OWE6MjM6MWI6NDc6Zjk6YTU6ZTk6MWI6OGY6N2I6NjU6
OTE6MDQ6Y2Y6YjI6CisgICAgICAgIGExOjVkOmU1Ojc5OjQxOjk0OjQ1OmFjOjdlOmE5OmY5OjNj
OmEyOmI5OmI5OmU3OmI1OjMxOgorICAgICAgICAwNjoyNTo2NTpkNDo4ODpjNzo5MTphZTozMDow
ZDoxNTphZDo2MTo1NDowNTplNDpkNzplODoKKyAgICAgICAgZDc6ZjQ6ODM6Y2Q6NzE6OWI6MWU6
YWM6OTA6OTU6NGQ6N2Y6MWI6YzE6OWE6N2M6N2E6MmY6CisgICAgICAgIGFlOmZmOmZmOmJhOjBk
OjQ2OjQyOjlhOjFhOjI0Ojg5OmU3OjNlOmZhOmE0OjQ0OjVhOmI0OgorICAgICAgICA4OTo3MTo3
YTo1ZTo2Mzo3YzoyZTo1OTpjOTo2ZTo4YjpkYzowNzo0Nzo4NzphMTpjODplMToKKyAgICAgICAg
ZTk6YzU6NDQ6ZDc6NzY6YzY6YTI6ZDI6MDE6MWU6OTU6MjU6MDM6NWI6YmY6ZDE6YTk6OTA6Cisg
ICAgICAgIGRkOjcwOjQ5OmY4Ojg5OmM4OjZiOjMzOjQzOmJlOjY4OmNjOmNmOmQzOmQxOjc2Ojdm
OmViOgorICAgICAgICBhOToyNDo5NToyMgogLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCiBN
SUlEblRDQ0FvV2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBZE1Sc3dHUVlEVlFRRERC
SjNaV0l0Ci1jR3hoZEdadmNtMHRkR1Z6ZEhNd0hoY05NVFV3TVRJM01Ea3lOelF4V2hjTk1UVXdN
akkyTURreU56UXhXakFVCitjR3hoZEdadmNtMHRkR1Z6ZEhNd0hoY05NVFV3TWpJNE1EZ3hPRE01
V2hjTk1UVXdNek13TURneE9ETTVXakFVCiBNUkl3RUFZRFZRUUREQWxzYjJOaGJHaHZjM1F3Z2dF
aU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCi1Bb0lCQVFEb1VleGhnTGFzWnUxekNk
c0FNRWdFZytGQlpaVXRqdzFRWTlLTUtsQ1RTMVo0WlpiUGVVeWNQT2lHCi02c1hDNlFxY1h4V0xw
ZjBoVitvVEkxVUd3b3JNUDZxcjFOMjU2dG1LeVNoNjNoVFljaVM0cEwvR1pITFhxZERlCi1EdDlN
cGxBWUp2TmI3RUJxR2ljTUdZVkhOSzFKTjY5empuZXpROU9ET2t0MkZyTzQ2UldaL3dlcVgrRW11
WElDCi1od2RwTzRhRmozbXRyT3dWeEJZdVJTcXBHb0lrM3F5RVZvaTlaL1B6dTRUWHIvbGxJd0hw
QWRBRXpxWUdDUWxFCi1XS2U2aWF1eXlwZTJHR3BzaEtoSDUvVmZqNzl4ZTArNXJUSGRjNzlqbjdS
R2pKT0ZKQ1VaYyswREdmTS9IYThPCi1pNlIya0lnNXRTZjVGNGJ4Uzd0K1lILzUxL3RsQWdNQkFB
R2pnZkF3Z2Uwd0NRWURWUjBUQkFJd0FEQWRCZ05WCi1IUTRFRmdRVTlzdUNaTERFQWhxRlV3NmFh
OWpDTUt3RlljZ3dId1lEVlIwakJCZ3dGb0FVRGpIQkRXeVU0ZkRaCi1qTVRrcGQvOUhNczd6Rmd3
Q3dZRFZSMFBCQVFEQWdYZ01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUJNSDRHCitBb0lCQVFE
UUxnUEJqODVwV3dWdEhBaUdjT1RRMVBpOVFCR2htTWtZd3FvV0lRNkFwUFROZFVIblVENnNuVmUv
Cit3UVg2STdtc1NpNVl6V3k3TVdROUszSFhVZUxCdDhaMmZrSzZnSFF6V0ROYytJRE42NzQ5cVdX
OE1FditLRHhYCithRkpNL0k3a3JnWnVjSnh4WFlnNWh0Ris3L3d2QURhRHF6T1pBbXFJcXFEbFUv
L1FuZzZ1dkdDOVVQakFWb1ZHCis1Tzhac2l6SzNVOUxBWkxMcnUzQW9PSWxMdDR6Mzk5ZjZSNXhB
NlRHWTc5dHRWdjQ2UUljNFJUTVhQLzcxVjBUCit4UnBsWTByR2FCWGQ4Y2ZjcHdNRHJJTCtkVDhV
VlZlWmVpL2swSUpyR1ZDUS9xN3BRTjNHRGhsdkxITjI5RnVPCisxUys3RUI0MVdTeC9EVlI5NkJq
QnJVN1I5VkY5QWdNQkFBR2pnZkF3Z2Uwd0NRWURWUjBUQkFJd0FEQWRCZ05WCitIUTRFRmdRVVlW
dytPd092dmdXaVplQkt5TU1EWmk0Unhrd3dId1lEVlIwakJCZ3dGb0FVNldaQ0ZSMlN5TERMCitn
VmtKcTRMdDR4enlBU293Q3dZRFZSMFBCQVFEQWdYZ01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3
TUJNSDRHCiBBMVVkRVFSM01IV0NDV3h2WTJGc2FHOXpkSUlOZDNkM0xteHZZMkZzYUc5emRJSWhl
RzR0TFc0NGFqWmtjelV6CiBiSGQzYTNKeGFIWXlPR0V1Ykc5allXeG9iM04wZ2haNGJpMHRiSFps
TFRac1lXUXViRzlqWVd4b2IzTjBnZzUzCiBkM2N5TG14dlkyRnNhRzl6ZElJT2QzZDNNUzVzYjJO
aGJHaHZjM1F3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCCi1BSUMwSTRQWlc4aGYvaFlsTE45a2lB
aHJIdmtWUmxoVXp1QW9pSy94V01OL3dnaDhpOVF2MnZQRnZaVW05ZzRQCi1aalJPYWpVOEZHbnJG
UzcrRFEzQi96QXRNczRveUl0WHJQeFVpWnczQVNJSS90dTdRSmJzaTVkaG4yaklKVTBaCi1kL2Vt
aGxFczhMYzVLNkI1ZzB0Q2RXN0t4aW9NS0l0cGcwWStuZzhQZmhvWENSdWJBczRoaDhMaURXaVJH
enBjCi1iY1VGeUNzVDBTaWo3WlJ6Nm4yMXQ3aE52b1U4cjJaR0d3b25YWEcxeHAzYy85YmtJKzJK
RVdScEZrOHZ4ZGFCCi1RZFIxalk2YlRZY2RBcjJuME0raVFmc256MUxMTGhsSlFWelVMOGM1RTVo
eVpoMUhsOHRyM1RGVFRyS3dyMnlHCi1wemdmb2FPZlZHdmh4NklWOGZEVVdsYz0KK0FBck5EWVhu
eE15VkJWQVR1UXBwUk1PTWZKQXJRUktkTk9NOTNBN1RrTEZ0ZmtOQ1FPVmxiOEhPVjVMNExPR0cK
K2hDakNJUlJTblhibzdDeDNWMndxWUxraGxwWGdSMUY3U3ZwaGdRbG9CSUxEeHB5Z0ZJRXZyU284
Vk5rRzVTVnYKK2poRTl3eUF0ZmgrZ0ppRzhYK1Y4VnBvakcwZjVwZWtiajN0bGtRVFBzcUZkNVhs
QmxFV3NmcW41UEtLNXVlZTEKK01RWWxaZFNJeDVHdU1BMFZyV0ZVQmVUWDZOZjBnODF4bXg2c2tK
Vk5meHZCbW54Nkw2Ny8vN29OUmtLYUdpU0oKKzV6NzZwRVJhdElseGVsNWpmQzVaeVc2TDNBZEho
NkhJNGVuRlJOZDJ4cUxTQVI2VkpRTmJ2OUdwa04xd1NmaUoKK3lHc3pRNzVvek0vVDBYWi82Nmtr
bFNJPQogLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvY2FjZXJ0LnBlbSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzL2NhY2VydC5wZW0K
aW5kZXggYjM2ZjFkNWU0MjBiYTkxYzc1MmNlNmI5YzI5NzhiNmIxZmZmYjg5ZC4uZTIwOTU3NmYw
MGY2ZmVjZGViMmQyNjhkMzNhNGU0ZTk1YTk3NjQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvY2FjZXJ0LnBlbQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0cy9jYWNlcnQu
cGVtCkBAIC0yLDQyICsyLDQyIEBAIENlcnRpZmljYXRlOgogICAgIERhdGE6CiAgICAgICAgIFZl
cnNpb246IDMgKDB4MikKICAgICAgICAgU2VyaWFsIE51bWJlcjogMSAoMHgxKQotICAgIFNpZ25h
dHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgIFNpZ25hdHVy
ZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgIElzc3VlcjogQ049
d2ViLXBsYXRmb3JtLXRlc3RzCiAgICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVm
b3JlOiBKYW4gMjcgMDk6Mjc6NDAgMjAxNSBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IEZl
YiAyNiAwOToyNzo0MCAyMDE1IEdNVAorICAgICAgICAgICAgTm90IEJlZm9yZTogRmViIDI4IDA4
OjE4OjM5IDIwMTUgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBNYXIgMzAgMDg6MTg6Mzkg
MjAxNSBHTVQKICAgICAgICAgU3ViamVjdDogQ049d2ViLXBsYXRmb3JtLXRlc3RzCiAgICAgICAg
IFN1YmplY3QgUHVibGljIEtleSBJbmZvOgogICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0
aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMjA0OCBiaXQp
Ci0gICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6YjI6ZDM6
YTI6ZDg6Y2Q6OTM6ODI6NGY6ODc6NzQ6NGI6MzU6Nzc6MjM6Ci0gICAgICAgICAgICAgICAgICAg
IGVmOmQ0OjhiOmY4OmFkOjAwOmRhOmNkOjY2OjNmOjBmOjVkOjE3Ojc1OjQ0OgotICAgICAgICAg
ICAgICAgICAgICBkMDplZTo4MzpjYTo4Yzo3MzpmNDo1NToyMDphNDo5Mjo4NTo0MDplNDphMjoK
LSAgICAgICAgICAgICAgICAgICAgNWY6NTk6NTA6NzU6ODk6NDc6NTA6NzM6NjY6ZDc6NDA6YWE6
YTM6Y2I6MjY6Ci0gICAgICAgICAgICAgICAgICAgIGNhOjBjOmIwOjk0OjhlOjNmOjJlOmM3OmUy
OjUzOmFlOmQxOmM0OjNmOmM1OgotICAgICAgICAgICAgICAgICAgICBkODo1NDpkNzoyNzoyYzpi
NjpmMDo5ZjoxODowNjozMDpiOTpkZTpjNDozZDoKLSAgICAgICAgICAgICAgICAgICAgNmQ6N2I6
NjI6ODQ6ZjM6NWE6Mzk6YjQ6ODE6ZmQ6ODc6ZjY6ZDk6Y2Q6MTU6Ci0gICAgICAgICAgICAgICAg
ICAgIGU1OjljOjNjOmVjOjdkOmQwOjUwOmU2OjlmOjRlOmMyOjc1OmNhOjk5OjNhOgotICAgICAg
ICAgICAgICAgICAgICBhMjo0ZDo4NTo3MDphZDo1MTpkNjoxMzphNDo1ZDowZTo2OTpmNzo5ODoz
YToKLSAgICAgICAgICAgICAgICAgICAgNDg6MDE6ODY6MjY6Mjk6Zjg6OGM6YmU6NmI6MjM6Y2M6
OWU6MDA6YzQ6MTE6Ci0gICAgICAgICAgICAgICAgICAgIDJkOmMyOmJmOjI1OmUyOjEyOjBhOjY0
OjQxOmFkOmE4OjM3OmJlOjAxOmE4OgotICAgICAgICAgICAgICAgICAgICBiNzo3NzpmNzoyMzo3
MTo1NTpmMjo2NzozMDplMTo4MDo2Zjo0ODplYTplMzoKLSAgICAgICAgICAgICAgICAgICAgOWE6
YmU6YjE6Zjk6NTI6MGE6ZDQ6Mzg6NGI6MDc6ZDc6OGE6NmM6ODY6NTQ6Ci0gICAgICAgICAgICAg
ICAgICAgIDI0OmU3OjAxOmM4OjcwOmViOmI0OjNmOjVhOjU0OjU3OjEzOmEwOmQxOjZkOgotICAg
ICAgICAgICAgICAgICAgICA4YjphNjo5YjpiYjo2MDo4ODoyNTphMTpmODpjZTo3ZDowNTpkNjo1
MjoyYjoKLSAgICAgICAgICAgICAgICAgICAgNmY6ZjQ6MTQ6ZTE6ZWQ6NmM6ZTQ6MDA6MWI6ZTY6
MWY6NWM6Zjg6NjA6YTc6Ci0gICAgICAgICAgICAgICAgICAgIDFlOmY3OmI3OjkwOjlkOjI4Ojkz
OjE3OmM5OjVlOjE2OmVkOjlhOmU5OjY4OgotICAgICAgICAgICAgICAgICAgICA5ZjphZgorICAg
ICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKKyAgICAgICAgICAgICAgICBNb2R1
bHVzICgyMDQ4IGJpdCk6CisgICAgICAgICAgICAgICAgICAgIDAwOmIxOjRiOmUwOmE4OjI3OmQy
OjFhOjA4OjQzOmRkOmI4OmQ0Ojk1OjUzOgorICAgICAgICAgICAgICAgICAgICBlOTpjYzo5Yzpm
NjpjYTo1NDphMDo3NDo2NjplOToyZjpiYjoyODpjZjo1YzoKKyAgICAgICAgICAgICAgICAgICAg
MTc6NDI6NDc6ZDU6Zjk6ZjI6MzE6ZTA6MmY6ZjI6MTU6YTI6ZGY6NGY6NDY6CisgICAgICAgICAg
ICAgICAgICAgIDNmOmM2OmI1OmM4OmU3OjdkOjdhOjVhOjM3OmJlOjBlOjI0OjkxOjdmOjc3Ogor
ICAgICAgICAgICAgICAgICAgICAyODpkMToxNDo1ZTphNjo0YjozMTplODo0MTo0ZjoxMzo1Nzph
MDo1Yjo5OToKKyAgICAgICAgICAgICAgICAgICAgNjI6ZmE6NDA6OGQ6MjI6Njc6ZDc6MjA6YzA6
NDM6ZTI6OWM6Yjk6MDg6ODg6CisgICAgICAgICAgICAgICAgICAgIDlhOmUwOmIxOjkzOjAzOjM2
OmU5OmViOjc2OjcxOmYwOjRhOjljOmY2OmZjOgorICAgICAgICAgICAgICAgICAgICAyMjozNDpk
ZDo0YzowMjphNzo2Nzo3OTo2NDphMjpmNTo0NTo1MTpjZDoxMToKKyAgICAgICAgICAgICAgICAg
ICAgOTA6NmM6ZTI6ZDE6OTc6OGY6ZWQ6MmU6OGU6ZjY6Mzg6YWM6MDQ6OGE6YTg6CisgICAgICAg
ICAgICAgICAgICAgIGJlOjgxOjVhOjRjOmY2OjBlOjdlOjYwOjAwOjgzOjYyOjk4OmRjOjkzOmQ4
OgorICAgICAgICAgICAgICAgICAgICAyZTpkMjo5Yzo5YzowNDoyZTpjYjplZTphMjo0YTo3Mzo5
ZDpjNTo3MToyMzoKKyAgICAgICAgICAgICAgICAgICAgNTA6MTM6NmU6N2U6YjE6MTA6MWM6NDA6
ZjY6MDE6MmY6OWQ6ZTQ6YTU6Mzc6CisgICAgICAgICAgICAgICAgICAgIGE1OjkwOjBhOjhlOmE0
OjQzOmMzOjY3OjAzOjBhOmFjOmVjOjI1Ojc0OmNhOgorICAgICAgICAgICAgICAgICAgICBlMTpm
NDpjZjpmYjphYzpjYTozZjo2Yjo5Zjo4MzozMzo2MDo1YjoxMDozNjoKKyAgICAgICAgICAgICAg
ICAgICAgOTY6NWU6NjY6OWM6MGY6ZWQ6NDQ6OGQ6ZDA6M2Y6ODg6N2Q6NzM6ZGU6MjE6CisgICAg
ICAgICAgICAgICAgICAgIDFmOjUyOjc3OmFlOmM1OjA3OjU1OjE1OjI4OjU5OmQwOjQwOmViOmY1
OjRmOgorICAgICAgICAgICAgICAgICAgICAwMjpmZTplYjo4YjoyZjowNToyMTo3Zjo0Yjo0MDph
YTpiNDplZTpkZDplOToKKyAgICAgICAgICAgICAgICAgICAgZjY6OGYKICAgICAgICAgICAgICAg
ICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCiAgICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgog
ICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKICAgICAgICAgICAgICAgICBD
QTpUUlVFCiAgICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjogCi0gICAg
ICAgICAgICAgICAgMEU6MzE6QzE6MEQ6NkM6OTQ6RTE6RjA6RDk6OEM6QzQ6RTQ6QTU6REY6RkQ6
MUM6Q0I6M0I6Q0M6NTgKKyAgICAgICAgICAgICAgICBFOTo2Njo0MjoxNToxRDo5MjpDODpCMDpD
Qjo4MTo1OTowOTpBQjo4MjpFRDpFMzoxQzpGMjowMToyQQogICAgICAgICAgICAgWDUwOXYzIEF1
dGhvcml0eSBLZXkgSWRlbnRpZmllcjogCi0gICAgICAgICAgICAgICAga2V5aWQ6MEU6MzE6QzE6
MEQ6NkM6OTQ6RTE6RjA6RDk6OEM6QzQ6RTQ6QTU6REY6RkQ6MUM6Q0I6M0I6Q0M6NTgKKyAgICAg
ICAgICAgICAgICBrZXlpZDpFOTo2Njo0MjoxNToxRDo5MjpDODpCMDpDQjo4MTo1OTowOTpBQjo4
MjpFRDpFMzoxQzpGMjowMToyQQogICAgICAgICAgICAgICAgIERpck5hbWU6L0NOPXdlYi1wbGF0
Zm9ybS10ZXN0cwogICAgICAgICAgICAgICAgIHNlcmlhbDowMQogCkBAIC00NiwzOCArNDYsMzgg
QEAgQ2VydGlmaWNhdGU6CiAgICAgICAgICAgICBYNTA5djMgRXh0ZW5kZWQgS2V5IFVzYWdlOiAK
ICAgICAgICAgICAgICAgICBUTFMgV2ViIFNlcnZlciBBdXRoZW50aWNhdGlvbgogICAgIFNpZ25h
dHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgICAzMjphNzpm
NjpmZjpiZDpjZTo1OToyYzo5Mzo5NDplOTphMTo1Nzo4Nzo3YzowMTo4MjoyMDoKLSAgICAgICAg
IGQ2OjI1OjZhOjA5OjA1OmY2Ojc0OmQ1OjNmOjM3Ojc4OmE5OmY5OjVjOmY2OjNjOjE0OmU2Ogot
ICAgICAgICAgNWM6MWU6OTY6NzQ6OWU6NDY6Yjg6NWY6M2I6ODg6YmM6MTg6M2M6YzQ6ZjY6Njg6
ZTA6Nzk6Ci0gICAgICAgICA5Mjo1NTo3YzpjOTo1YjpiMjo4ODoxZTo3Nzo1NDphZDpiYzplMzo0
MzpjYjoyYzo0YzpmMjoKLSAgICAgICAgIDA0OjRkOjA2OmI0OmIyOjFiOjMyOjA3OjA2OmRlOmU4
OmI2OmQxOmZiOmM2OmIyOmM1OjQ1OgotICAgICAgICAgZmE6MzA6NDY6ZGY6NDk6MjI6YTg6ZWE6
YzU6MGM6YTE6ZWU6YzI6ZmM6Mjk6NDk6MTI6ODk6Ci0gICAgICAgICA3Njo0NDoyZjo5Mjo1Mzpj
ZjpkMzo1YzphMDozYTo4Mjo5OTpjZDoxZTo0NzoyZjo5ODoyYToKLSAgICAgICAgIGViOjY0Ojk4
OmRiOmI1Ojk0OjRmOmNmOjFjOjBmOjg4OmNiOmZiOjk4OjdhOmNkOmE3OjVkOgotICAgICAgICAg
MmQ6NTc6OTk6NGQ6NTI6NjU6NDk6Yzg6OWE6ZGE6NTk6ZjM6ZDA6ZDM6NzU6Yzk6MWI6OWM6Ci0g
ICAgICAgICBjNjo4ZDo4YTpmMTpkNToyOTo2MzpmNDo1MzowMDo4MTplMDoxOTo4Yzo4OTpmMzpm
OTowMjoKLSAgICAgICAgIGFkOjQ0OjQ4OjBlOmNkOmZkOjY2Ojc5OmZjOjI1OmMwOjA3OjA3Ojg2
OjFjOjI0Ojk4OjM3OgotICAgICAgICAgNzI6ZmM6NzQ6YjU6N2Y6MTI6Y2Q6MDg6Mjc6NzA6ZDE6
Y2U6MDE6MDE6MDE6MTY6ZWE6NGI6Ci0gICAgICAgICBiZjpkZDozYTo2NTo3NzozMToyMDpkYjo5
ZToxZjo4MjphZTphYzo5Yzo1Yjo0NzowZTpiMjoKLSAgICAgICAgIDQxOmMwOmIyOjgyOmJhOjU5
OmFhOjk0OmI4OmMxOjMxOmY1OjA3OjU2Ojc2Ojk0OjYwOmY1OgotICAgICAgICAgNjQ6MTM6NDg6
NTIKKyAgICAgICAgN2Q6MjA6Njg6ODI6NWU6ZmI6NDE6ZWY6ZjY6OWM6NWI6MTQ6ZmQ6NGI6YWU6
NWE6ODg6YjM6CisgICAgICAgIGZjOmU3OjlmOmM0OjMyOmU5OjM5OjQzOmRjOjJjOmNlOjc2Ojgz
OjI1OmMwOmQxOjA2OjYxOgorICAgICAgICBkYjpkNTpmYzo4NTpjNToxODoyYjo2NDozMDpiYTo2
ZDozMDpmMTo1ZDpjMTplMTowMzo0MzoKKyAgICAgICAgZDE6NzY6ODA6NTM6ZjA6ZWI6NTk6NmI6
ODY6ZDk6OTY6MmU6YTc6Yzc6MDY6NjQ6YjU6OGQ6CisgICAgICAgIGVjOjQzOmE4OmRiOjBhOjQ3
OjkxOjY5OjZkOjFmOmIwOjJhOjUxOjMyOjkzOmJkOmNkOmM4OgorICAgICAgICA4MzozNDplZDow
ZTo2YzoyMjphZjo0ZTpkMTpiMzo1ZjpjMjpmZDpmNDowNDplMzo3ZToxMzoKKyAgICAgICAgOTI6
ZGE6MTc6NDk6N2U6MDg6YTk6Y2Q6NTQ6OTA6NTc6OTY6YjA6YmM6MWQ6Mjc6Mjg6YmU6CisgICAg
ICAgIGMwOjE0OmViOjBjOjNmOjc3OjhmOmEwOjQ4OjVlOjYzOmM3OjgzOjBhOmViOjRjOjliOmM4
OgorICAgICAgICA4ODozYjo0MTpkZTo2NjozYTpmMjpjMTo1Mjo3ZTpkZjo1OTphYjpjNDplODpk
ZDo4NTphYjoKKyAgICAgICAgMmI6OTI6N2U6YWI6MDA6MzQ6ODk6YWU6YTU6NTg6OTY6MDk6MGY6
N2E6ZGY6Nzk6ZDk6NjQ6CisgICAgICAgIGEwOmEyOjZiOjE4OjQ2OmI4OjdjOjhjOjQ0OmUzOmUx
OmNlOmQ4OmU2OmExOjRkOmJlOjYyOgorICAgICAgICA5ZDplNToxYjpmODpmNjowNjpkOTpmZDoy
ZjpiOTo1NTpjNzplMTpjMTplOTpmYjo4MTo2ZjoKKyAgICAgICAgOTg6ZmU6ZTQ6Mzk6Njg6ZmU6
MjU6Mjc6NTU6ODg6NGE6YzM6NjI6YzM6N2E6ODY6ZTA6NDY6CisgICAgICAgIDA0OjI0OmI2OmY1
OjMwOjIyOmUyOjMwOmMyOmRhOjg2OjY0OmZlOmE2OjMxOmMyOjgzOjRjOgorICAgICAgICA3MTo1
ZTphMTpiOQogLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCiBNSUlEVHpDQ0FqZWdBd0lCQWdJ
QkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBZE1Sc3dHUVlEVlFRRERCSjNaV0l0Ci1jR3hoZEdadmNt
MHRkR1Z6ZEhNd0hoY05NVFV3TVRJM01Ea3lOelF3V2hjTk1UVXdNakkyTURreU56UXdXakFkCitj
R3hoZEdadmNtMHRkR1Z6ZEhNd0hoY05NVFV3TWpJNE1EZ3hPRE01V2hjTk1UVXdNek13TURneE9E
TTVXakFkCiBNUnN3R1FZRFZRUUREQkozWldJdGNHeGhkR1p2Y20wdGRHVnpkSE13Z2dFaU1BMEdD
U3FHU0liM0RRRUJBUVVBCi1BNElCRHdBd2dnRUtBb0lCQVFDeTA2TFl6Wk9DVDRkMFN6VjNJKy9V
aS9pdEFOck5aajhQWFJkMVJORHVnOHFNCi1jL1JWSUtTU2hVRGtvbDlaVUhXSlIxQnpadGRBcXFQ
TEpzb01zSlNPUHk3SDRsT3UwY1EveGRoVTF5Y3N0dkNmCi1HQVl3dWQ3RVBXMTdZb1R6V2ptMGdm
Mkg5dG5ORmVXY1BPeDkwRkRtbjA3Q2RjcVpPcUpOaFhDdFVkWVRwRjBPCi1hZmVZT2tnQmhpWXAr
SXkrYXlQTW5nREVFUzNDdnlYaUVncGtRYTJvTjc0QnFMZDM5eU54VmZKbk1PR0FiMGpxCi00NXEr
c2ZsU0N0UTRTd2ZYaW15R1ZDVG5BY2h3NjdRL1dsUlhFNkRSYll1bW03dGdpQ1doK001OUJkWlNL
Mi8wCi1GT0h0Yk9RQUcrWWZYUGhncHg3M3Q1Q2RLSk1YeVY0VzdacnBhSit2QWdNQkFBR2pnWmt3
Z1pZd0RBWURWUjBUCi1CQVV3QXdFQi96QWRCZ05WSFE0RUZnUVVEakhCRFd5VTRmRFpqTVRrcGQv
OUhNczd6Rmd3UlFZRFZSMGpCRDR3Ci1QSUFVRGpIQkRXeVU0ZkRaak1Ua3BkLzlITXM3ekZpaElh
UWZNQjB4R3pBWkJnTlZCQU1NRW5kbFlpMXdiR0YwCitBNElCRHdBd2dnRUtBb0lCQVFDeFMrQ29K
OUlhQ0VQZHVOU1ZVK25NblBiS1ZLQjBadWt2dXlqUFhCZENSOVg1Cis4akhnTC9JVm90OVBSai9H
dGNqbmZYcGFONzRPSkpGL2R5alJGRjZtU3pIb1FVOFRWNkJibVdMNlFJMGlaOWNnCit3RVBpbkxr
SWlKcmdzWk1ETnVucmRuSHdTcHoyL0NJMDNVd0NwMmQ1WktMMVJWSE5FWkJzNHRHWGorMHVqdlk0
CityQVNLcUw2QldrejJEbjVnQUlOaW1OeVQyQzdTbkp3RUxzdnVva3B6bmNWeEkxQVRibjZ4RUJ4
QTlnRXZuZVNsCitONldRQ282a1E4Tm5Bd3FzN0NWMHl1SDB6L3VzeWo5cm40TXpZRnNRTnBaZVpw
d1A3VVNOMEQrSWZYUGVJUjlTCitkNjdGQjFVVktGblFRT3YxVHdMKzY0c3ZCU0YvUzBDcXRPN2Q2
ZmFQQWdNQkFBR2pnWmt3Z1pZd0RBWURWUjBUCitCQVV3QXdFQi96QWRCZ05WSFE0RUZnUVU2V1pD
RlIyU3lMRExnVmtKcTRMdDR4enlBU293UlFZRFZSMGpCRDR3CitQSUFVNldaQ0ZSMlN5TERMZ1Zr
SnE0THQ0eHp5QVNxaElhUWZNQjB4R3pBWkJnTlZCQU1NRW5kbFlpMXdiR0YwCiBabTl5YlMxMFpY
TjBjNElCQVRBTEJnTlZIUThFQkFNQ0FnUXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0V3Ci1E
UVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREtuOXYrOXpsa3NrNVRwb1ZlSGZBR0NJTllsYWdrRjlu
VFZQemQ0Ci1xZmxjOWp3VTVsd2VsblNlUnJoZk80aThHRHpFOW1qZ2VaSlZmTWxic29nZWQxU3R2
T05EeXl4TThnUk5CclN5Ci1HeklIQnQ3b3R0SDd4ckxGUmZvd1J0OUpJcWpxeFF5aDdzTDhLVWtT
aVhaRUw1SlR6OU5jb0RxQ21jMGVSeStZCi1LdXRrbU51MWxFL1BIQStJeS91WWVzMm5YUzFYbVUx
U1pVbkltdHBaODlEVGRja2JuTWFOaXZIVktXUDBVd0NCCi00Qm1NaWZQNUFxMUVTQTdOL1daNS9D
WEFCd2VHSENTWU4zTDhkTFYvRXMwSUozRFJ6Z0VCQVJicVM3L2RPbVYzCi1NU0RibmgrQ3JxeWNX
MGNPc2tIQXNvSzZXYXFVdU1FeDlRZFdkcFJnOVdRVFNGST0KK0RRWUpLb1pJaHZjTkFRRUxCUUFE
Z2dFQkFIMGdhSUplKzBIdjlweGJGUDFMcmxxSXMvem5uOFF5NlRsRDNDek8KK2RvTWx3TkVHWWR2
Vi9JWEZHQ3RrTUxwdE1QRmR3ZUVEUTlGMmdGUHc2MWxyaHRtV0xxZkhCbVMxamV4RHFOc0sKK1I1
RnBiUit3S2xFeWs3M055SU0wN1E1c0lxOU8wYk5md3YzMEJPTitFNUxhRjBsK0NLbk5WSkJYbHJD
OEhTY28KK3ZzQVU2d3cvZDQrZ1NGNWp4NE1LNjB5YnlJZzdRZDVtT3ZMQlVuN2ZXYXZFNk4yRnF5
dVNmcXNBTkltdXBWaVcKK0NROTYzM25aWktDaWF4aEd1SHlNUk9QaHp0am1vVTIrWXAzbEcvajJC
dG45TDdsVngrSEI2ZnVCYjVqKzVEbG8KKy9pVW5WWWhLdzJMRGVvYmdSZ1FrdHZVd0l1SXd3dHFH
WlA2bU1jS0RUSEZlb2JrPQogLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvY2FrZXku
cGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMv
Y2FrZXkucGVtCmluZGV4IGJjZDQ3YjEyOTlmMGYzZmFkNWE5MzUyNDMzYWMyMWRhMmYyMWQ2MGYu
LmMyMDJhYTE1NTVkMTdlMzZjOTVhMmQ2OGI5YTEzYjIxZDQwMWUwNWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzL2Nha2V5LnBl
bQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0
cy9jYWtleS5wZW0KQEAgLTEsMzAgKzEsMzAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZB
VEUgS0VZLS0tLS0KLU1JSUZEakJBQmdrcWhraUc5dzBCQlEwd016QWJCZ2txaGtpRzl3MEJCUXd3
RGdRSVhyY0srZERmczBFQ0FnZ0EKLU1CUUdDQ3FHU0liM0RRTUhCQWdoeE5ldjZyUzB6UVNDQk1q
N3ZXNWN2bUhpdHpkL3NhK2ExVnVIb2JlUDBqN1YKLWlZVGJLc0tySStKR3I4Um9jS05LTWhBR1BT
VUlkL0gyMWhHbjFUak9aL2Z5U1QramNYdjJ3VnVERUIvOHhUdmoKLXFPc3ZGR2kzOGZGanBrWnlZ
c1E2cFVRVkpweitXd2JPWWc4ZWJNR0k3eTdLU042aVdOR28wRW14T3dPdmZKUnoKLS8vcnVjSzZ1
djFXRTJnalpaUEUvNkFNSWN6eW5hY1hyYUxsT3RCSmxJWjJObkF4VStXODIySk5sOFRZaFJ3NHcK
LVB3OEM4eFhHNXdKVGJhR3UwWWR4TWplQ3JLbnRDNUgzRVgxc2d6Qi9kaERWWnRhZzMyNG8ybjFC
bXA4Y0dmeXgKLVlxTEZTZHl6UmRCRHdlN2hjcDhZTkg0Q0JiSlNBOTZFQ3ZJdmFWVXI1d2I0b21E
ZXl3M3hOYVJ5Mlc1dEZkVFUKLXNKTWcyV1lsWE1ZWGxSWVFOanJkSFNlRzNXNFRXSlh2QTlYcW1P
aERTZTdFR3ZxRUwwNW9icnVYM2VBVUZvQWEKLUNNYkswdnZyY1dtOE1MWEIrMHFXY09hdGRhRXNv
QTlXZG5SWFdvNXB2SjhCWWJZTW9LQU5MRXN1cTMvbTBwaHcKLUxkdms3MloxTUU1NG4ybE1YdjJH
MEFGNURuMGErZm1sVG9ham1vZDA2NWhtaWxRenNZdy9wZ3JuTGVwUzdhQnAKLThFV2VnNjYwd0E1
M3hpWnloZDFESk42THpmSjdUY0ozVVlXQVM4dFZZOWNCaFZpdnZYQmdSdkxEWEtLYTRTUEcKLVli
clI2bkhVS1hEbUlnT1ViSk9jUFJnVkN6YndCMG1kcjRSV1IrV2ZlcEVPSlFaUm02WU9KUWpoMitt
dE1zNisKLW1BTkRXeURrQlNQZXE0SFU2Q0xtTWpQY0ZGR21xdnkzZDJDV3RzelBCSlZVcnE1U3FY
N0hIdnd0Q3A2RGlNZ00KLXNzVlVWYy93L1BNRGNYS2tiMWtZd1cvdkQ2RkJPMFVjeGJWRHBUSERI
SGlsQVY0bUV2UzA0aUFaRlJQNGVmMDMKLTMzS0JobjllVG1OaC9UOVcwb3FEem1ZY3lKZUsyaXpr
ZG1KYUh0MGhDSkRUTWI0dEd1VUxNWEw4S0pYd1J0QlkKLVdZWmtqYm9aa2l4MW01dGtleEhOS2Fh
OG50VSt1OGttd3NlaERjZ2VkK1VMVHA1bmFsSFUyUHQ1Q0ZhSW1CVGMKLU15aFBYbWZ0ZkZFaUhU
NG5jZjlSQk9WTkl2TFJRdno2dkRxc2pVdTN1bG0yNm55TUhkZEY4eGVRWHZXMTdVbDkKLVI3RDUy
RExncTZlZnpLTllxVURBYlRvWVFtemlsTldqbHVtdlVPaFBmZE41em5GVXZPUU8zaGhpSVZpNjNB
aFgKLUpxc3RvV3RGZ1hJcjdtbXBHRkU4OHdNR2VqUU5ndCtjRGRoSTZlM1NWN1NnYS9WcDhNbUVi
TlRtODRNZlZ1SDgKLXJVV1liT29VVEEvTlg4bmdxQXJEd3NjMExtUHNVelZBUHFYbVF3VkJiam94
VEE5RktrNGJRRXhtSEJnWXhQaEQKLUhsbE1oS3RrUkZOdkRBNGJ3OVZVWVZoOXlLV1Q2b1I5OURL
bDRrQTZJS2htQ2hOTGdkbWdkeVcyZng5ZmFjL1QKLU1USHFIL29Pa241bEpYRmtCTVpjRTg2YzZU
THFTRmRyYyt2SGJ3a3kzQ3dNbmZBMU1zOVlmM0pFSlZvYjEzTFUKLVowNnZzYVNVSStNaVFra01w
ZkdGQk9sNlhlTTVFS2pQZkY0dFY4aWpZQ2s5OTNNTmh4RHVIN0pnQTNSS05JSFYKLWJLbysxdnhz
VUtrY0VwMVlPaWR5SWlDV2JRWHA3OWNGRXlYZHh5dDBQYXFuOCtxcFZNSzVOMTdPUkU0dDAyMHAK
LWFoL1ZwcHdUN1JFREdSUC9zK3VIdytvMW8yN0lPT1JiNEVQc3FxZTdQdnVNamE2aXl1MURmQ0Jl
Yk9oeklZZE4KLWQzeVk5RG1RdTExZFRIM1JFckg0R2g4MHZwd0FpWXY1bXhnaXVUS25OUzk1Wm4x
SFpteE1LUkZJM2FraS9hSUUKLVUvcUEzWWZaYUUybHJCNjZOQ3RWYUczM3UrWkpwZGhGTU91VXVH
cjJxem92WWlVSlZaY0tsbDJ3L1h1QmJQRDIKLUY2az0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklW
QVRFIEtFWS0tLS0tCistLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCitQcm9jLVR5cGU6
IDQsRU5DUllQVEVECitERUstSW5mbzogREVTLUVERTMtQ0JDLDc0NEYzOTA1REVBMTJBOTAKKwor
TEZMc2VGVkVrcWdOQ2hxNkw0dzc0Yy93MlFyMGtaOHU0ZThwNnpGSW41N2MrcHZZbjh2NWMvT1p0
VmFTd21CTgorSXBsMlBRalFLZktKUFYyQ1c3RTlvaFRGQWJoYS9wRmFldWd1eWFHc1RVWXNnRDRt
NEV6QlJCQkhHNGJWZVhhTQorME9kL0JKbnRDZk1VSFpSYVVENnhvK3JOSjlNbnduc29BZW44U3hp
ZXl3REd1TVN3VmQ5VFc0N3BoNHNQeWhaVgorcGdIQlJNbDAwOThEbGZKSW82NmJaKzJNb0hraU84
UUtacjdWeWtaODZWVDJKOGQ2L0J3MVg1WEM0bEpsQnRFeQorSllDUi94cFM0Zld0ZHpTTkZDbDZi
eHBxOFA2ZUJIdEpoM1dWdjY4OEF0STRNSWtpR3RjTWtXWEdvWkp2OGQ2cworeU9yREROVXdDMlM4
Z1RTRHNlcThNOEtiK2k1d3J2bWZhR1VyWmJ3ZE1UR3IyVUlJd2NXd2tYcTFRc3A4a2huLworYXVR
REFUdVZaUE5mV1hhL1JveXJVSlliWmh2UitnZ0pubTdLR0hlcWJONmhOa1FONVZXNHJ4TzBHb3oy
MmFCRgorVzRvMzgrNzVacVE4VldkVVl6cG9TVk5OYlRZcmlaOE1QcmZnTjdFcEYyTXZlcm5PdTgx
dk1pSG1GWnBBdjdHWQorTnZJZ0RWSU1oR0JBdmxmT2ZEdlBtM3Z3NjZ2N0ZVbGYzM2xtMzRyaEtj
eGRZNUZoTitCWjNVNWhWcEM4emxFQQorRmRQaDZCOHRJdFFob08vRTE4WlBUTGNoYlNqaGR6OWhM
bFIzWHNNV3R6TzE0WGNQczJMV0ljVnFiN1luajlaYgorVnFTbWQ2SGxBZk5MeFFHY3F6MkJlcHBR
bzZwbi9iYytDTFU5TWI3eGkrMDJkalptRG9vSG8zWTJNL1FmeGlZYworZ3dFM2xaTDZ0SXJGUDBJ
a1VHajMvODNWU0JMbVViUUI1YTNmR1BRSlY5YmxOb3RnNkw3N3BkTkMzazRXSXZvLworUkNOWkk3
RWVZT2wyTGljM3MxS2NuMmFqWWllTkszV3RodyszMStWdU55a3E2cXpHdVJ3Ymd0TGxwL29sc0Q2
OQorQW52eS83ek9vYzc5a25paE1xMGl4Y0h0bkl4UytnQjlVVktucnFTWWl5YXo0WExGUzRDVHNK
MEhzWXRWRHdDMQorREtKYWduODFEVUVFQ2podGZzOWQwV1ZxOEZhYmtXWjRTNjJSNitINEpMc3c3
elhKRnZUZ3JCMU9Fd0Vka0k2RgorcFAraDZTMXBZaVRRbUxya0czNnQ2VTNlcjJ2MGFudEswSXE4
bzArNlVmTWh2dW00OWtlNklsYkVkZWdWeW5tTgoreFZzemw3bW9zQUZyWnRNQ2RDQnAwa1ZFbVJm
TGJkclVzTU1ncmtvSk8xbFJ1cUFTU0hDUUl6QW04SWNUY2tvcworVTBDWnVQdmNlazZxTmJLeHo5
bmh5VGNOU0g2OFVFWlRCUFkxQ0pIbWZITE5ONVFnK1dpRDFjVEFQZDVCY1piQworSk5LSllVazVQ
Y1hyVUUvMll5YnJuSU0zbVdldHQzbkNpbmJXdFIxVWt3ckVhUWYzZUgyZW5BUTJpbkZienVPTAor
cDBxbDFKL2xrOTEzbE9VWkRIVTdoRU9zencvWnRkMkcxZFVMeG95M1pqY0VRa2piRWVvb2YyMGt2
Q0ZqS1hlLworVXRZT2VSa21jUnhmWGxDcWlUQmJtRjl4MldPdVlJR3lFMzc3K1ZMamxmQmtoUWFh
RnpzMzJsM3dOZTN3TWtHMwordUtZMlJaUWF2S0QwcHlvVzNMRzhMZE9KM2xnSm9GeXlScEdwM2ow
a01YNDYvRjFDeFJuUk1kNmZQcHhiRE5YQQorSXBIVEcxM21RS1haNjVYL2trbDV2ZGlCQnZPTUpq
N0kzRWZTQUp0bloyNm91aWdNd1Fid1JvMXppMHRPQlBUdgorWGxXUlZlbHBMc3J4Y1FPRU1qcyts
cG4vL2FvRGM1V0crVjNpRU52VWZjMUx2TDJvQmlRTHV0WFgrRkdMMnZUTgorMEV3TEhvUFF6WHlo
TmtoTnRnQ3k1ZUlxMXd6WTl5UmhuV3dOcXZhUVNTUm9WTS9taldrZkpTVXNzbjcxMGVKRQorLS0t
LS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzL2luZGV4LnR4dC5vbGQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0cy9pbmRleC50eHQub2xk
CmluZGV4IDc4MmI4MmJjYTUxYjI0NWUxY2M4Njg2YmM2MGZlMjU5YjczZmJhYmIuLjI5OTQzZDBh
M2MzNTY3MTczYWFhNTBkYjQ1MjBiNjM1MzdlMDZiY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzL2luZGV4LnR4dC5vbGQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvaW5k
ZXgudHh0Lm9sZApAQCAtMSArMSBAQAotVgkxNTAyMjYwOTI3NDBaCQkwMQl1bmtub3duCS9DTj13
ZWItcGxhdGZvcm0tdGVzdHMKK1YJMTUwMzMwMDgxODM5WgkJMDEJdW5rbm93bgkvQ049d2ViLXBs
YXRmb3JtLXRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL19jZXJ0cy9sb2NhbGhvc3Qua2V5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvbG9jYWxob3N0LmtleQppbmRleCA3MDE4Mjgz
OWEwZDZmZjI0Y2ZjMDRhYzRmMGNkYTFlODg3MTg5MzI5Li5iZjJmMmRjYmRmOTIxNzIwOGRkMzM4
ZTJhMmM2NTBiOWJlZDZiYTk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0cy9sb2NhbGhvc3Qua2V5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzL2xvY2FsaG9zdC5rZXkKQEAg
LTEsMjggKzEsMjcgQEAKLS0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQotTUlJRXZnSUJBREFO
QmdrcWhraUc5dzBCQVFFRkFBU0NCS2d3Z2dTa0FnRUFBb0lCQVFEb1VleGhnTGFzWnUxegotQ2Rz
QU1FZ0VnK0ZCWlpVdGp3MVFZOUtNS2xDVFMxWjRaWmJQZVV5Y1BPaUc2c1hDNlFxY1h4V0xwZjBo
VitvVAotSTFVR3dvck1QNnFyMU4yNTZ0bUt5U2g2M2hUWWNpUzRwTC9HWkhMWHFkRGVEdDlNcGxB
WUp2TmI3RUJxR2ljTQotR1lWSE5LMUpONjl6am5lelE5T0RPa3QyRnJPNDZSV1ovd2VxWCtFbXVY
SUNod2RwTzRhRmozbXRyT3dWeEJZdQotUlNxcEdvSWszcXlFVm9pOVovUHp1NFRYci9sbEl3SHBB
ZEFFenFZR0NRbEVXS2U2aWF1eXlwZTJHR3BzaEtoSAotNS9WZmo3OXhlMCs1clRIZGM3OWpuN1JH
akpPRkpDVVpjKzBER2ZNL0hhOE9pNlIya0lnNXRTZjVGNGJ4Uzd0KwotWUgvNTEvdGxBZ01CQUFF
Q2dnRUFHSW1lbCtYS1pZY3hpVGIvUkpQVTUzVXVjNFBSTDlDdUxWRjl5WVFtb29nUQotaUFMaTNP
TUk3bStZZDdlUVQ3ZmhnUWFoOWZBQVBtZFV0OVRCaEVkRDliSzd5ZzVmcE9Wak9MOXFZUi9Ydjh5
KwotaUNvT2YxdllyV0tvUnV2M05kZFRHbG55MWtDcnhRa2lHcXNQWXFmenJZb09JL3htTkM3enhp
YUFGZWJyOEptcQotT3NKV2o1ckQrSjNKS01XU1JrNHpKSFRFaGNhSS83NHBQRkFDREVPNlJ6R2Fz
UWhiQ0VNRWxNWElvcjZzQlFPRgoteWV1aXJncEhwRUhxK0xsWFpkVTYxQnh2c0dLc0Z5dzhmWitz
d0RjSm5za3Q3aDN5dVh1MUlzcDMySTN3Q25OeAotalVaVDZHb284am9zVHJFZTNGU0l3cXl2dHR6
ZGZZRVQyYktodHVDRnVRS0JnUUQ5UytMSDhFYXRuK0lEVEN5bgota0p1VitVbnUrdkR2SmxLNVRL
TXQ1S2lZVHBER2c1Ti9JZXhHSkFaNEtGaHhFV0lZZzF1Y3Nvcjk1VmprdVYxVwotMG05T2t4U2Rh
M0w2MHFHWktWZDF6eXNFYlBxWmZxVllFWkVwVGVlVDhLOWYzSmI0R3A5bTBIUGUwL2d0b0VTbAot
YjhmWkI3T2N5VDUzenNxN0YxUGtZQ2cxY3dLQmdRRHF6TGlSQk5TQVpyK3loUDF1M2JZQWt4UjNK
cG9DTFR5RAotbjJMaFVNVFBlSVMyV0RubWN6NUJUemFEaDh1Ty91NG1YZFI3VGFTUXUvWVI5QlBM
YlRoeG94cUJudlNRSndFSAotTmNpekRKZU5ULzVhK3pPYnIyUk5OWGM3MERhdUR6eWdJclZxRUJx
SERaeFowNDgwWUlkQjA4cmVIdU5UMWlZZQotczBxZEsvd1Z4d0tCZ1FDSkNRVW9KbFlXbU9rdDM0
aEpIM01OTUZGUGVYUGY3bHZTNUNOa01ORUZsWHU5Nm5GaAotMW5oOWVnQUdBYzNYWGhBME10emRh
YnJJb2N2MThsTU5KY3dTTm9Cd3FqRUtnZW5yY3ZKZVNqWjdybm5sa1I3agotQnA0Q09xT081aWY3
Tk54NFhlN2ZNT2QvSmk2ZWdKYWk2bGEway9ZWVhNZnZDWEdreG5vY2sra3RBUUtCZ1FDRwotMTUw
alEzZmFhYWVybVM2R2JmTm83dzZ3d3MxdGRKY3RLK3E0WlE4eDZ3K2tQSlM3NFBFZXhxUVM4M2lX
blpjZAotRjRQQWNEMlRGUzdpN3A0emxIejIzZW1LQ1VTQVNMWVJjdlRZeHVGK09UTmxBcUNIeHpr
K0VmZHd0VW5CdW1SaAotdnEwYXhUYkcycTB3OVF0bjFBdTVaUzA3Vk5mT3ZNeFZremZGZlk0ZTN3
S0JnQnk0UXFUYXR6NFlhT05WMFY5RQotQ0ZHc2NIOFczWmtoU2FxR2NVMGNWc21iMXNKMVc2NkZm
cEFhWTBSaVhYNitXeE9HVWVYckJLWnROR3FwRUYvaAotNXJIaXlKTjF2bGxnenJNVW0vNHYxUEtD
NndVOVB2c1JqVWlvZWR0QjRVMCtvaTJRejZwN2ZrSjh6Q3pIclgvegotajJYaFhicCtSUUFyOElH
NzRmZjZScG81Ci0tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCistLS0tLUJFR0lOIFJTQSBQUklW
QVRFIEtFWS0tLS0tCitNSUlFb1FJQkFBS0NBUUVBMEM0RHdZL09hVnNGYlJ3SWhuRGswTlQ0dlVB
Um9aakpHTUtxRmlFT2dLVDB6WFZCCis1MUErckoxWHY4RUYraU81ckVvdVdNMXN1ekZrUFN0eDEx
SGl3YmZHZG41Q3VvQjBNMWd6WFBpQXpldStQYWxsCit2REJML2lnOFYyaFNUUHlPNUs0R2JuQ2Nj
VjJJT1liUmZ1LzhMd0EyZzZzem1RSnFpS3FnNVZQLzBKNE9ycnhnCit2VkQ0d0ZhRlJ1VHZHYklz
eXQxUFN3R1N5Njd0d0tEaUpTN2VNOS9mWCtrZWNRT2t4bU8vYmJWYitPa0NIT0VVCit6RnovKzlW
ZEU4VWFaV05LeG1nVjNmSEgzS2NEQTZ5Qy9uVS9GRlZYbVhvdjVOQ0NheGxRa1A2dTZVRGR4ZzRa
CitieXh6ZHZSYmp0VXZ1eEFlTlZrc2Z3MVVmZWdZd2ExTzBmVlJmUUlEQVFBQkFvSUJBRC9ud0RO
dEI3b0R2UGl2CitnRlowMVdqZDE3V1FzMWpkNCsxNzVHYUNvMGNPWEMrdDdSc3E0UEp3SW4yMHJU
Y0tQSGNORm9rZ0ZsNm9YTk1DCitRU0lOK3dQb2ZEM25xR2hFQW1lNGpadmVsUHVoZ0hiQlIzK3Jl
OGg3WlhxWGhad29jMXp6cHZuRUMrSXBDaVpPCitvb1RLK3FrYThhRWRydXNyZUxTWFhHakpqbC9s
ZHdRdFhUc1V2SGQxR2pYUXdvU2RxcVBjU1FmdTF6eW5yTWFQCit5WlhZUUtYZ0JkL1hUd0RSeHR5
TnZWQWtqd0drUi9MMnpiSmNISk42THJIbFdtTUVjclpha2FDeENSVWtRaW95Cisya2wwVVhWQnR1
UjdqWTg1M0lyS3JhWDZzSmk2cGJVWGwwbi9WekFlTk1FL1pHNWNmdjd6OG5RR3hXalVDTGxTCit3
ekZmM09rQ2dZRUErYjd6RkVud1Ewd3E4N2FQbWt6M1NRRXEyMVUvMEprdUp3OGthb3hkRGJGU1RB
NXNxY3VpCitwd2dxR1pTdHlDTE9FSXpOcVlUUFQ1WUd0cGZXNW0xeXc2amVHbEN6SjYvMURVWU40
S0RXMktjMkFjajFCdXBMCisvVUpHNUg1UDBwSERZVzk0aVBEczB6RVh2L3hMaHhiZ2daRXo2SFVN
Nm05RVJjemVLT3FPV05jQ2dZRUExV1NZCitwV1JwNXVaL0V1TmpwNytzQXRlN3pxS1FIZEs1UWJC
OGlxbmZnQSsyL0V6M2F5Yk9qb3hwaFV5Rnkwbjh5bTQzCit6YzUzTGZKdTlPdG1jeTVrUUc1VGNa
OTcxZDhiWWN1QW1PVDZrVjJWUkpVZFV2eUNsc012YVFrOG9temdyd01lCitINXBXVCs5RGZZWHBx
TitnQWE4Z3ZrWm5hci9hc3hucjdONTdPY3NDZjNueHdyOGxXeXVCQlhmNnJDT3JjUk0wCitmcmla
NTQ3elBKWFZ6dkkzbHpnWVhSYkY5RWowSlhkcGhTVDRjK0pGSEZqNFozTmVaZHQyWmREQ1V5d3dS
TmxFCitteTQrT1R3bnJuL010UG41anU0NnR5UW4rM3hrNnJXK3B0N3F6ZzhESFdOMkNtVFRQcy9n
S0xpVmVFdDk0Q0ZqCit4UFM4TXBKRndoQlMrQ2NDWUg4Q2dZQnN1NitVUnhBM1dhZlNoZzlYZ0xF
eldaNFc4bnFnMTZrU01jMmtFbDhTCitMKys3cTdRKzR5MUpNWDdyTDB6VmcwUE9HazlSRFMxcE9p
a1RuNGM2bFo3N3ZidkRIOUxIN2NGVUdZL1RXSW5jCiszR1NjNTZaampNczE2d3NUYUdOL0dCOTh6
Z2ZoYnBFZ2RmaGIwNHAyUkV5Unp4ek9GNjNHbFMvcEp3SXlWa05QCis5UUtCZ1FDVEJmRzhyd2Vt
b2JkOGE5YW1Rb3lRUk5LSTBtSWtMZlRwODNVMEFIQlhray8rd0FOVUtNZHZmMGtsCitOc29OYXJX
K3pCNGpYckgyU21XSnhVRUtjT1VTS0Ftb0xrbTBJVUozVlZsSnBGc2t6U1Z4NkhaTEJSSGk1UUM2
CitXa3EwaHVVLzBUbUF1YmpFeW82WnAzNFhWVWsxT3M1MjVyc3p0eGNVWExJbkV6M2tEdz09Cist
LS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvbG9jYWxob3N0LnBlbSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzL2xvY2FsaG9zdC5w
ZW0KaW5kZXggNWQ1OWEzYjY2Yzc0NGRiNWY3Y2M0OWM0YzRkOGU3MjJiODNiNDFkZi4uZGE5ZDRh
YTA5M2NkZTUyMWU2M2Y3NTg2NWM2NDAxYjg1Mzk3ZTllMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvbG9jYWxob3N0LnBlbQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0cy9s
b2NhbGhvc3QucGVtCkBAIC0yLDQyICsyLDQyIEBAIENlcnRpZmljYXRlOgogICAgIERhdGE6CiAg
ICAgICAgIFZlcnNpb246IDMgKDB4MikKICAgICAgICAgU2VyaWFsIE51bWJlcjogMiAoMHgyKQot
ICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCisgICAgICAg
IFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgIElz
c3VlcjogQ049d2ViLXBsYXRmb3JtLXRlc3RzCiAgICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAg
ICBOb3QgQmVmb3JlOiBKYW4gMjcgMDk6Mjc6NDEgMjAxNSBHTVQKLSAgICAgICAgICAgIE5vdCBB
ZnRlciA6IEZlYiAyNiAwOToyNzo0MSAyMDE1IEdNVAorICAgICAgICAgICAgTm90IEJlZm9yZTog
RmViIDI4IDA4OjE4OjM5IDIwMTUgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBNYXIgMzAg
MDg6MTg6MzkgMjAxNSBHTVQKICAgICAgICAgU3ViamVjdDogQ049bG9jYWxob3N0CiAgICAgICAg
IFN1YmplY3QgUHVibGljIEtleSBJbmZvOgogICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0
aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMjA0OCBiaXQp
Ci0gICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6ZTg6NTE6
ZWM6NjE6ODA6YjY6YWM6NjY6ZWQ6NzM6MDk6ZGI6MDA6MzA6Ci0gICAgICAgICAgICAgICAgICAg
IDQ4OjA0OjgzOmUxOjQxOjY1Ojk1OjJkOjhmOjBkOjUwOjYzOmQyOjhjOjJhOgotICAgICAgICAg
ICAgICAgICAgICA1MDo5Mzo0Yjo1Njo3ODo2NTo5NjpjZjo3OTo0Yzo5YzozYzplODo4NjplYToK
LSAgICAgICAgICAgICAgICAgICAgYzU6YzI6ZTk6MGE6OWM6NWY6MTU6OGI6YTU6ZmQ6MjE6NTc6
ZWE6MTM6MjM6Ci0gICAgICAgICAgICAgICAgICAgIDU1OjA2OmMyOjhhOmNjOjNmOmFhOmFiOmQ0
OmRkOmI5OmVhOmQ5OjhhOmM5OgotICAgICAgICAgICAgICAgICAgICAyODo3YTpkZToxNDpkODo3
MjoyNDpiODphNDpiZjpjNjo2NDo3MjpkNzphOToKLSAgICAgICAgICAgICAgICAgICAgZDA6ZGU6
MGU6ZGY6NGM6YTY6NTA6MTg6MjY6ZjM6NWI6ZWM6NDA6NmE6MWE6Ci0gICAgICAgICAgICAgICAg
ICAgIDI3OjBjOjE5Ojg1OjQ3OjM0OmFkOjQ5OjM3OmFmOjczOjhlOjc3OmIzOjQzOgotICAgICAg
ICAgICAgICAgICAgICBkMzo4MzozYTo0Yjo3NjoxNjpiMzpiODplOToxNTo5OTpmZjowNzphYTo1
ZjoKLSAgICAgICAgICAgICAgICAgICAgZTE6MjY6Yjk6NzI6MDI6ODc6MDc6Njk6M2I6ODY6ODU6
OGY6Nzk6YWQ6YWM6Ci0gICAgICAgICAgICAgICAgICAgIGVjOjE1OmM0OjE2OjJlOjQ1OjJhOmE5
OjFhOjgyOjI0OmRlOmFjOjg0OjU2OgotICAgICAgICAgICAgICAgICAgICA4ODpiZDo2NzpmMzpm
MzpiYjo4NDpkNzphZjpmOTo2NToyMzowMTplOTowMToKLSAgICAgICAgICAgICAgICAgICAgZDA6
MDQ6Y2U6YTY6MDY6MDk6MDk6NDQ6NTg6YTc6YmE6ODk6YWI6YjI6Y2E6Ci0gICAgICAgICAgICAg
ICAgICAgIDk3OmI2OjE4OjZhOjZjOjg0OmE4OjQ3OmU3OmY1OjVmOjhmOmJmOjcxOjdiOgotICAg
ICAgICAgICAgICAgICAgICA0ZjpiOTphZDozMTpkZDo3MzpiZjo2Mzo5ZjpiNDo0Njo4Yzo5Mzo4
NToyNDoKLSAgICAgICAgICAgICAgICAgICAgMjU6MTk6NzM6ZWQ6MDM6MTk6ZjM6M2Y6MWQ6YWY6
MGU6OGI6YTQ6NzY6OTA6Ci0gICAgICAgICAgICAgICAgICAgIDg4OjM5OmI1OjI3OmY5OjE3Ojg2
OmYxOjRiOmJiOjdlOjYwOjdmOmY5OmQ3OgotICAgICAgICAgICAgICAgICAgICBmYjo2NQorICAg
ICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKKyAgICAgICAgICAgICAgICBNb2R1
bHVzICgyMDQ4IGJpdCk6CisgICAgICAgICAgICAgICAgICAgIDAwOmQwOjJlOjAzOmMxOjhmOmNl
OjY5OjViOjA1OjZkOjFjOjA4Ojg2OjcwOgorICAgICAgICAgICAgICAgICAgICBlNDpkMDpkNDpm
ODpiZDo0MDoxMTphMTo5ODpjOToxODpjMjphYToxNjoyMToKKyAgICAgICAgICAgICAgICAgICAg
MGU6ODA6YTQ6ZjQ6Y2Q6NzU6NDE6ZTc6NTA6M2U6YWM6OWQ6NTc6YmY6YzE6CisgICAgICAgICAg
ICAgICAgICAgIDA1OmZhOjIzOmI5OmFjOjRhOjJlOjU4OmNkOjZjOmJiOjMxOjY0OjNkOjJiOgor
ICAgICAgICAgICAgICAgICAgICA3MTpkNzo1MTplMjpjMTpiNzpjNjo3Njo3ZTo0MjpiYTo4MDo3
NDozMzo1ODoKKyAgICAgICAgICAgICAgICAgICAgMzM6NWM6Zjg6ODA6Y2Q6ZWI6YmU6M2Q6YTk6
NjU6YmM6MzA6NGI6ZmU6Mjg6CisgICAgICAgICAgICAgICAgICAgIDNjOjU3OjY4OjUyOjRjOmZj
OjhlOmU0OmFlOjA2OjZlOjcwOjljOjcxOjVkOgorICAgICAgICAgICAgICAgICAgICA4ODozOTo4
NjpkMTo3ZTplZjpmYzoyZjowMDozNjo4MzphYjozMzo5OTowMjoKKyAgICAgICAgICAgICAgICAg
ICAgNmE6ODg6YWE6YTA6ZTU6NTM6ZmY6ZDA6OWU6MGU6YWU6YmM6NjA6YmQ6NTA6CisgICAgICAg
ICAgICAgICAgICAgIGY4OmMwOjU2Ojg1OjQ2OmU0OmVmOjE5OmIyOjJjOmNhOmRkOjRmOjRiOjAx
OgorICAgICAgICAgICAgICAgICAgICA5MjpjYjphZTplZDpjMDphMDplMjoyNToyZTpkZTozMzpk
ZjpkZjo1ZjplOToKKyAgICAgICAgICAgICAgICAgICAgMWU6NzE6MDM6YTQ6YzY6NjM6YmY6NmQ6
YjU6NWI6Zjg6ZTk6MDI6MWM6ZTE6CisgICAgICAgICAgICAgICAgICAgIDE0OmNjOjVjOmZmOmZi
OmQ1OjVkOjEzOmM1OjFhOjY1OjYzOjRhOmM2OjY4OgorICAgICAgICAgICAgICAgICAgICAxNTpk
ZDpmMTpjNzpkYzphNzowMzowMzphYzo4MjpmZTo3NTozZjoxNDo1NToKKyAgICAgICAgICAgICAg
ICAgICAgNTc6OTk6N2E6MmY6ZTQ6ZDA6ODI6NmI6MTk6NTA6OTA6ZmU6YWU6ZTk6NDA6CisgICAg
ICAgICAgICAgICAgICAgIGRkOmM2OjBlOjE5OjZmOjJjOjczOjc2OmY0OjViOjhlOmQ1OjJmOmJi
OjEwOgorICAgICAgICAgICAgICAgICAgICAxZTozNTo1OToyYzo3ZjowZDo1NDo3ZDplODoxODpj
MTphZDo0ZTpkMTpmNToKKyAgICAgICAgICAgICAgICAgICAgNTE6N2QKICAgICAgICAgICAgICAg
ICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCiAgICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgog
ICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKICAgICAgICAgICAgICAgICBD
QTpGQUxTRQogICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAg
ICAgICAgICAgICAgIEY2OkNCOjgyOjY0OkIwOkM0OjAyOjFBOjg1OjUzOjBFOjlBOjZCOkQ4OkMy
OjMwOkFDOjA1OjYxOkM4CisgICAgICAgICAgICAgICAgNjE6NUM6M0U6M0I6MDM6QUY6QkU6MDU6
QTI6NjU6RTA6NEE6Qzg6QzM6MDM6NjY6MkU6MTE6QzY6NEMKICAgICAgICAgICAgIFg1MDl2MyBB
dXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIGtleWlkOjBFOjMxOkMx
OjBEOjZDOjk0OkUxOkYwOkQ5OjhDOkM0OkU0OkE1OkRGOkZEOjFDOkNCOjNCOkNDOjU4CisgICAg
ICAgICAgICAgICAga2V5aWQ6RTk6NjY6NDI6MTU6MUQ6OTI6Qzg6QjA6Q0I6ODE6NTk6MDk6QUI6
ODI6RUQ6RTM6MUM6RjI6MDE6MkEKIAogICAgICAgICAgICAgWDUwOXYzIEtleSBVc2FnZTogCiAg
ICAgICAgICAgICAgICAgRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVu
Y2lwaGVybWVudApAQCAtNDYsNDAgKzQ2LDQwIEBAIENlcnRpZmljYXRlOgogICAgICAgICAgICAg
WDUwOXYzIFN1YmplY3QgQWx0ZXJuYXRpdmUgTmFtZTogCiAgICAgICAgICAgICAgICAgRE5TOmxv
Y2FsaG9zdCwgRE5TOnd3dy5sb2NhbGhvc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS5s
b2NhbGhvc3QsIEROUzp4bi0tbHZlLTZsYWQubG9jYWxob3N0LCBETlM6d3d3Mi5sb2NhbGhvc3Qs
IEROUzp3d3cxLmxvY2FsaG9zdAogICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhS
U0FFbmNyeXB0aW9uCi0gICAgICAgICA4MDpiNDoyMzo4MzpkOTo1YjpjODo1ZjpmZToxNjoyNToy
YzpkZjo2NDo4ODowODo2YjoxZToKLSAgICAgICAgIGY5OjE1OjQ2OjU4OjU0OmNlOmUwOjI4Ojg4
OmFmOmYxOjU4OmMzOjdmOmMyOjA4OjdjOjhiOgotICAgICAgICAgZDQ6MmY6ZGE6ZjM6YzU6YmQ6
OTU6MjY6ZjY6MGU6MGY6NjY6MzQ6NGU6NmE6MzU6M2M6MTQ6Ci0gICAgICAgICA2OTplYjoxNToy
ZTpmZTowZDowZDpjMTpmZjozMDoyZDozMjpjZToyODpjODo4Yjo1NzphYzoKLSAgICAgICAgIGZj
OjU0Ojg5OjljOjM3OjAxOjIyOjA4OmZlOmRiOmJiOjQwOjk2OmVjOjhiOjk3OjYxOjlmOgotICAg
ICAgICAgNjg6Yzg6MjU6NGQ6MTk6Nzc6Zjc6YTY6ODY6NTE6MmM6ZjA6Yjc6Mzk6MmI6YTA6Nzk6
ODM6Ci0gICAgICAgICA0Yjo0Mjo3NTo2ZTpjYTpjNjoyYTowYzoyODo4Yjo2OTo4Mzo0NjozZTo5
ZTowZjowZjo3ZToKLSAgICAgICAgIDFhOjE3OjA5OjFiOjliOjAyOmNlOjIxOjg3OmMyOmUyOjBk
OjY4OjkxOjFiOjNhOjVjOjZkOgotICAgICAgICAgYzU6MDU6Yzg6MmI6MTM6ZDE6Mjg6YTM6ZWQ6
OTQ6NzM6ZWE6N2Q6YjU6Yjc6Yjg6NGQ6YmU6Ci0gICAgICAgICA4NTozYzphZjo2Njo0NjoxYjow
YToyNzo1ZDo3MTpiNTpjNjo5ZDpkYzpmZjpkNjplNDoyMzoKLSAgICAgICAgIGVkOjg5OjExOjY0
OjY5OjE2OjRmOjJmOmM1OmQ2OjgxOjQxOmQ0Ojc1OjhkOjhlOjliOjRkOgotICAgICAgICAgODc6
MWQ6MDI6YmQ6YTc6ZDA6Y2Y6YTI6NDE6ZmI6Mjc6Y2Y6NTI6Y2I6MmU6MTk6NDk6NDE6Ci0gICAg
ICAgICA1YzpkNDoyZjpjNzozOToxMzo5ODo3Mjo2NjoxZDo0Nzo5NzpjYjo2YjpkZDozMTo1Mzo0
ZToKLSAgICAgICAgIGIyOmIwOmFmOjZjOjg2OmE3OjM4OjFmOmExOmEzOjlmOjU0OjZiOmUxOmM3
OmEyOjE1OmYxOgotICAgICAgICAgZjA6ZDQ6NWE6NTcKKyAgICAgICAgMGE6Y2Q6MGQ6ODU6ZTc6
YzQ6Y2M6OTU6MDU6NTA6MTM6Yjk6MGE6Njk6NDQ6YzM6OGM6N2M6CisgICAgICAgIDkwOjJiOjQx
OjEyOjlkOjM0OmUzOjNkOmRjOjBlOmQzOjkwOmIxOjZkOjdlOjQzOjQyOjQwOgorICAgICAgICBl
NTo2NTo2ZjpjMTpjZTo1Nzo5MjpmODoyYzplMTo4Njo4NDoyODpjMjoyMToxNDo1Mjo5ZDoKKyAg
ICAgICAgNzY6ZTg6ZWM6MmM6Nzc6NTc6NmM6MmE6NjA6Yjk6MjE6OTY6OTU6ZTA6NDc6NTE6N2I6
NGE6CisgICAgICAgIGZhOjYxOjgxOjA5OjY4OjA0OjgyOmMzOmM2OjljOmEwOjE0OjgxOjJmOmFk
OjJhOjNjOjU0OgorICAgICAgICBkOTowNjplNToyNTo2Zjo4ZToxMTozZDpjMzoyMDoyZDo3ZTox
ZjphMDoyNjoyMTpiYzo1ZjoKKyAgICAgICAgZTU6N2M6NTY6OWE6MjM6MWI6NDc6Zjk6YTU6ZTk6
MWI6OGY6N2I6NjU6OTE6MDQ6Y2Y6YjI6CisgICAgICAgIGExOjVkOmU1Ojc5OjQxOjk0OjQ1OmFj
OjdlOmE5OmY5OjNjOmEyOmI5OmI5OmU3OmI1OjMxOgorICAgICAgICAwNjoyNTo2NTpkNDo4ODpj
Nzo5MTphZTozMDowZDoxNTphZDo2MTo1NDowNTplNDpkNzplODoKKyAgICAgICAgZDc6ZjQ6ODM6
Y2Q6NzE6OWI6MWU6YWM6OTA6OTU6NGQ6N2Y6MWI6YzE6OWE6N2M6N2E6MmY6CisgICAgICAgIGFl
OmZmOmZmOmJhOjBkOjQ2OjQyOjlhOjFhOjI0Ojg5OmU3OjNlOmZhOmE0OjQ0OjVhOmI0OgorICAg
ICAgICA4OTo3MTo3YTo1ZTo2Mzo3YzoyZTo1OTpjOTo2ZTo4YjpkYzowNzo0Nzo4NzphMTpjODpl
MToKKyAgICAgICAgZTk6YzU6NDQ6ZDc6NzY6YzY6YTI6ZDI6MDE6MWU6OTU6MjU6MDM6NWI6YmY6
ZDE6YTk6OTA6CisgICAgICAgIGRkOjcwOjQ5OmY4Ojg5OmM4OjZiOjMzOjQzOmJlOjY4OmNjOmNm
OmQzOmQxOjc2OjdmOmViOgorICAgICAgICBhOToyNDo5NToyMgogLS0tLS1CRUdJTiBDRVJUSUZJ
Q0FURS0tLS0tCiBNSUlEblRDQ0FvV2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBZE1S
c3dHUVlEVlFRRERCSjNaV0l0Ci1jR3hoZEdadmNtMHRkR1Z6ZEhNd0hoY05NVFV3TVRJM01Ea3lO
elF4V2hjTk1UVXdNakkyTURreU56UXhXakFVCitjR3hoZEdadmNtMHRkR1Z6ZEhNd0hoY05NVFV3
TWpJNE1EZ3hPRE01V2hjTk1UVXdNek13TURneE9ETTVXakFVCiBNUkl3RUFZRFZRUUREQWxzYjJO
aGJHaHZjM1F3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCi1Bb0lCQVFEb1Vl
eGhnTGFzWnUxekNkc0FNRWdFZytGQlpaVXRqdzFRWTlLTUtsQ1RTMVo0WlpiUGVVeWNQT2lHCi02
c1hDNlFxY1h4V0xwZjBoVitvVEkxVUd3b3JNUDZxcjFOMjU2dG1LeVNoNjNoVFljaVM0cEwvR1pI
TFhxZERlCi1EdDlNcGxBWUp2TmI3RUJxR2ljTUdZVkhOSzFKTjY5empuZXpROU9ET2t0MkZyTzQ2
UldaL3dlcVgrRW11WElDCi1od2RwTzRhRmozbXRyT3dWeEJZdVJTcXBHb0lrM3F5RVZvaTlaL1B6
dTRUWHIvbGxJd0hwQWRBRXpxWUdDUWxFCi1XS2U2aWF1eXlwZTJHR3BzaEtoSDUvVmZqNzl4ZTAr
NXJUSGRjNzlqbjdSR2pKT0ZKQ1VaYyswREdmTS9IYThPCi1pNlIya0lnNXRTZjVGNGJ4Uzd0K1lI
LzUxL3RsQWdNQkFBR2pnZkF3Z2Uwd0NRWURWUjBUQkFJd0FEQWRCZ05WCi1IUTRFRmdRVTlzdUNa
TERFQWhxRlV3NmFhOWpDTUt3RlljZ3dId1lEVlIwakJCZ3dGb0FVRGpIQkRXeVU0ZkRaCi1qTVRr
cGQvOUhNczd6Rmd3Q3dZRFZSMFBCQVFEQWdYZ01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUJN
SDRHCitBb0lCQVFEUUxnUEJqODVwV3dWdEhBaUdjT1RRMVBpOVFCR2htTWtZd3FvV0lRNkFwUFRO
ZFVIblVENnNuVmUvCit3UVg2STdtc1NpNVl6V3k3TVdROUszSFhVZUxCdDhaMmZrSzZnSFF6V0RO
YytJRE42NzQ5cVdXOE1FditLRHhYCithRkpNL0k3a3JnWnVjSnh4WFlnNWh0Ris3L3d2QURhRHF6
T1pBbXFJcXFEbFUvL1FuZzZ1dkdDOVVQakFWb1ZHCis1Tzhac2l6SzNVOUxBWkxMcnUzQW9PSWxM
dDR6Mzk5ZjZSNXhBNlRHWTc5dHRWdjQ2UUljNFJUTVhQLzcxVjBUCit4UnBsWTByR2FCWGQ4Y2Zj
cHdNRHJJTCtkVDhVVlZlWmVpL2swSUpyR1ZDUS9xN3BRTjNHRGhsdkxITjI5RnVPCisxUys3RUI0
MVdTeC9EVlI5NkJqQnJVN1I5VkY5QWdNQkFBR2pnZkF3Z2Uwd0NRWURWUjBUQkFJd0FEQWRCZ05W
CitIUTRFRmdRVVlWdytPd092dmdXaVplQkt5TU1EWmk0Unhrd3dId1lEVlIwakJCZ3dGb0FVNlda
Q0ZSMlN5TERMCitnVmtKcTRMdDR4enlBU293Q3dZRFZSMFBCQVFEQWdYZ01CTUdBMVVkSlFRTU1B
b0dDQ3NHQVFVRkJ3TUJNSDRHCiBBMVVkRVFSM01IV0NDV3h2WTJGc2FHOXpkSUlOZDNkM0xteHZZ
MkZzYUc5emRJSWhlRzR0TFc0NGFqWmtjelV6CiBiSGQzYTNKeGFIWXlPR0V1Ykc5allXeG9iM04w
Z2haNGJpMHRiSFpsTFRac1lXUXViRzlqWVd4b2IzTjBnZzUzCiBkM2N5TG14dlkyRnNhRzl6ZElJ
T2QzZDNNUzVzYjJOaGJHaHZjM1F3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCCi1BSUMwSTRQWlc4
aGYvaFlsTE45a2lBaHJIdmtWUmxoVXp1QW9pSy94V01OL3dnaDhpOVF2MnZQRnZaVW05ZzRQCi1a
alJPYWpVOEZHbnJGUzcrRFEzQi96QXRNczRveUl0WHJQeFVpWnczQVNJSS90dTdRSmJzaTVkaG4y
aklKVTBaCi1kL2VtaGxFczhMYzVLNkI1ZzB0Q2RXN0t4aW9NS0l0cGcwWStuZzhQZmhvWENSdWJB
czRoaDhMaURXaVJHenBjCi1iY1VGeUNzVDBTaWo3WlJ6Nm4yMXQ3aE52b1U4cjJaR0d3b25YWEcx
eHAzYy85YmtJKzJKRVdScEZrOHZ4ZGFCCi1RZFIxalk2YlRZY2RBcjJuME0raVFmc256MUxMTGhs
SlFWelVMOGM1RTVoeVpoMUhsOHRyM1RGVFRyS3dyMnlHCi1wemdmb2FPZlZHdmh4NklWOGZEVVds
Yz0KK0FBck5EWVhueE15VkJWQVR1UXBwUk1PTWZKQXJRUktkTk9NOTNBN1RrTEZ0ZmtOQ1FPVmxi
OEhPVjVMNExPR0cKK2hDakNJUlJTblhibzdDeDNWMndxWUxraGxwWGdSMUY3U3ZwaGdRbG9CSUxE
eHB5Z0ZJRXZyU284Vk5rRzVTVnYKK2poRTl3eUF0ZmgrZ0ppRzhYK1Y4VnBvakcwZjVwZWtiajN0
bGtRVFBzcUZkNVhsQmxFV3NmcW41UEtLNXVlZTEKK01RWWxaZFNJeDVHdU1BMFZyV0ZVQmVUWDZO
ZjBnODF4bXg2c2tKVk5meHZCbW54Nkw2Ny8vN29OUmtLYUdpU0oKKzV6NzZwRVJhdElseGVsNWpm
QzVaeVc2TDNBZEhoNkhJNGVuRlJOZDJ4cUxTQVI2VkpRTmJ2OUdwa04xd1NmaUoKK3lHc3pRNzVv
ek0vVDBYWi82NmtrbFNJPQogLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvc2VyaWFs
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9fY2VydHMvc2Vy
aWFsCmluZGV4IGE2MTZhZDQ5MWIxNzlkMjEyYjhhNzhmMjA2N2IzNjE5ODBmZmZjNTQuLjc1MDE2
ZWEzNjI1MjQ1YjFhYWM3OWNjNTU4NmMzZjMzY2U4YjdjNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvX2NlcnRzL3NlcmlhbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL19jZXJ0cy9zZXJpYWwK
QEAgLTEgKzEgQEAKLTAxClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorMDMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzUxNDIwMTIt
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29t
bWFuZC81MTQyMDEyLTEtZXhwZWN0ZWQudHh0CmluZGV4IDQ1ZDAyMzg4Y2M3NDAxOTY0YmM0NzI5
ZmRhZTRiOTVhYjhhOWIwYWEuLmZmYTUyYjlmNWVjMjFmNzQzZmEzYjk0MWNhYmQ2N2E4NzIzZWVm
NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21t
YW5kLzUxNDIwMTItMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvZXhlY0NvbW1hbmQvNTE0MjAxMi0xLWV4cGVjdGVkLnR4dApAQCAtOSw2ICs5LDcg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ1
NywwKSB3aWR0aCAzMjQ6ICJUaGVyZSBzaG91bGRuJ3QgYmUgYW55IGxpbmtzICppbnNpZGUgdGhl
IHNlbGVjdGlvbioiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDQzOiAiYmVs
b3cuIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0eDM2CisgICAg
ICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzg0eDAKICAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKICAgICAgICAgICBSZW5kZXJJ
bmxpbmUge0F9IGF0ICgwLDApIHNpemUgMjR4MTggW2NvbG9yPSMwMDAwRUVdCiAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNHgxOApAQCAtMTYsNyArMTcsNiBA
QCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgMTN4MTgKICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMjMsMCkgc2l6ZSAxM3gxOAogICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjMsMCkgd2lk
dGggMTM6ICJsbyIKLSAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTgpIHNp
emUgNzg0eDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMTgpIHNpemUgNzg0eDE4
CiAgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE2eDE4CiAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxNngxOApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvbnNyZXNwb25k
ZXItb3V0ZGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9uc3Jlc3BvbmRlci1vdXRkZW50LWV4cGVjdGVkLnR4dAppbmRleCA0M2Iz
ZDIyZWQ0YzQzMTdmZmFjNzRiZTY2NTQ0YzU2NTA4ZmJlYzJmLi40MmIwNzE4MDIwYTNlODgxNjI3
NjU2NGM0NTk4ZWNiMDFkYzc1NTI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZWRpdGluZy9leGVjQ29tbWFuZC9uc3Jlc3BvbmRlci1vdXRkZW50LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9uc3Jlc3Bv
bmRlci1vdXRkZW50LWV4cGVjdGVkLnR4dApAQCAtMTQsNiArMTQsNyBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDE6ICJU
aGlzIHRlc3RzIHRoZSBvdXRkZW50OiBtZXRob2QuICIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjAwLDApIHdpZHRoIDI1NzogIllvdSBzaG91bGQgc2VlIGFuIHVuZGVudGVkICdmb28nIGJlbG93
LiIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgxOAotICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMngxOAotICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDIyOiAiZm9vIgorICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnlt
b3VzKSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDIyeDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAy
MjogImZvbyIKIGNhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAy
IHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0
aW5nL2luc2VydGluZy9pbnNlcnQtYXQtZW5kLTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtYXQtZW5kLTAyLWV4cGVjdGVk
LnR4dAppbmRleCAwNTY5MGZjNzNjZmJhMWQwNzE2N2IzMzVlMGVlMjFlMDkyNjA3MDM2Li4zZjhl
MjkyYjI4NTM4M2NmMGExY2E2MjBhYmI2OWFmYTE1NzlhM2RhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWF0LWVuZC0wMi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5zZXJ0aW5n
L2luc2VydC1hdC1lbmQtMDItZXhwZWN0ZWQudHh0CkBAIC0yOSw0ICsyOSw1IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAo
Miw0Nikgc2l6ZSA3ODB4MTgKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA4eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAieCIKKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKIGNhcmV0OiBwb3Np
dGlvbiAxIG9mIGNoaWxkIDUgeyN0ZXh0fSBvZiBjaGlsZCA1IHtESVZ9IG9mIGJvZHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk4OTc3
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJv
YXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0CmluZGV4IDk3NDg4ZjNiOWFlODA1ODk3MTE1OGE2NWNk
ZWM0MjZhYWIwZGQzMjcuLjUwZWYyN2RkY2E0MmJiMGI3YWU1YTM0YWNhZGVlZTA4ZTgxNDFhN2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQv
NDk4OTc3NC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRp
bmcvcGFzdGVib2FyZC80OTg5Nzc0LWV4cGVjdGVkLnR4dApAQCAtMTIsNCArMTIsNiBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgdGV4dCBydW4gYXQgKDYzNCwxMDMpIHdp
ZHRoIDEwMjogIllvdSBzaG91bGQgc2VlIgogICAgICAgICB0ZXh0IHJ1biBhdCAoNzM1LDEwMykg
d2lkdGggNTogIiAiCiAgICAgICAgIHRleHQgcnVuIGF0ICgwLDEyMSkgd2lkdGggMzY0OiAic2V2
ZXJhbCBwaWN0dXJlcyBhYm92ZSBhbGwgaW4gdGhlIHNhbWUgbGluZS9wYXJhZ3JhcGguIgorICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKIGNhcmV0OiBwb3NpdGlvbiAxNjQgb2YgY2hpbGQg
NCB7I3RleHR9IG9mIGJvZHkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247596</attachid>
            <date>2015-02-28 00:27:32 -0800</date>
            <delta_ts>2015-02-28 00:44:31 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-129034-20150228002715.patch</filename>
            <type>text/plain</type>
            <size>34870</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3Yzc1ZmQwY2FlYTBk
NzBiZjllZGFkZmY4MDYzN2UwNGFmMTNkYy4uNjdjMjRiMjY3ZjJlZjQ1NDZhZjMxNGMxNDQyNzJj
Mzc1MzdlMjE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE1LTAyLTI4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGlzQ29udGVudEVkaXRhYmxl
IHNob3VsZG4ndCB0cmlnZ2VyIHN5bmNocm9ub3VzIHN0eWxlIHJlY2FsYyBpbiBtb3N0IGNhc2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBz
dHlsZSByZWNhbGMgaW5zaWRlIGlzQ29udGVudEVkaXRhYmxlIHdoZW4gdGhlIGRvY3VtZW50IGRv
ZXNuJ3QgY29udGFpbiAtd2Via2l0LXVzZXItbW9kaWZ5IG9yCisgICAgICAgIC13ZWJraXQtdXNl
ci1zZWxlY3Q6IGFsbC4gSW5zdGVhZCwgY29tcHV0ZSB0aGUgdmFsdWUgZnJvbSBjb250ZW50ZWRp
dGFibGUgYXR0cmlidXRlcyBpbiBhbmNlc3RvcnMuCisgICAgICAgIEhvd2V2ZXIsIHN0aWxsIGNv
bXB1dGUgdGhlIGVkaXRhYmlsaXR5IGZyb20gdGhlIHN0eWxlIHRyZWUgd2hlbiBpdCdzIHVwLXRv
LWRhdGUgaW4gb3JkZXIgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWRseSB3YWxraW5nIHVwIHRo
ZSBET00gdHJlZSBpbiBhIGhvdCBjb2RlIHBhdGggaW5zaWRlIGVkaXRpbmcuCisKKyAgICAgICAg
VGVzdDogZmFzdC9kb20vSFRNTEVsZW1lbnQvZHluYW1pYy1lZGl0YWJpbGl0eS1jaGFuZ2UuaHRt
bAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueS5pbjogTm8gbmVlZCB0byBwYXNzIGluICJ0
cnVlIiBhcyB3ZSBuZXZlciBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBmYWxzZS4KKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRLZXl3b3JkUHJv
cGVydHlBbmRWYWx1ZSk6IENhbGxzIHBhcnNlclNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkg
YXMgbmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VLZXl3b3JkVmFsdWUpOiBQYXNzZXMg
YXJvdW5kIFN0eWxlU2hlZXRDb250ZW50cyouCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VG
b250KTogRGl0dG8uCisKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRDb250ZW50czo6U3R5bGVTaGVldENvbnRlbnRzKTog
SW5pdGlhbGl6ZXMgYW5kIGNvcGllcyBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkuCisKKyAg
ICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVNoZWV0Q29udGVudHM6OnBhcnNlclNldFVzZXNSZW1Vbml0cyk6IFJlbW92ZWQgdGhlIGFyZ3Vt
ZW50IHNpbmNlIGl0IHdhcyBhbHdheXMgdHJ1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hl
ZXRDb250ZW50czo6cGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjp1c2VzU3R5bGVCYXNlZEVkaXRh
YmlsaXR5KTogQWRkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKTogQWRkZWQgYSBGSVhNRSBhcyB3ZWxsIGFz
IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB3ZSBkb24ndCBjYWxsCisgICAgICAgIHNldFVzZXNT
dHlsZUJhc2VkRWRpdGFiaWxpdHkuIFNpbmNlIE5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0eSB0cmln
Z2VycyBzdHlsZSByZWNhbGMgb25seSB3aGVuIHRoZSBmbGFnCisgICAgICAgIGlzIHNldCB0byB0
cnVlLCBpdCdzIHRvbyBsYXRlIHRvIHVwZGF0ZSB0aGUgZmxhZyBoZXJlLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQpOiBVc2VzIGEgbmV3bHkgZXh0cmFj
dGVkIG5lZWRzU3R5bGVSZWNhbGMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRl
QmFzZVVSTCk6IFByZXNlcnZlcyBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkgYXMgd2VsbCBh
cyBtX3VzZXNSZW1Vbml0LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVzZXNTdHlsZUJh
c2VkRWRpdGFiaWxpdHkpOiBBZGRlZC4gUmV0dXJucyB0cnVlIHdoZW4gaW5saW5lIHN0eWxlIGRl
Y2xhcmF0aW9ucyBvcgorICAgICAgICBhbnkgYWN0aXZlIHN0eWxlc2hlZXQgdXNlcyAtd2Via2l0
LXVzZXItbW9kaWZ5IG9yIC13ZWJraXQtdXNlci1zZWxlY3Q6IGFsbC4gRmx1c2hpbmcgcGVuZGlu
ZyBzdHlsZXNoZWV0CisgICAgICAgIGNoYW5nZXMgaGVyZSBpcyBmaW5lIGJlY2F1c2UgdGhlIGFs
dGVybmF0aXZlIGlzIHRvIHRyaWdnZXIgYSBmdWxsIGJsb3duIHN0eWxlIHJlY2FsYy4KKworICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5lZWRz
U3R5bGVSZWNhbGMpOiBBZGRlZC4gRXh0cmFjdGVkIGZyb20gdXBkYXRlU3R5bGVJZk5lZWRlZC4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OkRvY3VtZW50U3R5bGVT
aGVldENvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVTaGVldHNVc2VSZW1Vbml0
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uOjp1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cyk6IFVwZGF0ZXMgbV91c2VzU3R5bGVCYXNlZEVk
aXRhYmlsaXR5CisgICAgICAgIGFzIHdlbGwgYXMgbV91c2VzUmVtVW5pdC4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjp1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpz
ZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KTogQWRkZWQuCisKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlRWRpdGFiaWxpdHlGcm9tQ29tcHV0ZWRT
dHlsZSk6IEV4dHJhY3RlZCBmcm9tIGNvbXB1dGVFZGl0YWJpbGl0eS4KKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0eSk6IFdoZW4gdGhlIHN0eWxlIHJlY2FsYyBpcyBy
ZXF1ZXN0ZWQgYW5kIHRoZSByZW5kZXIgdHJlZSBpcyBkaXJ0eSwKKyAgICAgICAgY2hlY2sgaWYg
dGhlIGRvY3VtZW50IHVzZXMgYW55IENTUyBwcm9wZXJ0eSB0aGF0IGNhbiBhZmZlY3QgdGhlIGVk
aXRhYmlsaXR5IG9mIGVsZW1lbnRzLiBJZiBpdCBkb2Vzbid0LAorICAgICAgICBjb21wdXRlIHRo
ZSBlZGl0YWJpbGl0eSBmcm9tIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGVzIGluIHRoZSBhbmNo
b3JzIHZpYSBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MuCisgICAgICAgIENvbnRpbnVlIHRv
IHVzZSB0aGUgc3R5bGUtYmFzZWQgY29tcHV0YXRpb24gd2hlbiB0aGUgcmVuZGVyIHRyZWUgaXNu
J3QgZGlydHkgdG8gYXZvaWQgdGhlIHRyZWUgd2Fsay4KKworICAgICAgICAqIGh0bWwvSFRNTEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmVkaXRhYmlsaXR5RnJv
bUNvbnRlbnRFZGl0YWJsZUF0dHIpOiBFeHRyYWN0ZWQgZnJvbSBtYXRjaGVzUmVhZFdyaXRlUHNl
dWRvQ2xhc3MKKyAgICAgICAgdG8gYmUgY2FsbGVkIGluIE5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0
eS4gQWxzbyBtYWRlIGl0IHJldHVybiBFZGl0YWJpbGl0eSBpbnN0ZWFkIG9mIGJvb2xlYW4uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6bWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNz
KToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisKIDIwMTUtMDItMjcgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm9kZTo6aGFzRWRpdGFibGVTdHls
ZSBhbmQgaXNFZGl0YWJsZVBvc2l0aW9uIGhhdmUgdG9vIG1hbnkgb3B0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggZWZkYjJiYjg0ODgzM2JiYzY0NjRkZjVkMGY4YThhOWMz
ZjI1MDJjMC4uMTkxOGZjOTk4NWIxNGI2ZDg5MTdiNmQ2MmM2Njc5OGRhMDJkMDIyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xNzAwLDcgKzE3MDAsNyBAQCB1bmFyeV90ZXJt
OgogICAgICAgJCQuZlZhbHVlID0gJDE7CiAgICAgICAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19SRU1TOwogICAgICAgaWYgKHBhcnNlci0+bV9zdHlsZVNoZWV0KQotICAgICAgICAg
IHBhcnNlci0+bV9zdHlsZVNoZWV0LT5wYXJzZXJTZXRVc2VzUmVtVW5pdHModHJ1ZSk7CisgICAg
ICAgICAgcGFyc2VyLT5tX3N0eWxlU2hlZXQtPnBhcnNlclNldFVzZXNSZW1Vbml0cygpOwogICB9
CiAgIHwgQ0hTIHsgJCQuaWQgPSBDU1NWYWx1ZUludmFsaWQ7ICQkLmZWYWx1ZSA9ICQxOyAkJC51
bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DSFM7IH0KICAgfCBWVyB7ICQkLmlkID0gQ1NT
VmFsdWVJbnZhbGlkOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVlc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMTQ2ZTEwNTVhMjQ0ZWFh
MGU5NTdkMzk5YTM5MGMyYTY5ZjU1OWEwNS4uNTA2YTI0ZGQwMWNmNjc2ZGEwNDY5MGVhZDIyZGZh
ZDY5YTQ1MmVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTY0MCw3ICs2NDAsNyBA
QCBzdGF0aWMgYm9vbCBwYXJzZVNpbXBsZUxlbmd0aFZhbHVlKE11dGFibGVTdHlsZVByb3BlcnRp
ZXMqIGRlY2xhcmF0aW9uLCBDU1NQcm9wZQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
aW5saW5lIGJvb2wgaXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJZCwgaW50IHZhbHVlSUQsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIHBhcnNlckNv
bnRleHQpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgaW50IHZhbHVlSUQsIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmIHBhcnNlckNvbnRleHQsIFN0eWxlU2hlZXRDb250ZW50cyogc3R5bGVTaGVldENvbnRl
bnRzKQogewogICAgIGlmICghdmFsdWVJRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAx
NSwxMiArMTAxNSwyMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEtleXdvcmRQcm9wZXJ0
eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgaW50CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJN
b2RpZnk6IC8vIHJlYWQtb25seSB8IHJlYWQtd3JpdGUKLSAgICAgICAgaWYgKHZhbHVlSUQgPT0g
Q1NTVmFsdWVSZWFkT25seSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUmVhZFdyaXRlIHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVSZWFkV3JpdGVQbGFpbnRleHRPbmx5KQorICAgICAgICBpZiAodmFsdWVJ
RCA9PSBDU1NWYWx1ZVJlYWRPbmx5IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVSZWFkV3JpdGUgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZVJlYWRXcml0ZVBsYWludGV4dE9ubHkpIHsKKyAgICAgICAgICAg
IGlmIChzdHlsZVNoZWV0Q29udGVudHMpCisgICAgICAgICAgICAgICAgc3R5bGVTaGVldENvbnRl
bnRzLT5wYXJzZXJTZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VXNlclNlbGVjdDogLy8gYXV0byB8IG5vbmUgfCB0ZXh0IHwgYWxsCi0gICAgICAg
IGlmICh2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlVGV4dCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQWxsKQorICAg
ICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVRleHQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVBbGwpIHsKKyAgICAgICAgICAgIGlmIChz
dHlsZVNoZWV0Q29udGVudHMpCisgICAgICAgICAgICAgICAgc3R5bGVTaGVldENvbnRlbnRzLT5w
YXJzZXJTZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0V3JpdGluZ01vZGU6CiAgICAgICAgIGlmICh2YWx1ZUlEID49IENTU1ZhbHVlSG9yaXpvbnRh
bFRiICYmIHZhbHVlSUQgPD0gQ1NTVmFsdWVIb3Jpem9udGFsQnQpCkBAIC0xMTc2LDcgKzExODQs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNLZXl3b3JkUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SWQpCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBwYXJzZUtleXdvcmRWYWx1ZShN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBkZWNsYXJhdGlvbiwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlkLCBjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBpbXBvcnRhbnQsIGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIHBhcnNlckNvbnRleHQpCitzdGF0aWMgYm9vbCBwYXJzZUtleXdvcmRWYWx1ZShN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBkZWNsYXJhdGlvbiwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlkLCBjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBpbXBvcnRhbnQsIGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIHBhcnNlckNvbnRleHQsIFN0eWxlU2hlZXRDb250ZW50cyogc3R5bGVTaGVldENv
bnRlbnRzKQogewogICAgIEFTU0VSVCghc3RyaW5nLmlzRW1wdHkoKSk7CiAKQEAgLTEyMDMsNyAr
MTIxMSw3IEBAIHN0YXRpYyBib29sIHBhcnNlS2V5d29yZFZhbHVlKE11dGFibGVTdHlsZVByb3Bl
cnRpZXMqIGRlY2xhcmF0aW9uLCBDU1NQcm9wZXJ0eUlECiAgICAgICAgIHZhbHVlID0gY3NzVmFs
dWVQb29sKCkuY3JlYXRlSW5oZXJpdGVkVmFsdWUoKTsKICAgICBlbHNlIGlmICh2YWx1ZUlEID09
IENTU1ZhbHVlSW5pdGlhbCkKICAgICAgICAgdmFsdWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVF
eHBsaWNpdEluaXRpYWxWYWx1ZSgpOwotICAgIGVsc2UgaWYgKGlzVmFsaWRLZXl3b3JkUHJvcGVy
dHlBbmRWYWx1ZShwcm9wZXJ0eUlkLCB2YWx1ZUlELCBwYXJzZXJDb250ZXh0KSkKKyAgICBlbHNl
IGlmIChpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUocHJvcGVydHlJZCwgdmFsdWVJRCwg
cGFyc2VyQ29udGV4dCwgc3R5bGVTaGVldENvbnRlbnRzKSkKICAgICAgICAgdmFsdWUgPSBjc3NW
YWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWVJRCk7CiAgICAgZWxzZQogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzA4LDcgKzEzMTYsNyBAQCBib29sIENTU1BhcnNlcjo6
cGFyc2VWYWx1ZShNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBkZWNsYXJhdGlvbiwgQ1NTUHJvcGVy
dHlJRCBwcgogICAgICAgICBjb250ZXh0Lm1vZGUgPSBjc3NQYXJzZXJNb2RlOwogICAgIH0KIAot
ICAgIGlmIChwYXJzZUtleXdvcmRWYWx1ZShkZWNsYXJhdGlvbiwgcHJvcGVydHlJRCwgc3RyaW5n
LCBpbXBvcnRhbnQsIGNvbnRleHQpKQorICAgIGlmIChwYXJzZUtleXdvcmRWYWx1ZShkZWNsYXJh
dGlvbiwgcHJvcGVydHlJRCwgc3RyaW5nLCBpbXBvcnRhbnQsIGNvbnRleHQsIGNvbnRleHRTdHls
ZVNoZWV0KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHBhcnNlVHJhbnNsYXRlVHJh
bnNmb3JtVmFsdWUoZGVjbGFyYXRpb24sIHByb3BlcnR5SUQsIHN0cmluZywgaW1wb3J0YW50KSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xODg2LDcgKzE4OTQsNyBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
fQogCiAgICAgaWYgKGlzS2V5d29yZFByb3BlcnR5SUQocHJvcElkKSkgewotICAgICAgICBpZiAo
IWlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShwcm9wSWQsIGlkLCBtX2NvbnRleHQpKQor
ICAgICAgICBpZiAoIWlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShwcm9wSWQsIGlkLCBt
X2NvbnRleHQsIG1fc3R5bGVTaGVldCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIGlmIChtX3ZhbHVlTGlzdC0+bmV4dCgpICYmICFpblNob3J0aGFuZCgpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtNjI5Nyw3ICs2MzA1LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlRm9udChib29sIGltcG9ydGFudCkKICAgICBib29sIGZvbnRXZWlnaHRQYXJzZWQgPSBmYWxz
ZTsKICAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWU7CiAgICAgd2hpbGUgKCh2YWx1ZSA9IG1fdmFs
dWVMaXN0LT5jdXJyZW50KCkpKSB7Ci0gICAgICAgIGlmICghZm9udFN0eWxlUGFyc2VkICYmIGlz
VmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgdmFsdWUt
PmlkLCBtX2NvbnRleHQpKSB7CisgICAgICAgIGlmICghZm9udFN0eWxlUGFyc2VkICYmIGlzVmFs
aWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgdmFsdWUtPmlk
LCBtX2NvbnRleHQsIG1fc3R5bGVTaGVldCkpIHsKICAgICAgICAgICAgIGFkZFByb3BlcnR5KENT
U1Byb3BlcnR5Rm9udFN0eWxlLCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
dmFsdWUtPmlkKSwgaW1wb3J0YW50KTsKICAgICAgICAgICAgIGZvbnRTdHlsZVBhcnNlZCA9IHRy
dWU7CiAgICAgICAgIH0gZWxzZSBpZiAoIWZvbnRWYXJpYW50UGFyc2VkICYmICh2YWx1ZS0+aWQg
PT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWUtPmlkID09IENTU1ZhbHVlU21hbGxDYXBzKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAppbmRleCBlYWZiZDkyMGQ2
ODI5MmY4MDMzNjlhOTc0N2M0MzAxNmZlYWZkNTkyLi43NDFjYjY0YWJiNDgzYTcyMWVkYjAxNWM4
NmEwY2YxMGRiZjI4YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVl
dENvbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRz
LmNwcApAQCAtNjQsNiArNjQsNyBAQCBTdHlsZVNoZWV0Q29udGVudHM6OlN0eWxlU2hlZXRDb250
ZW50cyhTdHlsZVJ1bGVJbXBvcnQqIG93bmVyUnVsZSwgY29uc3QgU3RyaW5nJgogICAgICwgbV9o
YXNTeW50YWN0aWNhbGx5VmFsaWRDU1NIZWFkZXIodHJ1ZSkKICAgICAsIG1fZGlkTG9hZEVycm9y
T2NjdXIoZmFsc2UpCiAgICAgLCBtX3VzZXNSZW1Vbml0cyhmYWxzZSkKKyAgICAsIG1fdXNlc1N0
eWxlQmFzZWRFZGl0YWJpbGl0eShmYWxzZSkKICAgICAsIG1faXNNdXRhYmxlKGZhbHNlKQogICAg
ICwgbV9pc0luTWVtb3J5Q2FjaGUoZmFsc2UpCiAgICAgLCBtX3BhcnNlckNvbnRleHQoY29udGV4
dCkKQEAgLTgzLDYgKzg0LDcgQEAgU3R5bGVTaGVldENvbnRlbnRzOjpTdHlsZVNoZWV0Q29udGVu
dHMoY29uc3QgU3R5bGVTaGVldENvbnRlbnRzJiBvKQogICAgICwgbV9oYXNTeW50YWN0aWNhbGx5
VmFsaWRDU1NIZWFkZXIoby5tX2hhc1N5bnRhY3RpY2FsbHlWYWxpZENTU0hlYWRlcikKICAgICAs
IG1fZGlkTG9hZEVycm9yT2NjdXIoZmFsc2UpCiAgICAgLCBtX3VzZXNSZW1Vbml0cyhvLm1fdXNl
c1JlbVVuaXRzKQorICAgICwgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KG8ubV91c2VzU3R5
bGVCYXNlZEVkaXRhYmlsaXR5KQogICAgICwgbV9pc011dGFibGUoZmFsc2UpCiAgICAgLCBtX2lz
SW5NZW1vcnlDYWNoZShmYWxzZSkKICAgICAsIG1fcGFyc2VyQ29udGV4dChvLm1fcGFyc2VyQ29u
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaAppbmRleCA2MmE5M2Q1
MDMyYzc4OTkwOWMwZTAxMzIzM2EwNWY4MjUxYzEwZjcyLi5lMTRiMDdhM2IzMzIyNjMwODEzN2Qz
ODc2NThhN2U1MWQxYjE5MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5oCkBAIC05MSw3ICs5MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhcnNlckFkZE5hbWVzcGFj
ZShjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeCwgY29uc3QgQXRvbWljU3RyaW5nJiB1cmkpOwog
ICAgIHZvaWQgcGFyc2VyQXBwZW5kUnVsZShQYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+KTsKICAg
ICB2b2lkIHBhcnNlclNldEVuY29kaW5nRnJvbUNoYXJzZXRSdWxlKGNvbnN0IFN0cmluZyYgZW5j
b2RpbmcpOyAKLSAgICB2b2lkIHBhcnNlclNldFVzZXNSZW1Vbml0cyhib29sIGIpIHsgbV91c2Vz
UmVtVW5pdHMgPSBiOyB9CisgICAgdm9pZCBwYXJzZXJTZXRVc2VzUmVtVW5pdHMoKSB7IG1fdXNl
c1JlbVVuaXRzID0gdHJ1ZTsgfQorICAgIHZvaWQgcGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0
YWJpbGl0eSgpIHsgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gdHJ1ZTsgfQogCiAgICAg
dm9pZCBjbGVhclJ1bGVzKCk7CiAKQEAgLTExNyw2ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgU3R5
bGVSdWxlQmFzZSogcnVsZUF0KHVuc2lnbmVkIGluZGV4KSBjb25zdDsKIAogICAgIGJvb2wgdXNl
c1JlbVVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VzUmVtVW5pdHM7IH0KKyAgICBib29sIHVz
ZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX3VzZXNTdHlsZUJhc2Vk
RWRpdGFiaWxpdHk7IH0KIAogICAgIHVuc2lnbmVkIGVzdGltYXRlZFNpemVJbkJ5dGVzKCkgY29u
c3Q7CiAgICAgCkBAIC0xNTksNiArMTYxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzU3lu
dGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyIDogMTsKICAgICBib29sIG1fZGlkTG9hZEVycm9yT2Nj
dXIgOiAxOwogICAgIGJvb2wgbV91c2VzUmVtVW5pdHMgOiAxOworICAgIGJvb2wgbV91c2VzU3R5
bGVCYXNlZEVkaXRhYmlsaXR5IDogMTsKICAgICBib29sIG1faXNNdXRhYmxlIDogMTsKICAgICBi
b29sIG1faXNJbk1lbW9yeUNhY2hlIDogMTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDI4ODFhY2Y4NmU0NWE4MDFmZDBiY2VkZGMxYTZiY2MwN2NmYmZjMmMuLmJhZGUyNDk1NmNk
MzM1MzhlZjEwYzI3MDc1MmViNzI1MjQ3M2JiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTc0Nyw4ICsxNzQ3LDExIEBAIHZvaWQgRG9jdW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlOjpD
aGFuZ2UgY2hhbmdlKQogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tp
ZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2FsY3VsYXRlU3R5bGUoKnRoaXMp
OwogCisgICAgLy8gRklYTUU6IFdlIG5ldmVyIHJlc2V0IHRoaXMgZmxhZ3MuCiAgICAgaWYgKG1f
ZWxlbWVudFNoZWV0ICYmIG1fZWxlbWVudFNoZWV0LT5jb250ZW50cygpLnVzZXNSZW1Vbml0cygp
KQogICAgICAgICBtX3N0eWxlU2hlZXRDb2xsZWN0aW9uLnNldFVzZXNSZW1Vbml0KHRydWUpOwor
ICAgIC8vIFdlIGRvbid0IGNhbGwgc2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSBoZXJlIGJl
Y2F1c2UgdGhlIHdob2xlIHBvaW50IG9mIHRoZSBmbGFnIGlzIHRvIGF2b2lkIHN0eWxlIHJlY2Fs
Yy4KKyAgICAvLyBpLmUuIHVwZGF0aW5nIHRoZSBmbGFnIGhlcmUgd291bGQgYmUgdG9vIGxhdGUu
CiAKICAgICBtX2luU3R5bGVSZWNhbGMgPSB0cnVlOwogICAgIHsKQEAgLTE4MDgsNyArMTgxMSw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAgIGlmIChtX29wdGlt
aXplZFN0eWxlU2hlZXRVcGRhdGVUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBzdHlsZVJlc29s
dmVyQ2hhbmdlZChSZWNhbGNTdHlsZUlmTmVlZGVkKTsKIAotICAgIGlmICgoIW1fcGVuZGluZ1N0
eWxlUmVjYWxjU2hvdWxkRm9yY2UgJiYgIWNoaWxkTmVlZHNTdHlsZVJlY2FsYygpKSB8fCBpblBh
Z2VDYWNoZSgpKQorICAgIGlmICghbmVlZHNTdHlsZVJlY2FsYygpKQogICAgICAgICByZXR1cm47
CiAKICAgICByZWNhbGNTdHlsZShTdHlsZTo6Tm9DaGFuZ2UpOwpAQCAtMjY4Myw5ICsyNjg2LDEz
IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUJhc2VVUkwoKQogICAgICAgICAvLyBFbGVtZW50IHNo
ZWV0IGlzIHNpbGx5LiBJdCBuZXZlciBjb250YWlucyBhbnl0aGluZy4KICAgICAgICAgQVNTRVJU
KCFtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS5ydWxlQ291bnQoKSk7CiAgICAgICAgIGJvb2wg
dXNlc1JlbVVuaXRzID0gbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRzKCkudXNlc1JlbVVuaXRzKCk7
CisgICAgICAgIGJvb2wgdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IG1fZWxlbWVudFNoZWV0
LT5jb250ZW50cygpLnVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKTsKICAgICAgICAgbV9lbGVt
ZW50U2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGVJbmxpbmUoKnRoaXMsIG1fYmFzZVVSTCk7
CiAgICAgICAgIC8vIEZJWE1FOiBTbyB3ZSBhcmUgbm90IHJlYWxseSB0aGUgcGFyc2VyLiBUaGUg
cmlnaHQgZml4IGlzIHRvIGVsaW1pbmF0ZSB0aGUgZWxlbWVudCBzaGVldCBjb21wbGV0ZWx5Lgot
ICAgICAgICBtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS5wYXJzZXJTZXRVc2VzUmVtVW5pdHMo
dXNlc1JlbVVuaXRzKTsKKyAgICAgICAgaWYgKHVzZXNSZW1Vbml0cykKKyAgICAgICAgICAgIG1f
ZWxlbWVudFNoZWV0LT5jb250ZW50cygpLnBhcnNlclNldFVzZXNSZW1Vbml0cygpOworICAgICAg
ICBpZiAodXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSkKKyAgICAgICAgICAgIG1fZWxlbWVudFNo
ZWV0LT5jb250ZW50cygpLnBhcnNlclNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKTsKICAg
ICB9CiAKICAgICBpZiAoIWVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIob2xkQmFzZVVS
TCwgbV9iYXNlVVJMKSkgewpAQCAtMjg1Miw2ICsyODU5LDE5IEBAIENTU1N0eWxlU2hlZXQmIERv
Y3VtZW50OjplbGVtZW50U2hlZXQoKQogICAgIHJldHVybiAqbV9lbGVtZW50U2hlZXQ7CiB9CiAK
K2Jvb2wgRG9jdW1lbnQ6OnVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSBjb25zdAoreworICAg
IGlmIChtX2VsZW1lbnRTaGVldCAmJiBtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2VzU3R5
bGVCYXNlZEVkaXRhYmlsaXR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgQVNTRVJU
KCFtX3JlbmRlclZpZXcgfHwgIW1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkuaXNQYWludGluZygp
KTsKKyAgICBBU1NFUlQoIW1faW5TdHlsZVJlY2FsYyk7CisKKyAgICBhdXRvJiBjb2xsZWN0aW9u
ID0gZG9jdW1lbnQoKS5zdHlsZVNoZWV0Q29sbGVjdGlvbigpOworICAgIGNvbGxlY3Rpb24uZmx1
c2hQZW5kaW5nVXBkYXRlcygpOworICAgIHJldHVybiBjb2xsZWN0aW9uLnVzZXNTdHlsZUJhc2Vk
RWRpdGFiaWxpdHkoKTsKK30KKwogdm9pZCBEb2N1bWVudDo6cHJvY2Vzc0h0dHBFcXVpdihjb25z
dCBTdHJpbmcmIGVxdWl2LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCiB7CiAgICAgQVNTRVJUKCFl
cXVpdi5pc051bGwoKSAmJiAhY29udGVudC5pc051bGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDc2ZmIxYjc5Y2NlYmM0Njg1MTNhYzU2ZWIwYjQzODBmZjlmM2QwZTMuLjE1NDQ0YTZlMTll
YjI3YzFhNmEyMzdkYWI5ODIyY2U3ZDdjNjg5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02
MDEsNiArNjAxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZWNhbGNTdHlsZShTdHlsZTo6Q2hh
bmdlID0gU3R5bGU6Ok5vQ2hhbmdlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVN0
eWxlSWZOZWVkZWQoKTsKKyAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdCB7IHJldHVy
biAhaW5QYWdlQ2FjaGUoKSAmJiAobV9wZW5kaW5nU3R5bGVSZWNhbGNTaG91bGRGb3JjZSB8fCBj
aGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBtX29wdGltaXplZFN0eWxlU2hlZXRVcGRhdGVUaW1l
ci5pc0FjdGl2ZSgpKTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQo
KTsKICAgICAKQEAgLTY5Myw2ICs2OTQsNyBAQCBwdWJsaWM6CiAgICAgRnJhbWUqIGZpbmRVbnNh
ZmVQYXJlbnRTY3JvbGxQcm9wYWdhdGlvbkJvdW5kYXJ5KCk7CiAKICAgICBDU1NTdHlsZVNoZWV0
JiBlbGVtZW50U2hlZXQoKTsKKyAgICBib29sIHVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSBj
b25zdDsKICAgICAKICAgICB2aXJ0dWFsIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2Vy
KCk7CiAgICAgRG9jdW1lbnRQYXJzZXIqIHBhcnNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2Vy
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNo
ZWV0Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0
Q29sbGVjdGlvbi5jcHAKaW5kZXggOGFlMzFlOTYzMTRlMmI5ODk3ODNjN2ZmYmE2NWZmOTk5MjM0
M2VkYi4uMGZjYjgxYjZlOTkwMTAxZmMwZmRmZmQ1MzdmNDg4ZmJjODA1Y2QyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcApA
QCAtNjAsNiArNjAsNyBAQCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpEb2N1bWVudFN0
eWxlU2hlZXRDb2xsZWN0aW9uKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAsIG1fdXNlc0ZpcnN0
TGluZVJ1bGVzKGZhbHNlKQogICAgICwgbV91c2VzRmlyc3RMZXR0ZXJSdWxlcyhmYWxzZSkKICAg
ICAsIG1fdXNlc1JlbVVuaXRzKGZhbHNlKQorICAgICwgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmls
aXR5KGZhbHNlKQogewogfQogCkBAIC0zOTAsMTUgKzM5MSw2IEBAIHZvaWQgRG9jdW1lbnRTdHls
ZVNoZWV0Q29sbGVjdGlvbjo6YW5hbHl6ZVN0eWxlU2hlZXRDaGFuZ2UoVXBkYXRlRmxhZyB1cGRh
dGVGbGFnCiAgICAgcmVxdWlyZXNGdWxsU3R5bGVSZWNhbGMgPSBmYWxzZTsKIH0KIAotc3RhdGlj
IGJvb2wgc3R5bGVTaGVldHNVc2VSZW1Vbml0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxl
U2hlZXQ+PiYgc2hlZXRzKQotewotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaGVldHMu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKHNoZWV0c1tpXS0+Y29udGVudHMoKS51c2VzUmVt
VW5pdHMoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KIHN0YXRpYyB2b2lkIGZpbHRlckVuYWJsZWROb25lbXB0eUNTU1N0eWxlU2hlZXRz
KFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiByZXN1bHQsIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8U3R5bGVTaGVldD4+JiBzaGVldHMpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNoZWV0cy5zaXplKCk7ICsraSkgewpAQCAtNDU3LDcgKzQ0OSwxMiBAQCBib29sIERvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb246OnVwZGF0ZUFjdGl2ZVN0eWxlU2hlZXRzKFVwZGF0ZUZsYWcg
dXBkYXRlRmxhZwogICAgIG1fYWN0aXZlQXV0aG9yU3R5bGVTaGVldHMuc3dhcChhY3RpdmVDU1NT
dHlsZVNoZWV0cyk7CiAgICAgbV9zdHlsZVNoZWV0c0ZvclN0eWxlU2hlZXRMaXN0LnN3YXAoYWN0
aXZlU3R5bGVTaGVldHMpOwogCi0gICAgbV91c2VzUmVtVW5pdHMgPSBzdHlsZVNoZWV0c1VzZVJl
bVVuaXRzKG1fYWN0aXZlQXV0aG9yU3R5bGVTaGVldHMpOworICAgIGZvciAoY29uc3QgYXV0byYg
c2hlZXQgOiBtX2FjdGl2ZUF1dGhvclN0eWxlU2hlZXRzKSB7CisgICAgICAgIGlmIChzaGVldC0+
Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKSkKKyAgICAgICAgICAgIG1fdXNlc1JlbVVuaXRzID0g
dHJ1ZTsKKyAgICAgICAgaWYgKHNoZWV0LT5jb250ZW50cygpLnVzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHkoKSkKKyAgICAgICAgICAgIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IHRydWU7
CisgICAgfQogICAgIG1fcGVuZGluZ1VwZGF0ZVR5cGUgPSBOb1VwZGF0ZTsKIAogICAgIHJldHVy
biByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oCmluZGV4IGVlZGU3YmY0MjUxNGRiZWQ5YTQyMGE0
ZGY4NmQ2MzY1MjI0NWI2MjguLjYwZmI3ODNhNzc1NTMwNzRmNTFmMWZjNWZiOTkxMzdkODFlMDAx
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxl
Y3Rpb24uaApAQCAtMTA1LDYgKzEwNSw4IEBAIHB1YmxpYzoKICAgICBib29sIHVzZXNGaXJzdExl
dHRlclJ1bGVzKCkgY29uc3QgeyByZXR1cm4gbV91c2VzRmlyc3RMZXR0ZXJSdWxlczsgfQogICAg
IGJvb2wgdXNlc1JlbVVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV91c2VzUmVtVW5pdHM7IH0KICAg
ICB2b2lkIHNldFVzZXNSZW1Vbml0KGJvb2wgYikgeyBtX3VzZXNSZW1Vbml0cyA9IGI7IH0KKyAg
ICBib29sIHVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKSB7IHJldHVybiBtX3VzZXNTdHlsZUJh
c2VkRWRpdGFiaWxpdHk7IH0KKyAgICB2b2lkIHNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHko
Ym9vbCBiKSB7IG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSA9IGI7IH0KIAogICAgIHZvaWQg
Y29tYmluZUNTU0ZlYXR1cmVGbGFncygpOwogICAgIHZvaWQgcmVzZXRDU1NGZWF0dXJlRmxhZ3Mo
KTsKQEAgLTE1Nyw2ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VzRmlyc3RMaW5l
UnVsZXM7CiAgICAgYm9vbCBtX3VzZXNGaXJzdExldHRlclJ1bGVzOwogICAgIGJvb2wgbV91c2Vz
UmVtVW5pdHM7CisgICAgYm9vbCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHk7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggZjQ0ODc2NDc0ZDQzYjI4ODU5ZWJhZGQwNTQyOGRmYTJlMjlk
Mjg5OS4uMzU3MjQ4NzViN2QxODIwZDhmNmE2ZmMxZTMwODRhOWEyNTc4MmYyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgorI2luY2x1ZGUg
IlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIlRlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUb3VjaEV2ZW50
LmgiCkBAIC01NTMsMjQgKzU1NCwxMyBAQCB2b2lkIE5vZGU6Omluc3BlY3QoKQogICAgICAgICBk
b2N1bWVudCgpLnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmluc3BlY3QodGhpcyk7CiB9
CiAKLU5vZGU6OkVkaXRhYmlsaXR5IE5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0
QWxsVHJlYXRtZW50IHRyZWF0bWVudCwgU2hvdWxkVXBkYXRlU3R5bGUgc2hvdWxkVXBkYXRlU3R5
bGUpIGNvbnN0CitzdGF0aWMgTm9kZTo6RWRpdGFiaWxpdHkgY29tcHV0ZUVkaXRhYmlsaXR5RnJv
bUNvbXB1dGVkU3R5bGUoY29uc3QgTm9kZSYgc3RhcnROb2RlLCBOb2RlOjpVc2VyU2VsZWN0QWxs
VHJlYXRtZW50IHRyZWF0bWVudCkKIHsKLSAgICBpZiAoc2hvdWxkVXBkYXRlU3R5bGUgPT0gU2hv
dWxkVXBkYXRlU3R5bGU6OlVwZGF0ZSkKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlm
TmVlZGVkKCk7Ci0KLSAgICBpZiAoIWRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgpKQot
ICAgICAgICByZXR1cm4gRWRpdGFiaWxpdHk6OlJlYWRPbmx5OwotICAgIGlmIChkb2N1bWVudCgp
LmZyYW1lKCkgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5wYWdlKCkgJiYgZG9jdW1lbnQoKS5mcmFt
ZSgpLT5wYWdlKCktPmlzRWRpdGFibGUoKSAmJiAhY29udGFpbmluZ1NoYWRvd1Jvb3QoKSkKLSAg
ICAgICAgcmV0dXJuIEVkaXRhYmlsaXR5OjpDYW5FZGl0UmljaGx5OwotCi0gICAgaWYgKGlzUHNl
dWRvRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gRWRpdGFiaWxpdHk6OlJlYWRPbmx5OwotCiAg
ICAgLy8gSWRlYWxseSB3ZSdkIGNhbGwgQVNTRVJUKCFuZWVkc1N0eWxlUmVjYWxjKCkpIGhlcmUs
IGJ1dAogICAgIC8vIENvbnRhaW5lck5vZGU6OnNldEZvY3VzKCkgY2FsbHMgc2V0TmVlZHNTdHls
ZVJlY2FsYygpLCBzbyB0aGUgYXNzZXJ0aW9uCiAgICAgLy8gd291bGQgZmlyZSBpbiB0aGUgbWlk
ZGxlIG9mIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudCgpLgogCi0gICAgZm9yIChjb25zdCBO
b2RlKiBub2RlID0gdGhpczsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgeworICAg
IGZvciAoY29uc3QgTm9kZSogbm9kZSA9ICZzdGFydE5vZGU7IG5vZGU7IG5vZGUgPSBub2RlLT5w
YXJlbnROb2RlKCkpIHsKICAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbm9kZS0+aXNEb2N1
bWVudE5vZGUoKSA/IG5vZGUtPnJlbmRlclN0eWxlKCkgOiBjb25zdF9jYXN0PE5vZGUqPihub2Rl
KS0+Y29tcHV0ZWRTdHlsZSgpOwogICAgICAgICBpZiAoIXN0eWxlKQogICAgICAgICAgICAgY29u
dGludWU7CkBAIC01NzksMjMgKzU2OSwzOSBAQCBOb2RlOjpFZGl0YWJpbGl0eSBOb2RlOjpjb21w
dXRlRWRpdGFiaWxpdHkoVXNlclNlbGVjdEFsbFRyZWF0bWVudCB0cmVhdG1lbnQsIFNobwogI2lm
IEVOQUJMRShVU0VSU0VMRUNUX0FMTCkKICAgICAgICAgLy8gRWxlbWVudHMgd2l0aCB1c2VyLXNl
bGVjdDogYWxsIHN0eWxlIGFyZSBjb25zaWRlcmVkIGF0b21pYwogICAgICAgICAvLyB0aGVyZWZv
cmUgbm9uIGVkaXRhYmxlLgotICAgICAgICBpZiAodHJlYXRtZW50ID09IFVzZXJTZWxlY3RBbGxJ
c0Fsd2F5c05vbkVkaXRhYmxlICYmIHN0eWxlLT51c2VyU2VsZWN0KCkgPT0gU0VMRUNUX0FMTCkK
LSAgICAgICAgICAgIHJldHVybiBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CisgICAgICAgIGlmICh0
cmVhdG1lbnQgPT0gTm9kZTo6VXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRpdGFibGUgJiYgc3R5
bGUtPnVzZXJTZWxlY3QoKSA9PSBTRUxFQ1RfQUxMKQorICAgICAgICAgICAgcmV0dXJuIE5vZGU6
OkVkaXRhYmlsaXR5OjpSZWFkT25seTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTSh0cmVh
dG1lbnQpOwogI2VuZGlmCiAgICAgICAgIHN3aXRjaCAoc3R5bGUtPnVzZXJNb2RpZnkoKSkgewog
ICAgICAgICBjYXNlIFJFQURfT05MWToKLSAgICAgICAgICAgIHJldHVybiBFZGl0YWJpbGl0eTo6
UmVhZE9ubHk7CisgICAgICAgICAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6OlJlYWRPbmx5
OwogICAgICAgICBjYXNlIFJFQURfV1JJVEU6Ci0gICAgICAgICAgICByZXR1cm4gRWRpdGFiaWxp
dHk6OkNhbkVkaXRSaWNobHk7CisgICAgICAgICAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6
OkNhbkVkaXRSaWNobHk7CiAgICAgICAgIGNhc2UgUkVBRF9XUklURV9QTEFJTlRFWFRfT05MWToK
LSAgICAgICAgICAgIHJldHVybiBFZGl0YWJpbGl0eTo6Q2FuRWRpdFBsYWluVGV4dDsKKyAgICAg
ICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6Q2FuRWRpdFBsYWluVGV4dDsKICAgICAg
ICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIE5vZGU6
OkVkaXRhYmlsaXR5OjpSZWFkT25seTsKKyAgICB9CisgICAgcmV0dXJuIE5vZGU6OkVkaXRhYmls
aXR5OjpSZWFkT25seTsKK30KKworTm9kZTo6RWRpdGFiaWxpdHkgTm9kZTo6Y29tcHV0ZUVkaXRh
YmlsaXR5KFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgdHJlYXRtZW50LCBTaG91bGRVcGRhdGVTdHls
ZSBzaG91bGRVcGRhdGVTdHlsZSkgY29uc3QKK3sKKyAgICBpZiAoIWRvY3VtZW50KCkuaGFzTGl2
aW5nUmVuZGVyVHJlZSgpIHx8IGlzUHNldWRvRWxlbWVudCgpKQogICAgICAgICByZXR1cm4gRWRp
dGFiaWxpdHk6OlJlYWRPbmx5OworCisgICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSAmJiBkb2N1
bWVudCgpLmZyYW1lKCktPnBhZ2UoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnBhZ2UoKS0+aXNF
ZGl0YWJsZSgpICYmICFjb250YWluaW5nU2hhZG93Um9vdCgpKQorICAgICAgICByZXR1cm4gRWRp
dGFiaWxpdHk6OkNhbkVkaXRSaWNobHk7CisKKyAgICBpZiAoc2hvdWxkVXBkYXRlU3R5bGUgPT0g
U2hvdWxkVXBkYXRlU3R5bGU6OlVwZGF0ZSAmJiBkb2N1bWVudCgpLm5lZWRzU3R5bGVSZWNhbGMo
KSkgeworICAgICAgICBpZiAoIWRvY3VtZW50KCkudXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgp
KQorICAgICAgICAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjplZGl0YWJpbGl0eUZyb21Db250ZW50
RWRpdGFibGVBdHRyKCp0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVl
ZGVkKCk7CiAgICAgfQotICAgIHJldHVybiBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CisgICAgcmV0
dXJuIGNvbXB1dGVFZGl0YWJpbGl0eUZyb21Db21wdXRlZFN0eWxlKCp0aGlzLCB0cmVhdG1lbnQp
OwogfQogCiBSZW5kZXJCb3gqIE5vZGU6OnJlbmRlckJveCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCmluZGV4IDhlZjVmZGQ5YTU5N2ExOTVmM2U0MzkzOGRlMjM1ZWY5ZGM0
YjU5NjMuLjM4ZjQ4OWMzNWE4ZjgyODllNmQ0OGI2MTY1ZGY1ZGVhMDU5OThjMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0zNjcsMjggKzM2NywzNSBAQCB2b2lkIEhUTUxF
bGVtZW50Ojpwb3B1bGF0ZUV2ZW50TmFtZUZvckF0dHJpYnV0ZUxvY2FsTmFtZU1hcChIYXNoTWFw
PEF0b21pY1N0cmluZwogICAgICAgICBtYXAuYWRkKGN1c3RvbVRhYmxlW2ldLmF0dHJpYnV0ZU5h
bWUubG9jYWxOYW1lKCkuaW1wbCgpLCBjdXN0b21UYWJsZVtpXS5ldmVudE5hbWUpOwogfQogCi1i
b29sIEhUTUxFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdAorTm9k
ZTo6RWRpdGFiaWxpdHkgSFRNTEVsZW1lbnQ6OmVkaXRhYmlsaXR5RnJvbUNvbnRlbnRFZGl0YWJs
ZUF0dHIoY29uc3QgTm9kZSYgbm9kZSkKIHsKLSAgICBjb25zdCBFbGVtZW50KiBjdXJyZW50RWxl
bWVudCA9IHRoaXM7CisgICAgY29uc3QgTm9kZSogY3VycmVudE5vZGUgPSAmbm9kZTsKICAgICBk
byB7Ci0gICAgICAgIGlmIChpczxIVE1MRWxlbWVudD4oKmN1cnJlbnRFbGVtZW50KSkgewotICAg
ICAgICAgICAgc3dpdGNoIChjb250ZW50RWRpdGFibGVUeXBlKGRvd25jYXN0PEhUTUxFbGVtZW50
PigqY3VycmVudEVsZW1lbnQpKSkgeworICAgICAgICBpZiAoaXM8SFRNTEVsZW1lbnQ+KCpjdXJy
ZW50Tm9kZSkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29udGVudEVkaXRhYmxlVHlwZShkb3du
Y2FzdDxIVE1MRWxlbWVudD4oKmN1cnJlbnROb2RlKSkpIHsKICAgICAgICAgICAgIGNhc2UgQ29u
dGVudEVkaXRhYmxlVHlwZTo6VHJ1ZToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9kZTo6RWRp
dGFiaWxpdHk6OkNhbkVkaXRSaWNobHk7CiAgICAgICAgICAgICBjYXNlIENvbnRlbnRFZGl0YWJs
ZVR5cGU6OlBsYWludGV4dE9ubHk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIE5vZGU6OkVkaXRhYmlsaXR5OjpDYW5FZGl0UGxhaW5UZXh0Owog
ICAgICAgICAgICAgY2FzZSBDb250ZW50RWRpdGFibGVUeXBlOjpGYWxzZToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vZGU6OkVkaXRhYmls
aXR5OjpSZWFkT25seTsKICAgICAgICAgICAgIGNhc2UgQ29udGVudEVkaXRhYmxlVHlwZTo6SW5o
ZXJpdDoKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQot
ICAgICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LT5wYXJlbnRFbGVtZW50KCk7
Ci0gICAgfSB3aGlsZSAoY3VycmVudEVsZW1lbnQpOworICAgICAgICBjdXJyZW50Tm9kZSA9IGN1
cnJlbnROb2RlLT5wYXJlbnROb2RlKCk7CisgICAgfSB3aGlsZSAoY3VycmVudE5vZGUpOwogCi0g
ICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQgPSBub2RlLmRvY3VtZW50KCk7CiAgICAgaWYgKGlzPEhUTUxE
b2N1bWVudD4oZG9jdW1lbnQpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTERvY3VtZW50
Pihkb2N1bWVudCkuaW5EZXNpZ25Nb2RlKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8SFRNTERvY3VtZW50Pihkb2N1bWVudCkuaW5EZXNpZ25Nb2RlKCkgPyBO
b2RlOjpFZGl0YWJpbGl0eTo6Q2FuRWRpdFJpY2hseSA6IE5vZGU6OkVkaXRhYmlsaXR5OjpSZWFk
T25seTsKKworICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6UmVhZE9ubHk7Cit9CisKK2Jv
b2wgSFRNTEVsZW1lbnQ6Om1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGVkaXRhYmlsaXR5RnJvbUNvbnRlbnRFZGl0YWJsZUF0dHIoKnRoaXMpICE9IEVk
aXRhYmlsaXR5OjpSZWFkT25seTsKIH0KIAogdm9pZCBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAyMGRkM2MxZGVkMjgxODcyMjhhNjY5YTgx
ZjAwYmI3YmUxZGI0MzgzLi41ODA1M2I3YTI3YmI3YWM4ZmIyZmMxNjdlNzYwNWQzYTlmNDZhZGYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoK
ICAgICBTdHJpbmcgY29udGVudEVkaXRhYmxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb250ZW50
RWRpdGFibGUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgc3RhdGljIEVk
aXRhYmlsaXR5IGVkaXRhYmlsaXR5RnJvbUNvbnRlbnRFZGl0YWJsZUF0dHIoY29uc3QgTm9kZSYp
OworCiAgICAgdmlydHVhbCBib29sIGRyYWdnYWJsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0RHJh
Z2dhYmxlKGJvb2wpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxl
bWVudC9keW5hbWljLWVkaXRhYmlsaXR5LWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9keW5hbWljLWVkaXRhYmlsaXR5LWNoYW5nZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjY2MzgzNzkwMzU0NjBiZTI3OWJlYjIwYzMyOWMyMmU0Zjk1NDA4
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2R5
bmFtaWMtZWRpdGFiaWxpdHktY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitU
aGlzIHRlc3QgdXBkYXRlcyBjb250ZW50ZWRpdGFibGUgY29udGVudCBhdHRyaWJ1dGUsIGNvbnRl
bnRFZGl0YWJsZSBJREwgcHJvcGVydHksIGFuZCAtd2Via2l0LXVzZXItbW9kaWZ5IENTUyBwcm9w
ZXJ0eSBkeW5hbWljYWxseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyBmYWxz
ZQorUEFTUyAkKCJkaXYiKS5jb250ZW50RWRpdGFibGUgPSAidHJ1ZSI7ICQoImRpdiIpLmlzQ29u
dGVudEVkaXRhYmxlIGlzIHRydWUKK1BBU1MgbmV3RG9jKCI8ZGl2IGNvbnRlbnRlZGl0YWJsZT10
cnVlPjwvZGl2PiIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyB0cnVlCitQQVNTICQo
ImRpdiIpLmNvbnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7ICQoImRpdiIpLmlzQ29udGVudEVkaXRh
YmxlIGlzIGZhbHNlCitQQVNTIG5ld0RvYygiPGRpdiBjb250ZW50ZWRpdGFibGU9cGxhaW50ZXh0
LW9ubHk+PC9kaXY+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUKK1BBU1Mg
JCgiZGl2IikuY29udGVudEVkaXRhYmxlID0gImZhbHNlIjsgJCgiZGl2IikuaXNDb250ZW50RWRp
dGFibGUgaXMgZmFsc2UKKworU3R5bGUgcnVsZXMKK1BBU1MgbmV3RG9jKCI8ZGl2PjwvZGl2Pjxz
dHlsZT4gZGl2IHsgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0ZTsgfSA8L3N0eWxlPiIp
OyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyB0cnVlCitQQVNTICQoInN0eWxlIikudGV4
dENvbnRlbnQgPSAiIjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1Mg
JCgic3R5bGUiKS50ZXh0Q29udGVudCA9ICIqIHsgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13
cml0ZS1wbGFpbnRleHQtb25seTsgfSI7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRy
dWUKK1BBU1MgbmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyBzdHlsZSA9IGVsZW1lbnQoInN0eWxlIiwg
IiogeyAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlIH0iKTsgJCgiZGl2IikuaXNDb250
ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1MgJCgiYm9keSIpLmFwcGVuZENoaWxkKHN0eWxlKTsg
JCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgdHJ1ZQorUEFTUyBuZXdEb2MoIjxkaXY+PC9k
aXY+PHN0eWxlPjwvc3R5bGU+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIGZhbHNl
CitQQVNTICQoInN0eWxlIikuc2hlZXQuaW5zZXJ0UnVsZSgiKiB7IC13ZWJraXQtdXNlci1tb2Rp
Znk6IHJlYWQtd3JpdGU7IH0iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgdHJ1ZQor
UEFTUyAkKCJzdHlsZSIpLnNoZWV0Lmluc2VydFJ1bGUoIiogeyAtd2Via2l0LXVzZXItbW9kaWZ5
OiByZWFkLW9ubHkgIWltcG9ydGFudDsgfSIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBp
cyBmYWxzZQorCitJbmxpbmUgc3R5bGVzCitQQVNTIG5ld0RvYygiPGRpdiBzdHlsZT0nLXdlYmtp
dC11c2VyLW1vZGlmeTpyZWFkLXdyaXRlJz48L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRp
dGFibGUgaXMgdHJ1ZQorUEFTUyAkKCJoZWFkIikuaW5uZXJIVE1MID0gIjxiYXNlIGhyZWY9J2h0
dHA6Ly9sb2NhbGhvc3QvJz4iOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyB0cnVlCitQ
QVNTICQoImRpdiIpLnN0eWxlLndlYmtpdFVzZXJNb2RpZnkgPSAiIjsgJCgiZGl2IikuaXNDb250
ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1MgbmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyAkKCJkaXYi
KS5zdHlsZS53ZWJraXRVc2VyTW9kaWZ5ID0gInJlYWQtd3JpdGUiOyAkKCJkaXYiKS5pc0NvbnRl
bnRFZGl0YWJsZSBpcyB0cnVlCitQQVNTICQoImRpdiIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAi
Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIGZhbHNlCitQQVNTIG5ld0RvYygiPGRp
dj48L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1MgJCgi
ZGl2Iikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICItd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdy
aXRlIik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUKK1BBU1MgJCgiZGl2Iiku
c2V0QXR0cmlidXRlKCJzdHlsZSIsICItd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLW9ubHkiKTsg
JCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MRWxlbWVudC9keW5hbWljLWVkaXRhYmlsaXR5LWNoYW5nZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvZHluYW1pYy1lZGl0YWJpbGl0eS1jaGFuZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xOGM2MjFlZWMwNzYzZjE2ODU1NWYzNGFhOWY3YTE3ZWE0OTA3YjA5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvZHlu
YW1pYy1lZGl0YWJpbGl0eS1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIG5ld0RvYyhtYXJr
dXApIHsKKyAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgIGlmcmFtZS5jb250
ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICc8aGVhZD48L2hlYWQ+PGJv
ZHk+PC9ib2R5Pic7CisgICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmlubmVySFRNTCA9
IG1hcmt1cDsKKyAgICB3aW5kb3cuZG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDsKKyAgICB3
aW5kb3cuJCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQucXVlcnlTZWxlY3Rvci5iaW5kKGlmcmFt
ZS5jb250ZW50RG9jdW1lbnQpOworfQorCitmdW5jdGlvbiBlbGVtZW50KG5hbWUsIG1hcmt1cCkg
eworICAgIHZhciBlbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgZWxlbWVu
dC50ZXh0Q29udGVudCA9IG1hcmt1cDsKKyAgICByZXR1cm4gZWxlbWVudDsKK30KKworZGVzY3Jp
cHRpb24oJ1RoaXMgdGVzdCB1cGRhdGVzIGNvbnRlbnRlZGl0YWJsZSBjb250ZW50IGF0dHJpYnV0
ZSwgY29udGVudEVkaXRhYmxlIElETCBwcm9wZXJ0eSwgYW5kIC13ZWJraXQtdXNlci1tb2RpZnkg
Q1NTIHByb3BlcnR5IGR5bmFtaWNhbGx5LicpOworCitzaG91bGRCZUZhbHNlKCduZXdEb2MoIjxk
aXY+PC9kaXY+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZVRydWUo
JyQoImRpdiIpLmNvbnRlbnRFZGl0YWJsZSA9ICJ0cnVlIjsgJCgiZGl2IikuaXNDb250ZW50RWRp
dGFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnbmV3RG9jKCI8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVl
PjwvZGl2PiIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworc2hvdWxkQmVGYWxzZSgn
JCgiZGl2IikuY29udGVudEVkaXRhYmxlID0gImZhbHNlIjsgJCgiZGl2IikuaXNDb250ZW50RWRp
dGFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnbmV3RG9jKCI8ZGl2IGNvbnRlbnRlZGl0YWJsZT1wbGFp
bnRleHQtb25seT48L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3Vs
ZEJlRmFsc2UoJyQoImRpdiIpLmNvbnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7ICQoImRpdiIpLmlz
Q29udGVudEVkaXRhYmxlJyk7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdTdHlsZSBydWxlcycpOwor
c2hvdWxkQmVUcnVlKCduZXdEb2MoIjxkaXY+PC9kaXY+PHN0eWxlPiBkaXYgeyAtd2Via2l0LXVz
ZXItbW9kaWZ5OiByZWFkLXdyaXRlOyB9IDwvc3R5bGU+Iik7ICQoImRpdiIpLmlzQ29udGVudEVk
aXRhYmxlJyk7CitzaG91bGRCZUZhbHNlKCckKCJzdHlsZSIpLnRleHRDb250ZW50ID0gIiI7ICQo
ImRpdiIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZVRydWUoJyQoInN0eWxlIikudGV4
dENvbnRlbnQgPSAiKiB7IC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGUtcGxhaW50ZXh0
LW9ubHk7IH0iOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworc2hvdWxkQmVGYWxzZSgn
bmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyBzdHlsZSA9IGVsZW1lbnQoInN0eWxlIiwgIiogeyAtd2Vi
a2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlIH0iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFi
bGUnKTsKK3Nob3VsZEJlVHJ1ZSgnJCgiYm9keSIpLmFwcGVuZENoaWxkKHN0eWxlKTsgJCgiZGl2
IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlRmFsc2UoJ25ld0RvYygiPGRpdj48L2Rp
dj48c3R5bGU+PC9zdHlsZT4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3Vs
ZEJlVHJ1ZSgnJCgic3R5bGUiKS5zaGVldC5pbnNlcnRSdWxlKCIqIHsgLXdlYmtpdC11c2VyLW1v
ZGlmeTogcmVhZC13cml0ZTsgfSIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworc2hv
dWxkQmVGYWxzZSgnJCgic3R5bGUiKS5zaGVldC5pbnNlcnRSdWxlKCIqIHsgLXdlYmtpdC11c2Vy
LW1vZGlmeTogcmVhZC1vbmx5ICFpbXBvcnRhbnQ7IH0iKTsgJCgiZGl2IikuaXNDb250ZW50RWRp
dGFibGUnKTsKKworZGVidWcoJycpOworZGVidWcoJ0lubGluZSBzdHlsZXMnKTsKK3Nob3VsZEJl
VHJ1ZSgnbmV3RG9jKCI8ZGl2IHN0eWxlPVwnLXdlYmtpdC11c2VyLW1vZGlmeTpyZWFkLXdyaXRl
XCc+PC9kaXY+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZVRydWUo
JyQoImhlYWQiKS5pbm5lckhUTUwgPSAiPGJhc2UgaHJlZj1cJ2h0dHA6Ly9sb2NhbGhvc3QvXCc+
IjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlRmFsc2UoJyQoImRpdiIp
LnN0eWxlLndlYmtpdFVzZXJNb2RpZnkgPSAiIjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUn
KTsKK3Nob3VsZEJlVHJ1ZSgnbmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyAkKCJkaXYiKS5zdHlsZS53
ZWJraXRVc2VyTW9kaWZ5ID0gInJlYWQtd3JpdGUiOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJs
ZScpOworc2hvdWxkQmVGYWxzZSgnJCgiZGl2Iikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICIiKTsg
JCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlRmFsc2UoJ25ld0RvYygiPGRp
dj48L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgn
JCgiZGl2Iikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICItd2Via2l0LXVzZXItbW9kaWZ5OiByZWFk
LXdyaXRlIik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZUZhbHNlKCck
KCJkaXYiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgIi13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQt
b25seSIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworCit2YXIgaWZyYW1lcyA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFtZScpOworZm9yICh2YXIgaSA9IDA7IGkgPCBp
ZnJhbWVzLmxlbmd0aDsgaSsrKQorICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1l
c1tpXSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRp
dGluZy9leGVjQ29tbWFuZC81MTQyMDEyLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTE0MjAxMi0xLWV4cGVjdGVkLnR4dAppbmRl
eCA0NWQwMjM4OGNjNzQwMTk2NGJjNDcyOWZkYWU0Yjk1YWI4YTliMGFhLi5mZmE1MmI5ZjVlYzIx
Zjc0M2ZhM2I5NDFjYWJkNjdhODcyM2VlZjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81MTQyMDEyLTEtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzUxNDIwMTItMS1l
eHBlY3RlZC50eHQKQEAgLTksNiArOSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICAgICAgICAgIHRleHQgcnVuIGF0ICg0NTcsMCkgd2lkdGggMzI0OiAiVGhlcmUgc2hvdWxkbid0
IGJlIGFueSBsaW5rcyAqaW5zaWRlIHRoZSBzZWxlY3Rpb24qIgogICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDE4KSB3aWR0aCA0MzogImJlbG93LiIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDUyKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAo
MCwwKSBzaXplIDc4NHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUg
Nzg0eDE4CiAgICAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDI0eDE4IFtj
b2xvcj0jMDAwMEVFXQogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMjR4MTgKQEAgLTE2LDcgKzE3LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4CiAgICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIzLDApIHNpemUgMTN4MTgKICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDEzOiAibG8iCi0gICAgICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICgwLDE4KSBzaXplIDc4NHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDE4KSBzaXplIDc4NHgxOAogICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0g
YXQgKDAsMCkgc2l6ZSAxNngxOAogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMTZ4MTgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0
aW5nL2V4ZWNDb21tYW5kL25zcmVzcG9uZGVyLW91dGRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvbnNyZXNwb25kZXItb3V0ZGVu
dC1leHBlY3RlZC50eHQKaW5kZXggNDNiM2QyMmVkNGM0MzE3ZmZhYzc0YmU2NjU0NGM1NjUwOGZi
ZWMyZi4uNDJiMDcxODAyMGEzZTg4MTYyNzY1NjRjNDU5OGVjYjAxZGM3NTUyOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvbnNyZXNwb25k
ZXItb3V0ZGVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvbnNyZXNwb25kZXItb3V0ZGVudC1leHBlY3RlZC50eHQKQEAgLTE0
LDYgKzE0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMjAxOiAiVGhpcyB0ZXN0cyB0aGUgb3V0ZGVudDogbWV0aG9kLiAi
CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDIwMCwwKSB3aWR0aCAyNTc6ICJZb3Ugc2hvdWxkIHNl
ZSBhbiB1bmRlbnRlZCAnZm9vJyBiZWxvdy4iCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwzNCkgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMjJ4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMjogImZvbyIKKyAg
ICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMngxOAorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjI6ICJmb28iCiBjYXJldDogcG9zaXRpb24gMCBvZiBj
aGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWF0LWVuZC0wMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcv
aW5zZXJ0LWF0LWVuZC0wMi1leHBlY3RlZC50eHQKaW5kZXggMDU2OTBmYzczY2ZiYTFkMDcxNjdi
MzM1ZTBlZTIxZTA5MjYwNzAzNi4uM2Y4ZTI5MmIyODUzODNjZjBhMWNhNjIwYWJiNjlhZmExNTc5
YTNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5zZXJ0
aW5nL2luc2VydC1hdC1lbmQtMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtYXQtZW5kLTAyLWV4cGVjdGVkLnR4dApA
QCAtMjksNCArMjksNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVu
ZGVyQmxvY2sgKGFub255bW91cykgYXQgKDIsNDYpIHNpemUgNzgweDE4CiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOHgxOAogICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggODogIngiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMHgwCiBjYXJldDogcG9zaXRpb24gMSBvZiBjaGlsZCA1IHsjdGV4dH0gb2YgY2hp
bGQgNSB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZWRpdGluZy9wYXN0ZWJvYXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVib2FyZC80OTg5Nzc0LWV4cGVjdGVkLnR4dAppbmRleCA5
NzQ4OGYzYjlhZTgwNTg5NzExNThhNjVjZGVjNDI2YWFiMGRkMzI3Li41MGVmMjdkZGNhNDJiYjBi
N2FlNWEzNGFjYWRlZWUwOGU4MTQxYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk4OTc3NC1leHBlY3RlZC50
eHQKQEAgLTEyLDQgKzEyLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAg
IHRleHQgcnVuIGF0ICg2MzQsMTAzKSB3aWR0aCAxMDI6ICJZb3Ugc2hvdWxkIHNlZSIKICAgICAg
ICAgdGV4dCBydW4gYXQgKDczNSwxMDMpIHdpZHRoIDU6ICIgIgogICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwxMjEpIHdpZHRoIDM2NDogInNldmVyYWwgcGljdHVyZXMgYWJvdmUgYWxsIGluIHRoZSBz
YW1lIGxpbmUvcGFyYWdyYXBoLiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiBjYXJl
dDogcG9zaXRpb24gMTY0IG9mIGNoaWxkIDQgeyN0ZXh0fSBvZiBib2R5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247597</attachid>
            <date>2015-02-28 00:44:44 -0800</date>
            <delta_ts>2015-03-01 11:52:42 -0800</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-129034-20150228004426.patch</filename>
            <type>text/plain</type>
            <size>36121</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJmZjY2MmJhZjE1YzY0
ODE4YzNjMTk4OGJiYTgwNTI3ZWYxMzc2My4uY2VhZmExNjQ2M2ZhNjQ0M2VmYThmMmJkYzZkOTc2
OTRlYmE4YjQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE1LTAyLTI4ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIGlzQ29udGVudEVkaXRhYmxl
IHNob3VsZG4ndCB0cmlnZ2VyIHN5bmNocm9ub3VzIHN0eWxlIHJlY2FsYyBpbiBtb3N0IGNhc2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwMzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBz
dHlsZSByZWNhbGMgaW5zaWRlIGlzQ29udGVudEVkaXRhYmxlIHdoZW4gdGhlIGRvY3VtZW50IGRv
ZXNuJ3QgY29udGFpbiAtd2Via2l0LXVzZXItbW9kaWZ5IG9yCisgICAgICAgIC13ZWJraXQtdXNl
ci1zZWxlY3Q6IGFsbC4gSW5zdGVhZCwgY29tcHV0ZSB0aGUgdmFsdWUgZnJvbSBjb250ZW50ZWRp
dGFibGUgYXR0cmlidXRlcyBpbiBhbmNlc3RvcnMuCisgICAgICAgIEhvd2V2ZXIsIHN0aWxsIGNv
bXB1dGUgdGhlIGVkaXRhYmlsaXR5IGZyb20gdGhlIHN0eWxlIHRyZWUgd2hlbiBpdCdzIHVwLXRv
LWRhdGUgaW4gb3JkZXIgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWRseSB3YWxraW5nIHVwIHRo
ZSBET00gdHJlZSBpbiBhIGhvdCBjb2RlIHBhdGggaW5zaWRlIGVkaXRpbmcuCisKKyAgICAgICAg
VGVzdDogZmFzdC9kb20vSFRNTEVsZW1lbnQvZHluYW1pYy1lZGl0YWJpbGl0eS1jaGFuZ2UuaHRt
bAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueS5pbjogTm8gbmVlZCB0byBwYXNzIGluICJ0
cnVlIiBhcyB3ZSBuZXZlciBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBmYWxzZS4KKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRLZXl3b3JkUHJv
cGVydHlBbmRWYWx1ZSk6IENhbGxzIHBhcnNlclNldFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkg
YXMgbmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VLZXl3b3JkVmFsdWUpOiBQYXNzZXMg
YXJvdW5kIFN0eWxlU2hlZXRDb250ZW50cyouCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VG
b250KTogRGl0dG8uCisKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRDb250ZW50czo6U3R5bGVTaGVldENvbnRlbnRzKTog
SW5pdGlhbGl6ZXMgYW5kIGNvcGllcyBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkuCisKKyAg
ICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVNoZWV0Q29udGVudHM6OnBhcnNlclNldFVzZXNSZW1Vbml0cyk6IFJlbW92ZWQgdGhlIGFyZ3Vt
ZW50IHNpbmNlIGl0IHdhcyBhbHdheXMgdHJ1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hl
ZXRDb250ZW50czo6cGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjp1c2VzU3R5bGVCYXNlZEVkaXRh
YmlsaXR5KTogQWRkZWQuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKTogQWRkZWQgYSBGSVhNRSBhcyB3ZWxsIGFz
IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB3ZSBkb24ndCBjYWxsCisgICAgICAgIHNldFVzZXNT
dHlsZUJhc2VkRWRpdGFiaWxpdHkuIFNpbmNlIE5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0eSB0cmln
Z2VycyBzdHlsZSByZWNhbGMgb25seSB3aGVuIHRoZSBmbGFnCisgICAgICAgIGlzIHNldCB0byB0
cnVlLCBpdCdzIHRvbyBsYXRlIHRvIHVwZGF0ZSB0aGUgZmxhZyBoZXJlLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQpOiBVc2VzIGEgbmV3bHkgZXh0cmFj
dGVkIG5lZWRzU3R5bGVSZWNhbGMuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRl
QmFzZVVSTCk6IFByZXNlcnZlcyBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkgYXMgd2VsbCBh
cyBtX3VzZXNSZW1Vbml0LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVzZXNTdHlsZUJh
c2VkRWRpdGFiaWxpdHkpOiBBZGRlZC4gUmV0dXJucyB0cnVlIHdoZW4gaW5saW5lIHN0eWxlIGRl
Y2xhcmF0aW9ucyBvcgorICAgICAgICBhbnkgYWN0aXZlIHN0eWxlc2hlZXQgdXNlcyAtd2Via2l0
LXVzZXItbW9kaWZ5IG9yIC13ZWJraXQtdXNlci1zZWxlY3Q6IGFsbC4gRmx1c2hpbmcgcGVuZGlu
ZyBzdHlsZXNoZWV0CisgICAgICAgIGNoYW5nZXMgaGVyZSBpcyBmaW5lIGJlY2F1c2UgdGhlIGFs
dGVybmF0aXZlIGlzIHRvIHRyaWdnZXIgYSBmdWxsIGJsb3duIHN0eWxlIHJlY2FsYy4KKworICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5lZWRz
U3R5bGVSZWNhbGMpOiBBZGRlZC4gRXh0cmFjdGVkIGZyb20gdXBkYXRlU3R5bGVJZk5lZWRlZC4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OkRvY3VtZW50U3R5bGVT
aGVldENvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3R5bGVTaGVldHNVc2VSZW1Vbml0
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uOjp1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cyk6IFVwZGF0ZXMgbV91c2VzU3R5bGVCYXNlZEVk
aXRhYmlsaXR5CisgICAgICAgIGFzIHdlbGwgYXMgbV91c2VzUmVtVW5pdC4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjp1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpz
ZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KTogQWRkZWQuCisKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlRWRpdGFiaWxpdHlGcm9tQ29tcHV0ZWRT
dHlsZSk6IEV4dHJhY3RlZCBmcm9tIGNvbXB1dGVFZGl0YWJpbGl0eS4KKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0eSk6IFdoZW4gdGhlIHN0eWxlIHJlY2FsYyBpcyBy
ZXF1ZXN0ZWQgYW5kIHRoZSByZW5kZXIgdHJlZSBpcyBkaXJ0eSwKKyAgICAgICAgY2hlY2sgaWYg
dGhlIGRvY3VtZW50IHVzZXMgYW55IENTUyBwcm9wZXJ0eSB0aGF0IGNhbiBhZmZlY3QgdGhlIGVk
aXRhYmlsaXR5IG9mIGVsZW1lbnRzLiBJZiBpdCBkb2Vzbid0LAorICAgICAgICBjb21wdXRlIHRo
ZSBlZGl0YWJpbGl0eSBmcm9tIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGVzIGluIHRoZSBhbmNo
b3JzIHZpYSBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MuCisgICAgICAgIENvbnRpbnVlIHRv
IHVzZSB0aGUgc3R5bGUtYmFzZWQgY29tcHV0YXRpb24gd2hlbiB0aGUgcmVuZGVyIHRyZWUgaXNu
J3QgZGlydHkgdG8gYXZvaWQgdGhlIHRyZWUgd2Fsay4KKworICAgICAgICAqIGh0bWwvSFRNTEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmVkaXRhYmlsaXR5RnJv
bUNvbnRlbnRFZGl0YWJsZUF0dHIpOiBFeHRyYWN0ZWQgZnJvbSBtYXRjaGVzUmVhZFdyaXRlUHNl
dWRvQ2xhc3MKKyAgICAgICAgdG8gYmUgY2FsbGVkIGluIE5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0
eS4gQWxzbyBtYWRlIGl0IHJldHVybiBFZGl0YWJpbGl0eSBpbnN0ZWFkIG9mIGJvb2xlYW4uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6bWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNz
KToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisKIDIwMTUtMDItMjcgIEh1bnNlb3Ag
SmVvbmcgIDxoczg1Lmplb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW0dUS10gRml4
IGJ1aWxkIGJyZWFrIGFmdGVyIHIxODA3OTAsMTgwNzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIu
eS5pbgppbmRleCBlZmRiMmJiODQ4ODMzYmJjNjQ2NGRmNWQwZjhhOGE5YzNmMjUwMmMwLi4xOTE4
ZmM5OTg1YjE0YjZkODkxN2I2ZDYyYzY2Nzk4ZGEwMmQwMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmFtbWFyLnkuaW4KQEAgLTE3MDAsNyArMTcwMCw3IEBAIHVuYXJ5X3Rlcm06CiAgICAgICAkJC5m
VmFsdWUgPSAkMTsKICAgICAgICQkLnVuaXQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JFTVM7
CiAgICAgICBpZiAocGFyc2VyLT5tX3N0eWxlU2hlZXQpCi0gICAgICAgICAgcGFyc2VyLT5tX3N0
eWxlU2hlZXQtPnBhcnNlclNldFVzZXNSZW1Vbml0cyh0cnVlKTsKKyAgICAgICAgICBwYXJzZXIt
Pm1fc3R5bGVTaGVldC0+cGFyc2VyU2V0VXNlc1JlbVVuaXRzKCk7CiAgIH0KICAgfCBDSFMgeyAk
JC5pZCA9IENTU1ZhbHVlSW52YWxpZDsgJCQuZlZhbHVlID0gJDE7ICQkLnVuaXQgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0NIUzsgfQogICB8IFZXIHsgJCQuaWQgPSBDU1NWYWx1ZUludmFsaWQ7
ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19WVzsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA4ZTQ2MzVlOGMyNjIzYjc4ZGM3YjIxYmYwZDc2
MjQ0ZjA0NjAzOWQ2Li4zNTgzZDIxMGFkYmRlNTZlYWVmNjlkZGJhYTlkMzJiMzA1ZGRjYjlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjQwLDcgKzY0MCw3IEBAIHN0YXRpYyBib29s
IHBhcnNlU2ltcGxlTGVuZ3RoVmFsdWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFyYXRp
b24sIENTU1Byb3BlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBp
c1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBp
bnQgdmFsdWVJRCwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgcGFyc2VyQ29udGV4dCkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlkLCBpbnQgdmFsdWVJRCwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgcGFyc2Vy
Q29udGV4dCwgU3R5bGVTaGVldENvbnRlbnRzKiBzdHlsZVNoZWV0Q29udGVudHMpCiB7CiAgICAg
aWYgKCF2YWx1ZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDE1LDEyICsxMDE1LDIw
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBpbnQKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VXNlck1vZGlmeTogLy8gcmVh
ZC1vbmx5IHwgcmVhZC13cml0ZQotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVJlYWRP
bmx5IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVSZWFkV3JpdGUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZVJlYWRXcml0ZVBsYWludGV4dE9ubHkpCisgICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVl
UmVhZE9ubHkgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJlYWRXcml0ZSB8fCB2YWx1ZUlEID09IENT
U1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seSkgeworICAgICAgICAgICAgaWYgKHN0eWxlU2hl
ZXRDb250ZW50cykKKyAgICAgICAgICAgICAgICBzdHlsZVNoZWV0Q29udGVudHMtPnBhcnNlclNl
dFVzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2Vy
U2VsZWN0OiAvLyBhdXRvIHwgbm9uZSB8IHRleHQgfCBhbGwKLSAgICAgICAgaWYgKHZhbHVlSUQg
PT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lIHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVUZXh0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBbGwpCisgICAgICAgIGlmICh2YWx1
ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlVGV4dCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAo
dmFsdWVJRCA9PSBDU1NWYWx1ZUFsbCkgeworICAgICAgICAgICAgaWYgKHN0eWxlU2hlZXRDb250
ZW50cykKKyAgICAgICAgICAgICAgICBzdHlsZVNoZWV0Q29udGVudHMtPnBhcnNlclNldFVzZXNT
dHlsZUJhc2VkRWRpdGFiaWxpdHkoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcml0aW5nTW9k
ZToKICAgICAgICAgaWYgKHZhbHVlSUQgPj0gQ1NTVmFsdWVIb3Jpem9udGFsVGIgJiYgdmFsdWVJ
RCA8PSBDU1NWYWx1ZUhvcml6b250YWxCdCkKQEAgLTExNzYsNyArMTE4NCw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkK
ICAgICB9CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlS2V5d29yZFZhbHVlKE11dGFibGVTdHlsZVBy
b3BlcnRpZXMqIGRlY2xhcmF0aW9uLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBib29sIGltcG9ydGFudCwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgcGFy
c2VyQ29udGV4dCkKK3N0YXRpYyBib29sIHBhcnNlS2V5d29yZFZhbHVlKE11dGFibGVTdHlsZVBy
b3BlcnRpZXMqIGRlY2xhcmF0aW9uLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBib29sIGltcG9ydGFudCwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgcGFy
c2VyQ29udGV4dCwgU3R5bGVTaGVldENvbnRlbnRzKiBzdHlsZVNoZWV0Q29udGVudHMpCiB7CiAg
ICAgQVNTRVJUKCFzdHJpbmcuaXNFbXB0eSgpKTsKIApAQCAtMTIwMyw3ICsxMjExLDcgQEAgc3Rh
dGljIGJvb2wgcGFyc2VLZXl3b3JkVmFsdWUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogZGVjbGFy
YXRpb24sIENTU1Byb3BlcnR5SUQKICAgICAgICAgdmFsdWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVh
dGVJbmhlcml0ZWRWYWx1ZSgpOwogICAgIGVsc2UgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVJbml0
aWFsKQogICAgICAgICB2YWx1ZSA9IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUV4cGxpY2l0SW5pdGlh
bFZhbHVlKCk7Ci0gICAgZWxzZSBpZiAoaXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKHBy
b3BlcnR5SWQsIHZhbHVlSUQsIHBhcnNlckNvbnRleHQpKQorICAgIGVsc2UgaWYgKGlzVmFsaWRL
ZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShwcm9wZXJ0eUlkLCB2YWx1ZUlELCBwYXJzZXJDb250ZXh0
LCBzdHlsZVNoZWV0Q29udGVudHMpKQogICAgICAgICB2YWx1ZSA9IGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZUlEKTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTEzMDgsNyArMTMxNiw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKE11
dGFibGVTdHlsZVByb3BlcnRpZXMqIGRlY2xhcmF0aW9uLCBDU1NQcm9wZXJ0eUlEIHByCiAgICAg
ICAgIGNvbnRleHQubW9kZSA9IGNzc1BhcnNlck1vZGU7CiAgICAgfQogCi0gICAgaWYgKHBhcnNl
S2V5d29yZFZhbHVlKGRlY2xhcmF0aW9uLCBwcm9wZXJ0eUlELCBzdHJpbmcsIGltcG9ydGFudCwg
Y29udGV4dCkpCisgICAgaWYgKHBhcnNlS2V5d29yZFZhbHVlKGRlY2xhcmF0aW9uLCBwcm9wZXJ0
eUlELCBzdHJpbmcsIGltcG9ydGFudCwgY29udGV4dCwgY29udGV4dFN0eWxlU2hlZXQpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAocGFyc2VUcmFuc2xhdGVUcmFuc2Zvcm1WYWx1ZShk
ZWNsYXJhdGlvbiwgcHJvcGVydHlJRCwgc3RyaW5nLCBpbXBvcnRhbnQpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTE4ODYsNyArMTg5NCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICB9CiAKICAgICBpZiAo
aXNLZXl3b3JkUHJvcGVydHlJRChwcm9wSWQpKSB7Ci0gICAgICAgIGlmICghaXNWYWxpZEtleXdv
cmRQcm9wZXJ0eUFuZFZhbHVlKHByb3BJZCwgaWQsIG1fY29udGV4dCkpCisgICAgICAgIGlmICgh
aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKHByb3BJZCwgaWQsIG1fY29udGV4dCwgbV9z
dHlsZVNoZWV0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKG1fdmFs
dWVMaXN0LT5uZXh0KCkgJiYgIWluU2hvcnRoYW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC02Mjk3LDcgKzYzMDUsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VGb250KGJvb2wg
aW1wb3J0YW50KQogICAgIGJvb2wgZm9udFdlaWdodFBhcnNlZCA9IGZhbHNlOwogICAgIENTU1Bh
cnNlclZhbHVlKiB2YWx1ZTsKICAgICB3aGlsZSAoKHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJl
bnQoKSkpIHsKLSAgICAgICAgaWYgKCFmb250U3R5bGVQYXJzZWQgJiYgaXNWYWxpZEtleXdvcmRQ
cm9wZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5Rm9udFN0eWxlLCB2YWx1ZS0+aWQsIG1fY29udGV4
dCkpIHsKKyAgICAgICAgaWYgKCFmb250U3R5bGVQYXJzZWQgJiYgaXNWYWxpZEtleXdvcmRQcm9w
ZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5Rm9udFN0eWxlLCB2YWx1ZS0+aWQsIG1fY29udGV4dCwg
bV9zdHlsZVNoZWV0KSkgewogICAgICAgICAgICAgYWRkUHJvcGVydHkoQ1NTUHJvcGVydHlGb250
U3R5bGUsIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS0+aWQpLCBp
bXBvcnRhbnQpOwogICAgICAgICAgICAgZm9udFN0eWxlUGFyc2VkID0gdHJ1ZTsKICAgICAgICAg
fSBlbHNlIGlmICghZm9udFZhcmlhbnRQYXJzZWQgJiYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZU5v
cm1hbCB8fCB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVTbWFsbENhcHMpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCmluZGV4IGVhZmJkOTIwZDY4MjkyZjgwMzM2OWE5
NzQ3YzQzMDE2ZmVhZmQ1OTIuLjc0MWNiNjRhYmI0ODNhNzIxZWRiMDE1Yzg2YTBjZjEwZGJmMjhh
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCkBAIC02NCw2
ICs2NCw3IEBAIFN0eWxlU2hlZXRDb250ZW50czo6U3R5bGVTaGVldENvbnRlbnRzKFN0eWxlUnVs
ZUltcG9ydCogb3duZXJSdWxlLCBjb25zdCBTdHJpbmcmCiAgICAgLCBtX2hhc1N5bnRhY3RpY2Fs
bHlWYWxpZENTU0hlYWRlcih0cnVlKQogICAgICwgbV9kaWRMb2FkRXJyb3JPY2N1cihmYWxzZSkK
ICAgICAsIG1fdXNlc1JlbVVuaXRzKGZhbHNlKQorICAgICwgbV91c2VzU3R5bGVCYXNlZEVkaXRh
YmlsaXR5KGZhbHNlKQogICAgICwgbV9pc011dGFibGUoZmFsc2UpCiAgICAgLCBtX2lzSW5NZW1v
cnlDYWNoZShmYWxzZSkKICAgICAsIG1fcGFyc2VyQ29udGV4dChjb250ZXh0KQpAQCAtODMsNiAr
ODQsNyBAQCBTdHlsZVNoZWV0Q29udGVudHM6OlN0eWxlU2hlZXRDb250ZW50cyhjb25zdCBTdHls
ZVNoZWV0Q29udGVudHMmIG8pCiAgICAgLCBtX2hhc1N5bnRhY3RpY2FsbHlWYWxpZENTU0hlYWRl
cihvLm1faGFzU3ludGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyKQogICAgICwgbV9kaWRMb2FkRXJy
b3JPY2N1cihmYWxzZSkKICAgICAsIG1fdXNlc1JlbVVuaXRzKG8ubV91c2VzUmVtVW5pdHMpCisg
ICAgLCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoby5tX3VzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHkpCiAgICAgLCBtX2lzTXV0YWJsZShmYWxzZSkKICAgICAsIG1faXNJbk1lbW9yeUNhY2hl
KGZhbHNlKQogICAgICwgbV9wYXJzZXJDb250ZXh0KG8ubV9wYXJzZXJDb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oCmluZGV4IDYyYTkzZDUwMzJjNzg5OTA5YzBl
MDEzMjMzYTA1ZjgyNTFjMTBmNzIuLmUxNGIwN2EzYjMzMjI2MzA4MTM3ZDM4NzY1OGE3ZTUxZDFi
MTkwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmgKQEAgLTkxLDcg
KzkxLDggQEAgcHVibGljOgogICAgIHZvaWQgcGFyc2VyQWRkTmFtZXNwYWNlKGNvbnN0IEF0b21p
Y1N0cmluZyYgcHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIHVyaSk7CiAgICAgdm9pZCBwYXJz
ZXJBcHBlbmRSdWxlKFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4pOwogICAgIHZvaWQgcGFyc2Vy
U2V0RW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUoY29uc3QgU3RyaW5nJiBlbmNvZGluZyk7IAotICAg
IHZvaWQgcGFyc2VyU2V0VXNlc1JlbVVuaXRzKGJvb2wgYikgeyBtX3VzZXNSZW1Vbml0cyA9IGI7
IH0KKyAgICB2b2lkIHBhcnNlclNldFVzZXNSZW1Vbml0cygpIHsgbV91c2VzUmVtVW5pdHMgPSB0
cnVlOyB9CisgICAgdm9pZCBwYXJzZXJTZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkgeyBt
X3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkgPSB0cnVlOyB9CiAKICAgICB2b2lkIGNsZWFyUnVs
ZXMoKTsKIApAQCAtMTE3LDYgKzExOCw3IEBAIHB1YmxpYzoKICAgICBTdHlsZVJ1bGVCYXNlKiBy
dWxlQXQodW5zaWduZWQgaW5kZXgpIGNvbnN0OwogCiAgICAgYm9vbCB1c2VzUmVtVW5pdHMoKSBj
b25zdCB7IHJldHVybiBtX3VzZXNSZW1Vbml0czsgfQorICAgIGJvb2wgdXNlc1N0eWxlQmFzZWRF
ZGl0YWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eTsg
fQogCiAgICAgdW5zaWduZWQgZXN0aW1hdGVkU2l6ZUluQnl0ZXMoKSBjb25zdDsKICAgICAKQEAg
LTE1OSw2ICsxNjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNTeW50YWN0aWNhbGx5VmFs
aWRDU1NIZWFkZXIgOiAxOwogICAgIGJvb2wgbV9kaWRMb2FkRXJyb3JPY2N1ciA6IDE7CiAgICAg
Ym9vbCBtX3VzZXNSZW1Vbml0cyA6IDE7CisgICAgYm9vbCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHkgOiAxOwogICAgIGJvb2wgbV9pc011dGFibGUgOiAxOwogICAgIGJvb2wgbV9pc0luTWVt
b3J5Q2FjaGUgOiAxOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjg4MWFjZjg2
ZTQ1YTgwMWZkMGJjZWRkYzFhNmJjYzA3Y2ZiZmMyYy4uYmFkZTI0OTU2Y2QzMzUzOGVmMTBjMjcw
NzUyZWI3MjUyNDczYmI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNzQ3LDggKzE3
NDcsMTEgQEAgdm9pZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2Up
CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjYWxjdWxhdGVTdHlsZSgqdGhpcyk7CiAKKyAgICAvLyBG
SVhNRTogV2UgbmV2ZXIgcmVzZXQgdGhpcyBmbGFncy4KICAgICBpZiAobV9lbGVtZW50U2hlZXQg
JiYgbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRzKCkudXNlc1JlbVVuaXRzKCkpCiAgICAgICAgIG1f
c3R5bGVTaGVldENvbGxlY3Rpb24uc2V0VXNlc1JlbVVuaXQodHJ1ZSk7CisgICAgLy8gV2UgZG9u
J3QgY2FsbCBzZXRVc2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5IGhlcmUgYmVjYXVzZSB0aGUgd2hv
bGUgcG9pbnQgb2YgdGhlIGZsYWcgaXMgdG8gYXZvaWQgc3R5bGUgcmVjYWxjLgorICAgIC8vIGku
ZS4gdXBkYXRpbmcgdGhlIGZsYWcgaGVyZSB3b3VsZCBiZSB0b28gbGF0ZS4KIAogICAgIG1faW5T
dHlsZVJlY2FsYyA9IHRydWU7CiAgICAgewpAQCAtMTgwOCw3ICsxODExLDcgQEAgdm9pZCBEb2N1
bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpCiAgICAgaWYgKG1fb3B0aW1pemVkU3R5bGVTaGVl
dFVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHN0eWxlUmVzb2x2ZXJDaGFuZ2VkKFJl
Y2FsY1N0eWxlSWZOZWVkZWQpOwogCi0gICAgaWYgKCghbV9wZW5kaW5nU3R5bGVSZWNhbGNTaG91
bGRGb3JjZSAmJiAhY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpIHx8IGluUGFnZUNhY2hlKCkpCisg
ICAgaWYgKCFuZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHJlY2Fs
Y1N0eWxlKFN0eWxlOjpOb0NoYW5nZSk7CkBAIC0yNjgzLDkgKzI2ODYsMTMgQEAgdm9pZCBEb2N1
bWVudDo6dXBkYXRlQmFzZVVSTCgpCiAgICAgICAgIC8vIEVsZW1lbnQgc2hlZXQgaXMgc2lsbHku
IEl0IG5ldmVyIGNvbnRhaW5zIGFueXRoaW5nLgogICAgICAgICBBU1NFUlQoIW1fZWxlbWVudFNo
ZWV0LT5jb250ZW50cygpLnJ1bGVDb3VudCgpKTsKICAgICAgICAgYm9vbCB1c2VzUmVtVW5pdHMg
PSBtX2VsZW1lbnRTaGVldC0+Y29udGVudHMoKS51c2VzUmVtVW5pdHMoKTsKKyAgICAgICAgYm9v
bCB1c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRzKCku
dXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgICAgICBtX2VsZW1lbnRTaGVldCA9IENT
U1N0eWxlU2hlZXQ6OmNyZWF0ZUlubGluZSgqdGhpcywgbV9iYXNlVVJMKTsKICAgICAgICAgLy8g
RklYTUU6IFNvIHdlIGFyZSBub3QgcmVhbGx5IHRoZSBwYXJzZXIuIFRoZSByaWdodCBmaXggaXMg
dG8gZWxpbWluYXRlIHRoZSBlbGVtZW50IHNoZWV0IGNvbXBsZXRlbHkuCi0gICAgICAgIG1fZWxl
bWVudFNoZWV0LT5jb250ZW50cygpLnBhcnNlclNldFVzZXNSZW1Vbml0cyh1c2VzUmVtVW5pdHMp
OworICAgICAgICBpZiAodXNlc1JlbVVuaXRzKQorICAgICAgICAgICAgbV9lbGVtZW50U2hlZXQt
PmNvbnRlbnRzKCkucGFyc2VyU2V0VXNlc1JlbVVuaXRzKCk7CisgICAgICAgIGlmICh1c2VzU3R5
bGVCYXNlZEVkaXRhYmlsaXR5KQorICAgICAgICAgICAgbV9lbGVtZW50U2hlZXQtPmNvbnRlbnRz
KCkucGFyc2VyU2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpOwogICAgIH0KIAogICAgIGlm
ICghZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihvbGRCYXNlVVJMLCBtX2Jhc2VVUkwp
KSB7CkBAIC0yODUyLDYgKzI4NTksMTkgQEAgQ1NTU3R5bGVTaGVldCYgRG9jdW1lbnQ6OmVsZW1l
bnRTaGVldCgpCiAgICAgcmV0dXJuICptX2VsZW1lbnRTaGVldDsKIH0KIAorYm9vbCBEb2N1bWVu
dDo6dXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpIGNvbnN0Cit7CisgICAgaWYgKG1fZWxlbWVu
dFNoZWV0ICYmIG1fZWxlbWVudFNoZWV0LT5jb250ZW50cygpLnVzZXNTdHlsZUJhc2VkRWRpdGFi
aWxpdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBBU1NFUlQoIW1fcmVuZGVyVmll
dyB8fCAhbV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS5pc1BhaW50aW5nKCkpOworICAgIEFTU0VS
VCghbV9pblN0eWxlUmVjYWxjKTsKKworICAgIGF1dG8mIGNvbGxlY3Rpb24gPSBkb2N1bWVudCgp
LnN0eWxlU2hlZXRDb2xsZWN0aW9uKCk7CisgICAgY29sbGVjdGlvbi5mbHVzaFBlbmRpbmdVcGRh
dGVzKCk7CisgICAgcmV0dXJuIGNvbGxlY3Rpb24udXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgp
OworfQorCiB2b2lkIERvY3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KGNvbnN0IFN0cmluZyYgZXF1
aXYsIGNvbnN0IFN0cmluZyYgY29udGVudCkKIHsKICAgICBBU1NFUlQoIWVxdWl2LmlzTnVsbCgp
ICYmICFjb250ZW50LmlzTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzZmYjFiNzlj
Y2ViYzQ2ODUxM2FjNTZlYjBiNDM4MGZmOWYzZDBlMy4uMTU0NDRhNmUxOWViMjdjMWE2YTIzN2Rh
Yjk4MjJjZTdkN2M2ODliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTYwMSw2ICs2MDEsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UgPSBTdHlsZTo6
Tm9DaGFuZ2UpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlU3R5bGVJZk5lZWRlZCgp
OworICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0IHsgcmV0dXJuICFpblBhZ2VDYWNo
ZSgpICYmIChtX3BlbmRpbmdTdHlsZVJlY2FsY1Nob3VsZEZvcmNlIHx8IGNoaWxkTmVlZHNTdHls
ZVJlY2FsYygpIHx8IG1fb3B0aW1pemVkU3R5bGVTaGVldFVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkp
OyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91dCgpOwogICAgIApAQCAt
NjkzLDYgKzY5NCw3IEBAIHB1YmxpYzoKICAgICBGcmFtZSogZmluZFVuc2FmZVBhcmVudFNjcm9s
bFByb3BhZ2F0aW9uQm91bmRhcnkoKTsKIAogICAgIENTU1N0eWxlU2hlZXQmIGVsZW1lbnRTaGVl
dCgpOworICAgIGJvb2wgdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpIGNvbnN0OwogICAgIAog
ICAgIHZpcnR1YWwgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKTsKICAgICBEb2N1
bWVudFBhcnNlciogcGFyc2VyKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZXIuZ2V0KCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNw
cAppbmRleCA4YWUzMWU5NjMxNGUyYjk4OTc4M2M3ZmZiYTY1ZmY5OTkyMzQzZWRiLi4wZmNiODFi
NmU5OTAxMDFmYzBmZGZmZDUzN2Y0ODhmYmM4MDVjZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC02MCw2ICs2MCw3
IEBAIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OkRvY3VtZW50U3R5bGVTaGVldENvbGxl
Y3Rpb24oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICwgbV91c2VzRmlyc3RMaW5lUnVsZXMoZmFs
c2UpCiAgICAgLCBtX3VzZXNGaXJzdExldHRlclJ1bGVzKGZhbHNlKQogICAgICwgbV91c2VzUmVt
VW5pdHMoZmFsc2UpCisgICAgLCBtX3VzZXNTdHlsZUJhc2VkRWRpdGFiaWxpdHkoZmFsc2UpCiB7
CiB9CiAKQEAgLTM5MCwxNSArMzkxLDYgQEAgdm9pZCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uOjphbmFseXplU3R5bGVTaGVldENoYW5nZShVcGRhdGVGbGFnIHVwZGF0ZUZsYWcKICAgICBy
ZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyA9IGZhbHNlOwogfQogCi1zdGF0aWMgYm9vbCBzdHlsZVNo
ZWV0c1VzZVJlbVVuaXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiBzaGVl
dHMpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNoZWV0cy5zaXplKCk7ICsraSkg
ewotICAgICAgICBpZiAoc2hlZXRzW2ldLT5jb250ZW50cygpLnVzZXNSZW1Vbml0cygpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogc3Rh
dGljIHZvaWQgZmlsdGVyRW5hYmxlZE5vbmVtcHR5Q1NTU3R5bGVTaGVldHMoVmVjdG9yPFJlZlB0
cjxDU1NTdHlsZVNoZWV0Pj4mIHJlc3VsdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0
Pj4mIHNoZWV0cykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2hlZXRzLnNpemUo
KTsgKytpKSB7CkBAIC00NTcsNyArNDQ5LDEyIEBAIGJvb2wgRG9jdW1lbnRTdHlsZVNoZWV0Q29s
bGVjdGlvbjo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlRmxhZyB1cGRhdGVGbGFnCiAg
ICAgbV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cy5zd2FwKGFjdGl2ZUNTU1N0eWxlU2hlZXRzKTsK
ICAgICBtX3N0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3Quc3dhcChhY3RpdmVTdHlsZVNoZWV0
cyk7CiAKLSAgICBtX3VzZXNSZW1Vbml0cyA9IHN0eWxlU2hlZXRzVXNlUmVtVW5pdHMobV9hY3Rp
dmVBdXRob3JTdHlsZVNoZWV0cyk7CisgICAgZm9yIChjb25zdCBhdXRvJiBzaGVldCA6IG1fYWN0
aXZlQXV0aG9yU3R5bGVTaGVldHMpIHsKKyAgICAgICAgaWYgKHNoZWV0LT5jb250ZW50cygpLnVz
ZXNSZW1Vbml0cygpKQorICAgICAgICAgICAgbV91c2VzUmVtVW5pdHMgPSB0cnVlOworICAgICAg
ICBpZiAoc2hlZXQtPmNvbnRlbnRzKCkudXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eSgpKQorICAg
ICAgICAgICAgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gdHJ1ZTsKKyAgICB9CiAgICAg
bV9wZW5kaW5nVXBkYXRlVHlwZSA9IE5vVXBkYXRlOwogCiAgICAgcmV0dXJuIHJlcXVpcmVzRnVs
bFN0eWxlUmVjYWxjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5
bGVTaGVldENvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hl
ZXRDb2xsZWN0aW9uLmgKaW5kZXggZWVkZTdiZjQyNTE0ZGJlZDlhNDIwYTRkZjg2ZDYzNjUyMjQ1
YjYyOC4uNjBmYjc4M2E3NzU1MzA3NGY1MWYxZmM1ZmI5OTEzN2Q4MWUwMDFhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oCkBAIC0x
MDUsNiArMTA1LDggQEAgcHVibGljOgogICAgIGJvb2wgdXNlc0ZpcnN0TGV0dGVyUnVsZXMoKSBj
b25zdCB7IHJldHVybiBtX3VzZXNGaXJzdExldHRlclJ1bGVzOyB9CiAgICAgYm9vbCB1c2VzUmVt
VW5pdHMoKSBjb25zdCB7IHJldHVybiBtX3VzZXNSZW1Vbml0czsgfQogICAgIHZvaWQgc2V0VXNl
c1JlbVVuaXQoYm9vbCBiKSB7IG1fdXNlc1JlbVVuaXRzID0gYjsgfQorICAgIGJvb2wgdXNlc1N0
eWxlQmFzZWRFZGl0YWJpbGl0eSgpIHsgcmV0dXJuIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0
eTsgfQorICAgIHZvaWQgc2V0VXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eShib29sIGIpIHsgbV91
c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gYjsgfQogCiAgICAgdm9pZCBjb21iaW5lQ1NTRmVh
dHVyZUZsYWdzKCk7CiAgICAgdm9pZCByZXNldENTU0ZlYXR1cmVGbGFncygpOwpAQCAtMTU3LDYg
KzE1OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZXNGaXJzdExpbmVSdWxlczsKICAgICBi
b29sIG1fdXNlc0ZpcnN0TGV0dGVyUnVsZXM7CiAgICAgYm9vbCBtX3VzZXNSZW1Vbml0czsKKyAg
ICBib29sIG1fdXNlc1N0eWxlQmFzZWRFZGl0YWJpbGl0eTsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAppbmRleCBmNDQ4NzY0NzRkNDNiMjg4NTllYmFkZDA1NDI4ZGZhMmUyOWQyODk5Li4zNTcyNDg3
NWI3ZDE4MjBkOGY2YTZmYzFlMzA4NGE5YTI1NzgyZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC03
MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdG9yYWdlRXZl
bnQuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldENv
bnRlbnRzLmgiCiAjaW5jbHVkZSAiVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oIgog
I2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRvdWNoRXZlbnQuaCIKQEAgLTU1Mywy
NCArNTU0LDEzIEBAIHZvaWQgTm9kZTo6aW5zcGVjdCgpCiAgICAgICAgIGRvY3VtZW50KCkucGFn
ZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuaW5zcGVjdCh0aGlzKTsKIH0KIAotTm9kZTo6RWRp
dGFiaWxpdHkgTm9kZTo6Y29tcHV0ZUVkaXRhYmlsaXR5KFVzZXJTZWxlY3RBbGxUcmVhdG1lbnQg
dHJlYXRtZW50LCBTaG91bGRVcGRhdGVTdHlsZSBzaG91bGRVcGRhdGVTdHlsZSkgY29uc3QKK3N0
YXRpYyBOb2RlOjpFZGl0YWJpbGl0eSBjb21wdXRlRWRpdGFiaWxpdHlGcm9tQ29tcHV0ZWRTdHls
ZShjb25zdCBOb2RlJiBzdGFydE5vZGUsIE5vZGU6OlVzZXJTZWxlY3RBbGxUcmVhdG1lbnQgdHJl
YXRtZW50KQogewotICAgIGlmIChzaG91bGRVcGRhdGVTdHlsZSA9PSBTaG91bGRVcGRhdGVTdHls
ZTo6VXBkYXRlKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLQot
ICAgIGlmICghZG9jdW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkpCi0gICAgICAgIHJldHVy
biBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7Ci0gICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSAmJiBk
b2N1bWVudCgpLmZyYW1lKCktPnBhZ2UoKSAmJiBkb2N1bWVudCgpLmZyYW1lKCktPnBhZ2UoKS0+
aXNFZGl0YWJsZSgpICYmICFjb250YWluaW5nU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4g
RWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNobHk7Ci0KLSAgICBpZiAoaXNQc2V1ZG9FbGVtZW50KCkp
Ci0gICAgICAgIHJldHVybiBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7Ci0KICAgICAvLyBJZGVhbGx5
IHdlJ2QgY2FsbCBBU1NFUlQoIW5lZWRzU3R5bGVSZWNhbGMoKSkgaGVyZSwgYnV0CiAgICAgLy8g
Q29udGFpbmVyTm9kZTo6c2V0Rm9jdXMoKSBjYWxscyBzZXROZWVkc1N0eWxlUmVjYWxjKCksIHNv
IHRoZSBhc3NlcnRpb24KICAgICAvLyB3b3VsZCBmaXJlIGluIHRoZSBtaWRkbGUgb2YgRG9jdW1l
bnQ6OnNldEZvY3VzZWRFbGVtZW50KCkuCiAKLSAgICBmb3IgKGNvbnN0IE5vZGUqIG5vZGUgPSB0
aGlzOyBub2RlOyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7CisgICAgZm9yIChjb25zdCBO
b2RlKiBub2RlID0gJnN0YXJ0Tm9kZTsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkg
ewogICAgICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBub2RlLT5pc0RvY3VtZW50Tm9kZSgpID8g
bm9kZS0+cmVuZGVyU3R5bGUoKSA6IGNvbnN0X2Nhc3Q8Tm9kZSo+KG5vZGUpLT5jb21wdXRlZFN0
eWxlKCk7CiAgICAgICAgIGlmICghc3R5bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTU3
OSwyMyArNTY5LDM5IEBAIE5vZGU6OkVkaXRhYmlsaXR5IE5vZGU6OmNvbXB1dGVFZGl0YWJpbGl0
eShVc2VyU2VsZWN0QWxsVHJlYXRtZW50IHRyZWF0bWVudCwgU2hvCiAjaWYgRU5BQkxFKFVTRVJT
RUxFQ1RfQUxMKQogICAgICAgICAvLyBFbGVtZW50cyB3aXRoIHVzZXItc2VsZWN0OiBhbGwgc3R5
bGUgYXJlIGNvbnNpZGVyZWQgYXRvbWljCiAgICAgICAgIC8vIHRoZXJlZm9yZSBub24gZWRpdGFi
bGUuCi0gICAgICAgIGlmICh0cmVhdG1lbnQgPT0gVXNlclNlbGVjdEFsbElzQWx3YXlzTm9uRWRp
dGFibGUgJiYgc3R5bGUtPnVzZXJTZWxlY3QoKSA9PSBTRUxFQ1RfQUxMKQotICAgICAgICAgICAg
cmV0dXJuIEVkaXRhYmlsaXR5OjpSZWFkT25seTsKKyAgICAgICAgaWYgKHRyZWF0bWVudCA9PSBO
b2RlOjpVc2VyU2VsZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSAmJiBzdHlsZS0+dXNlclNlbGVj
dCgpID09IFNFTEVDVF9BTEwpCisgICAgICAgICAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6
OlJlYWRPbmx5OwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKHRyZWF0bWVudCk7CiAjZW5k
aWYKICAgICAgICAgc3dpdGNoIChzdHlsZS0+dXNlck1vZGlmeSgpKSB7CiAgICAgICAgIGNhc2Ug
UkVBRF9PTkxZOgotICAgICAgICAgICAgcmV0dXJuIEVkaXRhYmlsaXR5OjpSZWFkT25seTsKKyAg
ICAgICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiAgICAgICAgIGNh
c2UgUkVBRF9XUklURToKLSAgICAgICAgICAgIHJldHVybiBFZGl0YWJpbGl0eTo6Q2FuRWRpdFJp
Y2hseTsKKyAgICAgICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6Q2FuRWRpdFJpY2hs
eTsKICAgICAgICAgY2FzZSBSRUFEX1dSSVRFX1BMQUlOVEVYVF9PTkxZOgotICAgICAgICAgICAg
cmV0dXJuIEVkaXRhYmlsaXR5OjpDYW5FZGl0UGxhaW5UZXh0OworICAgICAgICAgICAgcmV0dXJu
IE5vZGU6OkVkaXRhYmlsaXR5OjpDYW5FZGl0UGxhaW5UZXh0OwogICAgICAgICB9CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6
OlJlYWRPbmx5OworICAgIH0KKyAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6OlJlYWRPbmx5
OworfQorCitOb2RlOjpFZGl0YWJpbGl0eSBOb2RlOjpjb21wdXRlRWRpdGFiaWxpdHkoVXNlclNl
bGVjdEFsbFRyZWF0bWVudCB0cmVhdG1lbnQsIFNob3VsZFVwZGF0ZVN0eWxlIHNob3VsZFVwZGF0
ZVN0eWxlKSBjb25zdAoreworICAgIGlmICghZG9jdW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVl
KCkgfHwgaXNQc2V1ZG9FbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBFZGl0YWJpbGl0eTo6UmVh
ZE9ubHk7CisKKyAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpICYmIGRvY3VtZW50KCkuZnJhbWUo
KS0+cGFnZSgpICYmIGRvY3VtZW50KCkuZnJhbWUoKS0+cGFnZSgpLT5pc0VkaXRhYmxlKCkgJiYg
IWNvbnRhaW5pbmdTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBFZGl0YWJpbGl0eTo6Q2Fu
RWRpdFJpY2hseTsKKworICAgIGlmIChzaG91bGRVcGRhdGVTdHlsZSA9PSBTaG91bGRVcGRhdGVT
dHlsZTo6VXBkYXRlICYmIGRvY3VtZW50KCkubmVlZHNTdHlsZVJlY2FsYygpKSB7CisgICAgICAg
IGlmICghZG9jdW1lbnQoKS51c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5KCkpCisgICAgICAgICAg
ICByZXR1cm4gSFRNTEVsZW1lbnQ6OmVkaXRhYmlsaXR5RnJvbUNvbnRlbnRFZGl0YWJsZUF0dHIo
KnRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICB9
Ci0gICAgcmV0dXJuIEVkaXRhYmlsaXR5OjpSZWFkT25seTsKKyAgICByZXR1cm4gY29tcHV0ZUVk
aXRhYmlsaXR5RnJvbUNvbXB1dGVkU3R5bGUoKnRoaXMsIHRyZWF0bWVudCk7CiB9CiAKIFJlbmRl
ckJveCogTm9kZTo6cmVuZGVyQm94KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAKaW5kZXggOGVmNWZkZDlhNTk3YTE5NWYzZTQzOTM4ZGUyMzVlZjlkYzRiNTk2My4uMzhmNDg5
YzM1YThmODI4OWU2ZDQ4YjYxNjVkZjVkZWEwNTk5OGMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKQEAgLTM2NywyOCArMzY3LDM1IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBvcHVs
YXRlRXZlbnROYW1lRm9yQXR0cmlidXRlTG9jYWxOYW1lTWFwKEhhc2hNYXA8QXRvbWljU3RyaW5n
CiAgICAgICAgIG1hcC5hZGQoY3VzdG9tVGFibGVbaV0uYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUo
KS5pbXBsKCksIGN1c3RvbVRhYmxlW2ldLmV2ZW50TmFtZSk7CiB9CiAKLWJvb2wgSFRNTEVsZW1l
bnQ6Om1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0CitOb2RlOjpFZGl0YWJpbGl0
eSBIVE1MRWxlbWVudDo6ZWRpdGFiaWxpdHlGcm9tQ29udGVudEVkaXRhYmxlQXR0cihjb25zdCBO
b2RlJiBub2RlKQogewotICAgIGNvbnN0IEVsZW1lbnQqIGN1cnJlbnRFbGVtZW50ID0gdGhpczsK
KyAgICBjb25zdCBOb2RlKiBjdXJyZW50Tm9kZSA9ICZub2RlOwogICAgIGRvIHsKLSAgICAgICAg
aWYgKGlzPEhUTUxFbGVtZW50PigqY3VycmVudEVsZW1lbnQpKSB7Ci0gICAgICAgICAgICBzd2l0
Y2ggKGNvbnRlbnRFZGl0YWJsZVR5cGUoZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCpjdXJyZW50RWxl
bWVudCkpKSB7CisgICAgICAgIGlmIChpczxIVE1MRWxlbWVudD4oKmN1cnJlbnROb2RlKSkgewor
ICAgICAgICAgICAgc3dpdGNoIChjb250ZW50RWRpdGFibGVUeXBlKGRvd25jYXN0PEhUTUxFbGVt
ZW50PigqY3VycmVudE5vZGUpKSkgewogICAgICAgICAgICAgY2FzZSBDb250ZW50RWRpdGFibGVU
eXBlOjpUcnVlOgorICAgICAgICAgICAgICAgIHJldHVybiBOb2RlOjpFZGl0YWJpbGl0eTo6Q2Fu
RWRpdFJpY2hseTsKICAgICAgICAgICAgIGNhc2UgQ29udGVudEVkaXRhYmxlVHlwZTo6UGxhaW50
ZXh0T25seToKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6OkNhbkVkaXRQbGFpblRleHQ7CiAgICAgICAgICAgICBj
YXNlIENvbnRlbnRFZGl0YWJsZVR5cGU6OkZhbHNlOgotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9kZTo6RWRpdGFiaWxpdHk6OlJlYWRPbmx5
OwogICAgICAgICAgICAgY2FzZSBDb250ZW50RWRpdGFibGVUeXBlOjpJbmhlcml0OgogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGN1cnJl
bnRFbGVtZW50ID0gY3VycmVudEVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsKLSAgICB9IHdoaWxl
IChjdXJyZW50RWxlbWVudCk7CisgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnBh
cmVudE5vZGUoKTsKKyAgICB9IHdoaWxlIChjdXJyZW50Tm9kZSk7CiAKLSAgICBjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGNvbnN0IERvY3VtZW50JiBk
b2N1bWVudCA9IG5vZGUuZG9jdW1lbnQoKTsKICAgICBpZiAoaXM8SFRNTERvY3VtZW50Pihkb2N1
bWVudCkpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KGRvY3VtZW50KS5p
bkRlc2lnbk1vZGUoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBkb3duY2Fz
dDxIVE1MRG9jdW1lbnQ+KGRvY3VtZW50KS5pbkRlc2lnbk1vZGUoKSA/IE5vZGU6OkVkaXRhYmls
aXR5OjpDYW5FZGl0UmljaGx5IDogTm9kZTo6RWRpdGFiaWxpdHk6OlJlYWRPbmx5OworCisgICAg
cmV0dXJuIE5vZGU6OkVkaXRhYmlsaXR5OjpSZWFkT25seTsKK30KKworYm9vbCBIVE1MRWxlbWVu
dDo6bWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZWRp
dGFiaWxpdHlGcm9tQ29udGVudEVkaXRhYmxlQXR0cigqdGhpcykgIT0gRWRpdGFiaWxpdHk6OlJl
YWRPbmx5OwogfQogCiB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5oCmluZGV4IDIwZGQzYzFkZWQyODE4NzIyOGE2NjlhODFmMDBiYjdiZTFkYjQz
ODMuLjU4MDUzYjdhMjdiYjdhYzhmYjJmYzE2N2U3NjA1ZDNhOWY0NmFkZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogICAgIFN0cmluZyBj
b250ZW50RWRpdGFibGUoKSBjb25zdDsKICAgICB2b2lkIHNldENvbnRlbnRFZGl0YWJsZShjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICBzdGF0aWMgRWRpdGFiaWxpdHkgZWRp
dGFiaWxpdHlGcm9tQ29udGVudEVkaXRhYmxlQXR0cihjb25zdCBOb2RlJik7CisKICAgICB2aXJ0
dWFsIGJvb2wgZHJhZ2dhYmxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREcmFnZ2FibGUoYm9vbCk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA0MTBhODUyMjFlMzI1YmFiNjU0NGVhZDRhZDIwZjE0MDM2NGY2OTQ4Li40MmMw
ZGI0MDAxZDZmMmIxODA1MjU4NWI0YzcxNzAwMDU2YTBhOTY1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTUtMDItMjggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgaXNDb250ZW50RWRpdGFibGUgc2hvdWxkbid0IHRyaWdnZXIgc3luY2hyb25vdXMgc3R5bGUg
cmVjYWxjIGluIG1vc3QgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTAzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGEgcmVncmVzc2lvbiB0ZXN0IHRvIHVwZGF0ZSB0aGUgZWRpdGFi
aWxpdHkgb2YgZWxlbWVudHMgZHluYW1pY2FsbHkuIEFsc28gcmViYXNlbGluZWQKKyAgICAgICAg
dGVzdHMgcGVyIHN0eWxlIHJlY2FsYyB0aW1pbmcgY2hhbmdlcy4KKworICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxFbGVtZW50L2R5bmFtaWMtZWRpdGFiaWxpdHktY2hhbmdlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvZHluYW1pYy1lZGl0YWJpbGl0
eS1jaGFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvNTE0MjAxMi0xLWV4cGVjdGVkLnR4dDogYW5vbnltb3VzIHJlbmRlciBibG9jayBk
aWZmZXJlbmNlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9u
c3Jlc3BvbmRlci1vdXRkZW50LWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1hdC1lbmQtMDItZXhwZWN0ZWQudHh0OiBF
bXB0eSByZW5kZXIgdGV4dCBkaWZmZXJlbmNlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9wYXN0ZWJvYXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0OiBEaXR0by4KKwogMjAxNS0wMi0y
NyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN1YnBpeGVsLWxh
eW91dDogd2lkdGg6IG1heC1jb250ZW50OyBwcm9wZXJ0eSBtaWdodCBjYXVzZSB1bm5lY2Vzc2Fy
eSBzY3JvbGxiYXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVu
dC9keW5hbWljLWVkaXRhYmlsaXR5LWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MRWxlbWVudC9keW5hbWljLWVkaXRhYmlsaXR5LWNoYW5nZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjY2MzgzNzkwMzU0NjBiZTI3OWJlYjIwYzMyOWMyMmU0Zjk1NDA4Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2R5bmFt
aWMtZWRpdGFiaWxpdHktY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUaGlz
IHRlc3QgdXBkYXRlcyBjb250ZW50ZWRpdGFibGUgY29udGVudCBhdHRyaWJ1dGUsIGNvbnRlbnRF
ZGl0YWJsZSBJREwgcHJvcGVydHksIGFuZCAtd2Via2l0LXVzZXItbW9kaWZ5IENTUyBwcm9wZXJ0
eSBkeW5hbWljYWxseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbmV3
RG9jKCI8ZGl2PjwvZGl2PiIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyBmYWxzZQor
UEFTUyAkKCJkaXYiKS5jb250ZW50RWRpdGFibGUgPSAidHJ1ZSI7ICQoImRpdiIpLmlzQ29udGVu
dEVkaXRhYmxlIGlzIHRydWUKK1BBU1MgbmV3RG9jKCI8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVl
PjwvZGl2PiIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyB0cnVlCitQQVNTICQoImRp
diIpLmNvbnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxl
IGlzIGZhbHNlCitQQVNTIG5ld0RvYygiPGRpdiBjb250ZW50ZWRpdGFibGU9cGxhaW50ZXh0LW9u
bHk+PC9kaXY+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUKK1BBU1MgJCgi
ZGl2IikuY29udGVudEVkaXRhYmxlID0gImZhbHNlIjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFi
bGUgaXMgZmFsc2UKKworU3R5bGUgcnVsZXMKK1BBU1MgbmV3RG9jKCI8ZGl2PjwvZGl2PjxzdHls
ZT4gZGl2IHsgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0ZTsgfSA8L3N0eWxlPiIpOyAk
KCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyB0cnVlCitQQVNTICQoInN0eWxlIikudGV4dENv
bnRlbnQgPSAiIjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1MgJCgi
c3R5bGUiKS50ZXh0Q29udGVudCA9ICIqIHsgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0
ZS1wbGFpbnRleHQtb25seTsgfSI7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUK
K1BBU1MgbmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyBzdHlsZSA9IGVsZW1lbnQoInN0eWxlIiwgIiog
eyAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlIH0iKTsgJCgiZGl2IikuaXNDb250ZW50
RWRpdGFibGUgaXMgZmFsc2UKK1BBU1MgJCgiYm9keSIpLmFwcGVuZENoaWxkKHN0eWxlKTsgJCgi
ZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgdHJ1ZQorUEFTUyBuZXdEb2MoIjxkaXY+PC9kaXY+
PHN0eWxlPjwvc3R5bGU+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIGZhbHNlCitQ
QVNTICQoInN0eWxlIikuc2hlZXQuaW5zZXJ0UnVsZSgiKiB7IC13ZWJraXQtdXNlci1tb2RpZnk6
IHJlYWQtd3JpdGU7IH0iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgdHJ1ZQorUEFT
UyAkKCJzdHlsZSIpLnNoZWV0Lmluc2VydFJ1bGUoIiogeyAtd2Via2l0LXVzZXItbW9kaWZ5OiBy
ZWFkLW9ubHkgIWltcG9ydGFudDsgfSIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyBm
YWxzZQorCitJbmxpbmUgc3R5bGVzCitQQVNTIG5ld0RvYygiPGRpdiBzdHlsZT0nLXdlYmtpdC11
c2VyLW1vZGlmeTpyZWFkLXdyaXRlJz48L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFi
bGUgaXMgdHJ1ZQorUEFTUyAkKCJoZWFkIikuaW5uZXJIVE1MID0gIjxiYXNlIGhyZWY9J2h0dHA6
Ly9sb2NhbGhvc3QvJz4iOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyB0cnVlCitQQVNT
ICQoImRpdiIpLnN0eWxlLndlYmtpdFVzZXJNb2RpZnkgPSAiIjsgJCgiZGl2IikuaXNDb250ZW50
RWRpdGFibGUgaXMgZmFsc2UKK1BBU1MgbmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyAkKCJkaXYiKS5z
dHlsZS53ZWJraXRVc2VyTW9kaWZ5ID0gInJlYWQtd3JpdGUiOyAkKCJkaXYiKS5pc0NvbnRlbnRF
ZGl0YWJsZSBpcyB0cnVlCitQQVNTICQoImRpdiIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiIik7
ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIGZhbHNlCitQQVNTIG5ld0RvYygiPGRpdj48
L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1MgJCgiZGl2
Iikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICItd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRl
Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUKK1BBU1MgJCgiZGl2Iikuc2V0
QXR0cmlidXRlKCJzdHlsZSIsICItd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLW9ubHkiKTsgJCgi
ZGl2IikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRWxlbWVudC9keW5hbWljLWVkaXRhYmlsaXR5LWNoYW5nZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvZHluYW1pYy1lZGl0YWJpbGl0eS1jaGFuZ2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xOGM2MjFlZWMwNzYzZjE2ODU1NWYzNGFhOWY3YTE3ZWE0OTA3YjA5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvZHluYW1p
Yy1lZGl0YWJpbGl0eS1jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIG5ld0RvYyhtYXJrdXAp
IHsKKyAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgIGlmcmFtZS5jb250ZW50
RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9ICc8aGVhZD48L2hlYWQ+PGJvZHk+
PC9ib2R5Pic7CisgICAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IG1h
cmt1cDsKKyAgICB3aW5kb3cuZG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDsKKyAgICB3aW5k
b3cuJCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQucXVlcnlTZWxlY3Rvci5iaW5kKGlmcmFtZS5j
b250ZW50RG9jdW1lbnQpOworfQorCitmdW5jdGlvbiBlbGVtZW50KG5hbWUsIG1hcmt1cCkgewor
ICAgIHZhciBlbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgZWxlbWVudC50
ZXh0Q29udGVudCA9IG1hcmt1cDsKKyAgICByZXR1cm4gZWxlbWVudDsKK30KKworZGVzY3JpcHRp
b24oJ1RoaXMgdGVzdCB1cGRhdGVzIGNvbnRlbnRlZGl0YWJsZSBjb250ZW50IGF0dHJpYnV0ZSwg
Y29udGVudEVkaXRhYmxlIElETCBwcm9wZXJ0eSwgYW5kIC13ZWJraXQtdXNlci1tb2RpZnkgQ1NT
IHByb3BlcnR5IGR5bmFtaWNhbGx5LicpOworCitzaG91bGRCZUZhbHNlKCduZXdEb2MoIjxkaXY+
PC9kaXY+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZVRydWUoJyQo
ImRpdiIpLmNvbnRlbnRFZGl0YWJsZSA9ICJ0cnVlIjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFi
bGUnKTsKK3Nob3VsZEJlVHJ1ZSgnbmV3RG9jKCI8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlPjwv
ZGl2PiIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworc2hvdWxkQmVGYWxzZSgnJCgi
ZGl2IikuY29udGVudEVkaXRhYmxlID0gImZhbHNlIjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFi
bGUnKTsKK3Nob3VsZEJlVHJ1ZSgnbmV3RG9jKCI8ZGl2IGNvbnRlbnRlZGl0YWJsZT1wbGFpbnRl
eHQtb25seT48L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJl
RmFsc2UoJyQoImRpdiIpLmNvbnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7ICQoImRpdiIpLmlzQ29u
dGVudEVkaXRhYmxlJyk7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdTdHlsZSBydWxlcycpOworc2hv
dWxkQmVUcnVlKCduZXdEb2MoIjxkaXY+PC9kaXY+PHN0eWxlPiBkaXYgeyAtd2Via2l0LXVzZXIt
bW9kaWZ5OiByZWFkLXdyaXRlOyB9IDwvc3R5bGU+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRh
YmxlJyk7CitzaG91bGRCZUZhbHNlKCckKCJzdHlsZSIpLnRleHRDb250ZW50ID0gIiI7ICQoImRp
diIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZVRydWUoJyQoInN0eWxlIikudGV4dENv
bnRlbnQgPSAiKiB7IC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtd3JpdGUtcGxhaW50ZXh0LW9u
bHk7IH0iOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworc2hvdWxkQmVGYWxzZSgnbmV3
RG9jKCI8ZGl2PjwvZGl2PiIpOyBzdHlsZSA9IGVsZW1lbnQoInN0eWxlIiwgIiogeyAtd2Via2l0
LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlIH0iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUn
KTsKK3Nob3VsZEJlVHJ1ZSgnJCgiYm9keSIpLmFwcGVuZENoaWxkKHN0eWxlKTsgJCgiZGl2Iiku
aXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlRmFsc2UoJ25ld0RvYygiPGRpdj48L2Rpdj48
c3R5bGU+PC9zdHlsZT4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJl
VHJ1ZSgnJCgic3R5bGUiKS5zaGVldC5pbnNlcnRSdWxlKCIqIHsgLXdlYmtpdC11c2VyLW1vZGlm
eTogcmVhZC13cml0ZTsgfSIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworc2hvdWxk
QmVGYWxzZSgnJCgic3R5bGUiKS5zaGVldC5pbnNlcnRSdWxlKCIqIHsgLXdlYmtpdC11c2VyLW1v
ZGlmeTogcmVhZC1vbmx5ICFpbXBvcnRhbnQ7IH0iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFi
bGUnKTsKKworZGVidWcoJycpOworZGVidWcoJ0lubGluZSBzdHlsZXMnKTsKK3Nob3VsZEJlVHJ1
ZSgnbmV3RG9jKCI8ZGl2IHN0eWxlPVwnLXdlYmtpdC11c2VyLW1vZGlmeTpyZWFkLXdyaXRlXCc+
PC9kaXY+Iik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZVRydWUoJyQo
ImhlYWQiKS5pbm5lckhUTUwgPSAiPGJhc2UgaHJlZj1cJ2h0dHA6Ly9sb2NhbGhvc3QvXCc+Ijsg
JCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlRmFsc2UoJyQoImRpdiIpLnN0
eWxlLndlYmtpdFVzZXJNb2RpZnkgPSAiIjsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsK
K3Nob3VsZEJlVHJ1ZSgnbmV3RG9jKCI8ZGl2PjwvZGl2PiIpOyAkKCJkaXYiKS5zdHlsZS53ZWJr
aXRVc2VyTW9kaWZ5ID0gInJlYWQtd3JpdGUiOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScp
Oworc2hvdWxkQmVGYWxzZSgnJCgiZGl2Iikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICIiKTsgJCgi
ZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlRmFsc2UoJ25ld0RvYygiPGRpdj48
L2Rpdj4iKTsgJCgiZGl2IikuaXNDb250ZW50RWRpdGFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnJCgi
ZGl2Iikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICItd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdy
aXRlIik7ICQoImRpdiIpLmlzQ29udGVudEVkaXRhYmxlJyk7CitzaG91bGRCZUZhbHNlKCckKCJk
aXYiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgIi13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQtb25s
eSIpOyAkKCJkaXYiKS5pc0NvbnRlbnRFZGl0YWJsZScpOworCit2YXIgaWZyYW1lcyA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFtZScpOworZm9yICh2YXIgaSA9IDA7IGkgPCBpZnJh
bWVzLmxlbmd0aDsgaSsrKQorICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lc1tp
XSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9leGVjQ29tbWFuZC81MTQyMDEyLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTE0MjAxMi0xLWV4cGVjdGVkLnR4dAppbmRleCA0
NWQwMjM4OGNjNzQwMTk2NGJjNDcyOWZkYWU0Yjk1YWI4YTliMGFhLi5mZmE1MmI5ZjVlYzIxZjc0
M2ZhM2I5NDFjYWJkNjdhODcyM2VlZjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81MTQyMDEyLTEtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzUxNDIwMTItMS1leHBl
Y3RlZC50eHQKQEAgLTksNiArOSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAg
ICAgICAgIHRleHQgcnVuIGF0ICg0NTcsMCkgd2lkdGggMzI0OiAiVGhlcmUgc2hvdWxkbid0IGJl
IGFueSBsaW5rcyAqaW5zaWRlIHRoZSBzZWxlY3Rpb24qIgogICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDE4KSB3aWR0aCA0MzogImJlbG93LiIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDUyKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCww
KSBzaXplIDc4NHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0
eDE4CiAgICAgICAgICAgUmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDI0eDE4IFtjb2xv
cj0jMDAwMEVFXQogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MjR4MTgKQEAgLTE2LDcgKzE3LDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAg
ICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4CiAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIzLDApIHNpemUgMTN4MTgKICAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDEzOiAibG8iCi0gICAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDE4KSBzaXplIDc4NHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDE4KSBzaXplIDc4NHgxOAogICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxNngxOAogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMTZ4MTgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5n
L2V4ZWNDb21tYW5kL25zcmVzcG9uZGVyLW91dGRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvbnNyZXNwb25kZXItb3V0ZGVudC1l
eHBlY3RlZC50eHQKaW5kZXggNDNiM2QyMmVkNGM0MzE3ZmZhYzc0YmU2NjU0NGM1NjUwOGZiZWMy
Zi4uNDJiMDcxODAyMGEzZTg4MTYyNzY1NjRjNDU5OGVjYjAxZGM3NTUyOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvbnNyZXNwb25kZXIt
b3V0ZGVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRp
bmcvZXhlY0NvbW1hbmQvbnNyZXNwb25kZXItb3V0ZGVudC1leHBlY3RlZC50eHQKQEAgLTE0LDYg
KzE0LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggMjAxOiAiVGhpcyB0ZXN0cyB0aGUgb3V0ZGVudDogbWV0aG9kLiAiCiAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDIwMCwwKSB3aWR0aCAyNTc6ICJZb3Ugc2hvdWxkIHNlZSBh
biB1bmRlbnRlZCAnZm9vJyBiZWxvdy4iCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwz
NCkgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MjJ4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMjogImZvbyIKKyAgICAg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMngxOAorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMjI6ICJmb28iCiBjYXJldDogcG9zaXRpb24gMCBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWF0LWVuZC0wMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnNlcnRpbmcvaW5z
ZXJ0LWF0LWVuZC0wMi1leHBlY3RlZC50eHQKaW5kZXggMDU2OTBmYzczY2ZiYTFkMDcxNjdiMzM1
ZTBlZTIxZTA5MjYwNzAzNi4uM2Y4ZTI5MmIyODUzODNjZjBhMWNhNjIwYWJiNjlhZmExNTc5YTNk
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5zZXJ0aW5n
L2luc2VydC1hdC1lbmQtMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtYXQtZW5kLTAyLWV4cGVjdGVkLnR4dApAQCAt
MjksNCArMjksNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDIsNDYpIHNpemUgNzgweDE4CiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggODogIngiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCiBjYXJldDogcG9zaXRpb24gMSBvZiBjaGlsZCA1IHsjdGV4dH0gb2YgY2hpbGQg
NSB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRp
dGluZy9wYXN0ZWJvYXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvcGFzdGVib2FyZC80OTg5Nzc0LWV4cGVjdGVkLnR4dAppbmRleCA5NzQ4
OGYzYjlhZTgwNTg5NzExNThhNjVjZGVjNDI2YWFiMGRkMzI3Li41MGVmMjdkZGNhNDJiYjBiN2Fl
NWEzNGFjYWRlZWUwOGU4MTQxYTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZWRpdGluZy9wYXN0ZWJvYXJkLzQ5ODk3NzQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk4OTc3NC1leHBlY3RlZC50eHQK
QEAgLTEyLDQgKzEyLDYgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIHRl
eHQgcnVuIGF0ICg2MzQsMTAzKSB3aWR0aCAxMDI6ICJZb3Ugc2hvdWxkIHNlZSIKICAgICAgICAg
dGV4dCBydW4gYXQgKDczNSwxMDMpIHdpZHRoIDU6ICIgIgogICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwxMjEpIHdpZHRoIDM2NDogInNldmVyYWwgcGljdHVyZXMgYWJvdmUgYWxsIGluIHRoZSBzYW1l
IGxpbmUvcGFyYWdyYXBoLiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiBjYXJldDog
cG9zaXRpb24gMTY0IG9mIGNoaWxkIDQgeyN0ZXh0fSBvZiBib2R5Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>