<?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>60802</bug_id>
          
          <creation_ts>2011-05-13 14:11:49 -0700</creation_ts>
          <short_desc>Make GC validation more aggressive</short_desc>
          <delta_ts>2011-05-16 05:23:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>60881</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>ossy</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>403844</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-13 14:11:49 -0700</bug_when>
    <thetext>Make GC validation more aggressive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403853</commentid>
    <comment_count>1</comment_count>
      <attachid>93509</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-13 14:17:28 -0700</bug_when>
    <thetext>Created attachment 93509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403860</commentid>
    <comment_count>2</comment_count>
      <attachid>93509</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-05-13 14:29:47 -0700</bug_when>
    <thetext>Comment on attachment 93509
Patch

Attachment 93509 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8698179</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403863</commentid>
    <comment_count>3</comment_count>
      <attachid>93509</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-13 14:33:27 -0700</bug_when>
    <thetext>Comment on attachment 93509
Patch

Attachment 93509 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8695239</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403915</commentid>
    <comment_count>4</comment_count>
      <attachid>93524</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-13 15:31:53 -0700</bug_when>
    <thetext>Created attachment 93524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403921</commentid>
    <comment_count>5</comment_count>
      <attachid>93524</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-13 15:42:05 -0700</bug_when>
    <thetext>Comment on attachment 93524
Patch

r=me, assuming everything builds and doesn&apos;t crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403929</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-13 16:07:37 -0700</bug_when>
    <thetext>Committed r86469: &lt;http://trac.webkit.org/changeset/86469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404039</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-05-14 01:05:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 93524 [details])
&gt; r=me, assuming everything builds and doesn&apos;t crash

(In reply to comment #6)
&gt; Committed r86469: &lt;http://trac.webkit.org/changeset/86469&gt;

Unfortunately you didn&apos;t take Geoff&apos;s advice and caused hundreds crashes on Qt bot. Because of this I had to roll out: http://trac.webkit.org/changeset/86482

Reopen to fix it. I&apos;ll attach a crash log to help debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404040</commentid>
    <comment_count>8</comment_count>
      <attachid>93550</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-05-14 01:09:00 -0700</bug_when>
    <thetext>Created attachment 93550
crash log from debug Qt bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404065</commentid>
    <comment_count>9</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-14 10:28:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 93524 [details] [details])
&gt; &gt; r=me, assuming everything builds and doesn&apos;t crash
&gt; 
&gt; (In reply to comment #6)
&gt; &gt; Committed r86469: &lt;http://trac.webkit.org/changeset/86469&gt;
&gt; 
&gt; Unfortunately you didn&apos;t take Geoff&apos;s advice and caused hundreds crashes on Qt bot. Because of this I had to roll out: http://trac.webkit.org/changeset/86482

Thanks for the snarky comment.

&gt; 
&gt; Reopen to fix it. I&apos;ll attach a crash log to help debugging.
Crash log doesn&apos;t help because it&apos;s stripped of real symbol information.  We&apos;ve had this problem with Qt before.  The build bots cannot strip symbols.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404070</commentid>
    <comment_count>10</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-14 10:30:42 -0700</bug_when>
    <thetext>I&apos;ll be relanding this shortly on the assumption that the qt bot failures are due to errors in qt code rather than errors in the patch itself.  Given this patch had one purpose (find errors in code using jsc) the response to many errors should have been to determine what the errors were, not roll out the patch that identified them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404071</commentid>
    <comment_count>11</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-14 10:35:59 -0700</bug_when>
    <thetext>Lo and behold it _is_ an error in qt.

~QtRuntimeMethod removes itself from the QtInstance method cache during it&apos;s destructor, which is a point at which it is no longer guaranteed to be a valid object.

QtRuntimeMethod should use a finalizer to remove itself from the map not its destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404094</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-05-14 12:54:13 -0700</bug_when>
    <thetext>Thanks for the additional information. Please don&apos;t land it at the 
weekend, zherczeg will gladly fix the bug in Qt code path at monday 
morning (in european timezone).

Thanks for your patience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404097</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-14 12:57:16 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Thanks for the additional information. Please don&apos;t land it at the 
&gt; weekend, zherczeg will gladly fix the bug in Qt code path at monday 
&gt; morning (in european timezone).
&gt; 
&gt; Thanks for your patience.

We actually need this patch in as we&apos;re seeing crashes due to gc bugs that this will expose.  Happily I&apos;ve put up a patch at https://bugs.webkit.org/show_bug.cgi?id=60841 that should fix the issue.  Currently waiting on the EWS to tell me how to make it build properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404128</commentid>
    <comment_count>14</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-14 15:10:18 -0700</bug_when>
    <thetext>Committed r86499: &lt;http://trac.webkit.org/changeset/86499&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93509</attachid>
            <date>2011-05-13 14:17:28 -0700</date>
            <delta_ts>2011-05-13 15:31:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60802-20110513141727.patch</filename>
            <type>text/plain</type>
            <size>76964</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYzNzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDAx
ZDViNzJmNDJiM2E0ODg3ZTk1ZTE1NWRkNzRjZDYyOWZmN2E4YmIuLjA5ODNjMzA4OTJmODFkOGJi
ZWE1YWE1M2EyNzBmZTRiMzk4MjI4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk0IEBACisyMDExLTA1LTEzICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBHQyB2
YWxpZGF0aW9uIG1vcmUgYWdncmVzc2l2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjA4MDIKKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBj
aGVja3MgcGVyZm9ybWVkIHVuZGVyIEdDX1ZBTElEQVRJT04KKyAgICAgICAgbXVjaCBtb3JlIGFn
Z3Jlc3NpdmUsIGFuZCBhZGRzIHRoZSBjaGVja3MgdG8gbW9yZSBwbGFjZXMKKyAgICAgICAgaW4g
b3JkZXIgdG8gYWxsb3cgdXMgdG8gY2F0Y2ggR0MgYnVncyBtdWNoIGNsb3NlciB0byB0aGUKKyAg
ICAgICAgcG9pbnQgb2YgZmFpbHVyZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRl
YnVnZ2VyQWN0aXZhdGlvbjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogaGVhcC9NYXJrZWRC
bG9jay5jcHA6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayk6CisgICAg
ICAgICogaGVhcC9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMu
Y3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAq
IHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjp2
aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6UHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hp
bGRyZW4pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4p
OgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvR2V0
dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjp2aXNpdENoaWxkcmVu
KToKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBUElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkpTQVBJVmFsdWVXcmFwcGVyOjpKU0FQSVZh
bHVlV3JhcHBlcik6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgorICAgICAg
ICAoSlNDOjpKU0FjdGl2YXRpb246OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnZpc2l0Q2hpbGRyZW4pOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6c2xvd1ZhbGlkYXRlQ2Vs
bCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpK
U0NlbGw6OnVudmFsaWRhdGVkU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0Nl
bGw6OkpTQ2VsbCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxk
cmVuKToKKyAgICAgICAgKEpTQzo6c2xvd1ZhbGlkYXRlQ2VsbCk6CisgICAgICAgICogcnVudGlt
ZS9KU09OT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkpTT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRl
cmF0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU1N0YXRpY1Njb3BlT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAg
KiBydW50aW1lL0pTU3RyaW5nLmg6CisgICAgICAgIChKU0M6OlJvcGVCdWlsZGVyOjpKU1N0cmlu
Zyk6CisgICAgICAgICogcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU1dyYXBwZXJPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3I6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlNYXBIYXNo
VGFibGUuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlNYXBFbnRyeTo6UHJvcGVydHlNYXBFbnRy
eSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpS
ZWdFeHBPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFp
bi5jcHA6CisgICAgICAgIChKU0M6OlNjb3BlQ2hhaW5Ob2RlOjp2aXNpdENoaWxkcmVuKToKKyAg
ICAgICAgKiBydW50aW1lL1Njb3BlQ2hhaW4uaDoKKyAgICAgICAgKEpTQzo6U2NvcGVDaGFpbk5v
ZGU6OlNjb3BlQ2hhaW5Ob2RlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZTo6U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnZp
c2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChK
U0M6OkpTQ2VsbDo6Y2xhc3NJbmZvKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWlu
LmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hhaW46OnZpc2l0Q2hpbGRyZW4pOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRl
QmFycmllci5oOgorICAgICAgICAoSlNDOjp2YWxpZGF0ZUNlbGwpOgorICAgICAgICAoSlNDOjpK
U0NlbGwpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6Oldy
aXRlQmFycmllckJhc2U6OnNldCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6OnNl
dE1heUJlTnVsbCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6OnNldEVhcmx5VmFs
dWUpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpnZXQpOgorICAgICAgICAoSlND
OjpXcml0ZUJhcnJpZXJCYXNlOjpvcGVyYXRvciopOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJp
ZXJCYXNlOjpvcGVyYXRvci0+KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTo6dW52
YWxpZGF0ZWRHZXQpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXI6OldyaXRlQmFycmllcik6
CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKwogMjAxMS0wNS0xMiAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBjYTc1MDdlM2VkMWJi
OGY3OTIwNmQ5ZWEzNjdiNjI5MGE0NTYzZTQ0Li4xMmIzMTU4ZGQ1Yjk0ZWVjMzdhMTgxNTg1Yjkx
ZDJjYWZmNmE1ODkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAK
QEAgLTE2Nyw2ICsxNjcsNyBAQCBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Rud0VtUE5TXzEySlNH
bG9iYWxEYXRhRQogX19aTjNKU0MxNE1hY2hpbmVUaHJlYWRzMTZhZGRDdXJyZW50VGhyZWFkRXYK
IF9fWk4zSlNDMTRTYW1wbGluZ1RocmVhZDRzdG9wRXYKIF9fWk4zSlNDMTRTYW1wbGluZ1RocmVh
ZDVzdGFydEVqCitfX1pOM0pTQzE0U2NvcGVDaGFpbk5vZGU2c19pbmZvRQogX19aTjNKU0MxNFRp
bWVvdXRDaGVja2VyMTBkaWRUaW1lT3V0RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNFRpbWVv
dXRDaGVja2VyNXJlc2V0RXYKIF9fWk4zSlNDMTR0aHJvd1R5cGVFcnJvckVQTlNfOUV4ZWNTdGF0
ZUUKQEAgLTE4Myw2ICsxODQsOCBAQCBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0ZGVsZXRl
UHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzE2SlNW
YXJpYWJsZU9iamVjdDE0c3ltYm9sVGFibGVHZXRFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJv
cGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxOWdldE93blByb3Bl
cnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVt
ZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzE2Y3JlYXRlUmFuZ2VFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQorX19aTjNKU0MxNnNsb3dWYWxpZGF0ZUNlbGxFUE5TXzE0SlNHbG9iYWxP
YmplY3RFCitfX1pOM0pTQzE2c2xvd1ZhbGlkYXRlQ2VsbEVQTlNfNkpTQ2VsbEUKIF9fWk4zSlND
MTZ0aHJvd1N5bnRheEVycm9yRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxN0J5dGVjb2RlR2Vu
ZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFy
cmF5M2FkZEVQTjNXVEYxMFN0cmluZ0ltcGxFCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDA2ZDFlOGVhYWU2MjY1MWNhNzgxNmM0M2JkNjAzYWE2NTVjOTBmNWYuLmJhZDBkZDg1Zjc4
ZTZkYWRkM2RiZGZmNDkxZmVhM2YyZWJiMDIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yNjk2LDYgKzI2OTYsNyBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWF0dHJp
YnV0ZXMgPSB7CiAJCQkJQnVpbGRJbmRlcGVuZGVudFRhcmdldHNJblBhcmFsbGVsID0gWUVTOwor
CQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAwNDIwOwogCQkJfTsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSAxNDlDMjc3MTA4OTAyQUZFMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhQcm9qZWN0ICJKYXZhU2NyaXB0Q29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5
VmVyc2lvbiA9ICJYY29kZSAzLjEiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA0N2RjZDdmYTY0NTY2ZDQ4MTFm
ZGQ1MGZkYjU1Y2Q3MGRkM2I4NzRiLi40Mzg1NTQyM2ZkMGFlYWQ5Y2M2ZDA2NWVjNzQxMDVhYzEw
NTJjNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtNDAsNiArNDAsOSBAQCBEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBh
Y3RpdgogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2lu
Zm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAg
QVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7
CiAgICAgSlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAKICAgICBpZiAobV9hY3Rp
dmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxv
Y2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCmluZGV4
IGExMGE3Nzg1YzNkOTZmNjMzNzZhZjRjZTYzYjY5MGI0MTFkOTQzZDQuLmYxZjYzMGNlYWEzMGZm
MTIzZWI2ZDZjNGQyYWMyZGIxNTRjOTYxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrZWRCbG9jay5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgTWFya2VkQmxvY2s6Ok1hcmtlZEJs
b2NrKGNvbnN0IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYgYWxsb2NhdGlvbiwgSlNHbG9iYWxEYXRh
KgogCiAgICAgU3RydWN0dXJlKiBkdW1teU1hcmthYmxlQ2VsbFN0cnVjdHVyZSA9IGdsb2JhbERh
dGEtPmR1bW15TWFya2FibGVDZWxsU3RydWN0dXJlLmdldCgpOwogICAgIGZvciAoc2l6ZV90IGkg
PSBmaXJzdEF0b20oKTsgaSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0b21zUGVyQ2VsbCkKLSAgICAg
ICAgbmV3ICgmYXRvbXMoKVtpXSkgSlNDZWxsKCpnbG9iYWxEYXRhLCBkdW1teU1hcmthYmxlQ2Vs
bFN0cnVjdHVyZSk7CisgICAgICAgIG5ldyAoJmF0b21zKClbaV0pIEpTQ2VsbCgqZ2xvYmFsRGF0
YSwgZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUsIEpTQ2VsbDo6Q3JlYXRpbmdFYXJseUNlbGwp
OwogfQogCiB2b2lkIE1hcmtlZEJsb2NrOjpzd2VlcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRTcGFjZS5jcHAKaW5kZXggZDlhMWU0MjFiYWI5OTNlOTZiYjhkZDgwODY4ZWNk
OTJkODU2ZTk4MC4uNzdmNmU1MjNhYTZmN2NiYWNjMDNkZThjN2Q4OWQzMzZjYjVkMWY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcApAQCAtMjEsNiArMjEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1hcmtlZFNwYWNlLmgiCiAKKyNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggODM4ZmQwOWQ0ZTNjNWY1ZWY0ZTkwY2Rk
YWFhYWJiNjNjZTdlNmU2ZC4uZWM2Y2M4ZjFjNzIwN2RhODNhZjE1MTQyNmI5ZjU4MWIxOTg0NmM0
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC00
NSw2ICs0NSw5IEBAIEFyZ3VtZW50czo6fkFyZ3VtZW50cygpCiAKIHZvaWQgQXJndW1lbnRzOjp2
aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJl
RmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0
aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBKU09iamVjdDo6dmlzaXRDaGlsZHJlbih2aXNp
dG9yKTsKIAogICAgIGlmIChkLT5yZWdpc3RlckFycmF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCBjZjUxYWMyYTI4OGQ3MDE1ZGNmNjdjM2Vj
NzMzNTc0YWM5NGQwMzQ5Li5hZWZhZWRjNWIyZjYxMjg2OTczZDk0NzE1N2EwMDAzZDhjNDgwZWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAt
MTQ1LDYgKzE0NSw5IEBAIEpTT2JqZWN0KiBFdmFsRXhlY3V0YWJsZTo6Y29tcGlsZUludGVybmFs
KEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlCiAKIHZvaWQgRXZhbEV4ZWN1
dGFibGU6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChT
dHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUlu
Zm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIFNjcmlwdEV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4odmlzaXRvcik7CiAgICAgaWYgKG1fZXZhbENvZGVCbG9jaykKICAgICAgICAg
bV9ldmFsQ29kZUJsb2NrLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKQEAgLTIzNyw2ICsyNDAs
OSBAQCBzdGF0aWMgYm9vbCB0cnlERkdDb21waWxlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwg
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVENvZAogCiB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjp2
aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJl
RmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0
aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBTY3JpcHRFeGVjdXRhYmxlOjp2aXNpdENoaWxk
cmVuKHZpc2l0b3IpOwogICAgIGlmIChtX3Byb2dyYW1Db2RlQmxvY2spCiAgICAgICAgIG1fcHJv
Z3JhbUNvZGVCbG9jay0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CkBAIC0zNDksNiArMzU1LDkg
QEAgSlNPYmplY3QqIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y29tcGlsZUZvckNvbnN0cnVjdEludGVy
bmFsKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGUKIAogdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVG
bGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRo
b3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVy
cmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIFNjcmlwdEV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRy
ZW4odmlzaXRvcik7CiAgICAgaWYgKG1fY29kZUJsb2NrRm9yQ2FsbCkKICAgICAgICAgbV9jb2Rl
QmxvY2tGb3JDYWxsLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCA3MGIxMmE1NTdkM2YyODAzMjE4N2MwM2Vk
MTEyNTljOTM5OWE3ZTEzLi42OTJlMzQ3YTVmZGU4ZTllM2FmMmY3Y2EwMWQ3YmQwMmJmNDU5ZmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCkBAIC02Niwx
MCArNjYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywg
VHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7IH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8g
c19pbmZvOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSAwOwotICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5m
bzsKICAgICAgICAgaW50IG1fbnVtUGFyYW1ldGVyc0ZvckNhbGw7CiAgICAgICAgIGludCBtX251
bVBhcmFtZXRlcnNGb3JDb25zdHJ1Y3Q7CiAKQEAgLTExNyw3ICsxMTgsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24oKSB7IHJldHVybiBtX2Z1bmN0
aW9uOyB9CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKExlYWZUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KLQorICAgICAgICAKKyAgICAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CisgICAgCiAgICAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoSklUKQogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSklUQ29kZSBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBKSVRDb2Rl
IGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKQEAgLTE0Myw3ICsx
NDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLy8gUHJvYmFibHkgc2hvdWxkIGJlIGEg
TmF0aXZlQ29uc3RydWN0b3IsIGJ1dCB0aGlzIHdpbGwgY3VycmVudGx5IHJlcXVpcmUgcmV3cml0
aW5nIHRoZSBKSVQKICAgICAgICAgLy8gdHJhbXBvbGluZS4gSXQgbWF5IGJlIGVhc2llciB0byBt
YWtlIE5hdGl2ZUZ1bmN0aW9uIGJlIHBhc3NlZCAndGhpcycgYXMgYSBwYXJ0IG9mIHRoZSBBcmdM
aXN0LgogICAgICAgICBOYXRpdmVGdW5jdGlvbiBtX2NvbnN0cnVjdG9yOwotICAgICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICB9OwogCiAgICAgY2xhc3MgU2NyaXB0RXhl
Y3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CkBAIC0yMzYsMTAgKzIzOCwxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQotCisgICAg
ICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICBwcml2YXRl
OgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuIHwgU2NyaXB0RXhlY3V0YWJsZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogICAgICAgICBFdmFsRXhlY3V0YWJs
ZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmpl
Y3QqIGNvbXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSopOwpAQCAtMjg2
LDEwICsyODgsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IFNjcmlwdEV4ZWN1dGFibGU6OlN0cnVj
dHVyZUZsYWdzOwotICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICAg
ICAgUHJvZ3JhbUV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYpOwogCiAg
ICAgICAgIEpTT2JqZWN0KiBjb21waWxlSW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5v
ZGUqKTsKQEAgLTM4Miw2ICszODUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBl
SW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CiAKICAgICBwcml2YXRlOgogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYs
IGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBpbnQg
Zmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwpAQCAtMzkxLDcgKzM5Niw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBKU09iamVjdCogY29tcGlsZUZvckNvbnN0cnVjdEludGVybmFsKEV4ZWNT
dGF0ZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgU2NyaXB0
RXhlY3V0YWJsZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwogICAgICAgICB1bnNpZ25lZCBtX251bUNhcHR1cmVkVmFyaWFibGVzIDogMzE7
CiAgICAgICAgIGJvb2wgbV9mb3JjZVVzZXNBcmd1bWVudHMgOiAxOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAppbmRleCBiZTllYjQ4NzUxNGIz
ZjY3MmRkZmU1MjIwMWIyMzU0YzQxMDA0M2JkLi4wNDE5M2VhM2Q1MzE0YzIyMzljMTUyZmE2MDdj
ZTVhZGMwZmU0ZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9H
ZXR0ZXJTZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRl
clNldHRlci5jcHAKQEAgLTMyLDYgKzMyLDggQEAgY29uc3QgQ2xhc3NJbmZvIEdldHRlclNldHRl
cjo6c19pbmZvID0geyAiR2V0dGVyU2V0dGVyIiwgMCwgMCwgMCB9OwogCiB2b2lkIEdldHRlclNl
dHRlcjo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIEFTU0VSVChzdHJ1Y3R1cmUo
KS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIEpTQ2VsbDo6dmlz
aXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIGlmIChtX2dldHRlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKaW5kZXggY2ViMmFmM2I4NzM2NGY5Nzdj
YmQ0NTE2YWRhNTliZTk0MjE0NTIwMS4uYWNhN2UzY2JiMDI3MmYxZmY5ZGVhOTljNjBmZTVjZGJk
MzA5YTFkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVy
LmgKQEAgLTUyLDkgKzUyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CisKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNHZXR0ZXJTZXR0ZXIoKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CiAKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX2dldHRlcjsK
ICAgICAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX3NldHRlcjsgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgKaW5kZXggNGRjYTlm
NGJmYzVlOTExODQzYjczNDFlMDc0Y2U4ZTkxMmIzOTNlZi4uMzhjYmI1NjllMzY5MWVhZGQ4ZmUx
YTMyODlmNTI4NWU4ZDFiMGNjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCkBAIC00MCw4ICs0MCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKICAgICAgICAgfQotCiAgICAgICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIEpTQVBJVmFsdWVXcmFwcGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgICAgIDogSlNDZWxsKGV4
ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLmFwaVdyYXBwZXJTdHJ1Y3R1cmUu
Z2V0KCkpCkBAIC00OSw3ICs1MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV92
YWx1ZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCB2YWx1ZSk7CiAgICAgICAgICAgICBB
U1NFUlQoIXZhbHVlLmlzQ2VsbCgpKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29uc3Qg
Q2xhc3NJbmZvIHNfaW5mbzsKIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV92YWx1
ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
Y3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5jcHAKaW5kZXggODFlMThjMTRjOWY3Njk1ZmYxMWRjOTc2ZjcxODBlZmMzNmE0ZjY4ZC4uMDlk
OTg1YWZiY2ZiNTkzZDVmYmQwNDU5OWEyYTY4MmI1ZjE3ZjA1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC02MCw2ICs2MCw5IEBAIEpT
QWN0aXZhdGlvbjo6fkpTQWN0aXZhdGlvbigpCiAKIHZvaWQgSlNBY3RpdmF0aW9uOjp2aXNpdENo
aWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3Mg
JiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNl
dHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAg
ICAgLy8gTm8gbmVlZCB0byBtYXJrIG91ciByZWdpc3RlcnMgaWYgdGhleSdyZSBzdGlsbCBpbiB0
aGUgUmVnaXN0ZXJGaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNw
cAppbmRleCBiMGFlODlhOTg2MjViYzQyZjI4MzZhOTk2MzI5M2I3MDU5YzllZjA2Li5mMDRmMjQz
M2Q4MTlmMThkOGUwNjVkZWNiZmNkZDIwZmRlNGU4MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtODU5LDYgKzg1OSw5IEBAIHZvaWQgSlNBcnJheTo6
dW5zaGlmdENvdW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQogCiB2b2lkIEpTQXJyYXk6
OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1
cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5X
aXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5v
dmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIHZpc2l0Q2hpbGRyZW5EaXJlY3QodmlzaXRv
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDkz
MzMxYjNmZmI0MWI2MTBiZmU4NmM3MjUzYzgyMTA4NTI4MmI0OWIuLjA2MDZjZDQwODg2ZjMzNzZk
NDVjZmZiNDM2MTU1OWMzOTg5YTdhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmNwcApAQCAtMjIxLDQgKzIyMSw5IEBAIGJvb2wgaXNab21iaWUoY29uc3QgSlNDZWxs
KiBjZWxsKQogI2VuZGlmCiB9CiAKK3ZvaWQgc2xvd1ZhbGlkYXRlQ2VsbChKU0NlbGwqIGNlbGwp
Cit7CisgICAgQVNTRVJUX0dDX09CSkVDVF9MT09LU19WQUxJRChjZWxsKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDA4
YWFiNjJhNGE2YTkxNWExN2E2ZjU4ZWY1NmY5MzQ3YmI1ODc0ZDguLjdkMmM1ZGY1NWRmYTE2ZGEw
MDgyNjgzZmNkNTg3NGVmYjY0NTI1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5oCkBAIC03MSw2ICs3MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQg
Y2xhc3MgU2NvcGVDaGFpbk5vZGU7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7CiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmVDaGFpbjsKKyAgICAgICAgZW51bSBDcmVhdGlu
Z0Vhcmx5Q2VsbFRhZyB7IENyZWF0aW5nRWFybHlDZWxsIH07CiAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFja1R5cGUgeyBWUHRyU3RlYWxpbmdIYWNrIH07CkBA
IC03OCw2ICs3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIGV4
cGxpY2l0IEpTQ2VsbChWUHRyU3RlYWxpbmdIYWNrVHlwZSkgeyB9CiAgICAgICAgIEpTQ2VsbChK
U0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgSlNDZWxsKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSosIENyZWF0aW5nRWFybHlDZWxsVGFnKTsKICAgICAgICAgdmlydHVhbCB+SlND
ZWxsKCk7CiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19kdW1teUNlbGxJbmZvOwog
CkBAIC0xNDgsNiArMTUwLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihKU0NlbGwsIG1fc3RydWN0dXJlKTsKICAgICAgICAgfQogCisjaWYg
RU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgICAgIFN0cnVjdHVyZSogdW52YWxpZGF0ZWRTdHJ1
Y3R1cmUoKSB7IHJldHVybiBtX3N0cnVjdHVyZS51bnZhbGlkYXRlZEdldCgpOyB9CisjZW5kaWYK
KyAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
QW5vbnltb3VzU2xvdENvdW50ID0gMDsKIApAQCAtMTYyLDYgKzE2OCwxNSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBpbmxpbmUgSlNDZWxsOjpKU0NlbGwoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBtX3N0cnVjdHVyZShnbG9iYWxEYXRh
LCB0aGlzLCBzdHJ1Y3R1cmUpCiAgICAgeworICAgICAgICBBU1NFUlQobV9zdHJ1Y3R1cmUpOwor
ICAgIH0KKworICAgIGlubGluZSBKU0NlbGw6OkpTQ2VsbChKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKKyAgICB7Cisj
aWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgICAgIGlmIChzdHJ1Y3R1cmUpCisjZW5kaWYK
KyAgICAgICAgICAgIG1fc3RydWN0dXJlLnNldEVhcmx5VmFsdWUoZ2xvYmFsRGF0YSwgdGhpcywg
c3RydWN0dXJlKTsKICAgICAgICAgLy8gVmVyeSBmaXJzdCBzZXQgb2YgYWxsb2NhdGlvbnMgd29u
J3QgaGF2ZSBhIHJlYWwgc3RydWN0dXJlLgogICAgICAgICBBU1NFUlQobV9zdHJ1Y3R1cmUgfHwg
IWdsb2JhbERhdGEuZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNGU5Y2QzN2Q1YmU4
NGVkZjI1NWUwYzVhYzMwNjllNDQxZTU0YWZiNC4uZTQ2ODBjYzEwNDVjNDhlNjg3M2ViNzZkOGM5
ZWViZjE2NGE5NzE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKQEAgLTEzNSw2ICsxMzUsOSBAQCBjb25zdCBVU3RyaW5nIEpTRnVuY3Rpb246OmNh
bGN1bGF0ZWREaXNwbGF5TmFtZShFeGVjU3RhdGUqIGV4ZWMpCiAKIHZvaWQgSlNGdW5jdGlvbjo6
dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVy
ZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldp
dGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9y
KTsKIAogICAgIHZpc2l0b3IuYXBwZW5kKCZtX3Njb3BlQ2hhaW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDljNzcxNDYxNjA4
Nzg1ZDI3ZWJjNDU1ODZlZjY0YTUxNWFlOGVmMGYuLjM5MWE2NTUwZGQ1NGI0MTIyMTAyMjFhNmQ0
MDA1NDllYzE0NTZiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKQEAgLTMxMCw2ICszMTAsOSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0
OjpyZXNldFByb3RvdHlwZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90
eXBlKQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7
CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxk
cmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NF
UlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAg
ICBKU1ZhcmlhYmxlT2JqZWN0Ojp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAgICAgdmlzaXRJ
Zk5lZWRlZCh2aXNpdG9yLCAmbV9nbG9iYWxTY29wZUNoYWluKTsKQEAgLTQ1OSw0ICs0NjIsMTEg
QEAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlOjpEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0cKICAgICB9CiB9CiAKK3ZvaWQgc2xvd1ZhbGlkYXRl
Q2VsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIGlmICghZ2xvYmFsT2Jq
ZWN0LT5pc0dsb2JhbE9iamVjdCgpKQorICAgICAgICBDUkFTSCgpOworICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoZ2xvYmFsT2JqZWN0LCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbyk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5oCmluZGV4IGM4N2M2NDE5YjljNmU5NjRiZjhiZDc2NTcxMWRjMDgyYjMzN2E2YWQu
LmI3NzMzMjA1YzgwOGJlMmQ3ODNmZDdjN2U4MmU4OTFmNGRjZWIxZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKQEAgLTQwLDYgKzQwLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKQEAgLTQ4LDcg
KzUwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICB9OwogCiAgICAgVVN0cmluZyBKU09OU3Ry
aW5naWZ5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgaW5kZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhZTI5YTdi
NDNmNWJjYWYyMWE4MzJkNzcwZjMyYjFhMmJkMzhiMjRlLi5kNmRiNjEyMmYxMjNlM2I2NGE4OWMz
NjkxNGZjNGM0ODU2M2MzZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRDbGFzc1By
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzCiAKIHZv
aWQgSlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKICNpZm5kZWYgTkRFQlVH
CiAgICAgYm9vbCB3YXNDaGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uID0gdmlzaXRvci5t
X2lzQ2hlY2tpbmdGb3JEZWZhdWx0TWFya1Zpb2xhdGlvbjsKICAgICB2aXNpdG9yLm1faXNDaGVj
a2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4
IGU2MDEwZGU5ZDdhODhlZDYzZGI4MmU0YjgyY2E1NjBkMDdlODdiMTcuLmUwNWJiM2Y0NGQ1YTAx
NjU3YjVlZGViOTVkNzRjODk3YTUyNjFiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC05Nyw2ICs5
Nyw4IEBAIEpTVmFsdWUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Z2V0KEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGJhc2UsIHNpemVfdCBpKQogCiB2b2lkIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3I6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICB2aXNpdG9yLmFwcGVu
ZFZhbHVlcyhtX2pzU3RyaW5ncy5nZXQoKSwgbV9qc1N0cmluZ3NTaXplLCBNYXlDb250YWluTnVs
bFZhbHVlcyk7CiAgICAgaWYgKG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4pCiAgICAgICAgIHZpc2l0
b3IuYXBwZW5kKCZtX2NhY2hlZFByb3RvdHlwZUNoYWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAppbmRleCAxYTU3
MzUwMzIzODZhMmUzODk3NDRiM2ZhMzViYTdkN2VjODdhY2U2Li5mZjEyOWYwNTQ5YTEzMjRiOWE0
ODA4MDg3NDY4MGIzNDdhZGY2ZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC03NSw5ICs3NSwxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIHNldENhY2hlZFByb3RvdHlwZUNoYWluKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNo
YWluKSB7IG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0KGdsb2JhbERhdGEsIHRoaXMsIGNhY2hl
ZFByb3RvdHlwZUNoYWluKTsgfQogICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2FjaGVkUHJvdG90
eXBlQ2hhaW4oKSB7IHJldHVybiBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpOyB9CisgICAg
ICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogICAgICAgICBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5RGF0YSogcHJv
cGVydHlOYW1lQXJyYXlEYXRhLCBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdCk7CiAKICAgICAgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9jYWNoZWRTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCmluZGV4
IDg4ZTQ1Mzg1NjJkZWY0MTI5M2Y1NTI2NGNiYTBmZjkxYjMyZTM5MTcuLjUyMDY1MTBkNmNkMmE3
NzI0YTczYjViZWQxMmExZjJkNmQ4Y2M3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCkBAIC0zNCw2ICszNCw5IEBA
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNTdGF0aWNTY29wZU9iamVjdCk7CiAKIHZvaWQg
SlNTdGF0aWNTY29wZU9iamVjdDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENP
TVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgSlNWYXJp
YWJsZU9iamVjdDo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAgICB2aXNpdG9yLmFwcGVuZCgm
bV9yZWdpc3RlclN0b3JlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCmluZGV4IDBhYzY0YmQ4Yjc5MGE5NzczNjhlMDhlZjY3N2I4YmMzODMzZDAxMDEuLjY2ODA2
NGY4NTRhODAzMGFkMzgzZGRjNjZkMTFkMGM5MmQ3MzIzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtMzMwLDYgKzMzMCw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG8sIFR5cGVJbmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IE5lZWRzVGhpc0NvbnZlcnNpb24pLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTU3RyaW5nKFZQdHJTdGVhbGluZ0hhY2tU
eXBlKSAKQEAgLTMzNyw3ICszMzksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwg
bV9maWJlckNvdW50KDApCiAgICAgICAgIHsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgICAgICB2b2lkIHJlc29sdmVSb3BlKEV4ZWNTdGF0
ZSopIGNvbnN0OwogICAgICAgICB2b2lkIHJlc29sdmVSb3BlU2xvd0Nhc2UoRXhlY1N0YXRlKiwg
VUNoYXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTV3JhcHBlck9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwCmluZGV4IDJiZjRhOTA0NTg5YzJhZGEwYmZjOGY2ODZkN2VkNTZiYmY2
YzgyYmMuLjhkNjM4N2VjMGFiMjBhZGY3YWZhNTNlMWYxMGZkYWQwNDMwZjAxZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcApAQCAt
MjgsNiArMjgsOSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTV3JhcHBlck9iamVjdCk7
CiAKIHZvaWQgSlNXcmFwcGVyT2JqZWN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKSAKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwor
ICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJU
KHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAg
SlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAgICAgaWYgKG1faW50ZXJuYWxWYWx1
ZSkKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJm1faW50ZXJuYWxWYWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDVjNGYwMDkyMDQxOWUyMDViN2I3MWI1ODU2Zjg2ZTFjZTA2NmU2MTIuLjJhN2E3
ZjVkNDVlMzA1N2VhNmM1NTBiMzRlYWU5MjBkNTE4ZDZiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBA
IC00OCw2ICs0OCw5IEBAIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6Ok5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCoKIAogdm9pZCBOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9B
U1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBJbnRlcm5hbEZ1bmN0
aW9uOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIGlmIChtX2Vycm9yU3RydWN0dXJlKQog
ICAgICAgICB2aXNpdG9yLmFwcGVuZCgmbV9lcnJvclN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBIYXNoVGFibGUuaAppbmRleCA2
ZWE1OTNhZDYyZjc1NjVjNjZkODFjZmJkNWJlZjU0MGIzNTUzNzk2Li4yOGE5MzY0OTQ4ZGRhNjY0
ODA0ZmFkYzU0Nzk0NTY2MDAxZjlhMjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKQEAgLTgwLDcgKzgwLDcgQEAgc3Ry
dWN0IFByb3BlcnR5TWFwRW50cnkgewogICAgICAgICA6IGtleShrZXkpCiAgICAgICAgICwgb2Zm
c2V0KG9mZnNldCkKICAgICAgICAgLCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCi0gICAgICAgICwg
c3BlY2lmaWNWYWx1ZShnbG9iYWxEYXRhLCBvd25lciwgc3BlY2lmaWNWYWx1ZSkKKyAgICAgICAg
LCBzcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIG93bmVyLCBzcGVjaWZpY1ZhbHVlLCBXcml0ZUJh
cnJpZXI8SlNDZWxsPjo6TWF5QmVOdWxsKQogICAgIHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggZmZjMDExMmYwYTk5
M2U0YTk5ZDczYmQ5MWFlMDgyN2M4ODgwYmYwMC4uYzAyMzM0OTYxZjI1YjYxYTUzNzBmZTI0NTM1
MjU5ZGUwOWEwOGU1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuY3BwCkBAIC03NCw2ICs3NCw5IEBAIFJlZ0V4cE9iamVjdDo6flJlZ0V4cE9iamVj
dCgpCiAKIHZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Cisg
ICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVu
LCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQo
c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBC
YXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIGlmIChVTkxJS0VMWSghZC0+bGFzdElu
ZGV4LmdldCgpLmlzSW50MzIoKSkpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZkLT5sYXN0SW5k
ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFp
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcAppbmRl
eCBlZDYwYmIxNTlhYmY4NzBlNDlkMjZhOGZhMmZiNDFkNTFkZTg0ZjcwLi5kZjRkYTQxYzAyMTM5
NDI3MDY1NGMwNTFjNmY3YzhlNTI4ODVlYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TY29wZUNoYWluLmNwcApAQCAtNjksNiArNjksOSBAQCBpbnQgU2NvcGVDaGFpbk5v
ZGU6OmxvY2FsRGVwdGgoKQogCiB2b2lkIFNjb3BlQ2hhaW5Ob2RlOjp2aXNpdENoaWxkcmVuKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
cywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFn
KTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbigpKTsKICAgICBpZiAobmV4dCkKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJm5leHQpOwog
ICAgIHZpc2l0b3IuYXBwZW5kKCZvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2NvcGVDaGFpbi5oCmluZGV4IDg0ODFiZGNkYWU2MzQzNzIxNzZhMzE0MDIxZTE1ZGE5OWNk
MzViYTcuLjdmYmI4ODhlM2I0YWU2MjExNGY5YjkyNzFlMWUyY2YyMDcxMTY3ZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNjb3BlQ2hhaW5Ob2RlKFNjb3BlQ2hhaW5Ob2RlKiBu
ZXh0LCBKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBnbG9iYWxUaGlzKQogICAgICAgICAgICAg
OiBKU0NlbGwoKmdsb2JhbERhdGEsIGdsb2JhbERhdGEtPnNjb3BlQ2hhaW5Ob2RlU3RydWN0dXJl
LmdldCgpKQogICAgICAgICAgICAgLCBnbG9iYWxEYXRhKGdsb2JhbERhdGEpCi0gICAgICAgICAg
ICAsIG5leHQoKmdsb2JhbERhdGEsIHRoaXMsIG5leHQpCisgICAgICAgICAgICAsIG5leHQoKmds
b2JhbERhdGEsIHRoaXMsIG5leHQsIFdyaXRlQmFycmllcjxTY29wZUNoYWluTm9kZT46Ok1heUJl
TnVsbCkKICAgICAgICAgICAgICwgb2JqZWN0KCpnbG9iYWxEYXRhLCB0aGlzLCBvYmplY3QpCiAg
ICAgICAgICAgICAsIGdsb2JhbE9iamVjdCgqZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsT2JqZWN0
KQogICAgICAgICAgICAgLCBnbG9iYWxUaGlzKCpnbG9iYWxEYXRhLCB0aGlzLCBnbG9iYWxUaGlz
KQpAQCAtNjgsOSArNjgsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4o
U2xvdFZpc2l0b3ImKTsKKyAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW47Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogICAgIH07CiAKICAgICBpbmxpbmUgU2NvcGVDaGFp
bk5vZGUqIFNjb3BlQ2hhaW5Ob2RlOjpwdXNoKEpTT2JqZWN0KiBvKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggNmJhMjc3N2M0ZDk2MmZmZThmMjM0
M2FlY2ExM2NkNjllYTFlM2RlNC4uYTNmZGE1NDdmZGRiN2Y4NTA5MjliMmExMjI5ZmU2MDcxYjM2
MzdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBA
IC0yMDYsNyArMjA2LDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8KIGNvbnN0IENsYXNzSW5m
byBTdHJ1Y3R1cmU6OnNfaW5mbyA9IHsgIlN0cnVjdHVyZSIsIDAsIDAsIDAgfTsKIAogU3RydWN0
dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQotICAgIDogSlNDZWxsKGds
b2JhbERhdGEsIHRoaXMpCisgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgdGhpcywgQ3JlYXRpbmdF
YXJseUNlbGwpCiAgICAgLCBtX3R5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbikKICAgICAsIG1fcHJvdG90eXBlKGdsb2JhbERhdGEsIHRoaXMsIGpzTnVsbCgpKQog
ICAgICwgbV9jbGFzc0luZm8oJnNfaW5mbykKQEAgLTM1OCwxMSArMzU4LDExIEBAIFN0cnVjdHVy
ZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBTdHJ1Y3R1cmUqCiAKICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSBjcmVhdGUoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKTsKIAotICAgIHRyYW5zaXRpb24tPm1fY2FjaGVkUHJvdG90eXBl
Q2hhaW4uc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+bV9jYWNoZWRQcm90
b3R5cGVDaGFpbi5nZXQoKSk7CisgICAgdHJhbnNpdGlvbi0+bV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5zZXRNYXlCZU51bGwoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3RydWN0dXJlLT5tX2NhY2hl
ZFByb3RvdHlwZUNoYWluLmdldCgpKTsKICAgICB0cmFuc2l0aW9uLT5tX3ByZXZpb3VzLnNldChn
bG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUpOwogICAgIHRyYW5zaXRpb24tPm1fbmFt
ZUluUHJldmlvdXMgPSBwcm9wZXJ0eU5hbWUuaW1wbCgpOwogICAgIHRyYW5zaXRpb24tPm1fYXR0
cmlidXRlc0luUHJldmlvdXMgPSBhdHRyaWJ1dGVzOwotICAgIHRyYW5zaXRpb24tPm1fc3BlY2lm
aWNWYWx1ZUluUHJldmlvdXMuc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHNwZWNpZmljVmFs
dWUpOworICAgIHRyYW5zaXRpb24tPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuc2V0TWF5QmVO
dWxsKGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHNwZWNpZmljVmFsdWUpOwogCiAgICAgaWYgKHN0
cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlKSB7CiAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPm1faXNQ
aW5uZWRQcm9wZXJ0eVRhYmxlKQpAQCAtNzc5LDYgKzc3OSw4IEBAIHZvaWQgU3RydWN0dXJlOjpn
ZXRQcm9wZXJ0eU5hbWVzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lQXJy
YXkmIHByCiAKIHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Cisg
ICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4o
KSk7CiAgICAgSlNDZWxsOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIGlmIChtX3Byb3Rv
dHlwZSkKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJm1fcHJvdG90eXBlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggYTI4NTdlMTZiNDZmYjE2MWU5ZDYy
MjNlNDhlZmJjMjM5YmFlMzEzYS4uMWZhN2Y2OWEyMjhhNmNhZjA3NTUwNjVkNjBmYzA5MmViM2Ez
NjBkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTE2
MCw2ICsxNjAsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEFTU0VSVCghZ2xvYmFs
RGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgcmV0dXJuIG5ldyAoJmdsb2Jh
bERhdGEpIFN0cnVjdHVyZShnbG9iYWxEYXRhKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgVHlwZUluZm8mLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENs
YXNzSW5mbyopOwpAQCAtMTcyLDggKzE3NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoJmdsb2JhbERhdGEpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBzdHJ1Y3R1
cmUpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBj
b25zdCBDbGFzc0luZm8gc19pbmZvOwotCiAgICAgICAgIHR5cGVkZWYgZW51bSB7IAogICAgICAg
ICAgICAgTm9uZURpY3Rpb25hcnlLaW5kID0gMCwKICAgICAgICAgICAgIENhY2hlZERpY3Rpb25h
cnlLaW5kID0gMSwKQEAgLTI3OCw3ICsyNzgsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBp
bmxpbmUgY29uc3QgQ2xhc3NJbmZvKiBKU0NlbGw6OmNsYXNzSW5mbygpIGNvbnN0CiAgICAgewor
I2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQorICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1cmUudW52
YWxpZGF0ZWRHZXQoKS0+Y2xhc3NJbmZvKCk7CisjZWxzZQogICAgICAgICByZXR1cm4gbV9zdHJ1
Y3R1cmUtPmNsYXNzSW5mbygpOworI2VuZGlmCiAgICAgfQogCiAgICAgaW5saW5lIFN0cnVjdHVy
ZSogSlNDZWxsOjpjcmVhdGVEdW1teVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFp
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAK
aW5kZXggMDYyOTUxZGM5ZGIzZDQ2NDY3OWQ4NzU5MzM0MDA3NGY2ZDNhY2ZjOS4uODlhMGVjMGMy
MDY3YjQ2OTZmYTMxZTI2OWI1OTdkN2M2Yjk5YmFmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcApAQCAtNTUsNiArNTUsOCBAQCBTdHJ1
Y3R1cmVDaGFpbjo6flN0cnVjdHVyZUNoYWluKCkKIAogdm9pZCBTdHJ1Y3R1cmVDaGFpbjo6dmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUlu
Zm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIHNpemVfdCBpID0gMDsKICAgICB3
aGlsZSAobV92ZWN0b3JbaV0pCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZtX3ZlY3RvcltpKytd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNo
YWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCmlu
ZGV4IDUwMzIzZmQ0NWFmM2UxZDI4ZDhkM2I4ZGVhYzU1ZWE2ZGMyNDdhZTIuLjRmYzEyMTJiYzdh
MjhlZGExMjdmY2M5MzkzNjBiNDAwMDI5MGZiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaApAQCAtNDcsMTIgKzQ3LDEzIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKIAogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4pLCAwLCAmc19pbmZvKTsgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIENsYXNz
SW5mbyBzX2luZm87CiAKICAgICBwcml2YXRlOgogICAgICAgICBTdHJ1Y3R1cmVDaGFpbihKU0ds
b2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqIGhlYWQpOwogICAgICAgICB+U3RydWN0
dXJlQ2hhaW4oKTsKICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4g
PiBtX3ZlY3RvcjsKLSAgICAgICAgc3RhdGljIENsYXNzSW5mbyBzX2luZm87CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Xcml0ZUJhcnJpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRl
QmFycmllci5oCmluZGV4IDYzNTVkOWQ4NzA5M2FmN2IyZDc2MzkxZTZmMjRlZWY2N2U4NTE1ZGIu
LmM4OTljMGViNTUwZjU4MGM4MzQ3M2ZmYjU0YzcyNzhkYmJiZjE3NTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCkBAIC0zMywxNCArMzMsNTUgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTQ2VsbDsKIGNsYXNzIEpTR2xvYmFsRGF0YTsKK2Ns
YXNzIEpTR2xvYmFsT2JqZWN0OwogCiB0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBXcml0ZUJhcnJp
ZXJCYXNlOwogdGVtcGxhdGU8PiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNlPEpTVmFsdWU+OwogCit2
b2lkIHNsb3dWYWxpZGF0ZUNlbGwoSlNDZWxsKik7Cit2b2lkIHNsb3dWYWxpZGF0ZUNlbGwoSlNH
bG9iYWxPYmplY3QqKTsKKyAgICAKKyNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKK3RlbXBsYXRl
PGNsYXNzIFQ+IHN0YXRpYyBpbmxpbmUgdm9pZCB2YWxpZGF0ZUNlbGwoVCogY2VsbCkKK3sKKyAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNlbGwsICZUOjpzX2luZm8pOworfQorCit0ZW1w
bGF0ZTw+IHN0YXRpYyBpbmxpbmUgdm9pZCB2YWxpZGF0ZUNlbGw8SlNDZWxsPihKU0NlbGwqIGNl
bGwpCit7CisgICAgc2xvd1ZhbGlkYXRlQ2VsbChjZWxsKTsKK30KKwordGVtcGxhdGU8PiBzdGF0
aWMgaW5saW5lIHZvaWQgdmFsaWRhdGVDZWxsPEpTR2xvYmFsT2JqZWN0PihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQoreworICAgIHNsb3dWYWxpZGF0ZUNlbGwoZ2xvYmFsT2JqZWN0KTsK
K30KKyNlbHNlCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdGF0aWMgaW5saW5lIHZvaWQgdmFsaWRhdGVD
ZWxsKFQqKQoreworfQorI2VuZGlmCisKIC8vIFdlIGhhdmUgYSBzZXBhcmF0ZSBiYXNlIGNsYXNz
IHdpdGggbm8gY29uc3RydWN0b3JzIGZvciB1c2UgaW4gVW5pb25zLgogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IGNsYXNzIFdyaXRlQmFycmllckJhc2UgewogcHVibGljOgotICAgIHZvaWQgc2V0KEpT
R2xvYmFsRGF0YSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQorICAgIHZvaWQgc2V0
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUp
CisgICAgeworICAgICAgICBBU1NFUlQodmFsdWUpOworICAgICAgICB2YWxpZGF0ZUNlbGw8VD4o
dmFsdWUpOworICAgICAgICBzZXRFYXJseVZhbHVlKGdsb2JhbERhdGEsIG93bmVyLCB2YWx1ZSk7
CisgICAgfQorCisgICAgdm9pZCBzZXRNYXlCZU51bGwoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1
ZSkKKyAgICAgICAgICAgIHZhbGlkYXRlQ2VsbDxUPih2YWx1ZSk7CisgICAgICAgIHNldEVhcmx5
VmFsdWUoZ2xvYmFsRGF0YSwgb3duZXIsIHZhbHVlKTsKKyAgICB9CisKKyAgICAvLyBTaG91bGQg
b25seSBiZSB1c2VkIGJ5IEpTQ2VsbCBkdXJpbmcgZWFybHkgaW5pdGlhbGlzYXRpb24KKyAgICAv
LyB3aGVuIHNvbWUgYmFzaWMgdHlwZXMgYXJlbid0IHlldCBjb21wbGV0ZWx5IGluc3RhbnRpYXRl
ZAorICAgIHZvaWQgc2V0RWFybHlWYWx1ZShKU0dsb2JhbERhdGEmLCBjb25zdCBKU0NlbGwqIG93
bmVyLCBUKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIHRoaXMtPm1fY2VsbCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8SlNDZWxsKj4odmFsdWUpOwogICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIs
IHRoaXMtPm1fY2VsbCk7CkBAIC01Miw2ICs5Myw4IEBAIHB1YmxpYzoKICAgICAKICAgICBUKiBn
ZXQoKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKG1fY2VsbCkKKyAgICAgICAgICAgIHZhbGlk
YXRlQ2VsbChtX2NlbGwpOwogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4obV9j
ZWxsKTsKICAgICB9CiAKQEAgLTYxLDEyICsxMDQsMTQgQEAgcHVibGljOgogI2lmIEVOQUJMRShK
U0NfWk9NQklFUykKICAgICAgICAgQVNTRVJUKCFpc1pvbWJpZShtX2NlbGwpKTsKICNlbmRpZgor
ICAgICAgICB2YWxpZGF0ZUNlbGw8VD4oc3RhdGljX2Nhc3Q8VCo+KG1fY2VsbCkpOwogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1fY2VsbCk7CiAgICAgfQogCiAgICAgVCogb3BlcmF0
b3ItPigpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9jZWxsKTsKKyAgICAgICAgdmFs
aWRhdGVDZWxsPFQ+KHN0YXRpY19jYXN0PFQqPihtX2NlbGwpKTsKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFQqPihtX2NlbGwpOwogICAgIH0KIApAQCAtODcsNiArMTMyLDEwIEBAIHB1Ymxp
YzoKICNlbmRpZgogICAgIH0KIAorI2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQorICAgIFQqIHVu
dmFsaWRhdGVkR2V0KCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4obV9jZWxs
KTsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgSlNDZWxsKiBtX2NlbGw7CiB9OwpAQCAtMTUx
LDYgKzIwMCwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICB0aGlzLT5zZXQoZ2xvYmFsRGF0
YSwgb3duZXIsIHZhbHVlKTsKICAgICB9CisKKyAgICBlbnVtIE1heUJlTnVsbFRhZyB7IE1heUJl
TnVsbCB9OworICAgIFdyaXRlQmFycmllcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0
IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlLCBNYXlCZU51bGxUYWcpCisgICAgeworICAgICAgICB0
aGlzLT5zZXRNYXlCZU51bGwoZ2xvYmFsRGF0YSwgb3duZXIsIHZhbHVlKTsKKyAgICB9CiB9Owog
CiB0ZW1wbGF0ZSA8PiBjbGFzcyBXcml0ZUJhcnJpZXI8VW5rbm93bj4gOiBwdWJsaWMgV3JpdGVC
YXJyaWVyQmFzZTxVbmtub3duPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXNzZXJ0aW9ucy5o
CmluZGV4IDg2MjE1OGI0NGE3NjMwMzgwNjU3NDg1OTliODE4YjkzODQ0N2ZkNTguLjEzNmQ1YmM4
MTU4MzlmMTMwNDU3YTEyZjQ5YjMxMGJkOGFiNjA1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvQXNzZXJ0aW9ucy5oCkBAIC0zNzksNCArMzc5LDIzIEBAIHdoaWxlICgwKQogI2RlZmluZSBM
T0dfVkVSQk9TRShjaGFubmVsLCAuLi4pIFdURkxvZ1ZlcmJvc2UoX19GSUxFX18sIF9fTElORV9f
LCBXVEZfUFJFVFRZX0ZVTkNUSU9OLCAmSk9JTl9MT0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0df
Q0hBTk5FTF9QUkVGSVgsIGNoYW5uZWwpLCBfX1ZBX0FSR1NfXykKICNlbmRpZgogCisjaWYgRU5B
QkxFKEdDX1ZBTElEQVRJT04pCisjZGVmaW5lIEFTU0VSVF9HQ19PQkpFQ1RfTE9PS1NfVkFMSUQo
Y2VsbCkgZG8geyBcCisgICAgaWYgKCEoY2VsbCkpXAorICAgICAgICBDUkFTSCgpO1wKKyAgICBp
ZiAoY2VsbC0+dW52YWxpZGF0ZWRTdHJ1Y3R1cmUoKS0+dW52YWxpZGF0ZWRTdHJ1Y3R1cmUoKSAh
PSBjZWxsLT51bnZhbGlkYXRlZFN0cnVjdHVyZSgpLT51bnZhbGlkYXRlZFN0cnVjdHVyZSgpLT51
bnZhbGlkYXRlZFN0cnVjdHVyZSgpKVwKKyAgICAgICAgQ1JBU0goKTtcCit9IHdoaWxlICgwKQor
CisjZGVmaW5lIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBjbGFzc0luZm8pIGRv
IHtcCisgICAgQVNTRVJUX0dDX09CSkVDVF9MT09LU19WQUxJRChvYmplY3QpOyBcCisgICAgaWYg
KCFvYmplY3QtPmluaGVyaXRzKGNsYXNzSW5mbykpIFwKKyAgICAgICAgQ1JBU0goKTtcCit9IHdo
aWxlICgwKQorCisjZWxzZQorI2RlZmluZSBBU1NFUlRfR0NfT0JKRUNUX0xPT0tTX1ZBTElEKGNl
bGwpIGRvIHsgKHZvaWQpY2VsbDsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhvYmplY3QsIGNsYXNzSW5mbykgZG8geyAodm9pZClvYmplY3Q7ICh2b2lkKWNs
YXNzSW5mbzsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCiAjZW5kaWYgLyogV1RGX0Fzc2VydGlvbnNf
aCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDAxMDc3NDY2M2U5NzZhZTM4YzgzNmE0MDlmNDEwNzU0ZTQ2NDNl
ZmYuLmZkNTZkZTk5NzllNWZmOWI0ODk1NjIzNGZhNTU2M2E5ZGQ4ZDRhYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3MSBAQAorMjAxMS0wNS0xMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1h
a2UgR0MgdmFsaWRhdGlvbiBtb3JlIGFnZ3Jlc3NpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwODAyCisKKyAgICAgICAgVGhpcyBtYWtlcyBHQ19W
QUxJREFUSU9OIG11Y2ggbW9yZSBhZ2dyZXNzaXZlIGluIHdlYmNvcmUsCisgICAgICAgIGFkZGlu
ZyBsb2dpYyB0byBldmVyeSB2aXNpdENoaWxkcmVuIG1ldGhvZCB0byBlbnN1cmUgdGhhdAorICAg
ICAgICB0aGUgc3RydWN0dXJlIHN0aWxsIGhhcyBjb3JyZWN0IGZsYWdzLgorCisgICAgICAgIEFk
ZGl0aW9uYWxseSBldmVyeSBmdW5jdGlvbiBnZW5lcmF0ZWQgZm9yIHRoZSBkb20gYmluZGluZ3MK
KyAgICAgICAgbWFrZXMgdXNlIG9mIHRoZSBuZXcgR0NfVkFMSURBVElPTiBvYmplY3QgYXNzZXJ0
aW9ucyB0byBmdXJ0aGVyCisgICAgICAgIGVuc3VyZSB0aGF0IHRoZSBvYmplY3QgYXBwZWFycyB0
byBiZSBzZW5zaWJsZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0F0dHI6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
QXVkaW9Db250ZXh0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NT
U1J1bGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NSdWxlOjp2aXNpdENoaWxk
cmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjp2aXNpdENoaWxk
cmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp2aXNp
dENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6c2V0SW5qZWN0ZWRTY3JpcHQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hl
bGw6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5l
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OmpzRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0phdmFTY3JpcHRBdWRpb05vZGU6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNz
YWdlQ2hhbm5lbDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VQb3J0Ojp2aXNp
dENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU05hbWVkTm9kZU1hcDo6dmlzaXRDaGlsZHJlbik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTTm9kZTo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZUZpbHRlcjo6dmlzaXRDaGls
ZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNOb2RlSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTU1ZHRWxlbWVudEluc3RhbmNlOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1NoYXJlZFdvcmtlcjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU3R5bGVTaGVldDo6
dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVHJlZVdhbGtlcjo6dmlzaXRDaGlsZHJlbik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW4p
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRleHQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNYTUxIdHRwUmVxdWVzdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hQYXRoUmVz
dWx0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbToKKwogMjAxMS0wNS0xMiAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAKaW5kZXggMWNkMzM1OTA5MzMzNmFjMTRlYWU1
YTQ0ZmM1YTRjMjUwYzdlYmFlNi4uNDQ5YTVjZTEyNzc5ZmQ2ODYzMGUzNmUzMDVjMGNjMTg5MWZi
YTcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCkBA
IC00MSw2ICs0MSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHZvaWQgSlNBdHRy
Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0
dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVu
V2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCku
b3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0
b3IpOwogCiAgICAgRWxlbWVudCogZWxlbWVudCA9IGltcGwoKS0+b3duZXJFbGVtZW50KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHAKaW5kZXggODNhMGMzOWYwOGQ5ODlmMGNiNWRhNzBkZWNiMmFmNTQxM2NhZTBmOC4uMmJjMjAw
Zjk0YTVjODExNzNmODc5MDNmNmNhZmYyYzdiNjFlMTFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcApAQCAtNDEsNiArNDEs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNBdWRpb0NvbnRleHQ6OnZpc2l0Q2hp
bGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAm
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0
dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNW
aXNpdENoaWxkcmVuKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAgICAg
bV9pbXBsLT52aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCA0MGU0MTIxYjI1NzEx
YWM4OTYyNjk5YjRmM2ZlZGFhNmY3MTU3ZDBkLi4xNTViYTZlM2NjNTE1ZDRlZDk1ZWExOWZiNDQy
OTM0ZGUwMjI1YzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1J1bGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVs
ZUN1c3RvbS5jcHAKQEAgLTUwLDYgKzUwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lk
IEpTQ1NTUnVsZTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNT
RVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50
eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGls
ZHJlbih2aXNpdG9yKTsKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdChpbXBsKCkpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNs
YXJhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxl
RGVjbGFyYXRpb25DdXN0b20uY3BwCmluZGV4IDg0YjU5ZGJjZDkyOGI1MThmMTk1YWIxMWZhZGIw
ODQxY2VjNjZiYjYuLjA3MjAzM2U2NDM3M2M0OGU5MzRkMzQxMzhlNDZjMTY1M2IyMjZjNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlv
bkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURl
Y2xhcmF0aW9uQ3VzdG9tLmNwcApAQCAtNDYsNiArNDYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHZvaWQgSlNDU1NTdHlsZURlY2xhcmF0aW9uOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5m
byk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENo
aWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBB
U1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsK
ICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIHZpc2l0b3IuYWRkT3BhcXVl
Um9vdChyb290KGltcGwoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNTM1
MDZlNTZmM2YwNDJkY2YxNzVhNjNiNjUxNjg0NjY5ODkxNWExMS4uYWQ2NDZhMDUzMjgyNzI1YmEw
OTJjNTgyMzIxNmY3ZjA1ZDlmYzQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC00
MSw2ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VS
VChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlw
ZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRy
ZW4odmlzaXRvcik7CiAKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdChpbXBsKCktPmNh
bnZhcygpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5jcHAKaW5kZXggMzI4MGE2MmVjMGJiZjNjN2EzNzdmNWZkZGI2NGM5ZmM4ZDI2OWUxZS4u
NGRhZmE2OGUwNDU2YWVhNjdmZTI2ZWQxZmJjMTBmMWJiZjQ2Y2M0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtNTIsNiArNTIs
OSBAQCBKU0RPTUdsb2JhbE9iamVjdDo6SlNET01HbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdAogCiB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0Ojp2
aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJl
RmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0
aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3Ip
OwogCiAgICAgSlNET01TdHJ1Y3R1cmVNYXA6Oml0ZXJhdG9yIGVuZCA9IHN0cnVjdHVyZXMoKS5l
bmQoKTsKQEAgLTc4LDcgKzgxLDcgQEAgRXZlbnQqIEpTRE9NR2xvYmFsT2JqZWN0OjpjdXJyZW50
RXZlbnQoKSBjb25zdAogCiB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjpzZXRJbmplY3RlZFNjcmlw
dChKU09iamVjdCogaW5qZWN0ZWRTY3JpcHQpCiB7Ci0gICAgbV9pbmplY3RlZFNjcmlwdC5zZXQo
Z2xvYmFsRGF0YSgpLCB0aGlzLCBpbmplY3RlZFNjcmlwdCk7CisgICAgbV9pbmplY3RlZFNjcmlw
dC5zZXRNYXlCZU51bGwoZ2xvYmFsRGF0YSgpLCB0aGlzLCBpbmplY3RlZFNjcmlwdCk7CiB9CiAK
IEpTT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6aW5qZWN0ZWRTY3JpcHQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4
IGZjYmNhNmFiN2UxZmJlZDFiYmI1ZGIzMmU1NWM4MmFkNjkyNmVjZjIuLmFhN2IwMzgyYmZjNGEx
NTYxOWZlN2Y5NzY3ZTI3MGYxMTQ4MDRlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTc0LDYgKzc0LDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB2b2lkIEpTRE9NV2luZG93Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5m
byk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENo
aWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBB
U1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsK
ICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAgICAgaW1wbCgpLT52aXNpdEpT
RXZlbnRMaXN0ZW5lcnModmlzaXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4IGE5ODYxNDQxZTgzNjUzYzc4ZjRkYTMwNDFlMzEx
NzhhOTQzZGNkNTEuLmJmOTg1ODNjMmQyZWU0ZGYxMjExNTc0YTQ0MDNlODM3ZDMzOWY5NGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBA
IC03NSw2ICs3NSw5IEBAIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KFBhc3NSZWZQ
dHI8RE9NV2luZG93PiBkb21XaW5kb3cpCiAKIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6dmlzaXRD
aGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdz
ICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRT
ZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAg
ICBpZiAobV93aW5kb3cpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZtX3dpbmRvdyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCA1YTdk
NzI1NDFmMTliNTQwMDdlNmNiOThlMzMzNGMyYTExMzlmMmE5Li5iNjIxNDVjMDdkMmRkZTg1YzVi
ZjcyMGI3MTIyNDUxYWVjNWI0NDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgSlNFdmVudExpc3RlbmVyOjpK
U0V2ZW50TGlzdGVuZXIoSlNPYmplY3QqIGZ1bmN0aW9uLCBKU09iamVjdCogd3JhcHBlciwgYm9v
bCBpc0EKICAgICAsIG1faXNvbGF0ZWRXb3JsZChpc29sYXRlZFdvcmxkKQogewogICAgIGlmICh3
cmFwcGVyKQotICAgICAgICBtX2pzRnVuY3Rpb24uc2V0KCptX2lzb2xhdGVkV29ybGQtPmdsb2Jh
bERhdGEoKSwgd3JhcHBlciwgZnVuY3Rpb24pOworICAgICAgICBtX2pzRnVuY3Rpb24uc2V0TWF5
QmVOdWxsKCptX2lzb2xhdGVkV29ybGQtPmdsb2JhbERhdGEoKSwgd3JhcHBlciwgZnVuY3Rpb24p
OwogICAgIGVsc2UKICAgICAgICAgQVNTRVJUKCFmdW5jdGlvbik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKaW5kZXggMTU5MDE2ODI3ZGMwZmY3NjZj
ODhhNDRhZTdmN2ZmMzE0YmM0YTI4OC4uNzE5N2Y3YmNmYmZhNTVjNDFmNmEzNDUxOGUwMDBjMDRl
N2UyMDQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmgKQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGlubGluZSBKU0M6
OkpTT2JqZWN0KiBKU0V2ZW50TGlzdGVuZXI6OmpzRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmICgh
bV9qc0Z1bmN0aW9uKQotICAgICAgICAgICAgbV9qc0Z1bmN0aW9uLnNldCgqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+Z2xvYmFsRGF0YSgpLCBtX3dyYXBwZXIuZ2V0KCksIGluaXRpYWxpemVKU0Z1
bmN0aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKKyAgICAgICAgICAgIG1fanNGdW5jdGlv
bi5zZXRNYXlCZU51bGwoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmdsb2JhbERhdGEoKSwgbV93
cmFwcGVyLmdldCgpLCBpbml0aWFsaXplSlNGdW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0
KSk7CiAKICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgd2UgaGF2ZSBhIHZhbGlkIHdyYXBwZXIgcHJv
dGVjdGluZyBvdXIgZnVuY3Rpb24gZnJvbQogICAgICAgICAvLyBnYXJiYWdlIGNvbGxlY3Rpb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRp
b05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNKYXZhU2NyaXB0
QXVkaW9Ob2RlQ3VzdG9tLmNwcAppbmRleCA2NTY5MjVkMTM5ZmRiNTUyNmFlODlkMTc3MDJiMDdm
N2RiZTllYTVjLi5lYmMyM2IzNmNkM2U0NzU0NjM3ZTQyM2U3YjZjZTZhMDI0OTcxMDNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1
ZGlvTm9kZUN1c3RvbS5jcHAKQEAgLTM2LDYgKzM2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB2b2lkIEpTSmF2YVNjcmlwdEF1ZGlvTm9kZTo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYg
dmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8p
OworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNT
RVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAg
ICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAgICBzdGF0aWNfY2FzdDxKYXZhU2Ny
aXB0QXVkaW9Ob2RlKj4oaW1wbCgpKS0+dmlzaXRKU0V2ZW50TGlzdGVuZXJzKHZpc2l0b3IpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5l
bEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVs
Q3VzdG9tLmNwcAppbmRleCA2ZThhYTFhNzU3MTQ3N2FlZTI0ZGJmMjc1NTAzNjYwZDIyNzE3YWMw
Li4zNGY1OTMxMzM1ZmQ3YThiZTczMzJhZjRiYzk0Y2M3NjlhZDAyY2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcApA
QCAtMzUsNiArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB2b2lkIEpTTWVzc2Fn
ZUNoYW5uZWw6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VS
VChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlw
ZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRy
ZW4odmlzaXRvcik7CiAKICAgICBpZiAoTWVzc2FnZVBvcnQqIHBvcnQgPSBtX2ltcGwtPnBvcnQx
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0
b20uY3BwCmluZGV4IDFiZWE0ZjdiOTFmNGMzODgzZGY0MWYwMGE4MmZlNjliODVmMDFmN2MuLmQz
NDhlMTBmMzFkNzQyMzY3ODZhMjQ1MmUyMzIwMjExMmQ4ODY5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCkBAIC00Myw2ICs0
Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU01lc3NhZ2VQb3J0Ojp2aXNpdENo
aWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3Mg
JiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNl
dHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAg
ICAgLy8gSWYgd2UgaGF2ZSBhIGxvY2FsbHkgZW50YW5nbGVkIHBvcnQsIHdlIGNhbiBkaXJlY3Rs
eSBtYXJrIGl0IGFzIHJlYWNoYWJsZS4gUG9ydHMgdGhhdCBhcmUgcmVtb3RlbHkgZW50YW5nbGVk
IGFyZSBtYXJrZWQgaW4tdXNlIGJ5IG1hcmtBY3RpdmVPYmplY3RzRm9yQ29udGV4dCgpLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
CmluZGV4IDFhMzZlMzMzOTk4NjNkOGRjNDk1NmZlNTQ2MmFjMzJiZDFiODAyOTkuLjQ3ZjU2YTI5
ZWY0NGFjYzAxMGY1NzQ5Mjg3MWM2YTBjYWVkNzA4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTQ4LDYgKzQ4LDkg
QEAgSlNWYWx1ZSBKU05hbWVkTm9kZU1hcDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW4KIAogdm9pZCBKU05hbWVkTm9kZU1hcDo6dmlzaXRD
aGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdz
ICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRT
ZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKIAog
ICAgIC8vIFdlIG5lZWQgdG8ga2VlcCB0aGUgd3JhcHBlciBmb3Igb3VyIHVuZGVybHlpbmcgTmFt
ZWROb2RlTWFwJ3MgZWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5jcHAKaW5kZXggNDNmNGY2NmE4MGIzMTMzMTQ3NWM4YWU4ZTY3OGViZDQ1ZTBkZGUxOS4u
NTFlM2JiODZhYWVlMzJiNWYyMTY1OWJlMTM3YzgyYTQ0MzJmZGYxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xOTQsNiArMTk0LDkgQEAgU2Nv
cGVDaGFpbk5vZGUqIEpTTm9kZTo6cHVzaEV2ZW50SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSosIFNj
b3BlQ2hhaW5Ob2RlKiBub2RlKQogCiB2b2lkIEpTTm9kZTo6dmlzaXRDaGlsZHJlbihTbG90Vmlz
aXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZz
X2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7Cisg
ICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4o
KSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIE5vZGUqIG5vZGUg
PSBtX2ltcGwuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
RmlsdGVyQ3VzdG9tLmNwcAppbmRleCAxZmNmNDg3MGNkZTAzMmNjMTY2MTUwNzg4N2ZmMDIxMTFj
Y2QzYzYzLi5jMTUxYzU0YzRhMDJhOTRmNWIyMmQ0M2FhNjZhMmU0MThmZTMyMTQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKQEAg
LTM4LDYgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpTTm9kZUZpbHRlcjo6
dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVy
ZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldp
dGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9y
KTsKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoaW1wbCgpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcAppbmRleCA2ODJl
OTEzMzE1MjdjMWRmMGI0MDY0M2NjNTVmNmFmODc1N2M5YWE1Li4wMmQxMDhkMjRmNWRmYWFlMDkz
YTFkZWNjYTViMjc2YzcxMzg4YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCkBAIC0zMSw2ICszMSw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdm9pZCBKU05vZGVJdGVyYXRvcjo6dmlzaXRDaGlsZHJlbihTbG90Vmlz
aXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZz
X2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7Cisg
ICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4o
KSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIGlmIChOb2RlRmls
dGVyKiBmaWx0ZXIgPSBtX2ltcGwtPmZpbHRlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCmluZGV4IGIz
YmVlYjVhN2EwNzdjYmY1MWJjM2YzOTY3NmI2YTQwYzUzNTUyMTUuLjQxYTg0ZjY4YTFkNzliMWQ2
Zjg5NjAyMjM0NzRiNDU4MWRlY2U2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKQEAgLTM1LDYgKzM1
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpTU1ZHRWxlbWVudEluc3RhbmNlOjp2
aXNpdENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1
Y3R1cmVGbGFncyAmIEpTQzo6T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBl
SW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJl
bih2aXNpdG9yKTsKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdChpbXBsKCktPmNvcnJl
c3BvbmRpbmdFbGVtZW50KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcAppbmRleCAzMDIzYmIyNmNiMWUwODAyNmRhYzlk
NmY3ZmYxNjg4OTU4Zjk2MWNmLi5kMmJiZjZjZWM0ZDdmNGUxOGQ0MWI4YjQ2MGRiMWJmNmEyMTQ5
Mzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtl
ckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3Jr
ZXJDdXN0b20uY3BwCkBAIC00NSw2ICs0NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9p
ZCBKU1NoYXJlZFdvcmtlcjo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJ
TEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVy
ZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlz
aXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIGlmIChNZXNzYWdlUG9ydCogcG9ydCA9IGltcGwo
KS0+cG9ydCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHls
ZVNoZWV0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVl
dEN1c3RvbS5jcHAKaW5kZXggNDBiNzE5NzM2ZmZlZGQyYjQ0ZDZiNDc4YmZlYzZiMGUxNDBlMzNh
YS4uMjFlMDBiMTY4YzIyNTQxMTgxMTRkMmE0OTFlMWU0ZTIwNTExYzZlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCkBAIC0zNyw2
ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU1N0eWxlU2hlZXQ6OnZpc2l0
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFn
cyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0
U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlk
ZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAg
ICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoaW1wbCgpKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcAppbmRleCA2OWY2YzNi
ZDYzZjk5MDM3MDM1ZjZhYTJhNDdiODk0YzQ3MzkxZWRiLi5kZmYzNDY5Y2UyOTgwNzQ2YTUyMzFl
NWQxMzYzOTc0NTBiZmMyNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKQEAgLTMxLDYgKzMxLDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIAogdm9pZCBKU1RyZWVXYWxrZXI6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZv
KTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFT
U0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwog
ICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAKICAgICBpZiAoTm9kZUZpbHRlciog
ZmlsdGVyID0gbV9pbXBsLT5maWx0ZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA1
ZWZjNjFhYjVmN2Q1ZmQ5YWEzMjk5ODQ1MjYyOTk2YWU3NTNlMjUzLi5kNGE3MDJmNzcxOWQ2NWFk
YzE1ZWNhMWQwNGYwOTZhZWIzMTI5OGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0x
OTQsNiArMTk0LDkgQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW4KIAogdm9pZCBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVf
QVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgp
LT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRD
aGlsZHJlbih2aXNpdG9yKTsKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoaW1wbCgpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0
b20uY3BwCmluZGV4IGNlMzBkNDRjNTNkYzljMjI0M2MwY2M4ZjVmMmQyNmIwZWY2YjMwNzguLjA1
OGFjZjc2ZGE3MDJmZmM4ZDkwMGM5MGM1ZDlmYmFhNmI4MzVjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcApAQCAtNTUs
NiArNTUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNXb3JrZXJDb250ZXh0Ojp2
aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJl
RmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0
aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3Ip
OwogCiAgICAgaWYgKFdvcmtlckxvY2F0aW9uKiBsb2NhdGlvbiA9IGltcGwoKS0+b3B0aW9uYWxM
b2NhdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCA5MDBjNzlhMzU5MjU2OWEyMGFjMzUzMzVjOWMzZWUx
NDY5ZTIyMmZmLi4yNTc1NzU2NjY2ZGZlNjBlN2EzZDI0ZGE3YTA5MWVhMDMzYjkxYmQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcApAQCAtNTYsNiArNTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNY
TUxIdHRwUmVxdWVzdDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVf
QVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgp
LT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRD
aGlsZHJlbih2aXNpdG9yKTsKIAogICAgIGlmIChYTUxIdHRwUmVxdWVzdFVwbG9hZCogdXBsb2Fk
ID0gbV9pbXBsLT5vcHRpb25hbFVwbG9hZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAppbmRleCAzYjgzZWU3YmI4MTljMjdhMzAz
YTdmMWYxMjk4YjJiZDE1NzY2MWRkLi5hZDkwMDVmZjgyNWYyN2ZkNDllYmYxNDNjYzdmYzJkNjBh
YjYwYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcApAQCAtMzgsNiArMzgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZv
aWQgSlNYUGF0aFJlc3VsdDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJ
TEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVy
ZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlz
aXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIGNvbnN0IFhQYXRoOjpWYWx1ZSYgeHBhdGhWYWx1
ZSA9IGltcGwoKS0+dmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggOTJhZTVmOTFlZDNhMDc4NDk3OGIxNjVhMzcy
YTY4ZTIzZDg2ODBjNy4uNzRjOGQzOGQyYjczZTE4ZjM1ODExOTlkNzUwNDExNzcwMzczZWRkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KQEAgLTkwNywxMCArOTA3LDEyIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3Qi
fSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVy
dHlTbG90In0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUg
Ym9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
JiBzbG90KVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ7XG4iKTsKKyAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXMsICZzX2luZm8pO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIEdlbmVyYXRl
R2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NO
YW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAxKSk7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JCb2R5KCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NO
YW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDEpKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIn1cblxuIik7CiAgICAgfQpAQCAtMTQ1Miw2ICsxNDU0LDkgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICBpZiAoJG5lZWRzTWFya0NoaWxkcmVuICYmICEkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21NYXJrRnVuY3Rpb24ifSkgewogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpcywgJnNfaW5mbyk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQ09N
UElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVy
cmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTtcbiIpOworICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbigpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGltcGwoKS0+dmlzaXRKU0V2ZW50TGlzdGVuZXJzKHZpc2l0b3IpO1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKQEAgLTE0ODQsMTAgKzE0ODks
MTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgaWYgKCEkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QifSAmJiAhJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90In0p
IHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5v
ZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJp
YnV0ZXMgPiAwLCAwKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5
RGVzY3JpcHRvckJvZHkoJGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGlt
cGxDbGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICB9CkBAIC0xNDk2LDYgKzE1MDMsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICYmICEkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9KSB7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChwcm9wZXJ0eU5hbWUgPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGlt
cGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0VmFsdWUoZ2V0QnlJbmRl
eChleGVjLCBwcm9wZXJ0eU5hbWUpKTtcbiIpOwpAQCAtMTY0Nyw2ICsxNjU1LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHV0RnVuY3Rpb24ifSkgewogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7CiAgICAgICAgICAgICAgICAgaWYg
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn0p
IHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYm9vbCBvaztc
biIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB1bnNpZ25l
ZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJbnQzMihvayk7XG4iKTsKQEAgLTE2NzEsNiArMTY4
MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBpZiAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkgewogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSlcbiIp
OwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzLCAmc19pbmZvKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGluZGV4U2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpO1xuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuO1xuIik7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwpAQCAtMTgyNSw2ICsxODM1LDcgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBpZiAoKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldFByb3BlcnR5TmFtZXMifSkgewogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0
aW9uTW9kZSBtb2RlKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpcywgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgewogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PCR7aW1w
bENsYXNzTmFtZX0qPihpbXBsKCkpLT5sZW5ndGgoKTsgKytpKVxuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6
ZnJvbShleGVjLCBpKSk7XG4iKTsKQEAgLTE4NzUsNiArMTg4Niw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJGNsYXNzTmFtZSogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0
PCRjbGFzc05hbWUqPihhc09iamVjdCh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyhjYXN0ZWRUaGlzLCAmJHtjbGFzc05hbWV9OjpzX2luZm8pO1xuIik7CiAKICAgICAgICAg
ICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja0RvbWFpblNlY3Vy
aXR5In0gJiYgCiAgICAgICAgICAgICAgICAgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5In0pIHsKQEAgLTIxMDYsNiAr
MjExOCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiXG5KU1ZhbHVlICR7Y2xhc3NOYW1lfTo6aW5kZXhHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCB1bnNpZ25lZCBpbmRleClcbiIpOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
e2NsYXNzTmFtZX0qIHRoaXNPYmogPSBzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qo
c2xvdEJhc2UpKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosICZzX2luZm8pO1xuIik7CiAgICAgICAgIGlmIChJ
bmRleEdldHRlclJldHVybnNTdHJpbmdzKCRpbXBsQ2xhc3NOYW1lKSkgewogICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siS1VSTC5oIn0gPSAxOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+aXRl
bShpbmRleCkpO1xuIik7CkBAIC0yMTIyLDYgKzIxMzUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1l
cmljSW5kZXhHZXR0ZXIifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuSlNWYWx1
ZSAke2NsYXNzTmFtZX06OmdldEJ5SW5kZXgoRXhlY1N0YXRlKiwgdW5zaWduZWQgaW5kZXgpXG4i
KTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4ganNOdW1iZXIoc3Rh
dGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBsKCkpLT5pdGVtKGluZGV4KSk7XG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICBpZiAoJGludGVyZmFj
ZU5hbWUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEFsbENv
bGxlY3Rpb24iKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzZiZmFiNmI2NjhiMDI5MWU3N2U2ZmUzYzAzZjdj
NTRiOTQ1M2UyOC4uZTdhMTY2YjYwMzVlOTM0YjY0YzYzNzI5NmJkOTMzMDg0NTJmNmRmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTA1LTEzICBPbGl2ZXIgSHVudCAgPG9saXZl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBHQyB2YWxpZGF0aW9uIG1vcmUgYWdncmVzc2l2ZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4MDIKKworICAgICAgICBBZGQgR0Nf
VkFMSURBVElPTiBjYWxscyB0byBhbGwgdGhlIEpTTlBPYmplY3QgbWV0aG9kcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SlNOUE9iamVjdDo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBP
YmplY3Q6OmNhbGxNZXRob2QpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpjYWxsT2Jq
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Y2FsbENvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0Q2FsbERhdGEpOgorICAgICAgICAoV2ViS2l0
OjpKU05QT2JqZWN0OjpnZXRDb25zdHJ1Y3REYXRhKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6
cHV0KToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6
CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKToKKyAgICAgICAg
KFdlYktpdDo6SlNOUE9iamVjdDo6bWV0aG9kR2V0dGVyKToKKwogMjAxMS0wNS0xMiAgSmVzc2ll
IEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IGYyM2M4M2RkNDIyNDAxYWVjYjUzMTRmNzMw
ZjJkN2Q3ZWE4OTk0ZmEuLmRkODc0OWNiYzZjODY4NDQ1OWJlNDQyYzA5MzEzZWVmZDEzYzQ3YWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTcyLDYgKzcyLDcgQEAgSlNOUE9iamVjdDo6fkpTTlBP
YmplY3QoKQogdm9pZCBKU05QT2JqZWN0OjppbnZhbGlkYXRlKCkKIHsKICAgICBBU1NFUlQobV9u
cE9iamVjdCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsK
IAogICAgIHJlbGVhc2VOUE9iamVjdChtX25wT2JqZWN0KTsKICAgICBtX25wT2JqZWN0ID0gMDsK
QEAgLTc5LDYgKzgwLDcgQEAgdm9pZCBKU05QT2JqZWN0OjppbnZhbGlkYXRlKCkKIAogSlNWYWx1
ZSBKU05QT2JqZWN0OjpjYWxsTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgTlBJZGVudGlmaWVyIG1l
dGhvZE5hbWUpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZv
KTsKICAgICBpZiAoIW1fbnBPYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd0ludmFsaWRBY2Nl
c3NFcnJvcihleGVjKTsKIApAQCAtMTE4LDYgKzEyMCw3IEBAIEpTVmFsdWUgSlNOUE9iamVjdDo6
Y2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIE5QSWRlbnRpZmllciBtZXRob2ROYW1lKQogCiBK
U0M6OkpTVmFsdWUgSlNOUE9iamVjdDo6Y2FsbE9iamVjdChKU0M6OkV4ZWNTdGF0ZSogZXhlYykK
IHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwogICAgIGlm
ICghbV9ucE9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4
ZWMpOwogCkBAIC0xNTcsNiArMTYwLDcgQEAgSlNDOjpKU1ZhbHVlIEpTTlBPYmplY3Q6OmNhbGxP
YmplY3QoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAKIEpTVmFsdWUgSlNOUE9iamVjdDo6Y2FsbENv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXMsICZzX2luZm8pOwogICAgIGlmICghbV9ucE9iamVjdCkKICAgICAgICAgcmV0dXJu
IHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogCkBAIC0yMDAsNiArMjA0LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE5QSlNPYmplY3QoRXhlY1N0YXRl
KiBleGVjKQogCiBKU0M6OkNhbGxUeXBlIEpTTlBPYmplY3Q6OmdldENhbGxEYXRhKEpTQzo6Q2Fs
bERhdGEmIGNhbGxEYXRhKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywg
JnNfaW5mbyk7CiAgICAgaWYgKCFtX25wT2JqZWN0IHx8ICFtX25wT2JqZWN0LT5fY2xhc3MtPmlu
dm9rZURlZmF1bHQpCiAgICAgICAgIHJldHVybiBDYWxsVHlwZU5vbmU7CiAKQEAgLTIxNyw2ICsy
MjIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRo
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogCiBDb25zdHJ1Y3RUeXBlIEpTTlBPYmplY3Q6
OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKIHsKKyAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwogICAgIGlmICghbV9ucE9i
amVjdCB8fCAhbV9ucE9iamVjdC0+X2NsYXNzLT5jb25zdHJ1Y3QpCiAgICAgICAgIHJldHVybiBD
b25zdHJ1Y3RUeXBlTm9uZTsKIApAQCAtMjI2LDYgKzIzMiw3IEBAIENvbnN0cnVjdFR5cGUgSlNO
UE9iamVjdDo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQog
CiBib29sIEpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CiAgICAgaWYgKCFtX25w
T2JqZWN0KSB7CiAgICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yNTAsNiArMjU3LDcgQEAgYm9vbCBKU05QT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU4KIAogYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZz
X2luZm8pOwogICAgIGlmICghbV9ucE9iamVjdCkgewogICAgICAgICB0aHJvd0ludmFsaWRBY2Nl
c3NFcnJvcihleGVjKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjc4LDYgKzI4Niw3IEBA
IGJvb2wgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvCiAKIHZvaWQgSlNOUE9iamVjdDo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywg
JnNfaW5mbyk7CiAgICAgaWYgKCFtX25wT2JqZWN0KSB7CiAgICAgICAgIHRocm93SW52YWxpZEFj
Y2Vzc0Vycm9yKGV4ZWMpOwogICAgICAgICByZXR1cm47CkBAIC0zMTUsNiArMzI0LDcgQEAgdm9p
ZCBKU05QT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmEKIAogdm9pZCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZUFycmF5
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXMsICZzX2luZm8pOwogICAgIGlmICghbV9ucE9iamVjdCkgewogICAgICAgICB0aHJvd0lu
dmFsaWRBY2Nlc3NFcnJvcihleGVjKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzYyLDcgKzM3Miw4
IEBAIHZvaWQgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0CiBKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQogewogICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBzdGF0aWNfY2Fz
dDxKU05QT2JqZWN0Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKLQorICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iaiwgJnNfaW5mbyk7CisgICAgCiAgICAgaWYgKCF0aGlzT2JqLT5t
X25wT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7
CiAKQEAgLTM5Nyw2ICs0MDgsNyBAQCBKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbgogSlNWYWx1ZSBK
U05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBjb25zdCBJZGVudGlmaWVyJiBtZXRob2ROYW1lKQogewogICAgIEpTTlBPYmplY3QqIHRoaXNP
YmogPSBzdGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosICZzX2luZm8pOwogICAgIAogICAgIGlm
ICghdGhpc09iai0+bV9ucE9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93SW52YWxpZEFjY2Vz
c0Vycm9yKGV4ZWMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93524</attachid>
            <date>2011-05-13 15:31:53 -0700</date>
            <delta_ts>2011-05-14 01:05:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60802-20110513153152.patch</filename>
            <type>text/plain</type>
            <size>77056</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYzNzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDAx
ZDViNzJmNDJiM2E0ODg3ZTk1ZTE1NWRkNzRjZDYyOWZmN2E4YmIuLjA5ODNjMzA4OTJmODFkOGJi
ZWE1YWE1M2EyNzBmZTRiMzk4MjI4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk0IEBACisyMDExLTA1LTEzICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBHQyB2
YWxpZGF0aW9uIG1vcmUgYWdncmVzc2l2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjA4MDIKKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBj
aGVja3MgcGVyZm9ybWVkIHVuZGVyIEdDX1ZBTElEQVRJT04KKyAgICAgICAgbXVjaCBtb3JlIGFn
Z3Jlc3NpdmUsIGFuZCBhZGRzIHRoZSBjaGVja3MgdG8gbW9yZSBwbGFjZXMKKyAgICAgICAgaW4g
b3JkZXIgdG8gYWxsb3cgdXMgdG8gY2F0Y2ggR0MgYnVncyBtdWNoIGNsb3NlciB0byB0aGUKKyAg
ICAgICAgcG9pbnQgb2YgZmFpbHVyZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRl
YnVnZ2VyQWN0aXZhdGlvbjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogaGVhcC9NYXJrZWRC
bG9jay5jcHA6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayk6CisgICAg
ICAgICogaGVhcC9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMu
Y3BwOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAq
IHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjp2
aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6UHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hp
bGRyZW4pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4p
OgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvR2V0
dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyOjp2aXNpdENoaWxkcmVu
KToKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBUElWYWx1ZVdyYXBwZXIuaDoKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBwZXI6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkpTQVBJVmFsdWVXcmFwcGVyOjpKU0FQSVZh
bHVlV3JhcHBlcik6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgorICAgICAg
ICAoSlNDOjpKU0FjdGl2YXRpb246OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnZpc2l0Q2hpbGRyZW4pOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6c2xvd1ZhbGlkYXRlQ2Vs
bCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpK
U0NlbGw6OnVudmFsaWRhdGVkU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpKU0Nl
bGw6OkpTQ2VsbCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNGdW5jdGlvbjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxk
cmVuKToKKyAgICAgICAgKEpTQzo6c2xvd1ZhbGlkYXRlQ2VsbCk6CisgICAgICAgICogcnVudGlt
ZS9KU09OT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkpTT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRl
cmF0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU1N0YXRpY1Njb3BlT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAg
KiBydW50aW1lL0pTU3RyaW5nLmg6CisgICAgICAgIChKU0M6OlJvcGVCdWlsZGVyOjpKU1N0cmlu
Zyk6CisgICAgICAgICogcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU1dyYXBwZXJPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3I6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlNYXBIYXNo
VGFibGUuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlNYXBFbnRyeTo6UHJvcGVydHlNYXBFbnRy
eSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpS
ZWdFeHBPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFp
bi5jcHA6CisgICAgICAgIChKU0M6OlNjb3BlQ2hhaW5Ob2RlOjp2aXNpdENoaWxkcmVuKToKKyAg
ICAgICAgKiBydW50aW1lL1Njb3BlQ2hhaW4uaDoKKyAgICAgICAgKEpTQzo6U2NvcGVDaGFpbk5v
ZGU6OlNjb3BlQ2hhaW5Ob2RlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZTo6U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnZp
c2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChK
U0M6OkpTQ2VsbDo6Y2xhc3NJbmZvKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZUNoYWlu
LmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlQ2hhaW46OnZpc2l0Q2hpbGRyZW4pOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRl
QmFycmllci5oOgorICAgICAgICAoSlNDOjp2YWxpZGF0ZUNlbGwpOgorICAgICAgICAoSlNDOjpK
U0NlbGwpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6Oldy
aXRlQmFycmllckJhc2U6OnNldCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6OnNl
dE1heUJlTnVsbCk6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U6OnNldEVhcmx5VmFs
dWUpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlOjpnZXQpOgorICAgICAgICAoSlND
OjpXcml0ZUJhcnJpZXJCYXNlOjpvcGVyYXRvciopOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJp
ZXJCYXNlOjpvcGVyYXRvci0+KToKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTo6dW52
YWxpZGF0ZWRHZXQpOgorICAgICAgICAoSlNDOjpXcml0ZUJhcnJpZXI6OldyaXRlQmFycmllcik6
CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKwogMjAxMS0wNS0xMiAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBjYTc1MDdlM2VkMWJi
OGY3OTIwNmQ5ZWEzNjdiNjI5MGE0NTYzZTQ0Li4xMmIzMTU4ZGQ1Yjk0ZWVjMzdhMTgxNTg1Yjkx
ZDJjYWZmNmE1ODkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAK
QEAgLTE2Nyw2ICsxNjcsNyBAQCBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Rud0VtUE5TXzEySlNH
bG9iYWxEYXRhRQogX19aTjNKU0MxNE1hY2hpbmVUaHJlYWRzMTZhZGRDdXJyZW50VGhyZWFkRXYK
IF9fWk4zSlNDMTRTYW1wbGluZ1RocmVhZDRzdG9wRXYKIF9fWk4zSlNDMTRTYW1wbGluZ1RocmVh
ZDVzdGFydEVqCitfX1pOM0pTQzE0U2NvcGVDaGFpbk5vZGU2c19pbmZvRQogX19aTjNKU0MxNFRp
bWVvdXRDaGVja2VyMTBkaWRUaW1lT3V0RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNFRpbWVv
dXRDaGVja2VyNXJlc2V0RXYKIF9fWk4zSlNDMTR0aHJvd1R5cGVFcnJvckVQTlNfOUV4ZWNTdGF0
ZUUKQEAgLTE4Myw2ICsxODQsOCBAQCBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0ZGVsZXRl
UHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzE2SlNW
YXJpYWJsZU9iamVjdDE0c3ltYm9sVGFibGVHZXRFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJv
cGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxNkpTVmFyaWFibGVPYmplY3QxOWdldE93blByb3Bl
cnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVt
ZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzE2Y3JlYXRlUmFuZ2VFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQorX19aTjNKU0MxNnNsb3dWYWxpZGF0ZUNlbGxFUE5TXzE0SlNHbG9iYWxP
YmplY3RFCitfX1pOM0pTQzE2c2xvd1ZhbGlkYXRlQ2VsbEVQTlNfNkpTQ2VsbEUKIF9fWk4zSlND
MTZ0aHJvd1N5bnRheEVycm9yRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxN0J5dGVjb2RlR2Vu
ZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFy
cmF5M2FkZEVQTjNXVEYxMFN0cmluZ0ltcGxFCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDA2ZDFlOGVhYWU2MjY1MWNhNzgxNmM0M2JkNjAzYWE2NTVjOTBmNWYuLmJhZDBkZDg1Zjc4
ZTZkYWRkM2RiZGZmNDkxZmVhM2YyZWJiMDIxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yNjk2LDYgKzI2OTYsNyBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWF0dHJp
YnV0ZXMgPSB7CiAJCQkJQnVpbGRJbmRlcGVuZGVudFRhcmdldHNJblBhcmFsbGVsID0gWUVTOwor
CQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAwNDIwOwogCQkJfTsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSAxNDlDMjc3MTA4OTAyQUZFMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhQcm9qZWN0ICJKYXZhU2NyaXB0Q29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5
VmVyc2lvbiA9ICJYY29kZSAzLjEiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA0N2RjZDdmYTY0NTY2ZDQ4MTFm
ZGQ1MGZkYjU1Y2Q3MGRkM2I4NzRiLi40Mzg1NTQyM2ZkMGFlYWQ5Y2M2ZDA2NWVjNzQxMDVhYzEw
NTJjNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtNDAsNiArNDAsOSBAQCBEZWJ1Z2dlckFjdGl2YXRpb246
OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBh
Y3RpdgogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2lu
Zm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAg
QVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7
CiAgICAgSlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAKICAgICBpZiAobV9hY3Rp
dmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxv
Y2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCmluZGV4
IGExMGE3Nzg1YzNkOTZmNjMzNzZhZjRjZTYzYjY5MGI0MTFkOTQzZDQuLmYxZjYzMGNlYWEzMGZm
MTIzZWI2ZDZjNGQyYWMyZGIxNTRjOTYxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrZWRCbG9jay5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgTWFya2VkQmxvY2s6Ok1hcmtlZEJs
b2NrKGNvbnN0IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYgYWxsb2NhdGlvbiwgSlNHbG9iYWxEYXRh
KgogCiAgICAgU3RydWN0dXJlKiBkdW1teU1hcmthYmxlQ2VsbFN0cnVjdHVyZSA9IGdsb2JhbERh
dGEtPmR1bW15TWFya2FibGVDZWxsU3RydWN0dXJlLmdldCgpOwogICAgIGZvciAoc2l6ZV90IGkg
PSBmaXJzdEF0b20oKTsgaSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0b21zUGVyQ2VsbCkKLSAgICAg
ICAgbmV3ICgmYXRvbXMoKVtpXSkgSlNDZWxsKCpnbG9iYWxEYXRhLCBkdW1teU1hcmthYmxlQ2Vs
bFN0cnVjdHVyZSk7CisgICAgICAgIG5ldyAoJmF0b21zKClbaV0pIEpTQ2VsbCgqZ2xvYmFsRGF0
YSwgZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUsIEpTQ2VsbDo6Q3JlYXRpbmdFYXJseUNlbGwp
OwogfQogCiB2b2lkIE1hcmtlZEJsb2NrOjpzd2VlcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9NYXJrZWRTcGFjZS5jcHAKaW5kZXggZDlhMWU0MjFiYWI5OTNlOTZiYjhkZDgwODY4ZWNk
OTJkODU2ZTk4MC4uNzdmNmU1MjNhYTZmN2NiYWNjMDNkZThjN2Q4OWQzMzZjYjVkMWY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcApAQCAtMjEsNiArMjEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1hcmtlZFNwYWNlLmgiCiAKKyNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggODM4ZmQwOWQ0ZTNjNWY1ZWY0ZTkwY2Rk
YWFhYWJiNjNjZTdlNmU2ZC4uZWM2Y2M4ZjFjNzIwN2RhODNhZjE1MTQyNmI5ZjU4MWIxOTg0NmM0
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCkBAIC00
NSw2ICs0NSw5IEBAIEFyZ3VtZW50czo6fkFyZ3VtZW50cygpCiAKIHZvaWQgQXJndW1lbnRzOjp2
aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJl
RmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0
aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBKU09iamVjdDo6dmlzaXRDaGlsZHJlbih2aXNp
dG9yKTsKIAogICAgIGlmIChkLT5yZWdpc3RlckFycmF5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCBjZjUxYWMyYTI4OGQ3MDE1ZGNmNjdjM2Vj
NzMzNTc0YWM5NGQwMzQ5Li5hZWZhZWRjNWIyZjYxMjg2OTczZDk0NzE1N2EwMDAzZDhjNDgwZWZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAt
MTQ1LDYgKzE0NSw5IEBAIEpTT2JqZWN0KiBFdmFsRXhlY3V0YWJsZTo6Y29tcGlsZUludGVybmFs
KEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlCiAKIHZvaWQgRXZhbEV4ZWN1
dGFibGU6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChT
dHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUlu
Zm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIFNjcmlwdEV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4odmlzaXRvcik7CiAgICAgaWYgKG1fZXZhbENvZGVCbG9jaykKICAgICAgICAg
bV9ldmFsQ29kZUJsb2NrLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKQEAgLTIzNyw2ICsyNDAs
OSBAQCBzdGF0aWMgYm9vbCB0cnlERkdDb21waWxlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwg
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVENvZAogCiB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjp2
aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJl
RmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0
aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBTY3JpcHRFeGVjdXRhYmxlOjp2aXNpdENoaWxk
cmVuKHZpc2l0b3IpOwogICAgIGlmIChtX3Byb2dyYW1Db2RlQmxvY2spCiAgICAgICAgIG1fcHJv
Z3JhbUNvZGVCbG9jay0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CkBAIC0zNDksNiArMzU1LDkg
QEAgSlNPYmplY3QqIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y29tcGlsZUZvckNvbnN0cnVjdEludGVy
bmFsKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGUKIAogdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVG
bGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRo
b3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVy
cmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIFNjcmlwdEV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRy
ZW4odmlzaXRvcik7CiAgICAgaWYgKG1fY29kZUJsb2NrRm9yQ2FsbCkKICAgICAgICAgbV9jb2Rl
QmxvY2tGb3JDYWxsLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCA3MGIxMmE1NTdkM2YyODAzMjE4N2MwM2Vk
MTEyNTljOTM5OWE3ZTEzLi42OTJlMzQ3YTVmZGU4ZTllM2FmMmY3Y2EwMWQ3YmQwMmJmNDU5ZmNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCkBAIC02Niwx
MCArNjYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywg
VHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7IH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8g
c19pbmZvOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSAwOwotICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5m
bzsKICAgICAgICAgaW50IG1fbnVtUGFyYW1ldGVyc0ZvckNhbGw7CiAgICAgICAgIGludCBtX251
bVBhcmFtZXRlcnNGb3JDb25zdHJ1Y3Q7CiAKQEAgLTExNyw3ICsxMTgsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24oKSB7IHJldHVybiBtX2Z1bmN0
aW9uOyB9CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKExlYWZUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KLQorICAgICAgICAKKyAgICAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CisgICAgCiAgICAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoSklUKQogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSklUQ29kZSBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBKSVRDb2Rl
IGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKQEAgLTE0Myw3ICsx
NDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLy8gUHJvYmFibHkgc2hvdWxkIGJlIGEg
TmF0aXZlQ29uc3RydWN0b3IsIGJ1dCB0aGlzIHdpbGwgY3VycmVudGx5IHJlcXVpcmUgcmV3cml0
aW5nIHRoZSBKSVQKICAgICAgICAgLy8gdHJhbXBvbGluZS4gSXQgbWF5IGJlIGVhc2llciB0byBt
YWtlIE5hdGl2ZUZ1bmN0aW9uIGJlIHBhc3NlZCAndGhpcycgYXMgYSBwYXJ0IG9mIHRoZSBBcmdM
aXN0LgogICAgICAgICBOYXRpdmVGdW5jdGlvbiBtX2NvbnN0cnVjdG9yOwotICAgICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICB9OwogCiAgICAgY2xhc3MgU2NyaXB0RXhl
Y3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CkBAIC0yMzYsMTAgKzIzOCwxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQotCisgICAg
ICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICBwcml2YXRl
OgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuIHwgU2NyaXB0RXhlY3V0YWJsZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogICAgICAgICBFdmFsRXhlY3V0YWJs
ZShFeGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmpl
Y3QqIGNvbXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSopOwpAQCAtMjg2
LDEwICsyODgsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oQ29tcG91
bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IFNjcmlwdEV4ZWN1dGFibGU6OlN0cnVj
dHVyZUZsYWdzOwotICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICAg
ICAgUHJvZ3JhbUV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYpOwogCiAg
ICAgICAgIEpTT2JqZWN0KiBjb21waWxlSW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5v
ZGUqKTsKQEAgLTM4Miw2ICszODUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAg
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBl
SW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CiAKICAgICBwcml2YXRlOgogICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYs
IGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBpbnQg
Zmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwpAQCAtMzkxLDcgKzM5Niw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBKU09iamVjdCogY29tcGlsZUZvckNvbnN0cnVjdEludGVybmFsKEV4ZWNT
dGF0ZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgU2NyaXB0
RXhlY3V0YWJsZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gc19pbmZvOwogICAgICAgICB1bnNpZ25lZCBtX251bUNhcHR1cmVkVmFyaWFibGVzIDogMzE7
CiAgICAgICAgIGJvb2wgbV9mb3JjZVVzZXNBcmd1bWVudHMgOiAxOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAppbmRleCBiZTllYjQ4NzUxNGIz
ZjY3MmRkZmU1MjIwMWIyMzU0YzQxMDA0M2JkLi4wNDE5M2VhM2Q1MzE0YzIyMzljMTUyZmE2MDdj
ZTVhZGMwZmU0ZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9H
ZXR0ZXJTZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRl
clNldHRlci5jcHAKQEAgLTMyLDYgKzMyLDggQEAgY29uc3QgQ2xhc3NJbmZvIEdldHRlclNldHRl
cjo6c19pbmZvID0geyAiR2V0dGVyU2V0dGVyIiwgMCwgMCwgMCB9OwogCiB2b2lkIEdldHRlclNl
dHRlcjo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIEFTU0VSVChzdHJ1Y3R1cmUo
KS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIEpTQ2VsbDo6dmlz
aXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIGlmIChtX2dldHRlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKaW5kZXggY2ViMmFmM2I4NzM2NGY5Nzdj
YmQ0NTE2YWRhNTliZTk0MjE0NTIwMS4uYWNhN2UzY2JiMDI3MmYxZmY5ZGVhOTljNjBmZTVjZGJk
MzA5YTFkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVy
LmgKQEAgLTUyLDkgKzUyLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhHZXR0ZXJTZXR0ZXJUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwgQW5vbnltb3Vz
U2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CisKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNHZXR0ZXJTZXR0ZXIoKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CiAKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX2dldHRlcjsK
ICAgICAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBtX3NldHRlcjsgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgKaW5kZXggNGRjYTlm
NGJmYzVlOTExODQzYjczNDFlMDc0Y2U4ZTkxMmIzOTNlZi4uMzhjYmI1NjllMzY5MWVhZGQ4ZmUx
YTMyODlmNTI4NWU4ZDFiMGNjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCkBAIC00MCw4ICs0MCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKICAgICAgICAgfQotCiAgICAgICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIEpTQVBJVmFsdWVXcmFwcGVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgICAgIDogSlNDZWxsKGV4
ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLmFwaVdyYXBwZXJTdHJ1Y3R1cmUu
Z2V0KCkpCkBAIC00OSw3ICs1MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV92
YWx1ZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCB2YWx1ZSk7CiAgICAgICAgICAgICBB
U1NFUlQoIXZhbHVlLmlzQ2VsbCgpKTsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29uc3Qg
Q2xhc3NJbmZvIHNfaW5mbzsKIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV92YWx1
ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
Y3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5jcHAKaW5kZXggODFlMThjMTRjOWY3Njk1ZmYxMWRjOTc2ZjcxODBlZmMzNmE0ZjY4ZC4uMDlk
OTg1YWZiY2ZiNTkzZDVmYmQwNDU5OWEyYTY4MmI1ZjE3ZjA1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC02MCw2ICs2MCw5IEBAIEpT
QWN0aXZhdGlvbjo6fkpTQWN0aXZhdGlvbigpCiAKIHZvaWQgSlNBY3RpdmF0aW9uOjp2aXNpdENo
aWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3Mg
JiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNl
dHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAg
ICAgLy8gTm8gbmVlZCB0byBtYXJrIG91ciByZWdpc3RlcnMgaWYgdGhleSdyZSBzdGlsbCBpbiB0
aGUgUmVnaXN0ZXJGaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNw
cAppbmRleCBiMGFlODlhOTg2MjViYzQyZjI4MzZhOTk2MzI5M2I3MDU5YzllZjA2Li5mMDRmMjQz
M2Q4MTlmMThkOGUwNjVkZWNiZmNkZDIwZmRlNGU4MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtODU5LDYgKzg1OSw5IEBAIHZvaWQgSlNBcnJheTo6
dW5zaGlmdENvdW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQogCiB2b2lkIEpTQXJyYXk6
OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1
cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5X
aXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5v
dmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIHZpc2l0Q2hpbGRyZW5EaXJlY3QodmlzaXRv
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDkz
MzMxYjNmZmI0MWI2MTBiZmU4NmM3MjUzYzgyMTA4NTI4MmI0OWIuLjA2MDZjZDQwODg2ZjMzNzZk
NDVjZmZiNDM2MTU1OWMzOTg5YTdhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmNwcApAQCAtMjIxLDQgKzIyMSw5IEBAIGJvb2wgaXNab21iaWUoY29uc3QgSlNDZWxs
KiBjZWxsKQogI2VuZGlmCiB9CiAKK3ZvaWQgc2xvd1ZhbGlkYXRlQ2VsbChKU0NlbGwqIGNlbGwp
Cit7CisgICAgQVNTRVJUX0dDX09CSkVDVF9MT09LU19WQUxJRChjZWxsKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDA4
YWFiNjJhNGE2YTkxNWExN2E2ZjU4ZWY1NmY5MzQ3YmI1ODc0ZDguLjdkMmM1ZGY1NWRmYTE2ZGEw
MDgyNjgzZmNkNTg3NGVmYjY0NTI1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5oCkBAIC03MSw2ICs3MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQg
Y2xhc3MgU2NvcGVDaGFpbk5vZGU7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7CiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmVDaGFpbjsKKyAgICAgICAgZW51bSBDcmVhdGlu
Z0Vhcmx5Q2VsbFRhZyB7IENyZWF0aW5nRWFybHlDZWxsIH07CiAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIGVudW0gVlB0clN0ZWFsaW5nSGFja1R5cGUgeyBWUHRyU3RlYWxpbmdIYWNrIH07CkBA
IC03OCw2ICs3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIGV4
cGxpY2l0IEpTQ2VsbChWUHRyU3RlYWxpbmdIYWNrVHlwZSkgeyB9CiAgICAgICAgIEpTQ2VsbChK
U0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgSlNDZWxsKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSosIENyZWF0aW5nRWFybHlDZWxsVGFnKTsKICAgICAgICAgdmlydHVhbCB+SlND
ZWxsKCk7CiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19kdW1teUNlbGxJbmZvOwog
CkBAIC0xNDgsNiArMTUwLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihKU0NlbGwsIG1fc3RydWN0dXJlKTsKICAgICAgICAgfQogCisjaWYg
RU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgICAgIFN0cnVjdHVyZSogdW52YWxpZGF0ZWRTdHJ1
Y3R1cmUoKSB7IHJldHVybiBtX3N0cnVjdHVyZS51bnZhbGlkYXRlZEdldCgpOyB9CisjZW5kaWYK
KyAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
QW5vbnltb3VzU2xvdENvdW50ID0gMDsKIApAQCAtMTYyLDYgKzE2OCwxNSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBpbmxpbmUgSlNDZWxsOjpKU0NlbGwoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBtX3N0cnVjdHVyZShnbG9iYWxEYXRh
LCB0aGlzLCBzdHJ1Y3R1cmUpCiAgICAgeworICAgICAgICBBU1NFUlQobV9zdHJ1Y3R1cmUpOwor
ICAgIH0KKworICAgIGlubGluZSBKU0NlbGw6OkpTQ2VsbChKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDcmVhdGluZ0Vhcmx5Q2VsbFRhZykKKyAgICB7Cisj
aWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgICAgIGlmIChzdHJ1Y3R1cmUpCisjZW5kaWYK
KyAgICAgICAgICAgIG1fc3RydWN0dXJlLnNldEVhcmx5VmFsdWUoZ2xvYmFsRGF0YSwgdGhpcywg
c3RydWN0dXJlKTsKICAgICAgICAgLy8gVmVyeSBmaXJzdCBzZXQgb2YgYWxsb2NhdGlvbnMgd29u
J3QgaGF2ZSBhIHJlYWwgc3RydWN0dXJlLgogICAgICAgICBBU1NFUlQobV9zdHJ1Y3R1cmUgfHwg
IWdsb2JhbERhdGEuZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNGU5Y2QzN2Q1YmU4
NGVkZjI1NWUwYzVhYzMwNjllNDQxZTU0YWZiNC4uZTQ2ODBjYzEwNDVjNDhlNjg3M2ViNzZkOGM5
ZWViZjE2NGE5NzE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKQEAgLTEzNSw2ICsxMzUsOSBAQCBjb25zdCBVU3RyaW5nIEpTRnVuY3Rpb246OmNh
bGN1bGF0ZWREaXNwbGF5TmFtZShFeGVjU3RhdGUqIGV4ZWMpCiAKIHZvaWQgSlNGdW5jdGlvbjo6
dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVy
ZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldp
dGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92
ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9y
KTsKIAogICAgIHZpc2l0b3IuYXBwZW5kKCZtX3Njb3BlQ2hhaW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDljNzcxNDYxNjA4
Nzg1ZDI3ZWJjNDU1ODZlZjY0YTUxNWFlOGVmMGYuLjM5MWE2NTUwZGQ1NGI0MTIyMTAyMjFhNmQ0
MDA1NDllYzE0NTZiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKQEAgLTMxMCw2ICszMTAsOSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0
OjpyZXNldFByb3RvdHlwZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90
eXBlKQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7
CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxk
cmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NF
UlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAg
ICBKU1ZhcmlhYmxlT2JqZWN0Ojp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAgICAgdmlzaXRJ
Zk5lZWRlZCh2aXNpdG9yLCAmbV9nbG9iYWxTY29wZUNoYWluKTsKQEAgLTQ1OSw0ICs0NjIsMTEg
QEAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlOjpEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0cKICAgICB9CiB9CiAKK3ZvaWQgc2xvd1ZhbGlkYXRl
Q2VsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIGlmICghZ2xvYmFsT2Jq
ZWN0LT5pc0dsb2JhbE9iamVjdCgpKQorICAgICAgICBDUkFTSCgpOworICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoZ2xvYmFsT2JqZWN0LCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbyk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5oCmluZGV4IGM4N2M2NDE5YjljNmU5NjRiZjhiZDc2NTcxMWRjMDgyYjMzN2E2YWQu
LmI3NzMzMjA1YzgwOGJlMmQ3ODNmZDdjN2U4MmU4OTFmNGRjZWIxZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKQEAgLTQwLDYgKzQwLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKQEAgLTQ4LDcg
KzUwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAgICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKICAgICB9OwogCiAgICAgVVN0cmluZyBKU09OU3Ry
aW5naWZ5KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgaW5kZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhZTI5YTdi
NDNmNWJjYWYyMWE4MzJkNzcwZjMyYjFhMmJkMzhiMjRlLi5kNmRiNjEyMmYxMjNlM2I2NGE4OWMz
NjkxNGZjNGM0ODU2M2MzZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRDbGFzc1By
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzCiAKIHZv
aWQgSlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKICNpZm5kZWYgTkRFQlVH
CiAgICAgYm9vbCB3YXNDaGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uID0gdmlzaXRvci5t
X2lzQ2hlY2tpbmdGb3JEZWZhdWx0TWFya1Zpb2xhdGlvbjsKICAgICB2aXNpdG9yLm1faXNDaGVj
a2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4
IGU2MDEwZGU5ZDdhODhlZDYzZGI4MmU0YjgyY2E1NjBkMDdlODdiMTcuLmUwNWJiM2Y0NGQ1YTAx
NjU3YjVlZGViOTVkNzRjODk3YTUyNjFiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC05Nyw2ICs5
Nyw4IEBAIEpTVmFsdWUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Z2V0KEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGJhc2UsIHNpemVfdCBpKQogCiB2b2lkIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3I6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICB2aXNpdG9yLmFwcGVu
ZFZhbHVlcyhtX2pzU3RyaW5ncy5nZXQoKSwgbV9qc1N0cmluZ3NTaXplLCBNYXlDb250YWluTnVs
bFZhbHVlcyk7CiAgICAgaWYgKG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4pCiAgICAgICAgIHZpc2l0
b3IuYXBwZW5kKCZtX2NhY2hlZFByb3RvdHlwZUNoYWluKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAppbmRleCAxYTU3
MzUwMzIzODZhMmUzODk3NDRiM2ZhMzViYTdkN2VjODdhY2U2Li5mZjEyOWYwNTQ5YTEzMjRiOWE0
ODA4MDg3NDY4MGIzNDdhZGY2ZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC03NSw5ICs3NSwxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIHNldENhY2hlZFByb3RvdHlwZUNoYWluKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUNo
YWluKSB7IG1fY2FjaGVkUHJvdG90eXBlQ2hhaW4uc2V0KGdsb2JhbERhdGEsIHRoaXMsIGNhY2hl
ZFByb3RvdHlwZUNoYWluKTsgfQogICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2FjaGVkUHJvdG90
eXBlQ2hhaW4oKSB7IHJldHVybiBtX2NhY2hlZFByb3RvdHlwZUNoYWluLmdldCgpOyB9CisgICAg
ICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogICAgICAgICBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5RGF0YSogcHJv
cGVydHlOYW1lQXJyYXlEYXRhLCBzaXplX3QgbnVtQ2FjaGVhYmxlU2xvdCk7CiAKICAgICAgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9jYWNoZWRTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCmluZGV4
IDg4ZTQ1Mzg1NjJkZWY0MTI5M2Y1NTI2NGNiYTBmZjkxYjMyZTM5MTcuLjUyMDY1MTBkNmNkMmE3
NzI0YTczYjViZWQxMmExZjJkNmQ4Y2M3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCkBAIC0zNCw2ICszNCw5IEBA
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNTdGF0aWNTY29wZU9iamVjdCk7CiAKIHZvaWQg
SlNTdGF0aWNTY29wZU9iamVjdDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENP
TVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgSlNWYXJp
YWJsZU9iamVjdDo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAgICB2aXNpdG9yLmFwcGVuZCgm
bV9yZWdpc3RlclN0b3JlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCmluZGV4IDBhYzY0YmQ4Yjc5MGE5NzczNjhlMDhlZjY3N2I4YmMzODMzZDAxMDEuLjY2ODA2
NGY4NTRhODAzMGFkMzgzZGRjNjZkMTFkMGM5MmQ3MzIzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtMzMwLDYgKzMzMCw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFs
RGF0YSwgcHJvdG8sIFR5cGVJbmZvKFN0cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IE5lZWRzVGhpc0NvbnZlcnNpb24pLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTU3RyaW5nKFZQdHJTdGVhbGluZ0hhY2tU
eXBlKSAKQEAgLTMzNyw3ICszMzksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwg
bV9maWJlckNvdW50KDApCiAgICAgICAgIHsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgICAgICB2b2lkIHJlc29sdmVSb3BlKEV4ZWNTdGF0
ZSopIGNvbnN0OwogICAgICAgICB2b2lkIHJlc29sdmVSb3BlU2xvd0Nhc2UoRXhlY1N0YXRlKiwg
VUNoYXIqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTV3JhcHBlck9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dy
YXBwZXJPYmplY3QuY3BwCmluZGV4IDJiZjRhOTA0NTg5YzJhZGEwYmZjOGY2ODZkN2VkNTZiYmY2
YzgyYmMuLjhkNjM4N2VjMGFiMjBhZGY3YWZhNTNlMWYxMGZkYWQwNDMwZjAxZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcApAQCAt
MjgsNiArMjgsOSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTV3JhcHBlck9iamVjdCk7
CiAKIHZvaWQgSlNXcmFwcGVyT2JqZWN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKSAKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwor
ICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJU
KHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAg
SlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAgICAgaWYgKG1faW50ZXJuYWxWYWx1
ZSkKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJm1faW50ZXJuYWxWYWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDVjNGYwMDkyMDQxOWUyMDViN2I3MWI1ODU2Zjg2ZTFjZTA2NmU2MTIuLjJhN2E3
ZjVkNDVlMzA1N2VhNmM1NTBiMzRlYWU5MjBkNTE4ZDZiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBA
IC00OCw2ICs0OCw5IEBAIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6Ok5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCoKIAogdm9pZCBOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9B
U1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBJbnRlcm5hbEZ1bmN0
aW9uOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIGlmIChtX2Vycm9yU3RydWN0dXJlKQog
ICAgICAgICB2aXNpdG9yLmFwcGVuZCgmbV9lcnJvclN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlNYXBIYXNoVGFibGUuaAppbmRleCA2
ZWE1OTNhZDYyZjc1NjVjNjZkODFjZmJkNWJlZjU0MGIzNTUzNzk2Li4yOGE5MzY0OTQ4ZGRhNjY0
ODA0ZmFkYzU0Nzk0NTY2MDAxZjlhMjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgKQEAgLTgwLDcgKzgwLDcgQEAgc3Ry
dWN0IFByb3BlcnR5TWFwRW50cnkgewogICAgICAgICA6IGtleShrZXkpCiAgICAgICAgICwgb2Zm
c2V0KG9mZnNldCkKICAgICAgICAgLCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCi0gICAgICAgICwg
c3BlY2lmaWNWYWx1ZShnbG9iYWxEYXRhLCBvd25lciwgc3BlY2lmaWNWYWx1ZSkKKyAgICAgICAg
LCBzcGVjaWZpY1ZhbHVlKGdsb2JhbERhdGEsIG93bmVyLCBzcGVjaWZpY1ZhbHVlLCBXcml0ZUJh
cnJpZXI8SlNDZWxsPjo6TWF5QmVOdWxsKQogICAgIHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggZmZjMDExMmYwYTk5
M2U0YTk5ZDczYmQ5MWFlMDgyN2M4ODgwYmYwMC4uYzAyMzM0OTYxZjI1YjYxYTUzNzBmZTI0NTM1
MjU5ZGUwOWEwOGU1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuY3BwCkBAIC03NCw2ICs3NCw5IEBAIFJlZ0V4cE9iamVjdDo6flJlZ0V4cE9iamVj
dCgpCiAKIHZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Cisg
ICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVu
LCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQo
c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBC
YXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIGlmIChVTkxJS0VMWSghZC0+bGFzdElu
ZGV4LmdldCgpLmlzSW50MzIoKSkpCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZkLT5sYXN0SW5k
ZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFp
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcAppbmRl
eCBlZDYwYmIxNTlhYmY4NzBlNDlkMjZhOGZhMmZiNDFkNTFkZTg0ZjcwLi5kZjRkYTQxYzAyMTM5
NDI3MDY1NGMwNTFjNmY3YzhlNTI4ODVlYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TY29wZUNoYWluLmNwcApAQCAtNjksNiArNjksOSBAQCBpbnQgU2NvcGVDaGFpbk5v
ZGU6OmxvY2FsRGVwdGgoKQogCiB2b2lkIFNjb3BlQ2hhaW5Ob2RlOjp2aXNpdENoaWxkcmVuKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
cywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlk
ZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFn
KTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbigpKTsKICAgICBpZiAobmV4dCkKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJm5leHQpOwog
ICAgIHZpc2l0b3IuYXBwZW5kKCZvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2NvcGVDaGFpbi5oCmluZGV4IDg0ODFiZGNkYWU2MzQzNzIxNzZhMzE0MDIxZTE1ZGE5OWNk
MzViYTcuLjdmYmI4ODhlM2I0YWU2MjExNGY5YjkyNzFlMWUyY2YyMDcxMTY3ZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNjb3BlQ2hhaW5Ob2RlKFNjb3BlQ2hhaW5Ob2RlKiBu
ZXh0LCBKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBnbG9iYWxUaGlzKQogICAgICAgICAgICAg
OiBKU0NlbGwoKmdsb2JhbERhdGEsIGdsb2JhbERhdGEtPnNjb3BlQ2hhaW5Ob2RlU3RydWN0dXJl
LmdldCgpKQogICAgICAgICAgICAgLCBnbG9iYWxEYXRhKGdsb2JhbERhdGEpCi0gICAgICAgICAg
ICAsIG5leHQoKmdsb2JhbERhdGEsIHRoaXMsIG5leHQpCisgICAgICAgICAgICAsIG5leHQoKmds
b2JhbERhdGEsIHRoaXMsIG5leHQsIFdyaXRlQmFycmllcjxTY29wZUNoYWluTm9kZT46Ok1heUJl
TnVsbCkKICAgICAgICAgICAgICwgb2JqZWN0KCpnbG9iYWxEYXRhLCB0aGlzLCBvYmplY3QpCiAg
ICAgICAgICAgICAsIGdsb2JhbE9iamVjdCgqZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsT2JqZWN0
KQogICAgICAgICAgICAgLCBnbG9iYWxUaGlzKCpnbG9iYWxEYXRhLCB0aGlzLCBnbG9iYWxUaGlz
KQpAQCAtNjgsOSArNjgsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBw
cm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4o
U2xvdFZpc2l0b3ImKTsKKyAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW47Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogICAgIH07CiAKICAgICBpbmxpbmUgU2NvcGVDaGFp
bk5vZGUqIFNjb3BlQ2hhaW5Ob2RlOjpwdXNoKEpTT2JqZWN0KiBvKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggNmJhMjc3N2M0ZDk2MmZmZThmMjM0
M2FlY2ExM2NkNjllYTFlM2RlNC4uYTNmZGE1NDdmZGRiN2Y4NTA5MjliMmExMjI5ZmU2MDcxYjM2
MzdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBA
IC0yMDYsNyArMjA2LDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8KIGNvbnN0IENsYXNzSW5m
byBTdHJ1Y3R1cmU6OnNfaW5mbyA9IHsgIlN0cnVjdHVyZSIsIDAsIDAsIDAgfTsKIAogU3RydWN0
dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQotICAgIDogSlNDZWxsKGds
b2JhbERhdGEsIHRoaXMpCisgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgdGhpcywgQ3JlYXRpbmdF
YXJseUNlbGwpCiAgICAgLCBtX3R5cGVJbmZvKENvbXBvdW5kVHlwZSwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbikKICAgICAsIG1fcHJvdG90eXBlKGdsb2JhbERhdGEsIHRoaXMsIGpzTnVsbCgpKQog
ICAgICwgbV9jbGFzc0luZm8oJnNfaW5mbykKQEAgLTM1OCwxMSArMzU4LDExIEBAIFN0cnVjdHVy
ZSogU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBTdHJ1Y3R1cmUqCiAKICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRpb24gPSBjcmVhdGUoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKTsKIAotICAgIHRyYW5zaXRpb24tPm1fY2FjaGVkUHJvdG90eXBl
Q2hhaW4uc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+bV9jYWNoZWRQcm90
b3R5cGVDaGFpbi5nZXQoKSk7CisgICAgdHJhbnNpdGlvbi0+bV9jYWNoZWRQcm90b3R5cGVDaGFp
bi5zZXRNYXlCZU51bGwoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbiwgc3RydWN0dXJlLT5tX2NhY2hl
ZFByb3RvdHlwZUNoYWluLmdldCgpKTsKICAgICB0cmFuc2l0aW9uLT5tX3ByZXZpb3VzLnNldChn
bG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUpOwogICAgIHRyYW5zaXRpb24tPm1fbmFt
ZUluUHJldmlvdXMgPSBwcm9wZXJ0eU5hbWUuaW1wbCgpOwogICAgIHRyYW5zaXRpb24tPm1fYXR0
cmlidXRlc0luUHJldmlvdXMgPSBhdHRyaWJ1dGVzOwotICAgIHRyYW5zaXRpb24tPm1fc3BlY2lm
aWNWYWx1ZUluUHJldmlvdXMuc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHNwZWNpZmljVmFs
dWUpOworICAgIHRyYW5zaXRpb24tPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuc2V0TWF5QmVO
dWxsKGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHNwZWNpZmljVmFsdWUpOwogCiAgICAgaWYgKHN0
cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlKSB7CiAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPm1faXNQ
aW5uZWRQcm9wZXJ0eVRhYmxlKQpAQCAtNzc5LDYgKzc3OSw4IEBAIHZvaWQgU3RydWN0dXJlOjpn
ZXRQcm9wZXJ0eU5hbWVzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lQXJy
YXkmIHByCiAKIHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Cisg
ICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4o
KSk7CiAgICAgSlNDZWxsOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIGlmIChtX3Byb3Rv
dHlwZSkKICAgICAgICAgdmlzaXRvci5hcHBlbmQoJm1fcHJvdG90eXBlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggYTI4NTdlMTZiNDZmYjE2MWU5ZDYy
MjNlNDhlZmJjMjM5YmFlMzEzYS4uMWZhN2Y2OWEyMjhhNmNhZjA3NTUwNjVkNjBmYzA5MmViM2Ez
NjBkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTE2
MCw2ICsxNjAsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEFTU0VSVCghZ2xvYmFs
RGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgcmV0dXJuIG5ldyAoJmdsb2Jh
bERhdGEpIFN0cnVjdHVyZShnbG9iYWxEYXRhKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgVHlwZUluZm8mLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENs
YXNzSW5mbyopOwpAQCAtMTcyLDggKzE3NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoJmdsb2JhbERhdGEpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBzdHJ1Y3R1
cmUpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBj
b25zdCBDbGFzc0luZm8gc19pbmZvOwotCiAgICAgICAgIHR5cGVkZWYgZW51bSB7IAogICAgICAg
ICAgICAgTm9uZURpY3Rpb25hcnlLaW5kID0gMCwKICAgICAgICAgICAgIENhY2hlZERpY3Rpb25h
cnlLaW5kID0gMSwKQEAgLTI3OCw3ICsyNzgsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBp
bmxpbmUgY29uc3QgQ2xhc3NJbmZvKiBKU0NlbGw6OmNsYXNzSW5mbygpIGNvbnN0CiAgICAgewor
I2lmIEVOQUJMRShHQ19WQUxJREFUSU9OKQorICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1cmUudW52
YWxpZGF0ZWRHZXQoKS0+Y2xhc3NJbmZvKCk7CisjZWxzZQogICAgICAgICByZXR1cm4gbV9zdHJ1
Y3R1cmUtPmNsYXNzSW5mbygpOworI2VuZGlmCiAgICAgfQogCiAgICAgaW5saW5lIFN0cnVjdHVy
ZSogSlNDZWxsOjpjcmVhdGVEdW1teVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFp
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAK
aW5kZXggMDYyOTUxZGM5ZGIzZDQ2NDY3OWQ4NzU5MzM0MDA3NGY2ZDNhY2ZjOS4uODlhMGVjMGMy
MDY3YjQ2OTZmYTMxZTI2OWI1OTdkN2M2Yjk5YmFmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcApAQCAtNTUsNiArNTUsOCBAQCBTdHJ1
Y3R1cmVDaGFpbjo6flN0cnVjdHVyZUNoYWluKCkKIAogdm9pZCBTdHJ1Y3R1cmVDaGFpbjo6dmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUlu
Zm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIHNpemVfdCBpID0gMDsKICAgICB3
aGlsZSAobV92ZWN0b3JbaV0pCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZtX3ZlY3RvcltpKytd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNo
YWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCmlu
ZGV4IDUwMzIzZmQ0NWFmM2UxZDI4ZDhkM2I4ZGVhYzU1ZWE2ZGMyNDdhZTIuLjRmYzEyMTJiYzdh
MjhlZGExMjdmY2M5MzkzNjBiNDAwMDI5MGZiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaApAQCAtNDcsMTIgKzQ3LDEzIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKIAogICAg
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4pLCAwLCAmc19pbmZvKTsgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIENsYXNz
SW5mbyBzX2luZm87CiAKICAgICBwcml2YXRlOgogICAgICAgICBTdHJ1Y3R1cmVDaGFpbihKU0ds
b2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqIGhlYWQpOwogICAgICAgICB+U3RydWN0
dXJlQ2hhaW4oKTsKICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4g
PiBtX3ZlY3RvcjsKLSAgICAgICAgc3RhdGljIENsYXNzSW5mbyBzX2luZm87CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Xcml0ZUJhcnJpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRl
QmFycmllci5oCmluZGV4IDYzNTVkOWQ4NzA5M2FmN2IyZDc2MzkxZTZmMjRlZWY2N2U4NTE1ZGIu
LjAwYmFkOWI1YWY0ZDg5NmE2YTc1OWUzYjVlYTA4YmI0NWI5YWRhNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCkBAIC0yOCwxOSArMjgsNjEgQEAK
IAogI2luY2x1ZGUgIkhhbmRsZVR5cGVzLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgorI2luY2x1ZGUg
IlR5cGVUcmFpdHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTQ2VsbDsKIGNsYXNz
IEpTR2xvYmFsRGF0YTsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OwogCiB0ZW1wbGF0ZTxjbGFzcyBU
PiBjbGFzcyBXcml0ZUJhcnJpZXJCYXNlOwogdGVtcGxhdGU8PiBjbGFzcyBXcml0ZUJhcnJpZXJC
YXNlPEpTVmFsdWU+OwogCit2b2lkIHNsb3dWYWxpZGF0ZUNlbGwoSlNDZWxsKik7Cit2b2lkIHNs
b3dWYWxpZGF0ZUNlbGwoSlNHbG9iYWxPYmplY3QqKTsKKyAgICAKKyNpZiBFTkFCTEUoR0NfVkFM
SURBVElPTikKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0YXRpYyBpbmxpbmUgdm9pZCB2YWxpZGF0ZUNl
bGwoVCBjZWxsKQoreworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2VsbCwgJldURjo6
UmVtb3ZlUG9pbnRlcjxUPjo6VHlwZTo6c19pbmZvKTsKK30KKwordGVtcGxhdGU8PiBzdGF0aWMg
aW5saW5lIHZvaWQgdmFsaWRhdGVDZWxsPEpTQ2VsbCo+KEpTQ2VsbCogY2VsbCkKK3sKKyAgICBz
bG93VmFsaWRhdGVDZWxsKGNlbGwpOworfQorCit0ZW1wbGF0ZTw+IHN0YXRpYyBpbmxpbmUgdm9p
ZCB2YWxpZGF0ZUNlbGw8SlNHbG9iYWxPYmplY3QqPihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIHNsb3dWYWxpZGF0ZUNlbGwoZ2xvYmFsT2JqZWN0KTsKK30KKyNlbHNlCit0
ZW1wbGF0ZTxjbGFzcyBUPiBzdGF0aWMgaW5saW5lIHZvaWQgdmFsaWRhdGVDZWxsKFQpCit7Cit9
CisjZW5kaWYKKwogLy8gV2UgaGF2ZSBhIHNlcGFyYXRlIGJhc2UgY2xhc3Mgd2l0aCBubyBjb25z
dHJ1Y3RvcnMgZm9yIHVzZSBpbiBVbmlvbnMuCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3Mg
V3JpdGVCYXJyaWVyQmFzZSB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzZXQoSlNHbG9iYWxEYXRhJiwg
Y29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFsdWUpCisgICAgdm9pZCBzZXQoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBjb25zdCBKU0NlbGwqIG93bmVyLCBUKiB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIEFTU0VSVCh2YWx1ZSk7CisgICAgICAgIHZhbGlkYXRlQ2VsbCh2YWx1ZSk7CisgICAgICAg
IHNldEVhcmx5VmFsdWUoZ2xvYmFsRGF0YSwgb3duZXIsIHZhbHVlKTsKKyAgICB9CisKKyAgICB2
b2lkIHNldE1heUJlTnVsbChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IEpTQ2VsbCog
b3duZXIsIFQqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAg
dmFsaWRhdGVDZWxsKHZhbHVlKTsKKyAgICAgICAgc2V0RWFybHlWYWx1ZShnbG9iYWxEYXRhLCBv
d25lciwgdmFsdWUpOworICAgIH0KKworICAgIC8vIFNob3VsZCBvbmx5IGJlIHVzZWQgYnkgSlND
ZWxsIGR1cmluZyBlYXJseSBpbml0aWFsaXNhdGlvbgorICAgIC8vIHdoZW4gc29tZSBiYXNpYyB0
eXBlcyBhcmVuJ3QgeWV0IGNvbXBsZXRlbHkgaW5zdGFudGlhdGVkCisgICAgdm9pZCBzZXRFYXJs
eVZhbHVlKEpTR2xvYmFsRGF0YSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIFQqIHZhbHVlKQogICAg
IHsKICAgICAgICAgdGhpcy0+bV9jZWxsID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih2YWx1
ZSk7CiAgICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lciwgdGhpcy0+bV9jZWxsKTsKQEAg
LTUyLDYgKzk0LDggQEAgcHVibGljOgogICAgIAogICAgIFQqIGdldCgpIGNvbnN0CiAgICAgewor
ICAgICAgICBpZiAobV9jZWxsKQorICAgICAgICAgICAgdmFsaWRhdGVDZWxsKG1fY2VsbCk7CiAg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFQqPihtX2NlbGwpOwogICAgIH0KIApAQCAt
NjEsMTIgKzEwNSwxNCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEpTQ19aT01CSUVTKQogICAgICAg
ICBBU1NFUlQoIWlzWm9tYmllKG1fY2VsbCkpOwogI2VuZGlmCisgICAgICAgIHZhbGlkYXRlQ2Vs
bDxUPihzdGF0aWNfY2FzdDxUKj4obV9jZWxsKSk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUKj4obV9jZWxsKTsKICAgICB9CiAKICAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKICAgICB7
CiAgICAgICAgIEFTU0VSVChtX2NlbGwpOworICAgICAgICB2YWxpZGF0ZUNlbGwoc3RhdGljX2Nh
c3Q8VCo+KG1fY2VsbCkpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1fY2VsbCk7
CiAgICAgfQogCkBAIC04Nyw2ICsxMzMsMTAgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisj
aWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCisgICAgVCogdW52YWxpZGF0ZWRHZXQoKSBjb25zdCB7
IHJldHVybiByZWludGVycHJldF9jYXN0PFQqPihtX2NlbGwpOyB9CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICBKU0NlbGwqIG1fY2VsbDsKIH07CkBAIC0xNTEsNiArMjAxLDEyIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIHRoaXMtPnNldChnbG9iYWxEYXRhLCBvd25lciwgdmFsdWUpOwogICAg
IH0KKworICAgIGVudW0gTWF5QmVOdWxsVGFnIHsgTWF5QmVOdWxsIH07CisgICAgV3JpdGVCYXJy
aWVyKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSlNDZWxsKiBvd25lciwgVCogdmFs
dWUsIE1heUJlTnVsbFRhZykKKyAgICB7CisgICAgICAgIHRoaXMtPnNldE1heUJlTnVsbChnbG9i
YWxEYXRhLCBvd25lciwgdmFsdWUpOworICAgIH0KIH07CiAKIHRlbXBsYXRlIDw+IGNsYXNzIFdy
aXRlQmFycmllcjxVbmtub3duPiA6IHB1YmxpYyBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQXNzZXJ0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggODYyMTU4YjQ0YTc2MzAz
ODA2NTc0ODU5OWI4MThiOTM4NDQ3ZmQ1OC4uMTM2ZDViYzgxNTgzOWYxMzA0NTdhMTJmNDliMzEw
YmQ4YWI2MDU2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Bc3NlcnRp
b25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Bc3NlcnRpb25zLmgKQEAgLTM3
OSw0ICszNzksMjMgQEAgd2hpbGUgKDApCiAjZGVmaW5lIExPR19WRVJCT1NFKGNoYW5uZWwsIC4u
LikgV1RGTG9nVmVyYm9zZShfX0ZJTEVfXywgX19MSU5FX18sIFdURl9QUkVUVFlfRlVOQ1RJT04s
ICZKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgY2hhbm5l
bCksIF9fVkFfQVJHU19fKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKKyNk
ZWZpbmUgQVNTRVJUX0dDX09CSkVDVF9MT09LU19WQUxJRChjZWxsKSBkbyB7IFwKKyAgICBpZiAo
IShjZWxsKSlcCisgICAgICAgIENSQVNIKCk7XAorICAgIGlmIChjZWxsLT51bnZhbGlkYXRlZFN0
cnVjdHVyZSgpLT51bnZhbGlkYXRlZFN0cnVjdHVyZSgpICE9IGNlbGwtPnVudmFsaWRhdGVkU3Ry
dWN0dXJlKCktPnVudmFsaWRhdGVkU3RydWN0dXJlKCktPnVudmFsaWRhdGVkU3RydWN0dXJlKCkp
XAorICAgICAgICBDUkFTSCgpO1wKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyhvYmplY3QsIGNsYXNzSW5mbykgZG8ge1wKKyAgICBBU1NFUlRfR0NfT0JK
RUNUX0xPT0tTX1ZBTElEKG9iamVjdCk7IFwKKyAgICBpZiAoIW9iamVjdC0+aW5oZXJpdHMoY2xh
c3NJbmZvKSkgXAorICAgICAgICBDUkFTSCgpO1wKK30gd2hpbGUgKDApCisKKyNlbHNlCisjZGVm
aW5lIEFTU0VSVF9HQ19PQkpFQ1RfTE9PS1NfVkFMSUQoY2VsbCkgZG8geyAodm9pZCljZWxsOyB9
IHdoaWxlICgwKQorI2RlZmluZSBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgY2xh
c3NJbmZvKSBkbyB7ICh2b2lkKW9iamVjdDsgKHZvaWQpY2xhc3NJbmZvOyB9IHdoaWxlICgwKQor
I2VuZGlmCisKICNlbmRpZiAvKiBXVEZfQXNzZXJ0aW9uc19oICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEw
Nzc0NjYzZTk3NmFlMzhjODM2YTQwOWY0MTA3NTRlNDY0M2VmZi4uZmQ1NmRlOTk3OWU1ZmY5YjQ4
OTU2MjM0ZmE1NTYzYTlkZDhkNGFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEx
LTA1LTEzICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBHQyB2YWxpZGF0aW9uIG1vcmUg
YWdncmVzc2l2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA4MDIKKworICAgICAgICBUaGlzIG1ha2VzIEdDX1ZBTElEQVRJT04gbXVjaCBtb3JlIGFn
Z3Jlc3NpdmUgaW4gd2ViY29yZSwKKyAgICAgICAgYWRkaW5nIGxvZ2ljIHRvIGV2ZXJ5IHZpc2l0
Q2hpbGRyZW4gbWV0aG9kIHRvIGVuc3VyZSB0aGF0CisgICAgICAgIHRoZSBzdHJ1Y3R1cmUgc3Rp
bGwgaGFzIGNvcnJlY3QgZmxhZ3MuCisKKyAgICAgICAgQWRkaXRpb25hbGx5IGV2ZXJ5IGZ1bmN0
aW9uIGdlbmVyYXRlZCBmb3IgdGhlIGRvbSBiaW5kaW5ncworICAgICAgICBtYWtlcyB1c2Ugb2Yg
dGhlIG5ldyBHQ19WQUxJREFUSU9OIG9iamVjdCBhc3NlcnRpb25zIHRvIGZ1cnRoZXIKKyAgICAg
ICAgZW5zdXJlIHRoYXQgdGhlIG9iamVjdCBhcHBlYXJzIHRvIGJlIHNlbnNpYmxlLgorCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
QXR0cjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRl
eHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb0NvbnRleHQ6OnZpc2l0Q2hp
bGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0NTU1J1bGU6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NTU1N0eWxlRGVjbGFyYXRpb246OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
RE9NR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0OjpzZXRJbmplY3RlZFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnZp
c2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6dmlzaXRDaGlsZHJlbik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5l
cjo6anNGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNKYXZhU2NyaXB0QXVkaW9O
b2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSmF2YVNjcmlwdEF1ZGlvTm9kZTo6
dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VDaGFubmVsOjp2aXNpdENoaWxk
cmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZVBvcnQ6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTTmFtZWROb2RlTWFwOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjp2aXNpdENoaWxkcmVu
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05v
ZGVJdGVyYXRvcjo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTVkdF
bGVtZW50SW5zdGFuY2VDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdFbGVtZW50
SW5zdGFuY2U6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhcmVk
V29ya2VyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU2hhcmVkV29ya2VyOjp2aXNp
dENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNTdHlsZVNoZWV0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUcmVlV2Fsa2VyOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV29ya2Vy
Q29udGV4dDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0Ojp2
aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTWFBhdGhSZXN1bHQ6OnZpc2l0Q2hpbGRyZW4pOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorCiAyMDExLTA1
LTEyICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F0dHJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdHRyQ3Vz
dG9tLmNwcAppbmRleCAxY2QzMzU5MDkzMzM2YWMxNGVhZTVhNDRmYzVhNGMyNTBjN2ViYWU2Li40
NDlhNWNlMTI3NzlmZDY4NjMwZTM2ZTMwNWMwY2MxODkxZmJhNzFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAKQEAgLTQxLDYgKzQxLDkgQEAgdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAogdm9pZCBKU0F0dHI6OnZpc2l0Q2hpbGRyZW4oU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAm
c19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOwor
ICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVu
KCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAKICAgICBFbGVtZW50KiBl
bGVtZW50ID0gaW1wbCgpLT5vd25lckVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCA4M2EwYzM5ZjA4ZDk4
OWYwY2I1ZGE3MGRlY2IyYWY1NDEzY2FlMGY4Li4yYmMyMDBmOTRhNWM4MTE3M2Y4NzkwM2Y2Y2Fm
ZjJjN2I2MWUxMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1
ZGlvQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
dWRpb0NvbnRleHRDdXN0b20uY3BwCkBAIC00MSw2ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdm9pZCBKU0F1ZGlvQ29udGV4dDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwor
ICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJU
KHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAg
QmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAgICBtX2ltcGwtPnZpc2l0SlNFdmVudExp
c3RlbmVycyh2aXNpdG9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1J1bGVDdXN0b20uY3BwCmluZGV4IDQwZTQxMjFiMjU3MTFhYzg5NjI2OTliNGYzZmVkYWE2Zjcx
NTdkMGQuLjE1NWJhNmUzY2M1MTVkNGVkOTVlYTE5ZmI0NDI5MzRkZTAyMjVjMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcApAQCAtNTAsNiAr
NTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNDU1NSdWxlOjp2aXNpdENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBP
dmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRp
bmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIHZp
c2l0b3IuYWRkT3BhcXVlUm9vdChyb290KGltcGwoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAK
aW5kZXggODRiNTlkYmNkOTI4YjUxOGYxOTVhYjExZmFkYjA4NDFjZWM2NmJiNi4uMDcyMDMzZTY0
MzczYzQ4ZTkzNGQzNDEzOGU0NmMxNjUzYjIyNmM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCkBA
IC00Niw2ICs0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU0NTU1N0eWxlRGVj
bGFyYXRpb246OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VS
VChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlw
ZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRy
ZW4odmlzaXRvcik7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QoaW1wbCgpKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA1MzUwNmU1NmYzZjA0MmRjZjE3NWE2M2I2
NTE2ODQ2Njk4OTE1YTExLi5hZDY0NmEwNTMyODI3MjViYTA5MmM1ODIzMjE2ZjdmMDVkOWZjNDYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTQxLDYgKzQxLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB2b2lkIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJl
bihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5n
RmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIHZp
c2l0b3IuYWRkT3BhcXVlUm9vdChyb290KGltcGwoKS0+Y2FudmFzKCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCAzMjgwYTYy
ZWMwYmJmM2M3YTM3N2Y1ZmRkYjY0YzlmYzhkMjY5ZTFlLi40ZGFmYTY4ZTA0NTZhZWE2N2ZlMjZl
ZDFmYmMxMGYxYmJmNDZjYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC01Miw2ICs1Miw5IEBAIEpTRE9NR2xvYmFsT2JqZWN0
OjpKU0RPTUdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0CiAKIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19p
bmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAg
IEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkp
OwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAKICAgICBKU0RPTVN0cnVjdHVy
ZU1hcDo6aXRlcmF0b3IgZW5kID0gc3RydWN0dXJlcygpLmVuZCgpOwpAQCAtNzgsNyArODEsNyBA
QCBFdmVudCogSlNET01HbG9iYWxPYmplY3Q6OmN1cnJlbnRFdmVudCgpIGNvbnN0CiAKIHZvaWQg
SlNET01HbG9iYWxPYmplY3Q6OnNldEluamVjdGVkU2NyaXB0KEpTT2JqZWN0KiBpbmplY3RlZFNj
cmlwdCkKIHsKLSAgICBtX2luamVjdGVkU2NyaXB0LnNldChnbG9iYWxEYXRhKCksIHRoaXMsIGlu
amVjdGVkU2NyaXB0KTsKKyAgICBtX2luamVjdGVkU2NyaXB0LnNldE1heUJlTnVsbChnbG9iYWxE
YXRhKCksIHRoaXMsIGluamVjdGVkU2NyaXB0KTsKIH0KIAogSlNPYmplY3QqIEpTRE9NR2xvYmFs
T2JqZWN0OjppbmplY3RlZFNjcmlwdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggZmNiY2E2YWI3ZTFmYmVkMWJiYjVk
YjMyZTU1YzgyYWQ2OTI2ZWNmMi4uYWE3YjAzODJiZmM0YTE1NjE5ZmU3Zjk3NjdlMjcwZjExNDgw
NGVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcApAQCAtNzQsNiArNzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNE
T01XaW5kb3c6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKKyAgICBDT01QSUxFX0FTU0VS
VChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlw
ZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIEJhc2U6OnZpc2l0Q2hpbGRy
ZW4odmlzaXRvcik7CiAKICAgICBpbXBsKCktPnZpc2l0SlNFdmVudExpc3RlbmVycyh2aXNpdG9y
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAK
aW5kZXggYTk4NjE0NDFlODM2NTNjNzhmNGRhMzA0MWUzMTE3OGE5NDNkY2Q1MS4uYmY5ODU4M2My
ZDJlZTRkZjEyMTE1NzRhNDQwM2U4MzdkMzM5Zjk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTc1LDYgKzc1LDkgQEAgdm9pZCBK
U0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFzc1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRv
dykKIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7
CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxk
cmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NF
UlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAg
ICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIGlmIChtX3dpbmRvdykKICAgICAg
ICAgdmlzaXRvci5hcHBlbmQoJm1fd2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDVhN2Q3MjU0MWYxOWI1NDAwN2U2Y2I5OGUz
MzM0YzJhMTEzOWYyYTkuLmI2MjE0NWMwN2QyZGRlODVjNWJmNzIwYjcxMjI0NTFhZWM1YjQ0Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcApA
QCAtNDAsNyArNDAsNyBAQCBKU0V2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVj
dCogZnVuY3Rpb24sIEpTT2JqZWN0KiB3cmFwcGVyLCBib29sIGlzQQogICAgICwgbV9pc29sYXRl
ZFdvcmxkKGlzb2xhdGVkV29ybGQpCiB7CiAgICAgaWYgKHdyYXBwZXIpCi0gICAgICAgIG1fanNG
dW5jdGlvbi5zZXQoKm1faXNvbGF0ZWRXb3JsZC0+Z2xvYmFsRGF0YSgpLCB3cmFwcGVyLCBmdW5j
dGlvbik7CisgICAgICAgIG1fanNGdW5jdGlvbi5zZXRNYXlCZU51bGwoKm1faXNvbGF0ZWRXb3Js
ZC0+Z2xvYmFsRGF0YSgpLCB3cmFwcGVyLCBmdW5jdGlvbik7CiAgICAgZWxzZQogICAgICAgICBB
U1NFUlQoIWZ1bmN0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuaAppbmRleCAxNTkwMTY4MjdkYzBmZjc2NmM4OGE0NGFlN2Y3ZmYzMTRiYzRhMjg4
Li43MTk3ZjdiY2ZiZmE1NWM0MWY2YTM0NTE4ZTAwMGMwNGU3ZTIwNDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaApAQCAtNzUsNyArNzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgaW5saW5lIEpTQzo6SlNPYmplY3QqIEpTRXZlbnRMaXN0
ZW5lcjo6anNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKCFtX2pzRnVuY3Rpb24pCi0gICAgICAg
ICAgICBtX2pzRnVuY3Rpb24uc2V0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5nbG9iYWxEYXRh
KCksIG1fd3JhcHBlci5nZXQoKSwgaW5pdGlhbGl6ZUpTRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkpOworICAgICAgICAgICAgbV9qc0Z1bmN0aW9uLnNldE1heUJlTnVsbCgqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+Z2xvYmFsRGF0YSgpLCBtX3dyYXBwZXIuZ2V0KCksIGluaXRpYWxp
emVKU0Z1bmN0aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKIAogICAgICAgICAvLyBWZXJp
ZnkgdGhhdCB3ZSBoYXZlIGEgdmFsaWQgd3JhcHBlciBwcm90ZWN0aW5nIG91ciBmdW5jdGlvbiBm
cm9tCiAgICAgICAgIC8vIGdhcmJhZ2UgY29sbGVjdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwCmlu
ZGV4IDY1NjkyNWQxMzlmZGI1NTI2YWU4OWQxNzcwMmIwN2Y3ZGJlOWVhNWMuLmViYzIzYjM2Y2Qz
ZTQ3NTQ2MzdlNDIzZTdiNmNlNmEwMjQ5NzEwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3VzdG9tLmNwcApAQCAt
MzYsNiArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNKYXZhU2NyaXB0QXVk
aW9Ob2RlOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQo
U3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENo
aWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJ
bmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVu
KHZpc2l0b3IpOwogICAgIHN0YXRpY19jYXN0PEphdmFTY3JpcHRBdWRpb05vZGUqPihpbXBsKCkp
LT52aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCmluZGV4IDZlOGFh
MWE3NTcxNDc3YWVlMjRkYmYyNzU1MDM2NjBkMjI3MTdhYzAuLjM0ZjU5MzEzMzVmZDdhOGJlNzMz
MmFmNGJjOTRjYzc2OWFkMDJjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCkBAIC0zNSw2ICszNSw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAKIHZvaWQgSlNNZXNzYWdlQ2hhbm5lbDo6dmlzaXRDaGlsZHJl
bihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5n
RmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKIAogICAgIGlm
IChNZXNzYWdlUG9ydCogcG9ydCA9IG1faW1wbC0+cG9ydDEoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggMWJlYTRmN2I5
MWY0YzM4ODNkZjQxZjAwYTgyZmU2OWI4NWYwMWY3Yy4uZDM0OGUxMGYzMWQ3NDIzNjc4NmEyNDUy
ZTIzMjAyMTEyZDg4Njk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAgLTQzLDYgKzQzLDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEpTTWVzc2FnZVBvcnQ6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsK
KyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRy
ZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VS
VChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAg
IEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbG9j
YWxseSBlbnRhbmdsZWQgcG9ydCwgd2UgY2FuIGRpcmVjdGx5IG1hcmsgaXQgYXMgcmVhY2hhYmxl
LiBQb3J0cyB0aGF0IGFyZSByZW1vdGVseSBlbnRhbmdsZWQgYXJlIG1hcmtlZCBpbi11c2UgYnkg
bWFya0FjdGl2ZU9iamVjdHNGb3JDb250ZXh0KCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKaW5kZXggMWEzNmUzMzM5OTg2M2Q4
ZGM0OTU2ZmU1NDYyYWMzMmJkMWI4MDI5OS4uNDdmNTZhMjllZjQ0YWNjMDEwZjU3NDkyODcxYzZh
MGNhZWQ3MDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1l
ZE5vZGVNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcApAQCAtNDgsNiArNDgsOSBAQCBKU1ZhbHVlIEpTTmFtZWROb2Rl
TWFwOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3Qg
SWRlbgogCiB2b2lkIEpTTmFtZWROb2RlTWFwOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7
CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxk
cmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NF
UlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAg
ICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAgICAgLy8gV2UgbmVlZCB0byBrZWVw
IHRoZSB3cmFwcGVyIGZvciBvdXIgdW5kZXJseWluZyBOYW1lZE5vZGVNYXAncyBlbGVtZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCA0M2Y0ZjY2
YTgwYjMxMzMxNDc1YzhhZThlNjc4ZWJkNDVlMGRkZTE5Li41MWUzYmI4NmFhZWUzMmI1ZjIxNjU5
YmUxMzdjODJhNDQzMmZkZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAKQEAgLTE5NCw2ICsxOTQsOSBAQCBTY29wZUNoYWluTm9kZSogSlNOb2RlOjpw
dXNoRXZlbnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqIG5vZGUpCiAK
IHZvaWQgSlNOb2RlOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9B
U1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENo
aWxkcmVuKHZpc2l0b3IpOwogCiAgICAgTm9kZSogbm9kZSA9IG1faW1wbC5nZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCmluZGV4
IDFmY2Y0ODcwY2RlMDMyY2MxNjYxNTA3ODg3ZmYwMjExMWNjZDNjNjMuLmMxNTFjNTRjNGEwMmE5
NGY1YjIyZDQzYWE2NmEyZTQxOGZlMzIxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAtMzgsNiArMzgsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNOb2RlRmlsdGVyOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNf
aW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNp
dENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAg
ICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigp
KTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChpbXBsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCmluZGV4IDY4MmU5MTMzMTUyN2MxZGYwYjQwNjQzY2M1
NWY2YWY4NzU3YzlhYTUuLjAyZDEwOGQyNGY1ZGZhYWUwOTNhMWRlY2NhNWIyNzZjNzEzODhiMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAKQEAgLTMxLDYgKzMxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpT
Tm9kZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9B
U1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENo
aWxkcmVuKHZpc2l0b3IpOwogCiAgICAgaWYgKE5vZGVGaWx0ZXIqIGZpbHRlciA9IG1faW1wbC0+
ZmlsdGVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0Vs
ZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NW
R0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKaW5kZXggYjNiZWViNWE3YTA3N2NiZjUxYmMzZjM5
Njc2YjZhNDBjNTM1NTIxNS4uNDFhODRmNjhhMWQ3OWIxZDZmODk2MDIyMzQ3NGI0NTgxZGVjZTZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5z
dGFuY2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHRWxl
bWVudEluc3RhbmNlQ3VzdG9tLmNwcApAQCAtMzUsNiArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHZvaWQgSlNTVkdFbGVtZW50SW5zdGFuY2U6OnZpc2l0Q2hpbGRyZW4oSlNDOjpTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMs
ICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgSlNDOjpPdmVy
cmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdG
bGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgIHZpc2l0
b3IuYWRkT3BhcXVlUm9vdChyb290KGltcGwoKS0+Y29ycmVzcG9uZGluZ0VsZW1lbnQoKSkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDdXN0
b20uY3BwCmluZGV4IDMwMjNiYjI2Y2IxZTA4MDI2ZGFjOWQ2ZjdmZjE2ODg5NThmOTYxY2YuLmQy
YmJmNmNlYzRkN2Y0ZTE4ZDQxYjhiNDYwZGIxYmY2YTIxNDkzODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAKQEAgLTQ1LDYg
KzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpTU2hhcmVkV29ya2VyOjp2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxh
Z3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91
dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwog
CiAgICAgaWYgKE1lc3NhZ2VQb3J0KiBwb3J0ID0gaW1wbCgpLT5wb3J0KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcAppbmRleCA0MGI3
MTk3MzZmZmVkZDJiNDRkNmI0NzhiZmVjNmIwZTE0MGUzM2FhLi4yMWUwMGIxNjhjMjI1NDExODEx
NGQyYTQ5MWUxZTRlMjA1MTFjNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKQEAgLTM3LDYgKzM3LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB2b2lkIEpTU3R5bGVTaGVldDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYg
dmlzaXRvcikKIHsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8p
OworICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbiwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNT
RVJUKHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAg
ICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJv
b3Qocm9vdChpbXBsKCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1RyZWVXYWxrZXJDdXN0b20uY3BwCmluZGV4IDY5ZjZjM2JkNjNmOTkwMzcwMzVmNmFhMmE0N2I4
OTRjNDczOTFlZGIuLmRmZjM0NjljZTI5ODA3NDZhNTIzMWU1ZDEzNjM5NzQ1MGJmYzI2NWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cApAQCAtMzEsNiArMzEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB2b2lkIEpTVHJl
ZVdhbGtlcjo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKKyAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOworICAgIENPTVBJTEVfQVNTRVJU
KFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT50eXBl
SW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJl
bih2aXNpdG9yKTsKIAogICAgIGlmIChOb2RlRmlsdGVyKiBmaWx0ZXIgPSBtX2ltcGwtPmZpbHRl
cigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDVlZmM2MWFiNWY3ZDVmZDlhYTMyOTk4
NDUyNjI5OTZhZTc1M2UyNTMuLmQ0YTcwMmY3NzE5ZDY1YWRjMTVlY2ExZDA0ZjA5NmFlYjMxMjk4
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTE5NCw2ICsxOTQsOSBAQCBzdGF0aWMg
SlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgV2ViR0xFeHRlbgogCiB2b2lkIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdENo
aWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3Mg
JiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNl
dHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAg
IHZpc2l0b3IuYWRkT3BhcXVlUm9vdChpbXBsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggY2UzMGQ0NGM1
M2RjOWMyMjQzYzBjYzhmNWYyZDI2YjBlZjZiMzA3OC4uMDU4YWNmNzZkYTcwMmZmYzhkOTAwYzkw
YzVkOWZiYWE2YjgzNWM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCkBAIC01NSw2ICs1NSw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogdm9pZCBKU1dvcmtlckNvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19p
bmZvKTsKKyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAg
IEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkp
OwogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odmlzaXRvcik7CiAKICAgICBpZiAoV29ya2VyTG9j
YXRpb24qIGxvY2F0aW9uID0gaW1wbCgpLT5vcHRpb25hbExvY2F0aW9uKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmlu
ZGV4IDkwMGM3OWEzNTkyNTY5YTIwYWMzNTMzNWM5YzNlZTE0NjllMjIyZmYuLjI1NzU3NTY2NjZk
ZmU2MGU3YTNkMjRkYTdhMDkxZWEwMzNiOTFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC01Niw2ICs1Niw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU1hNTEh0dHBSZXF1ZXN0Ojp2aXNpdENo
aWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3Mg
JiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNl
dHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogCiAg
ICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQgPSBtX2ltcGwtPm9wdGlvbmFsVXBs
b2FkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRD
dXN0b20uY3BwCmluZGV4IDNiODNlZTdiYjgxOWMyN2EzMDNhN2YxZjEyOThiMmJkMTU3NjYxZGQu
LmFkOTAwNWZmODI1ZjI3ZmQ0OWViZjE0M2NjN2ZjMmQ2MGFiNjBjMWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCkBAIC0zOCw2
ICszOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU1hQYXRoUmVzdWx0Ojp2aXNp
dENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpcywgJnNfaW5mbyk7CisgICAgQ09NUElMRV9BU1NFUlQoU3RydWN0dXJlRmxh
Z3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuV2l0aG91
dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbigpKTsKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOwog
CiAgICAgY29uc3QgWFBhdGg6OlZhbHVlJiB4cGF0aFZhbHVlID0gaW1wbCgpLT52YWx1ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCA5MmFlNWY5MWVkM2EwNzg0OTc4YjE2NWEzNzJhNjhlMjNkODY4MGM3Li43NGM4ZDM4
ZDJiNzNlMThmMzU4MTE5OWQ3NTA0MTE3NzAzNzNlZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtOTA3LDEwICs5MDcs
MTIgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IklubGluZUdldE93blByb3BlcnR5U2xvdCJ9ICYmICEkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifSkgewogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5
KCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAk
bnVtQXR0cmlidXRlcyA+IDAsIDEpKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn1c
blxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJBTFdBWVNfSU5MSU5FIGJvb2wg
JHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
e1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkoJGRhdGFOb2RlLCAkaW50
ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4g
MCwgMSkpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifVxuXG4iKTsKICAgICB9CkBA
IC0xNDUyLDYgKzE0NTQsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIGlmICgk
bmVlZHNNYXJrQ2hpbGRyZW4gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbU1hcmtGdW5jdGlvbiJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX06OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOwor
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVG
bGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRo
b3V0U2V0dGluZ0ZsYWcpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFT
U0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpO1xu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4o
dmlzaXRvcik7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wbCgpLT52
aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOwpAQCAtMTQ4NCwxMCArMTQ4OSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IklubGluZUdldE93blByb3BlcnR5U2xvdCJ9ICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifSkgewogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXMsICZzX2luZm8pO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2Vu
ZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRj
bGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDApKTsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keSgkZGF0YU5v
ZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJp
YnV0ZXMgPiAwLCAwKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7
CiAgICAgICAgIH0KQEAgLTE0OTYsNiArMTUwMyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICAgICAgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHByb3BlcnR5TmFt
ZSA8IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIp
OwogICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1
c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
TnVtZXJpY0luZGV4R2V0dGVyIn0pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZShnZXRCeUluZGV4KGV4ZWMsIHByb3BlcnR5TmFtZSkp
O1xuIik7CkBAIC0xNjQ3LDYgKzE2NTUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Q
dXRGdW5jdGlvbiJ9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lk
ICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywg
JnNfaW5mbyk7XG4iKTsKICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkgewogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIG9rO1xuIik7CiAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1l
LnRvVUludDMyKG9rKTtcbiIpOwpAQCAtMTY3MSw2ICsxNjgwLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW5kZXhTZXR0ZXIoZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm47XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CkBAIC0xODI1LDYgKzE4MzUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgIGlmICgoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhH
ZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRl
eEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJ
bmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
R2V0UHJvcGVydHlOYW1lcyJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOwog
ICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0
ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdl
dHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRl
eEdldHRlciJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8JHtpbXBsQ2xhc3NOYW1lfSo+KGltcGwoKSkt
Pmxlbmd0aCgpOyArK2kpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTtcbiIpOwpA
QCAtMTg3NSw2ICsxODg2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
Y2xhc3NOYW1lKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0
KHRoaXNWYWx1ZSkpO1xuIik7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICYke2Ns
YXNzTmFtZX06OnNfaW5mbyk7XG4iKTsKIAogICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrRG9tYWluU2VjdXJpdHkifSAmJiAKICAgICAgICAgICAg
ICAgICAhJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENo
ZWNrRG9tYWluU2VjdXJpdHkifSkgewpAQCAtMjEwNiw2ICsyMTE4LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbkpTVmFsdWUgJHtj
bGFzc05hbWV9OjppbmRleEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2Us
IHVuc2lnbmVkIGluZGV4KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iaiA9
IHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iaiwgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgaWYgKEluZGV4R2V0dGVyUmV0dXJuc1N0cmlu
Z3MoJGltcGxDbGFzc05hbWUpKSB7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJLVVJMLmgi
fSA9IDE7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4ganNTdHJp
bmdPck51bGwoZXhlYywgdGhpc09iai0+aW1wbCgpLT5pdGVtKGluZGV4KSk7XG4iKTsKQEAgLTIx
MjIsNiArMjEzNSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5KU1ZhbHVlICR7Y2xhc3NOYW1lfTo6Z2V0QnlJ
bmRleChFeGVjU3RhdGUqLCB1bnNpZ25lZCBpbmRleClcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBqc051bWJlcihzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFt
ZSo+KGltcGwoKSktPml0ZW0oaW5kZXgpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CiAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTENvbGxlY3Rp
b24iIG9yICRpbnRlcmZhY2VOYW1lIGVxICJIVE1MQWxsQ29sbGVjdGlvbiIpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAzNmJmYWI2YjY2OGIwMjkxZTc3ZTZmZTNjMDNmN2M1NGI5NDUzZTI4Li5lN2ExNjZiNjAz
NWU5MzRiNjRjNjM3Mjk2YmQ5MzMwODQ1MmY2ZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTEtMDUtMTMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEdDIHZhbGlkYXRp
b24gbW9yZSBhZ2dyZXNzaXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MDgwMgorCisgICAgICAgIEFkZCBHQ19WQUxJREFUSU9OIGNhbGxzIHRvIGFs
bCB0aGUgSlNOUE9iamVjdCBtZXRob2RzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0Ojpp
bnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Y2FsbE1ldGhvZCk6Cisg
ICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OmNhbGxPYmplY3QpOgorICAgICAgICAoV2ViS2l0
OjpKU05QT2JqZWN0OjpjYWxsQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2Jq
ZWN0OjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OmdldENvbnN0
cnVjdERhdGEpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpwdXQpOgorICAgICAgICAoV2ViS2l0
OjpKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdlYktpdDo6SlNO
UE9iamVjdDo6cHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0Ojpt
ZXRob2RHZXR0ZXIpOgorCiAyMDExLTA1LTEyICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5j
cHAKaW5kZXggZjIzYzgzZGQ0MjI0MDFhZWNiNTMxNGY3MzBmMmQ3ZDdlYTg5OTRmYS4uZGQ4NzQ5
Y2JjNmM4Njg0NDU5YmU0NDJjMDkzMTNlZWZkMTNjNDdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApA
QCAtNzIsNiArNzIsNyBAQCBKU05QT2JqZWN0Ojp+SlNOUE9iamVjdCgpCiB2b2lkIEpTTlBPYmpl
Y3Q6OmludmFsaWRhdGUoKQogewogICAgIEFTU0VSVChtX25wT2JqZWN0KTsKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwogCiAgICAgcmVsZWFzZU5QT2JqZWN0
KG1fbnBPYmplY3QpOwogICAgIG1fbnBPYmplY3QgPSAwOwpAQCAtNzksNiArODAsNyBAQCB2b2lk
IEpTTlBPYmplY3Q6OmludmFsaWRhdGUoKQogCiBKU1ZhbHVlIEpTTlBPYmplY3Q6OmNhbGxNZXRo
b2QoRXhlY1N0YXRlKiBleGVjLCBOUElkZW50aWZpZXIgbWV0aG9kTmFtZSkKIHsKKyAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwogICAgIGlmICghbV9ucE9iamVj
dCkKICAgICAgICAgcmV0dXJuIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogCkBAIC0x
MTgsNiArMTIwLDcgQEAgSlNWYWx1ZSBKU05QT2JqZWN0OjpjYWxsTWV0aG9kKEV4ZWNTdGF0ZSog
ZXhlYywgTlBJZGVudGlmaWVyIG1ldGhvZE5hbWUpCiAKIEpTQzo6SlNWYWx1ZSBKU05QT2JqZWN0
OjpjYWxsT2JqZWN0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogeworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CiAgICAgaWYgKCFtX25wT2JqZWN0KQogICAgICAg
ICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAKQEAgLTE1Nyw2ICsxNjAs
NyBAQCBKU0M6OkpTVmFsdWUgSlNOUE9iamVjdDo6Y2FsbE9iamVjdChKU0M6OkV4ZWNTdGF0ZSog
ZXhlYykKIAogSlNWYWx1ZSBKU05QT2JqZWN0OjpjYWxsQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CiAg
ICAgaWYgKCFtX25wT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJy
b3IoZXhlYyk7CiAKQEAgLTIwMCw2ICsyMDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsTlBKU09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiAKIEpTQzo6Q2FsbFR5
cGUgSlNOUE9iamVjdDo6Z2V0Q2FsbERhdGEoSlNDOjpDYWxsRGF0YSYgY2FsbERhdGEpCiB7Cisg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKICAgICBpZiAoIW1f
bnBPYmplY3QgfHwgIW1fbnBPYmplY3QtPl9jbGFzcy0+aW52b2tlRGVmYXVsdCkKICAgICAgICAg
cmV0dXJuIENhbGxUeXBlTm9uZTsKIApAQCAtMjE3LDYgKzIyMiw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCiAKIENvbnN0cnVjdFR5cGUgSlNOUE9iamVjdDo6Z2V0Q29uc3RydWN0RGF0YShDb25z
dHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpcywgJnNfaW5mbyk7CiAgICAgaWYgKCFtX25wT2JqZWN0IHx8ICFtX25wT2JqZWN0LT5f
Y2xhc3MtPmNvbnN0cnVjdCkKICAgICAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVOb25lOwogCkBA
IC0yMjYsNiArMjMyLDcgQEAgQ29uc3RydWN0VHlwZSBKU05QT2JqZWN0OjpnZXRDb25zdHJ1Y3RE
YXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiAKIGJvb2wgSlNOUE9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzLCAmc19pbmZvKTsKICAgICBpZiAoIW1fbnBPYmplY3QpIHsKICAgICAgICAgdGhy
b3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI1
MCw2ICsyNTcsNyBAQCBib29sIEpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TgogCiBib29sIEpTTlBPYmplY3Q6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CiAgICAgaWYgKCFtX25w
T2JqZWN0KSB7CiAgICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yNzgsNiArMjg2LDcgQEAgYm9vbCBKU05QT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm8KIAogdm9pZCBKU05QT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCiB7Cisg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKICAgICBpZiAoIW1f
bnBPYmplY3QpIHsKICAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTMxNSw2ICszMjQsNyBAQCB2b2lkIEpTTlBPYmplY3Q6OnB1dChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YQog
CiB2b2lkIEpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lQXJyYXksIEVudW1lcmF0aW9uTW9kZSBtb2Rl
KQogeworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7CiAgICAg
aWYgKCFtX25wT2JqZWN0KSB7CiAgICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMp
OwogICAgICAgICByZXR1cm47CkBAIC0zNjIsNyArMzcyLDggQEAgdm9pZCBKU05QT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnQKIEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgSlNOUE9iamVjdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihhc09iamVj
dChzbG90QmFzZSkpOwotCisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCAm
c19pbmZvKTsKKyAgICAKICAgICBpZiAoIXRoaXNPYmotPm1fbnBPYmplY3QpCiAgICAgICAgIHJl
dHVybiB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihleGVjKTsKIApAQCAtMzk3LDYgKzQwOCw3IEBA
IEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHNsb3RCYXNlLCBjb25zdCBJZGVuCiBKU1ZhbHVlIEpTTlBPYmplY3Q6Om1ldGhvZEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIG1l
dGhvZE5hbWUpCiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTlBP
YmplY3QqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iaiwgJnNfaW5mbyk7CiAgICAgCiAgICAgaWYgKCF0aGlzT2JqLT5tX25wT2JqZWN0
KQogICAgICAgICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>93550</attachid>
            <date>2011-05-14 01:09:00 -0700</date>
            <delta_ts>2011-05-14 01:09:00 -0700</delta_ts>
            <desc>crash log from debug Qt bot</desc>
            <filename>crashlog.txt</filename>
            <type>text/plain</type>
            <size>4034</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U2VnbWVudGF0aW9uIGZhdWx0CjA6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dl
YktpdEJ1aWxkL0RlYnVnL2Jpbi9EdW1wUmVuZGVyVHJlZSgpIFsweDgwN2MyNjRdCjE6IC9yYW1k
aXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2Jpbi9EdW1wUmVu
ZGVyVHJlZSgpIFsweDgwN2M1MGFdCjI6IFsweGY3NzI5NDAwXQozOiAvcmFtZGlzay9xdC1saW51
eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNCgr
MHgyMzc4NWNkKSBbMHhmNjRhMTVjZF0KNDogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVp
bGQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoKzB4MTIwY2JjNCkgWzB4
ZjUzMzViYzRdCjU6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxk
L0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KCsweDEyMzk5YzYpIFsweGY1MzYyOWM2XQo2OiAv
cmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGli
UXRXZWJLaXQuc28uNChKU0M6OkJpbmRpbmdzOjpRdEluc3RhbmNlOjpyZW1vdmVDYWNoZWRNZXRo
b2QoSlNDOjpKU09iamVjdCopKzB4N2QpIFsweGY1ODY1ZjQ3XQo3OiAvcmFtZGlzay9xdC1saW51
eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChK
U0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRob2Q6On5RdFJ1bnRpbWVNZXRob2QoKSsweDRkKSBb
MHhmNTg3MDZjOV0KODogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVp
bGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lTWV0
YU1ldGhvZDo6flF0UnVudGltZU1ldGFNZXRob2QoKSsweDJiKSBbMHhmNTg3ZjM5OV0KOTogL3Jh
bWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0
V2ViS2l0LnNvLjQoKzB4MjQyNTQyNCkgWzB4ZjY1NGU0MjRdCjEwOiAvcmFtZGlzay9xdC1saW51
eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNCgr
MHgyMzIxZjczKSBbMHhmNjQ0YWY3M10KMTE6IC9yYW1kaXNrL3F0LWxpbnV4LTMyLWRlYnVnL2J1
aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KCsweDIzMWE2MjkpIFsw
eGY2NDQzNjI5XQoxMjogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVp
bGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoKzB4MjMxYTU2MSkgWzB4ZjY0NDM1NjFdCjEz
OiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIv
bGliUXRXZWJLaXQuc28uNCgrMHgxNmI5MzRjKSBbMHhmNTdlMjM0Y10KMTQ6IC9yYW1kaXNrL3F0
LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5z
by40KFdlYkNvcmU6OkdDQ29udHJvbGxlcjo6Z2NUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFdl
YkNvcmU6OkdDQ29udHJvbGxlcj4qKSsweDEyKSBbMHhmNTdlMjU5OF0KMTU6IC9yYW1kaXNrL3F0
LWxpbnV4LTMyLWRlYnVnL2J1aWxkL1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5z
by40KFdlYkNvcmU6OlRpbWVyPFdlYkNvcmU6OkdDQ29udHJvbGxlcj46OmZpcmVkKCkrMHg1NCkg
WzB4ZjU3ZTI3MWNdCjE2OiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRC
dWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpUaHJlYWRUaW1lcnM6OnNo
YXJlZFRpbWVyRmlyZWRJbnRlcm5hbCgpKzB4YWYpIFsweGY1ZTA5NDliXQoxNzogL3JhbWRpc2sv
cXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0
LnNvLjQoV2ViQ29yZTo6VGhyZWFkVGltZXJzOjpzaGFyZWRUaW1lckZpcmVkKCkrMHgyNykgWzB4
ZjVlMDkzZTVdCjE4OiAvcmFtZGlzay9xdC1saW51eC0zMi1kZWJ1Zy9idWlsZC9XZWJLaXRCdWls
ZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpTaGFyZWRUaW1lclF0Ojp0aW1l
ckV2ZW50KFFUaW1lckV2ZW50KikrMHg2MikgWzB4ZjVmZTJmOWFdCjE5OiAvdXNyL2xvY2FsL1Ry
b2xsdGVjaC9RdC00LjcuMy9saWIvbGliUXRDb3JlLnNvLjQoUU9iamVjdDo6ZXZlbnQoUUV2ZW50
KikrMHg4NCkgWzB4ZjMzNTU2MjRdCjIwOiAvdXNyL2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMy9s
aWIvbGliUXRHdWkuc28uNChRQXBwbGljYXRpb25Qcml2YXRlOjpub3RpZnlfaGVscGVyKFFPYmpl
Y3QqLCBRRXZlbnQqKSsweGFjKSBbMHhmMzVkOGU4Y10KMjE6IC91c3IvbG9jYWwvVHJvbGx0ZWNo
L1F0LTQuNy4zL2xpYi9saWJRdEd1aS5zby40KFFBcHBsaWNhdGlvbjo6bm90aWZ5KFFPYmplY3Qq
LCBRRXZlbnQqKSsweDE3YSkgWzB4ZjM1ZTAyOGFdCjIyOiAvdXNyL2xvY2FsL1Ryb2xsdGVjaC9R
dC00LjcuMy9saWIvbGliUXRDb3JlLnNvLjQoUUNvcmVBcHBsaWNhdGlvbjo6bm90aWZ5SW50ZXJu
YWwoUU9iamVjdCosIFFFdmVudCopKzB4N2IpIFsweGYzMzQzNjFiXQoyMzogL3Vzci9sb2NhbC9U
cm9sbHRlY2gvUXQtNC43LjMvbGliL2xpYlF0Q29yZS5zby40KCsweDFhNDA4NykgWzB4ZjMzNzUw
ODddCjI0OiAvdXNyL2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMy9saWIvbGliUXRDb3JlLnNvLjQo
KzB4MWEwZjk0KSBbMHhmMzM3MWY5NF0KMjU6IC9saWIvbGliZ2xpYi0yLjAuc28uMChnX21haW5f
Y29udGV4dF9kaXNwYXRjaCsweDFkNSkgWzB4ZjIzZGQzMDVdCjI2OiAvbGliL2xpYmdsaWItMi4w
LnNvLjAoKzB4M2VmZTgpIFsweGYyM2UwZmU4XQoyNzogL2xpYi9saWJnbGliLTIuMC5zby4wKGdf
bWFpbl9jb250ZXh0X2l0ZXJhdGlvbisweDY4KSBbMHhmMjNlMTFjOF0KMjg6IC91c3IvbG9jYWwv
VHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdENvcmUuc28uNChRRXZlbnREaXNwYXRjaGVyR2xp
Yjo6cHJvY2Vzc0V2ZW50cyhRRmxhZ3M8UUV2ZW50TG9vcDo6UHJvY2Vzc0V2ZW50c0ZsYWc+KSsw
eDY1KSBbMHhmMzM3MWM4NV0KMjk6IC91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9s
aWJRdEd1aS5zby40KCsweDIxYjcyNSkgWzB4ZjM2OTM3MjVdCjMwOiAvdXNyL2xvY2FsL1Ryb2xs
dGVjaC9RdC00LjcuMy9saWIvbGliUXRDb3JlLnNvLjQoUUV2ZW50TG9vcDo6cHJvY2Vzc0V2ZW50
cyhRRmxhZ3M8UUV2ZW50TG9vcDo6UHJvY2Vzc0V2ZW50c0ZsYWc+KSsweDQ5KSBbMHhmMzM0MjBj
OV0KMzE6IC91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdENvcmUuc28uNChR
RXZlbnRMb29wOjpleGVjKFFGbGFnczxRRXZlbnRMb29wOjpQcm9jZXNzRXZlbnRzRmxhZz4pKzB4
ZmEpIFsweGYzMzQyNTRhXQozMjogL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjMvbGliL2xp
YlF0Q29yZS5zby40KFFDb3JlQXBwbGljYXRpb246OmV4ZWMoKSsweGFmKSBbMHhmMzM0NmEzZl0K
MzM6IC91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4zL2xpYi9saWJRdEd1aS5zby40KFFBcHBs
aWNhdGlvbjo6ZXhlYygpKzB4MjcpIFsweGYzNWQ3ZWQ3XQozNDogL3JhbWRpc2svcXQtbGludXgt
MzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQvRGVidWcvYmluL0R1bXBSZW5kZXJUcmVlKCkgWzB4
ODA3Y2RiOF0KMzU6IC9saWIvbGliYy5zby42KF9fbGliY19zdGFydF9tYWluKzB4ZTYpIFsweGYy
ZjRmYzc2XQozNjogL3JhbWRpc2svcXQtbGludXgtMzItZGVidWcvYnVpbGQvV2ViS2l0QnVpbGQv
RGVidWcvYmluL0R1bXBSZW5kZXJUcmVlKCkgWzB4ODA2M2E3MV0KCkxFQUs6IDExIFdlYkNvcmVO
b2RlCkxFQUs6IDQgQ2FjaGVkUmVzb3VyY2UKTEVBSzogMiBTdWJyZXNvdXJjZUxvYWRlcgpMRUFL
OiAxIEZyYW1lCkxFQUs6IDEgUGFnZQpMRUFLOiAyIFJlbmRlck9iamVjdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>