<?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>67931</bug_id>
          
          <creation_ts>2011-09-12 05:45:56 -0700</creation_ts>
          <short_desc>[GTK] Add WebKitWebContext to GTK API</short_desc>
          <delta_ts>2011-09-27 11:05:20 -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>Linux</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>
          <dependson>65178</dependson>
          <blocked>67990</blocked>
    
    <blocked>68434</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>nayankk</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>465573</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-12 05:45:56 -0700</bug_when>
    <thetext>Add WebKitWebContext class to wrap WKContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465574</commentid>
    <comment_count>1</comment_count>
      <attachid>107042</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-12 05:50:13 -0700</bug_when>
    <thetext>Created attachment 107042
Patch

This patch depends on bug #65178</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467043</commentid>
    <comment_count>2</comment_count>
      <attachid>107042</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-14 08:55:00 -0700</bug_when>
    <thetext>Comment on attachment 107042
Patch

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

Looks good, but I have a few nits and a small request to fix some of the FIXMEs now that we are touching this code. I feel that if we don&apos;t fix them now, they&apos;ll never get fixed.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:96
&gt; + * WEBKIT_CACHE_MODEL_WEB_BROWSER.

Default value -&gt; The default value

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:134
&gt; +WebKitCacheModel
&gt; +webkit_web_context_get_cache_model(WebKitWebContext* context)

Extra newline here.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h:87
&gt; +WK_EXPORT GType
&gt; +webkit_web_context_get_type        (void);
&gt; +
&gt; +WK_EXPORT WebKitWebContext *
&gt; +webkit_web_context_get_default     (void);
&gt; +
&gt; +WK_EXPORT void
&gt; +webkit_web_context_set_cache_model (WebKitWebContext *context,
&gt; +                                    WebKitCacheModel  cache_model);
&gt; +WK_EXPORT WebKitCacheModel
&gt; +webkit_web_context_get_cache_model (WebKitWebContext *context);
&gt; +

Do you think it makes sense to stop lining the arguments up between functions? It&apos;s really annoyng when you finally add a longer function and have to realign the entire file.

&gt; Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp:48
&gt; +    // FIXME: Add disk cache handling when soup has the API
&gt; +    unsigned long urlCacheMemoryCapacity = 0;
&gt; +    unsigned long urlCacheDiskCapacity = 0;
&gt; +    uint64_t diskFreeSize = 0;

Soup has the API now, but I&apos;m not sure if it&apos;s public yet.

&gt; Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp:52
&gt; +    // FIXME: The Mac port calculates these values based on the amount of physical memory that&apos;s
&gt; +    // installed on the system. Currently these values match the Mac port for users with more than
&gt; +    // 512 MB and less than 1024 MB of physical memory.

Is it possible to do this now, at least for Linux?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467678</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-15 00:21:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 107042 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107042&amp;action=review
&gt; 
&gt; Looks good, but I have a few nits and a small request to fix some of the FIXMEs now that we are touching this code. I feel that if we don&apos;t fix them now, they&apos;ll never get fixed.

This bug is about the WebKit2 API, those FIXMEs are new features that could be impemented for both WebKit1 and WebKit2 and don&apos;t depend on the API. So we can file separate bug reports for them so that we don&apos;t forget it.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:96
&gt; &gt; + * WEBKIT_CACHE_MODEL_WEB_BROWSER.
&gt; 
&gt; Default value -&gt; The default value

Done.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:134
&gt; &gt; +WebKitCacheModel
&gt; &gt; +webkit_web_context_get_cache_model(WebKitWebContext* context)
&gt; 
&gt; Extra newline here.

Done.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h:87
&gt; &gt; +WK_EXPORT GType
&gt; &gt; +webkit_web_context_get_type        (void);
&gt; &gt; +
&gt; &gt; +WK_EXPORT WebKitWebContext *
&gt; &gt; +webkit_web_context_get_default     (void);
&gt; &gt; +
&gt; &gt; +WK_EXPORT void
&gt; &gt; +webkit_web_context_set_cache_model (WebKitWebContext *context,
&gt; &gt; +                                    WebKitCacheModel  cache_model);
&gt; &gt; +WK_EXPORT WebKitCacheModel
&gt; &gt; +webkit_web_context_get_cache_model (WebKitWebContext *context);
&gt; &gt; +
&gt; 
&gt; Do you think it makes sense to stop lining the arguments up between functions? It&apos;s really annoyng when you finally add a longer function and have to realign the entire file.

I like it, but I guess it&apos;s actually a matter of taste. 

&gt; &gt; Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp:48
&gt; &gt; +    // FIXME: Add disk cache handling when soup has the API
&gt; &gt; +    unsigned long urlCacheMemoryCapacity = 0;
&gt; &gt; +    unsigned long urlCacheDiskCapacity = 0;
&gt; &gt; +    uint64_t diskFreeSize = 0;
&gt; 
&gt; Soup has the API now, but I&apos;m not sure if it&apos;s public yet.

It&apos;s marked as LIBSOUP_USE_UNSTABLE_REQUEST_API, but we are currently used auth dialog feature too which is also considered unstable, I think.

&gt; &gt; Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp:52
&gt; &gt; +    // FIXME: The Mac port calculates these values based on the amount of physical memory that&apos;s
&gt; &gt; +    // installed on the system. Currently these values match the Mac port for users with more than
&gt; &gt; +    // 512 MB and less than 1024 MB of physical memory.
&gt; 
&gt; Is it possible to do this now, at least for Linux?

I don&apos;t know, I&apos;ll look at it, but I&apos;m more worried about the API in this moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467685</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-15 00:29:29 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; &gt; &gt; Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp:52
&gt; &gt; &gt; +    // FIXME: The Mac port calculates these values based on the amount of physical memory that&apos;s
&gt; &gt; &gt; +    // installed on the system. Currently these values match the Mac port for users with more than
&gt; &gt; &gt; +    // 512 MB and less than 1024 MB of physical memory.
&gt; &gt; 
&gt; &gt; Is it possible to do this now, at least for Linux?
&gt; 
&gt; I don&apos;t know, I&apos;ll look at it, but I&apos;m more worried about the API in this moment.

I think properly implementing this function is an important part of exposing the API. It&apos;s a little bit broken as it is now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470011</commentid>
    <comment_count>5</comment_count>
      <attachid>107991</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-20 06:09:02 -0700</bug_when>
    <thetext>Created attachment 107991
New patch

I&apos;ve splitted the patch, because other patches depend on this one, and I don&apos;t want the cache model implementation blocks other API patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470035</commentid>
    <comment_count>6</comment_count>
      <attachid>107991</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-20 06:52:53 -0700</bug_when>
    <thetext>Comment on attachment 107991
New patch

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

Looks good to me. There&apos;s one small thing below and we just need another reviwer to review the API.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:58
&gt; +    WebKitWebContext* webContext = WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, 0));

Sentinals have to be NULL,  because 0 is a different size than NULL on 64-bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470061</commentid>
    <comment_count>7</comment_count>
      <attachid>108001</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-20 07:56:27 -0700</bug_when>
    <thetext>Created attachment 108001
Use NULL instead of 0 in g_object_new()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470382</commentid>
    <comment_count>8</comment_count>
      <attachid>108001</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-20 15:15:07 -0700</bug_when>
    <thetext>Comment on attachment 108001
Use NULL instead of 0 in g_object_new()

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:74
&gt; +    static GOnce onceInit = G_ONCE_INIT;
&gt; +    return WEBKIT_WEB_CONTEXT(g_once(&amp;onceInit, getDefaultWebContext, 0));

Out of curiosity does GOnce require that GObject be created in another function. I&apos;m not sure I understand the benefit over something like this:

static WebKitWebContext* webContext = 0;
if (webContext)
    return webContext;

webContext = WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, NULL));
webContext-&gt;priv-&gt;context = WKContextGetSharedProcessContext();
WKContextSetCacheModel(webContext-&gt;priv-&gt;context, kWKCacheModelPrimaryWebBrowser);
return webContext;

It&apos;s fewer lines and clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470621</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-20 23:49:38 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 108001 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108001&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:74
&gt; &gt; +    static GOnce onceInit = G_ONCE_INIT;
&gt; &gt; +    return WEBKIT_WEB_CONTEXT(g_once(&amp;onceInit, getDefaultWebContext, 0));
&gt; 
&gt; Out of curiosity does GOnce require that GObject be created in another function.

Yes, GOnce calls the function the first time is called and returns the stored value for subsequent calls.

&gt; I&apos;m not sure I understand the benefit over something like this:

The only benefict is that GOnce ensures that the initialization is serialized across multiple threads.

&gt; static WebKitWebContext* webContext = 0;
&gt; if (webContext)
&gt;     return webContext;
&gt; 
&gt; webContext = WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, NULL));
&gt; webContext-&gt;priv-&gt;context = WKContextGetSharedProcessContext();
&gt; WKContextSetCacheModel(webContext-&gt;priv-&gt;context, kWKCacheModelPrimaryWebBrowser);
&gt; return webContext;
&gt; 
&gt; It&apos;s fewer lines and clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470886</commentid>
    <comment_count>10</comment_count>
      <attachid>108001</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-21 09:57:15 -0700</bug_when>
    <thetext>Comment on attachment 108001
Use NULL instead of 0 in g_object_new()

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

Looks good to me with a minor tweak.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp:56
&gt; +static gpointer getDefaultWebContext(gpointer)

You should probably call this createDefaultWebContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470890</commentid>
    <comment_count>11</comment_count>
      <attachid>108001</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-09-21 10:01:32 -0700</bug_when>
    <thetext>Comment on attachment 108001
Use NULL instead of 0 in g_object_new()

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

Looks good to me API wise, just a nit in the test!

&gt; Source/WebKit2/UIProcess/API/gtk/tests/testwebcontext.c:27
&gt; +    g_assert(webkit_web_context_get_default(context) == webkit_web_context_get_default(context));

Hum webkit_web_context_get_default() doesn&apos;t take any argument, did I miss something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471380</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-21 23:40:24 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 108001 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108001&amp;action=review
&gt; 
&gt; Looks good to me API wise, just a nit in the test!
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/testwebcontext.c:27
&gt; &gt; +    g_assert(webkit_web_context_get_default(context) == webkit_web_context_get_default(context));
&gt; 
&gt; Hum webkit_web_context_get_default() doesn&apos;t take any argument, did I miss something?

Nop, I changed that and it seems I forgot to add the changes before making the patch :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471383</commentid>
    <comment_count>13</comment_count>
      <attachid>108283</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-21 23:52:44 -0700</bug_when>
    <thetext>Created attachment 108283
Patch with suggested changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471389</commentid>
    <comment_count>14</comment_count>
      <attachid>108283</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-09-22 00:07:06 -0700</bug_when>
    <thetext>Comment on attachment 108283
Patch with suggested changes

As Martin didn&apos;t object on the API and neither did I, this is good to go. Thanks Carlos!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474086</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-09-27 11:05:20 -0700</bug_when>
    <thetext>Committed r96133: &lt;http://trac.webkit.org/changeset/96133&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107042</attachid>
            <date>2011-09-12 05:50:13 -0700</date>
            <delta_ts>2011-09-20 06:09:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-webcontext.diff</filename>
            <type>text/plain</type>
            <size>17631</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NDljZDk4Li5iODY2OGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTEtMDktMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJDb250ZXh0IHRvIEdUSyBBUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBXZWJLaXRXZWJDb250ZXh0IGZvciBXZWJLaXQyIEdUSyBBUEkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDogQWRkZWQuCisgICAg
ICAgICh3ZWJraXRXZWJDb250ZXh0RmluYWxpemUpOgorICAgICAgICAod2Via2l0X3dlYl9jb250
ZXh0X2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2luaXQpOgorICAg
ICAgICAoZ2V0RGVmYXVsdFdlYkNvbnRleHQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0
X2dldF9kZWZhdWx0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfY2FjaGVfbW9k
ZWwpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2dldF9jYWNoZV9tb2RlbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy90ZXN0d2ViY29udGV4dC5jOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3RXZWJDb250ZXh0Q2FjaGVNb2RlbCk6CisgICAgICAgIChtYWluKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyZ3RrLmg6IEFkZCA8d2Via2l0Mi9XZWJLaXRX
ZWJDb250ZXh0Lmg+LgorICAgICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NHdGsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOiBJ
bXBsZW1lbnQKKyAgICAgICAgcGxhdGZvcm1TZXRDYWNoZU1vZGVsIGZvciBHdGsgcG9ydC4KKwog
MjAxMS0wOS0xMSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS85ODc4MjY4PiBQcmVzc2luZyBjYXBzIGxvY2sgYWZ0ZXIgY2xvc2luZyBhIHNo
b3dNb2RhbERpYWxvZyB3aW5kb3cgcmVzdWx0cyBpbiBXZWJQcm9jZXNzIGV4aXRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0KaW5kZXggYjcxYWIwMS4uOTRmODA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0K
QEAgLTY4LDYgKzY4LDcgQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJT
SU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9IRUEKIAogbGlid2Via2l0Mmd0
a2luY2x1ZGVkaXIgPSAkKGxpYndlYmtpdGd0a2luY2x1ZGVkaXIpL3dlYmtpdDIKIGxpYndlYmtp
dDJndGtpbmNsdWRlX0hFQURFUlMgPSBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJDb250ZXh0LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdC
YXNlLmgKIApAQCAtNDQ5LDYgKzQ1MCw4IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElf
TUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9jcHAvV0tSZXRhaW5QdHIuaCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmggXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5oIFwKQEAgLTk3NSw2ICs5NzgsMzkgQEAg
Q0xFQU5GSUxFUyArPSBcCiAJJCh0b3BfYnVpbGRkaXIpL3N0YW1wLXdlYmtpdDJndGtoZWFkZXJz
IFwKIAkkKHRvcF9idWlsZGRpcikvUHJvZ3JhbXMvV2ViS2l0V2ViUHJvY2VzcwogCisjIFVuaXQg
dGVzdHMKK1RFU1RfUFJPR1MgKz0gXAorCVByb2dyYW1zL3VuaXR0ZXN0cy93ZWJraXQyL3Rlc3R3
ZWJjb250ZXh0CisKK25vaW5zdF9QUk9HUkFNUyArPSAkKFRFU1RfUFJPR1MpCit3ZWJraXQyX3Rl
c3RzX2NmbGFncyA9IFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UgXAorCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2lu
Y2x1ZGUgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5jbHVk
ZS93ZWJraXQyZ3RrIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ayBcCisJJChnbG9iYWxfY2ZsYWdzKSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKEdM
SUJfQ0ZMQUdTKSBcCisJJChHVEtfQ0ZMQUdTKSBcCisJJChMSUJTT1VQX0NGTEFHUykKKword2Vi
a2l0Ml90ZXN0c19sZGFkZCA9IFwKKwlsaWJqYXZhc2NyaXB0Y29yZWd0ay1AV0VCS0lUR1RLX0FQ
SV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQC5sYSBcCisJbGli
d2Via2l0Mmd0ay1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9N
SU5PUl9WRVJTSU9OQC5sYSBcCisJJChHTElCX0xJQlMpIFwKKwkkKEdUS19MSUJTKSBcCisJJChM
SUJTT1VQX0xJQlMpCisKK3dlYmtpdDJfdGVzdHNfbGRmbGFncyA9IFwKKwktbm8taW5zdGFsbCBc
CisJLW5vLWZhc3QtaW5zdGFsbAorCitQcm9ncmFtc191bml0dGVzdHNfd2Via2l0Ml90ZXN0d2Vi
Y29udGV4dF9TT1VSQ0VTID0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
dGVzdHdlYmNvbnRleHQuYworUHJvZ3JhbXNfdW5pdHRlc3RzX3dlYmtpdDJfdGVzdHdlYmNvbnRl
eHRfQ0ZMQUdTID0gJCh3ZWJraXQyX3Rlc3RzX2NmbGFncykKK1Byb2dyYW1zX3VuaXR0ZXN0c193
ZWJraXQyX3Rlc3R3ZWJjb250ZXh0X0xEQUREID0gJCh3ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJv
Z3JhbXNfdW5pdHRlc3RzX3dlYmtpdDJfdGVzdHdlYmNvbnRleHRfTERGTEFHUyA9ICQod2Via2l0
Ml90ZXN0c19sZGZsYWdzKQorCiAjIFdlYktpdFdlYlByb2Nlc3MKIGxpYmV4ZWNfUFJPR1JBTVMg
Kz0gXAogCVByb2dyYW1zL1dlYktpdFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOGJmNmUwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0wLDAgKzEs
MTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tUeXBlLmg+CisKK3N0cnVjdCBf
V2ViS2l0V2ViQ29udGV4dFByaXZhdGUgeworICAgIFdLQ29udGV4dFJlZiBjb250ZXh0OworfTsK
KworR19ERUZJTkVfVFlQRShXZWJLaXRXZWJDb250ZXh0LCB3ZWJraXRfd2ViX2NvbnRleHQsIEdf
VFlQRV9PQkpFQ1QpCisKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYkNvbnRleHRGaW5hbGl6ZShHT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCA9IFdFQktJVF9X
RUJfQ09OVEVYVChvYmplY3QpOworCisgICAgV0tSZWxlYXNlKGNvbnRleHQtPnByaXYtPmNvbnRl
eHQpOworICAgIGNvbnRleHQtPnByaXYtPmNvbnRleHQgPSAwOworfQorCitzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX2NvbnRleHRfaW5pdChXZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0KQorewor
ICAgIFdlYktpdFdlYkNvbnRleHRQcml2YXRlKiBwcml2ID0gbmV3IFdlYktpdFdlYkNvbnRleHRQ
cml2YXRlKCk7CisgICAgd2ViQ29udGV4dC0+cHJpdiA9IHByaXY7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdlYktpdFdlYkNvbnRleHRDbGFzcyogd2Vi
Vmlld0NsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENsYXNzID0gR19PQkpFQ1Rf
Q0xBU1Mod2ViVmlld0NsYXNzKTsKKyAgICBnT2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0
V2ViQ29udGV4dEZpbmFsaXplOworfQorCisKK3N0YXRpYyBncG9pbnRlciBnZXREZWZhdWx0V2Vi
Q29udGV4dChncG9pbnRlcikKK3sKKyAgICBXZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0ID0g
V0VCS0lUX1dFQl9DT05URVhUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwg
MCkpOworICAgIHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQgPSBXS0NvbnRleHRHZXRTaGFyZWRQ
cm9jZXNzQ29udGV4dCgpOworICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwod2ViQ29udGV4dC0+
cHJpdi0+Y29udGV4dCwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsKKyAgICByZXR1
cm4gd2ViQ29udGV4dDsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1
bHQ6CisgKgorICogR2V0cyB0aGUgZGVmYXVsdCB3ZWIgY29udGV4dAorICoKKyAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKSBhICNXZWJLaXRXZWJDb250ZXh0CisgKi8KK1dlYktpdFdlYkNvbnRl
eHQqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCh2b2lkKQoreworICAgIHN0YXRpYyBH
T25jZSBvbmNlSW5pdCA9IEdfT05DRV9JTklUOworICAgIHJldHVybiBXRUJLSVRfV0VCX0NPTlRF
WFQoZ19vbmNlKCZvbmNlSW5pdCwgZ2V0RGVmYXVsdFdlYkNvbnRleHQsIDApKTsKK30KKworLyoq
CisgKiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X2NhY2hlX21vZGVsOgorICogQGNvbnRleHQ6IHRo
ZSAjV2ViS2l0V2ViQ29udGV4dAorICogQGNhY2hlX21vZGVsOiBhICNXZWJLaXRDYWNoZU1vZGVs
CisgKgorICogU3BlY2lmaWVzIGEgdXNhZ2UgbW9kZWwgZm9yIFdlYlZpZXdzLCB3aGljaCBXZWJL
aXQgd2lsbCB1c2UgdG8KKyAqIGRldGVybWluZSBpdHMgY2FjaGluZyBiZWhhdmlvci4gQWxsIHdl
YiB2aWV3cyBmb2xsb3cgdGhlIGNhY2hlCisgKiBtb2RlbC4gVGhpcyBjYWNoZSBtb2RlbCBkZXRl
cm1pbmVzIHRoZSBSQU0gYW5kIGRpc2sgc3BhY2UgdG8gdXNlCisgKiBmb3IgY2FjaGluZyBwcmV2
aW91c2x5IHZpZXdlZCBjb250ZW50IC4KKyAqCisgKiBSZXNlYXJjaCBpbmRpY2F0ZXMgdGhhdCB1
c2VycyB0ZW5kIHRvIGJyb3dzZSB3aXRoaW4gY2x1c3RlcnMgb2YKKyAqIGRvY3VtZW50cyB0aGF0
IGhvbGQgcmVzb3VyY2VzIGluIGNvbW1vbiwgYW5kIHRvIHJldmlzaXQgcHJldmlvdXNseQorICog
dmlzaXRlZCBkb2N1bWVudHMuIFdlYktpdCBhbmQgdGhlIGZyYW1ld29ya3MgYmVsb3cgaXQgaW5j
bHVkZQorICogYnVpbHQtaW4gY2FjaGVzIHRoYXQgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlc2UgcGF0
dGVybnMsCisgKiBzdWJzdGFudGlhbGx5IGltcHJvdmluZyBkb2N1bWVudCBsb2FkIHNwZWVkIGlu
IGJyb3dzaW5nCisgKiBzaXR1YXRpb25zLiBUaGUgV2ViS2l0IGNhY2hlIG1vZGVsIGNvbnRyb2xz
IHRoZSBiZWhhdmlvcnMgb2YgYWxsIG9mCisgKiB0aGVzZSBjYWNoZXMsIGluY2x1ZGluZyB2YXJp
b3VzIFdlYkNvcmUgY2FjaGVzLgorICoKKyAqIEJyb3dzZXJzIGNhbiBpbXByb3ZlIGRvY3VtZW50
IGxvYWQgc3BlZWQgc3Vic3RhbnRpYWxseSBieQorICogc3BlY2lmeWluZyBXRUJLSVRfQ0FDSEVf
TU9ERUxfV0VCX0JST1dTRVIuIEFwcGxpY2F0aW9ucyB3aXRob3V0IGEKKyAqIGJyb3dzaW5nIGlu
dGVyZmFjZSBjYW4gcmVkdWNlIG1lbW9yeSB1c2FnZSBzdWJzdGFudGlhbGx5IGJ5CisgKiBzcGVj
aWZ5aW5nIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVIuIERlZmF1bHQgdmFsdWUg
aXMKKyAqIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUi4KKyAqCisgKi8KK3ZvaWQgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0
LCBXZWJLaXRDYWNoZU1vZGVsIG1vZGVsKQoreworICAgIFdLQ2FjaGVNb2RlbCBjYWNoZU1vZGVs
OworCisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkp
OworCisgICAgc3dpdGNoIChtb2RlbCkgeworICAgIGNhc2UgV0VCS0lUX0NBQ0hFX01PREVMX0RP
Q1VNRU5UX1ZJRVdFUjoKKyAgICAgICAgY2FjaGVNb2RlbCA9IGtXS0NhY2hlTW9kZWxEb2N1bWVu
dFZpZXdlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VC
X0JST1dTRVI6CisgICAgICAgIGNhY2hlTW9kZWwgPSBrV0tDYWNoZU1vZGVsUHJpbWFyeVdlYkJy
b3dzZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VN
RU5UX0JST1dTRVI6CisgICAgICAgIGNhY2hlTW9kZWwgPSBrV0tDYWNoZU1vZGVsRG9jdW1lbnRC
cm93c2VyOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBnX2Fzc2VydF9u
b3RfcmVhY2hlZCgpOworICAgIH0KKyAgICBXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSogcHJpdiA9
IGNvbnRleHQtPnByaXY7CisgICAgaWYgKGNhY2hlTW9kZWwgIT0gV0tDb250ZXh0R2V0Q2FjaGVN
b2RlbChwcml2LT5jb250ZXh0KSkKKyAgICAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChwcml2
LT5jb250ZXh0LCBjYWNoZU1vZGVsKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X2NhY2hlX21vZGVsOgorICogQGNvbnRleHQ6IHRoZSAjV2ViS2l0V2ViQ29udGV4dAorICoK
KyAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2FjaGUgbW9kZWwuIEZvciBtb3JlIGluZm9ybWF0aW9u
IGFib3V0IHRoaXMKKyAqIHZhbHVlIGNoZWNrIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBmdW5j
dGlvbgorICogd2Via2l0X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbCgpLgorICoKKyAqIFJl
dHVybnM6IHRoZSBjdXJyZW50ICNXZWJLaXRDYWNoZU1vZGVsCisgKi8KK1dlYktpdENhY2hlTW9k
ZWwKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfY2FjaGVfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRF
WFQoY29udGV4dCksIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUik7CisKKyAgICBXZWJL
aXRXZWJDb250ZXh0UHJpdmF0ZSogcHJpdiA9IGNvbnRleHQtPnByaXY7CisgICAgc3dpdGNoIChX
S0NvbnRleHRHZXRDYWNoZU1vZGVsKHByaXYtPmNvbnRleHQpKSB7CisgICAgY2FzZSBrV0tDYWNo
ZU1vZGVsRG9jdW1lbnRWaWV3ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ0FDSEVfTU9ERUxf
RE9DVU1FTlRfVklFV0VSOworICAgIGNhc2Uga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2Vy
OgorICAgICAgICByZXR1cm4gV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSOworICAgIGNh
c2Uga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3NlcjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9D
QUNIRV9NT0RFTF9ET0NVTUVOVF9CUk9XU0VSOworICAgIGRlZmF1bHQ6CisgICAgICAgIGdfYXNz
ZXJ0X25vdF9yZWFjaGVkKCk7CisgICAgfQorCisgICAgcmV0dXJuIFdFQktJVF9DQUNIRV9NT0RF
TF9XRUJfQlJPV1NFUjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkNvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lMDQ4Njc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXZWJLaXRXZWJDb250ZXh0X2gKKyNkZWZp
bmUgV2ViS2l0V2ViQ29udGV4dF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRf
VFlQRV9XRUJfQ09OVEVYVCAgICAgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9DT05URVhUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NI
RUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9DT05URVhULCBXZWJLaXRX
ZWJDb250ZXh0KSkKKyNkZWZpbmUgV0VCS0lUX1dFQl9DT05URVhUX0NMQVNTKGtsYXNzKSAgICAo
R19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9DT05URVhU
LCBXZWJLaXRXZWJDb250ZXh0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX0NPTlRFWFQo
b2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZ
UEVfV0VCX0NPTlRFWFQpKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX0NPTlRFWFRfQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCX0NP
TlRFWFQpKQorI2RlZmluZSBXRUJLSVRfV0VCX0NPTlRFWFRfR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQsIFdl
YktpdFdlYkNvbnRleHRDbGFzcykpCisKKy8qCisgKiBXZWJLaXRDYWNoZU1vZGVsOgorICogQFdF
QktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVI6IERpc2FibGUgdGhlIGNhY2hlIGNvbXBs
ZXRlbHksIHdoaWNoCisgKiAgIHN1YnN0YW50aWFsbHkgcmVkdWNlcyBtZW1vcnkgdXNhZ2UuIFVz
ZWZ1bCBmb3IgYXBwbGljYXRpb25zIHRoYXQgb25seQorICogICBhY2Nlc3MgYSBzaW5nbGUgbG9j
YWwgZmlsZSwgd2l0aCBubyBuYXZpZ2F0aW9uIHRvIG90aGVyIHBhZ2VzLiBObyByZW1vdGUKKyAq
ICAgcmVzb3VyY2VzIHdpbGwgYmUgY2FjaGVkLgorICogQFdFQktJVF9DQUNIRV9NT0RFTF9ET0NV
TUVOVF9CUk9XU0VSOiBBIGNhY2hlIG1vZGVsIG9wdGltaXplZCBmb3Igdmlld2luZworICogICBh
IHNlcmllcyBvZiBsb2NhbCBmaWxlcyAtLSBmb3IgZXhhbXBsZSwgYSBkb2N1bWVudGF0aW9uIHZp
ZXdlciBvciBhIHdlYnNpdGUKKyAqICAgZGVzaWduZXIuIFdlYktpdCB3aWxsIGNhY2hlIGEgbW9k
ZXJhdGUgbnVtYmVyIG9mIHJlc291cmNlcy4KKyAqIEBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JS
T1dTRVI6IEltcHJvdmUgZG9jdW1lbnQgbG9hZCBzcGVlZCBzdWJzdGFudGlhbGx5CisgKiAgIGJ5
IGNhY2hpbmcgYSB2ZXJ5IGxhcmdlIG51bWJlciBvZiByZXNvdXJjZXMgYW5kIHByZXZpb3VzbHkg
dmlld2VkIGNvbnRlbnQuCisgKgorICogRW51bSB2YWx1ZXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcg
dGhlIHdlYnZpZXcgY2FjaGUgbW9kZWwuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lU
X0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUiwKKyAgICBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VC
X0JST1dTRVIsCisgICAgV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VNRU5UX0JST1dTRVIKK30gV2Vi
S2l0Q2FjaGVNb2RlbDsKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHQgICAgICAg
IFdlYktpdFdlYkNvbnRleHQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4dENsYXNz
ICAgV2ViS2l0V2ViQ29udGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRl
eHRQcml2YXRlIFdlYktpdFdlYkNvbnRleHRQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdFdlYkNv
bnRleHQgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisgICAg
V2ViS2l0V2ViQ29udGV4dFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdFdlYkNv
bnRleHRDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudDsKKworICAgIC8qIFBhZGRpbmcg
Zm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMp
ICh2b2lkKTsKK307CisKK1dLX0VYUE9SVCBHVHlwZQord2Via2l0X3dlYl9jb250ZXh0X2dldF90
eXBlICAgICAgICAodm9pZCk7CisKK1dLX0VYUE9SVCBXZWJLaXRXZWJDb250ZXh0ICoKK3dlYmtp
dF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCAgICAgKHZvaWQpOworCitXS19FWFBPUlQgdm9pZAor
d2Via2l0X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbCAoV2ViS2l0V2ViQ29udGV4dCAqY29u
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdENhY2hlTW9k
ZWwgIGNhY2hlX21vZGVsKTsKK1dLX0VYUE9SVCBXZWJLaXRDYWNoZU1vZGVsCit3ZWJraXRfd2Vi
X2NvbnRleHRfZ2V0X2NhY2hlX21vZGVsIChXZWJLaXRXZWJDb250ZXh0ICpjb250ZXh0KTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy90ZXN0d2ViY29udGV4dC5jIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvdGVzdHMvdGVzdHdlYmNvbnRleHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi43MDdiZDI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvdGVzdHdlYmNvbnRleHQuYwpAQCAtMCwwICsxLDUyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8Z2xpYi5o
PgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3ZWJraXQyZ3RrLmg+CisKK3N0YXRp
YyB2b2lkIHRlc3RXZWJDb250ZXh0Q2FjaGVNb2RlbCh2b2lkKQoreworICAgIFdlYktpdFdlYkNv
bnRleHQgKmNvbnRleHQgPSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKTsKKworICAg
IC8qIENoZWNrIGRlZmF1bHQgY2FjaGUgbW9kZWwgaXMgd2ViIGJyb3dzZXIuICovCisgICAgZ19h
c3NlcnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9jYWNoZV9tb2RlbChjb250ZXh0KSA9PSBXRUJL
SVRfQ0FDSEVfTU9ERUxfV0VCX0JST1dTRVIpOworCisgICAgd2Via2l0X3dlYl9jb250ZXh0X3Nl
dF9jYWNoZV9tb2RlbChjb250ZXh0LCBXRUJLSVRfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfVklFV0VS
KTsKKyAgICBnX2Fzc2VydCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2NhY2hlX21vZGVsKGNvbnRl
eHQpID09IFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVIpOworCisgICAgd2Via2l0
X3dlYl9jb250ZXh0X3NldF9jYWNoZV9tb2RlbChjb250ZXh0LCBXRUJLSVRfQ0FDSEVfTU9ERUxf
RE9DVU1FTlRfQlJPV1NFUik7CisgICAgZ19hc3NlcnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9j
YWNoZV9tb2RlbChjb250ZXh0KSA9PSBXRUJLSVRfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfQlJPV1NF
Uik7CisKKyAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X2NhY2hlX21vZGVsKGNvbnRleHQsIFdF
QktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUik7CisgICAgZ19hc3NlcnQod2Via2l0X3dlYl9j
b250ZXh0X2dldF9jYWNoZV9tb2RlbChjb250ZXh0KSA9PSBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VC
X0JST1dTRVIpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICAg
Z190aHJlYWRfaW5pdChOVUxMKTsKKyAgICBndGtfdGVzdF9pbml0KCZhcmdjLCAmYXJndiwgTlVM
TCk7CisKKyAgICBnX3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOwor
ICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdDIvd2ViY29udGV4dC9jYWNoZV9tb2RlbCIsCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RXZWJDb250ZXh0Q2FjaGVNb2RlbCk7CisKKyAgICByZXR1
cm4gZ190ZXN0X3J1bigpOworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyZ3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay93ZWJraXQyZ3RrLmgKaW5kZXggMGFiZGJlNC4uZGZlYmJiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mmd0ay5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJndGsuaApAQCAtMjEsNiArMjEsNyBAQAogI2Rl
ZmluZSBfX1dFQktJVDJHVEtfSF9fCiAKICNpbmNsdWRlIDxXZWJLaXQyL1dlYktpdDIuaD4KKyNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdFdlYlZpZXdCYXNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJWaWV3Lmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NHdGsu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc0d0ay5jcHAKaW5k
ZXggNzcwODhhMy4uOTExNDdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9ndGsvV2ViUHJvY2Vzc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9n
dGsvV2ViUHJvY2Vzc0d0ay5jcHAKQEAgLTI4LDEzICsyOCwzNiBAQAogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKIAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1v
ZGVsKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBj
YWNoZU1vZGVsKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7IAorICAgIHVuc2lnbmVkIGNhY2hl
VG90YWxDYXBhY2l0eSA9IDA7CisgICAgdW5zaWduZWQgY2FjaGVNaW5EZWFkQ2FwYWNpdHkgPSAw
OworICAgIHVuc2lnbmVkIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKKyAgICBkb3VibGUgZGVh
ZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7CisgICAgdW5zaWduZWQgcGFnZUNhY2hl
Q2FwYWNpdHkgPSAwOworCisgICAgLy8gRklYTUU6IEFkZCBkaXNrIGNhY2hlIGhhbmRsaW5nIHdo
ZW4gc291cCBoYXMgdGhlIEFQSQorICAgIHVuc2lnbmVkIGxvbmcgdXJsQ2FjaGVNZW1vcnlDYXBh
Y2l0eSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyB1cmxDYWNoZURpc2tDYXBhY2l0eSA9IDA7Cisg
ICAgdWludDY0X3QgZGlza0ZyZWVTaXplID0gMDsKKworICAgIC8vIEZJWE1FOiBUaGUgTWFjIHBv
cnQgY2FsY3VsYXRlcyB0aGVzZSB2YWx1ZXMgYmFzZWQgb24gdGhlIGFtb3VudCBvZiBwaHlzaWNh
bCBtZW1vcnkgdGhhdCdzCisgICAgLy8gaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uIEN1cnJlbnRs
eSB0aGVzZSB2YWx1ZXMgbWF0Y2ggdGhlIE1hYyBwb3J0IGZvciB1c2VycyB3aXRoIG1vcmUgdGhh
bgorICAgIC8vIDUxMiBNQiBhbmQgbGVzcyB0aGFuIDEwMjQgTUIgb2YgcGh5c2ljYWwgbWVtb3J5
LgorICAgIHVpbnQ2NF90IG1lbVNpemUgPSA1MTI7CisgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhj
YWNoZU1vZGVsLCBtZW1TaXplLCBkaXNrRnJlZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAg
ICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRD
YXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5LCB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1cmxD
YWNoZURpc2tDYXBhY2l0eSk7CisKKyAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5zZXRDYXBh
Y2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVU
b3RhbENhcGFjaXR5KTsKKyAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2Rl
ZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwor
ICAgIFdlYkNvcmU6OnBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShwYWdlQ2FjaGVDYXBhY2l0eSk7
CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291
cmNlQ2FjaGVzVG9DbGVhcikK
</data>
<flag name="review"
          id="103637"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107991</attachid>
            <date>2011-09-20 06:09:02 -0700</date>
            <delta_ts>2011-09-20 07:56:27 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>wk2-web-context2.diff</filename>
            <type>text/plain</type>
            <size>10990</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0ZTgwZTVmLi45MjM4YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYg
QEAKIDIwMTEtMDktMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJDb250ZXh0IHRvIEdUSyBBUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBXZWJLaXRXZWJDb250ZXh0IGZvciBXZWJLaXQyIEdUSyBBUEkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJDb250ZXh0LmNwcDogQWRkZWQuCisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0RmluYWxpemUp
OgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2luaXQpOgorICAgICAgICAod2Via2l0X3dl
Yl9jb250ZXh0X2NsYXNzX2luaXQpOgorICAgICAgICAoZ2V0RGVmYXVsdFdlYkNvbnRleHQpOgor
ICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL3Rlc3R3ZWJjb250ZXh0LmM6CisgICAgICAgICh0ZXN0V2ViQ29u
dGV4dERlZmF1bHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJndGsuaDog
QWRkIDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4uCisKKzIwMTEtMDktMjAgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIFdlYlBy
b2Nlc3Mgc2hvdWxkbid0IHVzZSB0aGUgR1RLKyBBUEkKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDYyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXgg
MTg2OTEzYi4uNjkzMGIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
YW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTY4LDYgKzY4LDcgQEAg
bGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQ
SV9NSU5PUl9WRVJTSU9OQF9sYV9IRUEKIAogbGlid2Via2l0Mmd0a2luY2x1ZGVkaXIgPSAkKGxp
YndlYmtpdGd0a2luY2x1ZGVkaXIpL3dlYmtpdDIKIGxpYndlYmtpdDJndGtpbmNsdWRlX0hFQURF
UlMgPSBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0Lmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIFwKIAkkKFdl
YktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmgKIApAQCAtNDQ5LDYg
KzQ1MCw4IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdF
QktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9jcHAvV0tSZXRhaW5QdHIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXcuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3QmFzZS5oIFwKQEAgLTk4MSw2ICs5ODQsMzkgQEAgQ0xFQU5GSUxFUyArPSBcCiBE
SVNUQ0xFQU5GSUxFUyArPSBcCiAJJCh0b3BfYnVpbGRkaXIpL1dlYktpdDIvd2Via2l0Mmd0ay1A
V0VCS0lUR1RLX0FQSV9WRVJTSU9OQC5wYwogCisjIFVuaXQgdGVzdHMKK1RFU1RfUFJPR1MgKz0g
XAorCVByb2dyYW1zL3VuaXR0ZXN0cy93ZWJraXQyL3Rlc3R3ZWJjb250ZXh0CisKK25vaW5zdF9Q
Uk9HUkFNUyArPSAkKFRFU1RfUFJPR1MpCit3ZWJraXQyX3Rlc3RzX2NmbGFncyA9IFwKKwktSSQo
c3JjZGlyKS9Tb3VyY2UgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyIFwKKwktSSQodG9w
X2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUgXAorCS1JJCh0b3BfYnVp
bGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5jbHVkZS93ZWJraXQyZ3RrIFwKKwktSSQo
c3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ayBcCisJJChnbG9iYWxfY2Zs
YWdzKSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKEdMSUJfQ0ZMQUdTKSBcCisJJChHVEtf
Q0ZMQUdTKSBcCisJJChMSUJTT1VQX0NGTEFHUykKKword2Via2l0Ml90ZXN0c19sZGFkZCA9IFwK
KwlsaWJqYXZhc2NyaXB0Y29yZWd0ay1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VC
S0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQC5sYSBcCisJbGlid2Via2l0Mmd0ay1AV0VCS0lUR1RL
X0FQSV9NQUpPUl9WRVJTSU9OQC5AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQC5sYSBcCisJ
JChHTElCX0xJQlMpIFwKKwkkKEdUS19MSUJTKSBcCisJJChMSUJTT1VQX0xJQlMpCisKK3dlYmtp
dDJfdGVzdHNfbGRmbGFncyA9IFwKKwktbm8taW5zdGFsbCBcCisJLW5vLWZhc3QtaW5zdGFsbAor
CitQcm9ncmFtc191bml0dGVzdHNfd2Via2l0Ml90ZXN0d2ViY29udGV4dF9TT1VSQ0VTID0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvdGVzdHdlYmNvbnRleHQuYworUHJv
Z3JhbXNfdW5pdHRlc3RzX3dlYmtpdDJfdGVzdHdlYmNvbnRleHRfQ0ZMQUdTID0gJCh3ZWJraXQy
X3Rlc3RzX2NmbGFncykKK1Byb2dyYW1zX3VuaXR0ZXN0c193ZWJraXQyX3Rlc3R3ZWJjb250ZXh0
X0xEQUREID0gJCh3ZWJraXQyX3Rlc3RzX2xkYWRkKQorUHJvZ3JhbXNfdW5pdHRlc3RzX3dlYmtp
dDJfdGVzdHdlYmNvbnRleHRfTERGTEFHUyA9ICQod2Via2l0Ml90ZXN0c19sZGZsYWdzKQorCiAj
IFdlYktpdFdlYlByb2Nlc3MKIGxpYmV4ZWNfUFJPR1JBTVMgKz0gXAogCVByb2dyYW1zL1dlYktp
dFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
N2FlMWYwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YktpdFdlYkNvbnRleHQuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tDb250ZXh0Lmg+CisjaW5j
bHVkZSA8V2ViS2l0Mi9XS1R5cGUuaD4KKworc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0
ZSB7CisgICAgV0tDb250ZXh0UmVmIGNvbnRleHQ7Cit9OworCitHX0RFRklORV9UWVBFKFdlYktp
dFdlYkNvbnRleHQsIHdlYmtpdF93ZWJfY29udGV4dCwgR19UWVBFX09CSkVDVCkKKworc3RhdGlj
IHZvaWQgd2Via2l0V2ViQ29udGV4dEZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBX
ZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0ID0gV0VCS0lUX1dFQl9DT05URVhUKG9iamVjdCk7CisK
KyAgICBXS1JlbGVhc2UoY29udGV4dC0+cHJpdi0+Y29udGV4dCk7CisgICAgY29udGV4dC0+cHJp
di0+Y29udGV4dCA9IDA7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9pbml0
KFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCit7CisgICAgV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUqIHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUod2ViQ29udGV4dCwgV0VC
S0lUX1RZUEVfV0VCX0NPTlRFWFQsIFdlYktpdFdlYkNvbnRleHRQcml2YXRlKTsKKyAgICB3ZWJD
b250ZXh0LT5wcml2ID0gcHJpdjsKKyAgICBuZXcgKHByaXYpIFdlYktpdFdlYkNvbnRleHRQcml2
YXRlKCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdl
YktpdFdlYkNvbnRleHRDbGFzcyogd2ViQ29udGV4dENsYXNzKQoreworICAgIEdPYmplY3RDbGFz
cyogZ09iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mod2ViQ29udGV4dENsYXNzKTsKKyAgICBn
T2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0V2ViQ29udGV4dEZpbmFsaXplOworCisgICAg
Z190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHdlYkNvbnRleHRDbGFzcywgc2l6ZW9mKFdlYktpdFdl
YkNvbnRleHRQcml2YXRlKSk7Cit9CisKKworc3RhdGljIGdwb2ludGVyIGdldERlZmF1bHRXZWJD
b250ZXh0KGdwb2ludGVyKQoreworICAgIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQgPSBX
RUJLSVRfV0VCX0NPTlRFWFQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9DT05URVhULCAw
KSk7CisgICAgd2ViQ29udGV4dC0+cHJpdi0+Y29udGV4dCA9IFdLQ29udGV4dEdldFNoYXJlZFBy
b2Nlc3NDb250ZXh0KCk7CisgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbCh3ZWJDb250ZXh0LT5w
cml2LT5jb250ZXh0LCBrV0tDYWNoZU1vZGVsUHJpbWFyeVdlYkJyb3dzZXIpOworICAgIHJldHVy
biB3ZWJDb250ZXh0OworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVs
dDoKKyAqCisgKiBHZXRzIHRoZSBkZWZhdWx0IHdlYiBjb250ZXh0CisgKgorICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpIGEgI1dlYktpdFdlYkNvbnRleHQKKyAqLworV2ViS2l0V2ViQ29udGV4
dCogd2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KHZvaWQpCit7CisgICAgc3RhdGljIEdP
bmNlIG9uY2VJbml0ID0gR19PTkNFX0lOSVQ7CisgICAgcmV0dXJuIFdFQktJVF9XRUJfQ09OVEVY
VChnX29uY2UoJm9uY2VJbml0LCBnZXREZWZhdWx0V2ViQ29udGV4dCwgMCkpOworfQorCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjlmZmI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4
dC5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMu
TC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBXZWJLaXRXZWJDb250ZXh0X2gKKyNkZWZpbmUgV2ViS2l0V2ViQ29udGV4dF9o
CisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+
CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCAgICAg
ICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1dF
Ql9DT05URVhUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9i
aiksIFdFQktJVF9UWVBFX1dFQl9DT05URVhULCBXZWJLaXRXZWJDb250ZXh0KSkKKyNkZWZpbmUg
V0VCS0lUX1dFQl9DT05URVhUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9DT05URVhULCBXZWJLaXRXZWJDb250ZXh0Q2xh
c3MpKQorI2RlZmluZSBXRUJLSVRfSVNfV0VCX0NPTlRFWFQob2JqKSAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQpKQorI2Rl
ZmluZSBXRUJLSVRfSVNfV0VCX0NPTlRFWFRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQpKQorI2RlZmluZSBXRUJL
SVRfV0VCX0NPTlRFWFRfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNT
KChvYmopLCAgV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQsIFdlYktpdFdlYkNvbnRleHRDbGFzcykp
CisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0ICAgICAgICBXZWJLaXRXZWJDb250
ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHRDbGFzcyAgIFdlYktpdFdlYkNv
bnRleHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSBXZWJL
aXRXZWJDb250ZXh0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0IHsKKyAgICBH
T2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdFdlYkNvbnRl
eHRQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0Q2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnQ7CisKKyAgICAvKiBQYWRkaW5nIGZvciBmdXR1cmUgZXhw
YW5zaW9uICovCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9Owor
CitXS19FWFBPUlQgR1R5cGUKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRfdHlwZSAgICAodm9pZCk7
CisKK1dLX0VYUE9SVCBXZWJLaXRXZWJDb250ZXh0ICoKK3dlYmtpdF93ZWJfY29udGV4dF9nZXRf
ZGVmYXVsdCAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvdGVzdHdlYmNvbnRleHQuYyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Rlc3R3ZWJjb250ZXh0LmMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjVjYmI3YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Rlc3R3ZWJjb250ZXh0
LmMKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLDEgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8d2Vi
a2l0Mmd0ay5oPgorCitzdGF0aWMgdm9pZCB0ZXN0V2ViQ29udGV4dERlZmF1bHQodm9pZCkKK3sK
KyAgICAvKiBDaGVjayB0aGVyZSdzIGEgc2luZ2xlIGluc3RhbmNlIG9mIHRoZSBkZWZhdWx0IHdl
YiBjb250ZXh0LiAqLworICAgIGdfYXNzZXJ0KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVs
dChjb250ZXh0KSA9PSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoY29udGV4dCkpOwor
fQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICAgZ190aHJlYWRfaW5p
dChOVUxMKTsKKyAgICBndGtfdGVzdF9pbml0KCZhcmdjLCAmYXJndiwgTlVMTCk7CisKKyAgICBn
X3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJraXQub3JnLyIpOworICAgIGdfdGVzdF9h
ZGRfZnVuYygiL3dlYmtpdDIvd2ViY29udGV4dC9kZWZhdWx0X2NvbnRleHQiLAorICAgICAgICAg
ICAgICAgICAgICB0ZXN0V2ViQ29udGV4dERlZmF1bHQpOworCisgICAgcmV0dXJuIGdfdGVzdF9y
dW4oKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
d2Via2l0Mmd0ay5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mmd0
ay5oCmluZGV4IDBhYmRiZTQuLmRmZWJiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJndGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyZ3RrLmgKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgX19XRUJL
SVQyR1RLX0hfXwogCiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQyLmg+CisjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRXZWJDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJWaWV3
QmFzZS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViVmlldy5oPgogCg==
</data>
<flag name="review"
          id="104836"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108001</attachid>
            <date>2011-09-20 07:56:27 -0700</date>
            <delta_ts>2011-09-21 23:52:44 -0700</delta_ts>
            <desc>Use NULL instead of 0 in g_object_new()</desc>
            <filename>wk2-web-context3.diff</filename>
            <type>text/plain</type>
            <size>11010</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0ZTgwZTVmLi5jNzYyYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcg
QEAKIDIwMTEtMDktMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJDb250ZXh0IHRvIEdUSyBBUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBXZWJLaXRXZWJDb250ZXh0IGZvciBXZWJLaXQyIEdUSyBBUEkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJDb250ZXh0LmNwcDogQWRkZWQuCisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0RmluYWxpemUp
OgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2luaXQpOgorICAgICAgICAod2Via2l0X3dl
Yl9jb250ZXh0X2NsYXNzX2luaXQpOgorICAgICAgICAoZ2V0RGVmYXVsdFdlYkNvbnRleHQpOgor
ICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL3Rlc3R3ZWJjb250ZXh0LmM6CisgICAgICAgICh0ZXN0V2ViQ29u
dGV4dERlZmF1bHQpOgorICAgICAgICAobWFpbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvd2Via2l0Mmd0ay5oOiBBZGQgPHdlYmtpdDIvV2ViS2l0V2ViQ29udGV4dC5oPi4KKworMjAx
MS0wOS0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAg
ICAgICAgW0dUS10gV2ViUHJvY2VzcyBzaG91bGRuJ3QgdXNlIHRoZSBHVEsrIEFQSQogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNjIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5hbQppbmRleCAxODY5MTNiLi42OTMwYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpA
QCAtNjgsNiArNjgsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJ
T05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0hFQQogCiBsaWJ3ZWJraXQyZ3Rr
aW5jbHVkZWRpciA9ICQobGlid2Via2l0Z3RraW5jbHVkZWRpcikvd2Via2l0MgogbGlid2Via2l0
Mmd0a2luY2x1ZGVfSEVBREVSUyA9IFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYkNvbnRleHQuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jh
c2UuaAogCkBAIC00NDksNiArNDUwLDggQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9N
QUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9TT1UKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2NwcC9XS1JldGFpblB0ci5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAgXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuaCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmggXApAQCAtOTgxLDYgKzk4NCwzOSBAQCBD
TEVBTkZJTEVTICs9IFwKIERJU1RDTEVBTkZJTEVTICs9IFwKIAkkKHRvcF9idWlsZGRpcikvV2Vi
S2l0Mi93ZWJraXQyZ3RrLUBXRUJLSVRHVEtfQVBJX1ZFUlNJT05ALnBjCiAKKyMgVW5pdCB0ZXN0
cworVEVTVF9QUk9HUyArPSBcCisJUHJvZ3JhbXMvdW5pdHRlc3RzL3dlYmtpdDIvdGVzdHdlYmNv
bnRleHQKKworbm9pbnN0X1BST0dSQU1TICs9ICQoVEVTVF9QUk9HUykKK3dlYmtpdDJfdGVzdHNf
Y2ZsYWdzID0gXAorCS1JJChzcmNkaXIpL1NvdXJjZSBcCisJLUkkKHNyY2RpcikvU291cmNlL1dl
YktpdDIgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvaW5jbHVk
ZSBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9pbmNsdWRlL3dl
YmtpdDJndGsgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
IFwKKwkkKGdsb2JhbF9jZmxhZ3MpIFwKKwkkKGdsb2JhbF9jcHBmbGFncykgXAorCSQoR0xJQl9D
RkxBR1MpIFwKKwkkKEdUS19DRkxBR1MpIFwKKwkkKExJQlNPVVBfQ0ZMQUdTKQorCit3ZWJraXQy
X3Rlc3RzX2xkYWRkID0gXAorCWxpYmphdmFzY3JpcHRjb3JlZ3RrLUBXRUJLSVRHVEtfQVBJX01B
Sk9SX1ZFUlNJT05ALkBXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05ALmxhIFwKKwlsaWJ3ZWJr
aXQyZ3RrLUBXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05ALkBXRUJLSVRHVEtfQVBJX01JTk9S
X1ZFUlNJT05ALmxhIFwKKwkkKEdMSUJfTElCUykgXAorCSQoR1RLX0xJQlMpIFwKKwkkKExJQlNP
VVBfTElCUykKKword2Via2l0Ml90ZXN0c19sZGZsYWdzID0gXAorCS1uby1pbnN0YWxsIFwKKwkt
bm8tZmFzdC1pbnN0YWxsCisKK1Byb2dyYW1zX3VuaXR0ZXN0c193ZWJraXQyX3Rlc3R3ZWJjb250
ZXh0X1NPVVJDRVMgPSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy90ZXN0
d2ViY29udGV4dC5jCitQcm9ncmFtc191bml0dGVzdHNfd2Via2l0Ml90ZXN0d2ViY29udGV4dF9D
RkxBR1MgPSAkKHdlYmtpdDJfdGVzdHNfY2ZsYWdzKQorUHJvZ3JhbXNfdW5pdHRlc3RzX3dlYmtp
dDJfdGVzdHdlYmNvbnRleHRfTERBREQgPSAkKHdlYmtpdDJfdGVzdHNfbGRhZGQpCitQcm9ncmFt
c191bml0dGVzdHNfd2Via2l0Ml90ZXN0d2ViY29udGV4dF9MREZMQUdTID0gJCh3ZWJraXQyX3Rl
c3RzX2xkZmxhZ3MpCisKICMgV2ViS2l0V2ViUHJvY2VzcwogbGliZXhlY19QUk9HUkFNUyArPSBc
CiAJUHJvZ3JhbXMvV2ViS2l0V2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lZWNmNjk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTAsMCArMSw3NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dC5oIgorCisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVHlwZS5oPgorCitzdHJ1Y3QgX1dlYktp
dFdlYkNvbnRleHRQcml2YXRlIHsKKyAgICBXS0NvbnRleHRSZWYgY29udGV4dDsKK307CisKK0df
REVGSU5FX1RZUEUoV2ViS2l0V2ViQ29udGV4dCwgd2Via2l0X3dlYl9jb250ZXh0LCBHX1RZUEVf
T0JKRUNUKQorCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0RmluYWxpemUoR09iamVjdCog
b2JqZWN0KQoreworICAgIFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQgPSBXRUJLSVRfV0VCX0NP
TlRFWFQob2JqZWN0KTsKKworICAgIFdLUmVsZWFzZShjb250ZXh0LT5wcml2LT5jb250ZXh0KTsK
KyAgICBjb250ZXh0LT5wcml2LT5jb250ZXh0ID0gMDsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9jb250ZXh0X2luaXQoV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCkKK3sKKyAgICBX
ZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSogcHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFU
RSh3ZWJDb250ZXh0LCBXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwgV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUpOworICAgIHdlYkNvbnRleHQtPnByaXYgPSBwcml2OworICAgIG5ldyAocHJpdikgV2Vi
S2l0V2ViQ29udGV4dFByaXZhdGUoKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3dlYl9jb250
ZXh0X2NsYXNzX2luaXQoV2ViS2l0V2ViQ29udGV4dENsYXNzKiB3ZWJDb250ZXh0Q2xhc3MpCit7
CisgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJDb250
ZXh0Q2xhc3MpOworICAgIGdPYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRXZWJDb250ZXh0
RmluYWxpemU7CisKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUod2ViQ29udGV4dENsYXNz
LCBzaXplb2YoV2ViS2l0V2ViQ29udGV4dFByaXZhdGUpKTsKK30KKworCitzdGF0aWMgZ3BvaW50
ZXIgZ2V0RGVmYXVsdFdlYkNvbnRleHQoZ3BvaW50ZXIpCit7CisgICAgV2ViS2l0V2ViQ29udGV4
dCogd2ViQ29udGV4dCA9IFdFQktJVF9XRUJfQ09OVEVYVChnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfV0VCX0NPTlRFWFQsIE5VTEwpKTsKKyAgICB3ZWJDb250ZXh0LT5wcml2LT5jb250ZXh0ID0g
V0tDb250ZXh0R2V0U2hhcmVkUHJvY2Vzc0NvbnRleHQoKTsKKyAgICBXS0NvbnRleHRTZXRDYWNo
ZU1vZGVsKHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQsIGtXS0NhY2hlTW9kZWxQcmltYXJ5V2Vi
QnJvd3Nlcik7CisgICAgcmV0dXJuIHdlYkNvbnRleHQ7Cit9CisKKy8qKgorICogd2Via2l0X3dl
Yl9jb250ZXh0X2dldF9kZWZhdWx0OgorICoKKyAqIEdldHMgdGhlIGRlZmF1bHQgd2ViIGNvbnRl
eHQKKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSkgYSAjV2ViS2l0V2ViQ29udGV4dAor
ICovCitXZWJLaXRXZWJDb250ZXh0KiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQodm9p
ZCkKK3sKKyAgICBzdGF0aWMgR09uY2Ugb25jZUluaXQgPSBHX09OQ0VfSU5JVDsKKyAgICByZXR1
cm4gV0VCS0lUX1dFQl9DT05URVhUKGdfb25jZSgmb25jZUluaXQsIGdldERlZmF1bHRXZWJDb250
ZXh0LCAwKSk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmMyOWZmYjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdlYktpdFdlYkNvbnRleHRfaAorI2RlZmlu
ZSBXZWJLaXRXZWJDb250ZXh0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9U
WVBFX1dFQl9DT05URVhUICAgICAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfdHlwZSgp
KQorI2RlZmluZSBXRUJLSVRfV0VCX0NPTlRFWFQob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQsIFdlYktpdFdl
YkNvbnRleHQpKQorI2RlZmluZSBXRUJLSVRfV0VCX0NPTlRFWFRfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQs
IFdlYktpdFdlYkNvbnRleHRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19XRUJfQ09OVEVYVChv
YmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQ
RV9XRUJfQ09OVEVYVCkpCisjZGVmaW5lIFdFQktJVF9JU19XRUJfQ09OVEVYVF9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfQ09O
VEVYVCkpCisjZGVmaW5lIFdFQktJVF9XRUJfQ09OVEVYVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwgV2Vi
S2l0V2ViQ29udGV4dENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkNvbnRleHQg
ICAgICAgIFdlYktpdFdlYkNvbnRleHQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4
dENsYXNzICAgV2ViS2l0V2ViQ29udGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YkNvbnRleHRQcml2YXRlIFdlYktpdFdlYkNvbnRleHRQcml2YXRlOworCitzdHJ1Y3QgX1dlYktp
dFdlYkNvbnRleHQgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiov
CisgICAgV2ViS2l0V2ViQ29udGV4dFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktp
dFdlYkNvbnRleHRDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudDsKKworICAgIC8qIFBh
ZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDMpICh2b2lkKTsKK307CisKK1dLX0VYUE9SVCBHVHlwZQord2Via2l0X3dlYl9jb250ZXh0
X2dldF90eXBlICAgICh2b2lkKTsKKworV0tfRVhQT1JUIFdlYktpdFdlYkNvbnRleHQgKgord2Vi
a2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0ICh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy90
ZXN0d2ViY29udGV4dC5jIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
dGVzdHdlYmNvbnRleHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWNi
YjdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvdGVzdHdlYmNvbnRleHQuYwpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGd0ay9n
dGsuaD4KKyNpbmNsdWRlIDx3ZWJraXQyZ3RrLmg+CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJDb250
ZXh0RGVmYXVsdCh2b2lkKQoreworICAgIC8qIENoZWNrIHRoZXJlJ3MgYSBzaW5nbGUgaW5zdGFu
Y2Ugb2YgdGhlIGRlZmF1bHQgd2ViIGNvbnRleHQuICovCisgICAgZ19hc3NlcnQod2Via2l0X3dl
Yl9jb250ZXh0X2dldF9kZWZhdWx0KGNvbnRleHQpID09IHdlYmtpdF93ZWJfY29udGV4dF9nZXRf
ZGVmYXVsdChjb250ZXh0KSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK
K3sKKyAgICBnX3RocmVhZF9pbml0KE5VTEwpOworICAgIGd0a190ZXN0X2luaXQoJmFyZ2MsICZh
cmd2LCBOVUxMKTsKKworICAgIGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvIik7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0Mi93ZWJjb250ZXh0L2RlZmF1bHRf
Y29udGV4dCIsCisgICAgICAgICAgICAgICAgICAgIHRlc3RXZWJDb250ZXh0RGVmYXVsdCk7CisK
KyAgICByZXR1cm4gZ190ZXN0X3J1bigpOworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyZ3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyZ3RrLmgKaW5kZXggMGFiZGJlNC4uZGZlYmJiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mmd0ay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJndGsuaApAQCAtMjEsNiArMjEs
NyBAQAogI2RlZmluZSBfX1dFQktJVDJHVEtfSF9fCiAKICNpbmNsdWRlIDxXZWJLaXQyL1dlYktp
dDIuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdFdlYlZpZXdCYXNlLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJW
aWV3Lmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108283</attachid>
            <date>2011-09-21 23:52:44 -0700</date>
            <delta_ts>2011-09-22 00:07:06 -0700</delta_ts>
            <desc>Patch with suggested changes</desc>
            <filename>wk2-web-context4.diff</filename>
            <type>text/plain</type>
            <size>11037</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0ZTgwZTVmLi42ZTMxZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDktMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXRXZWJDb250ZXh0IHRvIEdUSyBBUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBXZWJLaXRXZWJDb250ZXh0IGZvciBXZWJLaXQyIEdUSyBBUEkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDogQWRkZWQuCisgICAg
ICAgICh3ZWJraXRXZWJDb250ZXh0RmluYWxpemUpOgorICAgICAgICAod2Via2l0X3dlYl9jb250
ZXh0X2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2luaXQpOgorICAg
ICAgICAoY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQpOgorICAgICAgICAod2Via2l0X3dlYl9jb250
ZXh0X2dldF9kZWZhdWx0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJD
b250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Rlc3R3
ZWJjb250ZXh0LmM6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L3dlYmtpdDJndGsuaC4KKyAgICAgICAgKHRlc3RXZWJDb250ZXh0RGVmYXVsdCk6CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyZ3RrLmg6IEFkZCA8
d2Via2l0Mi9XZWJLaXRXZWJDb250ZXh0Lmg+LgorCiAyMDExLTA5LTIwICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJQcm9jZXNz
IHNob3VsZG4ndCB1c2UgdGhlIEdUSysgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDE4Njkx
M2IuLjY5MzBiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC02OCw2ICs2OCw3IEBAIGxpYndl
YmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlO
T1JfVkVSU0lPTkBfbGFfSEVBCiAKIGxpYndlYmtpdDJndGtpbmNsdWRlZGlyID0gJChsaWJ3ZWJr
aXRndGtpbmNsdWRlZGlyKS93ZWJraXQyCiBsaWJ3ZWJraXQyZ3RraW5jbHVkZV9IRUFERVJTID0g
XAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBcCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5oCiAKQEAgLTQ0OSw2ICs0NTAs
OCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRH
VEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvY3BwL1dLUmV0YWluUHRyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1BhZ2VDbGllbnRJbXBsLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1Bh
Z2VDbGllbnRJbXBsLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViQ29udGV4dC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJDb250ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2UuaCBcCkBAIC05ODEsNiArOTg0LDM5IEBAIENMRUFORklMRVMgKz0gXAogRElTVENM
RUFORklMRVMgKz0gXAogCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQyL3dlYmtpdDJndGstQFdFQktJ
VEdUS19BUElfVkVSU0lPTkAucGMKIAorIyBVbml0IHRlc3RzCitURVNUX1BST0dTICs9IFwKKwlQ
cm9ncmFtcy91bml0dGVzdHMvd2Via2l0Mi90ZXN0d2ViY29udGV4dAorCitub2luc3RfUFJPR1JB
TVMgKz0gJChURVNUX1BST0dTKQord2Via2l0Ml90ZXN0c19jZmxhZ3MgPSBcCisJLUkkKHNyY2Rp
cikvU291cmNlIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0MiBcCisJLUkkKHRvcF9idWls
ZGRpcikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9pbmNsdWRlIFwKKwktSSQodG9wX2J1aWxkZGly
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2luY2x1ZGUvd2Via2l0Mmd0ayBcCisJLUkkKHNyY2Rp
cikvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsgXAorCSQoZ2xvYmFsX2NmbGFncykg
XAorCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCisJJChHTElCX0NGTEFHUykgXAorCSQoR1RLX0NGTEFH
UykgXAorCSQoTElCU09VUF9DRkxBR1MpCisKK3dlYmtpdDJfdGVzdHNfbGRhZGQgPSBcCisJbGli
amF2YXNjcmlwdGNvcmVndGstQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAuQFdFQktJVEdU
S19BUElfTUlOT1JfVkVSU0lPTkAubGEgXAorCWxpYndlYmtpdDJndGstQFdFQktJVEdUS19BUElf
TUFKT1JfVkVSU0lPTkAuQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkAubGEgXAorCSQoR0xJ
Ql9MSUJTKSBcCisJJChHVEtfTElCUykgXAorCSQoTElCU09VUF9MSUJTKQorCit3ZWJraXQyX3Rl
c3RzX2xkZmxhZ3MgPSBcCisJLW5vLWluc3RhbGwgXAorCS1uby1mYXN0LWluc3RhbGwKKworUHJv
Z3JhbXNfdW5pdHRlc3RzX3dlYmtpdDJfdGVzdHdlYmNvbnRleHRfU09VUkNFUyA9IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Rlc3R3ZWJjb250ZXh0LmMKK1Byb2dyYW1z
X3VuaXR0ZXN0c193ZWJraXQyX3Rlc3R3ZWJjb250ZXh0X0NGTEFHUyA9ICQod2Via2l0Ml90ZXN0
c19jZmxhZ3MpCitQcm9ncmFtc191bml0dGVzdHNfd2Via2l0Ml90ZXN0d2ViY29udGV4dF9MREFE
RCA9ICQod2Via2l0Ml90ZXN0c19sZGFkZCkKK1Byb2dyYW1zX3VuaXR0ZXN0c193ZWJraXQyX3Rl
c3R3ZWJjb250ZXh0X0xERkxBR1MgPSAkKHdlYmtpdDJfdGVzdHNfbGRmbGFncykKKwogIyBXZWJL
aXRXZWJQcm9jZXNzCiBsaWJleGVjX1BST0dSQU1TICs9IFwKIAlQcm9ncmFtcy9XZWJLaXRXZWJQ
cm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YTA5
YTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRX
ZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQ29udGV4dC5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tUeXBlLmg+CisKK3N0cnVjdCBfV2ViS2l0V2ViQ29udGV4dFByaXZhdGUgewor
ICAgIFdLQ29udGV4dFJlZiBjb250ZXh0OworfTsKKworR19ERUZJTkVfVFlQRShXZWJLaXRXZWJD
b250ZXh0LCB3ZWJraXRfd2ViX2NvbnRleHQsIEdfVFlQRV9PQkpFQ1QpCisKK3N0YXRpYyB2b2lk
IHdlYmtpdFdlYkNvbnRleHRGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgV2ViS2l0
V2ViQ29udGV4dCogY29udGV4dCA9IFdFQktJVF9XRUJfQ09OVEVYVChvYmplY3QpOworCisgICAg
V0tSZWxlYXNlKGNvbnRleHQtPnByaXYtPmNvbnRleHQpOworICAgIGNvbnRleHQtPnByaXYtPmNv
bnRleHQgPSAwOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfaW5pdChXZWJL
aXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0KQoreworICAgIFdlYktpdFdlYkNvbnRleHRQcml2YXRl
KiBwcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKHdlYkNvbnRleHQsIFdFQktJVF9U
WVBFX1dFQl9DT05URVhULCBXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSk7CisgICAgd2ViQ29udGV4
dC0+cHJpdiA9IHByaXY7CisgICAgbmV3IChwcml2KSBXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSgp
OworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRX
ZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIGdP
YmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYkNvbnRleHRDbGFzcyk7CisgICAgZ09iamVj
dENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdFdlYkNvbnRleHRGaW5hbGl6ZTsKKworICAgIGdfdHlw
ZV9jbGFzc19hZGRfcHJpdmF0ZSh3ZWJDb250ZXh0Q2xhc3MsIHNpemVvZihXZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZSkpOworfQorCisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVEZWZhdWx0V2ViQ29u
dGV4dChncG9pbnRlcikKK3sKKyAgICBXZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0ID0gV0VC
S0lUX1dFQl9DT05URVhUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwgTlVM
TCkpOworICAgIHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQgPSBXS0NvbnRleHRHZXRTaGFyZWRQ
cm9jZXNzQ29udGV4dCgpOworICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwod2ViQ29udGV4dC0+
cHJpdi0+Y29udGV4dCwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsKKyAgICByZXR1
cm4gd2ViQ29udGV4dDsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1
bHQ6CisgKgorICogR2V0cyB0aGUgZGVmYXVsdCB3ZWIgY29udGV4dAorICoKKyAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKSBhICNXZWJLaXRXZWJDb250ZXh0CisgKi8KK1dlYktpdFdlYkNvbnRl
eHQqIHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCh2b2lkKQoreworICAgIHN0YXRpYyBH
T25jZSBvbmNlSW5pdCA9IEdfT05DRV9JTklUOworICAgIHJldHVybiBXRUJLSVRfV0VCX0NPTlRF
WFQoZ19vbmNlKCZvbmNlSW5pdCwgY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQsIDApKTsKK30KKwor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI5ZmZiNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpZm5kZWYgV2ViS2l0V2ViQ29udGV4dF9oCisjZGVmaW5lIFdlYktpdFdlYkNvbnRl
eHRfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCX0NPTlRFWFQg
ICAgICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJ
VF9XRUJfQ09OVEVYVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwgV2ViS2l0V2ViQ29udGV4dCkpCisjZGVm
aW5lIFdFQktJVF9XRUJfQ09OVEVYVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFT
U19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwgV2ViS2l0V2ViQ29udGV4
dENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9DT05URVhUKG9iaikgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9DT05URVhUKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9DT05URVhUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9DT05URVhUKSkKKyNkZWZpbmUg
V0VCS0lUX1dFQl9DT05URVhUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9D
TEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1dFQl9DT05URVhULCBXZWJLaXRXZWJDb250ZXh0Q2xh
c3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4dCAgICAgICAgV2ViS2l0V2Vi
Q29udGV4dDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0Q2xhc3MgICBXZWJLaXRX
ZWJDb250ZXh0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQ29udGV4dFByaXZhdGUg
V2ViS2l0V2ViQ29udGV4dFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0V2ViQ29udGV4dCB7Cisg
ICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRXZWJD
b250ZXh0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0V2ViQ29udGV4dENsYXNz
IHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50OworCisgICAgLyogUGFkZGluZyBmb3IgZnV0dXJl
IGV4cGFuc2lvbiAqLworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOworICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOwor
fTsKKworV0tfRVhQT1JUIEdUeXBlCit3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3R5cGUgICAgKHZv
aWQpOworCitXS19FWFBPUlQgV2ViS2l0V2ViQ29udGV4dCAqCit3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X2RlZmF1bHQgKHZvaWQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL3Rlc3R3ZWJjb250ZXh0LmMg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy90ZXN0d2ViY29udGV4dC5j
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZmM5NzQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy90ZXN0d2ViY29u
dGV4dC5jCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlh
IFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUg
PHdlYmtpdDJndGsuaD4KKworc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRleHREZWZhdWx0KHZvaWQp
Cit7CisgICAgLyogQ2hlY2sgdGhlcmUncyBhIHNpbmdsZSBpbnN0YW5jZSBvZiB0aGUgZGVmYXVs
dCB3ZWIgY29udGV4dC4gKi8KKyAgICBnX2Fzc2VydCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Rl
ZmF1bHQoKSA9PSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKSk7Cit9CisKK2ludCBt
YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgICBnX3RocmVhZF9pbml0KE5VTEwpOwor
ICAgIGd0a190ZXN0X2luaXQoJmFyZ2MsICZhcmd2LCBOVUxMKTsKKworICAgIGdfdGVzdF9idWdf
YmFzZSgiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIik7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIv
d2Via2l0Mi93ZWJjb250ZXh0L2RlZmF1bHRfY29udGV4dCIsCisgICAgICAgICAgICAgICAgICAg
IHRlc3RXZWJDb250ZXh0RGVmYXVsdCk7CisKKyAgICByZXR1cm4gZ190ZXN0X3J1bigpOworfQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyZ3Rr
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyZ3RrLmgKaW5kZXgg
MGFiZGJlNC4uZGZlYmJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvd2Via2l0Mmd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L3dlYmtpdDJndGsuaApAQCAtMjEsNiArMjEsNyBAQAogI2RlZmluZSBfX1dFQktJVDJHVEtfSF9f
CiAKICNpbmNsdWRlIDxXZWJLaXQyL1dlYktpdDIuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dFdlYkNvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYlZpZXdCYXNlLmg+CiAj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJWaWV3Lmg+CiAK
</data>
<flag name="review"
          id="105216"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>