<?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>103846</bug_id>
          
          <creation_ts>2012-12-02 16:48:21 -0800</creation_ts>
          <short_desc>Add ObjC API for setting initialization data for the WKWebProcessPlugIn</short_desc>
          <delta_ts>2013-04-13 19:11:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>781049</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-02 16:48:21 -0800</bug_when>
    <thetext>Add ObjC API for setting initialization data for the WKWebProcessPlugIn</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781050</commentid>
    <comment_count>1</comment_count>
      <attachid>177162</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-02 16:53:24 -0800</bug_when>
    <thetext>Created attachment 177162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781052</commentid>
    <comment_count>2</comment_count>
      <attachid>177163</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-02 16:58:27 -0800</bug_when>
    <thetext>Created attachment 177163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781565</commentid>
    <comment_count>3</comment_count>
      <attachid>177163</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-03 09:58:20 -0800</bug_when>
    <thetext>Comment on attachment 177163
Patch

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

&gt; Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm:76
&gt; +    if ([processGroup.delegate respondsToSelector:@selector(processGroupWillCreateConnectionToWebProcessPlugIn:)]) {

I suggest using early return here instead of nesting everything inside an if statement.

&gt; Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm:78
&gt; +        RetainPtr&lt;id&gt; initializationUserData = [processGroup.delegate processGroupWillCreateConnectionToWebProcessPlugIn:processGroup];
&gt; +        RefPtr&lt;WebKit::ObjCObjectGraph&gt; wkMessageBody = WebKit::ObjCObjectGraph::create(initializationUserData.get());

I don’t think we need a RetainPtr for the return value from a method that is just passed on to another function and then dropped. I suggest either using the type &quot;id&quot; here instead, or not using a local variable at all.

Also, why is the message body called wkMessageBody instead of just body or messageBody?

&gt; Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm:79
&gt; +        return (WKTypeRef)wkMessageBody.release().leakRef();

Can we come up with some type checked cast for use in cases like this rather than using a straight C cast?

&gt; Source/WebKit2/UIProcess/API/mac/WKProcessGroup.mm:85
&gt; +static void setUpInectedBundleClient(WKProcessGroup *processGroup, WKContextRef contextRef)

Typo here: &quot;inected&quot;.

&gt; Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:114
&gt; +        RetainPtr&lt;id&gt; objCInitializationUserData;
&gt; +        if (initializationUserData &amp;&amp; initializationUserData-&gt;type() == APIObject::TypeObjCObjectGraph)
&gt; +            objCInitializationUserData = static_cast&lt;ObjCObjectGraph*&gt;(initializationUserData)-&gt;rootObject();
&gt; +        [instance webProcessPlugIn:[WKWebProcessPlugInController _shared] initializeWithObject:objCInitializationUserData.get()];

Use of RetainPtr is OK here if the return type of rootObject is a RetainPtr. But if not, then I suggest just using &quot;id&quot; rather than &quot;RetainPtr&lt;id&gt;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875263</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-04-13 19:11:28 -0700</bug_when>
    <thetext>Committed r148376: &lt;http://trac.webkit.org/changeset/148376&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177162</attachid>
            <date>2012-12-02 16:53:24 -0800</date>
            <delta_ts>2012-12-02 16:58:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103846-20121202165056.patch</filename>
            <type>text/plain</type>
            <size>7283</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjM1NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEyLTAyICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIE9iakMgQVBJIGZvciBzZXR0aW5n
IGluaXRpYWxpemF0aW9uIGRhdGEgZm9yIHRoZSBXS1dlYlByb2Nlc3NQbHVnSW4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvV0tQcm9jZXNzR3JvdXAuaDoKKyAgICAgICAgQWRkcyBhIG5ldyBvcHRpb25hbCBwcm9jZXNz
R3JvdXBXaWxsQ3JlYXRlQ29ubmVjdGlvblRvV2ViUHJvY2Vzc1BsdWdJbjogbWV0aG9kIGZvciB0
aGUgV0tQcm9jZXNzR3JvdXBEZWxlZ2F0ZSBwcm90b2NvbCwKKyAgICAgICAgd2hpY2ggYWxsb3dz
IHRoZSB1c2VyIHRvIHBhc3MgKHZpYSBhbiBhdXRvcmVsZWFzZWQgcmV0dXJuIHZhbHVlKSBpbml0
aWFsaXphdGlvbiBkYXRhIHRvIHRoZSB3ZWIgcHJvY2VzcyBwbHVnaW4uCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL21hYy9XS1Byb2Nlc3NHcm91cC5tbToKKyAgICAgICAgKGdldEluamVjdGVk
QnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk6CisgICAgICAgIChzZXRVcEluZWN0ZWRCdW5k
bGVDbGllbnQpOgorICAgICAgICAoLVtXS1Byb2Nlc3NHcm91cCBpbml0V2l0aEluamVjdGVkQnVu
ZGxlVVJMOl0pOgorICAgICAgICAoLVtXS1Byb2Nlc3NHcm91cCBkZWFsbG9jXSk6CisgICAgICAg
IFVzZSB0aGUgZXhpc3RpbmcgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQgaW5mcmFzdHJ1
Y3R1cmUgdG8gcGFzcyB0aGUgaW5pdGlhbGl6YXRpb24gZGF0YSB0byB0aGUgYnVuZGxlCisgICAg
ICAgIHZpYSB0aGUgbmV3IE9iakNPYmplY3RHcmFwaCBBUElPYmplY3QuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmg6Cisg
ICAgICAgIEFkZHMgd2ViUHJvY2Vzc1BsdWdJbjppbml0aWFsaXplV2l0aERhdGE6IHRvIHRoZSBX
S1dlYlByb2Nlc3NQbHVnSW4gcHJvdG9jb2wsIHJlcGxhY2luZyB3ZWJQcm9jZXNzUGx1Z0luSW5p
dGlhbGl6ZTouCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9Jbmpl
Y3RlZEJ1bmRsZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OmxvYWQp
OgorICAgICAgICBQYXNzIHRoZSBpbml0aWFsaXphdGlvbiBkYXRhIHRvIHRoZSB3ZWIgcHJvY2Vz
cyBwbHVnaW4uCisKIDIwMTItMTItMDIgIFNlb2tqdSBLd29uICA8c2Vva2p1Lmt3b25AZ21haWwu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBXZWJTb2NrZXRTZXJ2ZXJHdGsuY3BwIGFzIFdlYlNvY2tl
dFNlcnZlclNvdXAuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1Byb2Nlc3NHcm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLUHJvY2Vzc0dyb3VwLmgJKHJldmlzaW9uIDEzNjM1NCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJvY2Vzc0dyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDYgKzI5LDExIEBACiBAY2xhc3MgV0tQcm9jZXNzR3JvdXAsIFdLUHJvY2Vzc0dyb3VwRGF0
YSwgV0tDb25uZWN0aW9uOwogCiBAcHJvdG9jb2wgV0tQcm9jZXNzR3JvdXBEZWxlZ2F0ZSA8TlNP
YmplY3Q+CitAb3B0aW9uYWwKKworLSAoaWQpcHJvY2Vzc0dyb3VwV2lsbENyZWF0ZUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NQbHVnSW46KFdLUHJvY2Vzc0dyb3VwICopcHJvY2Vzc0dyb3VwOworCitA
cmVxdWlyZWQKIAogLSAodm9pZClwcm9jZXNzR3JvdXA6KFdLUHJvY2Vzc0dyb3VwICopcHJvY2Vz
c0dyb3VwIGRpZENyZWF0ZUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NQbHVnSW46KFdLQ29ubmVjdGlv
biAqKWNvbm5lY3Rpb247CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLUHJvY2Vzc0dyb3VwLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLUHJvY2Vzc0dyb3VwLm1tCShyZXZpc2lvbiAxMzYzNTQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Byb2Nlc3NHcm91cC5tbQkod29ya2luZyBjb3B5
KQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXAuaCIKICNpbXBvcnQg
IldLUHJvY2Vzc0dyb3VwSW50ZXJuYWwuaCIKIAorI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgi
CiAjaW1wb3J0ICJXS0Nvbm5lY3Rpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tDb250ZXh0Lmgi
CiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgpAQCAtNjksNiArNzAsMzAgQEAgc3RhdGljIHZvaWQg
c2V0VXBDb25uZWN0aW9uQ2xpZW50KFdLUHJvYwogICAgIFdLQ29udGV4dFNldENvbm5lY3Rpb25D
bGllbnQoY29udGV4dFJlZiwgJmNvbm5lY3Rpb25DbGllbnQpOwogfQogCitzdGF0aWMgV0tUeXBl
UmVmIGdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YShXS0NvbnRleHRSZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgV0tQcm9jZXNzR3JvdXAgKnByb2Nlc3NH
cm91cCA9IChXS1Byb2Nlc3NHcm91cCAqKWNsaWVudEluZm87CisgICAgaWYgKFtwcm9jZXNzR3Jv
dXAuZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihwcm9jZXNzR3JvdXBXaWxs
Q3JlYXRlQ29ubmVjdGlvblRvV2ViUHJvY2Vzc1BsdWdJbjopXSkgeworICAgICAgICBSZXRhaW5Q
dHI8aWQ+IGluaXRpYWxpemF0aW9uVXNlckRhdGEgPSBbcHJvY2Vzc0dyb3VwLmRlbGVnYXRlIHBy
b2Nlc3NHcm91cFdpbGxDcmVhdGVDb25uZWN0aW9uVG9XZWJQcm9jZXNzUGx1Z0luOnByb2Nlc3NH
cm91cF07CisgICAgICAgIFJlZlB0cjxXZWJLaXQ6Ok9iakNPYmplY3RHcmFwaD4gd2tNZXNzYWdl
Qm9keSA9IFdlYktpdDo6T2JqQ09iamVjdEdyYXBoOjpjcmVhdGUoaW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YS5nZXQoKSk7CisgICAgICAgIHJldHVybiAoV0tUeXBlUmVmKXdrTWVzc2FnZUJvZHkucmVs
ZWFzZSgpLmxlYWtSZWYoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZv
aWQgc2V0VXBJbmVjdGVkQnVuZGxlQ2xpZW50KFdLUHJvY2Vzc0dyb3VwICpwcm9jZXNzR3JvdXAs
IFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50IGluamVjdGVkQnVuZGxlQ2xpZW50OworICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVD
bGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOworCisgICAgaW5qZWN0ZWRC
dW5kbGVDbGllbnQudmVyc2lvbiA9IGtXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudEN1cnJl
bnRWZXJzaW9uOworICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LmNsaWVudEluZm8gPSBwcm9jZXNz
R3JvdXA7CisgICAgaW5qZWN0ZWRCdW5kbGVDbGllbnQuZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhID0gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRh
OworCisgICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dFJlZiwgJmlu
amVjdGVkQnVuZGxlQ2xpZW50KTsKK30KKwogLSAoaWQpaW5pdAogewogICAgIHJldHVybiBbc2Vs
ZiBpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOm5pbF07CkBAIC04OCw2ICsxMTMsNyBAQCAtIChp
ZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqCiAgICAgICAgIF9kYXRhLT5fY29u
dGV4dFJlZiA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlKCkpOwogCiAgICAgc2V0VXBDb25uZWN0
aW9uQ2xpZW50KHNlbGYsIF9kYXRhLT5fY29udGV4dFJlZi5nZXQoKSk7CisgICAgc2V0VXBJbmVj
dGVkQnVuZGxlQ2xpZW50KHNlbGYsIF9kYXRhLT5fY29udGV4dFJlZi5nZXQoKSk7CiAKICAgICBy
ZXR1cm4gc2VsZjsKIH0KQEAgLTk1LDYgKzEyMSw3IEBAIC0gKGlkKWluaXRXaXRoSW5qZWN0ZWRC
dW5kbGVVUkw6KE5TVVJMICoKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFdLQ29udGV4dFNldENv
bm5lY3Rpb25DbGllbnQoX2RhdGEtPl9jb250ZXh0UmVmLmdldCgpLCAwKTsKKyAgICBXS0NvbnRl
eHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChfZGF0YS0+X2NvbnRleHRSZWYuZ2V0KCksIDApOwog
CiAgICAgW19kYXRhIHJlbGVhc2VdOwogICAgIFtzdXBlciBkZWFsbG9jXTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQ
bHVnSW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmgJKHJldmlzaW9uIDEzNjM1NCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsMTIgQEAKIAogQHByb3Rv
Y29sIFdLV2ViUHJvY2Vzc1BsdWdJbiA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKLS0gKHZvaWQpd2Vi
UHJvY2Vzc1BsdWdJbkluaXRpYWxpemU6KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilw
bHVnSW5Db250cm9sbGVyOworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQ
bHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBpbml0aWFsaXplV2l0aERhdGE6KGlk
KWluaXRpYWxpemF0aW9uRGF0YTsKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9j
ZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRlQnJvd3NlckNv
bnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXI7CiAtICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46
KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIHdpbGxEZXN0
cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisKKy0gKHZvaWQpd2Vi
UHJvY2Vzc1BsdWdJbkluaXRpYWxpemU6KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilw
bHVnSW5Db250cm9sbGVyIERFUFJFQ0FURURfQVRUUklCVVRFOworCiBAZW5kCiAKIFdLX0VYUE9S
VApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5q
ZWN0ZWRCdW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0JKHJldmlzaW9uIDEzNjM1
NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVj
dGVkQnVuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsMTAgQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGUuaCIKIAorI2ltcG9ydCAiT2Jq
Q09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbXBvcnQgIldL
QnVuZGxlSW5pdGlhbGl6ZS5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSW50ZXJuYWwu
aCIKLQogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0J1bmRsZS5oPgogI2ltcG9ydCA8c3RkaW8uaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwNyw3ICsxMDcsMTIgQEAgYm9vbCBJbmpl
Y3RlZEJ1bmRsZTo6bG9hZChBUElPYmplY3QqIGluaQogICAgIC8vIENyZWF0ZSB0aGUgc2hhcmVk
IFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIuCiAgICAgW1tXS1dlYlByb2Nlc3NQbHVnSW5D
b250cm9sbGVyIGFsbG9jXSBfaW5pdFdpdGhQcmluY2lwYWxDbGFzc0luc3RhbmNlOmluc3RhbmNl
IGJ1bmRsZVJlZjp0b0FQSSh0aGlzKV07CiAKLSAgICBpZiAoW2luc3RhbmNlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkluaXRpYWxpemU6KV0pCisgICAgaWYg
KFtpbnN0YW5jZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlByb2Nlc3NQbHVnSW46
aW5pdGlhbGl6ZVdpdGhEYXRhOildKSB7CisgICAgICAgIFJldGFpblB0cjxpZD4gb2JqQ0luaXRp
YWxpemF0aW9uVXNlckRhdGE7CisgICAgICAgIGlmIChpbml0aWFsaXphdGlvblVzZXJEYXRhICYm
IGluaXRpYWxpemF0aW9uVXNlckRhdGEtPnR5cGUoKSA9PSBBUElPYmplY3Q6OlR5cGVPYmpDT2Jq
ZWN0R3JhcGgpCisgICAgICAgICAgICBvYmpDSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSA9IHN0YXRp
Y19jYXN0PE9iakNPYmplY3RHcmFwaCo+KGluaXRpYWxpemF0aW9uVXNlckRhdGEpLT5yb290T2Jq
ZWN0KCk7CisgICAgICAgIFtpbnN0YW5jZSB3ZWJQcm9jZXNzUGx1Z0luOltXS1dlYlByb2Nlc3NQ
bHVnSW5Db250cm9sbGVyIF9zaGFyZWRdIGluaXRpYWxpemVXaXRoRGF0YTpvYmpDSW5pdGlhbGl6
YXRpb25Vc2VyRGF0YS5nZXQoKV07CisgICAgfSBlbHNlIGlmIChbaW5zdGFuY2UgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJQcm9jZXNzUGx1Z0luSW5pdGlhbGl6ZTopXSkKICAgICAg
ICAgW2luc3RhbmNlIHdlYlByb2Nlc3NQbHVnSW5Jbml0aWFsaXplOltXS1dlYlByb2Nlc3NQbHVn
SW5Db250cm9sbGVyIF9zaGFyZWRdXTsKIAogICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177163</attachid>
            <date>2012-12-02 16:58:27 -0800</date>
            <delta_ts>2012-12-03 09:58:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103846-20121202165600.patch</filename>
            <type>text/plain</type>
            <size>7293</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjM1NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEyLTAyICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIE9iakMgQVBJIGZvciBzZXR0aW5n
IGluaXRpYWxpemF0aW9uIGRhdGEgZm9yIHRoZSBXS1dlYlByb2Nlc3NQbHVnSW4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzg0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvV0tQcm9jZXNzR3JvdXAuaDoKKyAgICAgICAgQWRkcyBhIG5ldyBvcHRpb25hbCBwcm9jZXNz
R3JvdXBXaWxsQ3JlYXRlQ29ubmVjdGlvblRvV2ViUHJvY2Vzc1BsdWdJbjogbWV0aG9kIGZvciB0
aGUgV0tQcm9jZXNzR3JvdXBEZWxlZ2F0ZSBwcm90b2NvbCwKKyAgICAgICAgd2hpY2ggYWxsb3dz
IHRoZSB1c2VyIHRvIHBhc3MgKHZpYSBhbiBhdXRvcmVsZWFzZWQgcmV0dXJuIHZhbHVlKSBpbml0
aWFsaXphdGlvbiBkYXRhIHRvIHRoZSB3ZWIgcHJvY2VzcyBwbHVnaW4uCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL21hYy9XS1Byb2Nlc3NHcm91cC5tbToKKyAgICAgICAgKGdldEluamVjdGVk
QnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk6CisgICAgICAgIChzZXRVcEluZWN0ZWRCdW5k
bGVDbGllbnQpOgorICAgICAgICAoLVtXS1Byb2Nlc3NHcm91cCBpbml0V2l0aEluamVjdGVkQnVu
ZGxlVVJMOl0pOgorICAgICAgICAoLVtXS1Byb2Nlc3NHcm91cCBkZWFsbG9jXSk6CisgICAgICAg
IFVzZSB0aGUgZXhpc3RpbmcgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQgaW5mcmFzdHJ1
Y3R1cmUgdG8gcGFzcyB0aGUgaW5pdGlhbGl6YXRpb24gZGF0YSB0byB0aGUgYnVuZGxlCisgICAg
ICAgIHZpYSB0aGUgbmV3IE9iakNPYmplY3RHcmFwaCBBUElPYmplY3QuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmg6Cisg
ICAgICAgIEFkZHMgd2ViUHJvY2Vzc1BsdWdJbjppbml0aWFsaXplV2l0aE9iamVjdDogdG8gdGhl
IFdLV2ViUHJvY2Vzc1BsdWdJbiBwcm90b2NvbCwgcmVwbGFjaW5nIHdlYlByb2Nlc3NQbHVnSW5J
bml0aWFsaXplOi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0lu
amVjdGVkQnVuZGxlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6bG9h
ZCk6CisgICAgICAgIFBhc3MgdGhlIGluaXRpYWxpemF0aW9uIGRhdGEgdG8gdGhlIHdlYiBwcm9j
ZXNzIHBsdWdpbi4KKwogMjAxMi0xMi0wMiAgU2Vva2p1IEt3b24gIDxzZW9ranUua3dvbkBnbWFp
bC5jb20+CiAKICAgICAgICAgUmVuYW1lIFdlYlNvY2tldFNlcnZlckd0ay5jcHAgYXMgV2ViU29j
a2V0U2VydmVyU291cC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLUHJvY2Vzc0dyb3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tQcm9jZXNzR3JvdXAuaAkocmV2aXNpb24gMTM2MzU0KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcm9jZXNzR3JvdXAuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksMTEgQEAKIEBjbGFzcyBXS1Byb2Nlc3NHcm91cCwgV0tQcm9jZXNzR3JvdXBE
YXRhLCBXS0Nvbm5lY3Rpb247CiAKIEBwcm90b2NvbCBXS1Byb2Nlc3NHcm91cERlbGVnYXRlIDxO
U09iamVjdD4KK0BvcHRpb25hbAorCistIChpZClwcm9jZXNzR3JvdXBXaWxsQ3JlYXRlQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc1BsdWdJbjooV0tQcm9jZXNzR3JvdXAgKilwcm9jZXNzR3JvdXA7CisK
K0ByZXF1aXJlZAogCiAtICh2b2lkKXByb2Nlc3NHcm91cDooV0tQcm9jZXNzR3JvdXAgKilwcm9j
ZXNzR3JvdXAgZGlkQ3JlYXRlQ29ubmVjdGlvblRvV2ViUHJvY2Vzc1BsdWdJbjooV0tDb25uZWN0
aW9uICopY29ubmVjdGlvbjsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tQcm9jZXNzR3JvdXAubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tQcm9jZXNzR3JvdXAubW0JKHJldmlzaW9uIDEzNjM1NCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJvY2Vzc0dyb3VwLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cC5oIgogI2ltcG9y
dCAiV0tQcm9jZXNzR3JvdXBJbnRlcm5hbC5oIgogCisjaW1wb3J0ICJPYmpDT2JqZWN0R3JhcGgu
aCIKICNpbXBvcnQgIldLQ29ubmVjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJXS0NvbnRleHQu
aCIKICNpbXBvcnQgIldLUmV0YWluUHRyLmgiCkBAIC02OSw2ICs3MCwzMCBAQCBzdGF0aWMgdm9p
ZCBzZXRVcENvbm5lY3Rpb25DbGllbnQoV0tQcm9jCiAgICAgV0tDb250ZXh0U2V0Q29ubmVjdGlv
bkNsaWVudChjb250ZXh0UmVmLCAmY29ubmVjdGlvbkNsaWVudCk7CiB9CiAKK3N0YXRpYyBXS1R5
cGVSZWYgZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhKFdLQ29udGV4dFJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXS1Byb2Nlc3NHcm91cCAqcHJvY2Vz
c0dyb3VwID0gKFdLUHJvY2Vzc0dyb3VwICopY2xpZW50SW5mbzsKKyAgICBpZiAoW3Byb2Nlc3NH
cm91cC5kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHByb2Nlc3NHcm91cFdp
bGxDcmVhdGVDb25uZWN0aW9uVG9XZWJQcm9jZXNzUGx1Z0luOildKSB7CisgICAgICAgIFJldGFp
blB0cjxpZD4gaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSA9IFtwcm9jZXNzR3JvdXAuZGVsZWdhdGUg
cHJvY2Vzc0dyb3VwV2lsbENyZWF0ZUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NQbHVnSW46cHJvY2Vz
c0dyb3VwXTsKKyAgICAgICAgUmVmUHRyPFdlYktpdDo6T2JqQ09iamVjdEdyYXBoPiB3a01lc3Nh
Z2VCb2R5ID0gV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6OmNyZWF0ZShpbml0aWFsaXphdGlvblVz
ZXJEYXRhLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIChXS1R5cGVSZWYpd2tNZXNzYWdlQm9keS5y
ZWxlYXNlKCkubGVha1JlZigpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMg
dm9pZCBzZXRVcEluZWN0ZWRCdW5kbGVDbGllbnQoV0tQcm9jZXNzR3JvdXAgKnByb2Nlc3NHcm91
cCwgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5k
bGVDbGllbnQgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7CisgICAgbWVtc2V0KCZpbmplY3RlZEJ1bmRs
ZUNsaWVudCwgMCwgc2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CisKKyAgICBpbmplY3Rl
ZEJ1bmRsZUNsaWVudC52ZXJzaW9uID0ga1dLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50Q3Vy
cmVudFZlcnNpb247CisgICAgaW5qZWN0ZWRCdW5kbGVDbGllbnQuY2xpZW50SW5mbyA9IHByb2Nl
c3NHcm91cDsKKyAgICBpbmplY3RlZEJ1bmRsZUNsaWVudC5nZXRJbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGEgPSBnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGE7CisKKyAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0UmVmLCAm
aW5qZWN0ZWRCdW5kbGVDbGllbnQpOworfQorCiAtIChpZClpbml0CiB7CiAgICAgcmV0dXJuIFtz
ZWxmIGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6bmlsXTsKQEAgLTg4LDYgKzExMyw3IEBAIC0g
KGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICoKICAgICAgICAgX2RhdGEtPl9j
b250ZXh0UmVmID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUoKSk7CiAKICAgICBzZXRVcENvbm5l
Y3Rpb25DbGllbnQoc2VsZiwgX2RhdGEtPl9jb250ZXh0UmVmLmdldCgpKTsKKyAgICBzZXRVcElu
ZWN0ZWRCdW5kbGVDbGllbnQoc2VsZiwgX2RhdGEtPl9jb250ZXh0UmVmLmdldCgpKTsKIAogICAg
IHJldHVybiBzZWxmOwogfQpAQCAtOTUsNiArMTIxLDcgQEAgLSAoaWQpaW5pdFdpdGhJbmplY3Rl
ZEJ1bmRsZVVSTDooTlNVUkwgKgogLSAodm9pZClkZWFsbG9jCiB7CiAgICAgV0tDb250ZXh0U2V0
Q29ubmVjdGlvbkNsaWVudChfZGF0YS0+X2NvbnRleHRSZWYuZ2V0KCksIDApOworICAgIFdLQ29u
dGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KF9kYXRhLT5fY29udGV4dFJlZi5nZXQoKSwgMCk7
CiAKICAgICBbX2RhdGEgcmVsZWFzZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vz
c1BsdWdJbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4uaAkocmV2aXNpb24gMTM2MzU0KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2Vi
UHJvY2Vzc1BsdWdJbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw5ICszNCwxMiBAQAogCiBAcHJv
dG9jb2wgV0tXZWJQcm9jZXNzUGx1Z0luIDxOU09iamVjdD4KIEBvcHRpb25hbAotLSAodm9pZCl3
ZWJQcm9jZXNzUGx1Z0luSW5pdGlhbGl6ZTooV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAq
KXBsdWdJbkNvbnRyb2xsZXI7CistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vz
c1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGluaXRpYWxpemVXaXRoT2JqZWN0
OihpZClpbml0aWFsaXphdGlvbk9iamVjdDsKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tX
ZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRlQnJv
d3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXI7CiAtICh2b2lkKXdlYlByb2Nlc3NQ
bHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIHdp
bGxEZXN0cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisKKy0gKHZv
aWQpd2ViUHJvY2Vzc1BsdWdJbkluaXRpYWxpemU6KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xs
ZXIgKilwbHVnSW5Db250cm9sbGVyIERFUFJFQ0FURURfQVRUUklCVVRFOworCiBAZW5kCiAKIFdL
X0VYUE9SVApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9t
YWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0JKHJldmlzaW9u
IDEzNjM1NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFj
L0luamVjdGVkQnVuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsMTAgQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGUuaCIKIAorI2ltcG9y
dCAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbXBv
cnQgIldLQnVuZGxlSW5pdGlhbGl6ZS5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSW50
ZXJuYWwuaCIKLQogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0J1bmRsZS5oPgogI2ltcG9ydCA8c3Rk
aW8uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwNyw3ICsxMDcsMTIgQEAgYm9v
bCBJbmplY3RlZEJ1bmRsZTo6bG9hZChBUElPYmplY3QqIGluaQogICAgIC8vIENyZWF0ZSB0aGUg
c2hhcmVkIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIuCiAgICAgW1tXS1dlYlByb2Nlc3NQ
bHVnSW5Db250cm9sbGVyIGFsbG9jXSBfaW5pdFdpdGhQcmluY2lwYWxDbGFzc0luc3RhbmNlOmlu
c3RhbmNlIGJ1bmRsZVJlZjp0b0FQSSh0aGlzKV07CiAKLSAgICBpZiAoW2luc3RhbmNlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkluaXRpYWxpemU6KV0pCisg
ICAgaWYgKFtpbnN0YW5jZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlByb2Nlc3NQ
bHVnSW46aW5pdGlhbGl6ZVdpdGhPYmplY3Q6KV0pIHsKKyAgICAgICAgUmV0YWluUHRyPGlkPiBv
YmpDSW5pdGlhbGl6YXRpb25Vc2VyRGF0YTsKKyAgICAgICAgaWYgKGluaXRpYWxpemF0aW9uVXNl
ckRhdGEgJiYgaW5pdGlhbGl6YXRpb25Vc2VyRGF0YS0+dHlwZSgpID09IEFQSU9iamVjdDo6VHlw
ZU9iakNPYmplY3RHcmFwaCkKKyAgICAgICAgICAgIG9iakNJbml0aWFsaXphdGlvblVzZXJEYXRh
ID0gc3RhdGljX2Nhc3Q8T2JqQ09iamVjdEdyYXBoKj4oaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkt
PnJvb3RPYmplY3QoKTsKKyAgICAgICAgW2luc3RhbmNlIHdlYlByb2Nlc3NQbHVnSW46W1dLV2Vi
UHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgX3NoYXJlZF0gaW5pdGlhbGl6ZVdpdGhPYmplY3Q6b2Jq
Q0luaXRpYWxpemF0aW9uVXNlckRhdGEuZ2V0KCldOworICAgIH0gZWxzZSBpZiAoW2luc3RhbmNl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkluaXRpYWxpemU6
KV0pCiAgICAgICAgIFtpbnN0YW5jZSB3ZWJQcm9jZXNzUGx1Z0luSW5pdGlhbGl6ZTpbV0tXZWJQ
cm9jZXNzUGx1Z0luQ29udHJvbGxlciBfc2hhcmVkXV07CiAKICAgICByZXR1cm4gdHJ1ZTsK
</data>
<flag name="review"
          id="193184"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>