<?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>234331</bug_id>
          
          <creation_ts>2021-12-14 19:28:46 -0800</creation_ts>
          <short_desc>[WebIDL] Remove the now-unused &quot;ExecState&quot; value of [CallWith] extended attribute</short_desc>
          <delta_ts>2021-12-15 17:10:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824215</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-12-14 19:28:46 -0800</bug_when>
    <thetext>[WebIDL] Remove the now-unused &quot;ExecState&quot; value of [CallWith] extended attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824216</commentid>
    <comment_count>1</comment_count>
      <attachid>447191</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-12-14 19:29:52 -0800</bug_when>
    <thetext>Created attachment 447191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824585</commentid>
    <comment_count>2</comment_count>
      <attachid>447191</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-12-15 16:47:32 -0800</bug_when>
    <thetext>Comment on attachment 447191
Patch

Thanks Darin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824600</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-15 17:09:31 -0800</bug_when>
    <thetext>Committed r287119 (245303@main): &lt;https://commits.webkit.org/245303@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447191.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824603</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-15 17:10:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/86550427&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447191</attachid>
            <date>2021-12-14 19:29:52 -0800</date>
            <delta_ts>2021-12-15 17:09:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234331-20211215032950.patch</filename>
            <type>text/plain</type>
            <size>41993</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEyLTE0ICBBbGV4ZXkg
U2h2YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBSZW1vdmUg
dGhlIG5vdy11bnVzZWQgIkV4ZWNTdGF0ZSIgdmFsdWUgb2YgW0NhbGxXaXRoXSBleHRlbmRlZCBh
dHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNDMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4ZWNTdGF0ZSB3YXMgcmVtb3ZlZCBpbiBmYXZvciBvZiBKU0dsb2JhbE9iamVjdCBpbiBodHRw
czovL3dlYmtpdC5vcmcvYi8yMDIzOTIuCisgICAgICAgIFRoaXMgY2hhbmdlIHJlbW92ZXMgbGVm
dG92ZXJzIGZyb20gYmluZGluZ3MgZ2VuZXJhdG9yLCBpbXByb3ZpbmcgdGhlIGNvbmRpdGlvbiBm
b3IKKyAgICAgICAgZXhjZXB0aW9uIGNoZWNrIGluIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0
aW9uLCBhbmQgZXZlbiByZW5hbWVzIFdlYklETCB0ZXN0IGNhc2VzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAg
ICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvKjogVXBkYXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGw6CisKIDIwMjEtMTItMTQgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4K
IAogICAgICAgICBTb3VyY2VCdWZmZXJQYXJzZXIgc2hvdWxkIGJlIHVzaW5nIGNvbnRpZ3VvdXMg
U2hhcmVkQnVmZmVyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAg
LTU5NzMsMTAgKzU5NzMsNiBAQCBzdWIgR2VuZXJhdGVDYWxsV2l0aAogICAgICRpbmRlbnQgfHw9
ICIgICAgIjsKIAogICAgIG15IEBjYWxsV2l0aEFyZ3M7Ci0gICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIkV4ZWNTdGF0ZSIpKSB7Ci0g
ICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgIioke2dsb2JhbE9iamVjdH0iKTsKLSAgICAgICAg
cHVzaChAY2FsbFdpdGhBcmdzLCAkY2FsbEZyYW1lUmVmZXJlbmNlKTsKLSAgICB9CiAgICAgIyBH
bG9iYWwgb2JqZWN0IG9mIGN1cnJlbnQgcmVhbG0gKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNjb25jZXB0LWN1cnJlbnQtZXZlcnl0aGluZykK
ICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxX
aXRoLCAiR2xvYmFsT2JqZWN0IikpIHsKICAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAiKiR7
Z2xvYmFsT2JqZWN0fSIpOwpAQCAtNzczMyw3ICs3NzI5LDggQEAgc3ViIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWZpbml0aW9uCiAgICAgICAgICAgICBteSAkZnVuY3Rpb25TdHJpbmcgPSBHZW5lcmF0
ZVBhcmFtZXRlcnNDaGVjaygkb3V0cHV0QXJyYXksICRvcGVyYXRpb24sICRpbnRlcmZhY2UsICRm
dW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSwgIiAgICAiKTsKIAogICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGF1dG8gb2JqZWN0ID0gJHtmdW5jdGlvblN0cmluZ307XG4iKTsK
LSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpO1xuIikgaWYgJGNvZGVHZW5lcmF0b3ItPkV4
dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Q2FsbFdpdGh9LCAiRXhlY1N0YXRlIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KVxuIik7
CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgeyB9KTtcbiIpOwogCiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgc3RhdGljX2Fzc2VydChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlpbmdUeXBl
PGRlY2x0eXBlKG9iamVjdCk+Ojppc1JlZik7XG4iKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHJldmlzaW9uIDI4
NzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5q
c29uCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBACiAgICAgICAgIH0sCiAgICAgICAg
ICJDYWxsV2l0aCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0
ZSIsICJvcGVyYXRpb24iXSwKLSAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkRvY3VtZW50IiwgIlJl
bGV2YW50RG9jdW1lbnQiLCAiRXhlY1N0YXRlIiwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiLCAi
UmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0IiwgIkdsb2JhbE9iamVjdCIsICJSZWxldmFu
dEdsb2JhbE9iamVjdCIsICJBY3RpdmVXaW5kb3ciLCAiRmlyc3RXaW5kb3ciLCAiRW50cnlEb2N1
bWVudCIsICJXb3JsZCIsICJQcm9wZXJ0eU5hbWUiXSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBb
IkRvY3VtZW50IiwgIlJlbGV2YW50RG9jdW1lbnQiLCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIs
ICJSZWxldmFudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiLCAiR2xvYmFsT2JqZWN0IiwgIlJlbGV2
YW50R2xvYmFsT2JqZWN0IiwgIkFjdGl2ZVdpbmRvdyIsICJGaXJzdFdpbmRvdyIsICJFbnRyeURv
Y3VtZW50IiwgIldvcmxkIiwgIlByb3BlcnR5TmFtZSJdLAogICAgICAgICAgICAgInN0YW5kYXJk
IjogewogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2NvbmNlcHQtY3VycmVudC1ldmVyeXRoaW5nIiwK
ICAgICAgICAgICAgICAgICAibm90ZSI6ICJDdXJyZW50bHksIERvY3VtZW50IC8gU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCAvIEdsb2JhbE9iamVjdCB2YWx1ZXMgZGVub3RlIGN1cnJlbnQgcmVhbG0s
IHdoaWNoIGlzIGEgW1tSZWFsbV1dIG9mIHRoZSBjdXJyZW50bHktcnVubmluZyBmdW5jdGlvbiBv
YmplY3QuIgpAQCAtMzE1LDcgKzMxNSw3IEBACiAgICAgICAgIH0sCiAgICAgICAgICJMZWdhY3lG
YWN0b3J5RnVuY3Rpb25DYWxsV2l0aCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQi
OiBbImludGVyZmFjZSJdLAotICAgICAgICAgICAgInZhbHVlcyI6IFsiRG9jdW1lbnQiLCAiRXhl
Y1N0YXRlIiwgIlJ1bnRpbWVGbGFncyIsICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Il0sCisgICAg
ICAgICAgICAidmFsdWVzIjogWyJEb2N1bWVudCIsICJSdW50aW1lRmxhZ3MiLCAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCJdLAogICAgICAgICAgICAgInN1cHBvcnRzQ29uanVuY3Rpb24iOiB0cnVl
CiAgICAgICAgIH0sCiAgICAgICAgICJMZWdhY3lGYWN0b3J5RnVuY3Rpb25FbmFibGVkQnlTZXR0
aW5nIjogewpAQCAtNDg1LDcgKzQ4NSw3IEBACiAgICAgICAgIH0sCiAgICAgICAgICJTZXR0ZXJD
YWxsV2l0aCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSJd
LAotICAgICAgICAgICAgInZhbHVlcyI6IFsiRXhlY1N0YXRlIiwgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQiLCAiR2xvYmFsT2JqZWN0IiwgIkFjdGl2ZVdpbmRvdyIsICJGaXJzdFdpbmRvdyIsICJQ
cm9wZXJ0eU5hbWUiXSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQiLCAiR2xvYmFsT2JqZWN0IiwgIkFjdGl2ZVdpbmRvdyIsICJGaXJzdFdpbmRvdyIsICJQ
cm9wZXJ0eU5hbWUiXSwKICAgICAgICAgICAgICJzdXBwb3J0c0Nvbmp1bmN0aW9uIjogdHJ1ZQog
ICAgICAgICB9LAogICAgICAgICAiU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlIjogewpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xODksMTkgKzE4OSwxOSBAQCBl
bnVtIFRlc3RDb25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93CiAgICAgW0ltcGxlbWVudGVk
QXM9b25mb29dIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb253ZWJraXRmb287CiAKICAgICAvLyAn
Q2FsbFdpdGgnIGV4dGVuZGVkIGF0dHJpYnV0ZQotICAgIFtDYWxsV2l0aD1HbG9iYWxPYmplY3Rd
IHVuZGVmaW5lZCB3aXRoRXhlY1N0YXRlVm9pZCgpOworICAgIFtDYWxsV2l0aD1HbG9iYWxPYmpl
Y3RdIHVuZGVmaW5lZCB3aXRoR2xvYmFsT2JqZWN0Vm9pZCgpOwogICAgIFtDYWxsV2l0aD1SZWxl
dmFudEdsb2JhbE9iamVjdF0gdW5kZWZpbmVkIHdpdGhSZWxldmFudEdsb2JhbE9iamVjdFZvaWQo
KTsKLSAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0XSBUZXN0T2JqIHdpdGhFeGVjU3RhdGVPYmoo
KTsKKyAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0XSBUZXN0T2JqIHdpdGhHbG9iYWxPYmplY3RP
YmooKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdW5kZWZpbmVkIHdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgW0NhbGxXaXRoPVJlbGV2YW50U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gdW5kZWZpbmVkIHdpdGhSZWxldmFudFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCZFeGVjU3RhdGVd
IHVuZGVmaW5lZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSgpOwotICAg
IFtDYWxsV2l0aD0gIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgICYgIEV4ZWNTdGF0ZSAgXSBUZXN0
T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcygpOwor
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0Jkdsb2JhbE9iamVjdF0gdW5kZWZp
bmVkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kR2xvYmFsT2JqZWN0KCk7CisgICAgW0Nh
bGxXaXRoPSAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCAgJiAgR2xvYmFsT2JqZWN0ICBdIFRlc3RP
Ymogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRHbG9iYWxPYmplY3RXaXRoU3BhY2VzKCk7
CiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSB1bmRlZmluZWQgd2l0aERvY3VtZW50QXJndW1lbnQo
KTsKICAgICBbQ2FsbFdpdGg9UmVsZXZhbnREb2N1bWVudF0gdW5kZWZpbmVkIHdpdGhSZWxldmFu
dERvY3VtZW50QXJndW1lbnQoKTsKICAgICBbQ2FsbFdpdGg9SW5jdW1iZW50RG9jdW1lbnRdIHVu
ZGVmaW5lZCB3aXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudCgpOwogICAgIFtDYWxsV2l0aD1JbmN1
bWJlbnRXaW5kb3ddIHVuZGVmaW5lZCB3aXRoQ2FsbGVyV2luZG93QXJndW1lbnQoKTsKIAotICAg
IFtDYWxsV2l0aD1HbG9iYWxPYmplY3RdIGF0dHJpYnV0ZSBsb25nIHdpdGhFeGVjU3RhdGVBdHRy
aWJ1dGU7CisgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdF0gYXR0cmlidXRlIGxvbmcgd2l0aEds
b2JhbE9iamVjdEF0dHJpYnV0ZTsKICAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0LCBTZXR0ZXJD
YWxsV2l0aD1BY3RpdmVXaW5kb3cmRmlyc3RXaW5kb3ddIGF0dHJpYnV0ZSBsb25nIHdpdGhDYWxs
V2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlOwogICAgIFtTZXR0ZXJDYWxsV2l0aD1JbmN1
bWJlbnRXaW5kb3cmRmlyc3RXaW5kb3ddIGF0dHJpYnV0ZSBET01TdHJpbmcgd2l0aFNldHRlckNh
bGxXaXRoQXR0cmlidXRlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvdy5jcHAJKHJldmlzaW9uIDI4NzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzOCw2ICsxMzgsOCBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTExfCiAgICAgYXV0byogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yKj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBB
U1NFUlQoY2FzdGVkVGhpcyk7CiAgICAgYXV0byBvYmplY3QgPSBFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3c6OmNyZWF0ZSgpOworICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlw
ZShvYmplY3QpPikKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0p
OwogICAgIHN0YXRpY19hc3NlcnQoVHlwZU9yRXhjZXB0aW9uT3JVbmRlcmx5aW5nVHlwZTxkZWNs
dHlwZShvYmplY3QpPjo6aXNSZWYpOwogICAgIGF1dG8ganNWYWx1ZSA9IHRvSlNOZXdseUNyZWF0
ZWQ8SURMSW50ZXJmYWNlPEV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdz4+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIFdURk1vdmUo
b2JqZWN0KSk7CiAgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVj
dCk+KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
Mjg3MDU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNiArMTgxLDggQEAg
dGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMXwogICAgIGF1dG8gZXZlbnRJ
bml0RGljdCA9IGNvbnZlcnQ8SURMRGljdGlvbmFyeTxUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6SW5p
dD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDEudmFsdWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBhdXRvIG9i
amVjdCA9IFRlc3RFdmVudENvbnN0cnVjdG9yOjpjcmVhdGUoV1RGTW92ZSh0eXBlKSwgV1RGTW92
ZShldmVudEluaXREaWN0KSk7CisgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0
eXBlKG9iamVjdCk+KQorICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsg
fSk7CiAgICAgc3RhdGljX2Fzc2VydChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlpbmdUeXBlPGRl
Y2x0eXBlKG9iamVjdCk+Ojppc1JlZik7CiAgICAgYXV0byBqc1ZhbHVlID0gdG9KU05ld2x5Q3Jl
YXRlZDxJRExJbnRlcmZhY2U8VGVzdEV2ZW50Q29uc3RydWN0b3I+PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBXVEZNb3ZlKG9i
amVjdCkpOwogICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3Qp
PikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCw4IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTF8KICAgICBhdXRvIHN0cjIgPSBhcmd1bWVudDEudmFsdWUoKS5pc1Vu
ZGVmaW5lZCgpID8gImRlZmF1bHRTdHJpbmciX3MgOiBjb252ZXJ0PElETERPTVN0cmluZz4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MS52YWx1ZSgpKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIGF1dG8gb2JqZWN0ID0g
VGVzdEludGVyZmFjZTo6Y3JlYXRlKCpjb250ZXh0LCBXVEZNb3ZlKHN0cjEpLCBXVEZNb3ZlKHN0
cjIpKTsKKyAgICBpZiBjb25zdGV4cHIgKElzRXhjZXB0aW9uT3I8ZGVjbHR5cGUob2JqZWN0KT4p
CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKICAgICBzdGF0
aWNfYXNzZXJ0KFR5cGVPckV4Y2VwdGlvbk9yVW5kZXJseWluZ1R5cGU8ZGVjbHR5cGUob2JqZWN0
KT46OmlzUmVmKTsKICAgICBhdXRvIGpzVmFsdWUgPSB0b0pTTmV3bHlDcmVhdGVkPElETEludGVy
ZmFjZTxUZXN0SW50ZXJmYWNlPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV1RGTW92ZShvYmplY3QpKTsKICAgICBpZiBjb25z
dGV4cHIgKElzRXhjZXB0aW9uT3I8ZGVjbHR5cGUob2JqZWN0KT4pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcAkocmV2aXNpb24gMjg3MDU5KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw2ICsxMjcsOCBAQCB0ZW1wbGF0
ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfCiAgICAgYXV0byBzdHIzID0gYXJndW1l
bnQyLnZhbHVlKCkuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogY29udmVydDxJRExET01TdHJp
bmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDIudmFsdWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBhdXRvIG9i
amVjdCA9IFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OmNyZWF0ZUZvckxlZ2FjeUZhY3RvcnlG
dW5jdGlvbihkb2N1bWVudCwgV1RGTW92ZShzdHIxKSwgV1RGTW92ZShzdHIyKSwgV1RGTW92ZShz
dHIzKSk7CisgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+
KQorICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgc3Rh
dGljX2Fzc2VydChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlpbmdUeXBlPGRlY2x0eXBlKG9iamVj
dCk+Ojppc1JlZik7CiAgICAgYXV0byBqc1ZhbHVlID0gdG9KU05ld2x5Q3JlYXRlZDxJRExJbnRl
cmZhY2U8VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIFdURk1vdmUob2JqZWN0KSk7
CiAgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb2RlLmNwcAkocmV2aXNpb24gMjg3MDU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEs
NiArMTIxLDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMXwogICAg
IGF1dG8qIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0Tm9kZURPTUNvbnN0cnVjdG9yKj4oY2Fs
bEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBBU1NFUlQoY2FzdGVkVGhpcyk7CiAgICAgYXV0byBv
YmplY3QgPSBUZXN0Tm9kZTo6Y3JlYXRlKCk7CisgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlv
bk9yPGRlY2x0eXBlKG9iamVjdCk+KQorICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIHsgfSk7CiAgICAgc3RhdGljX2Fzc2VydChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlp
bmdUeXBlPGRlY2x0eXBlKG9iamVjdCk+Ojppc1JlZik7CiAgICAgYXV0byBqc1ZhbHVlID0gdG9K
U05ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8VGVzdE5vZGU+PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBXVEZNb3ZlKG9iamVj
dCkpOwogICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUx
OSwxMyArMTUxOSwxMyBAQCBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9wdWJsaWNBbmRQcml2YXRlTWV0aG9kKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2FkZEV2ZW50TGlzdGVuZXIpOwogc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
cmVtb3ZlRXZlbnRMaXN0ZW5lcik7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlVm9pZCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoR2xv
YmFsT2JqZWN0Vm9pZCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZhbnRHbG9iYWxPYmplY3RWb2lkKTsKLXN0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dp
dGhFeGVjU3RhdGVPYmopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEdsb2JhbE9iamVjdE9iaik7CiBzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0
KTsKLXN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlKTsKLXN0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEdsb2JhbE9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZEdsb2JhbE9iamVjdFdpdGhTcGFjZXMpOwogc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aERvY3VtZW50QXJn
dW1lbnQpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fd2l0aFJlbGV2YW50RG9jdW1lbnRBcmd1bWVudCk7CiBzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoQ2FsbGVy
RG9jdW1lbnRBcmd1bWVudCk7CkBAIC0xNzY1LDggKzE3NjUsOCBAQCBzdGF0aWMgSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPCiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpfb25mb28pOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqX29ud2Via2l0Zm9vKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ial9vbndlYmtpdGZvbyk7Ci1zdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpfd2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSk7Ci1zdGF0aWMgSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfd2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfd2l0aEdsb2JhbE9iamVj
dEF0dHJpYnV0ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
Ympfd2l0aEdsb2JhbE9iamVjdEF0dHJpYnV0ZSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUp
Owogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3dpdGhDYWxs
V2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ial93aXRoU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpOwpAQCAtMjAx
OCw2ICsyMDE4LDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMXwog
ICAgIGF1dG8gdGVzdENhbGxiYWNrRnVuY3Rpb24gPSBjb252ZXJ0PElETENhbGxiYWNrRnVuY3Rp
b248SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVu
dDEudmFsdWUoKSwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBbXShKU0M6OkpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRo
cm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3Bl
LCAxLCAidGVzdENhbGxiYWNrRnVuY3Rpb24iLCAiVGVzdE9iamVjdCIsIG51bGxwdHIpOyB9KTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
ICAgIGF1dG8gb2JqZWN0ID0gVGVzdE9iajo6Y3JlYXRlKGRvY3VtZW50LCB0ZXN0Q2FsbGJhY2su
cmVsZWFzZU5vbk51bGwoKSwgdGVzdENhbGxiYWNrRnVuY3Rpb24ucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KQorICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgc3RhdGljX2Fz
c2VydChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlpbmdUeXBlPGRlY2x0eXBlKG9iamVjdCk+Ojpp
c1JlZik7CiAgICAgYXV0byBqc1ZhbHVlID0gdG9KU05ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8
VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIFdURk1vdmUob2JqZWN0KSk7CiAgICAgaWYgY29uc3RleHByIChJc0V4
Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KQpAQCAtMjEzMiw3ICsyMTM0LDcgQEAgc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBybwogI2VuZGlmCiAgICAgeyAib25mb28i
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ial9vbmZvbyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9vbmZvbykgfSB9LAogICAgIHsgIm9ud2Via2l0Zm9v
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpfb253ZWJraXRmb28pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfb253ZWJraXRmb28pIH0gfSwKLSAgICB7
ICJ3aXRoRXhlY1N0YXRlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfd2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ial93aXRoRXhlY1N0YXRlQXR0cmlidXRlKSB9IH0sCisgICAgeyAid2l0aEdsb2Jh
bE9iamVjdEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3dpdGhHbG9iYWxPYmplY3RBdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpfd2l0aEdsb2JhbE9iamVjdEF0dHJpYnV0ZSkgfSB9LAogICAgIHsgIndpdGhDYWxsV2l0
aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVy
Q2FsbFdpdGhBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdp
dGhBdHRyaWJ1dGUpIH0gfSwKICAgICB7ICJ3aXRoU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ial93aXRoU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfd2l0aFNldHRlckNh
bGxXaXRoQXR0cmlidXRlKSB9IH0sCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCkBAIC0yMjQ1LDEz
ICsyMjQ3LDEzIEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm8KICAg
ICB7ICJwdWJsaWNBbmRQcml2YXRlTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9w
dWJsaWNBbmRQcml2YXRlTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgImFkZEV2
ZW50TGlzdGVuZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2FkZEV2ZW50TGlzdGVuZXIp
LCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fcmVtb3ZlRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIp
IH0gfSwKLSAgICB7ICJ3aXRoRXhlY1N0YXRlVm9pZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fd2l0aEV4ZWNTdGF0ZVZvaWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAid2l0aEds
b2JhbE9iamVjdFZvaWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhHbG9iYWxPYmpl
Y3RWb2lkKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIndpdGhSZWxldmFudEdsb2JhbE9i
amVjdFZvaWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhSZWxldmFudEdsb2JhbE9i
amVjdFZvaWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAid2l0aEV4ZWNTdGF0ZU9iaiIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZU9iaiksIChpbnRwdHJfdCkg
KDApIH0gfSwKKyAgICB7ICJ3aXRoR2xvYmFsT2JqZWN0T2JqIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl93aXRoR2xvYmFsT2JqZWN0T2JqKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsg
IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJ3
aXRoUmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl93aXRoUmVsZXZhbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgKGludHB0cl90KSAoMCkg
fSB9LAotICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNT
dGF0ZSksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyksIChpbnRwdHJf
dCkgKDApIH0gfSwKKyAgICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEdsb2JhbE9i
amVjdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRHbG9iYWxPYmplY3QpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAid2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRHbG9iYWxPYmplY3RXaXRoU3BhY2VzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEdsb2JhbE9iamVjdFdp
dGhTcGFjZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAid2l0aERvY3VtZW50QXJndW1l
bnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhEb2N1bWVudEFyZ3VtZW50KSwgKGlu
dHB0cl90KSAoMCkgfSB9LAogICAgIHsgIndpdGhSZWxldmFudERvY3VtZW50QXJndW1lbnQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhSZWxldmFudERvY3VtZW50QXJndW1lbnQpLCAo
aW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAid2l0aENhbGxlckRvY3VtZW50QXJndW1lbnQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50KSwgKGlu
dHB0cl90KSAoMCkgfSB9LApAQCAtNDIxNCwyMCArNDIxNiwyMCBAQCBKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqX29uCiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqX29ud2Via2l0Zm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVj
dCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfd2l0aEdsb2JhbE9iamVjdEF0dHJp
YnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwotICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLndpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoKmpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSkpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwud2l0aEdsb2JhbE9iamVjdEF0dHJpYnV0ZSgqanNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ial93aXRoRXhlY1N0YXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIGF0dHJpYnV0ZU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
al93aXRoR2xvYmFsT2JqZWN0QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0
ZU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ial93aXRoRXhlY1N0YXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBhdHRyaWJ1dGVOYW1l
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfd2l0
aEdsb2JhbE9iamVjdEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfd2l0aEV4ZWNTdGF0ZUF0dHJpYnV0
ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
al93aXRoR2xvYmFsT2JqZWN0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQyMzUsMTQgKzQyMzcs
MTQgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial93aXRoRXhlYwogICAgIGF1dG8g
bmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVl
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTsKICAgICBpbnZv
a2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBbJl0gewotICAgICAgICByZXR1cm4gaW1wbC5zZXRXaXRoRXhlY1N0
YXRlQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9i
amVjdCksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGltcGwuc2V0V2l0
aEdsb2JhbE9iamVjdEF0dHJpYnV0ZSgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CiAgICAgfSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfd2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
UHJvcGVydHlOYW1lIGF0dHJpYnV0ZU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE9ial93aXRoR2xvYmFsT2JqZWN0QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX3dpdGhFeGVjU3Rh
dGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgYXR0cmlidXRlTmFtZSk7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqX3dpdGhHbG9iYWxPYmplY3RBdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgYXR0cmlidXRlTmFt
ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5k
U2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKQEAgLTYyMTEsMTkgKzYyMTMsMTkgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdAogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9yZW1v
dmVFdmVudExpc3RlbmVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJy
ZW1vdmVFdmVudExpc3RlbmVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlVm9pZEJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fd2l0aEdsb2JhbE9iamVjdFZvaWRCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBVTlVTRURf
UEFSQU0odGhyb3dTY29wZSk7CiAgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7CiAgICAgYXV0
byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMVW5kZWZpbmVkPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdKCkgLT4gZGVjbHR5cGUoYXV0bykgeyByZXR1cm4g
aW1wbC53aXRoRXhlY1N0YXRlVm9pZCgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNh
bEdsb2JhbE9iamVjdCkpOyB9KSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExVbmRlZmluZWQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0oKSAtPiBkZWNsdHlwZShhdXRvKSB7IHJldHVybiBpbXBsLndpdGhH
bG9iYWxPYmplY3RWb2lkKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihsZXhpY2FsR2xvYmFs
T2JqZWN0KSk7IH0pKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlVm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEdsb2JhbE9iamVjdFZvaWQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlVm9pZEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZVZvaWQiKTsKKyAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0
aEdsb2JhbE9iamVjdFZvaWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
IndpdGhHbG9iYWxPYmplY3RWb2lkIik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZhbnRHbG9iYWxPYmpl
Y3RWb2lkQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKQEAgLTYyNDEsMTkgKzYyNDMsMTkgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdAogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoUmVsZXZh
bnRHbG9iYWxPYmplY3RWb2lkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ3aXRoUmVsZXZhbnRHbG9iYWxPYmplY3RWb2lkIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRl
T2JqQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoR2xvYmFsT2JqZWN0T2JqQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUp
OwogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxU
ZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC53aXRoRXhlY1N0YXRlT2JqKCpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihsZXhpY2FsR2xvYmFsT2JqZWN0KSkpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgaW1wbC53aXRoR2xvYmFsT2JqZWN0T2JqKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihsZXhpY2FsR2xvYmFsT2JqZWN0KSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlT2JqLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoR2xvYmFs
T2JqZWN0T2JqLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZU9iakJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZU9iaiIpOworICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl93aXRoR2xvYmFsT2JqZWN0T2JqQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ3aXRoR2xvYmFsT2JqZWN0T2JqIik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCkBAIC02MjkyLDcgKzYyOTQsNyBAQCBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhSZWxl
dmFudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIndpdGhSZWxldmFudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEdsb2JhbE9iamVjdEJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtNjMwMiwxNSArNjMwNCwxNSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAgICAgYXV0byogY29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGxl
eGljYWxHbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKFVO
TElLRUxZKCFjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMVW5kZWZpbmVkPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
WyZdKCkgLT4gZGVjbHR5cGUoYXV0bykgeyByZXR1cm4gaW1wbC53aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZEV4ZWNTdGF0ZSgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNhbEds
b2JhbE9iamVjdCksICpjYWxsRnJhbWUsICpjb250ZXh0KTsgfSkpKTsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMVW5kZWZpbmVkPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdKCkgLT4gZGVjbHR5cGUoYXV0bykg
eyByZXR1cm4gaW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEdsb2JhbE9iamVjdCgq
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9iamVjdCksICpjb250ZXh0
KTsgfSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEdsb2JhbE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0
ZSIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEdsb2JhbE9iamVj
dEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRHbG9iYWxPYmplY3QiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRHbG9iYWxPYmplY3RXaXRoU3BhY2VzQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC02MzIwLDEyICs2MzIyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3QKICAgICBhdXRvKiBjb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
bGV4aWNhbEdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNvbnRleHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKCpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihsZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxGcmFtZSwgKmNvbnRleHQpKSkpOwor
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRHbG9iYWxPYmplY3RXaXRoU3BhY2VzKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNvbnRleHQpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZEdsb2JhbE9iamVjdFdpdGhTcGFjZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRl
V2l0aFNwYWNlcyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEds
b2JhbE9iamVjdFdpdGhTcGFjZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kR2xvYmFsT2JqZWN0V2l0aFNwYWNlcyIp
OwogfQogCiBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fd2l0aERvY3VtZW50QXJndW1lbnRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAkocmV2aXNp
b24gMjg3MDU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5
OCw4IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlMKICAgICBhdXRv
IGFycmF5QnVmZmVyID0gY29udmVydDxJRExBcnJheUJ1ZmZlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIGFyZ3VtZW50MC52YWx1ZSgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJndW1lbnRUeXBlRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDAsICJhcnJheUJ1ZmZlciIsICJUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycyIsIG51bGxwdHIsICJBcnJheUJ1ZmZlciIpOyB9KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIGF1
dG8gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZSgqYXJyYXlCdWZm
ZXIpOworICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikK
KyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHN0YXRp
Y19hc3NlcnQoVHlwZU9yRXhjZXB0aW9uT3JVbmRlcmx5aW5nVHlwZTxkZWNsdHlwZShvYmplY3Qp
Pjo6aXNSZWYpOwogICAgIGF1dG8ganNWYWx1ZSA9IHRvSlNOZXdseUNyZWF0ZWQ8SURMSW50ZXJm
YWNlPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV1RGTW92ZShvYmplY3QpKTsK
ICAgICBpZiBjb25zdGV4cHIgKElzRXhjZXB0aW9uT3I8ZGVjbHR5cGUob2JqZWN0KT4pCkBAIC0x
MTcsNiArMTE5LDggQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKUwog
ICAgIGF1dG8gYXJyYXlCdWZmZXJWaWV3ID0gY29udmVydDxJRExBcnJheUJ1ZmZlclZpZXc+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSwgW10oSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJv
d0FyZ3VtZW50VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAwLCAiYXJyYXlC
dWZmZXJWaWV3IiwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgbnVsbHB0ciwgIkFycmF5
QnVmZmVyVmlldyIpOyB9KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnM6OmNyZWF0ZShhcnJheUJ1ZmZlclZpZXcucmVsZWFzZU5vbk51bGwoKSk7CisgICAgaWYg
Y29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KQorICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgc3RhdGljX2Fzc2VydChUeXBl
T3JFeGNlcHRpb25PclVuZGVybHlpbmdUeXBlPGRlY2x0eXBlKG9iamVjdCk+Ojppc1JlZik7CiAg
ICAgYXV0byBqc1ZhbHVlID0gdG9KU05ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8VGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnM+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBXVEZNb3ZlKG9iamVjdCkpOwogICAgIGlmIGNvbnN0
ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikKQEAgLTEzNiw2ICsxNDAsOCBA
QCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEpTCiAgICAgYXV0byBibG9i
ID0gY29udmVydDxJRExJbnRlcmZhY2U8QmxvYj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1
bWVudDAudmFsdWUoKSwgW10oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlLCAwLCAiYmxvYiIsICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycyIsIG51bGxwdHIsICJCbG9iIik7IH0pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgYXV0byBvYmplY3QgPSBUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKCpibG9iKTsKKyAgICBpZiBjb25zdGV4cHIgKElzRXhj
ZXB0aW9uT3I8ZGVjbHR5cGUob2JqZWN0KT4pCisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgeyB9KTsKICAgICBzdGF0aWNfYXNzZXJ0KFR5cGVPckV4Y2VwdGlvbk9yVW5k
ZXJseWluZ1R5cGU8ZGVjbHR5cGUob2JqZWN0KT46OmlzUmVmKTsKICAgICBhdXRvIGpzVmFsdWUg
PSB0b0pTTmV3bHlDcmVhdGVkPElETEludGVyZmFjZTxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIFdURk1vdmUob2JqZWN0KSk7CiAgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlv
bk9yPGRlY2x0eXBlKG9iamVjdCk+KQpAQCAtMTU1LDYgKzE2MSw4IEBAIHN0YXRpYyBpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlMKICAgICBhdXRvIHN0cmluZyA9IGNvbnZlcnQ8SURM
RE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAg
YXV0byBvYmplY3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKFdURk1vdmUo
c3RyaW5nKSk7CisgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVj
dCk+KQorICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAg
c3RhdGljX2Fzc2VydChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlpbmdUeXBlPGRlY2x0eXBlKG9i
amVjdCk+Ojppc1JlZik7CiAgICAgYXV0byBqc1ZhbHVlID0gdG9KU05ld2x5Q3JlYXRlZDxJRExJ
bnRlcmZhY2U8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBXVEZNb3ZlKG9iamVj
dCkpOwogICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikK
QEAgLTE3Myw2ICsxODEsOCBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVj
dEpTCiAgICAgYXV0byBsb25nQXJncyA9IGNvbnZlcnRWYXJpYWRpY0FyZ3VtZW50czxJRExMb25n
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgMCk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBhdXRvIG9iamVjdCA9
IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUoV1RGTW92ZShsb25nQXJncykpOwor
ICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikKKyAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHN0YXRpY19hc3Nl
cnQoVHlwZU9yRXhjZXB0aW9uT3JVbmRlcmx5aW5nVHlwZTxkZWNsdHlwZShvYmplY3QpPjo6aXNS
ZWYpOwogICAgIGF1dG8ganNWYWx1ZSA9IHRvSlNOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV1RGTW92ZShvYmplY3QpKTsKICAgICBp
ZiBjb25zdGV4cHIgKElzRXhjZXB0aW9uT3I8ZGVjbHR5cGUob2JqZWN0KT4pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UuY3BwCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDggQEAgc3RhdGljIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSBjb25zdHJ1Y3RKUwogICAgIGF1dG8gc2VxdWVuY2VPZlN0cmluZ3MgPSBhcmd1bWVu
dDAudmFsdWUoKS5pc1VuZGVmaW5lZCgpID8gQ29udmVydGVyPElETFNlcXVlbmNlPElETERPTVN0
cmluZz4+OjpSZXR1cm5UeXBleyB9IDogY29udmVydDxJRExTZXF1ZW5jZTxJRExET01TdHJpbmc+
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgYXV0byBvYmpl
Y3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6Y3JlYXRlKFdURk1v
dmUoc2VxdWVuY2VPZlN0cmluZ3MpKTsKKyAgICBpZiBjb25zdGV4cHIgKElzRXhjZXB0aW9uT3I8
ZGVjbHR5cGUob2JqZWN0KT4pCisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgeyB9KTsKICAgICBzdGF0aWNfYXNzZXJ0KFR5cGVPckV4Y2VwdGlvbk9yVW5kZXJseWluZ1R5
cGU8ZGVjbHR5cGUob2JqZWN0KT46OmlzUmVmKTsKICAgICBhdXRvIGpzVmFsdWUgPSB0b0pTTmV3
bHlDcmVhdGVkPElETEludGVyZmFjZTxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIFdURk1vdmUob2JqZWN0KSk7CiAgICAgaWYgY29uc3RleHByIChJc0V4Y2Vw
dGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KQpAQCAtMTE2LDYgKzExOCw4IEBAIHN0YXRpYyBpbmxp
bmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlMKICAgICBhdXRvIHN0cmluZyA9IGNvbnZlcnQ8
SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAg
ICAgYXV0byBvYmplY3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6
Y3JlYXRlKFdURk1vdmUoc3RyaW5nKSk7CisgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9y
PGRlY2x0eXBlKG9iamVjdCk+KQorICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIHsgfSk7CiAgICAgc3RhdGljX2Fzc2VydChUeXBlT3JFeGNlcHRpb25PclVuZGVybHlpbmdU
eXBlPGRlY2x0eXBlKG9iamVjdCk+Ojppc1JlZik7CiAgICAgYXV0byBqc1ZhbHVlID0gdG9KU05l
d2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2U+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBXVEZNb3ZlKG9iamVjdCkpOwogICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNl
cHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnQuY3BwCShyZXZpc2lvbiAyODcwNTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDYgKzE4Miw4IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTF8KICAgICBhdXRvIGV2ZW50SW5pdERpY3QgPSBjb252ZXJ0PElE
TERpY3Rpb25hcnk8VGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6SW5pdD4+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCBhcmd1bWVudDEudmFsdWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBhdXRvIG9iamVjdCA9IFRlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnQ6OmNyZWF0ZSgqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdU
Rk1vdmUodHlwZSksIFdURk1vdmUoZXZlbnRJbml0RGljdCkpOworICAgIGlmIGNvbnN0ZXhwciAo
SXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHN0YXRpY19hc3NlcnQoVHlwZU9yRXhjZXB0aW9u
T3JVbmRlcmx5aW5nVHlwZTxkZWNsdHlwZShvYmplY3QpPjo6aXNSZWYpOwogICAgIGF1dG8ganNW
YWx1ZSA9IHRvSlNOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPFRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQ+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBXVEZNb3ZlKG9iamVjdCkpOwogICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNl
cHRpb25PcjxkZWNsdHlwZShvYmplY3QpPikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAkocmV2
aXNpb24gMjg3MDU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw4IEBAIHRl
bXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF8KICAgICBhdXRvIHRlc3RDYWxs
YmFja0ludGVyZmFjZSA9IGNvbnZlcnQ8SURMQ2FsbGJhY2tJbnRlcmZhY2U8SlNUZXN0Q2FsbGJh
Y2tJbnRlcmZhY2U+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQyLnZhbHVlKCksICpj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgW10oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0FyZ3VtZW50TXVz
dEJlT2JqZWN0RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDIsICJ0ZXN0Q2FsbGJh
Y2tJbnRlcmZhY2UiLCAiVGVzdFR5cGVkZWZzIiwgbnVsbHB0cik7IH0pOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgYXV0byBvYmpl
Y3QgPSBUZXN0VHlwZWRlZnM6OmNyZWF0ZShXVEZNb3ZlKGhlbGxvKSwgdGVzdENhbGxiYWNrRnVu
Y3Rpb24ucmVsZWFzZU5vbk51bGwoKSwgdGVzdENhbGxiYWNrSW50ZXJmYWNlLnJlbGVhc2VOb25O
dWxsKCkpOworICAgIGlmIGNvbnN0ZXhwciAoSXNFeGNlcHRpb25PcjxkZWNsdHlwZShvYmplY3Qp
PikKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHN0
YXRpY19hc3NlcnQoVHlwZU9yRXhjZXB0aW9uT3JVbmRlcmx5aW5nVHlwZTxkZWNsdHlwZShvYmpl
Y3QpPjo6aXNSZWYpOwogICAgIGF1dG8ganNWYWx1ZSA9IHRvSlNOZXdseUNyZWF0ZWQ8SURMSW50
ZXJmYWNlPFRlc3RUeXBlZGVmcz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIFdURk1vdmUob2JqZWN0KSk7CiAgICAgaWYgY29u
c3RleHByIChJc0V4Y2VwdGlvbk9yPGRlY2x0eXBlKG9iamVjdCk+KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>