<?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>81306</bug_id>
          
          <creation_ts>2012-03-15 20:58:36 -0700</creation_ts>
          <short_desc>REGRESSION(r110929): breaking webkit_unit_tests (Requested by morrita on #webkit).</short_desc>
          <delta_ts>2012-03-15 22:02:29 -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>
          <dependson>81307</dependson>
          <blocked>81181</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>danakj</cc>
    
    <cc>enne</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>580088</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 20:58:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/110929 broke the build:
breaking webkit_unit_tests (Requested by morrita 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>580089</commentid>
    <comment_count>1</comment_count>
      <attachid>132189</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 20:59:14 -0700</bug_when>
    <thetext>Created attachment 132189
ROLLOUT of r110929

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>580095</commentid>
    <comment_count>2</comment_count>
      <attachid>132189</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 21:07:33 -0700</bug_when>
    <thetext>Comment on attachment 132189
ROLLOUT of r110929

Clearing flags on attachment: 132189

Committed r110941: &lt;http://trac.webkit.org/changeset/110941&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580096</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 21:07:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132189</attachid>
            <date>2012-03-15 20:59:14 -0700</date>
            <delta_ts>2012-03-15 21:07:33 -0700</delta_ts>
            <desc>ROLLOUT of r110929</desc>
            <filename>bug-81306-20120316040145.patch</filename>
            <type>text/plain</type>
            <size>56811</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM5Yzc3ZDQ5YTkxZTE0
Njg3ZDkyZTdiMDc3YjgwZGQ4ZWFmMGMxMi4uZGNiYWJlNjM4OTJkMjM1YWExYjYxYWY3N2VmNWQy
NGViZGM3ZTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTAzLTE1ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEwOTI5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTA5MjkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMzA2CisKKyAgICAgICAgYnJlYWtpbmcgd2Via2l0X3VuaXRfdGVzdHMgKFJl
cXVlc3RlZCBieSBtb3JyaXRhIG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5oOgor
ICAgICAgICAoQ2FudmFzMkRMYXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OmlkbGVQYWludENvbnRlbnRzSWZEaXJ0eSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21p
dW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGVudExheWVyQ2hyb21pdW0p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxheWVyQ2hyb21pdW06OnBhaW50Q29udGVu
dHNJZkRpcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxh
eWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW1hZ2VMYXllckNo
cm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZE
aXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjppZGxlUGFpbnRDb250ZW50
c0lmRGlydHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRlbnRUb0xheWVyVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJv
bWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXll
ckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXll
ckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVJZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoVGlsZWRMYXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJH
TExheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6
OnBhaW50Q29udGVudHNJZkRpcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6cGFpbnRNYXNrQW5kUmVwbGljYUZvclJlbmRlclN1cmZhY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorCiAyMDEyLTAzLTE1
ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlh
U3RyZWFtIEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIE1lZGlhSGludHMgYW5kIEljZU9wdGlvbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMTBmOTkzNjNhNmQ0MDFlYTIxNGJiYjk5ZDE1
YzUzZWUwYzIwMTUyMi4uN2E4MzcyMmFhYzc4ZDY4MWYyZjRiNDc3MWM4MDM1NTQ3N2ZmMDQ1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMy0xNSAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExMDkyOS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTEwOTI5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MTMwNgorCisgICAgICAgIGJyZWFraW5nIHdlYmtpdF91bml0X3Rlc3Rz
IChSZXF1ZXN0ZWQgYnkgbW9ycml0YSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHRlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoV1RGOjpDb250ZW50TGF5ZXJDaHJvbWl1
bVdpdGhVcGRhdGVUcmFja2luZzo6cGFpbnRDb250ZW50c0lmRGlydHkpOgorICAgICAgICAoV1RG
OjpDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZzo6aWRsZVBhaW50Q29udGVu
dHNJZkRpcnR5KToKKyAgICAgICAgKFdURjo6VGVzdExheWVyQ2hyb21pdW06OnBhaW50Q29udGVu
dHNJZkRpcnR5KToKKyAgICAgICAgKiB0ZXN0cy9DYW52YXMyRExheWVyQ2hyb21pdW1UZXN0LmNw
cDoKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAg
KFdURjo6RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAg
KFdURjo6RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlSWRsZSk6CisgICAg
ICAgIChXVEY6OkZha2VUaWxlZExheWVyQ2hyb21pdW06OnBhaW50Q29udGVudHNJZkRpcnR5KToK
KyAgICAgICAgKFdURjo6VEVTVCk6CisKIDIwMTItMDMtMTUgIERhbmEgSmFuc2VucyAgPGRhbmFr
akBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBEZWNpZGUgb2NjbHVzaW9uIGlu
IHBhaW50IGN1bGxpbmcgd2l0aCBDQ09jY2x1c2lvblRyYWNrZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMy
RExheWVyQ2hyb21pdW0uY3BwCmluZGV4IDVjMGFmMmNmYjkzZTRkMDBmN2I5MDZkNTRjYmYwYmMy
N2I0YzU0MjUuLjNmYzYwMDJjOGEyMjA5ZTMzODQ0N2NkZTQyOTBmZTYwNzU5MmEwMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJE
TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lk
IENhbnZhczJETGF5ZXJDaHJvbWl1bTo6c2V0Q2FudmFzKFNrQ2FudmFzKiBjYW52YXMpCiAgICAg
bV9jYW52YXMgPSBjYW52YXM7CiB9CiAKLXZvaWQgQ2FudmFzMkRMYXllckNocm9taXVtOjpwYWlu
dENvbnRlbnRzSWZEaXJ0eShjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIC8qIG9jY2x1c2lvbiAq
LykKK3ZvaWQgQ2FudmFzMkRMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eShjb25z
dCBSZWdpb24mIC8qIG9jY2x1ZGVkU2NyZWVuU3BhY2UgKi8pCiB7CiAgICAgVFJBQ0VfRVZFTlQo
IkNhbnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkiLCB0aGlzLCAwKTsK
ICAgICBpZiAoIWRyYXdzQ29udGVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0u
aAppbmRleCA5MzAyMjQ2ODRiYmU0ODBhYjg4NjQ1NGVjZDRhYWY1MGZiNTA3NzYxLi5jYmQ0YWRj
OWI5YjVkMzc4NDRhZGU4MTExMzEyZmFmNjNmNmIzZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQ2hyb21pdW0uaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzRGlzcGxheVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAKICAgICB2aXJ0dWFsIGJv
b2wgZHJhd3NDb250ZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJ
ZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciopOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzSWZEaXJ0eShjb25zdCBSZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0
M0QqLCBDQ1RleHR1cmVVcGRhdGVyJik7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVz
VG8oQ0NMYXllckltcGwqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAppbmRl
eCBjMDA3MjE1Nzk3OWQ3OGI1OWFiMzdlMGYyMmRiMjY1NjIyOWMwNDk5Li43YTY2OTg0YmQ3NjJi
MGNkOTgyOTU5YjYxNWQ3Mzg0NTkxZWIwZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hy
b21pdW0uY3BwCkBAIC05Myw3ICs5Myw3IEBAIGJvb2wgQ29udGVudExheWVyQ2hyb21pdW06OmRy
YXdzQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHJhd3ND
b250ZW50KCkgJiYgbV9kZWxlZ2F0ZTsKIH0KIAotdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6
cGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24p
Cit2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBS
ZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpCiB7CiAgICAgdXBkYXRlVGlsZVNpemVBbmRUaWxp
bmdPcHRpb24oKTsKICAgICBjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCk7CkBAIC0xMDUs
MTEgKzEwNSwxMSBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZE
aXJ0eShjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1cwogICAgIGlmIChkcmF3c0NvbnRl
bnQoKSkKICAgICAgICAgbGF5ZXJSZWN0ID0gdmlzaWJsZUxheWVyUmVjdCgpOwogCi0gICAgcHJl
cGFyZVRvVXBkYXRlKGxheWVyUmVjdCwgb2NjbHVzaW9uKTsKKyAgICBwcmVwYXJlVG9VcGRhdGUo
bGF5ZXJSZWN0LCBvY2NsdWRlZFNjcmVlblNwYWNlKTsKICAgICBtX25lZWRzRGlzcGxheSA9IGZh
bHNlOwogfQogCi12b2lkIENvbnRlbnRMYXllckNocm9taXVtOjppZGxlUGFpbnRDb250ZW50c0lm
RGlydHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24pCit2b2lkIENvbnRlbnRM
YXllckNocm9taXVtOjppZGxlUGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVnaW9uJiBvY2Ns
dWRlZFNjcmVlblNwYWNlKQogewogICAgIGlmICghZHJhd3NDb250ZW50KCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjppZGxl
UGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvYwogICAgIGlm
IChsYXllclJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmVwYXJlVG9V
cGRhdGVJZGxlKGxheWVyUmVjdCwgb2NjbHVzaW9uKTsKKyAgICBwcmVwYXJlVG9VcGRhdGVJZGxl
KGxheWVyUmVjdCwgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CiAgICAgaWYgKG5lZWRzSWRsZVBhaW50
KGxheWVyUmVjdCkpCiAgICAgICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJv
bWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVu
dExheWVyQ2hyb21pdW0uaAppbmRleCBlNjk5NGEyMWFlZmFjMjE0MDg4N2U1YmJkOGFiYjIwM2M5
YWI4MTc5Li5mYTU5MDFlMmFkMmQ5NTAyNmE2MjAxOGM4Y2Q2MWU2ODRlNzQyYWRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5
ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBMYXllclRpbGVyQ2hyb21pdW07CiBjbGFzcyBMYXllclRleHR1cmVV
cGRhdGVyOworY2xhc3MgUmVnaW9uOwogCiBjbGFzcyBDb250ZW50TGF5ZXJEZWxlZ2F0ZSB7CiBw
dWJsaWM6CkBAIC01OCw4ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRGVsZWdhdGUo
KSB7IG1fZGVsZWdhdGUgPSAwOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2Nj
bHVzaW9uVHJhY2tlciopOwotICAgIHZpcnR1YWwgdm9pZCBpZGxlUGFpbnRDb250ZW50c0lmRGly
dHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29u
dGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CisgICAgdmly
dHVhbCB2b2lkIGlkbGVQYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBSZWdpb24mIG9jY2x1ZGVk
U2NyZWVuU3BhY2UpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMzkzOTE1OGE4NWI1NzNmYjJkNGI1N2Zl
MWE1ZWY2ZjJmYmYwZmYwMS4uNjExYWIyYTZhNjU4MDUzOTU2ZThiOGVkMzI4MGRmYjFiMDBkYjA1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SW1hZ2VMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAg
dm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnNldENvbnRlbnRzKEltYWdlKiBjb250ZW50cykKICAg
ICBzZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAotdm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnBhaW50
Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uKQordm9p
ZCBJbWFnZUxheWVyQ2hyb21pdW06OnBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYg
b2NjbHVkZWRTY3JlZW5TcGFjZSkKIHsKICAgICBjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVk
KCk7CiAgICAgaWYgKG1fbmVlZHNEaXNwbGF5KSB7CkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBJ
bWFnZUxheWVyQ2hyb21pdW06OnBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9u
VHJhY2tlciogb2NjbHVzaW8KICAgICAgICAgbV9uZWVkc0Rpc3BsYXkgPSBmYWxzZTsKICAgICB9
CiAKLSAgICBwcmVwYXJlVG9VcGRhdGUodmlzaWJsZUxheWVyUmVjdCgpLCBvY2NsdXNpb24pOwor
ICAgIHByZXBhcmVUb1VwZGF0ZSh2aXNpYmxlTGF5ZXJSZWN0KCksIG9jY2x1ZGVkU2NyZWVuU3Bh
Y2UpOwogfQogCiB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXJJ
Zk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGIwMWVmMjlkYTEzZDBl
MTExNWU4NDFhYzIwZjRlNjBlOGFjMTY0M2YuLmRlYWZkMzdlNzMzZWEzOGJjNGRkNWJiZGYxMjM3
ZTU4NGQ0YjA5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCkBAIC00MSw2ICs0MSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2U7CiBjbGFzcyBJbWFnZUxheWVy
VGV4dHVyZVVwZGF0ZXI7CitjbGFzcyBSZWdpb247CiAKIC8vIEEgTGF5ZXIgdGhhdCBjb250YWlu
cyBvbmx5IGFuIEltYWdlIGVsZW1lbnQuCiBjbGFzcyBJbWFnZUxheWVyQ2hyb21pdW0gOiBwdWJs
aWMgVGlsZWRMYXllckNocm9taXVtIHsKQEAgLTQ5LDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkltYWdlTGF5ZXJDaHJvbWl1bSgpOwogCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29u
dGVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShjb25z
dCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lm
RGlydHkoY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKTsKICAgICB2aXJ0dWFsIGJv
b2wgbmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldENvbnRlbnRzKElt
YWdlKiBpbWFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggZTUyZWM0OGM3ZDU3YzZjYWZhNDhm
YWFlN2QwYzM2NWE1ZTRmOTM0Ni4uODZmZGY5NTE1Njg4OTM3OGMzZDYyZDE5MTlhNzk1YTJjZTEy
NTE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIlJl
bmRlclN1cmZhY2VDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlNoYWRlckNocm9taXVtLmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKLSNpbmNsdWRlICJjYy9DQ09jY2x1c2lvblRy
YWNrZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgpAQCAtMTYyLDggKzE2MSw4IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIG1ldGhv
ZHMgdHlwaWNhbGx5IG5lZWQgdG8gYmUgb3ZlcndyaXR0ZW4gYnkgZGVyaXZlZCBjbGFzc2VzLgog
ICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2lzRHJhd2Fi
bGU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NPY2Ns
dXNpb25UcmFja2VyKiAvKiBvY2NsdXNpb24gKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBpZGxl
UGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiAvKiBvY2NsdXNp
b24gKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBS
ZWdpb24mIC8qIG9jY2x1ZGVkU2NyZWVuU3BhY2UgKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBp
ZGxlUGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVnaW9uJiAvKiBvY2NsdWRlZFNjcmVlblNw
YWNlICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhH
cmFwaGljc0NvbnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0SXNNYXNrKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50
c1RleHR1cmUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCmluZGV4IDg1M2Q2
NzU0Y2FhNTliN2JlMjgxMzkzMjg5ZWQ3ZDAwY2QzNDkyNTYuLjAyNTlhMjNkMzg2ZGQzZDFhYzhh
OThiYzI4NGUyMzgyYzU0YzYzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcApA
QCAtMzk3LDEwICszOTcsMjMgQEAgYm9vbCBUaWxlZExheWVyQ2hyb21pdW06OnRpbGVOZWVkc0J1
ZmZlcmVkVXBkYXRlKFVwZGF0YWJsZVRpbGUqIHRpbGUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlkbGUs
IGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20sIGNvbnN0IENDT2NjbHVz
aW9uVHJhY2tlciogb2NjbHVzaW9uKQorLy8gRklYTUU6IFRoaXMgZ2V0cyByb2xsZWQgaW50byBD
Q09jY2x1c2lvblRyYWNrZXIgd2hlbiB3ZSBzdG9wIHBhc3NpbmcgYXJvdW5kIFJlZ2lvbiBvYmpl
Y3RzLgorc3RhdGljIGlubGluZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjb250ZW50VG9MYXllclRy
YW5zZm9ybShjb25zdCBJbnRTaXplJiBib3VuZHNJbkxheWVyU3BhY2UsIGNvbnN0IEludFNpemUm
IGJvdW5kc0luQ29udGVudFNwYWNlKQoreworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5z
Zm9ybTsKKyAgICAvLyBTY2FsZSBmcm9tIGNvbnRlbnQgc3BhY2UgdG8gbGF5ZXIgc3BhY2UKKyAg
ICB0cmFuc2Zvcm0uc2NhbGVOb25Vbmlmb3JtKGJvdW5kc0luTGF5ZXJTcGFjZS53aWR0aCgpIC8g
c3RhdGljX2Nhc3Q8ZG91YmxlPihib3VuZHNJbkNvbnRlbnRTcGFjZS53aWR0aCgpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kc0luTGF5ZXJTcGFjZS5oZWlnaHQoKSAvIHN0
YXRpY19jYXN0PGRvdWJsZT4oYm91bmRzSW5Db250ZW50U3BhY2UuaGVpZ2h0KCkpKTsKKyAgICBy
ZXR1cm4gdHJhbnNmb3JtOworfQorCit2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRv
VXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQg
Ym90dG9tLCBjb25zdCBSZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpCiB7CiAgICAgY3JlYXRl
VGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCgpOwogCisgICAgLy8gVGlsZXMgYXJlIGluIHRoZSBsYXll
cidzIGNvbnRlbnQgc3BhY2UsIHRoZSBvY2NsdWRlZCByZWdpb24gaXMgaW4gc2NyZWVuIHNwYWNl
LgorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNvbnRlbnRUb1NjcmVlblNwYWNlID0gc2NyZWVu
U3BhY2VUcmFuc2Zvcm0oKSAqIGNvbnRlbnRUb0xheWVyVHJhbnNmb3JtKGJvdW5kcygpLCBjb250
ZW50Qm91bmRzKCkpOworCiAgICAgLy8gQ3JlYXRlIHRpbGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5n
IGEgZGlydHkgcmVjdCB0byBjb250YWluIGFsbAogICAgIC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1
cnJlbnRseSBiZWluZyBkcmF3bi4gQWxsIGRpcnR5IHRpbGVzIHRoYXQgYXJlIHRvIGJlIHBhaW50
ZWQKICAgICAvLyBnZXQgdGhlaXIgbV91cGRhdGVSZWN0IHNldCB0byBtX2RpcnR5UmVjdCBhbmQg
bV9kaXJ0eVJlY3QgY2xlYXJlZC4gVGhpcyB3YXkgaWYKQEAgLTQxNSw5ICs0MjgsOSBAQCB2b2lk
IFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQg
bGVmdCwgaW50IHRvcCwgaW50CiAgICAgICAgICAgICAvLyBXaGVuIG5vdCBpZGxlIHBhaW50aW5n
LCBpZiB0aGUgdmlzaWJsZSByZWdpb24gb2YgdGhlIHRpbGUgaXMgb2NjbHVkZWQsIGRvbid0IHJl
c2VydmUgYSB0ZXh0dXJlIG9yIG1hcmsgaXQgZm9yIHVwZGF0ZS4KICAgICAgICAgICAgIC8vIElm
IGFueSBwYXJ0IG9mIHRoZSB0aWxlIGlzIHZpc2libGUsIHRoZW4gd2UgbmVlZCB0byBwYWludCBp
dCBzbyB0aGUgdGlsZSBpcyBwdXNoZWQgdG8gdGhlIGltcGwgdGhyZWFkLgogICAgICAgICAgICAg
Ly8gVGhpcyB3aWxsIGFsc28gYXZvaWQgcGFpbnRpbmcgdGhlIHRpbGUgaW4gdGhlIG5leHQgbG9v
cCwgYmVsb3cuCi0gICAgICAgICAgICBpZiAoIWlkbGUgJiYgb2NjbHVzaW9uKSB7CisgICAgICAg
ICAgICBpZiAoIWlkbGUpIHsKICAgICAgICAgICAgICAgICBJbnRSZWN0IHZpc2libGVUaWxlUmVj
dCA9IGludGVyc2VjdGlvbihtX3RpbGVyLT50aWxlQm91bmRzKGksIGopLCB2aXNpYmxlTGF5ZXJS
ZWN0KCkpOwotICAgICAgICAgICAgICAgIGlmIChvY2NsdXNpb24tPm9jY2x1ZGVkKHRoaXMsIHZp
c2libGVUaWxlUmVjdCkpCisgICAgICAgICAgICAgICAgaWYgKG9jY2x1ZGVkU2NyZWVuU3BhY2Uu
Y29udGFpbnMoY29udGVudFRvU2NyZWVuU3BhY2UubWFwUmVjdCh2aXNpYmxlVGlsZVJlY3QpKSkK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKQEAgLTU1OSw3
ICs1NzIsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cmVzZXRVcGRhdGVTdGF0ZSgpCiAg
ICAgfQogfQogCi12b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0
IEludFJlY3QmIGxheWVyUmVjdCwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24p
Cit2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3Qm
IGxheWVyUmVjdCwgY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKQogewogICAgIG1f
c2tpcHNEcmF3ID0gZmFsc2U7CiAgICAgbV9za2lwc0lkbGVQYWludCA9IGZhbHNlOwpAQCAtNTc2
LDEwICs1ODksMTAgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZShj
b25zdCBJbnRSZWN0JiBsYXllclJlY3QsIGNvbnN0IENDT2NjbHUKICAgICBpbnQgbGVmdCwgdG9w
LCByaWdodCwgYm90dG9tOwogICAgIG1fdGlsZXItPmxheWVyUmVjdFRvVGlsZUluZGljZXMobGF5
ZXJSZWN0LCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOwogCi0gICAgcHJlcGFyZVRvVXBkYXRl
VGlsZXMoZmFsc2UsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgb2NjbHVzaW9uKTsKKyAgICBw
cmVwYXJlVG9VcGRhdGVUaWxlcyhmYWxzZSwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBvY2Ns
dWRlZFNjcmVlblNwYWNlKTsKIH0KIAotdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVU
b1VwZGF0ZUlkbGUoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0LCBjb25zdCBDQ09jY2x1c2lvblRy
YWNrZXIqIG9jY2x1c2lvbikKK3ZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRh
dGVJZGxlKGNvbnN0IEludFJlY3QmIGxheWVyUmVjdCwgY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNj
cmVlblNwYWNlKQogewogICAgIC8vIEFib3J0IGlmIHdlIGhhdmUgYWxyZWFkeSBwcmVwYXJlZCBh
IHBhaW50IG9yIHJ1biBvdXQgb2YgbWVtb3J5LgogICAgIGlmIChtX3NraXBzSWRsZVBhaW50IHx8
ICFtX3BhaW50UmVjdC5pc0VtcHR5KCkpCkBAIC02MDEsNyArNjE0LDcgQEAgdm9pZCBUaWxlZExh
eWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZUlkbGUoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0
LCBjb25zdCBDQ08KICAgICBtX3RpbGVyLT5sYXllclJlY3RUb1RpbGVJbmRpY2VzKGxheWVyUmVj
dCwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKIAogICAgIC8vIFByZXBhaW50IGFueXRoaW5n
IHRoYXQgd2FzIG9jY2x1ZGVkIGJ1dCBpbnNpZGUgdGhlIGxheWVyJ3MgdmlzaWJsZSByZWdpb24u
Ci0gICAgcHJlcGFyZVRvVXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9t
LCAwKTsKKyAgICBwcmVwYXJlVG9VcGRhdGVUaWxlcyh0cnVlLCBsZWZ0LCB0b3AsIHJpZ2h0LCBi
b3R0b20sIG9jY2x1ZGVkU2NyZWVuU3BhY2UpOwogICAgIGlmICghbV9wYWludFJlY3QuaXNFbXB0
eSgpIHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjExLDI1ICs2
MjQsMjUgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZUlkbGUoY29u
c3QgSW50UmVjdCYgbGF5ZXJSZWN0LCBjb25zdCBDQ08KICAgICB3aGlsZSAoIW1fc2tpcHNJZGxl
UGFpbnQgJiYgKGxlZnQgPiBwcmVwYWludExlZnQgfHwgdG9wID4gcHJlcGFpbnRUb3AgfHwgcmln
aHQgPCBwcmVwYWludFJpZ2h0IHx8IGJvdHRvbSA8IHByZXBhaW50Qm90dG9tKSkgewogICAgICAg
ICBpZiAoYm90dG9tIDwgcHJlcGFpbnRCb3R0b20pIHsKICAgICAgICAgICAgICsrYm90dG9tOwot
ICAgICAgICAgICAgcHJlcGFyZVRvVXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgYm90dG9tLCByaWdo
dCwgYm90dG9tLCAwKTsKKyAgICAgICAgICAgIHByZXBhcmVUb1VwZGF0ZVRpbGVzKHRydWUsIGxl
ZnQsIGJvdHRvbSwgcmlnaHQsIGJvdHRvbSwgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CiAgICAgICAg
ICAgICBpZiAoIW1fcGFpbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3NraXBzSWRsZVBhaW50KQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3AgPiBwcmVwYWlu
dFRvcCkgewogICAgICAgICAgICAgLS10b3A7Ci0gICAgICAgICAgICBwcmVwYXJlVG9VcGRhdGVU
aWxlcyh0cnVlLCBsZWZ0LCB0b3AsIHJpZ2h0LCB0b3AsIDApOworICAgICAgICAgICAgcHJlcGFy
ZVRvVXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgdG9wLCByaWdodCwgdG9wLCBvY2NsdWRlZFNjcmVl
blNwYWNlKTsKICAgICAgICAgICAgIGlmICghbV9wYWludFJlY3QuaXNFbXB0eSgpIHx8IG1fc2tp
cHNJZGxlUGFpbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGxlZnQgPiBwcmVwYWludExlZnQpIHsKICAgICAgICAgICAgIC0tbGVmdDsKLSAgICAgICAg
ICAgIHByZXBhcmVUb1VwZGF0ZVRpbGVzKHRydWUsIGxlZnQsIHRvcCwgbGVmdCwgYm90dG9tLCAw
KTsKKyAgICAgICAgICAgIHByZXBhcmVUb1VwZGF0ZVRpbGVzKHRydWUsIGxlZnQsIHRvcCwgbGVm
dCwgYm90dG9tLCBvY2NsdWRlZFNjcmVlblNwYWNlKTsKICAgICAgICAgICAgIGlmICghbV9wYWlu
dFJlY3QuaXNFbXB0eSgpIHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJpZ2h0IDwgcHJlcGFpbnRSaWdodCkgewogICAg
ICAgICAgICAgKytyaWdodDsKLSAgICAgICAgICAgIHByZXBhcmVUb1VwZGF0ZVRpbGVzKHRydWUs
IHJpZ2h0LCB0b3AsIHJpZ2h0LCBib3R0b20sIDApOworICAgICAgICAgICAgcHJlcGFyZVRvVXBk
YXRlVGlsZXModHJ1ZSwgcmlnaHQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgb2NjbHVkZWRTY3JlZW5T
cGFjZSk7CiAgICAgICAgICAgICBpZiAoIW1fcGFpbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3NraXBz
SWRsZVBhaW50KQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVk
TGF5ZXJDaHJvbWl1bS5oCmluZGV4IDY0M2Y2OTY0MDAyOTQxOGE0NzdjNmYyMTQzM2RkYTc4MzZj
ZDQ4YmIuLjZmZjkwMWRmZGJmZjc2MmYwNDYzNjNiMzRhNDg0NTJjMDRkMTIxMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJD
aHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1RpbGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC0zMyw3ICszMyw5IEBACiAjaW5jbHVkZSAiY2MvQ0NU
aWxlZExheWVySW1wbC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKIGNsYXNzIExheWVyVGV4
dHVyZVVwZGF0ZXI7CitjbGFzcyBSZWdpb247CiBjbGFzcyBVcGRhdGFibGVUaWxlOwogCiBjbGFz
cyBUaWxlZExheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJDaHJvbWl1bSB7CkBAIC04OCwxMCAr
OTAsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzZXRVcGRhdGVTdGF0ZSgpOwogCiAgICAg
Ly8gUHJlcGFyZSBkYXRhIG5lZWRlZCB0byB1cGRhdGUgdGV4dHVyZXMgdGhhdCBpbnRlcnNlY3Qg
d2l0aCBsYXllclJlY3QuCi0gICAgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYg
bGF5ZXJSZWN0LCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKKyAgICB2b2lkIHByZXBhcmVU
b1VwZGF0ZShjb25zdCBJbnRSZWN0JiBsYXllclJlY3QsIGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWRU
YXJnZXRTcGFjZSk7CiAKICAgICAvLyBTYW1lIGFzIGFib3ZlLCBidXQgdGhpcyB3aWxsIHRyeSB0
byBwYWludCBhZGRpdGlvbmFsIHN1cnJvdW5kaW5nIGNvbnRlbnQgaWYgaWRsZS4KLSAgICB2b2lk
IHByZXBhcmVUb1VwZGF0ZUlkbGUoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0LCBjb25zdCBDQ09j
Y2x1c2lvblRyYWNrZXIqKTsKKyAgICB2b2lkIHByZXBhcmVUb1VwZGF0ZUlkbGUoY29uc3QgSW50
UmVjdCYgbGF5ZXJSZWN0LCBjb25zdCBSZWdpb24mIG9jY2x1ZGVkVGFyZ2V0U3BhY2UpOwogCiAg
ICAgLy8gQWZ0ZXIgcHJlcGFyaW5nIGFuIHVwZGF0ZSwgcmV0dXJucyB0cnVlIGlmIG1vcmUgcHJl
LXBhaW50aW5nIGlzIG5lZWRlZC4KICAgICBib29sIG5lZWRzSWRsZVBhaW50KGNvbnN0IEludFJl
Y3QmIGxheWVyUmVjdCk7CkBAIC0xMTEsNyArMTEzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHRp
bGVPbmx5TmVlZHNQYXJ0aWFsVXBkYXRlKFVwZGF0YWJsZVRpbGUqKTsKICAgICBib29sIHRpbGVO
ZWVkc0J1ZmZlcmVkVXBkYXRlKFVwZGF0YWJsZVRpbGUqKTsKIAotICAgIHZvaWQgcHJlcGFyZVRv
VXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQg
Ym90dG9tLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKKyAgICB2b2lkIHByZXBhcmVUb1Vw
ZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJv
dHRvbSwgY29uc3QgUmVnaW9uJiBvY2NsdWRlZFRhcmdldFNwYWNlKTsKICAgICBJbnRSZWN0IGlk
bGVQYWludFJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCk7CiAKICAgICBVcGRh
dGFibGVUaWxlKiB0aWxlQXQoaW50LCBpbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJv
bWl1bS5jcHAKaW5kZXggODBkMjNkMWE4ZTE5MGYyNmRlYmI2YWZlYjQ0NWM5MDdmM2FmM2Q0Mi4u
ZTNlMTllMjU4ZmFhNjA0YmM3ZjViYWIyOTI3MjIzNmMyYzE2N2QxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJH
TExheWVyQ2hyb21pdW0uY3BwCkBAIC03MCw3ICs3MCw3IEBAIGJvb2wgV2ViR0xMYXllckNocm9t
aXVtOjpkcmF3c0NvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBMYXllckNocm9taXVtOjpkcmF3
c0NvbnRlbnQoKSAmJiAhbV9jb250ZXh0TG9zdDsKIH0KIAotdm9pZCBXZWJHTExheWVyQ2hyb21p
dW06OnBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogLyogb2Nj
bHVzaW9uICovKQordm9pZCBXZWJHTExheWVyQ2hyb21pdW06OnBhaW50Q29udGVudHNJZkRpcnR5
KGNvbnN0IFJlZ2lvbiYpCiB7CiAgICAgaWYgKCFkcmF3c0NvbnRlbnQoKSB8fCAhbV9uZWVkc0Rp
c3BsYXkgfHwgIW1fdGV4dHVyZVVwZGF0ZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJv
bWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xM
YXllckNocm9taXVtLmgKaW5kZXggNjUwOWZiMzU4ZDk1ZTliMGRmMTcxYWMwYjFjZGZjNWQ1MzU0
MTYzZC4uYWYxMzhmYTFlMGYzYzk4NzQxZGFlMGU5YWI0ZmM1MDczNWE3ZDA3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNo
cm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
V2ViR0xMYXllckNocm9taXVtLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0VGV4dHVyZUlkKHVuc2lnbmVkIHRleHR1cmVJZCkgeyBtX3RleHR1cmVJZCA9IHRleHR1cmVJ
ZDsgfQogCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OwotICAgIHZpcnR1
YWwgdm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVnaW9uJik7CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0
M0QqLCBDQ1RleHR1cmVVcGRhdGVyJik7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVz
VG8oQ0NMYXllckltcGwqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5UmVjdChj
b25zdCBGbG9hdFJlY3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDA2
NTkwMmNlNWEzMTMyM2RmZmU5MWM4ZTVhZWNmMDMxYzc1OTUwZTAuLjM0YmNlMTE4MTAwZmE1ZmEz
OGQ5MzUyODIwZDU3MDhlOWZlZGRjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cApAQCAtNDk5LDE0ICs0OTksMTQgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnJlc2VydmVUZXh0
dXJlcygpCiB9CiAKIC8vIHN0YXRpYwotdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50Q29udGVu
dHNJZkRpcnR5KExheWVyQ2hyb21pdW0qIGxheWVyLCBQYWludFR5cGUgcGFpbnRUeXBlLCBjb25z
dCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbikKK3ZvaWQgQ0NMYXllclRyZWVIb3N0Ojpw
YWludENvbnRlbnRzSWZEaXJ0eShMYXllckNocm9taXVtKiBsYXllciwgUGFpbnRUeXBlIHBhaW50
VHlwZSwgY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKQogewogICAgIEFTU0VSVChs
YXllcik7CiAgICAgQVNTRVJUKFBhaW50VmlzaWJsZSA9PSBwYWludFR5cGUgfHwgUGFpbnRJZGxl
ID09IHBhaW50VHlwZSk7CiAgICAgaWYgKFBhaW50VmlzaWJsZSA9PSBwYWludFR5cGUpCi0gICAg
ICAgIGxheWVyLT5wYWludENvbnRlbnRzSWZEaXJ0eShvY2NsdXNpb24pOworICAgICAgICBsYXll
ci0+cGFpbnRDb250ZW50c0lmRGlydHkob2NjbHVkZWRTY3JlZW5TcGFjZSk7CiAgICAgZWxzZQot
ICAgICAgICBsYXllci0+aWRsZVBhaW50Q29udGVudHNJZkRpcnR5KG9jY2x1c2lvbik7CisgICAg
ICAgIGxheWVyLT5pZGxlUGFpbnRDb250ZW50c0lmRGlydHkob2NjbHVkZWRTY3JlZW5TcGFjZSk7
CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpwYWludE1hc2tBbmRSZXBsaWNhRm9yUmVuZGVy
U3VyZmFjZShMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNlTGF5ZXIsIFBhaW50VHlwZSBwYWlu
dFR5cGUpCkBAIC01MTYsMTkgKzUxNiwyMCBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6cGFpbnRN
YXNrQW5kUmVwbGljYUZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSogcmVuZGVyUwogICAg
IC8vIG1hc2sgYW5kIHJlcGxpY2Egc2hvdWxkIGJlIHBhaW50ZWQuCiAKICAgICAvLyBGSVhNRTog
SWYgdGhlIHN1cmZhY2UgaGFzIGEgcmVwbGljYSwgaXQgc2hvdWxkIGJlIHBhaW50ZWQgd2l0aCBv
Y2NsdXNpb24gdGhhdCBleGNsdWRlcyB0aGUgY3VycmVudCB0YXJnZXQgc3VyZmFjZSBzdWJ0cmVl
LgorICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAogICAgIGlmIChyZW5kZXJTdXJmYWNlTGF5ZXIt
Pm1hc2tMYXllcigpKSB7CiAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllci0+bWFza0xheWVyKCkt
PnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCByZW5kZXJTdXJmYWNlTGF5
ZXItPmNvbnRlbnRCb3VuZHMoKSkpOwotICAgICAgICBwYWludENvbnRlbnRzSWZEaXJ0eShyZW5k
ZXJTdXJmYWNlTGF5ZXItPm1hc2tMYXllcigpLCBwYWludFR5cGUsIDApOworICAgICAgICBwYWlu
dENvbnRlbnRzSWZEaXJ0eShyZW5kZXJTdXJmYWNlTGF5ZXItPm1hc2tMYXllcigpLCBwYWludFR5
cGUsIG5vT2NjbHVzaW9uKTsKICAgICB9CiAKICAgICBMYXllckNocm9taXVtKiByZXBsaWNhTGF5
ZXIgPSByZW5kZXJTdXJmYWNlTGF5ZXItPnJlcGxpY2FMYXllcigpOwogICAgIGlmIChyZXBsaWNh
TGF5ZXIpIHsKLSAgICAgICAgcGFpbnRDb250ZW50c0lmRGlydHkocmVwbGljYUxheWVyLCBwYWlu
dFR5cGUsIDApOworICAgICAgICBwYWludENvbnRlbnRzSWZEaXJ0eShyZXBsaWNhTGF5ZXIsIHBh
aW50VHlwZSwgbm9PY2NsdXNpb24pOwogCiAgICAgICAgIGlmIChyZXBsaWNhTGF5ZXItPm1hc2tM
YXllcigpKSB7CiAgICAgICAgICAgICByZXBsaWNhTGF5ZXItPm1hc2tMYXllcigpLT5zZXRWaXNp
YmxlTGF5ZXJSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgcmVwbGljYUxheWVyLT5tYXNrTGF5ZXIo
KS0+Y29udGVudEJvdW5kcygpKSk7Ci0gICAgICAgICAgICBwYWludENvbnRlbnRzSWZEaXJ0eShy
ZXBsaWNhTGF5ZXItPm1hc2tMYXllcigpLCBwYWludFR5cGUsIDApOworICAgICAgICAgICAgcGFp
bnRDb250ZW50c0lmRGlydHkocmVwbGljYUxheWVyLT5tYXNrTGF5ZXIoKSwgcGFpbnRUeXBlLCBu
b09jY2x1c2lvbik7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC01NTIsNyArNTUzLDcgQEAgdm9p
ZCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmIHJl
bmRlclN1cmZhY2VMYXllckxpc3QKICAgICAgICAgICAgIEFTU0VSVCghaXQtPmJvdW5kcygpLmlz
RW1wdHkoKSk7CiAKICAgICAgICAgICAgIG9jY2x1c2lvblRyYWNrZXIuZW50ZXJUYXJnZXRSZW5k
ZXJTdXJmYWNlKGl0LT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOwotICAgICAgICAgICAgcGFpbnRD
b250ZW50c0lmRGlydHkoKml0LCBwYWludFR5cGUsICZvY2NsdXNpb25UcmFja2VyKTsKKyAgICAg
ICAgICAgIHBhaW50Q29udGVudHNJZkRpcnR5KCppdCwgcGFpbnRUeXBlLCBvY2NsdXNpb25UcmFj
a2VyLmN1cnJlbnRPY2NsdXNpb25JblNjcmVlblNwYWNlKCkpOwogICAgICAgICAgICAgb2NjbHVz
aW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcigqaXQpOwogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIG9jY2x1c2lvblRyYWNrZXIubGVhdmVUb1RhcmdldFJlbmRlclN1cmZhY2Uo
aXQudGFyZ2V0UmVuZGVyU3VyZmFjZUxheWVyKCktPnJlbmRlclN1cmZhY2UoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDg5ZjFiZTMwN2VkZmM5MTZkNjA5ZTA4NWEzNTUyMjY3
NzYyM2VjODcuLmQ1MjYyMjYyZDRmMmNjYTU0NDk2Y2ZiYmE3YTU1MGRiOTMyYmE0YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0yMTYsNyArMjE2LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGluaXRpYWxpemVMYXllclJlbmRlcmVyKCk7CiAKICAgICBlbnVtIFBhaW50VHlwZSB7
IFBhaW50VmlzaWJsZSwgUGFpbnRJZGxlIH07Ci0gICAgc3RhdGljIHZvaWQgcGFpbnRDb250ZW50
c0lmRGlydHkoTGF5ZXJDaHJvbWl1bSosIFBhaW50VHlwZSwgY29uc3QgQ0NPY2NsdXNpb25UcmFj
a2VyKik7CisgICAgc3RhdGljIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoTGF5ZXJDaHJvbWl1
bSosIFBhaW50VHlwZSwgY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKTsKICAgICB2
b2lkIHBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmLCBQYWludFR5cGUpOwogICAg
IHZvaWQgcGFpbnRNYXNrQW5kUmVwbGljYUZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSos
IFBhaW50VHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IDcwNmI0ZDAwMjQwNjdmOWMyZDc4OTRlODgwNGQy
MjVlMWM0OThiMzEuLmZlNzg4ZmJhZWVlNzdlNzkzYTAwMzhlYzdhZjI5MjY1NWZmYzc0NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RU
ZXN0LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJMYXllckNo
cm9taXVtLmgiCisjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCkBAIC0x
MjcyLDE1ICsxMjczLDE1IEBAIHB1YmxpYzoKICAgICBpbnQgdXBkYXRlQ291bnQoKSB7IHJldHVy
biBtX3VwZGF0ZUNvdW50OyB9CiAgICAgdm9pZCByZXNldFVwZGF0ZUNvdW50KCkgeyBtX3VwZGF0
ZUNvdW50ID0gMDsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNv
bnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uKQorICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzSWZEaXJ0eShjb25zdCBSZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpCiAgICAg
ewotICAgICAgICBDb250ZW50TGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkob2Nj
bHVzaW9uKTsKKyAgICAgICAgQ29udGVudExheWVyQ2hyb21pdW06OnBhaW50Q29udGVudHNJZkRp
cnR5KG9jY2x1ZGVkU2NyZWVuU3BhY2UpOwogICAgICAgICBtX3BhaW50Q29udGVudHNDb3VudCsr
OwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBpZGxlUGFpbnRDb250ZW50c0lmRGlydHkoY29u
c3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24pCisgICAgdmlydHVhbCB2b2lkIGlkbGVQ
YWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBSZWdpb24mIG9jY2x1ZGVkKQogICAgIHsKLSAgICAg
ICAgQ29udGVudExheWVyQ2hyb21pdW06OmlkbGVQYWludENvbnRlbnRzSWZEaXJ0eShvY2NsdXNp
b24pOworICAgICAgICBDb250ZW50TGF5ZXJDaHJvbWl1bTo6aWRsZVBhaW50Q29udGVudHNJZkRp
cnR5KG9jY2x1ZGVkKTsKICAgICAgICAgbV9pZGxlUGFpbnRDb250ZW50c0NvdW50Kys7CiAgICAg
fQogCkBAIC0xNjMyLDkgKzE2MzMsOSBAQCBjbGFzcyBUZXN0TGF5ZXJDaHJvbWl1bSA6IHB1Ymxp
YyBMYXllckNocm9taXVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0TGF5
ZXJDaHJvbWl1bT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RMYXllckNocm9t
aXVtKCkpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3Qg
Q0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24pCisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29u
dGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjZSkKICAgICB7Ci0g
ICAgICAgIG1fb2NjbHVkZWRTY3JlZW5TcGFjZSA9IG9jY2x1c2lvbiA/IG9jY2x1c2lvbi0+Y3Vy
cmVudE9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKSA6IFJlZ2lvbigpOworICAgICAgICBtX29jY2x1
ZGVkU2NyZWVuU3BhY2UgPSBvY2NsdWRlZFNjcmVlblNwYWNlOwogICAgIH0KIAogICAgIHZpcnR1
YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQ2hyb21pdW1U
ZXN0LmNwcAppbmRleCAwM2FkYjNjODg4YWJmZjg0MGZhMWU2MDk5N2Y2ZjAwNjUxNGZkYWU1Li42
YTNkYjAyYTdiNWJkYWFmY2FlZGMxYWQ2YmU4M2MyMGM3NDcwY2E1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVz
dC5jcHAKQEAgLTE1Niw3ICsxNTYsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgY2FudmFzLT5z
ZXROZWVkc0Rpc3BsYXkoKTsKICAgICAgICAgRVhQRUNUX1RSVUUoY2FudmFzLT5uZWVkc0Rpc3Bs
YXkoKSk7Ci0gICAgICAgIGNhbnZhcy0+cGFpbnRDb250ZW50c0lmRGlydHkoMCk7CisgICAgICAg
IFJlZ2lvbiBvY2NsdWRlZFNjcmVlblNwYWNlOworICAgICAgICBjYW52YXMtPnBhaW50Q29udGVu
dHNJZkRpcnR5KG9jY2x1ZGVkU2NyZWVuU3BhY2UpOwogICAgICAgICBFWFBFQ1RfRkFMU0UoY2Fu
dmFzLT5uZWVkc0Rpc3BsYXkoKSk7CiAgICAgICAgIHsKICAgICAgICAgICAgIERlYnVnU2NvcGVk
U2V0SW1wbFRocmVhZCBzY29wZWRJbXBsVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMDdjZWFh
ZTg4ZDc1Nzc3YjYzNjNjN2E3NGM5YmEwYzg5MzRiODBjMi4uMjUyMzIzMGUwMDVjYjkxZTE1NGQ5
MTljYzdlOWM5NjVmMGY5NDEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC00OCwyNSArNDgsNiBAQCB1
c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgewogCi1jbGFzcyBUZXN0Q0NPY2NsdXNp
b25UcmFja2VyIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlciB7Ci1wdWJsaWM6Ci0gICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcigpCi0gICAgICAgIDogQ0NPY2NsdXNpb25UcmFja2VyKEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpCi0gICAgICAgICwgbV9zY2lzc29yUmVjdEluU2NyZWVuKElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpCi0gICAgewotICAgICAgICAvLyBQcmV0ZW5kIHdlIGhh
dmUgdmlzaXRlZCBhIHJlbmRlciBzdXJmYWNlLgotICAgICAgICBtX3N0YWNrLmFwcGVuZChTdGFj
a09iamVjdCgpKTsKLSAgICB9Ci0KLSAgICB2b2lkIHNldE9jY2x1c2lvbihjb25zdCBSZWdpb24m
IG9jY2x1c2lvbikgeyBtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblNjcmVlbiA9IG9jY2x1c2lv
bjsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBJbnRSZWN0IGxheWVyU2Npc3NvclJlY3RJ
blRhcmdldFN1cmZhY2UoY29uc3QgTGF5ZXJDaHJvbWl1bSogbGF5ZXIpIGNvbnN0IHsgcmV0dXJu
IG1fc2Npc3NvclJlY3RJblNjcmVlbjsgfQotCi1wcml2YXRlOgotICAgIEludFJlY3QgbV9zY2lz
c29yUmVjdEluU2NyZWVuOwotfTsKLQogY2xhc3MgRmFrZVRleHR1cmVBbGxvY2F0b3IgOiBwdWJs
aWMgVGV4dHVyZUFsbG9jYXRvciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBjcmVh
dGVUZXh0dXJlKGNvbnN0IEludFNpemUmLCBHQzNEZW51bSkgeyByZXR1cm4gMDsgfQpAQCAtMTY5
LDE0ICsxNTAsMTQgQEAgcHVibGljOgogICAgICAgICBUaWxlZExheWVyQ2hyb21pdW06OmludmFs
aWRhdGVSZWN0KHJlY3QpOwogICAgIH0KIAotICAgIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0
IEludFJlY3QmIHJlY3QsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uKQorICAg
IHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFJlZ2lvbiYg
b2NjbHVkZWQpCiAgICAgewotICAgICAgICBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1Vw
ZGF0ZShyZWN0LCBvY2NsdXNpb24pOworICAgICAgICBUaWxlZExheWVyQ2hyb21pdW06OnByZXBh
cmVUb1VwZGF0ZShyZWN0LCBvY2NsdWRlZCk7CiAgICAgfQogCi0gICAgdm9pZCBwcmVwYXJlVG9V
cGRhdGVJZGxlKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciog
b2NjbHVzaW9uKQorICAgIHZvaWQgcHJlcGFyZVRvVXBkYXRlSWRsZShjb25zdCBJbnRSZWN0JiBy
ZWN0LCBjb25zdCBSZWdpb24mIG9jY2x1ZGVkKQogICAgIHsKLSAgICAgICAgVGlsZWRMYXllckNo
cm9taXVtOjpwcmVwYXJlVG9VcGRhdGVJZGxlKHJlY3QsIG9jY2x1c2lvbik7CisgICAgICAgIFRp
bGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlSWRsZShyZWN0LCBvY2NsdWRlZCk7CiAg
ICAgfQogCiAgICAgYm9vbCBuZWVkc0lkbGVQYWludChjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAt
MjAxLDkgKzE4Miw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVGV4dHVyZU1hbmFnZXIqIHRl
eHR1cmVNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0dXJlTWFuYWdlcjsgfQogCi0gICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciogb2NjbHVzaW9uKQorICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShjb25z
dCBSZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpCiAgICAgewotICAgICAgICBwcmVwYXJlVG9V
cGRhdGUodmlzaWJsZUxheWVyUmVjdCgpLCBvY2NsdXNpb24pOworICAgICAgICBwcmVwYXJlVG9V
cGRhdGUodmlzaWJsZUxheWVyUmVjdCgpLCBvY2NsdWRlZFNjcmVlblNwYWNlKTsKICAgICB9CiAK
IHByaXZhdGU6CkBAIC0yNTksNiArMjQwLDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0
LCBwdXNoRGlydHlUaWxlcykKICAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5
ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5n
ZXQoKSkpOwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgIE93
blB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NU
aWxlZExheWVySW1wbCgwKSkpOworICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAogICAgIEZha2VU
ZXh0dXJlQWxsb2NhdG9yIHRleHR1cmVBbGxvY2F0b3I7CiAgICAgQ0NUZXh0dXJlVXBkYXRlciB1
cGRhdGVyKCZ0ZXh0dXJlQWxsb2NhdG9yKTsKQEAgLTI2Niw3ICsyNDgsNyBAQCBURVNUKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogICAgIC8vIFRoZSB0aWxlIHNpemUg
aXMgMTAweDEwMCwgc28gdGhpcyBpbnZhbGlkYXRlcyBhbmQgdGhlbiBwYWludHMgdHdvIHRpbGVz
LgogICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOwogICAgIGxheWVyLT5p
bnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7Ci0gICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCk7CisgICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOwogICAgIGxh
eWVyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5w
dXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTI3OSw3ICsyNjEsNyBAQCBU
RVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogICAgIC8vIEludmFs
aWRhdGVzIGJvdGggdGlsZXMuLi4KICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgw
LCAwLCAxMDAsIDIwMCkpOwogICAgIC8vIC4uLi5idXQgdGhlbiBvbmx5IHVwZGF0ZSBvbmUgb2Yg
dGhlbS4KLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDAp
LCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDAp
LCBub09jY2x1c2lvbik7CiAgICAgbGF5ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwg
dXBkYXRlcik7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsK
IApAQCAtMjk0LDE3ICsyNzYsMTUgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNo
T2NjbHVkZWREaXJ0eVRpbGVzKQogICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBs
YXllciA9IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2Vy
LmdldCgpKSk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAg
T3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VD
Q1RpbGVkTGF5ZXJJbXBsKDApKSk7Ci0gICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlciBvY2NsdWRl
ZDsKKyAgICBSZWdpb24gbm9PY2NsdXNpb247CiAKICAgICBGYWtlVGV4dHVyZUFsbG9jYXRvciB0
ZXh0dXJlQWxsb2NhdG9yOwogICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcigmdGV4dHVyZUFs
bG9jYXRvcik7CiAKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAsIHNvIHRoaXMgaW52
YWxpZGF0ZXMgYW5kIHRoZW4gcGFpbnRzIHR3byB0aWxlcy4KICAgICBsYXllci0+c2V0Qm91bmRz
KEludFNpemUoMTAwLCAyMDApKTsKLSAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShUcmFuc2Zv
cm1hdGlvbk1hdHJpeCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCkud2lkdGgoKSAvIDIuMCwg
bGF5ZXItPmJvdW5kcygpLmhlaWdodCgpIC8gMi4wKSk7Ci0gICAgbGF5ZXItPnNldFZpc2libGVM
YXllclJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRl
UmVjdChJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0
ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgJm9jY2x1ZGVkKTsKKyAgICBsYXllci0+cHJlcGFy
ZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBub09jY2x1c2lvbik7CiAgICAgbGF5
ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAgbGF5ZXItPnB1
c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApAQCAtMzE3LDggKzI5Nyw4IEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykKICAgICAv
LyBJbnZhbGlkYXRlcyBwYXJ0IG9mIHRoZSB0b3AgdGlsZS4uLgogICAgIGxheWVyLT5pbnZhbGlk
YXRlUmVjdChJbnRSZWN0KDAsIDAsIDUwLCA1MCkpOwogICAgIC8vIC4uLi5idXQgdGhlIGFyZWEg
aXMgb2NjbHVkZWQuCi0gICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMCwgMCwgNTAs
IDUwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMTAw
KSwgJm9jY2x1ZGVkKTsKKyAgICBSZWdpb24gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgNTAsIDUw
KSk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwg
b2NjbHVzaW9uKTsKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRh
dGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCkBA
IC0zNDEsMTIgKzMyMSwxMyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxl
UGFpbnRUaWxlcykKICAgICBJbnRTaXplIGNvbnRlbnRCb3VuZHMoNTAwLCA1MDApOwogICAgIElu
dFJlY3QgY29udGVudFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgY29udGVudEJvdW5kcyk7CiAgICAg
SW50UmVjdCB2aXNpYmxlUmVjdCgyMDAsIDIwMCwgMTAwLCAxMDApOworICAgIFJlZ2lvbiBub09j
Y2x1c2lvbjsKIAogICAgIC8vIFRoaXMgaW52YWxpZGF0ZXMgMjUgdGlsZXMgYW5kIHRoZW4gcGFp
bnRzIG9uZSB2aXNpYmxlIHRpbGUuCiAgICAgbGF5ZXItPnNldEJvdW5kcyhjb250ZW50Qm91bmRz
KTsKICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdCh2aXNpYmxlUmVjdCk7CiAgICAgbGF5
ZXItPmludmFsaWRhdGVSZWN0KGNvbnRlbnRSZWN0KTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKHZpc2libGVSZWN0LCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKHZpc2libGVS
ZWN0LCBub09jY2x1c2lvbik7CiAKICAgICAvLyBXZSBzaG91bGQgbmVlZCBpZGxlLXBhaW50aW5n
IGZvciAzeDMgdGlsZXMgaW4gdGhlIGNlbnRlci4KICAgICBFWFBFQ1RfVFJVRShsYXllci0+bmVl
ZHNJZGxlUGFpbnQodmlzaWJsZVJlY3QpKTsKQEAgLTM2MSw5ICszNDIsOSBAQCBURVNUKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxlUGFpbnRUaWxlcykKIAogICAgIC8vIEZvciB0aGUg
bmV4dCBmb3VyIHVwZGF0ZXMsIHdlIHNob3VsZCBkZXRlY3Qgd2Ugc3RpbGwgbmVlZCBpZGxlIHBh
aW50aW5nLgogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7Ci0gICAgICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUodmlzaWJsZVJlY3QsIDApOworICAgICAgICBsYXllci0+cHJlcGFy
ZVRvVXBkYXRlKHZpc2libGVSZWN0LCBub09jY2x1c2lvbik7CiAgICAgICAgIEVYUEVDVF9UUlVF
KGxheWVyLT5uZWVkc0lkbGVQYWludCh2aXNpYmxlUmVjdCkpOwotICAgICAgICBsYXllci0+cHJl
cGFyZVRvVXBkYXRlSWRsZSh2aXNpYmxlUmVjdCwgMCk7CisgICAgICAgIGxheWVyLT5wcmVwYXJl
VG9VcGRhdGVJZGxlKHZpc2libGVSZWN0LCBub09jY2x1c2lvbik7CiAgICAgICAgIGxheWVyLT51
cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgICAgICBsYXllci0+cHVz
aFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgICAgICB0ZXh0dXJlTWFuYWdlci0+
dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsKQEAgLTM5Myw2ICszNzQsNyBAQCBURVNUKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxlc01hcmtlZERpcnR5RHVyaW5nUGFpbnQpCiAKICAgICBG
YWtlVGV4dHVyZUFsbG9jYXRvciB0ZXh0dXJlQWxsb2NhdG9yOwogICAgIENDVGV4dHVyZVVwZGF0
ZXIgdXBkYXRlcigmdGV4dHVyZUFsbG9jYXRvcik7CisgICAgUmVnaW9uIG5vT2NjbHVzaW9uOwog
CiAgICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVzIGFu
ZCB0aGVuIHBhaW50cyB0d28gdGlsZXMuCiAgICAgLy8gSG93ZXZlciwgZHVyaW5nIHRoZSBwYWlu
dCwgd2UgaW52YWxpZGF0ZSBvbmUgb2YgdGhlIHRpbGVzLiBUaGlzIHNob3VsZApAQCAtNDAwLDcg
KzM4Miw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTWFya2VkRGly
dHlEdXJpbmdQYWludCkKICAgICBsYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOwogICAg
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKElu
dFJlY3QoMCwgNTAsIDEwMCwgNTApLCBsYXllci5nZXQoKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVU
b1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCk7CisgICAgbGF5ZXItPnByZXBhcmVU
b1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOwogICAgIGxheWVy
LT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5wdXNo
UHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTQyMCwxNyArNDAyLDE4IEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTGF5ZXJNYXJrZWREaXJ0eUR1cmlu
Z1BhaW50T25OZXh0TGF5ZXIpCiAKICAgICBGYWtlVGV4dHVyZUFsbG9jYXRvciB0ZXh0dXJlQWxs
b2NhdG9yOwogICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcigmdGV4dHVyZUFsbG9jYXRvcik7
CisgICAgUmVnaW9uIG5vT2NjbHVzaW9uOwogCiAgICAgbGF5ZXIxLT5zZXRCb3VuZHMoSW50U2l6
ZSgxMDAsIDIwMCkpOwogICAgIGxheWVyMS0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCAx
MDAsIDIwMCkpOwogICAgIGxheWVyMi0+c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsKICAg
ICBsYXllcjItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKIAotICAg
IGxheWVyMS0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwKTsKKyAg
ICBsYXllcjEtPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2Ns
dXNpb24pOwogCiAgICAgLy8gSW52YWxpZGF0ZSBhIHRpbGUgb24gbGF5ZXIxCiAgICAgbGF5ZXIy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3Qo
MCwgNTAsIDEwMCwgNTApLCBsYXllcjEuZ2V0KCkpOwotICAgIGxheWVyMi0+cHJlcGFyZVRvVXBk
YXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwKTsKKyAgICBsYXllcjItPnByZXBhcmVUb1Vw
ZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOwogCiAgICAgbGF5ZXIx
LT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyMi0+dXBk
YXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKQEAgLTQ1Niw2ICs0MzksNyBAQCBU
RVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJp
bmdQYWludE9uUHJldmlvdXNMYXllcgogCiAgICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgdGV4dHVy
ZUFsbG9jYXRvcjsKICAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXIoJnRleHR1cmVBbGxvY2F0
b3IpOworICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAogICAgIGxheWVyMS0+c2V0Qm91bmRzKElu
dFNpemUoMTAwLCAyMDApKTsKICAgICBsYXllcjEtPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwg
MCwgMTAwLCAyMDApKTsKQEAgLTQ2NCw5ICs0NDgsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJpbmdQYWludE9uUHJldmlvdXNMYXll
cgogCiAgICAgLy8gSW52YWxpZGF0ZSBhIHRpbGUgb24gbGF5ZXIyCiAgICAgbGF5ZXIxLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMCwgNTAs
IDEwMCwgNTApLCBsYXllcjIuZ2V0KCkpOwotICAgIGxheWVyMS0+cHJlcGFyZVRvVXBkYXRlKElu
dFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwKTsKKyAgICBsYXllcjEtPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOwogCi0gICAgbGF5ZXIyLT5wcmVw
YXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDApOworICAgIGxheWVyMi0+cHJl
cGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBub09jY2x1c2lvbik7CiAKICAg
ICBsYXllcjEtPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAgbGF5
ZXIyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwpAQCAtNDg3LDYgKzQ3
MSw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBhaW50T3V0T2ZNZW1vcnkp
CiAgICAgSW50U2l6ZSBjb250ZW50Qm91bmRzKDMwMCwgMzAwKTsKICAgICBJbnRSZWN0IGNvbnRl
bnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIGNvbnRlbnRCb3VuZHMpOwogICAgIEludFJlY3Qgdmlz
aWJsZVJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKTsKKyAgICBSZWdpb24gbm9PY2NsdXNpb247CiAK
ICAgICAvLyBXZSBoYXZlIGVub3VnaCBtZW1vcnkgZm9yIG9ubHkgdGhlIHZpc2libGUgcmVjdCwg
c28gd2Ugd2lsbCBydW4gb3V0IG9mIG1lbW9yeSBpbiBmaXJzdCBpZGxlIHBhaW50LgogICAgIGlu
dCBtZW1vcnlMaW1pdCA9IDQgKiAxMDAgKiAxMDA7IC8vIDIgdGlsZXMsIDQgYnl0ZXMgcGVyIHBp
eGVsLgpAQCAtNTAzLDcgKzQ4OCw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRs
ZVBhaW50T3V0T2ZNZW1vcnkpCiAgICAgbGF5ZXItPnNldEJvdW5kcyhjb250ZW50Qm91bmRzKTsK
ICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdCh2aXNpYmxlUmVjdCk7CiAgICAgbGF5ZXIt
PmludmFsaWRhdGVSZWN0KGNvbnRlbnRSZWN0KTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRl
KHZpc2libGVSZWN0LCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKHZpc2libGVSZWN0
LCBub09jY2x1c2lvbik7CiAKICAgICAvLyBXZSBzaG91bGQgbmVlZCBpZGxlLXBhaW50aW5nIGZv
ciAzeDMgdGlsZXMgc3Vyb3VuZGluZyB2aXNpYmxlIHRpbGUuCiAgICAgRVhQRUNUX1RSVUUobGF5
ZXItPm5lZWRzSWRsZVBhaW50KHZpc2libGVSZWN0KSk7CkBAIC01MTUsOCArNTAwLDggQEAgVEVT
VChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxlUGFpbnRPdXRPZk1lbW9yeSkKICAgICBFWFBF
Q1RfVFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgxLCAxKSk7CiAKICAgICB0ZXh0dXJlTWFuYWdl
ci0+dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKHZp
c2libGVSZWN0LCAwKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlSWRsZSh2aXNpYmxlUmVj
dCwgMCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZSh2aXNpYmxlUmVjdCwgbm9PY2NsdXNp
b24pOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGVJZGxlKHZpc2libGVSZWN0LCBub09jY2x1
c2lvbik7CiAKICAgICAvLyBXZSBzaG91bGRuJ3Qgc2lnbmFsIHdlIG5lZWQgYW5vdGhlciBpZGxl
IHBhaW50IGFmdGVyIHdlIHJ1biBvdXQgb2YgbWVtb3J5LgogICAgIEVYUEVDVF9GQUxTRShsYXll
ci0+bmVlZHNJZGxlUGFpbnQodmlzaWJsZVJlY3QpKTsKQEAgLTUzMSw2ICs1MTYsNyBAQCBURVNU
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKICAgICBSZWZQ
dHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVk
TGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOwogICAgIERlYnVnU2NvcGVkU2V0
SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgIE93blB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4g
bGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgwKSkpOworICAgIFJl
Z2lvbiBub09jY2x1c2lvbjsKIAogICAgIEZha2VUZXh0dXJlQWxsb2NhdG9yIHRleHR1cmVBbGxv
Y2F0b3I7CiAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyKCZ0ZXh0dXJlQWxsb2NhdG9yKTsK
QEAgLTUzOCw3ICs1MjQsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGludmFsaWRh
dGVGcm9tUHJlcGFyZSkKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAsIHNvIHRoaXMg
aW52YWxpZGF0ZXMgYW5kIHRoZW4gcGFpbnRzIHR3byB0aWxlcy4KICAgICBsYXllci0+c2V0Qm91
bmRzKEludFNpemUoMTAwLCAyMDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVj
dCgwLCAwLCAxMDAsIDIwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgw
LCAwLCAxMDAsIDIwMCksIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgw
LCAwLCAxMDAsIDIwMCksIG5vT2NjbHVzaW9uKTsKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRv
clJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXll
ckltcGwuZ2V0KCkpOwogCkBAIC01NTEsMTggKzUzNywxOCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKICAgICBsYXllci0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlQ291bnQoKTsKICAgICAvLyBJbnZva2UgcHJlcGFy
ZVRvVXBkYXRlIGFnYWluLiBBcyB0aGUgbGF5ZXIgaXMgdmFsaWQgcHJlcGFyZVRvVXBkYXRlIHNo
b3VsZG4ndCBiZSBpbnZva2VkIG9uCiAgICAgLy8gdGhlIExheWVyVGV4dHVyZVVwZGF0ZXIuCi0g
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCk7Cisg
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2Ns
dXNpb24pOwogICAgIEVYUEVDVF9FUSgwLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+cHJlcGFyZUNvdW50KCkpOwogCiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3Qo
MCwgMCwgNTAsIDUwKSk7CiAgICAgLy8gc2V0UmVjdFRvSW52YWxpZGF0ZSB0cmlnZ2VycyBpbnZh
bGlkYXRlUmVjdCgpIGJlaW5nIGludm9rZWQgZnJvbSBwcmVwYXJlVG9VcGRhdGUuCiAgICAgbGF5
ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldFJlY3RUb0ludmFsaWRhdGUoSW50UmVj
dCgyNSwgMjUsIDUwLCA1MCksIGxheWVyLmdldCgpKTsKICAgICBsYXllci0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlQ291bnQoKTsKLSAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBub09jY2x1c2lvbik7CiAgICAgRVhQRUNU
X0VRKDEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291bnQoKSk7
CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZUNvdW50
KCk7CiAgICAgLy8gVGhlIGxheWVyIHNob3VsZCBzdGlsbCBiZSBpbnZhbGlkIGFzIHByZXBhcmVU
b1VwZGF0ZSBpbnZva2VkIGludmFsaWRhdGUuCi0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOwogICAgIEVYUEVDVF9FUSgxLCBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZUNvdW50KCkpOwogfQogCkBA
IC01NzMsNiArNTU5LDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlVcGRh
dGVSZWN0V2hlbkNvbnRlbnRCb3VuZHNBcmVTY2FsZWQpCiAKICAgICBPd25QdHI8VGV4dHVyZU1h
bmFnZXI+IHRleHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAy
NCwgMioxMDI0KjEwMjQsIDEwMjQpOwogICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllcldpdGhTY2Fs
ZWRCb3VuZHM+IGxheWVyID0gYWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyV2l0aFNjYWxlZEJv
dW5kcyh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOworICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAog
ICAgIEZha2VUZXh0dXJlQWxsb2NhdG9yIHRleHR1cmVBbGxvY2F0b3I7CiAgICAgQ0NUZXh0dXJl
VXBkYXRlciB1cGRhdGVyKCZ0ZXh0dXJlQWxsb2NhdG9yKTsKQEAgLTU4NywyMCArNTc0LDIwIEBA
IFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5VXBkYXRlUmVjdFdoZW5Db250ZW50
Qm91bmRzQXJlU2NhbGVkKQogICAgIC8vIE9uIGZpcnN0IHVwZGF0ZSwgdGhlIHVwZGF0ZVJlY3Qg
aW5jbHVkZXMgYWxsIHRpbGVzLCBldmVuIGJleW9uZCB0aGUgYm91bmRhcmllcyBvZiB0aGUgbGF5
ZXIuCiAgICAgLy8gSG93ZXZlciwgaXQgc2hvdWxkIHN0aWxsIGJlIGluIGxheWVyIHNwYWNlLCBu
b3QgY29udGVudCBzcGFjZS4KICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29udGVudEJvdW5k
cyk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKKyAgICBs
YXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsIG5vT2NjbHVzaW9uKTsKICAgICBs
YXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBFWFBFQ1Rf
RkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgMzAwLCAzMDAgKiAwLjgpLCBsYXllci0+dXBk
YXRlUmVjdCgpKTsKIAogICAgIC8vIEFmdGVyIHRoZSB0aWxlcyBhcmUgdXBkYXRlZCBvbmNlLCBh
bm90aGVyIGludmFsaWRhdGUgb25seSBuZWVkcyB0byB1cGRhdGUgdGhlIGJvdW5kcyBvZiB0aGUg
bGF5ZXIuCiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KGNvbnRlbnRCb3VuZHMpOwotICAgIGxh
eWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7CisgICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCBub09jY2x1c2lvbik7CiAgICAgbGF5ZXItPnVwZGF0
ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1Rf
RVEoRmxvYXRSZWN0KGxheWVyQm91bmRzKSwgbGF5ZXItPnVwZGF0ZVJlY3QoKSk7CiAKICAgICAv
LyBQYXJ0aWFsIHJlLXBhaW50IHNob3VsZCBhbHNvIGJlIHJlcHJlc2VudGVkIGJ5IHRoZSB1cGRh
dGVSZWN0IGluIGxheWVyIHNwYWNlLCBub3QgY29udGVudCBzcGFjZS4KICAgICBJbnRSZWN0IHBh
cnRpYWxEYW1hZ2UoMzAsIDEwMCwgMTAsIDEwKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3Qo
cGFydGlhbERhbWFnZSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRz
LCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsIG5vT2NjbHVz
aW9uKTsKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsK
ICAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoNDUsIDgwLCAxNSwgOCksIGxheWVy
LT51cGRhdGVSZWN0KCkpOwogfQpAQCAtNjE0LDYgKzYwMSw3IEBAIFRFU1QoVGlsZWRMYXllckNo
cm9taXVtVGVzdCwgdmVyaWZ5SW52YWxpZGF0aW9uV2hlbkNvbnRlbnRzU2NhbGVDaGFuZ2VzKQog
CiAgICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgdGV4dHVyZUFsbG9jYXRvcjsKICAgICBDQ1RleHR1
cmVVcGRhdGVyIHVwZGF0ZXIoJnRleHR1cmVBbGxvY2F0b3IpOworICAgIFJlZ2lvbiBub09jY2x1
c2lvbjsKIAogICAgIC8vIENyZWF0ZSBhIGxheWVyIHdpdGggb25lIHRpbGUuCiAgICAgbGF5ZXIt
PnNldEJvdW5kcyhJbnRTaXplKDEwMCwgMTAwKSk7CkBAIC02MjMsNyArNjExLDcgQEAgVEVTVChU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVuQ29udGVudHNTY2Fs
ZUNoYW5nZXMpCiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDEwMCwg
MTAwKSwgbGF5ZXItPmxhc3ROZWVkc0Rpc3BsYXlSZWN0KCkpOwogCiAgICAgLy8gUHVzaCB0aGUg
dGlsZXMgdG8gdGhlIGltcGwgc2lkZSBhbmQgY2hlY2sgdGhhdCB0aGVyZSBpcyBleGFjdGx5IG9u
ZS4KLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAw
KTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBu
b09jY2x1c2lvbik7CiAgICAgbGF5ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBk
YXRlcik7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAg
ICBFWFBFQ1RfVFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CkBAIC02MzcsNyArNjI1
LDcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVu
Q29udGVudHNTY2FsZUNoYW5nZXMpCiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgbGF5ZXItPmxhc3ROZWVkc0Rpc3BsYXlSZWN0KCkpOwogCiAgICAg
Ly8gVGhlIGltcGwgc2lkZSBzaG91bGQgZ2V0IDJ4MiB0aWxlcyBub3cuCi0gICAgbGF5ZXItPnBy
ZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgMCk7CisgICAgbGF5ZXItPnBy
ZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgbm9PY2NsdXNpb24pOwogICAg
IGxheWVyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVy
LT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5
ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwpAQCAtNjQ4LDcgKzYzNiw3IEBAIFRFU1QoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgdmVyaWZ5SW52YWxpZGF0aW9uV2hlbkNvbnRlbnRzU2NhbGVDaGFu
Z2VzKQogICAgIC8vIEludmFsaWRhdGUgdGhlIGVudGlyZSBsYXllciBhZ2FpbiwgYnV0IGRvIG5v
dCBwYWludC4gQWxsIHRpbGVzIHNob3VsZCBiZSBnb25lIG5vdyBmcm9tIHRoZQogICAgIC8vIGlt
cGwgc2lkZS4KICAgICBsYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDEsIDAsIDAsIDEpLCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKEludFJlY3QoMCwgMCwgMCwgMCksIG5vT2NjbHVzaW9uKTsKICAgICBsYXllci0+dXBk
YXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3Bl
cnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgIEVYUEVDVF9GQUxTRShsYXllckltcGwtPmhh
c1RpbGVBdCgwLCAwKSk7CkBAIC03MTQsMTAgKzcwMiwxMSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIHJlc2l6ZVRvU21hbGxlcikKIHsKICAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+
IHRleHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg2MCoxMDI0KjEwMjQsIDYw
KjEwMjQqMTAyNCwgMTAyNCk7CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IGxh
eWVyID0gYWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIu
Z2V0KCkpKTsKKyAgICBSZWdpb24gbm9PY2NsdXNpb247CiAKICAgICBsYXllci0+c2V0Qm91bmRz
KEludFNpemUoNzAwLCA3MDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgw
LCAwLCA3MDAsIDcwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAw
LCA3MDAsIDcwMCksIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAw
LCA3MDAsIDcwMCksIG5vT2NjbHVzaW9uKTsKIAogICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6
ZSgyMDAsIDIwMCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDIw
MCwgMjAwKSk7CkBAIC03OTgsMTIgKzc4NywxMyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIHRpbGVzUGFpbnRlZFdpdGhvdXRPY2NsdXNpb24pCiB7CiAgICAgT3duUHRyPFRleHR1cmVN
YW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUoNCoxMDI0KjEw
MjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1
bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFu
YWdlci5nZXQoKSkpOworICAgIFJlZ2lvbiBvY2NsdWRlZDsKIAogICAgIC8vIFRoZSB0aWxlIHNp
emUgaXMgMTAweDEwMCwgc28gdGhpcyBpbnZhbGlkYXRlcyBhbmQgdGhlbiBwYWludHMgdHdvIHRp
bGVzLgogICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOwogCiAgICAgbGF5
ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKLSAgICBsYXllci0+
cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwKTsKKyAgICBsYXllci0+
cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBvY2NsdWRlZCk7CiAgICAg
RVhQRUNUX0VRKDIsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVj
dENvdW50KCkpOwogfQogCkBAIC04MTEsMzEgKzgwMSwzMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb24pCiB7CiAgICAgT3duUHRyPFRleHR1
cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUoNCoxMDI0
KjEwMjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJv
bWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJl
TWFuYWdlci5nZXQoKSkpOwotICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXIgb2NjbHVkZWQ7Cisg
ICAgUmVnaW9uIG9jY2x1ZGVkOwogCiAgICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLgog
CiAgICAgbGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnNl
dERyYXdUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoMSwgMCwgMCwgMSwgbGF5ZXItPmJv
dW5kcygpLndpZHRoKCkgLyAyLjAsIGxheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSAvIDIuMCkpOwog
Ci0gICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjAwLCAyMDAsIDMwMCwgMTAwKSk7
CisgICAgb2NjbHVkZWQgPSBJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDEwMCk7CiAgICAgbGF5ZXIt
PnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkp
KTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwot
ICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2Ns
dWRlZCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAw
KSwgb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIAotICAgIG9jY2x1ZGVk
LnNldE9jY2x1c2lvbihJbnRSZWN0KDI1MCwgMjAwLCAzMDAsIDEwMCkpOworICAgIG9jY2x1ZGVk
ID0gSW50UmVjdCgyNTAsIDIwMCwgMzAwLCAxMDApOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVj
dChJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKKyAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCBvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VR
KDM2LTIsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50
KCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFy
ZVJlY3RDb3VudCgpOwogCi0gICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjUwLCAy
NTAsIDMwMCwgMTAwKSk7CisgICAgb2NjbHVkZWQgPSBJbnRSZWN0KDI1MCwgMjUwLCAzMDAsIDEw
MCk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsK
LSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2Nj
bHVkZWQpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYw
MCksIG9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogfQogCkBAIC04NDMsNjAgKzgzMiw1OCBA
QCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25B
bmRWaXNpYmxpdHlDb25zdHJhaW50cykKIHsKICAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IHRl
eHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwgMioxMDI0
KjEwMjQsIDEwMjQpOwogICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBsYXllciA9
IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdldCgp
KSk7Ci0gICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlciBvY2NsdWRlZDsKKyAgICBSZWdpb24gb2Nj
bHVkZWQ7CiAKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAuCiAKICAgICBsYXllci0+
c2V0Qm91bmRzKEludFNpemUoNjAwLCA2MDApKTsKLSAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9y
bShUcmFuc2Zvcm1hdGlvbk1hdHJpeCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCkud2lkdGgo
KSAvIDIuMCwgbGF5ZXItPmJvdW5kcygpLmhlaWdodCgpIC8gMi4wKSk7CiAKICAgICAvLyBUaGUg
cGFydGlhbGx5IG9jY2x1ZGVkIHRpbGVzIChieSB0aGUgMTUwIG9jY2x1c2lvbiBoZWlnaHQpIGFy
ZSB2aXNpYmxlIGJleW9uZCB0aGUgb2NjbHVzaW9uLCBzbyBub3QgY3VsbGVkLgotICAgIG9jY2x1
ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDE1MCkpOworICAgIG9jY2x1
ZGVkID0gSW50UmVjdCgyMDAsIDIwMCwgMzAwLCAxNTApOwogICAgIGxheWVyLT5zZXRWaXNpYmxl
TGF5ZXJSZWN0KEludFJlY3QoMCwgMCwgNjAwLCAzNjApKTsKICAgICBsYXllci0+aW52YWxpZGF0
ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRh
dGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7Ci0gICAgRVhQRUNUX0VRKDI0
LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkp
OworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksIG9j
Y2x1ZGVkKTsKKyAgICBFWFBFQ1RfRVEoMzYtMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICAvLyBOb3cgdGhlIHZp
c2libGUgcmVnaW9uIHN0b3BzIGF0IHRoZSBlZGdlIG9mIHRoZSBvY2NsdXNpb24gc28gdGhlIHBh
cnRseSB2aXNpYmxlIHRpbGVzIGJlY29tZSBmdWxseSBvY2NsdWRlZC4KLSAgICBvY2NsdWRlZC5z
ZXRPY2NsdXNpb24oSW50UmVjdCgyMDAsIDIwMCwgMzAwLCAxNTApKTsKKyAgICBvY2NsdWRlZCA9
IEludFJlY3QoMjAwLCAyMDAsIDMwMCwgMTUwKTsKICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVy
UmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgMzUwKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0
KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKElu
dFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwotICAgIEVYUEVDVF9FUSgyNC02LCBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKKyAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCBvY2NsdWRl
ZCk7CisgICAgRVhQRUNUX0VRKDM2LTYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCiAgICAgLy8gTm93IHRoZSB2aXNpYmxl
IHJlZ2lvbiBpcyBldmVuIHNtYWxsZXIgdGhhbiB0aGUgb2NjbHVzaW9uLCBpdCBzaG91bGQgaGF2
ZSB0aGUgc2FtZSByZXN1bHQuCi0gICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjAw
LCAyMDAsIDMwMCwgMTUwKSk7CisgICAgb2NjbHVkZWQgPSBJbnRSZWN0KDIwMCwgMjAwLCAzMDAs
IDE1MCk7CiAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdCgwLCAwLCA2MDAs
IDM0MCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAw
KSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwg
Jm9jY2x1ZGVkKTsKLSAgICBFWFBFQ1RfRVEoMjQtNiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVV
cGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0
ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgb2NjbHVkZWQpOworICAgIEVYUEVDVF9FUSgzNi02
LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsK
IH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc05vdFBhaW50ZWRXaXRob3V0
SW52YWxpZGF0aW9uKQogewogICAgIE93blB0cjxUZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFn
ZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQqMTAyNCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAy
NCk7CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IGxheWVyID0gYWRvcHRSZWYo
bmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsKLSAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyIG9jY2x1ZGVkOworICAgIFJlZ2lvbiBvY2NsdWRlZDsKIAog
ICAgIC8vIFRoZSB0aWxlIHNpemUgaXMgMTAweDEwMC4KIAogICAgIGxheWVyLT5zZXRCb3VuZHMo
SW50U2l6ZSg2MDAsIDYwMCkpOwotICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3JtKFRyYW5zZm9y
bWF0aW9uTWF0cml4KDEsIDAsIDAsIDEsIGxheWVyLT5ib3VuZHMoKS53aWR0aCgpIC8gMi4wLCBs
YXllci0+Ym91bmRzKCkuaGVpZ2h0KCkgLyAyLjApKTsKIAotICAgIG9jY2x1ZGVkLnNldE9jY2x1
c2lvbihJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDEwMCkpOworICAgIG9jY2x1ZGVkID0gSW50UmVj
dCgyMDAsIDIwMCwgMzAwLCAxMDApOwogICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KElu
dFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVj
dCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgw
LCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAog
ICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291
bnQoKTsKIAogICAgIC8vIFJlcGFpbnQgd2l0aG91dCBtYXJraW5nIGl0IGRpcnR5LgotICAgIGxh
eWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7
CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgb2Nj
bHVkZWQpOwogICAgIEVYUEVDVF9FUSgwLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIH0KIApAQCAtOTA0LDcgKzg5MSw3IEBAIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFRyYW5zZm9y
bXMpCiB7CiAgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1
cmVNYW5hZ2VyOjpjcmVhdGUoNCoxMDI0KjEwMjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBS
ZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRp
bGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOwotICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXIgb2NjbHVkZWQ7CisgICAgUmVnaW9uIG9jY2x1ZGVkOwogCiAgICAgLy8gVGhl
IHRpbGUgc2l6ZSBpcyAxMDB4MTAwLgogCkBAIC05MTQsMTIgKzkwMSwxMSBAQCBURVNUKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRUcmFuc2Zvcm1z
KQogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHNjcmVlblRyYW5zZm9ybTsKICAgICBzY3JlZW5U
cmFuc2Zvcm0uc2NhbGUoMC41KTsKICAgICBsYXllci0+c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm0o
c2NyZWVuVHJhbnNmb3JtKTsKLSAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShzY3JlZW5UcmFu
c2Zvcm0gKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCku
d2lkdGgoKSAvIDIuMCwgbGF5ZXItPmJvdW5kcygpLmhlaWdodCgpIC8gMi4wKSk7CiAKLSAgICBv
Y2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgxMDAsIDEwMCwgMTUwLCA1MCkpOworICAgIG9j
Y2x1ZGVkID0gSW50UmVjdCgxMDAsIDEwMCwgMTUwLCA1MCk7CiAgICAgbGF5ZXItPnNldFZpc2li
bGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkpKTsKICAgICBs
YXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7Cisg
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgb2NjbHVk
ZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIH0KIApAQCAtOTI3LDcgKzkxMyw3IEBAIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcp
CiB7CiAgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVN
YW5hZ2VyOjpjcmVhdGUoNCoxMDI0KjEwMjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQ
dHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVk
TGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOwotICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXIgb2NjbHVkZWQ7CisgICAgUmVnaW9uIG9jY2x1ZGVkOwogCiAgICAgLy8gVGhlIHRp
bGUgc2l6ZSBpcyAxMDB4MTAwLgogCkBAIC05MzYsMTIgKzkyMiwxMSBAQCBURVNUKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAg
IC8vIHBpeGVscywgd2hpY2ggbWVhbnMgbm9uZSBzaG91bGQgYmUgb2NjbHVkZWQuCiAgICAgbGF5
ZXItPnNldENvbnRlbnRzU2NhbGUoMC41KTsKICAgICBsYXllci0+c2V0Qm91bmRzKEludFNpemUo
NjAwLCA2MDApKTsKLSAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCkud2lkdGgoKSAvIDIuMCwgbGF5ZXItPmJv
dW5kcygpLmhlaWdodCgpIC8gMi4wKSk7CiAKLSAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50
UmVjdCgyMDAsIDIwMCwgMzAwLCAxMDApKTsKKyAgICBvY2NsdWRlZCA9IEludFJlY3QoMjAwLCAy
MDAsIDMwMCwgMTAwKTsKICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChJbnRSZWN0KElu
dFBvaW50KCksIGxheWVyLT5ib3VuZHMoKSkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRS
ZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCBvY2NsdWRlZCk7CiAgICAgLy8gVGhlIGNvbnRl
bnQgaXMgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgbGF5ZXIgKHNvIHRoZSBudW1iZXIgb2YgdGlsZXMg
aXMgZmV3ZXIpLgogICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIGNvbnRlbnQgaXMgMzAweDMwMCwg
YW5kIHNpbmNlIHRoZSB0aWxlIHNpemUgaXMgMTAwLCB0aGUKICAgICAvLyBudW1iZXIgb2YgdGls
ZXMgM3gzLgpAQCAtOTUyLDEwICs5MzcsMTAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0
LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICAvLyBUaGlzIG1ha2Vz
IHN1cmUgdGhlIHBhaW50aW5nIHdvcmtzIHdoZW4gdGhlIGNvbnRlbnQgc3BhY2UgaXMgc2NhbGVk
IHRvCiAgICAgLy8gYSBkaWZmZXJlbnQgbGF5ZXIgc3BhY2UuIEluIHRoaXMgY2FzZSB0aGUgb2Nj
bHVkZWQgcmVnaW9uIGNhdGNoZXMgdGhlCiAgICAgLy8gYmxvd24gdXAgdGlsZXMuCi0gICAgb2Nj
bHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjAwLCAyMDAsIDMwMCwgMjAwKSk7CisgICAgb2Nj
bHVkZWQgPSBJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDIwMCk7CiAgICAgbGF5ZXItPnNldFZpc2li
bGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkpKTsKICAgICBs
YXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7Cisg
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgb2NjbHVk
ZWQpOwogICAgIEVYUEVDVF9FUSg5LTEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwpAQCAtOTY0LDEyICs5NDksMTEgQEAgVEVT
VChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2Nh
bGluZykKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBzY3JlZW5UcmFuc2Zvcm07CiAgICAgc2Ny
ZWVuVHJhbnNmb3JtLnNjYWxlKDAuNSk7CiAgICAgbGF5ZXItPnNldFNjcmVlblNwYWNlVHJhbnNm
b3JtKHNjcmVlblRyYW5zZm9ybSk7Ci0gICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm0oc2NyZWVu
VHJhbnNmb3JtICogVHJhbnNmb3JtYXRpb25NYXRyaXgoMSwgMCwgMCwgMSwgbGF5ZXItPmJvdW5k
cygpLndpZHRoKCkgLyAyLjAsIGxheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSAvIDIuMCkpOwogCi0g
ICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMTAwLCAxMDAsIDE1MCwgMTAwKSk7Cisg
ICAgb2NjbHVkZWQgPSBJbnRSZWN0KDEwMCwgMTAwLCAxNTAsIDEwMCk7CiAgICAgbGF5ZXItPnNl
dFZpc2libGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkpKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAg
IGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRl
ZCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwg
b2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSg5LTEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBk
YXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogfQogCkBAIC05ODIsNiArOTY2LDcgQEAgVEVT
VChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBvcGFxdWVDb250ZW50c1JlZ2lvbikKIAogICAgIElu
dFJlY3Qgb3BhcXVlUGFpbnRSZWN0OwogICAgIFJlZ2lvbiBvcGFxdWVDb250ZW50czsKKyAgICBS
ZWdpb24gbm9PY2NsdXNpb247CiAKICAgICBJbnRSZWN0IGNvbnRlbnRCb3VuZHMgPSBJbnRSZWN0
KDAsIDAsIDEwMCwgMjAwKTsKICAgICBJbnRSZWN0IHZpc2libGVCb3VuZHMgPSBJbnRSZWN0KDAs
IDAsIDEwMCwgMTUwKTsKQEAgLTk5Myw3ICs5NzgsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKQogICAgIC8vIElmIHRoZSBsYXllciBkb2Vzbid0
IHBhaW50IG9wYXF1ZSBjb250ZW50LCB0aGVuIHRoZSBvcGFxdWVDb250ZW50c1JlZ2lvbiBzaG91
bGQgYmUgZW1wdHkuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9w
YXF1ZVBhaW50UmVjdChvcGFxdWVQYWludFJlY3QpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVj
dChjb250ZW50Qm91bmRzKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3Vu
ZHMsIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgbm9PY2Ns
dXNpb24pOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRzUmVnaW9u
KCk7CiAgICAgRVhQRUNUX1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgpKTsKIApAQCAtMTAw
MSwxNCArOTg2LDE0IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgb3BhcXVlQ29udGVu
dHNSZWdpb24pCiAgICAgb3BhcXVlUGFpbnRSZWN0ID0gSW50UmVjdCgxMCwgMTAsIDkwLCAxOTAp
OwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJl
Y3Qob3BhcXVlUGFpbnRSZWN0KTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29udGVudEJv
dW5kcyk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKKyAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsIG5vT2NjbHVzaW9uKTsKICAg
ICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT5vcGFxdWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVY
UEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihvcGFxdWVQYWludFJlY3QsIHZpc2libGVCb3VuZHMp
LCBvcGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250
ZW50cy5yZWN0cygpLnNpemUoKSk7CiAKICAgICAvLyBJZiB3ZSBwYWludCBhZ2FpbiB3aXRob3V0
IGludmFsaWRhdGluZywgdGhlIHNhbWUgc3R1ZmYgc2hvdWxkIGJlIG9wYXF1ZS4KICAgICBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3Qo
KSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKKyAgICBs
YXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsIG5vT2NjbHVzaW9uKTsKICAgICBv
cGFxdWVDb250ZW50cyA9IGxheWVyLT5vcGFxdWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVYUEVD
VF9FUV9SRUNUKGludGVyc2VjdGlvbihvcGFxdWVQYWludFJlY3QsIHZpc2libGVCb3VuZHMpLCBv
cGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50
cy5yZWN0cygpLnNpemUoKSk7CkBAIC0xMDE3LDcgKzEwMDIsNyBAQCBURVNUKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKQogICAgIC8vIG5vdCBiZSBhZmZlY3Rl
ZC4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRS
ZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwg
MSwgMSkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7Cisg
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCBub09jY2x1c2lvbik7CiAg
ICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAgICBF
WFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRz
KSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29u
dGVudHMucmVjdHMoKS5zaXplKCkpOwpAQCAtMTAyNiw3ICsxMDExLDcgQEAgVEVTVChUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCBvcGFxdWVDb250ZW50c1JlZ2lvbikKICAgICAvLyBub3QgYmUgYWZm
ZWN0ZWQuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBh
aW50UmVjdChJbnRSZWN0KCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDEw
LCAxMCwgMSwgMSkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywg
MCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCBub09jY2x1c2lv
bik7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsK
ICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24oSW50UmVjdCgxMCwgMTAwLCA5MCwgMTAw
KSwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKICAgICBFWFBFQ1Rf
RVEoMXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3RzKCkuc2l6ZSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>