<?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>137174</bug_id>
          
          <creation_ts>2014-09-27 00:43:19 -0700</creation_ts>
          <short_desc>Automatically generate template specializations for most Elements</short_desc>
          <delta_ts>2014-09-28 19:13:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbarton</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1037649</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-27 00:43:19 -0700</bug_when>
    <thetext>Currently, the template specializations to make is&lt;&gt;() / downcast&lt;&gt;() work for HTML/SVG/MathML elements are only generated if &quot;generateTypeHelpers&quot; parameter is explicitly specified for the corresponding tag name in the *Tags.in file. We are however able to generate the template specializations for most types so I would propose we generate those helpers by default.

One case we cannot generate the specialization is when a class is associated to several tag names but the make_names.pl script could easily detect this and skip those classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037650</commentid>
    <comment_count>1</comment_count>
      <attachid>238768</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-27 00:50:04 -0700</bug_when>
    <thetext>Created attachment 238768
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037677</commentid>
    <comment_count>2</comment_count>
      <attachid>238781</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-27 10:59:14 -0700</bug_when>
    <thetext>Created attachment 238781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037678</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-27 11:00:56 -0700</bug_when>
    <thetext>Attachment 238781 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGAnimateElement.h:82:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 14 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>1037827</commentid>
    <comment_count>4</comment_count>
      <attachid>238781</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-09-28 17:27:44 -0700</bug_when>
    <thetext>Comment on attachment 238781
Patch

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

Looks great.

&gt; Source/WebCore/svg/SVGAnimateElement.h:35
&gt; +class SVGAnimateElementBase : public SVGAnimationElement {

I think we should consider moving SVGAnimateElementBase to its own separate source file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037846</commentid>
    <comment_count>5</comment_count>
      <attachid>238833</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-28 18:17:18 -0700</bug_when>
    <thetext>Created attachment 238833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037848</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-28 18:18:36 -0700</bug_when>
    <thetext>Attachment 238833 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGAnimateElementBase.h:81:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 34 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>1037857</commentid>
    <comment_count>7</comment_count>
      <attachid>238833</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-28 19:13:47 -0700</bug_when>
    <thetext>Comment on attachment 238833
Patch

Clearing flags on attachment: 238833

Committed r174050: &lt;http://trac.webkit.org/changeset/174050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037858</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-28 19:13:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238768</attachid>
            <date>2014-09-27 00:50:04 -0700</date>
            <delta_ts>2014-09-27 10:59:08 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>137174_drop_generateTypeHelpers.patch</filename>
            <type>text/plain</type>
            <size>13708</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dl
YkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5kZXggZDA4MjYwMS4uNDE2Njg1YiAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKQEAgLTE5NCw3ICsxOTQsNyBAQCBzdWIgZGVmYXVsdFRhZ1Byb3Bl
cnR5SGFzaAogICAgICAgICAnd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUnID0+IDAsCiAg
ICAgICAgICdjb25kaXRpb25hbCcgPT4gMCwKICAgICAgICAgJ3J1bnRpbWVDb25kaXRpb25hbCcg
PT4gMCwKLSAgICAgICAgJ2dlbmVyYXRlVHlwZUhlbHBlcnMnID0+IDAKKyAgICAgICAgJ25vVHlw
ZUhlbHBlcnMnID0+IDAsCiAgICAgKTsKIH0KIApAQCAtNjI3LDEyICs2MjcsMjAgQEAgc3ViIHBy
aW50VHlwZUhlbHBlcnMKICAgICBteSAoJEYsICRuYW1lc1JlZikgPSBAXzsKICAgICBteSAlbmFt
ZXMgPSAlJG5hbWVzUmVmOwogCi0gICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJW5hbWVzKSB7
Ci0gICAgICAgIGlmICghJHBhcnNlZFRhZ3N7JG5hbWV9e2dlbmVyYXRlVHlwZUhlbHBlcnN9KSB7
CisgICAgIyBEbyBhIGZpcnN0IHBhc3MgdG8gZGlzY2FyZCBjbGFzc2VzIHRoYXQgbWFwIHRvIHNl
dmVyYWwgdGFncy4KKyAgICBteSAlY2xhc3NUb1RhZ3MgPSAoKTsKKyAgICBmb3IgbXkgJG5hbWUg
KGtleXMgJW5hbWVzKSB7CisgICAgICAgIG15ICRjbGFzcyA9ICRwYXJzZWRUYWdzeyRuYW1lfXtp
bnRlcmZhY2VOYW1lfTsKKyAgICAgICAgcHVzaChAeyRjbGFzc1RvVGFnc3skY2xhc3N9fSwgJG5h
bWUpIGlmIGRlZmluZWQgJGNsYXNzOworICAgIH0KKworICAgIGZvciBteSAkY2xhc3MgKHNvcnQg
a2V5cyAlY2xhc3NUb1RhZ3MpIHsKKyAgICAgICAgIyBTa2lwIGNsYXNzZXMgdGhhdCBtYXAgdG8g
bW9yZSB0aGFuIDEgdGFnLgorICAgICAgICBteSAkbmFtZSA9ICRjbGFzc1RvVGFnc3skY2xhc3N9
WzBdOworICAgICAgICBteSAkdGFnQ291bnQgPSBzY2FsYXIgQHskY2xhc3NUb1RhZ3N7JGNsYXNz
fX07CisgICAgICAgIGlmICgkcGFyc2VkVGFnc3skbmFtZX17bm9UeXBlSGVscGVyc30gb3IgJHRh
Z0NvdW50ID4gMSkgewogICAgICAgICAgICAgbmV4dDsKICAgICAgICAgfQotCi0gICAgICAgIG15
ICRjbGFzcyA9ICRwYXJzZWRUYWdzeyRuYW1lfXtpbnRlcmZhY2VOYW1lfTsKICAgICAgICAgcHJp
bnQgRiA8PEVORAogY2xhc3MgJGNsYXNzOwogdGVtcGxhdGUgPHR5cGVuYW1lIEFyZ1R5cGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCmluZGV4IDBmYzhiMDQuLjliYjUxYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCkBAIC0zLDI4ICszLDI4IEBAIG5hbWVzcGFjZVBy
ZWZpeD0ieGh0bWwiCiBuYW1lc3BhY2VVUkk9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
CiBmYWxsYmFja0ludGVyZmFjZU5hbWU9IkhUTUxVbmtub3duRWxlbWVudCIKIAotYSBpbnRlcmZh
Y2VOYW1lPUhUTUxBbmNob3JFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCithIGludGVyZmFj
ZU5hbWU9SFRNTEFuY2hvckVsZW1lbnQKIGFiYnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAog
YWNyb255bSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBhZGRyZXNzIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKLWFwcGxldCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5l
cmF0ZVR5cGVIZWxwZXJzCi1hcmVhIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2FwcGxldCBjb25zdHJ1
Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCithcmVhCiBhcnRpY2xlIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKIGFzaWRlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWF1ZGlvIHdyYXBwZXJP
bmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgY29uc3RydWN0b3JOZWVk
c0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycworYXVkaW8gd3JhcHBlck9ubHlJ
Zk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1Y3Rvck5lZWRzQ3Jl
YXRlZEJ5UGFyc2VyCiBiIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWJhc2UgZ2VuZXJhdGVU
eXBlSGVscGVycworYmFzZQogYmFzZWZvbnQgaW50ZXJmYWNlTmFtZT1IVE1MQmFzZUZvbnRFbGVt
ZW50Ci1iZGkgaW50ZXJmYWNlTmFtZT1IVE1MQkRJRWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitiZGkgaW50ZXJmYWNlTmFtZT1IVE1MQkRJ
RWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBiZG8gaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogYmdzb3VuZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBiaWcgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAogYmxvY2txdW90ZSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVs
ZW1lbnQKLWJvZHkgZ2VuZXJhdGVUeXBlSGVscGVycwotYnIgaW50ZXJmYWNlTmFtZT1IVE1MQlJF
bGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1idXR0b24gY29uc3RydWN0b3JOZWVkc0Zvcm1F
bGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1jYW52YXMgZ2VuZXJhdGVUeXBlSGVscGVycwot
Y2FwdGlvbiBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LCBnZW5lcmF0ZVR5
cGVIZWxwZXJzCitib2R5CiticiBpbnRlcmZhY2VOYW1lPUhUTUxCUkVsZW1lbnQKK2J1dHRvbiBj
b25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKK2NhbnZhcworY2FwdGlvbiBpbnRlcmZhY2VOYW1l
PUhUTUxUYWJsZUNhcHRpb25FbGVtZW50CiBjZW50ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAogY2l0ZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBjb2RlIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKQEAgLTMyLDczICszMiw3MyBAQCBjb2wgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVD
b2xFbGVtZW50CiBjb2xncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNvbEVsZW1lbnQKIGNv
bW1hbmQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogd2Via2l0U2hhZG93Q29udGVudCBpbnRl
cmZhY2VOYW1lPUhUTUxFbGVtZW50LCBub0NvbnN0cnVjdG9yCi1kYXRhbGlzdCBpbnRlcmZhY2VO
YW1lPUhUTUxEYXRhTGlzdEVsZW1lbnQsIGNvbmRpdGlvbmFsPURBVEFMSVNUX0VMRU1FTlQsIGdl
bmVyYXRlVHlwZUhlbHBlcnMKK2RhdGFsaXN0IGludGVyZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxl
bWVudCwgY29uZGl0aW9uYWw9REFUQUxJU1RfRUxFTUVOVAogZGQgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAogZGVsIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1lbnQKLWRldGFpbHMgY29uZGl0
aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzIAorZGV0YWlscyBjb25k
aXRpb25hbD1ERVRBSUxTX0VMRU1FTlQKIGRmbiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBk
aXIgaW50ZXJmYWNlTmFtZT1IVE1MRGlyZWN0b3J5RWxlbWVudAotZGl2IGdlbmVyYXRlVHlwZUhl
bHBlcnMKK2RpdgogZGwgaW50ZXJmYWNlTmFtZT1IVE1MRExpc3RFbGVtZW50CiBkdCBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50CiBlbSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1lbWJlZCBj
b25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1maWVs
ZHNldCBpbnRlcmZhY2VOYW1lPUhUTUxGaWVsZFNldEVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNG
b3JtRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycworZW1iZWQgY29uc3RydWN0b3JOZWVkc0Ny
ZWF0ZWRCeVBhcnNlcgorZmllbGRzZXQgaW50ZXJmYWNlTmFtZT1IVE1MRmllbGRTZXRFbGVtZW50
LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIGZpZ2NhcHRpb24gaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogZmlndXJlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWZvbnQgZ2VuZXJh
dGVUeXBlSGVscGVycworZm9udAogZm9vdGVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWZv
cm0gZ2VuZXJhdGVUeXBlSGVscGVycwotZnJhbWUgZ2VuZXJhdGVUeXBlSGVscGVycwotZnJhbWVz
ZXQgaW50ZXJmYWNlTmFtZT1IVE1MRnJhbWVTZXRFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJz
Citmb3JtCitmcmFtZQorZnJhbWVzZXQgaW50ZXJmYWNlTmFtZT1IVE1MRnJhbWVTZXRFbGVtZW50
CiBoMSBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudAogaDIgaW50ZXJmYWNlTmFtZT1I
VE1MSGVhZGluZ0VsZW1lbnQKIGgzIGludGVyZmFjZU5hbWU9SFRNTEhlYWRpbmdFbGVtZW50CiBo
NCBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudAogaDUgaW50ZXJmYWNlTmFtZT1IVE1M
SGVhZGluZ0VsZW1lbnQKIGg2IGludGVyZmFjZU5hbWU9SFRNTEhlYWRpbmdFbGVtZW50Ci1oZWFk
IGdlbmVyYXRlVHlwZUhlbHBlcnMKK2hlYWQKIGhlYWRlciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50CiBoZ3JvdXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotaHIgaW50ZXJmYWNlTmFtZT1I
VE1MSFJFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1odG1sIGdlbmVyYXRlVHlwZUhlbHBl
cnMKK2hyIGludGVyZmFjZU5hbWU9SFRNTEhSRWxlbWVudAoraHRtbAogaSBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50Ci1pZnJhbWUgaW50ZXJmYWNlTmFtZT1IVE1MSUZyYW1lRWxlbWVudCwgZ2Vu
ZXJhdGVUeXBlSGVscGVycworaWZyYW1lIGludGVyZmFjZU5hbWU9SFRNTElGcmFtZUVsZW1lbnQK
IGltYWdlIGludGVyZmFjZU5hbWU9SFRNTFVua25vd25FbGVtZW50Ci1pbWcgaW50ZXJmYWNlTmFt
ZT1IVE1MSW1hZ2VFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRl
VHlwZUhlbHBlcnMKLWlucHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0
b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycworaW1nIGludGVyZmFj
ZU5hbWU9SFRNTEltYWdlRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CitpbnB1
dCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQ
YXJzZXIKIGlucyBpbnRlcmZhY2VOYW1lPUhUTUxNb2RFbGVtZW50CiBpc2luZGV4IGludGVyZmFj
ZU5hbWU9SFRNTFVua25vd25FbGVtZW50CiBrYmQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAog
a2V5Z2VuIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAotbGFiZWwgZ2VuZXJhdGVUeXBlSGVs
cGVycworbGFiZWwKIGxheWVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWxlZ2VuZCBnZW5l
cmF0ZVR5cGVIZWxwZXJzCitsZWdlbmQKIGxpIGludGVyZmFjZU5hbWU9SFRNTExJRWxlbWVudAot
bGluayBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJz
CitsaW5rIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKIGxpc3RpbmcgaW50ZXJmYWNl
TmFtZT1IVE1MUHJlRWxlbWVudAogbWFpbiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1tYXAg
Z2VuZXJhdGVUeXBlSGVscGVycworbWFwCiBtYXJrIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQK
LW1hcnF1ZWUgZ2VuZXJhdGVUeXBlSGVscGVycworbWFycXVlZQogbWVudQotbWV0YSBnZW5lcmF0
ZVR5cGVIZWxwZXJzCi1tZXRlciBpbnRlcmZhY2VOYW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbmRp
dGlvbmFsPU1FVEVSX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK21ldGEKK21ldGVyIGlu
dGVyZmFjZU5hbWU9SFRNTE1ldGVyRWxlbWVudCwgY29uZGl0aW9uYWw9TUVURVJfRUxFTUVOVAog
bmF2IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vYnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAogbm9lbWJlZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2ZyYW1lcyBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50CiBub2xheWVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLW9i
amVjdCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVk
QnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLW9sIGludGVyZmFjZU5hbWU9SFRNTE9MaXN0
RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwotb3B0Z3JvdXAgaW50ZXJmYWNlTmFtZT1IVE1M
T3B0R3JvdXBFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1vcHRpb24gZ2VuZXJhdGVUeXBl
SGVscGVycworb2JqZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlcgorb2wgaW50ZXJmYWNlTmFtZT1IVE1MT0xpc3RFbGVtZW50Citv
cHRncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxPcHRHcm91cEVsZW1lbnQKK29wdGlvbgogb3V0cHV0
IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAotcCBpbnRlcmZhY2VOYW1lPUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1wYXJhbSBnZW5lcmF0ZVR5cGVIZWxwZXJz
CitwIGludGVyZmFjZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1lbnQKK3BhcmFtCiBwbGFpbnRleHQg
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcHJlCi1wcm9ncmVzcyBpbnRlcmZhY2VOYW1lPUhU
TUxQcm9ncmVzc0VsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3Byb2dyZXNzIGludGVyZmFj
ZU5hbWU9SFRNTFByb2dyZXNzRWxlbWVudAogcSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVsZW1l
bnQKIHJiIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHJwIGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKQEAgLTEwNywzNCArMTA3LDM0IEBAIHJ0YyBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiBydWJ5IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHMgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAogc2FtcCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1zY3JpcHQgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycworc2NyaXB0IGNvbnN0cnVj
dG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKIHNlY3Rpb24gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAotc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVy
cworc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogc21hbGwgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAotc291cmNlIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25k
aXRpb25hbD1WSURFTywgZ2VuZXJhdGVUeXBlSGVscGVycwotc3BhbiBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCitzb3VyY2Ugd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJ
REVPCitzcGFuCiBzdHJpa2UgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogc3Ryb25nIGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN0eWxlIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJz
ZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3N0eWxlIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQ
YXJzZXIKIHN1YiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1zdW1tYXJ5IGludGVyZmFjZU5h
bWU9SFRNTFN1bW1hcnlFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQsIGNvbmRp
dGlvbmFsPURFVEFJTFNfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycworc3VtbWFyeSBpbnRl
cmZhY2VOYW1lPUhUTUxTdW1tYXJ5RWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
LCBjb25kaXRpb25hbD1ERVRBSUxTX0VMRU1FTlQKIHN1cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50Ci10YWJsZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCit0YWJsZQogdGJvZHkgaW50ZXJmYWNlTmFt
ZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxs
RWxlbWVudAotdGVtcGxhdGUgY29uZGl0aW9uYWw9VEVNUExBVEVfRUxFTUVOVCwgZ2VuZXJhdGVU
eXBlSGVscGVycwotdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFFbGVtZW50LCBj
b25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3RlbXBsYXRl
IGNvbmRpdGlvbmFsPVRFTVBMQVRFX0VMRU1FTlQKK3RleHRhcmVhIGludGVyZmFjZU5hbWU9SFRN
TFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiB0Zm9vdCBpbnRl
cmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0aCBpbnRlcmZhY2VOYW1lPUhUTUxU
YWJsZUNlbGxFbGVtZW50CiB0aGVhZCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50Ci10aXRsZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi10ciBpbnRlcmZhY2VOYW1lPUhUTUxUYWJs
ZVJvd0VsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRyYWNrIHdyYXBwZXJPbmx5SWZNZWRp
YUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFT19UUkFDSywgZ2VuZXJhdGVUeXBlSGVscGVy
cwordGl0bGUKK3RyIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlUm93RWxlbWVudAordHJhY2sgd3Jh
cHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCiB0dCBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB1IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXVs
IGludGVyZmFjZU5hbWU9SFRNTFVMaXN0RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwordWwg
aW50ZXJmYWNlTmFtZT1IVE1MVUxpc3RFbGVtZW50CiB2YXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAotdmlkZW8gd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJ
REVPLCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJz
Cit2aWRlbyB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9VklERU8s
IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKIHdiciBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CiB4bXAgaW50ZXJmYWNlTmFtZT1IVE1MUHJlRWxlbWVudAogbm9zY3JpcHQgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL21h
dGh0YWdzLmluIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmluCmluZGV4IDllZjcx
NGUuLjdjY2U2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4KQEAgLTYsNyArNiw3IEBA
IGZhbGxiYWNrSW50ZXJmYWNlTmFtZT0iTWF0aE1MRWxlbWVudCIKIGFubm90YXRpb24gaW50ZXJm
YWNlTmFtZT1NYXRoTUxUZXh0RWxlbWVudAogYW5ub3RhdGlvbi14bWwgaW50ZXJmYWNlTmFtZT1N
YXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CiBtYWN0aW9uIGludGVyZmFjZU5hbWU9TWF0aE1M
U2VsZWN0RWxlbWVudAotbWF0aCBnZW5lcmF0ZVR5cGVIZWxwZXJzCittYXRoCiBtZnJhYyBpbnRl
cmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKIG1mZW5jZWQgaW50ZXJmYWNl
TmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CiBtc3Vic3VwIGludGVyZmFjZU5hbWU9
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudApAQCAtMzEsNyArMzEsNyBAQCBtdHIgaW50ZXJm
YWNlTmFtZT1NYXRoTUxFbGVtZW50CiBtdGQgaW50ZXJmYWNlTmFtZT1NYXRoTUxFbGVtZW50CiBt
bXVsdGlzY3JpcHRzIGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAog
bXByZXNjcmlwdHMgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50Ci1t
ZW5jbG9zZSBpbnRlcmZhY2VOYW1lPU1hdGhNTE1lbmNsb3NlRWxlbWVudCwgZ2VuZXJhdGVUeXBl
SGVscGVycworbWVuY2xvc2UgaW50ZXJmYWNlTmFtZT1NYXRoTUxNZW5jbG9zZUVsZW1lbnQKIG5v
bmUgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CiBzZW1hbnRpY3Mg
aW50ZXJmYWNlTmFtZT1NYXRoTUxTZWxlY3RFbGVtZW50CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9zdmd0YWdzLmluIGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KaW5k
ZXggYjc3MDhjMS4uYTBjNWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3Rh
Z3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KQEAgLTMsMjYgKzMsMjYg
QEAgbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKIGZhbGxiYWNrSW50
ZXJmYWNlTmFtZT0iU1ZHVW5rbm93bkVsZW1lbnQiCiBmYWxsYmFja0pTSW50ZXJmYWNlTmFtZT0i
U1ZHRWxlbWVudCIKIAotYSBnZW5lcmF0ZVR5cGVIZWxwZXJzCithCiAjaWYgRU5BQkxFX1NWR19G
T05UUwotYWx0R2x5cGggZ2VuZXJhdGVUeXBlSGVscGVycwotYWx0R2x5cGhEZWYgZ2VuZXJhdGVU
eXBlSGVscGVycwotYWx0R2x5cGhJdGVtIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2FsdEdseXBoCith
bHRHbHlwaERlZgorYWx0R2x5cGhJdGVtCiAjZW5kaWYKLWFuaW1hdGUKK2FuaW1hdGUgbm9UeXBl
SGVscGVycwogYW5pbWF0ZUNvbG9yCi1hbmltYXRlTW90aW9uIGdlbmVyYXRlVHlwZUhlbHBlcnMK
LWFuaW1hdGVUcmFuc2Zvcm0gZ2VuZXJhdGVUeXBlSGVscGVycworYW5pbWF0ZU1vdGlvbgorYW5p
bWF0ZVRyYW5zZm9ybQogc2V0Ci1jaXJjbGUgZ2VuZXJhdGVUeXBlSGVscGVycwotY2xpcFBhdGgg
Z2VuZXJhdGVUeXBlSGVscGVycworY2lyY2xlCitjbGlwUGF0aAogI2lmIDAKIGNvbG9yX3Byb2Zp
bGUKICNlbmRpZgotY3Vyc29yIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2N1cnNvcgogZGVmcwogZGVz
YwotZWxsaXBzZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCitlbGxpcHNlCiBmZUJsZW5kCiBmZUNvbG9y
TWF0cml4CiBmZUNvbXBvbmVudFRyYW5zZmVyCkBAIC0zMCw2OSArMzAsNjkgQEAgZmVDb21wb3Np
dGUKIGZlQ29udm9sdmVNYXRyaXgKIGZlRGlmZnVzZUxpZ2h0aW5nCiBmZURpc3BsYWNlbWVudE1h
cAotZmVEaXN0YW50TGlnaHQgZ2VuZXJhdGVUeXBlSGVscGVycworZmVEaXN0YW50TGlnaHQKIGZl
RHJvcFNoYWRvdwogZmVGbG9vZAotZmVGdW5jQSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mZUZ1bmNC
IGdlbmVyYXRlVHlwZUhlbHBlcnMKLWZlRnVuY0cgZ2VuZXJhdGVUeXBlSGVscGVycwotZmVGdW5j
UiBnZW5lcmF0ZVR5cGVIZWxwZXJzCitmZUZ1bmNBCitmZUZ1bmNCCitmZUZ1bmNHCitmZUZ1bmNS
CiBmZUdhdXNzaWFuQmx1cgogZmVJbWFnZQogZmVNZXJnZQotZmVNZXJnZU5vZGUgZ2VuZXJhdGVU
eXBlSGVscGVycworZmVNZXJnZU5vZGUKIGZlTW9ycGhvbG9neQogZmVPZmZzZXQKLWZlUG9pbnRM
aWdodCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitmZVBvaW50TGlnaHQKIGZlU3BlY3VsYXJMaWdodGlu
ZwotZmVTcG90TGlnaHQgZ2VuZXJhdGVUeXBlSGVscGVycworZmVTcG90TGlnaHQKIGZlVGlsZQog
ZmVUdXJidWxlbmNlCi1maWx0ZXIgZ2VuZXJhdGVUeXBlSGVscGVycworZmlsdGVyCiAjaWYgRU5B
QkxFX1NWR19GT05UUwotZm9udCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mb250X2ZhY2UgZ2VuZXJh
dGVUeXBlSGVscGVycworZm9udAorZm9udF9mYWNlCiBmb250X2ZhY2VfZm9ybWF0Ci1mb250X2Zh
Y2VfbmFtZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mb250X2ZhY2Vfc3JjIGdlbmVyYXRlVHlwZUhl
bHBlcnMKLWZvbnRfZmFjZV91cmkgZ2VuZXJhdGVUeXBlSGVscGVycworZm9udF9mYWNlX25hbWUK
K2ZvbnRfZmFjZV9zcmMKK2ZvbnRfZmFjZV91cmkKICNlbmRpZgotZm9yZWlnbk9iamVjdCBnZW5l
cmF0ZVR5cGVIZWxwZXJzCi1nIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ZvcmVpZ25PYmplY3QKK2cK
ICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCi1nbHlwaCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1nbHlwaFJl
ZiBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1oa2VybiBpbnRlcmZhY2VOYW1lPVNWR0hLZXJuRWxlbWVu
dCwgZ2VuZXJhdGVUeXBlSGVscGVycworZ2x5cGgKK2dseXBoUmVmCitoa2VybiBpbnRlcmZhY2VO
YW1lPVNWR0hLZXJuRWxlbWVudAogI2VuZGlmCi1pbWFnZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1s
aW5lIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWxpbmVhckdyYWRpZW50IGdlbmVyYXRlVHlwZUhlbHBl
cnMKLW1hcmtlciBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1tYXNrIGdlbmVyYXRlVHlwZUhlbHBlcnMK
K2ltYWdlCitsaW5lCitsaW5lYXJHcmFkaWVudAorbWFya2VyCittYXNrCiBtZXRhZGF0YQogI2lm
IEVOQUJMRV9TVkdfRk9OVFMKLW1pc3NpbmdfZ2x5cGggZ2VuZXJhdGVUeXBlSGVscGVycworbWlz
c2luZ19nbHlwaAogI2VuZGlmCi1tcGF0aCBpbnRlcmZhY2VOYW1lPVNWR01QYXRoRWxlbWVudCwg
Z2VuZXJhdGVUeXBlSGVscGVycwotcGF0aCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1wYXR0ZXJuIGdl
bmVyYXRlVHlwZUhlbHBlcnMKLXBvbHlnb24gZ2VuZXJhdGVUeXBlSGVscGVycwotcG9seWxpbmUg
Z2VuZXJhdGVUeXBlSGVscGVycwotcmFkaWFsR3JhZGllbnQgZ2VuZXJhdGVUeXBlSGVscGVycwot
cmVjdCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1zY3JpcHQgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRC
eVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwotc3RvcCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1z
dHlsZSBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJz
Ci1zdmcgaW50ZXJmYWNlTmFtZT1TVkdTVkdFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitt
cGF0aCBpbnRlcmZhY2VOYW1lPVNWR01QYXRoRWxlbWVudAorcGF0aAorcGF0dGVybgorcG9seWdv
bgorcG9seWxpbmUKK3JhZGlhbEdyYWRpZW50CityZWN0CitzY3JpcHQgY29uc3RydWN0b3JOZWVk
c0NyZWF0ZWRCeVBhcnNlcgorc3RvcAorc3R5bGUgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBh
cnNlcgorc3ZnIGludGVyZmFjZU5hbWU9U1ZHU1ZHRWxlbWVudAogc3dpdGNoCiBzeW1ib2wKLXRl
eHQgZ2VuZXJhdGVUeXBlSGVscGVycwotdGV4dFBhdGggZ2VuZXJhdGVUeXBlSGVscGVycwotdGl0
bGUgZ2VuZXJhdGVUeXBlSGVscGVycwordGV4dAordGV4dFBhdGgKK3RpdGxlCiB0cmVmIGludGVy
ZmFjZU5hbWU9U1ZHVFJlZkVsZW1lbnQKIHRzcGFuIGludGVyZmFjZU5hbWU9U1ZHVFNwYW5FbGVt
ZW50Ci11c2UgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVs
cGVycwotdmlldyBnZW5lcmF0ZVR5cGVIZWxwZXJzCit1c2UgY29uc3RydWN0b3JOZWVkc0NyZWF0
ZWRCeVBhcnNlcgordmlldwogI2lmIEVOQUJMRV9TVkdfRk9OVFMKLXZrZXJuIGludGVyZmFjZU5h
bWU9U1ZHVktlcm5FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCit2a2VybiBpbnRlcmZhY2VO
YW1lPVNWR1ZLZXJuRWxlbWVudAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238781</attachid>
            <date>2014-09-27 10:59:14 -0700</date>
            <delta_ts>2014-09-28 18:17:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137174-20140927105914.patch</filename>
            <type>text/plain</type>
            <size>34430</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM0ODFjMDk1MWNlMzk2
OGEzZjkwM2U1NDMwMDAwYTY0NDRiNmUwYS4uMGEzODAzZGIzYzE3NGRiZGFiNDY5YTlmYzlmMWJl
YjI5MTgxYWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE0LTA5LTI3ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBdXRvbWF0aWNhbGx5
IGdlbmVyYXRlIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyBmb3IgbW9zdCBFbGVtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTc0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwg
dGhlIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyB0byBtYWtlIGlzPD4oKSAvIGRvd25jYXN0PD4o
KQorICAgICAgICB3b3JrIGZvciBIVE1ML1NWRy9NYXRoTUwgZWxlbWVudHMgd2VyZSBvbmx5IGdl
bmVyYXRlZCBpZgorICAgICAgICAiZ2VuZXJhdGVUeXBlSGVscGVycyIgcGFyYW1ldGVyIHdhcyBl
eHBsaWNpdGx5IHNwZWNpZmllZCBmb3IgdGhlCisgICAgICAgIGNvcnJlc3BvbmRpbmcgdGFnIG5h
bWUgaW4gdGhlICpUYWdzLmluIGZpbGUuCisKKyAgICAgICAgV2UgYXJlIGhvd2V2ZXIgYWJsZSB0
byBnZW5lcmF0ZSB0aGUgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zIGZvciBtb3N0CisgICAgICAg
IHR5cGVzIHNvIHRoaXMgcGF0Y2ggZHJvcHMgdGhlICJnZW5lcmF0ZVR5cGVIZWxwZXJzIiBwYXJh
bWV0ZXIgYW5kCisgICAgICAgIGdlbmVyYXRlcyB0aG9zZSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlv
bnMgYnkgZGVmYXVsdC4KKworICAgICAgICBPbmUgY2FzZSB3ZSBjYW5ub3QgZ2VuZXJhdGUgdGhl
IHNwZWNpYWxpemF0aW9uIGlmb3IgaXMgd2hlbiBhIGNsYXNzIGlzCisgICAgICAgIGFzc29jaWF0
ZWQgdG8gc2V2ZXJhbCB0YWcgbmFtZXMgYnV0IHRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUKKyAgICAg
ICAgbWFrZV9uYW1lcy5wbCBzY3JpcHQgdG8gZGV0ZWN0IHRoaXMgYW5kIHNraXAgdGhvc2UgY2xh
c3Nlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAg
ICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgorICAgICAgICAoZGVmYXVsdFRhZ1Byb3BlcnR5SGFz
aCk6CisgICAgICAgIChwcmludFR5cGVIZWxwZXJzKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWdO
YW1lcy5pbjoKKyAgICAgICAgKiBtYXRobWwvbWF0aHRhZ3MuaW46CisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudDo6U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlQ29sb3JFbGVtZW50OjpkZXRlcm1pbmVQcm9wZXJ0eVZhbHVlVHlwZXMpOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Fu
aW1hdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFz
ZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVF
bGVtZW50OjpTVkdBbmltYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
RWxlbWVudEJhc2U6On5TVkdBbmltYXRlRWxlbWVudEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpoYXNWYWxpZEF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNl
OjpjYWxjdWxhdGVUb0F0RW5kT2ZEdXJhdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVFbGVtZW50QmFzZTo6Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRl
ZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpjbGVhckFu
aW1hdGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmFw
cGx5UmVzdWx0c1RvVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50
QmFzZTo6YW5pbWF0ZWRQcm9wZXJ0eVR5cGVTdXBwb3J0c0FkZGl0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6aXNBZGRpdGl2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmNhbGN1bGF0ZURpc3RhbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6c2V0VGFyZ2V0RWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OnNldEF0dHJpYnV0ZU5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpyZXNldEFuaW1hdGVkUHJv
cGVydHlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6ZW5z
dXJlQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6On5TVkdB
bmltYXRlRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxl
bWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVFbGVtZW50OjpkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5VHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0
ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6
Y2FsY3VsYXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5k
QnlWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6
OnJlc2V0QW5pbWF0ZWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVFbGVtZW50OjpjbGVhckFuaW1hdGVkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlUeXBlU3Vw
cG9ydHNBZGRpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxl
bWVudDo6aXNBZGRpdGl2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRl
RWxlbWVudDo6Y2FsY3VsYXRlRGlzdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZUVsZW1lbnQ6OnNldFRhcmdldEVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5hbWUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRQcm9wZXJ0
eVR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmVu
c3VyZUFuaW1hdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQu
aDoKKyAgICAgICAgUmVuYW1lIHRoZSBTVkdBbmltYXRlRWxlbWVudCBjbGFzcyB0byBTVkdBbmlt
YXRlRWxlbWVudEJhc2UgY2xhc3MgYXMgaXQKKyAgICAgICAgaXMgdXNlZCBhcyBiYXNlIGNsYXNz
IGZvciBTVkdBbmltYXRlQ29sb3JFbGVtZW50LAorICAgICAgICBTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudCwgU1ZHU2V0RWxlbWVudC4gQWxzbyBpbnRyb2R1Y2UgYW4KKyAgICAgICAgU1ZHQW5p
bWF0ZUVsZW1lbnQgY2xhc3MsIHRoYXQgZGVyaXZlcyBmcm9tIFNWR0FuaW1hdGVFbGVtZW50QmFz
ZSwKKyAgICAgICAgc3BlY2lmaWNhbGx5IGZvciB0aGUgU1ZHIGVsZW1lbnRzIHdpdGggdGhlIHxh
bmltYXRlfCB0YWcuIFRoaXMgYWxsb3dzCisgICAgICAgIHRoZSBtYWtlX25hbWVzLnBsIHRvIGdl
bmVyYXRlIHRoZSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiBmb3IgYW5pbWF0ZVRhZworICAgICAg
ICBhbmQgbm90IGJlIGNvbmZ1c2VkIHdpdGggdGhlIFNWR0FuaW1hdGVFbGVtZW50QmFzZSBiYXNl
IGNsYXNzLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpTVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmN1cnJlbnRWYWx1ZXNGb3JWYWx1
ZXNBbmltYXRpb24pOgorICAgICAgICAqIHN2Zy9TVkdTZXRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1NldEVsZW1lbnQ6OlNWR1NldEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9T
VkdTZXRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL3N2Z3RhZ3MuaW46CisKIDIwMTQtMDktMjYg
IENocmlzdG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNp
bmcgbGVnYWN5IE5PREVfVFlQRV9DQVNUUygpIG1hY3JvIGZvciBIVE1MIEVsZW1lbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IGQwODI2MDFiNGUxYzUxNzcwMWQ4NmZjMjNiYzZkODdj
Y2QzNTFhY2IuLjkyYTk3OTZlNDY3NzM1Zjc4OWNhYjk4NzAyZTIyNWNiOGU5ZGMzYjYgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0xOTQsNyArMTk0LDYgQEAgc3ViIGRlZmF1bHRUYWdQ
cm9wZXJ0eUhhc2gKICAgICAgICAgJ3dyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlJyA9PiAw
LAogICAgICAgICAnY29uZGl0aW9uYWwnID0+IDAsCiAgICAgICAgICdydW50aW1lQ29uZGl0aW9u
YWwnID0+IDAsCi0gICAgICAgICdnZW5lcmF0ZVR5cGVIZWxwZXJzJyA9PiAwCiAgICAgKTsKIH0K
IApAQCAtNjI3LDEyICs2MjYsMTggQEAgc3ViIHByaW50VHlwZUhlbHBlcnMKICAgICBteSAoJEYs
ICRuYW1lc1JlZikgPSBAXzsKICAgICBteSAlbmFtZXMgPSAlJG5hbWVzUmVmOwogCi0gICAgZm9y
IG15ICRuYW1lIChzb3J0IGtleXMgJW5hbWVzKSB7Ci0gICAgICAgIGlmICghJHBhcnNlZFRhZ3N7
JG5hbWV9e2dlbmVyYXRlVHlwZUhlbHBlcnN9KSB7Ci0gICAgICAgICAgICBuZXh0OwotICAgICAg
ICB9Ci0KKyAgICAjIERvIGEgZmlyc3QgcGFzcyB0byBkaXNjYXJkIGNsYXNzZXMgdGhhdCBtYXAg
dG8gc2V2ZXJhbCB0YWdzLgorICAgIG15ICVjbGFzc1RvVGFncyA9ICgpOworICAgIGZvciBteSAk
bmFtZSAoa2V5cyAlbmFtZXMpIHsKICAgICAgICAgbXkgJGNsYXNzID0gJHBhcnNlZFRhZ3N7JG5h
bWV9e2ludGVyZmFjZU5hbWV9OworICAgICAgICBwdXNoKEB7JGNsYXNzVG9UYWdzeyRjbGFzc319
LCAkbmFtZSkgaWYgZGVmaW5lZCAkY2xhc3M7CisgICAgfQorCisgICAgZm9yIG15ICRjbGFzcyAo
c29ydCBrZXlzICVjbGFzc1RvVGFncykgeworICAgICAgICAjIFNraXAgY2xhc3NlcyB0aGF0IG1h
cCB0byBtb3JlIHRoYW4gMSB0YWcuCisgICAgICAgIG15ICR0YWdDb3VudCA9IHNjYWxhciBAeyRj
bGFzc1RvVGFnc3skY2xhc3N9fTsKKyAgICAgICAgbmV4dCBpZiAkdGFnQ291bnQgPiAxOworICAg
ICAgICBteSAkbmFtZSA9ICRjbGFzc1RvVGFnc3skY2xhc3N9WzBdOwogICAgICAgICBwcmludCBG
IDw8RU5ECiBjbGFzcyAkY2xhc3M7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnVHlwZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KaW5kZXggMGZjOGIwNGYzZjg0M2M4Mjg1ZTljZjBhMjg4
NjRlMTE2Njc4YjNhZi4uOWJiNTFiOGUwYmMzYWM1NTE2OTNmNGY5ZWNlNzVlNTFhZjlhMTAyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KQEAgLTMsMjggKzMsMjggQEAgbmFtZXNw
YWNlUHJlZml4PSJ4aHRtbCIKIG5hbWVzcGFjZVVSST0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCIKIGZhbGxiYWNrSW50ZXJmYWNlTmFtZT0iSFRNTFVua25vd25FbGVtZW50IgogCi1hIGlu
dGVyZmFjZU5hbWU9SFRNTEFuY2hvckVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2EgaW50
ZXJmYWNlTmFtZT1IVE1MQW5jaG9yRWxlbWVudAogYWJiciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50CiBhY3JvbnltIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGFkZHJlc3MgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAotYXBwbGV0IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIs
IGdlbmVyYXRlVHlwZUhlbHBlcnMKLWFyZWEgZ2VuZXJhdGVUeXBlSGVscGVycworYXBwbGV0IGNv
bnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK2FyZWEKIGFydGljbGUgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAogYXNpZGUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotYXVkaW8gd3Jh
cHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1Y3Rv
ck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCithdWRpbyB3cmFwcGVy
T25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9VklERU8sIGNvbnN0cnVjdG9yTmVl
ZHNDcmVhdGVkQnlQYXJzZXIKIGIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotYmFzZSBnZW5l
cmF0ZVR5cGVIZWxwZXJzCitiYXNlCiBiYXNlZm9udCBpbnRlcmZhY2VOYW1lPUhUTUxCYXNlRm9u
dEVsZW1lbnQKLWJkaSBpbnRlcmZhY2VOYW1lPUhUTUxCRElFbGVtZW50LCBKU0ludGVyZmFjZU5h
bWU9SFRNTEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2JkaSBpbnRlcmZhY2VOYW1lPUhU
TUxCRElFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGJkbyBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBiZ3NvdW5kIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGJpZyBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBibG9ja3F1b3RlIGludGVyZmFjZU5hbWU9SFRNTFF1
b3RlRWxlbWVudAotYm9keSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1iciBpbnRlcmZhY2VOYW1lPUhU
TUxCUkVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWJ1dHRvbiBjb25zdHJ1Y3Rvck5lZWRz
Rm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWNhbnZhcyBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCi1jYXB0aW9uIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQsIGdlbmVy
YXRlVHlwZUhlbHBlcnMKK2JvZHkKK2JyIGludGVyZmFjZU5hbWU9SFRNTEJSRWxlbWVudAorYnV0
dG9uIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAorY2FudmFzCitjYXB0aW9uIGludGVyZmFj
ZU5hbWU9SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQKIGNlbnRlciBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50CiBjaXRlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGNvZGUgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudApAQCAtMzIsNzMgKzMyLDczIEBAIGNvbCBpbnRlcmZhY2VOYW1lPUhUTUxU
YWJsZUNvbEVsZW1lbnQKIGNvbGdyb3VwIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ29sRWxlbWVu
dAogY29tbWFuZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiB3ZWJraXRTaGFkb3dDb250ZW50
IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQsIG5vQ29uc3RydWN0b3IKLWRhdGFsaXN0IGludGVy
ZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxlbWVudCwgY29uZGl0aW9uYWw9REFUQUxJU1RfRUxFTUVO
VCwgZ2VuZXJhdGVUeXBlSGVscGVycworZGF0YWxpc3QgaW50ZXJmYWNlTmFtZT1IVE1MRGF0YUxp
c3RFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBTElTVF9FTEVNRU5UCiBkZCBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50CiBkZWwgaW50ZXJmYWNlTmFtZT1IVE1MTW9kRWxlbWVudAotZGV0YWlscyBj
b25kaXRpb25hbD1ERVRBSUxTX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMgCitkZXRhaWxz
IGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVAogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKIGRpciBpbnRlcmZhY2VOYW1lPUhUTUxEaXJlY3RvcnlFbGVtZW50Ci1kaXYgZ2VuZXJhdGVU
eXBlSGVscGVycworZGl2CiBkbCBpbnRlcmZhY2VOYW1lPUhUTUxETGlzdEVsZW1lbnQKIGR0IGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGVtIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWVt
YmVkIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMK
LWZpZWxkc2V0IGludGVyZmFjZU5hbWU9SFRNTEZpZWxkU2V0RWxlbWVudCwgY29uc3RydWN0b3JO
ZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitlbWJlZCBjb25zdHJ1Y3Rvck5l
ZWRzQ3JlYXRlZEJ5UGFyc2VyCitmaWVsZHNldCBpbnRlcmZhY2VOYW1lPUhUTUxGaWVsZFNldEVs
ZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogZmlnY2FwdGlvbiBpbnRlcmZhY2VO
YW1lPUhUTUxFbGVtZW50CiBmaWd1cmUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotZm9udCBn
ZW5lcmF0ZVR5cGVIZWxwZXJzCitmb250CiBmb290ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAotZm9ybSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mcmFtZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1m
cmFtZXNldCBpbnRlcmZhY2VOYW1lPUhUTUxGcmFtZVNldEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKK2Zvcm0KK2ZyYW1lCitmcmFtZXNldCBpbnRlcmZhY2VOYW1lPUhUTUxGcmFtZVNldEVs
ZW1lbnQKIGgxIGludGVyZmFjZU5hbWU9SFRNTEhlYWRpbmdFbGVtZW50CiBoMiBpbnRlcmZhY2VO
YW1lPUhUTUxIZWFkaW5nRWxlbWVudAogaDMgaW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1l
bnQKIGg0IGludGVyZmFjZU5hbWU9SFRNTEhlYWRpbmdFbGVtZW50CiBoNSBpbnRlcmZhY2VOYW1l
PUhUTUxIZWFkaW5nRWxlbWVudAogaDYgaW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQK
LWhlYWQgZ2VuZXJhdGVUeXBlSGVscGVycworaGVhZAogaGVhZGVyIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKIGhncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1ociBpbnRlcmZhY2VO
YW1lPUhUTUxIUkVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWh0bWwgZ2VuZXJhdGVUeXBl
SGVscGVycworaHIgaW50ZXJmYWNlTmFtZT1IVE1MSFJFbGVtZW50CitodG1sCiBpIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKLWlmcmFtZSBpbnRlcmZhY2VOYW1lPUhUTUxJRnJhbWVFbGVtZW50
LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitpZnJhbWUgaW50ZXJmYWNlTmFtZT1IVE1MSUZyYW1lRWxl
bWVudAogaW1hZ2UgaW50ZXJmYWNlTmFtZT1IVE1MVW5rbm93bkVsZW1lbnQKLWltZyBpbnRlcmZh
Y2VOYW1lPUhUTUxJbWFnZUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2Vu
ZXJhdGVUeXBlSGVscGVycwotaW5wdXQgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25z
dHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitpbWcgaW50
ZXJmYWNlTmFtZT1IVE1MSW1hZ2VFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQK
K2lucHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0NyZWF0
ZWRCeVBhcnNlcgogaW5zIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1lbnQKIGlzaW5kZXggaW50
ZXJmYWNlTmFtZT1IVE1MVW5rbm93bkVsZW1lbnQKIGtiZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50CiBrZXlnZW4gY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50Ci1sYWJlbCBnZW5lcmF0ZVR5
cGVIZWxwZXJzCitsYWJlbAogbGF5ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotbGVnZW5k
IGdlbmVyYXRlVHlwZUhlbHBlcnMKK2xlZ2VuZAogbGkgaW50ZXJmYWNlTmFtZT1IVE1MTElFbGVt
ZW50Ci1saW5rIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKK2xpbmsgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlcgogbGlzdGluZyBpbnRl
cmZhY2VOYW1lPUhUTUxQcmVFbGVtZW50CiBtYWluIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQK
LW1hcCBnZW5lcmF0ZVR5cGVIZWxwZXJzCittYXAKIG1hcmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAotbWFycXVlZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCittYXJxdWVlCiBtZW51Ci1tZXRhIGdl
bmVyYXRlVHlwZUhlbHBlcnMKLW1ldGVyIGludGVyZmFjZU5hbWU9SFRNTE1ldGVyRWxlbWVudCwg
Y29uZGl0aW9uYWw9TUVURVJfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycworbWV0YQorbWV0
ZXIgaW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJFbGVtZW50LCBjb25kaXRpb25hbD1NRVRFUl9FTEVN
RU5UCiBuYXYgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbm9iciBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50CiBub2VtYmVkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vZnJhbWVzIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vbGF5ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAotb2JqZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Ny
ZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwotb2wgaW50ZXJmYWNlTmFtZT1IVE1M
T0xpc3RFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1vcHRncm91cCBpbnRlcmZhY2VOYW1l
PUhUTUxPcHRHcm91cEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLW9wdGlvbiBnZW5lcmF0
ZVR5cGVIZWxwZXJzCitvYmplY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1
Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCitvbCBpbnRlcmZhY2VOYW1lPUhUTUxPTGlzdEVsZW1l
bnQKK29wdGdyb3VwIGludGVyZmFjZU5hbWU9SFRNTE9wdEdyb3VwRWxlbWVudAorb3B0aW9uCiBv
dXRwdXQgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50Ci1wIGludGVyZmFjZU5hbWU9SFRNTFBh
cmFncmFwaEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXBhcmFtIGdlbmVyYXRlVHlwZUhl
bHBlcnMKK3AgaW50ZXJmYWNlTmFtZT1IVE1MUGFyYWdyYXBoRWxlbWVudAorcGFyYW0KIHBsYWlu
dGV4dCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBwcmUKLXByb2dyZXNzIGludGVyZmFjZU5h
bWU9SFRNTFByb2dyZXNzRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycworcHJvZ3Jlc3MgaW50
ZXJmYWNlTmFtZT1IVE1MUHJvZ3Jlc3NFbGVtZW50CiBxIGludGVyZmFjZU5hbWU9SFRNTFF1b3Rl
RWxlbWVudAogcmIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcnAgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudApAQCAtMTA3LDM0ICsxMDcsMzQgQEAgcnRjIGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKIHJ1YnkgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcyBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50CiBzYW1wIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXNjcmlwdCBjb25zdHJ1
Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitzY3JpcHQgY29u
c3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlcgogc2VjdGlvbiBpbnRlcmZhY2VOYW1lPUhUTUxF
bGVtZW50Ci1zZWxlY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVI
ZWxwZXJzCitzZWxlY3QgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiBzbWFsbCBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50Ci1zb3VyY2Ugd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUs
IGNvbmRpdGlvbmFsPVZJREVPLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1zcGFuIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKK3NvdXJjZSB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9u
YWw9VklERU8KK3NwYW4KIHN0cmlrZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzdHJvbmcg
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc3R5bGUgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRC
eVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycworc3R5bGUgY29uc3RydWN0b3JOZWVkc0NyZWF0
ZWRCeVBhcnNlcgogc3ViIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN1bW1hcnkgaW50ZXJm
YWNlTmFtZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwg
Y29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitzdW1tYXJ5
IGludGVyZmFjZU5hbWU9SFRNTFN1bW1hcnlFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQsIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVAogc3VwIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKLXRhYmxlIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3RhYmxlCiB0Ym9keSBpbnRlcmZh
Y2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiB0ZCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJs
ZUNlbGxFbGVtZW50Ci10ZW1wbGF0ZSBjb25kaXRpb25hbD1URU1QTEFURV9FTEVNRU5ULCBnZW5l
cmF0ZVR5cGVIZWxwZXJzCi10ZXh0YXJlYSBpbnRlcmZhY2VOYW1lPUhUTUxUZXh0QXJlYUVsZW1l
bnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwordGVt
cGxhdGUgY29uZGl0aW9uYWw9VEVNUExBVEVfRUxFTUVOVAordGV4dGFyZWEgaW50ZXJmYWNlTmFt
ZT1IVE1MVGV4dEFyZWFFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHRmb290
IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKIHRoIGludGVyZmFjZU5hbWU9
SFRNTFRhYmxlQ2VsbEVsZW1lbnQKIHRoZWFkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQKLXRpdGxlIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRyIGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlUm93RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwotdHJhY2sgd3JhcHBlck9ubHlJ
Zk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBnZW5lcmF0ZVR5cGVI
ZWxwZXJzCit0aXRsZQordHIgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVSb3dFbGVtZW50Cit0cmFj
ayB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sK
IHR0IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAotdWwgaW50ZXJmYWNlTmFtZT1IVE1MVUxpc3RFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJz
Cit1bCBpbnRlcmZhY2VOYW1lPUhUTUxVTGlzdEVsZW1lbnQKIHZhciBpbnRlcmZhY2VOYW1lPUhU
TUxFbGVtZW50Ci12aWRlbyB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9u
YWw9VklERU8sIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKK3ZpZGVvIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1W
SURFTywgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlcgogd2JyIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKIHhtcCBpbnRlcmZhY2VOYW1lPUhUTUxQcmVFbGVtZW50CiBub3NjcmlwdCBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvbWF0aHRhZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4KaW5kZXgg
OWVmNzE0ZWRiMWQ2ZTA4ZDY4MTY4ZTk0Njc5YjgxYTJlNTcyZjhjZS4uN2NjZTZkNzJlOTJlNGM5
YzlhZWExZTY5MjExY2Q1MWZiZmEzMjUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL21hdGh0YWdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5pbgpA
QCAtNiw3ICs2LDcgQEAgZmFsbGJhY2tJbnRlcmZhY2VOYW1lPSJNYXRoTUxFbGVtZW50IgogYW5u
b3RhdGlvbiBpbnRlcmZhY2VOYW1lPU1hdGhNTFRleHRFbGVtZW50CiBhbm5vdGF0aW9uLXhtbCBp
bnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKIG1hY3Rpb24gaW50ZXJm
YWNlTmFtZT1NYXRoTUxTZWxlY3RFbGVtZW50Ci1tYXRoIGdlbmVyYXRlVHlwZUhlbHBlcnMKK21h
dGgKIG1mcmFjIGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAogbWZl
bmNlZCBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKIG1zdWJzdXAg
aW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CkBAIC0zMSw3ICszMSw3
IEBAIG10ciBpbnRlcmZhY2VOYW1lPU1hdGhNTEVsZW1lbnQKIG10ZCBpbnRlcmZhY2VOYW1lPU1h
dGhNTEVsZW1lbnQKIG1tdWx0aXNjcmlwdHMgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250
YWluZXJFbGVtZW50CiBtcHJlc2NyaXB0cyBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRh
aW5lckVsZW1lbnQKLW1lbmNsb3NlIGludGVyZmFjZU5hbWU9TWF0aE1MTWVuY2xvc2VFbGVtZW50
LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCittZW5jbG9zZSBpbnRlcmZhY2VOYW1lPU1hdGhNTE1lbmNs
b3NlRWxlbWVudAogbm9uZSBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1l
bnQKIHNlbWFudGljcyBpbnRlcmZhY2VOYW1lPU1hdGhNTFNlbGVjdEVsZW1lbnQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCmluZGV4IDllMWRiMTM5
OGNiNTE2MmViMWQ1YjFiMTQxYjdlZWZlMDIwZWYwMjguLjhkMDViMzNkYzAwMDU3NmY2NzJjMTll
NTg3Y2Y5ZjAwYTA2OWE0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAKIGlubGluZSBTVkdBbmltYXRlQ29sb3JFbGVtZW50OjpTVkdBbmltYXRlQ29sb3JFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6
IFNWR0FuaW1hdGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorICAgIDogU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlKHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNW
R05hbWVzOjphbmltYXRlQ29sb3JUYWcpKTsKIH0KQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIGJv
b2wgYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2
b2lkIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OmRldGVybWluZVByb3BlcnR5VmFsdWVUeXBlcyhj
b25zdCBTdHJpbmcmIGZyb20sIGNvbnN0IFN0cmluZyYgdG8pCiB7Ci0gICAgU1ZHQW5pbWF0ZUVs
ZW1lbnQ6OmRldGVybWluZVByb3BlcnR5VmFsdWVUeXBlcyhmcm9tLCB0byk7CisgICAgU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlOjpkZXRlcm1pbmVQcm9wZXJ0eVZhbHVlVHlwZXMoZnJvbSwgdG8pOwog
ICAgIGlmIChhdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKGZyb20pKQogICAgICAgICBtX2Zy
b21Qcm9wZXJ0eVZhbHVlVHlwZSA9IEN1cnJlbnRDb2xvclZhbHVlOwogICAgIGlmIChhdHRyaWJ1
dGVWYWx1ZUlzQ3VycmVudENvbG9yKHRvKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5oCmluZGV4IGQxNDEzOGNmYzk4NmU5MmU0NWZhMjJiMDQxYjczZTdmZjZh
ZjQyYjguLjdjZGFhNThiNDExZjVkZWM5ZDBkNzdjNzE4N2MwNDljYWRiNjlkOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaApAQCAtMjYsNyArMjYsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZUVsZW1lbnQgeworY2xhc3MgU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlRWxlbWVudEJhc2UgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlRWxlbWVudC5jcHAKaW5kZXggNjM1NDk2OGUxYTEzNzUyNTczZDIwNjQyMjY5M2YyNDZlMTUx
ZmQ0NS4uZTg3ZGZmYmU2NzdjODc0ZDdiMmZkMjg1NDcyMDVkZjVjMTk0YWFiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCkBAIC0zNSwyMyArMzUsMjkgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdBbmltYXRlRWxlbWVudDo6U1ZHQW5pbWF0ZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlOjpTVkdBbmltYXRlRWxlbWVudEJhc2UoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogU1ZHQW5pbWF0aW9uRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUoQW5p
bWF0ZWRTdHJpbmcpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVU
YWcpIHx8IGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykgfHwgaGFzVGFnTmFtZShTVkdOYW1l
czo6YW5pbWF0ZUNvbG9yVGFnKSB8fCBoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlVHJhbnNm
b3JtVGFnKSk7CiB9CiAKK1NWR0FuaW1hdGVFbGVtZW50OjpTVkdBbmltYXRlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBTVkdB
bmltYXRlRWxlbWVudEJhc2UodGFnTmFtZSwgZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUYWcpKTsKK30KKwogUGFzc1JlZlB0cjxTVkdBbmltYXRl
RWxlbWVudD4gU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
VkdBbmltYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi1TVkdBbmltYXRlRWxl
bWVudDo6flNWR0FuaW1hdGVFbGVtZW50KCkKK1NWR0FuaW1hdGVFbGVtZW50QmFzZTo6flNWR0Fu
aW1hdGVFbGVtZW50QmFzZSgpCiB7CiB9CiAKLWJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6Omhhc1Zh
bGlkQXR0cmlidXRlVHlwZSgpCitib29sIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6aGFzVmFsaWRB
dHRyaWJ1dGVUeXBlKCkKIHsKICAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+
dGFyZ2V0RWxlbWVudCgpOwogICAgIGlmICghdGFyZ2V0RWxlbWVudCkKQEAgLTYwLDcgKzY2LDcg
QEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkKICAgICBy
ZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5VHlwZSAhPSBBbmltYXRlZFVua25vd24gJiYgIWhhc0lu
dmFsaWRDU1NBdHRyaWJ1dGVUeXBlKCk7CiB9CiAKLUFuaW1hdGVkUHJvcGVydHlUeXBlIFNWR0Fu
aW1hdGVFbGVtZW50OjpkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5VHlwZShTVkdFbGVtZW50KiB0
YXJnZXRFbGVtZW50KSBjb25zdAorQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgU1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlOjpkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5VHlwZShTVkdFbGVtZW50KiB0YXJnZXRF
bGVtZW50KSBjb25zdAogewogICAgIEFTU0VSVCh0YXJnZXRFbGVtZW50KTsKIApAQCAtOTIsNyAr
OTgsNyBAQCBBbmltYXRlZFByb3BlcnR5VHlwZSBTVkdBbmltYXRlRWxlbWVudDo6ZGV0ZXJtaW5l
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUoU1ZHRWxlbWVudAogICAgIHJldHVybiB0eXBlOwogfQogCi12
b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNl
bnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVu
dCkKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZs
b2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdTTUlMRWxlbWVudCogcmVz
dWx0RWxlbWVudCkKIHsKICAgICBBU1NFUlQocmVzdWx0RWxlbWVudCk7CiAgICAgU1ZHRWxlbWVu
dCogdGFyZ2V0RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsKQEAgLTExMCw3ICsxMTYs
NyBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0
IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdAogICAgIEFTU0VSVChtX2Zyb21UeXBlLT50eXBl
KCkgPT0gbV9hbmltYXRlZFByb3BlcnR5VHlwZSk7CiAgICAgQVNTRVJUKG1fdG9UeXBlKTsKIAot
ICAgIFNWR0FuaW1hdGVFbGVtZW50JiByZXN1bHRBbmltYXRpb25FbGVtZW50ID0gZG93bmNhc3Q8
U1ZHQW5pbWF0ZUVsZW1lbnQ+KCpyZXN1bHRFbGVtZW50KTsKKyAgICBTVkdBbmltYXRlRWxlbWVu
dEJhc2UmIHJlc3VsdEFuaW1hdGlvbkVsZW1lbnQgPSBkb3duY2FzdDxTVkdBbmltYXRlRWxlbWVu
dEJhc2U+KCpyZXN1bHRFbGVtZW50KTsKICAgICBBU1NFUlQocmVzdWx0QW5pbWF0aW9uRWxlbWVu
dC5tX2FuaW1hdGVkVHlwZSk7CiAgICAgQVNTRVJUKHJlc3VsdEFuaW1hdGlvbkVsZW1lbnQubV9h
bmltYXRlZFByb3BlcnR5VHlwZSA9PSBtX2FuaW1hdGVkUHJvcGVydHlUeXBlKTsKIApAQCAtMTM1
LDcgKzE0MSw3IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGVkVmFs
dWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0CiAgICAgbV9hbmltYXRvci0+Y2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZShwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgbV9mcm9tVHlwZS5n
ZXQoKSwgbV90b1R5cGUuZ2V0KCksIHRvQXRFbmRPZkR1cmF0aW9uVHlwZSwgcmVzdWx0QW5pbWF0
aW9uRWxlbWVudC5tX2FuaW1hdGVkVHlwZS5nZXQoKSk7CiB9CiAKLWJvb2wgU1ZHQW5pbWF0ZUVs
ZW1lbnQ6OmNhbGN1bGF0ZVRvQXRFbmRPZkR1cmF0aW9uVmFsdWUoY29uc3QgU3RyaW5nJiB0b0F0
RW5kT2ZEdXJhdGlvblN0cmluZykKK2Jvb2wgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpjYWxjdWxh
dGVUb0F0RW5kT2ZEdXJhdGlvblZhbHVlKGNvbnN0IFN0cmluZyYgdG9BdEVuZE9mRHVyYXRpb25T
dHJpbmcpCiB7CiAgICAgaWYgKHRvQXRFbmRPZkR1cmF0aW9uU3RyaW5nLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQzLDcgKzE0OSw3IEBAIGJvb2wgU1ZHQW5pbWF0ZUVs
ZW1lbnQ6OmNhbGN1bGF0ZVRvQXRFbmRPZkR1cmF0aW9uVmFsdWUoY29uc3QgU3RyaW5nJiB0b0F0
RW5kT2ZECiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNh
bGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyhjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0
cmluZyYgdG9TdHJpbmcpCitib29sIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6Y2FsY3VsYXRlRnJv
bUFuZFRvVmFsdWVzKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0
cmluZykKIHsKICAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxl
bWVudCgpOwogICAgIGlmICghdGFyZ2V0RWxlbWVudCkKQEAgLTE1NSw3ICsxNjEsNyBAQCBib29s
IFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoY29uc3QgU3RyaW5n
JiBmcm9tU3RyaW5nLCBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFNWR0FuaW1h
dGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMoY29uc3QgU3RyaW5nJiBmcm9tU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGJ5U3RyaW5nKQorYm9vbCBTVkdBbmltYXRlRWxlbWVudEJhc2U6
OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0
IFN0cmluZyYgYnlTdHJpbmcpCiB7CiAgICAgU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCA9IHRo
aXMtPnRhcmdldEVsZW1lbnQoKTsKICAgICBpZiAoIXRhcmdldEVsZW1lbnQpCkBAIC0xOTUsNyAr
MjAxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHByb3BlcnR5VHlwZXNBcmVDb25zaXN0ZW50KEFu
aW1hdGVkUHJvcGVydHlUeXBlIGV4cGVjdGVkUHJvcGUKIH0KICNlbmRpZgogCi12b2lkIFNWR0Fu
aW1hdGVFbGVtZW50OjpyZXNldEFuaW1hdGVkVHlwZSgpCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50
QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUoKQogewogICAgIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9y
KiBhbmltYXRvciA9IGVuc3VyZUFuaW1hdG9yKCk7CiAgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUgPT0gYW5pbWF0b3ItPnR5cGUoKSk7CkBAIC0zMTgsNyArMzI0LDcgQEAgc3RhdGlj
IGlubGluZSB2b2lkIG5vdGlmeVRhcmdldEFuZEluc3RhbmNlc0Fib3V0QW5pbVZhbENoYW5nZShT
VkdFbGVtZW50KiB0YXJnZXQKICAgICB9CiB9CiAKLXZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNs
ZWFyQW5pbWF0ZWRUeXBlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQpCit2b2lkIFNWR0FuaW1h
dGVFbGVtZW50QmFzZTo6Y2xlYXJBbmltYXRlZFR5cGUoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVu
dCkKIHsKICAgICBpZiAoIW1fYW5pbWF0ZWRUeXBlKQogICAgICAgICByZXR1cm47CkBAIC0zNDks
NyArMzU1LDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2xlYXJBbmltYXRlZFR5cGUoU1ZH
RWxlbWVudCogdGFyZ2V0RWxlbWVudCkKICAgICBtX2FuaW1hdGVkVHlwZSA9IG51bGxwdHI7CiB9
CiAKLXZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkKK3ZvaWQg
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNUb1RhcmdldCgpCiB7CiAgICAgQVNT
RVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgIT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHx8IGhh
c1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUcmFuc2Zvcm1UYWcpKTsKICAgICBBU1NFUlQobV9h
bmltYXRlZFByb3BlcnR5VHlwZSAhPSBBbmltYXRlZFVua25vd24pOwpAQCAtMzgwLDcgKzM4Niw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkKICAgICBu
b3RpZnlUYXJnZXRBbmRJbnN0YW5jZXNBYm91dEFuaW1WYWxDaGFuZ2UodGFyZ2V0RWxlbWVudCwg
YXR0cmlidXRlTmFtZSk7CiB9CiAKLWJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFuaW1hdGVkUHJv
cGVydHlUeXBlU3VwcG9ydHNBZGRpdGlvbigpIGNvbnN0Citib29sIFNWR0FuaW1hdGVFbGVtZW50
QmFzZTo6YW5pbWF0ZWRQcm9wZXJ0eVR5cGVTdXBwb3J0c0FkZGl0aW9uKCkgY29uc3QKIHsKICAg
ICAvLyBTcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5odG1sI0FuaW1hdGlv
bkF0dHJpYnV0ZXNBbmRQcm9wZXJ0aWVzLgogICAgIHN3aXRjaCAobV9hbmltYXRlZFByb3BlcnR5
VHlwZSkgewpAQCAtNDEwLDcgKzQxNiw3IEBAIGJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFuaW1h
dGVkUHJvcGVydHlUeXBlU3VwcG9ydHNBZGRpdGlvbigpIGNvbnN0CiAgICAgfQogfQogCi1ib29s
IFNWR0FuaW1hdGVFbGVtZW50Ojppc0FkZGl0aXZlKCkgY29uc3QKK2Jvb2wgU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlOjppc0FkZGl0aXZlKCkgY29uc3QKIHsKICAgICBpZiAoYW5pbWF0aW9uTW9kZSgp
ID09IEJ5QW5pbWF0aW9uIHx8IGFuaW1hdGlvbk1vZGUoKSA9PSBGcm9tQnlBbmltYXRpb24pCiAg
ICAgICAgIGlmICghYW5pbWF0ZWRQcm9wZXJ0eVR5cGVTdXBwb3J0c0FkZGl0aW9uKCkpCkBAIC00
MTksNyArNDI1LDcgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6aXNBZGRpdGl2ZSgpIGNvbnN0
CiAgICAgcmV0dXJuIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUoKTsKIH0KIAotZmxv
YXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJv
bVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKK2Zsb2F0IFNWR0FuaW1hdGVFbGVtZW50
QmFzZTo6Y2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHRvU3RyaW5nKQogewogICAgIC8vIEZJWE1FOiBBIHJldHVybiB2YWx1ZSBvZiBmbG9h
dCBpcyBub3QgZW5vdWdoIHRvIHN1cHBvcnQgcGFjZWQgYW5pbWF0aW9ucyBvbiBsaXN0cy4KICAg
ICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgpOwpAQCAt
NDI5LDE5ICs0MzUsMTkgQEAgZmxvYXQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZURpc3Rh
bmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW4KICAgICByZXR1cm4gZW5z
dXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRGlzdGFuY2UoZnJvbVN0cmluZywgdG9TdHJpbmcpOwog
fQogCi12b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpzZXRUYXJnZXRFbGVtZW50KFNWR0VsZW1lbnQq
IHRhcmdldCkKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpzZXRUYXJnZXRFbGVtZW50KFNW
R0VsZW1lbnQqIHRhcmdldCkKIHsKICAgICBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRUYXJnZXRF
bGVtZW50KHRhcmdldCk7CiAgICAgcmVzZXRBbmltYXRlZFByb3BlcnR5VHlwZSgpOwogfQogCi12
b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpzZXRBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUpCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6c2V0QXR0cmli
dXRlTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogewogICAgIFNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSk7CiAgICAgcmVz
ZXRBbmltYXRlZFByb3BlcnR5VHlwZSgpOwogfQogCi12b2lkIFNWR0FuaW1hdGVFbGVtZW50Ojpy
ZXNldEFuaW1hdGVkUHJvcGVydHlUeXBlKCkKK3ZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpy
ZXNldEFuaW1hdGVkUHJvcGVydHlUeXBlKCkKIHsKICAgICBBU1NFUlQoIW1fYW5pbWF0ZWRUeXBl
KTsKICAgICBtX2Zyb21UeXBlID0gbnVsbHB0cjsKQEAgLTQ1MSw3ICs0NTcsNyBAQCB2b2lkIFNW
R0FuaW1hdGVFbGVtZW50OjpyZXNldEFuaW1hdGVkUHJvcGVydHlUeXBlKCkKICAgICBtX2FuaW1h
dGVkUHJvcGVydHlUeXBlID0gdGFyZ2V0RWxlbWVudCgpID8gZGV0ZXJtaW5lQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUodGFyZ2V0RWxlbWVudCgpKSA6IEFuaW1hdGVkU3RyaW5nOwogfQogCi1TVkdBbmlt
YXRlZFR5cGVBbmltYXRvciogU1ZHQW5pbWF0ZUVsZW1lbnQ6OmVuc3VyZUFuaW1hdG9yKCkKK1NW
R0FuaW1hdGVkVHlwZUFuaW1hdG9yKiBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmVuc3VyZUFuaW1h
dG9yKCkKIHsKICAgICBpZiAoIW1fYW5pbWF0b3IpCiAgICAgICAgIG1fYW5pbWF0b3IgPSBTVkdB
bmltYXRvckZhY3Rvcnk6OmNyZWF0ZSh0aGlzLCB0YXJnZXRFbGVtZW50KCksIG1fYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAppbmRleCA2
NDFiZmYzYzdhMzVlYzQxMGYyMjljMzI0ZGRhZDE3ZGI3ZmFkNTM1Li5lZmQyMmFhYTg0YmMwZTI0
YzkwMzRhMGJhOGYwODc3NzNmOWZiZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuaApAQCAtMzIsMTUgKzMyLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U1ZHQW5pbWF0ZWRQcm9wZXJ0eTsKIAotY2xhc3MgU1ZHQW5pbWF0ZUVsZW1lbnQgOiBwdWJsaWMg
U1ZHQW5pbWF0aW9uRWxlbWVudCB7CitjbGFzcyBTVkdBbmltYXRlRWxlbWVudEJhc2UgOiBwdWJs
aWMgU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHQW5pbWF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKLSAgICB2aXJ0dWFsIH5TVkdBbmltYXRlRWxlbWVudCgpOworICAgIHZpcnR1YWwgflNWR0Fu
aW1hdGVFbGVtZW50QmFzZSgpOwogCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgZGV0ZXJtaW5l
QW5pbWF0ZWRQcm9wZXJ0eVR5cGUoU1ZHRWxlbWVudCopIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cisg
ICAgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbWF0ZWRUeXBlKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyQW5pbWF0ZWRUeXBlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQp
IG92ZXJyaWRlOwpAQCAtNzQsMTUgKzczLDIzIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yPiBtX2FuaW1hdG9yOwogfTsKIAotU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihTVkdBbmltYXRlRWxlbWVudCkKLSAgICBzdGF0aWMgYm9vbCBp
c1NWR0FuaW1hdGVFbGVtZW50KGNvbnN0IFNWR0VsZW1lbnQmIGVsZW1lbnQpCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0JFR0lOKFNWR0FuaW1hdGVFbGVtZW50QmFzZSkKKyAgICBzdGF0aWMgYm9v
bCBTVkdBbmltYXRlRWxlbWVudEJhc2UoY29uc3QgU1ZHRWxlbWVudCYgZWxlbWVudCkKICAgICB7
CiAgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUYWcp
IHx8IGVsZW1lbnQuaGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZUNvbG9yVGFnKQogICAgICAg
ICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlVHJhbnNmb3JtVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZyk7CiAgICAgfQotICAgIHN0
YXRpYyBib29sIGlzU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4g
aXM8U1ZHRWxlbWVudD4obm9kZSkgJiYgaXNTVkdBbmltYXRlRWxlbWVudChkb3duY2FzdDxTVkdF
bGVtZW50Pihub2RlKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBTVkdBbmltYXRlRWxlbWVudEJhc2Uo
Y29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8U1ZHRWxlbWVudD4obm9kZSkgJiYgU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlKGRvd25jYXN0PFNWR0VsZW1lbnQ+KG5vZGUpKTsgfQogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19FTkQoKQogCitjbGFzcyBTVkdBbmltYXRlRWxlbWVudCBmaW5hbCA6IHB1
YmxpYyBTVkdBbmltYXRlRWxlbWVudEJhc2UgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR0FuaW1hdGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CisKK3ByaXZhdGU6CisgICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBTVkdBbmltYXRlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAppbmRleCAyMmJhNzliYjVmMmMxYWU1ZmFkY2JkODhm
MjJmNDU5MmE3YWEzMGYwLi5mZWExZjAxODgxYzI3YWQ2ZWEwMWI2MGU4NWM5YjQwY2VhMDI0MDdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIFNW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBTVkdB
bmltYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICA6IFNWR0FuaW1hdGVFbGVtZW50
QmFzZSh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fdHlwZShTVkdUcmFuc2Zvcm06OlNWR19U
UkFOU0ZPUk1fVU5LTk9XTikKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6YW5p
bWF0ZVRyYW5zZm9ybVRhZykpOwpAQCAtNjUsNyArNjUsNyBAQCBib29sIFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTgogdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAg
ICBpZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRlKG5hbWUpKSB7Ci0gICAgICAgIFNWR0FuaW1hdGVF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIFNWR0FuaW1hdGVF
bGVtZW50QmFzZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudC5oCmluZGV4IGIxYTQ0ZWFlYjA1NzIwZTdmNjQ4YzdiY2M4MjdmNGE1ZjBlM2EzOTMuLmQz
YjU5YTVhM2MxZjBiMWExZjIyNWZlNzZiN2IyMWE0ZWYxY2ViZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCkBAIC0zMCw3ICszMCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogCi1jbGFzcyBT
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlRWxlbWVu
dCB7CitjbGFzcyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdB
bmltYXRlRWxlbWVudEJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRl
eCBkMWYzNTg5OTQ1YTNiYjBmMTIxZTg1YTFmMzgzMGI5ZDdjOTMwYmJhLi4wMGJjMGI5MTk2YmQ4
MzdkNDM3Mjg4YjgxNDFmMWFmYTEwN2FlZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnQuY3BwCkBAIC01MDcsOCArNTA3LDggQEAgdm9pZCBTVkdBbmltYXRpb25F
bGVtZW50OjpjdXJyZW50VmFsdWVzRm9yVmFsdWVzQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQsIGZs
b2F0JgogICAgIH0KIAogICAgIENhbGNNb2RlIGNhbGNNb2RlID0gdGhpcy0+Y2FsY01vZGUoKTsK
LSAgICBpZiAoaGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZVRhZykgfHwgaGFzVGFnTmFtZShT
VkdOYW1lczo6YW5pbWF0ZUNvbG9yVGFnKSkgewotICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlw
ZSBhdHRyaWJ1dGVUeXBlID0gZG93bmNhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnQ+KCp0aGlzKS5kZXRl
cm1pbmVBbmltYXRlZFByb3BlcnR5VHlwZSh0YXJnZXRFbGVtZW50KCkpOworICAgIGlmIChpczxT
VkdBbmltYXRlRWxlbWVudD4oKnRoaXMpIHx8IGlzPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+KCp0
aGlzKSkgeworICAgICAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBhdHRyaWJ1dGVUeXBlID0gZG93
bmNhc3Q8U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlPigqdGhpcykuZGV0ZXJtaW5lQW5pbWF0ZWRQcm9w
ZXJ0eVR5cGUodGFyZ2V0RWxlbWVudCgpKTsKICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIGRpc2Ny
ZXRlIGFuaW1hdGlvbnMgZm9yIFN0cmluZ3MuCiAgICAgICAgIGlmIChhdHRyaWJ1dGVUeXBlID09
IEFuaW1hdGVkQm9vbGVhbgogICAgICAgICAgICAgfHwgYXR0cmlidXRlVHlwZSA9PSBBbmltYXRl
ZEVudW1lcmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVudC5jcHAKaW5kZXggOWJkZGU2
MmE1YjRhOTEyMmRkNzVlYWQ0MDc1YWM4MTFmOWE4ZTRjMy4uZDc5MTViNjRiY2M2ODAyZDE3YTZi
YTFhZTY4ZGExYzdhYzAyYmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nl
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNwcApA
QCAtMjYsNyArMjYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogaW5saW5lIFNWR1Nl
dEVsZW1lbnQ6OlNWR1NldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQotICAgIDogU1ZHQW5pbWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCisgICAgOiBTVkdBbmltYXRlRWxlbWVudEJhc2UodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAg
ICAgc2V0QW5pbWF0aW9uTW9kZShUb0FuaW1hdGlvbik7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnNldFRhZykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nl
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmgKaW5kZXggZDcw
MjI4N2RlMTc0N2U4Zjc1NjVlYzhmOTdjYzNlYTJjMDFjOGVlMC4uZmI3YWZlZDY4ZDBjOWIyMjA5
ZTczZGUzNWExODAxOWY1OGQzZjM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVudC5oCkBA
IC0yNiw3ICsyNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFNWR0FuaW1hdGVFbGVt
ZW50IGltcGxlbWVudHMgc3VwZXJzZXQgb2YgdGhlIGZ1bmN0aW9uYWxpdHkuCi1jbGFzcyBTVkdT
ZXRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50IHsKK2NsYXNzIFNWR1Nl
dEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTZXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9z
dmd0YWdzLmluIGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KaW5kZXggYjc3MDhjMTEx
Y2JmYjAyYTcwODNkZGZmMGRkZjUyOTY4ZGFmNzBjZS4uZWZhNWY1MDk4OTgwY2UzMTJmODg0NjEx
MjM0NmU3ZWNlMjBmNTUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3Mu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KQEAgLTMsMjYgKzMsMjYgQEAg
bmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKIGZhbGxiYWNrSW50ZXJm
YWNlTmFtZT0iU1ZHVW5rbm93bkVsZW1lbnQiCiBmYWxsYmFja0pTSW50ZXJmYWNlTmFtZT0iU1ZH
RWxlbWVudCIKIAotYSBnZW5lcmF0ZVR5cGVIZWxwZXJzCithCiAjaWYgRU5BQkxFX1NWR19GT05U
UwotYWx0R2x5cGggZ2VuZXJhdGVUeXBlSGVscGVycwotYWx0R2x5cGhEZWYgZ2VuZXJhdGVUeXBl
SGVscGVycwotYWx0R2x5cGhJdGVtIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2FsdEdseXBoCithbHRH
bHlwaERlZgorYWx0R2x5cGhJdGVtCiAjZW5kaWYKIGFuaW1hdGUKIGFuaW1hdGVDb2xvcgotYW5p
bWF0ZU1vdGlvbiBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1hbmltYXRlVHJhbnNmb3JtIGdlbmVyYXRl
VHlwZUhlbHBlcnMKK2FuaW1hdGVNb3Rpb24KK2FuaW1hdGVUcmFuc2Zvcm0KIHNldAotY2lyY2xl
IGdlbmVyYXRlVHlwZUhlbHBlcnMKLWNsaXBQYXRoIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2NpcmNs
ZQorY2xpcFBhdGgKICNpZiAwCiBjb2xvcl9wcm9maWxlCiAjZW5kaWYKLWN1cnNvciBnZW5lcmF0
ZVR5cGVIZWxwZXJzCitjdXJzb3IKIGRlZnMKIGRlc2MKLWVsbGlwc2UgZ2VuZXJhdGVUeXBlSGVs
cGVycworZWxsaXBzZQogZmVCbGVuZAogZmVDb2xvck1hdHJpeAogZmVDb21wb25lbnRUcmFuc2Zl
cgpAQCAtMzAsNjkgKzMwLDY5IEBAIGZlQ29tcG9zaXRlCiBmZUNvbnZvbHZlTWF0cml4CiBmZURp
ZmZ1c2VMaWdodGluZwogZmVEaXNwbGFjZW1lbnRNYXAKLWZlRGlzdGFudExpZ2h0IGdlbmVyYXRl
VHlwZUhlbHBlcnMKK2ZlRGlzdGFudExpZ2h0CiBmZURyb3BTaGFkb3cKIGZlRmxvb2QKLWZlRnVu
Y0EgZ2VuZXJhdGVUeXBlSGVscGVycwotZmVGdW5jQiBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mZUZ1
bmNHIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWZlRnVuY1IgZ2VuZXJhdGVUeXBlSGVscGVycworZmVG
dW5jQQorZmVGdW5jQgorZmVGdW5jRworZmVGdW5jUgogZmVHYXVzc2lhbkJsdXIKIGZlSW1hZ2UK
IGZlTWVyZ2UKLWZlTWVyZ2VOb2RlIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ZlTWVyZ2VOb2RlCiBm
ZU1vcnBob2xvZ3kKIGZlT2Zmc2V0Ci1mZVBvaW50TGlnaHQgZ2VuZXJhdGVUeXBlSGVscGVycwor
ZmVQb2ludExpZ2h0CiBmZVNwZWN1bGFyTGlnaHRpbmcKLWZlU3BvdExpZ2h0IGdlbmVyYXRlVHlw
ZUhlbHBlcnMKK2ZlU3BvdExpZ2h0CiBmZVRpbGUKIGZlVHVyYnVsZW5jZQotZmlsdGVyIGdlbmVy
YXRlVHlwZUhlbHBlcnMKK2ZpbHRlcgogI2lmIEVOQUJMRV9TVkdfRk9OVFMKLWZvbnQgZ2VuZXJh
dGVUeXBlSGVscGVycwotZm9udF9mYWNlIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ZvbnQKK2ZvbnRf
ZmFjZQogZm9udF9mYWNlX2Zvcm1hdAotZm9udF9mYWNlX25hbWUgZ2VuZXJhdGVUeXBlSGVscGVy
cwotZm9udF9mYWNlX3NyYyBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mb250X2ZhY2VfdXJpIGdlbmVy
YXRlVHlwZUhlbHBlcnMKK2ZvbnRfZmFjZV9uYW1lCitmb250X2ZhY2Vfc3JjCitmb250X2ZhY2Vf
dXJpCiAjZW5kaWYKLWZvcmVpZ25PYmplY3QgZ2VuZXJhdGVUeXBlSGVscGVycwotZyBnZW5lcmF0
ZVR5cGVIZWxwZXJzCitmb3JlaWduT2JqZWN0CitnCiAjaWYgRU5BQkxFX1NWR19GT05UUwotZ2x5
cGggZ2VuZXJhdGVUeXBlSGVscGVycwotZ2x5cGhSZWYgZ2VuZXJhdGVUeXBlSGVscGVycwotaGtl
cm4gaW50ZXJmYWNlTmFtZT1TVkdIS2VybkVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ds
eXBoCitnbHlwaFJlZgoraGtlcm4gaW50ZXJmYWNlTmFtZT1TVkdIS2VybkVsZW1lbnQKICNlbmRp
ZgotaW1hZ2UgZ2VuZXJhdGVUeXBlSGVscGVycwotbGluZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1s
aW5lYXJHcmFkaWVudCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1tYXJrZXIgZ2VuZXJhdGVUeXBlSGVs
cGVycwotbWFzayBnZW5lcmF0ZVR5cGVIZWxwZXJzCitpbWFnZQorbGluZQorbGluZWFyR3JhZGll
bnQKK21hcmtlcgorbWFzawogbWV0YWRhdGEKICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCi1taXNzaW5n
X2dseXBoIGdlbmVyYXRlVHlwZUhlbHBlcnMKK21pc3NpbmdfZ2x5cGgKICNlbmRpZgotbXBhdGgg
aW50ZXJmYWNlTmFtZT1TVkdNUGF0aEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXBhdGgg
Z2VuZXJhdGVUeXBlSGVscGVycwotcGF0dGVybiBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1wb2x5Z29u
IGdlbmVyYXRlVHlwZUhlbHBlcnMKLXBvbHlsaW5lIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXJhZGlh
bEdyYWRpZW50IGdlbmVyYXRlVHlwZUhlbHBlcnMKLXJlY3QgZ2VuZXJhdGVUeXBlSGVscGVycwot
c2NyaXB0IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBl
cnMKLXN0b3AgZ2VuZXJhdGVUeXBlSGVscGVycwotc3R5bGUgY29uc3RydWN0b3JOZWVkc0NyZWF0
ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwotc3ZnIGludGVyZmFjZU5hbWU9U1ZHU1ZH
RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycworbXBhdGggaW50ZXJmYWNlTmFtZT1TVkdNUGF0
aEVsZW1lbnQKK3BhdGgKK3BhdHRlcm4KK3BvbHlnb24KK3BvbHlsaW5lCityYWRpYWxHcmFkaWVu
dAorcmVjdAorc2NyaXB0IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK3N0b3AKK3N0
eWxlIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK3N2ZyBpbnRlcmZhY2VOYW1lPVNW
R1NWR0VsZW1lbnQKIHN3aXRjaAogc3ltYm9sCi10ZXh0IGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRl
eHRQYXRoIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRpdGxlIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3Rl
eHQKK3RleHRQYXRoCit0aXRsZQogdHJlZiBpbnRlcmZhY2VOYW1lPVNWR1RSZWZFbGVtZW50CiB0
c3BhbiBpbnRlcmZhY2VOYW1lPVNWR1RTcGFuRWxlbWVudAotdXNlIGNvbnN0cnVjdG9yTmVlZHND
cmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXZpZXcgZ2VuZXJhdGVUeXBlSGVs
cGVycwordXNlIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK3ZpZXcKICNpZiBFTkFC
TEVfU1ZHX0ZPTlRTCi12a2VybiBpbnRlcmZhY2VOYW1lPVNWR1ZLZXJuRWxlbWVudCwgZ2VuZXJh
dGVUeXBlSGVscGVycwordmtlcm4gaW50ZXJmYWNlTmFtZT1TVkdWS2VybkVsZW1lbnQKICNlbmRp
Zgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238833</attachid>
            <date>2014-09-28 18:17:18 -0700</date>
            <delta_ts>2014-09-28 19:13:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137174-20140928181718.patch</filename>
            <type>text/plain</type>
            <size>88757</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRjOGU4YmU1NmIyMzky
MzIzMjM5OTY3NDM5OTMxYTA1ZjQ5YTQwMy4uZmU2NmY3MjI2MGI0NGQzY2IzODgzYzAyODliNDMx
OWE4NzFlYjg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxNC0wOS0yOCAgQ2hy
aXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXV0b21hdGljYWxs
eSBnZW5lcmF0ZSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMgZm9yIG1vc3QgRWxlbWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzE3NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFByZXZpb3VzbHksIHRo
ZSB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMgdG8gbWFrZSBpczw+KCkgLyBkb3duY2FzdDw+KCkK
KyAgICAgICAgd29yayBmb3IgSFRNTC9TVkcvTWF0aE1MIGVsZW1lbnRzIHdlcmUgb25seSBnZW5l
cmF0ZWQgaWYKKyAgICAgICAgImdlbmVyYXRlVHlwZUhlbHBlcnMiIHBhcmFtZXRlciB3YXMgZXhw
bGljaXRseSBzcGVjaWZpZWQgZm9yIHRoZQorICAgICAgICBjb3JyZXNwb25kaW5nIHRhZyBuYW1l
IGluIHRoZSAqVGFncy5pbiBmaWxlLgorCisgICAgICAgIFdlIGFyZSBob3dldmVyIGFibGUgdG8g
Z2VuZXJhdGUgdGhlIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyBmb3IgbW9zdAorICAgICAgICB0
eXBlcyBzbyB0aGlzIHBhdGNoIGRyb3BzIHRoZSAiZ2VuZXJhdGVUeXBlSGVscGVycyIgcGFyYW1l
dGVyIGFuZAorICAgICAgICBnZW5lcmF0ZXMgdGhvc2UgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25z
IGJ5IGRlZmF1bHQuCisKKyAgICAgICAgT25lIGNhc2Ugd2UgY2Fubm90IGdlbmVyYXRlIHRoZSBz
cGVjaWFsaXphdGlvbiBpZm9yIGlzIHdoZW4gYSBjbGFzcyBpcworICAgICAgICBhc3NvY2lhdGVk
IHRvIHNldmVyYWwgdGFnIG5hbWVzIGJ1dCB0aGlzIHBhdGNoIHVwZGF0ZXMgdGhlCisgICAgICAg
IG1ha2VfbmFtZXMucGwgc2NyaXB0IHRvIGRldGVjdCB0aGlzIGFuZCBza2lwIHRob3NlIGNsYXNz
ZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChkZWZhdWx0
VGFnUHJvcGVydHlIYXNoKToKKyAgICAgICAgKHByaW50VHlwZUhlbHBlcnMpOgorICAgICAgICAq
IGh0bWwvSFRNTFRhZ05hbWVzLmluOgorICAgICAgICAqIG1hdGhtbC9tYXRodGFncy5pbjoKKyAg
ICAgICAgKiBzdmcvU1ZHQWxsSW5PbmUuY3BwOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29s
b3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6
OlNWR0FuaW1hdGVDb2xvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudDo6ZGV0ZXJtaW5lUHJvcGVydHlWYWx1ZVR5cGVzKToKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6U1ZHQW5pbWF0ZUVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6On5TVkdBbmltYXRl
RWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6
aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVFbGVtZW50OjpkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5VHlwZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3Vs
YXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1
ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJvcGVydHlUeXBlc0FyZUNvbnNpc3Rl
bnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0
QW5pbWF0ZWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Q1NTUHJvcGVy
dHlUb1RhcmdldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVDU1NQcm9wZXJ0
eUZyb21UYXJnZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlDU1NQcm9wZXJ0
eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnJlbW92
ZUNTU1Byb3BlcnR5RnJvbVRhcmdldEFuZEluc3RhbmNlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpub3RpZnlUYXJnZXRBYm91dEFuaW1WYWxDaGFuZ2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6bm90aWZ5VGFyZ2V0QW5kSW5zdGFuY2VzQWJvdXRBbmltVmFsQ2hhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpjbGVhckFuaW1h
dGVkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6
YXBwbHlSZXN1bHRzVG9UYXJnZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZUVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlUeXBlU3VwcG9ydHNBZGRpdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6aXNBZGRpdGl2ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRGlz
dGFuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OnNl
dFRhcmdldEVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVs
ZW1lbnQ6OnNldEF0dHJpYnV0ZU5hbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZUVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnQ6OmVuc3VyZUFuaW1hdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzU1ZHQW5pbWF0ZUVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRl
RWxlbWVudEJhc2UuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZUVsZW1lbnQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpT
VkdBbmltYXRlRWxlbWVudEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlOjp+U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVFbGVtZW50QmFzZTo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6ZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6Y2Fs
Y3VsYXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlRWxlbWVudEJhc2U6OmNhbGN1bGF0ZUZyb21BbmRUb1ZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpwcm9wZXJ0eVR5cGVzQXJlQ29uc2lzdGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmFwcGx5Q1NTUHJvcGVydHlUb1RhcmdldCk6CisgICAgICAgIChXZWJDb3Jl
OjpyZW1vdmVDU1NQcm9wZXJ0eUZyb21UYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlD
U1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92
ZUNTU1Byb3BlcnR5RnJvbVRhcmdldEFuZEluc3RhbmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpu
b3RpZnlUYXJnZXRBYm91dEFuaW1WYWxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6bm90aWZ5
VGFyZ2V0QW5kSW5zdGFuY2VzQWJvdXRBbmltVmFsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6Y2xlYXJBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphcHBseVJlc3VsdHNUb1RhcmdldCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmFuaW1hdGVkUHJvcGVydHlUeXBl
U3VwcG9ydHNBZGRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJh
c2U6OmlzQWRkaXRpdmUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVsZW1lbnRCYXNl
OjpjYWxjdWxhdGVEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVu
dEJhc2U6OnNldFRhcmdldEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlOjpzZXRBdHRyaWJ1dGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFByb3BlcnR5VHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmVuc3VyZUFuaW1hdG9yKToKKyAgICAgICAgKiBz
dmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6aXNTVkdBbmltYXRlRWxl
bWVudEJhc2UpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6U1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHA6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHA6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkQ29sb3IuY3BwOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHA6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVk
TGVuZ3RoTGlzdC5jcHA6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcDoKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHA6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkUGF0aC5jcHA6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcDoKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcDoKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRTdHJp
bmcuY3BwOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmN1cnJlbnRWYWx1ZXNGb3JWYWx1ZXNBbmlt
YXRpb24pOgorICAgICAgICAqIHN2Zy9TVkdTZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1NldEVsZW1lbnQ6OlNWR1NldEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdTZXRF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL3N2Z3RhZ3MuaW46CisKIDIwMTQtMDktMjggIFN1bmdt
YW5uIENobyAgPHN1bmdtYW5uLmNob0BuYXZlcmNvcnAuY29tPgogCiAgICAgICAgIEZpeCBzb21l
IG1pbm9yIHR5cG9zOiBwc3VlZG8gLT4gcHNldWRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDhk
YjdkN2QxOTNhM2NkOWYxM2Q3Nzk0ODRkMjEzYmI4YWZiY2QwNzMuLjZkYWRjMzBkMTY5M2IzNjc1
MzY1MTI1ZTI5NzlhZDI3N2RkMzc5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNTIxLDYg
KzI1MjEsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgc3ZnL1NWR0FsdEdseXBoSXRlbUVs
ZW1lbnQuY3BwCiAgICAgc3ZnL1NWR0FuZ2xlLmNwcAogICAgIHN2Zy9TVkdBbmltYXRlQ29sb3JF
bGVtZW50LmNwcAorICAgIHN2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwCiAgICAgc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmNwcAogICAgIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAK
ICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTY5ZTk2YzM2MGU0
YjkwNDk0OTAxYTA3OTgyYTI3MmU0YmU0ZGM4ZS4uMTE5NGMxNGY2OTgxYmEwOTY3NDA3MWQyYmFj
MTFhMzY1ZGYxNTU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjQ3Niw2ICsyNDc2LDggQEAKIAkJODJBQjE3NzYxMjVDODI2
NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyQUIxNzcyMTI1QzgyNjcwMEM1MDY5RCAvKiBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmggKi87IH07CiAJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVC
QyAvKiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4REMxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3Bl
cnR5U291cmNlRGF0YS5jcHAgKi87IH07CiAJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBD
U1NQcm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzMzE5RDhF
NTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggKi87IH07CisJCTgzMkI4NDM2
MTlEOEU1NzQwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzUxOUQ4RTU3NDAwQjI2
MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgKi87IH07CiAJCTgzNkZCQ0VBMTc4QzEx
MzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUg
LyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovOyB9OwogCQk4MzZGQkNFQzE3OEMxMTdG
MDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFQjE3OEMxMTdGMDBCMjFBMTUgLyogU1ZH
QW5pbWF0ZWRQcm9wZXJ0eS5jcHAgKi87IH07CiAJCTgzQzFENDI1MTc4RDVBQjQwMDE0MUU2OCAv
KiBTVkdQYXRoU2VnQXJjQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4M0MxRDQxMzE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0FyY0Ficy5o
ICovOyB9OwpAQCAtOTYyNyw2ICs5NjI5LDggQEAKIAkJODJBQjE3NzIxMjVDODI2NzAwQzUwNjlE
IC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5U291cmNl
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyRTNEOEREMTIyRUEwRDEw
MDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMkI4NDM1MTlEOEU1NzQwMEIy
NjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkVHlw
ZUFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0Fu
aW1hdGVkVHlwZUFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2
RkJDRUIxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQzFENDEzMTc4RDVBQjQwMDE0MUU2OCAvKiBT
VkdQYXRoU2VnQXJjQWJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Bh
dGhTZWdBcmNBYnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzgwLDYgKzE5
Nzg0LDggQEAKIAkJCQk0MzlEMzM0MDEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBl
LmggKi8sCiAJCQkJODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkVHlwZUFu
aW1hdG9yLmNwcCAqLywKIAkJCQk0MzlEMzM0MTEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0
ZWRUeXBlQW5pbWF0b3IuaCAqLywKKwkJCQk4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCAqLywKKwkJCQk4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUg
LyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggKi8sCiAJCQkJQjIyMjc3RjkwRDAwQkYxRjAwNzFC
NzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmNwcCAqLywKIAkJCQlCMjIyNzdGQTBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCAqLywKIAkJCQlCMjIyNzdGQjBEMDBCRjFGMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsICovLApAQCAtMjM4NTYsNiArMjM4NjIsNyBA
QAogCQkJCTkzRDNDMTU5MEY5N0E5RDcwMDUzQzAxMyAvKiBET01IVE1MQ2FudmFzRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOUI2NTgwQkEwRjM1RTAwODU0MDY0IC8qIERPTUhUTUxD
YW52YXNFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1REYyRjhFMEFBM0M4
ODEwMEFENjRDNSAvKiBET01IVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMy
Qjg0MzQxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODVFNzExQTIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxDb2xsZWN0aW9u
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QzA0MUUzMEZGQ0E5NkQwMDgzOUQ0QSAv
KiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUMwNDFFNTBG
RkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudEludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI3MzcwLDYgKzI3Mzc3LDcgQEAKIAkJCQk1OUE4RjFENDExQTY5NTA4MDAx
QUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTU5RDFDMTA0MTFFQjVEQ0YwMEI2MzhDOCAvKiBEZXZpY2VPcmllbnRhdGlvbkRhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTlBODVFQTIxMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9y
aWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODMyQjg0MzYxOUQ4RTU3NDAw
QjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDM3QjM5ODE1QzFCOTcxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNFQ0FERkM2MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRl
cm5hdGl2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRUNBREZDODE1Mzc3OEZGMDBFMzcwNjgg
LyogRGljdGF0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFt
ZXMucGwKaW5kZXggZDA4MjYwMWI0ZTFjNTE3NzAxZDg2ZmMyM2JjNmQ4N2NjZDM1MWFjYi4uOTJh
OTc5NmU0Njc3MzVmNzg5Y2FiOTg3MDJlMjI1Y2I4ZTlkYzNiNiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2Vf
bmFtZXMucGwKQEAgLTE5NCw3ICsxOTQsNiBAQCBzdWIgZGVmYXVsdFRhZ1Byb3BlcnR5SGFzaAog
ICAgICAgICAnd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUnID0+IDAsCiAgICAgICAgICdj
b25kaXRpb25hbCcgPT4gMCwKICAgICAgICAgJ3J1bnRpbWVDb25kaXRpb25hbCcgPT4gMCwKLSAg
ICAgICAgJ2dlbmVyYXRlVHlwZUhlbHBlcnMnID0+IDAKICAgICApOwogfQogCkBAIC02MjcsMTIg
KzYyNiwxOCBAQCBzdWIgcHJpbnRUeXBlSGVscGVycwogICAgIG15ICgkRiwgJG5hbWVzUmVmKSA9
IEBfOwogICAgIG15ICVuYW1lcyA9ICUkbmFtZXNSZWY7CiAKLSAgICBmb3IgbXkgJG5hbWUgKHNv
cnQga2V5cyAlbmFtZXMpIHsKLSAgICAgICAgaWYgKCEkcGFyc2VkVGFnc3skbmFtZX17Z2VuZXJh
dGVUeXBlSGVscGVyc30pIHsKLSAgICAgICAgICAgIG5leHQ7Ci0gICAgICAgIH0KLQorICAgICMg
RG8gYSBmaXJzdCBwYXNzIHRvIGRpc2NhcmQgY2xhc3NlcyB0aGF0IG1hcCB0byBzZXZlcmFsIHRh
Z3MuCisgICAgbXkgJWNsYXNzVG9UYWdzID0gKCk7CisgICAgZm9yIG15ICRuYW1lIChrZXlzICVu
YW1lcykgewogICAgICAgICBteSAkY2xhc3MgPSAkcGFyc2VkVGFnc3skbmFtZX17aW50ZXJmYWNl
TmFtZX07CisgICAgICAgIHB1c2goQHskY2xhc3NUb1RhZ3N7JGNsYXNzfX0sICRuYW1lKSBpZiBk
ZWZpbmVkICRjbGFzczsKKyAgICB9CisKKyAgICBmb3IgbXkgJGNsYXNzIChzb3J0IGtleXMgJWNs
YXNzVG9UYWdzKSB7CisgICAgICAgICMgU2tpcCBjbGFzc2VzIHRoYXQgbWFwIHRvIG1vcmUgdGhh
biAxIHRhZy4KKyAgICAgICAgbXkgJHRhZ0NvdW50ID0gc2NhbGFyIEB7JGNsYXNzVG9UYWdzeyRj
bGFzc319OworICAgICAgICBuZXh0IGlmICR0YWdDb3VudCA+IDE7CisgICAgICAgIG15ICRuYW1l
ID0gJGNsYXNzVG9UYWdzeyRjbGFzc31bMF07CiAgICAgICAgIHByaW50IEYgPDxFTkQKIGNsYXNz
ICRjbGFzczsKIHRlbXBsYXRlIDx0eXBlbmFtZSBBcmdUeXBlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWdOYW1lcy5pbgppbmRleCAwZmM4YjA0ZjNmODQzYzgyODVlOWNmMGEyODg2NGUxMTY2NzhiM2Fm
Li45YmI1MWI4ZTBiYzNhYzU1MTY5M2Y0ZjllY2U3NWU1MWFmOWExMDJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWdOYW1lcy5pbgpAQCAtMywyOCArMywyOCBAQCBuYW1lc3BhY2VQcmVmaXg9Inho
dG1sIgogbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIgogZmFsbGJh
Y2tJbnRlcmZhY2VOYW1lPSJIVE1MVW5rbm93bkVsZW1lbnQiCiAKLWEgaW50ZXJmYWNlTmFtZT1I
VE1MQW5jaG9yRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycworYSBpbnRlcmZhY2VOYW1lPUhU
TUxBbmNob3JFbGVtZW50CiBhYmJyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGFjcm9ueW0g
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogYWRkcmVzcyBpbnRlcmZhY2VOYW1lPUhUTUxFbGVt
ZW50Ci1hcHBsZXQgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBl
SGVscGVycwotYXJlYSBnZW5lcmF0ZVR5cGVIZWxwZXJzCithcHBsZXQgY29uc3RydWN0b3JOZWVk
c0NyZWF0ZWRCeVBhcnNlcgorYXJlYQogYXJ0aWNsZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiBhc2lkZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1hdWRpbyB3cmFwcGVyT25seUlmTWVk
aWFJc0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9VklERU8sIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVk
QnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2F1ZGlvIHdyYXBwZXJPbmx5SWZNZWRpYUlz
QXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBh
cnNlcgogYiBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1iYXNlIGdlbmVyYXRlVHlwZUhlbHBl
cnMKK2Jhc2UKIGJhc2Vmb250IGludGVyZmFjZU5hbWU9SFRNTEJhc2VGb250RWxlbWVudAotYmRp
IGludGVyZmFjZU5hbWU9SFRNTEJESUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dCwgZ2VuZXJhdGVUeXBlSGVscGVycworYmRpIGludGVyZmFjZU5hbWU9SFRNTEJESUVsZW1lbnQs
IEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogYmRvIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKIGJnc291bmQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogYmlnIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKIGJsb2NrcXVvdGUgaW50ZXJmYWNlTmFtZT1IVE1MUXVvdGVFbGVtZW50Ci1i
b2R5IGdlbmVyYXRlVHlwZUhlbHBlcnMKLWJyIGludGVyZmFjZU5hbWU9SFRNTEJSRWxlbWVudCwg
Z2VuZXJhdGVUeXBlSGVscGVycwotYnV0dG9uIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwg
Z2VuZXJhdGVUeXBlSGVscGVycwotY2FudmFzIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWNhcHRpb24g
aW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDYXB0aW9uRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVy
cworYm9keQorYnIgaW50ZXJmYWNlTmFtZT1IVE1MQlJFbGVtZW50CitidXR0b24gY29uc3RydWN0
b3JOZWVkc0Zvcm1FbGVtZW50CitjYW52YXMKK2NhcHRpb24gaW50ZXJmYWNlTmFtZT1IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudAogY2VudGVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGNpdGUg
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogY29kZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CkBAIC0zMiw3MyArMzIsNzMgQEAgY29sIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ29sRWxlbWVu
dAogY29sZ3JvdXAgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDb2xFbGVtZW50CiBjb21tYW5kIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHdlYmtpdFNoYWRvd0NvbnRlbnQgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudCwgbm9Db25zdHJ1Y3RvcgotZGF0YWxpc3QgaW50ZXJmYWNlTmFtZT1IVE1M
RGF0YUxpc3RFbGVtZW50LCBjb25kaXRpb25hbD1EQVRBTElTVF9FTEVNRU5ULCBnZW5lcmF0ZVR5
cGVIZWxwZXJzCitkYXRhbGlzdCBpbnRlcmZhY2VOYW1lPUhUTUxEYXRhTGlzdEVsZW1lbnQsIGNv
bmRpdGlvbmFsPURBVEFMSVNUX0VMRU1FTlQKIGRkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQK
IGRlbCBpbnRlcmZhY2VOYW1lPUhUTUxNb2RFbGVtZW50Ci1kZXRhaWxzIGNvbmRpdGlvbmFsPURF
VEFJTFNfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVycyAKK2RldGFpbHMgY29uZGl0aW9uYWw9
REVUQUlMU19FTEVNRU5UCiBkZm4gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogZGlyIGludGVy
ZmFjZU5hbWU9SFRNTERpcmVjdG9yeUVsZW1lbnQKLWRpdiBnZW5lcmF0ZVR5cGVIZWxwZXJzCitk
aXYKIGRsIGludGVyZmFjZU5hbWU9SFRNTERMaXN0RWxlbWVudAogZHQgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogZW0gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotZW1iZWQgY29uc3RydWN0
b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwotZmllbGRzZXQgaW50
ZXJmYWNlTmFtZT1IVE1MRmllbGRTZXRFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1l
bnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2VtYmVkIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQ
YXJzZXIKK2ZpZWxkc2V0IGludGVyZmFjZU5hbWU9SFRNTEZpZWxkU2V0RWxlbWVudCwgY29uc3Ry
dWN0b3JOZWVkc0Zvcm1FbGVtZW50CiBmaWdjYXB0aW9uIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKIGZpZ3VyZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1mb250IGdlbmVyYXRlVHlwZUhl
bHBlcnMKK2ZvbnQKIGZvb3RlciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1mb3JtIGdlbmVy
YXRlVHlwZUhlbHBlcnMKLWZyYW1lIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWZyYW1lc2V0IGludGVy
ZmFjZU5hbWU9SFRNTEZyYW1lU2V0RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycworZm9ybQor
ZnJhbWUKK2ZyYW1lc2V0IGludGVyZmFjZU5hbWU9SFRNTEZyYW1lU2V0RWxlbWVudAogaDEgaW50
ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQKIGgyIGludGVyZmFjZU5hbWU9SFRNTEhlYWRp
bmdFbGVtZW50CiBoMyBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudAogaDQgaW50ZXJm
YWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQKIGg1IGludGVyZmFjZU5hbWU9SFRNTEhlYWRpbmdF
bGVtZW50CiBoNiBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudAotaGVhZCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCitoZWFkCiBoZWFkZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogaGdy
b3VwIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWhyIGludGVyZmFjZU5hbWU9SFRNTEhSRWxl
bWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwotaHRtbCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitociBp
bnRlcmZhY2VOYW1lPUhUTUxIUkVsZW1lbnQKK2h0bWwKIGkgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAotaWZyYW1lIGludGVyZmFjZU5hbWU9SFRNTElGcmFtZUVsZW1lbnQsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKK2lmcmFtZSBpbnRlcmZhY2VOYW1lPUhUTUxJRnJhbWVFbGVtZW50CiBpbWFnZSBp
bnRlcmZhY2VOYW1lPUhUTUxVbmtub3duRWxlbWVudAotaW1nIGludGVyZmFjZU5hbWU9SFRNTElt
YWdlRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCi1pbnB1dCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHND
cmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ltZyBpbnRlcmZhY2VOYW1lPUhU
TUxJbWFnZUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAoraW5wdXQgY29uc3Ry
dWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCiBp
bnMgaW50ZXJmYWNlTmFtZT1IVE1MTW9kRWxlbWVudAogaXNpbmRleCBpbnRlcmZhY2VOYW1lPUhU
TUxVbmtub3duRWxlbWVudAoga2JkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGtleWdlbiBj
b25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKLWxhYmVsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2xh
YmVsCiBsYXllciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1sZWdlbmQgZ2VuZXJhdGVUeXBl
SGVscGVycworbGVnZW5kCiBsaSBpbnRlcmZhY2VOYW1lPUhUTUxMSUVsZW1lbnQKLWxpbmsgY29u
c3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycworbGluayBj
b25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCiBsaXN0aW5nIGludGVyZmFjZU5hbWU9SFRN
TFByZUVsZW1lbnQKIG1haW4gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotbWFwIGdlbmVyYXRl
VHlwZUhlbHBlcnMKK21hcAogbWFyayBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1tYXJxdWVl
IGdlbmVyYXRlVHlwZUhlbHBlcnMKK21hcnF1ZWUKIG1lbnUKLW1ldGEgZ2VuZXJhdGVUeXBlSGVs
cGVycwotbWV0ZXIgaW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJFbGVtZW50LCBjb25kaXRpb25hbD1N
RVRFUl9FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCittZXRhCittZXRlciBpbnRlcmZhY2VO
YW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFsPU1FVEVSX0VMRU1FTlQKIG5hdiBpbnRl
cmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2JyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5v
ZW1iZWQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbm9mcmFtZXMgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogbm9sYXllciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1vYmplY3QgY29u
c3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2Vy
LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1vbCBpbnRlcmZhY2VOYW1lPUhUTUxPTGlzdEVsZW1lbnQs
IGdlbmVyYXRlVHlwZUhlbHBlcnMKLW9wdGdyb3VwIGludGVyZmFjZU5hbWU9SFRNTE9wdEdyb3Vw
RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwotb3B0aW9uIGdlbmVyYXRlVHlwZUhlbHBlcnMK
K29iamVjdCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNDcmVh
dGVkQnlQYXJzZXIKK29sIGludGVyZmFjZU5hbWU9SFRNTE9MaXN0RWxlbWVudAorb3B0Z3JvdXAg
aW50ZXJmYWNlTmFtZT1IVE1MT3B0R3JvdXBFbGVtZW50CitvcHRpb24KIG91dHB1dCBjb25zdHJ1
Y3Rvck5lZWRzRm9ybUVsZW1lbnQKLXAgaW50ZXJmYWNlTmFtZT1IVE1MUGFyYWdyYXBoRWxlbWVu
dCwgZ2VuZXJhdGVUeXBlSGVscGVycwotcGFyYW0gZ2VuZXJhdGVUeXBlSGVscGVycworcCBpbnRl
cmZhY2VOYW1lPUhUTUxQYXJhZ3JhcGhFbGVtZW50CitwYXJhbQogcGxhaW50ZXh0IGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIHByZQotcHJvZ3Jlc3MgaW50ZXJmYWNlTmFtZT1IVE1MUHJvZ3Jl
c3NFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitwcm9ncmVzcyBpbnRlcmZhY2VOYW1lPUhU
TUxQcm9ncmVzc0VsZW1lbnQKIHEgaW50ZXJmYWNlTmFtZT1IVE1MUXVvdGVFbGVtZW50CiByYiBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBycCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CkBA
IC0xMDcsMzQgKzEwNywzNCBAQCBydGMgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcnVieSBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHNh
bXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc2NyaXB0IGNvbnN0cnVjdG9yTmVlZHNDcmVh
dGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3NjcmlwdCBjb25zdHJ1Y3Rvck5lZWRz
Q3JlYXRlZEJ5UGFyc2VyCiBzZWN0aW9uIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXNlbGVj
dCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3NlbGVj
dCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQKIHNtYWxsIGludGVyZmFjZU5hbWU9SFRNTEVs
ZW1lbnQKLXNvdXJjZSB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9
VklERU8sIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXNwYW4gZ2VuZXJhdGVUeXBlSGVscGVycworc291
cmNlIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTworc3Bh
bgogc3RyaWtlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHN0cm9uZyBpbnRlcmZhY2VOYW1l
PUhUTUxFbGVtZW50Ci1zdHlsZSBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5l
cmF0ZVR5cGVIZWxwZXJzCitzdHlsZSBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCiBz
dWIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc3VtbWFyeSBpbnRlcmZhY2VOYW1lPUhUTUxT
dW1tYXJ5RWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50LCBjb25kaXRpb25hbD1E
RVRBSUxTX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3N1bW1hcnkgaW50ZXJmYWNlTmFt
ZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uZGl0
aW9uYWw9REVUQUlMU19FTEVNRU5UCiBzdXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotdGFi
bGUgZ2VuZXJhdGVUeXBlSGVscGVycwordGFibGUKIHRib2R5IGludGVyZmFjZU5hbWU9SFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQKIHRkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQK
LXRlbXBsYXRlIGNvbmRpdGlvbmFsPVRFTVBMQVRFX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBl
cnMKLXRleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxlbWVudCwgY29uc3RydWN0
b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCit0ZW1wbGF0ZSBjb25kaXRp
b25hbD1URU1QTEFURV9FTEVNRU5UCit0ZXh0YXJlYSBpbnRlcmZhY2VOYW1lPUhUTUxUZXh0QXJl
YUVsZW1lbnQsIGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAogdGZvb3QgaW50ZXJmYWNlTmFt
ZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogdGggaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxs
RWxlbWVudAogdGhlYWQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAotdGl0
bGUgZ2VuZXJhdGVUeXBlSGVscGVycwotdHIgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVSb3dFbGVt
ZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi10cmFjayB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWls
YWJsZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0ssIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3RpdGxl
Cit0ciBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVJvd0VsZW1lbnQKK3RyYWNrIHdyYXBwZXJPbmx5
SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogdHQgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAogdSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci11bCBpbnRlcmZh
Y2VOYW1lPUhUTUxVTGlzdEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3VsIGludGVyZmFj
ZU5hbWU9SFRNTFVMaXN0RWxlbWVudAogdmFyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXZp
ZGVvIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgY29u
c3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwordmlkZW8g
d3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1
Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCiB3YnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAog
eG1wIGludGVyZmFjZU5hbWU9SFRNTFByZUVsZW1lbnQKIG5vc2NyaXB0IGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5p
biBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5pbgppbmRleCA5ZWY3MTRlZGIxZDZl
MDhkNjgxNjhlOTQ2NzliODFhMmU1NzJmOGNlLi43Y2NlNmQ3MmU5MmU0YzljOWFlYTFlNjkyMTFj
ZDUxZmJmYTMyNTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3Mu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmluCkBAIC02LDcgKzYsNyBA
QCBmYWxsYmFja0ludGVyZmFjZU5hbWU9Ik1hdGhNTEVsZW1lbnQiCiBhbm5vdGF0aW9uIGludGVy
ZmFjZU5hbWU9TWF0aE1MVGV4dEVsZW1lbnQKIGFubm90YXRpb24teG1sIGludGVyZmFjZU5hbWU9
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAogbWFjdGlvbiBpbnRlcmZhY2VOYW1lPU1hdGhN
TFNlbGVjdEVsZW1lbnQKLW1hdGggZ2VuZXJhdGVUeXBlSGVscGVycworbWF0aAogbWZyYWMgaW50
ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50CiBtZmVuY2VkIGludGVyZmFj
ZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAogbXN1YnN1cCBpbnRlcmZhY2VOYW1l
PU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQKQEAgLTMxLDcgKzMxLDcgQEAgbXRyIGludGVy
ZmFjZU5hbWU9TWF0aE1MRWxlbWVudAogbXRkIGludGVyZmFjZU5hbWU9TWF0aE1MRWxlbWVudAog
bW11bHRpc2NyaXB0cyBpbnRlcmZhY2VOYW1lPU1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQK
IG1wcmVzY3JpcHRzIGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAot
bWVuY2xvc2UgaW50ZXJmYWNlTmFtZT1NYXRoTUxNZW5jbG9zZUVsZW1lbnQsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKK21lbmNsb3NlIGludGVyZmFjZU5hbWU9TWF0aE1MTWVuY2xvc2VFbGVtZW50CiBu
b25lIGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudAogc2VtYW50aWNz
IGludGVyZmFjZU5hbWU9TWF0aE1MU2VsZWN0RWxlbWVudAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsbElu
T25lLmNwcAppbmRleCA3YjgxODVkNGQ4MTYyNGU5YzQwZDUwYThkNTNlY2I3MzRiNDg5ODhjLi42
YWE3MWZkYzUxYzdiMDg3YjkwOWE1YjEzNWQ1ODQzZmJlYWU5MGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbGxJbk9uZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTVkdBbmdsZS5jcHAi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZUVsZW1lbnQuY3BwIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50LmNwcCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEFuZ2xlLmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAppbmRleCA5
ZTFkYjEzOThjYjUxNjJlYjFkNWIxYjE0MWI3ZWVmZTAyMGVmMDI4Li44ZDA1YjMzZGMwMDA1NzZm
NjcyYzE5ZTU4N2NmOWYwMGEwNjlhNGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVDb2xvckVsZW1lbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgCiBpbmxpbmUgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6U1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
Ci0gICAgOiBTVkdBbmltYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICA6IFNWR0Fu
aW1hdGVFbGVtZW50QmFzZSh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShTVkdOYW1lczo6YW5pbWF0ZUNvbG9yVGFnKSk7CiB9CkBAIC00NSw3ICs0NSw3IEBAIHN0
YXRpYyBib29sIGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIAogdm9pZCBTVkdBbmltYXRlQ29sb3JFbGVtZW50OjpkZXRlcm1pbmVQcm9wZXJ0eVZhbHVl
VHlwZXMoY29uc3QgU3RyaW5nJiBmcm9tLCBjb25zdCBTdHJpbmcmIHRvKQogewotICAgIFNWR0Fu
aW1hdGVFbGVtZW50OjpkZXRlcm1pbmVQcm9wZXJ0eVZhbHVlVHlwZXMoZnJvbSwgdG8pOworICAg
IFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6ZGV0ZXJtaW5lUHJvcGVydHlWYWx1ZVR5cGVzKGZyb20s
IHRvKTsKICAgICBpZiAoYXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcihmcm9tKSkKICAgICAg
ICAgbV9mcm9tUHJvcGVydHlWYWx1ZVR5cGUgPSBDdXJyZW50Q29sb3JWYWx1ZTsKICAgICBpZiAo
YXR0cmlidXRlVmFsdWVJc0N1cnJlbnRDb2xvcih0bykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVDb2xvckVsZW1lbnQuaAppbmRleCBkMTQxMzhjZmM5ODZlOTJlNDVmYTIyYjA0MWI3
M2U3ZmY2YWY0MmI4Li5hZmUxN2QyMzE3NzZhNTZkMDk2NGRiOTJlNTg5Mjg3YmE2YjRjZTYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgKQEAgLTIyLDEx
ICsyMiwxMSBAQAogI2lmbmRlZiBTVkdBbmltYXRlQ29sb3JFbGVtZW50X2gKICNkZWZpbmUgU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudF9oCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5oIgor
I2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0
ZUVsZW1lbnQgeworY2xhc3MgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBT
VkdBbmltYXRlRWxlbWVudEJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNW
R0FuaW1hdGVDb2xvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKaW5kZXggNjM1
NDk2OGUxYTEzNzUyNTczZDIwNjQyMjY5M2YyNDZlMTUxZmQ0NS4uNmYwMWUzYTg1YzVmOWQwN2Jh
OWVhOWFjMThkODM1Zjk5ZDNjZTY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwCkBAIC0xLDQ1ICsxLDM3IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KICAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1l
bnQuaCIKIAotI2luY2x1ZGUgIkNTU1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKLSNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCi0jaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0b3JGYWN0b3J5LmgiCi0jaW5jbHVkZSAiU1ZHRWxlbWVu
dC5oIgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgi
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHQW5pbWF0ZUVsZW1lbnQ6OlNWR0FuaW1hdGVF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
LSAgICA6IFNWR0FuaW1hdGlvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBtX2Fu
aW1hdGVkUHJvcGVydHlUeXBlKEFuaW1hdGVkU3RyaW5nKQorICAgIDogU1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlKHRhZ05hbWUsIGRvY3VtZW50KQogewotICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05h
bWVzOjphbmltYXRlVGFnKSB8fCBoYXNUYWdOYW1lKFNWR05hbWVzOjpzZXRUYWcpIHx8IGhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVDb2xvclRhZykgfHwgaGFzVGFnTmFtZShTVkdOYW1lczo6
YW5pbWF0ZVRyYW5zZm9ybVRhZykpOworICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjph
bmltYXRlVGFnKSk7CiB9CiAKIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+IFNWR0FuaW1h
dGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQpAQCAtNDcsNDE2ICszOSw0IEBAIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1l
bnQ+IFNWR0FuaW1hdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTVkdBbmltYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOwogfQogCi1TVkdBbmltYXRlRWxlbWVudDo6flNWR0FuaW1hdGVFbGVtZW50KCkKLXsKLX0K
LQotYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkKLXsKLSAg
ICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgpOwotICAg
IGlmICghdGFyZ2V0RWxlbWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgIT0gQW5pbWF0ZWRVbmtub3duICYmICFoYXNJbnZhbGlk
Q1NTQXR0cmlidXRlVHlwZSgpOwotfQotCi1BbmltYXRlZFByb3BlcnR5VHlwZSBTVkdBbmltYXRl
RWxlbWVudDo6ZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUoU1ZHRWxlbWVudCogdGFyZ2V0
RWxlbWVudCkgY29uc3QKLXsKLSAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7Ci0KLSAgICBWZWN0
b3I8QW5pbWF0ZWRQcm9wZXJ0eVR5cGU+IHByb3BlcnR5VHlwZXM7Ci0gICAgdGFyZ2V0RWxlbWVu
dC0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGVGb3JBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSgpLCBwcm9w
ZXJ0eVR5cGVzKTsKLSAgICBpZiAocHJvcGVydHlUeXBlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBBbmltYXRlZFVua25vd247Ci0KLSAgICBBU1NFUlQocHJvcGVydHlUeXBlcy5zaXplKCkg
PD0gMik7Ci0gICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSA9IHByb3BlcnR5VHlwZXNbMF07
Ci0gICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVDb2xvclRhZykgJiYgdHlwZSAh
PSBBbmltYXRlZENvbG9yKQotICAgICAgICByZXR1cm4gQW5pbWF0ZWRVbmtub3duOwotCi0gICAg
Ly8gQW5pbWF0aW9ucyBvZiB0cmFuc2Zvcm0gbGlzdHMgYXJlIG5vdCBhbGxvd2VkIGZvciA8YW5p
bWF0ZT4gb3IgPHNldD4KLSAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5pbWF0ZS5o
dG1sI0FuaW1hdGlvbkF0dHJpYnV0ZXNBbmRQcm9wZXJ0aWVzCi0gICAgaWYgKHR5cGUgPT0gQW5p
bWF0ZWRUcmFuc2Zvcm1MaXN0ICYmICFoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlVHJhbnNm
b3JtVGFnKSkKLSAgICAgICAgcmV0dXJuIEFuaW1hdGVkVW5rbm93bjsKLQotICAgIC8vIEZvcnR1
bmF0ZWx5IHRoZXJlJ3MganVzdCBvbmUgc3BlY2lhbCBjYXNlIG5lZWRlZCBoZXJlOiBTVkdNYXJr
ZXJFbGVtZW50cyBvcmllbnRBdHRyLCB3aGljaAotICAgIC8vIGNvcnJlc3BvbmRzIHRvIFNWR0Fu
aW1hdGVkQW5nbGUgb3JpZW50QW5nbGUgYW5kIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gb3JpZW50
VHlwZS4gV2UgaGF2ZSB0bwotICAgIC8vIGZpZ3VyZSBvdXQgd2hvc2UgdmFsdWUgdG8gY2hhbmdl
IGhlcmUuCi0gICAgaWYgKHRhcmdldEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6Om1hcmtl
clRhZykgJiYgdHlwZSA9PSBBbmltYXRlZEFuZ2xlKSB7Ci0gICAgICAgIEFTU0VSVChwcm9wZXJ0
eVR5cGVzLnNpemUoKSA9PSAyKTsKLSAgICAgICAgQVNTRVJUKHByb3BlcnR5VHlwZXNbMF0gPT0g
QW5pbWF0ZWRBbmdsZSk7Ci0gICAgICAgIEFTU0VSVChwcm9wZXJ0eVR5cGVzWzFdID09IEFuaW1h
dGVkRW51bWVyYXRpb24pOwotICAgIH0gZWxzZSBpZiAocHJvcGVydHlUeXBlcy5zaXplKCkgPT0g
MikKLSAgICAgICAgQVNTRVJUKHByb3BlcnR5VHlwZXNbMF0gPT0gcHJvcGVydHlUeXBlc1sxXSk7
Ci0KLSAgICByZXR1cm4gdHlwZTsKLX0KLQotdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwg
U1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQpCi17Ci0gICAgQVNTRVJUKHJlc3VsdEVsZW1l
bnQpOwotICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50
KCk7Ci0gICAgaWYgKCF0YXJnZXRFbGVtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NF
UlQobV9hbmltYXRlZFByb3BlcnR5VHlwZSA9PSBkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5VHlw
ZSh0YXJnZXRFbGVtZW50KSk7Ci0KLSAgICBBU1NFUlQocGVyY2VudGFnZSA+PSAwICYmIHBlcmNl
bnRhZ2UgPD0gMSk7Ci0gICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgIT0gQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0IHx8IGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUcmFuc2Zvcm1U
YWcpKTsKLSAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5VHlwZSAhPSBBbmltYXRlZFVua25v
d24pOwotICAgIEFTU0VSVChtX2FuaW1hdG9yKTsKLSAgICBBU1NFUlQobV9hbmltYXRvci0+dHlw
ZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpOwotICAgIEFTU0VSVChtX2Zyb21UeXBlKTsK
LSAgICBBU1NFUlQobV9mcm9tVHlwZS0+dHlwZSgpID09IG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUp
OwotICAgIEFTU0VSVChtX3RvVHlwZSk7Ci0KLSAgICBTVkdBbmltYXRlRWxlbWVudCYgcmVzdWx0
QW5pbWF0aW9uRWxlbWVudCA9IGRvd25jYXN0PFNWR0FuaW1hdGVFbGVtZW50PigqcmVzdWx0RWxl
bWVudCk7Ci0gICAgQVNTRVJUKHJlc3VsdEFuaW1hdGlvbkVsZW1lbnQubV9hbmltYXRlZFR5cGUp
OwotICAgIEFTU0VSVChyZXN1bHRBbmltYXRpb25FbGVtZW50Lm1fYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgPT0gbV9hbmltYXRlZFByb3BlcnR5VHlwZSk7Ci0KLSAgICBpZiAoaGFzVGFnTmFtZShTVkdO
YW1lczo6c2V0VGFnKSkKLSAgICAgICAgcGVyY2VudGFnZSA9IDE7Ci0KLSAgICBpZiAoY2FsY01v
ZGUoKSA9PSBDYWxjTW9kZURpc2NyZXRlKQotICAgICAgICBwZXJjZW50YWdlID0gcGVyY2VudGFn
ZSA8IDAuNSA/IDAgOiAxOwotCi0gICAgLy8gVGFyZ2V0IGVsZW1lbnQgbWlnaHQgaGF2ZSBjaGFu
Z2VkLgotICAgIG1fYW5pbWF0b3ItPnNldENvbnRleHRFbGVtZW50KHRhcmdldEVsZW1lbnQpOwot
Ci0gICAgLy8gQmUgc3VyZSB0byBkZXRhY2ggbGlzdCB3cmFwcGVycyBiZWZvcmUgd2UgbW9kZml5
IHRoZWlyIHVuZGVybHlpbmcgdmFsdWUuIElmIHdlJ2QgZG8KLSAgICAvLyBpZiBhZnRlciBjYWxj
dWxhdGVBbmltYXRlZFZhbHVlKCkgcmFuIHRoZSBjYWNoZWQgcG9pbnRlcnMgaW4gdGhlIGxpc3Qg
cHJvcGVyeSB0ZWFyCi0gICAgLy8gb2ZmcyB3b3VsZCBwb2ludCBub3doZXJlLCBhbmQgd2UgY291
bGRuJ3QgY3JlYXRlIGNvcGllcyBvZiB0aG9zZSB2YWx1ZXMgYW55bW9yZSwKLSAgICAvLyB3aGls
ZSBkZXRhY2hpbmcuIFRoaXMgaXMgY292ZXJlZCBieSBhc3NlcnRpb25zLCBtb3ZpbmcgdGhpcyBk
b3duIHdvdWxkIGZpcmUgdGhlbS4KLSAgICBpZiAoIW1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlzRW1w
dHkoKSkKLSAgICAgICAgbV9hbmltYXRvci0+YW5pbVZhbFdpbGxDaGFuZ2UobV9hbmltYXRlZFBy
b3BlcnRpZXMpOwotCi0gICAgLy8gVmFsdWVzLWFuaW1hdGlvbiBhY2N1bXVsYXRlcyB1c2luZyB0
aGUgbGFzdCB2YWx1ZXMgZW50cnkgY29ycmVzcG9uZGluZyB0byB0aGUgZW5kIG9mIGR1cmF0aW9u
IHRpbWUuCi0gICAgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZEdXJhdGlvblR5cGUgPSBtX3Rv
QXRFbmRPZkR1cmF0aW9uVHlwZSA/IG1fdG9BdEVuZE9mRHVyYXRpb25UeXBlLmdldCgpIDogbV90
b1R5cGUuZ2V0KCk7Ci0gICAgbV9hbmltYXRvci0+Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShwZXJj
ZW50YWdlLCByZXBlYXRDb3VudCwgbV9mcm9tVHlwZS5nZXQoKSwgbV90b1R5cGUuZ2V0KCksIHRv
QXRFbmRPZkR1cmF0aW9uVHlwZSwgcmVzdWx0QW5pbWF0aW9uRWxlbWVudC5tX2FuaW1hdGVkVHlw
ZS5nZXQoKSk7Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNhbGN1bGF0ZVRvQXRFbmRP
ZkR1cmF0aW9uVmFsdWUoY29uc3QgU3RyaW5nJiB0b0F0RW5kT2ZEdXJhdGlvblN0cmluZykKLXsK
LSAgICBpZiAodG9BdEVuZE9mRHVyYXRpb25TdHJpbmcuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgbV90b0F0RW5kT2ZEdXJhdGlvblR5cGUgPSBlbnN1cmVBbmltYXRvcigp
LT5jb25zdHJ1Y3RGcm9tU3RyaW5nKHRvQXRFbmRPZkR1cmF0aW9uU3RyaW5nKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBTVkdBbmltYXRlRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZFRv
VmFsdWVzKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykK
LXsKLSAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgp
OwotICAgIGlmICghdGFyZ2V0RWxlbWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ZGV0ZXJtaW5lUHJvcGVydHlWYWx1ZVR5cGVzKGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKLSAgICBl
bnN1cmVBbmltYXRvcigpLT5jYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMobV9mcm9tVHlwZSwgbV90
b1R5cGUsIGZyb21TdHJpbmcsIHRvU3RyaW5nKTsKLSAgICBBU1NFUlQobV9hbmltYXRlZFByb3Bl
cnR5VHlwZSA9PSBtX2FuaW1hdG9yLT50eXBlKCkpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1i
b29sIFNWR0FuaW1hdGVFbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMoY29uc3QgU3Ry
aW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJ5U3RyaW5nKQotewotICAgIFNWR0VsZW1l
bnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50KCk7Ci0gICAgaWYgKCF0YXJn
ZXRFbGVtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYW5pbWF0aW9uTW9k
ZSgpID09IEJ5QW5pbWF0aW9uICYmICFpc0FkZGl0aXZlKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIC8vIGZyb20tYnkgYW5pbWF0aW9uIG1heSBvbmx5IGJlIHVzZWQgd2l0aCBhdHRy
aWJ1dGVzIHRoYXQgc3VwcG9ydCBhZGRpdGlvbiAoZS5nLiBtb3N0IG51bWVyaWMgYXR0cmlidXRl
cykuCi0gICAgaWYgKGFuaW1hdGlvbk1vZGUoKSA9PSBGcm9tQnlBbmltYXRpb24gJiYgIWFuaW1h
dGVkUHJvcGVydHlUeXBlU3VwcG9ydHNBZGRpdGlvbigpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBBU1NFUlQoIWhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpOwotCi0gICAgZGV0
ZXJtaW5lUHJvcGVydHlWYWx1ZVR5cGVzKGZyb21TdHJpbmcsIGJ5U3RyaW5nKTsKLSAgICBlbnN1
cmVBbmltYXRvcigpLT5jYWxjdWxhdGVGcm9tQW5kQnlWYWx1ZXMobV9mcm9tVHlwZSwgbV90b1R5
cGUsIGZyb21TdHJpbmcsIGJ5U3RyaW5nKTsKLSAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5
VHlwZSA9PSBtX2FuaW1hdG9yLT50eXBlKCkpOwotICAgIHJldHVybiB0cnVlOwotfQotCi0jaWZu
ZGVmIE5ERUJVRwotc3RhdGljIGlubGluZSBib29sIHByb3BlcnR5VHlwZXNBcmVDb25zaXN0ZW50
KEFuaW1hdGVkUHJvcGVydHlUeXBlIGV4cGVjdGVkUHJvcGVydHlUeXBlLCBjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCi17Ci0gICAgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBhbmltYXRlZFR5cGVz
LmVuZCgpOwotICAgIGZvciAoU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Ojpjb25zdF9p
dGVyYXRvciBpdCA9IGFuaW1hdGVkVHlwZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0g
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXQtPnByb3BlcnRpZXMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgICAgIGlmIChleHBlY3RlZFByb3BlcnR5VHlwZSAhPSBpdC0+cHJvcGVydGll
c1tpXS0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUoKSkgewotICAgICAgICAgICAgICAgIC8vIFRoaXMg
aXMgdGhlIG9ubHkgYWxsb3dlZCBpbmNvbnNpc3RlbmN5LiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0
b3IgaGFuZGxlcyBib3RoIFNWR0FuaW1hdGVkQW5nbGUgJiBTVkdBbmltYXRlZEVudW1lcmF0aW9u
IGZvciBtYXJrZXJzIG9yaWVudCBhdHRyaWJ1dGUuCi0gICAgICAgICAgICAgICAgaWYgKGV4cGVj
dGVkUHJvcGVydHlUeXBlID09IEFuaW1hdGVkQW5nbGUgJiYgaXQtPnByb3BlcnRpZXNbaV0tPmFu
aW1hdGVkUHJvcGVydHlUeXBlKCkgPT0gQW5pbWF0ZWRFbnVtZXJhdGlvbikKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5k
aWYKLQotdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRBbmltYXRlZFR5cGUoKQotewotICAg
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKiBhbmltYXRvciA9IGVuc3VyZUFuaW1hdG9yKCk7Ci0g
ICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgPT0gYW5pbWF0b3ItPnR5cGUoKSk7Ci0K
LSAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgpOwot
ICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUgPSB0aGlzLT5hdHRyaWJ1dGVO
YW1lKCk7Ci0gICAgU2hvdWxkQXBwbHlBbmltYXRpb24gc2hvdWxkQXBwbHkgPSBzaG91bGRBcHBs
eUFuaW1hdGlvbih0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKTsKLQotICAgIGlmIChzaG91
bGRBcHBseSA9PSBEb250QXBwbHlBbmltYXRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
IChzaG91bGRBcHBseSA9PSBBcHBseVhNTEFuaW1hdGlvbiB8fCBzaG91bGRBcHBseSA9PSBBcHBs
eVhNTGFuZENTU0FuaW1hdGlvbikgewotICAgICAgICAvLyBTVkcgRE9NIGFuaW1WYWwgYW5pbWF0
aW9uIGNvZGUtcGF0aC4KLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnRpZXMgPSBhbmltYXRvci0+
ZmluZEFuaW1hdGVkUHJvcGVydGllc0ZvckF0dHJpYnV0ZU5hbWUodGFyZ2V0RWxlbWVudCwgYXR0
cmlidXRlTmFtZSk7Ci0gICAgICAgIEFTU0VSVCghbV9hbmltYXRlZFByb3BlcnRpZXMuaXNFbXB0
eSgpKTsKLQotICAgICAgICBBU1NFUlQocHJvcGVydHlUeXBlc0FyZUNvbnNpc3RlbnQobV9hbmlt
YXRlZFByb3BlcnR5VHlwZSwgbV9hbmltYXRlZFByb3BlcnRpZXMpKTsKLSAgICAgICAgaWYgKCFt
X2FuaW1hdGVkVHlwZSkKLSAgICAgICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gYW5pbWF0b3ItPnN0
YXJ0QW5pbVZhbEFuaW1hdGlvbihtX2FuaW1hdGVkUHJvcGVydGllcyk7Ci0gICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgYW5pbWF0b3ItPnJlc2V0QW5pbVZhbFRvQmFzZVZhbChtX2FuaW1hdGVk
UHJvcGVydGllcywgbV9hbmltYXRlZFR5cGUuZ2V0KCkpOwotICAgICAgICAgICAgYW5pbWF0b3It
PmFuaW1WYWxEaWRDaGFuZ2UobV9hbmltYXRlZFByb3BlcnRpZXMpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBDU1MgcHJvcGVydGllcyBhbmltYXRpb24gY29k
ZS1wYXRoLgotICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydGllcy5pc0VtcHR5KCkpOwotICAg
IFN0cmluZyBiYXNlVmFsdWU7Ci0KLSAgICBpZiAoc2hvdWxkQXBwbHkgPT0gQXBwbHlDU1NBbmlt
YXRpb24pIHsKLSAgICAgICAgQVNTRVJUKFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzVGFyZ2V0QXR0
cmlidXRlQ1NTUHJvcGVydHkodGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOwotICAgICAg
ICBjb21wdXRlQ1NTUHJvcGVydHlWYWx1ZSh0YXJnZXRFbGVtZW50LCBjc3NQcm9wZXJ0eUlEKGF0
dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpLCBiYXNlVmFsdWUpOwotICAgIH0KLQotICAgIGlmICgh
bV9hbmltYXRlZFR5cGUpCi0gICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gYW5pbWF0b3ItPmNvbnN0
cnVjdEZyb21TdHJpbmcoYmFzZVZhbHVlKTsKLSAgICBlbHNlCi0gICAgICAgIG1fYW5pbWF0ZWRU
eXBlLT5zZXRWYWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUsIGJhc2VWYWx1ZSk7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgdm9pZCBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQoU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCwgQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAg
ICBBU1NFUlQoIXRhcmdldEVsZW1lbnQtPm1fZGVsZXRpb25IYXNCZWd1bik7Ci0KLSAgICBpZiAo
IXRhcmdldEVsZW1lbnQtPmVuc3VyZUFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpLnNldFBy
b3BlcnR5KGlkLCB2YWx1ZSwgZmFsc2UsIDApKQotICAgICAgICByZXR1cm47Ci0KLSAgICB0YXJn
ZXRFbGVtZW50LT5zZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKLX0K
LQotc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZUNTU1Byb3BlcnR5RnJvbVRhcmdldChTVkdFbGVt
ZW50KiB0YXJnZXRFbGVtZW50LCBDU1NQcm9wZXJ0eUlEIGlkKQotewotICAgIEFTU0VSVCghdGFy
Z2V0RWxlbWVudC0+bV9kZWxldGlvbkhhc0JlZ3VuKTsKLSAgICB0YXJnZXRFbGVtZW50LT5lbnN1
cmVBbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKS5yZW1vdmVQcm9wZXJ0eShpZCk7Ci0gICAg
dGFyZ2V0RWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYyhTeW50aGV0aWNTdHlsZUNoYW5nZSk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0
YW5jZXMoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZUFzU3RyaW5nKQotewotICAgIEFTU0VSVCh0
YXJnZXRFbGVtZW50KTsKLSAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBhbnlRTmFtZSgpIHx8ICF0
YXJnZXRFbGVtZW50LT5pbkRvY3VtZW50KCkgfHwgIXRhcmdldEVsZW1lbnQtPnBhcmVudE5vZGUo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ1NTUHJvcGVydHlJRCBpZCA9IGNzc1Byb3BlcnR5
SUQoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKSk7Ci0KLSAgICBTVkdFbGVtZW50SW5zdGFuY2U6
Okluc3RhbmNlVXBkYXRlQmxvY2tlciBibG9ja2VyKHRhcmdldEVsZW1lbnQpOwotICAgIGFwcGx5
Q1NTUHJvcGVydHlUb1RhcmdldCh0YXJnZXRFbGVtZW50LCBpZCwgdmFsdWVBc1N0cmluZyk7Ci0K
LSAgICAvLyBJZiB0aGUgdGFyZ2V0IGVsZW1lbnQgaGFzIGluc3RhbmNlcywgdXBkYXRlIHRoZW0g
YXMgd2VsbCwgdy9vIHJlcXVpcmluZyB0aGUgPHVzZT4gdHJlZSB0byBiZSByZWJ1aWx0LgotICAg
IGNvbnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj4mIGluc3RhbmNlcyA9IHRhcmdldEVs
ZW1lbnQtPmluc3RhbmNlc0ZvckVsZW1lbnQoKTsKLSAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1l
bnRJbnN0YW5jZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBpbnN0YW5jZXMuZW5kKCk7Ci0gICAg
Zm9yIChIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGlu
c3RhbmNlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKFNWR0VsZW1l
bnQqIHNoYWRvd1RyZWVFbGVtZW50ID0gKCppdCktPnNoYWRvd1RyZWVFbGVtZW50KCkpCi0gICAg
ICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQoc2hhZG93VHJlZUVsZW1lbnQsIGlkLCB2
YWx1ZUFzU3RyaW5nKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVDU1NQ
cm9wZXJ0eUZyb21UYXJnZXRBbmRJbnN0YW5jZXMoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKLXsKLSAgICBBU1NFUlQodGFyZ2V0
RWxlbWVudCk7Ci0gICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gYW55UU5hbWUoKSB8fCAhdGFyZ2V0
RWxlbWVudC0+aW5Eb2N1bWVudCgpIHx8ICF0YXJnZXRFbGVtZW50LT5wYXJlbnROb2RlKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIENTU1Byb3BlcnR5SUQgaWQgPSBjc3NQcm9wZXJ0eUlEKGF0
dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpOwotCi0gICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnN0
YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcih0YXJnZXRFbGVtZW50KTsKLSAgICByZW1vdmVDU1NQ
cm9wZXJ0eUZyb21UYXJnZXQodGFyZ2V0RWxlbWVudCwgaWQpOwotCi0gICAgLy8gSWYgdGhlIHRh
cmdldCBlbGVtZW50IGhhcyBpbnN0YW5jZXMsIHVwZGF0ZSB0aGVtIGFzIHdlbGwsIHcvbyByZXF1
aXJpbmcgdGhlIDx1c2U+IHRyZWUgdG8gYmUgcmVidWlsdC4KLSAgICBjb25zdCBIYXNoU2V0PFNW
R0VsZW1lbnRJbnN0YW5jZSo+JiBpbnN0YW5jZXMgPSB0YXJnZXRFbGVtZW50LT5pbnN0YW5jZXNG
b3JFbGVtZW50KCk7Ci0gICAgY29uc3QgSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPjo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gaW5zdGFuY2VzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxTVkdF
bGVtZW50SW5zdGFuY2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBpbnN0YW5jZXMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChTVkdFbGVtZW50KiBzaGFkb3dUcmVlRWxl
bWVudCA9ICgqaXQpLT5zaGFkb3dUcmVlRWxlbWVudCgpKQotICAgICAgICAgICAgcmVtb3ZlQ1NT
UHJvcGVydHlGcm9tVGFyZ2V0KHNoYWRvd1RyZWVFbGVtZW50LCBpZCk7Ci0gICAgfQotfQotCi1z
dGF0aWMgaW5saW5lIHZvaWQgbm90aWZ5VGFyZ2V0QWJvdXRBbmltVmFsQ2hhbmdlKFNWR0VsZW1l
bnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCi17
Ci0gICAgQVNTRVJUKCF0YXJnZXRFbGVtZW50LT5tX2RlbGV0aW9uSGFzQmVndW4pOwotICAgIHRh
cmdldEVsZW1lbnQtPnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSk7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgdm9pZCBub3RpZnlUYXJnZXRBbmRJbnN0YW5jZXNBYm91dEFuaW1WYWxDaGFu
Z2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSkKLXsKLSAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7Ci0gICAgaWYgKGF0dHJpYnV0
ZU5hbWUgPT0gYW55UU5hbWUoKSB8fCAhdGFyZ2V0RWxlbWVudC0+aW5Eb2N1bWVudCgpIHx8ICF0
YXJnZXRFbGVtZW50LT5wYXJlbnROb2RlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFNWR0Vs
ZW1lbnRJbnN0YW5jZTo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJsb2NrZXIodGFyZ2V0RWxlbWVu
dCk7Ci0gICAgbm90aWZ5VGFyZ2V0QWJvdXRBbmltVmFsQ2hhbmdlKHRhcmdldEVsZW1lbnQsIGF0
dHJpYnV0ZU5hbWUpOwotCi0gICAgLy8gSWYgdGhlIHRhcmdldCBlbGVtZW50IGhhcyBpbnN0YW5j
ZXMsIHVwZGF0ZSB0aGVtIGFzIHdlbGwsIHcvbyByZXF1aXJpbmcgdGhlIDx1c2U+IHRyZWUgdG8g
YmUgcmVidWlsdC4KLSAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBpbnN0
YW5jZXMgPSB0YXJnZXRFbGVtZW50LT5pbnN0YW5jZXNGb3JFbGVtZW50KCk7Ci0gICAgY29uc3Qg
SGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gaW5zdGFu
Y2VzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPjo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBpbnN0YW5jZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAg
ICAgIGlmIChTVkdFbGVtZW50KiBzaGFkb3dUcmVlRWxlbWVudCA9ICgqaXQpLT5zaGFkb3dUcmVl
RWxlbWVudCgpKQotICAgICAgICAgICAgbm90aWZ5VGFyZ2V0QWJvdXRBbmltVmFsQ2hhbmdlKHNo
YWRvd1RyZWVFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKTsKLSAgICB9Ci19Ci0KLXZvaWQgU1ZHQW5p
bWF0ZUVsZW1lbnQ6OmNsZWFyQW5pbWF0ZWRUeXBlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQp
Ci17Ci0gICAgaWYgKCFtX2FuaW1hdGVkVHlwZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KCF0YXJnZXRFbGVtZW50KSB7Ci0gICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gbnVsbHB0cjsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtX2FuaW1hdGVkUHJvcGVydGllcy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgLy8gQ1NTIHByb3BlcnRpZXMgYW5pbWF0aW9uIGNvZGUtcGF0aC4K
LSAgICAgICAgcmVtb3ZlQ1NTUHJvcGVydHlGcm9tVGFyZ2V0QW5kSW5zdGFuY2VzKHRhcmdldEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUoKSk7Ci0gICAgICAgIG1fYW5pbWF0ZWRUeXBlID0gbnVsbHB0
cjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFNob3VsZEFwcGx5QW5pbWF0aW9uIHNo
b3VsZEFwcGx5ID0gc2hvdWxkQXBwbHlBbmltYXRpb24odGFyZ2V0RWxlbWVudCwgYXR0cmlidXRl
TmFtZSgpKTsKLSAgICBpZiAoc2hvdWxkQXBwbHkgPT0gQXBwbHlYTUxhbmRDU1NBbmltYXRpb24p
Ci0gICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5RnJvbVRhcmdldEFuZEluc3RhbmNlcyh0YXJnZXRF
bGVtZW50LCBhdHRyaWJ1dGVOYW1lKCkpOwotCi0gICAgLy8gU1ZHIERPTSBhbmltVmFsIGFuaW1h
dGlvbiBjb2RlLXBhdGguCi0gICAgaWYgKG1fYW5pbWF0b3IpIHsKLSAgICAgICAgbV9hbmltYXRv
ci0+c3RvcEFuaW1WYWxBbmltYXRpb24obV9hbmltYXRlZFByb3BlcnRpZXMpOwotICAgICAgICBu
b3RpZnlUYXJnZXRBbmRJbnN0YW5jZXNBYm91dEFuaW1WYWxDaGFuZ2UodGFyZ2V0RWxlbWVudCwg
YXR0cmlidXRlTmFtZSgpKTsKLSAgICB9Ci0KLSAgICBtX2FuaW1hdGVkUHJvcGVydGllcy5jbGVh
cigpOwotICAgIG1fYW5pbWF0ZWRUeXBlID0gbnVsbHB0cjsKLX0KLQotdm9pZCBTVkdBbmltYXRl
RWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQoKQotewotICAgIEFTU0VSVChtX2FuaW1hdGVk
UHJvcGVydHlUeXBlICE9IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCB8fCBoYXNUYWdOYW1lKFNWR05h
bWVzOjphbmltYXRlVHJhbnNmb3JtVGFnKSk7Ci0gICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0
eVR5cGUgIT0gQW5pbWF0ZWRVbmtub3duKTsKLSAgICBBU1NFUlQobV9hbmltYXRvcik7Ci0KLSAg
ICAvLyBFYXJseSBleGl0IGlmIG91ciBhbmltYXRlZCB0eXBlIGdvdCBkZXN0cnVjdGVkIGJ5IGEg
cHJldmlvdXMgZW5kZWRBY3RpdmVJbnRlcnZhbCgpLgotICAgIGlmICghbV9hbmltYXRlZFR5cGUp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlz
LT50YXJnZXRFbGVtZW50KCk7Ci0gICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSA9IHRoaXMtPmF0dHJpYnV0ZU5hbWUoKTsKLSAgICBpZiAobV9hbmltYXRlZFByb3BlcnRpZXMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIENTUyBwcm9wZXJ0aWVzIGFuaW1hdGlvbiBjb2RlLXBh
dGguCi0gICAgICAgIC8vIENvbnZlcnQgdGhlIHJlc3VsdCBvZiB0aGUgYW5pbWF0aW9uIHRvIGEg
U3RyaW5nIGFuZCBhcHBseSBpdCBhcyBDU1MgcHJvcGVydHkgb24gdGhlIHRhcmdldCAmIGFsbCBp
bnN0YW5jZXMuCi0gICAgICAgIGFwcGx5Q1NTUHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcyh0
YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0cmlu
ZygpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIFdlIGRvIHVwZGF0ZSB0aGUg
c3R5bGUgYW5kIHRoZSBhbmltYXRpb24gcHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhl
ci4KLSAgICBTaG91bGRBcHBseUFuaW1hdGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFwcGx5QW5p
bWF0aW9uKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpOwotICAgIGlmIChzaG91bGRBcHBs
eSA9PSBBcHBseVhNTGFuZENTU0FuaW1hdGlvbikKLSAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRv
VGFyZ2V0QW5kSW5zdGFuY2VzKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0
ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkpOwotCi0gICAgLy8gU1ZHIERPTSBhbmltVmFsIGFuaW1h
dGlvbiBjb2RlLXBhdGguCi0gICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgU1ZHIERPTSB2YWx1ZXMg
YXJlIGFscmVhZHkgY2hhbmdlZCwgdW5saWtlIGZvciBDU1MuCi0gICAgLy8gV2Ugb25seSBoYXZl
IHRvIHRyaWdnZXIgdXBkYXRlIG5vdGlmaWNhdGlvbnMgaGVyZS4KLSAgICBtX2FuaW1hdG9yLT5h
bmltVmFsRGlkQ2hhbmdlKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzKTsKLSAgICBub3RpZnlUYXJnZXRB
bmRJbnN0YW5jZXNBYm91dEFuaW1WYWxDaGFuZ2UodGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSk7Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFuaW1hdGVkUHJvcGVydHlUeXBlU3Vw
cG9ydHNBZGRpdGlvbigpIGNvbnN0Ci17Ci0gICAgLy8gU3BlYzogaHR0cDovL3d3dy53My5vcmcv
VFIvU1ZHL2FuaW1hdGUuaHRtbCNBbmltYXRpb25BdHRyaWJ1dGVzQW5kUHJvcGVydGllcy4KLSAg
ICBzd2l0Y2ggKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUpIHsKLSAgICBjYXNlIEFuaW1hdGVkQm9v
bGVhbjoKLSAgICBjYXNlIEFuaW1hdGVkRW51bWVyYXRpb246Ci0gICAgY2FzZSBBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW86Ci0gICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICBjYXNlIEFu
aW1hdGVkVW5rbm93bjoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgQW5pbWF0ZWRB
bmdsZToKLSAgICBjYXNlIEFuaW1hdGVkQ29sb3I6Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXI6
Ci0gICAgY2FzZSBBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXI6Ci0gICAgY2FzZSBBbmlt
YXRlZExlbmd0aDoKLSAgICBjYXNlIEFuaW1hdGVkTGVuZ3RoTGlzdDoKLSAgICBjYXNlIEFuaW1h
dGVkTnVtYmVyOgotICAgIGNhc2UgQW5pbWF0ZWROdW1iZXJMaXN0OgotICAgIGNhc2UgQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlcjoKLSAgICBjYXNlIEFuaW1hdGVkUGF0aDoKLSAgICBjYXNl
IEFuaW1hdGVkUG9pbnRzOgotICAgIGNhc2UgQW5pbWF0ZWRSZWN0OgotICAgIGNhc2UgQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0OgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci19Ci0KLWJvb2wgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmlzQWRkaXRpdmUoKSBjb25zdAot
ewotICAgIGlmIChhbmltYXRpb25Nb2RlKCkgPT0gQnlBbmltYXRpb24gfHwgYW5pbWF0aW9uTW9k
ZSgpID09IEZyb21CeUFuaW1hdGlvbikKLSAgICAgICAgaWYgKCFhbmltYXRlZFByb3BlcnR5VHlw
ZVN1cHBvcnRzQWRkaXRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZlKCk7Ci19Ci0KLWZsb2F0IFNWR0Fu
aW1hdGVFbGVtZW50OjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcs
IGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCi17Ci0gICAgLy8gRklYTUU6IEEgcmV0dXJuIHZhbHVl
IG9mIGZsb2F0IGlzIG5vdCBlbm91Z2ggdG8gc3VwcG9ydCBwYWNlZCBhbmltYXRpb25zIG9uIGxp
c3RzLgotICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50
KCk7Ci0gICAgaWYgKCF0YXJnZXRFbGVtZW50KQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBy
ZXR1cm4gZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRGlzdGFuY2UoZnJvbVN0cmluZywgdG9T
dHJpbmcpOwotfQotCi12b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpzZXRUYXJnZXRFbGVtZW50KFNW
R0VsZW1lbnQqIHRhcmdldCkKLXsKLSAgICBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRUYXJnZXRF
bGVtZW50KHRhcmdldCk7Ci0gICAgcmVzZXRBbmltYXRlZFByb3BlcnR5VHlwZSgpOwotfQotCi12
b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpzZXRBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUpCi17Ci0gICAgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmli
dXRlTmFtZShhdHRyaWJ1dGVOYW1lKTsKLSAgICByZXNldEFuaW1hdGVkUHJvcGVydHlUeXBlKCk7
Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRQcm9wZXJ0eVR5cGUo
KQotewotICAgIEFTU0VSVCghbV9hbmltYXRlZFR5cGUpOwotICAgIG1fZnJvbVR5cGUgPSBudWxs
cHRyOwotICAgIG1fdG9UeXBlID0gbnVsbHB0cjsKLSAgICBtX3RvQXRFbmRPZkR1cmF0aW9uVHlw
ZSA9IG51bGxwdHI7Ci0gICAgbV9hbmltYXRvciA9IG51bGxwdHI7Ci0gICAgbV9hbmltYXRlZFBy
b3BlcnR5VHlwZSA9IHRhcmdldEVsZW1lbnQoKSA/IGRldGVybWluZUFuaW1hdGVkUHJvcGVydHlU
eXBlKHRhcmdldEVsZW1lbnQoKSkgOiBBbmltYXRlZFN0cmluZzsKLX0KLQotU1ZHQW5pbWF0ZWRU
eXBlQW5pbWF0b3IqIFNWR0FuaW1hdGVFbGVtZW50OjplbnN1cmVBbmltYXRvcigpCi17Ci0gICAg
aWYgKCFtX2FuaW1hdG9yKQotICAgICAgICBtX2FuaW1hdG9yID0gU1ZHQW5pbWF0b3JGYWN0b3J5
OjpjcmVhdGUodGhpcywgdGFyZ2V0RWxlbWVudCgpLCBtX2FuaW1hdGVkUHJvcGVydHlUeXBlKTsK
LSAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5VHlwZSA9PSBtX2FuaW1hdG9yLT50eXBlKCkp
OwotICAgIHJldHVybiBtX2FuaW1hdG9yLmdldCgpOwotfQotCi19Cit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCmluZGV4IDY0MWJmZjNj
N2EzNWVjNDEwZjIyOWMzMjRkZGFkMTdkYjdmYWQ1MzUuLmUzZDA3OTQ1NjQ1NDRhNGE1MzIyZmFl
M2NhY2IwNmU1NWE2YTM5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5o
CkBAIC0xLDg4ICsxLDQ1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIFNWR0FuaW1hdGVF
bGVtZW50X2gKICNkZWZpbmUgU1ZHQW5pbWF0ZUVsZW1lbnRfaAogCi0jaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRUeXBlLmgiCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIKLSNpbmNs
dWRlICJTVkdBbmltYXRpb25FbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNs
dWRlICJTVkdBbmltYXRlRWxlbWVudEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdBbmltYXRlZFByb3BlcnR5OwogCi1jbGFzcyBTVkdBbmltYXRlRWxlbWVudCA6IHB1
YmxpYyBTVkdBbmltYXRpb25FbGVtZW50IHsKK2NsYXNzIFNWR0FuaW1hdGVFbGVtZW50IGZpbmFs
IDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50QmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIH5TVkdBbmltYXRlRWxlbWVudCgpOwotCi0gICAgQW5p
bWF0ZWRQcm9wZXJ0eVR5cGUgZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUoU1ZHRWxlbWVu
dCopIGNvbnN0OwotCi1wcm90ZWN0ZWQ6Ci0gICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRl
ZFR5cGUoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbmltYXRlZFR5cGUoU1ZH
RWxlbWVudCogdGFyZ2V0RWxlbWVudCkgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgY2Fs
Y3VsYXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZShjb25zdCBTdHJpbmcmIHRvQXRFbmRPZkR1cmF0
aW9uU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FsY3VsYXRlRnJvbUFuZFRv
VmFsdWVzKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhjb25z
dCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJpbmcpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21T
dHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9v
bCBpc0FkZGl0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGFy
Z2V0RWxlbWVudChTVkdFbGVtZW50Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEF0
dHJpYnV0ZU5hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwotCi0gICAgQW5pbWF0
ZWRQcm9wZXJ0eVR5cGUgbV9hbmltYXRlZFByb3BlcnR5VHlwZTsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIHJlc2V0QW5pbWF0ZWRQcm9wZXJ0eVR5cGUoKTsKLSAgICBTVkdBbmltYXRlZFR5cGVBbmlt
YXRvciogZW5zdXJlQW5pbWF0b3IoKTsKLSAgICBib29sIGFuaW1hdGVkUHJvcGVydHlUeXBlU3Vw
cG9ydHNBZGRpdGlvbigpIGNvbnN0OwotCi0gICAgdmlydHVhbCBib29sIGhhc1ZhbGlkQXR0cmli
dXRlVHlwZSgpIG92ZXJyaWRlOwotCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gbV9mcm9tVHlwZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX3Rv
VHlwZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX3RvQXRFbmRPZkR1
cmF0aW9uVHlwZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX2FuaW1h
dGVkVHlwZTsKLQotICAgIFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCBtX2FuaW1hdGVk
UHJvcGVydGllczsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3I+
IG1fYW5pbWF0b3I7CisgICAgU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiB9OwogCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFNWR0FuaW1h
dGVFbGVtZW50KQotICAgIHN0YXRpYyBib29sIGlzU1ZHQW5pbWF0ZUVsZW1lbnQoY29uc3QgU1ZH
RWxlbWVudCYgZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBlbGVtZW50Lmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OmFuaW1hdGVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShTVkdOYW1lczo6
YW5pbWF0ZUNvbG9yVGFnKQotICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKFNWR05h
bWVzOjphbmltYXRlVHJhbnNmb3JtVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFtZXM6
OnNldFRhZyk7Ci0gICAgfQotICAgIHN0YXRpYyBib29sIGlzU1ZHQW5pbWF0ZUVsZW1lbnQoY29u
c3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8U1ZHRWxlbWVudD4obm9kZSkgJiYgaXNTVkdBbmlt
YXRlRWxlbWVudChkb3duY2FzdDxTVkdFbGVtZW50Pihub2RlKSk7IH0KLVNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZH
QW5pbWF0ZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVFbGVtZW50QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYTEyNmU4YjhlNDRlZDk4ZWI4OTkyYWQ2Zjk0NjdhMzlhNWY5
NjNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVt
ZW50QmFzZS5jcHAKQEAgLTAsMCArMSw0NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTVkdBbmlt
YXRlRWxlbWVudEJhc2UuaCIKKworI2luY2x1ZGUgIkNTU1BhcnNlci5oIgorI2luY2x1ZGUgIkNT
U1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCisjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0b3JGYWN0b3J5LmgiCisjaW5jbHVk
ZSAiU1ZHRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU3R5bGVQ
cm9wZXJ0aWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlOjpTVkdBbmltYXRlRWxlbWVudEJhc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogU1ZHQW5pbWF0aW9uRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkKKyAgICAsIG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUoQW5pbWF0ZWRTdHJpbmcpCit7
CisgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUYWcpIHx8IGhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnNldFRhZykgfHwgaGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZUNvbG9y
VGFnKSB8fCBoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlVHJhbnNmb3JtVGFnKSk7Cit9CisK
K1NWR0FuaW1hdGVFbGVtZW50QmFzZTo6flNWR0FuaW1hdGVFbGVtZW50QmFzZSgpCit7Cit9CisK
K2Jvb2wgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKQorewor
ICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50KCk7Cisg
ICAgaWYgKCF0YXJnZXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gbV9hbmltYXRlZFByb3BlcnR5VHlwZSAhPSBBbmltYXRlZFVua25vd24gJiYgIWhhc0ludmFs
aWRDU1NBdHRyaWJ1dGVUeXBlKCk7Cit9CisKK0FuaW1hdGVkUHJvcGVydHlUeXBlIFNWR0FuaW1h
dGVFbGVtZW50QmFzZTo6ZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUoU1ZHRWxlbWVudCog
dGFyZ2V0RWxlbWVudCkgY29uc3QKK3sKKyAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7CisKKyAg
ICBWZWN0b3I8QW5pbWF0ZWRQcm9wZXJ0eVR5cGU+IHByb3BlcnR5VHlwZXM7CisgICAgdGFyZ2V0
RWxlbWVudC0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGVGb3JBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSgp
LCBwcm9wZXJ0eVR5cGVzKTsKKyAgICBpZiAocHJvcGVydHlUeXBlcy5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBBbmltYXRlZFVua25vd247CisKKyAgICBBU1NFUlQocHJvcGVydHlUeXBlcy5z
aXplKCkgPD0gMik7CisgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgdHlwZSA9IHByb3BlcnR5VHlw
ZXNbMF07CisgICAgaWYgKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVDb2xvclRhZykgJiYg
dHlwZSAhPSBBbmltYXRlZENvbG9yKQorICAgICAgICByZXR1cm4gQW5pbWF0ZWRVbmtub3duOwor
CisgICAgLy8gQW5pbWF0aW9ucyBvZiB0cmFuc2Zvcm0gbGlzdHMgYXJlIG5vdCBhbGxvd2VkIGZv
ciA8YW5pbWF0ZT4gb3IgPHNldD4KKyAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvYW5p
bWF0ZS5odG1sI0FuaW1hdGlvbkF0dHJpYnV0ZXNBbmRQcm9wZXJ0aWVzCisgICAgaWYgKHR5cGUg
PT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0ICYmICFoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRl
VHJhbnNmb3JtVGFnKSkKKyAgICAgICAgcmV0dXJuIEFuaW1hdGVkVW5rbm93bjsKKworICAgIC8v
IEZvcnR1bmF0ZWx5IHRoZXJlJ3MganVzdCBvbmUgc3BlY2lhbCBjYXNlIG5lZWRlZCBoZXJlOiBT
VkdNYXJrZXJFbGVtZW50cyBvcmllbnRBdHRyLCB3aGljaAorICAgIC8vIGNvcnJlc3BvbmRzIHRv
IFNWR0FuaW1hdGVkQW5nbGUgb3JpZW50QW5nbGUgYW5kIFNWR0FuaW1hdGVkRW51bWVyYXRpb24g
b3JpZW50VHlwZS4gV2UgaGF2ZSB0bworICAgIC8vIGZpZ3VyZSBvdXQgd2hvc2UgdmFsdWUgdG8g
Y2hhbmdlIGhlcmUuCisgICAgaWYgKHRhcmdldEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6
Om1hcmtlclRhZykgJiYgdHlwZSA9PSBBbmltYXRlZEFuZ2xlKSB7CisgICAgICAgIEFTU0VSVChw
cm9wZXJ0eVR5cGVzLnNpemUoKSA9PSAyKTsKKyAgICAgICAgQVNTRVJUKHByb3BlcnR5VHlwZXNb
MF0gPT0gQW5pbWF0ZWRBbmdsZSk7CisgICAgICAgIEFTU0VSVChwcm9wZXJ0eVR5cGVzWzFdID09
IEFuaW1hdGVkRW51bWVyYXRpb24pOworICAgIH0gZWxzZSBpZiAocHJvcGVydHlUeXBlcy5zaXpl
KCkgPT0gMikKKyAgICAgICAgQVNTRVJUKHByb3BlcnR5VHlwZXNbMF0gPT0gcHJvcGVydHlUeXBl
c1sxXSk7CisKKyAgICByZXR1cm4gdHlwZTsKK30KKwordm9pZCBTVkdBbmltYXRlRWxlbWVudEJh
c2U6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVw
ZWF0Q291bnQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRFbGVtZW50KQoreworICAgIEFTU0VSVChy
ZXN1bHRFbGVtZW50KTsKKyAgICBTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50ID0gdGhpcy0+dGFy
Z2V0RWxlbWVudCgpOworICAgIGlmICghdGFyZ2V0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgPT0gZGV0ZXJtaW5lQW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUodGFyZ2V0RWxlbWVudCkpOworCisgICAgQVNTRVJUKHBlcmNlbnRhZ2UgPj0g
MCAmJiBwZXJjZW50YWdlIDw9IDEpOworICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHlUeXBl
ICE9IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCB8fCBoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRl
VHJhbnNmb3JtVGFnKSk7CisgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgIT0gQW5p
bWF0ZWRVbmtub3duKTsKKyAgICBBU1NFUlQobV9hbmltYXRvcik7CisgICAgQVNTRVJUKG1fYW5p
bWF0b3ItPnR5cGUoKSA9PSBtX2FuaW1hdGVkUHJvcGVydHlUeXBlKTsKKyAgICBBU1NFUlQobV9m
cm9tVHlwZSk7CisgICAgQVNTRVJUKG1fZnJvbVR5cGUtPnR5cGUoKSA9PSBtX2FuaW1hdGVkUHJv
cGVydHlUeXBlKTsKKyAgICBBU1NFUlQobV90b1R5cGUpOworCisgICAgU1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlJiByZXN1bHRBbmltYXRpb25FbGVtZW50ID0gZG93bmNhc3Q8U1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlPigqcmVzdWx0RWxlbWVudCk7CisgICAgQVNTRVJUKHJlc3VsdEFuaW1hdGlvbkVsZW1l
bnQubV9hbmltYXRlZFR5cGUpOworICAgIEFTU0VSVChyZXN1bHRBbmltYXRpb25FbGVtZW50Lm1f
YW5pbWF0ZWRQcm9wZXJ0eVR5cGUgPT0gbV9hbmltYXRlZFByb3BlcnR5VHlwZSk7CisKKyAgICBp
ZiAoaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSkKKyAgICAgICAgcGVyY2VudGFnZSA9IDE7
CisKKyAgICBpZiAoY2FsY01vZGUoKSA9PSBDYWxjTW9kZURpc2NyZXRlKQorICAgICAgICBwZXJj
ZW50YWdlID0gcGVyY2VudGFnZSA8IDAuNSA/IDAgOiAxOworCisgICAgLy8gVGFyZ2V0IGVsZW1l
bnQgbWlnaHQgaGF2ZSBjaGFuZ2VkLgorICAgIG1fYW5pbWF0b3ItPnNldENvbnRleHRFbGVtZW50
KHRhcmdldEVsZW1lbnQpOworCisgICAgLy8gQmUgc3VyZSB0byBkZXRhY2ggbGlzdCB3cmFwcGVy
cyBiZWZvcmUgd2UgbW9kZml5IHRoZWlyIHVuZGVybHlpbmcgdmFsdWUuIElmIHdlJ2QgZG8KKyAg
ICAvLyBpZiBhZnRlciBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKCkgcmFuIHRoZSBjYWNoZWQgcG9p
bnRlcnMgaW4gdGhlIGxpc3QgcHJvcGVyeSB0ZWFyCisgICAgLy8gb2ZmcyB3b3VsZCBwb2ludCBu
b3doZXJlLCBhbmQgd2UgY291bGRuJ3QgY3JlYXRlIGNvcGllcyBvZiB0aG9zZSB2YWx1ZXMgYW55
bW9yZSwKKyAgICAvLyB3aGlsZSBkZXRhY2hpbmcuIFRoaXMgaXMgY292ZXJlZCBieSBhc3NlcnRp
b25zLCBtb3ZpbmcgdGhpcyBkb3duIHdvdWxkIGZpcmUgdGhlbS4KKyAgICBpZiAoIW1fYW5pbWF0
ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9hbmltYXRvci0+YW5pbVZhbFdpbGxD
aGFuZ2UobV9hbmltYXRlZFByb3BlcnRpZXMpOworCisgICAgLy8gVmFsdWVzLWFuaW1hdGlvbiBh
Y2N1bXVsYXRlcyB1c2luZyB0aGUgbGFzdCB2YWx1ZXMgZW50cnkgY29ycmVzcG9uZGluZyB0byB0
aGUgZW5kIG9mIGR1cmF0aW9uIHRpbWUuCisgICAgU1ZHQW5pbWF0ZWRUeXBlKiB0b0F0RW5kT2ZE
dXJhdGlvblR5cGUgPSBtX3RvQXRFbmRPZkR1cmF0aW9uVHlwZSA/IG1fdG9BdEVuZE9mRHVyYXRp
b25UeXBlLmdldCgpIDogbV90b1R5cGUuZ2V0KCk7CisgICAgbV9hbmltYXRvci0+Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZShwZXJjZW50YWdlLCByZXBlYXRDb3VudCwgbV9mcm9tVHlwZS5nZXQoKSwg
bV90b1R5cGUuZ2V0KCksIHRvQXRFbmRPZkR1cmF0aW9uVHlwZSwgcmVzdWx0QW5pbWF0aW9uRWxl
bWVudC5tX2FuaW1hdGVkVHlwZS5nZXQoKSk7Cit9CisKK2Jvb2wgU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlOjpjYWxjdWxhdGVUb0F0RW5kT2ZEdXJhdGlvblZhbHVlKGNvbnN0IFN0cmluZyYgdG9BdEVu
ZE9mRHVyYXRpb25TdHJpbmcpCit7CisgICAgaWYgKHRvQXRFbmRPZkR1cmF0aW9uU3RyaW5nLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fdG9BdEVuZE9mRHVyYXRpb25U
eXBlID0gZW5zdXJlQW5pbWF0b3IoKS0+Y29uc3RydWN0RnJvbVN0cmluZyh0b0F0RW5kT2ZEdXJh
dGlvblN0cmluZyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlOjpjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKQoreworICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1l
bnQgPSB0aGlzLT50YXJnZXRFbGVtZW50KCk7CisgICAgaWYgKCF0YXJnZXRFbGVtZW50KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkZXRlcm1pbmVQcm9wZXJ0eVZhbHVlVHlwZXMoZnJv
bVN0cmluZywgdG9TdHJpbmcpOworICAgIGVuc3VyZUFuaW1hdG9yKCktPmNhbGN1bGF0ZUZyb21B
bmRUb1ZhbHVlcyhtX2Zyb21UeXBlLCBtX3RvVHlwZSwgZnJvbVN0cmluZywgdG9TdHJpbmcpOwor
ICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHlUeXBlID09IG1fYW5pbWF0b3ItPnR5cGUoKSk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpjYWxj
dWxhdGVGcm9tQW5kQnlWYWx1ZXMoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGJ5U3RyaW5nKQoreworICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50
YXJnZXRFbGVtZW50KCk7CisgICAgaWYgKCF0YXJnZXRFbGVtZW50KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoYW5pbWF0aW9uTW9kZSgpID09IEJ5QW5pbWF0aW9uICYmICFpc0Fk
ZGl0aXZlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIGZyb20tYnkgYW5pbWF0
aW9uIG1heSBvbmx5IGJlIHVzZWQgd2l0aCBhdHRyaWJ1dGVzIHRoYXQgc3VwcG9ydCBhZGRpdGlv
biAoZS5nLiBtb3N0IG51bWVyaWMgYXR0cmlidXRlcykuCisgICAgaWYgKGFuaW1hdGlvbk1vZGUo
KSA9PSBGcm9tQnlBbmltYXRpb24gJiYgIWFuaW1hdGVkUHJvcGVydHlUeXBlU3VwcG9ydHNBZGRp
dGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQoIWhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnNldFRhZykpOworCisgICAgZGV0ZXJtaW5lUHJvcGVydHlWYWx1ZVR5cGVzKGZy
b21TdHJpbmcsIGJ5U3RyaW5nKTsKKyAgICBlbnN1cmVBbmltYXRvcigpLT5jYWxjdWxhdGVGcm9t
QW5kQnlWYWx1ZXMobV9mcm9tVHlwZSwgbV90b1R5cGUsIGZyb21TdHJpbmcsIGJ5U3RyaW5nKTsK
KyAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5VHlwZSA9PSBtX2FuaW1hdG9yLT50eXBlKCkp
OworICAgIHJldHVybiB0cnVlOworfQorCisjaWZuZGVmIE5ERUJVRworc3RhdGljIGlubGluZSBi
b29sIHByb3BlcnR5VHlwZXNBcmVDb25zaXN0ZW50KEFuaW1hdGVkUHJvcGVydHlUeXBlIGV4cGVj
dGVkUHJvcGVydHlUeXBlLCBjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFu
aW1hdGVkVHlwZXMpCit7CisgICAgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Ojpjb25z
dF9pdGVyYXRvciBlbmQgPSBhbmltYXRlZFR5cGVzLmVuZCgpOworICAgIGZvciAoU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGFuaW1hdGVkVHlwZXMu
YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgaXQtPnByb3BlcnRpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3Rl
ZFByb3BlcnR5VHlwZSAhPSBpdC0+cHJvcGVydGllc1tpXS0+YW5pbWF0ZWRQcm9wZXJ0eVR5cGUo
KSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgYWxsb3dlZCBpbmNvbnNp
c3RlbmN5LiBTVkdBbmltYXRlZEFuZ2xlQW5pbWF0b3IgaGFuZGxlcyBib3RoIFNWR0FuaW1hdGVk
QW5nbGUgJiBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGZvciBtYXJrZXJzIG9yaWVudCBhdHRyaWJ1
dGUuCisgICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkUHJvcGVydHlUeXBlID09IEFuaW1hdGVk
QW5nbGUgJiYgaXQtPnByb3BlcnRpZXNbaV0tPmFuaW1hdGVkUHJvcGVydHlUeXBlKCkgPT0gQW5p
bWF0ZWRFbnVtZXJhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwordm9pZCBTVkdBbmltYXRlRWxlbWVu
dEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKCkKK3sKKyAgICBTVkdBbmltYXRlZFR5cGVBbmltYXRv
ciogYW5pbWF0b3IgPSBlbnN1cmVBbmltYXRvcigpOworICAgIEFTU0VSVChtX2FuaW1hdGVkUHJv
cGVydHlUeXBlID09IGFuaW1hdG9yLT50eXBlKCkpOworCisgICAgU1ZHRWxlbWVudCogdGFyZ2V0
RWxlbWVudCA9IHRoaXMtPnRhcmdldEVsZW1lbnQoKTsKKyAgICBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lID0gdGhpcy0+YXR0cmlidXRlTmFtZSgpOworICAgIFNob3VsZEFwcGx5
QW5pbWF0aW9uIHNob3VsZEFwcGx5ID0gc2hvdWxkQXBwbHlBbmltYXRpb24odGFyZ2V0RWxlbWVu
dCwgYXR0cmlidXRlTmFtZSk7CisKKyAgICBpZiAoc2hvdWxkQXBwbHkgPT0gRG9udEFwcGx5QW5p
bWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc2hvdWxkQXBwbHkgPT0gQXBwbHlY
TUxBbmltYXRpb24gfHwgc2hvdWxkQXBwbHkgPT0gQXBwbHlYTUxhbmRDU1NBbmltYXRpb24pIHsK
KyAgICAgICAgLy8gU1ZHIERPTSBhbmltVmFsIGFuaW1hdGlvbiBjb2RlLXBhdGguCisgICAgICAg
IG1fYW5pbWF0ZWRQcm9wZXJ0aWVzID0gYW5pbWF0b3ItPmZpbmRBbmltYXRlZFByb3BlcnRpZXNG
b3JBdHRyaWJ1dGVOYW1lKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpOworICAgICAgICBB
U1NFUlQoIW1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAgQVNTRVJU
KHByb3BlcnR5VHlwZXNBcmVDb25zaXN0ZW50KG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUsIG1fYW5p
bWF0ZWRQcm9wZXJ0aWVzKSk7CisgICAgICAgIGlmICghbV9hbmltYXRlZFR5cGUpCisgICAgICAg
ICAgICBtX2FuaW1hdGVkVHlwZSA9IGFuaW1hdG9yLT5zdGFydEFuaW1WYWxBbmltYXRpb24obV9h
bmltYXRlZFByb3BlcnRpZXMpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFuaW1hdG9y
LT5yZXNldEFuaW1WYWxUb0Jhc2VWYWwobV9hbmltYXRlZFByb3BlcnRpZXMsIG1fYW5pbWF0ZWRU
eXBlLmdldCgpKTsKKyAgICAgICAgICAgIGFuaW1hdG9yLT5hbmltVmFsRGlkQ2hhbmdlKG1fYW5p
bWF0ZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gQ1NTIHByb3BlcnRpZXMgYW5pbWF0aW9uIGNvZGUtcGF0aC4KKyAgICBBU1NFUlQobV9h
bmltYXRlZFByb3BlcnRpZXMuaXNFbXB0eSgpKTsKKyAgICBTdHJpbmcgYmFzZVZhbHVlOworCisg
ICAgaWYgKHNob3VsZEFwcGx5ID09IEFwcGx5Q1NTQW5pbWF0aW9uKSB7CisgICAgICAgIEFTU0VS
VChTVkdBbmltYXRpb25FbGVtZW50Ojppc1RhcmdldEF0dHJpYnV0ZUNTU1Byb3BlcnR5KHRhcmdl
dEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUpKTsKKyAgICAgICAgY29tcHV0ZUNTU1Byb3BlcnR5VmFs
dWUodGFyZ2V0RWxlbWVudCwgY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgp
KSwgYmFzZVZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAoIW1fYW5pbWF0ZWRUeXBlKQorICAgICAg
ICBtX2FuaW1hdGVkVHlwZSA9IGFuaW1hdG9yLT5jb25zdHJ1Y3RGcm9tU3RyaW5nKGJhc2VWYWx1
ZSk7CisgICAgZWxzZQorICAgICAgICBtX2FuaW1hdGVkVHlwZS0+c2V0VmFsdWVBc1N0cmluZyhh
dHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXBwbHlD
U1NQcm9wZXJ0eVRvVGFyZ2V0KFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIENTU1Byb3BlcnR5
SUQgaWQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgQVNTRVJUKCF0YXJnZXRFbGVtZW50
LT5tX2RlbGV0aW9uSGFzQmVndW4pOworCisgICAgaWYgKCF0YXJnZXRFbGVtZW50LT5lbnN1cmVB
bmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKS5zZXRQcm9wZXJ0eShpZCwgdmFsdWUsIGZhbHNl
LCAwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGFyZ2V0RWxlbWVudC0+c2V0TmVlZHNTdHls
ZVJlY2FsYyhTeW50aGV0aWNTdHlsZUNoYW5nZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBy
ZW1vdmVDU1NQcm9wZXJ0eUZyb21UYXJnZXQoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ1NT
UHJvcGVydHlJRCBpZCkKK3sKKyAgICBBU1NFUlQoIXRhcmdldEVsZW1lbnQtPm1fZGVsZXRpb25I
YXNCZWd1bik7CisgICAgdGFyZ2V0RWxlbWVudC0+ZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9w
ZXJ0aWVzKCkucmVtb3ZlUHJvcGVydHkoaWQpOworICAgIHRhcmdldEVsZW1lbnQtPnNldE5lZWRz
U3R5bGVSZWNhbGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOworfQorCitzdGF0aWMgaW5saW5lIHZv
aWQgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKFNWR0VsZW1lbnQqIHRhcmdl
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWVBc1N0cmluZykKK3sKKyAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7CisgICAgaWYg
KGF0dHJpYnV0ZU5hbWUgPT0gYW55UU5hbWUoKSB8fCAhdGFyZ2V0RWxlbWVudC0+aW5Eb2N1bWVu
dCgpIHx8ICF0YXJnZXRFbGVtZW50LT5wYXJlbnROb2RlKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIENTU1Byb3BlcnR5SUQgaWQgPSBjc3NQcm9wZXJ0eUlEKGF0dHJpYnV0ZU5hbWUubG9jYWxO
YW1lKCkpOworCisgICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIg
YmxvY2tlcih0YXJnZXRFbGVtZW50KTsKKyAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQodGFy
Z2V0RWxlbWVudCwgaWQsIHZhbHVlQXNTdHJpbmcpOworCisgICAgLy8gSWYgdGhlIHRhcmdldCBl
bGVtZW50IGhhcyBpbnN0YW5jZXMsIHVwZGF0ZSB0aGVtIGFzIHdlbGwsIHcvbyByZXF1aXJpbmcg
dGhlIDx1c2U+IHRyZWUgdG8gYmUgcmVidWlsdC4KKyAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1l
bnRJbnN0YW5jZSo+JiBpbnN0YW5jZXMgPSB0YXJnZXRFbGVtZW50LT5pbnN0YW5jZXNGb3JFbGVt
ZW50KCk7CisgICAgY29uc3QgSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPjo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gaW5zdGFuY2VzLmVuZCgpOworICAgIGZvciAoSGFzaFNldDxTVkdFbGVtZW50
SW5zdGFuY2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBpbnN0YW5jZXMuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CisgICAgICAgIGlmIChTVkdFbGVtZW50KiBzaGFkb3dUcmVlRWxlbWVudCA9
ICgqaXQpLT5zaGFkb3dUcmVlRWxlbWVudCgpKQorICAgICAgICAgICAgYXBwbHlDU1NQcm9wZXJ0
eVRvVGFyZ2V0KHNoYWRvd1RyZWVFbGVtZW50LCBpZCwgdmFsdWVBc1N0cmluZyk7CisgICAgfQor
fQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlQ1NTUHJvcGVydHlGcm9tVGFyZ2V0QW5kSW5z
dGFuY2VzKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUpCit7CisgICAgQVNTRVJUKHRhcmdldEVsZW1lbnQpOworICAgIGlmIChhdHRy
aWJ1dGVOYW1lID09IGFueVFOYW1lKCkgfHwgIXRhcmdldEVsZW1lbnQtPmluRG9jdW1lbnQoKSB8
fCAhdGFyZ2V0RWxlbWVudC0+cGFyZW50Tm9kZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBD
U1NQcm9wZXJ0eUlEIGlkID0gY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgp
KTsKKworICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJsb2Nr
ZXIodGFyZ2V0RWxlbWVudCk7CisgICAgcmVtb3ZlQ1NTUHJvcGVydHlGcm9tVGFyZ2V0KHRhcmdl
dEVsZW1lbnQsIGlkKTsKKworICAgIC8vIElmIHRoZSB0YXJnZXQgZWxlbWVudCBoYXMgaW5zdGFu
Y2VzLCB1cGRhdGUgdGhlbSBhcyB3ZWxsLCB3L28gcmVxdWlyaW5nIHRoZSA8dXNlPiB0cmVlIHRv
IGJlIHJlYnVpbHQuCisgICAgY29uc3QgSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPiYgaW5z
dGFuY2VzID0gdGFyZ2V0RWxlbWVudC0+aW5zdGFuY2VzRm9yRWxlbWVudCgpOworICAgIGNvbnN0
IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGluc3Rh
bmNlcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gaW5zdGFuY2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAg
ICAgICBpZiAoU1ZHRWxlbWVudCogc2hhZG93VHJlZUVsZW1lbnQgPSAoKml0KS0+c2hhZG93VHJl
ZUVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5RnJvbVRhcmdldChzaGFk
b3dUcmVlRWxlbWVudCwgaWQpOworICAgIH0KK30KKworc3RhdGljIGlubGluZSB2b2lkIG5vdGlm
eVRhcmdldEFib3V0QW5pbVZhbENoYW5nZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQoreworICAgIEFTU0VSVCghdGFyZ2V0RWxl
bWVudC0+bV9kZWxldGlvbkhhc0JlZ3VuKTsKKyAgICB0YXJnZXRFbGVtZW50LT5zdmdBdHRyaWJ1
dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbm90aWZ5
VGFyZ2V0QW5kSW5zdGFuY2VzQWJvdXRBbmltVmFsQ2hhbmdlKFNWR0VsZW1lbnQqIHRhcmdldEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCit7CisgICAgQVNTRVJU
KHRhcmdldEVsZW1lbnQpOworICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IGFueVFOYW1lKCkgfHwg
IXRhcmdldEVsZW1lbnQtPmluRG9jdW1lbnQoKSB8fCAhdGFyZ2V0RWxlbWVudC0+cGFyZW50Tm9k
ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTVkdFbGVtZW50SW5zdGFuY2U6Okluc3RhbmNl
VXBkYXRlQmxvY2tlciBibG9ja2VyKHRhcmdldEVsZW1lbnQpOworICAgIG5vdGlmeVRhcmdldEFi
b3V0QW5pbVZhbENoYW5nZSh0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKTsKKworICAgIC8v
IElmIHRoZSB0YXJnZXQgZWxlbWVudCBoYXMgaW5zdGFuY2VzLCB1cGRhdGUgdGhlbSBhcyB3ZWxs
LCB3L28gcmVxdWlyaW5nIHRoZSA8dXNlPiB0cmVlIHRvIGJlIHJlYnVpbHQuCisgICAgY29uc3Qg
SGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPiYgaW5zdGFuY2VzID0gdGFyZ2V0RWxlbWVudC0+
aW5zdGFuY2VzRm9yRWxlbWVudCgpOworICAgIGNvbnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3Rh
bmNlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGluc3RhbmNlcy5lbmQoKTsKKyAgICBmb3IgKEhh
c2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaW5zdGFuY2Vz
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBpZiAoU1ZHRWxlbWVudCogc2hh
ZG93VHJlZUVsZW1lbnQgPSAoKml0KS0+c2hhZG93VHJlZUVsZW1lbnQoKSkKKyAgICAgICAgICAg
IG5vdGlmeVRhcmdldEFib3V0QW5pbVZhbENoYW5nZShzaGFkb3dUcmVlRWxlbWVudCwgYXR0cmli
dXRlTmFtZSk7CisgICAgfQorfQorCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6Y2xlYXJB
bmltYXRlZFR5cGUoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCkKK3sKKyAgICBpZiAoIW1fYW5p
bWF0ZWRUeXBlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHsK
KyAgICAgICAgbV9hbmltYXRlZFR5cGUgPSBudWxscHRyOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgeworICAgICAgICAv
LyBDU1MgcHJvcGVydGllcyBhbmltYXRpb24gY29kZS1wYXRoLgorICAgICAgICByZW1vdmVDU1NQ
cm9wZXJ0eUZyb21UYXJnZXRBbmRJbnN0YW5jZXModGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFt
ZSgpKTsKKyAgICAgICAgbV9hbmltYXRlZFR5cGUgPSBudWxscHRyOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgU2hvdWxkQXBwbHlBbmltYXRpb24gc2hvdWxkQXBwbHkgPSBzaG91bGRB
cHBseUFuaW1hdGlvbih0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKCkpOworICAgIGlmIChz
aG91bGRBcHBseSA9PSBBcHBseVhNTGFuZENTU0FuaW1hdGlvbikKKyAgICAgICAgcmVtb3ZlQ1NT
UHJvcGVydHlGcm9tVGFyZ2V0QW5kSW5zdGFuY2VzKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5h
bWUoKSk7CisKKyAgICAvLyBTVkcgRE9NIGFuaW1WYWwgYW5pbWF0aW9uIGNvZGUtcGF0aC4KKyAg
ICBpZiAobV9hbmltYXRvcikgeworICAgICAgICBtX2FuaW1hdG9yLT5zdG9wQW5pbVZhbEFuaW1h
dGlvbihtX2FuaW1hdGVkUHJvcGVydGllcyk7CisgICAgICAgIG5vdGlmeVRhcmdldEFuZEluc3Rh
bmNlc0Fib3V0QW5pbVZhbENoYW5nZSh0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKCkpOwor
ICAgIH0KKworICAgIG1fYW5pbWF0ZWRQcm9wZXJ0aWVzLmNsZWFyKCk7CisgICAgbV9hbmltYXRl
ZFR5cGUgPSBudWxscHRyOworfQorCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6YXBwbHlS
ZXN1bHRzVG9UYXJnZXQoKQoreworICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHlUeXBlICE9
IEFuaW1hdGVkVHJhbnNmb3JtTGlzdCB8fCBoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlVHJh
bnNmb3JtVGFnKSk7CisgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgIT0gQW5pbWF0
ZWRVbmtub3duKTsKKyAgICBBU1NFUlQobV9hbmltYXRvcik7CisKKyAgICAvLyBFYXJseSBleGl0
IGlmIG91ciBhbmltYXRlZCB0eXBlIGdvdCBkZXN0cnVjdGVkIGJ5IGEgcHJldmlvdXMgZW5kZWRB
Y3RpdmVJbnRlcnZhbCgpLgorICAgIGlmICghbV9hbmltYXRlZFR5cGUpCisgICAgICAgIHJldHVy
bjsKKworICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50
KCk7CisgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSA9IHRoaXMtPmF0dHJp
YnV0ZU5hbWUoKTsKKyAgICBpZiAobV9hbmltYXRlZFByb3BlcnRpZXMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIC8vIENTUyBwcm9wZXJ0aWVzIGFuaW1hdGlvbiBjb2RlLXBhdGguCisgICAgICAgIC8v
IENvbnZlcnQgdGhlIHJlc3VsdCBvZiB0aGUgYW5pbWF0aW9uIHRvIGEgU3RyaW5nIGFuZCBhcHBs
eSBpdCBhcyBDU1MgcHJvcGVydHkgb24gdGhlIHRhcmdldCAmIGFsbCBpbnN0YW5jZXMuCisgICAg
ICAgIGFwcGx5Q1NTUHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcyh0YXJnZXRFbGVtZW50LCBh
dHRyaWJ1dGVOYW1lLCBtX2FuaW1hdGVkVHlwZS0+dmFsdWVBc1N0cmluZygpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIFdlIGRvIHVwZGF0ZSB0aGUgc3R5bGUgYW5kIHRoZSBh
bmltYXRpb24gcHJvcGVydHkgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlci4KKyAgICBTaG91bGRB
cHBseUFuaW1hdGlvbiBzaG91bGRBcHBseSA9IHNob3VsZEFwcGx5QW5pbWF0aW9uKHRhcmdldEVs
ZW1lbnQsIGF0dHJpYnV0ZU5hbWUpOworICAgIGlmIChzaG91bGRBcHBseSA9PSBBcHBseVhNTGFu
ZENTU0FuaW1hdGlvbikKKyAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFu
Y2VzKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUsIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFz
U3RyaW5nKCkpOworCisgICAgLy8gU1ZHIERPTSBhbmltVmFsIGFuaW1hdGlvbiBjb2RlLXBhdGgu
CisgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgU1ZHIERPTSB2YWx1ZXMgYXJlIGFscmVhZHkgY2hh
bmdlZCwgdW5saWtlIGZvciBDU1MuCisgICAgLy8gV2Ugb25seSBoYXZlIHRvIHRyaWdnZXIgdXBk
YXRlIG5vdGlmaWNhdGlvbnMgaGVyZS4KKyAgICBtX2FuaW1hdG9yLT5hbmltVmFsRGlkQ2hhbmdl
KG1fYW5pbWF0ZWRQcm9wZXJ0aWVzKTsKKyAgICBub3RpZnlUYXJnZXRBbmRJbnN0YW5jZXNBYm91
dEFuaW1WYWxDaGFuZ2UodGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSk7Cit9CisKK2Jvb2wg
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjphbmltYXRlZFByb3BlcnR5VHlwZVN1cHBvcnRzQWRkaXRp
b24oKSBjb25zdAoreworICAgIC8vIFNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9hbmlt
YXRlLmh0bWwjQW5pbWF0aW9uQXR0cmlidXRlc0FuZFByb3BlcnRpZXMuCisgICAgc3dpdGNoICht
X2FuaW1hdGVkUHJvcGVydHlUeXBlKSB7CisgICAgY2FzZSBBbmltYXRlZEJvb2xlYW46CisgICAg
Y2FzZSBBbmltYXRlZEVudW1lcmF0aW9uOgorICAgIGNhc2UgQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvOgorICAgIGNhc2UgQW5pbWF0ZWRTdHJpbmc6CisgICAgY2FzZSBBbmltYXRlZFVua25v
d246CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIEFuaW1hdGVkQW5nbGU6CisgICAg
Y2FzZSBBbmltYXRlZENvbG9yOgorICAgIGNhc2UgQW5pbWF0ZWRJbnRlZ2VyOgorICAgIGNhc2Ug
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyOgorICAgIGNhc2UgQW5pbWF0ZWRMZW5ndGg6
CisgICAgY2FzZSBBbmltYXRlZExlbmd0aExpc3Q6CisgICAgY2FzZSBBbmltYXRlZE51bWJlcjoK
KyAgICBjYXNlIEFuaW1hdGVkTnVtYmVyTGlzdDoKKyAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0
aW9uYWxOdW1iZXI6CisgICAgY2FzZSBBbmltYXRlZFBhdGg6CisgICAgY2FzZSBBbmltYXRlZFBv
aW50czoKKyAgICBjYXNlIEFuaW1hdGVkUmVjdDoKKyAgICBjYXNlIEFuaW1hdGVkVHJhbnNmb3Jt
TGlzdDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQor
Citib29sIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6aXNBZGRpdGl2ZSgpIGNvbnN0Cit7CisgICAg
aWYgKGFuaW1hdGlvbk1vZGUoKSA9PSBCeUFuaW1hdGlvbiB8fCBhbmltYXRpb25Nb2RlKCkgPT0g
RnJvbUJ5QW5pbWF0aW9uKSB7CisgICAgICAgIGlmICghYW5pbWF0ZWRQcm9wZXJ0eVR5cGVTdXBw
b3J0c0FkZGl0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
cmV0dXJuIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUoKTsKK30KKworZmxvYXQgU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlOjpjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21T
dHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpCit7CisgICAgLy8gRklYTUU6IEEgcmV0dXJu
IHZhbHVlIG9mIGZsb2F0IGlzIG5vdCBlbm91Z2ggdG8gc3VwcG9ydCBwYWNlZCBhbmltYXRpb25z
IG9uIGxpc3RzLgorICAgIFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRF
bGVtZW50KCk7CisgICAgaWYgKCF0YXJnZXRFbGVtZW50KQorICAgICAgICByZXR1cm4gLTE7CisK
KyAgICByZXR1cm4gZW5zdXJlQW5pbWF0b3IoKS0+Y2FsY3VsYXRlRGlzdGFuY2UoZnJvbVN0cmlu
ZywgdG9TdHJpbmcpOworfQorCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6c2V0VGFyZ2V0
RWxlbWVudChTVkdFbGVtZW50KiB0YXJnZXQpCit7CisgICAgU1ZHQW5pbWF0aW9uRWxlbWVudDo6
c2V0VGFyZ2V0RWxlbWVudCh0YXJnZXQpOworICAgIHJlc2V0QW5pbWF0ZWRQcm9wZXJ0eVR5cGUo
KTsKK30KKwordm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnNldEF0dHJpYnV0ZU5hbWUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKK3sKKyAgICBTVkdBbmltYXRpb25FbGVt
ZW50OjpzZXRBdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpOworICAgIHJlc2V0QW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUoKTsKK30KKwordm9pZCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5p
bWF0ZWRQcm9wZXJ0eVR5cGUoKQoreworICAgIEFTU0VSVCghbV9hbmltYXRlZFR5cGUpOworICAg
IG1fZnJvbVR5cGUgPSBudWxscHRyOworICAgIG1fdG9UeXBlID0gbnVsbHB0cjsKKyAgICBtX3Rv
QXRFbmRPZkR1cmF0aW9uVHlwZSA9IG51bGxwdHI7CisgICAgbV9hbmltYXRvciA9IG51bGxwdHI7
CisgICAgbV9hbmltYXRlZFByb3BlcnR5VHlwZSA9IHRhcmdldEVsZW1lbnQoKSA/IGRldGVybWlu
ZUFuaW1hdGVkUHJvcGVydHlUeXBlKHRhcmdldEVsZW1lbnQoKSkgOiBBbmltYXRlZFN0cmluZzsK
K30KKworU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IqIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6ZW5z
dXJlQW5pbWF0b3IoKQoreworICAgIGlmICghbV9hbmltYXRvcikKKyAgICAgICAgbV9hbmltYXRv
ciA9IFNWR0FuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlKHRoaXMsIHRhcmdldEVsZW1lbnQoKSwgbV9h
bmltYXRlZFByb3BlcnR5VHlwZSk7CisgICAgQVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUg
PT0gbV9hbmltYXRvci0+dHlwZSgpKTsKKyAgICByZXR1cm4gbV9hbmltYXRvci5nZXQoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVF
bGVtZW50QmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkOTRhM2Q0YjgyN2Y5ZGE2NmQ4ODQyODVlYzkyZmU5
NTk5ZDBhYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBTVkdBbmltYXRlRWxlbWVudEJhc2VfaAorI2Rl
ZmluZSBTVkdBbmltYXRlRWxlbWVudEJhc2VfaAorCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBl
LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCIKKyNpbmNsdWRlICJTVkdB
bmltYXRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTVkdBbmltYXRlRWxlbWVudEJhc2UgOiBwdWJsaWMgU1ZHQW5pbWF0
aW9uRWxlbWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZUVsZW1lbnRCYXNl
KCk7CisKKyAgICBBbmltYXRlZFByb3BlcnR5VHlwZSBkZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5
VHlwZShTVkdFbGVtZW50KikgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgICBTVkdBbmltYXRlRWxl
bWVudEJhc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisKKyAgICB2aXJ0dWFs
IHZvaWQgcmVzZXRBbmltYXRlZFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJBbmltYXRlZFR5cGUoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCkgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FsY3VsYXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZShjb25zdCBTdHJp
bmcmIHRvQXRFbmRPZkR1cmF0aW9uU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3Qg
U3RyaW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhbGN1bGF0ZUZy
b21BbmRCeVZhbHVlcyhjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlT
dHJpbmcpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdTTUlMRWxlbWVudCog
cmVzdWx0RWxlbWVudCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5UmVzdWx0c1Rv
VGFyZ2V0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShj
b25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VGFyZ2V0RWxlbWVudChTVkdFbGVtZW50Kikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldEF0dHJpYnV0ZU5hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOworCisgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgbV9hbmltYXRlZFByb3BlcnR5VHlwZTsK
KworcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0QW5pbWF0ZWRQcm9wZXJ0eVR5cGUoKTsKKyAgICBT
VkdBbmltYXRlZFR5cGVBbmltYXRvciogZW5zdXJlQW5pbWF0b3IoKTsKKyAgICBib29sIGFuaW1h
dGVkUHJvcGVydHlUeXBlU3VwcG9ydHNBZGRpdGlvbigpIGNvbnN0OworCisgICAgdmlydHVhbCBi
b29sIGhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIG92ZXJyaWRlOworCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gbV9mcm9tVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZH
QW5pbWF0ZWRUeXBlPiBtX3RvVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBtX3RvQXRFbmRPZkR1cmF0aW9uVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBtX2FuaW1hdGVkVHlwZTsKKworICAgIFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCBtX2FuaW1hdGVkUHJvcGVydGllczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3I+IG1fYW5pbWF0b3I7Cit9OworCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFNWR0FuaW1hdGVFbGVtZW50QmFzZSkKKyAgICBzdGF0aWMgYm9vbCBpc1NWR0Fu
aW1hdGVFbGVtZW50QmFzZShjb25zdCBTVkdFbGVtZW50JiBlbGVtZW50KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGVsZW1lbnQuaGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZVRhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlQ29sb3JUYWcpCisgICAgICAgICAgICB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUcmFuc2Zvcm1UYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKTsKKyAgICB9CisgICAgc3RhdGljIGJv
b2wgaXNTVkdBbmltYXRlRWxlbWVudEJhc2UoY29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gaXM8
U1ZHRWxlbWVudD4obm9kZSkgJiYgaXNTVkdBbmltYXRlRWxlbWVudEJhc2UoZG93bmNhc3Q8U1ZH
RWxlbWVudD4obm9kZSkpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNWR0FuaW1hdGVFbGVtZW50QmFzZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcApp
bmRleCAyMmJhNzliYjVmMmMxYWU1ZmFkY2JkODhmMjJmNDU5MmE3YWEzMGYwLi5mZWExZjAxODgx
YzI3YWQ2ZWEwMWI2MGU4NWM5YjQwY2VhMDI0MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogaW5saW5lIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpT
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBTVkdBbmltYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKKyAgICA6IFNWR0FuaW1hdGVFbGVtZW50QmFzZSh0YWdOYW1lLCBkb2N1bWVudCkKICAg
ICAsIG1fdHlwZShTVkdUcmFuc2Zvcm06OlNWR19UUkFOU0ZPUk1fVU5LTk9XTikKIHsKICAgICBB
U1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6YW5pbWF0ZVRyYW5zZm9ybVRhZykpOwpAQCAtNjUs
NyArNjUsNyBAQCBib29sIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTgogdm9pZCBTVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRl
KG5hbWUpKSB7Ci0gICAgICAgIFNWR0FuaW1hdGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgICAgIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCmluZGV4IGIxYTQ0ZWFlYjA1NzIw
ZTdmNjQ4YzdiY2M4MjdmNGE1ZjBlM2EzOTMuLmI3ZDQ4ZjFkM2Q4OWRjZjRiNWI5NmRhNzg2NGFm
NmFkMmI1ZDNiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJh
bnNmb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5oCkBAIC0yMywxNCArMjMsMTQgQEAKICNpZm5kZWYgU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnRfaAogI2RlZmluZSBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudF9oCiAKLSNp
bmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50
QmFzZS5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIAotY2xhc3MgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZUVsZW1lbnQgeworY2xhc3MgU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAKaW5kZXggYzEzY2Q1MDBjY2YwYzNlOGFmYzE2ZDI5
NzI0Y2UwODUxMWMzNjRiNy4uZTE2ODljZmVlMTJmMWNjZGQ4N2NmMzllMjIwYjQ1YjRlMGI1ZGRm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmNwcApAQCAtMjAsNyArMjAs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkQW5nbGUuaCIK
IAotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHTWFya2VyRWxlbWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29s
ZWFuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCmluZGV4
IDZmODIwYWE1NmJiMWE3MTliNDkwZDlkMjIzYTZjZGEzOTQzMzAwMWMuLjgzNWYxODE2OWMyZmU1
ZTJmYWU0YzQyOTFiNDk5NjhkZGVkMWUxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZEJvb2xlYW4uY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRCb29sZWFuLmgiCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlRWxl
bWVudC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENv
bG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmNwcAppbmRleCBm
OTE2MzQyNjM3Y2JmMWYyNWE1ZjgxY2NkOTY5MmJmMjEwYmVhMDhlLi5hYzQ4NjQ1OGRkMjUwZmQ4
OTIwMjQzNTViOGQ2NDY5NGQ1MDcyMzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
Q29sb3IuY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpbmNsdWRlICJDb2xvckRpc3RhbmNlLmgi
CiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHQ29s
b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRJbnRlZ2VyLmNwcAppbmRleCA5NzgwMDFkNTQ2N2RhYmY2NGUwMjg3OGFkOWNiNTZkNTkzMTM4
ZDBmLi40MDRjY2E3YzhjNjU5OTZhZmU3MjFhZGZiMmZiNTM4YTliYmI4OTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkSW50ZWdlci5oIgogCi0jaW5j
bHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudEJh
c2UuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZElu
dGVnZXJPcHRpb25hbEludGVnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
SW50ZWdlck9wdGlvbmFsSW50ZWdlci5jcHAKaW5kZXggZTQ1ZjA3ZThkMGEwZjgxZTBlZjEzNDhi
YTc5YmFiOGVkYTQ1YTAxYy4uNDI4MzMwMGU4MGVjMGNiMDA1NjhjNjNkNThkNWExOGJmMjJkYTVj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlck9wdGlv
bmFsSW50ZWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdl
ck9wdGlvbmFsSW50ZWdlci5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuaCIKIAotI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRC
YXNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRJbnRlZ2VyLmgiCiAjaW5jbHVkZSAiU1ZHUGFy
c2VyVXRpbGl0aWVzLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZExlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3Bw
CmluZGV4IDY5ZDkwY2NhOGE0YjcyNjA5ZjU4ODhhMzYyOTQzZGMyNWEwYjJjNTkuLmM4YjMzYTUx
Y2EyYjMxYjkwMWNiN2YwM2NmMjZjYzBmODkwNmZiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmNwcApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAKLSNpbmNsdWRlICJTVkdBbmltYXRl
RWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKaW5kZXggM2Vi
Yjg0MjhjNWQ3NTdiM2JmZWI4MzUwMTRjNzllZTI1MGY2YWUzYi4uNzA1NmI4MGUwNTdhMjVhZmEz
OWJkYjA2OGQyOWYwMDI2YTVmZDRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkTGVuZ3RoTGlzdC5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJTVkdBbmltYXRlZExlbmd0aExpc3QuaCIKIAotI2luY2x1ZGUgIlNWR0FuaW1h
dGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5jcHAKaW5kZXggZjk4M2NmNDFiYzgyNWQ4NzQzYjFi
ZmMyMTgyYWQwNjhkM2E2NTk3Yi4uOGJjMjNiMjBjZDUwYzRiOTUxZGVlZmNlOGE1OWI0NGZmMzM5
OTZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCkBAIC0yMCw3
ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1i
ZXIuaCIKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZE51bWJlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
TGlzdC5jcHAKaW5kZXggNjczOTI3NmEyOThiODc3YWY3NjJjNTBmZTc5OGE1YjBjMmQ1NzRiMC4u
NDBhY2NkYWI3YjJjODU5MzgxYTViOTRkYmJmMjM1MjA2ZmExOGVjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckxpc3QuaCIKIAot
I2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVy
T3B0aW9uYWxOdW1iZXIuY3BwCmluZGV4IDg3OGY2MjVmZGRiYTc5YzUzZGFhZDNkNmU3MTRkZjU3
YjNlYzA1MDQuLjhiMTAzMmU1ODI4MzMzMzUyNzc5NmRhYTljNTAwYTlhOWQ3YTg4MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51
bWJlci5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmgiCiAKLSNpbmNsdWRlICJTVkdBbmlt
YXRlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKaW5kZXggMTRjMDM1NDI3Njhl
NTJhODdiZjFhZjdiMDI1YjA4MmUyZjk3ZjAzZC4uZTBhNzMxMDNlOTk3MDI5YmU2NDdmM2NlMTAz
OGZhMjc2NWQ2MmY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
UGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKQEAg
LTIwLDcgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTVkdBbmltYXRl
ZFBhdGguaCIKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFBy
b3BlcnR5VGVhck9mZi5oIgogI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAKaW5kZXggMDM5ODAzNjg5NDE0
N2U4OWFkZjIzZmQ0MDA2NzYzZWFkMWZkNzFlNC4uZmRhZGFjMTM1MjdiYjQ5ZmNhMDcwMTJmNTNm
MWUyNTg3M2FiMmRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
UG9pbnRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExp
c3QuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRQb2ludExpc3QuaCIKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2Vy
VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKaW5kZXgg
NDVmZWRhMDQyN2I2ZWI1NjUxZmQ1Mzc0OWUwZmVkOGEzNTRiOTA5Zi4uNDg3Zjk5NDg5ZTJiNDQ3
NDUyZWU2MGQ3MGZkOTE2NmE3YzA5NzIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAKQEAgLTIwLDcgKzIwLDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0
UmF0aW8uaCIKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAppbmRleCBjZDQyMGM2MDdiMGU0MTlkOTA1MjUyMmRl
OGI2ZmEzMTRiZmQwN2I1Li4yMWZmNjBjZjA2NTgxZjVmMThmOTIwMGMyOTc2ZWQ2ZmJkZGQ3ZDA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcApAQCAtMjAsNyArMjAsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUmVjdC5oIgogCi0j
aW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVu
dEJhc2UuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKaW5kZXggOWRj
MzIxNTM5MDlmYWFmNTA3NmZjNDNlODgwMWIxMzhmNGNhZjEwZS4uOWQxNjA2MTJkYjg4MDcwZGI5
MzJhNzlmOTVhZDgwMzliMGZiMjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRT
dHJpbmcuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKIAotI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCmluZGV4IGQx
ZjM1ODk5NDVhM2JiMGYxMjFlODVhMWYzODMwYjlkN2M5MzBiYmEuLjAwYmMwYjkxOTZiZDgzN2Q0
MzcyODhiODE0MWYxYWZhMTA3YWVkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAKQEAgLTUwNyw4ICs1MDcsOCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OmN1cnJlbnRWYWx1ZXNGb3JWYWx1ZXNBbmltYXRpb24oZmxvYXQgcGVyY2VudCwgZmxvYXQm
CiAgICAgfQogCiAgICAgQ2FsY01vZGUgY2FsY01vZGUgPSB0aGlzLT5jYWxjTW9kZSgpOwotICAg
IGlmIChoYXNUYWdOYW1lKFNWR05hbWVzOjphbmltYXRlVGFnKSB8fCBoYXNUYWdOYW1lKFNWR05h
bWVzOjphbmltYXRlQ29sb3JUYWcpKSB7Ci0gICAgICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIGF0
dHJpYnV0ZVR5cGUgPSBkb3duY2FzdDxTVkdBbmltYXRlRWxlbWVudD4oKnRoaXMpLmRldGVybWlu
ZUFuaW1hdGVkUHJvcGVydHlUeXBlKHRhcmdldEVsZW1lbnQoKSk7CisgICAgaWYgKGlzPFNWR0Fu
aW1hdGVFbGVtZW50PigqdGhpcykgfHwgaXM8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4oKnRoaXMp
KSB7CisgICAgICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIGF0dHJpYnV0ZVR5cGUgPSBkb3duY2Fz
dDxTVkdBbmltYXRlRWxlbWVudEJhc2U+KCp0aGlzKS5kZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5
VHlwZSh0YXJnZXRFbGVtZW50KCkpOwogICAgICAgICAvLyBGYWxsIGJhY2sgdG8gZGlzY3JldGUg
YW5pbWF0aW9ucyBmb3IgU3RyaW5ncy4KICAgICAgICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT0gQW5p
bWF0ZWRCb29sZWFuCiAgICAgICAgICAgICB8fCBhdHRyaWJ1dGVUeXBlID09IEFuaW1hdGVkRW51
bWVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNwcAppbmRleCA5YmRkZTYyYTVi
NGE5MTIyZGQ3NWVhZDQwNzVhYzgxMWY5YThlNGMzLi5kNzkxNWI2NGJjYzY4MDJkMTdhNmJhMWFl
NjhkYTFjN2FjMDJiY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuY3BwCkBAIC0y
Niw3ICsyNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBpbmxpbmUgU1ZHU2V0RWxl
bWVudDo6U1ZHU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCi0gICAgOiBTVkdBbmltYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
KyAgICA6IFNWR0FuaW1hdGVFbGVtZW50QmFzZSh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBz
ZXRBbmltYXRpb25Nb2RlKFRvQW5pbWF0aW9uKTsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdO
YW1lczo6c2V0VGFnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuaAppbmRleCBkNzAyMjg3
ZGUxNzQ3ZThmNzU2NWVjOGY5N2NjM2VhMmMwMWM4ZWUwLi5mYjY4ZTY3MjkxM2RjMWNhYzFlZWU0
NGZjYTQ0NDg5ODM3MjA4NjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmgKQEAgLTIx
LDEyICsyMSwxMiBAQAogI2lmbmRlZiBTVkdTZXRFbGVtZW50X2gKICNkZWZpbmUgU1ZHU2V0RWxl
bWVudF9oCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0Fu
aW1hdGVFbGVtZW50QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFNWR0FuaW1h
dGVFbGVtZW50IGltcGxlbWVudHMgc3VwZXJzZXQgb2YgdGhlIGZ1bmN0aW9uYWxpdHkuCi1jbGFz
cyBTVkdTZXRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50IHsKK2NsYXNz
IFNWR1NldEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTZXRFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9zdmd0YWdzLmluIGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KaW5kZXggYjc3
MDhjMTExY2JmYjAyYTcwODNkZGZmMGRkZjUyOTY4ZGFmNzBjZS4uZWZhNWY1MDk4OTgwY2UzMTJm
ODg0NjExMjM0NmU3ZWNlMjBmNTUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3N2
Z3RhZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KQEAgLTMsMjYgKzMs
MjYgQEAgbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKIGZhbGxiYWNr
SW50ZXJmYWNlTmFtZT0iU1ZHVW5rbm93bkVsZW1lbnQiCiBmYWxsYmFja0pTSW50ZXJmYWNlTmFt
ZT0iU1ZHRWxlbWVudCIKIAotYSBnZW5lcmF0ZVR5cGVIZWxwZXJzCithCiAjaWYgRU5BQkxFX1NW
R19GT05UUwotYWx0R2x5cGggZ2VuZXJhdGVUeXBlSGVscGVycwotYWx0R2x5cGhEZWYgZ2VuZXJh
dGVUeXBlSGVscGVycwotYWx0R2x5cGhJdGVtIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2FsdEdseXBo
CithbHRHbHlwaERlZgorYWx0R2x5cGhJdGVtCiAjZW5kaWYKIGFuaW1hdGUKIGFuaW1hdGVDb2xv
cgotYW5pbWF0ZU1vdGlvbiBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1hbmltYXRlVHJhbnNmb3JtIGdl
bmVyYXRlVHlwZUhlbHBlcnMKK2FuaW1hdGVNb3Rpb24KK2FuaW1hdGVUcmFuc2Zvcm0KIHNldAot
Y2lyY2xlIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWNsaXBQYXRoIGdlbmVyYXRlVHlwZUhlbHBlcnMK
K2NpcmNsZQorY2xpcFBhdGgKICNpZiAwCiBjb2xvcl9wcm9maWxlCiAjZW5kaWYKLWN1cnNvciBn
ZW5lcmF0ZVR5cGVIZWxwZXJzCitjdXJzb3IKIGRlZnMKIGRlc2MKLWVsbGlwc2UgZ2VuZXJhdGVU
eXBlSGVscGVycworZWxsaXBzZQogZmVCbGVuZAogZmVDb2xvck1hdHJpeAogZmVDb21wb25lbnRU
cmFuc2ZlcgpAQCAtMzAsNjkgKzMwLDY5IEBAIGZlQ29tcG9zaXRlCiBmZUNvbnZvbHZlTWF0cml4
CiBmZURpZmZ1c2VMaWdodGluZwogZmVEaXNwbGFjZW1lbnRNYXAKLWZlRGlzdGFudExpZ2h0IGdl
bmVyYXRlVHlwZUhlbHBlcnMKK2ZlRGlzdGFudExpZ2h0CiBmZURyb3BTaGFkb3cKIGZlRmxvb2QK
LWZlRnVuY0EgZ2VuZXJhdGVUeXBlSGVscGVycwotZmVGdW5jQiBnZW5lcmF0ZVR5cGVIZWxwZXJz
Ci1mZUZ1bmNHIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWZlRnVuY1IgZ2VuZXJhdGVUeXBlSGVscGVy
cworZmVGdW5jQQorZmVGdW5jQgorZmVGdW5jRworZmVGdW5jUgogZmVHYXVzc2lhbkJsdXIKIGZl
SW1hZ2UKIGZlTWVyZ2UKLWZlTWVyZ2VOb2RlIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ZlTWVyZ2VO
b2RlCiBmZU1vcnBob2xvZ3kKIGZlT2Zmc2V0Ci1mZVBvaW50TGlnaHQgZ2VuZXJhdGVUeXBlSGVs
cGVycworZmVQb2ludExpZ2h0CiBmZVNwZWN1bGFyTGlnaHRpbmcKLWZlU3BvdExpZ2h0IGdlbmVy
YXRlVHlwZUhlbHBlcnMKK2ZlU3BvdExpZ2h0CiBmZVRpbGUKIGZlVHVyYnVsZW5jZQotZmlsdGVy
IGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ZpbHRlcgogI2lmIEVOQUJMRV9TVkdfRk9OVFMKLWZvbnQg
Z2VuZXJhdGVUeXBlSGVscGVycwotZm9udF9mYWNlIGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ZvbnQK
K2ZvbnRfZmFjZQogZm9udF9mYWNlX2Zvcm1hdAotZm9udF9mYWNlX25hbWUgZ2VuZXJhdGVUeXBl
SGVscGVycwotZm9udF9mYWNlX3NyYyBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mb250X2ZhY2VfdXJp
IGdlbmVyYXRlVHlwZUhlbHBlcnMKK2ZvbnRfZmFjZV9uYW1lCitmb250X2ZhY2Vfc3JjCitmb250
X2ZhY2VfdXJpCiAjZW5kaWYKLWZvcmVpZ25PYmplY3QgZ2VuZXJhdGVUeXBlSGVscGVycwotZyBn
ZW5lcmF0ZVR5cGVIZWxwZXJzCitmb3JlaWduT2JqZWN0CitnCiAjaWYgRU5BQkxFX1NWR19GT05U
UwotZ2x5cGggZ2VuZXJhdGVUeXBlSGVscGVycwotZ2x5cGhSZWYgZ2VuZXJhdGVUeXBlSGVscGVy
cwotaGtlcm4gaW50ZXJmYWNlTmFtZT1TVkdIS2VybkVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBl
cnMKK2dseXBoCitnbHlwaFJlZgoraGtlcm4gaW50ZXJmYWNlTmFtZT1TVkdIS2VybkVsZW1lbnQK
ICNlbmRpZgotaW1hZ2UgZ2VuZXJhdGVUeXBlSGVscGVycwotbGluZSBnZW5lcmF0ZVR5cGVIZWxw
ZXJzCi1saW5lYXJHcmFkaWVudCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1tYXJrZXIgZ2VuZXJhdGVU
eXBlSGVscGVycwotbWFzayBnZW5lcmF0ZVR5cGVIZWxwZXJzCitpbWFnZQorbGluZQorbGluZWFy
R3JhZGllbnQKK21hcmtlcgorbWFzawogbWV0YWRhdGEKICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCi1t
aXNzaW5nX2dseXBoIGdlbmVyYXRlVHlwZUhlbHBlcnMKK21pc3NpbmdfZ2x5cGgKICNlbmRpZgot
bXBhdGggaW50ZXJmYWNlTmFtZT1TVkdNUGF0aEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMK
LXBhdGggZ2VuZXJhdGVUeXBlSGVscGVycwotcGF0dGVybiBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1w
b2x5Z29uIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXBvbHlsaW5lIGdlbmVyYXRlVHlwZUhlbHBlcnMK
LXJhZGlhbEdyYWRpZW50IGdlbmVyYXRlVHlwZUhlbHBlcnMKLXJlY3QgZ2VuZXJhdGVUeXBlSGVs
cGVycwotc2NyaXB0IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMKLXN0b3AgZ2VuZXJhdGVUeXBlSGVscGVycwotc3R5bGUgY29uc3RydWN0b3JOZWVk
c0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwotc3ZnIGludGVyZmFjZU5hbWU9
U1ZHU1ZHRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycworbXBhdGggaW50ZXJmYWNlTmFtZT1T
VkdNUGF0aEVsZW1lbnQKK3BhdGgKK3BhdHRlcm4KK3BvbHlnb24KK3BvbHlsaW5lCityYWRpYWxH
cmFkaWVudAorcmVjdAorc2NyaXB0IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK3N0
b3AKK3N0eWxlIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK3N2ZyBpbnRlcmZhY2VO
YW1lPVNWR1NWR0VsZW1lbnQKIHN3aXRjaAogc3ltYm9sCi10ZXh0IGdlbmVyYXRlVHlwZUhlbHBl
cnMKLXRleHRQYXRoIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRpdGxlIGdlbmVyYXRlVHlwZUhlbHBl
cnMKK3RleHQKK3RleHRQYXRoCit0aXRsZQogdHJlZiBpbnRlcmZhY2VOYW1lPVNWR1RSZWZFbGVt
ZW50CiB0c3BhbiBpbnRlcmZhY2VOYW1lPVNWR1RTcGFuRWxlbWVudAotdXNlIGNvbnN0cnVjdG9y
TmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXZpZXcgZ2VuZXJhdGVU
eXBlSGVscGVycwordXNlIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIKK3ZpZXcKICNp
ZiBFTkFCTEVfU1ZHX0ZPTlRTCi12a2VybiBpbnRlcmZhY2VOYW1lPVNWR1ZLZXJuRWxlbWVudCwg
Z2VuZXJhdGVUeXBlSGVscGVycwordmtlcm4gaW50ZXJmYWNlTmFtZT1TVkdWS2VybkVsZW1lbnQK
ICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>