<?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>196122</bug_id>
          
          <creation_ts>2019-03-21 17:54:43 -0700</creation_ts>
          <short_desc>[JSC] Shrink sizeof(FunctionExecutable) by 16bytes</short_desc>
          <delta_ts>2019-03-22 00:39: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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1520074</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-21 17:54:43 -0700</bug_when>
    <thetext>[JSC] Shrink sizeof(FunctionExecutable) by 16bytes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520077</commentid>
    <comment_count>1</comment_count>
      <attachid>365659</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-21 17:59:39 -0700</bug_when>
    <thetext>Created attachment 365659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520102</commentid>
    <comment_count>2</comment_count>
      <attachid>365659</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-03-21 19:03:21 -0700</bug_when>
    <thetext>Comment on attachment 365659
Patch

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

&gt; Source/JavaScriptCore/runtime/GlobalExecutable.h:34
&gt; +    friend class LLIntOffsetsExtractor;

why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520120</commentid>
    <comment_count>3</comment_count>
      <attachid>365659</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-21 19:26:36 -0700</bug_when>
    <thetext>Comment on attachment 365659
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/GlobalExecutable.h:34
&gt;&gt; +    friend class LLIntOffsetsExtractor;
&gt; 
&gt; why?

It should be removed. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520121</commentid>
    <comment_count>4</comment_count>
      <attachid>365670</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-21 19:26:59 -0700</bug_when>
    <thetext>Created attachment 365670
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520194</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-22 00:14:50 -0700</bug_when>
    <thetext>Committed r243365: &lt;https://trac.webkit.org/changeset/243365&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520195</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-22 00:16:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/49143440&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1520211</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-22 00:39:50 -0700</bug_when>
    <thetext>Committed r243367: &lt;https://trac.webkit.org/changeset/243367&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365659</attachid>
            <date>2019-03-21 17:59:39 -0700</date>
            <delta_ts>2019-03-21 19:03:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196122-20190321175938.patch</filename>
            <type>text/plain</type>
            <size>37615</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NjczODdiMjA1OGI4OWJkNDM0NjZiNGNjYzQ5ZjBkMjZiY2EwZDk2Li44NmRhNGY0NTQyOGFkZmMw
ZjBlMWIxODA5YTVjZmUwYzBkN2JiMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxOS0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFNocmluayBzaXplb2YoRnVuY3Rpb25FeGVjdXRhYmxlKSBieSAx
NmJ5dGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTYxMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIHJlZHVjZXMgc2l6ZW9mKEZ1bmN0aW9uRXhlY3V0YWJsZSkgYnkgMTYgYnl0ZXMu
CisKKyAgICAgICAgMS4gU2NyaXB0RXhlY3V0YWJsZTo6bV9udW1QYXJhbWV0ZXJzRm9yQ2FsbCBh
bmQgU2NyaXB0RXhlY3V0YWJsZTo6bV9udW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0IGFyZSBub3Qg
dXNlZCBpbiBhIG1lYW5pbmdmdWwgd2F5LiBSZW1vdmVkIHRoZW0uCisgICAgICAgIDIuIFNjcmlw
dEV4ZWN1dGFibGU6Om1fbGFzdExpbmUgYW5kIFNjcmlwdEV4ZWN1dGFibGU6Om1fZW5kQ29sdW1u
IGNhbiBiZSBjYWxjdWxhdGVkIGZyb20gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuIFNvIEZ1
bmN0aW9uRXhlY3V0YWJsZSBkb2VzIG5vdCBuZWVkIHRvIGhvbGQgaXQuCisgICAgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBHbG9iYWxFeGVjdXRhYmxlLCB3aGljaCBhcmUgbm9uLWZ1bmN0aW9uIFNj
cmlwdEV4ZWN1dGFibGVzLCBhbmQgbW92ZSBtX2xhc3RMaW5lIGFuZCBtX2VuZENvbHVtbiB0byB0
aGlzIGNsYXNzLgorICAgICAgICAzLiBGdW5jdGlvbkV4ZWN1dGFibGUgc3RpbGwgbmVlZHMgdG8g
aGF2ZSB0aGUgZmVhdHVyZSBvdmVycmlkaW5nIG1fbGFzdExpbmUgYW5kIG1fZW5kQ29sdW1uLiBX
ZSBtb3ZlIG92ZXJyaWRkZW4gZGF0YSBpbiBGdW5jdGlvbkV4ZWN1dGFibGU6OlJhcmVEYXRhLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6
OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpsaW5rKToKKyAgICAgICAgKiBydW50aW1lL0V2
YWxFeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RXZhbEV4ZWN1dGFibGU6OkV2YWxFeGVj
dXRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL0V2YWxFeGVjdXRhYmxlLmg6CisgICAgICAgICog
cnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4
ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZTo6ZW5zdXJlUmFyZURhdGFTbG93KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlOjpvdmVycmlkZUluZm8pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25FeGVjdXRh
YmxlLmg6CisgICAgICAgICogcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmNwcDogQ29waWVkIGZy
b20gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmguCisgICAg
ICAgICogcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5oLgorICAgICAgICAoSlNDOjpHbG9i
YWxFeGVjdXRhYmxlOjpsYXN0TGluZSBjb25zdCk6CisgICAgICAgIChKU0M6Okdsb2JhbEV4ZWN1
dGFibGU6OmVuZENvbHVtbiBjb25zdCk6CisgICAgICAgIChKU0M6Okdsb2JhbEV4ZWN1dGFibGU6
OnJlY29yZFBhcnNlKToKKyAgICAgICAgKEpTQzo6R2xvYmFsRXhlY3V0YWJsZTo6R2xvYmFsRXhl
Y3V0YWJsZSk6CisgICAgICAgICogcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHA6
CisgICAgICAgIChKU0M6Ok1vZHVsZVByb2dyYW1FeGVjdXRhYmxlOjpNb2R1bGVQcm9ncmFtRXhl
Y3V0YWJsZSk6CisgICAgICAgICogcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvZ3JhbUV4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm9ncmFtRXhlY3V0YWJsZTo6UHJvZ3JhbUV4ZWN1dGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUv
UHJvZ3JhbUV4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUu
Y3BwOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpjbGVhckNvZGUpOgorICAgICAg
ICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZSk6CisgICAgICAgIChKU0M6OlNj
cmlwdEV4ZWN1dGFibGU6Om5ld0NvZGVCbG9ja0Zvcik6CisgICAgICAgIChKU0M6OlNjcmlwdEV4
ZWN1dGFibGU6OnR5cGVQcm9maWxpbmdFbmRPZmZzZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpT
Y3JpcHRFeGVjdXRhYmxlOjpyZWNvcmRQYXJzZSk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1
dGFibGU6Omxhc3RMaW5lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6
ZW5kQ29sdW1uIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaDoK
KyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aGFzSklUQ29kZUZvckNhbGwgY29uc3Qp
OgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpoYXNKSVRDb2RlRm9yQ29uc3RydWN0
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6cmVjb3JkUGFyc2UpOgor
ICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpsYXN0TGluZSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OmVuZENvbHVtbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaDoKKwogMjAxOS0wMy0yMSAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIERvIG5v
dCBjcmVhdGUgSklUIHJlbGF0ZWQgZGF0YSB1bmRlciBub24tSklUIG1vZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZmEwYzNiN2VkODBhZWY1ODhiM2VlODczOGY1NjY3
M2VjOTA5ZjRhLi43OTc3MjE3ZjQ3NzRjMWRkZWQ5NjBjZGE5OTM4M2E5YTQwYWJlZjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04MDMsNiArODAzLDcgQEAgc2V0KEph
dmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBydW50aW1lL0dlbmVy
aWNUeXBlZEFycmF5Vmlldy5oCiAgICAgcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJbmxp
bmVzLmgKICAgICBydW50aW1lL0dldFB1dEluZm8uaAorICAgIHJ1bnRpbWUvR2xvYmFsRXhlY3V0
YWJsZS5oCiAgICAgcnVudGltZS9IYXNoTWFwSW1wbC5oCiAgICAgcnVudGltZS9JZGVudGlmaWVy
LmgKICAgICBydW50aW1lL0lkZW50aWZpZXJJbmxpbmVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYjFmYmYxNjRkNmFhMjJiYzgzMjdjNzY3MjI2MjNhOTg3YWQ3ZTMyMy4uZGIy
NWI3MjM2NDhkYzg1YzgxZjNkN2VlYjY4NzU1MjE2ZTQxOTk2NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE3NjYsNiArMTc2Niw3IEBACiAJCUUzNTA3MDhBMURDNDlCQkYwMDg5
QkNENiAvKiBET01KSVRTaWduYXR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzNTA3MDg5MURDNDlCQjYwMDg5QkNENiAvKiBET01KSVRTaWduYXR1
cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MzU0NjIyQjFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NDYyMkExQjYwNjVEMTAwNTQ1
Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzU1NUI4QTFEQUUwM0E1MDBGMzY5MjEgLyogRE9NSklUQ2Fs
bERPTUdldHRlclNuaXBwZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNTU1Qjg5MURBRTAzQTIwMEYzNjkyMSAvKiBET01KSVRDYWxsRE9NR2V0dGVy
U25pcHBldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCUUzNTVEMzhGMjI0NDY4NzcwMDhGMUFENiAvKiBHbG9iYWxFeGVjdXRhYmxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU1RDM4RDIyNDQ2ODZC
MDA4RjFBRDYgLyogR2xvYmFsRXhlY3V0YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNUEwQjlEMjIwQUQ4N0EwMEFDNDQ3NCAvKiBFeGVj
dXRhYmxlQmFzZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNUEwQjlDMjIwQUQ4N0EwMEFDNDQ3NCAvKiBFeGVjdXRhYmxlQmFzZUlubGlu
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MzVDQTE1NDFEQkMzQTVDMDBGODM1MTYgLyogRE9NSklUSGVhcFJhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVDQTE1MjFEQkMzQTU2MDBGODM1
MTYgLyogRE9NSklUSGVhcFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTM1Q0ExNTYxREJDM0E1RjAwRjgzNTE2IC8qIERPTUpJVEFic3Ry
YWN0SGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM1Q0ExNTAxREJDM0E1NjAwRjgzNTE2IC8qIERPTUpJVEFic3RyYWN0SGVhcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00NzE2LDYgKzQ3MTcs
OCBAQAogCQlFMzUwNzA4OTFEQzQ5QkI2MDA4OUJDRDYgLyogRE9NSklUU2lnbmF0dXJlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVFNpZ25hdHVyZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU0NjIyQTFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3Ry
dWN0QWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zdHJ1Y3RB
YmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTU1Qjg5MURBRTAzQTIw
MEYzNjkyMSAvKiBET01KSVRDYWxsRE9NR2V0dGVyU25pcHBldC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01KSVRDYWxsRE9NR2V0dGVyU25pcHBldC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzU1RDM4RDIyNDQ2ODZCMDA4RjFBRDYgLyogR2xvYmFsRXhl
Y3V0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbG9iYWxFeGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzNTVEMzhFMjI0NDY4NkMwMDhGMUFENiAvKiBHbG9iYWxFeGVj
dXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdsb2JhbEV4ZWN1dGFibGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVBMEI5QzIyMEFEODdBMDBBQzQ0NzQgLyogRXhl
Y3V0YWJsZUJhc2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4
ZWN1dGFibGVCYXNlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVD
QTE0RjFEQkMzQTU2MDBGODM1MTYgLyogRE9NSklUQWJzdHJhY3RIZWFwLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJVEFic3RyYWN0SGVhcC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUNBMTUwMURCQzNBNTYwMEY4MzUxNiAvKiBET01K
SVRBYnN0cmFjdEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklU
QWJzdHJhY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODA2LDYgKzY4
MDksOCBAQAogCQkJCTc5NjQ2NTY4MUI5NTJGRjAwMDMwNTlFRSAvKiBHZXRQdXRJbmZvLmggKi8s
CiAJCQkJQkMwMkU5QjgwRTE4NDU0NTAwMEY5Mjk3IC8qIEdldHRlclNldHRlci5jcHAgKi8sCiAJ
CQkJQkMzMzdCREUwRTFBRjBCODAwNzY5MThBIC8qIEdldHRlclNldHRlci5oICovLAorCQkJCUUz
NTVEMzhFMjI0NDY4NkMwMDhGMUFENiAvKiBHbG9iYWxFeGVjdXRhYmxlLmNwcCAqLywKKwkJCQlF
MzU1RDM4RDIyNDQ2ODZCMDA4RjFBRDYgLyogR2xvYmFsRXhlY3V0YWJsZS5oICovLAogCQkJCTc5
QTA5MDdEMUQ3Njg0NjUwMDhCODg5QiAvKiBIYXNoTWFwSW1wbC5jcHAgKi8sCiAJCQkJNzlBMDkw
N0UxRDc2ODQ2NTAwOEI4ODlCIC8qIEhhc2hNYXBJbXBsLmggKi8sCiAJCQkJNzlERkNCREExRDg4
QzU5NjAwNTI3RDAzIC8qIEhhc093blByb3BlcnR5Q2FjaGUuaCAqLywKQEAgLTkxMjYsNiArOTEz
MSw3IEBACiAJCQkJNTM0RTAzNTgxRTUzQkYyRjAwMjEzRjY0IC8qIEdldHRlclNldHRlckFjY2Vz
c0Nhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUMzQzVCMUYzM0E0ODkwMEY1OUI2QyAvKiBH
aWdhY2FnZUFsaWduZWRNZW1vcnlBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QUQ5
MTBFMURDQTkyOTQwMDE0RjlGRSAvKiBHbG9iYWxDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzNTVEMzhGMjI0NDY4NzcwMDhGMUFENiAvKiBHbG9iYWxFeGVjdXRhYmxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjI0RTU0NDE3RUE5RjU5MDBBQkIyMTcgLyogR1BSSW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTQyRTMxMzQxMzRGRjBBNjAwQUZBREI1IC8qIEhhbmRsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzI4MzE5MDAxNkZFNEI3RDAwMTU3QkZEIC8qIEhhbmRsZUJsb2NrLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA4YjNkZDVlOTk0
ZGE1YTRiY2JmNjdiY2ExOTQzNTg2MDY1Njg4NDk0Li5mMDVhM2ZlOWUwMzNkMmUxYTQ5NGM0NjE5
NGFjMTI0OTlkMzMzMTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CkBAIC03NjgsNiAr
NzY4LDcgQEAgcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKIHJ1bnRpbWUv
R2VuZXJhdG9yUHJvdG90eXBlLmNwcAogcnVudGltZS9HZXRQdXRJbmZvLmNwcAogcnVudGltZS9H
ZXR0ZXJTZXR0ZXIuY3BwCitydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUuY3BwCiBydW50aW1lL0hh
c2hNYXBJbXBsLmNwcAogcnVudGltZS9JZGVudGlmaWVyLmNwcAogcnVudGltZS9JbmRleGluZ1R5
cGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAppbmRleCA5NjI5YzQ2YTNmNWIzN2U5ZjYy
MWJmOWVhMjFjN2ViYjg5YmI5NDQwLi41OGFlNmM1NzMzNzNlNDE1Njc4MmVjMmQyYThkYmE5ZmQ2
NDdmYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKQEAgLTE1OCwzMSArMTU4LDE3IEBA
IFNvdXJjZUNvZGUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmxpbmtlZFNvdXJjZUNvZGUo
Y29uc3QgU291cmNlQ29kZSYgcGFzc2VkCiBGdW5jdGlvbkV4ZWN1dGFibGUqIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlOjpsaW5rKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgcGFzc2VkUGFy
ZW50U291cmNlLCBPcHRpb25hbDxpbnQ+IG92ZXJyaWRlTGluZU51bWJlciwgSW50cmluc2ljIGlu
dHJpbnNpYykKIHsKICAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IGxpbmtlZFNvdXJjZUNvZGUocGFz
c2VkUGFyZW50U291cmNlKTsKLSAgICB1bnNpZ25lZCBmaXJzdExpbmUgPSBzb3VyY2UuZmlyc3RM
aW5lKCkub25lQmFzZWRJbnQoKTsKLSAgICB1bnNpZ25lZCBsaW5lQ291bnQgPSBtX2xpbmVDb3Vu
dDsKLSAgICB1bnNpZ25lZCBlbmRDb2x1bW4gPSBsaW5rZWRFbmRDb2x1bW4oc291cmNlLnN0YXJ0
Q29sdW1uKCkub25lQmFzZWRJbnQoKSk7CiAgICAgRnVuY3Rpb25PdmVycmlkZXM6Ok92ZXJyaWRl
SW5mbyBvdmVycmlkZUluZm87CiAgICAgYm9vbCBoYXNGdW5jdGlvbk92ZXJyaWRlID0gZmFsc2U7
Ci0gICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OmZ1bmN0aW9uT3ZlcnJpZGVzKCkpKSB7CisgICAg
aWYgKFVOTElLRUxZKE9wdGlvbnM6OmZ1bmN0aW9uT3ZlcnJpZGVzKCkpKQogICAgICAgICBoYXNG
dW5jdGlvbk92ZXJyaWRlID0gRnVuY3Rpb25PdmVycmlkZXM6OmluaXRpYWxpemVPdmVycmlkZUZv
cihzb3VyY2UsIG92ZXJyaWRlSW5mbyk7Ci0gICAgICAgIGlmIChVTkxJS0VMWShoYXNGdW5jdGlv
bk92ZXJyaWRlKSkgewotICAgICAgICAgICAgZmlyc3RMaW5lID0gb3ZlcnJpZGVJbmZvLmZpcnN0
TGluZTsKLSAgICAgICAgICAgIGxpbmVDb3VudCA9IG92ZXJyaWRlSW5mby5saW5lQ291bnQ7Ci0g
ICAgICAgICAgICBlbmRDb2x1bW4gPSBvdmVycmlkZUluZm8uZW5kQ29sdW1uOwotICAgICAgICAg
ICAgc291cmNlID0gb3ZlcnJpZGVJbmZvLnNvdXJjZUNvZGU7Ci0gICAgICAgIH0KLSAgICB9CiAK
LSAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIHJlc3VsdCA9IEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3Jl
YXRlKHZtLCBzb3VyY2UsIHRoaXMsIGZpcnN0TGluZSArIGxpbmVDb3VudCwgZW5kQ29sdW1uLCBp
bnRyaW5zaWMpOworICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogcmVzdWx0ID0gRnVuY3Rpb25FeGVj
dXRhYmxlOjpjcmVhdGUodm0sIHNvdXJjZSwgdGhpcywgaW50cmluc2ljKTsKICAgICBpZiAob3Zl
cnJpZGVMaW5lTnVtYmVyKQogICAgICAgICByZXN1bHQtPnNldE92ZXJyaWRlTGluZU51bWJlcigq
b3ZlcnJpZGVMaW5lTnVtYmVyKTsKIAotICAgIGlmIChVTkxJS0VMWShoYXNGdW5jdGlvbk92ZXJy
aWRlKSkgewotICAgICAgICByZXN1bHQtPm92ZXJyaWRlUGFyYW1ldGVyQW5kVHlwZVByb2ZpbGlu
Z1N0YXJ0RW5kT2Zmc2V0cygKLSAgICAgICAgICAgIG92ZXJyaWRlSW5mby5wYXJhbWV0ZXJzU3Rh
cnRPZmZzZXQsCi0gICAgICAgICAgICBvdmVycmlkZUluZm8udHlwZVByb2ZpbGluZ1N0YXJ0T2Zm
c2V0LAotICAgICAgICAgICAgb3ZlcnJpZGVJbmZvLnR5cGVQcm9maWxpbmdFbmRPZmZzZXQpOwot
ICAgIH0KKyAgICBpZiAoVU5MSUtFTFkoaGFzRnVuY3Rpb25PdmVycmlkZSkpCisgICAgICAgIHJl
c3VsdC0+b3ZlcnJpZGVJbmZvKG92ZXJyaWRlSW5mbyk7CiAKICAgICByZXR1cm4gcmVzdWx0Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuY3Bw
CmluZGV4IDZlZDhjY2NiMmM0MmU1YzVkZjYwNDdlNDA3NWYyYmRjZmYzOWI1MzUuLjI4YzdmNzZh
N2FjODA3ZjQ1NDY0MDU1ZTRhM2I0MmM5OGNlNGUyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V2YWxFeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5jcHAKQEAgLTMxLDEwICszMSwxMCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgQ2xhc3NJbmZvIEV2YWxFeGVjdXRhYmxlOjpzX2lu
Zm8gPSB7ICJFdmFsRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXRhYmxlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRXZhbEV4ZWN1dGFibGUpIH07Citjb25z
dCBDbGFzc0luZm8gRXZhbEV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIkV2YWxFeGVjdXRhYmxlIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShFdmFs
RXhlY3V0YWJsZSkgfTsKIAogRXZhbEV4ZWN1dGFibGU6OkV2YWxFeGVjdXRhYmxlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGluU3RyaWN0Q29udGV4dCwg
RGVyaXZlZENvbnRleHRUeXBlIGRlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rp
b25Db250ZXh0LCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlKQotICAgIDogU2NyaXB0
RXhlY3V0YWJsZShleGVjLT52bSgpLmV2YWxFeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVj
LT52bSgpLCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCwgZGVyaXZlZENvbnRleHRUeXBlLCBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0LCBldmFsQ29udGV4dFR5cGUsIE5vSW50cmluc2ljKQorICAgIDog
QmFzZShleGVjLT52bSgpLmV2YWxFeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVjLT52bSgp
LCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCwgZGVyaXZlZENvbnRleHRUeXBlLCBpc0Fycm93RnVu
Y3Rpb25Db250ZXh0LCBldmFsQ29udGV4dFR5cGUsIE5vSW50cmluc2ljKQogewogICAgIEFTU0VS
VChzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVHlwZSgpID09IFNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZTo6UHJvZ3JhbSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FdmFsRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZh
bEV4ZWN1dGFibGUuaAppbmRleCBmOThiNjQ0YTdhMTI5ZGYxZDljOTUxY2M1ZjdlMzJiMTBjMTU3
N2RiLi5iOWNiNzRkMWE4MGMwZmZjZGYzNTY0N2FhYTlkYWQyNmJmNTY5MWQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V2YWxFeGVjdXRhYmxlLmgKQEAgLTI2LDE1ICsy
NiwxNSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGVjdXRhYmxlVG9Db2RlQmxvY2tF
ZGdlLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgIkdsb2JhbEV4
ZWN1dGFibGUuaCIKICNpbmNsdWRlICJVbmxpbmtlZEV2YWxDb2RlQmxvY2suaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLWNsYXNzIEV2YWxFeGVjdXRhYmxlIDogcHVibGljIFNjcmlwdEV4ZWN1dGFi
bGUgeworY2xhc3MgRXZhbEV4ZWN1dGFibGUgOiBwdWJsaWMgR2xvYmFsRXhlY3V0YWJsZSB7CiAg
ICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIHB1YmxpYzoKLSAgICB0eXBl
ZGVmIFNjcmlwdEV4ZWN1dGFibGUgQmFzZTsKKyAgICB1c2luZyBCYXNlID0gR2xvYmFsRXhlY3V0
YWJsZTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWw7CiAKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQ2VsbCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uRXhlY3V0YWJsZS5jcHAKaW5kZXggNGM5MWNhMmRiMjY0YzhlMThlMWUyNDVjNWYz
NTEzMDgxOTI1MjIwMi4uYjFiNzdmNDY1NjI2ZGM5NzgzNjk2YzdmYzIxZDBiMDQwOTY0Y2ViYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRh
YmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1
dGFibGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiRGVidWdnZXIuaCIKICNpbmNsdWRlICJGdW5jdGlvbkNvZGVCbG9jay5oIgorI2luY2x1
ZGUgIkZ1bmN0aW9uT3ZlcnJpZGVzLmgiCiAjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgIkxMSW50RW50cnlwb2ludC5oIgpAQCAtNDEsMTUgKzQyLDE0
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gRnVuY3Rpb25FeGVjdXRhYmxl
OjpzX2luZm8gPSB7ICJGdW5jdGlvbkV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0aW9uRXhlY3V0
YWJsZSkgfTsKIAotRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoVk0mIHZt
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB1
bmxpbmtlZEV4ZWN1dGFibGUsIHVuc2lnbmVkIGxhc3RMaW5lLCB1bnNpZ25lZCBlbmRDb2x1bW4s
IEludHJpbnNpYyBpbnRyaW5zaWMpCitzdGF0aWNfYXNzZXJ0KHNpemVvZihGdW5jdGlvbkV4ZWN1
dGFibGUpIDw9IDEyOCwgIkZ1bmN0aW9uRXhlY3V0YWJsZSBzaG91bGQgZml0IGluIGEgMTI4LWJ5
dGUgY2VsbCBzaW5jZSBpdCBpcyBzbyBmcmVxdWVudGx5IGFsbG9jYXRlZC4iKTsKKworRnVuY3Rp
b25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB1bmxpbmtlZEV4ZWN1dGFibGUs
IEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKHZtLmZ1bmN0aW9u
RXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgdm0sIHNvdXJjZSwgdW5saW5rZWRFeGVjdXRhYmxl
LT5pc0luU3RyaWN0Q29udGV4dCgpLCB1bmxpbmtlZEV4ZWN1dGFibGUtPmRlcml2ZWRDb250ZXh0
VHlwZSgpLCBmYWxzZSwgRXZhbENvbnRleHRUeXBlOjpOb25lLCBpbnRyaW5zaWMpCiAgICAgLCBt
X3VubGlua2VkRXhlY3V0YWJsZSh2bSwgdGhpcywgdW5saW5rZWRFeGVjdXRhYmxlKQogewogICAg
IFJFTEVBU0VfQVNTRVJUKCFzb3VyY2UuaXNOdWxsKCkpOwogICAgIEFTU0VSVChzb3VyY2UubGVu
Z3RoKCkpOwotICAgIG1fbGFzdExpbmUgPSBsYXN0TGluZTsKLSAgICBBU1NFUlQoZW5kQ29sdW1u
ICE9IFVJTlRfTUFYKTsKLSAgICBtX2VuZENvbHVtbiA9IGVuZENvbHVtbjsKICAgICBpZiAoVk06
OmNhblVzZUpJVCgpKQogICAgICAgICBuZXcgKCZtX3NpbmdsZXRvbkZ1bmN0aW9uKSBXcml0ZUJh
cnJpZXI8SW5mZXJyZWRWYWx1ZT4oKTsKICAgICBlbHNlCkBAIC0xMTEsMTEgKzExMSwyNSBAQCBG
dW5jdGlvbkV4ZWN1dGFibGUqIEZ1bmN0aW9uRXhlY3V0YWJsZTo6ZnJvbUdsb2JhbENvZGUoCiBG
dW5jdGlvbkV4ZWN1dGFibGU6OlJhcmVEYXRhJiBGdW5jdGlvbkV4ZWN1dGFibGU6OmVuc3VyZVJh
cmVEYXRhU2xvdygpCiB7CiAgICAgQVNTRVJUKCFtX3JhcmVEYXRhKTsKLSAgICBtX3JhcmVEYXRh
ID0gc3RkOjptYWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsKLSAgICBtX3JhcmVEYXRhLT5tX3BhcmFt
ZXRlcnNTdGFydE9mZnNldCA9IG1fdW5saW5rZWRFeGVjdXRhYmxlLT5wYXJhbWV0ZXJzU3RhcnRP
ZmZzZXQoKTsKLSAgICBtX3JhcmVEYXRhLT5tX3R5cGVQcm9maWxpbmdTdGFydE9mZnNldCA9IG1f
dW5saW5rZWRFeGVjdXRhYmxlLT50eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQoKTsKLSAgICBtX3Jh
cmVEYXRhLT5tX3R5cGVQcm9maWxpbmdFbmRPZmZzZXQgPSBtX3VubGlua2VkRXhlY3V0YWJsZS0+
dHlwZVByb2ZpbGluZ0VuZE9mZnNldCgpOworICAgIGF1dG8gcmFyZURhdGEgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFJhcmVEYXRhPigpOworICAgIHJhcmVEYXRhLT5tX2xpbmVDb3VudCA9IGxpbmVDb3Vu
dCgpOworICAgIHJhcmVEYXRhLT5tX2VuZENvbHVtbiA9IGVuZENvbHVtbigpOworICAgIHJhcmVE
YXRhLT5tX3BhcmFtZXRlcnNTdGFydE9mZnNldCA9IHBhcmFtZXRlcnNTdGFydE9mZnNldCgpOwor
ICAgIHJhcmVEYXRhLT5tX3R5cGVQcm9maWxpbmdTdGFydE9mZnNldCA9IHR5cGVQcm9maWxpbmdT
dGFydE9mZnNldCgpOworICAgIHJhcmVEYXRhLT5tX3R5cGVQcm9maWxpbmdFbmRPZmZzZXQgPSB0
eXBlUHJvZmlsaW5nRW5kT2Zmc2V0KCk7CisgICAgbV9yYXJlRGF0YSA9IFdURk1vdmUocmFyZURh
dGEpOwogICAgIHJldHVybiAqbV9yYXJlRGF0YTsKIH0KIAordm9pZCBGdW5jdGlvbkV4ZWN1dGFi
bGU6Om92ZXJyaWRlSW5mbyhjb25zdCBGdW5jdGlvbk92ZXJyaWRlSW5mbyYgb3ZlcnJpZGVJbmZv
KQoreworICAgIGF1dG8mIHJhcmVEYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKKyAgICBtX3NvdXJj
ZSA9IG92ZXJyaWRlSW5mby5zb3VyY2VDb2RlOworICAgIHJhcmVEYXRhLm1fbGluZUNvdW50ID0g
b3ZlcnJpZGVJbmZvLmxpbmVDb3VudDsKKyAgICByYXJlRGF0YS5tX2VuZENvbHVtbiA9IG92ZXJy
aWRlSW5mby5lbmRDb2x1bW47CisgICAgcmFyZURhdGEubV9wYXJhbWV0ZXJzU3RhcnRPZmZzZXQg
PSBvdmVycmlkZUluZm8ucGFyYW1ldGVyc1N0YXJ0T2Zmc2V0OworICAgIHJhcmVEYXRhLm1fdHlw
ZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0ID0gb3ZlcnJpZGVJbmZvLnR5cGVQcm9maWxpbmdTdGFydE9m
ZnNldDsKKyAgICByYXJlRGF0YS5tX3R5cGVQcm9maWxpbmdFbmRPZmZzZXQgPSBvdmVycmlkZUlu
Zm8udHlwZVByb2ZpbGluZ0VuZE9mZnNldDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5oCmlu
ZGV4IDNjZDE1ODhiZWFiOTg5MGFmODg4ODU0MzM2OGE5MDU3YzNlM2JhZDAuLjdjZmVkYmQyZjQ5
YTdmZjI5NjY4MjdjYmUwYTQ0MTkwMDAzNTdmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0zMyw2ICszMyw4IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCitzdHJ1Y3QgRnVuY3Rpb25PdmVycmlkZUluZm87CisKIGNsYXNz
IEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRhYmxlIHsKICAg
ICBmcmllbmQgY2xhc3MgSklUOwogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0
b3I7CkBAIC00NiwxMSArNDgsOSBAQCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiAgICAgICAgIHJldHVybiAmdm0uZnVuY3Rpb25FeGVj
dXRhYmxlU3BhY2Uuc3BhY2U7CiAgICAgfQogCi0gICAgc3RhdGljIEZ1bmN0aW9uRXhlY3V0YWJs
ZSogY3JlYXRlKAotICAgICAgICBWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIHVubGlua2VkRXhlY3V0YWJsZSwgCi0gICAgICAgIHVu
c2lnbmVkIGxhc3RMaW5lLCB1bnNpZ25lZCBlbmRDb2x1bW4sIEludHJpbnNpYyBpbnRyaW5zaWMp
CisgICAgc3RhdGljIEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlKFZNJiB2bSwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogdW5saW5rZWRFeGVj
dXRhYmxlLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsKLSAgICAgICAgRnVuY3Rpb25FeGVj
dXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RnVuY3Rpb25F
eGVjdXRhYmxlPih2bS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxlKHZtLCBzb3VyY2UsIHVubGlu
a2VkRXhlY3V0YWJsZSwgbGFzdExpbmUsIGVuZENvbHVtbiwgaW50cmluc2ljKTsKKyAgICAgICAg
RnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8RnVuY3Rpb25FeGVjdXRhYmxlPih2bS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxlKHZtLCBz
b3VyY2UsIHVubGlua2VkRXhlY3V0YWJsZSwgaW50cmluc2ljKTsKICAgICAgICAgZXhlY3V0YWJs
ZS0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICB9
CkBAIC0xOTAsNyArMTkwLDM2IEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1
YmxpYyBTY3JpcHRFeGVjdXRhYmxlIHsKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAg
ICB9CiAKKyAgICBpbnQgbGluZUNvdW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChVTkxJ
S0VMWShtX3JhcmVEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2xpbmVD
b3VudDsKKyAgICAgICAgcmV0dXJuIG1fdW5saW5rZWRFeGVjdXRhYmxlLT5saW5lQ291bnQoKTsK
KyAgICB9CisKKyAgICBpbnQgZW5kQ29sdW1uKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChV
TkxJS0VMWShtX3JhcmVEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5tX2Vu
ZENvbHVtbjsKKyAgICAgICAgcmV0dXJuIG1fdW5saW5rZWRFeGVjdXRhYmxlLT5saW5rZWRFbmRD
b2x1bW4obV9zb3VyY2Uuc3RhcnRDb2x1bW4oKS5vbmVCYXNlZEludCgpKTsKKyAgICB9CisKKyAg
ICBpbnQgZmlyc3RMaW5lKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzb3VyY2UoKS5m
aXJzdExpbmUoKS5vbmVCYXNlZEludCgpOworICAgIH0KKworICAgIGludCBsYXN0TGluZSgpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gZmlyc3RMaW5lKCkgKyBsaW5lQ291bnQoKTsKKyAg
ICB9CisKICAgICB1bnNpZ25lZCB0eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQoVk0mKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHR5cGVQcm9maWxpbmdTdGFydE9mZnNldCgpOworICAgIH0K
KworICAgIHVuc2lnbmVkIHR5cGVQcm9maWxpbmdTdGFydE9mZnNldCgpIGNvbnN0CiAgICAgewog
ICAgICAgICBpZiAoVU5MSUtFTFkobV9yYXJlRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbV9y
YXJlRGF0YS0+bV90eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQ7CkBAIC0xOTgsNiArMjI3LDExIEBA
IGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRhYmxl
IHsKICAgICB9CiAKICAgICB1bnNpZ25lZCB0eXBlUHJvZmlsaW5nRW5kT2Zmc2V0KFZNJikgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiB0eXBlUHJvZmlsaW5nRW5kT2Zmc2V0KCk7CisgICAg
fQorCisgICAgdW5zaWduZWQgdHlwZVByb2ZpbGluZ0VuZE9mZnNldCgpIGNvbnN0CiAgICAgewog
ICAgICAgICBpZiAoVU5MSUtFTFkobV9yYXJlRGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbV9y
YXJlRGF0YS0+bV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0OwpAQCAtMjExLDEzICsyNDUsNyBAQCBj
bGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7
CiAgICAgICAgIHJldHVybiBtX3VubGlua2VkRXhlY3V0YWJsZS0+cGFyYW1ldGVyc1N0YXJ0T2Zm
c2V0KCk7CiAgICAgfQogCi0gICAgdm9pZCBvdmVycmlkZVBhcmFtZXRlckFuZFR5cGVQcm9maWxp
bmdTdGFydEVuZE9mZnNldHModW5zaWduZWQgcGFyYW1ldGVyc1N0YXJ0T2Zmc2V0LCB1bnNpZ25l
ZCB0eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQsIHVuc2lnbmVkIHR5cGVQcm9maWxpbmdFbmRPZmZz
ZXQpCi0gICAgewotICAgICAgICBhdXRvJiByYXJlRGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7Ci0g
ICAgICAgIHJhcmVEYXRhLm1fcGFyYW1ldGVyc1N0YXJ0T2Zmc2V0ID0gcGFyYW1ldGVyc1N0YXJ0
T2Zmc2V0OwotICAgICAgICByYXJlRGF0YS5tX3R5cGVQcm9maWxpbmdTdGFydE9mZnNldCA9IHR5
cGVQcm9maWxpbmdTdGFydE9mZnNldDsKLSAgICAgICAgcmFyZURhdGEubV90eXBlUHJvZmlsaW5n
RW5kT2Zmc2V0ID0gdHlwZVByb2ZpbGluZ0VuZE9mZnNldDsKLSAgICB9CisgICAgdm9pZCBvdmVy
cmlkZUluZm8oY29uc3QgRnVuY3Rpb25PdmVycmlkZUluZm8mKTsKIAogICAgIERFQ0xBUkVfSU5G
TzsKIApAQCAtMjY4LDkgKzI5Niw3IEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6
IHB1YmxpYyBTY3JpcHRFeGVjdXRhYmxlIHsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
RXhlY3V0YWJsZUJhc2U7Ci0gICAgRnVuY3Rpb25FeGVjdXRhYmxlKAotICAgICAgICBWTSYsIGNv
bnN0IFNvdXJjZUNvZGUmLCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSosCi0gICAgICAgIHVu
c2lnbmVkIGxhc3RMaW5lLCB1bnNpZ25lZCBlbmRDb2x1bW4sIEludHJpbnNpYyk7CisgICAgRnVu
Y3Rpb25FeGVjdXRhYmxlKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlKiwgSW50cmluc2ljKTsKICAgICAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
Jik7CiAKQEAgLTI3OCwxMSArMzA0LDEzIEBAIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5h
bCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRhYmxlIHsKIAogICAgIHN0cnVjdCBSYXJlRGF0YSB7CiAg
ICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICAgICAgUmVmUHRyPFR5
cGVTZXQ+IG1fcmV0dXJuU3RhdGVtZW50VHlwZVNldDsKKyAgICAgICAgdW5zaWduZWQgbV9saW5l
Q291bnQ7CisgICAgICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uOwogICAgICAgICBNYXJrYWJsZTxp
bnQsIEludGVncmFsTWFya2FibGVUcmFpdHM8aW50LCAtMT4+IG1fb3ZlcnJpZGVMaW5lTnVtYmVy
OwogICAgICAgICB1bnNpZ25lZCBtX3BhcmFtZXRlcnNTdGFydE9mZnNldCB7IDAgfTsKICAgICAg
ICAgdW5zaWduZWQgbV90eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQgeyBVSU5UX01BWCB9OwogICAg
ICAgICB1bnNpZ25lZCBtX3R5cGVQcm9maWxpbmdFbmRPZmZzZXQgeyBVSU5UX01BWCB9OwotICAg
ICAgICBSZWZQdHI8VHlwZVNldD4gbV9yZXR1cm5TdGF0ZW1lbnRUeXBlU2V0OwogICAgIH07CiAK
ICAgICBSYXJlRGF0YSYgZW5zdXJlUmFyZURhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGRmZTc2ZTQ1
MTI5OTEwNTE5YTI2N2QyYThjMjQ2MzljZjg5NjhkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXhlY3V0YWJsZS5jcHAKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2xvYmFsRXhlY3V0YWJsZS5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEdsb2JhbEV4ZWN1dGFibGU6OnNfaW5mbyA9IHsg
Ikdsb2JhbEV4ZWN1dGFibGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEdsb2JhbEV4ZWN1dGFibGUpIH07CisKK30gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXhlY3V0
YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXhlY3V0YWJsZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZlNzcxNWZhNmE5MTM5YjMxM2FiNGVmODU4ZmYwYWQ4Njc4OTEwMWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HbG9iYWxFeGVj
dXRhYmxlLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXhlY3V0YWJsZVRvQ29k
ZUJsb2NrRWRnZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGFibGUuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisKK2NsYXNzIEdsb2JhbEV4ZWN1dGFibGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJs
ZSB7CisgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKK3B1YmxpYzoKKyAg
ICB1c2luZyBCYXNlID0gU2NyaXB0RXhlY3V0YWJsZTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1t
b3J0YWw7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICB1bnNpZ25lZCBsYXN0TGluZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdExpbmU7IH0KKyAgICB1bnNpZ25lZCBlbmRDb2x1bW4oKSBjb25z
dCB7IHJldHVybiBtX2VuZENvbHVtbjsgfQorCisgICAgdm9pZCByZWNvcmRQYXJzZShDb2RlRmVh
dHVyZXMgZmVhdHVyZXMsIGJvb2wgaGFzQ2FwdHVyZWRWYXJpYWJsZXMsIGludCBsYXN0TGluZSwg
dW5zaWduZWQgZW5kQ29sdW1uKQorICAgIHsKKyAgICAgICAgQmFzZTo6cmVjb3JkUGFyc2UoZmVh
dHVyZXMsIGhhc0NhcHR1cmVkVmFyaWFibGVzKTsKKyAgICAgICAgbV9sYXN0TGluZSA9IGxhc3RM
aW5lOworICAgICAgICBtX2VuZENvbHVtbiA9IGVuZENvbHVtbjsKKyAgICAgICAgQVNTRVJUKGVu
ZENvbHVtbiAhPSBVSU5UX01BWCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgR2xvYmFsRXhl
Y3V0YWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlLCBib29sIGlzSW5TdHJpY3RDb250ZXh0LCBEZXJpdmVkQ29udGV4dFR5cGUgZGVy
aXZlZENvbnRleHRUeXBlLCBib29sIGlzSW5BcnJvd0Z1bmN0aW9uQ29udGV4dCwgRXZhbENvbnRl
eHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgSW50cmluc2ljIGludHJpbnNpYykKKyAgICAgICAgOiBC
YXNlKHN0cnVjdHVyZSwgdm0sIHNvdXJjZUNvZGUsIGlzSW5TdHJpY3RDb250ZXh0LCBkZXJpdmVk
Q29udGV4dFR5cGUsIGlzSW5BcnJvd0Z1bmN0aW9uQ29udGV4dCwgZXZhbENvbnRleHRUeXBlLCBp
bnRyaW5zaWMpCisgICAgeworICAgIH0KKworICAgIGludCBtX2xhc3RMaW5lIHsgLTEgfTsKKyAg
ICB1bnNpZ25lZCBtX2VuZENvbHVtbiB7IFVJTlRfTUFYIH07Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZVBy
b2dyYW1FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVs
ZVByb2dyYW1FeGVjdXRhYmxlLmNwcAppbmRleCBhZWYzZmFiMTVlNzUxMzQwMGVlOWUyMTU5MDNi
ZjQ5ZjhlZjJiMmY3Li4yMzJiNDE4ODcyYjg3YzgyNzlhOTUxNTE5YTY3N2JmMmZjNWUyNjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhl
Y3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlUHJv
Z3JhbUV4ZWN1dGFibGUuY3BwCkBAIC00MCwxMCArNDAsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLWNvbnN0IENsYXNzSW5mbyBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTo6c19pbmZvID0geyAi
TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE1vZHVsZVByb2dyYW1FeGVjdXRhYmxl
KSB9OworY29uc3QgQ2xhc3NJbmZvIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlOjpzX2luZm8gPSB7
ICJNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUpIH07CiAKIE1v
ZHVsZVByb2dyYW1FeGVjdXRhYmxlOjpNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKLSAgICA6IFNjcmlwdEV4ZWN1dGFibGUo
ZXhlYy0+dm0oKS5tb2R1bGVQcm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhlYy0+
dm0oKSwgc291cmNlLCBmYWxzZSwgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBmYWxzZSwgRXZh
bENvbnRleHRUeXBlOjpOb25lLCBOb0ludHJpbnNpYykKKyAgICA6IEJhc2UoZXhlYy0+dm0oKS5t
b2R1bGVQcm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhlYy0+dm0oKSwgc291cmNl
LCBmYWxzZSwgRGVyaXZlZENvbnRleHRUeXBlOjpOb25lLCBmYWxzZSwgRXZhbENvbnRleHRUeXBl
OjpOb25lLCBOb0ludHJpbnNpYykKIHsKICAgICBBU1NFUlQoc291cmNlLnByb3ZpZGVyKCktPnNv
dXJjZVR5cGUoKSA9PSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSk7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5oCmluZGV4IGZmODJjMjg0YTkwMDEzZWU1NjFj
OWIzMGI3MGMwZTM3MDEyYzQ2Y2YuLjZkMzU1YjdiZDZiOWY5OGVmN2Q2YzkwOTJiMzIyNTFiZjA3
OWJlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZVBy
b2dyYW1FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9k
dWxlUHJvZ3JhbUV4ZWN1dGFibGUuaApAQCAtMjYsMTQgKzI2LDE0IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UuaCIKLSNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiR2xvYmFsRXhlY3V0YWJsZS5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotY2xhc3MgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMg
U2NyaXB0RXhlY3V0YWJsZSB7CitjbGFzcyBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSBmaW5hbCA6
IHB1YmxpYyBHbG9iYWxFeGVjdXRhYmxlIHsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRz
RXh0cmFjdG9yOwogcHVibGljOgotICAgIHR5cGVkZWYgU2NyaXB0RXhlY3V0YWJsZSBCYXNlOwor
ICAgIHVzaW5nIEJhc2UgPSBHbG9iYWxFeGVjdXRhYmxlOwogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJ
bW1vcnRhbDsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vz
cyBtb2RlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3Jh
bUV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3JhbUV4
ZWN1dGFibGUuY3BwCmluZGV4IDM1NzhkMmFiMGY3YmZlZTgyNTYyNThkMGU2ZDc3OTcyMmZiOWRh
NWUuLjIxNjIzYmI0MWM1ZGQ0YzAyZTUwNTlmNmQzNGZkMGY4YzJjNDkzZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5jcHAKQEAg
LTQxLDEwICs0MSwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgQ2xhc3NJbmZvIFBy
b2dyYW1FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJQcm9ncmFtRXhlY3V0YWJsZSIsICZTY3JpcHRF
eGVjdXRhYmxlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
UHJvZ3JhbUV4ZWN1dGFibGUpIH07Citjb25zdCBDbGFzc0luZm8gUHJvZ3JhbUV4ZWN1dGFibGU6
OnNfaW5mbyA9IHsgIlByb2dyYW1FeGVjdXRhYmxlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShQcm9ncmFtRXhlY3V0YWJsZSkgfTsKIAogUHJv
Z3JhbUV4ZWN1dGFibGU6OlByb2dyYW1FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlKQotICAgIDogU2NyaXB0RXhlY3V0YWJsZShleGVjLT52bSgpLnBy
b2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVjLT52bSgpLCBzb3VyY2UsIGZhbHNl
LCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsIGZhbHNlLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUs
IE5vSW50cmluc2ljKQorICAgIDogQmFzZShleGVjLT52bSgpLnByb2dyYW1FeGVjdXRhYmxlU3Ry
dWN0dXJlLmdldCgpLCBleGVjLT52bSgpLCBzb3VyY2UsIGZhbHNlLCBEZXJpdmVkQ29udGV4dFR5
cGU6Ok5vbmUsIGZhbHNlLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsIE5vSW50cmluc2ljKQogewog
ICAgIEFTU0VSVChzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVHlwZSgpID09IFNvdXJjZVByb3Zp
ZGVyU291cmNlVHlwZTo6UHJvZ3JhbSk7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5oCmluZGV4
IGExZWNkMjFlMDEwMGZmZjdlNzI1NmE5ZDVjNzQ2NjU4ZTQyMzEzMGQuLjYwNTExNjc5YmYyYzkz
NzY4YThhY2Y2NjRiMjg1YmRjNjA3YmVkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvZ3JhbUV4ZWN1dGFibGUuaApAQCAtMjYsMTQgKzI2LDE0IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2UuaCIKLSNpbmNs
dWRlICJTY3JpcHRFeGVjdXRhYmxlLmgiCisjaW5jbHVkZSAiR2xvYmFsRXhlY3V0YWJsZS5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGUgZmluYWwgOiBwdWJs
aWMgU2NyaXB0RXhlY3V0YWJsZSB7CitjbGFzcyBQcm9ncmFtRXhlY3V0YWJsZSBmaW5hbCA6IHB1
YmxpYyBHbG9iYWxFeGVjdXRhYmxlIHsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0
cmFjdG9yOwogcHVibGljOgotICAgIHR5cGVkZWYgU2NyaXB0RXhlY3V0YWJsZSBCYXNlOworICAg
IHVzaW5nIEJhc2UgPSBHbG9iYWxFeGVjdXRhYmxlOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1v
cnRhbDsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5j
cHAKaW5kZXggNGUxZWY5YTZkOGNkZjdkYjgyNTk0OGNjYmY4YjdkOGQ1MTZiZTNjMy4uYzBmOWM3
YTdiMTM5MDNlYmE5NzFlNDQzNzg2MDFhNGFhYjhhZDVmZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgIkV2YWxDb2RlQmxvY2suaCIKICNp
bmNsdWRlICJGdW5jdGlvbkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkdsb2JhbEV4ZWN1dGFibGUu
aCIKICNpbmNsdWRlICJJc29DZWxsU2V0SW5saW5lcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTc0LDggKzc1LDYgQEAgdm9pZCBTY3JpcHRFeGVjdXRh
YmxlOjpjbGVhckNvZGUoSXNvQ2VsbFNldCYgY2xlYXJhYmxlQ29kZVNldCkKICAgICBtX2ppdENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0
clRhZz4oKTsKICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPigpOwogI2VuZGlmCi0gICAgbV9udW1QYXJh
bWV0ZXJzRm9yQ2FsbCA9IE5VTV9QQVJBTUVURVJTX05PVF9DT01QSUxFRDsKLSAgICBtX251bVBh
cmFtZXRlcnNGb3JDb25zdHJ1Y3QgPSBOVU1fUEFSQU1FVEVSU19OT1RfQ09NUElMRUQ7CiAKICAg
ICBzd2l0Y2ggKHR5cGUoKSkgewogICAgIGNhc2UgRnVuY3Rpb25FeGVjdXRhYmxlVHlwZTogewpA
QCAtMTgwLDEyICsxNzksMTAgQEAgdm9pZCBTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZShW
TSYgdm0sIENvZGVCbG9jayogZ2VuZXJpY0NvZGVCbG9jaywgQ29kZVR5cGUKICAgICBjYXNlIENv
ZGVGb3JDYWxsOgogICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gZ2VuZXJpY0NvZGVCbG9jayA/
IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGUoKSA6IG51bGxwdHI7CiAgICAgICAgIG1faml0Q29k
ZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IG51bGxwdHI7Ci0gICAgICAgIG1fbnVtUGFyYW1ldGVy
c0ZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2NrID8gZ2VuZXJpY0NvZGVCbG9jay0+bnVtUGFyYW1l
dGVycygpIDogTlVNX1BBUkFNRVRFUlNfTk9UX0NPTVBJTEVEOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CiAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9
IGdlbmVyaWNDb2RlQmxvY2sgPyBnZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlKCkgOiBudWxscHRy
OwogICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IG51bGxwdHI7
Ci0gICAgICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNvbnN0cnVjdCA9IGdlbmVyaWNDb2RlQmxvY2sg
PyBnZW5lcmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgOiBOVU1fUEFSQU1FVEVSU19OT1Rf
Q09NUElMRUQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMzIyLDcgKzMxOSw3IEBAIENv
ZGVCbG9jayogU2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKAogICAgIERlYnVnZ2Vy
TW9kZSBkZWJ1Z2dlck1vZGUgPSBnbG9iYWxPYmplY3QtPmhhc0ludGVyYWN0aXZlRGVidWdnZXIo
KSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9mZjsKICAgICBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJs
b2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IAogICAgICAgICBleGVjdXRhYmxlLT5tX3VubGlua2Vk
RXhlY3V0YWJsZS0+dW5saW5rZWRDb2RlQmxvY2tGb3IoCi0gICAgICAgICAgICAqdm0sIGV4ZWN1
dGFibGUtPm1fc291cmNlLCBraW5kLCBkZWJ1Z2dlck1vZGUsIGVycm9yLCAKKyAgICAgICAgICAg
ICp2bSwgZXhlY3V0YWJsZS0+c291cmNlKCksIGtpbmQsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIAog
ICAgICAgICAgICAgZXhlY3V0YWJsZS0+cGFyc2VNb2RlKCkpOwogICAgIHJlY29yZFBhcnNlKAog
ICAgICAgICBleGVjdXRhYmxlLT5tX3VubGlua2VkRXhlY3V0YWJsZS0+ZmVhdHVyZXMoKSwgCkBA
IC0zMzEsNyArMzI4LDcgQEAgQ29kZUJsb2NrKiBTY3JpcHRFeGVjdXRhYmxlOjpuZXdDb2RlQmxv
Y2tGb3IoCiAgICAgaWYgKCF1bmxpbmtlZENvZGVCbG9jaykgewogICAgICAgICBleGNlcHRpb24g
PSB0aHJvd0V4Y2VwdGlvbigKICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
LCB0aHJvd1Njb3BlLAotICAgICAgICAgICAgZXJyb3IudG9FcnJvck9iamVjdChnbG9iYWxPYmpl
Y3QsIGV4ZWN1dGFibGUtPm1fc291cmNlKSk7CisgICAgICAgICAgICBlcnJvci50b0Vycm9yT2Jq
ZWN0KGdsb2JhbE9iamVjdCwgZXhlY3V0YWJsZS0+c291cmNlKCkpKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCkBAIC00NTksNyArNDU2LDQyIEBAIHVuc2lnbmVkIFNjcmlwdEV4
ZWN1dGFibGU6OnR5cGVQcm9maWxpbmdFbmRPZmZzZXQoVk0mIHZtKSBjb25zdAogICAgICAgICBy
ZXR1cm4ganNDYXN0PGNvbnN0IEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHRoaXMpLT50eXBlUHJvZmls
aW5nRW5kT2Zmc2V0KHZtKTsKICAgICBpZiAoaW5oZXJpdHM8RXZhbEV4ZWN1dGFibGU+KHZtKSkK
ICAgICAgICAgcmV0dXJuIFVJTlRfTUFYOwotICAgIHJldHVybiBtX3NvdXJjZS5sZW5ndGgoKSAt
IDE7CisgICAgcmV0dXJuIHNvdXJjZSgpLmxlbmd0aCgpIC0gMTsKK30KKwordm9pZCBTY3JpcHRF
eGVjdXRhYmxlOjpyZWNvcmRQYXJzZShDb2RlRmVhdHVyZXMgZmVhdHVyZXMsIGJvb2wgaGFzQ2Fw
dHVyZWRWYXJpYWJsZXMsIGludCBsYXN0TGluZSwgdW5zaWduZWQgZW5kQ29sdW1uKQoreworICAg
IHN3aXRjaCAodHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvbkV4ZWN1dGFibGVUeXBlOgorICAg
ICAgICAvLyBTaW5jZSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSBob2xkcyB0aGUgaW5mb3Jt
YXRpb24gdG8gY2FsY3VsYXRlIGxhc3RMaW5lIGFuZCBlbmRDb2x1bW4sIHdlIGRvIG5vdCBuZWVk
IHRvIHJlbWVtYmVyIHRoZW0gaW4gU2NyaXB0RXhlY3V0YWJsZSdzIGZpZWxkcy4KKyAgICAgICAg
anNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHRoaXMpLT5yZWNvcmRQYXJzZShmZWF0dXJlcywg
aGFzQ2FwdHVyZWRWYXJpYWJsZXMpOworICAgICAgICByZXR1cm47CisgICAgZGVmYXVsdDoKKyAg
ICAgICAganNDYXN0PEdsb2JhbEV4ZWN1dGFibGUqPih0aGlzKS0+cmVjb3JkUGFyc2UoZmVhdHVy
ZXMsIGhhc0NhcHR1cmVkVmFyaWFibGVzLCBsYXN0TGluZSwgZW5kQ29sdW1uKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KK30KKworaW50IFNjcmlwdEV4ZWN1dGFibGU6Omxhc3RMaW5lKCkgY29u
c3QKK3sKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25FeGVjdXRhYmxl
VHlwZToKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBGdW5jdGlvbkV4ZWN1dGFibGUqPih0
aGlzKS0+bGFzdExpbmUoKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4ganNDYXN0PGNv
bnN0IEdsb2JhbEV4ZWN1dGFibGUqPih0aGlzKS0+bGFzdExpbmUoKTsKKyAgICB9CisgICAgcmV0
dXJuIDA7Cit9CisKK3Vuc2lnbmVkIFNjcmlwdEV4ZWN1dGFibGU6OmVuZENvbHVtbigpIGNvbnN0
Cit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsKKyAgICBjYXNlIEZ1bmN0aW9uRXhlY3V0YWJsZVR5
cGU6CisgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgRnVuY3Rpb25FeGVjdXRhYmxlKj4odGhp
cyktPmVuZENvbHVtbigpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29u
c3QgR2xvYmFsRXhlY3V0YWJsZSo+KHRoaXMpLT5lbmRDb2x1bW4oKTsKKyAgICB9CisgICAgcmV0
dXJuIDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCmluZGV4IGJjMzM5MjQ2YzhjMGE5YjlhYmI1
YmQxOTk5NDFiYjMzNTlmMDkwMTMuLjMzZDdlN2NmNWVkMzk5ZGViNDVlZGQ1MmNmMzA0M2JkMDc5
NTQwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4
ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVj
dXRhYmxlLmgKQEAgLTQ1LDkgKzQ1LDkgQEAgY2xhc3MgU2NyaXB0RXhlY3V0YWJsZSA6IHB1Ymxp
YyBFeGVjdXRhYmxlQmFzZSB7CiAgICAgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VPcmlnaW4oKTsgfQog
ICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJv
dmlkZXIoKS0+dXJsKCk7IH0KICAgICBpbnQgZmlyc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2UuZmlyc3RMaW5lKCkub25lQmFzZWRJbnQoKTsgfQotICAgIGludCBsYXN0TGluZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdExpbmU7IH0KKyAgICBpbnQgbGFzdExpbmUoKSBjb25zdDsKICAg
ICB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnN0YXJ0Q29s
dW1uKCkub25lQmFzZWRJbnQoKTsgfQotICAgIHVuc2lnbmVkIGVuZENvbHVtbigpIGNvbnN0IHsg
cmV0dXJuIG1fZW5kQ29sdW1uOyB9CisgICAgdW5zaWduZWQgZW5kQ29sdW1uKCkgY29uc3Q7CiAK
ICAgICBPcHRpb25hbDxpbnQ+IG92ZXJyaWRlTGluZU51bWJlcihWTSYpIGNvbnN0OwogICAgIHVu
c2lnbmVkIHR5cGVQcm9maWxpbmdTdGFydE9mZnNldChWTSYpIGNvbnN0OwpAQCAtODEsMTUgKzgx
LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CiAg
ICAgICAgIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICB2b2lkIHJlY29yZFBhcnNl
KENvZGVGZWF0dXJlcyBmZWF0dXJlcywgYm9vbCBoYXNDYXB0dXJlZFZhcmlhYmxlcywgaW50IGxh
c3RMaW5lLCB1bnNpZ25lZCBlbmRDb2x1bW4pCi0gICAgewotICAgICAgICBtX2ZlYXR1cmVzID0g
ZmVhdHVyZXM7Ci0gICAgICAgIG1faGFzQ2FwdHVyZWRWYXJpYWJsZXMgPSBoYXNDYXB0dXJlZFZh
cmlhYmxlczsKLSAgICAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOwotICAgICAgICBBU1NFUlQo
ZW5kQ29sdW1uICE9IFVJTlRfTUFYKTsKLSAgICAgICAgbV9lbmRDb2x1bW4gPSBlbmRDb2x1bW47
Ci0gICAgfQotCisgICAgdm9pZCByZWNvcmRQYXJzZShDb2RlRmVhdHVyZXMsIGJvb2wgaGFzQ2Fw
dHVyZWRWYXJpYWJsZXMsIGludCBsYXN0TGluZSwgdW5zaWduZWQgZW5kQ29sdW1uKTsKICAgICB2
b2lkIGluc3RhbGxDb2RlKENvZGVCbG9jayopOwogICAgIHZvaWQgaW5zdGFsbENvZGUoVk0mLCBD
b2RlQmxvY2sqLCBDb2RlVHlwZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgQ29kZUJs
b2NrKiBuZXdDb2RlQmxvY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgSlNGdW5jdGlvbios
IEpTU2NvcGUqLCBFeGNlcHRpb24qJik7CkBAIC0xMDIsMTUgKzk0LDEzIEBAIGNsYXNzIFNjcmlw
dEV4ZWN1dGFibGUgOiBwdWJsaWMgRXhlY3V0YWJsZUJhc2UgewogICAgICAgICByZXR1cm4gbV9p
bnRyaW5zaWM7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgTlVNX1BBUkFNRVRF
UlNfTk9UX0NPTVBJTEVEID0gLTE7Ci0KICAgICBib29sIGhhc0pJVENvZGVGb3JDYWxsKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX251bVBhcmFtZXRlcnNGb3JDYWxsID49IDA7Cisg
ICAgICAgIHJldHVybiBtX2ppdENvZGVGb3JDYWxsOwogICAgIH0KICAgICBib29sIGhhc0pJVENv
ZGVGb3JDb25zdHJ1Y3QoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbnVtUGFyYW1l
dGVyc0ZvckNvbnN0cnVjdCA+PSAwOworICAgICAgICByZXR1cm4gbV9qaXRDb2RlRm9yQ29uc3Ry
dWN0OwogICAgIH0KIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gaGFzIGFuIGludGVyZXN0aW5nIEdD
IHN0b3J5LiBDYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gYXJlIGFza2luZyB1cyB0byBjcmVhdGUg
YSBDb2RlQmxvY2sKQEAgLTE0MSwxNCArMTMxLDEzIEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGUg
OiBwdWJsaWMgRXhlY3V0YWJsZUJhc2UgewogI2VuZGlmCiAgICAgfQogCi0gICAgU291cmNlQ29k
ZSBtX3NvdXJjZTsKLQotICAgIGludCBtX251bVBhcmFtZXRlcnNGb3JDYWxsIHsgTlVNX1BBUkFN
RVRFUlNfTk9UX0NPTVBJTEVEIH07Ci0gICAgaW50IG1fbnVtUGFyYW1ldGVyc0ZvckNvbnN0cnVj
dCB7IE5VTV9QQVJBTUVURVJTX05PVF9DT01QSUxFRCB9OwotCi0gICAgaW50IG1fbGFzdExpbmUg
eyAtMSB9OwotICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uIHsgVUlOVF9NQVggfTsKKyAgICB2b2lk
IHJlY29yZFBhcnNlKENvZGVGZWF0dXJlcyBmZWF0dXJlcywgYm9vbCBoYXNDYXB0dXJlZFZhcmlh
YmxlcykKKyAgICB7CisgICAgICAgIG1fZmVhdHVyZXMgPSBmZWF0dXJlczsKKyAgICAgICAgbV9o
YXNDYXB0dXJlZFZhcmlhYmxlcyA9IGhhc0NhcHR1cmVkVmFyaWFibGVzOworICAgIH0KIAorICAg
IFNvdXJjZUNvZGUgbV9zb3VyY2U7CiAgICAgSW50cmluc2ljIG1faW50cmluc2ljIHsgTm9JbnRy
aW5zaWMgfTsKICAgICBib29sIG1fZGlkVHJ5VG9FbnRlckluTG9vcCB7IGZhbHNlIH07CiAgICAg
Q29kZUZlYXR1cmVzIG1fZmVhdHVyZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9GdW5jdGlvbk92ZXJyaWRlcy5oCmluZGV4IGY5NzkwZTgyMGYyNzBkMDRjYWQ4ZTVjNWM4YzM4
YTk0ODJkNGQ0NzIuLjRhNDJiYmMxZjI1YTlkMDFkZGZiMmQ4OWFkMjFjZmMwYWIyNjg4NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5oCkBA
IC0zMywxOCArMzMsMjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGFi
bGU7CiAKK3N0cnVjdCBGdW5jdGlvbk92ZXJyaWRlSW5mbyB7CisgICAgU291cmNlQ29kZSBzb3Vy
Y2VDb2RlOworICAgIHVuc2lnbmVkIGZpcnN0TGluZTsKKyAgICB1bnNpZ25lZCBsaW5lQ291bnQ7
CisgICAgdW5zaWduZWQgc3RhcnRDb2x1bW47CisgICAgdW5zaWduZWQgZW5kQ29sdW1uOworICAg
IHVuc2lnbmVkIHBhcmFtZXRlcnNTdGFydE9mZnNldDsKKyAgICB1bnNpZ25lZCB0eXBlUHJvZmls
aW5nU3RhcnRPZmZzZXQ7CisgICAgdW5zaWduZWQgdHlwZVByb2ZpbGluZ0VuZE9mZnNldDsKK307
CisKIGNsYXNzIEZ1bmN0aW9uT3ZlcnJpZGVzIHsKIHB1YmxpYzoKLSAgICBzdHJ1Y3QgT3ZlcnJp
ZGVJbmZvIHsKLSAgICAgICAgU291cmNlQ29kZSBzb3VyY2VDb2RlOwotICAgICAgICB1bnNpZ25l
ZCBmaXJzdExpbmU7Ci0gICAgICAgIHVuc2lnbmVkIGxpbmVDb3VudDsKLSAgICAgICAgdW5zaWdu
ZWQgc3RhcnRDb2x1bW47Ci0gICAgICAgIHVuc2lnbmVkIGVuZENvbHVtbjsKLSAgICAgICAgdW5z
aWduZWQgcGFyYW1ldGVyc1N0YXJ0T2Zmc2V0OwotICAgICAgICB1bnNpZ25lZCB0eXBlUHJvZmls
aW5nU3RhcnRPZmZzZXQ7Ci0gICAgICAgIHVuc2lnbmVkIHR5cGVQcm9maWxpbmdFbmRPZmZzZXQ7
Ci0gICAgfTsKKyAgICB1c2luZyBPdmVycmlkZUluZm8gPSBGdW5jdGlvbk92ZXJyaWRlSW5mbzsK
IAogICAgIHN0YXRpYyBGdW5jdGlvbk92ZXJyaWRlcyYgb3ZlcnJpZGVzKCk7CiAgICAgRnVuY3Rp
b25PdmVycmlkZXMoY29uc3QgY2hhciogZnVuY3Rpb25PdmVycmlkZXNGaWxlTmFtZSk7Cg==
</data>
<flag name="review"
          id="382097"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365670</attachid>
            <date>2019-03-21 19:26:59 -0700</date>
            <delta_ts>2019-03-21 19:26:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196122-20190321192658.patch</filename>
            <type>text/plain</type>
            <size>38316</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NjczODdiMjA1OGI4OWJkNDM0NjZiNGNjYzQ5ZjBkMjZiY2EwZDk2Li5kMTgyYWY1ZDFmNmViNmQ0
OGVhNWE3MDRkMDZmMWNjZWFlNzRlMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxOS0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFNocmluayBzaXplb2YoRnVuY3Rpb25FeGVjdXRhYmxlKSBieSAx
NmJ5dGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTYxMjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIHJlZHVjZXMgc2l6ZW9mKEZ1bmN0aW9uRXhlY3V0YWJsZSkgYnkgMTYgYnl0ZXMu
CisKKyAgICAgICAgMS4gU2NyaXB0RXhlY3V0YWJsZTo6bV9udW1QYXJhbWV0ZXJzRm9yQ2FsbCBh
bmQgU2NyaXB0RXhlY3V0YWJsZTo6bV9udW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0IGFyZSBub3Qg
dXNlZCBpbiBhIG1lYW5pbmdmdWwgd2F5LiBSZW1vdmVkIHRoZW0uCisgICAgICAgIDIuIFNjcmlw
dEV4ZWN1dGFibGU6Om1fbGFzdExpbmUgYW5kIFNjcmlwdEV4ZWN1dGFibGU6Om1fZW5kQ29sdW1u
IGNhbiBiZSBjYWxjdWxhdGVkIGZyb20gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuIFNvIEZ1
bmN0aW9uRXhlY3V0YWJsZSBkb2VzIG5vdCBuZWVkIHRvIGhvbGQgaXQuCisgICAgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBHbG9iYWxFeGVjdXRhYmxlLCB3aGljaCBhcmUgbm9uLWZ1bmN0aW9uIFNj
cmlwdEV4ZWN1dGFibGVzLCBhbmQgbW92ZSBtX2xhc3RMaW5lIGFuZCBtX2VuZENvbHVtbiB0byB0
aGlzIGNsYXNzLgorICAgICAgICAzLiBGdW5jdGlvbkV4ZWN1dGFibGUgc3RpbGwgbmVlZHMgdG8g
aGF2ZSB0aGUgZmVhdHVyZSBvdmVycmlkaW5nIG1fbGFzdExpbmUgYW5kIG1fZW5kQ29sdW1uLiBX
ZSBtb3ZlIG92ZXJyaWRkZW4gZGF0YSBpbiBGdW5jdGlvbkV4ZWN1dGFibGU6OlJhcmVEYXRhLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6
OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpsaW5rKToKKyAgICAgICAgKiBydW50aW1lL0V2
YWxFeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RXZhbEV4ZWN1dGFibGU6OkV2YWxFeGVj
dXRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL0V2YWxFeGVjdXRhYmxlLmg6CisgICAgICAgICog
cnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4
ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZTo6ZW5zdXJlUmFyZURhdGFTbG93KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlOjpvdmVycmlkZUluZm8pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25FeGVjdXRh
YmxlLmg6CisgICAgICAgICogcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmNwcDogQ29waWVkIGZy
b20gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmguCisgICAg
ICAgICogcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5oLgorICAgICAgICAoSlNDOjpHbG9i
YWxFeGVjdXRhYmxlOjpsYXN0TGluZSBjb25zdCk6CisgICAgICAgIChKU0M6Okdsb2JhbEV4ZWN1
dGFibGU6OmVuZENvbHVtbiBjb25zdCk6CisgICAgICAgIChKU0M6Okdsb2JhbEV4ZWN1dGFibGU6
OnJlY29yZFBhcnNlKToKKyAgICAgICAgKEpTQzo6R2xvYmFsRXhlY3V0YWJsZTo6R2xvYmFsRXhl
Y3V0YWJsZSk6CisgICAgICAgICogcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHA6
CisgICAgICAgIChKU0M6Ok1vZHVsZVByb2dyYW1FeGVjdXRhYmxlOjpNb2R1bGVQcm9ncmFtRXhl
Y3V0YWJsZSk6CisgICAgICAgICogcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvZ3JhbUV4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpQ
cm9ncmFtRXhlY3V0YWJsZTo6UHJvZ3JhbUV4ZWN1dGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUv
UHJvZ3JhbUV4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUu
Y3BwOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpjbGVhckNvZGUpOgorICAgICAg
ICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZSk6CisgICAgICAgIChKU0M6OlNj
cmlwdEV4ZWN1dGFibGU6Omhhc0NsZWFyYWJsZUNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpT
Y3JpcHRFeGVjdXRhYmxlOjpuZXdDb2RlQmxvY2tGb3IpOgorICAgICAgICAoSlNDOjpTY3JpcHRF
eGVjdXRhYmxlOjp0eXBlUHJvZmlsaW5nRW5kT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
U2NyaXB0RXhlY3V0YWJsZTo6cmVjb3JkUGFyc2UpOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVj
dXRhYmxlOjpsYXN0TGluZSBjb25zdCk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6
OmVuZENvbHVtbiBjb25zdCk6CisgICAgICAgICogcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmg6
CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6Omhhc0pJVENvZGVGb3JDYWxsIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6aGFzSklUQ29kZUZvckNvbnN0cnVj
dCBjb25zdCk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnJlY29yZFBhcnNlKToK
KyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6bGFzdExpbmUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjplbmRDb2x1bW4gY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmg6CisKIDIwMTktMDMtMjEg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBEbyBu
b3QgY3JlYXRlIEpJVCByZWxhdGVkIGRhdGEgdW5kZXIgbm9uLUpJVCBtb2RlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNGZhMGMzYjdlZDgwYWVmNTg4YjNlZTg3MzhmNTY2
NzNlYzkwOWY0YS4uNzk3NzIxN2Y0Nzc0YzFkZGVkOTYwY2RhOTkzODNhOWE0MGFiZWY3MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODAzLDYgKzgwMyw3IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcnVudGltZS9HZW5l
cmljVHlwZWRBcnJheVZpZXcuaAogICAgIHJ1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5s
aW5lcy5oCiAgICAgcnVudGltZS9HZXRQdXRJbmZvLmgKKyAgICBydW50aW1lL0dsb2JhbEV4ZWN1
dGFibGUuaAogICAgIHJ1bnRpbWUvSGFzaE1hcEltcGwuaAogICAgIHJ1bnRpbWUvSWRlbnRpZmll
ci5oCiAgICAgcnVudGltZS9JZGVudGlmaWVySW5saW5lcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGIxZmJmMTY0ZDZhYTIyYmM4MzI3Yzc2NzIyNjIzYTk4N2FkN2UzMjMuLmRi
MjViNzIzNjQ4ZGM4NWM4MWYzZDdlZWI2ODc1NTIxNmU0MTk5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNzY2LDYgKzE3NjYsNyBAQAogCQlFMzUwNzA4QTFEQzQ5QkJGMDA4
OUJDRDYgLyogRE9NSklUU2lnbmF0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzUwNzA4OTFEQzQ5QkI2MDA4OUJDRDYgLyogRE9NSklUU2lnbmF0
dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTM1NDYyMkIxQjYwNjVEMTAwNTQ1Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTQ2MjJBMUI2MDY1RDEwMDU0
NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1NTVCOEExREFFMDNBNTAwRjM2OTIxIC8qIERPTUpJVENh
bGxET01HZXR0ZXJTbmlwcGV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzU1NUI4OTFEQUUwM0EyMDBGMzY5MjEgLyogRE9NSklUQ2FsbERPTUdldHRl
clNuaXBwZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlFMzU1RDM4RjIyNDQ2ODc3MDA4RjFBRDYgLyogR2xvYmFsRXhlY3V0YWJsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NUQzOEQyMjQ0Njg2
QjAwOEYxQUQ2IC8qIEdsb2JhbEV4ZWN1dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzVBMEI5RDIyMEFEODdBMDBBQzQ0NzQgLyogRXhl
Y3V0YWJsZUJhc2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzVBMEI5QzIyMEFEODdBMDBBQzQ0NzQgLyogRXhlY3V0YWJsZUJhc2VJbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTM1Q0ExNTQxREJDM0E1QzAwRjgzNTE2IC8qIERPTUpJVEhlYXBSYW5nZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1Q0ExNTIxREJDM0E1NjAwRjgz
NTE2IC8qIERPTUpJVEhlYXBSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzNUNBMTU2MURCQzNBNUYwMEY4MzUxNiAvKiBET01KSVRBYnN0
cmFjdEhlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzNUNBMTUwMURCQzNBNTYwMEY4MzUxNiAvKiBET01KSVRBYnN0cmFjdEhlYXAuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDcxNiw2ICs0NzE3
LDggQEAKIAkJRTM1MDcwODkxREM0OUJCNjAwODlCQ0Q2IC8qIERPTUpJVFNpZ25hdHVyZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRTaWduYXR1cmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NDYyMkExQjYwNjVEMTAwNTQ1Mzg2IC8qIENvbnN0
cnVjdEFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc3RydWN0
QWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU1NUI4OTFEQUUwM0Ey
MDBGMzY5MjEgLyogRE9NSklUQ2FsbERPTUdldHRlclNuaXBwZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUQ2FsbERPTUdldHRlclNuaXBwZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1NUQzOEQyMjQ0Njg2QjAwOEYxQUQ2IC8qIEdsb2JhbEV4
ZWN1dGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2xvYmFsRXhlY3V0YWJsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzU1RDM4RTIyNDQ2ODZDMDA4RjFBRDYgLyogR2xvYmFsRXhl
Y3V0YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHbG9iYWxFeGVjdXRhYmxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1QTBCOUMyMjBBRDg3QTAwQUM0NDc0IC8qIEV4
ZWN1dGFibGVCYXNlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGVjdXRhYmxlQmFzZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1
Q0ExNEYxREJDM0E1NjAwRjgzNTE2IC8qIERPTUpJVEFic3RyYWN0SGVhcC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVRBYnN0cmFjdEhlYXAuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVDQTE1MDFEQkMzQTU2MDBGODM1MTYgLyogRE9N
SklUQWJzdHJhY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJ
VEFic3RyYWN0SGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgwNiw2ICs2
ODA5LDggQEAKIAkJCQk3OTY0NjU2ODFCOTUyRkYwMDAzMDU5RUUgLyogR2V0UHV0SW5mby5oICov
LAogCQkJCUJDMDJFOUI4MEUxODQ1NDUwMDBGOTI5NyAvKiBHZXR0ZXJTZXR0ZXIuY3BwICovLAog
CQkJCUJDMzM3QkRFMEUxQUYwQjgwMDc2OTE4QSAvKiBHZXR0ZXJTZXR0ZXIuaCAqLywKKwkJCQlF
MzU1RDM4RTIyNDQ2ODZDMDA4RjFBRDYgLyogR2xvYmFsRXhlY3V0YWJsZS5jcHAgKi8sCisJCQkJ
RTM1NUQzOEQyMjQ0Njg2QjAwOEYxQUQ2IC8qIEdsb2JhbEV4ZWN1dGFibGUuaCAqLywKIAkJCQk3
OUEwOTA3RDFENzY4NDY1MDA4Qjg4OUIgLyogSGFzaE1hcEltcGwuY3BwICovLAogCQkJCTc5QTA5
MDdFMUQ3Njg0NjUwMDhCODg5QiAvKiBIYXNoTWFwSW1wbC5oICovLAogCQkJCTc5REZDQkRBMUQ4
OEM1OTYwMDUyN0QwMyAvKiBIYXNPd25Qcm9wZXJ0eUNhY2hlLmggKi8sCkBAIC05MTI2LDYgKzkx
MzEsNyBAQAogCQkJCTUzNEUwMzU4MUU1M0JGMkYwMDIxM0Y2NCAvKiBHZXR0ZXJTZXR0ZXJBY2Nl
c3NDYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDM0M1QjFGMzNBNDg5MDBGNTlCNkMgLyog
R2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEFE
OTEwRTFEQ0E5Mjk0MDAxNEY5RkUgLyogR2xvYmFsQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzU1RDM4RjIyNDQ2ODc3MDA4RjFBRDYgLyogR2xvYmFsRXhlY3V0YWJsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYyNEU1NDQxN0VBOUY1OTAwQUJCMjE3IC8qIEdQUkluZm8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0MkUzMTM0MTM0RkYwQTYwMEFGQURCNSAvKiBIYW5kbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMyODMxOTAwMTZGRTRCN0QwMDE1N0JGRCAvKiBIYW5kbGVCbG9jay5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggOGIzZGQ1ZTk5
NGRhNWE0YmNiZjY3YmNhMTk0MzU4NjA2NTY4ODQ5NC4uZjA1YTNmZTllMDMzZDJlMWE0OTRjNDYx
OTRhYzEyNDk5ZDMzMzExZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNzY4LDYg
Kzc2OCw3IEBAIHJ1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwCiBydW50aW1l
L0dlbmVyYXRvclByb3RvdHlwZS5jcHAKIHJ1bnRpbWUvR2V0UHV0SW5mby5jcHAKIHJ1bnRpbWUv
R2V0dGVyU2V0dGVyLmNwcAorcnVudGltZS9HbG9iYWxFeGVjdXRhYmxlLmNwcAogcnVudGltZS9I
YXNoTWFwSW1wbC5jcHAKIHJ1bnRpbWUvSWRlbnRpZmllci5jcHAKIHJ1bnRpbWUvSW5kZXhpbmdU
eXBlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKaW5kZXggOTYyOWM0NmEzZjViMzdlOWY2
MjFiZjllYTIxYzdlYmI4OWJiOTQ0MC4uNThhZTZjNTczMzczZTQxNTY3ODJlYzJkMmE4ZGJhOWZk
NjQ3ZmIxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCkBAIC0xNTgsMzEgKzE1OCwxNyBA
QCBTb3VyY2VDb2RlIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpsaW5rZWRTb3VyY2VDb2Rl
KGNvbnN0IFNvdXJjZUNvZGUmIHBhc3NlZAogRnVuY3Rpb25FeGVjdXRhYmxlKiBVbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZTo6bGluayhWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHBhc3NlZFBh
cmVudFNvdXJjZSwgT3B0aW9uYWw8aW50PiBvdmVycmlkZUxpbmVOdW1iZXIsIEludHJpbnNpYyBp
bnRyaW5zaWMpCiB7CiAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBsaW5rZWRTb3VyY2VDb2RlKHBh
c3NlZFBhcmVudFNvdXJjZSk7Ci0gICAgdW5zaWduZWQgZmlyc3RMaW5lID0gc291cmNlLmZpcnN0
TGluZSgpLm9uZUJhc2VkSW50KCk7Ci0gICAgdW5zaWduZWQgbGluZUNvdW50ID0gbV9saW5lQ291
bnQ7Ci0gICAgdW5zaWduZWQgZW5kQ29sdW1uID0gbGlua2VkRW5kQ29sdW1uKHNvdXJjZS5zdGFy
dENvbHVtbigpLm9uZUJhc2VkSW50KCkpOwogICAgIEZ1bmN0aW9uT3ZlcnJpZGVzOjpPdmVycmlk
ZUluZm8gb3ZlcnJpZGVJbmZvOwogICAgIGJvb2wgaGFzRnVuY3Rpb25PdmVycmlkZSA9IGZhbHNl
OwotICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpmdW5jdGlvbk92ZXJyaWRlcygpKSkgeworICAg
IGlmIChVTkxJS0VMWShPcHRpb25zOjpmdW5jdGlvbk92ZXJyaWRlcygpKSkKICAgICAgICAgaGFz
RnVuY3Rpb25PdmVycmlkZSA9IEZ1bmN0aW9uT3ZlcnJpZGVzOjppbml0aWFsaXplT3ZlcnJpZGVG
b3Ioc291cmNlLCBvdmVycmlkZUluZm8pOwotICAgICAgICBpZiAoVU5MSUtFTFkoaGFzRnVuY3Rp
b25PdmVycmlkZSkpIHsKLSAgICAgICAgICAgIGZpcnN0TGluZSA9IG92ZXJyaWRlSW5mby5maXJz
dExpbmU7Ci0gICAgICAgICAgICBsaW5lQ291bnQgPSBvdmVycmlkZUluZm8ubGluZUNvdW50Owot
ICAgICAgICAgICAgZW5kQ29sdW1uID0gb3ZlcnJpZGVJbmZvLmVuZENvbHVtbjsKLSAgICAgICAg
ICAgIHNvdXJjZSA9IG92ZXJyaWRlSW5mby5zb3VyY2VDb2RlOwotICAgICAgICB9Ci0gICAgfQog
Ci0gICAgRnVuY3Rpb25FeGVjdXRhYmxlKiByZXN1bHQgPSBGdW5jdGlvbkV4ZWN1dGFibGU6OmNy
ZWF0ZSh2bSwgc291cmNlLCB0aGlzLCBmaXJzdExpbmUgKyBsaW5lQ291bnQsIGVuZENvbHVtbiwg
aW50cmluc2ljKTsKKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIHJlc3VsdCA9IEZ1bmN0aW9uRXhl
Y3V0YWJsZTo6Y3JlYXRlKHZtLCBzb3VyY2UsIHRoaXMsIGludHJpbnNpYyk7CiAgICAgaWYgKG92
ZXJyaWRlTGluZU51bWJlcikKICAgICAgICAgcmVzdWx0LT5zZXRPdmVycmlkZUxpbmVOdW1iZXIo
Km92ZXJyaWRlTGluZU51bWJlcik7CiAKLSAgICBpZiAoVU5MSUtFTFkoaGFzRnVuY3Rpb25PdmVy
cmlkZSkpIHsKLSAgICAgICAgcmVzdWx0LT5vdmVycmlkZVBhcmFtZXRlckFuZFR5cGVQcm9maWxp
bmdTdGFydEVuZE9mZnNldHMoCi0gICAgICAgICAgICBvdmVycmlkZUluZm8ucGFyYW1ldGVyc1N0
YXJ0T2Zmc2V0LAotICAgICAgICAgICAgb3ZlcnJpZGVJbmZvLnR5cGVQcm9maWxpbmdTdGFydE9m
ZnNldCwKLSAgICAgICAgICAgIG92ZXJyaWRlSW5mby50eXBlUHJvZmlsaW5nRW5kT2Zmc2V0KTsK
LSAgICB9CisgICAgaWYgKFVOTElLRUxZKGhhc0Z1bmN0aW9uT3ZlcnJpZGUpKQorICAgICAgICBy
ZXN1bHQtPm92ZXJyaWRlSW5mbyhvdmVycmlkZUluZm8pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V2YWxFeGVjdXRh
YmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V2YWxFeGVjdXRhYmxlLmNw
cAppbmRleCA2ZWQ4Y2NjYjJjNDJlNWM1ZGY2MDQ3ZTQwNzVmMmJkY2ZmMzliNTM1Li4yOGM3Zjc2
YTdhYzgwN2Y0NTQ2NDA1NWU0YTNiNDJjOThjZTRlMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuY3BwCkBAIC0zMSwxMCArMzEsMTAgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBFdmFsRXhlY3V0YWJsZTo6c19p
bmZvID0geyAiRXZhbEV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEV2YWxFeGVjdXRhYmxlKSB9OworY29u
c3QgQ2xhc3NJbmZvIEV2YWxFeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJFdmFsRXhlY3V0YWJsZSIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRXZh
bEV4ZWN1dGFibGUpIH07CiAKIEV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpblN0cmljdENvbnRleHQs
IERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0
aW9uQ29udGV4dCwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSkKLSAgICA6IFNjcmlw
dEV4ZWN1dGFibGUoZXhlYy0+dm0oKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhl
Yy0+dm0oKSwgc291cmNlLCBpblN0cmljdENvbnRleHQsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNB
cnJvd0Z1bmN0aW9uQ29udGV4dCwgZXZhbENvbnRleHRUeXBlLCBOb0ludHJpbnNpYykKKyAgICA6
IEJhc2UoZXhlYy0+dm0oKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhlYy0+dm0o
KSwgc291cmNlLCBpblN0cmljdENvbnRleHQsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNBcnJvd0Z1
bmN0aW9uQ29udGV4dCwgZXZhbENvbnRleHRUeXBlLCBOb0ludHJpbnNpYykKIHsKICAgICBBU1NF
UlQoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZVR5cGUoKSA9PSBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6OlByb2dyYW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXZhbEV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V2
YWxFeGVjdXRhYmxlLmgKaW5kZXggZjk4YjY0NGE3YTEyOWRmMWQ5Yzk1MWNjNWY3ZTMyYjEwYzE1
NzdkYi4uYjljYjc0ZDFhODBjMGZmY2RmMzU2NDdhYWE5ZGFkMjZiZjU2OTFkNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXZhbEV4ZWN1dGFibGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FdmFsRXhlY3V0YWJsZS5oCkBAIC0yNiwxNSAr
MjYsMTUgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZVRvQ29kZUJsb2Nr
RWRnZS5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGFibGUuaCIKKyNpbmNsdWRlICJHbG9iYWxF
eGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRFdmFsQ29kZUJsb2NrLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCi1jbGFzcyBFdmFsRXhlY3V0YWJsZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRh
YmxlIHsKK2NsYXNzIEV2YWxFeGVjdXRhYmxlIDogcHVibGljIEdsb2JhbEV4ZWN1dGFibGUgewog
ICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBwdWJsaWM6Ci0gICAgdHlw
ZWRlZiBTY3JpcHRFeGVjdXRhYmxlIEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEdsb2JhbEV4ZWN1
dGFibGU7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0NlbGwqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkV4ZWN1dGFibGUuY3BwCmluZGV4IDRjOTFjYTJkYjI2NGM4ZTE4ZTFlMjQ1YzVm
MzUxMzA4MTkyNTIyMDIuLmIxYjc3ZjQ2NTYyNmRjOTc4MzY5NmM3ZmMyMWQwYjA0MDk2NGNlYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0
YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVj
dXRhYmxlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiRnVuY3Rpb25Db2RlQmxvY2suaCIKKyNpbmNs
dWRlICJGdW5jdGlvbk92ZXJyaWRlcy5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKICNpbmNsdWRlICJMTEludEVudHJ5cG9pbnQuaCIKQEAgLTQxLDE1ICs0Miwx
NCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uRXhlY3V0YWJs
ZTo6c19pbmZvID0geyAiRnVuY3Rpb25FeGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1dGFibGU6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlvbkV4ZWN1
dGFibGUpIH07CiAKLUZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKFZNJiB2
bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSog
dW5saW5rZWRFeGVjdXRhYmxlLCB1bnNpZ25lZCBsYXN0TGluZSwgdW5zaWduZWQgZW5kQ29sdW1u
LCBJbnRyaW5zaWMgaW50cmluc2ljKQorc3RhdGljX2Fzc2VydChzaXplb2YoRnVuY3Rpb25FeGVj
dXRhYmxlKSA8PSAxMjgsICJGdW5jdGlvbkV4ZWN1dGFibGUgc2hvdWxkIGZpdCBpbiBhIDEyOC1i
eXRlIGNlbGwgc2luY2UgaXQgaXMgc28gZnJlcXVlbnRseSBhbGxvY2F0ZWQuIik7CisKK0Z1bmN0
aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKFZNJiB2bSwgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlLCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogdW5saW5rZWRFeGVjdXRhYmxl
LCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIDogU2NyaXB0RXhlY3V0YWJsZSh2bS5mdW5jdGlv
bkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIHZtLCBzb3VyY2UsIHVubGlua2VkRXhlY3V0YWJs
ZS0+aXNJblN0cmljdENvbnRleHQoKSwgdW5saW5rZWRFeGVjdXRhYmxlLT5kZXJpdmVkQ29udGV4
dFR5cGUoKSwgZmFsc2UsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgaW50cmluc2ljKQogICAgICwg
bV91bmxpbmtlZEV4ZWN1dGFibGUodm0sIHRoaXMsIHVubGlua2VkRXhlY3V0YWJsZSkKIHsKICAg
ICBSRUxFQVNFX0FTU0VSVCghc291cmNlLmlzTnVsbCgpKTsKICAgICBBU1NFUlQoc291cmNlLmxl
bmd0aCgpKTsKLSAgICBtX2xhc3RMaW5lID0gbGFzdExpbmU7Ci0gICAgQVNTRVJUKGVuZENvbHVt
biAhPSBVSU5UX01BWCk7Ci0gICAgbV9lbmRDb2x1bW4gPSBlbmRDb2x1bW47CiAgICAgaWYgKFZN
OjpjYW5Vc2VKSVQoKSkKICAgICAgICAgbmV3ICgmbV9zaW5nbGV0b25GdW5jdGlvbikgV3JpdGVC
YXJyaWVyPEluZmVycmVkVmFsdWU+KCk7CiAgICAgZWxzZQpAQCAtMTExLDExICsxMTEsMjUgQEAg
RnVuY3Rpb25FeGVjdXRhYmxlKiBGdW5jdGlvbkV4ZWN1dGFibGU6OmZyb21HbG9iYWxDb2RlKAog
RnVuY3Rpb25FeGVjdXRhYmxlOjpSYXJlRGF0YSYgRnVuY3Rpb25FeGVjdXRhYmxlOjplbnN1cmVS
YXJlRGF0YVNsb3coKQogewogICAgIEFTU0VSVCghbV9yYXJlRGF0YSk7Ci0gICAgbV9yYXJlRGF0
YSA9IHN0ZDo6bWFrZV91bmlxdWU8UmFyZURhdGE+KCk7Ci0gICAgbV9yYXJlRGF0YS0+bV9wYXJh
bWV0ZXJzU3RhcnRPZmZzZXQgPSBtX3VubGlua2VkRXhlY3V0YWJsZS0+cGFyYW1ldGVyc1N0YXJ0
T2Zmc2V0KCk7Ci0gICAgbV9yYXJlRGF0YS0+bV90eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQgPSBt
X3VubGlua2VkRXhlY3V0YWJsZS0+dHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0KCk7Ci0gICAgbV9y
YXJlRGF0YS0+bV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0ID0gbV91bmxpbmtlZEV4ZWN1dGFibGUt
PnR5cGVQcm9maWxpbmdFbmRPZmZzZXQoKTsKKyAgICBhdXRvIHJhcmVEYXRhID0gc3RkOjptYWtl
X3VuaXF1ZTxSYXJlRGF0YT4oKTsKKyAgICByYXJlRGF0YS0+bV9saW5lQ291bnQgPSBsaW5lQ291
bnQoKTsKKyAgICByYXJlRGF0YS0+bV9lbmRDb2x1bW4gPSBlbmRDb2x1bW4oKTsKKyAgICByYXJl
RGF0YS0+bV9wYXJhbWV0ZXJzU3RhcnRPZmZzZXQgPSBwYXJhbWV0ZXJzU3RhcnRPZmZzZXQoKTsK
KyAgICByYXJlRGF0YS0+bV90eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQgPSB0eXBlUHJvZmlsaW5n
U3RhcnRPZmZzZXQoKTsKKyAgICByYXJlRGF0YS0+bV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0ID0g
dHlwZVByb2ZpbGluZ0VuZE9mZnNldCgpOworICAgIG1fcmFyZURhdGEgPSBXVEZNb3ZlKHJhcmVE
YXRhKTsKICAgICByZXR1cm4gKm1fcmFyZURhdGE7CiB9CiAKK3ZvaWQgRnVuY3Rpb25FeGVjdXRh
YmxlOjpvdmVycmlkZUluZm8oY29uc3QgRnVuY3Rpb25PdmVycmlkZUluZm8mIG92ZXJyaWRlSW5m
bykKK3sKKyAgICBhdXRvJiByYXJlRGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7CisgICAgbV9zb3Vy
Y2UgPSBvdmVycmlkZUluZm8uc291cmNlQ29kZTsKKyAgICByYXJlRGF0YS5tX2xpbmVDb3VudCA9
IG92ZXJyaWRlSW5mby5saW5lQ291bnQ7CisgICAgcmFyZURhdGEubV9lbmRDb2x1bW4gPSBvdmVy
cmlkZUluZm8uZW5kQ29sdW1uOworICAgIHJhcmVEYXRhLm1fcGFyYW1ldGVyc1N0YXJ0T2Zmc2V0
ID0gb3ZlcnJpZGVJbmZvLnBhcmFtZXRlcnNTdGFydE9mZnNldDsKKyAgICByYXJlRGF0YS5tX3R5
cGVQcm9maWxpbmdTdGFydE9mZnNldCA9IG92ZXJyaWRlSW5mby50eXBlUHJvZmlsaW5nU3RhcnRP
ZmZzZXQ7CisgICAgcmFyZURhdGEubV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0ID0gb3ZlcnJpZGVJ
bmZvLnR5cGVQcm9maWxpbmdFbmRPZmZzZXQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaApp
bmRleCAzY2QxNTg4YmVhYjk4OTBhZjg4ODg1NDMzNjhhOTA1N2MzZTNiYWQwLi43Y2ZlZGJkMmY0
OWE3ZmYyOTY2ODI3Y2JlMGE0NDE5MDAwMzU3ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMzMsNiArMzMsOCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAorc3RydWN0IEZ1bmN0aW9uT3ZlcnJpZGVJbmZvOworCiBjbGFz
cyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiAg
ICAgZnJpZW5kIGNsYXNzIEpJVDsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFj
dG9yOwpAQCAtNDYsMTEgKzQ4LDkgQEAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDog
cHVibGljIFNjcmlwdEV4ZWN1dGFibGUgewogICAgICAgICByZXR1cm4gJnZtLmZ1bmN0aW9uRXhl
Y3V0YWJsZVNwYWNlLnNwYWNlOwogICAgIH0KIAotICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFi
bGUqIGNyZWF0ZSgKLSAgICAgICAgVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB1bmxpbmtlZEV4ZWN1dGFibGUsIAotICAgICAgICB1
bnNpZ25lZCBsYXN0TGluZSwgdW5zaWduZWQgZW5kQ29sdW1uLCBJbnRyaW5zaWMgaW50cmluc2lj
KQorICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIHVubGlua2VkRXhl
Y3V0YWJsZSwgSW50cmluc2ljIGludHJpbnNpYykKICAgICB7Ci0gICAgICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEZ1bmN0aW9u
RXhlY3V0YWJsZT4odm0uaGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZSh2bSwgc291cmNlLCB1bmxp
bmtlZEV4ZWN1dGFibGUsIGxhc3RMaW5lLCBlbmRDb2x1bW4sIGludHJpbnNpYyk7CisgICAgICAg
IEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPEZ1bmN0aW9uRXhlY3V0YWJsZT4odm0uaGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZSh2bSwg
c291cmNlLCB1bmxpbmtlZEV4ZWN1dGFibGUsIGludHJpbnNpYyk7CiAgICAgICAgIGV4ZWN1dGFi
bGUtPmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAg
fQpAQCAtMTkwLDcgKzE5MCwzNiBAQCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAg
ICAgfQogCisgICAgaW50IGxpbmVDb3VudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoVU5M
SUtFTFkobV9yYXJlRGF0YSkpCisgICAgICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+bV9saW5l
Q291bnQ7CisgICAgICAgIHJldHVybiBtX3VubGlua2VkRXhlY3V0YWJsZS0+bGluZUNvdW50KCk7
CisgICAgfQorCisgICAgaW50IGVuZENvbHVtbigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAo
VU5MSUtFTFkobV9yYXJlRGF0YSkpCisgICAgICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+bV9l
bmRDb2x1bW47CisgICAgICAgIHJldHVybiBtX3VubGlua2VkRXhlY3V0YWJsZS0+bGlua2VkRW5k
Q29sdW1uKG1fc291cmNlLnN0YXJ0Q29sdW1uKCkub25lQmFzZWRJbnQoKSk7CisgICAgfQorCisg
ICAgaW50IGZpcnN0TGluZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc291cmNlKCku
Zmlyc3RMaW5lKCkub25lQmFzZWRJbnQoKTsKKyAgICB9CisKKyAgICBpbnQgbGFzdExpbmUoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpcnN0TGluZSgpICsgbGluZUNvdW50KCk7Cisg
ICAgfQorCiAgICAgdW5zaWduZWQgdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0KFZNJikgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiB0eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQoKTsKKyAgICB9
CisKKyAgICB1bnNpZ25lZCB0eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgaWYgKFVOTElLRUxZKG1fcmFyZURhdGEpKQogICAgICAgICAgICAgcmV0dXJuIG1f
cmFyZURhdGEtPm1fdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0OwpAQCAtMTk4LDYgKzIyNywxMSBA
QCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJs
ZSB7CiAgICAgfQogCiAgICAgdW5zaWduZWQgdHlwZVByb2ZpbGluZ0VuZE9mZnNldChWTSYpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gdHlwZVByb2ZpbGluZ0VuZE9mZnNldCgpOworICAg
IH0KKworICAgIHVuc2lnbmVkIHR5cGVQcm9maWxpbmdFbmRPZmZzZXQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgaWYgKFVOTElLRUxZKG1fcmFyZURhdGEpKQogICAgICAgICAgICAgcmV0dXJuIG1f
cmFyZURhdGEtPm1fdHlwZVByb2ZpbGluZ0VuZE9mZnNldDsKQEAgLTIxMSwxMyArMjQ1LDcgQEAg
Y2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIFNjcmlwdEV4ZWN1dGFibGUg
ewogICAgICAgICByZXR1cm4gbV91bmxpbmtlZEV4ZWN1dGFibGUtPnBhcmFtZXRlcnNTdGFydE9m
ZnNldCgpOwogICAgIH0KIAotICAgIHZvaWQgb3ZlcnJpZGVQYXJhbWV0ZXJBbmRUeXBlUHJvZmls
aW5nU3RhcnRFbmRPZmZzZXRzKHVuc2lnbmVkIHBhcmFtZXRlcnNTdGFydE9mZnNldCwgdW5zaWdu
ZWQgdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0LCB1bnNpZ25lZCB0eXBlUHJvZmlsaW5nRW5kT2Zm
c2V0KQotICAgIHsKLSAgICAgICAgYXV0byYgcmFyZURhdGEgPSBlbnN1cmVSYXJlRGF0YSgpOwot
ICAgICAgICByYXJlRGF0YS5tX3BhcmFtZXRlcnNTdGFydE9mZnNldCA9IHBhcmFtZXRlcnNTdGFy
dE9mZnNldDsKLSAgICAgICAgcmFyZURhdGEubV90eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQgPSB0
eXBlUHJvZmlsaW5nU3RhcnRPZmZzZXQ7Ci0gICAgICAgIHJhcmVEYXRhLm1fdHlwZVByb2ZpbGlu
Z0VuZE9mZnNldCA9IHR5cGVQcm9maWxpbmdFbmRPZmZzZXQ7Ci0gICAgfQorICAgIHZvaWQgb3Zl
cnJpZGVJbmZvKGNvbnN0IEZ1bmN0aW9uT3ZlcnJpZGVJbmZvJik7CiAKICAgICBERUNMQVJFX0lO
Rk87CiAKQEAgLTI2OCw5ICsyOTYsNyBAQCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwg
OiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IEV4ZWN1dGFibGVCYXNlOwotICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSgKLSAgICAgICAgVk0mLCBj
b25zdCBTb3VyY2VDb2RlJiwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqLAotICAgICAgICB1
bnNpZ25lZCBsYXN0TGluZSwgdW5zaWduZWQgZW5kQ29sdW1uLCBJbnRyaW5zaWMpOworICAgIEZ1
bmN0aW9uRXhlY3V0YWJsZShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSosIEludHJpbnNpYyk7CiAgICAgCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYpOwogCkBAIC0yNzgsMTEgKzMwNCwxMyBAQCBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGUgZmlu
YWwgOiBwdWJsaWMgU2NyaXB0RXhlY3V0YWJsZSB7CiAKICAgICBzdHJ1Y3QgUmFyZURhdGEgewog
ICAgICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgICAgIFJlZlB0cjxU
eXBlU2V0PiBtX3JldHVyblN0YXRlbWVudFR5cGVTZXQ7CisgICAgICAgIHVuc2lnbmVkIG1fbGlu
ZUNvdW50OworICAgICAgICB1bnNpZ25lZCBtX2VuZENvbHVtbjsKICAgICAgICAgTWFya2FibGU8
aW50LCBJbnRlZ3JhbE1hcmthYmxlVHJhaXRzPGludCwgLTE+PiBtX292ZXJyaWRlTGluZU51bWJl
cjsKICAgICAgICAgdW5zaWduZWQgbV9wYXJhbWV0ZXJzU3RhcnRPZmZzZXQgeyAwIH07CiAgICAg
ICAgIHVuc2lnbmVkIG1fdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0IHsgVUlOVF9NQVggfTsKICAg
ICAgICAgdW5zaWduZWQgbV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0IHsgVUlOVF9NQVggfTsKLSAg
ICAgICAgUmVmUHRyPFR5cGVTZXQ+IG1fcmV0dXJuU3RhdGVtZW50VHlwZVNldDsKICAgICB9Owog
CiAgICAgUmFyZURhdGEmIGVuc3VyZVJhcmVEYXRhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvR2xvYmFsRXhlY3V0YWJsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBkZmU3NmU0
NTEyOTkxMDUxOWEyNjdkMmE4YzI0NjM5Y2Y4OTY4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUuY3BwCkBAIC0wLDAgKzEs
MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdsb2JhbEV4ZWN1dGFibGUuaCIKKworbmFtZXNw
YWNlIEpTQyB7CisKK2NvbnN0IENsYXNzSW5mbyBHbG9iYWxFeGVjdXRhYmxlOjpzX2luZm8gPSB7
ICJHbG9iYWxFeGVjdXRhYmxlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShHbG9iYWxFeGVjdXRhYmxlKSB9OworCit9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4ZWN1
dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dsb2JhbEV4ZWN1dGFibGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMjQwNDcwNWFlOTFhYTcyZTlkYzIzZmE0YmI4ZjY0ZjAwODRkMDIyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXhl
Y3V0YWJsZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkV4ZWN1dGFibGVUb0Nv
ZGVCbG9ja0VkZ2UuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRhYmxlLmgiCisKK25hbWVzcGFj
ZSBKU0MgeworCitjbGFzcyBHbG9iYWxFeGVjdXRhYmxlIDogcHVibGljIFNjcmlwdEV4ZWN1dGFi
bGUgeworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBTY3JpcHRFeGVjdXRhYmxlOworICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHVuc2ln
bmVkIGxhc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGluZTsgfQorICAgIHVuc2lnbmVk
IGVuZENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kQ29sdW1uOyB9CisKKyAgICB2b2lkIHJl
Y29yZFBhcnNlKENvZGVGZWF0dXJlcyBmZWF0dXJlcywgYm9vbCBoYXNDYXB0dXJlZFZhcmlhYmxl
cywgaW50IGxhc3RMaW5lLCB1bnNpZ25lZCBlbmRDb2x1bW4pCisgICAgeworICAgICAgICBCYXNl
OjpyZWNvcmRQYXJzZShmZWF0dXJlcywgaGFzQ2FwdHVyZWRWYXJpYWJsZXMpOworICAgICAgICBt
X2xhc3RMaW5lID0gbGFzdExpbmU7CisgICAgICAgIG1fZW5kQ29sdW1uID0gZW5kQ29sdW1uOwor
ICAgICAgICBBU1NFUlQoZW5kQ29sdW1uICE9IFVJTlRfTUFYKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBHbG9iYWxFeGVjdXRhYmxlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBWTSYgdm0sIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGJvb2wgaXNJblN0cmljdENvbnRleHQsIERlcml2
ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIGJvb2wgaXNJbkFycm93RnVuY3Rpb25D
b250ZXh0LCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBJbnRyaW5zaWMgaW50cmlu
c2ljKQorICAgICAgICA6IEJhc2Uoc3RydWN0dXJlLCB2bSwgc291cmNlQ29kZSwgaXNJblN0cmlj
dENvbnRleHQsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNJbkFycm93RnVuY3Rpb25Db250ZXh0LCBl
dmFsQ29udGV4dFR5cGUsIGludHJpbnNpYykKKyAgICB7CisgICAgfQorCisgICAgaW50IG1fbGFz
dExpbmUgeyAtMSB9OworICAgIHVuc2lnbmVkIG1fZW5kQ29sdW1uIHsgVUlOVF9NQVggfTsKK307
CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuY3BwCmluZGV4IGFlZjNmYWIxNWU3
NTEzNDAwZWU5ZTIxNTkwM2JmNDlmOGVmMmIyZjcuLjIzMmI0MTg4NzJiODdjODI3OWE5NTE1MTlh
Njc3YmYyZmM1ZTI2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgQ2xhc3NJbmZvIE1vZHVsZVByb2dyYW1FeGVjdXRh
YmxlOjpzX2luZm8gPSB7ICJNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXRh
YmxlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoTW9kdWxl
UHJvZ3JhbUV4ZWN1dGFibGUpIH07Citjb25zdCBDbGFzc0luZm8gTW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGU6OnNfaW5mbyA9IHsgIk1vZHVsZVByb2dyYW1FeGVjdXRhYmxlIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShNb2R1bGVQcm9ncmFtRXhl
Y3V0YWJsZSkgfTsKIAogTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGU6Ok1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQotICAgIDog
U2NyaXB0RXhlY3V0YWJsZShleGVjLT52bSgpLm1vZHVsZVByb2dyYW1FeGVjdXRhYmxlU3RydWN0
dXJlLmdldCgpLCBleGVjLT52bSgpLCBzb3VyY2UsIGZhbHNlLCBEZXJpdmVkQ29udGV4dFR5cGU6
Ok5vbmUsIGZhbHNlLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsIE5vSW50cmluc2ljKQorICAgIDog
QmFzZShleGVjLT52bSgpLm1vZHVsZVByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBl
eGVjLT52bSgpLCBzb3VyY2UsIGZhbHNlLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsIGZhbHNl
LCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsIE5vSW50cmluc2ljKQogewogICAgIEFTU0VSVChzb3Vy
Y2UucHJvdmlkZXIoKS0+c291cmNlVHlwZSgpID09IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6
TW9kdWxlKTsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmgKaW5kZXggZmY4
MmMyODRhOTAwMTNlZTU2MWM5YjMwYjcwYzBlMzcwMTJjNDZjZi4uNmQzNTViN2JkNmI5Zjk4ZWY3
ZDZjOTA5MmIzMjI1MWJmMDc5YmU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5oCkBAIC0yNiwxNCArMjYsMTQg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZS5o
IgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGFibGUuaCIKKyNpbmNsdWRlICJHbG9iYWxFeGVjdXRh
YmxlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBNb2R1bGVQcm9ncmFtRXhlY3V0YWJs
ZSBmaW5hbCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRhYmxlIHsKK2NsYXNzIE1vZHVsZVByb2dyYW1F
eGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEdsb2JhbEV4ZWN1dGFibGUgewogICAgIGZyaWVuZCBj
bGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBTY3JpcHRF
eGVjdXRhYmxlIEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEdsb2JhbEV4ZWN1dGFibGU7CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5
cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5jcHAKaW5kZXggMzU3OGQyYWIwZjdiZmVlODI1NjI1
OGQwZTZkNzc5NzIyZmI5ZGE1ZS4uMjE2MjNiYjQxYzVkZDRjMDJlNTA1OWY2ZDM0ZmQwZjhjMmM0
OTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3JhbUV4
ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dyYW1F
eGVjdXRhYmxlLmNwcApAQCAtNDEsMTAgKzQxLDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1j
b25zdCBDbGFzc0luZm8gUHJvZ3JhbUV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIlByb2dyYW1FeGVj
dXRhYmxlIiwgJlNjcmlwdEV4ZWN1dGFibGU6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShQcm9ncmFtRXhlY3V0YWJsZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBQ
cm9ncmFtRXhlY3V0YWJsZTo6c19pbmZvID0geyAiUHJvZ3JhbUV4ZWN1dGFibGUiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFByb2dyYW1FeGVj
dXRhYmxlKSB9OwogCiBQcm9ncmFtRXhlY3V0YWJsZTo6UHJvZ3JhbUV4ZWN1dGFibGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCi0gICAgOiBTY3JpcHRFeGVjdXRh
YmxlKGV4ZWMtPnZtKCkucHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMtPnZt
KCksIHNvdXJjZSwgZmFsc2UsIERlcml2ZWRDb250ZXh0VHlwZTo6Tm9uZSwgZmFsc2UsIEV2YWxD
b250ZXh0VHlwZTo6Tm9uZSwgTm9JbnRyaW5zaWMpCisgICAgOiBCYXNlKGV4ZWMtPnZtKCkucHJv
Z3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMtPnZtKCksIHNvdXJjZSwgZmFsc2Us
IERlcml2ZWRDb250ZXh0VHlwZTo6Tm9uZSwgZmFsc2UsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwg
Tm9JbnRyaW5zaWMpCiB7CiAgICAgQVNTRVJUKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VUeXBl
KCkgPT0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKTsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
Z3JhbUV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dyYW1F
eGVjdXRhYmxlLmgKaW5kZXggYTFlY2QyMWUwMTAwZmZmN2U3MjU2YTlkNWM3NDY2NThlNDIzMTMw
ZC4uNjA1MTE2NzliZjJjOTM3NjhhOGFjZjY2NGIyODViZGM2MDdiZWQ0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvZ3JhbUV4ZWN1dGFibGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5oCkBAIC0yNiwx
NCArMjYsMTQgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhlY3V0YWJsZVRvQ29kZUJs
b2NrRWRnZS5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGFibGUuaCIKKyNpbmNsdWRlICJHbG9i
YWxFeGVjdXRhYmxlLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBQcm9ncmFtRXhlY3V0
YWJsZSBmaW5hbCA6IHB1YmxpYyBTY3JpcHRFeGVjdXRhYmxlIHsKK2NsYXNzIFByb2dyYW1FeGVj
dXRhYmxlIGZpbmFsIDogcHVibGljIEdsb2JhbEV4ZWN1dGFibGUgewogICAgIGZyaWVuZCBjbGFz
cyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBTY3JpcHRFeGVj
dXRhYmxlIEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEdsb2JhbEV4ZWN1dGFibGU7CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3Mg
fCBTdHJ1Y3R1cmVJc0ltbW9ydGFsOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUs
IFN1YnNwYWNlQWNjZXNzPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2NyaXB0RXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
Y3JpcHRFeGVjdXRhYmxlLmNwcAppbmRleCA0ZTFlZjlhNmQ4Y2RmN2RiODI1OTQ4Y2NiZjhiN2Q4
ZDUxNmJlM2MzLi4wYWFlMmVlYzUxNDYxZjM1NWU2Yjc3N2EzOWFiYTcyZWVlNGQ1NzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXZh
bENvZGVCbG9jay5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAi
R2xvYmFsRXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIklzb0NlbGxTZXRJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpAQCAtNjgsMTQgKzY5LDEwIEBA
IHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAKIHZvaWQgU2Ny
aXB0RXhlY3V0YWJsZTo6Y2xlYXJDb2RlKElzb0NlbGxTZXQmIGNsZWFyYWJsZUNvZGVTZXQpCiB7
Ci0jaWYgRU5BQkxFKEpJVCkKICAgICBtX2ppdENvZGVGb3JDYWxsID0gbnVsbHB0cjsKICAgICBt
X2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBudWxscHRyOwogICAgIG1faml0Q29kZUZvckNhbGxXaXRo
QXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPigpOwogICAg
IG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+KCk7Ci0jZW5kaWYKLSAgICBtX251bVBhcmFtZXRlcnNGb3JDYWxs
ID0gTlVNX1BBUkFNRVRFUlNfTk9UX0NPTVBJTEVEOwotICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNv
bnN0cnVjdCA9IE5VTV9QQVJBTUVURVJTX05PVF9DT01QSUxFRDsKIAogICAgIHN3aXRjaCAodHlw
ZSgpKSB7CiAgICAgY2FzZSBGdW5jdGlvbkV4ZWN1dGFibGVUeXBlOiB7CkBAIC0xODAsMTIgKzE3
NywxMCBAQCB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6Omluc3RhbGxDb2RlKFZNJiB2bSwgQ29kZUJs
b2NrKiBnZW5lcmljQ29kZUJsb2NrLCBDb2RlVHlwZQogICAgIGNhc2UgQ29kZUZvckNhbGw6CiAg
ICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2NrID8gZ2VuZXJpY0NvZGVC
bG9jay0+aml0Q29kZSgpIDogbnVsbHB0cjsKICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhB
cml0eUNoZWNrID0gbnVsbHB0cjsKLSAgICAgICAgbV9udW1QYXJhbWV0ZXJzRm9yQ2FsbCA9IGdl
bmVyaWNDb2RlQmxvY2sgPyBnZW5lcmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgOiBOVU1f
UEFSQU1FVEVSU19OT1RfQ09NUElMRUQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29kZUZv
ckNvbnN0cnVjdDoKICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gZ2VuZXJpY0NvZGVC
bG9jayA/IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGUoKSA6IG51bGxwdHI7CiAgICAgICAgIG1f
aml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrID0gbnVsbHB0cjsKLSAgICAgICAgbV9u
dW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0ID0gZ2VuZXJpY0NvZGVCbG9jayA/IGdlbmVyaWNDb2Rl
QmxvY2stPm51bVBhcmFtZXRlcnMoKSA6IE5VTV9QQVJBTUVURVJTX05PVF9DT01QSUxFRDsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0yMTgsMTMgKzIxMywxMSBAQCB2b2lkIFNjcmlwdEV4
ZWN1dGFibGU6Omluc3RhbGxDb2RlKFZNJiB2bSwgQ29kZUJsb2NrKiBnZW5lcmljQ29kZUJsb2Nr
LCBDb2RlVHlwZQogCiBib29sIFNjcmlwdEV4ZWN1dGFibGU6Omhhc0NsZWFyYWJsZUNvZGUoVk0m
IHZtKSBjb25zdAogewotI2lmIEVOQUJMRShKSVQpCiAgICAgaWYgKG1faml0Q29kZUZvckNhbGwK
ICAgICAgICAgfHwgbV9qaXRDb2RlRm9yQ29uc3RydWN0CiAgICAgICAgIHx8IG1faml0Q29kZUZv
ckNhbGxXaXRoQXJpdHlDaGVjawogICAgICAgICB8fCBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRo
QXJpdHlDaGVjaykKICAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKIAogICAgIGlmIChzdHJ1
Y3R1cmUodm0pLT5jbGFzc0luZm8oKSA9PSBGdW5jdGlvbkV4ZWN1dGFibGU6OmluZm8oKSkgewog
ICAgICAgICBhdXRvKiBleGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRnVuY3Rpb25FeGVj
dXRhYmxlKj4odGhpcyk7CkBAIC0zMjIsNyArMzE1LDcgQEAgQ29kZUJsb2NrKiBTY3JpcHRFeGVj
dXRhYmxlOjpuZXdDb2RlQmxvY2tGb3IoCiAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9
IGdsb2JhbE9iamVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERl
YnVnZ2VyT2ZmOwogICAgIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJs
b2NrID0gCiAgICAgICAgIGV4ZWN1dGFibGUtPm1fdW5saW5rZWRFeGVjdXRhYmxlLT51bmxpbmtl
ZENvZGVCbG9ja0ZvcigKLSAgICAgICAgICAgICp2bSwgZXhlY3V0YWJsZS0+bV9zb3VyY2UsIGtp
bmQsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIAorICAgICAgICAgICAgKnZtLCBleGVjdXRhYmxlLT5z
b3VyY2UoKSwga2luZCwgZGVidWdnZXJNb2RlLCBlcnJvciwgCiAgICAgICAgICAgICBleGVjdXRh
YmxlLT5wYXJzZU1vZGUoKSk7CiAgICAgcmVjb3JkUGFyc2UoCiAgICAgICAgIGV4ZWN1dGFibGUt
Pm1fdW5saW5rZWRFeGVjdXRhYmxlLT5mZWF0dXJlcygpLCAKQEAgLTMzMSw3ICszMjQsNyBAQCBD
b2RlQmxvY2sqIFNjcmlwdEV4ZWN1dGFibGU6Om5ld0NvZGVCbG9ja0ZvcigKICAgICBpZiAoIXVu
bGlua2VkQ29kZUJsb2NrKSB7CiAgICAgICAgIGV4Y2VwdGlvbiA9IHRocm93RXhjZXB0aW9uKAog
ICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIHRocm93U2NvcGUsCi0gICAg
ICAgICAgICBlcnJvci50b0Vycm9yT2JqZWN0KGdsb2JhbE9iamVjdCwgZXhlY3V0YWJsZS0+bV9z
b3VyY2UpKTsKKyAgICAgICAgICAgIGVycm9yLnRvRXJyb3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBl
eGVjdXRhYmxlLT5zb3VyY2UoKSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
QEAgLTQ1OSw3ICs0NTIsNDIgQEAgdW5zaWduZWQgU2NyaXB0RXhlY3V0YWJsZTo6dHlwZVByb2Zp
bGluZ0VuZE9mZnNldChWTSYgdm0pIGNvbnN0CiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3Qg
RnVuY3Rpb25FeGVjdXRhYmxlKj4odGhpcyktPnR5cGVQcm9maWxpbmdFbmRPZmZzZXQodm0pOwog
ICAgIGlmIChpbmhlcml0czxFdmFsRXhlY3V0YWJsZT4odm0pKQogICAgICAgICByZXR1cm4gVUlO
VF9NQVg7Ci0gICAgcmV0dXJuIG1fc291cmNlLmxlbmd0aCgpIC0gMTsKKyAgICByZXR1cm4gc291
cmNlKCkubGVuZ3RoKCkgLSAxOworfQorCit2b2lkIFNjcmlwdEV4ZWN1dGFibGU6OnJlY29yZFBh
cnNlKENvZGVGZWF0dXJlcyBmZWF0dXJlcywgYm9vbCBoYXNDYXB0dXJlZFZhcmlhYmxlcywgaW50
IGxhc3RMaW5lLCB1bnNpZ25lZCBlbmRDb2x1bW4pCit7CisgICAgc3dpdGNoICh0eXBlKCkpIHsK
KyAgICBjYXNlIEZ1bmN0aW9uRXhlY3V0YWJsZVR5cGU6CisgICAgICAgIC8vIFNpbmNlIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlIGhvbGRzIHRoZSBpbmZvcm1hdGlvbiB0byBjYWxjdWxhdGUg
bGFzdExpbmUgYW5kIGVuZENvbHVtbiwgd2UgZG8gbm90IG5lZWQgdG8gcmVtZW1iZXIgdGhlbSBp
biBTY3JpcHRFeGVjdXRhYmxlJ3MgZmllbGRzLgorICAgICAgICBqc0Nhc3Q8RnVuY3Rpb25FeGVj
dXRhYmxlKj4odGhpcyktPnJlY29yZFBhcnNlKGZlYXR1cmVzLCBoYXNDYXB0dXJlZFZhcmlhYmxl
cyk7CisgICAgICAgIHJldHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgICBqc0Nhc3Q8R2xvYmFs
RXhlY3V0YWJsZSo+KHRoaXMpLT5yZWNvcmRQYXJzZShmZWF0dXJlcywgaGFzQ2FwdHVyZWRWYXJp
YWJsZXMsIGxhc3RMaW5lLCBlbmRDb2x1bW4pOworICAgICAgICByZXR1cm47CisgICAgfQorfQor
CitpbnQgU2NyaXB0RXhlY3V0YWJsZTo6bGFzdExpbmUoKSBjb25zdAoreworICAgIHN3aXRjaCAo
dHlwZSgpKSB7CisgICAgY2FzZSBGdW5jdGlvbkV4ZWN1dGFibGVUeXBlOgorICAgICAgICByZXR1
cm4ganNDYXN0PGNvbnN0IEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHRoaXMpLT5sYXN0TGluZSgpOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgR2xvYmFsRXhlY3V0YWJs
ZSo+KHRoaXMpLT5sYXN0TGluZSgpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwordW5zaWdu
ZWQgU2NyaXB0RXhlY3V0YWJsZTo6ZW5kQ29sdW1uKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHR5
cGUoKSkgeworICAgIGNhc2UgRnVuY3Rpb25FeGVjdXRhYmxlVHlwZToKKyAgICAgICAgcmV0dXJu
IGpzQ2FzdDxjb25zdCBGdW5jdGlvbkV4ZWN1dGFibGUqPih0aGlzKS0+ZW5kQ29sdW1uKCk7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBHbG9iYWxFeGVjdXRhYmxl
Kj4odGhpcyktPmVuZENvbHVtbigpOworICAgIH0KKyAgICByZXR1cm4gMDsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
Y3JpcHRFeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRF
eGVjdXRhYmxlLmgKaW5kZXggYmMzMzkyNDZjOGMwYTliOWFiYjViZDE5OTk0MWJiMzM1OWYwOTAx
My4uNDYyZGI4MGI3NTcwYjkzMDYwNDRiN2NmYWZiNjIyZDdlYTBiMzJlZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaApAQCAtNDUsOSAr
NDUsOSBAQCBjbGFzcyBTY3JpcHRFeGVjdXRhYmxlIDogcHVibGljIEV4ZWN1dGFibGVCYXNlIHsK
ICAgICBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdpbigpOyB9CiAgICAgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcigpLT51cmwoKTsgfQog
ICAgIGludCBmaXJzdExpbmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5maXJzdExpbmUoKS5v
bmVCYXNlZEludCgpOyB9Ci0gICAgaW50IGxhc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
TGluZTsgfQorICAgIEpTX0VYUE9SVF9QUklWQVRFIGludCBsYXN0TGluZSgpIGNvbnN0OwogICAg
IHVuc2lnbmVkIHN0YXJ0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uuc3RhcnRDb2x1
bW4oKS5vbmVCYXNlZEludCgpOyB9Ci0gICAgdW5zaWduZWQgZW5kQ29sdW1uKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmRDb2x1bW47IH0KKyAgICBKU19FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBlbmRD
b2x1bW4oKSBjb25zdDsKIAogICAgIE9wdGlvbmFsPGludD4gb3ZlcnJpZGVMaW5lTnVtYmVyKFZN
JikgY29uc3Q7CiAgICAgdW5zaWduZWQgdHlwZVByb2ZpbGluZ1N0YXJ0T2Zmc2V0KFZNJikgY29u
c3Q7CkBAIC04MSwxNSArODEsNyBAQCBjbGFzcyBTY3JpcHRFeGVjdXRhYmxlIDogcHVibGljIEV4
ZWN1dGFibGVCYXNlIHsKICAgICAgICAgCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAotICAg
IHZvaWQgcmVjb3JkUGFyc2UoQ29kZUZlYXR1cmVzIGZlYXR1cmVzLCBib29sIGhhc0NhcHR1cmVk
VmFyaWFibGVzLCBpbnQgbGFzdExpbmUsIHVuc2lnbmVkIGVuZENvbHVtbikKLSAgICB7Ci0gICAg
ICAgIG1fZmVhdHVyZXMgPSBmZWF0dXJlczsKLSAgICAgICAgbV9oYXNDYXB0dXJlZFZhcmlhYmxl
cyA9IGhhc0NhcHR1cmVkVmFyaWFibGVzOwotICAgICAgICBtX2xhc3RMaW5lID0gbGFzdExpbmU7
Ci0gICAgICAgIEFTU0VSVChlbmRDb2x1bW4gIT0gVUlOVF9NQVgpOwotICAgICAgICBtX2VuZENv
bHVtbiA9IGVuZENvbHVtbjsKLSAgICB9Ci0KKyAgICB2b2lkIHJlY29yZFBhcnNlKENvZGVGZWF0
dXJlcywgYm9vbCBoYXNDYXB0dXJlZFZhcmlhYmxlcywgaW50IGxhc3RMaW5lLCB1bnNpZ25lZCBl
bmRDb2x1bW4pOwogICAgIHZvaWQgaW5zdGFsbENvZGUoQ29kZUJsb2NrKik7CiAgICAgdm9pZCBp
bnN0YWxsQ29kZShWTSYsIENvZGVCbG9jayosIENvZGVUeXBlLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kKTsKICAgICBDb2RlQmxvY2sqIG5ld0NvZGVCbG9ja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25L
aW5kLCBKU0Z1bmN0aW9uKiwgSlNTY29wZSosIEV4Y2VwdGlvbiomKTsKQEAgLTEwMiwxNSArOTQs
MTMgQEAgY2xhc3MgU2NyaXB0RXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CiAg
ICAgICAgIHJldHVybiBtX2ludHJpbnNpYzsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3RleHBy
IGludCBOVU1fUEFSQU1FVEVSU19OT1RfQ09NUElMRUQgPSAtMTsKLQogICAgIGJvb2wgaGFzSklU
Q29kZUZvckNhbGwoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbnVtUGFyYW1ldGVy
c0ZvckNhbGwgPj0gMDsKKyAgICAgICAgcmV0dXJuIG1faml0Q29kZUZvckNhbGw7CiAgICAgfQog
ICAgIGJvb2wgaGFzSklUQ29kZUZvckNvbnN0cnVjdCgpIGNvbnN0CiAgICAgewotICAgICAgICBy
ZXR1cm4gbV9udW1QYXJhbWV0ZXJzRm9yQ29uc3RydWN0ID49IDA7CisgICAgICAgIHJldHVybiBt
X2ppdENvZGVGb3JDb25zdHJ1Y3Q7CiAgICAgfQogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBoYXMg
YW4gaW50ZXJlc3RpbmcgR0Mgc3RvcnkuIENhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbiBhcmUgYXNr
aW5nIHVzIHRvIGNyZWF0ZSBhIENvZGVCbG9jawpAQCAtMTQxLDE0ICsxMzEsMTMgQEAgY2xhc3Mg
U2NyaXB0RXhlY3V0YWJsZSA6IHB1YmxpYyBFeGVjdXRhYmxlQmFzZSB7CiAjZW5kaWYKICAgICB9
CiAKLSAgICBTb3VyY2VDb2RlIG1fc291cmNlOwotCi0gICAgaW50IG1fbnVtUGFyYW1ldGVyc0Zv
ckNhbGwgeyBOVU1fUEFSQU1FVEVSU19OT1RfQ09NUElMRUQgfTsKLSAgICBpbnQgbV9udW1QYXJh
bWV0ZXJzRm9yQ29uc3RydWN0IHsgTlVNX1BBUkFNRVRFUlNfTk9UX0NPTVBJTEVEIH07Ci0KLSAg
ICBpbnQgbV9sYXN0TGluZSB7IC0xIH07Ci0gICAgdW5zaWduZWQgbV9lbmRDb2x1bW4geyBVSU5U
X01BWCB9OworICAgIHZvaWQgcmVjb3JkUGFyc2UoQ29kZUZlYXR1cmVzIGZlYXR1cmVzLCBib29s
IGhhc0NhcHR1cmVkVmFyaWFibGVzKQorICAgIHsKKyAgICAgICAgbV9mZWF0dXJlcyA9IGZlYXR1
cmVzOworICAgICAgICBtX2hhc0NhcHR1cmVkVmFyaWFibGVzID0gaGFzQ2FwdHVyZWRWYXJpYWJs
ZXM7CisgICAgfQogCisgICAgU291cmNlQ29kZSBtX3NvdXJjZTsKICAgICBJbnRyaW5zaWMgbV9p
bnRyaW5zaWMgeyBOb0ludHJpbnNpYyB9OwogICAgIGJvb2wgbV9kaWRUcnlUb0VudGVySW5Mb29w
IHsgZmFsc2UgfTsKICAgICBDb2RlRmVhdHVyZXMgbV9mZWF0dXJlczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmgKaW5kZXggZjk3OTBlODIwZjI3
MGQwNGNhZDhlNWM1YzhjMzhhOTQ4MmQ0ZDQ3Mi4uNGE0MmJiYzFmMjVhOWQwMWRkZmIyZDg5YWQy
MWNmYzBhYjI2ODg2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1
bmN0aW9uT3ZlcnJpZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0
aW9uT3ZlcnJpZGVzLmgKQEAgLTMzLDE4ICszMywyMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xh
c3MgU2NyaXB0RXhlY3V0YWJsZTsKIAorc3RydWN0IEZ1bmN0aW9uT3ZlcnJpZGVJbmZvIHsKKyAg
ICBTb3VyY2VDb2RlIHNvdXJjZUNvZGU7CisgICAgdW5zaWduZWQgZmlyc3RMaW5lOworICAgIHVu
c2lnbmVkIGxpbmVDb3VudDsKKyAgICB1bnNpZ25lZCBzdGFydENvbHVtbjsKKyAgICB1bnNpZ25l
ZCBlbmRDb2x1bW47CisgICAgdW5zaWduZWQgcGFyYW1ldGVyc1N0YXJ0T2Zmc2V0OworICAgIHVu
c2lnbmVkIHR5cGVQcm9maWxpbmdTdGFydE9mZnNldDsKKyAgICB1bnNpZ25lZCB0eXBlUHJvZmls
aW5nRW5kT2Zmc2V0OworfTsKKwogY2xhc3MgRnVuY3Rpb25PdmVycmlkZXMgewogcHVibGljOgot
ICAgIHN0cnVjdCBPdmVycmlkZUluZm8gewotICAgICAgICBTb3VyY2VDb2RlIHNvdXJjZUNvZGU7
Ci0gICAgICAgIHVuc2lnbmVkIGZpcnN0TGluZTsKLSAgICAgICAgdW5zaWduZWQgbGluZUNvdW50
OwotICAgICAgICB1bnNpZ25lZCBzdGFydENvbHVtbjsKLSAgICAgICAgdW5zaWduZWQgZW5kQ29s
dW1uOwotICAgICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJzU3RhcnRPZmZzZXQ7Ci0gICAgICAgIHVu
c2lnbmVkIHR5cGVQcm9maWxpbmdTdGFydE9mZnNldDsKLSAgICAgICAgdW5zaWduZWQgdHlwZVBy
b2ZpbGluZ0VuZE9mZnNldDsKLSAgICB9OworICAgIHVzaW5nIE92ZXJyaWRlSW5mbyA9IEZ1bmN0
aW9uT3ZlcnJpZGVJbmZvOwogCiAgICAgc3RhdGljIEZ1bmN0aW9uT3ZlcnJpZGVzJiBvdmVycmlk
ZXMoKTsKICAgICBGdW5jdGlvbk92ZXJyaWRlcyhjb25zdCBjaGFyKiBmdW5jdGlvbk92ZXJyaWRl
c0ZpbGVOYW1lKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>