<?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>216483</bug_id>
          
          <creation_ts>2020-09-14 10:31:46 -0700</creation_ts>
          <short_desc>[LFC][FFC] Introduce flex formatting context</short_desc>
          <delta_ts>2020-09-14 11:48:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1688298</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-14 10:31:46 -0700</bug_when>
    <thetext>https://www.w3.org/TR/css-flexbox-1/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688299</commentid>
    <comment_count>1</comment_count>
      <attachid>408722</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-14 10:37:11 -0700</bug_when>
    <thetext>Created attachment 408722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688310</commentid>
    <comment_count>2</comment_count>
      <attachid>408725</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-14 10:58:04 -0700</bug_when>
    <thetext>Created attachment 408725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688342</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-14 11:47:09 -0700</bug_when>
    <thetext>Committed r267026: &lt;https://trac.webkit.org/changeset/267026&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408725.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688344</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-14 11:48:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/68869041&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408722</attachid>
            <date>2020-09-14 10:37:11 -0700</date>
            <delta_ts>2020-09-14 11:29:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216483-20200914103710.patch</filename>
            <type>text/plain</type>
            <size>27831</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRjN2Y4MTJmMGJkMzZi
NDQyOWI1N2FkYmZlNzBlY2FhYThlNmUzZi4uNjBkNjgzYjI5YmY5YzFlY2Y2NmYzM2RlMzg4NzM4
MDgxYmE2ZTI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA5LTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRkZDXSBJbnRyb2R1
Y2UgZmxleCBmb3JtYXR0aW5nIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgYmFzaWMgY2xhc3Mgc3RydWN0dXJlIGZvciB0aGUg
ZmxleCBmb3JtYXR0aW5nIGNvbnRleHQuCisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtZmxleGJveC0xLworCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5n
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6
aXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0
aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjpp
c0ZsZXhGb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRTdGF0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjplc3RhYmxpc2hl
ZEZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91
dFN0YXRlOjplc3RhYmxpc2hlZEZsZXhGb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZW5zdXJlRm9ybWF0dGluZ1N0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmVuc3VyZUZsZXhGb3JtYXR0aW5n
U3RhdGUpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRTdGF0ZS5oOgorICAgICAgICAqIGxheW91
dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQ6OmxheW91dEluRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyk6Cisg
ICAgICAgICogbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBsYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1N0
YXRlOjpGbGV4Rm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rmxl
eEZvcm1hdHRpbmdTdGF0ZTo6fkZsZXhGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ1N0YXRlLmg6IEFkZGVkLgorICAgICAgICAq
IGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJveDo6ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzRmxleEJveCBjb25zdCk6CisKIDIwMjAtMDktMTQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcHJvcGVyIHN1cHBv
cnQgZm9yIEF1ZGlvQ29udGV4dE9wdGlvbnMuc2FtcGxlUmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBl
ZjliNTQ1NjNhN2ZhZGMyNjllZTQ4NTYwYTExZGFiNDhjZjBkOTBhLi41NDUyYWJhYzk5NWY0NDgy
YWYwMDQ1MWM1MjJkZmE3NDlkMWZhZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQzNSw2ICsxNDM1
LDggQEAgbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5
Qm94LmNwcAogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50LmNwcAogbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcAorbGF5b3V0L2ZsZXhmb3JtYXR0aW5n
L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKK2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9y
bWF0dGluZ1N0YXRlLmNwcAogbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwCiBsYXlvdXQv
ZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKIGxheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAwZWQxYmFlZDNiMzA1NTNjZjAxNmZlYmIzOGFkMjRlN2FmMGI2YmY0Li5hMmYzNTBi
ODA0ZjE2NjU3ODI5YzMyZDkyZTNlZDc2NTc3NDI0ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDg1LDYgKzIwODUsOCBA
QAogCQk2RkIyNDAwNTIzREZGMTI4MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZCMjQwMDMyM0RGRjEyNzAw
Nzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2RkI0N0U2MzIyNzc0MjVBMDBDN0JDQjAgLyogRGlzcGxheUxp
bmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjQ3
RTYxMjI3NzQyNUEwMEM3QkNCMCAvKiBEaXNwbGF5TGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQjVFMjE0MjIxRjI0NTMwMDM5ODlDRiAv
KiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGQjVFMjEyMjIxRjI0NDcwMDM5ODlDRiAvKiBDb250ZW50Q2hhbmdl
T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkI3RDJEOTI1
MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkZCN0QyREUyNTBGRDgyRTAwMDIw
N0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjdEMkRBMjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0
dGluZ1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNkZDRTFBMUEyMjYxOEFCRDAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQ0UxQTE4MjI2MThBQjMwMDRG
MDM0MyAvKiBEaXNwbGF5UnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkZEOUNENTQyMjdFMjFDODAwRTUzOTU3IC8qIERpc3BsYXlSZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkQ5Q0Q1MjIy
N0UyMUM4MDBFNTM5NTcgLyogRGlzcGxheVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5s
aW5lTGluZUJyZWFrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVMaW5lQnJlYWtlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NjM1LDYg
Kzk2MzcsMTAgQEAKIAkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3gu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZUJveC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkI0N0U2MTIyNzc0MjVBMDBDN0JDQjAgLyogRGlz
cGxheUxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpbmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCNUUyMTIyMjFGMjQ0NzAwMzk4OUNG
IC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50Q2hhbmdl
T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkZCN0QyRDcyNTBGRDdF
NTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNkZCN0QyRDkyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5n
Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkZCN0QyREEyNTBGRDdG
QzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRmxleEZvcm1hdHRpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RkJCODYwNTIwQjQ2NEI2MDBEQUQ5MzggLyogRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDNTNBRUIyNEFGN0E4RTAwNjA1OUZF
IC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGFibGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZGQzVDQTkyMjJFMzU5OTMwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzQyMyw2ICsxNzQyOSw3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkxMTVDRkE5OTIwOEJDMDlBMDAxRTY5OTEgLyogYmxvY2tmb3JtYXR0aW5nICovLAog
CQkJCTExOTlGQTU4MjA4RTNDNEMwMDIzNThDQyAvKiBkaXNwbGF5dHJlZSAqLywKKwkJCQk2RkI3
RDJENTI1MEZEN0I1MDAwMjA3QUEgLyogZmxleGZvcm1hdHRpbmcgKi8sCiAJCQkJNkZDRkMwNTUy
MTJEQUNDMjAwNzY5NUQyIC8qIGZsb2F0cyAqLywKIAkJCQkxMTVDRkE5QTIwOEJDMTQwMDAxRTY5
OTEgLyogaW5saW5lZm9ybWF0dGluZyAqLywKIAkJCQlFNEZCNEIxRTIzOTUzNTZGMDAzQzMzNkEg
LyogaW50ZWdyYXRpb24gKi8sCkBAIC0yMTc2Miw2ICsyMTc2OSwxNyBAQAogCQkJcGF0aCA9IGlu
dmFsaWRhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTZGQjdEMkQ1
MjUwRkQ3QjUwMDAyMDdBQSAvKiBmbGV4Zm9ybWF0dGluZyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNkZCN0QyRDcyNTBGRDdFNTAwMDIwN0FBIC8qIEZs
ZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCisJCQkJNkZCN0QyRDkyNTBGRDdGQzAwMDIwN0FB
IC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oICovLAorCQkJCTZGQjdEMkQ4MjUwRkQ3RUYwMDAy
MDdBQSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcCAqLywKKwkJCQk2RkI3RDJEQTI1MEZEN0ZD
MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBm
bGV4Zm9ybWF0dGluZzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTZGQzVD
QTkxMjJFMzU5MzMwMEIxM0UxMSAvKiB0YWJsZWZvcm1hdHRpbmcgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMzEyODMsNiArMzEzMDEsOCBAQAogCQkJCTQ5
RUNFQjcwMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb25zLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4Q0ZGMDRGMEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5b3V0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxleEZv
cm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkI3RDJERTI1MEZEODJFMDAw
MjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZGREM0
NDIyMTJFRkYxNzAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTE1Q0ZBODYyMDhCOTA2NjAwMUU2OTkxIC8qIEZsb2F0aW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmlu
ZGV4IDU2Y2VlNjMxZmE3YzkxNTgyNmMxNGQ4NTZhYjIzOTg5N2QyMDQ5ZWEuLjg4MzQ0YTQzZTU1
YTdhYjVkM2EyZjYxMjc1YzgyZWU2YjMyNDJkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dC5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCkuZXN0YWJsaXNo
ZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpOyB9CiAgICAgYm9vbCBpc1RhYmxlRm9ybWF0dGlu
Z0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCkuZXN0YWJsaXNoZXNUYWJsZUZvcm1hdHRp
bmdDb250ZXh0KCk7IH0KICAgICBib29sIGlzVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIGlzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpICYmIHJvb3Qo
KS5pc1RhYmxlV3JhcHBlckJveCgpOyB9CisgICAgYm9vbCBpc0ZsZXhGb3JtYXR0aW5nQ29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuIHJvb3QoKS5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4
dCgpOyB9CiAKICAgICBlbnVtIGNsYXNzIEVzY2FwZVJlYXNvbiB7CiAgICAgICAgIE5lZWRzR2Vv
bWV0cnlGcm9tRXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nU3RhdGUuaAppbmRleCBjNjI5MThkNjVjM2UwNmVhMWI2YmVjYzZlYzY3ZDA2
ZjViOGUyZWQ2Li5kYTkwNDExZjAwMTA5OTY4MjNiYWQzN2E5MjUyMzI3MTIwMjBkNTg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1
YmxpYzoKICAgICBib29sIGlzQmxvY2tGb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gVHlwZTo6QmxvY2s7IH0KICAgICBib29sIGlzSW5saW5lRm9ybWF0dGluZ1N0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OklubGluZTsgfQogICAgIGJvb2wgaXNU
YWJsZUZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpUYWJs
ZTsgfQorICAgIGJvb2wgaXNGbGV4Rm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IFR5cGU6OkZsZXg7IH0KIAogICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5b3V0U3RhdGU7IH0KIApAQCAtNjgsNyArNjksNyBAQCBwdWJsaWM6
CiAgICAgY29uc3QgT3V0T2ZGbG93Qm94TGlzdCYgb3V0T2ZGbG93Qm94ZXMoKSBjb25zdCB7IHJl
dHVybiBtX291dE9mRmxvd0JveGVzOyB9CiAKIHByb3RlY3RlZDoKLSAgICBlbnVtIGNsYXNzIFR5
cGUgeyBCbG9jaywgSW5saW5lLCBUYWJsZSB9OworICAgIGVudW0gY2xhc3MgVHlwZSB7IEJsb2Nr
LCBJbmxpbmUsIFRhYmxlLCBGbGV4IH07CiAgICAgRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGlu
Z1N0YXRlPiYmLCBUeXBlLCBMYXlvdXRTdGF0ZSYpOwogICAgIH5Gb3JtYXR0aW5nU3RhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggNjM5YjhjMmI4MzkzMzFm
MTllMTQ0OWFkNjE4YjFiYTVjOGE5NGM1OC4uMmRhZmI0NWFlYzcxOWYyMTQ3N2JmZWI5MWRhMWRj
Nzg3ZDc2NzhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAKICNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUg
IkRpc3BsYXlCb3guaCIKKyNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVk
ZSAiRmxvYXRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgog
I2luY2x1ZGUgIkxheW91dEJveC5oIgpAQCAtMTAwLDggKzEwMSwxMyBAQCBGb3JtYXR0aW5nU3Rh
dGUmIExheW91dFN0YXRlOjplc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWlu
ZXJCb3gmIGZvcgogICAgIGlmIChhdXRvKiBmb3JtYXR0aW5nU3RhdGUgPSBtX2Jsb2NrRm9ybWF0
dGluZ1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCkpCiAgICAgICAgIHJldHVybiAq
Zm9ybWF0dGluZ1N0YXRlOwogCi0gICAgQVNTRVJUKG1fdGFibGVGb3JtYXR0aW5nU3RhdGVzLmNv
bnRhaW5zKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpKTsKLSAgICByZXR1cm4gKm1fdGFibGVGb3Jt
YXR0aW5nU3RhdGVzLmdldCgmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICBpZiAoYXV0byog
Zm9ybWF0dGluZ1N0YXRlID0gbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuZ2V0KCZmb3JtYXR0aW5n
Q29udGV4dFJvb3QpKQorICAgICAgICByZXR1cm4gKmZvcm1hdHRpbmdTdGF0ZTsKKworICAgIGlm
IChhdXRvKiBmb3JtYXR0aW5nU3RhdGUgPSBtX2ZsZXhGb3JtYXR0aW5nU3RhdGVzLmdldCgmZm9y
bWF0dGluZ0NvbnRleHRSb290KSkKKyAgICAgICAgcmV0dXJuICpmb3JtYXR0aW5nU3RhdGU7CisK
KyAgICBDUkFTSCgpOwogfQogCiBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjpl
c3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkgY29uc3QKQEAgLTEyOCw2ICsxMzQsMTIgQEAgVGFibGVGb3JtYXR0
aW5nU3RhdGUmIExheW91dFN0YXRlOjplc3RhYmxpc2hlZFRhYmxlRm9ybWF0dGluZ1N0YXRlKGNv
bnN0IENvbnRhaW4KICAgICByZXR1cm4gKm1fdGFibGVGb3JtYXR0aW5nU3RhdGVzLmdldCgmZm9y
bWF0dGluZ0NvbnRleHRSb290KTsKIH0KIAorRmxleEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3Rh
dGU6OmVzdGFibGlzaGVkRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZv
cm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRl
eHRSb290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOworICAgIHJldHVybiAq
bV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7Cit9CisK
IEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmVuc3VyZUZvcm1hdHRpbmdTdGF0ZShjb25z
dCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKIHsKICAgICBpZiAoZm9ybWF0
dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkKQEAg
LTEzNiw3ICsxNDgsMTMgQEAgRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6ZW5zdXJlRm9y
bWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGkKICAgICBpZiAoZm9ybWF0
dGluZ0NvbnRleHRSb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKQogICAg
ICAgICByZXR1cm4gZW5zdXJlQmxvY2tGb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ0NvbnRleHRS
b290KTsKIAotICAgIHJldHVybiBlbnN1cmVUYWJsZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5n
Q29udGV4dFJvb3QpOworICAgIGlmIChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNU
YWJsZUZvcm1hdHRpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVybiBlbnN1cmVUYWJsZUZvcm1h
dHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3QpOworCisgICAgaWYgKGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKQorICAgICAgICBy
ZXR1cm4gZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwor
CisgICAgQ1JBU0goKTsKIH0KIAogSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6
ZW5zdXJlSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGlu
Z0NvbnRleHRSb290KQpAQCAtMTkxLDYgKzIwOSwxOCBAQCBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYg
TGF5b3V0U3RhdGU6OmVuc3VyZVRhYmxlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJv
eAogICAgIHJldHVybiAqbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuZW5zdXJlKCZmb3JtYXR0aW5n
Q29udGV4dFJvb3QsIGNyZWF0ZSkuaXRlcmF0b3ItPnZhbHVlOwogfQogCitGbGV4Rm9ybWF0dGlu
Z1N0YXRlJiBMYXlvdXRTdGF0ZTo6ZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250
YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKK3sKKyAgICBBU1NFUlQoZm9ybWF0dGlu
Z0NvbnRleHRSb290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOworCisgICAg
YXV0byBjcmVhdGUgPSBbJl0geworICAgICAgICAvLyBGbGV4IGZvcm1hdHRpbmcgY29udGV4dCBh
bHdheXMgZXN0YWJsaXNoZXMgYSBuZXcgZmxvYXRpbmcgc3RhdGUgLWFuZCBpdCBzdGF5cyBlbXB0
eS4KKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8RmxleEZvcm1hdHRpbmdTdGF0ZT4oRmxvYXRp
bmdTdGF0ZTo6Y3JlYXRlKCp0aGlzLCBmb3JtYXR0aW5nQ29udGV4dFJvb3QpLCAqdGhpcyk7Cisg
ICAgfTsKKworICAgIHJldHVybiAqbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5lbnN1cmUoJmZvcm1h
dHRpbmdDb250ZXh0Um9vdCwgY3JlYXRlKS5pdGVyYXRvci0+dmFsdWU7Cit9CisKIHZvaWQgTGF5
b3V0U3RhdGU6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBMYXlvdXRTaXplJiB2aWV3cG9ydFNpemUp
CiB7CiAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRTdGF0ZS5oCmluZGV4IDZlZTU1NDM3Y2M2YmVmZTMzMjYzODhiNDlmNTJiODhk
M2E3OGMwODQuLjVkZGI2ZTc4YTFlMTM4MDRiYTM4YTRiZWQzZTAyNmYyZjM2OGNkMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIEJveDsK
IAogbmFtZXNwYWNlIExheW91dCB7CiAKK2NsYXNzIEZsZXhGb3JtYXR0aW5nU3RhdGU7CiBjbGFz
cyBGb3JtYXR0aW5nQ29udGV4dDsKIGNsYXNzIEZvcm1hdHRpbmdTdGF0ZTsKIGNsYXNzIEJsb2Nr
Rm9ybWF0dGluZ1N0YXRlOwpAQCAtNTcsMTEgKzU4LDEzIEBAIHB1YmxpYzoKICAgICBJbmxpbmVG
b3JtYXR0aW5nU3RhdGUmIGVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWlu
ZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAgICAgQmxvY2tGb3JtYXR0aW5nU3RhdGUm
IGVuc3VyZUJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGlu
Z0NvbnRleHRSb290KTsKICAgICBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYgZW5zdXJlVGFibGVGb3Jt
YXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwor
ICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGVuc3VyZUZsZXhGb3JtYXR0aW5nU3RhdGUoY29uc3Qg
Q29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgRm9ybWF0dGluZ1N0
YXRlJiBlc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1h
dHRpbmdSb290KSBjb25zdDsKICAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVk
SW5saW5lRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRl
eHRSb290KSBjb25zdDsKICAgICBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRCbG9j
a0Zvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9v
dCkgY29uc3Q7CiAgICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkVGFibGVGb3Jt
YXR0aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNv
bnN0OworICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkRmxleEZvcm1hdHRpbmdT
dGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3Q7CiAK
ICAgICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckJveChjb25zdCBCb3gmKSBj
b25zdDsKICAgICBib29sIGhhc0lubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJC
b3gmIGZvcm1hdHRpbmdSb290KSBjb25zdCB7IHJldHVybiBtX2lubGluZUZvcm1hdHRpbmdTdGF0
ZXMuY29udGFpbnMoJmZvcm1hdHRpbmdSb290KTsgfQpAQCAtOTcsNiArMTAwLDcgQEAgcHJpdmF0
ZToKICAgICBIYXNoTWFwPGNvbnN0IENvbnRhaW5lckJveCosIHN0ZDo6dW5pcXVlX3B0cjxJbmxp
bmVGb3JtYXR0aW5nU3RhdGU+PiBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZXM7CiAgICAgSGFzaE1h
cDxjb25zdCBDb250YWluZXJCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8QmxvY2tGb3JtYXR0aW5nU3Rh
dGU+PiBtX2Jsb2NrRm9ybWF0dGluZ1N0YXRlczsKICAgICBIYXNoTWFwPGNvbnN0IENvbnRhaW5l
ckJveCosIHN0ZDo6dW5pcXVlX3B0cjxUYWJsZUZvcm1hdHRpbmdTdGF0ZT4+IG1fdGFibGVGb3Jt
YXR0aW5nU3RhdGVzOworICAgIEhhc2hNYXA8Y29uc3QgQ29udGFpbmVyQm94Kiwgc3RkOjp1bmlx
dWVfcHRyPEZsZXhGb3JtYXR0aW5nU3RhdGU+PiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGVzOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPElubGluZUZvcm1hdHRpbmdTdGF0ZT4gbV9yb290SW5saW5lRm9y
bWF0dGluZ1N0YXRlRm9ySW50ZWdyYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzVkZmU0YzUxMTBmY2Y5NDA0M2M1YzZjZDFjMDNlMzY3NTU5MmQwYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdDb250ZXh0LmgiCisKKyNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkZsZXhGb3Jt
YXR0aW5nU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKEZsZXhGb3JtYXR0aW5nQ29udGV4dCk7CisKK0ZsZXhGb3JtYXR0aW5nQ29udGV4
dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290LCBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpCisgICAgOiBG
b3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGZvcm1hdHRpbmdTdGF0ZSkK
K3sKK30KKwordm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQo
SW52YWxpZGF0aW9uU3RhdGUmLCBjb25zdCBDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQmKQor
eworfQorCitGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBGbGV4
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpCit7
CisgICAgcmV0dXJuIHsgfTsKK30KKworfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRl
eHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMzM3MmUyNWY5MmMwOTUzOWQxODY1NzhkMjE5ZTJkMWRiNGQ3MzM0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5n
L0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisj
aW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkZvcm1hdHRpbmdDb250
ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CituYW1lc3BhY2UgTGF5b3V0IHsKKworY2xhc3MgSW52YWxpZGF0aW9uU3RhdGU7CisvLyBUaGlz
IGNsYXNzIGltcGxlbWVudHMgdGhlIGxheW91dCBsb2dpYyBmb3IgZmxleCBmb3JtYXR0aW5nIGNv
bnRleHRzLgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mbGV4Ym94LTEvCitjbGFzcyBG
bGV4Rm9ybWF0dGluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQgewor
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmxleEZvcm1hdHRpbmdDb250ZXh0KTsKK3B1Ymxp
YzoKKyAgICBGbGV4Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0
aW5nQ29udGV4dFJvb3QsIEZsZXhGb3JtYXR0aW5nU3RhdGUmKTsKKyAgICB2b2lkIGxheW91dElu
Rmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmLCBjb25zdCBDb25zdHJhaW50c0ZvckluRmxv
d0NvbnRlbnQmKSBvdmVycmlkZTsKKworICAgIEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgY29t
cHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6Cisg
ICAgY29uc3QgRmxleEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gZG93bmNhc3Q8RmxleEZvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZv
cm1hdHRpbmdTdGF0ZSgpKTsgfQorICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdT
dGF0ZSgpIHsgcmV0dXJuIGRvd25jYXN0PEZsZXhGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRpbmdD
b250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7IH0KK307CisKK30KK30KKworU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19MQVlPVVRfRk9STUFUVElOR19DT05URVhUKEZsZXhGb3JtYXR0aW5nQ29udGV4
dCwgaXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDU5ZmM4NWEwMzg1MmQzMzUyNjEzODQwZjMxMjJjNzMzYzU0ZmFh
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGlu
Zy9GbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIKKwor
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91
dCB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGbGV4Rm9ybWF0dGluZ1N0YXRlKTsK
KworRmxleEZvcm1hdHRpbmdTdGF0ZTo6RmxleEZvcm1hdHRpbmdTdGF0ZShSZWY8RmxvYXRpbmdT
dGF0ZT4mJiBmbG9hdGluZ1N0YXRlLCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCisgICAgOiBG
b3JtYXR0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRlKSwgVHlwZTo6RmxleCwgbGF5b3V0
U3RhdGUpCit7Cit9CisKK0ZsZXhGb3JtYXR0aW5nU3RhdGU6On5GbGV4Rm9ybWF0dGluZ1N0YXRl
KCkKK3sKK30KKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nU3RhdGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZTkxZWRlNmI4MmM4YWI3YjMyNTM3ZGY5NDIzZDAyMTBiMDAxNzI4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nU3Rh
dGUuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkZvcm1hdHRpbmdT
dGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEZsZXhGb3JtYXR0aW5nU3RhdGUgOiBwdWJs
aWMgRm9ybWF0dGluZ1N0YXRlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZsZXhGb3Jt
YXR0aW5nU3RhdGUpOworcHVibGljOgorICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0
aW5nU3RhdGU+JiYsIExheW91dFN0YXRlJik7CisgICAgfkZsZXhGb3JtYXR0aW5nU3RhdGUoKTsK
K307CisKK30KK30KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9STUFUVElOR19T
VEFURShGbGV4Rm9ybWF0dGluZ1N0YXRlLCBpc0ZsZXhGb3JtYXR0aW5nU3RhdGUoKSkKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcApp
bmRleCA3Njc3N2RiZWI0NjEzNThhMmQ5YmYwOWJmYTVkMGYwZjYzNzk2OWRmLi40NjhiOGI4MTFl
OWZlZDY3NzUxOWIzZDM2ZDRlOGZlZmQxNWNmNDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTY1LDcgKzY1LDExIEBAIGJvb2wgQm94
Ojplc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QKIHsKICAgICAvLyBXZSBuZWVk
IHRoZSBmaW5hbCB0cmVlIHN0cnVjdHVyZSB0byB0ZWxsIHdoZXRoZXIgYSBib3ggZXN0YWJsaXNo
ZXMgYSBjZXJ0YWluIGZvcm1hdHRpbmcgY29udGV4dC4gCiAgICAgQVNTRVJUKCFQaGFzZTo6aXNJ
blRyZWVCdWlsZGluZygpKTsKLSAgICByZXR1cm4gZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0KCkgfHwgZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpIHx8IGVzdGFi
bGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIHx8IGVzdGFibGlzaGVzSW5kZXBlbmRlbnRG
b3JtYXR0aW5nQ29udGV4dCgpOworICAgIHJldHVybiBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQoKQorICAgICAgICB8fCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0
KCkKKyAgICAgICAgfHwgZXN0YWJsaXNoZXNUYWJsZUZvcm1hdHRpbmdDb250ZXh0KCkKKyAgICAg
ICAgfHwgZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKQorICAgICAgICB8fCBlc3Rh
Ymxpc2hlc0luZGVwZW5kZW50Rm9ybWF0dGluZ0NvbnRleHQoKTsKIH0KIAogYm9vbCBCb3g6OmVz
dGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0CkBAIC0xMTksNiArMTIzLDEx
IEBAIGJvb2wgQm94Ojplc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdAog
ICAgIHJldHVybiBpc1RhYmxlQm94KCk7CiB9CiAKK2Jvb2wgQm94Ojplc3RhYmxpc2hlc0ZsZXhG
b3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzRmxleEJveCgpOworfQor
CiBib29sIEJveDo6ZXN0YWJsaXNoZXNJbmRlcGVuZGVudEZvcm1hdHRpbmdDb250ZXh0KCkgY29u
c3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCBjaGVjayBmb3IgJ2Nv
bnRhaW4nIHByb3BlcnR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRCb3guaAppbmRleCBhN2FjOTgxYzZmODM2OTdjNGI1ZGI0NTM0MTQ1MDA3YzhiMzE1NTBiLi5m
ZTEyNGFhZGVlYzkxMDZmNDgyNDFjNDI2NmYyYzg3NWEzNzBlYmVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtNzcsNiArNzcsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsK
ICAgICBib29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAg
ICBib29sIGVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OworICAgIGJv
b2wgZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAgICBib29sIGVz
dGFibGlzaGVzSW5kZXBlbmRlbnRGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogCiAgICAgYm9v
bCBpc0luRmxvdygpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlv
bmVkKCk7IH0KQEAgLTEyNCw2ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1RhYmxlQ29s
dW1uR3JvdXAoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlw
ZTo6VGFibGVDb2x1bW5Hcm91cDsgfQogICAgIGJvb2wgaXNUYWJsZUNvbHVtbigpIGNvbnN0IHsg
cmV0dXJuIHN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpUYWJsZUNvbHVtbjsgfQog
ICAgIGJvb2wgaXNUYWJsZUNlbGwoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9
PSBEaXNwbGF5VHlwZTo6VGFibGVDZWxsOyB9CisgICAgYm9vbCBpc0ZsZXhCb3goKSBjb25zdCB7
IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6RmxleDsgfQogICAgIGJv
b2wgaXNJRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnRBdHRyaWJ1dGVzICYmIG1fZWxl
bWVudEF0dHJpYnV0ZXMudmFsdWUoKS5lbGVtZW50VHlwZSA9PSBFbGVtZW50VHlwZTo6SUZyYW1l
OyB9CiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0cmlidXRl
cyAmJiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxlbWVudFR5
cGU6OkltYWdlOyB9CiAK
</data>
<flag name="commit-queue"
          id="424208"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408725</attachid>
            <date>2020-09-14 10:58:04 -0700</date>
            <delta_ts>2020-09-14 11:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216483-20200914105803.patch</filename>
            <type>text/plain</type>
            <size>28455</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRjN2Y4MTJmMGJkMzZi
NDQyOWI1N2FkYmZlNzBlY2FhYThlNmUzZi4uNmY2ZGU3MDMyZGVkYjRlODFhNDViZjE2YTA0NDA1
NjkxMzAwYjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA5LTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRkZDXSBJbnRyb2R1
Y2UgZmxleCBmb3JtYXR0aW5nIGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtv
aXZpc3RvLgorCisgICAgICAgIEFkZCB0aGUgYmFzaWMgY2xhc3Mgc3RydWN0dXJlIGZvciB0aGUg
ZmxleCBmb3JtYXR0aW5nIGNvbnRleHQuCisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtZmxleGJveC0xLworCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5n
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6
aXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0
aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ1N0YXRlOjpp
c0ZsZXhGb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRTdGF0
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjplc3RhYmxpc2hl
ZEZvcm1hdHRpbmdTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91
dFN0YXRlOjplc3RhYmxpc2hlZEZsZXhGb3JtYXR0aW5nU3RhdGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRTdGF0ZTo6ZW5zdXJlRm9ybWF0dGluZ1N0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmVuc3VyZUZsZXhGb3JtYXR0aW5n
U3RhdGUpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRTdGF0ZS5oOgorICAgICAgICAqIGxheW91
dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0OjpGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRl
eHQ6OmxheW91dEluRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyk6Cisg
ICAgICAgICogbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBsYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1N0
YXRlOjpGbGV4Rm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rmxl
eEZvcm1hdHRpbmdTdGF0ZTo6fkZsZXhGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxheW91
dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ1N0YXRlLmg6IEFkZGVkLgorICAgICAgICAq
IGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJveDo6ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQgY29u
c3QpOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzRmxleEJveCBjb25zdCk6CisKIDIwMjAtMDktMTQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcHJvcGVyIHN1cHBv
cnQgZm9yIEF1ZGlvQ29udGV4dE9wdGlvbnMuc2FtcGxlUmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBmYTc3NGJkMWRiOGUyOWJhZmQ4MDk4ZDYwNTdmYTBkMjVlNDdhZmI1Li40MTA1OTNiMmZi
MTFiMWQzYzFkMDhlMjM3NjJhNDNhMzc0MGYzNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MTA0LDYgKzEwNCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nIgogICAgICIke1dFQkNP
UkVfRElSfS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL3RhYmxld3JhcHBlciIKICAgICAiJHtXRUJD
T1JFX0RJUn0vbGF5b3V0L2Rpc3BsYXl0cmVlIgorICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQv
ZmxleGZvcm1hdHRpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9mbG9hdHMiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nIgogICAgICIke1dFQkNPUkVf
RElSfS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBlZjli
NTQ1NjNhN2ZhZGMyNjllZTQ4NTYwYTExZGFiNDhjZjBkOTBhLi41NDUyYWJhYzk5NWY0NDgyYWYw
MDQ1MWM1MjJkZmE3NDlkMWZhZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQzNSw2ICsxNDM1LDgg
QEAgbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tG
b3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94
LmNwcAogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50LmNwcAogbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcAorbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0Zs
ZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKK2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0
dGluZ1N0YXRlLmNwcAogbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwCiBsYXlvdXQvZmxv
YXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKIGxheW91dC9mbG9hdHMvRmxvYXRpbmdTdGF0ZS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwZWQxYmFlZDNiMzA1NTNjZjAxNmZlYmIzOGFkMjRlN2FmMGI2YmY0Li5hMmYzNTBiODA0
ZjE2NjU3ODI5YzMyZDkyZTNlZDc2NTc3NDI0ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDg1LDYgKzIwODUsOCBAQAog
CQk2RkIyNDAwNTIzREZGMTI4MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZCMjQwMDMyM0RGRjEyNzAwNzk2
NDU4IC8qIElubGluZUxpbmVCb3guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2RkI0N0U2MzIyNzc0MjVBMDBDN0JDQjAgLyogRGlzcGxheUxpbmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjQ3RTYx
MjI3NzQyNUEwMEM3QkNCMCAvKiBEaXNwbGF5TGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQjVFMjE0MjIxRjI0NTMwMDM5ODlDRiAvKiBD
b250ZW50Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZGQjVFMjEyMjIxRjI0NDcwMDM5ODlDRiAvKiBDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkI3RDJEOTI1MEZE
N0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkZCN0QyREUyNTBGRDgyRTAwMDIwN0FB
IC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGQjdEMkRBMjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGlu
Z1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNkZDRTFBMUEyMjYxOEFCRDAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQ0UxQTE4MjI2MThBQjMwMDRGMDM0
MyAvKiBEaXNwbGF5UnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNkZEOUNENTQyMjdFMjFDODAwRTUzOTU3IC8qIERpc3BsYXlSZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkQ5Q0Q1MjIyN0Uy
MUM4MDBFNTM5NTcgLyogRGlzcGxheVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5l
TGluZUJyZWFrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVMaW5lQnJlYWtlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NjM1LDYgKzk2
MzcsMTAgQEAKIAkJNkZCMjQwMDMyM0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZUJveC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RkI0N0U2MTIyNzc0MjVBMDBDN0JDQjAgLyogRGlzcGxh
eUxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpbmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCNUUyMTIyMjFGMjQ0NzAwMzk4OUNGIC8q
IENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkZCN0QyRDcyNTBGRDdFNTAw
MDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
bGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2
RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNkZCN0QyRDkyNTBGRDdGQzAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ0Nv
bnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkZCN0QyREEyNTBGRDdGQzAw
MDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRmxleEZvcm1hdHRpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2RkJCODYwNTIwQjQ2NEI2MDBEQUQ5MzggLyogRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDNTNBRUIyNEFGN0E4RTAwNjA1OUZFIC8q
IFRhYmxlRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFi
bGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZGQzVDQTkyMjJFMzU5OTMwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzQyMyw2ICsxNzQyOSw3IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQkxMTVDRkE5OTIwOEJDMDlBMDAxRTY5OTEgLyogYmxvY2tmb3JtYXR0aW5nICovLAogCQkJ
CTExOTlGQTU4MjA4RTNDNEMwMDIzNThDQyAvKiBkaXNwbGF5dHJlZSAqLywKKwkJCQk2RkI3RDJE
NTI1MEZEN0I1MDAwMjA3QUEgLyogZmxleGZvcm1hdHRpbmcgKi8sCiAJCQkJNkZDRkMwNTUyMTJE
QUNDMjAwNzY5NUQyIC8qIGZsb2F0cyAqLywKIAkJCQkxMTVDRkE5QTIwOEJDMTQwMDAxRTY5OTEg
LyogaW5saW5lZm9ybWF0dGluZyAqLywKIAkJCQlFNEZCNEIxRTIzOTUzNTZGMDAzQzMzNkEgLyog
aW50ZWdyYXRpb24gKi8sCkBAIC0yMTc2Miw2ICsyMTc2OSwxNyBAQAogCQkJcGF0aCA9IGludmFs
aWRhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTZGQjdEMkQ1MjUw
RkQ3QjUwMDAyMDdBQSAvKiBmbGV4Zm9ybWF0dGluZyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJNkZCN0QyRDcyNTBGRDdFNTAwMDIwN0FBIC8qIEZsZXhG
b3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCisJCQkJNkZCN0QyRDkyNTBGRDdGQzAwMDIwN0FBIC8q
IEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oICovLAorCQkJCTZGQjdEMkQ4MjUwRkQ3RUYwMDAyMDdB
QSAvKiBGbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcCAqLywKKwkJCQk2RkI3RDJEQTI1MEZEN0ZDMDAw
MjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBmbGV4
Zm9ybWF0dGluZzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTZGQzVDQTkx
MjJFMzU5MzMwMEIxM0UxMSAvKiB0YWJsZWZvcm1hdHRpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMzEyODMsNiArMzEzMDEsOCBAQAogCQkJCTQ5RUNF
QjcwMTQ5OTc5MEQwMENERDNBNCAvKiBGaWx0ZXJPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzJDMDBEOTEyOTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4Q0ZGMDRGMEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5b3V0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxleEZvcm1h
dHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkI3RDJERTI1MEZEODJFMDAwMjA3
QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZGREM0NDIy
MTJFRkYxNzAwQTlDQTkxIC8qIEZsb2F0QXZvaWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMw
NzNCQUEwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTE1Q0ZBODYyMDhCOTA2NjAwMUU2OTkxIC8qIEZsb2F0aW5nQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4
IDU2Y2VlNjMxZmE3YzkxNTgyNmMxNGQ4NTZhYjIzOTg5N2QyMDQ5ZWEuLjg4MzQ0YTQzZTU1YTdh
YjVkM2EyZjYxMjc1YzgyZWU2YjMyNDJkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dC5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCkuZXN0YWJsaXNoZXNJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpOyB9CiAgICAgYm9vbCBpc1RhYmxlRm9ybWF0dGluZ0Nv
bnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCkuZXN0YWJsaXNoZXNUYWJsZUZvcm1hdHRpbmdD
b250ZXh0KCk7IH0KICAgICBib29sIGlzVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuIGlzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpICYmIHJvb3QoKS5p
c1RhYmxlV3JhcHBlckJveCgpOyB9CisgICAgYm9vbCBpc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgp
IGNvbnN0IHsgcmV0dXJuIHJvb3QoKS5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgp
OyB9CiAKICAgICBlbnVtIGNsYXNzIEVzY2FwZVJlYXNvbiB7CiAgICAgICAgIE5lZWRzR2VvbWV0
cnlGcm9tRXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nU3RhdGUuaAppbmRleCBjNjI5MThkNjVjM2UwNmVhMWI2YmVjYzZlYzY3ZDA2ZjVi
OGUyZWQ2Li5kYTkwNDExZjAwMTA5OTY4MjNiYWQzN2E5MjUyMzI3MTIwMjBkNTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5oCkBAIC01Nyw2ICs1Nyw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzQmxvY2tGb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVHlwZTo6QmxvY2s7IH0KICAgICBib29sIGlzSW5saW5lRm9ybWF0dGluZ1N0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OklubGluZTsgfQogICAgIGJvb2wgaXNUYWJs
ZUZvcm1hdHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpUYWJsZTsg
fQorICAgIGJvb2wgaXNGbGV4Rm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IFR5cGU6OkZsZXg7IH0KIAogICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5b3V0U3RhdGU7IH0KIApAQCAtNjgsNyArNjksNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgT3V0T2ZGbG93Qm94TGlzdCYgb3V0T2ZGbG93Qm94ZXMoKSBjb25zdCB7IHJldHVy
biBtX291dE9mRmxvd0JveGVzOyB9CiAKIHByb3RlY3RlZDoKLSAgICBlbnVtIGNsYXNzIFR5cGUg
eyBCbG9jaywgSW5saW5lLCBUYWJsZSB9OworICAgIGVudW0gY2xhc3MgVHlwZSB7IEJsb2NrLCBJ
bmxpbmUsIFRhYmxlLCBGbGV4IH07CiAgICAgRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0
YXRlPiYmLCBUeXBlLCBMYXlvdXRTdGF0ZSYpOwogICAgIH5Gb3JtYXR0aW5nU3RhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggNjM5YjhjMmI4MzkzMzFmMTll
MTQ0OWFkNjE4YjFiYTVjOGE5NGM1OC4uMmRhZmI0NWFlYzcxOWYyMTQ3N2JmZWI5MWRhMWRjNzg3
ZDc2NzhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkRp
c3BsYXlCb3guaCIKKyNpbmNsdWRlICJGbGV4Rm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAi
RmxvYXRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgogI2lu
Y2x1ZGUgIkxheW91dEJveC5oIgpAQCAtMTAwLDggKzEwMSwxMyBAQCBGb3JtYXR0aW5nU3RhdGUm
IExheW91dFN0YXRlOjplc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJC
b3gmIGZvcgogICAgIGlmIChhdXRvKiBmb3JtYXR0aW5nU3RhdGUgPSBtX2Jsb2NrRm9ybWF0dGlu
Z1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCkpCiAgICAgICAgIHJldHVybiAqZm9y
bWF0dGluZ1N0YXRlOwogCi0gICAgQVNTRVJUKG1fdGFibGVGb3JtYXR0aW5nU3RhdGVzLmNvbnRh
aW5zKCZmb3JtYXR0aW5nQ29udGV4dFJvb3QpKTsKLSAgICByZXR1cm4gKm1fdGFibGVGb3JtYXR0
aW5nU3RhdGVzLmdldCgmZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICBpZiAoYXV0byogZm9y
bWF0dGluZ1N0YXRlID0gbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuZ2V0KCZmb3JtYXR0aW5nQ29u
dGV4dFJvb3QpKQorICAgICAgICByZXR1cm4gKmZvcm1hdHRpbmdTdGF0ZTsKKworICAgIGlmIChh
dXRvKiBmb3JtYXR0aW5nU3RhdGUgPSBtX2ZsZXhGb3JtYXR0aW5nU3RhdGVzLmdldCgmZm9ybWF0
dGluZ0NvbnRleHRSb290KSkKKyAgICAgICAgcmV0dXJuICpmb3JtYXR0aW5nU3RhdGU7CisKKyAg
ICBDUkFTSCgpOwogfQogCiBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIExheW91dFN0YXRlOjplc3Rh
Ymxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRp
bmdDb250ZXh0Um9vdCkgY29uc3QKQEAgLTEyOCw2ICsxMzQsMTIgQEAgVGFibGVGb3JtYXR0aW5n
U3RhdGUmIExheW91dFN0YXRlOjplc3RhYmxpc2hlZFRhYmxlRm9ybWF0dGluZ1N0YXRlKGNvbnN0
IENvbnRhaW4KICAgICByZXR1cm4gKm1fdGFibGVGb3JtYXR0aW5nU3RhdGVzLmdldCgmZm9ybWF0
dGluZ0NvbnRleHRSb290KTsKIH0KIAorRmxleEZvcm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6
OmVzdGFibGlzaGVkRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1h
dHRpbmdDb250ZXh0Um9vdCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRS
b290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOworICAgIHJldHVybiAqbV9m
bGV4Rm9ybWF0dGluZ1N0YXRlcy5nZXQoJmZvcm1hdHRpbmdDb250ZXh0Um9vdCk7Cit9CisKIEZv
cm1hdHRpbmdTdGF0ZSYgTGF5b3V0U3RhdGU6OmVuc3VyZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBD
b250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKIHsKICAgICBpZiAoZm9ybWF0dGlu
Z0NvbnRleHRSb290LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkKQEAgLTEz
Niw3ICsxNDgsMTMgQEAgRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6ZW5zdXJlRm9ybWF0
dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGkKICAgICBpZiAoZm9ybWF0dGlu
Z0NvbnRleHRSb290LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKQogICAgICAg
ICByZXR1cm4gZW5zdXJlQmxvY2tGb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ0NvbnRleHRSb290
KTsKIAotICAgIHJldHVybiBlbnN1cmVUYWJsZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29u
dGV4dFJvb3QpOworICAgIGlmIChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0KCkpCisgICAgICAgIHJldHVybiBlbnN1cmVUYWJsZUZvcm1hdHRp
bmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3QpOworCisgICAgaWYgKGZvcm1hdHRpbmdDb250
ZXh0Um9vdC5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpKQorICAgICAgICByZXR1
cm4gZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3QpOworCisg
ICAgQ1JBU0goKTsKIH0KIAogSW5saW5lRm9ybWF0dGluZ1N0YXRlJiBMYXlvdXRTdGF0ZTo6ZW5z
dXJlSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290KQpAQCAtMTkxLDYgKzIwOSwxOCBAQCBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYgTGF5
b3V0U3RhdGU6OmVuc3VyZVRhYmxlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveAog
ICAgIHJldHVybiAqbV90YWJsZUZvcm1hdHRpbmdTdGF0ZXMuZW5zdXJlKCZmb3JtYXR0aW5nQ29u
dGV4dFJvb3QsIGNyZWF0ZSkuaXRlcmF0b3ItPnZhbHVlOwogfQogCitGbGV4Rm9ybWF0dGluZ1N0
YXRlJiBMYXlvdXRTdGF0ZTo6ZW5zdXJlRmxleEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWlu
ZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkKK3sKKyAgICBBU1NFUlQoZm9ybWF0dGluZ0Nv
bnRleHRSb290LmVzdGFibGlzaGVzRmxleEZvcm1hdHRpbmdDb250ZXh0KCkpOworCisgICAgYXV0
byBjcmVhdGUgPSBbJl0geworICAgICAgICAvLyBGbGV4IGZvcm1hdHRpbmcgY29udGV4dCBhbHdh
eXMgZXN0YWJsaXNoZXMgYSBuZXcgZmxvYXRpbmcgc3RhdGUgLWFuZCBpdCBzdGF5cyBlbXB0eS4K
KyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8RmxleEZvcm1hdHRpbmdTdGF0ZT4oRmxvYXRpbmdT
dGF0ZTo6Y3JlYXRlKCp0aGlzLCBmb3JtYXR0aW5nQ29udGV4dFJvb3QpLCAqdGhpcyk7CisgICAg
fTsKKworICAgIHJldHVybiAqbV9mbGV4Rm9ybWF0dGluZ1N0YXRlcy5lbnN1cmUoJmZvcm1hdHRp
bmdDb250ZXh0Um9vdCwgY3JlYXRlKS5pdGVyYXRvci0+dmFsdWU7Cit9CisKIHZvaWQgTGF5b3V0
U3RhdGU6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBMYXlvdXRTaXplJiB2aWV3cG9ydFNpemUpCiB7
CiAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5
b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRTdGF0ZS5oCmluZGV4IDZlZTU1NDM3Y2M2YmVmZTMzMjYzODhiNDlmNTJiODhkM2E3
OGMwODQuLjVkZGI2ZTc4YTFlMTM4MDRiYTM4YTRiZWQzZTAyNmYyZjM2OGNkMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIEJveDsKIAog
bmFtZXNwYWNlIExheW91dCB7CiAKK2NsYXNzIEZsZXhGb3JtYXR0aW5nU3RhdGU7CiBjbGFzcyBG
b3JtYXR0aW5nQ29udGV4dDsKIGNsYXNzIEZvcm1hdHRpbmdTdGF0ZTsKIGNsYXNzIEJsb2NrRm9y
bWF0dGluZ1N0YXRlOwpAQCAtNTcsMTEgKzU4LDEzIEBAIHB1YmxpYzoKICAgICBJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUmIGVuc3VyZUlubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJC
b3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCk7CiAgICAgQmxvY2tGb3JtYXR0aW5nU3RhdGUmIGVu
c3VyZUJsb2NrRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0Nv
bnRleHRSb290KTsKICAgICBUYWJsZUZvcm1hdHRpbmdTdGF0ZSYgZW5zdXJlVGFibGVGb3JtYXR0
aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOworICAg
IEZsZXhGb3JtYXR0aW5nU3RhdGUmIGVuc3VyZUZsZXhGb3JtYXR0aW5nU3RhdGUoY29uc3QgQ29u
dGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogCiAgICAgRm9ybWF0dGluZ1N0YXRl
JiBlc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRp
bmdSb290KSBjb25zdDsKICAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkSW5s
aW5lRm9ybWF0dGluZ1N0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRleHRS
b290KSBjb25zdDsKICAgICBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZXN0YWJsaXNoZWRCbG9ja0Zv
cm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkg
Y29uc3Q7CiAgICAgVGFibGVGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkVGFibGVGb3JtYXR0
aW5nU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpIGNvbnN0
OworICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkRmxleEZvcm1hdHRpbmdTdGF0
ZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCkgY29uc3Q7CiAKICAg
ICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZUZvckJveChjb25zdCBCb3gmKSBjb25z
dDsKICAgICBib29sIGhhc0lubGluZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBDb250YWluZXJCb3gm
IGZvcm1hdHRpbmdSb290KSBjb25zdCB7IHJldHVybiBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZXMu
Y29udGFpbnMoJmZvcm1hdHRpbmdSb290KTsgfQpAQCAtOTcsNiArMTAwLDcgQEAgcHJpdmF0ZToK
ICAgICBIYXNoTWFwPGNvbnN0IENvbnRhaW5lckJveCosIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVG
b3JtYXR0aW5nU3RhdGU+PiBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZXM7CiAgICAgSGFzaE1hcDxj
b25zdCBDb250YWluZXJCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8QmxvY2tGb3JtYXR0aW5nU3RhdGU+
PiBtX2Jsb2NrRm9ybWF0dGluZ1N0YXRlczsKICAgICBIYXNoTWFwPGNvbnN0IENvbnRhaW5lckJv
eCosIHN0ZDo6dW5pcXVlX3B0cjxUYWJsZUZvcm1hdHRpbmdTdGF0ZT4+IG1fdGFibGVGb3JtYXR0
aW5nU3RhdGVzOworICAgIEhhc2hNYXA8Y29uc3QgQ29udGFpbmVyQm94Kiwgc3RkOjp1bmlxdWVf
cHRyPEZsZXhGb3JtYXR0aW5nU3RhdGU+PiBtX2ZsZXhGb3JtYXR0aW5nU3RhdGVzOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPElubGluZUZvcm1hdHRpbmdTdGF0ZT4gbV9yb290SW5saW5lRm9ybWF0
dGluZ1N0YXRlRm9ySW50ZWdyYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzVkZmU0YzUxMTBmY2Y5NDA0M2M1YzZjZDFjMDNlMzY3NTU5MmQwYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9y
bWF0dGluZ0NvbnRleHQuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdDb250ZXh0LmgiCisKKyNpZiBF
TkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkZsZXhGb3JtYXR0
aW5nU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEZsZXhGb3JtYXR0aW5nQ29udGV4dCk7CisKK0ZsZXhGb3JtYXR0aW5nQ29udGV4dDo6
RmxleEZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lckJveCYgZm9ybWF0dGluZ0NvbnRl
eHRSb290LCBGbGV4Rm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpCisgICAgOiBGb3Jt
YXR0aW5nQ29udGV4dChmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGZvcm1hdHRpbmdTdGF0ZSkKK3sK
K30KKwordm9pZCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52
YWxpZGF0aW9uU3RhdGUmLCBjb25zdCBDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQmKQorewor
fQorCitGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBGbGV4Rm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpCit7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKworfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMzM3MmUyNWY5MmMwOTUzOWQxODY1NzhkMjE5ZTJkMWRiNGQ3MzM0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0Zs
ZXhGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5j
bHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkZvcm1hdHRpbmdDb250ZXh0
LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Citu
YW1lc3BhY2UgTGF5b3V0IHsKKworY2xhc3MgSW52YWxpZGF0aW9uU3RhdGU7CisvLyBUaGlzIGNs
YXNzIGltcGxlbWVudHMgdGhlIGxheW91dCBsb2dpYyBmb3IgZmxleCBmb3JtYXR0aW5nIGNvbnRl
eHRzLgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1mbGV4Ym94LTEvCitjbGFzcyBGbGV4
Rm9ybWF0dGluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQgeworICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmxleEZvcm1hdHRpbmdDb250ZXh0KTsKK3B1YmxpYzoK
KyAgICBGbGV4Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiBmb3JtYXR0aW5n
Q29udGV4dFJvb3QsIEZsZXhGb3JtYXR0aW5nU3RhdGUmKTsKKyAgICB2b2lkIGxheW91dEluRmxv
d0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmLCBjb25zdCBDb25zdHJhaW50c0ZvckluRmxvd0Nv
bnRlbnQmKSBvdmVycmlkZTsKKworICAgIEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgY29tcHV0
ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAg
Y29uc3QgRmxleEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1
cm4gZG93bmNhc3Q8RmxleEZvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1h
dHRpbmdTdGF0ZSgpKTsgfQorICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0
ZSgpIHsgcmV0dXJuIGRvd25jYXN0PEZsZXhGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRpbmdDb250
ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7IH0KK307CisKK30KK30KKworU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19MQVlPVVRfRk9STUFUVElOR19DT05URVhUKEZsZXhGb3JtYXR0aW5nQ29udGV4dCwg
aXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDU5ZmM4NWEwMzg1MmQzMzUyNjEzODQwZjMxMjJjNzMzYzU0ZmFhMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9G
bGV4Rm9ybWF0dGluZ1N0YXRlLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZsZXhGb3JtYXR0aW5nU3RhdGUuaCIKKworI2lm
IEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7
CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGbGV4Rm9ybWF0dGluZ1N0YXRlKTsKKwor
RmxleEZvcm1hdHRpbmdTdGF0ZTo6RmxleEZvcm1hdHRpbmdTdGF0ZShSZWY8RmxvYXRpbmdTdGF0
ZT4mJiBmbG9hdGluZ1N0YXRlLCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCisgICAgOiBGb3Jt
YXR0aW5nU3RhdGUoV1RGTW92ZShmbG9hdGluZ1N0YXRlKSwgVHlwZTo6RmxleCwgbGF5b3V0U3Rh
dGUpCit7Cit9CisKK0ZsZXhGb3JtYXR0aW5nU3RhdGU6On5GbGV4Rm9ybWF0dGluZ1N0YXRlKCkK
K3sKK30KKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTkx
ZWRlNmI4MmM4YWI3YjMyNTM3ZGY5NDIzZDAyMTBiMDAxNzI4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nU3RhdGUu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkZvcm1hdHRpbmdTdGF0
ZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
bmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIEZsZXhGb3JtYXR0aW5nU3RhdGUgOiBwdWJsaWMg
Rm9ybWF0dGluZ1N0YXRlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZsZXhGb3JtYXR0
aW5nU3RhdGUpOworcHVibGljOgorICAgIEZsZXhGb3JtYXR0aW5nU3RhdGUoUmVmPEZsb2F0aW5n
U3RhdGU+JiYsIExheW91dFN0YXRlJik7CisgICAgfkZsZXhGb3JtYXR0aW5nU3RhdGUoKTsKK307
CisKK30KK30KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfRk9STUFUVElOR19TVEFU
RShGbGV4Rm9ybWF0dGluZ1N0YXRlLCBpc0ZsZXhGb3JtYXR0aW5nU3RhdGUoKSkKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAppbmRl
eCA3Njc3N2RiZWI0NjEzNThhMmQ5YmYwOWJmYTVkMGYwZjYzNzk2OWRmLi40NjhiOGI4MTFlOWZl
ZDY3NzUxOWIzZDM2ZDRlOGZlZmQxNWNmNDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTY1LDcgKzY1LDExIEBAIGJvb2wgQm94Ojpl
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QKIHsKICAgICAvLyBXZSBuZWVkIHRo
ZSBmaW5hbCB0cmVlIHN0cnVjdHVyZSB0byB0ZWxsIHdoZXRoZXIgYSBib3ggZXN0YWJsaXNoZXMg
YSBjZXJ0YWluIGZvcm1hdHRpbmcgY29udGV4dC4gCiAgICAgQVNTRVJUKCFQaGFzZTo6aXNJblRy
ZWVCdWlsZGluZygpKTsKLSAgICByZXR1cm4gZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0KCkgfHwgZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpIHx8IGVzdGFibGlz
aGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIHx8IGVzdGFibGlzaGVzSW5kZXBlbmRlbnRGb3Jt
YXR0aW5nQ29udGV4dCgpOworICAgIHJldHVybiBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQoKQorICAgICAgICB8fCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkK
KyAgICAgICAgfHwgZXN0YWJsaXNoZXNUYWJsZUZvcm1hdHRpbmdDb250ZXh0KCkKKyAgICAgICAg
fHwgZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKQorICAgICAgICB8fCBlc3RhYmxp
c2hlc0luZGVwZW5kZW50Rm9ybWF0dGluZ0NvbnRleHQoKTsKIH0KIAogYm9vbCBCb3g6OmVzdGFi
bGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0CkBAIC0xMTksNiArMTIzLDExIEBA
IGJvb2wgQm94Ojplc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdAogICAg
IHJldHVybiBpc1RhYmxlQm94KCk7CiB9CiAKK2Jvb2wgQm94Ojplc3RhYmxpc2hlc0ZsZXhGb3Jt
YXR0aW5nQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzRmxleEJveCgpOworfQorCiBi
b29sIEJveDo6ZXN0YWJsaXNoZXNJbmRlcGVuZGVudEZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QK
IHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCBjaGVjayBmb3IgJ2NvbnRh
aW4nIHByb3BlcnR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
b3guaAppbmRleCBhN2FjOTgxYzZmODM2OTdjNGI1ZGI0NTM0MTQ1MDA3YzhiMzE1NTBiLi5mZTEy
NGFhZGVlYzkxMDZmNDgyNDFjNDI2NmYyYzg3NWEzNzBlYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAg
ICBib29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAgICBi
b29sIGVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OworICAgIGJvb2wg
ZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAgICBib29sIGVzdGFi
bGlzaGVzSW5kZXBlbmRlbnRGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogCiAgICAgYm9vbCBp
c0luRmxvdygpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVk
KCk7IH0KQEAgLTEyNCw2ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1RhYmxlQ29sdW1u
R3JvdXAoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6
VGFibGVDb2x1bW5Hcm91cDsgfQogICAgIGJvb2wgaXNUYWJsZUNvbHVtbigpIGNvbnN0IHsgcmV0
dXJuIHN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpUYWJsZUNvbHVtbjsgfQogICAg
IGJvb2wgaXNUYWJsZUNlbGwoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBE
aXNwbGF5VHlwZTo6VGFibGVDZWxsOyB9CisgICAgYm9vbCBpc0ZsZXhCb3goKSBjb25zdCB7IHJl
dHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6RmxleDsgfQogICAgIGJvb2wg
aXNJRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnRBdHRyaWJ1dGVzICYmIG1fZWxlbWVu
dEF0dHJpYnV0ZXMudmFsdWUoKS5lbGVtZW50VHlwZSA9PSBFbGVtZW50VHlwZTo6SUZyYW1lOyB9
CiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50QXR0cmlidXRlcyAm
JiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5cGUgPT0gRWxlbWVudFR5cGU6
OkltYWdlOyB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>