<?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>85097</bug_id>
          
          <creation_ts>2012-04-27 13:53:55 -0700</creation_ts>
          <short_desc>[V8] Implement a helper method V8Proxy::throwNotEnoughArgumentsError()</short_desc>
          <delta_ts>2012-04-27 18:00:52 -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>WebCore JavaScript</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>84074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>611865</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-27 13:53:55 -0700</bug_when>
    <thetext>In bug 84787, kbr requested to avoid hard-coding throwError(&quot;Not enough arguments&quot;, V8Proxy::TypeError) here and there. In this bug we implement V8Proxy::throwNotEnoughArgumentsError() and use it in V8 bindings.

I&apos;ll write another patch for JSC bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611890</commentid>
    <comment_count>1</comment_count>
      <attachid>139274</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-27 14:13:56 -0700</bug_when>
    <thetext>Created attachment 139274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611892</commentid>
    <comment_count>2</comment_count>
      <attachid>139276</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-27 14:15:23 -0700</bug_when>
    <thetext>Created attachment 139276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611922</commentid>
    <comment_count>3</comment_count>
      <attachid>139276</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-27 14:56:31 -0700</bug_when>
    <thetext>Comment on attachment 139276
Patch

Looks good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611955</commentid>
    <comment_count>4</comment_count>
      <attachid>139276</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-27 15:39:39 -0700</bug_when>
    <thetext>Comment on attachment 139276
Patch

Forgot to update run-bindings-tests results...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611956</commentid>
    <comment_count>5</comment_count>
      <attachid>139294</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-27 15:39:48 -0700</bug_when>
    <thetext>Created attachment 139294
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612052</commentid>
    <comment_count>6</comment_count>
      <attachid>139294</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-27 18:00:06 -0700</bug_when>
    <thetext>Comment on attachment 139294
patch for landing

Clearing flags on attachment: 139294

Committed r115522: &lt;http://trac.webkit.org/changeset/115522&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139274</attachid>
            <date>2012-04-27 14:13:56 -0700</date>
            <delta_ts>2012-04-27 14:15:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85097-20120427141355.patch</filename>
            <type>text/plain</type>
            <size>9643</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I2NDBiOTE4MDU2Njdi
NGVhYjA0NTE0ZTBiYzAxZDE5NWFiZjFiMy4uMmZiNjFiNmI5NjM0ZTY4NTYyMmNkOWYwNjdjZmZj
YzFjNTEyMzQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTI3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEltcGxlbWVu
dCBhIGhlbHBlciBtZXRob2QgVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTA5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGJ1ZyA4
NDc4Nywga2JyIHJlcXVlc3RlZCB0byBhdm9pZCBoYXJkLWNvZGluZworICAgICAgICB0aHJvd0Vy
cm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcikgaGVyZSBhbmQg
dGhlcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBWOFByb3h5Ojp0aHJvd05vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKCkKKyAgICAgICAgYW5kIHVzZXMgaXQgaW4gVjggYmluZGluZ3Mu
CisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVB
cmd1bWVudHNDb3VudENoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlRXZlbnRDb25zdHJ1Y3RvckNh
bGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJnbWVudHNFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgIChWOFBy
b3h5KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6Z2V0VWludDhDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpWOERhdGFWaWV3OjpzZXRJbnQ4Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhE
YXRhVmlldzo6c2V0VWludDhDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEaXJlY3Rv
cnlFbnRyeTo6Z2V0RGlyZWN0b3J5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEaXJl
Y3RvcnlFbnRyeTo6Z2V0RmlsZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhJbnRlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludGVudDo6
Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
S2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2spOgorCiAyMDEyLTA0
LTI3ICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIElu
ZmluaXRlIGJhY2tncm91bmRDbGlwUmVjdCBzaG91bGQgbm90IGJlIHNjcm9sbGVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRl
eCA3YmJmNGUyYWM3MjQ0ZDJmYWM5OTA4YjdlM2QxZjVmZjEyMjBlMjUzLi4yOTU3ZDVlMzY2YjFm
NGExMTlmNjc0MmUyZmQ1ZDUxODkwNGQ5OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTUyNiw3ICsxNTI2LDcgQEAg
c3ViIEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjawogICAgIG15ICRhcmd1bWVudHNDb3VudENo
ZWNrU3RyaW5nID0gIiI7CiAgICAgaWYgKCRudW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkgewogICAg
ICAgICAkYXJndW1lbnRzQ291bnRDaGVja1N0cmluZyAuPSAiICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgJG51bU1hbmRhdG9yeVBhcmFtcylcbiI7Ci0gICAgICAgICRhcmd1bWVudHNDb3VudENoZWNr
U3RyaW5nIC49ICIgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFwiTm90IGVub3VnaCBhcmd1bWVu
dHNcIiwgVjhQcm94eTo6VHlwZUVycm9yKTtcbiI7CisgICAgICAgICRhcmd1bWVudHNDb3VudENo
ZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCk7XG4iOwogICAgIH0KICAgICByZXR1cm4gJGFyZ3VtZW50c0NvdW50Q2hlY2tTdHJpbmc7CiB9
CkBAIC0xODA1LDcgKzE4MDUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgke2ltcGxDbGFz
c05hbWV9Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAgICAgICBy
ZXR1cm4gYXJncy5Ib2xkZXIoKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlw
ZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsK
IAogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
PiwgdHlwZSwgYXJnc1swXSk7CiAgICAgJHtpbXBsQ2xhc3NOYW1lfUluaXQgZXZlbnRJbml0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAppbmRleCBjZjczNDE2ZmQ2MWRlYjc1
ZmMyZDM5M2QxOWRiNmRjMDAxZDJiNGI1Li5lZTJjZTI4ZDk2NzEzZDg4ZTBlZjZhOGEzNjNlYmUz
YTRjNDk3YWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtNTkz
LDYgKzU5MywxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhQcm94eTo6dGhyb3dUeXBlRXJy
b3IoKQogICAgIHJldHVybiB0aHJvd0Vycm9yKFR5cGVFcnJvciwgIlR5cGUgZXJyb3IiKTsKIH0K
IAordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJnbWVudHNF
cnJvcigpCit7CisgICAgcmV0dXJuIHRocm93RXJyb3IoVHlwZUVycm9yLCAiTm90IGVub3VnaCBh
cmd1bWVudHMiKTsKK30KKwogdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBWOFByb3h5Ojpjb250ZXh0
KEZyYW1lKiBmcmFtZSkKIHsKICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSBW
OFByb3h5OjptYWluV29ybGRDb250ZXh0KGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuaAppbmRleCBlYWFhN2U2ZTU0MDY4YjRkZDkzYzRmODIzZGJiOGU4MjhkY2JiNTc2Li5m
ZDllN2NiODRjZGZiMGNlODc4OWE2YjA1NTRkM2QxOGIwOGU5YTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0yNDIsNiArMjQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIC8vIEhlbHBlcnMgZm9yIHRocm93aW5nIHN5bnRheCBhbmQgdHlwZSBlcnJv
cnMgd2l0aCBwcmVkZWZpbmVkIG1lc3NhZ2VzLgogICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogCiAgICAgICAgIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCgpOwogICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRl
eHQ+IG1haW5Xb3JsZENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAppbmRleCAxZDNjZTYwNjA5ZmFkM2Ix
NTNkNzQ2YzhjZjdlZDk0ZTk4ZjdkMDJmLi5iNWQ4MmUwZmZiYjkwZmE2MmZiZmE3MGExY2MwOTMz
MjQzNGZlYzI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBAIC02OCw3ICs2OCw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5nZXRJbnQ4Iik7CiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3Vn
aCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gdGhyb3dO
b3RFbm91Z2hBcmdtZW50c0Vycm9yKCk7CiAKICAgICBEYXRhVmlldyogaW1wID0gVjhEYXRhVmll
dzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBA
IC04NSw3ICs4NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpnZXRVaW50
OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uRGF0YVZpZXcuZ2V0VWludDgiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5
cGVFcnJvcik7CisgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ21lbnRzRXJyb3IoKTsK
IAogICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6c2V0SW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuc2V0SW50OCIpOwog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5v
dCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJu
IHRocm93Tm90RW5vdWdoQXJnbWVudHNFcnJvcigpOwogCiAgICAgRGF0YVZpZXcqIGltcCA9IFY4
RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwpAQCAtMTE4LDcgKzExOCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3
OjpzZXRVaW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5D
X1NUQVRTKCJET00uRGF0YVZpZXcuc2V0VWludDgiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4
UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ21lbnRz
RXJyb3IoKTsKIAogICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3VzdG9t
LmNwcAppbmRleCBhODA2MmZiNzc3OGZlYzU1OTQxMTVkMmZhZjZiZmNjYzMxZTVkMWU1Li5lYjVj
MGQ3MzgyODM1ZTk3MzVmYWViODlhMTU4MDgxMDZjODVkNDViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlDdXN0
b20uY3BwCkBAIC01MSw3ICs1MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERpcmVjdG9y
eUVudHJ5OjpnZXREaXJlY3RvcnlDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgRGly
ZWN0b3J5RW50cnkqIGltcCA9IFY4RGlyZWN0b3J5RW50cnk6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOwogCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAg
ICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmdtZW50c0Vycm9yKCk7CiAKICAgICBTVFJJTkdfVE9f
VjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPFdpdGhVbmRlZmluZWRPck51
bGxDaGVjaz4sIHBhdGgsIGFyZ3NbMF0pOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9IDEpIHsK
QEAgLTk1LDcgKzk1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGlyZWN0b3J5RW50cnk6
OmdldEZpbGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAgICBEaXJlY3RvcnlF
bnRyeSogaW1wID0gVjhEaXJlY3RvcnlFbnRyeTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAK
ICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJO
b3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVy
biB0aHJvd05vdEVub3VnaEFyZ21lbnRzRXJyb3IoKTsKIAogICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
PiwgcGF0aCwgYXJnc1swXSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3Ry
dWN0b3IuY3BwCmluZGV4IGE4NTk5MDE0ZDZhMGYxZTRlZjY0NDVjNmQxZjAzMjJmNTk5N2MxZmEu
LmMwZTI2OTU1NzMzOTFlMWYwYjE3ZDUzMjU5MzdlYTBkNmIyZmQ0NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50ZW50Ojpj
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKENv
bnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5n
T2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKICAgICBpZiAoYXJncy5MZW5n
dGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFy
Z21lbnRzRXJyb3IoKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA9PSAxKSB7CiAgICAgICAgIC8v
IFVzZSB0aGUgZGljdGlvbmFyeSBjb25zdHJ1Y3Rvci4gVGhpcyBibG9jayB3aWxsIHJldHVybiBp
ZiB0aGUKICAgICAgICAgLy8gYXJndW1lbnQgaXNuJ3QgYSB2YWxpZCBEaWN0aW9uYXJ5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAppbmRleCA1Mzg1MDA3NzAwMDc3MGNj
MDMzYjYwNTAzODY3Mjc4MDRkZjVmN2FmLi5hNDJlNThmY2QyMjgxYzQ0YmJhY2E0ZjUxYzFmY2Jj
ZjIzZmE5NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcApAQCAt
NjEsNyArNjEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcgogICAgICAgICByZXR1cm4gYXJn
cy5Ib2xkZXIoKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsK
KyAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJnbWVudHNFcnJvcigpOwogCiAgICAgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gYXJnID0gYXJnc1swXTsKICAgICBpZiAoIWFyZy0+SXNPYmplY3Qo
KSkKQEAgLTgzLDcgKzgzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0TXV0YXRp
b25PYnNlcnZlcjo6b2JzZXJ2ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWUKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUiKTsKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFy
Z3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiB0aHJvd05vdEVu
b3VnaEFyZ21lbnRzRXJyb3IoKTsKICAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBpbXAgPSBW
OFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVY
Q0VQVElPTl9CTE9DSyhOb2RlKiwgdGFyZ2V0LCBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0p
ID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0p
KSA6IDApOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139276</attachid>
            <date>2012-04-27 14:15:23 -0700</date>
            <delta_ts>2012-04-27 18:00:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85097-20120427141522.patch</filename>
            <type>text/plain</type>
            <size>9752</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I2NDBiOTE4MDU2Njdi
NGVhYjA0NTE0ZTBiYzAxZDE5NWFiZjFiMy4uMmZiNjFiNmI5NjM0ZTY4NTYyMmNkOWYwNjdjZmZj
YzFjNTEyMzQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTI3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIEltcGxlbWVu
dCBhIGhlbHBlciBtZXRob2QgVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTA5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGJ1ZyA4
NDc4Nywga2JyIHJlcXVlc3RlZCB0byBhdm9pZCBoYXJkLWNvZGluZworICAgICAgICB0aHJvd0Vy
cm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcikgaGVyZSBhbmQg
dGhlcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBWOFByb3h5Ojp0aHJvd05vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKCkKKyAgICAgICAgYW5kIHVzZXMgaXQgaW4gVjggYmluZGluZ3Mu
CisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVB
cmd1bWVudHNDb3VudENoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlRXZlbnRDb25zdHJ1Y3RvckNh
bGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJnbWVudHNFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgIChWOFBy
b3h5KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6Z2V0VWludDhDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpWOERhdGFWaWV3OjpzZXRJbnQ4Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhE
YXRhVmlldzo6c2V0VWludDhDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEaXJlY3Rv
cnlFbnRyeTo6Z2V0RGlyZWN0b3J5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEaXJl
Y3RvcnlFbnRyeTo6Z2V0RmlsZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhJbnRlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludGVudDo6
Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
S2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2spOgorCiAyMDEyLTA0
LTI3ICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIElu
ZmluaXRlIGJhY2tncm91bmRDbGlwUmVjdCBzaG91bGQgbm90IGJlIHNjcm9sbGVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRl
eCA3YmJmNGUyYWM3MjQ0ZDJmYWM5OTA4YjdlM2QxZjVmZjEyMjBlMjUzLi5mNzFjM2JiOGEwNTQ4
NmNmMjdiZTJkODJmZDViNDZhYmExYzRiZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTUyNiw3ICsxNTI2LDcgQEAg
c3ViIEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjawogICAgIG15ICRhcmd1bWVudHNDb3VudENo
ZWNrU3RyaW5nID0gIiI7CiAgICAgaWYgKCRudW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkgewogICAg
ICAgICAkYXJndW1lbnRzQ291bnRDaGVja1N0cmluZyAuPSAiICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgJG51bU1hbmRhdG9yeVBhcmFtcylcbiI7Ci0gICAgICAgICRhcmd1bWVudHNDb3VudENoZWNr
U3RyaW5nIC49ICIgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFwiTm90IGVub3VnaCBhcmd1bWVu
dHNcIiwgVjhQcm94eTo6VHlwZUVycm9yKTtcbiI7CisgICAgICAgICRhcmd1bWVudHNDb3VudENo
ZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKCk7XG4iOwogICAgIH0KICAgICByZXR1cm4gJGFyZ3VtZW50c0NvdW50Q2hlY2tT
dHJpbmc7CiB9CkBAIC0xODA1LDcgKzE4MDUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgk
e2ltcGxDbGFzc05hbWV9Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAog
ICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwg
MSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQ
cm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoKTsKIAogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwgYXJnc1swXSk7CiAgICAgJHtpbXBsQ2xhc3NOYW1l
fUluaXQgZXZlbnRJbml0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAppbmRl
eCBjZjczNDE2ZmQ2MWRlYjc1ZmMyZDM5M2QxOWRiNmRjMDAxZDJiNGI1Li40OTU5M2E0ZTgyN2M0
NmU4OGI2ZGI4Mzg0MGQ0NjQ2OWZiOGZkNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmNwcApAQCAtNTkzLDYgKzU5MywxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhQ
cm94eTo6dGhyb3dUeXBlRXJyb3IoKQogICAgIHJldHVybiB0aHJvd0Vycm9yKFR5cGVFcnJvciwg
IlR5cGUgZXJyb3IiKTsKIH0KIAordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4UHJveHk6OnRocm93
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKQoreworICAgIHJldHVybiB0aHJvd0Vycm9yKFR5cGVF
cnJvciwgIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7Cit9CisKIHY4OjpMb2NhbDx2ODo6Q29udGV4
dD4gVjhQcm94eTo6Y29udGV4dChGcmFtZSogZnJhbWUpCiB7CiAgICAgdjg6OkxvY2FsPHY4OjpD
b250ZXh0PiBjb250ZXh0ID0gVjhQcm94eTo6bWFpbldvcmxkQ29udGV4dChmcmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKaW5kZXggZWFhYTdlNmU1NDA2OGI0ZGQ5M2M0Zjgy
M2RiYjhlODI4ZGNiYjU3Ni4uZmQ5ZTdjYjg0Y2RmYjBjZTg3ODlhNmIwNTU0ZDNkMThiMDhlOWEz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtMjQyLDYgKzI0Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBIZWxwZXJzIGZvciB0aHJvd2luZyBz
eW50YXggYW5kIHR5cGUgZXJyb3JzIHdpdGggcHJlZGVmaW5lZCBtZXNzYWdlcy4KICAgICAgICAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0aHJvd1R5cGVFcnJvcigpOworICAgICAgICBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
KTsKIAogICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQoKTsKICAgICAgICAg
djg6OkxvY2FsPHY4OjpDb250ZXh0PiBtYWluV29ybGRDb250ZXh0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKaW5k
ZXggMWQzY2U2MDYwOWZhZDNiMTUzZDc0NmM4Y2Y3ZWQ5NGU5OGY3ZDAyZi4uYmE1ZjhjNDU4ZDU1
YWE0MmNmMjIwMzM3MjNiNTE2ODk3ZmY3Yzg1YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcApAQCAtNjgsNyArNjgs
NyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Z2V0SW50OENhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcu
Z2V0SW50OCIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAg
ICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKIAog
ICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTg1LDcgKzg1LDcgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmdldFVpbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5nZXRVaW50OCIpOwogICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBl
bm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKIAogICAgIERhdGFWaWV3KiBp
bXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhE
YXRhVmlldzo6c2V0SW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuc2V0SW50OCIpOwogICAgIGlmIChhcmdzLkxlbmd0
aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRz
IiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKIAogICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAg
LTExOCw3ICsxMTgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6c2V0VWlu
dDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLkRhdGFWaWV3LnNldFVpbnQ4Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpU
eXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcigpOwogCiAgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlDdXN0
b20uY3BwCmluZGV4IGE4MDYyZmI3Nzc4ZmVjNTU5NDExNWQyZmFmNmJmY2NjMzFlNWQxZTUuLjE5
ZDdhM2I2OWIzNTFlZWE1MGJiNDM5NmM5ODE4MWZiYzYyMzU4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeUN1
c3RvbS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGlyZWN0
b3J5RW50cnk6OmdldERpcmVjdG9yeUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMKICAgICBE
aXJlY3RvcnlFbnRyeSogaW1wID0gVjhEaXJlY3RvcnlFbnRyeTo6dG9OYXRpdmUoYXJncy5Ib2xk
ZXIoKSk7CiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAKICAg
ICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPFdpdGhV
bmRlZmluZWRPck51bGxDaGVjaz4sIHBhdGgsIGFyZ3NbMF0pOwogICAgIGlmIChhcmdzLkxlbmd0
aCgpIDw9IDEpIHsKQEAgLTk1LDcgKzk1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGly
ZWN0b3J5RW50cnk6OmdldEZpbGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAg
ICBEaXJlY3RvcnlFbnRyeSogaW1wID0gVjhEaXJlY3RvcnlFbnRyeTo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7Cisg
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAK
ICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPFdp
dGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHBhdGgsIGFyZ3NbMF0pOwogICAgIGlmIChhcmdzLkxl
bmd0aCgpIDw9IDEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcAppbmRleCBhODU5OTAxNGQ2YTBmMWU0ZWY2
NDQ1YzZkMWYwMzIyZjU5OTdjMWZhLi5kODdlZDc1ZDI3MDkxY2NhNWRjNzNiM2ViMjMyMmE5MWVh
ZGJhZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
bnRlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SW50ZW50Q29uc3RydWN0b3IuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEludGVudDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9PSBDb25zdHJ1
Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVy
KCk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICBy
ZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIGlmIChh
cmdzLkxlbmd0aCgpID09IDEpIHsKICAgICAgICAgLy8gVXNlIHRoZSBkaWN0aW9uYXJ5IGNvbnN0
cnVjdG9yLiBUaGlzIGJsb2NrIHdpbGwgcmV0dXJuIGlmIHRoZQogICAgICAgICAvLyBhcmd1bWVu
dCBpc24ndCBhIHZhbGlkIERpY3Rpb25hcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwCmluZGV4IDUzODUwMDc3MDAwNzcwY2MwMzNiNjA1MDM4NjcyNzgwNGRmNWY3YWYu
LmU3NWI5NDQ3NmIyNjVkYjJlZWJiOWUxNzE0MDUwNzhhNTIzOWI4N2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktp
dE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC02MSw3ICs2MSw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyCiAgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogCiAgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBh
cmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gYXJnID0gYXJnc1swXTsKICAgICBpZiAoIWFyZy0+SXNPYmplY3QoKSkKQEAgLTgzLDcgKzgz
LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6b2Jz
ZXJ2ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWUKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJL
aXRNdXRhdGlvbk9ic2VydmVyLm9ic2VydmUiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIp
Ci0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJv
eHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCk7CiAgICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlciogaW1wID0gVjhXZWJL
aXRNdXRhdGlvbk9ic2VydmVyOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJ
T05fQkxPQ0soTm9kZSosIHRhcmdldCwgVjhOb2RlOjpIYXNJbnN0YW5jZShhcmdzWzBdKSA/IFY4
Tm9kZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKSkgOiAw
KTsKIAo=
</data>
<flag name="commit-queue"
          id="144871"
          type_id="3"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139294</attachid>
            <date>2012-04-27 15:39:48 -0700</date>
            <delta_ts>2012-04-27 18:00:06 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-85097-20120427153947.patch</filename>
            <type>text/plain</type>
            <size>41938</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I2NDBiOTE4MDU2Njdi
NGVhYjA0NTE0ZTBiYzAxZDE5NWFiZjFiMy4uMWUxYTE1ZjRlMDA4ZjE2MTBlYjJiYTU4MjdhZDI4
NTA1NjQ0MmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0wNC0yNyAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBJbXBsZW1l
bnQgYSBoZWxwZXIgbWV0aG9kIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUwOTcK
KworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCisKKyAgICAgICAgSW4gYnVn
IDg0Nzg3LCBrYnIgcmVxdWVzdGVkIHRvIGF2b2lkIGhhcmQtY29kaW5nCisgICAgICAgIHRocm93
RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKSBoZXJlIGFu
ZCB0aGVyZS4KKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIFY4UHJveHk6OnRocm93Tm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoKQorICAgICAgICBhbmQgdXNlcyBpdCBpbiBWOCBiaW5kaW5n
cy4KKworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0
ZUFyZ3VtZW50c0NvdW50Q2hlY2spOgorICAgICAgICAoR2VuZXJhdGVFdmVudENvbnN0cnVjdG9y
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmdtZW50c0Vycm9yKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuaDoKKyAgICAgICAgKFY4
UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RGF0YVZpZXc6OmdldEludDhDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOERhdGFWaWV3OjpnZXRVaW50OENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4RGF0YVZpZXc6OnNldEludDhDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpW
OERhdGFWaWV3OjpzZXRVaW50OENhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERpcmVj
dG9yeUVudHJ5OjpnZXREaXJlY3RvcnlDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERp
cmVjdG9yeUVudHJ5OjpnZXRGaWxlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2Vi
S2l0TXV0YXRpb25PYnNlcnZlcjo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpWOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Om9ic2VydmVDYWxsYmFjayk6CisKKyAgICAg
ICAgVGVzdDogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogTW9kaWZpZWQgYXMgZGVzY3JpYmVk
IGFib3ZlLgorICAgICAgICAoR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrKToKKyAgICAgICAg
KEdlbmVyYXRlRXZlbnRDb25zdHJ1Y3RvckNhbGxiYWNrKToKKworICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4UHJveHkuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnRocm93
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAoVjhQcm94eSk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhEYXRhVmlldzo6Z2V0SW50OENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RGF0YVZp
ZXc6OmdldFVpbnQ4Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6c2V0
SW50OENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RGF0YVZpZXc6OnNldFVpbnQ4Q2Fs
bGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RGlyZWN0b3J5RW50cnk6OmdldERpcmVjdG9y
eUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RGlyZWN0b3J5RW50cnk6OmdldEZpbGVD
YWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhJbnRlbnQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpj
b25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViS2l0TXV0YXRpb25P
YnNlcnZlcjo6b2JzZXJ2ZUNhbGxiYWNrKToKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHA6IFVwZGF0ZWQgcnVuLWJpbmRpbmdzLXRlc3RzLgor
ICAgICAgICAoV2ViQ29yZTo6RmxvYXQ2NEFycmF5VjhJbnRlcm5hbDo6Zm9vQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdEFjdGl2ZURPTU9iamVjdFY4SW50ZXJuYWw6OmV4
Y2l0aW5nRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0QWN0aXZlRE9N
T2JqZWN0VjhJbnRlcm5hbDo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWw6OmFub3RoZXJGdW5jdGlv
bkNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVj
dG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdEV2ZW50
VGFyZ2V0VjhJbnRlcm5hbDo6aXRlbUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RF
dmVudFRhcmdldFY4SW50ZXJuYWw6OmRpc3BhdGNoRXZlbnRDYWxsYmFjayk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsTWV0aG9kMkNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxs
YmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJWOEludGVybmFsOjptZXRob2RDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjppbnRNZXRob2RXaXRoQXJnc0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RXaXRo
QXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRo
b2RXaXRoU2VxdWVuY2VBcmdDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJ
bnRlcm5hbDo6bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93
c0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxp
emVkVmFsdWVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
aWRiS2V5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om9w
dGlvbnNPYmplY3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kVHdvT3B0aW9uYWxBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4
SW50ZXJuYWw6Om1ldGhvZFdpdGhDYWxsYmFja0FyZ0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFj
a0FyZ0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVy
bG9hZGVkTWV0aG9kMUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVy
bmFsOjpvdmVybG9hZGVkTWV0aG9kMkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RP
YmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kM0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kNENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kNUNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9k
NkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9h
ZGVkTWV0aG9kN0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
OjpvdmVybG9hZGVkTWV0aG9kMTFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
VjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDEyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRo
b2QyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZl
cnQxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZl
cnQyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZl
cnQzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZl
cnQ0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZl
cnQ1Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmlj
dEZ1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T2JqOjpjb25zdHJ1
Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjphY2NlcHRUcmFuc2Zl
ckxpc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorCiAyMDEyLTA0LTI3ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZmluaXRlIGJh
Y2tncm91bmRDbGlwUmVjdCBzaG91bGQgbm90IGJlIHNjcm9sbGVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA3YmJmNGUy
YWM3MjQ0ZDJmYWM5OTA4YjdlM2QxZjVmZjEyMjBlMjUzLi5mNzFjM2JiOGEwNTQ4NmNmMjdiZTJk
ODJmZDViNDZhYmExYzRiZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTUyNiw3ICsxNTI2LDcgQEAgc3ViIEdlbmVy
YXRlQXJndW1lbnRzQ291bnRDaGVjawogICAgIG15ICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5n
ID0gIiI7CiAgICAgaWYgKCRudW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkgewogICAgICAgICAkYXJn
dW1lbnRzQ291bnRDaGVja1N0cmluZyAuPSAiICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgJG51bU1h
bmRhdG9yeVBhcmFtcylcbiI7Ci0gICAgICAgICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5nIC49
ICIgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFwiTm90IGVub3VnaCBhcmd1bWVudHNcIiwgVjhQ
cm94eTo6VHlwZUVycm9yKTtcbiI7CisgICAgICAgICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5n
IC49ICIgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCk7XG4iOwogICAgIH0KICAgICByZXR1cm4gJGFyZ3VtZW50c0NvdW50Q2hlY2tTdHJpbmc7CiB9
CkBAIC0xODA1LDcgKzE4MDUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgke2ltcGxDbGFz
c05hbWV9Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAgICAgICBy
ZXR1cm4gYXJncy5Ib2xkZXIoKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlw
ZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoKTsKIAogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQ
YXJhbWV0ZXI8PiwgdHlwZSwgYXJnc1swXSk7CiAgICAgJHtpbXBsQ2xhc3NOYW1lfUluaXQgZXZl
bnRJbml0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKaW5kZXggNjM4Zjk2MjlkOWFlMmU5YzM2YzQ2MDFm
OWI4ZjRkNmMwMTg0ZGNjYS4uOTRiZTUxNTAwNjE1MjhkNTY2ZWIwOTkyY2Y2OTViZDJjYzQ1NzY2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
RmxvYXQ2NEFycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gZm9vQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsK
ICAgICBJTkNfU1RBVFMoIkRPTS5GbG9hdDY0QXJyYXkuZm9vIik7CiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVu
dHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIEZsb2F0NjRBcnJheSogaW1wID0gVjhGbG9h
dDY0QXJyYXk6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhG
bG9hdDMyQXJyYXkqLCBhcnJheSwgVjhGbG9hdDMyQXJyYXk6Okhhc0luc3RhbmNlKE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhGbG9hdDMy
QXJyYXk6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgcmV0
dXJuIHRvVjgoaW1wLT5mb28oYXJyYXkpLCBhcmdzLkdldElzb2xhdGUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9N
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDA4OGNhMTgwNjE3NDk3NWJhMTg2Y2M0YzIzNDY0
NTE2YjQxZTVmMTMuLjM1ZTdhZGM4NzNmYjNmMGNiNDUyOWUwNzE2ODU1NDAyNGE1ZTRjYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RB
Y3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZXhjaXRpbmdGdW5jdGlvbkNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdEFjdGl2ZURPTU9i
amVjdC5leGNpdGluZ0Z1bmN0aW9uIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpU
eXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcigpOwogICAgIFRlc3RBY3RpdmVET01PYmplY3QqIGltcCA9IFY4VGVzdEFjdGl2ZURP
TU9iamVjdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYgKCFWOEJpbmRpbmdTZWN1
cml0eTo6Y2FuQWNjZXNzRnJhbWUoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgaW1wLT5mcmFtZSgp
LCB0cnVlKSkKICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwpAQCAtNjQs
NyArNjQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBvc3RNZXNzYWdlQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
QWN0aXZlRE9NT2JqZWN0LnBvc3RNZXNzYWdlIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAx
KQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFBy
b3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigpOwogICAgIFRlc3RBY3RpdmVET01PYmplY3QqIGltcCA9IFY4VGVzdEFj
dGl2ZURPTU9iamVjdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgU1RSSU5HX1RPX1Y4
UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBtZXNzYWdlLCBNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAt
PnBvc3RNZXNzYWdlKG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5j
cHAKaW5kZXggYWU0NDlhNDVlMmUwNjI0NTEwMWYyOWIxZTE4MzkxMGNmZjljMDE0MS4uZDNhNTg5
YjBkMjc3YWM4ZjE0NjNkZDkxNGVkM2M3ZDA3MTA0NWQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gYW5vdGhlckZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuYW5vdGhlckZ1
bmN0aW9uIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAg
ICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAg
IFRlc3RDdXN0b21OYW1lZEdldHRlciogaW1wID0gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAtPmFub3RoZXJGdW5jdGlvbihzdHIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGQyYTY4ZGRiMmVlYWVi
ODViYjRmYWIwNmVhNDEwNTBmOGE4ZTUyNDkuLjcyN2UwMmJjNzhiZGEwNWNhYzczNDZmZGVjMTcy
MDgwM2NlOWJlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6
OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3UKICAgICAgICAgcmV0dXJuIGFyZ3Mu
SG9sZGVyKCk7CiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7Cisg
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAK
ICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4s
IHR5cGUsIGFyZ3NbMF0pOwogICAgIFRlc3RFdmVudENvbnN0cnVjdG9ySW5pdCBldmVudEluaXQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCA4N2FhODg3NTllZDhhNTlmYTQzYTU0MTNm
OGVkNDlkMzc3ODZkYmJiLi4xZWRmZWM0OGJkMTlmNzljNzQwNDQxN2QzZTFlNTc5M2ZlNGQ2YjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBpdGVtQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0RXZlbnRUYXJnZXQuaXRlbSIpOwogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91
Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4UHJv
eHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0RXZlbnRUYXJnZXQq
IGltcCA9IFY4VGVzdEV2ZW50VGFyZ2V0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICB7CkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gZGlzcGF0Y2hFdmVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdEV2ZW50VGFyZ2V0LmRpc3BhdGNo
RXZlbnQiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAgICAg
VGVzdEV2ZW50VGFyZ2V0KiBpbXAgPSBWOFRlc3RFdmVudFRhcmdldDo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJm
YWNlLmNwcAppbmRleCA5NDIwOTQ4MTdhYTQwN2EwZWYzMjk5M2RhNGVhNTFhYjhjMjI3OTk0Li5l
MjA1OGI5N2Y5Y2M2YWNhYjMyNjhjNTQwZDkxMWRmYjBlNWI5N2YxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJm
YWNlLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
c3VwcGxlbWVudGFsTWV0aG9kMkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyCiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVyZmFjZS5zdXBwbGVtZW50YWxNZXRob2QyIik7CiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90
IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4g
VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIFRlc3RJbnRlcmZh
Y2UqIGltcCA9IFY4VGVzdEludGVyZmFjZTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgewpAQCAtMjEzLDcgKzIxMyw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFRlc3RJbnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYKICAgICBpZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50KCkgPT0gQ29u
c3RydWN0b3JNb2RlOjpXcmFwRXhpc3RpbmdPYmplY3QpCiAgICAgICAgIHJldHVybiBhcmdzLkhv
bGRlcigpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93
RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggM2NkZDNjMzIxNDc5MzYyMjQwZTgyNjU1YTA0YWQwODNj
MjQzZDg4ZC4uZjEyNTUyYTYyMTBjZDM1ZTUyZTg3YzljOTgxOWYxNjI0ZDdjNzdlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtNDQsNyArNDQs
NyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZENhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIubWV0aG9kIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBl
RXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcigpOwogICAgIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBpbXAgPSBWOFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJ
T05fQkxPQ0soUmVmUHRyPE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCBsaXN0ZW5lciwgTWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpbXAtPm1ldGhvZChsaXN0ZW5lcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDk3NjU2NmZlYmIwOGZmMzQ5ODdk
MzY5MTA4YjRhNWNlMDFhZjgyOS4uMDQ2ZDMwOTY1ZjcwN2U1MmViZTc1ZmU0ZWE2NDdhYzI2ZmQ2
Njc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtNjQsNyArNjQs
NyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVzdE5hbWVkQ29uc3RydWN0b3JD
b25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OgogICAgIHRvVjgoZG9jdW1lbnQsIGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsK
KyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsK
IAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMSwgTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGQwYzkxOGYz
YjViYWZhM2FhNDc0NjZmZTdjMGI4ZTQyNDM1Zjc0NDAuLjVhNTUyNTFlZTYxMTI0ZjExYzgwY2Nl
NTUzNzM1YWUzMGI1ZGZmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0xMjMwLDcgKzEyMzAsNyBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZwogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoudm9pZE1l
dGhvZFdpdGhBcmdzIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3Ip
OworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgaW50QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBTVFJJTkdfVE9f
VjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CkBAIC0xMjUw
LDcgKzEyNTAsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGludE1ldGhvZFdpdGhB
cmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogewogICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmouaW50TWV0aG9kV2l0aEFyZ3MiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDMpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4
UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKCk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJT05fQkxPQ0soaW50LCBpbnRBcmcsIHRvSW50
MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
OwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKTsKQEAgLTEyNjksNyArMTI2OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gb2JqTWV0aG9kV2l0aEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB7
CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vYmpNZXRob2RXaXRoQXJncyIpOwogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91
Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4UHJv
eHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhp
bnQsIGludEFyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9C
TE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwpAQCAtMTI4MSw3ICsxMjgxLDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoU2VxdWVuY2VBcmdDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJgogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0aG9kV2l0aFNl
cXVlbmNlQXJnIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwor
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAg
ICAgRVhDRVBUSU9OX0JMT0NLKHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+Kiwgc2VxdWVuY2VBcmcs
IHRvTmF0aXZlQXJyYXk8U2NyaXB0UHJvZmlsZT4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGltcC0+bWV0aG9kV2l0aFNlcXVlbmNl
QXJnKHNlcXVlbmNlQXJnKTsKQEAgLTEyOTIsNyArMTI5Miw3IEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gbWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5tZXRob2RSZXR1cm5pbmdTZXF1
ZW5jZSIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93
RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVY
Q0VQVElPTl9CTE9DSyhpbnQsIGludEFyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgcmV0dXJuIHY4QXJyYXkoaW1w
LT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShpbnRBcmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CkBA
IC0xMzAyLDcgKzEzMDIsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFRo
YXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NDYWxsYmFjayhjb25zdCB2OAogewogICAgIElOQ19T
VEFUUygiRE9NLlRlc3RPYmoubWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyIpOwog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5v
dCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIHsKQEAgLTEzMjIsNyArMTMyMiw3IEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gc2VyaWFsaXplZFZhbHVlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnNlcmlhbGl6ZWRWYWx1ZSIpOwog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5v
dCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIGJvb2wgc2VyaWFs
aXplZEFyZ0RpZFRocm93ID0gZmFsc2U7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gc2VyaWFsaXplZEFyZyA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMF0s
IDAsIDAsIHNlcmlhbGl6ZWRBcmdEaWRUaHJvdywgYXJncy5HZXRJc29sYXRlKCkpOwpAQCAtMTMz
Niw3ICsxMzM2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpZGJLZXlDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouaWRiS2V5Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOwor
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAg
ICAgRVhDRVBUSU9OX0JMT0NLKFJlZlB0cjxJREJLZXk+LCBrZXksIGNyZWF0ZUlEQktleUZyb21W
YWx1ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSk7CiAgICAgaW1wLT5pZGJLZXkoa2V5LmdldCgpKTsKQEAgLTEzNDcsNyArMTM0Nyw3IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3B0aW9uc09iamVjdENhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vcHRpb25z
T2JqZWN0Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAg
ICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAg
RVhDRVBUSU9OX0JMT0NLKERpY3Rpb25hcnksIG9vLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAg
JiYgIW9vLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIW9vLmlzT2JqZWN0KCkpIHsKQEAgLTE1NTMs
NyArMTU1Myw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0aE5vbk9w
dGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdDYWxsYmFjayhjb25zCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uVGVzdE9iai5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyIpOwogICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBl
bm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9D
SyhpbnQsIG5vbk9wdCwgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpAQCAt
MTU2OSw3ICsxNTY5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRo
Tm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NDYWxsYmFjaygKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJn
cyIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQ
VElPTl9CTE9DSyhpbnQsIG5vbk9wdCwgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0g
MSkgewpAQCAtMTYyMSw3ICsxNjIxLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBt
ZXRob2RXaXRoQ2FsbGJhY2tBcmdDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogewogICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0aG9kV2l0aENhbGxiYWNrQXJnIik7CiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3Vn
aCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PD0gMCB8fCAhYXJnc1swXS0+SXNGdW5jdGlvbigpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihUWVBFX01JU01BVENIX0VSUik7CkBAIC0xNjM0LDcgKzE2MzQsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IG1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnQ2Fs
bGJhY2soY29ucwogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0aG9kV2l0aE5vbkNh
bGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmciKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0g
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6
OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKCk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKICAgICBFWENFUFRJT05fQkxPQ0soaW50LCBub25DYWxsYmFjaywgdG9JbnQz
MihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSB8fCAhYXJnc1sxXS0+SXNGdW5jdGlvbigpKQpA
QCAtMTY5Nyw3ICsxNjk3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9h
ZGVkTWV0aG9kMUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2QxIik7CiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAyKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVu
dHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBv
YmpBcmcsIFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQ
VElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwpAQCAtMTcwOSw3ICsxNzA5LDcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kMkNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJs
b2FkZWRNZXRob2QyIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3Ip
OworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6SGFzSW5z
dGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpAQCAtMTcyNSw3ICsxNzI1LDcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kM0NhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJs
b2FkZWRNZXRob2QzIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3Ip
OworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+
LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpOwogICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChzdHJBcmcpOwpAQCAtMTczNiw3ICsx
NzM2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kNENh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Q0Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQot
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5
OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcigpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJn
cy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgaW50QXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAg
ICBpbXAtPm92ZXJsb2FkZWRNZXRob2QoaW50QXJnKTsKQEAgLTE3NDcsNyArMTc0Nyw3IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDVDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVy
bG9hZGVkTWV0aG9kNSIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9y
KTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9IDAgfHwgIWFyZ3NbMF0tPklzRnVuY3Rpb24oKSkK
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOwpAQCAtMTc2MCw3
ICsxNzYwLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9k
NkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Q2Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAx
KQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFBy
b3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFJlZlB0cjxET01TdHJpbmdMaXN0
PiwgbGlzdEFyZywgdjhWYWx1ZVRvV2ViQ29yZURPTVN0cmluZ0xpc3QoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGltcC0+b3Zlcmxv
YWRlZE1ldGhvZChsaXN0QXJnKTsKQEAgLTE3NzEsNyArMTc3MSw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDdDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0aG9k
NyIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQ
VElPTl9CTE9DSyhSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIGFycmF5QXJnLCB2OFZhbHVlVG9XZWJD
b3JlRE9NU3RyaW5nTGlzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSk7CiAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKGFycmF5QXJnKTsKQEAg
LTE4MjIsNyArMTgyMiw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRl
ZE1ldGhvZDExQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kMTEiKTsKICAgICBpZiAoYXJncy5MZW5n
dGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgYXJnLCB0
b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKICAgICBUZXN0T2JqOjpvdmVybG9hZGVkTWV0aG9kMShhcmcpOwogICAgIHJldHVybiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKQEAgLTE4MzYsNyArMTgzNiw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDEyQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJnCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0
aG9kMTIiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAgICAg
U1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBl
LCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsK
ICAgICBUZXN0T2JqOjpvdmVybG9hZGVkTWV0aG9kMSh0eXBlKTsKICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7CkBAIC0xODYzLDcgKzE4NjMsNyBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cwogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouZW5hYmxlZEF0UnVudGltZU1l
dGhvZDEiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBF
WENFUFRJT05fQkxPQ0soaW50LCBpbnRBcmcsIFY4aW50OjpIYXNJbnN0YW5jZShNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4aW50Ojp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+ZW5hYmxlZEF0
UnVudGltZU1ldGhvZDEoaW50QXJnKTsKQEAgLTE4NzQsNyArMTg3NCw3IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZU1ldGhvZDJDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5lbmFibGVkQXRSdW50
aW1lTWV0aG9kMiIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsK
KyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwog
ICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGludEFyZywgVjhpbnQ6Okhhc0luc3RhbmNlKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhpbnQ6
OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgaW1wLT5lbmFi
bGVkQXRSdW50aW1lTWV0aG9kMihpbnRBcmcpOwpAQCAtMTkwMyw3ICsxOTAzLDcgQEAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jb252ZXJ0MSIpOwogICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBl
bm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9D
SyhhKiwgLCBWOGE6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhhOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpKSA6IDApOwogICAgIGltcC0+Y29udmVydDEoKTsKQEAgLTE5MTQsNyArMTkxNCw3IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDJDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY29udmVydDIi
KTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJ
T05fQkxPQ0soYiosICwgVjhiOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSkgOiAwKTsKICAgICBpbXAtPmNvbnZlcnQyKCk7CkBAIC0xOTI1LDcgKzE5
MjUsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnZlcnQzQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmNv
bnZlcnQzIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAg
ICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAg
RVhDRVBUSU9OX0JMT0NLKGMqLCAsIFY4Yzo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGM6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgaW1wLT5jb252ZXJ0MygpOwpAQCAtMTkz
Niw3ICsxOTM2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NENhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVz
dE9iai5jb252ZXJ0NCIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9y
KTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwogICAgIEVYQ0VQVElPTl9CTE9DSyhkKiwgLCBWOGQ6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhkOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+Y29udmVydDQoKTsK
QEAgLTE5NDcsNyArMTk0Nyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVy
dDVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmouY29udmVydDUiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5
cGVFcnJvcik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKCk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKICAgICBFWENFUFRJT05fQkxPQ0soZSosICwgVjhlOjpIYXNJbnN0YW5jZShNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKICAgICBpbXAtPmNvbnZl
cnQ1KCk7CkBAIC0xOTgwLDcgKzE5ODAsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHN0cmljdEZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnN0cmljdEZ1bmN0aW9uIik7CiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPCAzKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1
bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgewpAQCAtMjIzOSw3ICsyMjM5LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVzdE9i
ajo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlm
IChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlz
dGluZ09iamVjdCkKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1
bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9IDAg
fHwgIWFyZ3NbMF0tPklzRnVuY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQ
RV9NSVNNQVRDSF9FUlIpOwogICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IHRlc3RDYWxsYmFjayA9
IFY4VGVzdENhbGxiYWNrOjpjcmVhdGUoYXJnc1swXSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAKaW5kZXggNzFlNDY3ZjJmMGI3NWNlMmM5OGQyZGQxNGNiNmJlMjgzODcxNzVh
YS4uYWE5MTQ4ZmZjOTM0ZjE0YjNiM2MzMGFhMDJiNjk1ZWJlNzc3NjAxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAg
LTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFjY2VwdFRyYW5z
ZmVyTGlzdENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogewogICAgIElOQ19TVEFU
UygiRE9NLlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuYWNjZXB0VHJhbnNmZXJM
aXN0Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGltcCA9IFY4VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgTWVzc2Fn
ZVBvcnRBcnJheSBtZXNzYWdlUG9ydEFycmF5VHJhbnNmZXJMaXN0OwogICAgIEFycmF5QnVmZmVy
QXJyYXkgYXJyYXlCdWZmZXJBcnJheVRyYW5zZmVyTGlzdDsKQEAgLTIxOCw3ICsyMTgsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKAogICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQo
KSA9PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKICAgICAgICAgcmV0dXJu
IGFyZ3MuSG9sZGVyKCk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3Ip
OworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigp
OwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
PiwgaGVsbG8sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpOwogICAgIE1lc3NhZ2VQb3J0QXJyYXkgbWVzc2FnZVBvcnRBcnJheVRyYW5zZmVyTGlz
dDsKICAgICBBcnJheUJ1ZmZlckFycmF5IGFycmF5QnVmZmVyQXJyYXlUcmFuc2Zlckxpc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCmluZGV4IGNmNzM0MTZmZDYxZGViNzVm
YzJkMzkzZDE5ZGI2ZGMwMDFkMmI0YjUuLjQ5NTkzYTRlODI3YzQ2ZTg4YjZkYjgzODQwZDQ2NDY5
ZmI4ZmQ1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBAIC01OTMs
NiArNTkzLDExIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJv
cigpCiAgICAgcmV0dXJuIHRocm93RXJyb3IoVHlwZUVycm9yLCAiVHlwZSBlcnJvciIpOwogfQog
Cit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcigpCit7CisgICAgcmV0dXJuIHRocm93RXJyb3IoVHlwZUVycm9yLCAiTm90IGVub3VnaCBh
cmd1bWVudHMiKTsKK30KKwogdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBWOFByb3h5Ojpjb250ZXh0
KEZyYW1lKiBmcmFtZSkKIHsKICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSBW
OFByb3h5OjptYWluV29ybGRDb250ZXh0KGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuaAppbmRleCBlYWFhN2U2ZTU0MDY4YjRkZDkzYzRmODIzZGJiOGU4MjhkY2JiNTc2Li5m
ZDllN2NiODRjZGZiMGNlODc4OWE2YjA1NTRkM2QxOGIwOGU5YTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0yNDIsNiArMjQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIC8vIEhlbHBlcnMgZm9yIHRocm93aW5nIHN5bnRheCBhbmQgdHlwZSBlcnJv
cnMgd2l0aCBwcmVkZWZpbmVkIG1lc3NhZ2VzLgogICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogCiAgICAgICAgIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCgpOwogICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRl
eHQ+IG1haW5Xb3JsZENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAppbmRleCAxZDNjZTYwNjA5ZmFkM2Ix
NTNkNzQ2YzhjZjdlZDk0ZTk4ZjdkMDJmLi5iYTVmOGM0NThkNTVhYTQyY2YyMjAzMzcyM2I1MTY4
OTdmZjdjODVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBAIC02OCw3ICs2OCw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5nZXRJbnQ4Iik7CiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3Vn
aCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogCiAgICAgRGF0YVZpZXcqIGltcCA9
IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwpAQCAtODUsNyArODUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmll
dzo6Z2V0VWludDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLkRhdGFWaWV3LmdldFVpbnQ4Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBW
OFByb3h5OjpUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcigpOwogCiAgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMTAy
LDcgKzEwMiw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpzZXRJbnQ4Q2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5E
YXRhVmlldy5zZXRJbnQ4Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpUeXBlRXJy
b3IpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cigpOwogCiAgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMTE4LDcgKzExOCw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpzZXRVaW50OENhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuc2V0VWlu
dDgiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAKICAgICBE
YXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAKaW5kZXggYTgwNjJm
Yjc3NzhmZWM1NTk0MTE1ZDJmYWY2YmZjY2MzMWU1ZDFlNS4uMTlkN2EzYjY5YjM1MWVlYTUwYmI0
Mzk2Yzk4MTgxZmJjNjIzNTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3VzdG9tLmNwcApAQCAtNTEsNyAr
NTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEaXJlY3RvcnlFbnRyeTo6Z2V0RGlyZWN0
b3J5Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIERpcmVjdG9yeUVudHJ5KiBpbXAg
PSBWOERpcmVjdG9yeUVudHJ5Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKIAogICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2gg
YXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKIAogICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
PiwgcGF0aCwgYXJnc1swXSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpAQCAtOTUs
NyArOTUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEaXJlY3RvcnlFbnRyeTo6Z2V0Rmls
ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogICAgIERpcmVjdG9yeUVudHJ5KiBp
bXAgPSBWOERpcmVjdG9yeUVudHJ5Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKIAogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91
Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIFY4UHJv
eHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKIAogICAgIFNUUklOR19UT19WOFBB
UkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENo
ZWNrPiwgcGF0aCwgYXJnc1swXSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29u
c3RydWN0b3IuY3BwCmluZGV4IGE4NTk5MDE0ZDZhMGYxZTRlZjY0NDVjNmQxZjAzMjJmNTk5N2Mx
ZmEuLmQ4N2VkNzVkMjcwOTFjY2E1ZGM3M2IzZWIyMzIyYTkxZWFkYmFmZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25zdHJ1
Y3Rvci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50ZW50
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYg
KENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0
aW5nT2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKICAgICBpZiAoYXJncy5M
ZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3Vt
ZW50cyIsIFY4UHJveHk6OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMSkg
ewogICAgICAgICAvLyBVc2UgdGhlIGRpY3Rpb25hcnkgY29uc3RydWN0b3IuIFRoaXMgYmxvY2sg
d2lsbCByZXR1cm4gaWYgdGhlCiAgICAgICAgIC8vIGFyZ3VtZW50IGlzbid0IGEgdmFsaWQgRGlj
dGlvbmFyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggNTM4
NTAwNzcwMDA3NzBjYzAzM2I2MDUwMzg2NzI3ODA0ZGY1ZjdhZi4uZTc1Yjk0NDc2YjI2NWRiMmVl
YmI5ZTE3MTQwNTA3OGE1MjM5Yjg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0
TXV0YXRpb25PYnNlcnZlcjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXIKICAgICAg
ICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0g
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6
OlR5cGVFcnJvcik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKCk7CiAKICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzBdOwog
ICAgIGlmICghYXJnLT5Jc09iamVjdCgpKQpAQCAtODMsNyArODMsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZlQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZQogewogICAgIElOQ19TVEFUUygiRE9NLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIu
b2JzZXJ2ZSIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6VHlwZUVycm9yKTsKKyAg
ICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKICAg
ICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKiBpbXAgPSBWOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhOb2RlKiwgdGFy
Z2V0LCBWOE5vZGU6Okhhc0luc3RhbmNlKGFyZ3NbMF0pID8gVjhOb2RlOjp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKSA6IDApOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>