<?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>109638</bug_id>
          
          <creation_ts>2013-02-12 17:27:16 -0800</creation_ts>
          <short_desc>Fix HTMLToken::Attribute member naming and update callsites to use Vector-based String functions</short_desc>
          <delta_ts>2013-02-13 22:17:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          <dependson>109617</dependson>
          <blocked>109784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>msaboff</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>831461</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-12 17:27:16 -0800</bug_when>
    <thetext>Fix HTMLToken::Attribute member naming and update callsites to use Vector-based String functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831462</commentid>
    <comment_count>1</comment_count>
      <attachid>187974</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-12 17:29:16 -0800</bug_when>
    <thetext>Created attachment 187974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831564</commentid>
    <comment_count>2</comment_count>
      <attachid>187974</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 20:26:09 -0800</bug_when>
    <thetext>Comment on attachment 187974
Patch

Clearing flags on attachment: 187974

Committed r142712: &lt;http://trac.webkit.org/changeset/142712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831565</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 20:26:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832725</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-13 21:59:54 -0800</bug_when>
    <thetext>I&apos;ve since learned/re-learned that this is a change in behavior.

Previously String(UChar*, length) will treat length=0 as the empty string.

String(Vector) treats vector.size() == 0 as the null string.

This patch may need to be amended.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187974</attachid>
            <date>2013-02-12 17:29:16 -0800</date>
            <delta_ts>2013-02-12 20:26:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109638-20130212172546.patch</filename>
            <type>text/plain</type>
            <size>27880</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBhMGYxNWVhMmU2YTE3
N2Q3MzI1OGI1ZDVkZDA0MDQ1MzEwMjEwNi4uNTg3YWRmNDc1N2JkOGNjNWI2NDc2MTQyMzVmNDJh
Y2IxOWQyNTg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEzLTAyLTEyICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggSFRNTFRva2VuOjpBdHRy
aWJ1dGUgbWVtYmVyIG5hbWluZyBhbmQgdXBkYXRlIGNhbGxzaXRlcyB0byB1c2UgVmVjdG9yLWJh
c2VkIFN0cmluZyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTYzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERhcmluIEFkbGVyIG5vdGVkIGluOgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA4I2M0CisgICAgICAgIHRoYXQgSFRNTFRv
a2VuOjpBdHRyaWJ1dGUgKHRoZW4gTWFya3VwVG9rZW5CYXNlOjpBdHRyaWJ1dGUpCisgICAgICAg
IHdhcyBhIHN0cnVjdCwgeWV0IGluY29ycmVjdGx5IHVzZWQgbV8gZm9yIGl0cyBwdWJsaWMgbWVt
YmVycy4KKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBtZW1iZXJzIHRvIG5vdCBoYXZl
IHRoZSBtXywgYW5kIHNpbmNlIEkgd2FzCisgICAgICAgIHRvdWNoaW5nIGFsbCBjYWxsZXJzLCBJ
IGFsc28gdXBkYXRlZCBhbGwgY2FsbGVycyB0byB1c2UgbW9kZXJuCisgICAgICAgIFZlY3Rvci1i
YXNlZCBTdHJpbmcgY3JlYXRpb24vYXBwZW5kIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIG1hbnVhbGx5
CisgICAgICAgIGNhbGxpbmcgVUNoYXIqLCBzaXplX3QgdmVyc2lvbnMuCisKKyAgICAgICAgVGhl
cmUgc2hvdWxkIGJlIG5vIGJlaGF2aW9yIGNoYW5nZSB0byB0aGlzIHBhdGNoLiAgV2hlcmUgSSBz
YXcKKyAgICAgICAgcGVyZm9ybWFuY2UvbWVtb3J5IGJ1Z3MsIEkgbm90ZWQgdGhlbSB3aXRoIEZJ
WE1FcyB0byBrZWVwCisgICAgICAgIHRoaXMgY2hhbmdlIHNpbXBsZS4KKworICAgICAgICAqIGh0
bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmll
d1NvdXJjZURvY3VtZW50Ojpwcm9jZXNzVGFnVG9rZW4pOgorICAgICAgICAqIGh0bWwvcGFyc2Vy
L0F0b21pY0hUTUxUb2tlbi5oOgorICAgICAgICAoV2ViQ29yZTo6QXRvbWljSFRNTFRva2VuOjpw
dWJsaWNJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF0b21pY0hUTUxUb2tlbjo6c3lz
dGVtSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNIVE1MVG9rZW46OkF0b21p
Y0hUTUxUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNIVE1MVG9rZW46OmluaXRpYWxp
emVBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBhY3RIVE1MVG9rZW46OkNvbXBhY3RIVE1MVG9rZW4p
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWV0YUNoYXJzZXRQYXJzZXI6OnByb2Nlc3NNZXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZXRhQ2hhcnNldFBhcnNlcjo6Y2hlY2tGb3JNZXRhQ2hhcnNldCk6
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0YXJ0VGFnU2Nhbm5lcjo6cHJvY2Vzc0F0dHJpYnV0ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFByZWxvYWRTY2FubmVyOjpzY2FuKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Bvc3NpYmxlQmFzZVRhZyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NUb2tlbik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTFRva2VuLmg6CisgICAgICAgIChSYW5nZSk6CisgICAgICAgIChBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuOjpjbGVhcik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVG9rZW46OnN0YXJ0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuOjpl
bmRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVG9rZW46Om5hbWVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRv
a2VuOjphZGROZXdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuOjpiZWdp
bkF0dHJpYnV0ZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuOjplbmRBdHRyaWJ1
dGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6YmVnaW5BdHRyaWJ1dGVWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmVuZEF0dHJpYnV0ZVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6YXBwZW5kVG9BdHRyaWJ1dGVOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6YXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVG9rZW46OmVyYXNlVmFsdWVPZkF0dHJpYnV0ZSk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdG9taWNI
VE1MVG9rZW46Om5hbWVGb3JBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxW
aWV3U291cmNlUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWV3U291cmNlUGFy
c2VyOjp1cGRhdGVUb2tlbml6ZXJTdGF0ZSk6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVk
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5kQXR0cmlidXRlV2l0aE5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyUGFyYW1Ub2tlbik6CisgICAgICAgIChX
ZWJDb3JlOjpYU1NBdWRpdG9yOjplcmFzZURhbmdlcm91c0F0dHJpYnV0ZXNJZkluamVjdGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmVyYXNlQXR0cmlidXRlSWZJbmplY3RlZCk6
CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpkZWNvZGVkU25pcHBldEZvckF0dHJpYnV0
ZSk6CisKIDIwMTMtMDItMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgQ3Jhc2ggd2hlbiBzY3JvbGxpbmcgc29vbiBhZnRlciBwYWdlIHN0YXJ0cyBs
b2FkaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNw
cAppbmRleCBiN2ZkYjM2Y2JjOTUzNzRhYWE4MGI1MzAwZDliZTNkYWIwNDk2MzI2Li42OTQ4MDMx
Y2EwN2U5MGQyNzBlZGYwOTJjNjBiMzVhY2IxNWExYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lk
IEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OnByb2Nlc3NUYWdUb2tlbihjb25zdCBTdHJpbmcmIHNv
dXJjZSwgSFRNTFRva2VuJiB0bwogewogICAgIG1fY3VycmVudCA9IGFkZFNwYW5XaXRoQ2xhc3NO
YW1lKCJ3ZWJraXQtaHRtbC10YWciKTsKIAotICAgIEF0b21pY1N0cmluZyB0YWdOYW1lKHRva2Vu
Lm5hbWUoKS5kYXRhKCksIHRva2VuLm5hbWUoKS5zaXplKCkpOworICAgIEF0b21pY1N0cmluZyB0
YWdOYW1lKHRva2VuLm5hbWUoKSk7CiAKICAgICB1bnNpZ25lZCBpbmRleCA9IDA7CiAgICAgSFRN
TFRva2VuOjpBdHRyaWJ1dGVMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gdG9rZW4uYXR0cmli
dXRlcygpLmJlZ2luKCk7CkBAIC0xNDcsMTkgKzE0NywxOSBAQCB2b2lkIEhUTUxWaWV3U291cmNl
RG9jdW1lbnQ6OnByb2Nlc3NUYWdUb2tlbihjb25zdCBTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2Vu
JiB0bwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBBdG9taWNTdHJp
bmcgbmFtZShpdGVyLT5tX25hbWUuZGF0YSgpLCBpdGVyLT5tX25hbWUuc2l6ZSgpKTsKLSAgICAg
ICAgU3RyaW5nIHZhbHVlID0gU3RyaW5nSW1wbDo6Y3JlYXRlOEJpdElmUG9zc2libGUoaXRlci0+
bV92YWx1ZS5kYXRhKCksIGl0ZXItPm1fdmFsdWUuc2l6ZSgpKTsgCisgICAgICAgIEF0b21pY1N0
cmluZyBuYW1lKGl0ZXItPm5hbWUpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSBTdHJpbmdJbXBs
OjpjcmVhdGU4Qml0SWZQb3NzaWJsZShpdGVyLT52YWx1ZSk7CiAKLSAgICAgICAgaW5kZXggPSBh
ZGRSYW5nZShzb3VyY2UsIGluZGV4LCBpdGVyLT5tX25hbWVSYW5nZS5tX3N0YXJ0IC0gdG9rZW4u
c3RhcnRJbmRleCgpLCAiIik7Ci0gICAgICAgIGluZGV4ID0gYWRkUmFuZ2Uoc291cmNlLCBpbmRl
eCwgaXRlci0+bV9uYW1lUmFuZ2UubV9lbmQgLSB0b2tlbi5zdGFydEluZGV4KCksICJ3ZWJraXQt
aHRtbC1hdHRyaWJ1dGUtbmFtZSIpOworICAgICAgICBpbmRleCA9IGFkZFJhbmdlKHNvdXJjZSwg
aW5kZXgsIGl0ZXItPm5hbWVSYW5nZS5zdGFydCAtIHRva2VuLnN0YXJ0SW5kZXgoKSwgIiIpOwor
ICAgICAgICBpbmRleCA9IGFkZFJhbmdlKHNvdXJjZSwgaW5kZXgsIGl0ZXItPm5hbWVSYW5nZS5l
bmQgLSB0b2tlbi5zdGFydEluZGV4KCksICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSIpOwog
CiAgICAgICAgIGlmICh0YWdOYW1lID09IGJhc2VUYWcgJiYgbmFtZSA9PSBocmVmQXR0cikKICAg
ICAgICAgICAgIG1fY3VycmVudCA9IGFkZEJhc2UodmFsdWUpOwogCi0gICAgICAgIGluZGV4ID0g
YWRkUmFuZ2Uoc291cmNlLCBpbmRleCwgaXRlci0+bV92YWx1ZVJhbmdlLm1fc3RhcnQgLSB0b2tl
bi5zdGFydEluZGV4KCksICIiKTsKKyAgICAgICAgaW5kZXggPSBhZGRSYW5nZShzb3VyY2UsIGlu
ZGV4LCBpdGVyLT52YWx1ZVJhbmdlLnN0YXJ0IC0gdG9rZW4uc3RhcnRJbmRleCgpLCAiIik7CiAK
ICAgICAgICAgYm9vbCBpc0xpbmsgPSBuYW1lID09IHNyY0F0dHIgfHwgbmFtZSA9PSBocmVmQXR0
cjsKLSAgICAgICAgaW5kZXggPSBhZGRSYW5nZShzb3VyY2UsIGluZGV4LCBpdGVyLT5tX3ZhbHVl
UmFuZ2UubV9lbmQgLSB0b2tlbi5zdGFydEluZGV4KCksICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUt
dmFsdWUiLCBpc0xpbmssIHRhZ05hbWUgPT0gYVRhZywgdmFsdWUpOworICAgICAgICBpbmRleCA9
IGFkZFJhbmdlKHNvdXJjZSwgaW5kZXgsIGl0ZXItPnZhbHVlUmFuZ2UuZW5kIC0gdG9rZW4uc3Rh
cnRJbmRleCgpLCAid2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIiwgaXNMaW5rLCB0YWdOYW1l
ID09IGFUYWcsIHZhbHVlKTsKIAogICAgICAgICArK2l0ZXI7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQXRvbWljSFRNTFRva2VuLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9BdG9taWNIVE1MVG9rZW4uaAppbmRleCA2ZDAzNzIxN2ViMDQzMjhj
MzgzNThkM2VhNTdkODU5M2UyNzk3NTQ2Li4wODQ5MWUzNWFhYjEzMWNlNTc3YjdmYzI1MGNkNGI0
YzgwNjA4NTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9BdG9taWNI
VE1MVG9rZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9BdG9taWNIVE1MVG9r
ZW4uaApAQCAtMTI0LDE0ICsxMjQsMTQgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIEZJWE1F
OiBEaXN0aW5ndWlzaCBiZXR3ZWVuIGEgbWlzc2luZyBwdWJsaWMgaWRlbnRpZmVyIGFuZCBhbiBl
bXB0eSBvbmUuCi0gICAgV1RGOjpWZWN0b3I8VUNoYXI+JiBwdWJsaWNJZGVudGlmaWVyKCkgY29u
c3QKKyAgICBWZWN0b3I8VUNoYXI+JiBwdWJsaWNJZGVudGlmaWVyKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gSFRNTFRva2VuOjpET0NUWVBFKTsKICAgICAgICAgcmV0
dXJuIG1fZG9jdHlwZURhdGEtPm1fcHVibGljSWRlbnRpZmllcjsKICAgICB9CiAKICAgICAvLyBG
SVhNRTogRGlzdGluZ3Vpc2ggYmV0d2VlbiBhIG1pc3Npbmcgc3lzdGVtIGlkZW50aWZlciBhbmQg
YW4gZW1wdHkgb25lLgotICAgIFdURjo6VmVjdG9yPFVDaGFyPiYgc3lzdGVtSWRlbnRpZmllcigp
IGNvbnN0CisgICAgVmVjdG9yPFVDaGFyPiYgc3lzdGVtSWRlbnRpZmllcigpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV90eXBlID09IEhUTUxUb2tlbjo6RE9DVFlQRSk7CiAgICAgICAg
IHJldHVybiBtX2RvY3R5cGVEYXRhLT5tX3N5c3RlbUlkZW50aWZpZXI7CkBAIC0xNTMsNyArMTUz
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSFRNTFRva2VuOjpET0NUWVBFOgotICAgICAgICAg
ICAgbV9uYW1lID0gQXRvbWljU3RyaW5nKHRva2VuLm5hbWVTdHJpbmcoKSk7CisgICAgICAgICAg
ICBtX25hbWUgPSBBdG9taWNTdHJpbmcodG9rZW4ubmFtZVN0cmluZygpKTsgLy8gRklYTUU6IFNo
b3VsZCBiZSBBdG9taWNTdHJpbmcodG9rZW4ubmFtZSgpKSB0byBhdm9pZCBtYWxsb2NpbmcgZXZl
cnkgdGltZS4KICAgICAgICAgICAgIG1fZG9jdHlwZURhdGEgPSB0b2tlbi5yZWxlYXNlRG9jdHlw
ZURhdGEoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEhUTUxUb2tlbjo6RW5k
T2ZGaWxlOgpAQCAtMTYxLDE1ICsxNjEsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBIVE1M
VG9rZW46OlN0YXJ0VGFnOgogICAgICAgICBjYXNlIEhUTUxUb2tlbjo6RW5kVGFnOiB7CiAgICAg
ICAgICAgICBtX3NlbGZDbG9zaW5nID0gdG9rZW4uc2VsZkNsb3NpbmcoKTsKLSAgICAgICAgICAg
IG1fbmFtZSA9IEF0b21pY1N0cmluZyh0b2tlbi5uYW1lU3RyaW5nKCkpOworICAgICAgICAgICAg
bV9uYW1lID0gQXRvbWljU3RyaW5nKHRva2VuLm5hbWVTdHJpbmcoKSk7IC8vIEZJWE1FOiBTaG91
bGQgYmUgQXRvbWljU3RyaW5nKHRva2VuLm5hbWUoKSkgdG8gYXZvaWQgbWFsbG9jaW5nIGV2ZXJ5
IHRpbWUuCiAgICAgICAgICAgICBpbml0aWFsaXplQXR0cmlidXRlcyh0b2tlbi5hdHRyaWJ1dGVz
KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBIVE1MVG9r
ZW46OkNvbW1lbnQ6CiAgICAgICAgICAgICBpZiAodG9rZW4uaXNBbGw4Qml0RGF0YSgpKQotICAg
ICAgICAgICAgICAgIG1fZGF0YSA9IFN0cmluZzo6bWFrZThCaXRGcm9tMTZCaXRTb3VyY2UodG9r
ZW4uY29tbWVudCgpLmRhdGEoKSwgdG9rZW4uY29tbWVudCgpLnNpemUoKSk7CisgICAgICAgICAg
ICAgICAgbV9kYXRhID0gU3RyaW5nOjptYWtlOEJpdEZyb20xNkJpdFNvdXJjZSh0b2tlbi5jb21t
ZW50KCkpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fZGF0YSA9IFN0cmlu
Zyh0b2tlbi5jb21tZW50KCkuZGF0YSgpLCB0b2tlbi5jb21tZW50KCkuc2l6ZSgpKTsKKyAgICAg
ICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4uY29tbWVudCgpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIEhUTUxUb2tlbjo6Q2hhcmFjdGVyOgogICAgICAgICAgICAg
bV9leHRlcm5hbENoYXJhY3RlcnMgPSB0b2tlbi5jaGFyYWN0ZXJzKCkuZGF0YSgpOwpAQCAtMTky
LDkgKzE5Miw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX25hbWUgPSB0b2tlbi5kYXRhKCk7
CiAgICAgICAgICAgICBtX2RvY3R5cGVEYXRhID0gYWRvcHRQdHIobmV3IERvY3R5cGVEYXRhKCkp
OwogICAgICAgICAgICAgbV9kb2N0eXBlRGF0YS0+bV9oYXNQdWJsaWNJZGVudGlmaWVyID0gdHJ1
ZTsKLSAgICAgICAgICAgIG1fZG9jdHlwZURhdGEtPm1fcHVibGljSWRlbnRpZmllci5hcHBlbmQo
dG9rZW4ucHVibGljSWRlbnRpZmllcigpLmNoYXJhY3RlcnMoKSwgdG9rZW4ucHVibGljSWRlbnRp
ZmllcigpLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGFwcGVuZChtX2RvY3R5cGVEYXRhLT5tX3B1
YmxpY0lkZW50aWZpZXIsIHRva2VuLnB1YmxpY0lkZW50aWZpZXIoKSk7CiAgICAgICAgICAgICBt
X2RvY3R5cGVEYXRhLT5tX2hhc1N5c3RlbUlkZW50aWZpZXIgPSB0cnVlOwotICAgICAgICAgICAg
bV9kb2N0eXBlRGF0YS0+bV9zeXN0ZW1JZGVudGlmaWVyLmFwcGVuZCh0b2tlbi5zeXN0ZW1JZGVu
dGlmaWVyKCkuY2hhcmFjdGVycygpLCB0b2tlbi5zeXN0ZW1JZGVudGlmaWVyKCkubGVuZ3RoKCkp
OworICAgICAgICAgICAgYXBwZW5kKG1fZG9jdHlwZURhdGEtPm1fc3lzdGVtSWRlbnRpZmllciwg
dG9rZW4uc3lzdGVtSWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIG1fZG9jdHlwZURhdGEtPm1f
Zm9yY2VRdWlya3MgPSB0b2tlbi5kb2N0eXBlRm9yY2VzUXVpcmtzKCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBIVE1MVG9rZW46OkVuZE9mRmlsZToKQEAgLTIwNiw3ICsyMDYs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIQogICAgICAgICBjYXNl
IEhUTUxUb2tlbjo6RW5kVGFnOgogICAgICAgICAgICAgbV9zZWxmQ2xvc2luZyA9IHRva2VuLnNl
bGZDbG9zaW5nKCk7Ci0gICAgICAgICAgICBtX25hbWUgPSBBdG9taWNTdHJpbmcodG9rZW4uZGF0
YSgpKTsKKyAgICAgICAgICAgIG1fbmFtZSA9IHRva2VuLmRhdGEoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEhUTUxUb2tlbjo6Q29tbWVudDoKICAgICAgICAgICAgIG1fZGF0
YSA9IHRva2VuLmRhdGEoKTsKQEAgLTI4OCwxNyArMjg4LDE3IEBAIGlubGluZSB2b2lkIEF0b21p
Y0hUTUxUb2tlbjo6aW5pdGlhbGl6ZUF0dHJpYnV0ZXMoY29uc3QgSFRNTFRva2VuOjpBdHRyaWJ1
dGVMaXN0CiAgICAgbV9hdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgY29uc3QgSFRN
TFRva2VuOjpBdHRyaWJ1dGUmIGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbaV07Ci0gICAgICAgIGlm
IChhdHRyaWJ1dGUubV9uYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKGF0dHJpYnV0ZS5uYW1l
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgYmUgYWJsZSB0byBhZGQgdGhlIGZvbGxvd2luZyBBU1NFUlQgb25jZSB3ZSBmaXgK
ICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTcx
Ci0gICAgICAgIC8vICAgQVNTRVJUKGF0dHJpYnV0ZS5tX25hbWVSYW5nZS5tX3N0YXJ0KTsKLSAg
ICAgICAgQVNTRVJUKGF0dHJpYnV0ZS5tX25hbWVSYW5nZS5tX2VuZCk7Ci0gICAgICAgIEFTU0VS
VChhdHRyaWJ1dGUubV92YWx1ZVJhbmdlLm1fc3RhcnQpOwotICAgICAgICBBU1NFUlQoYXR0cmli
dXRlLm1fdmFsdWVSYW5nZS5tX2VuZCk7CisgICAgICAgIC8vICAgQVNTRVJUKGF0dHJpYnV0ZS5u
YW1lUmFuZ2Uuc3RhcnQpOworICAgICAgICBBU1NFUlQoYXR0cmlidXRlLm5hbWVSYW5nZS5lbmQp
OworICAgICAgICBBU1NFUlQoYXR0cmlidXRlLnZhbHVlUmFuZ2Uuc3RhcnQpOworICAgICAgICBB
U1NFUlQoYXR0cmlidXRlLnZhbHVlUmFuZ2UuZW5kKTsKIAotICAgICAgICBBdG9taWNTdHJpbmcg
dmFsdWUoYXR0cmlidXRlLm1fdmFsdWUuZGF0YSgpLCBhdHRyaWJ1dGUubV92YWx1ZS5zaXplKCkp
OworICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWUoYXR0cmlidXRlLnZhbHVlKTsKICAgICAgICAg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSA9IG5hbWVGb3JBdHRyaWJ1dGUoYXR0cmlidXRlKTsK
ICAgICAgICAgaWYgKCFmaW5kQXR0cmlidXRlSW5WZWN0b3IobV9hdHRyaWJ1dGVzLCBuYW1lKSkK
ICAgICAgICAgICAgIG1fYXR0cmlidXRlcy5hcHBlbmQoQXR0cmlidXRlKG5hbWUsIHZhbHVlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2Vu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwCmlu
ZGV4IDE2ODkxMzIxM2I0YjQ2MjlkMTRkZDQ1NDY0NWU5ZWEyNzQ3NGI1NGUuLjljNjdmZjBhYTg1
OTljYWQ3OTlmOTI3MDJmNWRhZjcwOTk3MWY1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwCkBAIC01NSwxMiArNTUsMTAgQEAgQ29tcGFj
dEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tlbihjb25zdCBIVE1MVG9rZW4qIHRva2VuLCBjb25z
dCBUZXh0UG9zaXRpb24mIHQKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgSFRNTFRva2VuOjpET0NUWVBFOiB7Ci0gICAgICAgIG1fZGF0YSA9
IFN0cmluZyh0b2tlbi0+bmFtZSgpLmRhdGEoKSwgdG9rZW4tPm5hbWUoKS5zaXplKCkpOworICAg
ICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4tPm5hbWUoKSk7CiAgICAgICAgIC8vIFRoZXJlIGlz
IG9ubHkgMSBET0NUWVBFIHRva2VuIHBlciBkb2N1bWVudCwgc28gdG8gYXZvaWQgaW5jcmVhc2lu
ZyB0aGUKICAgICAgICAgLy8gc2l6ZSBvZiBDb21wYWN0SFRNTFRva2VuLCB3ZSBqdXN0IHVzZSB0
aGUgbV9hdHRyaWJ1dGVzIHZlY3Rvci4KLSAgICAgICAgU3RyaW5nIHB1YmxpY0lkZW50aWZpZXIo
dG9rZW4tPnB1YmxpY0lkZW50aWZpZXIoKS5kYXRhKCksIHRva2VuLT5wdWJsaWNJZGVudGlmaWVy
KCkuc2l6ZSgpKTsKLSAgICAgICAgU3RyaW5nIHN5c3RlbUlkZW50aWZpZXIodG9rZW4tPnN5c3Rl
bUlkZW50aWZpZXIoKS5kYXRhKCksIHRva2VuLT5zeXN0ZW1JZGVudGlmaWVyKCkuc2l6ZSgpKTsK
LSAgICAgICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChDb21wYWN0QXR0cmlidXRlKHB1YmxpY0lkZW50
aWZpZXIsIHN5c3RlbUlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChD
b21wYWN0QXR0cmlidXRlKFN0cmluZyh0b2tlbi0+cHVibGljSWRlbnRpZmllcigpKSwgU3RyaW5n
KHRva2VuLT5zeXN0ZW1JZGVudGlmaWVyKCkpKSk7CiAgICAgICAgIG1fZG9jdHlwZUZvcmNlc1F1
aXJrcyA9IHRva2VuLT5mb3JjZVF1aXJrcygpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC02
OCw4ICs2Niw5IEBAIENvbXBhY3RIVE1MVG9rZW46OkNvbXBhY3RIVE1MVG9rZW4oY29uc3QgSFRN
TFRva2VuKiB0b2tlbiwgY29uc3QgVGV4dFBvc2l0aW9uJiB0CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSFRNTFRva2VuOjpTdGFydFRhZzoKICAgICAgICAgbV9hdHRyaWJ1dGVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkodG9rZW4tPmF0dHJpYnV0ZXMoKS5zaXplKCkpOworICAgICAgICAvLyBG
SVhNRTogQXR0cmlidXRlIG5hbWVzIGFuZCB2YWx1ZXMgc2hvdWxkIGJlIDhiaXQgd2hlbiBwb3Nz
aWJsZS4KICAgICAgICAgZm9yIChWZWN0b3I8SFRNTFRva2VuOjpBdHRyaWJ1dGU+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IHRva2VuLT5hdHRyaWJ1dGVzKCkuYmVnaW4oKTsgaXQgIT0gdG9rZW4tPmF0
dHJpYnV0ZXMoKS5lbmQoKTsgKytpdCkKLSAgICAgICAgICAgIG1fYXR0cmlidXRlcy5hcHBlbmQo
Q29tcGFjdEF0dHJpYnV0ZShTdHJpbmcoaXQtPm1fbmFtZS5kYXRhKCksIGl0LT5tX25hbWUuc2l6
ZSgpKSwgU3RyaW5nKGl0LT5tX3ZhbHVlLmRhdGEoKSwgaXQtPm1fdmFsdWUuc2l6ZSgpKSkpOwor
ICAgICAgICAgICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChDb21wYWN0QXR0cmlidXRlKFN0cmluZyhp
dC0+bmFtZSksIFN0cmluZyhpdC0+dmFsdWUpKSk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCEK
ICAgICBjYXNlIEhUTUxUb2tlbjo6RW5kVGFnOgogICAgICAgICBtX3NlbGZDbG9zaW5nID0gdG9r
ZW4tPnNlbGZDbG9zaW5nKCk7CkBAIC03NywxMCArNzYsMTAgQEAgQ29tcGFjdEhUTUxUb2tlbjo6
Q29tcGFjdEhUTUxUb2tlbihjb25zdCBIVE1MVG9rZW4qIHRva2VuLCBjb25zdCBUZXh0UG9zaXRp
b24mIHQKICAgICBjYXNlIEhUTUxUb2tlbjo6Q29tbWVudDoKICAgICBjYXNlIEhUTUxUb2tlbjo6
Q2hhcmFjdGVyOgogICAgICAgICBpZiAodG9rZW4tPmlzQWxsOEJpdERhdGEoKSkgewotICAgICAg
ICAgICAgbV9kYXRhID0gU3RyaW5nOjptYWtlOEJpdEZyb20xNkJpdFNvdXJjZSh0b2tlbi0+ZGF0
YSgpLmRhdGEoKSwgdG9rZW4tPmRhdGEoKS5zaXplKCkpOworICAgICAgICAgICAgbV9kYXRhID0g
U3RyaW5nOjptYWtlOEJpdEZyb20xNkJpdFNvdXJjZSh0b2tlbi0+ZGF0YSgpKTsKICAgICAgICAg
ICAgIG1faXNBbGw4Qml0RGF0YSA9IHRydWU7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
bV9kYXRhID0gU3RyaW5nKHRva2VuLT5kYXRhKCkuZGF0YSgpLCB0b2tlbi0+ZGF0YSgpLnNpemUo
KSk7CisgICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4tPmRhdGEoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxNZXRhQ2hhcnNldFBhcnNlci5j
cHAKaW5kZXggNzBjY2Q1ODBjMjQwOWU5NzY3M2I0NDllNzE2MzUyNWUzYmI4MTJmZi4uZDQzYjll
YTViOTE2NjYwNmNjMzY3YjNkNGIwZTI4YjFlYzE5OWZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwCkBAIC0xMDYsOCAr
MTA2LDggQEAgYm9vbCBIVE1MTWV0YUNoYXJzZXRQYXJzZXI6OnByb2Nlc3NNZXRhKCkKICAgICBj
b25zdCBIVE1MVG9rZW46OkF0dHJpYnV0ZUxpc3QmIHRva2VuQXR0cmlidXRlcyA9IG1fdG9rZW4u
YXR0cmlidXRlcygpOwogICAgIEF0dHJpYnV0ZUxpc3QgYXR0cmlidXRlczsKICAgICBmb3IgKEhU
TUxUb2tlbjo6QXR0cmlidXRlTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHRva2VuQXR0cmli
dXRlcy5iZWdpbigpOyBpdGVyICE9IHRva2VuQXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKSB7Ci0g
ICAgICAgIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gU3RyaW5nSW1wbDo6Y3JlYXRlOEJpdElmUG9z
c2libGUoaXRlci0+bV9uYW1lLmRhdGEoKSwgaXRlci0+bV9uYW1lLnNpemUoKSk7Ci0gICAgICAg
IFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSA9IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlBvc3NpYmxl
KGl0ZXItPm1fdmFsdWUuZGF0YSgpLCBpdGVyLT5tX3ZhbHVlLnNpemUoKSk7CisgICAgICAgIFN0
cmluZyBhdHRyaWJ1dGVOYW1lID0gU3RyaW5nSW1wbDo6Y3JlYXRlOEJpdElmUG9zc2libGUoaXRl
ci0+bmFtZSk7CisgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSA9IFN0cmluZ0ltcGw6OmNy
ZWF0ZThCaXRJZlBvc3NpYmxlKGl0ZXItPnZhbHVlKTsKICAgICAgICAgYXR0cmlidXRlcy5hcHBl
bmQoc3RkOjptYWtlX3BhaXIoYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUpKTsKICAgICB9
CiAKQEAgLTE3OCw3ICsxNzgsNyBAQCBib29sIEhUTUxNZXRhQ2hhcnNldFBhcnNlcjo6Y2hlY2tG
b3JNZXRhQ2hhcnNldChjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogICAgIHdoaWxl
IChtX3Rva2VuaXplci0+bmV4dFRva2VuKG1faW5wdXQsIG1fdG9rZW4pKSB7CiAgICAgICAgIGJv
b2wgZW5kID0gbV90b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpFbmRUYWc7CiAgICAgICAgIGlm
IChlbmQgfHwgbV90b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpTdGFydFRhZykgewotICAgICAg
ICAgICAgQXRvbWljU3RyaW5nIHRhZ05hbWUobV90b2tlbi5uYW1lKCkuZGF0YSgpLCBtX3Rva2Vu
Lm5hbWUoKS5zaXplKCkpOworICAgICAgICAgICAgQXRvbWljU3RyaW5nIHRhZ05hbWUobV90b2tl
bi5uYW1lKCkpOwogICAgICAgICAgICAgaWYgKCFlbmQpIHsKICAgICAgICAgICAgICAgICBtX3Rv
a2VuaXplci0+dXBkYXRlU3RhdGVGb3IodGFnTmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKHRh
Z05hbWUgPT0gbWV0YVRhZyAmJiBwcm9jZXNzTWV0YSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwYzdjYTMzZWZjOTEx
OTBlOWU4NzgyYmY1MWMyNzIxMTIyYjdjZjI0Li5jZjlhZjJmMDQ5M2E1NmY0MmZmOWMzZjU2NzUw
YmU4YTM1MjA4ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKQEAgLTc0LDggKzc0LDggQEAgcHVibGljOgogCiAgICAgICAgIGZv
ciAoSFRNTFRva2VuOjpBdHRyaWJ1dGVMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gYXR0cmli
dXRlcy5iZWdpbigpOwogICAgICAgICAgICAgIGl0ZXIgIT0gYXR0cmlidXRlcy5lbmQoKTsgKytp
dGVyKSB7Ci0gICAgICAgICAgICBBdG9taWNTdHJpbmcgYXR0cmlidXRlTmFtZShpdGVyLT5tX25h
bWUuZGF0YSgpLCBpdGVyLT5tX25hbWUuc2l6ZSgpKTsKLSAgICAgICAgICAgIFN0cmluZyBhdHRy
aWJ1dGVWYWx1ZSA9IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlBvc3NpYmxlKGl0ZXItPm1fdmFs
dWUuZGF0YSgpLCBpdGVyLT5tX3ZhbHVlLnNpemUoKSk7CisgICAgICAgICAgICBBdG9taWNTdHJp
bmcgYXR0cmlidXRlTmFtZShpdGVyLT5uYW1lKTsKKyAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1
dGVWYWx1ZSA9IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlBvc3NpYmxlKGl0ZXItPnZhbHVlKTsK
IAogICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gY2hhcnNldEF0dHIpCiAgICAgICAg
ICAgICAgICAgbV9jaGFyc2V0ID0gYXR0cmlidXRlVmFsdWU7CkBAIC0yMTksNyArMjE5LDcgQEAg
dm9pZCBIVE1MUHJlbG9hZFNjYW5uZXI6OnNjYW4oSFRNTFJlc291cmNlUHJlbG9hZGVyKiBwcmVs
b2FkZXIsIGNvbnN0IEtVUkwmIHN0YXIKICAgICAvLyBBbGwgb3RoZXIgZnVuY3Rpb25zIGFyZSBw
YXNzZWQgYSB0b2tlbi4KICAgICB3aGlsZSAobV90b2tlbml6ZXItPm5leHRUb2tlbihtX3NvdXJj
ZSwgbV90b2tlbikpIHsKICAgICAgICAgaWYgKGlzU3RhcnRUYWcobV90b2tlbikpCi0gICAgICAg
ICAgICBtX3Rva2VuaXplci0+dXBkYXRlU3RhdGVGb3IoQXRvbWljU3RyaW5nKG1fdG9rZW4ubmFt
ZSgpLmRhdGEoKSwgbV90b2tlbi5uYW1lKCkuc2l6ZSgpKSk7CisgICAgICAgICAgICBtX3Rva2Vu
aXplci0+dXBkYXRlU3RhdGVGb3IoQXRvbWljU3RyaW5nKG1fdG9rZW4ubmFtZSgpKSk7CiAgICAg
ICAgIHByb2Nlc3NUb2tlbihtX3Rva2VuLCByZXF1ZXN0cyk7CiAgICAgICAgIG1fdG9rZW4uY2xl
YXIoKTsKICAgICB9CkBAIC0yNjMsOSArMjYzLDkgQEAgYm9vbCBIVE1MUHJlbG9hZFNjYW5uZXI6
OnByb2Nlc3NQb3NzaWJsZUJhc2VUYWcoY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lLCBjb24K
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIGZvciAoSFRNTFRva2VuOjpBdHRy
aWJ1dGVMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gdG9rZW4uYXR0cmlidXRlcygpLmJlZ2lu
KCk7IGl0ZXIgIT0gdG9rZW4uYXR0cmlidXRlcygpLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAg
ICAgIEF0b21pY1N0cmluZyBhdHRyaWJ1dGVOYW1lKGl0ZXItPm1fbmFtZS5kYXRhKCksIGl0ZXIt
Pm1fbmFtZS5zaXplKCkpOworICAgICAgICAgICAgQXRvbWljU3RyaW5nIGF0dHJpYnV0ZU5hbWUo
aXRlci0+bmFtZSk7CiAgICAgICAgICAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBocmVmQXR0cikg
ewotICAgICAgICAgICAgICAgIFN0cmluZyBocmVmVmFsdWUgPSBTdHJpbmdJbXBsOjpjcmVhdGU4
Qml0SWZQb3NzaWJsZShpdGVyLT5tX3ZhbHVlLmRhdGEoKSwgaXRlci0+bV92YWx1ZS5zaXplKCkp
OworICAgICAgICAgICAgICAgIFN0cmluZyBocmVmVmFsdWUgPSBTdHJpbmdJbXBsOjpjcmVhdGU4
Qml0SWZQb3NzaWJsZShpdGVyLT52YWx1ZSk7CiAgICAgICAgICAgICAgICAgbV9wcmVkaWN0ZWRC
YXNlRWxlbWVudFVSTCA9IEtVUkwobV9kb2N1bWVudFVSTCwgc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzKGhyZWZWYWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQpAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgSFRNTFByZWxvYWRTY2FubmVyOjpwcm9j
ZXNzVG9rZW4oY29uc3QgSFRNTFRva2VuJiB0b2tlbiwgVmVjdG9yPE93blB0cjxQcmVsCiAgICAg
aWYgKCFpc1N0YXJ0T3JFbmRUYWcodG9rZW4pKQogICAgICAgICByZXR1cm47CiAKLSAgICBBdG9t
aWNTdHJpbmcgdGFnTmFtZSh0b2tlbi5uYW1lKCkuZGF0YSgpLCB0b2tlbi5uYW1lKCkuc2l6ZSgp
KTsKKyAgICBBdG9taWNTdHJpbmcgdGFnTmFtZSh0b2tlbi5uYW1lKCkpOwogI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQogICAgIGlmIChwcm9jZXNzUG9zc2libGVUZW1wbGF0ZVRhZyh0YWdO
YW1lLCB0b2tlbikpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRva2VuLmgKaW5kZXggY2U1MTRhMWE4MzFiYWRlYjUxM2EwOGY2M2EwZDM0ZDcyNWZmYjAyZC4u
NjQwYjVjNDljYjM4Zjg4YTQzYmUzMjNhMDlkOTJjZGE2YmM4ZWEyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRva2VuLmgKQEAgLTc4LDE0ICs3OCwxNCBAQCBwdWJsaWM6CiAgICAg
cHVibGljOgogICAgICAgICBjbGFzcyBSYW5nZSB7CiAgICAgICAgIHB1YmxpYzoKLSAgICAgICAg
ICAgIGludCBtX3N0YXJ0OwotICAgICAgICAgICAgaW50IG1fZW5kOworICAgICAgICAgICAgaW50
IHN0YXJ0OworICAgICAgICAgICAgaW50IGVuZDsKICAgICAgICAgfTsKIAotICAgICAgICBSYW5n
ZSBtX25hbWVSYW5nZTsKLSAgICAgICAgUmFuZ2UgbV92YWx1ZVJhbmdlOwotICAgICAgICBXVEY6
OlZlY3RvcjxVQ2hhciwgMzI+IG1fbmFtZTsKLSAgICAgICAgV1RGOjpWZWN0b3I8VUNoYXIsIDMy
PiBtX3ZhbHVlOworICAgICAgICBSYW5nZSBuYW1lUmFuZ2U7CisgICAgICAgIFJhbmdlIHZhbHVl
UmFuZ2U7CisgICAgICAgIFZlY3RvcjxVQ2hhciwgMzI+IG5hbWU7CisgICAgICAgIFZlY3RvcjxV
Q2hhciwgMzI+IHZhbHVlOwogICAgIH07CiAKICAgICB0eXBlZGVmIFdURjo6VmVjdG9yPEF0dHJp
YnV0ZSwgMTA+IEF0dHJpYnV0ZUxpc3Q7CkBAIC05Niw4ICs5Niw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNsZWFyKCkKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IFVuaW5pdGlhbGl6ZWQ7Ci0gICAg
ICAgIG1fcmFuZ2UubV9zdGFydCA9IDA7Ci0gICAgICAgIG1fcmFuZ2UubV9lbmQgPSAwOworICAg
ICAgICBtX3JhbmdlLnN0YXJ0ID0gMDsKKyAgICAgICAgbV9yYW5nZS5lbmQgPSAwOwogICAgICAg
ICBtX2Jhc2VPZmZzZXQgPSAwOwogICAgICAgICBtX2RhdGEuY2xlYXIoKTsKICAgICAgICAgbV9v
ckFsbERhdGEgPSAwOwpAQCAtMTEzLDggKzExMyw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAv
KiBSYW5nZSBhbmQgb2Zmc2V0IG1ldGhvZHMgZXhwb3NlZCBmb3IgSFRNTFNvdXJjZVRyYWNrZXIg
YW5kIEhUTUxWaWV3U291cmNlUGFyc2VyICovCi0gICAgaW50IHN0YXJ0SW5kZXgoKSBjb25zdCB7
IHJldHVybiBtX3JhbmdlLm1fc3RhcnQ7IH0KLSAgICBpbnQgZW5kSW5kZXgoKSBjb25zdCB7IHJl
dHVybiBtX3JhbmdlLm1fZW5kOyB9CisgICAgaW50IHN0YXJ0SW5kZXgoKSBjb25zdCB7IHJldHVy
biBtX3JhbmdlLnN0YXJ0OyB9CisgICAgaW50IGVuZEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9y
YW5nZS5lbmQ7IH0KIAogICAgIHZvaWQgc2V0QmFzZU9mZnNldChpbnQgb2Zmc2V0KQogICAgIHsK
QEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGVuZChpbnQgZW5kT2Zmc2V0
KQogICAgIHsKLSAgICAgICAgbV9yYW5nZS5tX2VuZCA9IGVuZE9mZnNldCAtIG1fYmFzZU9mZnNl
dDsKKyAgICAgICAgbV9yYW5nZS5lbmQgPSBlbmRPZmZzZXQgLSBtX2Jhc2VPZmZzZXQ7CiAgICAg
fQogCiAgICAgY29uc3QgRGF0YVZlY3RvciYgZGF0YSgpIGNvbnN0CkBAIC0xNTgsNyArMTU4LDcg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIGlm
IChpc0FsbDhCaXREYXRhKCkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nOjptYWtlOEJpdEZy
b20xNkJpdFNvdXJjZShtX2RhdGEuZGF0YSgpLCBtX2RhdGEuc2l6ZSgpKTsKLSAgICAgICAgcmV0
dXJuIFN0cmluZyhtX2RhdGEuZGF0YSgpLCBtX2RhdGEuc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJu
IFN0cmluZyhtX2RhdGEpOwogICAgIH0KIAogICAgIC8qIERPQ1RZUEUgVG9rZW5zICovCkBAIC0y
OTQsMzcgKzI5NCwzNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXR0cmlidXRlcy5ncm93KG1fYXR0
cmlidXRlcy5zaXplKCkgKyAxKTsKICAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlID0gJm1fYXR0
cmlidXRlcy5sYXN0KCk7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1
dGUtPm1fbmFtZVJhbmdlLm1fc3RhcnQgPSAwOwotICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUt
Pm1fbmFtZVJhbmdlLm1fZW5kID0gMDsKLSAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3Zh
bHVlUmFuZ2UubV9zdGFydCA9IDA7Ci0gICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV92YWx1
ZVJhbmdlLm1fZW5kID0gMDsKKyAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5uYW1lUmFuZ2Uu
c3RhcnQgPSAwOworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm5hbWVSYW5nZS5lbmQgPSAw
OworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPnZhbHVlUmFuZ2Uuc3RhcnQgPSAwOworICAg
ICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPnZhbHVlUmFuZ2UuZW5kID0gMDsKICNlbmRpZgogICAg
IH0KIAogICAgIHZvaWQgYmVnaW5BdHRyaWJ1dGVOYW1lKGludCBvZmZzZXQpCiAgICAgewotICAg
ICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fbmFtZVJhbmdlLm1fc3RhcnQgPSBvZmZzZXQgLSBt
X2Jhc2VPZmZzZXQ7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bmFtZVJhbmdlLnN0YXJ0
ID0gb2Zmc2V0IC0gbV9iYXNlT2Zmc2V0OwogICAgIH0KIAogICAgIHZvaWQgZW5kQXR0cmlidXRl
TmFtZShpbnQgb2Zmc2V0KQogICAgIHsKICAgICAgICAgaW50IGluZGV4ID0gb2Zmc2V0IC0gbV9i
YXNlT2Zmc2V0OwotICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fbmFtZVJhbmdlLm1fZW5k
ID0gaW5kZXg7Ci0gICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV92YWx1ZVJhbmdlLm1fc3Rh
cnQgPSBpbmRleDsKLSAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9l
bmQgPSBpbmRleDsKKyAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5uYW1lUmFuZ2UuZW5kID0g
aW5kZXg7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+dmFsdWVSYW5nZS5zdGFydCA9IGlu
ZGV4OworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPnZhbHVlUmFuZ2UuZW5kID0gaW5kZXg7
CiAgICAgfQogCiAgICAgdm9pZCBiZWdpbkF0dHJpYnV0ZVZhbHVlKGludCBvZmZzZXQpCiAgICAg
ewotICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX3N0YXJ0ID0gb2Zm
c2V0IC0gbV9iYXNlT2Zmc2V0OworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPnZhbHVlUmFu
Z2Uuc3RhcnQgPSBvZmZzZXQgLSBtX2Jhc2VPZmZzZXQ7CiAjaWZuZGVmIE5ERUJVRwotICAgICAg
ICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX2VuZCA9IDA7CisgICAgICAgIG1f
Y3VycmVudEF0dHJpYnV0ZS0+dmFsdWVSYW5nZS5lbmQgPSAwOwogI2VuZGlmCiAgICAgfQogCiAg
ICAgdm9pZCBlbmRBdHRyaWJ1dGVWYWx1ZShpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgbV9j
dXJyZW50QXR0cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9lbmQgPSBvZmZzZXQgLSBtX2Jhc2VPZmZz
ZXQ7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+dmFsdWVSYW5nZS5lbmQgPSBvZmZzZXQg
LSBtX2Jhc2VPZmZzZXQ7CiAgICAgfQogCiAgICAgdm9pZCBhcHBlbmRUb0F0dHJpYnV0ZU5hbWUo
VUNoYXIgY2hhcmFjdGVyKQpAQCAtMzMzLDIzICszMzMsMjMgQEAgcHVibGljOgogICAgICAgICBB
U1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBFbmRUYWcpOwogICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gYWRkIHRoZSBmb2xsb3dpbmcgQVNTRVJUIG9u
Y2Ugd2UgZml4CiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02Mjk3MQotICAgICAgICAvLyAgIEFTU0VSVChtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fbmFt
ZVJhbmdlLm1fc3RhcnQpOwotICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fbmFtZS5hcHBl
bmQoY2hhcmFjdGVyKTsKKyAgICAgICAgLy8gICBBU1NFUlQobV9jdXJyZW50QXR0cmlidXRlLT5u
YW1lUmFuZ2Uuc3RhcnQpOworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm5hbWUuYXBwZW5k
KGNoYXJhY3Rlcik7CiAgICAgfQogCiAgICAgdm9pZCBhcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKFVD
aGFyIGNoYXJhY3RlcikKICAgICB7CiAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIpOwogICAgICAg
ICBBU1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBFbmRUYWcpOwotICAgICAg
ICBBU1NFUlQobV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9zdGFydCk7Ci0gICAg
ICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV92YWx1ZS5hcHBlbmQoY2hhcmFjdGVyKTsKKyAgICAg
ICAgQVNTRVJUKG1fY3VycmVudEF0dHJpYnV0ZS0+dmFsdWVSYW5nZS5zdGFydCk7CisgICAgICAg
IG1fY3VycmVudEF0dHJpYnV0ZS0+dmFsdWUuYXBwZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCiAg
ICAgdm9pZCBhcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKHNpemVfdCBpLCBjb25zdCBTdHJpbmcmIHZh
bHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKCF2YWx1ZS5pc0VtcHR5KCkpOwogICAgICAgICBB
U1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBFbmRUYWcpOwotICAgICAgICBt
X2F0dHJpYnV0ZXNbaV0ubV92YWx1ZS5hcHBlbmQodmFsdWUuY2hhcmFjdGVycygpLCB2YWx1ZS5s
ZW5ndGgoKSk7CisgICAgICAgIGFwcGVuZChtX2F0dHJpYnV0ZXNbaV0udmFsdWUsIHZhbHVlKTsK
ICAgICB9CiAKICAgICBjb25zdCBBdHRyaWJ1dGVMaXN0JiBhdHRyaWJ1dGVzKCkgY29uc3QKQEAg
LTM2Miw3ICszNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlcmFzZVZhbHVlT2ZBdHRyaWJ1dGUo
c2l6ZV90IGkpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFN0YXJ0VGFnIHx8IG1f
dHlwZSA9PSBFbmRUYWcpOwotICAgICAgICBtX2F0dHJpYnV0ZXNbaV0ubV92YWx1ZS5jbGVhcigp
OworICAgICAgICBtX2F0dHJpYnV0ZXNbaV0udmFsdWUuY2xlYXIoKTsKICAgICB9CiAKICAgICAv
KiBDaGFyYWN0ZXIgVG9rZW5zICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
b2tlbml6ZXIuY3BwCmluZGV4IGYwYWRmZTNmZjhhNzUyYTgyZjRhYzYyZWQwMDJhZjhiZmJmYjcw
ZmMuLmY4YjZkMmM2MWU2NGIyMWVmMTEwNjFkOGYyYWQ1NGFlMGU3ZjcwNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC01MSw3ICs1MSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAvLyBXZSBkb24ndCBoYXZlIGFuIEhUTUxUb2tl
bi5jcHAgdGhvdWdoLCBzbyB0aGlzIGlzIHRoZSBuZXh0IGJlc3QgcGxhY2UuCiBRdWFsaWZpZWRO
YW1lIEF0b21pY0hUTUxUb2tlbjo6bmFtZUZvckF0dHJpYnV0ZShjb25zdCBIVE1MVG9rZW46OkF0
dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAogewotICAgIHJldHVybiBRdWFsaWZpZWROYW1lKG51
bGxBdG9tLCBBdG9taWNTdHJpbmcoYXR0cmlidXRlLm1fbmFtZS5kYXRhKCksIGF0dHJpYnV0ZS5t
X25hbWUuc2l6ZSgpKSwgbnVsbEF0b20pOworICAgIHJldHVybiBRdWFsaWZpZWROYW1lKG51bGxB
dG9tLCBBdG9taWNTdHJpbmcoYXR0cmlidXRlLm5hbWUpLCBudWxsQXRvbSk7CiB9CiAKIGJvb2wg
QXRvbWljSFRNTFRva2VuOjp1c2VzTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAKaW5kZXggYTVmNDdmMGEyZDMx
N2I2ZTg1MGNiNWY2ZDAyNDAyOWFkYTMyNWJkNy4uZjAxOWMyZTkwNjY0NDBlNGM4ZmM1OTNjYmUy
OGM5NmJlMjdiYjIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFZpZXdTb3VyY2VQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxWaWV3U291cmNlUGFyc2VyLmNwcApAQCAtNzgsOSArNzgsNyBAQCB2b2lkIEhUTUxWaWV3U291
cmNlUGFyc2VyOjp1cGRhdGVUb2tlbml6ZXJTdGF0ZSgpCiAgICAgLy8gRklYTUU6IFRoZSB0b2tl
bml6ZXIgc2hvdWxkIGRvIHRoaXMgd29yayBmb3IgdXMuCiAgICAgaWYgKG1fdG9rZW4udHlwZSgp
ICE9IEhUTUxUb2tlbjo6U3RhcnRUYWcpCiAgICAgICAgIHJldHVybjsKLQotICAgIEF0b21pY1N0
cmluZyB0YWdOYW1lKG1fdG9rZW4ubmFtZSgpLmRhdGEoKSwgbV90b2tlbi5uYW1lKCkuc2l6ZSgp
KTsKLSAgICBtX3Rva2VuaXplci0+dXBkYXRlU3RhdGVGb3IodGFnTmFtZSk7CisgICAgbV90b2tl
bml6ZXItPnVwZGF0ZVN0YXRlRm9yKEF0b21pY1N0cmluZyhtX3Rva2VuLm5hbWUoKSkpOwogfQog
CiB2b2lkIEhUTUxWaWV3U291cmNlUGFyc2VyOjpmaW5pc2goKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCBkZTU0ZDIyNTMyN2VkYzc5MDY3YjIxOWFjNjhh
ZGEwM2YyYjY5MDhlLi4xYWI0ZWNkNDE3ZmRmODgyMDZhM2NkMTVkZTViYWQ2ZDRmZGRlZjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtMTI1LDcgKzEy
NSw3IEBAIHN0YXRpYyBib29sIGZpbmRBdHRyaWJ1dGVXaXRoTmFtZShjb25zdCBIVE1MVG9rZW4m
IHRva2VuLCBjb25zdCBRdWFsaWZpZWROYW1lJiBuCiAgICAgICAgIGF0dHJOYW1lID0gInhsaW5r
OiIgKyBhdHRyTmFtZTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG9rZW4uYXR0cmli
dXRlcygpLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChlcXVhbElnbm9yaW5nTnVsbGl0eSh0
b2tlbi5hdHRyaWJ1dGVzKCkuYXQoaSkubV9uYW1lLCBhdHRyTmFtZSkpIHsKKyAgICAgICAgaWYg
KGVxdWFsSWdub3JpbmdOdWxsaXR5KHRva2VuLmF0dHJpYnV0ZXMoKS5hdChpKS5uYW1lLCBhdHRy
TmFtZSkpIHsKICAgICAgICAgICAgIGluZGV4T2ZNYXRjaGluZ0F0dHJpYnV0ZSA9IGk7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMzk0LDkgKzM5NCw3IEBAIGJvb2wg
WFNTQXVkaXRvcjo6ZmlsdGVyUGFyYW1Ub2tlbihjb25zdCBGaWx0ZXJUb2tlblJlcXVlc3QmIHJl
cXVlc3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IEhUTUxUb2tlbjo6QXR0
cmlidXRlJiBuYW1lQXR0cmlidXRlID0gcmVxdWVzdC50b2tlbi5hdHRyaWJ1dGVzKCkuYXQoaW5k
ZXhPZk5hbWVBdHRyaWJ1dGUpOwotICAgIFN0cmluZyBuYW1lID0gU3RyaW5nKG5hbWVBdHRyaWJ1
dGUubV92YWx1ZS5kYXRhKCksIG5hbWVBdHRyaWJ1dGUubV92YWx1ZS5zaXplKCkpOwotCi0gICAg
aWYgKCFIVE1MUGFyYW1FbGVtZW50Ojppc1VSTFBhcmFtZXRlcihuYW1lKSkKKyAgICBpZiAoIUhU
TUxQYXJhbUVsZW1lbnQ6OmlzVVJMUGFyYW1ldGVyKFN0cmluZyhuYW1lQXR0cmlidXRlLnZhbHVl
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBlcmFzZUF0dHJpYnV0ZUlm
SW5qZWN0ZWQocmVxdWVzdCwgdmFsdWVBdHRyLCBibGFua1VSTCgpLnN0cmluZygpLCBTcmNMaWtl
QXR0cmlidXRlKTsKQEAgLTQ3Myw4ICs0NzEsOCBAQCBib29sIFhTU0F1ZGl0b3I6OmVyYXNlRGFu
Z2Vyb3VzQXR0cmlidXRlc0lmSW5qZWN0ZWQoY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZQog
ICAgIGJvb2wgZGlkQmxvY2tTY3JpcHQgPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHJlcXVlc3QudG9rZW4uYXR0cmlidXRlcygpLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNv
bnN0IEhUTUxUb2tlbjo6QXR0cmlidXRlJiBhdHRyaWJ1dGUgPSByZXF1ZXN0LnRva2VuLmF0dHJp
YnV0ZXMoKS5hdChpKTsKLSAgICAgICAgYm9vbCBpc0lubGluZUV2ZW50SGFuZGxlciA9IGlzTmFt
ZU9mSW5saW5lRXZlbnRIYW5kbGVyKGF0dHJpYnV0ZS5tX25hbWUpOwotICAgICAgICBib29sIHZh
bHVlQ29udGFpbnNKYXZhU2NyaXB0VVJMID0gIWlzSW5saW5lRXZlbnRIYW5kbGVyICYmIHByb3Rv
Y29sSXNKYXZhU2NyaXB0KHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhTdHJpbmco
YXR0cmlidXRlLm1fdmFsdWUuZGF0YSgpLCBhdHRyaWJ1dGUubV92YWx1ZS5zaXplKCkpKSk7Cisg
ICAgICAgIGJvb2wgaXNJbmxpbmVFdmVudEhhbmRsZXIgPSBpc05hbWVPZklubGluZUV2ZW50SGFu
ZGxlcihhdHRyaWJ1dGUubmFtZSk7CisgICAgICAgIGJvb2wgdmFsdWVDb250YWluc0phdmFTY3Jp
cHRVUkwgPSAhaXNJbmxpbmVFdmVudEhhbmRsZXIgJiYgcHJvdG9jb2xJc0phdmFTY3JpcHQoc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKFN0cmluZyhhdHRyaWJ1dGUudmFsdWUpKSk7
CiAgICAgICAgIGlmICghaXNJbmxpbmVFdmVudEhhbmRsZXIgJiYgIXZhbHVlQ29udGFpbnNKYXZh
U2NyaXB0VVJMKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICghaXNDb250YWlu
ZWRJblJlcXVlc3QoZGVjb2RlZFNuaXBwZXRGb3JBdHRyaWJ1dGUocmVxdWVzdCwgYXR0cmlidXRl
LCBTY3JpcHRMaWtlQXR0cmlidXRlKSkpCkBAIC00OTMsOSArNDkxLDkgQEAgYm9vbCBYU1NBdWRp
dG9yOjplcmFzZUF0dHJpYnV0ZUlmSW5qZWN0ZWQoY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiBy
ZXF1ZXN0LCBjb24KICAgICBpZiAoZmluZEF0dHJpYnV0ZVdpdGhOYW1lKHJlcXVlc3QudG9rZW4s
IGF0dHJpYnV0ZU5hbWUsIGluZGV4T2ZBdHRyaWJ1dGUpKSB7CiAgICAgICAgIGNvbnN0IEhUTUxU
b2tlbjo6QXR0cmlidXRlJiBhdHRyaWJ1dGUgPSByZXF1ZXN0LnRva2VuLmF0dHJpYnV0ZXMoKS5h
dChpbmRleE9mQXR0cmlidXRlKTsKICAgICAgICAgaWYgKGlzQ29udGFpbmVkSW5SZXF1ZXN0KGRl
Y29kZWRTbmlwcGV0Rm9yQXR0cmlidXRlKHJlcXVlc3QsIGF0dHJpYnV0ZSwgdHJlYXRtZW50KSkp
IHsKLSAgICAgICAgICAgIGlmICh0aHJlYWRTYWZlTWF0Y2goYXR0cmlidXRlTmFtZSwgc3JjQXR0
cikgJiYgaXNMaWtlbHlTYWZlUmVzb3VyY2UoU3RyaW5nKGF0dHJpYnV0ZS5tX3ZhbHVlLmRhdGEo
KSwgYXR0cmlidXRlLm1fdmFsdWUuc2l6ZSgpKSkpCisgICAgICAgICAgICBpZiAodGhyZWFkU2Fm
ZU1hdGNoKGF0dHJpYnV0ZU5hbWUsIHNyY0F0dHIpICYmIGlzTGlrZWx5U2FmZVJlc291cmNlKFN0
cmluZyhhdHRyaWJ1dGUudmFsdWUpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgICAgICBpZiAodGhyZWFkU2FmZU1hdGNoKGF0dHJpYnV0ZU5hbWUsIGh0dHBfZXF1aXZB
dHRyKSAmJiAhaXNEYW5nZXJvdXNIVFRQRXF1aXYoU3RyaW5nKGF0dHJpYnV0ZS5tX3ZhbHVlLmRh
dGEoKSwgYXR0cmlidXRlLm1fdmFsdWUuc2l6ZSgpKSkpCisgICAgICAgICAgICBpZiAodGhyZWFk
U2FmZU1hdGNoKGF0dHJpYnV0ZU5hbWUsIGh0dHBfZXF1aXZBdHRyKSAmJiAhaXNEYW5nZXJvdXNI
VFRQRXF1aXYoU3RyaW5nKGF0dHJpYnV0ZS52YWx1ZSkpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIHJlcXVlc3QudG9rZW4uZXJhc2VWYWx1ZU9mQXR0cmlidXRl
KGluZGV4T2ZBdHRyaWJ1dGUpOwogICAgICAgICAgICAgaWYgKCFyZXBsYWNlbWVudFZhbHVlLmlz
RW1wdHkoKSkKQEAgLTUxOCw4ICs1MTYsOCBAQCBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2RlZFNu
aXBwZXRGb3JBdHRyaWJ1dGUoY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0LAogICAg
IC8vIGZvciBhbiBpbnB1dCBvZiB8bmFtZT0idmFsdWUifCwgdGhlIHNuaXBwZXQgaXMgfG5hbWU9
InZhbHVlfC4gRm9yIGFuCiAgICAgLy8gdW5xdW90ZWQgaW5wdXQgb2YgfG5hbWU9dmFsdWUgfCwg
dGhlIHNuaXBwZXQgaXMgfG5hbWU9dmFsdWV8LgogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZ3Jh
YiBvbmUgY2hhcmFjdGVyIGJlZm9yZSB0aGUgbmFtZSBhbHNvLgotICAgIGludCBzdGFydCA9IGF0
dHJpYnV0ZS5tX25hbWVSYW5nZS5tX3N0YXJ0IC0gcmVxdWVzdC50b2tlbi5zdGFydEluZGV4KCk7
Ci0gICAgaW50IGVuZCA9IGF0dHJpYnV0ZS5tX3ZhbHVlUmFuZ2UubV9lbmQgLSByZXF1ZXN0LnRv
a2VuLnN0YXJ0SW5kZXgoKTsKKyAgICBpbnQgc3RhcnQgPSBhdHRyaWJ1dGUubmFtZVJhbmdlLnN0
YXJ0IC0gcmVxdWVzdC50b2tlbi5zdGFydEluZGV4KCk7CisgICAgaW50IGVuZCA9IGF0dHJpYnV0
ZS52YWx1ZVJhbmdlLmVuZCAtIHJlcXVlc3QudG9rZW4uc3RhcnRJbmRleCgpOwogICAgIFN0cmlu
ZyBkZWNvZGVkU25pcHBldCA9IGZ1bGx5RGVjb2RlU3RyaW5nKHJlcXVlc3Quc291cmNlVHJhY2tl
ci5zb3VyY2VGb3JUb2tlbihyZXF1ZXN0LnRva2VuKS5zdWJzdHJpbmcoc3RhcnQsIGVuZCAtIHN0
YXJ0KSwgbV9lbmNvZGluZyk7CiAgICAgZGVjb2RlZFNuaXBwZXQudHJ1bmNhdGUoa01heGltdW1G
cmFnbWVudExlbmd0aFRhcmdldCk7CiAgICAgaWYgKHRyZWF0bWVudCA9PSBTcmNMaWtlQXR0cmli
dXRlKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>