<?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>218843</bug_id>
          
          <creation_ts>2020-11-11 21:26:00 -0800</creation_ts>
          <short_desc>[GPU Process] Implement DisplayList::ClipToImageBuffer item</short_desc>
          <delta_ts>2020-11-12 01:10:20 -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>Canvas</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>
          
          <blocked>217342</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706758</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 21:26:00 -0800</bug_when>
    <thetext>This is very similar to the DisplayList::DrawImageBuffer item. All we need is to record the renderingResourceIdentifier of the ImageBuffer. At replaying time, the renderingResourceIdentifier of the ClipToImageBuffer will be resolved to an ImageBuffer. The actual clipping will be moved to an new function named ImageBuffer::clipToMask().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706759</commentid>
    <comment_count>1</comment_count>
      <attachid>413908</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 21:28:43 -0800</bug_when>
    <thetext>Created attachment 413908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706760</commentid>
    <comment_count>2</comment_count>
      <attachid>413909</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 21:36:37 -0800</bug_when>
    <thetext>Created attachment 413909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706762</commentid>
    <comment_count>3</comment_count>
      <attachid>413910</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 21:46:51 -0800</bug_when>
    <thetext>Created attachment 413910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706780</commentid>
    <comment_count>4</comment_count>
      <attachid>413915</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-11-11 23:33:03 -0800</bug_when>
    <thetext>Created attachment 413915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706799</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-12 01:09:22 -0800</bug_when>
    <thetext>Committed r269724: &lt;https://trac.webkit.org/changeset/269724&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413915.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706800</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-12 01:10:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/71318029&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413908</attachid>
            <date>2020-11-11 21:28:43 -0800</date>
            <delta_ts>2020-11-11 21:39:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218843-20201111212840.patch</filename>
            <type>text/plain</type>
            <size>29440</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ5ZTkyYjk5NTVlNDlh
ZTMwMDE1ODA0M2VmMDJmODQ4MmQ3NDM4ZC4uZWMzZjVkYmM0YjAzYmQwNDRkODRkNmYwNjBhNWI1
YjQwZjE0YjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTExLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IERpc3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNvcmQgdGhlIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBvZiB0aGUgSW1hZ2VCdWZmZXIuIEF0IHJlcGxheWluZworICAg
ICAgICB0aW1lLCB0aGUgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRoZSBDbGlwVG9J
bWFnZUJ1ZmZlciB3aWxsIGJlCisgICAgICAgIHJlc29sdmVkIHRvIGFuIEltYWdlQnVmZmVyLiBU
aGUgYWN0dWFsIGNsaXBwaW5nIHdpbGwgYmUgbW92ZWQgdG8gYW4gbmV3CisgICAgICAgIGZ1bmN0
aW9uIG5hbWVkIEltYWdlQnVmZmVyOjpjbGlwVG9NYXNrKCkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNsaXBUb01hc2sp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZm
ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGU6OmNvcHlUbyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlcjo6Q2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjppbWFnZUJ1ZmZlcklk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0lt
YWdlQnVmZmVyOjpkZXN0aW5hdGlvblJlY3QgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZl
cik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVy
RGlyZWN0MkRCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGlyZWN0
MkRCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
SW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuaDoKKwogMjAyMC0xMS0xMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhY2hlIHRo
ZSBOYXRpdmVJbWFnZSBpbiBHUFUgUHJvY2VzcyBhbmQgYWxsb3cgcmVmZXJlbmNpbmcgaXQgd2l0
aCBpdHMgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyMDZkNzIwMGM1YmRh
MjZmZmFkZDcyYTFiYjUxYTE2N2JhNmU2MjMuLmMzMjI2ZGMzYmExMzBjN2VkMDc2OWI2OTMxMGQ2
MGI1NjZlOGIwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTEtMTEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJ
bXBsZW1lbnQgRGlzcGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyIGl0ZW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIwLTExLTExICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzeXN0ZW0gdHJhY2Ug
cG9pbnRzIGZvciB0aGUgR1BVIHByb2Nlc3MgZGlzcGxheSBsaXN0IHByb2Nlc3NpbmcgbG9vcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oCmluZGV4IDg1NDAyMTVmNjIzN2NjMGEzZDYyNWUzMmZhOTY3ZGY5YTYyZWMyYWYu
LjIwNzAxZmE5YTY3NzU5Y2FmODAwNjg5MWJkYTFiNDdiZTdiY2Y1NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgK
QEAgLTE3NSw2ICsxNzUsMTQgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgYmFja2VuZC0+ZHJh
d0NvbnN1bWluZyhkZXN0Q29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQm
IGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7Cisg
ICAgICAgICAgICBmbHVzaENvbnRleHQoKTsKKyAgICAgICAgICAgIGJhY2tlbmQtPmNsaXBUb01h
c2soZGVzdENvbnRleHQsIGRlc3RSZWN0KTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHZvaWQg
Y29udmVydFRvTHVtaW5hbmNlTWFzaygpIG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggM2Zl
ZTg1OTgzMmE3YzAxNDFhMDc5MDFmYTk1NDI4YmRlNTJhMWJkMy4uOGNiMTI1OTc5NDk2YmQxOTA5
Y2U3MjJhYzBjNmJkNzcyMjA0OTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC04ODYsNiArODg2LDE5IEBAIEdy
YXBoaWNzQ29udGV4dDo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzUmVzdWx0IEdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvRHJhd2luZ0NvbW1hCiAgICAgcmV0dXJuIENsaXBUb0RyYXdpbmdDb21tYW5kc1Jl
c3VsdDo6U3VjY2VzczsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
blJlY3QpCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmNsaXBUb0ltYWdlQnVmZmVyKGlt
YWdlQnVmZmVyLCBkZXN0aW5hdGlvblJlY3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaW1hZ2VCdWZmZXIuY2xpcFRvTWFzaygqdGhpcywgZGVzdGluYXRpb25SZWN0KTsKK30KKwog
I2lmICFVU0UoQ0cpICYmICFVU0UoRElSRUNUMkQpICYmICFVU0UoQ0FJUk8pCiBJbnRSZWN0IEdy
YXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAwMjliNzUzY2MwNzEwNjEzYWRj
MjEyYmUzYWQ1ZDFmZDIwYjg0YmMxLi5kNTJhNTE2ZDYyZjg3YzVlNTcxYjRkYTI5Yjk1OTI3MWFk
ODc2YjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTk2LDYgKzk2LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZlB0cjxJbWFnZT4gc2lua0ludG9JbWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+LCBQcmVz
ZXJ2ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKTsKICAgICBzdGF0aWMgdm9p
ZCBkcmF3Q29uc3VtaW5nKFJlZlB0cjxJbWFnZUJ1ZmZlcj4sIEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0
UmVjdCgwLCAwLCAtMSwgLTEpLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwor
ICAgIAorICAgIHZpcnR1YWwgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0VG9M
dW1pbmFuY2VNYXNrKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Db2xvclNwYWNl
KENvbG9yU3BhY2Ugc3JjQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSBkc3RDb2xvclNwYWNlKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZC5oCmluZGV4IGFhOWIzNDFhMDU3M2YyYWQ0ZTllZDMwNTdjMDQyMWU5NTkxYWU1YzEu
LmYyMTNkMzk2YzcwMmQ2NWFiODljMGNkODQ3MjBiODI3YjQ5ZjczNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCkBA
IC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFJlZlB0
cjxJbWFnZT4gc2lua0ludG9JbWFnZShQcmVzZXJ2ZVJlc29sdXRpb24pOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3Q29uc3VtaW5nKEdyYXBoaWNzQ29udGV4dCYgZGVzdENv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjbGlw
VG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIHsgfQorCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiAgICAgdmlydHVhbCB2
b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSkgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCA2ODc4MTA2M2I5MjIxMDlkMGYwZDU4ODY0
ZDVjNjI4NmUwODAxODJkLi5lN2M0YTc5Y2MwOTgxNmNlMDZkOTliZDE5YTgxMzM3ZTljMWQ4YjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0yNTUsMjEgKzI1NSw2IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSBj
bGlwUnVsZSkKICAgICBDYWlybzo6Y2xpcFBhdGgoKnBsYXRmb3JtQ29udGV4dCgpLCBwYXRoLCBj
bGlwUnVsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQotewotICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2ltcGwp
IHsKLSAgICAgICAgbV9pbXBsLT5jbGlwVG9JbWFnZUJ1ZmZlcihidWZmZXIsIGRlc3RSZWN0KTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQo
KSk7Ci0gICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBidWZmZXIuY29weU5hdGl2ZUltYWdlKERv
bnRDb3B5QmFja2luZ1N0b3JlKSkKLSAgICAgICAgQ2Fpcm86OmNsaXBUb0ltYWdlQnVmZmVyKCpw
bGF0Zm9ybUNvbnRleHQoKSwgbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgZGVz
dFJlY3QpOwotfQotCiBJbnRSZWN0IEdyYXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kLmNwcAppbmRleCA3ZGExNzBlNTk5MGJlMTg1OTBlOTFkNGQxY2FhN2QwZTMxMDNmODE4
Li5jYjBhMDg5N2M4YTI2MTJkNDhkYjE4ZDc5MTk1MTM2M2MyMjc2OTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwCkBAIC04Myw2ICs4MywxMiBAQCB2b2lkIEltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0
LCBjb25zdCBGbAogICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4oKmRlc3RDb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpLCBpbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBtX2xvZ2ljYWxTaXpl
LCBkZXN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMpOwog
fQogCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjbGlwVG9NYXNrKEdyYXBoaWNzQ29u
dGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYg
KGF1dG8gbmF0aXZlSW1hZ2UgPSBidWZmZXIuY29weU5hdGl2ZUltYWdlKERvbnRDb3B5QmFja2lu
Z1N0b3JlKSkKKyAgICAgICAgQ2Fpcm86OmNsaXBUb0ltYWdlQnVmZmVyKCpwbGF0Zm9ybUNvbnRl
eHQoKSwgbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgZGVzdFJlY3QpOworfQor
CiB2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjp0cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9y
U3BhY2Ugc3JjQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSBkZXN0Q29sb3JTcGFjZSkKIHsKICAgICBp
ZiAoc3JjQ29sb3JTcGFjZSA9PSBkZXN0Q29sb3JTcGFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJv
QmFja2VuZC5oCmluZGV4IDIzYjkxOWFkNTIyZWExNzhiMzJjMDA5ZjVkODhkNWQ3MTZkZWYzYTEu
LjQ5ZGViZWE4NTAyODNlMGI0NzZmN2IyOWQ4Y2Y1ZDNjYTBhYjMwOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNr
ZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyb0JhY2tlbmQuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
cmF3KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRT
aXplJiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogCisg
ICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QpIG92ZXJyaWRlOworCiAgICAgdm9pZCB0cmFuc2Zvcm1Db2xvclNwYWNlKENvbG9yU3Bh
Y2Ugc3JjQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSBkZXN0Q29sb3JTcGFjZSkgb3ZlcnJpZGU7CiAK
ICAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRv
dWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0aW9uKSBjb25zdCBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmNwcAppbmRleCBmZTlhZDM3NjczMzA3ODY1ODQwYTNmYzAwM2Q1YTAxNmYwODZmYThh
Li4yNmUwNGMwOTg4MjRhY2FmNGZiOGM4NzcyMzI3ZTkwOWYwNmJmZjYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCkBAIC00OTgsMzAgKzQ5OCw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0
dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0CiAgICAg
fQogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXImIGJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QpCi17Ci0gICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1faW1wbCkg
ewotICAgICAgICBtX2ltcGwtPmNsaXBUb0ltYWdlQnVmZmVyKGJ1ZmZlciwgZGVzdGluYXRpb25S
ZWN0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEZsb2F0U2l6ZSBidWZmZXJEZXN0
aW5hdGlvblNpemUgPSBkZXN0aW5hdGlvblJlY3Quc2l6ZSgpOwotICAgIGF1dG8gbmF0aXZlSW1h
Z2UgPSBidWZmZXIuY29weU5hdGl2ZUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKLSAgICBh
dXRvIGltYWdlID0gbmF0aXZlSW1hZ2UgPyBuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpIDog
bnVsbHB0cjsKLQotICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7
Ci0gICAgLy8gRklYTUU6IFRoaXMgaW1hZ2UgbmVlZHMgdG8gYmUgZ3JheXNjYWxlIHRvIGJlIHVz
ZWQgYXMgYW4gYWxwaGEgbWFzayBoZXJlLgotICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250
ZXh0LCBkZXN0aW5hdGlvblJlY3QueCgpLCBkZXN0aW5hdGlvblJlY3QueSgpICsgYnVmZmVyRGVz
dGluYXRpb25TaXplLmhlaWdodCgpKTsKLSAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0LCAx
LCAtMSk7Ci0gICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChjb250ZXh0LCBGbG9hdFJlY3QoRmxvYXRQ
b2ludCgwLCBidWZmZXJEZXN0aW5hdGlvblNpemUuaGVpZ2h0KCkgLSBkZXN0aW5hdGlvblJlY3Qu
aGVpZ2h0KCkpLCBkZXN0aW5hdGlvblJlY3Quc2l6ZSgpKSk7Ci0gICAgQ0dDb250ZXh0Q2xpcFRv
TWFzayhjb250ZXh0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBidWZmZXJEZXN0aW5hdGlvblNp
emUpLCBpbWFnZS5nZXQoKSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwgMSwgLTEp
OwotICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAtZGVzdGluYXRpb25SZWN0Lngo
KSwgLWRlc3RpbmF0aW9uUmVjdC55KCkgLSBkZXN0aW5hdGlvblJlY3QuaGVpZ2h0KCkpOwotfQot
CiAvLyBEcmF3cyBhIGZpbGxlZCByZWN0YW5nbGUgd2l0aCBhIHN0cm9rZWQgYm9yZGVyLgogdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQg
Ym9yZGVyVGhpY2tuZXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCmluZGV4IDhjNWFiZjdj
OTNlNzk3MTNmNzEzYTZkYmRlOWJjMDE3ZjIxZjg5YmMuLjdkYzEwZWM1YjZjZmFjYTc2MjJkNmE4
NzA4ZWZiZDdlZDFjOTc1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKQEAgLTEyNiw2ICsx
MjYsMjMgQEAgdm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXQKICAgICAgICAgaW1hZ2UtPmRyYXdQYXR0
ZXJuKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNm
b3JtLCBwaGFzZSwgc3BhY2luZywgb3B0aW9ucyk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJDR0Jh
Y2tlbmQ6OmNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBhdXRvIG5hdGl2ZUltYWdlID0gY29weU5hdGl2ZUlt
YWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKKyAgICBpZiAoIW5hdGl2ZUltYWdlKQorICAgICAg
ICByZXR1cm47CisgICAgCisgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGRlc3RDb250ZXh0
LnBsYXRmb3JtQ29udGV4dCgpOworCisgICAgLy8gRklYTUU6IFRoaXMgaW1hZ2UgbmVlZHMgdG8g
YmUgZ3JheXNjYWxlIHRvIGJlIHVzZWQgYXMgYW4gYWxwaGEgbWFzayBoZXJlLgorICAgIENHQ29u
dGV4dFRyYW5zbGF0ZUNUTShjZ0NvbnRleHQsIGRlc3RSZWN0LngoKSwgZGVzdFJlY3QubWF4WSgp
KTsKKyAgICBDR0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQsIDEsIC0xKTsKKyAgICBDR0NvbnRl
eHRDbGlwVG9SZWN0KGNnQ29udGV4dCwgeyB7IH0sIGRlc3RSZWN0LnNpemUoKSB9KTsKKyAgICBD
R0NvbnRleHRDbGlwVG9NYXNrKGNnQ29udGV4dCwgeyB7IH0sIGRlc3RSZWN0LnNpemUoKSB9LCBu
YXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpKTsKKyAgICBDR0NvbnRleHRTY2FsZUNU
TShjZ0NvbnRleHQsIDEsIC0xKTsKKyAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY2dDb250ZXh0
LCAtZGVzdFJlY3QueCgpLCAtZGVzdFJlY3QubWF4WSgpKTsKK30KKwogQWZmaW5lVHJhbnNmb3Jt
IEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpiYXNlVHJhbnNmb3JtKCkgY29uc3QKIHsKICAgICByZXR1
cm4gQWZmaW5lVHJhbnNmb3JtKDEsIDAsIDAsIC0xLCAwLCBtX2xvZ2ljYWxTaXplLmhlaWdodCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyQ0dCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQmFja2VuZC5oCmluZGV4IGM3Y2EzOTgwMzRmMjVhMzM0OTI0N2Q0MzRmNWY2
NTlmOTJhZjNkNDMuLjdlZjA1N2FkNTNhMjViOTJlNTkyZDA1ZGM2MzVlYzc2YTY5YjI0MmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0dCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDR0JhY2tlbmQuaApAQCAtMzgsNiArMzgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGRyYXcoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7Cisg
ICAgCisgICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QpIG92ZXJyaWRlOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zv
cm0oKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggNDY4
YTNkNTU0NTYyYTk2NzYzNWRjMWI3Njk5ZmEyNTY2ZjRjYTg3Yy4uMGYzMjgyN2M0MTllN2E2MGUz
YWJhYjY3YmVkODUwZTBlODQwYjBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0y
MjIsNiArMjIyLDggQEAgdm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRlbSkK
ICAgICAgICAgcmV0dXJuIGFwcGVuZDxDbGlwPihpdGVtLmdldDxDbGlwPigpKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpDbGlwT3V0OgogICAgICAgICByZXR1cm4gYXBwZW5kPENsaXBPdXQ+KGl0ZW0u
Z2V0PENsaXBPdXQ+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOgor
ICAgICAgICByZXR1cm4gYXBwZW5kPENsaXBUb0ltYWdlQnVmZmVyPihpdGVtLmdldDxDbGlwVG9J
bWFnZUJ1ZmZlcj4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoKICAgICAg
ICAgcmV0dXJuIGFwcGVuZDxDbGlwT3V0VG9QYXRoPihpdGVtLmdldDxDbGlwT3V0VG9QYXRoPigp
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggZWMyZDZlYTU1MDhhMjIwODUyOTdhNTViYzVjMTcz
ODAwYzVhNWM0Yi4uNTU2MDBmM2U3MjRkNjRhMGRiZTBkNWUzNzQxNzk5Mzc5ODA1ZmYyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTEyMCw2ICsx
MjAsMTAgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
CiAgICAgICAgIGdldDxDbGlwT3V0PigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOiB7CisgICAgICAg
IGdldDxDbGlwVG9JbWFnZUJ1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOiB7CiAgICAgICAgIGdl
dDxDbGlwT3V0VG9QYXRoPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CkBAIC00
MjAsNiArNDI0LDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVzdHJveSgpCiAgICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPENsaXBPdXQ+Ojp2YWx1ZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VC
dWZmZXI6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8Q2xpcFRvSW1hZ2VCdWZmZXI+Ojp2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06IHsKICAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Q29uY2F0ZW5hdGVDVE0+Ojp2YWx1
ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTY4Nyw2ICs2OTUsMTAgQEAgdm9pZCBJdGVtSGFuZGxl
Ojpjb3B5VG8oSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgbmV3IChpdGVt
T2Zmc2V0KSBDbGlwT3V0KGdldDxDbGlwT3V0PigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjogeworICAgICAgICBuZXcgKGl0
ZW1PZmZzZXQpIENsaXBUb0ltYWdlQnVmZmVyKGdldDxDbGlwVG9JbWFnZUJ1ZmZlcj4oKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06
IHsKICAgICAgICAgbmV3IChpdGVtT2Zmc2V0KSBDb25jYXRlbmF0ZUNUTShnZXQ8Q29uY2F0ZW5h
dGVDVE0+KCkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5jcHAKaW5kZXggYTFhZDQ2MDFhNmQ5MjJkYzk3ODAwODRjODM0MTBmZDVjNWVlYWFi
OC4uODUyZjFhMWE2YTIwMTU3YTM2YmM2ZTcwZDc3YTMzNWVmNDEzZDVkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtNzIsNiArNzIsOCBAQCBzdGF0aWMg
c2l6ZV90IHNpemVPZkl0ZW1JbkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBz
aXplb2YoQ2xpcCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDoKICAgICAgICAgcmV0dXJu
IHNpemVvZihDbGlwT3V0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoK
KyAgICAgICAgcmV0dXJuIHNpemVvZihDbGlwVG9JbWFnZUJ1ZmZlcik7CiAgICAgY2FzZSBJdGVt
VHlwZTo6Q2xpcE91dFRvUGF0aDoKICAgICAgICAgcmV0dXJuIHNpemVvZihDbGlwT3V0VG9QYXRo
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKQEAgLTE3OCw2ICsxODAsNyBAQCBib29s
IGlzRHJhd2luZ0l0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclNo
YWRvdzoKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwOgogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBP
dXQ6CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJdGVt
VHlwZTo6Q2xpcE91dFRvUGF0aDoKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKICAgICBj
YXNlIEl0ZW1UeXBlOjpDbGlwVG9EcmF3aW5nQ29tbWFuZHM6CkBAIC0yODUsNiArMjg4LDcgQEAg
Ym9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVh
clNoYWRvdzoKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwOgogICAgIGNhc2UgSXRlbVR5cGU6OkNs
aXBPdXQ6CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CiAgICAgY2FzZSBJ
dGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0RvdHNGb3JE
b2N1bWVudE1hcmtlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IDc4YzgxN2QwZWExNDQ0Yjg2OWNhMjc4
YTMyMmJhNzhlYzM0ODUzYzUuLmYxZGM4NTI2YTZkODViN2M2N2MwMzIyMGIyMGU4ZWI2YzdmNmZj
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtNDgsNiArNDgs
NyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgQ2xlYXJTaGFkb3csCiAg
ICAgQ2xpcCwKICAgICBDbGlwT3V0LAorICAgIENsaXBUb0ltYWdlQnVmZmVyLAogICAgIENsaXBP
dXRUb1BhdGgsCiAgICAgQ2xpcFBhdGgsCiAgICAgQ2xpcFRvRHJhd2luZ0NvbW1hbmRzLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IGI1ZjQ1NDMxNWI4OWYxMzE3ODFj
NDViZTBiYTVkYTU4NjMyM2I0ZWEuLjQ3MmFjMWI3ZGE5ZDNmYWRlNzE3YjQ1ODRmMGQ2YzFlMWUy
MmM4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAgLTMwMiw2ICsz
MDIsMjMgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IENsaXBPdXQmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCitOT19SRVRVUk5fRFVFX1RP
X0FTU0VSVCB2b2lkIENsaXBUb0ltYWdlQnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmKSBj
b25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIENsaXBUb0ltYWdl
QnVmZmVyOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFdlYkNvcmU6OkltYWdlQnVm
ZmVyJiBpbWFnZUJ1ZmZlcikgY29uc3QKK3sKKyAgICBjb250ZXh0LmNsaXBUb0ltYWdlQnVmZmVy
KGltYWdlQnVmZmVyLCBtX2Rlc3RpbmF0aW9uUmVjdCk7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDbGlwVG9JbWFnZUJ1ZmZlciYgaXRl
bSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoImltYWdlLWJ1ZmZlci1pZGVudGlmaWVyIiwgaXRl
bS5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJkZXN0LXJl
Y3QiLCBpdGVtLmRlc3RpbmF0aW9uUmVjdCgpKTsKKyAgICByZXR1cm4gdHM7Cit9CisKIHZvaWQg
Q2xpcE91dFRvUGF0aDo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewog
ICAgIGNvbnRleHQuY2xpcE91dChtX3BhdGgpOwpAQCAtMTA0Nyw2ICsxMDY0LDcgQEAgc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0TWl0ZXJMaW1pdDogdHMgPDwgInNldC1taXRlci1saW1pdCI7
IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXA6IHRzIDw8ICJjbGlwIjsgYnJlYWs7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDogdHMgPDwgImNsaXAtb3V0IjsgYnJlYWs7CisgICAg
Y2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6IHRzIDw8ICJjbGlwLXRvLWltYWdlLWJ1
ZmZlciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXRUb1BhdGg6IHRzIDw8ICJj
bGlwLW91dC10by1wYXRoIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6IHRz
IDw8ICJjbGlwLXBhdGgiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9EcmF3aW5n
Q29tbWFuZHM6IHRzIDw8ICJjbGlwLXRvLWltYWdlLWJ1ZmZlciI7IGJyZWFrOwpAQCAtMTE1Myw2
ICsxMTcxLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbUhh
bmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXQ6CiAgICAgICAgIHRzIDw8IGl0
ZW0uZ2V0PENsaXBPdXQ+KCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OkNs
aXBUb0ltYWdlQnVmZmVyOgorICAgICAgICB0cyA8PCBpdGVtLmdldDxDbGlwVG9JbWFnZUJ1ZmZl
cj4oKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoK
ICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Q2xpcE91dFRvUGF0aD4oKTsKICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCBkNjliNmU4MDBhZjA1ZDBmZGFl
NmY4ZWIzNmQ0NTA0NzhlNWMzMjFjLi4zMmU0OTJkYmU2N2E4ZDU2NzFkMTRhNTE4ZGZmNzYyYTM3
OTM2MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTc0MCw2ICs3NDAs
MzAgQEAgcHJpdmF0ZToKICAgICBGbG9hdFJlY3QgbV9yZWN0OwogfTsKIAorY2xhc3MgQ2xpcFRv
SW1hZ2VCdWZmZXIgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRl
bVR5cGUgPSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlz
RHJhd2luZ0l0ZW0gPSBmYWxzZTsKKworICAgIENsaXBUb0ltYWdlQnVmZmVyKFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdGluYXRpb25SZWN0KQorICAgICAgICA6IG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKGltYWdl
QnVmZmVySWRlbnRpZmllcikKKyAgICAgICAgLCBtX2Rlc3RpbmF0aW9uUmVjdChkZXN0aW5hdGlv
blJlY3QpCisgICAgeworICAgIH0KKyAgICAKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUJ1ZmZlcklk
ZW50aWZpZXI7IH0KKyAgICBGbG9hdFJlY3QgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0KKworICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImKSBjb25zdDsKKworICAgIE5PX1JFVFVSTl9EVUVfVE9f
QVNTRVJUIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyOwor
ICAgIEZsb2F0UmVjdCBtX2Rlc3RpbmF0aW9uUmVjdDsKK307CisKIGNsYXNzIENsaXBPdXRUb1Bh
dGggewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJ
dGVtVHlwZTo6Q2xpcE91dFRvUGF0aDsKQEAgLTI1NjIsNiArMjU4Niw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGVhclNoYWRvdywKICAgICBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXAsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpDbGlwT3V0LAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
Q2xpcFRvSW1hZ2VCdWZmZXIsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpD
bGlwT3V0VG9QYXRoLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcFBh
dGgsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwVG9EcmF3aW5nQ29t
bWFuZHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggY2E3
M2I3YWI5ZWMwZjUwZGRjYTc3MTAyOGFjYmMzNzZkYjkyODY2My4uYTljNzMxYjdhYTdjNjY3N2M1
NjY1N2VkOTY3ZTdmZmYyMDRlNzQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcApAQCAtNDMyLDkgKzQzMiwxMCBAQCBJbnRSZWN0IFJlY29yZGVyOjpjbGlwQm91
bmRzKCkKICAgICByZXR1cm4gSW50UmVjdCgtMjA0OCwgLTIwNDgsIDQwOTYsIDQwOTYpOwogfQog
Ci12b2lkIFJlY29yZGVyOjpjbGlwVG9JbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYsIGNvbnN0IEZs
b2F0UmVjdCYpCit2b2lkIFJlY29yZGVyOjpjbGlwVG9JbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCiB7Ci0gICAgV1RGTG9nQWx3
YXlzKCJHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVyIGlzIG5vdCBjb21wYXRpYmxl
IHdpdGggRGlzcGxheUxpc3Q6OlJlY29yZGVyLiIpOworICAgIG1fZGlzcGxheUxpc3QuY2FjaGVJ
bWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcik7CisgICAgYXBwZW5kPENsaXBUb0ltYWdlQnVmZmVyPihp
bWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgZGVzdFJlY3QpOwogfQog
CiB2b2lkIFJlY29yZGVyOjpjbGlwVG9EcmF3aW5nQ29tbWFuZHMoY29uc3QgRmxvYXRSZWN0JiBk
ZXN0aW5hdGlvbiwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBGdW5jdGlvbjx2b2lkKEdyYXBoaWNz
Q29udGV4dCYpPiYmIGRyYXdpbmdGdW5jdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlcGxheWVyLmNwcAppbmRleCBhYjE2M2RlMGNjNjNjNTliMjNmY2U2MmZjNWQzYTNkZDY1NDU0
N2UxLi42NGU2NmViZDE3MzM0NzhmODA0YWE0MWMwZTI0YWJkZjYwN2M5MGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCkBAIC01MCw2ICs1MCwxMyBAQCB2b2lk
IFJlcGxheWVyOjphcHBseUl0ZW0oSXRlbUhhbmRsZSBpdGVtKQogICAgIGlmIChtX2RlbGVnYXRl
ICYmIG1fZGVsZWdhdGUtPmFwcGx5KGl0ZW0sIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGlmIChpdGVtLmlzPENsaXBUb0ltYWdlQnVmZmVyPigpKSB7CisgICAgICAgIGF1dG8m
IGNsaXBJdGVtID0gaXRlbS5nZXQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KCk7CisgICAgICAgIGlmIChh
dXRvKiBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZmZXJzLmdldChjbGlwSXRlbS5pbWFnZUJ1ZmZl
cklkZW50aWZpZXIoKSkpCisgICAgICAgICAgICBjbGlwSXRlbS5hcHBseShtX2NvbnRleHQsICpp
bWFnZUJ1ZmZlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoaXRlbS5pczxE
cmF3SW1hZ2VCdWZmZXI+KCkpIHsKICAgICAgICAgYXV0byYgZHJhd0l0ZW0gPSBpdGVtLmdldDxE
cmF3SW1hZ2VCdWZmZXI+KCk7CiAgICAgICAgIGlmIChhdXRvKiBpbWFnZUJ1ZmZlciA9IG1faW1h
Z2VCdWZmZXJzLmdldChkcmF3SXRlbS5pbWFnZUJ1ZmZlcklkZW50aWZpZXIoKSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
RGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dERpcmVjdDJELmNwcAppbmRleCAzYTY4ZGMzYWEwMTU1MzY4NDY0ZjUxNzIzNWVj
MGEzMTlmN2Q1N2UzLi44YzBkYTI3ZTg2YmQxMTc0Yzg0ZDgzYzJlNzcwZjI2MjJhZTllZjdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3ND
b250ZXh0RGlyZWN0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAKQEAgLTQzMSwxNSArNDMxLDYgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QKICAgICAgICAgRGlyZWN0MkQ6OmRyYXdQYXR0ZXJuKCpwbGF0
Zm9ybUNvbnRleHQoKSwgV1RGTW92ZSh0aWxlSW1hZ2UpLCBJbnRTaXplKGltYWdlLnNpemUoKSks
IGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMuY29t
cG9zaXRlT3BlcmF0b3IoKSwgb3B0aW9ucy5ibGVuZE1vZGUoKSk7CiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0KQotewotICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIEZsb2F0U2l6ZSBidWZmZXJEZXN0aW5hdGlvblNpemUgPSBidWZm
ZXIuc2l6ZUZvckRlc3RpbmF0aW9uU2l6ZShkZXN0UmVjdC5zaXplKCkpOwotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci19Ci0KIC8vIERyYXdzIGEgZmlsbGVkIHJlY3RhbmdsZSB3aXRoIGEgc3Ryb2tl
ZCBib3JkZXIuCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0
MkRCYWNrZW5kLmNwcAppbmRleCA2NTZjYjE0ZTcyODhmMjNhODkxN2YyMjg4OWRhNzNlOWJjOTRh
M2I4Li4zNzhhYWY0YzQwYzRlMTIyYWNiZTA2OTQzMmM3YWQ3ZWMyMDllZDczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3Qy
REJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9J
bWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZC5jcHAKQEAgLTI4OSw2ICsyODksMTEgQEAgdm9pZCBJ
bWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZDo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiBk
ZXN0Q29udGV4dCwgY29uc3QKICAgICAgICAgaW1hZ2UtPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0
LCBkZXN0UmVjdCwgYWRqdXN0ZWRTcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3Bh
Y2luZywgb3B0aW9ucyk7CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQ6OmNs
aXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCiBTdHJpbmcgSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQ6OnRv
RGF0YVVSTChjb25zdCBTdHJpbmcmLCBPcHRpb25hbDxkb3VibGU+LCBQcmVzZXJ2ZVJlc29sdXRp
b24pIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0
MkRCYWNrZW5kLmgKaW5kZXggMWQ1NzRhZWVjZGI5ZDIyODAyMTRmMWMwY2FmNWZjNTYwMDkxMTQ0
Ni4uODk1YWVmYWIzNGM1YTg4NjRjYjkyMjg4Yzg4N2VlNDc2NWIwNTExMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkRC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdl
QnVmZmVyRGlyZWN0MkRCYWNrZW5kLmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgogCiAgICAg
UmVmUHRyPEltYWdlPiBzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVzb2x1dGlvbikgb3ZlcnJpZGU7
CiAKKyAgICB2b2lkIGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCkgb3ZlcnJpZGU7CisKICAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSwgUHJlc2VydmVSZXNvbHV0aW9u
KSBjb25zdCBvdmVycmlkZTsKICAgICBWZWN0b3I8dWludDhfdD4gdG9EYXRhKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIE9wdGlvbmFsPGRvdWJsZT4gcXVhbGl0eSkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IHRvQkdSQURhdGEoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmNwcAppbmRleCBhZmQ0ZTlhMWEyM2YxMjdjMmIzODMxNTAwNGMyMjA1NGVhMDY5
MGU3Li5jZjM4NDljM2Y2ZTgyYTFjNzRhNWIyNWVmODM0ODE2Yzg5OWVhYjEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCkBAIC0zMDIsNiArMzAyLDcgQEAgT3B0aW9uYWw8RGlzcGxheUxpc3Q6
Okl0ZW1IYW5kbGU+IFdBUk5fVU5VU0VEX1JFVFVSTiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpk
ZWMKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xlYXJTaGFkb3c6CiAgICAgY2Fz
ZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXA6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkNsaXBPdXQ6CisgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBUb0lt
YWdlQnVmZmVyOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNU
TToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1h
cmtlcjoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0VsbGlwc2U6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IDQyN2NjNDUxNjNiMzUwNjY5YTgzZTNkNzhhMmYy
NmUyYWVkYWIzNWUuLmQ4YTdkNjY0MDQxZDQwZmY3YWQwZjJjMzE0ZGQ4Zjc1NzIwNzU3M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0yNTYsNiArMjU2LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xlYXJTaGFk
b3c6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwOgog
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcE91dDoKKyAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVm
ZmVyOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0
ZW5hdGVDVE06CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpE
cmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6RHJhd0VsbGlwc2U6Cg==
</data>
<flag name="commit-queue"
          id="430612"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413909</attachid>
            <date>2020-11-11 21:36:37 -0800</date>
            <delta_ts>2020-11-11 21:48:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218843-20201111213636.patch</filename>
            <type>text/plain</type>
            <size>29421</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ5ZTkyYjk5NTVlNDlh
ZTMwMDE1ODA0M2VmMDJmODQ4MmQ3NDM4ZC4uZWMzZjVkYmM0YjAzYmQwNDRkODRkNmYwNjBhNWI1
YjQwZjE0YjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTExLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IERpc3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNvcmQgdGhlIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBvZiB0aGUgSW1hZ2VCdWZmZXIuIEF0IHJlcGxheWluZworICAg
ICAgICB0aW1lLCB0aGUgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRoZSBDbGlwVG9J
bWFnZUJ1ZmZlciB3aWxsIGJlCisgICAgICAgIHJlc29sdmVkIHRvIGFuIEltYWdlQnVmZmVyLiBU
aGUgYWN0dWFsIGNsaXBwaW5nIHdpbGwgYmUgbW92ZWQgdG8gYW4gbmV3CisgICAgICAgIGZ1bmN0
aW9uIG5hbWVkIEltYWdlQnVmZmVyOjpjbGlwVG9NYXNrKCkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNsaXBUb01hc2sp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZm
ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGU6OmNvcHlUbyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlcjo6Q2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjppbWFnZUJ1ZmZlcklk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0lt
YWdlQnVmZmVyOjpkZXN0aW5hdGlvblJlY3QgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZl
cik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVy
RGlyZWN0MkRCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGlyZWN0
MkRCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
SW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuaDoKKwogMjAyMC0xMS0xMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhY2hlIHRo
ZSBOYXRpdmVJbWFnZSBpbiBHUFUgUHJvY2VzcyBhbmQgYWxsb3cgcmVmZXJlbmNpbmcgaXQgd2l0
aCBpdHMgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyMDZkNzIwMGM1YmRh
MjZmZmFkZDcyYTFiYjUxYTE2N2JhNmU2MjMuLmMzMjI2ZGMzYmExMzBjN2VkMDc2OWI2OTMxMGQ2
MGI1NjZlOGIwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTEtMTEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJ
bXBsZW1lbnQgRGlzcGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyIGl0ZW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIwLTExLTExICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzeXN0ZW0gdHJhY2Ug
cG9pbnRzIGZvciB0aGUgR1BVIHByb2Nlc3MgZGlzcGxheSBsaXN0IHByb2Nlc3NpbmcgbG9vcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oCmluZGV4IDg1NDAyMTVmNjIzN2NjMGEzZDYyNWUzMmZhOTY3ZGY5YTYyZWMyYWYu
LjIwNzAxZmE5YTY3NzU5Y2FmODAwNjg5MWJkYTFiNDdiZTdiY2Y1NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgK
QEAgLTE3NSw2ICsxNzUsMTQgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgYmFja2VuZC0+ZHJh
d0NvbnN1bWluZyhkZXN0Q29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQm
IGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7Cisg
ICAgICAgICAgICBmbHVzaENvbnRleHQoKTsKKyAgICAgICAgICAgIGJhY2tlbmQtPmNsaXBUb01h
c2soZGVzdENvbnRleHQsIGRlc3RSZWN0KTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHZvaWQg
Y29udmVydFRvTHVtaW5hbmNlTWFzaygpIG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggM2Zl
ZTg1OTgzMmE3YzAxNDFhMDc5MDFmYTk1NDI4YmRlNTJhMWJkMy4uOGNiMTI1OTc5NDk2YmQxOTA5
Y2U3MjJhYzBjNmJkNzcyMjA0OTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC04ODYsNiArODg2LDE5IEBAIEdy
YXBoaWNzQ29udGV4dDo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzUmVzdWx0IEdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvRHJhd2luZ0NvbW1hCiAgICAgcmV0dXJuIENsaXBUb0RyYXdpbmdDb21tYW5kc1Jl
c3VsdDo6U3VjY2VzczsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
blJlY3QpCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmNsaXBUb0ltYWdlQnVmZmVyKGlt
YWdlQnVmZmVyLCBkZXN0aW5hdGlvblJlY3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaW1hZ2VCdWZmZXIuY2xpcFRvTWFzaygqdGhpcywgZGVzdGluYXRpb25SZWN0KTsKK30KKwog
I2lmICFVU0UoQ0cpICYmICFVU0UoRElSRUNUMkQpICYmICFVU0UoQ0FJUk8pCiBJbnRSZWN0IEdy
YXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAwMjliNzUzY2MwNzEwNjEzYWRj
MjEyYmUzYWQ1ZDFmZDIwYjg0YmMxLi5kNTJhNTE2ZDYyZjg3YzVlNTcxYjRkYTI5Yjk1OTI3MWFk
ODc2YjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTk2LDYgKzk2LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZlB0cjxJbWFnZT4gc2lua0ludG9JbWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+LCBQcmVz
ZXJ2ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKTsKICAgICBzdGF0aWMgdm9p
ZCBkcmF3Q29uc3VtaW5nKFJlZlB0cjxJbWFnZUJ1ZmZlcj4sIEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0
UmVjdCgwLCAwLCAtMSwgLTEpLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwor
ICAgIAorICAgIHZpcnR1YWwgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0VG9M
dW1pbmFuY2VNYXNrKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Db2xvclNwYWNl
KENvbG9yU3BhY2Ugc3JjQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSBkc3RDb2xvclNwYWNlKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZC5oCmluZGV4IGFhOWIzNDFhMDU3M2YyYWQ0ZTllZDMwNTdjMDQyMWU5NTkxYWU1YzEu
LmYyMTNkMzk2YzcwMmQ2NWFiODljMGNkODQ3MjBiODI3YjQ5ZjczNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCkBA
IC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFJlZlB0
cjxJbWFnZT4gc2lua0ludG9JbWFnZShQcmVzZXJ2ZVJlc29sdXRpb24pOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3Q29uc3VtaW5nKEdyYXBoaWNzQ29udGV4dCYgZGVzdENv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjbGlw
VG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIHsgfQorCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiAgICAgdmlydHVhbCB2
b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSkgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCA2ODc4MTA2M2I5MjIxMDlkMGYwZDU4ODY0
ZDVjNjI4NmUwODAxODJkLi5lN2M0YTc5Y2MwOTgxNmNlMDZkOTliZDE5YTgxMzM3ZTljMWQ4YjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0yNTUsMjEgKzI1NSw2IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSBj
bGlwUnVsZSkKICAgICBDYWlybzo6Y2xpcFBhdGgoKnBsYXRmb3JtQ29udGV4dCgpLCBwYXRoLCBj
bGlwUnVsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQotewotICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2ltcGwp
IHsKLSAgICAgICAgbV9pbXBsLT5jbGlwVG9JbWFnZUJ1ZmZlcihidWZmZXIsIGRlc3RSZWN0KTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQo
KSk7Ci0gICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBidWZmZXIuY29weU5hdGl2ZUltYWdlKERv
bnRDb3B5QmFja2luZ1N0b3JlKSkKLSAgICAgICAgQ2Fpcm86OmNsaXBUb0ltYWdlQnVmZmVyKCpw
bGF0Zm9ybUNvbnRleHQoKSwgbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgZGVz
dFJlY3QpOwotfQotCiBJbnRSZWN0IEdyYXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kLmNwcAppbmRleCA3ZGExNzBlNTk5MGJlMTg1OTBlOTFkNGQxY2FhN2QwZTMxMDNmODE4
Li5kZTgwYmVmNjIyNzYzOGVjMzkxMGJkNWZmNmYxNzQ5NGQ0OGE5OTUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwCkBAIC04Myw2ICs4MywxMiBAQCB2b2lkIEltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0
LCBjb25zdCBGbAogICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4oKmRlc3RDb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpLCBpbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBtX2xvZ2ljYWxTaXpl
LCBkZXN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMpOwog
fQogCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjbGlwVG9NYXNrKEdyYXBoaWNzQ29u
dGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYg
KGF1dG8gaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpKQorICAg
ICAgICBDYWlybzo6Y2xpcFRvSW1hZ2VCdWZmZXIoKnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS0+
cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBkZXN0UmVjdCk7Cit9CisKIHZvaWQgSW1hZ2VCdWZmZXJD
YWlyb0JhY2tlbmQ6OnRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSBzcmNDb2xvclNwYWNl
LCBDb2xvclNwYWNlIGRlc3RDb2xvclNwYWNlKQogewogICAgIGlmIChzcmNDb2xvclNwYWNlID09
IGRlc3RDb2xvclNwYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmgKaW5kZXggMjNi
OTE5YWQ1MjJlYTE3OGIzMmMwMDlmNWQ4OGQ1ZDcxNmRlZjNhMS4uNDlkZWJlYTg1MDI4M2UwYjQ3
NmY3YjI5ZDhjZjVkM2NhMGFiMzA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5o
CkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdHRl
cm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIGNvbnN0
IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIGNsaXBUb01hc2so
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkgb3ZlcnJpZGU7CisK
ICAgICB2b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSBzcmNDb2xvclNwYWNlLCBD
b2xvclNwYWNlIGRlc3RDb2xvclNwYWNlKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyB0b0RhdGFV
UkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBQcmVz
ZXJ2ZVJlc29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGZl
OWFkMzc2NzMzMDc4NjU4NDBhM2ZjMDAzZDVhMDE2ZjA4NmZhOGEuLjI2ZTA0YzA5ODgyNGFjYWY0
ZmI4Yzg3NzIzMjdlOTA5ZjA2YmZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTQ5OCwzMCAr
NDk4LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QKICAgICB9CiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCkKLXsKLSAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9pbXBsKSB7Ci0gICAgICAgIG1faW1wbC0+
Y2xpcFRvSW1hZ2VCdWZmZXIoYnVmZmVyLCBkZXN0aW5hdGlvblJlY3QpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgRmxvYXRTaXplIGJ1ZmZlckRlc3RpbmF0aW9uU2l6ZSA9IGRlc3Rp
bmF0aW9uUmVjdC5zaXplKCk7Ci0gICAgYXV0byBuYXRpdmVJbWFnZSA9IGJ1ZmZlci5jb3B5TmF0
aXZlSW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOwotICAgIGF1dG8gaW1hZ2UgPSBuYXRpdmVJ
bWFnZSA/IG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCkgOiBudWxscHRyOwotCi0gICAgQ0dD
b250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKLSAgICAvLyBGSVhNRTogVGhp
cyBpbWFnZSBuZWVkcyB0byBiZSBncmF5c2NhbGUgdG8gYmUgdXNlZCBhcyBhbiBhbHBoYSBtYXNr
IGhlcmUuCi0gICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIGRlc3RpbmF0aW9uUmVj
dC54KCksIGRlc3RpbmF0aW9uUmVjdC55KCkgKyBidWZmZXJEZXN0aW5hdGlvblNpemUuaGVpZ2h0
KCkpOwotICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0xKTsKLSAgICBDR0NvbnRl
eHRDbGlwVG9SZWN0KGNvbnRleHQsIEZsb2F0UmVjdChGbG9hdFBvaW50KDAsIGJ1ZmZlckRlc3Rp
bmF0aW9uU2l6ZS5oZWlnaHQoKSAtIGRlc3RpbmF0aW9uUmVjdC5oZWlnaHQoKSksIGRlc3RpbmF0
aW9uUmVjdC5zaXplKCkpKTsKLSAgICBDR0NvbnRleHRDbGlwVG9NYXNrKGNvbnRleHQsIEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIGJ1ZmZlckRlc3RpbmF0aW9uU2l6ZSksIGltYWdlLmdldCgpKTsK
LSAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0LCAxLCAtMSk7Ci0gICAgQ0dDb250ZXh0VHJh
bnNsYXRlQ1RNKGNvbnRleHQsIC1kZXN0aW5hdGlvblJlY3QueCgpLCAtZGVzdGluYXRpb25SZWN0
LnkoKSAtIGRlc3RpbmF0aW9uUmVjdC5oZWlnaHQoKSk7Ci19Ci0KIC8vIERyYXdzIGEgZmlsbGVk
IHJlY3RhbmdsZSB3aXRoIGEgc3Ryb2tlZCBib3JkZXIuCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJUaGlja25lc3MpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKaW5kZXggOGM1YWJmN2M5M2U3OTcxM2Y3MTNhNmRiZGU5
YmMwMTdmMjFmODliYy4uN2RjMTBlYzViNmNmYWNhNzYyMmQ2YTg3MDhlZmJkN2VkMWM5NzU0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDR0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcApAQCAtMTI2LDYgKzEyNiwyMyBAQCB2b2lkIEltYWdl
QnVmZmVyQ0dCYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0
LCBjb25zdCBGbG9hdAogICAgICAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRl
c3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5n
LCBvcHRpb25zKTsKIH0KIAordm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6Y2xpcFRvTWFzayhH
cmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQor
eworICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5n
U3RvcmUpOworICAgIGlmICghbmF0aXZlSW1hZ2UpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAg
ICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gZGVzdENvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7
CisKKyAgICAvLyBGSVhNRTogVGhpcyBpbWFnZSBuZWVkcyB0byBiZSBncmF5c2NhbGUgdG8gYmUg
dXNlZCBhcyBhbiBhbHBoYSBtYXNrIGhlcmUuCisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNn
Q29udGV4dCwgZGVzdFJlY3QueCgpLCBkZXN0UmVjdC5tYXhZKCkpOworICAgIENHQ29udGV4dFNj
YWxlQ1RNKGNnQ29udGV4dCwgMSwgLTEpOworICAgIENHQ29udGV4dENsaXBUb1JlY3QoY2dDb250
ZXh0LCB7IHsgfSwgZGVzdFJlY3Quc2l6ZSgpIH0pOworICAgIENHQ29udGV4dENsaXBUb01hc2so
Y2dDb250ZXh0LCB7IHsgfSwgZGVzdFJlY3Quc2l6ZSgpIH0sIG5hdGl2ZUltYWdlLT5wbGF0Zm9y
bUltYWdlKCkuZ2V0KCkpOworICAgIENHQ29udGV4dFNjYWxlQ1RNKGNnQ29udGV4dCwgMSwgLTEp
OworICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjZ0NvbnRleHQsIC1kZXN0UmVjdC54KCksIC1k
ZXN0UmVjdC5tYXhZKCkpOworfQorCiBBZmZpbmVUcmFuc2Zvcm0gSW1hZ2VCdWZmZXJDR0JhY2tl
bmQ6OmJhc2VUcmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0o
MSwgMCwgMCwgLTEsIDAsIG1fbG9naWNhbFNpemUuaGVpZ2h0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5k
LmgKaW5kZXggYzdjYTM5ODAzNGYyNWEzMzQ5MjQ3ZDQzNGY1ZjY1OWY5MmFmM2Q0My4uN2VmMDU3
YWQ1M2EyNWI5MmU1OTJkMDVkYzYzNWVjNzZhNjliMjQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5o
CkBAIC0zOCw2ICszOCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9y
bSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgY29u
c3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICAKKyAgICB2b2lkIGNsaXBU
b01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkgb3ZlcnJp
ZGU7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCA0NjhhM2Q1NTQ1NjJhOTY3NjM1ZGMx
Yjc2OTlmYTI1NjZmNGNhODdjLi4wZjMyODI3YzQxOWU3YTYwZTNhYmFiNjdiZWQ4NTBlMGU4NDBi
MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTIyMiw2ICsyMjIsOCBAQCB2b2lk
IERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBw
ZW5kPENsaXA+KGl0ZW0uZ2V0PENsaXA+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXQ6
CiAgICAgICAgIHJldHVybiBhcHBlbmQ8Q2xpcE91dD4oaXRlbS5nZXQ8Q2xpcE91dD4oKSk7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CisgICAgICAgIHJldHVybiBhcHBl
bmQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KGl0ZW0uZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpKTsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOgogICAgICAgICByZXR1cm4gYXBwZW5kPENs
aXBPdXRUb1BhdGg+KGl0ZW0uZ2V0PENsaXBPdXRUb1BhdGg+KCkpOwogICAgIGNhc2UgSXRlbVR5
cGU6OkNsaXBQYXRoOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNw
cAppbmRleCBlYzJkNmVhNTUwOGEyMjA4NTI5N2E1NWJjNWMxNzM4MDBjNWE1YzRiLi41NTYwMGYz
ZTcyNGQ2NGEwZGJlMGQ1ZTM3NDE3OTkzNzk4MDVmZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMTIwLDYgKzEyMCwxMCBAQCB2b2lkIEl0ZW1I
YW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICAgICAgZ2V0PENsaXBP
dXQ+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBJ
dGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6IHsKKyAgICAgICAgZ2V0PENsaXBUb0ltYWdlQnVm
ZmVyPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2Ug
SXRlbVR5cGU6OkNsaXBPdXRUb1BhdGg6IHsKICAgICAgICAgZ2V0PENsaXBPdXRUb1BhdGg+KCku
YXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQyMCw2ICs0MjQsMTAgQEAgdm9p
ZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Ry
aXZpYWxseV9kZXN0cnVjdGlibGU8Q2xpcE91dD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjogeworICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxDbGlwVG9JbWFnZUJ1
ZmZlcj46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBl
OjpDb25jYXRlbmF0ZUNUTTogewogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlh
bGx5X2Rlc3RydWN0aWJsZTxDb25jYXRlbmF0ZUNUTT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtNjg3LDYgKzY5NSwxMCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmNvcHlUbyhJdGVtSGFuZGxl
IGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAgICBuZXcgKGl0ZW1PZmZzZXQpIENsaXBPdXQoZ2V0
PENsaXBPdXQ+KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6
OkNsaXBUb0ltYWdlQnVmZmVyOiB7CisgICAgICAgIG5ldyAoaXRlbU9mZnNldCkgQ2xpcFRvSW1h
Z2VCdWZmZXIoZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTTogewogICAgICAgICBuZXcgKGl0
ZW1PZmZzZXQpIENvbmNhdGVuYXRlQ1RNKGdldDxDb25jYXRlbmF0ZUNUTT4oKSk7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCBh
MWFkNDYwMWE2ZDkyMmRjOTc4MDA4NGM4MzQxMGZkNWM1ZWVhYWI4Li44NTJmMWExYTZhMjAxNTdh
MzZiYzZlNzBkNzdhMzM1ZWY0MTNkNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbVR5cGUuY3BwCkBAIC03Miw2ICs3Miw4IEBAIHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUlu
Qnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIHNpemVvZihDbGlwKTsKICAgICBj
YXNlIEl0ZW1UeXBlOjpDbGlwT3V0OgogICAgICAgICByZXR1cm4gc2l6ZW9mKENsaXBPdXQpOwor
ICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOgorICAgICAgICByZXR1cm4gc2l6
ZW9mKENsaXBUb0ltYWdlQnVmZmVyKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRo
OgogICAgICAgICByZXR1cm4gc2l6ZW9mKENsaXBPdXRUb1BhdGgpOwogICAgIGNhc2UgSXRlbVR5
cGU6OkNsaXBQYXRoOgpAQCAtMTc4LDYgKzE4MCw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVt
VHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyU2hhZG93OgogICAgIGNhc2UgSXRl
bVR5cGU6OkNsaXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDoKKyAgICBjYXNlIEl0ZW1U
eXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRo
OgogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOgogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBU
b0RyYXdpbmdDb21tYW5kczoKQEAgLTI4NSw2ICsyODgsNyBAQCBib29sIGlzSW5saW5lSXRlbShJ
dGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyU2hhZG93OgogICAgIGNhc2Ug
SXRlbVR5cGU6OkNsaXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDoKKyAgICBjYXNlIEl0
ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0
ZUNUTToKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAg
IGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxpcHNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1UeXBlLmgKaW5kZXggNzhjODE3ZDBlYTE0NDRiODY5Y2EyNzhhMzIyYmE3OGVjMzQ4NTNjNS4u
ZjFkYzg1MjZhNmQ4NWI3YzY3YzAzMjIwYjIwZThlYjZjN2Y2ZmM5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC00OCw2ICs0OCw3IEBAIGVudW0gY2xhc3MgSXRl
bVR5cGUgOiB1aW50OF90IHsKICAgICBDbGVhclNoYWRvdywKICAgICBDbGlwLAogICAgIENsaXBP
dXQsCisgICAgQ2xpcFRvSW1hZ2VCdWZmZXIsCiAgICAgQ2xpcE91dFRvUGF0aCwKICAgICBDbGlw
UGF0aCwKICAgICBDbGlwVG9EcmF3aW5nQ29tbWFuZHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5jcHAKaW5kZXggYjVmNDU0MzE1Yjg5ZjEzMTc4MWM0NWJlMGJhNWRhNTg2MzIzYjRl
YS4uNDcyYWMxYjdkYTlkM2ZhZGU3MTdiNDU4NGYwZDZjMWUxZTIyYzgxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMzAyLDYgKzMwMiwyMyBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xpcE91dCYgaXRlbSkK
ICAgICByZXR1cm4gdHM7CiB9CiAKK05PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgQ2xpcFRv
SW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Cit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKSBj
b25zdAoreworICAgIGNvbnRleHQuY2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIG1fZGVz
dGluYXRpb25SZWN0KTsKK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IENsaXBUb0ltYWdlQnVmZmVyJiBpdGVtKQoreworICAgIHRzLmR1bXBQ
cm9wZXJ0eSgiaW1hZ2UtYnVmZmVyLWlkZW50aWZpZXIiLCBpdGVtLmltYWdlQnVmZmVySWRlbnRp
ZmllcigpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImRlc3QtcmVjdCIsIGl0ZW0uZGVzdGluYXRp
b25SZWN0KCkpOworICAgIHJldHVybiB0czsKK30KKwogdm9pZCBDbGlwT3V0VG9QYXRoOjphcHBs
eShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4dC5jbGlwT3V0
KG1fcGF0aCk7CkBAIC0xMDQ3LDYgKzEwNjQsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpT
ZXRNaXRlckxpbWl0OiB0cyA8PCAic2V0LW1pdGVyLWxpbWl0IjsgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6Q2xpcDogdHMgPDwgImNsaXAiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpD
bGlwT3V0OiB0cyA8PCAiY2xpcC1vdXQiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlw
VG9JbWFnZUJ1ZmZlcjogdHMgPDwgImNsaXAtdG8taW1hZ2UtYnVmZmVyIjsgYnJlYWs7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDogdHMgPDwgImNsaXAtb3V0LXRvLXBhdGgiOyBi
cmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDogdHMgPDwgImNsaXAtcGF0aCI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0RyYXdpbmdDb21tYW5kczogdHMgPDwgImNs
aXAtdG8taW1hZ2UtYnVmZmVyIjsgYnJlYWs7CkBAIC0xMTUzLDYgKzExNzEsOSBAQCBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6Q2xpcE91dDoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Q2xpcE91dD4oKTsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6Cisg
ICAgICAgIHRzIDw8IGl0ZW0uZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOgogICAgICAgICB0cyA8PCBpdGVt
LmdldDxDbGlwT3V0VG9QYXRoPigpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCmluZGV4IGQ2OWI2ZTgwMGFmMDVkMGZkYWU2ZjhlYjM2ZDQ1MDQ3OGU1YzMy
MWMuLjMyZTQ5MmRiZTY3YThkNTY3MWQxNGE1MThkZmY3NjJhMzc5MzYzNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtNzQwLDYgKzc0MCwzMCBAQCBwcml2YXRlOgogICAg
IEZsb2F0UmVjdCBtX3JlY3Q7CiB9OwogCitjbGFzcyBDbGlwVG9JbWFnZUJ1ZmZlciB7CitwdWJs
aWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpD
bGlwVG9JbWFnZUJ1ZmZlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVt
ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNl
OworCisgICAgQ2xpcFRvSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlt
YWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlvblJlY3QpCisg
ICAgICAgIDogbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQor
ICAgICAgICAsIG1fZGVzdGluYXRpb25SZWN0KGRlc3RpbmF0aW9uUmVjdCkKKyAgICB7CisgICAg
fQorICAgIAorICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsgfQorICAgIEZs
b2F0UmVjdCBkZXN0aW5hdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uUmVj
dDsgfQorCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpJbWFnZUJ1
ZmZlciYpIGNvbnN0OworCisgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBhcHBseShH
cmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgRmxvYXRSZWN0IG1fZGVz
dGluYXRpb25SZWN0OworfTsKKwogY2xhc3MgQ2xpcE91dFRvUGF0aCB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpDbGlwT3V0VG9Q
YXRoOwpAQCAtMjU2Miw2ICsyNTg2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkNsZWFyU2hhZG93LAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6Q2xpcCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBPdXQs
CisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlciwK
ICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBPdXRUb1BhdGgsCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwUGF0aCwKICAgICBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBUb0RyYXdpbmdDb21tYW5kcywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBjYTczYjdhYjllYzBmNTBkZGNhNzcx
MDI4YWNiYzM3NmRiOTI4NjYzLi5hOWM3MzFiN2FhN2M2Njc3YzU2NjU3ZWQ5NjdlN2ZmZjIwNGU3
NDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00MzIs
OSArNDMyLDEwIEBAIEludFJlY3QgUmVjb3JkZXI6OmNsaXBCb3VuZHMoKQogICAgIHJldHVybiBJ
bnRSZWN0KC0yMDQ4LCAtMjA0OCwgNDA5NiwgNDA5Nik7CiB9CiAKLXZvaWQgUmVjb3JkZXI6OmNs
aXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgUmVj
b3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBXVEZMb2dBbHdheXMoIkdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvSW1hZ2VCdWZmZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBEaXNwbGF5TGlzdDo6
UmVjb3JkZXIuIik7CisgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUltYWdlQnVmZmVyKGltYWdlQnVm
ZmVyKTsKKyAgICBhcHBlbmQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KGltYWdlQnVmZmVyLnJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpLCBkZXN0UmVjdCk7CiB9CiAKIHZvaWQgUmVjb3JkZXI6OmNs
aXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UsIEZ1bmN0aW9uPHZvaWQoR3JhcGhpY3NDb250ZXh0Jik+JiYgZHJhd2lu
Z0Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCmluZGV4
IGFiMTYzZGUwY2M2M2M1OWIyM2ZjZTYyZmM1ZDNhM2RkNjU0NTQ3ZTEuLjY0ZTY2ZWJkMTczMzQ3
OGY4MDRhYTQxYzBlMjRhYmRmNjA3YzkwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZXBsYXllci5jcHAKQEAgLTUwLDYgKzUwLDEzIEBAIHZvaWQgUmVwbGF5ZXI6OmFwcGx5SXRl
bShJdGVtSGFuZGxlIGl0ZW0pCiAgICAgaWYgKG1fZGVsZWdhdGUgJiYgbV9kZWxlZ2F0ZS0+YXBw
bHkoaXRlbSwgbV9jb250ZXh0KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGl0ZW0uaXM8
Q2xpcFRvSW1hZ2VCdWZmZXI+KCkpIHsKKyAgICAgICAgYXV0byYgY2xpcEl0ZW0gPSBpdGVtLmdl
dDxDbGlwVG9JbWFnZUJ1ZmZlcj4oKTsKKyAgICAgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0g
bV9pbWFnZUJ1ZmZlcnMuZ2V0KGNsaXBJdGVtLmltYWdlQnVmZmVySWRlbnRpZmllcigpKSkKKyAg
ICAgICAgICAgIGNsaXBJdGVtLmFwcGx5KG1fY29udGV4dCwgKmltYWdlQnVmZmVyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChpdGVtLmlzPERyYXdJbWFnZUJ1ZmZlcj4oKSkg
ewogICAgICAgICBhdXRvJiBkcmF3SXRlbSA9IGl0ZW0uZ2V0PERyYXdJbWFnZUJ1ZmZlcj4oKTsK
ICAgICAgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlcnMuZ2V0KGRyYXdJ
dGVtLmltYWdlQnVmZmVySWRlbnRpZmllcigpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwCmluZGV4IDNhNjhkYzNhYTAxNTUzNjg0NjRmNTE3MjM1ZWMwYTMxOWY3ZDU3ZTMuLjhjMGRh
MjdlODZiZDExNzRjODRkODNjMmU3NzBmMjYyMmFlOWVmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dERpcmVjdDJELmNwcApAQCAtNDMxLDE1ICs0MzEsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dAogICAgICAgICBEaXJlY3QyRDo6ZHJhd1BhdHRlcm4oKnBsYXRmb3JtQ29udGV4dCgpLCBXVEZN
b3ZlKHRpbGVJbWFnZSksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJlY3QsIHRpbGVSZWN0
LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucy5jb21wb3NpdGVPcGVyYXRvcigpLCBv
cHRpb25zLmJsZW5kTW9kZSgpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0lt
YWdlQnVmZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qp
Ci17Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
RmxvYXRTaXplIGJ1ZmZlckRlc3RpbmF0aW9uU2l6ZSA9IGJ1ZmZlci5zaXplRm9yRGVzdGluYXRp
b25TaXplKGRlc3RSZWN0LnNpemUoKSk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogLy8g
RHJhd3MgYSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGggYSBzdHJva2VkIGJvcmRlci4KIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRl
clRoaWNrbmVzcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuY3BwCmluZGV4
IDY1NmNiMTRlNzI4OGYyM2E4OTE3ZjIyODg5ZGE3M2U5YmM5NGEzYjguLjM3OGFhZjRjNDBjNGUx
MjJhY2JlMDY5NDMyYzdhZDdlYzIwOWVkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkRC
YWNrZW5kLmNwcApAQCAtMjg5LDYgKzI4OSwxMSBAQCB2b2lkIEltYWdlQnVmZmVyRGlyZWN0MkRC
YWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdAog
ICAgICAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3Rl
ZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0K
IAordm9pZCBJbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZDo6Y2xpcFRvTWFzayhHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
IFN0cmluZyBJbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZDo6dG9EYXRhVVJMKGNvbnN0IFN0cmlu
ZyYsIE9wdGlvbmFsPGRvdWJsZT4sIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkRCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuaAppbmRleCAx
ZDU3NGFlZWNkYjlkMjI4MDIxNGYxYzBjYWY1ZmM1NjAwOTExNDQ2Li44OTVhZWZhYjM0YzVhODg2
NGNiOTIyODhjODg3ZWU0NzY1YjA1MTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tl
bmQuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8SW1hZ2U+IHNpbmtJ
bnRvSW1hZ2UoUHJlc2VydmVSZXNvbHV0aW9uKSBvdmVycmlkZTsKIAorICAgIHZvaWQgY2xpcFRv
TWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSBvdmVycmlk
ZTsKKwogICAgIFN0cmluZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9u
YWw8ZG91YmxlPiBxdWFsaXR5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOwog
ICAgIFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9u
YWw8ZG91YmxlPiBxdWFsaXR5KSBjb25zdCBvdmVycmlkZTsKICAgICBWZWN0b3I8dWludDhfdD4g
dG9CR1JBRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4
IGFmZDRlOWExYTIzZjEyN2MyYjM4MzE1MDA0YzIyMDU0ZWEwNjkwZTcuLmNmMzg0OWMzZjZlODJh
MWM3NGE1YjI1ZWY4MzQ4MTZjODk5ZWFiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAg
LTMwMiw2ICszMDIsNyBAQCBPcHRpb25hbDxEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZT4gV0FSTl9V
TlVTRURfUkVUVVJOIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlYwogICAgIGNhc2UgRGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpDbGVhclNoYWRvdzoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6Q2xpcDoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcE91dDoKKyAg
ICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CiAgICAgY2Fz
ZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgIGNhc2UgRGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgogICAgIGNhc2UgRGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmgKaW5kZXggNDI3Y2M0NTE2M2IzNTA2NjlhODNlM2Q3OGEyZjI2ZTJhZWRhYjM1ZS4uZDhhN2Q2
NjQwNDFkNDBmZjdhZDBmMmMzMTRkZDhmNzU3MjA3NTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgKQEAgLTI1Niw2ICsyNTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGVhclNoYWRvdzoKICAgICAgICAgY2FzZSBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXA6CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwT3V0OgorICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CiAgICAgICAgIGNhc2Ug
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICAgICAg
Y2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRN
YXJrZXI6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3
RWxsaXBzZToK
</data>
<flag name="commit-queue"
          id="430613"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413910</attachid>
            <date>2020-11-11 21:46:51 -0800</date>
            <delta_ts>2020-11-11 23:33:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218843-20201111214650.patch</filename>
            <type>text/plain</type>
            <size>29433</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ5ZTkyYjk5NTVlNDlh
ZTMwMDE1ODA0M2VmMDJmODQ4MmQ3NDM4ZC4uZWMzZjVkYmM0YjAzYmQwNDRkODRkNmYwNjBhNWI1
YjQwZjE0YjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTExLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IERpc3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNvcmQgdGhlIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBvZiB0aGUgSW1hZ2VCdWZmZXIuIEF0IHJlcGxheWluZworICAg
ICAgICB0aW1lLCB0aGUgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRoZSBDbGlwVG9J
bWFnZUJ1ZmZlciB3aWxsIGJlCisgICAgICAgIHJlc29sdmVkIHRvIGFuIEltYWdlQnVmZmVyLiBU
aGUgYWN0dWFsIGNsaXBwaW5nIHdpbGwgYmUgbW92ZWQgdG8gYW4gbmV3CisgICAgICAgIGZ1bmN0
aW9uIG5hbWVkIEltYWdlQnVmZmVyOjpjbGlwVG9NYXNrKCkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNsaXBUb01hc2sp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZm
ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGU6OmNvcHlUbyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlcjo6Q2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjppbWFnZUJ1ZmZlcklk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0lt
YWdlQnVmZmVyOjpkZXN0aW5hdGlvblJlY3QgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZl
cik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVy
RGlyZWN0MkRCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGlyZWN0
MkRCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
SW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuaDoKKwogMjAyMC0xMS0xMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIENhY2hlIHRo
ZSBOYXRpdmVJbWFnZSBpbiBHUFUgUHJvY2VzcyBhbmQgYWxsb3cgcmVmZXJlbmNpbmcgaXQgd2l0
aCBpdHMgUmVtb3RlUmVzb3VyY2VJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyMDZkNzIwMGM1YmRh
MjZmZmFkZDcyYTFiYjUxYTE2N2JhNmU2MjMuLmMzMjI2ZGMzYmExMzBjN2VkMDc2OWI2OTMxMGQ2
MGI1NjZlOGIwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTEtMTEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJ
bXBsZW1lbnQgRGlzcGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyIGl0ZW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIwLTExLTExICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzeXN0ZW0gdHJhY2Ug
cG9pbnRzIGZvciB0aGUgR1BVIHByb2Nlc3MgZGlzcGxheSBsaXN0IHByb2Nlc3NpbmcgbG9vcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oCmluZGV4IDg1NDAyMTVmNjIzN2NjMGEzZDYyNWUzMmZhOTY3ZGY5YTYyZWMyYWYu
LjIwNzAxZmE5YTY3NzU5Y2FmODAwNjg5MWJkYTFiNDdiZTdiY2Y1NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgK
QEAgLTE3NSw2ICsxNzUsMTQgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgYmFja2VuZC0+ZHJh
d0NvbnN1bWluZyhkZXN0Q29udGV4dCwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wdGlvbnMpOwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQm
IGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBlbnN1cmVCYWNrZW5kQ3JlYXRlZCgpKSB7Cisg
ICAgICAgICAgICBmbHVzaENvbnRleHQoKTsKKyAgICAgICAgICAgIGJhY2tlbmQtPmNsaXBUb01h
c2soZGVzdENvbnRleHQsIGRlc3RSZWN0KTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHZvaWQg
Y29udmVydFRvTHVtaW5hbmNlTWFzaygpIG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggM2Zl
ZTg1OTgzMmE3YzAxNDFhMDc5MDFmYTk1NDI4YmRlNTJhMWJkMy4uOGNiMTI1OTc5NDk2YmQxOTA5
Y2U3MjJhYzBjNmJkNzcyMjA0OTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC04ODYsNiArODg2LDE5IEBAIEdy
YXBoaWNzQ29udGV4dDo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzUmVzdWx0IEdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvRHJhd2luZ0NvbW1hCiAgICAgcmV0dXJuIENsaXBUb0RyYXdpbmdDb21tYW5kc1Jl
c3VsdDo6U3VjY2VzczsKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVm
ZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5hdGlv
blJlY3QpCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmNsaXBUb0ltYWdlQnVmZmVyKGlt
YWdlQnVmZmVyLCBkZXN0aW5hdGlvblJlY3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaW1hZ2VCdWZmZXIuY2xpcFRvTWFzaygqdGhpcywgZGVzdGluYXRpb25SZWN0KTsKK30KKwog
I2lmICFVU0UoQ0cpICYmICFVU0UoRElSRUNUMkQpICYmICFVU0UoQ0FJUk8pCiBJbnRSZWN0IEdy
YXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAwMjliNzUzY2MwNzEwNjEzYWRj
MjEyYmUzYWQ1ZDFmZDIwYjg0YmMxLi5kNTJhNTE2ZDYyZjg3YzVlNTcxYjRkYTI5Yjk1OTI3MWFk
ODc2YjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTk2LDYgKzk2LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZlB0cjxJbWFnZT4gc2lua0ludG9JbWFnZShSZWZQdHI8SW1hZ2VCdWZmZXI+LCBQcmVz
ZXJ2ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKTsKICAgICBzdGF0aWMgdm9p
ZCBkcmF3Q29uc3VtaW5nKFJlZlB0cjxJbWFnZUJ1ZmZlcj4sIEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0
UmVjdCgwLCAwLCAtMSwgLTEpLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgPSB7IH0pOwor
ICAgIAorICAgIHZpcnR1YWwgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0VG9M
dW1pbmFuY2VNYXNrKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1Db2xvclNwYWNl
KENvbG9yU3BhY2Ugc3JjQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSBkc3RDb2xvclNwYWNlKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
QmFja2VuZC5oCmluZGV4IGFhOWIzNDFhMDU3M2YyYWQ0ZTllZDMwNTdjMDQyMWU5NTkxYWU1YzEu
LmYyMTNkMzk2YzcwMmQ2NWFiODljMGNkODQ3MjBiODI3YjQ5ZjczNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZC5oCkBA
IC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFJlZlB0
cjxJbWFnZT4gc2lua0ludG9JbWFnZShQcmVzZXJ2ZVJlc29sdXRpb24pOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBkcmF3Q29uc3VtaW5nKEdyYXBoaWNzQ29udGV4dCYgZGVzdENv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjbGlw
VG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIHsgfQorCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiAgICAgdmlydHVhbCB2
b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSwgQ29sb3JTcGFjZSkgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCA2ODc4MTA2M2I5MjIxMDlkMGYwZDU4ODY0
ZDVjNjI4NmUwODAxODJkLi5lN2M0YTc5Y2MwOTgxNmNlMDZkOTliZDE5YTgxMzM3ZTljMWQ4YjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0yNTUsMjEgKzI1NSw2IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwUGF0aChjb25zdCBQYXRoJiBwYXRoLCBXaW5kUnVsZSBj
bGlwUnVsZSkKICAgICBDYWlybzo6Y2xpcFBhdGgoKnBsYXRmb3JtQ29udGV4dCgpLCBwYXRoLCBj
bGlwUnVsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQotewotICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2ltcGwp
IHsKLSAgICAgICAgbV9pbXBsLT5jbGlwVG9JbWFnZUJ1ZmZlcihidWZmZXIsIGRlc3RSZWN0KTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQo
KSk7Ci0gICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBidWZmZXIuY29weU5hdGl2ZUltYWdlKERv
bnRDb3B5QmFja2luZ1N0b3JlKSkKLSAgICAgICAgQ2Fpcm86OmNsaXBUb0ltYWdlQnVmZmVyKCpw
bGF0Zm9ybUNvbnRleHQoKSwgbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSwgZGVz
dFJlY3QpOwotfQotCiBJbnRSZWN0IEdyYXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcygpIGNvbnN0
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kLmNwcAppbmRleCA3ZGExNzBlNTk5MGJlMTg1OTBlOTFkNGQxY2FhN2QwZTMxMDNmODE4
Li4xMmE1YjYwYTJlOTA0NmExOTU4OTJiYWY1ZGQ3ZWQ0OTYzM2IzZTc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyb0JhY2tlbmQuY3BwCkBAIC04Myw2ICs4MywxMiBAQCB2b2lkIEltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0
LCBjb25zdCBGbAogICAgICAgICBDYWlybzo6ZHJhd1BhdHRlcm4oKmRlc3RDb250ZXh0LnBsYXRm
b3JtQ29udGV4dCgpLCBpbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBtX2xvZ2ljYWxTaXpl
LCBkZXN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIG9wdGlvbnMpOwog
fQogCit2b2lkIEltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5kOjpjbGlwVG9NYXNrKEdyYXBoaWNzQ29u
dGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYg
KGF1dG8gaW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpKQorICAg
ICAgICBDYWlybzo6Y2xpcFRvSW1hZ2VCdWZmZXIoKmRlc3RDb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpLCBpbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBkZXN0UmVjdCk7Cit9CisKIHZvaWQg
SW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OnRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSBz
cmNDb2xvclNwYWNlLCBDb2xvclNwYWNlIGRlc3RDb2xvclNwYWNlKQogewogICAgIGlmIChzcmND
b2xvclNwYWNlID09IGRlc3RDb2xvclNwYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9CYWNrZW5k
LmgKaW5kZXggMjNiOTE5YWQ1MjJlYTE3OGIzMmMwMDlmNWQ4OGQ1ZDcxNmRlZjNhMS4uNDlkZWJl
YTg1MDI4M2UwYjQ3NmY3YjI5ZDhjZjVkM2NhMGFiMzA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNh
aXJvQmFja2VuZC5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXcoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZv
aWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRl
cm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNw
YWNpbmcsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lk
IGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkg
b3ZlcnJpZGU7CisKICAgICB2b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSBzcmND
b2xvclNwYWNlLCBDb2xvclNwYWNlIGRlc3RDb2xvclNwYWNlKSBvdmVycmlkZTsKIAogICAgIFN0
cmluZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBx
dWFsaXR5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwCmluZGV4IGZlOWFkMzc2NzMzMDc4NjU4NDBhM2ZjMDAzZDVhMDE2ZjA4NmZhOGEuLjI2ZTA0
YzA5ODgyNGFjYWY0ZmI4Yzg3NzIzMjdlOTA5ZjA2YmZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAK
QEAgLTQ5OCwzMCArNDk4LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKElt
YWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QKICAgICB9CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVm
ZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0aW9uUmVjdCkKLXsKLSAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9pbXBsKSB7Ci0gICAg
ICAgIG1faW1wbC0+Y2xpcFRvSW1hZ2VCdWZmZXIoYnVmZmVyLCBkZXN0aW5hdGlvblJlY3QpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgRmxvYXRTaXplIGJ1ZmZlckRlc3RpbmF0aW9u
U2l6ZSA9IGRlc3RpbmF0aW9uUmVjdC5zaXplKCk7Ci0gICAgYXV0byBuYXRpdmVJbWFnZSA9IGJ1
ZmZlci5jb3B5TmF0aXZlSW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpOwotICAgIGF1dG8gaW1h
Z2UgPSBuYXRpdmVJbWFnZSA/IG5hdGl2ZUltYWdlLT5wbGF0Zm9ybUltYWdlKCkgOiBudWxscHRy
OwotCi0gICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKLSAgICAv
LyBGSVhNRTogVGhpcyBpbWFnZSBuZWVkcyB0byBiZSBncmF5c2NhbGUgdG8gYmUgdXNlZCBhcyBh
biBhbHBoYSBtYXNrIGhlcmUuCi0gICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIGRl
c3RpbmF0aW9uUmVjdC54KCksIGRlc3RpbmF0aW9uUmVjdC55KCkgKyBidWZmZXJEZXN0aW5hdGlv
blNpemUuaGVpZ2h0KCkpOwotICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0xKTsK
LSAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNvbnRleHQsIEZsb2F0UmVjdChGbG9hdFBvaW50KDAs
IGJ1ZmZlckRlc3RpbmF0aW9uU2l6ZS5oZWlnaHQoKSAtIGRlc3RpbmF0aW9uUmVjdC5oZWlnaHQo
KSksIGRlc3RpbmF0aW9uUmVjdC5zaXplKCkpKTsKLSAgICBDR0NvbnRleHRDbGlwVG9NYXNrKGNv
bnRleHQsIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGJ1ZmZlckRlc3RpbmF0aW9uU2l6ZSksIGlt
YWdlLmdldCgpKTsKLSAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0LCAxLCAtMSk7Ci0gICAg
Q0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIC1kZXN0aW5hdGlvblJlY3QueCgpLCAtZGVz
dGluYXRpb25SZWN0LnkoKSAtIGRlc3RpbmF0aW9uUmVjdC5oZWlnaHQoKSk7Ci19Ci0KIC8vIERy
YXdzIGEgZmlsbGVkIHJlY3RhbmdsZSB3aXRoIGEgc3Ryb2tlZCBib3JkZXIuCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBib3JkZXJU
aGlja25lc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKaW5kZXggOGM1YWJmN2M5M2U3OTcx
M2Y3MTNhNmRiZGU5YmMwMTdmMjFmODliYy4uN2RjMTBlYzViNmNmYWNhNzYyMmQ2YTg3MDhlZmJk
N2VkMWM5NzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcApAQCAtMTI2LDYgKzEyNiwyMyBA
QCB2b2lkIEltYWdlQnVmZmVyQ0dCYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQm
IGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdAogICAgICAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oZGVz
dENvbnRleHQsIGRlc3RSZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBo
YXNlLCBzcGFjaW5nLCBvcHRpb25zKTsKIH0KIAordm9pZCBJbWFnZUJ1ZmZlckNHQmFja2VuZDo6
Y2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0KQoreworICAgIGF1dG8gbmF0aXZlSW1hZ2UgPSBjb3B5TmF0aXZlSW1hZ2UoRG9u
dENvcHlCYWNraW5nU3RvcmUpOworICAgIGlmICghbmF0aXZlSW1hZ2UpCisgICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gZGVzdENvbnRleHQucGxhdGZv
cm1Db250ZXh0KCk7CisKKyAgICAvLyBGSVhNRTogVGhpcyBpbWFnZSBuZWVkcyB0byBiZSBncmF5
c2NhbGUgdG8gYmUgdXNlZCBhcyBhbiBhbHBoYSBtYXNrIGhlcmUuCisgICAgQ0dDb250ZXh0VHJh
bnNsYXRlQ1RNKGNnQ29udGV4dCwgZGVzdFJlY3QueCgpLCBkZXN0UmVjdC5tYXhZKCkpOworICAg
IENHQ29udGV4dFNjYWxlQ1RNKGNnQ29udGV4dCwgMSwgLTEpOworICAgIENHQ29udGV4dENsaXBU
b1JlY3QoY2dDb250ZXh0LCB7IHsgfSwgZGVzdFJlY3Quc2l6ZSgpIH0pOworICAgIENHQ29udGV4
dENsaXBUb01hc2soY2dDb250ZXh0LCB7IHsgfSwgZGVzdFJlY3Quc2l6ZSgpIH0sIG5hdGl2ZUlt
YWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCkpOworICAgIENHQ29udGV4dFNjYWxlQ1RNKGNnQ29u
dGV4dCwgMSwgLTEpOworICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjZ0NvbnRleHQsIC1kZXN0
UmVjdC54KCksIC1kZXN0UmVjdC5tYXhZKCkpOworfQorCiBBZmZpbmVUcmFuc2Zvcm0gSW1hZ2VC
dWZmZXJDR0JhY2tlbmQ6OmJhc2VUcmFuc2Zvcm0oKSBjb25zdAogewogICAgIHJldHVybiBBZmZp
bmVUcmFuc2Zvcm0oMSwgMCwgMCwgLTEsIDAsIG1fbG9naWNhbFNpemUuaGVpZ2h0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
R0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQ0dCYWNrZW5kLmgKaW5kZXggYzdjYTM5ODAzNGYyNWEzMzQ5MjQ3ZDQzNGY1ZjY1OWY5MmFm
M2Q0My4uN2VmMDU3YWQ1M2EyNWI5MmU1OTJkMDVkYzYzNWVjNzZhNjliMjQyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHQmFja2VuZC5oCkBAIC0zOCw2ICszOCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJhdyhH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKKyAgICAKKyAg
ICB2b2lkIGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCkgb3ZlcnJpZGU7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNv
bnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRleCA0NjhhM2Q1NTQ1
NjJhOTY3NjM1ZGMxYjc2OTlmYTI1NjZmNGNhODdjLi4wZjMyODI3YzQxOWU3YTYwZTNhYmFiNjdi
ZWQ4NTBlMGU4NDBiMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKQEAgLTIyMiw2ICsy
MjIsOCBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAg
ICByZXR1cm4gYXBwZW5kPENsaXA+KGl0ZW0uZ2V0PENsaXA+KCkpOwogICAgIGNhc2UgSXRlbVR5
cGU6OkNsaXBPdXQ6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8Q2xpcE91dD4oaXRlbS5nZXQ8Q2xp
cE91dD4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CisgICAgICAg
IHJldHVybiBhcHBlbmQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KGl0ZW0uZ2V0PENsaXBUb0ltYWdlQnVm
ZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOgogICAgICAgICByZXR1
cm4gYXBwZW5kPENsaXBPdXRUb1BhdGg+KGl0ZW0uZ2V0PENsaXBPdXRUb1BhdGg+KCkpOwogICAg
IGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtQnVmZmVyLmNwcAppbmRleCBlYzJkNmVhNTUwOGEyMjA4NTI5N2E1NWJjNWMxNzM4MDBjNWE1
YzRiLi41NTYwMGYzZTcyNGQ2NGEwZGJlMGQ1ZTM3NDE3OTkzNzk4MDVmZjI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMTIwLDYgKzEyMCwxMCBA
QCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKICAgICAg
ICAgZ2V0PENsaXBPdXQ+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6IHsKKyAgICAgICAgZ2V0PENs
aXBUb0ltYWdlQnVmZmVyPigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAg
fQogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXRUb1BhdGg6IHsKICAgICAgICAgZ2V0PENsaXBP
dXRUb1BhdGg+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQyMCw2ICs0
MjQsMTAgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Q2xpcE91dD46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjog
eworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxD
bGlwVG9JbWFnZUJ1ZmZlcj46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBj
YXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTTogewogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxDb25jYXRlbmF0ZUNUTT46OnZhbHVlKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtNjg3LDYgKzY5NSwxMCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmNvcHlU
byhJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBjb25zdAogICAgICAgICBuZXcgKGl0ZW1PZmZzZXQp
IENsaXBPdXQoZ2V0PENsaXBPdXQ+KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNh
c2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOiB7CisgICAgICAgIG5ldyAoaXRlbU9mZnNl
dCkgQ2xpcFRvSW1hZ2VCdWZmZXIoZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTTogewogICAg
ICAgICBuZXcgKGl0ZW1PZmZzZXQpIENvbmNhdGVuYXRlQ1RNKGdldDxDb25jYXRlbmF0ZUNUTT4o
KSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmNwcAppbmRleCBhMWFkNDYwMWE2ZDkyMmRjOTc4MDA4NGM4MzQxMGZkNWM1ZWVhYWI4Li44NTJm
MWExYTZhMjAxNTdhMzZiYzZlNzBkNzdhMzM1ZWY0MTNkNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC03Miw2ICs3Miw4IEBAIHN0YXRpYyBzaXplX3Qg
c2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIHNpemVvZihD
bGlwKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0OgogICAgICAgICByZXR1cm4gc2l6ZW9m
KENsaXBPdXQpOworICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOgorICAgICAg
ICByZXR1cm4gc2l6ZW9mKENsaXBUb0ltYWdlQnVmZmVyKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpD
bGlwT3V0VG9QYXRoOgogICAgICAgICByZXR1cm4gc2l6ZW9mKENsaXBPdXRUb1BhdGgpOwogICAg
IGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOgpAQCAtMTc4LDYgKzE4MCw3IEBAIGJvb2wgaXNEcmF3
aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyU2hhZG93Ogog
ICAgIGNhc2UgSXRlbVR5cGU6OkNsaXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDoKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpD
bGlwT3V0VG9QYXRoOgogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOgogICAgIGNhc2UgSXRl
bVR5cGU6OkNsaXBUb0RyYXdpbmdDb21tYW5kczoKQEAgLTI4NSw2ICsyODgsNyBAQCBib29sIGlz
SW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyU2hhZG93
OgogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDoK
KyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBl
OjpDb25jYXRlbmF0ZUNUTToKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50
TWFya2VyOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxpcHNlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXggNzhjODE3ZDBlYTE0NDRiODY5Y2EyNzhhMzIyYmE3
OGVjMzQ4NTNjNS4uZjFkYzg1MjZhNmQ4NWI3YzY3YzAzMjIwYjIwZThlYjZjN2Y2ZmM5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC00OCw2ICs0OCw3IEBAIGVu
dW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBDbGVhclNoYWRvdywKICAgICBDbGlw
LAogICAgIENsaXBPdXQsCisgICAgQ2xpcFRvSW1hZ2VCdWZmZXIsCiAgICAgQ2xpcE91dFRvUGF0
aCwKICAgICBDbGlwUGF0aCwKICAgICBDbGlwVG9EcmF3aW5nQ29tbWFuZHMsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggYjVmNDU0MzE1Yjg5ZjEzMTc4MWM0NWJlMGJh
NWRhNTg2MzIzYjRlYS4uNDcyYWMxYjdkYTlkM2ZhZGU3MTdiNDU4NGYwZDZjMWUxZTIyYzgxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtMzAyLDYgKzMwMiwyMyBA
QCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xp
cE91dCYgaXRlbSkKICAgICByZXR1cm4gdHM7CiB9CiAKK05PX1JFVFVSTl9EVUVfVE9fQVNTRVJU
IHZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Cit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgQ2xpcFRvSW1hZ2VCdWZmZXI6
OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGlt
YWdlQnVmZmVyKSBjb25zdAoreworICAgIGNvbnRleHQuY2xpcFRvSW1hZ2VCdWZmZXIoaW1hZ2VC
dWZmZXIsIG1fZGVzdGluYXRpb25SZWN0KTsKK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IENsaXBUb0ltYWdlQnVmZmVyJiBpdGVtKQorewor
ICAgIHRzLmR1bXBQcm9wZXJ0eSgiaW1hZ2UtYnVmZmVyLWlkZW50aWZpZXIiLCBpdGVtLmltYWdl
QnVmZmVySWRlbnRpZmllcigpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImRlc3QtcmVjdCIsIGl0
ZW0uZGVzdGluYXRpb25SZWN0KCkpOworICAgIHJldHVybiB0czsKK30KKwogdm9pZCBDbGlwT3V0
VG9QYXRoOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29u
dGV4dC5jbGlwT3V0KG1fcGF0aCk7CkBAIC0xMDQ3LDYgKzEwNjQsNyBAQCBzdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OiB0cyA8PCAic2V0LW1pdGVyLWxpbWl0IjsgYnJlYWs7
CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcDogdHMgPDwgImNsaXAiOyBicmVhazsKICAgICBjYXNl
IEl0ZW1UeXBlOjpDbGlwT3V0OiB0cyA8PCAiY2xpcC1vdXQiOyBicmVhazsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjogdHMgPDwgImNsaXAtdG8taW1hZ2UtYnVmZmVyIjsg
YnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDogdHMgPDwgImNsaXAtb3V0
LXRvLXBhdGgiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDogdHMgPDwgImNs
aXAtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0RyYXdpbmdDb21tYW5k
czogdHMgPDwgImNsaXAtdG8taW1hZ2UtYnVmZmVyIjsgYnJlYWs7CkBAIC0xMTUzLDYgKzExNzEs
OSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0
ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8
Q2xpcE91dD4oKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1h
Z2VCdWZmZXI6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOgogICAgICAg
ICB0cyA8PCBpdGVtLmdldDxDbGlwT3V0VG9QYXRoPigpOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IGQ2OWI2ZTgwMGFmMDVkMGZkYWU2ZjhlYjM2
ZDQ1MDQ3OGU1YzMyMWMuLjMyZTQ5MmRiZTY3YThkNTY3MWQxNGE1MThkZmY3NjJhMzc5MzYzNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtNzQwLDYgKzc0MCwzMCBAQCBw
cml2YXRlOgogICAgIEZsb2F0UmVjdCBtX3JlY3Q7CiB9OwogCitjbGFzcyBDbGlwVG9JbWFnZUJ1
ZmZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9
IEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
aXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5n
SXRlbSA9IGZhbHNlOworCisgICAgQ2xpcFRvSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0aW5h
dGlvblJlY3QpCisgICAgICAgIDogbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyKQorICAgICAgICAsIG1fZGVzdGluYXRpb25SZWN0KGRlc3RpbmF0aW9uUmVjdCkK
KyAgICB7CisgICAgfQorICAgIAorICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBpbWFn
ZUJ1ZmZlcklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVySWRlbnRpZmll
cjsgfQorICAgIEZsb2F0UmVjdCBkZXN0aW5hdGlvblJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Rl
c3RpbmF0aW9uUmVjdDsgfQorCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmLCBXZWJD
b3JlOjpJbWFnZUJ1ZmZlciYpIGNvbnN0OworCisgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQg
dm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXI7CisgICAgRmxv
YXRSZWN0IG1fZGVzdGluYXRpb25SZWN0OworfTsKKwogY2xhc3MgQ2xpcE91dFRvUGF0aCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBl
OjpDbGlwT3V0VG9QYXRoOwpAQCAtMjU2Miw2ICsyNTg2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsZWFyU2hhZG93LAogICAgIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6Q2xpcCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkNsaXBPdXQsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwVG9J
bWFnZUJ1ZmZlciwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBPdXRU
b1BhdGgsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwUGF0aCwKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBUb0RyYXdpbmdDb21tYW5kcywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBjYTczYjdhYjll
YzBmNTBkZGNhNzcxMDI4YWNiYzM3NmRiOTI4NjYzLi5hOWM3MzFiN2FhN2M2Njc3YzU2NjU3ZWQ5
NjdlN2ZmZjIwNGU3NDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
Y3BwCkBAIC00MzIsOSArNDMyLDEwIEBAIEludFJlY3QgUmVjb3JkZXI6OmNsaXBCb3VuZHMoKQog
ICAgIHJldHVybiBJbnRSZWN0KC0yMDQ4LCAtMjA0OCwgNDA5NiwgNDA5Nik7CiB9CiAKLXZvaWQg
UmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiwgY29uc3QgRmxvYXRSZWN0
JikKK3ZvaWQgUmVjb3JkZXI6OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1
ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBXVEZMb2dBbHdheXMoIkdy
YXBoaWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBE
aXNwbGF5TGlzdDo6UmVjb3JkZXIuIik7CisgICAgbV9kaXNwbGF5TGlzdC5jYWNoZUltYWdlQnVm
ZmVyKGltYWdlQnVmZmVyKTsKKyAgICBhcHBlbmQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KGltYWdlQnVm
ZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBkZXN0UmVjdCk7CiB9CiAKIHZvaWQg
UmVjb3JkZXI6OmNsaXBUb0RyYXdpbmdDb21tYW5kcyhjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIEZ1bmN0aW9uPHZvaWQoR3JhcGhpY3NDb250ZXh0
Jik+JiYgZHJhd2luZ0Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5
ZXIuY3BwCmluZGV4IGFiMTYzZGUwY2M2M2M1OWIyM2ZjZTYyZmM1ZDNhM2RkNjU0NTQ3ZTEuLjY0
ZTY2ZWJkMTczMzQ3OGY4MDRhYTQxYzBlMjRhYmRmNjA3YzkwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKQEAgLTUwLDYgKzUwLDEzIEBAIHZvaWQgUmVwbGF5
ZXI6OmFwcGx5SXRlbShJdGVtSGFuZGxlIGl0ZW0pCiAgICAgaWYgKG1fZGVsZWdhdGUgJiYgbV9k
ZWxlZ2F0ZS0+YXBwbHkoaXRlbSwgbV9jb250ZXh0KSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKGl0ZW0uaXM8Q2xpcFRvSW1hZ2VCdWZmZXI+KCkpIHsKKyAgICAgICAgYXV0byYgY2xpcEl0
ZW0gPSBpdGVtLmdldDxDbGlwVG9JbWFnZUJ1ZmZlcj4oKTsKKyAgICAgICAgaWYgKGF1dG8qIGlt
YWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlcnMuZ2V0KGNsaXBJdGVtLmltYWdlQnVmZmVySWRlbnRp
ZmllcigpKSkKKyAgICAgICAgICAgIGNsaXBJdGVtLmFwcGx5KG1fY29udGV4dCwgKmltYWdlQnVm
ZmVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChpdGVtLmlzPERyYXdJbWFn
ZUJ1ZmZlcj4oKSkgewogICAgICAgICBhdXRvJiBkcmF3SXRlbSA9IGl0ZW0uZ2V0PERyYXdJbWFn
ZUJ1ZmZlcj4oKTsKICAgICAgICAgaWYgKGF1dG8qIGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZl
cnMuZ2V0KGRyYXdJdGVtLmltYWdlQnVmZmVySWRlbnRpZmllcigpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3Qy
RC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0RGlyZWN0MkQuY3BwCmluZGV4IDNhNjhkYzNhYTAxNTUzNjg0NjRmNTE3MjM1ZWMwYTMxOWY3
ZDU3ZTMuLjhjMGRhMjdlODZiZDExNzRjODRkODNjMmU3NzBmMjYyMmFlOWVmN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRE
aXJlY3QyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dERpcmVjdDJELmNwcApAQCAtNDMxLDE1ICs0MzEsNiBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdAogICAgICAgICBEaXJlY3QyRDo6ZHJhd1BhdHRlcm4oKnBsYXRmb3JtQ29u
dGV4dCgpLCBXVEZNb3ZlKHRpbGVJbWFnZSksIEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgZGVzdFJl
Y3QsIHRpbGVSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucy5jb21wb3NpdGVP
cGVyYXRvcigpLCBvcHRpb25zLmJsZW5kTW9kZSgpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QpCi17Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgRmxvYXRTaXplIGJ1ZmZlckRlc3RpbmF0aW9uU2l6ZSA9IGJ1ZmZlci5zaXpl
Rm9yRGVzdGluYXRpb25TaXplKGRlc3RSZWN0LnNpemUoKSk7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQogLy8gRHJhd3MgYSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGggYSBzdHJva2VkIGJvcmRl
ci4KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IGZsb2F0IGJvcmRlclRoaWNrbmVzcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tl
bmQuY3BwCmluZGV4IDY1NmNiMTRlNzI4OGYyM2E4OTE3ZjIyODg5ZGE3M2U5YmM5NGEzYjguLjM3
OGFhZjRjNDBjNGUxMjJhY2JlMDY5NDMyYzdhZDdlYzIwOWVkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVm
ZmVyRGlyZWN0MkRCYWNrZW5kLmNwcApAQCAtMjg5LDYgKzI4OSwxMSBAQCB2b2lkIEltYWdlQnVm
ZmVyRGlyZWN0MkRCYWNrZW5kOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmIGRlc3RDb250
ZXh0LCBjb25zdAogICAgICAgICBpbWFnZS0+ZHJhd1BhdHRlcm4oZGVzdENvbnRleHQsIGRlc3RS
ZWN0LCBhZGp1c3RlZFNyY1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBv
cHRpb25zKTsKIH0KIAordm9pZCBJbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZDo6Y2xpcFRvTWFz
ayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKIFN0cmluZyBJbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2VuZDo6dG9EYXRhVVJM
KGNvbnN0IFN0cmluZyYsIE9wdGlvbmFsPGRvdWJsZT4sIFByZXNlcnZlUmVzb2x1dGlvbikgY29u
c3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkRCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tl
bmQuaAppbmRleCAxZDU3NGFlZWNkYjlkMjI4MDIxNGYxYzBjYWY1ZmM1NjAwOTExNDQ2Li44OTVh
ZWZhYjM0YzVhODg2NGNiOTIyODhjODg3ZWU0NzY1YjA1MTEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJE
aXJlY3QyREJhY2tlbmQuaApAQCAtNDcsNiArNDcsOCBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8
SW1hZ2U+IHNpbmtJbnRvSW1hZ2UoUHJlc2VydmVSZXNvbHV0aW9uKSBvdmVycmlkZTsKIAorICAg
IHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0KSBvdmVycmlkZTsKKwogICAgIFN0cmluZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0
IG92ZXJyaWRlOwogICAgIFZlY3Rvcjx1aW50OF90PiB0b0RhdGEoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgT3B0aW9uYWw8ZG91YmxlPiBxdWFsaXR5KSBjb25zdCBvdmVycmlkZTsKICAgICBWZWN0
b3I8dWludDhfdD4gdG9CR1JBRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCmluZGV4IGFmZDRlOWExYTIzZjEyN2MyYjM4MzE1MDA0YzIyMDU0ZWEwNjkwZTcuLmNm
Mzg0OWMzZjZlODJhMWM3NGE1YjI1ZWY4MzQ4MTZjODk5ZWFiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAKQEAgLTMwMiw2ICszMDIsNyBAQCBPcHRpb25hbDxEaXNwbGF5TGlzdDo6SXRlbUhh
bmRsZT4gV0FSTl9VTlVTRURfUkVUVVJOIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlYwogICAg
IGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGVhclNoYWRvdzoKICAgICBjYXNlIERpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6Q2xpcDoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
Q2xpcE91dDoKKyAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZm
ZXI6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAg
IGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgog
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmgKaW5kZXggNDI3Y2M0NTE2M2IzNTA2NjlhODNlM2Q3OGEyZjI2ZTJhZWRh
YjM1ZS4uZDhhN2Q2NjQwNDFkNDBmZjdhZDBmMmMzMTRkZDhmNzU3MjA3NTczZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTI1Niw2ICsyNTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGVhclNoYWRvdzoKICAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXA6CiAgICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwT3V0OgorICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNU
TToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdEb3Rz
Rm9yRG9jdW1lbnRNYXJrZXI6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpEcmF3RWxsaXBzZToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413915</attachid>
            <date>2020-11-11 23:33:03 -0800</date>
            <delta_ts>2020-11-12 01:09:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218843-20201111233302.patch</filename>
            <type>text/plain</type>
            <size>29378</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE3OTEwYWViYjZhZWVl
NGM5NjRmOGUyNDllNjAxZjNkNjJlODgzNi4uMDc1YzNhZWY4ZjVhZjNlMTIwNmNmNDkzM2ZmMmY4
NmRmZTlkODgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTExLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IERpc3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNvcmQgdGhlIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBvZiB0aGUgSW1hZ2VCdWZmZXIuIEF0IHJlcGxheWluZworICAg
ICAgICB0aW1lLCB0aGUgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRoZSBDbGlwVG9J
bWFnZUJ1ZmZlciB3aWxsIGJlCisgICAgICAgIHJlc29sdmVkIHRvIGFuIEltYWdlQnVmZmVyLiBU
aGUgYWN0dWFsIGNsaXBwaW5nIHdpbGwgYmUgbW92ZWQgdG8gYW4gbmV3CisgICAgICAgIGZ1bmN0
aW9uIG5hbWVkIEltYWdlQnVmZmVyOjpjbGlwVG9NYXNrKCkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNr
ZW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckJhY2tlbmQ6OmNsaXBUb01hc2sp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZm
ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVm
ZmVyQ2Fpcm9CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6Y2xpcFRvSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyQ0dCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGU6OmNvcHlUbyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0Ojppc0lubGluZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlcjo6Q2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0ltYWdlQnVmZmVyOjppbWFnZUJ1ZmZlcklk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkNsaXBUb0lt
YWdlQnVmZmVyOjpkZXN0aW5hdGlvblJlY3QgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllcjo6YXBwbHlJdGVtKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZl
cik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVy
RGlyZWN0MkRCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGlyZWN0
MkRCYWNrZW5kOjpjbGlwVG9NYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
SW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuaDoKKwogMjAyMC0xMS0xMSAgWmlyYW4gU3VuICA8
enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gUGVyY2VudGFnZSBoZWlnaHQg
b24gcmVwbGFjZWQgaXRlbSB3aXRoIHNjcm9sbGJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMmQ0MzkxMDI5YTYw
OTE3MzAyYzE0NjA4ODdmYjEyODU5Mjg3NGQ1Li5hYmI3Zjg3ZGU1MDc5NDBkNzVlZTI4YTI2ZGJj
N2M1MGQ4MDNlNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTExICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW1wbGVtZW50IERpc3BsYXlMaXN0OjpDbGlwVG9JbWFnZUJ1ZmZlciBpdGVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKwogMjAyMC0xMS0xMSAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjc0MTEpOiBVbmFi
bGUgdG8gIlN0YXJ0IEVsZW1lbnQgU2VsZWN0aW9uIiB3aXRoIFdlYiBJbnNwZWN0b3IgY2xvc2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmgKaW5kZXggOGY4NGU5YmEyMmNjZTVkOTI3NjJiNWFjNjc5MjMyMmVlZGEzNjlh
MS4uZjk2MGY4MDQwMjEzYTFiMjAzMzgxMjg3MjIxMGZkYWZkNjYyZjA3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aApAQCAtMTc1LDYgKzE3NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBiYWNrZW5kLT5k
cmF3Q29uc3VtaW5nKGRlc3RDb250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucyk7CiAg
ICAgICAgIH0KICAgICB9CisgICAgCisgICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4
dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpIG92ZXJyaWRlCisgICAg
eworICAgICAgICBpZiAoYXV0byogYmFja2VuZCA9IGVuc3VyZUJhY2tlbmRDcmVhdGVkKCkpIHsK
KyAgICAgICAgICAgIGZsdXNoQ29udGV4dCgpOworICAgICAgICAgICAgYmFja2VuZC0+Y2xpcFRv
TWFzayhkZXN0Q29udGV4dCwgZGVzdFJlY3QpOworICAgICAgICB9CisgICAgfQogCiAgICAgdm9p
ZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkgb3ZlcnJpZGUKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCAz
ZmVlODU5ODMyYTdjMDE0MWEwNzkwMWZhOTU0MjhiZGU1MmExYmQzLi44Y2IxMjU5Nzk0OTZiZDE5
MDljZTcyMmFjMGM2YmQ3NzIyMDQ5NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTg4Niw2ICs4ODYsMTkgQEAg
R3JhcGhpY3NDb250ZXh0OjpDbGlwVG9EcmF3aW5nQ29tbWFuZHNSZXN1bHQgR3JhcGhpY3NDb250
ZXh0OjpjbGlwVG9EcmF3aW5nQ29tbWEKICAgICByZXR1cm4gQ2xpcFRvRHJhd2luZ0NvbW1hbmRz
UmVzdWx0OjpTdWNjZXNzOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcFRvSW1hZ2VC
dWZmZXIoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RpbmF0
aW9uUmVjdCkKK3sKKyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAobV9pbXBsKSB7CisgICAgICAgIG1faW1wbC0+Y2xpcFRvSW1hZ2VCdWZmZXIo
aW1hZ2VCdWZmZXIsIGRlc3RpbmF0aW9uUmVjdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpbWFnZUJ1ZmZlci5jbGlwVG9NYXNrKCp0aGlzLCBkZXN0aW5hdGlvblJlY3QpOworfQor
CiAjaWYgIVVTRShDRykgJiYgIVVTRShESVJFQ1QyRCkgJiYgIVVTRShDQUlSTykKIEludFJlY3Qg
R3JhcGhpY3NDb250ZXh0OjpjbGlwQm91bmRzKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDg2ZjMxODIxM2NjOGE0ZjU1
MDQzZDVlZTA4YWI1ZGI3ZTE3OThmM2YuLmI5MTM0ZGQ3MmNlZTI4ZTZhMWFiNjVlZmYyYzA3YTZk
NTMxNzgwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaApAQCAtOTYsNiArOTYsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmUHRyPEltYWdlPiBzaW5rSW50b0ltYWdlKFJlZlB0cjxJbWFnZUJ1ZmZlcj4sIFBy
ZXNlcnZlUmVzb2x1dGlvbiA9IFByZXNlcnZlUmVzb2x1dGlvbjo6Tm8pOwogICAgIHN0YXRpYyB2
b2lkIGRyYXdDb25zdW1pbmcoUmVmUHRyPEltYWdlQnVmZmVyPiwgR3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxv
YXRSZWN0KDAsIDAsIC0xLCAtMSksIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJiA9IHsgfSk7
CisgICAgCisgICAgdmlydHVhbCB2b2lkIGNsaXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRU
b0x1bWluYW5jZU1hc2soKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zZm9ybUNvbG9yU3Bh
Y2UoQ29sb3JTcGFjZSBzcmNDb2xvclNwYWNlLCBDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXJCYWNrZW5kLmgKaW5kZXggNWUyZmEwMjEyMzhlMzVjZTE5YzBhNDVmYWFhYzM5OGM3MWNlZTNj
OC4uMWFiMGEyMWZmOTQ5ODk5Zjk4YmRhOWUwMGEwNmZkZmZkYjBkMzYzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kLmgK
QEAgLTkwLDYgKzkwLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVm
UHRyPEltYWdlPiBzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVzb2x1dGlvbik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIGRyYXdDb25zdW1pbmcoR3JhcGhpY3NDb250ZXh0JiBkZXN0
Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogCisgICAgdmlydHVhbCB2b2lkIGNs
aXBUb01hc2soR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgeyB9CisKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKICAgICB2aXJ0dWFs
IHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShDb2xvclNwYWNlLCBDb2xvclNwYWNlKSB7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDY4NzgxMDYzYjkyMjEwOWQwZjBkNTg4
NjRkNWM2Mjg2ZTA4MDE4MmQuLmU3YzRhNzljYzA5ODE2Y2UwNmQ5OWJkMTlhODEzMzdlOWMxZDhi
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTI1NSwyMSArMjU1LDYgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBQYXRoKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRSdWxl
IGNsaXBSdWxlKQogICAgIENhaXJvOjpjbGlwUGF0aCgqcGxhdGZvcm1Db250ZXh0KCksIHBhdGgs
IGNsaXBSdWxlKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVy
KEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCi17Ci0gICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1faW1w
bCkgewotICAgICAgICBtX2ltcGwtPmNsaXBUb0ltYWdlQnVmZmVyKGJ1ZmZlciwgZGVzdFJlY3Qp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4
dCgpKTsKLSAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IGJ1ZmZlci5jb3B5TmF0aXZlSW1hZ2Uo
RG9udENvcHlCYWNraW5nU3RvcmUpKQotICAgICAgICBDYWlybzo6Y2xpcFRvSW1hZ2VCdWZmZXIo
KnBsYXRmb3JtQ29udGV4dCgpLCBuYXRpdmVJbWFnZS0+cGxhdGZvcm1JbWFnZSgpLmdldCgpLCBk
ZXN0UmVjdCk7Ci19Ci0KIEludFJlY3QgR3JhcGhpY3NDb250ZXh0OjpjbGlwQm91bmRzKCkgY29u
c3QKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWly
b0JhY2tlbmQuY3BwCmluZGV4IDdkYTE3MGU1OTkwYmUxODU5MGU5MWQ0ZDFjYWE3ZDBlMzEwM2Y4
MTguLjEyYTViNjBhMmU5MDQ2YTE5NTg5MmJhZjVkZDdlZDQ5NjMzYjNlNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm9C
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5jcHAKQEAgLTgzLDYgKzgzLDEyIEBAIHZvaWQgSW1hZ2VC
dWZmZXJDYWlyb0JhY2tlbmQ6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRl
eHQsIGNvbnN0IEZsCiAgICAgICAgIENhaXJvOjpkcmF3UGF0dGVybigqZGVzdENvbnRleHQucGxh
dGZvcm1Db250ZXh0KCksIGltYWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIG1fbG9naWNhbFNp
emUsIGRlc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgb3B0aW9ucyk7
CiB9CiAKK3ZvaWQgSW1hZ2VCdWZmZXJDYWlyb0JhY2tlbmQ6OmNsaXBUb01hc2soR3JhcGhpY3ND
b250ZXh0JiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBp
ZiAoYXV0byBpbWFnZSA9IGNvcHlOYXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSkpCisg
ICAgICAgIENhaXJvOjpjbGlwVG9JbWFnZUJ1ZmZlcigqZGVzdENvbnRleHQucGxhdGZvcm1Db250
ZXh0KCksIGltYWdlLT5wbGF0Zm9ybUltYWdlKCkuZ2V0KCksIGRlc3RSZWN0KTsKK30KKwogdm9p
ZCBJbWFnZUJ1ZmZlckNhaXJvQmFja2VuZDo6dHJhbnNmb3JtQ29sb3JTcGFjZShDb2xvclNwYWNl
IHNyY0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZGVzdENvbG9yU3BhY2UpCiB7CiAgICAgaWYgKHNy
Y0NvbG9yU3BhY2UgPT0gZGVzdENvbG9yU3BhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyb0JhY2tl
bmQuaAppbmRleCAwM2VhMTY2MjAxNzZjMzE1OTAzNTQ0ZjY5OWI0MWE1NDJhMmY2ZjdkLi5iMGEw
MjEwMmFiZDIwNjhkZDJjOWYzODJhMjc1MDI0MzA2MTIxY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm9CYWNrZW5kLmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogICAgIHZvaWQgZHJhdyhH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0
dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYg
c3BhY2luZywgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKIAorICAgIHZv
aWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
KSBvdmVycmlkZTsKKwogICAgIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShDb2xvclNwYWNlIHNy
Y0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZGVzdENvbG9yU3BhY2UpIG92ZXJyaWRlOwogCiAgICAg
U3RyaW5nIHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+
IHF1YWxpdHksIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5jcHAKaW5kZXggZmU5YWQzNzY3MzMwNzg2NTg0MGEzZmMwMDNkNWEwMTZmMDg2ZmE4YS4uMjZl
MDRjMDk4ODI0YWNhZjRmYjhjODc3MjMyN2U5MDlmMDZiZmY2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNw
cApAQCAtNDk4LDMwICs0OTgsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdHRlcm4o
SW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdAogICAgIH0KIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBi
dWZmZXIsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdGluYXRpb25SZWN0KQotewotICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2ltcGwpIHsKLSAg
ICAgICAgbV9pbXBsLT5jbGlwVG9JbWFnZUJ1ZmZlcihidWZmZXIsIGRlc3RpbmF0aW9uUmVjdCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBGbG9hdFNpemUgYnVmZmVyRGVzdGluYXRp
b25TaXplID0gZGVzdGluYXRpb25SZWN0LnNpemUoKTsKLSAgICBhdXRvIG5hdGl2ZUltYWdlID0g
YnVmZmVyLmNvcHlOYXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7Ci0gICAgYXV0byBp
bWFnZSA9IG5hdGl2ZUltYWdlID8gbmF0aXZlSW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKSA6IG51bGxw
dHI7Ci0KLSAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29udGV4dCgpOwotICAg
IC8vIEZJWE1FOiBUaGlzIGltYWdlIG5lZWRzIHRvIGJlIGdyYXlzY2FsZSB0byBiZSB1c2VkIGFz
IGFuIGFscGhhIG1hc2sgaGVyZS4KLSAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwg
ZGVzdGluYXRpb25SZWN0LngoKSwgZGVzdGluYXRpb25SZWN0LnkoKSArIGJ1ZmZlckRlc3RpbmF0
aW9uU2l6ZS5oZWlnaHQoKSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwgMSwgLTEp
OwotICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4dCwgRmxvYXRSZWN0KEZsb2F0UG9pbnQo
MCwgYnVmZmVyRGVzdGluYXRpb25TaXplLmhlaWdodCgpIC0gZGVzdGluYXRpb25SZWN0LmhlaWdo
dCgpKSwgZGVzdGluYXRpb25SZWN0LnNpemUoKSkpOwotICAgIENHQ29udGV4dENsaXBUb01hc2so
Y29udGV4dCwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgYnVmZmVyRGVzdGluYXRpb25TaXplKSwg
aW1hZ2UuZ2V0KCkpOwotICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0xKTsKLSAg
ICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgLWRlc3RpbmF0aW9uUmVjdC54KCksIC1k
ZXN0aW5hdGlvblJlY3QueSgpIC0gZGVzdGluYXRpb25SZWN0LmhlaWdodCgpKTsKLX0KLQogLy8g
RHJhd3MgYSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGggYSBzdHJva2VkIGJvcmRlci4KIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRl
clRoaWNrbmVzcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0dCYWNrZW5kLmNwcAppbmRleCBkNjYwYTU2ZmM2NjRl
OGQ0ZGQwNWFlOWIxMmM0ODIwNmE3NjMyZmQyLi5mMjIxOTk5NWY5ZjZiODIyMzlhYjVhZGQ0MTQ2
ODQzNjA3NTZlOGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDR0JhY2tlbmQuY3BwCkBAIC0xMjYsNiArMTI2LDIz
IEBAIHZvaWQgSW1hZ2VCdWZmZXJDR0JhY2tlbmQ6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4
dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0CiAgICAgICAgIGltYWdlLT5kcmF3UGF0dGVybihk
ZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wdGlvbnMpOwogfQogCit2b2lkIEltYWdlQnVmZmVyQ0dCYWNrZW5k
OjpjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QpCit7CisgICAgYXV0byBuYXRpdmVJbWFnZSA9IGNvcHlOYXRpdmVJbWFnZShE
b250Q29weUJhY2tpbmdTdG9yZSk7CisgICAgaWYgKCFuYXRpdmVJbWFnZSkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBkZXN0Q29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGltYWdlIG5lZWRzIHRvIGJlIGdy
YXlzY2FsZSB0byBiZSB1c2VkIGFzIGFuIGFscGhhIG1hc2sgaGVyZS4KKyAgICBDR0NvbnRleHRU
cmFuc2xhdGVDVE0oY2dDb250ZXh0LCBkZXN0UmVjdC54KCksIGRlc3RSZWN0Lm1heFkoKSk7Cisg
ICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7CisgICAgQ0dDb250ZXh0Q2xp
cFRvUmVjdChjZ0NvbnRleHQsIHsgeyB9LCBkZXN0UmVjdC5zaXplKCkgfSk7CisgICAgQ0dDb250
ZXh0Q2xpcFRvTWFzayhjZ0NvbnRleHQsIHsgeyB9LCBkZXN0UmVjdC5zaXplKCkgfSwgbmF0aXZl
SW1hZ2UtPnBsYXRmb3JtSW1hZ2UoKS5nZXQoKSk7CisgICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dD
b250ZXh0LCAxLCAtMSk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgLWRl
c3RSZWN0LngoKSwgLWRlc3RSZWN0Lm1heFkoKSk7Cit9CisKIEFmZmluZVRyYW5zZm9ybSBJbWFn
ZUJ1ZmZlckNHQmFja2VuZDo6YmFzZVRyYW5zZm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEFm
ZmluZVRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgbV9sb2dpY2FsU2l6ZS5oZWlnaHQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDR0JhY2tlbmQuaAppbmRleCA0YTM0YThhZTViYzYyMGY5NDExZjRiZDFiY2RiMDUwZWRi
ODY5MGQ0Li5jNzNjYWY4OThhZjBlYTI0NmRlZDAwMTNjNDU2NzhhMjdiYjA1YjNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHQmFj
a2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQ0dCYWNrZW5kLmgKQEAgLTM4LDYgKzM4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWludGluZ09wdGlvbnMmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBw
YXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXpl
JiBzcGFjaW5nLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIAor
ICAgIHZvaWQgY2xpcFRvTWFzayhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0KSBvdmVycmlkZTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDU1MDQ5NTA0
OTcxMzE3MjIyMjE3ZWUyZmZkMjIxYzMzYmU2ZDgzYTIuLmJiZmM4NTVkNWQ2ZWY2ODkxNTliNGE1
ZjIyODE0ODUxYTQ2YWM3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjIyLDYg
KzIyMiw4IEBAIHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAg
ICAgIHJldHVybiBhcHBlbmQ8Q2xpcD4oaXRlbS5nZXQ8Q2xpcD4oKSk7CiAgICAgY2FzZSBJdGVt
VHlwZTo6Q2xpcE91dDoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxDbGlwT3V0PihpdGVtLmdldDxD
bGlwT3V0PigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoKKyAgICAg
ICAgcmV0dXJuIGFwcGVuZDxDbGlwVG9JbWFnZUJ1ZmZlcj4oaXRlbS5nZXQ8Q2xpcFRvSW1hZ2VC
dWZmZXI+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXRUb1BhdGg6CiAgICAgICAgIHJl
dHVybiBhcHBlbmQ8Q2xpcE91dFRvUGF0aD4oaXRlbS5nZXQ8Q2xpcE91dFRvUGF0aD4oKSk7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1CdWZmZXIuY3BwCmluZGV4IGMwY2UwNWU3YWU1NmViYmNlMTdhNGE0YWZkZDc4OTZlOTk3
Y2Y0NmMuLjQzYTIzZTE2NGM0OTY0YjY1NmRiOTJiZmQxMWQ4NzQ5MzM0ZDk4NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC0xMjAsNiArMTIwLDEw
IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAg
ICAgICBnZXQ8Q2xpcE91dD4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjogeworICAgICAgICBnZXQ8
Q2xpcFRvSW1hZ2VCdWZmZXI+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDogewogICAgICAgICBnZXQ8Q2xp
cE91dFRvUGF0aD4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzk2LDYg
KzQwMCwxMCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxDbGlwT3V0Pjo6dmFsdWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVy
OiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PENsaXBUb0ltYWdlQnVmZmVyPjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQogICAg
IGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOiB7CiAgICAgICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPENvbmNhdGVuYXRlQ1RNPjo6dmFsdWUpOwog
ICAgICAgICByZXR1cm47CkBAIC02NTEsNiArNjU5LDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6Y29w
eVRvKEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIG5ldyAoaXRlbU9mZnNl
dCkgQ2xpcE91dChnZXQ8Q2xpcE91dD4oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAg
Y2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6IHsKKyAgICAgICAgbmV3IChpdGVtT2Zm
c2V0KSBDbGlwVG9JbWFnZUJ1ZmZlcihnZXQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KCkpOworICAgICAg
ICByZXR1cm47CisgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOiB7CiAg
ICAgICAgIG5ldyAoaXRlbU9mZnNldCkgQ29uY2F0ZW5hdGVDVE0oZ2V0PENvbmNhdGVuYXRlQ1RN
PigpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5
cGUuY3BwCmluZGV4IDNkN2UxODc1ZDdkYTYwNjIxODE3ZTYwMTdhOWM0OTNlMTQzY2ExNzQuLmU5
OTBkZWU0M2JmZGFmMzkwNzNhMzU2ZjYwZmE1ZWQzYjI4NGFmNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTcyLDYgKzcyLDggQEAgc3RhdGljIHNpemVf
dCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9m
KENsaXApOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXQ6CiAgICAgICAgIHJldHVybiBzaXpl
b2YoQ2xpcE91dCk7CisgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6CisgICAg
ICAgIHJldHVybiBzaXplb2YoQ2xpcFRvSW1hZ2VCdWZmZXIpOwogICAgIGNhc2UgSXRlbVR5cGU6
OkNsaXBPdXRUb1BhdGg6CiAgICAgICAgIHJldHVybiBzaXplb2YoQ2xpcE91dFRvUGF0aCk7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CkBAIC0xNzIsNiArMTc0LDcgQEAgYm9vbCBpc0Ry
YXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJTaGFkb3c6
CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0Ogor
ICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6
OkNsaXBPdXRUb1BhdGg6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgY2FzZSBJ
dGVtVHlwZTo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzOgpAQCAtMjczLDYgKzI3Niw3IEBAIGJvb2wg
aXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJTaGFk
b3c6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0
OgorICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5
cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1l
bnRNYXJrZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0VsbGlwc2U6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCBhMGU5YTczOWIzYTM5YzM3MTlkZDkyYTI0NTQz
NmFiYWIzZjA2ZjVlLi43MTc4ODc3YjVkZDEyOGVlZjMzMGIzZmMyZGQ2OTYzNmJkZTMyNDQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAg
ZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIENsZWFyU2hhZG93LAogICAgIENs
aXAsCiAgICAgQ2xpcE91dCwKKyAgICBDbGlwVG9JbWFnZUJ1ZmZlciwKICAgICBDbGlwT3V0VG9Q
YXRoLAogICAgIENsaXBQYXRoLAogICAgIENsaXBUb0RyYXdpbmdDb21tYW5kcywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCA2OGM2M2QxMzdiODAyNDkwY2I5YmQxZWY2
NDNjYzkzODVkZDg0M2NjLi42ODJlZmVjZmVlNDM5YjY4YzNmOWY5ODFkZGRjZjAyYWViNmViMTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC0zMDIsNiArMzAyLDIz
IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBD
bGlwT3V0JiBpdGVtKQogICAgIHJldHVybiB0czsKIH0KIAorTk9fUkVUVVJOX0RVRV9UT19BU1NF
UlQgdm9pZCBDbGlwVG9JbWFnZUJ1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBDbGlwVG9JbWFnZUJ1ZmZl
cjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYg
aW1hZ2VCdWZmZXIpIGNvbnN0Cit7CisgICAgY29udGV4dC5jbGlwVG9JbWFnZUJ1ZmZlcihpbWFn
ZUJ1ZmZlciwgbV9kZXN0aW5hdGlvblJlY3QpOworfQorCitzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ2xpcFRvSW1hZ2VCdWZmZXImIGl0ZW0pCit7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJpbWFnZS1idWZmZXItaWRlbnRpZmllciIsIGl0ZW0uaW1h
Z2VCdWZmZXJJZGVudGlmaWVyKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZGVzdC1yZWN0Iiwg
aXRlbS5kZXN0aW5hdGlvblJlY3QoKSk7CisgICAgcmV0dXJuIHRzOworfQorCiB2b2lkIENsaXBP
dXRUb1BhdGg6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKICAgICBj
b250ZXh0LmNsaXBPdXQobV9wYXRoKTsKQEAgLTEwMDYsNiArMTAyMyw3IEBAIHN0YXRpYyBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogICAgIGNh
c2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6IHRzIDw8ICJzZXQtbWl0ZXItbGltaXQiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwOiB0cyA8PCAiY2xpcCI7IGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OkNsaXBPdXQ6IHRzIDw8ICJjbGlwLW91dCI7IGJyZWFrOworICAgIGNhc2Ug
SXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOiB0cyA8PCAiY2xpcC10by1pbWFnZS1idWZmZXIi
OyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0VG9QYXRoOiB0cyA8PCAiY2xpcC1v
dXQtdG8tcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOiB0cyA8PCAi
Y2xpcC1wYXRoIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvRHJhd2luZ0NvbW1h
bmRzOiB0cyA8PCAiY2xpcC10by1pbWFnZS1idWZmZXIiOyBicmVhazsKQEAgLTExMDksNiArMTEy
Nyw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUg
aXRlbSkKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwT3V0OgogICAgICAgICB0cyA8PCBpdGVtLmdl
dDxDbGlwT3V0PigpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9J
bWFnZUJ1ZmZlcjoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Q2xpcFRvSW1hZ2VCdWZmZXI+KCk7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXRUb1BhdGg6CiAgICAg
ICAgIHRzIDw8IGl0ZW0uZ2V0PENsaXBPdXRUb1BhdGg+KCk7CiAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggZWQ3OWZiMjBmNjU0ZTNkOTU1NjYxOGIw
YThhMjI4NzAwZTA4NWE2Ny4uM2ViNzRkNzhkYjUxZGI4M2UzNTk2YTZmOWI3M2QyZGU2MzU5MzE2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC03NDAsNiArNzQwLDMwIEBA
IHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fcmVjdDsKIH07CiAKK2NsYXNzIENsaXBUb0ltYWdl
QnVmZmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBl
ID0gSXRlbVR5cGU6OkNsaXBUb0ltYWdlQnVmZmVyOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9v
bCBpc0lubGluZUl0ZW0gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdp
bmdJdGVtID0gZmFsc2U7CisKKyAgICBDbGlwVG9JbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Rp
bmF0aW9uUmVjdCkKKyAgICAgICAgOiBtX2ltYWdlQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZl
cklkZW50aWZpZXIpCisgICAgICAgICwgbV9kZXN0aW5hdGlvblJlY3QoZGVzdGluYXRpb25SZWN0
KQorICAgIHsKKyAgICB9CisgICAgCisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlt
YWdlQnVmZmVySWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VCdWZmZXJJZGVudGlm
aWVyOyB9CisgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVzdGluYXRpb25SZWN0OyB9CisKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYsIFdl
YkNvcmU6OkltYWdlQnVmZmVyJikgY29uc3Q7CisKKyAgICBOT19SRVRVUk5fRFVFX1RPX0FTU0VS
VCB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCitwcml2YXRlOgorICAgIFJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2ltYWdlQnVmZmVySWRlbnRpZmllcjsKKyAgICBG
bG9hdFJlY3QgbV9kZXN0aW5hdGlvblJlY3Q7Cit9OworCiBjbGFzcyBDbGlwT3V0VG9QYXRoIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5
cGU6OkNsaXBPdXRUb1BhdGg7CkBAIC0yMzEwLDYgKzIzMzQsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xlYXJTaGFkb3csCiAgICAgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6Q2xpcE91dCwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBU
b0ltYWdlQnVmZmVyLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcE91
dFRvUGF0aCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBQYXRoLAog
ICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRz
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IDM0NzE0MTIz
NzMzMTMwZWM4ZmFlNmZhMThjYjEwN2I4OTI2OTA2MzQuLjAxNjAwM2FjNmQ2YTM2OGYwMWJmOWVi
ZTI5Yjc5Y2M1ODExMTBjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKQEAgLTQxNCw5ICs0MTQsMTAgQEAgSW50UmVjdCBSZWNvcmRlcjo6Y2xpcEJvdW5kcygp
CiAgICAgcmV0dXJuIEludFJlY3QoLTIwNDgsIC0yMDQ4LCA0MDk2LCA0MDk2KTsKIH0KIAotdm9p
ZCBSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImLCBjb25zdCBGbG9hdFJl
Y3QmKQordm9pZCBSZWNvcmRlcjo6Y2xpcFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGltYWdl
QnVmZmVyLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQogewotICAgIFdURkxvZ0Fsd2F5cygi
R3JhcGhpY3NDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlciBpcyBub3QgY29tcGF0aWJsZSB3aXRo
IERpc3BsYXlMaXN0OjpSZWNvcmRlci4iKTsKKyAgICBtX2Rpc3BsYXlMaXN0LmNhY2hlSW1hZ2VC
dWZmZXIoaW1hZ2VCdWZmZXIpOworICAgIGFwcGVuZDxDbGlwVG9JbWFnZUJ1ZmZlcj4oaW1hZ2VC
dWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCksIGRlc3RSZWN0KTsKIH0KIAogdm9p
ZCBSZWNvcmRlcjo6Y2xpcFRvRHJhd2luZ0NvbW1hbmRzKGNvbnN0IEZsb2F0UmVjdCYgZGVzdGlu
YXRpb24sIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgRnVuY3Rpb248dm9pZChHcmFwaGljc0NvbnRl
eHQmKT4mJiBkcmF3aW5nRnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBs
YXllci5jcHAKaW5kZXggYWIxNjNkZTBjYzYzYzU5YjIzZmNlNjJmYzVkM2EzZGQ2NTQ1NDdlMS4u
NjRlNjZlYmQxNzMzNDc4ZjgwNGFhNDFjMGUyNGFiZGY2MDdjOTBiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVw
bGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcApAQCAtNTAsNiArNTAsMTMgQEAgdm9pZCBSZXBs
YXllcjo6YXBwbHlJdGVtKEl0ZW1IYW5kbGUgaXRlbSkKICAgICBpZiAobV9kZWxlZ2F0ZSAmJiBt
X2RlbGVnYXRlLT5hcHBseShpdGVtLCBtX2NvbnRleHQpKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBpZiAoaXRlbS5pczxDbGlwVG9JbWFnZUJ1ZmZlcj4oKSkgeworICAgICAgICBhdXRvJiBjbGlw
SXRlbSA9IGl0ZW0uZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpOworICAgICAgICBpZiAoYXV0byog
aW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVmZmVycy5nZXQoY2xpcEl0ZW0uaW1hZ2VCdWZmZXJJZGVu
dGlmaWVyKCkpKQorICAgICAgICAgICAgY2xpcEl0ZW0uYXBwbHkobV9jb250ZXh0LCAqaW1hZ2VC
dWZmZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKGl0ZW0uaXM8RHJhd0lt
YWdlQnVmZmVyPigpKSB7CiAgICAgICAgIGF1dG8mIGRyYXdJdGVtID0gaXRlbS5nZXQ8RHJhd0lt
YWdlQnVmZmVyPigpOwogICAgICAgICBpZiAoYXV0byogaW1hZ2VCdWZmZXIgPSBtX2ltYWdlQnVm
ZmVycy5nZXQoZHJhd0l0ZW0uaW1hZ2VCdWZmZXJJZGVudGlmaWVyKCkpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVj
dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0Nv
bnRleHREaXJlY3QyRC5jcHAKaW5kZXggM2E2OGRjM2FhMDE1NTM2ODQ2NGY1MTcyMzVlYzBhMzE5
ZjdkNTdlMy4uOGMwZGEyN2U4NmJkMTE3NGM4NGQ4M2MyZTc3MGYyNjIyYWU5ZWY3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dERpcmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
R3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCkBAIC00MzEsMTUgKzQzMSw2IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihJbWFnZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0CiAgICAgICAgIERpcmVjdDJEOjpkcmF3UGF0dGVybigqcGxhdGZvcm1D
b250ZXh0KCksIFdURk1vdmUodGlsZUltYWdlKSwgSW50U2l6ZShpbWFnZS5zaXplKCkpLCBkZXN0
UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBvcHRpb25zLmNvbXBvc2l0
ZU9wZXJhdG9yKCksIG9wdGlvbnMuYmxlbmRNb2RlKCkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCkKLXsKLSAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBGbG9hdFNpemUgYnVmZmVyRGVzdGluYXRpb25TaXplID0gYnVmZmVyLnNp
emVGb3JEZXN0aW5hdGlvblNpemUoZGVzdFJlY3Quc2l6ZSgpKTsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCiAvLyBEcmF3cyBhIGZpbGxlZCByZWN0YW5nbGUgd2l0aCBhIHN0cm9rZWQgYm9y
ZGVyLgogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkRCYWNrZW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFj
a2VuZC5jcHAKaW5kZXggNjU2Y2IxNGU3Mjg4ZjIzYTg5MTdmMjI4ODlkYTczZTliYzk0YTNiOC4u
Mzc4YWFmNGM0MGM0ZTEyMmFjYmUwNjk0MzJjN2FkN2VjMjA5ZWQ3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkRCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VC
dWZmZXJEaXJlY3QyREJhY2tlbmQuY3BwCkBAIC0yODksNiArMjg5LDExIEBAIHZvaWQgSW1hZ2VC
dWZmZXJEaXJlY3QyREJhY2tlbmQ6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENv
bnRleHQsIGNvbnN0CiAgICAgICAgIGltYWdlLT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVz
dFJlY3QsIGFkanVzdGVkU3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcs
IG9wdGlvbnMpOwogfQogCit2b2lkIEltYWdlQnVmZmVyRGlyZWN0MkRCYWNrZW5kOjpjbGlwVG9N
YXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwogU3RyaW5nIEltYWdlQnVmZmVyRGlyZWN0MkRCYWNrZW5kOjp0b0RhdGFV
UkwoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8ZG91YmxlPiwgUHJlc2VydmVSZXNvbHV0aW9uKSBj
b25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyREJhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFj
a2VuZC5oCmluZGV4IDFkNTc0YWVlY2RiOWQyMjgwMjE0ZjFjMGNhZjVmYzU2MDA5MTE0NDYuLjg5
NWFlZmFiMzRjNWE4ODY0Y2I5MjI4OGM4ODdlZTQ3NjViMDUxMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJEQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZl
ckRpcmVjdDJEQmFja2VuZC5oCkBAIC00Nyw2ICs0Nyw4IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0
cjxJbWFnZT4gc2lua0ludG9JbWFnZShQcmVzZXJ2ZVJlc29sdXRpb24pIG92ZXJyaWRlOwogCisg
ICAgdm9pZCBjbGlwVG9NYXNrKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QpIG92ZXJyaWRlOworCiAgICAgU3RyaW5nIHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHksIFByZXNlcnZlUmVzb2x1dGlvbikgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRvRGF0YShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBPcHRpb25hbDxkb3VibGU+IHF1YWxpdHkpIGNvbnN0IG92ZXJyaWRlOwogICAgIFZl
Y3Rvcjx1aW50OF90PiB0b0JHUkFEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAKaW5kZXggZWMzNTZiZTU5ZGY2ZjdlN2E4ZmM3M2I2NzM4ODFlM2RhNjkyNzJkOC4u
NTQ5NWZjYWZiMGFjOTlkNjMxZTc4NzNhOWExYWJkYzEyYTNhYzdmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcApAQCAtMjk2LDYgKzI5Niw3IEBAIE9wdGlvbmFsPERpc3BsYXlMaXN0OjpJdGVt
SGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjCiAg
ICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsZWFyU2hhZG93OgogICAgIGNhc2UgRGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpDbGlwT3V0OgorICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1
ZmZlcjoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAg
ICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6
CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkRyYXdFbGxpcHNlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyUHJveHkuaAppbmRleCA0NWRjNmFkOWJkY2VjYmJkNjEyMjcxZjUzY2Y1ZmM5ZTlh
OWY2OTJkLi41ZjFiZGI0Yzk1NTUyM2ViNTVkY2ZjMTNiZThmYjZiOTVmYjY5ZGEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMjUwLDYgKzI1MCw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsZWFyU2hhZG93Ogog
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q2xpcDoKICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsaXBPdXQ6CisgICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoK
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNvbmNhdGVuYXRl
Q1RNOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RHJhd0Rv
dHNGb3JEb2N1bWVudE1hcmtlcjoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkRyYXdFbGxpcHNlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>