<?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>48169</bug_id>
          
          <creation_ts>2010-10-22 18:22:37 -0700</creation_ts>
          <short_desc>[FileSystem] Support not creating directories when queried by inspector.</short_desc>
          <delta_ts>2010-11-02 19:59:19 -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>Web Inspector (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kavita Kanetkar">kkanetkar</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dumi</cc>
    
    <cc>kinuko</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298295</commentid>
    <comment_count>0</comment_count>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-10-22 18:22:37 -0700</bug_when>
    <thetext>Currently LocalFileSystem&apos;s requestFileSystem() will always create root directories for temp and persistent filesystem types.
Add ability to configure that. We do not want inspector to be creating directories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298302</commentid>
    <comment_count>1</comment_count>
      <attachid>71618</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-10-22 18:50:43 -0700</bug_when>
    <thetext>Created attachment 71618
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299048</commentid>
    <comment_count>2</comment_count>
      <attachid>71618</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-25 12:55:57 -0700</bug_when>
    <thetext>Comment on attachment 71618
patch

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

&gt; WebKit/chromium/src/WebWorkerBase.cpp:240
&gt; +void WebWorkerBase::openFileSystem(WebFileSystem::Type type, long long size, WebFileSystemCallbacks* callbacks, bool create, bool synchronous)

Per discussion, I don&apos;t think we need to propagate this flag via all the worker plumbing.

&gt; WebKit/chromium/src/WebWorkerBase.h:96
&gt; +    void openFileSystem(WebFileSystem::Type, long long size, WebFileSystemCallbacks*, bool create, bool synchronous);

ditto.

&gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:60
&gt; +void LocalFileSystem::requestFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt; callbacks, bool create, bool synchronous)

If the inspector version will not need the worker implementation, how about adding a new method like queryFileSystem that always calls openFileSystem with create=false and keeping this requestFileSystem as is.

&gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:66
&gt; +        webFrame-&gt;client()-&gt;openFileSystem(webFrame, static_cast&lt;WebFileSystem::Type&gt;(type), size, create, new WebFileSystemCallbacksImpl(callbacks));

We still don&apos;t have the implementation in chromium -- let&apos;s put a default implementation in WebKit/public/WebFileSystem.h with FIXME comment:

  virtual void openFileSystem(WebKit::WebFrame* frame, WebKit::WebFileSystem::Type type, long long size, bool create, WebKit::WebFileSystemCallbacks* callbacks)
  {
       return openFileSystem(frame, type, size, true, callbacks);
  }

After we put chromium sides implementation we can remove the default implementation.

...and if we don&apos;t change the worker side code I think we can drop the change in WebCommonWorkerClient::openFileSystem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303156</commentid>
    <comment_count>3</comment_count>
      <attachid>72617</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-11-01 18:55:53 -0700</bug_when>
    <thetext>Created attachment 72617
patch

Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303183</commentid>
    <comment_count>4</comment_count>
      <attachid>72617</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-11-01 20:09:15 -0700</bug_when>
    <thetext>Comment on attachment 72617
patch

Looks good to me.

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

&gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:63
&gt; +    if (context-&gt;isDocument()) {

Might be better to drop this if and have ASSERT(context-&gt;isDocument()) instead?

&gt; WebCore/fileapi/LocalFileSystem.h:56
&gt; +    void readFileSystem(ScriptExecutionContext*, AsyncFileSystem::Type, long long size, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt;, bool synchronous = false);

We won&apos;t need synchronous flag for this method.

&gt; WebCore/platform/AsyncFileSystem.cpp:56
&gt; +void AsyncFileSystem::openFileSystem(const String&amp; basePath, const String&amp; storageIdentifier, Type type, bool create, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt; callbacks)

You&apos;ll need to omit unused parameter name (s/bool create/bool/) to avoid compile warnings.

&gt; WebCore/platform/AsyncFileSystem.h:70
&gt; +    static void openFileSystem(const String&amp; basePath, const String&amp; storageIdentifier, Type, bool, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt;);

Please include parameter name (s/bool/bool create/) since otherwise it doesn&apos;t give idea what to specify.  Also it might be good to have some short description about this new flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303191</commentid>
    <comment_count>5</comment_count>
      <attachid>72624</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-11-01 20:36:45 -0700</bug_when>
    <thetext>Created attachment 72624
patch

Addressed comments. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303199</commentid>
    <comment_count>6</comment_count>
      <attachid>72624</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-11-01 20:54:16 -0700</bug_when>
    <thetext>Comment on attachment 72624
patch

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

&gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:62
&gt; +    ASSERT(context-&gt;isDocument());

ASSERT(context &amp;&amp; context-&gt;isDocument())?

&gt; WebCore/fileapi/LocalFileSystem.h:56
&gt; +    void readFileSystem(ScriptExecutionContext*, AsyncFileSystem::Type, long long size, PassOwnPtr&lt;AsyncFileSystemCallbacks&gt;);

readFileSystem may sound like reading some contents of the filesystem... how about queryFileSystem?  (readFileSystem sounds ok to me too, just giving an idea.)

&gt; WebCore/platform/AsyncFileSystem.h:69
&gt; +    // Opens a new file system. |create| specifies whether or not to create the path if it does not already exists.

nit: we do not use || in WebKit as far as I know..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303200</commentid>
    <comment_count>7</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-11-01 20:57:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 72624 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72624&amp;action=review
&gt; 
&gt; &gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:62
&gt; &gt; +    ASSERT(context-&gt;isDocument());
&gt; 
&gt; ASSERT(context &amp;&amp; context-&gt;isDocument())?

i&apos;ve been told that ASSERT(context-&gt;isDocument()) is enough, because if &apos;context&apos; is NULL, then we&apos;ll crash on this line anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303201</commentid>
    <comment_count>8</comment_count>
      <attachid>72624</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-11-01 20:58:18 -0700</bug_when>
    <thetext>Comment on attachment 72624
patch

r=me. please address kinuko&apos;s comments though before landing this patch, or upload a new one if you want the commit-queue to land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303243</commentid>
    <comment_count>9</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-11-02 00:07:46 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 72624 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72624&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; WebKit/chromium/src/LocalFileSystemChromium.cpp:62
&gt; &gt; &gt; +    ASSERT(context-&gt;isDocument());
&gt; &gt; 
&gt; &gt; ASSERT(context &amp;&amp; context-&gt;isDocument())?
&gt; 
&gt; i&apos;ve been told that ASSERT(context-&gt;isDocument()) is enough, because if &apos;context&apos; is NULL, then we&apos;ll crash on this line anyway.

Both will crash but they are not same - crashing by an assertion failure and crashing by null-pointer access could have different meanings/crash reports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303705</commentid>
    <comment_count>10</comment_count>
      <attachid>72746</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-11-02 15:03:58 -0700</bug_when>
    <thetext>Created attachment 72746
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303868</commentid>
    <comment_count>11</comment_count>
      <attachid>72746</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-02 19:59:13 -0700</bug_when>
    <thetext>Comment on attachment 72746
patch

Clearing flags on attachment: 72746

Committed r71206: &lt;http://trac.webkit.org/changeset/71206&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303869</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-02 19:59:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71618</attachid>
            <date>2010-10-22 18:50:43 -0700</date>
            <delta_ts>2010-11-01 18:55:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bool3.txt</filename>
            <type>text/plain</type>
            <size>10814</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNwcAkocmV2aXNpb24gNzAzNzcp
CisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzcsNyArMjM3LDcgQEAKIH0KIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKLXZvaWQg
V2ViV29ya2VyQmFzZTo6b3BlbkZpbGVTeXN0ZW0oV2ViRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBs
b25nIGxvbmcgc2l6ZSwgV2ViRmlsZVN5c3RlbUNhbGxiYWNrcyogY2FsbGJhY2tzLCBib29sIHN5
bmNocm9ub3VzKQordm9pZCBXZWJXb3JrZXJCYXNlOjpvcGVuRmlsZVN5c3RlbShXZWJGaWxlU3lz
dGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9uZyBzaXplLCBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKiBj
YWxsYmFja3MsIGJvb2wgY3JlYXRlLCBib29sIHN5bmNocm9ub3VzKQogewogICAgIFdvcmtlclJ1
bkxvb3AmIHJ1bkxvb3AgPSBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpOwogICAgIFdvcmtlclNj
cmlwdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpjb250
cm9sbGVyRm9yQ29udGV4dCgpOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJC
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmgJ
KHJldmlzaW9uIDcwMzc3KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RF
TSkKICAgICAvLyBSZXF1ZXN0cyB0byBvcGVuIGEgZmlsZSBzeXN0ZW0gZm9yIHRoaXMgd29ya2Vy
LiAoTm90ZSB0aGF0IHRoaXMgaXMgbm90IHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViRnJhbWVD
bGllbnQ6Om9wZW5GaWxlU3lzdGVtLikKLSAgICB2b2lkIG9wZW5GaWxlU3lzdGVtKFdlYkZpbGVT
eXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKiwgYm9v
bCBzeW5jaHJvbm91cyk7CisgICAgdm9pZCBvcGVuRmlsZVN5c3RlbShXZWJGaWxlU3lzdGVtOjpU
eXBlLCBsb25nIGxvbmcgc2l6ZSwgV2ViRmlsZVN5c3RlbUNhbGxiYWNrcyosIGJvb2wgY3JlYXRl
LCBib29sIHN5bmNocm9ub3VzKTsKICNlbmRpZgogCiAgICAgLy8gRXhlY3V0ZXMgdGhlIGdpdmVu
IHRhc2sgb24gdGhlIG1haW4gdGhyZWFkLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2Nh
bEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAJKHJldmlzaW9uIDcwMzc3KQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU3LDE4ICs1NywxOCBAQAogICAgIHJldHVybiAqbG9jYWxGaWxlU3lzdGVtOwogfQogCi12
b2lkIExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9uZyBzaXpl
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBib29sIHN5
bmNocm9ub3VzKQordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBs
b25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxi
YWNrcywgYm9vbCBjcmVhdGUsIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgQVNTRVJUKGNvbnRl
eHQpOwogICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKICAgICAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKICAgICAgICAgV2Vi
RnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5m
cmFtZSgpKTsKLSAgICAgICAgd2ViRnJhbWUtPmNsaWVudCgpLT5vcGVuRmlsZVN5c3RlbSh3ZWJG
cmFtZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBX
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKKyAgICAgICAgd2ViRnJhbWUt
PmNsaWVudCgpLT5vcGVuRmlsZVN5c3RlbSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5
c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIGNyZWF0ZSwgbmV3IFdlYkZpbGVTeXN0ZW1DYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcykpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFdvcmtlckNvbnRleHQq
IHdvcmtlckNvbnRleHQgPSBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCk7CiAg
ICAgICAgIFdvcmtlckxvYWRlclByb3h5KiB3b3JrZXJMb2FkZXJQcm94eSA9ICZ3b3JrZXJDb250
ZXh0LT50aHJlYWQoKS0+d29ya2VyTG9hZGVyUHJveHkoKTsKICAgICAgICAgV2ViV29ya2VyQmFz
ZSogd2ViV29ya2VyID0gc3RhdGljX2Nhc3Q8V2ViV29ya2VyQmFzZSo+KHdvcmtlckxvYWRlclBy
b3h5KTsKLSAgICAgICAgd2ViV29ya2VyLT5vcGVuRmlsZVN5c3RlbShzdGF0aWNfY2FzdDxXZWJG
aWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgc2l6ZSwgbmV3IFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJ
bXBsKGNhbGxiYWNrcywgY29udGV4dCwgc3luY2hyb25vdXMpLCBzeW5jaHJvbm91cyk7CisgICAg
ICAgIHdlYldvcmtlci0+b3BlbkZpbGVTeXN0ZW0oc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6
VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFj
a3MsIGNvbnRleHQsIHN5bmNocm9ub3VzKSwgY3JlYXRlLCBzeW5jaHJvbm91cyk7CiAgICAgfQog
fQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwMzc3KQorKysgV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTIyICBL
YXZpdGEgS2FuZXRrYXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZpbGVTeXN0
ZW0gaW50ZWdyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1OTgyCisKKyAgICAgICAgKiBzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSk6
CisgICAgICAgICogc3JjL1dlYldvcmtlckJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJX
b3JrZXJCYXNlOjpvcGVuRmlsZVN5c3RlbSk6CisgICAgICAgICogc3JjL1dlYldvcmtlckJhc2Uu
aDoKKwogMjAxMC0xMC0yMiAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBXZWJDb3JlL2ZpbGVhcGkv
TG9jYWxGaWxlU3lzdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9maWxlYXBpL0xvY2FsRmls
ZVN5c3RlbS5oCShyZXZpc2lvbiA3MDM3NykKKysrIFdlYkNvcmUvZmlsZWFwaS9Mb2NhbEZpbGVT
eXN0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQAogICAgIC8vIGNhbGxpbmcg
dGhpcyBvbmUuCiAgICAgc3RhdGljIExvY2FsRmlsZVN5c3RlbSYgbG9jYWxGaWxlU3lzdGVtKCk7
CiAKLSAgICB2b2lkIHJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBB
c3luY0ZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcz4sIGJvb2wgc3luY2hyb25vdXMgPSBmYWxzZSk7CisgICAgdm9pZCBy
ZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQXN5bmNGaWxlU3lzdGVt
OjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+LCBib29sIGNyZWF0ZSwgYm9vbCBzeW5jaHJvbm91cyA9IGZhbHNlKTsKIAogI2lmICFQTEFU
Rk9STShDSFJPTUlVTSkKICAgICAvLyBUaGlzIGNhbGwgaXMgbm90IHRocmVhZC1zYWZlOyBtdXN0
IGJlIGNhbGxlZCBiZWZvcmUgYW55IHdvcmtlciB0aHJlYWRzIGFyZSBjcmVhdGVkLgpJbmRleDog
V2ViQ29yZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5jcHAJKHJldmlzaW9uIDcwMzc3KQorKysgV2ViQ29y
ZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDE1ICs3
NiwxNSBAQAogICAgIHJldHVybiBtX2Jhc2VQYXRoOwogfQogCi1zdGF0aWMgdm9pZCBvcGVuRmls
ZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwg
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3N0YXRpYyB2b2lk
IG9wZW5GaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGJh
c2VQYXRoLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0
eXBlLCBib29sIGNyZWF0ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNh
bGxiYWNrcykKIHsKLSAgICBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKGJhc2VQYXRo
LCBpZGVudGlmaWVyLCB0eXBlLCBjYWxsYmFja3MpOworICAgIEFzeW5jRmlsZVN5c3RlbTo6b3Bl
bkZpbGVTeXN0ZW0oYmFzZVBhdGgsIGlkZW50aWZpZXIsIHR5cGUsIGNyZWF0ZSwgY2FsbGJhY2tz
KTsKIH0KIAotdm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25n
IGxvbmcsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJv
b2wpCit2b2lkIExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9u
ZywgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcywgYm9vbCwg
Ym9vbCkKIHsKICAgICAvLyBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtIGNhbGxzIGNh
bGxiYWNrcyBzeW5jaHJvbm91c2x5LCBzbyB0aGUgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCBh
c3luY2hyb25vdXNseS4KLSAgICBjb250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2so
Jm9wZW5GaWxlU3lzdGVtLCBmaWxlU3lzdGVtQmFzZVBhdGgoKSwgY29udGV4dC0+c2VjdXJpdHlP
cmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIGNhbGxiYWNrcykpOworICAgIGNv
bnRleHQtPnBvc3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmb3BlbkZpbGVTeXN0ZW0sIGZpbGVT
eXN0ZW1CYXNlUGF0aCgpLCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLT5kYXRhYmFzZUlkZW50
aWZpZXIoKSwgdHlwZSwgY3JlYXRlLCBjYWxsYmFja3MpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UK
SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDM3NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMTAtMjIgIEthdml0YSBLYW5ldGthciAgPGtrYW5ldGthckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogRmlsZVN5c3RlbSBpbnRlZ3JhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5ODIKKworICAgICAgICBBZGRl
ZCBib29sIGNyZWF0ZSB0byByZXF1ZXN0IGFuZCBvcGVuIGZpbGVzeXN0ZW0gZm9yIHdoZXRoZXIg
b3Igbm9yIHRvIGNyZWF0ZSBuZXcgcm9vdAorICAgICAgICBmb3IgZmlsZXN5c3RlbSBpZiBvbmUg
ZG9lcyBub3QgZXhpc3RzLgorCisgICAgICAgICogZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b3BlbkZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSk6CisgICAgICAgICogZmlsZWFwaS9M
b2NhbEZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OnJlcXVlc3RGaWxlU3lzdGVtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3lz
dGVtOjpvcGVuRmlsZVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNvbnRleHQ6OnJlcXVlc3RGaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlckNvbnRleHQ6OnJlcXVlc3RGaWxlU3lzdGVtU3luYyk6CisKIDIwMTAtMTAtMjEgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbCwgUGV0ZXIgS2FzdGluZywgYW5kIERhcmluIEZpc2hlci4KSW5kZXg6IFdlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCShyZXZpc2lvbiA3MDM3NykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NDAsNyArNzQwLDcgQEAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIExvY2FsRmlsZVN5c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkucmVxdWVzdEZpbGVTeXN0ZW0o
ZG9jdW1lbnQsIGZpbGVTeXN0ZW1UeXBlLCBzaXplLCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpjcmVh
dGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBkb2N1bWVudCksIGZhbHNlKTsKKyAg
ICBMb2NhbEZpbGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJlcXVlc3RGaWxlU3lzdGVtKGRv
Y3VtZW50LCBmaWxlU3lzdGVtVHlwZSwgc2l6ZSwgRmlsZVN5c3RlbUNhbGxiYWNrczo6Y3JlYXRl
KHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgZG9jdW1lbnQpLCB0cnVlLCBmYWxzZSk7
CiB9CiAKIENPTVBJTEVfQVNTRVJUKHN0YXRpY19jYXN0PGludD4oRE9NV2luZG93OjpURU1QT1JB
UlkpID09IHN0YXRpY19jYXN0PGludD4oQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkpLCBlbnVt
X21pc21hdGNoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAJKHJldmlz
aW9uIDcwMzc3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBACiB9CiAKIC8vIERlZmF1bHQgaW1wbGVtZW50YXRp
b24uCi12b2lkIEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBi
YXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSB0eXBlLCBQYXNz
T3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQordm9pZCBBc3luY0Zp
bGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0
cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUgdHlwZSwgYm9vbCBjcmVhdGUsIFBhc3NPd25Q
dHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAgICAgU3RyaW5nIHR5
cGVTdHJpbmcgPSAodHlwZSA9PSBQZXJzaXN0ZW50KSA/ICJQZXJzaXN0ZW50IiA6ICJUZW1wb3Jh
cnkiOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmgJKHJldmlzaW9uIDcwMzc3
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaAkod29ya2luZyBjb3B5KQpA
QCAtNjcsNyArNjcsNyBAQAogICAgIHN0YXRpYyBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOwogCiAgICAgLy8gT3BlbnMgYSBuZXcgZmls
ZSBzeXN0ZW0uCi0gICAgc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBi
YXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKyAgICBzdGF0aWMgdm9pZCBvcGVuRmlsZVN5
c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlm
aWVyLCBUeXBlLCBib29sIGNyZWF0ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+KTsKIAogICAgIC8vIE1vdmVzIGEgZmlsZSBvciBkaXJlY3RvcnkgZnJvbSBzcmNQYXRoIHRv
IGRlc3RQYXRoLgogICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgp
IGlzIGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4K
SW5kZXg6IFdlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAJKHJldmlzaW9uIDcwMzc3KQorKysgV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjUsNyAr
MzY1LDcgQEAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExvY2FsRmlsZVN5c3RlbTo6
bG9jYWxGaWxlU3lzdGVtKCkucmVxdWVzdEZpbGVTeXN0ZW0odGhpcywgZmlsZVN5c3RlbVR5cGUs
IHNpemUsIEZpbGVTeXN0ZW1DYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9y
Q2FsbGJhY2ssIHRoaXMpLCBmYWxzZSk7CisgICAgTG9jYWxGaWxlU3lzdGVtOjpsb2NhbEZpbGVT
eXN0ZW0oKS5yZXF1ZXN0RmlsZVN5c3RlbSh0aGlzLCBmaWxlU3lzdGVtVHlwZSwgc2l6ZSwgRmls
ZVN5c3RlbUNhbGxiYWNrczo6Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywg
dGhpcyksIHRydWUsIGZhbHNlKTsKIH0KIAogUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtU3luYz4g
V29ya2VyQ29udGV4dDo6cmVxdWVzdEZpbGVTeXN0ZW1TeW5jKGludCB0eXBlLCBsb25nIGxvbmcg
c2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zODMsNyArMzgzLDcgQEAKICAgICB9CiAKICAg
ICBGaWxlU3lzdGVtU3luY0NhbGxiYWNrSGVscGVyIGhlbHBlcjsKLSAgICBMb2NhbEZpbGVTeXN0
ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJlcXVlc3RGaWxlU3lzdGVtKHRoaXMsIGZpbGVTeXN0ZW1U
eXBlLCBzaXplLCBGaWxlU3lzdGVtQ2FsbGJhY2tzOjpjcmVhdGUoaGVscGVyLnN1Y2Nlc3NDYWxs
YmFjaygpLCBoZWxwZXIuZXJyb3JDYWxsYmFjaygpLCB0aGlzKSwgdHJ1ZSk7CisgICAgTG9jYWxG
aWxlU3lzdGVtOjpsb2NhbEZpbGVTeXN0ZW0oKS5yZXF1ZXN0RmlsZVN5c3RlbSh0aGlzLCBmaWxl
U3lzdGVtVHlwZSwgc2l6ZSwgRmlsZVN5c3RlbUNhbGxiYWNrczo6Y3JlYXRlKGhlbHBlci5zdWNj
ZXNzQ2FsbGJhY2soKSwgaGVscGVyLmVycm9yQ2FsbGJhY2soKSwgdGhpcyksIHRydWUsIHRydWUp
OwogICAgIHJldHVybiBoZWxwZXIuZ2V0UmVzdWx0KGVjKTsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="61712"
          type_id="3"
          status="-"
          setter="kkanetkar"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72617</attachid>
            <date>2010-11-01 18:55:53 -0700</date>
            <delta_ts>2010-11-01 20:36:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>flag2.txt</filename>
            <type>text/plain</type>
            <size>7344</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwCShyZXZpc2lvbiA3MTA4OSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lz
dGVtQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMyArNTcsMjMgQEAKICAgICBy
ZXR1cm4gKmxvY2FsRmlsZVN5c3RlbTsKIH0KIAordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlYWRG
aWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3Rl
bTo6VHlwZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+IGNhbGxiYWNrcywgYm9vbCBzeW5jaHJvbm91cykKK3sKKyAgICBBU1NFUlQoY29u
dGV4dCk7CisgICAgaWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgeworICAgICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOworICAgICAgICBX
ZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZG9jdW1lbnQt
PmZyYW1lKCkpOworICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50KCktPm9wZW5GaWxlU3lzdGVtKHdl
YkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgc2l6ZSwgZmFs
c2UsIG5ldyBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKKyAgICB9IAor
fQorCiB2b2lkIExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9u
ZyBzaXplLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBi
b29sIHN5bmNocm9ub3VzKQogewogICAgIEFTU0VSVChjb250ZXh0KTsKICAgICBpZiAoY29udGV4
dC0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19j
YXN0PERvY3VtZW50Kj4oY29udGV4dCk7CiAgICAgICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUg
PSBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7Ci0gICAgICAgIHdl
YkZyYW1lLT5jbGllbnQoKS0+b3BlbkZpbGVTeXN0ZW0od2ViRnJhbWUsIHN0YXRpY19jYXN0PFdl
YkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSk7CisgICAgICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+b3BlbkZpbGVT
eXN0ZW0od2ViRnJhbWUsIHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBz
aXplLCB0cnVlLCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRp
Y19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KTsKICAgICAgICAgV29ya2VyTG9hZGVyUHJv
eHkqIHdvcmtlckxvYWRlclByb3h5ID0gJndvcmtlckNvbnRleHQtPnRocmVhZCgpLT53b3JrZXJM
b2FkZXJQcm94eSgpOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTA4OSkKKysrIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAx
MC0xMS0wMSAgS2F2aXRhIEthbmV0a2FyICA8a2thbmV0a2FyQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbRmlsZVN5c3RlbV0g
U3VwcG9ydCBub3QgY3JlYXRpbmcgZGlyZWN0b3JpZXMgd2hlbiBxdWVyaWVkIGJ5IGluc3BlY3Rv
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTY5
CisKKyAgICAgICAgKiBzcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxGaWxlU3lzdGVtOjpyZWFkRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJD
b3JlOjpMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKToKKwogMjAxMC0xMS0wMSAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
bnQgVGFtdXJhLgpJbmRleDogV2ViQ29yZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uaAkocmV2aXNpb24gNzEw
ODkpCisrKyBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDYgKzUyLDkgQEAKICAgICAvLyBjYWxsaW5nIHRoaXMgb25lLgogICAgIHN0YXRpYyBM
b2NhbEZpbGVTeXN0ZW0mIGxvY2FsRmlsZVN5c3RlbSgpOwogCisgICAgLy8gRG9lcyBub3QgY3Jl
YXRlIHRoZSByb290IHBhdGggZm9yIGZpbGUgc3lzdGVtLCBqdXN0IHJlYWRzIGl0IGlmIGF2YWls
YWJsZS4KKyAgICB2b2lkIHJlYWRGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBB
c3luY0ZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcz4sIGJvb2wgc3luY2hyb25vdXMgPSBmYWxzZSk7CisKICAgICB2b2lk
IHJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBBc3luY0ZpbGVTeXN0
ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxi
YWNrcz4sIGJvb2wgc3luY2hyb25vdXMgPSBmYWxzZSk7CiAKICNpZiAhUExBVEZPUk0oQ0hST01J
VU0pCkluZGV4OiBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmNwcAkocmV2aXNpb24gNzEwODkp
CisrKyBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzYsMTUgKzc2LDIxIEBACiAgICAgcmV0dXJuIG1fYmFzZVBhdGg7CiB9CiAKLXN0YXRpYyB2
b2lkIG9wZW5GaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIEFzeW5jRmlsZVN5c3RlbTo6VHlw
ZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQor
c3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQXN5bmNGaWxlU3lz
dGVtOjpUeXBlIHR5cGUsIGJvb2wgY3JlYXRlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcz4gY2FsbGJhY2tzKQogewotICAgIEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0
ZW0oYmFzZVBhdGgsIGlkZW50aWZpZXIsIHR5cGUsIGNhbGxiYWNrcyk7CisgICAgQXN5bmNGaWxl
U3lzdGVtOjpvcGVuRmlsZVN5c3RlbShiYXNlUGF0aCwgaWRlbnRpZmllciwgdHlwZSwgY3JlYXRl
LCBjYWxsYmFja3MpOwogfQogCit2b2lkIExvY2FsRmlsZVN5c3RlbTo6cmVhZEZpbGVTeXN0ZW0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5
cGUsIGxvbmcgbG9uZywgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxi
YWNrcywgYm9vbCkKK3sKKyAgICAvLyBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtIGNh
bGxzIGNhbGxiYWNrcyBzeW5jaHJvbm91c2x5LCBzbyB0aGUgbWV0aG9kIG5lZWRzIHRvIGJlIGNh
bGxlZCBhc3luY2hyb25vdXNseS4KKyAgICBjb250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFj
a1Rhc2soJm9wZW5GaWxlU3lzdGVtLCBmaWxlU3lzdGVtQmFzZVBhdGgoKSwgY29udGV4dC0+c2Vj
dXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIGZhbHNlLCBjYWxsYmFj
a3MpKTsKK30KKwogdm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBs
b25nIGxvbmcsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IGJvb2wpCiB7CiAgICAgLy8gQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbSBjYWxscyBj
YWxsYmFja3Mgc3luY2hyb25vdXNseSwgc28gdGhlIG1ldGhvZCBuZWVkcyB0byBiZSBjYWxsZWQg
YXN5bmNocm9ub3VzbHkuCi0gICAgY29udGV4dC0+cG9zdFRhc2soY3JlYXRlQ2FsbGJhY2tUYXNr
KCZvcGVuRmlsZVN5c3RlbSwgZmlsZVN5c3RlbUJhc2VQYXRoKCksIGNvbnRleHQtPnNlY3VyaXR5
T3JpZ2luKCktPmRhdGFiYXNlSWRlbnRpZmllcigpLCB0eXBlLCBjYWxsYmFja3MpKTsKKyAgICBj
b250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJm9wZW5GaWxlU3lzdGVtLCBmaWxl
U3lzdGVtQmFzZVBhdGgoKSwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVu
dGlmaWVyKCksIHR5cGUsIHRydWUsIGNhbGxiYWNrcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpJ
bmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDcxMDg5KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOSBAQAorMjAxMC0xMS0wMSAgS2F2aXRhIEthbmV0a2FyICA8a2thbmV0a2FyQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbRmlsZVN5c3RlbV0gU3VwcG9ydCBub3QgY3JlYXRpbmcgZGlyZWN0b3JpZXMgd2hlbiBx
dWVyaWVkIGJ5IGluc3BlY3Rvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4MTY5CisKKyAgICAgICAgKiBmaWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2NhbEZpbGVTeXN0ZW06OnJlYWRGaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0pOgorICAgICAgICAqIGZpbGVhcGkvTG9j
YWxGaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0pOgorICAg
ICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oOgorCiAyMDEwLTExLTAxICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCShyZXZpc2lv
biA3MTA4OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQAogfQogCiAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9u
Lgotdm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFz
ZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUgdHlwZSwgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3ZvaWQgQXN5bmNGaWxl
U3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJp
bmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIGJvb2wgY3JlYXRlLCBQYXNzT3duUHRy
PEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQogewogICAgIFN0cmluZyB0eXBl
U3RyaW5nID0gKHR5cGUgPT0gUGVyc2lzdGVudCkgPyAiUGVyc2lzdGVudCIgOiAiVGVtcG9yYXJ5
IjsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oCShyZXZpc2lvbiA3MTA4OSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY3LDcgKzY3LDcgQEAKICAgICBzdGF0aWMgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKIAogICAgIC8vIE9wZW5zIGEgbmV3IGZpbGUg
c3lzdGVtLgotICAgIHN0YXRpYyB2b2lkIG9wZW5GaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgYmFz
ZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIsIFR5cGUsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0
ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWRlbnRpZmll
ciwgVHlwZSwgYm9vbCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKIAog
ICAgIC8vIE1vdmVzIGEgZmlsZSBvciBkaXJlY3RvcnkgZnJvbSBzcmNQYXRoIHRvIGRlc3RQYXRo
LgogICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlzIGNhbGxl
ZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72624</attachid>
            <date>2010-11-01 20:36:45 -0700</date>
            <delta_ts>2010-11-02 15:03:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>flag3.txt</filename>
            <type>text/plain</type>
            <size>7489</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwCShyZXZpc2lvbiA3MTA4OSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lz
dGVtQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMyArNTcsMjEgQEAKICAgICBy
ZXR1cm4gKmxvY2FsRmlsZVN5c3RlbTsKIH0KIAordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlYWRG
aWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3Rl
bTo6VHlwZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBBU1NFUlQoY29udGV4dC0+aXNEb2N1bWVudCgp
KTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRl
eHQpOworICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBXZWJGcmFtZUltcGw6OmZyb21GcmFt
ZShkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgd2ViRnJhbWUtPmNsaWVudCgpLT5vcGVuRmlsZVN5
c3RlbSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNp
emUsIGZhbHNlLCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Cit9
CisKIHZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25n
IHNpemUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJv
b2wgc3luY2hyb25vdXMpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIGlmIChjb250ZXh0
LT5pc0RvY3VtZW50KCkpIHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nh
c3Q8RG9jdW1lbnQqPihjb250ZXh0KTsKICAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9
IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKLSAgICAgICAgd2Vi
RnJhbWUtPmNsaWVudCgpLT5vcGVuRmlsZVN5c3RlbSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2Vi
RmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIG5ldyBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tz
SW1wbChjYWxsYmFja3MpKTsKKyAgICAgICAgd2ViRnJhbWUtPmNsaWVudCgpLT5vcGVuRmlsZVN5
c3RlbSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNp
emUsIHRydWUsIG5ldyBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKICAg
ICB9IGVsc2UgewogICAgICAgICBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGlj
X2Nhc3Q8V29ya2VyQ29udGV4dCo+KGNvbnRleHQpOwogICAgICAgICBXb3JrZXJMb2FkZXJQcm94
eSogd29ya2VyTG9hZGVyUHJveHkgPSAmd29ya2VyQ29udGV4dC0+dGhyZWFkKCktPndvcmtlckxv
YWRlclByb3h5KCk7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxMDk3KQorKysgV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEw
LTExLTAxICBLYXZpdGEgS2FuZXRrYXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtGaWxlU3lzdGVtXSBT
dXBwb3J0IG5vdCBjcmVhdGluZyBkaXJlY3RvcmllcyB3aGVuIHF1ZXJpZWQgYnkgaW5zcGVjdG9y
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNjkK
KworICAgICAgICAqIHNyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMb2NhbEZpbGVTeXN0ZW06OnJlYWRGaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkxvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0pOgorCiAyMDEwLTExLTAxICBU
b255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
dCBUYW11cmEuCkluZGV4OiBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5oCShyZXZpc2lvbiA3MTA4
OSkKKysrIFdlYkNvcmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uaAkod29ya2luZyBjb3B5KQpA
QCAtNTIsNiArNTIsOSBAQAogICAgIC8vIGNhbGxpbmcgdGhpcyBvbmUuCiAgICAgc3RhdGljIExv
Y2FsRmlsZVN5c3RlbSYgbG9jYWxGaWxlU3lzdGVtKCk7CiAKKyAgICAvLyBEb2VzIG5vdCBjcmVh
dGUgdGhlIHJvb3QgcGF0aCBmb3IgZmlsZSBzeXN0ZW0sIGp1c3QgcmVhZHMgaXQgaWYgYXZhaWxh
YmxlLgorICAgIHZvaWQgcmVhZEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEFz
eW5jRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NPd25QdHI8QXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzPik7CisKICAgICB2b2lkIHJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBQ
YXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4sIGJvb2wgc3luY2hyb25vdXMgPSBm
YWxzZSk7CiAKICNpZiAhUExBVEZPUk0oQ0hST01JVU0pCkluZGV4OiBXZWJDb3JlL2ZpbGVhcGkv
TG9jYWxGaWxlU3lzdGVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxG
aWxlU3lzdGVtLmNwcAkocmV2aXNpb24gNzEwODkpCisrKyBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxG
aWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsMTUgKzc2LDIxIEBACiAgICAgcmV0
dXJuIG1fYmFzZVBhdGg7CiB9CiAKLXN0YXRpYyB2b2lkIG9wZW5GaWxlU3lzdGVtKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIGlk
ZW50aWZpZXIsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmls
ZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQorc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGJvb2wgY3JlYXRl
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQogewotICAg
IEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oYmFzZVBhdGgsIGlkZW50aWZpZXIsIHR5
cGUsIGNhbGxiYWNrcyk7CisgICAgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShiYXNl
UGF0aCwgaWRlbnRpZmllciwgdHlwZSwgY3JlYXRlLCBjYWxsYmFja3MpOwogfQogCit2b2lkIExv
Y2FsRmlsZVN5c3RlbTo6cmVhZEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9uZywgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICAvLyBBc3luY0ZpbGVT
eXN0ZW06Om9wZW5GaWxlU3lzdGVtIGNhbGxzIGNhbGxiYWNrcyBzeW5jaHJvbm91c2x5LCBzbyB0
aGUgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCBhc3luY2hyb25vdXNseS4KKyAgICBjb250ZXh0
LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJm9wZW5GaWxlU3lzdGVtLCBmaWxlU3lzdGVt
QmFzZVBhdGgoKSwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVy
KCksIHR5cGUsIGZhbHNlLCBjYWxsYmFja3MpKTsKK30KKwogdm9pZCBMb2NhbEZpbGVTeXN0ZW06
OnJlcXVlc3RGaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5j
RmlsZVN5c3RlbTo6VHlwZSB0eXBlLCBsb25nIGxvbmcsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJvb2wpCiB7CiAgICAgLy8gQXN5bmNGaWxlU3lzdGVt
OjpvcGVuRmlsZVN5c3RlbSBjYWxscyBjYWxsYmFja3Mgc3luY2hyb25vdXNseSwgc28gdGhlIG1l
dGhvZCBuZWVkcyB0byBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkuCi0gICAgY29udGV4dC0+cG9z
dFRhc2soY3JlYXRlQ2FsbGJhY2tUYXNrKCZvcGVuRmlsZVN5c3RlbSwgZmlsZVN5c3RlbUJhc2VQ
YXRoKCksIGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCktPmRhdGFiYXNlSWRlbnRpZmllcigpLCB0
eXBlLCBjYWxsYmFja3MpKTsKKyAgICBjb250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rh
c2soJm9wZW5GaWxlU3lzdGVtLCBmaWxlU3lzdGVtQmFzZVBhdGgoKSwgY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKS0+ZGF0YWJhc2VJZGVudGlmaWVyKCksIHR5cGUsIHRydWUsIGNhbGxiYWNrcykp
OwogfQogCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxMDk3KQorKysgV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMS0wMSAgS2F2aXRh
IEthbmV0a2FyICA8a2thbmV0a2FyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbRmlsZVN5c3RlbV0gU3VwcG9ydCBub3QgY3Jl
YXRpbmcgZGlyZWN0b3JpZXMgd2hlbiBxdWVyaWVkIGJ5IGluc3BlY3Rvci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTY5CisKKyAgICAgICAgKiBm
aWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuRmlsZVN5
c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEZpbGVTeXN0ZW06OnJlYWRGaWxlU3lzdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0p
OgorICAgICAgICAqIGZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vQXN5bmNGaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN5c3Rl
bTo6b3BlbkZpbGVTeXN0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5o
OgorCiAyMDEwLTExLTAxICBDaGFuZyBTaHUgIDxjaGFuZy5zaHVAbm9raWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0Fz
eW5jRmlsZVN5c3RlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0Zp
bGVTeXN0ZW0uY3BwCShyZXZpc2lvbiA3MTA4OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vQXN5bmNG
aWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQAogfQogCiAvLyBE
ZWZhdWx0IGltcGxlbWVudGF0aW9uLgotdm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lz
dGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZp
ZXIsIFR5cGUgdHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxi
YWNrcykKK3ZvaWQgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShjb25zdCBTdHJpbmcm
IGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVyLCBUeXBlIHR5cGUsIGJv
b2wsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCiB7CiAg
ICAgU3RyaW5nIHR5cGVTdHJpbmcgPSAodHlwZSA9PSBQZXJzaXN0ZW50KSA/ICJQZXJzaXN0ZW50
IiA6ICJUZW1wb3JhcnkiOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3Rl
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmgJKHJl
dmlzaW9uIDcxMDg5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uaAkod29y
a2luZyBjb3B5KQpAQCAtNjYsOCArNjYsOCBAQAogICAgIC8vIENyZWF0ZXMgYW5kIHJldHVybnMg
YSBuZXcgcGxhdGZvcm0tc3BlY2lmaWMgQXN5bmNGaWxlU3lzdGVtIGluc3RhbmNlIGlmIHRoZSBw
bGF0Zm9ybSBoYXMgaXRzIG93biBpbXBsZW1lbnRhdGlvbi4KICAgICBzdGF0aWMgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHJvb3RQYXRoKTsKIAotICAg
IC8vIE9wZW5zIGEgbmV3IGZpbGUgc3lzdGVtLgotICAgIHN0YXRpYyB2b2lkIG9wZW5GaWxlU3lz
dGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZp
ZXIsIFR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CisgICAgLy8g
T3BlbnMgYSBuZXcgZmlsZSBzeXN0ZW0uIHxjcmVhdGV8IHNwZWNpZmllcyB3aGV0aGVyIG9yIG5v
dCB0byBjcmVhdGUgdGhlIHBhdGggaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdHMuCisgICAg
c3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3Qg
U3RyaW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwgYm9vbCBjcmVhdGUsIFBhc3NPd25QdHI8
QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPik7CiAKICAgICAvLyBNb3ZlcyBhIGZpbGUgb3IgZGly
ZWN0b3J5IGZyb20gc3JjUGF0aCB0byBkZXN0UGF0aC4KICAgICAvLyBBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M6OmRpZFN1Y2NlZWQoKSBpcyBjYWxsZWQgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNv
bXBsZXRlZCBzdWNjZXNzZnVsbHkuCg==
</data>
<flag name="review"
          id="62913"
          type_id="1"
          status="+"
          setter="dumi"
    />
    <flag name="commit-queue"
          id="62914"
          type_id="3"
          status="-"
          setter="dumi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72746</attachid>
            <date>2010-11-02 15:03:58 -0700</date>
            <delta_ts>2010-11-02 19:59:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>flag5.txt</filename>
            <type>text/plain</type>
            <size>7521</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0u
Y3BwCShyZXZpc2lvbiA3MTE3MikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lz
dGVtQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMyArNTcsMjEgQEAKICAgICBy
ZXR1cm4gKmxvY2FsRmlsZVN5c3RlbTsKIH0KIAordm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlYWRG
aWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3Rl
bTo6VHlwZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBBU1NFUlQoY29udGV4dCAmJiBjb250ZXh0LT5p
c0RvY3VtZW50KCkpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3Vt
ZW50Kj4oY29udGV4dCk7CisgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1lSW1w
bDo6ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICB3ZWJGcmFtZS0+Y2xpZW50KCkt
Pm9wZW5GaWxlU3lzdGVtKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpUeXBl
Pih0eXBlKSwgc2l6ZSwgZmFsc2UsIG5ldyBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpKTsKK30KKwogdm9pZCBMb2NhbEZpbGVTeXN0ZW06OnJlcXVlc3RGaWxlU3lzdGVtKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBl
LCBsb25nIGxvbmcgc2l6ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNh
bGxiYWNrcywgYm9vbCBzeW5jaHJvbm91cykKIHsKICAgICBBU1NFUlQoY29udGV4dCk7CiAgICAg
aWYgKGNvbnRleHQtPmlzRG9jdW1lbnQoKSkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOwogICAgICAgICBXZWJGcmFtZUltcGwq
IHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwot
ICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50KCktPm9wZW5GaWxlU3lzdGVtKHdlYkZyYW1lLCBzdGF0
aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgc2l6ZSwgbmV3IFdlYkZpbGVTeXN0
ZW1DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOworICAgICAgICB3ZWJGcmFtZS0+Y2xpZW50KCkt
Pm9wZW5GaWxlU3lzdGVtKHdlYkZyYW1lLCBzdGF0aWNfY2FzdDxXZWJGaWxlU3lzdGVtOjpUeXBl
Pih0eXBlKSwgc2l6ZSwgdHJ1ZSwgbmV3IFdlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsKGNhbGxi
YWNrcykpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRl
eHQgPSBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCk7CiAgICAgICAgIFdvcmtl
ckxvYWRlclByb3h5KiB3b3JrZXJMb2FkZXJQcm94eSA9ICZ3b3JrZXJDb250ZXh0LT50aHJlYWQo
KS0+d29ya2VyTG9hZGVyUHJveHkoKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzExNzMp
CisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTAtMTEtMDIgIEthdml0YSBLYW5ldGthciAgPGtrYW5ldGthckBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Zp
bGVTeXN0ZW1dIFN1cHBvcnQgbm90IGNyZWF0aW5nIGRpcmVjdG9yaWVzIHdoZW4gcXVlcmllZCBi
eSBpbnNwZWN0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODE2OQorCisgICAgICAgICogc3JjL0xvY2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsRmlsZVN5c3RlbTo6cmVhZEZpbGVTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxGaWxlU3lzdGVtOjpyZXF1ZXN0RmlsZVN5c3RlbSk6CisKIDIw
MTAtMTEtMDIgIElseWEgU2hlcm1hbiAgPGlzaGVybWFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFdlYkNvcmUvZmlsZWFwaS9Mb2NhbEZp
bGVTeXN0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVt
LmgJKHJldmlzaW9uIDcxMTcyKQorKysgV2ViQ29yZS9maWxlYXBpL0xvY2FsRmlsZVN5c3RlbS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw5IEBACiAgICAgLy8gY2FsbGluZyB0aGlzIG9u
ZS4KICAgICBzdGF0aWMgTG9jYWxGaWxlU3lzdGVtJiBsb2NhbEZpbGVTeXN0ZW0oKTsKIAorICAg
IC8vIERvZXMgbm90IGNyZWF0ZSB0aGUgcm9vdCBwYXRoIGZvciBmaWxlIHN5c3RlbSwganVzdCBy
ZWFkcyBpdCBpZiBhdmFpbGFibGUuCisgICAgdm9pZCByZWFkRmlsZVN5c3RlbShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFz
c093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+KTsKKwogICAgIHZvaWQgcmVxdWVzdEZp
bGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSwg
bG9uZyBsb25nIHNpemUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiwgYm9v
bCBzeW5jaHJvbm91cyA9IGZhbHNlKTsKIAogI2lmICFQTEFURk9STShDSFJPTUlVTSkKSW5kZXg6
IFdlYkNvcmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCShyZXZpc2lvbiA3MTE3MikKKysrIFdlYkNv
cmUvZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxNSAr
NzYsMjEgQEAKICAgICByZXR1cm4gbV9iYXNlUGF0aDsKIH0KIAotc3RhdGljIHZvaWQgb3BlbkZp
bGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgYmFzZVBhdGgs
IGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIFBh
c3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MpCitzdGF0aWMgdm9p
ZCBvcGVuRmlsZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBi
YXNlUGF0aCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUg
dHlwZSwgYm9vbCBjcmVhdGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBj
YWxsYmFja3MpCiB7Ci0gICAgQXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbShiYXNlUGF0
aCwgaWRlbnRpZmllciwgdHlwZSwgY2FsbGJhY2tzKTsKKyAgICBBc3luY0ZpbGVTeXN0ZW06Om9w
ZW5GaWxlU3lzdGVtKGJhc2VQYXRoLCBpZGVudGlmaWVyLCB0eXBlLCBjcmVhdGUsIGNhbGxiYWNr
cyk7CiB9CiAKK3ZvaWQgTG9jYWxGaWxlU3lzdGVtOjpyZWFkRmlsZVN5c3RlbShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBs
b25nLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQorewor
ICAgIC8vIEFzeW5jRmlsZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0gY2FsbHMgY2FsbGJhY2tzIHN5
bmNocm9ub3VzbHksIHNvIHRoZSBtZXRob2QgbmVlZHMgdG8gYmUgY2FsbGVkIGFzeW5jaHJvbm91
c2x5LgorICAgIGNvbnRleHQtPnBvc3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmb3BlbkZpbGVT
eXN0ZW0sIGZpbGVTeXN0ZW1CYXNlUGF0aCgpLCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLT5k
YXRhYmFzZUlkZW50aWZpZXIoKSwgdHlwZSwgZmFsc2UsIGNhbGxiYWNrcykpOworfQorCiB2b2lk
IExvY2FsRmlsZVN5c3RlbTo6cmVxdWVzdEZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9uZywgUGFzc093
blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+IGNhbGxiYWNrcywgYm9vbCkKIHsKICAgICAv
LyBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxlU3lzdGVtIGNhbGxzIGNhbGxiYWNrcyBzeW5jaHJv
bm91c2x5LCBzbyB0aGUgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCBhc3luY2hyb25vdXNseS4K
LSAgICBjb250ZXh0LT5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soJm9wZW5GaWxlU3lzdGVt
LCBmaWxlU3lzdGVtQmFzZVBhdGgoKSwgY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+ZGF0YWJh
c2VJZGVudGlmaWVyKCksIHR5cGUsIGNhbGxiYWNrcykpOworICAgIGNvbnRleHQtPnBvc3RUYXNr
KGNyZWF0ZUNhbGxiYWNrVGFzaygmb3BlbkZpbGVTeXN0ZW0sIGZpbGVTeXN0ZW1CYXNlUGF0aCgp
LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLT5kYXRhYmFzZUlkZW50aWZpZXIoKSwgdHlwZSwg
dHJ1ZSwgY2FsbGJhY2tzKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBXZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzExNzMp
CisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisy
MDEwLTExLTAyICBLYXZpdGEgS2FuZXRrYXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtGaWxlU3lzdGVt
XSBTdXBwb3J0IG5vdCBjcmVhdGluZyBkaXJlY3RvcmllcyB3aGVuIHF1ZXJpZWQgYnkgaW5zcGVj
dG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgx
NjkKKworICAgICAgICAqIGZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZW5GaWxlU3lzdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsRmlsZVN5c3Rl
bTo6cmVhZEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxGaWxlU3lzdGVtOjpy
ZXF1ZXN0RmlsZVN5c3RlbSk6CisgICAgICAgICogZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXN5bmNGaWxlU3lzdGVtOjpvcGVuRmlsZVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0v
QXN5bmNGaWxlU3lzdGVtLmg6CisKIDIwMTAtMTEtMDIgIE1paGFpIFBhcnBhcml0YSAgPG1paGFp
cEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAJKHJldmlzaW9uIDcxMTcyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3
ICs1Myw3IEBACiB9CiAKIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb24uCi12b2lkIEFzeW5jRmls
ZVN5c3RlbTo6b3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3Ry
aW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSB0eXBlLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5
c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQordm9pZCBBc3luY0ZpbGVTeXN0ZW06Om9wZW5GaWxl
U3lzdGVtKGNvbnN0IFN0cmluZyYgYmFzZVBhdGgsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkZW50
aWZpZXIsIFR5cGUgdHlwZSwgYm9vbCwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFj
a3M+IGNhbGxiYWNrcykKIHsKICAgICBTdHJpbmcgdHlwZVN0cmluZyA9ICh0eXBlID09IFBlcnNp
c3RlbnQpID8gIlBlcnNpc3RlbnQiIDogIlRlbXBvcmFyeSI7CiAKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vQXN5bmNGaWxlU3lzdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaAkocmV2aXNpb24gNzExNzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0Fz
eW5jRmlsZVN5c3RlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw4ICs2Niw4IEBACiAgICAgLy8g
Q3JlYXRlcyBhbmQgcmV0dXJucyBhIG5ldyBwbGF0Zm9ybS1zcGVjaWZpYyBBc3luY0ZpbGVTeXN0
ZW0gaW5zdGFuY2UgaWYgdGhlIHBsYXRmb3JtIGhhcyBpdHMgb3duIGltcGxlbWVudGF0aW9uLgog
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgcm9vdFBhdGgpOwogCi0gICAgLy8gT3BlbnMgYSBuZXcgZmlsZSBzeXN0ZW0uCi0gICAgc3Rh
dGljIHZvaWQgb3BlbkZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBiYXNlUGF0aCwgY29uc3QgU3Ry
aW5nJiBzdG9yYWdlSWRlbnRpZmllciwgVHlwZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3M+KTsKKyAgICAvLyBPcGVucyBhIG5ldyBmaWxlIHN5c3RlbS4gVGhlIGNyZWF0ZSBw
YXJhbWV0ZXIgc3BlY2lmaWVzIHdoZXRoZXIgb3Igbm90IHRvIGNyZWF0ZSB0aGUgcGF0aCBpZiBp
dCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0cy4KKyAgICBzdGF0aWMgdm9pZCBvcGVuRmlsZVN5c3Rl
bShjb25zdCBTdHJpbmcmIGJhc2VQYXRoLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZGVudGlmaWVy
LCBUeXBlLCBib29sIGNyZWF0ZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3M+
KTsKIAogICAgIC8vIE1vdmVzIGEgZmlsZSBvciBkaXJlY3RvcnkgZnJvbSBzcmNQYXRoIHRvIGRl
c3RQYXRoLgogICAgIC8vIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrczo6ZGlkU3VjY2VlZCgpIGlz
IGNhbGxlZCB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>