<?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>166919</bug_id>
          
          <creation_ts>2017-01-10 23:59:47 -0800</creation_ts>
          <short_desc>&quot;this&quot; missing after await in async arrow function</short_desc>
          <delta_ts>2017-01-21 03:38:06 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>CLOSED</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="Shuan Zhao">hszhsh</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>caitp</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1265696</commentid>
    <comment_count>0</comment_count>
    <who name="Shuan Zhao">hszhsh</who>
    <bug_when>2017-01-10 23:59:47 -0800</bug_when>
    <thetext>My test code is as follows.

function runSomething(callback) {
	callback();
}

class Test {
	testFunc() {
		this.prop = &quot;123&quot;;
		runSomething(async () =&gt; {
			console.log(&quot;callback &quot; + this.prop); // It&apos;s ok here
			await sleep(2);
			console.log(&quot;callback end &quot; + this.prop); // TypeError: undefined is not an object (evaluating &apos;this.prop&apos;)
		});
	}
}

let t = new Test();
t.testFunc();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265732</commentid>
    <comment_count>1</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-01-11 04:01:37 -0800</bug_when>
    <thetext>Hmm, it seems that find route of issue. 
At start execution of arrow function we load _this_ from virtual scope and put it to _this_ register, but when we suspend async arrow function and resume after await, we resume with value from generator.@generatorThis, that is empty. I&apos;ll try to prepare fix during today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265743</commentid>
    <comment_count>2</comment_count>
      <attachid>298574</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-01-11 06:20:08 -0800</bug_when>
    <thetext>Created attachment 298574
Patch

patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266102</commentid>
    <comment_count>3</comment_count>
      <attachid>298665</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-01-11 23:55:06 -0800</bug_when>
    <thetext>Created attachment 298665
Patch

Update readme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267032</commentid>
    <comment_count>4</comment_count>
      <attachid>298665</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-01-15 12:36:17 -0800</bug_when>
    <thetext>Comment on attachment 298665
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=298665&amp;action=review

r=me

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Async arrow function can be suspende and during resuming shold be use _this_ from 

&quot;suspende&quot; =&gt; &quot;suspended&quot;
&quot;and during resuming shold be use _this_&quot; =&gt; &quot;and when resumed should use _this_&quot;

&gt; JSTests/stress/async-arrow-functions-lexical-binding-in-class.js:52
&gt;      asyncThisPropBody() {

Can you also add some tests where we bind various &quot;this&quot; values and make sure we get the correct result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268124</commentid>
    <comment_count>5</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-01-19 10:35:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.
Committed r210925: &lt;http://trac.webkit.org/changeset/210925&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268502</commentid>
    <comment_count>6</comment_count>
      <attachid>298665</attachid>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-01-20 11:57:48 -0800</bug_when>
    <thetext>Comment on attachment 298665
Patch

Clearing flags on attachment: 298665

Patch landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268509</commentid>
    <comment_count>7</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-01-20 12:02:11 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; My test code is as follows.
&gt; 
&gt; function runSomething(callback) {
&gt; 	callback();
&gt; }
&gt; 
&gt; class Test {
&gt; 	testFunc() {
&gt; 		this.prop = &quot;123&quot;;
&gt; 		runSomething(async () =&gt; {
&gt; 			console.log(&quot;callback &quot; + this.prop); // It&apos;s ok here
&gt; 			await sleep(2);
&gt; 			console.log(&quot;callback end &quot; + this.prop); // TypeError: undefined is not
&gt; an object (evaluating &apos;this.prop&apos;)
&gt; 		});
&gt; 	}
&gt; }
&gt; 
&gt; let t = new Test();
&gt; t.testFunc();

Shuan Zhao, Could you please check if issue is fixed and close it? 
I don&apos;t have permissions to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268746</commentid>
    <comment_count>8</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-01-21 03:38:06 -0800</bug_when>
    <thetext>Shuan Zhao, Thanks for filling and closing issue :-)!
Saam Barati, Thanks for review!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298574</attachid>
            <date>2017-01-11 06:20:08 -0800</date>
            <delta_ts>2017-01-11 23:54:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166919-20170111161829.patch</filename>
            <type>text/plain</type>
            <size>7611</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
YmZhYjkyMmZkZWZjNGJkMTU0YzNhYjllNTFjNjNjZjQxM2QxYjViLi5hY2Y0OWJlZjU3NWVlYTQ5
NTk1ZGYyMWFmMzk1NzAyYWRlMTNhMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0wMS0xMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICAidGhpcyIgbWlzc2luZyBhZnRlciBhd2FpdCBpbiBhc3luYyBh
cnJvdyBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY2OTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpcyBmaXggaXNzdWUgaW4gYXN5bmMgYXJyb3cgZnVuY3Rpb24uIElz
c3VlIGlzIGFwcGVhciBiZWNhdXNlIGluIGFycm93CisgICAgICAgIGZ1bmN0aW9uIF90aGlzXyBp
cyBsb2FkZWQgZnJvbSBhcnJvdyBmdW5jdGlvbiB2aXJ0dWFsIHNjb3BlLiBBc3luYyBhcnJvdyBm
dW5jdGlvbiBjYW4gYmUgc3VzcGVuZGVkCisgICAgICAgIGFuZCBkdXJpbmcgcmVzdW0gc2hvbGQg
YmUgdXNlZCBjb3JyZWN0IF90aGlzXworCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKwog
MjAxNy0wMS0wOSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAog
ICAgICAgICBbRVNOZXh0XSBBc3luYyBpdGVyYXRpb24gLSBJbXBsZW1lbnQgQXN5bmMgR2VuZXJh
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKaW5kZXggNGU3ZmQ1YjcxNTk4OGU2ZGFlOWIzNDg3MTcyNDY3MjYwZmI1YzlhZS4u
MDk5YTBjMTE0YTY3Zjc4N2M4NWIyNDMwOTU1YWZlOTFhM2RlZmJhNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMzUz
MCw2ICszNTMwLDkgQEAgdm9pZCBGdW5jdGlvbk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKICAgICAgICAgICAgIFJlZlB0cjxSZWdp
c3RlcklEPiBob21lT2JqZWN0ID0gZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUoZ2VuZXJhdG9yKTsK
ICAgICAgICAgICAgIGVtaXRQdXRIb21lT2JqZWN0KGdlbmVyYXRvciwgbmV4dC5nZXQoKSwgaG9t
ZU9iamVjdC5nZXQoKSk7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChnZW5lcmF0
b3IucGFyc2VNb2RlKCkgPT0gU291cmNlUGFyc2VNb2RlOjpBc3luY0Fycm93RnVuY3Rpb25Nb2Rl
ICYmIGdlbmVyYXRvci5pc1RoaXNVc2VkSW5Jbm5lckFycm93RnVuY3Rpb24oKSkKKyAgICAgICAg
ICAgIGdlbmVyYXRvci5lbWl0TG9hZFRoaXNGcm9tQXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9u
bWVudCgpOwogCiAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2VuZXJhdG9yRmllbGRzKG5leHQu
Z2V0KCkpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDdkZTNmY2E1YjdhNzM0Y2NmZGQzZTg5ODE1Yjg3MzBiNjBkNDU1MTcuLmRiM2Iy
YmFjYjQ2OTE4ODFiNDc2NmE2OTNjYmEwMDY1MjZjZWNkZmQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTct
MDEtMTEgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2FjaGtvdkBnbWFpbC5jb20+CisKKyAgICAg
ICAgInRoaXMiIG1pc3NpbmcgYWZ0ZXIgYXdhaXQgaW4gYXN5bmMgYXJyb3cgZnVuY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjkxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2Fz
eW5jLWFycm93LWZ1bmN0aW9ucy1sZXhpY2FsLWJpbmRpbmctaW4tY2xhc3MuanM6CisgICAgICAg
IChDaGlsZENsYXNzLnByb3RvdHlwZS5hc3luY1RoaXNQcm9wV2l0aEF3YWl0Qm9keSk6CisgICAg
ICAgIChDaGlsZENsYXNzLnByb3RvdHlwZS5hc3luY1RoaXNQcm9wSW5FdmFsV2l0aEF3YWl0Qm9k
eSk6CisgICAgICAgIChDaGlsZENsYXNzLnByb3RvdHlwZS5hc3luY1RoaXNWYWx1ZUJvZHlXaXRo
QXdhaXQpOgorICAgICAgICAoQ2hpbGRDbGFzcy5wcm90b3R5cGUuYXN5bmNUaGlzVmFsdWVJbkV2
YWxXaXRoQXdhaXRCb2R5KToKKyAgICAgICAgKENoaWxkQ2xhc3MpOgorICAgICAgICAoQ2hpbGRD
bGFzczMpOgorICAgICAgICAoQ2hpbGRDbGFzczMucHJvdG90eXBlLmNsYXNzVmFsdWUpOgorICAg
ICAgICAoQ2hpbGRDbGFzczMucHJvdG90eXBlLmdldCBjbGFzc1Byb3BlcnR5KToKKyAgICAgICAg
KiBzdHJlc3MvYXN5bmMtYXJyb3ctZnVuY3Rpb25zLWxleGljYWwtbmV3LnRhcmdldC1iaW5kaW5n
LmpzOgorICAgICAgICAoQzJXaXRoQXdhaXQpOgorCiAyMDE3LTAxLTA5ICBTa2FjaGtvdiBPbGVr
c2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAgIFtFU05leHRdIEFzeW5jIGl0
ZXJhdGlvbiAtIEltcGxlbWVudCBBc3luYyBHZW5lcmF0b3IKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2FzeW5jLWFycm93LWZ1bmN0aW9ucy1sZXhpY2FsLWJpbmRpbmctaW4tY2xhc3MuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hcnJvdy1mdW5jdGlvbnMtbGV4aWNhbC1iaW5kaW5nLWlu
LWNsYXNzLmpzCmluZGV4IDE2ZmMwZGZkNTUwOWUzNjBkOWZkMWYzOTA3MGYxMjI1NDhiMTEwOTgu
LjVlMjEyNzhhMmUyNjcwNDVhNzgxYjQ5OWVlYTRjOTZkZGFkNGIzYzcgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL2FzeW5jLWFycm93LWZ1bmN0aW9ucy1sZXhpY2FsLWJpbmRpbmctaW4tY2xh
c3MuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXN5bmMtYXJyb3ctZnVuY3Rpb25zLWxleGljYWwt
YmluZGluZy1pbi1jbGFzcy5qcwpAQCAtNTIsMjQgKzUyLDUyIEBAIGNsYXNzIENoaWxkQ2xhc3Mg
ZXh0ZW5kcyBCYXNlQ2xhc3MgewogICAgIGFzeW5jVGhpc1Byb3BCb2R5KCkgewogICAgICAgICBy
ZXR1cm4gYXN5bmMgeCA9PiB7IHJldHVybiB0aGlzLmNsYXNzUHJvcGVydHk7IH07CiAgICAgfQor
ICAgIGFzeW5jVGhpc1Byb3BXaXRoQXdhaXRCb2R5KCkgeworICAgICAgICByZXR1cm4gYXN5bmMg
eCA9PiB7IAorICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzLmNsYXNzUHJvcGVydHk7IAorICAg
ICAgICAgICAgc2VsZiA9IGF3YWl0ICdhYmMnOyAgCisgICAgICAgICAgICByZXR1cm4gdGhpcy5j
bGFzc1Byb3BlcnR5OyAKKyAgICAgICAgfTsKKyAgICB9CiAgICAgYXN5bmNUaGlzUHJvcEluRXZh
bEV4cCgpIHsKICAgICAgICAgcmV0dXJuIGFzeW5jIHggPT4gZXZhbCgndGhpcy5jbGFzc1Byb3Bl
cnR5Jyk7CiAgICAgfQogICAgIGFzeW5jVGhpc1Byb3BJbkV2YWxCb2R5KCkgewogICAgICAgICBy
ZXR1cm4gYXN5bmMgeCA9PiB7IHJldHVybiBldmFsKCd0aGlzLmNsYXNzUHJvcGVydHknKTsgfTsK
ICAgICB9CisgICAgYXN5bmNUaGlzUHJvcEluRXZhbFdpdGhBd2FpdEJvZHkoKSB7CisgICAgICAg
IHJldHVybiBhc3luYyB4ID0+IHsgCisgICAgICAgICAgICB2YXIgc2VsZiA9IGV2YWwoJ3RoaXMu
Y2xhc3NQcm9wZXJ0eScpOworICAgICAgICAgICAgYXdhaXQgJ2FiYyc7CisgICAgICAgICAgICBy
ZXR1cm4gZXZhbCgndGhpcy5jbGFzc1Byb3BlcnR5Jyk7IAorICAgICAgICB9OworICAgIH0KICAg
ICBhc3luY1RoaXNWYWx1ZUV4cCgpIHsKICAgICAgICAgcmV0dXJuIGFzeW5jIHggPT4gdGhpcy5j
bGFzc1ZhbHVlKCk7CiAgICAgfQogICAgIGFzeW5jVGhpc1ZhbHVlQm9keSgpIHsKICAgICAgICAg
cmV0dXJuIGFzeW5jIHggPT4geyByZXR1cm4gdGhpcy5jbGFzc1ZhbHVlKCk7IH07CiAgICAgfQor
ICAgIGFzeW5jVGhpc1ZhbHVlQm9keVdpdGhBd2FpdCgpIHsKKyAgICAgICAgcmV0dXJuIGFzeW5j
IHggPT4geyAKKyAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcy5jbGFzc1ZhbHVlKCk7CisgICAg
ICAgICAgICBhd2FpdCAnc2VsZic7IAorICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xhc3NWYWx1
ZSgpOyAKKyAgICAgICAgfTsKKyAgICB9CiAgICAgYXN5bmNUaGlzVmFsdWVJbkV2YWxFeHAoKSB7
CiAgICAgICAgIHJldHVybiBhc3luYyB4ID0+IGV2YWwoJ3RoaXMuY2xhc3NWYWx1ZSgpJyk7CiAg
ICAgfQogICAgIGFzeW5jVGhpc1ZhbHVlSW5FdmFsQm9keSgpIHsKICAgICAgICAgcmV0dXJuIGFz
eW5jIHggPT4geyByZXR1cm4gZXZhbCgndGhpcy5jbGFzc1ZhbHVlKCknKTsgfTsKICAgICB9Cisg
ICAgYXN5bmNUaGlzVmFsdWVJbkV2YWxXaXRoQXdhaXRCb2R5KCkgeworICAgICAgICByZXR1cm4g
YXN5bmMgeCA9PiB7IAorICAgICAgICAgICAgdmFyIHNlbGYgPSBldmFsKCd0aGlzLmNsYXNzVmFs
dWUoKScpOworICAgICAgICAgICAgYXdhaXQgJ3NlbGYnOyAKKyAgICAgICAgICAgIHJldHVybiBl
dmFsKCd0aGlzLmNsYXNzVmFsdWUoKScpOyAKKyAgICAgICAgfTsKKyAgICB9CiB9CiAKIHNob3Vs
ZEJlQXN5bmMoInZhbHVlIiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1ZhbHVlRXhwKCkpOwpAQCAt
NzcsMTUgKzEwNSwxOSBAQCBzaG91bGRCZUFzeW5jKCJ2YWx1ZSIsIG5ldyBDaGlsZENsYXNzKCku
YXN5bmNWYWx1ZUJvZHkoKSk7CiAKIHNob3VsZEJlQXN5bmMoImNsYXNzUHJvcGVydHkiLCBuZXcg
Q2hpbGRDbGFzcygpLmFzeW5jVGhpc1Byb3BFeHAoKSk7CiBzaG91bGRCZUFzeW5jKCJjbGFzc1By
b3BlcnR5IiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1RoaXNQcm9wQm9keSgpKTsKK3Nob3VsZEJl
QXN5bmMoImNsYXNzUHJvcGVydHkiLCBuZXcgQ2hpbGRDbGFzcygpLmFzeW5jVGhpc1Byb3BXaXRo
QXdhaXRCb2R5KCkpOwogCiBzaG91bGRCZUFzeW5jKCJjbGFzc1Byb3BlcnR5IiwgbmV3IENoaWxk
Q2xhc3MoKS5hc3luY1RoaXNQcm9wSW5FdmFsRXhwKCkpOwogc2hvdWxkQmVBc3luYygiY2xhc3NQ
cm9wZXJ0eSIsIG5ldyBDaGlsZENsYXNzKCkuYXN5bmNUaGlzUHJvcEluRXZhbEJvZHkoKSk7Citz
aG91bGRCZUFzeW5jKCJjbGFzc1Byb3BlcnR5IiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1RoaXNQ
cm9wSW5FdmFsV2l0aEF3YWl0Qm9keSgpKTsKIAogc2hvdWxkQmVBc3luYygiY2xhc3NWYWx1ZSIs
IG5ldyBDaGlsZENsYXNzKCkuYXN5bmNUaGlzVmFsdWVFeHAoKSk7CiBzaG91bGRCZUFzeW5jKCJj
bGFzc1ZhbHVlIiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1RoaXNWYWx1ZUJvZHkoKSk7CitzaG91
bGRCZUFzeW5jKCJjbGFzc1ZhbHVlIiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1RoaXNWYWx1ZUJv
ZHlXaXRoQXdhaXQoKSk7CiAKIHNob3VsZEJlQXN5bmMoImNsYXNzVmFsdWUiLCBuZXcgQ2hpbGRD
bGFzcygpLmFzeW5jVGhpc1ZhbHVlSW5FdmFsRXhwKCkpOwogc2hvdWxkQmVBc3luYygiY2xhc3NW
YWx1ZSIsIG5ldyBDaGlsZENsYXNzKCkuYXN5bmNUaGlzVmFsdWVJbkV2YWxCb2R5KCkpOworc2hv
dWxkQmVBc3luYygiY2xhc3NWYWx1ZSIsIG5ldyBDaGlsZENsYXNzKCkuYXN5bmNUaGlzVmFsdWVJ
bkV2YWxXaXRoQXdhaXRCb2R5KCkpOwogCiBjbGFzcyBDaGlsZENsYXNzMiBleHRlbmRzIEJhc2VD
bGFzcyB7CiAgICAgY29uc3RydWN0b3IoKSB7CkBAIC0xMDEsMyArMTMzLDIyIEBAIGNsYXNzIENo
aWxkQ2xhc3MyIGV4dGVuZHMgQmFzZUNsYXNzIHsKIH0KIAogc2hvdWxkQmVBc3luYygiY2xhc3NW
YWx1ZSBjbGFzc1Byb3BlcnR5IiwgbmV3IENoaWxkQ2xhc3MyKCkpOworCitjbGFzcyBDaGlsZENs
YXNzMyBleHRlbmRzIEJhc2VDbGFzcyB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHN1
cGVyKCk7CisgICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICB2YXIgc2Vs
ZiA9IHRoaXMuY2xhc3NWYWx1ZSgpICsgJyAnICsgdGhpcy5jbGFzc1Byb3BlcnR5OworICAgICAg
ICAgICAgYXdhaXQgJ3NlbGYnOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xhc3NWYWx1ZSgp
ICsgJyAnICsgdGhpcy5jbGFzc1Byb3BlcnR5OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNz
VmFsdWUoKSB7CisgICAgICAgIHJldHVybiAiY2xhc3NWYWx1ZSI7CisgICAgfQorICAgIGdldCBj
bGFzc1Byb3BlcnR5KCkgeworICAgICAgICByZXR1cm4gImNsYXNzUHJvcGVydHkiOworICAgIH0K
K30KKworc2hvdWxkQmVBc3luYygiY2xhc3NWYWx1ZSBjbGFzc1Byb3BlcnR5IiwgbmV3IENoaWxk
Q2xhc3MzKCkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMtYXJyb3ctZnVuY3Rp
b25zLWxleGljYWwtbmV3LnRhcmdldC1iaW5kaW5nLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXN5bmMt
YXJyb3ctZnVuY3Rpb25zLWxleGljYWwtbmV3LnRhcmdldC1iaW5kaW5nLmpzCmluZGV4IDM2ZGYw
YTMxMTA2ZTNiY2JlZGJmYWY1OGExYzM5MzUzMTI0NThjNGQuLmUwZTlkODNjOWY5MWRjOWY3YzE5
NTU1MTE3ODQ3NzE5MmI2ZDgxMDEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWFy
cm93LWZ1bmN0aW9ucy1sZXhpY2FsLW5ldy50YXJnZXQtYmluZGluZy5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9hc3luYy1hcnJvdy1mdW5jdGlvbnMtbGV4aWNhbC1uZXcudGFyZ2V0LWJpbmRpbmcu
anMKQEAgLTQzLDEwICs0MywxOSBAQCBmdW5jdGlvbiBDMigpIHsKICAgICByZXR1cm4gYXN5bmMg
KCkgPT4geyByZXR1cm4gYXdhaXQgbmV3LnRhcmdldCB9OwogfQogCitmdW5jdGlvbiBDMldpdGhB
d2FpdCgpIHsKKyAgICByZXR1cm4gYXN5bmMgKCkgPT4geyAKKyAgICAgICAgdmFyIHNlbGYgPSBu
ZXcudGFyZ2V0OyBhd2FpdCBuZXcudGFyZ2V0OworICAgICAgICByZXR1cm4gbmV3LnRhcmdldDsK
KyAgICB9Cit9CisKIHNob3VsZEJlQXN5bmMoQzEsIG5ldyBDMSgpKTsKIHNob3VsZEJlQXN5bmMo
dW5kZWZpbmVkLCBDMSgpKTsKIHNob3VsZEJlQXN5bmMoQzIsIG5ldyBDMigpKTsKIHNob3VsZEJl
QXN5bmModW5kZWZpbmVkLCBDMigpKTsKK3Nob3VsZEJlQXN5bmMoQzJXaXRoQXdhaXQsIG5ldyBD
MldpdGhBd2FpdCgpKTsKK3Nob3VsZEJlQXN5bmModW5kZWZpbmVkLCBDMldpdGhBd2FpdCgpKTsK
IAogc2hvdWxkVGhyb3dBc3luYyhhc3luYyAoKSA9PiBhd2FpdCBuZXcudGFyZ2V0LCBSZWZlcmVu
Y2VFcnJvcik7CiBzaG91bGRUaHJvd0FzeW5jKGFzeW5jICgpID0+IHsgcmV0dXJuIGF3YWl0IG5l
dy50YXJnZXQ7IH0sIFJlZmVyZW5jZUVycm9yKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298665</attachid>
            <date>2017-01-11 23:55:06 -0800</date>
            <delta_ts>2017-01-20 11:57:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166919-20170112095326.patch</filename>
            <type>text/plain</type>
            <size>7743</size>
            <attacher name="GSkachkov">gskachkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
YmZhYjkyMmZkZWZjNGJkMTU0YzNhYjllNTFjNjNjZjQxM2QxYjViLi40YTNiZmU1NzA3YTk0NTlk
YWE1OTI2OWYyYTI2MzljZDM2ZTJhZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNy0wMS0xMSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdt
YWlsLmNvbT4KKworICAgICAgICAidGhpcyIgbWlzc2luZyBhZnRlciBhd2FpdCBpbiBhc3luYyBh
cnJvdyBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY2OTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBmaXhlZCBpc3N1ZSBpbiBhc3luYyBhcnJvdyBmdW5jdGlvbi4gSXNz
dWUgYXBwZWFycyBiZWNhdXNlIGluIGFycm93CisgICAgICAgIGZ1bmN0aW9uIF90aGlzXyBpcyBs
b2FkZWQgZnJvbSBhcnJvdyBmdW5jdGlvbiB2aXJ0dWFsIHNjb3BlLiAKKyAgICAgICAgQXN5bmMg
YXJyb3cgZnVuY3Rpb24gY2FuIGJlIHN1c3BlbmRlIGFuZCBkdXJpbmcgcmVzdW1pbmcgc2hvbGQg
YmUgdXNlIF90aGlzXyBmcm9tIAorICAgICAgICB2aXJ0dWFsIHNjb3BlLCB0byBhbGxvdyB0aGlz
IHdlIGxvYWQgX3RoaXNfIGZyb20gdmlydHVhbCBzY29wZSBiZWZvcmUgc3RvcmUgaXQgdG8gCisg
ICAgICAgIGdlbmVyYXRvci5nZW5lcmF0b3JUaGlzIHByb3BlcnR5IAorCisgICAgICAgICogYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uTm9kZTo6
ZW1pdEJ5dGVjb2RlKToKKwogMjAxNy0wMS0wOSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNo
a292QGdtYWlsLmNvbT4KIAogICAgICAgICBbRVNOZXh0XSBBc3luYyBpdGVyYXRpb24gLSBJbXBs
ZW1lbnQgQXN5bmMgR2VuZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggNGU3ZmQ1YjcxNTk4OGU2ZGFlOWIzNDg3
MTcyNDY3MjYwZmI1YzlhZS4uMDk5YTBjMTE0YTY3Zjc4N2M4NWIyNDMwOTU1YWZlOTFhM2RlZmJh
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcApAQCAtMzUzMCw2ICszNTMwLDkgQEAgdm9pZCBGdW5jdGlvbk5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKICAgICAg
ICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBob21lT2JqZWN0ID0gZW1pdEhvbWVPYmplY3RGb3JD
YWxsZWUoZ2VuZXJhdG9yKTsKICAgICAgICAgICAgIGVtaXRQdXRIb21lT2JqZWN0KGdlbmVyYXRv
ciwgbmV4dC5nZXQoKSwgaG9tZU9iamVjdC5nZXQoKSk7CiAgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGlmIChnZW5lcmF0b3IucGFyc2VNb2RlKCkgPT0gU291cmNlUGFyc2VNb2RlOjpBc3lu
Y0Fycm93RnVuY3Rpb25Nb2RlICYmIGdlbmVyYXRvci5pc1RoaXNVc2VkSW5Jbm5lckFycm93RnVu
Y3Rpb24oKSkKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TG9hZFRoaXNGcm9tQXJyb3dGdW5j
dGlvbkxleGljYWxFbnZpcm9ubWVudCgpOwogCiAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2Vu
ZXJhdG9yRmllbGRzKG5leHQuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdkZTNmY2E1YjdhNzM0Y2NmZGQzZTg5ODE1Yjg3
MzBiNjBkNDU1MTcuLmRiM2IyYmFjYjQ2OTE4ODFiNDc2NmE2OTNjYmEwMDY1MjZjZWNkZmQgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTctMDEtMTEgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2FjaGtvdkBn
bWFpbC5jb20+CisKKyAgICAgICAgInRoaXMiIG1pc3NpbmcgYWZ0ZXIgYXdhaXQgaW4gYXN5bmMg
YXJyb3cgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3RyZXNzL2FzeW5jLWFycm93LWZ1bmN0aW9ucy1sZXhpY2FsLWJpbmRpbmctaW4t
Y2xhc3MuanM6CisgICAgICAgIChDaGlsZENsYXNzLnByb3RvdHlwZS5hc3luY1RoaXNQcm9wV2l0
aEF3YWl0Qm9keSk6CisgICAgICAgIChDaGlsZENsYXNzLnByb3RvdHlwZS5hc3luY1RoaXNQcm9w
SW5FdmFsV2l0aEF3YWl0Qm9keSk6CisgICAgICAgIChDaGlsZENsYXNzLnByb3RvdHlwZS5hc3lu
Y1RoaXNWYWx1ZUJvZHlXaXRoQXdhaXQpOgorICAgICAgICAoQ2hpbGRDbGFzcy5wcm90b3R5cGUu
YXN5bmNUaGlzVmFsdWVJbkV2YWxXaXRoQXdhaXRCb2R5KToKKyAgICAgICAgKENoaWxkQ2xhc3Mp
OgorICAgICAgICAoQ2hpbGRDbGFzczMpOgorICAgICAgICAoQ2hpbGRDbGFzczMucHJvdG90eXBl
LmNsYXNzVmFsdWUpOgorICAgICAgICAoQ2hpbGRDbGFzczMucHJvdG90eXBlLmdldCBjbGFzc1By
b3BlcnR5KToKKyAgICAgICAgKiBzdHJlc3MvYXN5bmMtYXJyb3ctZnVuY3Rpb25zLWxleGljYWwt
bmV3LnRhcmdldC1iaW5kaW5nLmpzOgorICAgICAgICAoQzJXaXRoQXdhaXQpOgorCiAyMDE3LTAx
LTA5ICBTa2FjaGtvdiBPbGVrc2FuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAg
IFtFU05leHRdIEFzeW5jIGl0ZXJhdGlvbiAtIEltcGxlbWVudCBBc3luYyBHZW5lcmF0b3IKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWFycm93LWZ1bmN0aW9ucy1sZXhpY2FsLWJp
bmRpbmctaW4tY2xhc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hcnJvdy1mdW5jdGlvbnMt
bGV4aWNhbC1iaW5kaW5nLWluLWNsYXNzLmpzCmluZGV4IDE2ZmMwZGZkNTUwOWUzNjBkOWZkMWYz
OTA3MGYxMjI1NDhiMTEwOTguLjVlMjEyNzhhMmUyNjcwNDVhNzgxYjQ5OWVlYTRjOTZkZGFkNGIz
YzcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWFycm93LWZ1bmN0aW9ucy1sZXhp
Y2FsLWJpbmRpbmctaW4tY2xhc3MuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXN5bmMtYXJyb3ct
ZnVuY3Rpb25zLWxleGljYWwtYmluZGluZy1pbi1jbGFzcy5qcwpAQCAtNTIsMjQgKzUyLDUyIEBA
IGNsYXNzIENoaWxkQ2xhc3MgZXh0ZW5kcyBCYXNlQ2xhc3MgewogICAgIGFzeW5jVGhpc1Byb3BC
b2R5KCkgewogICAgICAgICByZXR1cm4gYXN5bmMgeCA9PiB7IHJldHVybiB0aGlzLmNsYXNzUHJv
cGVydHk7IH07CiAgICAgfQorICAgIGFzeW5jVGhpc1Byb3BXaXRoQXdhaXRCb2R5KCkgeworICAg
ICAgICByZXR1cm4gYXN5bmMgeCA9PiB7IAorICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzLmNs
YXNzUHJvcGVydHk7IAorICAgICAgICAgICAgc2VsZiA9IGF3YWl0ICdhYmMnOyAgCisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5jbGFzc1Byb3BlcnR5OyAKKyAgICAgICAgfTsKKyAgICB9CiAgICAg
YXN5bmNUaGlzUHJvcEluRXZhbEV4cCgpIHsKICAgICAgICAgcmV0dXJuIGFzeW5jIHggPT4gZXZh
bCgndGhpcy5jbGFzc1Byb3BlcnR5Jyk7CiAgICAgfQogICAgIGFzeW5jVGhpc1Byb3BJbkV2YWxC
b2R5KCkgewogICAgICAgICByZXR1cm4gYXN5bmMgeCA9PiB7IHJldHVybiBldmFsKCd0aGlzLmNs
YXNzUHJvcGVydHknKTsgfTsKICAgICB9CisgICAgYXN5bmNUaGlzUHJvcEluRXZhbFdpdGhBd2Fp
dEJvZHkoKSB7CisgICAgICAgIHJldHVybiBhc3luYyB4ID0+IHsgCisgICAgICAgICAgICB2YXIg
c2VsZiA9IGV2YWwoJ3RoaXMuY2xhc3NQcm9wZXJ0eScpOworICAgICAgICAgICAgYXdhaXQgJ2Fi
Yyc7CisgICAgICAgICAgICByZXR1cm4gZXZhbCgndGhpcy5jbGFzc1Byb3BlcnR5Jyk7IAorICAg
ICAgICB9OworICAgIH0KICAgICBhc3luY1RoaXNWYWx1ZUV4cCgpIHsKICAgICAgICAgcmV0dXJu
IGFzeW5jIHggPT4gdGhpcy5jbGFzc1ZhbHVlKCk7CiAgICAgfQogICAgIGFzeW5jVGhpc1ZhbHVl
Qm9keSgpIHsKICAgICAgICAgcmV0dXJuIGFzeW5jIHggPT4geyByZXR1cm4gdGhpcy5jbGFzc1Zh
bHVlKCk7IH07CiAgICAgfQorICAgIGFzeW5jVGhpc1ZhbHVlQm9keVdpdGhBd2FpdCgpIHsKKyAg
ICAgICAgcmV0dXJuIGFzeW5jIHggPT4geyAKKyAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcy5j
bGFzc1ZhbHVlKCk7CisgICAgICAgICAgICBhd2FpdCAnc2VsZic7IAorICAgICAgICAgICAgcmV0
dXJuIHRoaXMuY2xhc3NWYWx1ZSgpOyAKKyAgICAgICAgfTsKKyAgICB9CiAgICAgYXN5bmNUaGlz
VmFsdWVJbkV2YWxFeHAoKSB7CiAgICAgICAgIHJldHVybiBhc3luYyB4ID0+IGV2YWwoJ3RoaXMu
Y2xhc3NWYWx1ZSgpJyk7CiAgICAgfQogICAgIGFzeW5jVGhpc1ZhbHVlSW5FdmFsQm9keSgpIHsK
ICAgICAgICAgcmV0dXJuIGFzeW5jIHggPT4geyByZXR1cm4gZXZhbCgndGhpcy5jbGFzc1ZhbHVl
KCknKTsgfTsKICAgICB9CisgICAgYXN5bmNUaGlzVmFsdWVJbkV2YWxXaXRoQXdhaXRCb2R5KCkg
eworICAgICAgICByZXR1cm4gYXN5bmMgeCA9PiB7IAorICAgICAgICAgICAgdmFyIHNlbGYgPSBl
dmFsKCd0aGlzLmNsYXNzVmFsdWUoKScpOworICAgICAgICAgICAgYXdhaXQgJ3NlbGYnOyAKKyAg
ICAgICAgICAgIHJldHVybiBldmFsKCd0aGlzLmNsYXNzVmFsdWUoKScpOyAKKyAgICAgICAgfTsK
KyAgICB9CiB9CiAKIHNob3VsZEJlQXN5bmMoInZhbHVlIiwgbmV3IENoaWxkQ2xhc3MoKS5hc3lu
Y1ZhbHVlRXhwKCkpOwpAQCAtNzcsMTUgKzEwNSwxOSBAQCBzaG91bGRCZUFzeW5jKCJ2YWx1ZSIs
IG5ldyBDaGlsZENsYXNzKCkuYXN5bmNWYWx1ZUJvZHkoKSk7CiAKIHNob3VsZEJlQXN5bmMoImNs
YXNzUHJvcGVydHkiLCBuZXcgQ2hpbGRDbGFzcygpLmFzeW5jVGhpc1Byb3BFeHAoKSk7CiBzaG91
bGRCZUFzeW5jKCJjbGFzc1Byb3BlcnR5IiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1RoaXNQcm9w
Qm9keSgpKTsKK3Nob3VsZEJlQXN5bmMoImNsYXNzUHJvcGVydHkiLCBuZXcgQ2hpbGRDbGFzcygp
LmFzeW5jVGhpc1Byb3BXaXRoQXdhaXRCb2R5KCkpOwogCiBzaG91bGRCZUFzeW5jKCJjbGFzc1By
b3BlcnR5IiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1RoaXNQcm9wSW5FdmFsRXhwKCkpOwogc2hv
dWxkQmVBc3luYygiY2xhc3NQcm9wZXJ0eSIsIG5ldyBDaGlsZENsYXNzKCkuYXN5bmNUaGlzUHJv
cEluRXZhbEJvZHkoKSk7CitzaG91bGRCZUFzeW5jKCJjbGFzc1Byb3BlcnR5IiwgbmV3IENoaWxk
Q2xhc3MoKS5hc3luY1RoaXNQcm9wSW5FdmFsV2l0aEF3YWl0Qm9keSgpKTsKIAogc2hvdWxkQmVB
c3luYygiY2xhc3NWYWx1ZSIsIG5ldyBDaGlsZENsYXNzKCkuYXN5bmNUaGlzVmFsdWVFeHAoKSk7
CiBzaG91bGRCZUFzeW5jKCJjbGFzc1ZhbHVlIiwgbmV3IENoaWxkQ2xhc3MoKS5hc3luY1RoaXNW
YWx1ZUJvZHkoKSk7CitzaG91bGRCZUFzeW5jKCJjbGFzc1ZhbHVlIiwgbmV3IENoaWxkQ2xhc3Mo
KS5hc3luY1RoaXNWYWx1ZUJvZHlXaXRoQXdhaXQoKSk7CiAKIHNob3VsZEJlQXN5bmMoImNsYXNz
VmFsdWUiLCBuZXcgQ2hpbGRDbGFzcygpLmFzeW5jVGhpc1ZhbHVlSW5FdmFsRXhwKCkpOwogc2hv
dWxkQmVBc3luYygiY2xhc3NWYWx1ZSIsIG5ldyBDaGlsZENsYXNzKCkuYXN5bmNUaGlzVmFsdWVJ
bkV2YWxCb2R5KCkpOworc2hvdWxkQmVBc3luYygiY2xhc3NWYWx1ZSIsIG5ldyBDaGlsZENsYXNz
KCkuYXN5bmNUaGlzVmFsdWVJbkV2YWxXaXRoQXdhaXRCb2R5KCkpOwogCiBjbGFzcyBDaGlsZENs
YXNzMiBleHRlbmRzIEJhc2VDbGFzcyB7CiAgICAgY29uc3RydWN0b3IoKSB7CkBAIC0xMDEsMyAr
MTMzLDIyIEBAIGNsYXNzIENoaWxkQ2xhc3MyIGV4dGVuZHMgQmFzZUNsYXNzIHsKIH0KIAogc2hv
dWxkQmVBc3luYygiY2xhc3NWYWx1ZSBjbGFzc1Byb3BlcnR5IiwgbmV3IENoaWxkQ2xhc3MyKCkp
OworCitjbGFzcyBDaGlsZENsYXNzMyBleHRlbmRzIEJhc2VDbGFzcyB7CisgICAgY29uc3RydWN0
b3IoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7Cisg
ICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXMuY2xhc3NWYWx1ZSgpICsgJyAnICsgdGhpcy5jbGFz
c1Byb3BlcnR5OworICAgICAgICAgICAgYXdhaXQgJ3NlbGYnOworICAgICAgICAgICAgcmV0dXJu
IHRoaXMuY2xhc3NWYWx1ZSgpICsgJyAnICsgdGhpcy5jbGFzc1Byb3BlcnR5OworICAgICAgICB9
CisgICAgfQorICAgIGNsYXNzVmFsdWUoKSB7CisgICAgICAgIHJldHVybiAiY2xhc3NWYWx1ZSI7
CisgICAgfQorICAgIGdldCBjbGFzc1Byb3BlcnR5KCkgeworICAgICAgICByZXR1cm4gImNsYXNz
UHJvcGVydHkiOworICAgIH0KK30KKworc2hvdWxkQmVBc3luYygiY2xhc3NWYWx1ZSBjbGFzc1By
b3BlcnR5IiwgbmV3IENoaWxkQ2xhc3MzKCkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
YXN5bmMtYXJyb3ctZnVuY3Rpb25zLWxleGljYWwtbmV3LnRhcmdldC1iaW5kaW5nLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvYXN5bmMtYXJyb3ctZnVuY3Rpb25zLWxleGljYWwtbmV3LnRhcmdldC1iaW5k
aW5nLmpzCmluZGV4IDM2ZGYwYTMxMTA2ZTNiY2JlZGJmYWY1OGExYzM5MzUzMTI0NThjNGQuLmUw
ZTlkODNjOWY5MWRjOWY3YzE5NTU1MTE3ODQ3NzE5MmI2ZDgxMDEgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL2FzeW5jLWFycm93LWZ1bmN0aW9ucy1sZXhpY2FsLW5ldy50YXJnZXQtYmluZGlu
Zy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1hcnJvdy1mdW5jdGlvbnMtbGV4aWNhbC1u
ZXcudGFyZ2V0LWJpbmRpbmcuanMKQEAgLTQzLDEwICs0MywxOSBAQCBmdW5jdGlvbiBDMigpIHsK
ICAgICByZXR1cm4gYXN5bmMgKCkgPT4geyByZXR1cm4gYXdhaXQgbmV3LnRhcmdldCB9OwogfQog
CitmdW5jdGlvbiBDMldpdGhBd2FpdCgpIHsKKyAgICByZXR1cm4gYXN5bmMgKCkgPT4geyAKKyAg
ICAgICAgdmFyIHNlbGYgPSBuZXcudGFyZ2V0OyBhd2FpdCBuZXcudGFyZ2V0OworICAgICAgICBy
ZXR1cm4gbmV3LnRhcmdldDsKKyAgICB9Cit9CisKIHNob3VsZEJlQXN5bmMoQzEsIG5ldyBDMSgp
KTsKIHNob3VsZEJlQXN5bmModW5kZWZpbmVkLCBDMSgpKTsKIHNob3VsZEJlQXN5bmMoQzIsIG5l
dyBDMigpKTsKIHNob3VsZEJlQXN5bmModW5kZWZpbmVkLCBDMigpKTsKK3Nob3VsZEJlQXN5bmMo
QzJXaXRoQXdhaXQsIG5ldyBDMldpdGhBd2FpdCgpKTsKK3Nob3VsZEJlQXN5bmModW5kZWZpbmVk
LCBDMldpdGhBd2FpdCgpKTsKIAogc2hvdWxkVGhyb3dBc3luYyhhc3luYyAoKSA9PiBhd2FpdCBu
ZXcudGFyZ2V0LCBSZWZlcmVuY2VFcnJvcik7CiBzaG91bGRUaHJvd0FzeW5jKGFzeW5jICgpID0+
IHsgcmV0dXJuIGF3YWl0IG5ldy50YXJnZXQ7IH0sIFJlZmVyZW5jZUVycm9yKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>