<?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>239348</bug_id>
          
          <creation_ts>2022-04-14 11:15:59 -0700</creation_ts>
          <short_desc>[GTK][WPE][GPUProcess] Add RemoteGraphicsContextGLGBM, RemoteGraphicsContextGLProxyGBM</short_desc>
          <delta_ts>2022-06-06 00:35:50 -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>New Bugs</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>238593</blocked>
    
    <blocked>241328</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1861580</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-14 11:15:59 -0700</bug_when>
    <thetext>[GTK][WPE][GPUProcess] Add RemoteGraphicsContextGLGBM, RemoteGraphicsContextGLProxyGBM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861581</commentid>
    <comment_count>1</comment_count>
      <attachid>457642</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-14 11:17:06 -0700</bug_when>
    <thetext>Created attachment 457642
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861748</commentid>
    <comment_count>2</comment_count>
      <attachid>457678</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-14 23:58:36 -0700</bug_when>
    <thetext>Created attachment 457678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862502</commentid>
    <comment_count>3</comment_count>
      <attachid>457678</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-04-19 05:23:19 -0700</bug_when>
    <thetext>Comment on attachment 457678
Patch

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

&gt; Source/WebKit/WebProcess/GPU/graphics/gbm/RemoteGraphicsContextGLProxyGBM.cpp:48
&gt; +    NicosiaDisplayDelegate(bool isOpaque);

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862503</commentid>
    <comment_count>4</comment_count>
      <attachid>457878</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-19 05:28:54 -0700</bug_when>
    <thetext>Created attachment 457878
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862505</commentid>
    <comment_count>5</comment_count>
      <attachid>457878</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-19 05:32:17 -0700</bug_when>
    <thetext>Comment on attachment 457878
Patch for landing

Clearing flags on attachment: 457878

Committed r293015 (249754@trunk): &lt;https://commits.webkit.org/249754@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862506</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-19 05:32:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862507</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-19 05:33:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/91954233&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874250</commentid>
    <comment_count>8</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-06-06 00:35:50 -0700</bug_when>
    <thetext>Note to reviewer: this manually changed files marked for autogeneration.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457642</attachid>
            <date>2022-04-14 11:17:06 -0700</date>
            <delta_ts>2022-04-14 23:58:31 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-239348-20220414201704.patch</filename>
            <type>text/plain</type>
            <size>17321</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1NzgzMTgyNTU0MGViMjY0
NDQwYjUxYzc4ZjI4ZWFhODcwZjUxNjAuLjIxMzRkYmIyMjJkNGIwOWJjMDhkMmVlOTIzZjQ0OWEw
MzViMDFlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjItMDQtMTQgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV1bR1BVUHJv
Y2Vzc10gQWRkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNLCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5R0JNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0uY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk06OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMR0JNKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xHQk06OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUpOgorICAgICAgICAqIFNvdXJj
ZXNHVEsudHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2dibS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok5pY29zaWFEaXNwbGF5RGVsZWdhdGU6Ok5pY29zaWFE
aXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpOaWNvc2lhRGlzcGxheURlbGVnYXRl
Ojp+Tmljb3NpYURpc3BsYXlEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5pY29zaWFEaXNw
bGF5RGVsZWdhdGU6OnBsYXRmb3JtTGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOaWNv
c2lhRGlzcGxheURlbGVnYXRlOjpzd2FwQnVmZmVyc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUdCTSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlHQk06OmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OmNyZWF0ZSk6CisKIDIw
MjItMDQtMTQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtXSzJdIEVuYWJsZSBtb3JlIGVmZmljaWVudCBlbmNvZGluZyBvZiBzeW5jaHJvbm91cy1tZXNz
YWdlIHJlcGx5IGFyZ3VtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggZjAyNDJh
ZjdhNDUwMGE1MDQyNmMzYjIyNTU0MTQyMzY2ODM2YzczOS4uNjQ4NzIzOGJlMTEwMjY5MzBhYTQz
N2I1OGUxZjMwODBkODI4Y2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIElQQzo6U3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZSYgcmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKQogICAgIHJldHVybiBpbnN0YW5jZS5nZXQoKTsKIH0K
IAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdJTikKKyNpZiAhUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShXSU4pICYmICFVU0UoTElCR0JNKQogUmVmPFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBn
cmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRl
cmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMOjpyZXNoYXBlKGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0KQog
ICAgICAgICBmb3JjZUNvbnRleHRMb3N0KCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYm
ICFQTEFURk9STShXSU4pCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0lOKSAm
JiAhVVNFKExJQkdCTSkKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnByZXBhcmVGb3JE
aXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApp
bmRleCBmZmY1ZTcxYzM1YjMyMTM4NzdhOTY1Njk5NDFhNmY1YjhkOWYzNzFkLi5kZDFkYTc5ZmUw
MDMwYWRmZDgyODJiODYxMmRiNWVkNThhNDZjZjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaApA
QCAtNDEsNiArNDEsOCBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRHTENvY29hLmg+CisjZWxpZiBVU0UoTElCR0JNKQorI2luY2x1ZGUg
PFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xHQk0uaD4KICNlbHNlCiAjaW5jbHVkZSA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5oPgogI2VuZGlmCkBAIC0xMTEs
NiArMTEzLDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRGlzcGxh
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikgPSAwOwog
I2VsaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9y
RGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V0NDb250ZW50QnVm
ZmVySWRlbnRpZmllcj4pPiYmKSA9IDA7CisjZWxpZiBVU0UoTElCR0JNKQorICAgIHZpcnR1YWwg
dm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRN
QUJ1Zk9iamVjdCYmKT4mJikgPSAwOwogI2Vsc2UKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKQEAgLTE0MCw2ICsxNDQsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4gbV9z
dHJlYW1Db25uZWN0aW9uOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHVzaW5nIEdDR0xDb250
ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTsKKyNlbGlmIFVTRShMSUJHQk0p
CisgICAgdXNpbmcgR0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEdCTTsK
ICNlbHNlCiAgICAgdXNpbmcgR0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXJBTkdMRTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Lm1lc3NhZ2VzLmluCmluZGV4IDk0OGNiMzYzMDE0OGM4Nzg3N2RiMzQ1ZDYzMTA2YWE0NTc3ZmQ3
MTguLjI5ZmUyMTQxZmVkYzhlMDMxYjEwZDIwMTNmNmY3YTA4ZGRlZDE3ZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KQEAgLTMyLDcgKzMyLDEwIEBAIG1lc3Nh
Z2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKICNp
ZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCiAgICAgdm9pZCBQcmVwYXJlRm9yRGlzcGxheSgpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V0NDb250ZW50QnVmZmVySWRlbnRpZmllcj4gY29udGVu
dEJ1ZmZlcikgU3luY2hyb25vdXMKICNlbmRpZgotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVT
RShHUkFQSElDU19MQVlFUl9XQykKKyNpZiBVU0UoTElCR0JNKQorICAgIHZvaWQgUHJlcGFyZUZv
ckRpc3BsYXkoKSAtPiAoV2ViQ29yZTo6RE1BQnVmT2JqZWN0IGRtYWJ1Zk9iamVjdCkgU3luY2hy
b25vdXMgTm90U3RyZWFtRW5jb2RhYmxlUmVwbHkKKyNlbmRpZgorI2lmICFQTEFURk9STShDT0NP
QSkgJiYgIVVTRShHUkFQSElDU19MQVlFUl9XQykgJiYgIVVTRShMSUJHQk0pCiAgICAgdm9pZCBQ
cmVwYXJlRm9yRGlzcGxheSgpIC0+ICgpIFN5bmNocm9ub3VzCiAjZW5kaWYKICAgICB2b2lkIEVu
c3VyZUV4dGVuc2lvbkVuYWJsZWQoU3RyaW5nIGV4dGVuc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xHQk0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYzFmNzM2MjZlOWZmNzM2MThkZDY5ZWJiZTYyYjcy
OWY3YmQ2YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0uY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHly
aWdodCAoQykgMjAyMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoTElCR0JNKQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0gZmluYWwgOiBwdWJsaWMg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgeworcHVibGljOgorICAgIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMR0JNKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBHcmFwaGljc0NvbnRleHRHTElk
ZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25C
dWZmZXImJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxp
emUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpIGZpbmFsOworICAgIHZv
aWQgcHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpETUFC
dWZPYmplY3QmJik+JiYpIGZpbmFsOworfTsKKworUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk06
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25C
dWZmZXImJiBzdHJlYW0pCisgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChjb25uZWN0aW9u
LCBpZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCit7IH0KKwor
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFs
aXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCit7
CisgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKKyAgICBtX2NvbnRleHQgPSBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEdCTTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOwor
fQorCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNOjpwcmVwYXJlRm9yRGlzcGxheShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRNQUJ1Zk9iamVjdCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOworICAgIG1f
Y29udGV4dC0+cHJlcGFyZUZvckRpc3BsYXkoKTsKKworICAgIFdlYkNvcmU6OkRNQUJ1Zk9iamVj
dCBkbWFidWZPYmplY3QoMCk7CisgICAgYXV0byYgc3dhcGNoYWluID0gbV9jb250ZXh0LT5zd2Fw
Y2hhaW4oKTsKKyAgICBpZiAoc3dhcGNoYWluLmRpc3BsYXlCTykgeworICAgICAgICB1aW50cHRy
X3QgaGFuZGxlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHN3YXBjaGFpbi5zd2FwY2hh
aW4uZ2V0KCkpICsgc3dhcGNoYWluLmRpc3BsYXlCTy0+aGFuZGxlKCk7CisgICAgICAgIGRtYWJ1
Zk9iamVjdCA9IHN3YXBjaGFpbi5kaXNwbGF5Qk8tPmNyZWF0ZURNQUJ1Zk9iamVjdChoYW5kbGUp
OworICAgICAgICBzd2FwY2hhaW4uZGlzcGxheUJPID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRtYWJ1Zk9iamVjdCkpOworfQorCitSZWY8UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKK3sKKyAgICBhdXRvIGluc3RhbmNlID0g
YWRvcHRSZWYoKm5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTShjb25uZWN0aW9uLCBpZGVu
dGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpKTsKKyAgICBpbnN0YW5j
ZS0+aW5pdGlhbGl6ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICByZXR1cm4gaW5zdGFuY2U7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmIFVTRShMSUJHQk0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRl
eCA5OGI3NDg1NDMzNmIzNGU4NDg3ZTBhZGIzNmNmNGE0MTNjNmZlNjNjLi4zYjUyZDEwYWY2OGZh
OTA0OGQ5MzE5MzcyMGZlMzA2OGRlZmE4NjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTI0LDYg
KzI0LDggQEAKIEdQVVByb2Nlc3MvZ2xpYi9HUFVQcm9jZXNzR0xpYi5jcHAKIEdQVVByb2Nlc3Mv
Z2xpYi9HUFVQcm9jZXNzTWFpbkdMaWIuY3BwCiAKK0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xHQk0uY3BwCisKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuY3BwCiAKIEdQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVyL1JlbW90
ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIuY3BwCkBAIC0yODIsNiArMjg0LDggQEAgVUlQcm9j
ZXNzL2d0ay9XZWJUZXh0Q2hlY2tlckNsaWVudC5jcHAKIFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eVNvdXAuY3BwCiBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAu
Y3BwCiAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2dibS9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5R0JNLmNwcAorCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9nc3RyZWFtZXIvVmlkZW9MYXll
clJlbW90ZUdTdHJlYW1lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXgg
YTAxZTViMjBmMWZiMDVhMWMwNTdjMDdmODI3MzEwYTM3Y2Y3M2UzZi4uYWUyMTgxMDg4ZjgyMjE1
OTRjOWEyYjRmYmU1ZDk5ZjJiNjkzNmQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0yNCw2ICsy
NCw4IEBACiBHUFVQcm9jZXNzL2dsaWIvR1BVUHJvY2Vzc0dMaWIuY3BwCiBHUFVQcm9jZXNzL2ds
aWIvR1BVUHJvY2Vzc01haW5HTGliLmNwcAogCitHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMR0JNLmNwcAorCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcAogCiBHUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVN
ZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcApAQCAtMjI5LDYgKzIzMSw4IEBAIFVJUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKIAogVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJv
eHlXUEUuY3BwCiAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2dibS9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5R0JNLmNwcAorCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9nc3RyZWFtZXIvVmlk
ZW9MYXllclJlbW90ZUdTdHJlYW1lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9nYm0vUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUdCTS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2dibS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDBi
NTM0MWYwNGI1YTE0MjAxNmU4NzgxNGE5N2RjNmU2YTcyNmIwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9nYm0vUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUdCTS5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjIgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAyMiBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoV0VCR0wpICYmIFVTRShMSUJHQk0pCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9ETUFCdWZPYmplY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Tmljb3NpYUNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5RE1BQnVmLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBOaWNvc2lhRGlzcGxheURlbGVnYXRlIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSwgcHVibGljIE5pY29z
aWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQgeworcHVibGljOgorICAg
IE5pY29zaWFEaXNwbGF5RGVsZWdhdGUoYm9vbCBpc09wYXF1ZSk7CisgICAgdmlydHVhbCB+Tmlj
b3NpYURpc3BsYXlEZWxlZ2F0ZSgpOworCisgICAgdm9pZCBwcmVzZW50KFdlYkNvcmU6OkRNQUJ1
Zk9iamVjdCYmIGRtYWJ1Zk9iamVjdCkKKyAgICB7CisgICAgICAgIG1fcGVuZGluZyA9IFdURk1v
dmUoZG1hYnVmT2JqZWN0KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlCisgICAgTmljb3NpYTo6UGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsOworCisgICAgLy8gTmljb3NpYTo6Q29u
dGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudAorICAgIHZvaWQgc3dhcEJ1ZmZlcnNJ
Zk5lZWRlZCgpIGZpbmFsOworCisgICAgYm9vbCBtX2lzT3BhcXVlIHsgZmFsc2UgfTsKKyAgICBS
ZWZQdHI8Tmljb3NpYTo6Q29udGVudExheWVyPiBtX2NvbnRlbnRMYXllcjsKKyAgICBXZWJDb3Jl
OjpETUFCdWZPYmplY3QgbV9wZW5kaW5nIHsgV2ViQ29yZTo6RE1BQnVmT2JqZWN0KDApIH07Cit9
OworCitOaWNvc2lhRGlzcGxheURlbGVnYXRlOjpOaWNvc2lhRGlzcGxheURlbGVnYXRlKGJvb2wg
aXNPcGFxdWUpCisgICAgOiBtX2lzT3BhcXVlKGlzT3BhcXVlKQoreworICAgIG1fY29udGVudExh
eWVyID0gTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmljb3NpYTo6Q29udGVudExheWVy
VGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMsIGFkb3B0UmVmKCpuZXcgV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eURNQUJ1ZikpKTsKK30KKworTmlj
b3NpYURpc3BsYXlEZWxlZ2F0ZTo6fk5pY29zaWFEaXNwbGF5RGVsZWdhdGUoKQoreyB9CisKK05p
Y29zaWE6OlBsYXRmb3JtTGF5ZXIqIE5pY29zaWFEaXNwbGF5RGVsZWdhdGU6OnBsYXRmb3JtTGF5
ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRlbnRMYXllci5nZXQoKTsKK30KKwordm9p
ZCBOaWNvc2lhRGlzcGxheURlbGVnYXRlOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkKK3sKKyAgICBh
dXRvJiBwcm94eSA9IGRvd25jYXN0PE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJ
bXBsPihtX2NvbnRlbnRMYXllci0+aW1wbCgpKS5wcm94eSgpOworICAgIEFTU0VSVChpczxXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5RE1BQnVmPihwcm94eSkpOworCisg
ICAgaWYgKCEhbV9wZW5kaW5nLmhhbmRsZSkgeworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJv
eHkubG9jaygpIH07CisKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpGbGFncyBm
bGFncyA9IFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6U2hvdWxkRmxpcFRleHR1cmU7CisgICAg
ICAgIGlmICghbV9pc09wYXF1ZSkKKyAgICAgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQ7CisKKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6VGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eURNQUJ1Zj4ocHJveHkpLnB1c2hETUFCdWYoV1RG
TW92ZShtX3BlbmRpbmcpLAorICAgICAgICAgICAgW10oYXV0byYmIG9iamVjdCkgeyByZXR1cm4g
b2JqZWN0OyB9LCBmbGFncyk7CisgICAgfQorICAgIG1fcGVuZGluZyA9IFdlYkNvcmU6OkRNQUJ1
Zk9iamVjdCgwKTsKK30KKworY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTSBm
aW5hbCA6IHB1YmxpYyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IHsKK3B1YmxpYzoKKyAg
ICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwg
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgflJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlHQk0oKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0wKKyAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxh
eURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWw7CisgICAgdm9p
ZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOworCisgICAgUmVmPE5pY29zaWFEaXNwbGF5RGVs
ZWdhdGU+IG1fbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZTsKK307CisKK1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlHQk06OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk0oR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mIHByb2Nlc3NDb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCisgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5KHByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKQorICAg
ICwgbV9sYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKGFkb3B0UmVmKCpuZXcgTmljb3NpYURp
c3BsYXlEZWxlZ2F0ZSghYXR0cmlidXRlcy5hbHBoYSkpKQoreyB9CisKK1JlZlB0cjxXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlHQk06OmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKQoreworICAgIHJl
dHVybiBtX2xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY29weVJlZigpOworfQorCit2b2lk
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk06OnByZXBhcmVGb3JEaXNwbGF5KCkKK3sK
KyAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3Jl
OjpETUFCdWZPYmplY3QgZG1hYnVmT2JqZWN0KDApOworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNl
bmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFyZUZvckRpc3Bs
YXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJlRm9yRGlzcGxh
eTo6UmVwbHkoZG1hYnVmT2JqZWN0KSk7CisgICAgaWYgKCFzZW5kUmVzdWx0KSB7CisgICAgICAg
IG1hcmtDb250ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9sYXll
ckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLT5wcmVzZW50KFdURk1vdmUoZG1hYnVmT2JqZWN0KSk7
CisgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOworfQorCitSZWZQdHI8UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y3JlYXRlKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk0oV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgYXR0cmlidXRlcywgcmVuZGVy
aW5nQmFja2VuZCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoTElCR0JNKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457678</attachid>
            <date>2022-04-14 23:58:36 -0700</date>
            <delta_ts>2022-04-19 05:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239348-20220415085834.patch</filename>
            <type>text/plain</type>
            <size>18703</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjMGViMjQzZWEzNDU1NDg1
MDU0ZTU5YzZjYjk4MTE1NmVmNWNkOTYuLjJlNmVjNGM2Y2UxMzVkMDYzMWM4NjI4YjAxYzUxOWM5
NGY1ZmE5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjItMDQtMTQgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV1bR1BVUHJv
Y2Vzc10gQWRkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNLCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5R0JNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQcm92aWRlIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIGFuZCBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5CisgICAgICAgIGltcGxlbWVudGF0aW9ucyBndWFyZGVkIGJ5IGFuZCBiYXNl
ZCBvbiBVU0UoTElCR0JNKSBmdW5jdGlvbmFsaXR5LAorICAgICAgICB1c2FibGUgYnkgdGhlIEdU
SyBhbmQgV1BFIHBvcnRzIHdoZW4gam9pbnRseSBlbmFibGVkIHdpdGggQU5HTEUKKyAgICAgICAg
YmFja2luZyBvZiBXZWJHTCBleGVjdXRpb24uCisKKyAgICAgICAgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xHQk0gaXMgdGhlIEdQVVByb2Nlc3Mtc2lkZSBHTCBleGVjdXRvci4KKyAgICAgICAgSW50
ZXJuYWxseSBpdCBzcGF3bnMgYSBHcmFwaGljc0NvbnRleHRHTEdCTSBpbnN0YW5jZSwgYW5kIG9u
Y2UgaW52b2tlZCwKKyAgICAgICAgdGhlIFByZXBhcmVGb3JEaXNwbGF5KCkgSVBDIG1lc3NhZ2Ug
cmV0dXJucyB0aGUgcmVwbHkgd2l0aCB0aGUgRE1BQnVmCisgICAgICAgIG9iamVjdCB0aGF0IHdh
cyB1c2VkIGFzIHRoZSByZW5kZXJpbmcgYmFja2luZyBpbiB0aGF0IGNvbnRleHQgaW5zdGFuY2Uu
CisKKyAgICAgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTSBpcyB0aGUgV2ViUHJv
Y2Vzcy1zaWRlIGNvdW50ZXJwYXJ0LgorICAgICAgICBCZXNpZGVzIHJlbGF5aW5nIHRoZSBwcmVw
YXJlLWZvci1kaXNwbGF5IHJlcXVlc3QsIGl0IGFsc28gbWFuYWdlcyB0aGUKKyAgICAgICAgR3Jh
cGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIG9iamVjdCB3aGljaCBoYW5kbGVzIHBy
ZXNlbnRpbmcKKyAgICAgICAgRE1BQnVmIG9iamVjdHMgYXJyaXZpbmcgZnJvbSB0aGUgR1BVUHJv
Y2Vzcy4gVGhhdCBkZWxlZ2F0ZSBpcyBvZiB0aGUKKyAgICAgICAgTmljb3NpYURpc3BsYXlEZWxl
Z2F0ZSB0eXBlLCBhIHNsaW0gY2xhc3MgYWxzbyBoYW5kbGluZyBhCisgICAgICAgIE5pY29zaWE6
OkNvbnRlbnRMYXllciBvYmplY3QgdGhyb3VnaCB3aGljaCBhbnkgYXJyaXZpbmcgRE1BQnVmIGlz
CisgICAgICAgIHByZXNlbnRlZCBpbiB0aGUgVGV4dHVyZU1hcHBlciB0cmVlLgorCisgICAgICAg
ICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2Fn
ZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTEdCTS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTEdCTTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk06OnByZXBhcmVGb3JE
aXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0
ZSk6CisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50eHQ6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvZ2JtL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlHQk0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Tmljb3NpYURpc3Bs
YXlEZWxlZ2F0ZTo6Tmljb3NpYURpc3BsYXlEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5p
Y29zaWFEaXNwbGF5RGVsZWdhdGU6On5OaWNvc2lhRGlzcGxheURlbGVnYXRlKToKKyAgICAgICAg
KFdlYktpdDo6Tmljb3NpYURpc3BsYXlEZWxlZ2F0ZTo6cGxhdGZvcm1MYXllciBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5pY29zaWFEaXNwbGF5RGVsZWdhdGU6OnN3YXBCdWZmZXJzSWZOZWVk
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNOjpS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk06OnByZXBh
cmVGb3JEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eTo6Y3JlYXRlKToKKwogMjAyMi0wNC0xNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbmRvIG9wdGlvbiBhZnRlciBpbnZva2luZyAiTWFya3Vw
IEltYWdlIiBzYXlzICJVbmRvIFBhc3RlIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXgg
ZjAyNDJhZjdhNDUwMGE1MDQyNmMzYjIyNTU0MTQyMzY2ODM2YzczOS4uNjQ4NzIzOGJlMTEwMjY5
MzBhYTQzN2I1OGUxZjMwODBkODI4Y2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBA
IC01Myw3ICs1Myw3IEBAIElQQzo6U3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZSYgcmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xTdHJlYW1Xb3JrUXVldWUoKQogICAgIHJldHVybiBpbnN0YW5jZS5nZXQo
KTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdJTikKKyNpZiAhUExB
VEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXSU4pICYmICFVU0UoTElCR0JNKQogUmVmPFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRp
ZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQm
IHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkK
IHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpyZXNoYXBlKGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVp
Z2h0KQogICAgICAgICBmb3JjZUNvbnRleHRMb3N0KCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09D
T0EpICYmICFQTEFURk9STShXSU4pCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
V0lOKSAmJiAhVVNFKExJQkdCTSkKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnByZXBh
cmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuaAppbmRleCBmZmY1ZTcxYzM1YjMyMTM4NzdhOTY1Njk5NDFhNmY1YjhkOWYzNzFkLi5kZDFk
YTc5ZmUwMDMwYWRmZDgyODJiODYxMmRiNWVkNThhNDZjZjc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuaApAQCAtNDEsNiArNDEsOCBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTENvY29hLmg+CisjZWxpZiBVU0UoTElCR0JNKQorI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xHQk0uaD4KICNlbHNlCiAjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5oPgogI2VuZGlmCkBA
IC0xMTEsNiArMTEzLDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9y
RGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikg
PSAwOwogI2VsaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQogICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V0NDb250
ZW50QnVmZmVySWRlbnRpZmllcj4pPiYmKSA9IDA7CisjZWxpZiBVU0UoTElCR0JNKQorICAgIHZp
cnR1YWwgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkRNQUJ1Zk9iamVjdCYmKT4mJikgPSAwOwogI2Vsc2UKICAgICB2b2lkIHByZXBhcmVGb3JE
aXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKQEAgLTE0MCw2ICsx
NDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bj4gbV9zdHJlYW1Db25uZWN0aW9uOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHVzaW5nIEdD
R0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTsKKyNlbGlmIFVTRShM
SUJHQk0pCisgICAgdXNpbmcgR0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TEdCTTsKICNlbHNlCiAgICAgdXNpbmcgR0NHTENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMLm1lc3NhZ2VzLmluCmluZGV4IDk0OGNiMzYzMDE0OGM4Nzg3N2RiMzQ1ZDYzMTA2YWE0
NTc3ZmQ3MTguLjI5ZmUyMTQxZmVkYzhlMDMxYjEwZDIwMTNmNmY3YTA4ZGRlZDE3ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2FnZXMuaW4KQEAgLTMyLDcgKzMyLDEwIEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIE5vdFJlZkNvdW50ZWQgU3RyZWFt
IHsKICNpZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCiAgICAgdm9pZCBQcmVwYXJlRm9yRGlzcGxh
eSgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V0NDb250ZW50QnVmZmVySWRlbnRpZmllcj4g
Y29udGVudEJ1ZmZlcikgU3luY2hyb25vdXMKICNlbmRpZgotI2lmICFQTEFURk9STShDT0NPQSkg
JiYgIVVTRShHUkFQSElDU19MQVlFUl9XQykKKyNpZiBVU0UoTElCR0JNKQorICAgIHZvaWQgUHJl
cGFyZUZvckRpc3BsYXkoKSAtPiAoV2ViQ29yZTo6RE1BQnVmT2JqZWN0IGRtYWJ1Zk9iamVjdCkg
U3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlUmVwbHkKKyNlbmRpZgorI2lmICFQTEFURk9S
TShDT0NPQSkgJiYgIVVTRShHUkFQSElDU19MQVlFUl9XQykgJiYgIVVTRShMSUJHQk0pCiAgICAg
dm9pZCBQcmVwYXJlRm9yRGlzcGxheSgpIC0+ICgpIFN5bmNocm9ub3VzCiAjZW5kaWYKICAgICB2
b2lkIEVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoU3RyaW5nIGV4dGVuc2lvbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TEdCTS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xHQk0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYzFmNzM2MjZlOWZmNzM2MThkZDY5ZWJi
ZTYyYjcyOWY3YmQ2YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0uY3BwCkBAIC0wLDAgKzEsNzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAq
IENvcHlyaWdodCAoQykgMjAyMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoTElCR0JNKQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0gZmluYWwgOiBw
dWJsaWMgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wgeworcHVibGljOgorICAgIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMR0JNKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBHcmFwaGljc0NvbnRl
eHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmLCBJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXImJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBwbGF0Zm9ybVdvcmtRdWV1ZUlu
aXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpIGZpbmFsOwor
ICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpETUFCdWZPYmplY3QmJik+JiYpIGZpbmFsOworfTsKKworUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xHQk06OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGNvbm5lY3Rpb24sIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBpZGVudGlmaWVyLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXImJiBzdHJlYW0pCisgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChjb25u
ZWN0aW9uLCBpZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCit7
IH0KKwordm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTTo6cGxhdGZvcm1Xb3JrUXVldWVJ
bml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0
ZXMpCit7CisgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKKyAgICBtX2NvbnRleHQg
PSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEdCTTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRl
cykpOworfQorCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNOjpwcmVwYXJlRm9yRGlz
cGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRNQUJ1Zk9iamVjdCYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwor
ICAgIG1fY29udGV4dC0+cHJlcGFyZUZvckRpc3BsYXkoKTsKKworICAgIFdlYkNvcmU6OkRNQUJ1
Zk9iamVjdCBkbWFidWZPYmplY3QoMCk7CisgICAgYXV0byYgc3dhcGNoYWluID0gbV9jb250ZXh0
LT5zd2FwY2hhaW4oKTsKKyAgICBpZiAoc3dhcGNoYWluLmRpc3BsYXlCTykgeworICAgICAgICB1
aW50cHRyX3QgaGFuZGxlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHN3YXBjaGFpbi5z
d2FwY2hhaW4uZ2V0KCkpICsgc3dhcGNoYWluLmRpc3BsYXlCTy0+aGFuZGxlKCk7CisgICAgICAg
IGRtYWJ1Zk9iamVjdCA9IHN3YXBjaGFpbi5kaXNwbGF5Qk8tPmNyZWF0ZURNQUJ1Zk9iamVjdCho
YW5kbGUpOworICAgICAgICBzd2FwY2hhaW4uZGlzcGxheUJPID0gbnVsbHB0cjsKKyAgICB9CisK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRtYWJ1Zk9iamVjdCkpOworfQorCitSZWY8
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUo
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQs
IElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKK3sKKyAgICBhdXRvIGluc3Rh
bmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTShjb25uZWN0aW9u
LCBpZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpKTsKKyAgICBp
bnN0YW5jZS0+aW5pdGlhbGl6ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICByZXR1cm4gaW5z
dGFuY2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmIFVTRShMSUJHQk0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4
dAppbmRleCA5OGI3NDg1NDMzNmIzNGU4NDg3ZTBhZGIzNmNmNGE0MTNjNmZlNjNjLi4zYjUyZDEw
YWY2OGZhOTA0OGQ5MzE5MzcyMGZlMzA2OGRlZmE4NjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAg
LTI0LDYgKzI0LDggQEAKIEdQVVByb2Nlc3MvZ2xpYi9HUFVQcm9jZXNzR0xpYi5jcHAKIEdQVVBy
b2Nlc3MvZ2xpYi9HUFVQcm9jZXNzTWFpbkdMaWIuY3BwCiAKK0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0uY3BwCisKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCiAKIEdQVVByb2Nlc3MvbWVkaWEvZ3N0cmVhbWVy
L1JlbW90ZU1lZGlhUGxheWVyUHJveHlHU3RyZWFtZXIuY3BwCkBAIC0yODIsNiArMjg0LDggQEAg
VUlQcm9jZXNzL2d0ay9XZWJUZXh0Q2hlY2tlckNsaWVudC5jcHAKIFVJUHJvY2Vzcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCiBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9v
bFNvdXAuY3BwCiAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2dibS9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5R0JNLmNwcAorCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9nc3RyZWFtZXIvVmlk
ZW9MYXllclJlbW90ZUdTdHJlYW1lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQK
aW5kZXggYTAxZTViMjBmMWZiMDVhMWMwNTdjMDdmODI3MzEwYTM3Y2Y3M2UzZi4uYWUyMTgxMDg4
ZjgyMjE1OTRjOWEyYjRmYmU1ZDk5ZjJiNjkzNmQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0y
NCw2ICsyNCw4IEBACiBHUFVQcm9jZXNzL2dsaWIvR1BVUHJvY2Vzc0dMaWIuY3BwCiBHUFVQcm9j
ZXNzL2dsaWIvR1BVUHJvY2Vzc01haW5HTGliLmNwcAogCitHUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNLmNwcAorCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAogCiBHUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9S
ZW1vdGVNZWRpYVBsYXllclByb3h5R1N0cmVhbWVyLmNwcApAQCAtMjI5LDYgKzIzMSw4IEBAIFVJ
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKIAogVUlQcm9jZXNzL3dwZS9XZWJQ
YWdlUHJveHlXUEUuY3BwCiAKK1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2dibS9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5R0JNLmNwcAorCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9nc3RyZWFt
ZXIvVmlkZW9MYXllclJlbW90ZUdTdHJlYW1lci5jcHAKIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9nYm0vUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUdCTS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2dibS9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MjFhYWJmNTg1MzNmNzc0ZmNhY2I4MmIyNzQyZTg4OTc0YTA0ODdhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9nYm0vUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUdCTS5jcHAKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjIgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykg
MjAyMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmIFVTRShMSUJHQk0pCisKKy8vIFRoaXMgaXMgYSBzdGFu
ZGFsb25lIGNoZWNrIG9mIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzIGluIHRoaXMgaW1wbGVtZW50
YXRpb24sCisvLyBhdm9pZGluZyBoYXZpbmcgdG8gcGxhY2UgYW4gb3ZlcndoZWxtaW5nIGFtb3Vu
dCBvZiBidWlsZCBndWFyZHMgb3ZlciB0aGUgcmVzdCBvZiB0aGUgY29kZS4KKyNpZiAhVVNFKE5J
Q09TSUEpIHx8ICFVU0UoVEVYVFVSRV9NQVBQRVJfRE1BQlVGKQorI2Vycm9yIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlHQk0gaW1wbGVtZW50YXRpb24gYWxzbyBkZXBlbmRzIG9uIFVTRV9O
SUNPU0lBIGFuZCBVU0VfVEVYVFVSRV9NQVBQRVJfRE1BQlVGCisjZW5kaWYKKworI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RNQUJ1Zk9iamVjdC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9OaWNvc2lhQ29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGwuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHlETUFCdWYuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5pY29zaWFEaXNwbGF5RGVsZWdhdGUgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRl
LCBwdWJsaWMgTmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudCB7
CitwdWJsaWM6CisgICAgTmljb3NpYURpc3BsYXlEZWxlZ2F0ZShib29sIGlzT3BhcXVlKTsKKyAg
ICB2aXJ0dWFsIH5OaWNvc2lhRGlzcGxheURlbGVnYXRlKCk7CisKKyAgICB2b2lkIHByZXNlbnQo
V2ViQ29yZTo6RE1BQnVmT2JqZWN0JiYgZG1hYnVmT2JqZWN0KQorICAgIHsKKyAgICAgICAgbV9w
ZW5kaW5nID0gV1RGTW92ZShkbWFidWZPYmplY3QpOworICAgIH0KKworcHJpdmF0ZToKKyAgICAv
LyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUKKyAgICBOaWNv
c2lhOjpQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWw7CisKKyAgICAv
LyBOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Q2xpZW50CisgICAgdm9p
ZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkgZmluYWw7CisKKyAgICBib29sIG1faXNPcGFxdWUgeyBm
YWxzZSB9OworICAgIFJlZlB0cjxOaWNvc2lhOjpDb250ZW50TGF5ZXI+IG1fY29udGVudExheWVy
OworICAgIFdlYkNvcmU6OkRNQUJ1Zk9iamVjdCBtX3BlbmRpbmcgeyBXZWJDb3JlOjpETUFCdWZP
YmplY3QoMCkgfTsKK307CisKK05pY29zaWFEaXNwbGF5RGVsZWdhdGU6Ok5pY29zaWFEaXNwbGF5
RGVsZWdhdGUoYm9vbCBpc09wYXF1ZSkKKyAgICA6IG1faXNPcGFxdWUoaXNPcGFxdWUpCit7Cisg
ICAgbV9jb250ZW50TGF5ZXIgPSBOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lh
OjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcywgYWRv
cHRSZWYoKm5ldyBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5RE1BQnVm
KSkpOworfQorCitOaWNvc2lhRGlzcGxheURlbGVnYXRlOjp+Tmljb3NpYURpc3BsYXlEZWxlZ2F0
ZSgpCit7IH0KKworTmljb3NpYTo6UGxhdGZvcm1MYXllciogTmljb3NpYURpc3BsYXlEZWxlZ2F0
ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGVudExheWVyLmdl
dCgpOworfQorCit2b2lkIE5pY29zaWFEaXNwbGF5RGVsZWdhdGU6OnN3YXBCdWZmZXJzSWZOZWVk
ZWQoKQoreworICAgIGF1dG8mIHByb3h5ID0gZG93bmNhc3Q8Tmljb3NpYTo6Q29udGVudExheWVy
VGV4dHVyZU1hcHBlckltcGw+KG1fY29udGVudExheWVyLT5pbXBsKCkpLnByb3h5KCk7CisgICAg
QVNTRVJUKGlzPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHlETUFCdWY+
KHByb3h5KSk7CisKKyAgICBpZiAoISFtX3BlbmRpbmcuaGFuZGxlKSB7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBwcm94eS5sb2NrKCkgfTsKKworICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyR0w6OkZsYWdzIGZsYWdzID0gV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpTaG91bGRGbGlw
VGV4dHVyZTsKKyAgICAgICAgaWYgKCFtX2lzT3BhcXVlKQorICAgICAgICAgICAgZmxhZ3MgfD0g
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZDsKKworICAgICAgICBkb3duY2Fz
dDxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5RE1BQnVmPihwcm94eSku
cHVzaERNQUJ1ZihXVEZNb3ZlKG1fcGVuZGluZyksCisgICAgICAgICAgICBbXShhdXRvJiYgb2Jq
ZWN0KSB7IHJldHVybiBvYmplY3Q7IH0sIGZsYWdzKTsKKyAgICB9CisgICAgbV9wZW5kaW5nID0g
V2ViQ29yZTo6RE1BQnVmT2JqZWN0KDApOworfQorCitjbGFzcyBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5R0JNIGZpbmFsIDogcHVibGljIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkg
eworcHVibGljOgorICAgIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk0oR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
LCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgdmlydHVhbCB+UmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xQcm94eUdCTSgpID0gZGVmYXVsdDsKKworcHJpdmF0ZToKKyAgICAvLyBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTAorICAgIFJlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q29udGVudHNEaXNwbGF5RGVsZWdhdGU+IGxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKSBm
aW5hbDsKKyAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CisKKyAgICBSZWY8Tmlj
b3NpYURpc3BsYXlEZWxlZ2F0ZT4gbV9sYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlOworfTsK
KworUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUdCTShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgcHJvY2Vzc0Nvbm5lY3Rpb24sIGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcywgUmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKKyAgICA6IFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkocHJvY2Vzc0Nvbm5lY3Rpb24sIGF0dHJpYnV0ZXMsIHJlbmRlcmlu
Z0JhY2tlbmQpCisgICAgLCBtX2xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoYWRvcHRSZWYo
Km5ldyBOaWNvc2lhRGlzcGxheURlbGVnYXRlKCFhdHRyaWJ1dGVzLmFscGhhKSkpCit7IH0KKwor
UmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4gUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0
ZSgpCit7CisgICAgcmV0dXJuIG1fbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5jb3B5UmVm
KCk7Cit9CisKK3ZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTTo6cHJlcGFyZUZv
ckRpc3BsYXkoKQoreworICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFdlYkNvcmU6OkRNQUJ1Zk9iamVjdCBkbWFidWZPYmplY3QoMCk7CisgICAgYXV0byBz
ZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQ
cmVwYXJlRm9yRGlzcGxheSgpLCBNZXNzYWdlczo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OlBy
ZXBhcmVGb3JEaXNwbGF5OjpSZXBseShkbWFidWZPYmplY3QpKTsKKyAgICBpZiAoIXNlbmRSZXN1
bHQpIHsKKyAgICAgICAgbWFya0NvbnRleHRMb3N0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX2xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUtPnByZXNlbnQoV1RGTW92ZShk
bWFidWZPYmplY3QpKTsKKyAgICBtYXJrTGF5ZXJDb21wb3NpdGVkKCk7Cit9CisKK1JlZlB0cjxS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
OjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRy
aWJ1dGVzLCBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciByZW5kZXJpbmdCYWNrZW5kKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTShX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLCBhdHRy
aWJ1dGVzLCByZW5kZXJpbmdCYWNrZW5kKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmIFVTRShM
SUJHQk0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457878</attachid>
            <date>2022-04-19 05:28:54 -0700</date>
            <delta_ts>2022-04-19 05:28:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239348-20220419142852.patch</filename>
            <type>text/plain</type>
            <size>18698</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwNWFmNzNlMTVkY2Y4ZGZi
MmZiYjAwODM3MDE0NTZiMmFkMmYzNTIuLmFiYmVkYmFhNTY4ZTU5NjAzMzUwMjYyNWI2NWFhYzM4
ODBlNDFkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjItMDQtMTkgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV1bR1BVUHJv
Y2Vzc10gQWRkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNLCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFByb3h5R0JNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzkzNDgKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4K
KworICAgICAgICBQcm92aWRlIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIGFuZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5CisgICAgICAgIGltcGxlbWVudGF0aW9ucyBndWFyZGVkIGJ5IGFu
ZCBiYXNlZCBvbiBVU0UoTElCR0JNKSBmdW5jdGlvbmFsaXR5LAorICAgICAgICB1c2FibGUgYnkg
dGhlIEdUSyBhbmQgV1BFIHBvcnRzIHdoZW4gam9pbnRseSBlbmFibGVkIHdpdGggQU5HTEUKKyAg
ICAgICAgYmFja2luZyBvZiBXZWJHTCBleGVjdXRpb24uCisKKyAgICAgICAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xHQk0gaXMgdGhlIEdQVVByb2Nlc3Mtc2lkZSBHTCBleGVjdXRvci4KKyAgICAg
ICAgSW50ZXJuYWxseSBpdCBzcGF3bnMgYSBHcmFwaGljc0NvbnRleHRHTEdCTSBpbnN0YW5jZSwg
YW5kIG9uY2UgaW52b2tlZCwKKyAgICAgICAgdGhlIFByZXBhcmVGb3JEaXNwbGF5KCkgSVBDIG1l
c3NhZ2UgcmV0dXJucyB0aGUgcmVwbHkgd2l0aCB0aGUgRE1BQnVmCisgICAgICAgIG9iamVjdCB0
aGF0IHdhcyB1c2VkIGFzIHRoZSByZW5kZXJpbmcgYmFja2luZyBpbiB0aGF0IGNvbnRleHQgaW5z
dGFuY2UuCisKKyAgICAgICAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTSBpcyB0aGUg
V2ViUHJvY2Vzcy1zaWRlIGNvdW50ZXJwYXJ0LgorICAgICAgICBCZXNpZGVzIHJlbGF5aW5nIHRo
ZSBwcmVwYXJlLWZvci1kaXNwbGF5IHJlcXVlc3QsIGl0IGFsc28gbWFuYWdlcyB0aGUKKyAgICAg
ICAgR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlIG9iamVjdCB3aGljaCBoYW5k
bGVzIHByZXNlbnRpbmcKKyAgICAgICAgRE1BQnVmIG9iamVjdHMgYXJyaXZpbmcgZnJvbSB0aGUg
R1BVUHJvY2Vzcy4gVGhhdCBkZWxlZ2F0ZSBpcyBvZiB0aGUKKyAgICAgICAgTmljb3NpYURpc3Bs
YXlEZWxlZ2F0ZSB0eXBlLCBhIHNsaW0gY2xhc3MgYWxzbyBoYW5kbGluZyBhCisgICAgICAgIE5p
Y29zaWE6OkNvbnRlbnRMYXllciBvYmplY3QgdGhyb3VnaCB3aGljaCBhbnkgYXJyaXZpbmcgRE1B
QnVmIGlzCisgICAgICAgIHByZXNlbnRlZCBpbiB0aGUgVGV4dHVyZU1hcHBlciB0cmVlLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
bWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTEdCTS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTEdCTTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFs
aXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk06OnByZXBh
cmVGb3JEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OmNyZWF0ZSk6CisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQ
RS50eHQ6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvZ2JtL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlHQk0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Tmljb3Np
YURpc3BsYXlEZWxlZ2F0ZTo6Tmljb3NpYURpc3BsYXlEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJL
aXQ6Ok5pY29zaWFEaXNwbGF5RGVsZWdhdGU6On5OaWNvc2lhRGlzcGxheURlbGVnYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6Tmljb3NpYURpc3BsYXlEZWxlZ2F0ZTo6cGxhdGZvcm1MYXllciBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5pY29zaWFEaXNwbGF5RGVsZWdhdGU6OnN3YXBCdWZmZXJz
SWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
R0JNOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTTo6bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxl
Z2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk06
OnByZXBhcmVGb3JEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6Y3JlYXRlKToKKwogMjAyMi0wNC0xOCAgUGVyIEFybmUgVm9sbGFuICA8cHZv
bGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvY2sgc3lzdGVtIGNhbGxzIGluIHRoZSBOZXR3
b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IGYwMjQyYWY3YTQ1MDBh
NTA0MjZjM2IyMjU1NDE0MjM2NjgzNmM3MzkuLjY0ODcyMzhiZTExMDI2OTMwYWE0MzdiNThlMWYz
MDgwZDgyOGNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtNTMsNyArNTMsNyBA
QCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUmIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
U3RyZWFtV29ya1F1ZXVlKCkKICAgICByZXR1cm4gaW5zdGFuY2UuZ2V0KCk7CiB9CiAKLSNpZiAh
UExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXSU4pCisjaWYgIVBMQVRGT1JNKENPQ09BKSAm
JiAhUExBVEZPUk0oV0lOKSAmJiAhVVNFKExJQkdCTSkKIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBhdHRyaWJ1dGVzLCBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3ND
b250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNr
ZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6cmVzaGFwZShpbnQzMl90IHdpZHRoLCBpbnQzMl90IGhlaWdodCkKICAgICAgICAg
Zm9yY2VDb250ZXh0TG9zdCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZP
Uk0oV0lOKQorI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdJTikgJiYgIVVTRShM
SUJHQk0pCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwcmVwYXJlRm9yRGlzcGxheShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXNz
ZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggZmZm
NWU3MWMzNWIzMjEzODc3YTk2NTY5OTQxYTZmNWI4ZDlmMzcxZC4uZGQxZGE3OWZlMDAzMGFkZmQ4
MjgyYjg2MTJkYjVlZDU4YTQ2Y2Y3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKQEAgLTQxLDYg
KzQxLDggQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5oPgorI2VsaWYgVVNFKExJQkdCTSkKKyNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dEdMR0JNLmg+CiAjZWxzZQogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuaD4KICNlbmRpZgpAQCAtMTExLDYgKzExMyw4
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpID0gMDsKICNlbGlmIFVT
RShHUkFQSElDU19MQVlFUl9XQykKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRpc3BsYXko
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdDQ29udGVudEJ1ZmZlcklkZW50
aWZpZXI+KT4mJikgPSAwOworI2VsaWYgVVNFKExJQkdCTSkKKyAgICB2aXJ0dWFsIHZvaWQgcHJl
cGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpETUFCdWZPYmpl
Y3QmJik+JiYpID0gMDsKICNlbHNlCiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCkBAIC0xNDAsNiArMTQ0LDggQEAgcHJvdGVj
dGVkOgogICAgIFJlZlB0cjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29u
bmVjdGlvbjsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB1c2luZyBHQ0dMQ29udGV4dCA9IFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E7CisjZWxpZiBVU0UoTElCR0JNKQorICAgIHVz
aW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xHQk07CiAjZWxzZQog
ICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJl
TWFwcGVyQU5HTEU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5tZXNzYWdl
cy5pbgppbmRleCA5NDhjYjM2MzAxNDhjODc4NzdkYjM0NWQ2MzEwNmFhNDU3N2ZkNzE4Li4yOWZl
MjE0MWZlZGM4ZTAzMWIxMGQyMDEzZjZmN2EwOGRkZWQxN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBo
aWNzQ29udGV4dEdMLm1lc3NhZ2VzLmluCkBAIC0zMiw3ICszMiwxMCBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTCBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAjaWYgVVNFKEdS
QVBISUNTX0xBWUVSX1dDKQogICAgIHZvaWQgUHJlcGFyZUZvckRpc3BsYXkoKSAtPiAoc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OldDQ29udGVudEJ1ZmZlcklkZW50aWZpZXI+IGNvbnRlbnRCdWZmZXIp
IFN5bmNocm9ub3VzCiAjZW5kaWYKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoR1JBUEhJ
Q1NfTEFZRVJfV0MpCisjaWYgVVNFKExJQkdCTSkKKyAgICB2b2lkIFByZXBhcmVGb3JEaXNwbGF5
KCkgLT4gKFdlYkNvcmU6OkRNQUJ1Zk9iamVjdCBkbWFidWZPYmplY3QpIFN5bmNocm9ub3VzIE5v
dFN0cmVhbUVuY29kYWJsZVJlcGx5CisjZW5kaWYKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFV
U0UoR1JBUEhJQ1NfTEFZRVJfV0MpICYmICFVU0UoTElCR0JNKQogICAgIHZvaWQgUHJlcGFyZUZv
ckRpc3BsYXkoKSAtPiAoKSBTeW5jaHJvbm91cwogI2VuZGlmCiAgICAgdm9pZCBFbnN1cmVFeHRl
bnNpb25FbmFibGVkKFN0cmluZyBleHRlbnNpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0uY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JN
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYWMxZjczNjI2ZTlmZjczNjE4ZGQ2OWViYmU2MmI3MjlmN2JkNmE5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNLmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
ICYmIEVOQUJMRShXRUJHTCkgJiYgVVNFKExJQkdCTSkKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNIGZpbmFsIDogcHVibGljIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTEdC
TShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVy
LCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYp
OworCitwcml2YXRlOgorICAgIHZvaWQgcGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKSBmaW5hbDsKKyAgICB2b2lkIHByZXBh
cmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE1BQnVmT2JqZWN0
JiYpPiYmKSBmaW5hbDsKK307CisKK1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMR0JNOjpSZW1vdGVH
cmFwaGljc0NvbnRleHRHTEdCTShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9u
LCBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYg
c3RyZWFtKQorICAgIDogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0woY29ubmVjdGlvbiwgaWRlbnRp
ZmllciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKQoreyB9CisKK3ZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xHQk06OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQoreworICAgIGFz
c2VydElzQ3VycmVudCh3b3JrUXVldWUoKSk7CisgICAgbV9jb250ZXh0ID0gV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xHQk06OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKK30KKwordm9p
ZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTEdCTTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpETUFCdWZPYmplY3QmJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKKyAgICBtX2NvbnRleHQt
PnByZXBhcmVGb3JEaXNwbGF5KCk7CisKKyAgICBXZWJDb3JlOjpETUFCdWZPYmplY3QgZG1hYnVm
T2JqZWN0KDApOworICAgIGF1dG8mIHN3YXBjaGFpbiA9IG1fY29udGV4dC0+c3dhcGNoYWluKCk7
CisgICAgaWYgKHN3YXBjaGFpbi5kaXNwbGF5Qk8pIHsKKyAgICAgICAgdWludHB0cl90IGhhbmRs
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihzd2FwY2hhaW4uc3dhcGNoYWluLmdldCgp
KSArIHN3YXBjaGFpbi5kaXNwbGF5Qk8tPmhhbmRsZSgpOworICAgICAgICBkbWFidWZPYmplY3Qg
PSBzd2FwY2hhaW4uZGlzcGxheUJPLT5jcmVhdGVETUFCdWZPYmplY3QoaGFuZGxlKTsKKyAgICAg
ICAgc3dhcGNoYWluLmRpc3BsYXlCTyA9IG51bGxwdHI7CisgICAgfQorCisgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShkbWFidWZPYmplY3QpKTsKK30KKworUmVmPFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyYmIGF0dHJpYnV0ZXMsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNv
bm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCit7CisgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0UmVm
KCpuZXcgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xHQk0oY29ubmVjdGlvbiwgaWRlbnRpZmllciwg
cmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKSk7CisgICAgaW5zdGFuY2UtPmluaXRp
YWxpemUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKFdFQkdMKSAmJiBVU0UoTElCR0JNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggOThiNzQ4
NTQzMzZiMzRlODQ4N2UwYWRiMzZjZjRhNDEzYzZmZTYzYy4uM2I1MmQxMGFmNjhmYTkwNDhkOTMx
OTM3MjBmZTMwNjhkZWZhODYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RL
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0yNCw2ICsyNCw4IEBA
CiBHUFVQcm9jZXNzL2dsaWIvR1BVUHJvY2Vzc0dMaWIuY3BwCiBHUFVQcm9jZXNzL2dsaWIvR1BV
UHJvY2Vzc01haW5HTGliLmNwcAogCitHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMR0JNLmNwcAorCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmNwcAogCiBHUFVQcm9jZXNzL21lZGlhL2dzdHJlYW1lci9SZW1vdGVNZWRpYVBs
YXllclByb3h5R1N0cmVhbWVyLmNwcApAQCAtMjgyLDYgKzI4NCw4IEBAIFVJUHJvY2Vzcy9ndGsv
V2ViVGV4dENoZWNrZXJDbGllbnQuY3BwCiBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2Vy
UHJveHlTb3VwLmNwcAogVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAogCitX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9nYm0vUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdC
TS5jcHAKKwogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvZ3N0cmVhbWVyL1ZpZGVvTGF5ZXJSZW1vdGVH
U3RyZWFtZXIuY3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RP
TU9iamVjdENhY2hlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IGEwMWU1YjIw
ZjFmYjA1YTFjMDU3YzA3ZjgyNzMxMGEzN2NmNzNlM2YuLmFlMjE4MTA4OGY4MjIxNTk0YzlhMmI0
ZmJlNWQ5OWYyYjY5MzZkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMjQsNiArMjQsOCBAQAog
R1BVUHJvY2Vzcy9nbGliL0dQVVByb2Nlc3NHTGliLmNwcAogR1BVUHJvY2Vzcy9nbGliL0dQVVBy
b2Nlc3NNYWluR0xpYi5jcHAKIAorR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTEdCTS5jcHAKKwogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5jcHAKIAogR1BVUHJvY2Vzcy9tZWRpYS9nc3RyZWFtZXIvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUdTdHJlYW1lci5jcHAKQEAgLTIyOSw2ICsyMzEsOCBAQCBVSVByb2Nlc3Mvc291cC9X
ZWJQcm9jZXNzUG9vbFNvdXAuY3BwCiAKIFVJUHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BFLmNw
cAogCitXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9nYm0vUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUdCTS5jcHAKKwogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvZ3N0cmVhbWVyL1ZpZGVvTGF5ZXJS
ZW1vdGVHU3RyZWFtZXIuY3BwCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
RE9NL0RPTU9iamVjdENhY2hlLmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvZ2JtL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlHQk0uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9nYm0vUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUdCTS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTdiMWEwMTY3ZjUy
NGYzZDlkYmQwMTk5ZjdjMzYxYTBhMmE3OWRhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvZ2JtL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
UHJveHlHQk0uY3BwCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIy
IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KFdFQkdMKSAmJiBVU0UoTElCR0JNKQorCisvLyBUaGlzIGlzIGEgc3RhbmRhbG9uZSBjaGVjayBv
ZiBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cyBpbiB0aGlzIGltcGxlbWVudGF0aW9uLAorLy8gYXZv
aWRpbmcgaGF2aW5nIHRvIHBsYWNlIGFuIG92ZXJ3aGVsbWluZyBhbW91bnQgb2YgYnVpbGQgZ3Vh
cmRzIG92ZXIgdGhlIHJlc3Qgb2YgdGhlIGNvZGUuCisjaWYgIVVTRShOSUNPU0lBKSB8fCAhVVNF
KFRFWFRVUkVfTUFQUEVSX0RNQUJVRikKKyNlcnJvciBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5R0JNIGltcGxlbWVudGF0aW9uIGFsc28gZGVwZW5kcyBvbiBVU0VfTklDT1NJQSBhbmQgVVNF
X1RFWFRVUkVfTUFQUEVSX0RNQUJVRgorI2VuZGlmCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9ETUFCdWZPYmplY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Tmljb3NpYUNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5RE1BQnVmLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBOaWNvc2lhRGlzcGxheURlbGVnYXRlIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSwgcHVibGljIE5pY29z
aWE6OkNvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQgeworcHVibGljOgorICAg
IGV4cGxpY2l0IE5pY29zaWFEaXNwbGF5RGVsZWdhdGUoYm9vbCBpc09wYXF1ZSk7CisgICAgdmly
dHVhbCB+Tmljb3NpYURpc3BsYXlEZWxlZ2F0ZSgpOworCisgICAgdm9pZCBwcmVzZW50KFdlYkNv
cmU6OkRNQUJ1Zk9iamVjdCYmIGRtYWJ1Zk9iamVjdCkKKyAgICB7CisgICAgICAgIG1fcGVuZGlu
ZyA9IFdURk1vdmUoZG1hYnVmT2JqZWN0KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlCisgICAgTmljb3NpYTo6
UGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IGZpbmFsOworCisgICAgLy8gTmlj
b3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OkNsaWVudAorICAgIHZvaWQgc3dh
cEJ1ZmZlcnNJZk5lZWRlZCgpIGZpbmFsOworCisgICAgYm9vbCBtX2lzT3BhcXVlIHsgZmFsc2Ug
fTsKKyAgICBSZWZQdHI8Tmljb3NpYTo6Q29udGVudExheWVyPiBtX2NvbnRlbnRMYXllcjsKKyAg
ICBXZWJDb3JlOjpETUFCdWZPYmplY3QgbV9wZW5kaW5nIHsgV2ViQ29yZTo6RE1BQnVmT2JqZWN0
KDApIH07Cit9OworCitOaWNvc2lhRGlzcGxheURlbGVnYXRlOjpOaWNvc2lhRGlzcGxheURlbGVn
YXRlKGJvb2wgaXNPcGFxdWUpCisgICAgOiBtX2lzT3BhcXVlKGlzT3BhcXVlKQoreworICAgIG1f
Y29udGVudExheWVyID0gTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmljb3NpYTo6Q29u
dGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMsIGFkb3B0UmVm
KCpuZXcgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eURNQUJ1ZikpKTsK
K30KKworTmljb3NpYURpc3BsYXlEZWxlZ2F0ZTo6fk5pY29zaWFEaXNwbGF5RGVsZWdhdGUoKQor
eyB9CisKK05pY29zaWE6OlBsYXRmb3JtTGF5ZXIqIE5pY29zaWFEaXNwbGF5RGVsZWdhdGU6OnBs
YXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRlbnRMYXllci5nZXQoKTsK
K30KKwordm9pZCBOaWNvc2lhRGlzcGxheURlbGVnYXRlOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkK
K3sKKyAgICBhdXRvJiBwcm94eSA9IGRvd25jYXN0PE5pY29zaWE6OkNvbnRlbnRMYXllclRleHR1
cmVNYXBwZXJJbXBsPihtX2NvbnRlbnRMYXllci0+aW1wbCgpKS5wcm94eSgpOworICAgIEFTU0VS
VChpczxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5RE1BQnVmPihwcm94
eSkpOworCisgICAgaWYgKCEhbV9wZW5kaW5nLmhhbmRsZSkgeworICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgcHJveHkubG9jaygpIH07CisKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdM
OjpGbGFncyBmbGFncyA9IFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6U2hvdWxkRmxpcFRleHR1
cmU7CisgICAgICAgIGlmICghbV9pc09wYXF1ZSkKKyAgICAgICAgICAgIGZsYWdzIHw9IFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQ7CisKKyAgICAgICAgZG93bmNhc3Q8V2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eURNQUJ1Zj4ocHJveHkpLnB1c2hE
TUFCdWYoV1RGTW92ZShtX3BlbmRpbmcpLAorICAgICAgICAgICAgW10oYXV0byYmIG9iamVjdCkg
eyByZXR1cm4gb2JqZWN0OyB9LCBmbGFncyk7CisgICAgfQorICAgIG1fcGVuZGluZyA9IFdlYkNv
cmU6OkRNQUJ1Zk9iamVjdCgwKTsKK30KKworY2xhc3MgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUdCTSBmaW5hbCA6IHB1YmxpYyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5IHsKK3B1
YmxpYzoKKyAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5R0JNKEdQVVByb2Nlc3NDb25u
ZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiwgUmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgflJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlHQk0oKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0wKKyAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRl
bnRzRGlzcGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWw7
CisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOworCisgICAgUmVmPE5pY29zaWFE
aXNwbGF5RGVsZWdhdGU+IG1fbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZTsKK307CisKK1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk06OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlHQk0oR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIHByb2Nlc3NDb25uZWN0aW9uLCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIHJlbmRlcmluZ0JhY2tlbmQpCisgICAgOiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5KHByb2Nlc3NDb25uZWN0aW9uLCBhdHRyaWJ1dGVzLCByZW5kZXJpbmdCYWNr
ZW5kKQorICAgICwgbV9sYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKGFkb3B0UmVmKCpuZXcg
Tmljb3NpYURpc3BsYXlEZWxlZ2F0ZSghYXR0cmlidXRlcy5hbHBoYSkpKQoreyB9CisKK1JlZlB0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlHQk06OmxheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUoKQor
eworICAgIHJldHVybiBtX2xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuY29weVJlZigpOwor
fQorCit2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk06OnByZXBhcmVGb3JEaXNw
bGF5KCkKK3sKKyAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBXZWJDb3JlOjpETUFCdWZPYmplY3QgZG1hYnVmT2JqZWN0KDApOworICAgIGF1dG8gc2VuZFJl
c3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6UHJlcGFy
ZUZvckRpc3BsYXkoKSwgTWVzc2FnZXM6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpQcmVwYXJl
Rm9yRGlzcGxheTo6UmVwbHkoZG1hYnVmT2JqZWN0KSk7CisgICAgaWYgKCFzZW5kUmVzdWx0KSB7
CisgICAgICAgIG1hcmtDb250ZXh0TG9zdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9sYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLT5wcmVzZW50KFdURk1vdmUoZG1hYnVm
T2JqZWN0KSk7CisgICAgbWFya0xheWVyQ29tcG9zaXRlZCgpOworfQorCitSZWZQdHI8UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6Y3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRl
cywgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgcmVuZGVyaW5nQmFja2VuZCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlHQk0oV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgYXR0cmlidXRl
cywgcmVuZGVyaW5nQmFja2VuZCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoTElCR0JN
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>