<?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>103197</bug_id>
          
          <creation_ts>2012-11-25 01:29:59 -0800</creation_ts>
          <short_desc>Rename DynamicNodeList to LiveNodeList</short_desc>
          <delta_ts>2012-11-25 10:52:13 -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>
          
          <blocked>78909</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>774957</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-25 01:29:59 -0800</bug_when>
    <thetext>Rename DynamicNodeList to LiveNodeList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774958</commentid>
    <comment_count>1</comment_count>
      <attachid>175876</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-25 01:36:12 -0800</bug_when>
    <thetext>Created attachment 175876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774959</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-25 01:39:41 -0800</bug_when>
    <thetext>Attachment 175876 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebCore/dom/ClassNodeList.h:39:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebCore/dom/ChildNodeList.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebCore/dom/TagNodeList.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 35 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>774998</commentid>
    <comment_count>3</comment_count>
      <attachid>175876</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-25 09:20:31 -0800</bug_when>
    <thetext>Comment on attachment 175876
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775009</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-25 10:52:13 -0800</bug_when>
    <thetext>Committed r135671: &lt;http://trac.webkit.org/changeset/135671&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175876</attachid>
            <date>2012-11-25 01:36:12 -0800</date>
            <delta_ts>2012-11-25 09:20:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103197-20121125013353.patch</filename>
            <type>text/plain</type>
            <size>79343</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTY2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNSBAQAorMjAxMi0xMS0yNSAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgRHluYW1pY05vZGVM
aXN0IHRvIExpdmVOb2RlTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAzMTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIER5bmFtaWNOb2RlTGlzdCB0byBMaXZlTm9kZUxpc3QgdG8gbWF0
Y2ggdGhlIHRlcm1pbm9sb2d5IHVzZWQgaW4gRE9NNCB3b3JraW5nIGRyYWZ0OgorICAgICAgICBo
dHRwOi8vd3d3LnczLm9yZy9UUi8yMDEyL1dELWRvbS0yMDEyMDQwNS8jY29uY2VwdC1jb2xsZWN0
aW9uLWxpdmUKKyAgICAgICAgIkEgY29sbGVjdGlvbiAoZWl0aGVyIE5vZGVMaXN0IG9yIEhUTUxD
b2xsZWN0aW9uKSBjYW4gYmUgZWl0aGVyIGxpdmUgb3Igc3RhdGljIi4KKworICAgICAgICBBbHNv
IHJlbmFtZSBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UgdG8gTGl2ZU5vZGVMaXN0QmFzZSwgYW5k
IG1lcmdlIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QKKyAgICAgICAgaW50byBMaXZlTm9kZUxpc3Qg
KG9sZCBEeW5hbWljTm9kZUxpc3QpIG5vdyB0aGF0IHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2Vl
biB0aG9zZSB0d28gY2xhc3NlcworICAgICAgICBpcyB0aGUgZm9ybWVyIGNhbGxpbmcgcmVnaXN0
ZXJOb2RlTGlzdENhY2hlIGFuZCB1bnJlZ2lzdGVyTm9kZUxpc3RDYWNoZSBvbiBEb2N1bWVudC4K
KworICAgICAgICBUaGlzIHBhdGNoIGNvbXBsZXRlcyB0aGUgc2VyaWVzIG9mIHNpbXBsaWZpY2F0
aW9uIG9mIE5vZGVMaXN0L0hUTUxDb2xsZWN0aW9uIGNsYXNzZXMuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxPcHRp
b25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXROYW1lZEl0ZW1z
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4Tm9kZUxpc3Q6Om9wYXF1ZVJvb3RGb3JHQyk6CisgICAgICAgICogZG9t
L0NoaWxkTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hpbGROb2RlTGlzdDo6Q2hp
bGROb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZE5vZGVMaXN0Ojpub2RlTWF0Y2hl
cyk6CisgICAgICAgICogZG9tL0NoaWxkTm9kZUxpc3QuaDoKKyAgICAgICAgKiBkb20vQ2xhc3NO
b2RlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc05vZGVMaXN0OjpDbGFzc05vZGVM
aXN0KToKKyAgICAgICAgKiBkb20vQ2xhc3NOb2RlTGlzdC5oOgorICAgICAgICAqIGRvbS9ET01B
bGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpyZWdpc3Rlck5vZGVMaXN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnVucmVnaXN0ZXJOb2RlTGlzdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChE
b2N1bWVudCk6CisgICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5oOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9M
aXZlTm9kZUxpc3QuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05v
ZGVMaXN0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkxpdmVOb2RlTGlzdEJhc2U6OnJvb3ROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxpdmVOb2RlTGlzdEJhc2U6OmludmFsaWRhdGVDYWNoZSk6
CisgICAgICAgIChXZWJDb3JlOjpMaXZlTm9kZUxpc3RCYXNlOjppbnZhbGlkYXRlSWROYW1lQ2Fj
aGVNYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkxpdmVOb2RlTGlzdEJhc2U6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkxpdmVOb2RlTGlzdDo6bmFtZWRJdGVtKToKKyAg
ICAgICAgKiBkb20vTGl2ZU5vZGVMaXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9EeW5hbWljTm9kZUxpc3QuaC4KKyAgICAgICAgKFdlYkNvcmU6OkxpdmVOb2RlTGlzdEJhc2U6
OkxpdmVOb2RlTGlzdEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6TGl2ZU5vZGVMaXN0QmFzZTo6
c2hvdWxkSW52YWxpZGF0ZVR5cGVPbkF0dHJpYnV0ZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMaXZlTm9kZUxpc3Q6OkxpdmVOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpMaXZlTm9k
ZUxpc3Q6On5MaXZlTm9kZUxpc3QpOgorICAgICAgICAoTGl2ZU5vZGVMaXN0KToKKyAgICAgICAg
KiBkb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWljcm9EYXRh
SXRlbUxpc3Q6Ok1pY3JvRGF0YUl0ZW1MaXN0KToKKyAgICAgICAgKiBkb20vTWljcm9EYXRhSXRl
bUxpc3QuaDoKKyAgICAgICAgKiBkb20vTmFtZU5vZGVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hbWVOb2RlTGlzdDo6TmFtZU5vZGVMaXN0KToKKyAgICAgICAgKiBkb20vTmFtZU5vZGVM
aXN0Lmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxk
SW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzRm9yQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL05vZGVMaXN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlTGlzdDo6aXNMaXZlTm9kZUxpc3QpOgorICAgICAgICAqIGRvbS9Ob2RlUmFy
ZURhdGEuaDoKKyAgICAgICAgKE5vZGVMaXN0c05vZGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVMaXN0c05vZGVEYXRhOjpyZW1vdmVDYWNoZVdpdGhBdG9taWNOYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjpyZW1vdmVDYWNoZVdpdGhOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjpyZW1vdmVDYWNoZVdpdGhRdWFsaWZpZWRO
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjphZG9wdFRyZWVTY29w
ZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UHJvcGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgICogZG9tL1By
b3BlcnR5Tm9kZUxpc3QuaDoKKyAgICAgICAgKiBkb20vVGFnTm9kZUxpc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGFnTm9kZUxpc3Q6OlRhZ05vZGVMaXN0KToKKyAgICAgICAgKiBkb20vVGFn
Tm9kZUxpc3QuaDoKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpIVE1MQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpMaXZlTm9kZUxpc3RCYXNlOjppdGVyYXRlRm9yTmV4dE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGl2ZU5vZGVMaXN0QmFzZTo6aXRlbUJlZm9yZU9yQWZ0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TGl2ZU5vZGVMaXN0QmFzZTo6aXRlbUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpM
aXZlTm9kZUxpc3RCYXNlOjppdGVtQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGl2ZU5vZGVM
aXN0QmFzZTo6aXNMYXN0SXRlbUNsb3NlclRoYW5MYXN0T3JDYWNoZWRJdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6OkxpdmVOb2RlTGlzdEJhc2U6OmlzRmlyc3RJdGVtQ2xvc2VyVGhhbkNhY2hlZEl0
ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TGl2ZU5vZGVMaXN0QmFzZTo6c2V0SXRlbUNhY2hlKToK
KyAgICAgICAgKFdlYkNvcmU6OkxpdmVOb2RlTGlzdEJhc2U6Omxlbmd0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpMaXZlTm9kZUxpc3RCYXNlOjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxpdmVO
b2RlTGlzdEJhc2U6Oml0ZW1CZWZvcmVPckFmdGVyQ2FjaGVkSXRlbSk6CisgICAgICAgICogaHRt
bC9IVE1MQ29sbGVjdGlvbi5oOgorICAgICAgICAqIGh0bWwvTGFiZWxzTm9kZUxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGFiZWxzTm9kZUxpc3Q6OkxhYmVsc05vZGVMaXN0KToKKyAgICAg
ICAgKiBodG1sL0xhYmVsc05vZGVMaXN0Lmg6CisgICAgICAgICogaHRtbC9SYWRpb05vZGVMaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvTm9kZUxpc3Q6OlJhZGlvTm9kZUxpc3QpOgor
ICAgICAgICAqIGh0bWwvUmFkaW9Ob2RlTGlzdC5oOgorCiAyMDEyLTExLTIyICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEzNTQ5Myk6IEhU
TUxDb2xsZWN0aW9uIGFuZCBEeW5hbWljTm9kZUxpc3QgaGF2ZSB0d28gdnRhYmxlIHBvaW50ZXJz
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTExNDYsNyArMTE0Niw2IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcAogICAg
IGRvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAogICAgIGRvbS9Eb2N1bWVudFR5
cGUuY3BwCi0gICAgZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAKICAgICBkb20vRWxlbWVudC5jcHAK
ICAgICBkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCiAgICAgZG9tL0VsZW1lbnRSYXJlRGF0
YS5jcHAKQEAgLTExNjgsNiArMTE2Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20v
SWNvblVSTC5jcHAKICAgICBkb20vSWRUYXJnZXRPYnNlcnZlci5jcHAKICAgICBkb20vSWRUYXJn
ZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcAorICAgIGRvbS9MaXZlTm9kZUxpc3QuY3BwCiAgICAgZG9t
L0tleWJvYXJkRXZlbnQuY3BwCiAgICAgZG9tL01lc3NhZ2VDaGFubmVsLmNwcAogICAgIGRvbS9N
ZXNzYWdlRXZlbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlz
aW9uIDEzNTY2NykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTI3NzIsOCArMjc3Miw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9E
T01TdHJpbmdNYXAuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RPTVRpbWVTdGFtcC5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
ZG9tL0R5bmFtaWNOb2RlTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50QXR0cmlidXRlRGF0YS5jcHAgXApAQCAtMjgyNSw2ICsyODIzLDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWRUYXJnZXRPYnNlcnZlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vTGl2ZU5vZGVMaXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0xpdmVOb2RlTGlz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmggXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0tleWJv
YXJkRXZlbnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDEzNTY2NykKKysrIFNvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTM4NCw3ICszODQsNiBAQCBT
T1VSQ0VTICs9IFwKICAgICBkb20vRE9NU3RyaW5nTGlzdC5jcHAgXAogICAgIGRvbS9ET01TdHJp
bmdNYXAuY3BwIFwKICAgICBkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAgXAotICAgIGRvbS9E
eW5hbWljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vRWxlbWVudC5jcHAgXAogICAgIGRvbS9FbGVt
ZW50QXR0cmlidXRlRGF0YS5jcHAgXAogICAgIGRvbS9FbGVtZW50UmFyZURhdGEuY3BwIFwKQEAg
LTQwNiw2ICs0MDUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vSWNvblVSTC5jcHAgXAogICAg
IGRvbS9JZFRhcmdldE9ic2VydmVyLmNwcCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdp
c3RyeS5jcHAgXAorICAgIGRvbS9MaXZlTm9kZUxpc3QuY3BwIFwKICAgICBkb20vS2V5Ym9hcmRF
dmVudC5jcHAgXAogICAgIGRvbS9NZXNzYWdlQ2hhbm5lbC5jcHAgXAogICAgIGRvbS9NZXNzYWdl
RXZlbnQuY3BwIFwKQEAgLTE1NjIsNyArMTU2Miw2IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9E
T01TdHJpbmdNYXAuaCBcCiAgICAgZG9tL0RPTVRpbWVTdGFtcC5oIFwKICAgICBkb20vRGF0YXNl
dERPTVN0cmluZ01hcC5oIFwKLSAgICBkb20vRHluYW1pY05vZGVMaXN0LmggXAogICAgIGRvbS9F
bGVtZW50LmggXAogICAgIGRvbS9FbGVtZW50U2hhZG93LmggXAogICAgIGRvbS9FbGVtZW50QXR0
cmlidXRlRGF0YS5oIFwKQEAgLTE1ODEsNiArMTU4MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRv
bS9HZXN0dXJlRXZlbnQuaCBcCiAgICAgZG9tL0lkVGFyZ2V0T2JzZXJ2ZXIuaCBcCiAgICAgZG9t
L0lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oIFwKKyAgICBkb20vTGl2ZU5vZGVMaXN0LmggXAog
ICAgIGRvbS9LZXlib2FyZEV2ZW50LmggXAogICAgIGRvbS9NZXNzYWdlQ2hhbm5lbC5oIFwKICAg
ICBkb20vTWVzc2FnZUV2ZW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTM1
NjY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0z
ODAzLDggKzM4MDMsNiBAQAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudFBhcnNlci5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL0RvY3VtZW50VHlwZS5jcHAnLAotICAgICAgICAgICAgJ2RvbS9EeW5hbWlj
Tm9kZUxpc3QuY3BwJywKLSAgICAgICAgICAgICdkb20vRHluYW1pY05vZGVMaXN0LmgnLAogICAg
ICAgICAgICAgJ2RvbS9FbGVtZW50U2hhZG93LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0VsZW1l
bnQuY3BwJywKICAgICAgICAgICAgICdkb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwJywKQEAg
LTM4NDUsNiArMzg0Myw4IEBACiAgICAgICAgICAgICAnZG9tL0lkVGFyZ2V0T2JzZXJ2ZXJSZWdp
c3RyeS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9JZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaCcs
CiAgICAgICAgICAgICAnZG9tL0tleWJvYXJkRXZlbnQuY3BwJywKKyAgICAgICAgICAgICdkb20v
TGl2ZU5vZGVMaXN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL0xpdmVOb2RlTGlzdC5oJywKICAg
ICAgICAgICAgICdkb20vTWVzc2FnZUNoYW5uZWwuY3BwJywKICAgICAgICAgICAgICdkb20vTWVz
c2FnZUNoYW5uZWwuaCcsCiAgICAgICAgICAgICAnZG9tL01lc3NhZ2VFdmVudC5jcHAnLApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NTY0LDggKzU1NjQsOCBAQAogCQlC
Qzc3MkUxMzEzMzE2MjBDMDAxRUM5Q0UgLyogQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJFMTIxMzMxNjIw
QzAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3MkUxNjEzMzE2MkMyMDAxRUM5Q0Ug
LyogQ1NTTGluZUJveENvbnRhaW5WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkUxNTEzMzE2MkMyMDAxRUM5Q0UgLyogQ1NTTGluZUJv
eENvbnRhaW5WYWx1ZS5jcHAgKi87IH07CiAJCUJDN0Y0NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJ
bWFnZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDN0ZBNjIwMEQxRjBD
QkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3RkE2MUUwRDFGMENCRDAwREIyMkE5IC8qIER5bmFt
aWNOb2RlTGlzdC5jcHAgKi87IH07Ci0JCUJDN0ZBNjIxMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5h
bWljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDN0ZBNjFGMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlCQzdGQTYyMDBEMUYw
Q0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0ZBNjFFMEQxRjBDQkQwMERCMjJBOSAvKiBMaXZlTm9k
ZUxpc3QuY3BwICovOyB9OworCQlCQzdGQTYyMTBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzdG
QTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3RkE2MkQwRDFGMEVGRjAwREIyMkE5
IC8qIFN0YXRpY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzdGQTYyQjBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCAq
LzsgfTsKIAkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDN0ZBNjJDMEQx
RjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgKi87IH07CiAJCUJDODBDOTg3MENE
Mjk0RUUwMEEwQjdCMyAvKiBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODBDOTg1MENEMjk0RUUwMEEwQjdC
MyAvKiBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCAqLzsgfTsKQEAgLTEyOTQwLDggKzEyOTQw
LDggQEAKIAkJQkM3NzJFMTUxMzMxNjJDMjAwMUVDOUNFIC8qIENTU0xpbmVCb3hDb250YWluVmFs
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTTGluZUJveENv
bnRhaW5WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDN0IyQUY4MDQ1
MDgyNDEwMEE4MDAwRiAvKiBTY3JvbGxiYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCQzdGNDRBNzBCOUUzMjRFMDBB
OUQwODEgLyogSW1hZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzdGQTYx
RTBEMUYwQ0JEMDBEQjIyQTkgLyogRHluYW1pY05vZGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IER5bmFtaWNOb2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDN0ZBNjFGMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxp
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHluYW1pY05vZGVMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDN0ZBNjFFMEQxRjBDQkQwMERCMjJBOSAv
KiBMaXZlTm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGl2ZU5vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM3RkE2MUYw
RDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMaXZlTm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM3RkE2MkIwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YXRpY05vZGVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDN0ZBNjJDMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGF0aWNOb2RlTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDODBDOTg1MENEMjk0RUUwMEEwQjdC
MyAvKiBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxOTAyLDggKzIxOTAyLDggQEAKIAkJCQlCQzY0NjQwODExRDdGMzA0
MDA2NDU1QjAgLyogRE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJQkM2NDY0NzkxMUQ4MDBDRDAwNjQ1
NUIwIC8qIERPTVN0cmluZ01hcC5pZGwgKi8sCiAJCQkJMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIz
IC8qIERPTVRpbWVTdGFtcC5oICovLAotCQkJCUJDN0ZBNjFFMEQxRjBDQkQwMERCMjJBOSAvKiBE
eW5hbWljTm9kZUxpc3QuY3BwICovLAotCQkJCUJDN0ZBNjFGMEQxRjBDQkQwMERCMjJBOSAvKiBE
eW5hbWljTm9kZUxpc3QuaCAqLywKKwkJCQlCQzdGQTYxRTBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2
ZU5vZGVMaXN0LmNwcCAqLywKKwkJCQlCQzdGQTYxRjBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5v
ZGVMaXN0LmggKi8sCiAJCQkJQThDNEE3RjYwOUQ1NjMyNzAwMDNBQzhEIC8qIEVsZW1lbnQuY3Bw
ICovLAogCQkJCUE4QzRBN0Y1MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmggKi8sCiAJCQkJ
OTNFRUMxRUEwOUMyODc3NzAwQzUxNUQxIC8qIEVsZW1lbnQuaWRsICovLApAQCAtMjI0ODMsNyAr
MjI0ODMsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0g
KAogCQkJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBFeGNsdXNpb25TaGFwZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQzdGQTYyMTBEMUYwQ0JEMDBEQjIyQTkgLyogRHluYW1pY05v
ZGVMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzdGQTYyMTBEMUYwQ0JEMDBEQjIyQTkgLyog
TGl2ZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEQTA5NzM3NEY2MDBENzQ0
NjMgLyogSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlE
ODA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTFNlbGVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MTM2OURDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjgxMiw3ICsyNjgxMiw3IEBACiAJCQkJQTdDRkIzRDUwQjdFRDExODAw
NzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODc3MERCMTI0
MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5
ODc3MTUzMTI0M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQkM3RkE2MjAwRDFGMENCRDAwREIyMkE5IC8qIER5bmFtaWNOb2RlTGlzdC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCQzdGQTYyMDBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENkVEMkM3MTM2QjhFNjYwMDNDRjA3MiAvKiBE
eW5hbWljc0NvbXByZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTYxMzdCNjUz
QjAwMDA4RENFIC8qIER5bmFtaWNzQ29tcHJlc3Nvcktlcm5lbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRDZFRDJDMzEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9u
IDEzNTY2NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMg
SlNWYWx1ZSBnZXROYW1lZEl0ZW1zKEV4ZWNTdGF0ZSogCiAgICAgaWYgKG5hbWVkSXRlbXMuc2l6
ZSgpID09IDEpCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24tPmdsb2JhbE9i
amVjdCgpLCBuYW1lZEl0ZW1zWzBdLmdldCgpKTsKIAotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVj
aWZpZXMgdGhhdCB0aGlzIHNob3VsZCBiZSBhIER5bmFtaWNOb2RlTGlzdC4KKyAgICAvLyBGSVhN
RTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBzaG91bGQgYmUgYSBMaXZlTm9kZUxpc3QuCiAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgY29sbGVjdGlvbi0+Z2xvYmFsT2JqZWN0KCksIFN0YXRpY05v
ZGVMaXN0OjphZG9wdChuYW1lZEl0ZW1zKS5nZXQoKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAxMzU2
NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkpTTm9kZUxpc3QuaCIKIAotI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgogI2lu
Y2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgIkxpdmVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5v
ZGUuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgpAQCAtNDEsOSArNDEsOSBAQCBib29sIEpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhCiAgICAgSlNOb2RlTGlzdCoganNOb2RlTGlzdCA9IGpzQ2FzdDxKU05vZGVMaXN0
Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKICAgICBpZiAoIWpzTm9kZUxpc3QtPmhhc0N1c3Rv
bVByb3BlcnRpZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghanNOb2RlTGlz
dC0+aW1wbCgpLT5pc0R5bmFtaWNOb2RlTGlzdCgpKQorICAgIGlmICghanNOb2RlTGlzdC0+aW1w
bCgpLT5pc0xpdmVOb2RlTGlzdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJu
IHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3Qoc3RhdGljX2Nhc3Q8RHluYW1pY05vZGVM
aXN0Kj4oanNOb2RlTGlzdC0+aW1wbCgpKS0+b3duZXJOb2RlKCkpKTsKKyAgICByZXR1cm4gdmlz
aXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdChzdGF0aWNfY2FzdDxMaXZlTm9kZUxpc3QqPihq
c05vZGVMaXN0LT5pbXBsKCkpLT5vd25lck5vZGUoKSkpOwogfQogCiBib29sIEpTTm9kZUxpc3Q6
OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBOb2RlTGlzdCogaW1wbCwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5vZGVMaXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhOb2RlTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDEzNTY2NykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlY4Tm9kZUxpc3QuaCIgCiAKLSNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNp
bmNsdWRlICJMaXZlTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUg
IlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCkBAIC02NCw5ICs2NCw5
IEBAIHZvaWQqIFY4Tm9kZUxpc3Q6Om9wYXF1ZVJvb3RGb3JHQyh2b2lkKiAKIHsKICAgICBBU1NF
UlQoVjhOb2RlTGlzdDo6SGFzSW5zdGFuY2Uod3JhcHBlcikpOwogICAgIE5vZGVMaXN0KiBpbXBs
ID0gc3RhdGljX2Nhc3Q8Tm9kZUxpc3QqPihvYmplY3QpOwotICAgIGlmICghaW1wbC0+aXNEeW5h
bWljTm9kZUxpc3QoKSkKKyAgICBpZiAoIWltcGwtPmlzTGl2ZU5vZGVMaXN0KCkpCiAgICAgICAg
IHJldHVybiBvYmplY3Q7Ci0gICAgTm9kZSogb3duZXIgPSBzdGF0aWNfY2FzdDxEeW5hbWljTm9k
ZUxpc3QqPihpbXBsKS0+b3duZXJOb2RlKCk7CisgICAgTm9kZSogb3duZXIgPSBzdGF0aWNfY2Fz
dDxMaXZlTm9kZUxpc3QqPihpbXBsKS0+b3duZXJOb2RlKCk7CiAgICAgaWYgKCFvd25lcikKICAg
ICAgICAgcmV0dXJuIG9iamVjdDsKICAgICByZXR1cm4gVjhHQ0NvbnRyb2xsZXI6Om9wYXF1ZVJv
b3RGb3JHQyhvd25lcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGROb2RlTGlzdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZUxpc3QuY3BwCShy
ZXZpc2lvbiAxMzU2NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGROb2RlTGlzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Q2hpbGROb2RlTGlzdDo6Q2hpbGROb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCi0gICAg
OiBEeW5hbWljTm9kZUxpc3Qobm9kZSwgQ2hpbGROb2RlTGlzdFR5cGUsIE5vZGVMaXN0SXNSb290
ZWRBdE5vZGUsIERvTm90SW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlcykKKyAgICA6IExpdmVO
b2RlTGlzdChub2RlLCBDaGlsZE5vZGVMaXN0VHlwZSwgRG9Ob3RJbnZhbGlkYXRlT25BdHRyaWJ1
dGVDaGFuZ2VzKQogewogfQogCkBAIC0zOSw3ICszOSw3IEBAIENoaWxkTm9kZUxpc3Q6On5DaGls
ZE5vZGVMaXN0KCkKIAogYm9vbCBDaGlsZE5vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0
ZXN0Tm9kZSkgY29uc3QKIHsKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIG9u
bHkgYnkgRHluYW1pY05vZGVMaXN0OjpuYW1lZEl0ZW0sCisgICAgLy8gVGhpcyBmdW5jdGlvbiB3
aWxsIGJlIGNhbGxlZCBvbmx5IGJ5IExpdmVOb2RlTGlzdDo6bmFtZWRJdGVtLAogICAgIC8vIGZv
ciBhbiBlbGVtZW50IHRoYXQgd2FzIGxvY2F0ZWQgd2l0aCBnZXRFbGVtZW50QnlJZC4KICAgICBy
ZXR1cm4gdGVzdE5vZGUtPnBhcmVudE5vZGUoKSA9PSByb290Tm9kZSgpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vQ2hpbGROb2RlTGlzdC5oCShyZXZpc2lvbiAxMzU2NjcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vQ2hpbGROb2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMiArMjQsMTIg
QEAKICNpZm5kZWYgQ2hpbGROb2RlTGlzdF9oCiAjZGVmaW5lIENoaWxkTm9kZUxpc3RfaAogCi0j
aW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiTGl2ZU5vZGVMaXN0LmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAg
Y2xhc3MgQ2hpbGROb2RlTGlzdCA6IHB1YmxpYyBEeW5hbWljTm9kZUxpc3QgeworICAgIGNsYXNz
IENoaWxkTm9kZUxpc3QgOiBwdWJsaWMgTGl2ZU5vZGVMaXN0IHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENoaWxkTm9kZUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE5v
ZGU+IHJvb3ROb2RlKQogICAgICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ2xhc3NO
b2RlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NsYXNzTm9kZUxp
c3QuY3BwCShyZXZpc2lvbiAxMzU2NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ2xhc3NOb2Rl
TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogQ2xhc3NOb2RlTGlzdDo6Q2xhc3NOb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IHJv
b3ROb2RlLCBjb25zdCBTdHJpbmcmIGNsYXNzTmFtZXMpCi0gICAgOiBEeW5hbWljU3VidHJlZU5v
ZGVMaXN0KHJvb3ROb2RlLCBDbGFzc05vZGVMaXN0VHlwZSwgSW52YWxpZGF0ZU9uQ2xhc3NBdHRy
Q2hhbmdlKQorICAgIDogTGl2ZU5vZGVMaXN0KHJvb3ROb2RlLCBDbGFzc05vZGVMaXN0VHlwZSwg
SW52YWxpZGF0ZU9uQ2xhc3NBdHRyQ2hhbmdlKQogICAgICwgbV9jbGFzc05hbWVzKGNsYXNzTmFt
ZXMsIGRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQogICAgICwgbV9vcmlnaW5hbENsYXNzTmFt
ZXMoY2xhc3NOYW1lcykKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DbGFzc05vZGVMaXN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NsYXNzTm9kZUxpc3QuaAkocmV2
aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NsYXNzTm9kZUxpc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMzAsMTMgKzMwLDEzIEBACiAjaWZuZGVmIENsYXNzTm9kZUxpc3RfaAog
I2RlZmluZSBDbGFzc05vZGVMaXN0X2gKIAotI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgor
I2luY2x1ZGUgIkxpdmVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJT
cGFjZVNwbGl0U3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENs
YXNzTm9kZUxpc3QgOiBwdWJsaWMgRHluYW1pY1N1YnRyZWVOb2RlTGlzdCB7CisgICAgY2xhc3Mg
Q2xhc3NOb2RlTGlzdCA6IHB1YmxpYyBMaXZlTm9kZUxpc3QgewogICAgIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q2xhc3NOb2RlTGlzdD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9k
ZT4gcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgY2xhc3NOYW1lcykKICAgICAgICAgewpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCShyZXZpc2lvbiAxMzU2NjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw2
IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCIKICNpbmNsdWRlICJEb2N1bWVu
dFBhcnNlci5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmNwcCIKLSNpbmNsdWRlICJEeW5h
bWljTm9kZUxpc3QuY3BwIgogI2luY2x1ZGUgIkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkVsZW1l
bnRBdHRyaWJ1dGVEYXRhLmNwcCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmNwcCIKQEAgLTg3
LDYgKzg2LDcgQEAKICNpbmNsdWRlICJJZFRhcmdldE9ic2VydmVyLmNwcCIKICNpbmNsdWRlICJJ
ZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuY3Bw
IgorI2luY2x1ZGUgIkxpdmVOb2RlTGlzdC5jcHAiCiAjaW5jbHVkZSAiTWVzc2FnZUNoYW5uZWwu
Y3BwIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5jcHAiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQu
Y3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxMzU2NjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDU5LDcg
KzM0NTksNyBAQCB2b2lkIERvY3VtZW50OjpzZXRDU1NUYXJnZXQoRWxlbWVudCogbikKICAgICB9
CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShEeW5hbWljTm9kZUxp
c3RDYWNoZUJhc2UqIGxpc3QpCit2b2lkIERvY3VtZW50OjpyZWdpc3Rlck5vZGVMaXN0Q2FjaGUo
TGl2ZU5vZGVMaXN0QmFzZSogbGlzdCkKIHsKICAgICBpZiAobGlzdC0+aGFzSWROYW1lQ2FjaGUo
KSkKICAgICAgICAgbV9ub2RlTGlzdENvdW50c1tJbnZhbGlkYXRlT25JZE5hbWVBdHRyQ2hhbmdl
XSsrOwpAQCAtMzQ2OCw3ICszNDY4LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVnaXN0ZXJOb2RlTGlz
dENhY2hlKER5bgogICAgICAgICBtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LmFkZChsaXN0
KTsKIH0KIAotdm9pZCBEb2N1bWVudDo6dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUoRHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlKiBsaXN0KQordm9pZCBEb2N1bWVudDo6dW5yZWdpc3Rlck5vZGVMaXN0
Q2FjaGUoTGl2ZU5vZGVMaXN0QmFzZSogbGlzdCkKIHsKICAgICBpZiAobGlzdC0+aGFzSWROYW1l
Q2FjaGUoKSkKICAgICAgICAgbV9ub2RlTGlzdENvdW50c1tJbnZhbGlkYXRlT25JZE5hbWVBdHRy
Q2hhbmdlXS0tOwpAQCAtNDMzNCw3ICs0MzM0LDcgQEAgYm9vbCBEb2N1bWVudDo6aGFzU1ZHUm9v
dE5vZGUoKSBjb25zdAogfQogI2VuZGlmCiAKLS8vIEZJWE1FOiBUaGlzIGNhY2hpbmcgbWVjaGFu
aXNtIHNob3VsZCBiZSBtZXJnZWQgdGhhdCBvZiBEeW5hbWljTm9kZUxpc3QgaW4gTm9kZVJhcmVE
YXRhLgorLy8gRklYTUU6IFRoaXMgY2FjaGluZyBtZWNoYW5pc20gc2hvdWxkIGJlIG1lcmdlZCB0
aGF0IG9mIExpdmVOb2RlTGlzdCBpbiBOb2RlUmFyZURhdGEuCiBQYXNzUmVmUHRyPEhUTUxDb2xs
ZWN0aW9uPiBEb2N1bWVudDo6Y2FjaGVkQ29sbGVjdGlvbihDb2xsZWN0aW9uVHlwZSB0eXBlKQog
ewogICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4odHlwZSkgPCBOdW1Vbm5hbWVkRG9j
dW1lbnRDYWNoZWRUeXBlcyk7CkBAIC00NDI1LDcgKzQ0MjUsNyBAQCBQYXNzUmVmUHRyPEhUTUxD
b2xsZWN0aW9uPiBEb2N1bWVudDo6ZG9jCiAgICAgcmV0dXJuIGNvbGxlY3Rpb24ucmVsZWFzZSgp
OwogfQogCi0vLyBGSVhNRTogVGhpcyBjYWNoaW5nIG1lY2hhbmlzbSBzaG91bGQgYmUgbWVyZ2Vk
IHRoYXQgb2YgRHluYW1pY05vZGVMaXN0IGluIE5vZGVSYXJlRGF0YS4KKy8vIEZJWE1FOiBUaGlz
IGNhY2hpbmcgbWVjaGFuaXNtIHNob3VsZCBiZSBtZXJnZWQgdGhhdCBvZiBMaXZlTm9kZUxpc3Qg
aW4gTm9kZVJhcmVEYXRhLgogdm9pZCBEb2N1bWVudDo6cmVtb3ZlV2luZG93TmFtZWRJdGVtQ2Fj
aGUoSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkK
IHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbGxlY3Rpb24sIG1fd2luZG93TmFtZWRJdGVtQ29sbGVj
dGlvbnMuZ2V0KG5hbWUpID09IGNvbGxlY3Rpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJ
KHJldmlzaW9uIDEzNTY2NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04MCw3ICs4MCw2IEBAIGNsYXNzIERvY3VtZW50UGFyc2VyOwogY2xhc3Mg
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNz
IERvY3VtZW50V2Vha1JlZmVyZW5jZTsKLWNsYXNzIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTsK
IGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFbGVtZW50QXR0cmlidXRlRGF0YTsKIGNsYXNzIEVudGl0
eVJlZmVyZW5jZTsKQEAgLTEwNiw2ICsxMDUsNyBAQCBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xh
c3MgSW50UG9pbnQ7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExheW91dFJlY3Q7CitjbGFz
cyBMaXZlTm9kZUxpc3RCYXNlOwogY2xhc3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3MgSlNOb2Rl
OwogY2xhc3MgTG9jYWxlOwpAQCAtNzE4LDggKzcxOCw4IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c1BlbmRpbmdGb3JjZWRTdHlsZVJlY2FsYygpIGNvbnN0OwogICAgIHZvaWQgc3R5bGVSZWNhbGNU
aW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwogCi0gICAgdm9pZCByZWdpc3Rlck5vZGVMaXN0
Q2FjaGUoRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyTm9k
ZUxpc3RDYWNoZShEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UqKTsKKyAgICB2b2lkIHJlZ2lzdGVy
Tm9kZUxpc3RDYWNoZShMaXZlTm9kZUxpc3RCYXNlKik7CisgICAgdm9pZCB1bnJlZ2lzdGVyTm9k
ZUxpc3RDYWNoZShMaXZlTm9kZUxpc3RCYXNlKik7CiAgICAgYm9vbCBzaG91bGRJbnZhbGlkYXRl
Tm9kZUxpc3RDYWNoZXMoY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0ck5hbWUgPSAwKSBjb25zdDsK
ICAgICB2b2lkIGludmFsaWRhdGVOb2RlTGlzdENhY2hlcyhjb25zdCBRdWFsaWZpZWROYW1lKiBh
dHRyTmFtZSk7CiAKQEAgLTE0MDcsNyArMTQwNyw3IEBAIHByaXZhdGU6CiAKICAgICBJbmhlcml0
ZWRCb29sIG1fZGVzaWduTW9kZTsKIAotICAgIEhhc2hTZXQ8RHluYW1pY05vZGVMaXN0Q2FjaGVC
YXNlKj4gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1bWVudDsKKyAgICBIYXNoU2V0PExpdmVOb2Rl
TGlzdEJhc2UqPiBtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50OwogICAgIHVuc2lnbmVkIG1f
bm9kZUxpc3RDb3VudHNbbnVtTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlc107CiAKICAgICBIVE1M
Q29sbGVjdGlvbiogbV9jb2xsZWN0aW9uc1tOdW1Vbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlc107
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAkocmV2aXNpb24gMTM1
NjY3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBL
bm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0
byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIg
KG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAw
OCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCi0jaW5j
bHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiUHJvcGVydHlOb2Rl
TGlzdC5oIgotI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1Ob2RlKiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJvb3RO
b2RlKCkgY29uc3QKLXsKLSAgICBpZiAoaXNSb290ZWRBdERvY3VtZW50KCkgJiYgbV9vd25lck5v
ZGUtPmluRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVudCgp
OwotCi0jaWYgRU5BQkxFKE1JQ1JPREFUQSkKLSAgICBpZiAobV9yb290VHlwZSA9PSBOb2RlTGlz
dElzUm9vdGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0ciAmJiB0b0VsZW1lbnQob3du
ZXJOb2RlKCkpLT5mYXN0SGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXJlZkF0dHIpKSB7Ci0g
ICAgICAgIGlmIChtX293bmVyTm9kZS0+aW5Eb2N1bWVudCgpKQotICAgICAgICAgICAgcmV0dXJu
IG1fb3duZXJOb2RlLT5kb2N1bWVudCgpOwotCi0gICAgICAgIE5vZGUqIHJvb3QgPSBtX293bmVy
Tm9kZS5nZXQoKTsKLSAgICAgICAgd2hpbGUgKE5vZGUqIHBhcmVudCA9IHJvb3QtPnBhcmVudE5v
ZGUoKSkKLSAgICAgICAgICAgIHJvb3QgPSBwYXJlbnQ7Ci0gICAgICAgIHJldHVybiByb290Owot
ICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIG1fb3duZXJOb2RlLmdldCgpOwotfQotCi12b2lk
IER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6aW52YWxpZGF0ZUNhY2hlKCkgY29uc3QKLXsKLSAg
ICBtX2NhY2hlZEl0ZW0gPSAwOwotICAgIG1faXNMZW5ndGhDYWNoZVZhbGlkID0gZmFsc2U7Ci0g
ICAgbV9pc0l0ZW1DYWNoZVZhbGlkID0gZmFsc2U7Ci0gICAgbV9pc05hbWVDYWNoZVZhbGlkID0g
ZmFsc2U7Ci0gICAgbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgPSBmYWxzZTsKLSAgICBp
ZiAoaXNOb2RlTGlzdCh0eXBlKCkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBIVE1M
Q29sbGVjdGlvbiogY2FjaGVCYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTENvbGxlY3Rpb24q
Pih0aGlzKTsKLSAgICBjYWNoZUJhc2UtPm1faWRDYWNoZS5jbGVhcigpOwotICAgIGNhY2hlQmFz
ZS0+bV9uYW1lQ2FjaGUuY2xlYXIoKTsKLSAgICBjYWNoZUJhc2UtPm1fY2FjaGVkRWxlbWVudHNB
cnJheU9mZnNldCA9IDA7Ci0KLSNpZiBFTkFCTEUoTUlDUk9EQVRBKQotICAgIC8vIEZJWE1FOiBU
aGVyZSBzaG91bGQgYmUgbW9yZSBnZW5lcmljIG1lY2hhbmlzbSB0byBjbGVhciBjYWNoZXMgaW4g
c3ViY2xhc3Nlcy4KLSAgICBpZiAodHlwZSgpID09IEl0ZW1Qcm9wZXJ0aWVzKQotICAgICAgICBz
dGF0aWNfY2FzdDxjb25zdCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24qPih0aGlzKS0+aW52YWxp
ZGF0ZUNhY2hlKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6
OmludmFsaWRhdGVJZE5hbWVDYWNoZU1hcHMoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNJZE5h
bWVDYWNoZSgpKTsKLSAgICBjb25zdCBIVE1MQ29sbGVjdGlvbiogY2FjaGVCYXNlID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgSFRNTENvbGxlY3Rpb24qPih0aGlzKTsKLSAgICBjYWNoZUJhc2UtPm1faWRD
YWNoZS5jbGVhcigpOwotICAgIGNhY2hlQmFzZS0+bV9uYW1lQ2FjaGUuY2xlYXIoKTsKLX0KLQot
dm9pZCBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Ci17Ci0gICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwot
ICAgIE5vZGVMaXN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKLSAgICBp
bmZvLmFkZE1lbWJlcihtX293bmVyTm9kZSk7Ci0gICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2Nh
Y2hlZEl0ZW0pOwotfQotCi1Ob2RlKiBEeW5hbWljTm9kZUxpc3Q6Om5hbWVkSXRlbShjb25zdCBB
dG9taWNTdHJpbmcmIGVsZW1lbnRJZCkgY29uc3QKLXsKLSAgICBOb2RlKiByb290Tm9kZSA9IHRo
aXMtPnJvb3ROb2RlKCk7Ci0KLSAgICBpZiAocm9vdE5vZGUtPmluRG9jdW1lbnQoKSkgewotI2lm
IEVOQUJMRShNSUNST0RBVEEpCi0gICAgICAgIGlmICh0eXBlKCkgPT0gUHJvcGVydHlOb2RlTGlz
dFR5cGUpCi0gICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBQcm9wZXJ0eU5vZGVMaXN0Kj4o
dGhpcyktPnVwZGF0ZVJlZkVsZW1lbnRzKCk7Ci0jZW5kaWYKLQotICAgICAgICBFbGVtZW50KiBl
bGVtZW50ID0gcm9vdE5vZGUtPnRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQp
OwotICAgICAgICBpZiAoZWxlbWVudCAmJiBub2RlTWF0Y2hlcyhlbGVtZW50KSAmJiBlbGVtZW50
LT5pc0Rlc2NlbmRhbnRPZihyb290Tm9kZSkpCi0gICAgICAgICAgICByZXR1cm4gZWxlbWVudDsK
LSAgICAgICAgaWYgKCFlbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIC8v
IEluIHRoZSBjYXNlIG9mIG11bHRpcGxlIG5vZGVzIHdpdGggdGhlIHNhbWUgbmFtZSwganVzdCBm
YWxsIHRocm91Z2guCi0gICAgfQotCi0gICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpcy0+bGVuZ3Ro
KCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
IE5vZGUqIG5vZGUgPSBpdGVtKGkpOwotICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJv
YmFibHkgYmUgdXNpbmcgZ2V0SWRBdHRyaWJ1dGUgaW5zdGVhZCBvZiBpZEZvclN0eWxlUmVzb2x1
dGlvbi4KLSAgICAgICAgaWYgKG5vZGUtPmhhc0lEKCkgJiYgc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KG5vZGUpLT5pZEZvclN0eWxlUmVzb2x1dGlvbigpID09IGVsZW1lbnRJZCkKLSAgICAgICAgICAg
IHJldHVybiBub2RlOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCShyZXZpc2lv
biAxMzU2NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVmIER5bmFtaWNOb2RlTGlz
dF9oCi0jZGVmaW5lIER5bmFtaWNOb2RlTGlzdF9oCi0KLSNpbmNsdWRlICJDb2xsZWN0aW9uVHlw
ZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5j
bHVkZSAiTm9kZUxpc3QuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBFbGVtZW50OwotCi1l
bnVtIE5vZGVMaXN0Um9vdFR5cGUgewotICAgIE5vZGVMaXN0SXNSb290ZWRBdE5vZGUsCi0gICAg
Tm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQsCi0gICAgTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1l
bnRJZk93bmVySGFzSXRlbXJlZkF0dHIsCi19OwotCi0vLyBGSVhNRTogQ2FjaGVCYXNlIGlzIGEg
YmFkIHBvc3RmaXggZm9yIHRoaXMgY2xhc3MgdGhhdCBub3cgaW5oZXJpdHMgZnJvbSBOb2RlTGlz
dC4gUmVuYW1lIGl0IHRvIER5bmFtaWNOb2RlTGlzdEJhc2UuCi1jbGFzcyBEeW5hbWljTm9kZUxp
c3RDYWNoZUJhc2UgOiBwdWJsaWMgTm9kZUxpc3QgewotcHVibGljOgotICAgIGVudW0gSXRlbUFm
dGVyT3ZlcnJpZGVUeXBlIHsKLSAgICAgICAgT3ZlcnJpZGVzSXRlbUFmdGVyLAotICAgICAgICBE
b2VzTm90T3ZlcnJpZGVJdGVtQWZ0ZXIsCi0gICAgfTsKLQotICAgIER5bmFtaWNOb2RlTGlzdENh
Y2hlQmFzZShOb2RlKiBvd25lck5vZGUsIE5vZGVMaXN0Um9vdFR5cGUgcm9vdFR5cGUsIE5vZGVM
aXN0SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlLAotICAgICAgICBib29sIHNob3Vs
ZE9ubHlJbmNsdWRlRGlyZWN0Q2hpbGRyZW4sIENvbGxlY3Rpb25UeXBlIGNvbGxlY3Rpb25UeXBl
LCBJdGVtQWZ0ZXJPdmVycmlkZVR5cGUgaXRlbUFmdGVyT3ZlcnJpZGVUeXBlKQotICAgICAgICA6
IG1fb3duZXJOb2RlKG93bmVyTm9kZSkKLSAgICAgICAgLCBtX2NhY2hlZEl0ZW0oMCkKLSAgICAg
ICAgLCBtX2lzTGVuZ3RoQ2FjaGVWYWxpZChmYWxzZSkKLSAgICAgICAgLCBtX2lzSXRlbUNhY2hl
VmFsaWQoZmFsc2UpCi0gICAgICAgICwgbV9yb290VHlwZShyb290VHlwZSkKLSAgICAgICAgLCBt
X2ludmFsaWRhdGlvblR5cGUoaW52YWxpZGF0aW9uVHlwZSkKLSAgICAgICAgLCBtX3Nob3VsZE9u
bHlJbmNsdWRlRGlyZWN0Q2hpbGRyZW4oc2hvdWxkT25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbikK
LSAgICAgICAgLCBtX2lzTmFtZUNhY2hlVmFsaWQoZmFsc2UpCi0gICAgICAgICwgbV9jb2xsZWN0
aW9uVHlwZShjb2xsZWN0aW9uVHlwZSkKLSAgICAgICAgLCBtX292ZXJyaWRlc0l0ZW1BZnRlcihp
dGVtQWZ0ZXJPdmVycmlkZVR5cGUgPT0gT3ZlcnJpZGVzSXRlbUFmdGVyKQotICAgICAgICAsIG1f
aXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKGZhbHNlKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fcm9vdFR5cGUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJvb3RUeXBlKSk7Ci0gICAgICAg
IEFTU0VSVChtX2ludmFsaWRhdGlvblR5cGUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGludmFs
aWRhdGlvblR5cGUpKTsKLSAgICAgICAgQVNTRVJUKG1fY29sbGVjdGlvblR5cGUgPT0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGNvbGxlY3Rpb25UeXBlKSk7Ci0gICAgICAgIEFTU0VSVCghbV9vdmVy
cmlkZXNJdGVtQWZ0ZXIgfHwgIWlzTm9kZUxpc3QoY29sbGVjdGlvblR5cGUpKTsKLSAgICB9Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OwotCi0gICAgLy8gRE9NIEFQSQotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIG9mZnNldCkgY29u
c3QgT1ZFUlJJREU7Ci0KLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaGFzSWROYW1lQ2FjaGUoKSBj
b25zdCB7IHJldHVybiAhaXNOb2RlTGlzdCh0eXBlKCkpOyB9Ci0gICAgQUxXQVlTX0lOTElORSBi
b29sIGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdFR5cGUgPT0gTm9k
ZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQgfHwgbV9yb290VHlwZSA9PSBOb2RlTGlzdElzUm9vdGVk
QXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0cjsgfQotICAgIEFMV0FZU19JTkxJTkUgTm9k
ZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxOb2RlTGlzdEludmFsaWRhdGlvblR5cGU+KG1faW52YWxpZGF0aW9uVHlwZSk7
IH0KLSAgICBBTFdBWVNfSU5MSU5FIENvbGxlY3Rpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxDb2xsZWN0aW9uVHlwZT4obV9jb2xsZWN0aW9uVHlwZSk7IH0KLSAgICBO
b2RlKiBvd25lck5vZGUoKSBjb25zdCB7IHJldHVybiBtX293bmVyTm9kZS5nZXQoKTsgfQotICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBpbnZhbGlkYXRlQ2FjaGUoY29uc3QgUXVhbGlmaWVkTmFtZSog
YXR0ck5hbWUpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIWF0dHJOYW1lIHx8IHNob3VsZElu
dmFsaWRhdGVUeXBlT25BdHRyaWJ1dGVDaGFuZ2UoaW52YWxpZGF0aW9uVHlwZSgpLCAqYXR0ck5h
bWUpKQotICAgICAgICAgICAgaW52YWxpZGF0ZUNhY2hlKCk7Ci0gICAgICAgIGVsc2UgaWYgKGhh
c0lkTmFtZUNhY2hlKCkgJiYgKCphdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmlkQXR0ciB8fCAqYXR0
ck5hbWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cikpCi0gICAgICAgICAgICBpbnZhbGlkYXRlSWRO
YW1lQ2FjaGVNYXBzKCk7Ci0gICAgfQotICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlKCkgY29uc3Q7
Ci0gICAgdm9pZCBpbnZhbGlkYXRlSWROYW1lQ2FjaGVNYXBzKCkgY29uc3Q7Ci0KLSAgICBzdGF0
aWMgYm9vbCBzaG91bGRJbnZhbGlkYXRlVHlwZU9uQXR0cmlidXRlQ2hhbmdlKE5vZGVMaXN0SW52
YWxpZGF0aW9uVHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotCi1wcm90ZWN0ZWQ6Ci0gICAg
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9vd25lck5vZGUtPmRvY3VtZW50
KCk7IH0KLSAgICBOb2RlKiByb290Tm9kZSgpIGNvbnN0OwotICAgIGJvb2wgb3ZlcnJpZGVzSXRl
bUFmdGVyKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZXNJdGVtQWZ0ZXI7IH0KLQotICAgIEFM
V0FZU19JTkxJTkUgYm9vbCBpc0l0ZW1DYWNoZVZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pc0l0
ZW1DYWNoZVZhbGlkOyB9Ci0gICAgQUxXQVlTX0lOTElORSBOb2RlKiBjYWNoZWRJdGVtKCkgY29u
c3QgeyByZXR1cm4gbV9jYWNoZWRJdGVtOyB9Ci0gICAgQUxXQVlTX0lOTElORSB1bnNpZ25lZCBj
YWNoZWRJdGVtT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRJdGVtT2Zmc2V0OyB9Ci0K
LSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNMZW5ndGhDYWNoZVZhbGlkKCkgY29uc3QgeyByZXR1
cm4gbV9pc0xlbmd0aENhY2hlVmFsaWQ7IH0KLSAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
Y2hlZExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkTGVuZ3RoOyB9Ci0gICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldExlbmd0aENhY2hlKHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIG1fY2FjaGVkTGVuZ3RoID0gbGVuZ3RoOwotICAgICAgICBtX2lzTGVuZ3RoQ2Fj
aGVWYWxpZCA9IHRydWU7Ci0gICAgfQotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRJdGVtQ2Fj
aGUoTm9kZSogaXRlbSwgdW5zaWduZWQgb2Zmc2V0KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGl0ZW0pOwotICAgICAgICBtX2NhY2hlZEl0ZW0gPSBpdGVtOwotICAgICAgICBtX2NhY2hl
ZEl0ZW1PZmZzZXQgPSBvZmZzZXQ7Ci0gICAgICAgIG1faXNJdGVtQ2FjaGVWYWxpZCA9IHRydWU7
Ci0gICAgfQotICAgIHZvaWQgc2V0SXRlbUNhY2hlKE5vZGUqIGl0ZW0sIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgZWxlbWVudHNBcnJheU9mZnNldCkgY29uc3Q7Ci0KLSAgICBBTFdBWVNfSU5M
SU5FIGJvb2wgaXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9p
c0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQ7IH0KLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0
SXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCgpIGNvbnN0IHsgbV9pc0l0ZW1SZWZFbGVtZW50c0Nh
Y2hlVmFsaWQgPSB0cnVlOyB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIE5vZGVMaXN0Um9vdFR5cGUg
cm9vdFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxOb2RlTGlzdFJvb3RUeXBlPiht
X3Jvb3RUeXBlKTsgfQotCi0gICAgYm9vbCBoYXNOYW1lQ2FjaGUoKSBjb25zdCB7IHJldHVybiBt
X2lzTmFtZUNhY2hlVmFsaWQ7IH0KLSAgICB2b2lkIHNldEhhc05hbWVDYWNoZSgpIGNvbnN0IHsg
bV9pc05hbWVDYWNoZVZhbGlkID0gdHJ1ZTsgfQotCi0gICAgTm9kZSogaXRlbUJlZm9yZU9yQWZ0
ZXJDYWNoZWRJdGVtKHVuc2lnbmVkIG9mZnNldCkgY29uc3Q7Ci0gICAgTm9kZSogaXRlbUFmdGVy
KHVuc2lnbmVkJiwgTm9kZSogcHJldmlvdXNJdGVtKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBi
b29sIHNob3VsZE9ubHlJbmNsdWRlRGlyZWN0Q2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZE9ubHlJbmNsdWRlRGlyZWN0Q2hpbGRyZW47IH0KLSAgICBib29sIGlzTGFzdEl0ZW1DbG9z
ZXJUaGFuTGFzdE9yQ2FjaGVkSXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0OwotICAgIGJvb2wg
aXNGaXJzdEl0ZW1DbG9zZXJUaGFuQ2FjaGVkSXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0Owot
ICAgIHRlbXBsYXRlIDxib29sIGZvcndhcmQ+IE5vZGUqIGl0ZXJhdGVGb3JOZXh0Tm9kZShOb2Rl
KiBjdXJyZW50KSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxib29sIGZvcndhcmQ+IE5vZGUqIGl0ZW1C
ZWZvcmVPckFmdGVyKE5vZGUqIHByZXZpb3VzSXRlbSkgY29uc3Q7ICAgIAotICAgIE5vZGUqIGl0
ZW1CZWZvcmUoTm9kZSogcHJldmlvdXNJdGVtKSBjb25zdDsKLQotICAgIFJlZlB0cjxOb2RlPiBt
X293bmVyTm9kZTsKLSAgICBtdXRhYmxlIE5vZGUqIG1fY2FjaGVkSXRlbTsKLSAgICBtdXRhYmxl
IHVuc2lnbmVkIG1fY2FjaGVkTGVuZ3RoOwotICAgIG11dGFibGUgdW5zaWduZWQgbV9jYWNoZWRJ
dGVtT2Zmc2V0OwotICAgIG11dGFibGUgdW5zaWduZWQgbV9pc0xlbmd0aENhY2hlVmFsaWQgOiAx
OwotICAgIG11dGFibGUgdW5zaWduZWQgbV9pc0l0ZW1DYWNoZVZhbGlkIDogMTsKLSAgICBjb25z
dCB1bnNpZ25lZCBtX3Jvb3RUeXBlIDogMjsKLSAgICBjb25zdCB1bnNpZ25lZCBtX2ludmFsaWRh
dGlvblR5cGUgOiA0OwotICAgIGNvbnN0IHVuc2lnbmVkIG1fc2hvdWxkT25seUluY2x1ZGVEaXJl
Y3RDaGlsZHJlbiA6IDE7Ci0KLSAgICAvLyBGcm9tIEhUTUxDb2xsZWN0aW9uCi0gICAgbXV0YWJs
ZSB1bnNpZ25lZCBtX2lzTmFtZUNhY2hlVmFsaWQgOiAxOwotICAgIGNvbnN0IHVuc2lnbmVkIG1f
Y29sbGVjdGlvblR5cGUgOiA1OwotICAgIGNvbnN0IHVuc2lnbmVkIG1fb3ZlcnJpZGVzSXRlbUFm
dGVyIDogMTsKLSAgICBtdXRhYmxlIHVuc2lnbmVkIG1faXNJdGVtUmVmRWxlbWVudHNDYWNoZVZh
bGlkIDogMTsKLX07Ci0KLUFMV0FZU19JTkxJTkUgYm9vbCBEeW5hbWljTm9kZUxpc3RDYWNoZUJh
c2U6OnNob3VsZEludmFsaWRhdGVUeXBlT25BdHRyaWJ1dGVDaGFuZ2UoTm9kZUxpc3RJbnZhbGlk
YXRpb25UeXBlIHR5cGUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQotewotICAgIHN3
aXRjaCAodHlwZSkgewotICAgIGNhc2UgSW52YWxpZGF0ZU9uQ2xhc3NBdHRyQ2hhbmdlOgotICAg
ICAgICByZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpjbGFzc0F0dHI7Ci0gICAgY2FzZSBJ
bnZhbGlkYXRlT25OYW1lQXR0ckNoYW5nZToKLSAgICAgICAgcmV0dXJuIGF0dHJOYW1lID09IEhU
TUxOYW1lczo6bmFtZUF0dHI7Ci0gICAgY2FzZSBJbnZhbGlkYXRlT25JZE5hbWVBdHRyQ2hhbmdl
OgotICAgICAgICByZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjppZEF0dHIgfHwgYXR0ck5h
bWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cjsKLSAgICBjYXNlIEludmFsaWRhdGVPbkZvckF0dHJD
aGFuZ2U6Ci0gICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmZvckF0dHI7Ci0g
ICAgY2FzZSBJbnZhbGlkYXRlRm9yRm9ybUNvbnRyb2xzOgotICAgICAgICByZXR1cm4gYXR0ck5h
bWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmlkQXR0
ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmZvckF0dHIKLSAgICAgICAgICAgIHx8IGF0dHJO
YW1lID09IEhUTUxOYW1lczo6Zm9ybUF0dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjp0eXBl
QXR0cjsKLSAgICBjYXNlIEludmFsaWRhdGVPbkhSZWZBdHRyQ2hhbmdlOgotICAgICAgICByZXR1
cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpocmVmQXR0cjsKLSAgICBjYXNlIEludmFsaWRhdGVP
bkl0ZW1BdHRyQ2hhbmdlOgotI2lmIEVOQUJMRShNSUNST0RBVEEpCi0gICAgICAgIHJldHVybiBh
dHRyTmFtZSA9PSBIVE1MTmFtZXM6Oml0ZW1zY29wZUF0dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5h
bWVzOjppdGVtcHJvcEF0dHIKLSAgICAgICAgICAgIHx8IGF0dHJOYW1lID09IEhUTUxOYW1lczo6
aXRlbXR5cGVBdHRyIHx8IGF0dHJOYW1lID09IEhUTUxOYW1lczo6aXRlbXJlZkF0dHIgfHwgYXR0
ck5hbWUgPT0gSFRNTE5hbWVzOjppZEF0dHI7Ci0jZW5kaWYgLy8gSW50ZW50aW9uYWxseSBmYWxs
IHRocm91Z2gKLSAgICBjYXNlIERvTm90SW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlczoKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgSW52YWxpZGF0ZU9uQW55QXR0ckNoYW5nZToK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotY2xh
c3MgRHluYW1pY05vZGVMaXN0IDogcHVibGljIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSB7Ci1w
dWJsaWM6Ci0gICAgRHluYW1pY05vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gb3duZXJOb2RlLCBD
b2xsZWN0aW9uVHlwZSBjb2xsZWN0aW9uVHlwZSwgTm9kZUxpc3RSb290VHlwZSByb290VHlwZSwg
Tm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUpCi0gICAgICAgIDogRHlu
YW1pY05vZGVMaXN0Q2FjaGVCYXNlKG93bmVyTm9kZS5nZXQoKSwgcm9vdFR5cGUsIGludmFsaWRh
dGlvblR5cGUsIGNvbGxlY3Rpb25UeXBlID09IENoaWxkTm9kZUxpc3RUeXBlLAotICAgICAgICBj
b2xsZWN0aW9uVHlwZSwgRG9lc05vdE92ZXJyaWRlSXRlbUFmdGVyKQotICAgIHsgfQotICAgIHZp
cnR1YWwgfkR5bmFtaWNOb2RlTGlzdCgpIHsgfQotCi0gICAgLy8gT3RoZXIgbWV0aG9kcyAobm90
IHBhcnQgb2YgRE9NKQotICAgIHZpcnR1YWwgTm9kZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0
cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVt
ZW50KikgY29uc3QgPSAwOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc0R5bmFtaWNO
b2RlTGlzdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLX07Ci0KLWNsYXNzIER5
bmFtaWNTdWJ0cmVlTm9kZUxpc3QgOiBwdWJsaWMgRHluYW1pY05vZGVMaXN0IHsKLXB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5EeW5hbWljU3VidHJlZU5vZGVMaXN0KCkKLSAgICB7Ci0gICAgICAgIGRv
Y3VtZW50KCktPnVucmVnaXN0ZXJOb2RlTGlzdENhY2hlKHRoaXMpOwotICAgIH0KLQotcHJvdGVj
dGVkOgotICAgIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBD
b2xsZWN0aW9uVHlwZSB0eXBlLCBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9u
VHlwZSwgTm9kZUxpc3RSb290VHlwZSByb290VHlwZSA9IE5vZGVMaXN0SXNSb290ZWRBdE5vZGUp
Ci0gICAgICAgIDogRHluYW1pY05vZGVMaXN0KG5vZGUsIHR5cGUsIHJvb3RUeXBlLCBpbnZhbGlk
YXRpb25UeXBlKQotICAgIHsKLSAgICAgICAgZG9jdW1lbnQoKS0+cmVnaXN0ZXJOb2RlTGlzdENh
Y2hlKHRoaXMpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBOb2RlKiBpdGVtRm9yd2FyZHNGcm9t
Q3VycmVudChOb2RlKiBzdGFydCwgdW5zaWduZWQgb2Zmc2V0LCBpbnQgcmVtYWluaW5nT2Zmc2V0
KSBjb25zdDsKLSAgICBOb2RlKiBpdGVtQmFja3dhcmRzRnJvbUN1cnJlbnQoTm9kZSogc3RhcnQs
IHVuc2lnbmVkIG9mZnNldCwgaW50IHJlbWFpbmluZ09mZnNldCkgY29uc3Q7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEeW5hbWljTm9kZUxpc3RfaApJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0xpdmVOb2RlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0xpdmVOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDEzNTY2NykJKGZyb20gU291
cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHA6MTM1NjY3KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0xpdmVOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykK
KyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEeW5hbWlj
Tm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJvcGVydHlOb2RlTGlzdC5oIgorI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitO
b2RlKiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJvb3ROb2RlKCkgY29uc3QKK3sKKyAgICBp
ZiAoaXNSb290ZWRBdERvY3VtZW50KCkgJiYgbV9vd25lck5vZGUtPmluRG9jdW1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVudCgpOworCisjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKKyAgICBpZiAobV9yb290VHlwZSA9PSBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudElm
T3duZXJIYXNJdGVtcmVmQXR0ciAmJiB0b0VsZW1lbnQob3duZXJOb2RlKCkpLT5mYXN0SGFzQXR0
cmlidXRlKEhUTUxOYW1lczo6aXRlbXJlZkF0dHIpKSB7CisgICAgICAgIGlmIChtX293bmVyTm9k
ZS0+aW5Eb2N1bWVudCgpKQorICAgICAgICAgICAgcmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVu
dCgpOworCisgICAgICAgIE5vZGUqIHJvb3QgPSBtX293bmVyTm9kZS5nZXQoKTsKKyAgICAgICAg
d2hpbGUgKE5vZGUqIHBhcmVudCA9IHJvb3QtPnBhcmVudE5vZGUoKSkKKyAgICAgICAgICAgIHJv
b3QgPSBwYXJlbnQ7CisgICAgICAgIHJldHVybiByb290OworICAgIH0KKyNlbmRpZgorCisgICAg
cmV0dXJuIG1fb3duZXJOb2RlLmdldCgpOworfQorCit2b2lkIER5bmFtaWNOb2RlTGlzdENhY2hl
QmFzZTo6aW52YWxpZGF0ZUNhY2hlKCkgY29uc3QKK3sKKyAgICBtX2NhY2hlZEl0ZW0gPSAwOwor
ICAgIG1faXNMZW5ndGhDYWNoZVZhbGlkID0gZmFsc2U7CisgICAgbV9pc0l0ZW1DYWNoZVZhbGlk
ID0gZmFsc2U7CisgICAgbV9pc05hbWVDYWNoZVZhbGlkID0gZmFsc2U7CisgICAgbV9pc0l0ZW1S
ZWZFbGVtZW50c0NhY2hlVmFsaWQgPSBmYWxzZTsKKyAgICBpZiAoaXNOb2RlTGlzdCh0eXBlKCkp
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBIVE1MQ29sbGVjdGlvbiogY2FjaGVCYXNl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTENvbGxlY3Rpb24qPih0aGlzKTsKKyAgICBjYWNoZUJh
c2UtPm1faWRDYWNoZS5jbGVhcigpOworICAgIGNhY2hlQmFzZS0+bV9uYW1lQ2FjaGUuY2xlYXIo
KTsKKyAgICBjYWNoZUJhc2UtPm1fY2FjaGVkRWxlbWVudHNBcnJheU9mZnNldCA9IDA7CisKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIC8vIEZJWE1FOiBUaGVyZSBzaG91bGQgYmUgbW9yZSBn
ZW5lcmljIG1lY2hhbmlzbSB0byBjbGVhciBjYWNoZXMgaW4gc3ViY2xhc3Nlcy4KKyAgICBpZiAo
dHlwZSgpID09IEl0ZW1Qcm9wZXJ0aWVzKQorICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24qPih0aGlzKS0+aW52YWxpZGF0ZUNhY2hlKCk7CisjZW5kaWYK
K30KKwordm9pZCBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OmludmFsaWRhdGVJZE5hbWVDYWNo
ZU1hcHMoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNJZE5hbWVDYWNoZSgpKTsKKyAgICBjb25z
dCBIVE1MQ29sbGVjdGlvbiogY2FjaGVCYXNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTENvbGxl
Y3Rpb24qPih0aGlzKTsKKyAgICBjYWNoZUJhc2UtPm1faWRDYWNoZS5jbGVhcigpOworICAgIGNh
Y2hlQmFzZS0+bV9uYW1lQ2FjaGUuY2xlYXIoKTsKK30KKwordm9pZCBEeW5hbWljTm9kZUxpc3RD
YWNoZUJhc2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIE5vZGVMaXN0OjpyZXBvcnRN
ZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX293bmVy
Tm9kZSk7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2NhY2hlZEl0ZW0pOworfQorCitOb2Rl
KiBEeW5hbWljTm9kZUxpc3Q6Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIGVsZW1lbnRJ
ZCkgY29uc3QKK3sKKyAgICBOb2RlKiByb290Tm9kZSA9IHRoaXMtPnJvb3ROb2RlKCk7CisKKyAg
ICBpZiAocm9vdE5vZGUtPmluRG9jdW1lbnQoKSkgeworI2lmIEVOQUJMRShNSUNST0RBVEEpCisg
ICAgICAgIGlmICh0eXBlKCkgPT0gUHJvcGVydHlOb2RlTGlzdFR5cGUpCisgICAgICAgICAgICBz
dGF0aWNfY2FzdDxjb25zdCBQcm9wZXJ0eU5vZGVMaXN0Kj4odGhpcyktPnVwZGF0ZVJlZkVsZW1l
bnRzKCk7CisjZW5kaWYKKworICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gcm9vdE5vZGUtPnRy
ZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICBpZiAoZWxlbWVu
dCAmJiBub2RlTWF0Y2hlcyhlbGVtZW50KSAmJiBlbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihyb290
Tm9kZSkpCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKKyAgICAgICAgaWYgKCFlbGVtZW50
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIG11bHRp
cGxlIG5vZGVzIHdpdGggdGhlIHNhbWUgbmFtZSwganVzdCBmYWxsIHRocm91Z2guCisgICAgfQor
CisgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpcy0+bGVuZ3RoKCk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBpdGVtKGkp
OworICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgdXNpbmcgZ2V0SWRB
dHRyaWJ1dGUgaW5zdGVhZCBvZiBpZEZvclN0eWxlUmVzb2x1dGlvbi4KKyAgICAgICAgaWYgKG5v
ZGUtPmhhc0lEKCkgJiYgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5pZEZvclN0eWxlUmVz
b2x1dGlvbigpID09IGVsZW1lbnRJZCkKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgIH0K
KworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vTGl2ZU5vZGVMaXN0LmNwcAkocmV2aXNpb24gMTM1NjY1KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0xpdmVOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0
LmgiCisjaW5jbHVkZSAiTGl2ZU5vZGVMaXN0LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Ob2RlKiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJvb3ROb2RlKCkgY29uc3QK
K05vZGUqIExpdmVOb2RlTGlzdEJhc2U6OnJvb3ROb2RlKCkgY29uc3QKIHsKICAgICBpZiAoaXNS
b290ZWRBdERvY3VtZW50KCkgJiYgbV9vd25lck5vZGUtPmluRG9jdW1lbnQoKSkKICAgICAgICAg
cmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVudCgpOwpAQCAtNTIsNyArNTIsNyBAQCBOb2RlKiBE
eW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJvb3ROb2RlCiAgICAgcmV0dXJuIG1fb3duZXJOb2Rl
LmdldCgpOwogfQogCi12b2lkIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6aW52YWxpZGF0ZUNh
Y2hlKCkgY29uc3QKK3ZvaWQgTGl2ZU5vZGVMaXN0QmFzZTo6aW52YWxpZGF0ZUNhY2hlKCkgY29u
c3QKIHsKICAgICBtX2NhY2hlZEl0ZW0gPSAwOwogICAgIG1faXNMZW5ndGhDYWNoZVZhbGlkID0g
ZmFsc2U7CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpp
bnZhbGlkYXQKICNlbmRpZgogfQogCi12b2lkIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6aW52
YWxpZGF0ZUlkTmFtZUNhY2hlTWFwcygpIGNvbnN0Cit2b2lkIExpdmVOb2RlTGlzdEJhc2U6Omlu
dmFsaWRhdGVJZE5hbWVDYWNoZU1hcHMoKSBjb25zdAogewogICAgIEFTU0VSVChoYXNJZE5hbWVD
YWNoZSgpKTsKICAgICBjb25zdCBIVE1MQ29sbGVjdGlvbiogY2FjaGVCYXNlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgSFRNTENvbGxlY3Rpb24qPih0aGlzKTsKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBE
eW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OmludmFsaWRhdAogICAgIGNhY2hlQmFzZS0+bV9uYW1l
Q2FjaGUuY2xlYXIoKTsKIH0KIAotdm9pZCBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit2
b2lkIExpdmVOb2RlTGlzdEJhc2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwogICAgIE5vZGVM
aXN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKQEAgLTkwLDcgKzkwLDcg
QEAgdm9pZCBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJlcG9ydE1lbQogICAgIGluZm8uYWRk
V2Vha1BvaW50ZXIobV9jYWNoZWRJdGVtKTsKIH0KIAotTm9kZSogRHluYW1pY05vZGVMaXN0Ojpu
YW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBlbGVtZW50SWQpIGNvbnN0CitOb2RlKiBMaXZl
Tm9kZUxpc3Q6Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIGVsZW1lbnRJZCkgY29uc3QK
IHsKICAgICBOb2RlKiByb290Tm9kZSA9IHRoaXMtPnJvb3ROb2RlKCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9MaXZlTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vTGl2ZU5vZGVMaXN0LmgJKHJldmlzaW9uIDEzNTY2NykJKGZyb20gU291cmNlL1dlYkNv
cmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oOjEzNTY2NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9M
aXZlTm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyMiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAg
IChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
Zm5kZWYgRHluYW1pY05vZGVMaXN0X2gKKyNkZWZpbmUgRHluYW1pY05vZGVMaXN0X2gKKworI2lu
Y2x1ZGUgIkNvbGxlY3Rpb25UeXBlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJOb2RlTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEVsZW1lbnQ7CisKK2VudW0gTm9kZUxpc3RSb290VHlwZSB7CisgICAgTm9kZUxpc3RJ
c1Jvb3RlZEF0Tm9kZSwKKyAgICBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudCwKKyAgICBOb2Rl
TGlzdElzUm9vdGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0ciwKK307CisKKy8vIEZJ
WE1FOiBDYWNoZUJhc2UgaXMgYSBiYWQgcG9zdGZpeCBmb3IgdGhpcyBjbGFzcyB0aGF0IG5vdyBp
bmhlcml0cyBmcm9tIE5vZGVMaXN0LiBSZW5hbWUgaXQgdG8gRHluYW1pY05vZGVMaXN0QmFzZS4K
K2NsYXNzIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSA6IHB1YmxpYyBOb2RlTGlzdCB7CitwdWJs
aWM6CisgICAgZW51bSBJdGVtQWZ0ZXJPdmVycmlkZVR5cGUgeworICAgICAgICBPdmVycmlkZXNJ
dGVtQWZ0ZXIsCisgICAgICAgIERvZXNOb3RPdmVycmlkZUl0ZW1BZnRlciwKKyAgICB9OworCisg
ICAgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKE5vZGUqIG93bmVyTm9kZSwgTm9kZUxpc3RSb290
VHlwZSByb290VHlwZSwgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUs
CisgICAgICAgIGJvb2wgc2hvdWxkT25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbiwgQ29sbGVjdGlv
blR5cGUgY29sbGVjdGlvblR5cGUsIEl0ZW1BZnRlck92ZXJyaWRlVHlwZSBpdGVtQWZ0ZXJPdmVy
cmlkZVR5cGUpCisgICAgICAgIDogbV9vd25lck5vZGUob3duZXJOb2RlKQorICAgICAgICAsIG1f
Y2FjaGVkSXRlbSgwKQorICAgICAgICAsIG1faXNMZW5ndGhDYWNoZVZhbGlkKGZhbHNlKQorICAg
ICAgICAsIG1faXNJdGVtQ2FjaGVWYWxpZChmYWxzZSkKKyAgICAgICAgLCBtX3Jvb3RUeXBlKHJv
b3RUeXBlKQorICAgICAgICAsIG1faW52YWxpZGF0aW9uVHlwZShpbnZhbGlkYXRpb25UeXBlKQor
ICAgICAgICAsIG1fc2hvdWxkT25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbihzaG91bGRPbmx5SW5j
bHVkZURpcmVjdENoaWxkcmVuKQorICAgICAgICAsIG1faXNOYW1lQ2FjaGVWYWxpZChmYWxzZSkK
KyAgICAgICAgLCBtX2NvbGxlY3Rpb25UeXBlKGNvbGxlY3Rpb25UeXBlKQorICAgICAgICAsIG1f
b3ZlcnJpZGVzSXRlbUFmdGVyKGl0ZW1BZnRlck92ZXJyaWRlVHlwZSA9PSBPdmVycmlkZXNJdGVt
QWZ0ZXIpCisgICAgICAgICwgbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQoZmFsc2UpCisg
ICAgeworICAgICAgICBBU1NFUlQobV9yb290VHlwZSA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
cm9vdFR5cGUpKTsKKyAgICAgICAgQVNTRVJUKG1faW52YWxpZGF0aW9uVHlwZSA9PSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oaW52YWxpZGF0aW9uVHlwZSkpOworICAgICAgICBBU1NFUlQobV9jb2xs
ZWN0aW9uVHlwZSA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29sbGVjdGlvblR5cGUpKTsKKyAg
ICAgICAgQVNTRVJUKCFtX292ZXJyaWRlc0l0ZW1BZnRlciB8fCAhaXNOb2RlTGlzdChjb2xsZWN0
aW9uVHlwZSkpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKKyAgICAvLyBET00gQVBJCisgICAgdmlydHVhbCB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0o
dW5zaWduZWQgb2Zmc2V0KSBjb25zdCBPVkVSUklERTsKKworICAgIEFMV0FZU19JTkxJTkUgYm9v
bCBoYXNJZE5hbWVDYWNoZSgpIGNvbnN0IHsgcmV0dXJuICFpc05vZGVMaXN0KHR5cGUoKSk7IH0K
KyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNSb290ZWRBdERvY3VtZW50KCkgY29uc3QgeyByZXR1
cm4gbV9yb290VHlwZSA9PSBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudCB8fCBtX3Jvb3RUeXBl
ID09IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1yZWZBdHRyOyB9Cisg
ICAgQUxXQVlTX0lOTElORSBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9uVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZT4o
bV9pbnZhbGlkYXRpb25UeXBlKTsgfQorICAgIEFMV0FZU19JTkxJTkUgQ29sbGVjdGlvblR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbGxlY3Rpb25UeXBlPihtX2NvbGxl
Y3Rpb25UeXBlKTsgfQorICAgIE5vZGUqIG93bmVyTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3du
ZXJOb2RlLmdldCgpOyB9CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGludmFsaWRhdGVDYWNoZShj
b25zdCBRdWFsaWZpZWROYW1lKiBhdHRyTmFtZSkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICgh
YXR0ck5hbWUgfHwgc2hvdWxkSW52YWxpZGF0ZVR5cGVPbkF0dHJpYnV0ZUNoYW5nZShpbnZhbGlk
YXRpb25UeXBlKCksICphdHRyTmFtZSkpCisgICAgICAgICAgICBpbnZhbGlkYXRlQ2FjaGUoKTsK
KyAgICAgICAgZWxzZSBpZiAoaGFzSWROYW1lQ2FjaGUoKSAmJiAoKmF0dHJOYW1lID09IEhUTUxO
YW1lczo6aWRBdHRyIHx8ICphdHRyTmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyKSkKKyAgICAg
ICAgICAgIGludmFsaWRhdGVJZE5hbWVDYWNoZU1hcHMoKTsKKyAgICB9CisgICAgdm9pZCBpbnZh
bGlkYXRlQ2FjaGUoKSBjb25zdDsKKyAgICB2b2lkIGludmFsaWRhdGVJZE5hbWVDYWNoZU1hcHMo
KSBjb25zdDsKKworICAgIHN0YXRpYyBib29sIHNob3VsZEludmFsaWRhdGVUeXBlT25BdHRyaWJ1
dGVDaGFuZ2UoTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlLCBjb25zdCBRdWFsaWZpZWROYW1lJik7
CisKK3Byb3RlY3RlZDoKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X293bmVyTm9kZS0+ZG9jdW1lbnQoKTsgfQorICAgIE5vZGUqIHJvb3ROb2RlKCkgY29uc3Q7Cisg
ICAgYm9vbCBvdmVycmlkZXNJdGVtQWZ0ZXIoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRlc0l0
ZW1BZnRlcjsgfQorCisgICAgQUxXQVlTX0lOTElORSBib29sIGlzSXRlbUNhY2hlVmFsaWQoKSBj
b25zdCB7IHJldHVybiBtX2lzSXRlbUNhY2hlVmFsaWQ7IH0KKyAgICBBTFdBWVNfSU5MSU5FIE5v
ZGUqIGNhY2hlZEl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZEl0ZW07IH0KKyAgICBBTFdB
WVNfSU5MSU5FIHVuc2lnbmVkIGNhY2hlZEl0ZW1PZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Nh
Y2hlZEl0ZW1PZmZzZXQ7IH0KKworICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc0xlbmd0aENhY2hl
VmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2lzTGVuZ3RoQ2FjaGVWYWxpZDsgfQorICAgIEFMV0FZ
U19JTkxJTkUgdW5zaWduZWQgY2FjaGVkTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRM
ZW5ndGg7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0TGVuZ3RoQ2FjaGUodW5zaWduZWQg
bGVuZ3RoKSBjb25zdAorICAgIHsKKyAgICAgICAgbV9jYWNoZWRMZW5ndGggPSBsZW5ndGg7Cisg
ICAgICAgIG1faXNMZW5ndGhDYWNoZVZhbGlkID0gdHJ1ZTsKKyAgICB9CisgICAgQUxXQVlTX0lO
TElORSB2b2lkIHNldEl0ZW1DYWNoZShOb2RlKiBpdGVtLCB1bnNpZ25lZCBvZmZzZXQpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQoaXRlbSk7CisgICAgICAgIG1fY2FjaGVkSXRlbSA9IGl0
ZW07CisgICAgICAgIG1fY2FjaGVkSXRlbU9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgbV9pc0l0
ZW1DYWNoZVZhbGlkID0gdHJ1ZTsKKyAgICB9CisgICAgdm9pZCBzZXRJdGVtQ2FjaGUoTm9kZSog
aXRlbSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBlbGVtZW50c0FycmF5T2Zmc2V0KSBjb25z
dDsKKworICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQo
KSBjb25zdCB7IHJldHVybiBtX2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZDsgfQorICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzZXRJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKCkgY29uc3QgeyBt
X2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCA9IHRydWU7IH0KKworICAgIEFMV0FZU19JTkxJ
TkUgTm9kZUxpc3RSb290VHlwZSByb290VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PE5vZGVMaXN0Um9vdFR5cGU+KG1fcm9vdFR5cGUpOyB9CisKKyAgICBib29sIGhhc05hbWVDYWNo
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNOYW1lQ2FjaGVWYWxpZDsgfQorICAgIHZvaWQgc2V0SGFz
TmFtZUNhY2hlKCkgY29uc3QgeyBtX2lzTmFtZUNhY2hlVmFsaWQgPSB0cnVlOyB9CisKKyAgICBO
b2RlKiBpdGVtQmVmb3JlT3JBZnRlckNhY2hlZEl0ZW0odW5zaWduZWQgb2Zmc2V0KSBjb25zdDsK
KyAgICBOb2RlKiBpdGVtQWZ0ZXIodW5zaWduZWQmLCBOb2RlKiBwcmV2aW91c0l0ZW0pIGNvbnN0
OworCitwcml2YXRlOgorICAgIGJvb2wgc2hvdWxkT25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbigp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkT25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbjsgfQorICAg
IGJvb2wgaXNMYXN0SXRlbUNsb3NlclRoYW5MYXN0T3JDYWNoZWRJdGVtKHVuc2lnbmVkIG9mZnNl
dCkgY29uc3Q7CisgICAgYm9vbCBpc0ZpcnN0SXRlbUNsb3NlclRoYW5DYWNoZWRJdGVtKHVuc2ln
bmVkIG9mZnNldCkgY29uc3Q7CisgICAgdGVtcGxhdGUgPGJvb2wgZm9yd2FyZD4gTm9kZSogaXRl
cmF0ZUZvck5leHROb2RlKE5vZGUqIGN1cnJlbnQpIGNvbnN0OworICAgIHRlbXBsYXRlPGJvb2wg
Zm9yd2FyZD4gTm9kZSogaXRlbUJlZm9yZU9yQWZ0ZXIoTm9kZSogcHJldmlvdXNJdGVtKSBjb25z
dDsgICAgCisgICAgTm9kZSogaXRlbUJlZm9yZShOb2RlKiBwcmV2aW91c0l0ZW0pIGNvbnN0Owor
CisgICAgUmVmUHRyPE5vZGU+IG1fb3duZXJOb2RlOworICAgIG11dGFibGUgTm9kZSogbV9jYWNo
ZWRJdGVtOworICAgIG11dGFibGUgdW5zaWduZWQgbV9jYWNoZWRMZW5ndGg7CisgICAgbXV0YWJs
ZSB1bnNpZ25lZCBtX2NhY2hlZEl0ZW1PZmZzZXQ7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2lz
TGVuZ3RoQ2FjaGVWYWxpZCA6IDE7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2lzSXRlbUNhY2hl
VmFsaWQgOiAxOworICAgIGNvbnN0IHVuc2lnbmVkIG1fcm9vdFR5cGUgOiAyOworICAgIGNvbnN0
IHVuc2lnbmVkIG1faW52YWxpZGF0aW9uVHlwZSA6IDQ7CisgICAgY29uc3QgdW5zaWduZWQgbV9z
aG91bGRPbmx5SW5jbHVkZURpcmVjdENoaWxkcmVuIDogMTsKKworICAgIC8vIEZyb20gSFRNTENv
bGxlY3Rpb24KKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1faXNOYW1lQ2FjaGVWYWxpZCA6IDE7Cisg
ICAgY29uc3QgdW5zaWduZWQgbV9jb2xsZWN0aW9uVHlwZSA6IDU7CisgICAgY29uc3QgdW5zaWdu
ZWQgbV9vdmVycmlkZXNJdGVtQWZ0ZXIgOiAxOworICAgIG11dGFibGUgdW5zaWduZWQgbV9pc0l0
ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgOiAxOworfTsKKworQUxXQVlTX0lOTElORSBib29sIER5
bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6c2hvdWxkSW52YWxpZGF0ZVR5cGVPbkF0dHJpYnV0ZUNo
YW5nZShOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBJbnZhbGlkYXRlT25D
bGFzc0F0dHJDaGFuZ2U6CisgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmNs
YXNzQXR0cjsKKyAgICBjYXNlIEludmFsaWRhdGVPbk5hbWVBdHRyQ2hhbmdlOgorICAgICAgICBy
ZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cjsKKyAgICBjYXNlIEludmFsaWRh
dGVPbklkTmFtZUF0dHJDaGFuZ2U6CisgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFt
ZXM6OmlkQXR0ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyOworICAgIGNhc2Ug
SW52YWxpZGF0ZU9uRm9yQXR0ckNoYW5nZToKKyAgICAgICAgcmV0dXJuIGF0dHJOYW1lID09IEhU
TUxOYW1lczo6Zm9yQXR0cjsKKyAgICBjYXNlIEludmFsaWRhdGVGb3JGb3JtQ29udHJvbHM6Cisg
ICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyIHx8IGF0dHJOYW1l
ID09IEhUTUxOYW1lczo6aWRBdHRyIHx8IGF0dHJOYW1lID09IEhUTUxOYW1lczo6Zm9yQXR0cgor
ICAgICAgICAgICAgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpmb3JtQXR0ciB8fCBhdHRyTmFt
ZSA9PSBIVE1MTmFtZXM6OnR5cGVBdHRyOworICAgIGNhc2UgSW52YWxpZGF0ZU9uSFJlZkF0dHJD
aGFuZ2U6CisgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmhyZWZBdHRyOwor
ICAgIGNhc2UgSW52YWxpZGF0ZU9uSXRlbUF0dHJDaGFuZ2U6CisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKyAgICAgICAgcmV0dXJuIGF0dHJOYW1lID09IEhUTUxOYW1lczo6aXRlbXNjb3BlQXR0ciB8
fCBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6Oml0ZW1wcm9wQXR0cgorICAgICAgICAgICAgfHwgYXR0
ck5hbWUgPT0gSFRNTE5hbWVzOjppdGVtdHlwZUF0dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVz
OjppdGVtcmVmQXR0ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmlkQXR0cjsKKyNlbmRpZiAv
LyBJbnRlbnRpb25hbGx5IGZhbGwgdGhyb3VnaAorICAgIGNhc2UgRG9Ob3RJbnZhbGlkYXRlT25B
dHRyaWJ1dGVDaGFuZ2VzOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBJbnZhbGlk
YXRlT25BbnlBdHRyQ2hhbmdlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitjbGFzcyBEeW5hbWljTm9kZUxpc3QgOiBwdWJsaWMgRHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlIHsKK3B1YmxpYzoKKyAgICBEeW5hbWljTm9kZUxpc3QoUGFzc1JlZlB0
cjxOb2RlPiBvd25lck5vZGUsIENvbGxlY3Rpb25UeXBlIGNvbGxlY3Rpb25UeXBlLCBOb2RlTGlz
dFJvb3RUeXBlIHJvb3RUeXBlLCBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9u
VHlwZSkKKyAgICAgICAgOiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2Uob3duZXJOb2RlLmdldCgp
LCByb290VHlwZSwgaW52YWxpZGF0aW9uVHlwZSwgY29sbGVjdGlvblR5cGUgPT0gQ2hpbGROb2Rl
TGlzdFR5cGUsCisgICAgICAgIGNvbGxlY3Rpb25UeXBlLCBEb2VzTm90T3ZlcnJpZGVJdGVtQWZ0
ZXIpCisgICAgeyB9CisgICAgdmlydHVhbCB+RHluYW1pY05vZGVMaXN0KCkgeyB9CisKKyAgICAv
LyBPdGhlciBtZXRob2RzIChub3QgcGFydCBvZiBET00pCisgICAgdmlydHVhbCBOb2RlKiBuYW1l
ZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdCA9IDA7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBib29sIGlzRHluYW1pY05vZGVMaXN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorfTsKKworY2xhc3MgRHluYW1pY1N1YnRyZWVOb2RlTGlzdCA6IHB1YmxpYyBEeW5hbWlj
Tm9kZUxpc3QgeworcHVibGljOgorICAgIHZpcnR1YWwgfkR5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qo
KQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQoKS0+dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUodGhp
cyk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgRHluYW1pY1N1YnRyZWVOb2RlTGlzdChQYXNz
UmVmUHRyPE5vZGU+IG5vZGUsIENvbGxlY3Rpb25UeXBlIHR5cGUsIE5vZGVMaXN0SW52YWxpZGF0
aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlLCBOb2RlTGlzdFJvb3RUeXBlIHJvb3RUeXBlID0gTm9k
ZUxpc3RJc1Jvb3RlZEF0Tm9kZSkKKyAgICAgICAgOiBEeW5hbWljTm9kZUxpc3Qobm9kZSwgdHlw
ZSwgcm9vdFR5cGUsIGludmFsaWRhdGlvblR5cGUpCisgICAgeworICAgICAgICBkb2N1bWVudCgp
LT5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUodGhpcyk7CisgICAgfQorCitwcml2YXRlOgorICAgIE5v
ZGUqIGl0ZW1Gb3J3YXJkc0Zyb21DdXJyZW50KE5vZGUqIHN0YXJ0LCB1bnNpZ25lZCBvZmZzZXQs
IGludCByZW1haW5pbmdPZmZzZXQpIGNvbnN0OworICAgIE5vZGUqIGl0ZW1CYWNrd2FyZHNGcm9t
Q3VycmVudChOb2RlKiBzdGFydCwgdW5zaWduZWQgb2Zmc2V0LCBpbnQgcmVtYWluaW5nT2Zmc2V0
KSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIER5bmFt
aWNOb2RlTGlzdF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0xpdmVOb2RlTGlzdC5oCShyZXZpc2lvbiAx
MzU2NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDggKzIxLDggQEAKICAqCiAgKi8KIAotI2lmbmRlZiBEeW5hbWljTm9kZUxpc3Rf
aAotI2RlZmluZSBEeW5hbWljTm9kZUxpc3RfaAorI2lmbmRlZiBMaXZlTm9kZUxpc3RfaAorI2Rl
ZmluZSBMaXZlTm9kZUxpc3RfaAogCiAjaW5jbHVkZSAiQ29sbGVjdGlvblR5cGUuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtNDEsMTUgKzQxLDE1IEBAIGVudW0gTm9kZUxpc3RSb290VHlw
ZSB7CiAgICAgTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIs
CiB9OwogCi0vLyBGSVhNRTogQ2FjaGVCYXNlIGlzIGEgYmFkIHBvc3RmaXggZm9yIHRoaXMgY2xh
c3MgdGhhdCBub3cgaW5oZXJpdHMgZnJvbSBOb2RlTGlzdC4gUmVuYW1lIGl0IHRvIER5bmFtaWNO
b2RlTGlzdEJhc2UuCi1jbGFzcyBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UgOiBwdWJsaWMgTm9k
ZUxpc3QgeworLy8gRklYTUU6IENhY2hlQmFzZSBpcyBhIGJhZCBwb3N0Zml4IGZvciB0aGlzIGNs
YXNzIHRoYXQgbm93IGluaGVyaXRzIGZyb20gTm9kZUxpc3QuIFJlbmFtZSBpdCB0byBMaXZlTm9k
ZUxpc3RCYXNlLgorY2xhc3MgTGl2ZU5vZGVMaXN0QmFzZSA6IHB1YmxpYyBOb2RlTGlzdCB7CiBw
dWJsaWM6CiAgICAgZW51bSBJdGVtQWZ0ZXJPdmVycmlkZVR5cGUgewogICAgICAgICBPdmVycmlk
ZXNJdGVtQWZ0ZXIsCiAgICAgICAgIERvZXNOb3RPdmVycmlkZUl0ZW1BZnRlciwKICAgICB9Owog
Ci0gICAgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKE5vZGUqIG93bmVyTm9kZSwgTm9kZUxpc3RS
b290VHlwZSByb290VHlwZSwgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5
cGUsCisgICAgTGl2ZU5vZGVMaXN0QmFzZShOb2RlKiBvd25lck5vZGUsIE5vZGVMaXN0Um9vdFR5
cGUgcm9vdFR5cGUsIE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlLAog
ICAgICAgICBib29sIHNob3VsZE9ubHlJbmNsdWRlRGlyZWN0Q2hpbGRyZW4sIENvbGxlY3Rpb25U
eXBlIGNvbGxlY3Rpb25UeXBlLCBJdGVtQWZ0ZXJPdmVycmlkZVR5cGUgaXRlbUFmdGVyT3ZlcnJp
ZGVUeXBlKQogICAgICAgICA6IG1fb3duZXJOb2RlKG93bmVyTm9kZSkKICAgICAgICAgLCBtX2Nh
Y2hlZEl0ZW0oMCkKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdW5z
aWduZWQgbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgOiAxOwogfTsKIAotQUxXQVlTX0lO
TElORSBib29sIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6c2hvdWxkSW52YWxpZGF0ZVR5cGVP
bkF0dHJpYnV0ZUNoYW5nZShOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgdHlwZSwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCitBTFdBWVNfSU5MSU5FIGJvb2wgTGl2ZU5vZGVMaXN0QmFz
ZTo6c2hvdWxkSW52YWxpZGF0ZVR5cGVPbkF0dHJpYnV0ZUNoYW5nZShOb2RlTGlzdEludmFsaWRh
dGlvblR5cGUgdHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7CiAgICAgY2FzZSBJbnZhbGlkYXRlT25DbGFzc0F0dHJDaGFuZ2U6CkBAIC0x
ODIsNDEgKzE4MiwyOSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgRHluYW1pY05vZGVMaXN0Q2FjaGVC
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1jbGFzcyBEeW5hbWljTm9kZUxpc3QgOiBwdWJsaWMg
RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlIHsKK2NsYXNzIExpdmVOb2RlTGlzdCA6IHB1YmxpYyBM
aXZlTm9kZUxpc3RCYXNlIHsKIHB1YmxpYzoKLSAgICBEeW5hbWljTm9kZUxpc3QoUGFzc1JlZlB0
cjxOb2RlPiBvd25lck5vZGUsIENvbGxlY3Rpb25UeXBlIGNvbGxlY3Rpb25UeXBlLCBOb2RlTGlz
dFJvb3RUeXBlIHJvb3RUeXBlLCBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9u
VHlwZSkKLSAgICAgICAgOiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2Uob3duZXJOb2RlLmdldCgp
LCByb290VHlwZSwgaW52YWxpZGF0aW9uVHlwZSwgY29sbGVjdGlvblR5cGUgPT0gQ2hpbGROb2Rl
TGlzdFR5cGUsCisgICAgTGl2ZU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gb3duZXJOb2RlLCBD
b2xsZWN0aW9uVHlwZSBjb2xsZWN0aW9uVHlwZSwgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGlu
dmFsaWRhdGlvblR5cGUsIE5vZGVMaXN0Um9vdFR5cGUgcm9vdFR5cGUgPSBOb2RlTGlzdElzUm9v
dGVkQXROb2RlKQorICAgICAgICA6IExpdmVOb2RlTGlzdEJhc2Uob3duZXJOb2RlLmdldCgpLCBy
b290VHlwZSwgaW52YWxpZGF0aW9uVHlwZSwgY29sbGVjdGlvblR5cGUgPT0gQ2hpbGROb2RlTGlz
dFR5cGUsCiAgICAgICAgIGNvbGxlY3Rpb25UeXBlLCBEb2VzTm90T3ZlcnJpZGVJdGVtQWZ0ZXIp
Ci0gICAgeyB9Ci0gICAgdmlydHVhbCB+RHluYW1pY05vZGVMaXN0KCkgeyB9Ci0KLSAgICAvLyBP
dGhlciBtZXRob2RzIChub3QgcGFydCBvZiBET00pCi0gICAgdmlydHVhbCBOb2RlKiBuYW1lZEl0
ZW0oY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdCA9IDA7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVh
bCBib29sIGlzRHluYW1pY05vZGVMaXN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsg
fQotfTsKLQotY2xhc3MgRHluYW1pY1N1YnRyZWVOb2RlTGlzdCA6IHB1YmxpYyBEeW5hbWljTm9k
ZUxpc3QgewotcHVibGljOgotICAgIHZpcnR1YWwgfkR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QoKQog
ICAgIHsKLSAgICAgICAgZG9jdW1lbnQoKS0+dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUodGhpcyk7
CisgICAgICAgIGlmIChjb2xsZWN0aW9uVHlwZSAhPSBDaGlsZE5vZGVMaXN0VHlwZSkKKyAgICAg
ICAgICAgIGRvY3VtZW50KCktPnJlZ2lzdGVyTm9kZUxpc3RDYWNoZSh0aGlzKTsKICAgICB9CiAK
LXByb3RlY3RlZDoKLSAgICBEeW5hbWljU3VidHJlZU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSwgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFs
aWRhdGlvblR5cGUsIE5vZGVMaXN0Um9vdFR5cGUgcm9vdFR5cGUgPSBOb2RlTGlzdElzUm9vdGVk
QXROb2RlKQotICAgICAgICA6IER5bmFtaWNOb2RlTGlzdChub2RlLCB0eXBlLCByb290VHlwZSwg
aW52YWxpZGF0aW9uVHlwZSkKKyAgICB2aXJ0dWFsIH5MaXZlTm9kZUxpc3QoKQogICAgIHsKLSAg
ICAgICAgZG9jdW1lbnQoKS0+cmVnaXN0ZXJOb2RlTGlzdENhY2hlKHRoaXMpOworICAgICAgICBp
ZiAodHlwZSgpICE9IENoaWxkTm9kZUxpc3RUeXBlKQorICAgICAgICAgICAgZG9jdW1lbnQoKS0+
dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUodGhpcyk7CiAgICAgfQogCisgICAgdmlydHVhbCBOb2Rl
KiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdCA9IDA7CisKIHByaXZhdGU6Ci0g
ICAgTm9kZSogaXRlbUZvcndhcmRzRnJvbUN1cnJlbnQoTm9kZSogc3RhcnQsIHVuc2lnbmVkIG9m
ZnNldCwgaW50IHJlbWFpbmluZ09mZnNldCkgY29uc3Q7Ci0gICAgTm9kZSogaXRlbUJhY2t3YXJk
c0Zyb21DdXJyZW50KE5vZGUqIHN0YXJ0LCB1bnNpZ25lZCBvZmZzZXQsIGludCByZW1haW5pbmdP
ZmZzZXQpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc0xpdmVOb2RlTGlzdCgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIER5bmFtaWNOb2RlTGlzdF9oCisjZW5kaWYgLy8gTGl2ZU5vZGVMaXN0X2gKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcAkocmV2aXNpb24gMTM1
NjY3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBjb25zdCBTdHJpbmcmIE1pY3JvRGF0YUl0ZW1MaXN0
Ojp1bmRlZmluCiB9CiAKIE1pY3JvRGF0YUl0ZW1MaXN0OjpNaWNyb0RhdGFJdGVtTGlzdChQYXNz
UmVmUHRyPE5vZGU+IHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykKLSAgICA6IER5
bmFtaWNTdWJ0cmVlTm9kZUxpc3Qocm9vdE5vZGUsIE1pY3JvRGF0YUl0ZW1MaXN0VHlwZSwgSW52
YWxpZGF0ZU9uSXRlbUF0dHJDaGFuZ2UpCisgICAgOiBMaXZlTm9kZUxpc3Qocm9vdE5vZGUsIE1p
Y3JvRGF0YUl0ZW1MaXN0VHlwZSwgSW52YWxpZGF0ZU9uSXRlbUF0dHJDaGFuZ2UpCiAgICAgLCBt
X3R5cGVOYW1lcyh0eXBlTmFtZXMsIGRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQogICAgICwg
bV9vcmlnaW5hbFR5cGVOYW1lcyh0eXBlTmFtZXMpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vTWljcm9EYXRhSXRlbUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
TWljcm9EYXRhSXRlbUxpc3QuaAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEzICsyOCwxMyBA
QAogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKIAotI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5o
IgorI2luY2x1ZGUgIkxpdmVOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRl
ICJTcGFjZVNwbGl0U3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWlj
cm9EYXRhSXRlbUxpc3QgOiBwdWJsaWMgRHluYW1pY1N1YnRyZWVOb2RlTGlzdCB7CitjbGFzcyBN
aWNyb0RhdGFJdGVtTGlzdCA6IHB1YmxpYyBMaXZlTm9kZUxpc3QgewogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1MaXN0PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2Rl
PiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpCiAgICAgewpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL05hbWVOb2RlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL05hbWVOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDEzNTY2NykKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lTm9kZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIE5hbWVO
b2RlTGlzdDo6TmFtZU5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSkKLSAgICA6IER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qocm9vdE5vZGUs
IE5hbWVOb2RlTGlzdFR5cGUsIEludmFsaWRhdGVPbk5hbWVBdHRyQ2hhbmdlKQorICAgIDogTGl2
ZU5vZGVMaXN0KHJvb3ROb2RlLCBOYW1lTm9kZUxpc3RUeXBlLCBJbnZhbGlkYXRlT25OYW1lQXR0
ckNoYW5nZSkKICAgICAsIG1fbmFtZShuYW1lKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL05hbWVOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9OYW1l
Tm9kZUxpc3QuaAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05hbWVO
b2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNCArMjQsMTQgQEAKICNpZm5kZWYgTmFt
ZU5vZGVMaXN0X2gKICNkZWZpbmUgTmFtZU5vZGVMaXN0X2gKIAotI2luY2x1ZGUgIkR5bmFtaWNO
b2RlTGlzdC5oIgorI2luY2x1ZGUgIkxpdmVOb2RlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogLy8gTm9kZUxpc3Qgd2hpY2ggbGlzdHMgYWxsIE5vZGVzIGluIGEgRWxlbWVu
dCB3aXRoIGEgZ2l2ZW4gIm5hbWUiIGF0dHJpYnV0ZQotY2xhc3MgTmFtZU5vZGVMaXN0IDogcHVi
bGljIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QgeworY2xhc3MgTmFtZU5vZGVMaXN0IDogcHVibGlj
IExpdmVOb2RlTGlzdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TmFtZU5vZGVM
aXN0PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEzNTY2NykKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYs
NiBAQAogI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKLSNpbmNsdWRlICJEeW5hbWljTm9kZUxp
c3QuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgi
CiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgpAQCAtNjgsNiArNjcsNyBAQAogI2luY2x1ZGUg
Ikluc3BlY3RvckNvdW50ZXJzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIkxhYmVsc05vZGVMaXN0LmgiCisjaW5jbHVkZSAiTGl2ZU5vZGVMaXN0LmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJNdXRhdGlv
bkV2ZW50LmgiCkBAIC05NzEsNyArOTcxLDcgQEAgdW5zaWduZWQgTm9kZTo6bm9kZUluZGV4KCkg
Y29uc3QKIHRlbXBsYXRlPHVuc2lnbmVkIHR5cGU+CiBib29sIHNob3VsZEludmFsaWRhdGVOb2Rl
TGlzdENhY2hlc0ZvckF0dHIoY29uc3QgdW5zaWduZWQgbm9kZUxpc3RDb3VudHNbXSwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKG5vZGVMaXN0Q291bnRzW3R5cGVd
ICYmIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6c2hvdWxkSW52YWxpZGF0ZVR5cGVPbkF0dHJp
YnV0ZUNoYW5nZShzdGF0aWNfY2FzdDxOb2RlTGlzdEludmFsaWRhdGlvblR5cGU+KHR5cGUpLCBh
dHRyTmFtZSkpCisgICAgaWYgKG5vZGVMaXN0Q291bnRzW3R5cGVdICYmIExpdmVOb2RlTGlzdEJh
c2U6OnNob3VsZEludmFsaWRhdGVUeXBlT25BdHRyaWJ1dGVDaGFuZ2Uoc3RhdGljX2Nhc3Q8Tm9k
ZUxpc3RJbnZhbGlkYXRpb25UeXBlPih0eXBlKSwgYXR0ck5hbWUpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICByZXR1cm4gc2hvdWxkSW52YWxpZGF0ZU5vZGVMaXN0Q2FjaGVzRm9yQXR0cjx0
eXBlICsgMT4obm9kZUxpc3RDb3VudHMsIGF0dHJOYW1lKTsKIH0KQEAgLTk5Nyw4ICs5OTcsOCBA
QCBib29sIERvY3VtZW50OjpzaG91bGRJbnZhbGlkYXRlTm9kZUxpc3RDCiAKIHZvaWQgRG9jdW1l
bnQ6OmludmFsaWRhdGVOb2RlTGlzdENhY2hlcyhjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyTmFt
ZSkKIHsKLSAgICBIYXNoU2V0PER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSo+OjppdGVyYXRvciBl
bmQgPSBtX2xpc3RzSW52YWxpZGF0ZWRBdERvY3VtZW50LmVuZCgpOwotICAgIGZvciAoSGFzaFNl
dDxEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UqPjo6aXRlcmF0b3IgaXQgPSBtX2xpc3RzSW52YWxp
ZGF0ZWRBdERvY3VtZW50LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICBIYXNoU2V0PExp
dmVOb2RlTGlzdEJhc2UqPjo6aXRlcmF0b3IgZW5kID0gbV9saXN0c0ludmFsaWRhdGVkQXREb2N1
bWVudC5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8TGl2ZU5vZGVMaXN0QmFzZSo+OjppdGVyYXRv
ciBpdCA9IG1fbGlzdHNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KQogICAgICAgICAoKml0KS0+aW52YWxpZGF0ZUNhY2hlKGF0dHJOYW1lKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCShyZXZpc2lvbiAxMzU2NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw2IEBAIGNsYXNzIENsYXNzTm9kZUxpc3Q7
CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRE9NU2V0dGFibGVUb2tlbkxpc3Q7CiBjbGFz
cyBEb2N1bWVudDsKLWNsYXNzIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q7CiBjbGFzcyBFbGVtZW50
OwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudENvbnRleHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxp
c3QuaAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCA9
IDA7CiAKICAgICAgICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQotICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNEeW5hbWljTm9kZUxpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNMaXZlTm9kZUxpc3QoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJhcmVEYXRhLmgJKHJldmlzaW9uIDEzNTY2NykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5j
bHVkZSAiQ2hpbGROb2RlTGlzdC5oIgogI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0Lmgi
Ci0jaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiTGl2ZU5vZGVMaXN0Lmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC01OSw4ICs1
OSw4IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSBEZWZhdWx0SGFzaDxTdHJpbmdUeXBlPjo6SGFzaDo6c2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQ7CiAgICAgfTsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxzdGQ6
OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3RyaW5nPiwgRHluYW1pY05vZGVMaXN0Q2FjaGVC
YXNlKiwgTm9kZUxpc3RDYWNoZU1hcEVudHJ5SGFzaDxBdG9taWNTdHJpbmc+ID4gTm9kZUxpc3RB
dG9taWNOYW1lQ2FjaGVNYXA7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25l
ZCBjaGFyLCBTdHJpbmc+LCBEeW5hbWljU3VidHJlZU5vZGVMaXN0KiwgTm9kZUxpc3RDYWNoZU1h
cEVudHJ5SGFzaDxTdHJpbmc+ID4gTm9kZUxpc3ROYW1lQ2FjaGVNYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFyLCBBdG9taWNTdHJpbmc+LCBMaXZlTm9kZUxp
c3RCYXNlKiwgTm9kZUxpc3RDYWNoZU1hcEVudHJ5SGFzaDxBdG9taWNTdHJpbmc+ID4gTm9kZUxp
c3RBdG9taWNOYW1lQ2FjaGVNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNp
Z25lZCBjaGFyLCBTdHJpbmc+LCBMaXZlTm9kZUxpc3RCYXNlKiwgTm9kZUxpc3RDYWNoZU1hcEVu
dHJ5SGFzaDxTdHJpbmc+ID4gTm9kZUxpc3ROYW1lQ2FjaGVNYXA7CiAgICAgdHlwZWRlZiBIYXNo
TWFwPFF1YWxpZmllZE5hbWUsIFRhZ05vZGVMaXN0Kj4gVGFnTm9kZUxpc3RDYWNoZU5TOwogCiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTExNywxOSArMTE3LDE5IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogICAgIH0KIAotICAgIHZvaWQgcmVtb3ZlQ2Fj
aGVXaXRoQXRvbWljTmFtZShEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UqIGxpc3QsIENvbGxlY3Rp
b25UeXBlIGNvbGxlY3Rpb25UeXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBzdGFyQXRv
bSkKKyAgICB2b2lkIHJlbW92ZUNhY2hlV2l0aEF0b21pY05hbWUoTGl2ZU5vZGVMaXN0QmFzZSog
bGlzdCwgQ29sbGVjdGlvblR5cGUgY29sbGVjdGlvblR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSA9IHN0YXJBdG9tKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChsaXN0LCBsaXN0
ID09IG1fYXRvbWljTmFtZUNhY2hlcy5nZXQobmFtZWROb2RlTGlzdEtleShjb2xsZWN0aW9uVHlw
ZSwgbmFtZSkpKTsKICAgICAgICAgbV9hdG9taWNOYW1lQ2FjaGVzLnJlbW92ZShuYW1lZE5vZGVM
aXN0S2V5KGNvbGxlY3Rpb25UeXBlLCBuYW1lKSk7CiAgICAgfQogCi0gICAgdm9pZCByZW1vdmVD
YWNoZVdpdGhOYW1lKER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QqIGxpc3QsIENvbGxlY3Rpb25UeXBl
IGNvbGxlY3Rpb25UeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgdm9pZCByZW1vdmVDYWNo
ZVdpdGhOYW1lKExpdmVOb2RlTGlzdEJhc2UqIGxpc3QsIENvbGxlY3Rpb25UeXBlIGNvbGxlY3Rp
b25UeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VE
KGxpc3QsIGxpc3QgPT0gbV9uYW1lQ2FjaGVzLmdldChuYW1lZE5vZGVMaXN0S2V5KGNvbGxlY3Rp
b25UeXBlLCBuYW1lKSkpOwogICAgICAgICBtX25hbWVDYWNoZXMucmVtb3ZlKG5hbWVkTm9kZUxp
c3RLZXkoY29sbGVjdGlvblR5cGUsIG5hbWUpKTsKICAgICB9CiAKLSAgICB2b2lkIHJlbW92ZUNh
Y2hlV2l0aFF1YWxpZmllZE5hbWUoRHluYW1pY1N1YnRyZWVOb2RlTGlzdCogbGlzdCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1l
KQorICAgIHZvaWQgcmVtb3ZlQ2FjaGVXaXRoUXVhbGlmaWVkTmFtZShMaXZlTm9kZUxpc3QqIGxp
c3QsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsTmFtZSkKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5hbWUgbmFtZShudWxsQXRvbSwg
bG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpOwogICAgICAgICBBU1NFUlRfVU5VU0VEKGxpc3QsIGxp
c3QgPT0gbV90YWdOb2RlTGlzdENhY2hlTlMuZ2V0KG5hbWUpKTsKQEAgLTE1NCwyMSArMTU0LDIx
IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG9sZERvY3VtZW50ICE9IG5ld0RvY3VtZW50KSB7CiAg
ICAgICAgICAgICBOb2RlTGlzdEF0b21pY05hbWVDYWNoZU1hcDo6Y29uc3RfaXRlcmF0b3IgYXRv
bWljTmFtZUNhY2hlRW5kID0gbV9hdG9taWNOYW1lQ2FjaGVzLmVuZCgpOwogICAgICAgICAgICAg
Zm9yIChOb2RlTGlzdEF0b21pY05hbWVDYWNoZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2F0
b21pY05hbWVDYWNoZXMuYmVnaW4oKTsgaXQgIT0gYXRvbWljTmFtZUNhY2hlRW5kOyArK2l0KSB7
Ci0gICAgICAgICAgICAgICAgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKiBsaXN0ID0gaXQtPnZh
bHVlOworICAgICAgICAgICAgICAgIExpdmVOb2RlTGlzdEJhc2UqIGxpc3QgPSBpdC0+dmFsdWU7
CiAgICAgICAgICAgICAgICAgb2xkRG9jdW1lbnQtPnVucmVnaXN0ZXJOb2RlTGlzdENhY2hlKGxp
c3QpOwogICAgICAgICAgICAgICAgIG5ld0RvY3VtZW50LT5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUo
bGlzdCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5vZGVMaXN0TmFtZUNhY2hlTWFw
Ojpjb25zdF9pdGVyYXRvciBuYW1lQ2FjaGVFbmQgPSBtX25hbWVDYWNoZXMuZW5kKCk7CiAgICAg
ICAgICAgICBmb3IgKE5vZGVMaXN0TmFtZUNhY2hlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1f
bmFtZUNhY2hlcy5iZWdpbigpOyBpdCAhPSBuYW1lQ2FjaGVFbmQ7ICsraXQpIHsKLSAgICAgICAg
ICAgICAgICBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UqIGxpc3QgPSBpdC0+dmFsdWU7CisgICAg
ICAgICAgICAgICAgTGl2ZU5vZGVMaXN0QmFzZSogbGlzdCA9IGl0LT52YWx1ZTsKICAgICAgICAg
ICAgICAgICBvbGREb2N1bWVudC0+dW5yZWdpc3Rlck5vZGVMaXN0Q2FjaGUobGlzdCk7CiAgICAg
ICAgICAgICAgICAgbmV3RG9jdW1lbnQtPnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShsaXN0KTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgVGFnTm9kZUxpc3RDYWNoZU5TOjpjb25zdF9pdGVy
YXRvciB0YWdFbmQgPSBtX3RhZ05vZGVMaXN0Q2FjaGVOUy5lbmQoKTsKICAgICAgICAgICAgIGZv
ciAoVGFnTm9kZUxpc3RDYWNoZU5TOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fdGFnTm9kZUxpc3RD
YWNoZU5TLmJlZ2luKCk7IGl0ICE9IHRhZ0VuZDsgKytpdCkgewotICAgICAgICAgICAgICAgIER5
bmFtaWNOb2RlTGlzdENhY2hlQmFzZSogbGlzdCA9IGl0LT52YWx1ZTsKKyAgICAgICAgICAgICAg
ICBMaXZlTm9kZUxpc3RCYXNlKiBsaXN0ID0gaXQtPnZhbHVlOwogICAgICAgICAgICAgICAgIEFT
U0VSVCghbGlzdC0+aXNSb290ZWRBdERvY3VtZW50KCkpOwogICAgICAgICAgICAgICAgIG9sZERv
Y3VtZW50LT51bnJlZ2lzdGVyTm9kZUxpc3RDYWNoZShsaXN0KTsKICAgICAgICAgICAgICAgICBu
ZXdEb2N1bWVudC0+cmVnaXN0ZXJOb2RlTGlzdENhY2hlKGxpc3QpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3
ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKIFByb3BlcnR5Tm9kZUxpc3Q6OlByb3BlcnR5Tm9kZUxpc3QoTm9kZSogcm9vdE5vZGUsIGNv
bnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qocm9vdE5vZGUs
IFByb3BlcnR5Tm9kZUxpc3RUeXBlLCBJbnZhbGlkYXRlT25JdGVtQXR0ckNoYW5nZSwgTm9kZUxp
c3RJc1Jvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIpCisgICAgOiBMaXZlTm9k
ZUxpc3Qocm9vdE5vZGUsIFByb3BlcnR5Tm9kZUxpc3RUeXBlLCBJbnZhbGlkYXRlT25JdGVtQXR0
ckNoYW5nZSwgTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIp
CiAgICAgLCBtX25hbWUobmFtZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9w
ZXJ0eU5vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5
Tm9kZUxpc3QuaAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3Bl
cnR5Tm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogI2RlZmluZSBQ
cm9wZXJ0eU5vZGVMaXN0X2gKIAogI2lmIEVOQUJMRShNSUNST0RBVEEpCi0jaW5jbHVkZSAiRHlu
YW1pY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiTGl2ZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTWlj
cm9EYXRhSXRlbVZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gPiBQcm9wZXJ0eVZhbHVl
QXJyYXk7CiAKLWNsYXNzIFByb3BlcnR5Tm9kZUxpc3QgOiBwdWJsaWMgRHluYW1pY1N1YnRyZWVO
b2RlTGlzdCB7CitjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0IDogcHVibGljIExpdmVOb2RlTGlzdCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gY3JlYXRl
KE5vZGUqIHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgewpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL1RhZ05vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vVGFnTm9kZUxpc3QuY3BwCShyZXZpc2lvbiAxMzU2NjcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vVGFnTm9kZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRhZ05vZGVMaXN0OjpUYWdOb2RlTGlzdChQYXNzUmVmUHRy
PE5vZGU+IHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCi0gICAgOiBEeW5hbWljU3VidHJlZU5vZGVMaXN0KHJv
b3ROb2RlLCBUYWdOb2RlTGlzdFR5cGUsIERvTm90SW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdl
cykKKyAgICA6IExpdmVOb2RlTGlzdChyb290Tm9kZSwgVGFnTm9kZUxpc3RUeXBlLCBEb05vdElu
dmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5nZXMpCiAgICAgLCBtX25hbWVzcGFjZVVSSShuYW1lc3Bh
Y2VVUkkpCiAgICAgLCBtX2xvY2FsTmFtZShsb2NhbE5hbWUpCiB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vVGFnTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
VGFnTm9kZUxpc3QuaAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Rh
Z05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEzICsyNCwxMyBAQAogI2lmbmRlZiBU
YWdOb2RlTGlzdF9oCiAjZGVmaW5lIFRhZ05vZGVMaXN0X2gKIAotI2luY2x1ZGUgIkR5bmFtaWNO
b2RlTGlzdC5oIgorI2luY2x1ZGUgIkxpdmVOb2RlTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAvLyBOb2RlTGlz
dCB0aGF0IGxpbWl0cyB0byBhIHBhcnRpY3VsYXIgdGFnLgotICAgIGNsYXNzIFRhZ05vZGVMaXN0
IDogcHVibGljIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QgeworICAgIGNsYXNzIFRhZ05vZGVMaXN0
IDogcHVibGljIExpdmVOb2RlTGlzdCB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxUYWdOb2RlTGlzdD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gcm9vdE5vZGUsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
TmFtZSkKICAgICAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5j
cHAJKHJldmlzaW9uIDEzNTY2NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIE5vZGVMaXN0
SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYQogICAgIAogCiBIVE1MQ29sbGVjdGlvbjo6SFRNTENv
bGxlY3Rpb24oTm9kZSogb3duZXJOb2RlLCBDb2xsZWN0aW9uVHlwZSB0eXBlLCBJdGVtQWZ0ZXJP
dmVycmlkZVR5cGUgaXRlbUFmdGVyT3ZlcnJpZGVUeXBlKQotICAgIDogRHluYW1pY05vZGVMaXN0
Q2FjaGVCYXNlKG93bmVyTm9kZSwgcm9vdFR5cGVGcm9tQ29sbGVjdGlvblR5cGUodHlwZSksIGlu
dmFsaWRhdGlvblR5cGVFeGNsdWRpbmdJZEFuZE5hbWVBdHRyaWJ1dGVzKHR5cGUpLAorICAgIDog
TGl2ZU5vZGVMaXN0QmFzZShvd25lck5vZGUsIHJvb3RUeXBlRnJvbUNvbGxlY3Rpb25UeXBlKHR5
cGUpLCBpbnZhbGlkYXRpb25UeXBlRXhjbHVkaW5nSWRBbmROYW1lQXR0cmlidXRlcyh0eXBlKSwK
ICAgICAgICAgV2ViQ29yZTo6c2hvdWxkT25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbih0eXBlKSwg
dHlwZSwgaXRlbUFmdGVyT3ZlcnJpZGVUeXBlKQogewogICAgIGRvY3VtZW50KCktPnJlZ2lzdGVy
Tm9kZUxpc3RDYWNoZSh0aGlzKTsKQEAgLTI5MCwxNCArMjkwLDE0IEBAIHN0YXRpYyBOb2RlKiBm
aXJzdE5vZGUoYm9vbCBmb3J3YXJkLCBOb2QKIH0KIAogdGVtcGxhdGUgPGJvb2wgZm9yd2FyZD4K
LU5vZGUqIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6aXRlcmF0ZUZvck5leHROb2RlKE5vZGUq
IGN1cnJlbnQpIGNvbnN0CitOb2RlKiBMaXZlTm9kZUxpc3RCYXNlOjppdGVyYXRlRm9yTmV4dE5v
ZGUoTm9kZSogY3VycmVudCkgY29uc3QKIHsKICAgICBib29sIG9ubHlJbmNsdWRlRGlyZWN0Q2hp
bGRyZW4gPSBzaG91bGRPbmx5SW5jbHVkZURpcmVjdENoaWxkcmVuKCk7CiAgICAgQ29sbGVjdGlv
blR5cGUgY29sbGVjdGlvblR5cGUgPSB0eXBlKCk7CiAgICAgTm9kZSogcm9vdE5vZGUgPSB0aGlz
LT5yb290Tm9kZSgpOwogICAgIGZvciAoOyBjdXJyZW50OyBjdXJyZW50ID0gbmV4dE5vZGU8Zm9y
d2FyZD4ocm9vdE5vZGUsIGN1cnJlbnQsIG9ubHlJbmNsdWRlRGlyZWN0Q2hpbGRyZW4pKSB7CiAg
ICAgICAgIGlmIChpc05vZGVMaXN0KGNvbGxlY3Rpb25UeXBlKSkgewotICAgICAgICAgICAgaWYg
KGN1cnJlbnQtPmlzRWxlbWVudE5vZGUoKSAmJiBzdGF0aWNfY2FzdDxjb25zdCBEeW5hbWljTm9k
ZUxpc3QqPih0aGlzKS0+bm9kZU1hdGNoZXModG9FbGVtZW50KGN1cnJlbnQpKSkKKyAgICAgICAg
ICAgIGlmIChjdXJyZW50LT5pc0VsZW1lbnROb2RlKCkgJiYgc3RhdGljX2Nhc3Q8Y29uc3QgTGl2
ZU5vZGVMaXN0Kj4odGhpcyktPm5vZGVNYXRjaGVzKHRvRWxlbWVudChjdXJyZW50KSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRvRWxlbWVudChjdXJyZW50KTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGlmIChjdXJyZW50LT5pc0VsZW1lbnROb2RlKCkgJiYgaXNBY2NlcHRhYmxl
RWxlbWVudChjb2xsZWN0aW9uVHlwZSwgdG9FbGVtZW50KGN1cnJlbnQpKSkKQEAgLTMxMCw3ICsz
MTAsNyBAQCBOb2RlKiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6Oml0ZXJhdGVGCiAKIC8vIFdp
dGhvdXQgdGhpcyBBTFdBWVNfSU5MSU5FLCBsZW5ndGgoKSBhbmQgaXRlbSgpIGNhbiBiZSAxMDAl
IHNsb3dlci4KIHRlbXBsYXRlPGJvb2wgZm9yd2FyZD4gQUxXQVlTX0lOTElORQotTm9kZSogRHlu
YW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppdGVtQmVmb3JlT3JBZnRlcihOb2RlKiBwcmV2aW91cykg
Y29uc3QKK05vZGUqIExpdmVOb2RlTGlzdEJhc2U6Oml0ZW1CZWZvcmVPckFmdGVyKE5vZGUqIHBy
ZXZpb3VzKSBjb25zdAogewogICAgIE5vZGUqIGN1cnJlbnQ7CiAgICAgaWYgKExJS0VMWSghIXBy
ZXZpb3VzKSkgLy8gV2l0aG91dCB0aGlzIExJS0VMWSwgbGVuZ3RoKCkgYW5kIGl0ZW0oKSBjYW4g
YmUgMTAlIHNsb3dlci4KQEAgLTMyNSwxMyArMzI1LDEzIEBAIE5vZGUqIER5bmFtaWNOb2RlTGlz
dENhY2hlQmFzZTo6aXRlbUJlZm8KIH0KIAogLy8gV2l0aG91dCB0aGlzIEFMV0FZU19JTkxJTkUs
IGxlbmd0aCgpIGFuZCBpdGVtKCkgY2FuIGJlIDEwMCUgc2xvd2VyLgotQUxXQVlTX0lOTElORSBO
b2RlKiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6Oml0ZW1CZWZvcmUoTm9kZSogcHJldmlvdXMp
IGNvbnN0CitBTFdBWVNfSU5MSU5FIE5vZGUqIExpdmVOb2RlTGlzdEJhc2U6Oml0ZW1CZWZvcmUo
Tm9kZSogcHJldmlvdXMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGl0ZW1CZWZvcmVPckFmdGVyPGZh
bHNlPihwcmV2aW91cyk7CiB9CiAKIC8vIFdpdGhvdXQgdGhpcyBBTFdBWVNfSU5MSU5FLCBsZW5n
dGgoKSBhbmQgaXRlbSgpIGNhbiBiZSAxMDAlIHNsb3dlci4KLUFMV0FZU19JTkxJTkUgTm9kZSog
RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppdGVtQWZ0ZXIodW5zaWduZWQmIG9mZnNldEluQXJy
YXksIE5vZGUqIHByZXZpb3VzKSBjb25zdAorQUxXQVlTX0lOTElORSBOb2RlKiBMaXZlTm9kZUxp
c3RCYXNlOjppdGVtQWZ0ZXIodW5zaWduZWQmIG9mZnNldEluQXJyYXksIE5vZGUqIHByZXZpb3Vz
KSBjb25zdAogewogICAgIGlmIChVTkxJS0VMWShvdmVycmlkZXNJdGVtQWZ0ZXIoKSkpIC8vIFdp
dGhvdXQgdGhpcyBVTkxJS0VMWSwgbGVuZ3RoKCkgY2FuIGJlIDEwMCUgc2xvd2VyLgogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTENvbGxlY3Rpb24qPih0aGlzKS0+dmlydHVh
bEl0ZW1BZnRlcihvZmZzZXRJbkFycmF5LCB0b0VsZW1lbnQocHJldmlvdXMpKTsKQEAgLTMzOSw3
ICszMzksNyBAQCBBTFdBWVNfSU5MSU5FIE5vZGUqIER5bmFtaWNOb2RlTGlzdENhY2hlCiAgICAg
cmV0dXJuIGl0ZW1CZWZvcmVPckFmdGVyPHRydWU+KHByZXZpb3VzKTsKIH0KIAotYm9vbCBBTFdB
WVNfSU5MSU5FIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6aXNMYXN0SXRlbUNsb3NlclRoYW5M
YXN0T3JDYWNoZWRJdGVtKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKK2Jvb2wgQUxXQVlTX0lOTElO
RSBMaXZlTm9kZUxpc3RCYXNlOjppc0xhc3RJdGVtQ2xvc2VyVGhhbkxhc3RPckNhY2hlZEl0ZW0o
dW5zaWduZWQgb2Zmc2V0KSBjb25zdAogewogICAgIEFTU0VSVChpc0xlbmd0aENhY2hlVmFsaWQo
KSk7CiAgICAgdW5zaWduZWQgZGlzdGFuY2VGcm9tTGFzdEl0ZW0gPSBjYWNoZWRMZW5ndGgoKSAt
IG9mZnNldDsKQEAgLTM0OSw3ICszNDksNyBAQCBib29sIEFMV0FZU19JTkxJTkUgRHluYW1pY05v
ZGVMaXN0Q2FjaGVCCiAgICAgcmV0dXJuIGNhY2hlZEl0ZW1PZmZzZXQoKSA8IG9mZnNldCAmJiBk
aXN0YW5jZUZyb21MYXN0SXRlbSA8IG9mZnNldCAtIGNhY2hlZEl0ZW1PZmZzZXQoKTsKIH0KICAg
ICAKLWJvb2wgQUxXQVlTX0lOTElORSBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OmlzRmlyc3RJ
dGVtQ2xvc2VyVGhhbkNhY2hlZEl0ZW0odW5zaWduZWQgb2Zmc2V0KSBjb25zdAorYm9vbCBBTFdB
WVNfSU5MSU5FIExpdmVOb2RlTGlzdEJhc2U6OmlzRmlyc3RJdGVtQ2xvc2VyVGhhbkNhY2hlZEl0
ZW0odW5zaWduZWQgb2Zmc2V0KSBjb25zdAogewogICAgIEFTU0VSVChpc0l0ZW1DYWNoZVZhbGlk
KCkpOwogICAgIGlmIChjYWNoZWRJdGVtT2Zmc2V0KCkgPCBvZmZzZXQpCkBAIC0zNTksNyArMzU5
LDcgQEAgYm9vbCBBTFdBWVNfSU5MSU5FIER5bmFtaWNOb2RlTGlzdENhY2hlQgogICAgIHJldHVy
biBvZmZzZXQgPCBkaXN0YW5jZUZyb21DYWNoZWRJdGVtOwogfQogCi1BTFdBWVNfSU5MSU5FIHZv
aWQgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpzZXRJdGVtQ2FjaGUoTm9kZSogaXRlbSwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBlbGVtZW50c0FycmF5T2Zmc2V0KSBjb25zdAorQUxXQVlT
X0lOTElORSB2b2lkIExpdmVOb2RlTGlzdEJhc2U6OnNldEl0ZW1DYWNoZShOb2RlKiBpdGVtLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGVsZW1lbnRzQXJyYXlPZmZzZXQpIGNvbnN0CiB7CiAg
ICAgc2V0SXRlbUNhY2hlKGl0ZW0sIG9mZnNldCk7CiAgICAgaWYgKG92ZXJyaWRlc0l0ZW1BZnRl
cigpKSB7CkBAIC0zNjksNyArMzY5LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIER5bmFtaWNOb2Rl
TGlzdENhY2hlQgogICAgICAgICBBU1NFUlQoIWVsZW1lbnRzQXJyYXlPZmZzZXQpOwogfQogCi11
bnNpZ25lZCBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6Omxlbmd0aCgpIGNvbnN0Cit1bnNpZ25l
ZCBMaXZlTm9kZUxpc3RCYXNlOjpsZW5ndGgoKSBjb25zdAogewogICAgIGlmIChpc0xlbmd0aENh
Y2hlVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZExlbmd0aCgpOwpAQCAtMzgwLDcgKzM4
MCw3IEBAIHVuc2lnbmVkIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6bGVuZ3QKICAgICByZXR1
cm4gY2FjaGVkTGVuZ3RoKCk7CiB9CiAKLU5vZGUqIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6
aXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0CitOb2RlKiBMaXZlTm9kZUxpc3RCYXNlOjppdGVt
KHVuc2lnbmVkIG9mZnNldCkgY29uc3QKIHsKICAgICBpZiAoaXNJdGVtQ2FjaGVWYWxpZCgpICYm
IGNhY2hlZEl0ZW1PZmZzZXQoKSA9PSBvZmZzZXQpCiAgICAgICAgIHJldHVybiBjYWNoZWRJdGVt
KCk7CkBAIC00MTYsNyArNDE2LDcgQEAgTm9kZSogRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpp
dGVtKHVucwogICAgIHJldHVybiBpdGVtQmVmb3JlT3JBZnRlckNhY2hlZEl0ZW0ob2Zmc2V0KTsK
IH0KIAotTm9kZSogRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppdGVtQmVmb3JlT3JBZnRlckNh
Y2hlZEl0ZW0odW5zaWduZWQgb2Zmc2V0KSBjb25zdAorTm9kZSogTGl2ZU5vZGVMaXN0QmFzZTo6
aXRlbUJlZm9yZU9yQWZ0ZXJDYWNoZWRJdGVtKHVuc2lnbmVkIG9mZnNldCkgY29uc3QKIHsKICAg
ICB1bnNpZ25lZCBjdXJyZW50T2Zmc2V0ID0gY2FjaGVkSXRlbU9mZnNldCgpOwogICAgIE5vZGUq
IGN1cnJlbnRJdGVtID0gY2FjaGVkSXRlbSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENv
bGxlY3Rpb24uaAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjZGVmaW5lIEhU
TUxDb2xsZWN0aW9uX2gKIAogI2luY2x1ZGUgIkNvbGxlY3Rpb25UeXBlLmgiCi0jaW5jbHVkZSAi
RHluYW1pY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiTGl2ZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAi
U2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgpAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEhUTUxDb2xsZWN0aW9uIDogcHVibGljIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSB7
CitjbGFzcyBIVE1MQ29sbGVjdGlvbiA6IHB1YmxpYyBMaXZlTm9kZUxpc3RCYXNlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gY3JlYXRlKE5vZGUqIGJh
c2UsIENvbGxlY3Rpb25UeXBlKTsKICAgICB2aXJ0dWFsIH5IVE1MQ29sbGVjdGlvbigpOwpAQCAt
NzksNyArNzksNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGJvb2wgY2hlY2tGb3JOYW1l
TWF0Y2goRWxlbWVudCosIGJvb2wgY2hlY2tOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUp
IGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGlzRHluYW1pY05vZGVMaXN0KCkgY29uc3QgT1ZF
UlJJREUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNMaXZlTm9kZUxpc3QoKSBjb25zdCBPVkVSUklERSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgc3RhdGljIHZvaWQgYXBwZW5kKE5vZGVDYWNoZU1h
cCYsIGNvbnN0IEF0b21pY1N0cmluZyYsIEVsZW1lbnQqKTsKIApAQCAtODcsNyArODcsNyBAQCBw
cml2YXRlOgogICAgIG11dGFibGUgTm9kZUNhY2hlTWFwIG1fbmFtZUNhY2hlOwogICAgIG11dGFi
bGUgdW5zaWduZWQgbV9jYWNoZWRFbGVtZW50c0FycmF5T2Zmc2V0OwogCi0gICAgZnJpZW5kIGNs
YXNzIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTsKKyAgICBmcmllbmQgY2xhc3MgTGl2ZU5vZGVM
aXN0QmFzZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0xhYmVsc05vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0xh
YmVsc05vZGVMaXN0LmNwcAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9MYWJlbHNOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogTGFiZWxzTm9k
ZUxpc3Q6OkxhYmVsc05vZGVMaXN0KE5vZGUqIGZvck5vZGUpCi0gICAgOiBEeW5hbWljU3VidHJl
ZU5vZGVMaXN0KGZvck5vZGUsIExhYmVsc05vZGVMaXN0VHlwZSwgSW52YWxpZGF0ZU9uRm9yQXR0
ckNoYW5nZSwgTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQpCisgICAgOiBMaXZlTm9kZUxpc3Qo
Zm9yTm9kZSwgTGFiZWxzTm9kZUxpc3RUeXBlLCBJbnZhbGlkYXRlT25Gb3JBdHRyQ2hhbmdlLCBO
b2RlTGlzdElzUm9vdGVkQXREb2N1bWVudCkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9MYWJlbHNOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
TGFiZWxzTm9kZUxpc3QuaAkocmV2aXNpb24gMTM1NjY3KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9MYWJlbHNOb2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMTIgQEAKICNp
Zm5kZWYgTGFiZWxzTm9kZUxpc3RfaAogI2RlZmluZSBMYWJlbHNOb2RlTGlzdF9oCiAKLSNpbmNs
dWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJMaXZlTm9kZUxpc3QuaCIKICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIExh
YmVsc05vZGVMaXN0IDogcHVibGljIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3QgeworY2xhc3MgTGFi
ZWxzTm9kZUxpc3QgOiBwdWJsaWMgTGl2ZU5vZGVMaXN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxMYWJlbHNOb2RlTGlzdD4gY3JlYXRlKE5vZGUqIGZvck5vZGUsIGNvbnN0IEF0
b21pY1N0cmluZyYpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb05vZGVM
aXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3Qu
Y3BwCShyZXZpc2lvbiAxMzU2NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFJhZGlvTm9kZUxpc3Q6OlJhZGlvTm9k
ZUxpc3QoTm9kZSogcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKLSAgICA6IER5
bmFtaWNTdWJ0cmVlTm9kZUxpc3Qocm9vdE5vZGUsIFJhZGlvTm9kZUxpc3RUeXBlLCBJbnZhbGlk
YXRlRm9yRm9ybUNvbnRyb2xzLCByb290Tm9kZS0+aGFzVGFnTmFtZShmb3JtVGFnKSA/IE5vZGVM
aXN0SXNSb290ZWRBdERvY3VtZW50IDogTm9kZUxpc3RJc1Jvb3RlZEF0Tm9kZSkKKyAgICA6IExp
dmVOb2RlTGlzdChyb290Tm9kZSwgUmFkaW9Ob2RlTGlzdFR5cGUsIEludmFsaWRhdGVGb3JGb3Jt
Q29udHJvbHMsIHJvb3ROb2RlLT5oYXNUYWdOYW1lKGZvcm1UYWcpID8gTm9kZUxpc3RJc1Jvb3Rl
ZEF0RG9jdW1lbnQgOiBOb2RlTGlzdElzUm9vdGVkQXROb2RlKQogICAgICwgbV9uYW1lKG5hbWUp
CiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3QuaAkocmV2aXNpb24gMTM1
NjY3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb05vZGVMaXN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUmFkaW9Ob2RlTGlzdF9oCiAjZGVmaW5lIFJh
ZGlvTm9kZUxpc3RfaAogCi0jaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCisjaW5jbHVkZSAi
TGl2ZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzQsNyArMzQsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJhZGlvTm9kZUxpc3QgOiBwdWJsaWMgRHlu
YW1pY1N1YnRyZWVOb2RlTGlzdCB7CitjbGFzcyBSYWRpb05vZGVMaXN0IDogcHVibGljIExpdmVO
b2RlTGlzdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmFkaW9Ob2RlTGlzdD4g
Y3JlYXRlKE5vZGUqIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiAgICAgewo=
</data>
<flag name="review"
          id="191471"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>