<?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>80457</bug_id>
          
          <creation_ts>2012-03-06 17:13:42 -0800</creation_ts>
          <short_desc>Further harden 64-bit JIT</short_desc>
          <delta_ts>2012-03-07 17:07:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>572302</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-03-06 17:13:42 -0800</bug_when>
    <thetext>Further harden 64-bit JIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572310</commentid>
    <comment_count>1</comment_count>
      <attachid>130483</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-03-06 17:17:35 -0800</bug_when>
    <thetext>Created attachment 130483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572317</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 17:23:57 -0800</bug_when>
    <thetext>Attachment 130483 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/assembler/X86Assembler.h:645:  xorq_rm is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/assembler/X86Assembler.h:650:  rorq_i8r is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572323</commentid>
    <comment_count>3</comment_count>
      <attachid>130483</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-06 17:25:58 -0800</bug_when>
    <thetext>Comment on attachment 130483
Patch

Attachment 130483 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11838628</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572352</commentid>
    <comment_count>4</comment_count>
      <attachid>130497</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-03-06 17:43:11 -0800</bug_when>
    <thetext>Created attachment 130497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572361</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 17:46:23 -0800</bug_when>
    <thetext>Attachment 130497 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/assembler/X86Assembler.h:645:  xorq_rm is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/assembler/X86Assembler.h:650:  rorq_i8r is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572370</commentid>
    <comment_count>6</comment_count>
      <attachid>130497</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-06 17:56:53 -0800</bug_when>
    <thetext>Comment on attachment 130497
Patch

Attachment 130497 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11836646</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573309</commentid>
    <comment_count>7</comment_count>
      <attachid>130497</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-07 15:37:09 -0800</bug_when>
    <thetext>Comment on attachment 130497
Patch

Attachment 130497 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11843002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573369</commentid>
    <comment_count>8</comment_count>
      <attachid>130727</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-03-07 16:54:01 -0800</bug_when>
    <thetext>Created attachment 130727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573374</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 16:57:41 -0800</bug_when>
    <thetext>Attachment 130727 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/assembler/X86Assembler.h:645:  xorq_rm is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/assembler/X86Assembler.h:650:  rorq_i8r is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573375</commentid>
    <comment_count>10</comment_count>
      <attachid>130727</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-07 16:58:39 -0800</bug_when>
    <thetext>Comment on attachment 130727
Patch

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573382</commentid>
    <comment_count>11</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-03-07 17:07:50 -0800</bug_when>
    <thetext>Committed r110122: &lt;http://trac.webkit.org/changeset/110122&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130483</attachid>
            <date>2012-03-06 17:17:35 -0800</date>
            <delta_ts>2012-03-06 17:43:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80457-20120306171734.patch</filename>
            <type>text/plain</type>
            <size>52784</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OTQ0M2I2ZTExM2ZkZDkyMmU1ODkwNzQwNTFlYmFjYzhkYzVkOTExLi4zYzYyNjhlYWZiNWMwN2E4
YzQyZmI4ZDBjYjcwOThmNjE1MjA4MDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTEgQEAKKzIwMTItMDMtMDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBGdXJ0aGVyIGhhcmRlbiA2NC1iaXQgSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBibGluZGlu
ZyBmb3IgSW1tUHRyLiAgUmF0aGVyIHRoYW4geG9yIGJhc2VkIGJsaW5kaW5nCisgICAgICAgIHdl
IHBlcmZvcm0gcmFuZG9taXNlZCBwb2ludGVyIHJvdGF0aW9ucyBpbiBvcmRlciB0byBhdm9pZCB0
aGUgc2lnbmlmaWNhbnQKKyAgICAgICAgY29zdCBpbiBleGVjdXRhYmxlIG1lbW9yeSB0aGF0IHdv
dWxkIG90aGVyd2lzZSBiZSBuZWNlc3NhcnkgKGFuZCB0byBhdm9pZAorICAgICAgICB0aGUgbmVl
ZCBmb3IgYW4gYWRkaXRpb25hbCBzY3JhdGNoIHJlZ2lzdGVyIGluIHNvbWUgY2FzZXMpLgorCisg
ICAgICAgIEFzIHdpdGggdGhlIHByaW9yIGJsaW5kaW5nIHBhdGNoIHRoZXJlJ3MgYSBtb2RlcmF0
ZSBhbW91bnQgb2Ygbm9pc2UgYXMgd2UKKyAgICAgICAgY29ycmVjdCB0aGUgdXNlIG9mIEltbVB0
ciB2cy4gVHJ1c3RlZEltbVB0ci4KKworICAgICAgICAqIGFzc2VtYmxlci9BYnN0cmFjdE1hY3Jv
QXNzZW1ibGVyLmg6CisgICAgICAgIChJbW1QdHIpOgorICAgICAgICAoSlNDOjpBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyOjpJbW1QdHI6OmFzVHJ1c3RlZEltbVB0cik6CisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChNYWNyb0Fzc2VtYmxlcik6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyOjpicmFuY2hQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c2hvdWxk
QmxpbmQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6Um90YXRlZEltbVB0cjo6Um90
YXRlZEltbVB0cik6CisgICAgICAgIChSb3RhdGVkSW1tUHRyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OnJvdGF0aW9uQmxpbmRDb25zdGFudCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6Y29udmVydEludDMyVG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlcjo6bW92ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwb2tlKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmJyYW5jaEFkZDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyWDg2XzY0KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnJvdGF0ZVJpZ2h0UHRyKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnhvclB0cik6CisgICAgICAgICogYXNzZW1ibGVy
L1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoWDg2QXNzZW1ibGVyKToKKyAgICAgICAgKEpTQzo6
WDg2QXNzZW1ibGVyOjp4b3JxX3JtKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpyb3Jx
X2k4cik6CisgICAgICAgICogZGZnL0RGR0NDYWxsSGVscGVycy5oOgorICAgICAgICAoQ0NhbGxI
ZWxwZXJzKToKKyAgICAgICAgKEpTQzo6REZHOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNyZWF0ZU9T
UkVudHJpZXMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsR1BSKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmVtaXRFZGdlQ29kZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2VyKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbERvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
T2JqZWN0RXF1YWxpdHkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlTG9naWNhbE5vdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRC
cmFuY2gpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRP
cHRpbWl6YXRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcG9zdF9pbmMpOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldFZpcnR1YWxSZWdpc3Rlcik6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
bW92KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25ld19vYmplY3QpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3Bfc3RyY2F0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Vu
c3VyZV9wcm9wZXJ0eV9leGlzdHMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2
ZV9za2lwKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9yZXNvbHZlX2dsb2JhbCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9qbXBfc2NvcGVzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRj
aF9pbW0pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3dpdGNoX2NoYXIpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3dpdGNoX3N0cmluZyk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF90aHJvd19yZWZlcmVuY2VfZXJyb3IpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfZGVidWcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFs
X2R5bmFtaWMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmV3X2FycmF5KToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9uZXdfYXJyYXkpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfbmV3X2FycmF5X2J1ZmZlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9uZXdfb2JqZWN0KToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX3N0cmNhdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9l
bnN1cmVfcHJvcGVydHlfZXhpc3RzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Jlc29s
dmVfc2tpcCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX2Jhc2UpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3RoaXMpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3Bfam1wX3Njb3Blcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zd2l0
Y2hfaW1tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRjaF9jaGFyKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRjaF9zdHJpbmcpOgorICAgICAgICAqIGppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9i
eV9pbmRleCk6CisgICAgICAgICogaml0L0pJVFN0dWJDYWxsLmg6CisgICAgICAgIChKSVRTdHVi
Q2FsbCk6CisgICAgICAgIChKU0M6OkpJVFN0dWJDYWxsOjphZGRBcmd1bWVudCk6CisKIDIwMTIt
MDMtMDYgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBHQ0FjdGl2aXR5Q2FsbGJhY2sgdGltZXIgc2hvdWxkIHZhcnkgd2l0aCB0aGUgbGVuZ3RoIG9m
IHRoZSBwcmV2aW91cyBHQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCAzYjlmYTU5ZDBhOGI3ODA2Mzk3
ZmNiMjdjMDRkZTFiNTQ4YzcyNmJmLi44MTYzYmFlNjM0YmEyODJjOTgxNmIyZWFmYzgwM2UyOWYw
MjU1YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3Ry
YWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtMTk2LDExICsxOTYsMTkgQEAgcHVibGljOgog
ICAgICAgICBjb25zdCB2b2lkKiBtX3ZhbHVlOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgSW1tUHRy
IDogcHVibGljIFRydXN0ZWRJbW1QdHIgeworICAgIHN0cnVjdCBJbW1QdHIgOiAKKyNpZiBFTkFC
TEUoSklUX0NPTlNUQU5UX0JMSU5ESU5HKQorICAgICAgICBwcml2YXRlIFRydXN0ZWRJbW1QdHIg
CisjZWxzZQorICAgICAgICBwdWJsaWMgVHJ1c3RlZEltbVB0cgorI2VuZGlmCisgICAgewogICAg
ICAgICBleHBsaWNpdCBJbW1QdHIoY29uc3Qgdm9pZCogdmFsdWUpCiAgICAgICAgICAgICA6IFRy
dXN0ZWRJbW1QdHIodmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgfQorCisgICAgICAgIFRydXN0
ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkgeyByZXR1cm4gKnRoaXM7IH0KICAgICB9OwogCiAg
ICAgLy8gVHJ1c3RlZEltbTMyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oCmluZGV4IDc4MDg3MjNiZjgwYWIwN2E3ZjU3ZTI0NWQ5OWY3MGRl
MmUyZTQwMmYuLmFjZDI0ODZjOGMyMzAxNjA2ZDU0MzQ4NTY2NDM5NTIxNTFhNTJkNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAg
LTM5OCw2ICszOTgsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc3RvcmUzMihUcnVzdGVk
SW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQorICAgIAorICAgIHZvaWQgc3RvcmVQdHIoSW1t
UHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgc3RvcmUzMihJbW0zMihp
bW0uYXNUcnVzdGVkSW1tUHRyKCkpLCBhZGRyZXNzKTsKKyAgICB9CiAKICAgICB2b2lkIHN0b3Jl
UHRyKFRydXN0ZWRJbW1QdHIgaW1tLCB2b2lkKiBhZGRyZXNzKQogICAgIHsKQEAgLTQwOSw3ICs0
MTQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQ
YXRjaChzcmMsIGFkZHJlc3MpOwogICAgIH0KIAotCiAgICAgSnVtcCBicmFuY2hQdHIoUmVsYXRp
b25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQpCiAg
ICAgewogICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgcmlnaHQpOwpAQCAtNDE5
LDYgKzQyMywxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29u
ZCwgbGVmdCwgVHJ1c3RlZEltbTMyKHJpZ2h0KSk7CiAgICAgfQorICAgIAorICAgIEp1bXAgYnJh
bmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW1QdHIg
cmlnaHQpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgSW1tMzIo
cmlnaHQuYXNUcnVzdGVkSW1tUHRyKCkpKTsKKyAgICB9CiAKICAgICBKdW1wIGJyYW5jaFB0cihS
ZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgQWRkcmVzcyByaWdodCkK
ICAgICB7CkBAIC00MzksNyArNDQ4LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJu
IGJyYW5jaDMyKGNvbmQsIGxlZnQsIFRydXN0ZWRJbW0zMihyaWdodCkpOwogICAgIH0KLQorICAg
IAogICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgQWJzb2x1dGVB
ZGRyZXNzIGxlZnQsIFRydXN0ZWRJbW1QdHIgcmlnaHQpCiAgICAgewogICAgICAgICByZXR1cm4g
YnJhbmNoMzIoY29uZCwgbGVmdCwgVHJ1c3RlZEltbTMyKHJpZ2h0KSk7CkBAIC00NjUsNyArNDc0
LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDMyKGNvbmQsIGFkZHJlc3Ms
IG1hc2spOwogICAgIH0KIAotCiAgICAgSnVtcCBicmFuY2hBZGRQdHIoUmVzdWx0Q29uZGl0aW9u
IGNvbmQsIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYnJhbmNoQWRkMzIoY29uZCwgc3JjLCBkZXN0KTsKQEAgLTQ4NywxOCArNDk1LDEwMiBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjphbmRQdHI7CiAgICAgdXNp
bmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpicmFuY2hTdWJQdHI7CiAgICAgdXNpbmcgTWFjcm9Bc3Nl
bWJsZXJCYXNlOjpjb252ZXJ0SW50MzJUb0RvdWJsZTsKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxl
ckJhc2U6OnN0b3JlUHRyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6c3ViUHRyOwor
ICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6eG9yUHRyOwogICAgIAorICAgIGJvb2wgc2hv
dWxkQmxpbmQoSW1tUHRyIGltbSkKKyAgICB7IAorICAgICAgICBBU1NFUlQoIWluVW5pbnRlcnJ1
cHRlZFNlcXVlbmNlKCkpOworI2lmICFkZWZpbmVkKE5ERUJVRykKKyAgICAgICAgVU5VU0VEX1BB
UkFNKGltbSk7CisgICAgICAgIC8vIERlYnVnIGFsd2F5cyBibGluZCBhbGwgY29uc3RhbnRzLCBp
ZiBvbmx5IHNvIHdlIGtub3cKKyAgICAgICAgLy8gaWYgd2UndmUgYnJva2VuIGJsaW5kaW5nIGR1
cmluZyBwYXRjaCBkZXZlbG9wbWVudC4KKyAgICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAg
ICAgICAKKyAgICAgICAgLy8gRmlyc3Qgb2ZmIHdlJ2xsIHNwZWNpYWwgY2FzZSBjb21tb24sICJz
YWZlIiB2YWx1ZXMgdG8gYXZvaWQgaHVydGluZworICAgICAgICAvLyBwZXJmb3JtYW5jZSB0b28g
bXVjaAorICAgICAgICB1aW50cHRyX3QgdmFsdWUgPSBpbW0uYXNUcnVzdGVkSW1tUHRyKCkubV92
YWx1ZTsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBjYXNlIDB4ZmZmZjoKKyAg
ICAgICAgY2FzZSAweGZmZmZmZjoKKyAgICAgICAgY2FzZSAweGZmZmZmZmZmTDoKKyAgICAgICAg
Y2FzZSAweGZmZmZmZmZmZmZMOgorICAgICAgICBjYXNlIDB4ZmZmZmZmZmZmZmZmTDoKKyAgICAg
ICAgY2FzZSAweGZmZmZmZmZmZmZmZmZmTDoKKyAgICAgICAgY2FzZSAweGZmZmZmZmZmZmZmZmZm
ZmZMOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgaWYgKHZhbHVlIDw9IDB4ZmYpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBzaG91bGRCbGluZEZvclNwZWNpZmljQXJjaCh2YWx1
ZSk7CisjZW5kaWYKKyAgICB9CisgICAgCisgICAgc3RydWN0IFJvdGF0ZWRJbW1QdHIgeworICAg
ICAgICBSb3RhdGVkSW1tUHRyKHVpbnRwdHJfdCB2MSwgdWludDhfdCB2MikKKyAgICAgICAgICAg
IDogdmFsdWUodjEpCisgICAgICAgICAgICAsIHJvdGF0aW9uKHYyKQorICAgICAgICB7CisgICAg
ICAgIH0KKyAgICAgICAgVHJ1c3RlZEltbVB0ciB2YWx1ZTsKKyAgICAgICAgVHJ1c3RlZEltbTMy
IHJvdGF0aW9uOworICAgIH07CisgICAgCisgICAgUm90YXRlZEltbVB0ciByb3RhdGlvbkJsaW5k
Q29uc3RhbnQoSW1tUHRyIGltbSkKKyAgICB7CisgICAgICAgIHVpbnQ4X3Qgcm90YXRpb24gPSBy
YW5kb20oKSAlIChzaXplb2Yodm9pZCopICogOCk7CisgICAgICAgIHVpbnRwdHJfdCB2YWx1ZSA9
IGltbS5hc1RydXN0ZWRJbW1QdHIoKS5hc0ludHB0cigpOworICAgICAgICB2YWx1ZSA9ICh2YWx1
ZSA8PCByb3RhdGlvbikgfCAodmFsdWUgPj4gKHNpemVvZih2b2lkKikgKiA4IC0gcm90YXRpb24p
KTsKKyAgICAgICAgcmV0dXJuIFJvdGF0ZWRJbW1QdHIodmFsdWUsIHJvdGF0aW9uKTsKKyAgICB9
CisgICAgCisgICAgdm9pZCBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQoUm90YXRlZEltbVB0
ciBjb25zdGFudCwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShjb25zdGFu
dC52YWx1ZSwgZGVzdCk7CisgICAgICAgIHJvdGF0ZVJpZ2h0UHRyKGNvbnN0YW50LnJvdGF0aW9u
LCBkZXN0KTsKKyAgICB9CisKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKEltbTMyIGlt
bSwgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1t
KSkgewotICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSAoUmVnaXN0ZXJJ
RClzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOwotICAgICAgICAgICAgQVNTRVJUKHNjcmF0
Y2hSZWdpc3Rlcik7CisgICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNj
cmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7CiAgICAgICAgICAgICBsb2FkWG9yQmxpbmRlZENv
bnN0YW50KHhvckJsaW5kQ29uc3RhbnQoaW1tKSwgc2NyYXRjaFJlZ2lzdGVyKTsKICAgICAgICAg
ICAgIGNvbnZlcnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgY29udmVydEludDMyVG9Eb3VibGUoaW1tLmFzVHJ1c3RlZElt
bTMyKCksIGRlc3QpOwogICAgIH0KKworICAgIHZvaWQgbW92ZShJbW1QdHIgaW1tLCBSZWdpc3Rl
cklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSkKKyAgICAgICAg
ICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQoaW1t
KSwgZGVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1vdmUoaW1tLmFzVHJ1c3RlZElt
bVB0cigpLCBkZXN0KTsKKyAgICB9CisKKyAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29u
ZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgSW1tUHRyIHJpZ2h0KQorICAgIHsKKyAgICAg
ICAgaWYgKHNob3VsZEJsaW5kKHJpZ2h0KSkgeworICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3Jh
dGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOworICAgICAgICAgICAg
bG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChyaWdodCks
IHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNvbmQsIGxl
ZnQsIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJyYW5jaFB0
cihjb25kLCBsZWZ0LCByaWdodC5hc1RydXN0ZWRJbW1QdHIoKSk7CisgICAgfQorICAgIAorICAg
IHZvaWQgc3RvcmVQdHIoSW1tUHRyIGltbSwgQWRkcmVzcyBkZXN0KQorICAgIHsKKyAgICAgICAg
aWYgKHNob3VsZEJsaW5kKGltbSkpIHsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJl
Z2lzdGVyID0gc2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKKyAgICAgICAgICAgIGxvYWRS
b3RhdGlvbkJsaW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQoaW1tKSwgc2NyYXRj
aFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlUHRyKHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RvcmVQdHIoaW1tLmFzVHJ1c3RlZEltbVB0
cigpLCBkZXN0KTsKKyAgICB9CisKICNlbmRpZgogCiAjZW5kaWYgLy8gIUNQVShYODZfNjQpCkBA
IC02ODUsNiArNzc3LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMih2YWx1ZSwgYWRkcmVz
c0ZvclBva2UoaW5kZXgpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBwb2tlKEltbVB0ciB2YWx1
ZSwgaW50IGluZGV4ID0gMCkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKHZhbHVlLCBhZGRyZXNz
Rm9yUG9rZShpbmRleCkpOworICAgIH0KKyAgICAKICAgICB2b2lkIHN0b3JlMzIoSW1tMzIgaW1t
LCBBZGRyZXNzIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaAppbmRleCA3MmEwM2EzMWU3NDY4MGZiODE1M2RmMjE0N2I5NTM5ZjYxMWIxNTA1Li44
YzMxMTEwN2NiYjRmZjZjMzFhOGExNWNiNjZlNTcxMzk1NTRlZjBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAt
ODA1LDcgKzgwNSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3Rl
cklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7Ci0gICAgICAgIG1vdmUoSW1tUHRy
KGFkZHJlc3MpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1t
UHRyKGFkZHJlc3MpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgc3RvcmVEb3VibGUo
c3JjLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKQEAgLTEzNzcsNyArMTM3Nyw3IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIE1vdmUgdGhlIGhpZ2ggYml0cyBvZiB0aGUgYWRk
cmVzcyBpbnRvIGFkZHJlc3NUZW1wUmVnaXN0ZXIsCiAgICAgICAgIC8vIGFuZCBsb2FkIHRoZSB2
YWx1ZSBpbnRvIGRhdGFUZW1wUmVnaXN0ZXIuCi0gICAgICAgIG1vdmUoSW1tUHRyKGRlc3QubV9w
dHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRl
c3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIubGRy
KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIsIEFSTVRodW1iSW1tZWRpYXRl
OjptYWtlVUludDE2KDApKTsKIAogICAgICAgICAvLyBEbyB0aGUgYWRkLgpAQCAtMTM5MCw3ICsx
MzkwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgLy8gd2UnbGwgbmVlZCB0byByZWxvYWQgaXQg
d2l0aCB0aGUgaGlnaCBiaXRzIG9mIHRoZSBhZGRyZXNzIGFmdGVyd2FyZHMuCiAgICAgICAgICAg
ICBtb3ZlKGltbSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGRfUyhkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKLSAgICAgICAgICAgIG1vdmUoSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwg
YWRkcmVzc1RlbXBSZWdpc3Rlcik7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBTdG9yZSB0aGUg
cmVzdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IDEzNWU5YzRiOTBjMzRiOWY0MGVkMDcyYWRjN2M2NzU4
OTA1YmJmZTEuLmEyYjQzMTFlNWVhMTA2OGI2MDI2YmU3NThhZTYyNDZhOTY1NzhlOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2XzY0LmgKQEAgLTIxNiw2ICsyMTYsMTEgQEAgcHVibGljOgogICAgICAgICBtb3ZlKHNyYywg
ZGVzdCk7CiAgICAgICAgIG9yUHRyKGltbSwgZGVzdCk7CiAgICAgfQorICAgIAorICAgIHZvaWQg
cm90YXRlUmlnaHRQdHIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmNEc3QpCisgICAg
eworICAgICAgICBtX2Fzc2VtYmxlci5yb3JxX2k4cihpbW0ubV92YWx1ZSwgc3JjRHN0KTsKKyAg
ICB9CiAKICAgICB2b2lkIHN1YlB0cihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKQEAgLTIzNywxMyArMjQyLDE3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLnhvcnFfcnIoc3JjLCBkZXN0KTsKICAgICB9CisgICAgCisgICAgdm9pZCB4b3JQdHIo
UmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVy
LnhvcnFfcm0oc3JjLCBkZXN0Lm9mZnNldCwgZGVzdC5iYXNlKTsKKyAgICB9CiAKICAgICB2b2lk
IHhvclB0cihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyY0Rlc3QpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci54b3JxX2lyKGltbS5tX3ZhbHVlLCBzcmNEZXN0KTsKICAgICB9CiAK
LQogICAgIHZvaWQgbG9hZFB0cihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9tcihhZGRyZXNzLm9mZnNldCwg
YWRkcmVzcy5iYXNlLCBkZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvWDg2QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L1g4NkFzc2VtYmxlci5oCmluZGV4IDdhZTdmYWM0MzM4ZTRhNzhkODgwYjEwOTA5MmNiMGQxNDRh
ZGY3YTYuLmIyNGZmZmI4ZjQ1MGM5MzhhOGY4NzA5ZjI1ZTk3ZWIwOWJlZGNiNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaApAQCAtMjE2LDcg
KzIxNiwxMiBAQCBwcml2YXRlOgogICAgICAgICBHUk9VUDFfT1BfQ01QID0gNywKIAogICAgICAg
ICBHUk9VUDFBX09QX1BPUCA9IDAsCi0KKyAgICAgICAgCisgICAgICAgIEdST1VQMl9PUF9ST0wg
PSAwLAorICAgICAgICBHUk9VUDJfT1BfUk9SID0gMSwKKyAgICAgICAgR1JPVVAyX09QX1JDTCA9
IDIsCisgICAgICAgIEdST1VQMl9PUF9SQ1IgPSAzLAorICAgICAgICAKICAgICAgICAgR1JPVVAy
X09QX1NITCA9IDQsCiAgICAgICAgIEdST1VQMl9PUF9TSFIgPSA1LAogICAgICAgICBHUk9VUDJf
T1BfU0FSID0gNywKQEAgLTYzNiw2ICs2NDEsMjIgQEAgcHVibGljOgogICAgICAgICAgICAgbV9m
b3JtYXR0ZXIuaW1tZWRpYXRlMzIoaW1tKTsKICAgICAgICAgfQogICAgIH0KKyAgICAKKyAgICB2
b2lkIHhvcnFfcm0oUmVnaXN0ZXJJRCBzcmMsIGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSkK
KyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcDY0KE9QX1hPUl9Fdkd2LCBzcmMs
IGJhc2UsIG9mZnNldCk7CisgICAgfQorICAgIAorICAgIHZvaWQgcm9ycV9pOHIoaW50IGltbSwg
UmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBpZiAoaW1tID09IDEpCisgICAgICAgICAg
ICBtX2Zvcm1hdHRlci5vbmVCeXRlT3A2NChPUF9HUk9VUDJfRXYxLCBHUk9VUDJfT1BfUk9SLCBk
c3QpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcDY0
KE9QX0dST1VQMl9FdkliLCBHUk9VUDJfT1BfUk9SLCBkc3QpOworICAgICAgICAgICAgbV9mb3Jt
YXR0ZXIuaW1tZWRpYXRlOChpbW0pOworICAgICAgICB9CisgICAgfQorCiAjZW5kaWYKIAogICAg
IHZvaWQgc2FybF9pOHIoaW50IGltbSwgUmVnaXN0ZXJJRCBkc3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaAppbmRleCAzNDgxZjk5ZTgyYWRiZWFmYzBjNjQ2
NGIzZjQ0OGQ3ZGE4ZWI0OWNlLi4xNjc5M2JiNDZmMmZkZWVmNmJlMmI2NTRkMTYwMzFiYjc3YTNi
ODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0NhbGxIZWxwZXJzLmgKQEAg
LTQyMCw2ICs0MjAsMTMgQEAgcHVibGljOgogICAgICAgICBtb3ZlKGFyZzIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMik7CiAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQorICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEltbVB0ciBhcmcyKQor
ICAgIHsKKyAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAg
ICBtb3ZlKGFyZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAgICAgIG1vdmUoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQogCiAg
ICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVk
SW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKQEAgLTQyNyw2ICs0MzQsMTMgQEAgcHVi
bGljOgogICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAg
IG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgfQorICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbW92ZShh
cmcyLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOyAvLyBNb3ZlIHRoaXMgZmlyc3QsIHNvIHNldHRp
bmcgYXJnMSBkb2VzIG5vdCB0cmFtcGxlIQorICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFy
Z3VtZW50R1BSMSk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwgVHJ1c3RlZEltbTMy
IGFyZzIpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXIzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXRDb21waWxlcjMyXzY0LmNwcAppbmRleCA5MjY3ZWIwN2YzMTk3NGZhOGMwYTcyMmQ4MjQ5
ZWQxY2I4NGQxNDRjLi5iZDQ1MDIwZDFiMTdkODg1ZmVlNmIzODJlMGI1YzA0ZTYzMWU1YzI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxl
cjMyXzY0LmNwcApAQCAtNTc1LDcgKzU3NSw3IEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21w
aWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBTcGVjdWxhdGlvblJlY292ZXJ5KiByZWNvCiAg
ICAgCiAgICAgbV9qaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9qaXQu
YmFzZWxpbmVDb2RlQmxvY2soKSksIEdQUkluZm86OnJlZ1QwKTsKICAgICAKLSAgICBBc3NlbWJs
eUhlbHBlcnM6Okp1bXAgZmV3RmFpbHMgPSBtX2ppdC5icmFuY2gzMihBc3NlbWJseUhlbHBlcnM6
OkJlbG93T3JFcXVhbCwgR1BSSW5mbzo6cmVnVDIsIEFzc2VtYmx5SGVscGVyczo6SW1tMzIobV9q
aXQuY29kZUJsb2NrKCktPmxhcmdlRmFpbENvdW50VGhyZXNob2xkKCkpKTsKKyAgICBBc3NlbWJs
eUhlbHBlcnM6Okp1bXAgZmV3RmFpbHMgPSBtX2ppdC5icmFuY2gzMihBc3NlbWJseUhlbHBlcnM6
OkJlbG93T3JFcXVhbCwgR1BSSW5mbzo6cmVnVDIsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKG1faml0LmNvZGVCbG9jaygpLT5sYXJnZUZhaWxDb3VudFRocmVzaG9sZCgpKSk7CiAgICAg
bV9qaXQubXVsMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZGVzaXJl
ZFNwZWN1bGF0aXZlU3VjY2Vzc0ZhaWxSYXRpbyksIEdQUkluZm86OnJlZ1QyLCBHUFJJbmZvOjpy
ZWdUMik7CiAgICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIGxvd0ZhaWxSYXRlID0gbV9q
aXQuYnJhbmNoMzIoQXNzZW1ibHlIZWxwZXJzOjpCZWxvd09yRXF1YWwsIEdQUkluZm86OnJlZ1Qy
LCBHUFJJbmZvOjpyZWdUMSk7CkBAIC02MzIsMTMgKzYzMiwxMyBAQCB2b2lkIE9TUkV4aXRDb21w
aWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgU3BlY3VsYXRpb25SZWNvdmVy
eSogcmVjbwogICAgICAgICAgICAgY2FsbGVyRnJhbWVHUFIgPSBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlcjsKICAgICAgICAgCiAgICAgICAgIG1faml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbVB0cihiYXNlbGluZUNvZGVCbG9jayksIEFzc2VtYmx5SGVscGVyczo6YWRk
cmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsg
UmVnaXN0ZXJGaWxlOjpDb2RlQmxvY2spKSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1i
bHlIZWxwZXJzOjpJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lz
dGVyRmlsZTo6U2NvcGVDaGFpbikpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0
YWdGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJl
Z2lzdGVyRmlsZTo6U2NvcGVDaGFpbikpKTsKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlLT5zY29wZSgp
KSwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNh
bGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pKSk7Ci0gICAg
ICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZy
YW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUpKSk7CisgICAgICAg
IG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNh
bGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lKSkpOwogICAg
ICAgICBtX2ppdC5zdG9yZVB0cihjYWxsZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJzOjpwYXls
b2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lKSkpOwogICAgICAgICBtX2ppdC5zdG9yZVB0cihBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhcmdldCksIEFzc2VtYmx5SGVscGVyczo6
cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0
ICsgUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQykpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMihBc3Nl
bWJseUhlbHBlcnM6OkltbTMyKGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSksIEFz
c2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJh
bWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSkpOwotICAgICAg
ICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFt
ZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlZSkpKTsKKyAgICAgICAgbV9qaXQu
c3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmFy
Z3VtZW50cy5zaXplKCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdp
c3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1l
bnRDb3VudCkpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1
YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6
Q2FsbGVlKSkpOwogICAgICAgICBtX2ppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWUuZ2V0KCkpLCBBc3NlbWJseUhlbHBlcnM6
OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNl
dCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSkpOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKaW5kZXggMDc0Zjlh
YTAyZjJkN2VhYzZmYTZlZmFlZGQyNTc4M2U1NWZjMzU3Ny4uOTFhNTE1YzQ4OWY5OWFlMjUzN2M0
MDgwNTZhMmRkNDY3NzIxYzYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIE9TUkV4
aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgU3BlY3VsYXRpb25S
ZWNvdmVyeSogcmVjbwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRJbnQzMjoKLSAg
ICAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6SW1tMzIoc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KFRhZ1R5cGVOdW1iZXIgPj4gMzIpKSwgQXNzZW1ibHlIZWxwZXJzOjp0
YWdGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihleGl0Lm9wZXJhbmRGb3JJbmRleChp
bmRleCkpKSk7CisgICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDx1aW50MzJfdD4oVGFnVHlwZU51bWJlciA+PiAzMikp
LCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KGV4
aXQub3BlcmFuZEZvckluZGV4KGluZGV4KSkpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgVUludDMySW5HUFI6IHsKQEAgLTYxNyw3
ICs2MTcsNyBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhp
dCYgZXhpdCwgU3BlY3VsYXRpb25SZWNvdmVyeSogcmVjbwogICAgIH0KICAgICAKICAgICBpZiAo
ZXhpdC5tX2NvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQotICAgICAgICBtX2ppdC5hZGRQdHIo
QXNzZW1ibHlIZWxwZXJzOjpJbW0zMihleGl0Lm1fY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUt
PnN0YWNrT2Zmc2V0ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSksIEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyKTsKKyAgICAgICAgbV9qaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTMyKGV4aXQubV9jb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBz
aXplb2YoRW5jb2RlZEpTVmFsdWUpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAg
IAogICAgIC8vIDE2KSBKdW1wIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgYmFzZWxpbmUgSklUIGNv
ZGUuCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCmluZGV4IDRhNGFjYWViZjllOGY4MjllMWZjMTU2NWI3YTI5ZTI2ZDI4MzY1ODMuLjVh
ZmRhNjc5MDc1YWM5ZWJmYmQzMzFjYTNjMjAwYWE0YmE3OWIxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMjU5LDcgKzEyNTks
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjcmVhdGVPU1JFbnRyaWVzKCkKICAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgbV9vc3JFbnRyeUhlYWRzLmFwcGVuZChtX2ppdC5sYWJlbCgpKTsK
LSAgICAgICAgbV9qaXQubW92ZShJbW0zMihibG9ja0luZGV4KSwgR1BSSW5mbzo6cmVnVDApOwor
ICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihibG9ja0luZGV4KSwgR1BSSW5mbzo6cmVn
VDApOwogICAgICAgICBtX2ppdC5qdW1wKCkubGlua1RvKG1fYmxvY2tIZWFkc1tibG9ja0luZGV4
XSwgJm1faml0KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKaW5kZXggMmUzMmY4MWFlZDZlNjY0M2FlNzMzNzkxZTE4MDE2MzJlZDI1
YTg3YS4uMTc0NGEwM2YzMTk5Y2U4YmM3NmYyZjI2ZmMxNWUyZTcxZjFlMTVmNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNDUyLDcgKzQ1
Miw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSB0YXJnZXQp
OwogICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgewogICAgICAgICAgICAgICAg
IEFTU0VSVChpc0Jvb2xlYW5Db25zdGFudChub2RlSW5kZXgpKTsKLSAgICAgICAgICAgICAgICBt
X2ppdC5tb3ZlKEltbTMyKHZhbHVlT2ZCb29sZWFuQ29uc3RhbnQobm9kZUluZGV4KSksIHRhcmdl
dCk7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xl
YW5Db25zdGFudChub2RlSW5kZXgpKSwgdGFyZ2V0KTsKICAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihzcGlsbE1l
KSwgdGFyZ2V0KTsKICNlbmRpZgpAQCAtNDY0LDcgKzQ2NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBpZiAobm9kZS5oYXNDb25zdGFudCgpKSB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSB2
YWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCk7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKHZhbHVlLmlzQ2VsbCgpKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKEltbVB0cih2
YWx1ZS5hc0NlbGwoKSksIHRhcmdldCk7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tUHRyKHZhbHVlLmFzQ2VsbCgpKSwgdGFyZ2V0KTsKICAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3Bp
bGxNZSksIHRhcmdldCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC00NzksOSArNDc5LDEyIEBA
IHByaXZhdGU6CiAgICAgICAgIEFTU0VSVChyZWdpc3RlckZvcm1hdCAmIERhdGFGb3JtYXRKUyk7
CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gdGFyZ2V0
KTsKLSAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkKLSAgICAgICAgICAgIG1faml0Lm1v
dmUodmFsdWVPZkpTQ29uc3RhbnRBc0ltbVB0cihub2RlSW5kZXgpLCB0YXJnZXQpOwotICAgICAg
ICBlbHNlIGlmIChpbmZvLnNwaWxsRm9ybWF0KCkgPT0gRGF0YUZvcm1hdEludGVnZXIpIHsKKyAg
ICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgaWYgKHZhbHVlT2ZK
U0NvbnN0YW50KG5vZGVJbmRleCkuaXNDZWxsKCkpCisgICAgICAgICAgICAgICAgbV9qaXQubW92
ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tUHRyKG5vZGVJbmRleCkuYXNUcnVzdGVkSW1tUHRyKCks
IHRhcmdldCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9qaXQubW92ZSh2
YWx1ZU9mSlNDb25zdGFudEFzSW1tUHRyKG5vZGVJbmRleCksIHRhcmdldCk7CisgICAgICAgIH0g
ZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CiAgICAg
ICAgICAgICBBU1NFUlQocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CiAg
ICAgICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3BpbGxNZSks
IHRhcmdldCk7CiAgICAgICAgICAgICBtX2ppdC5vclB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVy
UmVnaXN0ZXIsIHRhcmdldCk7CkBAIC0xMTg4LDEyICsxMTkxLDEyIEBAIHByaXZhdGU6CiAgICAg
fQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpK
IG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIgaW1tKQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIoc3RhdGljX2Nhc3Q8Y29uc3Qg
dm9pZCo+KEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbW0ubV92YWx1ZSkpKSkpOworICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihpbW0ubV92YWx1ZSkpKSkpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQogICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpKIG9wZXJhdGlv
biwgR1BSUmVnIHJlc3VsdCwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBpbW0sIEdQUlJl
ZyBhcmcyKQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIoc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihpbW0ubV92YWx1ZSkpKSksIGFyZzIpOworICAgICAgICBtX2ppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
c3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbW0ubV92
YWx1ZSkpKSksIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQogICAgIEpJVENvbXBpbGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUNKIG9wZXJhdGlvbiwgR1BSUmVn
IHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQpAQCAtMTI5Niw3ICsxMjk5LDcgQEAg
cHJpdmF0ZToKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RG
R09wZXJhdGlvbl9FSlAgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0
UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgdm9pZCogcG9pbnRl
cikKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
UGF5bG9hZCwgYXJnMVRhZywgSW1tUHRyKHBvaW50ZXIpKTsKKyAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBUcnVzdGVkSW1tUHRy
KHBvaW50ZXIpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tT
ZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOwogICAgIH0KICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0VKUCBvcGVy
YXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJn
MVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMikKQEAgLTE2MzksNyArMTY0Miw3
IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBpZiAoIURGR19FTkFCTEVfRURHRV9DT0RFX1ZF
UklGSUNBVElPTikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9qaXQubW92ZShJbW0z
MihkZXN0aW5hdGlvbiksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgbV9qaXQubW92ZShUcnVz
dGVkSW1tMzIoZGVzdGluYXRpb24pLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgfQogCiAgICAgdm9p
ZCBhZGRCcmFuY2goY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXAmIGp1bXAsIEJsb2NrSW5kZXgg
ZGVzdGluYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBhNDljMzM2NzVhMDU4NjIzYzE3ZTg1MjUzNGQ1OTM5
Njc3Y2M1MDFiLi5hZDQyOTM4M2I2NDAzNjk2MzdkNjE0NTgyMTRlYzM2MWJlNjRmNmIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAKQEAgLTI1NDYsNyArMjU0Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSYgbm9kZSkKICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBzdG9yYWdl
TGVuZ3RoR1BSKTsKICAgICAgICAgbV9qaXQuc3RvcmUzMihzdG9yYWdlTGVuZ3RoR1BSLCBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9y
YWdlLCBtX2xlbmd0aCkpKTsKICAgICAgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlT
dG9yYWdlLCBtX251bVZhbHVlc0luVmVjdG9yKSkpOwotICAgICAgICBtX2ppdC5tb3ZlKEltbTMy
KEpTVmFsdWU6OkludDMyVGFnKSwgc3RvcmFnZUdQUik7CisgICAgICAgIG1faml0Lm1vdmUoVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgc3RvcmFnZUdQUik7CiAgICAgICAgIAogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwogICAgICAgICAK
QEAgLTI2MDQsOCArMjYwNCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYg
bm9kZSkKICAgICAgICAgCiAgICAgICAgIGhvbGVDYXNlLmxpbmsoJm1faml0KTsKICAgICAgICAg
ZW1wdHlBcnJheUNhc2UubGluaygmbV9qaXQpOwotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNz
ZW1ibGVyOjpJbW0zMihqc1VuZGVmaW5lZCgpLnRhZygpKSwgdmFsdWVUYWdHUFIpOwotICAgICAg
ICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW0zMihqc1VuZGVmaW5lZCgpLnBheWxvYWQo
KSksIHZhbHVlUGF5bG9hZEdQUik7CisgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMihqc1VuZGVmaW5lZCgpLnRhZygpKSwgdmFsdWVUYWdHUFIpOworICAgICAg
ICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoanNVbmRlZmluZWQoKS5w
YXlsb2FkKCkpLCB2YWx1ZVBheWxvYWRHUFIpOwogICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5q
dW1wKCkpOwogICAgICAgICAKICAgICAgICAgc2xvd0Nhc2UubGluaygmbV9qaXQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
YmM1YTA1N2M3YzJiOGViZTJmYzE2Y2MzNWM3N2E5YzY2NWYwNGQ0ZC4uYTliN2ZjYTcxNmIwODFj
MzM0NzFkNTBhYmM5MTA0NDc2YjRiZDJjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbEludGVnZXIoTm9kZUluZGV4IG5vZGVJbmRleCwgRGF0YUZvcm1h
dCYgcmV0dXJuRm9ybWF0CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIEFT
U0VSVChpc0pTQ29uc3RhbnQobm9kZUluZGV4KSk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBq
c1ZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9kZUluZGV4KTsKLSAgICAgICAgICAgICAgICBt
X2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUp
KSwgZ3ByKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKSksIGdwcik7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRl
Z2VyKSB7CiAgICAgICAgICAgICBtX2dwcnMucmV0YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBT
cGlsbE9yZGVyU3BpbGxlZCk7CkBAIC0xNDEsNyArMTQxLDcgQEAgRlBSUmVnIFNwZWN1bGF0aXZl
SklUOjpmaWxsRG91YmxlKE5vZGVJbmRleCBub2RlSW5kZXgpCiAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IHNob3VsZCBub3QgYmUgcmVhY2hhYmxlPwogICAgICAgICAgICAgICAgIEFTU0VSVChp
c0pTQ29uc3RhbnQobm9kZUluZGV4KSk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBqc1ZhbHVl
ID0gdmFsdWVPZkpTQ29uc3RhbnQobm9kZUluZGV4KTsKLSAgICAgICAgICAgICAgICBtX2ppdC5t
b3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpKSwgZ3By
KTsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKSksIGdwcik7CiAgICAgICAgICAgICAgICAgbV9n
cHJzLnJldGFpbihncHIsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlckNvbnN0YW50KTsKICAg
ICAgICAgICAgICAgICBpbmZvLmZpbGxKU1ZhbHVlKGdwciwgRGF0YUZvcm1hdEpTKTsKICAgICAg
ICAgICAgICAgICB1bmxvY2soZ3ByKTsKQEAgLTI4Myw3ICsyODMsNyBAQCBHUFJSZWcgU3BlY3Vs
YXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKE5vZGVJbmRleCBub2RlSW5kZXgpCiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVChpc0pTQ29uc3RhbnQobm9kZUluZGV4KSk7
CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1Q
dHIoSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpKSwgZ3ByKTsKKyAgICAgICAgICAgICAgICBtX2pp
dC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1Zh
bHVlKSksIGdwcik7CiAgICAgICAgICAgICAgICAgaW5mby5maWxsSlNWYWx1ZShncHIsIERhdGFG
b3JtYXRKUyk7CiAgICAgICAgICAgICB9CiAKQEAgLTk2Myw3ICs5NjMsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlJiBub2RlKQogICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVlR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwg
bV9zY29wZUNoYWluKSksIHJlc3VsdEdQUik7CiAgICAgbV9qaXQuc3RvcmVQdHIocmVzdWx0R1BS
LCBjYWxsRnJhbWVTbG90KFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbikpOwogCi0gICAgbV9qaXQu
YWRkUHRyKEltbTMyKG1faml0LmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycyAqIHNp
emVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgbV9qaXQu
YWRkUHRyKFRydXN0ZWRJbW0zMihtX2ppdC5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3Rl
cnMgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAg
IAogICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IGF0KG1fY29tcGlsZUluZGV4KS5jb2RlT3Jp
Z2luOwogICAgIENhbGxCZWdpblRva2VuIHRva2VuID0gbV9qaXQuYmVnaW5KU0NhbGwoKTsKQEAg
LTk3OCw3ICs5NzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlJiBub2Rl
KQogICAgIHRva2VuID0gbV9qaXQuYmVnaW5DYWxsKCk7CiAgICAgSklUQ29tcGlsZXI6OkNhbGwg
c2xvd0NhbGwgPSBtX2ppdC5hcHBlbmRDYWxsKHNsb3dDYWxsRnVuY3Rpb24pOwogICAgIG1faml0
LmFkZEZhc3RFeGNlcHRpb25DaGVjayhzbG93Q2FsbCwgY29kZU9yaWdpbiwgdG9rZW4pOwotICAg
IG1faml0LmFkZFB0cihJbW0zMihtX2ppdC5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3Rl
cnMgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAg
IG1faml0LmFkZFB0cihUcnVzdGVkSW1tMzIobV9qaXQuY29kZUJsb2NrKCktPm1fbnVtQ2FsbGVl
UmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKICAgICB0b2tlbiA9IG1faml0LmJlZ2luSlNDYWxsKCk7CiAgICAgSklUQ29tcGlsZXI6OkNh
bGwgdGhlQ2FsbCA9IG1faml0LmNhbGwoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogICAgIG1f
aml0Lm5vdGlmeUNhbGwodGhlQ2FsbCwgY29kZU9yaWdpbiwgdG9rZW4pOwpAQCAtMTQ3NiwxMCAr
MTQ3NiwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0RXF1YWxpdHkoTm9k
ZSYgbm9kZSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZgogICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKG9wMkdQUiksIG5vZGUuY2hpbGQyKCkuaW5kZXgoKSwg
bV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Mob3AyR1BSLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIoY2xhc3NJbmZvKSkpOwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIGZhbHNlQ2FzZSA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIG9wMUdQUiwgb3AyR1BSKTsKLSAgICBtX2ppdC5tb3ZlKEltbTMyKFZhbHVlVHJ1ZSksIHJl
c3VsdEdQUik7CisgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoVmFsdWVUcnVlKSwgcmVzdWx0
R1BSKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwogICAg
IGZhbHNlQ2FzZS5saW5rKCZtX2ppdCk7Ci0gICAgbV9qaXQubW92ZShJbW0zMihWYWx1ZUZhbHNl
KSwgcmVzdWx0R1BSKTsKKyAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwg
cmVzdWx0R1BSKTsKICAgICBkb25lLmxpbmsoJm1faml0KTsKIAogICAgIGpzVmFsdWVSZXN1bHQo
cmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCwgRGF0YUZvcm1hdEpTQm9vbGVhbik7CkBAIC0xNTky
LDcgKzE1OTIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9naWNhbE5vdChOb2Rl
JiBub2RlKQogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAgICBtX2pp
dC5tb3ZlKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm9uWmVybyA9IG1faml0LmJyYW5jaERvdWJsZU5vblplcm8o
dmFsdWUuZnByKCksIHNjcmF0Y2guZnByKCkpOwotICAgICAgICBtX2ppdC54b3IzMihJbW0zMih0
cnVlKSwgcmVzdWx0LmdwcigpKTsKKyAgICAgICAgbV9qaXQueG9yMzIoVHJ1c3RlZEltbTMyKHRy
dWUpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICBub25aZXJvLmxpbmsoJm1faml0KTsKICAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGlsZUluZGV4LCBEYXRhRm9ybWF0
SlNCb29sZWFuKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTcxNCwxOCArMTcxNCwxOCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjplbWl0QnJhbmNoKE5vZGUmIG5vZGUpCiAgICAgICAgIGJvb2wgcHJl
ZGljdEJvb2xlYW4gPSBpc0Jvb2xlYW5QcmVkaWN0aW9uKG1faml0LmdldFByZWRpY3Rpb24obm9k
ZS5jaGlsZDEoKSkpOwogICAgIAogICAgICAgICBpZiAocHJlZGljdEJvb2xlYW4pIHsKLSAgICAg
ICAgICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fz
c2VtYmxlcjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKSksIG5vdFRh
a2VuKTsKLSAgICAgICAgICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVl
R1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1
ZSkpKSwgdGFrZW4pOworICAgICAgICAgICAgYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVh
bCwgdmFsdWVHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29k
ZShqc0Jvb2xlYW4oZmFsc2UpKSksIG5vdFRha2VuKTsKKyAgICAgICAgICAgIGJyYW5jaFB0cihN
YWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKSksIHRha2VuKTsKIAogICAgICAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIG5v
ZGUuY2hpbGQxKCksIG1faml0Lmp1bXAoKSk7CiAgICAgICAgICAgICB2YWx1ZS51c2UoKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1
YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc051
bWJlcigwKSkpLCBub3RUYWtlbik7CisgICAgICAgICAgICBicmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6OkVxdWFsLCB2YWx1ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKSksIG5vdFRha2VuKTsKICAgICAgICAgICAgIGJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCB2YWx1ZUdQUiwgR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyLCB0YWtlbik7CiAgICAgCiAgICAgICAgICAgICBpZiAoIXByZWRpY3RC
b29sZWFuKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVh
bCwgdmFsdWVHUFIsIE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihmYWxzZSkpKSwgbm90VGFrZW4pOwotICAgICAgICAgICAgICAgIGJyYW5jaFB0cihNYWNy
b0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSwgdGFrZW4pOworICAgICAgICAgICAgICAgIGJy
YW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSkpLCBub3RUYWtl
bik7CisgICAgICAgICAgICAgICAgYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFs
dWVHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4odHJ1ZSkpKSwgdGFrZW4pOwogICAgICAgICAgICAgfQogICAgIAogICAgICAgICAgICAg
dmFsdWUudXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOTgwMTc5YTZkNmM4
NzdiNzQzNGJjMzdiZWRlYjE3MmE0YTBlNWM1Ni4uNjA5ZTE1MzU4YWEyYzZmZDA2ZmYzYTllMDRk
NWQ1MjRlMDVjODA5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBAIHZvaWQgSklUOjplbWl0T3B0aW1pemF0aW9uQ2hlY2soT3B0aW1pemF0aW9uQ2hlY2tL
aW5kIGtpbmQpCiAgICAgSnVtcCBza2lwT3B0aW1pemUgPSBicmFuY2hBZGQzMihTaWduZWQsIFRy
dXN0ZWRJbW0zMihraW5kID09IExvb3BPcHRpbWl6YXRpb25DaGVjayA/IE9wdGlvbnM6OmV4ZWN1
dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wIDogT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlcklu
Y3JlbWVudEZvclJldHVybiksIEFic29sdXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+YWRkcmVzc09m
SklURXhlY3V0ZUNvdW50ZXIoKSkpOwogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGtp
bmQgPT0gTG9vcE9wdGltaXphdGlvbkNoZWNrID8gY3RpX29wdGltaXplX2Zyb21fbG9vcCA6IGN0
aV9vcHRpbWl6ZV9mcm9tX3JldCk7CiAgICAgaWYgKGtpbmQgPT0gTG9vcE9wdGltaXphdGlvbkNo
ZWNrKQotICAgICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihtX2J5dGVjb2RlT2Zmc2V0
KSk7CisgICAgICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihtX2J5dGVjb2Rl
T2Zmc2V0KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIHNraXBPcHRpbWl6ZS5saW5rKHRo
aXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1l
dGljMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljMzJf
NjQuY3BwCmluZGV4IGIzYjlhZDc5OTEzNGZhNjdiYjUzZTE5MWFhYmJiMWU1YWI4YmYyOGQuLjEx
YTc1ODEwM2VmYzk3OTFmOWU0Zjc0OWIzZTMzMGUzMGI4NTMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKQEAgLTQ3OSw3ICs0Nzks
NyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcG9zdF9pbmMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRQogCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwo
dGhpcywgY3RpX29wX3Bvc3RfaW5jKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChzcmNEc3Qp
OwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKHNyY0RzdCkpOworICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihzcmNEc3QpKTsKICAgICBzdHViQ2FsbC5jYWxsKGRz
dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
TWV0aG9kcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgK
aW5kZXggMWFlYjlmZDMzMjBkNzFmZGY2NDdhOGY4ZmEwODUxYzIyY2MwMzkyNC4uOTk4ZDVhYzE4
Nzk4NjhmZmZiYWMwZmYwOGRhZDdkM2I0NzQ2OTdlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKQEAgLTU1OSw5ICs1NTksOSBAQCBpbmxpbmUgdm9p
ZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlKiB2YWx1ZVByb2ZpbGUp
CiAgICAgaWYgKG1fcmFuZG9tR2VuZXJhdG9yLmdldFVpbnQzMigpICYgMSkKICAgICAgICAgYWRk
MzIoVHJ1c3RlZEltbTMyKDEpLCBidWNrZXRDb3VudGVyUmVnaXN0ZXIpOwogICAgIGVsc2UKLSAg
ICAgICAgYWRkMzIoSW1tMzIoMyksIGJ1Y2tldENvdW50ZXJSZWdpc3Rlcik7Ci0gICAgYW5kMzIo
SW1tMzIoVmFsdWVQcm9maWxlOjpidWNrZXRJbmRleE1hc2spLCBidWNrZXRDb3VudGVyUmVnaXN0
ZXIpOwotICAgIG1vdmUoSW1tUHRyKHZhbHVlUHJvZmlsZS0+bV9idWNrZXRzKSwgc2NyYXRjaCk7
CisgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMigzKSwgYnVja2V0Q291bnRlclJlZ2lzdGVyKTsK
KyAgICBhbmQzMihUcnVzdGVkSW1tMzIoVmFsdWVQcm9maWxlOjpidWNrZXRJbmRleE1hc2spLCBi
dWNrZXRDb3VudGVyUmVnaXN0ZXIpOworICAgIG1vdmUoVHJ1c3RlZEltbVB0cih2YWx1ZVByb2Zp
bGUtPm1fYnVja2V0cyksIHNjcmF0Y2gpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RvcmVQ
dHIodmFsdWUsIEJhc2VJbmRleChzY3JhdGNoLCBidWNrZXRDb3VudGVyUmVnaXN0ZXIsIFRpbWVz
RWlnaHQpKTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC04NjgsNyArODY4LDEwIEBAIEFM
V0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaW50IHNyYywgUmVn
aXN0ZXJJRCBkc3QpCiAgICAgLy8gVE9ETzogd2Ugd2FudCB0byByZXVzZSB2YWx1ZXMgdGhhdCBh
cmUgYWxyZWFkeSBpbiByZWdpc3RlcnMgaWYgd2UgY2FuIC0gYWRkIGEgcmVnaXN0ZXIgYWxsb2Nh
dG9yIQogICAgIGlmIChtX2NvZGVCbG9jay0+aXNDb25zdGFudFJlZ2lzdGVySW5kZXgoc3JjKSkg
ewogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gbV9jb2RlQmxvY2stPmdldENvbnN0YW50KHNyYyk7
Ci0gICAgICAgIG1vdmUoSW1tUHRyKEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkpLCBkc3QpOworICAg
ICAgICBpZiAoIXZhbHVlLmlzTnVtYmVyKCkpCisgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1Q
dHIoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGRzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1vdmUoSW1tUHRyKEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkpLCBkc3QpOwogICAgICAgICBr
aWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBkMDM2NjRhZTc5M2QxYzk5OTdk
NzViNjJlMDBiNjAwYjIyODU1YzIyLi4yZGI4MmJmNGFkMjBkNjAzYWYwMzQ5ZGU0ZWY1MTRjZjNk
MDAyNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTM1
OCw3ICszNTgsMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbW92KEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICB9
IGVsc2UgewogICAgICAgICBpZiAobV9jb2RlQmxvY2stPmlzQ29uc3RhbnRSZWdpc3RlckluZGV4
KHNyYykpIHsKLSAgICAgICAgICAgIHN0b3JlUHRyKEltbVB0cihKU1ZhbHVlOjplbmNvZGUoZ2V0
Q29uc3RhbnRPcGVyYW5kKHNyYykpKSwgQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgZHN0ICog
c2l6ZW9mKFJlZ2lzdGVyKSkpOworICAgICAgICAgICAgaWYgKCFnZXRDb25zdGFudE9wZXJhbmQo
c3JjKS5pc051bWJlcigpKQorICAgICAgICAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIo
SlNWYWx1ZTo6ZW5jb2RlKGdldENvbnN0YW50T3BlcmFuZChzcmMpKSksIEFkZHJlc3MoY2FsbEZy
YW1lUmVnaXN0ZXIsIGRzdCAqIHNpemVvZihSZWdpc3RlcikpKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBzdG9yZVB0cihJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGdldENvbnN0
YW50T3BlcmFuZChzcmMpKSksIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIGRzdCAqIHNpemVv
ZihSZWdpc3RlcikpKTsKICAgICAgICAgICAgIGlmIChkc3QgPT0gbV9sYXN0UmVzdWx0Qnl0ZWNv
ZGVSZWdpc3RlcikKICAgICAgICAgICAgICAgICBraWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoKHNyYyA9PSBtX2xhc3RSZXN1bHRCeXRlY29kZVJlZ2lzdGVyKSB8
fCAoZHN0ID09IG1fbGFzdFJlc3VsdEJ5dGVjb2RlUmVnaXN0ZXIpKSB7CkBAIC0zOTAsNyArMzkz
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfam1wKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAKIHZvaWQgSklUOjplbWl0X29wX25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKLSAgICBlbWl0QWxsb2NhdGVKU0ZpbmFsT2JqZWN0KEltbVB0cihtX2Nv
ZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwg
cmVnVDEpOworICAgIGVtaXRBbGxvY2F0ZUpTRmluYWxPYmplY3QoVHJ1c3RlZEltbVB0cihtX2Nv
ZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwg
cmVnVDEpOwogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCk7CiB9CkBAIC01OTUsOCArNTk4LDggQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfdG9fcHJpbWl0aXZlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJ
VDo6ZW1pdF9vcF9zdHJjYXQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAg
ICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfc3RyY2F0KTsKLSAgICBzdHViQ2Fs
bC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0g
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3Rl
ZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5j
YWxsKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQogCkBAIC02MTAsNyArNjEz
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9iYXNlKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6ZW1pdF9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNh
bGwodGhpcywgY3RpX29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMpOwotICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoJm1fY29k
ZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSk7CiAg
ICAgc3R1YkNhbGwuY2FsbChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KQEAg
LTYxOSw3ICs2MjIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3NraXAoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlz
LCBjdGlfb3BfcmVzb2x2ZV9za2lwKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVk
SW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSkpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1t
MzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwogICAgIHN0dWJDYWxsLmNhbGxX
aXRoVmFsdWVQcm9maWxpbmcoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAK
QEAgLTY1NSw3ICs2NTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsbwogICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2
ZV9nbG9iYWwpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoaWRlbnQp
KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5kZXgpKTsKKyAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluZGV4KSk7CiAgICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwogICAgIHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQcm9m
aWxpbmcoZHN0KTsKIH0KQEAgLTc2OCw3ICs3NzEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNv
bHZlX3dpdGhfYmFzZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9yZXNvbHZlX3dpdGhfYmFzZSk7CiAgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cigmbV9jb2RlQmxvY2stPmlkZW50aWZp
ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpKTsKLSAgICBzdHViQ2FsbC5hZGRB
cmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogfQogCkBAIC03NzYsNyArNzc5LDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3RoaXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV93aXRo
X3RoaXMpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoJm1fY29kZUJs
b2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7Ci0gICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbFdpdGhWYWx1ZVByb2ZpbGlu
ZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKIH0KIApAQCAtMTAzNCw3ICsxMDM3
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIHZvaWQgSklUOjplbWl0X29wX2ptcF9zY29wZXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfam1w
X3Njb3Blcyk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0z
MihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbCgp
OwogICAgIGFkZEp1bXAoanVtcCgpLCBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsK
IH0KQEAgLTEwNTIsNyArMTA1NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3N3aXRjaF9pbW0oSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxs
KHRoaXMsIGN0aV9vcF9zd2l0Y2hfaW1tKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChzY3J1
dGluZWUsIHJlZ1QyKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMih0YWJsZUluZGV4
KSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKHRhYmxlSW5kZXgpKTsK
ICAgICBzdHViQ2FsbC5jYWxsKCk7CiAgICAganVtcChyZWdUMCk7CiB9CkBAIC0xMDcwLDcgKzEw
NzMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zd2l0Y2hfY2hhcihJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3N3
aXRjaF9jaGFyKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChzY3J1dGluZWUsIHJlZ1QyKTsK
LSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMih0YWJsZUluZGV4KSk7CisgICAgc3R1YkNh
bGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKHRhYmxlSW5kZXgpKTsKICAgICBzdHViQ2FsbC5j
YWxsKCk7CiAgICAganVtcChyZWdUMCk7CiB9CkBAIC0xMDg3LDcgKzEwOTAsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9zd2l0Y2hfc3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfc3dpdGNoX3N0cmluZyk7
CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoc2NydXRpbmVlLCByZWdUMik7Ci0gICAgc3R1YkNh
bGwuYWRkQXJndW1lbnQoSW1tMzIodGFibGVJbmRleCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KFRydXN0ZWRJbW0zMih0YWJsZUluZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAg
IGp1bXAocmVnVDApOwogfQpAQCAtMTA5NSw3ICsxMDk4LDEwIEBAIHZvaWQgSklUOjplbWl0X29w
X3N3aXRjaF9zdHJpbmcoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHZvaWQgSklU
OjplbWl0X29wX3Rocm93X3JlZmVyZW5jZV9lcnJvcihJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF90aHJvd19y
ZWZlcmVuY2VfZXJyb3IpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbVB0cihKU1ZhbHVl
OjplbmNvZGUobV9jb2RlQmxvY2stPmdldENvbnN0YW50KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQpKSkpOworICAgIGlmICghbV9jb2RlQmxvY2stPmdldENvbnN0YW50KGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLmlzTnVtYmVyKCkpCisgICAgICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKG1fY29kZUJsb2NrLT5nZXRD
b25zdGFudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSkpKTsKKyAgICBlbHNlCisg
ICAgICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbVB0cihKU1ZhbHVlOjplbmNvZGUobV9jb2Rl
QmxvY2stPmdldENvbnN0YW50KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKSkpOwog
ICAgIHN0dWJDYWxsLmNhbGwoKTsKIH0KIApAQCAtMTEwNiw5ICsxMTEyLDkgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfZGVidWcoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBicmVh
a3BvaW50KCk7CiAjZWxzZQogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9k
ZWJ1Zyk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZCkpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0z
MihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJn
dW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogI2Vu
ZGlmCiB9CkBAIC0xNTU5LDcgKzE1NjUsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2
ZV9nbG9iYWxfZHluYW1pYyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZQogICAg
IGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gV2UgbWFuYWdlZCB0byBza2lwIGFsbCB0aGUgbm9kZXMg
aW4gdGhlIHNjb3BlIGNoYWluLCBidXQgdGhlIGNhY2hlIG1pc3NlZC4KICAgICBKSVRTdHViQ2Fs
bCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV9nbG9iYWwpOwogICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoaWRlbnQpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChJbW0zMihjdXJyZW50SW5kZXgpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVk
SW1tMzIoY3VycmVudEluZGV4KSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwog
ICAgIHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQcm9maWxpbmcoZHN0KTsKIH0KQEAgLTE2NDIsOCAr
MTY0OCw4IEBAIHZvaWQgSklUOjplbWl0X29wX25ld19hcnJheShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGludCBsZW5ndGggPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kOwogICAgIGlmIChDb3BpZWRTcGFjZTo6aXNPdmVyc2l6ZShKU0FycmF5OjpzdG9yYWdl
U2l6ZShsZW5ndGgpKSkgewogICAgICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlf
b3BfbmV3X2FycmF5KTsKLSAgICAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAgICAgIHN0dWJD
YWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kKSk7CisgICAgICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CiAgICAgICAgIHN0dWJDYWxsLmNhbGwoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0x
NjYyLDE2ICsxNjY4LDE2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9uZXdfYXJyYXkoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlCiAgICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBOb3QgZW5vdWdoIHNwYWNlIGluIE1hcmtlZFNwYWNlIGZvciBjZWxsLgog
ICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gTm90IGVub3VnaCBzcGFjZSBpbiBDb3BpZWRTcGFj
ZSBmb3Igc3RvcmFnZS4KICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfbmV3
X2FycmF5KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRy
dXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNh
bGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQpKTsKICAgICBzdHViQ2FsbC5jYWxsKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9uZXdfYXJyYXlfYnVmZmVyKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3Rp
X29wX25ld19hcnJheV9idWZmZXIpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwu
YWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZCkpOwogICAgIHN0dWJDYWxsLmNhbGwoY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcAppbmRleCAxMjdiNDNkMjA0MmVkN2UwZWJlOGFjNzljOGZkODJkYTQ3MDU3
ZGRhLi5iNjc2OTZmMzU5MDM3N2ZjYTAwN2E0MzgxYzUxNGMwNWMyZGExMGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC01MzYsNyArNTM2
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfam1wKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAKIHZvaWQgSklUOjplbWl0X29wX25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKLSAgICBlbWl0QWxsb2NhdGVKU0ZpbmFsT2JqZWN0KEltbVB0cihtX2Nv
ZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwg
cmVnVDEpOworICAgIGVtaXRBbGxvY2F0ZUpTRmluYWxPYmplY3QoVHJ1c3RlZEltbVB0cihtX2Nv
ZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwg
cmVnVDEpOwogICAgIAogICAgIGVtaXRTdG9yZUNlbGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgcmVnVDApOwogfQpAQCAtNzAxLDggKzcwMSw4IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9y
PFNsb3dDCiB2b2lkIEpJVDo6ZW1pdF9vcF9zdHJjYXQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfc3RyY2F0
KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJ
bW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsK
ICAgICBzdHViQ2FsbC5jYWxsKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQog
CkBAIC03MTYsNyArNzE2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9iYXNlKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6ZW1pdF9vcF9lbnN1cmVfcHJv
cGVydHlfZXhpc3RzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklU
U3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMpOwot
ICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0
ZWRJbW1QdHIoJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQpKSk7CiAgICAgc3R1YkNhbGwuY2FsbChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kKTsKIH0KQEAgLTcyNSw3ICs3MjUsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZl
X3NraXAoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2Fs
bCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV9za2lwKTsKICAgICBzdHViQ2FsbC5hZGRB
cmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMy
KGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1
bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwogICAg
IHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQcm9maWxpbmcoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCk7CiB9CiAKQEAgLTc2Niw3ICs3NjYsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
cmVzb2x2ZV9nbG9iYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
bwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlz
LCBjdGlfb3BfcmVzb2x2ZV9nbG9iYWwpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0
ZWRJbW1QdHIoaWRlbnQpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50
SW5kZXgpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudElu
ZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbFdpdGhWYWx1ZVByb2ZpbGluZyhkc3QpOwogfQogCkBA
IC0xMTY0LDcgKzExNjQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJD
YWxsKHRoaXMsIGN0aV9vcF9yZXNvbHZlX3dpdGhfYmFzZSk7CiAgICAgc3R1YkNhbGwuYWRkQXJn
dW1lbnQoVHJ1c3RlZEltbVB0cigmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZCkpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKICAgICBz
dHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQpOwogfQogCkBAIC0xMTcyLDcgKzExNzIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNv
bHZlX3dpdGhfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9yZXNvbHZlX3dpdGhfdGhpcyk7CiAgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cigmbV9jb2RlQmxvY2stPmlkZW50aWZp
ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpKTsKLSAgICBzdHViQ2FsbC5hZGRB
cmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogfQogCkBAIC0xMzY0LDcgKzEzNjQsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogdm9pZCBK
SVQ6OmVtaXRfb3Bfam1wX3Njb3BlcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ewogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9qbXBfc2NvcGVzKTsKLSAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7CiAgICAgYWRkSnVt
cChqdW1wKCksIGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogfQpAQCAtMTM4Miw3
ICsxMzgyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3dpdGNoX2ltbShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29w
X3N3aXRjaF9pbW0pOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KHNjcnV0aW5lZSk7Ci0gICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIodGFibGVJbmRleCkpOworICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KFRydXN0ZWRJbW0zMih0YWJsZUluZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgp
OwogICAgIGp1bXAocmVnVDApOwogfQpAQCAtMTQwMCw3ICsxNDAwLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3Bfc3dpdGNoX2NoYXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAg
IEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9zd2l0Y2hfY2hhcik7CiAgICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQoc2NydXRpbmVlKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJ
bW0zMih0YWJsZUluZGV4KSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMy
KHRhYmxlSW5kZXgpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7CiAgICAganVtcChyZWdUMCk7CiB9
CkBAIC0xNDE3LDcgKzE0MTcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zd2l0Y2hfc3RyaW5nKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBKSVRTdHViQ2FsbCBzdHViQ2Fs
bCh0aGlzLCBjdGlfb3Bfc3dpdGNoX3N0cmluZyk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQo
c2NydXRpbmVlKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMih0YWJsZUluZGV4KSk7
CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKHRhYmxlSW5kZXgpKTsKICAg
ICBzdHViQ2FsbC5jYWxsKCk7CiAgICAganVtcChyZWdUMCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCAxZWUy
OTE1ZGM3YjYxMjI1NGM3MDE3NDg2YmY4YWEzMTVkMDlmMjA1Li4xOWFiZGJkODlkNTRhZTYyYzE1
ODgyNDljZjU2Y2U0YTdhMWM0YWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X2J5X2luZGV4KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3B1dF9ieV9pbmRl
eCk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoYmFzZSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJn
dW1lbnQoSW1tMzIocHJvcGVydHkpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVk
SW1tMzIocHJvcGVydHkpKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudCh2YWx1ZSk7CiAgICAg
c3R1YkNhbGwuY2FsbCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRTdHViQ2FsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5o
CmluZGV4IDg3ZWZlY2JiODllZmQxYjdjY2ViMmJiOWNmNDI2ZWUxNDQ0NmZkYWMuLmE1MjVmZjIy
NzUwZTA5OGI5NTJlYzU4NTc1MTMyNTExYmQ1ZGFjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YkNhbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJDYWxsLmgKQEAgLTExNiw2ICsxMTYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICBtX2ppdC0+cG9rZShhcmd1bWVudCwgbV9zdGFja0luZGV4KTsKICAgICAgICAg
ICAgIG1fc3RhY2tJbmRleCArPSBzdGFja0luZGV4U3RlcDsKICAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgdm9pZCBhZGRBcmd1bWVudChKSVQ6OkltbVB0ciBhcmd1bWVudCkKKyAgICAgICAg
eworICAgICAgICAgICAgbV9qaXQtPnBva2UoYXJndW1lbnQsIG1fc3RhY2tJbmRleCk7CisgICAg
ICAgICAgICBtX3N0YWNrSW5kZXggKz0gc3RhY2tJbmRleFN0ZXA7CisgICAgICAgIH0KIAogICAg
ICAgICB2b2lkIGFkZEFyZ3VtZW50KEpJVDo6UmVnaXN0ZXJJRCBhcmd1bWVudCkKICAgICAgICAg
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130497</attachid>
            <date>2012-03-06 17:43:11 -0800</date>
            <delta_ts>2012-03-07 16:53:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80457-20120306174310.patch</filename>
            <type>text/plain</type>
            <size>53157</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OTQ0M2I2ZTExM2ZkZDkyMmU1ODkwNzQwNTFlYmFjYzhkYzVkOTExLi4zYzYyNjhlYWZiNWMwN2E4
YzQyZmI4ZDBjYjcwOThmNjE1MjA4MDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTEgQEAKKzIwMTItMDMtMDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBGdXJ0aGVyIGhhcmRlbiA2NC1iaXQgSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBibGluZGlu
ZyBmb3IgSW1tUHRyLiAgUmF0aGVyIHRoYW4geG9yIGJhc2VkIGJsaW5kaW5nCisgICAgICAgIHdl
IHBlcmZvcm0gcmFuZG9taXNlZCBwb2ludGVyIHJvdGF0aW9ucyBpbiBvcmRlciB0byBhdm9pZCB0
aGUgc2lnbmlmaWNhbnQKKyAgICAgICAgY29zdCBpbiBleGVjdXRhYmxlIG1lbW9yeSB0aGF0IHdv
dWxkIG90aGVyd2lzZSBiZSBuZWNlc3NhcnkgKGFuZCB0byBhdm9pZAorICAgICAgICB0aGUgbmVl
ZCBmb3IgYW4gYWRkaXRpb25hbCBzY3JhdGNoIHJlZ2lzdGVyIGluIHNvbWUgY2FzZXMpLgorCisg
ICAgICAgIEFzIHdpdGggdGhlIHByaW9yIGJsaW5kaW5nIHBhdGNoIHRoZXJlJ3MgYSBtb2RlcmF0
ZSBhbW91bnQgb2Ygbm9pc2UgYXMgd2UKKyAgICAgICAgY29ycmVjdCB0aGUgdXNlIG9mIEltbVB0
ciB2cy4gVHJ1c3RlZEltbVB0ci4KKworICAgICAgICAqIGFzc2VtYmxlci9BYnN0cmFjdE1hY3Jv
QXNzZW1ibGVyLmg6CisgICAgICAgIChJbW1QdHIpOgorICAgICAgICAoSlNDOjpBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyOjpJbW1QdHI6OmFzVHJ1c3RlZEltbVB0cik6CisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChNYWNyb0Fzc2VtYmxlcik6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyOjpicmFuY2hQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c2hvdWxk
QmxpbmQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6Um90YXRlZEltbVB0cjo6Um90
YXRlZEltbVB0cik6CisgICAgICAgIChSb3RhdGVkSW1tUHRyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OnJvdGF0aW9uQmxpbmRDb25zdGFudCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6Y29udmVydEludDMyVG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlcjo6bW92ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwb2tlKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmJyYW5jaEFkZDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyWDg2XzY0KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnJvdGF0ZVJpZ2h0UHRyKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnhvclB0cik6CisgICAgICAgICogYXNzZW1ibGVy
L1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoWDg2QXNzZW1ibGVyKToKKyAgICAgICAgKEpTQzo6
WDg2QXNzZW1ibGVyOjp4b3JxX3JtKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpyb3Jx
X2k4cik6CisgICAgICAgICogZGZnL0RGR0NDYWxsSGVscGVycy5oOgorICAgICAgICAoQ0NhbGxI
ZWxwZXJzKToKKyAgICAgICAgKEpTQzo6REZHOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNyZWF0ZU9T
UkVudHJpZXMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsR1BSKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmVtaXRFZGdlQ29kZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2VyKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbERvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
T2JqZWN0RXF1YWxpdHkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlTG9naWNhbE5vdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRC
cmFuY2gpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRP
cHRpbWl6YXRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcG9zdF9pbmMpOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldFZpcnR1YWxSZWdpc3Rlcik6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
bW92KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25ld19vYmplY3QpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3Bfc3RyY2F0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Vu
c3VyZV9wcm9wZXJ0eV9leGlzdHMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2
ZV9za2lwKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9yZXNvbHZlX2dsb2JhbCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9qbXBfc2NvcGVzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRj
aF9pbW0pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3dpdGNoX2NoYXIpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3dpdGNoX3N0cmluZyk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF90aHJvd19yZWZlcmVuY2VfZXJyb3IpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfZGVidWcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFs
X2R5bmFtaWMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmV3X2FycmF5KToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9uZXdfYXJyYXkpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfbmV3X2FycmF5X2J1ZmZlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9uZXdfb2JqZWN0KToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX3N0cmNhdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9l
bnN1cmVfcHJvcGVydHlfZXhpc3RzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Jlc29s
dmVfc2tpcCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX2Jhc2UpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3RoaXMpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3Bfam1wX3Njb3Blcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zd2l0
Y2hfaW1tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRjaF9jaGFyKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRjaF9zdHJpbmcpOgorICAgICAgICAqIGppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9i
eV9pbmRleCk6CisgICAgICAgICogaml0L0pJVFN0dWJDYWxsLmg6CisgICAgICAgIChKSVRTdHVi
Q2FsbCk6CisgICAgICAgIChKU0M6OkpJVFN0dWJDYWxsOjphZGRBcmd1bWVudCk6CisKIDIwMTIt
MDMtMDYgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBHQ0FjdGl2aXR5Q2FsbGJhY2sgdGltZXIgc2hvdWxkIHZhcnkgd2l0aCB0aGUgbGVuZ3RoIG9m
IHRoZSBwcmV2aW91cyBHQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCAzYjlmYTU5ZDBhOGI3ODA2Mzk3
ZmNiMjdjMDRkZTFiNTQ4YzcyNmJmLi44MTYzYmFlNjM0YmEyODJjOTgxNmIyZWFmYzgwM2UyOWYw
MjU1YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3Ry
YWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtMTk2LDExICsxOTYsMTkgQEAgcHVibGljOgog
ICAgICAgICBjb25zdCB2b2lkKiBtX3ZhbHVlOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgSW1tUHRy
IDogcHVibGljIFRydXN0ZWRJbW1QdHIgeworICAgIHN0cnVjdCBJbW1QdHIgOiAKKyNpZiBFTkFC
TEUoSklUX0NPTlNUQU5UX0JMSU5ESU5HKQorICAgICAgICBwcml2YXRlIFRydXN0ZWRJbW1QdHIg
CisjZWxzZQorICAgICAgICBwdWJsaWMgVHJ1c3RlZEltbVB0cgorI2VuZGlmCisgICAgewogICAg
ICAgICBleHBsaWNpdCBJbW1QdHIoY29uc3Qgdm9pZCogdmFsdWUpCiAgICAgICAgICAgICA6IFRy
dXN0ZWRJbW1QdHIodmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgfQorCisgICAgICAgIFRydXN0
ZWRJbW1QdHIgYXNUcnVzdGVkSW1tUHRyKCkgeyByZXR1cm4gKnRoaXM7IH0KICAgICB9OwogCiAg
ICAgLy8gVHJ1c3RlZEltbTMyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oCmluZGV4IDc4MDg3MjNiZjgwYWIwN2E3ZjU3ZTI0NWQ5OWY3MGRl
MmUyZTQwMmYuLmRiNDU2YmI0MWJmODliYTdhMzgyM2QwMjAyNDlhOTliOTA0ZmQyMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAg
LTM3NCw2ICszNzQsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbG9hZDMyV2l0aENvbXBh
Y3RBZGRyZXNzT2Zmc2V0UGF0Y2goYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBt
b3ZlKEltbVB0ciBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1vdmUoSW1t
MzIoaW1tLmFzVHJ1c3RlZEltbVB0cigpKSwgZGVzdCk7CisgICAgfQorCiAgICAgdm9pZCBjb21w
YXJlUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBUcnVzdGVk
SW1tMzIgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGNvbXBhcmUzMihj
b25kLCBsZWZ0LCByaWdodCwgZGVzdCk7CkBAIC0zOTgsNiArNDAzLDExIEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwogICAgIH0K
KyAgICAKKyAgICB2b2lkIHN0b3JlUHRyKEltbVB0ciBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB7CisgICAgICAgIHN0b3JlMzIoSW1tMzIoaW1tLmFzVHJ1c3RlZEltbVB0cigpKSwgYWRkcmVz
cyk7CisgICAgfQogCiAgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tUHRyIGltbSwgdm9pZCog
YWRkcmVzcykKICAgICB7CkBAIC00MDksNyArNDE5LDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gc3RvcmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goc3JjLCBhZGRyZXNzKTsKICAgICB9CiAK
LQogICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJ
RCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGJyYW5jaDMy
KGNvbmQsIGxlZnQsIHJpZ2h0KTsKQEAgLTQxOSw2ICs0MjgsMTEgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIGxlZnQsIFRydXN0ZWRJbW0zMihyaWdodCkp
OwogICAgIH0KKyAgICAKKyAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNv
bmQsIFJlZ2lzdGVySUQgbGVmdCwgSW1tUHRyIHJpZ2h0KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGJyYW5jaDMyKGNvbmQsIGxlZnQsIEltbTMyKHJpZ2h0LmFzVHJ1c3RlZEltbVB0cigpKSk7Cisg
ICAgfQogCiAgICAgSnVtcCBicmFuY2hQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdp
c3RlcklEIGxlZnQsIEFkZHJlc3MgcmlnaHQpCiAgICAgewpAQCAtNDM5LDcgKzQ1Myw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBicmFuY2gzMihjb25kLCBsZWZ0LCBUcnVzdGVk
SW1tMzIocmlnaHQpKTsKICAgICB9Ci0KKyAgICAKICAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlv
bmFsQ29uZGl0aW9uIGNvbmQsIEFic29sdXRlQWRkcmVzcyBsZWZ0LCBUcnVzdGVkSW1tUHRyIHJp
Z2h0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIGxlZnQsIFRydXN0ZWRJ
bW0zMihyaWdodCkpOwpAQCAtNDY1LDcgKzQ3OSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGJyYW5jaFRlc3QzMihjb25kLCBhZGRyZXNzLCBtYXNrKTsKICAgICB9CiAKLQogICAgIEp1bXAg
YnJhbmNoQWRkUHRyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGJyYW5jaEFkZDMyKGNvbmQsIHNyYywg
ZGVzdCk7CkBAIC00ODcsMTggKzUwMCwxMDIgQEAgcHVibGljOgogICAgIHVzaW5nIE1hY3JvQXNz
ZW1ibGVyQmFzZTo6YW5kUHRyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6YnJhbmNo
U3ViUHRyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6Y29udmVydEludDMyVG9Eb3Vi
bGU7CisgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpzdG9yZVB0cjsKICAgICB1c2luZyBN
YWNyb0Fzc2VtYmxlckJhc2U6OnN1YlB0cjsKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6
OnhvclB0cjsKKyAgICAKKyAgICBib29sIHNob3VsZEJsaW5kKEltbVB0ciBpbW0pCisgICAgeyAK
KyAgICAgICAgQVNTRVJUKCFpblVuaW50ZXJydXB0ZWRTZXF1ZW5jZSgpKTsKKyNpZiAhZGVmaW5l
ZChOREVCVUcpCisgICAgICAgIFVOVVNFRF9QQVJBTShpbW0pOworICAgICAgICAvLyBEZWJ1ZyBh
bHdheXMgYmxpbmQgYWxsIGNvbnN0YW50cywgaWYgb25seSBzbyB3ZSBrbm93CisgICAgICAgIC8v
IGlmIHdlJ3ZlIGJyb2tlbiBibGluZGluZyBkdXJpbmcgcGF0Y2ggZGV2ZWxvcG1lbnQuCisgICAg
ICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAgICAgCisgICAgICAgIC8vIEZpcnN0IG9mZiB3
ZSdsbCBzcGVjaWFsIGNhc2UgY29tbW9uLCAic2FmZSIgdmFsdWVzIHRvIGF2b2lkIGh1cnRpbmcK
KyAgICAgICAgLy8gcGVyZm9ybWFuY2UgdG9vIG11Y2gKKyAgICAgICAgdWludHB0cl90IHZhbHVl
ID0gaW1tLmFzVHJ1c3RlZEltbVB0cigpLmFzSW50cHRyKCk7CisgICAgICAgIHN3aXRjaCAodmFs
dWUpIHsKKyAgICAgICAgY2FzZSAweGZmZmY6CisgICAgICAgIGNhc2UgMHhmZmZmZmY6CisgICAg
ICAgIGNhc2UgMHhmZmZmZmZmZkw6CisgICAgICAgIGNhc2UgMHhmZmZmZmZmZmZmTDoKKyAgICAg
ICAgY2FzZSAweGZmZmZmZmZmZmZmZkw6CisgICAgICAgIGNhc2UgMHhmZmZmZmZmZmZmZmZmZkw6
CisgICAgICAgIGNhc2UgMHhmZmZmZmZmZmZmZmZmZmZmTDoKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8PSAweGZmKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
c2hvdWxkQmxpbmRGb3JTcGVjaWZpY0FyY2godmFsdWUpOworI2VuZGlmCisgICAgfQogICAgIAor
ICAgIHN0cnVjdCBSb3RhdGVkSW1tUHRyIHsKKyAgICAgICAgUm90YXRlZEltbVB0cih1aW50cHRy
X3QgdjEsIHVpbnQ4X3QgdjIpCisgICAgICAgICAgICA6IHZhbHVlKHYxKQorICAgICAgICAgICAg
LCByb3RhdGlvbih2MikKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIFRydXN0ZWRJbW1Q
dHIgdmFsdWU7CisgICAgICAgIFRydXN0ZWRJbW0zMiByb3RhdGlvbjsKKyAgICB9OworICAgIAor
ICAgIFJvdGF0ZWRJbW1QdHIgcm90YXRpb25CbGluZENvbnN0YW50KEltbVB0ciBpbW0pCisgICAg
eworICAgICAgICB1aW50OF90IHJvdGF0aW9uID0gcmFuZG9tKCkgJSAoc2l6ZW9mKHZvaWQqKSAq
IDgpOworICAgICAgICB1aW50cHRyX3QgdmFsdWUgPSBpbW0uYXNUcnVzdGVkSW1tUHRyKCkuYXNJ
bnRwdHIoKTsKKyAgICAgICAgdmFsdWUgPSAodmFsdWUgPDwgcm90YXRpb24pIHwgKHZhbHVlID4+
IChzaXplb2Yodm9pZCopICogOCAtIHJvdGF0aW9uKSk7CisgICAgICAgIHJldHVybiBSb3RhdGVk
SW1tUHRyKHZhbHVlLCByb3RhdGlvbik7CisgICAgfQorICAgIAorICAgIHZvaWQgbG9hZFJvdGF0
aW9uQmxpbmRlZENvbnN0YW50KFJvdGF0ZWRJbW1QdHIgY29uc3RhbnQsIFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB7CisgICAgICAgIG1vdmUoY29uc3RhbnQudmFsdWUsIGRlc3QpOworICAgICAgICBy
b3RhdGVSaWdodFB0cihjb25zdGFudC5yb3RhdGlvbiwgZGVzdCk7CisgICAgfQorCiAgICAgdm9p
ZCBjb252ZXJ0SW50MzJUb0RvdWJsZShJbW0zMiBpbW0sIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkpIHsKLSAgICAgICAgICAgIFJlZ2lzdGVy
SUQgc2NyYXRjaFJlZ2lzdGVyID0gKFJlZ2lzdGVySUQpc2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRp
bmcoKTsKLSAgICAgICAgICAgIEFTU0VSVChzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICAgICAg
UmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygp
OwogICAgICAgICAgICAgbG9hZFhvckJsaW5kZWRDb25zdGFudCh4b3JCbGluZENvbnN0YW50KGlt
bSksIHNjcmF0Y2hSZWdpc3Rlcik7CiAgICAgICAgICAgICBjb252ZXJ0SW50MzJUb0RvdWJsZShz
Y3JhdGNoUmVnaXN0ZXIsIGRlc3QpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNvbnZl
cnRJbnQzMlRvRG91YmxlKGltbS5hc1RydXN0ZWRJbW0zMigpLCBkZXN0KTsKICAgICB9CisKKyAg
ICB2b2lkIG1vdmUoSW1tUHRyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAg
aWYgKHNob3VsZEJsaW5kKGltbSkpCisgICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29u
c3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KGltbSksIGRlc3QpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtb3ZlKGltbS5hc1RydXN0ZWRJbW1QdHIoKSwgZGVzdCk7CisgICAgfQorCisg
ICAgSnVtcCBicmFuY2hQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxl
ZnQsIEltbVB0ciByaWdodCkKKyAgICB7CisgICAgICAgIGlmIChzaG91bGRCbGluZChyaWdodCkp
IHsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2NyYXRjaFJlZ2lz
dGVyRm9yQmxpbmRpbmcoKTsKKyAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRDb25zdGFu
dChyb3RhdGlvbkJsaW5kQ29uc3RhbnQocmlnaHQpLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAg
ICAgICAgcmV0dXJuIGJyYW5jaFB0cihjb25kLCBsZWZ0LCBzY3JhdGNoUmVnaXN0ZXIpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgcmlnaHQuYXNUcnVz
dGVkSW1tUHRyKCkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHN0b3JlUHRyKEltbVB0ciBpbW0s
IEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAgICAgIGlmIChzaG91bGRCbGluZChpbW0pKSB7Cisg
ICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3RlckZv
ckJsaW5kaW5nKCk7CisgICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQocm90
YXRpb25CbGluZENvbnN0YW50KGltbSksIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgICAgICBz
dG9yZVB0cihzY3JhdGNoUmVnaXN0ZXIsIGRlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIHN0b3JlUHRyKGltbS5hc1RydXN0ZWRJbW1QdHIoKSwgZGVzdCk7CisgICAgfQorCiAjZW5k
aWYKIAogI2VuZGlmIC8vICFDUFUoWDg2XzY0KQpAQCAtNjg1LDYgKzc4MiwxMSBAQCBwdWJsaWM6
CiAgICAgICAgIHN0b3JlMzIodmFsdWUsIGFkZHJlc3NGb3JQb2tlKGluZGV4KSk7CiAgICAgfQog
ICAgIAorICAgIHZvaWQgcG9rZShJbW1QdHIgdmFsdWUsIGludCBpbmRleCA9IDApCisgICAgewor
ICAgICAgICBzdG9yZVB0cih2YWx1ZSwgYWRkcmVzc0ZvclBva2UoaW5kZXgpKTsKKyAgICB9Cisg
ICAgCiAgICAgdm9pZCBzdG9yZTMyKEltbTMyIGltbSwgQWRkcmVzcyBkZXN0KQogICAgIHsKICAg
ICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggNzJhMDNhMzFlNzQ2
ODBmYjgxNTNkZjIxNDdiOTUzOWY2MTFiMTUwNS4uOGMzMTExMDdjYmI0ZmY2YzMxYThhMTVjYjY2
ZTU3MTM5NTU0ZWYwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTgwNSw3ICs4MDUsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHN0b3JlRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJl
c3MpCiAgICAgewotICAgICAgICBtb3ZlKEltbVB0cihhZGRyZXNzKSwgYWRkcmVzc1RlbXBSZWdp
c3Rlcik7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkcmVzc1RlbXBS
ZWdpc3Rlcik7CiAgICAgICAgIHN0b3JlRG91YmxlKHNyYywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7
CiAgICAgfQogCkBAIC0xMzc3LDcgKzEzNzcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAv
LyBNb3ZlIHRoZSBoaWdoIGJpdHMgb2YgdGhlIGFkZHJlc3MgaW50byBhZGRyZXNzVGVtcFJlZ2lz
dGVyLAogICAgICAgICAvLyBhbmQgbG9hZCB0aGUgdmFsdWUgaW50byBkYXRhVGVtcFJlZ2lzdGVy
LgotICAgICAgICBtb3ZlKEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7
CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdp
c3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNz
VGVtcFJlZ2lzdGVyLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxNigwKSk7CiAKICAgICAg
ICAgLy8gRG8gdGhlIGFkZC4KQEAgLTEzOTAsNyArMTM5MCw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIC8vIHdlJ2xsIG5lZWQgdG8gcmVsb2FkIGl0IHdpdGggdGhlIGhpZ2ggYml0cyBvZiB0aGUg
YWRkcmVzcyBhZnRlcndhcmRzLgogICAgICAgICAgICAgbW92ZShpbW0sIGFkZHJlc3NUZW1wUmVn
aXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkX1MoZGF0YVRlbXBSZWdpc3Rlciwg
ZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtb3Zl
KEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0ciksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwogICAg
ICAgICB9CiAKICAgICAgICAgLy8gU3RvcmUgdGhlIHJlc3VsdC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAx
MzVlOWM0YjkwYzM0YjlmNDBlZDA3MmFkYzdjNjc1ODkwNWJiZmUxLi5hMmI0MzExZTVlYTEwNjhi
NjAyNmJlNzU4YWU2MjQ2YTk2NTc4ZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC0yMTYsNiArMjE2LDEx
IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShzcmMsIGRlc3QpOwogICAgICAgICBvclB0cihpbW0s
IGRlc3QpOwogICAgIH0KKyAgICAKKyAgICB2b2lkIHJvdGF0ZVJpZ2h0UHRyKFRydXN0ZWRJbW0z
MiBpbW0sIFJlZ2lzdGVySUQgc3JjRHN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucm9y
cV9pOHIoaW1tLm1fdmFsdWUsIHNyY0RzdCk7CisgICAgfQogCiAgICAgdm9pZCBzdWJQdHIoUmVn
aXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC0yMzcsMTMgKzI0MiwxNyBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci54b3JxX3JyKHNyYywgZGVzdCk7
CiAgICAgfQorICAgIAorICAgIHZvaWQgeG9yUHRyKFJlZ2lzdGVySUQgc3JjLCBBZGRyZXNzIGRl
c3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci54b3JxX3JtKHNyYywgZGVzdC5vZmZzZXQs
IGRlc3QuYmFzZSk7CisgICAgfQogCiAgICAgdm9pZCB4b3JQdHIoVHJ1c3RlZEltbTMyIGltbSwg
UmVnaXN0ZXJJRCBzcmNEZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIueG9ycV9pcihp
bW0ubV92YWx1ZSwgc3JjRGVzdCk7CiAgICAgfQogCi0KICAgICB2b2lkIGxvYWRQdHIoSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLm1vdnFfbXIoYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgZGVzdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAppbmRleCA3YWU3
ZmFjNDMzOGU0YTc4ZDg4MGIxMDkwOTJjYjBkMTQ0YWRmN2E2Li5iMjRmZmZiOGY0NTBjOTM4YThm
ODcwOWYyNWU5N2ViMDliZWRjYjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvWDg2QXNzZW1ibGVyLmgKQEAgLTIxNiw3ICsyMTYsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgR1JPVVAxX09QX0NNUCA9IDcsCiAKICAgICAgICAgR1JPVVAxQV9PUF9QT1AgPSAwLAotCisg
ICAgICAgIAorICAgICAgICBHUk9VUDJfT1BfUk9MID0gMCwKKyAgICAgICAgR1JPVVAyX09QX1JP
UiA9IDEsCisgICAgICAgIEdST1VQMl9PUF9SQ0wgPSAyLAorICAgICAgICBHUk9VUDJfT1BfUkNS
ID0gMywKKyAgICAgICAgCiAgICAgICAgIEdST1VQMl9PUF9TSEwgPSA0LAogICAgICAgICBHUk9V
UDJfT1BfU0hSID0gNSwKICAgICAgICAgR1JPVVAyX09QX1NBUiA9IDcsCkBAIC02MzYsNiArNjQx
LDIyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTMyKGltbSk7
CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgdm9pZCB4b3JxX3JtKFJlZ2lzdGVySUQgc3Jj
LCBpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRl
ci5vbmVCeXRlT3A2NChPUF9YT1JfRXZHdiwgc3JjLCBiYXNlLCBvZmZzZXQpOworICAgIH0KKyAg
ICAKKyAgICB2b2lkIHJvcnFfaThyKGludCBpbW0sIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAg
ICAgICAgaWYgKGltbSA9PSAxKQorICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wNjQo
T1BfR1JPVVAyX0V2MSwgR1JPVVAyX09QX1JPUiwgZHN0KTsKKyAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3A2NChPUF9HUk9VUDJfRXZJYiwgR1JPVVAyX09Q
X1JPUiwgZHN0KTsKKyAgICAgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAg
ICAgICAgfQorICAgIH0KKwogI2VuZGlmCiAKICAgICB2b2lkIHNhcmxfaThyKGludCBpbW0sIFJl
Z2lzdGVySUQgZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
Q2FsbEhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0NhbGxIZWxwZXJz
LmgKaW5kZXggMzQ4MWY5OWU4MmFkYmVhZmMwYzY0NjRiM2Y0NDhkN2RhOGViNDljZS4uMTY3OTNi
YjQ2ZjJmZGVlZjZiZTJiNjU0ZDE2MDMxYmI3N2EzYjg3OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oCkBAIC00MjAsNiArNDIwLDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgICAgICBtb3Zl
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IH0KKyAgICAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEdQUlJlZyBhcmcxLCBJbW1QdHIgYXJnMikKKyAgICB7CisgICAgICAgIG1vdmUoYXJnMSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpOworICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOworICAgIH0KIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMikK
ICAgICB7CkBAIC00MjcsNiArNDM0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShhcmcxLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KKyAgICAKKyAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEltbVB0ciBhcmcxLCBHUFJS
ZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIy
KTsgLy8gTW92ZSB0aGlzIGZpcnN0LCBzbyBzZXR0aW5nIGFyZzEgZG9lcyBub3QgdHJhbXBsZSEK
KyAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3Zl
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAg
IH0KIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
VHJ1c3RlZEltbTMyIGFyZzEsIFRydXN0ZWRJbW0zMiBhcmcyKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKaW5k
ZXggOTI2N2ViMDdmMzE5NzRmYThjMGE3MjJkODI0OWVkMWNiODRkMTQ0Yy4uYmQ0NTAyMGQxYjE3
ZDg4NWZlZTZiMzgyZTBiNWMwNGU2MzFlNWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKQEAgLTU3NSw3ICs1NzUs
NyBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhp
dCwgU3BlY3VsYXRpb25SZWNvdmVyeSogcmVjbwogICAgIAogICAgIG1faml0Lm1vdmUoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1faml0LmJhc2VsaW5lQ29kZUJsb2NrKCkpLCBHUFJJ
bmZvOjpyZWdUMCk7CiAgICAgCi0gICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIGZld0ZhaWxzID0g
bV9qaXQuYnJhbmNoMzIoQXNzZW1ibHlIZWxwZXJzOjpCZWxvd09yRXF1YWwsIEdQUkluZm86OnJl
Z1QyLCBBc3NlbWJseUhlbHBlcnM6OkltbTMyKG1faml0LmNvZGVCbG9jaygpLT5sYXJnZUZhaWxD
b3VudFRocmVzaG9sZCgpKSk7CisgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIGZld0ZhaWxzID0g
bV9qaXQuYnJhbmNoMzIoQXNzZW1ibHlIZWxwZXJzOjpCZWxvd09yRXF1YWwsIEdQUkluZm86OnJl
Z1QyLCBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihtX2ppdC5jb2RlQmxvY2soKS0+bGFy
Z2VGYWlsQ291bnRUaHJlc2hvbGQoKSkpOwogICAgIG1faml0Lm11bDMyKEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKE9wdGlvbnM6OmRlc2lyZWRTcGVjdWxhdGl2ZVN1Y2Nlc3NGYWlsUmF0
aW8pLCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVnVDIpOwogICAgIAogICAgIEFzc2VtYmx5
SGVscGVyczo6SnVtcCBsb3dGYWlsUmF0ZSA9IG1faml0LmJyYW5jaDMyKEFzc2VtYmx5SGVscGVy
czo6QmVsb3dPckVxdWFsLCBHUFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVnVDEpOwpAQCAtNjMy
LDEzICs2MzIsMTMgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IE9T
UkV4aXQmIGV4aXQsIFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY28KICAgICAgICAgICAgIGNhbGxl
ckZyYW1lR1BSID0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXI7CiAgICAgICAgIAogICAgICAg
ICBtX2ppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYmFzZWxpbmVD
b2RlQmxvY2spLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3Rlciko
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q29kZUJsb2NrKSkp
OwotICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6SW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pKSk7Cisg
ICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlu
bGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pKSk7
CiAgICAgICAgIG1faml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihp
bmxpbmVDYWxsRnJhbWUtPmNhbGxlZS0+c2NvcGUoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9h
ZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVn
aXN0ZXJGaWxlOjpTY29wZUNoYWluKSkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5
SGVscGVyczo6SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9y
KChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3Rl
ckZpbGU6OkNhbGxlckZyYW1lKSkpOworICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRh
Z0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVn
aXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSkpKTsKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoY2FsbGVy
RnJhbWVHUFIsIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShp
bmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSkp
KTsKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGp1bXBUYXJnZXQpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3Rl
cikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMp
KSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpJbW0zMihpbmxpbmVD
YWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3Io
KFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVy
RmlsZTo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhl
bHBlcnM6OkltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zvcigo
VmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJG
aWxlOjpDYWxsZWUpKSk7CisgICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgpKSwgQXNzZW1ibHlI
ZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3Rh
Y2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKSk7CisgICAgICAgIG1faml0
LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFt
ZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlZSkpKTsKICAgICAgICAgbV9qaXQu
c3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+
Y2FsbGVlLmdldCgpKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0
ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlZSkp
KTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09TUkV4aXRDb21waWxlcjY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdENvbXBpbGVyNjQuY3BwCmluZGV4IDA3NGY5YWEwMmYyZDdlYWM2ZmE2ZWZhZWRkMjU3ODNl
NTVmYzM1NzcuLjkxYTUxNWM0ODlmOTlhZTI1MzdjNDA4MDU2YTJkZDQ2NzcyMWM2MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3Bw
CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNv
bnN0IE9TUkV4aXQmIGV4aXQsIFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY28KICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgQWxyZWFkeUlu
UmVnaXN0ZXJGaWxlQXNVbmJveGVkSW50MzI6Ci0gICAgICAgICAgICAgICAgbV9qaXQuc3RvcmUz
MihBc3NlbWJseUhlbHBlcnM6OkltbTMyKHN0YXRpY19jYXN0PHVpbnQzMl90PihUYWdUeXBlTnVt
YmVyID4+IDMyKSksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxS
ZWdpc3Rlcj4oZXhpdC5vcGVyYW5kRm9ySW5kZXgoaW5kZXgpKSkpOworICAgICAgICAgICAgICAg
IG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KFRhZ1R5cGVOdW1iZXIgPj4gMzIpKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3Io
c3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihleGl0Lm9wZXJhbmRGb3JJbmRleChpbmRleCkp
KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICBjYXNlIFVJbnQzMkluR1BSOiB7CkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBPU1JFeGl0Q29t
cGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IE9TUkV4aXQmIGV4aXQsIFNwZWN1bGF0aW9uUmVjb3Zl
cnkqIHJlY28KICAgICB9CiAgICAgCiAgICAgaWYgKGV4aXQubV9jb2RlT3JpZ2luLmlubGluZUNh
bGxGcmFtZSkKLSAgICAgICAgbV9qaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6SW1tMzIoZXhp
dC5tX2NvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAqIHNpemVvZihFbmNv
ZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIG1faml0
LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihleGl0Lm1fY29kZU9yaWdpbi5p
bmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSksIEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAKICAgICAvLyAxNikgSnVtcCBpbnRvIHRo
ZSBjb3JyZXNwb25kaW5nIGJhc2VsaW5lIEpJVCBjb2RlLgogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA0YTRhY2FlYmY5ZThm
ODI5ZTFmYzE1NjViN2EyOWUyNmQyODM2NTgzLi41YWZkYTY3OTA3NWFjOWViZmJkMzMxY2EzYzIw
MGFhNGJhNzliMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcApAQCAtMTI1OSw3ICsxMjU5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y3JlYXRlT1NSRW50cmllcygpCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIG1fb3NyRW50
cnlIZWFkcy5hcHBlbmQobV9qaXQubGFiZWwoKSk7Ci0gICAgICAgIG1faml0Lm1vdmUoSW1tMzIo
YmxvY2tJbmRleCksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVk
SW1tMzIoYmxvY2tJbmRleCksIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgbV9qaXQuanVtcCgp
LmxpbmtUbyhtX2Jsb2NrSGVhZHNbYmxvY2tJbmRleF0sICZtX2ppdCk7CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDJlMzJm
ODFhZWQ2ZTY2NDNhZTczMzc5MWUxODAxNjMyZWQyNWE4N2EuLjE3NDRhMDNmMzE5OWNlOGJjNzZm
MmYyNmZjMTVlMmU3MWYxZTE1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKQEAgLTQ1Miw3ICs0NTIsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gdGFyZ2V0KTsKICAgICAgICAgICAgIGlmIChub2RlLmhh
c0NvbnN0YW50KCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXNCb29sZWFuQ29uc3RhbnQo
bm9kZUluZGV4KSk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubW92ZShJbW0zMih2YWx1ZU9mQm9v
bGVhbkNvbnN0YW50KG5vZGVJbmRleCkpLCB0YXJnZXQpOworICAgICAgICAgICAgICAgIG1faml0
Lm1vdmUoVHJ1c3RlZEltbTMyKHZhbHVlT2ZCb29sZWFuQ29uc3RhbnQobm9kZUluZGV4KSksIHRh
cmdldCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkMzIo
SklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3BpbGxNZSksIHRhcmdldCk7CiAjZW5kaWYKQEAgLTQ2
NCw3ICs0NjQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3RhbnQo
KSkgewogICAgICAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB2YWx1ZU9mSlNDb25zdGFudChu
b2RlSW5kZXgpOwogICAgICAgICAgICAgICAgIEFTU0VSVCh2YWx1ZS5pc0NlbGwoKSk7Ci0gICAg
ICAgICAgICAgICAgbV9qaXQubW92ZShJbW1QdHIodmFsdWUuYXNDZWxsKCkpLCB0YXJnZXQpOwor
ICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cih2YWx1ZS5hc0NlbGwoKSks
IHRhcmdldCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBtX2ppdC5sb2Fk
UHRyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHNwaWxsTWUpLCB0YXJnZXQpOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtNDc5LDkgKzQ3OSwxMiBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQo
cmVnaXN0ZXJGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIEFTU0VSVChpbmZvLmdwcigpID09IHRhcmdldCk7Ci0gICAgICAgIGlmIChub2RlLmhhc0Nv
bnN0YW50KCkpCi0gICAgICAgICAgICBtX2ppdC5tb3ZlKHZhbHVlT2ZKU0NvbnN0YW50QXNJbW1Q
dHIobm9kZUluZGV4KSwgdGFyZ2V0KTsKLSAgICAgICAgZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1h
dCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CisgICAgICAgIGlmIChub2RlLmhhc0NvbnN0YW50
KCkpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZU9mSlNDb25zdGFudChub2RlSW5kZXgpLmlzQ2Vs
bCgpKQorICAgICAgICAgICAgICAgIG1faml0Lm1vdmUodmFsdWVPZkpTQ29uc3RhbnRBc0ltbVB0
cihub2RlSW5kZXgpLmFzVHJ1c3RlZEltbVB0cigpLCB0YXJnZXQpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG1faml0Lm1vdmUodmFsdWVPZkpTQ29uc3RhbnRBc0ltbVB0cihu
b2RlSW5kZXgpLCB0YXJnZXQpOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3BpbGxGb3JtYXQo
KSA9PSBEYXRhRm9ybWF0SW50ZWdlcikgewogICAgICAgICAgICAgQVNTRVJUKHJlZ2lzdGVyRm9y
bWF0ID09IERhdGFGb3JtYXRKU0ludGVnZXIpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKEpJ
VENvbXBpbGVyOjpwYXlsb2FkRm9yKHNwaWxsTWUpLCB0YXJnZXQpOwogICAgICAgICAgICAgbV9q
aXQub3JQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCB0YXJnZXQpOwpAQCAtMTE4
OCwxMiArMTE5MSwxMiBAQCBwcml2YXRlOgogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IEdQUlJlZyBhcmcxLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGltbSkKICAgICB7Ci0g
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBNYWNyb0Fzc2Vt
Ymxlcjo6SW1tUHRyKHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoaW1tLm1fdmFsdWUpKSkpKTsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0YXRpY19jYXN0
PGNvbnN0IHZvaWQqPihKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW1tLm1fdmFsdWUpKSkpKTsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3Bl
cmF0aW9uLCByZXN1bHQpOwogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfREZHT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIgaW1tLCBHUFJSZWcgYXJnMikKICAgICB7Ci0gICAgICAgIG1f
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKHN0
YXRpY19jYXN0PGNvbnN0IHZvaWQqPihKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW1tLm1fdmFs
dWUpKSkpLCBhcmcyKTsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW1tLm1fdmFsdWUpKSkpLCBhcmcyKTsKICAgICAgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0aW9uLCBy
ZXN1bHQpOwogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZH
T3BlcmF0aW9uX0VDSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJS
ZWcgYXJnMikKQEAgLTEyOTYsNyArMTI5OSw3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpQIG9wZXJhdGlvbiwg
R1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBH
UFJSZWcgYXJnMVBheWxvYWQsIHZvaWQqIHBvaW50ZXIpCiAgICAgewotICAgICAgICBtX2ppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFUYWcsIEltbVB0cihw
b2ludGVyKSk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
UGF5bG9hZCwgYXJnMVRhZywgVHJ1c3RlZEltbVB0cihwb2ludGVyKSk7CiAgICAgICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0
UGF5bG9hZCwgcmVzdWx0VGFnKTsKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FSlAgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwg
R1BSUmVnIGFyZzIpCkBAIC0xNjM5LDcgKzE2NDIsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAg
ICAgaWYgKCFERkdfRU5BQkxFX0VER0VfQ09ERV9WRVJJRklDQVRJT04pCiAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIG1faml0Lm1vdmUoSW1tMzIoZGVzdGluYXRpb24pLCBHUFJJbmZvOjpy
ZWdUMCk7CisgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKGRlc3RpbmF0aW9uKSwgR1BS
SW5mbzo6cmVnVDApOwogICAgIH0KIAogICAgIHZvaWQgYWRkQnJhbmNoKGNvbnN0IE1hY3JvQXNz
ZW1ibGVyOjpKdW1wJiBqdW1wLCBCbG9ja0luZGV4IGRlc3RpbmF0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXgg
YTQ5YzMzNjc1YTA1ODYyM2MxN2U4NTI1MzRkNTkzOTY3N2NjNTAxYi4uYWQ0MjkzODNiNjQwMzY5
NjM3ZDYxNDU4MjE0ZWMzNjFiZTY0ZjZiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0yNTQ2LDcgKzI1NDYsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIG1faml0
LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgc3RvcmFnZUxlbmd0aEdQUik7CiAgICAgICAgIG1faml0
LnN0b3JlMzIoc3RvcmFnZUxlbmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFn
ZUdQUiwgT0JKRUNUX09GRlNFVE9GKEFycmF5U3RvcmFnZSwgbV9sZW5ndGgpKSk7CiAgICAgICAg
IG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Rv
cmFnZUdQUiwgT0JKRUNUX09GRlNFVE9GKEFycmF5U3RvcmFnZSwgbV9udW1WYWx1ZXNJblZlY3Rv
cikpKTsKLSAgICAgICAgbV9qaXQubW92ZShJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHN0b3Jh
Z2VHUFIpOworICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRh
ZyksIHN0b3JhZ2VHUFIpOwogICAgICAgICAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICAgICAgCkBAIC0yNjA0LDggKzI2MDQsOCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgIAogICAgICAgICBo
b2xlQ2FzZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIGVtcHR5QXJyYXlDYXNlLmxpbmsoJm1faml0
KTsKLSAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6SW1tMzIoanNVbmRlZmluZWQo
KS50YWcoKSksIHZhbHVlVGFnR1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxl
cjo6SW1tMzIoanNVbmRlZmluZWQoKS5wYXlsb2FkKCkpLCB2YWx1ZVBheWxvYWRHUFIpOworICAg
ICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoanNVbmRlZmluZWQo
KS50YWcoKSksIHZhbHVlVGFnR1BSKTsKKyAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKGpzVW5kZWZpbmVkKCkucGF5bG9hZCgpKSwgdmFsdWVQYXlsb2FkR1BS
KTsKICAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKICAgICAgICAgCiAgICAgICAg
IHNsb3dDYXNlLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGJjNWEwNTdjN2MyYjhlYmUyZmMxNmNjMzVj
NzdhOWM2NjVmMDRkNGQuLmE5YjdmY2E3MTZiMDgxYzMzNDcxZDUwYWJjOTEwNDQ3NmI0YmQyYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcApAQCAtNTcsNyArNTcsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2Vy
KE5vZGVJbmRleCBub2RlSW5kZXgsIERhdGFGb3JtYXQmIHJldHVybkZvcm1hdAogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXNKU0NvbnN0YW50KG5vZGVJbmRl
eCkpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUganNWYWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50
KG5vZGVJbmRleCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6
SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKSksIGdwcik7CisgICAgICAgICAgICAgICAg
bV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUo
anNWYWx1ZSkpLCBncHIpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKGluZm8u
c3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0SW50ZWdlcikgewogICAgICAgICAgICAgbV9ncHJz
LnJldGFpbihncHIsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlclNwaWxsZWQpOwpAQCAtMTQx
LDcgKzE0MSw3IEBAIEZQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbERvdWJsZShOb2RlSW5kZXgg
bm9kZUluZGV4KQogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgbm90IGJlIHJlYWNo
YWJsZT8KICAgICAgICAgICAgICAgICBBU1NFUlQoaXNKU0NvbnN0YW50KG5vZGVJbmRleCkpOwog
ICAgICAgICAgICAgICAgIEpTVmFsdWUganNWYWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJ
bmRleCk7Ci0gICAgICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6SW1tUHRy
KEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKSksIGdwcik7CisgICAgICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNWYWx1
ZSkpLCBncHIpOwogICAgICAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4oZ3ByLCB2aXJ0dWFsUmVn
aXN0ZXIsIFNwaWxsT3JkZXJDb25zdGFudCk7CiAgICAgICAgICAgICAgICAgaW5mby5maWxsSlNW
YWx1ZShncHIsIERhdGFGb3JtYXRKUyk7CiAgICAgICAgICAgICAgICAgdW5sb2NrKGdwcik7CkBA
IC0yODMsNyArMjgzLDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShOb2Rl
SW5kZXggbm9kZUluZGV4KQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBB
U1NFUlQoaXNKU0NvbnN0YW50KG5vZGVJbmRleCkpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUg
anNWYWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCk7Ci0gICAgICAgICAgICAgICAg
bV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1ZhbHVl
KSksIGdwcik7CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSkpLCBncHIpOwogICAgICAgICAgICAg
ICAgIGluZm8uZmlsbEpTVmFsdWUoZ3ByLCBEYXRhRm9ybWF0SlMpOwogICAgICAgICAgICAgfQog
CkBAIC05NjMsNyArOTYzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSYg
bm9kZSkKICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNhbGxlZUdQ
UiwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGVDaGFpbikpLCByZXN1bHRHUFIp
OwogICAgIG1faml0LnN0b3JlUHRyKHJlc3VsdEdQUiwgY2FsbEZyYW1lU2xvdChSZWdpc3RlckZp
bGU6OlNjb3BlQ2hhaW4pKTsKIAotICAgIG1faml0LmFkZFB0cihJbW0zMihtX2ppdC5jb2RlQmxv
Y2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnMgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1tMzIobV9qaXQu
Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICAKICAgICBDb2RlT3JpZ2luIGNvZGVPcmln
aW4gPSBhdChtX2NvbXBpbGVJbmRleCkuY29kZU9yaWdpbjsKICAgICBDYWxsQmVnaW5Ub2tlbiB0
b2tlbiA9IG1faml0LmJlZ2luSlNDYWxsKCk7CkBAIC05NzgsNyArOTc4LDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSYgbm9kZSkKICAgICB0b2tlbiA9IG1faml0LmJlZ2lu
Q2FsbCgpOwogICAgIEpJVENvbXBpbGVyOjpDYWxsIHNsb3dDYWxsID0gbV9qaXQuYXBwZW5kQ2Fs
bChzbG93Q2FsbEZ1bmN0aW9uKTsKICAgICBtX2ppdC5hZGRGYXN0RXhjZXB0aW9uQ2hlY2soc2xv
d0NhbGwsIGNvZGVPcmlnaW4sIHRva2VuKTsKLSAgICBtX2ppdC5hZGRQdHIoSW1tMzIobV9qaXQu
Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMy
KG1faml0LmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycyAqIHNpemVvZihSZWdpc3Rl
cikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgdG9rZW4gPSBtX2ppdC5iZWdp
bkpTQ2FsbCgpOwogICAgIEpJVENvbXBpbGVyOjpDYWxsIHRoZUNhbGwgPSBtX2ppdC5jYWxsKEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKICAgICBtX2ppdC5ub3RpZnlDYWxsKHRoZUNhbGwsIGNv
ZGVPcmlnaW4sIHRva2VuKTsKQEAgLTE0NzYsMTAgKzE0NzYsMTAgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZU9iamVjdEVxdWFsaXR5KE5vZGUmIG5vZGUsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmYKICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncyhv
cDJHUFIpLCBub2RlLmNoaWxkMigpLmluZGV4KCksIG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG9wMkdQUiwgSlNDZWxsOjpj
bGFzc0luZm9PZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKGNsYXNzSW5m
bykpKTsKICAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBmYWxzZUNhc2UgPSBtX2ppdC5i
cmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDFHUFIsIG9wMkdQUik7Ci0gICAg
bV9qaXQubW92ZShJbW0zMihWYWx1ZVRydWUpLCByZXN1bHRHUFIpOworICAgIG1faml0Lm1vdmUo
VHJ1c3RlZEltbTMyKFZhbHVlVHJ1ZSksIHJlc3VsdEdQUik7CiAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICBmYWxzZUNhc2UubGluaygmbV9qaXQpOwot
ICAgIG1faml0Lm1vdmUoSW1tMzIoVmFsdWVGYWxzZSksIHJlc3VsdEdQUik7CisgICAgbV9qaXQu
bW92ZShUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3VsdEdQUik7CiAgICAgZG9uZS5saW5r
KCZtX2ppdCk7CiAKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxlSW5kZXgs
IERhdGFGb3JtYXRKU0Jvb2xlYW4pOwpAQCAtMTU5Miw3ICsxNTkyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUxvZ2ljYWxOb3QoTm9kZSYgbm9kZSkKICAgICAgICAgR1BSVGVtcG9y
YXJ5IHJlc3VsdCh0aGlzKTsKICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoVmFsdWVG
YWxzZSksIHJlc3VsdC5ncHIoKSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vblpl
cm8gPSBtX2ppdC5icmFuY2hEb3VibGVOb25aZXJvKHZhbHVlLmZwcigpLCBzY3JhdGNoLmZwcigp
KTsKLSAgICAgICAgbV9qaXQueG9yMzIoSW1tMzIodHJ1ZSksIHJlc3VsdC5ncHIoKSk7CisgICAg
ICAgIG1faml0LnhvcjMyKFRydXN0ZWRJbW0zMih0cnVlKSwgcmVzdWx0LmdwcigpKTsKICAgICAg
ICAgbm9uWmVyby5saW5rKCZtX2ppdCk7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0Lmdw
cigpLCBtX2NvbXBpbGVJbmRleCwgRGF0YUZvcm1hdEpTQm9vbGVhbik7CiAgICAgICAgIHJldHVy
bjsKQEAgLTE3MTQsMTggKzE3MTQsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJyYW5j
aChOb2RlJiBub2RlKQogICAgICAgICBib29sIHByZWRpY3RCb29sZWFuID0gaXNCb29sZWFuUHJl
ZGljdGlvbihtX2ppdC5nZXRQcmVkaWN0aW9uKG5vZGUuY2hpbGQxKCkpKTsKICAgICAKICAgICAg
ICAgaWYgKHByZWRpY3RCb29sZWFuKSB7Ci0gICAgICAgICAgICBicmFuY2hQdHIoTWFjcm9Bc3Nl
bWJsZXI6OkVxdWFsLCB2YWx1ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OkltbVB0cihKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGZhbHNlKSkpLCBub3RUYWtlbik7Ci0gICAgICAgICAgICBicmFuY2hQ
dHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OkltbVB0
cihKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKSksIHRha2VuKTsKKyAgICAgICAgICAg
IGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSkpLCBub3RU
YWtlbik7CisgICAgICAgICAgICBicmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1
ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbih0cnVlKSkpLCB0YWtlbik7CiAKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFk
VHlwZSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBub2RlLmNoaWxkMSgpLCBtX2ppdC5qdW1wKCkp
OwogICAgICAgICAgICAgdmFsdWUudXNlKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBicmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZUdQUiwgTWFjcm9Bc3NlbWJs
ZXI6OkltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpKSwgbm90VGFrZW4pOworICAg
ICAgICAgICAgYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFsdWVHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSkpLCBu
b3RUYWtlbik7CiAgICAgICAgICAgICBicmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JF
cXVhbCwgdmFsdWVHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgdGFrZW4pOwog
ICAgIAogICAgICAgICAgICAgaWYgKCFwcmVkaWN0Qm9vbGVhbikgewotICAgICAgICAgICAgICAg
IGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKSksIG5vdFRha2VuKTsK
LSAgICAgICAgICAgICAgICBicmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZUdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OkltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUp
KSksIHRha2VuKTsKKyAgICAgICAgICAgICAgICBicmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVx
dWFsLCB2YWx1ZUdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihmYWxzZSkpKSwgbm90VGFrZW4pOworICAgICAgICAgICAgICAgIGJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKSksIHRha2VuKTsKICAg
ICAgICAgICAgIH0KICAgICAKICAgICAgICAgICAgIHZhbHVlLnVzZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCmluZGV4IDk4MDE3OWE2ZDZjODc3Yjc0MzRiYzM3YmVkZWIxNzJhNGEwZTVj
NTYuLjYwOWUxNTM1OGFhMmM2ZmQwNmZmM2E5ZTA0ZDVkNTI0ZTA1YzgwOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIEpJVDo6ZW1pdE9wdGlt
aXphdGlvbkNoZWNrKE9wdGltaXphdGlvbkNoZWNrS2luZCBraW5kKQogICAgIEp1bXAgc2tpcE9w
dGltaXplID0gYnJhbmNoQWRkMzIoU2lnbmVkLCBUcnVzdGVkSW1tMzIoa2luZCA9PSBMb29wT3B0
aW1pemF0aW9uQ2hlY2sgPyBPcHRpb25zOjpleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yTG9v
cCA6IE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JSZXR1cm4pLCBBYnNvbHV0
ZUFkZHJlc3MobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3VudGVyKCkpKTsKICAg
ICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBraW5kID09IExvb3BPcHRpbWl6YXRpb25DaGVj
ayA/IGN0aV9vcHRpbWl6ZV9mcm9tX2xvb3AgOiBjdGlfb3B0aW1pemVfZnJvbV9yZXQpOwogICAg
IGlmIChraW5kID09IExvb3BPcHRpbWl6YXRpb25DaGVjaykKLSAgICAgICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoSW1tMzIobV9ieXRlY29kZU9mZnNldCkpOworICAgICAgICBzdHViQ2FsbC5hZGRB
cmd1bWVudChUcnVzdGVkSW1tMzIobV9ieXRlY29kZU9mZnNldCkpOwogICAgIHN0dWJDYWxsLmNh
bGwoKTsKICAgICBza2lwT3B0aW1pemUubGluayh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcAppbmRleCBiM2I5YWQ3OTkxMzRm
YTY3YmI1M2UxOTFhYWJiYjFlNWFiOGJmMjhkLi4xMWE3NTgxMDNlZmM5NzkxZjllNGY3NDliM2Uz
MzBlMzBiODUzMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFy
aXRobWV0aWMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0
aG1ldGljMzJfNjQuY3BwCkBAIC00NzksNyArNDc5LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X3Bvc3RfaW5jKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2Fz
ZUUKIAogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9wb3N0X2luYyk7CiAg
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoc3JjRHN0KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChJbW0zMihzcmNEc3QpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIo
c3JjRHN0KSk7CiAgICAgc3R1YkNhbGwuY2FsbChkc3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCmluZGV4IDFhZWI5ZmQzMzIwZDcxZmRmNjQ3
YThmOGZhMDg1MWMyMmNjMDM5MjQuLjk5OGQ1YWMxODc5ODY4ZmZmYmFjMGZmMDhkYWQ3ZDNiNDc0
Njk3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0
aG9kcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5o
CkBAIC01NTksOSArNTU5LDkgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdT
aXRlKFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlKQogICAgIGlmIChtX3JhbmRvbUdlbmVyYXRv
ci5nZXRVaW50MzIoKSAmIDEpCiAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMigxKSwgYnVja2V0
Q291bnRlclJlZ2lzdGVyKTsKICAgICBlbHNlCi0gICAgICAgIGFkZDMyKEltbTMyKDMpLCBidWNr
ZXRDb3VudGVyUmVnaXN0ZXIpOwotICAgIGFuZDMyKEltbTMyKFZhbHVlUHJvZmlsZTo6YnVja2V0
SW5kZXhNYXNrKSwgYnVja2V0Q291bnRlclJlZ2lzdGVyKTsKLSAgICBtb3ZlKEltbVB0cih2YWx1
ZVByb2ZpbGUtPm1fYnVja2V0cyksIHNjcmF0Y2gpOworICAgICAgICBhZGQzMihUcnVzdGVkSW1t
MzIoMyksIGJ1Y2tldENvdW50ZXJSZWdpc3Rlcik7CisgICAgYW5kMzIoVHJ1c3RlZEltbTMyKFZh
bHVlUHJvZmlsZTo6YnVja2V0SW5kZXhNYXNrKSwgYnVja2V0Q291bnRlclJlZ2lzdGVyKTsKKyAg
ICBtb3ZlKFRydXN0ZWRJbW1QdHIodmFsdWVQcm9maWxlLT5tX2J1Y2tldHMpLCBzY3JhdGNoKTsK
ICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIHN0b3JlUHRyKHZhbHVlLCBCYXNlSW5kZXgoc2NyYXRj
aCwgYnVja2V0Q291bnRlclJlZ2lzdGVyLCBUaW1lc0VpZ2h0KSk7CiAjZWxpZiBVU0UoSlNWQUxV
RTMyXzY0KQpAQCAtODY4LDcgKzg2OCwxMCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKGludCBzcmMsIFJlZ2lzdGVySUQgZHN0KQogICAgIC8vIFRPRE86
IHdlIHdhbnQgdG8gcmV1c2UgdmFsdWVzIHRoYXQgYXJlIGFscmVhZHkgaW4gcmVnaXN0ZXJzIGlm
IHdlIGNhbiAtIGFkZCBhIHJlZ2lzdGVyIGFsbG9jYXRvciEKICAgICBpZiAobV9jb2RlQmxvY2st
PmlzQ29uc3RhbnRSZWdpc3RlckluZGV4KHNyYykpIHsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9
IG1fY29kZUJsb2NrLT5nZXRDb25zdGFudChzcmMpOwotICAgICAgICBtb3ZlKEltbVB0cihKU1Zh
bHVlOjplbmNvZGUodmFsdWUpKSwgZHN0KTsKKyAgICAgICAgaWYgKCF2YWx1ZS5pc051bWJlcigp
KQorICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkp
LCBkc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtb3ZlKEltbVB0cihKU1ZhbHVlOjpl
bmNvZGUodmFsdWUpKSwgZHN0KTsKICAgICAgICAga2lsbExhc3RSZXN1bHRSZWdpc3RlcigpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKaW5kZXggZDAzNjY0YWU3OTNkMWM5OTk3ZDc1YjYyZTAwYjYwMGIyMjg1NWMyMi4uMmRi
ODJiZjRhZDIwZDYwM2FmMDM0OWRlNGVmNTE0Y2YzZDAwMjZjNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0zNTgsNyArMzU4LDEwIEBAIHZvaWQgSklUOjpl
bWl0X29wX21vdihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBlbWl0
UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKG1fY29k
ZUJsb2NrLT5pc0NvbnN0YW50UmVnaXN0ZXJJbmRleChzcmMpKSB7Ci0gICAgICAgICAgICBzdG9y
ZVB0cihJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGdldENvbnN0YW50T3BlcmFuZChzcmMpKSksIEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIGRzdCAqIHNpemVvZihSZWdpc3RlcikpKTsKKyAgICAg
ICAgICAgIGlmICghZ2V0Q29uc3RhbnRPcGVyYW5kKHNyYykuaXNOdW1iZXIoKSkKKyAgICAgICAg
ICAgICAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShnZXRDb25zdGFu
dE9wZXJhbmQoc3JjKSkpLCBBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBkc3QgKiBzaXplb2Yo
UmVnaXN0ZXIpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3RvcmVQdHIo
SW1tUHRyKEpTVmFsdWU6OmVuY29kZShnZXRDb25zdGFudE9wZXJhbmQoc3JjKSkpLCBBZGRyZXNz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBkc3QgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CiAgICAgICAgICAg
ICBpZiAoZHN0ID09IG1fbGFzdFJlc3VsdEJ5dGVjb2RlUmVnaXN0ZXIpCiAgICAgICAgICAgICAg
ICAga2lsbExhc3RSZXN1bHRSZWdpc3RlcigpOwogICAgICAgICB9IGVsc2UgaWYgKChzcmMgPT0g
bV9sYXN0UmVzdWx0Qnl0ZWNvZGVSZWdpc3RlcikgfHwgKGRzdCA9PSBtX2xhc3RSZXN1bHRCeXRl
Y29kZVJlZ2lzdGVyKSkgewpAQCAtMzkwLDcgKzM5Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX2pt
cChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9u
ZXdfb2JqZWN0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgZW1pdEFs
bG9jYXRlSlNGaW5hbE9iamVjdChJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5l
bXB0eU9iamVjdFN0cnVjdHVyZSgpKSwgcmVnVDAsIHJlZ1QxKTsKKyAgICBlbWl0QWxsb2NhdGVK
U0ZpbmFsT2JqZWN0KFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5l
bXB0eU9iamVjdFN0cnVjdHVyZSgpKSwgcmVnVDAsIHJlZ1QxKTsKICAgICAKICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQpAQCAt
NTk1LDggKzU5OCw4IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX3ByaW1pdGl2ZShJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogdm9pZCBKSVQ6OmVtaXRfb3Bfc3RyY2F0KEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhp
cywgY3RpX29wX3N0cmNhdCk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KElt
bTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRB
cmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwor
ICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25b
M10udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKTsKIH0KIApAQCAtNjEwLDcgKzYxMyw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Jl
c29sdmVfYmFzZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogdm9pZCBKSVQ6OmVt
aXRfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9lbnN1cmVfcHJv
cGVydHlfZXhpc3RzKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3Rl
ZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwogICAgIHN0dWJDYWxsLmNhbGwoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CkBAIC02MTksNyArNjIyLDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcmVzb2x2ZV9za2lwKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Jlc29sdmVfc2tpcCk7CiAg
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cigmbV9jb2RlQmxvY2stPmlkZW50
aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKTsKLSAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQogCkBAIC02NTUsNyArNjU4LDcgQEAgdm9pZCBK
SVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG8KICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgSklUU3R1YkNh
bGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Jlc29sdmVfZ2xvYmFsKTsKICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKGlkZW50KSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQoSW1tMzIoY3VycmVudEluZGV4KSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3Rl
ZEltbTMyKGN1cnJlbnRJbmRleCkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KHJlZ1QwKTsK
ICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGRzdCk7CiB9CkBAIC03NjgsNyAr
NzcxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBj
dGlfb3BfcmVzb2x2ZV93aXRoX2Jhc2UpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0
ZWRJbW1QdHIoJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQpKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJ
bW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2Fs
bFdpdGhWYWx1ZVByb2ZpbGluZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKIH0K
IApAQCAtNzc2LDcgKzc3OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Jlc29sdmVfd2l0aF90aGlz
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNhbGwgc3R1
YkNhbGwodGhpcywgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKTsKICAgICBzdHViQ2FsbC5hZGRB
cmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kKSkpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1
bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwogICAg
IHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQcm9maWxpbmcoY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZCk7CiB9CiAKQEAgLTEwMzQsNyArMTAzNyw3IEBAIHZvaWQgSklUOjplbWl0X29wX2Nh
dGNoKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6ZW1pdF9vcF9q
bXBfc2NvcGVzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1
YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX2ptcF9zY29wZXMpOwotICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCkpOwogICAgIHN0dWJDYWxsLmNhbGwoKTsKICAgICBhZGRKdW1wKGp1bXAoKSwgY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCk7CiB9CkBAIC0xMDUyLDcgKzEwNTUsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9zd2l0Y2hfaW1tKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfc3dpdGNoX2ltbSk7
CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoc2NydXRpbmVlLCByZWdUMik7Ci0gICAgc3R1YkNh
bGwuYWRkQXJndW1lbnQoSW1tMzIodGFibGVJbmRleCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KFRydXN0ZWRJbW0zMih0YWJsZUluZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAg
IGp1bXAocmVnVDApOwogfQpAQCAtMTA3MCw3ICsxMDczLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
c3dpdGNoX2NoYXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJVFN0
dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9zd2l0Y2hfY2hhcik7CiAgICAgc3R1YkNhbGwu
YWRkQXJndW1lbnQoc2NydXRpbmVlLCByZWdUMik7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQo
SW1tMzIodGFibGVJbmRleCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0z
Mih0YWJsZUluZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIGp1bXAocmVnVDApOwog
fQpAQCAtMTA4Nyw3ICsxMDkwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3dpdGNoX3N0cmluZyhJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgSklUU3R1YkNhbGwgc3R1YkNh
bGwodGhpcywgY3RpX29wX3N3aXRjaF9zdHJpbmcpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50
KHNjcnV0aW5lZSwgcmVnVDIpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKHRhYmxl
SW5kZXgpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIodGFibGVJbmRl
eCkpOwogICAgIHN0dWJDYWxsLmNhbGwoKTsKICAgICBqdW1wKHJlZ1QwKTsKIH0KQEAgLTEwOTUs
NyArMTA5OCwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zd2l0Y2hfc3RyaW5nKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6ZW1pdF9vcF90aHJvd19yZWZlcmVuY2Vf
ZXJyb3IoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2Fs
bCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yKTsKLSAgICBzdHVi
Q2FsbC5hZGRBcmd1bWVudChJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKG1fY29kZUJsb2NrLT5nZXRD
b25zdGFudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSkpKTsKKyAgICBpZiAoIW1f
Y29kZUJsb2NrLT5nZXRDb25zdGFudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKS5p
c051bWJlcigpKQorICAgICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKEpT
VmFsdWU6OmVuY29kZShtX2NvZGVCbG9jay0+Z2V0Q29uc3RhbnQoY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZCkpKSk7CisgICAgZWxzZQorICAgICAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKG1fY29kZUJsb2NrLT5nZXRDb25zdGFudChjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSkpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7CiB9CiAK
QEAgLTExMDYsOSArMTExMiw5IEBAIHZvaWQgSklUOjplbWl0X29wX2RlYnVnKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYnJlYWtwb2ludCgpOwogI2Vsc2UKICAgICBKSVRT
dHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfZGVidWcpOwotICAgIHN0dWJDYWxsLmFkZEFy
Z3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKLSAgICBzdHVi
Q2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7
Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1
c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2Fs
bC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZCkpOwogICAgIHN0dWJDYWxsLmNhbGwoKTsKICNlbmRpZgogfQpAQCAtMTU1OSw3ICsxNTY1LDcg
QEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWMoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmUKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIFdl
IG1hbmFnZWQgdG8gc2tpcCBhbGwgdGhlIG5vZGVzIGluIHRoZSBzY29wZSBjaGFpbiwgYnV0IHRo
ZSBjYWNoZSBtaXNzZWQuCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Jl
c29sdmVfZ2xvYmFsKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKGlk
ZW50KSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluZGV4KSk7Cisg
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbmRleCkpOwogICAg
IHN0dWJDYWxsLmFkZEFyZ3VtZW50KHJlZ1QwKTsKICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVl
UHJvZmlsaW5nKGRzdCk7CiB9CkBAIC0xNjQyLDggKzE2NDgsOCBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9uZXdfYXJyYXkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgbGVu
Z3RoID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBpZiAoQ29waWVkU3Bh
Y2U6OmlzT3ZlcnNpemUoSlNBcnJheTo6c3RvcmFnZVNpemUobGVuZ3RoKSkpIHsKICAgICAgICAg
SklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX25ld19hcnJheSk7Ci0gICAgICAgIHN0
dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKLSAgICAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9u
WzNdLnUub3BlcmFuZCkpOworICAgICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1t
MzIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkp
OwogICAgICAgICBzdHViQ2FsbC5jYWxsKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTY2MiwxNiArMTY2OCwxNiBAQCB2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfbmV3X2FycmF5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24s
IFZlY3RvcjxTbG93Q2FzZQogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gTm90IGVub3VnaCBz
cGFjZSBpbiBNYXJrZWRTcGFjZSBmb3IgY2VsbC4KICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8v
IE5vdCBlbm91Z2ggc3BhY2UgaW4gQ29waWVkU3BhY2UgZm9yIHN0b3JhZ2UuCiAgICAgSklUU3R1
YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX25ld19hcnJheSk7Ci0gICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgIHN0
dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQp
KTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0z
MihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbChj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3Bf
bmV3X2FycmF5X2J1ZmZlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAg
IEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9uZXdfYXJyYXlfYnVmZmVyKTsKLSAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9u
WzNdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKICAgICBz
dHViQ2FsbC5jYWxsKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggMTI3YjQz
ZDIwNDJlZDdlMGViZThhYzc5YzhmZDgyZGE0NzA1N2RkYS4uYjY3Njk2ZjM1OTAzNzdmY2EwMDdh
NDM4MWM1MTRjMDVjMmRhMTBkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcApAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX2pt
cChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9u
ZXdfb2JqZWN0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgZW1pdEFs
bG9jYXRlSlNGaW5hbE9iamVjdChJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5l
bXB0eU9iamVjdFN0cnVjdHVyZSgpKSwgcmVnVDAsIHJlZ1QxKTsKKyAgICBlbWl0QWxsb2NhdGVK
U0ZpbmFsT2JqZWN0KFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5l
bXB0eU9iamVjdFN0cnVjdHVyZSgpKSwgcmVnVDAsIHJlZ1QxKTsKICAgICAKICAgICBlbWl0U3Rv
cmVDZWxsKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKIH0KQEAgLTcw
MSw4ICs3MDEsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fcHJpbWl0aXZlKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Qwogdm9pZCBKSVQ6OmVtaXRfb3Bf
c3RyY2F0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNh
bGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3N0cmNhdCk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbChjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KIApAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQg
SklUOjplbWl0X29wX3Jlc29sdmVfYmFzZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogdm9pZCBKSVQ6OmVtaXRfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cyhJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0
aV9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJ
bW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsK
ICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRl
bnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwogICAgIHN0dWJDYWxs
LmNhbGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CkBAIC03MjUsNyArNzI1
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9za2lwKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Jl
c29sdmVfc2tpcCk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cigmbV9j
b2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKTsK
LSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJv
ZmlsaW5nKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQogCkBAIC03NjYsNyAr
NzY2LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFsKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG8KICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7
CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Jlc29sdmVfZ2xvYmFsKTsK
ICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKGlkZW50KSk7Ci0gICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluZGV4KSk7CisgICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbmRleCkpOwogICAgIHN0dWJDYWxsLmNhbGxX
aXRoVmFsdWVQcm9maWxpbmcoZHN0KTsKIH0KIApAQCAtMTE2NCw3ICsxMTY0LDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX2Jhc2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV93
aXRoX2Jhc2UpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoJm1fY29k
ZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7Ci0g
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbFdpdGhWYWx1ZVByb2Zp
bGluZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKIH0KIApAQCAtMTE3Miw3ICsx
MTcyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3RoaXMoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBj
dGlfb3BfcmVzb2x2ZV93aXRoX3RoaXMpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0
ZWRJbW1QdHIoJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQpKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJ
bW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2Fs
bFdpdGhWYWx1ZVByb2ZpbGluZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKIH0K
IApAQCAtMTM2NCw3ICsxMzY0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHZvaWQgSklUOjplbWl0X29wX2ptcF9zY29wZXMoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2Fs
bCh0aGlzLCBjdGlfb3Bfam1wX3Njb3Blcyk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1t
MzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFy
Z3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CiAg
ICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIGFkZEp1bXAoanVtcCgpLCBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKTsKIH0KQEAgLTEzODIsNyArMTM4Miw3IEBAIHZvaWQgSklUOjplbWl0
X29wX3N3aXRjaF9pbW0oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9zd2l0Y2hfaW1tKTsKICAgICBzdHViQ2Fs
bC5hZGRBcmd1bWVudChzY3J1dGluZWUpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMy
KHRhYmxlSW5kZXgpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIodGFi
bGVJbmRleCkpOwogICAgIHN0dWJDYWxsLmNhbGwoKTsKICAgICBqdW1wKHJlZ1QwKTsKIH0KQEAg
LTE0MDAsNyArMTQwMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3N3aXRjaF9jaGFyKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlz
LCBjdGlfb3Bfc3dpdGNoX2NoYXIpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KHNjcnV0aW5l
ZSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIodGFibGVJbmRleCkpOworICAgIHN0
dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMih0YWJsZUluZGV4KSk7CiAgICAgc3R1YkNh
bGwuY2FsbCgpOwogICAgIGp1bXAocmVnVDApOwogfQpAQCAtMTQxNyw3ICsxNDE3LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3Bfc3dpdGNoX3N0cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3N3aXRjaF9zdHJp
bmcpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KHNjcnV0aW5lZSk7Ci0gICAgc3R1YkNhbGwu
YWRkQXJndW1lbnQoSW1tMzIodGFibGVJbmRleCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50
KFRydXN0ZWRJbW0zMih0YWJsZUluZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIGp1
bXAocmVnVDApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggMWVlMjkxNWRjN2I2MTIyNTRjNzAxNzQ4NmJmOGFh
MzE1ZDA5ZjIwNS4uMTlhYmRiZDg5ZDU0YWU2MmMxNTg4MjQ5Y2Y1NmNlNGE3YTFjNGFkMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pbmRleChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIEpJVFN0dWJDYWxsIHN0
dWJDYWxsKHRoaXMsIGN0aV9vcF9wdXRfYnlfaW5kZXgpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KGJhc2UpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKHByb3BlcnR5KSk7Cisg
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKHByb3BlcnR5KSk7CiAgICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQodmFsdWUpOwogICAgIHN0dWJDYWxsLmNhbGwoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YkNhbGwuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YkNhbGwuaAppbmRleCA4N2VmZWNiYjg5ZWZkMWI3Y2Nl
YjJiYjljZjQyNmVlMTQ0NDZmZGFjLi5hNTI1ZmYyMjc1MGUwOThiOTUyZWM1ODU3NTEzMjUxMWJk
NWRhY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJDYWxs
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oCkBAIC0xMTYs
NiArMTE2LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgbV9qaXQtPnBva2UoYXJn
dW1lbnQsIG1fc3RhY2tJbmRleCk7CiAgICAgICAgICAgICBtX3N0YWNrSW5kZXggKz0gc3RhY2tJ
bmRleFN0ZXA7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgYWRkQXJndW1lbnQo
SklUOjpJbW1QdHIgYXJndW1lbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faml0LT5wb2tl
KGFyZ3VtZW50LCBtX3N0YWNrSW5kZXgpOworICAgICAgICAgICAgbV9zdGFja0luZGV4ICs9IHN0
YWNrSW5kZXhTdGVwOworICAgICAgICB9CiAKICAgICAgICAgdm9pZCBhZGRBcmd1bWVudChKSVQ6
OlJlZ2lzdGVySUQgYXJndW1lbnQpCiAgICAgICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130727</attachid>
            <date>2012-03-07 16:54:01 -0800</date>
            <delta_ts>2012-03-07 16:58:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80457-20120307165400.patch</filename>
            <type>text/plain</type>
            <size>53102</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MzE0ZTIzNWU4YjA3NWRkZDA5MDA4OWIyM2M4ZGQ1N2ViZDNmY2NjLi5iYmQ0M2ZiNjdkYmUyMzY4
MGY3OTdjY2Q4ZTZjNDY2YjNkNjRkZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTEgQEAKKzIwMTItMDMtMDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBGdXJ0aGVyIGhhcmRlbiA2NC1iaXQgSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQ1NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBibGluZGlu
ZyBmb3IgSW1tUHRyLiAgUmF0aGVyIHRoYW4geG9yIGJhc2VkIGJsaW5kaW5nCisgICAgICAgIHdl
IHBlcmZvcm0gcmFuZG9taXNlZCBwb2ludGVyIHJvdGF0aW9ucyBpbiBvcmRlciB0byBhdm9pZCB0
aGUgc2lnbmlmaWNhbnQKKyAgICAgICAgY29zdCBpbiBleGVjdXRhYmxlIG1lbW9yeSB0aGF0IHdv
dWxkIG90aGVyd2lzZSBiZSBuZWNlc3NhcnkgKGFuZCB0byBhdm9pZAorICAgICAgICB0aGUgbmVl
ZCBmb3IgYW4gYWRkaXRpb25hbCBzY3JhdGNoIHJlZ2lzdGVyIGluIHNvbWUgY2FzZXMpLgorCisg
ICAgICAgIEFzIHdpdGggdGhlIHByaW9yIGJsaW5kaW5nIHBhdGNoIHRoZXJlJ3MgYSBtb2RlcmF0
ZSBhbW91bnQgb2Ygbm9pc2UgYXMgd2UKKyAgICAgICAgY29ycmVjdCB0aGUgdXNlIG9mIEltbVB0
ciB2cy4gVHJ1c3RlZEltbVB0ci4KKworICAgICAgICAqIGFzc2VtYmxlci9BYnN0cmFjdE1hY3Jv
QXNzZW1ibGVyLmg6CisgICAgICAgIChJbW1QdHIpOgorICAgICAgICAoSlNDOjpBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyOjpJbW1QdHI6OmFzVHJ1c3RlZEltbVB0cik6CisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChNYWNyb0Fzc2VtYmxlcik6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9yZVB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyOjpicmFuY2hQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c2hvdWxk
QmxpbmQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6Um90YXRlZEltbVB0cjo6Um90
YXRlZEltbVB0cik6CisgICAgICAgIChSb3RhdGVkSW1tUHRyKToKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OnJvdGF0aW9uQmxpbmRDb25zdGFudCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyOjpsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6Y29udmVydEludDMyVG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlcjo6bW92ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwb2tlKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OmJyYW5jaEFkZDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZfNjQuaDoKKyAgICAgICAgKE1hY3JvQXNzZW1ibGVyWDg2XzY0KToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnJvdGF0ZVJpZ2h0UHRyKToKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnhvclB0cik6CisgICAgICAgICogYXNzZW1ibGVy
L1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoWDg2QXNzZW1ibGVyKToKKyAgICAgICAgKEpTQzo6
WDg2QXNzZW1ibGVyOjp4b3JxX3JtKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpyb3Jx
X2k4cik6CisgICAgICAgICogZGZnL0RGR0NDYWxsSGVscGVycy5oOgorICAgICAgICAoQ0NhbGxI
ZWxwZXJzKToKKyAgICAgICAgKEpTQzo6REZHOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAg
ICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNyZWF0ZU9T
UkVudHJpZXMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzaWxlbnRGaWxsR1BSKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmVtaXRFZGdlQ29kZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxJbnRlZ2VyKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbERvdWJsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
T2JqZWN0RXF1YWxpdHkpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlTG9naWNhbE5vdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRC
cmFuY2gpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRP
cHRpbWl6YXRpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcG9zdF9pbmMpOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldFZpcnR1YWxSZWdpc3Rlcik6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
bW92KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25ld19vYmplY3QpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3Bfc3RyY2F0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2Vu
c3VyZV9wcm9wZXJ0eV9leGlzdHMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2
ZV9za2lwKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9yZXNvbHZlX2dsb2JhbCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9qbXBfc2NvcGVzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRj
aF9pbW0pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3dpdGNoX2NoYXIpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3dpdGNoX3N0cmluZyk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF90aHJvd19yZWZlcmVuY2VfZXJyb3IpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfZGVidWcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfZ2xvYmFs
X2R5bmFtaWMpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmV3X2FycmF5KToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9uZXdfYXJyYXkpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfbmV3X2FycmF5X2J1ZmZlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9uZXdfb2JqZWN0KToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX3N0cmNhdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9l
bnN1cmVfcHJvcGVydHlfZXhpc3RzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Jlc29s
dmVfc2tpcCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX2Jhc2UpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3RoaXMpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3Bfam1wX3Njb3Blcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9zd2l0
Y2hfaW1tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRjaF9jaGFyKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3N3aXRjaF9zdHJpbmcpOgorICAgICAgICAqIGppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9i
eV9pbmRleCk6CisgICAgICAgICogaml0L0pJVFN0dWJDYWxsLmg6CisgICAgICAgIChKSVRTdHVi
Q2FsbCk6CisgICAgICAgIChKU0M6OkpJVFN0dWJDYWxsOjphZGRBcmd1bWVudCk6CisKIDIwMTIt
MDMtMDcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAg
ICAgIEFSTSBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCmluZGV4IDNiOWZhNTlkMGE4Yjc4MDYz
OTdmY2IyN2MwNGRlMWI1NDhjNzI2YmYuLjgxNjNiYWU2MzRiYTI4MmM5ODE2YjJlYWZjODAzZTI5
ZjAyNTVjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJz
dHJhY3RNYWNyb0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCkBAIC0xOTYsMTEgKzE5NiwxOSBAQCBwdWJsaWM6
CiAgICAgICAgIGNvbnN0IHZvaWQqIG1fdmFsdWU7CiAgICAgfTsKIAotICAgIHN0cnVjdCBJbW1Q
dHIgOiBwdWJsaWMgVHJ1c3RlZEltbVB0ciB7CisgICAgc3RydWN0IEltbVB0ciA6IAorI2lmIEVO
QUJMRShKSVRfQ09OU1RBTlRfQkxJTkRJTkcpCisgICAgICAgIHByaXZhdGUgVHJ1c3RlZEltbVB0
ciAKKyNlbHNlCisgICAgICAgIHB1YmxpYyBUcnVzdGVkSW1tUHRyCisjZW5kaWYKKyAgICB7CiAg
ICAgICAgIGV4cGxpY2l0IEltbVB0cihjb25zdCB2b2lkKiB2YWx1ZSkKICAgICAgICAgICAgIDog
VHJ1c3RlZEltbVB0cih2YWx1ZSkKICAgICAgICAgewogICAgICAgICB9CisKKyAgICAgICAgVHJ1
c3RlZEltbVB0ciBhc1RydXN0ZWRJbW1QdHIoKSB7IHJldHVybiAqdGhpczsgfQogICAgIH07CiAK
ICAgICAvLyBUcnVzdGVkSW1tMzI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmgKaW5kZXggNzgwODcyM2JmODBhYjA3YTdmNTdlMjQ1ZDk5Zjcw
ZGUyZTJlNDAyZi4uZGI0NTZiYjQxYmY4OWJhN2EzODIzZDAyMDI0OWE5OWI5MDRmZDIyYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaApA
QCAtMzc0LDYgKzM3NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBsb2FkMzJXaXRoQ29t
cGFjdEFkZHJlc3NPZmZzZXRQYXRjaChhZGRyZXNzLCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lk
IG1vdmUoSW1tUHRyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShJ
bW0zMihpbW0uYXNUcnVzdGVkSW1tUHRyKCkpLCBkZXN0KTsKKyAgICB9CisKICAgICB2b2lkIGNv
bXBhcmVQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIFRydXN0
ZWRJbW0zMiByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgY29tcGFyZTMy
KGNvbmQsIGxlZnQsIHJpZ2h0LCBkZXN0KTsKQEAgLTM5OCw2ICs0MDMsMTEgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAg
fQorICAgIAorICAgIHZvaWQgc3RvcmVQdHIoSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQor
ICAgIHsKKyAgICAgICAgc3RvcmUzMihJbW0zMihpbW0uYXNUcnVzdGVkSW1tUHRyKCkpLCBhZGRy
ZXNzKTsKKyAgICB9CiAKICAgICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIgaW1tLCB2b2lk
KiBhZGRyZXNzKQogICAgIHsKQEAgLTQwOSw3ICs0MTksNiBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBzdG9yZTMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaChzcmMsIGFkZHJlc3MpOwogICAgIH0K
IAotCiAgICAgSnVtcCBicmFuY2hQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3Rl
cklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQpCiAgICAgewogICAgICAgICByZXR1cm4gYnJhbmNo
MzIoY29uZCwgbGVmdCwgcmlnaHQpOwpAQCAtNDE5LDYgKzQyOCwxMSBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgVHJ1c3RlZEltbTMyKHJpZ2h0
KSk7CiAgICAgfQorICAgIAorICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24g
Y29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW1QdHIgcmlnaHQpCisgICAgeworICAgICAgICByZXR1
cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgSW1tMzIocmlnaHQuYXNUcnVzdGVkSW1tUHRyKCkpKTsK
KyAgICB9CiAKICAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJl
Z2lzdGVySUQgbGVmdCwgQWRkcmVzcyByaWdodCkKICAgICB7CkBAIC00MzksNyArNDUzLDcgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIGxlZnQsIFRydXN0
ZWRJbW0zMihyaWdodCkpOwogICAgIH0KLQorICAgIAogICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0
aW9uYWxDb25kaXRpb24gY29uZCwgQWJzb2x1dGVBZGRyZXNzIGxlZnQsIFRydXN0ZWRJbW1QdHIg
cmlnaHQpCiAgICAgewogICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgVHJ1c3Rl
ZEltbTMyKHJpZ2h0KSk7CkBAIC00NjUsNyArNDc5LDYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYnJhbmNoVGVzdDMyKGNvbmQsIGFkZHJlc3MsIG1hc2spOwogICAgIH0KIAotCiAgICAgSnVt
cCBicmFuY2hBZGRQdHIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgc3JjLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICByZXR1cm4gYnJhbmNoQWRkMzIoY29uZCwgc3Jj
LCBkZXN0KTsKQEAgLTQ4NywxOCArNTAwLDEwMiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTWFjcm9B
c3NlbWJsZXJCYXNlOjphbmRQdHI7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpicmFu
Y2hTdWJQdHI7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpjb252ZXJ0SW50MzJUb0Rv
dWJsZTsKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnN0b3JlUHRyOwogICAgIHVzaW5n
IE1hY3JvQXNzZW1ibGVyQmFzZTo6c3ViUHRyOworICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFz
ZTo6eG9yUHRyOworICAgIAorICAgIGJvb2wgc2hvdWxkQmxpbmQoSW1tUHRyIGltbSkKKyAgICB7
IAorICAgICAgICBBU1NFUlQoIWluVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCkpOworI2lmICFkZWZp
bmVkKE5ERUJVRykKKyAgICAgICAgVU5VU0VEX1BBUkFNKGltbSk7CisgICAgICAgIC8vIERlYnVn
IGFsd2F5cyBibGluZCBhbGwgY29uc3RhbnRzLCBpZiBvbmx5IHNvIHdlIGtub3cKKyAgICAgICAg
Ly8gaWYgd2UndmUgYnJva2VuIGJsaW5kaW5nIGR1cmluZyBwYXRjaCBkZXZlbG9wbWVudC4KKyAg
ICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgICAgICAKKyAgICAgICAgLy8gRmlyc3Qgb2Zm
IHdlJ2xsIHNwZWNpYWwgY2FzZSBjb21tb24sICJzYWZlIiB2YWx1ZXMgdG8gYXZvaWQgaHVydGlu
ZworICAgICAgICAvLyBwZXJmb3JtYW5jZSB0b28gbXVjaAorICAgICAgICB1aW50cHRyX3QgdmFs
dWUgPSBpbW0uYXNUcnVzdGVkSW1tUHRyKCkuYXNJbnRwdHIoKTsKKyAgICAgICAgc3dpdGNoICh2
YWx1ZSkgeworICAgICAgICBjYXNlIDB4ZmZmZjoKKyAgICAgICAgY2FzZSAweGZmZmZmZjoKKyAg
ICAgICAgY2FzZSAweGZmZmZmZmZmTDoKKyAgICAgICAgY2FzZSAweGZmZmZmZmZmZmZMOgorICAg
ICAgICBjYXNlIDB4ZmZmZmZmZmZmZmZmTDoKKyAgICAgICAgY2FzZSAweGZmZmZmZmZmZmZmZmZm
TDoKKyAgICAgICAgY2FzZSAweGZmZmZmZmZmZmZmZmZmZmZMOgorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKHZhbHVlIDw9IDB4ZmYp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBzaG91bGRCbGluZEZvclNwZWNpZmljQXJjaCh2YWx1ZSk7CisjZW5kaWYKKyAgICB9CiAgICAg
CisgICAgc3RydWN0IFJvdGF0ZWRJbW1QdHIgeworICAgICAgICBSb3RhdGVkSW1tUHRyKHVpbnRw
dHJfdCB2MSwgdWludDhfdCB2MikKKyAgICAgICAgICAgIDogdmFsdWUodjEpCisgICAgICAgICAg
ICAsIHJvdGF0aW9uKHYyKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgVHJ1c3RlZElt
bVB0ciB2YWx1ZTsKKyAgICAgICAgVHJ1c3RlZEltbTMyIHJvdGF0aW9uOworICAgIH07CisgICAg
CisgICAgUm90YXRlZEltbVB0ciByb3RhdGlvbkJsaW5kQ29uc3RhbnQoSW1tUHRyIGltbSkKKyAg
ICB7CisgICAgICAgIHVpbnQ4X3Qgcm90YXRpb24gPSByYW5kb20oKSAlIChzaXplb2Yodm9pZCop
ICogOCk7CisgICAgICAgIHVpbnRwdHJfdCB2YWx1ZSA9IGltbS5hc1RydXN0ZWRJbW1QdHIoKS5h
c0ludHB0cigpOworICAgICAgICB2YWx1ZSA9ICh2YWx1ZSA8PCByb3RhdGlvbikgfCAodmFsdWUg
Pj4gKHNpemVvZih2b2lkKikgKiA4IC0gcm90YXRpb24pKTsKKyAgICAgICAgcmV0dXJuIFJvdGF0
ZWRJbW1QdHIodmFsdWUsIHJvdGF0aW9uKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBsb2FkUm90
YXRpb25CbGluZGVkQ29uc3RhbnQoUm90YXRlZEltbVB0ciBjb25zdGFudCwgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShjb25zdGFudC52YWx1ZSwgZGVzdCk7CisgICAgICAg
IHJvdGF0ZVJpZ2h0UHRyKGNvbnN0YW50LnJvdGF0aW9uLCBkZXN0KTsKKyAgICB9CisKICAgICB2
b2lkIGNvbnZlcnRJbnQzMlRvRG91YmxlKEltbTMyIGltbSwgRlBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSkgewotICAgICAgICAgICAgUmVnaXN0
ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSAoUmVnaXN0ZXJJRClzY3JhdGNoUmVnaXN0ZXJGb3JCbGlu
ZGluZygpOwotICAgICAgICAgICAgQVNTRVJUKHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgICAg
ICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5n
KCk7CiAgICAgICAgICAgICBsb2FkWG9yQmxpbmRlZENvbnN0YW50KHhvckJsaW5kQ29uc3RhbnQo
aW1tKSwgc2NyYXRjaFJlZ2lzdGVyKTsKICAgICAgICAgICAgIGNvbnZlcnRJbnQzMlRvRG91Ymxl
KHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgY29u
dmVydEludDMyVG9Eb3VibGUoaW1tLmFzVHJ1c3RlZEltbTMyKCksIGRlc3QpOwogICAgIH0KKwor
ICAgIHZvaWQgbW92ZShJbW1QdHIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBpZiAoc2hvdWxkQmxpbmQoaW1tKSkKKyAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRD
b25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQoaW1tKSwgZGVzdCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG1vdmUoaW1tLmFzVHJ1c3RlZEltbVB0cigpLCBkZXN0KTsKKyAgICB9CisK
KyAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQg
bGVmdCwgSW1tUHRyIHJpZ2h0KQorICAgIHsKKyAgICAgICAgaWYgKHNob3VsZEJsaW5kKHJpZ2h0
KSkgeworICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVn
aXN0ZXJGb3JCbGluZGluZygpOworICAgICAgICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0
YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChyaWdodCksIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAg
ICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNvbmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3Rlcik7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJyYW5jaFB0cihjb25kLCBsZWZ0LCByaWdodC5hc1Ry
dXN0ZWRJbW1QdHIoKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3RvcmVQdHIoSW1tUHRyIGlt
bSwgQWRkcmVzcyBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkpIHsK
KyAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2NyYXRjaFJlZ2lzdGVy
Rm9yQmxpbmRpbmcoKTsKKyAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRDb25zdGFudChy
b3RhdGlvbkJsaW5kQ29uc3RhbnQoaW1tKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IHN0b3JlUHRyKHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgc3RvcmVQdHIoaW1tLmFzVHJ1c3RlZEltbVB0cigpLCBkZXN0KTsKKyAgICB9CisKICNl
bmRpZgogCiAjZW5kaWYgLy8gIUNQVShYODZfNjQpCkBAIC02ODUsNiArNzgyLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgc3RvcmUzMih2YWx1ZSwgYWRkcmVzc0ZvclBva2UoaW5kZXgpKTsKICAgICB9
CiAgICAgCisgICAgdm9pZCBwb2tlKEltbVB0ciB2YWx1ZSwgaW50IGluZGV4ID0gMCkKKyAgICB7
CisgICAgICAgIHN0b3JlUHRyKHZhbHVlLCBhZGRyZXNzRm9yUG9rZShpbmRleCkpOworICAgIH0K
KyAgICAKICAgICB2b2lkIHN0b3JlMzIoSW1tMzIgaW1tLCBBZGRyZXNzIGRlc3QpCiAgICAgewog
ICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA3MmEwM2EzMWU3
NDY4MGZiODE1M2RmMjE0N2I5NTM5ZjYxMWIxNTA1Li44YzMxMTEwN2NiYjRmZjZjMzFhOGExNWNi
NjZlNTcxMzk1NTRlZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtODA1LDcgKzgwNSw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc3RvcmVEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCogYWRk
cmVzcykKICAgICB7Ci0gICAgICAgIG1vdmUoSW1tUHRyKGFkZHJlc3MpLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyZXNzVGVt
cFJlZ2lzdGVyKTsKICAgICAgICAgc3RvcmVEb3VibGUoc3JjLCBhZGRyZXNzVGVtcFJlZ2lzdGVy
KTsKICAgICB9CiAKQEAgLTEzNzcsNyArMTM3Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IC8vIE1vdmUgdGhlIGhpZ2ggYml0cyBvZiB0aGUgYWRkcmVzcyBpbnRvIGFkZHJlc3NUZW1wUmVn
aXN0ZXIsCiAgICAgICAgIC8vIGFuZCBsb2FkIHRoZSB2YWx1ZSBpbnRvIGRhdGFUZW1wUmVnaXN0
ZXIuCi0gICAgICAgIG1vdmUoSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIubGRyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJl
c3NUZW1wUmVnaXN0ZXIsIEFSTVRodW1iSW1tZWRpYXRlOjptYWtlVUludDE2KDApKTsKIAogICAg
ICAgICAvLyBEbyB0aGUgYWRkLgpAQCAtMTM5MCw3ICsxMzkwLDcgQEAgcHVibGljOgogICAgICAg
ICAgICAgLy8gd2UnbGwgbmVlZCB0byByZWxvYWQgaXQgd2l0aCB0aGUgaGlnaCBiaXRzIG9mIHRo
ZSBhZGRyZXNzIGFmdGVyd2FyZHMuCiAgICAgICAgICAgICBtb3ZlKGltbSwgYWRkcmVzc1RlbXBS
ZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRfUyhkYXRhVGVtcFJlZ2lzdGVy
LCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1v
dmUoSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBTdG9yZSB0aGUgcmVzdWx0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4
IDEzNWU5YzRiOTBjMzRiOWY0MGVkMDcyYWRjN2M2NzU4OTA1YmJmZTEuLmEyYjQzMTFlNWVhMTA2
OGI2MDI2YmU3NThhZTYyNDZhOTY1NzhlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTIxNiw2ICsyMTYs
MTEgQEAgcHVibGljOgogICAgICAgICBtb3ZlKHNyYywgZGVzdCk7CiAgICAgICAgIG9yUHRyKGlt
bSwgZGVzdCk7CiAgICAgfQorICAgIAorICAgIHZvaWQgcm90YXRlUmlnaHRQdHIoVHJ1c3RlZElt
bTMyIGltbSwgUmVnaXN0ZXJJRCBzcmNEc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5y
b3JxX2k4cihpbW0ubV92YWx1ZSwgc3JjRHN0KTsKKyAgICB9CiAKICAgICB2b2lkIHN1YlB0cihS
ZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTIzNywxMyArMjQyLDE3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnhvcnFfcnIoc3JjLCBkZXN0
KTsKICAgICB9CisgICAgCisgICAgdm9pZCB4b3JQdHIoUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3Mg
ZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnhvcnFfcm0oc3JjLCBkZXN0Lm9mZnNl
dCwgZGVzdC5iYXNlKTsKKyAgICB9CiAKICAgICB2b2lkIHhvclB0cihUcnVzdGVkSW1tMzIgaW1t
LCBSZWdpc3RlcklEIHNyY0Rlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci54b3JxX2ly
KGltbS5tX3ZhbHVlLCBzcmNEZXN0KTsKICAgICB9CiAKLQogICAgIHZvaWQgbG9hZFB0cihJbXBs
aWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9h
c3NlbWJsZXIubW92cV9tcihhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBkZXN0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCmluZGV4IDdh
ZTdmYWM0MzM4ZTRhNzhkODgwYjEwOTA5MmNiMGQxNDRhZGY3YTYuLmIyNGZmZmI4ZjQ1MGM5Mzhh
OGY4NzA5ZjI1ZTk3ZWIwOWJlZGNiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaApAQCAtMjE2LDcgKzIxNiwxMiBAQCBwcml2YXRlOgogICAg
ICAgICBHUk9VUDFfT1BfQ01QID0gNywKIAogICAgICAgICBHUk9VUDFBX09QX1BPUCA9IDAsCi0K
KyAgICAgICAgCisgICAgICAgIEdST1VQMl9PUF9ST0wgPSAwLAorICAgICAgICBHUk9VUDJfT1Bf
Uk9SID0gMSwKKyAgICAgICAgR1JPVVAyX09QX1JDTCA9IDIsCisgICAgICAgIEdST1VQMl9PUF9S
Q1IgPSAzLAorICAgICAgICAKICAgICAgICAgR1JPVVAyX09QX1NITCA9IDQsCiAgICAgICAgIEdS
T1VQMl9PUF9TSFIgPSA1LAogICAgICAgICBHUk9VUDJfT1BfU0FSID0gNywKQEAgLTYzNiw2ICs2
NDEsMjIgQEAgcHVibGljOgogICAgICAgICAgICAgbV9mb3JtYXR0ZXIuaW1tZWRpYXRlMzIoaW1t
KTsKICAgICAgICAgfQogICAgIH0KKyAgICAKKyAgICB2b2lkIHhvcnFfcm0oUmVnaXN0ZXJJRCBz
cmMsIGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0
dGVyLm9uZUJ5dGVPcDY0KE9QX1hPUl9Fdkd2LCBzcmMsIGJhc2UsIG9mZnNldCk7CisgICAgfQor
ICAgIAorICAgIHZvaWQgcm9ycV9pOHIoaW50IGltbSwgUmVnaXN0ZXJJRCBkc3QpCisgICAgewor
ICAgICAgICBpZiAoaW1tID09IDEpCisgICAgICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3A2
NChPUF9HUk9VUDJfRXYxLCBHUk9VUDJfT1BfUk9SLCBkc3QpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcDY0KE9QX0dST1VQMl9FdkliLCBHUk9VUDJf
T1BfUk9SLCBkc3QpOworICAgICAgICAgICAgbV9mb3JtYXR0ZXIuaW1tZWRpYXRlOChpbW0pOwor
ICAgICAgICB9CisgICAgfQorCiAjZW5kaWYKIAogICAgIHZvaWQgc2FybF9pOHIoaW50IGltbSwg
UmVnaXN0ZXJJRCBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBl
cnMuaAppbmRleCAzNDgxZjk5ZTgyYWRiZWFmYzBjNjQ2NGIzZjQ0OGQ3ZGE4ZWI0OWNlLi4xNjc5
M2JiNDZmMmZkZWVmNmJlMmI2NTRkMTYwMzFiYjc3YTNiODc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ0NhbGxIZWxwZXJzLmgKQEAgLTQyMCw2ICs0MjAsMTMgQEAgcHVibGlj
OgogICAgICAgICBtb3ZlKGFyZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgICAgIG1v
dmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgfQorICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoR1BSUmVnIGFyZzEsIEltbVB0ciBhcmcyKQorICAgIHsKKyAgICAgICAgbW92ZShhcmcx
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFyZzIsIEdQUkluZm86OmFy
Z3VtZW50R1BSMik7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcy
KQogICAgIHsKQEAgLTQyNyw2ICs0MzQsMTMgQEAgcHVibGljOgogICAgICAgICBtb3ZlKGFyZzEs
IEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQorICAgIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoSW1tUHRyIGFyZzEsIEdQ
UlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjIpOyAvLyBNb3ZlIHRoaXMgZmlyc3QsIHNvIHNldHRpbmcgYXJnMSBkb2VzIG5vdCB0cmFtcGxl
IQorICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIG1v
dmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Cisg
ICAgfQogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShUcnVzdGVkSW1tMzIgYXJnMSwgVHJ1c3RlZEltbTMyIGFyZzIpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcApp
bmRleCA5MjY3ZWIwN2YzMTk3NGZhOGMwYTcyMmQ4MjQ5ZWQxY2I4NGQxNDRjLi5iZDQ1MDIwZDFi
MTdkODg1ZmVlNmIzODJlMGI1YzA0ZTYzMWU1YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcApAQCAtNTc1LDcgKzU3
NSw3IEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBl
eGl0LCBTcGVjdWxhdGlvblJlY292ZXJ5KiByZWNvCiAgICAgCiAgICAgbV9qaXQubW92ZShBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9qaXQuYmFzZWxpbmVDb2RlQmxvY2soKSksIEdQ
UkluZm86OnJlZ1QwKTsKICAgICAKLSAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgZmV3RmFpbHMg
PSBtX2ppdC5icmFuY2gzMihBc3NlbWJseUhlbHBlcnM6OkJlbG93T3JFcXVhbCwgR1BSSW5mbzo6
cmVnVDIsIEFzc2VtYmx5SGVscGVyczo6SW1tMzIobV9qaXQuY29kZUJsb2NrKCktPmxhcmdlRmFp
bENvdW50VGhyZXNob2xkKCkpKTsKKyAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgZmV3RmFpbHMg
PSBtX2ppdC5icmFuY2gzMihBc3NlbWJseUhlbHBlcnM6OkJlbG93T3JFcXVhbCwgR1BSSW5mbzo6
cmVnVDIsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKG1faml0LmNvZGVCbG9jaygpLT5s
YXJnZUZhaWxDb3VudFRocmVzaG9sZCgpKSk7CiAgICAgbV9qaXQubXVsMzIoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZGVzaXJlZFNwZWN1bGF0aXZlU3VjY2Vzc0ZhaWxS
YXRpbyksIEdQUkluZm86OnJlZ1QyLCBHUFJJbmZvOjpyZWdUMik7CiAgICAgCiAgICAgQXNzZW1i
bHlIZWxwZXJzOjpKdW1wIGxvd0ZhaWxSYXRlID0gbV9qaXQuYnJhbmNoMzIoQXNzZW1ibHlIZWxw
ZXJzOjpCZWxvd09yRXF1YWwsIEdQUkluZm86OnJlZ1QyLCBHUFJJbmZvOjpyZWdUMSk7CkBAIC02
MzIsMTMgKzYzMiwxMyBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3Qg
T1NSRXhpdCYgZXhpdCwgU3BlY3VsYXRpb25SZWNvdmVyeSogcmVjbwogICAgICAgICAgICAgY2Fs
bGVyRnJhbWVHUFIgPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcjsKICAgICAgICAgCiAgICAg
ICAgIG1faml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihiYXNlbGlu
ZUNvZGVCbG9jayksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVy
KShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDb2RlQmxvY2sp
KSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpJbW0zMihKU1ZhbHVl
OjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5s
aW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbikpKTsK
KyAgICAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1YWxSZWdpc3Rlciko
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbikp
KTsKICAgICAgICAgbV9qaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlLT5zY29wZSgpKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXls
b2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBS
ZWdpc3RlckZpbGU6OlNjb3BlQ2hhaW4pKSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1i
bHlIZWxwZXJzOjpJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lz
dGVyRmlsZTo6Q2FsbGVyRnJhbWUpKSk7CisgICAgICAgIG1faml0LnN0b3JlMzIoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6
dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lKSkpOwogICAgICAgICBtX2ppdC5zdG9yZVB0cihjYWxs
ZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIp
KGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlckZyYW1l
KSkpOwogICAgICAgICBtX2ppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoanVtcFRhcmdldCksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lz
dGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpSZXR1cm5Q
QykpKTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OkltbTMyKGlubGlu
ZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZv
cigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0
ZXJGaWxlOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKEFzc2VtYmx5
SGVscGVyczo6SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9y
KChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3Rl
ckZpbGU6OkNhbGxlZSkpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpLCBBc3NlbWJs
eUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCkpKTsKKyAgICAgICAgbV9q
aXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZy
YW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSkpOwogICAgICAgICBtX2pp
dC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1l
LT5jYWxsZWUuZ2V0KCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdp
c3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVl
KSkpOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdENvbXBpbGVyNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXI2NC5jcHAKaW5kZXggMDc0ZjlhYTAyZjJkN2VhYzZmYTZlZmFlZGQyNTc4
M2U1NWZjMzU3Ny4uOTFhNTE1YzQ4OWY5OWFlMjUzN2M0MDgwNTZhMmRkNDY3NzIxYzYyNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5j
cHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQo
Y29uc3QgT1NSRXhpdCYgZXhpdCwgU3BlY3VsYXRpb25SZWNvdmVyeSogcmVjbwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBBbHJlYWR5
SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRJbnQzMjoKLSAgICAgICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKEFzc2VtYmx5SGVscGVyczo6SW1tMzIoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFRhZ1R5cGVO
dW1iZXIgPj4gMzIpKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nhc3Q8VmlydHVh
bFJlZ2lzdGVyPihleGl0Lm9wZXJhbmRGb3JJbmRleChpbmRleCkpKSk7CisgICAgICAgICAgICAg
ICAgbV9qaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oVGFnVHlwZU51bWJlciA+PiAzMikpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zv
cihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KGV4aXQub3BlcmFuZEZvckluZGV4KGluZGV4
KSkpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGNhc2UgVUludDMySW5HUFI6IHsKQEAgLTYxNyw3ICs2MTcsNyBAQCB2b2lkIE9TUkV4aXRD
b21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgU3BlY3VsYXRpb25SZWNv
dmVyeSogcmVjbwogICAgIH0KICAgICAKICAgICBpZiAoZXhpdC5tX2NvZGVPcmlnaW4uaW5saW5l
Q2FsbEZyYW1lKQotICAgICAgICBtX2ppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpJbW0zMihl
eGl0Lm1fY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICogc2l6ZW9mKEVu
Y29kZWRKU1ZhbHVlKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgbV9q
aXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGV4aXQubV9jb2RlT3JpZ2lu
LmlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSwg
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIAogICAgIC8vIDE2KSBKdW1wIGludG8g
dGhlIGNvcnJlc3BvbmRpbmcgYmFzZWxpbmUgSklUIGNvZGUuCiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGEzZDYxZmJiNDgx
YWY3NjJmYzU3Y2E4YmYwMTM4Y2I2NjE2MjgzN2YuLjIyYTYzNTU5ZTg5ZmQxNjdhNGY4ZjBjZDIz
Njc4OTljOTUyNTBiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCkBAIC0xMjU5LDcgKzEyNTksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
OjpjcmVhdGVPU1JFbnRyaWVzKCkKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgbV9vc3JF
bnRyeUhlYWRzLmFwcGVuZChtX2ppdC5sYWJlbCgpKTsKLSAgICAgICAgbV9qaXQubW92ZShJbW0z
MihibG9ja0luZGV4KSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBtX2ppdC5tb3ZlKFRydXN0
ZWRJbW0zMihibG9ja0luZGV4KSwgR1BSSW5mbzo6cmVnVDApOwogICAgICAgICBtX2ppdC5qdW1w
KCkubGlua1RvKG1fYmxvY2tIZWFkc1tibG9ja0luZGV4XSwgJm1faml0KTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggMmUz
MmY4MWFlZDZlNjY0M2FlNzMzNzkxZTE4MDE2MzJlZDI1YTg3YS4uMTc0NGEwM2YzMTk5Y2U4YmM3
NmYyZjI2ZmMxNWUyZTcxZjFlMTVmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNDUyLDcgKzQ1Miw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSB0YXJnZXQpOwogICAgICAgICAgICAgaWYgKG5vZGUu
aGFzQ29uc3RhbnQoKSkgewogICAgICAgICAgICAgICAgIEFTU0VSVChpc0Jvb2xlYW5Db25zdGFu
dChub2RlSW5kZXgpKTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKHZhbHVlT2ZC
b29sZWFuQ29uc3RhbnQobm9kZUluZGV4KSksIHRhcmdldCk7CisgICAgICAgICAgICAgICAgbV9q
aXQubW92ZShUcnVzdGVkSW1tMzIodmFsdWVPZkJvb2xlYW5Db25zdGFudChub2RlSW5kZXgpKSwg
dGFyZ2V0KTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG1faml0LmxvYWQz
MihKSVRDb21waWxlcjo6cGF5bG9hZEZvcihzcGlsbE1lKSwgdGFyZ2V0KTsKICNlbmRpZgpAQCAt
NDY0LDcgKzQ2NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAobm9kZS5oYXNDb25zdGFu
dCgpKSB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHZhbHVlT2ZKU0NvbnN0YW50
KG5vZGVJbmRleCk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHZhbHVlLmlzQ2VsbCgpKTsKLSAg
ICAgICAgICAgICAgICBtX2ppdC5tb3ZlKEltbVB0cih2YWx1ZS5hc0NlbGwoKSksIHRhcmdldCk7
CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKHZhbHVlLmFzQ2VsbCgp
KSwgdGFyZ2V0KTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG1faml0Lmxv
YWRQdHIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3BpbGxNZSksIHRhcmdldCk7CiAgICAgICAg
ICAgICByZXR1cm47CkBAIC00NzksOSArNDc5LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIEFTU0VS
VChyZWdpc3RlckZvcm1hdCAmIERhdGFGb3JtYXRKUyk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gdGFyZ2V0KTsKLSAgICAgICAgaWYgKG5vZGUuaGFz
Q29uc3RhbnQoKSkKLSAgICAgICAgICAgIG1faml0Lm1vdmUodmFsdWVPZkpTQ29uc3RhbnRBc0lt
bVB0cihub2RlSW5kZXgpLCB0YXJnZXQpOwotICAgICAgICBlbHNlIGlmIChpbmZvLnNwaWxsRm9y
bWF0KCkgPT0gRGF0YUZvcm1hdEludGVnZXIpIHsKKyAgICAgICAgaWYgKG5vZGUuaGFzQ29uc3Rh
bnQoKSkgeworICAgICAgICAgICAgaWYgKHZhbHVlT2ZKU0NvbnN0YW50KG5vZGVJbmRleCkuaXND
ZWxsKCkpCisgICAgICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1t
UHRyKG5vZGVJbmRleCkuYXNUcnVzdGVkSW1tUHRyKCksIHRhcmdldCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZU9mSlNDb25zdGFudEFzSW1tUHRy
KG5vZGVJbmRleCksIHRhcmdldCk7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zcGlsbEZvcm1h
dCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaXN0ZXJG
b3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlcik7CiAgICAgICAgICAgICBtX2ppdC5sb2FkMzIo
SklUQ29tcGlsZXI6OnBheWxvYWRGb3Ioc3BpbGxNZSksIHRhcmdldCk7CiAgICAgICAgICAgICBt
X2ppdC5vclB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHRhcmdldCk7CkBAIC0x
MTg4LDEyICsxMTkxLDEyIEBAIHByaXZhdGU6CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3Vs
dCwgR1BSUmVnIGFyZzEsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgaW1tKQogICAgIHsK
LSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIE1hY3JvQXNz
ZW1ibGVyOjpJbW1QdHIoc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihpbW0ubV92YWx1ZSkpKSkpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoYXJnMSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RhdGljX2Nh
c3Q8Y29uc3Qgdm9pZCo+KEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbW0ubV92YWx1ZSkpKSkp
OwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChv
cGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9ERkdPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBpbW0sIEdQUlJlZyBhcmcyKQogICAgIHsKLSAgICAgICAg
bV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIo
c3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbW0ubV92
YWx1ZSkpKSksIGFyZzIpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+
KEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbW0ubV92YWx1ZSkpKSksIGFyZzIpOwogICAgICAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24s
IHJlc3VsdCk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9E
RkdPcGVyYXRpb25fRUNKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyKQpAQCAtMTI5Niw3ICsxMjk5LDcgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FSlAgb3BlcmF0aW9u
LCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcs
IEdQUlJlZyBhcmcxUGF5bG9hZCwgdm9pZCogcG9pbnRlcikKICAgICB7Ci0gICAgICAgIG1faml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxUGF5bG9hZCwgYXJnMVRhZywgSW1tUHRy
KHBvaW50ZXIpKTsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFy
ZzFQYXlsb2FkLCBhcmcxVGFnLCBUcnVzdGVkSW1tUHRyKHBvaW50ZXIpKTsKICAgICAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1
bHRQYXlsb2FkLCByZXN1bHRUYWcpOwogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0VKUCBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcs
IEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2Fk
LCBHUFJSZWcgYXJnMikKQEAgLTE2MzksNyArMTY0Miw3IEBAIHByaXZhdGU6CiAgICAgewogICAg
ICAgICBpZiAoIURGR19FTkFCTEVfRURHRV9DT0RFX1ZFUklGSUNBVElPTikKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgbV9qaXQubW92ZShJbW0zMihkZXN0aW5hdGlvbiksIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoZGVzdGluYXRpb24pLCBH
UFJJbmZvOjpyZWdUMCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGRCcmFuY2goY29uc3QgTWFjcm9B
c3NlbWJsZXI6Okp1bXAmIGp1bXAsIEJsb2NrSW5kZXggZGVzdGluYXRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRl
eCBhNDljMzM2NzVhMDU4NjIzYzE3ZTg1MjUzNGQ1OTM5Njc3Y2M1MDFiLi5hZDQyOTM4M2I2NDAz
Njk2MzdkNjE0NTgyMTRlYzM2MWJlNjRmNmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTI1NDYsNyArMjU0Niw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgbV9q
aXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBzdG9yYWdlTGVuZ3RoR1BSKTsKICAgICAgICAgbV9q
aXQuc3RvcmUzMihzdG9yYWdlTGVuZ3RoR1BSLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9y
YWdlR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX2xlbmd0aCkpKTsKICAgICAg
ICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
dG9yYWdlR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoQXJyYXlTdG9yYWdlLCBtX251bVZhbHVlc0luVmVj
dG9yKSkpOwotICAgICAgICBtX2ppdC5tb3ZlKEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgc3Rv
cmFnZUdQUik7CisgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMy
VGFnKSwgc3RvcmFnZUdQUik7CiAgICAgICAgIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBkb25lID0gbV9qaXQuanVtcCgpOwogICAgICAgICAKQEAgLTI2MDQsOCArMjYwNCw4IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgCiAgICAgICAg
IGhvbGVDYXNlLmxpbmsoJm1faml0KTsKICAgICAgICAgZW1wdHlBcnJheUNhc2UubGluaygmbV9q
aXQpOwotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW0zMihqc1VuZGVmaW5l
ZCgpLnRhZygpKSwgdmFsdWVUYWdHUFIpOwotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpJbW0zMihqc1VuZGVmaW5lZCgpLnBheWxvYWQoKSksIHZhbHVlUGF5bG9hZEdQUik7Cisg
ICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihqc1VuZGVmaW5l
ZCgpLnRhZygpKSwgdmFsdWVUYWdHUFIpOworICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoanNVbmRlZmluZWQoKS5wYXlsb2FkKCkpLCB2YWx1ZVBheWxvYWRH
UFIpOwogICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOwogICAgICAgICAKICAgICAg
ICAgc2xvd0Nhc2UubGluaygmbV9qaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggYmM1YTA1N2M3YzJiOGViZTJmYzE2Y2Mz
NWM3N2E5YzY2NWYwNGQ0ZC4uYTliN2ZjYTcxNmIwODFjMzM0NzFkNTBhYmM5MTA0NDc2YjRiZDJj
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEludGVn
ZXIoTm9kZUluZGV4IG5vZGVJbmRleCwgRGF0YUZvcm1hdCYgcmV0dXJuRm9ybWF0CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVChpc0pTQ29uc3RhbnQobm9kZUlu
ZGV4KSk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdmFsdWVPZkpTQ29uc3Rh
bnQobm9kZUluZGV4KTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpKSwgZ3ByKTsKKyAgICAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29k
ZShqc1ZhbHVlKSksIGdwcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoaW5m
by5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRJbnRlZ2VyKSB7CiAgICAgICAgICAgICBtX2dw
cnMucmV0YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyU3BpbGxlZCk7CkBAIC0x
NDEsNyArMTQxLDcgQEAgRlBSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsRG91YmxlKE5vZGVJbmRl
eCBub2RlSW5kZXgpCiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHNob3VsZCBub3QgYmUgcmVh
Y2hhYmxlPwogICAgICAgICAgICAgICAgIEFTU0VSVChpc0pTQ29uc3RhbnQobm9kZUluZGV4KSk7
CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9k
ZUluZGV4KTsKLSAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1Q
dHIoSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpKSwgZ3ByKTsKKyAgICAgICAgICAgICAgICBtX2pp
dC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1Zh
bHVlKSksIGdwcik7CiAgICAgICAgICAgICAgICAgbV9ncHJzLnJldGFpbihncHIsIHZpcnR1YWxS
ZWdpc3RlciwgU3BpbGxPcmRlckNvbnN0YW50KTsKICAgICAgICAgICAgICAgICBpbmZvLmZpbGxK
U1ZhbHVlKGdwciwgRGF0YUZvcm1hdEpTKTsKICAgICAgICAgICAgICAgICB1bmxvY2soZ3ByKTsK
QEAgLTI4Myw3ICsyODMsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKE5v
ZGVJbmRleCBub2RlSW5kZXgpCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IEFTU0VSVChpc0pTQ29uc3RhbnQobm9kZUluZGV4KSk7CiAgICAgICAgICAgICAgICAgSlNWYWx1
ZSBqc1ZhbHVlID0gdmFsdWVPZkpTQ29uc3RhbnQobm9kZUluZGV4KTsKLSAgICAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzVmFs
dWUpKSwgZ3ByKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKSksIGdwcik7CiAgICAgICAgICAg
ICAgICAgaW5mby5maWxsSlNWYWx1ZShncHIsIERhdGFGb3JtYXRKUyk7CiAgICAgICAgICAgICB9
CiAKQEAgLTk2Myw3ICs5NjMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2Rl
JiBub2RlKQogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2FsbGVl
R1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9zY29wZUNoYWluKSksIHJlc3VsdEdQ
Uik7CiAgICAgbV9qaXQuc3RvcmVQdHIocmVzdWx0R1BSLCBjYWxsRnJhbWVTbG90KFJlZ2lzdGVy
RmlsZTo6U2NvcGVDaGFpbikpOwogCi0gICAgbV9qaXQuYWRkUHRyKEltbTMyKG1faml0LmNvZGVC
bG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycyAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMihtX2pp
dC5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnMgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIAogICAgIENvZGVPcmlnaW4gY29kZU9y
aWdpbiA9IGF0KG1fY29tcGlsZUluZGV4KS5jb2RlT3JpZ2luOwogICAgIENhbGxCZWdpblRva2Vu
IHRva2VuID0gbV9qaXQuYmVnaW5KU0NhbGwoKTsKQEAgLTk3OCw3ICs5NzgsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlJiBub2RlKQogICAgIHRva2VuID0gbV9qaXQuYmVn
aW5DYWxsKCk7CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgc2xvd0NhbGwgPSBtX2ppdC5hcHBlbmRD
YWxsKHNsb3dDYWxsRnVuY3Rpb24pOwogICAgIG1faml0LmFkZEZhc3RFeGNlcHRpb25DaGVjayhz
bG93Q2FsbCwgY29kZU9yaWdpbiwgdG9rZW4pOwotICAgIG1faml0LmFkZFB0cihJbW0zMihtX2pp
dC5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnMgKiBzaXplb2YoUmVnaXN0ZXIpKSwg
R1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1t
MzIobV9qaXQuY29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzICogc2l6ZW9mKFJlZ2lz
dGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICB0b2tlbiA9IG1faml0LmJl
Z2luSlNDYWxsKCk7CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgdGhlQ2FsbCA9IG1faml0LmNhbGwo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogICAgIG1faml0Lm5vdGlmeUNhbGwodGhlQ2FsbCwg
Y29kZU9yaWdpbiwgdG9rZW4pOwpAQCAtMTQ3NiwxMCArMTQ3NiwxMCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlT2JqZWN0RXF1YWxpdHkoTm9kZSYgbm9kZSwgY29uc3QgQ2xhc3NJbmZv
KiBjbGFzc0luZgogICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdz
KG9wMkdQUiksIG5vZGUuY2hpbGQyKCkuaW5kZXgoKSwgbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNz
ZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mob3AyR1BSLCBKU0NlbGw6
OmNsYXNzSW5mb09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoY2xhc3NJ
bmZvKSkpOwogICAgIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGZhbHNlQ2FzZSA9IG1faml0
LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG9wMUdQUiwgb3AyR1BSKTsKLSAg
ICBtX2ppdC5tb3ZlKEltbTMyKFZhbHVlVHJ1ZSksIHJlc3VsdEdQUik7CisgICAgbV9qaXQubW92
ZShUcnVzdGVkSW1tMzIoVmFsdWVUcnVlKSwgcmVzdWx0R1BSKTsKICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwogICAgIGZhbHNlQ2FzZS5saW5rKCZtX2ppdCk7
Ci0gICAgbV9qaXQubW92ZShJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKKyAgICBtX2pp
dC5tb3ZlKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKICAgICBkb25lLmxp
bmsoJm1faml0KTsKIAogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRl
eCwgRGF0YUZvcm1hdEpTQm9vbGVhbik7CkBAIC0xNTkyLDcgKzE1OTIsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlTG9naWNhbE5vdChOb2RlJiBub2RlKQogICAgICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMihWYWx1
ZUZhbHNlKSwgcmVzdWx0LmdwcigpKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm9u
WmVybyA9IG1faml0LmJyYW5jaERvdWJsZU5vblplcm8odmFsdWUuZnByKCksIHNjcmF0Y2guZnBy
KCkpOwotICAgICAgICBtX2ppdC54b3IzMihJbW0zMih0cnVlKSwgcmVzdWx0LmdwcigpKTsKKyAg
ICAgICAgbV9qaXQueG9yMzIoVHJ1c3RlZEltbTMyKHRydWUpLCByZXN1bHQuZ3ByKCkpOwogICAg
ICAgICBub25aZXJvLmxpbmsoJm1faml0KTsKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQu
Z3ByKCksIG1fY29tcGlsZUluZGV4LCBEYXRhRm9ybWF0SlNCb29sZWFuKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMTcxNCwxOCArMTcxNCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0QnJh
bmNoKE5vZGUmIG5vZGUpCiAgICAgICAgIGJvb2wgcHJlZGljdEJvb2xlYW4gPSBpc0Jvb2xlYW5Q
cmVkaWN0aW9uKG1faml0LmdldFByZWRpY3Rpb24obm9kZS5jaGlsZDEoKSkpOwogICAgIAogICAg
ICAgICBpZiAocHJlZGljdEJvb2xlYW4pIHsKLSAgICAgICAgICAgIGJyYW5jaFB0cihNYWNyb0Fz
c2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKSksIG5vdFRha2VuKTsKLSAgICAgICAgICAgIGJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1t
UHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSwgdGFrZW4pOworICAgICAgICAg
ICAgYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFsdWVHUFIsIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKSksIG5v
dFRha2VuKTsKKyAgICAgICAgICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZh
bHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKHRydWUpKSksIHRha2VuKTsKIAogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhC
YWRUeXBlLCBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIG5vZGUuY2hpbGQxKCksIG1faml0Lmp1bXAo
KSk7CiAgICAgICAgICAgICB2YWx1ZS51c2UoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2Vt
Ymxlcjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSkpLCBub3RUYWtlbik7Cisg
ICAgICAgICAgICBicmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZUdQUiwgTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKSks
IG5vdFRha2VuKTsKICAgICAgICAgICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVP
ckVxdWFsLCB2YWx1ZUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCB0YWtlbik7
CiAgICAgCiAgICAgICAgICAgICBpZiAoIXByZWRpY3RCb29sZWFuKSB7Ci0gICAgICAgICAgICAg
ICAgYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFsdWVHUFIsIE1hY3JvQXNzZW1i
bGVyOjpJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpKSwgbm90VGFrZW4p
OwotICAgICAgICAgICAgICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVl
R1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1
ZSkpKSwgdGFrZW4pOworICAgICAgICAgICAgICAgIGJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6
RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGZhbHNlKSkpLCBub3RUYWtlbik7CisgICAgICAgICAgICAgICAgYnJh
bmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFsdWVHUFIsIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSwgdGFrZW4pOwog
ICAgICAgICAgICAgfQogICAgIAogICAgICAgICAgICAgdmFsdWUudXNlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAKaW5kZXggZWIyZWU3NzQ4NzA2YWI4ZjgxOGY5ZWM1ZWE3N2FmYmZiMDJk
NTU2MS4uNTQxY2M4OTZhMzI4OTBmNmM1ZWY2MWI0YjY1YjcyNGU2OGVlNmI0MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgSklUOjplbWl0T3B0
aW1pemF0aW9uQ2hlY2soT3B0aW1pemF0aW9uQ2hlY2tLaW5kIGtpbmQpCiAgICAgSnVtcCBza2lw
T3B0aW1pemUgPSBicmFuY2hBZGQzMihTaWduZWQsIFRydXN0ZWRJbW0zMihraW5kID09IExvb3BP
cHRpbWl6YXRpb25DaGVjayA/IE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JM
b29wIDogT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvclJldHVybiksIEFic29s
dXRlQWRkcmVzcyhtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSkpOwog
ICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGtpbmQgPT0gTG9vcE9wdGltaXphdGlvbkNo
ZWNrID8gY3RpX29wdGltaXplX2Zyb21fbG9vcCA6IGN0aV9vcHRpbWl6ZV9mcm9tX3JldCk7CiAg
ICAgaWYgKGtpbmQgPT0gTG9vcE9wdGltaXphdGlvbkNoZWNrKQotICAgICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChJbW0zMihtX2J5dGVjb2RlT2Zmc2V0KSk7CisgICAgICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihtX2J5dGVjb2RlT2Zmc2V0KSk7CiAgICAgc3R1YkNhbGwu
Y2FsbCgpOwogICAgIHNraXBPcHRpbWl6ZS5saW5rKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCmluZGV4IGIzYjlhZDc5OTEz
NGZhNjdiYjUzZTE5MWFhYmJiMWU1YWI4YmYyOGQuLjExYTc1ODEwM2VmYzk3OTFmOWU0Zjc0OWIz
ZTMzMGUzMGI4NTMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
QXJpdGhtZXRpYzMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFy
aXRobWV0aWMzMl82NC5jcHAKQEAgLTQ3OSw3ICs0NzksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfcG9zdF9pbmMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRQogCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Bvc3RfaW5jKTsK
ICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChzcmNEc3QpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KEltbTMyKHNyY0RzdCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0z
MihzcmNEc3QpKTsKICAgICBzdHViQ2FsbC5jYWxsKGRzdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKaW5kZXggMWFlYjlmZDMzMjBkNzFmZGY2
NDdhOGY4ZmEwODUxYzIyY2MwMzkyNC4uOTk4ZDVhYzE4Nzk4NjhmZmZiYWMwZmYwOGRhZDdkM2I0
NzQ2OTdlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVN
ZXRob2RzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2Rz
LmgKQEAgLTU1OSw5ICs1NTksOSBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoVmFsdWVQcm9maWxlKiB2YWx1ZVByb2ZpbGUpCiAgICAgaWYgKG1fcmFuZG9tR2VuZXJh
dG9yLmdldFVpbnQzMigpICYgMSkKICAgICAgICAgYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBidWNr
ZXRDb3VudGVyUmVnaXN0ZXIpOwogICAgIGVsc2UKLSAgICAgICAgYWRkMzIoSW1tMzIoMyksIGJ1
Y2tldENvdW50ZXJSZWdpc3Rlcik7Ci0gICAgYW5kMzIoSW1tMzIoVmFsdWVQcm9maWxlOjpidWNr
ZXRJbmRleE1hc2spLCBidWNrZXRDb3VudGVyUmVnaXN0ZXIpOwotICAgIG1vdmUoSW1tUHRyKHZh
bHVlUHJvZmlsZS0+bV9idWNrZXRzKSwgc2NyYXRjaCk7CisgICAgICAgIGFkZDMyKFRydXN0ZWRJ
bW0zMigzKSwgYnVja2V0Q291bnRlclJlZ2lzdGVyKTsKKyAgICBhbmQzMihUcnVzdGVkSW1tMzIo
VmFsdWVQcm9maWxlOjpidWNrZXRJbmRleE1hc2spLCBidWNrZXRDb3VudGVyUmVnaXN0ZXIpOwor
ICAgIG1vdmUoVHJ1c3RlZEltbVB0cih2YWx1ZVByb2ZpbGUtPm1fYnVja2V0cyksIHNjcmF0Y2gp
OwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3RvcmVQdHIodmFsdWUsIEJhc2VJbmRleChzY3Jh
dGNoLCBidWNrZXRDb3VudGVyUmVnaXN0ZXIsIFRpbWVzRWlnaHQpKTsKICNlbGlmIFVTRShKU1ZB
TFVFMzJfNjQpCkBAIC04NjgsNyArODY4LDEwIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OmVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaW50IHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAgICAgLy8gVE9E
Tzogd2Ugd2FudCB0byByZXVzZSB2YWx1ZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiByZWdpc3RlcnMg
aWYgd2UgY2FuIC0gYWRkIGEgcmVnaXN0ZXIgYWxsb2NhdG9yIQogICAgIGlmIChtX2NvZGVCbG9j
ay0+aXNDb25zdGFudFJlZ2lzdGVySW5kZXgoc3JjKSkgewogICAgICAgICBKU1ZhbHVlIHZhbHVl
ID0gbV9jb2RlQmxvY2stPmdldENvbnN0YW50KHNyYyk7Ci0gICAgICAgIG1vdmUoSW1tUHRyKEpT
VmFsdWU6OmVuY29kZSh2YWx1ZSkpLCBkc3QpOworICAgICAgICBpZiAoIXZhbHVlLmlzTnVtYmVy
KCkpCisgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVl
KSksIGRzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1vdmUoSW1tUHRyKEpTVmFsdWU6
OmVuY29kZSh2YWx1ZSkpLCBkc3QpOwogICAgICAgICBraWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzLmNwcAppbmRleCBkMDM2NjRhZTc5M2QxYzk5OTdkNzViNjJlMDBiNjAwYjIyODU1YzIyLi4y
ZGI4MmJmNGFkMjBkNjAzYWYwMzQ5ZGU0ZWY1MTRjZjNkMDAyNmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTM1OCw3ICszNTgsMTAgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfbW92KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAobV9j
b2RlQmxvY2stPmlzQ29uc3RhbnRSZWdpc3RlckluZGV4KHNyYykpIHsKLSAgICAgICAgICAgIHN0
b3JlUHRyKEltbVB0cihKU1ZhbHVlOjplbmNvZGUoZ2V0Q29uc3RhbnRPcGVyYW5kKHNyYykpKSwg
QWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgZHN0ICogc2l6ZW9mKFJlZ2lzdGVyKSkpOworICAg
ICAgICAgICAgaWYgKCFnZXRDb25zdGFudE9wZXJhbmQoc3JjKS5pc051bWJlcigpKQorICAgICAg
ICAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGdldENvbnN0
YW50T3BlcmFuZChzcmMpKSksIEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIGRzdCAqIHNpemVv
ZihSZWdpc3RlcikpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdG9yZVB0
cihJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGdldENvbnN0YW50T3BlcmFuZChzcmMpKSksIEFkZHJl
c3MoY2FsbEZyYW1lUmVnaXN0ZXIsIGRzdCAqIHNpemVvZihSZWdpc3RlcikpKTsKICAgICAgICAg
ICAgIGlmIChkc3QgPT0gbV9sYXN0UmVzdWx0Qnl0ZWNvZGVSZWdpc3RlcikKICAgICAgICAgICAg
ICAgICBraWxsTGFzdFJlc3VsdFJlZ2lzdGVyKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoKHNyYyA9
PSBtX2xhc3RSZXN1bHRCeXRlY29kZVJlZ2lzdGVyKSB8fCAoZHN0ID09IG1fbGFzdFJlc3VsdEJ5
dGVjb2RlUmVnaXN0ZXIpKSB7CkBAIC0zOTAsNyArMzkzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
am1wKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKIHZvaWQgSklUOjplbWl0X29w
X25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBlbWl0
QWxsb2NhdGVKU0ZpbmFsT2JqZWN0KEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkt
PmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwgcmVnVDEpOworICAgIGVtaXRBbGxvY2F0
ZUpTRmluYWxPYmplY3QoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkt
PmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwgcmVnVDEpOwogICAgIAogICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CkBA
IC01OTUsOCArNTk4LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfdG9fcHJpbWl0aXZlKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6ZW1pdF9vcF9zdHJjYXQoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0
aGlzLCBjdGlfb3Bfc3RyY2F0KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQo
SW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7
CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsKGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQpOwogfQogCkBAIC02MTAsNyArNjEzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cmVzb2x2ZV9iYXNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6
ZW1pdF9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX2Vuc3VyZV9w
cm9wZXJ0eV9leGlzdHMpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVz
dGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwogICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJl
bnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSk7CiAgICAgc3R1YkNhbGwuY2FsbChjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KQEAgLTYxOSw3ICs2MjIsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9yZXNvbHZlX3NraXAoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV9za2lwKTsK
ICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRl
bnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkpOwotICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZCkpOwogICAgIHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQcm9maWxpbmcoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKQEAgLTY1NSw3ICs2NTgsNyBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsbwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICBKSVRTdHVi
Q2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV9nbG9iYWwpOwogICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoaWRlbnQpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1
bWVudChJbW0zMihjdXJyZW50SW5kZXgpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVz
dGVkSW1tMzIoY3VycmVudEluZGV4KSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDAp
OwogICAgIHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQcm9maWxpbmcoZHN0KTsKIH0KQEAgLTc2OCw3
ICs3NzEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZShJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMs
IGN0aV9vcF9yZXNvbHZlX3dpdGhfYmFzZSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1
c3RlZEltbVB0cigmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZCkpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3Rl
ZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5j
YWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwog
fQogCkBAIC03NzYsNyArNzc5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX3Ro
aXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBz
dHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV93aXRoX3RoaXMpOwogICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1t
MzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgIHN0dWJDYWxsLmFkZEFy
Z3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CiAg
ICAgc3R1YkNhbGwuY2FsbFdpdGhWYWx1ZVByb2ZpbGluZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kKTsKIH0KIApAQCAtMTAzNCw3ICsxMDM3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
Y2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHZvaWQgSklUOjplbWl0X29w
X2ptcF9zY29wZXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRT
dHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfam1wX3Njb3Blcyk7Ci0gICAgc3R1YkNhbGwu
YWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAg
IHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIGFkZEp1bXAoanVtcCgpLCBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKIH0KQEAgLTEwNTIsNyArMTA1NSw3IEBA
IHZvaWQgSklUOjplbWl0X29wX3N3aXRjaF9pbW0oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIAogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9zd2l0Y2hfaW1t
KTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChzY3J1dGluZWUsIHJlZ1QyKTsKLSAgICBzdHVi
Q2FsbC5hZGRBcmd1bWVudChJbW0zMih0YWJsZUluZGV4KSk7CisgICAgc3R1YkNhbGwuYWRkQXJn
dW1lbnQoVHJ1c3RlZEltbTMyKHRhYmxlSW5kZXgpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7CiAg
ICAganVtcChyZWdUMCk7CiB9CkBAIC0xMDcwLDcgKzEwNzMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9zd2l0Y2hfY2hhcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgSklU
U3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3N3aXRjaF9jaGFyKTsKICAgICBzdHViQ2Fs
bC5hZGRBcmd1bWVudChzY3J1dGluZWUsIHJlZ1QyKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChJbW0zMih0YWJsZUluZGV4KSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZElt
bTMyKHRhYmxlSW5kZXgpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7CiAgICAganVtcChyZWdUMCk7
CiB9CkBAIC0xMDg3LDcgKzEwOTAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zd2l0Y2hfc3RyaW5n
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBKSVRTdHViQ2FsbCBzdHVi
Q2FsbCh0aGlzLCBjdGlfb3Bfc3dpdGNoX3N0cmluZyk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQoc2NydXRpbmVlLCByZWdUMik7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIodGFi
bGVJbmRleCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMih0YWJsZUlu
ZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIGp1bXAocmVnVDApOwogfQpAQCAtMTA5
NSw3ICsxMDk4LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX3N3aXRjaF9zdHJpbmcoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHZvaWQgSklUOjplbWl0X29wX3Rocm93X3JlZmVyZW5j
ZV9lcnJvcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJVFN0dWJD
YWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF90aHJvd19yZWZlcmVuY2VfZXJyb3IpOwotICAgIHN0
dWJDYWxsLmFkZEFyZ3VtZW50KEltbVB0cihKU1ZhbHVlOjplbmNvZGUobV9jb2RlQmxvY2stPmdl
dENvbnN0YW50KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKSkpOworICAgIGlmICgh
bV9jb2RlQmxvY2stPmdldENvbnN0YW50KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
LmlzTnVtYmVyKCkpCisgICAgICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIo
SlNWYWx1ZTo6ZW5jb2RlKG1fY29kZUJsb2NrLT5nZXRDb25zdGFudChjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kKSkpKTsKKyAgICBlbHNlCisgICAgICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KEltbVB0cihKU1ZhbHVlOjplbmNvZGUobV9jb2RlQmxvY2stPmdldENvbnN0YW50KGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKSkpOwogICAgIHN0dWJDYWxsLmNhbGwoKTsKIH0K
IApAQCAtMTEwNiw5ICsxMTEyLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGVidWcoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBicmVha3BvaW50KCk7CiAjZWxzZQogICAgIEpJ
VFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9kZWJ1Zyk7Ci0gICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwotICAgIHN0
dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChU
cnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgIHN0dWJD
YWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kKSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogI2VuZGlmCiB9CkBAIC0xNTU5LDcgKzE1NjUs
NyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYyhJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZQogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8g
V2UgbWFuYWdlZCB0byBza2lwIGFsbCB0aGUgbm9kZXMgaW4gdGhlIHNjb3BlIGNoYWluLCBidXQg
dGhlIGNhY2hlIG1pc3NlZC4KICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bf
cmVzb2x2ZV9nbG9iYWwpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIo
aWRlbnQpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5kZXgpKTsK
KyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluZGV4KSk7CiAg
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDApOwogICAgIHN0dWJDYWxsLmNhbGxXaXRoVmFs
dWVQcm9maWxpbmcoZHN0KTsKIH0KQEAgLTE2NDIsOCArMTY0OCw4IEBAIHZvaWQgSklUOjplbWl0
X29wX25ld19hcnJheShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBs
ZW5ndGggPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGlmIChDb3BpZWRT
cGFjZTo6aXNPdmVyc2l6ZShKU0FycmF5OjpzdG9yYWdlU2l6ZShsZW5ndGgpKSkgewogICAgICAg
ICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfbmV3X2FycmF5KTsKLSAgICAgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCkpOwotICAgICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kKSk7CisgICAgICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJ
bW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
KSk7CiAgICAgICAgIHN0dWJDYWxsLmNhbGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNjYyLDE2ICsxNjY4LDE2IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9uZXdfYXJyYXkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgVmVjdG9yPFNsb3dDYXNlCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBOb3QgZW5vdWdo
IHNwYWNlIGluIE1hcmtlZFNwYWNlIGZvciBjZWxsLgogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsg
Ly8gTm90IGVub3VnaCBzcGFjZSBpbiBDb3BpZWRTcGFjZSBmb3Igc3RvcmFnZS4KICAgICBKSVRT
dHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfbmV3X2FycmF5KTsKLSAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZElt
bTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxs
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9uZXdfYXJyYXlfYnVmZmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAg
ICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX25ld19hcnJheV9idWZmZXIpOwot
ICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMy
KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1
bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwogICAg
IHN0dWJDYWxsLmNhbGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCAxMjdi
NDNkMjA0MmVkN2UwZWJlOGFjNzljOGZkODJkYTQ3MDU3ZGRhLi5iNjc2OTZmMzU5MDM3N2ZjYTAw
N2E0MzgxYzUxNGMwNWMyZGExMGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCkBAIC01MzYsNyArNTM2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
am1wKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKIHZvaWQgSklUOjplbWl0X29w
X25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBlbWl0
QWxsb2NhdGVKU0ZpbmFsT2JqZWN0KEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkt
PmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwgcmVnVDEpOworICAgIGVtaXRBbGxvY2F0
ZUpTRmluYWxPYmplY3QoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkt
PmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpLCByZWdUMCwgcmVnVDEpOwogICAgIAogICAgIGVtaXRT
dG9yZUNlbGwoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDApOwogfQpAQCAt
NzAxLDggKzcwMSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF90b19wcmltaXRpdmUoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDCiB2b2lkIEpJVDo6ZW1pdF9v
cF9zdHJjYXQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHVi
Q2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfc3RyY2F0KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1
bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgc3R1YkNh
bGwuYWRkQXJndW1lbnQoSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwor
ICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQogCkBAIC03MTYsNyArNzE2LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9iYXNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiB2b2lkIEpJVDo6ZW1pdF9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywg
Y3RpX29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50
KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkp
OwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoJm1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSk7CiAgICAgc3R1YkNh
bGwuY2FsbChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KQEAgLTcyNSw3ICs3
MjUsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3NraXAoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKIHsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bf
cmVzb2x2ZV9za2lwKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZt
X2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSkp
OwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwogICAgIHN0dWJDYWxsLmNhbGxXaXRoVmFsdWVQ
cm9maWxpbmcoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKQEAgLTc2Niw3
ICs3NjYsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZV9nbG9iYWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsbwogICAgIGxpbmtTbG93Q2FzZShpdGVy
KTsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfcmVzb2x2ZV9nbG9iYWwp
OwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoaWRlbnQpKTsKLSAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5kZXgpKTsKKyAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tMzIoY3VycmVudEluZGV4KSk7CiAgICAgc3R1YkNhbGwuY2Fs
bFdpdGhWYWx1ZVByb2ZpbGluZyhkc3QpOwogfQogCkBAIC0xMTY0LDcgKzExNjQsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZShJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9yZXNvbHZl
X3dpdGhfYmFzZSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cigmbV9j
b2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpKTsK
LSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJv
ZmlsaW5nKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogfQogCkBAIC0xMTcyLDcg
KzExNzIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfdGhpcyhJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRoaXMs
IGN0aV9vcF9yZXNvbHZlX3dpdGhfdGhpcyk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1
c3RlZEltbVB0cigmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZCkpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3Rl
ZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5j
YWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwog
fQogCkBAIC0xMzY0LDcgKzEzNjQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogdm9pZCBKSVQ6OmVtaXRfb3Bfam1wX3Njb3BlcyhJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIEpJVFN0dWJDYWxsIHN0dWJD
YWxsKHRoaXMsIGN0aV9vcF9qbXBfc2NvcGVzKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJ
bW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsK
ICAgICBzdHViQ2FsbC5jYWxsKCk7CiAgICAgYWRkSnVtcChqdW1wKCksIGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQpOwogfQpAQCAtMTM4Miw3ICsxMzgyLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3Bfc3dpdGNoX2ltbShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAg
SklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3N3aXRjaF9pbW0pOwogICAgIHN0dWJD
YWxsLmFkZEFyZ3VtZW50KHNjcnV0aW5lZSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1t
MzIodGFibGVJbmRleCkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMih0
YWJsZUluZGV4KSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogICAgIGp1bXAocmVnVDApOwogfQpA
QCAtMTQwMCw3ICsxNDAwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bfc3dpdGNoX2NoYXIoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJVFN0dWJDYWxsIHN0dWJDYWxsKHRo
aXMsIGN0aV9vcF9zd2l0Y2hfY2hhcik7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoc2NydXRp
bmVlKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChJbW0zMih0YWJsZUluZGV4KSk7CisgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKHRhYmxlSW5kZXgpKTsKICAgICBzdHVi
Q2FsbC5jYWxsKCk7CiAgICAganVtcChyZWdUMCk7CiB9CkBAIC0xNDE3LDcgKzE0MTcsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9zd2l0Y2hfc3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3Bfc3dpdGNoX3N0
cmluZyk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoc2NydXRpbmVlKTsKLSAgICBzdHViQ2Fs
bC5hZGRBcmd1bWVudChJbW0zMih0YWJsZUluZGV4KSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1l
bnQoVHJ1c3RlZEltbTMyKHRhYmxlSW5kZXgpKTsKICAgICBzdHViQ2FsbC5jYWxsKCk7CiAgICAg
anVtcChyZWdUMCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCAxZWUyOTE1ZGM3YjYxMjI1NGM3MDE3NDg2YmY4
YWEzMTVkMDlmMjA1Li4xOWFiZGJkODlkNTRhZTYyYzE1ODgyNDljZjU2Y2U0YTdhMWM0YWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2luZGV4
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgSklUU3R1YkNhbGwg
c3R1YkNhbGwodGhpcywgY3RpX29wX3B1dF9ieV9pbmRleCk7CiAgICAgc3R1YkNhbGwuYWRkQXJn
dW1lbnQoYmFzZSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoSW1tMzIocHJvcGVydHkpKTsK
KyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIocHJvcGVydHkpKTsKICAgICBz
dHViQ2FsbC5hZGRBcmd1bWVudCh2YWx1ZSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oCmluZGV4IDg3ZWZlY2JiODllZmQxYjdj
Y2ViMmJiOWNmNDI2ZWUxNDQ0NmZkYWMuLmE1MjVmZjIyNzUwZTA5OGI5NTJlYzU4NTc1MTMyNTEx
YmQ1ZGFjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YkNh
bGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJDYWxsLmgKQEAgLTEx
Niw2ICsxMTYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBtX2ppdC0+cG9rZShh
cmd1bWVudCwgbV9zdGFja0luZGV4KTsKICAgICAgICAgICAgIG1fc3RhY2tJbmRleCArPSBzdGFj
a0luZGV4U3RlcDsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhZGRBcmd1bWVu
dChKSVQ6OkltbVB0ciBhcmd1bWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9qaXQtPnBv
a2UoYXJndW1lbnQsIG1fc3RhY2tJbmRleCk7CisgICAgICAgICAgICBtX3N0YWNrSW5kZXggKz0g
c3RhY2tJbmRleFN0ZXA7CisgICAgICAgIH0KIAogICAgICAgICB2b2lkIGFkZEFyZ3VtZW50KEpJ
VDo6UmVnaXN0ZXJJRCBhcmd1bWVudCkKICAgICAgICAgewo=
</data>
<flag name="review"
          id="133812"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>