<?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>126210</bug_id>
          
          <creation_ts>2013-12-24 06:43:46 -0800</creation_ts>
          <short_desc>[GTK][CMake] Generate GObject DOM bindings .symbols files</short_desc>
          <delta_ts>2014-02-13 16:32:07 -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>WebKitGTK</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>
          
          <blocked>115966</blocked>
    
    <blocked>126211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Gustavo Noronha (kov)">gustavo</assigned_to>
          <cc>berto</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962764</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-24 06:43:46 -0800</bug_when>
    <thetext>These files are used to check the ABI of the DOM bindings as well as to help generate documentation for the bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965028</commentid>
    <comment_count>1</comment_count>
      <attachid>220531</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-01-07 08:57:16 -0800</bug_when>
    <thetext>Created attachment 220531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967379</commentid>
    <comment_count>2</comment_count>
      <attachid>220531</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-01-13 10:02:24 -0800</bug_when>
    <thetext>Comment on attachment 220531
Patch

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

Nice! I have a couple small concerns, but it&apos;s great to see this patch.

&gt; Source/PlatformGTK.cmake:7
&gt; +    fake-gdom-gen-symbols

Perhaps this target could be called generate-gdom-symbol-file?

&gt; Source/WebCore/PlatformGTK.cmake:716
&gt; +    file(GLOB GObjectDOMBindingsCheckDependencies

Maybe GObjectDOMBindingsSymbolFiles. I&apos;m a little worried that this isn&apos;t going to work properly for a clean build though, where the symbols files don&apos;t exist yet. If I understand correctly this GLOB is run during the cmake phase. Instead you probably need to iterate through the class list.

&gt; Source/WebCore/PlatformGTK.cmake:718
&gt; +        &quot;${WEBCORE_DIR}/bindings/gobject/WebKitDOM*.symbols&quot;
&gt; +            &quot;${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKit*.symbols&quot;

The indentation is a little funky here.

&gt; Source/WebCore/PlatformGTK.cmake:725
&gt; +            OUTPUT ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdom.symbols
&gt; +            DEPENDS ${GObjectDOMBindingsCheckDependencies} ${CMAKE_SOURCE_DIR}/Tools/gtk/check-gdom-symbols
&gt; +    COMMAND ln -n -s -f ${WEBCORE_DIR}/bindings/gobject/WebKitDOM*.symbols ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}
&gt; +    COMMAND ${CMAKE_SOURCE_DIR}/Tools/gtk/check-gdom-symbols

Here as well.

&gt; Tools/gtk/check-gdom-symbols:30
&gt; +derived_sources_path = common.build_path(&apos;DerivedSources&apos;)
&gt; +gdom_source_path = common.top_level_path(&apos;Source&apos;, &apos;WebCore&apos;, &apos;bindings&apos;)
&gt; +bindings_scripts_path = os.path.join(gdom_source_path, &apos;scripts&apos;)
&gt; +api_break_test_path = os.path.join(bindings_scripts_path, &apos;gobject-run-api-break-test&apos;)
&gt; +generated_gdom_symbols_path = os.path.join(derived_sources_path, &apos;webkitdom&apos;, &apos;webkitdom.symbols&apos;)

Do you mind declaring these right before you use them?

&gt; Tools/gtk/check-gdom-symbols:53
&gt; +

You should probably do the if __name__ == &quot;__main__&quot;: dance here.

&gt; Tools/gtk/check-gdom-symbols:57
&gt; +    for file_path in symbols_files:
&gt; +        with open(file_path) as file_handle:
&gt; +            tmp.write(file_handle.read())

I think it might be a little clearer to do something like:
    for file_path in glob.glob(os.path.join(derived_sources_path, &apos;webkitdom&apos;, &apos;*.h&apos;)):
        if not os.path.basename(file_path).startswith(&apos;WebKit&apos;) or h.endswith(&apos;Private.h&apos;):
            continue
        file_path = file_path.replace(&apos;.h&apos;, &apos;.symbols&apos;)
        ...

&gt; Tools/gtk/check-gdom-symbols:66
&gt; +    if not should_update_symbols_file(tmp.name, generated_gdom_symbols_path):
&gt; +        source = open(tmp.name, &apos;r&apos;)
&gt; +        destination = open(generated_gdom_symbols_path, &apos;w&apos;)
&gt; +        destination.write(source.read())
&gt; +        destination.close()

Instead of writing to a temporary file, why not do the should_update_symbols_file check (against the unwritten contents of the temporary file) before calling gobject-run-api-break-test. Then you can always pass the other script generated_gdom_symbols_path and avoid using the temporary file at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974830</commentid>
    <comment_count>3</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-02-02 14:11:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Instead of writing to a temporary file, why not do the should_update_symbols_file check (against the unwritten contents of the temporary file) before calling gobject-run-api-break-test. Then you can always pass the other script generated_gdom_symbols_path and avoid using the temporary file at all.

gobject-run-api-break-test needs to be run before should_update_symbols_file is executed, because it tests the tmp file against the file that gets generated by the other script, not the one available in the sources. I guess it could be changed to get the contents of what currently is being written to a tmpfile through stdin, though, but I&apos;d prefer to do the same we were doing in the make target first and doing that in a follow-up patch if that&apos;s ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976329</commentid>
    <comment_count>4</comment_count>
      <attachid>223109</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-02-04 07:04:51 -0800</bug_when>
    <thetext>Created attachment 223109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976436</commentid>
    <comment_count>5</comment_count>
      <attachid>223109</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-04 10:49:11 -0800</bug_when>
    <thetext>Comment on attachment 223109
Patch

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

Okay! Please look into the dependencies for generate-gdom-symbols-file before landing though.

&gt; Source/WebCore/PlatformGTK.cmake:735
&gt; +    add_custom_target(generate-gdom-symbols-file
&gt; +        DEPENDS GObjectDOMBindings
&gt; +    )

It seems like this needs to also depend on all the individual *.symbol files. in the output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979388</commentid>
    <comment_count>6</comment_count>
      <attachid>223851</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-02-11 06:55:40 -0800</bug_when>
    <thetext>Created attachment 223851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979393</commentid>
    <comment_count>7</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-02-11 06:58:07 -0800</bug_when>
    <thetext>I had broken the dependency chain by mistake when I updated the patch, this one gets the target actually called. That uncovered an issue: our bindings were not being generated properly for StorageQuota and StorageInfo, because their IDL files were not listed in the supplemental file even though we listed them in the classes to be generated. This version also fixes that. Believe it&apos;s good to go, running it by you again =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980512</commentid>
    <comment_count>8</comment_count>
      <attachid>223851</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-13 16:03:59 -0800</bug_when>
    <thetext>Comment on attachment 223851
Patch

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

&gt; Source/WebCore/CMakeLists.txt:2753
&gt; -if (ENABLE_QUOTA)
&gt; +if (ENABLE_QUOTA OR PORT STREQUAL &quot;GTK&quot;)

Probably want to stick a little comment here explaining the situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980527</commentid>
    <comment_count>9</comment_count>
      <attachid>223851</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2014-02-13 16:31:58 -0800</bug_when>
    <thetext>Comment on attachment 223851
Patch

Committed: http://trac.webkit.org/changeset/164076</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220531</attachid>
            <date>2014-01-07 08:57:16 -0800</date>
            <delta_ts>2014-02-04 07:04:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126210-20140107145714.patch</filename>
            <type>text/plain</type>
            <size>6042</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm1H
VEsuY21ha2UgYi9Tb3VyY2UvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjgxOTI0NjUzYWU2OGZm
MWM2YWU4ODA1ZGNjNDJjMDA0ZjYwZTBiMi4uYmRkN2I3NGRkZmRkYjMxY2NiNmI1ODdmOTVmY2Nm
MmQ0ZDBmZDhlZSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Nv
dXJjZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNCw2ICs0LDcgQEAgYWRkX3N1YmRpcmVjdG9yeSgk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ndGsvcG8pCiBhZGRfY3VzdG9tX3RhcmdldChnaXIgQUxM
IERFUEVORFMgJHtHT2JqZWN0SW50cm9zcGVjdGlvblRhcmdldHN9KQogCiBzZXQoRG9jdW1lbnRh
dGlvbkRlcGVuZGVuY2llcworICAgIGZha2UtZ2RvbS1nZW4tc3ltYm9scwogICAgICIke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJLaXQvZ3RrL2RvY3Mvd2Via2l0ZW52aXJvbm1lbnQueG1s
IgogKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGQwOWU2OWNhODU4NjE0NWY5ZTk3
YzQ5YjhjOGIyMGQ1ZDJhMmQ4NTQuLmRlYWRmODA4Y2JiZWU4NGI0OWU1MDFiNGZiYTA0M2FlNWNk
ODA5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02NzgsNyArNjc4LDcgQEAgaWYg
KEVOQUJMRV9XRUJLSVQyKQogICAgICkKIAogICAgIGFkZF9jdXN0b21fdGFyZ2V0KGZha2UtaW5z
dGFsbGVkLXdlYmtpdGRvbS1oZWFkZXJzCi0gICAgICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3MvZ29iamVjdC8qICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1Rf
RE9NX0JJTkRJTkdTX0RJUn0KKyAgICAgICAgQ09NTUFORCBsbiAtbiAtcyAtZiAke1dFQkNPUkVf
RElSfS9iaW5kaW5ncy9nb2JqZWN0LyouaCAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9C
SU5ESU5HU19ESVJ9CiAgICAgKQogCiAgICAgR0VORVJBVEVfQklORElOR1MoR09iamVjdERPTUJp
bmRpbmdzX1NPVVJDRVMKQEAgLTcxMiw1ICs3MTIsMjEgQEAgaWYgKEVOQUJMRV9XRUJLSVQyKQog
ICAgICAgICAgICAgICAgICAgYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaAogICAg
ICAgICAgICAgREVTVElOQVRJT04gIiR7V0VCS0lUR1RLX0hFQURFUl9JTlNUQUxMX0RJUn0vd2Vi
a2l0ZG9tIgogICAgICkKKworICAgIGZpbGUoR0xPQiBHT2JqZWN0RE9NQmluZGluZ3NDaGVja0Rl
cGVuZGVuY2llcworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvZ29iamVjdC9XZWJL
aXRET00qLnN5bWJvbHMiCisgICAgICAgICAgICAiJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9E
T01fQklORElOR1NfRElSfS9XZWJLaXQqLnN5bWJvbHMiCisgICAgKQorCisgICAgYWRkX2N1c3Rv
bV9jb21tYW5kKAorICAgICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1Rf
RE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tLnN5bWJvbHMKKyAgICAgICAgICAgIERFUEVORFMg
JHtHT2JqZWN0RE9NQmluZGluZ3NDaGVja0RlcGVuZGVuY2llc30gJHtDTUFLRV9TT1VSQ0VfRElS
fS9Ub29scy9ndGsvY2hlY2stZ2RvbS1zeW1ib2xzCisgICAgQ09NTUFORCBsbiAtbiAtcyAtZiAk
e1dFQkNPUkVfRElSfS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTSouc3ltYm9scyAke0RFUklW
RURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9CisgICAgQ09NTUFORCAke0NNQUtF
X1NPVVJDRV9ESVJ9L1Rvb2xzL2d0ay9jaGVjay1nZG9tLXN5bWJvbHMKKyAgICApCisKKyAgICBh
ZGRfY3VzdG9tX3RhcmdldChmYWtlLWdkb20tZ2VuLXN5bWJvbHMKKyAgICAgICAgREVQRU5EUyBH
T2JqZWN0RE9NQmluZGluZ3MKKyAgICApCiBlbmRpZiAoKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQppbmRleCA2ODY0ZTEwOThkYjdhMTVlNjU1
MmUyMDVmM2I1YTliNWNkYWEyMjY1Li44OGNjM2JkMjkyMjMxOTExYmMyMTAxY2I5M2RjNmNlMTNi
YmMzYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0KQEAgLTQ5OCwxMSArNDk4LDggQEAgJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2Vz
L3dlYmtpdGRvbS9XZWJLaXRET01EZXByZWNhdGVkLnN5bWJvbHM6ICQoV2ViQ29yZSkKIERlcml2
ZWRTb3VyY2VzL3dlYmtpdGRvbS9XZWJLaXRET00lLnN5bWJvbHM6IERlcml2ZWRTb3VyY2VzL3dl
YmtpdGRvbS9XZWJLaXRET00lLmgKIAlAdHJ1ZQogCi1EZXJpdmVkU291cmNlcy93ZWJraXRkb20v
d2Via2l0ZG9tLnN5bWJvbHM6ICQoZ2RvbV9zeW1ib2xfZmlsZXMpICQoV2ViQ29yZSkvYmluZGlu
Z3MvZ29iamVjdC93ZWJraXRkb20uc3ltYm9scyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
Z29iamVjdC1ydW4tYXBpLWJyZWFrLXRlc3QKLQkkKEFNX1ZfR0VOKWNhdCAkKGdkb21fc3ltYm9s
X2ZpbGVzKSA+IGdkb20tZ2VuLXN5bWJvbHMgXAotCSYmICQoUFlUSE9OKSAkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMvZ29iamVjdC1ydW4tYXBpLWJyZWFrLXRlc3QgJChXZWJDb3JlKS9iaW5k
aW5ncy9nb2JqZWN0L3dlYmtpdGRvbS5zeW1ib2xzIGdkb20tZ2VuLXN5bWJvbHMgXAotCSYmIChj
bXAgLXMgZ2RvbS1nZW4tc3ltYm9scyAkQCB8fCBjcCBnZG9tLWdlbi1zeW1ib2xzICRAKSBcCi0J
JiYgcm0gLWYgZ2RvbS1nZW4tc3ltYm9scworRGVyaXZlZFNvdXJjZXMvd2Via2l0ZG9tL3dlYmtp
dGRvbS5zeW1ib2xzOiAkKGdkb21fc3ltYm9sX2ZpbGVzKSAkKFdlYkNvcmUpL2JpbmRpbmdzL2dv
YmplY3Qvd2Via2l0ZG9tLnN5bWJvbHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dvYmpl
Y3QtcnVuLWFwaS1icmVhay10ZXN0ICQoc3JjZGlyKS9Ub29scy9ndGsvY2hlY2stZ2RvbS1zeW1i
b2xzCisJJChBTV9WX0dFTikkKHNyY2RpcikvVG9vbHMvZ3RrL2NoZWNrLWdkb20tc3ltYm9scwog
CiBFWFRSQV9ESVNUICs9IFwKIAkkKFdlYkNvcmUpL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9N
Q3VzdG9tLnN5bWJvbHMgXApkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2NoZWNrLWdkb20tc3ltYm9s
cyBiL1Rvb2xzL2d0ay9jaGVjay1nZG9tLXN5bWJvbHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNiZjJiMDQ3YTI0
ODMzMDU1NmZmMzk2YmRiMmI4OWU4YzYyZWZmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL2d0
ay9jaGVjay1nZG9tLXN5bWJvbHMKQEAgLTAsMCArMSw2NyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjIENvcHlyaWdodCAoQykgMjAxMyBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9t
ZS5vcmc+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorCitpbXBvcnQgY29tbW9uCitpbXBvcnQgZ2xvYgoraW1wb3J0IG9zCitpbXBvcnQg
c3VicHJvY2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCisKKworZGVyaXZlZF9zb3Vy
Y2VzX3BhdGggPSBjb21tb24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMnKQorZ2RvbV9zb3Vy
Y2VfcGF0aCA9IGNvbW1vbi50b3BfbGV2ZWxfcGF0aCgnU291cmNlJywgJ1dlYkNvcmUnLCAnYmlu
ZGluZ3MnKQorYmluZGluZ3Nfc2NyaXB0c19wYXRoID0gb3MucGF0aC5qb2luKGdkb21fc291cmNl
X3BhdGgsICdzY3JpcHRzJykKK2FwaV9icmVha190ZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oYmlu
ZGluZ3Nfc2NyaXB0c19wYXRoLCAnZ29iamVjdC1ydW4tYXBpLWJyZWFrLXRlc3QnKQorZ2VuZXJh
dGVkX2dkb21fc3ltYm9sc19wYXRoID0gb3MucGF0aC5qb2luKGRlcml2ZWRfc291cmNlc19wYXRo
LCAnd2Via2l0ZG9tJywgJ3dlYmtpdGRvbS5zeW1ib2xzJykKKworaGVhZGVycyA9IGdsb2IuZ2xv
Yihvcy5wYXRoLmpvaW4oZGVyaXZlZF9zb3VyY2VzX3BhdGgsICd3ZWJraXRkb20nLCAnKi5oJykp
CitzeW1ib2xzX2ZpbGVzID0gW2gucmVwbGFjZSgnLmgnLCAnLnN5bWJvbHMnKQorICAgIGZvciBo
IGluIGhlYWRlcnMKKyAgICAgICAgIGlmIG9zLnBhdGguYmFzZW5hbWUoaCkuc3RhcnRzd2l0aCgn
V2ViS2l0JykgYW5kIG5vdCBoLmVuZHN3aXRoKCdQcml2YXRlLmgnKV0KKworCitkZWYgc2hvdWxk
X3VwZGF0ZV9zeW1ib2xzX2ZpbGUobmV3LCBvbGQpOgorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cyhvbGQpOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIG5ldyA9IG9wZW4obmV3KS5yZWFk
KCkKKyAgICBvbGQgPSBvcGVuKG9sZCkucmVhZCgpCisKKyAgICBpZiBsZW4obmV3KSAhPSBsZW4o
b2xkKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBmb3IgaSwgYnl0ZSBpbiBlbnVtZXJh
dGUobmV3KToKKyAgICAgICAgaWYgYnl0ZSAhPSBvbGRbaV06CisgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgIHJldHVybiBUcnVlCisKK3dpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlG
aWxlKCkgYXMgdG1wOgorICAgIGZvciBmaWxlX3BhdGggaW4gc3ltYm9sc19maWxlczoKKyAgICAg
ICAgd2l0aCBvcGVuKGZpbGVfcGF0aCkgYXMgZmlsZV9oYW5kbGU6CisgICAgICAgICAgICB0bXAu
d3JpdGUoZmlsZV9oYW5kbGUucmVhZCgpKQorICAgIHRtcC5mbHVzaCgpCisKKyAgICBzdWJwcm9j
ZXNzLmNhbGwoW3N5cy5leGVjdXRhYmxlLCBhcGlfYnJlYWtfdGVzdF9wYXRoLCBvcy5wYXRoLmpv
aW4oZ2RvbV9zb3VyY2VfcGF0aCwgJ2dvYmplY3QnLCAgJ3dlYmtpdGRvbS5zeW1ib2xzJyksIHRt
cC5uYW1lXSkKKworICAgIGlmIG5vdCBzaG91bGRfdXBkYXRlX3N5bWJvbHNfZmlsZSh0bXAubmFt
ZSwgZ2VuZXJhdGVkX2dkb21fc3ltYm9sc19wYXRoKToKKyAgICAgICAgc291cmNlID0gb3Blbih0
bXAubmFtZSwgJ3InKQorICAgICAgICBkZXN0aW5hdGlvbiA9IG9wZW4oZ2VuZXJhdGVkX2dkb21f
c3ltYm9sc19wYXRoLCAndycpCisgICAgICAgIGRlc3RpbmF0aW9uLndyaXRlKHNvdXJjZS5yZWFk
KCkpCisgICAgICAgIGRlc3RpbmF0aW9uLmNsb3NlKCkKKyAgICAgICAgc291cmNlLmNsb3NlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223109</attachid>
            <date>2014-02-04 07:04:51 -0800</date>
            <delta_ts>2014-02-11 06:55:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126210-20140204130448.patch</filename>
            <type>text/plain</type>
            <size>8732</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODczMTNmNmJjZjAyMDJk
NzBlNTBkMzliMzdmODY5ODYxZWM0NDJiOC4uNGRlNzcxYzllYzY0YThjZDhiMjcxNjU5MWMzMzRk
OWRhZGM3YWRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAyLTA0ICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdW0NNYWtl
XSBHZW5lcmF0ZSBHT2JqZWN0IERPTSBiaW5kaW5ncyAuc3ltYm9scyBmaWxlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MjEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBCdWls
ZCBjaGFuZ2Ugb25seS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBhZGQgYSBuZXcg
dGFyZ2V0IHRvIGNoZWNrIGZvciBET00gc3ltYm9scyBBUEkgYnkKKyAgICAgICAgcnVubmluZyB0
aGUgbmV3IHB5dGhvbiBzY3JpcHQuCisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HTlVtYWtl
ZmlsZS5hbTogY2FsbCB0aGUgbmV3IHB5dGhvbiBzY3JpcHQgaW5zdGVhZAorICAgICAgICBvZiB1
c2luZyBhIGN1c3RvbSBydWxlLgorCiAyMDE0LTAyLTAzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFdLMSBDbGllbnRzIE9ubHkgTGF0Y2ggb24g
TW9tZW50dW0gU2Nyb2xsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm1HVEsuY21ha2UgYi9T
b3VyY2UvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggOTZhMjdlMWZmM2NmMGJiMWU1YTg2ODIyODBk
YTU1MGYwZGI3ZjRlYS4uYTUxYjA4Zjk0YjRiZDA4MWZlNWFiYTZlMDg5Y2FkYzU4OTNiZTVkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bUdUSy5jbWFrZQpAQCAtNCw2ICs0LDcgQEAgYWRkX3N1YmRpcmVjdG9yeSgke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ndGsvcG8pCiBhZGRfY3VzdG9tX3RhcmdldChnaXIgQUxMIERFUEVORFMgJHtH
T2JqZWN0SW50cm9zcGVjdGlvblRhcmdldHN9KQogCiBzZXQoRG9jdW1lbnRhdGlvbkRlcGVuZGVu
Y2llcworICAgIGdlbmVyYXRlLWdkb20tc3ltYm9scy1maWxlCiAgICAgIiR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWwiCiApCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjU4ZWU3ZmYzMzc4YmFkMTMzNjk2MjRiZjVi
MWE4Yzc0YjljNjRkYS4uYzAzMjZkYzBhY2RlYzY2YzdiZTM5YjVlNjYyOWY3ZmNlNmEzOTJlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTY1NywxMSArNjU3LDE1IEBAIGlmIChFTkFC
TEVfV0VCS0lUMikKICAgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJ
TkdTX0RJUn0vd2Via2l0ZG9tLmgKICAgICAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2dv
YmplY3QvV2ViS2l0RE9NQ3VzdG9tLmgKICAgICApCisgICAgZmlsZShHTE9CIEdPYmplY3RET01C
aW5kaW5nc1N5bWJvbHNGaWxlcworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvZ29i
amVjdC9XZWJLaXRET00qLnN5bWJvbHMiCisgICAgKQogCiAgICAgZm9yZWFjaCAoZmlsZSAke0dP
YmplY3RET01CaW5kaW5nc19JRExfRklMRVN9KQogICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9u
ZW50KGNsYXNzbmFtZSAke2ZpbGV9IE5BTUVfV0UpCiAgICAgICAgIGxpc3QoQVBQRU5EIEdPYmpl
Y3RET01CaW5kaW5nc19DTEFTU19MSVNUICR7Y2xhc3NuYW1lfSkKICAgICAgICAgbGlzdChBUFBF
TkQgR09iamVjdERPTUJpbmRpbmdzX0lOU1RBTExFRF9IRUFERVJTICR7REVSSVZFRF9TT1VSQ0VT
X0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vV2ViS2l0RE9NJHtjbGFzc25hbWV9LmgpCisgICAg
ICAgIGxpc3QoQVBQRU5EIEdPYmplY3RET01CaW5kaW5nc1N5bWJvbHNGaWxlcyAke0RFUklWRURf
U09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L1dlYktpdERPTSR7Y2xhc3NuYW1lfS5z
eW1ib2xzKQogICAgIGVuZGZvcmVhY2ggKCkKIAogICAgICMgUHJvcGFnYXRlIHRoaXMgdmFyaWFi
bGUgdG8gdGhlIHBhcmVudCBzY29wZSwgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBpbiBvdGhlciBw
YXJ0cyBvZiB0aGUgYnVpbGQuCkBAIC02ODQsNyArNjg4LDcgQEAgaWYgKEVOQUJMRV9XRUJLSVQy
KQogICAgICkKIAogICAgIGFkZF9jdXN0b21fdGFyZ2V0KGZha2UtaW5zdGFsbGVkLXdlYmtpdGRv
bS1oZWFkZXJzCi0gICAgICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJDT1JFX0RJUn0vYmlu
ZGluZ3MvZ29iamVjdC8qICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJ
Un0KKyAgICAgICAgQ09NTUFORCBsbiAtbiAtcyAtZiAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9n
b2JqZWN0LyouaCAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9CiAg
ICAgKQogCiAgICAgR0VORVJBVEVfQklORElOR1MoR09iamVjdERPTUJpbmRpbmdzX1NPVVJDRVMK
QEAgLTcxOCw1ICs3MjIsMTYgQEAgaWYgKEVOQUJMRV9XRUJLSVQyKQogICAgICAgICAgICAgICAg
ICAgYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaAogICAgICAgICAgICAgREVTVElO
QVRJT04gIiR7V0VCS0lUR1RLX0hFQURFUl9JTlNUQUxMX0RJUn0vd2Via2l0ZG9tIgogICAgICkK
KworICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VS
Q0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tLnN5bWJvbHMKKyAgICAgICAg
REVQRU5EUyAke0dPYmplY3RET01CaW5kaW5nc1N5bWJvbHNGaWxlc30gJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Ub29scy9ndGsvY2hlY2stZ2RvbS1zeW1ib2xzCisgICAgICAgIENPTU1BTkQgbG4gLW4g
LXMgLWYgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET00qLnN5bWJvbHMg
JHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklORElOR1NfRElSfQorICAgICAgICBDT01N
QU5EICR7Q01BS0VfU09VUkNFX0RJUn0vVG9vbHMvZ3RrL2NoZWNrLWdkb20tc3ltYm9scworICAg
ICkKKworICAgIGFkZF9jdXN0b21fdGFyZ2V0KGdlbmVyYXRlLWdkb20tc3ltYm9scy1maWxlCisg
ICAgICAgIERFUEVORFMgR09iamVjdERPTUJpbmRpbmdzCisgICAgKQogZW5kaWYgKCkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KaW5kZXggYmQz
NjQzZmE5NDM1NzRkZDA1MzZkMzkyNjZjMzA5OWFlYjA1MGVkZC4uODhjYzNiZDI5MjIzMTkxMWJj
MjEwMWNiOTNkYzZjZTEzYmJjM2JkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
b2JqZWN0L0dOVW1ha2VmaWxlLmFtCkBAIC00OTgsMTAgKzQ5OCw4IEBAICQodG9wX2J1aWxkZGly
KS9EZXJpdmVkU291cmNlcy93ZWJraXRkb20vV2ViS2l0RE9NRGVwcmVjYXRlZC5zeW1ib2xzOiAk
KFdlYkNvcmUpCiBEZXJpdmVkU291cmNlcy93ZWJraXRkb20vV2ViS2l0RE9NJS5zeW1ib2xzOiBE
ZXJpdmVkU291cmNlcy93ZWJraXRkb20vV2ViS2l0RE9NJS5oCiAJQHRydWUKIAotRGVyaXZlZFNv
dXJjZXMvd2Via2l0ZG9tL3dlYmtpdGRvbS5zeW1ib2xzOiAkKGdkb21fc3ltYm9sX2ZpbGVzKSAk
KFdlYkNvcmUpL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0ZG9tLnN5bWJvbHMgJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtcnVuLWFwaS1icmVhay10ZXN0Ci0JJChBTV9WX0dFTilj
YXQgJChnZG9tX3N5bWJvbF9maWxlcykgPiBnZG9tLWdlbi1zeW1ib2xzIFwKLQkmJiAkKFBZVEhP
TikgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtcnVuLWFwaS1icmVhay10ZXN0
ICQoV2ViQ29yZSkvYmluZGluZ3MvZ29iamVjdC93ZWJraXRkb20uc3ltYm9scyBnZG9tLWdlbi1z
eW1ib2xzIFwKLQkmJiBtdiBnZG9tLWdlbi1zeW1ib2xzICRACitEZXJpdmVkU291cmNlcy93ZWJr
aXRkb20vd2Via2l0ZG9tLnN5bWJvbHM6ICQoZ2RvbV9zeW1ib2xfZmlsZXMpICQoV2ViQ29yZSkv
YmluZGluZ3MvZ29iamVjdC93ZWJraXRkb20uc3ltYm9scyAkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMvZ29iamVjdC1ydW4tYXBpLWJyZWFrLXRlc3QgJChzcmNkaXIpL1Rvb2xzL2d0ay9jaGVj
ay1nZG9tLXN5bWJvbHMKKwkkKEFNX1ZfR0VOKSQoc3JjZGlyKS9Ub29scy9ndGsvY2hlY2stZ2Rv
bS1zeW1ib2xzCiAKIEVYVFJBX0RJU1QgKz0gXAogCSQoV2ViQ29yZSkvYmluZGluZ3MvZ29iamVj
dC9XZWJLaXRET01DdXN0b20uc3ltYm9scyBcCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDQzMWVkNzgwODFkY2JmZmFmNmU0MTU3MGRjMWJjMmY4
Y2M0YTcwZi4uNzcyZDBjNzA0ZGFiMmY3ZWIwNWE3ZjY0NGU2Mzg0NDZmNDIwMWQwMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE0LTAyLTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgor
CisgICAgICAgIFtHVEtdW0NNYWtlXSBHZW5lcmF0ZSBHT2JqZWN0IERPTSBiaW5kaW5ncyAuc3lt
Ym9scyBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI2MjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBndGsvY2hlY2stZ2RvbS1zeW1ib2xzOiBBZGRlZC4gQ2hlY2tzIHN5bWJvbHMgY29tcGF0
aWJpbGl0eS4KKyAgICAgICAgKHNob3VsZF91cGRhdGVfc3ltYm9sc19maWxlKToKKwogMjAxNC0w
Mi0wMyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgRmVhdHVyZSBm
bGFnIGZvciBzaGFwZS1pbnNpZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9jaGVjay1nZG9tLXN5
bWJvbHMgYi9Ub29scy9ndGsvY2hlY2stZ2RvbS1zeW1ib2xzCm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMTA4Yjdl
YTkyMjQyMTU1MjQ3YjljYzJlZmEwNTEyMWZiZDAwOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9ndGsvY2hlY2stZ2RvbS1zeW1ib2xzCkBAIC0wLDAgKzEsNjMgQEAKKyMhL3Vzci9iaW4vZW52
IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTMgR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNA
Z25vbWUub3JnPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKworaW1wb3J0IGNvbW1vbgoraW1wb3J0IGdsb2IKK2ltcG9ydCBvcworaW1w
b3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQorCisKK2RlZiBzaG91
bGRfdXBkYXRlX3N5bWJvbHNfZmlsZShuZXcsIG9sZCk6CisgICAgaWYgbm90IG9zLnBhdGguZXhp
c3RzKG9sZCk6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgbmV3ID0gb3BlbihuZXcpLnJl
YWQoKQorICAgIG9sZCA9IG9wZW4ob2xkKS5yZWFkKCkKKworICAgIGlmIGxlbihuZXcpICE9IGxl
bihvbGQpOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGZvciBpLCBieXRlIGluIGVudW1l
cmF0ZShuZXcpOgorICAgICAgICBpZiBieXRlICE9IG9sZFtpXToKKyAgICAgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgcmV0dXJuIFRydWUKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
KyAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSgpIGFzIHRtcDoKKyAgICAgICAg
Zm9yIGZpbGVfcGF0aCBpbiBnbG9iLmdsb2Iob3MucGF0aC5qb2luKGNvbW1vbi5idWlsZF9wYXRo
KCdEZXJpdmVkU291cmNlcycpLCAnd2Via2l0ZG9tJywgJyouaCcpKToKKyAgICAgICAgICAgIGlm
IG5vdCBvcy5wYXRoLmJhc2VuYW1lKGZpbGVfcGF0aCkuc3RhcnRzd2l0aCgnV2ViS2l0Jykgb3Ig
ZmlsZV9wYXRoLmVuZHN3aXRoKCdQcml2YXRlLmgnKToKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorCisgICAgICAgICAgICBmaWxlX3BhdGggPSBmaWxlX3BhdGgucmVwbGFjZSgnLmgnLCAnLnN5
bWJvbHMnKQorICAgICAgICAgICAgd2l0aCBvcGVuKGZpbGVfcGF0aCkgYXMgZmlsZV9oYW5kbGU6
CisgICAgICAgICAgICAgICAgdG1wLndyaXRlKGZpbGVfaGFuZGxlLnJlYWQoKSkKKyAgICAgICAg
dG1wLmZsdXNoKCkKKworICAgICAgICBnZG9tX3NvdXJjZV9wYXRoID0gY29tbW9uLnRvcF9sZXZl
bF9wYXRoKCdTb3VyY2UnLCAnV2ViQ29yZScsICdiaW5kaW5ncycpCisgICAgICAgIGFwaV9icmVh
a190ZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oZ2RvbV9zb3VyY2VfcGF0aCwgJ3NjcmlwdHMnLCAn
Z29iamVjdC1ydW4tYXBpLWJyZWFrLXRlc3QnKQorICAgICAgICBzdWJwcm9jZXNzLmNhbGwoW3N5
cy5leGVjdXRhYmxlLCBhcGlfYnJlYWtfdGVzdF9wYXRoLCBvcy5wYXRoLmpvaW4oZ2RvbV9zb3Vy
Y2VfcGF0aCwgJ2dvYmplY3QnLCAgJ3dlYmtpdGRvbS5zeW1ib2xzJyksIHRtcC5uYW1lXSkKKwor
ICAgICAgICBnZW5lcmF0ZWRfZ2RvbV9zeW1ib2xzX3BhdGggPSBvcy5wYXRoLmpvaW4oY29tbW9u
LmJ1aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2VzJyksICd3ZWJraXRkb20nLCAnd2Via2l0ZG9tLnN5
bWJvbHMnKQorICAgICAgICBpZiBub3Qgc2hvdWxkX3VwZGF0ZV9zeW1ib2xzX2ZpbGUodG1wLm5h
bWUsIGdlbmVyYXRlZF9nZG9tX3N5bWJvbHNfcGF0aCk6CisgICAgICAgICAgICBzb3VyY2UgPSBv
cGVuKHRtcC5uYW1lLCAncicpCisgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IG9wZW4oZ2VuZXJh
dGVkX2dkb21fc3ltYm9sc19wYXRoLCAndycpCisgICAgICAgICAgICBkZXN0aW5hdGlvbi53cml0
ZShzb3VyY2UucmVhZCgpKQorICAgICAgICAgICAgZGVzdGluYXRpb24uY2xvc2UoKQorICAgICAg
ICAgICAgc291cmNlLmNsb3NlKCkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCA1MjY1MWJjMGQ0Zjk4NWUzMjhjYmEwYjU0MDY2YTI4NTgzZWUyZjFlLi4xNWQ2ZGRkMDQ4
YmEwZjI1MmRiZjZkYWRjNjNjMTgwZjQzNDNjYzg3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDItMDQgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CisKKyAgICAgICAgW0dUS11bQ01ha2VdIEdlbmVyYXRl
IEdPYmplY3QgRE9NIGJpbmRpbmdzIC5zeW1ib2xzIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYyMTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9QbGF0Zm9ybUdUSy5jbWFrZTog
YWRkIGNoZWNraW5nIERPTSBiaW5kaW5ncyBBUEkgYXMgYSBkZXBlbmRlbmN5CisgICAgICAgIGZv
ciBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24uCisKIDIwMTQtMDEtMzEgIEJlbmphbWluIFBvdWxh
aW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIExFR0FDWV9WSUVXUE9S
VF9BREFQVElPTgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223851</attachid>
            <date>2014-02-11 06:55:40 -0800</date>
            <delta_ts>2014-02-13 16:31:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126210-20140211125539.patch</filename>
            <type>text/plain</type>
            <size>9442</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODczMTNmNmJjZjAyMDJk
NzBlNTBkMzliMzdmODY5ODYxZWM0NDJiOC4uYmVmZWVkZDE1YWUyMzYzMWM3MjAwZDE3OTJmYWJj
NjBiZTQ4NTE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAyLTA0ICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdW0NNYWtl
XSBHZW5lcmF0ZSBHT2JqZWN0IERPTSBiaW5kaW5ncyAuc3ltYm9scyBmaWxlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MjEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBCdWls
ZCBjaGFuZ2Ugb25seS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBsaXN0IFF1b3RhIG1v
ZHVsZSBmaWxlcyBhbmQgSURMcyBldmVuIGlmIHRoZSBmZWF0dXJlCisgICAgICAgIGlzIGRpc2Fi
bGVkLCBmb3IgR1RLLCBzaW5jZSB3ZSByZWx5IG9uIHRoYXQgZm9yIG91ciBET00gYmluZGluZ3Mu
CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IGFkZCBhIG5ldyB0YXJnZXQgdG8gY2hlY2sg
Zm9yIERPTSBzeW1ib2xzIEFQSSBieQorICAgICAgICBydW5uaW5nIHRoZSBuZXcgcHl0aG9uIHNj
cmlwdC4KKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOiBjYWxsIHRo
ZSBuZXcgcHl0aG9uIHNjcmlwdCBpbnN0ZWFkCisgICAgICAgIG9mIHVzaW5nIGEgY3VzdG9tIHJ1
bGUuCisKIDIwMTQtMDItMDMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01hY10gV0sxIENsaWVudHMgT25seSBMYXRjaCBvbiBNb21lbnR1bSBTY3JvbGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCA5NmEyN2UxZmYzY2YwYmIxZTVhODY4MjI4MGRhNTUwZjBkYjdmNGVhLi5h
NTFiMDhmOTRiNGJkMDgxZmU1YWJhNmUwODljYWRjNTg5M2JlNWQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00
LDYgKzQsNyBAQCBhZGRfc3ViZGlyZWN0b3J5KCR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2d0ay9w
bykKIGFkZF9jdXN0b21fdGFyZ2V0KGdpciBBTEwgREVQRU5EUyAke0dPYmplY3RJbnRyb3NwZWN0
aW9uVGFyZ2V0c30pCiAKIHNldChEb2N1bWVudGF0aW9uRGVwZW5kZW5jaWVzCisgICAgZ2VuZXJh
dGUtZ2RvbS1zeW1ib2xzLWZpbGUKICAgICAiJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2Vi
S2l0L2d0ay9kb2NzL3dlYmtpdGVudmlyb25tZW50LnhtbCIKICkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA0ODcxZDY2ZDM0ZTM1MDNkMjVlYTAxZWUwMjBkNmY4NGFjMjJhNTFmLi42NTBiYmEz
NGY0MWExZDVjNDgzZjYyMzhiY2MyOTFkYmVhMmYxMGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjc1MCw3ICsyNzUwLDcgQEAgaWYgKEVOQUJMRV9WSURFT19UUkFDSykKICAgICApCiBlbmRp
ZiAoKQogCi1pZiAoRU5BQkxFX1FVT1RBKQoraWYgKEVOQUJMRV9RVU9UQSBPUiBQT1JUIFNUUkVR
VUFMICJHVEsiKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBNb2R1
bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcAogICAgICAgICBNb2R1bGVzL3F1b3RhL05hdmln
YXRvclN0b3JhZ2VRdW90YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
R1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjU4ZWU3
ZmYzMzc4YmFkMTMzNjk2MjRiZjViMWE4Yzc0YjljNjRkYS4uYjY5YzYwNTdmOTUwZDMxZTk0MWIw
YTE5NTljNDAwZDg4NGE4ZDMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1H
VEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTY1Nywx
MSArNjU3LDE1IEBAIGlmIChFTkFCTEVfV0VCS0lUMikKICAgICAgICAgICR7REVSSVZFRF9TT1VS
Q0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tLmgKICAgICAgICAgICR7V0VC
Q09SRV9ESVJ9L2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NQ3VzdG9tLmgKICAgICApCisgICAg
ZmlsZShHTE9CIEdPYmplY3RET01CaW5kaW5nc1N5bWJvbHNGaWxlcworICAgICAgICAiJHtXRUJD
T1JFX0RJUn0vYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET00qLnN5bWJvbHMiCisgICAgKQogCiAg
ICAgZm9yZWFjaCAoZmlsZSAke0dPYmplY3RET01CaW5kaW5nc19JRExfRklMRVN9KQogICAgICAg
ICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KGNsYXNzbmFtZSAke2ZpbGV9IE5BTUVfV0UpCiAgICAg
ICAgIGxpc3QoQVBQRU5EIEdPYmplY3RET01CaW5kaW5nc19DTEFTU19MSVNUICR7Y2xhc3NuYW1l
fSkKICAgICAgICAgbGlzdChBUFBFTkQgR09iamVjdERPTUJpbmRpbmdzX0lOU1RBTExFRF9IRUFE
RVJTICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vV2ViS2l0RE9N
JHtjbGFzc25hbWV9LmgpCisgICAgICAgIGxpc3QoQVBQRU5EIEdPYmplY3RET01CaW5kaW5nc1N5
bWJvbHNGaWxlcyAke0RFUklWRURfU09VUkNFU19HT0JKRUNUX0RPTV9CSU5ESU5HU19ESVJ9L1dl
YktpdERPTSR7Y2xhc3NuYW1lfS5zeW1ib2xzKQogICAgIGVuZGZvcmVhY2ggKCkKIAogICAgICMg
UHJvcGFnYXRlIHRoaXMgdmFyaWFibGUgdG8gdGhlIHBhcmVudCBzY29wZSwgc28gdGhhdCBpdCBj
YW4gYmUgdXNlZCBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgYnVpbGQuCkBAIC02ODQsNyArNjg4LDcg
QEAgaWYgKEVOQUJMRV9XRUJLSVQyKQogICAgICkKIAogICAgIGFkZF9jdXN0b21fdGFyZ2V0KGZh
a2UtaW5zdGFsbGVkLXdlYmtpdGRvbS1oZWFkZXJzCi0gICAgICAgIENPTU1BTkQgbG4gLW4gLXMg
LWYgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvZ29iamVjdC8qICR7REVSSVZFRF9TT1VSQ0VTX0dP
QkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0KKyAgICAgICAgQ09NTUFORCBsbiAtbiAtcyAtZiAke1dF
QkNPUkVfRElSfS9iaW5kaW5ncy9nb2JqZWN0LyouaCAke0RFUklWRURfU09VUkNFU19HT0JKRUNU
X0RPTV9CSU5ESU5HU19ESVJ9CiAgICAgKQogCiAgICAgR0VORVJBVEVfQklORElOR1MoR09iamVj
dERPTUJpbmRpbmdzX1NPVVJDRVMKQEAgLTcxOCw1ICs3MjIsMTYgQEAgaWYgKEVOQUJMRV9XRUJL
SVQyKQogICAgICAgICAgICAgICAgICAgYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3Qu
aAogICAgICAgICAgICAgREVTVElOQVRJT04gIiR7V0VCS0lUR1RLX0hFQURFUl9JTlNUQUxMX0RJ
Un0vd2Via2l0ZG9tIgogICAgICkKKworICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAg
T1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0
ZG9tLnN5bWJvbHMKKyAgICAgICAgREVQRU5EUyAke0dPYmplY3RET01CaW5kaW5nc1N5bWJvbHNG
aWxlc30gJHtDTUFLRV9TT1VSQ0VfRElSfS9Ub29scy9ndGsvY2hlY2stZ2RvbS1zeW1ib2xzCisg
ICAgICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvZ29iamVj
dC9XZWJLaXRET00qLnN5bWJvbHMgJHtERVJJVkVEX1NPVVJDRVNfR09CSkVDVF9ET01fQklORElO
R1NfRElSfQorICAgICAgICBDT01NQU5EICR7Q01BS0VfU09VUkNFX0RJUn0vVG9vbHMvZ3RrL2No
ZWNrLWdkb20tc3ltYm9scworICAgICkKKworICAgIGFkZF9jdXN0b21fdGFyZ2V0KGdlbmVyYXRl
LWdkb20tc3ltYm9scy1maWxlCisgICAgICAgIERFUEVORFMgR09iamVjdERPTUJpbmRpbmdzICR7
REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdTX0RJUn0vd2Via2l0ZG9tLnN5bWJv
bHMKKyAgICApCiBlbmRpZiAoKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVj
dC9HTlVtYWtlZmlsZS5hbQppbmRleCBiZDM2NDNmYTk0MzU3NGRkMDUzNmQzOTI2NmMzMDk5YWVi
MDUwZWRkLi44OGNjM2JkMjkyMjMxOTExYmMyMTAxY2I5M2RjNmNlMTNiYmMzYmQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KQEAgLTQ5OCwx
MCArNDk4LDggQEAgJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdGRvbS9XZWJL
aXRET01EZXByZWNhdGVkLnN5bWJvbHM6ICQoV2ViQ29yZSkKIERlcml2ZWRTb3VyY2VzL3dlYmtp
dGRvbS9XZWJLaXRET00lLnN5bWJvbHM6IERlcml2ZWRTb3VyY2VzL3dlYmtpdGRvbS9XZWJLaXRE
T00lLmgKIAlAdHJ1ZQogCi1EZXJpdmVkU291cmNlcy93ZWJraXRkb20vd2Via2l0ZG9tLnN5bWJv
bHM6ICQoZ2RvbV9zeW1ib2xfZmlsZXMpICQoV2ViQ29yZSkvYmluZGluZ3MvZ29iamVjdC93ZWJr
aXRkb20uc3ltYm9scyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1ydW4tYXBp
LWJyZWFrLXRlc3QKLQkkKEFNX1ZfR0VOKWNhdCAkKGdkb21fc3ltYm9sX2ZpbGVzKSA+IGdkb20t
Z2VuLXN5bWJvbHMgXAotCSYmICQoUFlUSE9OKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
Z29iamVjdC1ydW4tYXBpLWJyZWFrLXRlc3QgJChXZWJDb3JlKS9iaW5kaW5ncy9nb2JqZWN0L3dl
YmtpdGRvbS5zeW1ib2xzIGdkb20tZ2VuLXN5bWJvbHMgXAotCSYmIG12IGdkb20tZ2VuLXN5bWJv
bHMgJEAKK0Rlcml2ZWRTb3VyY2VzL3dlYmtpdGRvbS93ZWJraXRkb20uc3ltYm9sczogJChnZG9t
X3N5bWJvbF9maWxlcykgJChXZWJDb3JlKS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGRvbS5zeW1i
b2xzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LXJ1bi1hcGktYnJlYWstdGVz
dCAkKHNyY2RpcikvVG9vbHMvZ3RrL2NoZWNrLWdkb20tc3ltYm9scworCSQoQU1fVl9HRU4pJChz
cmNkaXIpL1Rvb2xzL2d0ay9jaGVjay1nZG9tLXN5bWJvbHMKIAogRVhUUkFfRElTVCArPSBcCiAJ
JChXZWJDb3JlKS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTUN1c3RvbS5zeW1ib2xzIFwKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwNDMxZWQ3
ODA4MWRjYmZmYWY2ZTQxNTcwZGMxYmMyZjhjYzRhNzBmLi43NzJkMGM3MDRkYWIyZjdlYjA1YTdm
NjQ0ZTYzODQ0NmY0MjAxZDAxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDItMDQgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CisKKyAgICAgICAgW0dUS11bQ01ha2VdIEdlbmVyYXRl
IEdPYmplY3QgRE9NIGJpbmRpbmdzIC5zeW1ib2xzIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYyMTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGd0ay9jaGVjay1nZG9tLXN5bWJvbHM6IEFk
ZGVkLiBDaGVja3Mgc3ltYm9scyBjb21wYXRpYmlsaXR5LgorICAgICAgICAoc2hvdWxkX3VwZGF0
ZV9zeW1ib2xzX2ZpbGUpOgorCiAyMDE0LTAyLTAzICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KIAogICAgICAgICBGZWF0dXJlIGZsYWcgZm9yIHNoYXBlLWluc2lkZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvZ3RrL2NoZWNrLWdkb20tc3ltYm9scyBiL1Rvb2xzL2d0ay9jaGVjay1nZG9tLXN5
bWJvbHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjExMDhiN2VhOTIyNDIxNTUyNDdiOWNjMmVmYTA1MTIxZmJkMDA5
NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL2d0ay9jaGVjay1nZG9tLXN5bWJvbHMKQEAgLTAs
MCArMSw2MyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMyBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+CisjCisjIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
IyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitpbXBvcnQgY29tbW9uCitp
bXBvcnQgZ2xvYgoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworaW1w
b3J0IHRlbXBmaWxlCisKKworZGVmIHNob3VsZF91cGRhdGVfc3ltYm9sc19maWxlKG5ldywgb2xk
KToKKyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMob2xkKToKKyAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICBuZXcgPSBvcGVuKG5ldykucmVhZCgpCisgICAgb2xkID0gb3BlbihvbGQpLnJlYWQo
KQorCisgICAgaWYgbGVuKG5ldykgIT0gbGVuKG9sZCk6CisgICAgICAgIHJldHVybiBGYWxzZQor
CisgICAgZm9yIGksIGJ5dGUgaW4gZW51bWVyYXRlKG5ldyk6CisgICAgICAgIGlmIGJ5dGUgIT0g
b2xkW2ldOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICByZXR1cm4gVHJ1ZQorCitp
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3Jh
cnlGaWxlKCkgYXMgdG1wOgorICAgICAgICBmb3IgZmlsZV9wYXRoIGluIGdsb2IuZ2xvYihvcy5w
YXRoLmpvaW4oY29tbW9uLmJ1aWxkX3BhdGgoJ0Rlcml2ZWRTb3VyY2VzJyksICd3ZWJraXRkb20n
LCAnKi5oJykpOgorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguYmFzZW5hbWUoZmlsZV9wYXRo
KS5zdGFydHN3aXRoKCdXZWJLaXQnKSBvciBmaWxlX3BhdGguZW5kc3dpdGgoJ1ByaXZhdGUuaCcp
OgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGZpbGVfcGF0aCA9IGZp
bGVfcGF0aC5yZXBsYWNlKCcuaCcsICcuc3ltYm9scycpCisgICAgICAgICAgICB3aXRoIG9wZW4o
ZmlsZV9wYXRoKSBhcyBmaWxlX2hhbmRsZToKKyAgICAgICAgICAgICAgICB0bXAud3JpdGUoZmls
ZV9oYW5kbGUucmVhZCgpKQorICAgICAgICB0bXAuZmx1c2goKQorCisgICAgICAgIGdkb21fc291
cmNlX3BhdGggPSBjb21tb24udG9wX2xldmVsX3BhdGgoJ1NvdXJjZScsICdXZWJDb3JlJywgJ2Jp
bmRpbmdzJykKKyAgICAgICAgYXBpX2JyZWFrX3Rlc3RfcGF0aCA9IG9zLnBhdGguam9pbihnZG9t
X3NvdXJjZV9wYXRoLCAnc2NyaXB0cycsICdnb2JqZWN0LXJ1bi1hcGktYnJlYWstdGVzdCcpCisg
ICAgICAgIHN1YnByb2Nlc3MuY2FsbChbc3lzLmV4ZWN1dGFibGUsIGFwaV9icmVha190ZXN0X3Bh
dGgsIG9zLnBhdGguam9pbihnZG9tX3NvdXJjZV9wYXRoLCAnZ29iamVjdCcsICAnd2Via2l0ZG9t
LnN5bWJvbHMnKSwgdG1wLm5hbWVdKQorCisgICAgICAgIGdlbmVyYXRlZF9nZG9tX3N5bWJvbHNf
cGF0aCA9IG9zLnBhdGguam9pbihjb21tb24uYnVpbGRfcGF0aCgnRGVyaXZlZFNvdXJjZXMnKSwg
J3dlYmtpdGRvbScsICd3ZWJraXRkb20uc3ltYm9scycpCisgICAgICAgIGlmIG5vdCBzaG91bGRf
dXBkYXRlX3N5bWJvbHNfZmlsZSh0bXAubmFtZSwgZ2VuZXJhdGVkX2dkb21fc3ltYm9sc19wYXRo
KToKKyAgICAgICAgICAgIHNvdXJjZSA9IG9wZW4odG1wLm5hbWUsICdyJykKKyAgICAgICAgICAg
IGRlc3RpbmF0aW9uID0gb3BlbihnZW5lcmF0ZWRfZ2RvbV9zeW1ib2xzX3BhdGgsICd3JykKKyAg
ICAgICAgICAgIGRlc3RpbmF0aW9uLndyaXRlKHNvdXJjZS5yZWFkKCkpCisgICAgICAgICAgICBk
ZXN0aW5hdGlvbi5jbG9zZSgpCisgICAgICAgICAgICBzb3VyY2UuY2xvc2UoKQpkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDUyNjUxYmMwZDRmOTg1ZTMyOGNiYTBiNTQw
NjZhMjg1ODNlZTJmMWUuLjE1ZDZkZGQwNDhiYTBmMjUyZGJmNmRhZGM2M2MxODBmNDM0M2NjODcg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxNC0wMi0wNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KKworICAg
ICAgICBbR1RLXVtDTWFrZV0gR2VuZXJhdGUgR09iamVjdCBET00gYmluZGluZ3MgLnN5bWJvbHMg
ZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NjIxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U291cmNlL1BsYXRmb3JtR1RLLmNtYWtlOiBhZGQgY2hlY2tpbmcgRE9NIGJpbmRpbmdzIEFQSSBh
cyBhIGRlcGVuZGVuY3kKKyAgICAgICAgZm9yIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbi4KKwog
MjAxNC0wMS0zMSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgTEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>