<?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>213956</bug_id>
          
          <creation_ts>2020-07-04 08:31:59 -0700</creation_ts>
          <short_desc>[LFC] Do not cache computed horizontal margin values</short_desc>
          <delta_ts>2020-07-04 11:38:12 -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>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>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>1668783</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-04 08:31:59 -0700</bug_when>
    <thetext>they can always be re-computed if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668786</commentid>
    <comment_count>1</comment_count>
      <attachid>403524</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-07-04 08:47:11 -0700</bug_when>
    <thetext>Created attachment 403524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668810</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-04 11:37:48 -0700</bug_when>
    <thetext>Committed r263938: &lt;https://trac.webkit.org/changeset/263938&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403524.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668811</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-04 11:38:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/65097689&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403524</attachid>
            <date>2020-07-04 08:47:11 -0700</date>
            <delta_ts>2020-07-04 11:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213956-20200704084710.patch</filename>
            <type>text/plain</type>
            <size>30123</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk5MzkxNDNjMDY4YThj
YzcxYjcwYjY0NDkyNmE3YjgxN2FmM2U5MC4uMjc4ZjRmZTFlYjRiYzIyZWJjYmYwMmYyMmY4MWRj
OTIzMjNkM2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTA3LTA0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRG8gbm90IGNhY2hl
IGNvbXB1dGVkIGhvcml6b250YWwgbWFyZ2luIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3V0c2lkZSBvZiB0aGUgd2lkdGggKyBtYXJnaW4g
Y29tcHV0YXRpb24sIGNvbXB1dGVkIGhvcml6b250YWwgbWFyZ2luIHZhbHVlcyBhcmUgb25seSBy
ZXF1aXJlZCBieQorICAgICAgICBmbG9hdCBwb3NpdGlvbmluZy4gTGV0J3MganVzdCByZS1jb21w
dXRlZCB0aGVtIG9uIGRlbWFuZCAod2hpY2ggaXMgYmFzaWNhbGx5IGp1c3QgYSBzdHlsZS5tYXJn
aW5TdGFydC9lbmQgcmVzb2x2ZSkuCisKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeSk6CisgICAgICAgICogbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdl
b21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeSk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25S
ZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAg
ICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dENvbnRleHQ6OmxheW91dCk6CisgICAgICAgICogbGF5b3V0L0xheW91dFVuaXRz
Lmg6CisgICAgICAgICogbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6Om91dHB1dE1pc21hdGNoaW5nQmxvY2tCb3hJbmZvcm1hdGlvbklmTmVlZGVkKToK
KyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAg
KiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxh
Y2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFi
bGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlV2lkdGhBbmRNYXJnaW5Gb3JUYWJsZUJveCk6CisgICAgICAgICogbGF5b3V0L2Rpc3Bs
YXl0cmVlL0Rpc3BsYXlCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpC
b3gpOgorICAgICAgICAqIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94Lmg6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNldEhhc1ZhbGlkVmVydGljYWxOb25Db2xsYXBzZWRN
YXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNWYWxpZEhvcml6
b250YWxDb21wdXRlZE1hcmdpbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
OjpCb3g6OkNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbjo6Q29tcHV0ZWRIb3Jpem9udGFsTWFyZ2lu
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0SG9yaXpvbnRh
bENvbXB1dGVkTWFyZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJv
eDo6Y29tcHV0ZWRNYXJnaW5TdGFydCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5OjpCb3g6OmNvbXB1dGVkTWFyZ2luRW5kIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OmNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6cG9zaXRpb25Gb3JGbG9hdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6cG9zaXRpb25Gb3JOb25GbG9hdGlu
Z0Zsb2F0QXZvaWRlciBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0Nv
bnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlSG9yaXpvbnRhbE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4pOgor
ICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAq
IGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OnNldFVzZWRHZW9t
ZXRyeUZvclJvd3MpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdD
b250ZXh0OjpzZXRVc2VkR2VvbWV0cnlGb3JTZWN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dENlbGwpOgorCiAyMDIwLTA3LTA0
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gVXNlZCBk
ZWRpY2F0ZWQgcGFpbnQgbWFyZ2luIHN0cnVjdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDNiMzEyOTNhY2I4ZjMwM2JhMTliNjAxYjg1NDY1
ZGI4YjdmODI1OTIuLjY4YTY4Y2Y1YmVjODg2OTkwM2JkMDAyNDMxNmM3OGVlZjVkYTA0NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtOTQsNyAr
OTQsNiBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRh
bEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LAogICAgIGRpc3BsYXlCb3guc2V0TGVmdCho
b3Jpem9udGFsR2VvbWV0cnkubGVmdCArIGhvcml6b250YWxHZW9tZXRyeS5jb250ZW50V2lkdGhB
bmRNYXJnaW4udXNlZE1hcmdpbi5zdGFydCk7CiAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94
V2lkdGgoaG9yaXpvbnRhbEdlb21ldHJ5LmNvbnRlbnRXaWR0aEFuZE1hcmdpbi5jb250ZW50V2lk
dGgpOwogICAgIGRpc3BsYXlCb3guc2V0SG9yaXpvbnRhbE1hcmdpbih7IGhvcml6b250YWxHZW9t
ZXRyeS5jb250ZW50V2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbiB9KTsKLSAgICBkaXNwbGF5Qm94
LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbih7IGhvcml6b250YWxHZW9tZXRyeS5jb250ZW50
V2lkdGhBbmRNYXJnaW4uY29tcHV0ZWRNYXJnaW4gfSk7CiB9CiAKIHZvaWQgRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQmIGNvbnN0cmFpbnRzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwCmluZGV4IGJhOWRkMDcxNTk4NjY2YmQ4OGM1MmU5ZDIyMTU2MzM5NzBmNmRiMTkuLmViMTM5
NTkxMzUzMGFjYjBlZWMyNGZjZjU0ZjE5Mjg3MjdhMTBkMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTYwNSw3ICs2
MDUsNyBAQCBIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpv
dXRPZkZsb3dOb25SZXBsYWNlZEhvcml6b250YWxHZQogICAgICpyaWdodCArPSBjb250YWluaW5n
QmxvY2tQYWRkaW5nVmVydGljYWxFZGdlOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRp
bmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltQb3NpdGlvbl1bV2lkdGhdW01hcmdpbl0gLT4g
b3V0LW9mLWZsb3cgbm9uLXJlcGxhY2VkIC0+IGxlZnQoIiA8PCAqbGVmdCA8PCAicHgpIHJpZ2h0
KCIgIDw8ICpyaWdodCA8PCAicHgpIHdpZHRoKCIgPDwgKndpZHRoIDw8ICJweCkgbWFyZ2luKCIg
PDwgdXNlZEhvcml6b250YWxNYXJnaW4uc3RhcnQgPDwgInB4LCAiICA8PCB1c2VkSG9yaXpvbnRh
bE1hcmdpbi5lbmQgPDwgInB4KSBsYXlvdXRCb3goIiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0g
ICAgcmV0dXJuIHsgKmxlZnQsICpyaWdodCwgeyAqd2lkdGgsIHVzZWRIb3Jpem9udGFsTWFyZ2lu
LCBjb21wdXRlZEhvcml6b250YWxNYXJnaW4gfSB9OworICAgIHJldHVybiB7ICpsZWZ0LCAqcmln
aHQsIHsgKndpZHRoLCB1c2VkSG9yaXpvbnRhbE1hcmdpbiB9IH07CiB9CiAKIFZlcnRpY2FsR2Vv
bWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRp
Y2FsR2VvbWV0cnkoY29uc3QgUmVwbGFjZWRCb3gmIHJlcGxhY2VkQm94LCBjb25zdCBIb3Jpem9u
dGFsQ29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cywgY29uc3QgVmVydGljYWxDb25z
dHJhaW50cyYgdmVydGljYWxDb25zdHJhaW50cywgY29uc3QgT3ZlcnJpZGVWZXJ0aWNhbFZhbHVl
cyYgb3ZlcnJpZGVWZXJ0aWNhbFZhbHVlcykgY29uc3QKQEAgLTc5MSw3ICs3OTEsNyBAQCBIb3Jp
em9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBs
YWNlZEhvcml6b250YWxHZW9tZQogICAgICpyaWdodCArPSBjb250YWluaW5nQmxvY2tQYWRkaW5n
VmVydGljYWxFZGdlOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5
b3V0LCBzdHJlYW0gPDwgIltQb3NpdGlvbl1bV2lkdGhdW01hcmdpbl0gLT4gb3V0LW9mLWZsb3cg
cmVwbGFjZWQgLT4gbGVmdCgiIDw8ICpsZWZ0IDw8ICJweCkgcmlnaHQoIiAgPDwgKnJpZ2h0IDw8
ICJweCkgd2lkdGgoIiA8PCB3aWR0aCA8PCAicHgpIG1hcmdpbigiIDw8ICp1c2VkTWFyZ2luU3Rh
cnQgPDwgInB4LCAiICA8PCAqdXNlZE1hcmdpbkVuZCA8PCAicHgpIGxheW91dEJveCgiIDw8ICZy
ZXBsYWNlZEJveCA8PCAiKSIpOwotICAgIHJldHVybiB7ICpsZWZ0LCAqcmlnaHQsIHsgd2lkdGgs
IHsgKnVzZWRNYXJnaW5TdGFydCwgKnVzZWRNYXJnaW5FbmQgfSwgY29tcHV0ZWRIb3Jpem9udGFs
TWFyZ2luIH0gfTsKKyAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7IHdpZHRoLCB7ICp1c2Vk
TWFyZ2luU3RhcnQsICp1c2VkTWFyZ2luRW5kIH0gfSB9OwogfQogCiBDb250ZW50SGVpZ2h0QW5k
TWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcGxpY2F0ZWRDYXNlcyhjb25z
dCBCb3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFs
Q29uc3RyYWludHMsIGNvbnN0IE92ZXJyaWRlVmVydGljYWxWYWx1ZXMmIG92ZXJyaWRlVmVydGlj
YWxWYWx1ZXMpIGNvbnN0CkBAIC04NDQsNyArODQ0LDcgQEAgQ29udGVudFdpZHRoQW5kTWFyZ2lu
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZFdpZHRoQW5k
TWEKICAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRoKGxheW91dEJveCwgaG9yaXpvbnRh
bENvbnN0cmFpbnRzLmxvZ2ljYWxXaWR0aCk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0
dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW1dpZHRoXVtNYXJnaW5dIC0+IGZsb2F0aW5n
IG5vbi1yZXBsYWNlZCAtPiB3aWR0aCgiIDw8ICp3aWR0aCA8PCAicHgpIG1hcmdpbigiIDw8IHVz
ZWRIb3Jpem9udGFsbE1hcmdpbi5zdGFydCA8PCAicHgsICIgPDwgdXNlZEhvcml6b250YWxsTWFy
Z2luLmVuZCA8PCAicHgpIC0+IGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKLSAg
ICByZXR1cm4gQ29udGVudFdpZHRoQW5kTWFyZ2luIHsgKndpZHRoLCB1c2VkSG9yaXpvbnRhbGxN
YXJnaW4sIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiB9OworICAgIHJldHVybiBDb250ZW50V2lk
dGhBbmRNYXJnaW4geyAqd2lkdGgsIHVzZWRIb3Jpem9udGFsbE1hcmdpbiB9OwogfQogCiBDb250
ZW50SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdS
ZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdCBSZXBsYWNlZEJveCYgcmVwbGFjZWRCb3gsIGNv
bnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBP
dmVycmlkZVZlcnRpY2FsVmFsdWVzJiBvdmVycmlkZVZlcnRpY2FsVmFsdWVzKSBjb25zdApAQCAt
MTAxMiw3ICsxMDEyLDcgQEAgQ29udGVudFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbigKICAgICBBU1NFUlQod2lk
dGgpOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJl
YW0gPDwgIltXaWR0aF1bTWFyZ2luXSAtPiBpbmZsb3cgcmVwbGFjZWQgLT4gd2lkdGgoIiA8PCAq
d2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCB1c2VkTWFyZ2luU3RhcnQoKSA8PCAicHgsICIgPDwg
dXNlZE1hcmdpbkVuZCgpIDw8ICJweCkgLT4gbGF5b3V0Qm94KCIgPDwgJnJlcGxhY2VkQm94IDw8
ICIpIik7Ci0gICAgcmV0dXJuIHsgKndpZHRoLCB7IHVzZWRNYXJnaW5TdGFydCgpLCB1c2VkTWFy
Z2luRW5kKCkgfSwgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luIH07CisgICAgcmV0dXJuIHsgKndp
ZHRoLCB7IHVzZWRNYXJnaW5TdGFydCgpLCB1c2VkTWFyZ2luRW5kKCkgfSB9OwogfQogCiBMYXlv
dXRTaXplIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93UG9zaXRpb25lZFBvc2l0
aW9uT2Zmc2V0KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWlu
dHMmIGhvcml6b250YWxDb25zdHJhaW50cykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRDb250ZXh0LmNwcAppbmRleCAyYjVhNGZhMTM2ZDE2MDE1MWIzYTBhYTllMDBlYzFmODgyOGVi
YmZhLi4zYjU2MTlmNzY0MDU1Mjk5ZGZlYTcyNzFkNzg2NjFlYTliOTVhZDA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCkBAIC02Niw3ICs2Niw2IEBAIHZvaWQgTGF5
b3V0Q29udGV4dDo6bGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RDb250ZW50Qm94U2l6ZSwg
SW52YWxpZGF0aW9uU3RhCiAgICAgLy8gd2UgY291bGQgbm90IGxheSBpdCBvdXQgZXZlbiBpZiB3
ZSB3YW50ZWQgdG8gc2luY2UgaXQncyBvdXRzaWRlIG9mIHRoaXMgTGF5b3V0Q29udGV4dC4KICAg
ICBhdXRvJiBkaXNwbGF5Qm94ID0gbGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94Rm9yUm9vdExheW91
dEJveCgpOwogICAgIGRpc3BsYXlCb3guc2V0SG9yaXpvbnRhbE1hcmdpbih7IH0pOwotICAgIGRp
c3BsYXlCb3guc2V0SG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKHsgfSk7CiAgICAgZGlzcGxheUJv
eC5zZXRWZXJ0aWNhbE1hcmdpbih7IH0pOwogICAgIGRpc3BsYXlCb3guc2V0Qm9yZGVyKHsgfSk7
CiAgICAgZGlzcGxheUJveC5zZXRQYWRkaW5nKHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRV
bml0cy5oCmluZGV4IGQ3YzgxYjVlYzk5NzE0Y2U1MTg4Yzg4YmIxMzZhYzVhZmUxZGQ5YzEuLmIx
ZWUxZGE3MGRiYWI1NjBkYzQ2ZWFmNzNlMzI0MjZjNjdlMzVhYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRVbml0cy5oCkBAIC0xMzgsNyArMTM4LDYgQEAgaW5saW5lIEVkZ2VzIG9wZXJhdG9y
Lyhjb25zdCBFZGdlcyYgZWRnZSwgc2l6ZV90IHZhbHVlKQogc3RydWN0IENvbnRlbnRXaWR0aEFu
ZE1hcmdpbiB7CiAgICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGg7CiAgICAgVXNlZEhvcml6b250
YWxNYXJnaW4gdXNlZE1hcmdpbjsKLSAgICBDb21wdXRlZEhvcml6b250YWxNYXJnaW4gY29tcHV0
ZWRNYXJnaW47CiB9OwogCiBzdHJ1Y3QgQ29udGVudEhlaWdodEFuZE1hcmdpbiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCmluZGV4IGQ2YThlNjA1YjZjZjZlYWNkOGQwNWJm
NjMzOTllMjY3MTJlODgwOGMuLjY5MDc1ZjM2MTdkMGU5NzRmZmEzNDgxNTA1MmFmNDRhOGZiNzNh
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCkBAIC0yMzIsMTQgKzIz
MiwyNyBAQCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ0Jsb2NrQm94SW5mb3JtYXRpb25J
Zk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbgogICAgICAgICBzdHJlYW0ubmV4dExpbmUo
KTsKICAgICB9OwogCi0gICAgYXV0byByZW5kZXJCb3hMaWtlTWFyZ2luQm94ID0gW10oYXV0byYg
ZGlzcGxheUJveCkgeworICAgIGF1dG8gcmVuZGVyQm94TGlrZU1hcmdpbkJveCA9IFsmXSAoYXV0
byYgZGlzcGxheUJveCkgeworICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5p
bmdCbG9jaygpKQorICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlCb3gucmVjdCgpOworCiAgICAg
ICAgIC8vIFByb2R1Y2UgYSBSZW5kZXJCb3ggbWF0Y2hpbmcgbWFyZ2luIGJveC4KLSAgICAgICAg
YXV0byBib3JkZXJCb3ggPSBkaXNwbGF5Qm94LmJvcmRlckJveCgpOworICAgICAgICBhdXRvIGNv
bnRhaW5pbmdCbG9ja1dpZHRoID0gY29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGxheW91
dEJveC5jb250YWluaW5nQmxvY2soKSkuY29udGVudEJveFdpZHRoKCk7CisgICAgICAgIGF1dG8g
bWFyZ2luU3RhcnQgPSBMYXlvdXRVbml0IHsgfTsKKyAgICAgICAgYXV0byYgbWFyZ2luU3RhcnRT
dHlsZSA9IGxheW91dEJveC5zdHlsZSgpLm1hcmdpblN0YXJ0KCk7CisgICAgICAgIGlmIChtYXJn
aW5TdGFydFN0eWxlLmlzRml4ZWQoKSB8fCBtYXJnaW5TdGFydFN0eWxlLmlzUGVyY2VudCgpIHx8
IG1hcmdpblN0YXJ0U3R5bGUuaXNDYWxjdWxhdGVkKCkpCisgICAgICAgICAgICBtYXJnaW5TdGFy
dCA9IHZhbHVlRm9yTGVuZ3RoKG1hcmdpblN0YXJ0U3R5bGUsIGNvbnRhaW5pbmdCbG9ja1dpZHRo
KTsKIAorICAgICAgICBhdXRvIG1hcmdpbkVuZCA9IExheW91dFVuaXQgeyB9OworICAgICAgICBh
dXRvJiBtYXJnaW5FbmRTdHlsZSA9IGxheW91dEJveC5zdHlsZSgpLm1hcmdpbkVuZCgpOworICAg
ICAgICBpZiAobWFyZ2luRW5kU3R5bGUuaXNGaXhlZCgpIHx8IG1hcmdpbkVuZFN0eWxlLmlzUGVy
Y2VudCgpIHx8IG1hcmdpbkVuZFN0eWxlLmlzQ2FsY3VsYXRlZCgpKQorICAgICAgICAgICAgbWFy
Z2luRW5kID0gdmFsdWVGb3JMZW5ndGgobWFyZ2luRW5kU3R5bGUsIGNvbnRhaW5pbmdCbG9ja1dp
ZHRoKTsKKworICAgICAgICBhdXRvIGJvcmRlckJveCA9IGRpc3BsYXlCb3guYm9yZGVyQm94KCk7
CiAgICAgICAgIHJldHVybiBEaXNwbGF5OjpSZWN0IHsKICAgICAgICAgICAgIGJvcmRlckJveC50
b3AoKSAtIGRpc3BsYXlCb3gubm9uQ29sbGFwc2VkTWFyZ2luQmVmb3JlKCksCi0gICAgICAgICAg
ICBib3JkZXJCb3gubGVmdCgpIC0gZGlzcGxheUJveC5jb21wdXRlZE1hcmdpblN0YXJ0KCkudmFs
dWVPcigwKSwKLSAgICAgICAgICAgIGRpc3BsYXlCb3guY29tcHV0ZWRNYXJnaW5TdGFydCgpLnZh
bHVlT3IoMCkgKyBib3JkZXJCb3gud2lkdGgoKSArIGRpc3BsYXlCb3guY29tcHV0ZWRNYXJnaW5F
bmQoKS52YWx1ZU9yKDApLAorICAgICAgICAgICAgYm9yZGVyQm94LmxlZnQoKSAtIG1hcmdpblN0
YXJ0LAorICAgICAgICAgICAgbWFyZ2luU3RhcnQgKyBib3JkZXJCb3gud2lkdGgoKSArIG1hcmdp
bkVuZCwKICAgICAgICAgICAgIGRpc3BsYXlCb3gubm9uQ29sbGFwc2VkTWFyZ2luQmVmb3JlKCkg
KyBib3JkZXJCb3guaGVpZ2h0KCkgKyBkaXNwbGF5Qm94Lm5vbkNvbGxhcHNlZE1hcmdpbkFmdGVy
KCkKICAgICAgICAgfTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggZjdkMjY1NjQ4MzY4Zjg0OWYwMTE3ZDk3ZTdlMTBlYjlhZThhMzIzZS4uZGIxZGM1ZTQ1NmI3
ZGQzNTM0NWNmZWEwYmY5NmEyMmI0MzA2NDc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYKICAgICAg
ICAgcmV0dXJuIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0Nv
bnRleHQsIGxheW91dEJveCk7CiAKICAgICBBU1NFUlQobGF5b3V0Qm94LmVzdGFibGlzaGVzRm9y
bWF0dGluZ0NvbnRleHQoKSk7Ci0gICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlv
dXRCb3gpLnNldFRvcExlZnQoZmxvYXRpbmdDb250ZXh0LnBvc2l0aW9uRm9yTm9uRmxvYXRpbmdG
bG9hdEF2b2lkZXIobGF5b3V0Qm94KSk7CisgICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJv
eChsYXlvdXRCb3gpLnNldFRvcExlZnQoZmxvYXRpbmdDb250ZXh0LnBvc2l0aW9uRm9yTm9uRmxv
YXRpbmdGbG9hdEF2b2lkZXIobGF5b3V0Qm94LCBjb25zdHJhaW50c1BhaXIuY29udGFpbmluZ0Js
b2NrLmhvcml6b250YWwpKTsKIH0KIAogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiBm
bG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpAQCAtMzI3LDcgKzMyNyw2IEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0
IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpCiAgICAgYXV0byYgZGlzcGxheUJveCA9IGZvcm1hdHRp
bmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KTsKICAgICBkaXNwbGF5Qm94LnNldENvbnRl
bnRCb3hXaWR0aChjb250ZW50V2lkdGhBbmRNYXJnaW4uY29udGVudFdpZHRoKTsKICAgICBkaXNw
bGF5Qm94LnNldEhvcml6b250YWxNYXJnaW4oeyBjb250ZW50V2lkdGhBbmRNYXJnaW4udXNlZE1h
cmdpbiB9KTsKLSAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbihjb250
ZW50V2lkdGhBbmRNYXJnaW4uY29tcHV0ZWRNYXJnaW4pOwogfQogCiB2b2lkIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCYgY29uc3RyYWludHMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggN2FlODRlNGY5YmI5
YmVmYWFkODIzYzVjMDA1OWQ3NThlZDQzYzE5Zi4uNzkzYWMxZWYzNTQ5MjYxZjIyODVlN2QxODBl
MWRiODhjN2E4ODE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21l
dHJ5LmNwcApAQCAtMjA0LDcgKzIwNCw3IEBAIENvbnRlbnRXaWR0aEFuZE1hcmdpbiBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuCiAgICAg
ICAgIH0KICAgICAgICAgQVNTRVJUKHdpZHRoKTsKIAotICAgICAgICByZXR1cm4gQ29udGVudFdp
ZHRoQW5kTWFyZ2luIHsgKndpZHRoLCB1c2VkSG9yaXpvbnRhbE1hcmdpbiwgY29tcHV0ZWRIb3Jp
em9udGFsTWFyZ2luIH07CisgICAgICAgIHJldHVybiBDb250ZW50V2lkdGhBbmRNYXJnaW4geyAq
d2lkdGgsIHVzZWRIb3Jpem9udGFsTWFyZ2luIH07CiAgICAgfTsKIAogICAgIGF1dG8gY29udGVu
dFdpZHRoQW5kTWFyZ2luID0gY29tcHV0ZSgpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIENvbnRlbnRX
aWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93UmVw
bGFjZWRXaWR0aEFuZE1hCiAgICAgYXV0byBub25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luID0gaW5G
bG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihyZXBsYWNlZEJveCwgaG9yaXpvbnRhbENvbnN0
cmFpbnRzLCBPdmVycmlkZUhvcml6b250YWxWYWx1ZXMgeyB1c2VkV2lkdGgsIG92ZXJyaWRlSG9y
aXpvbnRhbFZhbHVlcy5tYXJnaW4gfSk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGlu
Z0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW1dpZHRoXVtNYXJnaW5dIC0+IGluZmxvdyByZXBs
YWNlZCAtPiB3aWR0aCgiIDw8IHVzZWRXaWR0aCAgPDwgInB4KSBtYXJnaW4oIiA8PCBub25SZXBs
YWNlZFdpZHRoQW5kTWFyZ2luLnVzZWRNYXJnaW4uc3RhcnQgPDwgInB4LCAiIDw8IG5vblJlcGxh
Y2VkV2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbi5lbmQgPDwgInB4KSAtPiBsYXlvdXRCb3goIiA8
PCAmcmVwbGFjZWRCb3ggPDwgIikiKTsKLSAgICByZXR1cm4geyB1c2VkV2lkdGgsIG5vblJlcGxh
Y2VkV2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbiwgbm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbi5j
b21wdXRlZE1hcmdpbiB9OworICAgIHJldHVybiB7IHVzZWRXaWR0aCwgbm9uUmVwbGFjZWRXaWR0
aEFuZE1hcmdpbi51c2VkTWFyZ2luIH07CiB9CiAKIExheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OnN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiBsYXlv
dXRCb3gsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL3Rh
Ymxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBl
ckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGVhZTc3MDgyZmFkOWM4MDU0ODg0MDNk
ZTdkZjQ1NjAyZDU5MWU0MjIuLjgyYWZkOWI0NzRjYmYzNWI5MzRhYzhmNWQ3ZDllZGNjNjZhNTUx
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFi
bGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3Jh
cHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yMTAsNyArMjEwLDYgQEAgdm9pZCBU
YWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW5G
b3JUYWJsZUJveChjb25zdAogICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUo
KS5kaXNwbGF5Qm94KHRhYmxlQm94KTsKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0
aChjb250ZW50V2lkdGhBbmRNYXJnaW4uY29udGVudFdpZHRoKTsKICAgICBkaXNwbGF5Qm94LnNl
dEhvcml6b250YWxNYXJnaW4oY29udGVudFdpZHRoQW5kTWFyZ2luLnVzZWRNYXJnaW4pOwotICAg
IGRpc3BsYXlCb3guc2V0SG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKGNvbnRlbnRXaWR0aEFuZE1h
cmdpbi5jb21wdXRlZE1hcmdpbik7CiB9CiAKIHZvaWQgVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbkZvclRhYmxlQm94KGNvbnN0IENvbnRh
aW5lckJveCYgdGFibGVCb3gsIGNvbnN0IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCYgY29u
c3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUv
RGlzcGxheUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxh
eUJveC5jcHAKaW5kZXggODg3NTc2NmVjMzY0MDkxMmYyOTg4ZTU1YTg3MDQyMjk1ZDIyYTRmZC4u
MmI5MDk1MTNjMjhkZWQwY2NmMjgwYzlhODYzMTQzYWI3ZTE0MjgzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcApAQCAtNDEsNyArNDEs
NiBAQCBCb3g6OkJveChjb25zdCBCb3gmIG90aGVyKQogICAgICwgbV9jb250ZW50SGVpZ2h0KG90
aGVyLm1fY29udGVudEhlaWdodCkKICAgICAsIG1faG9yaXpvbnRhbE1hcmdpbihvdGhlci5tX2hv
cml6b250YWxNYXJnaW4pCiAgICAgLCBtX3ZlcnRpY2FsTWFyZ2luKG90aGVyLm1fdmVydGljYWxN
YXJnaW4pCi0gICAgLCBtX2hvcml6b250YWxDb21wdXRlZE1hcmdpbihvdGhlci5tX2hvcml6b250
YWxDb21wdXRlZE1hcmdpbikKICAgICAsIG1faGFzQ2xlYXJhbmNlKG90aGVyLm1faGFzQ2xlYXJh
bmNlKQogICAgICwgbV9ib3JkZXIob3RoZXIubV9ib3JkZXIpCiAgICAgLCBtX3BhZGRpbmcob3Ro
ZXIubV9wYWRkaW5nKQpAQCAtNTEsNyArNTAsNiBAQCBCb3g6OkJveChjb25zdCBCb3gmIG90aGVy
KQogICAgICwgbV9oYXNWYWxpZEhvcml6b250YWxNYXJnaW4ob3RoZXIubV9oYXNWYWxpZEhvcml6
b250YWxNYXJnaW4pCiAgICAgLCBtX2hhc1ZhbGlkVmVydGljYWxNYXJnaW4ob3RoZXIubV9oYXNW
YWxpZFZlcnRpY2FsTWFyZ2luKQogICAgICwgbV9oYXNWYWxpZFZlcnRpY2FsTm9uQ29sbGFwc2Vk
TWFyZ2luKG90aGVyLm1faGFzVmFsaWRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1hcmdpbikKLSAgICAs
IG1faGFzVmFsaWRIb3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4ob3RoZXIubV9oYXNWYWxpZEhvcml6
b250YWxDb21wdXRlZE1hcmdpbikKICAgICAsIG1faGFzVmFsaWRCb3JkZXIob3RoZXIubV9oYXNW
YWxpZEJvcmRlcikKICAgICAsIG1faGFzVmFsaWRQYWRkaW5nKG90aGVyLm1faGFzVmFsaWRQYWRk
aW5nKQogICAgICwgbV9oYXNWYWxpZENvbnRlbnRIZWlnaHQob3RoZXIubV9oYXNWYWxpZENvbnRl
bnRIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUv
RGlzcGxheUJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlC
b3guaAppbmRleCBjY2FiYWUzZjAwMzNkNjJhZmNlMjExYzU0MGM0ZTZhM2FhM2EwNjk5Li43MjMx
MWNkOGYxMmVlNmY2OTA0ZjdhZDljMDIzNDMyNTcwZmE3ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKQEAgLTkyLDE0ICs5Miw2IEBAIHB1
YmxpYzoKICAgICAgICAgQ29sbGFwc2VkVmFsdWVzIG1fY29sbGFwc2VkVmFsdWVzOwogICAgIH07
CiAKLSAgICBzdHJ1Y3QgQ29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luIHsKLSAgICAgICAgQ29tcHV0
ZWRIb3Jpem9udGFsTWFyZ2luKCkgPSBkZWZhdWx0OwotICAgICAgICBDb21wdXRlZEhvcml6b250
YWxNYXJnaW4oTGF5b3V0OjpDb21wdXRlZEhvcml6b250YWxNYXJnaW4pOwotCi0gICAgICAgIE9w
dGlvbmFsPExheW91dFVuaXQ+IHN0YXJ0OwotICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBl
bmQ7Ci0gICAgfTsKLQogICAgIHN0cnVjdCBIb3Jpem9udGFsTWFyZ2luIHsKICAgICAgICAgSG9y
aXpvbnRhbE1hcmdpbigpID0gZGVmYXVsdDsKICAgICAgICAgSG9yaXpvbnRhbE1hcmdpbihMYXlv
dXQ6OlVzZWRIb3Jpem9udGFsTWFyZ2luKTsKQEAgLTExOSw4ICsxMTEsNiBAQCBwdWJsaWM6CiAK
ICAgICBMYXlvdXRVbml0IG5vbkNvbGxhcHNlZE1hcmdpbkJlZm9yZSgpIGNvbnN0OwogICAgIExh
eW91dFVuaXQgbm9uQ29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSBjb25zdDsKLSAgICBPcHRpb25hbDxM
YXlvdXRVbml0PiBjb21wdXRlZE1hcmdpblN0YXJ0KCkgY29uc3Q7Ci0gICAgT3B0aW9uYWw8TGF5
b3V0VW5pdD4gY29tcHV0ZWRNYXJnaW5FbmQoKSBjb25zdDsKIAogICAgIExheW91dFVuaXQgYm9y
ZGVyVG9wKCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBib3JkZXJMZWZ0KCkgY29uc3Q7CkBAIC0x
ODIsNyArMTcyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRIb3Jpem9udGFsTWFyZ2luKEhv
cml6b250YWxNYXJnaW4pOwogICAgIHZvaWQgc2V0VmVydGljYWxNYXJnaW4oVmVydGljYWxNYXJn
aW4pOwotICAgIHZvaWQgc2V0SG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKENvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbik7CiAgICAgdm9pZCBzZXRIYXNDbGVhcmFuY2UoKSB7IG1faGFzQ2xlYXJhbmNl
ID0gdHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRCb3JkZXIoTGF5b3V0OjpFZGdlcyk7CkBAIC0yMDEs
NyArMTkwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEhhc1ZhbGlkTGVmdCgpIHsgbV9oYXNW
YWxpZExlZnQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRIYXNWYWxpZFZlcnRpY2FsTWFyZ2luKCkg
eyBtX2hhc1ZhbGlkVmVydGljYWxNYXJnaW4gPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRIYXNWYWxp
ZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKCkgeyBtX2hhc1ZhbGlkVmVydGljYWxOb25Db2xs
YXBzZWRNYXJnaW4gPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRIYXNWYWxpZEhvcml6b250YWxDb21w
dXRlZE1hcmdpbigpIHsgbV9oYXNWYWxpZEhvcml6b250YWxDb21wdXRlZE1hcmdpbiA9IHRydWU7
IH0KICAgICB2b2lkIHNldEhhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbigpIHsgbV9oYXNWYWxpZEhv
cml6b250YWxNYXJnaW4gPSB0cnVlOyB9CiAKICAgICB2b2lkIHNldEhhc1ZhbGlkQm9yZGVyKCkg
eyBtX2hhc1ZhbGlkQm9yZGVyID0gdHJ1ZTsgfQpAQCAtMjE3LDcgKzIwNSw2IEBAIHByaXZhdGU6
CiAKICAgICBIb3Jpem9udGFsTWFyZ2luIG1faG9yaXpvbnRhbE1hcmdpbjsKICAgICBWZXJ0aWNh
bE1hcmdpbiBtX3ZlcnRpY2FsTWFyZ2luOwotICAgIENvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiBt
X2hvcml6b250YWxDb21wdXRlZE1hcmdpbjsKICAgICBib29sIG1faGFzQ2xlYXJhbmNlIHsgZmFs
c2UgfTsKIAogICAgIExheW91dDo6RWRnZXMgbV9ib3JkZXI7CkBAIC0yMjksNyArMjE2LDYgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faGFzVmFsaWRIb3Jpem9udGFsTWFyZ2luIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faGFzVmFsaWRWZXJ0aWNhbE1hcmdpbiB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2hhc1ZhbGlkVmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4geyBmYWxzZSB9OwotICAgIGJvb2wg
bV9oYXNWYWxpZEhvcml6b250YWxDb21wdXRlZE1hcmdpbiB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2hhc1ZhbGlkQm9yZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzVmFsaWRQYWRkaW5nIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faGFzVmFsaWRDb250ZW50SGVpZ2h0IHsgZmFsc2UgfTsKQEAg
LTI2OCwxMiArMjU0LDYgQEAgaW5saW5lIEJveDo6VmVydGljYWxNYXJnaW46OkNvbGxhcHNlZFZh
bHVlczo6Q29sbGFwc2VkVmFsdWVzKExheW91dDo6VXNlZFZlcnRpY2EKIHsKIH0KIAotaW5saW5l
IEJveDo6Q29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luOjpDb21wdXRlZEhvcml6b250YWxNYXJnaW4o
TGF5b3V0OjpDb21wdXRlZEhvcml6b250YWxNYXJnaW4gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2lu
KQotICAgIDogc3RhcnQoY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLnN0YXJ0KQotICAgICwgZW5k
KGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5lbmQpCi17Ci19Ci0KIGlubGluZSBCb3g6Okhvcml6
b250YWxNYXJnaW46Okhvcml6b250YWxNYXJnaW4oTGF5b3V0OjpVc2VkSG9yaXpvbnRhbE1hcmdp
biBob3Jpem9udGFsTWFyZ2luKQogICAgIDogc3RhcnQoaG9yaXpvbnRhbE1hcmdpbi5zdGFydCkK
ICAgICAsIGVuZChob3Jpem9udGFsTWFyZ2luLmVuZCkKQEAgLTM4NCwxNCArMzY0LDYgQEAgaW5s
aW5lIHZvaWQgQm94OjpzZXRWZXJ0aWNhbE1hcmdpbihWZXJ0aWNhbE1hcmdpbiBtYXJnaW4pCiAg
ICAgbV92ZXJ0aWNhbE1hcmdpbiA9IG1hcmdpbjsKIH0KIAotaW5saW5lIHZvaWQgQm94OjpzZXRI
b3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4oQ29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luIG1hcmdpbikK
LXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIHNldEhhc1ZhbGlkSG9yaXpvbnRhbENvbXB1dGVk
TWFyZ2luKCk7Ci0jZW5kaWYKLSAgICBtX2hvcml6b250YWxDb21wdXRlZE1hcmdpbiA9IG1hcmdp
bjsKLX0KLQogaW5saW5lIHZvaWQgQm94OjpzZXRCb3JkZXIoTGF5b3V0OjpFZGdlcyBib3JkZXIp
CiB7CiAjaWYgQVNTRVJUX0VOQUJMRUQKQEAgLTQ3MiwxOCArNDQ0LDYgQEAgaW5saW5lIExheW91
dFVuaXQgQm94Ojpub25Db2xsYXBzZWRNYXJnaW5BZnRlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
dmVydGljYWxNYXJnaW4ubm9uQ29sbGFwc2VkVmFsdWVzKCkuYWZ0ZXI7CiB9CiAKLWlubGluZSBP
cHRpb25hbDxMYXlvdXRVbml0PiBCb3g6OmNvbXB1dGVkTWFyZ2luU3RhcnQoKSBjb25zdAotewot
ICAgIEFTU0VSVChtX2hhc1ZhbGlkSG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKTsKLSAgICByZXR1
cm4gbV9ob3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4uc3RhcnQ7Ci19Ci0KLWlubGluZSBPcHRpb25h
bDxMYXlvdXRVbml0PiBCb3g6OmNvbXB1dGVkTWFyZ2luRW5kKCkgY29uc3QKLXsKLSAgICBBU1NF
UlQobV9oYXNWYWxpZEhvcml6b250YWxDb21wdXRlZE1hcmdpbik7Ci0gICAgcmV0dXJuIG1faG9y
aXpvbnRhbENvbXB1dGVkTWFyZ2luLmVuZDsKLX0KLQogaW5saW5lIE9wdGlvbmFsPExheW91dFVu
aXQ+IEJveDo6cGFkZGluZ1RvcCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1faGFzVmFsaWRQYWRk
aW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0
LmNwcAppbmRleCBmZGZmNTdiZWM1ODM5NjI0MTU3ZGI0M2Y5YmJmMzUyNjA2MjEyZjVjLi4yZTFm
OGM0ZmUzZGUxNDIyMGEzNDQ0M2RiZDU1OTg5MTEzZTJiYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCkBAIC0xNTMsNiArMTUzLDE3
IEBAIHN0YXRpYyBib29sIGFyZUZsb2F0c0hvcml6b250YWxseVNvcnRlZChjb25zdCBGbG9hdGlu
Z1N0YXRlJiBmbG9hdGluZ1N0YXRlKQogfQogI2VuZGlmCiAKK3N0YXRpYyBDb21wdXRlZEhvcml6
b250YWxNYXJnaW4gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBMYXlvdXRVbml0IGhvcml6b250YWxDb25zdHJhaW50KQoreworICAgIGF1dG8mIHN0eWxlID0g
bGF5b3V0Qm94LnN0eWxlKCk7CisgICAgYXV0byBjb21wdXRlZFZhbHVlID0gWyZdIChjb25zdCBh
dXRvJiBtYXJnaW4pIHsKKyAgICAgICAgaWYgKG1hcmdpbi5pc0ZpeGVkKCkgfHwgbWFyZ2luLmlz
UGVyY2VudCgpIHx8IG1hcmdpbi5pc0NhbGN1bGF0ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZUZvckxlbmd0aChtYXJnaW4sIGhvcml6b250YWxDb25zdHJhaW50KTsKKyAgICAgICAgcmV0
dXJuIDBfbHU7CisgICAgfTsKKyAgICByZXR1cm4geyBjb21wdXRlZFZhbHVlKHN0eWxlLm1hcmdp
blN0YXJ0KCkpLCBjb21wdXRlZFZhbHVlKHN0eWxlLm1hcmdpbkVuZCgpKSB9OworfQorCiBzdGF0
aWMgRmxvYXRQYWlyOjpMZWZ0UmlnaHRJbmRleCBmaW5kQXZhaWxhYmxlUG9zaXRpb24oRmxvYXRB
dm9pZGVyJiBmbG9hdEF2b2lkZXIsIGNvbnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0TGlzdCYgZmxv
YXRzKQogewogICAgIE9wdGlvbmFsPFBvc2l0aW9uSW5Db250ZXh0Um9vdD4gYm90dG9tTW9zdDsK
QEAgLTIzOCw3ICsyNDksOCBAQCBMYXlvdXRQb2ludCBGbG9hdGluZ0NvbnRleHQ6OnBvc2l0aW9u
Rm9yRmxvYXQoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6bwogICAgIGF1dG8mIGRp
c3BsYXlCb3ggPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCk7
CiAgICAgaWYgKGFic29sdXRlVG9wTGVmdC55KCkgLSBkaXNwbGF5Qm94Lm1hcmdpbkJlZm9yZSgp
IDwgcHJldmlvdXNGbG9hdEFic29sdXRlVG9wKQogICAgICAgICBhYnNvbHV0ZVRvcExlZnQuc2V0
WShwcmV2aW91c0Zsb2F0QWJzb2x1dGVUb3AgKyBkaXNwbGF5Qm94Lm1hcmdpbkJlZm9yZSgpKTsK
LSAgICBhdXRvIG1hcmdpbnMgPSBFZGdlcyB7IHsgZGlzcGxheUJveC5jb21wdXRlZE1hcmdpblN0
YXJ0KCkudmFsdWVPcigwKSwgZGlzcGxheUJveC5jb21wdXRlZE1hcmdpbkVuZCgpLnZhbHVlT3Io
MCkgfSwgeyBkaXNwbGF5Qm94Lm1hcmdpbkJlZm9yZSgpLCBkaXNwbGF5Qm94Lm1hcmdpbkFmdGVy
KCkgfSB9OworICAgIGF1dG8gaG9yaXpvbnRhbE1hcmdpbiA9IGNvbXB1dGVkSG9yaXpvbnRhbE1h
cmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGgpOworICAg
IGF1dG8gbWFyZ2lucyA9IEVkZ2VzIHsgeyAqaG9yaXpvbnRhbE1hcmdpbi5zdGFydCwgKmhvcml6
b250YWxNYXJnaW4uZW5kIH0sIHsgZGlzcGxheUJveC5tYXJnaW5CZWZvcmUoKSwgZGlzcGxheUJv
eC5tYXJnaW5BZnRlcigpIH0gfTsKICAgICBhdXRvIGZsb2F0Qm94ID0gRmxvYXRBdm9pZGVyIHsg
bGF5b3V0Qm94LCBhYnNvbHV0ZVRvcExlZnQsIGRpc3BsYXlCb3gud2lkdGgoKSwgbWFyZ2lucywg
YWJzb2x1dGVEaXNwbGF5Qm94Q29vcmRpbmF0ZXMuY29udGFpbmluZ0Jsb2NrQ29udGVudEJveCB9
OwogICAgIGZpbmRBdmFpbGFibGVQb3NpdGlvbihmbG9hdEJveCwgbV9mbG9hdGluZ1N0YXRlLmZs
b2F0cygpKTsKICAgICAvLyBGcm9tIGZvcm1hdHRpbmcgcm9vdCBjb29yZGluYXRlIHN5c3RlbSBi
YWNrIHRvIGNvbnRhaW5pbmcgYmxvY2sncy4KQEAgLTI0Niw3ICsyNTgsNyBAQCBMYXlvdXRQb2lu
dCBGbG9hdGluZ0NvbnRleHQ6OnBvc2l0aW9uRm9yRmxvYXQoY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IEhvcml6bwogICAgIHJldHVybiB7IGZsb2F0Qm94LmxlZnQoKSArIG1hcmdpbnMuaG9y
aXpvbnRhbC5sZWZ0IC0gY29udGFpbmluZ0Jsb2NrVG9wTGVmdC54KCksIGZsb2F0Qm94LnRvcCgp
ICsgbWFyZ2lucy52ZXJ0aWNhbC50b3AgLSBjb250YWluaW5nQmxvY2tUb3BMZWZ0LnkoKSB9Owog
fQogCi1MYXlvdXRQb2ludCBGbG9hdGluZ0NvbnRleHQ6OnBvc2l0aW9uRm9yTm9uRmxvYXRpbmdG
bG9hdEF2b2lkZXIoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CitMYXlvdXRQb2ludCBGbG9h
dGluZ0NvbnRleHQ6OnBvc2l0aW9uRm9yTm9uRmxvYXRpbmdGbG9hdEF2b2lkZXIoY29uc3QgQm94
JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0
cmFpbnRzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guZXN0YWJsaXNoZXNCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0KCkpOwogICAgIEFTU0VSVCghbGF5b3V0Qm94LmlzRmxvYXRpbmdQb3Np
dGlvbmVkKCkpOwpAQCAtMjU4LDcgKzI3MCw4IEBAIExheW91dFBvaW50IEZsb2F0aW5nQ29udGV4
dDo6cG9zaXRpb25Gb3JOb25GbG9hdGluZ0Zsb2F0QXZvaWRlcihjb25zdCBCb3gmIGxheW91CiAK
ICAgICBhdXRvIGFic29sdXRlRGlzcGxheUJveENvb3JkaW5hdGVzID0gdGhpcy0+YWJzb2x1dGVE
aXNwbGF5Qm94Q29vcmRpbmF0ZXMobGF5b3V0Qm94KTsKICAgICBhdXRvJiBkaXNwbGF5Qm94ID0g
Zm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwotICAgIGF1dG8g
bWFyZ2lucyA9IEVkZ2VzIHsgeyBkaXNwbGF5Qm94LmNvbXB1dGVkTWFyZ2luU3RhcnQoKS52YWx1
ZU9yKDApLCBkaXNwbGF5Qm94LmNvbXB1dGVkTWFyZ2luRW5kKCkudmFsdWVPcigwKSB9LCB7IGRp
c3BsYXlCb3gubWFyZ2luQmVmb3JlKCksIGRpc3BsYXlCb3gubWFyZ2luQWZ0ZXIoKSB9IH07Cisg
ICAgYXV0byBob3Jpem9udGFsTWFyZ2luID0gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmxvZ2ljYWxXaWR0aCk7CisgICAgYXV0byBtYXJn
aW5zID0gRWRnZXMgeyB7ICpob3Jpem9udGFsTWFyZ2luLnN0YXJ0LCAqaG9yaXpvbnRhbE1hcmdp
bi5lbmQgfSwgeyBkaXNwbGF5Qm94Lm1hcmdpbkJlZm9yZSgpLCBkaXNwbGF5Qm94Lm1hcmdpbkFm
dGVyKCkgfSB9OwogICAgIGF1dG8gZmxvYXRBdm9pZGVyID0gRmxvYXRBdm9pZGVyIHsgbGF5b3V0
Qm94LCBhYnNvbHV0ZURpc3BsYXlCb3hDb29yZGluYXRlcy50b3BMZWZ0LCBkaXNwbGF5Qm94Lndp
ZHRoKCksIG1hcmdpbnMsIGFic29sdXRlRGlzcGxheUJveENvb3JkaW5hdGVzLmNvbnRhaW5pbmdC
bG9ja0NvbnRlbnRCb3ggfTsKICAgICBmaW5kUG9zaXRpb25Gb3JGb3JtYXR0aW5nQ29udGV4dFJv
b3QoZmxvYXRBdm9pZGVyKTsKICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1RvcExlZnQgPSBhYnNv
bHV0ZURpc3BsYXlCb3hDb29yZGluYXRlcy5jb250YWluaW5nQmxvY2tUb3BMZWZ0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmgKaW5kZXggMzMyZDk5
YTE2MjNjZGE1NDhkZWNhNDRmZDExNTgyZThmYWU5NGIwNS4uNmJkOWQ1NWM5NmVjMTU5Mzg2OGNh
ODgyYWVlZGFlNGEwYzUzNGY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zs
b2F0cy9GbG9hdGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRz
L0Zsb2F0aW5nQ29udGV4dC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdGlu
Z1N0YXRlJiBmbG9hdGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mbG9hdGluZ1N0YXRlOyB9
CiAKICAgICBMYXlvdXRQb2ludCBwb3NpdGlvbkZvckZsb2F0KGNvbnN0IEJveCYsIGNvbnN0IEhv
cml6b250YWxDb25zdHJhaW50cyYpIGNvbnN0OwotICAgIExheW91dFBvaW50IHBvc2l0aW9uRm9y
Tm9uRmxvYXRpbmdGbG9hdEF2b2lkZXIoY29uc3QgQm94JikgY29uc3Q7CisgICAgTGF5b3V0UG9p
bnQgcG9zaXRpb25Gb3JOb25GbG9hdGluZ0Zsb2F0QXZvaWRlcihjb25zdCBCb3gmLCBjb25zdCBI
b3Jpem9udGFsQ29uc3RyYWludHMmKSBjb25zdDsKIAogICAgIHN0cnVjdCBDbGVhcmFuY2VQb3Np
dGlvbiB7CiAgICAgICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBwb3NpdGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA1NjA5ZmMwYmY1ZjUzZjA4ZTgxMjdlOTdlNThi
NmEwMDU2ZDg4YTBhLi4zYjJiNmQ1NjhhYjhmZTIzYjk1N2I4MmI1ZDFjM2Q4NDZmOGVlMjllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yODEsOSArMjgxLDcgQEAg
dm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJpbnNpY1dpZHRoRm9yRm9y
bWF0dGluZ1Jvb3QoY29uc3QgQm94Jgogdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUhvcml6b250YWxNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250
YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewogICAgIGF1dG8gY29tcHV0
ZWRIb3Jpem9udGFsTWFyZ2luID0gZ2VvbWV0cnkoKS5jb21wdXRlZEhvcml6b250YWxNYXJnaW4o
bGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwotICAgIGF1dG8mIGRpc3BsYXlCb3gg
PSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCk7Ci0gICAgZGlzcGxheUJv
eC5zZXRIb3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4oY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKTsK
LSAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxNYXJnaW4oeyBjb21wdXRlZEhvcml6b250YWxN
YXJnaW4uc3RhcnQudmFsdWVPcigwKSwgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLmVuZC52YWx1
ZU9yKDApIH0pOworICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5z
ZXRIb3Jpem9udGFsTWFyZ2luKHsgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLnN0YXJ0LnZhbHVl
T3IoMCksIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5lbmQudmFsdWVPcigwKSB9KTsKIH0KIAog
dm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250YWxD
b25zdHJhaW50cykKQEAgLTMxNiw3ICszMTQsNiBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0CiAg
ICAgYXV0byYgZGlzcGxheUJveCA9IGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0
Qm94KTsKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0aChjb250ZW50V2lkdGhBbmRN
YXJnaW4uY29udGVudFdpZHRoKTsKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxNYXJnaW4o
eyBjb250ZW50V2lkdGhBbmRNYXJnaW4udXNlZE1hcmdpbiB9KTsKLSAgICBkaXNwbGF5Qm94LnNl
dEhvcml6b250YWxDb21wdXRlZE1hcmdpbihjb250ZW50V2lkdGhBbmRNYXJnaW4uY29tcHV0ZWRN
YXJnaW4pOwogfQogCiB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0
QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWlu
dHMmIGhvcml6b250YWxDb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggMTJhYjJiYmM0MzcyZmU3MjlhNTRiMTNmODQ1ZGE0
M2MzZDI3NWU5Zi4uZDdjMjZmZDc3ZmY0NWUwMzAwZjFiYjI0Nzg5MjU2YzgxNjY2YzVmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTU5
LDcgKzU5LDcgQEAgQ29udGVudFdpZHRoQW5kTWFyZ2luIElubGluZUZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6aW5saW5lQmxvY2tXaWR0aEFuZE1hcmcKICAgICAvLyAjMgogICAgIGF1dG8g
Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpvbnRhbE1h
cmdpbihmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAKLSAg
ICByZXR1cm4gQ29udGVudFdpZHRoQW5kTWFyZ2luIHsgKndpZHRoLCB7IGNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbi5zdGFydC52YWx1ZU9yKDBfbHUpLCBjb21wdXRlZEhvcml6b250YWxNYXJnaW4u
ZW5kLnZhbHVlT3IoMF9sdSkgfSwgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luIH07CisgICAgcmV0
dXJuIENvbnRlbnRXaWR0aEFuZE1hcmdpbiB7ICp3aWR0aCwgeyBjb21wdXRlZEhvcml6b250YWxN
YXJnaW4uc3RhcnQudmFsdWVPcigwX2x1KSwgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLmVuZC52
YWx1ZU9yKDBfbHUpIH0gfTsKIH0KIAogQ29udGVudEhlaWdodEFuZE1hcmdpbiBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZUJsb2NrSGVpZ2h0QW5kTWFyZ2luKGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250YWxD
b25zdHJhaW50cywgY29uc3QgT3ZlcnJpZGVWZXJ0aWNhbFZhbHVlcyYgb3ZlcnJpZGVWZXJ0aWNh
bFZhbHVlcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGI3YTNi
ZTg4NjQ0ZTZjY2MxZWQwMTU3NzNiYzNlN2NmYWFlOGU0MjMuLjNkMjE5ZjY1YzRjYmEwODIyODNk
MjYxZjAwODcyZGJjY2ViZDhiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcApA
QCAtMTU2LDcgKzE1Niw2IEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6c2V0VXNlZEdl
b21ldHJ5Rm9yUm93cyhMYXlvdXRVbml0IGF2YWlsYWJsZUhvcml6b250CiAgICAgICAgIHJvd0Rp
c3BsYXlCb3guc2V0UGFkZGluZyhnZW9tZXRyeSgpLmNvbXB1dGVkUGFkZGluZyhyb3dCb3gsIGF2
YWlsYWJsZUhvcml6b250YWxTcGFjZSkpOwogICAgICAgICAvLyBJbnRlcm5hbCB0YWJsZSBlbGVt
ZW50cyBkbyBub3QgaGF2ZSBtYXJnaW5zLgogICAgICAgICByb3dEaXNwbGF5Qm94LnNldEhvcml6
b250YWxNYXJnaW4oeyB9KTsKLSAgICAgICAgcm93RGlzcGxheUJveC5zZXRIb3Jpem9udGFsQ29t
cHV0ZWRNYXJnaW4oeyB9KTsKICAgICAgICAgcm93RGlzcGxheUJveC5zZXRWZXJ0aWNhbE1hcmdp
bih7IHsgfSwgeyB9IH0pOwogCiAgICAgICAgIGF1dG8gY29tcHV0ZWRSb3dCb3JkZXIgPSBbJl0g
ewpAQCAtMjM5LDcgKzIzOCw2IEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6c2V0VXNl
ZEdlb21ldHJ5Rm9yU2VjdGlvbnMoY29uc3QgQ29uc3RyYWludHNGb3JJbkZsCiAgICAgICAgIHBh
ZGRpbmdCZWZvcmUgPSBXVEY6Om51bGxvcHQ7CiAgICAgICAgIC8vIEludGVybmFsIHRhYmxlIGVs
ZW1lbnRzIGRvIG5vdCBoYXZlIG1hcmdpbnMuCiAgICAgICAgIHNlY3Rpb25EaXNwbGF5Qm94LnNl
dEhvcml6b250YWxNYXJnaW4oeyB9KTsKLSAgICAgICAgc2VjdGlvbkRpc3BsYXlCb3guc2V0SG9y
aXpvbnRhbENvbXB1dGVkTWFyZ2luKHsgfSk7CiAgICAgICAgIHNlY3Rpb25EaXNwbGF5Qm94LnNl
dFZlcnRpY2FsTWFyZ2luKHsgeyB9LCB7IH0gfSk7CiAKICAgICAgICAgc2VjdGlvbkRpc3BsYXlC
b3guc2V0Q29udGVudEJveFdpZHRoKHNlY3Rpb25XaWR0aCk7CkBAIC0yNzAsNyArMjY4LDYgQEAg
dm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRDZWxsKGNvbnN0IFRhYmxlR3JpZDo6
Q2VsbCYgY2VsbCwgTGF5b3V0VW5pdAogICAgIGNlbGxEaXNwbGF5Qm94LnNldFBhZGRpbmcoZ2Vv
bWV0cnkoKS5jb21wdXRlZFBhZGRpbmcoY2VsbEJveCwgYXZhaWxhYmxlSG9yaXpvbnRhbFNwYWNl
KSk7CiAgICAgLy8gSW50ZXJuYWwgdGFibGUgZWxlbWVudHMgZG8gbm90IGhhdmUgbWFyZ2lucy4K
ICAgICBjZWxsRGlzcGxheUJveC5zZXRIb3Jpem9udGFsTWFyZ2luKHsgfSk7Ci0gICAgY2VsbERp
c3BsYXlCb3guc2V0SG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKHsgfSk7CiAgICAgY2VsbERpc3Bs
YXlCb3guc2V0VmVydGljYWxNYXJnaW4oeyB7IH0sIHsgfSB9KTsKIAogICAgIGF1dG8gYXZhaWxh
YmxlU3BhY2VGb3JDb250ZW50ID0gWyZdIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>