<?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>136476</bug_id>
          
          <creation_ts>2014-09-02 22:27:14 -0700</creation_ts>
          <short_desc>Web Inspector: fix prefixes for subclasses of JSC::ConsoleClient</short_desc>
          <delta_ts>2014-09-03 22:53:53 -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>Web Inspector</component>
          <version>528+ (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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032844</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-02 22:27:14 -0700</bug_when>
    <thetext>follow the rules!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032845</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-09-02 22:27:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/18210878&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032850</commentid>
    <comment_count>2</comment_count>
      <attachid>237548</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-02 22:43:09 -0700</bug_when>
    <thetext>Created attachment 237548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032851</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-02 22:45:24 -0700</bug_when>
    <thetext>Attachment 237548 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/JSGlobalObjectConsoleClient.cpp:73:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032853</commentid>
    <comment_count>4</comment_count>
      <attachid>237548</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-09-02 22:51:33 -0700</bug_when>
    <thetext>Comment on attachment 237548
Patch

Let see what Joe thinks about the change before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032857</commentid>
    <comment_count>5</comment_count>
      <attachid>237548</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-02 23:13:18 -0700</bug_when>
    <thetext>Comment on attachment 237548
Patch

In particular, whether Page::console() or Page::consoleClient() is better. Both options read well in different places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033137</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-03 22:53:53 -0700</bug_when>
    <thetext>Committed r173251: &lt;http://trac.webkit.org/changeset/173251&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237548</attachid>
            <date>2014-09-02 22:43:09 -0700</date>
            <delta_ts>2014-09-02 23:13:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136476-20140902224218.patch</filename>
            <type>text/plain</type>
            <size>93462</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZmU0OTM2ODhkMzkzMGI0MTUxOTRiOGRjMzQzMzhjOTEzM2Q2NmQ1Li44MzdlODAzOGE0N2U4MTM0
YjljY2IzYTBkZDZiMWU1MDY3ZWIzNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMSBAQAogMjAxNC0wOS0wMiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZml4IHByZWZpeGVzIGZvciBzdWJjbGFz
c2VzIG9mIEpTQzo6Q29uc29sZUNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9KU0ds
b2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuY3BwLgorICAgICAgICAqIGluc3BlY3Rv
ci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNDb25zb2xlQ2xpZW50LmguCisgICAgICAgICogaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6SlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyOjpyZXBvcnRBUElFeGNlcHRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaDoKKworMjAxNC0wOS0wMiAg
QnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisKICAgICAgICAgTGVnYWN5
UHJvZmlsZXI6IHJlbW92ZSByZWR1bmRhbnQgUHJvZmlsZU5vZGUgbWVtYmVycyBhbmQgb3RoZXIg
Y2xlYW51cAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM2MzgwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMmRjNzk0M2RlYzRmOWVhZjFhN2I0MjJlYTUxOTY1MWUx
ZWI1ZTU2Li42YzA2Y2JjYWY3MDRhMjBiMGVhNTFhMGE5ZjAyYTI5MjRlMTlhYzE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsNjIgQEAKIDIwMTQtMDktMDIgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNz
Lndhc2hpbmd0b24uZWR1PgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZpeCBwcmVmaXhlcyBm
b3Igc3ViY2xhc3NlcyBvZiBKU0M6OkNvbnNvbGVDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZpb3IgY2hh
bmdlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VV
UkkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDYWNoZWRGcmFtZURhdGE6OnJlc3RvcmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJXaW5kb3dTaGVsbCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bG9nRXJyb3IpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkQ29uc29sZU1l
c3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAg
ICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURl
YnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVn
Z2VyQWdlbnQ6OmJyZWFrcG9pbnRBY3Rpb25Mb2cpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6Om11
dGVDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0ZUNv
bnNvbGUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6Y29uc29sZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OmRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpwcmludEVy
cm9yTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhZ2VDb25zb2xlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmNvbnNvbGVDbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6Y29uc29sZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9QYWdlQ29u
c29sZUNsaWVudC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25z
b2xlLmNwcC4KKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmguCisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjb25zb2xlUHJvZmls
ZXMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogeG1sL1hTTFN0
eWxlU2hlZXRMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFN0eWxlU2hlZXQ6OnBh
cnNlU3RyaW5nKToKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6WFNMVFByb2Nlc3Nvcjo6cGFyc2VFcnJvckZ1bmMpOgorICAgICAgICAo
V2ViQ29yZTo6ZG9jTG9hZGVyRnVuYyk6CisKKzIwMTQtMDktMDIgIEJyaWFuIEouIEJ1cmcgIDxi
dXJnQGNzLndhc2hpbmd0b24uZWR1PgorCiAgICAgICAgIExlZ2FjeVByb2ZpbGVyOiByZW1vdmUg
cmVkdW5kYW50IFByb2ZpbGVOb2RlIG1lbWJlcnMgYW5kIG90aGVyIGNsZWFudXAKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjM4MAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggYjVlOGM2YTFmYjc4MzA3OTZmM2JkN2ZkM2E3ODhkZDVjNjNhZDg4Mi4uZTMz
NzIzNWEzMzNiYmUyMmU2MmQ0MjU2ODEyMGZiNmIxYjRjYmZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDE0LTA5LTAyICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNo
aW5ndG9uLmVkdT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBmaXggcHJlZml4ZXMgZm9yIHN1
YmNsYXNzZXMgb2YgSlNDOjpDb25zb2xlQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY0NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAg
ICAgICgrW1dlYkNvcmVTdGF0aXN0aWNzIHNob3VsZFByaW50RXhjZXB0aW9uc10pOgorICAgICAg
ICAoK1tXZWJDb3JlU3RhdGlzdGljcyBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnM6XSk6CisKIDIw
MTQtMDgtMzEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIHVubmVjZXNzYXJ5IChhbmQgdW5uZWNlc3NhcmlseSBpT1Mtc3BlY2lmaWMpIHNl
dFN0cm9rZUFuZEZpbGxDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGVkMzA2YjUyNzc4MzhlZDJm
Y2U5ZDQwMDYzYTEwYjI0Njk0MTZmMGEuLjRkZDUwYjdlMzIzZTQ1NzNlNTAwMjJmYWE5NzA5MTdl
ZDhjMTQ1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wOS0wMiAg
QnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZml4IHByZWZpeGVzIGZvciBzdWJjbGFzc2VzIG9mIEpTQzo6Q29uc29sZUNsaWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NDc2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlU3RhdGlzdGljczo6c2hvdWxkUHJp
bnRFeGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmVTdGF0aXN0aWNzOjpzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnMpOgorCiAyMDE0LTA4LTI2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5dIFdlYktpdCBJREwgaW5jb3JyZWN0bHkgcGFzc2VzIEhX
TkQgYXMgT0xFX0hBTkRMRQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM3
ZDY4ZTM1YTk2NzBkMDdiZWJlZmQ3OGE3ZTQ2YzlkNzI2YzdkZTguLjIwY2I5YjM2YjI2ZTI4OWU3
ZWVkZmQ4OTNkNzBlODZkNGI2NmM0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTI4Myw5ICsyODMsOSBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmNw
cAotICAgIGluc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuY3BwCiAgICAgaW5zcGVjdG9yL0pTSW5q
ZWN0ZWRTY3JpcHRIb3N0LmNwcAogICAgIGluc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZS5jcHAKKyAgICBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNw
cAogICAgIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCiAg
ICAgaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCiAgICAgaW5z
cGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNWRhODE1ZDk1MmMxMmUxNTI0YjkzZGE0ZWVlNTFmMjgxY2RiMDY5OC4uOGE5M2M3
NTQ4OGI3Y2ViNDdlYmE4MjlkMTRjMThlZTVkOTZkYjA5NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE0MjcsOCArMTQyNyw4IEBACiAJCUE1QkExNUVEMTgyMzQwQjQwMEE4MkU2
OSAvKiBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUJBMTVFNjE4MjM0MEIzMDBBODJFNjkgLyogUmVt
b3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUE1QkExNUVFMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVJ
bnNwZWN0b3JYUENDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTVCQTE1RTcxODIzNDBCMzAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3Rv
clhQQ0Nvbm5lY3Rpb24ubW0gKi87IH07CiAJCUE1QkExNUYwMTgyMzQ1QUYwMEE4MkU2OSAvKiBS
ZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNUJBMTVFRjE4MjM0NUFGMDBBODJFNjkgLyogUmVtb3RlSW5zcGVj
dG9yRGVidWdnYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0NvbnNvbGVDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVDM0ExQTMx
OEMwNDkwMjAwQzk1OTNBIC8qIEpTQ29uc29sZUNsaWVudC5jcHAgKi87IH07Ci0JCUE1QzNBMUE2
MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0NvbnNvbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QzNBMUE0MThDMDQ5MDIwMEM5NTkzQSAvKiBK
U0NvbnNvbGVDbGllbnQuaCAqLzsgfTsKKwkJQTVDM0ExQTUxOEMwNDkwMjAwQzk1OTNBIC8qIEpT
R2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNUMzQTFBMzE4QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50LmNwcCAqLzsgfTsKKwkJQTVDM0ExQTYxOEMwNDkwMjAwQzk1OTNB
IC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVDM0ExQTQxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudC5oICovOyB9OwogCQlBNUNFRUUxNDE4N0YzQkFEMDBFNTVD
OTkgLyogSW5zcGVjdG9yQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTVDRUVFMTIxODdGM0JBRDAwRTU1Qzk5IC8qIEluc3BlY3RvckFnZW50
LmNwcCAqLzsgfTsKIAkJQTVEMEExQkIxODYyMzAxQjAwQzdCNDk2IC8qIEluc3BlY3RvckVudmly
b25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NUQwQTFCQTE4NjIzMDFCMDBDN0I0OTYgLyogSW5zcGVjdG9yRW52aXJvbm1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNUQyRTY2NTE5NUUx
NzQwMDBBNTE4RTcgLyogSlNDb250ZXh0UmVmSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1RDJFNjY0MTk1RTE3MzgwMEE1MThFNyAvKiBK
U0NvbnRleHRSZWZJbnRlcm5hbC5oICovOyB9OwpAQCAtMzA5Myw4ICszMDkzLDggQEAKIAkJQTVC
QTE1RTYxODIzNDBCMzAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUJBMTVFNzE4MjM0MEIzMDBB
ODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1QkExNUVGMTgyMzQ1QUYwMEE4MkU2OSAv
KiBSZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQTVDM0ExQTMxOEMwNDkwMjAwQzk1OTNBIC8qIEpTQ29uc29sZUNsaWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbnNvbGVDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNUMzQTFBNDE4QzA0OTAyMDBDOTU5M0Eg
LyogSlNDb25zb2xlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
Q29uc29sZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNUMzQTFBMzE4
QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE1QzNBMUE0MThDMDQ5MDIwMEM5
NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE1Q0VFRTEyMTg3RjNCQUQwMEU1NUM5OSAvKiBJbnNwZWN0b3JB
Z2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JB
Z2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Q0VFRTEzMTg3RjNCQUQw
MEU1NUM5OSAvKiBJbnNwZWN0b3JBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnNwZWN0b3JBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUQw
QTFCQTE4NjIzMDFCMDBDN0I0OTYgLyogSW5zcGVjdG9yRW52aXJvbm1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRW52aXJvbm1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzODksOCArNTM4OSw4IEBACiAJCQkJQTU5M0NGODExODQw
Mzc3MTAwQkZDRTI3IC8qIEluc3BlY3RvclZhbHVlcy5oICovLAogCQkJCUE1MDNGQTEzMTg4RTBG
QUYwMDExMEYxNCAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywKIAkJCQlBNTAzRkExNDE4
OEUwRkFGMDAxMTBGMTQgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oICovLAotCQkJCUE1QzNBMUEz
MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0NvbnNvbGVDbGllbnQuY3BwICovLAotCQkJCUE1QzNBMUE0
MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0NvbnNvbGVDbGllbnQuaCAqLywKKwkJCQlBNUMzQTFBMzE4
QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcCAqLywKKwkJ
CQlBNUMzQTFBNDE4QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
LmggKi8sCiAJCQkJQTUxMDA3QkUxODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJQTUxMDA3QkYxODdDQzNDNjAwQjM4ODc5IC8q
IEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oICovLAogCQkJCUE1MDNGQTI3MTg4
RjEwNTkwMDExMEYxNCAvKiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmNwcCAqLywK
QEAgLTU4ODAsNyArNTg4MCw3IEBACiAJCQkJMEZGQjkyMTgxNkQwMkVCMjAwNTVBNURCIC8qIERG
R0FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczNzgxMEMxNzk5RUEyRTAwODE3NTMz
IC8qIERGR0FuYWx5c2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjFFM0E0NjE1MzRDQkFGMDAw
Rjk0NTYgLyogREZHQXJndW1lbnRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTVDM0Ex
QTYxOEMwNDkwMjAwQzk1OTNBIC8qIEpTQ29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTVDM0ExQTYxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxNjAxNUUxNTYxOThDOTAwQzI1ODdDIC8qIERGR0Fy
Z3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDg1MzIy
MTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MDVDM0I0MTY4M0NGOTIwMEJBRjQ1QiAvKiBERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKQEAgLTcyNzAsNyArNzI3MCw3IEBACiAJCQkJQTcwNEQ5MDUxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMzAwQjdCMThBQjFCMTQwMEE2RDcyRSAvKiBERkdJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQ
aGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM5N0YzRDE4MjAyMTE5MDAyQzlCMjYgLyog
REZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBNUMzQTFBNTE4QzA0OTAyMDBDOTU5M0EgLyogSlNDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTBBMzMxNzBENDBCRjAwQkI3
MjJDIC8qIERGR0pJVENvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFQzlEQ0IxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR0pJVENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3OEE5
Nzc4MTc5NzM4QjgwMDlERjc0NCAvKiBERkdKSVRGaW5hbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTQ29uc29sZUNs
aWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTQ29uc29sZUNsaWVu
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3ZWY3N2VjNmI3MDQ2OWM0ZTk5
NGE2YTM0M2E3OTlmYjM3YTIwMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0NvbnNvbGVDbGll
bnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSlNDb25zb2xlQ2xpZW50LmgiCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yQ29uc29sZUFnZW50LmgiCi0jaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCi0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNr
RmFjdG9yeS5oIgotCi0jaWYgVVNFKENGKQotI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVG
b3VuZGF0aW9uLmg+Ci0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNl
IEluc3BlY3RvciB7Ci0KLXN0YXRpYyBib29sIHNMb2dUb1N5c3RlbUNvbnNvbGUgPSBmYWxzZTsK
LQotYm9vbCBKU0NvbnNvbGVDbGllbnQ6OmxvZ1RvU3lzdGVtQ29uc29sZSgpCi17Ci0gICAgcmV0
dXJuIHNMb2dUb1N5c3RlbUNvbnNvbGU7Ci19Ci0KLXZvaWQgSlNDb25zb2xlQ2xpZW50OjpzZXRM
b2dUb1N5c3RlbUNvbnNvbGUoYm9vbCBzaG91bGRMb2cpCi17Ci0gICAgc0xvZ1RvU3lzdGVtQ29u
c29sZSA9IHNob3VsZExvZzsKLX0KLQotdm9pZCBKU0NvbnNvbGVDbGllbnQ6OmluaXRpYWxpemVM
b2dUb1N5c3RlbUNvbnNvbGUoKQotewotI2lmICFMT0dfRElTQUJMRUQKLSAgICBzTG9nVG9TeXN0
ZW1Db25zb2xlID0gdHJ1ZTsKLSNlbGlmIFVTRShDRikKLSAgICBCb29sZWFuIGtleUV4aXN0c0Fu
ZEhhc1ZhbGlkRm9ybWF0ID0gZmFsc2U7Ci0gICAgQm9vbGVhbiBwcmVmZXJlbmNlID0gQ0ZQcmVm
ZXJlbmNlc0dldEFwcEJvb2xlYW5WYWx1ZShDRlNUUigiSmF2YVNjcmlwdENvcmVPdXRwdXRDb25z
b2xlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGUiKSwga0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGlj
YXRpb24sICZrZXlFeGlzdHNBbmRIYXNWYWxpZEZvcm1hdCk7Ci0gICAgaWYgKGtleUV4aXN0c0Fu
ZEhhc1ZhbGlkRm9ybWF0KQotICAgICAgICBzTG9nVG9TeXN0ZW1Db25zb2xlID0gcHJlZmVyZW5j
ZTsKLSNlbmRpZgotfQotCi1KU0NvbnNvbGVDbGllbnQ6OkpTQ29uc29sZUNsaWVudChJbnNwZWN0
b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCkKLSAgICA6IENvbnNvbGVDbGllbnQoKQotICAg
ICwgbV9jb25zb2xlQWdlbnQoY29uc29sZUFnZW50KQotewotICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBpbml0aWFsaXplTG9nZ2luZzsKLSAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplTG9n
Z2luZywgW117Ci0gICAgICAgIEpTQ29uc29sZUNsaWVudDo6aW5pdGlhbGl6ZUxvZ1RvU3lzdGVt
Q29uc29sZSgpOwotICAgIH0pOwotfQotCi12b2lkIEpTQ29uc29sZUNsaWVudDo6bWVzc2FnZVdp
dGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHBycEFyZ3VtZW50
cykKLXsKLSAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMgPSBwcnBBcmd1bWVu
dHM7Ci0KLSAgICBpZiAoSlNDb25zb2xlQ2xpZW50Ojpsb2dUb1N5c3RlbUNvbnNvbGUoKSkKLSAg
ICAgICAgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVz
c2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIGV4ZWMsIGFyZ3VtZW50cyk7Ci0K
LSAgICBTdHJpbmcgbWVzc2FnZTsKLSAgICBhcmd1bWVudHMtPmdldEZpcnN0QXJndW1lbnRBc1N0
cmluZyhtZXNzYWdlKTsKLSAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgZXhlYywgYXJn
dW1lbnRzLnJlbGVhc2UoKSk7Ci19Ci0KLXZvaWQgSlNDb25zb2xlQ2xpZW50Ojpjb3VudChFeGVj
U3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCi17Ci0g
ICAgbV9jb25zb2xlQWdlbnQtPmNvdW50KGV4ZWMsIGFyZ3VtZW50cyk7Ci19Ci0KLXZvaWQgSlND
b25zb2xlQ2xpZW50Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKLXsK
LSAgICAvLyBGSVhNRTogc3VwcG9ydCB8Y29uc29sZS5wcm9maWxlfCBmb3IgSlNDb250ZXh0cy4g
PGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzNjQ2Nj4KLX0KLQotdm9pZCBKU0NvbnNvbGVDbGllbnQ6
OnByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKQotewotICAgIC8vIEZJ
WE1FOiBzdXBwb3J0IHxjb25zb2xlLnByb2ZpbGV8IGZvciBKU0NvbnRleHRzLiA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTM2NDY2PgotfQotCi12b2lkIEpTQ29uc29sZUNsaWVudDo6dGltZShFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQotewotICAgIG1fY29uc29sZUFnZW50LT5zdGFy
dFRpbWluZyh0aXRsZSk7Ci19Ci0KLXZvaWQgSlNDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKLXsKLSAgICBSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCAx
KSk7Ci0gICAgbV9jb25zb2xlQWdlbnQtPnN0b3BUaW1pbmcodGl0bGUsIGNhbGxTdGFjay5yZWxl
YXNlKCkpOwotfQotCi12b2lkIEpTQ29uc29sZUNsaWVudDo6dGltZVN0YW1wKEV4ZWNTdGF0ZSos
IFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPikKLXsKLSAgICAvLyBGSVhNRTogSlNDb250ZXh0
IGluc3BlY3Rpb24gbmVlZHMgYSB0aW1lbGluZS4KLSAgICB3YXJuVW5pbXBsZW1lbnRlZChBU0NJ
SUxpdGVyYWwoImNvbnNvbGUudGltZVN0YW1wIikpOwotfQotCi12b2lkIEpTQ29uc29sZUNsaWVu
dDo6d2FyblVuaW1wbGVtZW50ZWQoY29uc3QgU3RyaW5nJiBtZXRob2QpCi17Ci0gICAgU3RyaW5n
IG1lc3NhZ2UgPSBtZXRob2QgKyAiIGlzIGN1cnJlbnRseSBpZ25vcmVkIGluIEphdmFTY3JpcHQg
Y29udGV4dCBpbnNwZWN0aW9uLiI7Ci0gICAgbV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlLCBudWxscHRyLCBudWxscHRyKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgSW5zcGVjdG9yCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNDb25zb2xlQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ1ODg3YmJiZWY3OGU3MGYwMDIzYTFhOTRhYjg4Mzk5ZGI5MTgzODQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0NvbnNvbGVDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IEpTQ29uc29sZUNsaWVudF9oCi0jZGVmaW5lIEpTQ29uc29sZUNsaWVudF9oCi0KLSNpbmNsdWRl
ICJDb25zb2xlQ2xpZW50LmgiCi0KLW5hbWVzcGFjZSBJbnNwZWN0b3IgewotCi1jbGFzcyBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ7Ci0KLWNsYXNzIEpTQ29uc29sZUNsaWVudCBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkNvbnNvbGVDbGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVi
bGljOgotICAgIGV4cGxpY2l0IEpTQ29uc29sZUNsaWVudChJbnNwZWN0b3JDb25zb2xlQWdlbnQq
KTsKLSAgICB2aXJ0dWFsIH5KU0NvbnNvbGVDbGllbnQoKSB7IH0KLQotICAgIHN0YXRpYyBib29s
IGxvZ1RvU3lzdGVtQ29uc29sZSgpOwotICAgIHN0YXRpYyB2b2lkIHNldExvZ1RvU3lzdGVtQ29u
c29sZShib29sKTsKLSAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTG9nVG9TeXN0ZW1Db25zb2xl
KCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2
ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChKU0M6
OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB0aW1lKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+KSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHdh
cm5VbmltcGxlbWVudGVkKGNvbnN0IFN0cmluZyYgbWV0aG9kKTsKLSAgICB2b2lkIGludGVybmFs
QWRkTWVzc2FnZShNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNTdGF0ZSosIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7Ci0KLSAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
IG1fY29uc29sZUFnZW50OwotfTsKLQotfQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSlNDb25zb2xl
Q2xpZW50X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAwYWZl
MmI5ZjZmZjI2ZGUyNTI5MWQ4Njc4NDE1ZTFmMjBjYzc2YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
LmNwcApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJ
bnNwZWN0b3JDb25zb2xlQWdlbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmgiCisKKyNpZiBVU0UoQ0YpCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5k
YXRpb24uaD4KKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgSW5z
cGVjdG9yIHsKKworc3RhdGljIGJvb2wgc0xvZ1RvU3lzdGVtQ29uc29sZSA9IGZhbHNlOworCiti
b29sIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6bG9nVG9TeXN0ZW1Db25zb2xlKCkKK3sK
KyAgICByZXR1cm4gc0xvZ1RvU3lzdGVtQ29uc29sZTsKK30KKwordm9pZCBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQ6OnNldExvZ1RvU3lzdGVtQ29uc29sZShib29sIHNob3VsZExvZykKK3sK
KyAgICBzTG9nVG9TeXN0ZW1Db25zb2xlID0gc2hvdWxkTG9nOworfQorCit2b2lkIEpTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudDo6aW5pdGlhbGl6ZUxvZ1RvU3lzdGVtQ29uc29sZSgpCit7Cisj
aWYgIUxPR19ESVNBQkxFRAorICAgIHNMb2dUb1N5c3RlbUNvbnNvbGUgPSB0cnVlOworI2VsaWYg
VVNFKENGKQorICAgIEJvb2xlYW4ga2V5RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQgPSBmYWxzZTsK
KyAgICBCb29sZWFuIHByZWZlcmVuY2UgPSBDRlByZWZlcmVuY2VzR2V0QXBwQm9vbGVhblZhbHVl
KENGU1RSKCJKYXZhU2NyaXB0Q29yZU91dHB1dENvbnNvbGVNZXNzYWdlc1RvU3lzdGVtQ29uc29s
ZSIpLCBrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbiwgJmtleUV4aXN0c0FuZEhhc1Zh
bGlkRm9ybWF0KTsKKyAgICBpZiAoa2V5RXhpc3RzQW5kSGFzVmFsaWRGb3JtYXQpCisgICAgICAg
IHNMb2dUb1N5c3RlbUNvbnNvbGUgPSBwcmVmZXJlbmNlOworI2VuZGlmCit9CisKK0pTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudDo6SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50KEluc3BlY3Rv
ckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50KQorICAgIDogQ29uc29sZUNsaWVudCgpCisgICAg
LCBtX2NvbnNvbGVBZ2VudChjb25zb2xlQWdlbnQpCit7CisgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIGluaXRpYWxpemVMb2dnaW5nOworICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVMb2dn
aW5nLCBbXXsKKyAgICAgICAgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojppbml0aWFsaXpl
TG9nVG9TeXN0ZW1Db25zb2xlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4gcHJwQXJndW1lbnRzKQoreworICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+
IGFyZ3VtZW50cyA9IHBycEFyZ3VtZW50czsKKworICAgIGlmIChKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQ6OmxvZ1RvU3lzdGVtQ29uc29sZSgpKQorICAgICAgICBDb25zb2xlQ2xpZW50Ojpw
cmludENvbnNvbGVNZXNzYWdlV2l0aEFyZ3VtZW50cyhNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJ
LCB0eXBlLCBsZXZlbCwgZXhlYywgYXJndW1lbnRzKTsKKworICAgIFN0cmluZyBtZXNzYWdlOwor
ICAgIGFyZ3VtZW50cy0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3NhZ2UpOworICAgIG1f
Y29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVB
UEksIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBleGVjLCBhcmd1bWVudHMucmVsZWFzZSgpKTsKK30K
Kwordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OmNvdW50KEV4ZWNTdGF0ZSogZXhl
YywgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cykKK3sKKyAgICBtX2NvbnNv
bGVBZ2VudC0+Y291bnQoZXhlYywgYXJndW1lbnRzKTsKK30KKwordm9pZCBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQ6OnByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKQor
eworICAgIC8vIEZJWE1FOiBzdXBwb3J0IHxjb25zb2xlLnByb2ZpbGV8IGZvciBKU0NvbnRleHRz
LiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM2NDY2PgorfQorCit2b2lkIEpTR2xvYmFsT2JqZWN0
Q29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYp
Cit7CisgICAgLy8gRklYTUU6IHN1cHBvcnQgfGNvbnNvbGUucHJvZmlsZXwgZm9yIEpTQ29udGV4
dHMuIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzY0NjY+Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50Ojp0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7
CisgICAgbV9jb25zb2xlQWdlbnQtPnN0YXJ0VGltaW5nKHRpdGxlKTsKK30KKwordm9pZCBKU0ds
b2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRpbWVFbmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBT
dHJpbmcmIHRpdGxlKQoreworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhj
cmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEpKTsKKyAgICBtX2NvbnNvbGVB
Z2VudC0+c3RvcFRpbWluZyh0aXRsZSwgY2FsbFN0YWNrLnJlbGVhc2UoKSk7Cit9CisKK3ZvaWQg
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoRXhlY1N0YXRlKiwgUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+KQoreworICAgIC8vIEZJWE1FOiBKU0NvbnRleHQgaW5zcGVj
dGlvbiBuZWVkcyBhIHRpbWVsaW5lLgorICAgIHdhcm5VbmltcGxlbWVudGVkKEFTQ0lJTGl0ZXJh
bCgiY29uc29sZS50aW1lU3RhbXAiKSk7Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50Ojp3YXJuVW5pbXBsZW1lbnRlZChjb25zdCBTdHJpbmcmIG1ldGhvZCkKK3sKKyAgICBT
dHJpbmcgbWVzc2FnZSA9IG1ldGhvZCArICIgaXMgY3VycmVudGx5IGlnbm9yZWQgaW4gSmF2YVNj
cmlwdCBjb250ZXh0IGluc3BlY3Rpb24uIjsKKyAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2Fn
ZVRvQ29uc29sZShNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6TG9nLCBN
ZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1lc3NhZ2UsIG51bGxwdHIsIG51bGxwdHIpOworfQorCit9
IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNGFiOTFlM2Q0NWQyMWY3MGY4MWI4MDVkNDYwMWNiZWMyYWU0OGZlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdENvbnNvbGVDbGllbnQuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnRfaAorI2RlZmluZSBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnRfaAorCisjaW5j
bHVkZSAiQ29uc29sZUNsaWVudC5oIgorCituYW1lc3BhY2UgSW5zcGVjdG9yIHsKKworY2xhc3Mg
SW5zcGVjdG9yQ29uc29sZUFnZW50OworCitjbGFzcyBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQgZmluYWwgOiBwdWJsaWMgSlNDOjpDb25zb2xlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBKU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQoSW5zcGVjdG9yQ29uc29sZUFnZW50Kik7CisgICAgdmlydHVhbCB+SlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50KCkgeyB9CisKKyAgICBzdGF0aWMgYm9vbCBsb2dUb1N5c3RlbUNvbnNv
bGUoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRMb2dUb1N5c3RlbUNvbnNvbGUoYm9vbCk7CisgICAg
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZUxvZ1RvU3lzdGVtQ29uc29sZSgpOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCB2b2lkIG1lc3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlLCBN
ZXNzYWdlTGV2ZWwsIEpTQzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBQYXNz
UmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9m
aWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0aW1lRW5kKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1l
bnRzPikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdm9pZCB3YXJuVW5pbXBsZW1lbnRlZChj
b25zdCBTdHJpbmcmIG1ldGhvZCk7CisgICAgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoTWVzc2Fn
ZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOworCisgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBtX2NvbnNvbGVBZ2VudDsK
K307CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dF9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDNjMjk5
N2U5MTUxYzg5NDdjYThmMGUyZDQ4YTcxMGNmNDkxMmJmMjUuLjg4MDllOGFlMTc0MTc0YzZlZDRm
ZjgwYzBiY2RiMmZiMzI3Yjc5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKQEAgLTM1LDkgKzM1LDkgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsLmgiCi0jaW5jbHVkZSAiSlNDb25zb2xlQ2xpZW50LmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdENvbnNvbGVB
Z2VudC5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCkBAIC02Miw3
ICs2Miw3IEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6SlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2JqCiAgICAgYXV0byBkZWJ1Z2dlckFnZW50
ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQ+KG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2dsb2JhbE9iamVjdCwgY29uc29sZUFnZW50LmdldCgp
KTsKIAogICAgIG1fY29uc29sZUFnZW50ID0gY29uc29sZUFnZW50LmdldCgpOwotICAgIG1fY29u
c29sZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNDb25zb2xlQ2xpZW50PihtX2NvbnNvbGVB
Z2VudCk7CisgICAgbV9jb25zb2xlQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQ+KG1fY29uc29sZUFnZW50KTsKIAogICAgIHJ1bnRpbWVBZ2VudC0+
c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJmRlYnVnZ2VyQWdlbnQtPnNjcmlwdERlYnVnU2VydmVyKCkp
OwogCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXI6OnJlcG9ydEFQSUV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmEKICAgICBTdHJp
bmcgZXJyb3JNZXNzYWdlID0gZXhjZXB0aW9uLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsK
ICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogCi0gICAgaWYgKEpTQ29uc29sZUNsaWVudDo6
bG9nVG9TeXN0ZW1Db25zb2xlKCkpIHsKKyAgICBpZiAoSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50Ojpsb2dUb1N5c3RlbUNvbnNvbGUoKSkgewogICAgICAgICBpZiAoY2FsbFN0YWNrLT5zaXpl
KCkpIHsKICAgICAgICAgICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgY2FsbEZyYW1lID0gY2Fs
bFN0YWNrLT5hdCgwKTsKICAgICAgICAgICAgIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIGVycm9yTWVzc2FnZSwgY2FsbEZyYW1lLnNvdXJjZVVSTCgpLCBjYWxsRnJhbWUubGlu
ZU51bWJlcigpLCBjYWxsRnJhbWUuY29sdW1uTnVtYmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmgKaW5kZXggOTgzNzcxNzIzZDZiMDE4YmQ3ZjdkNDBjNzdlZjYyZmVj
MzNmZjkwYi4uNzYwNWE1YzQ2OWE0MTViMDY3YzI2NzI1MTE2OTRkY2ZmNmFkOGFlZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNz
IEluc3BlY3RvckNvbnNvbGVBZ2VudDsKIGNsYXNzIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
OwogY2xhc3MgSW5zcGVjdG9yQ29uc29sZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsOwotY2xhc3MgSlNDb25zb2xlQ2xpZW50OworY2xhc3MgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50OwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCiBjbGFzcyBKU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yRW52aXJvbm1lbnQg
ewpAQCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogCiAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCYg
bV9nbG9iYWxPYmplY3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluamVjdGVkU2NyaXB0TWFuYWdl
cj4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEpTQ29uc29s
ZUNsaWVudD4gbV9jb25zb2xlQ2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQ+IG1fY29uc29sZUNsaWVudDsKICAgICBJbnNwZWN0b3JDb25zb2xl
QWdlbnQqIG1fY29uc29sZUFnZW50OwogICAgIEluc3BlY3RvckFnZW50UmVnaXN0cnkgbV9hZ2Vu
dHM7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBtX2luc3BlY3RvckZyb250ZW5kQ2hh
bm5lbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDU5MmUyODZlNjVhYjhiZjk1NDFiOGQwMTc5
ZGE3NWYxZDhjZGMzZS4uNTk1ZDdkNTA4ZmI3NWMxZDM3YWY5MTg5OWRjYzNiOTJlZDMxYmRkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5MzgsNyArMTkzOCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcAogICAgIHBhZ2UvUGFnZS5jcHAK
ICAgICBwYWdlL1BhZ2VBY3Rpdml0eUFzc2VydGlvblRva2VuLmNwcAotICAgIHBhZ2UvUGFnZUNv
bnNvbGUuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKICAgICBwYWdlL1BhZ2VH
cm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKICAgICBwYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA2ZDdhMmQ1YmY4MDI2ZjE3
ZjhkOTY4ODE2Mzk0NjkyOTI4NjBmZDJlLi5mYjc1YTZkMGQ0OTg1MWEwYmJmMDAzYzQ2MTRkNDlk
YTY5NTYwY2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTg3LDggKzE4Nyw2IEBAIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUxOHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RU5TXzlTZXNzaW9uCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTlnZXRPcmlnaW5z
V2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5F
RUVOU18xOFNlY3VyaXR5T3JpZ2luSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUyMHJlbW92ZUltYWdlRnJvbUNhY2hlRVJLTlNfM1VSTEVSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dp
dGhPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCi1fX1pON1dlYkNvcmUxMVBhZ2VDb25zb2xl
MjFzaG91bGRQcmludEV4Y2VwdGlvbnNFdgotX19aTjdXZWJDb3JlMTFQYWdlQ29uc29sZTI0c2V0
U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTExU1FMUmVzdWx0T2tFCiBfX1pO
N1dlYkNvcmUxMVVSTFdpdGhEYXRhRVA2TlNEYXRhUDVOU1VSTAogX19aTjdXZWJDb3JlMTFnZXRV
UkxCeXRlc0VQSzdfX0NGVVJMUk4zV1RGNlZlY3RvckljTG01MTJFTlMzXzE1Q3Jhc2hPbk92ZXJm
bG93RUVFCkBAIC03NjMsNiArNzYxLDggQEAgX19aTjdXZWJDb3JlMTdKU0RPTUdsb2JhbE9iamVj
dDZzX2luZm9FCiBfX1pON1dlYkNvcmUxN0tleWZyYW1lVmFsdWVMaXN0Nmluc2VydEVOM1dURjEw
UGFzc093blB0cklLTlNfMTRBbmltYXRpb25WYWx1ZUVFRQogX19aTjdXZWJDb3JlMTdNb3VzZVJl
bGF0ZWRFdmVudDdvZmZzZXRYRXYKIF9fWk43V2ViQ29yZTE3TW91c2VSZWxhdGVkRXZlbnQ3b2Zm
c2V0WUV2CitfX1pON1dlYkNvcmUxN1BhZ2VDb25zb2xlQ2xpZW50MjFzaG91bGRQcmludEV4Y2Vw
dGlvbnNFdgorX19aTjdXZWJDb3JlMTdQYWdlQ29uc29sZUNsaWVudDI0c2V0U2hvdWxkUHJpbnRF
eGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTE3UGxhdGZvcm1DQUZpbHRlcnMxN3NldEZpbHRlcnNP
bkxheWVyRVA3Q0FMYXllclJLTlNfMTZGaWx0ZXJPcGVyYXRpb25zRQogX19aTjdXZWJDb3JlMTdQ
bGF0Zm9ybUNBRmlsdGVyczIzZmlsdGVyVmFsdWVGb3JPcGVyYXRpb25FUEtOU18xNUZpbHRlck9w
ZXJhdGlvbkVpCiBfX1pON1dlYkNvcmUxN1BsYXRmb3JtQ0FGaWx0ZXJzMjVzZXRCbGVuZGluZ0Zp
bHRlcnNPbkxheWVyRVA3Q0FMYXllck5TXzlCbGVuZE1vZGVFCkBAIC0xMDY5LDkgKzEwNjksNiBA
QCBfX1pON1dlYkNvcmUzM3N0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlc0VSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTM2c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25O
YW1lRVJLTjNXVEY2U3RyaW5nRVMzXwogX19aTjdXZWJDb3JlMzdXaWRnZXRIaWVyYXJjaHlVcGRh
dGVzU3VzcGVuc2lvblNjb3BlMTFtb3ZlV2lkZ2V0c0V2CiBfX1pON1dlYkNvcmUzN1dpZGdldEhp
ZXJhcmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGUzNXNfd2lkZ2V0SGllcmFyY2h5VXBkYXRlU3Vz
cGVuZENvdW50RQotI2lmICFVU0UoQ0ZORVRXT1JLKQotX19aTjdXZWJDb3JlMzdzeW50aGVzaXpl
UmVkaXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5RVAxNU5TVVJMQ29ubmVjdGlvblAxMk5TVVJMUmVx
dWVzdFAxM05TVVJMUmVzcG9uc2UKLSNlbmRpZgogX19aTjdXZWJDb3JlM1VSTDEwaW52YWxpZGF0
ZUV2CiBfX1pON1dlYkNvcmUzVVJMMTFzZXRQcm90b2NvbEVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTNVUkw3c2V0UGF0aEVSS04zV1RGNlN0cmluZ0UKQEAgLTIwNTAsNyArMjA0Nyw2IEBA
IF9fWk5LN1dlYkNvcmU5UmVuZGVyQm94MTFjbGllbnRXaWR0aEV2CiBfX1pOSzdXZWJDb3JlOVJl
bmRlckJveDEyY2xpZW50SGVpZ2h0RXYKIF9fWk5LN1dlYkNvcmU5UmVuZGVyQm94MjBmbGlwcGVk
Q2xpZW50Qm94UmVjdEV2CiBfX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5SWRF
UktOM1dURjZTdHJpbmdFCi1fX1pUVk43V2ViQ29yZTExUGFnZUNvbnNvbGVFCiBfX1pUVk43V2Vi
Q29yZTEyQmxvYlJlZ2lzdHJ5RQogX19aVFZON1dlYkNvcmUxMkNocm9tZUNsaWVudEUKIF9fWlRW
TjdXZWJDb3JlMTRMb2FkZXJTdHJhdGVneUUKQEAgLTIwNjEsNiArMjA1Nyw3IEBAIF9fWlRWTjdX
ZWJDb3JlMTZCbG9iUmVnaXN0cnlJbXBsRQogX19aVFZON1dlYkNvcmUxNkRhdGFiYXNlU3RyYXRl
Z3lFCiBfX1pUVk43V2ViQ29yZTE2SWNvbkRhdGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdG
cmFtZUxvYWRlckNsaWVudEUKK19fWlRWTjdXZWJDb3JlMTdQYWdlQ29uc29sZUNsaWVudEUKIF9f
WlRWTjdXZWJDb3JlMTlCbHVyRmlsdGVyT3BlcmF0aW9uRQogX19aVFZON1dlYkNvcmUyMUJsb2JE
YXRhRmlsZVJlZmVyZW5jZUUKIF9fWlRWTjdXZWJDb3JlMjJEZWZhdWx0RmlsdGVyT3BlcmF0aW9u
RQpAQCAtMjk3NSw2ICsyOTcyLDcgQEAgX3drU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uCiAKICNp
ZiAhVVNFKENGTkVUV09SSykKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyNWNvbnRpbnVl
V2lsbENhY2hlUmVzcG9uc2VFUDE5TlNDYWNoZWRVUkxSZXNwb25zZQorX19aTjdXZWJDb3JlMzdz
eW50aGVzaXplUmVkaXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5RVAxNU5TVVJMQ29ubmVjdGlvblAx
Mk5TVVJMUmVxdWVzdFAxM05TVVJMUmVzcG9uc2UKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRF
TlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggN2ExYmE4NTYzNDlmNmFiMTY3MjVm
ZjAwNTBmZTVlNTViNTM2MjcyZS4uNTZmN2Y5ZjZmNmEwYTg5NzMxZGVjNzBiMGE0MTNiZWE0YTMw
MGQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC03NzAsNyArNzcwLDcgQEAgX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjZkZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbEV2CiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MzMmRlZmF1bHRET01UaW1lckFsaWdubWVudEludGVydmFsRXYKIF9fWk43V2ViQ29yZTZS
ZWdpb25DMUV2CiBfX1pON1dlYkNvcmUxM1BhZ2VUaHJvdHRsZXJDMUVQTlNfNFBhZ2VFCi1fX1pO
N1dlYkNvcmUxMVBhZ2VDb25zb2xlQzFFUE5TXzRQYWdlRQorX19aTjdXZWJDb3JlMTdQYWdlQ29u
c29sZUNsaWVudEMxRVBOU180UGFnZUUKIF9fWk43V2ViQ29yZTIwbmV0d29ya1N0YXRlTm90aWZp
ZXJFdgogX19aTjdXZWJDb3JlMjBOZXR3b3JrU3RhdGVOb3RpZmllckMxRXYKIF9fWk43V2ViQ29y
ZTIwTmV0d29ya1N0YXRlTm90aWZpZXJDMkV2CkBAIC01MjY4LDcgKzUyNjgsNyBAQCBfX1pON1dl
YkNvcmUxOGxpc3RTdHlsZVNob3J0aGFuZEV2CiBfX1pON1dlYkNvcmU5Q1NTUGFyc2VyMTVjdXJy
ZW50TG9jYXRpb25FdgogX19aTjdXZWJDb3JlOUNTU1BhcnNlcjExc3ludGF4RXJyb3JFUktOUzBf
OExvY2F0aW9uRU5TMF8xNVN5bnRheEVycm9yVHlwZUUKIF9fWk43V2ViQ29yZTlDU1NQYXJzZXI4
bG9nRXJyb3JFUktOM1dURjZTdHJpbmdFaQotX19aTjdXZWJDb3JlMTFQYWdlQ29uc29sZTEwYWRk
TWVzc2FnZUVOU18xM01lc3NhZ2VTb3VyY2VFTlNfMTJNZXNzYWdlTGV2ZWxFUktOM1dURjZTdHJp
bmdFUzZfampOUzNfMTBQYXNzUmVmUHRySU5TXzE1U2NyaXB0Q2FsbFN0YWNrRUVFUE4zSlNDOUV4
ZWNTdGF0ZUVtCitfX1pON1dlYkNvcmUxN1BhZ2VDb25zb2xlQ2xpZW50MTBhZGRNZXNzYWdlRU5T
XzEzTWVzc2FnZVNvdXJjZUVOU18xMk1lc3NhZ2VMZXZlbEVSS04zV1RGNlN0cmluZ0VTNl9qak5T
M18xMFBhc3NSZWZQdHJJTlNfMTVTY3JpcHRDYWxsU3RhY2tFRUVQTjNKU0M5RXhlY1N0YXRlRW0K
IF9fWk43V2ViQ29yZTIxSW5zcGVjdG9yQ29uc29sZUFnZW50MTlhZGRNZXNzYWdlVG9Db25zb2xl
RU5TXzEzTWVzc2FnZVNvdXJjZUVOU18xMU1lc3NhZ2VUeXBlRU5TXzEyTWVzc2FnZUxldmVsRVJL
TjNXVEY2U3RyaW5nRVM3X2pqUE4zSlNDOUV4ZWNTdGF0ZUVtCiBfX1pON1dlYkNvcmU5Q1NTUGFy
c2VyMTNwYXJzZVNWR1ZhbHVlRU5TXzEzQ1NTUHJvcGVydHlJREViCiBfX1pON1dlYkNvcmU5Q1NT
UGFyc2VyMjlwYXJzZURlcHJlY2F0ZWRMaW5lYXJHcmFkaWVudEVQTlNfMThDU1NQYXJzZXJWYWx1
ZUxpc3RFUk4zV1RGNlJlZlB0cklOU184Q1NTVmFsdWVFRUVOU18xN0NTU0dyYWRpZW50UmVwZWF0
RQpAQCAtNjM0NCw5ICs2MzQ0LDkgQEAgX19aTjdXZWJDb3JlMThJbmplY3RlZFNjcmlwdEhvc3RE
MUV2CiBfX1pON1dlYkNvcmUxOEluamVjdGVkU2NyaXB0SG9zdDE3SW5zcGVjdGFibGVPYmplY3RE
MEV2CiBfX1pON1dlYkNvcmUyMUJhY2tGb3J3YXJkQ29udHJvbGxlcjVjbG9zZUV2CiBfX1pON1dl
YkNvcmUxM1BhZ2VUaHJvdHRsZXI5Y2xlYXJQYWdlRXYKLV9fWk43V2ViQ29yZTExUGFnZUNvbnNv
bGVEMEV2CiBfX1pON1dlYkNvcmUxM1BhZ2VUaHJvdHRsZXJEMUV2CiBfX1pON1dlYkNvcmUxM1Bh
Z2VUaHJvdHRsZXJEMkV2CitfX1pON1dlYkNvcmUxN1BhZ2VDb25zb2xlQ2xpZW50RDBFdgogX19a
TjdXZWJDb3JlMTVGZWF0dXJlT2JzZXJ2ZXJEMUV2CiBfX1pON1dlYkNvcmU1RnJhbWVEMUV2CiBf
X1pON1dlYkNvcmU1RnJhbWVEMkV2CkBAIC0xMTcyNiw3ICsxMTcyNiw3IEBAIF9fWk4zSlNDMTBT
dGFja0ZyYW1lRDJFdgogX19aTjdXZWJDb3JlMTVTY3JpcHRBcmd1bWVudHMyNGdldEZpcnN0QXJn
dW1lbnRBc1N0cmluZ0VSTjNXVEY2U3RyaW5nRWIKIF9fWk5LN1dlYkNvcmUxMVNjcmlwdFZhbHVl
OHRvU3RyaW5nRVBOM0pTQzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUyMUluc3BlY3RvckNvbnNv
bGVBZ2VudDE5YWRkTWVzc2FnZVRvQ29uc29sZUVOU18xM01lc3NhZ2VTb3VyY2VFTlNfMTFNZXNz
YWdlVHlwZUVOU18xMk1lc3NhZ2VMZXZlbEVSS04zV1RGNlN0cmluZ0VQTjNKU0M5RXhlY1N0YXRl
RU5TNF8xMFBhc3NSZWZQdHJJTlNfMTVTY3JpcHRBcmd1bWVudHNFRUVtCi1fX1pON1dlYkNvcmUx
MVBhZ2VDb25zb2xlMjFzaG91bGRQcmludEV4Y2VwdGlvbnNFdgorX19aTjdXZWJDb3JlMTdQYWdl
Q29uc29sZUNsaWVudDIxc2hvdWxkUHJpbnRFeGNlcHRpb25zRXYKIF9fWk43V2ViQ29yZTE1U2Ny
aXB0QXJndW1lbnRzRDFFdgogX19aTjdXZWJDb3JlMTVTY3JpcHRBcmd1bWVudHNEMkV2CiBfX1pO
N1dlYkNvcmUxMVNjcmlwdFZhbHVlRDFFdgpAQCAtMTQ3ODEsNyArMTQ3ODEsNyBAQCBfX1pOSzdX
ZWJDb3JlMTFDYWNoZWRJbWFnZTIwd2lsbFBhaW50QnJva2VuSW1hZ2VFdgogX19aTjdXZWJDb3Jl
MTdkZXZpY2VTY2FsZUZhY3RvckVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjVwcmludEVycm9y
TWVzc2FnZUZvckZyYW1lRVBOU181RnJhbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU5
RE9NV2luZG93MTdwcmludEVycm9yTWVzc2FnZUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29y
ZTExUGFnZUNvbnNvbGUxMGFkZE1lc3NhZ2VFTlNfMTNNZXNzYWdlU291cmNlRU5TXzEyTWVzc2Fn
ZUxldmVsRVJLTjNXVEY2U3RyaW5nRW1QTlNfOERvY3VtZW50RQorX19aTjdXZWJDb3JlMTdQYWdl
Q29uc29sZUNsaWVudDEwYWRkTWVzc2FnZUVOU18xM01lc3NhZ2VTb3VyY2VFTlNfMTJNZXNzYWdl
TGV2ZWxFUktOM1dURjZTdHJpbmdFbVBOU184RG9jdW1lbnRFCiBfX1pON1dlYkNvcmUxNFN1YmZy
YW1lTG9hZGVyMjFyZXNvdXJjZVdpbGxVc2VQbHVnaW5FUktOM1dURjZTdHJpbmdFUzRfYgogX19a
TjdXZWJDb3JlMTdIVE1MT2JqZWN0RWxlbWVudDIxcmVuZGVyRmFsbGJhY2tDb250ZW50RXYKIF9f
Wk43V2ViQ29yZTlGcmFtZVZpZXcyMHBvc3RMYXlvdXRUaW1lckZpcmVkRVBOU181VGltZXJJUzBf
RUUKQEAgLTE4NzMxLDcgKzE4NzMxLDcgQEAgX19aTjNXVEYxMEludDMyQXJyYXlEMEV2CiBfX1pO
SzdXZWJDb3JlOUlucHV0VHlwZTE2aXNNb3VzZUZvY3VzYWJsZUV2CiBfX1pOSzdXZWJDb3JlMTZI
VE1MSW5wdXRFbGVtZW50MzFpc1RleHRGb3JtQ29udHJvbE1vdXNlRm9jdXNhYmxlRXYKIF9fWk5L
N1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxN2NhblN0YXJ0U2VsZWN0aW9uRXYKLV9fWk43V2Vi
Q29yZTExUGFnZUNvbnNvbGUxMGFkZE1lc3NhZ2VFTlNfMTNNZXNzYWdlU291cmNlRU5TXzEyTWVz
c2FnZUxldmVsRVJLTjNXVEY2U3RyaW5nRU5TM18xMFBhc3NSZWZQdHJJTlNfMTVTY3JpcHRDYWxs
U3RhY2tFRUUKK19fWk43V2ViQ29yZTE3UGFnZUNvbnNvbGVDbGllbnQxMGFkZE1lc3NhZ2VFTlNf
MTNNZXNzYWdlU291cmNlRU5TXzEyTWVzc2FnZUxldmVsRVJLTjNXVEY2U3RyaW5nRU5TM18xMFBh
c3NSZWZQdHJJTlNfMTVTY3JpcHRDYWxsU3RhY2tFRUUKIF9fWk43V2ViQ29yZUwxN2ZpbHRlckNv
bnN0cnVjdG9yRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFYgogX19aTjdXZWJD
b3JlMTZTVkdGaWx0ZXJFbGVtZW50NmNyZWF0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUVQTlNfOERv
Y3VtZW50RQogX19aTjdXZWJDb3JlMTZTVkdGaWx0ZXJFbGVtZW50QzJFUktOU18xM1F1YWxpZmll
ZE5hbWVFUE5TXzhEb2N1bWVudEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCmluZGV4IDBmNzM3ZmRhM2Y5N2EzYTI0MjJkYzk5YWQ2MGU4N2E2ODZh
YTE4NDIuLjQ2N2VlYzUwZDNhYzY4YjM1MDVkOTA0NWQ0NzkxYjA5YjU1MjNjNjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzE3Nyw3
ICs3MTc3LDcgQEAg77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uc29sZS5jcHAiIC8+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VDb25zb2xlQ2xpZW50LmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZVNlcmlhbGl6ZXIuY3BwIiAvPgpAQCAt
MTkxNTgsNyArMTkxNTgsNyBAQCDvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYt
OCI/PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxOYXZpZ2F0b3IuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcTmF2aWdhdG9yQmFzZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxPcmlnaW5BY2Nlc3NFbnRyeS5oIiAvPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uc29sZS5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uc29sZUNsaWVudC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwTG9hZERlZmVycmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXFBhZ2VTZXJpYWxpemVyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOGZj
NDQzM2JlNzhmNjgzODQzMGNjYzI0OTExM2Q0NWFhYTk5ZGNkMy4uMGRkMDU0N2I4NjAxOTllZmIx
NjI3MzQ1ZDk1YzBkYTgzZDQyNGZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNDk4Myw3ICs0OTgzLDcg
QEAg77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW4uY3BwIj4KICAg
ICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uc29sZS5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGFnZVxQYWdlQ29uc29sZUNsaWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5wYWdl
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxw
YWdlXFBhZ2VHcm91cC5jcHAiPgpAQCAtMTI5MzEsNyArMTI5MzEsNyBAQCDvu788P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cGFnZVxPcmlnaW5BY2Nlc3NFbnRyeS5oIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29u
c29sZS5oIj4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUNvbnNvbGVDbGll
bnQuaCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmgiPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdmM2MxNmZm
YzQ1ZDcwZjQxZTI1YjU5NDIzYmQyMTBmM2EwZWRlYzcuLjVhNjgzYjBmMjc4ZWM3NWY5NzcyMjU3
YTA1NWU4NzU5ZDBmZmMxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4MTMsOCArNTgxMyw4IEBACiAJCUQ3NjEzQTUwMTQ3
NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBNEUxNDc0RjEzRjAwREI4NjA2IC8qIFdl
YktpdE5hbWVkRmxvdy5jcHAgKi87IH07CiAJCUQ3NjEzQUM0MTQ3NTNFNTYwMERCODYwNiAvKiBK
U1dlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBENzYxM0FDMjE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cu
Y3BwICovOyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUx
MDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJREFFRDIwMzAxNkYyNDQyQjAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0Q5
MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi87IH07Ci0JCURBRUQyMDMxMTZG
MjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25z
b2xlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
REFFRDIwMzAxNkYyNDQyQjAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0Q5MTZGMjQxNjQw
MDY2NjEzNSAvKiBQYWdlQ29uc29sZUNsaWVudC5jcHAgKi87IH07CisJCURBRUQyMDMxMTZGMjQ0
NDgwMDcwRUMwRiAvKiBQYWdlQ29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VD
b25zb2xlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjND
MkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07CiAJ
CURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CiAJCUREMDVGRTBEMEI4
QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQwNUZFMEIwQjhCQTNDNjAwOUFDREZFIC8qIFdl
YkNvcmVPYmpDRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTEzMjgxLDggKzEzMjgxLDggQEAKIAkJRDc2MTNBQzIxNDc1M0U1NjAwREI4
NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDc2MTNBQzMxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29r
aWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29u
c29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ29uc29s
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURBQUNCM0RBMTZGMjQxNjQwMDY2
NjEzNSAvKiBQYWdlQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YWdlQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQUFDQjNEOTE2RjI0
MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNvbnNvbGVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGVDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNvbnNvbGVDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVC
IC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREJGQ0IwRUJGRjVDRDc3RUJFQjM1
Mzk1IC8qIFJlbmRlck1hdGhNTFNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFJlbmRlck1hdGhNTFNwYWNlLmNwcDsgcGF0aCA9IHJlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MU3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0x
NjU2MCw4ICsxNjU2MCw4IEBACiAJCQkJNjVBMjE0NjcwOTdBMzI5MTAwQjkwNTBBIC8qIFBhZ2Uu
aCAqLywKIAkJCQlDRDA4Mjg1QTE3NTcyNTA4MDBFQzVGQjcgLyogUGFnZUFjdGl2aXR5QXNzZXJ0
aW9uVG9rZW4uY3BwICovLAogCQkJCUNEMDgyODVCMTc1NzI1MDgwMEVDNUZCNyAvKiBQYWdlQWN0
aXZpdHlBc3NlcnRpb25Ub2tlbi5oICovLAotCQkJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAv
KiBQYWdlQ29uc29sZS5jcHAgKi8sCi0JCQkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBh
Z2VDb25zb2xlLmggKi8sCisJCQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25z
b2xlQ2xpZW50LmNwcCAqLywKKwkJCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNv
bnNvbGVDbGllbnQuaCAqLywKIAkJCQlBNUEyQUYwOTE4Mjk3MzQzMDBERTE3MjkgLyogUGFnZURl
YnVnZ2FibGUuY3BwICovLAogCQkJCUE1QTJBRjBBMTgyOTczNDMwMERFMTcyOSAvKiBQYWdlRGVi
dWdnYWJsZS5oICovLAogCQkJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAu
Y3BwICovLApAQCAtMjUzOTEsNyArMjUzOTEsNyBAQAogCQkJCTM3NzRBQkE1MEZBMjFFQjQwMEFE
N0RFOSAvKiBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
QTIxNDY4MDk3QTMyOTEwMEI5MDUwQSAvKiBQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc3
RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQlE
QUVEMjAzMTE2RjI0NDQ4MDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29uc29sZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjM4MjA4OTMxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QTJBRjBDMTgyOTczNDMwMERFMTcyOSAvKiBQYWdl
RGVidWdnYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NzQyREQxMzQzNjJGMDAwNTMxQkMy
IC8qIFBhZ2VEZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI4OTA2LDcgKzI4OTA2
LDcgQEAKIAkJCQk2NUZFQTg2OTA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDA4Mjg1QzE3NTcyNTBGMDBFQzVGQjcgLyogUGFnZUFjdGl2aXR5QXNzZXJ0
aW9uVG9rZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3N0U3NzYwQkY0MTM0QTAwMTUyODcy
IC8qIFBhZ2VDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlEQUVEMjAzMDE2RjI0NDJCMDA3
MEVDMEYgLyogUGFnZUNvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREFFRDIwMzAxNkYy
NDQyQjAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUYzODIwODkyMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlQ29uc29sZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1QTJBRjBCMTgyOTczNDMwMERFMTcyOSAvKiBQYWdlRGVidWdnYWJsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ3NDJEQzEzNDM2MkYwMDA1MzFCQzIgLyogUGFnZURl
YnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggZmIyZTY0MTQ3
NGQ0MDAzYTUyYTk1MjU3OTAxY2EzMTMxNGRhMzhhOC4uNjRkY2JkMDc5ZjUyYTY1NmRmYmJkYThi
MDhiZjEyMGI4MGRlNmU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1
ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCisjaW5jbHVk
ZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtODAsOCAr
ODAsOCBAQCBTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVS
SShjb25zdCBTdHJpbmcmIHByZWZpeCkKICAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29s
dmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBj
YWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTQzMTI+IEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkgQ29uc29sZSBNZXNzYWdlIHNob3VsZCBp
bmNsdWRlIExpbmUsIENvbHVtbiwgYW5kIFNvdXJjZVVSTAotICAgICAgICAgICAgaWYgKFBhZ2VD
b25zb2xlKiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3QtPmltcGwoKS5wYWdlQ29uc29sZSgpKQot
ICAgICAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90
IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpKTsKKyAgICAgICAgICAgIGlmIChQ
YWdlQ29uc29sZUNsaWVudCogY29uc29sZUNsaWVudCA9IG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCku
Y29uc29sZUNsaWVudCgpKQorICAgICAgICAgICAgICAgIGNvbnNvbGVDbGllbnQtPmFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
WFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9k
LiIpKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgfQogICAgICAgICBm
dW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcAppbmRleCBiMDg2YzczNDgw
MzdiY2FkZmRkYThlNzU2NTAyOTBiNGIyYWY5MWE1Li5hNWFiOTFlMzhjMWEwM2M5ZjNiZTc4MWMw
NGI2YmVmODZjYmU3NDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNp
bmNsdWRlICJQYWdlQ29uc29sZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBTY3JpcHRD
YWNoZWRGcmFtZURhdGE6OnJlc3RvcmUoRnJhbWUmIGZyYW1lKQogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHBhZ2UpCi0gICAgICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldENvbnNv
bGVDbGllbnQoJnBhZ2UtPmNvbnNvbGUoKSk7CisgICAgICAgICAgICB3aW5kb3dTaGVsbC0+d2lu
ZG93KCktPnNldENvbnNvbGVDbGllbnQoJnBhZ2UtPmNvbnNvbGVDbGllbnQoKSk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CmluZGV4IGRlMzVhZjA4ZTcwN2Q5NGVhYTdmZDVkMmNjMTQ2YjY0MGI0ZmUwNmMuLjM3NTE5MGU1
MThiMmQ1ZWExOWY2ZjYwNGYxOGJhMDdlYWViNDdiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5j
bHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTlBfanNvYmplY3QuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZUNs
aWVudC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIK
ICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCkBAIC0yMDcsNyArMjA3LDcgQEAgdm9pZCBT
Y3JpcHRDb250cm9sbGVyOjpjbGVhcldpbmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9NV2luZG93
LCBib29sIGdvaW5nSW50b1AKICAgICAgICAgLy8gSW5zdGVhZCBvZiBjbGVhcmluZyBhbGwgb2Yg
dGhlbSB3aGVuIHRoZSBtYWluIGZyYW1lIGlzIGRlc3Ryb3llZC4KICAgICAgICAgaWYgKG1fZnJh
bWUuaXNNYWluRnJhbWUoKSkgewogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlLT5jb25zb2xlKCkuY2xlYXJQcm9maWxlcygp
OworICAgICAgICAgICAgICAgIHBhZ2UtPmNvbnNvbGVDbGllbnQoKS5jbGVhclByb2ZpbGVzKCk7
CiAgICAgICAgIH0KIAogICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPndpbGxSZW1vdmVG
cm9tV2luZG93U2hlbGwoKTsKQEAgLTIyMSw3ICsyMjEsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xs
ZXI6OmNsZWFyV2luZG93U2hlbGwoRE9NV2luZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJ
bnRvUAogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKSB7CiAgICAgICAg
ICAgICBhdHRhY2hEZWJ1Z2dlcih3aW5kb3dTaGVsbCwgcGFnZS0+ZGVidWdnZXIoKSk7CiAgICAg
ICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldFByb2ZpbGVHcm91cChwYWdlLT5ncm91
cCgpLmlkZW50aWZpZXIoKSk7Ci0gICAgICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNl
dENvbnNvbGVDbGllbnQoJnBhZ2UtPmNvbnNvbGUoKSk7CisgICAgICAgICAgICB3aW5kb3dTaGVs
bC0+d2luZG93KCktPnNldENvbnNvbGVDbGllbnQoJnBhZ2UtPmNvbnNvbGVDbGllbnQoKSk7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBT
Y3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAg
aWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICBhdHRhY2hEZWJ1Z2dl
cih3aW5kb3dTaGVsbCwgcGFnZS0+ZGVidWdnZXIoKSk7CiAgICAgICAgIHdpbmRvd1NoZWxsLT53
aW5kb3coKS0+c2V0UHJvZmlsZUdyb3VwKHBhZ2UtPmdyb3VwKCkuaWRlbnRpZmllcigpKTsKLSAg
ICAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRDb25zb2xlQ2xpZW50KCZwYWdlLT5jb25z
b2xlKCkpOworICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldENvbnNvbGVDbGllbnQo
JnBhZ2UtPmNvbnNvbGVDbGllbnQoKSk7CiAgICAgfQogCiAgICAgbV9mcmFtZS5sb2FkZXIoKS5k
aXNwYXRjaERpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZCh3b3JsZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDMyZTFkYjljNDc1ZDZiMDRiZWE0NGFmMDY0OGNlZjBhYzA2YTEyNDYu
Ljc5ZWVhZjJlYTc4M2JlMzE1ZjRkOTg4Mzg5YjhiZWM1NGI1Mzc2NDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCkBAIC02NSw3ICs2NSw3IEBACiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAj
aW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQ
YWdlQ29uc29sZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UGFpci5oIgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgpAQCAt
MTE2NjEsOCArMTE2NjEsOCBAQCBib29sIENTU1BhcnNlcjo6aXNMb2dnaW5nRXJyb3JzKCkKIHZv
aWQgQ1NTUGFyc2VyOjpsb2dFcnJvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyKQogewogICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTQzMTM+IENTUyBw
YXJzZXIgY29uc29sZSBtZXNzYWdlIGVycm9ycyBzaG91bGQgaW5jbHVkZSBjb2x1bW4gbnVtYmVy
cy4KLSAgICBQYWdlQ29uc29sZSYgY29uc29sZSA9IG1fc3R5bGVTaGVldC0+c2luZ2xlT3duZXJE
b2N1bWVudCgpLT5wYWdlKCktPmNvbnNvbGUoKTsKLSAgICBjb25zb2xlLmFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6Q1NTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1lc3NhZ2UsIG1fc3R5bGVT
aGVldC0+YmFzZVVSTCgpLnN0cmluZygpLCBsaW5lTnVtYmVyICsgMSwgMCk7CisgICAgUGFnZUNv
bnNvbGVDbGllbnQmIGNvbnNvbGVDbGllbnQgPSBtX3N0eWxlU2hlZXQtPnNpbmdsZU93bmVyRG9j
dW1lbnQoKS0+cGFnZSgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgY29uc29sZUNsaWVudC5hZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkNTUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdl
LCBtX3N0eWxlU2hlZXQtPmJhc2VVUkwoKS5zdHJpbmcoKSwgbGluZU51bWJlciArIDEsIDApOwog
fQogCiBQYXNzUmVmUHRyPFN0eWxlUnVsZUtleWZyYW1lcz4gQ1NTUGFyc2VyOjpjcmVhdGVLZXlm
cmFtZXNSdWxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZWZQ
dHI8U3R5bGVLZXlmcmFtZT4+PiBwb3BLZXlmcmFtZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCAzMTQwNDNkNDkzMTAwNTBmMmE1YmZhMTlhNWEwY2U5NDJjZDlkNDhlLi42NDU0ZmMyYmY1
Y2Y2MmNjZTBjM2VhMTNmY2UzNTRkNmM0MzhkOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTEwNSw3ICsxMDUsNyBAQAogI2luY2x1ZGUgIk5vZGVJdGVyYXRvci5oIgogI2luY2x1ZGUg
Ik5vZGVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIk5vZGVXaXRoSW5kZXguaCIKLSNpbmNsdWRlICJQ
YWdlQ29uc29sZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTG9jYWxlLmgiCkBAIC00ODkwLDcgKzQ4OTAsNyBAQCB2b2lkIERvY3VtZW50Ojph
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBjb25zdAogICAgIH0KIAogICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKQotICAg
ICAgICBwYWdlLT5jb25zb2xlKCkuYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBy
ZXF1ZXN0SWRlbnRpZmllciwgdGhpcyk7CisgICAgICAgIHBhZ2UtPmNvbnNvbGVDbGllbnQoKS5h
ZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlz
KTsKIH0KIAogdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFBh
c3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQpAQCAtNDkwMSw3
ICs0OTAxLDcgQEAgdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcKICAgICB9CiAKICAgICBpZiAoUGFn
ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Y29uc29sZSgpLmFkZE1lc3Nh
Z2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIsIGNhbGxTdGFjaywgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgcGFn
ZS0+Y29uc29sZUNsaWVudCgpLmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291
cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNhbGxTdGFjaywgc3RhdGUsIHJlcXVl
c3RJZGVudGlmaWVyKTsKIH0KIAogU2VjdXJpdHlPcmlnaW4qIERvY3VtZW50Ojp0b3BPcmlnaW4o
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dl
ckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5j
cHAKaW5kZXggNzYwMjNlMTlkZDAyYTZmY2YxZDEzYjNiNjRmMGQxN2Y5ZjFjZTUzMy4uYTA2ZTUy
MzdhMjYxZDYxNjZiYTVlYzgxZjIwMDg4ZjdlOTQwZWVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zOCw3ICszOCw3IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50
cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorI2luY2x1
ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFnZVNjcmlwdERlYnVnU2VydmVy
LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuaD4KQEAgLTEwOCwxNyArMTA4LDE3IEBAIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciYg
UGFnZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERlYnVnU2VydmVyKCkKIAogdm9pZCBQYWdlRGVidWdn
ZXJBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewotICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7CisgICAg
UGFnZUNvbnNvbGVDbGllbnQ6Om11dGUoKTsKIH0KIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6
dW5tdXRlQ29uc29sZSgpCiB7Ci0gICAgUGFnZUNvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VD
b25zb2xlQ2xpZW50Ojp1bm11dGUoKTsKIH0KIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6YnJl
YWtwb2ludEFjdGlvbkxvZyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogewotICAgIG1fcGFnZUFnZW50LT5wYWdlKCktPmNvbnNvbGUoKS5hZGRNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkxvZywgbWVzc2FnZSwgY3JlYXRlU2NyaXB0
Q2FsbFN0YWNrKGV4ZWMsIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVy
ZSkpOworICAgIG1fcGFnZUFnZW50LT5wYWdlKCktPmNvbnNvbGVDbGllbnQoKS5hZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkxvZywgbWVzc2FnZSwgY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKGV4ZWMsIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2Fw
dHVyZSkpOwogfQogCiBJbmplY3RlZFNjcmlwdCBQYWdlRGVidWdnZXJBZ2VudDo6aW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRp
b25Db250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2Vu
dC5jcHAKaW5kZXggYjk5YTAzYzZlMDZmZTkzMmFjNzM1YjM2MDI2NWNhMjg0MDhjYWI3OS4uOTZm
MmVhYzAwMTFmMzMzNmE0ODliY2MxYWQ4OTliMWZhYzExZjFlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25z
b2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNj
cmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTE0NiwxMiArMTQ2
LDEyIEBAIEluamVjdGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9y
RXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsCiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6
bXV0ZUNvbnNvbGUoKQogewotICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7CisgICAgUGFnZUNvbnNv
bGVDbGllbnQ6Om11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50Ojp1bm11dGVDb25z
b2xlKCkKIHsKLSAgICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7CisgICAgUGFnZUNvbnNvbGVDbGll
bnQ6OnVubXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlv
bkNvbnRleHRDcmVhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZmRhOTUw
OTM2ODU1NGNhNmVhMTk0NjE5ZmYyN2E0ZjBiZTUyOTgwYy4uNWRiY2Q5MTRjNzlkYWEwZjRhZDdk
YThjYmY2OWQzZTQ1ZGQ2MDhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzYs
NyArNzYsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRv
ci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorI2luY2x1
ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC03
MDIsMTEgKzcwMiwxMSBAQCBCYXJQcm9wKiBET01XaW5kb3c6OnRvb2xiYXIoKSBjb25zdAogICAg
IHJldHVybiBtX3Rvb2xiYXIuZ2V0KCk7CiB9CiAKLVBhZ2VDb25zb2xlKiBET01XaW5kb3c6OnBh
Z2VDb25zb2xlKCkgY29uc3QKK1BhZ2VDb25zb2xlQ2xpZW50KiBET01XaW5kb3c6OmNvbnNvbGVD
bGllbnQoKSBjb25zdAogewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
Ci0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyAmbV9mcmFt
ZS0+cGFnZSgpLT5jb25zb2xlKCkgOiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gbV9mcmFtZS0+cGFnZSgpID8gJm1fZnJhbWUtPnBhZ2UoKS0+Y29uc29sZUNsaWVudCgp
IDogbnVsbHB0cjsKIH0KIAogRE9NQXBwbGljYXRpb25DYWNoZSogRE9NV2luZG93OjphcHBsaWNh
dGlvbkNhY2hlKCkgY29uc3QKQEAgLTkzNyw3ICs5MzcsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGlz
cGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVk
VGFyZwogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0
UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3RyaW5n
IG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJnZXRP
cmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNp
cGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJp
bmcoKSArICIuXG4iOwotICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShNZXNz
YWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSwgc3RhY2tU
cmFjZSk7CisgICAgICAgICAgICBjb25zb2xlQ2xpZW50KCktPmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHN0YWNrVHJhY2Up
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAzNiw3ICsxMDM2
LDcgQEAgdm9pZCBET01XaW5kb3c6OmNsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiAgICAgYm9vbCBhbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyA9IG1fZnJhbWUtPnNldHRp
bmdzKCkuYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoKTsKIAogICAgIGlmICghKHBhZ2UtPm9w
ZW5lZEJ5RE9NKCkgfHwgcGFnZS0+YmFja0ZvcndhcmQoKS5jb3VudCgpIDw9IDEgfHwgYWxsb3dT
Y3JpcHRzVG9DbG9zZVdpbmRvd3MpKSB7Ci0gICAgICAgIHBhZ2VDb25zb2xlKCktPmFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgQVNDSUlMaXRlcmFs
KCJDYW4ndCBjbG9zZSB0aGUgd2luZG93IHNpbmNlIGl0IHdhcyBub3Qgb3BlbmVkIGJ5IEphdmFT
Y3JpcHQiKSk7CisgICAgICAgIGNvbnNvbGVDbGllbnQoKS0+YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlOjpKUywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBBU0NJSUxpdGVyYWwoIkNhbid0IGNsb3Nl
IHRoZSB3aW5kb3cgc2luY2UgaXQgd2FzIG5vdCBvcGVuZWQgYnkgSmF2YVNjcmlwdCIpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjAwOCw3ICsyMDA4LDcgQEAgdm9pZCBET01XaW5k
b3c6OnByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBpZiAobWVz
c2FnZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChQYWdlQ29uc29sZSog
Y29uc29sZSA9IHBhZ2VDb25zb2xlKCkpCisgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25z
b2xlID0gY29uc29sZUNsaWVudCgpKQogICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKaW5kZXggZTI0YzAxY2M1MjQ0NTZmYTRkNWRjMTFmMzFlNDUyNDM4YTQ0
MWY2MS4uZWM5ZGQ4YTgyOTI4ZGZiZmU0ODA0Zjk0YzQ5Y2M3MjBlMjYyMTgyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCkBAIC02Nyw3ICs2Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOwotICAg
IGNsYXNzIFBhZ2VDb25zb2xlOworICAgIGNsYXNzIFBhZ2VDb25zb2xlQ2xpZW50OwogICAgIGNs
YXNzIFBlcmZvcm1hbmNlOwogICAgIGNsYXNzIFBvc3RNZXNzYWdlVGltZXI7CiAgICAgY2xhc3Mg
U2NoZWR1bGVkQWN0aW9uOwpAQCAtMjM1LDcgKzIzNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgUGFzc1JlZlB0cjxXZWJLaXRQb2ludD4gd2Via2l0Q29udmVydFBvaW50RnJvbVBh
Z2VUb05vZGUoTm9kZSosIGNvbnN0IFdlYktpdFBvaW50KikgY29uc3Q7CiAgICAgICAgIFBhc3NS
ZWZQdHI8V2ViS2l0UG9pbnQ+IHdlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlKE5vZGUq
LCBjb25zdCBXZWJLaXRQb2ludCopIGNvbnN0OwogCi0gICAgICAgIFBhZ2VDb25zb2xlKiBwYWdl
Q29uc29sZSgpIGNvbnN0OworICAgICAgICBQYWdlQ29uc29sZUNsaWVudCogY29uc29sZUNsaWVu
dCgpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgcHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5n
Jik7CiAgICAgICAgIFN0cmluZyBjcm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShjb25zdCBE
T01XaW5kb3cmIGFjdGl2ZVdpbmRvdyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA5YzQxNmY4OTIz
NzgzZTM1ZjY2NTY1OWY4OGZlNGRmNzRhZGJhZTZhLi5iMmE0MWE3Y2MwYzcxNjJiOWEwYWJiMmZm
YmI2ZDE2YzQzODNjYmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0eUFz
c2VydGlvblRva2VuLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCi0jaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VE
ZWJ1Z2dhYmxlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRocm90
dGxlci5oIgpAQCAtMTkyLDcgKzE5Miw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VD
bGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ2xpZW50
cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3Bl
bmRlZChmYWxzZSkKLSAgICAsIG1fY29uc29sZShzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xl
PigqdGhpcykpCisgICAgLCBtX2NvbnNvbGVDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29u
c29sZUNsaWVudD4oKnRoaXMpKQogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgICwg
bV9pbnNwZWN0b3JEZWJ1Z2dhYmxlKHN0ZDo6bWFrZV91bmlxdWU8UGFnZURlYnVnZ2FibGU+KCp0
aGlzKSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkZjA4YmJkZjYzMWM3NjliMTljY2RjZGIw
NjY3OGJmYTI2NjI5YmYyLi5jOTY3ZGNlOTA4OWRiNmEwN2QzMmMxOTE0MDJjYjc2M2JjZGFmY2U3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaApAQCAtODEsNyArODEsNyBAQCBjbGFzcyBJbnNwZWN0b3JDb250cm9s
bGVyOwogY2xhc3MgTWFpbkZyYW1lOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xh
c3MgUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW47Ci1jbGFzcyBQYWdlQ29uc29sZTsKK2NsYXNz
IFBhZ2VDb25zb2xlQ2xpZW50OwogY2xhc3MgUGFnZURlYnVnZ2FibGU7CiBjbGFzcyBQYWdlR3Jv
dXA7CiBjbGFzcyBQYWdlVGhyb3R0bGVyOwpAQCAtNDA4LDcgKzQwOCw3IEBAIHB1YmxpYzoKICAg
ICBQYWdlVGhyb3R0bGVyKiBwYWdlVGhyb3R0bGVyKCkgeyByZXR1cm4gbV9wYWdlVGhyb3R0bGVy
LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjcmVhdGVQYWdlVGhyb3R0bGVyKCk7
CiAKLSAgICBQYWdlQ29uc29sZSYgY29uc29sZSgpIHsgcmV0dXJuICptX2NvbnNvbGU7IH0KKyAg
ICBQYWdlQ29uc29sZUNsaWVudCYgY29uc29sZUNsaWVudCgpIHsgcmV0dXJuICptX2NvbnNvbGVD
bGllbnQ7IH0KIAogICAgIHZvaWQgaGlkZGVuUGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25TdGF0
ZUNoYW5nZWQoKTsKIApAQCAtNTcxLDcgKzU3MSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
c2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlVGhy
b3R0bGVyPiBtX3BhZ2VUaHJvdHRsZXI7Ci0gICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPFBhZ2VD
b25zb2xlPiBtX2NvbnNvbGU7CisgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDb25zb2xl
Q2xpZW50PiBtX2NvbnNvbGVDbGllbnQ7CiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikK
ICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8UGFnZURlYnVnZ2FibGU+IG1faW5zcGVjdG9yRGVi
dWdnYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI5NTM3YWRjNTEyNjJiNjZmOTUxZjRjNDEzYTRlNTNiMTBiM2RkZmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKLQotI2luY2x1ZGUgIkNo
cm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVu
dGF0aW9uLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkpT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIk1haW5GcmFtZS5oIgotI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKLSNpbmNsdWRl
ICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+Ci0jaW5jbHVk
ZSA8aW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9TY3Jp
cHRDYWxsU3RhY2suaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9y
eS5oPgotCi11c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVBhZ2VDb25zb2xlOjpQYWdlQ29uc29sZShQYWdlJiBwYWdlKQotICAgIDogbV9wYWdlKHBh
Z2UpCi17Ci19Ci0KLVBhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKQotewotfQotCi1zdGF0aWMg
aW50IG11dGVDb3VudCA9IDA7Ci1zdGF0aWMgYm9vbCBwcmludEV4Y2VwdGlvbnMgPSBmYWxzZTsK
LQotYm9vbCBQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkKLXsKLSAgICByZXR1
cm4gcHJpbnRFeGNlcHRpb25zOwotfQotCi12b2lkIFBhZ2VDb25zb2xlOjpzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnMoYm9vbCBwcmludCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsK
LX0KLQotdm9pZCBQYWdlQ29uc29sZTo6bXV0ZSgpCi17Ci0gICAgbXV0ZUNvdW50Kys7Ci19Ci0K
LXZvaWQgUGFnZUNvbnNvbGU6OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+IDAp
OwotICAgIG11dGVDb3VudC0tOwotfQotCi12b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgRG9jdW1lbnQqIGRvY3VtZW50
KQotewotICAgIFN0cmluZyB1cmw7Ci0gICAgaWYgKGRvY3VtZW50KQotICAgICAgICB1cmwgPSBk
b2N1bWVudC0+dXJsKCkuc3RyaW5nKCk7Ci0KLSAgICAvLyBGSVhNRTogVGhlIGJlbG93IGNvZGUg
YXR0ZW1wdHMgdG8gZGV0ZXJtaW5lIGxpbmUgbnVtYmVycyBmb3IgcGFyc2VyIGdlbmVyYXRlZCBl
cnJvcnMsIGJ1dCB0aGlzIGlzIG5vdCB0aGUgb25seSByZWFzb24gd2h5IHdlIGNhbiBnZXQgaGVy
ZS4KLSAgICAvLyBGb3IgZXhhbXBsZSwgaWYgd2UgYXJlIHN0aWxsIHBhcnNpbmcgYW5kIGdldCBh
IFdlYlNvY2tldCBuZXR3b3JrIGVycm9yLCBpdCB3aWxsIGJlIGVycm9uZW91c2x5IGF0dHJpYnV0
ZWQgdG8gYSBsaW5lIHdoZXJlIHBhcnNpbmcgd2FzIHBhdXNlZC4KLSAgICAvLyBBbHNvLCB3ZSBz
aG91bGQgZGV0ZXJtaW5lIGxpbmUgbnVtYmVycyBmb3Igc2NyaXB0IGdlbmVyYXRlZCBtZXNzYWdl
cyAoZS5nLiBjYWxsaW5nIGdldEltYWdlRGF0YSBvbiBhIGNhbnZhcykuCi0gICAgLy8gV2UgcHJv
YmFibHkgbmVlZCB0byBzcGxpdCB0aGlzIGZ1bmN0aW9uIGludG8gbXVsdGlwbGUgb25lcywgYXMg
YXBwcm9wcmlhdGUgZm9yIGRpZmZlcmVudCBjYWxsIHNpdGVzLiBPciBtYXliZSBkZWNpZGUgYmFz
ZWQgb24gTWVzc2FnZVNvdXJjZS4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI1MzQwCi0gICAgdW5zaWduZWQgbGluZSA9IDA7Ci0gICAgdW5zaWduZWQg
Y29sdW1uID0gMDsKLSAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnBhcnNpbmcoKSAmJiAh
ZG9jdW1lbnQtPmlzSW5Eb2N1bWVudFdyaXRlKCkgJiYgZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1
bWVudFBhcnNlcigpKSB7Ci0gICAgICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2Vy
ID0gZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpOwotICAgICAgICBpZiAoIXBh
cnNlci0+aXNXYWl0aW5nRm9yU2NyaXB0cygpICYmICFKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1
cnJlbnRTdGF0ZSgpKSB7Ci0gICAgICAgICAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBwYXJz
ZXItPnRleHRQb3NpdGlvbigpOwotICAgICAgICAgICAgbGluZSA9IHBvc2l0aW9uLm1fbGluZS5v
bmVCYXNlZEludCgpOwotICAgICAgICAgICAgY29sdW1uID0gcG9zaXRpb24ubV9jb2x1bW4ub25l
QmFzZWRJbnQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2
ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgY29sdW1uLCAwLCBKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmN1cnJlbnRTdGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgUGFnZUNvbnNv
bGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrKQotewotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCks
IDAsIDAsIGNhbGxTdGFjaywgMCk7Ci19Ci0KLXZvaWQgUGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQg
Y29sdW1uTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCi17Ci0g
ICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0gTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGNhbGxTdGFjaykKLSAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKCZtX3BhZ2UsIHNvdXJjZSwgTWVz
c2FnZVR5cGU6OkxvZywgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZp
ZXIpOwotICAgIGVsc2UKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNz
YWdlVG9Db25zb2xlKCZtX3BhZ2UsIHNvdXJjZSwgTWVzc2FnZVR5cGU6OkxvZywgbGV2ZWwsIG1l
c3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElkZW50
aWZpZXIpOwotCi0gICAgaWYgKHNvdXJjZSA9PSBNZXNzYWdlU291cmNlOjpDU1MpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmIChtX3BhZ2UudXNlc0VwaGVtZXJhbFNlc3Npb24oKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCB1
cmwpOwotCi0gICAgaWYgKCFtX3BhZ2Uuc2V0dGluZ3MoKS5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0
ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQ29uc29sZUNsaWVudDo6cHJpbnRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpDb25zb2xlQVBJLCBNZXNzYWdlVHlwZTo6TG9nLCBsZXZlbCwgbWVzc2FnZSwgdXJs
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwotfQotCi0KLXZvaWQgUGFnZUNvbnNvbGU6Om1l
c3NhZ2VXaXRoVHlwZUFuZExldmVsKE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+IHBycEFyZ3VtZW50cykKLXsKLSAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1
bWVudHMgPSBwcnBBcmd1bWVudHM7Ci0KLSAgICBTdHJpbmcgbWVzc2FnZTsKLSAgICBib29sIGdv
dE1lc3NhZ2UgPSBhcmd1bWVudHMtPmdldEZpcnN0QXJndW1lbnRBc1N0cmluZyhtZXNzYWdlKTsK
LSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUoJm1fcGFn
ZSwgTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGV4ZWMs
IGFyZ3VtZW50cyk7Ci0KLSAgICBpZiAobV9wYWdlLnVzZXNFcGhlbWVyYWxTZXNzaW9uKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmIChnb3RNZXNzYWdlKSB7Ci0gICAgICAgIHNpemVfdCBz
dGFja1NpemUgPSB0eXBlID09IE1lc3NhZ2VUeXBlOjpUcmFjZSA/IFNjcmlwdENhbGxTdGFjazo6
bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSA6IDE7Ci0gICAgICAgIFJlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIHN0
YWNrU2l6ZSkpOwotICAgICAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIGxhc3RDYWxsZXIgPSBj
YWxsU3RhY2stPmF0KDApOwotICAgICAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRkTWVz
c2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlOjpDb25zb2xlQVBJLCB0eXBlLCBsZXZlbCwgbWVz
c2FnZSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuY29sdW1uTnVtYmVyKCks
IGxhc3RDYWxsZXIuc291cmNlVVJMKCkpOwotICAgIH0KLQotICAgIGlmIChtX3BhZ2Uuc2V0dGlu
Z3MoKS5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpIHx8IFBhZ2VDb25z
b2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKLSAgICAgICAgQ29uc29sZUNsaWVudDo6cHJp
bnRDb25zb2xlTWVzc2FnZVdpdGhBcmd1bWVudHMoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwg
dHlwZSwgbGV2ZWwsIGV4ZWMsIGFyZ3VtZW50cy5yZWxlYXNlKCkpOwotfQotCi12b2lkIFBhZ2VD
b25zb2xlOjpjb3VudChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+IGFyZ3VtZW50cykKLXsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNv
bGVDb3VudCgmbV9wYWdlLCBleGVjLCBhcmd1bWVudHMpOwotfQotCi12b2lkIFBhZ2VDb25zb2xl
Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQotewot
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRQcm9maWxpbmcoJm1fcGFnZSwgZXhl
YywgdGl0bGUpOwotfQotCi12b2lkIFBhZ2VDb25zb2xlOjpwcm9maWxlRW5kKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQotewotICAgIGlmIChSZWZQdHI8SlNDOjpQ
cm9maWxlPiBwcm9maWxlID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5n
KCZtX3BhZ2UsIGV4ZWMsIHRpdGxlKSkKLSAgICAgICAgbV9wcm9maWxlcy5hcHBlbmQocHJvZmls
ZS5yZWxlYXNlKCkpOwotfQotCi12b2lkIFBhZ2VDb25zb2xlOjp0aW1lKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKLXsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnN0YXJ0Q29uc29sZVRpbWluZygmbV9wYWdlLm1haW5GcmFtZSgpLCB0aXRsZSk7Ci19Ci0KLXZv
aWQgUGFnZUNvbnNvbGU6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpCi17Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0
ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoZXhlYywgMSkpOwotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6c3RvcENvbnNvbGVUaW1pbmcoJm1fcGFnZS5tYWluRnJhbWUoKSwgdGl0bGUs
IGNhbGxTdGFjay5yZWxlYXNlKCkpOwotfQotCi12b2lkIFBhZ2VDb25zb2xlOjp0aW1lU3RhbXAo
SlNDOjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKQot
ewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcCgmbV9wYWdl
Lm1haW5GcmFtZSgpLCBhcmd1bWVudHMpOwotfQotCi12b2lkIFBhZ2VDb25zb2xlOjpjbGVhclBy
b2ZpbGVzKCkKLXsKLSAgICBtX3Byb2ZpbGVzLmNsZWFyKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWMyZGY0MTFhMDE3NTA3MzRiNjAxZmE2MzE0ODc4MzkwZGJjMDBiNi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGFnZUNvbnNv
bGVfaAotI2RlZmluZSBQYWdlQ29uc29sZV9oCi0KLSNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9Db25zb2xlQ2xpZW50Lmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBFeGVjU3RhdGU7Ci1j
bGFzcyBQcm9maWxlOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3VtZW50
OwotY2xhc3MgUGFnZTsKLQotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEpTQzo6UHJvZmlsZT4+IFBy
b2ZpbGVzQXJyYXk7Ci0KLWNsYXNzIFBhZ2VDb25zb2xlIGZpbmFsIDogcHVibGljIEpTQzo6Q29u
c29sZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgUGFnZUNvbnNvbGUoUGFnZSYpOwot
ICAgIHZpcnR1YWwgflBhZ2VDb25zb2xlKCk7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCk7Ci0KLSAgICBzdGF0aWMgdm9pZCBt
dXRlKCk7Ci0gICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7Ci0KLSAgICB2b2lkIGFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+ID0gbnVsbHB0ciwg
SlNDOjpFeGVjU3RhdGUqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmll
ciA9IDApOwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxT
dGFjaz4pOwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9
IDAsIERvY3VtZW50KiA9IG51bGxwdHIpOwotCi0gICAgY29uc3QgUHJvZmlsZXNBcnJheSYgcHJv
ZmlsZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb2ZpbGVzOyB9Ci0gICAgdm9pZCBjbGVhclByb2Zp
bGVzKCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5k
TGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBQYXNzUmVm
UHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHBy
b2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0
bGUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHRpbWVTdGFt
cChKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+
KSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBQYWdlJiBtX3BhZ2U7Ci0gICAgUHJvZmlsZXNB
cnJheSBtX3Byb2ZpbGVzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gUGFnZUNvbnNvbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
c29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MWNiNThiNWRkY2RkOTZkNmVhMjlkNzQyNmFmNTNiN2MzYTAxYTcwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5j
cHAKQEAgLTAsMCArMSwxOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDb25z
b2xlQ2xpZW50LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkluc3BlY3Rv
ckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNs
dWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxiaW5k
aW5ncy9TY3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMu
aD4KKyNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CisjaW5jbHVkZSA8aW5z
cGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KKwordXNpbmcgbmFtZXNwYWNlIEluc3Bl
Y3RvcjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdlQ29uc29sZUNsaWVudDo6UGFnZUNv
bnNvbGVDbGllbnQoUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCitQYWdl
Q29uc29sZUNsaWVudDo6flBhZ2VDb25zb2xlQ2xpZW50KCkKK3sKK30KKworc3RhdGljIGludCBt
dXRlQ291bnQgPSAwOworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFsc2U7CisKK2Jv
b2wgUGFnZUNvbnNvbGVDbGllbnQ6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAgcmV0
dXJuIHByaW50RXhjZXB0aW9uczsKK30KKwordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6c2V0U2hv
dWxkUHJpbnRFeGNlcHRpb25zKGJvb2wgcHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0g
cHJpbnQ7Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6Om11dGUoKQoreworICAgIG11dGVD
b3VudCsrOworfQorCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp1bm11dGUoKQoreworICAgIEFT
U0VSVChtdXRlQ291bnQgPiAwKTsKKyAgICBtdXRlQ291bnQtLTsKK30KKwordm9pZCBQYWdlQ29u
c29sZUNsaWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJpbmcgdXJsOworICAgIGlmIChk
b2N1bWVudCkKKyAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOworCisgICAg
Ly8gRklYTUU6IFRoZSBiZWxvdyBjb2RlIGF0dGVtcHRzIHRvIGRldGVybWluZSBsaW5lIG51bWJl
cnMgZm9yIHBhcnNlciBnZW5lcmF0ZWQgZXJyb3JzLCBidXQgdGhpcyBpcyBub3QgdGhlIG9ubHkg
cmVhc29uIHdoeSB3ZSBjYW4gZ2V0IGhlcmUuCisgICAgLy8gRm9yIGV4YW1wbGUsIGlmIHdlIGFy
ZSBzdGlsbCBwYXJzaW5nIGFuZCBnZXQgYSBXZWJTb2NrZXQgbmV0d29yayBlcnJvciwgaXQgd2ls
bCBiZSBlcnJvbmVvdXNseSBhdHRyaWJ1dGVkIHRvIGEgbGluZSB3aGVyZSBwYXJzaW5nIHdhcyBw
YXVzZWQuCisgICAgLy8gQWxzbywgd2Ugc2hvdWxkIGRldGVybWluZSBsaW5lIG51bWJlcnMgZm9y
IHNjcmlwdCBnZW5lcmF0ZWQgbWVzc2FnZXMgKGUuZy4gY2FsbGluZyBnZXRJbWFnZURhdGEgb24g
YSBjYW52YXMpLgorICAgIC8vIFdlIHByb2JhYmx5IG5lZWQgdG8gc3BsaXQgdGhpcyBmdW5jdGlv
biBpbnRvIG11bHRpcGxlIG9uZXMsIGFzIGFwcHJvcHJpYXRlIGZvciBkaWZmZXJlbnQgY2FsbCBz
aXRlcy4gT3IgbWF5YmUgZGVjaWRlIGJhc2VkIG9uIE1lc3NhZ2VTb3VyY2UuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTM0MAorICAgIHVuc2lnbmVk
IGxpbmUgPSAwOworICAgIHVuc2lnbmVkIGNvbHVtbiA9IDA7CisgICAgaWYgKGRvY3VtZW50ICYm
IGRvY3VtZW50LT5wYXJzaW5nKCkgJiYgIWRvY3VtZW50LT5pc0luRG9jdW1lbnRXcml0ZSgpICYm
IGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSkgeworICAgICAgICBTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIoKTsKKyAgICAgICAgaWYgKCFwYXJzZXItPmlzV2FpdGluZ0ZvclNjcmlwdHMoKSAmJiAh
SlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSkgeworICAgICAgICAgICAgVGV4
dFBvc2l0aW9uIHBvc2l0aW9uID0gcGFyc2VyLT50ZXh0UG9zaXRpb24oKTsKKyAgICAgICAgICAg
IGxpbmUgPSBwb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKTsKKyAgICAgICAgICAgIGNvbHVt
biA9IHBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVtbiwg
MCwgSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZp
ZXIpOworfQorCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCAwLCBjYWxsU3RhY2ssIDApOworfQor
Cit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQoreworICAgIGlmIChtdXRlQ291bnQgJiYg
c291cmNlICE9IE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChjYWxsU3RhY2spCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRk
TWVzc2FnZVRvQ29uc29sZSgmbV9wYWdlLCBzb3VyY2UsIE1lc3NhZ2VUeXBlOjpMb2csIGxldmVs
LCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZSgmbV9wYWdl
LCBzb3VyY2UsIE1lc3NhZ2VUeXBlOjpMb2csIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAgIGlmIChz
b3VyY2UgPT0gTWVzc2FnZVNvdXJjZTo6Q1NTKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
bV9wYWdlLnVzZXNFcGhlbWVyYWxTZXNzaW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWws
IG1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgdXJsKTsKKworICAgIGlmICghbV9w
YWdlLnNldHRpbmdzKCkubG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAm
JiAhc2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCisgICAgICAgIHJldHVybjsKKworICAgIENvbnNv
bGVDbGllbnQ6OnByaW50Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwg
TWVzc2FnZVR5cGU6OkxvZywgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgY29sdW1u
TnVtYmVyKTsKK30KKworCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjptZXNzYWdlV2l0aFR5cGVB
bmRMZXZlbChNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiBwcnBBcmd1
bWVudHMpCit7CisgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzID0gcHJwQXJn
dW1lbnRzOworCisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgYm9vbCBnb3RNZXNzYWdlID0gYXJn
dW1lbnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZSk7CisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKCZtX3BhZ2UsIE1lc3NhZ2VTb3Vy
Y2U6OkNvbnNvbGVBUEksIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBleGVjLCBhcmd1bWVudHMpOwor
CisgICAgaWYgKG1fcGFnZS51c2VzRXBoZW1lcmFsU2Vzc2lvbigpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoZ290TWVzc2FnZSkgeworICAgICAgICBzaXplX3Qgc3RhY2tTaXplID0gdHlw
ZSA9PSBNZXNzYWdlVHlwZTo6VHJhY2UgPyBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1Np
emVUb0NhcHR1cmUgOiAxOworICAgICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjLCBzdGFja1NpemUpKTsKKyAg
ICAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lJiBsYXN0Q2FsbGVyID0gY2FsbFN0YWNrLT5hdCgw
KTsKKyAgICAgICAgbV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkZE1lc3NhZ2VUb0NvbnNvbGUo
TWVzc2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxhc3RDYWxs
ZXIubGluZU51bWJlcigpLCBsYXN0Q2FsbGVyLmNvbHVtbk51bWJlcigpLCBsYXN0Q2FsbGVyLnNv
dXJjZVVSTCgpKTsKKyAgICB9CisKKyAgICBpZiAobV9wYWdlLnNldHRpbmdzKCkubG9nc1BhZ2VN
ZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSB8fCBQYWdlQ29uc29sZUNsaWVudDo6c2hv
dWxkUHJpbnRFeGNlcHRpb25zKCkpCisgICAgICAgIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29s
ZU1lc3NhZ2VXaXRoQXJndW1lbnRzKE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEksIHR5cGUsIGxl
dmVsLCBleGVjLCBhcmd1bWVudHMucmVsZWFzZSgpKTsKK30KKwordm9pZCBQYWdlQ29uc29sZUNs
aWVudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1l
bnRzPiBhcmd1bWVudHMpCit7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xl
Q291bnQoJm1fcGFnZSwgZXhlYywgYXJndW1lbnRzKTsKK30KKwordm9pZCBQYWdlQ29uc29sZUNs
aWVudDo6cHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkK
K3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0UHJvZmlsaW5nKCZtX3BhZ2Us
IGV4ZWMsIHRpdGxlKTsKK30KKwordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAoUmVm
UHRyPEpTQzo6UHJvZmlsZT4gcHJvZmlsZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3Rv
cFByb2ZpbGluZygmbV9wYWdlLCBleGVjLCB0aXRsZSkpCisgICAgICAgIG1fcHJvZmlsZXMuYXBw
ZW5kKHByb2ZpbGUucmVsZWFzZSgpKTsKK30KKwordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGlt
ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVUaW1pbmcoJm1fcGFnZS5tYWluRnJhbWUoKSwg
dGl0bGUpOworfQorCit2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lRW5kKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIFJlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMsIDEp
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BDb25zb2xlVGltaW5nKCZtX3Bh
Z2UubWFpbkZyYW1lKCksIHRpdGxlLCBjYWxsU3RhY2sucmVsZWFzZSgpKTsKK30KKwordm9pZCBQ
YWdlQ29uc29sZUNsaWVudDo6dGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cykKK3sKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmNvbnNvbGVUaW1lU3RhbXAoJm1fcGFnZS5tYWluRnJhbWUoKSwgYXJndW1lbnRzKTsKK30K
Kwordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6Y2xlYXJQcm9maWxlcygpCit7CisgICAgbV9wcm9m
aWxlcy5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZmNjE5OTJkYTc3OTBlY2FlMTU0
YmMyZDkyYWM2MDNjMDYxNDc5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGFnZUNvbnNvbGVDbGllbnRf
aAorI2RlZmluZSBQYWdlQ29uc29sZUNsaWVudF9oCisKKyNpbmNsdWRlIDxpbnNwZWN0b3IvU2Ny
aXB0Q2FsbFN0YWNrLmg+CisjaW5jbHVkZSA8cnVudGltZS9Db25zb2xlQ2xpZW50Lmg+CisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3RhdGU7
CitjbGFzcyBQcm9maWxlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3Vt
ZW50OworY2xhc3MgUGFnZTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPEpTQzo6UHJvZmlsZT4+
IFByb2ZpbGVzQXJyYXk7CisKK2NsYXNzIFBhZ2VDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGlj
IEpTQzo6Q29uc29sZUNsaWVudCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUGFnZUNvbnNvbGVD
bGllbnQoUGFnZSYpOworICAgIHZpcnR1YWwgflBhZ2VDb25zb2xlQ2xpZW50KCk7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCk7
CisKKyAgICBzdGF0aWMgdm9pZCBtdXRlKCk7CisgICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7CisK
KyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRD
YWxsU3RhY2s+ID0gbnVsbHB0ciwgSlNDOjpFeGVjU3RhdGUqID0gbnVsbHB0ciwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxJ
bnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3VtZW50KiA9IG51bGxwdHIpOworCisgICAgY29u
c3QgUHJvZmlsZXNBcnJheSYgcHJvZmlsZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb2ZpbGVzOyB9
CisgICAgdm9pZCBjbGVhclByb2ZpbGVzKCk7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZv
aWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlND
OjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0
cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0aW1l
RW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8SW5zcGVj
dG9yOjpTY3JpcHRBcmd1bWVudHM+KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBQYWdlJiBt
X3BhZ2U7CisgICAgUHJvZmlsZXNBcnJheSBtX3Byb2ZpbGVzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZUNvbnNvbGVDbGllbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGYwNjVjZDFmOGQ1MjcxYzMxMzg4OGM1M2E2MDExMTk1
MTJjZjgxNTUuLjJiYjhiYzQzYmI1ZGIxYzRhMTY0MThiMzBhZTY3ZGE1YzZkOWRjZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE0MTksNyArMTQxOSw3IEBAIHVuc2ln
bmVkIEludGVybmFsczo6Y291bnRNYXRjaGVzRm9yVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIHVu
c2lnbmVkIGZpbmRPcHRpb25zCiAKIGNvbnN0IFByb2ZpbGVzQXJyYXkmIEludGVybmFsczo6Y29u
c29sZVByb2ZpbGVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCktPnBh
Z2UoKS0+Y29uc29sZSgpLnByb2ZpbGVzKCk7CisgICAgcmV0dXJuIGNvbnRleHREb2N1bWVudCgp
LT5wYWdlKCktPmNvbnNvbGVDbGllbnQoKS5wcm9maWxlcygpOwogfQogCiB1bnNpZ25lZCBJbnRl
cm5hbHM6Om51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCmluZGV4IDc5MTQwZjUwMWYzNmUxMzQyYTdhODVmM2NhMGY2MzQyYzVkMWNjMmYuLjNmZjlh
N2ZiOThhNDQ1NWE0MTQzOTI2NmE2MGYwODQ1Nzg4YWM4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5j
bHVkZSAiTm9kZUxpc3QuaCIKLSNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorI2luY2x1ZGUgIlBh
Z2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KICNp
bmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9GbG9hdDMy
QXJyYXkuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGli
eHNsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCmlu
ZGV4IDdhMTdmYmQ0NzU1MWEyMTA2MGE4MmM2MDI2MTczYTcwODIzYmE4NmIuLmY3ZTU3ZjYyOTdl
MGEyOGFjYmMyODQxYjc4MWY4MTRmZmI4ZjBjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hT
TFN0eWxlU2hlZXRMaWJ4c2x0LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAi
UGFnZUNvbnNvbGUuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUg
IlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5j
bHVkZSAiWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5oIgpAQCAtMTQwLDEyICsxNDAsMTIgQEAgYm9v
bCBYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAg
ICAgeG1sRnJlZURvYyhtX3N0eWxlc2hlZXREb2MpOwogICAgIG1fc3R5bGVzaGVldERvY1Rha2Vu
ID0gZmFsc2U7CiAKLSAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IDA7CisgICAgUGFnZUNvbnNv
bGVDbGllbnQqIGNvbnNvbGVDbGllbnQgPSBudWxscHRyOwogICAgIEZyYW1lKiBmcmFtZSA9IG93
bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkK
LSAgICAgICAgY29uc29sZSA9ICZmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCk7CisgICAgICAgIGNv
bnNvbGVDbGllbnQgPSAmZnJhbWUtPnBhZ2UoKS0+Y29uc29sZUNsaWVudCgpOwogCi0gICAgWE1M
RG9jdW1lbnRQYXJzZXJTY29wZSBzY29wZShjYWNoZWRSZXNvdXJjZUxvYWRlcigpLCBYU0xUUHJv
Y2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jLCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYywg
Y29uc29sZSk7CisgICAgWE1MRG9jdW1lbnRQYXJzZXJTY29wZSBzY29wZShjYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jLCBYU0xUUHJvY2Vzc29y
OjpwYXJzZUVycm9yRnVuYywgY29uc29sZUNsaWVudCk7CiAKICAgICBhdXRvIHVwY29udmVydGVk
Q2hhcmFjdGVycyA9IFN0cmluZ1ZpZXcoc3RyaW5nKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKTsK
ICAgICBjb25zdCBjaGFyKiBidWZmZXIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPih1
cGNvbnZlcnRlZENoYXJhY3RlcnMuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJv
Y2Vzc29yTGlieHNsdC5jcHAKaW5kZXggY2RhMmI0NzQ2YTNjNTFiN2M2ZWVjNzllN2U1ZDljZjM3
NTUyODM5YS4uOGE5OTg3ZDY0YTMyNmJiZmE2NTJiNjdhYjgzODBhZTI4NTkzNzM0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0zMCw3ICszMCw3
IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xl
Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKQEAgLTc5LDggKzc5LDgg
QEAgdm9pZCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jKHZvaWQqLCBjb25zdCBjaGFy
KiwgLi4uKQogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKHZvaWQqIHVzZXJE
YXRhLCB4bWxFcnJvciogZXJyb3IpCiB7Ci0gICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSBzdGF0
aWNfY2FzdDxQYWdlQ29uc29sZSo+KHVzZXJEYXRhKTsKLSAgICBpZiAoIWNvbnNvbGUpCisgICAg
UGFnZUNvbnNvbGVDbGllbnQqIGNvbnNvbGVDbGllbnQgPSBzdGF0aWNfY2FzdDxQYWdlQ29uc29s
ZUNsaWVudCo+KHVzZXJEYXRhKTsKKyAgICBpZiAoIWNvbnNvbGVDbGllbnQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIE1lc3NhZ2VMZXZlbCBsZXZlbDsKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBY
U0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJyb3IqIGVy
cm9yKQogICAgIH0KIAogICAgIC8vIHhtbEVycm9yLT5pbnQyIGlzIHRoZSBjb2x1bW4gbnVtYmVy
IG9mIHRoZSBlcnJvciBvciAwIGlmIE4vQS4KLSAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OlhNTCwgbGV2ZWwsIGVycm9yLT5tZXNzYWdlLCBlcnJvci0+ZmlsZSwgZXJyb3It
PmxpbmUsIGVycm9yLT5pbnQyKTsKKyAgICBjb25zb2xlQ2xpZW50LT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OlhNTCwgbGV2ZWwsIGVycm9yLT5tZXNzYWdlLCBlcnJvci0+ZmlsZSwgZXJyb3It
PmxpbmUsIGVycm9yLT5pbnQyKTsKIH0KIAogLy8gRklYTUU6IFRoZXJlIHNlZW1zIHRvIGJlIG5v
IHdheSB0byBjb250cm9sIHRoZSBjdHh0IHBvaW50ZXIgZm9yIGxvYWRpbmcgaGVyZSwgdGh1cyB3
ZSBoYXZlIGdsb2JhbHMuCkBAIC0xMzgsMTIgKzEzOCwxMiBAQCBzdGF0aWMgeG1sRG9jUHRyIGRv
Y0xvYWRlckZ1bmMoY29uc3QgeG1sQ2hhciogdXJpLAogICAgICAgICAgICAgZ2xvYmFsQ2FjaGVk
UmVzb3VyY2VMb2FkZXItPnByaW50QWNjZXNzRGVuaWVkTWVzc2FnZSh1cmwpOwogICAgICAgICB9
CiAKLSAgICAgICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSAwOworICAgICAgICBQYWdlQ29uc29s
ZUNsaWVudCogY29uc29sZUNsaWVudCA9IG51bGxwdHI7CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9
IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50KCktPmZyYW1l
KCk7CiAgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgY29u
c29sZSA9ICZmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCk7Ci0gICAgICAgIHhtbFNldFN0cnVjdHVy
ZWRFcnJvckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nvcjo6cGFyc2VFcnJvckZ1bmMpOwotICAg
ICAgICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jKGNvbnNvbGUsIFhTTFRQcm9jZXNzb3I6OmdlbmVy
aWNFcnJvckZ1bmMpOworICAgICAgICAgICAgY29uc29sZUNsaWVudCA9ICZmcmFtZS0+cGFnZSgp
LT5jb25zb2xlQ2xpZW50KCk7CisgICAgICAgIHhtbFNldFN0cnVjdHVyZWRFcnJvckZ1bmMoY29u
c29sZUNsaWVudCwgWFNMVFByb2Nlc3Nvcjo6cGFyc2VFcnJvckZ1bmMpOworICAgICAgICB4bWxT
ZXRHZW5lcmljRXJyb3JGdW5jKGNvbnNvbGVDbGllbnQsIFhTTFRQcm9jZXNzb3I6OmdlbmVyaWNF
cnJvckZ1bmMpOwogCiAgICAgICAgIC8vIFdlIGRvbid0IHNwZWNpZnkgYW4gZW5jb2RpbmcgaGVy
ZS4gTmVpdGhlciBHZWNrbyBub3IgV2luSUUgcmVzcGVjdHMKICAgICAgICAgLy8gdGhlIGVuY29k
aW5nIHNwZWNpZmllZCBpbiB0aGUgSFRUUCBoZWFkZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KaW5kZXggYzNkNmE3M2UzYTNiNWQ2ZWJjYzQzMGVmOGVj
NDNkZTcwZGY4NGIyNS4uZTcwODI4YWE5MTlmZTU2NzVhM2RiYjVjNmI5M2Y0MWVhNTkxNDZmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCkBAIC00MSw3
ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9KU0RPTVdpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvUGFnZUNvbnNvbGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFnZUNvbnNvbGVD
bGllbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1JlbmRlclRyZWVBc1RleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgpA
QCAtMTY4LDEzICsxNjgsMTMgQEAgKyAoc2l6ZV90KWdseXBoUGFnZUNvdW50CiArIChCT09MKXNo
b3VsZFByaW50RXhjZXB0aW9ucwogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93
Ojpjb21tb25WTSgpKTsKLSAgICByZXR1cm4gUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0
aW9ucygpOworICAgIHJldHVybiBQYWdlQ29uc29sZUNsaWVudDo6c2hvdWxkUHJpbnRFeGNlcHRp
b25zKCk7CiB9CiAKICsgKHZvaWQpc2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zOihCT09MKXByaW50
CiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwotICAg
IFBhZ2VDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMocHJpbnQpOworICAgIFBhZ2VD
b25zb2xlQ2xpZW50OjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMocHJpbnQpOwogfQogCiArICh2
b2lkKWVtcHR5Q2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdGF0
aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAppbmRl
eCA2NjdhZjM3ZTBmMWZiZWJmOWI5ODU0MmJhZDMwMTA1Y2Y4ZmNmZDU0Li44NjdiMGI3YWZjOWI2
MWU4YzQyMGZmYmVlN2I0NDVhNzA5NWM1MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN0
YXRpc3RpY3MuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0
YWJhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlQ2FjaGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25zb2xlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlQ29uc29sZUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVu
ZGVyVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKQEAgLTI2OCwx
NCArMjY4LDE0IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OnNob3VsZFByaW50RXhjZXB0
aW9ucyhCT09MKiBzaG91bGRQcmludCkKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAogICAg
IEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAgICAqc2hvdWxk
UHJpbnQgPSBQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7CisgICAgKnNob3Vs
ZFByaW50ID0gUGFnZUNvbnNvbGVDbGllbnQ6OnNob3VsZFByaW50RXhjZXB0aW9ucygpOwogICAg
IHJldHVybiBTX09LOwogfQogCiBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpzZXRTaG91bGRQ
cmludEV4Y2VwdGlvbnMoQk9PTCBwcmludCkKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvdzo6Y29tbW9uVk0oKSk7Ci0gICAgUGFnZUNvbnNvbGU6OnNldFNob3VsZFByaW50RXhj
ZXB0aW9ucyhwcmludCk7CisgICAgUGFnZUNvbnNvbGVDbGllbnQ6OnNldFNob3VsZFByaW50RXhj
ZXB0aW9ucyhwcmludCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAK
</data>
<flag name="review"
          id="262280"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>