<?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>43512</bug_id>
          
          <creation_ts>2010-08-04 15:04:31 -0700</creation_ts>
          <short_desc>[GTK] Use GSettings to save/restore Web Inspector settings</short_desc>
          <delta_ts>2010-08-12 16:24:52 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>260232</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-04 15:04:31 -0700</bug_when>
    <thetext>The Web Inspector has a number of settings it uses to decide whether, for instance, the javascript debugger should always be enabled. Similar settings exist for the profiler, resource tracker, and along with those there are a few other settings. Now that glib has GSettings, it&apos;s a good time to add support for those hooks into WebKitGTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260234</commentid>
    <comment_count>1</comment_count>
      <attachid>63499</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-04 15:11:22 -0700</bug_when>
    <thetext>Created attachment 63499
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260235</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-04 15:14:48 -0700</bug_when>
    <thetext>Attachment 63499 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:121:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:137:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp:145:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 3 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260242</commentid>
    <comment_count>3</comment_count>
      <attachid>63501</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-04 15:27:12 -0700</bug_when>
    <thetext>Created attachment 63501
proposed patch

Fixed style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260248</commentid>
    <comment_count>4</comment_count>
      <attachid>63499</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-08-04 15:38:45 -0700</bug_when>
    <thetext>Comment on attachment 63499
proposed patch

Awesome patch!

&gt; +gsettings_SCHEMAS = $(srcdir)/WebKit/gtk/org.webkit.gtk.gschema.xml

Perhaps the identifier should be org.webkitgtk.gschema.xml to match our
domain name? I&apos;m not sure what the typical procedure is here.

&gt; +GSettings* webkit_get_inspector_g_settings()
&gt; +{
&gt; +    static GSettings* settings = g_settings_new(&quot;org.webkit.gtk.inspector&quot;);
&gt; +    return settings;
&gt; +}

I think it makes sense to follow WebKit-style naming conventions
for this helper, since it isn&apos;t part of the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260556</commentid>
    <comment_count>5</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-05 06:03:33 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 63499 [details])
&gt; Awesome patch!

Thanks =)
 
&gt; &gt; +gsettings_SCHEMAS = $(srcdir)/WebKit/gtk/org.webkit.gtk.gschema.xml
&gt; 
&gt; Perhaps the identifier should be org.webkitgtk.gschema.xml to match our
&gt; domain name? I&apos;m not sure what the typical procedure is here.

Agreed, makes sense!

&gt; &gt; +GSettings* webkit_get_inspector_g_settings()
&gt; &gt; +{
&gt; &gt; +    static GSettings* settings = g_settings_new(&quot;org.webkit.gtk.inspector&quot;);
&gt; &gt; +    return settings;
&gt; &gt; +}
&gt; 
&gt; I think it makes sense to follow WebKit-style naming conventions
&gt; for this helper, since it isn&apos;t part of the API.

Hmm, yes, I think you are right here as well, though I was thinking this might become convenience API for browsers wanting to track/manipulate the settings, but I guess we can rename/relocate the helper if that turns out to be the case =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260651</commentid>
    <comment_count>6</comment_count>
      <attachid>63599</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-05 09:12:41 -0700</bug_when>
    <thetext>Created attachment 63599
proposed patch

Addresses Martin&apos;s suggestions, and enables parallel-instalability of gtk2 and gtk3 versions of the schema.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263507</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-08-11 16:13:28 -0700</bug_when>
    <thetext>I like this patch a lot, but I wonder if there is a way to write it in a way which basically no-ops on older versions of GLib instead of bumping the required version again. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263547</commentid>
    <comment_count>8</comment_count>
      <attachid>63599</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-08-11 18:13:02 -0700</bug_when>
    <thetext>Comment on attachment 63599
proposed patch

Gustavo mentioned to me over IRC that it is possible to write this patch without bumping the required version of GIO (conditional compilation of the GSettings bits). I&apos;ll r- for now, until he gets back to this. If it isn&apos;t possible, feel free to r? again. It looks awesome to me otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263808</commentid>
    <comment_count>9</comment_count>
      <attachid>64224</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-12 07:50:25 -0700</bug_when>
    <thetext>Created attachment 64224
use gsettings for the inspector

Addressed Martin&apos;s suggestion (effectiveness will be tested by the EWS, which should have an earlier glib version ;D)

Also, I built with introspection this time, and found GSettings would cause us trouble because it _really_ wants the schema to be installed (it aborts the process if it is not!). I made WebKit more reliant/robust to gsettings whims in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263810</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-12 07:52:25 -0700</bug_when>
    <thetext>Attachment 64224 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/gtk/webkit/webkitprivate.cpp:224:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263812</commentid>
    <comment_count>11</comment_count>
      <attachid>64224</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-12 07:53:27 -0700</bug_when>
    <thetext>Comment on attachment 64224
use gsettings for the inspector

WebKit/gtk/JSCore.gir.in:2
 +  &lt;repository version=&quot;1.0&quot;
err... disregard this one, it&apos;s just something I need to do to be able to build with an older gobject-introspection, I&apos;m researching a way of detecting the version to generate it correctly automatically based on the gobject-introspection version =(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263813</commentid>
    <comment_count>12</comment_count>
      <attachid>64224</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-08-12 08:02:31 -0700</bug_when>
    <thetext>Comment on attachment 64224
use gsettings for the inspector

&gt; +#if HAVE_GSETTINGS
&gt; +template &lt;&gt; GVariant* refGPtr(GVariant* ptr)
&gt; +{
&gt; +    if (ptr)
&gt; +        g_variant_ref(ptr);
&gt; +    return ptr;
&gt; +}
&gt; +
&gt; +template &lt;&gt; void derefGPtr(GVariant* ptr)
&gt; +{
&gt; +    g_variant_unref(ptr);
&gt; +}
&gt; +#endif
&gt; +#if HAVE_GSETTINGS
&gt; +template &lt;&gt; GVariant* refGPtr(GVariant* ptr);
&gt; +template &lt;&gt; void derefGPtr(GVariant* ptr);
&gt; +#endif

I&apos;d rather this be unprotected by HAVE_GSETTINGS. It might be useful later
for non-GSettings code!

&gt; +    while (*iter != NULL) {
&gt; +        if (g_str_equal(schemaID, *iter))
&gt; +            return true;
&gt; +        iter++;
&gt; +    }

Style error, as the bot mentioned.

But if you change those two small nits and remove the inadvertant change to the GIR
file, r=me. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264074</commentid>
    <comment_count>13</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2010-08-12 16:24:52 -0700</bug_when>
    <thetext>Landed as r65255.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63499</attachid>
            <date>2010-08-04 15:11:22 -0700</date>
            <delta_ts>2010-08-04 15:38:45 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-GSettings-support.patch</filename>
            <type>text/plain</type>
            <size>13092</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSAwMjBmZmE5Y2U2MTcxYTU0NGNmNTlmZDk4MWI1OTBkZjhlZGU4ZjI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFdlZCwgNCBBdWcgMjAxMCAwOTo1ODo1MCAtMDMwMApTdWJqZWN0OiBbUEFUQ0hdIEdT
ZXR0aW5ncyBzdXBwb3J0CgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTEgKysrKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgOCArKy0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogSmF2YVNjcmlwdENvcmUvd3RmL2dv
YmplY3QvR1JlZlB0ci5jcHAgICAgICAgICAgIHwgICAxMiArKysrCiBKYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdC9HUmVmUHRyLmggICAgICAgICAgICAgfCAgICAzICsKIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjQgKysrKysrKysKIFdlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCB8ICAgNjYgKysrKysr
KysrKysrKysrKysrKysrLQogV2ViS2l0L2d0ay9vcmcud2Via2l0Lmd0ay5nc2NoZW1hLnhtbCAg
ICAgICAgICAgIHwgICAzMiArKysrKysrKysrKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHAgICAgICAgICAgICAgIHwgICAxMCArKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuaCAgICAgICAgICAgICAgICB8ICAgIDIgKwogYXV0b3Rvb2xzL3dlYmtpdC5tNCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBjb25maWd1cmUuYWMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIDEyIGZpbGVzIGNoYW5nZWQs
IDE4MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdl
YktpdC9ndGsvb3JnLndlYmtpdC5ndGsuZ3NjaGVtYS54bWwKCmRpZmYgLS1naXQgYS9DaGFuZ2VM
b2cgYi9DaGFuZ2VMb2cKaW5kZXggMmM1NDhhMS4uNTk4YzZjOCAxMDA2NDQKLS0tIGEvQ2hhbmdl
TG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA4LTA0ICBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFVzZSBHU2V0
dGluZ3MgdG8gc2F2ZS9yZXN0b3JlIFdlYiBJbnNwZWN0b3Igc2V0dGluZ3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNTEyCisKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbTogR1NldHRpbmdzIHJ1bGVzLgorICAgICAgICAqIGF1dG90b29scy93ZWJr
aXQubTQ6IFJlcXVpcmUgbmV3IGVub3VnaCBHSU8uCisgICAgICAgICogY29uZmlndXJlLmFjOiBH
U2V0dGluZ3MgaW5mcmFzdHJ1Y3R1cmUuCisKIDIwMTAtMDgtMDMgIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBUZXN0IGNvbW1pdCBmb3IgY29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmcuCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1h
a2VmaWxlLmFtCmluZGV4IDdjYWFhOTMuLjFiMDE2NGMgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxl
LmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC05MjQsNiArOTI0LDExIEBAIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGVudW10eXBlcy5jcHA6ICQod2Via2l0Z3RrX2hfYXBpKSBHTlVtYWtlZmls
ZQogCSYmIGNwIHhnZW4tZ3RjICRAIFwKIAkmJiBybSAtZiB4Z2VuLWd0YwogCisjIEdTZXR0aW5n
cworZ3NldHRpbmdzX1NDSEVNQVMgPSAkKHNyY2RpcikvV2ViS2l0L2d0ay9vcmcud2Via2l0Lmd0
ay5nc2NoZW1hLnhtbAorCitAR1NFVFRJTkdTX1JVTEVTQAorCiAjIEZpbGVzIHRoYXQgd2lsbCBi
ZSBkaXN0cmlidXRlZAogRVhUUkFfRElTVCArPSBcCiAJJChzcmNkaXIpL2d0ay1kb2MubWFrZSBc
CkBAIC05NDAsNyArOTQ1LDggQEAgRVhUUkFfRElTVCArPSBcCiAJJChzcmNkaXIpL1dlYktpdC9n
dGsvcG8vKiBcCiAJJChzcmNkaXIpL1dlYktpdC9ndGsvcmVzb3VyY2VzLyogXAogCSQoc3JjZGly
KS9XZWJLaXQvZ3RrL3Rlc3RzL3Jlc291cmNlcy8qIFwKLQkkKHNyY2RpcikvV2ViS2l0L2d0ay90
ZXN0cy90ZXN0X3V0aWxzLmgKKwkkKHNyY2RpcikvV2ViS2l0L2d0ay90ZXN0cy90ZXN0X3V0aWxz
LmggXAorCSQoZ3NldHRpbmdzX1NDSEVNQVMpCiAKICMgZXh0cmEgcmVzb3VyY2UgZmlsZXMKIHJl
c291cmNlc2RpciA9ICR7ZGF0YWRpcn0vd2Via2l0LUBXRUJLSVRHVEtfQVBJX1ZFUlNJT05AL3Jl
c291cmNlcwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZmU2OTkuLjA4N2E4MjUgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMC0wOC0wNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5u
b3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbR1RLXSBVc2UgR1NldHRpbmdzIHRvIHNhdmUvcmVzdG9yZSBXZWIg
SW5zcGVjdG9yIHNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MzUxMgorCisgICAgICAgICogd3RmL2dvYmplY3QvR1JlZlB0ci5jcHA6IEFk
ZGVkIHN1cHBvcnQgZm9yIEdWYXJpYW50LCB1c2VkIGJ5IG91cgorICAgICAgICBHU2V0dGluZ3Mg
c3VwcG9ydC4KKyAgICAgICAgKFdURjo6cmVmR1B0cik6CisgICAgICAgIChXVEY6OmRlcmVmR1B0
cik6CisgICAgICAgICogd3RmL2dvYmplY3QvR1JlZlB0ci5oOgorCiAyMDEwLTA4LTAzICBBZGFt
IFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBUdXJuIG9uIFBMQVRGT1JNX1NU
UkFURUdJRVMgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmpl
Y3QvR1JlZlB0ci5jcHAgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRyLmNwcApp
bmRleCBlN2NmMzRiLi5kNmQxMTVmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvZ29i
amVjdC9HUmVmUHRyLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRy
LmNwcApAQCAtMzUsNCArMzUsMTYgQEAgdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR0hhc2hU
YWJsZSogcHRyKQogICAgIGdfaGFzaF90YWJsZV91bnJlZihwdHIpOwogfQogCit0ZW1wbGF0ZSA8
PiBHVmFyaWFudCogcmVmR1B0cihHVmFyaWFudCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAg
ICAgIGdfdmFyaWFudF9yZWYocHRyKTsKKyAgICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8
PiB2b2lkIGRlcmVmR1B0cihHVmFyaWFudCogcHRyKQoreworICAgIGdfdmFyaWFudF91bnJlZihw
dHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3d0Zi9nb2JqZWN0L0dSZWZQdHIuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQ
dHIuaAppbmRleCBjNGQ0MTA3Li41YmVhNzAzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdC9HUmVmUHRyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1Jl
ZlB0ci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCiB0eXBlZGVm
IHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRhYmxlOwordHlwZWRlZiBzdHJ1Y3QgX0dWYXJpYW50
IEdWYXJpYW50OwogdHlwZWRlZiB2b2lkKiBncG9pbnRlcjsKIGV4dGVybiAiQyIgdm9pZCBnX29i
amVjdF91bnJlZihncG9pbnRlciBvYmplY3QpOwogZXh0ZXJuICJDIiBncG9pbnRlciAgZ19vYmpl
Y3RfcmVmX3NpbmsoZ3BvaW50ZXIgb2JqZWN0KTsKQEAgLTQwLDYgKzQxLDggQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IGNsYXNzIEdSZWZQdHI7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gR1JlZlB0
cjxUPiBhZG9wdEdSZWYoVCopOwogdGVtcGxhdGUgPD4gR0hhc2hUYWJsZSogcmVmR1B0cihHSGFz
aFRhYmxlKiBwdHIpOwogdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR0hhc2hUYWJsZSogcHRy
KTsKK3RlbXBsYXRlIDw+IEdWYXJpYW50KiByZWZHUHRyKEdWYXJpYW50KiBwdHIpOwordGVtcGxh
dGUgPD4gdm9pZCBkZXJlZkdQdHIoR1ZhcmlhbnQqIHB0cik7CiAKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBjbGFzcyBHUmVmUHRyIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZTFiNTBlNi4uNmVkN2NhYyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAxMC0wOC0wNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3Vz
dGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBVc2UgR1NldHRpbmdzIHRvIHNhdmUvcmVzdG9y
ZSBXZWIgSW5zcGVjdG9yIHNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzUxMgorCisgICAgICAgIFVzZSBHU2V0dGluZ3MgdG8gc2F2ZS9y
ZXN0b3JlIHNldHRpbmdzIHVzZWQgYnkgdGhlIFdlYiBJbnNwZWN0b3IuCisgICAgICAgIEEgZmV3
IGhlbHBlciBmdW5jdGlvbnMgd2VyZSBhZGRlZCB0byBoYXZlIHNldHRpbmdzIHRoYXQgdXNlCisg
ICAgICAgIGJvb2xlYW4gdmFsdWVzIGJlIGFjdHVhbCBib29sZWFucywgYW5kIGFsc28gdG8gY29u
Zm9ybSB3aXRoIHRoZQorICAgICAgICBHU2V0dGluZ3MgbmFtaW5nIHJlcXVpcmVtZW50cyBmb3Ig
a2V5cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OnRvR1NldHRpbmdOYW1lKToKKyAgICAgICAgKFdlYktpdDo6dHJ1
dGhTdHJpbmdGcm9tVmFyaWFudCk6CisgICAgICAgIChXZWJLaXQ6OnZhcmlhbnRGcm9tVHJ1dGhT
dHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OnBvcHVsYXRlU2V0dGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6c3RvcmVTZXR0aW5nKToKKyAg
ICAgICAgKiBvcmcud2Via2l0Lmd0ay5nc2NoZW1hLnhtbDogQWRkZWQuCisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHByaXZhdGUuY3BwOgorICAgICAgICAod2Via2l0X2dldF9pbnNwZWN0b3JfZ19z
ZXR0aW5ncyk6CisgICAgICAgICh3ZWJraXRfaW5pdCk6CisgICAgICAgICogd2Via2l0L3dlYmtp
dHByaXZhdGUuaDoKKwogMjAxMC0wOC0wMyAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+
CiAKICAgICAgICAgRml4IG1pc3NwZWxsZWQgd29yZCAndGVoJyBpbiB0aGUgZGVzY3JpcHRpb24g
b2YgdGhlIFhTUyBBdWRpdG9yIHNldHRpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKaW5kZXggNzAzOWRkNi4uNTc0Yzc3ZSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCisr
KyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggR3VzdGF2byBOb3JvbmhhIFNp
bHZhCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29sbGFib3JhIEx0ZC4KICAqCiAgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKQEAgLTExNSwxNCArMTE2LDc1IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGln
aGxpZ2h0KCkKICAgICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXcoR1RLX1dJREdFVChtX2luc3BlY3Rl
ZFdlYlZpZXcpKTsKIH0KIAorc3RhdGljIFN0cmluZyB0b0dTZXR0aW5nTmFtZShTdHJpbmcgaW5z
cGVjdG9yU2V0dGluZ05hbWUpCit7CisgICAgaWYgKGluc3BlY3RvclNldHRpbmdOYW1lID09ICJy
ZXNvdXJjZVRyYWNraW5nRW5hYmxlZCIpCisgICAgICAgIHJldHVybiBTdHJpbmcoInJlc291cmNl
LXRyYWNraW5nLWVuYWJsZWQiKTsKKyAgICBlbHNlIGlmIChpbnNwZWN0b3JTZXR0aW5nTmFtZSA9
PSAieGhyTW9uaXRvciIpCisgICAgICAgIHJldHVybiBTdHJpbmcoInhoci1tb25pdG9yLWVuYWJs
ZWQiKTsKKyAgICBlbHNlIGlmIChpbnNwZWN0b3JTZXR0aW5nTmFtZSA9PSAiZnJvbnRlbmRTZXR0
aW5ncyIpCisgICAgICAgIHJldHVybiBTdHJpbmcoImZyb250ZW5kLXNldHRpbmdzIik7CisgICAg
ZWxzZSBpZiAoaW5zcGVjdG9yU2V0dGluZ05hbWUgPT0gImRlYnVnZ2VyRW5hYmxlZCIpCisgICAg
ICAgIHJldHVybiBTdHJpbmcoImRlYnVnZ2VyLWVuYWJsZWQiKTsKKyAgICBlbHNlIGlmIChpbnNw
ZWN0b3JTZXR0aW5nTmFtZSA9PSAicHJvZmlsZXJFbmFibGVkIikKKyAgICAgICAgcmV0dXJuIFN0
cmluZygicHJvZmlsZXItZW5hYmxlZCIpOworCisgICAgcmV0dXJuIGluc3BlY3RvclNldHRpbmdO
YW1lOworfQorCitzdGF0aWMgU3RyaW5nIHRydXRoU3RyaW5nRnJvbVZhcmlhbnQoR1ZhcmlhbnQq
IHZhcmlhbnQpCit7CisgICAgaWYgKGdfdmFyaWFudF9nZXRfYm9vbGVhbih2YXJpYW50KSkKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygidHJ1ZSIpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIFN0
cmluZygiZmFsc2UiKTsKK30KKworc3RhdGljIEdWYXJpYW50KiB2YXJpYW50RnJvbVRydXRoU3Ry
aW5nKGNvbnN0IFN0cmluZyYgdHJ1dGgpCit7CisgICAgaWYgKHRydXRoID09ICJmYWxzZSIpCisg
ICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X2Jvb2xlYW4oRkFMU0UpOworICAgIGVsc2UKKyAg
ICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfYm9vbGVhbihUUlVFKTsKK30KKwogdm9pZCBJbnNw
ZWN0b3JDbGllbnQ6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2
YWx1ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIElnbm9yZSB0aGlzIHNldHRp
bmcgZm9yIG5vdywgaXQgZG9lc24ndCBzZWVtIHRvIGJlIHVzZWQgZm9yCisgICAgLy8gYW55dGhp
bmcgcmlnaHQgbm93LgorICAgIGlmIChrZXkgPT0gImxhc3RBY3RpdmVQYW5lbCIpCisgICAgICAg
IHJldHVybjsKKworICAgIEdTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfZ2V0X2luc3BlY3Rv
cl9nX3NldHRpbmdzKCk7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCA9IGdfc2V0dGlu
Z3NfZ2V0X3ZhbHVlKHNldHRpbmdzLCB0b0dTZXR0aW5nTmFtZShrZXkpLnV0ZjgoKS5kYXRhKCkp
OworCisgICAgaWYgKGtleSA9PSAicmVzb3VyY2VUcmFja2luZ0VuYWJsZWQiIHx8IGtleSA9PSAi
eGhyTW9uaXRvciIKKyAgICAgICAgfHwga2V5ID09ICJkZWJ1Z2dlckVuYWJsZWQiIHx8IGtleSA9
PSAicHJvZmlsZXJFbmFibGVkIikKKyAgICAgICAgKnZhbHVlID0gdHJ1dGhTdHJpbmdGcm9tVmFy
aWFudCh2YXJpYW50LmdldCgpKTsKKyAgICBlbHNlIGlmIChrZXkgPT0gImZyb250ZW5kU2V0dGlu
Z3MiKQorICAgICAgICAqdmFsdWUgPSBTdHJpbmcoZ192YXJpYW50X2dldF9zdHJpbmcodmFyaWFu
dC5nZXQoKSwgMCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudDo6c3RvcmVTZXR0aW5nKGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgLy8gSWdub3JlIHRoaXMgc2V0dGluZyBmb3Igbm93LCBpdCBkb2Vzbid0IHNl
ZW0gdG8gYmUgdXNlZCBmb3IKKyAgICAvLyBhbnl0aGluZyByaWdodCBub3cuCisgICAgaWYgKGtl
eSA9PSAibGFzdEFjdGl2ZVBhbmVsIikKKyAgICAgICAgcmV0dXJuOworCisgICAgR1NldHRpbmdz
KiBzZXR0aW5ncyA9IHdlYmtpdF9nZXRfaW5zcGVjdG9yX2dfc2V0dGluZ3MoKTsKKyAgICBHUmVm
UHRyPEdWYXJpYW50PiB2YXJpYW50KDApOworCisgICAgaWYgKGtleSA9PSAicmVzb3VyY2VUcmFj
a2luZ0VuYWJsZWQiIHx8IGtleSA9PSAieGhyTW9uaXRvciIKKyAgICAgICAgfHwga2V5ID09ICJk
ZWJ1Z2dlckVuYWJsZWQiIHx8IGtleSA9PSAicHJvZmlsZXJFbmFibGVkIikKKyAgICAgICAgdmFy
aWFudCA9IHZhcmlhbnRGcm9tVHJ1dGhTdHJpbmcodmFsdWUpOworICAgIGVsc2UgaWYgKGtleSA9
PSAiZnJvbnRlbmRTZXR0aW5ncyIgfHwga2V5ID09ICJsYXN0QWN0aXZlUGFuZWwiKQorICAgICAg
ICB2YXJpYW50ID0gZ192YXJpYW50X25ld19zdHJpbmcodmFsdWUudXRmOCgpLmRhdGEoKSk7CisK
KyAgICBpZiAoIXZhcmlhbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc2V0dGluZ3Nfc2V0
X3ZhbHVlKHNldHRpbmdzLCB0b0dTZXR0aW5nTmFtZShrZXkpLnV0ZjgoKS5kYXRhKCksIHZhcmlh
bnQuZ2V0KCkpOwogfQogCiBib29sIEluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvb3JnLndl
YmtpdC5ndGsuZ3NjaGVtYS54bWwgYi9XZWJLaXQvZ3RrL29yZy53ZWJraXQuZ3RrLmdzY2hlbWEu
eG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ZDE0OWYKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvZ3RrL29yZy53ZWJraXQuZ3RrLmdzY2hlbWEueG1sCkBAIC0wLDAg
KzEsMzIgQEAKKzxzY2hlbWFsaXN0PgorICA8c2NoZW1hIGlkPSJvcmcud2Via2l0Lmd0ayIgcGF0
aD0iL3N5c3RlbS93ZWJraXRndGsvIj4KKyAgICA8Y2hpbGQgc2NoZW1hPSJvcmcud2Via2l0Lmd0
ay5pbnNwZWN0b3IiIG5hbWU9Imluc3BlY3RvciIvPgorICA8L3NjaGVtYT4KKyAgPHNjaGVtYSBp
ZD0ib3JnLndlYmtpdC5ndGsuaW5zcGVjdG9yIiBwYXRoPSIvc3lzdGVtL3dlYmtpdGd0ay9pbnNw
ZWN0b3IvIj4KKyAgICA8a2V5IG5hbWU9InJlc291cmNlLXRyYWNraW5nLWVuYWJsZWQiIHR5cGU9
ImIiPgorICAgICAgPGRlZmF1bHQ+ZmFsc2U8L2RlZmF1bHQ+CisgICAgICA8c3VtbWFyeT5SZXNv
dXJjZSBUcmFja2luZyBFbmFibGVkPC9zdW1tYXJ5PgorICAgICAgPGRlc2NyaXB0aW9uPldoZXRo
ZXIgdGhlIFJlc291cmNlIFRyYWNraW5nIHBhbmVsIGlzIGFsd2F5cyBlbmFibGVkLjwvZGVzY3Jp
cHRpb24+CisgICAgPC9rZXk+CisgICAgPGtleSBuYW1lPSJ4aHItbW9uaXRvci1lbmFibGVkIiB0
eXBlPSJiIj4KKyAgICAgIDxkZWZhdWx0PmZhbHNlPC9kZWZhdWx0PgorICAgICAgPHN1bW1hcnk+
WEhSIE1vbml0b3IgRW5hYmxlZDwvc3VtbWFyeT4KKyAgICAgIDxkZXNjcmlwdGlvbj5XaGV0aGVy
IHRoZSBYSFIgbW9uaXRvciBpcyBhbHdheXMgZW5hYmxlZC48L2Rlc2NyaXB0aW9uPgorICAgIDwv
a2V5PgorICAgIDxrZXkgbmFtZT0iZGVidWdnZXItZW5hYmxlZCIgdHlwZT0iYiI+CisgICAgICA8
ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4KKyAgICAgIDxzdW1tYXJ5PkRlYnVnZ2VyIEVuYWJsZWQ8
L3N1bW1hcnk+CisgICAgICA8ZGVzY3JpcHRpb24+V2hldGhlciB0aGUgZGVidWdnZXIgaXMgYWx3
YXlzIGVuYWJsZWQuPC9kZXNjcmlwdGlvbj4KKyAgICA8L2tleT4KKyAgICA8a2V5IG5hbWU9InBy
b2ZpbGVyLWVuYWJsZWQiIHR5cGU9ImIiPgorICAgICAgPGRlZmF1bHQ+ZmFsc2U8L2RlZmF1bHQ+
CisgICAgICA8c3VtbWFyeT5Qcm9maWxlciBFbmFibGVkPC9zdW1tYXJ5PgorICAgICAgPGRlc2Ny
aXB0aW9uPldoZXRoZXIgdGhlIHByb2ZpbGVyIGlzIGFsd2F5cyBlbmFibGVkLjwvZGVzY3JpcHRp
b24+CisgICAgPC9rZXk+CisgICAgPGtleSBuYW1lPSJmcm9udGVuZC1zZXR0aW5ncyIgdHlwZT0i
cyI+CisgICAgICA8ZGVmYXVsdD4nJzwvZGVmYXVsdD4KKyAgICAgIDxzdW1tYXJ5Pk1pc2MgSW5z
cGVjdG9yIEZyb250ZW5kIFNldHRpbmdzPC9zdW1tYXJ5PgorICAgICAgPGRlc2NyaXB0aW9uPk1p
c2NlbGFuZW91cyBTZXR0aW5ncyBtYW5hZ2VkIGJ5IHRoZSBJbnNwZWN0b3IgRnJvbnRlbmQ8L2Rl
c2NyaXB0aW9uPgorICAgIDwva2V5PgorICA8L3NjaGVtYT4KKzwvc2NoZW1hbGlzdD4KZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKaW5kZXggNDFkZTc2ZS4uYWJkOTczNCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAKQEAgLTIxNCw2ICsyMTQsMTIgQEAgc3RhdGljIHZvaWQg
Y2xvc2VJY29uRGF0YWJhc2VPbkV4aXQoKQogICAgIGljb25EYXRhYmFzZSgpLT5jbG9zZSgpOwog
fQogCitHU2V0dGluZ3MqIHdlYmtpdF9nZXRfaW5zcGVjdG9yX2dfc2V0dGluZ3MoKQoreworICAg
IHN0YXRpYyBHU2V0dGluZ3MqIHNldHRpbmdzID0gZ19zZXR0aW5nc19uZXcoIm9yZy53ZWJraXQu
Z3RrLmluc3BlY3RvciIpOworICAgIHJldHVybiBzZXR0aW5nczsKK30KKwogdm9pZCB3ZWJraXRf
aW5pdCgpCiB7CiAgICAgc3RhdGljIGJvb2wgaXNJbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtMjM4
LDYgKzI0NCwxMCBAQCB2b2lkIHdlYmtpdF9pbml0KCkKICAgICAvLyBGSVhNRTogRXhwb3NlIHRo
aXMgd2l0aCBhbiBBUEkgYW5kL29yIGNhbGN1bGF0ZSBiYXNlZCBvbiBhdmFpbGFibGUgcmVzb3Vy
Y2VzCiAgICAgd2Via2l0X3NldF9jYWNoZV9tb2RlbChXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JS
T1dTRVIpOwogCisgICAgLy8gSW5pdGlhbGl6ZSBzZXR0aW5ncyB2YXJpYWJsZXMgaGVyZSB0byBt
YWtlIHN1cmUgdGhpcyBoYXBwZW5zIGluCisgICAgLy8gdGhlIG1haW4gdGhyZWFkLgorICAgIHdl
YmtpdF9nZXRfaW5zcGVjdG9yX2dfc2V0dGluZ3MoKTsKKwogI2lmIEVOQUJMRShEQVRBQkFTRSkK
ICAgICBnY2hhciogZGF0YWJhc2VEaXJlY3RvcnkgPSBnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3Vz
ZXJfZGF0YV9kaXIoKSwgIndlYmtpdCIsICJkYXRhYmFzZXMiLCBOVUxMKTsKICAgICB3ZWJraXRf
c2V0X3dlYl9kYXRhYmFzZV9kaXJlY3RvcnlfcGF0aChkYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRwcml2YXRlLmgKaW5kZXggYWExOWJlYy4uZGY0NDFmNyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHByaXZhdGUuaApAQCAtMTIwLDYgKzEyMCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
ZXh0ZXJuICJDIiB7CiAgICAgdm9pZCB3ZWJraXRfaW5pdCgpOwogCisgICAgR1NldHRpbmdzKiB3
ZWJraXRfZ2V0X2luc3BlY3Rvcl9nX3NldHRpbmdzKCk7CisKICNkZWZpbmUgV0VCS0lUX1BBUkFN
X1JFQURBQkxFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBREFCTEV8R19QQVJBTV9TVEFUSUNf
TkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNLfEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKICNkZWZpbmUg
V0VCS0lUX1BBUkFNX1JFQURXUklURSAoKEdQYXJhbUZsYWdzKShHX1BBUkFNX1JFQURXUklURXxH
X1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFUSUNfQkxV
UkIpKQogCmRpZmYgLS1naXQgYS9hdXRvdG9vbHMvd2Via2l0Lm00IGIvYXV0b3Rvb2xzL3dlYmtp
dC5tNAppbmRleCAzNzlmYThmLi41N2QzY2Q0IDEwMDY0NAotLS0gYS9hdXRvdG9vbHMvd2Via2l0
Lm00CisrKyBiL2F1dG90b29scy93ZWJraXQubTQKQEAgLTEwOSwxMSArMTA5LDEzIEBAIEFDX0RF
RlVOX09OQ0UoW19XRUJLSVRfQ0hFQ0tfR0xJQl0sCiBkbmwgY2hlY2sgZm9yIGdsaWIKICMgVmVy
c2lvbiByZXF1aXJlbWVudHMKIEdMSUJfUkVRVUlSRURfVkVSU0lPTj0yLjIxLjMKK0dJT19SRVFV
SVJFRF9WRVJTSU9OPTIuMjUuMAogR09CSkVDVF9SRVFVSVJFRF9WRVJTSU9OPTIuMAogR1RIUkVB
RF9SRVFVSVJFRF9WRVJTSU9OPTIuMAogCiBQS0dfQ0hFQ0tfTU9EVUxFUyhbR0xJQl0sCiAgICAg
ICAgICAgICAgICAgICBbZ2xpYi0yLjAgPj0gJEdMSUJfUkVRVUlSRURfVkVSU0lPTgorICAgICAg
ICAgICAgICAgICAgZ2lvLTIuMCA+PSAkR0lPX1JFUVVJUkVEX1ZFUlNJT04KICAgICAgICAgICAg
ICAgICAgIGdvYmplY3QtMi4wID49ICRHT0JKRUNUX1JFUVVJUkVEX1ZFUlNJT04KICAgICAgICAg
ICAgICAgICAgIGd0aHJlYWQtMi4wID49ICRHVEhSRUFEX1JFUVVJUkVEX1ZFUlNJT05dKQogQUNf
U1VCU1QoW0dMSUJfQ0ZMQUdTXSkKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3Vy
ZS5hYwppbmRleCAyMDRkOGZiLi44ZTkzZTM3IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysr
IGIvY29uZmlndXJlLmFjCkBAIC04MzMsNiArODMzLDkgQEAgaWYgdGVzdCAiJGVuYWJsZV9nZW9s
b2NhdGlvbiIgPSAieWVzIjsgdGhlbgogICAgIEFDX1NVQlNUKFtHRU9DTFVFX0xJQlNdKQogZmkK
IAorIyBHU2V0dGluZ3MKK0dMSUJfR1NFVFRJTkdTCisKICMgY2hlY2sgaWYgZ3N0cmVhbWVyIGlz
IGF2YWlsYWJsZQogaWYgdGVzdCAiJGVuYWJsZV92aWRlbyIgPSAieWVzIjsgdGhlbgogICAgUEtH
X0NIRUNLX01PRFVMRVMoW0dTVFJFQU1FUl0sCi0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63501</attachid>
            <date>2010-08-04 15:27:12 -0700</date>
            <delta_ts>2010-08-05 09:12:41 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-GSettings-support.patch</filename>
            <type>text/plain</type>
            <size>13054</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSBiMDFmZWQwMDQzMzU2ODQ3ZTRjMWRkZWUzYTU5YTJiNjYzYzk5YWJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFdlZCwgNCBBdWcgMjAxMCAwOTo1ODo1MCAtMDMwMApTdWJqZWN0OiBbUEFUQ0hdIEdT
ZXR0aW5ncyBzdXBwb3J0CgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTEgKysrKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgOCArKy0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKwogSmF2YVNjcmlwdENvcmUvd3RmL2dv
YmplY3QvR1JlZlB0ci5jcHAgICAgICAgICAgIHwgICAxMiArKysrCiBKYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdC9HUmVmUHRyLmggICAgICAgICAgICAgfCAgICAzICsKIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjQgKysrKysrKysKIFdlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCB8ICAgNzAgKysrKysr
KysrKysrKysrKysrKysrLQogV2ViS2l0L2d0ay9vcmcud2Via2l0Lmd0ay5nc2NoZW1hLnhtbCAg
ICAgICAgICAgIHwgICAzMiArKysrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2
YXRlLmNwcCAgICAgICAgICAgICAgfCAgIDEwICsrKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
cHJpdmF0ZS5oICAgICAgICAgICAgICAgIHwgICAgMiArCiBhdXRvdG9vbHMvd2Via2l0Lm00ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIGNvbmZpZ3VyZS5hYyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogMTIgZmlsZXMgY2hhbmdlZCwg
MTg3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0L2d0ay9vcmcud2Via2l0Lmd0ay5nc2NoZW1hLnhtbAoKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCAyYzU0OGExLi41OThjNmM4IDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDgtMDQgIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gVXNlIEdTZXR0
aW5ncyB0byBzYXZlL3Jlc3RvcmUgV2ViIEluc3BlY3RvciBzZXR0aW5ncworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM1MTIKKworICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOiBHU2V0dGluZ3MgcnVsZXMuCisgICAgICAgICogYXV0b3Rvb2xzL3dlYmtp
dC5tNDogUmVxdWlyZSBuZXcgZW5vdWdoIEdJTy4KKyAgICAgICAgKiBjb25maWd1cmUuYWM6IEdT
ZXR0aW5ncyBpbmZyYXN0cnVjdHVyZS4KKwogMjAxMC0wOC0wMyAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFRlc3QgY29tbWl0IGZvciBjb21t
aXQtcXVldWVAd2Via2l0Lm9yZy4KZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFr
ZWZpbGUuYW0KaW5kZXggN2NhYWE5My4uMWIwMTY0YyAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUu
YW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTkyNCw2ICs5MjQsMTEgQEAgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZW51bXR5cGVzLmNwcDogJCh3ZWJraXRndGtfaF9hcGkpIEdOVW1ha2VmaWxl
CiAJJiYgY3AgeGdlbi1ndGMgJEAgXAogCSYmIHJtIC1mIHhnZW4tZ3RjCiAKKyMgR1NldHRpbmdz
Citnc2V0dGluZ3NfU0NIRU1BUyA9ICQoc3JjZGlyKS9XZWJLaXQvZ3RrL29yZy53ZWJraXQuZ3Rr
LmdzY2hlbWEueG1sCisKK0BHU0VUVElOR1NfUlVMRVNACisKICMgRmlsZXMgdGhhdCB3aWxsIGJl
IGRpc3RyaWJ1dGVkCiBFWFRSQV9ESVNUICs9IFwKIAkkKHNyY2RpcikvZ3RrLWRvYy5tYWtlIFwK
QEAgLTk0MCw3ICs5NDUsOCBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNyY2RpcikvV2ViS2l0L2d0
ay9wby8qIFwKIAkkKHNyY2RpcikvV2ViS2l0L2d0ay9yZXNvdXJjZXMvKiBcCiAJJChzcmNkaXIp
L1dlYktpdC9ndGsvdGVzdHMvcmVzb3VyY2VzLyogXAotCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3RfdXRpbHMuaAorCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RfdXRpbHMu
aCBcCisJJChnc2V0dGluZ3NfU0NIRU1BUykKIAogIyBleHRyYSByZXNvdXJjZSBmaWxlcwogcmVz
b3VyY2VzZGlyID0gJHtkYXRhZGlyfS93ZWJraXQtQFdFQktJVEdUS19BUElfVkVSU0lPTkAvcmVz
b3VyY2VzCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYmFmZTY5OS4uMDg3YTgyNSAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDEwLTA4LTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5v
cm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHVEtdIFVzZSBHU2V0dGluZ3MgdG8gc2F2ZS9yZXN0b3JlIFdlYiBJ
bnNwZWN0b3Igc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzNTEyCisKKyAgICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmNwcDogQWRk
ZWQgc3VwcG9ydCBmb3IgR1ZhcmlhbnQsIHVzZWQgYnkgb3VyCisgICAgICAgIEdTZXR0aW5ncyBz
dXBwb3J0LgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAgKFdURjo6ZGVyZWZHUHRy
KToKKyAgICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmg6CisKIDIwMTAtMDgtMDMgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gb24gUExBVEZPUk1fU1RS
QVRFR0lFUyBvbiBXaW5kb3dzCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVj
dC9HUmVmUHRyLmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQdHIuY3BwCmlu
ZGV4IGU3Y2YzNGIuLmQ2ZDExNWYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2Jq
ZWN0L0dSZWZQdHIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQdHIu
Y3BwCkBAIC0zNSw0ICszNSwxNiBAQCB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHSGFzaFRh
YmxlKiBwdHIpCiAgICAgZ19oYXNoX3RhYmxlX3VucmVmKHB0cik7CiB9CiAKK3RlbXBsYXRlIDw+
IEdWYXJpYW50KiByZWZHUHRyKEdWYXJpYW50KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAg
ICAgZ192YXJpYW50X3JlZihwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyKEdWYXJpYW50KiBwdHIpCit7CisgICAgZ192YXJpYW50X3VucmVmKHB0
cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
d3RmL2dvYmplY3QvR1JlZlB0ci5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0
ci5oCmluZGV4IGM0ZDQxMDcuLjViZWE3MDMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0
Zi9nb2JqZWN0L0dSZWZQdHIuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVm
UHRyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIHR5cGVkZWYg
c3RydWN0IF9HSGFzaFRhYmxlIEdIYXNoVGFibGU7Cit0eXBlZGVmIHN0cnVjdCBfR1ZhcmlhbnQg
R1ZhcmlhbnQ7CiB0eXBlZGVmIHZvaWQqIGdwb2ludGVyOwogZXh0ZXJuICJDIiB2b2lkIGdfb2Jq
ZWN0X3VucmVmKGdwb2ludGVyIG9iamVjdCk7CiBleHRlcm4gIkMiIGdwb2ludGVyICBnX29iamVj
dF9yZWZfc2luayhncG9pbnRlciBvYmplY3QpOwpAQCAtNDAsNiArNDEsOCBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gY2xhc3MgR1JlZlB0cjsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBHUmVmUHRy
PFQ+IGFkb3B0R1JlZihUKik7CiB0ZW1wbGF0ZSA8PiBHSGFzaFRhYmxlKiByZWZHUHRyKEdIYXNo
VGFibGUqIHB0cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHSGFzaFRhYmxlKiBwdHIp
OwordGVtcGxhdGUgPD4gR1ZhcmlhbnQqIHJlZkdQdHIoR1ZhcmlhbnQqIHB0cik7Cit0ZW1wbGF0
ZSA8PiB2b2lkIGRlcmVmR1B0cihHVmFyaWFudCogcHRyKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IGNsYXNzIEdSZWZQdHIgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBlMWI1MGU2Li42ZWQ3Y2FjIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI3IEBACisyMDEwLTA4LTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFVzZSBHU2V0dGluZ3MgdG8gc2F2ZS9yZXN0b3Jl
IFdlYiBJbnNwZWN0b3Igc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQzNTEyCisKKyAgICAgICAgVXNlIEdTZXR0aW5ncyB0byBzYXZlL3Jl
c3RvcmUgc2V0dGluZ3MgdXNlZCBieSB0aGUgV2ViIEluc3BlY3Rvci4KKyAgICAgICAgQSBmZXcg
aGVscGVyIGZ1bmN0aW9ucyB3ZXJlIGFkZGVkIHRvIGhhdmUgc2V0dGluZ3MgdGhhdCB1c2UKKyAg
ICAgICAgYm9vbGVhbiB2YWx1ZXMgYmUgYWN0dWFsIGJvb2xlYW5zLCBhbmQgYWxzbyB0byBjb25m
b3JtIHdpdGggdGhlCisgICAgICAgIEdTZXR0aW5ncyBuYW1pbmcgcmVxdWlyZW1lbnRzIGZvciBr
ZXlzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6dG9HU2V0dGluZ05hbWUpOgorICAgICAgICAoV2ViS2l0Ojp0cnV0
aFN0cmluZ0Zyb21WYXJpYW50KToKKyAgICAgICAgKFdlYktpdDo6dmFyaWFudEZyb21UcnV0aFN0
cmluZyk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6cG9wdWxhdGVTZXR0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzdG9yZVNldHRpbmcpOgorICAg
ICAgICAqIG9yZy53ZWJraXQuZ3RrLmdzY2hlbWEueG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5jcHA6CisgICAgICAgICh3ZWJraXRfZ2V0X2luc3BlY3Rvcl9nX3Nl
dHRpbmdzKToKKyAgICAgICAgKHdlYmtpdF9pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
cHJpdmF0ZS5oOgorCiAyMDEwLTA4LTAzICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4K
IAogICAgICAgICBGaXggbWlzc3BlbGxlZCB3b3JkICd0ZWgnIGluIHRoZSBkZXNjcmlwdGlvbiBv
ZiB0aGUgWFNTIEF1ZGl0b3Igc2V0dGluZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCA3MDM5ZGQ2Li42OGMwYTBhIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKKysr
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEKKyAqIENvcHlyaWdodCAoQykgMjAxMCBDb2xsYWJvcmEgTHRkLgogICoKICAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYwpAQCAtMTE1LDE0ICsxMTYsNzkgQEAgdm9pZCBJbnNwZWN0b3JDbGllbnQ6OmhpZGVIaWdo
bGlnaHQoKQogICAgIGd0a193aWRnZXRfcXVldWVfZHJhdyhHVEtfV0lER0VUKG1faW5zcGVjdGVk
V2ViVmlldykpOwogfQogCitzdGF0aWMgU3RyaW5nIHRvR1NldHRpbmdOYW1lKFN0cmluZyBpbnNw
ZWN0b3JTZXR0aW5nTmFtZSkKK3sKKyAgICBpZiAoaW5zcGVjdG9yU2V0dGluZ05hbWUgPT0gInJl
c291cmNlVHJhY2tpbmdFbmFibGVkIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2Ut
dHJhY2tpbmctZW5hYmxlZCIpOworCisgICAgaWYgKGluc3BlY3RvclNldHRpbmdOYW1lID09ICJ4
aHJNb25pdG9yIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygieGhyLW1vbml0b3ItZW5hYmxlZCIp
OworCisgICAgaWYgKGluc3BlY3RvclNldHRpbmdOYW1lID09ICJmcm9udGVuZFNldHRpbmdzIikK
KyAgICAgICAgcmV0dXJuIFN0cmluZygiZnJvbnRlbmQtc2V0dGluZ3MiKTsKKworICAgIGlmIChp
bnNwZWN0b3JTZXR0aW5nTmFtZSA9PSAiZGVidWdnZXJFbmFibGVkIikKKyAgICAgICAgcmV0dXJu
IFN0cmluZygiZGVidWdnZXItZW5hYmxlZCIpOworCisgICAgaWYgKGluc3BlY3RvclNldHRpbmdO
YW1lID09ICJwcm9maWxlckVuYWJsZWQiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCJwcm9maWxl
ci1lbmFibGVkIik7CisKKyAgICByZXR1cm4gaW5zcGVjdG9yU2V0dGluZ05hbWU7Cit9CisKK3N0
YXRpYyBTdHJpbmcgdHJ1dGhTdHJpbmdGcm9tVmFyaWFudChHVmFyaWFudCogdmFyaWFudCkKK3sK
KyAgICBpZiAoZ192YXJpYW50X2dldF9ib29sZWFuKHZhcmlhbnQpKQorICAgICAgICByZXR1cm4g
U3RyaW5nKCJ0cnVlIik7CisKKyAgICByZXR1cm4gU3RyaW5nKCJmYWxzZSIpOworfQorCitzdGF0
aWMgR1ZhcmlhbnQqIHZhcmlhbnRGcm9tVHJ1dGhTdHJpbmcoY29uc3QgU3RyaW5nJiB0cnV0aCkK
K3sKKyAgICBpZiAodHJ1dGggPT0gInRydWUiKQorICAgICAgICByZXR1cm4gZ192YXJpYW50X25l
d19ib29sZWFuKFRSVUUpOworCisgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfYm9vbGVhbihGQUxT
RSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ2xpZW50Ojpwb3B1bGF0ZVNldHRpbmcoY29uc3QgU3Ry
aW5nJiBrZXksIFN0cmluZyogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAv
LyBJZ25vcmUgdGhpcyBzZXR0aW5nIGZvciBub3csIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSB1c2Vk
IGZvcgorICAgIC8vIGFueXRoaW5nIHJpZ2h0IG5vdy4KKyAgICBpZiAoa2V5ID09ICJsYXN0QWN0
aXZlUGFuZWwiKQorICAgICAgICByZXR1cm47CisKKyAgICBHU2V0dGluZ3MqIHNldHRpbmdzID0g
d2Via2l0X2dldF9pbnNwZWN0b3JfZ19zZXR0aW5ncygpOworICAgIEdSZWZQdHI8R1ZhcmlhbnQ+
IHZhcmlhbnQgPSBnX3NldHRpbmdzX2dldF92YWx1ZShzZXR0aW5ncywgdG9HU2V0dGluZ05hbWUo
a2V5KS51dGY4KCkuZGF0YSgpKTsKKworICAgIGlmIChrZXkgPT0gInJlc291cmNlVHJhY2tpbmdF
bmFibGVkIiB8fCBrZXkgPT0gInhock1vbml0b3IiCisgICAgICAgIHx8IGtleSA9PSAiZGVidWdn
ZXJFbmFibGVkIiB8fCBrZXkgPT0gInByb2ZpbGVyRW5hYmxlZCIpCisgICAgICAgICp2YWx1ZSA9
IHRydXRoU3RyaW5nRnJvbVZhcmlhbnQodmFyaWFudC5nZXQoKSk7CisgICAgZWxzZSBpZiAoa2V5
ID09ICJmcm9udGVuZFNldHRpbmdzIikKKyAgICAgICAgKnZhbHVlID0gU3RyaW5nKGdfdmFyaWFu
dF9nZXRfc3RyaW5nKHZhcmlhbnQuZ2V0KCksIDApKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGll
bnQ6OnN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIElnbm9yZSB0aGlzIHNldHRpbmcgZm9y
IG5vdywgaXQgZG9lc24ndCBzZWVtIHRvIGJlIHVzZWQgZm9yCisgICAgLy8gYW55dGhpbmcgcmln
aHQgbm93LgorICAgIGlmIChrZXkgPT0gImxhc3RBY3RpdmVQYW5lbCIpCisgICAgICAgIHJldHVy
bjsKKworICAgIEdTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfZ2V0X2luc3BlY3Rvcl9nX3Nl
dHRpbmdzKCk7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCgwKTsKKworICAgIGlmIChr
ZXkgPT0gInJlc291cmNlVHJhY2tpbmdFbmFibGVkIiB8fCBrZXkgPT0gInhock1vbml0b3IiCisg
ICAgICAgIHx8IGtleSA9PSAiZGVidWdnZXJFbmFibGVkIiB8fCBrZXkgPT0gInByb2ZpbGVyRW5h
YmxlZCIpCisgICAgICAgIHZhcmlhbnQgPSB2YXJpYW50RnJvbVRydXRoU3RyaW5nKHZhbHVlKTsK
KyAgICBlbHNlIGlmIChrZXkgPT0gImZyb250ZW5kU2V0dGluZ3MiIHx8IGtleSA9PSAibGFzdEFj
dGl2ZVBhbmVsIikKKyAgICAgICAgdmFyaWFudCA9IGdfdmFyaWFudF9uZXdfc3RyaW5nKHZhbHVl
LnV0ZjgoKS5kYXRhKCkpOworCisgICAgaWYgKCF2YXJpYW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBnX3NldHRpbmdzX3NldF92YWx1ZShzZXR0aW5ncywgdG9HU2V0dGluZ05hbWUoa2V5KS51
dGY4KCkuZGF0YSgpLCB2YXJpYW50LmdldCgpKTsKIH0KIAogYm9vbCBJbnNwZWN0b3JDbGllbnQ6
OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL29yZy53ZWJraXQuZ3RrLmdzY2hlbWEueG1sIGIvV2ViS2l0L2d0ay9vcmcu
d2Via2l0Lmd0ay5nc2NoZW1hLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hNGQxNDlmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay9vcmcud2Via2l0Lmd0ay5n
c2NoZW1hLnhtbApAQCAtMCwwICsxLDMyIEBACis8c2NoZW1hbGlzdD4KKyAgPHNjaGVtYSBpZD0i
b3JnLndlYmtpdC5ndGsiIHBhdGg9Ii9zeXN0ZW0vd2Via2l0Z3RrLyI+CisgICAgPGNoaWxkIHNj
aGVtYT0ib3JnLndlYmtpdC5ndGsuaW5zcGVjdG9yIiBuYW1lPSJpbnNwZWN0b3IiLz4KKyAgPC9z
Y2hlbWE+CisgIDxzY2hlbWEgaWQ9Im9yZy53ZWJraXQuZ3RrLmluc3BlY3RvciIgcGF0aD0iL3N5
c3RlbS93ZWJraXRndGsvaW5zcGVjdG9yLyI+CisgICAgPGtleSBuYW1lPSJyZXNvdXJjZS10cmFj
a2luZy1lbmFibGVkIiB0eXBlPSJiIj4KKyAgICAgIDxkZWZhdWx0PmZhbHNlPC9kZWZhdWx0Pgor
ICAgICAgPHN1bW1hcnk+UmVzb3VyY2UgVHJhY2tpbmcgRW5hYmxlZDwvc3VtbWFyeT4KKyAgICAg
IDxkZXNjcmlwdGlvbj5XaGV0aGVyIHRoZSBSZXNvdXJjZSBUcmFja2luZyBwYW5lbCBpcyBhbHdh
eXMgZW5hYmxlZC48L2Rlc2NyaXB0aW9uPgorICAgIDwva2V5PgorICAgIDxrZXkgbmFtZT0ieGhy
LW1vbml0b3ItZW5hYmxlZCIgdHlwZT0iYiI+CisgICAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVs
dD4KKyAgICAgIDxzdW1tYXJ5PlhIUiBNb25pdG9yIEVuYWJsZWQ8L3N1bW1hcnk+CisgICAgICA8
ZGVzY3JpcHRpb24+V2hldGhlciB0aGUgWEhSIG1vbml0b3IgaXMgYWx3YXlzIGVuYWJsZWQuPC9k
ZXNjcmlwdGlvbj4KKyAgICA8L2tleT4KKyAgICA8a2V5IG5hbWU9ImRlYnVnZ2VyLWVuYWJsZWQi
IHR5cGU9ImIiPgorICAgICAgPGRlZmF1bHQ+ZmFsc2U8L2RlZmF1bHQ+CisgICAgICA8c3VtbWFy
eT5EZWJ1Z2dlciBFbmFibGVkPC9zdW1tYXJ5PgorICAgICAgPGRlc2NyaXB0aW9uPldoZXRoZXIg
dGhlIGRlYnVnZ2VyIGlzIGFsd2F5cyBlbmFibGVkLjwvZGVzY3JpcHRpb24+CisgICAgPC9rZXk+
CisgICAgPGtleSBuYW1lPSJwcm9maWxlci1lbmFibGVkIiB0eXBlPSJiIj4KKyAgICAgIDxkZWZh
dWx0PmZhbHNlPC9kZWZhdWx0PgorICAgICAgPHN1bW1hcnk+UHJvZmlsZXIgRW5hYmxlZDwvc3Vt
bWFyeT4KKyAgICAgIDxkZXNjcmlwdGlvbj5XaGV0aGVyIHRoZSBwcm9maWxlciBpcyBhbHdheXMg
ZW5hYmxlZC48L2Rlc2NyaXB0aW9uPgorICAgIDwva2V5PgorICAgIDxrZXkgbmFtZT0iZnJvbnRl
bmQtc2V0dGluZ3MiIHR5cGU9InMiPgorICAgICAgPGRlZmF1bHQ+Jyc8L2RlZmF1bHQ+CisgICAg
ICA8c3VtbWFyeT5NaXNjIEluc3BlY3RvciBGcm9udGVuZCBTZXR0aW5nczwvc3VtbWFyeT4KKyAg
ICAgIDxkZXNjcmlwdGlvbj5NaXNjZWxhbmVvdXMgU2V0dGluZ3MgbWFuYWdlZCBieSB0aGUgSW5z
cGVjdG9yIEZyb250ZW5kPC9kZXNjcmlwdGlvbj4KKyAgICA8L2tleT4KKyAgPC9zY2hlbWE+Cis8
L3NjaGVtYWxpc3Q+CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCmluZGV4IDQxZGU3NmUu
LmFiZDk3MzQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCkBAIC0yMTQsNiArMjE0
LDEyIEBAIHN0YXRpYyB2b2lkIGNsb3NlSWNvbkRhdGFiYXNlT25FeGl0KCkKICAgICBpY29uRGF0
YWJhc2UoKS0+Y2xvc2UoKTsKIH0KIAorR1NldHRpbmdzKiB3ZWJraXRfZ2V0X2luc3BlY3Rvcl9n
X3NldHRpbmdzKCkKK3sKKyAgICBzdGF0aWMgR1NldHRpbmdzKiBzZXR0aW5ncyA9IGdfc2V0dGlu
Z3NfbmV3KCJvcmcud2Via2l0Lmd0ay5pbnNwZWN0b3IiKTsKKyAgICByZXR1cm4gc2V0dGluZ3M7
Cit9CisKIHZvaWQgd2Via2l0X2luaXQoKQogewogICAgIHN0YXRpYyBib29sIGlzSW5pdGlhbGl6
ZWQgPSBmYWxzZTsKQEAgLTIzOCw2ICsyNDQsMTAgQEAgdm9pZCB3ZWJraXRfaW5pdCgpCiAgICAg
Ly8gRklYTUU6IEV4cG9zZSB0aGlzIHdpdGggYW4gQVBJIGFuZC9vciBjYWxjdWxhdGUgYmFzZWQg
b24gYXZhaWxhYmxlIHJlc291cmNlcwogICAgIHdlYmtpdF9zZXRfY2FjaGVfbW9kZWwoV0VCS0lU
X0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSKTsKIAorICAgIC8vIEluaXRpYWxpemUgc2V0dGluZ3Mg
dmFyaWFibGVzIGhlcmUgdG8gbWFrZSBzdXJlIHRoaXMgaGFwcGVucyBpbgorICAgIC8vIHRoZSBt
YWluIHRocmVhZC4KKyAgICB3ZWJraXRfZ2V0X2luc3BlY3Rvcl9nX3NldHRpbmdzKCk7CisKICNp
ZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgZ2NoYXIqIGRhdGFiYXNlRGlyZWN0b3J5ID0gZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXQiLCAiZGF0YWJhc2VzIiwg
TlVMTCk7CiAgICAgd2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgoZGF0YWJh
c2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0
ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IGFhMTliZWMuLmRm
NDQxZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTEyMCw2ICsxMjAsOCBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIGV4dGVybiAiQyIgewogICAgIHZvaWQgd2Via2l0X2luaXQoKTsK
IAorICAgIEdTZXR0aW5ncyogd2Via2l0X2dldF9pbnNwZWN0b3JfZ19zZXR0aW5ncygpOworCiAj
ZGVmaW5lIFdFQktJVF9QQVJBTV9SRUFEQUJMRSAoKEdQYXJhbUZsYWdzKShHX1BBUkFNX1JFQURB
QkxFfEdfUEFSQU1fU1RBVElDX05BTUV8R19QQVJBTV9TVEFUSUNfTklDS3xHX1BBUkFNX1NUQVRJ
Q19CTFVSQikpCiAjZGVmaW5lIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgKChHUGFyYW1GbGFncyko
R19QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9TVEFUSUNfTkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNL
fEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKIApkaWZmIC0tZ2l0IGEvYXV0b3Rvb2xzL3dlYmtpdC5t
NCBiL2F1dG90b29scy93ZWJraXQubTQKaW5kZXggMzc5ZmE4Zi4uNTdkM2NkNCAxMDA2NDQKLS0t
IGEvYXV0b3Rvb2xzL3dlYmtpdC5tNAorKysgYi9hdXRvdG9vbHMvd2Via2l0Lm00CkBAIC0xMDks
MTEgKzEwOSwxMyBAQCBBQ19ERUZVTl9PTkNFKFtfV0VCS0lUX0NIRUNLX0dMSUJdLAogZG5sIGNo
ZWNrIGZvciBnbGliCiAjIFZlcnNpb24gcmVxdWlyZW1lbnRzCiBHTElCX1JFUVVJUkVEX1ZFUlNJ
T049Mi4yMS4zCitHSU9fUkVRVUlSRURfVkVSU0lPTj0yLjI1LjAKIEdPQkpFQ1RfUkVRVUlSRURf
VkVSU0lPTj0yLjAKIEdUSFJFQURfUkVRVUlSRURfVkVSU0lPTj0yLjAKIAogUEtHX0NIRUNLX01P
RFVMRVMoW0dMSUJdLAogICAgICAgICAgICAgICAgICAgW2dsaWItMi4wID49ICRHTElCX1JFUVVJ
UkVEX1ZFUlNJT04KKyAgICAgICAgICAgICAgICAgIGdpby0yLjAgPj0gJEdJT19SRVFVSVJFRF9W
RVJTSU9OCiAgICAgICAgICAgICAgICAgICBnb2JqZWN0LTIuMCA+PSAkR09CSkVDVF9SRVFVSVJF
RF9WRVJTSU9OCiAgICAgICAgICAgICAgICAgICBndGhyZWFkLTIuMCA+PSAkR1RIUkVBRF9SRVFV
SVJFRF9WRVJTSU9OXSkKIEFDX1NVQlNUKFtHTElCX0NGTEFHU10pCmRpZmYgLS1naXQgYS9jb25m
aWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggMjA0ZDhmYi4uOGU5M2UzNyAxMDA2NDQKLS0t
IGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtODMzLDYgKzgzMyw5IEBAIGlm
IHRlc3QgIiRlbmFibGVfZ2VvbG9jYXRpb24iID0gInllcyI7IHRoZW4KICAgICBBQ19TVUJTVChb
R0VPQ0xVRV9MSUJTXSkKIGZpCiAKKyMgR1NldHRpbmdzCitHTElCX0dTRVRUSU5HUworCiAjIGNo
ZWNrIGlmIGdzdHJlYW1lciBpcyBhdmFpbGFibGUKIGlmIHRlc3QgIiRlbmFibGVfdmlkZW8iID0g
InllcyI7IHRoZW4KICAgIFBLR19DSEVDS19NT0RVTEVTKFtHU1RSRUFNRVJdLAotLSAKMS43LjEK
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63599</attachid>
            <date>2010-08-05 09:12:41 -0700</date>
            <delta_ts>2010-08-12 07:50:25 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-GSettings-support.patch</filename>
            <type>text/plain</type>
            <size>14243</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSA1NzAwMDVmY2ExYjJlZDU5ZTFiZjk5NDViYWRiMjJhYWI3Y2NlNDdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFdlZCwgNCBBdWcgMjAxMCAwOTo1ODo1MCAtMDMwMApTdWJqZWN0OiBbUEFUQ0hdIEdT
ZXR0aW5ncyBzdXBwb3J0CgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTEgKysrKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxMSArKystCiBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysKIEphdmFTY3JpcHRDb3JlL3d0Zi9n
b2JqZWN0L0dSZWZQdHIuY3BwICAgICAgICAgICB8ICAgMTIgKysrKwogSmF2YVNjcmlwdENvcmUv
d3RmL2dvYmplY3QvR1JlZlB0ci5oICAgICAgICAgICAgIHwgICAgMyArCiBXZWJLaXQvZ3RrL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrKysrCiBXZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAgfCAgIDcwICsrKysr
KysrKysrKysrKysrKysrKy0KIFdlYktpdC9ndGsvb3JnLndlYmtpdGd0ay5nc2NoZW1hLnhtbC5p
biAgICAgICAgICB8ICAgMzIgKysrKysrKysrKwogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHAgICAgICAgICAgICAgIHwgICAxOCArKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHByaXZhdGUuaCAgICAgICAgICAgICAgICB8ICAgIDIgKwogYXV0b3Rvb2xzL3dlYmtpdC5t
NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBjb25maWd1cmUuYWMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsrLQogMTIgZmlsZXMgY2hh
bmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViS2l0L2d0ay9vcmcud2Via2l0Z3RrLmdzY2hlbWEueG1sLmluCgpkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGUxN2ExZjUuLmFjNmY0ZTYgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOC0wNSAg
R3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBV
c2UgR1NldHRpbmdzIHRvIHNhdmUvcmVzdG9yZSBXZWIgSW5zcGVjdG9yIHNldHRpbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzUxMgorCisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06IEdTZXR0aW5ncyBydWxlcy4KKyAgICAgICAgKiBhdXRvdG9v
bHMvd2Via2l0Lm00OiBSZXF1aXJlIG5ldyBlbm91Z2ggR0lPLgorICAgICAgICAqIGNvbmZpZ3Vy
ZS5hYzogR1NldHRpbmdzIGluZnJhc3RydWN0dXJlLgorCiAyMDEwLTA4LTA0ICBTaWRkaGFydGgg
TWF0aHVyICA8c2lkZGhhcnRoLm1hdGh1ckBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTGFzemxvIEdvbWJvcy4KZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZp
bGUuYW0KaW5kZXggN2NhYWE5My4uNmFiOGRlNCAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0K
KysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTkyNCw2ICs5MjQsMTEgQEAgV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZW51bXR5cGVzLmNwcDogJCh3ZWJraXRndGtfaF9hcGkpIEdOVW1ha2VmaWxlCiAJ
JiYgY3AgeGdlbi1ndGMgJEAgXAogCSYmIHJtIC1mIHhnZW4tZ3RjCiAKKyMgR1NldHRpbmdzCitn
c2V0dGluZ3NfU0NIRU1BUyA9ICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL29yZy53ZWJraXRn
dGstQFdFQktJVEdUS19BUElfVkVSU0lPTkAuZ3NjaGVtYS54bWwKKworQEdTRVRUSU5HU19SVUxF
U0AKKwogIyBGaWxlcyB0aGF0IHdpbGwgYmUgZGlzdHJpYnV0ZWQKIEVYVFJBX0RJU1QgKz0gXAog
CSQoc3JjZGlyKS9ndGstZG9jLm1ha2UgXApAQCAtOTQwLDcgKzk0NSw4IEBAIEVYVFJBX0RJU1Qg
Kz0gXAogCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3BvLyogXAogCSQoc3JjZGlyKS9XZWJLaXQvZ3Rr
L3Jlc291cmNlcy8qIFwKIAkkKHNyY2RpcikvV2ViS2l0L2d0ay90ZXN0cy9yZXNvdXJjZXMvKiBc
Ci0JJChzcmNkaXIpL1dlYktpdC9ndGsvdGVzdHMvdGVzdF91dGlscy5oCisJJChzcmNkaXIpL1dl
YktpdC9ndGsvdGVzdHMvdGVzdF91dGlscy5oIFwKKwkkKHNyY2RpcikvV2ViS2l0L2d0ay9vcmcu
d2Via2l0Z3RrLmdzY2hlbWEueG1sLmluCiAKICMgZXh0cmEgcmVzb3VyY2UgZmlsZXMKIHJlc291
cmNlc2RpciA9ICR7ZGF0YWRpcn0vd2Via2l0LUBXRUJLSVRHVEtfQVBJX1ZFUlNJT05AL3Jlc291
cmNlcwpAQCAtMTE0NSw3ICsxMTUxLDggQEAgQ0xFQU5GSUxFUyArPSBcCiBESVNUQ0xFQU5GSUxF
UyArPSBcCiAJJChDTEVBTkZJTEVTKSBcCiAJJChidWlsZGRpcikvZG9sdGNvbXBpbGUgXAotCSQo
YnVpbGRkaXIpL2RvbHRsaWJ0b29sCisJJChidWlsZGRpcikvZG9sdGxpYnRvb2wgXAorCSQodG9w
X2J1aWxkZGlyKS9XZWJLaXQvZ3RrL29yZy53ZWJraXRndGstQFdFQktJVEdUS19BUElfVkVSU0lP
TkAuZ3NjaGVtYS54bWwKIAogTUFJTlRBSU5FUkNMRUFORklMRVMgKz0gXAogCSQoQ0xFQU5GSUxF
UykgXApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCmluZGV4IDA5OWYzMGIuLjI4MmNlMTIgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMC0wOC0wNSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jv
bmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbR1RLXSBVc2UgR1NldHRpbmdzIHRvIHNhdmUvcmVzdG9yZSBXZWIgSW5z
cGVjdG9yIHNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MzUxMgorCisgICAgICAgICogd3RmL2dvYmplY3QvR1JlZlB0ci5jcHA6IEFkZGVk
IHN1cHBvcnQgZm9yIEdWYXJpYW50LCB1c2VkIGJ5IG91cgorICAgICAgICBHU2V0dGluZ3Mgc3Vw
cG9ydC4KKyAgICAgICAgKFdURjo6cmVmR1B0cik6CisgICAgICAgIChXVEY6OmRlcmVmR1B0cik6
CisgICAgICAgICogd3RmL2dvYmplY3QvR1JlZlB0ci5oOgorCiAyMDEwLTA4LTAzICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVy
IEh1bnQgYW5kIEJldGggRGFraW4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvZ29i
amVjdC9HUmVmUHRyLmNwcCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQdHIuY3Bw
CmluZGV4IGU3Y2YzNGIuLmQ2ZDExNWYgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9n
b2JqZWN0L0dSZWZQdHIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dSZWZQ
dHIuY3BwCkBAIC0zNSw0ICszNSwxNiBAQCB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHSGFz
aFRhYmxlKiBwdHIpCiAgICAgZ19oYXNoX3RhYmxlX3VucmVmKHB0cik7CiB9CiAKK3RlbXBsYXRl
IDw+IEdWYXJpYW50KiByZWZHUHRyKEdWYXJpYW50KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAg
ICAgICAgZ192YXJpYW50X3JlZihwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRl
IDw+IHZvaWQgZGVyZWZHUHRyKEdWYXJpYW50KiBwdHIpCit7CisgICAgZ192YXJpYW50X3VucmVm
KHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvd3RmL2dvYmplY3QvR1JlZlB0ci5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1Jl
ZlB0ci5oCmluZGV4IGM0ZDQxMDcuLjViZWE3MDMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3d0Zi9nb2JqZWN0L0dSZWZQdHIuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9H
UmVmUHRyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIHR5cGVk
ZWYgc3RydWN0IF9HSGFzaFRhYmxlIEdIYXNoVGFibGU7Cit0eXBlZGVmIHN0cnVjdCBfR1Zhcmlh
bnQgR1ZhcmlhbnQ7CiB0eXBlZGVmIHZvaWQqIGdwb2ludGVyOwogZXh0ZXJuICJDIiB2b2lkIGdf
b2JqZWN0X3VucmVmKGdwb2ludGVyIG9iamVjdCk7CiBleHRlcm4gIkMiIGdwb2ludGVyICBnX29i
amVjdF9yZWZfc2luayhncG9pbnRlciBvYmplY3QpOwpAQCAtNDAsNiArNDEsOCBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gY2xhc3MgR1JlZlB0cjsKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBHUmVm
UHRyPFQ+IGFkb3B0R1JlZihUKik7CiB0ZW1wbGF0ZSA8PiBHSGFzaFRhYmxlKiByZWZHUHRyKEdI
YXNoVGFibGUqIHB0cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHSGFzaFRhYmxlKiBw
dHIpOwordGVtcGxhdGUgPD4gR1ZhcmlhbnQqIHJlZkdQdHIoR1ZhcmlhbnQqIHB0cik7Cit0ZW1w
bGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHVmFyaWFudCogcHRyKTsKIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IGNsYXNzIEdSZWZQdHIgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAwODdhMGE2Li4xZWVlMTMxIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDEwLTA4LTA1ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFVzZSBHU2V0dGluZ3MgdG8gc2F2ZS9yZXN0
b3JlIFdlYiBJbnNwZWN0b3Igc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzNTEyCisKKyAgICAgICAgVXNlIEdTZXR0aW5ncyB0byBzYXZl
L3Jlc3RvcmUgc2V0dGluZ3MgdXNlZCBieSB0aGUgV2ViIEluc3BlY3Rvci4KKyAgICAgICAgQSBm
ZXcgaGVscGVyIGZ1bmN0aW9ucyB3ZXJlIGFkZGVkIHRvIGhhdmUgc2V0dGluZ3MgdGhhdCB1c2UK
KyAgICAgICAgYm9vbGVhbiB2YWx1ZXMgYmUgYWN0dWFsIGJvb2xlYW5zLCBhbmQgYWxzbyB0byBj
b25mb3JtIHdpdGggdGhlCisgICAgICAgIEdTZXR0aW5ncyBuYW1pbmcgcmVxdWlyZW1lbnRzIGZv
ciBrZXlzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6dG9HU2V0dGluZ05hbWUpOgorICAgICAgICAoV2ViS2l0Ojp0
cnV0aFN0cmluZ0Zyb21WYXJpYW50KToKKyAgICAgICAgKFdlYktpdDo6dmFyaWFudEZyb21UcnV0
aFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6cG9wdWxhdGVTZXR0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzdG9yZVNldHRpbmcpOgor
ICAgICAgICAqIG9yZy53ZWJraXQuZ3RrLmdzY2hlbWEueG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6CisgICAgICAgIChpbnNwZWN0b3JHU2V0dGluZ3MpOgor
ICAgICAgICAod2Via2l0X2luaXQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6
CisKIDIwMTAtMDgtMDUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCBiYjdkNjYxLi5kNGMxMjhjIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAK
KysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEKKyAqIENvcHlyaWdodCAoQykgMjAxMCBDb2xsYWJvcmEgTHRkLgogICoKICAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwpAQCAtMTE4LDE0ICsxMTksNzkgQEAgdm9pZCBJbnNwZWN0b3JDbGllbnQ6OmhpZGVI
aWdobGlnaHQoKQogICAgIGd0a193aWRnZXRfcXVldWVfZHJhdyhHVEtfV0lER0VUKG1faW5zcGVj
dGVkV2ViVmlldykpOwogfQogCitzdGF0aWMgU3RyaW5nIHRvR1NldHRpbmdOYW1lKFN0cmluZyBp
bnNwZWN0b3JTZXR0aW5nTmFtZSkKK3sKKyAgICBpZiAoaW5zcGVjdG9yU2V0dGluZ05hbWUgPT0g
InJlc291cmNlVHJhY2tpbmdFbmFibGVkIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygicmVzb3Vy
Y2UtdHJhY2tpbmctZW5hYmxlZCIpOworCisgICAgaWYgKGluc3BlY3RvclNldHRpbmdOYW1lID09
ICJ4aHJNb25pdG9yIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygieGhyLW1vbml0b3ItZW5hYmxl
ZCIpOworCisgICAgaWYgKGluc3BlY3RvclNldHRpbmdOYW1lID09ICJmcm9udGVuZFNldHRpbmdz
IikKKyAgICAgICAgcmV0dXJuIFN0cmluZygiZnJvbnRlbmQtc2V0dGluZ3MiKTsKKworICAgIGlm
IChpbnNwZWN0b3JTZXR0aW5nTmFtZSA9PSAiZGVidWdnZXJFbmFibGVkIikKKyAgICAgICAgcmV0
dXJuIFN0cmluZygiZGVidWdnZXItZW5hYmxlZCIpOworCisgICAgaWYgKGluc3BlY3RvclNldHRp
bmdOYW1lID09ICJwcm9maWxlckVuYWJsZWQiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCJwcm9m
aWxlci1lbmFibGVkIik7CisKKyAgICByZXR1cm4gaW5zcGVjdG9yU2V0dGluZ05hbWU7Cit9CisK
K3N0YXRpYyBTdHJpbmcgdHJ1dGhTdHJpbmdGcm9tVmFyaWFudChHVmFyaWFudCogdmFyaWFudCkK
K3sKKyAgICBpZiAoZ192YXJpYW50X2dldF9ib29sZWFuKHZhcmlhbnQpKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCJ0cnVlIik7CisKKyAgICByZXR1cm4gU3RyaW5nKCJmYWxzZSIpOworfQorCitz
dGF0aWMgR1ZhcmlhbnQqIHZhcmlhbnRGcm9tVHJ1dGhTdHJpbmcoY29uc3QgU3RyaW5nJiB0cnV0
aCkKK3sKKyAgICBpZiAodHJ1dGggPT0gInRydWUiKQorICAgICAgICByZXR1cm4gZ192YXJpYW50
X25ld19ib29sZWFuKFRSVUUpOworCisgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfYm9vbGVhbihG
QUxTRSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ2xpZW50Ojpwb3B1bGF0ZVNldHRpbmcoY29uc3Qg
U3RyaW5nJiBrZXksIFN0cmluZyogdmFsdWUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICAvLyBJZ25vcmUgdGhpcyBzZXR0aW5nIGZvciBub3csIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSB1
c2VkIGZvcgorICAgIC8vIGFueXRoaW5nIHJpZ2h0IG5vdy4KKyAgICBpZiAoa2V5ID09ICJsYXN0
QWN0aXZlUGFuZWwiKQorICAgICAgICByZXR1cm47CisKKyAgICBHU2V0dGluZ3MqIHNldHRpbmdz
ID0gaW5zcGVjdG9yR1NldHRpbmdzKCk7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCA9
IGdfc2V0dGluZ3NfZ2V0X3ZhbHVlKHNldHRpbmdzLCB0b0dTZXR0aW5nTmFtZShrZXkpLnV0Zjgo
KS5kYXRhKCkpOworCisgICAgaWYgKGtleSA9PSAicmVzb3VyY2VUcmFja2luZ0VuYWJsZWQiIHx8
IGtleSA9PSAieGhyTW9uaXRvciIKKyAgICAgICAgfHwga2V5ID09ICJkZWJ1Z2dlckVuYWJsZWQi
IHx8IGtleSA9PSAicHJvZmlsZXJFbmFibGVkIikKKyAgICAgICAgKnZhbHVlID0gdHJ1dGhTdHJp
bmdGcm9tVmFyaWFudCh2YXJpYW50LmdldCgpKTsKKyAgICBlbHNlIGlmIChrZXkgPT0gImZyb250
ZW5kU2V0dGluZ3MiKQorICAgICAgICAqdmFsdWUgPSBTdHJpbmcoZ192YXJpYW50X2dldF9zdHJp
bmcodmFyaWFudC5nZXQoKSwgMCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudDo6c3RvcmVT
ZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgLy8gSWdub3JlIHRoaXMgc2V0dGluZyBmb3Igbm93LCBpdCBk
b2Vzbid0IHNlZW0gdG8gYmUgdXNlZCBmb3IKKyAgICAvLyBhbnl0aGluZyByaWdodCBub3cuCisg
ICAgaWYgKGtleSA9PSAibGFzdEFjdGl2ZVBhbmVsIikKKyAgICAgICAgcmV0dXJuOworCisgICAg
R1NldHRpbmdzKiBzZXR0aW5ncyA9IGluc3BlY3RvckdTZXR0aW5ncygpOworICAgIEdSZWZQdHI8
R1ZhcmlhbnQ+IHZhcmlhbnQoMCk7CisKKyAgICBpZiAoa2V5ID09ICJyZXNvdXJjZVRyYWNraW5n
RW5hYmxlZCIgfHwga2V5ID09ICJ4aHJNb25pdG9yIgorICAgICAgICB8fCBrZXkgPT0gImRlYnVn
Z2VyRW5hYmxlZCIgfHwga2V5ID09ICJwcm9maWxlckVuYWJsZWQiKQorICAgICAgICB2YXJpYW50
ID0gdmFyaWFudEZyb21UcnV0aFN0cmluZyh2YWx1ZSk7CisgICAgZWxzZSBpZiAoa2V5ID09ICJm
cm9udGVuZFNldHRpbmdzIiB8fCBrZXkgPT0gImxhc3RBY3RpdmVQYW5lbCIpCisgICAgICAgIHZh
cmlhbnQgPSBnX3ZhcmlhbnRfbmV3X3N0cmluZyh2YWx1ZS51dGY4KCkuZGF0YSgpKTsKKworICAg
IGlmICghdmFyaWFudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19zZXR0aW5nc19zZXRfdmFs
dWUoc2V0dGluZ3MsIHRvR1NldHRpbmdOYW1lKGtleSkudXRmOCgpLmRhdGEoKSwgdmFyaWFudC5n
ZXQoKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9vcmcud2Via2l0
Z3RrLmdzY2hlbWEueG1sLmluIGIvV2ViS2l0L2d0ay9vcmcud2Via2l0Z3RrLmdzY2hlbWEueG1s
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MDYzZjQKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvZ3RrL29yZy53ZWJraXRndGsuZ3NjaGVtYS54bWwuaW4KQEAgLTAs
MCArMSwzMiBAQAorPHNjaGVtYWxpc3Q+CisgIDxzY2hlbWEgaWQ9Im9yZy53ZWJraXRndGstQFdF
QktJVEdUS19BUElfVkVSU0lPTkAiIHBhdGg9Ii9zeXN0ZW0vd2Via2l0Z3RrLyI+CisgICAgPGNo
aWxkIHNjaGVtYT0ib3JnLndlYmtpdGd0ay1AV0VCS0lUR1RLX0FQSV9WRVJTSU9OQC5pbnNwZWN0
b3IiIG5hbWU9Imluc3BlY3RvciIvPgorICA8L3NjaGVtYT4KKyAgPHNjaGVtYSBpZD0ib3JnLndl
YmtpdGd0ay1AV0VCS0lUR1RLX0FQSV9WRVJTSU9OQC5pbnNwZWN0b3IiIHBhdGg9Ii9zeXN0ZW0v
d2Via2l0Z3RrL2luc3BlY3Rvci8iPgorICAgIDxrZXkgbmFtZT0icmVzb3VyY2UtdHJhY2tpbmct
ZW5hYmxlZCIgdHlwZT0iYiI+CisgICAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4KKyAgICAg
IDxzdW1tYXJ5PlJlc291cmNlIFRyYWNraW5nIEVuYWJsZWQ8L3N1bW1hcnk+CisgICAgICA8ZGVz
Y3JpcHRpb24+V2hldGhlciB0aGUgUmVzb3VyY2UgVHJhY2tpbmcgcGFuZWwgaXMgYWx3YXlzIGVu
YWJsZWQuPC9kZXNjcmlwdGlvbj4KKyAgICA8L2tleT4KKyAgICA8a2V5IG5hbWU9Inhoci1tb25p
dG9yLWVuYWJsZWQiIHR5cGU9ImIiPgorICAgICAgPGRlZmF1bHQ+ZmFsc2U8L2RlZmF1bHQ+Cisg
ICAgICA8c3VtbWFyeT5YSFIgTW9uaXRvciBFbmFibGVkPC9zdW1tYXJ5PgorICAgICAgPGRlc2Ny
aXB0aW9uPldoZXRoZXIgdGhlIFhIUiBtb25pdG9yIGlzIGFsd2F5cyBlbmFibGVkLjwvZGVzY3Jp
cHRpb24+CisgICAgPC9rZXk+CisgICAgPGtleSBuYW1lPSJkZWJ1Z2dlci1lbmFibGVkIiB0eXBl
PSJiIj4KKyAgICAgIDxkZWZhdWx0PmZhbHNlPC9kZWZhdWx0PgorICAgICAgPHN1bW1hcnk+RGVi
dWdnZXIgRW5hYmxlZDwvc3VtbWFyeT4KKyAgICAgIDxkZXNjcmlwdGlvbj5XaGV0aGVyIHRoZSBk
ZWJ1Z2dlciBpcyBhbHdheXMgZW5hYmxlZC48L2Rlc2NyaXB0aW9uPgorICAgIDwva2V5PgorICAg
IDxrZXkgbmFtZT0icHJvZmlsZXItZW5hYmxlZCIgdHlwZT0iYiI+CisgICAgICA8ZGVmYXVsdD5m
YWxzZTwvZGVmYXVsdD4KKyAgICAgIDxzdW1tYXJ5PlByb2ZpbGVyIEVuYWJsZWQ8L3N1bW1hcnk+
CisgICAgICA8ZGVzY3JpcHRpb24+V2hldGhlciB0aGUgcHJvZmlsZXIgaXMgYWx3YXlzIGVuYWJs
ZWQuPC9kZXNjcmlwdGlvbj4KKyAgICA8L2tleT4KKyAgICA8a2V5IG5hbWU9ImZyb250ZW5kLXNl
dHRpbmdzIiB0eXBlPSJzIj4KKyAgICAgIDxkZWZhdWx0PicnPC9kZWZhdWx0PgorICAgICAgPHN1
bW1hcnk+TWlzYyBJbnNwZWN0b3IgRnJvbnRlbmQgU2V0dGluZ3M8L3N1bW1hcnk+CisgICAgICA8
ZGVzY3JpcHRpb24+TWlzY2VsYW5lb3VzIFNldHRpbmdzIG1hbmFnZWQgYnkgdGhlIEluc3BlY3Rv
ciBGcm9udGVuZDwvZGVzY3JpcHRpb24+CisgICAgPC9rZXk+CisgIDwvc2NoZW1hPgorPC9zY2hl
bWFsaXN0PgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAppbmRleCA0MWRlNzZlLi5lYzQz
MDFmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAorKysg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVz
cG9uc2UuaCIKICNpbmNsdWRlICJ3ZWJraXRzb3VwYXV0aGRpYWxvZy5oIgorI2luY2x1ZGUgIndl
YmtpdHZlcnNpb24uaCIKICNpbmNsdWRlIDxsaWJpbnRsLmg+CiAjaW5jbHVkZSA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC0yMTQsNiArMjE1
LDE5IEBAIHN0YXRpYyB2b2lkIGNsb3NlSWNvbkRhdGFiYXNlT25FeGl0KCkKICAgICBpY29uRGF0
YWJhc2UoKS0+Y2xvc2UoKTsKIH0KIAorR1NldHRpbmdzKiBpbnNwZWN0b3JHU2V0dGluZ3MoKQor
eworICAgIHN0YXRpYyBHU2V0dGluZ3MqIHNldHRpbmdzID0gMDsKKworICAgIGlmIChzZXR0aW5n
cykKKyAgICAgICAgcmV0dXJuIHNldHRpbmdzOworCisgICAgR093blB0cjxnY2hhcj4gc2NoZW1h
SUQoZ19zdHJkdXBfcHJpbnRmKCJvcmcud2Via2l0Z3RrLSUuMWYuaW5zcGVjdG9yIiwgV0VCS0lU
R1RLX0FQSV9WRVJTSU9OKSk7CisgICAgc2V0dGluZ3MgPSBnX3NldHRpbmdzX25ldyhzY2hlbWFJ
RC5nZXQoKSk7CisKKyAgICByZXR1cm4gc2V0dGluZ3M7Cit9CisKIHZvaWQgd2Via2l0X2luaXQo
KQogewogICAgIHN0YXRpYyBib29sIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTsKQEAgLTIzOCw2ICsy
NTIsMTAgQEAgdm9pZCB3ZWJraXRfaW5pdCgpCiAgICAgLy8gRklYTUU6IEV4cG9zZSB0aGlzIHdp
dGggYW4gQVBJIGFuZC9vciBjYWxjdWxhdGUgYmFzZWQgb24gYXZhaWxhYmxlIHJlc291cmNlcwog
ICAgIHdlYmtpdF9zZXRfY2FjaGVfbW9kZWwoV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VS
KTsKIAorICAgIC8vIEluaXRpYWxpemUgc2V0dGluZ3MgdmFyaWFibGVzIGhlcmUgdG8gbWFrZSBz
dXJlIHRoaXMgaGFwcGVucyBpbgorICAgIC8vIHRoZSBtYWluIHRocmVhZC4KKyAgICBpbnNwZWN0
b3JHU2V0dGluZ3MoKTsKKwogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBnY2hhciogZGF0YWJh
c2VEaXJlY3RvcnkgPSBnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndl
YmtpdCIsICJkYXRhYmFzZXMiLCBOVUxMKTsKICAgICB3ZWJraXRfc2V0X3dlYl9kYXRhYmFzZV9k
aXJlY3RvcnlfcGF0aChkYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmgKaW5kZXggYWExOWJlYy4uNjM0NTA2MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaApA
QCAtMTIwLDYgKzEyMCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogZXh0ZXJuICJDIiB7CiAgICAg
dm9pZCB3ZWJraXRfaW5pdCgpOwogCisgICAgR1NldHRpbmdzKiBpbnNwZWN0b3JHU2V0dGluZ3Mo
KTsKKwogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBREFCTEUgKChHUGFyYW1GbGFncykoR19QQVJB
TV9SRUFEQUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJB
TV9TVEFUSUNfQkxVUkIpKQogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFICgoR1BhcmFt
RmxhZ3MpKEdfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1fU1RBVElDX05BTUV8R19QQVJBTV9TVEFU
SUNfTklDS3xHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAKZGlmZiAtLWdpdCBhL2F1dG90b29scy93
ZWJraXQubTQgYi9hdXRvdG9vbHMvd2Via2l0Lm00CmluZGV4IDM3OWZhOGYuLjU3ZDNjZDQgMTAw
NjQ0Ci0tLSBhL2F1dG90b29scy93ZWJraXQubTQKKysrIGIvYXV0b3Rvb2xzL3dlYmtpdC5tNApA
QCAtMTA5LDExICsxMDksMTMgQEAgQUNfREVGVU5fT05DRShbX1dFQktJVF9DSEVDS19HTElCXSwK
IGRubCBjaGVjayBmb3IgZ2xpYgogIyBWZXJzaW9uIHJlcXVpcmVtZW50cwogR0xJQl9SRVFVSVJF
RF9WRVJTSU9OPTIuMjEuMworR0lPX1JFUVVJUkVEX1ZFUlNJT049Mi4yNS4wCiBHT0JKRUNUX1JF
UVVJUkVEX1ZFUlNJT049Mi4wCiBHVEhSRUFEX1JFUVVJUkVEX1ZFUlNJT049Mi4wCiAKIFBLR19D
SEVDS19NT0RVTEVTKFtHTElCXSwKICAgICAgICAgICAgICAgICAgIFtnbGliLTIuMCA+PSAkR0xJ
Ql9SRVFVSVJFRF9WRVJTSU9OCisgICAgICAgICAgICAgICAgICBnaW8tMi4wID49ICRHSU9fUkVR
VUlSRURfVkVSU0lPTgogICAgICAgICAgICAgICAgICAgZ29iamVjdC0yLjAgPj0gJEdPQkpFQ1Rf
UkVRVUlSRURfVkVSU0lPTgogICAgICAgICAgICAgICAgICAgZ3RocmVhZC0yLjAgPj0gJEdUSFJF
QURfUkVRVUlSRURfVkVSU0lPTl0pCiBBQ19TVUJTVChbR0xJQl9DRkxBR1NdKQpkaWZmIC0tZ2l0
IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDIwNGQ4ZmIuLjc2YWY3ZjEgMTAw
NjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTgzMyw2ICs4MzMs
OSBAQCBpZiB0ZXN0ICIkZW5hYmxlX2dlb2xvY2F0aW9uIiA9ICJ5ZXMiOyB0aGVuCiAgICAgQUNf
U1VCU1QoW0dFT0NMVUVfTElCU10pCiBmaQogCisjIEdTZXR0aW5ncworR0xJQl9HU0VUVElOR1MK
KwogIyBjaGVjayBpZiBnc3RyZWFtZXIgaXMgYXZhaWxhYmxlCiBpZiB0ZXN0ICIkZW5hYmxlX3Zp
ZGVvIiA9ICJ5ZXMiOyB0aGVuCiAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhbR1NUUkVBTUVSXSwKQEAg
LTk0Myw3ICs5NDYsOSBAQCBXZWJLaXQvZ3RrL2RvY3MvdmVyc2lvbi54bWwKIAogQUNfQ09ORklH
X0ZJTEVTKFsKIFdlYktpdC9ndGsvJHtXRUJLSVRHVEtfUENfTkFNRX0tJHtXRUJLSVRHVEtfQVBJ
X1ZFUlNJT059LnBjOldlYktpdC9ndGsvd2Via2l0LnBjLmluCi1XZWJLaXQvZ3RrL0pTQ29yZS0k
e1dFQktJVEdUS19BUElfVkVSU0lPTn0uZ2lyOldlYktpdC9ndGsvSlNDb3JlLmdpci5pbl0KK1dl
YktpdC9ndGsvSlNDb3JlLSR7V0VCS0lUR1RLX0FQSV9WRVJTSU9OfS5naXI6V2ViS2l0L2d0ay9K
U0NvcmUuZ2lyLmluCitXZWJLaXQvZ3RrL29yZy53ZWJraXRndGstJHtXRUJLSVRHVEtfQVBJX1ZF
UlNJT059LmdzY2hlbWEueG1sOldlYktpdC9ndGsvb3JnLndlYmtpdGd0ay5nc2NoZW1hLnhtbC5p
bgorXQogLFtXRUJLSVRHVEtfQVBJX1ZFUlNJT049JFdFQktJVEdUS19BUElfVkVSU0lPTixXRUJL
SVRHVEtfUENfTkFNRT0kV0VCS0lUR1RLX1BDX05BTUVdCiApCiAKLS0gCjEuNy4xCgo=
</data>
<flag name="review"
          id="51985"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64224</attachid>
            <date>2010-08-12 07:50:25 -0700</date>
            <delta_ts>2010-08-12 08:02:31 -0700</delta_ts>
            <desc>use gsettings for the inspector</desc>
            <filename>0001-Use-GSettings.patch</filename>
            <type>text/plain</type>
            <size>15455</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSBiMTg5NmZkYWRkYWM2OTljZWM5NjAyYTUwNWQyMWNiODVmZDI1ODdjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+
CkRhdGU6IFRodSwgMTIgQXVnIDIwMTAgMTE6NDc6NTYgLTAzMDAKU3ViamVjdDogW1BBVENIXSBV
c2UgR1NldHRpbmdzCgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKysrCiBHTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKy0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrCiBKYXZhU2NyaXB0Q29yZS93dGYvZ29iamVj
dC9HUmVmUHRyLmNwcCAgICAgICAgICAgfCAgIDE0ICsrKwogSmF2YVNjcmlwdENvcmUvd3RmL2dv
YmplY3QvR1JlZlB0ci5oICAgICAgICAgICAgIHwgICAgOSArKwogV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKwogV2ViS2l0L2d0ay9K
U0NvcmUuZ2lyLmluICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIHwgIDEwNCArKysrKysrKysr
KysrKysrKysrKystCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCAgICAgICAg
ICAgICAgfCAgIDQ2ICsrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUu
aCAgICAgICAgICAgICAgICB8ICAgIDQgKwogY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrLQogMTEgZmlsZXMgY2hhbmdlZCwgMjU0IGlu
c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hh
bmdlTG9nCmluZGV4IDJmOTM1ZTkuLjgzOTcyMDYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysg
Yi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOC0xMiAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBVc2UgR1NldHRpbmdzIHRv
IHNhdmUvcmVzdG9yZSBXZWIgSW5zcGVjdG9yIHNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzUxMgorCisgICAgICAgICogR05VbWFrZWZp
bGUuYW06IEdTZXR0aW5ncyBydWxlcy4KKyAgICAgICAgKiBhdXRvdG9vbHMvd2Via2l0Lm00OiBS
ZXF1aXJlIG5ldyBlbm91Z2ggR0lPLgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogR1NldHRpbmdz
IGluZnJhc3RydWN0dXJlLgorCiAyMDEwLTA4LTEyICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9n
YUBwYXJvZ2EuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5pa29sYXMgWmltbWVybWFubi4K
ZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0KaW5kZXggODdmZjMx
ZC4uOTE2NTNjZiAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysrIGIvR05VbWFrZWZpbGUu
YW0KQEAgLTkyNCw2ICs5MjQsMTMgQEAgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVz
LmNwcDogJCh3ZWJraXRndGtfaF9hcGkpIEdOVW1ha2VmaWxlCiAJJiYgY3AgeGdlbi1ndGMgJEAg
XAogCSYmIHJtIC1mIHhnZW4tZ3RjCiAKKyMgR1NldHRpbmdzCitpZiBVU0VfR1NFVFRJTkdTCitn
c2V0dGluZ3NfU0NIRU1BUyA9ICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL29yZy53ZWJraXRn
dGstQFdFQktJVEdUS19BUElfVkVSU0lPTkAuZ3NjaGVtYS54bWwKKworQEdTRVRUSU5HU19SVUxF
U0AKK2VuZGlmCisKICMgRmlsZXMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkCiBFWFRSQV9ESVNU
ICs9IFwKIAkkKHNyY2RpcikvZ3RrLWRvYy5tYWtlIFwKQEAgLTk0MCw3ICs5NDcsOCBAQCBFWFRS
QV9ESVNUICs9IFwKIAkkKHNyY2RpcikvV2ViS2l0L2d0ay9wby8qIFwKIAkkKHNyY2RpcikvV2Vi
S2l0L2d0ay9yZXNvdXJjZXMvKiBcCiAJJChzcmNkaXIpL1dlYktpdC9ndGsvdGVzdHMvcmVzb3Vy
Y2VzLyogXAotCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RfdXRpbHMuaAorCSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RfdXRpbHMuaCBcCisJJChzcmNkaXIpL1dlYktpdC9n
dGsvb3JnLndlYmtpdGd0ay5nc2NoZW1hLnhtbC5pbgogCiAjIGV4dHJhIHJlc291cmNlIGZpbGVz
CiByZXNvdXJjZXNkaXIgPSAke2RhdGFkaXJ9L3dlYmtpdC1AV0VCS0lUR1RLX0FQSV9WRVJTSU9O
QC9yZXNvdXJjZXMKQEAgLTExNDUsNyArMTE1Myw4IEBAIERJU1RDTEVBTkZJTEVTICs9IFwKIAkk
KHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay9kb2NzL3ZlcnNpb24ueG1sIFwKIAkkKHRvcF9idWls
ZGRpcikvV2ViS2l0L2d0ay9kb2NzL0dOVW1ha2VmaWxlIFwKIAkkKHRvcF9idWlsZGRpcikvV2Vi
S2l0L2d0ay9AV0VCS0lUR1RLX1BDX05BTUVALUBXRUJLSVRHVEtfQVBJX1ZFUlNJT05ALnBjIFwK
LQkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5oCisJJCh0
b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZlcnNpb24uaCBcCisJJCh0b3Bf
YnVpbGRkaXIpL1dlYktpdC9ndGsvb3JnLndlYmtpdGd0ay1AV0VCS0lUR1RLX0FQSV9WRVJTSU9O
QC5nc2NoZW1hLnhtbAogCiBNQUlOVEFJTkVSQ0xFQU5GSUxFUyArPSBcCiAJJChDTEVBTkZJTEVT
KSBcCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggODA1NzhmOC4uYzFkMTNmNiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEwLTA4LTA1ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9u
aGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtHVEtdIFVzZSBHU2V0dGluZ3MgdG8gc2F2ZS9yZXN0b3JlIFdlYiBJbnNw
ZWN0b3Igc2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQzNTEyCisKKyAgICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmNwcDogQWRkZWQg
c3VwcG9ydCBmb3IgR1ZhcmlhbnQsIHVzZWQgYnkgb3VyCisgICAgICAgIEdTZXR0aW5ncyBzdXBw
b3J0LgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAgKFdURjo6ZGVyZWZHUHRyKToK
KyAgICAgICAgKiB3dGYvZ29iamVjdC9HUmVmUHRyLmg6CisKIDIwMTAtMDgtMTEgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgYnVp
bGQgZml4LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5j
cHAgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRyLmNwcAppbmRleCBlN2NmMzRi
Li5lMGI1NmNlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRy
LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRyLmNwcApAQCAtMzUs
NCArMzUsMTggQEAgdGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQdHIoR0hhc2hUYWJsZSogcHRyKQog
ICAgIGdfaGFzaF90YWJsZV91bnJlZihwdHIpOwogfQogCisjaWYgSEFWRV9HU0VUVElOR1MKK3Rl
bXBsYXRlIDw+IEdWYXJpYW50KiByZWZHUHRyKEdWYXJpYW50KiBwdHIpCit7CisgICAgaWYgKHB0
cikKKyAgICAgICAgZ192YXJpYW50X3JlZihwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3Rl
bXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdWYXJpYW50KiBwdHIpCit7CisgICAgZ192YXJpYW50
X3VucmVmKHB0cik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRyLmggYi9KYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdC9HUmVmUHRyLmgKaW5kZXggYzRkNDEwNy4uNTMxYmNiYSAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5oCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3d0Zi9nb2JqZWN0L0dSZWZQdHIuaApAQCAtMjYsNiArMjYsMTAgQEAKICNpbmNsdWRlICJBbHdh
eXNJbmxpbmUuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKKyNpZiBIQVZFX0dTRVRUSU5HUwor
dHlwZWRlZiBzdHJ1Y3QgX0dWYXJpYW50IEdWYXJpYW50OworI2VuZGlmCisKIHR5cGVkZWYgc3Ry
dWN0IF9HSGFzaFRhYmxlIEdIYXNoVGFibGU7CiB0eXBlZGVmIHZvaWQqIGdwb2ludGVyOwogZXh0
ZXJuICJDIiB2b2lkIGdfb2JqZWN0X3VucmVmKGdwb2ludGVyIG9iamVjdCk7CkBAIC00MSw2ICs0
NSwxMSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gR1JlZlB0cjxUPiBhZG9wdEdSZWYoVCopOwog
dGVtcGxhdGUgPD4gR0hhc2hUYWJsZSogcmVmR1B0cihHSGFzaFRhYmxlKiBwdHIpOwogdGVtcGxh
dGUgPD4gdm9pZCBkZXJlZkdQdHIoR0hhc2hUYWJsZSogcHRyKTsKIAorI2lmIEhBVkVfR1NFVFRJ
TkdTCit0ZW1wbGF0ZSA8PiBHVmFyaWFudCogcmVmR1B0cihHVmFyaWFudCogcHRyKTsKK3RlbXBs
YXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdWYXJpYW50KiBwdHIpOworI2VuZGlmCisKIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPiBjbGFzcyBHUmVmUHRyIHsKIHB1YmxpYzoKICAgICBHUmVmUHRyKCkgOiBt
X3B0cigwKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggNDc3YTFiOC4uM2I2OTUxMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxMC0wOC0wNSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbR1RLXSBVc2UgR1NldHRpbmdzIHRvIHNhdmUvcmVzdG9yZSBXZWIgSW5zcGVjdG9yIHNl
dHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MzUxMgorCisgICAgICAgIFVzZSBHU2V0dGluZ3MgdG8gc2F2ZS9yZXN0b3JlIHNldHRpbmdzIHVz
ZWQgYnkgdGhlIFdlYiBJbnNwZWN0b3IuCisgICAgICAgIEEgZmV3IGhlbHBlciBmdW5jdGlvbnMg
d2VyZSBhZGRlZCB0byBoYXZlIHNldHRpbmdzIHRoYXQgdXNlCisgICAgICAgIGJvb2xlYW4gdmFs
dWVzIGJlIGFjdHVhbCBib29sZWFucywgYW5kIGFsc28gdG8gY29uZm9ybSB3aXRoIHRoZQorICAg
ICAgICBHU2V0dGluZ3MgbmFtaW5nIHJlcXVpcmVtZW50cyBmb3Iga2V5cy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OnRvR1NldHRpbmdOYW1lKToKKyAgICAgICAgKFdlYktpdDo6dHJ1dGhTdHJpbmdGcm9tVmFyaWFu
dCk6CisgICAgICAgIChXZWJLaXQ6OnZhcmlhbnRGcm9tVHJ1dGhTdHJpbmcpOgorICAgICAgICAo
V2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OnBvcHVsYXRlU2V0dGluZyk6CisgICAgICAgIChXZWJL
aXQ6Okluc3BlY3RvckNsaWVudDo6c3RvcmVTZXR0aW5nKToKKyAgICAgICAgKiBvcmcud2Via2l0
Lmd0ay5nc2NoZW1hLnhtbDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwOgorICAgICAgICAoaW5zcGVjdG9yR1NldHRpbmdzKToKKyAgICAgICAgKHdlYmtpdF9pbml0
KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorCiAyMDEwLTA4LTExICBKb29u
ZSBIdXIgIDxqb29uZUBrbGRwLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9i
aW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0pTQ29yZS5naXIuaW4gYi9XZWJLaXQvZ3Rr
L0pTQ29yZS5naXIuaW4KaW5kZXggZTk3OWMzMy4uYzQzYTY4NyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9KU0NvcmUuZ2lyLmluCisrKyBiL1dlYktpdC9ndGsvSlNDb3JlLmdpci5pbgpAQCAtMSw1
ICsxLDUgQEAKIDw/eG1sIHZlcnNpb249IjEuMCI/PgotPHJlcG9zaXRvcnkgdmVyc2lvbj0iMS4x
IgorPHJlcG9zaXRvcnkgdmVyc2lvbj0iMS4wIgogICAgICAgICAgICAgeG1sbnM9Imh0dHA6Ly93
d3cuZ3RrLm9yZy9pbnRyb3NwZWN0aW9uL2NvcmUvMS4wIgogICAgICAgICAgICAgeG1sbnM6Yz0i
aHR0cDovL3d3dy5ndGsub3JnL2ludHJvc3BlY3Rpb24vYy8xLjAiPgogICA8bmFtZXNwYWNlIG5h
bWU9IkpTQ29yZSIgdmVyc2lvbj0iQFdFQktJVEdUS19BUElfVkVSU0lPTkAiIHNoYXJlZC1saWJy
YXJ5PSJ3ZWJraXRndGstQFdFQktJVEdUS19BUElfVkVSU0lPTkAiPgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCmluZGV4IDEyNTYwMDAuLjMz
MTUzNWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEd0ay5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA4IEd1c3Rh
dm8gTm9yb25oYSBTaWx2YQorICogQ29weXJpZ2h0IChDKSAyMDEwIENvbGxhYm9yYSBMdGQuCiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCkBAIC0xMTgsMTUgKzExOSwxMTYgQEAgdm9pZCBJbnNwZWN0b3JD
bGllbnQ6OmhpZGVIaWdobGlnaHQoKQogICAgIGd0a193aWRnZXRfcXVldWVfZHJhdyhHVEtfV0lE
R0VUKG1faW5zcGVjdGVkV2ViVmlldykpOwogfQogCisjaWYgSEFWRV9HU0VUVElOR1MKK3N0YXRp
YyBTdHJpbmcgdG9HU2V0dGluZ05hbWUoU3RyaW5nIGluc3BlY3RvclNldHRpbmdOYW1lKQorewor
ICAgIGlmIChpbnNwZWN0b3JTZXR0aW5nTmFtZSA9PSAicmVzb3VyY2VUcmFja2luZ0VuYWJsZWQi
KQorICAgICAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZS10cmFja2luZy1lbmFibGVkIik7CisK
KyAgICBpZiAoaW5zcGVjdG9yU2V0dGluZ05hbWUgPT0gInhock1vbml0b3IiKQorICAgICAgICBy
ZXR1cm4gU3RyaW5nKCJ4aHItbW9uaXRvci1lbmFibGVkIik7CisKKyAgICBpZiAoaW5zcGVjdG9y
U2V0dGluZ05hbWUgPT0gImZyb250ZW5kU2V0dGluZ3MiKQorICAgICAgICByZXR1cm4gU3RyaW5n
KCJmcm9udGVuZC1zZXR0aW5ncyIpOworCisgICAgaWYgKGluc3BlY3RvclNldHRpbmdOYW1lID09
ICJkZWJ1Z2dlckVuYWJsZWQiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCJkZWJ1Z2dlci1lbmFi
bGVkIik7CisKKyAgICBpZiAoaW5zcGVjdG9yU2V0dGluZ05hbWUgPT0gInByb2ZpbGVyRW5hYmxl
ZCIpCisgICAgICAgIHJldHVybiBTdHJpbmcoInByb2ZpbGVyLWVuYWJsZWQiKTsKKworICAgIHJl
dHVybiBpbnNwZWN0b3JTZXR0aW5nTmFtZTsKK30KKworc3RhdGljIFN0cmluZyB0cnV0aFN0cmlu
Z0Zyb21WYXJpYW50KEdWYXJpYW50KiB2YXJpYW50KQoreworICAgIGlmIChnX3ZhcmlhbnRfZ2V0
X2Jvb2xlYW4odmFyaWFudCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoInRydWUiKTsKKworICAg
IHJldHVybiBTdHJpbmcoImZhbHNlIik7Cit9CisKK3N0YXRpYyBHVmFyaWFudCogdmFyaWFudEZy
b21UcnV0aFN0cmluZyhjb25zdCBTdHJpbmcmIHRydXRoKQoreworICAgIGlmICh0cnV0aCA9PSAi
dHJ1ZSIpCisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X2Jvb2xlYW4oVFJVRSk7CisKKyAg
ICByZXR1cm4gZ192YXJpYW50X25ld19ib29sZWFuKEZBTFNFKTsKK30KKworc3RhdGljIGJvb2wg
c2hvdWxkSWdub3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICAvLyBJZ25vcmUg
dGhpcyBzZXR0aW5nIGZvciBub3csIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSB1c2VkIGZvcgorICAg
IC8vIGFueXRoaW5nIHJpZ2h0IG5vdy4KKyAgICBpZiAoa2V5ID09ICJsYXN0QWN0aXZlUGFuZWwi
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIEdTZXR0aW5ncyBjb25zaWRlcnMgdHJ5
aW5nIHRvIGZldGNoIG9yIHNldCBhIHNldHRpbmcgdGhhdCBpcworICAgIC8vIG5vdCBiYWNrZWQg
YnkgYSBzY2hlbWEgYXMgcHJvZ3JhbW1lciBlcnJvciwgYW5kIGFib3J0cyB0aGUKKyAgICAvLyBw
cm9ncmFtJ3MgZXhlY3V0aW9uLiBXZSBjaGVjayBoZXJlIHRvIGF2b2lkIGhhdmluZyBhbiB1bmhh
bmRsZWQKKyAgICAvLyBzZXR0aW5nIGFzIGEgZmF0YWwgZXJyb3IuCisgICAgaWYgKGtleSA9PSAi
cmVzb3VyY2VUcmFja2luZ0VuYWJsZWQiIHx8IGtleSA9PSAieGhyTW9uaXRvciIKKyAgICAgICAg
fHwga2V5ID09ICJmcm9udGVuZFNldHRpbmdzIiB8fCBrZXkgPT0gImRlYnVnZ2VyRW5hYmxlZCIK
KyAgICAgICAgfHwga2V5ID09ICJwcm9maWxlckVuYWJsZWQiKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBMT0dfVkVSQk9TRShOb3RZZXRJbXBsZW1lbnRlZCwgIlVua25vd24ga2V5IGln
bm9yZWQ6ICVzIiwga2V5LmFzY2lpKCkuZGF0YSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
dm9pZCBJbnNwZWN0b3JDbGllbnQ6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwg
U3RyaW5nKiB2YWx1ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmIChzaG91bGRJ
Z25vcmVTZXR0aW5nKGtleSkpCisgICAgICAgIHJldHVybjsKKworICAgIEdTZXR0aW5ncyogc2V0
dGluZ3MgPSBpbnNwZWN0b3JHU2V0dGluZ3MoKTsKKyAgICBpZiAoIXNldHRpbmdzKQorICAgICAg
ICByZXR1cm47CisKKyAgICBHUmVmUHRyPEdWYXJpYW50PiB2YXJpYW50ID0gYWRvcHRHUmVmKGdf
c2V0dGluZ3NfZ2V0X3ZhbHVlKHNldHRpbmdzLCB0b0dTZXR0aW5nTmFtZShrZXkpLnV0ZjgoKS5k
YXRhKCkpKTsKKworICAgIGlmIChrZXkgPT0gInJlc291cmNlVHJhY2tpbmdFbmFibGVkIiB8fCBr
ZXkgPT0gInhock1vbml0b3IiCisgICAgICAgIHx8IGtleSA9PSAiZGVidWdnZXJFbmFibGVkIiB8
fCBrZXkgPT0gInByb2ZpbGVyRW5hYmxlZCIpCisgICAgICAgICp2YWx1ZSA9IHRydXRoU3RyaW5n
RnJvbVZhcmlhbnQodmFyaWFudC5nZXQoKSk7CisgICAgZWxzZSBpZiAoa2V5ID09ICJmcm9udGVu
ZFNldHRpbmdzIikKKyAgICAgICAgKnZhbHVlID0gU3RyaW5nKGdfdmFyaWFudF9nZXRfc3RyaW5n
KHZhcmlhbnQuZ2V0KCksIDApKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnQ6OnN0b3JlU2V0
dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKKyAgICBpZiAo
c2hvdWxkSWdub3JlU2V0dGluZyhrZXkpKQorICAgICAgICByZXR1cm47CisKKyAgICBHU2V0dGlu
Z3MqIHNldHRpbmdzID0gaW5zcGVjdG9yR1NldHRpbmdzKCk7CisgICAgaWYgKCFzZXR0aW5ncykK
KyAgICAgICAgcmV0dXJuOworCisgICAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCgwKTsKKwor
ICAgIC8vIFNldCB0aGUga2V5IHdpdGggdGhlIGFwcHJvcHJpYXRlIHR5cGUsIGFuZCBhbHNvIGF2
b2lkIHNldHRpbmcKKyAgICAvLyB1bmtub3duIGtleXMgdG8gYXZvaWQgYWJvcnRpbmcgdGhlIGV4
ZWN1dGlvbi4KKyAgICBpZiAoa2V5ID09ICJyZXNvdXJjZVRyYWNraW5nRW5hYmxlZCIgfHwga2V5
ID09ICJ4aHJNb25pdG9yIgorICAgICAgICB8fCBrZXkgPT0gImRlYnVnZ2VyRW5hYmxlZCIgfHwg
a2V5ID09ICJwcm9maWxlckVuYWJsZWQiKQorICAgICAgICB2YXJpYW50ID0gYWRvcHRHUmVmKHZh
cmlhbnRGcm9tVHJ1dGhTdHJpbmcodmFsdWUpKTsKKyAgICBlbHNlIGlmIChrZXkgPT0gImZyb250
ZW5kU2V0dGluZ3MiKQorICAgICAgICB2YXJpYW50ID0gYWRvcHRHUmVmKGdfdmFyaWFudF9uZXdf
c3RyaW5nKHZhbHVlLnV0ZjgoKS5kYXRhKCkpKTsKKworICAgIGlmICghdmFyaWFudCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZ19zZXR0aW5nc19zZXRfdmFsdWUoc2V0dGluZ3MsIHRvR1NldHRp
bmdOYW1lKGtleSkudXRmOCgpLmRhdGEoKSwgdmFyaWFudC5nZXQoKSk7Cit9CisjZWxzZQordm9p
ZCBJbnNwZWN0b3JDbGllbnQ6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBTdHJpbmcq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50Ojpz
dG9yZVNldHRpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQorI2VuZGlmIC8vIEhBVkVfR1NFVFRJTkdTCiAKIGJvb2wgSW5zcGVjdG9y
Q2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAppbmRleCA0MWRlNzZlLi5kZGJlNDMyIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUg
IldlYktpdERPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCIK
ICNpbmNsdWRlICJ3ZWJraXRzb3VwYXV0aGRpYWxvZy5oIgorI2luY2x1ZGUgIndlYmtpdHZlcnNp
b24uaCIKICNpbmNsdWRlIDxsaWJpbnRsLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC0yMTQsNiArMjE1LDQ1IEBAIHN0
YXRpYyB2b2lkIGNsb3NlSWNvbkRhdGFiYXNlT25FeGl0KCkKICAgICBpY29uRGF0YWJhc2UoKS0+
Y2xvc2UoKTsKIH0KIAorI2lmIEhBVkVfR1NFVFRJTkdTCitzdGF0aWMgYm9vbCBpc1NjaGVtYUF2
YWlsYWJsZShjaGFyKiBzY2hlbWFJRCkKK3sKKyAgICBjb25zdCBjaGFyKiBjb25zdCogYXZhaWxh
YmxlU2NoZW1hcyA9IGdfc2V0dGluZ3NfbGlzdF9zY2hlbWFzKCk7CisgICAgY2hhciogY29uc3Qq
IGl0ZXIgPSBjb25zdF9jYXN0PGNoYXIqIGNvbnN0Kj4oYXZhaWxhYmxlU2NoZW1hcyk7CisKKyAg
ICB3aGlsZSAoKml0ZXIgIT0gTlVMTCkgeworICAgICAgICBpZiAoZ19zdHJfZXF1YWwoc2NoZW1h
SUQsICppdGVyKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpdGVyKys7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitHU2V0dGluZ3MqIGluc3BlY3RvckdTZXR0
aW5ncygpCit7CisgICAgc3RhdGljIEdTZXR0aW5ncyogc2V0dGluZ3MgPSAwOworCisgICAgaWYg
KHNldHRpbmdzKQorICAgICAgICByZXR1cm4gc2V0dGluZ3M7CisKKyAgICBHT3duUHRyPGdjaGFy
PiBzY2hlbWFJRChnX3N0cmR1cF9wcmludGYoIm9yZy53ZWJraXRndGstJS4xZi5pbnNwZWN0b3Ii
LCBXRUJLSVRHVEtfQVBJX1ZFUlNJT04pKTsKKworICAgIC8vIFVuZm9ydHVuYXRlbHkgR1NldHRp
bmdzIHdpbGwgYWJvcnQgdGhlIHByb2Nlc3MgZXhlY3V0aW9uIGlmIHRoZQorICAgIC8vIHNjaGVt
YSBpcyBub3QgaW5zdGFsbGVkLCB3aGljaCBpcyB0aGUgY2FzZSBmb3Igd2hlbiBydW5uaW5nCisg
ICAgLy8gdGVzdHMsIG9yIGV2ZW4gdGhlIGludHJvc3BlY3Rpb24gZHVtcCBhdCBidWlsZCB0aW1l
LCBzbyBjaGVjaworICAgIC8vIGlmIHdlIGhhdmUgdGhlIHNjaGVtYSBiZWZvcmUgdHJ5aW5nIHRv
IGluaXRpYWxpemUgaXQuCisgICAgaWYgKCFpc1NjaGVtYUF2YWlsYWJsZShzY2hlbWFJRC5nZXQo
KSkpIHsKKyAgICAgICAgZ193YXJuaW5nKCJHU2V0dGluZ3Mgc2NoZW1hIG5vdCBmb3VuZCAtIHNl
dHRpbmdzIHdpbGwgbm90IGJlIHVzZWQgb3Igc2F2ZWQuIik7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKworICAgIHNldHRpbmdzID0gZ19zZXR0aW5nc19uZXcoc2NoZW1hSUQuZ2V0KCkpOwor
CisgICAgcmV0dXJuIHNldHRpbmdzOworfQorI2VuZGlmCisKIHZvaWQgd2Via2l0X2luaXQoKQog
ewogICAgIHN0YXRpYyBib29sIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTsKQEAgLTIzOCw2ICsyNzgs
MTIgQEAgdm9pZCB3ZWJraXRfaW5pdCgpCiAgICAgLy8gRklYTUU6IEV4cG9zZSB0aGlzIHdpdGgg
YW4gQVBJIGFuZC9vciBjYWxjdWxhdGUgYmFzZWQgb24gYXZhaWxhYmxlIHJlc291cmNlcwogICAg
IHdlYmtpdF9zZXRfY2FjaGVfbW9kZWwoV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSKTsK
IAorI2lmIEhBVkVfR1NFVFRJTkdTCisgICAgLy8gSW5pdGlhbGl6ZSBzZXR0aW5ncyB2YXJpYWJs
ZXMgaGVyZSB0byBtYWtlIHN1cmUgdGhpcyBoYXBwZW5zIGluCisgICAgLy8gdGhlIG1haW4gdGhy
ZWFkLgorICAgIGluc3BlY3RvckdTZXR0aW5ncygpOworI2VuZGlmCisKICNpZiBFTkFCTEUoREFU
QUJBU0UpCiAgICAgZ2NoYXIqIGRhdGFiYXNlRGlyZWN0b3J5ID0gZ19idWlsZF9maWxlbmFtZShn
X2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXQiLCAiZGF0YWJhc2VzIiwgTlVMTCk7CiAgICAg
d2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgoZGF0YWJhc2VEaXJlY3Rvcnkp
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IGE2ZTAwNzIuLjRmNWExMTkgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTEyMCw2ICsxMjAsMTAgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBleHRlcm4gIkMiIHsKICAgICB2b2lkIHdlYmtpdF9pbml0KCk7CiAKKyNpZiBIQVZF
X0dTRVRUSU5HUworICAgIEdTZXR0aW5ncyogaW5zcGVjdG9yR1NldHRpbmdzKCk7CisjZW5kaWYK
KwogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBREFCTEUgKChHUGFyYW1GbGFncykoR19QQVJBTV9S
RUFEQUJMRXxHX1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9T
VEFUSUNfQkxVUkIpKQogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFICgoR1BhcmFtRmxh
Z3MpKEdfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1fU1RBVElDX05BTUV8R19QQVJBTV9TVEFUSUNf
TklDS3xHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBi
L2NvbmZpZ3VyZS5hYwppbmRleCAzNjVkZTcyLi44OTdmZDAyIDEwMDY0NAotLS0gYS9jb25maWd1
cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yNjAsNiArMjYwLDE1IEBAIEVOQ0hBTlRfUkVR
VUlSRURfVkVSU0lPTj0wLjIyCiAjIHRvZG86IHdlYmNvcmUgZ3RrCiBXRUJLSVRfQ0hFQ0tfREVQ
RU5ERU5DSUVTKFtnbGliIHVuaWNvZGVdKQogCisjIENoZWNrIGlmIHdlIGNhbiB1c2UgR1NldHRp
bmdzCitQS0dfQ0hFQ0tfTU9EVUxFUyhbR1NFVFRJTkdTXSwKKyAgICAgICAgICAgICAgICAgIFtn
aW8tMi4wID49IDIuMjUuMF0sCisgICAgICAgICAgICAgICAgICBbaGF2ZV9nc2V0dGluZ3M9eWVz
XSwKKyAgICAgICAgICAgICAgICAgIFtoYXZlX2dzZXR0aW5ncz1ub10pCitpZiB0ZXN0ICIkaGF2
ZV9nc2V0dGluZ3MiID0gInllcyI7IHRoZW4KKyAgIEFDX0RFRklORShbSEFWRV9HU0VUVElOR1Nd
LCAxLCBbV2hldGhlciB3ZSBjYW4gdXNlIEdTZXR0aW5nc10pCitmaQorCiBHRVRURVhUX1BBQ0tB
R0U9JFBBQ0tBR0UtJEdUS19BUElfVkVSU0lPTgogQUNfU1VCU1QoR0VUVEVYVF9QQUNLQUdFKQog
QUNfREVGSU5FX1VOUVVPVEVEKEdFVFRFWFRfUEFDS0FHRSwiJEdFVFRFWFRfUEFDS0FHRSIsCkBA
IC04MjUsNiArODM0LDkgQEAgaWYgdGVzdCAiJGVuYWJsZV9nZW9sb2NhdGlvbiIgPSAieWVzIjsg
dGhlbgogICAgIEFDX1NVQlNUKFtHRU9DTFVFX0xJQlNdKQogZmkKIAorIyBHU2V0dGluZ3MKK0dM
SUJfR1NFVFRJTkdTCisKICMgY2hlY2sgaWYgZ3N0cmVhbWVyIGlzIGF2YWlsYWJsZQogaWYgdGVz
dCAiJGVuYWJsZV92aWRlbyIgPSAieWVzIjsgdGhlbgogICAgUEtHX0NIRUNLX01PRFVMRVMoW0dT
VFJFQU1FUl0sCkBAIC04NzQsNiArODg2LDkgQEAgQU1fQ09ORElUSU9OQUwoW1VTRV9HTElCX1VO
SUNPREVdLCBbdGVzdCAiJHdpdGhfdW5pY29kZV9iYWNrZW5kIiA9ICJnbGliIl0pCiBBTV9DT05E
SVRJT05BTChbVVNFX0ZSRUVUWVBFXSwgW3Rlc3QgIiR3aXRoX2ZvbnRfYmFja2VuZCIgPSAiZnJl
ZXR5cGUiXSkKIEFNX0NPTkRJVElPTkFMKFtVU0VfUEFOR09dLCBbdGVzdCAiJHdpdGhfZm9udF9i
YWNrZW5kIiA9ICJwYW5nbyJdKQogCisjIEdMaWIvR0lPIGZlYXR1cmUgY29uZGl0aW9uYWxzCitB
TV9DT05ESVRJT05BTChbVVNFX0dTRVRUSU5HU10sIFt0ZXN0ICIkaGF2ZV9nc2V0dGluZ3MiID0g
InllcyJdKQorCiAjIFdlYktpdCBmZWF0dXJlIGNvbmRpdGlvbmFscwogQU1fQ09ORElUSU9OQUwo
W0VOQUJMRV9ERUJVR10sW3Rlc3QgIiRlbmFibGVfZGVidWciID0gInllcyJdKQogQU1fQ09ORElU
SU9OQUwoW0VOQUJMRV8zRF9UUkFOU0ZPUk1TXSxbdGVzdCAiJGVuYWJsZV8zRF90cmFuc2Zvcm1z
IiA9ICJ5ZXMiXSkKQEAgLTkzNCw3ICs5NDksOSBAQCBXZWJLaXQvZ3RrL2RvY3MvdmVyc2lvbi54
bWwKIAogQUNfQ09ORklHX0ZJTEVTKFsKIFdlYktpdC9ndGsvJHtXRUJLSVRHVEtfUENfTkFNRX0t
JHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059LnBjOldlYktpdC9ndGsvd2Via2l0LnBjLmluCi1XZWJL
aXQvZ3RrL0pTQ29yZS0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0uZ2lyOldlYktpdC9ndGsvSlND
b3JlLmdpci5pbl0KK1dlYktpdC9ndGsvSlNDb3JlLSR7V0VCS0lUR1RLX0FQSV9WRVJTSU9OfS5n
aXI6V2ViS2l0L2d0ay9KU0NvcmUuZ2lyLmluCitXZWJLaXQvZ3RrL29yZy53ZWJraXRndGstJHtX
RUJLSVRHVEtfQVBJX1ZFUlNJT059LmdzY2hlbWEueG1sOldlYktpdC9ndGsvb3JnLndlYmtpdGd0
ay5nc2NoZW1hLnhtbC5pbgorXQogLFtXRUJLSVRHVEtfQVBJX1ZFUlNJT049JFdFQktJVEdUS19B
UElfVkVSU0lPTixXRUJLSVRHVEtfUENfTkFNRT0kV0VCS0lUR1RLX1BDX05BTUVdCiApCiAKLS0g
CjEuNy4xCgo=
</data>
<flag name="review"
          id="52745"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>