<?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>86980</bug_id>
          
          <creation_ts>2012-05-20 19:16:20 -0700</creation_ts>
          <short_desc>[V8] Pass Isolate to throwError()s in V8 custom bindings (Part 1)</short_desc>
          <delta_ts>2012-05-20 23:28:16 -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>628717</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-20 19:16:20 -0700</bug_when>
    <thetext>The objective is to pass Isolate around in V8 bindings. In this bug we pass Isolate to throwError()s in V8 custom bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628720</commentid>
    <comment_count>1</comment_count>
      <attachid>142935</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-20 19:18:24 -0700</bug_when>
    <thetext>Created attachment 142935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628807</commentid>
    <comment_count>2</comment_count>
      <attachid>142935</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-20 23:28:11 -0700</bug_when>
    <thetext>Comment on attachment 142935
Patch

Clearing flags on attachment: 142935

Committed r117733: &lt;http://trac.webkit.org/changeset/117733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628808</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-20 23:28:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142935</attachid>
            <date>2012-05-20 19:18:24 -0700</date>
            <delta_ts>2012-05-20 23:28:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86980-20120521111822.patch</filename>
            <type>text/plain</type>
            <size>18945</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZiZWE0YWZiZDFlZjhk
MTY2ZjY2MzU1YmZlMDJiNDdhZWMzMjg1OC4uZDc4ZTZhZmZlNDUyNWRkMGIxMzY2YzFlNDAzNDlk
Mzc5ZDA3ZjlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA1LTIwICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0aHJvd0Vycm9yKClzIGluIFY4IGN1c3RvbSBiaW5kaW5ncyAoUGFydCAxKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5ODAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2JqZWN0aXZl
IGlzIHRvIHBhc3MgSXNvbGF0ZSBhcm91bmQgaW4gVjggYmluZGluZ3MuCisgICAgICAgIFRoaXMg
cGF0Y2ggcGFzc2VzIElzb2xhdGUgdG8gdGhyb3dFcnJvcigpcyBpbiBWOCBjdXN0b20gYmluZGlu
Z3MuCisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4QXJyYXlCdWZmZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
OEF1ZGlvQ29udGV4dDo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEJsb2I6OmNv
bnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0
eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDU1NTdHlsZURl
Y2xhcmF0aW9uOjpuYW1lZFByb3BlcnR5U2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhDbGlwYm9hcmRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDbGlwYm9h
cmQ6OmNsZWFyRGF0YUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q2xpcGJvYXJkOjpz
ZXREcmFnSW1hZ2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9N
Rm9ybURhdGFDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01Gb3JtRGF0YTo6YXBw
ZW5kQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01h
cEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVN0cmluZ01hcDo6bmFtZWRQcm9w
ZXJ0eVNldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhEaXJlY3RvcnlFbnRyeTo6Z2V0RGlyZWN0b3J5Q2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VjhEaXJlY3RvcnlFbnRyeTo6Z2V0RmlsZUNhbGxiYWNrKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOERvY3VtZW50OjpldmFsdWF0ZUNhbGxiYWNrKToKKwogMjAxMi0wNS0y
MCAgR2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPD4gdG8gZml4IGFuIGFsaWdubWVudCB3YXJuaW5nLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJD
dXN0b20uY3BwCmluZGV4IDMxZWI2YmJiNWRjOTk0NjgyMjBkY2U3N2Q2MWU1YzhlMjZjZTIzYjku
LmUxMTliODdmZGQxM2QyNjQxNmE5NGVhMDYwZTNhYWE1NzlkMmRkZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3Rv
bS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXJyYXlCdWZm
ZXI6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKICAgICBpZiAo
bGVuZ3RoID49IDApCiAgICAgICAgIGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGxlbmd0aCksIDEpOwogICAgIGlmICghYnVmZmVyLmdldCgpKQotICAg
ICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSYW5nZUVycm9yLCAiQXJy
YXlCdWZmZXIgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iKTsK
KyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6UmFuZ2VFcnJvciwg
IkFycmF5QnVmZmVyIHNpemUgaXMgbm90IGEgc21hbGwgZW5vdWdoIHBvc2l0aXZlIGludGVnZXIu
IiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8g
YSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5LgogICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9N
V3JhcHBlcihhcmdzLkhvbGRlcigpLCAmaW5mbywgYnVmZmVyLmdldCgpKTsKICAgICBWOERPTVdy
YXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChidWZmZXIucmVsZWFzZSgpLCB2ODo6UGVy
c2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGFyZ3MuSG9sZGVyKCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3Vz
dG9tLmgKaW5kZXggODBmYTVjMGY3NjRhM2JjMDE0YjdiNDM0NTQzY2RhZDRiMmFlNjA5OS4uMjcz
MzBjZTljNTJhZGMxNWViMTBjYmRkNjQ5YmQ3YmUzM2E1ZmY5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3Vz
dG9tLmgKQEAgLTc2LDcgKzc2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdl
YkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChjb25zdCB2ODo6QXJndW0KICAgICAgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJn
dW1lbnQgMiB0byBhIG51bWJlciIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICgoYnVmLT5i
eXRlTGVuZ3RoKCkgLSBvZmZzZXQpICUgc2l6ZW9mKEVsZW1lbnRUeXBlKSkKLSAgICAgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlJhbmdlRXJyb3IsICJBcnJheUJ1
ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgdGhl
IGVsZW1lbnQgc2l6ZS4iKTsKKyAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9y
KFY4UHJveHk6OlJhbmdlRXJyb3IsICJBcnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVP
ZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQgc2l6ZS4iLCBhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgICAgIGxlbmd0aCA9IChidWYtPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkg
LyBzaXplb2YoRWxlbWVudFR5cGUpOwogICAgIH0KICAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJy
YXkgPSBBcnJheUNsYXNzOjpjcmVhdGUoYnVmLCBvZmZzZXQsIGxlbmd0aCk7CkBAIC0xNjksNyAr
MTY5LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUKICAgICBpZiAoZG9JbnN0YW50aWF0aW9u
KQogICAgICAgICBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShsZW4pOwogICAgIGlmICghYXJy
YXkuZ2V0KCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlJh
bmdlRXJyb3IsICJBcnJheUJ1ZmZlclZpZXcgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9z
aXRpdmUgaW50ZWdlci4iKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQ
cm94eTo6UmFuZ2VFcnJvciwgIkFycmF5QnVmZmVyVmlldyBzaXplIGlzIG5vdCBhIHNtYWxsIGVu
b3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogCiAgICAgLy8g
VHJhbnNmb3JtIHRoZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0Nv
bnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVk
aW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCBiNzA4NDg3MDhkZjU1OTZmNDAxMWEyMzE5MDViOTQ5
OTQyN2Y5NzdmLi40ZmQyYTcxODY2N2ExN2M4NmQwNWRjYWIxYWYwMmU1YzJmMTY1OWViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlv
Q29udGV4dEN1c3RvbS5jcHAKQEAgLTUxLDExICs1MSwxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYQogCiAgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckN1cnJl
bnRDb250ZXh0KCk7CiAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRo
cm93RXJyb3IoVjhQcm94eTo6UmVmZXJlbmNlRXJyb3IsICJBdWRpb0NvbnRleHQgY29uc3RydWN0
b3IgYXNzb2NpYXRlZCBmcmFtZSBpcyB1bmF2YWlsYWJsZSIpOworICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpSZWZlcmVuY2VFcnJvciwgIkF1ZGlvQ29udGV4dCBj
b25zdHJ1Y3RvciBhc3NvY2lhdGVkIGZyYW1lIGlzIHVuYXZhaWxhYmxlIiwgYXJncy5HZXRJc29s
YXRlKCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CiAg
ICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQ
cm94eTo6UmVmZXJlbmNlRXJyb3IsICJBdWRpb0NvbnRleHQgY29uc3RydWN0b3IgYXNzb2NpYXRl
ZCBkb2N1bWVudCBpcyB1bmF2YWlsYWJsZSIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dFcnJvcihWOFByb3h5OjpSZWZlcmVuY2VFcnJvciwgIkF1ZGlvQ29udGV4dCBjb25zdHJ1Y3Rv
ciBhc3NvY2lhdGVkIGRvY3VtZW50IGlzIHVuYXZhaWxhYmxlIiwgYXJncy5HZXRJc29sYXRlKCkp
OwogCiAgICAgUmVmUHRyPEF1ZGlvQ29udGV4dD4gYXVkaW9Db250ZXh0OwogICAgIApAQCAtNjQs
OSArNjQsOSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb0NvbnRleHQ6OmNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICAgICAgYXVkaW9Db250ZXh0ID0gQXVkaW9Db250ZXh0OjpjcmVhdGUoZG9j
dW1lbnQsIGVjKTsKICAgICAgICAgaWYgKGVjKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZWMpOworICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKICAgICAgICAgaWYgKCFhdWRpb0NvbnRleHQuZ2V0KCkpCi0gICAgICAgICAgICByZXR1
cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpTeW50YXhFcnJvciwgImF1ZGlvIHJlc291
cmNlcyB1bmF2YWlsYWJsZSBmb3IgQXVkaW9Db250ZXh0IGNvbnN0cnVjdGlvbiIpOworICAgICAg
ICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6U3ludGF4RXJyb3IsICJh
dWRpbyByZXNvdXJjZXMgdW5hdmFpbGFibGUgZm9yIEF1ZGlvQ29udGV4dCBjb25zdHJ1Y3Rpb24i
LCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ29uc3RydWN0
b3IgZm9yIG9mZmxpbmUgKHJlbmRlci10YXJnZXQpIEF1ZGlvQ29udGV4dCB3aGljaCByZW5kZXJz
IGludG8gYW4gQXVkaW9CdWZmZXIuCiAgICAgICAgIC8vIG5ldyBBdWRpb0NvbnRleHQoaW4gdW5z
aWduZWQgbG9uZyBudW1iZXJPZkNoYW5uZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mRnJh
bWVzLCBpbiBmbG9hdCBzYW1wbGVSYXRlKTsKQEAgLTc3LDI0ICs3NywyNCBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYQogCiAgICAgICAgIGludDMyX3QgbnVtYmVyT2ZDaGFubmVscyA9IHRvSW50
MzIoYXJnc1swXSwgb2spOwogICAgICAgICBpZiAoIW9rIHx8IG51bWJlck9mQ2hhbm5lbHMgPD0g
MCB8fCBudW1iZXJPZkNoYW5uZWxzID4gMTApCi0gICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dFcnJvcihWOFByb3h5OjpTeW50YXhFcnJvciwgIkludmFsaWQgbnVtYmVyIG9mIGNoYW5u
ZWxzIik7CisgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpT
eW50YXhFcnJvciwgIkludmFsaWQgbnVtYmVyIG9mIGNoYW5uZWxzIiwgYXJncy5HZXRJc29sYXRl
KCkpOwogCiAgICAgICAgIGludDMyX3QgbnVtYmVyT2ZGcmFtZXMgPSB0b0ludDMyKGFyZ3NbMV0s
IG9rKTsKICAgICAgICAgaWYgKCFvayB8fCBudW1iZXJPZkZyYW1lcyA8PSAwKQotICAgICAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6U3ludGF4RXJyb3IsICJJbnZh
bGlkIG51bWJlciBvZiBmcmFtZXMiKTsKKyAgICAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d0Vycm9yKFY4UHJveHk6OlN5bnRheEVycm9yLCAiSW52YWxpZCBudW1iZXIgb2YgZnJhbWVzIiwg
YXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUgPSB0b0Zsb2F0
KGFyZ3NbMl0pOwogICAgICAgICBpZiAoc2FtcGxlUmF0ZSA8PSAwKQotICAgICAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93RXJyb3IoVjhQcm94eTo6U3ludGF4RXJyb3IsICJJbnZhbGlkIHNh
bXBsZSByYXRlIik7CisgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFBy
b3h5OjpTeW50YXhFcnJvciwgIkludmFsaWQgc2FtcGxlIHJhdGUiLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgIGF1ZGlvQ29udGV4
dCA9IEF1ZGlvQ29udGV4dDo6Y3JlYXRlT2ZmbGluZUNvbnRleHQoZG9jdW1lbnQsIG51bWJlck9m
Q2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlLCBlYyk7CiAgICAgICAgIGlmIChl
YykKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsKKyAgICAgICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgfQogCiAgICAgaWYgKCFh
dWRpb0NvbnRleHQuZ2V0KCkpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4
UHJveHk6OlN5bnRheEVycm9yLCAiRXJyb3IgY3JlYXRpbmcgQXVkaW9Db250ZXh0Iik7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlN5bnRheEVycm9yLCAiRXJy
b3IgY3JlYXRpbmcgQXVkaW9Db250ZXh0IiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIAogICAg
IC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGF1
ZGlvIGNvbnRleHQuCiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVy
KCksICZpbmZvLCBhdWRpb0NvbnRleHQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhCbG9iQ3VzdG9tLmNwcAppbmRleCBkMzBhOTcxNzE0YWUyYmVj
OTkxMzU3M2NiZTcxZDk4ODhkMTJmZDFjLi41OTEyYzI0NWY3ZjkxZjI4NGVhZWE2NjMyZTYwNjYy
YmQ4MTdhYmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhCbG9iQ3VzdG9tLmNwcApAQCAtNjgsNyArNjgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhCbG9iOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAg
ICAgLy8gR2V0IHRoZSBzY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQuCiAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBp
ZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6
OlJlZmVyZW5jZUVycm9yLCAiQmxvYiBjb25zdHJ1Y3RvciBhc3NvY2lhdGVkIGRvY3VtZW50IGlz
IHVuYXZhaWxhYmxlIik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJv
eHk6OlJlZmVyZW5jZUVycm9yLCAiQmxvYiBjb25zdHJ1Y3RvciBhc3NvY2lhdGVkIGRvY3VtZW50
IGlzIHVuYXZhaWxhYmxlIiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaWYgKCFhcmdzLkxl
bmd0aCgpKSB7CiAgICAgICAgIFJlZlB0cjxCbG9iPiBibG9iID0gQmxvYjo6Y3JlYXRlKCk7CkBA
IC05MSw3ICs5MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEJsb2I6OmNvbnN0cnVjdG9y
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgdjg6OlRyeUNhdGNo
IHRyeUNhdGNoRW5kaW5nczsKICAgICAgICAgYm9vbCBjb250YWluc0VuZGluZ3MgPSBkaWN0aW9u
YXJ5LmdldCgiZW5kaW5ncyIsIGVuZGluZ3MpOwogICAgICAgICBpZiAodHJ5Q2F0Y2hFbmRpbmdz
Lkhhc0NhdWdodCgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodHJ5Q2F0Y2hFbmRp
bmdzLkV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHRyeUNhdGNo
RW5kaW5ncy5FeGNlcHRpb24oKSwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgICAgIGlmIChj
b250YWluc0VuZGluZ3MpIHsKICAgICAgICAgICAgIGlmIChlbmRpbmdzICE9ICJ0cmFuc3BhcmVu
dCIgJiYgZW5kaW5ncyAhPSAibmF0aXZlIikKQEAgLTEwMSw3ICsxMDEsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhCbG9iOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiAgICAgICAgIHY4OjpUcnlDYXRjaCB0cnlDYXRjaFR5cGU7CiAgICAgICAgIGRp
Y3Rpb25hcnkuZ2V0KCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgIGlmICh0cnlDYXRjaFR5cGUuSGFz
Q2F1Z2h0KCkpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih0cnlDYXRjaFR5cGUuRXhj
ZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodHJ5Q2F0Y2hUeXBlLkV4
Y2VwdGlvbigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgfQogCiAgICAgQVNTRVJUKGVuZGlu
Z3MgPT0gInRyYW5zcGFyZW50IiB8fCBlbmRpbmdzID09ICJuYXRpdmUiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25D
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVE
ZWNsYXJhdGlvbkN1c3RvbS5jcHAKaW5kZXggNTMwOGVmZTUwMzk5ZDhhNTViODI2MzY4MmI2MzM0
YmU0YzUwZDAyNS4uOWU2M2UwYjFmM2I2OGRjMjM4MDg4YjM5YWRjYjQwOTM3ZjI5ZjJmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNs
YXJhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZFByb3BlcnR5U2V0
dGVyKHY4OjpMb2NhbDx2ODo6UwogICAgIGltcC0+c2V0UHJvcGVydHlJbnRlcm5hbChzdGF0aWNf
Y2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wSW5mby0+cHJvcElEKSwgcHJvcGVydHlWYWx1ZSwgZmFs
c2UsIGVjKTsKIAogICAgIGlmIChlYykKLSAgICAgICAgdGhyb3dFcnJvcihlYyk7CisgICAgICAg
IHRocm93RXJyb3IoZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKIAogICAgIHJldHVybiB2YWx1ZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBi
b2FyZEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDbGlw
Ym9hcmRDdXN0b20uY3BwCmluZGV4IGZiYzNkMDE5MTI4NTNlZTY5MTcwMjQ1ODA5OWU2MDkwNTVi
ODZiMjUuLmM1NjhmODkyYjg0MTA2MjNhYWE4NDdjZThjMDExZDkyNDRmNzQzN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3Vz
dG9tLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDbGlwYm9h
cmQ6OmNsZWFyRGF0YUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgfQog
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRo
cm93RXJyb3IoVjhQcm94eTo6U3ludGF4RXJyb3IsICJjbGVhckRhdGE6IEludmFsaWQgbnVtYmVy
IG9mIGFyZ3VtZW50cyIpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dFcnJvcihWOFBy
b3h5OjpTeW50YXhFcnJvciwgImNsZWFyRGF0YTogSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRz
IiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgU3RyaW5nIHR5cGUgPSB0b1dlYkNvcmVTdHJp
bmcoYXJnc1swXSk7CiAgICAgY2xpcGJvYXJkLT5jbGVhckRhdGEodHlwZSk7CkBAIC04OSw3ICs4
OSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOENsaXBib2FyZDo6c2V0RHJhZ0ltYWdlQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZp
bmVkKCk7CiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAzKQotICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dFcnJvcihWOFByb3h5OjpTeW50YXhFcnJvciwgInNldERyYWdJbWFnZTogSW52
YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIik7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d0Vycm9yKFY4UHJveHk6OlN5bnRheEVycm9yLCAic2V0RHJhZ0ltYWdlOiBJbnZhbGlkIG51bWJl
ciBvZiBhcmd1bWVudHMiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBpbnQgeCA9IHRvSW50
MzIoYXJnc1sxXSk7CiAgICAgaW50IHkgPSB0b0ludDMyKGFyZ3NbMl0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20u
Y3BwCmluZGV4IDEwYzlhMjM0YTUyZjA0NzJkODE4MTQzNGQwMDJhNzE1NWEwNzgwZjAuLjg5Njk4
NjM0MmUxNDA4ZGI1NDhmNjY3NjNhZjdmOGZlMzYwYjI0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAK
QEAgLTY1LDcgKzY1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NRm9ybURhdGE6OmFw
cGVuZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKCJE
T00uRm9ybURhdGEuYXBwZW5kKCkiKTsKICAgICAKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIp
Ci0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd0Vycm9yKFY4UHJveHk6OlN5bnRheEVycm9y
LCAiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
RXJyb3IoVjhQcm94eTo6U3ludGF4RXJyb3IsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKIAogICAgIERPTUZvcm1EYXRhKiBkb21Gb3JtRGF0YSA9IFY4RE9NRm9y
bURhdGE6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAppbmRl
eCA5MzM1ZTA5ODAxNjA5YjhhMWM4ZjhiOWVhZDg0YmY2OWUxNTE1YWMxLi41Nzc3MGM5OTFjMjc5
MTdmMDE0ODkzYTNhMWI3MmJjNjZmYzI3MmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAKQEAgLTgw
LDcgKzgwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NU3RyaW5nTWFwOjpuYW1lZFBy
b3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIFY4RE9NU3RyaW5nTWFwOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKS0+c2V0SXRl
bSh0b1dlYkNvcmVTdHJpbmcobmFtZSksIHRvV2ViQ29yZVN0cmluZyh2YWx1ZSksIGVjKTsKICAg
ICBpZiAoZWMpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsKKyAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm4gdmFsdWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdp
bmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01X
aW5kb3dDdXN0b20uY3BwCmluZGV4IDJhYmNmM2NhNjIxOGI5YmYyZDM1Njc5ZDgxODZiYzA4MGY4
YjkwOTQuLjY2ZWM2NDkzNjhiOGRiZTgyMjcwZDJmYzg2ODY0YWI5ZWY5NWJhYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcApAQCAtMzQzLDcgKzM0Myw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICB3aW5kb3ctPnBvc3RNZXNzYWdlKG1lc3NhZ2Uu
cmVsZWFzZSgpLCAmcG9ydEFycmF5LCB0YXJnZXRPcmlnaW4sIHNvdXJjZSwgZWMpOwotICAgIHJl
dHVybiB0aHJvd0Vycm9yKGVjKTsKKyAgICByZXR1cm4gdGhyb3dFcnJvcihlYywgYXJncy5HZXRJ
c29sYXRlKCkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01XaW5kb3c6OnBvc3RN
ZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGVkaWNhdGVk
V29ya2VyQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggODlhYWY3MmFlYmFhOWZlNmU2ZDQ0ZGE0MGI4
ZmIwZDdjZTg5NGQ3Mi4uY2Y2N2ViYTJkOTY1ZjUxZWJmYTk4OTRlMmM1ODZmYjc3YzhiMGU4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGVkaWNhdGVk
V29ya2VyQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKQEAgLTYzLDcgKzYzLDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQo
KTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICB3b3JrZXJDb250ZXh0LT5wb3N0TWVz
c2FnZShtZXNzYWdlLnJlbGVhc2UoKSwgJnBvcnRzLCBlYyk7Ci0gICAgcmV0dXJuIHRocm93RXJy
b3IoZWMpOworICAgIHJldHVybiB0aHJvd0Vycm9yKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9
CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERlZGljYXRlZFdvcmtlckNvbnRleHQ6OnBvc3RN
ZXNzYWdlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3Vz
dG9tLmNwcAppbmRleCAxOWQ3YTNiNjliMzUxZWVhNTBiYjQzOTZjOTgxODFmYmM2MjM1ODNjLi4z
MjA3YTQzMzM2OTE1MTUwYmJmM2YwZDkxZDc3Y2JmYmQ3OTY4ZDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlD
dXN0b20uY3BwCkBAIC03NiwxMyArNzYsMTMgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGly
ZWN0b3J5RW50cnk6OmdldERpcmVjdG9yeUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMKICAg
ICBSZWZQdHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrOwogICAgIGlmIChhcmdzLkxl
bmd0aCgpID4gMiAmJiAhYXJnc1syXS0+SXNOdWxsKCkgJiYgIWFyZ3NbMl0tPklzVW5kZWZpbmVk
KCkpIHsKICAgICAgICAgaWYgKCFhcmdzWzJdLT5Jc09iamVjdCgpKQotICAgICAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICAgICAg
c3VjY2Vzc0NhbGxiYWNrID0gVjhFbnRyeUNhbGxiYWNrOjpjcmVhdGUoYXJnc1syXSwgZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICB9CiAgICAgUmVmUHRyPEVycm9yQ2FsbGJhY2s+
IGVycm9yQ2FsbGJhY2s7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAzICYmICFhcmdzWzNdLT5J
c051bGwoKSAmJiAhYXJnc1szXS0+SXNVbmRlZmluZWQoKSkgewogICAgICAgICBpZiAoIWFyZ3Nb
M10tPklzT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01B
VENIX0VSUik7CisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VS
UiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgICAgICBlcnJvckNhbGxiYWNrID0gVjhFcnJvckNh
bGxiYWNrOjpjcmVhdGUoYXJnc1szXSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAg
ICB9CiAgICAgaW1wLT5nZXREaXJlY3RvcnkocGF0aCwgZmxhZ3MsIHN1Y2Nlc3NDYWxsYmFjaywg
ZXJyb3JDYWxsYmFjayk7CkBAIC0xMjAsMTMgKzEyMCwxMyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhEaXJlY3RvcnlFbnRyeTo6Z2V0RmlsZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZwogICAgIFJlZlB0cjxFbnRyeUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2s7CiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPiAyICYmICFhcmdzWzJdLT5Jc051bGwoKSAmJiAhYXJnc1syXS0+SXNV
bmRlZmluZWQoKSkgewogICAgICAgICBpZiAoIWFyZ3NbMl0tPklzT2JqZWN0KCkpCi0gICAgICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihUWVBFX01JU01BVENIX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgICAgICBzdWNjZXNzQ2FsbGJhY2sgPSBWOEVudHJ5Q2FsbGJhY2s6OmNyZWF0ZShhcmdzWzJd
LCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIH0KICAgICBSZWZQdHI8RXJyb3JD
YWxsYmFjaz4gZXJyb3JDYWxsYmFjazsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDMgJiYgIWFy
Z3NbM10tPklzTnVsbCgpICYmICFhcmdzWzNdLT5Jc1VuZGVmaW5lZCgpKSB7CiAgICAgICAgIGlm
ICghYXJnc1szXS0+SXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZ
UEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlT
TUFUQ0hfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgIGVycm9yQ2FsbGJhY2sgPSBW
OEVycm9yQ2FsbGJhY2s6OmNyZWF0ZShhcmdzWzNdLCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOwogICAgIH0KICAgICBpbXAtPmdldEZpbGUocGF0aCwgZmxhZ3MsIHN1Y2Nlc3NDYWxsYmFj
aywgZXJyb3JDYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAKaW5kZXggNTc5MzYyNmZlYjhjZWNhZTliMDMy
N2JiMmY2OGQwYzBiYWZmZWY2Yi4uODgzMTQ4OWJiMzZkNmE2NjY3NjYzMjA3YTE2MDJhNTk4Y2Ni
OWQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9j
dW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERvY3VtZW50Q3VzdG9tLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhEb2N1bWVudDo6ZXZhbHVhdGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogCiAgICAgUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gcmVzb2x2ZXIgPSBWOERPTVdyYXBwZXI6
OmdldFhQYXRoTlNSZXNvbHZlcihhcmdzWzJdKTsKICAgICBpZiAoIXJlc29sdmVyICYmICFhcmdz
WzJdLT5Jc051bGwoKSAmJiAhYXJnc1syXS0+SXNVbmRlZmluZWQoKSkKLSAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihUWVBFX01JU01BVENIX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgaW50IHR5cGUg
PSB0b0ludDMyKGFyZ3NbM10pOwogICAgIFJlZlB0cjxYUGF0aFJlc3VsdD4gaW5SZXN1bHQ7CkBA
IC04NiwxMCArODYsMTAgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RG9jdW1lbnQ6OmV2YWx1
YXRlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICB2ODo6VHJ5Q2F0Y2gg
ZXhjZXB0aW9uQ2F0Y2hlcjsKICAgICBSZWZQdHI8WFBhdGhSZXN1bHQ+IHJlc3VsdCA9IGRvY3Vt
ZW50LT5ldmFsdWF0ZShleHByZXNzaW9uLCBjb250ZXh0Tm9kZS5nZXQoKSwgcmVzb2x2ZXIuZ2V0
KCksIHR5cGUsIGluUmVzdWx0LmdldCgpLCBlYyk7CiAgICAgaWYgKGV4Y2VwdGlvbkNhdGNoZXIu
SGFzQ2F1Z2h0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4Y2VwdGlvbkNhdGNoZXIu
RXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGNlcHRpb25DYXRjaGVy
LkV4Y2VwdGlvbigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBpZiAoZWMpCi0gICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>