<?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>87825</bug_id>
          
          <creation_ts>2012-05-29 23:12:20 -0700</creation_ts>
          <short_desc>[V8] Pass Isolate to v8String() in custom bindings</short_desc>
          <delta_ts>2012-05-31 01:02:24 -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>636888</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-29 23:12:20 -0700</bug_when>
    <thetext>The objective is to pass Isolate around in V8 bindings. In this bug we pass Isolate to v8String() in custom bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636891</commentid>
    <comment_count>1</comment_count>
      <attachid>144712</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-29 23:14:47 -0700</bug_when>
    <thetext>Created attachment 144712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636909</commentid>
    <comment_count>2</comment_count>
      <attachid>144721</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-29 23:29:12 -0700</bug_when>
    <thetext>Created attachment 144721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637850</commentid>
    <comment_count>3</comment_count>
      <attachid>144721</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-30 17:17:39 -0700</bug_when>
    <thetext>Comment on attachment 144721
Patch

Rejecting attachment 144721 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:

patching file Source/WebCore/bindings/v8/custom/V8SQLResultSetRowListCustom.cpp
Hunk #1 succeeded at 64 with fuzz 1.
patching file Source/WebCore/bindings/v8/custom/V8StorageCustom.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;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12843982</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637908</commentid>
    <comment_count>4</comment_count>
      <attachid>144969</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-30 18:36:04 -0700</bug_when>
    <thetext>Created attachment 144969
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638084</commentid>
    <comment_count>5</comment_count>
      <attachid>144969</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 01:00:53 -0700</bug_when>
    <thetext>Comment on attachment 144969
patch for landing

Clearing flags on attachment: 144969

Committed r119070: &lt;http://trac.webkit.org/changeset/119070&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144712</attachid>
            <date>2012-05-29 23:14:47 -0700</date>
            <delta_ts>2012-05-29 23:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87825-20120530151446.patch</filename>
            <type>text/plain</type>
            <size>22580</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRmYzNiY2MyMGRlNGRm
YzZiNTFmMGY2YTE4NjY1NTgzYTczMmJkYS4uMmZkMTNlNTZjOGRjYjlmNDVhNzIzY2RjMDc5MmMx
NDBiMzFjYjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYzIEBACiAyMDEyLTA1LTI5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB2OFN0cmluZygpIGluIGN1c3RvbSBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNv
bGF0ZSBhcm91bmQgaW4gVjggYmluZGluZ3MuCisgICAgICAgIFRoaXMgcGF0Y2ggcGFzc2VzIElz
b2xhdGUgdG8gdjhTdHJpbmcoKSBpbiBjdXN0b20gYmluZGluZ3MuCisKKyAgICAgICAgTm8gdGVz
dHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnN0YWxs
RmFzdFNldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3
Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFdlYkdM
QXJyYXlIZWxwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVj
bGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDU1NTdHlsZURlY2xhcmF0
aW9uOjpuYW1lZFByb3BlcnR5RW51bWVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpWOENTU1N0
eWxlRGVjbGFyYXRpb246Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhD
bGlwYm9hcmRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDbGlwYm9hcmQ6OnR5cGVz
QWNjZXNzb3JHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmlu
Z01hcEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVN0cmluZ01hcDo6bmFtZWRQ
cm9wZXJ0eUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVN0cmluZ01hcDo6bmFtZWRQ
cm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEZpbGVS
ZWFkZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhGaWxlUmVhZGVyOjpyZXN1bHRB
Y2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZh
c0VsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MQ2FudmFzRWxlbWVu
dDo6dG9EYXRhVVJMQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25B
Y2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhJbmplY3RlZFNjcmlwdEhvc3Q6OmRhdGFiYXNlSWRDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9zdDo6c3RvcmFnZUlk
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250
ZW5kSG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEluc3BlY3RvckZyb250ZW5k
SG9zdDo6cGxhdGZvcm1DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEphdmFT
Y3JpcHRDYWxsRnJhbWU6OnR5cGVBY2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMb2Nh
dGlvbjo6dG9TdHJpbmdDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
U1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFNRTFJl
c3VsdFNldFJvd0xpc3Q6Oml0ZW1DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4U3RvcmFnZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFN0b3JhZ2U6Om5h
bWVkUHJvcGVydHlFbnVtZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnN0b3JhZ2VHZXR0ZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dEFjY2Vz
c29yR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29y
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WFNMVFByb2Nlc3Nvcjo6Z2V0UGFyYW1l
dGVyQ2FsbGJhY2spOgorCisyMDEyLTA1LTI5ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBbVjhdIFJlbmFtZSB2OE51bGwoKSB0byB2OE51bGxXaXRoQ2hl
Y2soKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3
MTMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJy
YXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5jcHAKaW5kZXggMjQ1NzI2MjE3NDZlMmFhNTRjOGVh
ZGNmMGM5ZDA5NGM5NTdhNTc2Mi4uMzRlOTg2NGNhODk4MWUyZDc5M2M1MWFlMzFkNTk2YjViMDY0
YTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJy
YXlCdWZmZXJWaWV3Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCkBAIC00NSw3ICs0NSw3IEBAIGJvb2wg
ZmFzdFNldEluc3RhbGxlZCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGFycmF5KQogICAgIHJldHVy
biAhZmFzdFNldEZsYWcuSXNFbXB0eSgpOwogfQogCi12b2lkIGluc3RhbGxGYXN0U2V0KHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gYXJyYXkpCit2b2lkIGluc3RhbGxGYXN0U2V0KHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gYXJyYXksIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIHY4OjpUcnlD
YXRjaCB0cnlDYXRjaDsKICAgICB0cnlDYXRjaC5TZXRWZXJib3NlKHRydWUpOwpAQCAtNTUsNyAr
NTUsNyBAQCB2b2lkIGluc3RhbGxGYXN0U2V0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gYXJyYXkp
CiAKICAgICBTdHJpbmcgc291cmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KFY4QXJy
YXlCdWZmZXJWaWV3Q3VzdG9tU2NyaXB0X2pzKSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihW
OEFycmF5QnVmZmVyVmlld0N1c3RvbVNjcmlwdF9qcykpOwotICAgIHY4OjpIYW5kbGU8djg6OlNj
cmlwdD4gc2NyaXB0ID0gdjg6OlNjcmlwdDo6Q29tcGlsZSh2OFN0cmluZyhzb3VyY2UpKTsKKyAg
ICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IHY4OjpTY3JpcHQ6OkNvbXBpbGUodjhT
dHJpbmcoc291cmNlLCBpc29sYXRlKSk7CiAgICAgc2NyaXB0LT5SdW4oKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3
Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZl
clZpZXdDdXN0b20uaAppbmRleCA3MTJkMDM2NTE1ZWQ5Y2M2MGJhZjUzODYzOWUyOWFjY2VjMWYw
NmRiLi5mYWM0NjA3MmY0ZjNhMTNhNmM5MjkwNzQ5MjFjMjg3NmM5YzExNjRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0
b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZl
clZpZXdDdXN0b20uaApAQCAtNDcsNyArNDcsNyBAQCBib29sIGZhc3RTZXRJbnN0YWxsZWQodjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBhcnJheSk7CiAKIC8vIEluc3RhbGwgdGhlIEphdmFTY3JpcHQg
J3NldCcgbWV0aG9kIG9uIHRoZSBwcm90b3R5cGUgb2YKIC8vIHRoZSBnaXZlbiB0eXBlZCBhcnJh
eS4KLXZvaWQgaW5zdGFsbEZhc3RTZXQodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBhcnJheSk7Cit2
b2lkIGluc3RhbGxGYXN0U2V0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gYXJyYXksIHY4OjpJc29s
YXRlKik7CiAKIC8vIENvcHkgdGhlIGVsZW1lbnRzIGZyb20gdGhlIHNvdXJjZSBhcnJheSB0byB0
aGUgdHlwZWQgZGVzdGluYXRpb24gYXJyYXkgYnkKIC8vIGludm9raW5nIHRoZSAnc2V0JyBtZXRo
b2Qgb2YgdGhlIGRlc3RpbmF0aW9uIGFycmF5IGluIEpTLgpAQCAtMjE2LDcgKzIxNiw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRXZWJHTEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWZhc3RTZXRJbnN0YWxsZWQoYXJn
cy5Ib2xkZXIoKSkpIHsKLSAgICAgICAgICAgIGluc3RhbGxGYXN0U2V0KGFyZ3MuSG9sZGVyKCkp
OworICAgICAgICAgICAgaW5zdGFsbEZhc3RTZXQoYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29s
YXRlKCkpOwogICAgICAgICAgICAgY29weUVsZW1lbnRzKGFyZ3MuSG9sZGVyKCksIGFycmF5LCBv
ZmZzZXQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZm9yICh1aW50MzJfdCBpID0g
MDsgaSA8IGxlbmd0aDsgaSsrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAppbmRl
eCBhNjc3ZDRiYTY4NWM2MTY0MTNjZTI2Zjk3NGY3YTdhNGMyMDQzNzk5Li42MmZjOGVjYWQxMzk1
NGEzNDI2NzViYjA5YmZmZjRhNDdiYjQxZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3Vz
dG9tLmNwcApAQCAtMTc0LDcgKzE3NCw3IEBAIHY4OjpIYW5kbGU8djg6OkFycmF5PiBWOENTU1N0
eWxlRGVjbGFyYXRpb246Om5hbWVkUHJvcGVydHlFbnVtZXJhdG9yKGNvbnN0IHY4OjpBCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5TmFtZXNMZW5ndGg7ICsraSkgewogICAg
ICAgICBTdHJpbmcga2V5ID0gcHJvcGVydHlOYW1lcy5hdChpKTsKICAgICAgICAgQVNTRVJUKCFr
ZXkuaXNOdWxsKCkpOwotICAgICAgICBwcm9wZXJ0aWVzLT5TZXQodjg6OkludGVnZXI6Ok5ldyhp
KSwgdjhTdHJpbmcoa2V5KSk7CisgICAgICAgIHByb3BlcnRpZXMtPlNldCh2ODo6SW50ZWdlcjo6
TmV3KGkpLCB2OFN0cmluZyhrZXksIGluZm8uR2V0SXNvbGF0ZSgpKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIHByb3BlcnRpZXM7CkBAIC0yMTIsMTQgKzIxMiwxNCBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2Nh
bDx2ODo6UwogICAgICAgICAgICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KAogICAgICAgICAgICAgICAgIGNzc1ZhbHVlLmdldCgpKS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKSk7CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHY4U3RyaW5nT3JOdWxsKGNzc1ZhbHVlLT5jc3NUZXh0KCkpOworICAgICAgICBy
ZXR1cm4gdjhTdHJpbmdPck51bGwoY3NzVmFsdWUtPmNzc1RleHQoKSwgaW5mby5HZXRJc29sYXRl
KCkpOwogICAgIH0KIAogICAgIFN0cmluZyByZXN1bHQgPSBpbXAtPmdldFByb3BlcnR5VmFsdWVJ
bnRlcm5hbChzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wSW5mby0+cHJvcElEKSk7CiAg
ICAgaWYgKHJlc3VsdC5pc051bGwoKSkKICAgICAgICAgcmVzdWx0ID0gIiI7ICAvLyBjb252ZXJ0
IG51bGwgdG8gZW1wdHkgc3RyaW5nLgogCi0gICAgcmV0dXJuIHY4U3RyaW5nKHJlc3VsdCk7Cisg
ICAgcmV0dXJuIHY4U3RyaW5nKHJlc3VsdCwgaW5mby5HZXRJc29sYXRlKCkpOwogfQogCiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZFByb3BlcnR5U2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRDdXN0b20uY3BwCmluZGV4IDc5YTYwNTUyZjk1NTdlY2ZmNmViZGVhYzQxYjk4ZGMz
Mzc0YWMxOGQuLmEyN2ZkMDFlN2YyYTc3YmZjMmU5MzAzZThhNDljNTRjNDc5NTE5NTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcApAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoQ2FudmFzU3R5bGUqIHN0
eWxlLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZQogICAgIGlmIChzdHlsZS0+Y2FudmFzUGF0dGVybigp
KQogICAgICAgICByZXR1cm4gdG9WOChzdHlsZS0+Y2FudmFzUGF0dGVybigpLCBpc29sYXRlKTsK
IAotICAgIHJldHVybiB2OFN0cmluZyhzdHlsZS0+Y29sb3IoKSk7CisgICAgcmV0dXJuIHY4U3Ry
aW5nKHN0eWxlLT5jb2xvcigpLCBpc29sYXRlKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8Q2Fu
dmFzU3R5bGU+IHRvQ2FudmFzU3R5bGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1
c3RvbS5jcHAKaW5kZXggY2VhMTBhZjFjNTRhZjcxM2IyODZiY2UzN2M0ZWI3YjNkMzNkZDI4Yy4u
MjRmYTY0YjVlZDYyMjQwMzAzZDZhMjkyY2JhNDdiZmIyNTg5NGUxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDbGlwYm9hcmRDdXN0b20uY3Bw
CkBAIC01Nyw3ICs1Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOENsaXBib2FyZDo6dHlw
ZXNBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtCiAgICAgSGFzaFNldDxT
dHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSB0eXBlcy5lbmQoKTsKICAgICBpbnQgaW5kZXgg
PSAwOwogICAgIGZvciAoSGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHR5cGVz
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCwgKytpbmRleCkKLSAgICAgICAgcmVzdWx0LT5TZXQo
djg6OkludGVnZXI6Ok5ldyhpbmRleCksIHY4U3RyaW5nKCppdCkpOworICAgICAgICByZXN1bHQt
PlNldCh2ODo6SW50ZWdlcjo6TmV3KGluZGV4KSwgdjhTdHJpbmcoKml0LCBpbmZvLkdldElzb2xh
dGUoKSkpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwCmluZGV4
IDg1MWQ5ZTBkODIxZWIzN2MxM2I0OGFhNWQ3ZjE1MTk3N2Y0YjkwYmYuLjRhY2NhN2M4NjZjZTNl
ZDQzYmVjODk4YjAxNGExMDQ5NjIxNGNjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcApAQCAtNTIs
NyArNTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01TdHJpbmdNYXA6Om5hbWVkUHJv
cGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+CiAgICAgU3RyaW5nIHZhbHVlID0gVjhE
T01TdHJpbmdNYXA6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpLT5pdGVtKHRvV2ViQ29yZVN0cmlu
ZyhuYW1lKSk7CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7Ci0gICAgcmV0dXJuIHY4U3RyaW5nT3JVbmRlZmluZWQodmFsdWUp
OworICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKHZhbHVlLCBpbmZvLkdldElzb2xhdGUo
KSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OkFycmF5PiBWOERPTVN0cmluZ01hcDo6bmFtZWRQcm9w
ZXJ0eUVudW1lcmF0b3IoY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAgLTYyLDcgKzYy
LDcgQEAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IFY4RE9NU3RyaW5nTWFwOjpuYW1lZFByb3BlcnR5
RW51bWVyYXRvcihjb25zdCB2ODo6QWNjZXNzb3IKICAgICBWOERPTVN0cmluZ01hcDo6dG9OYXRp
dmUoaW5mby5Ib2xkZXIoKSktPmdldE5hbWVzKG5hbWVzKTsKICAgICB2ODo6SGFuZGxlPHY4OjpB
cnJheT4gcHJvcGVydGllcyA9IHY4OjpBcnJheTo6TmV3KG5hbWVzLnNpemUoKSk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBuYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgcHJvcGVydGll
cy0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaSksIHY4U3RyaW5nKG5hbWVzW2ldKSk7CisgICAgICAg
IHByb3BlcnRpZXMtPlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB2OFN0cmluZyhuYW1lc1tpXSwg
aW5mby5HZXRJc29sYXRlKCkpKTsKICAgICByZXR1cm4gcHJvcGVydGllczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmlsZVJlYWRlckN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGaWxlUmVhZGVyQ3Vz
dG9tLmNwcAppbmRleCAwY2ZmZTZkODNlNDFkODBlY2M2MjM2M2I4NTc5MjNhY2UzZDI2NmE0Li5m
YzliNzBjYWEyMTkwMGZlMmIyM2ZkMWZmYjc2MzAwN2U0MGJhY2M4IDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGaWxlUmVhZGVyQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGaWxlUmVhZGVyQ3VzdG9tLmNw
cApAQCAtNDcsNyArNDcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhGaWxlUmVhZGVyOjpy
ZXN1bHRBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbgogICAgIEZpbGVSZWFk
ZXIqIGltcCA9IFY4RmlsZVJlYWRlcjo6dG9OYXRpdmUoaG9sZGVyKTsKICAgICBpZiAoaW1wLT5y
ZWFkVHlwZSgpID09IEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0FycmF5QnVmZmVyKQogICAgICAg
ICByZXR1cm4gdG9WOChpbXAtPmFycmF5QnVmZmVyUmVzdWx0KCksIGluZm8uR2V0SXNvbGF0ZSgp
KTsKLSAgICByZXR1cm4gdjhTdHJpbmdPck51bGwoaW1wLT5zdHJpbmdSZXN1bHQoKSk7CisgICAg
cmV0dXJuIHY4U3RyaW5nT3JOdWxsKGltcC0+c3RyaW5nUmVzdWx0KCksIGluZm8uR2V0SXNvbGF0
ZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZhc0VsZW1lbnRDdXN0
b20uY3BwCmluZGV4IDAxYzU0ZGI0NjRhNDNjMWRhN2I1MzY5OWM5NDA5YWQ3MTVlYzgwYzUuLjg4
OTJjNTVkY2E1MDJmMDJhZWIxNmUwOWQ1ZmZmZWEwMzg1NzMzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxl
bWVudEN1c3RvbS5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhIVE1MQ2FudmFzRWxlbWVudDo6dG9EYXRhVVJMQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cwogCiAgICAgU3RyaW5nIHJlc3VsdCA9IGNhbnZhcy0+dG9EYXRhVVJMKHR5cGUsIHF1YWxpdHlQ
dHIsIGVjKTsKICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKLSAgICByZXR1cm4gdjhTdHJpbmdPclVuZGVmaW5lZChyZXN1bHQpOworICAgIHJldHVy
biB2OFN0cmluZ09yVW5kZWZpbmVkKHJlc3VsdCwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhIVE1MRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggMTkyODYxMjRmMTQ2
ODM1Y2FhNmJjMzQ2ZTI4NDZkMjUxNDE4OTNiYy4uMjJiY2MxNDJiMWNkNWFkMDk0NjZiNDc2NWNk
NDA2OTQ0OTkyNjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoTWljcm9EYXRhSXRlbVZhbHVlKiBp
dGVtVmFsdWUsIHY4OjpJc29sYQogICAgIGlmIChpdGVtVmFsdWUtPmlzTm9kZSgpKQogICAgICAg
ICByZXR1cm4gdG9WOChpdGVtVmFsdWUtPmdldE5vZGUoKSwgaXNvbGF0ZSk7CiAKLSAgICByZXR1
cm4gdjhTdHJpbmcoaXRlbVZhbHVlLT5nZXRTdHJpbmcoKSk7CisgICAgcmV0dXJuIHY4U3RyaW5n
KGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCksIGlzb2xhdGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0
RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggZTFiYjU5NDJlNzA2ODA5MzUwNWRkMDM5Mjk5N2FlOWZl
ZjMwNTE3Yy4uN2E2ZmZmNDdmMDY3MDY4ZDIzYmZkOGYyOGNiODRhOTNkNzg0YTgyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVu
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TElucHV0RWxlbWVudEN1c3RvbS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nlc3Nvckdl
dHRlcih2ODo6TAogICAgIGlmICghaW1wLT5jYW5IYXZlU2VsZWN0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNlbGVjdGlvbkRpcmVjdGlv
biBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24uIiwgaW5m
by5HZXRJc29sYXRlKCkpOwogCi0gICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+c2VsZWN0aW9uRGly
ZWN0aW9uKCkpOworICAgIHJldHVybiB2OFN0cmluZyhpbXAtPnNlbGVjdGlvbkRpcmVjdGlvbigp
LCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHZvaWQgVjhIVE1MSW5wdXRFbGVtZW50OjpzZWxl
Y3Rpb25EaXJlY3Rpb25BY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3Vz
dG9tLmNwcAppbmRleCAxZTM3Y2RmYmZlYzAxZmU5YWM0Y2U5NmVhYTJjYzZiOTEzODQxZGUwLi40
ODgxNjU0MzgzNTg1YzdmMGQxNWUyMmY0MzJlZmU2ZDcyYTk5MGM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKQEAgLTc2
LDcgKzc2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBsLCB2ODo6
SXNvbGF0ZSogaXNvbGF0ZSkKICAgICBjYXNlIElEQkFueTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
VHlwZToKICAgICAgICAgcmV0dXJuIGltcGwtPnNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpLT5kZXNl
cmlhbGl6ZSgwLCBpc29sYXRlKTsKICAgICBjYXNlIElEQkFueTo6U3RyaW5nVHlwZToKLSAgICAg
ICAgcmV0dXJuIHY4U3RyaW5nKGltcGwtPnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHY4U3Ry
aW5nKGltcGwtPnN0cmluZygpLCBpc29sYXRlKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OElEQktleUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
REJLZXlDdXN0b20uY3BwCmluZGV4IDliMGU2NTQxNDY1Yzc5MzUzYTQ3NmQ1MWJiYmNkYTU4MzZm
M2EzMjIuLjE1YTYxY2Y0ZTMzNWM5ZWQ2ZDEyMmYzNWRkMGEyNmQ3MGZiOTMzNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5Q3VzdG9tLmNw
cApAQCAtNTEsNyArNTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJLZXkqIGtl
eSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiAgICAgY2FzZSBJREJLZXk6Ok51bWJlclR5cGU6CiAg
ICAgICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoa2V5LT5udW1iZXIoKSk7CiAgICAgY2FzZSBJ
REJLZXk6OlN0cmluZ1R5cGU6Ci0gICAgICAgIHJldHVybiB2OFN0cmluZyhrZXktPnN0cmluZygp
KTsKKyAgICAgICAgcmV0dXJuIHY4U3RyaW5nKGtleS0+c3RyaW5nKCksIGlzb2xhdGUpOwogICAg
IGNhc2UgSURCS2V5OjpEYXRlVHlwZToKICAgICAgICAgcmV0dXJuIHY4OjpEYXRlOjpOZXcoa2V5
LT5kYXRlKCkpOwogICAgIGNhc2UgSURCS2V5OjpBcnJheVR5cGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRI
b3N0Q3VzdG9tLmNwcAppbmRleCBhMTEzNjUwYWQ4Mzg0YjVkZWY0OTUwZjE2NzgzNDc0NjkxNTIw
MTc0Li4yNzc0YjlhMzA4ODNjNjAwZGQ3ZGE5NTFmNzM3OWEzN2E5OGY0M2JhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVj
dGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OmRhdGFiYXNlSWRDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbgogICAgIEluamVjdGVkU2NyaXB0SG9zdCogaG9zdCA9IFY4SW5qZWN0ZWRTY3Jp
cHRIb3N0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBEYXRhYmFzZSogZGF0YWJhc2Ug
PSBWOERhdGFiYXNlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3Nb
MF0pKTsKICAgICBpZiAoZGF0YWJhc2UpCi0gICAgICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZp
bmVkKGhvc3QtPmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNlKSk7CisgICAgICAgIHJldHVybiB2OFN0
cmluZ09yVW5kZWZpbmVkKGhvc3QtPmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNlKSwgYXJncy5HZXRJ
c29sYXRlKCkpOwogI2VuZGlmCiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KQEAgLTI4
Nyw3ICsyODcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6
OnN0b3JhZ2VJZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAgIEluamVjdGVkU2NyaXB0
SG9zdCogaG9zdCA9IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKICAgICBTdG9yYWdlKiBzdG9yYWdlID0gVjhTdG9yYWdlOjp0b05hdGl2ZSh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKICAgICBpZiAoc3RvcmFnZSkKLSAgICAgICAg
cmV0dXJuIHY4U3RyaW5nT3JVbmRlZmluZWQoaG9zdC0+c3RvcmFnZUlkSW1wbChzdG9yYWdlKSk7
CisgICAgICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKGhvc3QtPnN0b3JhZ2VJZEltcGwo
c3RvcmFnZSksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
bnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAppbmRleCBmOGI1ZTM1
MGRhNTVkYzU1NDA4NDA4M2Q0OTk4ZjhhNjFiOWM2YTVhLi42MmVlNmJkMTE5YjNiODYwNTJiMmFj
ZWIwYTFlMDljYTFmYmYwNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5j
cHAKQEAgLTQ0LDIyICs0NCwyMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEluc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm1DYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJikKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluc3BlY3RvckZy
b250ZW5kSG9zdDo6cGxhdGZvcm1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ewogI2lmIGRlZmluZWQoT1NfTUFDT1NYKQotICAgIHJldHVybiB2OFN0cmluZygibWFjIik7Cisg
ICAgcmV0dXJuIHY4U3RyaW5nKCJtYWMiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAjZWxpZiBkZWZp
bmVkKE9TX0xJTlVYKQotICAgIHJldHVybiB2OFN0cmluZygibGludXgiKTsKKyAgICByZXR1cm4g
djhTdHJpbmcoImxpbnV4IiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2VsaWYgZGVmaW5lZChPU19G
UkVFQlNEKQotICAgIHJldHVybiB2OFN0cmluZygiZnJlZWJzZCIpOworICAgIHJldHVybiB2OFN0
cmluZygiZnJlZWJzZCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICNlbGlmIGRlZmluZWQoT1NfT1BF
TkJTRCkKLSAgICByZXR1cm4gdjhTdHJpbmcoIm9wZW5ic2QiKTsKKyAgICByZXR1cm4gdjhTdHJp
bmcoIm9wZW5ic2QiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAjZWxpZiBkZWZpbmVkKE9TX1NPTEFS
SVMpCi0gICAgcmV0dXJuIHY4U3RyaW5nKCJzb2xhcmlzIik7CisgICAgcmV0dXJuIHY4U3RyaW5n
KCJzb2xhcmlzIiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2VsaWYgZGVmaW5lZChPU19XSU4pCi0g
ICAgcmV0dXJuIHY4U3RyaW5nKCJ3aW5kb3dzIik7CisgICAgcmV0dXJuIHY4U3RyaW5nKCJ3aW5k
b3dzIiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2Vsc2UKLSAgICByZXR1cm4gdjhTdHJpbmcoInVu
a25vd24iKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoInVua25vd24iLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcAppbmRleCBl
MmE2OTFkYjE2MDM3NDE2MDdhNDQ5M2ZhYjIyOTlmNTA3MDAzMjc4Li4yMTBlZjEwMjk1ODY1ZTY2
YjJlMGY4ZTE2YTQ4ZDk3NDJlY2VkNTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9t
LmNwcApAQCAtNzEsNyArNzEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhKYXZhU2NyaXB0
Q2FsbEZyYW1lOjp0aGlzT2JqZWN0QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPAogdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4SmF2YVNjcmlwdENhbGxGcmFtZTo6dHlwZUFjY2Vzc29yR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQog
ewogICAgIElOQ19TVEFUUygiVjhKYXZhU2NyaXB0Q2FsbEZyYW1lLnR5cGVBY2Nlc3NvckdldHRl
cigpIik7Ci0gICAgcmV0dXJuIHY4U3RyaW5nKCJmdW5jdGlvbiIpOworICAgIHJldHVybiB2OFN0
cmluZygiZnVuY3Rpb24iLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OExvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OExvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCBmNDAzNDRiY2M4ZTQ2MTBlM2U1MWU4YTVmNjNmMTQz
ZTAwMDdmMDJhLi4yMTFmYzcxYTMwZjNmNDJhYjJkY2I1ZjAwM2U4MjRmYmQyZDMxMTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25D
dXN0b20uY3BwCkBAIC0yNTUsNyArMjU1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TG9j
YXRpb246OnRvU3RyaW5nQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBp
ZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6T25s
eSgpLCBpbXAtPmZyYW1lKCksIHRydWUpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OwogICAgIFN0cmluZyByZXN1bHQgPSBpbXAtPmhyZWYoKTsKLSAgICByZXR1cm4gdjhTdHJpbmco
cmVzdWx0KTsKKyAgICByZXR1cm4gdjhTdHJpbmcocmVzdWx0LCBhcmdzLkdldElzb2xhdGUoKSk7
CiB9CiAKIGJvb2wgVjhMb2NhdGlvbjo6aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4
OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSB0eXBlLCB2ODo6
TG9jYWw8djg6OlZhbHVlPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFNRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAKaW5kZXgg
YTRmODBkMGExYmI2ZDRlYWU2YjFiYjUyNjY2MThjMDdhZjUyZTExNS4uMGNjZTA5N2U5MzExYTRm
MzJmMTc1ZDcwM2ZlMzZlODdhM2Y4OWUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1c3Rv
bS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FMUmVzdWx0
U2V0Um93TGlzdDo6aXRlbUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGEKICAgICAgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlOwogICAgICAgICBzd2l0Y2goc3FsVmFsdWUudHlw
ZSgpKSB7CiAgICAgICAgICAgICBjYXNlIFNRTFZhbHVlOjpTdHJpbmdWYWx1ZToKLSAgICAgICAg
ICAgICAgICB2YWx1ZSA9IHY4U3RyaW5nKHNxbFZhbHVlLnN0cmluZygpKTsKKyAgICAgICAgICAg
ICAgICB2YWx1ZSA9IHY4U3RyaW5nKHNxbFZhbHVlLnN0cmluZygpLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFNRTFZhbHVlOjpO
dWxsVmFsdWU6CiAgICAgICAgICAgICAgICAgdmFsdWUgPSB2ODo6TnVsbCgpOwpAQCAtNzYsNyAr
NzYsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTUUxSZXN1bHRTZXRSb3dMaXN0OjppdGVt
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaXRlbS0+U2V0KHY4U3RyaW5nKHJv
d0xpc3QtPmNvbHVtbk5hbWVzKClbaV0pLCB2YWx1ZSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZXx2ODo6UmVhZE9ubHkpKTsKKyAgICAgICAgaXRlbS0+
U2V0KHY4U3RyaW5nKHJvd0xpc3QtPmNvbHVtbk5hbWVzKClbaV0sIGFyZ3MuR2V0SXNvbGF0ZSgp
KSwgdmFsdWUsIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6OkRvbnREZWxl
dGUgfCB2ODo6UmVhZE9ubHkpKTsKICAgICB9CiAKICAgICByZXR1cm4gaXRlbTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0b3JhZ2VDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1c3RvbS5jcHAK
aW5kZXggZjUyNTdiOWE5MmQ0ZWVjNTE3NWRhODNkMTBiOGUzOTU0ZTYzOTY2Mi4uZGQwYjM0MDhh
NmY3ZTdkYTA2ODk1MmI2NGZkZmJmNmYyYzQ4YTM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1c3RvbS5jcHAKQEAgLTQ3LDcgKzQ3
LDcgQEAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IFY4U3RvcmFnZTo6bmFtZWRQcm9wZXJ0eUVudW1l
cmF0b3IoY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYKICAgICAgICAgU3RyaW5nIGtleSA9IHN0b3Jh
Z2UtPmtleShpKTsKICAgICAgICAgQVNTRVJUKCFrZXkuaXNOdWxsKCkpOwogICAgICAgICBTdHJp
bmcgdmFsID0gc3RvcmFnZS0+Z2V0SXRlbShrZXkpOwotICAgICAgICBwcm9wZXJ0aWVzLT5TZXQo
djg6OkludGVnZXI6Ok5ldyhpKSwgdjhTdHJpbmcoa2V5KSk7CisgICAgICAgIHByb3BlcnRpZXMt
PlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB2OFN0cmluZyhrZXksIGluZm8uR2V0SXNvbGF0ZSgp
KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHByb3BlcnRpZXM7CkBAIC01OSw3ICs1OSw3IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RvcmFnZUdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gdjhOYW1lLCBjb25zdCB2CiAgICAgU3RyaW5nIG5hbWUgPSB0b1dlYkNvcmVTdHJpbmco
djhOYW1lKTsKIAogICAgIGlmIChuYW1lICE9ICJsZW5ndGgiICYmIHN0b3JhZ2UtPmNvbnRhaW5z
KG5hbWUpKQotICAgICAgICByZXR1cm4gdjhTdHJpbmcoc3RvcmFnZS0+Z2V0SXRlbShuYW1lKSk7
CisgICAgICAgIHJldHVybiB2OFN0cmluZyhzdG9yYWdlLT5nZXRJdGVtKG5hbWUpLCBpbmZvLkdl
dElzb2xhdGUoKSk7CiAKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXggNTg3ZmUzZTIzYzNlYzkxNmNmYTMyNGZiMzQ2OWM2
ZWE3NmJiNmE0OS4uYjU0MTRiOGFiNWQ0NzE0NzljMDE4MWNmOTY4ZTZjMzdlYWU5NmQ3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0QWNjZXNzb3JHZXR0ZXIodjg6Okxv
Y2FsPHY4OgogICAgIGNvbnN0IFN0cmluZyYgdGV4dCA9IHhtbEh0dHBSZXF1ZXN0LT5yZXNwb25z
ZVRleHQoZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZWMsIGlu
Zm8uR2V0SXNvbGF0ZSgpKTsKLSAgICByZXR1cm4gdjhTdHJpbmcodGV4dCk7CisgICAgcmV0dXJu
IHY4U3RyaW5nKHRleHQsIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29yQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNz
b3JDdXN0b20uY3BwCmluZGV4IGU5Zjk1MTc1NGI4OGE3MTQwNmI5MzZmMDI5MWMxMDZiOWE4Yzg1
M2MuLjNkYzllZjU3MGY2ZGIwYzExMTZmODAxNmZkOGMzMTMxZTE0NmY2NTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNz
b3JDdXN0b20uY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
WFNMVFByb2Nlc3Nvcjo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYK
ICAgICBpZiAocmVzdWx0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OwogCi0gICAgcmV0dXJuIHY4U3RyaW5nKHJlc3VsdCk7CisgICAgcmV0dXJuIHY4U3RyaW5nKHJl
c3VsdCwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhY
U0xUUHJvY2Vzc29yOjpyZW1vdmVQYXJhbWV0ZXJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144721</attachid>
            <date>2012-05-29 23:29:12 -0700</date>
            <delta_ts>2012-05-31 01:02:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87825-20120530152910.patch</filename>
            <type>text/plain</type>
            <size>23621</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRmYzNiY2MyMGRlNGRm
YzZiNTFmMGY2YTE4NjY1NTgzYTczMmJkYS4uMmZkMTNlNTZjOGRjYjlmNDVhNzIzY2RjMDc5MmMx
NDBiMzFjYjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYzIEBACiAyMDEyLTA1LTI5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB2OFN0cmluZygpIGluIGN1c3RvbSBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNv
bGF0ZSBhcm91bmQgaW4gVjggYmluZGluZ3MuCisgICAgICAgIFRoaXMgcGF0Y2ggcGFzc2VzIElz
b2xhdGUgdG8gdjhTdHJpbmcoKSBpbiBjdXN0b20gYmluZGluZ3MuCisKKyAgICAgICAgTm8gdGVz
dHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnN0YWxs
RmFzdFNldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3
Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFdlYkdM
QXJyYXlIZWxwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVj
bGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDU1NTdHlsZURlY2xhcmF0
aW9uOjpuYW1lZFByb3BlcnR5RW51bWVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpWOENTU1N0
eWxlRGVjbGFyYXRpb246Om5hbWVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b1Y4T2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhD
bGlwYm9hcmRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDbGlwYm9hcmQ6OnR5cGVz
QWNjZXNzb3JHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmlu
Z01hcEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVN0cmluZ01hcDo6bmFtZWRQ
cm9wZXJ0eUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVN0cmluZ01hcDo6bmFtZWRQ
cm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEZpbGVS
ZWFkZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhGaWxlUmVhZGVyOjpyZXN1bHRB
Y2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZh
c0VsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MQ2FudmFzRWxlbWVu
dDo6dG9EYXRhVVJMQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25B
Y2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhJbmplY3RlZFNjcmlwdEhvc3Q6OmRhdGFiYXNlSWRDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9zdDo6c3RvcmFnZUlk
Q2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250
ZW5kSG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEluc3BlY3RvckZyb250ZW5k
SG9zdDo6cGxhdGZvcm1DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEphdmFT
Y3JpcHRDYWxsRnJhbWU6OnR5cGVBY2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMb2Nh
dGlvbjo6dG9TdHJpbmdDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
U1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFNRTFJl
c3VsdFNldFJvd0xpc3Q6Oml0ZW1DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4U3RvcmFnZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFN0b3JhZ2U6Om5h
bWVkUHJvcGVydHlFbnVtZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnN0b3JhZ2VHZXR0ZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dEFjY2Vz
c29yR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYU0xUUHJvY2Vzc29y
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WFNMVFByb2Nlc3Nvcjo6Z2V0UGFyYW1l
dGVyQ2FsbGJhY2spOgorCisyMDEyLTA1LTI5ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBbVjhdIFJlbmFtZSB2OE51bGwoKSB0byB2OE51bGxXaXRoQ2hl
Y2soKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3
MTMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb2xsZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENvbGxlY3Rpb24uaAppbmRleCA2ZWFk
ZTk2MGUzNTA0NjQzYmQ1ODQ2YjZhY2I0N2JiMzg5ZDU0ZmRlLi5iNTBiYTg5OWM5OGRjNmU5YTFl
ZmZiZjMyY2U2YjMwMDM2NGYyZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOENvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENv
bGxlY3Rpb24uaApAQCAtMTM1LDcgKzEzNSw3IEBAIHRlbXBsYXRlPGNsYXNzIENvbGxlY3Rpb24+
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29sbGVjdGlvblN0cmluZ09yTnVsbEluCiAg
ICAgQVNTRVJUKFY4RE9NV3JhcHBlcjo6bWF5YmVET01XcmFwcGVyKGluZm8uSG9sZGVyKCkpKTsK
ICAgICBDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gdG9OYXRpdmVDb2xsZWN0aW9uPENvbGxlY3Rp
b24+KGluZm8uSG9sZGVyKCkpOwogICAgIFN0cmluZyByZXN1bHQgPSBjb2xsZWN0aW9uLT5pdGVt
KGluZGV4KTsKLSAgICByZXR1cm4gdjhTdHJpbmdPck51bGwocmVzdWx0KTsKKyAgICByZXR1cm4g
djhTdHJpbmdPck51bGwocmVzdWx0LCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIApAQCAtMTQ2
LDcgKzE0Niw3IEBAIHRlbXBsYXRlPGNsYXNzIENvbGxlY3Rpb24+IHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gY29sbGVjdGlvblN0cmluZ0luZGV4ZWRQCiAgICAgQVNTRVJUKFY4RE9NV3Jh
cHBlcjo6bWF5YmVET01XcmFwcGVyKGluZm8uSG9sZGVyKCkpKTsKICAgICBDb2xsZWN0aW9uKiBj
b2xsZWN0aW9uID0gdG9OYXRpdmVDb2xsZWN0aW9uPENvbGxlY3Rpb24+KGluZm8uSG9sZGVyKCkp
OwogICAgIFN0cmluZyByZXN1bHQgPSBjb2xsZWN0aW9uLT5pdGVtKGluZGV4KTsKLSAgICByZXR1
cm4gdjhTdHJpbmcocmVzdWx0KTsKKyAgICByZXR1cm4gdjhTdHJpbmcocmVzdWx0LCBpbmZvLkdl
dElzb2xhdGUoKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5jcHAKaW5kZXggMjQ1NzI2
MjE3NDZlMmFhNTRjOGVhZGNmMGM5ZDA5NGM5NTdhNTc2Mi4uMzRlOTg2NGNhODk4MWUyZDc5M2M1
MWFlMzFkNTk2YjViMDY0YTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCkBAIC00NSw3
ICs0NSw3IEBAIGJvb2wgZmFzdFNldEluc3RhbGxlZCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGFy
cmF5KQogICAgIHJldHVybiAhZmFzdFNldEZsYWcuSXNFbXB0eSgpOwogfQogCi12b2lkIGluc3Rh
bGxGYXN0U2V0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gYXJyYXkpCit2b2lkIGluc3RhbGxGYXN0
U2V0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gYXJyYXksIHY4OjpJc29sYXRlKiBpc29sYXRlKQog
ewogICAgIHY4OjpUcnlDYXRjaCB0cnlDYXRjaDsKICAgICB0cnlDYXRjaC5TZXRWZXJib3NlKHRy
dWUpOwpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIGluc3RhbGxGYXN0U2V0KHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gYXJyYXkpCiAKICAgICBTdHJpbmcgc291cmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KFY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tU2NyaXB0X2pzKSwKICAgICAgICAgICAg
ICAgICAgIHNpemVvZihWOEFycmF5QnVmZmVyVmlld0N1c3RvbVNjcmlwdF9qcykpOwotICAgIHY4
OjpIYW5kbGU8djg6OlNjcmlwdD4gc2NyaXB0ID0gdjg6OlNjcmlwdDo6Q29tcGlsZSh2OFN0cmlu
Zyhzb3VyY2UpKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IHY4OjpTY3Jp
cHQ6OkNvbXBpbGUodjhTdHJpbmcoc291cmNlLCBpc29sYXRlKSk7CiAgICAgc2NyaXB0LT5SdW4o
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAppbmRleCA3MTJkMDM2NTE1ZWQ5Y2M2MGJhZjUz
ODYzOWUyOWFjY2VjMWYwNmRiLi5mYWM0NjA3MmY0ZjNhMTNhNmM5MjkwNzQ5MjFjMjg3NmM5YzEx
NjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJh
eUJ1ZmZlclZpZXdDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaApAQCAtNDcsNyArNDcsNyBAQCBib29sIGZhc3RT
ZXRJbnN0YWxsZWQodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBhcnJheSk7CiAKIC8vIEluc3RhbGwg
dGhlIEphdmFTY3JpcHQgJ3NldCcgbWV0aG9kIG9uIHRoZSBwcm90b3R5cGUgb2YKIC8vIHRoZSBn
aXZlbiB0eXBlZCBhcnJheS4KLXZvaWQgaW5zdGFsbEZhc3RTZXQodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBhcnJheSk7Cit2b2lkIGluc3RhbGxGYXN0U2V0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
YXJyYXksIHY4OjpJc29sYXRlKik7CiAKIC8vIENvcHkgdGhlIGVsZW1lbnRzIGZyb20gdGhlIHNv
dXJjZSBhcnJheSB0byB0aGUgdHlwZWQgZGVzdGluYXRpb24gYXJyYXkgYnkKIC8vIGludm9raW5n
IHRoZSAnc2V0JyBtZXRob2Qgb2YgdGhlIGRlc3RpbmF0aW9uIGFycmF5IGluIEpTLgpAQCAtMjE2
LDcgKzIxNiw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRXZWJHTEFycmF5SGVscGVyKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWZhc3RT
ZXRJbnN0YWxsZWQoYXJncy5Ib2xkZXIoKSkpIHsKLSAgICAgICAgICAgIGluc3RhbGxGYXN0U2V0
KGFyZ3MuSG9sZGVyKCkpOworICAgICAgICAgICAgaW5zdGFsbEZhc3RTZXQoYXJncy5Ib2xkZXIo
KSwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgICAgICAgICAgY29weUVsZW1lbnRzKGFyZ3MuSG9s
ZGVyKCksIGFycmF5LCBvZmZzZXQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZm9y
ICh1aW50MzJfdCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9u
Q3VzdG9tLmNwcAppbmRleCBhNjc3ZDRiYTY4NWM2MTY0MTNjZTI2Zjk3NGY3YTdhNGMyMDQzNzk5
Li42MmZjOGVjYWQxMzk1NGEzNDI2NzViYjA5YmZmZjRhNDdiYjQxZGI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHls
ZURlY2xhcmF0aW9uQ3VzdG9tLmNwcApAQCAtMTc0LDcgKzE3NCw3IEBAIHY4OjpIYW5kbGU8djg6
OkFycmF5PiBWOENTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVkUHJvcGVydHlFbnVtZXJhdG9yKGNv
bnN0IHY4OjpBCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5TmFtZXNMZW5n
dGg7ICsraSkgewogICAgICAgICBTdHJpbmcga2V5ID0gcHJvcGVydHlOYW1lcy5hdChpKTsKICAg
ICAgICAgQVNTRVJUKCFrZXkuaXNOdWxsKCkpOwotICAgICAgICBwcm9wZXJ0aWVzLT5TZXQodjg6
OkludGVnZXI6Ok5ldyhpKSwgdjhTdHJpbmcoa2V5KSk7CisgICAgICAgIHByb3BlcnRpZXMtPlNl
dCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB2OFN0cmluZyhrZXksIGluZm8uR2V0SXNvbGF0ZSgpKSk7
CiAgICAgfQogCiAgICAgcmV0dXJuIHByb3BlcnRpZXM7CkBAIC0yMTIsMTQgKzIxMiwxNCBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZFByb3BlcnR5
R2V0dGVyKHY4OjpMb2NhbDx2ODo6UwogICAgICAgICAgICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5l
dyhzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KAogICAgICAgICAgICAgICAgIGNzc1Zh
bHVlLmdldCgpKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKSk7CiAg
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHY4U3RyaW5nT3JOdWxsKGNzc1ZhbHVlLT5jc3NUZXh0
KCkpOworICAgICAgICByZXR1cm4gdjhTdHJpbmdPck51bGwoY3NzVmFsdWUtPmNzc1RleHQoKSwg
aW5mby5HZXRJc29sYXRlKCkpOwogICAgIH0KIAogICAgIFN0cmluZyByZXN1bHQgPSBpbXAtPmdl
dFByb3BlcnR5VmFsdWVJbnRlcm5hbChzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihwcm9wSW5m
by0+cHJvcElEKSk7CiAgICAgaWYgKHJlc3VsdC5pc051bGwoKSkKICAgICAgICAgcmVzdWx0ID0g
IiI7ICAvLyBjb252ZXJ0IG51bGwgdG8gZW1wdHkgc3RyaW5nLgogCi0gICAgcmV0dXJuIHY4U3Ry
aW5nKHJlc3VsdCk7CisgICAgcmV0dXJuIHY4U3RyaW5nKHJlc3VsdCwgaW5mby5HZXRJc29sYXRl
KCkpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDU1NTdHlsZURlY2xhcmF0aW9uOjpu
YW1lZFByb3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCmluZGV4IDc5YTYwNTUyZjk1NTdlY2Zm
NmViZGVhYzQxYjk4ZGMzMzc0YWMxOGQuLmEyN2ZkMDFlN2YyYTc3YmZjMmU5MzAzZThhNDljNTRj
NDc5NTE5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcApA
QCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3Qo
Q2FudmFzU3R5bGUqIHN0eWxlLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZQogICAgIGlmIChzdHlsZS0+
Y2FudmFzUGF0dGVybigpKQogICAgICAgICByZXR1cm4gdG9WOChzdHlsZS0+Y2FudmFzUGF0dGVy
bigpLCBpc29sYXRlKTsKIAotICAgIHJldHVybiB2OFN0cmluZyhzdHlsZS0+Y29sb3IoKSk7Cisg
ICAgcmV0dXJuIHY4U3RyaW5nKHN0eWxlLT5jb2xvcigpLCBpc29sYXRlKTsKIH0KIAogc3RhdGlj
IFBhc3NSZWZQdHI8Q2FudmFzU3R5bGU+IHRvQ2FudmFzU3R5bGUodjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENsaXBib2FyZEN1c3RvbS5jcHAKaW5kZXggY2VhMTBhZjFjNTRhZjcxM2IyODZiY2UzN2M0
ZWI3YjNkMzNkZDI4Yy4uMjRmYTY0YjVlZDYyMjQwMzAzZDZhMjkyY2JhNDdiZmIyNTg5NGUxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJk
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDbGlw
Ym9hcmRDdXN0b20uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OENsaXBib2FyZDo6dHlwZXNBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
CiAgICAgSGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSB0eXBlcy5lbmQoKTsK
ICAgICBpbnQgaW5kZXggPSAwOwogICAgIGZvciAoSGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IHR5cGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCwgKytpbmRleCkKLSAgICAg
ICAgcmVzdWx0LT5TZXQodjg6OkludGVnZXI6Ok5ldyhpbmRleCksIHY4U3RyaW5nKCppdCkpOwor
ICAgICAgICByZXN1bHQtPlNldCh2ODo6SW50ZWdlcjo6TmV3KGluZGV4KSwgdjhTdHJpbmcoKml0
LCBpbmZvLkdldElzb2xhdGUoKSkpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBD
dXN0b20uY3BwCmluZGV4IDg1MWQ5ZTBkODIxZWIzN2MxM2I0OGFhNWQ3ZjE1MTk3N2Y0YjkwYmYu
LjRhY2NhN2M4NjZjZTNlZDQzYmVjODk4YjAxNGExMDQ5NjIxNGNjODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3Vz
dG9tLmNwcApAQCAtNTIsNyArNTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01TdHJp
bmdNYXA6Om5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+CiAgICAgU3Ry
aW5nIHZhbHVlID0gVjhET01TdHJpbmdNYXA6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpLT5pdGVt
KHRvV2ViQ29yZVN0cmluZyhuYW1lKSk7CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Ci0gICAgcmV0dXJuIHY4U3RyaW5nT3JV
bmRlZmluZWQodmFsdWUpOworICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKHZhbHVlLCBp
bmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OkFycmF5PiBWOERPTVN0cmlu
Z01hcDo6bmFtZWRQcm9wZXJ0eUVudW1lcmF0b3IoY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKQEAgLTYyLDcgKzYyLDcgQEAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IFY4RE9NU3RyaW5nTWFw
OjpuYW1lZFByb3BlcnR5RW51bWVyYXRvcihjb25zdCB2ODo6QWNjZXNzb3IKICAgICBWOERPTVN0
cmluZ01hcDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSktPmdldE5hbWVzKG5hbWVzKTsKICAgICB2
ODo6SGFuZGxlPHY4OjpBcnJheT4gcHJvcGVydGllcyA9IHY4OjpBcnJheTo6TmV3KG5hbWVzLnNp
emUoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuYW1lcy5zaXplKCk7ICsraSkKLSAg
ICAgICAgcHJvcGVydGllcy0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaSksIHY4U3RyaW5nKG5hbWVz
W2ldKSk7CisgICAgICAgIHByb3BlcnRpZXMtPlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB2OFN0
cmluZyhuYW1lc1tpXSwgaW5mby5HZXRJc29sYXRlKCkpKTsKICAgICByZXR1cm4gcHJvcGVydGll
czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RmlsZVJlYWRlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhGaWxlUmVhZGVyQ3VzdG9tLmNwcAppbmRleCAwY2ZmZTZkODNlNDFkODBlY2M2MjM2M2I4NTc5
MjNhY2UzZDI2NmE0Li5mYzliNzBjYWEyMTkwMGZlMmIyM2ZkMWZmYjc2MzAwN2U0MGJhY2M4IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGaWxlUmVhZGVy
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGaWxl
UmVhZGVyQ3VzdG9tLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
VjhGaWxlUmVhZGVyOjpyZXN1bHRBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bgogICAgIEZpbGVSZWFkZXIqIGltcCA9IFY4RmlsZVJlYWRlcjo6dG9OYXRpdmUoaG9sZGVyKTsK
ICAgICBpZiAoaW1wLT5yZWFkVHlwZSgpID09IEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0FycmF5
QnVmZmVyKQogICAgICAgICByZXR1cm4gdG9WOChpbXAtPmFycmF5QnVmZmVyUmVzdWx0KCksIGlu
Zm8uR2V0SXNvbGF0ZSgpKTsKLSAgICByZXR1cm4gdjhTdHJpbmdPck51bGwoaW1wLT5zdHJpbmdS
ZXN1bHQoKSk7CisgICAgcmV0dXJuIHY4U3RyaW5nT3JOdWxsKGltcC0+c3RyaW5nUmVzdWx0KCks
IGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZhc0VsZW1l
bnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENh
bnZhc0VsZW1lbnRDdXN0b20uY3BwCmluZGV4IDAxYzU0ZGI0NjRhNDNjMWRhN2I1MzY5OWM5NDA5
YWQ3MTVlYzgwYzUuLjg4OTJjNTVkY2E1MDJmMDJhZWIxNmUwOWQ1ZmZmZWEwMzg1NzMzYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxDYW52YXNF
bGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhIVE1MQ2FudmFzRWxlbWVudDo6dG9EYXRhVVJMQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cwogCiAgICAgU3RyaW5nIHJlc3VsdCA9IGNhbnZhcy0+dG9EYXRhVVJM
KHR5cGUsIHF1YWxpdHlQdHIsIGVjKTsKICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMs
IGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICByZXR1cm4gdjhTdHJpbmdPclVuZGVmaW5lZChyZXN1
bHQpOworICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKHJlc3VsdCwgYXJncy5HZXRJc29s
YXRlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRWxlbWVudEN1c3RvbS5jcHAKaW5k
ZXggMTkyODYxMjRmMTQ2ODM1Y2FhNmJjMzQ2ZTI4NDZkMjUxNDE4OTNiYy4uMjJiY2MxNDJiMWNk
NWFkMDk0NjZiNDc2NWNkNDA2OTQ0OTkyNjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDks
NyArNDksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoTWljcm9E
YXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUsIHY4OjpJc29sYQogICAgIGlmIChpdGVtVmFsdWUtPmlz
Tm9kZSgpKQogICAgICAgICByZXR1cm4gdG9WOChpdGVtVmFsdWUtPmdldE5vZGUoKSwgaXNvbGF0
ZSk7CiAKLSAgICByZXR1cm4gdjhTdHJpbmcoaXRlbVZhbHVlLT5nZXRTdHJpbmcoKSk7CisgICAg
cmV0dXJuIHY4U3RyaW5nKGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCksIGlzb2xhdGUpOwogfQogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggZTFiYjU5NDJlNzA2ODA5MzUw
NWRkMDM5Mjk5N2FlOWZlZjMwNTE3Yy4uN2E2ZmZmNDdmMDY3MDY4ZDIzYmZkOGYyOGNiODRhOTNk
Nzg0YTgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJl
Y3Rpb25BY2Nlc3NvckdldHRlcih2ODo6TAogICAgIGlmICghaW1wLT5jYW5IYXZlU2VsZWN0aW9u
KCkpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNl
bGVjdGlvbkRpcmVjdGlvbiBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBz
ZWxlY3Rpb24uIiwgaW5mby5HZXRJc29sYXRlKCkpOwogCi0gICAgcmV0dXJuIHY4U3RyaW5nKGlt
cC0+c2VsZWN0aW9uRGlyZWN0aW9uKCkpOworICAgIHJldHVybiB2OFN0cmluZyhpbXAtPnNlbGVj
dGlvbkRpcmVjdGlvbigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHZvaWQgVjhIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhJREJBbnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SURCQW55Q3VzdG9tLmNwcAppbmRleCAxZTM3Y2RmYmZlYzAxZmU5YWM0Y2U5NmVhYTJj
YzZiOTEzODQxZGUwLi40ODgxNjU0MzgzNTg1YzdmMGQxNWUyMmY0MzJlZmU2ZDcyYTk5MGM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1
c3RvbS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURC
QW55KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICBjYXNlIElEQkFueTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlVHlwZToKICAgICAgICAgcmV0dXJuIGltcGwtPnNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSgpLT5kZXNlcmlhbGl6ZSgwLCBpc29sYXRlKTsKICAgICBjYXNlIElEQkFueTo6U3Ry
aW5nVHlwZToKLSAgICAgICAgcmV0dXJuIHY4U3RyaW5nKGltcGwtPnN0cmluZygpKTsKKyAgICAg
ICAgcmV0dXJuIHY4U3RyaW5nKGltcGwtPnN0cmluZygpLCBpc29sYXRlKTsKICAgICB9CiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJREJLZXlDdXN0b20uY3BwCmluZGV4IDliMGU2NTQxNDY1Yzc5MzUzYTQ3
NmQ1MWJiYmNkYTU4MzZmM2EzMjIuLjE1YTYxY2Y0ZTMzNWM5ZWQ2ZDEyMmYzNWRkMGEyNmQ3MGZi
OTMzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElE
QktleUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SURCS2V5Q3VzdG9tLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOChJREJLZXkqIGtleSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiAgICAgY2FzZSBJREJLZXk6
Ok51bWJlclR5cGU6CiAgICAgICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoa2V5LT5udW1iZXIo
KSk7CiAgICAgY2FzZSBJREJLZXk6OlN0cmluZ1R5cGU6Ci0gICAgICAgIHJldHVybiB2OFN0cmlu
ZyhrZXktPnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHY4U3RyaW5nKGtleS0+c3RyaW5nKCks
IGlzb2xhdGUpOwogICAgIGNhc2UgSURCS2V5OjpEYXRlVHlwZToKICAgICAgICAgcmV0dXJuIHY4
OjpEYXRlOjpOZXcoa2V5LT5kYXRlKCkpOwogICAgIGNhc2UgSURCS2V5OjpBcnJheVR5cGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNj
cmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAppbmRleCBhMTEzNjUwYWQ4Mzg0YjVkZWY0OTUw
ZjE2NzgzNDc0NjkxNTIwMTc0Li4yNzc0YjlhMzA4ODNjNjAwZGQ3ZGE5NTFmNzM3OWEzN2E5OGY0
M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmpl
Y3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OmRhdGFiYXNlSWRD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbgogICAgIEluamVjdGVkU2NyaXB0SG9zdCogaG9zdCA9
IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBEYXRh
YmFzZSogZGF0YWJhc2UgPSBWOERhdGFiYXNlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+OjpDYXN0KGFyZ3NbMF0pKTsKICAgICBpZiAoZGF0YWJhc2UpCi0gICAgICAgIHJldHVybiB2
OFN0cmluZ09yVW5kZWZpbmVkKGhvc3QtPmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNlKSk7CisgICAg
ICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKGhvc3QtPmRhdGFiYXNlSWRJbXBsKGRhdGFi
YXNlKSwgYXJncy5HZXRJc29sYXRlKCkpOwogI2VuZGlmCiAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKIH0KQEAgLTI4Nyw3ICsyODcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmpl
Y3RlZFNjcmlwdEhvc3Q6OnN0b3JhZ2VJZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAg
IEluamVjdGVkU2NyaXB0SG9zdCogaG9zdCA9IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKICAgICBTdG9yYWdlKiBzdG9yYWdlID0gVjhTdG9yYWdlOjp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKICAgICBpZiAoc3Rv
cmFnZSkKLSAgICAgICAgcmV0dXJuIHY4U3RyaW5nT3JVbmRlZmluZWQoaG9zdC0+c3RvcmFnZUlk
SW1wbChzdG9yYWdlKSk7CisgICAgICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKGhvc3Qt
PnN0b3JhZ2VJZEltcGwoc3RvcmFnZSksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNw
cAppbmRleCBmOGI1ZTM1MGRhNTVkYzU1NDA4NDA4M2Q0OTk4ZjhhNjFiOWM2YTVhLi42MmVlNmJk
MTE5YjNiODYwNTJiMmFjZWIwYTFlMDljYTFmYmYwNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250
ZW5kSG9zdEN1c3RvbS5jcHAKQEAgLTQ0LDIyICs0NCwyMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluc3BlY3RvckZyb250ZW5kSG9zdDo6cGxh
dGZvcm1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJikKK3Y4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEluc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm1DYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogewogI2lmIGRlZmluZWQoT1NfTUFDT1NYKQotICAgIHJldHVybiB2OFN0
cmluZygibWFjIik7CisgICAgcmV0dXJuIHY4U3RyaW5nKCJtYWMiLCBhcmdzLkdldElzb2xhdGUo
KSk7CiAjZWxpZiBkZWZpbmVkKE9TX0xJTlVYKQotICAgIHJldHVybiB2OFN0cmluZygibGludXgi
KTsKKyAgICByZXR1cm4gdjhTdHJpbmcoImxpbnV4IiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2Vs
aWYgZGVmaW5lZChPU19GUkVFQlNEKQotICAgIHJldHVybiB2OFN0cmluZygiZnJlZWJzZCIpOwor
ICAgIHJldHVybiB2OFN0cmluZygiZnJlZWJzZCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICNlbGlm
IGRlZmluZWQoT1NfT1BFTkJTRCkKLSAgICByZXR1cm4gdjhTdHJpbmcoIm9wZW5ic2QiKTsKKyAg
ICByZXR1cm4gdjhTdHJpbmcoIm9wZW5ic2QiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAjZWxpZiBk
ZWZpbmVkKE9TX1NPTEFSSVMpCi0gICAgcmV0dXJuIHY4U3RyaW5nKCJzb2xhcmlzIik7CisgICAg
cmV0dXJuIHY4U3RyaW5nKCJzb2xhcmlzIiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2VsaWYgZGVm
aW5lZChPU19XSU4pCi0gICAgcmV0dXJuIHY4U3RyaW5nKCJ3aW5kb3dzIik7CisgICAgcmV0dXJu
IHY4U3RyaW5nKCJ3aW5kb3dzIiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2Vsc2UKLSAgICByZXR1
cm4gdjhTdHJpbmcoInVua25vd24iKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoInVua25vd24iLCBh
cmdzLkdldElzb2xhdGUoKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3Vz
dG9tLmNwcAppbmRleCBlMmE2OTFkYjE2MDM3NDE2MDdhNDQ5M2ZhYjIyOTlmNTA3MDAzMjc4Li4y
MTBlZjEwMjk1ODY1ZTY2YjJlMGY4ZTE2YTQ4ZDk3NDJlY2VkNTgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0
Q2FsbEZyYW1lQ3VzdG9tLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhKYXZhU2NyaXB0Q2FsbEZyYW1lOjp0aGlzT2JqZWN0QWNjZXNzb3JHZXR0ZXIodjg6Okxv
Y2FsPAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SmF2YVNjcmlwdENhbGxGcmFtZTo6dHlwZUFj
Y2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiVjhKYXZhU2NyaXB0Q2FsbEZyYW1lLnR5
cGVBY2Nlc3NvckdldHRlcigpIik7Ci0gICAgcmV0dXJuIHY4U3RyaW5nKCJmdW5jdGlvbiIpOwor
ICAgIHJldHVybiB2OFN0cmluZygiZnVuY3Rpb24iLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCBmNDAzNDRiY2M4ZTQ2MTBl
M2U1MWU4YTVmNjNmMTQzZTAwMDdmMDJhLi4yMTFmYzcxYTMwZjNmNDJhYjJkY2I1ZjAwM2U4MjRm
YmQyZDMxMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwCkBAIC0yNTUsNyArMjU1LDcgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4TG9jYXRpb246OnRvU3RyaW5nQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKICAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJp
bmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIHRydWUpKQogICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogICAgIFN0cmluZyByZXN1bHQgPSBpbXAtPmhyZWYoKTsKLSAgICBy
ZXR1cm4gdjhTdHJpbmcocmVzdWx0KTsKKyAgICByZXR1cm4gdjhTdHJpbmcocmVzdWx0LCBhcmdz
LkdldElzb2xhdGUoKSk7CiB9CiAKIGJvb2wgVjhMb2NhdGlvbjo6aW5kZXhlZFNlY3VyaXR5Q2hl
Y2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNz
VHlwZSB0eXBlLCB2ODo6TG9jYWw8djg6OlZhbHVlPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1
c3RvbS5jcHAKaW5kZXggYTRmODBkMGExYmI2ZDRlYWU2YjFiYjUyNjY2MThjMDdhZjUyZTExNS4u
MGNjZTA5N2U5MzExYTRmMzJmMTc1ZDcwM2ZlMzZlODdhM2Y4OWUyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0
U2V0Um93TGlzdEN1c3RvbS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4U1FMUmVzdWx0U2V0Um93TGlzdDo6aXRlbUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGEKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlOwogICAgICAgICBzd2l0
Y2goc3FsVmFsdWUudHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIFNRTFZhbHVlOjpTdHJpbmdW
YWx1ZToKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHY4U3RyaW5nKHNxbFZhbHVlLnN0cmluZygp
KTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHY4U3RyaW5nKHNxbFZhbHVlLnN0cmluZygpLCBh
cmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIFNRTFZhbHVlOjpOdWxsVmFsdWU6CiAgICAgICAgICAgICAgICAgdmFsdWUgPSB2ODo6TnVs
bCgpOwpAQCAtNzYsNyArNzYsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTUUxSZXN1bHRT
ZXRSb3dMaXN0OjppdGVtQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogICAgICAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaXRlbS0+
U2V0KHY4U3RyaW5nKHJvd0xpc3QtPmNvbHVtbk5hbWVzKClbaV0pLCB2YWx1ZSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZXx2ODo6UmVhZE9ubHkpKTsK
KyAgICAgICAgaXRlbS0+U2V0KHY4U3RyaW5nKHJvd0xpc3QtPmNvbHVtbk5hbWVzKClbaV0sIGFy
Z3MuR2V0SXNvbGF0ZSgpKSwgdmFsdWUsIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZT4odjg6OkRvbnREZWxldGUgfCB2ODo6UmVhZE9ubHkpKTsKICAgICB9CiAKICAgICByZXR1cm4g
aXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0
b3JhZ2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3Rv
cmFnZUN1c3RvbS5jcHAKaW5kZXggZjUyNTdiOWE5MmQ0ZWVjNTE3NWRhODNkMTBiOGUzOTU0ZTYz
OTY2Mi4uZGQwYjM0MDhhNmY3ZTdkYTA2ODk1MmI2NGZkZmJmNmYyYzQ4YTM5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1c3RvbS5j
cHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IFY4U3RvcmFnZTo6bmFt
ZWRQcm9wZXJ0eUVudW1lcmF0b3IoY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYKICAgICAgICAgU3Ry
aW5nIGtleSA9IHN0b3JhZ2UtPmtleShpKTsKICAgICAgICAgQVNTRVJUKCFrZXkuaXNOdWxsKCkp
OwogICAgICAgICBTdHJpbmcgdmFsID0gc3RvcmFnZS0+Z2V0SXRlbShrZXkpOwotICAgICAgICBw
cm9wZXJ0aWVzLT5TZXQodjg6OkludGVnZXI6Ok5ldyhpKSwgdjhTdHJpbmcoa2V5KSk7CisgICAg
ICAgIHByb3BlcnRpZXMtPlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB2OFN0cmluZyhrZXksIGlu
Zm8uR2V0SXNvbGF0ZSgpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHByb3BlcnRpZXM7CkBAIC01
OSw3ICs1OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RvcmFnZUdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gdjhOYW1lLCBjb25zdCB2CiAgICAgU3RyaW5nIG5hbWUgPSB0
b1dlYkNvcmVTdHJpbmcodjhOYW1lKTsKIAogICAgIGlmIChuYW1lICE9ICJsZW5ndGgiICYmIHN0
b3JhZ2UtPmNvbnRhaW5zKG5hbWUpKQotICAgICAgICByZXR1cm4gdjhTdHJpbmcoc3RvcmFnZS0+
Z2V0SXRlbShuYW1lKSk7CisgICAgICAgIHJldHVybiB2OFN0cmluZyhzdG9yYWdlLT5nZXRJdGVt
KG5hbWUpLCBpbmZvLkdldElzb2xhdGUoKSk7CiAKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6
VmFsdWU+KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXggNTg3ZmUzZTIzYzNlYzkx
NmNmYTMyNGZiMzQ2OWM2ZWE3NmJiNmE0OS4uYjU0MTRiOGFiNWQ0NzE0NzljMDE4MWNmOTY4ZTZj
MzdlYWU5NmQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0QWNjZXNz
b3JHZXR0ZXIodjg6OkxvY2FsPHY4OgogICAgIGNvbnN0IFN0cmluZyYgdGV4dCA9IHhtbEh0dHBS
ZXF1ZXN0LT5yZXNwb25zZVRleHQoZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKLSAgICByZXR1cm4gdjhTdHJpbmcodGV4
dCk7CisgICAgcmV0dXJuIHY4U3RyaW5nKHRleHQsIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KIAog
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQWNjZXNzb3JH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhY
U0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwCmluZGV4IGU5Zjk1MTc1NGI4OGE3MTQwNmI5MzZm
MDI5MWMxMDZiOWE4Yzg1M2MuLjNkYzllZjU3MGY2ZGIwYzExMTZmODAxNmZkOGMzMTMxZTE0NmY2
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQ
cm9jZXNzb3JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4WFNMVFByb2Nlc3Nvcjo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYKICAgICBpZiAocmVzdWx0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpOwogCi0gICAgcmV0dXJuIHY4U3RyaW5nKHJlc3VsdCk7CisgICAgcmV0
dXJuIHY4U3RyaW5nKHJlc3VsdCwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhYU0xUUHJvY2Vzc29yOjpyZW1vdmVQYXJhbWV0ZXJDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQo=
</data>
<flag name="commit-queue"
          id="151965"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144969</attachid>
            <date>2012-05-30 18:36:04 -0700</date>
            <delta_ts>2012-05-31 01:00:53 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-87825-20120531103602.patch</filename>
            <type>text/plain</type>
            <size>24370</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkyMzkwYjhkN2MwNTJm
NjA4YjcyMjc4ZGRhZTk3Nzc0OGMwYjhhZS4uYjZkM2RhMGRhOThhMDI0Y2ExYTUwYjc1ODhjMTY2
NTVjOTZkMTI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTA1LTI5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byB2OFN0cmluZygpIGluIGN1c3RvbSBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MjUKKworICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBvYmplY3RpdmUgaXMgdG8gcGFzcyBJc29sYXRl
IGFyb3VuZCBpbiBWOCBiaW5kaW5ncy4KKyAgICAgICAgVGhpcyBwYXRjaCBwYXNzZXMgSXNvbGF0
ZSB0byB2OFN0cmluZygpIGluIGN1c3RvbSBiaW5kaW5ncy4KKworICAgICAgICBObyB0ZXN0cy4g
Tm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc3RhbGxGYXN0
U2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0
b20uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0V2ViR0xBcnJh
eUhlbHBlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NTU3R5bGVEZWNsYXJh
dGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOENTU1N0eWxlRGVjbGFyYXRpb246
Om5hbWVkUHJvcGVydHlFbnVtZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q1NTU3R5bGVE
ZWNsYXJhdGlvbjo6bmFtZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBi
b2FyZEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOENsaXBib2FyZDo6dHlwZXNBY2Nl
c3NvckdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFw
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NU3RyaW5nTWFwOjpuYW1lZFByb3Bl
cnR5R2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NU3RyaW5nTWFwOjpuYW1lZFByb3Bl
cnR5RW51bWVyYXRvcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmlsZVJlYWRl
ckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEZpbGVSZWFkZXI6OnJlc3VsdEFjY2Vz
c29yR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxl
bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEhUTUxDYW52YXNFbGVtZW50Ojp0
b0RhdGFVUkxDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEVs
ZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOE9iamVjdCk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkRpcmVjdGlvbkFjY2Vz
c29yR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SURCS2V5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9zdDo6ZGF0YWJhc2VJZENhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpzdG9yYWdlSWRDYWxs
YmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5zcGVjdG9yRnJvbnRlbmRIb3N0
OjpwbGF0Zm9ybUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhKYXZh
U2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SmF2YVNjcmlw
dENhbGxGcmFtZTo6dHlwZUFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9j
dXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOExvY2F0aW9u
Ojp0b1N0cmluZ0NhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTUUxS
ZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U1FMUmVzdWx0
U2V0Um93TGlzdDo6aXRlbUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhTdG9yYWdlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U3RvcmFnZTo6bmFtZWRQ
cm9wZXJ0eUVudW1lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c3RvcmFnZUdldHRlcik6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0QWNjZXNzb3JH
ZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYU0xUUHJvY2Vzc29yOjpnZXRQYXJhbWV0ZXJD
YWxsYmFjayk6CisKIDIwMTItMDUtMzAgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtWOF0gUmVwbGFjZSB2ODo6TnVsbCgpIHdpdGggdjg6Ok51bGwoaXNv
bGF0ZSkgaW4gY3VzdG9tIGJpbmRpbmdzIHdoZXJlIGlzb2xhdGUgc2hvdWxkbid0IGJlIDAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29sbGVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb2xsZWN0aW9uLmgKaW5kZXggNmVhZGU5NjBlMzUw
NDY0M2JkNTg0NmI2YWNiNDdiYjM4OWQ1NGZkZS4uYjUwYmE4OTljOThkYzZlOWExZWZmYmYzMmNl
NmIzMDAzNjRmMmVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhD
b2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhDb2xsZWN0aW9u
LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBDb2xsZWN0aW9uPiBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbGxlY3Rpb25TdHJpbmdPck51bGxJbgogICAgIEFTU0VS
VChWOERPTVdyYXBwZXI6Om1heWJlRE9NV3JhcHBlcihpbmZvLkhvbGRlcigpKSk7CiAgICAgQ29s
bGVjdGlvbiogY29sbGVjdGlvbiA9IHRvTmF0aXZlQ29sbGVjdGlvbjxDb2xsZWN0aW9uPihpbmZv
LkhvbGRlcigpKTsKICAgICBTdHJpbmcgcmVzdWx0ID0gY29sbGVjdGlvbi0+aXRlbShpbmRleCk7
Ci0gICAgcmV0dXJuIHY4U3RyaW5nT3JOdWxsKHJlc3VsdCk7CisgICAgcmV0dXJuIHY4U3RyaW5n
T3JOdWxsKHJlc3VsdCwgaW5mby5HZXRJc29sYXRlKCkpOwogfQogCiAKQEAgLTE0Niw3ICsxNDYs
NyBAQCB0ZW1wbGF0ZTxjbGFzcyBDb2xsZWN0aW9uPiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGNvbGxlY3Rpb25TdHJpbmdJbmRleGVkUAogICAgIEFTU0VSVChWOERPTVdyYXBwZXI6Om1h
eWJlRE9NV3JhcHBlcihpbmZvLkhvbGRlcigpKSk7CiAgICAgQ29sbGVjdGlvbiogY29sbGVjdGlv
biA9IHRvTmF0aXZlQ29sbGVjdGlvbjxDb2xsZWN0aW9uPihpbmZvLkhvbGRlcigpKTsKICAgICBT
dHJpbmcgcmVzdWx0ID0gY29sbGVjdGlvbi0+aXRlbShpbmRleCk7Ci0gICAgcmV0dXJuIHY4U3Ry
aW5nKHJlc3VsdCk7CisgICAgcmV0dXJuIHY4U3RyaW5nKHJlc3VsdCwgaW5mby5HZXRJc29sYXRl
KCkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCmluZGV4IDg3ZGYyMDEzZTNmZDY5
NTA2MzRkMTI4MDdmMTk5NzU0YmY3Yzg4ZmMuLjhjNzNmNDg4ODY0MWViZGY3M2MxNTJiNWI3M2M4
ZDM2YThiMDAyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcApAQCAtNTQsNyArNTQsNyBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaW5zdGFsbEhpZGRlbkNvcHlNZXRob2Qodjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiBwcm90b3R5cGUpCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1ib29sIGNv
cHlFbGVtZW50cyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGRlc3RBcnJheSwgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBzcmNBcnJheSwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBvZmZzZXQpCiti
b29sIGNvcHlFbGVtZW50cyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGRlc3RBcnJheSwgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBzcmNBcnJheSwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBvZmZz
ZXQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBw
cm90b3R5cGVfdmFsdWUgPSBkZXN0QXJyYXktPkdldFByb3RvdHlwZSgpOwogICAgIGlmIChwcm90
b3R5cGVfdmFsdWUuSXNFbXB0eSgpIHx8ICFwcm90b3R5cGVfdmFsdWUtPklzT2JqZWN0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZl
clZpZXdDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5
QnVmZmVyVmlld0N1c3RvbS5oCmluZGV4IDVhYjZlODU0ZDAzMzhmNTQyM2VjMTdkZGI5YjgyODNh
MDFkNzg1NDQuLmU0YWMzNTQ0YjhlNDk2YmRlYTIyMzQyNDQ5MjA4N2NlOGE0NjU3MDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmll
d0N1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5
QnVmZmVyVmlld0N1c3RvbS5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogLy8gQ29weSB0aGUgZWxlbWVudHMgZnJvbSB0aGUgc291cmNlIGFycmF5IHRvIHRoZSB0eXBl
ZCBkZXN0aW5hdGlvbiBhcnJheS4KIC8vIFJldHVybnMgdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIG90
aGVyd2lzZSByZXR1cm5zIGZhbHNlLgotYm9vbCBjb3B5RWxlbWVudHModjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBkZXN0QXJyYXksIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gc3JjQXJyYXksIHVpbnQz
Ml90IGxlbmd0aCwgdWludDMyX3Qgb2Zmc2V0KTsKK2Jvb2wgY29weUVsZW1lbnRzKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gZGVzdEFycmF5LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHNyY0FycmF5
LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG9mZnNldCwgdjg6Oklzb2xhdGUqKTsKIAogCiAv
LyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBBcnJheUJ1ZmZlclZpZXcqQ29uc3RydWN0
b3IgY2FsbGJhY2tzLgpAQCAtMTY1LDcgKzE2NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
b25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBl
CiAgICAgYXJncy5Ib2xkZXIoKS0+U2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXlE
YXRhKGFycmF5LmdldCgpLT5iYXNlQWRkcmVzcygpLCBhcnJheVR5cGUsIGFycmF5LmdldCgpLT5s
ZW5ndGgoKSk7CiAKICAgICBpZiAoIXNyY0FycmF5LklzRW1wdHkoKSkgewotICAgICAgICBib29s
IGNvcGllZCA9IGNvcHlFbGVtZW50cyhhcmdzLkhvbGRlcigpLCBzcmNBcnJheSwgbGVuLCAwKTsK
KyAgICAgICAgYm9vbCBjb3BpZWQgPSBjb3B5RWxlbWVudHMoYXJncy5Ib2xkZXIoKSwgc3JjQXJy
YXksIGxlbiwgMCwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgICAgICBpZiAoIWNvcGllZCkgewog
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICAgICAg
ICAgICAgIGFycmF5LT5zZXQoaSwgc3JjQXJyYXktPkdldChpKS0+TnVtYmVyVmFsdWUoKSk7CkBA
IC0yMTAsNyArMjEwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNldFdlYkdMQXJyYXlIZWxw
ZXIoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgICAgIC8vIE91dCBvZiByYW5n
ZSBvZmZzZXQgb3Igb3ZlcmZsb3cKICAgICAgICAgICAgIHJldHVybiBWOFByb3h5OjpzZXRET01F
eGNlcHRpb24oSU5ERVhfU0laRV9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgfQot
ICAgICAgICBib29sIGNvcGllZCA9IGNvcHlFbGVtZW50cyhhcmdzLkhvbGRlcigpLCBhcnJheSwg
bGVuZ3RoLCBvZmZzZXQpOworICAgICAgICBib29sIGNvcGllZCA9IGNvcHlFbGVtZW50cyhhcmdz
LkhvbGRlcigpLCBhcnJheSwgbGVuZ3RoLCBvZmZzZXQsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAg
ICAgICAgaWYgKCFjb3BpZWQpIHsKICAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkg
PCBsZW5ndGg7IGkrKykKICAgICAgICAgICAgICAgICBpbXBsLT5zZXQob2Zmc2V0ICsgaSwgYXJy
YXktPkdldChpKS0+TnVtYmVyVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20u
Y3BwCmluZGV4IGE2NzdkNGJhNjg1YzYxNjQxM2NlMjZmOTc0ZjdhN2E0YzIwNDM3OTkuLjYyZmM4
ZWNhZDEzOTU0YTM0MjY3NWJiMDliZmZmNGE0N2JiNDFkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1N0eWxlRGVjbGFy
YXRpb25DdXN0b20uY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdjg6OkhhbmRsZTx2ODo6QXJyYXk+
IFY4Q1NTU3R5bGVEZWNsYXJhdGlvbjo6bmFtZWRQcm9wZXJ0eUVudW1lcmF0b3IoY29uc3Qgdjg6
OkEKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJvcGVydHlOYW1lc0xlbmd0aDsgKytp
KSB7CiAgICAgICAgIFN0cmluZyBrZXkgPSBwcm9wZXJ0eU5hbWVzLmF0KGkpOwogICAgICAgICBB
U1NFUlQoIWtleS5pc051bGwoKSk7Ci0gICAgICAgIHByb3BlcnRpZXMtPlNldCh2ODo6SW50ZWdl
cjo6TmV3KGkpLCB2OFN0cmluZyhrZXkpKTsKKyAgICAgICAgcHJvcGVydGllcy0+U2V0KHY4OjpJ
bnRlZ2VyOjpOZXcoaSksIHY4U3RyaW5nKGtleSwgaW5mby5HZXRJc29sYXRlKCkpKTsKICAgICB9
CiAKICAgICByZXR1cm4gcHJvcGVydGllczsKQEAgLTIxMiwxNCArMjEyLDE0IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOENTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVkUHJvcGVydHlHZXR0ZXIo
djg6OkxvY2FsPHY4OjpTCiAgICAgICAgICAgICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oCiAgICAgICAgICAgICAgICAgY3NzVmFsdWUuZ2V0
KCkpLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpKTsKICAgICAgICAg
fQotICAgICAgICByZXR1cm4gdjhTdHJpbmdPck51bGwoY3NzVmFsdWUtPmNzc1RleHQoKSk7Cisg
ICAgICAgIHJldHVybiB2OFN0cmluZ09yTnVsbChjc3NWYWx1ZS0+Y3NzVGV4dCgpLCBpbmZvLkdl
dElzb2xhdGUoKSk7CiAgICAgfQogCiAgICAgU3RyaW5nIHJlc3VsdCA9IGltcC0+Z2V0UHJvcGVy
dHlWYWx1ZUludGVybmFsKHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KHByb3BJbmZvLT5wcm9w
SUQpKTsKICAgICBpZiAocmVzdWx0LmlzTnVsbCgpKQogICAgICAgICByZXN1bHQgPSAiIjsgIC8v
IGNvbnZlcnQgbnVsbCB0byBlbXB0eSBzdHJpbmcuCiAKLSAgICByZXR1cm4gdjhTdHJpbmcocmVz
dWx0KTsKKyAgICByZXR1cm4gdjhTdHJpbmcocmVzdWx0LCBpbmZvLkdldElzb2xhdGUoKSk7CiB9
CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOENTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVkUHJv
cGVydHlTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKaW5kZXggNzlhNjA1NTJmOTU1N2VjZmY2ZWJkZWFj
NDFiOThkYzMzNzRhYzE4ZC4uYTI3ZmQwMWU3ZjJhNzdiZmMyZTkzMDNlOGE0OWM1NGM0Nzk1MTk1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChDYW52YXNT
dHlsZSogc3R5bGUsIHY4OjpJc29sYXRlKiBpc29sYXRlCiAgICAgaWYgKHN0eWxlLT5jYW52YXNQ
YXR0ZXJuKCkpCiAgICAgICAgIHJldHVybiB0b1Y4KHN0eWxlLT5jYW52YXNQYXR0ZXJuKCksIGlz
b2xhdGUpOwogCi0gICAgcmV0dXJuIHY4U3RyaW5nKHN0eWxlLT5jb2xvcigpKTsKKyAgICByZXR1
cm4gdjhTdHJpbmcoc3R5bGUtPmNvbG9yKCksIGlzb2xhdGUpOwogfQogCiBzdGF0aWMgUGFzc1Jl
ZlB0cjxDYW52YXNTdHlsZT4gdG9DYW52YXNTdHlsZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDbGlw
Ym9hcmRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xp
cGJvYXJkQ3VzdG9tLmNwcAppbmRleCA2MWRkYTFjOWU1YWM4Y2I3NzFkNWM1OTRlZWJmZmRjZDE0
M2Q0ZDZmLi4zMDYzNDU5ZTcxNmIyYzgyOTBkOGYwNDJhZTAxNDY4ZmRkYTRhODBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDbGlwYm9hcmRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1
c3RvbS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Q2xpcGJv
YXJkOjp0eXBlc0FjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW0KICAgICBI
YXNoU2V0PFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHR5cGVzLmVuZCgpOwogICAgIGlu
dCBpbmRleCA9IDA7CiAgICAgZm9yIChIYXNoU2V0PFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gdHlwZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0LCArK2luZGV4KQotICAgICAgICByZXN1
bHQtPlNldCh2ODo6SW50ZWdlcjo6TmV3KGluZGV4KSwgdjhTdHJpbmcoKml0KSk7CisgICAgICAg
IHJlc3VsdC0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaW5kZXgpLCB2OFN0cmluZygqaXQsIGluZm8u
R2V0SXNvbGF0ZSgpKSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5j
cHAKaW5kZXggODUxZDllMGQ4MjFlYjM3YzEzYjQ4YWE1ZDdmMTUxOTc3ZjRiOTBiZi4uNGFjY2E3
Yzg2NmNlM2VkNDNiZWM4OThiMDE0YTEwNDk2MjE0Y2M4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3Bw
CkBAIC01Miw3ICs1Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVN0cmluZ01hcDo6
bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4KICAgICBTdHJpbmcgdmFs
dWUgPSBWOERPTVN0cmluZ01hcDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSktPml0ZW0odG9XZWJD
b3JlU3RyaW5nKG5hbWUpKTsKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKLSAgICByZXR1cm4gdjhTdHJpbmdPclVuZGVmaW5l
ZCh2YWx1ZSk7CisgICAgcmV0dXJuIHY4U3RyaW5nT3JVbmRlZmluZWQodmFsdWUsIGluZm8uR2V0
SXNvbGF0ZSgpKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6QXJyYXk+IFY4RE9NU3RyaW5nTWFwOjpu
YW1lZFByb3BlcnR5RW51bWVyYXRvcihjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAt
NjIsNyArNjIsNyBAQCB2ODo6SGFuZGxlPHY4OjpBcnJheT4gVjhET01TdHJpbmdNYXA6Om5hbWVk
UHJvcGVydHlFbnVtZXJhdG9yKGNvbnN0IHY4OjpBY2Nlc3NvcgogICAgIFY4RE9NU3RyaW5nTWFw
Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKS0+Z2V0TmFtZXMobmFtZXMpOwogICAgIHY4OjpIYW5k
bGU8djg6OkFycmF5PiBwcm9wZXJ0aWVzID0gdjg6OkFycmF5OjpOZXcobmFtZXMuc2l6ZSgpKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hbWVzLnNpemUoKTsgKytpKQotICAgICAgICBw
cm9wZXJ0aWVzLT5TZXQodjg6OkludGVnZXI6Ok5ldyhpKSwgdjhTdHJpbmcobmFtZXNbaV0pKTsK
KyAgICAgICAgcHJvcGVydGllcy0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaSksIHY4U3RyaW5nKG5h
bWVzW2ldLCBpbmZvLkdldElzb2xhdGUoKSkpOwogICAgIHJldHVybiBwcm9wZXJ0aWVzOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhGaWxlUmVh
ZGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZpbGVS
ZWFkZXJDdXN0b20uY3BwCmluZGV4IDBjZmZlNmQ4M2U0MWQ4MGVjYzYyMzYzYjg1NzkyM2FjZTNk
MjY2YTQuLmZjOWI3MGNhYTIxOTAwZmUyYjIzZmQxZmZiNzYzMDA3ZTQwYmFjYzggMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZpbGVSZWFkZXJDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZpbGVSZWFkZXJD
dXN0b20uY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEZpbGVS
ZWFkZXI6OnJlc3VsdEFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuCiAgICAg
RmlsZVJlYWRlciogaW1wID0gVjhGaWxlUmVhZGVyOjp0b05hdGl2ZShob2xkZXIpOwogICAgIGlm
IChpbXAtPnJlYWRUeXBlKCkgPT0gRmlsZVJlYWRlckxvYWRlcjo6UmVhZEFzQXJyYXlCdWZmZXIp
CiAgICAgICAgIHJldHVybiB0b1Y4KGltcC0+YXJyYXlCdWZmZXJSZXN1bHQoKSwgaW5mby5HZXRJ
c29sYXRlKCkpOwotICAgIHJldHVybiB2OFN0cmluZ09yTnVsbChpbXAtPnN0cmluZ1Jlc3VsdCgp
KTsKKyAgICByZXR1cm4gdjhTdHJpbmdPck51bGwoaW1wLT5zdHJpbmdSZXN1bHQoKSwgaW5mby5H
ZXRJc29sYXRlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxlbWVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxl
bWVudEN1c3RvbS5jcHAKaW5kZXggNzM1MTFhODY3NWI3OWQwMjQ4OTA3NTA1MDc1YTg5OTVjMjdh
NWZmZi4uMjBkYjUzZDY0ZWMxMDE5YmYxMGQzYzQyYzc4ZWY3MDAyOWYyOWQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTENhbnZhc0VsZW1lbnRD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxD
YW52YXNFbGVtZW50Q3VzdG9tLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOEhUTUxDYW52YXNFbGVtZW50Ojp0b0RhdGFVUkxDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzCiAKICAgICBTdHJpbmcgcmVzdWx0ID0gY2FudmFzLT50b0RhdGFVUkwodHlwZSwg
cXVhbGl0eVB0ciwgZWMpOwogICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgYXJncy5H
ZXRJc29sYXRlKCkpOwotICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKHJlc3VsdCk7Cisg
ICAgcmV0dXJuIHY4U3RyaW5nT3JVbmRlZmluZWQocmVzdWx0LCBhcmdzLkdldElzb2xhdGUoKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAzNjFl
OGQwMmNhZWY5MjMyNTk0MzRjMTQxNjRkZTNlMDI3NzBhZDBhLi4wZWU5NmMyNGQyNmI1OTFiZTMx
YWExNzIyZmI4NGYzOTc4NDQ4MjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEVsZW1lbnRDdXN0b20uY3BwCkBAIC01Niw3ICs1Niw3
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChNaWNyb0RhdGFJdGVt
VmFsdWUqIGl0ZW1WYWx1ZSwgdjg6Oklzb2xhCiAgICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkp
CiAgICAgICAgIHJldHVybiB0b1Y4KGl0ZW1WYWx1ZS0+Z2V0Tm9kZSgpLCBpc29sYXRlKTsKIAot
ICAgIHJldHVybiB2OFN0cmluZyhpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKKyAgICByZXR1cm4g
djhTdHJpbmcoaXRlbVZhbHVlLT5nZXRTdHJpbmcoKSwgaXNvbGF0ZSk7CiB9CiAKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEhUTUxFbGVtZW50OjppdGVtVmFsdWVBY2Nlc3NvckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbnB1dEVs
ZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TElucHV0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggZTFiYjU5NDJlNzA2ODA5MzUwNWRkMDM5Mjk5
N2FlOWZlZjMwNTE3Yy4uN2E2ZmZmNDdmMDY3MDY4ZDIzYmZkOGYyOGNiODRhOTNkNzg0YTgyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0
RWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nl
c3NvckdldHRlcih2ODo6TAogICAgIGlmICghaW1wLT5jYW5IYXZlU2VsZWN0aW9uKCkpCiAgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiQWNjZXNzaW5nIHNlbGVjdGlvbkRp
cmVjdGlvbiBvbiBhbiBpbnB1dCBlbGVtZW50IHRoYXQgY2Fubm90IGhhdmUgYSBzZWxlY3Rpb24u
IiwgaW5mby5HZXRJc29sYXRlKCkpOwogCi0gICAgcmV0dXJuIHY4U3RyaW5nKGltcC0+c2VsZWN0
aW9uRGlyZWN0aW9uKCkpOworICAgIHJldHVybiB2OFN0cmluZyhpbXAtPnNlbGVjdGlvbkRpcmVj
dGlvbigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIHZvaWQgVjhIVE1MSW5wdXRFbGVtZW50
OjpzZWxlY3Rpb25EaXJlY3Rpb25BY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
REJBbnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURC
QW55Q3VzdG9tLmNwcAppbmRleCAxZTM3Y2RmYmZlYzAxZmU5YWM0Y2U5NmVhYTJjYzZiOTEzODQx
ZGUwLi40ODgxNjU0MzgzNTg1YzdmMGQxNWUyMmY0MzJlZmU2ZDcyYTk5MGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAK
QEAgLTc2LDcgKzc2LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBs
LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICBjYXNlIElEQkFueTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlVHlwZToKICAgICAgICAgcmV0dXJuIGltcGwtPnNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgp
LT5kZXNlcmlhbGl6ZSgwLCBpc29sYXRlKTsKICAgICBjYXNlIElEQkFueTo6U3RyaW5nVHlwZToK
LSAgICAgICAgcmV0dXJuIHY4U3RyaW5nKGltcGwtPnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJu
IHY4U3RyaW5nKGltcGwtPnN0cmluZygpLCBpc29sYXRlKTsKICAgICB9CiAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOElEQktleUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhJREJLZXlDdXN0b20uY3BwCmluZGV4IDliMGU2NTQxNDY1Yzc5MzUzYTQ3NmQ1MWJiYmNk
YTU4MzZmM2EzMjIuLjE1YTYxY2Y0ZTMzNWM5ZWQ2ZDEyMmYzNWRkMGEyNmQ3MGZiOTMzNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5Q3Vz
dG9tLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJL
ZXkqIGtleSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiAgICAgY2FzZSBJREJLZXk6Ok51bWJlclR5
cGU6CiAgICAgICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoa2V5LT5udW1iZXIoKSk7CiAgICAg
Y2FzZSBJREJLZXk6OlN0cmluZ1R5cGU6Ci0gICAgICAgIHJldHVybiB2OFN0cmluZyhrZXktPnN0
cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHY4U3RyaW5nKGtleS0+c3RyaW5nKCksIGlzb2xhdGUp
OwogICAgIGNhc2UgSURCS2V5OjpEYXRlVHlwZToKICAgICAgICAgcmV0dXJuIHY4OjpEYXRlOjpO
ZXcoa2V5LT5kYXRlKCkpOwogICAgIGNhc2UgSURCS2V5OjpBcnJheVR5cGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRT
Y3JpcHRIb3N0Q3VzdG9tLmNwcAppbmRleCBhMTEzNjUwYWQ4Mzg0YjVkZWY0OTUwZjE2NzgzNDc0
NjkxNTIwMTc0Li4yNzc0YjlhMzA4ODNjNjAwZGQ3ZGE5NTFmNzM3OWEzN2E5OGY0M2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlw
dEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OmRhdGFiYXNlSWRDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbgogICAgIEluamVjdGVkU2NyaXB0SG9zdCogaG9zdCA9IFY4SW5qZWN0
ZWRTY3JpcHRIb3N0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBEYXRhYmFzZSogZGF0
YWJhc2UgPSBWOERhdGFiYXNlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0
KGFyZ3NbMF0pKTsKICAgICBpZiAoZGF0YWJhc2UpCi0gICAgICAgIHJldHVybiB2OFN0cmluZ09y
VW5kZWZpbmVkKGhvc3QtPmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNlKSk7CisgICAgICAgIHJldHVy
biB2OFN0cmluZ09yVW5kZWZpbmVkKGhvc3QtPmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNlKSwgYXJn
cy5HZXRJc29sYXRlKCkpOwogI2VuZGlmCiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0K
QEAgLTI4Nyw3ICsyODcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlw
dEhvc3Q6OnN0b3JhZ2VJZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAgIEluamVjdGVk
U2NyaXB0SG9zdCogaG9zdCA9IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKICAgICBTdG9yYWdlKiBzdG9yYWdlID0gVjhTdG9yYWdlOjp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pKTsKICAgICBpZiAoc3RvcmFnZSkKLSAg
ICAgICAgcmV0dXJuIHY4U3RyaW5nT3JVbmRlZmluZWQoaG9zdC0+c3RvcmFnZUlkSW1wbChzdG9y
YWdlKSk7CisgICAgICAgIHJldHVybiB2OFN0cmluZ09yVW5kZWZpbmVkKGhvc3QtPnN0b3JhZ2VJ
ZEltcGwoc3RvcmFnZSksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAppbmRleCBm
OGI1ZTM1MGRhNTVkYzU1NDA4NDA4M2Q0OTk4ZjhhNjFiOWM2YTVhLi42MmVlNmJkMTE5YjNiODYw
NTJiMmFjZWIwYTFlMDljYTFmYmYwNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1
c3RvbS5jcHAKQEAgLTQ0LDIyICs0NCwyMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm1DYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJikKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogewogI2lmIGRlZmluZWQoT1NfTUFDT1NYKQotICAgIHJldHVybiB2OFN0cmluZygibWFj
Iik7CisgICAgcmV0dXJuIHY4U3RyaW5nKCJtYWMiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAjZWxp
ZiBkZWZpbmVkKE9TX0xJTlVYKQotICAgIHJldHVybiB2OFN0cmluZygibGludXgiKTsKKyAgICBy
ZXR1cm4gdjhTdHJpbmcoImxpbnV4IiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2VsaWYgZGVmaW5l
ZChPU19GUkVFQlNEKQotICAgIHJldHVybiB2OFN0cmluZygiZnJlZWJzZCIpOworICAgIHJldHVy
biB2OFN0cmluZygiZnJlZWJzZCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICNlbGlmIGRlZmluZWQo
T1NfT1BFTkJTRCkKLSAgICByZXR1cm4gdjhTdHJpbmcoIm9wZW5ic2QiKTsKKyAgICByZXR1cm4g
djhTdHJpbmcoIm9wZW5ic2QiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAjZWxpZiBkZWZpbmVkKE9T
X1NPTEFSSVMpCi0gICAgcmV0dXJuIHY4U3RyaW5nKCJzb2xhcmlzIik7CisgICAgcmV0dXJuIHY4
U3RyaW5nKCJzb2xhcmlzIiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2VsaWYgZGVmaW5lZChPU19X
SU4pCi0gICAgcmV0dXJuIHY4U3RyaW5nKCJ3aW5kb3dzIik7CisgICAgcmV0dXJuIHY4U3RyaW5n
KCJ3aW5kb3dzIiwgYXJncy5HZXRJc29sYXRlKCkpOwogI2Vsc2UKLSAgICByZXR1cm4gdjhTdHJp
bmcoInVua25vd24iKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoInVua25vd24iLCBhcmdzLkdldElz
b2xhdGUoKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcApp
bmRleCBlMmE2OTFkYjE2MDM3NDE2MDdhNDQ5M2ZhYjIyOTlmNTA3MDAzMjc4Li4yMTBlZjEwMjk1
ODY1ZTY2YjJlMGY4ZTE2YTQ4ZDk3NDJlY2VkNTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhKYXZhU2NyaXB0Q2FsbEZyYW1l
Q3VzdG9tLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhKYXZh
U2NyaXB0Q2FsbEZyYW1lOjp0aGlzT2JqZWN0QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPAogdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4SmF2YVNjcmlwdENhbGxGcmFtZTo6dHlwZUFjY2Vzc29yR2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQogewogICAgIElOQ19TVEFUUygiVjhKYXZhU2NyaXB0Q2FsbEZyYW1lLnR5cGVBY2Nlc3Nv
ckdldHRlcigpIik7Ci0gICAgcmV0dXJuIHY4U3RyaW5nKCJmdW5jdGlvbiIpOworICAgIHJldHVy
biB2OFN0cmluZygiZnVuY3Rpb24iLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCBmNDAzNDRiY2M4ZTQ2MTBlM2U1MWU4YTVm
NjNmMTQzZTAwMDdmMDJhLi4yMTFmYzcxYTMwZjNmNDJhYjJkY2I1ZjAwM2U4MjRmYmQyZDMxMTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlv
bkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9j
YXRpb25DdXN0b20uY3BwCkBAIC0yNTUsNyArMjU1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4TG9jYXRpb246OnRvU3RyaW5nQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
ICAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0
ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIHRydWUpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwogICAgIFN0cmluZyByZXN1bHQgPSBpbXAtPmhyZWYoKTsKLSAgICByZXR1cm4gdjhT
dHJpbmcocmVzdWx0KTsKKyAgICByZXR1cm4gdjhTdHJpbmcocmVzdWx0LCBhcmdzLkdldElzb2xh
dGUoKSk7CiB9CiAKIGJvb2wgVjhMb2NhdGlvbjo6aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSB0eXBl
LCB2ODo6TG9jYWw8djg6OlZhbHVlPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFNRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAK
aW5kZXggNjQ3OGJhMzdlMmRiMTc4MTEzNjQ4YzdjYjE1YjI3ZjlhYzBmZjM5Zi4uNzQzOTU2OTU4
MWViMWI3ODc1YWJmOGJlODhkMWUyZGMzOWE5NmZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMUmVzdWx0U2V0Um93TGlz
dEN1c3RvbS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FM
UmVzdWx0U2V0Um93TGlzdDo6aXRlbUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGEKICAg
ICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlOwogICAgICAgICBzd2l0Y2goc3FsVmFs
dWUudHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIFNRTFZhbHVlOjpTdHJpbmdWYWx1ZToKLSAg
ICAgICAgICAgICAgICB2YWx1ZSA9IHY4U3RyaW5nKHNxbFZhbHVlLnN0cmluZygpKTsKKyAgICAg
ICAgICAgICAgICB2YWx1ZSA9IHY4U3RyaW5nKHNxbFZhbHVlLnN0cmluZygpLCBhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFNRTFZh
bHVlOjpOdWxsVmFsdWU6CiAgICAgICAgICAgICAgICAgdmFsdWUgPSB2ODo6TnVsbChhcmdzLkdl
dElzb2xhdGUoKSk7CkBAIC03Niw3ICs3Niw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFNR
TFJlc3VsdFNldFJvd0xpc3Q6Oml0ZW1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhCiAg
ICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpdGVtLT5TZXQodjhTdHJpbmcocm93TGlzdC0+Y29sdW1uTmFtZXMoKVtpXSksIHZhbHVlLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpEb250RGVsZXRlfHY4OjpSZWFk
T25seSkpOworICAgICAgICBpdGVtLT5TZXQodjhTdHJpbmcocm93TGlzdC0+Y29sdW1uTmFtZXMo
KVtpXSwgYXJncy5HZXRJc29sYXRlKCkpLCB2YWx1ZSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6RG9udERlbGV0ZSB8IHY4OjpSZWFkT25seSkpOwogICAgIH0KIAogICAg
IHJldHVybiBpdGVtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4U3RvcmFnZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhTdG9yYWdlQ3VzdG9tLmNwcAppbmRleCBmNTI1N2I5YTkyZDRlZWM1MTc1ZGE4M2QxMGI4
ZTM5NTRlNjM5NjYyLi5kZDBiMzQwOGE2ZjdlN2RhMDY4OTUyYjY0ZmRmYmY2ZjJjNDhhMzk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdl
Q3VzdG9tLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2ODo6SGFuZGxlPHY4OjpBcnJheT4gVjhTdG9y
YWdlOjpuYW1lZFByb3BlcnR5RW51bWVyYXRvcihjb25zdCB2ODo6QWNjZXNzb3JJbmZvJgogICAg
ICAgICBTdHJpbmcga2V5ID0gc3RvcmFnZS0+a2V5KGkpOwogICAgICAgICBBU1NFUlQoIWtleS5p
c051bGwoKSk7CiAgICAgICAgIFN0cmluZyB2YWwgPSBzdG9yYWdlLT5nZXRJdGVtKGtleSk7Ci0g
ICAgICAgIHByb3BlcnRpZXMtPlNldCh2ODo6SW50ZWdlcjo6TmV3KGkpLCB2OFN0cmluZyhrZXkp
KTsKKyAgICAgICAgcHJvcGVydGllcy0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaSksIHY4U3RyaW5n
KGtleSwgaW5mby5HZXRJc29sYXRlKCkpKTsKICAgICB9CiAKICAgICByZXR1cm4gcHJvcGVydGll
czsKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdG9yYWdl
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiB2OE5hbWUsIGNvbnN0IHYKICAgICBTdHJpbmcg
bmFtZSA9IHRvV2ViQ29yZVN0cmluZyh2OE5hbWUpOwogCiAgICAgaWYgKG5hbWUgIT0gImxlbmd0
aCIgJiYgc3RvcmFnZS0+Y29udGFpbnMobmFtZSkpCi0gICAgICAgIHJldHVybiB2OFN0cmluZyhz
dG9yYWdlLT5nZXRJdGVtKG5hbWUpKTsKKyAgICAgICAgcmV0dXJuIHY4U3RyaW5nKHN0b3JhZ2Ut
PmdldEl0ZW0obmFtZSksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIAogICAgIHJldHVybiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCA1ODdmZTNl
MjNjM2VjOTE2Y2ZhMzI0ZmIzNDY5YzZlYTc2YmI2YTQ5Li5iNTQxNGI4YWI1ZDQ3MTQ3OWMwMTgx
Y2Y5NjhlNmMzN2VhZTk2ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC01Nyw3ICs1
Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRl
eHRBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6CiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0ID0g
eG1sSHR0cFJlcXVlc3QtPnJlc3BvbnNlVGV4dChlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcihlYywgaW5mby5HZXRJc29sYXRlKCkpOwotICAgIHJldHVybiB2OFN0
cmluZyh0ZXh0KTsKKyAgICByZXR1cm4gdjhTdHJpbmcodGV4dCwgaW5mby5HZXRJc29sYXRlKCkp
OwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VB
Y2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vz
c29ySW5mbyYgaW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKaW5kZXggZTlmOTUxNzU0Yjg4YTcx
NDA2YjkzNmYwMjkxYzEwNmI5YThjODUzYy4uM2RjOWVmNTcwZjZkYjBjMTExNmY4MDE2ZmQ4YzMx
MzFlMTQ2ZjY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4WFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYU0xUUHJvY2Vzc29yOjpnZXRQYXJhbWV0ZXJDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIGlmIChyZXN1bHQuaXNOdWxsKCkpCiAgICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKLSAgICByZXR1cm4gdjhTdHJpbmcocmVzdWx0KTsK
KyAgICByZXR1cm4gdjhTdHJpbmcocmVzdWx0LCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlckNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>