<?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>84273</bug_id>
          
          <creation_ts>2012-04-18 13:45:32 -0700</creation_ts>
          <short_desc>[V8] Pass Isolate to toV8() (Part6)</short_desc>
          <delta_ts>2012-04-23 17:56:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>84074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>605053</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 13:45:32 -0700</bug_when>
    <thetext>The objective is to pass Isolate to all toV8()s. Since there are a lot of toV8()s, I&apos;ll make the change step by step. In this bug, we pass Isolate to toV8() in several custom bindings.

I think this will continue to Part7 or so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605059</commentid>
    <comment_count>1</comment_count>
      <attachid>137760</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 13:51:19 -0700</bug_when>
    <thetext>Created attachment 137760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605064</commentid>
    <comment_count>2</comment_count>
      <attachid>137761</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 13:57:22 -0700</bug_when>
    <thetext>Created attachment 137761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605066</commentid>
    <comment_count>3</comment_count>
      <attachid>137762</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 14:00:39 -0700</bug_when>
    <thetext>Created attachment 137762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607896</commentid>
    <comment_count>4</comment_count>
      <attachid>137762</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 11:49:13 -0700</bug_when>
    <thetext>Comment on attachment 137762
Patch

Rejecting attachment 137762 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
stom/V8StyleSheetListCustom.cpp
patching file Source/WebCore/bindings/v8/custom/V8TrackEventCustom.cpp
patching file Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp
patching file Source/WebCore/bindings/v8/custom/V8XMLHttpRequestCustom.cpp
patching file Source/WebCore/bindings/v8/custom/V8XSLTProcessorCustom.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Nate Chapin&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12472836</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607943</commentid>
    <comment_count>5</comment_count>
      <attachid>138404</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-23 12:59:29 -0700</bug_when>
    <thetext>Created attachment 138404
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608254</commentid>
    <comment_count>6</comment_count>
      <attachid>138404</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 17:55:14 -0700</bug_when>
    <thetext>Comment on attachment 138404
patch for landing

Clearing flags on attachment: 138404

Committed r114972: &lt;http://trac.webkit.org/changeset/114972&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137760</attachid>
            <date>2012-04-18 13:51:19 -0700</date>
            <delta_ts>2012-04-18 13:57:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84273-20120418135118.patch</filename>
            <type>text/plain</type>
            <size>19927</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxMzY3NzFiNmIzMGZm
ZmIzNzBhOWMxN2MwYjlkNTc3NTVmNzU1Yi4uMmY2NmE5ZTZhYzU3NjQzNDk4YWQ4YTE4Yzc3YTUz
OGExNmI0ZDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA0LTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0b1Y4KCkgKFBhcnQ2KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNvbGF0ZSB0byBhbGwgdG9W
OCgpcy4KKyAgICAgICAgU2luY2UgdGhlcmUgYXJlIGEgbG90IG9mIHRvVjgoKXMsIEknbGwgbWFr
ZSB0aGUgY2hhbmdlCisgICAgICAgIHN0ZXAgYnkgc3RlcC4gVGhpcyBwYXRjaCBwYXNzZXMgSXNv
bGF0ZSB0byB0b1Y4KCkgaW4KKyAgICAgICAgc2V2ZXJhbCBjdXN0b20gYmluZGluZ3MuCisKKyAg
ICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFNWR1BhdGhTZWdDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFN0eWxl
U2hlZXRMaXN0OjpuYW1lZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhUcmFja0V2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VHJhY2tF
dmVudDo6dHJhY2tBY2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
VjhPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0T2JqZWN0UGFyYW1ldGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnND
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
RXh0ZW5zaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXJDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3Jh
bVBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpW
OFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybUNhbGxiYWNrKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFjY2Vzc29yR2V0dGVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudENhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9Eb2N1bWVu
dENhbGxiYWNrKToKKwogMjAxMi0wNC0xOCAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5y
b3R0c2NoZXNAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gQGZvbnQtZmFj
ZSBzdXBwb3J0IGZhaWxzIG9uIEVGTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4U1ZHUGF0aFNlZ0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhTVkdQYXRoU2VnQ3VzdG9tLmNwcAppbmRleCBiYzdkOWZkMWIwZWU4
ZGNiZDFhMTgxYjg3MzY4NjQzMzBlYzA3MjYwLi4yZGJkMTY1Y2I3ZmI1YTBhZmEwNzBjODM4ZjQx
MWJiYTY3ZDNmYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhTVkdQYXRoU2VnQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhTVkdQYXRoU2VnQ3VzdG9tLmNwcApAQCAtNjMsNDMgKzYzLDQzIEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB0b1Y4KFNWR1BhdGhTZWcqIGltcGwsIHY4OjpJc29sYXRlKiBpc29s
YXRlKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKICAgICBzd2l0Y2ggKGltcGwtPnBhdGhT
ZWdUeXBlKCkpIHsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ0xPU0VQQVRIOgotICAg
ICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ2xvc2VQYXRoKj4oaW1wbCkp
OworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ2xvc2VQYXRoKj4o
aW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZFVE9fQUJT
OgotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTW92ZXRvQWJzKj4o
aW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTW92ZXRv
QWJzKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZF
VE9fUkVMOgotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTW92ZXRv
UmVsKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
TW92ZXRvUmVsKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNF
R19MSU5FVE9fQUJTOgotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
TGluZXRvQWJzKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQ
YXRoU2VnTGluZXRvQWJzKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6
UEFUSFNFR19MSU5FVE9fUkVMOgotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQ
YXRoU2VnTGluZXRvUmVsKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2Fz
dDxTVkdQYXRoU2VnTGluZXRvUmVsKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0
aFNlZzo6UEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyo+KGltcGwpKTsKKyAgICAgICAgcmV0
dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyo+KGltcGwpLCBp
c29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw6
Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNS
ZWwqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNSZWwqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQ
QVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGlj
X2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMqPihpbXBsKSk7CisgICAgICAgIHJl
dHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKj4oaW1w
bCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX1FVQURS
QVRJQ19SRUw6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljUmVsKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2Fz
dDxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCo+KGltcGwpLCBpc29sYXRlKTsKICAgICBj
YXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQVJDX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ0FyY0Ficyo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgo
c3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0FyY0Ficyo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNl
IFNWR1BhdGhTZWc6OlBBVEhTRUdfQVJDX1JFTDoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGlj
X2Nhc3Q8U1ZHUGF0aFNlZ0FyY1JlbCo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ0FyY1JlbCo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNW
R1BhdGhTZWc6OlBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTOgotICAgICAgICByZXR1cm4g
dG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyo+KGltcGwpKTsK
KyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250
YWxBYnMqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0xJ
TkVUT19IT1JJWk9OVEFMX1JFTDoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4
KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKj4oaW1wbCksIGlzb2xh
dGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOgot
ICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxB
YnMqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbEFicyo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6
OlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGlj
X2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKj4oaW1wbCkpOworICAgICAgICByZXR1
cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwqPihpbXBsKSwg
aXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01P
T1RIX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aEFicyo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nh
c3Q8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyo+KGltcGwpLCBpc29sYXRlKTsKICAg
ICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMOgotICAg
ICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
UmVsKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoUmVsKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0
aFNlZzo6UEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTOgotICAgICAgICByZXR1
cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyo+
KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNTbW9vdGhBYnMqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRo
U2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw6Ci0gICAgICAgIHJldHVy
biB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKj4o
aW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1Ntb290aFJlbCo+KGltcGwpLCBpc29sYXRlKTsKICAgICB9CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFY4U1ZHUGF0aFNlZzo6d3JhcChpbXBsKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVl
dEN1c3RvbS5jcHAKaW5kZXggZWRjN2UwOWQ3OWE0MDljNjJkNGIxZWIyMTA4MjZkOWRiODI5ZTEx
ZC4uYjYwNzYzN2FkNWM2ZmQ1YWViMWU0M2NmZDEyYTljNWE4OTVkYzc4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3Rv
bS5jcHAKQEAgLTQyLDEyICs0MiwxMiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChTdHls
ZVNoZWV0KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICBpZiAoIWltcGwpCiAgICAg
ICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAgIGlmIChpbXBsLT5pc0NTU1N0eWxlU2hlZXQoKSkK
LSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KGltcGwpKTsK
KyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KGltcGwpLCBp
c29sYXRlKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOFN0eWxlU2hl
ZXQ6OndyYXAoaW1wbCk7CiAgICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHN0eWxl
c2hlZXQgb2JqZWN0IHRvIGl0cyBvd25lciBub2RlLgogICAgIE5vZGUqIG93bmVyTm9kZSA9IGlt
cGwtPm93bmVyTm9kZSgpOwogICAgIGlmIChvd25lck5vZGUgJiYgIXdyYXBwZXIuSXNFbXB0eSgp
KQotICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIs
ICJvd25lck5vZGUiLCB0b1Y4KG93bmVyTm9kZSkpOworICAgICAgICBWOERPTVdyYXBwZXI6OnNl
dE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KG93bmVyTm9k
ZSwgaXNvbGF0ZSkpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3Rv
bS5jcHAKaW5kZXggY2VlMTgzODNhNGQ5ODU1NTJhNTY4YzA4ZDExZmNmMmNlNmM3NjRlYS4uZTI4
NjY1NDkwZjhjOGRiYjY4YTYyZmU0NzU5MzZjOWIyZWNkY2I0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3Vz
dG9tLmNwcApAQCAtNTIsNyArNTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTdHlsZVNo
ZWV0TGlzdDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZwogICAgIGlm
ICghaXRlbSkKICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CiAKLSAg
ICByZXR1cm4gdG9WOChpdGVtLT5zaGVldCgpKTsKKyAgICByZXR1cm4gdG9WOChpdGVtLT5zaGVl
dCgpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyYWNrRXZlbnRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVu
dEN1c3RvbS5jcHAKaW5kZXggMzdmZDNkYjhiMzYxYmMyNzM0NjAxNzMxNzc2YTYwOGJhNmY5M2Zm
ZS4uNTk0MmY1YzRkZTEwYzE1NjQzNDkwMjEyMGU4MTdjODdjZGMwMWNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVudEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVudEN1c3Rv
bS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VHJhY2tFdmVu
dDo6dHJhY2tBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgVHJhY2tCYXNlOjpUZXh0VHJhY2s6Ci0gICAgICAg
IHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFRleHRUcmFjayo+KHRyYWNrKSk7CisgICAgICAgIHJl
dHVybiB0b1Y4KHN0YXRpY19jYXN0PFRleHRUcmFjayo+KHRyYWNrKSwgaW5mby5HZXRJc29sYXRl
KCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVHJhY2tCYXNlOjpBdWRpb1RyYWNrOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggN2RjZWRiZTI1NDc1YjIz
MDYxZjk2YjBkMWE4NjRkNmY4OWE4OTIyNS4uNzAxMjFkNTE4MzU4NWMxNGZkNDg2YzY5NmJjODE3
MTM4ZjczZGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0x
MTUsNyArMTE1LDcgQEAgc3RhdGljIGludCoganNBcnJheVRvSW50QXJyYXkodjg6OkhhbmRsZTx2
ODo6QXJyYXk+IGFycmF5LCB1aW50MzJfdCBsZW4pCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLXN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChjb25zdCBXZWJHTEdldEluZm8m
IGluZm8pCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoY29uc3QgV2Vi
R0xHZXRJbmZvJiBpbmZvLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICBzd2l0Y2ggKGlu
Zm8uZ2V0VHlwZSgpKSB7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKQEAgLTEz
OCwzNCArMTM4LDM0IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChj
b25zdCBXZWJHTEdldEluZm8mIGluZm8pCiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlVW5z
aWduZWRJbnQ6CiAgICAgICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3RnJvbVVuc2lnbmVkKGlu
Zm8uZ2V0VW5zaWduZWRJbnQoKSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xC
dWZmZXI6Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xCdWZmZXIoKSk7CisgICAg
ICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xCdWZmZXIoKSwgaXNvbGF0ZSk7CiAgICAgY2Fz
ZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xGbG9hdEFycmF5OgotICAgICAgICByZXR1cm4gdG9W
OChpbmZvLmdldFdlYkdMRmxvYXRBcnJheSgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5n
ZXRXZWJHTEZsb2F0QXJyYXkoKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlV2ViR0xGcmFtZWJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTEZy
YW1lYnVmZmVyKCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMRnJhbWVidWZm
ZXIoKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xJbnRBcnJh
eToKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTEludEFycmF5KCkpOworICAgICAg
ICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMSW50QXJyYXkoKSwgaXNvbGF0ZSk7CiAgICAgLy8g
RklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5CiAgICAgLy8gY2FzZSBXZWJHTEdldElu
Zm86OmtUeXBlV2ViR0xPYmplY3RBcnJheToKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVX
ZWJHTFByb2dyYW06Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xQcm9ncmFtKCkp
OworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMUHJvZ3JhbSgpLCBpc29sYXRlKTsK
ICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcjoKLSAgICAgICAg
cmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFJlbmRlcmJ1ZmZlcigpKTsKKyAgICAgICAgcmV0dXJu
IHRvVjgoaW5mby5nZXRXZWJHTFJlbmRlcmJ1ZmZlcigpLCBpc29sYXRlKTsKICAgICBjYXNlIFdl
YkdMR2V0SW5mbzo6a1R5cGVXZWJHTFRleHR1cmU6Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8u
Z2V0V2ViR0xUZXh0dXJlKCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVGV4
dHVyZSgpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVuc2ln
bmVkQnl0ZUFycmF5OgotICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVW5zaWduZWRC
eXRlQXJyYXkoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xVbnNpZ25lZEJ5
dGVBcnJheSgpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVu
c2lnbmVkSW50QXJyYXk6Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xVbnNpZ25l
ZEludEFycmF5KCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVW5zaWduZWRJ
bnRBcnJheSgpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOgotICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUygpLCBpc29sYXRlKTsKICAgICBkZWZhdWx0OgogICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0K
IH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KFdlYkdMRXh0ZW5z
aW9uKiBleHRlbnNpb24sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY29udGV4dE9iamVjdCkKK3N0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0
ZW5zaW9uLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNvbnRleHRPYmplY3QsIHY4OjpJc29sYXRl
KiBpc29sYXRlKQogewogICAgIGlmICghZXh0ZW5zaW9uKQogICAgICAgICByZXR1cm4gdjg6Ok51
bGwoKTsKQEAgLTE3MywzNSArMTczLDM1IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uLCB2ODo6SGFuZGxlPHY4CiAgICAg
Y29uc3QgY2hhciogcmVmZXJlbmNlTmFtZSA9IDA7CiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdl
dE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYktpdFdlYkdMTG9zZUNvbnRl
eHROYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdM
TG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9W
OChzdGF0aWNfY2FzdDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSwgaXNvbGF0ZSk7CiAg
ICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViS2l0V2ViR0xMb3NlQ29udGV4dE5hbWUiOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWNOYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0
PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOworICAgICAgICBleHRl
bnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yyo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gImV4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZToKLSAgICAgICAgZXh0ZW5z
aW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2YXRpdmVzKj4oZXh0
ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VT
U3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICByZWZl
cmVuY2VOYW1lID0gIm9lc1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lIjsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUZsb2F0TmFtZToKLSAgICAgICAg
ZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRl
bnNpb24pKTsKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNU
ZXh0dXJlRmxvYXQqPihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJvZXNUZXh0dXJlRmxvYXROYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJH
TEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgotICAgICAgICBleHRlbnNpb25P
YmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVmVydGV4
QXJyYXlPYmplY3QqPihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVjdE5hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToKLSAgICAgICAgZXh0
ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4o
ZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICBy
ZWZlcmVuY2VOYW1lID0gIndlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lIjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgotICAg
ICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJz
Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nh
c3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAgcmVm
ZXJlbmNlTmFtZSA9ICJ3ZWJHTERlYnVnU2hhZGVyc05hbWUiOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05h
bWU6Ci0gICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0
ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lv
biksIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYktpdFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDTmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTI0OCw3ICsy
NDgsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldE9iamVjdFBhcmFtZXRlcihj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBPYmplYwogICAgICAgICBWOFByb3h5OjpzZXRET01F
eGNlcHRpb24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KLSAg
ICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvLCBh
cmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogdG9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIG9r
KQpAQCAtMjkyLDcgKzI5Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzQ2FsbGJhY2soY29uc3QKICAgICAgICAgcmV0
dXJuIHY4OjpOdWxsKCk7CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJy
YXk6Ok5ldyhzaGFkZXJzLnNpemUoKSk7CiAgICAgZm9yIChzaXplX3QgaWkgPSAwOyBpaSA8IHNo
YWRlcnMuc2l6ZSgpOyArK2lpKQotICAgICAgICBhcnJheS0+U2V0KHY4OjpJbnRlZ2VyOjpOZXco
aWkpLCB0b1Y4KHNoYWRlcnNbaWldLmdldCgpKSk7CisgICAgICAgIGFycmF5LT5TZXQodjg6Oklu
dGVnZXI6Ok5ldyhpaSksIHRvVjgoc2hhZGVyc1tpaV0uZ2V0KCksIGFyZ3MuR2V0SXNvbGF0ZSgp
KSk7CiAgICAgcmV0dXJuIGFycmF5OwogfQogCkBAIC0zMTIsNyArMzEyLDcgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxsYmFj
ayhjb25zdCB2ODo6QXIKICAgICB9CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBuYW1lLCBhcmdzWzBdKTsKICAgICBXZWJHTEV4dGVuc2lv
biogZXh0ZW5zaW9uID0gaW1wLT5nZXRFeHRlbnNpb24obmFtZSk7Ci0gICAgcmV0dXJuIHRvVjhP
YmplY3QoZXh0ZW5zaW9uLCBhcmdzLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChl
eHRlbnNpb24sIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAt
MzM0LDcgKzMzNCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyCiAgICAgICAgIFY4UHJveHk6
OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAg
ICAgfQotICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8pOworICAgIHJldHVybiB0b1Y4T2JqZWN0
KGluZm8sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXJDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQpAQCAtMzU0LDcgKzM1NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFy
CiAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAgIHJldHVybiB2
ODo6VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8pOworICAg
IHJldHVybiB0b1Y4T2JqZWN0KGluZm8sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1l
dGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTM3OSw3ICszNzksNyBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dy
YW1QYXJhbWV0ZXJDYWxsYmFjayhjb25zdAogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KLSAgICByZXR1
cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvLCBhcmdzLkdl
dElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKQEAgLTQxMCw3ICs0MTAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFtZXRlckNhbGxiYWNrKGNvbnN0CiAg
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8pOworICAgIHJl
dHVybiB0b1Y4T2JqZWN0KGluZm8sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTQ2Miw3ICs0NjIsNyBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZv
cm1DYWxsYmFjayhjb25zdCB2ODo6QXJndQogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KLSAgICByZXR1
cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvLCBhcmdzLkdl
dElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0VmVydGV4QXR0cmliQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCBlOWUzYmY2OWU5MjdkMTFhYTA5ZTg1MmIz
ZjkyNzQ3YTNhMWJjMTBhLi44MmM3NGNkYjc1YWVmMzA5MGIwMjVmMGNiZjU1MjMzNGRhODA5NTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC03OCw3ICs3OCw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFjY2Vzc29yR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyCiAgICAgICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVj
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuIHRvVjgoZG9jdW1lbnQpOworICAgICAgICAgICAgcmV0dXJu
IHRvVjgoZG9jdW1lbnQsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgfQogCiAgICAgY2Fz
ZSBYTUxIdHRwUmVxdWVzdDo6UmVzcG9uc2VUeXBlQmxvYjoKQEAgLTkwLDcgKzkwLDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQWNjZXNzb3JHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHIKICAgICAgICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oZWMpOwogICAgICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdG9WOChibG9iKTsKKyAgICAgICAgICAgIHJl
dHVybiB0b1Y4KGJsb2IsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgfQogI2Vsc2UKICAg
ICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBY2Nlc3NvckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cgogICAgICAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlv
bihlYyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0b1Y4KGFycmF5QnVmZmVyKTsKKyAgICAgICAgICAg
IHJldHVybiB0b1Y4KGFycmF5QnVmZmVyLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgICAgIH0K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKaW5kZXggNjgwYzdhMTUxYzQ2MDk0ZTJlZmUy
Mzc3OTUwMDQyYjliN2M4NGNlZi4uZTlmOTUxNzU0Yjg4YTcxNDA2YjkzNmYwMjkxYzEwNmI5YThj
ODUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNM
VFByb2Nlc3NvckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudENhbGxiYWNr
KGNvbnN0IHY4OjpBcmcKICAgICBOb2RlKiBzb3VyY2UgPSBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpOwogICAgIERvY3VtZW50KiBvd25lciA9
IFY4RG9jdW1lbnQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1sx
XSkpOwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZXN1bHQgPSBpbXAtPnRyYW5zZm9y
bVRvRnJhZ21lbnQoc291cmNlLCBvd25lcik7Ci0gICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVh
c2UoKSk7CisgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgYXJncy5HZXRJc29sYXRl
KCkpOwogfQogCiAKQEAgLTk1LDcgKzk1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WFNM
VFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9Eb2N1bWVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmcKICAg
ICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgIHJl
dHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCkpOworICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxl
YXNlKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137761</attachid>
            <date>2012-04-18 13:57:22 -0700</date>
            <delta_ts>2012-04-18 14:00:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84273-20120418135721.patch</filename>
            <type>text/plain</type>
            <size>23966</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxMzY3NzFiNmIzMGZm
ZmIzNzBhOWMxN2MwYjlkNTc3NTVmNzU1Yi4uMmY2NmE5ZTZhYzU3NjQzNDk4YWQ4YTE4Yzc3YTUz
OGExNmI0ZDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA0LTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0b1Y4KCkgKFBhcnQ2KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNvbGF0ZSB0byBhbGwgdG9W
OCgpcy4KKyAgICAgICAgU2luY2UgdGhlcmUgYXJlIGEgbG90IG9mIHRvVjgoKXMsIEknbGwgbWFr
ZSB0aGUgY2hhbmdlCisgICAgICAgIHN0ZXAgYnkgc3RlcC4gVGhpcyBwYXRjaCBwYXNzZXMgSXNv
bGF0ZSB0byB0b1Y4KCkgaW4KKyAgICAgICAgc2V2ZXJhbCBjdXN0b20gYmluZGluZ3MuCisKKyAg
ICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFNWR1BhdGhTZWdDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFN0eWxl
U2hlZXRMaXN0OjpuYW1lZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhUcmFja0V2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VHJhY2tF
dmVudDo6dHJhY2tBY2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
VjhPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0T2JqZWN0UGFyYW1ldGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnND
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
RXh0ZW5zaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXJDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3Jh
bVBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpW
OFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybUNhbGxiYWNrKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFjY2Vzc29yR2V0dGVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudENhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9Eb2N1bWVu
dENhbGxiYWNrKToKKwogMjAxMi0wNC0xOCAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5y
b3R0c2NoZXNAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gQGZvbnQtZmFj
ZSBzdXBwb3J0IGZhaWxzIG9uIEVGTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4
IDFkYzc4MzZlNDAyNDAzNTEyZjU3ZjVmODc1ZWNlNWE2OTkyMzRiYjQuLjBhMDU5NDgzM2U2Yjdi
YjMzN2YzYmVkOWFkMmMxODllNWVmN2Q2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGdldE5hbWVkSXRlbXMoSFRNTEFsbENvbGxlY3Rpb24qIGNvbGxl
Y3Rpb24sIEF0b21pY1N0cmluZyBuYW1lKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBn
ZXROYW1lZEl0ZW1zKEhUTUxBbGxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBBdG9taWNTdHJpbmcg
bmFtZSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+
IG5hbWVkSXRlbXM7CiAgICAgY29sbGVjdGlvbi0+bmFtZWRJdGVtcyhuYW1lLCBuYW1lZEl0ZW1z
KTsKQEAgLTUwLDE2ICs1MCwxNiBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldE5h
bWVkSXRlbXMoSFRNTEFsbENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIEF0b21pYwogICAgICAgICBy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBpZiAobmFtZWRJdGVtcy5zaXpl
KCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIHRvVjgobmFtZWRJdGVtcy5hdCgwKS5yZWxlYXNlKCkp
OworICAgICAgICByZXR1cm4gdG9WOChuYW1lZEl0ZW1zLmF0KDApLnJlbGVhc2UoKSwgaXNvbGF0
ZSk7CiAKLSAgICByZXR1cm4gdG9WOChWOE5hbWVkTm9kZXNDb2xsZWN0aW9uOjpjcmVhdGUobmFt
ZWRJdGVtcykpOworICAgIHJldHVybiB0b1Y4KFY4TmFtZWROb2Rlc0NvbGxlY3Rpb246OmNyZWF0
ZShuYW1lZEl0ZW1zKSwgaXNvbGF0ZSk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZ2V0SXRlbShIVE1MQWxsQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGFyZ3VtZW50KQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRJdGVtKEhU
TUxBbGxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndW1l
bnQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIHY4OjpMb2NhbDx2ODo6VWludDMyPiBp
bmRleCA9IGFyZ3VtZW50LT5Ub0FycmF5SW5kZXgoKTsKICAgICBpZiAoaW5kZXguSXNFbXB0eSgp
KSB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBnZXROYW1lZEl0ZW1z
KGNvbGxlY3Rpb24sIHRvV2ViQ29yZVN0cmluZyhhcmd1bWVudC0+VG9TdHJpbmcoKSkpOworICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gZ2V0TmFtZWRJdGVtcyhjb2xsZWN0
aW9uLCB0b1dlYkNvcmVTdHJpbmcoYXJndW1lbnQtPlRvU3RyaW5nKCkpLCBpc29sYXRlKTsKIAog
ICAgICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6VW5k
ZWZpbmVkKCk7CkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
Z2V0SXRlbShIVE1MQWxsQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgdjg6OkhhbmRsZTx2CiAgICAg
fQogCiAgICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IGNvbGxlY3Rpb24tPml0ZW0oaW5kZXgtPlVp
bnQzMlZhbHVlKCkpOwotICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCkpOworICAgIHJl
dHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGlzb2xhdGUpOwogfQogCiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhIVE1MQWxsQ29sbGVjdGlvbjo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAgLTgx
LDIxICs4MSwyMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MQWxsQ29sbGVjdGlvbjo6
bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cgogICAgICAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKIAogICAgIEhUTUxBbGxDb2xsZWN0aW9uKiBpbXAgPSBW
OEhUTUxBbGxDb2xsZWN0aW9uOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4g
Z2V0TmFtZWRJdGVtcyhpbXAsIHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3RyaW5nKG5hbWUpKTsK
KyAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhpbXAsIHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3Ry
aW5nKG5hbWUpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEhUTUxBbGxDb2xsZWN0aW9uOjppdGVtQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5IVE1MQWxsQ29sbGVjdGlvbi5pdGVtKCkiKTsK
ICAgICBIVE1MQWxsQ29sbGVjdGlvbiogaW1wID0gVjhIVE1MQWxsQ29sbGVjdGlvbjo6dG9OYXRp
dmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIGdldEl0ZW0oaW1wLCBhcmdzWzBdKTsKKyAg
ICByZXR1cm4gZ2V0SXRlbShpbXAsIGFyZ3NbMF0sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAog
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEFsbENvbGxlY3Rpb246Om5hbWVkSXRlbUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uSFRN
TEFsbENvbGxlY3Rpb24ubmFtZWRJdGVtKCkiKTsKICAgICBIVE1MQWxsQ29sbGVjdGlvbiogaW1w
ID0gVjhIVE1MQWxsQ29sbGVjdGlvbjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9IGdldE5hbWVkSXRlbXMoaW1wLCB0b1dlYkNvcmVT
dHJpbmcoYXJnc1swXSkpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBnZXRO
YW1lZEl0ZW1zKGltcCwgdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAKICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKQEAgLTExMiw3ICsxMTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1M
QWxsQ29sbGVjdGlvbjo6Y2FsbEFzRnVuY3Rpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndQogICAg
IEhUTUxBbGxDb2xsZWN0aW9uKiBpbXAgPSBWOEhUTUxBbGxDb2xsZWN0aW9uOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpID09IDEpCi0gICAgICAgIHJl
dHVybiBnZXRJdGVtKGltcCwgYXJnc1swXSk7CisgICAgICAgIHJldHVybiBnZXRJdGVtKGltcCwg
YXJnc1swXSwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgLy8gSWYgdGhlcmUgaXMgYSBzZWNv
bmQgYXJndW1lbnQgaXQgaXMgdGhlIGluZGV4IG9mIHRoZSBpdGVtIHdlIHdhbnQuCiAgICAgU3Ry
aW5nIG5hbWUgPSB0b1dlYkNvcmVTdHJpbmcoYXJnc1swXSk7CkBAIC0xMjEsNyArMTIxLDcgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEFsbENvbGxlY3Rpb246OmNhbGxBc0Z1bmN0aW9u
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3UKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
IAogICAgIGlmIChOb2RlKiBub2RlID0gaW1wLT5uYW1lZEl0ZW1XaXRoSW5kZXgobmFtZSwgaW5k
ZXgtPlVpbnQzMlZhbHVlKCkpKQotICAgICAgICByZXR1cm4gdG9WOChub2RlKTsKKyAgICAgICAg
cmV0dXJuIHRvVjgobm9kZSwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFNWR1BhdGhTZWdDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4U1ZHUGF0aFNlZ0N1c3RvbS5jcHAKaW5kZXggYmM3ZDlmZDFiMGVlOGRjYmQxYTE4
MWI4NzM2ODY0MzMwZWMwNzI2MC4uMmRiZDE2NWNiN2ZiNWEwYWZhMDcwYzgzOGY0MTFiYmE2N2Qz
ZmIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZH
UGF0aFNlZ0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U1ZHUGF0aFNlZ0N1c3RvbS5jcHAKQEAgLTYzLDQzICs2Myw0MyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdG9WOChTVkdQYXRoU2VnKiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAg
ICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CiAgICAgc3dpdGNoIChpbXBsLT5wYXRoU2VnVHlwZSgp
KSB7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NMT1NFUEFUSDoKLSAgICAgICAgcmV0
dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0Nsb3NlUGF0aCo+KGltcGwpKTsKKyAgICAg
ICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0Nsb3NlUGF0aCo+KGltcGwpLCBp
c29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTU9WRVRPX0FCUzoKLSAgICAg
ICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ01vdmV0b0Ficyo+KGltcGwpKTsK
KyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ01vdmV0b0Ficyo+KGlt
cGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTU9WRVRPX1JFTDoK
LSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ01vdmV0b1JlbCo+KGlt
cGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ01vdmV0b1Jl
bCo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTElORVRP
X0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b0Fi
cyo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xp
bmV0b0Ficyo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdf
TElORVRPX1JFTDoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xp
bmV0b1JlbCo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0
aFNlZ0xpbmV0b1JlbCo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBB
VEhTRUdfQ1VSVkVUT19DVUJJQ19BQlM6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0
PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4
KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMqPihpbXBsKSwgaXNvbGF0ZSk7
CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMOgotICAgICAg
ICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsKj4oaW1w
bCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b0N1
YmljUmVsKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19D
VVJWRVRPX1FVQURSQVRJQ19BQlM6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9W
OChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficyo+KGltcGwpLCBpc29s
YXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVM
OgotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1JlbCo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQ
YXRoU2VnOjpQQVRIU0VHX0FSQ19BQlM6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0
PFNWR1BhdGhTZWdBcmNBYnMqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19j
YXN0PFNWR1BhdGhTZWdBcmNBYnMqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRo
U2VnOjpQQVRIU0VHX0FSQ19SRUw6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNW
R1BhdGhTZWdBcmNSZWwqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0
PFNWR1BhdGhTZWdBcmNSZWwqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2Vn
OjpQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3Rh
dGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMqPihpbXBsKSk7CisgICAgICAg
IHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKj4o
aW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fSE9S
SVpPTlRBTF9SRUw6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdM
aW5ldG9Ib3Jpem9udGFsUmVsKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNf
Y2FzdDxTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCo+KGltcGwpLCBpc29sYXRlKTsKICAg
ICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUzoKLSAgICAgICAg
cmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKj4oaW1w
bCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvVmVy
dGljYWxBYnMqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VH
X0xJTkVUT19WRVJUSUNBTF9SRUw6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbCo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgo
c3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKj4oaW1wbCksIGlzb2xhdGUp
OwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlM6
Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhBYnMqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBT
VkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX1JFTDoKLSAgICAgICAgcmV0
dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCo+KGlt
cGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aFJlbCo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBB
VEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgo
c3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMqPihpbXBsKSk7
CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljU21vb3RoQWJzKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFU
SFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMOgotICAgICAgICByZXR1cm4gdG9WOChz
dGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCo+KGltcGwpKTsK
KyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNTbW9vdGhSZWwqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBWOFNWR1BhdGhTZWc6OndyYXAoaW1wbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20u
Y3BwCmluZGV4IGVkYzdlMDlkNzlhNDA5YzYyZDRiMWViMjEwODI2ZDlkYjgyOWUxMWQuLmI2MDc2
MzdhZDVjNmZkNWFlYjFlNDNjZmQxMmE5YzVhODk1ZGM3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwCkBA
IC00MiwxMiArNDIsMTIgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoU3R5bGVTaGVldCog
aW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiAgICAgaWYgKCFpbXBsKQogICAgICAgICByZXR1
cm4gdjg6Ok51bGwoKTsKICAgICBpZiAoaW1wbC0+aXNDU1NTdHlsZVNoZWV0KCkpCi0gICAgICAg
IHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihpbXBsKSk7CisgICAgICAg
IHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihpbXBsKSwgaXNvbGF0ZSk7
CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhTdHlsZVNoZWV0Ojp3cmFw
KGltcGwpOwogICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSBzdHlsZXNoZWV0IG9i
amVjdCB0byBpdHMgb3duZXIgbm9kZS4KICAgICBOb2RlKiBvd25lck5vZGUgPSBpbXBsLT5vd25l
ck5vZGUoKTsKICAgICBpZiAob3duZXJOb2RlICYmICF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAg
ICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh3cmFwcGVyLCAib3duZXJO
b2RlIiwgdG9WOChvd25lck5vZGUpKTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhp
ZGRlblJlZmVyZW5jZSh3cmFwcGVyLCAib3duZXJOb2RlIiwgdG9WOChvd25lck5vZGUsIGlzb2xh
dGUpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwCmlu
ZGV4IGNlZTE4MzgzYTRkOTg1NTUyYTU2OGMwOGQxMWZjZjJjZTZjNzY0ZWEuLmUyODY2NTQ5MGY4
YzhkYmI2OGE2MmZlNDc1OTM2YzliMmVjZGNiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAK
QEAgLTUyLDcgKzUyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U3R5bGVTaGVldExpc3Q6
Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmcKICAgICBpZiAoIWl0ZW0p
CiAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwogCi0gICAgcmV0dXJu
IHRvVjgoaXRlbS0+c2hlZXQoKSk7CisgICAgcmV0dXJuIHRvVjgoaXRlbS0+c2hlZXQoKSwgaW5m
by5HZXRJc29sYXRlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhUcmFja0V2ZW50Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyYWNrRXZlbnRDdXN0b20u
Y3BwCmluZGV4IDM3ZmQzZGI4YjM2MWJjMjczNDYwMTczMTc3NmE2MDhiYTZmOTNmZmUuLjU5NDJm
NWM0ZGUxMGMxNTY0MzQ5MDIxMjBlODE3Yzg3Y2RjMDFjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyYWNrRXZlbnRDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyYWNrRXZlbnRDdXN0b20uY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRyYWNrRXZlbnQ6OnRyYWNr
QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hCiAgICAgICAgIGJyZWFrOwog
ICAgICAgICAKICAgICBjYXNlIFRyYWNrQmFzZTo6VGV4dFRyYWNrOgotICAgICAgICByZXR1cm4g
dG9WOChzdGF0aWNfY2FzdDxUZXh0VHJhY2sqPih0cmFjaykpOworICAgICAgICByZXR1cm4gdG9W
OChzdGF0aWNfY2FzdDxUZXh0VHJhY2sqPih0cmFjayksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRyYWNrQmFzZTo6QXVkaW9UcmFjazoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDdkY2VkYmUyNTQ3NWIyMzA2MWY5NmIw
ZDFhODY0ZDZmODlhODkyMjUuLjcwMTIxZDUxODM1ODVjMTRmZDQ4NmM2OTZiYzgxNzEzOGY3M2Rm
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMTE1LDcgKzEx
NSw3IEBAIHN0YXRpYyBpbnQqIGpzQXJyYXlUb0ludEFycmF5KHY4OjpIYW5kbGU8djg6OkFycmF5
PiBhcnJheSwgdWludDMyX3QgbGVuKQogICAgIHJldHVybiBkYXRhOwogfQogCi1zdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQor
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KGNvbnN0IFdlYkdMR2V0SW5m
byYgaW5mbywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgc3dpdGNoIChpbmZvLmdldFR5
cGUoKSkgewogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2w6CkBAIC0xMzgsMzQgKzEz
OCwzNCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoY29uc3QgV2Vi
R0xHZXRJbmZvJiBpbmZvKQogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50
OgogICAgICAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ld0Zyb21VbnNpZ25lZChpbmZvLmdldFVu
c2lnbmVkSW50KCkpOwogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMQnVmZmVyOgot
ICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMQnVmZmVyKCkpOworICAgICAgICByZXR1
cm4gdG9WOChpbmZvLmdldFdlYkdMQnVmZmVyKCksIGlzb2xhdGUpOwogICAgIGNhc2UgV2ViR0xH
ZXRJbmZvOjprVHlwZVdlYkdMRmxvYXRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5n
ZXRXZWJHTEZsb2F0QXJyYXkoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xG
bG9hdEFycmF5KCksIGlzb2xhdGUpOwogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdM
RnJhbWVidWZmZXI6Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xGcmFtZWJ1ZmZl
cigpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTEZyYW1lYnVmZmVyKCksIGlz
b2xhdGUpOwogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMSW50QXJyYXk6Ci0gICAg
ICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xJbnRBcnJheSgpKTsKKyAgICAgICAgcmV0dXJu
IHRvVjgoaW5mby5nZXRXZWJHTEludEFycmF5KCksIGlzb2xhdGUpOwogICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQogICAgIC8vIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVdlYkdMT2JqZWN0QXJyYXk6CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xQcm9n
cmFtOgotICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMUHJvZ3JhbSgpKTsKKyAgICAg
ICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFByb2dyYW0oKSwgaXNvbGF0ZSk7CiAgICAgY2Fz
ZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xSZW5kZXJidWZmZXI6Ci0gICAgICAgIHJldHVybiB0
b1Y4KGluZm8uZ2V0V2ViR0xSZW5kZXJidWZmZXIoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGlu
Zm8uZ2V0V2ViR0xSZW5kZXJidWZmZXIoKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldElu
Zm86OmtUeXBlV2ViR0xUZXh0dXJlOgotICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdM
VGV4dHVyZSgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFRleHR1cmUoKSwg
aXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVB
cnJheToKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5
KCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVW5zaWduZWRCeXRlQXJyYXko
KSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xVbnNpZ25lZElu
dEFycmF5OgotICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJh
eSgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFVuc2lnbmVkSW50QXJyYXko
KSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTKCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMoKSwgaXNvbGF0ZSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9CiB9CiAKLXN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0
ZW5zaW9uLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNvbnRleHRPYmplY3QpCitzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbiwg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjb250ZXh0T2JqZWN0LCB2ODo6SXNvbGF0ZSogaXNvbGF0
ZSkKIHsKICAgICBpZiAoIWV4dGVuc2lvbikKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CkBA
IC0xNzMsMzUgKzE3MywzNSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmpl
Y3QoV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbiwgdjg6OkhhbmRsZTx2OAogICAgIGNvbnN0IGNo
YXIqIHJlZmVyZW5jZU5hbWUgPSAwOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9uLT5nZXROYW1lKCkp
IHsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRXZWJHTExvc2VDb250ZXh0TmFtZToK
LSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTExvc2VDb250
ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGlj
X2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICBy
ZWZlcmVuY2VOYW1lID0gIndlYktpdFdlYkdMTG9zZUNvbnRleHROYW1lIjsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
TmFtZToKLSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKKyAgICAgICAgZXh0ZW5zaW9uT2Jq
ZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRl
bnNpb24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJleHRUZXh0dXJlRmls
dGVyQW5pc290cm9waWNOYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6Ci0gICAgICAgIGV4dGVuc2lvbk9iamVj
dCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbikp
OworICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMqPihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJvZXNTdGFuZGFyZERlcml2YXRpdmVzTmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVGbG9hdE5hbWU6Ci0gICAgICAgIGV4dGVuc2lv
bk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZs
b2F0Kj4oZXh0ZW5zaW9uKSwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2Vz
VGV4dHVyZUZsb2F0TmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKLSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0g
dG9WOChzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAg
ICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2Jq
ZWN0Kj4oZXh0ZW5zaW9uKSwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2Vz
VmVydGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6Ci0gICAgICAgIGV4dGVuc2lvbk9i
amVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lv
bikpOworICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVi
dWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNl
TmFtZSA9ICJ3ZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJzTmFtZToKLSAgICAgICAgZXh0
ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVu
c2lvbikpOworICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdM
RGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5h
bWUgPSAid2ViR0xEZWJ1Z1NoYWRlcnNOYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6V2ViS2l0V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVENOYW1lOgotICAg
ICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgo
c3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMqPihleHRlbnNpb24pLCBpc29s
YXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJLaXRXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQ05hbWUiOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0yNDgsNyArMjQ4LDcgQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRPYmplY3RQYXJhbWV0ZXIoY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncywgT2JqZWMKICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9u
KGVjKTsKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgcmV0dXJu
IHRvVjhPYmplY3QoaW5mbyk7CisgICAgcmV0dXJuIHRvVjhPYmplY3QoaW5mbywgYXJncy5HZXRJ
c29sYXRlKCkpOwogfQogCiBzdGF0aWMgV2ViR0xVbmlmb3JtTG9jYXRpb24qIHRvV2ViR0xVbmlm
b3JtTG9jYXRpb24odjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBib29sJiBvaykKQEAgLTI5
Miw3ICsyOTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldEF0dGFjaGVkU2hhZGVyc0NhbGxiYWNrKGNvbnN0CiAgICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOwogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IGFycmF5ID0gdjg6OkFycmF5OjpOZXco
c2hhZGVycy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGlpID0gMDsgaWkgPCBzaGFkZXJzLnNp
emUoKTsgKytpaSkKLSAgICAgICAgYXJyYXktPlNldCh2ODo6SW50ZWdlcjo6TmV3KGlpKSwgdG9W
OChzaGFkZXJzW2lpXS5nZXQoKSkpOworICAgICAgICBhcnJheS0+U2V0KHY4OjpJbnRlZ2VyOjpO
ZXcoaWkpLCB0b1Y4KHNoYWRlcnNbaWldLmdldCgpLCBhcmdzLkdldElzb2xhdGUoKSkpOwogICAg
IHJldHVybiBhcnJheTsKIH0KIApAQCAtMzEyLDcgKzMxMiw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uQ2FsbGJhY2soY29uc3Qg
djg6OkFyCiAgICAgfQogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0so
VjhQYXJhbWV0ZXI8PiwgbmFtZSwgYXJnc1swXSk7CiAgICAgV2ViR0xFeHRlbnNpb24qIGV4dGVu
c2lvbiA9IGltcC0+Z2V0RXh0ZW5zaW9uKG5hbWUpOwotICAgIHJldHVybiB0b1Y4T2JqZWN0KGV4
dGVuc2lvbiwgYXJncy5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHRvVjhPYmplY3QoZXh0ZW5zaW9u
LCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTMzNCw3ICsz
MzQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcgogICAgICAgICBWOFByb3h5OjpzZXRET01F
eGNlcHRpb24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KLSAg
ICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvLCBh
cmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKQEAgLTM1NCw3ICszNTQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlckNhbGxiYWNrKGNvbnN0IHY4OjpBcgogICAgICAg
ICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwogICAgIH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4g
dG9WOE9iamVjdChpbmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlckNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0zNzksNyArMzc5LDcgQEAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1l
dGVyQ2FsbGJhY2soY29uc3QKICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsK
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIHRvVjhP
YmplY3QoaW5mbyk7CisgICAgcmV0dXJuIHRvVjhPYmplY3QoaW5mbywgYXJncy5HZXRJc29sYXRl
KCkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCkBAIC00MTAsNyArNDEwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFjayhjb25zdAogICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOwogICAgIH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9W
OE9iamVjdChpbmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9uc0NhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC00NjIsNyArNDYyLDcgQEAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3UKICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsK
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIHRvVjhP
YmplY3QoaW5mbyk7CisgICAgcmV0dXJuIHRvVjhPYmplY3QoaW5mbywgYXJncy5HZXRJc29sYXRl
KCkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFZlcnRleEF0dHJpYkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHAKaW5kZXggZTllM2JmNjllOTI3ZDExYWEwOWU4NTJiM2Y5Mjc0N2Ez
YTFiYzEwYS4uODJjNzRjZGI3NWFlZjMwOTBiMDI1ZjBjYmY1NTIzMzRkYTgwOTU3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtNzgsNyArNzgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6
OlN0cgogICAgICAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiB0b1Y4KGRvY3VtZW50KTsKKyAgICAgICAgICAgIHJldHVybiB0b1Y4KGRv
Y3VtZW50LCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgICAgIH0KIAogICAgIGNhc2UgWE1MSHR0
cFJlcXVlc3Q6OlJlc3BvbnNlVHlwZUJsb2I6CkBAIC05MCw3ICs5MCw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFjY2Vzc29yR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyCiAgICAgICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVj
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuIHRvVjgoYmxvYik7CisgICAgICAgICAgICByZXR1cm4gdG9W
OChibG9iLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CkBAIC0xMDQsNyArMTA0LDcgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHIKICAgICAgICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm4gdG9WOChhcnJheUJ1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4g
dG9WOChhcnJheUJ1ZmZlciwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgICAgICB9CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJv
Y2Vzc29yQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhT
TFRQcm9jZXNzb3JDdXN0b20uY3BwCmluZGV4IDY4MGM3YTE1MWM0NjA5NGUyZWZlMjM3Nzk1MDA0
MmI5YjdjODRjZWYuLmU5Zjk1MTc1NGI4OGE3MTQwNmI5MzZmMDI5MWMxMDZiOWE4Yzg1M2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNz
b3JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhT
TFRQcm9jZXNzb3JDdXN0b20uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOFhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRnJhZ21lbnRDYWxsYmFjayhjb25zdCB2
ODo6QXJnCiAgICAgTm9kZSogc291cmNlID0gVjhOb2RlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKICAgICBEb2N1bWVudCogb3duZXIgPSBWOERvY3Vt
ZW50Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMV0pKTsKICAg
ICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcmVzdWx0ID0gaW1wLT50cmFuc2Zvcm1Ub0ZyYWdt
ZW50KHNvdXJjZSwgb3duZXIpOwotICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCkpOwor
ICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0K
IAogCkBAIC05NSw3ICs5NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhTTFRQcm9jZXNz
b3I6OnRyYW5zZm9ybVRvRG9jdW1lbnRDYWxsYmFjayhjb25zdCB2ODo6QXJnCiAgICAgaWYgKCFy
ZXN1bHQpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKLSAgICByZXR1cm4gdG9W
OChyZXN1bHQucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gdG9WOChyZXN1bHQucmVsZWFzZSgpLCBh
cmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137762</attachid>
            <date>2012-04-18 14:00:39 -0700</date>
            <delta_ts>2012-04-23 17:56:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84273-20120418140038.patch</filename>
            <type>text/plain</type>
            <size>27031</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxMzY3NzFiNmIzMGZm
ZmIzNzBhOWMxN2MwYjlkNTc3NTVmNzU1Yi4uOWY5NTk1OGMwNGJhZmJiMjZlNzFjNmFhOGNlZjMw
MDFlNDdlMTM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA0LTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0b1Y4KCkgKFBhcnQ2KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNvbGF0ZSB0byBhbGwgdG9W
OCgpcy4KKyAgICAgICAgU2luY2UgdGhlcmUgYXJlIGEgbG90IG9mIHRvVjgoKXMsIEknbGwgbWFr
ZSB0aGUgY2hhbmdlCisgICAgICAgIHN0ZXAgYnkgc3RlcC4gVGhpcyBwYXRjaCBwYXNzZXMgSXNv
bGF0ZSB0byB0b1Y4KCkgaW4KKyAgICAgICAgc2V2ZXJhbCBjdXN0b20gYmluZGluZ3MuCisKKyAg
ICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEhUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmdldE5hbWVkSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTEFsbENvbGxlY3Rpb246Oml0ZW1DYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1DYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxBbGxDb2xsZWN0aW9uOjpjYWxsQXNGdW5jdGlvbkNh
bGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVjdGlvbkN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXROYW1lZEl0ZW1zKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4SFRNTENvbGxlY3Rpb246Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VjhIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHUGF0aFNl
Z0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
VjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U3R5bGVTaGVldExpc3Q6Om5hbWVkUHJvcGVydHlH
ZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyYWNrRXZlbnRDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUcmFja0V2ZW50Ojp0cmFja0FjY2Vzc29yR2V0dGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOE9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpnZXRPYmplY3RQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVyc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFtZXRl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6
OnJlc3BvbnNlQWNjZXNzb3JHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYU0xUUHJvY2Vz
c29yOjp0cmFuc2Zvcm1Ub0ZyYWdtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhY
U0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1Ub0RvY3VtZW50Q2FsbGJhY2spOgorCiAyMDEyLTA0LTE4
ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BsaW51eC5pbnRlbC5jb20+
CiAKICAgICAgICAgW0VGTF1bRFJUXSBAZm9udC1mYWNlIHN1cHBvcnQgZmFpbHMgb24gRUZMCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQWxsQ29s
bGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggMWRjNzgzNmU0MDI0MDM1MTJmNTdmNWY4
NzVlY2U1YTY5OTIzNGJiNC4uMGEwNTk0ODMzZTZiN2JiMzM3ZjNiZWQ5YWQyYzE4OWU1ZWY3ZDZm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEFs
bENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtNDEsNyArNDEsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0TmFt
ZWRJdGVtcyhIVE1MQWxsQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgQXRvbWljU3RyaW5nIG5hbWUp
CitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldE5hbWVkSXRlbXMoSFRNTEFsbENvbGxl
Y3Rpb24qIGNvbGxlY3Rpb24sIEF0b21pY1N0cmluZyBuYW1lLCB2ODo6SXNvbGF0ZSogaXNvbGF0
ZSkKIHsKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKICAgICBjb2xsZWN0
aW9uLT5uYW1lZEl0ZW1zKG5hbWUsIG5hbWVkSXRlbXMpOwpAQCAtNTAsMTYgKzUwLDE2IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0TmFtZWRJdGVtcyhIVE1MQWxsQ29sbGVjdGlv
biogY29sbGVjdGlvbiwgQXRvbWljCiAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA9PSAxKQotICAgICAgICByZXR1cm4g
dG9WOChuYW1lZEl0ZW1zLmF0KDApLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KG5h
bWVkSXRlbXMuYXQoMCkucmVsZWFzZSgpLCBpc29sYXRlKTsKIAotICAgIHJldHVybiB0b1Y4KFY4
TmFtZWROb2Rlc0NvbGxlY3Rpb246OmNyZWF0ZShuYW1lZEl0ZW1zKSk7CisgICAgcmV0dXJuIHRv
VjgoVjhOYW1lZE5vZGVzQ29sbGVjdGlvbjo6Y3JlYXRlKG5hbWVkSXRlbXMpLCBpc29sYXRlKTsK
IH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRJdGVtKEhUTUxBbGxDb2xsZWN0
aW9uKiBjb2xsZWN0aW9uLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndW1lbnQpCitzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldEl0ZW0oSFRNTEFsbENvbGxlY3Rpb24qIGNvbGxlY3Rp
b24sIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd1bWVudCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUp
CiB7CiAgICAgdjg6OkxvY2FsPHY4OjpVaW50MzI+IGluZGV4ID0gYXJndW1lbnQtPlRvQXJyYXlJ
bmRleCgpOwogICAgIGlmIChpbmRleC5Jc0VtcHR5KCkpIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHJlc3VsdCA9IGdldE5hbWVkSXRlbXMoY29sbGVjdGlvbiwgdG9XZWJDb3JlU3Ry
aW5nKGFyZ3VtZW50LT5Ub1N0cmluZygpKSk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiByZXN1bHQgPSBnZXROYW1lZEl0ZW1zKGNvbGxlY3Rpb24sIHRvV2ViQ29yZVN0cmluZyhhcmd1
bWVudC0+VG9TdHJpbmcoKSksIGlzb2xhdGUpOwogCiAgICAgICAgIGlmIChyZXN1bHQuSXNFbXB0
eSgpKQogICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKQEAgLTY4LDcgKzY4LDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRJdGVtKEhUTUxBbGxDb2xsZWN0aW9u
KiBjb2xsZWN0aW9uLCB2ODo6SGFuZGxlPHYKICAgICB9CiAKICAgICBSZWZQdHI8Tm9kZT4gcmVz
dWx0ID0gY29sbGVjdGlvbi0+aXRlbShpbmRleC0+VWludDMyVmFsdWUoKSk7Ci0gICAgcmV0dXJu
IHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2Uo
KSwgaXNvbGF0ZSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxBbGxDb2xsZWN0
aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtODEsMjEgKzgxLDIxIEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyCiAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwog
CiAgICAgSFRNTEFsbENvbGxlY3Rpb24qIGltcCA9IFY4SFRNTEFsbENvbGxlY3Rpb246OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGltcCwgdjhTdHJp
bmdUb0F0b21pY1dlYkNvcmVTdHJpbmcobmFtZSkpOworICAgIHJldHVybiBnZXROYW1lZEl0ZW1z
KGltcCwgdjhTdHJpbmdUb0F0b21pY1dlYkNvcmVTdHJpbmcobmFtZSksIGluZm8uR2V0SXNvbGF0
ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEFsbENvbGxlY3Rpb246Oml0
ZW1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLkhUTUxBbGxDb2xsZWN0aW9uLml0ZW0oKSIpOwogICAgIEhUTUxBbGxDb2xsZWN0aW9uKiBp
bXAgPSBWOEhUTUxBbGxDb2xsZWN0aW9uOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBy
ZXR1cm4gZ2V0SXRlbShpbXAsIGFyZ3NbMF0pOworICAgIHJldHVybiBnZXRJdGVtKGltcCwgYXJn
c1swXSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhI
VE1MQWxsQ29sbGVjdGlvbjo6bmFtZWRJdGVtQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5IVE1MQWxsQ29sbGVjdGlvbi5uYW1lZEl0ZW0o
KSIpOwogICAgIEhUTUxBbGxDb2xsZWN0aW9uKiBpbXAgPSBWOEhUTUxBbGxDb2xsZWN0aW9uOjp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0
ID0gZ2V0TmFtZWRJdGVtcyhpbXAsIHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKSk7CisgICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9IGdldE5hbWVkSXRlbXMoaW1wLCB0b1dlYkNvcmVT
dHJpbmcoYXJnc1swXSksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIGlmIChyZXN1bHQuSXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwpAQCAtMTEyLDcgKzExMiw3
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxBbGxDb2xsZWN0aW9uOjpjYWxsQXNGdW5j
dGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1CiAgICAgSFRNTEFsbENvbGxlY3Rpb24qIGltcCA9
IFY4SFRNTEFsbENvbGxlY3Rpb246OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIGdldEl0ZW0oaW1wLCBhcmdzWzBd
KTsKKyAgICAgICAgcmV0dXJuIGdldEl0ZW0oaW1wLCBhcmdzWzBdLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAKICAgICAvLyBJZiB0aGVyZSBpcyBhIHNlY29uZCBhcmd1bWVudCBpdCBpcyB0aGUgaW5k
ZXggb2YgdGhlIGl0ZW0gd2Ugd2FudC4KICAgICBTdHJpbmcgbmFtZSA9IHRvV2ViQ29yZVN0cmlu
ZyhhcmdzWzBdKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhI
VE1MQWxsQ29sbGVjdGlvbjo6Y2FsbEFzRnVuY3Rpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndQog
ICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCiAgICAgaWYgKE5vZGUqIG5vZGUgPSBp
bXAtPm5hbWVkSXRlbVdpdGhJbmRleChuYW1lLCBpbmRleC0+VWludDMyVmFsdWUoKSkpCi0gICAg
ICAgIHJldHVybiB0b1Y4KG5vZGUpOworICAgICAgICByZXR1cm4gdG9WOChub2RlLCBhcmdzLkdl
dElzb2xhdGUoKSk7CiAKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENvbGxlY3Rpb25DdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENvbGxlY3Rp
b25DdXN0b20uY3BwCmluZGV4IDJlMjI1NWM2NDRjNjZiN2NmZWQ0MzBlOGFlOTQyY2Y4Y2I1MDE4
MzMuLmIyY2RhY2I2MmQyYzQyY2I5OThiNmU5M2VmOWM5YTRiYTdiM2I5YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDb2xsZWN0aW9uQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVj
dGlvbkN1c3RvbS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldE5hbWVkSXRlbXMoSFRNTENvbGxlY3Rp
b24qIGNvbGxlY3Rpb24sIEF0b21pY1N0cmluZyBuYW1lKQorc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBnZXROYW1lZEl0ZW1zKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBBdG9taWNT
dHJpbmcgbmFtZSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxO
b2RlPiA+IG5hbWVkSXRlbXM7CiAgICAgY29sbGVjdGlvbi0+bmFtZWRJdGVtcyhuYW1lLCBuYW1l
ZEl0ZW1zKTsKQEAgLTUwLDkgKzUwLDkgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBn
ZXROYW1lZEl0ZW1zKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBBdG9taWNTdHIKICAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogCiAgICAgaWYgKG5hbWVkSXRlbXMu
c2l6ZSgpID09IDEpCi0gICAgICAgIHJldHVybiB0b1Y4KG5hbWVkSXRlbXMuYXQoMCkucmVsZWFz
ZSgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgobmFtZWRJdGVtcy5hdCgwKS5yZWxlYXNlKCksIGlz
b2xhdGUpOwogCi0gICAgcmV0dXJuIHRvVjgoVjhOYW1lZE5vZGVzQ29sbGVjdGlvbjo6Y3JlYXRl
KG5hbWVkSXRlbXMpKTsKKyAgICByZXR1cm4gdG9WOChWOE5hbWVkTm9kZXNDb2xsZWN0aW9uOjpj
cmVhdGUobmFtZWRJdGVtcyksIGlzb2xhdGUpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhIVE1MQ29sbGVjdGlvbjo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAgLTY1LDE0ICs2NSwxNCBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MQ29sbGVjdGlvbjo6bmFtZWRQcm9wZXJ0eUdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZwogICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50
ZXJjZXB0b3IoKTsKIAogICAgIEhUTUxDb2xsZWN0aW9uKiBpbXAgPSBWOEhUTUxDb2xsZWN0aW9u
Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhpbXAs
IHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3RyaW5nKG5hbWUpKTsKKyAgICByZXR1cm4gZ2V0TmFt
ZWRJdGVtcyhpbXAsIHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3RyaW5nKG5hbWUpLCBpbmZvLkdl
dElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxDb2xsZWN0aW9u
OjpuYW1lZEl0ZW1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLkhUTUxDb2xsZWN0aW9uLm5hbWVkSXRlbSgpIik7CiAgICAgSFRNTENvbGxl
Y3Rpb24qIGltcCA9IFY4SFRNTENvbGxlY3Rpb246OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwot
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBnZXROYW1lZEl0ZW1zKGltcCwgdG9X
ZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0
ID0gZ2V0TmFtZWRJdGVtcyhpbXAsIHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKSwgYXJncy5HZXRJ
c29sYXRlKCkpOwogCiAgICAgaWYgKHJlc3VsdC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB2
ODo6VW5kZWZpbmVkKCk7CkBAIC04Myw3ICs4Myw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEhUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChIVE1MQ29sbGVjdGlvbiogaW1wbCwgdjg6Oklz
b2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgaWYgKGltcGwtPnR5cGUoKSA9PSBEb2NBbGwpCi0gICAg
ICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PEhUTUxBbGxDb2xsZWN0aW9uKj4oaW1wbCkpOwor
ICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxIVE1MQWxsQ29sbGVjdGlvbio+KGltcGwp
LCBpc29sYXRlKTsKICAgICByZXR1cm4gVjhIVE1MQ29sbGVjdGlvbjo6d3JhcChpbXBsKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHUGF0
aFNlZ0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTVkdQ
YXRoU2VnQ3VzdG9tLmNwcAppbmRleCBiYzdkOWZkMWIwZWU4ZGNiZDFhMTgxYjg3MzY4NjQzMzBl
YzA3MjYwLi4yZGJkMTY1Y2I3ZmI1YTBhZmEwNzBjODM4ZjQxMWJiYTY3ZDNmYjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTVkdQYXRoU2VnQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTVkdQYXRoU2Vn
Q3VzdG9tLmNwcApAQCAtNjMsNDMgKzYzLDQzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4
KFNWR1BhdGhTZWcqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogICAgICAgICByZXR1cm4g
djg6Ok51bGwoKTsKICAgICBzd2l0Y2ggKGltcGwtPnBhdGhTZWdUeXBlKCkpIHsKICAgICBjYXNl
IFNWR1BhdGhTZWc6OlBBVEhTRUdfQ0xPU0VQQVRIOgotICAgICAgICByZXR1cm4gdG9WOChzdGF0
aWNfY2FzdDxTVkdQYXRoU2VnQ2xvc2VQYXRoKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9W
OChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ2xvc2VQYXRoKj4oaW1wbCksIGlzb2xhdGUpOwogICAg
IGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZFVE9fQUJTOgotICAgICAgICByZXR1cm4gdG9W
OChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTW92ZXRvQWJzKj4oaW1wbCkpOworICAgICAgICByZXR1
cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTW92ZXRvQWJzKj4oaW1wbCksIGlzb2xhdGUp
OwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZFVE9fUkVMOgotICAgICAgICByZXR1
cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTW92ZXRvUmVsKj4oaW1wbCkpOworICAgICAg
ICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTW92ZXRvUmVsKj4oaW1wbCksIGlz
b2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fQUJTOgotICAgICAg
ICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvQWJzKj4oaW1wbCkpOwor
ICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvQWJzKj4oaW1w
bCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fUkVMOgot
ICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvUmVsKj4oaW1w
bCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvUmVs
Kj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRP
X0NVQklDX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY0Ficyo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficyo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNW
R1BhdGhTZWc6OlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw6Ci0gICAgICAgIHJldHVybiB0b1Y4
KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwqPihpbXBsKSk7CisgICAgICAg
IHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwqPihpbXBs
KSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJB
VElDX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0
PFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNh
c2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUw6Ci0gICAgICAgIHJl
dHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKj4oaW1w
bCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1JlbCo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhT
RUdfQVJDX0FCUzoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0Fy
Y0Ficyo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNl
Z0FyY0Ficyo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdf
QVJDX1JFTDoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0FyY1Jl
bCo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0Fy
Y1JlbCo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTElO
RVRPX0hPUklaT05UQUxfQUJTOgotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgo
c3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMqPihpbXBsKSwgaXNvbGF0
ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDoK
LSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250
YWxSZWwqPihpbXBsKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsUmVsKj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0
aFNlZzo6UEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOgotICAgICAgICByZXR1cm4gdG9WOChz
dGF0aWNfY2FzdDxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMqPihpbXBsKSk7CisgICAgICAg
IHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyo+KGlt
cGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTElORVRPX1ZFUlRJ
Q0FMX1JFTDoKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsUmVsKj4oaW1wbCkpOworICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxT
VkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwqPihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBT
VkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX0FCUzoKLSAgICAgICAgcmV0
dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyo+KGlt
cGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicyo+KGltcGwpLCBpc29sYXRlKTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBB
VEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMOgotICAgICAgICByZXR1cm4gdG9WOChzdGF0
aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKj4oaW1wbCkpOworICAgICAg
ICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
Kj4oaW1wbCksIGlzb2xhdGUpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRP
X1FVQURSQVRJQ19TTU9PVEhfQUJTOgotICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyo+KGltcGwpKTsKKyAgICAgICAgcmV0
dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMq
PihpbXBsKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9f
UVVBRFJBVElDX1NNT09USF9SRUw6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsKj4oaW1wbCkpOworICAgICAgICByZXR1
cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCo+
KGltcGwpLCBpc29sYXRlKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
cmV0dXJuIFY4U1ZHUGF0aFNlZzo6d3JhcChpbXBsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAKaW5kZXggZWRj
N2UwOWQ3OWE0MDljNjJkNGIxZWIyMTA4MjZkOWRiODI5ZTExZC4uYjYwNzYzN2FkNWM2ZmQ1YWVi
MWU0M2NmZDEyYTljNWE4OTVkYzc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAKQEAgLTQyLDEyICs0Miwx
MiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChTdHlsZVNoZWV0KiBpbXBsLCB2ODo6SXNv
bGF0ZSogaXNvbGF0ZSkKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgp
OwogICAgIGlmIChpbXBsLT5pc0NTU1N0eWxlU2hlZXQoKSkKLSAgICAgICAgcmV0dXJuIHRvVjgo
c3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgo
c3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KGltcGwpLCBpc29sYXRlKTsKICAgICB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOFN0eWxlU2hlZXQ6OndyYXAoaW1wbCk7CiAgICAg
Ly8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHN0eWxlc2hlZXQgb2JqZWN0IHRvIGl0cyBv
d25lciBub2RlLgogICAgIE5vZGUqIG93bmVyTm9kZSA9IGltcGwtPm93bmVyTm9kZSgpOwogICAg
IGlmIChvd25lck5vZGUgJiYgIXdyYXBwZXIuSXNFbXB0eSgpKQotICAgICAgICBWOERPTVdyYXBw
ZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KG93
bmVyTm9kZSkpOworICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNl
KHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KG93bmVyTm9kZSwgaXNvbGF0ZSkpOwogICAgIHJl
dHVybiB3cmFwcGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAKaW5kZXggY2VlMTgzODNh
NGQ5ODU1NTJhNTY4YzA4ZDExZmNmMmNlNmM3NjRlYS4uZTI4NjY1NDkwZjhjOGRiYjY4YTYyZmU0
NzU5MzZjOWIyZWNkY2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcApAQCAtNTIsNyArNTIs
NyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTdHlsZVNoZWV0TGlzdDo6bmFtZWRQcm9wZXJ0
eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZwogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CiAKLSAgICByZXR1cm4gdG9WOChpdGVtLT5z
aGVldCgpKTsKKyAgICByZXR1cm4gdG9WOChpdGVtLT5zaGVldCgpLCBpbmZvLkdldElzb2xhdGUo
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyYWNrRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVudEN1c3RvbS5jcHAKaW5kZXggMzdm
ZDNkYjhiMzYxYmMyNzM0NjAxNzMxNzc2YTYwOGJhNmY5M2ZmZS4uNTk0MmY1YzRkZTEwYzE1NjQz
NDkwMjEyMGU4MTdjODdjZGMwMWNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVudEN1c3RvbS5jcHAKQEAgLTU3LDcgKzU3LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VHJhY2tFdmVudDo6dHJhY2tBY2Nlc3NvckdldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAg
IGNhc2UgVHJhY2tCYXNlOjpUZXh0VHJhY2s6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19j
YXN0PFRleHRUcmFjayo+KHRyYWNrKSk7CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0
PFRleHRUcmFjayo+KHRyYWNrKSwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgVHJhY2tCYXNlOjpBdWRpb1RyYWNrOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAKaW5kZXggN2RjZWRiZTI1NDc1YjIzMDYxZjk2YjBkMWE4NjRkNmY4OWE4
OTIyNS4uNzAxMjFkNTE4MzU4NWMxNGZkNDg2YzY5NmJjODE3MTM4ZjczZGY0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgc3RhdGlj
IGludCoganNBcnJheVRvSW50QXJyYXkodjg6OkhhbmRsZTx2ODo6QXJyYXk+IGFycmF5LCB1aW50
MzJfdCBsZW4pCiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOE9iamVjdChjb25zdCBXZWJHTEdldEluZm8mIGluZm8pCitzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvLCB2ODo6
SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICBzd2l0Y2ggKGluZm8uZ2V0VHlwZSgpKSB7CiAgICAg
Y2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKQEAgLTEzOCwzNCArMTM4LDM0IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChjb25zdCBXZWJHTEdldEluZm8mIGlu
Zm8pCiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlVW5zaWduZWRJbnQ6CiAgICAgICAgIHJl
dHVybiB2ODo6SW50ZWdlcjo6TmV3RnJvbVVuc2lnbmVkKGluZm8uZ2V0VW5zaWduZWRJbnQoKSk7
CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xCdWZmZXI6Ci0gICAgICAgIHJldHVy
biB0b1Y4KGluZm8uZ2V0V2ViR0xCdWZmZXIoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGluZm8u
Z2V0V2ViR0xCdWZmZXIoKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
V2ViR0xGbG9hdEFycmF5OgotICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMRmxvYXRB
cnJheSgpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTEZsb2F0QXJyYXkoKSwg
aXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xGcmFtZWJ1ZmZlcjoK
LSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTEZyYW1lYnVmZmVyKCkpOworICAgICAg
ICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMRnJhbWVidWZmZXIoKSwgaXNvbGF0ZSk7CiAgICAg
Y2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRv
VjgoaW5mby5nZXRXZWJHTEludEFycmF5KCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdl
dFdlYkdMSW50QXJyYXkoKSwgaXNvbGF0ZSk7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJH
TE9iamVjdEFycmF5CiAgICAgLy8gY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xPYmplY3RB
cnJheToKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFByb2dyYW06Ci0gICAgICAg
IHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xQcm9ncmFtKCkpOworICAgICAgICByZXR1cm4gdG9W
OChpbmZvLmdldFdlYkdMUHJvZ3JhbSgpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5m
bzo6a1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRX
ZWJHTFJlbmRlcmJ1ZmZlcigpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFJl
bmRlcmJ1ZmZlcigpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJH
TFRleHR1cmU6Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xUZXh0dXJlKCkpOwor
ICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVGV4dHVyZSgpLCBpc29sYXRlKTsKICAg
ICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5OgotICAgICAg
ICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVW5zaWduZWRCeXRlQXJyYXkoKSk7CisgICAgICAg
IHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xVbnNpZ25lZEJ5dGVBcnJheSgpLCBpc29sYXRlKTsK
ICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXk6Ci0gICAg
ICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkpOworICAgICAg
ICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpLCBpc29sYXRlKTsK
ICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOgot
ICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7
CisgICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygp
LCBpc29sYXRlKTsKICAgICBkZWZhdWx0OgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
ICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KIH0KIAotc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24sIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gY29udGV4dE9iamVjdCkKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uLCB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGNvbnRleHRPYmplY3QsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIGlm
ICghZXh0ZW5zaW9uKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKQEAgLTE3MywzNSArMTcz
LDM1IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVu
c2lvbiogZXh0ZW5zaW9uLCB2ODo6SGFuZGxlPHY4CiAgICAgY29uc3QgY2hhciogcmVmZXJlbmNl
TmFtZSA9IDA7CiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246OldlYktpdFdlYkdMTG9zZUNvbnRleHROYW1lOgotICAgICAgICBleHRl
bnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNp
b24pKTsKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTExv
c2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSwgaXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUg
PSAid2ViS2l0V2ViR0xMb3NlQ29udGV4dE5hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lOgotICAgICAg
ICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYyo+KGV4dGVuc2lvbikpOworICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0
YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbiksIGlzb2xh
dGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gImV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Y05hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNTdGFu
ZGFyZERlcml2YXRpdmVzTmFtZToKLSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0
aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2YXRpdmVzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4
dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+
KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIm9lc1N0YW5k
YXJkRGVyaXZhdGl2ZXNOYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6T0VTVGV4dHVyZUZsb2F0TmFtZToKLSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9W
OChzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgZXh0
ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNp
b24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNUZXh0dXJlRmxvYXRO
YW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4
QXJyYXlPYmplY3ROYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19j
YXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lv
bk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNp
b24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9i
amVjdE5hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJH
TERlYnVnUmVuZGVyZXJJbmZvTmFtZToKLSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChz
dGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAg
IGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5m
byo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdM
RGVidWdSZW5kZXJlckluZm9OYW1lIjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3Qg
PSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMq
PihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJHTERl
YnVnU2hhZGVyc05hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpXZWJLaXRXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWU6Ci0gICAgICAgIGV4dGVuc2lv
bk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMqPihl
eHRlbnNpb24pKTsKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAg
ICByZWZlcmVuY2VOYW1lID0gIndlYktpdFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZSI7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGdldE9iamVjdFBhcmFtZXRlcihjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzLCBPYmplYwogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChp
bmZvKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9
CiAKIHN0YXRpYyBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbih2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wmIG9rKQpAQCAtMjkyLDcgKzI5Miw3IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNo
ZWRTaGFkZXJzQ2FsbGJhY2soY29uc3QKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CiAgICAg
djg6OkxvY2FsPHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyhzaGFkZXJzLnNpemUo
KSk7CiAgICAgZm9yIChzaXplX3QgaWkgPSAwOyBpaSA8IHNoYWRlcnMuc2l6ZSgpOyArK2lpKQot
ICAgICAgICBhcnJheS0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaWkpLCB0b1Y4KHNoYWRlcnNbaWld
LmdldCgpKSk7CisgICAgICAgIGFycmF5LT5TZXQodjg6OkludGVnZXI6Ok5ldyhpaSksIHRvVjgo
c2hhZGVyc1tpaV0uZ2V0KCksIGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgcmV0dXJuIGFycmF5
OwogfQogCkBAIC0zMTIsNyArMzEyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxsYmFjayhjb25zdCB2ODo6QXIKICAgICB9
CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+
LCBuYW1lLCBhcmdzWzBdKTsKICAgICBXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uID0gaW1wLT5n
ZXRFeHRlbnNpb24obmFtZSk7Ci0gICAgcmV0dXJuIHRvVjhPYmplY3QoZXh0ZW5zaW9uLCBhcmdz
LkhvbGRlcigpKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChleHRlbnNpb24sIGFyZ3MuSG9sZGVy
KCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAtMzM0LDcgKzMzNCw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyCiAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7
CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIHJldHVybiB0b1Y4
T2JqZWN0KGluZm8pOworICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8sIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRQYXJhbWV0ZXJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAtMzU0
LDcgKzM1NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyCiAgICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAg
fQotICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8pOworICAgIHJldHVybiB0b1Y4T2JqZWN0KGlu
Zm8sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKQEAgLTM3OSw3ICszNzksNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFjayhj
b25zdAogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsK
KyAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTQxMCw3
ICs0MTAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFNoYWRlclBhcmFtZXRlckNhbGxiYWNrKGNvbnN0CiAgICAgICAgIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihlYyk7CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQot
ICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8pOworICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8s
IGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKQEAgLTQ2Miw3ICs0NjIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1DYWxsYmFjayhjb25zdCB2ODo6
QXJndQogICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICByZXR1
cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgIH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsK
KyAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VmVydGV4QXR0
cmliQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcAppbmRleCBlOWUzYmY2OWU5MjdkMTFhYTA5ZTg1MmIzZjkyNzQ3YTNhMWJjMTBhLi44MmM3
NGNkYjc1YWVmMzA5MGIwMjVmMGNiZjU1MjMzNGRhODA5NTczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwCkBAIC03OCw3ICs3OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBS
ZXF1ZXN0OjpyZXNwb25zZUFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyCiAgICAgICAg
ICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJu
IHRvVjgoZG9jdW1lbnQpOworICAgICAgICAgICAgcmV0dXJuIHRvVjgoZG9jdW1lbnQsIGluZm8u
R2V0SXNvbGF0ZSgpKTsKICAgICAgICAgfQogCiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDo6UmVz
cG9uc2VUeXBlQmxvYjoKQEAgLTkwLDcgKzkwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHIK
ICAgICAgICAgICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICAg
ICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICByZXR1cm4gdG9WOChibG9iKTsKKyAgICAgICAgICAgIHJldHVybiB0b1Y4KGJsb2IsIGluZm8u
R2V0SXNvbGF0ZSgpKTsKICAgICAgICAgfQogI2Vsc2UKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxI
dHRwUmVxdWVzdDo6cmVzcG9uc2VBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cgogICAg
ICAgICAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
dHVybiB0b1Y4KGFycmF5QnVmZmVyKTsKKyAgICAgICAgICAgIHJldHVybiB0b1Y4KGFycmF5QnVm
ZmVyLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1
c3RvbS5jcHAKaW5kZXggNjgwYzdhMTUxYzQ2MDk0ZTJlZmUyMzc3OTUwMDQyYjliN2M4NGNlZi4u
ZTlmOTUxNzU0Yjg4YTcxNDA2YjkzNmYwMjkxYzEwNmI5YThjODUzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1
c3RvbS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WFNMVFBy
b2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmcKICAgICBO
b2RlKiBzb3VyY2UgPSBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoYXJnc1swXSkpOwogICAgIERvY3VtZW50KiBvd25lciA9IFY4RG9jdW1lbnQ6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1sxXSkpOwogICAgIFJlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiByZXN1bHQgPSBpbXAtPnRyYW5zZm9ybVRvRnJhZ21lbnQoc291cmNlLCBv
d25lcik7Ci0gICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIHRv
VjgocmVzdWx0LnJlbGVhc2UoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiAKQEAgLTk1LDcg
Kzk1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3Jt
VG9Eb2N1bWVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmcKICAgICBpZiAoIXJlc3VsdCkKICAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxl
YXNlKCkpOworICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKIH0KIAogCg==
</data>
<flag name="commit-queue"
          id="143702"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138404</attachid>
            <date>2012-04-23 12:59:29 -0700</date>
            <delta_ts>2012-04-23 17:55:13 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-84273-20120423125928.patch</filename>
            <type>text/plain</type>
            <size>21991</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc0OGUxNTIyYmJkNzc2
Y2FlYzI3ODc3NGE1NDQzYzk1OTdkNWNhMy4uMTlhMzMzN2ExNWQxMDVjZjFlMDI0MTdkMzA5ZTZm
ZDMwODc5YzAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA0LTE4ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB0b1Y4KCkgKFBhcnQ2KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4K
KworICAgICAgICBUaGUgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNvbGF0ZSB0byBhbGwgdG9WOCgp
cy4KKyAgICAgICAgU2luY2UgdGhlcmUgYXJlIGEgbG90IG9mIHRvVjgoKXMsIEknbGwgbWFrZSB0
aGUgY2hhbmdlCisgICAgICAgIHN0ZXAgYnkgc3RlcC4gVGhpcyBwYXRjaCBwYXNzZXMgSXNvbGF0
ZSB0byB0b1Y4KCkgaW4KKyAgICAgICAgc2V2ZXJhbCBjdXN0b20gYmluZGluZ3MuCisKKyAgICAg
ICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldE5hbWVkSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0SXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpWOEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlY4SFRNTEFsbENvbGxlY3Rpb246Oml0ZW1DYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1DYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOEhUTUxBbGxDb2xsZWN0aW9uOjpjYWxsQXNGdW5jdGlvbkNhbGxi
YWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVjdGlvbkN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXROYW1lZEl0ZW1zKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4SFRNTENvbGxlY3Rpb246Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHUGF0aFNlZ0N1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U3R5bGVTaGVldExpc3Q6Om5hbWVkUHJvcGVydHlHZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyYWNrRXZlbnRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhUcmFja0V2ZW50Ojp0cmFja0FjY2Vzc29yR2V0dGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOE9iamVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpnZXRPYmplY3RQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVyc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFtZXRlckNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRV
bmlmb3JtQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJl
c3BvbnNlQWNjZXNzb3JHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhT
TFRQcm9jZXNzb3JDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYU0xUUHJvY2Vzc29y
Ojp0cmFuc2Zvcm1Ub0ZyYWdtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhYU0xU
UHJvY2Vzc29yOjp0cmFuc2Zvcm1Ub0RvY3VtZW50Q2FsbGJhY2spOgorCiAyMDEyLTA0LTIzICBL
ZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFBhc3Mg
SXNvbGF0ZSB0byB0b1Y4KCkgKFBhcnQ1KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCmlu
ZGV4IGM2NjNjMjFlZDQzZDM4NjUzMTRmNzk5YTU4YzUwMThlYjc3OTUwZWYuLjBhMDU5NDgzM2U2
YjdiYjMzN2YzYmVkOWFkMmMxODllNWVmN2Q2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQWxsQ29sbGVjdGlvbkN1c3Rv
bS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldE5hbWVkSXRlbXMoSFRNTEFsbENvbGxlY3Rpb24qIGNv
bGxlY3Rpb24sIEF0b21pY1N0cmluZyBuYW1lKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBnZXROYW1lZEl0ZW1zKEhUTUxBbGxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBBdG9taWNTdHJp
bmcgbmFtZSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxOb2Rl
PiA+IG5hbWVkSXRlbXM7CiAgICAgY29sbGVjdGlvbi0+bmFtZWRJdGVtcyhuYW1lLCBuYW1lZEl0
ZW1zKTsKQEAgLTUwLDE2ICs1MCwxNiBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdl
dE5hbWVkSXRlbXMoSFRNTEFsbENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIEF0b21pYwogICAgICAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBpZiAobmFtZWRJdGVtcy5z
aXplKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIHRvVjgobmFtZWRJdGVtcy5hdCgwKS5yZWxlYXNl
KCkpOworICAgICAgICByZXR1cm4gdG9WOChuYW1lZEl0ZW1zLmF0KDApLnJlbGVhc2UoKSwgaXNv
bGF0ZSk7CiAKLSAgICByZXR1cm4gdG9WOChWOE5hbWVkTm9kZXNDb2xsZWN0aW9uOjpjcmVhdGUo
bmFtZWRJdGVtcykpOworICAgIHJldHVybiB0b1Y4KFY4TmFtZWROb2Rlc0NvbGxlY3Rpb246OmNy
ZWF0ZShuYW1lZEl0ZW1zKSwgaXNvbGF0ZSk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gZ2V0SXRlbShIVE1MQWxsQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3VtZW50KQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBnZXRJdGVt
KEhUTUxBbGxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJn
dW1lbnQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIHY4OjpMb2NhbDx2ODo6VWludDMy
PiBpbmRleCA9IGFyZ3VtZW50LT5Ub0FycmF5SW5kZXgoKTsKICAgICBpZiAoaW5kZXguSXNFbXB0
eSgpKSB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBnZXROYW1lZEl0
ZW1zKGNvbGxlY3Rpb24sIHRvV2ViQ29yZVN0cmluZyhhcmd1bWVudC0+VG9TdHJpbmcoKSkpOwor
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gZ2V0TmFtZWRJdGVtcyhjb2xs
ZWN0aW9uLCB0b1dlYkNvcmVTdHJpbmcoYXJndW1lbnQtPlRvU3RyaW5nKCkpLCBpc29sYXRlKTsK
IAogICAgICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6
VW5kZWZpbmVkKCk7CkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZ2V0SXRlbShIVE1MQWxsQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgdjg6OkhhbmRsZTx2CiAg
ICAgfQogCiAgICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IGNvbGxlY3Rpb24tPml0ZW0oaW5kZXgt
PlVpbnQzMlZhbHVlKCkpOwotICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCkpOworICAg
IHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCksIGlzb2xhdGUpOwogfQogCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhIVE1MQWxsQ29sbGVjdGlvbjo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAg
LTgxLDIxICs4MSwyMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MQWxsQ29sbGVjdGlv
bjo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cgogICAgICAgICByZXR1cm4g
bm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKIAogICAgIEhUTUxBbGxDb2xsZWN0aW9uKiBpbXAg
PSBWOEhUTUxBbGxDb2xsZWN0aW9uOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1
cm4gZ2V0TmFtZWRJdGVtcyhpbXAsIHY4U3RyaW5nVG9BdG9taWNXZWJDb3JlU3RyaW5nKG5hbWUp
KTsKKyAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhpbXAsIHY4U3RyaW5nVG9BdG9taWNXZWJDb3Jl
U3RyaW5nKG5hbWUpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOEhUTUxBbGxDb2xsZWN0aW9uOjppdGVtQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5IVE1MQWxsQ29sbGVjdGlvbi5pdGVtKCki
KTsKICAgICBIVE1MQWxsQ29sbGVjdGlvbiogaW1wID0gVjhIVE1MQWxsQ29sbGVjdGlvbjo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIGdldEl0ZW0oaW1wLCBhcmdzWzBdKTsK
KyAgICByZXR1cm4gZ2V0SXRlbShpbXAsIGFyZ3NbMF0sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0K
IAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTEFsbENvbGxlY3Rpb246Om5hbWVkSXRlbUNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00u
SFRNTEFsbENvbGxlY3Rpb24ubmFtZWRJdGVtKCkiKTsKICAgICBIVE1MQWxsQ29sbGVjdGlvbiog
aW1wID0gVjhIVE1MQWxsQ29sbGVjdGlvbjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9IGdldE5hbWVkSXRlbXMoaW1wLCB0b1dlYkNv
cmVTdHJpbmcoYXJnc1swXSkpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBn
ZXROYW1lZEl0ZW1zKGltcCwgdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pLCBhcmdzLkdldElzb2xh
dGUoKSk7CiAKICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpV
bmRlZmluZWQoKTsKQEAgLTExMiw3ICsxMTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhI
VE1MQWxsQ29sbGVjdGlvbjo6Y2FsbEFzRnVuY3Rpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndQog
ICAgIEhUTUxBbGxDb2xsZWN0aW9uKiBpbXAgPSBWOEhUTUxBbGxDb2xsZWN0aW9uOjp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpID09IDEpCi0gICAgICAg
IHJldHVybiBnZXRJdGVtKGltcCwgYXJnc1swXSk7CisgICAgICAgIHJldHVybiBnZXRJdGVtKGlt
cCwgYXJnc1swXSwgYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgLy8gSWYgdGhlcmUgaXMgYSBz
ZWNvbmQgYXJndW1lbnQgaXQgaXMgdGhlIGluZGV4IG9mIHRoZSBpdGVtIHdlIHdhbnQuCiAgICAg
U3RyaW5nIG5hbWUgPSB0b1dlYkNvcmVTdHJpbmcoYXJnc1swXSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ29sbGVjdGlvbkN1c3Rv
bS5jcHAKaW5kZXggMmE5YmRlMDU3NDVhNjQ4ZmViNTlmNzU0ODY3NThiMWQ0NTcxNjg5ZS4uYjJj
ZGFjYjYyZDJjNDJjYjk5OGI2ZTkzZWY5YzlhNGJhN2IzYjljMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcApAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0TmFtZWRJdGVtcyhIVE1MQ29sbGVjdGlvbiogY29s
bGVjdGlvbiwgQXRvbWljU3RyaW5nIG5hbWUpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGdldE5hbWVkSXRlbXMoSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIEF0b21pY1N0cmluZyBu
YW1lLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4g
bmFtZWRJdGVtczsKICAgICBjb2xsZWN0aW9uLT5uYW1lZEl0ZW1zKG5hbWUsIG5hbWVkSXRlbXMp
OwpAQCAtNTAsOSArNTAsOSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldE5hbWVk
SXRlbXMoSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIEF0b21pY1N0cgogICAgICAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAKICAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkg
PT0gMSkKLSAgICAgICAgcmV0dXJuIHRvVjgobmFtZWRJdGVtcy5hdCgwKS5yZWxlYXNlKCkpOwor
ICAgICAgICByZXR1cm4gdG9WOChuYW1lZEl0ZW1zLmF0KDApLnJlbGVhc2UoKSwgaXNvbGF0ZSk7
CiAKLSAgICByZXR1cm4gdG9WOChWOE5hbWVkTm9kZXNDb2xsZWN0aW9uOjpjcmVhdGUobmFtZWRJ
dGVtcykpOworICAgIHJldHVybiB0b1Y4KFY4TmFtZWROb2Rlc0NvbGxlY3Rpb246OmNyZWF0ZShu
YW1lZEl0ZW1zKSwgaXNvbGF0ZSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhUTUxD
b2xsZWN0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtNjUsMTQgKzY1LDE0IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOEhUTUxDb2xsZWN0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nCiAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRv
cigpOwogCiAgICAgSFRNTENvbGxlY3Rpb24qIGltcCA9IFY4SFRNTENvbGxlY3Rpb246OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGltcCwgdjhTdHJp
bmdUb0F0b21pY1dlYkNvcmVTdHJpbmcobmFtZSkpOworICAgIHJldHVybiBnZXROYW1lZEl0ZW1z
KGltcCwgdjhTdHJpbmdUb0F0b21pY1dlYkNvcmVTdHJpbmcobmFtZSksIGluZm8uR2V0SXNvbGF0
ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTENvbGxlY3Rpb246Om5hbWVk
SXRlbUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRT
KCJET00uSFRNTENvbGxlY3Rpb24ubmFtZWRJdGVtKCkiKTsKICAgICBIVE1MQ29sbGVjdGlvbiog
aW1wID0gVjhIVE1MQ29sbGVjdGlvbjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9IGdldE5hbWVkSXRlbXMoaW1wLCB0b1dlYkNvcmVT
dHJpbmcoYXJnc1swXSkpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBnZXRO
YW1lZEl0ZW1zKGltcCwgdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAKICAgICBpZiAocmVzdWx0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFN0eWxlU2hlZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAKaW5kZXggZWRjN2UwOWQ3OWE0MDljNjJkNGIxZWIyMTA4
MjZkOWRiODI5ZTExZC4uYjYwNzYzN2FkNWM2ZmQ1YWViMWU0M2NmZDEyYTljNWE4OTVkYzc4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVl
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5
bGVTaGVldEN1c3RvbS5jcHAKQEAgLTQyLDEyICs0MiwxMiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdG9WOChTdHlsZVNoZWV0KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICBpZiAo
IWltcGwpCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAgIGlmIChpbXBsLT5pc0NTU1N0
eWxlU2hlZXQoKSkKLSAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVl
dCo+KGltcGwpKTsKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVl
dCo+KGltcGwpLCBpc29sYXRlKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSBWOFN0eWxlU2hlZXQ6OndyYXAoaW1wbCk7CiAgICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5j
ZSBmcm9tIHN0eWxlc2hlZXQgb2JqZWN0IHRvIGl0cyBvd25lciBub2RlLgogICAgIE5vZGUqIG93
bmVyTm9kZSA9IGltcGwtPm93bmVyTm9kZSgpOwogICAgIGlmIChvd25lck5vZGUgJiYgIXdyYXBw
ZXIuSXNFbXB0eSgpKQotICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJl
bmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0b1Y4KG93bmVyTm9kZSkpOworICAgICAgICBWOERP
TVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHdyYXBwZXIsICJvd25lck5vZGUiLCB0
b1Y4KG93bmVyTm9kZSwgaXNvbGF0ZSkpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlz
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNo
ZWV0TGlzdEN1c3RvbS5jcHAKaW5kZXggY2VlMTgzODNhNGQ5ODU1NTJhNTY4YzA4ZDExZmNmMmNl
NmM3NjRlYS4uZTI4NjY1NDkwZjhjOGRiYjY4YTYyZmU0NzU5MzZjOWIyZWNkY2I0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxl
U2hlZXRMaXN0Q3VzdG9tLmNwcApAQCAtNTIsNyArNTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhTdHlsZVNoZWV0TGlzdDo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZwogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7CiAKLSAgICByZXR1cm4gdG9WOChpdGVtLT5zaGVldCgpKTsKKyAgICByZXR1cm4gdG9W
OChpdGVtLT5zaGVldCgpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFRyYWNrRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4VHJhY2tFdmVudEN1c3RvbS5jcHAKaW5kZXggMzdmZDNkYjhiMzYxYmMyNzM0NjAxNzMxNzc2
YTYwOGJhNmY5M2ZmZS4uNTk0MmY1YzRkZTEwYzE1NjQzNDkwMjEyMGU4MTdjODdjZGMwMWNmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVu
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJh
Y2tFdmVudEN1c3RvbS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4VHJhY2tFdmVudDo6dHJhY2tBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmEKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgVHJhY2tCYXNlOjpUZXh0VHJh
Y2s6Ci0gICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFRleHRUcmFjayo+KHRyYWNrKSk7
CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFRleHRUcmFjayo+KHRyYWNrKSwgaW5m
by5HZXRJc29sYXRlKCkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVHJhY2tCYXNlOjpB
dWRpb1RyYWNrOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggN2Rj
ZWRiZTI1NDc1YjIzMDYxZjk2YjBkMWE4NjRkNmY4OWE4OTIyNS4uNzAxMjFkNTE4MzU4NWMxNGZk
NDg2YzY5NmJjODE3MTM4ZjczZGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgc3RhdGljIGludCoganNBcnJheVRvSW50QXJyYXko
djg6OkhhbmRsZTx2ODo6QXJyYXk+IGFycmF5LCB1aW50MzJfdCBsZW4pCiAgICAgcmV0dXJuIGRh
dGE7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChjb25zdCBX
ZWJHTEdldEluZm8mIGluZm8pCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmpl
Y3QoY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAg
ICBzd2l0Y2ggKGluZm8uZ2V0VHlwZSgpKSB7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
Qm9vbDoKQEAgLTEzOCwzNCArMTM4LDM0IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOE9iamVjdChjb25zdCBXZWJHTEdldEluZm8mIGluZm8pCiAgICAgY2FzZSBXZWJHTEdldElu
Zm86OmtUeXBlVW5zaWduZWRJbnQ6CiAgICAgICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3RnJv
bVVuc2lnbmVkKGluZm8uZ2V0VW5zaWduZWRJbnQoKSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86
OmtUeXBlV2ViR0xCdWZmZXI6Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xCdWZm
ZXIoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2ViR0xCdWZmZXIoKSwgaXNvbGF0
ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xGbG9hdEFycmF5OgotICAgICAg
ICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMRmxvYXRBcnJheSgpKTsKKyAgICAgICAgcmV0dXJu
IHRvVjgoaW5mby5nZXRXZWJHTEZsb2F0QXJyYXkoKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJH
TEdldEluZm86OmtUeXBlV2ViR0xGcmFtZWJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5m
by5nZXRXZWJHTEZyYW1lYnVmZmVyKCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdl
YkdMRnJhbWVidWZmZXIoKSwgaXNvbGF0ZSk7CiAgICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
V2ViR0xJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTEludEFycmF5
KCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMSW50QXJyYXkoKSwgaXNvbGF0
ZSk7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5CiAgICAgLy8gY2Fz
ZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xPYmplY3RBcnJheToKICAgICBjYXNlIFdlYkdMR2V0
SW5mbzo6a1R5cGVXZWJHTFByb2dyYW06Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2Vi
R0xQcm9ncmFtKCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdlYkdMUHJvZ3JhbSgp
LCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFJlbmRlcmJ1ZmZl
cjoKLSAgICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFJlbmRlcmJ1ZmZlcigpKTsKKyAg
ICAgICAgcmV0dXJuIHRvVjgoaW5mby5nZXRXZWJHTFJlbmRlcmJ1ZmZlcigpLCBpc29sYXRlKTsK
ICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFRleHR1cmU6Ci0gICAgICAgIHJldHVy
biB0b1Y4KGluZm8uZ2V0V2ViR0xUZXh0dXJlKCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZv
LmdldFdlYkdMVGV4dHVyZSgpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5
cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5OgotICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdl
YkdMVW5zaWduZWRCeXRlQXJyYXkoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0V2Vi
R0xVbnNpZ25lZEJ5dGVBcnJheSgpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXk6Ci0gICAgICAgIHJldHVybiB0b1Y4KGluZm8uZ2V0
V2ViR0xVbnNpZ25lZEludEFycmF5KCkpOworICAgICAgICByZXR1cm4gdG9WOChpbmZvLmdldFdl
YkdMVW5zaWduZWRJbnRBcnJheSgpLCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOgotICAgICAgICByZXR1cm4gdG9WOChpbmZv
LmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7CisgICAgICAgIHJldHVybiB0b1Y4KGlu
Zm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpLCBpc29sYXRlKTsKICAgICBkZWZhdWx0
OgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOwogICAgIH0KIH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0
KFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY29udGV4
dE9iamVjdCkKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4
dGVuc2lvbiogZXh0ZW5zaW9uLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNvbnRleHRPYmplY3Qs
IHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIGlmICghZXh0ZW5zaW9uKQogICAgICAgICBy
ZXR1cm4gdjg6Ok51bGwoKTsKQEAgLTE3MywzNSArMTczLDM1IEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdG9WOE9iamVjdChXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uLCB2ODo6SGFu
ZGxlPHY4CiAgICAgY29uc3QgY2hhciogcmVmZXJlbmNlTmFtZSA9IDA7CiAgICAgc3dpdGNoIChl
eHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYktpdFdl
YkdMTG9zZUNvbnRleHROYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRp
Y19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICAgICAgZXh0ZW5zaW9u
T2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSwg
aXNvbGF0ZSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViS2l0V2ViR0xMb3NlQ29udGV4
dE5hbWUiOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWNOYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOwor
ICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VO
YW1lID0gImV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY05hbWUiOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZToKLSAg
ICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2
YXRpdmVzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3Rh
dGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwog
ICAgICAgICByZWZlcmVuY2VOYW1lID0gIm9lc1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lIjsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUZsb2F0TmFt
ZToKLSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNUZXh0dXJl
RmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0
aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAg
cmVmZXJlbmNlTmFtZSA9ICJvZXNUZXh0dXJlRmxvYXROYW1lIjsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgotICAgICAg
ICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0
Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nh
c3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24pLCBpc29sYXRlKTsKICAgICAgICAg
cmVmZXJlbmNlTmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVjdE5hbWUiOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToK
LSAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgo
c3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbiksIGlzb2xhdGUp
OwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lIjsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRl
cnNOYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdM
RGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRv
Vjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24pLCBpc29sYXRlKTsK
ICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJHTERlYnVnU2hhZGVyc05hbWUiOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQ05hbWU6Ci0gICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nh
c3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgZXh0
ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qyo+KGV4dGVuc2lvbiksIGlzb2xhdGUpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYktp
dFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
QEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGdldE9iamVj
dFBhcmFtZXRlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBPYmplYwogICAgICAgICBWOFBy
b3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OwogICAgIH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9WOE9i
amVjdChpbmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyBXZWJHTFVuaWZvcm1M
b2NhdGlvbiogdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUsIGJvb2wmIG9rKQpAQCAtMjkyLDcgKzI5Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzQ2FsbGJhY2soY29uc3QK
ICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gYXJy
YXkgPSB2ODo6QXJyYXk6Ok5ldyhzaGFkZXJzLnNpemUoKSk7CiAgICAgZm9yIChzaXplX3QgaWkg
PSAwOyBpaSA8IHNoYWRlcnMuc2l6ZSgpOyArK2lpKQotICAgICAgICBhcnJheS0+U2V0KHY4OjpJ
bnRlZ2VyOjpOZXcoaWkpLCB0b1Y4KHNoYWRlcnNbaWldLmdldCgpKSk7CisgICAgICAgIGFycmF5
LT5TZXQodjg6OkludGVnZXI6Ok5ldyhpaSksIHRvVjgoc2hhZGVyc1tpaV0uZ2V0KCksIGFyZ3Mu
R2V0SXNvbGF0ZSgpKSk7CiAgICAgcmV0dXJuIGFycmF5OwogfQogCkBAIC0zMTIsNyArMzEyLDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRl
bnNpb25DYWxsYmFjayhjb25zdCB2ODo6QXIKICAgICB9CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBuYW1lLCBhcmdzWzBdKTsKICAgICBX
ZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uID0gaW1wLT5nZXRFeHRlbnNpb24obmFtZSk7Ci0gICAg
cmV0dXJuIHRvVjhPYmplY3QoZXh0ZW5zaW9uLCBhcmdzLkhvbGRlcigpKTsKKyAgICByZXR1cm4g
dG9WOE9iamVjdChleHRlbnNpb24sIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
IH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQpAQCAtMzM0LDcgKzMzNCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyCiAgICAg
ICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAgIHJldHVybiB2ODo6VW5k
ZWZpbmVkKCk7CiAgICAgfQotICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8pOworICAgIHJldHVy
biB0b1Y4T2JqZWN0KGluZm8sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXJDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAtMzU0LDcgKzM1NCw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyCiAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAg
ICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIHJldHVybiB0b1Y4T2JqZWN0
KGluZm8pOworICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
IH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
cm9ncmFtUGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTM3
OSw3ICszNzksNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFjayhjb25zdAogICAgICAgICBWOFByb3h5Ojpz
ZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAg
IH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChp
bmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTQxMCw3ICs0MTAsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFtZXRlckNhbGxi
YWNrKGNvbnN0CiAgICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIHJldHVybiB0b1Y4T2JqZWN0KGlu
Zm8pOworICAgIHJldHVybiB0b1Y4T2JqZWN0KGluZm8sIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0K
IAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBw
b3J0ZWRFeHRlbnNpb25zQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldFVuaWZvcm1DYWxsYmFjayhjb25zdCB2ODo6QXJndQogICAgICAgICBWOFByb3h5Ojpz
ZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogICAg
IH0KLSAgICByZXR1cm4gdG9WOE9iamVjdChpbmZvKTsKKyAgICByZXR1cm4gdG9WOE9iamVjdChp
bmZvLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VmVydGV4QXR0cmliQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCBlOWUzYmY2OWU5Mjdk
MTFhYTA5ZTg1MmIzZjkyNzQ3YTNhMWJjMTBhLi44MmM3NGNkYjc1YWVmMzA5MGIwMjVmMGNiZjU1
MjMzNGRhODA5NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC03OCw3ICs3OCw3IEBA
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFjY2Vzc29y
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyCiAgICAgICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9N
RXhjZXB0aW9uKGVjKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHRvVjgoZG9jdW1lbnQpOworICAgICAg
ICAgICAgcmV0dXJuIHRvVjgoZG9jdW1lbnQsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAg
fQogCiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDo6UmVzcG9uc2VUeXBlQmxvYjoKQEAgLTkwLDcg
KzkwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNl
QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHIKICAgICAgICAgICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oZWMpOwogICAgICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZp
bmVkKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdG9WOChibG9iKTsKKyAg
ICAgICAgICAgIHJldHVybiB0b1Y4KGJsb2IsIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICAgICAg
fQogI2Vsc2UKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKQEAgLTEwNCw3ICsxMDQs
NyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBY2Nl
c3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cgogICAgICAgICAgICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihlYyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQo
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0b1Y4KGFycmF5QnVmZmVyKTsK
KyAgICAgICAgICAgIHJldHVybiB0b1Y4KGFycmF5QnVmZmVyLCBpbmZvLkdldElzb2xhdGUoKSk7
CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKaW5kZXggNjgwYzdhMTUx
YzQ2MDk0ZTJlZmUyMzc3OTUwMDQyYjliN2M4NGNlZi4uZTlmOTUxNzU0Yjg4YTcxNDA2YjkzNmYw
MjkxYzEwNmI5YThjODUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKQEAgLTc0LDcgKzc0LDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFn
bWVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmcKICAgICBOb2RlKiBzb3VyY2UgPSBWOE5vZGU6OnRv
TmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSkpOwogICAgIERvY3Vt
ZW50KiBvd25lciA9IFY4RG9jdW1lbnQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoYXJnc1sxXSkpOwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZXN1bHQgPSBp
bXAtPnRyYW5zZm9ybVRvRnJhZ21lbnQoc291cmNlLCBvd25lcik7Ci0gICAgcmV0dXJuIHRvVjgo
cmVzdWx0LnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIHRvVjgocmVzdWx0LnJlbGVhc2UoKSwgYXJn
cy5HZXRJc29sYXRlKCkpOwogfQogCiAKQEAgLTk1LDcgKzk1LDcgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9Eb2N1bWVudENhbGxiYWNrKGNvbnN0
IHY4OjpBcmcKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQo
KTsKIAotICAgIHJldHVybiB0b1Y4KHJlc3VsdC5yZWxlYXNlKCkpOworICAgIHJldHVybiB0b1Y4
KHJlc3VsdC5yZWxlYXNlKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>