<?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>140448</bug_id>
          
          <creation_ts>2015-01-14 10:10:18 -0800</creation_ts>
          <short_desc>Web Replay: encode replay inputs through ReplayClient</short_desc>
          <delta_ts>2017-07-10 14:06:41 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136294</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1061202</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-14 10:10:18 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061232</commentid>
    <comment_count>1</comment_count>
      <attachid>244618</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-14 10:55:15 -0800</bug_when>
    <thetext>Created attachment 244618
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327183</commentid>
    <comment_count>2</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-07-10 14:06:41 -0700</bug_when>
    <thetext>Closing web replay-related bugs until we resume working on the feature again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244618</attachid>
            <date>2015-01-14 10:55:15 -0800</date>
            <delta_ts>2015-01-14 10:55:15 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-140448-20150114105448.patch</filename>
            <type>text/plain</type>
            <size>67292</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YjUxYjMzNTFhNDkyZWE5OGQwNDJmMjYxYjI0ZDM1ZGQzODlhYmZhLi5hZmU3NTVkMjFmNTk0OWRm
ZWU4N2Q5NDkxYWEyMGU0YmQ5M2I5NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNS0wMS0wOSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogRW5jb2RlIHJlcGxheSBpbnB1dHMgdGhyb3Vn
aCBSZXBsYXlDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MDQ0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcmVwbGF5L0lucHV0Q3Vyc29yLmg6CisgICAgICAgIChKU0M6OklucHV0Q3Vyc29y
OjpJbnB1dEN1cnNvcik6IEZpeCBzaWduYXR1cmUgb2YgdHlwZSgpLgorCiAyMDE0LTA4LTIwICBC
cmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBXZWIgUmVw
bGF5OiBVc2UgZnJhbWV3b3JrIHByZWZpeGVzIGZvciBmcmFtZXdvcmstc3BlY2lmaWMgcmVwbGF5
IGlucHV0IGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZDdiODI5ZTNiOWNiMzJlODNjYWU3NjcxMjM4NWYx
YmZjYzAyYzc0Li42MjJiMDk2NTA0OWE4YzMwOWJmNDEzMjBhYWVlZjExYTY3MmI3OTIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNTkgQEAKIDIwMTQtMDgtMjAgIEJyaWFuIEouIEJ1cmcgIDxidXJn
QGNzLndhc2hpbmd0b24uZWR1PgogCisgICAgICAgIFdlYiBSZXBsYXk6IEVuY29kZSByZXBsYXkg
aW5wdXRzIHRocm91Z2ggUmVwbGF5Q2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA0NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBPbmx5IFdlYktpdDIgY2FuIGFjY2VzcyBhbGwgcG9zc2libGUg
cmVwbGF5IGlucHV0cywgc28gaXQgc2hvdWxkIGNvbnRhaW4KKyAgICAgICAgdGhlIGJpZyBmdW5j
dGlvbiB3aXRoIGNhc2VzIHRvIGVuY29kZSBlYWNoIGlucHV0IGJhc2VkIG9uIGl0cyB0eXBlIHRh
Zy4KKworICAgICAgICBNb3ZlIHNvbWUgbG9nZ2luZyBjb2RlIG91dCBvZiBTZWdtZW50ZWRJbnB1
dFN0b3JhZ2Ugc28gdGhhdCBpbnB1dHMgY2FuIGJlIGVuY29kZWQKKyAgICAgICAgdGhyb3VnaCBS
ZXBsYXlDbGllbnQgYW5kIHRoZW4gZGlzcGxheWVkIGluIHRoZSBzZXJpYWxpemVkIEpTT04gcmVw
cmVzZW50YXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciB3YXMgY2hh
bmdlZC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBBZGQgc3ltYm9scyBmb3IgRW5jb2Rp
bmdUcmFpdHMgc3BlY2lhbGl6YXRpb25zIG9mIFdlYkNvcmUgaW5wdXRzLgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yUmVwbGF5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplSW5wdXRU
b0pTT05GdW5jdG9yOjpTZXJpYWxpemVJbnB1dFRvSlNPTkZ1bmN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VyaWFsaXplSW5wdXRUb0pTT05GdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAg
KFdlYkNvcmU6OmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2VnbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvcklucHV0KTogRGVsZXRlZCwgaXQgaXNuJ3QgdXNl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlcGxheUFnZW50OjpnZXRTZWdtZW50RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvcklucHV0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcmVwbGF5
L0FsbFJlcGxheUlucHV0cy5oOiBSZW1vdmVkLiBJdCBkb2Vzbid0IHJlYWxseSBkbyBhbnl0aGlu
Zy4KKyAgICAgICAgKiByZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwOgorICAgICAgICAo
cXVldWVUeXBlVG9Mb2dQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyaW5nSW5wdXRD
dXJzb3I6OkNhcHR1cmluZ0lucHV0Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmlu
Z0lucHV0Q3Vyc29yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyaW5nSW5wdXRD
dXJzb3I6OnN0b3JlSW5wdXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyaW5nSW5wdXRDdXJz
b3I6OmxvYWRJbnB1dCk6CisgICAgICAgICogcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmg6
CisgICAgICAgICogcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudExvb3BJbnB1dERpc3BhdGNoZXI6OmRpc3BhdGNoSW5wdXQpOgorICAg
ICAgICAqIHJlcGxheS9SZXBsYXlDbGllbnQuaDogQWRkIGVuY29kZUlucHV0IHZpcnR1YWwgbWV0
aG9kLgorICAgICAgICAqIHJlcGxheS9SZXBsYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxheUNvbnRyb2xsZXI6OmNyZWF0ZVNlZ21lbnQpOgorICAgICAgICAqIHJlcGxh
eS9SZXBsYXlpbmdJbnB1dEN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpxdWV1ZVR5cGVU
b0xvZ1ByZWZpeCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlpbmdJbnB1dEN1cnNvcjo6UmVw
bGF5aW5nSW5wdXRDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGF5aW5nSW5wdXRDdXJz
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYXlpbmdJbnB1dEN1cnNvcjo6bG9h
ZElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxheWluZ0lucHV0Q3Vyc29yOjp1bmNoZWNr
ZWRMb2FkSW5wdXQpOgorICAgICAgICAqIHJlcGxheS9SZXBsYXlpbmdJbnB1dEN1cnNvci5oOgor
ICAgICAgICAqIHJlcGxheS9TZWdtZW50ZWRJbnB1dFN0b3JhZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VnbWVudGVkSW5wdXRTdG9yYWdlOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
Z21lbnRlZElucHV0U3RvcmFnZTo6c3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cXVldWVUeXBl
VG9Mb2dQcmVmaXgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNvblN0cmluZ0Zvcklu
cHV0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZXBsYXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmg6
CisgICAgICAgICogcmVwbGF5L1dlYlJlcGxheUlucHV0Q29kZXJzLmNwcDoKKyAgICAgICAgKiBy
ZXBsYXkvV2ViUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwOgorCisyMDE0LTA4LTIwICBC
cmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKwogICAgICAgICBXZWIgUmVw
bGF5OiBVc2UgZnJhbWV3b3JrIHByZWZpeGVzIGZvciBmcmFtZXdvcmstc3BlY2lmaWMgcmVwbGF5
IGlucHV0IGNvZGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MDQ0NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDAzYTA3ZWU0OGRkMTE1NGMyNDBkZDljZDA3Yzdh
NDcxMDMzMmE1NC4uNWI3MGU4NmIwNTkyZjU1ODM0MGVhMDU2NjVhYTFmNTUyNmE2OGYxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA4LTIwICBCcmlhbiBKLiBCdXJnICA8YnVy
Z0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBXZWIgUmVwbGF5OiBFbmNvZGUgcmVwbGF5
IGlucHV0cyB0aHJvdWdoIFJlcGxheUNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgT25seSBXZWJLaXQyIGNhbiBhY2Nlc3MgYWxsIGZyYW1ld29y
a3MnIHJlcGxheSBpbnB1dHMsIHNvIGl0IHNob3VsZCBjb250YWluCisgICAgICAgIHRoZSBiaWcg
ZnVuY3Rpb24gd2l0aCBjYXNlcyB0byBlbmNvZGUgZWFjaCBpbnB1dCBiYXNlZCBvbiBpdHMgdHlw
ZSB0YWcuCisKKyAgICAgICAgTW92ZSBzb21lIGxvZ2dpbmcgY29kZSBvdXQgb2YgU2VnbWVudGVk
SW5wdXRTdG9yYWdlIHNvIHRoYXQgaW5wdXRzIGNhbiBiZSBlbmNvZGVkCisgICAgICAgIHRocm91
Z2ggUmVwbGF5Q2xpZW50IGFuZCB0aGVuIGRpc3BsYXllZCBpbiB0aGUgc2VyaWFsaXplZCBKU09O
IHJlcHJlc2VudGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3Igd2Fz
IGNoYW5nZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9SZXBsYXkv
V0tSZXBsYXlJbnB1dENvZGVycy5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpFbmNvZGluZ1Ry
YWl0czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUpOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1JlcGxheS9XS1JlcGxheUlucHV0Q29kZXJzLmg6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVwbGF5Q2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVwbGF5Q2xpZW50OjplbmNvZGVJbnB1dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlcGxheUNsaWVudDo6ZGVjb2RlSW5wdXQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVwbGF5Q2xpZW50Lmg6CisKIDIwMTUtMDEtMDkgIEJy
aWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBSZXBs
YXk6IHN1cHBvcnQgZ2VuZXJhdGluZyByZXBsYXkgaW5wdXRzIGZvciBXZWJLaXQgZnJhbWV3b3Jr
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDMwMTJhYjRjZmM5ZjRkNWU5MzJkZWFlMDdiMDg2ZGU4
Njk2NzdhNzQuLjY0ZjM5OGY5NWRmYTk3ODE1ZmFjN2QxNDU3ODVmZjk2ZTFhYmU5NzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC0xNzQzLDYgKzE3NDMsNyBAQCBfX1pOSzdXZWJDb3JlMTRJbnNl
cnRpb25Qb2ludDhpc0FjdGl2ZUV2CiBfX1pOSzdXZWJDb3JlMTRSZW5kZXJMaXN0SXRlbTEwbWFy
a2VyVGV4dEV2CiBfX1pOSzdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTEwY29ubmVjdGlvbkV2CiBf
X1pOSzdXZWJDb3JlMTRSZXNvdXJjZUxvYWRlcjExZnJhbWVMb2FkZXJFdgorX19aTks3V2ViQ29y
ZTE0UmVzb3VyY2VMb2FkZXIxN2FjdGl2ZUlucHV0Q3Vyc29yRXYKIF9fWk5LN1dlYkNvcmUxNFJl
c291cmNlTG9hZGVyMzJpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFsc0V2CiBfX1pOSzdX
ZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTEzc2Nyb2xsZWRUb1RvcEV2CiBfX1pOSzdXZWJDb3JlMTRT
Y3JvbGxhYmxlQXJlYTE0c2Nyb2xsQW5pbWF0b3JFdgpAQCAtMzUzMCw3ICszNTMxLDg2IEBAIF9f
Wk43V2ViQ29yZTRQYWdlMTFzZXRWaWV3TW9kZUVOUzBfOFZpZXdNb2RlRQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoV0VCX1JFUExBWSkKLV9fWk5LN1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTdhY3Rp
dmVJbnB1dEN1cnNvckV2CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTBTY3JvbGxQ
YWdlRUU0dHlwZUV2CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTBTY3JvbGxQYWdl
RUU2ZGVjb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZf
MTRkZWZhdWx0X2RlbGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3Jl
MTBTY3JvbGxQYWdlRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSS1MyXworX19aTjNKU0Mx
MUlucHV0VHJhaXRzSU43V2ViQ29yZTExUmVsb2FkRnJhbWVFRTR0eXBlRXYKK19fWk4zSlNDMTFJ
bnB1dFRyYWl0c0lON1dlYkNvcmUxMVJlbG9hZEZyYW1lRUU2ZGVjb2RlRVJOU18xMkVuY29kZWRW
YWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZfMTRkZWZhdWx0X2RlbGV0ZUlTMl9FRUVF
CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTFSZWxvYWRGcmFtZUVFNmVuY29kZUVS
TlNfMTJFbmNvZGVkVmFsdWVFUktTMl8KK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUx
MlRyeUNsb3NlUGFnZUVFNHR5cGVFdgorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTEy
VHJ5Q2xvc2VQYWdlRUU2ZGVjb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVl
X3B0cklTMl9OUzZfMTRkZWZhdWx0X2RlbGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFp
dHNJTjdXZWJDb3JlMTJUcnlDbG9zZVBhZ2VFRTZlbmNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJL
UzJfCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTNET01UaW1lckZpcmVkRUU0dHlw
ZUV2CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTNET01UaW1lckZpcmVkRUU2ZGVj
b2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZfMTRkZWZh
dWx0X2RlbGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTNET01U
aW1lckZpcmVkRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSS1MyXworX19aTjNKU0MxMUlu
cHV0VHJhaXRzSU43V2ViQ29yZTE0SGFuZGxlS2V5UHJlc3NFRTR0eXBlRXYKK19fWk4zSlNDMTFJ
bnB1dFRyYWl0c0lON1dlYkNvcmUxNEhhbmRsZUtleVByZXNzRUU2ZGVjb2RlRVJOU18xMkVuY29k
ZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZfMTRkZWZhdWx0X2RlbGV0ZUlTMl9F
RUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTRIYW5kbGVLZXlQcmVzc0VFNmVu
Y29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUktTMl8KK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dl
YkNvcmUxNExvYWRVUkxSZXF1ZXN0RUU0dHlwZUV2CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdX
ZWJDb3JlMTRMb2FkVVJMUmVxdWVzdEVFNmRlY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUk5TdDNf
XzExMHVuaXF1ZV9wdHJJUzJfTlM2XzE0ZGVmYXVsdF9kZWxldGVJUzJfRUVFRQorX19aTjNKU0Mx
MUlucHV0VHJhaXRzSU43V2ViQ29yZTE0TG9hZFVSTFJlcXVlc3RFRTZlbmNvZGVFUk5TXzEyRW5j
b2RlZFZhbHVlRVJLUzJfCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTVBc3luY1Rp
bWVyRmlyZWRFRTR0eXBlRXYKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUxNUFzeW5j
VGltZXJGaXJlZEVFNmRlY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUk5TdDNfXzExMHVuaXF1ZV9w
dHJJUzJfTlM2XzE0ZGVmYXVsdF9kZWxldGVJUzJfRUVFRQorX19aTjNKU0MxMUlucHV0VHJhaXRz
SU43V2ViQ29yZTE1QXN5bmNUaW1lckZpcmVkRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVS
S1MyXworX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE1RE9NVGltZXJDcmVhdGVkRUU0
dHlwZUV2CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTVET01UaW1lckNyZWF0ZWRF
RTZkZWNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJOU3QzX18xMTB1bmlxdWVfcHRySVMyX05TNl8x
NGRlZmF1bHRfZGVsZXRlSVMyX0VFRUUKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUx
NURPTVRpbWVyQ3JlYXRlZEVFNmVuY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUktTMl8KK19fWk4z
SlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUxNUZldGNoUGx1Z2luRGF0YUVFNHR5cGVFdgorX19a
TjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE1RmV0Y2hQbHVnaW5EYXRhRUU2ZGVjb2RlRVJO
U18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZfMTRkZWZhdWx0X2Rl
bGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTVGZXRjaFBsdWdp
bkRhdGFFRTZlbmNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJLUzJfCitfX1pOM0pTQzExSW5wdXRU
cmFpdHNJTjdXZWJDb3JlMTVIYW5kbGVNb3VzZU1vdmVFRTR0eXBlRXYKK19fWk4zSlNDMTFJbnB1
dFRyYWl0c0lON1dlYkNvcmUxNUhhbmRsZU1vdXNlTW92ZUVFNmRlY29kZUVSTlNfMTJFbmNvZGVk
VmFsdWVFUk5TdDNfXzExMHVuaXF1ZV9wdHJJUzJfTlM2XzE0ZGVmYXVsdF9kZWxldGVJUzJfRUVF
RQorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE1SGFuZGxlTW91c2VNb3ZlRUU2ZW5j
b2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSS1MyXworX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2Vi
Q29yZTE2SGFuZGxlTW91c2VQcmVzc0VFNHR5cGVFdgorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43
V2ViQ29yZTE2SGFuZGxlTW91c2VQcmVzc0VFNmRlY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUk5T
dDNfXzExMHVuaXF1ZV9wdHJJUzJfTlM2XzE0ZGVmYXVsdF9kZWxldGVJUzJfRUVFRQorX19aTjNK
U0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE2SGFuZGxlTW91c2VQcmVzc0VFNmVuY29kZUVSTlNf
MTJFbmNvZGVkVmFsdWVFUktTMl8KK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUxNkhh
bmRsZVdoZWVsRXZlbnRFRTR0eXBlRXYKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUx
NkhhbmRsZVdoZWVsRXZlbnRFRTZkZWNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJOU3QzX18xMTB1
bmlxdWVfcHRySVMyX05TNl8xNGRlZmF1bHRfZGVsZXRlSVMyX0VFRUUKK19fWk4zSlNDMTFJbnB1
dFRyYWl0c0lON1dlYkNvcmUxNkhhbmRsZVdoZWVsRXZlbnRFRTZlbmNvZGVFUk5TXzEyRW5jb2Rl
ZFZhbHVlRVJLUzJfCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTZTdG9wTG9hZGlu
Z0ZyYW1lRUU0dHlwZUV2CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTZTdG9wTG9h
ZGluZ0ZyYW1lRUU2ZGVjb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0
cklTMl9OUzZfMTRkZWZhdWx0X2RlbGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJ
TjdXZWJDb3JlMTZTdG9wTG9hZGluZ0ZyYW1lRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVS
S1MyXworX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE3SW5pdGlhbE5hdmlnYXRpb25F
RTR0eXBlRXYKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUxN0luaXRpYWxOYXZpZ2F0
aW9uRUU2ZGVjb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9O
UzZfMTRkZWZhdWx0X2RlbGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJD
b3JlMTdJbml0aWFsTmF2aWdhdGlvbkVFNmVuY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUktTMl8K
K19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUxN0luaXRpYWxpemVIaXN0b3J5RUU0dHlw
ZUV2CitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTdJbml0aWFsaXplSGlzdG9yeUVF
NmRlY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUk5TdDNfXzExMHVuaXF1ZV9wdHJJUzJfTlM2XzE0
ZGVmYXVsdF9kZWxldGVJUzJfRUVFRQorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE3
SW5pdGlhbGl6ZUhpc3RvcnlFRTZlbmNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJLUzJfCitfX1pO
M0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMTdMb2dpY2FsU2Nyb2xsUGFnZUVFNHR5cGVFdgor
X19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE3TG9naWNhbFNjcm9sbFBhZ2VFRTZkZWNv
ZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJOU3QzX18xMTB1bmlxdWVfcHRySVMyX05TNl8xNGRlZmF1
bHRfZGVsZXRlSVMyX0VFRUUKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUxN0xvZ2lj
YWxTY3JvbGxQYWdlRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSS1MyXworX19aTjNKU0Mx
MUlucHV0VHJhaXRzSU43V2ViQ29yZTE4RW5kU2VnbWVudFNlbnRpbmVsRUU0dHlwZUV2CitfX1pO
M0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMThFbmRTZWdtZW50U2VudGluZWxFRTZkZWNvZGVF
Uk5TXzEyRW5jb2RlZFZhbHVlRVJOU3QzX18xMTB1bmlxdWVfcHRySVMyX05TNl8xNGRlZmF1bHRf
ZGVsZXRlSVMyX0VFRUUKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUxOEVuZFNlZ21l
bnRTZW50aW5lbEVFNmVuY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUktTMl8KK19fWk4zSlNDMTFJ
bnB1dFRyYWl0c0lON1dlYkNvcmUxOEhhbmRsZU1vdXNlUmVsZWFzZUVFNHR5cGVFdgorX19aTjNK
U0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTE4SGFuZGxlTW91c2VSZWxlYXNlRUU2ZGVjb2RlRVJO
U18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZfMTRkZWZhdWx0X2Rl
bGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMThIYW5kbGVNb3Vz
ZVJlbGVhc2VFRTZlbmNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJLUzJfCitfX1pOM0pTQzExSW5w
dXRUcmFpdHNJTjdXZWJDb3JlMjBCZWdpblNlZ21lbnRTZW50aW5lbEVFNHR5cGVFdgorX19aTjNK
U0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTIwQmVnaW5TZWdtZW50U2VudGluZWxFRTZkZWNvZGVF
Uk5TXzEyRW5jb2RlZFZhbHVlRVJOU3QzX18xMTB1bmlxdWVfcHRySVMyX05TNl8xNGRlZmF1bHRf
ZGVsZXRlSVMyX0VFRUUKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUyMEJlZ2luU2Vn
bWVudFNlbnRpbmVsRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSS1MyXworX19aTjNKU0Mx
MUlucHV0VHJhaXRzSU43V2ViQ29yZTIxTWVtb2l6ZWRET01SZXN1bHRCYXNlRUU0dHlwZUV2Citf
X1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMjFNZW1vaXplZERPTVJlc3VsdEJhc2VFRTZk
ZWNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJOU3QzX18xMTB1bmlxdWVfcHRySVMyX05TNl8xNGRl
ZmF1bHRfZGVsZXRlSVMyX0VFRUUKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUyMU1l
bW9pemVkRE9NUmVzdWx0QmFzZUVFNmVuY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUktTMl8KK19f
Wk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUyMVJlc291cmNlTG9hZGVyRGlkRmFpbEVFNHR5
cGVFdgorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTIxUmVzb3VyY2VMb2FkZXJEaWRG
YWlsRUU2ZGVjb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9O
UzZfMTRkZWZhdWx0X2RlbGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJD
b3JlMjFSZXNvdXJjZUxvYWRlckRpZEZhaWxFRTZlbmNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJL
UzJfCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMjREb2N1bWVudExhc3RNb2RpZmll
ZERhdGVFRTR0eXBlRXYKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUyNERvY3VtZW50
TGFzdE1vZGlmaWVkRGF0ZUVFNmRlY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUk5TdDNfXzExMHVu
aXF1ZV9wdHJJUzJfTlM2XzE0ZGVmYXVsdF9kZWxldGVJUzJfRUVFRQorX19aTjNKU0MxMUlucHV0
VHJhaXRzSU43V2ViQ29yZTI0RG9jdW1lbnRMYXN0TW9kaWZpZWREYXRlRUU2ZW5jb2RlRVJOU18x
MkVuY29kZWRWYWx1ZUVSS1MyXworX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTI1UmVz
b3VyY2VMb2FkZXJEaWRTZW5kRGF0YUVFNHR5cGVFdgorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43
V2ViQ29yZTI1UmVzb3VyY2VMb2FkZXJEaWRTZW5kRGF0YUVFNmRlY29kZUVSTlNfMTJFbmNvZGVk
VmFsdWVFUk5TdDNfXzExMHVuaXF1ZV9wdHJJUzJfTlM2XzE0ZGVmYXVsdF9kZWxldGVJUzJfRUVF
RQorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTI1UmVzb3VyY2VMb2FkZXJEaWRTZW5k
RGF0YUVFNmVuY29kZUVSTlNfMTJFbmNvZGVkVmFsdWVFUktTMl8KK19fWk4zSlNDMTFJbnB1dFRy
YWl0c0lON1dlYkNvcmUyOFJlc291cmNlTG9hZGVyRGlkUmVjZWl2ZURhdGFFRTR0eXBlRXYKK19f
Wk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUyOFJlc291cmNlTG9hZGVyRGlkUmVjZWl2ZURh
dGFFRTZkZWNvZGVFUk5TXzEyRW5jb2RlZFZhbHVlRVJOU3QzX18xMTB1bmlxdWVfcHRySVMyX05T
Nl8xNGRlZmF1bHRfZGVsZXRlSVMyX0VFRUUKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNv
cmUyOFJlc291cmNlTG9hZGVyRGlkUmVjZWl2ZURhdGFFRTZlbmNvZGVFUk5TXzEyRW5jb2RlZFZh
bHVlRVJLUzJfCitfX1pOM0pTQzExSW5wdXRUcmFpdHNJTjdXZWJDb3JlMzBSZXNvdXJjZUxvYWRl
ckRpZEZpbmlzaExvYWRpbmdFRTR0eXBlRXYKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNv
cmUzMFJlc291cmNlTG9hZGVyRGlkRmluaXNoTG9hZGluZ0VFNmRlY29kZUVSTlNfMTJFbmNvZGVk
VmFsdWVFUk5TdDNfXzExMHVuaXF1ZV9wdHJJUzJfTlM2XzE0ZGVmYXVsdF9kZWxldGVJUzJfRUVF
RQorX19aTjNKU0MxMUlucHV0VHJhaXRzSU43V2ViQ29yZTMwUmVzb3VyY2VMb2FkZXJEaWRGaW5p
c2hMb2FkaW5nRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSS1MyXworX19aTjNKU0MxMUlu
cHV0VHJhaXRzSU43V2ViQ29yZTMyUmVzb3VyY2VMb2FkZXJEaWRSZWNlaXZlUmVzcG9uc2VFRTR0
eXBlRXYKK19fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUzMlJlc291cmNlTG9hZGVyRGlk
UmVjZWl2ZVJlc3BvbnNlRUU2ZGVjb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5p
cXVlX3B0cklTMl9OUzZfMTRkZWZhdWx0X2RlbGV0ZUlTMl9FRUVFCitfX1pOM0pTQzExSW5wdXRU
cmFpdHNJTjdXZWJDb3JlMzJSZXNvdXJjZUxvYWRlckRpZFJlY2VpdmVSZXNwb25zZUVFNmVuY29k
ZUVSTlNfMTJFbmNvZGVkVmFsdWVFUktTMl8KK19fWk4zSlNDMTRFbmNvZGluZ1RyYWl0c0lON1dl
YkNvcmUxOFBsYXRmb3JtTW91c2VFdmVudEVFMTFlbmNvZGVWYWx1ZUVSS1MyXworX19aTjNKU0Mx
NEVuY29kaW5nVHJhaXRzSU43V2ViQ29yZTE4UGxhdGZvcm1Nb3VzZUV2ZW50RUUxMWRlY29kZVZh
bHVlRVJOU18xMkVuY29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZfMTRkZWZh
dWx0X2RlbGV0ZUlTMl9FRUVFCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDg5MmIxZWY2MzRlNzA3MGIzOTlmZTEyODA3Zjg5MDE3OGY3YzU0Y2YuLjJjZjA5NTc5MWM1YWM1
OTU4OTJiNTFhM2I4ZDUzODQyOTNhODc4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2NDQsOSArMzY0NCwxMCBAQAogCQk5
OEVCMUY5NTEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFF
QSAvKiBOb3RJbXBsZW1lbnRlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk5MjAzOTgyMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlk
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTky
MDM5ODAxOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5jcHAgKi87IH07CiAJCTk5
MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIzOUFG
OSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQk5OUM3Q0NCMzE4QzY2M0U0MDAzMkU0MTMgLyogTWVtb2l6ZWRET01S
ZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5
QzdDQ0IyMThDNjYzRTQwMDMyRTQxMyAvKiBNZW1vaXplZERPTVJlc3VsdC5oICovOyB9OworCQk5
OTYyMzFGMzE4RDE4QUMzMDBDMDNGREEgLyogSW5zcGVjdG9yV2ViQmFja2VuZENvbW1hbmRzLmpz
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2MjMxRjEx
OEQxODlCRDAwQzAzRkRBIC8qIEluc3BlY3RvcldlYkJhY2tlbmRDb21tYW5kcy5qcyAqLzsgfTsK
KwkJOTk2MjMxRjQxOEQyMkZBMjAwQzAzRkRBIC8qIEluc3BlY3RvcldlYkJhY2tlbmRDb21tYW5k
cy5qcyBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5NjIzMUYxMThEMTg5QkQwMEMwM0ZEQSAvKiBJbnNwZWN0b3JXZWJCYWNrZW5k
Q29tbWFuZHMuanMgKi87IH07CisJCTk5QzdDQ0IzMThDNjYzRTQwMDMyRTQxMyAvKiBNZW1vaXpl
ZERPTVJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTlDN0NDQjIxOEM2NjNFNDAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlDN0NDQjUxOEM2
Qjg5OTAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzdDQ0I0MThDNkI4OTkwMDMyRTQxMyAvKiBN
ZW1vaXplZERPTVJlc3VsdC5jcHAgKi87IH07Ci0JCTk5Q0MwQjREMThCRTk4NDkwMDZDRUJDQyAv
KiBBbGxSZXBsYXlJbnB1dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5Q0MwQjM4MThCRTk4NDkwMDZDRUJDQyAvKiBBbGxSZXBsYXlJbnB1dHMuaCAq
LzsgfTsKIAkJOTlDQzBCNEUxOEJFOTg0OTAwNkNFQkNDIC8qIENhcHR1cmluZ0lucHV0Q3Vyc29y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5Q0Mw
QjM5MThCRTk4NDkwMDZDRUJDQyAvKiBDYXB0dXJpbmdJbnB1dEN1cnNvci5jcHAgKi87IH07CiAJ
CTk5Q0MwQjRGMThCRTk4NDkwMDZDRUJDQyAvKiBDYXB0dXJpbmdJbnB1dEN1cnNvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDQzBCM0ExOEJFOTg0
OTAwNkNFQkNDIC8qIENhcHR1cmluZ0lucHV0Q3Vyc29yLmggKi87IH07CiAJCTk5Q0MwQjUwMThC
RTk4NDkwMDZDRUJDQyAvKiBFdmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDQzBCM0IxOEJFOTg0OTAwNkNF
QkNDIC8qIEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHAgKi87IH07CkBAIC0zNjY3LDcgKzM2
NjgsNyBAQAogCQk5OUNDMEI2NjE4QkU5RjE1MDA2Q0VCQ0MgLyogSW5zcGVjdG9yUmVwbGF5QWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlD
QzBCNjQxOEJFOUYxNTAwNkNFQkNDIC8qIEluc3BlY3RvclJlcGxheUFnZW50LmNwcCAqLzsgfTsK
IAkJOTlDQzBCNjcxOEJFOUYxNTAwNkNFQkNDIC8qIEluc3BlY3RvclJlcGxheUFnZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUNDMEI2NTE4QkU5
RjE1MDA2Q0VCQ0MgLyogSW5zcGVjdG9yUmVwbGF5QWdlbnQuaCAqLzsgfTsKIAkJOTlDQzBCNkEx
OEJFQTFGRjAwNkNFQkNDIC8qIFdlYlJlcGxheUlucHV0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUNDMEI2ODE4QkVBMUZGMDA2Q0VCQ0MgLyog
V2ViUmVwbGF5SW5wdXRzLmNwcCAqLzsgfTsKLQkJOTlDQzBCNkIxOEJFQTFGRjAwNkNFQkNDIC8q
IFdlYlJlcGxheUlucHV0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlDQzBCNjkxOEJFQTFGRjAwNkNFQkNDIC8qIFdlYlJlcGxheUlucHV0cy5oICov
OyB9OworCQk5OUNDMEI2QjE4QkVBMUZGMDA2Q0VCQ0MgLyogV2ViUmVwbGF5SW5wdXRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUNDMEI2OTE4QkVB
MUZGMDA2Q0VCQ0MgLyogV2ViUmVwbGF5SW5wdXRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNDVBMTcxOEEwNjNCRTAwMjZEODhGIC8qIEV2
ZW50TG9vcElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OUU0NUExNjE4QTA2M0JFMDAyNkQ4OEYgLyogRXZlbnRMb29wSW5wdXQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QTExNDIwNDE4MzJE
MTM1MDAwQkI4QUQgLyogVmFsdWVUb1N0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUExMTQyMDMxODMyRDEzNDAwMEJCOEFEIC8qIFZhbHVlVG9T
dHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5QTFCNkY5NzE1ODg2OUM4MDAxMUE4QzQgLyogSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBMUI2Rjk2MTU4
ODY5QzgwMDExQThDNCAvKiBKU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwICovOyB9OwpAQCAtMTA4
MTgsNyArMTA4MTksNiBAQAogCQk5OTIwMzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0
QnJpZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUM3Q0NCMjE4QzY2M0U0MDAzMkU0
MTMgLyogTWVtb2l6ZWRET01SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVtb2l6ZWRET01SZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlD
N0NDQjQxOEM2Qjg5OTAwMzJFNDEzIC8qIE1lbW9pemVkRE9NUmVzdWx0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9pemVkRE9NUmVzdWx0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTlDQzBCMzgxOEJFOTg0OTAwNkNFQkNDIC8qIEFsbFJl
cGxheUlucHV0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbGxSZXBsYXlJ
bnB1dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDQzBCMzkxOEJFOTg0OTAw
NkNFQkNDIC8qIENhcHR1cmluZ0lucHV0Q3Vyc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENhcHR1cmluZ0lucHV0Q3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTlDQzBCM0ExOEJFOTg0OTAwNkNFQkNDIC8qIENhcHR1cmluZ0lucHV0
Q3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHR1cmluZ0lucHV0
Q3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5Q0MwQjNCMThCRTk4NDkw
MDZDRUJDQyAvKiBFdmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Mzk5LDcgKzE4Mzk5LDYgQEAKIAkJOTlFNDVBMTMx
OEEwMjE3NjAwMjZEODhGIC8qIHJlcGxheSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJOTlDQzBCMzgxOEJFOTg0OTAwNkNFQkNDIC8qIEFsbFJlcGxheUlu
cHV0cy5oICovLAogCQkJCTk5Q0MwQjM5MThCRTk4NDkwMDZDRUJDQyAvKiBDYXB0dXJpbmdJbnB1
dEN1cnNvci5jcHAgKi8sCiAJCQkJOTlDQzBCM0ExOEJFOTg0OTAwNkNFQkNDIC8qIENhcHR1cmlu
Z0lucHV0Q3Vyc29yLmggKi8sCiAJCQkJQzQwMEQxMDgxOEYxQzhGNjAwOTBEODYzIC8qIEV2ZW50
TG9vcElucHV0LmNwcCAqLywKQEAgLTIzMzU3LDcgKzIzMzU2LDYgQEAKIAkJCQlCQ0Y3RTQ5MTEz
N0NEN0M3MDAxRERBRTcgLyogQWRqdXN0Vmlld1NpemVPck5vdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODREMEM0MDYxMTE1RjFFQTAwMThBQTM0IC8qIEFmZmluZVRyYW5zZm9ybS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDcwNTg1MDgxN0ZBNDY4OTAwNUYyQkNCIC8qIEFsbEF1ZGlvQ2FwYWJpbGl0
aWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk5OUNDMEI0RDE4QkU5ODQ5MDA2Q0VCQ0MgLyogQWxs
UmVwbGF5SW5wdXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzNBQjRCMzE3RjhCQUNBMDA2RTBE
NkYgLyogQWxsVmlkZW9DYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFREExMkQ3
MTUyQ0ExQ0IwMEQ5RTA4RCAvKiBBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFMDhDM0QyMTUyQjU5OUEwMDIxQjhDMiAvKiBBbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVwbGF5QWdlbnQuY3BwCmluZGV4IDljMzUwNjUyMDM2MWI3OTYwNjI4Nzc1N2U3ZWFh
ZmIwN2Q5NTE1MTMuLjBmNzdjOWE3ZjA0YTc4Y2UxZWUxYTI2MzAyN2Y5OGMyODE2NjljZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNw
cApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUmVwbGF5Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlJlcGxheUNsaWVu
dC5oIgogI2luY2x1ZGUgIlJlcGxheVNlc3Npb24uaCIKICNpbmNsdWRlICJSZXBsYXlTZXNzaW9u
U2VnbWVudC5oIgogI2luY2x1ZGUgIldlYlJlcGxheUlucHV0Q29kZXJzLmgiCkBAIC02MiwxNiAr
NjMsNiBAQCBzdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6UmVwbGF5UG9z
aXRpb24+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yUAogICAgICAgICAucmVsZWFzZSgpOwogfQog
Ci1zdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6UmVwbGF5SW5wdXQ+IGJ1
aWxkSW5zcGVjdG9yT2JqZWN0Rm9ySW5wdXQoY29uc3QgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFz
ZSYgaW5wdXQsIHNpemVfdCBvZmZzZXQpCi17Ci0gICAgRW5jb2RlZFZhbHVlIGVuY29kZWRJbnB1
dCA9IEVuY29kaW5nVHJhaXRzPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+OjplbmNvZGVWYWx1
ZShpbnB1dCk7Ci0gICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6UmVwbGF5
SW5wdXQ6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRUeXBlKGlucHV0LnR5cGUoKSkKLSAgICAgICAg
LnNldE9mZnNldChvZmZzZXQpCi0gICAgICAgIC5zZXREYXRhKGVuY29kZWRJbnB1dC5hc09iamVj
dCgpKQotICAgICAgICAucmVsZWFzZSgpOwotfQotCiBzdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OlJlcGxheTo6UmVwbGF5U2Vzc2lvbj4gYnVpbGRJbnNwZWN0b3JPYmplY3RGb3JTZXNz
aW9uKFJlZlB0cjxSZXBsYXlTZXNzaW9uPiYmIHNlc3Npb24pCiB7CiAgICAgYXV0byBzZWdtZW50
cyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PFNlZ21lbnRJZGVudGlmaWVyPjo6Y3JlYXRl
KCk7CkBAIC0xMDcsMzggKzk4LDQ5IEBAIHN0YXRpYyBJbnNwZWN0b3I6OlByb3RvY29sOjpSZXBs
YXk6OlNlZ21lbnRTdGF0ZSBidWlsZEluc3BlY3Rvck9iamVjdEZvclNlZ21lbnRTCiAKIGNsYXNz
IFNlcmlhbGl6ZUlucHV0VG9KU09ORnVuY3RvciB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UmVwbGF5
OjpSZXBsYXlJbnB1dD4+IFJldHVyblR5cGU7CisgICAgdHlwZWRlZiBSZWY8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UmVwbGF5OjpSZXBsYXlJbnB1dD4+
IFJldHVyblR5cGU7CiAKLSAgICBTZXJpYWxpemVJbnB1dFRvSlNPTkZ1bmN0b3IoKQotICAgICAg
ICA6IG1faW5wdXRzKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlJlcGxheTo6UmVwbGF5SW5wdXQ+OjpjcmVhdGUoKSkgeyB9CisgICAgU2VyaWFsaXplSW5w
dXRUb0pTT05GdW5jdG9yKFJlcGxheUNsaWVudCYgY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50
KGNsaWVudCkKKyAgICAgICAgLCBtX2lucHV0cyhJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJ
bnNwZWN0b3I6OlByb3RvY29sOjpSZXBsYXk6OlJlcGxheUlucHV0Pjo6Y3JlYXRlKCkpIHsgfQog
ICAgIH5TZXJpYWxpemVJbnB1dFRvSlNPTkZ1bmN0b3IoKSB7IH0KIAogICAgIHZvaWQgb3BlcmF0
b3IoKShzaXplX3QgaW5kZXgsIGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UqIGlucHV0
KQogICAgIHsKICAgICAgICAgTE9HKFdlYlJlcGxheSwgIiUtMjVzIFdyaXRpbmcgJTV6dTogJXNc
biIsICJbU2VyaWFsaXplSW5wdXRdIiwgaW5kZXgsIGlucHV0LT50eXBlKCkuYXNjaWkoKS5kYXRh
KCkpOwogCi0gICAgICAgIGlmIChSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6UmVwbGF5OjpS
ZXBsYXlJbnB1dD4gc2VyaWFsaXplZElucHV0ID0gYnVpbGRJbnNwZWN0b3JPYmplY3RGb3JJbnB1
dCgqaW5wdXQsIGluZGV4KSkKLSAgICAgICAgICAgIG1faW5wdXRzLT5hZGRJdGVtKHNlcmlhbGl6
ZWRJbnB1dC5yZWxlYXNlKCkpOworICAgICAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZElucHV0Owor
ICAgICAgICBpZiAoIW1fY2xpZW50LmVuY29kZUlucHV0KCppbnB1dCwgZW5jb2RlZElucHV0KSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGlucHV0T2JqZWN0ID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6UmVwbGF5OjpSZXBsYXlJbnB1dDo6Y3JlYXRlKCkKKyAgICAgICAgICAg
IC5zZXRUeXBlKGlucHV0LT50eXBlKCkpCisgICAgICAgICAgICAuc2V0T2Zmc2V0KGluZGV4KQor
ICAgICAgICAgICAgLnNldERhdGEoZW5jb2RlZElucHV0LmFzT2JqZWN0KCkpCisgICAgICAgICAg
ICAucmVsZWFzZSgpOworCisgICAgICAgIG1faW5wdXRzLT5hZGRJdGVtKFdURjo6bW92ZShpbnB1
dE9iamVjdCkpOwogICAgIH0KIAotICAgIFJldHVyblR5cGUgcmV0dXJuVmFsdWUoKSB7IHJldHVy
biBtX2lucHV0cy5yZWxlYXNlKCk7IH0KKyAgICBSZXR1cm5UeXBlIHJldHVyblZhbHVlKCkgeyBy
ZXR1cm4gbV9pbnB1dHMuY29weVJlZigpOyB9CiBwcml2YXRlOgotICAgIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpSZXBsYXk6OlJlcGxheUlu
cHV0Pj4gbV9pbnB1dHM7CisgICAgUmVwbGF5Q2xpZW50JiBtX2NsaWVudDsKKyAgICBSZWY8SW5z
cGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6UmVwbGF5OjpSZXBs
YXlJbnB1dD4+IG1faW5wdXRzOwogfTsKIAotc3RhdGljIFJlZjxJbnNwZWN0b3I6OlByb3RvY29s
OjpSZXBsYXk6OlNlc3Npb25TZWdtZW50PiBidWlsZEluc3BlY3Rvck9iamVjdEZvclNlZ21lbnQo
UmVmUHRyPFJlcGxheVNlc3Npb25TZWdtZW50PiYmIHNlZ21lbnQpCitzdGF0aWMgUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6U2Vzc2lvblNlZ21lbnQ+IGJ1aWxkSW5zcGVjdG9yT2Jq
ZWN0Rm9yU2VnbWVudChSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+JiYgc2VnbWVudCwgUmVw
bGF5Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgYXV0byBxdWV1ZXNPYmplY3QgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpSZXBsYXk6OlJlcGxheUlucHV0
UXVldWU+OjpjcmVhdGUoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhdGljX2Nh
c3Q8c2l6ZV90PihJbnB1dFF1ZXVlOjpDb3VudCk7IGkrKykgewotICAgICAgICBTZXJpYWxpemVJ
bnB1dFRvSlNPTkZ1bmN0b3IgY29sbGVjdG9yOworICAgICAgICBTZXJpYWxpemVJbnB1dFRvSlNP
TkZ1bmN0b3IgY29sbGVjdG9yKGNsaWVudCk7CiAgICAgICAgIElucHV0UXVldWUgcXVldWUgPSBz
dGF0aWNfY2FzdDxJbnB1dFF1ZXVlPihpKTsKLSAgICAgICAgUmVmUHRyPEZ1bmN0b3JJbnB1dEN1
cnNvcj4gZnVuY3RvckN1cnNvciA9IEZ1bmN0b3JJbnB1dEN1cnNvcjo6Y3JlYXRlKHNlZ21lbnQu
Y29weVJlZigpKTsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PElu
c3BlY3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6UmVwbGF5SW5wdXQ+PiBxdWV1ZUlucHV0cyA9IGZ1
bmN0b3JDdXJzb3ItPmZvckVhY2hJbnB1dEluUXVldWUocXVldWUsIGNvbGxlY3Rvcik7CisgICAg
ICAgIGF1dG8gZnVuY3RvckN1cnNvciA9IEZ1bmN0b3JJbnB1dEN1cnNvcjo6Y3JlYXRlKHNlZ21l
bnQuY29weVJlZigpKTsKKyAgICAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PElu
c3BlY3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6UmVwbGF5SW5wdXQ+PiBxdWV1ZUlucHV0cyA9IGZ1
bmN0b3JDdXJzb3ItPmZvckVhY2hJbnB1dEluUXVldWUocXVldWUsIGNvbGxlY3Rvcik7CiAKICAg
ICAgICAgYXV0byBxdWV1ZU9iamVjdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6UmVw
bGF5SW5wdXRRdWV1ZTo6Y3JlYXRlKCkKICAgICAgICAgICAgIC5zZXRUeXBlKEVuY29kaW5nVHJh
aXRzPElucHV0UXVldWU+OjplbmNvZGVWYWx1ZShxdWV1ZSkuY29udmVydFRvPFN0cmluZz4oKSkK
LSAgICAgICAgICAgIC5zZXRJbnB1dHMocXVldWVJbnB1dHMpCisgICAgICAgICAgICAuc2V0SW5w
dXRzKFdURjo6bW92ZShxdWV1ZUlucHV0cykpCiAgICAgICAgICAgICAucmVsZWFzZSgpOwogICAg
ICAgICBxdWV1ZXNPYmplY3QtPmFkZEl0ZW0oV1RGOjptb3ZlKHF1ZXVlT2JqZWN0KSk7CiAgICAg
fQpAQCAtNDQ4LDcgKzQ1MCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OnJlbW92ZVNl
c3Npb25TZWdtZW50KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgSW5zcGVjCiAgICAgc2Vzc2lv
bk1vZGlmaWVkKHNlc3Npb24pOwogfQogCi1QYXNzUmVmUHRyPFJlcGxheVNlc3Npb24+IEluc3Bl
Y3RvclJlcGxheUFnZW50OjpmaW5kU2Vzc2lvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIFNl
c3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWZQdHI8UmVwbGF5U2Vzc2lvbj4gSW5zcGVj
dG9yUmVwbGF5QWdlbnQ6OmZpbmRTZXNzaW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgU2Vz
c2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoaWRlbnRpZmllciA+IDAp
OwogCkBAIC00NTgsMTAgKzQ2MCwxMCBAQCBQYXNzUmVmUHRyPFJlcGxheVNlc3Npb24+IEluc3Bl
Y3RvclJlcGxheUFnZW50OjpmaW5kU2Vzc2lvbihFcnJvclN0cmluZyYgZXJyb3JTdAogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gaXQtPnZhbHVlOworICAgIHJl
dHVybiBpdC0+dmFsdWUuY29weVJlZigpOwogfQogCi1QYXNzUmVmUHRyPFJlcGxheVNlc3Npb25T
ZWdtZW50PiBJbnNwZWN0b3JSZXBsYXlBZ2VudDo6ZmluZFNlZ21lbnQoRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBTZWdtZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorUmVmUHRyPFJlcGxheVNl
c3Npb25TZWdtZW50PiBJbnNwZWN0b3JSZXBsYXlBZ2VudDo6ZmluZFNlZ21lbnQoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBTZWdtZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIEFT
U0VSVChpZGVudGlmaWVyID4gMCk7CiAKQEAgLTQ3MSw3ICs0NzMsNyBAQCBQYXNzUmVmUHRyPFJl
cGxheVNlc3Npb25TZWdtZW50PiBJbnNwZWN0b3JSZXBsYXlBZ2VudDo6ZmluZFNlZ21lbnQoRXJy
b3JTdHJpbmcmCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiBp
dC0+dmFsdWU7CisgICAgcmV0dXJuIGl0LT52YWx1ZS5jb3B5UmVmKCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yUmVwbGF5QWdlbnQ6OmN1cnJlbnRSZXBsYXlTdGF0ZShFcnJvclN0cmluZyYsIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6U2Vzc2lvbklkZW50aWZpZXIqIHNlc3Npb25JZGVudGlm
aWVyLCBJbnNwZWN0b3I6OlByb3RvY29sOjpPcHRPdXRwdXQ8SW5zcGVjdG9yOjpQcm90b2NvbDo6
UmVwbGF5OjpTZWdtZW50SWRlbnRpZmllcj4qIHNlZ21lbnRJZGVudGlmaWVyLCBJbnNwZWN0b3I6
OlByb3RvY29sOjpSZXBsYXk6OlNlc3Npb25TdGF0ZSogc2Vzc2lvblN0YXRlLCBJbnNwZWN0b3I6
OlByb3RvY29sOjpSZXBsYXk6OlNlZ21lbnRTdGF0ZSogc2VnbWVudFN0YXRlLCBSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6UmVwbGF5OjpSZXBsYXlQb3NpdGlvbj4mIHJlcGxheVBvc2l0aW9u
KQpAQCAtNTEyLDcgKzUxNCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmdldFNlZ21l
bnREYXRhKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgSW5zcGVjdG9yOjpQCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBzZXJpYWxpemVkT2JqZWN0ID0gYnVpbGRJbnNwZWN0b3JPYmpl
Y3RGb3JTZWdtZW50KFdURjo6bW92ZShzZWdtZW50KSk7CisgICAgc2VyaWFsaXplZE9iamVjdCA9
IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2VnbWVudChXVEY6Om1vdmUoc2VnbWVudCksIG1fcGFn
ZS5yZXBsYXlDb250cm9sbGVyKCkuY2xpZW50KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5o
CmluZGV4IDk0Mjk1MTE5ZTk0MWFkY2JlMzQ5NDk2MGE0YmFlNTY1NTA2MWY2YjQuLmUxY2E1NDQw
NTk4MTc5MGNhYjg0MmQxZTJkNTgyZTk4MzU2NDc2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5oCkBAIC0xMTAsOCArMTEwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRTZWdtZW50RGF0YShFcnJvclN0cmluZyYsIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OlJlcGxheTo6U2VnbWVudElkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0
b3I6OlByb3RvY29sOjpSZXBsYXk6OlNlc3Npb25TZWdtZW50PiYpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgotICAgIFBhc3NSZWZQdHI8UmVwbGF5U2Vzc2lvbj4gZmluZFNlc3Npb24oRXJyb3JTdHJp
bmcmLCBTZXNzaW9uSWRlbnRpZmllcik7Ci0gICAgUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2Vn
bWVudD4gZmluZFNlZ21lbnQoRXJyb3JTdHJpbmcmLCBTZWdtZW50SWRlbnRpZmllcik7CisgICAg
UmVmUHRyPFJlcGxheVNlc3Npb24+IGZpbmRTZXNzaW9uKEVycm9yU3RyaW5nJiwgU2Vzc2lvbklk
ZW50aWZpZXIpOworICAgIFJlZlB0cjxSZXBsYXlTZXNzaW9uU2VnbWVudD4gZmluZFNlZ21lbnQo
RXJyb3JTdHJpbmcmLCBTZWdtZW50SWRlbnRpZmllcik7CiAgICAgV2ViQ29yZTo6U2Vzc2lvblN0
YXRlIHNlc3Npb25TdGF0ZSgpIGNvbnN0OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rv
cjo6SW5zcGVjdG9yUmVwbGF5RnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxM2I0MzdlZjQ4NmZjMTcx
ZGNjZjk5YWZkNmU4NjAyMDM2Njc1MmIzLi40NmJiN2U3Y2NmZWQ3OGY4MjNkYzQyOTllNmZiYTY3
MDNmODgyNTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC02MTIsNiAr
NjEyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkVtcHR5UmVwbGF5Q2xpZW50KCkgeyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnB1dChFdmVudExvb3BJbnB1dEJhc2UmKSBvdmVy
cmlkZSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZW5jb2RlSW5wdXQoY29uc3QgSlNDOjpOb25kZXRl
cm1pbmlzdGljSW5wdXRCYXNlJiwgSlNDOjpFbmNvZGVkVmFsdWUmKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVJbnB1dChKU0M6OkVuY29kZWRWYWx1
ZSYsIHN0ZDo6dW5pcXVlX3B0cjxKU0M6Ok5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+Jikgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SRVBMQVkp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9BbGxSZXBsYXlJbnB1dHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9BbGxSZXBsYXlJbnB1dHMuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjY5YmMyNWY5YTEwYWNlYTY4ZGU5NjljZWIyODM4ZWY1MWZmNWJjNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZXBsYXkvQWxsUmVwbGF5SW5wdXRzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAi
QVMKLSAqIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRAotICogVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBCi0gKiBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIEhPTERFUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8gVGhp
cyBmaWxlIGlzIHRoZSBpbmNsdWRlIGVxdWl2YWxlbnQgZm9yIFdFQl9SRVBMQVlfSU5QVVRfTkFN
RVNfRk9SX0VBQ0guCi0vLyBOb3RlIHRoYXQgdGhlcmUgaXMgbm90IGFuIGV4YWN0IGNvcnJlc3Bv
bmRlbmNlIGJldHdlZW4gdGhlIHR3bywgc2luY2UKLS8vIFNvbWUgaW5wdXQgdHlwZXMgcmVzaWRl
IGluIHRoZSBzYW1lIGZpbGUuCi0KLSNpZm5kZWYgQWxsUmVwbGF5SW5wdXRzX2gKLSNkZWZpbmUg
QWxsUmVwbGF5SW5wdXRzX2gKLQotI2lmIEVOQUJMRShXRUJfUkVQTEFZKQotCi0jaW5jbHVkZSAi
TWVtb2l6ZWRET01SZXN1bHQuaCIKLSNpbmNsdWRlICJXZWJSZXBsYXlJbnB1dHMuaCIKLSNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JlcGxheUlucHV0cy5oPgotCi0jZGVmaW5lIElNUE9SVF9G
Uk9NX0pTQ19OQU1FU1BBQ0UobmFtZSkgXAotdXNpbmcgSlNDOjpuYW1lOyBcCi0KLUpTX1JFUExB
WV9JTlBVVF9OQU1FU19GT1JfRUFDSChJTVBPUlRfRlJPTV9KU0NfTkFNRVNQQUNFKQotCi0jZW5k
aWYgLy8gRU5BQkxFKFdFQl9SRVBMQVkpCi0KLSNlbmRpZiAvLyBBbGxSZXBsYXlJbnB1dHNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5jcHAKaW5kZXgg
YzgxODA3NDMxNmZmZmRhOTcyMjk0NjkyOTk1ZWQ1YTdiYWQzZjAzMC4uNWYyYzAyYzdlZmMyYzZk
NzYzOTY0MTU5YjJlNWVhMjZkMmUyMGRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVw
bGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkv
Q2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwCkBAIC0zMiwxNCArMzIsMzMgQEAKIAogI2luY2x1ZGUg
IkV2ZW50TG9vcElucHV0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJSZXBsYXlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUmVwbGF5Q2xpZW50
LmgiCiAjaW5jbHVkZSAiUmVwbGF5U2Vzc2lvblNlZ21lbnQuaCIKICNpbmNsdWRlICJTZWdtZW50
ZWRJbnB1dFN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxyZXBsYXkvRW5jb2RlZFZhbHVlLmg+CiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
CisjaWYgIUxPR19ESVNBQkxFRAorLy8gVGhpcyBpcyB1c2VkIHRvIG1ha2UgdGhlIGxvZyBzcGV3
IGZyb20gTE9HKFdlYlJlcGxheSwgLi4uKSBtb3JlIHJlYWRhYmxlLgorc3RhdGljIGNvbnN0IGNo
YXIqIHF1ZXVlVHlwZVRvTG9nUHJlZml4KElucHV0UXVldWUgcXVldWUpCit7CisgICAgc3dpdGNo
IChxdWV1ZSkgeworICAgIGNhc2UgSW5wdXRRdWV1ZTo6RXZlbnRMb29wSW5wdXQ6IHJldHVybiAi
PkRTUFRDSC1TVE9SRSI7CisgICAgY2FzZSBJbnB1dFF1ZXVlOjpMb2FkZXJNZW1vaXplZERhdGE6
IHJldHVybiAiPExETUVNTy1TVE9SRSI7CisgICAgY2FzZSBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1v
aXplZERhdGE6IHJldHVybiAiPC0tLTwtLS08LS0tSlNNRU1PLVNUT1JFIjsKKyAgICBjYXNlIElu
cHV0UXVldWU6OkNvdW50OiByZXR1cm4gIkVSUk9SISI7CisgICAgfQorfQorI2VuZGlmIC8vICFM
T0dfRElTQUJMRUQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYXB0dXJpbmdJbnB1dEN1cnNv
cjo6Q2FwdHVyaW5nSW5wdXRDdXJzb3IoUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2VnbWVudD4g
c2VnbWVudCkKLSAgICA6IG1fc2VnbWVudChzZWdtZW50KQorQ2FwdHVyaW5nSW5wdXRDdXJzb3I6
OkNhcHR1cmluZ0lucHV0Q3Vyc29yKFJlZlB0cjxSZXBsYXlTZXNzaW9uU2VnbWVudD4mJiBzZWdt
ZW50LCBQYWdlJiBwYWdlKQorICAgIDogbV9zZWdtZW50KFdURjo6bW92ZShzZWdtZW50KSkKKyAg
ICAsIG1fcGFnZShwYWdlKQogewogICAgIExPRyhXZWJSZXBsYXksICIlLTMwc0NyZWF0ZWQgY2Fw
dHVyZSBjdXJzb3I9JXAuXG4iLCAiW1JlcGxheUNvbnRyb2xsZXJdIiwgdGhpcyk7CiB9CkBAIC00
OSw5ICs2OCw5IEBAIENhcHR1cmluZ0lucHV0Q3Vyc29yOjp+Q2FwdHVyaW5nSW5wdXRDdXJzb3Io
KQogICAgIExPRyhXZWJSZXBsYXksICIlLTMwc0Rlc3Ryb3llZCBjYXB0dXJlIGN1cnNvcj0lcC5c
biIsICJbUmVwbGF5Q29udHJvbGxlcl0iLCB0aGlzKTsKIH0KIAotUmVmPENhcHR1cmluZ0lucHV0
Q3Vyc29yPiBDYXB0dXJpbmdJbnB1dEN1cnNvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8UmVwbGF5U2Vz
c2lvblNlZ21lbnQ+IHNlZ21lbnQpCitSZWY8Q2FwdHVyaW5nSW5wdXRDdXJzb3I+IENhcHR1cmlu
Z0lucHV0Q3Vyc29yOjpjcmVhdGUoUmVmUHRyPFJlcGxheVNlc3Npb25TZWdtZW50PiYmIHNlZ21l
bnQsIFBhZ2UmIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FwdHVyaW5nSW5w
dXRDdXJzb3Ioc2VnbWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhcHR1cmluZ0lu
cHV0Q3Vyc29yKFdURjo6bW92ZShzZWdtZW50KSwgcGFnZSkpOwogfQogCiB2b2lkIENhcHR1cmlu
Z0lucHV0Q3Vyc29yOjpzdG9yZUlucHV0KHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGlj
SW5wdXRCYXNlPiBpbnB1dCkKQEAgLTY0LDcgKzgzLDIxIEBAIHZvaWQgQ2FwdHVyaW5nSW5wdXRD
dXJzb3I6OnN0b3JlSW5wdXQoc3RkOjp1bmlxdWVfcHRyPE5vbmRldGVybWluaXN0aWNJbnB1dEJh
c2U+CiAgICAgICAgIG1fc2VnbWVudC0+ZXZlbnRMb29wVGltaW5ncygpLmFwcGVuZChub3cpOwog
ICAgIH0KIAotICAgIG1fc2VnbWVudC0+c3RvcmFnZSgpLnN0b3JlKFdURjo6bW92ZShpbnB1dCkp
OworICAgIElucHV0UXVldWUgcXVldWUgPSBpbnB1dC0+cXVldWUoKTsKKyAgICBjb25zdCBTdHJp
bmcmIHR5cGUgPSBpbnB1dC0+dHlwZSgpOworICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkSW5wdXQ7
CisgICAgbV9wYWdlLnJlcGxheUNvbnRyb2xsZXIoKS5jbGllbnQoKS5lbmNvZGVJbnB1dCgqaW5w
dXQsIGVuY29kZWRJbnB1dCk7CisKKyAgICBzaXplX3QgaW5wdXRDb3VudCA9IG1fc2VnbWVudC0+
c3RvcmFnZSgpLnN0b3JlKFdURjo6bW92ZShpbnB1dCkpOworCisjaWYgIUxPR19ESVNBQkxFRAor
ICAgIExPRyhXZWJSZXBsYXksICIlLTE0cyMlLTV6dSAlczogJXMgJXNcbiIsICJSZXBsYXlFdmVu
dHMiLCBpbnB1dENvdW50LCBxdWV1ZVR5cGVUb0xvZ1ByZWZpeChxdWV1ZSksIHR5cGUudXRmOCgp
LmRhdGEoKSwgZW5jb2RlZElucHV0LmFzT2JqZWN0KCktPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocXVldWUpOworICAgIFVOVVNFRF9QQVJB
TSh0eXBlKTsKKyAgICBVTlVTRURfUEFSQU0oZW5jb2RlZElucHV0KTsKKyAgICBVTlVTRURfUEFS
QU0oaW5wdXRDb3VudCk7CisjZW5kaWYKIH0KIAogTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSog
Q2FwdHVyaW5nSW5wdXRDdXJzb3I6OmxvYWRJbnB1dChJbnB1dFF1ZXVlLCBjb25zdCBTdHJpbmcm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29y
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuaAppbmRleCA4
NTFhODg5ODNhNWMyMGIyYzg2OWIwYmI3YzRmZmIwMWVlMGNjNDRjLi4yYjUyMzE3NDQxZTUzYTc2
YzRhYzU5NmQwMDRlMWQ3YjViOGFkOTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvQ2Fw
dHVyaW5nSW5wdXRDdXJzb3IuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmIEVOQUJMRShXRUJfUkVQ
TEFZKQogCiAjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Miw3ICs0Myw3IEBAIGNsYXNzIFJlcGxheVNlc3Npb25TZWdtZW50OwogY2xhc3Mg
Q2FwdHVyaW5nSW5wdXRDdXJzb3IgZmluYWwgOiBwdWJsaWMgSW5wdXRDdXJzb3IgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENhcHR1cmluZ0lucHV0Q3Vyc29yKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPENhcHR1cmluZ0lucHV0Q3Vyc29yPiBjcmVhdGUoUGFzc1JlZlB0cjxSZXBsYXlT
ZXNzaW9uU2VnbWVudD4pOworICAgIHN0YXRpYyBSZWY8Q2FwdHVyaW5nSW5wdXRDdXJzb3I+IGNy
ZWF0ZShSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+JiYsIFBhZ2UmKTsKICAgICB2aXJ0dWFs
IH5DYXB0dXJpbmdJbnB1dEN1cnNvcigpOwogCiAgICAgdmlydHVhbCBib29sIGlzQ2FwdHVyaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTIsMTIgKzUzLDEzIEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UqIGxvYWRJbnB1
dChJbnB1dFF1ZXVlLCBjb25zdCBTdHJpbmcmIHR5cGUpIG92ZXJyaWRlOwogCiBwcml2YXRlOgot
ICAgIENhcHR1cmluZ0lucHV0Q3Vyc29yKFBhc3NSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+
KTsKKyAgICBDYXB0dXJpbmdJbnB1dEN1cnNvcihSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+
JiYsIFBhZ2UmKTsKIAogICAgIHZpcnR1YWwgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSogdW5j
aGVja2VkTG9hZElucHV0KElucHV0UXVldWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
dG9yZUlucHV0KHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPikgb3Zl
cnJpZGU7CiAKICAgICBSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+IG1fc2VnbWVudDsKKyAg
ICBQYWdlJiBtX3BhZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9FdmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3BwCmluZGV4IGYw
ZjM0NTllNDdiNzVjM2M1MGNiOWQ5NzhjZDJhYzliNTVlN2RmYTMuLmM1Y2RlMjQwZjg1MzIzM2Q1
ZGEzYjI5ZGU3OTE5ODMwOTI5NGFlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9FdmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9FdmVudExvb3BJbnB1dERpc3BhdGNoZXIuY3BwCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCB2b2lk
IEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hJbnB1dCgpCiAgICAgfQogCiAjaWYg
IUxPR19ESVNBQkxFRAotICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkSW5wdXQgPSBFbmNvZGluZ1Ry
YWl0czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUoKm1fY3VycmVudFdv
cmsuaW5wdXQpOwotICAgIFN0cmluZyBqc29uU3RyaW5nID0gZW5jb2RlZElucHV0LmFzT2JqZWN0
KCktPnRvSlNPTlN0cmluZygpOwotCi0gICAgTE9HKFdlYlJlcGxheSwgIiUtMjBzIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iLCAiUmVwbGF5RXZlbnRzIik7
Ci0gICAgTE9HKFdlYlJlcGxheSwgIiUtMjBzID5ESVNQQVRDSDogJXMgJXNcbiIsICJSZXBsYXlF
dmVudHMiLCBtX2N1cnJlbnRXb3JrLmlucHV0LT50eXBlKCkudXRmOCgpLmRhdGEoKSwganNvblN0
cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZElucHV0OworICAg
IGlmIChtX3BhZ2UucmVwbGF5Q29udHJvbGxlcigpLmNsaWVudCgpLmVuY29kZUlucHV0KCptX2N1
cnJlbnRXb3JrLmlucHV0LCBlbmNvZGVkSW5wdXQpKSB7CisgICAgICAgIExPRyhXZWJSZXBsYXks
ICIlLTIwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiwg
IlJlcGxheUV2ZW50cyIpOworICAgICAgICBMT0coV2ViUmVwbGF5LCAiJS0yMHMgPkRJU1BBVENI
OiAlcyAlc1xuIiwgIlJlcGxheUV2ZW50cyIsIG1fY3VycmVudFdvcmsuaW5wdXQtPnR5cGUoKS51
dGY4KCkuZGF0YSgpLCBlbmNvZGVkSW5wdXQuYXNPYmplY3QoKS0+dG9KU09OU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgfQogI2VuZGlmCiAKICAgICBtX2NsaWVudC0+d2lsbERpc3BhdGNo
SW5wdXQoKm1fY3VycmVudFdvcmsuaW5wdXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1JlcGxheUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUNsaWVu
dC5oCmluZGV4IDU2YmIyYzA3ZWRmODAwMWFlYzgzYjlhMDA3ZTc0ZTcyYzA0NWRmZTAuLmM2ODE5
ZThmZDdmZmExMjNiZGVkMDc2YmFiYWI0YTI5M2JkMDRhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9SZXBsYXlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkv
UmVwbGF5Q2xpZW50LmgKQEAgLTI4LDYgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoV0VCX1JFUExB
WSkKIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFbmNvZGVkVmFsdWU7CitjbGFzcyBOb25kZXRl
cm1pbmlzdGljSW5wdXRCYXNlOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2
ZW50TG9vcElucHV0QmFzZTsKQEAgLTM3LDYgKzQyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flJlcGxheUNsaWVudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW5wdXQoRXZl
bnRMb29wSW5wdXRCYXNlJikgPSAwOworCisgICAgdmlydHVhbCBib29sIGVuY29kZUlucHV0KGNv
bnN0IEpTQzo6Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSYsIEpTQzo6RW5jb2RlZFZhbHVlJikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVJbnB1dChKU0M6OkVuY29kZWRWYWx1ZSYsIHN0
ZDo6dW5pcXVlX3B0cjxKU0M6Ok5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+JikgPSAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVw
bGF5L1JlcGxheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUNv
bnRyb2xsZXIuY3BwCmluZGV4IGUzNzRmMTBkZjhiZjA2NmY1NzM5MzI0MWZiZjdiMzUzY2NkMmU0
MDUuLmNlZDhmMDYwZDUyNWUzMDg3ZWQ5Mzc0ZjE2OWQ5YmE2NmEyMzRlYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvUmVwbGF5Q29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAog
I2lmIEVOQUJMRShXRUJfUkVQTEFZKQogCi0jaW5jbHVkZSAiQWxsUmVwbGF5SW5wdXRzLmgiCiAj
aW5jbHVkZSAiQ2FwdHVyaW5nSW5wdXRDdXJzb3IuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMjMwLDcgKzIyOSw3IEBAIHZvaWQgUmVw
bGF5Q29udHJvbGxlcjo6Y3JlYXRlU2VnbWVudCgpCiAgICAgTE9HKFdlYlJlcGxheSwgIiUtMjBz
IENyZWF0ZWQgc2VnbWVudDogJXAuXG4iLCAiUmVwbGF5Q29udHJvbGxlciIsIG1fbG9hZGVkU2Vn
bWVudC5nZXQoKSk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzZWdtZW50Q3JlYXRl
ZChtX3BhZ2UsIG1fbG9hZGVkU2VnbWVudC5jb3B5UmVmKCkpOwogCi0gICAgbV9hY3RpdmVDdXJz
b3IgPSBDYXB0dXJpbmdJbnB1dEN1cnNvcjo6Y3JlYXRlKG1fbG9hZGVkU2VnbWVudCk7CisgICAg
bV9hY3RpdmVDdXJzb3IgPSBDYXB0dXJpbmdJbnB1dEN1cnNvcjo6Y3JlYXRlKG1fbG9hZGVkU2Vn
bWVudC5jb3B5UmVmKCksIG1fcGFnZSk7CiAgICAgbV9hY3RpdmVDdXJzb3ItPmFwcGVuZElucHV0
PEJlZ2luU2VnbWVudFNlbnRpbmVsPigpOwogCiAgICAgLy8gRGlzcGF0Y2hpbmcgdGhpcyBpbnB1
dCBzYXZlcyBoaXN0b3J5LCBjbGVhcnMgYWxsIGJ1dCB0aGUgY3VycmVudCBpdGVtLCBhcHBlbmRz
IHNhdmVkCkBAIC0yODAsNyArMjc5LDcgQEAgdm9pZCBSZXBsYXlDb250cm9sbGVyOjpsb2FkU2Vn
bWVudEF0SW5kZXgoc2l6ZV90IHNlZ21lbnRJbmRleCkKICAgICBtX2N1cnJlbnRQb3NpdGlvbi5z
ZWdtZW50T2Zmc2V0ID0gc2VnbWVudEluZGV4OwogICAgIG1fY3VycmVudFBvc2l0aW9uLmlucHV0
T2Zmc2V0ID0gMDsKIAotICAgIG1fYWN0aXZlQ3Vyc29yID0gUmVwbGF5aW5nSW5wdXRDdXJzb3I6
OmNyZWF0ZShtX2xvYWRlZFNlZ21lbnQsIG1fcGFnZSwgdGhpcyk7CisgICAgbV9hY3RpdmVDdXJz
b3IgPSBSZXBsYXlpbmdJbnB1dEN1cnNvcjo6Y3JlYXRlKG1fbG9hZGVkU2VnbWVudC5jb3B5UmVm
KCksIG1fcGFnZSwgdGhpcyk7CiAKICAgICBMT0coV2ViUmVwbGF5LCAiJS0yMHNMb2FkaW5nIHNl
Z21lbnQ6ICVwLlxuIiwgIlJlcGxheUNvbnRyb2xsZXIiLCBzZWdtZW50LmdldCgpKTsKICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNlZ21lbnRMb2FkZWQobV9wYWdlLCBzZWdtZW50LmNv
cHlSZWYoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5aW5nSW5w
dXRDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWluZ0lucHV0Q3Vyc29y
LmNwcAppbmRleCA4NWQ3NDQyYTc5NGUxMzYxMDc4N2M0ZDM4N2UyOTJjOTczMDg1ZjQ3Li4wNTA0
ZDI5YzU0MjZlNGU4NThhZTkzYjNhODFjMGNmNWQ3MjMwYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvUmVwbGF5aW5nSW5wdXRDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9SZXBsYXlpbmdJbnB1dEN1cnNvci5jcHAKQEAgLTMxLDYgKzMxLDEwIEBACiAj
aWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAKICNpbmNsdWRlICJFdmVudExvb3BJbnB1dERpc3BhdGNo
ZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlJlcGxheUNsaWVudC5oIgorI2luY2x1ZGUgIlJlcGxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJSZXBsYXlTZXNzaW9uU2VnbWVudC5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZElucHV0U3RvcmFn
ZS5oIgogI2luY2x1ZGUgIldlYlJlcGxheUlucHV0Q29kZXJzLmgiCkBAIC0zOSw4ICs0MywyMiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlcGxheWluZ0lucHV0Q3Vyc29yOjpSZXBsYXlp
bmdJbnB1dEN1cnNvcihQYXNzUmVmUHRyPFJlcGxheVNlc3Npb25TZWdtZW50PiBzZWdtZW50LCBQ
YWdlJiBwYWdlLCBFdmVudExvb3BJbnB1dERpc3BhdGNoZXJDbGllbnQqIGNsaWVudCkKLSAgICA6
IG1fc2VnbWVudChzZWdtZW50KQorI2lmICFMT0dfRElTQUJMRUQKKy8vIFRoaXMgaXMgdXNlZCB0
byBtYWtlIHRoZSBsb2cgc3BldyBmcm9tIExPRyhXZWJSZXBsYXksIC4uLikgbW9yZSByZWFkYWJs
ZS4KK3N0YXRpYyBjb25zdCBjaGFyKiBxdWV1ZVR5cGVUb0xvZ1ByZWZpeChJbnB1dFF1ZXVlIHF1
ZXVlKQoreworICAgIHN3aXRjaCAocXVldWUpIHsKKyAgICBjYXNlIElucHV0UXVldWU6OkV2ZW50
TG9vcElucHV0OiByZXR1cm4gIihEU1BUQ0gtTE9BRCkiOworICAgIGNhc2UgSW5wdXRRdWV1ZTo6
TG9hZGVyTWVtb2l6ZWREYXRhOiByZXR1cm4gIjxMRE1FTU8tTE9BRCI7CisgICAgY2FzZSBJbnB1
dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE6IHJldHVybiAiPC0tLTwtLS08LS0tSlNNRU1PLUxP
QUQiOworICAgIGNhc2UgSW5wdXRRdWV1ZTo6Q291bnQ6IHJldHVybiAiRVJST1IhIjsKKyAgICB9
Cit9CisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRAorCitSZXBsYXlpbmdJbnB1dEN1cnNvcjo6UmVw
bGF5aW5nSW5wdXRDdXJzb3IoUmVmUHRyPFJlcGxheVNlc3Npb25TZWdtZW50PiYmIHNlZ21lbnQs
IFBhZ2UmIHBhZ2UsIEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlckNsaWVudCogY2xpZW50KQorICAg
IDogbV9zZWdtZW50KFdURjo6bW92ZShzZWdtZW50KSkKKyAgICAsIG1fcGFnZShwYWdlKQogICAg
ICwgbV9kaXNwYXRjaGVyKHN0ZDo6bWFrZV91bmlxdWU8RXZlbnRMb29wSW5wdXREaXNwYXRjaGVy
PihwYWdlLCAqdGhpcywgY2xpZW50KSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0
YXRpY19jYXN0PHNpemVfdD4oSW5wdXRRdWV1ZTo6Q291bnQpOyBpKyspCkBAIC01MSw5ICs2OSw5
IEBAIFJlcGxheWluZ0lucHV0Q3Vyc29yOjp+UmVwbGF5aW5nSW5wdXRDdXJzb3IoKQogewogfQog
Ci1QYXNzUmVmUHRyPFJlcGxheWluZ0lucHV0Q3Vyc29yPiBSZXBsYXlpbmdJbnB1dEN1cnNvcjo6
Y3JlYXRlKFBhc3NSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+IHNlZ21lbnQsIFBhZ2UmIHBh
Z2UsIEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlckNsaWVudCogY2xpZW50KQorUmVmPFJlcGxheWlu
Z0lucHV0Q3Vyc29yPiBSZXBsYXlpbmdJbnB1dEN1cnNvcjo6Y3JlYXRlKFJlZlB0cjxSZXBsYXlT
ZXNzaW9uU2VnbWVudD4mJiBzZWdtZW50LCBQYWdlJiBwYWdlLCBFdmVudExvb3BJbnB1dERpc3Bh
dGNoZXJDbGllbnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlcGxheWlu
Z0lucHV0Q3Vyc29yKHNlZ21lbnQsIHBhZ2UsIGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlcGxheWluZ0lucHV0Q3Vyc29yKFdURjo6bW92ZShzZWdtZW50KSwgcGFnZSwgY2xp
ZW50KSk7CiB9CiAKIHZvaWQgUmVwbGF5aW5nSW5wdXRDdXJzb3I6OnN0b3JlSW5wdXQoc3RkOjp1
bmlxdWVfcHRyPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+KQpAQCAtNjIsNyArODAsNyBAQCB2
b2lkIFJlcGxheWluZ0lucHV0Q3Vyc29yOjpzdG9yZUlucHV0KHN0ZDo6dW5pcXVlX3B0cjxOb25k
ZXRlcm1pbmlzdGljSW5wdXRCYXNlPgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1O
b25kZXRlcm1pbmlzdGljSW5wdXRCYXNlKiBSZXBsYXlpbmdJbnB1dEN1cnNvcjo6bG9hZElucHV0
KElucHV0UXVldWUgcXVldWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKK05vbmRldGVybWlu
aXN0aWNJbnB1dEJhc2UqIFJlcGxheWluZ0lucHV0Q3Vyc29yOjpsb2FkSW5wdXQoSW5wdXRRdWV1
ZSBxdWV1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIE5vbmRldGVybWluaXN0aWNJbnB1
dEJhc2UqIGlucHV0ID0gdW5jaGVja2VkTG9hZElucHV0KHF1ZXVlKTsKIApAQCAtODIsNyArMTAw
LDE1IEBAIE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UqIFJlcGxheWluZ0lucHV0Q3Vyc29yOjp1
bmNoZWNrZWRMb2FkSW5wdXQoSW5wdXRRdWV1ZSBxCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIHJldHVybiBtX3NlZ21lbnQtPnN0b3JhZ2UoKS5sb2FkKHF1ZXVlLCBtX3Bv
c2l0aW9uc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHF1ZXVlKV0rKyk7CisgICAgTm9uZGV0ZXJtaW5p
c3RpY0lucHV0QmFzZSogaW5wdXQgPSBtX3NlZ21lbnQtPnN0b3JhZ2UoKS5sb2FkKHF1ZXVlLCBt
X3Bvc2l0aW9uc1tzdGF0aWNfY2FzdDxzaXplX3Q+KHF1ZXVlKV0rKyk7CisgICAgaWYgKCFpbnB1
dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgRW5jb2RlZFZhbHVlIGVuY29k
ZWRJbnB1dDsKKyAgICBtX3BhZ2UucmVwbGF5Q29udHJvbGxlcigpLmNsaWVudCgpLmVuY29kZUlu
cHV0KCppbnB1dCwgZW5jb2RlZElucHV0KTsKKyAgICBMT0coV2ViUmVwbGF5LCAiJS0yMHMgJXM6
ICVzICVzXG4iLCAiUmVwbGF5RXZlbnRzIiwgcXVldWVUeXBlVG9Mb2dQcmVmaXgocXVldWUpLCBp
bnB1dC0+dHlwZSgpLnV0ZjgoKS5kYXRhKCksIGVuY29kZWRJbnB1dC5hc09iamVjdCgpLT50b0pT
T05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIHJldHVybiBpbnB1dDsKIH0KIAogRXZl
bnRMb29wSW5wdXREYXRhIFJlcGxheWluZ0lucHV0Q3Vyc29yOjpsb2FkRXZlbnRMb29wSW5wdXQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheWluZ0lucHV0Q3Vyc29y
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5aW5nSW5wdXRDdXJzb3IuaAppbmRleCBm
Mzc5MDY2OGY3Y2U5OGU4ZDU4OTk1MWYwZDFjMGFhYTgyNzFiYmVjLi4wZGExZTk2ZDYzMGM2ZDk1
MWE0NmY0ZDU1YzkzYTRjYmNjZWNhNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvUmVwbGF5aW5nSW5wdXRDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVw
bGF5aW5nSW5wdXRDdXJzb3IuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkV2ZW50TG9v
cElucHV0LmgiCiAjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDcgKzQ1LDcgQEAgY2xhc3MgUmVwbGF5U2Vzc2lvblNlZ21l
bnQ7CiBjbGFzcyBSZXBsYXlpbmdJbnB1dEN1cnNvciBmaW5hbCA6IHB1YmxpYyBJbnB1dEN1cnNv
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVwbGF5aW5nSW5wdXRDdXJzb3IpOwogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlcGxheWluZ0lucHV0Q3Vyc29yPiBjcmVhdGUo
UGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2VnbWVudD4sIFBhZ2UmLCBFdmVudExvb3BJbnB1dERp
c3BhdGNoZXJDbGllbnQqKTsKKyAgICBzdGF0aWMgUmVmPFJlcGxheWluZ0lucHV0Q3Vyc29yPiBj
cmVhdGUoUmVmUHRyPFJlcGxheVNlc3Npb25TZWdtZW50PiYmLCBQYWdlJiwgRXZlbnRMb29wSW5w
dXREaXNwYXRjaGVyQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+UmVwbGF5aW5nSW5wdXRDdXJzb3Io
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhcHR1cmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CkBAIC01NiwxNCArNTUsMTUgQEAgcHVibGljOgogCiAgICAgRXZlbnRMb29w
SW5wdXREYXRhIGxvYWRFdmVudExvb3BJbnB1dCgpOwogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSogbG9hZElucHV0KElucHV0UXVldWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb25kZXRlcm1pbmlzdGlj
SW5wdXRCYXNlKiBsb2FkSW5wdXQoSW5wdXRRdWV1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKSBvdmVy
cmlkZTsKIHByaXZhdGU6Ci0gICAgUmVwbGF5aW5nSW5wdXRDdXJzb3IoUGFzc1JlZlB0cjxSZXBs
YXlTZXNzaW9uU2VnbWVudD4sIFBhZ2UmLCBFdmVudExvb3BJbnB1dERpc3BhdGNoZXJDbGllbnQq
KTsKKyAgICBSZXBsYXlpbmdJbnB1dEN1cnNvcihSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+
JiYsIFBhZ2UmLCBFdmVudExvb3BJbnB1dERpc3BhdGNoZXJDbGllbnQqKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBzdG9yZUlucHV0KHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRC
YXNlPikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlKiB1
bmNoZWNrZWRMb2FkSW5wdXQoSW5wdXRRdWV1ZSkgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8UmVw
bGF5U2Vzc2lvblNlZ21lbnQ+IG1fc2VnbWVudDsKKyAgICBQYWdlJiBtX3BhZ2U7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlcj4gbV9kaXNwYXRjaGVyOwogICAg
IFZlY3RvcjxzaXplX3Q+IG1fcG9zaXRpb25zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1dFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVw
bGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHAKaW5kZXggYjllOWM3YjM0NTNhZjg1N2IxYTkw
Yzc4MTU3MzdjOTkyNTI4YjdlNy4uYWNjOGE4YTBjZWYyZjk1Mzg4NmI4Y2NkMjc5NzEyYjk0OWVk
N2FlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlZ21lbnRlZElucHV0U3Rv
cmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlZ21lbnRlZElucHV0U3RvcmFn
ZS5jcHAKQEAgLTMwLDQ0ICszMCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKIAotI2lm
ICFMT0dfRElTQUJMRUQKLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiV2ViUmVwbGF5
SW5wdXRDb2RlcnMuaCIKLSNpbmNsdWRlIDxyZXBsYXkvRW5jb2RlZFZhbHVlLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgot
I2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFMT0dfRElTQUJMRUQKLS8vIFRo
ZXNlIGFyZSB1c2VkIHRvIG1ha2UgdGhlIGxvZyBzcGV3IGZyb20gTE9HKFdlYlJlcGxheSwgLi4u
KSBtb3JlIHJlYWRhYmxlLgotc3RhdGljIGNvbnN0IGNoYXIqIHF1ZXVlVHlwZVRvTG9nUHJlZml4
KElucHV0UXVldWUgaW5wdXRRdWV1ZSwgYm9vbCBpc0xvYWQpCi17Ci0gICAgaWYgKGlzTG9hZCkg
ewotICAgICAgICBzd2l0Y2ggKGlucHV0UXVldWUpIHsKLSAgICAgICAgY2FzZSBJbnB1dFF1ZXVl
OjpFdmVudExvb3BJbnB1dDogcmV0dXJuICIoRFNQVENILUxPQUQpIjsKLSAgICAgICAgY2FzZSBJ
bnB1dFF1ZXVlOjpMb2FkZXJNZW1vaXplZERhdGE6IHJldHVybiAiPExETUVNTy1MT0FEIjsKLSAg
ICAgICAgY2FzZSBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE6IHJldHVybiAiPC0tLTwt
LS08LS0tSlNNRU1PLUxPQUQiOwotICAgICAgICBjYXNlIElucHV0UXVldWU6OkNvdW50OiByZXR1
cm4gIkVSUk9SISI7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBzd2l0Y2ggKGlu
cHV0UXVldWUpIHsKLSAgICAgICAgY2FzZSBJbnB1dFF1ZXVlOjpFdmVudExvb3BJbnB1dDogcmV0
dXJuICI+RFNQVENILVNUT1JFIjsKLSAgICAgICAgY2FzZSBJbnB1dFF1ZXVlOjpMb2FkZXJNZW1v
aXplZERhdGE6IHJldHVybiAiPExETUVNTy1TVE9SRSI7Ci0gICAgICAgIGNhc2UgSW5wdXRRdWV1
ZTo6U2NyaXB0TWVtb2l6ZWREYXRhOiByZXR1cm4gIjwtLS08LS0tPC0tLUpTTUVNTy1TVE9SRSI7
Ci0gICAgICAgIGNhc2UgSW5wdXRRdWV1ZTo6Q291bnQ6IHJldHVybiAiRVJST1IhIjsKLSAgICAg
ICAgfQotICAgIH0KLX0KLQotc3RhdGljIFN0cmluZyBqc29uU3RyaW5nRm9ySW5wdXQoY29uc3Qg
Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSYgaW5wdXQpCi17Ci0gICAgRW5jb2RlZFZhbHVlIGVu
Y29kZWRWYWx1ZSA9IEVuY29kaW5nVHJhaXRzPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+Ojpl
bmNvZGVWYWx1ZShpbnB1dCk7Ci0gICAgcmV0dXJuIGVuY29kZWRWYWx1ZS5hc09iamVjdCgpLT50
b0pTT05TdHJpbmcoKTsKLX0KLSNlbmRpZiAvLyAhTE9HX0RJU0FCTEVECi0KIHN0YXRpYyBzaXpl
X3Qgb2Zmc2V0Rm9ySW5wdXRRdWV1ZShJbnB1dFF1ZXVlIGlucHV0UXVldWUpCiB7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHNpemVfdD4oaW5wdXRRdWV1ZSk7CkBAIC05MywxOSArNTcsMTYgQEAg
Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSogU2VnbWVudGVkSW5wdXRTdG9yYWdlOjpsb2FkKElu
cHV0UXVldWUgaW5wdXRRdWV1ZSwgc2kKICAgICBOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlKiBp
bnB1dCA9IHF1ZXVlKGlucHV0UXVldWUpLmF0KG9mZnNldCkuZ2V0KCk7CiAgICAgQVNTRVJUKGlu
cHV0KTsKIAotICAgIExPRyhXZWJSZXBsYXksICIlLTIwcyAlczogJXMgJXNcbiIsICJSZXBsYXlF
dmVudHMiLCBxdWV1ZVR5cGVUb0xvZ1ByZWZpeChpbnB1dFF1ZXVlLCB0cnVlKSwgaW5wdXQtPnR5
cGUoKS51dGY4KCkuZGF0YSgpLCBqc29uU3RyaW5nRm9ySW5wdXQoKmlucHV0KS51dGY4KCkuZGF0
YSgpKTsKLQogICAgIHJldHVybiBpbnB1dDsKIH0KIAotdm9pZCBTZWdtZW50ZWRJbnB1dFN0b3Jh
Z2U6OnN0b3JlKHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPiBpbnB1
dCkKK3NpemVfdCBTZWdtZW50ZWRJbnB1dFN0b3JhZ2U6OnN0b3JlKHN0ZDo6dW5pcXVlX3B0cjxO
b25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPiBpbnB1dCkKIHsKICAgICBBU1NFUlQoaW5wdXQpOwog
ICAgIEFTU0VSVChpbnB1dC0+cXVldWUoKSA8IElucHV0UXVldWU6OkNvdW50KTsKIAotICAgIExP
RyhXZWJSZXBsYXksICIlLTE0cyMlLTV1ICVzOiAlcyAlc1xuIiwgIlJlcGxheUV2ZW50cyIsIG1f
aW5wdXRDb3VudCsrLCBxdWV1ZVR5cGVUb0xvZ1ByZWZpeChpbnB1dC0+cXVldWUoKSwgZmFsc2Up
LCBpbnB1dC0+dHlwZSgpLnV0ZjgoKS5kYXRhKCksIGpzb25TdHJpbmdGb3JJbnB1dCgqaW5wdXQp
LnV0ZjgoKS5kYXRhKCkpOwotCiAgICAgbV9xdWV1ZXMuYXQob2Zmc2V0Rm9ySW5wdXRRdWV1ZShp
bnB1dC0+cXVldWUoKSkpLT5hcHBlbmQoV1RGOjptb3ZlKGlucHV0KSk7CisgICAgcmV0dXJuIG1f
aW5wdXRDb3VudCsrOwogfQogCiBzaXplX3QgU2VnbWVudGVkSW5wdXRTdG9yYWdlOjpxdWV1ZVNp
emUoSW5wdXRRdWV1ZSBpbnB1dFF1ZXVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5
L1NlZ21lbnRlZElucHV0U3RvcmFnZS5oCmluZGV4IGI4NzIxMWIzOWRjNmI5OWFlZTJjNGFiOTNh
YmMxYjkyZTk5ZDkzYTQuLjczMTY1MTI5OWQ2MGQ5NDRmMDMxMWE4ZDNhMDgwMzlkZmVlNTczYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1dFN0b3JhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VnbWVudGVkSW5wdXRTdG9yYWdlLmgKQEAg
LTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIH5TZWdtZW50ZWRJbnB1dFN0b3JhZ2UoKTsKIAog
ICAgIE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UqIGxvYWQoSW5wdXRRdWV1ZSwgc2l6ZV90KTsK
LSAgICB2b2lkIHN0b3JlKHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNl
Pik7CisgICAgc2l6ZV90IHN0b3JlKHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5w
dXRCYXNlPik7CiAgICAgc2l6ZV90IHF1ZXVlU2l6ZShJbnB1dFF1ZXVlKSBjb25zdDsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJSZXBsYXlJbnB1dENv
ZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViUmVwbGF5SW5wdXRDb2RlcnMuY3Bw
CmluZGV4IDIxNjNkOThiNzA0ZGU1MDdjODM4Y2MyYjU5OGQ3YTc1ZDk4YmFmMjUuLjE3MzQ2YTE4
ZDViZjFkNjM3MTFlYjU3NDRjNTM0OWY0MjQ0Nzc5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9XZWJSZXBsYXlJbnB1dENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1dlYlJlcGxheUlucHV0Q29kZXJzLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaWYg
RU5BQkxFKFdFQl9SRVBMQVkpCiAKLSNpbmNsdWRlICJBbGxSZXBsYXlJbnB1dHMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKQEAgLTM5LDYgKzM4LDcgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVk
ZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJNZW1v
aXplZERPTVJlc3VsdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKQEAgLTUzLDYg
KzUzLDggQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRl
RGF0YS5oIgogI2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgIldlYlJlcGxheUlucHV0cy5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmVwbGF5SW5wdXRzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQmFzZTY0Lmg+CiAKIHVzaW5nIFdlYkNvcmU6OkZvcm1EYXRhOwpAQCAtMzMzLDMxICsz
MzUsNiBAQCBib29sIEVuY29kaW5nVHJhaXRzPE1pbWVDbGFzc0luZm8+OjpkZWNvZGVWYWx1ZShF
bmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBNaW1lQwogICAgIHJldHVybiB0cnVlOwogfQogCi1F
bmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT46OmVu
Y29kZVZhbHVlKGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UmIGlucHV0KQotewotICAg
IEVuY29kZWRWYWx1ZSBlbmNvZGVkVmFsdWUgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZU9iamVjdCgp
OwotICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCB0eXBlLCBp
bnB1dC50eXBlKCkpOwotCi0jZGVmaW5lIEVOQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKG5hbWUp
IFwKLSAgICBpZiAoaW5wdXQudHlwZSgpID09IElucHV0VHJhaXRzPG5hbWU+Ojp0eXBlKCkpIHsg
XAotICAgICAgICBJbnB1dFRyYWl0czxuYW1lPjo6ZW5jb2RlKGVuY29kZWRWYWx1ZSwgc3RhdGlj
X2Nhc3Q8Y29uc3QgbmFtZSY+KGlucHV0KSk7IFwKLSAgICAgICAgcmV0dXJuIGVuY29kZWRWYWx1
ZTsgXAotICAgIH0gXAotCi0gICAgSlNfUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9FQUNIKEVOQ09E
RV9JRl9UWVBFX1RBR19NQVRDSEVTKQotICAgIFdFQl9SRVBMQVlfSU5QVVRfTkFNRVNfRk9SX0VB
Q0goRU5DT0RFX0lGX1RZUEVfVEFHX01BVENIRVMpCi0jdW5kZWYgRU5DT0RFX0lGX1RZUEVfVEFH
X01BVENIRVMKLQotICAgIC8vIFRoZSBtYWNybyB3b24ndCB3b3JrIGhlcmUgYmVjYXVzZSBvZiB0
aGUgY2xhc3MgdGVtcGxhdGUgYXJndW1lbnQuCi0gICAgaWYgKGlucHV0LnR5cGUoKSA9PSBJbnB1
dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+Ojp0eXBlKCkpIHsKLSAgICAgICAgSW5wdXRU
cmFpdHM8TWVtb2l6ZWRET01SZXN1bHRCYXNlPjo6ZW5jb2RlKGVuY29kZWRWYWx1ZSwgc3RhdGlj
X2Nhc3Q8Y29uc3QgTWVtb2l6ZWRET01SZXN1bHRCYXNlJj4oaW5wdXQpKTsKLSAgICAgICAgcmV0
dXJuIGVuY29kZWRWYWx1ZTsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gRW5jb2RlZFZhbHVlKCk7Ci19Ci0KIEVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0
czxIaXN0b3J5SXRlbT46OmVuY29kZVZhbHVlKFJlZlB0cjxIaXN0b3J5SXRlbT4gaXRlbSkKIHsK
ICAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmpl
Y3QoKTsKQEAgLTQ0NiwzNiArNDIzLDYgQEAgYm9vbCBFbmNvZGluZ1RyYWl0czxJbnRQb2ludD46
OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZERhdGEsIEludFBvaW50JgogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEVuY29kaW5nVHJhaXRzPE5vbmRldGVybWluaXN0aWNJbnB1
dEJhc2U+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgc3RkOjp1bmlx
dWVfcHRyPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+JiBpbnB1dCkKLXsKLSAgICBERUNPREVf
VFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdHlwZSk7Ci0KLSNkZWZpbmUgREVD
T0RFX0lGX1RZUEVfVEFHX01BVENIRVMobmFtZSkgXAotICAgIGlmICh0eXBlID09IElucHV0VHJh
aXRzPG5hbWU+Ojp0eXBlKCkpIHsgXAotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8bmFtZT4gZGVj
b2RlZElucHV0OyBcCi0gICAgICAgIGlmICghSW5wdXRUcmFpdHM8bmFtZT46OmRlY29kZShlbmNv
ZGVkVmFsdWUsIGRlY29kZWRJbnB1dCkpIFwKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsgXAot
ICAgICAgICBcCi0gICAgICAgIGlucHV0ID0gV1RGOjptb3ZlKGRlY29kZWRJbnB1dCk7IFwKLSAg
ICAgICAgcmV0dXJuIHRydWU7IFwKLSAgICB9IFwKLQotICAgIEpTX1JFUExBWV9JTlBVVF9OQU1F
U19GT1JfRUFDSChERUNPREVfSUZfVFlQRV9UQUdfTUFUQ0hFUykKLSAgICBXRUJfUkVQTEFZX0lO
UFVUX05BTUVTX0ZPUl9FQUNIKERFQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKQotI3VuZGVmIERF
Q09ERV9JRl9UWVBFX1RBR19NQVRDSEVTCi0KLSAgICBpZiAodHlwZSA9PSBJbnB1dFRyYWl0czxN
ZW1vaXplZERPTVJlc3VsdEJhc2U+Ojp0eXBlKCkpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PE1lbW9pemVkRE9NUmVzdWx0QmFzZT4gZGVjb2RlZElucHV0OwotICAgICAgICBpZiAoIUlucHV0
VHJhaXRzPE1lbW9pemVkRE9NUmVzdWx0QmFzZT46OmRlY29kZShlbmNvZGVkVmFsdWUsIGRlY29k
ZWRJbnB1dCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaW5wdXQgPSBX
VEY6Om1vdmUoZGVjb2RlZElucHV0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiAjaWYgVVNFKEFQUEtJVCkKIEVuY29kZWRWYWx1ZSBFbmNv
ZGluZ1RyYWl0czxLZXlwcmVzc0NvbW1hbmQ+OjplbmNvZGVWYWx1ZShjb25zdCBLZXlwcmVzc0Nv
bW1hbmQmIGNvbW1hbmQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2Vi
UmVwbGF5SW5wdXRDb2RlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJSZXBsYXlJbnB1
dENvZGVycy5oCmluZGV4IDU5ZjVjYjY3MjQwMjM3MjFiNWUyMWI5OTJkODg1MDhlOTJjYjBhMzMu
LmE1ZDc2N2ZhMTYwMjFiMTk5MzFlMTY4MTEwNTU4ZjU4NmI1NTM4MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9XZWJSZXBsYXlJbnB1dENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlcGxheS9XZWJSZXBsYXlJbnB1dENvZGVycy5oCkBAIC0xMDcsMTMgKzEwNyw2IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiB7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgUmVmUHRyPFdlYkNv
cmU6Okhpc3RvcnlJdGVtPiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFp
dHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT4gewotICAgIHR5cGVkZWYgTm9uZGV0ZXJtaW5p
c3RpY0lucHV0QmFzZSBEZWNvZGVkVHlwZTsKLQotICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUgZW5j
b2RlVmFsdWUoY29uc3QgTm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSYgdmFsdWUpOwotICAgIHN0
YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxOb25k
ZXRlcm1pbmlzdGljSW5wdXRCYXNlPiYgdmFsdWUpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50PiB7CiAgICAgdHlw
ZWRlZiBXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQgRGVjb2RlZFR5cGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJSZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9k
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhv
ZHMuY3BwCmluZGV4IGVhNDUyZTZiNTkxZGQ5ZWZjMjdlZTZjMWUwZmRkNWZlMTRkNDEwMDAuLjdi
NTY2MmM4YjZhOWQzZTE1ZmU5NGIzNmRkODQ2OTY3Y2M0NDM4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9XZWJSZXBsYXlJbnB1dERpc3BhdGNoTWV0aG9kcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYlJlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcApA
QCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCiAKLSNpbmNsdWRlICJB
bGxSZXBsYXlJbnB1dHMuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC00NSw2ICs0NCw3
IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJXZWJSZXBsYXlJbnB1dENvZGVycy5oIgorI2luY2x1ZGUgIldlYlJl
cGxheUlucHV0cy5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlVzZXJJbnB1dEJyaWRn
ZS5oIgogI2luY2x1ZGUgPGNpbnR0eXBlcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYzhjZTRm
NWZkNWM0MDZmNmMxMzQxNTE3ZjUzOTcxMjMwNjQzNjFmMC4uYmI3MGRhMTgzNjliMmE1MGY0ODM2
YWE0Zjg5ZTk2NGY3YmYyODg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTc4Niw2ICs3ODYs
NyBAQCBpZiAoRU5BQkxFX1dFQl9SRVBMQVkpCiAgICAgICAgIFZFUkJBVElNKQogCiAgICAgbGlz
dChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCisgICAgICAgIFdlYlByb2Nlc3MvUmVwbGF5L1dLUmVw
bGF5SW5wdXRDb2RlcnMuY3BwCiAgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElS
fS9XS1JlcGxheUlucHV0cy5jcHAKICAgICApCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1YzQ5NTMwMTFjY2Qw
NDE0NGQ0YjllMGY2ZTdlMTE0N2MwOWI5YzIuLjc1MGQ3MjE4YWExYzQyY2Q5NmExNDU2MTNkNTM4
NWJkZDAxOGE2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE1NzUsNiArMTU3NSw4IEBACiAJCUM0OTQ3NEIxMTlBM0Y5NDcw
MDlCM0RFOCAvKiBXZWJSZXBsYXlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzQ5NDc0QUQxOUEzRjkyNDAwOUIzREU4IC8qIFdlYlJlcGxh
eUNsaWVudC5jcHAgKi87IH07CiAJCUM0OTQ3NEI3MTlBNDFCNzMwMDlCM0RFOCAvKiBXS1JlcGxh
eUlucHV0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNDk0NzRCNTE5QTQxQjczMDA5QjNERTggLyogV0tSZXBsYXlJbnB1dHMuY3BwICovOyB9Owog
CQlDNDk0NzRCODE5QTQxQjczMDA5QjNERTggLyogV0tSZXBsYXlJbnB1dHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0OTQ3NEI2MTlBNDFCNzMwMDlC
M0RFOCAvKiBXS1JlcGxheUlucHV0cy5oICovOyB9OworCQlDNDk0NzRCQjE5QTU0MTNGMDA5QjNE
RTggLyogV0tSZXBsYXlJbnB1dENvZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDNDk0NzRCOTE5QTU0MTNGMDA5QjNERTggLyogV0tSZXBsYXlJ
bnB1dENvZGVycy5jcHAgKi87IH07CisJCUM0OTQ3NEJDMTlBNTQxM0YwMDlCM0RFOCAvKiBXS1Jl
cGxheUlucHV0Q29kZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNDk0NzRCQTE5QTU0MTNGMDA5QjNERTggLyogV0tSZXBsYXlJbnB1dENvZGVycy5o
ICovOyB9OwogCQlDNTE3Mzg4MTEyREY4RjRGMDBFRTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTcz
ODgwMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovOyB9OwogCQlD
NTIzN0Y2MDEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUyMzdGNUYxMjQ0MUNBMzAw
NzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAqLzsgfTsKIAkJQzU0MjU2QjUxOEJFQzE4
QzAwREU0MTc5IC8qIFdLRm9ybUlucHV0Q29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU0MjU2QUYxOEJFQzE4QjAwREU0MTc5IC8qIFdLRm9y
bUlucHV0Q29udHJvbC5oICovOyB9OwpAQCAtMzcyOCw2ICszNzMwLDggQEAKIAkJQzQ5NDc0QjMx
OUE0MTI0NjAwOUIzREU4IC8qIFdLSW5wdXRzLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247IHBh
dGggPSBXS0lucHV0cy5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNDk0NzRC
NTE5QTQxQjczMDA5QjNERTggLyogV0tSZXBsYXlJbnB1dHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0tSZXBsYXlJbnB1dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNDk0NzRCNjE5QTQxQjczMDA5QjNERTggLyogV0tSZXBsYXlJbnB1dHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tSZXBsYXlJbnB1dHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzQ5NDc0QjkxOUE1NDEzRjAwOUIzREU4IC8qIFdL
UmVwbGF5SW5wdXRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tSZXBsYXlJbnB1dENvZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUM0OTQ3NEJBMTlBNTQxM0YwMDlCM0RFOCAvKiBXS1JlcGxheUlucHV0Q29kZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUmVwbGF5SW5wdXRDb2RlcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxNzM4ODAxMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdD
b250cm9sbGVyQWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdD
b250cm9sbGVyQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MjM3RjVG
MTI0NDFDQTMwMDc4MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFZGl0b3JDbGllbnRNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1NDI1NkFGMThCRUMxOEIwMERFNDE3OSAvKiBXS0Zvcm1J
bnB1dENvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tGb3JtSW5w
dXRDb250cm9sLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDk2LDYgKzcxMDAsOCBAQAogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDNDk0NzRCMzE5QTQxMjQ2MDA5QjNERTggLyog
V0tJbnB1dHMuanNvbiAqLywKKwkJCQlDNDk0NzRCOTE5QTU0MTNGMDA5QjNERTggLyogV0tSZXBs
YXlJbnB1dENvZGVycy5jcHAgKi8sCisJCQkJQzQ5NDc0QkExOUE1NDEzRjAwOUIzREU4IC8qIFdL
UmVwbGF5SW5wdXRDb2RlcnMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gUmVwbGF5OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTgwMjksNiArODAzNSw3IEBACiAJCQkJMzc5NDg0MDkx
NTBDNEI5NzAwRTUyQ0U5IC8qIFdLUmVuZGVyTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3
NjA4ODIzMTUwNDE0RjcwMEZDODJDNyAvKiBXS1JlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzQ5NDc0QjgxOUE0MUI3MzAwOUIzREU4IC8qIFdLUmVwbGF5SW5wdXRzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDNDk0NzRCQzE5QTU0MTNGMDA5QjNERTggLyogV0tSZXBsYXlJbnB1dENv
ZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzMzNjc2M0IxMzBDOTlEQzAwNkM5REUyIC8qIFdL
UmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEE1MDE1MTE3NjVG
NTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3RTM3Nzkx
OEU0QTRGRTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05
NzA0LDYgKzk3MTEsNyBAQAogCQkJCTFBOUUzMjlFMTgyMkZFREQwMEY1RDA0QyAvKiBXS1JlbW90
ZU9iamVjdENvZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5NDg0MDgxNTBDNEI5NzAwRTUy
Q0U5IC8qIFdLUmVuZGVyTGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc2MDg4MjIxNTA0
MTRGNzAwRkM4MkM3IC8qIFdLUmVuZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM0
OTQ3NEJCMTlBNTQxM0YwMDlCM0RFOCAvKiBXS1JlcGxheUlucHV0Q29kZXJzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUM0OTQ3NEI3MTlBNDFCNzMwMDlCM0RFOCAvKiBXS1JlcGxheUlucHV0cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzYzQTEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNv
dXJjZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTdFMzc3ODE4RTRBNEZF
MDAzRDBGRkYgLyogV0tTY3JpcHRNZXNzYWdlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1JlcGxheS9XS0lucHV0cy5qc29uIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9SZXBsYXkvV0tJbnB1dHMuanNvbgppbmRleCA0MmFjNWFiMGJi
M2MwOTAzYjYzZDlkZjQwZTg4MTU0NWQwNjVhODNjLi5kMDE3NzdlMzEwZTE2MzM2ZjNkOTAzNTk5
M2NiNzliM2Y4OGRhN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jl
cGxheS9XS0lucHV0cy5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVwbGF5
L1dLSW5wdXRzLmpzb24KQEAgLTEzLDkgKzEzLDkgQEAKIAogICAgICJpbnB1dHMiOiBbCiAgICAg
ICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogIkhhbmRsZU1vdXNlTW92ZSIsCisgICAgICAgICAg
ICAibmFtZSI6ICJIYW5kbGVNb3VzZU1vdmVEdW1teSIsCiAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiVGhlIGVtYmVkZGVyIHNpZ25hbGxlZCBhIG1vdXNlIG1vdmUgZXZlbnQuIiwKLSAgICAg
ICAgICAgICJxdWV1ZSI6ICJFVkVOVF9MT09QIiwKKyAgICAgICAgICAgICJxdWV1ZSI6ICJTQ1JJ
UFRfTUVNT0laRUQiLAogICAgICAgICAgICAgIm1lbWJlcnMiOiBbCiAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJwbGF0Zm9ybUV2ZW50IiwgInR5cGUiOiAiUGxhdGZvcm1Nb3VzZUV2ZW50IiB9
LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Nyb2xsYmFyVGFyZ2V0ZWQiLCAidHlwZSI6
ICJib29sIiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1JlcGxheS9X
S1JlcGxheUlucHV0Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVwbGF5
L1dLUmVwbGF5SW5wdXRDb2RlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MzNjZmQ2M2E4NjlkNDc0ZjYy
YzgzOWEyNzllNjNjNTM0NTVkYTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1JlcGxheS9XS1JlcGxheUlucHV0Q29kZXJzLmNwcApAQCAtMCwwICsxLDEzNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0
b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMgIkFTCisgKiBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQKKyAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQorICogUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBIT0xE
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1JlcGxheUlucHV0Q29kZXJzLmgiCisKKyNp
ZiBFTkFCTEUoV0VCX1JFUExBWSkKKworI2luY2x1ZGUgIldLUmVwbGF5SW5wdXRzLmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXBsYXlJbnB1dHMuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L01lbW9pemVkRE9NUmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJSZXBsYXlJbnB1dHMu
aD4KKworI2RlZmluZSBJTVBPUlRfRlJPTV9KU0NfTkFNRVNQQUNFKG5hbWUpIFwKK3VzaW5nIEpT
Qzo6bmFtZTsgXAorCitKU19SRVBMQVlfSU5QVVRfTkFNRVNfRk9SX0VBQ0goSU1QT1JUX0ZST01f
SlNDX05BTUVTUEFDRSkKKyN1bmRlZiBJTVBPUlRfRlJPTV9KU0NfTkFNRVNQQUNFCisKKyNkZWZp
bmUgSU1QT1JUX0ZST01fV0VCQ09SRV9OQU1FU1BBQ0UobmFtZSkgXAordXNpbmcgV2ViQ29yZTo6
bmFtZTsgXAorCitXRUJfUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9FQUNIKElNUE9SVF9GUk9NX1dF
QkNPUkVfTkFNRVNQQUNFKQorI3VuZGVmIElNUE9SVF9GUk9NX1dFQkNPUkVfTkFNRVNQQUNFCisK
KyNkZWZpbmUgSU1QT1JUX0ZST01fV0VCS0lUX05BTUVTUEFDRShuYW1lKSBcCit1c2luZyBXZWJL
aXQ6Om5hbWU7IFwKKworV0tfUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9FQUNIKElNUE9SVF9GUk9N
X1dFQktJVF9OQU1FU1BBQ0UpCisjdW5kZWYgSU1QT1JUX0ZST01fV0VCS0lUX05BTUVTUEFDRQor
CisvLyBGSVhNRTogVGhpcyBpcyBjb3BpZWQgdmVyYmF0aW0gZnJvbSBXZWJSZXBsYXlJbnB1dENv
ZGVycy5jcHAKKyNkZWZpbmUgRU5DT0RFX1RZUEVfV0lUSF9LRVkoX2VuY29kZWRWYWx1ZSwgX3R5
cGUsIF9rZXksIF92YWx1ZSkgXAorX2VuY29kZWRWYWx1ZS5wdXQ8X3R5cGU+KEFTQ0lJTGl0ZXJh
bCgjX2tleSksIF92YWx1ZSkKKworI2RlZmluZSBERUNPREVfVFlQRV9XSVRIX0tFWV9UT19MVkFM
VUUoX2VuY29kZWRWYWx1ZSwgX3R5cGUsIF9rZXksIF9sdmFsdWUpIFwKKyAgICBpZiAoIV9lbmNv
ZGVkVmFsdWUuZ2V0PF90eXBlPihBU0NJSUxpdGVyYWwoI19rZXkpLCBfbHZhbHVlKSkgXAorICAg
ICAgICByZXR1cm4gZmFsc2UKKworI2RlZmluZSBERUNPREVfVFlQRV9XSVRIX0tFWShfZW5jb2Rl
ZFZhbHVlLCBfdHlwZSwgX2tleSkgXAorICAgIEVuY29kaW5nVHJhaXRzPF90eXBlPjo6RGVjb2Rl
ZFR5cGUgX2tleTsgXAorICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZX1RPX0xWQUxVRShfZW5jb2Rl
ZFZhbHVlLCBfdHlwZSwgX2tleSwgX2tleSkKKwordXNpbmcgV2ViQ29yZTo6TWVtb2l6ZWRET01S
ZXN1bHRCYXNlOworCituYW1lc3BhY2UgSlNDIHsKKworRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJh
aXRzPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+OjplbmNvZGVWYWx1ZShjb25zdCBOb25kZXRl
cm1pbmlzdGljSW5wdXRCYXNlJiBpbnB1dCkKK3sKKyAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZh
bHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKyAgICBjb25zdCBTdHJpbmcmIHR5
cGUgPSBpbnB1dC50eXBlKCk7CisKKyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFs
dWUsIFN0cmluZywgdHlwZSwgdHlwZSk7CisKKyNkZWZpbmUgRU5DT0RFX0lGX1RZUEVfVEFHX01B
VENIRVMobmFtZSkgXAorICAgIGlmICh0eXBlID09IElucHV0VHJhaXRzPG5hbWU+Ojp0eXBlKCkp
IHsgXAorICAgICAgICBJbnB1dFRyYWl0czxuYW1lPjo6ZW5jb2RlKGVuY29kZWRWYWx1ZSwgc3Rh
dGljX2Nhc3Q8Y29uc3QgbmFtZSY+KGlucHV0KSk7IFwKKyAgICAgICAgcmV0dXJuIGVuY29kZWRW
YWx1ZTsgXAorICAgIH0gXAorCisgICAgSlNfUkVQTEFZX0lOUFVUX05BTUVTX0ZPUl9FQUNIKEVO
Q09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKQorICAgIFdFQl9SRVBMQVlfSU5QVVRfTkFNRVNfRk9S
X0VBQ0goRU5DT0RFX0lGX1RZUEVfVEFHX01BVENIRVMpCisgICAgV0tfUkVQTEFZX0lOUFVUX05B
TUVTX0ZPUl9FQUNIKEVOQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKQorI3VuZGVmIEVOQ09ERV9J
Rl9UWVBFX1RBR19NQVRDSEVTCisKKyAgICAvLyBUaGUgbWFjcm8gd29uJ3Qgd29yayBoZXJlIGJl
Y2F1c2Ugb2YgdGhlIGNsYXNzIHRlbXBsYXRlIGFyZ3VtZW50LgorICAgIGlmICh0eXBlID09IElu
cHV0VHJhaXRzPE1lbW9pemVkRE9NUmVzdWx0QmFzZT46OnR5cGUoKSkgeworICAgICAgICBJbnB1
dFRyYWl0czxNZW1vaXplZERPTVJlc3VsdEJhc2U+OjplbmNvZGUoZW5jb2RlZFZhbHVlLCBzdGF0
aWNfY2FzdDxjb25zdCBNZW1vaXplZERPTVJlc3VsdEJhc2UmPihpbnB1dCkpOworICAgICAgICBy
ZXR1cm4gZW5jb2RlZFZhbHVlOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBFbmNvZGVkVmFsdWUoKTsKK30KKworYm9vbCBFbmNvZGluZ1RyYWl0czxOb25k
ZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVk
VmFsdWUsIHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPiYgaW5wdXQp
Cit7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHR5cGUp
OworCisjZGVmaW5lIERFQ09ERV9JRl9UWVBFX1RBR19NQVRDSEVTKG5hbWUpIFwKKyAgICBpZiAo
dHlwZSA9PSBJbnB1dFRyYWl0czxuYW1lPjo6dHlwZSgpKSB7IFwKKyAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPG5hbWU+IGRlY29kZWRJbnB1dDsgXAorICAgICAgICBpZiAoIUlucHV0VHJhaXRzPG5h
bWU+OjpkZWNvZGUoZW5jb2RlZFZhbHVlLCBkZWNvZGVkSW5wdXQpKSBcCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7IFwKKyAgICAgICAgXAorICAgICAgICBpbnB1dCA9IFdURjo6bW92ZShkZWNv
ZGVkSW5wdXQpOyBcCisgICAgICAgIHJldHVybiB0cnVlOyBcCisgICAgfSBcCisKKyAgICBKU19S
RVBMQVlfSU5QVVRfTkFNRVNfRk9SX0VBQ0goREVDT0RFX0lGX1RZUEVfVEFHX01BVENIRVMpCisg
ICAgV0VCX1JFUExBWV9JTlBVVF9OQU1FU19GT1JfRUFDSChERUNPREVfSUZfVFlQRV9UQUdfTUFU
Q0hFUykKKyAgICBXS19SRVBMQVlfSU5QVVRfTkFNRVNfRk9SX0VBQ0goREVDT0RFX0lGX1RZUEVf
VEFHX01BVENIRVMpCisjdW5kZWYgREVDT0RFX0lGX1RZUEVfVEFHX01BVENIRVMKKworICAgIC8v
IFRoZSBtYWNybyB3b24ndCB3b3JrIGhlcmUgYmVjYXVzZSBvZiB0aGUgY2xhc3MgdGVtcGxhdGUg
YXJndW1lbnQuCisgICAgaWYgKHR5cGUgPT0gSW5wdXRUcmFpdHM8TWVtb2l6ZWRET01SZXN1bHRC
YXNlPjo6dHlwZSgpKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxNZW1vaXplZERPTVJlc3Vs
dEJhc2U+IGRlY29kZWRJbnB1dDsKKyAgICAgICAgaWYgKCFJbnB1dFRyYWl0czxNZW1vaXplZERP
TVJlc3VsdEJhc2U+OjpkZWNvZGUoZW5jb2RlZFZhbHVlLCBkZWNvZGVkSW5wdXQpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlucHV0ID0gV1RGOjptb3ZlKGRlY29kZWRJ
bnB1dCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JFUExBWSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVwbGF5L1dLUmVwbGF5SW5w
dXRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVwbGF5L1dLUmVwbGF5SW5w
dXRDb2RlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTJmMTg3OGQ2YjMwNWJlYTgyZmNkZDU3MzQ2MjJhNzVh
MTJlYjhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXBs
YXkvV0tSZXBsYXlJbnB1dENvZGVycy5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdLUmVwbGF5SW5wdXRDb2RlcnNfaAorI2RlZmluZSBXS1JlcGxh
eUlucHV0Q29kZXJzX2gKKworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRW5jb2RlZFZhbHVlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTm9u
ZGV0ZXJtaW5pc3RpY0lucHV0Lmg+CisKKy8vIFRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucyBtdXN0
IGJlIGRlZmluZWQgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGFzIHRoZSB0ZW1wbGF0ZSBkZWNsYXJh
dGlvbi4KK25hbWVzcGFjZSBKU0MgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0
czxKU0M6Ok5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+IHsKKyAgICB0eXBlZGVmIEpTQzo6Tm9u
ZGV0ZXJtaW5pc3RpY0lucHV0QmFzZSBEZWNvZGVkVHlwZTsKKworICAgIHN0YXRpYyBFbmNvZGVk
VmFsdWUgZW5jb2RlVmFsdWUoY29uc3QgSlNDOjpOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlJiBp
bnB1dCk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgc3RkOjp1
bmlxdWVfcHRyPEpTQzo6Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT4mIGlucHV0KTsKK307CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SRVBMQVkpCisKKyNl
bmRpZiAvLyBXS1JlcGxheUlucHV0Q29kZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVwbGF5Q2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVwbGF5Q2xpZW50LmNwcAppbmRl
eCA4N2M2YTJiZWI5NWI2OWMxYjI2Mzk5M2Y2MGNiM2E5OTIyZTg3ZjA3Li5mNWI3NjUyNzYwYTk0
ZjE2MDlhZmRiNTQxMTVlYjgwZjFlZGE5YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlcGxheUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXBsYXlDbGllbnQuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKIAorI2luY2x1ZGUgIldL
UmVwbGF5SW5wdXRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9FdmVudExvb3BJbnB1dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVwbGF5Q29udHJvbGxl
ci5oPgpAQCAtMzksNiArNDAsMTcgQEAgdm9pZCBXZWJSZXBsYXlDbGllbnQ6OmRpc3BhdGNoSW5w
dXQoV2ViQ29yZTo6RXZlbnRMb29wSW5wdXRCYXNlJiBpbnB1dCkKICAgICBpbnB1dC5kaXNwYXRj
aCgqbV9wYWdlLT5jb3JlUGFnZSgpKTsKIH0KIAorYm9vbCBXZWJSZXBsYXlDbGllbnQ6OmVuY29k
ZUlucHV0KGNvbnN0IE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2UmIGlucHV0LCBFbmNvZGVkVmFs
dWUmIGVuY29kZWRJbnB1dCkKK3sKKyAgICBlbmNvZGVkSW5wdXQgPSBFbmNvZGluZ1RyYWl0czxO
b25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2RlVmFsdWUoaW5wdXQpOworICAgIHJldHVy
biB0cnVlOworfQorCitib29sIFdlYlJlcGxheUNsaWVudDo6ZGVjb2RlSW5wdXQoRW5jb2RlZFZh
bHVlJiBlbmNvZGVkSW5wdXQsIHN0ZDo6dW5pcXVlX3B0cjxOb25kZXRlcm1pbmlzdGljSW5wdXRC
YXNlPiYgZGVjb2RlZElucHV0KQoreworICAgIHJldHVybiBFbmNvZGluZ1RyYWl0czxOb25kZXRl
cm1pbmlzdGljSW5wdXRCYXNlPjo6ZGVjb2RlVmFsdWUoZW5jb2RlZElucHV0LCBkZWNvZGVkSW5w
dXQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
UkVQTEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXBsYXlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVwbGF5Q2xpZW50LmgKaW5kZXggY2VlNDRjM2QzOTI4ZDM3OGJlNjg4M2My
YmUxNTBhMGY4NmM2MTkwNC4uZjY5MjhlMTNmNzM0OWQ4NWY5YmE5ZjY4MzUyN2ZiYmNmNTQ5NmY2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXBsYXlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlJlcGxheUNsaWVudC5oCkBAIC00NCw2ICs0NCw5IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW5wdXQoV2ViQ29yZTo6RXZlbnRMb29wSW5w
dXRCYXNlJikgb3ZlcnJpZGU7CiAKKyAgICB2aXJ0dWFsIGJvb2wgZW5jb2RlSW5wdXQoY29uc3Qg
SlNDOjpOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlJiwgSlNDOjpFbmNvZGVkVmFsdWUmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlSW5wdXQoSlNDOjpFbmNvZGVkVmFsdWUmLCBz
dGQ6OnVuaXF1ZV9wdHI8SlNDOjpOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPiYpIG92ZXJyaWRl
OworCiAgICAgV2ViUGFnZSogbV9wYWdlOwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>