<?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>157668</bug_id>
          
          <creation_ts>2016-05-12 23:48:02 -0700</creation_ts>
          <short_desc>[JSC] Move the CheckTierUp function calls out of the main path</short_desc>
          <delta_ts>2016-05-13 16:44:26 -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>New Bugs</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1192673</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-12 23:48:02 -0700</bug_when>
    <thetext>[JSC] Move the CheckTierUp function calls out of the main path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192676</commentid>
    <comment_count>1</comment_count>
      <attachid>278820</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-12 23:55:13 -0700</bug_when>
    <thetext>Created attachment 278820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192677</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-12 23:55:47 -0700</bug_when>
    <thetext>                                    Conf#1                    Conf#2                                      

3d-cube                         4.9750+-0.0183     ^      4.9216+-0.0172        ^ definitely 1.0109x faster
3d-morph                        5.0505+-0.0241     ?      5.0733+-0.0230        ?
3d-raytrace                     5.3486+-0.0268            5.3325+-0.0193        
access-binary-trees             2.1137+-0.0118     ?      2.1173+-0.0128        ?
access-fannkuch                 5.8436+-0.0222     !      5.8900+-0.0228        ! definitely 1.0079x slower
access-nbody                    2.5166+-0.0112            2.5166+-0.0113        
access-nsieve                   2.9611+-0.0119            2.9548+-0.0111        
bitops-3bit-bits-in-byte        1.1139+-0.0057     ?      1.1150+-0.0052        ?
bitops-bits-in-byte             2.7480+-0.0127     ^      2.5887+-0.0131        ^ definitely 1.0615x faster
bitops-bitwise-and              1.9873+-0.0075     ?      1.9899+-0.0084        ?
bitops-nsieve-bits              3.0469+-0.0113     !      3.0874+-0.0177        ! definitely 1.0133x slower
controlflow-recursive           2.3395+-0.0124            2.3363+-0.0104        
crypto-aes                      4.3709+-0.0236     ?      4.3782+-0.0252        ?
crypto-md5                      2.4169+-0.0105            2.4102+-0.0120        
crypto-sha1                     2.2562+-0.0137     ?      2.2636+-0.0145        ?
date-format-tofte               6.5461+-0.0253            6.5453+-0.0264        
date-format-xparb               4.8131+-0.0263            4.7939+-0.0233        
math-cordic                     2.8892+-0.0084     ^      2.8247+-0.0128        ^ definitely 1.0228x faster
math-partial-sums               3.7110+-0.0206     ?      3.7177+-0.0236        ?
math-spectral-norm              1.9969+-0.0120            1.9814+-0.0069        
regexp-dna                      6.5614+-0.0364            6.5493+-0.0349        
string-base64                   4.2191+-0.0257     ?      4.2558+-0.0311        ?
string-fasta                    5.6710+-0.0185            5.6655+-0.0172        
string-tagcloud                 8.5184+-0.0336     ?      8.5624+-0.0362        ?
string-unpack-code             18.8462+-0.0945     ?     18.9783+-0.0952        ?
string-validate-input           4.1754+-0.0199            4.1531+-0.0188        

&lt;arithmetic&gt;                    4.5014+-0.0053            4.5001+-0.0054          might be 1.0003x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192744</commentid>
    <comment_count>3</comment_count>
      <attachid>278820</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-13 07:56:24 -0700</bug_when>
    <thetext>Comment on attachment 278820
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5249
&gt; -        m_jit.setupArgumentsWithExecState(TrustedImm32(bytecodeIndex));
&gt; -        appendCallSetResult(triggerOSREntryNow, tempGPR);
&gt; -        MacroAssembler::Jump dontEnter = m_jit.branchTestPtr(MacroAssembler::Zero, tempGPR);
&gt; -        m_jit.emitRestoreCalleeSaves();
&gt; -        m_jit.jump(tempGPR);
&gt; -        dontEnter.link(&amp;m_jit);
&gt; -        silentFillAllRegisters(tempGPR);
&gt; -        
&gt; -        done.link(&amp;m_jit);
&gt; +
&gt; +        addSlowPathGenerator([=]() {
&gt; +            forceOSREntry.link(&amp;m_jit);
&gt; +            overflowedCounter.link(&amp;m_jit);
&gt; +
&gt; +            silentSpill(savePlans);
&gt; +            m_jit.setupArgumentsWithExecState(TrustedImm32(bytecodeIndex));
&gt; +            appendCallSetResult(triggerOSREntryNow, tempGPR);
&gt; +
&gt; +            if (savePlans.isEmpty())
&gt; +                m_jit.branchTestPtr(MacroAssembler::Zero, tempGPR).linkTo(toNextOperation, &amp;m_jit);
&gt; +            else {
&gt; +                MacroAssembler::Jump osrEnter = m_jit.branchTestPtr(MacroAssembler::NonZero, tempGPR);
&gt; +                silentFill(savePlans);
&gt; +                osrEnter.link(&amp;m_jit);
&gt; +            }
&gt; +            m_jit.emitRestoreCalleeSaves();
&gt; +            m_jit.jump(tempGPR);
&gt; +        });

This does not look right.  In the old code, of tempGPR is Zero, we do not enter.  In the new code, I don&apos;t see a path to not enter.  I think you&apos;re missing a jump to toNextOperation after the silentFill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192788</commentid>
    <comment_count>4</comment_count>
      <attachid>278846</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-13 10:30:12 -0700</bug_when>
    <thetext>Created attachment 278846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192789</commentid>
    <comment_count>5</comment_count>
      <attachid>278846</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-13 10:31:44 -0700</bug_when>
    <thetext>Comment on attachment 278846
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5246
&gt; +                MacroAssembler::Jump osrEnter = m_jit.branchTestPtr(MacroAssembler::NonZero, tempGPR);
&gt; +                silentFill(savePlans);
&gt; +                osrEnter.link(&amp;m_jit);
&gt; +                m_jit.jump().linkTo(toNextOperation, &amp;m_jit);

Still wrong.  The jump needs to be before the osrEnter label linkage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192816</commentid>
    <comment_count>6</comment_count>
      <attachid>278856</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-13 11:27:21 -0700</bug_when>
    <thetext>Created attachment 278856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192824</commentid>
    <comment_count>7</comment_count>
      <attachid>278856</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-13 11:53:06 -0700</bug_when>
    <thetext>Comment on attachment 278856
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192962</commentid>
    <comment_count>8</comment_count>
      <attachid>278856</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-13 16:44:22 -0700</bug_when>
    <thetext>Comment on attachment 278856
Patch

Clearing flags on attachment: 278856

Committed r200897: &lt;http://trac.webkit.org/changeset/200897&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192963</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-13 16:44:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278820</attachid>
            <date>2016-05-12 23:55:13 -0700</date>
            <delta_ts>2016-05-13 10:30:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157668-20160512235603.patch</filename>
            <type>text/plain</type>
            <size>9251</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
Nzk1ZjI0ZjA4ZGUwNjEwMGI0NWIyYWMzMWQ4MWRlNDBhZDAxMGQ5Li5mYzI2ZmQ0ZDJkM2VkYmRm
NjJkOGNmZjM4NDY0NjhhNTIzMzRhYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNi0wNS0xMiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIHRoZSBDaGVja1RpZXJVcCBmdW5jdGlvbiBjYWxs
cyBvdXQgb2YgdGhlIG1haW4gcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3NjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSWYgeW91IGhhdmUgYSB0aW55IHRpbnkgbG9vcCAoZm9yIGV4YW1wbGUs
IFN1bnNwaWRlcidzIGJpdHMtaW4tYnl0ZSksCisgICAgICAgIHRoZSBzaXplIG9mIENoZWNrVGll
clVwIGlzIGEgcHJvYmxlbS4KKworICAgICAgICBPbiBtdWx0aS1pc3N1ZSBDUFVzLCB0aGUgbm9k
ZSBpcyBzbyBiaWcgdGhhdCB3ZSBkbyBub3QKKyAgICAgICAgZ2V0IHRvIHJ1biBhbnl0aGluZyBm
cm9tIHRoZSBsb29wIGluIHRoZSBpbnN0cnVjdGlvbiBmZXRjaC4KKworICAgICAgICBPbiB4ODYs
IGhhdmluZyBhIGJpZ2dlciBsb29wIGFsc28gcHVzaGVzIHVzIG91dCBvZiB0aGUgTFNELgorCisg
ICAgICAgIFRoaXMgaXMgYSA2JSBpbXByb3ZlbWVudCBvbiBiaXRzLWluLWJ5dGUuIE90aGVyIFN1
bnNwaWRlciB0ZXN0cworICAgICAgICBvbmx5IGltcHJvdmVzIG1hcmdpbmFsbHkuCisKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJhdG9ycyk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVu
dFNwaWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxNi0wNS0xMSAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGB0aGlz
YCBpbiBTY29wZSBDaGFpbiBTaWRlYmFyIGRvZXMgbm90IGhhdmUgcHJldmlldywgbG9va3MgcG9v
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCBjOGMzOWFlMzhiOTU5NTNhYjQ3NjU3MDkzZjE1YzM3YzVkNWZjZjU0Li4xYjQ5MmU4ZGEy
NDU2MDg0MTAzMDI5NDNiYTVlODk5MTA3ODlmNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMzU0LDExICszNTQsMjAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFNs
b3dQYXRoR2VuZXJhdG9yPiBzbG8KICAgICBtX3Nsb3dQYXRoR2VuZXJhdG9ycy5hcHBlbmQoV1RG
TW92ZShzbG93UGF0aEdlbmVyYXRvcikpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjphZGRT
bG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbGFtYmRhKQoreworICAgIG1f
c2xvd1BhdGhMYW1iZGFzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihsYW1iZGEsIG1fb3JpZ2luLnNl
bWFudGljKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJhdG9y
cyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlcikKIHsK
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zbG93UGF0aEdlbmVyYXRvcnMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyLmFwcGVuZEl0ZW0obV9q
aXQubGFiZWwoKSwgbV9zbG93UGF0aEdlbmVyYXRvcnNbaV0tPm9yaWdpbigpLnNlbWFudGljKTsK
LSAgICAgICAgbV9zbG93UGF0aEdlbmVyYXRvcnNbaV0tPmdlbmVyYXRlKHRoaXMpOworICAgIGZv
ciAoYXV0byYgc2xvd1BhdGhHZW5lcmF0b3IgOiBtX3Nsb3dQYXRoR2VuZXJhdG9ycykgeworICAg
ICAgICBwY1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIuYXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBz
bG93UGF0aEdlbmVyYXRvci0+b3JpZ2luKCkuc2VtYW50aWMpOworICAgICAgICBzbG93UGF0aEdl
bmVyYXRvci0+Z2VuZXJhdGUodGhpcyk7CisgICAgfQorICAgIGZvciAoYXV0byYgZ2VuZXJhdG9y
UGFpciA6IG1fc2xvd1BhdGhMYW1iZGFzKSB7CisgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVp
bGRlci5hcHBlbmRJdGVtKG1faml0LmxhYmVsKCksIGdlbmVyYXRvclBhaXIuc2Vjb25kKTsKKyAg
ICAgICAgZ2VuZXJhdG9yUGFpci5maXJzdCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDExNTdjY2MxMTcxM2VkMTBm
MmE0ZGI3ZjUzZjE0MWE3YzNmOTc4MDkuLjAwZmMyMDhmMDllNjZlNjkyOTQ3YTgxNzdmM2NmYzMw
ZGE0ZDdjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKQEAgLTMxOSw2ICszMTksNyBAQCBwdWJsaWM6CiAgICAgR2VuZXJhdGVkT3BlcmFuZFR5
cGUgY2hlY2tHZW5lcmF0ZWRUeXBlRm9yVG9JbnQzMihOb2RlKik7CiAKICAgICB2b2lkIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4pOworICAg
IHZvaWQgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2
b2lkIHJ1blNsb3dQYXRoR2VuZXJhdG9ycyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImKTsKICAg
ICAKICAgICB2b2lkIGNvbXBpbGUoTm9kZSopOwpAQCAtMzM5LDcgKzM0MCwyMiBAQCBwdWJsaWM6
CiAgICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBzaWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0dWFs
UmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNvdXJjZSk7CiAgICAgdm9pZCBzaWxlbnRTcGlsbChj
b25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJik7CiAgICAgdm9pZCBzaWxlbnRGaWxsKGNvbnN0
IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mLCBHUFJSZWcgY2FuVHJhbXBsZSk7Ci0gICAgCisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4KKyAgICB2b2lkIHNpbGVudFNwaWxs
KGNvbnN0IENvbGxlY3Rpb25UeXBlJiBzYXZlUGxhbnMpCisgICAgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2F2ZVBsYW5zLnNpemUoKTsgKytpKQorICAgICAgICAgICAgc2ls
ZW50U3BpbGwoc2F2ZVBsYW5zW2ldKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgQ29sbGVjdGlvblR5cGUm
IHNhdmVQbGFucywgR1BSUmVnIGV4Y2x1ZGUgPSBJbnZhbGlkR1BSUmVnKQorICAgIHsKKyAgICAg
ICAgR1BSUmVnIGNhblRyYW1wbGUgPSBTcGVjdWxhdGl2ZUpJVDo6cGlja0NhblRyYW1wbGUoZXhj
bHVkZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHNhdmVQbGFucy5zaXplKCk7IGktLTsp
CisgICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFuc1tpXSwgY2FuVHJhbXBsZSk7CisgICAg
fQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CiAgICAgdm9pZCBzaWxl
bnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoYm9vbCBkb1NwaWxsLCBDb2xsZWN0aW9uVHlwZSYgcGxh
bnMsIEdQUlJlZyBleGNsdWRlLCBHUFJSZWcgZXhjbHVkZTIgPSBJbnZhbGlkR1BSUmVnLCBGUFJS
ZWcgZnByRXhjbHVkZSA9IEludmFsaWRGUFJSZWcpCiAgICAgewpAQCAtMjgxMiw2ICsyODI4LDcg
QEAgcHVibGljOgogICAgIE1pbmlmaWVkR3JhcGgqIG1fbWluaWZpZWRHcmFwaDsKICAgICAKICAg
ICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiwgOD4gbV9zbG93UGF0
aEdlbmVyYXRvcnM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4s
IENvZGVPcmlnaW4+LCA4PiBtX3Nsb3dQYXRoTGFtYmRhczsKICAgICBWZWN0b3I8U2lsZW50UmVn
aXN0ZXJTYXZlUGxhbj4gbV9wbGFuczsKICAgICB1bnNpZ25lZCBtX291dE9mTGluZVN0cmVhbUlu
ZGV4IHsgVUlOVF9NQVggfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBkM2E4YmE4OGU3YTFkZWRjYjkzNjJjZmM3NmM1
YmNjMDdhNGNiOTk5Li4yYzFhNTkyMDJiZmVkOWRlNDEzZTJkNWQ5ZDlmNDE3YjgzYzBjNTZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTUxNjYsMTggKzUxNjYsMjcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogCiAjaWYgRU5BQkxFKEZUTF9KSVQpICAgICAgICAKICAgICBjYXNlIENoZWNr
VGllclVwSW5Mb29wOiB7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbmUgPSBtX2pp
dC5icmFuY2hBZGQzMigKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpTaWduZWQsCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2ppdC5icmFuY2hBZGQzMigK
KyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2ZU9yWmVybywKICAgICAgICAgICAg
IFRydXN0ZWRJbW0zMihPcHRpb25zOjpmdGxUaWVyVXBDb3VudGVySW5jcmVtZW50Rm9yTG9vcCgp
KSwKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0ZUFkZHJlc3MoJm1faml0Lmpp
dENvZGUoKS0+dGllclVwQ291bnRlci5tX2NvdW50ZXIpKTsKLSAgICAgICAgCi0gICAgICAgIHNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzKEludmFsaWRHUFJSZWcpOwotICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCi0gICAgICAgICAgICBUcnVzdGVkSW1tMzIobm9kZS0+
b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKTsKLSAgICAgICAgYXBwZW5kQ2FsbCh0cmln
Z2VyVGllclVwTm93SW5Mb29wKTsKLSAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhJbnZh
bGlkR1BSUmVnKTsKLSAgICAgICAgCi0gICAgICAgIGRvbmUubGluaygmbV9qaXQpOworCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCB0b05leHRPcGVyYXRpb24gPSBtX2ppdC5sYWJlbCgp
OworCisgICAgICAgIFZlY3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFuPiBzYXZlUGxhbnM7Cisg
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgc2F2ZVBsYW5zLCBJbnZh
bGlkR1BSUmVnKTsKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCA9IG5vZGUtPm9yaWdp
bi5zZW1hbnRpYy5ieXRlY29kZUluZGV4OworCisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KFs9XSgpIHsKKyAgICAgICAgICAgIGNhbGxUaWVyVXAubGluaygmbV9qaXQpOworCisgICAgICAg
ICAgICBzaWxlbnRTcGlsbChzYXZlUGxhbnMpOworICAgICAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihieXRlY29kZUluZGV4KSk7CisgICAgICAg
ICAgICBhcHBlbmRDYWxsKHRyaWdnZXJUaWVyVXBOb3dJbkxvb3ApOworICAgICAgICAgICAgc2ls
ZW50RmlsbChzYXZlUGxhbnMpOworCisgICAgICAgICAgICBtX2ppdC5qdW1wKCkubGlua1RvKHRv
TmV4dE9wZXJhdGlvbiwgJm1faml0KTsKKyAgICAgICAgfSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICAgICAgCkBAIC01MTk4LDcgKzUyMDcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIAogICAgIGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JF
bnRlcjogewogICAgICAgICBBU1NFUlQoIW5vZGUtPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxs
RnJhbWUpOwotICAgICAgICAKKwogICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKICAg
ICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCkBAIC01MjA2LDI2ICs1MjE1LDM4
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYXV0
byB0cmlnZ2VySXRlcmF0b3IgPSBtX2ppdC5qaXRDb2RlKCktPnRpZXJVcEVudHJ5VHJpZ2dlcnMu
ZmluZChieXRlY29kZUluZGV4KTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQodHJpZ2dlckl0ZXJh
dG9yICE9IG1faml0LmppdENvZGUoKS0+dGllclVwRW50cnlUcmlnZ2Vycy5lbmQoKSk7CiAgICAg
ICAgIHVpbnQ4X3QqIGZvcmNlRW50cnlUcmlnZ2VyID0gJihtX2ppdC5qaXRDb2RlKCktPnRpZXJV
cEVudHJ5VHJpZ2dlcnMuZmluZChieXRlY29kZUluZGV4KS0+dmFsdWUpOworCiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGZvcmNlT1NSRW50cnkgPSBtX2ppdC5icmFuY2hUZXN0OChNYWNy
b0Fzc2VtYmxlcjo6Tm9uWmVybywgTWFjcm9Bc3NlbWJsZXI6OkFic29sdXRlQWRkcmVzcyhmb3Jj
ZUVudHJ5VHJpZ2dlcikpOwotICAgICAgICAKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZG9uZSA9IG1faml0LmJyYW5jaEFkZDMyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlNp
Z25lZCwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3ZlcmZsb3dlZENvdW50ZXIgPSBt
X2ppdC5icmFuY2hBZGQzMigKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2ZU9y
WmVybywKICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihPcHRpb25zOjpmdGxUaWVyVXBDb3VudGVy
SW5jcmVtZW50Rm9yTG9vcCgpKSwKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0
ZUFkZHJlc3MoJm1faml0LmppdENvZGUoKS0+dGllclVwQ291bnRlci5tX2NvdW50ZXIpKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHRvTmV4dE9wZXJhdGlvbiA9IG1faml0LmxhYmVs
KCk7CisKKyAgICAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4+IHNhdmVQbGFuczsK
KyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMsIHRl
bXBHUFIpOwogCi0gICAgICAgIGZvcmNlT1NSRW50cnkubGluaygmbV9qaXQpOwotICAgICAgICBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyh0ZW1wR1BSKTsKICAgICAgICAgdW5zaWduZWQgc3RyZWFt
SW5kZXggPSBtX3N0cmVhbS0+c2l6ZSgpOwogICAgICAgICBtX2ppdC5qaXRDb2RlKCktPmJ5dGVj
b2RlSW5kZXhUb1N0cmVhbUluZGV4LmFkZChieXRlY29kZUluZGV4LCBzdHJlYW1JbmRleCk7Ci0g
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoYnl0
ZWNvZGVJbmRleCkpOwotICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KHRyaWdnZXJPU1JFbnRy
eU5vdywgdGVtcEdQUik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbnRFbnRlciA9
IG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHRlbXBHUFIpOwotICAg
ICAgICBtX2ppdC5lbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7Ci0gICAgICAgIG1faml0Lmp1bXAo
dGVtcEdQUik7Ci0gICAgICAgIGRvbnRFbnRlci5saW5rKCZtX2ppdCk7Ci0gICAgICAgIHNpbGVu
dEZpbGxBbGxSZWdpc3RlcnModGVtcEdQUik7Ci0gICAgICAgIAotICAgICAgICBkb25lLmxpbmso
Jm1faml0KTsKKworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihbPV0oKSB7CisgICAgICAg
ICAgICBmb3JjZU9TUkVudHJ5LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG92ZXJmbG93ZWRD
b3VudGVyLmxpbmsoJm1faml0KTsKKworICAgICAgICAgICAgc2lsZW50U3BpbGwoc2F2ZVBsYW5z
KTsKKyAgICAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVk
SW1tMzIoYnl0ZWNvZGVJbmRleCkpOworICAgICAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdCh0
cmlnZ2VyT1NSRW50cnlOb3csIHRlbXBHUFIpOworCisgICAgICAgICAgICBpZiAoc2F2ZVBsYW5z
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNz
ZW1ibGVyOjpaZXJvLCB0ZW1wR1BSKS5saW5rVG8odG9OZXh0T3BlcmF0aW9uLCAmbV9qaXQpOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
b3NyRW50ZXIgPSBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCB0
ZW1wR1BSKTsKKyAgICAgICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFucyk7CisgICAgICAg
ICAgICAgICAgb3NyRW50ZXIubGluaygmbV9qaXQpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgbV9qaXQuZW1pdFJlc3RvcmVDYWxsZWVTYXZlcygpOworICAgICAgICAgICAgbV9qaXQuanVt
cCh0ZW1wR1BSKTsKKyAgICAgICAgfSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNlbHNlIC8v
IEVOQUJMRShGVExfSklUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278846</attachid>
            <date>2016-05-13 10:30:12 -0700</date>
            <delta_ts>2016-05-13 11:27:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157668-20160513103103.patch</filename>
            <type>text/plain</type>
            <size>9314</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
Nzk1ZjI0ZjA4ZGUwNjEwMGI0NWIyYWMzMWQ4MWRlNDBhZDAxMGQ5Li4zYmMzNTI0NmFkYzcyMGUw
MmEzZTRjMTM1ZTQ3MGQyNTcyODRlZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNi0wNS0xMyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIHRoZSBDaGVja1RpZXJVcCBmdW5jdGlvbiBjYWxs
cyBvdXQgb2YgdGhlIG1haW4gcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3NjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSWYgeW91IGhhdmUgYSB0aW55IHRpbnkgbG9vcCAoZm9yIGV4YW1wbGUs
IFN1bnNwaWRlcidzIGJpdHMtaW4tYnl0ZSksCisgICAgICAgIHRoZSBzaXplIG9mIENoZWNrVGll
clVwIGlzIGEgcHJvYmxlbS4KKworICAgICAgICBPbiBtdWx0aS1pc3N1ZSBDUFVzLCB0aGUgbm9k
ZSBpcyBzbyBiaWcgdGhhdCB3ZSBkbyBub3QKKyAgICAgICAgZ2V0IHRvIHJ1biBhbnl0aGluZyBm
cm9tIHRoZSBsb29wIGluIHRoZSBpbnN0cnVjdGlvbiBmZXRjaC4KKworICAgICAgICBPbiB4ODYs
IGhhdmluZyBhIGJpZ2dlciBsb29wIGFsc28gcHVzaGVzIHVzIG91dCBvZiB0aGUgTFNELgorCisg
ICAgICAgIFRoaXMgaXMgYSA2JSBpbXByb3ZlbWVudCBvbiBiaXRzLWluLWJ5dGUuIE90aGVyIFN1
bnNwaWRlciB0ZXN0cworICAgICAgICBvbmx5IGltcHJvdmVzIG1hcmdpbmFsbHkuCisKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJhdG9ycyk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVu
dFNwaWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxNi0wNS0xMSAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGB0aGlz
YCBpbiBTY29wZSBDaGFpbiBTaWRlYmFyIGRvZXMgbm90IGhhdmUgcHJldmlldywgbG9va3MgcG9v
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCBjOGMzOWFlMzhiOTU5NTNhYjQ3NjU3MDkzZjE1YzM3YzVkNWZjZjU0Li4xYjQ5MmU4ZGEy
NDU2MDg0MTAzMDI5NDNiYTVlODk5MTA3ODlmNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMzU0LDExICszNTQsMjAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFNs
b3dQYXRoR2VuZXJhdG9yPiBzbG8KICAgICBtX3Nsb3dQYXRoR2VuZXJhdG9ycy5hcHBlbmQoV1RG
TW92ZShzbG93UGF0aEdlbmVyYXRvcikpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjphZGRT
bG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbGFtYmRhKQoreworICAgIG1f
c2xvd1BhdGhMYW1iZGFzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihsYW1iZGEsIG1fb3JpZ2luLnNl
bWFudGljKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJhdG9y
cyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlcikKIHsK
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zbG93UGF0aEdlbmVyYXRvcnMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyLmFwcGVuZEl0ZW0obV9q
aXQubGFiZWwoKSwgbV9zbG93UGF0aEdlbmVyYXRvcnNbaV0tPm9yaWdpbigpLnNlbWFudGljKTsK
LSAgICAgICAgbV9zbG93UGF0aEdlbmVyYXRvcnNbaV0tPmdlbmVyYXRlKHRoaXMpOworICAgIGZv
ciAoYXV0byYgc2xvd1BhdGhHZW5lcmF0b3IgOiBtX3Nsb3dQYXRoR2VuZXJhdG9ycykgeworICAg
ICAgICBwY1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIuYXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBz
bG93UGF0aEdlbmVyYXRvci0+b3JpZ2luKCkuc2VtYW50aWMpOworICAgICAgICBzbG93UGF0aEdl
bmVyYXRvci0+Z2VuZXJhdGUodGhpcyk7CisgICAgfQorICAgIGZvciAoYXV0byYgZ2VuZXJhdG9y
UGFpciA6IG1fc2xvd1BhdGhMYW1iZGFzKSB7CisgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVp
bGRlci5hcHBlbmRJdGVtKG1faml0LmxhYmVsKCksIGdlbmVyYXRvclBhaXIuc2Vjb25kKTsKKyAg
ICAgICAgZ2VuZXJhdG9yUGFpci5maXJzdCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDExNTdjY2MxMTcxM2VkMTBm
MmE0ZGI3ZjUzZjE0MWE3YzNmOTc4MDkuLjAwZmMyMDhmMDllNjZlNjkyOTQ3YTgxNzdmM2NmYzMw
ZGE0ZDdjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKQEAgLTMxOSw2ICszMTksNyBAQCBwdWJsaWM6CiAgICAgR2VuZXJhdGVkT3BlcmFuZFR5
cGUgY2hlY2tHZW5lcmF0ZWRUeXBlRm9yVG9JbnQzMihOb2RlKik7CiAKICAgICB2b2lkIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4pOworICAg
IHZvaWQgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2
b2lkIHJ1blNsb3dQYXRoR2VuZXJhdG9ycyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImKTsKICAg
ICAKICAgICB2b2lkIGNvbXBpbGUoTm9kZSopOwpAQCAtMzM5LDcgKzM0MCwyMiBAQCBwdWJsaWM6
CiAgICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBzaWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0dWFs
UmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNvdXJjZSk7CiAgICAgdm9pZCBzaWxlbnRTcGlsbChj
b25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJik7CiAgICAgdm9pZCBzaWxlbnRGaWxsKGNvbnN0
IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mLCBHUFJSZWcgY2FuVHJhbXBsZSk7Ci0gICAgCisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4KKyAgICB2b2lkIHNpbGVudFNwaWxs
KGNvbnN0IENvbGxlY3Rpb25UeXBlJiBzYXZlUGxhbnMpCisgICAgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2F2ZVBsYW5zLnNpemUoKTsgKytpKQorICAgICAgICAgICAgc2ls
ZW50U3BpbGwoc2F2ZVBsYW5zW2ldKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgQ29sbGVjdGlvblR5cGUm
IHNhdmVQbGFucywgR1BSUmVnIGV4Y2x1ZGUgPSBJbnZhbGlkR1BSUmVnKQorICAgIHsKKyAgICAg
ICAgR1BSUmVnIGNhblRyYW1wbGUgPSBTcGVjdWxhdGl2ZUpJVDo6cGlja0NhblRyYW1wbGUoZXhj
bHVkZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHNhdmVQbGFucy5zaXplKCk7IGktLTsp
CisgICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFuc1tpXSwgY2FuVHJhbXBsZSk7CisgICAg
fQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CiAgICAgdm9pZCBzaWxl
bnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoYm9vbCBkb1NwaWxsLCBDb2xsZWN0aW9uVHlwZSYgcGxh
bnMsIEdQUlJlZyBleGNsdWRlLCBHUFJSZWcgZXhjbHVkZTIgPSBJbnZhbGlkR1BSUmVnLCBGUFJS
ZWcgZnByRXhjbHVkZSA9IEludmFsaWRGUFJSZWcpCiAgICAgewpAQCAtMjgxMiw2ICsyODI4LDcg
QEAgcHVibGljOgogICAgIE1pbmlmaWVkR3JhcGgqIG1fbWluaWZpZWRHcmFwaDsKICAgICAKICAg
ICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiwgOD4gbV9zbG93UGF0
aEdlbmVyYXRvcnM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4s
IENvZGVPcmlnaW4+LCA4PiBtX3Nsb3dQYXRoTGFtYmRhczsKICAgICBWZWN0b3I8U2lsZW50UmVn
aXN0ZXJTYXZlUGxhbj4gbV9wbGFuczsKICAgICB1bnNpZ25lZCBtX291dE9mTGluZVN0cmVhbUlu
ZGV4IHsgVUlOVF9NQVggfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBkM2E4YmE4OGU3YTFkZWRjYjkzNjJjZmM3NmM1
YmNjMDdhNGNiOTk5Li45MGU5M2YxOWVlNWJiNGFkMDE5NWNkMjQ2OTU5OTIyZTA0MjUxYTlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTUxNjYsMTggKzUxNjYsMjcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogCiAjaWYgRU5BQkxFKEZUTF9KSVQpICAgICAgICAKICAgICBjYXNlIENoZWNr
VGllclVwSW5Mb29wOiB7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbmUgPSBtX2pp
dC5icmFuY2hBZGQzMigKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpTaWduZWQsCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2ppdC5icmFuY2hBZGQzMigK
KyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2ZU9yWmVybywKICAgICAgICAgICAg
IFRydXN0ZWRJbW0zMihPcHRpb25zOjpmdGxUaWVyVXBDb3VudGVySW5jcmVtZW50Rm9yTG9vcCgp
KSwKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0ZUFkZHJlc3MoJm1faml0Lmpp
dENvZGUoKS0+dGllclVwQ291bnRlci5tX2NvdW50ZXIpKTsKLSAgICAgICAgCi0gICAgICAgIHNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzKEludmFsaWRHUFJSZWcpOwotICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCi0gICAgICAgICAgICBUcnVzdGVkSW1tMzIobm9kZS0+
b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKTsKLSAgICAgICAgYXBwZW5kQ2FsbCh0cmln
Z2VyVGllclVwTm93SW5Mb29wKTsKLSAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhJbnZh
bGlkR1BSUmVnKTsKLSAgICAgICAgCi0gICAgICAgIGRvbmUubGluaygmbV9qaXQpOworCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCB0b05leHRPcGVyYXRpb24gPSBtX2ppdC5sYWJlbCgp
OworCisgICAgICAgIFZlY3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFuPiBzYXZlUGxhbnM7Cisg
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgc2F2ZVBsYW5zLCBJbnZh
bGlkR1BSUmVnKTsKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCA9IG5vZGUtPm9yaWdp
bi5zZW1hbnRpYy5ieXRlY29kZUluZGV4OworCisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KFs9XSgpIHsKKyAgICAgICAgICAgIGNhbGxUaWVyVXAubGluaygmbV9qaXQpOworCisgICAgICAg
ICAgICBzaWxlbnRTcGlsbChzYXZlUGxhbnMpOworICAgICAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihieXRlY29kZUluZGV4KSk7CisgICAgICAg
ICAgICBhcHBlbmRDYWxsKHRyaWdnZXJUaWVyVXBOb3dJbkxvb3ApOworICAgICAgICAgICAgc2ls
ZW50RmlsbChzYXZlUGxhbnMpOworCisgICAgICAgICAgICBtX2ppdC5qdW1wKCkubGlua1RvKHRv
TmV4dE9wZXJhdGlvbiwgJm1faml0KTsKKyAgICAgICAgfSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICAgICAgCkBAIC01MTk4LDcgKzUyMDcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIAogICAgIGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JF
bnRlcjogewogICAgICAgICBBU1NFUlQoIW5vZGUtPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxs
RnJhbWUpOwotICAgICAgICAKKwogICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKICAg
ICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCkBAIC01MjA2LDI2ICs1MjE1LDM5
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYXV0
byB0cmlnZ2VySXRlcmF0b3IgPSBtX2ppdC5qaXRDb2RlKCktPnRpZXJVcEVudHJ5VHJpZ2dlcnMu
ZmluZChieXRlY29kZUluZGV4KTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQodHJpZ2dlckl0ZXJh
dG9yICE9IG1faml0LmppdENvZGUoKS0+dGllclVwRW50cnlUcmlnZ2Vycy5lbmQoKSk7CiAgICAg
ICAgIHVpbnQ4X3QqIGZvcmNlRW50cnlUcmlnZ2VyID0gJihtX2ppdC5qaXRDb2RlKCktPnRpZXJV
cEVudHJ5VHJpZ2dlcnMuZmluZChieXRlY29kZUluZGV4KS0+dmFsdWUpOworCiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGZvcmNlT1NSRW50cnkgPSBtX2ppdC5icmFuY2hUZXN0OChNYWNy
b0Fzc2VtYmxlcjo6Tm9uWmVybywgTWFjcm9Bc3NlbWJsZXI6OkFic29sdXRlQWRkcmVzcyhmb3Jj
ZUVudHJ5VHJpZ2dlcikpOwotICAgICAgICAKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZG9uZSA9IG1faml0LmJyYW5jaEFkZDMyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlNp
Z25lZCwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3ZlcmZsb3dlZENvdW50ZXIgPSBt
X2ppdC5icmFuY2hBZGQzMigKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2ZU9y
WmVybywKICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihPcHRpb25zOjpmdGxUaWVyVXBDb3VudGVy
SW5jcmVtZW50Rm9yTG9vcCgpKSwKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0
ZUFkZHJlc3MoJm1faml0LmppdENvZGUoKS0+dGllclVwQ291bnRlci5tX2NvdW50ZXIpKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHRvTmV4dE9wZXJhdGlvbiA9IG1faml0LmxhYmVs
KCk7CisKKyAgICAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4+IHNhdmVQbGFuczsK
KyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMsIHRl
bXBHUFIpOwogCi0gICAgICAgIGZvcmNlT1NSRW50cnkubGluaygmbV9qaXQpOwotICAgICAgICBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyh0ZW1wR1BSKTsKICAgICAgICAgdW5zaWduZWQgc3RyZWFt
SW5kZXggPSBtX3N0cmVhbS0+c2l6ZSgpOwogICAgICAgICBtX2ppdC5qaXRDb2RlKCktPmJ5dGVj
b2RlSW5kZXhUb1N0cmVhbUluZGV4LmFkZChieXRlY29kZUluZGV4LCBzdHJlYW1JbmRleCk7Ci0g
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoYnl0
ZWNvZGVJbmRleCkpOwotICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KHRyaWdnZXJPU1JFbnRy
eU5vdywgdGVtcEdQUik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbnRFbnRlciA9
IG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHRlbXBHUFIpOwotICAg
ICAgICBtX2ppdC5lbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7Ci0gICAgICAgIG1faml0Lmp1bXAo
dGVtcEdQUik7Ci0gICAgICAgIGRvbnRFbnRlci5saW5rKCZtX2ppdCk7Ci0gICAgICAgIHNpbGVu
dEZpbGxBbGxSZWdpc3RlcnModGVtcEdQUik7Ci0gICAgICAgIAotICAgICAgICBkb25lLmxpbmso
Jm1faml0KTsKKworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihbPV0oKSB7CisgICAgICAg
ICAgICBmb3JjZU9TUkVudHJ5LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG92ZXJmbG93ZWRD
b3VudGVyLmxpbmsoJm1faml0KTsKKworICAgICAgICAgICAgc2lsZW50U3BpbGwoc2F2ZVBsYW5z
KTsKKyAgICAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVk
SW1tMzIoYnl0ZWNvZGVJbmRleCkpOworICAgICAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdCh0
cmlnZ2VyT1NSRW50cnlOb3csIHRlbXBHUFIpOworCisgICAgICAgICAgICBpZiAoc2F2ZVBsYW5z
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNz
ZW1ibGVyOjpaZXJvLCB0ZW1wR1BSKS5saW5rVG8odG9OZXh0T3BlcmF0aW9uLCAmbV9qaXQpOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
b3NyRW50ZXIgPSBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCB0
ZW1wR1BSKTsKKyAgICAgICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFucyk7CisgICAgICAg
ICAgICAgICAgb3NyRW50ZXIubGluaygmbV9qaXQpOworICAgICAgICAgICAgICAgIG1faml0Lmp1
bXAoKS5saW5rVG8odG9OZXh0T3BlcmF0aW9uLCAmbV9qaXQpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbV9qaXQuZW1pdFJlc3RvcmVDYWxsZWVTYXZlcygpOworICAgICAgICAgICAgbV9q
aXQuanVtcCh0ZW1wR1BSKTsKKyAgICAgICAgfSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNl
bHNlIC8vIEVOQUJMRShGVExfSklUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278856</attachid>
            <date>2016-05-13 11:27:21 -0700</date>
            <delta_ts>2016-05-13 16:44:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157668-20160513112812.patch</filename>
            <type>text/plain</type>
            <size>9314</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
Nzk1ZjI0ZjA4ZGUwNjEwMGI0NWIyYWMzMWQ4MWRlNDBhZDAxMGQ5Li4zYmMzNTI0NmFkYzcyMGUw
MmEzZTRjMTM1ZTQ3MGQyNTcyODRlZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNi0wNS0xMyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIHRoZSBDaGVja1RpZXJVcCBmdW5jdGlvbiBjYWxs
cyBvdXQgb2YgdGhlIG1haW4gcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3NjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSWYgeW91IGhhdmUgYSB0aW55IHRpbnkgbG9vcCAoZm9yIGV4YW1wbGUs
IFN1bnNwaWRlcidzIGJpdHMtaW4tYnl0ZSksCisgICAgICAgIHRoZSBzaXplIG9mIENoZWNrVGll
clVwIGlzIGEgcHJvYmxlbS4KKworICAgICAgICBPbiBtdWx0aS1pc3N1ZSBDUFVzLCB0aGUgbm9k
ZSBpcyBzbyBiaWcgdGhhdCB3ZSBkbyBub3QKKyAgICAgICAgZ2V0IHRvIHJ1biBhbnl0aGluZyBm
cm9tIHRoZSBsb29wIGluIHRoZSBpbnN0cnVjdGlvbiBmZXRjaC4KKworICAgICAgICBPbiB4ODYs
IGhhdmluZyBhIGJpZ2dlciBsb29wIGFsc28gcHVzaGVzIHVzIG91dCBvZiB0aGUgTFNELgorCisg
ICAgICAgIFRoaXMgaXMgYSA2JSBpbXByb3ZlbWVudCBvbiBiaXRzLWluLWJ5dGUuIE90aGVyIFN1
bnNwaWRlciB0ZXN0cworICAgICAgICBvbmx5IGltcHJvdmVzIG1hcmdpbmFsbHkuCisKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjphZGRTbG93UGF0aEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJhdG9ycyk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVu
dFNwaWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50RmlsbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxNi0wNS0xMSAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGB0aGlz
YCBpbiBTY29wZSBDaGFpbiBTaWRlYmFyIGRvZXMgbm90IGhhdmUgcHJldmlldywgbG9va3MgcG9v
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCBjOGMzOWFlMzhiOTU5NTNhYjQ3NjU3MDkzZjE1YzM3YzVkNWZjZjU0Li4xYjQ5MmU4ZGEy
NDU2MDg0MTAzMDI5NDNiYTVlODk5MTA3ODlmNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMzU0LDExICszNTQsMjAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6YWRkU2xvd1BhdGhHZW5lcmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFNs
b3dQYXRoR2VuZXJhdG9yPiBzbG8KICAgICBtX3Nsb3dQYXRoR2VuZXJhdG9ycy5hcHBlbmQoV1RG
TW92ZShzbG93UGF0aEdlbmVyYXRvcikpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjphZGRT
bG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gbGFtYmRhKQoreworICAgIG1f
c2xvd1BhdGhMYW1iZGFzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihsYW1iZGEsIG1fb3JpZ2luLnNl
bWFudGljKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnJ1blNsb3dQYXRoR2VuZXJhdG9y
cyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImIHBjVG9Db2RlT3JpZ2luTWFwQnVpbGRlcikKIHsK
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zbG93UGF0aEdlbmVyYXRvcnMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVyLmFwcGVuZEl0ZW0obV9q
aXQubGFiZWwoKSwgbV9zbG93UGF0aEdlbmVyYXRvcnNbaV0tPm9yaWdpbigpLnNlbWFudGljKTsK
LSAgICAgICAgbV9zbG93UGF0aEdlbmVyYXRvcnNbaV0tPmdlbmVyYXRlKHRoaXMpOworICAgIGZv
ciAoYXV0byYgc2xvd1BhdGhHZW5lcmF0b3IgOiBtX3Nsb3dQYXRoR2VuZXJhdG9ycykgeworICAg
ICAgICBwY1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXIuYXBwZW5kSXRlbShtX2ppdC5sYWJlbCgpLCBz
bG93UGF0aEdlbmVyYXRvci0+b3JpZ2luKCkuc2VtYW50aWMpOworICAgICAgICBzbG93UGF0aEdl
bmVyYXRvci0+Z2VuZXJhdGUodGhpcyk7CisgICAgfQorICAgIGZvciAoYXV0byYgZ2VuZXJhdG9y
UGFpciA6IG1fc2xvd1BhdGhMYW1iZGFzKSB7CisgICAgICAgIHBjVG9Db2RlT3JpZ2luTWFwQnVp
bGRlci5hcHBlbmRJdGVtKG1faml0LmxhYmVsKCksIGdlbmVyYXRvclBhaXIuc2Vjb25kKTsKKyAg
ICAgICAgZ2VuZXJhdG9yUGFpci5maXJzdCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDExNTdjY2MxMTcxM2VkMTBm
MmE0ZGI3ZjUzZjE0MWE3YzNmOTc4MDkuLjAwZmMyMDhmMDllNjZlNjkyOTQ3YTgxNzdmM2NmYzMw
ZGE0ZDdjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKQEAgLTMxOSw2ICszMTksNyBAQCBwdWJsaWM6CiAgICAgR2VuZXJhdGVkT3BlcmFuZFR5
cGUgY2hlY2tHZW5lcmF0ZWRUeXBlRm9yVG9JbnQzMihOb2RlKik7CiAKICAgICB2b2lkIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4pOworICAg
IHZvaWQgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2
b2lkIHJ1blNsb3dQYXRoR2VuZXJhdG9ycyhQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImKTsKICAg
ICAKICAgICB2b2lkIGNvbXBpbGUoTm9kZSopOwpAQCAtMzM5LDcgKzM0MCwyMiBAQCBwdWJsaWM6
CiAgICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBzaWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0dWFs
UmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNvdXJjZSk7CiAgICAgdm9pZCBzaWxlbnRTcGlsbChj
b25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJik7CiAgICAgdm9pZCBzaWxlbnRGaWxsKGNvbnN0
IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mLCBHUFJSZWcgY2FuVHJhbXBsZSk7Ci0gICAgCisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4KKyAgICB2b2lkIHNpbGVudFNwaWxs
KGNvbnN0IENvbGxlY3Rpb25UeXBlJiBzYXZlUGxhbnMpCisgICAgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2F2ZVBsYW5zLnNpemUoKTsgKytpKQorICAgICAgICAgICAgc2ls
ZW50U3BpbGwoc2F2ZVBsYW5zW2ldKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4KKyAgICB2b2lkIHNpbGVudEZpbGwoY29uc3QgQ29sbGVjdGlvblR5cGUm
IHNhdmVQbGFucywgR1BSUmVnIGV4Y2x1ZGUgPSBJbnZhbGlkR1BSUmVnKQorICAgIHsKKyAgICAg
ICAgR1BSUmVnIGNhblRyYW1wbGUgPSBTcGVjdWxhdGl2ZUpJVDo6cGlja0NhblRyYW1wbGUoZXhj
bHVkZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHNhdmVQbGFucy5zaXplKCk7IGktLTsp
CisgICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFuc1tpXSwgY2FuVHJhbXBsZSk7CisgICAg
fQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CiAgICAgdm9pZCBzaWxl
bnRTcGlsbEFsbFJlZ2lzdGVyc0ltcGwoYm9vbCBkb1NwaWxsLCBDb2xsZWN0aW9uVHlwZSYgcGxh
bnMsIEdQUlJlZyBleGNsdWRlLCBHUFJSZWcgZXhjbHVkZTIgPSBJbnZhbGlkR1BSUmVnLCBGUFJS
ZWcgZnByRXhjbHVkZSA9IEludmFsaWRGUFJSZWcpCiAgICAgewpAQCAtMjgxMiw2ICsyODI4LDcg
QEAgcHVibGljOgogICAgIE1pbmlmaWVkR3JhcGgqIG1fbWluaWZpZWRHcmFwaDsKICAgICAKICAg
ICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiwgOD4gbV9zbG93UGF0
aEdlbmVyYXRvcnM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4s
IENvZGVPcmlnaW4+LCA4PiBtX3Nsb3dQYXRoTGFtYmRhczsKICAgICBWZWN0b3I8U2lsZW50UmVn
aXN0ZXJTYXZlUGxhbj4gbV9wbGFuczsKICAgICB1bnNpZ25lZCBtX291dE9mTGluZVN0cmVhbUlu
ZGV4IHsgVUlOVF9NQVggfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBkM2E4YmE4OGU3YTFkZWRjYjkzNjJjZmM3NmM1
YmNjMDdhNGNiOTk5Li4xNDAwZWE1MjQ1YjhiZWNjMjU4NmFkNzRhZTk2NWVmMTgxMTU2YzA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTUxNjYsMTggKzUxNjYsMjcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogCiAjaWYgRU5BQkxFKEZUTF9KSVQpICAgICAgICAKICAgICBjYXNlIENoZWNr
VGllclVwSW5Mb29wOiB7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbmUgPSBtX2pp
dC5icmFuY2hBZGQzMigKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpTaWduZWQsCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2ppdC5icmFuY2hBZGQzMigK
KyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2ZU9yWmVybywKICAgICAgICAgICAg
IFRydXN0ZWRJbW0zMihPcHRpb25zOjpmdGxUaWVyVXBDb3VudGVySW5jcmVtZW50Rm9yTG9vcCgp
KSwKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0ZUFkZHJlc3MoJm1faml0Lmpp
dENvZGUoKS0+dGllclVwQ291bnRlci5tX2NvdW50ZXIpKTsKLSAgICAgICAgCi0gICAgICAgIHNp
bGVudFNwaWxsQWxsUmVnaXN0ZXJzKEludmFsaWRHUFJSZWcpOwotICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCi0gICAgICAgICAgICBUcnVzdGVkSW1tMzIobm9kZS0+
b3JpZ2luLnNlbWFudGljLmJ5dGVjb2RlSW5kZXgpKTsKLSAgICAgICAgYXBwZW5kQ2FsbCh0cmln
Z2VyVGllclVwTm93SW5Mb29wKTsKLSAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhJbnZh
bGlkR1BSUmVnKTsKLSAgICAgICAgCi0gICAgICAgIGRvbmUubGluaygmbV9qaXQpOworCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCB0b05leHRPcGVyYXRpb24gPSBtX2ppdC5sYWJlbCgp
OworCisgICAgICAgIFZlY3RvcjxTaWxlbnRSZWdpc3RlclNhdmVQbGFuPiBzYXZlUGxhbnM7Cisg
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChmYWxzZSwgc2F2ZVBsYW5zLCBJbnZh
bGlkR1BSUmVnKTsKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCA9IG5vZGUtPm9yaWdp
bi5zZW1hbnRpYy5ieXRlY29kZUluZGV4OworCisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KFs9XSgpIHsKKyAgICAgICAgICAgIGNhbGxUaWVyVXAubGluaygmbV9qaXQpOworCisgICAgICAg
ICAgICBzaWxlbnRTcGlsbChzYXZlUGxhbnMpOworICAgICAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihieXRlY29kZUluZGV4KSk7CisgICAgICAg
ICAgICBhcHBlbmRDYWxsKHRyaWdnZXJUaWVyVXBOb3dJbkxvb3ApOworICAgICAgICAgICAgc2ls
ZW50RmlsbChzYXZlUGxhbnMpOworCisgICAgICAgICAgICBtX2ppdC5qdW1wKCkubGlua1RvKHRv
TmV4dE9wZXJhdGlvbiwgJm1faml0KTsKKyAgICAgICAgfSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICAgICAgCkBAIC01MTk4LDcgKzUyMDcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIAogICAgIGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JF
bnRlcjogewogICAgICAgICBBU1NFUlQoIW5vZGUtPm9yaWdpbi5zZW1hbnRpYy5pbmxpbmVDYWxs
RnJhbWUpOwotICAgICAgICAKKwogICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKICAg
ICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogCkBAIC01MjA2LDI2ICs1MjE1LDM5
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYXV0
byB0cmlnZ2VySXRlcmF0b3IgPSBtX2ppdC5qaXRDb2RlKCktPnRpZXJVcEVudHJ5VHJpZ2dlcnMu
ZmluZChieXRlY29kZUluZGV4KTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQodHJpZ2dlckl0ZXJh
dG9yICE9IG1faml0LmppdENvZGUoKS0+dGllclVwRW50cnlUcmlnZ2Vycy5lbmQoKSk7CiAgICAg
ICAgIHVpbnQ4X3QqIGZvcmNlRW50cnlUcmlnZ2VyID0gJihtX2ppdC5qaXRDb2RlKCktPnRpZXJV
cEVudHJ5VHJpZ2dlcnMuZmluZChieXRlY29kZUluZGV4KS0+dmFsdWUpOworCiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGZvcmNlT1NSRW50cnkgPSBtX2ppdC5icmFuY2hUZXN0OChNYWNy
b0Fzc2VtYmxlcjo6Tm9uWmVybywgTWFjcm9Bc3NlbWJsZXI6OkFic29sdXRlQWRkcmVzcyhmb3Jj
ZUVudHJ5VHJpZ2dlcikpOwotICAgICAgICAKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZG9uZSA9IG1faml0LmJyYW5jaEFkZDMyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlNp
Z25lZCwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3ZlcmZsb3dlZENvdW50ZXIgPSBt
X2ppdC5icmFuY2hBZGQzMigKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQb3NpdGl2ZU9y
WmVybywKICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihPcHRpb25zOjpmdGxUaWVyVXBDb3VudGVy
SW5jcmVtZW50Rm9yTG9vcCgpKSwKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0
ZUFkZHJlc3MoJm1faml0LmppdENvZGUoKS0+dGllclVwQ291bnRlci5tX2NvdW50ZXIpKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHRvTmV4dE9wZXJhdGlvbiA9IG1faml0LmxhYmVs
KCk7CisKKyAgICAgICAgVmVjdG9yPFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4+IHNhdmVQbGFuczsK
KyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnNJbXBsKGZhbHNlLCBzYXZlUGxhbnMsIHRl
bXBHUFIpOwogCi0gICAgICAgIGZvcmNlT1NSRW50cnkubGluaygmbV9qaXQpOwotICAgICAgICBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyh0ZW1wR1BSKTsKICAgICAgICAgdW5zaWduZWQgc3RyZWFt
SW5kZXggPSBtX3N0cmVhbS0+c2l6ZSgpOwogICAgICAgICBtX2ppdC5qaXRDb2RlKCktPmJ5dGVj
b2RlSW5kZXhUb1N0cmVhbUluZGV4LmFkZChieXRlY29kZUluZGV4LCBzdHJlYW1JbmRleCk7Ci0g
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoYnl0
ZWNvZGVJbmRleCkpOwotICAgICAgICBhcHBlbmRDYWxsU2V0UmVzdWx0KHRyaWdnZXJPU1JFbnRy
eU5vdywgdGVtcEdQUik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbnRFbnRlciA9
IG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHRlbXBHUFIpOwotICAg
ICAgICBtX2ppdC5lbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7Ci0gICAgICAgIG1faml0Lmp1bXAo
dGVtcEdQUik7Ci0gICAgICAgIGRvbnRFbnRlci5saW5rKCZtX2ppdCk7Ci0gICAgICAgIHNpbGVu
dEZpbGxBbGxSZWdpc3RlcnModGVtcEdQUik7Ci0gICAgICAgIAotICAgICAgICBkb25lLmxpbmso
Jm1faml0KTsKKworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihbPV0oKSB7CisgICAgICAg
ICAgICBmb3JjZU9TUkVudHJ5LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG92ZXJmbG93ZWRD
b3VudGVyLmxpbmsoJm1faml0KTsKKworICAgICAgICAgICAgc2lsZW50U3BpbGwoc2F2ZVBsYW5z
KTsKKyAgICAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVk
SW1tMzIoYnl0ZWNvZGVJbmRleCkpOworICAgICAgICAgICAgYXBwZW5kQ2FsbFNldFJlc3VsdCh0
cmlnZ2VyT1NSRW50cnlOb3csIHRlbXBHUFIpOworCisgICAgICAgICAgICBpZiAoc2F2ZVBsYW5z
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNz
ZW1ibGVyOjpaZXJvLCB0ZW1wR1BSKS5saW5rVG8odG9OZXh0T3BlcmF0aW9uLCAmbV9qaXQpOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
b3NyRW50ZXIgPSBtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCB0
ZW1wR1BSKTsKKyAgICAgICAgICAgICAgICBzaWxlbnRGaWxsKHNhdmVQbGFucyk7CisgICAgICAg
ICAgICAgICAgbV9qaXQuanVtcCgpLmxpbmtUbyh0b05leHRPcGVyYXRpb24sICZtX2ppdCk7Cisg
ICAgICAgICAgICAgICAgb3NyRW50ZXIubGluaygmbV9qaXQpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbV9qaXQuZW1pdFJlc3RvcmVDYWxsZWVTYXZlcygpOworICAgICAgICAgICAgbV9q
aXQuanVtcCh0ZW1wR1BSKTsKKyAgICAgICAgfSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICNl
bHNlIC8vIEVOQUJMRShGVExfSklUKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>