<?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>205892</bug_id>
          
          <creation_ts>2020-01-07 15:09:18 -0800</creation_ts>
          <short_desc>[LFC] FormattingContext::layoutOutOfFlowContent should take horizontal and vertical constraints.</short_desc>
          <delta_ts>2020-01-09 09:37:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1603821</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-07 15:09:18 -0800</bug_when>
    <thetext>instead of reading the containing block&apos;s geometry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603822</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-07 15:09:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/58389802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603826</commentid>
    <comment_count>2</comment_count>
      <attachid>387043</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-07 15:17:26 -0800</bug_when>
    <thetext>Created attachment 387043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604609</commentid>
    <comment_count>3</comment_count>
      <attachid>387043</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-09 07:18:52 -0800</bug_when>
    <thetext>Comment on attachment 387043
Patch

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

&gt; Source/WebCore/layout/LayoutContext.cpp:101
&gt; +    // It constructs an FC for descendant boxes and runs layout on them. The formattingContextRoot is laied out in the FC in which it lives (parent formatting context).

typo &apos;laied&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604654</commentid>
    <comment_count>4</comment_count>
      <attachid>387236</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-09 08:50:22 -0800</bug_when>
    <thetext>Created attachment 387236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604670</commentid>
    <comment_count>5</comment_count>
      <attachid>387236</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-09 09:37:07 -0800</bug_when>
    <thetext>Comment on attachment 387236
Patch

Clearing flags on attachment: 387236

Committed r254263: &lt;https://trac.webkit.org/changeset/254263&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604671</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-09 09:37:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387043</attachid>
            <date>2020-01-07 15:17:26 -0800</date>
            <delta_ts>2020-01-09 08:50:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205892-20200107151725.patch</filename>
            <type>text/plain</type>
            <size>31175</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwZDE4MzI5MjZkNTQz
MDY5MGI5N2IxYTg5ZmE3M2UzZDRmNjg0NS4uMjRiOTUyNTk2NDVjNjkzYjY3NThkODI4MGZjMGM4
ZWUwNDFhMWI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAxLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQgc2hvdWxkIHRha2UgaG9yaXpvbnRhbCBhbmQg
dmVydGljYWwgY29uc3RyYWludHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU4OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4Mzg5ODAyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjYWxs
ZXIgc2hvdWxkIHByb3ZpZGUgdGhlIGhvcml6b250YWwvdmVydGljYWwgY29uc3RyYWludHMgZm9y
IHRoZSB0aGUgb3V0LW9mLWZsb3cgYm94ZXMuIEl0IGhlbHBzIHRvIG1ha2Ugc3VyZSB0aGF0IHdl
IGRvbid0IGFjY2VzcyBnZW9tZXRyeSBpbmZvcm1hdGlvbgorICAgICAgICBpbiB0aGUgcGFyZW50
IGZvcm1hdHRpbmcgY29udGV4dC4KKworICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9m
Rmxvd0NvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oOgorICAg
ICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpob3Jpem9udGFsQ29u
c3RyYWludHNGb3JPdXRPZkZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omhv
cml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxv
dyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6b3V0T2ZGbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0
aWNhbENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmluRmxvd1ZlcnRpY2FsQ29uc3RyYWludHMpOiBEZWxldGVkLgorICAgICAgICAqIGxh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmhlaWdodFZhbHVlT2ZOZWFyZXN0Q29udGFp
bmluZ0Jsb2NrV2l0aEZpeGVkSGVpZ2h0KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dENvbnRleHQ6OmxheW91dEZv
cm1hdHRpbmdDb250ZXh0U3VidHJlZSk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdD
b250ZXh0Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OnBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2Fs
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnN0cmV0Y2hlZEluRmxv
d0hlaWdodCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNv
bGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgorICAg
ICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdCk6CisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0
dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0VGFibGVDZWxsQm94KToKKwogMjAyMC0w
MS0wNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBsb2Fk
ZXIvd2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRl
eCAwOWE0YjQ1YWFkNTExMzAxMWEyMWI2YjAwNTE3NTMzOTM0NzJhZWVmLi43ZWY3NDNlOTliMTFm
M2UxNWQwZjRhZWY0ZjE1OTkzZWM5M2U4NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTY2LDE3ICs2NiwxNyBAQCBMYXlvdXRTdGF0ZSYgRm9y
bWF0dGluZ0NvbnRleHQ6OmxheW91dFN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9mb3JtYXR0
aW5nU3RhdGUubGF5b3V0U3RhdGUoKTsKIH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCkKK3Zv
aWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnko
Y29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJh
aW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXM6OkNv
bnN0cmFpbnRzJiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQogewotICAgIGF1dG8mIGNvbnRhaW5pbmdC
bG9ja0dlb21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2so
KSk7Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGNvbnRhaW5pbmdCbG9ja0dlb21l
dHJ5LnBhZGRpbmdCb3hXaWR0aCgpOworICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpOworICAgIGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzID0gVXNlZFZlcnRpY2Fs
VmFsdWVzIHsgdmVydGljYWxDb25zdHJhaW50cywgeyB9IH07CiAKICAgICBhdXRvIGNvbXB1dGUg
PSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoKSB7Ci0gICAgICAgIGF1dG8gdXNl
ZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IEdlb21ldHJ5OjpvdXRP
ZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpLCB1c2Vk
V2lkdGgsIHsgfSB9OwotICAgICAgICBhdXRvIHVzZWRWZXJ0aWNhbFZhbHVlcyA9IFVzZWRWZXJ0
aWNhbFZhbHVlcyB7IEdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNhbENvbnN0cmFpbnRzKGNvbnRh
aW5pbmdCbG9ja0dlb21ldHJ5KSwgeyB9IH07CisgICAgICAgIGF1dG8gdXNlZEhvcml6b250YWxW
YWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50cywgdXNl
ZFdpZHRoLCB7IH0gfTsKICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkub3V0T2ZGbG93SG9yaXpv
bnRhbEdlb21ldHJ5KGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRWZXJ0aWNh
bFZhbHVlcyk7CiAgICAgfTsKIAorICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBob3Jp
em9udGFsQ29uc3RyYWludHMud2lkdGg7CiAgICAgYXV0byBob3Jpem9udGFsR2VvbWV0cnkgPSBj
b21wdXRlKHsgfSk7CiAgICAgaWYgKGF1dG8gbWF4V2lkdGggPSBnZW9tZXRyeSgpLmNvbXB1dGVk
TWF4V2lkdGgobGF5b3V0Qm94LCBjb250YWluaW5nQmxvY2tXaWR0aCkpIHsKICAgICAgICAgYXV0
byBtYXhIb3Jpem9udGFsR2VvbWV0cnkgPSBjb21wdXRlKG1heFdpZHRoKTsKQEAgLTk3LDI4ICs5
NywyNCBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRh
bEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIGRpc3BsYXlCb3guc2V0SG9yaXpv
bnRhbENvbXB1dGVkTWFyZ2luKGhvcml6b250YWxHZW9tZXRyeS5jb250ZW50V2lkdGhBbmRNYXJn
aW4uY29tcHV0ZWRNYXJnaW4pOwogfQogCi12b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
T3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCkKK3ZvaWQgRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMmIGhv
cml6b250YWxDb25zdHJhaW50cywgY29uc3QgVXNlZFZlcnRpY2FsVmFsdWVzOjpDb25zdHJhaW50
cyYgdmVydGljYWxDb25zdHJhaW50cykKIHsKLSAgICBhdXRvIGNvbXB1dGUgPSBbJl0oYXV0byB1
c2VkSG9yaXpvbnRhbFZhbHVlcywgYXV0byB1c2VkVmVydGljYWxWYWx1ZXMpIHsKKyAgICBBU1NF
UlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKKyAgICBhdXRvIGNvbXB1dGUg
PSBbJl0oY29uc3QgYXV0byYgdXNlZEhvcml6b250YWxWYWx1ZXMsIGNvbnN0IGF1dG8mIHVzZWRW
ZXJ0aWNhbFZhbHVlcykgewogICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5vdXRPZkZsb3dWZXJ0
aWNhbEdlb21ldHJ5KGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRWZXJ0aWNh
bFZhbHVlcyk7CiAgICAgfTsKLSAgICBhdXRvJiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSA9IGdl
b21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpOwotICAgIGF1dG8gY29u
dGFpbmluZ0Jsb2NrSGVpZ2h0ID0gY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveEhl
aWdodCgpOwogCi0gICAgYXV0byB1c2VkVmVydGljYWxWYWx1ZXNGb3JIZWlnaHQgPSBVc2VkVmVy
dGljYWxWYWx1ZXMgeyBHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxDb25zdHJhaW50cyhjb250
YWluaW5nQmxvY2tHZW9tZXRyeSksIHsgfSB9OwotICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1
ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IEdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9udGFs
Q29uc3RyYWludHMoY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpIH07Ci0KLSAgICBhdXRvIHZlcnRp
Y2FsR2VvbWV0cnkgPSBjb21wdXRlKHVzZWRIb3Jpem9udGFsVmFsdWVzLCB1c2VkVmVydGljYWxW
YWx1ZXNGb3JIZWlnaHQpOworICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9y
aXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50cyB9OworICAgIGF1dG8gY29udGFp
bmluZ0Jsb2NrSGVpZ2h0ID0gKnZlcnRpY2FsQ29uc3RyYWludHMuaGVpZ2h0OworICAgIGF1dG8g
dmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUodXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0
aWNhbFZhbHVlcyB7IHZlcnRpY2FsQ29uc3RyYWludHMsIHsgfSB9KTsKICAgICBpZiAoYXV0byBt
YXhIZWlnaHQgPSBnZW9tZXRyeSgpLmNvbXB1dGVkTWF4SGVpZ2h0KGxheW91dEJveCwgY29udGFp
bmluZ0Jsb2NrSGVpZ2h0KSkgewotICAgICAgICBhdXRvIHVzZWRWYWx1ZXNGb3JNYXhIZWlnaHQg
PSBVc2VkVmVydGljYWxWYWx1ZXMgeyBHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxDb25zdHJh
aW50cyhjb250YWluaW5nQmxvY2tHZW9tZXRyeSksIG1heEhlaWdodCB9OwotICAgICAgICBhdXRv
IG1heFZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHVzZWRIb3Jpem9udGFsVmFsdWVzLCB1c2Vk
VmFsdWVzRm9yTWF4SGVpZ2h0KTsKKyAgICAgICAgYXV0byBtYXhWZXJ0aWNhbEdlb21ldHJ5ID0g
Y29tcHV0ZSh1c2VkSG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzIHsgdmVydGlj
YWxDb25zdHJhaW50cywgbWF4SGVpZ2h0IH0pOwogICAgICAgICBpZiAodmVydGljYWxHZW9tZXRy
eS5jb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNvbnRlbnRIZWlnaHQgPiBtYXhWZXJ0aWNhbEdlb21l
dHJ5LmNvbnRlbnRIZWlnaHRBbmRNYXJnaW4uY29udGVudEhlaWdodCkKICAgICAgICAgICAgIHZl
cnRpY2FsR2VvbWV0cnkgPSBtYXhWZXJ0aWNhbEdlb21ldHJ5OwogICAgIH0KIAogICAgIGlmIChh
dXRvIG1pbkhlaWdodCA9IGdlb21ldHJ5KCkuY29tcHV0ZWRNaW5IZWlnaHQobGF5b3V0Qm94LCBj
b250YWluaW5nQmxvY2tIZWlnaHQpKSB7Ci0gICAgICAgIGF1dG8gdXNlZFZhbHVlc0Zvck1pbkhl
aWdodCA9IFVzZWRWZXJ0aWNhbFZhbHVlcyB7IEdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNhbENv
bnN0cmFpbnRzKGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KSwgbWluSGVpZ2h0IH07Ci0gICAgICAg
IGF1dG8gbWluVmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUodXNlZEhvcml6b250YWxWYWx1ZXMs
IHVzZWRWYWx1ZXNGb3JNaW5IZWlnaHQpOworICAgICAgICBhdXRvIG1pblZlcnRpY2FsR2VvbWV0
cnkgPSBjb21wdXRlKHVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMgeyB2
ZXJ0aWNhbENvbnN0cmFpbnRzLCBtaW5IZWlnaHQgfSk7CiAgICAgICAgIGlmICh2ZXJ0aWNhbEdl
b21ldHJ5LmNvbnRlbnRIZWlnaHRBbmRNYXJnaW4uY29udGVudEhlaWdodCA8IG1pblZlcnRpY2Fs
R2VvbWV0cnkuY29udGVudEhlaWdodEFuZE1hcmdpbi5jb250ZW50SGVpZ2h0KQogICAgICAgICAg
ICAgdmVydGljYWxHZW9tZXRyeSA9IG1pblZlcnRpY2FsR2VvbWV0cnk7CiAgICAgfQpAQCAtMTM4
LDI5ICsxMzQsNDggQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBh
ZGRpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWQKICAgICBkaXNwbGF5Qm94LnNl
dFBhZGRpbmcoZ2VvbWV0cnkoKS5jb21wdXRlZFBhZGRpbmcobGF5b3V0Qm94LCBVc2VkSG9yaXpv
bnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50IH0pKTsKIH0KIAotdm9pZCBGb3JtYXR0
aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52
YWxpZGF0aW9uU3RhdGUpCit2b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dD
b250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSwgY29uc3QgVXNlZEhv
cml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzJiByb290SG9yaXpvbnRhbENvbnN0cmFpbnRzLCBj
b25zdCBVc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzJiByb290VmVydGljYWxDb25zdHJh
aW50cykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0
cmVhbSA8PCAiU3RhcnQ6IGxheW91dCBvdXQtb2YtZmxvdyBjb250ZW50IC0+IGNvbnRleHQ6ICIg
PDwgJmxheW91dFN0YXRlKCkgPDwgIiByb290OiAiIDw8ICZyb290KCkpOwogCiAgICAgY29sbGVj
dE91dE9mRmxvd0Rlc2NlbmRhbnRzSWZOZWVkZWQoKTsKIAorICAgIGF1dG8gaG9yaXpvbnRhbENv
bnN0cmFpbnRzRm9yT3V0T2ZGbG93Qm94ID0gWyZdIChjb25zdCBhdXRvJiBvdXRPZkZsb3dCb3gp
IHsKKyAgICAgICAgYXV0byogY29udGFpbmluZ0Jsb2NrID0gb3V0T2ZGbG93Qm94LmNvbnRhaW5p
bmdCbG9jaygpOworICAgICAgICBBU1NFUlQoY29udGFpbmluZ0Jsb2NrKTsKKyAgICAgICAgaWYg
KGNvbnRhaW5pbmdCbG9jayA9PSAmcm9vdCgpKQorICAgICAgICAgICAgcmV0dXJuIHJvb3RIb3Jp
em9udGFsQ29uc3RyYWludHM7CisgICAgICAgIHJldHVybiBHZW9tZXRyeTo6aG9yaXpvbnRhbENv
bnN0cmFpbnRzRm9yT3V0T2ZGbG93KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2spKTsK
KyAgICB9OworCisgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Qm94ID0g
WyZdIChjb25zdCBhdXRvJiBvdXRPZkZsb3dCb3gpIHsKKyAgICAgICAgYXV0byogY29udGFpbmlu
Z0Jsb2NrID0gb3V0T2ZGbG93Qm94LmNvbnRhaW5pbmdCbG9jaygpOworICAgICAgICBBU1NFUlQo
Y29udGFpbmluZ0Jsb2NrKTsKKyAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jayA9PSAmcm9vdCgp
KQorICAgICAgICAgICAgcmV0dXJuIHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzOworICAgICAgICBy
ZXR1cm4gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3coZ2VvbWV0cnlG
b3JCb3goKmNvbnRhaW5pbmdCbG9jaykpOworICAgIH07CisKICAgICBmb3IgKGF1dG8mIG91dE9m
Rmxvd0JveCA6IGZvcm1hdHRpbmdTdGF0ZSgpLm91dE9mRmxvd0JveGVzKCkpIHsKICAgICAgICAg
QVNTRVJUKG91dE9mRmxvd0JveC0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAg
ICAgICAgaWYgKCFpbnZhbGlkYXRpb25TdGF0ZS5uZWVkc0xheW91dCgqb3V0T2ZGbG93Qm94KSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGF1dG8gY29uc3RyYWludHMgPSBHZW9t
ZXRyeTo6aW5GbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGdlb21ldHJ5Rm9yQm94KCpvdXRPZkZs
b3dCb3gtPmNvbnRhaW5pbmdCbG9jaygpKSk7Ci0gICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRk
aW5nKCpvdXRPZkZsb3dCb3gsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAgY29tcHV0ZU91dE9mRmxv
d0hvcml6b250YWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94KTsKKyAgICAgICAgYXV0byBob3Jpem9u
dGFsQ29uc3RyYWludHMgPSBob3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRPZkZsb3dCb3goKm91
dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50cyA9IHZlcnRpY2Fs
Q29uc3RyYWludHNGb3JPdXRPZkZsb3dCb3goKm91dE9mRmxvd0JveCk7CisgICAgICAgIC8vIEJv
cmRlcnMgYW5kIHBhZGRpbmdzIGFyZSByZXNvbHZlZCBhZ2FpbnN0IHRoZSBjb250YWluaW5nIGJs
b2NrJ3MgY29udGVudCBib3ggbGlrZSBpZiB0aGlzIGJveCB3YXMgYW4gaW4tZmxvdyBib3guCisg
ICAgICAgIGF1dG8mIG91dE9mRmxvd1Jvb3REaXNwbGF5Qm94ID0gZ2VvbWV0cnlGb3JCb3goKm91
dE9mRmxvd0JveCk7CisgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKCpvdXRPZkZsb3dC
b3gsIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3cob3V0T2ZGbG93Um9v
dERpc3BsYXlCb3gpKTsKKyAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRy
eSgqb3V0T2ZGbG93Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWlu
dHMpOwogICAgICAgICBpZiAoaXM8Q29udGFpbmVyPigqb3V0T2ZGbG93Qm94KSkgewogICAgICAg
ICAgICAgYXV0byYgb3V0T2ZGbG93Um9vdENvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lcj4o
Km91dE9mRmxvd0JveCk7Ci0gICAgICAgICAgICBhdXRvJiBvdXRPZkZsb3dSb290RGlzcGxheUJv
eCA9IGdlb21ldHJ5Rm9yQm94KG91dE9mRmxvd1Jvb3RDb250YWluZXIpOwogICAgICAgICAgICAg
YXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdD
b250ZXh0KG91dE9mRmxvd1Jvb3RDb250YWluZXIsIGxheW91dFN0YXRlKCkpOwotICAgICAgICAg
ICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3Rh
dGUsIEdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMob3V0T2ZGbG93Um9vdERp
c3BsYXlCb3gpKTsKLSAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5
KG91dE9mRmxvd1Jvb3RDb250YWluZXIpOwotICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQt
PmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUpOworICAgICAgICAgICAg
Zm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUs
IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3cob3V0T2ZGbG93Um9vdERp
c3BsYXlCb3gpKTsKKyAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5
KG91dE9mRmxvd1Jvb3RDb250YWluZXIsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxD
b25zdHJhaW50cyk7CisKKyAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRPdXRP
ZkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBHZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0
cmFpbnRzRm9ySW5GbG93KG91dE9mRmxvd1Jvb3REaXNwbGF5Qm94KSwgR2VvbWV0cnk6OnZlcnRp
Y2FsQ29uc3RyYWludHNGb3JJbkZsb3cob3V0T2ZGbG93Um9vdERpc3BsYXlCb3gpKTsKICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSgq
b3V0T2ZGbG93Qm94KTsKKyAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21l
dHJ5KCpvdXRPZkZsb3dCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJh
aW50cyk7CiAgICAgfQogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91
dCwgc3RyZWFtIDw8ICJFbmQ6IGxheW91dCBvdXQtb2YtZmxvdyBjb250ZW50IC0+IGNvbnRleHQ6
ICIgPDwgJmxheW91dFN0YXRlKCkgPDwgIiByb290OiAiIDw8ICZyb290KCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAwOThhZDE4YTk4YzcwMDJk
Y2ExYTViMDA5OWU5NjZlNTkwYjE1Nzc1Li43MmIwY2FlMzMwMTU2YmY1OTNiZjUxNGYzYzBkYzhl
ZjMxOGE1MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApA
QCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Rm9ybWF0dGluZ0NvbnRleHQo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0
YXRlJiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzJikgPSAwOwotICAg
IHZvaWQgbGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYpOworICAgIHZv
aWQgbGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0IFVzZWRI
b3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlczo6
Q29uc3RyYWludHMmKTsKIAogICAgIHN0cnVjdCBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsK
ICAgICAgICAgdm9pZCBleHBhbmQoTGF5b3V0VW5pdCBob3Jpem9udGFsVmFsdWUpOwpAQCAtMTQy
LDEwICsxNDIsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExheW91dFVuaXQgY29udGVudEhl
aWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmKSBjb25zdDsKIAotICAgICAg
ICBzdGF0aWMgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIG91dE9mRmxvd0hvcml6
b250YWxDb25zdHJhaW50cyhjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21l
dHJ5KTsKLSAgICAgICAgc3RhdGljIFVzZWRWZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMgb3V0
T2ZGbG93VmVydGljYWxDb25zdHJhaW50cyhjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdC
bG9ja0dlb21ldHJ5KTsKLSAgICAgICAgc3RhdGljIFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25z
dHJhaW50cyBpbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoY29uc3QgRGlzcGxheTo6Qm94JiBj
b250YWluaW5nQmxvY2tHZW9tZXRyeSk7Ci0gICAgICAgIHN0YXRpYyBVc2VkVmVydGljYWxWYWx1
ZXM6OkNvbnN0cmFpbnRzIGluRmxvd1ZlcnRpY2FsQ29uc3RyYWludHMoY29uc3QgRGlzcGxheTo6
Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSk7CisgICAgICAgIHN0YXRpYyBVc2VkSG9yaXpv
bnRhbFZhbHVlczo6Q29uc3RyYWludHMgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93
KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpOworICAgICAgICBz
dGF0aWMgVXNlZFZlcnRpY2FsVmFsdWVzOjpDb25zdHJhaW50cyB2ZXJ0aWNhbENvbnN0cmFpbnRz
Rm9yT3V0T2ZGbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkp
OworICAgICAgICBzdGF0aWMgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIGhvcml6
b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdC
bG9ja0dlb21ldHJ5KTsKKyAgICAgICAgc3RhdGljIFVzZWRWZXJ0aWNhbFZhbHVlczo6Q29uc3Ry
YWludHMgdmVydGljYWxDb25zdHJhaW50c0ZvckluRmxvdyhjb25zdCBEaXNwbGF5OjpCb3gmIGNv
bnRhaW5pbmdCbG9ja0dlb21ldHJ5KTsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgZnJpZW5k
IGNsYXNzIEZvcm1hdHRpbmdDb250ZXh0OwpAQCAtMTk3LDggKzE5Nyw4IEBAIHByb3RlY3RlZDoK
IAogcHJpdmF0ZToKICAgICB2b2lkIGNvbGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50c0lmTmVlZGVk
KCk7Ci0gICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gm
KTsKLSAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29uc3QgQm94
Jik7CisgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gm
LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMmLCBjb25zdCBVc2VkVmVy
dGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzJik7CisgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93SG9y
aXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpD
b25zdHJhaW50cyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMmKTsKIAog
ICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyPiBtX3Jvb3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRl
JiBtX2Zvcm1hdHRpbmdTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCA5YjNlYTAwZmVkNzE4YzhjNGRiNDU1MWJh
NDk5YzIxYTlmM2QxMmZlLi40YTJlMGNlYTNhZjAxNzIzOGExNGU5ZTNjM2NlNDY2OGFjNWJmOTE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2Vv
bWV0cnkuY3BwCkBAIC0xMTA3LDIyICsxMTA3LDIyIEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3Ry
CiAgICAgcmV0dXJuIGludHJpbnNpY1dpZHRoOwogfQogCi1Vc2VkSG9yaXpvbnRhbFZhbHVlczo6
Q29uc3RyYWludHMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9u
dGFsQ29uc3RyYWludHMoY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRy
eSkKK1VzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyBGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxvdyhjb25zdCBEaXNwbGF5
OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQogewogICAgIHJldHVybiBVc2VkSG9yaXpv
bnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5wYWRkaW5n
Qm94TGVmdCgpLCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5wYWRkaW5nQm94V2lkdGgoKSB9Owog
fQogCi1Vc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxDb25zdHJhaW50cyhjb25zdCBEaXNwbGF5OjpCb3gm
IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQorVXNlZFZlcnRpY2FsVmFsdWVzOjpDb25zdHJhaW50
cyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRP
ZkZsb3coY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkKIHsKICAg
ICByZXR1cm4gVXNlZFZlcnRpY2FsVmFsdWVzOjpDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9j
a0dlb21ldHJ5LnBhZGRpbmdCb3hUb3AoKSwgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGlu
Z0JveEhlaWdodCgpIH07CiB9CiAKLVVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd0hvcml6b250YWxDb25zdHJhaW50cyhj
b25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQorVXNlZEhvcml6b250
YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aG9yaXpv
bnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Js
b2NrR2VvbWV0cnkpCiB7CiAgICAgcmV0dXJuIFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJh
aW50cyB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0KCksIGNvbnRhaW5p
bmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hXaWR0aCgpIH07CiB9CiAKLVVzZWRWZXJ0aWNhbFZh
bHVlczo6Q29uc3RyYWludHMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dWZXJ0
aWNhbENvbnN0cmFpbnRzKGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0
cnkpCitVc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxvdyhjb25zdCBEaXNwbGF5OjpCb3gm
IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQogewogICAgIHJldHVybiBVc2VkVmVydGljYWxWYWx1
ZXM6OkNvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkuY29udGVudEJveFRvcCgp
LCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94SGVpZ2h0KCkgfTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCmluZGV4
IDdiNjkzMmFjZGRhYjg3MzY5M2JlMTJlNGZhMGFiYjc4MjY3ZmNjMDEuLjA5M2MyZDgyYzA1NTJm
ZDg1YmI0OTM2YjEyZTQyYmU2MDMzMTgyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcApAQCAtNTEsNyArNTEsNyBAQCBMYXlvdXRV
bml0IEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmhlaWdodFZhbHVlT2ZOZWFyZXN0Q29udGFp
bmluZ0Jsb2NrV2l0aEZpeAogICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0
aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0aW5nQ29u
dGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzQW5jZXN0b3JGb3JtYXR0aW5nQ29udGV4dCk7CiAKICAg
ICAgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3ggPSBmb3JtYXR0aW5nQ29u
dGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLT5jb250YWluaW5nQmxvY2soKSwg
Rm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVR5cGU6OkFjY2Vzc0FuY2VzdG9yRm9ybWF0dGluZ0Nv
bnRleHQpOwotICAgICAgICAgICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1
ZXMgeyBHZW9tZXRyeTo6aW5GbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGNvbnRhaW5pbmdCbG9j
a0Rpc3BsYXlCb3gpIH07CisgICAgICAgICAgICBhdXRvIHVzZWRWYWx1ZXMgPSBVc2VkSG9yaXpv
bnRhbFZhbHVlcyB7IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coY29u
dGFpbmluZ0Jsb2NrRGlzcGxheUJveCkgfTsKICAgICAgICAgICAgIGF1dG8gdmVydGljYWxNYXJn
aW4gPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4o
KmNvbnRhaW5pbmdCbG9jaywgdXNlZFZhbHVlcyk7CiAgICAgICAgICAgICBhdXRvIHZlcnRpY2Fs
UGFkZGluZyA9IGJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52YWx1ZU9yKDApICsgYm94R2VvbWV0
cnkucGFkZGluZ0JvdHRvbSgpLnZhbHVlT3IoMCk7CiAgICAgICAgICAgICBhdXRvIHZlcnRpY2Fs
Qm9yZGVyID0gYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5ib3JkZXJCb3R0
b20oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCA4OGZkYzc3
ZTkzOGM1MGU5Mzc0YmNhMDZjYTRmNDVhNTc3YmI5M2UyLi4xMjM4ZTliMzMzNmI2ZDhmNGE1ZWMz
MDg2YTczYzRiMzRmNTVhZWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQu
Y3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTGF5b3V0VHJlZUJ1aWxkZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
KyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiVGFibGVGb3Jt
YXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRhYmxlRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTg4LDE1ICs4OSwyMyBAQCB2b2lkIExh
eW91dENvbnRleHQ6OmxheW91dFdpdGhQcmVwYXJlZFJvb3RHZW9tZXRyeShJbnZhbGlkYXRpb25T
dGF0ZSYgaW52YWxpZGF0aQogICAgICAgICBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUo
Zm9ybWF0dGluZ0NvbnRleHRSb290LCBpbnZhbGlkYXRpb25TdGF0ZSk7CiB9CiAKLQogdm9pZCBM
YXlvdXRDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoY29uc3QgQ29udGFp
bmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRp
b25TdGF0ZSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0
YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICBhdXRvIGZvcm1hdHRpbmdDb250ZXh0
ID0gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0dGluZ0NvbnRleHRSb290LCBsYXlvdXRT
dGF0ZSgpKTsKLSAgICBhdXRvJiBkaXNwbGF5Qm94Rm9yRm9ybWF0dGluZ0NvbnRleHRSb290ID0g
bGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGZvcm1hdHRpbmdDb250ZXh0Um9v
dCk7Ci0gICAgYXV0byBjb25zdHJhaW50cyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJh
aW50cyB7IGRpc3BsYXlCb3hGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QuY29udGVudEJveExlZnQo
KSwgZGlzcGxheUJveEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdC5jb250ZW50Qm94V2lkdGgoKSB9
OwotICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dDb250ZW50KGludmFsaWRhdGlv
blN0YXRlLCBjb25zdHJhaW50cyk7Ci0gICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9m
Rmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUpOworICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBs
YXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goZm9ybWF0dGluZ0NvbnRleHRSb290
KTsKKworICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dDb250ZW50KGludmFsaWRh
dGlvblN0YXRlLCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBkaXNwbGF5Qm94
LmNvbnRlbnRCb3hMZWZ0KCksIGRpc3BsYXlCb3guY29udGVudEJveFdpZHRoKCkgfSk7CisKKyAg
ICAvLyBGSVhNRTogbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKCkgZG9lcyBub3QgcGVy
Zm9ybSBsYXlvdXQgb24gdGhlIHJvb3QsIHJhdGhlciBpdCBsYXlzIG91dCB0aGUgcm9vdCdzIGNv
bnRlbnQuCisgICAgLy8gSXQgY29uc3RydWN0cyBhbiBGQyBmb3IgZGVzY2VuZGFudCBib3hlcyBh
bmQgcnVucyBsYXlvdXQgb24gdGhlbS4gVGhlIGZvcm1hdHRpbmdDb250ZXh0Um9vdCBpcyBsYWll
ZCBvdXQgaW4gdGhlIEZDIGluIHdoaWNoIGl0IGxpdmVzIChwYXJlbnQgZm9ybWF0dGluZyBjb250
ZXh0KS4KKyAgICAvLyBJdCBhbHNvIG1lYW5zIHRoYXQgdGhlIGZvcm1hdHRpbmdDb250ZXh0Um9v
dCBoYXMgdG8gaGF2ZSBhIHZhbGlkL2NsZWFuIGdlb21ldHJ5IGF0IHRoaXMgcG9pbnQuCisgICAg
Ly8gQ3VycmVudGx5IHRoZSBpbnRlZ3JhdGlvbiBjb2RlcGF0aCBkb2VzIG5vdCBndWFyYW50ZWUg
aXQgYW5kIHRoYXQncyBmaW5lIGFzIGxvbmcgYXMgd2UgbGF5b3V0IGluZmxvdyBjb250ZW50IG9u
bHkuCisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxh
eW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkpIHsKKyAgICAgICAgYXV0
byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWlu
dHMgeyBkaXNwbGF5Qm94LnBhZGRpbmdCb3hMZWZ0KCksIGRpc3BsYXlCb3gucGFkZGluZ0JveFdp
ZHRoKCkgfTsKKyAgICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzID0gVXNlZFZlcnRpY2Fs
VmFsdWVzOjpDb25zdHJhaW50cyB7IGRpc3BsYXlCb3gucGFkZGluZ0JveFRvcCgpLCBkaXNwbGF5
Qm94LnBhZGRpbmdCb3hIZWlnaHQoKSB9OworICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5
b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICB9CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxG
b3JtYXR0aW5nQ29udGV4dD4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQo
Y29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGU3YTgwMjRiMDgy
ODQwOGQwODM2YmUxYjZkMGE5ZjZjYjY2MGVkM2IuLmYxZDRhYWQ3ZDAwYTE5MTIxMDZlYTk0ZmNi
ZTkwZjEzYjEyNTk3MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtOTQs
NyArOTQsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRl
bnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgICAgICBBU1NFUlQoY29udGFp
bmluZ0Jsb2NrKTsKICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jayA9PSAmZm9ybWF0dGluZ1Jv
b3QpCiAgICAgICAgICAgICByZXR1cm4gcm9vdEhvcml6b250YWxDb25zdHJhaW50czsKLSAgICAg
ICAgcmV0dXJuIEdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoZ2VvbWV0cnlG
b3JCb3goKmNvbnRhaW5pbmdCbG9jaykpOworICAgICAgICByZXR1cm4gR2VvbWV0cnk6Omhvcml6
b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2Nr
KSk7CiAgICAgfTsKICAgICAvLyBUaGlzIGlzIGEgcG9zdC1vcmRlciB0cmVlIHRyYXZlcnNhbCBs
YXlvdXQuCiAgICAgLy8gVGhlIHJvb3QgY29udGFpbmVyIGxheW91dCBpcyBkb25lIGluIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgaXQgbGl2ZXMgaW4sIG5vdCB0aGF0IG9uZSBpdCBjcmVhdGVzLCBz
byBsZXQncyBzdGFydCB3aXRoIHRoZSBmaXJzdCBjaGlsZC4KQEAgLTIwMSwxMSArMjAxLDEzIEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290
KEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpCiAgICAgICAgIGF1dG8mIHJvb3RDb250YWluZXIgPSBk
b3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCk7CiAgICAgICAgIGF1dG8mIHJvb3RDb250YWlu
ZXJEaXNwbGF5Qm94ID0gZ2VvbWV0cnlGb3JCb3gocm9vdENvbnRhaW5lcik7CiAgICAgICAgIGF1
dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29u
dGV4dChyb290Q29udGFpbmVyLCBsYXlvdXRTdGF0ZSgpKTsKLSAgICAgICAgZm9ybWF0dGluZ0Nv
bnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIEdlb21ldHJ5Ojpp
bkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMocm9vdENvbnRhaW5lckRpc3BsYXlCb3gpKTsKKyAg
ICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9u
U3RhdGUsIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3cocm9vdENvbnRh
aW5lckRpc3BsYXlCb3gpKTsKICAgICAgICAgLy8gQ29tZSBiYWNrIGFuZCBmaW5hbGl6ZSB0aGUg
cm9vdCdzIGdlb21ldHJ5LgogICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKHJvb3RDb250
YWluZXIpOwogICAgICAgICAvLyBOb3cgdGhhdCB3ZSBjb21wdXRlZCB0aGUgcm9vdCdzIGhlaWdo
dCwgd2UgY2FuIGdvIGJhY2sgYW5kIGxheW91dCB0aGUgb3V0LW9mLWZsb3cgY29udGVudC4KLSAg
ICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0
aW9uU3RhdGUpOworICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxv
dyA9ICBHZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KHJvb3RDb250
YWluZXJEaXNwbGF5Qm94KTsKKyAgICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93ID0gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cocm9vdENv
bnRhaW5lckRpc3BsYXlCb3gpOworICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0
T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9y
T3V0T2ZGbG93LCB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KTsKICAgICB9IGVsc2UK
ICAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gpOwogICAgIC8vIEZsb2F0
IHJlbGF0ZWQgZmluYWwgcG9zaXRpb25pbmcuCkBAIC0yMjgsNyArMjMwLDcgQEAgdm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBC
b3gmIGxheW91dEJveCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8gY29t
cHV0ZUluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbiA9IFsmXSB7Ci0gICAgICAgICAgICBhdXRvIHVz
ZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBHZW9tZXRyeTo6aW5G
bG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGdlb21ldHJ5Rm9yQm94KCpjaGlsZEJveC5jb250YWlu
aW5nQmxvY2soKSkpIH07CisgICAgICAgICAgICBhdXRvIHVzZWRIb3Jpem9udGFsVmFsdWVzID0g
VXNlZEhvcml6b250YWxWYWx1ZXMgeyBHZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9y
SW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjaGlsZEJveC5jb250YWluaW5nQmxvY2soKSkpIH07CiAg
ICAgICAgICAgICBhdXRvIHBvc2l0aW9uT2Zmc2V0ID0gZ2VvbWV0cnkoKS5pbkZsb3dQb3NpdGlv
bmVkUG9zaXRpb25PZmZzZXQoY2hpbGRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKIAogICAg
ICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3go
Y2hpbGRCb3gpOwpAQCAtMjY3LDcgKzI2OSw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpCiAK
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9z
aXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7Ci0gICAgYXV0byB1c2VkSG9yaXpvbnRhbFZh
bHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgR2VvbWV0cnk6OmluRmxvd0hvcml6b250YWxD
b25zdHJhaW50cyhnZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKSkg
fTsKKyAgICBhdXRvIHVzZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMg
eyBHZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94
KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpKSB9OwogICAgIGF1dG8gY29tcHV0ZWRWZXJ0
aWNhbE1hcmdpbiA9IGdlb21ldHJ5KCkuY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gs
IHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICBhdXRvIHVzZWROb25Db2xsYXBzZWRNYXJnaW4g
PSBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1dGVkVmVydGlj
YWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCksIGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYWZ0ZXIu
dmFsdWVPcigwKSB9OwogICAgIGF1dG8gZXN0aW1hdGVkTWFyZ2luQmVmb3JlID0gbWFyZ2luQ29s
bGFwc2UoKS5lc3RpbWF0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94LCB1c2VkTm9uQ29sbGFwc2Vk
TWFyZ2luKTsKQEAgLTQyMCw3ICs0MjIsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVQogdm9p
ZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJv
eCYgbGF5b3V0Qm94KQogewogICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5ID0gZ2Vv
bWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSk7Ci0gICAgYXV0byB1c2Vk
SG9yaXpvbnRhbFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgR2VvbWV0cnk6OmluRmxv
d0hvcml6b250YWxDb25zdHJhaW50cyhjb250YWluaW5nQmxvY2tHZW9tZXRyeSkgfTsKKyAgICBh
dXRvIHVzZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBHZW9tZXRy
eTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5
KSB9OwogICAgIGF1dG8gY29tcHV0ZSA9IFsmXShhdXRvIHVzZWRWZXJ0aWNhbFZhbHVlcykgLT4g
Q29udGVudEhlaWdodEFuZE1hcmdpbiB7CiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3co
KSkKICAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmluRmxvd0hlaWdodEFuZE1hcmdpbihs
YXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKaW5kZXggYTUyOTY1M2UxMzJh
MjM1NzA0NDg1NTBiNjQyMjg4OTYxNTVjYWYyOC4uMDE1ZTQ3ZGYyOTU2MzZjZWM0NWY2ZDJmY2Vi
NjdiNmYyMmU1OGUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3Mu
Y3BwCkBAIC04Miw3ICs4Miw3IEBAIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4gQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29uCiAgICAgICAgIC8v
IEhlcmUgaXMgdGhlIHF1aXJreSBwYXJ0IGZvciBib2R5IGJveDoKICAgICAgICAgLy8gU3RyZXRj
aCB0aGUgYm9keSB1c2luZyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrJ3MgaGVpZ2h0IGFu
ZCBzaHJpbmsgaXQgd2l0aCBkb2N1bWVudCBib3gncyBtYXJnaW4vYm9yZGVyL3BhZGRpbmcuCiAg
ICAgICAgIC8vIFRoaXMgbG9va3MgZXh0cmVtZWx5IG9kZCB3aGVuIGh0bWwgaGFzIG5vbi1hdXRv
IGhlaWdodC4KLSAgICAgICAgYXV0byBkb2N1bWVudEJveFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0
dGluZ0NvbnRleHQuZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGRvY3VtZW50Qm94
LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IEdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFsQ29uc3Ry
YWludHMoaW5pdGlhbENvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KSB9KTsKKyAgICAgICAgYXV0byBk
b2N1bWVudEJveFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKS5j
b21wdXRlZFZlcnRpY2FsTWFyZ2luKGRvY3VtZW50Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7
IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coaW5pdGlhbENvbnRhaW5p
bmdCbG9ja0dlb21ldHJ5KSB9KTsKICAgICAgICAgc3RyZWNoZWRIZWlnaHQgLT0gKGRvY3VtZW50
Qm94VmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCkgKyBkb2N1bWVudEJveFZlcnRpY2Fs
TWFyZ2luLmFmdGVyLnZhbHVlT3IoMCkpOwogCiAgICAgICAgIGF1dG8mIGJvZHlCb3hHZW9tZXRy
eSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29s
bGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01h
cmdpbkNvbGxhcHNlLmNwcAppbmRleCBmZTNmMmVjNzQ5ZDg3ZmJiZTExZTAxYTAwODBiYzNiNzg4
MDIyYmE5Li5hZTA2YjE2ZDZhZTE3MTUyZTEzZjY0OTY2YTg3ODQwMTIxYzJkZmRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29s
bGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTUxMiw3ICs1MTIsNyBAQCBQb3NpdGl2ZUFuZE5lZ2F0
aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5D
b2xsYXBzZQogICAgICAgICByZXR1cm4gbWFyZ2luVHlwZSA9PSBNYXJnaW5UeXBlOjpCZWZvcmUg
PyBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4uYmVmb3JlIDogcG9zaXRpdmVBbmRO
ZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmFmdGVyOyAKICAgICB9CiAgICAgLy8gVGhpcyBpcyB0aGUg
ZXN0aW1hdGUgcGF0aC4gV2UgZG9uJ3QgeWV0IGhhdmUgcG9zaXRpdmUvbmVnYXRpdmUgbWFyZ2lu
IGNvbXB1dGVkLgotICAgIGF1dG8gdXNlZFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsg
R2VvbWV0cnk6OmluRmxvd0hvcml6b250YWxDb25zdHJhaW50cyhmb3JtYXR0aW5nQ29udGV4dCgp
Lmdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpKSB9OworICAgIGF1
dG8gdXNlZFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgR2VvbWV0cnk6Omhvcml6b250
YWxDb25zdHJhaW50c0ZvckluRmxvdyhmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94
KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpKSB9OwogICAgIGF1dG8gY29tcHV0ZWRWZXJ0
aWNhbE1hcmdpbiA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRp
Y2FsTWFyZ2luKGxheW91dEJveCwgdXNlZFZhbHVlcyk7CiAgICAgYXV0byBub25Db2xsYXBzZWRN
YXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1dGVk
VmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCksIGNvbXB1dGVkVmVydGljYWxNYXJnaW4u
YWZ0ZXIudmFsdWVPcigwKSB9OyAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CmluZGV4IDEzM2I5NzA5ZjA1ZTQ4Y2UxYmNiMzc4OTA2YzQwNDkzMWViZDFhYWQuLjVjNjRkNzY1
ZjA5Y2Y1MTk4MzFmZjNlNGJhYWU1M2Q4YTUxNDk0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHAKQEAgLTE0Myw3ICsxNDMsMTAgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KGNvbnN0IEJveCYgZm9ybWF0dGlu
Z0MKICAgICAgICAgLy8gQ29tZSBiYWNrIGFuZCBmaW5hbGl6ZSB0aGUgcm9vdCdzIGhlaWdodCBh
bmQgbWFyZ2luLgogICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKHJvb3RDb250YWluZXIs
IHVzZWRIb3Jpem9udGFsVmFsdWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwogICAgICAgICAvLyBO
b3cgdGhhdCB3ZSBjb21wdXRlZCB0aGUgcm9vdCdzIGhlaWdodCwgd2UgY2FuIGdvIGJhY2sgYW5k
IGxheW91dCB0aGUgb3V0LW9mLWZsb3cgY29udGVudC4KLSAgICAgICAgZm9ybWF0dGluZ0NvbnRl
eHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUpOworICAgICAgICBh
dXRvJiByb290Q29udGFpbmVyRGlzcGxheUJveCA9IGdlb21ldHJ5Rm9yQm94KHJvb3RDb250YWlu
ZXIpOworICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxvdyA9ICBH
ZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KHJvb3RDb250YWluZXJE
aXNwbGF5Qm94KTsKKyAgICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93
ID0gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cocm9vdENvbnRhaW5l
ckRpc3BsYXlCb3gpOworICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93
Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZG
bG93LCB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KTsKICAgICB9IGVsc2UKICAgICAg
ICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihmb3JtYXR0aW5nQ29udGV4dFJvb3QsIHVzZWRIb3Jp
em9udGFsVmFsdWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5jcHAKaW5kZXggNDdkYmI5N2VmZmYyOTgyODBiMjAzNDBkMjk4NjE2MmNlMGRmZTYz
MC4uMjZiOGZjMjY3NDYzM2IyNmVlMWUwOTY5N2YwZTY4NGNlZDNmYzgwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgVGFibGVGb3JtYXR0
aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxp
ZGF0aW9uCiAKIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0VGFibGVDZWxsQm94
KGNvbnN0IEJveCYgY2VsbExheW91dEJveCwgY29uc3QgVGFibGVHcmlkOjpDb2x1bW4mIGNvbHVt
biwgSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRlKQogewotICAgIGF1dG8gaG9y
aXpvbnRhbENvbnN0cmFpbnRzID0gR2VvbWV0cnk6OmluRmxvd0hvcml6b250YWxDb25zdHJhaW50
cyhnZW9tZXRyeUZvckJveCgqY2VsbExheW91dEJveC5jb250YWluaW5nQmxvY2soKSkpOworICAg
IGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJh
aW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY2VsbExheW91dEJveC5jb250YWluaW5nQmxv
Y2soKSkpOwogICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNlbGxMYXlvdXRCb3gsIGhvcml6
b250YWxDb25zdHJhaW50cyk7CiAgICAgLy8gTWFyZ2lucyBkbyBub3QgYXBwbHkgdG8gaW50ZXJu
YWwgdGFibGUgZWxlbWVudHMuCiAgICAgYXV0byYgY2VsbERpc3BsYXlCb3ggPSBmb3JtYXR0aW5n
U3RhdGUoKS5kaXNwbGF5Qm94KGNlbGxMYXlvdXRCb3gpOwpAQCAtMTExLDcgKzExMSw3IEBAIHZv
aWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0VGFibGVDZWxsQm94KGNvbnN0IEJveCYg
Y2VsbExheW91dEJveCwgY29uc3QKIAogICAgIEFTU0VSVChjZWxsTGF5b3V0Qm94LmVzdGFibGlz
aGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICBpZiAoaXM8Q29udGFpbmVyPihjZWxs
TGF5b3V0Qm94KSkKLSAgICAgICAgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRl
eHQoZG93bmNhc3Q8Q29udGFpbmVyPihjZWxsTGF5b3V0Qm94KSwgbGF5b3V0U3RhdGUoKSktPmxh
eW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIEdlb21ldHJ5OjppbkZsb3dIb3Jp
em9udGFsQ29uc3RyYWludHMoY2VsbERpc3BsYXlCb3gpKTsKKyAgICAgICAgTGF5b3V0Q29udGV4
dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoZG93bmNhc3Q8Q29udGFpbmVyPihjZWxsTGF5b3V0
Qm94KSwgbGF5b3V0U3RhdGUoKSktPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3Rh
dGUsIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coY2VsbERpc3BsYXlC
b3gpKTsKICAgICBjZWxsRGlzcGxheUJveC5zZXRWZXJ0aWNhbE1hcmdpbih7IHsgfSwgeyB9IH0p
OwogICAgIGNlbGxEaXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoZ2VvbWV0cnkoKS50YWJs
ZUNlbGxIZWlnaHRBbmRNYXJnaW4oY2VsbExheW91dEJveCkuY29udGVudEhlaWdodCk7CiAgICAg
Ly8gRklYTUU6IENoZWNrIHdoYXQgdG8gZG8gd2l0aCBvdXQtb2YtZmxvdyBjb250ZW50Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387236</attachid>
            <date>2020-01-09 08:50:22 -0800</date>
            <delta_ts>2020-01-09 09:37:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205892-20200109085022.patch</filename>
            <type>text/plain</type>
            <size>31246</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY0NjVlYTA4NGYzZjkx
M2UzZWNjZmU5MjY1OTk1YTk0MmU3NDRhYi4uZDkzZDU1Nzk5MzVmODg4ZjM4NmQ1YWZkMGJlMzAx
NDY0MmJiZTcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIwLTAxLTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQgc2hvdWxkIHRha2UgaG9yaXpvbnRhbCBhbmQg
dmVydGljYWwgY29uc3RyYWludHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU4OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4Mzg5ODAyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFRoZSBjYWxs
ZXIgc2hvdWxkIHByb3ZpZGUgdGhlIGhvcml6b250YWwvdmVydGljYWwgY29uc3RyYWludHMgZm9y
IHRoZSB0aGUgb3V0LW9mLWZsb3cgYm94ZXMuIEl0IGhlbHBzIHRvIG1ha2Ugc3VyZSB0aGF0IHdl
IGRvbid0IGFjY2VzcyBnZW9tZXRyeSBpbmZvcm1hdGlvbgorICAgICAgICBpbiB0aGUgcGFyZW50
IGZvcm1hdHRpbmcgY29udGV4dC4KKworICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9m
Rmxvd0NvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oOgorICAg
ICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpob3Jpem9udGFsQ29u
c3RyYWludHNGb3JPdXRPZkZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omhv
cml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxv
dyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6b3V0T2ZGbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0
aWNhbENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmluRmxvd1ZlcnRpY2FsQ29uc3RyYWludHMpOiBEZWxldGVkLgorICAgICAgICAqIGxh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmhlaWdodFZhbHVlT2ZOZWFyZXN0Q29udGFp
bmluZ0Jsb2NrV2l0aEZpeGVkSGVpZ2h0KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dENvbnRleHQ6OmxheW91dEZv
cm1hdHRpbmdDb250ZXh0U3VidHJlZSk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdD
b250ZXh0Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OnBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2Fs
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnN0cmV0Y2hlZEluRmxv
d0hlaWdodCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNv
bGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgorICAg
ICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdCk6CisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0
dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0VGFibGVDZWxsQm94KToKKwogMjAyMC0w
MS0wOSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTjogWyBNYWMgd2syIF0gZmFzdC9tZWRpYXN0cmVhbS9jYXB0dXJlSW5HUFVQcm9jZXNzLmh0
bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAppbmRleCAwOWE0YjQ1YWFkNTExMzAxMWEyMWI2YjAwNTE3NTMzOTM0NzJhZWVm
Li43ZWY3NDNlOTliMTFmM2UxNWQwZjRhZWY0ZjE1OTkzZWM5M2U4NmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTY2LDE3ICs2NiwxNyBAQCBM
YXlvdXRTdGF0ZSYgRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dFN0YXRlKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGUubGF5b3V0U3RhdGUoKTsKIH0KIAotdm9pZCBGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gm
IGxheW91dEJveCkKK3ZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jp
em9udGFsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFs
VmFsdWVzOjpDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBVc2VkVmVy
dGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzJiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQogewotICAgIGF1
dG8mIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5j
b250YWluaW5nQmxvY2soKSk7Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGNvbnRh
aW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hXaWR0aCgpOworICAgIEFTU0VSVChsYXlvdXRC
b3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOworICAgIGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVz
ID0gVXNlZFZlcnRpY2FsVmFsdWVzIHsgdmVydGljYWxDb25zdHJhaW50cywgeyB9IH07CiAKICAg
ICBhdXRvIGNvbXB1dGUgPSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoKSB7Ci0g
ICAgICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7
IEdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoY29udGFpbmluZ0Jsb2Nr
R2VvbWV0cnkpLCB1c2VkV2lkdGgsIHsgfSB9OwotICAgICAgICBhdXRvIHVzZWRWZXJ0aWNhbFZh
bHVlcyA9IFVzZWRWZXJ0aWNhbFZhbHVlcyB7IEdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNhbENv
bnN0cmFpbnRzKGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KSwgeyB9IH07CisgICAgICAgIGF1dG8g
dXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxD
b25zdHJhaW50cywgdXNlZFdpZHRoLCB7IH0gfTsKICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCku
b3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1
ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7CiAgICAgfTsKIAorICAgIGF1dG8gY29udGFpbmluZ0Js
b2NrV2lkdGggPSBob3Jpem9udGFsQ29uc3RyYWludHMud2lkdGg7CiAgICAgYXV0byBob3Jpem9u
dGFsR2VvbWV0cnkgPSBjb21wdXRlKHsgfSk7CiAgICAgaWYgKGF1dG8gbWF4V2lkdGggPSBnZW9t
ZXRyeSgpLmNvbXB1dGVkTWF4V2lkdGgobGF5b3V0Qm94LCBjb250YWluaW5nQmxvY2tXaWR0aCkp
IHsKICAgICAgICAgYXV0byBtYXhIb3Jpem9udGFsR2VvbWV0cnkgPSBjb21wdXRlKG1heFdpZHRo
KTsKQEAgLTk3LDI4ICs5NywyNCBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0
T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIGRpc3Bs
YXlCb3guc2V0SG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKGhvcml6b250YWxHZW9tZXRyeS5jb250
ZW50V2lkdGhBbmRNYXJnaW4uY29tcHV0ZWRNYXJnaW4pOwogfQogCi12b2lkIEZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91
dEJveCkKK3ZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdl
b21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6
Q29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cywgY29uc3QgVXNlZFZlcnRpY2FsVmFs
dWVzOjpDb25zdHJhaW50cyYgdmVydGljYWxDb25zdHJhaW50cykKIHsKLSAgICBhdXRvIGNvbXB1
dGUgPSBbJl0oYXV0byB1c2VkSG9yaXpvbnRhbFZhbHVlcywgYXV0byB1c2VkVmVydGljYWxWYWx1
ZXMpIHsKKyAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKKyAg
ICBhdXRvIGNvbXB1dGUgPSBbJl0oY29uc3QgYXV0byYgdXNlZEhvcml6b250YWxWYWx1ZXMsIGNv
bnN0IGF1dG8mIHVzZWRWZXJ0aWNhbFZhbHVlcykgewogICAgICAgICByZXR1cm4gZ2VvbWV0cnko
KS5vdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1
ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7CiAgICAgfTsKLSAgICBhdXRvJiBjb250YWluaW5nQmxv
Y2tHZW9tZXRyeSA9IGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkp
OwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrSGVpZ2h0ID0gY29udGFpbmluZ0Jsb2NrR2VvbWV0
cnkucGFkZGluZ0JveEhlaWdodCgpOwogCi0gICAgYXV0byB1c2VkVmVydGljYWxWYWx1ZXNGb3JI
ZWlnaHQgPSBVc2VkVmVydGljYWxWYWx1ZXMgeyBHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxD
b25zdHJhaW50cyhjb250YWluaW5nQmxvY2tHZW9tZXRyeSksIHsgfSB9OwotICAgIGF1dG8gdXNl
ZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IEdlb21ldHJ5OjpvdXRP
ZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpIH07Ci0K
LSAgICBhdXRvIHZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHVzZWRIb3Jpem9udGFsVmFsdWVz
LCB1c2VkVmVydGljYWxWYWx1ZXNGb3JIZWlnaHQpOworICAgIGF1dG8gdXNlZEhvcml6b250YWxW
YWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50cyB9Owor
ICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrSGVpZ2h0ID0gKnZlcnRpY2FsQ29uc3RyYWludHMuaGVp
Z2h0OworICAgIGF1dG8gdmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUodXNlZEhvcml6b250YWxW
YWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB7IHZlcnRpY2FsQ29uc3RyYWludHMsIHsgfSB9KTsK
ICAgICBpZiAoYXV0byBtYXhIZWlnaHQgPSBnZW9tZXRyeSgpLmNvbXB1dGVkTWF4SGVpZ2h0KGxh
eW91dEJveCwgY29udGFpbmluZ0Jsb2NrSGVpZ2h0KSkgewotICAgICAgICBhdXRvIHVzZWRWYWx1
ZXNGb3JNYXhIZWlnaHQgPSBVc2VkVmVydGljYWxWYWx1ZXMgeyBHZW9tZXRyeTo6b3V0T2ZGbG93
VmVydGljYWxDb25zdHJhaW50cyhjb250YWluaW5nQmxvY2tHZW9tZXRyeSksIG1heEhlaWdodCB9
OwotICAgICAgICBhdXRvIG1heFZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHVzZWRIb3Jpem9u
dGFsVmFsdWVzLCB1c2VkVmFsdWVzRm9yTWF4SGVpZ2h0KTsKKyAgICAgICAgYXV0byBtYXhWZXJ0
aWNhbEdlb21ldHJ5ID0gY29tcHV0ZSh1c2VkSG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2Fs
VmFsdWVzIHsgdmVydGljYWxDb25zdHJhaW50cywgbWF4SGVpZ2h0IH0pOwogICAgICAgICBpZiAo
dmVydGljYWxHZW9tZXRyeS5jb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNvbnRlbnRIZWlnaHQgPiBt
YXhWZXJ0aWNhbEdlb21ldHJ5LmNvbnRlbnRIZWlnaHRBbmRNYXJnaW4uY29udGVudEhlaWdodCkK
ICAgICAgICAgICAgIHZlcnRpY2FsR2VvbWV0cnkgPSBtYXhWZXJ0aWNhbEdlb21ldHJ5OwogICAg
IH0KIAogICAgIGlmIChhdXRvIG1pbkhlaWdodCA9IGdlb21ldHJ5KCkuY29tcHV0ZWRNaW5IZWln
aHQobGF5b3V0Qm94LCBjb250YWluaW5nQmxvY2tIZWlnaHQpKSB7Ci0gICAgICAgIGF1dG8gdXNl
ZFZhbHVlc0Zvck1pbkhlaWdodCA9IFVzZWRWZXJ0aWNhbFZhbHVlcyB7IEdlb21ldHJ5OjpvdXRP
ZkZsb3dWZXJ0aWNhbENvbnN0cmFpbnRzKGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KSwgbWluSGVp
Z2h0IH07Ci0gICAgICAgIGF1dG8gbWluVmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUodXNlZEhv
cml6b250YWxWYWx1ZXMsIHVzZWRWYWx1ZXNGb3JNaW5IZWlnaHQpOworICAgICAgICBhdXRvIG1p
blZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVy
dGljYWxWYWx1ZXMgeyB2ZXJ0aWNhbENvbnN0cmFpbnRzLCBtaW5IZWlnaHQgfSk7CiAgICAgICAg
IGlmICh2ZXJ0aWNhbEdlb21ldHJ5LmNvbnRlbnRIZWlnaHRBbmRNYXJnaW4uY29udGVudEhlaWdo
dCA8IG1pblZlcnRpY2FsR2VvbWV0cnkuY29udGVudEhlaWdodEFuZE1hcmdpbi5jb250ZW50SGVp
Z2h0KQogICAgICAgICAgICAgdmVydGljYWxHZW9tZXRyeSA9IG1pblZlcnRpY2FsR2VvbWV0cnk7
CiAgICAgfQpAQCAtMTM4LDI5ICsxMzQsNDggQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUJvcmRlckFuZFBhZGRpbmcoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWQKICAg
ICBkaXNwbGF5Qm94LnNldFBhZGRpbmcoZ2VvbWV0cnkoKS5jb21wdXRlZFBhZGRpbmcobGF5b3V0
Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50IH0pKTsKIH0K
IAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlk
YXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUpCit2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojps
YXlvdXRPdXRPZkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0
ZSwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzJiByb290SG9yaXpvbnRh
bENvbnN0cmFpbnRzLCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzJiByb290
VmVydGljYWxDb25zdHJhaW50cykKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0Nv
bnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiU3RhcnQ6IGxheW91dCBvdXQtb2YtZmxvdyBjb250ZW50
IC0+IGNvbnRleHQ6ICIgPDwgJmxheW91dFN0YXRlKCkgPDwgIiByb290OiAiIDw8ICZyb290KCkp
OwogCiAgICAgY29sbGVjdE91dE9mRmxvd0Rlc2NlbmRhbnRzSWZOZWVkZWQoKTsKIAorICAgIGF1
dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Qm94ID0gWyZdIChjb25zdCBhdXRv
JiBvdXRPZkZsb3dCb3gpIHsKKyAgICAgICAgYXV0byogY29udGFpbmluZ0Jsb2NrID0gb3V0T2ZG
bG93Qm94LmNvbnRhaW5pbmdCbG9jaygpOworICAgICAgICBBU1NFUlQoY29udGFpbmluZ0Jsb2Nr
KTsKKyAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jayA9PSAmcm9vdCgpKQorICAgICAgICAgICAg
cmV0dXJuIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHM7CisgICAgICAgIHJldHVybiBHZW9tZXRy
eTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KGdlb21ldHJ5Rm9yQm94KCpjb250
YWluaW5nQmxvY2spKTsKKyAgICB9OworCisgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9y
T3V0T2ZGbG93Qm94ID0gWyZdIChjb25zdCBhdXRvJiBvdXRPZkZsb3dCb3gpIHsKKyAgICAgICAg
YXV0byogY29udGFpbmluZ0Jsb2NrID0gb3V0T2ZGbG93Qm94LmNvbnRhaW5pbmdCbG9jaygpOwor
ICAgICAgICBBU1NFUlQoY29udGFpbmluZ0Jsb2NrKTsKKyAgICAgICAgaWYgKGNvbnRhaW5pbmdC
bG9jayA9PSAmcm9vdCgpKQorICAgICAgICAgICAgcmV0dXJuIHJvb3RWZXJ0aWNhbENvbnN0cmFp
bnRzOworICAgICAgICByZXR1cm4gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRP
ZkZsb3coZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaykpOworICAgIH07CisKICAgICBm
b3IgKGF1dG8mIG91dE9mRmxvd0JveCA6IGZvcm1hdHRpbmdTdGF0ZSgpLm91dE9mRmxvd0JveGVz
KCkpIHsKICAgICAgICAgQVNTRVJUKG91dE9mRmxvd0JveC0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5n
Q29udGV4dCgpKTsKICAgICAgICAgaWYgKCFpbnZhbGlkYXRpb25TdGF0ZS5uZWVkc0xheW91dCgq
b3V0T2ZGbG93Qm94KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGF1dG8gY29u
c3RyYWludHMgPSBHZW9tZXRyeTo6aW5GbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGdlb21ldHJ5
Rm9yQm94KCpvdXRPZkZsb3dCb3gtPmNvbnRhaW5pbmdCbG9jaygpKSk7Ci0gICAgICAgIGNvbXB1
dGVCb3JkZXJBbmRQYWRkaW5nKCpvdXRPZkZsb3dCb3gsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAg
Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94KTsKKyAgICAg
ICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBob3Jpem9udGFsQ29uc3RyYWludHNGb3JP
dXRPZkZsb3dCb3goKm91dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8gdmVydGljYWxDb25zdHJh
aW50cyA9IHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3dCb3goKm91dE9mRmxvd0JveCk7
CisgICAgICAgIC8vIEJvcmRlcnMgYW5kIHBhZGRpbmdzIGFyZSByZXNvbHZlZCBhZ2FpbnN0IHRo
ZSBjb250YWluaW5nIGJsb2NrJ3MgY29udGVudCBib3ggbGlrZSBpZiB0aGlzIGJveCB3YXMgYW4g
aW4tZmxvdyBib3guCisgICAgICAgIGF1dG8mIG91dE9mRmxvd1Jvb3REaXNwbGF5Qm94ID0gZ2Vv
bWV0cnlGb3JCb3goKm91dE9mRmxvd0JveCk7CisgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRk
aW5nKCpvdXRPZkZsb3dCb3gsIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZs
b3cob3V0T2ZGbG93Um9vdERpc3BsYXlCb3gpKTsKKyAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hv
cml6b250YWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZl
cnRpY2FsQ29uc3RyYWludHMpOwogICAgICAgICBpZiAoaXM8Q29udGFpbmVyPigqb3V0T2ZGbG93
Qm94KSkgewogICAgICAgICAgICAgYXV0byYgb3V0T2ZGbG93Um9vdENvbnRhaW5lciA9IGRvd25j
YXN0PENvbnRhaW5lcj4oKm91dE9mRmxvd0JveCk7Ci0gICAgICAgICAgICBhdXRvJiBvdXRPZkZs
b3dSb290RGlzcGxheUJveCA9IGdlb21ldHJ5Rm9yQm94KG91dE9mRmxvd1Jvb3RDb250YWluZXIp
OwogICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KG91dE9mRmxvd1Jvb3RDb250YWluZXIsIGxheW91dFN0YXRl
KCkpOwotICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQo
aW52YWxpZGF0aW9uU3RhdGUsIEdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMo
b3V0T2ZGbG93Um9vdERpc3BsYXlCb3gpKTsKLSAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dW
ZXJ0aWNhbEdlb21ldHJ5KG91dE9mRmxvd1Jvb3RDb250YWluZXIpOwotICAgICAgICAgICAgZm9y
bWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUp
OworICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52
YWxpZGF0aW9uU3RhdGUsIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3co
b3V0T2ZGbG93Um9vdERpc3BsYXlCb3gpKTsKKyAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dW
ZXJ0aWNhbEdlb21ldHJ5KG91dE9mRmxvd1Jvb3RDb250YWluZXIsIGhvcml6b250YWxDb25zdHJh
aW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CisKKyAgICAgICAgICAgIGZvcm1hdHRpbmdDb250
ZXh0LT5sYXlvdXRPdXRPZkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBHZW9tZXRyeTo6
aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KG91dE9mRmxvd1Jvb3REaXNwbGF5Qm94KSwg
R2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JJbkZsb3cob3V0T2ZGbG93Um9vdERpc3Bs
YXlCb3gpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjb21wdXRlT3V0T2ZGbG93VmVy
dGljYWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94KTsKKyAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZs
b3dWZXJ0aWNhbEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywg
dmVydGljYWxDb25zdHJhaW50cyk7CiAgICAgfQogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0
aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJFbmQ6IGxheW91dCBvdXQtb2YtZmxvdyBjb250
ZW50IC0+IGNvbnRleHQ6ICIgPDwgJmxheW91dFN0YXRlKCkgPDwgIiByb290OiAiIDw8ICZyb290
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAw
OThhZDE4YTk4YzcwMDJkY2ExYTViMDA5OWU5NjZlNTkwYjE1Nzc1Li43MmIwY2FlMzMwMTU2YmY1
OTNiZjUxNGYzYzBkYzhlZjMxOGE1MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHQuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Rm9y
bWF0dGluZ0NvbnRleHQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXRJbkZsb3dDb250ZW50
KEludmFsaWRhdGlvblN0YXRlJiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFp
bnRzJikgPSAwOwotICAgIHZvaWQgbGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25T
dGF0ZSYpOworICAgIHZvaWQgbGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0
ZSYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyYsIGNvbnN0IFVzZWRW
ZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMmKTsKIAogICAgIHN0cnVjdCBJbnRyaW5zaWNXaWR0
aENvbnN0cmFpbnRzIHsKICAgICAgICAgdm9pZCBleHBhbmQoTGF5b3V0VW5pdCBob3Jpem9udGFs
VmFsdWUpOwpAQCAtMTQyLDEwICsxNDIsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExheW91
dFVuaXQgY29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmKSBj
b25zdDsKIAotICAgICAgICBzdGF0aWMgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRz
IG91dE9mRmxvd0hvcml6b250YWxDb25zdHJhaW50cyhjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRh
aW5pbmdCbG9ja0dlb21ldHJ5KTsKLSAgICAgICAgc3RhdGljIFVzZWRWZXJ0aWNhbFZhbHVlczo6
Q29uc3RyYWludHMgb3V0T2ZGbG93VmVydGljYWxDb25zdHJhaW50cyhjb25zdCBEaXNwbGF5OjpC
b3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KTsKLSAgICAgICAgc3RhdGljIFVzZWRIb3Jpem9u
dGFsVmFsdWVzOjpDb25zdHJhaW50cyBpbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoY29uc3Qg
RGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSk7Ci0gICAgICAgIHN0YXRpYyBV
c2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzIGluRmxvd1ZlcnRpY2FsQ29uc3RyYWludHMo
Y29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSk7CisgICAgICAgIHN0
YXRpYyBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgaG9yaXpvbnRhbENvbnN0cmFp
bnRzRm9yT3V0T2ZGbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0
cnkpOworICAgICAgICBzdGF0aWMgVXNlZFZlcnRpY2FsVmFsdWVzOjpDb25zdHJhaW50cyB2ZXJ0
aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmlu
Z0Jsb2NrR2VvbWV0cnkpOworICAgICAgICBzdGF0aWMgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNv
bnN0cmFpbnRzIGhvcml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhjb25zdCBEaXNwbGF5OjpC
b3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KTsKKyAgICAgICAgc3RhdGljIFVzZWRWZXJ0aWNh
bFZhbHVlczo6Q29uc3RyYWludHMgdmVydGljYWxDb25zdHJhaW50c0ZvckluRmxvdyhjb25zdCBE
aXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KTsKIAogICAgIHByb3RlY3RlZDoK
ICAgICAgICAgZnJpZW5kIGNsYXNzIEZvcm1hdHRpbmdDb250ZXh0OwpAQCAtMTk3LDggKzE5Nyw4
IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbGxlY3RPdXRPZkZsb3dEZXNj
ZW5kYW50c0lmTmVlZGVkKCk7Ci0gICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9t
ZXRyeShjb25zdCBCb3gmKTsKLSAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9udGFsR2Vv
bWV0cnkoY29uc3QgQm94Jik7CisgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9t
ZXRyeShjb25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMm
LCBjb25zdCBVc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzJik7CisgICAgdm9pZCBjb21w
dXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jp
em9udGFsVmFsdWVzOjpDb25zdHJhaW50cyYsIGNvbnN0IFVzZWRWZXJ0aWNhbFZhbHVlczo6Q29u
c3RyYWludHMmKTsKIAogICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyPiBtX3Jvb3Q7CiAgICAg
Rm9ybWF0dGluZ1N0YXRlJiBtX2Zvcm1hdHRpbmdTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCA5YjNlYTAwZmVk
NzE4YzhjNGRiNDU1MWJhNDk5YzIxYTlmM2QxMmZlLi40YTJlMGNlYTNhZjAxNzIzOGExNGU5ZTNj
M2NlNDY2OGFjNWJmOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0xMTA3LDIyICsxMTA3LDIyIEBAIEZvcm1hdHRp
bmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6Y29uc3RyCiAgICAgcmV0dXJuIGludHJpbnNpY1dpZHRoOwogfQogCi1Vc2VkSG9y
aXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpv
dXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWlu
aW5nQmxvY2tHZW9tZXRyeSkKK1VzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxv
dyhjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQogewogICAgIHJl
dHVybiBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBjb250YWluaW5nQmxvY2tH
ZW9tZXRyeS5wYWRkaW5nQm94TGVmdCgpLCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5wYWRkaW5n
Qm94V2lkdGgoKSB9OwogfQogCi1Vc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzIEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxDb25zdHJhaW50cyhjb25z
dCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQorVXNlZFZlcnRpY2FsVmFs
dWVzOjpDb25zdHJhaW50cyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnZlcnRpY2FsQ29u
c3RyYWludHNGb3JPdXRPZkZsb3coY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tH
ZW9tZXRyeSkKIHsKICAgICByZXR1cm4gVXNlZFZlcnRpY2FsVmFsdWVzOjpDb25zdHJhaW50cyB7
IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hUb3AoKSwgY29udGFpbmluZ0Jsb2Nr
R2VvbWV0cnkucGFkZGluZ0JveEhlaWdodCgpIH07CiB9CiAKLVVzZWRIb3Jpem9udGFsVmFsdWVz
OjpDb25zdHJhaW50cyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd0hvcml6b250
YWxDb25zdHJhaW50cyhjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5
KQorVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGNvbnN0IERpc3BsYXk6OkJv
eCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpCiB7CiAgICAgcmV0dXJuIFVzZWRIb3Jpem9udGFs
VmFsdWVzOjpDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hM
ZWZ0KCksIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hXaWR0aCgpIH07CiB9CiAK
LVVzZWRWZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjppbkZsb3dWZXJ0aWNhbENvbnN0cmFpbnRzKGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFp
bmluZ0Jsb2NrR2VvbWV0cnkpCitVc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzIEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxvdyhjb25z
dCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQogewogICAgIHJldHVybiBV
c2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnku
Y29udGVudEJveFRvcCgpLCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94SGVpZ2h0
KCkgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dFF1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRR
dWlya3MuY3BwCmluZGV4IDdiNjkzMmFjZGRhYjg3MzY5M2JlMTJlNGZhMGFiYjc4MjY3ZmNjMDEu
LjA5M2MyZDgyYzA1NTJmZDg1YmI0OTM2YjEyZTQyYmU2MDMzMTgyNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcApAQCAtNTEsNyAr
NTEsNyBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmhlaWdodFZhbHVl
T2ZOZWFyZXN0Q29udGFpbmluZ0Jsb2NrV2l0aEZpeAogICAgICAgICAgICAgYXV0byYgYm94R2Vv
bWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2Nr
LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzQW5jZXN0b3JGb3JtYXR0aW5n
Q29udGV4dCk7CiAKICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3gg
PSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLT5jb250
YWluaW5nQmxvY2soKSwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVR5cGU6OkFjY2Vzc0FuY2Vz
dG9yRm9ybWF0dGluZ0NvbnRleHQpOwotICAgICAgICAgICAgYXV0byB1c2VkVmFsdWVzID0gVXNl
ZEhvcml6b250YWxWYWx1ZXMgeyBHZW9tZXRyeTo6aW5GbG93SG9yaXpvbnRhbENvbnN0cmFpbnRz
KGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3gpIH07CisgICAgICAgICAgICBhdXRvIHVzZWRWYWx1
ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWlu
dHNGb3JJbkZsb3coY29udGFpbmluZ0Jsb2NrRGlzcGxheUJveCkgfTsKICAgICAgICAgICAgIGF1
dG8gdmVydGljYWxNYXJnaW4gPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeSgpLmNvbXB1dGVk
VmVydGljYWxNYXJnaW4oKmNvbnRhaW5pbmdCbG9jaywgdXNlZFZhbHVlcyk7CiAgICAgICAgICAg
ICBhdXRvIHZlcnRpY2FsUGFkZGluZyA9IGJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52YWx1ZU9y
KDApICsgYm94R2VvbWV0cnkucGFkZGluZ0JvdHRvbSgpLnZhbHVlT3IoMCk7CiAgICAgICAgICAg
ICBhdXRvIHZlcnRpY2FsQm9yZGVyID0gYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9t
ZXRyeS5ib3JkZXJCb3R0b20oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cAppbmRleCA4OGZkYzc3ZTkzOGM1MGU5Mzc0YmNhMDZjYTRmNDVhNTc3YmI5M2UyLi4xNjliZDQz
YzdkYzA0ZTk3MjZlYjlmYzhlMzA2MjA3NTFiMTUzNGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dENvbnRleHQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTGF5b3V0VHJl
ZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRhYmxlRm9ybWF0dGlu
Z1N0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTg4LDE1ICs4
OSwyMyBAQCB2b2lkIExheW91dENvbnRleHQ6OmxheW91dFdpdGhQcmVwYXJlZFJvb3RHZW9tZXRy
eShJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aQogICAgICAgICBsYXlvdXRGb3JtYXR0aW5n
Q29udGV4dFN1YnRyZWUoZm9ybWF0dGluZ0NvbnRleHRSb290LCBpbnZhbGlkYXRpb25TdGF0ZSk7
CiB9CiAKLQogdm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRy
ZWUoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIEludmFsaWRhdGlvblN0
YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChmb3JtYXR0aW5n
Q29udGV4dFJvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICBhdXRvIGZv
cm1hdHRpbmdDb250ZXh0ID0gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0dGluZ0NvbnRl
eHRSb290LCBsYXlvdXRTdGF0ZSgpKTsKLSAgICBhdXRvJiBkaXNwbGF5Qm94Rm9yRm9ybWF0dGlu
Z0NvbnRleHRSb290ID0gbGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGZvcm1h
dHRpbmdDb250ZXh0Um9vdCk7Ci0gICAgYXV0byBjb25zdHJhaW50cyA9IFVzZWRIb3Jpem9udGFs
VmFsdWVzOjpDb25zdHJhaW50cyB7IGRpc3BsYXlCb3hGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3Qu
Y29udGVudEJveExlZnQoKSwgZGlzcGxheUJveEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdC5jb250
ZW50Qm94V2lkdGgoKSB9OwotICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dDb250
ZW50KGludmFsaWRhdGlvblN0YXRlLCBjb25zdHJhaW50cyk7Ci0gICAgZm9ybWF0dGluZ0NvbnRl
eHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUpOworICAgIGF1dG8m
IGRpc3BsYXlCb3ggPSBsYXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goZm9ybWF0
dGluZ0NvbnRleHRSb290KTsKKworICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dD
b250ZW50KGludmFsaWRhdGlvblN0YXRlLCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWlu
dHMgeyBkaXNwbGF5Qm94LmNvbnRlbnRCb3hMZWZ0KCksIGRpc3BsYXlCb3guY29udGVudEJveFdp
ZHRoKCkgfSk7CisKKyAgICAvLyBGSVhNRTogbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVl
KCkgZG9lcyBub3QgcGVyZm9ybSBsYXlvdXQgb24gdGhlIHJvb3QsIHJhdGhlciBpdCBsYXlzIG91
dCB0aGUgcm9vdCdzIGNvbnRlbnQuCisgICAgLy8gSXQgY29uc3RydWN0cyBhbiBGQyBmb3IgZGVz
Y2VuZGFudCBib3hlcyBhbmQgcnVucyBsYXlvdXQgb24gdGhlbS4gVGhlIGZvcm1hdHRpbmdDb250
ZXh0Um9vdCBpcyBsYWlkIG91dCBpbiB0aGUgRkMgaW4gd2hpY2ggaXQgbGl2ZXMgKHBhcmVudCBm
b3JtYXR0aW5nIGNvbnRleHQpLgorICAgIC8vIEl0IGFsc28gbWVhbnMgdGhhdCB0aGUgZm9ybWF0
dGluZ0NvbnRleHRSb290IGhhcyB0byBoYXZlIGEgdmFsaWQvY2xlYW4gZ2VvbWV0cnkgYXQgdGhp
cyBwb2ludC4KKyAgICAvLyBDdXJyZW50bHkgdGhlIGludGVncmF0aW9uIGNvZGVwYXRoIGRvZXMg
bm90IGd1YXJhbnRlZSBpdCBhbmQgdGhhdCdzIGZpbmUgYXMgbG9uZyBhcyB3ZSBsYXlvdXQgaW5m
bG93IGNvbnRlbnQgb25seS4KKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkg
eworICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IFVzZWRIb3Jpem9udGFsVmFs
dWVzOjpDb25zdHJhaW50cyB7IGRpc3BsYXlCb3gucGFkZGluZ0JveExlZnQoKSwgZGlzcGxheUJv
eC5wYWRkaW5nQm94V2lkdGgoKSB9OworICAgICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWludHMg
PSBVc2VkVmVydGljYWxWYWx1ZXM6OkNvbnN0cmFpbnRzIHsgZGlzcGxheUJveC5wYWRkaW5nQm94
VG9wKCksIGRpc3BsYXlCb3gucGFkZGluZ0JveEhlaWdodCgpIH07CisgICAgICAgIGZvcm1hdHRp
bmdDb250ZXh0LT5sYXlvdXRPdXRPZkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBob3Jp
em9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOworICAgIH0KIH0KIAogc3Rk
Ojp1bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3Jt
YXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgTGF5
b3V0U3RhdGUmIGxheW91dFN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggZTdhODAyNGIwODI4NDA4ZDA4MzZiZTFiNmQwYTlmNmNiNjYwZWQzYi4uZjFkNGFhZDdkMDBh
MTkxMjEwNmVhOTRmY2JlOTBmMTNiMTI1OTcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5
b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAgICAgICAg
IEFTU0VSVChjb250YWluaW5nQmxvY2spOwogICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrID09
ICZmb3JtYXR0aW5nUm9vdCkKICAgICAgICAgICAgIHJldHVybiByb290SG9yaXpvbnRhbENvbnN0
cmFpbnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6OmluRmxvd0hvcml6b250YWxDb25zdHJh
aW50cyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSk7CisgICAgICAgIHJldHVybiBH
ZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpj
b250YWluaW5nQmxvY2spKTsKICAgICB9OwogICAgIC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVyIHRy
ZWUgdHJhdmVyc2FsIGxheW91dC4KICAgICAvLyBUaGUgcm9vdCBjb250YWluZXIgbGF5b3V0IGlz
IGRvbmUgaW4gdGhlIGZvcm1hdHRpbmcgY29udGV4dCBpdCBsaXZlcyBpbiwgbm90IHRoYXQgb25l
IGl0IGNyZWF0ZXMsIHNvIGxldCdzIHN0YXJ0IHdpdGggdGhlIGZpcnN0IGNoaWxkLgpAQCAtMjAx
LDExICsyMDEsMTMgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRGb3JtYXR0
aW5nQ29udGV4dFJvb3QoRmxvYXRpbmdDb250ZXh0JiBmbG9hdGkKICAgICAgICAgYXV0byYgcm9v
dENvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lcj4obGF5b3V0Qm94KTsKICAgICAgICAgYXV0
byYgcm9vdENvbnRhaW5lckRpc3BsYXlCb3ggPSBnZW9tZXRyeUZvckJveChyb290Q29udGFpbmVy
KTsKICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0
ZUZvcm1hdHRpbmdDb250ZXh0KHJvb3RDb250YWluZXIsIGxheW91dFN0YXRlKCkpOwotICAgICAg
ICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0SW5GbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0
ZSwgR2VvbWV0cnk6OmluRmxvd0hvcml6b250YWxDb25zdHJhaW50cyhyb290Q29udGFpbmVyRGlz
cGxheUJveCkpOworICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0SW5GbG93Q29udGVu
dChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0Zvcklu
Rmxvdyhyb290Q29udGFpbmVyRGlzcGxheUJveCkpOwogICAgICAgICAvLyBDb21lIGJhY2sgYW5k
IGZpbmFsaXplIHRoZSByb290J3MgZ2VvbWV0cnkuCiAgICAgICAgIGNvbXB1dGVIZWlnaHRBbmRN
YXJnaW4ocm9vdENvbnRhaW5lcik7CiAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGNvbXB1dGVkIHRo
ZSByb290J3MgaGVpZ2h0LCB3ZSBjYW4gZ28gYmFjayBhbmQgbGF5b3V0IHRoZSBvdXQtb2YtZmxv
dyBjb250ZW50LgotICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29u
dGVudChpbnZhbGlkYXRpb25TdGF0ZSk7CisgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFp
bnRzRm9yT3V0T2ZGbG93ID0gIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRP
ZkZsb3cocm9vdENvbnRhaW5lckRpc3BsYXlCb3gpOworICAgICAgICBhdXRvIHZlcnRpY2FsQ29u
c3RyYWludHNGb3JPdXRPZkZsb3cgPSBHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0Zvck91
dE9mRmxvdyhyb290Q29udGFpbmVyRGlzcGxheUJveCk7CisgICAgICAgIGZvcm1hdHRpbmdDb250
ZXh0LT5sYXlvdXRPdXRPZkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBob3Jpem9udGFs
Q29uc3RyYWludHNGb3JPdXRPZkZsb3csIHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cp
OwogICAgIH0gZWxzZQogICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCk7
CiAgICAgLy8gRmxvYXQgcmVsYXRlZCBmaW5hbCBwb3NpdGlvbmluZy4KQEAgLTIyOCw3ICsyMzAs
NyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNlSW5GbG93UG9zaXRpb25lZENo
aWxkcmVuKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgYXV0byBjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uID0gWyZdIHsKLSAgICAg
ICAgICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7
IEdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMoZ2VvbWV0cnlGb3JCb3goKmNo
aWxkQm94LmNvbnRhaW5pbmdCbG9jaygpKSkgfTsKKyAgICAgICAgICAgIGF1dG8gdXNlZEhvcml6
b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IEdlb21ldHJ5Ojpob3Jpem9udGFs
Q29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JCb3goKmNoaWxkQm94LmNvbnRhaW5pbmdC
bG9jaygpKSkgfTsKICAgICAgICAgICAgIGF1dG8gcG9zaXRpb25PZmZzZXQgPSBnZW9tZXRyeSgp
LmluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbk9mZnNldChjaGlsZEJveCwgdXNlZEhvcml6b250YWxW
YWx1ZXMpOwogCiAgICAgICAgICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gZm9ybWF0dGluZ1N0YXRl
KCkuZGlzcGxheUJveChjaGlsZEJveCk7CkBAIC0yNjcsNyArMjY5LDcgQEAgdm9pZCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250
ZXh0JiBmbG9hdGkKIAogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1h
dGVkVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmIGxheW91dEJveCkKIHsKLSAgICBhdXRvIHVz
ZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBHZW9tZXRyeTo6aW5G
bG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFp
bmluZ0Jsb2NrKCkpKSB9OworICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9y
aXpvbnRhbFZhbHVlcyB7IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3co
Z2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkpIH07CiAgICAgYXV0
byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFy
Z2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIGF1dG8gdXNlZE5vbkNv
bGxhcHNlZE1hcmdpbiA9IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHsg
Y29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVPcigwKSwgY29tcHV0ZWRWZXJ0aWNh
bE1hcmdpbi5hZnRlci52YWx1ZU9yKDApIH07CiAgICAgYXV0byBlc3RpbWF0ZWRNYXJnaW5CZWZv
cmUgPSBtYXJnaW5Db2xsYXBzZSgpLmVzdGltYXRlZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gsIHVz
ZWROb25Db2xsYXBzZWRNYXJnaW4pOwpAQCAtNDIwLDcgKzQyMiw3IEBAIHZvaWQgQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBVCiB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRN
YXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgYXV0byYgY29udGFpbmluZ0Jsb2Nr
R2VvbWV0cnkgPSBnZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKTsK
LSAgICBhdXRvIHVzZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBH
ZW9tZXRyeTo6aW5GbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGNvbnRhaW5pbmdCbG9ja0dlb21l
dHJ5KSB9OworICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZh
bHVlcyB7IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coY29udGFpbmlu
Z0Jsb2NrR2VvbWV0cnkpIH07CiAgICAgYXV0byBjb21wdXRlID0gWyZdKGF1dG8gdXNlZFZlcnRp
Y2FsVmFsdWVzKSAtPiBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIHsKICAgICAgICAgaWYgKGxheW91
dEJveC5pc0luRmxvdygpKQogICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuaW5GbG93SGVp
Z2h0QW5kTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRWZXJ0aWNh
bFZhbHVlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRl
eCBhNTI5NjUzZTEzMmEyMzU3MDQ0ODU1MGI2NDIyODg5NjE1NWNhZjI4Li4wMTVlNDdkZjI5NTYz
NmNlYzQ1ZjZkMmZjZWI2N2I2ZjIyZTU4ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dFF1aXJrcy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgQ29udGVudEhlaWdodEFuZE1hcmdp
biBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnN0cmV0Y2hlZEluRmxvd0hlaWdodChj
b24KICAgICAgICAgLy8gSGVyZSBpcyB0aGUgcXVpcmt5IHBhcnQgZm9yIGJvZHkgYm94OgogICAg
ICAgICAvLyBTdHJldGNoIHRoZSBib2R5IHVzaW5nIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxv
Y2sncyBoZWlnaHQgYW5kIHNocmluayBpdCB3aXRoIGRvY3VtZW50IGJveCdzIG1hcmdpbi9ib3Jk
ZXIvcGFkZGluZy4KICAgICAgICAgLy8gVGhpcyBsb29rcyBleHRyZW1lbHkgb2RkIHdoZW4gaHRt
bCBoYXMgbm9uLWF1dG8gaGVpZ2h0LgotICAgICAgICBhdXRvIGRvY3VtZW50Qm94VmVydGljYWxN
YXJnaW4gPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJn
aW4oZG9jdW1lbnRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgR2VvbWV0cnk6OmluRmxvd0hv
cml6b250YWxDb25zdHJhaW50cyhpbml0aWFsQ29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpIH0pOwor
ICAgICAgICBhdXRvIGRvY3VtZW50Qm94VmVydGljYWxNYXJnaW4gPSBmb3JtYXR0aW5nQ29udGV4
dC5nZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4oZG9jdW1lbnRCb3gsIFVzZWRIb3Jp
em9udGFsVmFsdWVzIHsgR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhp
bml0aWFsQ29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpIH0pOwogICAgICAgICBzdHJlY2hlZEhlaWdo
dCAtPSAoZG9jdW1lbnRCb3hWZXJ0aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVPcigwKSArIGRvY3Vt
ZW50Qm94VmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSk7CiAKICAgICAgICAgYXV0byYg
Ym9keUJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0
Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4IGZlM2YyZWM3NDlkODdmYmJlMTFl
MDFhMDA4MGJjM2I3ODgwMjJiYTkuLmFlMDZiMTZkNmFlMTcxNTJlMTNmNjQ5NjZhODc4NDAxMjFj
MmRmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtNTEyLDcgKzUxMiw3IEBAIFBv
c2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6Ok1hcmdpbkNvbGxhcHNlCiAgICAgICAgIHJldHVybiBtYXJnaW5UeXBlID09IE1hcmdp
blR5cGU6OkJlZm9yZSA/IHBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5iZWZvcmUg
OiBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4uYWZ0ZXI7IAogICAgIH0KICAgICAv
LyBUaGlzIGlzIHRoZSBlc3RpbWF0ZSBwYXRoLiBXZSBkb24ndCB5ZXQgaGF2ZSBwb3NpdGl2ZS9u
ZWdhdGl2ZSBtYXJnaW4gY29tcHV0ZWQuCi0gICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6
b250YWxWYWx1ZXMgeyBHZW9tZXRyeTo6aW5GbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGZvcm1h
dHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2so
KSkpIH07CisgICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBHZW9t
ZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGZvcm1hdHRpbmdDb250ZXh0KCku
Z2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkpIH07CiAgICAgYXV0
byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeSgp
LmNvbXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKICAgICBhdXRv
IG5vbkNvbGxhcHNlZE1hcmdpbiA9IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFs
dWVzIHsgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVPcigwKSwgY29tcHV0ZWRW
ZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDApIH07IAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggMTMzYjk3MDlmMDVlNDhjZTFiY2IzNzg5MDZjNDA0OTMxZWJk
MWFhZC4uNWM2NGQ3NjVmMDljZjUxOTgzMWZmM2U0YmFhZTUzZDhhNTE0OTQzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTQzLDcgKzE0MywxMCBAQCB2b2lkIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QoY29uc3Qg
Qm94JiBmb3JtYXR0aW5nQwogICAgICAgICAvLyBDb21lIGJhY2sgYW5kIGZpbmFsaXplIHRoZSBy
b290J3MgaGVpZ2h0IGFuZCBtYXJnaW4uCiAgICAgICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4o
cm9vdENvbnRhaW5lciwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7
CiAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGNvbXB1dGVkIHRoZSByb290J3MgaGVpZ2h0LCB3ZSBj
YW4gZ28gYmFjayBhbmQgbGF5b3V0IHRoZSBvdXQtb2YtZmxvdyBjb250ZW50LgotICAgICAgICBm
b3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0
ZSk7CisgICAgICAgIGF1dG8mIHJvb3RDb250YWluZXJEaXNwbGF5Qm94ID0gZ2VvbWV0cnlGb3JC
b3gocm9vdENvbnRhaW5lcik7CisgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9y
T3V0T2ZGbG93ID0gIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRPZkZsb3co
cm9vdENvbnRhaW5lckRpc3BsYXlCb3gpOworICAgICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWlu
dHNGb3JPdXRPZkZsb3cgPSBHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0Zvck91dE9mRmxv
dyhyb290Q29udGFpbmVyRGlzcGxheUJveCk7CisgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5s
YXlvdXRPdXRPZkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBob3Jpem9udGFsQ29uc3Ry
YWludHNGb3JPdXRPZkZsb3csIHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cpOwogICAg
IH0gZWxzZQogICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGZvcm1hdHRpbmdDb250ZXh0
Um9vdCwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0
dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9U
YWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA0N2RiYjk3ZWZmZjI5ODI4MGIyMDM0MGQy
OTg2MTYyY2UwZGZlNjMwLi4yNmI4ZmMyNjc0NjMzYjI2ZWUxZTA5Njk3ZjBlNjg0Y2VkM2ZjODAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgdm9p
ZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlv
blN0YXRlJiBpbnZhbGlkYXRpb24KIAogdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXRUYWJsZUNlbGxCb3goY29uc3QgQm94JiBjZWxsTGF5b3V0Qm94LCBjb25zdCBUYWJsZUdyaWQ6
OkNvbHVtbiYgY29sdW1uLCBJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUpCiB7
Ci0gICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBHZW9tZXRyeTo6aW5GbG93SG9yaXpv
bnRhbENvbnN0cmFpbnRzKGdlb21ldHJ5Rm9yQm94KCpjZWxsTGF5b3V0Qm94LmNvbnRhaW5pbmdC
bG9jaygpKSk7CisgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBHZW9tZXRyeTo6aG9y
aXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjZWxsTGF5b3V0Qm94
LmNvbnRhaW5pbmdCbG9jaygpKSk7CiAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY2VsbExh
eW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKICAgICAvLyBNYXJnaW5zIGRvIG5vdCBh
cHBseSB0byBpbnRlcm5hbCB0YWJsZSBlbGVtZW50cy4KICAgICBhdXRvJiBjZWxsRGlzcGxheUJv
eCA9IGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3goY2VsbExheW91dEJveCk7CkBAIC0xMTEs
NyArMTExLDcgQEAgdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRUYWJsZUNlbGxC
b3goY29uc3QgQm94JiBjZWxsTGF5b3V0Qm94LCBjb25zdAogCiAgICAgQVNTRVJUKGNlbGxMYXlv
dXRCb3guZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogICAgIGlmIChpczxD
b250YWluZXI+KGNlbGxMYXlvdXRCb3gpKQotICAgICAgICBMYXlvdXRDb250ZXh0OjpjcmVhdGVG
b3JtYXR0aW5nQ29udGV4dChkb3duY2FzdDxDb250YWluZXI+KGNlbGxMYXlvdXRCb3gpLCBsYXlv
dXRTdGF0ZSgpKS0+bGF5b3V0SW5GbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0
cnk6OmluRmxvd0hvcml6b250YWxDb25zdHJhaW50cyhjZWxsRGlzcGxheUJveCkpOworICAgICAg
ICBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChkb3duY2FzdDxDb250YWlu
ZXI+KGNlbGxMYXlvdXRCb3gpLCBsYXlvdXRTdGF0ZSgpKS0+bGF5b3V0SW5GbG93Q29udGVudChp
bnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0ZvckluRmxv
dyhjZWxsRGlzcGxheUJveCkpOwogICAgIGNlbGxEaXNwbGF5Qm94LnNldFZlcnRpY2FsTWFyZ2lu
KHsgeyB9LCB7IH0gfSk7CiAgICAgY2VsbERpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChn
ZW9tZXRyeSgpLnRhYmxlQ2VsbEhlaWdodEFuZE1hcmdpbihjZWxsTGF5b3V0Qm94KS5jb250ZW50
SGVpZ2h0KTsKICAgICAvLyBGSVhNRTogQ2hlY2sgd2hhdCB0byBkbyB3aXRoIG91dC1vZi1mbG93
IGNvbnRlbnQuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>