<?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>126199</bug_id>
          
          <creation_ts>2013-12-23 19:02:32 -0800</creation_ts>
          <short_desc>Use the Selector Code Generator for resolving style</short_desc>
          <delta_ts>2014-01-13 16:23:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>ltilve+ews</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962685</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-23 19:02:32 -0800</bug_when>
    <thetext>Use the Selector Code Generator for resolving style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962686</commentid>
    <comment_count>1</comment_count>
      <attachid>219952</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-23 19:03:03 -0800</bug_when>
    <thetext>Created attachment 219952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962689</commentid>
    <comment_count>2</comment_count>
      <attachid>219952</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-12-23 19:07:19 -0800</bug_when>
    <thetext>Comment on attachment 219952
Patch

Attachment 219952 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/50458029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962707</commentid>
    <comment_count>3</comment_count>
      <attachid>219952</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-12-23 20:48:18 -0800</bug_when>
    <thetext>Comment on attachment 219952
Patch

Attachment 219952 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/45698122</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962715</commentid>
    <comment_count>4</comment_count>
      <attachid>219952</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-12-23 22:47:09 -0800</bug_when>
    <thetext>Comment on attachment 219952
Patch

Attachment 219952 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/51868073</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963024</commentid>
    <comment_count>5</comment_count>
      <attachid>219952</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-12-26 12:15:25 -0800</bug_when>
    <thetext>Comment on attachment 219952
Patch

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

&gt; Source/WebCore/css/ElementRuleCollector.cpp:301
&gt;  inline bool ElementRuleCollector::ruleMatches(const RuleData&amp; ruleData, PseudoId&amp; dynamicPseudo)
&gt;  {
&gt;      const StyleResolver::State&amp; state = m_state;
&gt; +#if ENABLE(CSS_SELECTOR_JIT)
&gt; +    void* compiledSelectorChecker = ruleData.compiledSelectorCodeRef.code().executableAddress();
&gt; +    if (!compiledSelectorChecker &amp;&amp; ruleData.compilationStatus == SelectorCompilationStatus::NotCompiled) {
&gt; +        JSC::VM* vm = document().scriptExecutionContext()-&gt;vm();
&gt; +        ruleData.compilationStatus = SelectorCompiler::compileSelector(ruleData.selector(), vm, ruleData.compiledSelectorCodeRef);
&gt; +        compiledSelectorChecker = ruleData.compiledSelectorCodeRef.code().executableAddress();
&gt; +    }

This compiles too eagerly. If you look below in ruleData.hasFastCheckableSelector() branch you see there are number of cases we resolve without calling into SelectorCheckerFastPath at all. Those cases will use more memory and may get slower by activating the JIT. We should probably not compile selectors that are in this category.

Does the infrastructure support compiling off the main thread? I think optimally we would kick off the compiling during RuleData construction and use the compiled versions when ready.

&gt; Source/WebCore/css/ElementRuleCollector.cpp:312
&gt; +    if (compiledSelectorChecker) {
&gt; +        if (ruleData.compilationStatus == SelectorCompilationStatus::SimpleSelectorChecker) {
&gt; +            if (m_pseudoStyleRequest.pseudoId != NOPSEUDO)
&gt; +                return false;
&gt; +            SelectorCompiler::SimpleSelectorChecker selectorChecker = SelectorCompiler::simpleSelectorCheckerFunction(compiledSelectorChecker, ruleData.compilationStatus);
&gt; +            return selectorChecker(state.element());
&gt; +        }
&gt; +        ASSERT(ruleData.compilationStatus == SelectorCompilationStatus::SelectorCheckerWithCheckingContext);
&gt; +
&gt; +        if (m_pseudoStyleRequest.pseudoId != NOPSEUDO)
&gt; +            return false;

NOPSEUDO tests can move before the compilationStatus check and combined.

&gt; Source/WebCore/css/RuleSet.h:84
&gt; +#if ENABLE(CSS_SELECTOR_JIT)
&gt; +    mutable SelectorCompilationStatus compilationStatus;
&gt; +    mutable JSC::MacroAssemblerCodeRef compiledSelectorCodeRef;
&gt; +#endif // ENABLE(CSS_SELECTOR_JIT)

These fields should be optimized for memory at some point (I think we can manage with 64bits or less for all this). We can have large numbers of selectors and so RuleDatas. We also shouldn&apos;t generate code for simplest selectors that are resolved by hash look-ups and don&apos;t need overhead of even having these fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967095</commentid>
    <comment_count>6</comment_count>
      <attachid>220991</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-12 17:29:18 -0800</bug_when>
    <thetext>Created attachment 220991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967130</commentid>
    <comment_count>7</comment_count>
      <attachid>220991</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-12 19:41:24 -0800</bug_when>
    <thetext>Comment on attachment 220991
Patch

Attachment 220991 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/6029259655086080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967138</commentid>
    <comment_count>8</comment_count>
      <attachid>220991</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2014-01-12 20:54:17 -0800</bug_when>
    <thetext>Comment on attachment 220991
Patch

Attachment 220991 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/6717223087374336</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967147</commentid>
    <comment_count>9</comment_count>
      <attachid>220991</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-12 21:45:20 -0800</bug_when>
    <thetext>Comment on attachment 220991
Patch

Attachment 220991 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/6353650481889280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967149</commentid>
    <comment_count>10</comment_count>
      <attachid>221004</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-12 22:04:24 -0800</bug_when>
    <thetext>Created attachment 221004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967341</commentid>
    <comment_count>11</comment_count>
      <attachid>221004</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-01-13 08:40:06 -0800</bug_when>
    <thetext>Comment on attachment 221004
Patch

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

&gt; Source/WebCore/css/ElementRuleCollector.cpp:312
&gt; +        JSC::VM* vm = document().scriptExecutionContext()-&gt;vm();

We should be using a reference instead in all these places (probably should be done in a separate patch though).

&gt; Source/WebCore/css/ElementRuleCollector.cpp:321
&gt; +            SelectorCompiler::SimpleSelectorChecker selectorChecker = SelectorCompiler::simpleSelectorCheckerFunction(compiledSelectorChecker, ruleData.compilationStatus);

Do we really need this temporary variable?  Also, isn&apos;t this the case where auto will be useful?
Since this is a function pointer into a JIT&apos;ed code, type doesn&apos;t give us any extra information anyway.

&gt; Source/WebCore/css/RuleSet.h:84
&gt; +#if ENABLE(CSS_SELECTOR_JIT)
&gt; +    mutable SelectorCompilationStatus compilationStatus;
&gt; +    mutable JSC::MacroAssemblerCodeRef compiledSelectorCodeRef;
&gt; +#endif // ENABLE(CSS_SELECTOR_JIT)
&gt; +

These should really be private and have accessors instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967525</commentid>
    <comment_count>12</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-13 16:23:46 -0800</bug_when>
    <thetext>Committed r161917: &lt;http://trac.webkit.org/changeset/161917&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219952</attachid>
            <date>2013-12-23 19:03:03 -0800</date>
            <delta_ts>2014-01-12 17:29:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126199-20131223190302.patch</filename>
            <type>text/plain</type>
            <size>4489</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2MzYmFlZGVkOTgzODc3
MDdhN2VlM2EwMGNmN2FmYzFhZmNkZTgzZC4uNGVhZTkzNmMxOWYyNGM0Zjg2MjU2ZGQ4YTY0NzE2
YWYxNmEwMjg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDEzLTEyLTIzICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAorICAgICAgICBVc2UgdGhlIFNl
bGVjdG9yIENvZGUgR2VuZXJhdG9yIGZvciByZXNvbHZpbmcgc3R5bGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjE5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0
Y2hlcyk6CisgICAgICAgICogY3NzL1J1bGVTZXQuaDoKKworMjAxMy0xMi0yMyAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKICAgICAgICAgQWRkIHRoZSBwc2V1ZG8g
Y2xhc3MgOmZvY3VzIHRvIHRoZSBTZWxlY3RvciBDb2RlIEdlbmVyYXRvcgogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MTg5CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDYxYzUyM2UxZjlkZDVmZGNj
NTliOWQzYWRlNjIxMjk0MjhkMDk3MjMuLjkzN2RmZjBlYmZjMmJlNDJlNjM2NzY1YWNkMTE5ZDVk
YWQ0ODhmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNw
cApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUg
IlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5oIgorI2lu
Y2x1ZGUgIlNlbGVjdG9yQ29tcGlsZXIuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIK
ICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKQEAgLTI5MSw2ICsyOTIsMzIgQEAgdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1bGVzKFJ1bGVTZXQqIHJ1bGVzKQogaW5saW5l
IGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBy
dWxlRGF0YSwgUHNldWRvSWQmIGR5bmFtaWNQc2V1ZG8pCiB7CiAgICAgY29uc3QgU3R5bGVSZXNv
bHZlcjo6U3RhdGUmIHN0YXRlID0gbV9zdGF0ZTsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJ
VCkKKyAgICB2b2lkKiBjb21waWxlZFNlbGVjdG9yQ2hlY2tlciA9IHJ1bGVEYXRhLmNvbXBpbGVk
U2VsZWN0b3JDb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOworICAgIGlmICghY29t
cGlsZWRTZWxlY3RvckNoZWNrZXIgJiYgcnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMgPT0gU2Vs
ZWN0b3JDb21waWxhdGlvblN0YXR1czo6Tm90Q29tcGlsZWQpIHsKKyAgICAgICAgSlNDOjpWTSog
dm0gPSBkb2N1bWVudCgpLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dm0oKTsKKyAgICAgICAg
cnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMgPSBTZWxlY3RvckNvbXBpbGVyOjpjb21waWxlU2Vs
ZWN0b3IocnVsZURhdGEuc2VsZWN0b3IoKSwgdm0sIHJ1bGVEYXRhLmNvbXBpbGVkU2VsZWN0b3JD
b2RlUmVmKTsKKyAgICAgICAgY29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBydWxlRGF0YS5jb21w
aWxlZFNlbGVjdG9yQ29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICB9Cisg
ICAgaWYgKGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyKSB7CisgICAgICAgIGlmIChydWxlRGF0YS5j
b21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxl
Y3RvckNoZWNrZXIpIHsKKyAgICAgICAgICAgIGlmIChtX3BzZXVkb1N0eWxlUmVxdWVzdC5wc2V1
ZG9JZCAhPSBOT1BTRVVETykKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICBTZWxlY3RvckNvbXBpbGVyOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVj
a2VyID0gU2VsZWN0b3JDb21waWxlcjo6c2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29t
cGlsZWRTZWxlY3RvckNoZWNrZXIsIHJ1bGVEYXRhLmNvbXBpbGF0aW9uU3RhdHVzKTsKKyAgICAg
ICAgICAgIHJldHVybiBzZWxlY3RvckNoZWNrZXIoc3RhdGUuZWxlbWVudCgpKTsKKyAgICAgICAg
fQorICAgICAgICBBU1NFUlQocnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JD
b21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7CisK
KyAgICAgICAgaWYgKG1fcHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkICE9IE5PUFNFVURPKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0
b3JDb21waWxlcjo6c2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KGNv
bXBpbGVkU2VsZWN0b3JDaGVja2VyLCBydWxlRGF0YS5jb21waWxhdGlvblN0YXR1cyk7CisgICAg
ICAgIFNlbGVjdG9yQ29tcGlsZXI6OkNoZWNraW5nQ29udGV4dCBjb250ZXh0OworICAgICAgICBj
b250ZXh0LmVsZW1lbnRTdHlsZSA9IHN0YXRlLnN0eWxlKCk7CisgICAgICAgIGNvbnRleHQucmVz
b2x2aW5nTW9kZSA9IG1fbW9kZTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlcihzdGF0
ZS5lbGVtZW50KCksICZjb250ZXh0KTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxF
Q1RPUl9KSVQpCiAKICAgICBpZiAocnVsZURhdGEuaGFzRmFzdENoZWNrYWJsZVNlbGVjdG9yKCkp
IHsKICAgICAgICAgLy8gV2Uga25vdyB0aGlzIHNlbGVjdG9yIGRvZXMgbm90IGluY2x1ZGUgYW55
IHBzZXVkbyBlbGVtZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4IDc1ZTNlMTczYzk2MjkxNDMw
OTRhMDE4OGI2ZGY1YzhkODgwNGU5ZTUuLjAzYzRkYjI0YzYxZDhlMmY4MWJhOTY4MWZkYWRmYjk2
OGYxYjY2MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtMjMsNyArMjMsOSBAQAogI2RlZmluZSBS
dWxlU2V0X2gKIAogI2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JD
b21waWxlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNzYs
NiArNzgsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtSWRl
bnRpZmllckNvdW50ID0gNDsKICAgICBjb25zdCB1bnNpZ25lZCogZGVzY2VuZGFudFNlbGVjdG9y
SWRlbnRpZmllckhhc2hlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY2VuZGFudFNlbGVjdG9ySWRl
bnRpZmllckhhc2hlczsgfQogCisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCisgICAgbXV0
YWJsZSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzOworICAgIG11
dGFibGUgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY29tcGlsZWRTZWxlY3RvckNvZGVSZWY7
CisjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCisKIHByaXZhdGU6CiAgICAgU3R5
bGVSdWxlKiBtX3J1bGU7CiAgICAgdW5zaWduZWQgbV9zZWxlY3RvckluZGV4IDogMTM7CkBAIC05
NSw2ICsxMDIsMTIgQEAgcHJpdmF0ZToKIH07CiAgICAgCiBzdHJ1Y3QgU2FtZVNpemVBc1J1bGVE
YXRhIHsKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKKyAgICB1bnNpZ25lZCBjb21waWxh
dGlvblN0YXR1czsKKyAgICB2b2lkKiBjb21waWxlZFNlbGVjdG9yUG9pbnRlcjsKKyAgICB2b2lk
KiBjb2RlUmVmUHRyOworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQorCiAgICAg
dm9pZCogYTsKICAgICB1bnNpZ25lZCBiOwogICAgIHVuc2lnbmVkIGM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220991</attachid>
            <date>2014-01-12 17:29:18 -0800</date>
            <delta_ts>2014-01-12 22:04:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126199-20140112172917.patch</filename>
            <type>text/plain</type>
            <size>5022</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjk4MjJlMWE5ZGM2N2Vl
NmE1M2VlYjk1MDkwOTAzNTMwZTlhMzE5My4uNTlkNTlhYWZiNWE5YjA5NjFkZGVmODQ1NzE5NWE5
NTFjNTY0OWE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE0LTAxLTEyICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAorICAgICAgICBVc2UgdGhlIFNl
bGVjdG9yIENvZGUgR2VuZXJhdG9yIGZvciByZXNvbHZpbmcgc3R5bGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjE5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0
Y2hlcyk6CisgICAgICAgICogY3NzL1J1bGVTZXQuaDoKKworMjAxNC0wMS0xMiAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKICAgICAgICAgVXNlIHRoZSBTZWxlY3Rv
ciBDb2RlIEdlbmVyYXRvciBmb3IgbWF0Y2hpbmcgaW4gU2VsZWN0b3JRdWVyeQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MTg1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDYxYzUyM2UxZjlkZDVm
ZGNjNTliOWQzYWRlNjIxMjk0MjhkMDk3MjMuLjQ0ZDVlYTFhMGE4YmVmMjk4NTg5YzMyMzEyMDNl
NTNmMTUyMTk5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNv
bGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1
ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5oIgor
I2luY2x1ZGUgIlNlbGVjdG9yQ29tcGlsZXIuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMu
aCIKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKQEAgLTI5Miw3ICsyOTMsOCBAQCBpbmxp
bmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEm
IHJ1bGVEYXRhLCBQc2V1ZG9JZAogewogICAgIGNvbnN0IFN0eWxlUmVzb2x2ZXI6OlN0YXRlJiBz
dGF0ZSA9IG1fc3RhdGU7CiAKLSAgICBpZiAocnVsZURhdGEuaGFzRmFzdENoZWNrYWJsZVNlbGVj
dG9yKCkpIHsKKyAgICBib29sIGZhc3RDaGVja2FibGVTZWxlY3RvciA9IHJ1bGVEYXRhLmhhc0Zh
c3RDaGVja2FibGVTZWxlY3RvcigpOworICAgIGlmIChmYXN0Q2hlY2thYmxlU2VsZWN0b3IpIHsK
ICAgICAgICAgLy8gV2Uga25vdyB0aGlzIHNlbGVjdG9yIGRvZXMgbm90IGluY2x1ZGUgYW55IHBz
ZXVkbyBlbGVtZW50cy4KICAgICAgICAgaWYgKG1fcHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lk
ICE9IE5PUFNFVURPKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzAyLDYgKzMwNCwz
NCBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3Qg
UnVsZURhdGEmIHJ1bGVEYXRhLCBQc2V1ZG9JZAogICAgICAgICAgICAgaWYgKCFydWxlRGF0YS5o
YXNNdWx0aXBhcnRTZWxlY3RvcigpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CisgICAgfQorCisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCisgICAgdm9pZCog
Y29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9yQ29kZVJl
Zi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICBpZiAoIWNvbXBpbGVkU2VsZWN0b3JD
aGVja2VyICYmIHJ1bGVEYXRhLmNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRp
b25TdGF0dXM6Ok5vdENvbXBpbGVkKSB7CisgICAgICAgIEpTQzo6Vk0qIHZtID0gZG9jdW1lbnQo
KS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnZtKCk7CisgICAgICAgIHJ1bGVEYXRhLmNvbXBp
bGF0aW9uU3RhdHVzID0gU2VsZWN0b3JDb21waWxlcjo6Y29tcGlsZVNlbGVjdG9yKHJ1bGVEYXRh
LnNlbGVjdG9yKCksIHZtLCBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9yQ29kZVJlZik7CisgICAg
ICAgIGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyID0gcnVsZURhdGEuY29tcGlsZWRTZWxlY3RvckNv
ZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CisgICAgfQorICAgIGlmIChjb21waWxl
ZFNlbGVjdG9yQ2hlY2tlcikgeworICAgICAgICBpZiAobV9wc2V1ZG9TdHlsZVJlcXVlc3QucHNl
dWRvSWQgIT0gTk9QU0VVRE8pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
aWYgKHJ1bGVEYXRhLmNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0
dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgeworICAgICAgICAgICAgU2VsZWN0b3JDb21waWxl
cjo6U2ltcGxlU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGls
ZXI6OnNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
LCBydWxlRGF0YS5jb21waWxhdGlvblN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gc2VsZWN0
b3JDaGVja2VyKHN0YXRlLmVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUKHJ1
bGVEYXRhLmNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOworCisgICAgICAgIFNlbGVjdG9yQ29t
cGlsZXI6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2Vy
ID0gU2VsZWN0b3JDb21waWxlcjo6c2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdD
b250ZXh0KGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBydWxlRGF0YS5jb21waWxhdGlvblN0YXR1
cyk7CisgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OkNoZWNraW5nQ29udGV4dCBjb250ZXh0Owor
ICAgICAgICBjb250ZXh0LmVsZW1lbnRTdHlsZSA9IHN0YXRlLnN0eWxlKCk7CisgICAgICAgIGNv
bnRleHQucmVzb2x2aW5nTW9kZSA9IG1fbW9kZTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yQ2hl
Y2tlcihzdGF0ZS5lbGVtZW50KCksICZjb250ZXh0KTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxF
KENTU19TRUxFQ1RPUl9KSVQpCisKKyAgICBpZiAoZmFzdENoZWNrYWJsZVNlbGVjdG9yKSB7CiAg
ICAgICAgIGlmIChydWxlRGF0YS5zZWxlY3RvcigpLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpU
YWcgJiYgIVNlbGVjdG9yQ2hlY2tlcjo6dGFnTWF0Y2hlcyhzdGF0ZS5lbGVtZW50KCksIHJ1bGVE
YXRhLnNlbGVjdG9yKCktPnRhZ1FOYW1lKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICBTZWxlY3RvckNoZWNrZXJGYXN0UGF0aCBzZWxlY3RvckNoZWNrZXJGYXN0UGF0aChy
dWxlRGF0YS5zZWxlY3RvcigpLCBzdGF0ZS5lbGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKaW5k
ZXggNzVlM2UxNzNjOTYyOTE0MzA5NGEwMTg4YjZkZjVjOGQ4ODA0ZTllNS4uMDNjNGRiMjRjNjFk
OGUyZjgxYmE5NjgxZmRhZGZiOTY4ZjFiNjYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCkBAIC0yMyw3
ICsyMyw5IEBACiAjZGVmaW5lIFJ1bGVTZXRfaAogCiAjaW5jbHVkZSAiUnVsZUZlYXR1cmUuaCIK
KyNpbmNsdWRlICJTZWxlY3RvckNvbXBpbGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CkBAIC03Niw2ICs3OCwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1heGltdW1JZGVudGlmaWVyQ291bnQgPSA0OwogICAgIGNvbnN0IHVuc2lnbmVk
KiBkZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKCkgY29uc3QgeyByZXR1cm4gbV9k
ZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzOyB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NF
TEVDVE9SX0pJVCkKKyAgICBtdXRhYmxlIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGls
YXRpb25TdGF0dXM7CisgICAgbXV0YWJsZSBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb21w
aWxlZFNlbGVjdG9yQ29kZVJlZjsKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkK
KwogcHJpdmF0ZToKICAgICBTdHlsZVJ1bGUqIG1fcnVsZTsKICAgICB1bnNpZ25lZCBtX3NlbGVj
dG9ySW5kZXggOiAxMzsKQEAgLTk1LDYgKzEwMiwxMiBAQCBwcml2YXRlOgogfTsKICAgICAKIHN0
cnVjdCBTYW1lU2l6ZUFzUnVsZURhdGEgeworI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQor
ICAgIHVuc2lnbmVkIGNvbXBpbGF0aW9uU3RhdHVzOworICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0
b3JQb2ludGVyOworICAgIHZvaWQqIGNvZGVSZWZQdHI7CisjZW5kaWYgLy8gRU5BQkxFKENTU19T
RUxFQ1RPUl9KSVQpCisKICAgICB2b2lkKiBhOwogICAgIHVuc2lnbmVkIGI7CiAgICAgdW5zaWdu
ZWQgYzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221004</attachid>
            <date>2014-01-12 22:04:24 -0800</date>
            <delta_ts>2014-01-13 08:40:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126199-20140112220423.patch</filename>
            <type>text/plain</type>
            <size>4856</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNlYjkyZTkxZmNmYmZm
ZjcyMjdkMGFhMDVlNmU2Y2JkNzc3OTcyNy4uNDJhMmNiMzY2ZTQ3OTAyMmVjZjA4YjI1MmRjZDMz
YmU3MzIyYTNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTEyICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgdGhlIFNl
bGVjdG9yIENvZGUgR2VuZXJhdG9yIGZvciByZXNvbHZpbmcgc3R5bGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjE5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0
Y2hlcyk6CisgICAgICAgICogY3NzL1J1bGVTZXQuaDoKKwogMjAxNC0wMS0xMiAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZp
eCBmb3IgV2luQ2Fpcm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmNwcAppbmRleCA2MWM1MjNlMWY5ZGQ1ZmRjYzU5YjlkM2FkZTYyMTI5NDI4ZDA5NzIzLi40NGQ1
ZWExYTBhOGJlZjI5ODU4OWMzMjMxMjAzZTUzZjE1MjE5OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2Vs
ZWN0b3JDaGVja2VyRmFzdFBhdGguaCIKKyNpbmNsdWRlICJTZWxlY3RvckNvbXBpbGVyLmgiCiAj
aW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgog
CkBAIC0yOTIsNyArMjkzLDggQEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1
bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgUHNldWRvSWQKIHsKICAgICBjb25z
dCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUgPSBtX3N0YXRlOwogCi0gICAgaWYgKHJ1bGVE
YXRhLmhhc0Zhc3RDaGVja2FibGVTZWxlY3RvcigpKSB7CisgICAgYm9vbCBmYXN0Q2hlY2thYmxl
U2VsZWN0b3IgPSBydWxlRGF0YS5oYXNGYXN0Q2hlY2thYmxlU2VsZWN0b3IoKTsKKyAgICBpZiAo
ZmFzdENoZWNrYWJsZVNlbGVjdG9yKSB7CiAgICAgICAgIC8vIFdlIGtub3cgdGhpcyBzZWxlY3Rv
ciBkb2VzIG5vdCBpbmNsdWRlIGFueSBwc2V1ZG8gZWxlbWVudHMuCiAgICAgICAgIGlmIChtX3Bz
ZXVkb1N0eWxlUmVxdWVzdC5wc2V1ZG9JZCAhPSBOT1BTRVVETykKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTMwMiw2ICszMDQsMzQgQEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgUHNldWRvSWQKICAg
ICAgICAgICAgIGlmICghcnVsZURhdGEuaGFzTXVsdGlwYXJ0U2VsZWN0b3IoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgIH0KKworI2lmIEVOQUJMRShDU1Nf
U0VMRUNUT1JfSklUKQorICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyID0gcnVsZURh
dGEuY29tcGlsZWRTZWxlY3RvckNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7Cisg
ICAgaWYgKCFjb21waWxlZFNlbGVjdG9yQ2hlY2tlciAmJiBydWxlRGF0YS5jb21waWxhdGlvblN0
YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCkgeworICAgICAg
ICBKU0M6OlZNKiB2bSA9IGRvY3VtZW50KCkuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT52bSgp
OworICAgICAgICBydWxlRGF0YS5jb21waWxhdGlvblN0YXR1cyA9IFNlbGVjdG9yQ29tcGlsZXI6
OmNvbXBpbGVTZWxlY3RvcihydWxlRGF0YS5zZWxlY3RvcigpLCB2bSwgcnVsZURhdGEuY29tcGls
ZWRTZWxlY3RvckNvZGVSZWYpOworICAgICAgICBjb21waWxlZFNlbGVjdG9yQ2hlY2tlciA9IHJ1
bGVEYXRhLmNvbXBpbGVkU2VsZWN0b3JDb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
OworICAgIH0KKyAgICBpZiAoY29tcGlsZWRTZWxlY3RvckNoZWNrZXIpIHsKKyAgICAgICAgaWYg
KG1fcHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkICE9IE5PUFNFVURPKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChydWxlRGF0YS5jb21waWxhdGlvblN0YXR1cyA9
PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpIHsKKyAg
ICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlciBzZWxlY3Rv
ckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpzaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlv
bihjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgcnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMpOwor
ICAgICAgICAgICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlcihzdGF0ZS5lbGVtZW50KCkpOworICAg
ICAgICB9CisgICAgICAgIEFTU0VSVChydWxlRGF0YS5jb21waWxhdGlvblN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
KTsKKworICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnNlbGVjdG9yQ2hl
Y2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwg
cnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMpOworICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpD
aGVja2luZ0NvbnRleHQgY29udGV4dDsKKyAgICAgICAgY29udGV4dC5lbGVtZW50U3R5bGUgPSBz
dGF0ZS5zdHlsZSgpOworICAgICAgICBjb250ZXh0LnJlc29sdmluZ01vZGUgPSBtX21vZGU7Cisg
ICAgICAgIHJldHVybiBzZWxlY3RvckNoZWNrZXIoc3RhdGUuZWxlbWVudCgpLCAmY29udGV4dCk7
CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQorCisgICAgaWYgKGZh
c3RDaGVja2FibGVTZWxlY3RvcikgewogICAgICAgICBpZiAocnVsZURhdGEuc2VsZWN0b3IoKS0+
bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6VGFnICYmICFTZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNo
ZXMoc3RhdGUuZWxlbWVudCgpLCBydWxlRGF0YS5zZWxlY3RvcigpLT50YWdRTmFtZSgpKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgU2VsZWN0b3JDaGVja2VyRmFzdFBhdGgg
c2VsZWN0b3JDaGVja2VyRmFzdFBhdGgocnVsZURhdGEuc2VsZWN0b3IoKSwgc3RhdGUuZWxlbWVu
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4IDc1ZTNlMTczYzk2MjkxNDMwOTRhMDE4OGI2ZGY1
YzhkODgwNGU5ZTUuLjQ4NzBhNDc3NDBjZDEzOTU3MGIzNGI3OTU0ODk5ZmUwNzE5ODcwYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBSdWxlU2V0X2gKIAog
I2luY2x1ZGUgIlJ1bGVGZWF0dXJlLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JDb21waWxlci5oIgog
I2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTc2LDYgKzc3LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbWF4aW11bUlkZW50aWZpZXJDb3VudCA9IDQ7CiAgICAgY29uc3QgdW5z
aWduZWQqIGRlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJIYXNoZXMoKSBjb25zdCB7IHJldHVy
biBtX2Rlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJIYXNoZXM7IH0KIAorI2lmIEVOQUJMRShD
U1NfU0VMRUNUT1JfSklUKQorICAgIG11dGFibGUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBj
b21waWxhdGlvblN0YXR1czsKKyAgICBtdXRhYmxlIEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGNvbXBpbGVkU2VsZWN0b3JDb2RlUmVmOworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1Jf
SklUKQorCiBwcml2YXRlOgogICAgIFN0eWxlUnVsZSogbV9ydWxlOwogICAgIHVuc2lnbmVkIG1f
c2VsZWN0b3JJbmRleCA6IDEzOwpAQCAtOTUsNiArMTAxLDEyIEBAIHByaXZhdGU6CiB9OwogICAg
IAogc3RydWN0IFNhbWVTaXplQXNSdWxlRGF0YSB7CisjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9K
SVQpCisgICAgdW5zaWduZWQgY29tcGlsYXRpb25TdGF0dXM7CisgICAgdm9pZCogY29tcGlsZWRT
ZWxlY3RvclBvaW50ZXI7CisgICAgdm9pZCogY29kZVJlZlB0cjsKKyNlbmRpZiAvLyBFTkFCTEUo
Q1NTX1NFTEVDVE9SX0pJVCkKKwogICAgIHZvaWQqIGE7CiAgICAgdW5zaWduZWQgYjsKICAgICB1
bnNpZ25lZCBjOwo=
</data>
<flag name="review"
          id="244847"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>