<?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>44810</bug_id>
          
          <creation_ts>2010-08-27 18:49:21 -0700</creation_ts>
          <short_desc>Add UserContent API to WebKit2 InjectedBundle</short_desc>
          <delta_ts>2010-08-27 19:16:55 -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>WebKit2</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>InRadar</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="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>270886</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-27 18:49:21 -0700</bug_when>
    <thetext>Add UserContent API to WebKit2 InjectedBundle. In the first pass, I will only add it to the InjectedBundle, but we can consider whether we want to provide a convenient  way of doing much of this from the UIProcess if this turns out to be too cumbersome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270888</commentid>
    <comment_count>1</comment_count>
      <attachid>65802</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-27 18:53:13 -0700</bug_when>
    <thetext>Created attachment 65802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270889</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-27 18:58:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/8367587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270893</commentid>
    <comment_count>3</comment_count>
      <attachid>65802</attachid>
    <who name="">mitz</who>
    <bug_when>2010-08-27 19:13:39 -0700</bug_when>
    <thetext>Comment on attachment 65802
Patch

&gt; +static PassOwnPtr&lt;Vector&lt;String&gt; &gt; toStringVector(ImmutableArray* patterns)
&gt; +{
&gt; +    size_t size =  patterns-&gt;size();
&gt; +    if (!size)
&gt; +        return 0;
&gt; +
&gt; +    Vector&lt;String&gt;* patternsVector = new Vector&lt;String&gt;;

Reserve initial capacity here…

&gt; +    for (size_t i = 0; i &lt; size; ++i) {
&gt; +        WebString* entry = patterns-&gt;at&lt;WebString&gt;(i);
&gt; +        if (entry)
&gt; +            patternsVector-&gt;append(entry-&gt;string());

…unchecked append here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270894</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-27 19:16:55 -0700</bug_when>
    <thetext>Landed in r66292.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65802</attachid>
            <date>2010-08-27 18:53:13 -0700</date>
            <delta_ts>2010-08-27 19:13:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>usercontent.diff</filename>
            <type>text/plain</type>
            <size>14017</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjI5MCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTAtMDgtMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVXNl
ckNvbnRlbnQgQVBJIHRvIFdlYktpdDIgSW5qZWN0ZWRCdW5kbGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODEwCisKKyAgICAgICAgVGhlIG5ldyBB
UEkgZGlmZmVycyBmcm9tIHRoZSB2ZXJzaW9uIGluIFdlYktpdDEgaW4gdGhhdCB0aGUgZnVuY3Rp
b24gZG8gbm90IHRha2UKKyAgICAgICAgYSBncm91cCBuYW1lIHNpbmNlIHdlIGN1cnJlbnRseSBk
byBub3QgZXhwb3NlIGEgd2F5IHRvIG1ha2UgbXVsdGlwbGUgUGFnZUdyb3VwcyBpbgorICAgICAg
ICB0aGUgQVBJLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUFQSUNhc3QuaDoKKyAgICAgICAgKHRvVXNlclNjcmlwdEluamVjdGlvblRpbWUpOgor
ICAgICAgICAodG9Vc2VyQ29udGVudEluamVjdGVkRnJhbWVzKToKKyAgICAgICAgQWRkIGNvbnZl
cnNpb24gZnVuY3Rpb25zIGZvciBlbnVtcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAoV0tCdW5kbGVBZGRVc2VyU2Ny
aXB0KToKKyAgICAgICAgKFdLQnVuZGxlQWRkVXNlclN0eWxlU2hlZXQpOgorICAgICAgICAoV0tC
dW5kbGVSZW1vdmVVc2VyU2NyaXB0KToKKyAgICAgICAgKFdLQnVuZGxlUmVtb3ZlVXNlclN0eWxl
U2hlZXQpOgorICAgICAgICAoV0tCdW5kbGVSZW1vdmVVc2VyU2NyaXB0cyk6CisgICAgICAgIChX
S0J1bmRsZVJlbW92ZVVzZXJTdHlsZVNoZWV0cyk6CisgICAgICAgIChXS0J1bmRsZVJlbW92ZUFs
bFVzZXJDb250ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b1N0cmluZ1ZlY3Rvcik6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGU6OnJlbW92ZVVzZXJTY3JpcHQpOgorICAgICAgICAoV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlVXNlclN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlVXNlclNjcmlwdHMpOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZTo6cmVtb3ZlVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFsbFVzZXJDb250ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgIEZvcndhcmQgQVBJ
IHRvIFBhZ2VHcm91cC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNoYXJlZFBhZ2VHcm91cCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnZpc2l0ZWRMaW5rU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6YWxsVmlzaXRlZExpbmtTdGF0ZUNoYW5nZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOiBBZCBhY2Nlc3NvciBmb3IgZ2xvYmFsIFBhZ2VHcm91
cC4KKwogMjAxMC0wOC0yNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAkocmV2aXNpb24gNjYxNjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OnNldFZpc2l0ZWRMaW5rVGFibGUoY29uCiAgICAgbV92aXNpdGVkTGlua1RhYmxlLnNldFNoYXJl
ZE1lbW9yeShzaGFyZWRNZW1vcnkucmVsZWFzZSgpKTsKIH0KIAotc3RhdGljIFBhZ2VHcm91cCog
d2ViS2l0MlBhZ2VHcm91cCgpCitQYWdlR3JvdXAqIFdlYlByb2Nlc3M6OnNoYXJlZFBhZ2VHcm91
cCgpCiB7CiAgICAgcmV0dXJuIFBhZ2VHcm91cDo6cGFnZUdyb3VwKCJXZWJLaXQyR3JvdXAiKTsK
IH0KQEAgLTEzMCwxMiArMTMwLDEyIEBAIHN0YXRpYyBQYWdlR3JvdXAqIHdlYktpdDJQYWdlR3Jv
dXAoKQogdm9pZCBXZWJQcm9jZXNzOjp2aXNpdGVkTGlua1N0YXRlQ2hhbmdlZChjb25zdCBWZWN0
b3I8V2ViQ29yZTo6TGlua0hhc2g+JiBsaW5rSGFzaGVzKQogewogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbGlua0hhc2hlcy5zaXplKCk7ICsraSkKLSAgICAgICAgUGFnZTo6dmlzaXRlZFN0
YXRlQ2hhbmdlZCh3ZWJLaXQyUGFnZUdyb3VwKCksIGxpbmtIYXNoZXNbaV0pOworICAgICAgICBQ
YWdlOjp2aXNpdGVkU3RhdGVDaGFuZ2VkKHNoYXJlZFBhZ2VHcm91cCgpLCBsaW5rSGFzaGVzW2ld
KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjphbGxWaXNpdGVkTGlua1N0YXRlQ2hhbmdlZCgpCiB7
Ci0gICAgUGFnZTo6YWxsVmlzaXRlZFN0YXRlQ2hhbmdlZCh3ZWJLaXQyUGFnZUdyb3VwKCkpOwor
ICAgIFBhZ2U6OmFsbFZpc2l0ZWRTdGF0ZUNoYW5nZWQoc2hhcmVkUGFnZUdyb3VwKCkpOwogfQog
CiBib29sIFdlYlByb2Nlc3M6OmlzTGlua1Zpc2l0ZWQoTGlua0hhc2ggbGlua0hhc2gpIGNvbnN0
CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDY2MTY1KQorKysgV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW50U2l6ZTsKKyAgICBjbGFzcyBQ
YWdlR3JvdXA7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzMsNiArNzQsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRXZWJGcmFtZSh1aW50NjRfdCwgV2ViRnJhbWUqKTsKICAgICB2b2lk
IHJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90KTsKIAorICAgIHN0YXRpYyBXZWJDb3JlOjpQYWdlR3Jv
dXAqIHNoYXJlZFBhZ2VHcm91cCgpOworCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAg
ICB2b2lkIHNodXRkb3duKCk7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDY2MTY1KQorKysgV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1
ZGUgIkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2lu
ZHMuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCiAjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2Vi
Q29udGV4dE1lc3NhZ2VLaW5kcy5oIgpAQCAtMTk2LDYgKzE5Nyw1NiBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpyZW1vdmVBbGxWaXNpdGVkTGluCiAgICAgUGFnZUdyb3VwOjpyZW1vdmVBbGxWaXNp
dGVkTGlua3MoKTsKIH0KIAorc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0
cmluZ1ZlY3RvcihJbW11dGFibGVBcnJheSogcGF0dGVybnMpCit7CisgICAgc2l6ZV90IHNpemUg
PSAgcGF0dGVybnMtPnNpemUoKTsKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgVmVjdG9yPFN0cmluZz4qIHBhdHRlcm5zVmVjdG9yID0gbmV3IFZlY3RvcjxTdHJpbmc+
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIFdlYlN0
cmluZyogZW50cnkgPSBwYXR0ZXJucy0+YXQ8V2ViU3RyaW5nPihpKTsKKyAgICAgICAgaWYgKGVu
dHJ5KQorICAgICAgICAgICAgcGF0dGVybnNWZWN0b3ItPmFwcGVuZChlbnRyeS0+c3RyaW5nKCkp
OworICAgIH0KKyAgICByZXR1cm4gcGF0dGVybnNWZWN0b3I7Cit9CisKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGU6OmFkZFVzZXJTY3JpcHQoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogc2NyaXB0V29y
bGQsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCwgSW1tdXRhYmxlQXJy
YXkqIHdoaXRlbGlzdCwgSW1tdXRhYmxlQXJyYXkqIGJsYWNrbGlzdCwgV2ViQ29yZTo6VXNlclNj
cmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmpl
Y3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWRQYWdl
R3JvdXAoKS0+YWRkVXNlclNjcmlwdFRvV29ybGQoc2NyaXB0V29ybGQtPmNvcmVXb3JsZCgpLCBz
b3VyY2UsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxp
c3QpLCB0b1N0cmluZ1ZlY3RvcihibGFja2xpc3QpLCBpbmplY3Rpb25UaW1lLCBpbmplY3RlZEZy
YW1lcyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OmFkZFVzZXJTdHlsZVNoZWV0KEluamVj
dGVkQnVuZGxlU2NyaXB0V29ybGQqIHNjcmlwdFdvcmxkLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIEltbXV0YWJsZUFycmF5KiB3aGl0ZWxpc3QsIEltbXV0YWJsZUFy
cmF5KiBibGFja2xpc3QsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0
ZWRGcmFtZXMpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkUGFnZUdyb3VwKCktPmFkZFVzZXJT
dHlsZVNoZWV0VG9Xb3JsZChzY3JpcHRXb3JsZC0+Y29yZVdvcmxkKCksIHNvdXJjZSwgS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIHVybCksIHRvU3RyaW5nVmVjdG9yKHdoaXRlbGlzdCksIHRvU3RyaW5n
VmVjdG9yKGJsYWNrbGlzdCksIGluamVjdGVkRnJhbWVzKTsKK30KKwordm9pZCBJbmplY3RlZEJ1
bmRsZTo6cmVtb3ZlVXNlclNjcmlwdChJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiBzY3JpcHRX
b3JsZCwgY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkUGFnZUdy
b3VwKCktPnJlbW92ZVVzZXJTY3JpcHRGcm9tV29ybGQoc2NyaXB0V29ybGQtPmNvcmVXb3JsZCgp
LCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnJlbW92ZVVzZXJTdHlsZVNoZWV0KEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHNjcmlwdFdv
cmxkLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWRQYWdlR3Jv
dXAoKS0+cmVtb3ZlVXNlclN0eWxlU2hlZXRGcm9tV29ybGQoc2NyaXB0V29ybGQtPmNvcmVXb3Js
ZCgpLCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5k
bGU6OnJlbW92ZVVzZXJTY3JpcHRzKEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHNjcmlwdFdv
cmxkKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZFBhZ2VHcm91cCgpLT5yZW1vdmVVc2VyU2Ny
aXB0c0Zyb21Xb3JsZChzY3JpcHRXb3JsZC0+Y29yZVdvcmxkKCkpOworfQorCit2b2lkIEluamVj
dGVkQnVuZGxlOjpyZW1vdmVVc2VyU3R5bGVTaGVldHMoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZCogc2NyaXB0V29ybGQpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkUGFnZUdyb3VwKCktPnJl
bW92ZVVzZXJTdHlsZVNoZWV0c0Zyb21Xb3JsZChzY3JpcHRXb3JsZC0+Y29yZVdvcmxkKCkpOwor
fQorCit2b2lkIEluamVjdGVkQnVuZGxlOjpyZW1vdmVBbGxVc2VyQ29udGVudCgpCit7CisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkUGFnZUdyb3VwKCktPnJlbW92ZUFsbFVzZXJDb250ZW50KCk7Cit9
CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmdhcmJhZ2VDb2xsZWN0SmF2YVNjcmlwdE9iamVjdHMo
KQogewogICAgIGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7CkluZGV4OiBXZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAko
cmV2aXNpb24gNjYxNjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJDb250ZW50VHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTY3JpcHRUeXBlcy5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTQ3LDYgKzQ5LDggQEAgdHlwZWRlZiBITU9EVUxFIFBsYXRmb3JtQnVuZGxl
OwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUJ1bmRsZTsKICNlbmRpZgogCitjbGFzcyBJbW11dGFi
bGVBcnJheTsKK2NsYXNzIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ7CiBjbGFzcyBXZWJQYWdl
OwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZSA6IHB1YmxpYyBBUElPYmplY3QgewpAQCAtNzIsNiAr
NzYsMTUgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlQWxsVmlzaXRlZExpbmtzKCk7CiAgICAg
dm9pZCBhY3RpdmF0ZU1hY0ZvbnRBc2NlbnRIYWNrKCk7CiAKKyAgICAvLyBVc2VyQ29udGVudCBB
UEkKKyAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCosIGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCwgSW1tdXRhYmxlQXJyYXkqIHdo
aXRlbGlzdCwgSW1tdXRhYmxlQXJyYXkqIGJsYWNrbGlzdCwgV2ViQ29yZTo6VXNlclNjcmlwdElu
amVjdGlvblRpbWUsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOworICAgIHZv
aWQgYWRkVXNlclN0eWxlU2hlZXQoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCosIGNvbnN0IFN0
cmluZyYgc291cmNlLCBjb25zdCBTdHJpbmcmIHVybCwgSW1tdXRhYmxlQXJyYXkqIHdoaXRlbGlz
dCwgSW1tdXRhYmxlQXJyYXkqIGJsYWNrbGlzdCwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcyk7CisgICAgdm9pZCByZW1vdmVVc2VyU2NyaXB0KEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQqLCBjb25zdCBTdHJpbmcmIHVybCk7CisgICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVl
dChJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZv
aWQgcmVtb3ZlVXNlclNjcmlwdHMoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOworICAgIHZv
aWQgcmVtb3ZlVXNlclN0eWxlU2hlZXRzKEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKKyAg
ICB2b2lkIHJlbW92ZUFsbFVzZXJDb250ZW50KCk7CisKICAgICAvLyBHYXJiYWdlIGNvbGxlY3Rp
b24gQVBJCiAgICAgdm9pZCBnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzKCk7CiAgICAg
dm9pZCBnYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzT25BbHRlcm5hdGVUaHJlYWRGb3JE
ZWJ1Z2dpbmcoYm9vbCB3YWl0VW50aWxEb25lKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAkocmV2aXNpb24gNjYx
NjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NywzICs3NywzOCBAQCBzaXplX3QgV0tCdW5kbGVHZXRK
YXZhU2NyaXB0T2JqZWN0c0NvdW50CiB7CiAgICAgcmV0dXJuIHRvV0soYnVuZGxlUmVmKS0+amF2
YVNjcmlwdE9iamVjdHNDb3VudCgpOwogfQorCit2b2lkIFdLQnVuZGxlQWRkVXNlclNjcmlwdChX
S0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGRS
ZWYsIFdLU3RyaW5nUmVmIHNvdXJjZVJlZiwgV0tVUkxSZWYgdXJsUmVmLCBXS0FycmF5UmVmIHdo
aXRlbGlzdFJlZiwgV0tBcnJheVJlZiBibGFja2xpc3RSZWYsIFdLVXNlclNjcmlwdEluamVjdGlv
blRpbWUgaW5qZWN0aW9uVGltZVJlZiwgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVj
dGVkRnJhbWVzUmVmKQoreworICAgIHRvV0soYnVuZGxlUmVmKS0+YWRkVXNlclNjcmlwdCh0b1dL
KHNjcmlwdFdvcmxkUmVmKSwgdG9XSyhzb3VyY2VSZWYpLT5zdHJpbmcoKSwgdG9XSyh1cmxSZWYp
LT5zdHJpbmcoKSwgdG9XSyh3aGl0ZWxpc3RSZWYpLCB0b1dLKGJsYWNrbGlzdFJlZiksIHRvVXNl
clNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZVJlZiksIHRvVXNlckNvbnRlbnRJbmpl
Y3RlZEZyYW1lcyhpbmplY3RlZEZyYW1lc1JlZikpOworfQorCit2b2lkIFdLQnVuZGxlQWRkVXNl
clN0eWxlU2hlZXQoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
IHNjcmlwdFdvcmxkUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2VSZWYsIFdLVVJMUmVmIHVybFJlZiwg
V0tBcnJheVJlZiB3aGl0ZWxpc3RSZWYsIFdLQXJyYXlSZWYgYmxhY2tsaXN0UmVmLCBXS1VzZXJD
b250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXNSZWYpCit7CisgICAgdG9XSyhidW5k
bGVSZWYpLT5hZGRVc2VyU3R5bGVTaGVldCh0b1dLKHNjcmlwdFdvcmxkUmVmKSwgdG9XSyhzb3Vy
Y2VSZWYpLT5zdHJpbmcoKSwgdG9XSyh1cmxSZWYpLT5zdHJpbmcoKSwgdG9XSyh3aGl0ZWxpc3RS
ZWYpLCB0b1dLKGJsYWNrbGlzdFJlZiksIHRvVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyhpbmpl
Y3RlZEZyYW1lc1JlZikpOworfQorCit2b2lkIFdLQnVuZGxlUmVtb3ZlVXNlclNjcmlwdChXS0J1
bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGRSZWYs
IFdLVVJMUmVmIHVybFJlZikKK3sKKyAgICB0b1dLKGJ1bmRsZVJlZiktPnJlbW92ZVVzZXJTY3Jp
cHQodG9XSyhzY3JpcHRXb3JsZFJlZiksIHRvV0sodXJsUmVmKS0+c3RyaW5nKCkpOworfQorCit2
b2lkIFdLQnVuZGxlUmVtb3ZlVXNlclN0eWxlU2hlZXQoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBX
S0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkUmVmLCBXS1VSTFJlZiB1cmxSZWYpCit7
CisgICAgdG9XSyhidW5kbGVSZWYpLT5yZW1vdmVVc2VyU3R5bGVTaGVldCh0b1dLKHNjcmlwdFdv
cmxkUmVmKSwgdG9XSyh1cmxSZWYpLT5zdHJpbmcoKSk7Cit9CisKK3ZvaWQgV0tCdW5kbGVSZW1v
dmVVc2VyU2NyaXB0cyhXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRS
ZWYgc2NyaXB0V29ybGRSZWYpCit7CisgICAgdG9XSyhidW5kbGVSZWYpLT5yZW1vdmVVc2VyU2Ny
aXB0cyh0b1dLKHNjcmlwdFdvcmxkUmVmKSk7Cit9CisKK3ZvaWQgV0tCdW5kbGVSZW1vdmVVc2Vy
U3R5bGVTaGVldHMoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
IHNjcmlwdFdvcmxkUmVmKQoreworICAgIHRvV0soYnVuZGxlUmVmKS0+cmVtb3ZlVXNlclN0eWxl
U2hlZXRzKHRvV0soc2NyaXB0V29ybGRSZWYpKTsKK30KKwordm9pZCBXS0J1bmRsZVJlbW92ZUFs
bFVzZXJDb250ZW50KFdLQnVuZGxlUmVmIGJ1bmRsZVJlZikKK3sKKyAgICB0b1dLKGJ1bmRsZVJl
ZiktPnJlbW92ZUFsbFVzZXJDb250ZW50KCk7Cit9CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oCShy
ZXZpc2lvbiA2NjE2NSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUFQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksMTEgQEAKICNp
bmNsdWRlICJXS0J1bmRsZUJhc2UuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKICNpbmNs
dWRlICJXS0J1bmRsZVBhZ2VQcml2YXRlLmgiCisjaW5jbHVkZSAiV0tCdW5kbGVQcml2YXRlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JJbnNlcnRBY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1RleHRBZmZpbml0eS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlckNvbnRlbnRUeXBlcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlwdFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9ab29tTW9kZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjcsNCArMTMwLDMwIEBA
IGlubGluZSBXZWJDb3JlOjpab29tTW9kZSB0b1pvb21Nb2RlKFdLQnUKICAgICByZXR1cm4gV2Vi
Q29yZTo6Wm9vbVRleHRPbmx5OwogfQogCitpbmxpbmUgV2ViQ29yZTo6VXNlclNjcmlwdEluamVj
dGlvblRpbWUgdG9Vc2VyU2NyaXB0SW5qZWN0aW9uVGltZShXS1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lIHdrSW5qZWN0ZWRUaW1lKQoreworICAgIHN3aXRjaCAod2tJbmplY3RlZFRpbWUpIHsKKyAg
ICBjYXNlIGtXS0luamVjdEF0RG9jdW1lbnRTdGFydDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkluamVjdEF0RG9jdW1lbnRTdGFydDsKKyAgICBjYXNlIGtXS0luamVjdEF0RG9jdW1lbnRFbmQ6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RBdERvY3VtZW50RW5kOworICAgIH0KKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RBdERv
Y3VtZW50U3RhcnQ7Cit9CisKK2lubGluZSBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzIHRvVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyhXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXMgd2tJbmplY3RlZEZyYW1lcykKK3sKKyAgICBzd2l0Y2ggKHdrSW5qZWN0ZWRGcmFtZXMpIHsK
KyAgICBjYXNlIGtXS0luamVjdEluQWxsRnJhbWVzOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6
SW5qZWN0SW5BbGxGcmFtZXM7CisgICAgY2FzZSBrV0tJbmplY3RJblRvcEZyYW1lT25seToKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5OworICAgIH0KKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RJbkFsbEZy
YW1lczsKK30KKwogI2VuZGlmIC8vIFdLQnVuZGxlQVBJQ2FzdF9oCkluZGV4OiBXZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJp
dmF0ZS5oCShyZXZpc2lvbiA2NjE2NSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQs
MjYgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVHYXJiYWdlQ29sbGVjdEphdgogV0tfRVhQT1JU
IHZvaWQgV0tCdW5kbGVHYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzT25BbHRlcm5hdGVU
aHJlYWRGb3JEZWJ1Z2dpbmcoV0tCdW5kbGVSZWYgYnVuZGxlLCBib29sIHdhaXRVbnRpbERvbmUp
OwogV0tfRVhQT1JUIHNpemVfdCBXS0J1bmRsZUdldEphdmFTY3JpcHRPYmplY3RzQ291bnQoV0tC
dW5kbGVSZWYgYnVuZGxlKTsKIAorZW51bSBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lIHsKKyAg
ICBrV0tJbmplY3RBdERvY3VtZW50U3RhcnQsCisgICAga1dLSW5qZWN0QXREb2N1bWVudEVuZAor
fTsKK3R5cGVkZWYgZW51bSBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lIFdLVXNlclNjcmlwdElu
amVjdGlvblRpbWU7CisKK2VudW0gV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIHsKKyAgICBr
V0tJbmplY3RJbkFsbEZyYW1lcywKKyAgICBrV0tJbmplY3RJblRvcEZyYW1lT25seQorfTsKK3R5
cGVkZWYgZW51bSBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgV0tVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOworCitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUFkZFVzZXJTY3JpcHQoV0tCdW5k
bGVSZWYgYnVuZGxlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkLCBXS1N0cmlu
Z1JlZiBzb3VyY2UsIFdLVVJMUmVmIHVybCwgV0tBcnJheVJlZiB3aGl0ZWxpc3QsIFdLQXJyYXlS
ZWYgYmxhY2tsaXN0LCBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsIFdL
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcyk7CitXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZUFkZFVzZXJTdHlsZVNoZWV0KFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVT
Y3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZCwgV0tTdHJpbmdSZWYgc291cmNlLCBXS1VSTFJlZiB1
cmwsIFdLQXJyYXlSZWYgd2hpdGVsaXN0LCBXS0FycmF5UmVmIGJsYWNrbGlzdCwgV0tVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVu
ZGxlUmVtb3ZlVXNlclNjcmlwdChXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlU2NyaXB0V29y
bGRSZWYgc2NyaXB0V29ybGQsIFdLVVJMUmVmIHVybCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRs
ZVJlbW92ZVVzZXJTdHlsZVNoZWV0KFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVTY3JpcHRX
b3JsZFJlZiBzY3JpcHRXb3JsZCwgV0tVUkxSZWYgdXJsKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVu
ZGxlUmVtb3ZlVXNlclNjcmlwdHMoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVNjcmlwdFdv
cmxkUmVmIHNjcmlwdFdvcmxkKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUmVtb3ZlVXNlclN0
eWxlU2hlZXRzKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3Jp
cHRXb3JsZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVJlbW92ZUFsbFVzZXJDb250ZW50KFdL
QnVuZGxlUmVmIGJ1bmRsZSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCg==
</data>
<flag name="review"
          id="54667"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>