<?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>136060</bug_id>
          
          <creation_ts>2014-08-18 22:06:26 -0700</creation_ts>
          <short_desc>REGRESSION(r172736): Caused 14% PLT regressions (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2014-08-18 22:10:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>135939</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1029946</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-18 22:06:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/172736 broke the build:
Caused 14% PLT regressions (Requested by rniwa on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029948</commentid>
    <comment_count>1</comment_count>
      <attachid>236799</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-18 22:06:50 -0700</bug_when>
    <thetext>Created attachment 236799
ROLLOUT of r172736

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029949</commentid>
    <comment_count>2</comment_count>
      <attachid>236799</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-18 22:10:40 -0700</bug_when>
    <thetext>Comment on attachment 236799
ROLLOUT of r172736

Clearing flags on attachment: 236799

Committed r172744: &lt;http://trac.webkit.org/changeset/172744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029950</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-18 22:10:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236799</attachid>
            <date>2014-08-18 22:06:50 -0700</date>
            <delta_ts>2014-08-18 22:10:40 -0700</delta_ts>
            <desc>ROLLOUT of r172736</desc>
            <filename>bug-136060-20140818220641.patch</filename>
            <type>text/plain</type>
            <size>69752</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY5NDYyZDdlOWU1ODEwODFiY2Y0Mjg3
MzI4N2MwN2RiOThiMGIyOGUuLmIwNDBiMTExNjQ5NDUxYmQzODg1ZTdiYjk2YjQ1NjE1YjExMDc5
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDgtMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
NzI3MzYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzYwNjAKKworICAgICAgICBDYXVzZWQgMTQlIFBMVCByZWdyZXNzaW9ucyAoUmVxdWVzdGVkIGJ5
IHJuaXdhIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAg
ICAgICAiUmVtb3ZlIFB1cmdlYWJsZUJ1ZmZlciBzaW5jZSBpdCBpcyBub3QgdmVyeSB1c2VmdWwg
YW55IG1vcmUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzU5MzkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTcyNzM2
CisKIDIwMTQtMDgtMTggIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBQdXJnZWFibGVCdWZmZXIgc2luY2UgaXQgaXMgbm90IHZlcnkgdXNlZnVs
IGFueSBtb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU2Nzk0MjFjMzgwOWUyZTRjZDVhYjljNDA1M2Y1YWFk
OGM0OGE2NC4uYzBjMGIzMTY0MjBjZGI2YTg1MmNlODcxYTI3NmQwZGI5YmIwZWE2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTA4LTE4ICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTcy
NzM2LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2
MDYwCisKKyAgICAgICAgQ2F1c2VkIDE0JSBQTFQgcmVncmVzc2lvbnMgKFJlcXVlc3RlZCBieSBy
bml3YSBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAg
ICAgIlJlbW92ZSBQdXJnZWFibGVCdWZmZXIgc2luY2UgaXQgaXMgbm90IHZlcnkgdXNlZnVsIGFu
eSBtb3JlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM1OTM5CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3MjczNgor
CiAyMDE0LTA4LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFByb3ZpZGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgb2YgYWxsIEdyYXBoaWNzTGF5
ZXJDbGllbnQgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGUzNmRhMTljYWUyOTViZDNjMjU2
YzcwZjdmNjZmMTdiNmZhMmIyY2QuLjc2MTcxMWY3MGFmNzI2NWQyNjZlYTJhMjg1MWRmYjVlMmU4
NmQ1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wOC0xOCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE3MjczNi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNjA2MAorCisgICAgICAgIENhdXNlZCAxNCUgUExUIHJlZ3Jlc3Np
b25zIChSZXF1ZXN0ZWQgYnkgcm5pd2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgorCisgICAgICAgICJSZW1vdmUgUHVyZ2VhYmxlQnVmZmVyIHNpbmNlIGl0IGlz
IG5vdCB2ZXJ5IHVzZWZ1bCBhbnkgbW9yZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNTkzOQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNzI3MzYKKwogMjAxNC0wOC0xOCAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5r
aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFB1cmdlYWJsZUJ1ZmZlciBzaW5jZSBpdCBp
cyBub3QgdmVyeSB1c2VmdWwgYW55IG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAyZTZkOGMzYzVl
MDk2ZDFlMjNmOWRjMjM4ZDg4OGU0ZjBhMzA1ZmI1Li43ZDI1YmYwNzg0ODZmMzM3ODA5MzA0NzJj
YTAwZDM2ODI0NjhlMzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQt
MDgtMTggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzI3MzYuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwNjAKKworICAgICAgICBDYXVzZWQgMTQlIFBM
VCByZWdyZXNzaW9ucyAoUmVxdWVzdGVkIGJ5IHJuaXdhIG9uICN3ZWJraXQpLgorCisgICAgICAg
IFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiUmVtb3ZlIFB1cmdlYWJsZUJ1ZmZlciBz
aW5jZSBpdCBpcyBub3QgdmVyeSB1c2VmdWwgYW55IG1vcmUiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU5MzkKKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTcyNzM2CisKIDIwMTQtMDgtMTggIFByYXRpayBTb2xhbmtp
ICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBQdXJnZWFibGVCdWZmZXIg
c2luY2UgaXQgaXMgbm90IHZlcnkgdXNlZnVsIGFueSBtb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGJkNGRh
YzA5YzFjNTZhMWIyOTVjNGNkZDFmMjhkNWQwNDYzZWQ1NC4uMzgxYWQ5NmIwZTI0ZmIyZDA3ZTY0
NjgzYzdkNTcwMjgwZWQzODhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTA4
LTE4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTcyNzM2LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDYwCisKKyAgICAgICAgQ2F1c2VkIDE0JSBQTFQg
cmVncmVzc2lvbnMgKFJlcXVlc3RlZCBieSBybml3YSBvbiAjd2Via2l0KS4KKworICAgICAgICBS
ZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlJlbW92ZSBQdXJnZWFibGVCdWZmZXIgc2lu
Y2UgaXQgaXMgbm90IHZlcnkgdXNlZnVsIGFueSBtb3JlIgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1OTM5CisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzE3MjczNgorCiAyMDE0LTA4LTE4ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgZGVmYXVsdCBpbXBsZW1l
bnRhdGlvbnMgb2YgYWxsIEdyYXBoaWNzTGF5ZXJDbGllbnQgbWV0aG9kcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5k
ZXggODRkMGJmZWM2MGVjYmMyZGEyMTk0YjMyZWViMDQ1MzU5NzE1MjY5Ni4uNDcxNTQ4MTkwOThl
NGUyNTU4YmUwN2FmNzVkZDYxYmE5NmQ4OTFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC00OTAsNiArNDkw
LDEwIEBACiAKICNlbmRpZiAvKiBQTEFURk9STShNQUMpICovCiAKKyNpZiBPUyhEQVJXSU4pICYm
ICFQTEFURk9STShHVEspCisjZGVmaW5lIEVOQUJMRV9QVVJHRUFCTEVfTUVNT1JZIDEKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oSU9TKQogCiAjZGVmaW5lIERPTlRfRklOQUxJWkVfT05fTUFJTl9U
SFJFQUQgMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVk1UYWdzLmggYi9Tb3VyY2UvV1RG
L3d0Zi9WTVRhZ3MuaAppbmRleCBhZWYwNWQyYjU5OGRmY2MyYTRiMDQwNjhlMzBlNjNlMjE5ZmQ2
NzI0Li4xMTdiYzM3MjFlYWNmZGRlMTNiNjQ5NWY0MzY5NjM5OGY1YWQ4YzdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WTVRhZ3MuaApA
QCAtNTYsMTIgKzU2LDE5IEBACiAjZGVmaW5lIFZNX1RBR19GT1JfQ09MTEVDVE9SX01FTU9SWSBW
TV9NQUtFX1RBRyg2MykKICNlbmRpZiAvLyBkZWZpbmVkKFZNX01FTU9SWV9KQVZBU0NSSVBUX0NP
UkUpCiAKKyNpZiBkZWZpbmVkKFZNX01FTU9SWV9XRUJDT1JFX1BVUkdFQUJMRV9CVUZGRVJTKQor
I2RlZmluZSBWTV9UQUdfRk9SX1dFQkNPUkVfUFVSR0VBQkxFX01FTU9SWSBWTV9NQUtFX1RBRyhW
TV9NRU1PUllfV0VCQ09SRV9QVVJHRUFCTEVfQlVGRkVSUykKKyNlbHNlCisjZGVmaW5lIFZNX1RB
R19GT1JfV0VCQ09SRV9QVVJHRUFCTEVfTUVNT1JZIFZNX01BS0VfVEFHKDY5KQorI2VuZGlmIC8v
IGRlZmluZWQoVk1fTUVNT1JZX1dFQkNPUkVfUFVSR0VBQkxFX0JVRkZFUlMpCisKICNlbHNlIC8v
IE9TKERBUldJTikKIAogI2RlZmluZSBWTV9UQUdfRk9SX1RDTUFMTE9DX01FTU9SWSAtMQogI2Rl
ZmluZSBWTV9UQUdfRk9SX0NPTExFQ1RPUl9NRU1PUlkgLTEKICNkZWZpbmUgVk1fVEFHX0ZPUl9F
WEVDVVRBQkxFQUxMT0NBVE9SX01FTU9SWSAtMQogI2RlZmluZSBWTV9UQUdfRk9SX1JFR0lTVEVS
RklMRV9NRU1PUlkgLTEKKyNkZWZpbmUgVk1fVEFHX0ZPUl9XRUJDT1JFX1BVUkdFQUJMRV9NRU1P
UlkgLTEKIAogI2VuZGlmIC8vIE9TKERBUldJTikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMzODMwYWZkYzYxOGM0ZDQ2ZWI0
MTVjYjg4ZWZjODkzYTMxM2RlZTMuLjMxYWVhYzJhNjE1N2E1ZmRlMDEzODM3NjUwZTU4NDQ3MDY0
OTMxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI0MzAsNiArMjQzMCw3IEBACiAJCTdDRTZDQkZCMTg3RjM3MDcwMEQ0NkJG
NSAvKiBGb3JtYXRDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDRTZDQkZBMTg3RjM3MDcwMEQ0NkJGNSAvKiBGb3JtYXRDb252ZXJ0ZXIu
aCAqLzsgfTsKIAkJN0NFNkNCRkQxODdGMzk0OTAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0U2Q0JG
QzE4N0YzOTQ5MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmNwcCAqLzsgfTsKIAkJN0Q3NDFC
REExNzcyMjZBQTAwODU5MTcwIC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MTQ4MDlE
MTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmggKi87IH07CisJCTdFMzNDRDAxMTI3
RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQ
cmlvcml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdFMzdFRjJFMTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMzdFRjJEMTMz
OTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCAqLzsgfTsKIAkJN0U0MjhD
RTUxM0UzNDA3RjAwM0I2NjFDIC8qIFJlc291cmNlSGFuZGxlSU9TLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0MjhDRTQxM0UzNDA3RjAwM0I2NjFD
IC8qIFJlc291cmNlSGFuZGxlSU9TLm1tICovOyB9OwogCQk3RTQ2RjZGQTE2MjdBMkNBMDAwNjIy
MjMgLyogSlNPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDZGNkY4MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0Vs
ZW1lbnRJbmRleFVpbnQuY3BwICovOyB9OwpAQCAtNjE4Nyw2ICs2MTg4LDggQEAKIAkJRTRENThF
QjgxN0I0RUQ4OTAwQ0JEQ0E4IC8qIFN0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRENThFQjYxN0I0RUQ4OTAw
Q0JEQ0E4IC8qIFN0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwICovOyB9OwogCQlFNEQ1OEVCOTE3
QjRFRDg5MDBDQkRDQTggLyogU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRENThFQjcxN0I0RUQ4OTAwQ0JEQ0E4
IC8qIFN0eWxlRm9udFNpemVGdW5jdGlvbnMuaCAqLzsgfTsKIAkJRTRENThFQkIxN0I4RjEyODAw
Q0JEQ0E4IC8qIEVsZW1lbnRUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0RDU4RUJBMTdCOEYxMjgwMENCRENBOCAvKiBFbGVtZW50VHJh
dmVyc2FsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJRTRENjg3NzcwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlck1hYy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEQ2ODc3NjBFRDdB
RTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCAqLzsgfTsKKwkJRTRENjg3Nzkw
RUQ3QUU0RjAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRENjg3NzgwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1
cmdlYWJsZUJ1ZmZlci5oICovOyB9OwogCQlFNEQ5ODhCNDE3QkZEMUY2MDA4NEZCODggLyogVGV4
dE5vZGVUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0RDk4OEIzMTdCRkQxRjYwMDg0RkI4OCAvKiBUZXh0Tm9kZVRyYXZlcnNhbC5oICov
OyB9OwogCQlFNEQ5ODhCNjE3QkZFQjIxMDA4NEZCODggLyogVGV4dE5vZGVUcmF2ZXJzYWwuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTREOTg4QjUx
N0JGRUIyMTAwODRGQjg4IC8qIFRleHROb2RlVHJhdmVyc2FsLmNwcCAqLzsgfTsKIAkJRTRERUFB
MTcxN0E5M0RDMzAwMEUwNDMwIC8qIFN0eWxlUmVzb2x2ZVRyZWUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRERUFBMTUxN0E5M0RDMzAwMEUwNDMw
IC8qIFN0eWxlUmVzb2x2ZVRyZWUuY3BwICovOyB9OwpAQCAtOTU4Myw2ICs5NTg2LDcgQEAKIAkJ
N0NFNjgzNDYxOTIxODIxNTAwRjREOTI4IC8qIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3JU
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRs
ZXJEZXNjcmlwdG9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NFNkNC
RkExODdGMzcwNzAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb3JtYXRDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NFNkNCRkMxODdGMzk0OTAwRDQ2QkY1IC8qIEZvcm1hdENvbnZlcnRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXRDb252ZXJ0ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcg
LyogUHVyZ2VQcmlvcml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXJn
ZVByaW9yaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMzdFRjJEMTMzOTIw
ODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwOyBwYXRoID0gY2YvU3Vi
cmVzb3VyY2VMb2FkZXJDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDI4
Q0U0MTNFMzQwN0YwMDNCNjYxQyAvKiBSZXNvdXJjZUhhbmRsZUlPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlSGFuZGxlSU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3RTQ2RjZGODE2MjdBMkM5MDAwNjIyMjMgLyogSlNPRVNF
bGVtZW50SW5kZXhVaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTT0VTRWxlbWVudEluZGV4VWludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMzcwNCw2ICsxMzcwOCw4IEBACiAJCUU0RDU4RUI2MTdCNEVEODkwMENCRENBOCAvKiBTdHls
ZUZvbnRTaXplRnVuY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0eWxlRm9udFNpemVGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNEQ1OEVCNzE3QjRFRDg5MDBDQkRDQTggLyogU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZUZvbnRTaXplRnVuY3Rpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RDU4RUJBMTdCOEYxMjgwMENCRENB
OCAvKiBFbGVtZW50VHJhdmVyc2FsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEVsZW1lbnRUcmF2ZXJzYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTRENjg3
NzYwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlck1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQdXJnZWFibGVCdWZmZXJNYWMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2Vh
YmxlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1cmdlYWJsZUJ1
ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEQ5ODhCMzE3QkZEMUY2MDA4
NEZCODggLyogVGV4dE5vZGVUcmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dE5vZGVUcmF2ZXJzYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTREOTg4QjUxN0JGRUIyMTAwODRGQjg4IC8qIFRleHROb2RlVHJhdmVyc2FsLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHROb2RlVHJhdmVyc2FsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRERUFBMTUxN0E5M0RDMzAwMEUwNDMwIC8qIFN0
eWxlUmVzb2x2ZVRyZWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3R5bGVSZXNvbHZlVHJlZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ0
Niw2ICsxNjQ1Miw3IEBACiAJCQkJQkM5NEQxMDcwQzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3Jt
U2NyZWVuTWFjLm1tICovLAogCQkJCTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICovLAogCQkJCTAwODFGRUZFMTZCMEEyQjYwMDhBQUE3
QSAvKiBQdWJsaWNTdWZmaXhNYWMubW0gKi8sCisJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4
IC8qIFB1cmdlYWJsZUJ1ZmZlck1hYy5jcHAgKi8sCiAJCQkJQkNBRTFGQTUxMjkzOURCNzAwNENC
MDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJQkM1MTE1NkQxMkIxNzQ5QzAwQzk2
NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLAogCQkJCUJDOEI4NTNDMEU3QzdGMTEwMEFC
Njk4NCAvKiBTY3JvbGxiYXJUaGVtZU1hYy5oICovLApAQCAtMjEzOTIsNiArMjEzOTksOCBAQAog
CQkJCUFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLywKIAkJ
CQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJCQkw
MDgxRkVGRDE2QjBBMjQ0MDA4QUFBN0EgLyogUHVibGljU3VmZml4LmggKi8sCisJCQkJRTRENjg3
NzgwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5oICovLAorCQkJCTdFMzNDRDAw
MTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8sCiAJCQkJQTcyRUEzQkExNTg1
Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi8sCiAJCQkJOTgzMUFFNDkx
NTQyMjVBMjAwRkUyNjQ0IC8qIFJlZmVycmVyUG9saWN5LmggKi8sCiAJCQkJMjkzRUFFMjAxMzU2
QjMyRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgKi8sCkBAIC0yNTU3
Miw2ICsyNTU4MSw4IEBACiAJCQkJRkY5NDVFQ0MxNjFGN0YzNjAwOTcxQkM4IC8qIFBzZXVkb0Vs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQ
dWJsaWNTdWZmaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5
OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEQ2ODc3OTBFRDdB
RTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3RTMz
Q0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ0MkFGN0E5MTAyQ0RERUEwMDhGRDREMyAvKiBRdWlja0xvb2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3MkFFMUU4MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTA3Miw2ICsyOTA4Myw3IEBACiAJCQkJ
RkY5NDVFQ0IxNjFGN0YzNjAwOTcxQkM4IC8qIFBzZXVkb0VsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDA4MUZFRkYxNkIwQTJCNjAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeE1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUNERUUzOTM3MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0RDY4Nzc3MEVEN0FFM0QwMDZFQTk3OCAv
KiBQdXJnZWFibGVCdWZmZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTUwQTBCQzkwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQy
QUY3QUExMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTA3MkFFMUU2MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5t
bSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAppbmRleCA2MjBlMWI3OTRkOTgzZjIxOWJhZDA4NTRjMDMzYzNhYjQyNzE2
ZTFiLi4yOGJiOTE5N2Y3YzBmMDExYzA4YzllMTRmOWZjYTA2ODYyYTg0YjE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMTEyLDYg
KzExMiwxNyBAQCBzdGF0aWMgYm9vbCBwcmVwYXJlQ2FjaGVkUmVzb3VyY2VCdWZmZXIoQ2FjaGVk
UmVzb3VyY2UqIGNhY2hlZFJlc291cmNlLCBib29sKiBoYQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKKyAgICBpZiAoY2FjaGVkUmVzb3VyY2UtPmlzUHVyZ2VhYmxlKCkpIHsKKyAgICAg
ICAgLy8gSWYgdGhlIHJlc291cmNlIGlzIHB1cmdlYWJsZSB0aGVuIG1ha2UgaXQgdW5wdXJnZWFi
bGUgdG8gZ2V0CisgICAgICAgIC8vIGdldCBpdHMgZGF0YS4gVGhpcyBtaWdodCBmYWlsLCBpbiB3
aGljaCBjYXNlIHdlIHJldHVybiBhbgorICAgICAgICAvLyBlbXB0eSBTdHJpbmcuCisgICAgICAg
IC8vIEZJWE1FOiBzaG91bGQgd2UgZG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGNhc2Ugb2YgYSBw
dXJnZWQKKyAgICAgICAgLy8gcmVzb3VyY2UgdGhhdCBpbmZvcm1zIHRoZSB1c2VyIHdoeSB0aGVy
ZSBpcyBubyBkYXRhIGluIHRoZQorICAgICAgICAvLyBpbnNwZWN0b3I/CisgICAgICAgIGlmICgh
Y2FjaGVkUmVzb3VyY2UtPm1ha2VQdXJnZWFibGUoZmFsc2UpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBhYzEyNGFiMmM3MDA0NjdkNjQyOWY4MzUwOTc5
N2QyZWJmYTg1MGVhLi5iZWJjYmYzMWQwN2M1YWQ3MjE1ODM3NjExMjA2Y2FkZTRjZDJkZWQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEwOTMsNiArMTA5
MywxMSBAQCBQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gRG9jdW1lbnRMb2FkZXI6OnN1YnJl
c291cmNlKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAgIGlmIChyZXNvdXJjZS0+dHlwZSgpID09
IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiAwOwogCisgICAg
Ly8gRklYTUU6IFRoaXMgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBtYWtpbmcgdGhlIHJlc291cmNl
IG5vbi1wdXJnZWFibGUuCisgICAgLy8gSXQgd291bGQgYmUgYmV0dGVyIGlmIGl0IGRpZG4ndCBo
YXZlIHRoaXMgcGVybWFuZW50IGVmZmVjdC4KKyAgICBpZiAoIXJlc291cmNlLT5tYWtlUHVyZ2Vh
YmxlKGZhbHNlKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBSZXNvdXJjZUJ1ZmZlciogZGF0
YSA9IHJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgIGlmICghZGF0YSkKICAgICAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZm
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAppbmRleCBi
ZTAyNDdhNWJmNGVmMmQ1ZWI5NmQwODg2ZjQ3YjQzZTcyYTkwZjg4Li5mY2ZjYTRmOGY0ZGExNjhh
Nzk5OGNjYjg5ZDc3YzFkNzEzYjMxYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUJ1ZmZlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogCisjaW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMiw2
ICsxMTMsMzAgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gUmVzb3VyY2VCdWZmZXI6OmNv
cHkoKSBjb25zdAogICAgIHJldHVybiBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRTaGFyZWRCdWZmZXIo
bV9zaGFyZWRCdWZmZXItPmNvcHkoKSk7CiB9CiAKK2Jvb2wgUmVzb3VyY2VCdWZmZXI6Omhhc1B1
cmdlYWJsZUJ1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVmZmVyLT5oYXNQ
dXJnZWFibGVCdWZmZXIoKTsKK30KKworI2lmIFBMQVRGT1JNKElPUykKK3ZvaWQgUmVzb3VyY2VC
dWZmZXI6OnNldFNob3VsZFVzZVB1cmdlYWJsZU1lbW9yeShib29sIHNob3VsZFVzZVB1cmdlYWJs
ZU1lbW9yeSkKK3sKKyAgICBBU1NFUlQobV9zaGFyZWRCdWZmZXIpOworICAgIHNoYXJlZEJ1ZmZl
cigpLT5zaG91bGRVc2VQdXJnZWFibGVNZW1vcnkoc2hvdWxkVXNlUHVyZ2VhYmxlTWVtb3J5KTsK
K30KKyNlbmRpZgorCit2b2lkIFJlc291cmNlQnVmZmVyOjpjcmVhdGVQdXJnZWFibGVCdWZmZXIo
KSBjb25zdAoreworICAgIEFTU0VSVChtX3NoYXJlZEJ1ZmZlcik7CisgICAgc2hhcmVkQnVmZmVy
KCktPmNyZWF0ZVB1cmdlYWJsZUJ1ZmZlcigpOworfQorCitQYXNzT3duUHRyPFB1cmdlYWJsZUJ1
ZmZlcj4gUmVzb3VyY2VCdWZmZXI6OnJlbGVhc2VQdXJnZWFibGVCdWZmZXIoKQoreworICAgIHJl
dHVybiBtX3NoYXJlZEJ1ZmZlci0+cmVsZWFzZVB1cmdlYWJsZUJ1ZmZlcigpOworfQorCiAjaWYg
VVNFKENGKQogUmV0YWluUHRyPENGRGF0YVJlZj4gUmVzb3VyY2VCdWZmZXI6OmNyZWF0ZUNGRGF0
YSgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCmluZGV4IDQxNDNmZWUz
NDQzNjdiZGQ4OWNkMjlhYTQ1ZTVlNjE4ZDc3YTRjMTMuLjhiNDU3YjVjMzAxZGVmNDc4ZjMyYjZj
YzhmNzhiMGIyOWI0MWQ2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5o
CkBAIC0zOCw2ICszOCw3IEBAIE9CSkNfQ0xBU1MgTlNEYXRhOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIFB1cmdlYWJsZUJ1ZmZlcjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogY2xh
c3MgUmVzb3VyY2VCdWZmZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSZXNvdXJjZUJ1ZmZlcj4gewpA
QCAtNjgsNiArNjksMTcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgUGFzc1JlZlB0cjxSZXNvdXJj
ZUJ1ZmZlcj4gY29weSgpIGNvbnN0OwogCisgICAgYm9vbCBoYXNQdXJnZWFibGVCdWZmZXIoKSBj
b25zdDsKKyAgICB2b2lkIGNyZWF0ZVB1cmdlYWJsZUJ1ZmZlcigpIGNvbnN0OworCisjaWYgUExB
VEZPUk0oSU9TKQorICAgIC8vIEZJWE1FOiBSZW1vdmUgUExBVEZPUk0oSU9TKS1ndWFyZCBvbmNl
IHdlIHVwc3RyZWFtIHRoZSBpT1MgY2hhbmdlcyB0byBTaGFyZWRCdWZmZXIue2NwcCwgaH0gYW5k
IFNoYXJlZEJ1ZmZlckNGLmNwcC4KKyAgICB2b2lkIHNldFNob3VsZFVzZVB1cmdlYWJsZU1lbW9y
eShib29sKTsKKyNlbmRpZgorCisgICAgLy8gRW5zdXJlIHRoaXMgYnVmZmVyIGhhcyBubyBvdGhl
ciBjbGllbnRzIGJlZm9yZSBjYWxsaW5nIHRoaXMuCisgICAgUGFzc093blB0cjxQdXJnZWFibGVC
dWZmZXI+IHJlbGVhc2VQdXJnZWFibGVCdWZmZXIoKTsKKwogI2lmIFVTRShGT1VOREFUSU9OKQog
ICAgIFJldGFpblB0cjxOU0RhdGE+IGNyZWF0ZU5TRGF0YSgpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCBjYmIwNTYxZDNjZDUyYjQ2
NzVhYWEzYjUxZjEyNTk5ZjMzOWM1ZDExLi5mMWZjZWFjYWExNmVkNDM0MzhhYzc0NDRkNDFjNmFl
NGUyMjk5NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTI5OSw4ICsyOTksMTIgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNo
TG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkKICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiUmVj
ZWl2ZWQgJyVzJy4iLCBtX3Jlc291cmNlLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkp
OwogCiAgICAgUmVmPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKLSAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJvdGVjdFJlc291cmNlKG1fcmVzb3Vy
Y2UpOwogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGlmIChyZXNvdXJjZURhdGEoKSkKKyAgICAg
ICAgcmVzb3VyY2VEYXRhKCktPnNldFNob3VsZFVzZVB1cmdlYWJsZU1lbW9yeSh0cnVlKTsKKyNl
bmRpZgorICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBwcm90ZWN0UmVz
b3VyY2UobV9yZXNvdXJjZSk7CiAgICAgbV9zdGF0ZSA9IEZpbmlzaGluZzsKICAgICBtX3Jlc291
cmNlLT5zZXRMb2FkRmluaXNoVGltZShmaW5pc2hUaW1lKTsKICAgICBtX3Jlc291cmNlLT5maW5p
c2hMb2FkaW5nKHJlc291cmNlRGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCBhMjA4MWJlYTRjYTU2M2I4NTA0
NjUzYmQxZGI1MDA5MWFhOTM0MmFmLi44MWQ5ODIyZDgxYjMwOWIwOTVmNjg1ODk1YzI2NDkwMGJh
NjYzMzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NT
U3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENT
U1N0eWxlU2hlZXQuY3BwCkBAIC04MCw2ICs4MCw4IEBAIFN0cmluZyBDYWNoZWRDU1NTdHlsZVNo
ZWV0OjplbmNvZGluZygpIGNvbnN0CiAgICAgCiBjb25zdCBTdHJpbmcgQ2FjaGVkQ1NTU3R5bGVT
aGVldDo6c2hlZXRUZXh0KGJvb2wgZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZE1JTUVU
eXBlKSBjb25zdCAKIHsgCisgICAgQVNTRVJUKCFpc1B1cmdlYWJsZSgpKTsKKwogICAgIGlmICgh
bV9kYXRhIHx8IG1fZGF0YS0+aXNFbXB0eSgpIHx8ICFjYW5Vc2VTaGVldChlbmZvcmNlTUlNRVR5
cGUsIGhhc1ZhbGlkTUlNRVR5cGUpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgCkBA
IC0xNDYsNiArMTQ4LDkgQEAgdm9pZCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2Rl
ZERhdGEoKQogICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CiAKICAgICBzZXRE
ZWNvZGVkU2l6ZSgwKTsKKworICAgIGlmICghTWVtb3J5Q2FjaGU6OnNob3VsZE1ha2VSZXNvdXJj
ZVB1cmdlYWJsZU9uRXZpY3Rpb24oKSAmJiBpc1NhZmVUb01ha2VQdXJnZWFibGUoKSkKKyAgICAg
ICAgbWFrZVB1cmdlYWJsZSh0cnVlKTsKIH0KIAogUGFzc1JlZlB0cjxTdHlsZVNoZWV0Q29udGVu
dHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KGNvbnN0IENT
U1BhcnNlckNvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaAppbmRleCAyMmNlNWFmZWE4NjJkZDg1NmRjZDNiODk3
NmRjODU4MDY3YTY2YzI4Li41YjdiNzQ4Njg0MjM0ZWIzYTZmMjc1NGZjMWI5YzYwNDg2ZDBhMDBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVT
aGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNo
ZWV0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCBjYW5Vc2VTaGVldChib29sIGVuZm9yY2VNSU1FVHlwZSwgYm9vbCog
aGFzVmFsaWRNSU1FVHlwZSkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgUHVyZ2VQcmlvcml0eSBw
dXJnZVByaW9yaXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUHVyZ2VMYXN0OyB9CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChD
YWNoZWRSZXNvdXJjZUNsaWVudCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggYzkyYTYyMmM4MTI4ZjA3ODVlMjVlNmFlMDRlOTIx
MTU3NzYwZDRjNi4uMmM3NmZkMDhkNDNiYTRmNjdlNDJkNjEyZWFiMWJlMGI3YzY3ZmU4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0xOTIsNiAr
MTkyLDggQEAgYm9vbCBDYWNoZWRJbWFnZTo6d2lsbFBhaW50QnJva2VuSW1hZ2UoKSBjb25zdAog
CiBJbWFnZSogQ2FjaGVkSW1hZ2U6OmltYWdlKCkKIHsKKyAgICBBU1NFUlQoIWlzUHVyZ2VhYmxl
KCkpOworCiAgICAgaWYgKGVycm9yT2NjdXJyZWQoKSAmJiBtX3Nob3VsZFBhaW50QnJva2VuSW1h
Z2UpIHsKICAgICAgICAgLy8gUmV0dXJuaW5nIHRoZSAxeCBicm9rZW4gaW1hZ2UgaXMgbm9uLWlk
ZWFsLCBidXQgd2UgY2Fubm90IHJlbGlhYmx5IGFjY2VzcyB0aGUgYXBwcm9wcmlhdGUKICAgICAg
ICAgLy8gZGV2aWNlU2NhbGVGYWN0b3IgZnJvbSBoZXJlLiBJdCBpcyBjcml0aWNhbCB0aGF0IGNh
bGxlcnMgdXNlIENhY2hlZEltYWdlOjpicm9rZW5JbWFnZSgpIApAQCAtMjA3LDYgKzIwOSw4IEBA
IEltYWdlKiBDYWNoZWRJbWFnZTo6aW1hZ2UoKQogCiBJbWFnZSogQ2FjaGVkSW1hZ2U6OmltYWdl
Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKKyAgICBBU1NFUlQo
IWlzUHVyZ2VhYmxlKCkpOworCiAgICAgaWYgKGVycm9yT2NjdXJyZWQoKSAmJiBtX3Nob3VsZFBh
aW50QnJva2VuSW1hZ2UpIHsKICAgICAgICAgLy8gUmV0dXJuaW5nIHRoZSAxeCBicm9rZW4gaW1h
Z2UgaXMgbm9uLWlkZWFsLCBidXQgd2UgY2Fubm90IHJlbGlhYmx5IGFjY2VzcyB0aGUgYXBwcm9w
cmlhdGUKICAgICAgICAgLy8gZGV2aWNlU2NhbGVGYWN0b3IgZnJvbSBoZXJlLiBJdCBpcyBjcml0
aWNhbCB0aGF0IGNhbGxlcnMgdXNlIENhY2hlZEltYWdlOjpicm9rZW5JbWFnZSgpIApAQCAtMjcw
LDYgKzI3NCw4IEBAIGJvb2wgQ2FjaGVkSW1hZ2U6OmltYWdlSGFzUmVsYXRpdmVIZWlnaHQoKSBj
b25zdAogCiBMYXlvdXRTaXplIENhY2hlZEltYWdlOjppbWFnZVNpemVGb3JSZW5kZXJlcihjb25z
dCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBmbG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSBzaXpl
VHlwZSkKIHsKKyAgICBBU1NFUlQoIWlzUHVyZ2VhYmxlKCkpOworCiAgICAgaWYgKCFtX2ltYWdl
KQogICAgICAgICByZXR1cm4gTGF5b3V0U2l6ZSgpOwogCkBAIC00NTYsOSArNDYyLDEzIEBAIHZv
aWQgQ2FjaGVkSW1hZ2U6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCiB2b2lkIENhY2hlZEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEoKQogewogICAg
IGJvb2wgY2FuRGVsZXRlSW1hZ2UgPSAhbV9pbWFnZSB8fCAobV9pbWFnZS0+aGFzT25lUmVmKCkg
JiYgbV9pbWFnZS0+aXNCaXRtYXBJbWFnZSgpKTsKLSAgICBpZiAoY2FuRGVsZXRlSW1hZ2UgJiYg
IWlzTG9hZGluZygpKSB7CisgICAgaWYgKGlzU2FmZVRvTWFrZVB1cmdlYWJsZSgpICYmIGNhbkRl
bGV0ZUltYWdlICYmICFpc0xvYWRpbmcoKSkgeworICAgICAgICAvLyBJbWFnZSByZWZzIHRoZSBk
YXRhIGJ1ZmZlciBzbyB3ZSBzaG91bGQgbm90IG1ha2UgaXQgcHVyZ2VhYmxlIHdoaWxlIHRoZSBp
bWFnZSBpcyBhbGl2ZS4gCisgICAgICAgIC8vIEludm9raW5nIGFkZENsaWVudCgpIHdpbGwgcmVj
b25zdHJ1Y3QgdGhlIGltYWdlIG9iamVjdC4KICAgICAgICAgbV9pbWFnZSA9IDA7CiAgICAgICAg
IHNldERlY29kZWRTaXplKDApOworICAgICAgICBpZiAoIU1lbW9yeUNhY2hlOjpzaG91bGRNYWtl
UmVzb3VyY2VQdXJnZWFibGVPbkV2aWN0aW9uKCkpCisgICAgICAgICAgICBtYWtlUHVyZ2VhYmxl
KHRydWUpOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAmJiAhZXJyb3JPY2N1cnJlZCgpKQogICAg
ICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEoKTsKIH0KQEAgLTUxNCw2ICs1MjQsOSBA
QCBib29sIENhY2hlZEltYWdlOjpjYW5Vc2VEaXNrSW1hZ2VDYWNoZSgpIGNvbnN0CiAgICAgaWYg
KCFtX2RhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChpc1B1cmdlYWJsZSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAobV9kYXRhLT5zaXplKCkgPCBkaXNr
SW1hZ2VDYWNoZSgpLm1pbmltdW1JbWFnZVNpemUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCmluZGV4IDQ4ZjBjNjAy
NjEzNWEwMzQwYmZjZjZiZTAzNjQyZjljOTNiY2FkMWMuLjkzYWUxNDg4MTczNzFlNzQyMzA5OTEy
ZDYwOWFhYTkzNGFhMWIxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFySW1hZ2Uo
KTsKICAgICAvLyBJZiBub3QgbnVsbCwgY2hhbmdlUmVjdCBpcyB0aGUgY2hhbmdlZCBwYXJ0IG9m
IHRoZSBpbWFnZS4KICAgICB2b2lkIG5vdGlmeU9ic2VydmVycyhjb25zdCBJbnRSZWN0KiBjaGFu
Z2VSZWN0ID0gMCk7CisgICAgdmlydHVhbCBQdXJnZVByaW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBQdXJnZUZpcnN0OyB9CiAgICAgdm9pZCBjaGVja1Nob3Vs
ZFBhaW50QnJva2VuSW1hZ2UoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzd2l0Y2hDbGllbnRzVG9S
ZXZhbGlkYXRlZFJlc291cmNlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA4OTk4ZjQ1MjEwYjc0MzdiNGM4NzUxMWY5
ZjA3NDI3NGY3ZmVlMjkwLi44YWQ0ZjM0OWQzZDkxYmNhMDg2MDgzMDg4NWJlODQwZTE4ZGI4MDJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5
Q2FjaGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJQdXJn
ZWFibGVCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCkBAIC00
NjUsNiArNDY2LDggQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJl
c291cmNlQ2xpZW50KiBjKQogCiBib29sIENhY2hlZFJlc291cmNlOjphZGRDbGllbnRUb1NldChD
YWNoZWRSZXNvdXJjZUNsaWVudCogY2xpZW50KQogeworICAgIEFTU0VSVCghaXNQdXJnZWFibGUo
KSk7CisKICAgICBpZiAobV9wcmVsb2FkUmVzdWx0ID09IFByZWxvYWROb3RSZWZlcmVuY2VkKSB7
CiAgICAgICAgIGlmIChpc0xvYWRlZCgpKQogICAgICAgICAgICAgbV9wcmVsb2FkUmVzdWx0ID0g
UHJlbG9hZFJlZmVyZW5jZWRXaGlsZUNvbXBsZXRlOwpAQCAtNzgzLDYgKzc4Niw2NCBAQCBib29s
IENhY2hlZFJlc291cmNlOjptdXN0UmV2YWxpZGF0ZUR1ZVRvQ2FjaGVIZWFkZXJzKENhY2hlUG9s
aWN5IGNhY2hlUG9saWN5KSBjbwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBDYWNoZWRS
ZXNvdXJjZTo6aXNTYWZlVG9NYWtlUHVyZ2VhYmxlKCkgY29uc3QKK3sgCisjaWYgRU5BQkxFKERJ
U0tfSU1BR0VfQ0FDSEUpCisgICAgLy8gSXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBoYXZlIGEg
cmVzb3VyY2UgaW4gdGhlIGRpc2sgaW1hZ2UgY2FjaGUKKyAgICAvLyAobWVtb3J5IG1hcHBlZCBv
biBkaXNrKSBhbmQgcHVyZ2VhYmxlIChpbiBtZW1vcnkpLiBTbyBkbyBub3QgYWxsb3cKKyAgICAv
LyBkaXNrIGltYWdlIGNhY2hlZCByZXNvdXJjZXMgdG8gYmUgcHVyZ2VhYmxlLgorICAgIGlmIChp
c1VzaW5nRGlza0ltYWdlQ2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisK
KyAgICByZXR1cm4gIWhhc0NsaWVudHMoKSAmJiAhbV9wcm94eVJlc291cmNlICYmICFtX3Jlc291
cmNlVG9SZXZhbGlkYXRlOworfQorCitib29sIENhY2hlZFJlc291cmNlOjptYWtlUHVyZ2VhYmxl
KGJvb2wgcHVyZ2VhYmxlKSAKK3sgCisgICAgaWYgKHB1cmdlYWJsZSkgeworICAgICAgICBBU1NF
UlQoaXNTYWZlVG9NYWtlUHVyZ2VhYmxlKCkpOworCisgICAgICAgIGlmIChtX3B1cmdlYWJsZURh
dGEpIHsKKyAgICAgICAgICAgIEFTU0VSVCghbV9kYXRhKTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghbV9kYXRhKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAKKyAgICAgICAgbV9kYXRhLT5jcmVhdGVQdXJnZWFibGVCdWZmZXIo
KTsKKyAgICAgICAgaWYgKCFtX2RhdGEtPmhhc1B1cmdlYWJsZUJ1ZmZlcigpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIG1fcHVyZ2VhYmxlRGF0YSA9IG1fZGF0YS0+cmVs
ZWFzZVB1cmdlYWJsZUJ1ZmZlcigpOworICAgICAgICBtX3B1cmdlYWJsZURhdGEtPnNldFB1cmdl
UHJpb3JpdHkocHVyZ2VQcmlvcml0eSgpKTsKKyAgICAgICAgbV9wdXJnZWFibGVEYXRhLT5tYWtl
UHVyZ2VhYmxlKHRydWUpOworICAgICAgICBtX2RhdGEuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX3B1cmdlYWJsZURhdGEpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIEFTU0VSVCghbV9kYXRhKTsKKyAgICBBU1NFUlQoIWhhc0NsaWVudHMoKSk7
CisKKyAgICBpZiAoIW1fcHVyZ2VhYmxlRGF0YS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsgCisKKyAgICBtX2RhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRT
aGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1ZmZlcihtX3B1cmdlYWJs
ZURhdGEucmVsZWFzZSgpKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ2FjaGVkUmVz
b3VyY2U6OmlzUHVyZ2VhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wdXJnZWFibGVEYXRh
ICYmIG1fcHVyZ2VhYmxlRGF0YS0+aXNQdXJnZWFibGUoKTsKK30KKworYm9vbCBDYWNoZWRSZXNv
dXJjZTo6d2FzUHVyZ2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wdXJnZWFibGVEYXRhICYm
IG1fcHVyZ2VhYmxlRGF0YS0+d2FzUHVyZ2VkKCk7Cit9CisKIHVuc2lnbmVkIENhY2hlZFJlc291
cmNlOjpvdmVyaGVhZFNpemUoKSBjb25zdAogewogICAgIHN0YXRpYyBjb25zdCBpbnQga0F2ZXJh
Z2VDbGllbnRzSGFzaE1hcFNpemUgPSAzODQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGY3Mzg3NzhjY2NjNjUzOTZiYmI1MjQxYmMxMmY5ZjNj
ZGYyOTJlYjUuLjM2NWNiZTg2ZWNmOWYzYTUwYzliNWMxMWRiN2Q2ZGMxMGQ5ZGEzYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNpbmNsdWRlICJDYWNoZVBvbGljeS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKKyNpbmNsdWRlICJQdXJnZVByaW9yaXR5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VF
cnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmgiCkBAIC00Niw2ICs0Nyw3IEBAIGNsYXNzIENhY2hlZFJlc291
cmNlQ2xpZW50OwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOwogY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZTsKK2NsYXNzIFB1cmdlYWJs
ZUJ1ZmZlcjsKIGNsYXNzIFJlc291cmNlQnVmZmVyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBj
bGFzcyBTaGFyZWRCdWZmZXI7CkBAIC0xODYsNyArMTg4LDcgQEAgcHVibGljOgogICAgIAogICAg
IHZvaWQgY2xlYXJMb2FkZXIoKTsKIAotICAgIFJlc291cmNlQnVmZmVyKiByZXNvdXJjZUJ1ZmZl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQorICAgIFJlc291cmNlQnVmZmVyKiBy
ZXNvdXJjZUJ1ZmZlcigpIGNvbnN0IHsgQVNTRVJUKCFtX3B1cmdlYWJsZURhdGEpOyByZXR1cm4g
bV9kYXRhLmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IG1fcmVxdWVzdGVkRnJvbU5l
dHdvcmtpbmdMYXllciA9IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZl
ZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CkBAIC0yMjksNiArMjMxLDE0IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQ2FjaGVWYWxpZGF0b3IoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlVG9S
ZXZhbGlkYXRlOyB9CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlVG9SZXZhbGlkYXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVRvUmV2YWxpZGF0ZTsgfQogICAgIAorICAgIGJvb2wg
aXNQdXJnZWFibGUoKSBjb25zdDsKKyAgICBib29sIHdhc1B1cmdlZCgpIGNvbnN0OworICAgIAor
ICAgIC8vIFRoaXMgaXMgdXNlZCBieSB0aGUgYXJjaGl2ZSBtYWNoaW5lcnkgdG8gZ2V0IGF0IGEg
cHVyZ2VkIHJlc291cmNlIHdpdGhvdXQKKyAgICAvLyB0cmlnZ2VyaW5nIGEgbG9hZC4gV2Ugc2hv
dWxkIG1ha2UgaXQgcHJvdGVjdGVkIGFnYWluIGlmIHdlIGNhbiBmaW5kIGEKKyAgICAvLyBiZXR0
ZXIgd2F5IHRvIGhhbmRsZSB0aGUgYXJjaGl2ZSBjYXNlLgorICAgIGJvb2wgbWFrZVB1cmdlYWJs
ZShib29sIHB1cmdlYWJsZSk7CisgICAgCiAgICAgLy8gSFRUUCByZXZhbGlkYXRpb24gc3VwcG9y
dCBtZXRob2RzIGZvciBDYWNoZWRSZXNvdXJjZUxvYWRlci4KICAgICB2b2lkIHNldFJlc291cmNl
VG9SZXZhbGlkYXRlKENhY2hlZFJlc291cmNlKik7CiAgICAgdmlydHVhbCB2b2lkIHN3aXRjaENs
aWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UoKTsKQEAgLTI2Myw2ICsyNzMsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXREZWNvZGVkU2l6ZSh1bnNpZ25lZCk7CiAgICAgdm9pZCBkaWRBY2Nl
c3NEZWNvZGVkRGF0YShkb3VibGUgdGltZVN0YW1wKTsKIAorICAgIGJvb2wgaXNTYWZlVG9NYWtl
UHVyZ2VhYmxlKCkgY29uc3Q7CisgICAgCiAgICAgSGFzaENvdW50ZWRTZXQ8Q2FjaGVkUmVzb3Vy
Y2VDbGllbnQqPiBtX2NsaWVudHM7CiAKICAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZUNhbGxiYWNr
IHsKQEAgLTI5MCw2ICszMDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZG91YmxlIG1fcmVzcG9uc2VU
aW1lc3RhbXA7CiAKICAgICBSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IG1fZGF0YTsKKyAgICBPd25Q
dHI8UHVyZ2VhYmxlQnVmZmVyPiBtX3B1cmdlYWJsZURhdGE7CiAgICAgRGVmZXJyYWJsZU9uZVNo
b3RUaW1lciBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcjsKIAogcHJpdmF0ZToKQEAgLTI5Nyw2
ICszMTAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWNvZGVkRGF0YURlbGV0aW9uVGltZXJG
aXJlZCgpOwogCisgICAgdmlydHVhbCBQdXJnZVByaW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBjb25z
dCB7IHJldHVybiBQdXJnZURlZmF1bHQ7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFj
ZUVuY29kZWREYXRhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGRvdWJsZSBjdXJy
ZW50QWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwCmluZGV4IGY3MWE1ZThhYWVjZThiM2FiMTk1ZGU2NTRlMTQxMWQzNzk1ZWEwMDMuLjVl
YzJmNTJhNTE5YmM4N2Q4OGMxMDE4ODQzMTkzZWIwYzg5ZjliYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCkBAIC03MSw2ICs3MSw4IEBAIFN0cmlu
ZyBDYWNoZWRTY3JpcHQ6Om1pbWVUeXBlKCkgY29uc3QKIAogY29uc3QgU3RyaW5nJiBDYWNoZWRT
Y3JpcHQ6OnNjcmlwdCgpCiB7CisgICAgQVNTRVJUKCFpc1B1cmdlYWJsZSgpKTsKKwogICAgIGlm
ICghbV9zY3JpcHQgJiYgbV9kYXRhKSB7CiAgICAgICAgIG1fc2NyaXB0ID0gbV9kZWNvZGVyLT5k
ZWNvZGVBbmRGbHVzaChtX2RhdGEtPmRhdGEoKSwgZW5jb2RlZFNpemUoKSk7CiAgICAgICAgIHNl
dERlY29kZWRTaXplKG1fc2NyaXB0LnNpemVJbkJ5dGVzKCkpOwpAQCAtOTEsNiArOTMsOCBAQCB2
b2lkIENhY2hlZFNjcmlwdDo6ZGVzdHJveURlY29kZWREYXRhKCkKIHsKICAgICBtX3NjcmlwdCA9
IFN0cmluZygpOwogICAgIHNldERlY29kZWRTaXplKDApOworICAgIGlmICghTWVtb3J5Q2FjaGU6
OnNob3VsZE1ha2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24oKSAmJiBpc1NhZmVUb01ha2VQ
dXJnZWFibGUoKSkKKyAgICAgICAgbWFrZVB1cmdlYWJsZSh0cnVlKTsKIH0KIAogI2lmIEVOQUJM
RShOT1NOSUZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCmlu
ZGV4IDVkMTQzNzY4MjE4Yjk2YzY0ZjNhNDAwZTc0NTc4MThiM2Y2OTk1MzIuLmM5YzczZDJlZDEz
MWNmNTU0ODllYWQxODYzYjVhNmRkMGNlZDQyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2VuZGlmCiAKICAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIFB1cmdlUHJpb3JpdHkg
cHVyZ2VQcmlvcml0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFB1cmdlTGFzdDsgfQogICAg
ICAgICB2aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVI
VFRQU3RhdHVzQ29kZUVycm9ycygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKaW5kZXggNTcxMTJhMjI0OGVmNTI1MDU1MjUwNTk3
MGYwNGRmOTg1YjE0ZjkxMy4uMDJmYjMwOTI4MmJkM2JjNzU4NTliMWU1YjQwNzI3NDcxZDNkYzQ0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC0y
MTIsNiArMjEyLDE1IEBAIENhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JS
ZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAjZWxzZQogICAgIENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZSA9IHJlc291cmNlcy5nZXQodXJsKTsKICNlbmRpZgorICAgIGJv
b2wgd2FzUHVyZ2VhYmxlID0gTWVtb3J5Q2FjaGU6OnNob3VsZE1ha2VSZXNvdXJjZVB1cmdlYWJs
ZU9uRXZpY3Rpb24oKSAmJiByZXNvdXJjZSAmJiByZXNvdXJjZS0+aXNQdXJnZWFibGUoKTsKKyAg
ICBpZiAocmVzb3VyY2UgJiYgIXJlc291cmNlLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkgeworICAg
ICAgICBBU1NFUlQoIXJlc291cmNlLT5oYXNDbGllbnRzKCkpOworICAgICAgICBldmljdChyZXNv
dXJjZSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvLyBBZGQgdGhlIHNpemUgYmFj
ayBzaW5jZSB3ZSBoYWQgc3VidHJhY3RlZCBpdCB3aGVuIHdlIG1hcmtlZCB0aGUgbWVtb3J5IGFz
IHB1cmdlYWJsZS4KKyAgICBpZiAod2FzUHVyZ2VhYmxlKQorICAgICAgICBhZGp1c3RTaXplKHJl
c291cmNlLT5oYXNDbGllbnRzKCksIHJlc291cmNlLT5zaXplKCkpOwogICAgIHJldHVybiByZXNv
dXJjZTsKIH0KIApAQCAtMzk1LDYgKzQwNCwxOSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpwcnVuZURl
YWRSZXNvdXJjZXNUb1NpemUodW5zaWduZWQgdGFyZ2V0U2l6ZSkKIAogICAgIGludCBzaXplID0g
bV9hbGxSZXNvdXJjZXMuc2l6ZSgpOwogIAorICAgIC8vIFNlZSBpZiB3ZSBoYXZlIGFueSBwdXJn
ZWQgcmVzb3VyY2VzIHdlIGNhbiBldmljdC4KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7
IGkrKykgeworICAgICAgICBDYWNoZWRSZXNvdXJjZSogY3VycmVudCA9IG1fYWxsUmVzb3VyY2Vz
W2ldLm1fdGFpbDsKKyAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHsKKyAgICAgICAgICAgIENhY2hl
ZFJlc291cmNlKiBwcmV2ID0gY3VycmVudC0+bV9wcmV2SW5BbGxSZXNvdXJjZXNMaXN0OworICAg
ICAgICAgICAgaWYgKGN1cnJlbnQtPndhc1B1cmdlZCgpKSB7CisgICAgICAgICAgICAgICAgQVNT
RVJUKCFjdXJyZW50LT5oYXNDbGllbnRzKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVCghY3Vy
cmVudC0+aXNQcmVsb2FkZWQoKSk7CisgICAgICAgICAgICAgICAgZXZpY3QoY3VycmVudCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50ID0gcHJldjsKKyAgICAgICAgfQorICAg
IH0KICAgICBpZiAodGFyZ2V0U2l6ZSAmJiBtX2RlYWRTaXplIDw9IHRhcmdldFNpemUpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNDMwLDcgKzQ1Miw5IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnBydW5l
RGVhZFJlc291cmNlc1RvU2l6ZSh1bnNpZ25lZCB0YXJnZXRTaXplKQogICAgICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHByZXZpb3VzID0gY3VycmVudC0+bV9w
cmV2SW5BbGxSZXNvdXJjZXNMaXN0OwogICAgICAgICAgICAgQVNTRVJUKCFwcmV2aW91cyB8fCBw
cmV2aW91cy0+aW5DYWNoZSgpKTsKICAgICAgICAgICAgIGlmICghY3VycmVudC0+aGFzQ2xpZW50
cygpICYmICFjdXJyZW50LT5pc1ByZWxvYWRlZCgpICYmICFjdXJyZW50LT5pc0NhY2hlVmFsaWRh
dG9yKCkpIHsKLSAgICAgICAgICAgICAgICBldmljdChjdXJyZW50KTsKKyAgICAgICAgICAgICAg
ICBpZiAoIW1ha2VSZXNvdXJjZVB1cmdlYWJsZShjdXJyZW50KSkKKyAgICAgICAgICAgICAgICAg
ICAgZXZpY3QoY3VycmVudCk7CisKICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0U2l6ZSAmJiBt
X2RlYWRTaXplIDw9IHRhcmdldFNpemUpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KQEAgLTQ5Nyw2ICs1MjEsMjggQEAgdm9pZCBNZW1vcnlDYWNoZTo6c2V0Q2Fw
YWNpdGllcyh1bnNpZ25lZCBtaW5EZWFkQnl0ZXMsIHVuc2lnbmVkIG1heERlYWRCeXRlcywgdW4K
ICAgICBwcnVuZSgpOwogfQogCitib29sIE1lbW9yeUNhY2hlOjptYWtlUmVzb3VyY2VQdXJnZWFi
bGUoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIGlmICghTWVtb3J5Q2FjaGU6OnNo
b3VsZE1ha2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFyZXNvdXJjZS0+aW5DYWNoZSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAocmVzb3VyY2UtPmlzUHVyZ2VhYmxlKCkpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgaWYgKCFyZXNvdXJjZS0+aXNTYWZlVG9NYWtlUHVyZ2VhYmxlKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghcmVzb3VyY2UtPm1ha2VQdXJnZWFibGUodHJ1
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGFkanVzdFNpemUocmVzb3VyY2UtPmhh
c0NsaWVudHMoKSwgLXN0YXRpY19jYXN0PGludD4ocmVzb3VyY2UtPnNpemUoKSkpOworCisgICAg
cmV0dXJuIHRydWU7Cit9CisKIHZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0KENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CkBAIC01MjEs
NiArNTY3LDEyIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0KENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSkKICAgICAgICAgLy8gUmVtb3ZlIGZyb20gdGhlIGFwcHJvcHJpYXRlIExSVSBsaXN0Lgog
ICAgICAgICByZW1vdmVGcm9tTFJVTGlzdChyZXNvdXJjZSk7CiAgICAgICAgIHJlbW92ZUZyb21M
aXZlRGVjb2RlZFJlc291cmNlc0xpc3QocmVzb3VyY2UpOworCisgICAgICAgIC8vIElmIHRoZSBy
ZXNvdXJjZSB3YXMgcHVyZ2VkLCBpdCBtZWFucyB3ZSBoYWQgYWxyZWFkeSBkZWNyZW1lbnRlZCB0
aGUgc2l6ZSB3aGVuIHdlIG1hZGUgdGhlCisgICAgICAgIC8vIHJlc291cmNlIHB1cmdlYWJsZSBp
biBtYWtlUmVzb3VyY2VQdXJnZWFibGUoKS4gU28gYWRqdXN0IHRoZSBzaXplIGlmIHdlIGFyZSBl
dmljdGluZyBhCisgICAgICAgIC8vIHJlc291cmNlIHRoYXQgd2FzIG5vdCBtYXJrZWQgYXMgcHVy
Z2VhYmxlLgorICAgICAgICBpZiAoIU1lbW9yeUNhY2hlOjpzaG91bGRNYWtlUmVzb3VyY2VQdXJn
ZWFibGVPbkV2aWN0aW9uKCkgfHwgIXJlc291cmNlLT5pc1B1cmdlYWJsZSgpKQorICAgICAgICAg
ICAgYWRqdXN0U2l6ZShyZXNvdXJjZS0+aGFzQ2xpZW50cygpLCAtc3RhdGljX2Nhc3Q8aW50Pihy
ZXNvdXJjZS0+c2l6ZSgpKSk7CiAgICAgfSBlbHNlCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElP
TklORykKICAgICAgICAgQVNTRVJUKCFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwg
cmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0
aW9uKCkpICE9IHJlc291cmNlKTsKQEAgLTg0MCwxMCArODkyLDE1IEBAIHZvaWQgTWVtb3J5Q2Fj
aGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1
dGlvbkNvbnRlCiAKIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0aWM6OmFkZFJlc291cmNl
KENhY2hlZFJlc291cmNlKiBvKQogeworICAgIGJvb2wgcHVyZ2VkID0gby0+d2FzUHVyZ2VkKCk7
CisgICAgYm9vbCBwdXJnZWFibGUgPSBvLT5pc1B1cmdlYWJsZSgpICYmICFwdXJnZWQ7IAorICAg
IGludCBwYWdlU2l6ZSA9IChvLT5lbmNvZGVkU2l6ZSgpICsgby0+b3ZlcmhlYWRTaXplKCkgKyA0
MDk1KSAmIH40MDk1OwogICAgIGNvdW50Kys7Ci0gICAgc2l6ZSArPSBvLT5zaXplKCk7CisgICAg
c2l6ZSArPSBwdXJnZWQgPyAwIDogby0+c2l6ZSgpOyAKICAgICBsaXZlU2l6ZSArPSBvLT5oYXND
bGllbnRzKCkgPyBvLT5zaXplKCkgOiAwOwogICAgIGRlY29kZWRTaXplICs9IG8tPmRlY29kZWRT
aXplKCk7CisgICAgcHVyZ2VhYmxlU2l6ZSArPSBwdXJnZWFibGUgPyBwYWdlU2l6ZSA6IDA7Cisg
ICAgcHVyZ2VkU2l6ZSArPSBwdXJnZWQgPyBwYWdlU2l6ZSA6IDA7CiAjaWYgRU5BQkxFKERJU0tf
SU1BR0VfQ0FDSEUpCiAgICAgLy8gT25seSB0aGUgZGF0YSBpbnNpZGUgdGhlIHJlc291cmNlIHdh
cyBtYXBwZWQsIG5vdCB0aGUgZW50aXJlIHJlc291cmNlLgogICAgIG1hcHBlZFNpemUgKz0gby0+
aXNVc2luZ0Rpc2tJbWFnZUNhY2hlKCkgPyBvLT5yZXNvdXJjZUJ1ZmZlcigpLT5zaGFyZWRCdWZm
ZXIoKS0+c2l6ZSgpIDogMDsKQEAgLTk0NCwyOSArMTAwMSwyOSBAQCB2b2lkIE1lbW9yeUNhY2hl
OjpkdW1wU3RhdHMoKQogewogICAgIFN0YXRpc3RpY3MgcyA9IGdldFN0YXRpc3RpY3MoKTsKICNp
ZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKLSAgICBwcmludGYoIiUtMTNzICUtMTNzICUtMTNz
ICUtMTNzICUtMTNzICUtMTNzICUtMTNzXG4iLCAiIiwgIkNvdW50IiwgIlNpemUiLCAiTGl2ZVNp
emUiLCAiRGVjb2RlZFNpemUiLCAiTWFwcGVkIiwgIlwiUmVhbFwiIik7Ci0gICAgcHJpbnRmKCIl
LTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAlLTEzc1xuIiwgIi0tLS0tLS0tLS0t
LS0iLCAiLS0tLS0tLS0tLS0tLSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iLCAi
LS0tLS0tLS0tLS0tLSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iKTsKLSAgICBw
cmludGYoIiUtMTNzICUxM2QgJTEzZCAlMTNkICUxM2QgJTEzZCAlMTNkXG4iLCAiSW1hZ2VzIiwg
cy5pbWFnZXMuY291bnQsIHMuaW1hZ2VzLnNpemUsIHMuaW1hZ2VzLmxpdmVTaXplLCBzLmltYWdl
cy5kZWNvZGVkU2l6ZSwgcy5pbWFnZXMubWFwcGVkU2l6ZSwgcy5pbWFnZXMuc2l6ZSAtIHMuaW1h
Z2VzLm1hcHBlZFNpemUpOworICAgIHByaW50ZigiJS0xM3MgJS0xM3MgJS0xM3MgJS0xM3MgJS0x
M3MgJS0xM3MgJS0xM3MgJS0xM3MgJS0xM3NcbiIsICIiLCAiQ291bnQiLCAiU2l6ZSIsICJMaXZl
U2l6ZSIsICJEZWNvZGVkU2l6ZSIsICJQdXJnZWFibGVTaXplIiwgIlB1cmdlZFNpemUiLCAiTWFw
cGVkIiwgIlwiUmVhbFwiIik7CisgICAgcHJpbnRmKCIlLTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAl
LTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAlLTEzc1xuIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0t
LS0tLS0tLSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0tLS0tLS0t
LSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0tLS0tLS0tLSIsICIt
LS0tLS0tLS0tLS0tIik7CisgICAgcHJpbnRmKCIlLTEzcyAlMTNkICUxM2QgJTEzZCAlMTNkICUx
M2QgJTEzZCAlMTNkICUxM2RcbiIsICJJbWFnZXMiLCBzLmltYWdlcy5jb3VudCwgcy5pbWFnZXMu
c2l6ZSwgcy5pbWFnZXMubGl2ZVNpemUsIHMuaW1hZ2VzLmRlY29kZWRTaXplLCBzLmltYWdlcy5w
dXJnZWFibGVTaXplLCBzLmltYWdlcy5wdXJnZWRTaXplLCBzLmltYWdlcy5tYXBwZWRTaXplLCBz
LmltYWdlcy5zaXplIC0gcy5pbWFnZXMubWFwcGVkU2l6ZSk7CiAjZWxzZQotICAgIHByaW50Zigi
JS0xM3MgJS0xM3MgJS0xM3MgJS0xM3MgJS0xM3NcbiIsICIiLCAiQ291bnQiLCAiU2l6ZSIsICJM
aXZlU2l6ZSIsICJEZWNvZGVkU2l6ZSIpOwotICAgIHByaW50ZigiJS0xM3MgJS0xM3MgJS0xM3Mg
JS0xM3MgJS0xM3NcbiIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0t
LS0tLS0tLSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iKTsKLSAgICBwcmludGYo
IiUtMTNzICUxM2QgJTEzZCAlMTNkICUxM2RcbiIsICJJbWFnZXMiLCBzLmltYWdlcy5jb3VudCwg
cy5pbWFnZXMuc2l6ZSwgcy5pbWFnZXMubGl2ZVNpemUsIHMuaW1hZ2VzLmRlY29kZWRTaXplKTsK
KyAgICBwcmludGYoIiUtMTNzICUtMTNzICUtMTNzICUtMTNzICUtMTNzICUtMTNzICUtMTNzXG4i
LCAiIiwgIkNvdW50IiwgIlNpemUiLCAiTGl2ZVNpemUiLCAiRGVjb2RlZFNpemUiLCAiUHVyZ2Vh
YmxlU2l6ZSIsICJQdXJnZWRTaXplIik7CisgICAgcHJpbnRmKCIlLTEzcyAlLTEzcyAlLTEzcyAl
LTEzcyAlLTEzcyAlLTEzcyAlLTEzc1xuIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0tLS0tLS0t
LSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0tLS0tLS0tLSIsICIt
LS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iKTsKKyAgICBwcmludGYoIiUtMTNzICUxM2Qg
JTEzZCAlMTNkICUxM2QgJTEzZCAlMTNkXG4iLCAiSW1hZ2VzIiwgcy5pbWFnZXMuY291bnQsIHMu
aW1hZ2VzLnNpemUsIHMuaW1hZ2VzLmxpdmVTaXplLCBzLmltYWdlcy5kZWNvZGVkU2l6ZSwgcy5p
bWFnZXMucHVyZ2VhYmxlU2l6ZSwgcy5pbWFnZXMucHVyZ2VkU2l6ZSk7CiAjZW5kaWYKLSAgICBw
cmludGYoIiUtMTNzICUxM2QgJTEzZCAlMTNkICUxM2RcbiIsICJDU1MiLCBzLmNzc1N0eWxlU2hl
ZXRzLmNvdW50LCBzLmNzc1N0eWxlU2hlZXRzLnNpemUsIHMuY3NzU3R5bGVTaGVldHMubGl2ZVNp
emUsIHMuY3NzU3R5bGVTaGVldHMuZGVjb2RlZFNpemUpOworICAgIHByaW50ZigiJS0xM3MgJTEz
ZCAlMTNkICUxM2QgJTEzZCAlMTNkICUxM2RcbiIsICJDU1MiLCBzLmNzc1N0eWxlU2hlZXRzLmNv
dW50LCBzLmNzc1N0eWxlU2hlZXRzLnNpemUsIHMuY3NzU3R5bGVTaGVldHMubGl2ZVNpemUsIHMu
Y3NzU3R5bGVTaGVldHMuZGVjb2RlZFNpemUsIHMuY3NzU3R5bGVTaGVldHMucHVyZ2VhYmxlU2l6
ZSwgcy5jc3NTdHlsZVNoZWV0cy5wdXJnZWRTaXplKTsKICNpZiBFTkFCTEUoWFNMVCkKLSAgICBw
cmludGYoIiUtMTNzICUxM2QgJTEzZCAlMTNkICUxM2RcbiIsICJYU0wiLCBzLnhzbFN0eWxlU2hl
ZXRzLmNvdW50LCBzLnhzbFN0eWxlU2hlZXRzLnNpemUsIHMueHNsU3R5bGVTaGVldHMubGl2ZVNp
emUsIHMueHNsU3R5bGVTaGVldHMuZGVjb2RlZFNpemUpOworICAgIHByaW50ZigiJS0xM3MgJTEz
ZCAlMTNkICUxM2QgJTEzZCAlMTNkICUxM2RcbiIsICJYU0wiLCBzLnhzbFN0eWxlU2hlZXRzLmNv
dW50LCBzLnhzbFN0eWxlU2hlZXRzLnNpemUsIHMueHNsU3R5bGVTaGVldHMubGl2ZVNpemUsIHMu
eHNsU3R5bGVTaGVldHMuZGVjb2RlZFNpemUsIHMueHNsU3R5bGVTaGVldHMucHVyZ2VhYmxlU2l6
ZSwgcy54c2xTdHlsZVNoZWV0cy5wdXJnZWRTaXplKTsKICNlbmRpZgotICAgIHByaW50ZigiJS0x
M3MgJTEzZCAlMTNkICUxM2QgJTEzZFxuIiwgIkphdmFTY3JpcHQiLCBzLnNjcmlwdHMuY291bnQs
IHMuc2NyaXB0cy5zaXplLCBzLnNjcmlwdHMubGl2ZVNpemUsIHMuc2NyaXB0cy5kZWNvZGVkU2l6
ZSk7Ci0gICAgcHJpbnRmKCIlLTEzcyAlMTNkICUxM2QgJTEzZCAlMTNkXG4iLCAiRm9udHMiLCBz
LmZvbnRzLmNvdW50LCBzLmZvbnRzLnNpemUsIHMuZm9udHMubGl2ZVNpemUsIHMuZm9udHMuZGVj
b2RlZFNpemUpOwotICAgIHByaW50ZigiJS0xM3MgJS0xM3MgJS0xM3MgJS0xM3MgJS0xM3Ncblxu
IiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0tLS0tLS0tLSIsICItLS0tLS0tLS0tLS0tIiwgIi0t
LS0tLS0tLS0tLS0iLCAiLS0tLS0tLS0tLS0tLSIpOworICAgIHByaW50ZigiJS0xM3MgJTEzZCAl
MTNkICUxM2QgJTEzZCAlMTNkICUxM2RcbiIsICJKYXZhU2NyaXB0Iiwgcy5zY3JpcHRzLmNvdW50
LCBzLnNjcmlwdHMuc2l6ZSwgcy5zY3JpcHRzLmxpdmVTaXplLCBzLnNjcmlwdHMuZGVjb2RlZFNp
emUsIHMuc2NyaXB0cy5wdXJnZWFibGVTaXplLCBzLnNjcmlwdHMucHVyZ2VkU2l6ZSk7CisgICAg
cHJpbnRmKCIlLTEzcyAlMTNkICUxM2QgJTEzZCAlMTNkICUxM2QgJTEzZFxuIiwgIkZvbnRzIiwg
cy5mb250cy5jb3VudCwgcy5mb250cy5zaXplLCBzLmZvbnRzLmxpdmVTaXplLCBzLmZvbnRzLmRl
Y29kZWRTaXplLCBzLmZvbnRzLnB1cmdlYWJsZVNpemUsIHMuZm9udHMucHVyZ2VkU2l6ZSk7Cisg
ICAgcHJpbnRmKCIlLTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAlLTEzcyAlLTEzc1xuXG4i
LCAiLS0tLS0tLS0tLS0tLSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0t
LS0tLS0tLS0tLSIsICItLS0tLS0tLS0tLS0tIiwgIi0tLS0tLS0tLS0tLS0iLCAiLS0tLS0tLS0t
LS0tLSIpOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpkdW1wTFJVTGlzdHMoYm9vbCBpbmNsdWRl
TGl2ZSkgY29uc3QKIHsKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKLSAgICBwcmludGYo
IkxSVS1TUCBsaXN0cyBpbiBldmljdGlvbiBvcmRlciAoS2lsb2J5dGVzIGRlY29kZWQsIEtpbG9i
eXRlcyBlbmNvZGVkLCBBY2Nlc3MgY291bnQsIFJlZmVyZW5jZWQsIGlzTWVtb3J5TWFwcGVkKTpc
biIpOworICAgIHByaW50ZigiTFJVLVNQIGxpc3RzIGluIGV2aWN0aW9uIG9yZGVyIChLaWxvYnl0
ZXMgZGVjb2RlZCwgS2lsb2J5dGVzIGVuY29kZWQsIEFjY2VzcyBjb3VudCwgUmVmZXJlbmNlZCwg
aXNQdXJnZWFibGUsIHdhc1B1cmdlZCwgaXNNZW1vcnlNYXBwZWQpOlxuIik7CiAjZWxzZQotICAg
IHByaW50ZigiTFJVLVNQIGxpc3RzIGluIGV2aWN0aW9uIG9yZGVyIChLaWxvYnl0ZXMgZGVjb2Rl
ZCwgS2lsb2J5dGVzIGVuY29kZWQsIEFjY2VzcyBjb3VudCwgUmVmZXJlbmNlZCk6XG4iKTsKKyAg
ICBwcmludGYoIkxSVS1TUCBsaXN0cyBpbiBldmljdGlvbiBvcmRlciAoS2lsb2J5dGVzIGRlY29k
ZWQsIEtpbG9ieXRlcyBlbmNvZGVkLCBBY2Nlc3MgY291bnQsIFJlZmVyZW5jZWQsIGlzUHVyZ2Vh
YmxlLCB3YXNQdXJnZWQpOlxuIik7CiAjZW5kaWYKIAogICAgIGludCBzaXplID0gbV9hbGxSZXNv
dXJjZXMuc2l6ZSgpOwpAQCAtOTc3LDkgKzEwMzQsOSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpkdW1w
TFJVTGlzdHMoYm9vbCBpbmNsdWRlTGl2ZSkgY29uc3QKICAgICAgICAgICAgIENhY2hlZFJlc291
cmNlKiBwcmV2ID0gY3VycmVudC0+bV9wcmV2SW5BbGxSZXNvdXJjZXNMaXN0OwogICAgICAgICAg
ICAgaWYgKGluY2x1ZGVMaXZlIHx8ICFjdXJyZW50LT5oYXNDbGllbnRzKCkpCiAjaWYgRU5BQkxF
KERJU0tfSU1BR0VfQ0FDSEUpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCIoJS4xZkssICUuMWZL
LCAldUEsICVkUiwgJWQpOyAiLCBjdXJyZW50LT5kZWNvZGVkU2l6ZSgpIC8gMTAyNC4wZiwgKGN1
cnJlbnQtPmVuY29kZWRTaXplKCkgKyBjdXJyZW50LT5vdmVyaGVhZFNpemUoKSkgLyAxMDI0LjBm
LCBjdXJyZW50LT5hY2Nlc3NDb3VudCgpLCBjdXJyZW50LT5oYXNDbGllbnRzKCksIGN1cnJlbnQt
PmlzVXNpbmdEaXNrSW1hZ2VDYWNoZSgpKTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiglLjFm
SywgJS4xZkssICV1QSwgJWRSLCAlZCwgJWQsICVkKTsgIiwgY3VycmVudC0+ZGVjb2RlZFNpemUo
KSAvIDEwMjQuMGYsIChjdXJyZW50LT5lbmNvZGVkU2l6ZSgpICsgY3VycmVudC0+b3ZlcmhlYWRT
aXplKCkpIC8gMTAyNC4wZiwgY3VycmVudC0+YWNjZXNzQ291bnQoKSwgY3VycmVudC0+aGFzQ2xp
ZW50cygpLCBjdXJyZW50LT5pc1B1cmdlYWJsZSgpLCBjdXJyZW50LT53YXNQdXJnZWQoKSwgY3Vy
cmVudC0+aXNVc2luZ0Rpc2tJbWFnZUNhY2hlKCkpOwogI2Vsc2UKLSAgICAgICAgICAgICAgICBw
cmludGYoIiglLjFmSywgJS4xZkssICV1QSwgJWRSKTsgIiwgY3VycmVudC0+ZGVjb2RlZFNpemUo
KSAvIDEwMjQuMGYsIChjdXJyZW50LT5lbmNvZGVkU2l6ZSgpICsgY3VycmVudC0+b3ZlcmhlYWRT
aXplKCkpIC8gMTAyNC4wZiwgY3VycmVudC0+YWNjZXNzQ291bnQoKSwgY3VycmVudC0+aGFzQ2xp
ZW50cygpKTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiglLjFmSywgJS4xZkssICV1QSwgJWRS
LCAlZCwgJWQpOyAiLCBjdXJyZW50LT5kZWNvZGVkU2l6ZSgpIC8gMTAyNC4wZiwgKGN1cnJlbnQt
PmVuY29kZWRTaXplKCkgKyBjdXJyZW50LT5vdmVyaGVhZFNpemUoKSkgLyAxMDI0LjBmLCBjdXJy
ZW50LT5hY2Nlc3NDb3VudCgpLCBjdXJyZW50LT5oYXNDbGllbnRzKCksIGN1cnJlbnQtPmlzUHVy
Z2VhYmxlKCksIGN1cnJlbnQtPndhc1B1cmdlZCgpKTsKICNlbmRpZgogCiAgICAgICAgICAgICBj
dXJyZW50ID0gcHJldjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgK
aW5kZXggZjY2ODRiYTUxNTkyMzJjOWI5MWY3OTUzNjE2MDRkZDZjMmEyODgzMC4uYmJjMzRlYmI4
NzBiMmEzMTg0NjI2NTM3ODYwOGNiNjRhNTZhZGI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL01lbW9yeUNhY2hlLmgKQEAgLTYxLDYgKzYxLDIyIEBAIHN0cnVjdCBTZWN1cml0eU9y
aWdpbkhhc2g7CiAvLyAtLS0tLS0tfC0tLS0tKysrKysrKysrKysrKysrfAogLy8gLS0tLS0tLXwt
LS0tLSsrKysrKysrKysrKysrK3wrKysrKwogCisvLyBUaGUgYmVoYXZpb3Igb2YgdGhlIGNhY2hl
IGNoYW5nZXMgaW4gdGhlIGZvbGxvd2luZyB3YXkgaWYgc2hvdWxkTWFrZVJlc291cmNlUHVyZ2Vh
YmxlT25FdmljdGlvbgorLy8gcmV0dXJucyB0cnVlLgorLy8KKy8vIDEuIERlYWQgcmVzb3VyY2Vz
IGluIHRoZSBjYWNoZSBhcmUga2VwdCBpbiBub24tcHVyZ2VhYmxlIG1lbW9yeS4KKy8vIDIuIFdo
ZW4gd2UgcHJ1bmUgZGVhZCByZXNvdXJjZXMsIGluc3RlYWQgb2YgZnJlZWluZyB0aGVtLCB3ZSBt
YXJrIHRoZWlyIG1lbW9yeSBhcyBwdXJnZWFibGUgYW5kCisvLyAgICBrZWVwIHRoZSByZXNvdXJj
ZXMgdW50aWwgdGhlIGtlcm5lbCByZWNsYWltcyB0aGUgcHVyZ2VhYmxlIG1lbW9yeS4KKy8vCisv
LyBCeSBsZWF2aW5nIHRoZSBpbi1jYWNoZSBkZWFkIHJlc291cmNlcyBpbiBkaXJ0eSByZXNpZGVu
dCBtZW1vcnksIHdlIGRlY3JlYXNlIHRoZSBsaWtlbGlob29kIG9mCisvLyB0aGUga2VybmVsIGNs
YWltaW5nIHRoYXQgbWVtb3J5IGFuZCBmb3JjaW5nIHVzIHRvIHJlZmV0Y2ggdGhlIHJlc291cmNl
IChmb3IgZXhhbXBsZSB3aGVuIGEgdXNlcgorLy8gcHJlc3NlcyBiYWNrKS4KKy8vCisvLyBBbmQg
YnkgaGF2aW5nIGFuIHVuYm91bmRlZCBudW1iZXIgb2YgcmVzb3VyY2Ugb2JqZWN0cyB1c2luZyBw
dXJnZWFibGUgbWVtb3J5LCB3ZSBjYW4gdXNlIGFzIG11Y2gKKy8vIG1lbW9yeSBhcyBpcyBhdmFp
bGFibGUgb24gdGhlIG1hY2hpbmUuIFRoZSB0cmFkZS1vZmYgaGVyZSBpcyB0aGF0IHRoZSBDYWNo
ZWRSZXNvdXJjZSBvYmplY3QgKGFuZAorLy8gaXRzIG1lbWJlciB2YXJpYWJsZXMpIGFyZSBhbGxv
Y2F0ZWQgaW4gbm9uLXB1cmdlYWJsZSBUQy1tYWxsb2MnZCBtZW1vcnkgc28gd2Ugd291bGQgc2Vl
IHNsaWdodGx5CisvLyBtb3JlIG1lbW9yeSB1c2UgZHVlIHRvIHRoaXMuCisKIGNsYXNzIE1lbW9y
eUNhY2hlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNZW1vcnlDYWNoZSk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtODUsMjEgKzEwMSwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGludCBzaXplOwogICAgICAgICBpbnQgbGl2ZVNpemU7CiAgICAgICAgIGludCBkZWNv
ZGVkU2l6ZTsKKyAgICAgICAgaW50IHB1cmdlYWJsZVNpemU7CisgICAgICAgIGludCBwdXJnZWRT
aXplOwogI2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQogICAgICAgICBpbnQgbWFwcGVkU2l6
ZTsKKyAgICAgICAgVHlwZVN0YXRpc3RpYygpIDogY291bnQoMCksIHNpemUoMCksIGxpdmVTaXpl
KDApLCBkZWNvZGVkU2l6ZSgwKSwgcHVyZ2VhYmxlU2l6ZSgwKSwgcHVyZ2VkU2l6ZSgwKSwgbWFw
cGVkU2l6ZSgwKSB7IH0KKyNlbHNlCisgICAgICAgIFR5cGVTdGF0aXN0aWMoKSA6IGNvdW50KDAp
LCBzaXplKDApLCBsaXZlU2l6ZSgwKSwgZGVjb2RlZFNpemUoMCksIHB1cmdlYWJsZVNpemUoMCks
IHB1cmdlZFNpemUoMCkgeyB9CiAjZW5kaWYKLQotICAgICAgICBUeXBlU3RhdGlzdGljKCkKLSAg
ICAgICAgICAgIDogY291bnQoMCkKLSAgICAgICAgICAgICwgc2l6ZSgwKQotICAgICAgICAgICAg
LCBsaXZlU2l6ZSgwKQotICAgICAgICAgICAgLCBkZWNvZGVkU2l6ZSgwKQotI2lmIEVOQUJMRShE
SVNLX0lNQUdFX0NBQ0hFKQotICAgICAgICAgICAgLCBtYXBwZWRTaXplKDApCi0jZW5kaWYKLSAg
ICAgICAgewotICAgICAgICB9Ci0KICAgICAgICAgdm9pZCBhZGRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZSopOwogICAgIH07CiAgICAgCkBAIC0xNTgsNiArMTY3LDggQEAgcHVibGljOgogICAgIHZv
aWQgYWRkVG9MaXZlUmVzb3VyY2VzU2l6ZShDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgcmVt
b3ZlRnJvbUxpdmVSZXNvdXJjZXNTaXplKENhY2hlZFJlc291cmNlKik7CiAKKyAgICBzdGF0aWMg
Ym9vbCBzaG91bGRNYWtlUmVzb3VyY2VQdXJnZWFibGVPbkV2aWN0aW9uKCk7CisKICNpZiBFTkFC
TEUoRElTS19JTUFHRV9DQUNIRSkKICAgICB2b2lkIGZsdXNoQ2FjaGVkSW1hZ2VzVG9EaXNrKCk7
IC8vIEZsdXNoIGVuY29kZWQgZGF0YSBmcm9tIHJlc291cmNlcyBzdGlsbCByZWZlcmVuY2VkIGJ5
IHdlYiBwYWdlcy4KICNlbmRpZgpAQCAtMjExLDYgKzIyMiw3IEBAIHByaXZhdGU6CiAgICAgdW5z
aWduZWQgbGl2ZUNhcGFjaXR5KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgZGVhZENhcGFjaXR5KCkg
Y29uc3Q7CiAKKyAgICBib29sIG1ha2VSZXNvdXJjZVB1cmdlYWJsZShDYWNoZWRSZXNvdXJjZSop
OwogICAgIHZvaWQgZXZpY3QoQ2FjaGVkUmVzb3VyY2UqKTsKIAogICAgIENhY2hlZFJlc291cmNl
KiByZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJl
c291cmNlTWFwJik7CkBAIC0yNDYsNiArMjU4LDE1IEBAIHByaXZhdGU6CiAgICAgU2Vzc2lvbkNh
Y2hlZFJlc291cmNlTWFwIG1fc2Vzc2lvblJlc291cmNlczsKIH07CiAKK2lubGluZSBib29sIE1l
bW9yeUNhY2hlOjpzaG91bGRNYWtlUmVzb3VyY2VQdXJnZWFibGVPbkV2aWN0aW9uKCkKK3sKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorfQorCiAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBjYWNoZS4K
IE1lbW9yeUNhY2hlKiBtZW1vcnlDYWNoZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJn
ZVByaW9yaXR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyODk0ZWIzMTYzMDM5ZmQ1NzM3NjViNWYxNzg0NDI2
NTY4OWIyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdl
UHJpb3JpdHkuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHVyZ2VQ
cmlvcml0eV9oCisjZGVmaW5lIFB1cmdlUHJpb3JpdHlfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gUHVyZ2VQcmlvcml0eSB7CisgICAgUHVyZ2VMYXN0LAorICAgIFB1cmdlTWlkZGxl
LAorICAgIFB1cmdlRmlyc3QsCisgICAgUHVyZ2VEZWZhdWx0ID0gUHVyZ2VNaWRkbGUKK307CisK
K30KKworI2VuZGlmIC8vIFB1cmdlUHJpb3JpdHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
dXJnZWFibGVCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWMwNTVkZmMwZjg1OTYzZGEyOGFjNTIxNTUw
ZTlhZTE5YzY3NDU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHVyZ2VhYmxlQnVmZmVyLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFB1cmdlYWJsZUJ1ZmZlcl9o
CisjZGVmaW5lIFB1cmdlYWJsZUJ1ZmZlcl9oCisKKyNpbmNsdWRlICJQdXJnZVByaW9yaXR5Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFB1cmdlYWJsZUJ1ZmZlciB7CisgICAg
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFB1cmdlYWJsZUJ1ZmZlcik7CisgICAgcHVibGljOgor
ICAgICAgICBzdGF0aWMgUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IGNyZWF0ZVVuaW5pdGlh
bGl6ZWQoc2l6ZV90LCBjaGFyKiYgZGF0YSk7CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFB1
cmdlYWJsZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCk7CisgICAgICAg
IAorICAgICAgICB+UHVyZ2VhYmxlQnVmZmVyKCk7CisKKyAgICAgICAgLy8gQ2FsbCBtYWtlUHVy
Z2VhYmxlKGZhbHNlKSBhbmQgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBiZWZvcmUgYWNjZXNzaW5n
IHRoZSBkYXRhLgorICAgICAgICBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3Q7CisgICAgICAgIHNp
emVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgICAgIAorICAgICAgICBQ
dXJnZVByaW9yaXR5IHB1cmdlUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3B1cmdlUHJpb3Jp
dHk7IH0KKyAgICAgICAgdm9pZCBzZXRQdXJnZVByaW9yaXR5KFB1cmdlUHJpb3JpdHkgcHJpb3Jp
dHkpIHsgbV9wdXJnZVByaW9yaXR5ID0gcHJpb3JpdHk7IH0KKyAgICAgICAgCisgICAgICAgIGJv
b2wgaXNQdXJnZWFibGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlICE9IE5vblZvbGF0aWxlOyB9
CisgICAgICAgIGJvb2wgd2FzUHVyZ2VkKCkgY29uc3Q7CisKKyAgICAgICAgYm9vbCBtYWtlUHVy
Z2VhYmxlKGJvb2wgcHVyZ2VhYmxlKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFB1cmdlYWJs
ZUJ1ZmZlcihjaGFyKiBkYXRhLCBzaXplX3QpOworICAgIAorICAgICAgICBjaGFyKiBtX2RhdGE7
CisgICAgICAgIHNpemVfdCBtX3NpemU7CisgICAgICAgIFB1cmdlUHJpb3JpdHkgbV9wdXJnZVBy
aW9yaXR5OworCisgICAgICAgIGVudW0gU3RhdGUgeyBOb25Wb2xhdGlsZSwgVm9sYXRpbGUsIFB1
cmdlZCB9OworICAgICAgICBtdXRhYmxlIFN0YXRlIG1fc3RhdGU7CisgICAgfTsKKworI2lmICFF
TkFCTEUoUFVSR0VBQkxFX01FTU9SWSkKKyAgICBpbmxpbmUgUGFzc093blB0cjxQdXJnZWFibGVC
dWZmZXI+IFB1cmdlYWJsZUJ1ZmZlcjo6Y3JlYXRlVW5pbml0aWFsaXplZChzaXplX3QsIGNoYXIq
JikgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIGlubGluZSBQYXNzT3duUHRyPFB1cmdlYWJsZUJ1
ZmZlcj4gUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgY2hhciosIHNpemVfdCkgeyByZXR1
cm4gbnVsbHB0cjsgfQorICAgIGlubGluZSBQdXJnZWFibGVCdWZmZXI6On5QdXJnZWFibGVCdWZm
ZXIoKSB7IH0KKyAgICBpbmxpbmUgY29uc3QgY2hhciogUHVyZ2VhYmxlQnVmZmVyOjpkYXRhKCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorICAgIGlubGluZSBib29sIFB1cmdlYWJsZUJ1ZmZlcjo6d2Fz
UHVyZ2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBpbmxpbmUgYm9vbCBQdXJnZWFi
bGVCdWZmZXI6Om1ha2VQdXJnZWFibGUoYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgor
ICAgIAorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
CmluZGV4IGM3NGQzZTM0NDY5MjU2YzU0Mzg2M2ZmNzM0M2RhNzYxZjc2NzBhMjYuLmJmNmM5Y2Yw
YTJiOGU1MDA5MWU0YzA2Yjc1OWM5MjVkZWVmZmU0ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2hhcmVkQnVmZmVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCisjaW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVy
LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9V
VEY4Lmg+CiAKQEAgLTY1LDYgKzY2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZyZWVTZWdtZW50
KGNoYXIqIHApCiBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcigpCiAgICAgOiBtX3NpemUoMCkK
ICAgICAsIG1fYnVmZmVyKGFkb3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAgICAsIG1fc2hvdWxk
VXNlUHVyZ2VhYmxlTWVtb3J5KGZhbHNlKQogI2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQog
ICAgICwgbV9pc01lbW9yeU1hcHBlZChmYWxzZSkKICAgICAsIG1fZGlza0ltYWdlQ2FjaGVJZChE
aXNrSW1hZ2VDYWNoZTo6aW52YWxpZERpc2tDYWNoZUlkKQpAQCAtNzcsNiArNzksNyBAQCBTaGFy
ZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcigpCiBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcih1bnNp
Z25lZCBzaXplKQogICAgIDogbV9zaXplKHNpemUpCiAgICAgLCBtX2J1ZmZlcihhZG9wdFJlZihu
ZXcgRGF0YUJ1ZmZlcikpCisgICAgLCBtX3Nob3VsZFVzZVB1cmdlYWJsZU1lbW9yeShmYWxzZSkK
ICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKICAgICAsIG1faXNNZW1vcnlNYXBwZWQoZmFs
c2UpCiAgICAgLCBtX2Rpc2tJbWFnZUNhY2hlSWQoRGlza0ltYWdlQ2FjaGU6OmludmFsaWREaXNr
Q2FjaGVJZCkKQEAgLTg5LDYgKzkyLDcgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIodW5z
aWduZWQgc2l6ZSkKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEs
IHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoMCkKICAgICAsIG1fYnVmZmVyKGFkb3B0UmVm
KG5ldyBEYXRhQnVmZmVyKSkKKyAgICAsIG1fc2hvdWxkVXNlUHVyZ2VhYmxlTWVtb3J5KGZhbHNl
KQogI2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQogICAgICwgbV9pc01lbW9yeU1hcHBlZChm
YWxzZSkKICAgICAsIG1fZGlza0ltYWdlQ2FjaGVJZChEaXNrSW1hZ2VDYWNoZTo6aW52YWxpZERp
c2tDYWNoZUlkKQpAQCAtMTAyLDYgKzEwNiw3IEBAIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVy
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCiBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1
ZmZlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBzaXplKQogICAgIDogbV9z
aXplKDApCiAgICAgLCBtX2J1ZmZlcihhZG9wdFJlZihuZXcgRGF0YUJ1ZmZlcikpCisgICAgLCBt
X3Nob3VsZFVzZVB1cmdlYWJsZU1lbW9yeShmYWxzZSkKICNpZiBFTkFCTEUoRElTS19JTUFHRV9D
QUNIRSkKICAgICAsIG1faXNNZW1vcnlNYXBwZWQoZmFsc2UpCiAgICAgLCBtX2Rpc2tJbWFnZUNh
Y2hlSWQoRGlza0ltYWdlQ2FjaGU6OmludmFsaWREaXNrQ2FjaGVJZCkKQEAgLTEzMiwxMSArMTM3
LDIyIEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmFkb3B0VmVjdG9y
KFZlY3RvcjxjaGFyPiYgdmVjdG9yKQogICAgIHJldHVybiBidWZmZXIucmVsZWFzZSgpOwogfQog
CitQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjphZG9wdFB1cmdlYWJsZUJ1
ZmZlcihQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gcHVyZ2VhYmxlQnVmZmVyKSAKK3sgCisg
ICAgQVNTRVJUKCFwdXJnZWFibGVCdWZmZXItPmlzUHVyZ2VhYmxlKCkpOworICAgIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGNyZWF0ZSgpOworICAgIGJ1ZmZlci0+bV9wdXJnZWFibGVC
dWZmZXIgPSBwdXJnZWFibGVCdWZmZXI7CisgICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7Cit9
CisKIHVuc2lnbmVkIFNoYXJlZEJ1ZmZlcjo6c2l6ZSgpIGNvbnN0CiB7CiAgICAgaWYgKGhhc1Bs
YXRmb3JtRGF0YSgpKQogICAgICAgICByZXR1cm4gcGxhdGZvcm1EYXRhU2l6ZSgpOwogICAgIAor
ICAgIGlmIChtX3B1cmdlYWJsZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG1fcHVyZ2VhYmxlQnVm
ZmVyLT5zaXplKCk7CisgICAgCiAgICAgcmV0dXJuIG1fc2l6ZTsKIH0KIApAQCAtMjAwLDYgKzIx
Niw0NCBAQCB2b2lkIFNoYXJlZEJ1ZmZlcjo6c2V0TWVtb3J5TWFwcGVkTm90aWZpY2F0aW9uQ2Fs
bGJhY2soTWVtb3J5TWFwcGVkTm90aWZ5Q2FsbGJhYwogfQogI2VuZGlmCiAKKy8vIFRyeSB0byBj
cmVhdGUgYSBQdXJnZWFibGVCdWZmZXIuIFdlIGNhbiBmYWlsIHRvIGNyZWF0ZSBvbmUgZm9yIGFu
eSBvZiB0aGUKKy8vIGZvbGxvd2luZyByZWFzb25zOgorLy8gICAtIHNob3VsZFVzZVB1cmdlYWJs
ZU1lbW9yeSBpcyBzZXQgdG8gZmFsc2UuCisvLyAgIC0gdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBp
cyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gc2l6ZSByZXF1aXJlZCBieQorLy8gICAgIFB1cmdlYWJs
ZUJ1ZmZlciAoY3VycmVudGx5IDE2aykuCisvLyAgIC0gUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGVV
bmluaXRpYWxpemVkKCkgY2FsbCBmYWlscy4KK3ZvaWQgU2hhcmVkQnVmZmVyOjpjcmVhdGVQdXJn
ZWFibGVCdWZmZXIoKSBjb25zdAoreworICAgIGlmIChtX3B1cmdlYWJsZUJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGhhc1BsYXRmb3JtRGF0YSgpKQorICAgICAgICByZXR1cm47
CisKKyNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCisgICAgaWYgKHNpbmds
ZURhdGFBcnJheUJ1ZmZlcigpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKworICAgIGlmICgh
bV9idWZmZXItPmhhc09uZVJlZigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fc2hv
dWxkVXNlUHVyZ2VhYmxlTWVtb3J5KQorICAgICAgICByZXR1cm47CisKKyAgICBjaGFyKiBkZXN0
aW5hdGlvbiA9IDA7CisgICAgbV9wdXJnZWFibGVCdWZmZXIgPSBQdXJnZWFibGVCdWZmZXI6OmNy
ZWF0ZVVuaW5pdGlhbGl6ZWQobV9zaXplLCBkZXN0aW5hdGlvbik7CisgICAgaWYgKCFtX3B1cmdl
YWJsZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworICAgIHVuc2lnbmVkIGJ1ZmZlclNpemUgPSBt
X2J1ZmZlci0+ZGF0YS5zaXplKCk7CisgICAgaWYgKGJ1ZmZlclNpemUpIHsKKyAgICAgICAgbWVt
Y3B5KGRlc3RpbmF0aW9uLCBtX2J1ZmZlci0+ZGF0YS5kYXRhKCksIGJ1ZmZlclNpemUpOworICAg
ICAgICBkZXN0aW5hdGlvbiArPSBidWZmZXJTaXplOworICAgICAgICAoY29uc3RfY2FzdDxTaGFy
ZWRCdWZmZXIqPih0aGlzKSktPmNsZWFyRGF0YUJ1ZmZlcigpOworICAgIH0KKyAgICBjb3B5QnVm
ZmVyQW5kQ2xlYXIoZGVzdGluYXRpb24sIG1fc2l6ZSAtIGJ1ZmZlclNpemUpOworfQorCiBjb25z
dCBjaGFyKiBTaGFyZWRCdWZmZXI6OmRhdGEoKSBjb25zdAogewogI2lmIEVOQUJMRShESVNLX0lN
QUdFX0NBQ0hFKQpAQCAtMjE1LDYgKzI2OSwxMSBAQCBjb25zdCBjaGFyKiBTaGFyZWRCdWZmZXI6
OmRhdGEoKSBjb25zdAogICAgICAgICByZXR1cm4gYnVmZmVyOwogI2VuZGlmCiAKKyAgICBjcmVh
dGVQdXJnZWFibGVCdWZmZXIoKTsKKworICAgIGlmIChtX3B1cmdlYWJsZUJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIG1fcHVyZ2VhYmxlQnVmZmVyLT5kYXRhKCk7CisgICAgCiAgICAgcmV0dXJuIHRo
aXMtPmJ1ZmZlcigpLmRhdGEoKTsKIH0KIApAQCAtMjU3LDYgKzMxNiw3IEBAIHZvaWQgU2hhcmVk
QnVmZmVyOjphcHBlbmQoU2hhcmVkQnVmZmVyKiBkYXRhKQogCiB2b2lkIFNoYXJlZEJ1ZmZlcjo6
YXBwZW5kKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKKyAgICBBU1NFUlQo
IW1fcHVyZ2VhYmxlQnVmZmVyKTsKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKICAgICBB
U1NFUlQoIWlzTWVtb3J5TWFwcGVkKCkpOwogI2VuZGlmCkBAIC0zMjYsMTIgKzM4NiwxMyBAQCB2
b2lkIFNoYXJlZEJ1ZmZlcjo6Y2xlYXIoKQogCiAgICAgbV9zaXplID0gMDsKICAgICBjbGVhckRh
dGFCdWZmZXIoKTsKKyAgICBtX3B1cmdlYWJsZUJ1ZmZlci5jbGVhcigpOwogfQogCiBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjb3B5KCkgY29uc3QKIHsKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBjbG9uZShhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKSk7Ci0gICAg
aWYgKGhhc1BsYXRmb3JtRGF0YSgpKSB7CisgICAgaWYgKG1fcHVyZ2VhYmxlQnVmZmVyIHx8IGhh
c1BsYXRmb3JtRGF0YSgpKSB7CiAgICAgICAgIGNsb25lLT5hcHBlbmQoZGF0YSgpLCBzaXplKCkp
OwogICAgICAgICByZXR1cm4gY2xvbmU7CiAgICAgfQpAQCAtMzQ5LDYgKzQxMCwxMiBAQCBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjb3B5KCkgY29uc3QKICAgICByZXR1
cm4gY2xvbmU7CiB9CiAKK1Bhc3NPd25QdHI8UHVyZ2VhYmxlQnVmZmVyPiBTaGFyZWRCdWZmZXI6
OnJlbGVhc2VQdXJnZWFibGVCdWZmZXIoKQoreyAKKyAgICBBU1NFUlQoaGFzT25lUmVmKCkpOyAK
KyAgICByZXR1cm4gbV9wdXJnZWFibGVCdWZmZXIucmVsZWFzZSgpOyAKK30KKwogdm9pZCBTaGFy
ZWRCdWZmZXI6OmR1cGxpY2F0ZURhdGFCdWZmZXJJZk5lY2Vzc2FyeSgpIGNvbnN0CiB7CiAgICAg
aWYgKG1fYnVmZmVyLT5oYXNPbmVSZWYoKSB8fCBtX3NpemUgPD0gbV9idWZmZXItPmRhdGEuY2Fw
YWNpdHkoKSkKQEAgLTQxOSw3ICs0ODYsNyBAQCB1bnNpZ25lZCBTaGFyZWRCdWZmZXI6OmdldFNv
bWVEYXRhKGNvbnN0IGNoYXIqJiBzb21lRGF0YSwgdW5zaWduZWQgcG9zaXRpb24pIGNvbgogICAg
IH0KICNlbmRpZgogCi0gICAgaWYgKGhhc1BsYXRmb3JtRGF0YSgpKSB7CisgICAgaWYgKGhhc1Bs
YXRmb3JtRGF0YSgpIHx8IG1fcHVyZ2VhYmxlQnVmZmVyKSB7CiAgICAgICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHBvc2l0aW9uIDwgc2l6ZSgpKTsKICAgICAgICAgc29tZURh
dGEgPSBkYXRhKCkgKyBwb3NpdGlvbjsKICAgICAgICAgcmV0dXJuIHRvdGFsU2l6ZSAtIHBvc2l0
aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCBhNzkyMmE4ZDky
ZmQ2YTcwYjdlNmZhYjlmMzNkYWJkMmY0MzNhNjk1Li5jNzBjOGFkMmJmMjY5MGQ5MTZjNDBkODQy
OGE4MjY5Y2FjMWEwMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApA
QCAtNDksNiArNDksOCBAQCBPQkpDX0NMQVNTIE5TRGF0YTsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIAorY2xhc3MgUHVyZ2VhYmxlQnVmZmVyOworCiBjbGFzcyBTaGFyZWRCdWZmZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxTaGFyZWRCdWZmZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFy
ZWRCdWZmZXIpOyB9CkBAIC02MCw2ICs2MiwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFkb3B0VmVjdG9yKFZlY3RvcjxjaGFyPiYgdmVjdG9yKTsK
ICAgICAKKyAgICAvLyBUaGUgYnVmZmVyIG11c3QgYmUgaW4gbm9uLXB1cmdlYWJsZSBzdGF0ZSBi
ZWZvcmUgYWRvcHRlZCB0byBhIFNoYXJlZEJ1ZmZlci4gCisgICAgLy8gSXQgd2lsbCBzdGF5IHRo
YXQgd2F5IHVudGlsIHJlbGVhc2VkLgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gYWRvcHRQdXJnZWFibGVCdWZmZXIoUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+KTsKKyAg
ICAKICAgICB+U2hhcmVkQnVmZmVyKCk7CiAgICAgCiAjaWYgVVNFKEZPVU5EQVRJT04pCkBAIC0x
MDQsNiArMTEwLDExIEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBj
b3B5KCkgY29uc3Q7CiAgICAgCisgICAgYm9vbCBoYXNQdXJnZWFibGVCdWZmZXIoKSBjb25zdCB7
IHJldHVybiBtX3B1cmdlYWJsZUJ1ZmZlci5nZXQoKTsgfQorCisgICAgLy8gRW5zdXJlIHRoaXMg
YnVmZmVyIGhhcyBubyBvdGhlciBjbGllbnRzIGJlZm9yZSBjYWxsaW5nIHRoaXMuCisgICAgUGFz
c093blB0cjxQdXJnZWFibGVCdWZmZXI+IHJlbGVhc2VQdXJnZWFibGVCdWZmZXIoKTsKKwogICAg
IC8vIFJldHVybiB0aGUgbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGJ5dGVzIGFmdGVyICJwb3NpdGlv
biIuICJkYXRhIgogICAgIC8vIHBvaW50cyB0byB0aGUgZmlyc3QgYnl0ZS4KICAgICAvLyBSZXR1
cm4gMCB3aGVuIG5vIG1vcmUgZGF0YSBsZWZ0LgpAQCAtMTE4LDYgKzEyOSw4IEBAIHB1YmxpYzoK
ICAgICAvLyAgICAgIH0KICAgICB1bnNpZ25lZCBnZXRTb21lRGF0YShjb25zdCBjaGFyKiYgZGF0
YSwgdW5zaWduZWQgcG9zaXRpb24gPSAwKSBjb25zdDsKIAorICAgIHZvaWQgc2hvdWxkVXNlUHVy
Z2VhYmxlTWVtb3J5KGJvb2wgdXNlKSB7IG1fc2hvdWxkVXNlUHVyZ2VhYmxlTWVtb3J5ID0gdXNl
OyB9CisKICNpZiBFTkFCTEUoRElTS19JTUFHRV9DQUNIRSkKICAgICBlbnVtIE1lbW9yeU1hcHBp
bmdTdGF0ZSB7IFF1ZXVlZEZvck1hcHBpbmcsIFByZXZpb3VzbHlRdWV1ZWRGb3JNYXBwaW5nLCBT
dWNjZXNzQWxyZWFkeU1hcHBlZCwgRmFpbHVyZUNhY2hlRnVsbCB9OwogCkBAIC0xNDIsNiArMTU1
LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWVtb3J5TWFwcGVkTm90aWZpY2F0aW9uQ2FsbGJh
Y2soTWVtb3J5TWFwcGVkTm90aWZ5Q2FsbGJhY2ssIE1lbW9yeU1hcHBlZE5vdGlmeUNhbGxiYWNr
RGF0YSk7CiAjZW5kaWYKIAorICAgIHZvaWQgY3JlYXRlUHVyZ2VhYmxlQnVmZmVyKCkgY29uc3Q7
CisKICAgICB2b2lkIHRyeVJlcGxhY2VDb250ZW50c1dpdGhQbGF0Zm9ybUJ1ZmZlcihTaGFyZWRC
dWZmZXIqKTsKICAgICBib29sIGhhc1BsYXRmb3JtRGF0YSgpIGNvbnN0OwogCkBAIC0xNTgsNiAr
MTczLDggQEAgcHJpdmF0ZToKICAgICAvLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCBmb3Jj
ZSBpbnRlcm5hbCBzZWdtZW50ZWQgYnVmZmVycwogICAgIC8vIHRvIGJlIG1lcmdlZCBpbnRvIGEg
ZmxhdCBidWZmZXIuIFVzZSBnZXRTb21lRGF0YSgpIHdoZW5ldmVyIHBvc3NpYmxlCiAgICAgLy8g
Zm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKyAgICAvLyBBcyB3ZWxsLCBiZSBhd2FyZSB0aGF0IHRo
aXMgbWV0aG9kIGRvZXMgKm5vdCogcmV0dXJuIGFueSBwdXJnZWFibGUKKyAgICAvLyBtZW1vcnks
IHdoaWNoIGNhbiBiZSBhIHNvdXJjZSBvZiBidWdzLgogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiYg
YnVmZmVyKCkgY29uc3Q7CiAKICAgICB2b2lkIGNsZWFyUGxhdGZvcm1EYXRhKCk7CkBAIC0xNzMs
NiArMTkwLDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3NpemU7CiAgICAgbXV0YWJsZSBS
ZWZQdHI8RGF0YUJ1ZmZlcj4gbV9idWZmZXI7CiAKKyAgICBib29sIG1fc2hvdWxkVXNlUHVyZ2Vh
YmxlTWVtb3J5OworICAgIG11dGFibGUgT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gbV9wdXJnZWFi
bGVCdWZmZXI7CiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQogICAgIGV4
cGxpY2l0IFNoYXJlZEJ1ZmZlcihDRkFycmF5UmVmKTsKICAgICBtdXRhYmxlIFZlY3RvcjxSZXRh
aW5QdHI8Q0ZEYXRhUmVmPj4gbV9kYXRhQXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAKaW5kZXggNzgxMTYyNTE5NjAyMzM3NzExMmUyZTgwY2Y1
OTM4MmM2ZGJmZTQyZi4uZGY0ZDY4ZDFiMmFkN2UzMmYyOTlhZDVkOTY4NTg3MzFmNzI0ZDUzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogCisjaW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL2NmL1R5
cGVDYXN0cy5oPgogCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FDSEUpCkBAIC0zOSw2ICs0MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKENGRGF0
YVJlZiBjZkRhdGEpCiAgICAgOiBtX3NpemUoMCkKICAgICAsIG1fYnVmZmVyKGFkb3B0UmVmKG5l
dyBEYXRhQnVmZmVyKSkKKyAgICAsIG1fc2hvdWxkVXNlUHVyZ2VhYmxlTWVtb3J5KGZhbHNlKQog
I2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQogICAgICwgbV9pc01lbW9yeU1hcHBlZChmYWxz
ZSkKICAgICAsIG1fZGlza0ltYWdlQ2FjaGVJZChEaXNrSW1hZ2VDYWNoZTo6aW52YWxpZERpc2tD
YWNoZUlkKQpAQCAtMTI4LDYgKzEzMCw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFy
ZWRCdWZmZXI6OndyYXBDRkRhdGFBcnJheShDRkFycmF5UmVmIGNmRGF0YUFycmF5KQogU2hhcmVk
QnVmZmVyOjpTaGFyZWRCdWZmZXIoQ0ZBcnJheVJlZiBjZkRhdGFBcnJheSkKICAgICA6IG1fc2l6
ZSgwKQogICAgICwgbV9idWZmZXIoYWRvcHRSZWYobmV3IERhdGFCdWZmZXIpKQorICAgICwgbV9z
aG91bGRVc2VQdXJnZWFibGVNZW1vcnkoZmFsc2UpCiAjaWYgRU5BQkxFKERJU0tfSU1BR0VfQ0FD
SEUpCiAgICAgLCBtX2lzTWVtb3J5TWFwcGVkKGZhbHNlKQogICAgICwgbV9kaXNrSW1hZ2VDYWNo
ZUlkKERpc2tJbWFnZUNhY2hlOjppbnZhbGlkRGlza0NhY2hlSWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4
MTRkM2QzNTlmNDZjNzA2NGUzNGI3MGJkMDkwNTNlNWNiNWM3YzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcApAQCAt
MCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoUFVSR0VBQkxFX01FTU9SWSkK
KworI2luY2x1ZGUgIlB1cmdlYWJsZUJ1ZmZlci5oIgorCisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+
CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvVk1UYWdzLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gUHVyZ2VhYmxlIGJ1ZmZlcnMgYXJlIGFsbG9jYXRl
ZCBpbiBtdWx0aXBsZXMgb2YgdGhlIHBhZ2Ugc2l6ZSAoNEtCIGluIGNvbW1vbiBDUFVzKSBzbwor
Ly8gaXQgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdmVyeSBzbWFsbCBidWZmZXJzLiBTZXQgb3Vy
IG1pbmltdW0gc2l6ZSB0byAxNktCLgorc3RhdGljIGNvbnN0IHNpemVfdCBtaW5QdXJnZWFibGVC
dWZmZXJTaXplID0gNCAqIDQwOTY7CisKK1B1cmdlYWJsZUJ1ZmZlcjo6UHVyZ2VhYmxlQnVmZmVy
KGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQorICAgIDogbV9kYXRhKGRhdGEpCisgICAgLCBtX3Np
emUoc2l6ZSkKKyAgICAsIG1fcHVyZ2VQcmlvcml0eShQdXJnZURlZmF1bHQpCisgICAgLCBtX3N0
YXRlKE5vblZvbGF0aWxlKQoreworfQorCitQdXJnZWFibGVCdWZmZXI6On5QdXJnZWFibGVCdWZm
ZXIoKQoreworICAgIHZtX2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgcmVpbnRlcnByZXRf
Y2FzdDx2bV9hZGRyZXNzX3Q+KG1fZGF0YSksIG1fc2l6ZSk7Cit9CisKK1Bhc3NPd25QdHI8UHVy
Z2VhYmxlQnVmZmVyPiBQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoc2l6ZV90
IHNpemUsIGNoYXIqJiBkYXRhKQoreworICAgIGlmIChzaXplIDwgbWluUHVyZ2VhYmxlQnVmZmVy
U2l6ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB2bV9hZGRyZXNzX3QgYnVmZmVy
ID0gMDsKKyAgICBrZXJuX3JldHVybl90IHJldCA9IHZtX2FsbG9jYXRlKG1hY2hfdGFza19zZWxm
KCksICZidWZmZXIsIHNpemUsIFZNX0ZMQUdTX1BVUkdBQkxFIHwgVk1fRkxBR1NfQU5ZV0hFUkUg
fCBWTV9UQUdfRk9SX1dFQkNPUkVfUFVSR0VBQkxFX01FTU9SWSk7CisKKyAgICBBU1NFUlQocmV0
ID09IEtFUk5fU1VDQ0VTUyk7CisgICAgaWYgKHJldCAhPSBLRVJOX1NVQ0NFU1MpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGJ1
ZmZlcik7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQdXJnZWFibGVCdWZmZXIoZGF0YSwgc2l6
ZSkpOworfQorCitQYXNzT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gUHVyZ2VhYmxlQnVmZmVyOjpj
cmVhdGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgY2hhciogZGVzdGlu
YXRpb247CisgICAgT3duUHRyPFB1cmdlYWJsZUJ1ZmZlcj4gcHVyZ2VhYmxlQnVmZmVyID0gUHVy
Z2VhYmxlQnVmZmVyOjpjcmVhdGVVbmluaXRpYWxpemVkKHNpemUsIGRlc3RpbmF0aW9uKTsKKyAg
ICBpZiAoIXB1cmdlYWJsZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgbWVt
Y3B5KGRlc3RpbmF0aW9uLCBkYXRhLCBzaXplKTsKKyAgICByZXR1cm4gcHVyZ2VhYmxlQnVmZmVy
LnJlbGVhc2UoKTsKK30KKworYm9vbCBQdXJnZWFibGVCdWZmZXI6Om1ha2VQdXJnZWFibGUoYm9v
bCBwdXJnZWFibGUpCit7CisgICAgaWYgKHB1cmdlYWJsZSkgeworICAgICAgICBpZiAobV9zdGF0
ZSAhPSBOb25Wb2xhdGlsZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlu
dCB2b2xhdGlsZUdyb3VwOworICAgICAgICBpZiAobV9wdXJnZVByaW9yaXR5ID09IFB1cmdlRmly
c3QpCisgICAgICAgICAgICB2b2xhdGlsZUdyb3VwID0gVk1fVk9MQVRJTEVfR1JPVVBfMDsKKyAg
ICAgICAgZWxzZSBpZiAobV9wdXJnZVByaW9yaXR5ID09IFB1cmdlTWlkZGxlKQorICAgICAgICAg
ICAgdm9sYXRpbGVHcm91cCA9IFZNX1ZPTEFUSUxFX0dST1VQXzQ7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHZvbGF0aWxlR3JvdXAgPSBWTV9WT0xBVElMRV9HUk9VUF83OworICAgICAgICAK
KyAgICAgICAgaW50IHN0YXRlID0gVk1fUFVSR0FCTEVfVk9MQVRJTEUgfCB2b2xhdGlsZUdyb3Vw
OworICAgICAgICAvLyBTbyBhcHBhcmVudGx5ICJwdXJnZWFibGUiIGlzIHRoZSBjb3JyZWN0IHNw
ZWxsaW5nIGFuZCB0aGUgQVBJIGhlcmUgaXMgbWlzc3BlbGxlZC4KKyAgICAgICAga2Vybl9yZXR1
cm5fdCByZXQgPSB2bV9wdXJnYWJsZV9jb250cm9sKG1hY2hfdGFza19zZWxmKCksIHJlaW50ZXJw
cmV0X2Nhc3Q8dm1fYWRkcmVzc190PihtX2RhdGEpLCBWTV9QVVJHQUJMRV9TRVRfU1RBVEUsICZz
dGF0ZSk7CisgICAgICAgIAorICAgICAgICBpZiAocmV0ICE9IEtFUk5fU1VDQ0VTUykgeworICAg
ICAgICAgICAgLy8gSWYgdGhhdCBmYWlsZWQgd2UgaGF2ZSBubyBjbHVlIHdoYXQgc3RhdGUgd2Ug
YXJlIGluIHNvIGFzc3VtZSBwdXJnZWQuCisgICAgICAgICAgICBtX3N0YXRlID0gUHVyZ2VkOwor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1f
c3RhdGUgPSBWb2xhdGlsZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYg
KG1fc3RhdGUgPT0gTm9uVm9sYXRpbGUpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICht
X3N0YXRlID09IFB1cmdlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGludCBz
dGF0ZSA9IFZNX1BVUkdBQkxFX05PTlZPTEFUSUxFOworICAgIGtlcm5fcmV0dXJuX3QgcmV0ID0g
dm1fcHVyZ2FibGVfY29udHJvbChtYWNoX3Rhc2tfc2VsZigpLCByZWludGVycHJldF9jYXN0PHZt
X2FkZHJlc3NfdD4obV9kYXRhKSwgVk1fUFVSR0FCTEVfU0VUX1NUQVRFLCAmc3RhdGUpOworCisg
ICAgaWYgKHJldCAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAgLy8gSWYgdGhhdCBmYWlsZWQg
d2UgaGF2ZSBubyBjbHVlIHdoYXQgc3RhdGUgd2UgYXJlIGluIHNvIGFzc3VtZSBwdXJnZWQuCisg
ICAgICAgIG1fc3RhdGUgPSBQdXJnZWQ7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICBtX3N0YXRlID0gc3RhdGUgJiBWTV9QVVJHQUJMRV9FTVBUWSA/IFB1cmdlZCA6IE5vblZv
bGF0aWxlOworICAgIHJldHVybiBtX3N0YXRlID09IE5vblZvbGF0aWxlOworfQorICAgIAorYm9v
bCBQdXJnZWFibGVCdWZmZXI6Ondhc1B1cmdlZCgpIGNvbnN0Cit7CisgICAgaWYgKG1fc3RhdGUg
PT0gTm9uVm9sYXRpbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9zdGF0ZSA9
PSBQdXJnZWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaW50IHN0YXRlOworICAgIGtl
cm5fcmV0dXJuX3QgcmV0ID0gdm1fcHVyZ2FibGVfY29udHJvbChtYWNoX3Rhc2tfc2VsZigpLCBy
ZWludGVycHJldF9jYXN0PHZtX2FkZHJlc3NfdD4obV9kYXRhKSwgVk1fUFVSR0FCTEVfR0VUX1NU
QVRFLCAmc3RhdGUpOworCisgICAgaWYgKHJldCAhPSBLRVJOX1NVQ0NFU1MpIHsKKyAgICAgICAg
Ly8gSWYgdGhhdCBmYWlsZWQgd2UgaGF2ZSBubyBjbHVlIHdoYXQgc3RhdGUgd2UgYXJlIGluIHNv
IGFzc3VtZSBwdXJnZWQuCisgICAgICAgIG1fc3RhdGUgPSBQdXJnZWQ7CisgICAgICAgIHJldHVy
biB0cnVlOyAgICAgICAgCisgICAgfQorCisgICAgaWYgKHN0YXRlICYgVk1fUFVSR0FCTEVfRU1Q
VFkpIHsKKyAgICAgICAgbV9zdGF0ZSA9IFB1cmdlZDsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorICAgICAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2NvbnN0IGNoYXIqIFB1cmdl
YWJsZUJ1ZmZlcjo6ZGF0YSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gTm9uVm9s
YXRpbGUpOworICAgIHJldHVybiBtX2RhdGE7Cit9CisgICAgCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0KaW5kZXggZTc4ZTM4
YjI2YjI5NmQwYzMxODBmYmI1ZDFjODY2NmRjMWM5ZmE5OC4uNDM4NzRlOTQ3NzM2ZWEyMzRmYmZh
Yzk0NDZkZjM0ODY5ZGJiZTQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1NoYXJlZEJ1ZmZlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2hhcmVkQnVmZmVyTWFjLm1tCkBAIC0xNTIsNiArMTUyLDEyIEBAIFJldGFpblB0cjxDRkRhdGFS
ZWY+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRhKCkKICNlbmRpZgogCiAgICAgZGF0YSgpOyAv
LyBGb3JjZSBkYXRhIGludG8gbV9idWZmZXIgZnJvbSBzZWdtZW50cyBvciBkYXRhIGFycmF5Lgor
ICAgIGlmIChoYXNQdXJnZWFibGVCdWZmZXIoKSkgeworICAgICAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyOjpEYXRhQnVmZmVyPiBjb3BpZWRCdWZmZXIgPSBhZG9wdFJlZihuZXcgRGF0YUJ1ZmZlcik7
CisgICAgICAgIGNvcGllZEJ1ZmZlci0+ZGF0YS5hcHBlbmQoZGF0YSgpLCBzaXplKCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRDRigoQ0ZEYXRhUmVmKWFkb3B0TlMoW1tXZWJDb3JlU2hhcmVkQnVm
ZmVyRGF0YSBhbGxvY10gaW5pdFdpdGhTaGFyZWRCdWZmZXJEYXRhQnVmZmVyOmNvcGllZEJ1ZmZl
ci5nZXQoKV0pLmxlYWtSZWYoKSk7CisgICAgfQorCiAgICAgcmV0dXJuIGFkb3B0Q0YoKENGRGF0
YVJlZilhZG9wdE5TKFtbV2ViQ29yZVNoYXJlZEJ1ZmZlckRhdGEgYWxsb2NdIGluaXRXaXRoU2hh
cmVkQnVmZmVyRGF0YUJ1ZmZlcjptX2J1ZmZlci5nZXQoKV0pLmxlYWtSZWYoKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1NoYXJlZEJ1ZmZlclNvdXAuY3BwCmlu
ZGV4IDM3NzcyZmU4ZmVkNDBjNGRkYzY1ZjFiN2M4Yzk2NmQ0OTQ1NzQ2MGMuLjllMDg1NzZmMWIw
ZWI2NmRiYmM2YmQxNmZlNDRkZjkzNDQ0OTU5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcApAQCAtMjIsNiArMjIsNyBAQAogCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKKyNpbmNsdWRlICJQdXJnZWFibGVCdWZmZXIuaCIK
ICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViQ2FjaGUubW0KaW5kZXggNjFmNmMxZTY3ZGQ2ZjgxN2Q2YmYxOWYwZTZjM2Mz
ZjIxYWEyMzg3My4uNDc2OGQ1OWJmNDdmOWE3MWM4NDI1ZGUzYzg0YTNhZjcyYWE3NjgzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCkBAIC0xMDgsNiArMTA4LDI2IEBACiAjZW5kaWYK
ICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OnMuc2NyaXB0cy5kZWNvZGVkU2l6
ZV0sIEAiSmF2YVNjcmlwdCIsCiAgICAgICAgICAgICBuaWxdLAorICAgICAgICBbTlNEaWN0aW9u
YXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6CisgICAgICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEludDpzLmltYWdlcy5wdXJnZWFibGVTaXplXSwgQCJJbWFnZXMiLAorICAgICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6cy5jc3NTdHlsZVNoZWV0cy5wdXJnZWFibGVT
aXplXSAsQCJDU1MiLAorI2lmIEVOQUJMRShYU0xUKQorICAgICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6cy54c2xTdHlsZVNoZWV0cy5wdXJnZWFibGVTaXplXSwgQCJYU0wiLAorI2Vs
c2UKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OjBdLCBAIlhTTCIsCisjZW5k
aWYKKyAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OnMuc2NyaXB0cy5wdXJnZWFi
bGVTaXplXSwgQCJKYXZhU2NyaXB0IiwKKyAgICAgICAgICAgIG5pbF0sCisgICAgICAgIFtOU0Rp
Y3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKKyAgICAgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoSW50OnMuaW1hZ2VzLnB1cmdlZFNpemVdLCBAIkltYWdlcyIsCisgICAg
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpzLmNzc1N0eWxlU2hlZXRzLnB1cmdlZFNp
emVdICxAIkNTUyIsCisjaWYgRU5BQkxFKFhTTFQpCisgICAgICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEludDpzLnhzbFN0eWxlU2hlZXRzLnB1cmdlZFNpemVdLCBAIlhTTCIsCisjZWxzZQor
ICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6MF0sIEAiWFNMIiwKKyNlbmRpZgor
ICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6cy5zY3JpcHRzLnB1cmdlZFNpemVd
LCBAIkphdmFTY3JpcHQiLAorICAgICAgICAgICAgbmlsXSwKICNpZiBFTkFCTEUoRElTS19JTUFH
RV9DQUNIRSkgJiYgUExBVEZPUk0oSU9TKQogICAgICAgICBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25h
cnlXaXRoT2JqZWN0c0FuZEtleXM6CiAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dDpzLmltYWdlcy5tYXBwZWRTaXplXSwgQCJJbWFnZXMiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ2FjaGUuY3BwCmlu
ZGV4IGQ2NDJkYWRlNjliNGU3M2VkMzI3ZTc5YTZmMjUxNGM1M2YxOGE5NWIuLmQzNDE3ZDNiMzI2
MDc5NzkxNzg4OGM2NWQ4MDhlZWY0MzQ3ODAxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDYWNoZS5jcHAKQEAg
LTIwMiw2ICsyMDIsNTIgQEAgSFJFU1VMVCBXZWJDYWNoZTo6c3RhdGlzdGljcyhpbnQqIGNvdW50
LCBJUHJvcGVydHlCYWcqKiBzKQogICAgIHByb3BCYWctPnNldERpY3Rpb25hcnkoZGljdGlvbmFy
eS5nZXQoKSk7CiAgICAgc1szXSA9IHByb3BCYWcubGVha1JlZigpOwogCisgICAgLy8gUHVyZ2Fi
bGUgU2l6ZXMuCisgICAgZGljdGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0
YWJsZSgwLCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlv
bmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisKKyAgICB2YWx1ZSA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVh
dGUoMCwga0NGTnVtYmVySW50VHlwZSwgJnN0YXQuaW1hZ2VzLnB1cmdlYWJsZVNpemUpKTsKKyAg
ICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkaWN0aW9uYXJ5LmdldCgpLCBpbWFnZXNLZXksIHZhbHVl
LmdldCgpKTsKKworICAgIHZhbHVlID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZSgwLCBrQ0ZOdW1i
ZXJJbnRUeXBlLCAmc3RhdC5jc3NTdHlsZVNoZWV0cy5wdXJnZWFibGVTaXplKSk7CisgICAgQ0ZE
aWN0aW9uYXJ5QWRkVmFsdWUoZGljdGlvbmFyeS5nZXQoKSwgc3R5bGVzaGVldHNLZXksIHZhbHVl
LmdldCgpKTsKKworI2lmIEVOQUJMRShYU0xUKQorICAgIHZhbHVlID0gYWRvcHRDRihDRk51bWJl
ckNyZWF0ZSgwLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmc3RhdC54c2xTdHlsZVNoZWV0cy5wdXJnZWFi
bGVTaXplKSk7CisjZWxzZQorICAgIHZhbHVlID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZSgwLCBr
Q0ZOdW1iZXJJbnRUeXBlLCAmemVybykpOworI2VuZGlmCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoZGljdGlvbmFyeS5nZXQoKSwgeHNsS2V5LCB2YWx1ZS5nZXQoKSk7CisKKyAgICB2YWx1ZSA9
IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJnN0YXQuc2NyaXB0
cy5wdXJnZWFibGVTaXplKSk7CisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGljdGlvbmFyeS5n
ZXQoKSwgc2NyaXB0c0tleSwgdmFsdWUuZ2V0KCkpOworCisgICAgcHJvcEJhZyA9IENGRGljdGlv
bmFyeVByb3BlcnR5QmFnOjpjcmVhdGVJbnN0YW5jZSgpOworICAgIHByb3BCYWctPnNldERpY3Rp
b25hcnkoZGljdGlvbmFyeS5nZXQoKSk7CisgICAgc1s0XSA9IHByb3BCYWcubGVha1JlZigpOwor
CisgICAgLy8gUHVyZ2VkIFNpemVzLgorICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlv
bmFyeUNyZWF0ZU11dGFibGUoMCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworCisgICAgdmFsdWUgPSBhZG9wdENG
KENGTnVtYmVyQ3JlYXRlKDAsIGtDRk51bWJlckludFR5cGUsICZzdGF0LmltYWdlcy5wdXJnZWRT
aXplKSk7CisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGljdGlvbmFyeS5nZXQoKSwgaW1hZ2Vz
S2V5LCB2YWx1ZS5nZXQoKSk7CisKKyAgICB2YWx1ZSA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUo
MCwga0NGTnVtYmVySW50VHlwZSwgJnN0YXQuY3NzU3R5bGVTaGVldHMucHVyZ2VkU2l6ZSkpOwor
ICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRpY3Rpb25hcnkuZ2V0KCksIHN0eWxlc2hlZXRzS2V5
LCB2YWx1ZS5nZXQoKSk7CisKKyNpZiBFTkFCTEUoWFNMVCkKKyAgICB2YWx1ZSA9IGFkb3B0Q0Yo
Q0ZOdW1iZXJDcmVhdGUoMCwga0NGTnVtYmVySW50VHlwZSwgJnN0YXQueHNsU3R5bGVTaGVldHMu
cHVyZ2VkU2l6ZSkpOworI2Vsc2UKKyAgICB2YWx1ZSA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUo
MCwga0NGTnVtYmVySW50VHlwZSwgJnplcm8pKTsKKyNlbmRpZgorICAgIENGRGljdGlvbmFyeUFk
ZFZhbHVlKGRpY3Rpb25hcnkuZ2V0KCksIHhzbEtleSwgdmFsdWUuZ2V0KCkpOworCisgICAgdmFs
dWUgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKDAsIGtDRk51bWJlckludFR5cGUsICZzdGF0LnNj
cmlwdHMucHVyZ2VkU2l6ZSkpOworICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRpY3Rpb25hcnku
Z2V0KCksIHNjcmlwdHNLZXksIHZhbHVlLmdldCgpKTsKKworICAgIHByb3BCYWcgPSBDRkRpY3Rp
b25hcnlQcm9wZXJ0eUJhZzo6Y3JlYXRlSW5zdGFuY2UoKTsKKyAgICBwcm9wQmFnLT5zZXREaWN0
aW9uYXJ5KGRpY3Rpb25hcnkuZ2V0KCkpOworICAgIHNbNV0gPSBwcm9wQmFnLmxlYWtSZWYoKTsK
KwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCBlMmQ3NGUyZjAxZWMyOTZjZTE4MDZjYTNhYjI5YjU2MThjNTFkNzY1Li4y
Y2EyNDFmNGRiY2VhNTRmZTNiOGU1ZGNlYjMxYWM1MzExN2RhNGFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTg4NSw2ICs4ODUsMjAgQEAgc3RhdGljIHZv
aWQgZ2V0V2ViQ29yZU1lbW9yeUNhY2hlU3RhdGlzdGljcyhWZWN0b3I8SGFzaE1hcDxTdHJpbmcs
IHVpbnQ2NF90Pj4mIHIKICAgICBkZWNvZGVkU2l6ZXMuc2V0KHhzbFN0cmluZywgbWVtb3J5Q2Fj
aGVTdGF0aXN0aWNzLnhzbFN0eWxlU2hlZXRzLmRlY29kZWRTaXplKTsKICAgICBkZWNvZGVkU2l6
ZXMuc2V0KGphdmFTY3JpcHRTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy5zY3JpcHRzLmRl
Y29kZWRTaXplKTsKICAgICByZXN1bHQuYXBwZW5kKGRlY29kZWRTaXplcyk7CisgICAgCisgICAg
SGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBwdXJnZWFibGVTaXplczsKKyAgICBwdXJnZWFibGVT
aXplcy5zZXQoaW1hZ2VzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MuaW1hZ2VzLnB1cmdl
YWJsZVNpemUpOworICAgIHB1cmdlYWJsZVNpemVzLnNldChjc3NTdHJpbmcsIG1lbW9yeUNhY2hl
U3RhdGlzdGljcy5jc3NTdHlsZVNoZWV0cy5wdXJnZWFibGVTaXplKTsKKyAgICBwdXJnZWFibGVT
aXplcy5zZXQoeHNsU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MueHNsU3R5bGVTaGVldHMu
cHVyZ2VhYmxlU2l6ZSk7CisgICAgcHVyZ2VhYmxlU2l6ZXMuc2V0KGphdmFTY3JpcHRTdHJpbmcs
IG1lbW9yeUNhY2hlU3RhdGlzdGljcy5zY3JpcHRzLnB1cmdlYWJsZVNpemUpOworICAgIHJlc3Vs
dC5hcHBlbmQocHVyZ2VhYmxlU2l6ZXMpOworICAgIAorICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50
NjRfdD4gcHVyZ2VkU2l6ZXM7CisgICAgcHVyZ2VkU2l6ZXMuc2V0KGltYWdlc1N0cmluZywgbWVt
b3J5Q2FjaGVTdGF0aXN0aWNzLmltYWdlcy5wdXJnZWRTaXplKTsKKyAgICBwdXJnZWRTaXplcy5z
ZXQoY3NzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MuY3NzU3R5bGVTaGVldHMucHVyZ2Vk
U2l6ZSk7CisgICAgcHVyZ2VkU2l6ZXMuc2V0KHhzbFN0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0
aWNzLnhzbFN0eWxlU2hlZXRzLnB1cmdlZFNpemUpOworICAgIHB1cmdlZFNpemVzLnNldChqYXZh
U2NyaXB0U3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3Muc2NyaXB0cy5wdXJnZWRTaXplKTsK
KyAgICByZXN1bHQuYXBwZW5kKHB1cmdlZFNpemVzKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpn
ZXRXZWJDb3JlU3RhdGlzdGljcyh1aW50NjRfdCBjYWxsYmFja0lEKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>