<?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>87111</bug_id>
          
          <creation_ts>2012-05-22 03:35:39 -0700</creation_ts>
          <short_desc>[V8] Pass Isolate to throwTypeError()</short_desc>
          <delta_ts>2012-05-22 15:46:44 -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>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>630169</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-22 03:35:39 -0700</bug_when>
    <thetext>The objective is to pass Isolate around in V8 bindings. In this bug we pass Isolate to throwTypeError() in custom bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630170</commentid>
    <comment_count>1</comment_count>
      <attachid>143252</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-22 03:38:10 -0700</bug_when>
    <thetext>Created attachment 143252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630180</commentid>
    <comment_count>2</comment_count>
      <attachid>143255</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-22 03:46:16 -0700</bug_when>
    <thetext>Created attachment 143255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630844</commentid>
    <comment_count>3</comment_count>
      <attachid>143255</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 15:46:31 -0700</bug_when>
    <thetext>Comment on attachment 143255
Patch

Clearing flags on attachment: 143255

Committed r118071: &lt;http://trac.webkit.org/changeset/118071&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630845</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 15:46:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143252</attachid>
            <date>2012-05-22 03:38:10 -0700</date>
            <delta_ts>2012-05-22 03:46:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87111-20120522193809.patch</filename>
            <type>text/plain</type>
            <size>18828</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNlZmQ5MjJkNTVhZmZj
YzU5Yzg2ZDc5ZDYyYTZlMTY2MjA2Njk2My4uMGUzNTY1YzFkMjgwNTZmMTgyN2Y1ZDI2ODk0ZGE4
OWQ0YmIzMTYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDEyLTA1LTIyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0aHJvd1R5cGVFcnJvcigpIChQYXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBvYmplY3RpdmUgaXMgdG8gcGFzcyBJc29sYXRl
IGFyb3VuZCBpbiBWOCBiaW5kaW5ncy4KKyAgICAgICAgVGhpcyBwYXRjaCBwYXNzZXMgSXNvbGF0
ZSB0byB0aHJvd1R5cGVFcnJvcigpIGluIGN1c3RvbSBiaW5kaW5ncy4KKworICAgICAgICBObyB0
ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4QXJyYXlCdWZmZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBcnJheUJ1
ZmZlcjo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RX
ZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
c3RydWN0V2ViR0xBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9C
dWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QXVkaW9CdWZm
ZXJTb3VyY2VOb2RlOjpidWZmZXJBY2Nlc3NvclNldHRlcik6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
QXVkaW9Db250ZXh0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhCbG9iQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QmxvYjo6Y29u
c3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJv
YXJkQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Q2xpcGJvYXJkOjpzZXREcmFnSW1h
Z2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01Gb3JtRGF0YTo6Y29uc3RydWN0b3JD
YWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTERvY3VtZW50OjpvcGVuQ2FsbGJhY2spOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp2OEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3RvckNhbGxiYWNr
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3Rh
cnRBY2Nlc3NvckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxJbnB1dEVsZW1lbnQ6
OnNlbGVjdGlvblN0YXJ0QWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1M
SW5wdXRFbGVtZW50OjpzZWxlY3Rpb25FbmRBY2Nlc3NvckdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpWOEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEFjY2Vzc29yU2V0dGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4SFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRGlyZWN0aW9uQWNj
ZXNzb3JHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MSW5wdXRFbGVtZW50OjpzZWxl
Y3Rpb25EaXJlY3Rpb25BY2Nlc3NvclNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxJ
bnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlQ2FsbGJhY2spOgorCisyMDEyLTA1LTIyICBL
ZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbVjhdIEFkZCBh
biBvcHRpb25hbCAnaXNvbGF0ZScgYXJndW1lbnQgdG8gdGhyb3dUeXBlRXJyb3IoKQogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcwNzAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJD
dXN0b20uY3BwCmluZGV4IGUxMTliODdmZGQxM2QyNjQxNmE5NGVhMDYwZTNhYWE1NzlkMmRkZDAu
LjMxOTZkZDg5YWMxNTY0OTRlMjk0MjBjYmY3OTliMjdhYmEzOTFkOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3Rv
bS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXJyYXlCdWZm
ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICBJTkNf
U1RBVFMoIkRPTS5BcnJheUJ1ZmZlci5Db25zdHJ1Y3RvciIpOwogCiAgICAgaWYgKCFhcmdzLklz
Q29uc3RydWN0Q2FsbCgpKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
IkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIp
OworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29u
c3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKIAogICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9PSBDb25zdHJ1Y3Rv
ck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1
ZmZlclZpZXdDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFy
cmF5QnVmZmVyVmlld0N1c3RvbS5oCmluZGV4IGEyZmQ2OWRjY2Y4N2NjNzAwNzlhZTY0ZmJkNGRk
MDkyOWIxZjlmM2EuLjllMjIwNmUxMmFmYTg5M2E2ZDQ5MmNhMDQ2MjAzODE0NzI1N2NjZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVy
Vmlld0N1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFy
cmF5QnVmZmVyVmlld0N1c3RvbS5oCkBAIC02MCwyMCArNjAsMjAgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChjb25zdCB2
ODo6QXJndW0KIHsKICAgICBBcnJheUJ1ZmZlciogYnVmID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRp
dmUoYXJnc1swXS0+VG9PYmplY3QoKSk7CiAgICAgaWYgKCFidWYpCi0gICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBh
IEFycmF5QnVmZmVyIik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigi
Q291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBhIEFycmF5QnVmZmVyIiwgYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIGJvb2wgb2s7CiAgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsKICAgICBp
bnQgYXJnTGVuID0gYXJncy5MZW5ndGgoKTsKICAgICBpZiAoYXJnTGVuID4gMSkgewogICAgICAg
ICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBvayk7CiAgICAgICAgIGlmICghb2spCi0gICAg
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0
IGFyZ3VtZW50IDEgdG8gYSBudW1iZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMSB0byBhIG51bWJlciIs
IGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICB9CiAgICAgdWludDMyX3QgbGVuZ3RoID0gMDsKICAg
ICBpZiAoYXJnTGVuID4gMikgewogICAgICAgICBsZW5ndGggPSB0b1VJbnQzMihhcmdzWzJdLCBv
ayk7CiAgICAgICAgIGlmICghb2spCi0gICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dU
eXBlRXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDIgdG8gYSBudW1iZXIiKTsKKyAg
ICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZl
cnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICB9IGVs
c2UgewogICAgICAgICBpZiAoKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNpemVvZihF
bGVtZW50VHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFBy
b3h5OjpSYW5nZUVycm9yLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0
IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIiwgYXJncy5HZXRJc29sYXRl
KCkpOwpAQCAtOTksNyArOTksNyBAQCB0ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBF
bGVtZW50VHlwZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdjg6OkV4dGVy
bmFsQXJyYXlUeXBlIGFycmF5VHlwZSkKIHsKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxs
KCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBj
b25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CisgICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5u
b3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAg
aWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4
aXN0aW5nT2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKQEAgLTE1Miw3ICsx
NTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZQogICAgIGlmIChhcmdzWzBdLT5Jc09iamVj
dCgpKSB7CiAgICAgICAgIHNyY0FycmF5ID0gYXJnc1swXS0+VG9PYmplY3QoKTsKICAgICAgICAg
aWYgKHNyY0FycmF5LklzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBhbiBhcnJheSIpOwor
ICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJDb3VsZCBub3QgY29u
dmVydCBhcmd1bWVudCAwIHRvIGFuIGFycmF5IiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgICAg
ICBsZW4gPSB0b1VJbnQzMihzcmNBcnJheS0+R2V0KHY4OjpTdHJpbmc6Ok5ldygibGVuZ3RoIikp
KTsKICAgICAgICAgZG9JbnN0YW50aWF0aW9uID0gdHJ1ZTsKICAgICB9IGVsc2UgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1
ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKaW5kZXggNzllMDJlOGEwNGJhYzZiMjRkNjc0
NzMxNTY3Njk1ZjA0NjMyMzBkMC4uY2YyMTJkMzQ5ZDVkYTQ1NTM4MDUzZDYwYzkxMWYzMWRlMTY4
ZGQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVk
aW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCkBAIC00NywxMyAr
NDcsMTMgQEAgdm9pZCBWOEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6YnVmZmVyQWNjZXNzb3JTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHYKICAgICBpZiAoVjhBdWRpb0J1ZmZlcjo6
SGFzSW5zdGFuY2UodmFsdWUpKSB7CiAgICAgICAgIGJ1ZmZlciA9IFY4QXVkaW9CdWZmZXI6OnRv
TmF0aXZlKHZhbHVlLT5Ub09iamVjdCgpKTsKICAgICAgICAgaWYgKGJ1ZmZlciAmJiAhaW1wLT5z
ZXRCdWZmZXIoYnVmZmVyKSkgewotICAgICAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
IkF1ZGlvQnVmZmVyIHVuc3VwcG9ydGVkIG51bWJlciBvZiBjaGFubmVscyIpOworICAgICAgICAg
ICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkF1ZGlvQnVmZmVyIHVuc3VwcG9ydGVkIG51bWJl
ciBvZiBjaGFubmVscyIsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KICAgICAKICAgICBpZiAoIWJ1ZmZlcikgewotICAgICAgICBWOFBy
b3h5Ojp0aHJvd1R5cGVFcnJvcigiVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZmZXIiKTsK
KyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIlZhbHVlIGlzIG5vdCBvZiB0eXBlIEF1
ZGlvQnVmZmVyIiwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9D
b250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1
ZGlvQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNzcxYWJkZDA4NGY2NDNhOTE4ZjAzMTI3YTAwOTdl
ZDg1NWJkYTk5NS4uOWNlMmUxYWY0ZmZjODQwN2YyMzVkOTg5ZTQwNjVmYTk0ZmMyZmRhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRp
b0NvbnRleHRDdXN0b20uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEF1ZGlvQ29udGV4dDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhCiAgICAgSU5DX1NUQVRTKCJET00uQXVkaW9Db250ZXh0LkNvbnRydWN0b3IiKTsKIAogICAg
IGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRo
cm93VHlwZUVycm9yKCJBdWRpb0NvbnRleHQgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBh
cyBhIGZ1bmN0aW9uLiIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
IkF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24u
IiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVu
dCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAgICByZXR1
cm4gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEJsb2JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4QmxvYkN1c3RvbS5jcHAKaW5kZXggNTkxMmMyNDVmN2Y5MWYyODRlYWVhNjYzMmU2MDY2
MmJkODE3YWJmMy4uYWUwNzJkYTFjZDY4MDE0YmIxMjU5ZmZlNzU4MTUwYjU1MjFmNjQ2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5j
cHAKQEAgLTYwLDcgKzYwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QmxvYjo6Y29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElOQ19TVEFUUygi
RE9NLkJsb2IuQ29uc3RydWN0b3IiKTsKIAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwo
KSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNv
bnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKKyAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5v
dCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBp
ZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50KCkgPT0gQ29uc3RydWN0b3JNb2RlOjpXcmFwRXhp
c3RpbmdPYmplY3QpCiAgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwpAQCAtNzcsMTQgKzc3
LDE0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIAogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGZp
cnN0QXJnID0gYXJnc1swXTsKICAgICBpZiAoIWZpcnN0QXJnLT5Jc0FycmF5KCkpCi0gICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgb2YgdGhlIGNv
bnN0cnVjdG9yIGlzIG5vdCBvZiB0eXBlIEFycmF5Iik7CisgICAgICAgIHJldHVybiBWOFByb3h5
Ojp0aHJvd1R5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbnN0cnVjdG9yIGlzIG5v
dCBvZiB0eXBlIEFycmF5IiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgU3RyaW5nIHR5cGU7
CiAgICAgU3RyaW5nIGVuZGluZ3MgPSAidHJhbnNwYXJlbnQiOwogCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPiAxKSB7CiAgICAgICAgIGlmICghYXJnc1sxXS0+SXNPYmplY3QoKSkKLSAgICAgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiU2Vjb25kIGFyZ3VtZW50IG9mIHRo
ZSBjb25zdHJ1Y3RvciBpcyBub3Qgb2YgdHlwZSBPYmplY3QiKTsKKyAgICAgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiU2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBjb25zdHJ1
Y3RvciBpcyBub3Qgb2YgdHlwZSBPYmplY3QiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICAg
ICAgRGljdGlvbmFyeSBkaWN0aW9uYXJ5KGFyZ3NbMV0pOwogCkBAIC05NSw3ICs5NSw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKIAogICAgICAgICBpZiAoY29udGFpbnNFbmRpbmdzKSB7CiAgICAg
ICAgICAgICBpZiAoZW5kaW5ncyAhPSAidHJhbnNwYXJlbnQiICYmIGVuZGluZ3MgIT0gIm5hdGl2
ZSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJUaGUg
ZW5kaW5ncyBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBcInRyYW5zcGFyZW50XCIgb3IgXCJuYXRp
dmVcIiIpOworICAgICAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigi
VGhlIGVuZGluZ3MgcHJvcGVydHkgbXVzdCBiZSBlaXRoZXIgXCJ0cmFuc3BhcmVudFwiIG9yIFwi
bmF0aXZlXCIiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgIH0KIAogICAgICAgICB2ODo6
VHJ5Q2F0Y2ggdHJ5Q2F0Y2hUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHAKaW5kZXggYzU2OGY4OTJiODQxMDYy
M2FhYTg0N2NlOGMwMTFkOTI0NGY3NDM3ZC4uY2VhMTBhZjFjNTRhZjcxM2IyODZiY2UzN2M0ZWI3
YjNkMzNkZDI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhDbGlwYm9hcmRDdXN0b20uY3BwCkBAIC05OSw3ICs5OSw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJnCiAgICAgICAgIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpOwogCiAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5p
c0VsZW1lbnROb2RlKCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigi
c2V0RHJhZ0ltYWdlRnJvbUVsZW1lbnQ6IEludmFsaWQgZmlyc3QgYXJndW1lbnQiKTsKKyAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJzZXREcmFnSW1hZ2VGcm9tRWxlbWVu
dDogSW52YWxpZCBmaXJzdCBhcmd1bWVudCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIGlm
IChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmhhc0xvY2FsTmFtZShIVE1MTmFtZXM6Omlt
Z1RhZykgJiYgIW5vZGUtPmluRG9jdW1lbnQoKSkKICAgICAgICAgY2xpcGJvYXJkLT5zZXREcmFn
SW1hZ2Uoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5jYWNoZWRJbWFnZSgp
LCBJbnRQb2ludCh4LCB5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAKaW5kZXggODk2OTg2MzQyZTE0MDhk
YjU0OGY2Njc2M2FmN2Y4ZmUzNjBiMjQzYy4uOGY3NWMwZTU3MjIxMWNjNmE2MzE5M2UwOGNjNDE5
NWQ3NjBmOTk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcApAQCAtNDUsNyArNDUsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhET01Gb3JtRGF0YTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcgogICAgIElOQ19TVEFUUygiRE9NLkZvcm1EYXRhLkNvbnN0cnVjdG9y
Iik7CiAKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCi0gICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUg
Y2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5
cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVu
Y3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6
Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAg
ICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAppbmRleCBmMWM5ZDI3ZTI3MWQ5ZDhk
OTI1ZjI1YzY1OGM5MThkNWJiZWY0NzMwLi45MTQ3ZTgwMjU3OTZiYWZlNGU3ZDg2YmQ5NjQ1ZDNl
OTQzMTAyZDg0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBAIC0zOSw3ICszOSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuQ29uc3RydWN0b3IiKTsKIAog
ICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQg
YXMgYSBmdW5jdGlvbiIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
IkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uIiwg
YXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgp
ID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAgICByZXR1cm4g
YXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDFiZDk3ZDY4MjQzZDVjNzBm
NmU1NGRhY2QwMWJhZTgwNjk3ZGUzYTYuLmIxYTdiMmIzZWMzNWMwZTMzZmI5MWM1YmRlOWE3ZTkx
MjI3NGIxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6b3BlbkNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBmdW5jdGlv
biA9IGdsb2JhbC0+R2V0KHY4OjpTdHJpbmc6Ok5ldygib3BlbiIpKTsKICAgICAgICAgICAgIC8v
IElmIHRoZSBvcGVuIHByb3BlcnR5IGlzIG5vdCBhIGZ1bmN0aW9uIHRocm93IGEgdHlwZSBlcnJv
ci4KICAgICAgICAgICAgIGlmICghZnVuY3Rpb24tPklzRnVuY3Rpb24oKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIm9wZW4gaXMgbm90IGEgZnVuY3Rp
b24iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIm9w
ZW4gaXMgbm90IGEgZnVuY3Rpb24iLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgICAgICAv
LyBXcmFwIHVwIHRoZSBhcmd1bWVudHMgYW5kIGNhbGwgdGhlIGZ1bmN0aW9uLgogICAgICAgICAg
ICAgT3duQXJyYXlQdHI8djg6OkxvY2FsPHY4OjpWYWx1ZT4gPiBwYXJhbXMgPSBhZG9wdEFycmF5
UHRyKG5ldyB2ODo6TG9jYWw8djg6OlZhbHVlPlthcmdzLkxlbmd0aCgpXSk7CiAgICAgICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MuTGVuZ3RoKCk7IGkrKykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW1hZ2VF
bGVtZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDU3MWU0NDNhMmZmNDAyNWZjNGRmOTA5MjUwMGJh
YWNmMDc1NWQ4N2QuLmMxZjU1OWNmNzVhODY0NzQwMzgwOGM0ZWNlZTM2Njk5ZTQ2Y2NjNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVs
ZW1lbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcApAQCAtNTEsNyArNTEsNyBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9y
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZwogICAgIElOQ19TVEFUUygiRE9NLkhUTUxJbWFnZUVsZW1l
bnQuQ29udHJ1Y3RvciIpOwogCiAgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQotICAg
ICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0
b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOworICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNh
bGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIGlmIChDb25z
dHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09i
amVjdCkKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0
b20uY3BwCmluZGV4IDY1Njg2NTQ2ZTQ5YTBhYzg3NTViMjJmMzE0MDg0ZDA5MzlkMjdjMmEuLmUx
YmI1OTQyZTcwNjgwOTM1MDVkZDAzOTI5OTdhZTlmZWYzMDUxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1l
bnRDdXN0b20uY3BwCkBAIC00NSw3ICs0NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsCiAg
ICAgSFRNTElucHV0RWxlbWVudCogaW1wID0gVjhIVE1MSW5wdXRFbGVtZW50Ojp0b05hdGl2ZSho
b2xkZXIpOwogCiAgICAgaWYgKCFpbXAtPmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uU3RhcnQgb24g
YW4gaW5wdXQgZWxlbWVudCB0aGF0IGNhbm5vdCBoYXZlIGEgc2VsZWN0aW9uLiIpOworICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkFjY2Vzc2luZyBzZWxlY3Rpb25TdGFy
dCBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24uIiwgaW5m
by5HZXRJc29sYXRlKCkpOwogCiAgICAgaW50IHYgPSBpbXAtPnNlbGVjdGlvblN0YXJ0KCk7CiAg
ICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcodik7CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgVjhI
VE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydEFjY2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lCiAgICAgSFRNTElucHV0RWxlbWVudCogaW1wID0gVjhIVE1MSW5wdXRF
bGVtZW50Ojp0b05hdGl2ZShob2xkZXIpOwogCiAgICAgaWYgKCFpbXAtPmNhbkhhdmVTZWxlY3Rp
b24oKSkgewotICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNlbGVj
dGlvblN0YXJ0IG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5ub3QgaGF2ZSBhIHNlbGVjdGlv
bi4iKTsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkFjY2Vzc2luZyBzZWxlY3Rp
b25TdGFydCBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24u
IiwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGltcC0+
c2V0U2VsZWN0aW9uU3RhcnQodmFsdWUtPkludDMyVmFsdWUoKSk7CkBAIC03MSw3ICs3MSw3IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEFj
Y2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2CiAgICAgSFRNTElucHV0RWxlbWVudCogaW1wID0gVjhI
VE1MSW5wdXRFbGVtZW50Ojp0b05hdGl2ZShob2xkZXIpOwogCiAgICAgaWYgKCFpbXAtPmNhbkhh
dmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJB
Y2Nlc3Npbmcgc2VsZWN0aW9uRW5kIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5ub3QgaGF2
ZSBhIHNlbGVjdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCJBY2Nlc3Npbmcgc2VsZWN0aW9uRW5kIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5ub3Qg
aGF2ZSBhIHNlbGVjdGlvbi4iLCBpbmZvLkdldElzb2xhdGUoKSk7CiAKICAgICBpbnQgdiA9IGlt
cC0+c2VsZWN0aW9uRW5kKCk7CiAgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcodik7CkBAIC04
NCw3ICs4NCw3IEBAIHZvaWQgVjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25FbmRBY2Nlc3Nv
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbXAgPSBWOEhUTUxJbnB1dEVsZW1lbnQ6OnRvTmF0aXZlKGhvbGRlcik7CiAKICAgICBpZiAo
IWltcC0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7Ci0gICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVy
cm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uRW5kIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5u
b3QgaGF2ZSBhIHNlbGVjdGlvbi4iKTsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
IkFjY2Vzc2luZyBzZWxlY3Rpb25FbmQgb24gYW4gaW5wdXQgZWxlbWVudCB0aGF0IGNhbm5vdCBo
YXZlIGEgc2VsZWN0aW9uLiIsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtOTgsNyArOTgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nlc3NvckdldHRlcih2ODo6TAogICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGltcCA9IFY4SFRNTElucHV0RWxlbWVudDo6dG9OYXRpdmUoaG9sZGVy
KTsKIAogICAgIGlmICghaW1wLT5jYW5IYXZlU2VsZWN0aW9uKCkpCi0gICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNlbGVjdGlvbkRpcmVjdGlvbiBvbiBh
biBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24uIik7CisgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNlbGVjdGlvbkRpcmVj
dGlvbiBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24uIiwg
aW5mby5HZXRJc29sYXRlKCkpOwogCiAgICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+c2VsZWN0aW9u
RGlyZWN0aW9uKCkpOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgVjhIVE1MSW5wdXRFbGVt
ZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4KICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbXAgPSBWOEhUTUxJbnB1dEVsZW1lbnQ6OnRvTmF0
aXZlKGhvbGRlcik7CiAKICAgICBpZiAoIWltcC0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7Ci0gICAg
ICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uRGlyZWN0aW9u
IG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4iKTsKKyAg
ICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkFjY2Vzc2luZyBzZWxlY3Rpb25EaXJlY3Rp
b24gb24gYW4gaW5wdXQgZWxlbWVudCB0aGF0IGNhbm5vdCBoYXZlIGEgc2VsZWN0aW9uLiIsIGlu
Zm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTI0LDcgKzEy
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxJbnB1dEVsZW1lbnQ6OnNldFNlbGVj
dGlvblJhbmdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyCiAgICAgSFRNTElucHV0RWxlbWVudCogaW1w
ID0gVjhIVE1MSW5wdXRFbGVtZW50Ojp0b05hdGl2ZShob2xkZXIpOwogCiAgICAgaWYgKCFpbXAt
PmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVy
cm9yKCJDYWxsaW5nIHNldFNlbGVjdGlvblJhbmdlIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBj
YW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCJDYWxsaW5nIHNldFNlbGVjdGlvblJhbmdlIG9uIGFuIGlucHV0IGVsZW1lbnQg
dGhhdCBjYW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4iLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAg
ICBpbnQgc3RhcnQgPSBhcmdzWzBdLT5JbnQzMlZhbHVlKCk7CiAgICAgaW50IGVuZCA9IGFyZ3Nb
MV0tPkludDMyVmFsdWUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143255</attachid>
            <date>2012-05-22 03:46:16 -0700</date>
            <delta_ts>2012-05-22 15:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87111-20120522194615.patch</filename>
            <type>text/plain</type>
            <size>29472</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNlZmQ5MjJkNTVhZmZj
YzU5Yzg2ZDc5ZDYyYTZlMTY2MjA2Njk2My4uMTU4ZjU2M2M3ZGI5NmQ0Y2VhMjE0NmQ5NDI0MTk0
YTlmZmFkZDcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY3IEBACiAyMDEyLTA1LTIyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0aHJvd1R5cGVFcnJvcigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NzExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBvYmplY3RpdmUgaXMgdG8gcGFzcyBJc29sYXRlIGFyb3VuZCBp
biBWOCBiaW5kaW5ncy4KKyAgICAgICAgVGhpcyBwYXRjaCBwYXNzZXMgSXNvbGF0ZSB0byB0aHJv
d1R5cGVFcnJvcigpIGluIGN1c3RvbSBiaW5kaW5ncy4KKworICAgICAgICBObyB0ZXN0cy4gTm8g
Y2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJy
YXlCdWZmZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBcnJheUJ1ZmZlcjo6Y29u
c3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlC
dWZmZXJWaWV3Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RXZWJHTEFycmF5
V2l0aEFycmF5QnVmZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2Vi
R0xBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QXVkaW9CdWZmZXJTb3VyY2VO
b2RlOjpidWZmZXJBY2Nlc3NvclNldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QXVkaW9Db250
ZXh0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhCbG9iQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QmxvYjo6Y29uc3RydWN0b3JD
YWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Q2xpcGJvYXJkOjpzZXREcmFnSW1hZ2VDYWxsYmFj
ayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhET01Gb3JtRGF0YTo6Y29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4SFRNTERvY3VtZW50OjpvcGVuQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2OEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4SFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRBY2Nlc3Nv
ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlv
blN0YXJ0QWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MSW5wdXRFbGVt
ZW50OjpzZWxlY3Rpb25FbmRBY2Nlc3NvckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEFjY2Vzc29yU2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4SFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRGlyZWN0aW9uQWNjZXNzb3JHZXR0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJl
Y3Rpb25BY2Nlc3NvclNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxJbnB1dEVsZW1l
bnQ6OnNldFNlbGVjdGlvblJhbmdlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhI
VE1MTWVkaWFFbGVtZW50Ojpjb250cm9sbGVyQWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdGVkT2JqZWN0Q2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZUNoYW5uZWw6OmNvbnN0cnVjdG9yQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vdGlmaWNhdGlvbkNlbnRlckN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE5vdGlmaWNhdGlvbkNlbnRlcjo6cmVxdWVzdFBl
cm1pc3Npb25DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVz
dWx0U2V0Um93TGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFNRTFJlc3VsdFNl
dFJvd0xpc3Q6Oml0ZW1DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhXZWJLaXRQb2ludDo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4V2ViU29ja2V0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorCisyMDEyLTA1
LTIyICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbVjhd
IEFkZCBhbiBvcHRpb25hbCAnaXNvbGF0ZScgYXJndW1lbnQgdG8gdGhyb3dUeXBlRXJyb3IoKQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcwNzAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZm
ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlC
dWZmZXJDdXN0b20uY3BwCmluZGV4IGUxMTliODdmZGQxM2QyNjQxNmE5NGVhMDYwZTNhYWE1Nzlk
MmRkZDAuLjMxOTZkZDg5YWMxNTY0OTRlMjk0MjBjYmY3OTliMjdhYmEzOTFkOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZl
ckN1c3RvbS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXJy
YXlCdWZmZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAg
ICBJTkNfU1RBVFMoIkRPTS5BcnJheUJ1ZmZlci5Db25zdHJ1Y3RvciIpOwogCiAgICAgaWYgKCFh
cmdzLklzQ29uc3RydWN0Q2FsbCgpKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0
aW9uLiIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmpl
Y3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKIAogICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9PSBDb25z
dHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9s
ZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhB
cnJheUJ1ZmZlclZpZXdDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCmluZGV4IGEyZmQ2OWRjY2Y4N2NjNzAwNzlhZTY0
ZmJkNGRkMDkyOWIxZjlmM2EuLjllMjIwNmUxMmFmYTg5M2E2ZDQ5MmNhMDQ2MjAzODE0NzI1N2Nj
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5
QnVmZmVyVmlld0N1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCkBAIC02MCwyMCArNjAsMjAgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChj
b25zdCB2ODo6QXJndW0KIHsKICAgICBBcnJheUJ1ZmZlciogYnVmID0gVjhBcnJheUJ1ZmZlcjo6
dG9OYXRpdmUoYXJnc1swXS0+VG9PYmplY3QoKSk7CiAgICAgaWYgKCFidWYpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQg
MCB0byBhIEFycmF5QnVmZmVyIik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVF
cnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBhIEFycmF5QnVmZmVyIiwgYXJn
cy5HZXRJc29sYXRlKCkpOwogICAgIGJvb2wgb2s7CiAgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsK
ICAgICBpbnQgYXJnTGVuID0gYXJncy5MZW5ndGgoKTsKICAgICBpZiAoYXJnTGVuID4gMSkgewog
ICAgICAgICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBvayk7CiAgICAgICAgIGlmICghb2sp
Ci0gICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkNvdWxkIG5vdCBj
b252ZXJ0IGFyZ3VtZW50IDEgdG8gYSBudW1iZXIiKTsKKyAgICAgICAgICAgIHJldHVybiBWOFBy
b3h5Ojp0aHJvd1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMSB0byBhIG51
bWJlciIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICB9CiAgICAgdWludDMyX3QgbGVuZ3RoID0g
MDsKICAgICBpZiAoYXJnTGVuID4gMikgewogICAgICAgICBsZW5ndGggPSB0b1VJbnQzMihhcmdz
WzJdLCBvayk7CiAgICAgICAgIGlmICghb2spCi0gICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dUeXBlRXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDIgdG8gYSBudW1iZXIi
KTsKKyAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQ291bGQgbm90
IGNvbnZlcnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAg
ICB9IGVsc2UgewogICAgICAgICBpZiAoKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNp
emVvZihFbGVtZW50VHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJv
cihWOFByb3h5OjpSYW5nZUVycm9yLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRl
T2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIiwgYXJncy5HZXRJ
c29sYXRlKCkpOwpAQCAtOTksNyArOTksNyBAQCB0ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBj
bGFzcyBFbGVtZW50VHlwZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFy
cmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdjg6
OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlwZSkKIHsKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1
Y3RDYWxsKCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9i
amVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3Rv
ciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwog
CiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6
V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKQEAgLTE1
Miw3ICsxNTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZQogICAgIGlmIChhcmdzWzBdLT5J
c09iamVjdCgpKSB7CiAgICAgICAgIHNyY0FycmF5ID0gYXJnc1swXS0+VG9PYmplY3QoKTsKICAg
ICAgICAgaWYgKHNyY0FycmF5LklzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBWOFByb3h5
Ojp0aHJvd1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBhbiBhcnJh
eSIpOworICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJDb3VsZCBu
b3QgY29udmVydCBhcmd1bWVudCAwIHRvIGFuIGFycmF5IiwgYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgICAgICBsZW4gPSB0b1VJbnQzMihzcmNBcnJheS0+R2V0KHY4OjpTdHJpbmc6Ok5ldygibGVu
Z3RoIikpKTsKICAgICAgICAgZG9JbnN0YW50aWF0aW9uID0gdHJ1ZTsKICAgICB9IGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9CdWZm
ZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEF1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKaW5kZXggNzllMDJlOGEwNGJhYzZi
MjRkNjc0NzMxNTY3Njk1ZjA0NjMyMzBkMC4uY2YyMTJkMzQ5ZDVkYTQ1NTM4MDUzZDYwYzkxMWYz
MWRlMTY4ZGQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCkBAIC00
NywxMyArNDcsMTMgQEAgdm9pZCBWOEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6YnVmZmVyQWNjZXNz
b3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHYKICAgICBpZiAoVjhBdWRpb0J1
ZmZlcjo6SGFzSW5zdGFuY2UodmFsdWUpKSB7CiAgICAgICAgIGJ1ZmZlciA9IFY4QXVkaW9CdWZm
ZXI6OnRvTmF0aXZlKHZhbHVlLT5Ub09iamVjdCgpKTsKICAgICAgICAgaWYgKGJ1ZmZlciAmJiAh
aW1wLT5zZXRCdWZmZXIoYnVmZmVyKSkgewotICAgICAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoIkF1ZGlvQnVmZmVyIHVuc3VwcG9ydGVkIG51bWJlciBvZiBjaGFubmVscyIpOworICAg
ICAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkF1ZGlvQnVmZmVyIHVuc3VwcG9ydGVk
IG51bWJlciBvZiBjaGFubmVscyIsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KICAgICAKICAgICBpZiAoIWJ1ZmZlcikgewotICAgICAg
ICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZm
ZXIiKTsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIlZhbHVlIGlzIG5vdCBvZiB0
eXBlIEF1ZGlvQnVmZmVyIiwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNzcxYWJkZDA4NGY2NDNhOTE4ZjAzMTI3
YTAwOTdlZDg1NWJkYTk5NS4uOWNlMmUxYWY0ZmZjODQwN2YyMzVkOTg5ZTQwNjVmYTk0ZmMyZmRh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9D
b250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOEF1ZGlvQ29udGV4dDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhCiAgICAgSU5DX1NUQVRTKCJET00uQXVkaW9Db250ZXh0LkNvbnRydWN0b3IiKTsK
IAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJv
eHk6OnRocm93VHlwZUVycm9yKCJBdWRpb0NvbnRleHQgY29uc3RydWN0b3IgY2Fubm90IGJlIGNh
bGxlZCBhcyBhIGZ1bmN0aW9uLiIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoIkF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVu
Y3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6
Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAg
ICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEJsb2JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHAKaW5kZXggNTkxMmMyNDVmN2Y5MWYyODRlYWVhNjYz
MmU2MDY2MmJkODE3YWJmMy4uYWUwNzJkYTFjZDY4MDE0YmIxMjU5ZmZlNzU4MTUwYjU1MjFmNjQ2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1
c3RvbS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QmxvYjo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElOQ19T
VEFUUygiRE9NLkJsb2IuQ29uc3RydWN0b3IiKTsKIAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVj
dENhbGwoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJET00gb2Jq
ZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKKyAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9y
IGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iLCBhcmdzLkdldElzb2xhdGUoKSk7CiAK
ICAgICBpZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50KCkgPT0gQ29uc3RydWN0b3JNb2RlOjpX
cmFwRXhpc3RpbmdPYmplY3QpCiAgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwpAQCAtNzcs
MTQgKzc3LDE0IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEJsb2I6OmNvbnN0cnVjdG9yQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIAogICAgIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IGZpcnN0QXJnID0gYXJnc1swXTsKICAgICBpZiAoIWZpcnN0QXJnLT5Jc0FycmF5KCkpCi0g
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgb2Yg
dGhlIGNvbnN0cnVjdG9yIGlzIG5vdCBvZiB0eXBlIEFycmF5Iik7CisgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbnN0cnVjdG9y
IGlzIG5vdCBvZiB0eXBlIEFycmF5IiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgU3RyaW5n
IHR5cGU7CiAgICAgU3RyaW5nIGVuZGluZ3MgPSAidHJhbnNwYXJlbnQiOwogCiAgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPiAxKSB7CiAgICAgICAgIGlmICghYXJnc1sxXS0+SXNPYmplY3QoKSkKLSAg
ICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiU2Vjb25kIGFyZ3VtZW50
IG9mIHRoZSBjb25zdHJ1Y3RvciBpcyBub3Qgb2YgdHlwZSBPYmplY3QiKTsKKyAgICAgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiU2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBj
b25zdHJ1Y3RvciBpcyBub3Qgb2YgdHlwZSBPYmplY3QiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAK
ICAgICAgICAgRGljdGlvbmFyeSBkaWN0aW9uYXJ5KGFyZ3NbMV0pOwogCkBAIC05NSw3ICs5NSw3
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIAogICAgICAgICBpZiAoY29udGFpbnNFbmRpbmdzKSB7
CiAgICAgICAgICAgICBpZiAoZW5kaW5ncyAhPSAidHJhbnNwYXJlbnQiICYmIGVuZGluZ3MgIT0g
Im5hdGl2ZSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCJUaGUgZW5kaW5ncyBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBcInRyYW5zcGFyZW50XCIgb3Ig
XCJuYXRpdmVcIiIpOworICAgICAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVF
cnJvcigiVGhlIGVuZGluZ3MgcHJvcGVydHkgbXVzdCBiZSBlaXRoZXIgXCJ0cmFuc3BhcmVudFwi
IG9yIFwibmF0aXZlXCIiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgIH0KIAogICAgICAg
ICB2ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2hUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHAKaW5kZXggYzU2OGY4OTJi
ODQxMDYyM2FhYTg0N2NlOGMwMTFkOTI0NGY3NDM3ZC4uY2VhMTBhZjFjNTRhZjcxM2IyODZiY2Uz
N2M0ZWI3YjNkMzNkZDI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhDbGlwYm9hcmRDdXN0b20uY3BwCkBAIC05OSw3ICs5OSw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJnCiAgICAgICAgIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpOwogCiAgICAgaWYgKCFub2RlIHx8ICFu
b2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVF
cnJvcigic2V0RHJhZ0ltYWdlRnJvbUVsZW1lbnQ6IEludmFsaWQgZmlyc3QgYXJndW1lbnQiKTsK
KyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJzZXREcmFnSW1hZ2VGcm9t
RWxlbWVudDogSW52YWxpZCBmaXJzdCBhcmd1bWVudCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAog
ICAgIGlmIChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmhhc0xvY2FsTmFtZShIVE1MTmFt
ZXM6OmltZ1RhZykgJiYgIW5vZGUtPmluRG9jdW1lbnQoKSkKICAgICAgICAgY2xpcGJvYXJkLT5z
ZXREcmFnSW1hZ2Uoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5jYWNoZWRJ
bWFnZSgpLCBJbnRQb2ludCh4LCB5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAKaW5kZXggODk2OTg2MzQy
ZTE0MDhkYjU0OGY2Njc2M2FmN2Y4ZmUzNjBiMjQzYy4uOGY3NWMwZTU3MjIxMWNjNmE2MzE5M2Uw
OGNjNDE5NWQ3NjBmOTk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcApAQCAtNDUsNyArNDUsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01Gb3JtRGF0YTo6Y29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcgogICAgIElOQ19TVEFUUygiRE9NLkZvcm1EYXRhLkNvbnN0
cnVjdG9yIik7CiAKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5u
b3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFz
IGEgZnVuY3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9y
TW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQog
ICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcAppbmRleCBmMWM5ZDI3ZTI3
MWQ5ZDhkOTI1ZjI1YzY1OGM5MThkNWJiZWY0NzMwLi45MTQ3ZTgwMjU3OTZiYWZlNGU3ZDg2YmQ5
NjQ1ZDNlOTQzMTAyZDg0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBAIC0zOSw3ICszOSw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuQ29uc3RydWN0b3Ii
KTsKIAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKLSAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBj
YWxsZWQgYXMgYSBmdW5jdGlvbiIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0
aW9uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3Vy
cmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAgICBy
ZXR1cm4gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDFiZDk3ZDY4MjQz
ZDVjNzBmNmU1NGRhY2QwMWJhZTgwNjk3ZGUzYTYuLmIxYTdiMmIzZWMzNWMwZTMzZmI5MWM1YmRl
OWE3ZTkxMjI3NGIxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxEb2N1bWVudDo6b3BlbkNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBm
dW5jdGlvbiA9IGdsb2JhbC0+R2V0KHY4OjpTdHJpbmc6Ok5ldygib3BlbiIpKTsKICAgICAgICAg
ICAgIC8vIElmIHRoZSBvcGVuIHByb3BlcnR5IGlzIG5vdCBhIGZ1bmN0aW9uIHRocm93IGEgdHlw
ZSBlcnJvci4KICAgICAgICAgICAgIGlmICghZnVuY3Rpb24tPklzRnVuY3Rpb24oKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIm9wZW4gaXMgbm90IGEg
ZnVuY3Rpb24iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJy
b3IoIm9wZW4gaXMgbm90IGEgZnVuY3Rpb24iLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAg
ICAgICAvLyBXcmFwIHVwIHRoZSBhcmd1bWVudHMgYW5kIGNhbGwgdGhlIGZ1bmN0aW9uLgogICAg
ICAgICAgICAgT3duQXJyYXlQdHI8djg6OkxvY2FsPHY4OjpWYWx1ZT4gPiBwYXJhbXMgPSBhZG9w
dEFycmF5UHRyKG5ldyB2ODo6TG9jYWw8djg6OlZhbHVlPlthcmdzLkxlbmd0aCgpXSk7CiAgICAg
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MuTGVuZ3RoKCk7IGkrKykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1lbnRD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1M
SW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDU3MWU0NDNhMmZmNDAyNWZjNGRmOTA5
MjUwMGJhYWNmMDc1NWQ4N2QuLmMxZjU1OWNmNzVhODY0NzQwMzgwOGM0ZWNlZTM2Njk5ZTQ2Y2Nj
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJ
bWFnZUVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcApAQCAtNTEsNyArNTEs
NyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4SFRNTEltYWdlRWxlbWVudENvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZwogICAgIElOQ19TVEFUUygiRE9NLkhUTUxJbWFn
ZUVsZW1lbnQuQ29udHJ1Y3RvciIpOwogCiAgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgp
KQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29u
c3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOworICAgICAgICByZXR1
cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90
IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIGlm
IChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlz
dGluZ09iamVjdCkKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MSW5wdXRFbGVtZW50Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1l
bnRDdXN0b20uY3BwCmluZGV4IDY1Njg2NTQ2ZTQ5YTBhYzg3NTViMjJmMzE0MDg0ZDA5MzlkMjdj
MmEuLmUxYmI1OTQyZTcwNjgwOTM1MDVkZDAzOTI5OTdhZTlmZWYzMDUxN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1
dEVsZW1lbnRDdXN0b20uY3BwCkBAIC00NSw3ICs0NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0QWNjZXNzb3JHZXR0ZXIodjg6Okxv
Y2FsCiAgICAgSFRNTElucHV0RWxlbWVudCogaW1wID0gVjhIVE1MSW5wdXRFbGVtZW50Ojp0b05h
dGl2ZShob2xkZXIpOwogCiAgICAgaWYgKCFpbXAtPmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uU3Rh
cnQgb24gYW4gaW5wdXQgZWxlbWVudCB0aGF0IGNhbm5vdCBoYXZlIGEgc2VsZWN0aW9uLiIpOwor
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkFjY2Vzc2luZyBzZWxlY3Rp
b25TdGFydCBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24u
IiwgaW5mby5HZXRJc29sYXRlKCkpOwogCiAgICAgaW50IHYgPSBpbXAtPnNlbGVjdGlvblN0YXJ0
KCk7CiAgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcodik7CkBAIC01OCw3ICs1OCw3IEBAIHZv
aWQgVjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydEFjY2Vzc29yU2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lCiAgICAgSFRNTElucHV0RWxlbWVudCogaW1wID0gVjhIVE1M
SW5wdXRFbGVtZW50Ojp0b05hdGl2ZShob2xkZXIpOwogCiAgICAgaWYgKCFpbXAtPmNhbkhhdmVT
ZWxlY3Rpb24oKSkgewotICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5n
IHNlbGVjdGlvblN0YXJ0IG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5ub3QgaGF2ZSBhIHNl
bGVjdGlvbi4iKTsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkFjY2Vzc2luZyBz
ZWxlY3Rpb25TdGFydCBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxl
Y3Rpb24uIiwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGltcC0+c2V0U2VsZWN0aW9uU3RhcnQodmFsdWUtPkludDMyVmFsdWUoKSk7CkBAIC03MSw3ICs3
MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlv
bkVuZEFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2CiAgICAgSFRNTElucHV0RWxlbWVudCogaW1w
ID0gVjhIVE1MSW5wdXRFbGVtZW50Ojp0b05hdGl2ZShob2xkZXIpOwogCiAgICAgaWYgKCFpbXAt
PmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVy
cm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uRW5kIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5u
b3QgaGF2ZSBhIHNlbGVjdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlw
ZUVycm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uRW5kIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBj
YW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4iLCBpbmZvLkdldElzb2xhdGUoKSk7CiAKICAgICBpbnQg
diA9IGltcC0+c2VsZWN0aW9uRW5kKCk7CiAgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcodik7
CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgVjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25FbmRB
Y2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbXAgPSBWOEhUTUxJbnB1dEVsZW1lbnQ6OnRvTmF0aXZlKGhvbGRlcik7CiAKICAg
ICBpZiAoIWltcC0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7Ci0gICAgICAgIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uRW5kIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhh
dCBjYW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4iKTsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoIkFjY2Vzc2luZyBzZWxlY3Rpb25FbmQgb24gYW4gaW5wdXQgZWxlbWVudCB0aGF0IGNh
bm5vdCBoYXZlIGEgc2VsZWN0aW9uLiIsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtOTgsNyArOTgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhI
VE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nlc3NvckdldHRlcih2ODo6TAog
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGltcCA9IFY4SFRNTElucHV0RWxlbWVudDo6dG9OYXRpdmUo
aG9sZGVyKTsKIAogICAgIGlmICghaW1wLT5jYW5IYXZlU2VsZWN0aW9uKCkpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNlbGVjdGlvbkRpcmVjdGlv
biBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24uIik7Cisg
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNlbGVjdGlv
bkRpcmVjdGlvbiBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rp
b24uIiwgaW5mby5HZXRJc29sYXRlKCkpOwogCiAgICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+c2Vs
ZWN0aW9uRGlyZWN0aW9uKCkpOwogfQpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgVjhIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4KICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbXAgPSBWOEhUTUxJbnB1dEVsZW1lbnQ6
OnRvTmF0aXZlKGhvbGRlcik7CiAKICAgICBpZiAoIWltcC0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7
Ci0gICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJBY2Nlc3Npbmcgc2VsZWN0aW9uRGly
ZWN0aW9uIG9uIGFuIGlucHV0IGVsZW1lbnQgdGhhdCBjYW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4i
KTsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkFjY2Vzc2luZyBzZWxlY3Rpb25E
aXJlY3Rpb24gb24gYW4gaW5wdXQgZWxlbWVudCB0aGF0IGNhbm5vdCBoYXZlIGEgc2VsZWN0aW9u
LiIsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTI0
LDcgKzEyNCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFNlbGVjdGlvblJhbmdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyCiAgICAgSFRNTElucHV0RWxlbWVu
dCogaW1wID0gVjhIVE1MSW5wdXRFbGVtZW50Ojp0b05hdGl2ZShob2xkZXIpOwogCiAgICAgaWYg
KCFpbXAtPmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCJDYWxsaW5nIHNldFNlbGVjdGlvblJhbmdlIG9uIGFuIGlucHV0IGVsZW1lbnQg
dGhhdCBjYW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCJDYWxsaW5nIHNldFNlbGVjdGlvblJhbmdlIG9uIGFuIGlucHV0IGVs
ZW1lbnQgdGhhdCBjYW5ub3QgaGF2ZSBhIHNlbGVjdGlvbi4iLCBhcmdzLkdldElzb2xhdGUoKSk7
CiAKICAgICBpbnQgc3RhcnQgPSBhcmdzWzBdLT5JbnQzMlZhbHVlKCk7CiAgICAgaW50IGVuZCA9
IGFyZ3NbMV0tPkludDMyVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKaW5kZXgg
N2NiMjI3NmQ4ZDljY2QyMTI3NWExODEyMWUxN2UxNmE5YzAwM2FhYS4uMzI3ZmVmZjNmMGE1ZjY4
YTM2YTFkMGQ5MGU3YTIxZTE1YzllZTQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAK
QEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBWOEhUTUxNZWRpYUVsZW1lbnQ6OmNvbnRyb2xsZXJBY2Nl
c3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjgKICAgICAgICAgY29udHJv
bGxlciA9IFY4TWVkaWFDb250cm9sbGVyOjp0b05hdGl2ZSh2YWx1ZS0+VG9PYmplY3QoKSk7CiAg
ICAgCiAgICAgaWYgKCFjb250cm9sbGVyKSB7Ci0gICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVy
cm9yKCJWYWx1ZSBpcyBub3Qgb2YgdHlwZSBNZWRpYUNvbnRyb2xsZXIiKTsKKyAgICAgICAgVjhQ
cm94eTo6dGhyb3dUeXBlRXJyb3IoIlZhbHVlIGlzIG5vdCBvZiB0eXBlIE1lZGlhQ29udHJvbGxl
ciIsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRI
b3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVj
dGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKaW5kZXggMmEwOGRkMTMyNzVjMDg3NGY1ZTVlZjljYmQx
YmNjOTQzMGI2NTc5ZS4uODk4YTBmNDU1YjRhNGZjNjg4ODkwMDFiNGM3MDA4NmY5ZWFjNWFjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRT
Y3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCkBAIC04Myw3ICs4Myw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEluamVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdGVkT2JqZWN0Q2Fs
bGJhY2soY29uc3Qgdjg6OkFyCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKICAg
ICBpZiAoIWFyZ3NbMF0tPklzSW50MzIoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCJhcmd1bWVudCBoYXMgdG8gYmUgYW4gaW50ZWdlciIpOworICAgICAgICByZXR1
cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoImFyZ3VtZW50IGhhcyB0byBiZSBhbiBpbnRlZ2Vy
IiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgSW5qZWN0ZWRTY3JpcHRIb3N0KiBob3N0ID0g
VjhJbmplY3RlZFNjcmlwdEhvc3Q6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEluamVj
dGVkU2NyaXB0SG9zdDo6SW5zcGVjdGFibGVPYmplY3QqIG9iamVjdCA9IGhvc3QtPmluc3BlY3Rl
ZE9iamVjdChhcmdzWzBdLT5Ub0ludDMyKCktPlZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IDVjNmMwYTAyNTIyZjA5YjJiYjNhMTgxODcyMDc5ZjhlNWJjNTM3ZWEuLjc5ZDRkMjRmZGZi
ZWM3NGMyYTk5ZGE4MGViMzM1MzQ2YzA2ZDkyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ4
LDcgKzQ4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50ZW50Ojpjb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKCJET00uSW50
ZW50LkNvbnN0cnVjdG9yIik7CiAKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCi0g
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1
Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CisgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUg
Y2FsbGVkIGFzIGEgZnVuY3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENv
bnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5n
T2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKQEAgLTc2LDcgKzc2LDcgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW50ZW50Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgQXJyYXlCdWZmZXJBcnJheSBhcnJheUJ1ZmZlckFy
cmF5VHJhbnNmZXJMaXN0OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMykgewogICAgICAgICBp
ZiAoIWV4dHJhY3RUcmFuc2ZlcmFibGVzKGFyZ3NbM10sIG1lc3NhZ2VQb3J0QXJyYXlUcmFuc2Zl
ckxpc3QsIGFycmF5QnVmZmVyQXJyYXlUcmFuc2Zlckxpc3QpKQotICAgICAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJDb3VsZCBub3QgZXh0cmFjdCB0cmFuc2ZlcmFibGVz
Iik7CisgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoIkNvdWxkIG5v
dCBleHRyYWN0IHRyYW5zZmVyYWJsZXMiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgfQogICAg
IGJvb2wgZGF0YURpZFRocm93ID0gZmFsc2U7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gZGF0YSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGFyZ3NbMl0sICZtZXNz
YWdlUG9ydEFycmF5VHJhbnNmZXJMaXN0LCAmYXJyYXlCdWZmZXJBcnJheVRyYW5zZmVyTGlzdCwg
ZGF0YURpZFRocm93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOWJi
OWM1NTEzY2NlNzkwMmVjYTU0MTg1NGIzYmQ4M2QyZDAwYzZjNy4uMDE5YTAzMDllMGRjNTIxODcz
OTA4OGE3MTc4MzllZmZjYTQxNjgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TWVzc2FnZUNoYW5u
ZWw6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKICAgICAvLyBGSVhN
RTogVGhlIGxvZ2ljIGhlcmUgaXMgYWxtb3N0IGV4YWN0IGR1cGxpY2F0ZSBvZiBWODo6Y29uc3Ry
dWN0RE9NT2JqZWN0LgogICAgIC8vIENvbnNpZGVyIHJlZmFjdG9yaW5nIHRvIHJlZHVjZSBkdXBs
aWNhdGlvbi4KICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCi0gICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3Qg
YmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEg
ZnVuY3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9yTW9k
ZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAg
ICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5vdGlmaWNhdGlvbkNlbnRlckN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb3RpZmljYXRpb25DZW50ZXJDdXN0b20uY3Bw
CmluZGV4IDEwOWFhZjkwZWRiNGUxZmM5OWVjZjIyZjA5MzhjYWZiMGM4ZTE4YWIuLmU1YjFlY2Rk
N2M5NTc2OTQ2OTYwZTA2ZmMyNzNlMWQyNmZlNGQ2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vdGlmaWNhdGlvbkNlbnRlckN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm90aWZpY2F0aW9uQ2VudGVy
Q3VzdG9tLmNwcApAQCAtOTUsNyArOTUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb3Rp
ZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uQ2FsbGJhY2soY29uc3Qgdjg6OgogICAg
IFJlZlB0cjxWOEN1c3RvbVZvaWRDYWxsYmFjaz4gY2FsbGJhY2s7CiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPiAwKSB7CiAgICAgICAgIGlmICghYXJnc1swXS0+SXNPYmplY3QoKSkKLSAgICAgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQ2FsbGJhY2sgbXVzdCBiZSBvZiB2
YWxpZCB0eXBlLiIpOworICAgICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCJDYWxsYmFjayBtdXN0IGJlIG9mIHZhbGlkIHR5cGUuIiwgYXJncy5HZXRJc29sYXRlKCkpOwog
IAogICAgICAgICBjYWxsYmFjayA9IFY4Q3VzdG9tVm9pZENhbGxiYWNrOjpjcmVhdGUoYXJnc1sw
XSwgY29udGV4dCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcAppbmRl
eCBlOGE3NjNiOWFmYTk1Yzg4N2ZmZmQxMWJjMzg1NGM2MjAwNjBkZjhkLi5hNGY4MGQwYTFiYjZk
NGVhZTZiMWJiNTI2NjYxOGMwN2FmNTJlMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTUUxSZXN1bHRTZXRSb3dMaXN0Q3Vz
dG9tLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTUUxSZXN1
bHRTZXRSb3dMaXN0OjppdGVtQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpTeW50YXhFcnJvciwgIkl0ZW0g
aW5kZXggaXMgcmVxdWlyZWQuIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKCFhcmdz
WzBdLT5Jc051bWJlcigpKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
Ikl0ZW0gaW5kZXggbXVzdCBiZSBhIG51bWJlci4iKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCJJdGVtIGluZGV4IG11c3QgYmUgYSBudW1iZXIuIiwgYXJncy5HZXRJ
c29sYXRlKCkpOwogCiAgICAgU1FMUmVzdWx0U2V0Um93TGlzdCogcm93TGlzdCA9IFY4U1FMUmVz
dWx0U2V0Um93TGlzdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggZGQ3YTVkNWUwYWVlMjE0NThmNGI5YWI4MmUx
YjNhMDgzNjc0YjM5ZC4uYjM5ZjJmMThmM2EyNmNhNjI5N2Q2ZmU5OWI0ZmY0YjU5MzA1NDlmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTU1LDcgKzU1LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Y29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXIKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJLaXRNdXRh
dGlvbk9ic2VydmVyLkNvbnN0cnVjdG9yIik7CiAKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RD
YWxsKCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVj
dCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CisgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBj
YW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAg
ICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3Jh
cEV4aXN0aW5nT2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9p
bnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGExMjQ3Mjc0OWVjNzUzY2ZiNzA3MDhiMjBmYWRiNTRk
MWNkZDZmZS4uYjZmOWYwNzQ1OGMzYjY2MjM5NDY3ZDkxNWUyMDU1MWM4YTlmOTI0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2Vi
S2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4V2ViS2l0UG9pbnQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXIKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJLaXRQb2ludC5Db25zdHJ1Y3RvciIpOwog
CiAgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQotICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxl
ZCBhcyBhIGZ1bmN0aW9uLiIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJy
b3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9u
LiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJl
bnQoKSA9PSBDb25zdHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKICAgICAgICAgcmV0
dXJuIGFyZ3MuSG9sZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcAppbmRleCAwYmU5NTZmNGM5NDY0M2M3OWIw
ZDQyYjc1MGE3NTc3NGU3ZTM2N2NkLi44MWE0Y2RjYjg5YTMwZTAxYjY5OTIxM2FmMDVmMDQ1NmU3
ZmZiN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJTb2NrZXRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYlNvY2tldEN1c3RvbS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4V2ViU29ja2V0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJTb2NrZXQuQ29uc3RydWN0b3IiKTsKIAog
ICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQg
YXMgYSBmdW5jdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4i
LCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBpZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50
KCkgPT0gQ29uc3RydWN0b3JNb2RlOjpXcmFwRXhpc3RpbmdPYmplY3QpCiAgICAgICAgIHJldHVy
biBhcmdzLkhvbGRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAppbmRleCA0
MzVkYjgwZWIzZTk5MDhmMmFkZTQwMWM0MzA1ZGU3NDMxYzAzNmRlLi44ZWE5ZWJjNGIwMjNhZTFj
MDgzMjI2MTBhNWI5MGMyYjg5NGE1Yjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9y
LmNwcApAQCAtNDgsNyArNDgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVx
dWVzdDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIElOQ19T
VEFUUygiRE9NLlhNTEh0dHBSZXF1ZXN0LkNvbnN0cnVjdG9yIik7CiAKICAgICBpZiAoIWFyZ3Mu
SXNDb25zdHJ1Y3RDYWxsKCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJv
cigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24u
Iik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBj
b25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIiwgYXJncy5HZXRJc29s
YXRlKCkpOwogCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVj
dG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIo
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>