<?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>159789</bug_id>
          
          <creation_ts>2016-07-14 15:15:26 -0700</creation_ts>
          <short_desc>Use emptyString() instead of &quot;&quot; when possible</short_desc>
          <delta_ts>2016-07-15 13:19:37 -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 Misc.</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1211172</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-14 15:15:26 -0700</bug_when>
    <thetext>Use emptyString() instead of &quot;&quot; when possible to reduce String allocations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211175</commentid>
    <comment_count>1</comment_count>
      <attachid>283691</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-14 15:23:20 -0700</bug_when>
    <thetext>Created attachment 283691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211199</commentid>
    <comment_count>2</comment_count>
      <attachid>283691</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-14 16:18:40 -0700</bug_when>
    <thetext>Comment on attachment 283691
Patch

Clearing flags on attachment: 283691

Committed r203250: &lt;http://trac.webkit.org/changeset/203250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211200</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-14 16:18:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211532</commentid>
    <comment_count>4</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2016-07-15 13:18:21 -0700</bug_when>
    <thetext>Does this actually save allocations? String(&quot;&quot;) does StringImpl::create(LChar*) which does strlen and then StringImpl::create(LChar*, unsigned) which does:

https://github.com/adobe/webkit/blob/master/Source/WTF/wtf/text/StringImpl.cpp#L255

    if (!characters || !length)
        return empty();

I think this patch saves branches and function calls, but not allocations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211533</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-15 13:19:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Does this actually save allocations? String(&quot;&quot;) does
&gt; StringImpl::create(LChar*) which does strlen and then
&gt; StringImpl::create(LChar*, unsigned) which does:
&gt; 
&gt; https://github.com/adobe/webkit/blob/master/Source/WTF/wtf/text/StringImpl.
&gt; cpp#L255
&gt; 
&gt;     if (!characters || !length)
&gt;         return empty();
&gt; 
&gt; I think this patch saves branches and function calls, but not allocations?

You&apos;re totally right Elliot, I did not know about this optimization in StringImpl.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283691</attachid>
            <date>2016-07-14 15:23:20 -0700</date>
            <delta_ts>2016-07-14 16:18:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159789-20160714152233.patch</filename>
            <type>text/plain</type>
            <size>23061</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdkNWE0YmMyYTA1OGYy
Zjc0Zjk5NjQxZjQzZWYwNzVlYTdiOTk4Ni4uN2JjYWFmMmRkNzNjNzQ1NzZhYTkzNDI5MzdjNTlh
NGVhZjVkY2ZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA3LTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGVtcHR5U3RyaW5nKCkg
aW5zdGVhZCBvZiAiIiB3aGVuIHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZW1wdHlTdHJpbmcoKSBpbnN0ZWFkIG9mICIiIHdoZW4g
cG9zc2libGUgdG8gcmVkdWNlIFN0cmluZyBhbGxvY2F0aW9ucy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAg
ICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFi
bGVTdHlsZVByb3BlcnRpZXM6OnJlbW92ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok11
dGFibGVTdHlsZVByb3BlcnRpZXM6OnJlbW92ZUN1c3RvbVByb3BlcnR5KToKKyAgICAgICAgKiBl
ZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1pc3NwZWxsaW5nT3JCYWRHcmFtbWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0QmFkR3JhbW1hcik6CisgICAg
ICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdD
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyTG9hZGVyOjpjbGVhbnVwKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpm
aWxsTWVkaWFMaXN0Q2hhaW4pOgorICAgICAgICAqIHBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJDb250ZW50VVJMUGF0dGVybjo6cGFyc2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRGF0YU9i
amVjdEd0ay5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YU9iamVjdEd0azo6Y2xlYXJVUklMaXN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpyZWNlaXZlZFJlcXVlc3RUb0Nv
bnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6bGF5ZXJUcmVlQXNUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVDb250ZW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6Om5vbmVEYXNoYm9hcmRSZWdpb25zKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRNZXRyaWNzOjpTVkdUZXh0TWV0cmljcyk6CisgICAgICAgICogeG1sL1hQYXRoUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpQYXJzZXI6OmxleFN0cmluZyk6CisKIDIwMTYt
MDctMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBVc2UgU29ja2V0UHJvdmlkZXIgdG8gY3JlYXRlIFNvY2tldFN0cmVhbUhhbmRsZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2YvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jZi9D
aGFuZ2VMb2cKaW5kZXggOWU0OGY4ZWQ4ZDk5NzIwNTY0YjJiNWJjNWQxYThjMmUzZTA3NzM2Zi4u
NTdlZTAwODQwM2RiNGU0Njc3ZmQyMGJkNjkwMTc4ZWRjZmE4ZTBhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jZi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNy0xNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZSBlbXB0eVN0cmluZygpIGluc3RlYWQgb2YgIiIgd2hlbiBwb3Nz
aWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5
Nzg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IGVtcHR5U3RyaW5nKCkgaW5zdGVhZCBvZiAiIiB3aGVuIHBvc3NpYmxlIHRvIHJlZHVjZSBTdHJp
bmcgYWxsb2NhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnRDRi5jcHA6CisgICAgICAgIChwb3B1bGF0ZVNldHRpbmcpOgorCiAyMDE1LTA1LTAxICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBVU0UoLi4u
KSBtYWNybyBzaG91bGQgZXhwZWN0IHVucHJlZml4ZWQgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggYmRjOGZhMTQ5YzM0MDUzNjAzYWQ2MzgzMzYwYTcxNTFiYWU4YjgyZC4uZjI5ZDQ5ZWFj
NDM2MWNlODIyOTE0MTcwYjk4MjdjZjY3ZmI0OGY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE2LTA3LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIGVtcHR5U3RyaW5nKCkgaW5zdGVhZCBvZiAiIiB3aGVuIHBvc3NpYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3ODkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgZW1wdHlT
dHJpbmcoKSBpbnN0ZWFkIG9mICIiIHdoZW4gcG9zc2libGUgdG8gcmVkdWNlIFN0cmluZyBhbGxv
Y2F0aW9ucy4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYXJzZVJGQzgyMkhlYWRlckZpZWxkcyk6CisKIDIwMTYtMDctMTQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgU29ja2V0
UHJvdmlkZXIgdG8gY3JlYXRlIFNvY2tldFN0cmVhbUhhbmRsZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MTQ0
MTVmNTM3ZGY5NWRkZTZmNDVhMTU0MmM3MGJkMDM3ZjEyODM4Li5jNTg3NTBmM2RkYjY5MzNhOWYz
YWI4ZTFmMmYyYTYwMmUzNzQ4MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYt
MDctMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgZW1w
dHlTdHJpbmcoKSBpbnN0ZWFkIG9mICIiIHdoZW4gcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTc4OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBlbXB0eVN0cmluZygpIGluc3RlYWQg
b2YgIiIgd2hlbiBwb3NzaWJsZSB0byByZWR1Y2UgU3RyaW5nIGFsbG9jYXRpb25zLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6cGFzdGVib2FyZENoYW5nZWRPd25lcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6cGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMpOgorICAgICAgICAoV2ViS2l0OjpOUE5fU3Rh
dHVzKToKKwogMjAxNi0wNy0xNCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEF1dG9tYXRpb246IEZyYW1lTm90Rm91bmQgZXJyb3JzIGhhcHBlbiBh
IGxvdCBmb3IgdGhlIG1haW4gZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggOGQzYjM1YTYwNWM3YWZkNWJhOGFjZmNlZGZkM2Ji
ZmZmNTliZjY3Yi4uMTAzMWI0NzQxMzY4NDQ3YzNiZmI0OGUxZTRjMjQ4YzViYWFjNTdmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAg
LTQ0MCw3ICs0NDAsNyBAQCBib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShib29s
IHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZQogCiAgICAgaWYgKGN1cnJl
bnRWZXJzaW9uLmlzTnVsbCgpKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRGF0YWJhc2Ug
JXMgZG9lcyBub3QgaGF2ZSBpdHMgdmVyc2lvbiBzZXQiLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgY3VycmVudFZlcnNpb24gPSAiIjsKKyAgICAgICAgY3Vy
cmVudFZlcnNpb24gPSBlbXB0eVN0cmluZygpOwogICAgIH0KIAogICAgIC8vIElmIHRoZSBleHBl
Y3RlZCB2ZXJzaW9uIGlzbid0IHRoZSBlbXB0eSBzdHJpbmcsIGVuc3VyZSB0aGF0IHRoZSBjdXJy
ZW50IGRhdGFiYXNlIHZlcnNpb24gd2UgaGF2ZSBtYXRjaGVzIHRoYXQgdmVyc2lvbi4gT3RoZXJ3
aXNlLCBzZXQgYW4gZXhjZXB0aW9uLgpAQCAtNDYzLDcgKzQ2Myw3IEBAIGJvb2wgRGF0YWJhc2U6
OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2Us
IERhdGFiYXNlCiAgICAgb25FeGl0Q2FsbGVyLnNldE9wZW5TdWNjZWVkZWQoKTsKIAogICAgIGlm
IChtX25ldyAmJiAhc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UpCi0gICAgICAgIG1fZXhw
ZWN0ZWRWZXJzaW9uID0gIiI7IC8vIFRoZSBjYWxsZXIgcHJvdmlkZWQgYSBjcmVhdGlvbkNhbGxi
YWNrIHdoaWNoIHdpbGwgc2V0IHRoZSBleHBlY3RlZCB2ZXJzaW9uLgorICAgICAgICBtX2V4cGVj
dGVkVmVyc2lvbiA9IGVtcHR5U3RyaW5nKCk7IC8vIFRoZSBjYWxsZXIgcHJvdmlkZWQgYSBjcmVh
dGlvbkNhbGxiYWNrIHdoaWNoIHdpbGwgc2V0IHRoZSBleHBlY3RlZCB2ZXJzaW9uLgogCiAgICAg
aWYgKGRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZVRocmVhZCgpKQogICAgICAgICBkYXRhYmFz
ZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+cmVjb3JkRGF0YWJhc2VPcGVuKHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCBhOGZlNTkxYTA3ZGQzYWFkOWFjNzc5ZThjMDdl
NDRhYmQwNDExOTU3Li5mZTU0YTI1YWMxNWE1Mjg2ODg5Y2VhYWU5ZWFjMTJmMzY3YmEwMjhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIC8qKgogICAgICAgICAgKiBSZS1jcmVhdGUgc2VsZWN0b3IgdGV4dCBm
cm9tIHNlbGVjdG9yJ3MgZGF0YQogICAgICAgICAgKi8KLSAgICAgICAgU3RyaW5nIHNlbGVjdG9y
VGV4dChjb25zdCBTdHJpbmcmID0gIiIpIGNvbnN0OworICAgICAgICBTdHJpbmcgc2VsZWN0b3JU
ZXh0KGNvbnN0IFN0cmluZyYgPSBlbXB0eVN0cmluZygpKSBjb25zdDsKIAogICAgICAgICAvLyBj
aGVja3MgaWYgdGhlIDIgc2VsZWN0b3JzIChpbmNsdWRpbmcgc3ViIHNlbGVjdG9ycykgYWdyZWUu
CiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NTZWxlY3RvciYpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlOWNhZmZiZGQ2MzE0NzUwYTBj
ZmQzZDJiMTdjN2ZkZWViNzg1Y2E4Li45NGI1MWVkNWMyNDAxNmQ4ZjhiNTYzZGZkNGMyYjJkZTVl
ZmM3N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNjU2LDE0
ICs2NTYsMTQgQEAgYm9vbCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpyZW1vdmVQcm9wZXJ0eShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFN0cmluZyogcmUKICAgICBpZiAocmVtb3ZlU2hvcnRo
YW5kUHJvcGVydHkocHJvcGVydHlJRCkpIHsKICAgICAgICAgLy8gRklYTUU6IFJldHVybiBhbiBl
cXVpdmFsZW50IHNob3J0aGFuZCB3aGVuIHBvc3NpYmxlLgogICAgICAgICBpZiAocmV0dXJuVGV4
dCkKLSAgICAgICAgICAgICpyZXR1cm5UZXh0ID0gIiI7CisgICAgICAgICAgICAqcmV0dXJuVGV4
dCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlu
dCBmb3VuZFByb3BlcnR5SW5kZXggPSBmaW5kUHJvcGVydHlJbmRleChwcm9wZXJ0eUlEKTsKICAg
ICBpZiAoZm91bmRQcm9wZXJ0eUluZGV4ID09IC0xKSB7CiAgICAgICAgIGlmIChyZXR1cm5UZXh0
KQotICAgICAgICAgICAgKnJldHVyblRleHQgPSAiIjsKKyAgICAgICAgICAgICpyZXR1cm5UZXh0
ID0gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNjgy
LDcgKzY4Miw3IEBAIGJvb2wgTXV0YWJsZVN0eWxlUHJvcGVydGllczo6cmVtb3ZlQ3VzdG9tUHJv
cGVydHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0CiAgICAgaW50IGZvdW5kUHJvcGVy
dHlJbmRleCA9IGZpbmRDdXN0b21Qcm9wZXJ0eUluZGV4KHByb3BlcnR5TmFtZSk7CiAgICAgaWYg
KGZvdW5kUHJvcGVydHlJbmRleCA9PSAtMSkgewogICAgICAgICBpZiAocmV0dXJuVGV4dCkKLSAg
ICAgICAgICAgICpyZXR1cm5UZXh0ID0gIiI7CisgICAgICAgICAgICAqcmV0dXJuVGV4dCA9IGVt
cHR5U3RyaW5nKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRleCBmMTg2NTQ5NjdkZGU1
Nzc1NmU1ZDM1OTc4NzNkNTJiOTJhYzQ3N2I4Li40MDhiNzJlYTZkMzI0ZDg3NDNiMzI1Mjk2ZmUx
Y2JjZmNiYTIxMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVj
a2luZ0hlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdI
ZWxwZXIuY3BwCkBAIC0zMTMsNyArMzEzLDcgQEAgU3RyaW5nIFRleHRDaGVja2luZ0hlbHBlcjo6
ZmluZEZpcnN0TWlzc3BlbGxpbmdPckJhZEdyYW1tYXIoYm9vbCBjaGVja0dyYW1tYXIsIGIKICAg
ICBvdXRHcmFtbWFyRGV0YWlsLmxvY2F0aW9uID0gLTE7CiAgICAgb3V0R3JhbW1hckRldGFpbC5s
ZW5ndGggPSAwOwogICAgIG91dEdyYW1tYXJEZXRhaWwuZ3Vlc3Nlcy5jbGVhcigpOwotICAgIG91
dEdyYW1tYXJEZXRhaWwudXNlckRlc2NyaXB0aW9uID0gIiI7CisgICAgb3V0R3JhbW1hckRldGFp
bC51c2VyRGVzY3JpcHRpb24gPSBlbXB0eVN0cmluZygpOwogICAgIAogICAgIC8vIEV4cGFuZCB0
aGUgc2VhcmNoIHJhbmdlIHRvIGVuY29tcGFzcyBlbnRpcmUgcGFyYWdyYXBocywgc2luY2UgdGV4
dCBjaGVja2luZyBuZWVkcyB0aGF0IG11Y2ggY29udGV4dC4KICAgICAvLyBEZXRlcm1pbmUgdGhl
IGNoYXJhY3RlciBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHBhcmFncmFwaCB0byB0aGUg
c3RhcnQgb2YgdGhlIG9yaWdpbmFsIHNlYXJjaCByYW5nZSwKQEAgLTQ3MSw3ICs0NzEsNyBAQCBT
dHJpbmcgVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RCYWRHcmFtbWFyKEdyYW1tYXJEZXRh
aWwmIG91dEdyYW1tYXJEZXRhaWwsCiAgICAgb3V0R3JhbW1hckRldGFpbC5sb2NhdGlvbiA9IC0x
OwogICAgIG91dEdyYW1tYXJEZXRhaWwubGVuZ3RoID0gMDsKICAgICBvdXRHcmFtbWFyRGV0YWls
Lmd1ZXNzZXMuY2xlYXIoKTsKLSAgICBvdXRHcmFtbWFyRGV0YWlsLnVzZXJEZXNjcmlwdGlvbiA9
ICIiOworICAgIG91dEdyYW1tYXJEZXRhaWwudXNlckRlc2NyaXB0aW9uID0gZW1wdHlTdHJpbmco
KTsKICAgICBvdXRHcmFtbWFyUGhyYXNlT2Zmc2V0ID0gMDsKICAgICAKICAgICBTdHJpbmcgZmly
c3RCYWRHcmFtbWFyUGhyYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuaApp
bmRleCBkM2I4OWUzNTE1MDU4ZWUyYTY3YTlmMjcxOTdlNzcxNTg2ZjQwNzMxLi45ZDE1ZDNiNjk3
OGM1OWJmMTM4YTlkZDM1MmRmNDlhMzdmNzc3YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0
ZToKLSAgICBzdGF0aWMgUmVmPFR5cGluZ0NvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIEVUeXBpbmdDb21tYW5kIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgdGV4dCA9ICIiLCBPcHRp
b25zIG9wdGlvbnMgPSAwLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJH
cmFudWxhcml0eSkKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0NvbW1hbmQ+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIEVUeXBpbmdDb21tYW5kIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgdGV4dCA9
IGVtcHR5U3RyaW5nKCksIE9wdGlvbnMgb3B0aW9ucyA9IDAsIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVHlwaW5nQ29tbWFuZChkb2N1bWVudCwgY29tbWFuZCwgdGV4dCwgb3B0aW9u
cywgZ3JhbnVsYXJpdHksIFRleHRDb21wb3NpdGlvbk5vbmUpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAppbmRleCBhOTRiNzVlN2RhMTA1N2Nl
ZDJjM2IyZjJmY2UwZWFiZjgxZGJmMmI4Li4zYzBhYjkxMjQ4MzM1ZGM5MDBjMGQ2Y2U4MTcwZDI4
ZGJiMzEzZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5j
cHAKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmNsZWFudXAoKQog
ICAgIC8vIElmIHdlIGdldCBhbnkgZXJyb3IsIHdlIGRvIG5vdCBuZWVkIHRvIGtlZXAgYSBidWZm
ZXIgYXJvdW5kLgogICAgIGlmIChtX2Vycm9yQ29kZSkgewogICAgICAgICBtX3Jhd0RhdGEgPSBu
dWxscHRyOwotICAgICAgICBtX3N0cmluZ1Jlc3VsdCA9ICIiOworICAgICAgICBtX3N0cmluZ1Jl
c3VsdCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggMGQwNTk3OGZmYWE3YzZmZmU1
YTc3ODM5OWUzOTJkM2UxYTFmNWY5ZS4uMDU1MmM0OWYyNWI2NTZiNWZjZjZjNDdmNTEwNTM1NTc2
MjZjYTlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcApAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyB2b2lkIGZpbGxNZWRpYUxpc3RD
aGFpbihDU1NSdWxlKiBydWxlLCBBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTCiAg
ICAgICAgICAgICBpZiAoc291cmNlVVJMLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBzb3Vy
Y2VVUkwgPSBJbnNwZWN0b3JET01BZ2VudDo6ZG9jdW1lbnRVUkxTdHJpbmcocGFyZW50U3R5bGVT
aGVldC0+b3duZXJEb2N1bWVudCgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzb3Vy
Y2VVUkwgPSAiIjsKKyAgICAgICAgICAgIHNvdXJjZVVSTCA9IGVtcHR5U3RyaW5nKCk7CiAKICAg
ICAgICAgaWYgKG1lZGlhTGlzdCAmJiBtZWRpYUxpc3QtPmxlbmd0aCgpKQogICAgICAgICAgICAg
bWVkaWFBcnJheS5hZGRJdGVtKGJ1aWxkTWVkaWFPYmplY3QobWVkaWFMaXN0LCBpc01lZGlhUnVs
ZSA/IE1lZGlhTGlzdFNvdXJjZU1lZGlhUnVsZSA6IE1lZGlhTGlzdFNvdXJjZUltcG9ydFJ1bGUs
IHNvdXJjZVVSTCkpOwpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRpYyB2b2lkIGZpbGxNZWRpYUxp
c3RDaGFpbihDU1NSdWxlKiBydWxlLCBBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNT
CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHlsZVNoZWV0LT5jb250ZW50cygpLmJh
c2VVUkwoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwgPSBz
dHlsZVNoZWV0LT5jb250ZW50cygpLmJhc2VVUkwoKTsKICAgICAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVVJMID0gIiI7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2VVUkwgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgICAgICAg
ICBtZWRpYUFycmF5LmFkZEl0ZW0oYnVpbGRNZWRpYU9iamVjdChtZWRpYUxpc3QsIHN0eWxlU2hl
ZXQtPm93bmVyTm9kZSgpID8gTWVkaWFMaXN0U291cmNlTGlua2VkU2hlZXQgOiBNZWRpYUxpc3RT
b3VyY2VJbmxpbmVTaGVldCwgc291cmNlVVJMKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIHBhcmVudFJ1bGUgPSBzdHlsZVNoZWV0LT5vd25lclJ1bGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcAppbmRleCA5NTNjZTBmZjQ3
ODUyZWNhYzk2NTk2YWQyNTRiOWFjYWFiZGMxNzI0Li5kNDMxZWU3NGRmNmE0OTZlZDhhMjUzYzQw
YWY0M2MxOGMxMjRhN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250
ZW50VVJMUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVS
TFBhdHRlcm4uY3BwCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgVXNlckNvbnRlbnRVUkxQYXR0ZXJu
OjpwYXJzZShjb25zdCBTdHJpbmcmIHBhdHRlcm4pCiAKICAgICAgICAgaWYgKG1faG9zdCA9PSAi
KiIpIHsKICAgICAgICAgICAgIC8vIFRoZSBwYXR0ZXJuIGNhbiBiZSBqdXN0ICcqJywgd2hpY2gg
bWVhbnMgbWF0Y2ggYWxsIGRvbWFpbnMuCi0gICAgICAgICAgICBtX2hvc3QgPSAiIjsKKyAgICAg
ICAgICAgIG1faG9zdCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICBtX21hdGNoU3ViZG9t
YWlucyA9IHRydWU7CiAgICAgICAgIH0gZWxzZSBpZiAobV9ob3N0LnN0YXJ0c1dpdGgoIiouIikp
IHsKICAgICAgICAgICAgIC8vIFRoZSBmaXJzdCBjb21wb25lbnQgY2FuIGJlICcqJywgd2hpY2gg
bWVhbnMgdG8gbWF0Y2ggYWxsIHN1YmRvbWFpbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNmY2ZDMzNjU2YjViNTFiOTk4YTdi
NzczODE5Mjk4ZjkyYWVlY2IzZS4uYjRjODlkZTlhODNmMWQwMzgzZmZkOGVlYTg4NWFiMGFiOWFm
ZGM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcApAQCAtMzk2LDcgKzM5Niw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwgTWVkaWFTb3VyCiAgICAg
bV9jb250ZW50TUlNRVR5cGUgPSBjb250ZW50VHlwZS50eXBlKCkuY29udmVydFRvQVNDSUlMb3dl
cmNhc2UoKTsKICAgICBtX2NvbnRlbnRUeXBlQ29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVy
KGNvZGVjcygpKTsKICAgICBtX3VybCA9IHVybDsKLSAgICBtX2tleVN5c3RlbSA9ICIiOworICAg
IG1fa2V5U3lzdGVtID0gZW1wdHlTdHJpbmcoKTsKICAgICBtX2NvbnRlbnRNSU1FVHlwZVdhc0lu
ZmVycmVkRnJvbUV4dGVuc2lvbiA9IGZhbHNlOwogICAgIGxvYWRXaXRoTmV4dE1lZGlhRW5naW5l
KDApOwogICAgIHJldHVybiBtX2N1cnJlbnRNZWRpYUVuZ2luZTsKQEAgLTQxMCw4ICs0MTAsOCBA
QCBib29sIE1lZGlhUGxheWVyOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSogbWVkaWFTdHJlYW0p
CiAgICAgQVNTRVJUKG1lZGlhU3RyZWFtKTsKIAogICAgIG1fbWVkaWFTdHJlYW0gPSBtZWRpYVN0
cmVhbTsKLSAgICBtX2tleVN5c3RlbSA9ICIiOwotICAgIG1fY29udGVudE1JTUVUeXBlID0gIiI7
CisgICAgbV9rZXlTeXN0ZW0gPSBlbXB0eVN0cmluZygpOworICAgIG1fY29udGVudE1JTUVUeXBl
ID0gZW1wdHlTdHJpbmcoKTsKICAgICBtX2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4
dGVuc2lvbiA9IGZhbHNlOwogICAgIGxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKDApOwogICAgIHJl
dHVybiBtX2N1cnJlbnRNZWRpYUVuZ2luZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
RGF0YU9iamVjdEd0ay5oCmluZGV4IDMyNzdiM2JhNDIzMjMwODQxYjk1M2UzZWU4MzcxMmY1OGEx
MGU3OGUuLmJmNDljYjI4YzBlZjAxNDkxNjhmODM2MDNmNDc4ZWNjMzVmYmQ2YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuaApAQCAtNDcsNyArNDcsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNVUkwoKSBjb25zdCB7IHJldHVybiAhbV91cmwuaXNFbXB0
eSgpICYmIG1fdXJsLmlzVmFsaWQoKTsgfQogICAgIGJvb2wgaGFzRmlsZW5hbWVzKCkgY29uc3Qg
eyByZXR1cm4gIW1fZmlsZW5hbWVzLmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaGFzSW1hZ2UoKSBj
b25zdCB7IHJldHVybiBtX2ltYWdlOyB9Ci0gICAgdm9pZCBjbGVhclVSSUxpc3QoKSB7IG1fdXJp
TGlzdCA9ICIiOyB9CisgICAgdm9pZCBjbGVhclVSSUxpc3QoKSB7IG1fdXJpTGlzdCA9IGVtcHR5
U3RyaW5nKCk7IH0KICAgICB2b2lkIGNsZWFyVVJMKCkgeyBtX3VybCA9IFVSTCgpOyB9CiAgICAg
dm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlID0gbnVsbHB0cjsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwCmluZGV4IGFjOGZhZDhlZGE2ZjFkN2RlYzc2YTliOTIxNjZkNGFkYjg1MTg4OGUuLjQ2
YjE1MGY3ZGE2NWI4MGNmNjg2OTk5NzVjM2I1ZjQ5ODI2N2Y0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwCkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRS
ZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2EKICAgICBp
ZiAoY2hhbGxlbmdlICE9IGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgU3RyaW5nIHVzZXJwYXNzID0gIiI7CisgICAgU3RyaW5nIHVzZXJwYXNzID0gZW1w
dHlTdHJpbmcoKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KGQtPm1faGFuZGxlLCBDVVJMT1BUX1VT
RVJQV0QsIHVzZXJwYXNzLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgY2xlYXJBdXRoZW50aWNhdGlv
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5oCmluZGV4IDI4ZjdiNDhiOTk0MmNhN2RiNTM0YWIz
NTM3M2M0OGRhNjI5YjM5NmEuLjE1M2MzMDUwMGRkNjNiNjNmNDA2MTlhYjkzMmY2ZmNkZTQ0N2Jl
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmgKQEAgLTY3LDExICs2Nyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldHVwUE9TVChSZXNvdXJjZUhhbmRsZSosIHN0cnVjdCBjdXJsX3NsaXN0Kiop
OwogICAgIHZvaWQgc2V0dXBQVVQoUmVzb3VyY2VIYW5kbGUqLCBzdHJ1Y3QgY3VybF9zbGlzdCoq
KTsKIAotICAgIHZvaWQgc2V0UHJveHlJbmZvKGNvbnN0IFN0cmluZyYgaG9zdCA9ICIiLAotICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcG9ydCA9IDAsCi0gICAgICAgICAgICAg
ICAgICAgICAgUHJveHlUeXBlIHR5cGUgPSBIVFRQLAotICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFN0cmluZyYgdXNlcm5hbWUgPSAiIiwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBT
dHJpbmcmIHBhc3N3b3JkID0gIiIpOworICAgIHZvaWQgc2V0UHJveHlJbmZvKGNvbnN0IFN0cmlu
ZyYgaG9zdCA9IGVtcHR5U3RyaW5nKCksIHVuc2lnbmVkIGxvbmcgcG9ydCA9IDAsIFByb3h5VHlw
ZSA9IEhUVFAsIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUgPSBlbXB0eVN0cmluZygpLCBjb25zdCBT
dHJpbmcmIHBhc3N3b3JkID0gZW1wdHlTdHJpbmcoKSk7CiAKIHByaXZhdGU6CiAgICAgUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGMxOWJiMmYzMzE1NzBkZWJjYTEwYTY0M2U1OGI4
ZmVhMDc1OThjNTMuLmJiNjBkMzllNzZhZjlkYzMxMzE2YTc1MThlYzQwMjQ1NDMwZGQ2N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCkBAIC0xODQ3LDcgKzE4NDcsNyBAQCBTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjps
YXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCiAgICAgLy8gRHVtcCBhbiBlbXB0
eSBsYXllciB0cmVlIG9ubHkgaWYgdGhlIG9ubHkgY29tcG9zaXRlZCBsYXllciBpcyB0aGUgbWFp
biBmcmFtZSdzIHRpbGVkIGJhY2tpbmcsCiAgICAgLy8gc28gdGhhdCB0ZXN0cyBleHBlY3Rpbmcg
dXMgdG8gZHJvcCBvdXQgb2YgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgd2hlbiB0aGVyZSBhcmUg
bm8gbGF5ZXJzIHN1Y2NlZWQuCiAgICAgaWYgKCFoYXNBbnlBZGRpdGlvbmFsQ29tcG9zaXRlZExh
eWVycyhyb290UmVuZGVyTGF5ZXIoKSkgJiYgZG9jdW1lbnRVc2VzVGlsZWRCYWNraW5nKCkgJiYg
IShsYXllclRyZWVCZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVUaWxlQ2FjaGVzKSkK
LSAgICAgICAgbGF5ZXJUcmVlVGV4dCA9ICIiOworICAgICAgICBsYXllclRyZWVUZXh0ID0gZW1w
dHlTdHJpbmcoKTsKIAogICAgIC8vIFRoZSB0cnVlIHJvb3QgbGF5ZXIgaXMgbm90IGluY2x1ZGVk
IGluIHRoZSBkdW1wLCBzbyBpZiB3ZSB3YW50IHRvIHJlcG9ydAogICAgIC8vIGl0cyByZXBhaW50
IHJlY3RzLCB0aGV5IG11c3QgYmUgaW5jbHVkZWQgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAppbmRleCA2NjRjNTA4MDUwODYzMjQ1NGZlZDJl
MmYyYTAzMGFkYmUzZGU4NWM5Li5mY2I2MDIxZGE3MjM2ZDg2MDU0ZDRmMmE3ZTE2YzI1ZDg0YzMw
ODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
CkBAIC0xNDE4LDcgKzE0MTgsNyBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUNvbnRl
bnQoKQogICAgIGlmICghcHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fdGV4dCA9ICIiOworICAgIG1fdGV4dCA9IGVtcHR5U3RyaW5nKCk7CiAK
ICAgICBpZiAoaXNJbWFnZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgc29tZXdo
YXQgYXJiaXRyYXJ5IHdpZHRoLiAgR2VuZXJhdGVkIGltYWdlcyBmb3IgbWFya2VycyByZWFsbHkg
d29uJ3QgYmVjb21lIHBhcnRpY3VsYXJseSB1c2VmdWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDMwOTA3MmE2YzUwOGUyYzA1MTM2N2Fh
NDhlZDA0ZDYzZGZhOWQzZDEuLmM3ZjMxMDU1MjYzYTYwMzViZjYxNzA5ODQyNzk3M2M3N2RhMWEz
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cApAQCAtMTM0Myw3ICsxMzQzLDcgQEAgY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9u
PiYgUmVuZGVyU3R5bGU6Om5vbmVEYXNoYm9hcmRSZWdpb25zKCkKIAogICAgIGlmICghbm9uZUxp
c3RJbml0aWFsaXplZCkgewogICAgICAgICBTdHlsZURhc2hib2FyZFJlZ2lvbiByZWdpb247Ci0g
ICAgICAgIHJlZ2lvbi5sYWJlbCA9ICIiOworICAgICAgICByZWdpb24ubGFiZWwgPSBlbXB0eVN0
cmluZygpOwogICAgICAgICByZWdpb24ub2Zmc2V0LnRvcCgpICA9IExlbmd0aCgpOwogICAgICAg
ICByZWdpb24ub2Zmc2V0LnJpZ2h0KCkgPSBMZW5ndGgoKTsKICAgICAgICAgcmVnaW9uLm9mZnNl
dC5ib3R0b20oKSA9IExlbmd0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1RleHRNZXRyaWNzLmNwcAppbmRleCA0Njk4M2UxNjdmMjY4ZWYyMzNjZjJiZjQwODZhNjZi
NjQ3ZDE0MzAxLi43NjI3ZmU1NTMzNzY1ZTVkYjBlMTg0OTM0NTIxNjcxYWRmODM1MmI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzLmNwcApAQCAt
NTAsNyArNTAsNyBAQCBTVkdUZXh0TWV0cmljczo6U1ZHVGV4dE1ldHJpY3MoUmVuZGVyU1ZHSW5s
aW5lVGV4dCYgdGV4dFJlbmRlcmVyLCBjb25zdCBUZXh0UnVuJgogICAgIC8vIENhbGN1bGF0ZSB3
aWR0aC9oZWlnaHQgdXNpbmcgdGhlIHNjYWxlZCBmb250LCBkaXZpZGUgdGhpcyByZXN1bHQgYnkg
dGhlIHNjYWxpbmdGYWN0b3IgYWZ0ZXJ3YXJkcy4KICAgICBtX3dpZHRoID0gc2NhbGVkRm9udC53
aWR0aChydW4pIC8gc2NhbGluZ0ZhY3RvcjsKICAgICBsZW5ndGggPSBydW4ubGVuZ3RoKCk7Ci0g
ICAgbV9nbHlwaC5uYW1lID0gIiI7CisgICAgbV9nbHlwaC5uYW1lID0gZW1wdHlTdHJpbmcoKTsK
ICAgICBtX2hlaWdodCA9IHNjYWxlZEZvbnQuZm9udE1ldHJpY3MoKS5mbG9hdEhlaWdodCgpIC8g
c2NhbGluZ0ZhY3RvcjsKIAogICAgIG1fZ2x5cGgudW5pY29kZVN0cmluZyA9IHJ1bi5pczhCaXQo
KSA/IFN0cmluZyhydW4uY2hhcmFjdGVyczgoKSwgbGVuZ3RoKSA6IFN0cmluZyhydW4uY2hhcmFj
dGVyczE2KCksIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcAppbmRleCAxMDdk
NmFlNGNmZjRlMGQ0Yjg5ODAxZGRjNThmOTM4NDg5YzQ0Yjg1Li41MzY2MTllMGEyZDU0MWFhNWEw
MDExOTI5MTA0M2I2YzE0M2NlYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhcnNlci5jcHAKQEAg
LTE4OCw3ICsxODgsNyBAQCBQYXJzZXI6OlRva2VuIFBhcnNlcjo6bGV4U3RyaW5nKCkKICAgICAg
ICAgaWYgKG1fZGF0YVttX25leHRQb3NdID09IGRlbGltaXRlcikgewogICAgICAgICAgICAgU3Ry
aW5nIHZhbHVlID0gbV9kYXRhLnN1YnN0cmluZyhzdGFydFBvcywgbV9uZXh0UG9zIC0gc3RhcnRQ
b3MpOwogICAgICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIHZh
bHVlID0gIiI7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBlbXB0eVN0cmluZygpOwogICAgICAg
ICAgICAgKyttX25leHRQb3M7IC8vIENvbnN1bWUgdGhlIGNoYXIuCiAgICAgICAgICAgICByZXR1
cm4gVG9rZW4oTElURVJBTCwgdmFsdWUpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmluZGV4
IDgwMWRkNTA1MmRlOGU4ZDJhZmI0MTBkZTk4Zjg3MWQwNjA1ZDUzZTYuLjZlZDAzYWM4MDhlNTU1
Mjk3ZjMyZGY1Y2QxMjk4ZThiZmE5ZjRjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2Yv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC04Miw3ICs4
Miw3IEBAIHN0YXRpYyB2b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3Ry
aW5nKiBzZXR0aW5nKQogICAgIGVsc2UgaWYgKHR5cGUgPT0gQ0ZCb29sZWFuR2V0VHlwZUlEKCkp
CiAgICAgICAgICpzZXR0aW5nID0gc3RhdGljX2Nhc3Q8Ym9vbD4oQ0ZCb29sZWFuR2V0VmFsdWUo
c3RhdGljX2Nhc3Q8Q0ZCb29sZWFuUmVmPih2YWx1ZS5nZXQoKSkpKSA/ICJ0cnVlIiA6ICJmYWxz
ZSI7CiAgICAgZWxzZQotICAgICAgICAqc2V0dGluZyA9ICIiOworICAgICAgICAqc2V0dGluZyA9
IGVtcHR5U3RyaW5nKCk7CiB9CiAKIHN0YXRpYyB2b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBzZXR0aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggYjY0MzE2YmFlNDAzMzE3MWFmMzViYTUzN2YzYjhhMTE4ZTIx
ZDU3YS4uYzc3OTQyZjQwZTAxZTFmNzcwZjA5Y2ZjMDMxZTVkY2VlNjY5YTA4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xMDIwLDcgKzEwMjAsNyBAQCBz
dGF0aWMgaW5saW5lIEhUVFBIZWFkZXJNYXAgcGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMoY29uc3Qg
VmVjdG9yPGNoYXI+JiBidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKGNvbG9uID09IGVvbCkKLSAgICAg
ICAgICAgICAgICAgICAgdmFsdWUgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBl
bXB0eVN0cmluZygpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg
dmFsdWUgPSBTdHJpbmcoY29sb24sIGVvbCAtIGNvbG9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDc3ZTA1OWM3MDcxMjlmODQ3MzVi
MTczMDY2MTJkNWE3MGIwNmZlOWUuLjU3N2NkM2Y2MzhiYWYzNzQ5ZGFhOWU0NjVjMmY5NjBjZjJh
YmZlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KQEAgLTMwMDQsOCArMzAwNCw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0
YUZvckF0dGFjaG1lbnQoTlNTdHJpbmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0CiB2b2lkIFdl
YlZpZXdJbXBsOjpwYXN0ZWJvYXJkQ2hhbmdlZE93bmVyKE5TUGFzdGVib2FyZCAqcGFzdGVib2Fy
ZCkKIHsKICAgICBtX3Byb21pc2VkSW1hZ2UgPSBudWxscHRyOwotICAgIG1fcHJvbWlzZWRGaWxl
bmFtZSA9ICIiOwotICAgIG1fcHJvbWlzZWRVUkwgPSAiIjsKKyAgICBtX3Byb21pc2VkRmlsZW5h
bWUgPSBlbXB0eVN0cmluZygpOworICAgIG1fcHJvbWlzZWRVUkwgPSBlbXB0eVN0cmluZygpOwog
fQogCiB2b2lkIFdlYlZpZXdJbXBsOjpwcm92aWRlRGF0YUZvclBhc3RlYm9hcmQoTlNQYXN0ZWJv
YXJkICpwYXN0ZWJvYXJkLCBOU1N0cmluZyAqdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93
c2VyRnVuY3MuY3BwCmluZGV4IGM3NDFjNGRhNjY1MzY2NDBhNmNhNjFjNDNiZGRhZjRhMDM4YWMz
OTYuLjdlZGExMDBhODE5YTAzMTViOTEyY2NkMTUwYmU2NTMzNzgyZjdhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dz
ZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIHN0YXRpYyBI
VFRQSGVhZGVyTWFwIHBhcnNlUkZDODIySGVhZGVyRmllbGRzKGNvbnN0IGNoYXIqIGJ5dGVzLCB1
bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgaWYgKGNvbG9uID09IGVuZE9mTGluZSkKLSAgICAgICAgICAgICAgICB2
YWx1ZSA9ICIiOworICAgICAgICAgICAgICAgIHZhbHVlID0gZW1wdHlTdHJpbmcoKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB2YWx1ZSA9IFN0cmluZyhjb2xvbiwgZW5kT2ZM
aW5lIC0gY29sb24pOwogICAgICAgICAgICAgCkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIHZv
aWQgTlBOX1N0YXR1cyhOUFAgbnBwLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIFN0cmlu
ZyBzdGF0dXNiYXJUZXh0OwogICAgIGlmICghbWVzc2FnZSkKLSAgICAgICAgc3RhdHVzYmFyVGV4
dCA9ICIiOworICAgICAgICBzdGF0dXNiYXJUZXh0ID0gZW1wdHlTdHJpbmcoKTsKICAgICBlbHNl
CiAgICAgICAgIHN0YXR1c2JhclRleHQgPSBTdHJpbmc6OmZyb21VVEY4V2l0aExhdGluMUZhbGxi
YWNrKG1lc3NhZ2UsIHN0cmxlbihtZXNzYWdlKSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>