<?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>83299</bug_id>
          
          <creation_ts>2012-04-05 11:47:05 -0700</creation_ts>
          <short_desc>REGRESSION(r113341): bots caught some build errors (Requested by shawnsingh on #webkit).</short_desc>
          <delta_ts>2012-04-05 12:00:32 -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>80806</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>enne</cc>
    
    <cc>shawnsingh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>596750</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 11:47:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/113341 broke the build:
bots caught some build errors (Requested by shawnsingh on #webkit).

This is an automatic bug report generated by the sheriff-bot. 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 case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596752</commentid>
    <comment_count>1</comment_count>
      <attachid>135869</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-05 11:47:53 -0700</bug_when>
    <thetext>Created attachment 135869
ROLLOUT of r113341

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>596770</commentid>
    <comment_count>2</comment_count>
      <attachid>135869</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-05 12:00:25 -0700</bug_when>
    <thetext>Comment on attachment 135869
ROLLOUT of r113341

Clearing flags on attachment: 135869

Committed r113347: &lt;http://trac.webkit.org/changeset/113347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596771</commentid>
    <comment_count>3</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-04-05 12:00:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135869</attachid>
            <date>2012-04-05 11:47:53 -0700</date>
            <delta_ts>2012-04-05 12:00:24 -0700</delta_ts>
            <desc>ROLLOUT of r113341</desc>
            <filename>bug-83299-20120405185055.patch</filename>
            <type>text/plain</type>
            <size>41603</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEyMmQwZTFmZjRiMDkx
ZTZhZmVkZjE5NTQ1ZjcxYmFhZmQyOTA5Zi4uMTE0OTVlYmEzZmY0NThkNTZlNDhmODU1YTcwYzI1
MDc5ZTRiZGNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA0LTA1ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEzMzQxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTMzNDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgzMjk5CisKKyAgICAgICAgYm90cyBjYXVnaHQgc29tZSBidWlsZCBlcnJvcnMg
KFJlcXVlc3RlZCBieSBzaGF3bnNpbmdoIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5kVGlsZVByb2dy
YW1Vbmlmb3Jtcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRy
YXdUaWxlUXVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6aXNTY2Fs
ZU9yVHJhbnNsYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9y
bXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTWF0aFV0aWwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTWF0aFV0aWwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cHJvamVjdFF1YWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjb21wdXRlVW5vY2NsdWRlZENvbnRlbnRSZWN0KToKKwogMjAxMi0wNC0wNSAgWmFu
IERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIG1lZGlhL3RyYWNr
L3RyYWNrLXdlYnZ0dC10YzAwNC1tYWdpYy1oZWFkZXIuaHRtbCBmbGFraWx5IHRpbWVzIG91dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBjODUyOGMyMjM4MzFiNGY0OWUxMmQ2ZWQ1YmRk
ZGMxZTg3MGEzNzUzLi43ZGEyNjY1ZDBhMmUzMWYzNjgyNDE2OGIzNjM1YjVjMjY0NjQ4MjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTA1ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTEzMzQxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMTMzNDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMjk5CisKKyAgICAgICAgYm90cyBjYXVnaHQgc29tZSBidWlsZCBlcnJv
cnMgKFJlcXVlc3RlZCBieSBzaGF3bnNpbmdoIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAg
ICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHA6CisKIDIwMTItMDQtMDUg
IFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBOZWVkIHRvIGNsaXAgdG8gaG9tb2dlbmVvdXMgdz0wIHBsYW5lIHdoZW4gYXBwbHlpbmcg
dHJhbnNmb3Jtcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5NjBmMjUwN2MxNzk5NDUzYzczNDg1MTk5
ZWU5NjA0MGYzMTZlNTA4Li5kODVmZmI3NjMyNWNjNmRmNGFkNzdjNTI0OTRhODZhZDc2ZjM2OWNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNjA3LDggKzM2MDcsNiBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ01hdGhVdGlsLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IDExNTI5NDExMjc4
MmQxYTk2YTlhMDgwNDY0NGViNDRlN2FmYTVhNGEuLjNkMTdiOGVlZGIxYmJkMWI1MzYzNjg2YTNm
OWExZWY0ZDZmNGY5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApA
QCAtNTUsNyArNTUsNiBAQAogI2luY2x1ZGUgImNjL0NDRGVidWdCb3JkZXJEcmF3UXVhZC5oIgog
I2luY2x1ZGUgImNjL0NDTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0
Q29tbW9uLmgiCi0jaW5jbHVkZSAiY2MvQ0NNYXRoVXRpbC5oIgogI2luY2x1ZGUgImNjL0NDUHJv
eHkuaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRlclBhc3MuaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRl
clN1cmZhY2VEcmF3UXVhZC5oIgpAQCAtNTY1LDExICs1NjQsOSBAQCBzdGF0aWMgdm9pZCB0aWxl
VW5pZm9ybUxvY2F0aW9uKFQgcHJvZ3JhbSwgVGlsZVByb2dyYW1Vbmlmb3JtcyYgdW5pZm9ybXMp
CiAgICAgdW5pZm9ybXMuZWRnZUxvY2F0aW9uID0gcHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIoKS5l
ZGdlTG9jYXRpb24oKTsKIH0KIAotc3RhdGljIHZvaWQgZmluZFRpbGVQcm9ncmFtVW5pZm9ybXMo
TGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVyLCBjb25zdCBDQ1RpbGVEcmF3UXVh
ZCogcXVhZCwgVGlsZVByb2dyYW1Vbmlmb3JtcyYgdW5pZm9ybXMsIGJvb2wgcXVhZElzQ2xpcHBl
ZCkKK3N0YXRpYyB2b2lkIGZpbmRUaWxlUHJvZ3JhbVVuaWZvcm1zKExheWVyUmVuZGVyZXJDaHJv
bWl1bSogbGF5ZXJSZW5kZXJlciwgY29uc3QgQ0NUaWxlRHJhd1F1YWQqIHF1YWQsIFRpbGVQcm9n
cmFtVW5pZm9ybXMmIHVuaWZvcm1zKQogewotICAgIC8vIEZvciBub3csIHdlIHNpbXBseSBza2lw
IGFudGktYWxpYXNpbmcgd2l0aCB0aGUgcXVhZCBpcyBjbGlwcGVkLiBUaGlzIG9ubHkgaGFwcGVu
cwotICAgIC8vIG9uIHBlcnNwZWN0aXZlIHRyYW5zZm9ybWVkIGxheWVycyB0aGF0IGdvIHBhcnRp
YWxseSBiZWhpbmQgdGhlIGNhbWVyYS4KLSAgICBpZiAocXVhZC0+aXNBbnRpYWxpYXNlZCgpICYm
ICFxdWFkSXNDbGlwcGVkKSB7CisgICAgaWYgKHF1YWQtPmlzQW50aWFsaWFzZWQoKSkgewogICAg
ICAgICBpZiAocXVhZC0+c3dpenpsZUNvbnRlbnRzKCkpIHsKICAgICAgICAgICAgIGNvbnN0IEND
VGlsZWRMYXllckltcGw6OlByb2dyYW1Td2l6emxlQUEqIHByb2dyYW0gPSBsYXllclJlbmRlcmVy
LT50aWxlclByb2dyYW1Td2l6emxlQUEoKTsKICAgICAgICAgICAgIHRpbGVVbmlmb3JtTG9jYXRp
b24ocHJvZ3JhbSwgdW5pZm9ybXMpOwpAQCAtNjMyLDE3ICs2MjksOCBAQCB2b2lkIExheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6ZHJhd1RpbGVRdWFkKGNvbnN0IENDVGlsZURyYXdRdWFkKiBxdWFkKQog
ICAgIGZsb2F0IGZyYWdtZW50VGV4U2NhbGVYID0gY2xhbXBSZWN0LndpZHRoKCkgLyB0ZXh0dXJl
U2l6ZS53aWR0aCgpOwogICAgIGZsb2F0IGZyYWdtZW50VGV4U2NhbGVZID0gY2xhbXBSZWN0Lmhl
aWdodCgpIC8gdGV4dHVyZVNpemUuaGVpZ2h0KCk7CiAKLQotICAgIEZsb2F0UXVhZCBsb2NhbFF1
YWQ7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZGV2aWNlVHJhbnNmb3JtID0gVHJhbnNmb3Jt
YXRpb25NYXRyaXgod2luZG93TWF0cml4KCkgKiBwcm9qZWN0aW9uTWF0cml4KCkgKiBxdWFkLT5x
dWFkVHJhbnNmb3JtKCkpLnRvMmRUcmFuc2Zvcm0oKTsKLSAgICBpZiAoIWRldmljZVRyYW5zZm9y
bS5pc0ludmVydGlibGUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYm9vbCBjbGlwcGVkID0g
ZmFsc2U7Ci0gICAgRmxvYXRRdWFkIGRldmljZUxheWVyUXVhZCA9IENDTWF0aFV0aWw6Om1hcFF1
YWQoZGV2aWNlVHJhbnNmb3JtLCBGbG9hdFF1YWQocXVhZC0+bGF5ZXJSZWN0KCkpLCBjbGlwcGVk
KTsKLQogICAgIFRpbGVQcm9ncmFtVW5pZm9ybXMgdW5pZm9ybXM7Ci0gICAgZmluZFRpbGVQcm9n
cmFtVW5pZm9ybXModGhpcywgcXVhZCwgdW5pZm9ybXMsIGNsaXBwZWQpOworICAgIGZpbmRUaWxl
UHJvZ3JhbVVuaWZvcm1zKHRoaXMsIHF1YWQsIHVuaWZvcm1zKTsKIAogICAgIEdMQyhjb250ZXh0
KCksIGNvbnRleHQoKS0+dXNlUHJvZ3JhbSh1bmlmb3Jtcy5wcm9ncmFtKSk7CiAgICAgR0xDKGNv
bnRleHQoKSwgY29udGV4dCgpLT51bmlmb3JtMWkodW5pZm9ybXMuc2FtcGxlckxvY2F0aW9uLCAw
KSk7CkBAIC02NTEsOCArNjM5LDEzIEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3
VGlsZVF1YWQoY29uc3QgQ0NUaWxlRHJhd1F1YWQqIHF1YWQpCiAgICAgR0xDKGNvbnRleHQoKSwg
Y29udGV4dCgpLT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLCBxdWFkLT50ZXh0dXJlRmlsdGVy
KCkpKTsKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnRleFBhcmFtZXRlcmkoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19G
SUxURVIsIHF1YWQtPnRleHR1cmVGaWx0ZXIoKSkpOwogCisgICAgRmxvYXRRdWFkIGxvY2FsUXVh
ZDsKKyAgICBpZiAocXVhZC0+aXNBbnRpYWxpYXNlZCgpKSB7CisgICAgICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGRldmljZVRyYW5zZm9ybSA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KHdpbmRvd01h
dHJpeCgpICogcHJvamVjdGlvbk1hdHJpeCgpICogcXVhZC0+cXVhZFRyYW5zZm9ybSgpKS50bzJk
VHJhbnNmb3JtKCk7CisgICAgICAgIGlmICghZGV2aWNlVHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgp
KQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFjbGlwcGVkICYmIHF1YWQtPmlzQW50
aWFsaWFzZWQoKSkgeworICAgICAgICBGbG9hdFF1YWQgZGV2aWNlTGF5ZXJRdWFkID0gZGV2aWNl
VHJhbnNmb3JtLm1hcFF1YWQoRmxvYXRRdWFkKHF1YWQtPmxheWVyUmVjdCgpKSk7CiAKICAgICAg
ICAgQ0NMYXllclF1YWQgZGV2aWNlTGF5ZXJCb3VuZHMgPSBDQ0xheWVyUXVhZChGbG9hdFF1YWQo
ZGV2aWNlTGF5ZXJRdWFkLmJvdW5kaW5nQm94KCkpKTsKICAgICAgICAgZGV2aWNlTGF5ZXJCb3Vu
ZHMuaW5mbGF0ZUFudGlBbGlhc2luZ0Rpc3RhbmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0Q29tbW9uLmNwcAppbmRleCA5NTE3ZTdkMjc1MGJmMGU0YmFlOTc3NzQxMzA4NTc1
ODM3NTQ1YzdkLi40MThkY2ExOTBiM2ViZTY0NGEyNGFjM2VlMjgyYmI1ZjVjOTI5NjJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTM3LDcgKzM3LDYg
QEAKICNpbmNsdWRlICJjYy9DQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJJdGVy
YXRvci5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJTb3J0ZXIuaCIKLSNpbmNsdWRlICJjYy9DQ01h
dGhVdGlsLmgiCiAjaW5jbHVkZSAiY2MvQ0NSZW5kZXJTdXJmYWNlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ1LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSW50UmVjdCBD
Q0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KGNvbnN0IEludFJlY3Qm
IHRhcmdldFN1cmZhY2VSZWN0LCBjb25zdCBJbnRSZWN0JiBsYXllckJvdW5kUmVjdCwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKIHsKICAgICAvLyBJcyB0aGlzIGxheWVy
IGZ1bGx5IGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRhcmdldCBzdXJmYWNlPwotICAgIEludFJlY3Qg
bGF5ZXJJblN1cmZhY2VTcGFjZSA9IENDTWF0aFV0aWw6Om1hcENsaXBwZWRSZWN0KHRyYW5zZm9y
bSwgbGF5ZXJCb3VuZFJlY3QpOworICAgIEludFJlY3QgbGF5ZXJJblN1cmZhY2VTcGFjZSA9IHRy
YW5zZm9ybS5tYXBSZWN0KGxheWVyQm91bmRSZWN0KTsKICAgICBpZiAodGFyZ2V0U3VyZmFjZVJl
Y3QuY29udGFpbnMobGF5ZXJJblN1cmZhY2VTcGFjZSkpCiAgICAgICAgIHJldHVybiBsYXllckJv
dW5kUmVjdDsKIApAQCAtNjAsNyArNTksNyBAQCBJbnRSZWN0IENDTGF5ZXJUcmVlSG9zdENvbW1v
bjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYgdGFyZ2V0U3VyZmFjZQogICAg
IC8vIGF4aXMtYWxpZ25lZCksIGJ1dCBpcyBhIHJlYXNvbmFibGUgZmlsdGVyIG9uIHRoZSBzcGFj
ZSB0byBjb25zaWRlci4KICAgICAvLyBOb24taW52ZXJ0aWJsZSB0cmFuc2Zvcm1zIHdpbGwgY3Jl
YXRlIGFuIGVtcHR5IHJlY3QgaGVyZS4KICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBz
dXJmYWNlVG9MYXllciA9IHRyYW5zZm9ybS5pbnZlcnNlKCk7Ci0gICAgSW50UmVjdCBsYXllclJl
Y3QgPSBlbmNsb3NpbmdJbnRSZWN0KENDTWF0aFV0aWw6OnByb2plY3RDbGlwcGVkUmVjdChzdXJm
YWNlVG9MYXllciwgRmxvYXRSZWN0KG1pbmltYWxTdXJmYWNlUmVjdCkpKTsKKyAgICBJbnRSZWN0
IGxheWVyUmVjdCA9IHN1cmZhY2VUb0xheWVyLnByb2plY3RRdWFkKEZsb2F0UXVhZChGbG9hdFJl
Y3QobWluaW1hbFN1cmZhY2VSZWN0KSkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAgICAgbGF5
ZXJSZWN0LmludGVyc2VjdChsYXllckJvdW5kUmVjdCk7CiAgICAgcmV0dXJuIGxheWVyUmVjdDsK
IH0KQEAgLTcxLDYgKzcwLDcgQEAgc3RhdGljIGJvb2wgaXNTY2FsZU9yVHJhbnNsYXRpb24oY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG0pCiAgICAgICAgICAgICYmICFtLm0yMSgpICYmICFt
Lm0yMygpICYmICFtLm0yNCgpCiAgICAgICAgICAgICYmICFtLm0zMSgpICYmICFtLm0zMigpICYm
ICFtLm00MygpCiAgICAgICAgICAgICYmIG0ubTQ0KCk7CisKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgTGF5ZXJUeXBlPgpAQCAtNDA5LDcgKzQwOSw3IEBAIHN0YXRpYyBib29sIGNhbGN1bGF0ZURy
YXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVy
CiAgICAgICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3JtKGNvbWJpbmVkVHJhbnNmb3JtKTsKICAg
ICAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyhhbmltYXRpbmdUcmFuc2Zv
cm1Ub1RhcmdldCk7CiAgICAgICAgIGxheWVyLT5zZXRTY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5p
bWF0aW5nKGFuaW1hdGluZ1RyYW5zZm9ybVRvU2NyZWVuKTsKLSAgICAgICAgdHJhbnNmb3JtZWRM
YXllclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KENDTWF0aFV0aWw6Om1hcENsaXBwZWRSZWN0KGxh
eWVyLT5kcmF3VHJhbnNmb3JtKCksIGxheWVyUmVjdCkpOworICAgICAgICB0cmFuc2Zvcm1lZExh
eWVyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QobGF5ZXItPmRyYXdUcmFuc2Zvcm0oKS5tYXBSZWN0
KGxheWVyUmVjdCkpOwogCiAgICAgICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eShkcmF3T3BhY2l0
eSk7CiAgICAgICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eUlzQW5pbWF0aW5nKGRyYXdPcGFjaXR5
SXNBbmltYXRpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ01hdGhVdGlsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjI2ZTdjMzI4MjhiZjU0Njg3NDlmZjA0ZGZiMGU3NjU4Y2EwY2JmZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ01hdGhVdGlsLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDI1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0K
LSNpbmNsdWRlICJjYy9DQ01hdGhVdGlsLmgiCi0KLSNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0j
aW5jbHVkZSAiRmxvYXRRdWFkLmgiCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgIlRy
YW5zZm9ybWF0aW9uTWF0cml4LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IEhv
bW9nZW5lb3VzQ29vcmRpbmF0ZSB7Ci0gICAgSG9tb2dlbmVvdXNDb29yZGluYXRlKGRvdWJsZSBu
ZXdYLCBkb3VibGUgbmV3WSwgZG91YmxlIG5ld1osIGRvdWJsZSBuZXdXKQotICAgICAgICA6IHgo
bmV3WCkKLSAgICAgICAgLCB5KG5ld1kpCi0gICAgICAgICwgeihuZXdaKQotICAgICAgICAsIHco
bmV3VykKLSAgICB7Ci0gICAgfQotCi0gICAgYm9vbCBzaG91bGRCZUNsaXBwZWQoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHcgPD0gMDsKLSAgICB9Ci0KLSAgICBGbG9hdFBvaW50IGNh
cnRlc2lhblBvaW50MmQoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKHcgPT0gMSkKLSAgICAg
ICAgICAgIHJldHVybiBGbG9hdFBvaW50KHgsIHkpOwotCi0gICAgICAgIC8vIEZvciBub3csIGJl
Y2F1c2UgdGhpcyBjb2RlIGlzIHVzZWQgcHJpdmF0ZWx5IG9ubHkgYnkgQ0NNYXRoVXRpbCwgaXQg
c2hvdWxkIG5ldmVyIGJlIGNhbGxlZCB3aGVuIHcgPT0gMCwgYW5kIHdlIGRvIG5vdCB5ZXQgbmVl
ZCB0byBoYW5kbGUgdGhhdCBjYXNlLgotICAgICAgICBBU1NFUlQodyk7Ci0gICAgICAgIGRvdWJs
ZSBpbnZXID0gMS4wIC8gdzsKLSAgICAgICAgcmV0dXJuIEZsb2F0UG9pbnQoeCAqIGludlcsIHkg
KiBpbnZXKTsKLSAgICB9Ci0KLSAgICBkb3VibGUgeDsKLSAgICBkb3VibGUgeTsKLSAgICBkb3Vi
bGUgejsKLSAgICBkb3VibGUgdzsKLX07Ci0KLXN0YXRpYyBIb21vZ2VuZW91c0Nvb3JkaW5hdGUg
cHJvamVjdFBvaW50KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHApCi17Ci0gICAgZG91YmxlIHggPSBwLngoKTsKLSAgICBkb3VibGUgeSA9
IHAueSgpOwotICAgIGRvdWJsZSB6ID0gLSh0cmFuc2Zvcm0ubTEzKCkgKiB4ICsgdHJhbnNmb3Jt
Lm0yMygpICogeSArIHRyYW5zZm9ybS5tNDMoKSkgLyB0cmFuc2Zvcm0ubTMzKCk7Ci0gICAgLy8g
aW1wbGljaXQgZGVmaW5pdGlvbiBvZiB3ID0gMTsKLQotICAgIGRvdWJsZSBvdXRYID0geCAqIHRy
YW5zZm9ybS5tMTEoKSArIHkgKiB0cmFuc2Zvcm0ubTIxKCkgKyB6ICogdHJhbnNmb3JtLm0zMSgp
ICsgdHJhbnNmb3JtLm00MSgpOwotICAgIGRvdWJsZSBvdXRZID0geCAqIHRyYW5zZm9ybS5tMTIo
KSArIHkgKiB0cmFuc2Zvcm0ubTIyKCkgKyB6ICogdHJhbnNmb3JtLm0zMigpICsgdHJhbnNmb3Jt
Lm00MigpOwotICAgIGRvdWJsZSBvdXRaID0geCAqIHRyYW5zZm9ybS5tMTMoKSArIHkgKiB0cmFu
c2Zvcm0ubTIzKCkgKyB6ICogdHJhbnNmb3JtLm0zMygpICsgdHJhbnNmb3JtLm00MygpOwotICAg
IGRvdWJsZSBvdXRXID0geCAqIHRyYW5zZm9ybS5tMTQoKSArIHkgKiB0cmFuc2Zvcm0ubTI0KCkg
KyB6ICogdHJhbnNmb3JtLm0zNCgpICsgdHJhbnNmb3JtLm00NCgpOwotCi0gICAgcmV0dXJuIEhv
bW9nZW5lb3VzQ29vcmRpbmF0ZShvdXRYLCBvdXRZLCBvdXRaLCBvdXRXKTsKLX0KLQotc3RhdGlj
IEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSBtYXBQb2ludChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwKQotewotICAgIGRvdWJsZSB4ID0gcC54
KCk7Ci0gICAgZG91YmxlIHkgPSBwLnkoKTsKLSAgICAvLyBpbXBsaWNpdCBkZWZpbml0aW9uIG9m
IHogPSAwOwotICAgIC8vIGltcGxpY2l0IGRlZmluaXRpb24gb2YgdyA9IDE7Ci0KLSAgICBkb3Vi
bGUgb3V0WCA9IHggKiB0cmFuc2Zvcm0ubTExKCkgKyB5ICogdHJhbnNmb3JtLm0yMSgpICsgdHJh
bnNmb3JtLm00MSgpOwotICAgIGRvdWJsZSBvdXRZID0geCAqIHRyYW5zZm9ybS5tMTIoKSArIHkg
KiB0cmFuc2Zvcm0ubTIyKCkgKyB0cmFuc2Zvcm0ubTQyKCk7Ci0gICAgZG91YmxlIG91dFogPSB4
ICogdHJhbnNmb3JtLm0xMygpICsgeSAqIHRyYW5zZm9ybS5tMjMoKSArIHRyYW5zZm9ybS5tNDMo
KTsKLSAgICBkb3VibGUgb3V0VyA9IHggKiB0cmFuc2Zvcm0ubTE0KCkgKyB5ICogdHJhbnNmb3Jt
Lm0yNCgpICsgdHJhbnNmb3JtLm00NCgpOwotCi0gICAgcmV0dXJuIEhvbW9nZW5lb3VzQ29vcmRp
bmF0ZShvdXRYLCBvdXRZLCBvdXRaLCBvdXRXKTsKLX0KLQotc3RhdGljIEhvbW9nZW5lb3VzQ29v
cmRpbmF0ZSBjb21wdXRlQ2xpcHBlZFBvaW50Rm9yRWRnZShjb25zdCBIb21vZ2VuZW91c0Nvb3Jk
aW5hdGUmIGgxLCBjb25zdCBIb21vZ2VuZW91c0Nvb3JkaW5hdGUmIGgyKQotewotICAgIC8vIFBv
aW50cyBoMSBhbmQgaDIgZm9ybSBhIGxpbmUgaW4gNGQsIGFuZCBhbnkgcG9pbnQgb24gdGhhdCBs
aW5lIGNhbiBiZSByZXByZXNlbnRlZAotICAgIC8vIGFzIGFuIGludGVycG9sYXRpb24gYmV0d2Vl
biBoMSBhbmQgaDI6Ci0gICAgLy8gICAgcCA9ICgxLXQpIGgxICsgKHQpIGgyCi0gICAgLy8KLSAg
ICAvLyBXZSB3YW50IHRvIGNvbXB1dGUgcG9pbnQgcCBzdWNoIHRoYXQgcC53ID09IGVwc2lsb24s
IHdoZXJlIGVwc2lsb24gaXMgYSBzbWFsbAotICAgIC8vIG5vbi16ZXJvIG51bWJlci4gKGJ1dCB0
aGUgc21hbGxlciB0aGUgbnVtYmVyIGlzLCB0aGUgaGlnaGVyIHRoZSByaXNrIG9mIG92ZXJmbG93
KQotICAgIC8vIFRvIGRvIHRoaXMsIHdlIHNvbHZlIGZvciB0IGluIHRoZSBmb2xsb3dpbmcgZXF1
YXRpb246Ci0gICAgLy8gICAgcC53ID0gZXBzaWxvbiA9ICgxLXQpICogaDEudyArICh0KSAqIGgy
LncKLSAgICAvLwotICAgIC8vIE9uY2UgcGFyYW10ZXIgdCBpcyBrbm93biwgdGhlIHJlc3Qgb2Yg
cCBjYW4gYmUgY29tcHV0ZWQgdmlhIHAgPSAoMS10KSBoMSArICh0KSBoMi4KLQotICAgIC8vIFRl
Y2huaWNhbGx5IHRoaXMgaXMgYSBzcGVjaWFsIGNhc2Ugb2YgdGhlIGZvbGxvd2luZyBhc3NlcnRp
b24sIGJ1dCBpdHMgYSBnb29kIGlkZWEgdG8ga2VlcCBpdCBhbiBleHBsaWNpdCBzYW5pdHkgY2hl
Y2sgaGVyZS4KLSAgICBBU1NFUlQoaDIudyAhPSBoMS53KTsKLSAgICAvLyBFeGFjdGx5IG9uZSBv
ZiBoMSBvciBoMiAoYnV0IG5vdCBib3RoKSBtdXN0IGJlIG9uIHRoZSBuZWdhdGl2ZSBzaWRlIG9m
IHRoZSB3IHBsYW5lIHdoZW4gdGhpcyBpcyBjYWxsZWQuCi0gICAgQVNTRVJUKGgxLnNob3VsZEJl
Q2xpcHBlZCgpIF4gaDIuc2hvdWxkQmVDbGlwcGVkKCkpOwotCi0gICAgZG91YmxlIHcgPSAwLjAw
MDAxOyAvLyBvciBhbnkgcG9zaXRpdmUgbm9uLXplcm8gc21hbGwgZXBzaWxvbgotCi0gICAgZG91
YmxlIHQgPSAodyAtIGgxLncpIC8gKGgyLncgLSBoMS53KTsKLQotICAgIGRvdWJsZSB4ID0gKDEt
dCkgKiBoMS54ICsgdCAqIGgyLng7Ci0gICAgZG91YmxlIHkgPSAoMS10KSAqIGgxLnkgKyB0ICog
aDIueTsKLSAgICBkb3VibGUgeiA9ICgxLXQpICogaDEueiArIHQgKiBoMi56OwotCi0gICAgcmV0
dXJuIEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSh4LCB5LCB6LCB3KTsKLX0KLQotc3RhdGljIGlubGlu
ZSB2b2lkIGV4cGFuZEJvdW5kc1RvSW5jbHVkZVBvaW50KGZsb2F0JiB4bWluLCBmbG9hdCYgeG1h
eCwgZmxvYXQmIHltaW4sIGZsb2F0JiB5bWF4LCBjb25zdCBGbG9hdFBvaW50JiBwKQotewotICAg
IHhtaW4gPSBzdGQ6Om1pbihwLngoKSwgeG1pbik7Ci0gICAgeG1heCA9IHN0ZDo6bWF4KHAueCgp
LCB4bWF4KTsKLSAgICB5bWluID0gc3RkOjptaW4ocC55KCksIHltaW4pOwotICAgIHltYXggPSBz
dGQ6Om1heChwLnkoKSwgeW1heCk7Ci19Ci0KLXN0YXRpYyBGbG9hdFJlY3QgY29tcHV0ZUVuY2xv
c2luZ1JlY3RPZkNsaXBwZWRRdWFkKGNvbnN0IEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSYgaDEsIGNv
bnN0IEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSYgaDIsIGNvbnN0IEhvbW9nZW5lb3VzQ29vcmRpbmF0
ZSYgaDMsIGNvbnN0IEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSYgaDQpCi17Ci0gICAgLy8gVGhpcyBm
dW5jdGlvbiBwZXJmb3JtcyBjbGlwcGluZyBhcyBuZWNlc3NhcnkgYW5kIGNvbXB1dGVzIHRoZSBl
bmNsb3NpbmcgMmQKLSAgICAvLyBGbG9hdFJlY3Qgb2YgdGhlIHZlcnRpY2VzLiBEb2luZyB0aGVz
ZSB0d28gc3RlcHMgc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIGF2b2lkCi0gICAgLy8gdGhl
IG92ZXJoZWFkIG9mIHN0b3JpbmcgYW4gdW5rbm93biBudW1iZXIgb2YgY2xpcHBlZCB2ZXJ0aWNl
cy4KLQotICAgIGZsb2F0IHhtaW4gPSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCk7
Ci0gICAgZmxvYXQgeG1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKTsKLSAg
ICBmbG9hdCB5bWluID0gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpOwotICAgIGZs
b2F0IHltYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWluKCk7Ci0KLSAgICBpZiAo
IWgxLnNob3VsZEJlQ2xpcHBlZCgpKQotICAgICAgICBleHBhbmRCb3VuZHNUb0luY2x1ZGVQb2lu
dCh4bWluLCB4bWF4LCB5bWluLCB5bWF4LCBoMS5jYXJ0ZXNpYW5Qb2ludDJkKCkpOwotCi0gICAg
aWYgKGgxLnNob3VsZEJlQ2xpcHBlZCgpIF4gaDIuc2hvdWxkQmVDbGlwcGVkKCkpCi0gICAgICAg
IGV4cGFuZEJvdW5kc1RvSW5jbHVkZVBvaW50KHhtaW4sIHhtYXgsIHltaW4sIHltYXgsIGNvbXB1
dGVDbGlwcGVkUG9pbnRGb3JFZGdlKGgxLCBoMikuY2FydGVzaWFuUG9pbnQyZCgpKTsKLQotICAg
IGlmICghaDIuc2hvdWxkQmVDbGlwcGVkKCkpCi0gICAgICAgIGV4cGFuZEJvdW5kc1RvSW5jbHVk
ZVBvaW50KHhtaW4sIHhtYXgsIHltaW4sIHltYXgsIGgyLmNhcnRlc2lhblBvaW50MmQoKSk7Ci0K
LSAgICBpZiAoaDIuc2hvdWxkQmVDbGlwcGVkKCkgXiBoMy5zaG91bGRCZUNsaXBwZWQoKSkKLSAg
ICAgICAgZXhwYW5kQm91bmRzVG9JbmNsdWRlUG9pbnQoeG1pbiwgeG1heCwgeW1pbiwgeW1heCwg
Y29tcHV0ZUNsaXBwZWRQb2ludEZvckVkZ2UoaDIsIGgzKS5jYXJ0ZXNpYW5Qb2ludDJkKCkpOwot
Ci0gICAgaWYgKCFoMy5zaG91bGRCZUNsaXBwZWQoKSkKLSAgICAgICAgZXhwYW5kQm91bmRzVG9J
bmNsdWRlUG9pbnQoeG1pbiwgeG1heCwgeW1pbiwgeW1heCwgaDMuY2FydGVzaWFuUG9pbnQyZCgp
KTsKLQotICAgIGlmIChoMy5zaG91bGRCZUNsaXBwZWQoKSBeIGg0LnNob3VsZEJlQ2xpcHBlZCgp
KQotICAgICAgICBleHBhbmRCb3VuZHNUb0luY2x1ZGVQb2ludCh4bWluLCB4bWF4LCB5bWluLCB5
bWF4LCBjb21wdXRlQ2xpcHBlZFBvaW50Rm9yRWRnZShoMywgaDQpLmNhcnRlc2lhblBvaW50MmQo
KSk7Ci0KLSAgICBpZiAoIWg0LnNob3VsZEJlQ2xpcHBlZCgpKQotICAgICAgICBleHBhbmRCb3Vu
ZHNUb0luY2x1ZGVQb2ludCh4bWluLCB4bWF4LCB5bWluLCB5bWF4LCBoNC5jYXJ0ZXNpYW5Qb2lu
dDJkKCkpOwotCi0gICAgaWYgKGg0LnNob3VsZEJlQ2xpcHBlZCgpIF4gaDEuc2hvdWxkQmVDbGlw
cGVkKCkpCi0gICAgICAgIGV4cGFuZEJvdW5kc1RvSW5jbHVkZVBvaW50KHhtaW4sIHhtYXgsIHlt
aW4sIHltYXgsIGNvbXB1dGVDbGlwcGVkUG9pbnRGb3JFZGdlKGg0LCBoMSkuY2FydGVzaWFuUG9p
bnQyZCgpKTsKLQotICAgIHJldHVybiBGbG9hdFJlY3QoRmxvYXRQb2ludCh4bWluLCB5bWluKSwg
RmxvYXRTaXplKHhtYXggLSB4bWluLCB5bWF4IC0geW1pbikpOwotfQotCi1zdGF0aWMgRmxvYXRS
ZWN0IGNvbXB1dGVFbmNsb3NpbmdSZWN0KGNvbnN0IEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSYgaDEs
IGNvbnN0IEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSYgaDIsIGNvbnN0IEhvbW9nZW5lb3VzQ29vcmRp
bmF0ZSYgaDMsIGNvbnN0IEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSYgaDQpCi17Ci0gICAgLy8gSWYg
bm8gdmVydGljZXMgb24gdGhlIHF1YWQgYXJlIGNsaXBwZWQsIHRoZW4gd2UgY2FuIHNpbXBseSBy
ZXR1cm4gdGhlIGVuY2xvc2luZyByZWN0IGRpcmVjdGx5LgotICAgIGJvb2wgY2xpcHBlZCA9IGgx
LnNob3VsZEJlQ2xpcHBlZCgpIHx8IGgyLnNob3VsZEJlQ2xpcHBlZCgpIHx8IGgzLnNob3VsZEJl
Q2xpcHBlZCgpIHx8IGg0LnNob3VsZEJlQ2xpcHBlZCgpOwotICAgIGlmICghY2xpcHBlZCkgewot
ICAgICAgICBGbG9hdFF1YWQgbWFwcGVkUXVhZCA9IEZsb2F0UXVhZChoMS5jYXJ0ZXNpYW5Qb2lu
dDJkKCksIGgyLmNhcnRlc2lhblBvaW50MmQoKSwgaDMuY2FydGVzaWFuUG9pbnQyZCgpLCBoNC5j
YXJ0ZXNpYW5Qb2ludDJkKCkpOwotICAgICAgICByZXR1cm4gbWFwcGVkUXVhZC5ib3VuZGluZ0Jv
eCgpOwotICAgIH0KLQotICAgIHJldHVybiBjb21wdXRlRW5jbG9zaW5nUmVjdE9mQ2xpcHBlZFF1
YWQoaDEsIGgyLCBoMywgaDQpOwotfQotCi1JbnRSZWN0IENDTWF0aFV0aWw6Om1hcENsaXBwZWRS
ZWN0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFJlY3Qm
IHNyY1JlY3QpCi17Ci0gICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QobWFwQ2xpcHBlZFJlY3Qo
dHJhbnNmb3JtLCBGbG9hdFJlY3Qoc3JjUmVjdCkpKTsKLX0KLQotRmxvYXRSZWN0IENDTWF0aFV0
aWw6Om1hcENsaXBwZWRSZWN0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0s
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCkKLXsKLSAgICBpZiAodHJhbnNmb3JtLmlzSWRlbnRp
dHlPclRyYW5zbGF0aW9uKCkpIHsKLSAgICAgICAgRmxvYXRSZWN0IG1hcHBlZFJlY3Qoc3JjUmVj
dCk7Ci0gICAgICAgIG1hcHBlZFJlY3QubW92ZShzdGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3Jt
Lm00MSgpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRyYW5zZm9ybS5tNDIoKSkpOwotICAgICAgICBy
ZXR1cm4gbWFwcGVkUmVjdDsKLSAgICB9Ci0KLSAgICAvLyBBcHBseSB0aGUgdHJhbnNmb3JtLCBi
dXQgcmV0YWluIHRoZSByZXN1bHQgaW4gaG9tb2dlbmVvdXMgY29vcmRpbmF0ZXMuCi0gICAgRmxv
YXRRdWFkIHEgPSBGbG9hdFF1YWQoRmxvYXRSZWN0KHNyY1JlY3QpKTsKLSAgICBIb21vZ2VuZW91
c0Nvb3JkaW5hdGUgaDEgPSBtYXBQb2ludCh0cmFuc2Zvcm0sIHEucDEoKSk7Ci0gICAgSG9tb2dl
bmVvdXNDb29yZGluYXRlIGgyID0gbWFwUG9pbnQodHJhbnNmb3JtLCBxLnAyKCkpOwotICAgIEhv
bW9nZW5lb3VzQ29vcmRpbmF0ZSBoMyA9IG1hcFBvaW50KHRyYW5zZm9ybSwgcS5wMygpKTsKLSAg
ICBIb21vZ2VuZW91c0Nvb3JkaW5hdGUgaDQgPSBtYXBQb2ludCh0cmFuc2Zvcm0sIHEucDQoKSk7
Ci0KLSAgICByZXR1cm4gY29tcHV0ZUVuY2xvc2luZ1JlY3QoaDEsIGgyLCBoMywgaDQpOwotfQot
Ci1GbG9hdFJlY3QgQ0NNYXRoVXRpbDo6cHJvamVjdENsaXBwZWRSZWN0KGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCkKLXsKLSAg
ICAvLyBQZXJmb3JtIHRoZSBwcm9qZWN0aW9uLCBidXQgcmV0YWluIHRoZSByZXN1bHQgaW4gaG9t
b2dlbmVvdXMgY29vcmRpbmF0ZXMuCi0gICAgRmxvYXRRdWFkIHEgPSBGbG9hdFF1YWQoRmxvYXRS
ZWN0KHNyY1JlY3QpKTsKLSAgICBIb21vZ2VuZW91c0Nvb3JkaW5hdGUgaDEgPSBwcm9qZWN0UG9p
bnQodHJhbnNmb3JtLCBxLnAxKCkpOwotICAgIEhvbW9nZW5lb3VzQ29vcmRpbmF0ZSBoMiA9IHBy
b2plY3RQb2ludCh0cmFuc2Zvcm0sIHEucDIoKSk7Ci0gICAgSG9tb2dlbmVvdXNDb29yZGluYXRl
IGgzID0gcHJvamVjdFBvaW50KHRyYW5zZm9ybSwgcS5wMygpKTsKLSAgICBIb21vZ2VuZW91c0Nv
b3JkaW5hdGUgaDQgPSBwcm9qZWN0UG9pbnQodHJhbnNmb3JtLCBxLnA0KCkpOwotCi0gICAgcmV0
dXJuIGNvbXB1dGVFbmNsb3NpbmdSZWN0KGgxLCBoMiwgaDMsIGg0KTsKLX0KLQotRmxvYXRRdWFk
IENDTWF0aFV0aWw6Om1hcFF1YWQoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgRmxvYXRRdWFkJiBxLCBib29sJiBjbGlwcGVkKQotewotICAgIGlmICh0cmFuc2Zv
cm0uaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSkgewotICAgICAgICBGbG9hdFF1YWQgbWFwcGVk
UXVhZChxKTsKLSAgICAgICAgbWFwcGVkUXVhZC5tb3ZlKHN0YXRpY19jYXN0PGZsb2F0Pih0cmFu
c2Zvcm0ubTQxKCkpLCBzdGF0aWNfY2FzdDxmbG9hdD4odHJhbnNmb3JtLm00MigpKSk7Ci0gICAg
ICAgIHJldHVybiBtYXBwZWRRdWFkOwotICAgIH0KLQotICAgIEhvbW9nZW5lb3VzQ29vcmRpbmF0
ZSBoMSA9IG1hcFBvaW50KHRyYW5zZm9ybSwgcS5wMSgpKTsKLSAgICBIb21vZ2VuZW91c0Nvb3Jk
aW5hdGUgaDIgPSBtYXBQb2ludCh0cmFuc2Zvcm0sIHEucDIoKSk7Ci0gICAgSG9tb2dlbmVvdXND
b29yZGluYXRlIGgzID0gbWFwUG9pbnQodHJhbnNmb3JtLCBxLnAzKCkpOwotICAgIEhvbW9nZW5l
b3VzQ29vcmRpbmF0ZSBoNCA9IG1hcFBvaW50KHRyYW5zZm9ybSwgcS5wNCgpKTsKLQotICAgIGNs
aXBwZWQgPSBoMS5zaG91bGRCZUNsaXBwZWQoKSB8fCBoMi5zaG91bGRCZUNsaXBwZWQoKSB8fCBo
My5zaG91bGRCZUNsaXBwZWQoKSB8fCBoNC5zaG91bGRCZUNsaXBwZWQoKTsKLQotICAgIC8vIFJl
c3VsdCB3aWxsIGJlIGludmFsaWQgaWYgY2xpcHBlZCA9PSB0cnVlLiBCdXQsIGNvbXB1dGUgaXQg
YW55d2F5IGp1c3QgaW4gY2FzZSwgdG8gZW11bGF0ZSBleGlzdGluZyBiZWhhdmlvci4KLSAgICBy
ZXR1cm4gRmxvYXRRdWFkKGgxLmNhcnRlc2lhblBvaW50MmQoKSwgaDIuY2FydGVzaWFuUG9pbnQy
ZCgpLCBoMy5jYXJ0ZXNpYW5Qb2ludDJkKCksIGg0LmNhcnRlc2lhblBvaW50MmQoKSk7Ci19Ci0K
LUZsb2F0UXVhZCBDQ01hdGhVdGlsOjpwcm9qZWN0UXVhZChjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFF1YWQmIHEsIGJvb2wmIGNsaXBwZWQpCi17Ci0g
ICAgRmxvYXRRdWFkIHByb2plY3RlZFF1YWQ7Ci0gICAgYm9vbCBjbGlwcGVkUG9pbnQ7Ci0gICAg
cHJvamVjdGVkUXVhZC5zZXRQMSh0cmFuc2Zvcm0ucHJvamVjdFBvaW50KHEucDEoKSwgJmNsaXBw
ZWRQb2ludCkpOwotICAgIGNsaXBwZWQgPSBjbGlwcGVkUG9pbnQ7Ci0gICAgcHJvamVjdGVkUXVh
ZC5zZXRQMih0cmFuc2Zvcm0ucHJvamVjdFBvaW50KHEucDIoKSwgJmNsaXBwZWRQb2ludCkpOwot
ICAgIGNsaXBwZWQgfD0gY2xpcHBlZFBvaW50OwotICAgIHByb2plY3RlZFF1YWQuc2V0UDModHJh
bnNmb3JtLnByb2plY3RQb2ludChxLnAzKCksICZjbGlwcGVkUG9pbnQpKTsKLSAgICBjbGlwcGVk
IHw9IGNsaXBwZWRQb2ludDsKLSAgICBwcm9qZWN0ZWRRdWFkLnNldFA0KHRyYW5zZm9ybS5wcm9q
ZWN0UG9pbnQocS5wNCgpLCAmY2xpcHBlZFBvaW50KSk7Ci0gICAgY2xpcHBlZCB8PSBjbGlwcGVk
UG9pbnQ7Ci0KLSAgICByZXR1cm4gcHJvamVjdGVkUXVhZDsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NNYXRoVXRpbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NNYXRoVXRpbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
OWQwMzllODYwNjc3Nzc3YmUyNzYxMWNjNGVmM2MzZTg5NzczNjJlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTWF0aFV0aWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ0NNYXRoVXRpbF9oCi0jZGVmaW5lIENDTWF0
aFV0aWxfaAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBG
bG9hdFJlY3Q7Ci1jbGFzcyBGbG9hdFF1YWQ7Ci1jbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsK
LQotLy8gVGhpcyBjbGFzcyBjb250YWlucyBtYXRoIGhlbHBlciBmdW5jdGlvbmFsaXR5IHRoYXQg
ZG9lcyBub3QgYmVsb25nIGluIFdlYkNvcmUuCi0vLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoaXMg
ZnVuY3Rpb25hbGl0eSBzaG91bGQgYmUgbWlncmF0ZWQgdG8gV2ViQ29yZSBldmVudHVhbGx5Lgot
Y2xhc3MgQ0NNYXRoVXRpbCB7Ci1wdWJsaWM6Ci0KLSAgICAvLyBCYWNrZ3JvdW5kOiBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBjb2RlIGluIFdlYkNvcmUgZG9lcyBub3QgZG8gdGhlIHJpZ2h0IHRoaW5n
IGluCi0gICAgLy8gbWFwUmVjdCAvIG1hcFF1YWQgLyBwcm9qZWN0UXVhZCB3aGVuIHRoZXJlIGlz
IGEgcGVyc3BlY3RpdmUgcHJvamVjdGlvbiB0aGF0IGNhdXNlcwotICAgIC8vIG9uZSBvZiB0aGUg
dHJhbnNmb3JtZWQgdmVydGljZXMgdG8gZ28gdG8gdyA8IDAuIEluIHRob3NlIGNhc2VzLCBpdCBp
cyBuZWNlc3NhcnkgdG8KLSAgICAvLyBwZXJmb3JtIGNsaXBwaW5nIGluIGhvbW9nZW5lb3VzIGNv
b3JkaW5hdGVzLCBhZnRlciBhcHBseWluZyB0aGUgdHJhbnNmb3JtLCBiZWZvcmUKLSAgICAvLyBk
aXZpZGluZy1ieS13IHRvIGNvbnZlcnQgdG8gY2FydGVzaWFuIGNvb3JkaW5hdGVzLgotICAgIC8v
Ci0gICAgLy8gVGhlc2UgZnVuY3Rpb25zIHJldHVybiB0aGUgYXhpcy1hbGlnbmVkIHJlY3QgdGhh
dCBlbmNsb3NlcyB0aGUgY29ycmVjdGx5IGNsaXBwZWQsCi0gICAgLy8gdHJhbnNmb3JtZWQgcG9s
eWdvbi4KLSAgICBzdGF0aWMgSW50UmVjdCBtYXBDbGlwcGVkUmVjdChjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYsIGNvbnN0IEludFJlY3QmKTsKLSAgICBzdGF0aWMgRmxvYXRSZWN0IG1hcENs
aXBwZWRSZWN0KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0Jik7
Ci0gICAgc3RhdGljIEZsb2F0UmVjdCBwcm9qZWN0Q2xpcHBlZFJlY3QoY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmKTsKLQotICAgIC8vIE5PVEU6IFRoaXMgZnVu
Y3Rpb24gZG9lcyBub3QgZG8gY29ycmVjdCBjbGlwcGluZyBhZ2FpbnN0IHcgPSAwIHBsYW5lLCBi
dXQgaXQKLSAgICAvLyBjb3JyZWN0bHkgZGV0ZWN0cyB0aGUgY2xpcHBlZCBjb25kaXRpb24gdmlh
IHRoZSBib29sZWFuIGNsaXBwZWQuCi0gICAgc3RhdGljIEZsb2F0UXVhZCBtYXBRdWFkKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRRdWFkJiwgYm9vbCYgY2xpcHBlZCk7
Ci0gICAgc3RhdGljIEZsb2F0UXVhZCBwcm9qZWN0UXVhZChjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsIGNvbnN0IEZsb2F0UXVhZCYsIGJvb2wmIGNsaXBwZWQpOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gI2RlZmluZSBDQ01hdGhVdGlsX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVz
aW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwCmluZGV4IGUwNGFkZmEzMTM2YTRmMDllZWEyOGQ4
YjIwNTFhM2ZiNDZjNjc3M2UuLmE1NDExZWNjZjc2MTUxZWEzYmYwMDM1Y2Y5OThkMGJjYmRiMzI3
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcApAQCAtMzEsNyArMzEs
NiBAQAogCiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJJ
bXBsLmgiCi0jaW5jbHVkZSAiY2MvQ0NNYXRoVXRpbC5oIgogCiAjaW5jbHVkZSA8YWxnb3JpdGht
PgogCkBAIC0yNzYsNiArMjc1LDIyIEBAIHN0YXRpYyBpbmxpbmUgSW50UmVjdCByZWN0U3VidHJh
Y3RSZWdpb24oY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgUmVnaW9uJiByZWdpCiAgICAgcmV0
dXJuIGJvdW5kc1JlY3Q7CiB9CiAKK3N0YXRpYyBGbG9hdFF1YWQgcHJvamVjdFF1YWQoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRRdWFkJiBxLCBib29s
JiBjbGFtcGVkKQoreworICAgIEZsb2F0UXVhZCBwcm9qZWN0ZWRRdWFkOworICAgIGJvb2wgY2xh
bXBlZFBvaW50OworICAgIHByb2plY3RlZFF1YWQuc2V0UDEodHJhbnNmb3JtLnByb2plY3RQb2lu
dChxLnAxKCksICZjbGFtcGVkUG9pbnQpKTsKKyAgICBjbGFtcGVkID0gY2xhbXBlZFBvaW50Owor
ICAgIHByb2plY3RlZFF1YWQuc2V0UDIodHJhbnNmb3JtLnByb2plY3RQb2ludChxLnAyKCksICZj
bGFtcGVkUG9pbnQpKTsKKyAgICBjbGFtcGVkIHw9IGNsYW1wZWRQb2ludDsKKyAgICBwcm9qZWN0
ZWRRdWFkLnNldFAzKHRyYW5zZm9ybS5wcm9qZWN0UG9pbnQocS5wMygpLCAmY2xhbXBlZFBvaW50
KSk7CisgICAgY2xhbXBlZCB8PSBjbGFtcGVkUG9pbnQ7CisgICAgcHJvamVjdGVkUXVhZC5zZXRQ
NCh0cmFuc2Zvcm0ucHJvamVjdFBvaW50KHEucDQoKSwgJmNsYW1wZWRQb2ludCkpOworICAgIGNs
YW1wZWQgfD0gY2xhbXBlZFBvaW50OworCisgICAgcmV0dXJuIHByb2plY3RlZFF1YWQ7Cit9CisK
IHN0YXRpYyBpbmxpbmUgSW50UmVjdCBjb21wdXRlVW5vY2NsdWRlZENvbnRlbnRSZWN0KGNvbnN0
IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgY29udGVu
dFNwYWNlVHJhbnNmb3JtLCBjb25zdCBJbnRSZWN0JiBzY2lzc29yUmVjdCwgY29uc3QgUmVnaW9u
JiBvY2NsdXNpb24pCiB7CiAgICAgaWYgKCFjb250ZW50U3BhY2VUcmFuc2Zvcm0uaXNJbnZlcnRp
YmxlKCkpCkBAIC0yODQsOSArMjk5LDkgQEAgc3RhdGljIGlubGluZSBJbnRSZWN0IGNvbXB1dGVV
bm9jY2x1ZGVkQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGMKICAgICBG
bG9hdFJlY3QgdHJhbnNmb3JtZWRSZWN0ID0gY29udGVudFNwYWNlVHJhbnNmb3JtLm1hcFJlY3Qo
RmxvYXRSZWN0KGNvbnRlbnRSZWN0KSk7CiAgICAgLy8gVGFrZSB0aGUgZW5jbG9zaW5nSW50UmVj
dCBhdCBlYWNoIHN0ZXAsIGFzIHdlIHdhbnQgdG8gY29udGFpbiBhbnkgdW5vY2NsdWRlZCBwYXJ0
aWFsIHBpeGVscyBpbiB0aGUgcmVzdWx0aW5nIEludFJlY3QuCiAgICAgSW50UmVjdCBzaHJ1bmtS
ZWN0ID0gcmVjdFN1YnRyYWN0UmVnaW9uKGludGVyc2VjdGlvbihlbmNsb3NpbmdJbnRSZWN0KHRy
YW5zZm9ybWVkUmVjdCksIHNjaXNzb3JSZWN0KSwgb2NjbHVzaW9uKTsKLSAgICBib29sIGNsaXBw
ZWQ7IC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgcHJvamVjdENsaXBwZWRRdWFk
IGluc3RlYWQgb2YgZm9yY2luZyBldmVyeXRoaW5nIHRvIGJlIHVub2NjbHVkZWQuIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzIxNy4KLSAgICBJbnRSZWN0IHVub2Nj
bHVkZWRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChDQ01hdGhVdGlsOjpwcm9qZWN0UXVhZChjb250
ZW50U3BhY2VUcmFuc2Zvcm0uaW52ZXJzZSgpLCBGbG9hdFF1YWQoRmxvYXRSZWN0KHNocnVua1Jl
Y3QpKSwgY2xpcHBlZCkuYm91bmRpbmdCb3goKSk7Ci0gICAgaWYgKGNsaXBwZWQpCisgICAgYm9v
bCBjbGFtcGVkOyAvLyBGSVhNRTogcHJvamVjdFF1YWQgcmV0dXJucyBpbnZhbGlkIHJlc3VsdHMg
d2hlbiBhIHBvaW50IGdldHMgY2xhbXBlZC4gVG8gYmUgZml4ZWQgaW4gYnVnIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDgwNi4KKyAgICBJbnRSZWN0IHVub2NjbHVk
ZWRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChwcm9qZWN0UXVhZChjb250ZW50U3BhY2VUcmFuc2Zv
cm0uaW52ZXJzZSgpLCBGbG9hdFF1YWQoRmxvYXRSZWN0KHNocnVua1JlY3QpKSwgY2xhbXBlZCku
Ym91bmRpbmdCb3goKSk7CisgICAgaWYgKGNsYW1wZWQpCiAgICAgICAgIHJldHVybiBjb250ZW50
UmVjdDsKICAgICAvLyBUaGUgcmVjdCBiYWNrIGluIGNvbnRlbnQgc3BhY2UgaXMgYSBib3VuZGlu
ZyBib3ggYW5kIG1heSBleHRlbmQgb3V0c2lkZSBvZiB0aGUgb3JpZ2luYWwgY29udGVudFJlY3Qs
IHNvIGNsYW1wIGl0IHRvIHRoZSBjb250ZW50UmVjdEJvdW5kcy4KICAgICByZXR1cm4gaW50ZXJz
ZWN0aW9uKHVub2NjbHVkZWRSZWN0LCBjb250ZW50UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcApp
bmRleCBmNmExY2ViNTBjMmUwMTBjZjVjZjJjZjQ5Njc1ZTI0MDliNDZlYjYyLi40YTk2NTlkZGQx
NTNlZmY2ZTY3NTJlYTIwNzA2ZTIzYzdlMTI0YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKQEAg
LTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1
ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiY2MvQ0NNYXRoVXRpbC5oIgogCiAjaW5j
bHVkZSA8Z21vY2svZ21vY2suaD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgpAQCAtOTgwLDI2
NCArOTc5LDYgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlBbmltYXRp
b25zRm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNoeSkKICAgICBFWFBFQ1RfRkxPQVRfRVEoNS4wLCBn
cmFuZENoaWxkT2ZSUzItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCkubTQyKCkpOwogfQogCi1URVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9ySWRlbnRpdHlU
cmFuc2Zvcm0pCi17Ci0gICAgLy8gVGVzdCB0aGUgY2FsY3VsYXRlVmlzaWJsZVJlY3QoKSBmdW5j
dGlvbiB3b3JrcyBjb3JyZWN0bHkgZm9yIGlkZW50aXR5IHRyYW5zZm9ybXMuCi0KLSAgICBJbnRS
ZWN0IHRhcmdldFN1cmZhY2VSZWN0ID0gSW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZSgx
MDAsIDEwMCkpOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVG9TdXJmYWNlVHJhbnNm
b3JtOwotCi0gICAgLy8gQ2FzZSAxOiBMYXllciBpcyBjb250YWluZWQgd2l0aGluIHRoZSBzdXJm
YWNlLgotICAgIEludFJlY3QgbGF5ZXJDb250ZW50UmVjdCA9IEludFJlY3QoSW50UG9pbnQoMTAs
IDEwKSwgSW50U2l6ZSgzMCwgMzApKTsKLSAgICBJbnRSZWN0IGV4cGVjdGVkID0gSW50UmVjdChJ
bnRQb2ludCgxMCwgMTApLCBJbnRTaXplKDMwLCAzMCkpOwotICAgIEludFJlY3QgYWN0dWFsID0g
Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNl
UmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKLQotICAgIC8vIENhc2UgMjogTGF5
ZXIgaXMgb3V0c2lkZSB0aGUgc3VyZmFjZSByZWN0LgotICAgIGxheWVyQ29udGVudFJlY3QgPSBJ
bnRSZWN0KEludFBvaW50KDEyMCwgMTIwKSwgSW50U2l6ZSgzMCwgMzApKTsKLSAgICBhY3R1YWwg
PSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdldFN1cmZh
Y2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybSk7Ci0gICAg
RVhQRUNUX1RSVUUoYWN0dWFsLmlzRW1wdHkoKSk7Ci0KLSAgICAvLyBDYXNlIDM6IExheWVyIGlz
IHBhcnRpYWxseSBvdmVybGFwcGluZyB0aGUgc3VyZmFjZSByZWN0LgotICAgIGxheWVyQ29udGVu
dFJlY3QgPSBJbnRSZWN0KEludFBvaW50KDgwLCA4MCksIEludFNpemUoMzAsIDMwKSk7Ci0gICAg
ZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDgwLCA4MCksIEludFNpemUoMjAsIDIwKSk7Ci0g
ICAgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0
YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zv
cm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKLX0KLQotVEVT
VChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVjdEZvclRyYW5zbGF0
aW9ucykKLXsKLSAgICAvLyBUZXN0IHRoZSBjYWxjdWxhdGVWaXNpYmxlUmVjdCgpIGZ1bmN0aW9u
IHdvcmtzIGNvcnJlY3RseSBmb3Igc2NhbGluZyB0cmFuc2Zvcm1zLgotCi0gICAgSW50UmVjdCB0
YXJnZXRTdXJmYWNlUmVjdCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAx
MDApKTsKLSAgICBJbnRSZWN0IGxheWVyQ29udGVudFJlY3QgPSBJbnRSZWN0KEludFBvaW50KDAs
IDApLCBJbnRTaXplKDMwLCAzMCkpOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVG9T
dXJmYWNlVHJhbnNmb3JtOwotCi0gICAgLy8gQ2FzZSAxOiBMYXllciBpcyBjb250YWluZWQgd2l0
aGluIHRoZSBzdXJmYWNlLgotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLm1ha2VJZGVudGl0
eSgpOwotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZSgxMCwgMTApOwotICAg
IEludFJlY3QgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKDMwLCAz
MCkpOwotICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxh
dGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJU
b1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0
dWFsKTsKLQotICAgIC8vIENhc2UgMjogTGF5ZXIgaXMgb3V0c2lkZSB0aGUgc3VyZmFjZSByZWN0
LgotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOwotICAgIGxheWVy
VG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZSgxMjAsIDEyMCk7Ci0gICAgYWN0dWFsID0gQ0NM
YXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVj
dCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVD
VF9UUlVFKGFjdHVhbC5pc0VtcHR5KCkpOwotCi0gICAgLy8gQ2FzZSAzOiBMYXllciBpcyBwYXJ0
aWFsbHkgb3ZlcmxhcHBpbmcgdGhlIHN1cmZhY2UgcmVjdC4KLSAgICBsYXllclRvU3VyZmFjZVRy
YW5zZm9ybS5tYWtlSWRlbnRpdHkoKTsKLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS50cmFu
c2xhdGUoODAsIDgwKTsKLSAgICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIElu
dFNpemUoMjAsIDIwKSk7Ci0gICAgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxj
dWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5
ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwg
YWN0dWFsKTsKLX0KLQotVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNp
YmxlUmVjdEZvcjJEUm90YXRpb25zKQotewotICAgIC8vIFRlc3QgdGhlIGNhbGN1bGF0ZVZpc2li
bGVSZWN0KCkgZnVuY3Rpb24gd29ya3MgY29ycmVjdGx5IGZvciByb3RhdGlvbnMgYWJvdXQgei1h
eGlzIChpLmUuIDJEIHJvdGF0aW9ucykuCi0gICAgLy8gUmVtZW1iZXIgdGhhdCBjYWxjdWxhdGVW
aXNpYmxlUmVjdCgpIHNob3VsZCByZXR1cm4gdGhlIHZpc2libGUgcmVjdCBpbiB0aGUgbGF5ZXIn
cyBzcGFjZS4KLQotICAgIEludFJlY3QgdGFyZ2V0U3VyZmFjZVJlY3QgPSBJbnRSZWN0KEludFBv
aW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSk7Ci0gICAgSW50UmVjdCBsYXllckNvbnRlbnRS
ZWN0ID0gSW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZSgzMCwgMzApKTsKLSAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybTsKLQotICAgIC8vIENhc2Ug
MTogTGF5ZXIgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgc3VyZmFjZS4KLSAgICBsYXllclRvU3Vy
ZmFjZVRyYW5zZm9ybS5tYWtlSWRlbnRpdHkoKTsKLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9y
bS50cmFuc2xhdGUoNTAsIDUwKTsKLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS5yb3RhdGUo
NDUpOwotICAgIEludFJlY3QgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRT
aXplKDMwLCAzMCkpOwotICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9u
OjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVj
dCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBl
Y3RlZCwgYWN0dWFsKTsKLQotICAgIC8vIENhc2UgMjogTGF5ZXIgaXMgb3V0c2lkZSB0aGUgc3Vy
ZmFjZSByZWN0LgotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOwot
ICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZSgtNTAsIDApOwotICAgIGxheWVy
VG9TdXJmYWNlVHJhbnNmb3JtLnJvdGF0ZSg0NSk7Ci0gICAgYWN0dWFsID0gQ0NMYXllclRyZWVI
b3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJD
b250ZW50UmVjdCwgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9UUlVFKGFj
dHVhbC5pc0VtcHR5KCkpOwotCi0gICAgLy8gQ2FzZSAzOiBUaGUgbGF5ZXIgaXMgcm90YXRlZCBh
Ym91dCBpdHMgdG9wLWxlZnQgY29ybmVyLiBJbiBzdXJmYWNlIHNwYWNlLCB0aGUgbGF5ZXIKLSAg
ICAvLyAgICAgICAgIGlzIG9yaWVudGVkIGRpYWdvbmFsbHksIHdpdGggdGhlIGxlZnQgaGFsZiBv
dXRzaWRlIG9mIHRoZSByZW5kZXJTdXJmYWNlLiBJbgotICAgIC8vICAgICAgICAgdGhpcyBjYXNl
LCB0aGUgdmlzaWJsZSByZWN0IHNob3VsZCBzdGlsbCBiZSB0aGUgZW50aXJlIGxheWVyIChyZW1l
bWJlciB0aGUKLSAgICAvLyAgICAgICAgIHZpc2libGUgcmVjdCBpcyBjb21wdXRlZCBpbiBsYXll
ciBzcGFjZSk7IGJvdGggdGhlIHRvcC1sZWZ0IGFuZAotICAgIC8vICAgICAgICAgYm90dG9tLXJp
Z2h0IGNvcm5lcnMgb2YgdGhlIGxheWVyIGFyZSBzdGlsbCB2aXNpYmxlLgotICAgIGxheWVyVG9T
dXJmYWNlVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOwotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNm
b3JtLnJvdGF0ZSg0NSk7Ci0gICAgZXhwZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDAsIDApLCBJ
bnRTaXplKDMwLCAzMCkpOwotICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2Fs
Y3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJlY3QsIGxh
eWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0ZWQs
IGFjdHVhbCk7Ci0KLSAgICAvLyBDYXNlIDQ6IFRoZSBsYXllciBpcyByb3RhdGVkIGFib3V0IGl0
cyB0b3AtbGVmdCBjb3JuZXIsIGFuZCB0cmFuc2xhdGVkIHVwd2FyZHMuIEluCi0gICAgLy8gICAg
ICAgICBzdXJmYWNlIHNwYWNlLCB0aGUgbGF5ZXIgaXMgb3JpZW50ZWQgZGlhZ29uYWxseSwgd2l0
aCBvbmx5IHRoZSB0b3AgY29ybmVyCi0gICAgLy8gICAgICAgICBvZiB0aGUgc3VyZmFjZSBvdmVy
bGFwcGluZyB0aGUgbGF5ZXIuIEluIGxheWVyIHNwYWNlLCB0aGUgcmVuZGVyIHN1cmZhY2UKLSAg
ICAvLyAgICAgICAgIG92ZXJsYXBzIHRoZSByaWdodCBzaWRlIG9mIHRoZSBsYXllci4gVGhlIHZp
c2libGUgcmVjdCBzaG91bGQgYmUgdGhlCi0gICAgLy8gICAgICAgICBsYXllcidzIHJpZ2h0IGhh
bGYuCi0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7Ci0gICAgbGF5
ZXJUb1N1cmZhY2VUcmFuc2Zvcm0udHJhbnNsYXRlKDAsIC1zcXJ0KDIpICogMTUpOwotICAgIGxh
eWVyVG9TdXJmYWNlVHJhbnNmb3JtLnJvdGF0ZSg0NSk7Ci0gICAgZXhwZWN0ZWQgPSBJbnRSZWN0
KEludFBvaW50KDE1LCAwKSwgSW50U2l6ZSgxNSwgMzApKTsgLy8gcmlnaHQgaGFsZiBvZiBsYXll
ciBib3VuZHMuCi0gICAgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVW
aXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1
cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFs
KTsKLX0KLQotVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlWaXNpYmxlUmVj
dEZvcjNkT3J0aG9ncmFwaGljVHJhbnNmb3JtKQotewotICAgIC8vIFRlc3QgdGhhdCB0aGUgY2Fs
Y3VsYXRlVmlzaWJsZVJlY3QoKSBmdW5jdGlvbiB3b3JrcyBjb3JyZWN0bHkgZm9yIDNkIHRyYW5z
Zm9ybXMuCi0KLSAgICBJbnRSZWN0IHRhcmdldFN1cmZhY2VSZWN0ID0gSW50UmVjdChJbnRQb2lu
dCgwLCAwKSwgSW50U2l6ZSgxMDAsIDEwMCkpOwotICAgIEludFJlY3QgbGF5ZXJDb250ZW50UmVj
dCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAxMDApKTsKLSAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybTsKLQotICAgIC8vIENhc2Ug
MTogT3J0aG9ncmFwaGljIHByb2plY3Rpb24gb2YgYSBsYXllciByb3RhdGVkIGFib3V0IHktYXhp
cyBieSA0NSBkZWdyZWVzLCBzaG91bGQgYmUgZnVsbHkgY29udGFpbmVkIGluIHRoZSByZW5kZXJT
dXJmYWNlLgotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOwotICAg
IGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnJvdGF0ZTNkKDAsIDQ1LCAwKTsKLSAgICBJbnRSZWN0
IGV4cGVjdGVkID0gSW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMDAsIDEwMCkpOwot
ICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNp
YmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5ZXJUb1N1cmZh
Y2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwgYWN0dWFsKTsK
LQotICAgIC8vIENhc2UgMjogT3J0aG9ncmFwaGljIHByb2plY3Rpb24gb2YgYSBsYXllciByb3Rh
dGVkIGFib3V0IHktYXhpcyBieSA0NSBkZWdyZWVzLCBidXQKLSAgICAvLyAgICAgICAgIHNoaWZ0
ZWQgdG8gdGhlIHNpZGUgc28gb25seSB0aGUgcmlnaHQtaGFsZiB0aGUgbGF5ZXIgd291bGQgYmUg
dmlzaWJsZSBvbgotICAgIC8vICAgICAgICAgdGhlIHN1cmZhY2UuCi0gICAgZG91YmxlIGhhbGZX
aWR0aE9mUm90YXRlZExheWVyID0gKDEwMC4wIC8gc3FydCgyKSkgKiAwLjU7IC8vIDEwMC4wIGlz
IHRoZSB1bi1yb3RhdGVkIGxheWVyIHdpZHRoOyBkaXZpZGVkIGJ5IHNxcnQoMikgaXMgdGhlIHJv
dGF0ZWQgd2lkdGguCi0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7
Ci0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0udHJhbnNsYXRlKC1oYWxmV2lkdGhPZlJvdGF0
ZWRMYXllciwgMCk7Ci0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ucm90YXRlM2QoMCwgNDUs
IDApOyAvLyByb3RhdGVzIGFib3V0IHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIGxheWVyCi0gICAgZXhw
ZWN0ZWQgPSBJbnRSZWN0KEludFBvaW50KDUwLCAwKSwgSW50U2l6ZSg1MCwgMTAwKSk7IC8vIHJp
Z2h0IGhhbGYgb2YgdGhlIGxheWVyLgotICAgIGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1v
bjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJl
Y3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhw
ZWN0ZWQsIGFjdHVhbCk7Ci19Ci0KLVRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVy
aWZ5VmlzaWJsZVJlY3RGb3IzZFBlcnNwZWN0aXZlVHJhbnNmb3JtKQotewotICAgIC8vIFRlc3Qg
dGhlIGNhbGN1bGF0ZVZpc2libGVSZWN0KCkgZnVuY3Rpb24gd29ya3MgY29ycmVjdGx5IHdoZW4g
dGhlIGxheWVyIGhhcyBhCi0gICAgLy8gcGVyc3BlY3RpdmUgcHJvamVjdGlvbiBvbnRvIHRoZSB0
YXJnZXQgc3VyZmFjZS4KLQotICAgIEludFJlY3QgdGFyZ2V0U3VyZmFjZVJlY3QgPSBJbnRSZWN0
KEludFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSk7Ci0gICAgSW50UmVjdCBsYXllckNv
bnRlbnRSZWN0ID0gSW50UmVjdChJbnRQb2ludCgtNTAsIC01MCksIEludFNpemUoMjAwLCAyMDAp
KTsKLSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBsYXllclRvU3VyZmFjZVRyYW5zZm9ybTsKLQot
ICAgIC8vIENhc2UgMTogRXZlbiB0aG91Z2ggdGhlIGxheWVyIGlzIHR3aWNlIGFzIGxhcmdlIGFz
IHRoZSBzdXJmYWNlLCBkdWUgdG8gcGVyc3BlY3RpdmUKLSAgICAvLyAgICAgICAgIGZvcmVzaG9y
dGVuaW5nLCB0aGUgbGF5ZXIgd2lsbCBmaXQgZnVsbHkgaW4gdGhlIHN1cmZhY2Ugd2hlbiBpdHMg
dHJhbnNsYXRlZAotICAgIC8vICAgICAgICAgbW9yZSB0aGFuIHRoZSBwZXJzcGVjdGl2ZSBhbW91
bnQuCi0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ubWFrZUlkZW50aXR5KCk7Ci0KLSAgICAv
LyBUaGUgZm9sbG93aW5nIHNlcXVlbmNlIG9mIHRyYW5zZm9ybXMgYXBwbGllcyB0aGUgcGVyc3Bl
Y3RpdmUgYWJvdXQgdGhlIGNlbnRlciBvZiB0aGUgc3VyZmFjZS4KLSAgICBsYXllclRvU3VyZmFj
ZVRyYW5zZm9ybS50cmFuc2xhdGUoNTAsIDUwKTsKLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9y
bS5hcHBseVBlcnNwZWN0aXZlKDkpOwotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5z
bGF0ZSgtNTAsIC01MCk7Ci0KLSAgICAvLyBUaGlzIHRyYW5zbGF0ZSBwbGFjZXMgdGhlIGxheWVy
IGluIGZyb250IG9mIHRoZSBzdXJmYWNlJ3MgcHJvamVjdGlvbiBwbGFuZS4KLSAgICBsYXllclRv
U3VyZmFjZVRyYW5zZm9ybS50cmFuc2xhdGUzZCgwLCAwLCAtMjcpOwotCi0gICAgSW50UmVjdCBl
eHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoLTUwLCAtNTApLCBJbnRTaXplKDIwMCwgMjAwKSk7
Ci0gICAgSW50UmVjdCBhY3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZp
c2libGVSZWN0KHRhcmdldFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3Vy
ZmFjZVRyYW5zZm9ybSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwp
OwotCi0gICAgLy8gQ2FzZSAyOiBzYW1lIHByb2plY3Rpb24gYXMgYmVmb3JlLCBleGNlcHQgdGhh
dCB0aGUgbGF5ZXIgaXMgYWxzbyB0cmFuc2xhdGVkIHRvIHRoZQotICAgIC8vICAgICAgICAgc2lk
ZSwgc28gdGhhdCBvbmx5IHRoZSByaWdodCBoYWxmIG9mIHRoZSBsYXllciBzaG91bGQgYmUgdmlz
aWJsZS4KLSAgICAvLwotICAgIC8vIEV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIHJlc3VsdDoKLSAg
ICAvLyBUaGUgcGVyc3BlY3RpdmUgcmF0aW8gaXMgKHogZGlzdGFuY2UgYmV0d2VlbiBsYXllciBh
bmQgY2FtZXJhIG9yaWdpbikgLyAoeiBkaXN0YW5jZSBiZXR3ZWVuIHByb2plY3Rpb24gcGxhbmUg
YW5kIGNhbWVyYSBvcmlnaW4pID09ICgoLTI3IC0gOSkgLyA5KQotICAgIC8vIFRoZW4sIGJ5IHNp
bWlsYXIgdHJpYW5nbGVzLCBpZiB3ZSB3YW50IHRvIG1vdmUgYSBsYXllciBieSB0cmFuc2xhdGlu
ZyAtNTAgdW5pdHMgaW4gcHJvamVjdGVkIHN1cmZhY2UgdW5pdHMgKHNvIHRoYXQgb25seSBoYWxm
IG9mIGl0IGlzCi0gICAgLy8gdmlzaWJsZSksIHRoZW4gd2Ugd291bGQgbmVlZCB0byB0cmFuc2xh
dGUgYnkgKC0zNiAvIDkpICogLTUwID09IC0yMDAgaW4gdGhlIGxheWVyJ3MgdW5pdHMuCi0gICAg
Ly8KLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS50cmFuc2xhdGUzZCgtMjAwLCAwLCAwKTsK
LSAgICBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoNTAsIC01MCksIEludFNpemUoMTAwLCAy
MDApKTsgLy8gVGhlIHJpZ2h0IGhhbGYgb2YgdGhlIGxheWVyJ3MgYm91bmRpbmcgcmVjdC4KLSAg
ICBhY3R1YWwgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRh
cmdldFN1cmZhY2VSZWN0LCBsYXllckNvbnRlbnRSZWN0LCBsYXllclRvU3VyZmFjZVRyYW5zZm9y
bSk7Ci0gICAgRVhQRUNUX0lOVF9SRUNUX0VRKGV4cGVjdGVkLCBhY3R1YWwpOwotfQotCi1URVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVZpc2libGVSZWN0Rm9yM2RPcnRob2dy
YXBoaWNJc05vdENsaXBwZWRCZWhpbmRTdXJmYWNlKQotewotICAgIC8vIFRoZXJlIGlzIGN1cnJl
bnRseSBubyBleHBsaWNpdCBjb25jZXB0IG9mIGFuIG9ydGhvZ3JhcGhpYyBwcm9qZWN0aW9uIHBs
YW5lIGluIG91cgotICAgIC8vIGNvZGUgKG5vciBpbiB0aGUgQ1NTIHNwZWMgdG8gbXkga25vd2xl
ZGdlKS4gVGhlcmVmb3JlLCBsYXllcnMgdGhhdCBhcmUgdGVjaG5pY2FsbHkKLSAgICAvLyBiZWhp
bmQgdGhlIHN1cmZhY2UgaW4gYW4gb3J0aG9ncmFwaGljIHdvcmxkIHNob3VsZCBub3QgYmUgY2xp
cHBlZCB3aGVuIHRoZXkgYXJlCi0gICAgLy8gZmxhdHRlbmVkIHRvIHRoZSBzdXJmYWNlLgotCi0g
ICAgSW50UmVjdCB0YXJnZXRTdXJmYWNlUmVjdCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIElu
dFNpemUoMTAwLCAxMDApKTsKLSAgICBJbnRSZWN0IGxheWVyQ29udGVudFJlY3QgPSBJbnRSZWN0
KEludFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTAwKSk7Ci0gICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm07Ci0KLSAgICAvLyBUaGlzIHNlcXVlbmNlIG9m
IHRyYW5zZm9ybXMgZWZmZWN0aXZlbHkgcm90YXRlcyB0aGUgbGF5ZXIgYWJvdXQgdGhlIHktYXhp
cyBhdCB0aGUKLSAgICAvLyBjZW50ZXIgb2YgdGhlIGxheWVyLgotICAgIGxheWVyVG9TdXJmYWNl
VHJhbnNmb3JtLm1ha2VJZGVudGl0eSgpOwotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnRy
YW5zbGF0ZSg1MCwgMCk7Ci0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ucm90YXRlM2QoMCwg
NDUsIDApOwotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZSgtNTAsIDApOwot
Ci0gICAgSW50UmVjdCBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUo
MTAwLCAxMDApKTsKLSAgICBJbnRSZWN0IGFjdHVhbCA9IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6
Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3QsIGxheWVyQ29udGVudFJlY3Qs
IGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoZXhwZWN0
ZWQsIGFjdHVhbCk7Ci19Ci0KLVRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5
VmlzaWJsZVJlY3RGb3IzZFBlcnNwZWN0aXZlSXNDbGlwcGVkKQotewotICAgIC8vIFRlc3QgdGhl
IGNhbGN1bGF0ZVZpc2libGVSZWN0KCkgZnVuY3Rpb24gd29ya3MgY29ycmVjdGx5IHdoZW4gcHJv
amVjdGluZyBhIHN1cmZhY2UKLSAgICAvLyBvbnRvIGEgbGF5ZXIsIGJ1dCB0aGUgbGF5ZXIgaXMg
cGFydGlhbGx5IGJlaGluZCB0aGUgY2FtZXJhIChub3QganVzdCBiZWhpbmQgdGhlCi0gICAgLy8g
cHJvamVjdGlvbiBwbGFuZSkuIEluIHRoaXMgY2FzZSwgdGhlIGNhcnRlc2lhbiBjb29yZGluYXRl
cyBtYXkgc2VlbSB0byBiZSB2YWxpZCwKLSAgICAvLyBidXQgYWN0dWFsbHkgdGhleSBhcmUgbm90
LiBUaGUgdmlzaWJsZVJlY3QgbmVlZHMgdG8gYmUgcHJvcGVybHkgY2xpcHBlZCBieSB0aGUKLSAg
ICAvLyB3ID0gMCBwbGFuZSBpbiBob21vZ2VuZW91cyBjb29yZGluYXRlcyBiZWZvcmUgY29udmVy
dGluZyB0byBjYXJ0ZXNpYW4gY29vcmRpbmF0ZXMuCi0KLSAgICBJbnRSZWN0IHRhcmdldFN1cmZh
Y2VSZWN0ID0gSW50UmVjdChJbnRQb2ludCgtNTAsIC01MCksIEludFNpemUoMTAwLCAxMDApKTsK
LSAgICBJbnRSZWN0IGxheWVyQ29udGVudFJlY3QgPSBJbnRSZWN0KEludFBvaW50KC0xMCwgLTEp
LCBJbnRTaXplKDIwLCAyKSk7Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUb1N1cmZh
Y2VUcmFuc2Zvcm07Ci0KLSAgICAvLyBUaGUgbGF5ZXIgaXMgcG9zaXRpb25lZCBzbyB0aGF0IHRo
ZSByaWdodCBoYWxmIG9mIHRoZSBsYXllciBzaG91bGQgYmUgaW4gZnJvbnQgb2YKLSAgICAvLyB0
aGUgY2FtZXJhLCB3aGlsZSB0aGUgb3RoZXIgaGFsZiBpcyBiZWhpbmQgdGhlIHN1cmZhY2UncyBw
cm9qZWN0aW9uIHBsYW5lLiBUaGUKLSAgICAvLyBmb2xsb3dpbmcgc2VxdWVuY2Ugb2YgdHJhbnNm
b3JtcyBhcHBsaWVzIHRoZSBwZXJzcGVjdGl2ZSBhbmQgcm90YXRpb24gYWJvdXQgdGhlCi0gICAg
Ly8gY2VudGVyIG9mIHRoZSBsYXllci4KLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS5tYWtl
SWRlbnRpdHkoKTsKLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS5hcHBseVBlcnNwZWN0aXZl
KDEpOwotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnRyYW5zbGF0ZTNkKDAsIDAsIDEpOwot
ICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnJvdGF0ZTNkKDAsIDQ1LCAwKTsKLQotICAgIC8v
IFNhbml0eSBjaGVjayB0aGF0IHRoaXMgdHJhbnNmb3JtIGRvZXMgaW5kZWVkIGNhdXNlIHcgPCAw
IHdoZW4gYXBwbHlpbmcgdGhlCi0gICAgLy8gdHJhbnNmb3JtLCBvdGhlcndpc2UgdGhpcyBjb2Rl
IGlzIG5vdCB0ZXN0aW5nIHRoZSBpbnRlbmRlZCBzY2VuYXJpby4KLSAgICBib29sIGNsaXBwZWQg
PSBmYWxzZTsKLSAgICBDQ01hdGhVdGlsOjptYXBRdWFkKGxheWVyVG9TdXJmYWNlVHJhbnNmb3Jt
LCBGbG9hdFF1YWQoRmxvYXRSZWN0KGxheWVyQ29udGVudFJlY3QpKSwgY2xpcHBlZCk7Ci0gICAg
QVNTRVJUX1RSVUUoY2xpcHBlZCk7Ci0KLSAgICBpbnQgZXhwZWN0ZWRYUG9zaXRpb24gPSAtMTA7
Ci0gICAgaW50IGV4cGVjdGVkV2lkdGggPSAxMDsKLSAgICBJbnRSZWN0IGFjdHVhbCA9IENDTGF5
ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZVJlY3QodGFyZ2V0U3VyZmFjZVJlY3Qs
IGxheWVyQ29udGVudFJlY3QsIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtKTsKLSAgICBFWFBFQ1Rf
RVEoZXhwZWN0ZWRYUG9zaXRpb24sIGFjdHVhbC54KCkpOwotICAgIEVYUEVDVF9FUShleHBlY3Rl
ZFdpZHRoLCBhY3R1YWwud2lkdGgoKSk7Ci19Ci0KLVRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdCwgdmVyaWZ5VmlzaWJsZVJlY3RGb3JQZXJzcGVjdGl2ZVVucHJvamVjdGlvbikKLXsKLSAg
ICAvLyBUbyBkZXRlcm1pbmUgdmlzaWJsZVJlY3QgaW4gbGF5ZXIgc3BhY2UsIHRoZXJlIG5lZWRz
IHRvIGJlIGFuIHVuLXByb2plY3Rpb24gZnJvbQotICAgIC8vIHN1cmZhY2Ugc3BhY2UgdG8gbGF5
ZXIgc3BhY2UuIFdoZW4gdGhlIG9yaWdpbmFsIHRyYW5zZm9ybSB3YXMgYSBwZXJzcGVjdGl2ZQot
ICAgIC8vIHByb2plY3Rpb24gdGhhdCB3YXMgY2xpcHBlZCwgaXQgcmV0dXJucyBhIHJlY3QgdGhh
dCBlbmNsb3NlcyB0aGUgY2xpcHBlZCBib3VuZHMuCi0gICAgLy8gVW4tcHJvamVjdGluZyB0aGlz
IG5ldyByZWN0IG1heSByZXF1aXJlIGNsaXBwaW5nIGFnYWluLgotCi0gICAgLy8gVGhpcyBzZXF1
ZW5jZSBvZiB0cmFuc2Zvcm1zIGNhdXNlcyBvbmUgY29ybmVyIG9mIHRoZSBsYXllciB0byBwcm90
cnVkZSBhY3Jvc3MgdGhlIHcgPSAwIHBsYW5lLCBhbmQgc2hvdWxkIGJlIGNsaXBwZWQuCi0gICAg
SW50UmVjdCB0YXJnZXRTdXJmYWNlUmVjdCA9IEludFJlY3QoSW50UG9pbnQoLTUwLCAtNTApLCBJ
bnRTaXplKDEwMCwgMTAwKSk7Ci0gICAgSW50UmVjdCBsYXllckNvbnRlbnRSZWN0ID0gSW50UmVj
dChJbnRQb2ludCgtMTAsIC0xMCksIEludFNpemUoMjAsIDIwKSk7Ci0gICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm07Ci0gICAgbGF5ZXJUb1N1cmZhY2VUcmFu
c2Zvcm0ubWFrZUlkZW50aXR5KCk7Ci0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0uYXBwbHlQ
ZXJzcGVjdGl2ZSgxKTsKLSAgICBsYXllclRvU3VyZmFjZVRyYW5zZm9ybS50cmFuc2xhdGUzZCgw
LCAwLCAtNSk7Ci0gICAgbGF5ZXJUb1N1cmZhY2VUcmFuc2Zvcm0ucm90YXRlM2QoMCwgNDUsIDAp
OwotICAgIGxheWVyVG9TdXJmYWNlVHJhbnNmb3JtLnJvdGF0ZTNkKDgwLCAwLCAwKTsKLQotICAg
IC8vIFNhbml0eSBjaGVjayB0aGF0IHVuLXByb2plY3Rpb24gZG9lcyBpbmRlZWQgY2F1c2UgdyA8
IDAsIG90aGVyd2lzZSB0aGlzIGNvZGUgaXMgbm90Ci0gICAgLy8gdGVzdGluZyB0aGUgaW50ZW5k
ZWQgc2NlbmFyaW8uCi0gICAgYm9vbCBjbGlwcGVkID0gZmFsc2U7Ci0gICAgRmxvYXRSZWN0IGNs
aXBwZWRSZWN0ID0gQ0NNYXRoVXRpbDo6bWFwQ2xpcHBlZFJlY3QobGF5ZXJUb1N1cmZhY2VUcmFu
c2Zvcm0sIGxheWVyQ29udGVudFJlY3QpOwotICAgIENDTWF0aFV0aWw6OnByb2plY3RRdWFkKGxh
eWVyVG9TdXJmYWNlVHJhbnNmb3JtLmludmVyc2UoKSwgRmxvYXRRdWFkKGNsaXBwZWRSZWN0KSwg
Y2xpcHBlZCk7Ci0gICAgQVNTRVJUX1RSVUUoY2xpcHBlZCk7Ci0KLSAgICAvLyBPbmx5IHRoZSBj
b3JuZXIgb2YgdGhlIGxheWVyIGlzIG5vdCB2aXNpYmxlIG9uIHRoZSBzdXJmYWNlIGJlY2F1c2Ug
b2YgYmVpbmcKLSAgICAvLyBjbGlwcGVkLiBCdXQsIHRoZSBuZXQgcmVzdWx0IG9mIHJvdW5kaW5n
IHZpc2libGUgcmVnaW9uIHRvIGFuIGF4aXMtYWxpZ25lZCByZWN0IGlzCi0gICAgLy8gdGhhdCB0
aGUgZW50aXJlIGxheWVyIHNob3VsZCBzdGlsbCBiZSBjb25zaWRlcmVkIHZpc2libGUuCi0gICAg
SW50UmVjdCBleHBlY3RlZCA9IEludFJlY3QoSW50UG9pbnQoLTEwLCAtMTApLCBJbnRTaXplKDIw
LCAyMCkpOwotICAgIEludFJlY3QgYWN0dWFsID0gQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxj
dWxhdGVWaXNpYmxlUmVjdCh0YXJnZXRTdXJmYWNlUmVjdCwgbGF5ZXJDb250ZW50UmVjdCwgbGF5
ZXJUb1N1cmZhY2VUcmFuc2Zvcm0pOwotICAgIEVYUEVDVF9JTlRfUkVDVF9FUShleHBlY3RlZCwg
YWN0dWFsKTsKLX0KLQogLy8gRklYTUU6CiAvLyBjb250aW51ZSB3b3JraW5nIG9uIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk0MgogLy8gIC0gYWRkIGEgdGVzdCB0
byB2ZXJpZnkgY2xpcHBpbmcgdGhhdCBjaGFuZ2VzIHRoZSAiY2VudGVyIHBvaW50Igo=
</data>

          </attachment>
      

    </bug>

</bugzilla>